memorylink 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.cursorrules +0 -0
- package/.github/workflows/buddy-check.yml +105 -0
- package/.github/workflows/memorylink-preflight.yml +63 -0
- package/.github/workflows/release-on-tag.yml +58 -0
- package/.github/workflows/stress-tests.yml +79 -0
- package/.memorylinkignore +24 -0
- package/5000_SCENARIOS_TEST_RESULTS.md +174 -0
- package/ADVANCED_SCENARIOS_TEST_RESULTS.md +377 -0
- package/AGGRESSIVE_RANDOM_TEST_RESULTS.md +134 -0
- package/AI_CONSENSUS_ANALYSIS.md +138 -0
- package/AI_CONSENSUS_ANALYSIS_FINAL.md +345 -0
- package/AI_CONSENSUS_ANALYSIS_v2.md +188 -0
- package/AI_CONSENSUS_ANALYSIS_v3.md +246 -0
- package/AI_CONSENSUS_ANALYSIS_v4.md +309 -0
- package/AI_CONSENSUS_ANALYSIS_v5.md +311 -0
- package/AI_CONSENSUS_ANALYSIS_v6.md +432 -0
- package/AI_PANEL_CLARIFICATION_REQUEST.md +37 -0
- package/AI_RESPONSES_BLACKBOX.md +338 -0
- package/AI_RESPONSES_CHATGPT.md +379 -0
- package/AI_RESPONSES_CLAUDE.md +464 -0
- package/AI_RESPONSES_CONSOLIDATED.md +560 -0
- package/AI_RESPONSES_DEEPSEEK.md +341 -0
- package/AI_RESPONSES_GEMINI.md +262 -0
- package/AI_RESPONSES_GROK.md +335 -0
- package/AI_RESPONSES_MANUS.md +246 -0
- package/AI_RESPONSES_PERPLEXITY.md +295 -0
- package/AI_RESPONSES_QWEN.md +335 -0
- package/AI_REVIEW_REQUEST.md +333 -0
- package/AI_STRATEGIC_CONSENSUS_COMPARISON.md +507 -0
- package/AI_VALIDATION_AND_GAP_ANALYSIS.md +410 -0
- package/ALL_10_AI_RESPONSES_FINAL.md +435 -0
- package/ALL_3_AI_RESPONSES_FINAL.md +305 -0
- package/ALL_4_AI_RESPONSES_FINAL.md +335 -0
- package/ALL_5_AI_RESPONSES_FINAL.md +349 -0
- package/ALL_6_AI_RESPONSES_FINAL.md +354 -0
- package/ALL_7_AI_RESPONSES_FINAL.md +369 -0
- package/ALL_8_AI_RESPONSES_FINAL.md +381 -0
- package/ALL_9_AI_RESPONSES_FINAL.md +398 -0
- package/ALL_AI_RESPONSES_TRACKER.md +152 -0
- package/ALL_AI_RESPONSES_VALIDATED.md +261 -0
- package/ALL_FEATURES_COMPLETE.md +198 -0
- package/BREAK_IT_TEST_RESULTS.md +273 -0
- package/BUDDY_CHECK_STRESS_TEST_PLAN.md +1089 -0
- package/CHANGELOG.md +135 -0
- package/CHATGPT_GAP_ANALYSIS.md +286 -0
- package/CHATGPT_V2_ANALYSIS.md +109 -0
- package/CHECK_MISSING_FEATURES.md +192 -0
- package/CI_CD_INTEGRATION.md +421 -0
- package/COMPETITIVE_LAUNCH_STRATEGY.md +257 -0
- package/COMPLETE_COMPETITIVE_ANALYSIS_ALL_AIS.md +339 -0
- package/COMPLETE_DEVELOPMENT_PLAN_ALL_AIS.md +622 -0
- package/COMPREHENSIVE_FEATURE_ANALYSIS_100_PERCENT.md +423 -0
- package/COMPREHENSIVE_TEST_SUMMARY.md +314 -0
- package/CONTINUOUS_TESTING_COMPLETE.md +268 -0
- package/CONTINUOUS_TESTING_GUIDE.md +328 -0
- package/CONTINUOUS_TEST_FINAL_RESULTS.md +148 -0
- package/CONTINUOUS_TEST_INSTRUCTIONS.md +173 -0
- package/CONTINUOUS_TEST_RESULTS.md +194 -0
- package/CONTINUOUS_TEST_STATUS.md +68 -0
- package/CURSOR_AI_BUDDY_CHECK_GUIDE.md +439 -0
- package/CURSOR_AI_INTEGRATION_GUIDE.md +775 -0
- package/CURSOR_AI_V1.4_NEXT_STEPS.md +314 -0
- package/CURSOR_BREAK_IT_TEST.md +389 -0
- package/CURSOR_DOCUMENTATION_RULES.md +259 -0
- package/CURSOR_HOSTILE_TEST_DOCUMENT.md +343 -0
- package/CURSOR_PROMPTS_FOR_TESTING.md +252 -0
- package/DEPLOYMENT_GUIDE.md +493 -0
- package/DEVELOPMENT_AND_OVERNIGHT_TESTING.md +304 -0
- package/DEVELOPMENT_PROGRESS.md +185 -0
- package/DOCS_CLEANUP_SUMMARY.md +192 -0
- package/DOC_CONFIDENTIALITY_RULES.md +259 -0
- package/E2E_TEST_REPORT_v1.3.0.md +196 -0
- package/E2E_TEST_RESULTS.md +250 -0
- package/E2E_TEST_SCENARIOS.md +357 -0
- package/END_TO_END_TEST_REPORT.md +217 -0
- package/ENHANCEMENT_RECOMMENDATIONS.md +368 -0
- package/EPIPE_FIX_SUMMARY.md +177 -0
- package/FEEDBACK_TEMPLATE.md +173 -0
- package/FINAL_100_PERCENT_CONFIRMATION.md +319 -0
- package/FINAL_8_AI_CONSENSUS_SUMMARY.md +355 -0
- package/FINAL_CONFIRMATION.md +143 -0
- package/FINAL_E2E_TEST_REPORT.md +248 -0
- package/FINAL_E2E_TEST_RESULTS.md +212 -0
- package/FINAL_LAUNCH_CLARIFICATION_SUMMARY.md +101 -0
- package/FINAL_LAUNCH_PLAN_BASED_ON_AI_CONSENSUS.md +410 -0
- package/FINAL_LAUNCH_SUMMARY.md +176 -0
- package/FINAL_PRODUCT_TEST.md +316 -0
- package/FINAL_PROJECT_STATUS.md +407 -0
- package/FINAL_STATUS_REPORT.md +244 -0
- package/FINAL_STRATEGIC_PLAN_9_AIS.md +576 -0
- package/FINAL_TEST_EXECUTION_REPORT.md +252 -0
- package/FINAL_VALIDATION_DOCUMENT.md +238 -0
- package/FINAL_VALIDATION_SUMMARY.md +230 -0
- package/FIX_SPECIAL_CHARS.sh +13 -0
- package/FRESH_SCENARIOS_TEST_RESULTS.md +358 -0
- package/GAP_EVALUATION_TEMPLATE.md +146 -0
- package/GITHUB_SETUP_GUIDE.md +193 -0
- package/HOSTILE_TEST_RESULTS.md +221 -0
- package/HOW_MEMORYLINK_HELPS_AI.md +401 -0
- package/IMPLEMENTATION_PLANS_DETAILED.md +516 -0
- package/LAUNCH_CHECKLIST.md +247 -0
- package/LAUNCH_DOCS_FRAMEWORK.md +378 -0
- package/LAUNCH_READINESS.md +148 -0
- package/LAUNCH_SEQUENCE.md +137 -0
- package/LICENSE +67 -0
- package/MARKET_ANALYSIS_AND_STRATEGY.md +280 -0
- package/MASTER_AI_VERIFICATION_DOCUMENT.md +1085 -0
- package/MASTER_VALIDATION_DOCUMENT.md +818 -0
- package/MINORITY_OPINION_ANALYSIS.md +464 -0
- package/NEW_RANDOM_TEST_RESULTS.md +127 -0
- package/NEW_SCENARIOS_TEST_RESULTS.md +272 -0
- package/NEXT_ACTIONS_COMPLETE.md +137 -0
- package/NEXT_PLAN_BASED_ON_AI_ANALYSES.md +413 -0
- package/NEXT_PLAN_BASED_ON_ALL_AI_RESPONSES.md +558 -0
- package/NEXT_STEPS.md +120 -0
- package/NEXT_STEPS_ACTION_PLAN.md +369 -0
- package/NPM_2FA_FIX.md +113 -0
- package/NPM_PUBLISH_TROUBLESHOOTING.md +230 -0
- package/PERPLEXITY_AI_VALIDATION_REQUEST.md +318 -0
- package/PERPLEXITY_AI_VALIDATION_RESPONSE.md +172 -0
- package/PERPLEXITY_BREAK_IT_VALIDATION.md +262 -0
- package/PERPLEXITY_DOCS_VALIDATION.md +237 -0
- package/PERPLEXITY_FEEDBACK_ACTION_PLAN.md +271 -0
- package/PERPLEXITY_FINAL_E2E_VALIDATION.md +210 -0
- package/PERPLEXITY_FINAL_SUMMARY.md +211 -0
- package/PERPLEXITY_PHASE2_VALIDATION.md +270 -0
- package/PERPLEXITY_PHASE2_VALIDATION_RESPONSE.md +136 -0
- package/PERPLEXITY_PRIORITY2_VALIDATION.md +321 -0
- package/PERPLEXITY_TELEMETRY_EXPLANATION.md +174 -0
- package/PERPLEXITY_TELEMETRY_VALIDATION.md +118 -0
- package/PERPLEXITY_TELEMETRY_VALIDATION_RESPONSE.md +154 -0
- package/PERPLEXITY_USER_GUIDE_VALIDATION.md +236 -0
- package/PERPLEXITY_VALIDATION_REQUEST.md +427 -0
- package/PERPLEXITY_VALIDATION_REQUEST_v1.5.1.md +190 -0
- package/PHASE_2_COMPLETE.md +149 -0
- package/PRE_LAUNCH_SECURITY_AUDIT.md +155 -0
- package/PRE_LAUNCH_TEST_CYCLE.md +326 -0
- package/PRE_LAUNCH_TEST_RESULTS.md +148 -0
- package/PROJECT_STRUCTURE_PLAN.md +104 -0
- package/PUBLIC_DOCS.md +90 -0
- package/PUBLISH_CHECKLIST.md +134 -0
- package/PUSH_INSTRUCTIONS.md +120 -0
- package/QUICK_START_TEST_CYCLE.md +76 -0
- package/README.md +557 -0
- package/README_TEST_INSTRUCTIONS.md +65 -0
- package/README_v1.5.1.md +137 -0
- package/REALISTIC_ASSESSMENT.md +186 -0
- package/REAL_WORLD_VALIDATION_COMPLETE.md +98 -0
- package/RED_TEAM_TESTING_GUIDE.md +302 -0
- package/RELEASE_NOTES_v1.0.0.md +125 -0
- package/RELEASE_NOTES_v1.5.1.md +105 -0
- package/REQUEST_COUNTERS.md +22 -0
- package/ROADMAP_v1.6.md +335 -0
- package/ROUND3_RANDOM_TEST_RESULTS.md +135 -0
- package/SECURITY_MODEL.md +577 -0
- package/SESSION_SUMMARY_CURRENT_STATE.md +206 -0
- package/SESSION_SUMMARY_REVIEW.md +203 -0
- package/SINGLE_RUN_ALL_SCENARIOS_TEST.sh +129 -0
- package/STRATEGIC_QUESTIONS_FOR_AI_VALIDATION.md +277 -0
- package/STRESS_TEST_CHECK_RESULTS.md +154 -0
- package/STRESS_TEST_EXECUTION_GUIDE.md +284 -0
- package/STRESS_TEST_IMPLEMENTATION_SUMMARY.md +221 -0
- package/TELEMETRY.md +370 -0
- package/TELEMETRY_COMPLETE_SUMMARY.md +231 -0
- package/TELEMETRY_CONTROL_POLICY.md +135 -0
- package/TELEMETRY_DESIGN_SUMMARY.md +210 -0
- package/TELEMETRY_FINAL_STATUS.md +178 -0
- package/TELEMETRY_NEXT_STEPS.md +258 -0
- package/TELEMETRY_TESTING_NOTES.md +217 -0
- package/TELEMETRY_WORK_COMPLETE.md +237 -0
- package/TEST_PLAN_v1.0.1.md +194 -0
- package/TEST_RESULTS_SUMMARY.md +128 -0
- package/TREE_SITTER_EXPLANATION.md +303 -0
- package/TROUBLESHOOTING.md +62 -0
- package/ULTIMATE_SCENARIOS_TEST_RESULTS.md +366 -0
- package/USER_FEEDBACK_TEMPLATE.md +104 -0
- package/USER_GUIDE.md +809 -0
- package/V1.1_DEVELOPMENT_COMPLETE.md +299 -0
- package/V1.1_SCENARIOS_ADDED.md +161 -0
- package/V1.2_CODE_STRUCTURE_IMPLEMENTATION.md +243 -0
- package/V1.3_COMPETITIVE_LAUNCH_COMPLETE.md +253 -0
- package/V1.3_COMPETITIVE_LAUNCH_IMPLEMENTATION_PLAN.md +385 -0
- package/V1.3_TEAM_PATTERNS_IMPLEMENTATION.md +183 -0
- package/V1.4_BUILD_PLAN_IMPLEMENTATION.md +698 -0
- package/V1.4_COMPLETE_SUMMARY_FOR_AI_REVIEW.md +516 -0
- package/V1.4_COMPLETE_VALIDATION_DOCUMENT.md +601 -0
- package/V1.4_DEVELOPMENT_PROGRESS.md +117 -0
- package/V1.4_FINAL_STATUS.md +147 -0
- package/V1.4_INTEGRATION_COMPLETE.md +207 -0
- package/V1.4_INTEGRATION_TEST_RESULTS.md +181 -0
- package/V1.4_OBSERVABILITY_AND_OVERRIDE_COMPLETE.md +180 -0
- package/V1.4_PHASE_3_COMPLETE.md +135 -0
- package/V1.4_RUNTIME_TESTING_GUIDE.md +364 -0
- package/V1.4_VERIFICATION_REPORT.md +199 -0
- package/V1.5.1_COMPLETE_SUMMARY.md +234 -0
- package/V1.5.1_RELEASE_NOTES.md +206 -0
- package/V1.5.1_RELEASE_READY.md +198 -0
- package/V1.5_COMPLETE_SUMMARY.md +264 -0
- package/V1.5_COMPLETE_VERIFICATION.md +183 -0
- package/V1.5_DESIGN_NOTES.md +272 -0
- package/V1.5_FINAL_STATUS.md +224 -0
- package/V1.5_IMPLEMENTATION_SUMMARY.md +113 -0
- package/V1.5_IMPROVEMENTS_COMPLETE.md +205 -0
- package/V1.5_PHASE1_COMPLETE.md +183 -0
- package/V1.5_PHASE1_PROGRESS.md +102 -0
- package/V1.5_PHASE2_COMPLETE.md +133 -0
- package/V1.5_PHASE2_PLAN.md +185 -0
- package/V1.5_PRIORITIZATION.md +313 -0
- package/V1.5_PRIORITY2_COMPLETE.md +150 -0
- package/V1.5_TESTING_COMPLETE.md +69 -0
- package/V1.5_TEST_RESULTS.md +178 -0
- package/V1.5_VALIDATION_RESULTS.md +209 -0
- package/V1.6_GAP_TRACKING.md +118 -0
- package/VALIDATION_SUMMARY_FOR_PERPLEXITY.md +83 -0
- package/VERIFICATION_REPORT.md +220 -0
- package/VERSION_UPDATE_VERIFICATION.md +76 -0
- package/config/tsconfig.json +21 -0
- package/dist/cli.d.ts +9 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +1114 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/archive.d.ts +20 -0
- package/dist/commands/archive.d.ts.map +1 -0
- package/dist/commands/archive.js +231 -0
- package/dist/commands/archive.js.map +1 -0
- package/dist/commands/auto-context.d.ts +22 -0
- package/dist/commands/auto-context.d.ts.map +1 -0
- package/dist/commands/auto-context.js +172 -0
- package/dist/commands/auto-context.js.map +1 -0
- package/dist/commands/auto-log.d.ts +30 -0
- package/dist/commands/auto-log.d.ts.map +1 -0
- package/dist/commands/auto-log.js +500 -0
- package/dist/commands/auto-log.js.map +1 -0
- package/dist/commands/change.d.ts +13 -0
- package/dist/commands/change.d.ts.map +1 -0
- package/dist/commands/change.js +254 -0
- package/dist/commands/change.js.map +1 -0
- package/dist/commands/checkpoint.d.ts +26 -0
- package/dist/commands/checkpoint.d.ts.map +1 -0
- package/dist/commands/checkpoint.js +326 -0
- package/dist/commands/checkpoint.js.map +1 -0
- package/dist/commands/configure.d.ts +21 -0
- package/dist/commands/configure.d.ts.map +1 -0
- package/dist/commands/configure.js +283 -0
- package/dist/commands/configure.js.map +1 -0
- package/dist/commands/consolidate.d.ts +19 -0
- package/dist/commands/consolidate.d.ts.map +1 -0
- package/dist/commands/consolidate.js +236 -0
- package/dist/commands/consolidate.js.map +1 -0
- package/dist/commands/context.d.ts +10 -0
- package/dist/commands/context.d.ts.map +1 -0
- package/dist/commands/context.js +571 -0
- package/dist/commands/context.js.map +1 -0
- package/dist/commands/detect.d.ts +13 -0
- package/dist/commands/detect.d.ts.map +1 -0
- package/dist/commands/detect.js +187 -0
- package/dist/commands/detect.js.map +1 -0
- package/dist/commands/doctor.d.ts +19 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +1272 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/export.d.ts +3 -0
- package/dist/commands/export.d.ts.map +1 -0
- package/dist/commands/export.js +95 -0
- package/dist/commands/export.js.map +1 -0
- package/dist/commands/graph.d.ts +25 -0
- package/dist/commands/graph.d.ts.map +1 -0
- package/dist/commands/graph.js +208 -0
- package/dist/commands/graph.js.map +1 -0
- package/dist/commands/hooks.d.ts +9 -0
- package/dist/commands/hooks.d.ts.map +1 -0
- package/dist/commands/hooks.js +240 -0
- package/dist/commands/hooks.js.map +1 -0
- package/dist/commands/impact.d.ts +18 -0
- package/dist/commands/impact.d.ts.map +1 -0
- package/dist/commands/impact.js +163 -0
- package/dist/commands/impact.js.map +1 -0
- package/dist/commands/index-vector.d.ts +13 -0
- package/dist/commands/index-vector.d.ts.map +1 -0
- package/dist/commands/index-vector.js +103 -0
- package/dist/commands/index-vector.js.map +1 -0
- package/dist/commands/index.d.ts +37 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +105 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/init.d.ts +8 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +200 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/inject.d.ts +22 -0
- package/dist/commands/inject.d.ts.map +1 -0
- package/dist/commands/inject.js +394 -0
- package/dist/commands/inject.js.map +1 -0
- package/dist/commands/learn.d.ts +13 -0
- package/dist/commands/learn.d.ts.map +1 -0
- package/dist/commands/learn.js +282 -0
- package/dist/commands/learn.js.map +1 -0
- package/dist/commands/lock.d.ts +35 -0
- package/dist/commands/lock.d.ts.map +1 -0
- package/dist/commands/lock.js +308 -0
- package/dist/commands/lock.js.map +1 -0
- package/dist/commands/memory.d.ts +15 -0
- package/dist/commands/memory.d.ts.map +1 -0
- package/dist/commands/memory.js +366 -0
- package/dist/commands/memory.js.map +1 -0
- package/dist/commands/migrate.d.ts +22 -0
- package/dist/commands/migrate.d.ts.map +1 -0
- package/dist/commands/migrate.js +458 -0
- package/dist/commands/migrate.js.map +1 -0
- package/dist/commands/patterns.d.ts +18 -0
- package/dist/commands/patterns.d.ts.map +1 -0
- package/dist/commands/patterns.js +120 -0
- package/dist/commands/patterns.js.map +1 -0
- package/dist/commands/protect.d.ts +12 -0
- package/dist/commands/protect.d.ts.map +1 -0
- package/dist/commands/protect.js +181 -0
- package/dist/commands/protect.js.map +1 -0
- package/dist/commands/quickstart.d.ts +11 -0
- package/dist/commands/quickstart.d.ts.map +1 -0
- package/dist/commands/quickstart.js +256 -0
- package/dist/commands/quickstart.js.map +1 -0
- package/dist/commands/repair.d.ts +13 -0
- package/dist/commands/repair.d.ts.map +1 -0
- package/dist/commands/repair.js +157 -0
- package/dist/commands/repair.js.map +1 -0
- package/dist/commands/resolve.d.ts +19 -0
- package/dist/commands/resolve.d.ts.map +1 -0
- package/dist/commands/resolve.js +355 -0
- package/dist/commands/resolve.js.map +1 -0
- package/dist/commands/roadmap.d.ts +5 -0
- package/dist/commands/roadmap.d.ts.map +1 -0
- package/dist/commands/roadmap.js +23 -0
- package/dist/commands/roadmap.js.map +1 -0
- package/dist/commands/scopes.d.ts +10 -0
- package/dist/commands/scopes.d.ts.map +1 -0
- package/dist/commands/scopes.js +80 -0
- package/dist/commands/scopes.js.map +1 -0
- package/dist/commands/search.d.ts +9 -0
- package/dist/commands/search.d.ts.map +1 -0
- package/dist/commands/search.js +313 -0
- package/dist/commands/search.js.map +1 -0
- package/dist/commands/setup.d.ts +13 -0
- package/dist/commands/setup.d.ts.map +1 -0
- package/dist/commands/setup.js +405 -0
- package/dist/commands/setup.js.map +1 -0
- package/dist/commands/snippet.d.ts +23 -0
- package/dist/commands/snippet.d.ts.map +1 -0
- package/dist/commands/snippet.js +235 -0
- package/dist/commands/snippet.js.map +1 -0
- package/dist/commands/stats.d.ts +15 -0
- package/dist/commands/stats.d.ts.map +1 -0
- package/dist/commands/stats.js +502 -0
- package/dist/commands/stats.js.map +1 -0
- package/dist/commands/status.d.ts +8 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +134 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/suggest-tags.d.ts +9 -0
- package/dist/commands/suggest-tags.d.ts.map +1 -0
- package/dist/commands/suggest-tags.js +95 -0
- package/dist/commands/suggest-tags.js.map +1 -0
- package/dist/commands/sync-rules.d.ts +14 -0
- package/dist/commands/sync-rules.d.ts.map +1 -0
- package/dist/commands/sync-rules.js +211 -0
- package/dist/commands/sync-rules.js.map +1 -0
- package/dist/commands/sync.d.ts +24 -0
- package/dist/commands/sync.d.ts.map +1 -0
- package/dist/commands/sync.js +330 -0
- package/dist/commands/sync.js.map +1 -0
- package/dist/commands/telemetry-test.d.ts +24 -0
- package/dist/commands/telemetry-test.d.ts.map +1 -0
- package/dist/commands/telemetry-test.js +84 -0
- package/dist/commands/telemetry-test.js.map +1 -0
- package/dist/commands/template.d.ts +16 -0
- package/dist/commands/template.d.ts.map +1 -0
- package/dist/commands/template.js +122 -0
- package/dist/commands/template.js.map +1 -0
- package/dist/commands/validate.d.ts +11 -0
- package/dist/commands/validate.d.ts.map +1 -0
- package/dist/commands/validate.js +144 -0
- package/dist/commands/validate.js.map +1 -0
- package/dist/commands/watch-preferences.d.ts +17 -0
- package/dist/commands/watch-preferences.d.ts.map +1 -0
- package/dist/commands/watch-preferences.js +172 -0
- package/dist/commands/watch-preferences.js.map +1 -0
- package/dist/commands/watch.d.ts +11 -0
- package/dist/commands/watch.d.ts.map +1 -0
- package/dist/commands/watch.js +223 -0
- package/dist/commands/watch.js.map +1 -0
- package/dist/config/thresholds.d.ts +8 -0
- package/dist/config/thresholds.d.ts.map +1 -0
- package/dist/config/thresholds.js +10 -0
- package/dist/config/thresholds.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +31 -0
- package/dist/index.js.map +1 -0
- package/dist/memorylink.d.ts +91 -0
- package/dist/memorylink.d.ts.map +1 -0
- package/dist/memorylink.js +208 -0
- package/dist/memorylink.js.map +1 -0
- package/dist/search/local-embeddings.d.ts +21 -0
- package/dist/search/local-embeddings.d.ts.map +1 -0
- package/dist/search/local-embeddings.js +87 -0
- package/dist/search/local-embeddings.js.map +1 -0
- package/dist/search/vector-search.d.ts +58 -0
- package/dist/search/vector-search.d.ts.map +1 -0
- package/dist/search/vector-search.js +535 -0
- package/dist/search/vector-search.js.map +1 -0
- package/dist/server/mcp-server.d.ts +18 -0
- package/dist/server/mcp-server.d.ts.map +1 -0
- package/dist/server/mcp-server.js +293 -0
- package/dist/server/mcp-server.js.map +1 -0
- package/dist/telemetry.d.ts +92 -0
- package/dist/telemetry.d.ts.map +1 -0
- package/dist/telemetry.js +339 -0
- package/dist/telemetry.js.map +1 -0
- package/dist/telemetry.test.d.ts +13 -0
- package/dist/telemetry.test.d.ts.map +1 -0
- package/dist/telemetry.test.js +324 -0
- package/dist/telemetry.test.js.map +1 -0
- package/dist/test-runner/TestRunner.d.ts +68 -0
- package/dist/test-runner/TestRunner.d.ts.map +1 -0
- package/dist/test-runner/TestRunner.js +384 -0
- package/dist/test-runner/TestRunner.js.map +1 -0
- package/dist/test-runner/performance-test.d.ts +36 -0
- package/dist/test-runner/performance-test.d.ts.map +1 -0
- package/dist/test-runner/performance-test.js +163 -0
- package/dist/test-runner/performance-test.js.map +1 -0
- package/dist/test-runner/run-tests.d.ts +7 -0
- package/dist/test-runner/run-tests.d.ts.map +1 -0
- package/dist/test-runner/run-tests.js +167 -0
- package/dist/test-runner/run-tests.js.map +1 -0
- package/dist/types.d.ts +400 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +81 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/batch-commits.d.ts +48 -0
- package/dist/utils/batch-commits.d.ts.map +1 -0
- package/dist/utils/batch-commits.js +164 -0
- package/dist/utils/batch-commits.js.map +1 -0
- package/dist/utils/code-structure.d.ts +62 -0
- package/dist/utils/code-structure.d.ts.map +1 -0
- package/dist/utils/code-structure.js +582 -0
- package/dist/utils/code-structure.js.map +1 -0
- package/dist/utils/commit-patterns.d.ts +24 -0
- package/dist/utils/commit-patterns.d.ts.map +1 -0
- package/dist/utils/commit-patterns.js +78 -0
- package/dist/utils/commit-patterns.js.map +1 -0
- package/dist/utils/observability.d.ts +47 -0
- package/dist/utils/observability.d.ts.map +1 -0
- package/dist/utils/observability.js +137 -0
- package/dist/utils/observability.js.map +1 -0
- package/dist/utils/quality.d.ts +32 -0
- package/dist/utils/quality.d.ts.map +1 -0
- package/dist/utils/quality.js +207 -0
- package/dist/utils/quality.js.map +1 -0
- package/dist/utils/semantic-search.d.ts +29 -0
- package/dist/utils/semantic-search.d.ts.map +1 -0
- package/dist/utils/semantic-search.js +167 -0
- package/dist/utils/semantic-search.js.map +1 -0
- package/dist/utils/streaming.d.ts +24 -0
- package/dist/utils/streaming.d.ts.map +1 -0
- package/dist/utils/streaming.js +121 -0
- package/dist/utils/streaming.js.map +1 -0
- package/dist/utils/tag-suggestions.d.ts +18 -0
- package/dist/utils/tag-suggestions.d.ts.map +1 -0
- package/dist/utils/tag-suggestions.js +103 -0
- package/dist/utils/tag-suggestions.js.map +1 -0
- package/dist/utils/team-patterns.d.ts +48 -0
- package/dist/utils/team-patterns.d.ts.map +1 -0
- package/dist/utils/team-patterns.js +413 -0
- package/dist/utils/team-patterns.js.map +1 -0
- package/dist/utils/templates.d.ts +36 -0
- package/dist/utils/templates.d.ts.map +1 -0
- package/dist/utils/templates.js +200 -0
- package/dist/utils/templates.js.map +1 -0
- package/dist/utils/tree-sitter-parser.d.ts +20 -0
- package/dist/utils/tree-sitter-parser.d.ts.map +1 -0
- package/dist/utils/tree-sitter-parser.js +259 -0
- package/dist/utils/tree-sitter-parser.js.map +1 -0
- package/dist/utils/v1.6-patterns.d.ts +117 -0
- package/dist/utils/v1.6-patterns.d.ts.map +1 -0
- package/dist/utils/v1.6-patterns.js +201 -0
- package/dist/utils/v1.6-patterns.js.map +1 -0
- package/dist/utils.d.ts +176 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +822 -0
- package/dist/utils.js.map +1 -0
- package/docs/1000_SCENARIOS_TEST_RESULTS.md +138 -0
- package/docs/1000_UNIQUE_SCENARIOS_TEST.md +171 -0
- package/docs/100_PERCENT_PASS_RATE_VERIFICATION.md +111 -0
- package/docs/5000_SCENARIOS_ISSUE_ANALYSIS.md +96 -0
- package/docs/5000_SCENARIOS_TEST_PLAN.md +281 -0
- package/docs/AGENT_CONTRACT.md +240 -0
- package/docs/AI_RESPONSE_ANALYZER.md +157 -0
- package/docs/AI_RESPONSE_TRACKER.md +923 -0
- package/docs/AI_TESTING_PROMPT.md +307 -0
- package/docs/AI_VALIDATION_PROMPTS.md +366 -0
- package/docs/ALL_AI_ANALYSES_CONSOLIDATED.md +354 -0
- package/docs/ALL_AI_CONSOLIDATION_FINAL.md +372 -0
- package/docs/ALL_AI_TEST_CONSOLIDATION.md +290 -0
- package/docs/ALL_AI_VALIDATION_SYNTHESIS.md +241 -0
- package/docs/BEST_TESTING_SOLUTION.md +227 -0
- package/docs/BLACKBOX_AI_ANALYSIS.md +288 -0
- package/docs/BLACKBOX_AI_CLARIFICATION.md +55 -0
- package/docs/BLACKBOX_AI_STRATEGIC_VALIDATION.md +283 -0
- package/docs/BLACKBOX_AI_VALIDATION_RESPONSE.md +251 -0
- package/docs/BLACKBOX_AI_VALIDATION_RESPONSE_v2.md +402 -0
- package/docs/BLACKBOX_LAUNCH_VALIDATION.md +25 -0
- package/docs/BLACKBOX_SUPERMEMORY_VALIDATION_AND_PLAN.md +50 -0
- package/docs/CAPACITY_AND_ALTERNATIVES_ANALYSIS.md +289 -0
- package/docs/CHATGPT_AI_CLARIFICATION.md +65 -0
- package/docs/CHATGPT_FINAL_VALIDATION.md +348 -0
- package/docs/CHATGPT_IMPLEMENTATION_GUIDE.md +325 -0
- package/docs/CHATGPT_LAUNCH_VALIDATION.md +47 -0
- package/docs/CHATGPT_MEMORY_QUALITY_AND_VSCODE_CHECK.md +43 -0
- package/docs/CHATGPT_SCOPE_REALITY_CHECK.md +35 -0
- package/docs/CHATGPT_STRATEGIC_VALIDATION.md +329 -0
- package/docs/CHATGPT_VALIDATION_RESPONSE.md +332 -0
- package/docs/CHATGPT_VALIDATION_RESPONSE_v2.md +294 -0
- package/docs/CHATGPT_VALIDATION_RESULTS.md +143 -0
- package/docs/CLAUDE_AI_ANALYSIS.md +692 -0
- package/docs/CLAUDE_AI_CLARIFICATION.md +67 -0
- package/docs/CLAUDE_AI_STRATEGIC_VALIDATION.md +578 -0
- package/docs/CLAUDE_AI_VALIDATION_RESPONSE.md +374 -0
- package/docs/CLAUDE_AI_VALIDATION_RESPONSE_v2.md +463 -0
- package/docs/CLAUDE_FINAL_VALIDATION.md +679 -0
- package/docs/CLAUDE_LAUNCH_VALIDATION.md +27 -0
- package/docs/CLAUDE_SUPERMEMORY_LAUNCH_PRIORITIES.md +44 -0
- package/docs/CLAUDE_UNIVERSAL_VISION.md +18 -0
- package/docs/COMPLETE_AI_VALIDATION_SYNTHESIS.md +229 -0
- package/docs/COMPLETE_MEMORY_ANALYSIS_SUMMARY.md +323 -0
- package/docs/COMPLETE_STRATEGIC_LAUNCH_PLAN.md +241 -0
- package/docs/COPILOT_LANGCHAIN_MEMORY_COMPARISON_AND_PLAN.md +43 -0
- package/docs/CRITICAL_FIXES_ACTION_PLAN.md +251 -0
- package/docs/CRITICAL_MEMORY_USAGE_PROMPTS.md +290 -0
- package/docs/CURSOR_AI_MEMORY_ANALYSIS.md +479 -0
- package/docs/CURSOR_AI_MEMORY_WORKFLOW_ANALYSIS.md +267 -0
- package/docs/CURSOR_AI_TEST_RESULTS.md +298 -0
- package/docs/DEEPSEEK_AI_CLARIFICATION.md +52 -0
- package/docs/DEEPSEEK_AI_IMPLEMENTATION_GUIDE.md +398 -0
- package/docs/DEEPSEEK_AI_STRATEGIC_VALIDATION.md +348 -0
- package/docs/DEEPSEEK_AI_VALIDATION_RESPONSE.md +276 -0
- package/docs/DEEPSEEK_AI_VALIDATION_RESPONSE_v2.md +325 -0
- package/docs/DEEPSEEK_FINAL_VALIDATION.md +337 -0
- package/docs/DEEPSEEK_LAUNCH_VALIDATION.md +55 -0
- package/docs/DEEPSEEK_SCOPE_REALITY_CHECK.md +30 -0
- package/docs/DEEPSEEK_SUPERMEMORY_ADOPTION_AND_VSCODE_PIVOT.md +47 -0
- package/docs/DEEPSEEK_VALIDATION_RESULTS.md +165 -0
- package/docs/DEVELOPMENT_TESTING_PROTOCOL.md +378 -0
- package/docs/E2E_TEST_RESULTS.md +102 -0
- package/docs/END_TO_END_MEMORY_ISSUE_ANALYSIS.md +442 -0
- package/docs/FEATURE_1_GIT_SYNC_PLAN.md +228 -0
- package/docs/FEATURE_2_AUTO_LOGGING_PLAN.md +239 -0
- package/docs/FEATURE_3_CODE_SNIPPET_PLAN.md +249 -0
- package/docs/FEATURE_4_TAG_NORMALIZATION_PLAN.md +211 -0
- package/docs/FEATURE_5_WINDOWS_PATH_HANDLING_PLAN.md +199 -0
- package/docs/FEATURE_6_CONFLICT_DETECTION_PLAN.md +126 -0
- package/docs/FEATURE_IMPLEMENTATION_REPORT.md +203 -0
- package/docs/FINAL_COMPLETE_LAUNCH_DECISION.md +255 -0
- package/docs/FINAL_LAUNCH_DECISION.md +235 -0
- package/docs/FINAL_LAUNCH_DECISION_ALL_AIS.md +226 -0
- package/docs/FINAL_SCENARIO_VERIFICATION.md +363 -0
- package/docs/FIX_100_PERCENT_ANALYSIS.md +133 -0
- package/docs/FRAMEWORK_STRUCTURE.md +94 -0
- package/docs/GEMINI_AI_ANALYSIS.md +156 -0
- package/docs/GEMINI_AI_CLARIFICATION.md +47 -0
- package/docs/GEMINI_AI_STRATEGIC_VALIDATION.md +235 -0
- package/docs/GEMINI_AI_VALIDATION_RESPONSE.md +238 -0
- package/docs/GEMINI_AI_VALIDATION_RESPONSE_v2.md +168 -0
- package/docs/GEMINI_FINAL_VALIDATION.md +204 -0
- package/docs/GEMINI_LAUNCH_VALIDATION.md +30 -0
- package/docs/GEMINI_SCOPE_AND_UNIVERSALITY_DEBATE.md +25 -0
- package/docs/GEMINI_SUPERMEMORY_TREE_SITTER_MANDATE.md +43 -0
- package/docs/GEMINI_VALIDATION_RESULTS.md +183 -0
- package/docs/GROK_AI_ANALYSIS.md +278 -0
- package/docs/GROK_AI_CLARIFICATION.md +52 -0
- package/docs/GROK_AI_STRATEGIC_VALIDATION.md +306 -0
- package/docs/GROK_AI_VALIDATION_RESPONSE.md +252 -0
- package/docs/GROK_AI_VALIDATION_RESPONSE_v2.md +264 -0
- package/docs/GROK_FINAL_VALIDATION.md +251 -0
- package/docs/GROK_LAUNCH_VALIDATION.md +24 -0
- package/docs/GROK_SCOPE_REALITY_CHECK.md +28 -0
- package/docs/GROK_SUPERMEMORY_LAUNCH_ANALYSIS.md +44 -0
- package/docs/GROK_VALIDATION_RESULTS.md +180 -0
- package/docs/IMPLEMENTATION_PLAN_16_CRITICAL_FIXES.md +641 -0
- package/docs/LANGCHAIN_AND_LANGGRAPH_INTEGRATION_PLAN.md +51 -0
- package/docs/LAUNCH_DECISION_FINAL.md +243 -0
- package/docs/MANUS_AI_ANALYSIS.md +171 -0
- package/docs/MANUS_AI_CLARIFICATION.md +43 -0
- package/docs/MANUS_AI_VALIDATION_RESPONSE.md +335 -0
- package/docs/MANUS_AI_VALIDATION_RESPONSE_v2.md +226 -0
- package/docs/MANUS_FINAL_VALIDATION.md +257 -0
- package/docs/MANUS_VALIDATION_RESULTS.md +237 -0
- package/docs/MCP_SERVER_SETUP.md +167 -0
- package/docs/MEMORYLINK_7AI_FINAL_CONFIRMATION.md +210 -0
- package/docs/MEMORYLINK_CURSOR_AI_DEVELOPMENT_GUIDE.md +1092 -0
- package/docs/MEMORYLINK_DEVELOPMENT_PLAN_CURSOR_AI.md +629 -0
- package/docs/MEMORYLINK_FINAL_7AI_CLARIFICATION.md +184 -0
- package/docs/MEMORYLINK_MASTER_DOCUMENT_v4.md +1338 -0
- package/docs/MEMORYLINK_NAMING_ANALYSIS.md +427 -0
- package/docs/MEMORYLINK_REAL_WORLD_SCENARIOS.md +3517 -0
- package/docs/MEMORYLINK_STORAGE_COMPARISON.md +498 -0
- package/docs/MEMORYLINK_V1.0_FINAL_IMPLEMENTATION_PLAN.md +285 -0
- package/docs/MEMORYLINK_VALIDATION_COMPLETE_ANALYSIS.md +207 -0
- package/docs/MEMORYLINK_VS_MEMORY_APPS_ANALYSIS.md +667 -0
- package/docs/MEMORYLINK_v1.0_BUILD_DOCUMENT_FINAL.md +1928 -0
- package/docs/MEMORY_USAGE_FIX_IMPLEMENTATION.md +314 -0
- package/docs/MISTRAL_AI_ANALYSIS.md +189 -0
- package/docs/MISTRAL_AI_CLARIFICATION.md +57 -0
- package/docs/MISTRAL_AI_STRATEGIC_VALIDATION.md +334 -0
- package/docs/MISTRAL_AI_TESTING_REQUEST.md +261 -0
- package/docs/MISTRAL_AI_VALIDATION_RESPONSE.md +446 -0
- package/docs/MISTRAL_AI_VALIDATION_RESPONSE_v2.md +227 -0
- package/docs/MISTRAL_FINAL_VALIDATION.md +398 -0
- package/docs/MISTRAL_LAUNCH_VALIDATION.md +32 -0
- package/docs/MISTRAL_SCOPE_REALITY_CHECK.md +32 -0
- package/docs/MISTRAL_SUPERMEMORY_LAUNCH_ANALYSIS.md +43 -0
- package/docs/MISTRAL_VALIDATION_RESULTS.md +371 -0
- package/docs/NEXT_PLAN.md +300 -0
- package/docs/PERPLEXITY_AI_ANALYSIS.md +285 -0
- package/docs/PERPLEXITY_AI_CLARIFICATION.md +57 -0
- package/docs/PERPLEXITY_AI_STRATEGIC_VALIDATION.md +288 -0
- package/docs/PERPLEXITY_AI_VALIDATION_RESPONSE.md +350 -0
- package/docs/PERPLEXITY_AI_VALIDATION_RESPONSE_v2.md +260 -0
- package/docs/PERPLEXITY_FINAL_VALIDATION.md +320 -0
- package/docs/PERPLEXITY_LAUNCH_VALIDATION.md +42 -0
- package/docs/PERPLEXITY_MEMORY_QUALITY_AND_VSCODE_PLAN.md +56 -0
- package/docs/PERPLEXITY_SCOPE_REALITY_CHECK.md +31 -0
- package/docs/PERPLEXITY_VALIDATION_RESULTS.md +154 -0
- package/docs/PRE_LAUNCH_GAP_ANALYSIS.md +663 -0
- package/docs/PROJECT_STRUCTURE_PLAN.md +104 -0
- package/docs/QWEN_AI_ANALYSIS.md +176 -0
- package/docs/QWEN_AI_CLARIFICATION.md +60 -0
- package/docs/QWEN_AI_STRATEGIC_VALIDATION.md +241 -0
- package/docs/QWEN_AI_VALIDATION_RESPONSE.md +197 -0
- package/docs/QWEN_AI_VALIDATION_RESPONSE_v2.md +186 -0
- package/docs/QWEN_FINAL_VALIDATION.md +284 -0
- package/docs/QWEN_LAUNCH_VALIDATION.md +26 -0
- package/docs/QWEN_SCENARIOS_TEST_RESULTS.md +244 -0
- package/docs/QWEN_SCOPE_REALITY_CHECK.md +26 -0
- package/docs/QWEN_SUPERMEMORY_LAUNCH_AND_ENFORCEMENT_PLAN.md +56 -0
- package/docs/QWEN_VALIDATION_RESULTS.md +185 -0
- package/docs/README.md +479 -0
- package/docs/REAL_PRODUCT_LAUNCH_DECISION.md +185 -0
- package/docs/RECIPES.md +424 -0
- package/docs/RELEASE_NOTES_v1.0.0.md +193 -0
- package/docs/SCENARIO_INVENTORY_AND_VERIFICATION.md +284 -0
- package/docs/SINGLE_RUN_1018_SCENARIOS_RESULTS.md +142 -0
- package/docs/TESTING.md +256 -0
- package/docs/TESTING_STRATEGY.md +194 -0
- package/docs/TROUBLESHOOTING.md +188 -0
- package/docs/ULTIMATE_LAUNCH_DECISION.md +246 -0
- package/docs/WHAT_WE_BUILT.md +504 -0
- package/docs/v1.0_LAUNCH_CHECKLIST.md +104 -0
- package/examples/README.md +199 -0
- package/examples/chatgpt-context.js +161 -0
- package/examples/ci-integration.js +288 -0
- package/examples/sync-from-cursor.js +196 -0
- package/extensions/vscode/README.md +25 -0
- package/extensions/vscode/out/buddy-check.js +208 -0
- package/extensions/vscode/out/buddy-check.js.map +1 -0
- package/extensions/vscode/out/extension.js +413 -0
- package/extensions/vscode/out/extension.js.map +1 -0
- package/extensions/vscode/out/sidebar.js +409 -0
- package/extensions/vscode/out/sidebar.js.map +1 -0
- package/extensions/vscode/package.json +92 -0
- package/extensions/vscode/src/buddy-check.ts +220 -0
- package/extensions/vscode/src/extension.ts +425 -0
- package/extensions/vscode/src/shims-vscode.d.ts +2 -0
- package/extensions/vscode/src/sidebar.ts +431 -0
- package/extensions/vscode/tsconfig.json +14 -0
- package/k6-load-test.js +86 -0
- package/package.json +68 -0
- package/run-professional-tests.sh +72 -0
- package/scripts/monitor-continuous-test.sh +17 -0
- package/scripts/reorganize-project.sh +164 -0
- package/scripts/run-tests-parallel.sh +111 -0
- package/scripts/run-tests.sh +30 -0
- package/scripts/setup-framework.sh +139 -0
- package/scripts/setup-testing.sh +96 -0
- package/scripts/stress-test/README.md +86 -0
- package/scripts/stress-test/create-all-scenarios.sh +17 -0
- package/scripts/stress-test/create-remaining-scenarios.sh +3 -0
- package/scripts/stress-test/dev-test.sh +21 -0
- package/scripts/stress-test/monitor-continuous.sh +149 -0
- package/scripts/stress-test/overnight-test.sh +30 -0
- package/scripts/stress-test/quick-test.sh +21 -0
- package/scripts/stress-test/run-all-tests.sh +157 -0
- package/scripts/stress-test/run-continuous.sh +300 -0
- package/scripts/stress-test/run-stress-test.sh +153 -0
- package/scripts/stress-test/set1/1_1_mass_refactoring.sh +117 -0
- package/scripts/stress-test/set1/1_1_mass_refactoring_simple.sh +117 -0
- package/scripts/stress-test/set1/1_2_function_rename.sh +95 -0
- package/scripts/stress-test/set1/1_3_feature_flags.sh +93 -0
- package/scripts/stress-test/set1/1_4_feature_removal.sh +57 -0
- package/scripts/stress-test/set1/1_5_schema_changes.sh +42 -0
- package/scripts/stress-test/set1/1_6_dependency_update.sh +47 -0
- package/scripts/stress-test/set1/1_7_config_modification.sh +53 -0
- package/scripts/stress-test/set2/2_1_payment_logging.sh +49 -0
- package/scripts/stress-test/set2/2_2_test_data_generation.sh +43 -0
- package/scripts/stress-test/set2/2_3_documentation_leak.sh +45 -0
- package/scripts/stress-test/set2/2_4_api_key_rotation.sh +45 -0
- package/scripts/stress-test/set2/2_5_hardcoded_secrets.sh +45 -0
- package/scripts/stress-test/set2/2_6_debug_output.sh +49 -0
- package/scripts/stress-test/set3/3_1_billing_modification.sh +47 -0
- package/scripts/stress-test/set3/3_2_migration_deletion.sh +43 -0
- package/scripts/stress-test/set3/3_3_auth_middleware.sh +52 -0
- package/scripts/stress-test/set3/3_4_permission_bypass.sh +48 -0
- package/scripts/stress-test/set3/3_5_config_modification.sh +43 -0
- package/scripts/stress-test/set3/3_6_core_library.sh +51 -0
- package/scripts/stress-test/set3/3_7_test_infrastructure.sh +49 -0
- package/scripts/stress-test/set4/4_1_concurrent_features.sh +49 -0
- package/scripts/stress-test/set4/4_2_lock_acquisition.sh +32 -0
- package/scripts/stress-test/set4/4_3_migration_hotfix.sh +43 -0
- package/scripts/stress-test/set4/4_4_overlapping_scopes.sh +50 -0
- package/scripts/stress-test/set4/4_5_lock_timeout.sh +34 -0
- package/scripts/stress-test/set4/4_6_concurrent_stats.sh +33 -0
- package/scripts/stress-test/set5/5_1_wrong_decision.sh +41 -0
- package/scripts/stress-test/set5/5_2_outdated_docs.sh +40 -0
- package/scripts/stress-test/set5/5_3_conflicting_memories.sh +34 -0
- package/scripts/stress-test/set5/5_4_deleted_file_references.sh +38 -0
- package/scripts/stress-test/set5/5_5_old_pattern.sh +41 -0
- package/scripts/stress-test/set5/5_6_wrong_architecture.sh +42 -0
- package/scripts/stress-test/set5/5_7_high_trust_stale.sh +46 -0
- package/scripts/stress-test/set5/5_8_observability_stale.sh +36 -0
- package/scripts/stress-test/setup-test-repo-simple.sh +144 -0
- package/scripts/stress-test/setup-test-repo.sh +154 -0
- package/scripts/stress-test/start-continuous.sh +48 -0
- package/scripts/stress-test/stop-continuous.sh +42 -0
- package/scripts/stress-test/template-scenario.sh +115 -0
- package/scripts/test-advanced-scenarios.sh +411 -0
- package/scripts/test-continuous-30min.sh +307 -0
- package/scripts/test-continuous-enhanced.sh +250 -0
- package/scripts/test-e2e-comprehensive.sh +114 -0
- package/scripts/test-e2e-random.sh +359 -0
- package/scripts/test-fresh-scenarios.sh +412 -0
- package/scripts/test-new-scenarios.sh +374 -0
- package/scripts/test-quick-random.sh +97 -0
- package/scripts/test-runtime.sh +129 -0
- package/scripts/test-telemetry-local.sh +193 -0
- package/scripts/test-ultimate-scenarios.sh +428 -0
- package/scripts/test-v1.5-complete.sh +225 -0
- package/scripts/test-v1.5-phase1.sh +222 -0
- package/src/cli.ts +1259 -0
- package/src/commands/archive.ts +252 -0
- package/src/commands/auto-context.ts +159 -0
- package/src/commands/auto-log.ts +531 -0
- package/src/commands/change.ts +298 -0
- package/src/commands/checkpoint.ts +390 -0
- package/src/commands/configure.ts +297 -0
- package/src/commands/consolidate.ts +263 -0
- package/src/commands/context.ts +618 -0
- package/src/commands/detect.ts +181 -0
- package/src/commands/doctor.ts +1468 -0
- package/src/commands/export.ts +77 -0
- package/src/commands/graph.ts +214 -0
- package/src/commands/hooks.ts +245 -0
- package/src/commands/impact.ts +163 -0
- package/src/commands/index-vector.ts +126 -0
- package/src/commands/index.ts +57 -0
- package/src/commands/init.ts +194 -0
- package/src/commands/inject.ts +440 -0
- package/src/commands/learn.ts +328 -0
- package/src/commands/lock.ts +345 -0
- package/src/commands/memory.ts +415 -0
- package/src/commands/migrate.ts +540 -0
- package/src/commands/patterns.ts +158 -0
- package/src/commands/protect.ts +199 -0
- package/src/commands/quickstart.ts +259 -0
- package/src/commands/resolve.ts +373 -0
- package/src/commands/roadmap.ts +25 -0
- package/src/commands/scopes.ts +113 -0
- package/src/commands/search.ts +365 -0
- package/src/commands/setup.ts +430 -0
- package/src/commands/snippet.ts +271 -0
- package/src/commands/stats.ts +591 -0
- package/src/commands/status.ts +127 -0
- package/src/commands/suggest-tags.ts +122 -0
- package/src/commands/sync-rules.ts +218 -0
- package/src/commands/sync.ts +363 -0
- package/src/commands/telemetry-test.ts +97 -0
- package/src/commands/template.ts +166 -0
- package/src/commands/validate.ts +191 -0
- package/src/commands/watch-preferences.ts +162 -0
- package/src/commands/watch.ts +239 -0
- package/src/config/thresholds.ts +14 -0
- package/src/index.ts +12 -0
- package/src/memorylink.ts +308 -0
- package/src/search/local-embeddings.ts +94 -0
- package/src/search/vector-search.ts +608 -0
- package/src/server/mcp-server.ts +355 -0
- package/src/telemetry.ts +391 -0
- package/src/test-runner/TestRunner.ts +421 -0
- package/src/test-runner/performance-test.ts +161 -0
- package/src/test-runner/run-tests.ts +152 -0
- package/src/types.ts +533 -0
- package/src/utils/batch-commits.ts +162 -0
- package/src/utils/code-structure.ts +686 -0
- package/src/utils/commit-patterns.ts +87 -0
- package/src/utils/observability.ts +149 -0
- package/src/utils/quality.ts +230 -0
- package/src/utils/semantic-search.ts +222 -0
- package/src/utils/streaming.ts +109 -0
- package/src/utils/tag-suggestions.ts +117 -0
- package/src/utils/team-patterns.ts +499 -0
- package/src/utils/templates.ts +181 -0
- package/src/utils/tree-sitter-parser.ts +246 -0
- package/src/utils/v1.6-patterns.ts +227 -0
- package/src/utils.ts +885 -0
- package/test-all-features.sh +102 -0
- package/test-all-implemented-features.sh +209 -0
- package/test-all-new-features.sh +171 -0
- package/test-auto-log.txt +1 -0
- package/test-batch-commits.sh +47 -0
- package/test-conflict-resolution.sh +47 -0
- package/test-e2e.sh +22 -0
- package/test-end-to-end.sh +151 -0
- package/test-enhanced-autocapture.sh +164 -0
- package/test-inject.sh +44 -0
- package/test-mcp-server.sh +67 -0
- package/test-pagination.sh +37 -0
- package/test-python-go-structure.sh +164 -0
- package/test-quality-validation.sh +167 -0
- package/test-results-quick-smoke.json +13 -0
- package/test-results-targeted-perf.json +23 -0
- package/test-results.json +2272 -0
- package/test-scenarios/payment-logging.ts +17 -0
- package/test-scenarios/test-config.ts +13 -0
- package/test-semantic-search.sh +161 -0
- package/test-tag-intelligence.sh +49 -0
- package/test-vector-search.sh +64 -0
- package/test-vscode-extension.sh +144 -0
- package/test-watcher-file.txt +2 -0
- package/test-watcher-file2.txt +1 -0
- package/test-watcher.sh +103 -0
- package/test_qwen_scenarios.sh +285 -0
- package/tests/scenarios/4000_HARD_SCENARIOS.sh +4137 -0
- package/tests/scenarios/ADD_V1.1_SCENARIOS.sh +93 -0
- package/tests/scenarios/AGGRESSIVE_RANDOM_E2E_TEST.sh +474 -0
- package/tests/scenarios/COMPLETE_PRODUCT_VALIDATION.sh +227 -0
- package/tests/scenarios/COMPREHENSIVE_E2E_TEST.sh +426 -0
- package/tests/scenarios/CONTINUOUS_RANDOM_STRESS_TEST.sh +240 -0
- package/tests/scenarios/EXECUTE_10000_SCENARIOS.sh +61 -0
- package/tests/scenarios/EXECUTE_1000_UNIQUE_SCENARIOS.sh +190 -0
- package/tests/scenarios/EXECUTE_5000_SCENARIOS_SPLIT.sh +192 -0
- package/tests/scenarios/EXECUTE_5000_TOTAL_SCENARIOS.sh +162 -0
- package/tests/scenarios/EXECUTE_5040_SCENARIOS_WITH_V1.1.sh +251 -0
- package/tests/scenarios/EXECUTE_8_BATCHES_500.sh +51 -0
- package/tests/scenarios/EXECUTE_QUICK_SMOKE.sh +9 -0
- package/tests/scenarios/EXECUTE_SINGLE_BATCH.sh +117 -0
- package/tests/scenarios/EXECUTE_TARGETED_PERF.sh +19 -0
- package/tests/scenarios/GENERATE_1000_SCENARIOS.sh +235 -0
- package/tests/scenarios/GENERATE_4000_HARD_SCENARIOS.sh +266 -0
- package/tests/scenarios/GENERATE_4000_HARD_SCENARIOS_FIXED.sh +267 -0
- package/tests/scenarios/GENERATE_4000_HARD_SCENARIOS_FIXED_V2.sh +267 -0
- package/tests/scenarios/NEW_RANDOM_E2E_TEST.sh +422 -0
- package/tests/scenarios/QUICK_SMOKE_200.sh +38 -0
- package/tests/scenarios/QUICK_SMOKE_MINI.sh +3 -0
- package/tests/scenarios/RANDOM_REAL_WORLD_SCENARIOS.sh +372 -0
- package/tests/scenarios/ROUND3_RANDOM_E2E_TEST.sh +446 -0
- package/tests/scenarios/RUN_AGGRESSIVE_AND_SUMMARY.sh +51 -0
- package/tests/scenarios/RUN_ALL_1018_SCENARIOS.sh +161 -0
- package/tests/scenarios/TARGETED_PERF.sh +75 -0
- package/tests/scenarios/V1.1_FEATURES_SCENARIOS.sh +145 -0
- package/tests/unit/utils.test.ts +52 -0
- package/tests/v1.1-features-scenarios.sh +276 -0
- package/tsconfig.json +21 -0
- package/v1.6_FEATURE_REQUESTS.md +79 -0
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Professional Test Runner CLI
|
|
4
|
+
* Usage: npx tsx src/test-runner/run-tests.ts [options]
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { TestRunner } from './TestRunner.js';
|
|
8
|
+
import * as path from 'path';
|
|
9
|
+
import * as fs from 'fs/promises';
|
|
10
|
+
|
|
11
|
+
interface Options {
|
|
12
|
+
scenariosFile?: string;
|
|
13
|
+
concurrency?: number;
|
|
14
|
+
verbose?: boolean;
|
|
15
|
+
output?: string;
|
|
16
|
+
batch?: number;
|
|
17
|
+
resume?: boolean;
|
|
18
|
+
checkpoint?: string;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
async function main() {
|
|
22
|
+
const args = process.argv.slice(2);
|
|
23
|
+
const options: Options = {
|
|
24
|
+
scenariosFile: '4000_HARD_SCENARIOS.sh',
|
|
25
|
+
concurrency: 20, // Increased default for better performance
|
|
26
|
+
verbose: false,
|
|
27
|
+
output: 'test-results.json',
|
|
28
|
+
resume: false,
|
|
29
|
+
checkpoint: '.test-checkpoint.json',
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
// Parse arguments
|
|
33
|
+
for (let i = 0; i < args.length; i++) {
|
|
34
|
+
if (args[i] === '--file' || args[i] === '-f') {
|
|
35
|
+
options.scenariosFile = args[++i];
|
|
36
|
+
} else if (args[i] === '--concurrency' || args[i] === '-c') {
|
|
37
|
+
options.concurrency = parseInt(args[++i]) || 10;
|
|
38
|
+
} else if (args[i] === '--verbose' || args[i] === '-v') {
|
|
39
|
+
options.verbose = true;
|
|
40
|
+
} else if (args[i] === '--output' || args[i] === '-o') {
|
|
41
|
+
options.output = args[++i];
|
|
42
|
+
} else if (args[i] === '--batch' || args[i] === '-b') {
|
|
43
|
+
options.batch = parseInt(args[++i]);
|
|
44
|
+
} else if (args[i] === '--resume' || args[i] === '-r') {
|
|
45
|
+
options.resume = true;
|
|
46
|
+
i++;
|
|
47
|
+
} else if (args[i] === '--checkpoint' || args[i] === '-c') {
|
|
48
|
+
options.checkpoint = args[++i];
|
|
49
|
+
} else if (args[i] === '--help' || args[i] === '-h') {
|
|
50
|
+
console.log(`
|
|
51
|
+
MemoryLink Professional Test Runner
|
|
52
|
+
|
|
53
|
+
Usage: npx tsx src/test-runner/run-tests.ts [options]
|
|
54
|
+
|
|
55
|
+
Options:
|
|
56
|
+
-f, --file <path> Path to scenarios file (default: 4000_HARD_SCENARIOS.sh)
|
|
57
|
+
-c, --concurrency <num> Number of parallel tests (default: 10)
|
|
58
|
+
-v, --verbose Show detailed output for each test
|
|
59
|
+
-o, --output <path> Output file for JSON report (default: test-results.json)
|
|
60
|
+
-b, --batch <num> Run only specific batch (1-8)
|
|
61
|
+
-r, --resume Resume from last checkpoint
|
|
62
|
+
-c, --checkpoint <path> Checkpoint file path
|
|
63
|
+
-h, --help Show this help message
|
|
64
|
+
|
|
65
|
+
Examples:
|
|
66
|
+
npx tsx src/test-runner/run-tests.ts
|
|
67
|
+
npx tsx src/test-runner/run-tests.ts --concurrency 20 --batch 3
|
|
68
|
+
npx tsx src/test-runner/run-tests.ts --verbose --output results.json
|
|
69
|
+
`);
|
|
70
|
+
process.exit(0);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
console.log('═══════════════════════════════════════════════════════════════════════════════');
|
|
75
|
+
console.log(' 🧪 MemoryLink Professional Test Runner');
|
|
76
|
+
console.log('═══════════════════════════════════════════════════════════════════════════════');
|
|
77
|
+
console.log('');
|
|
78
|
+
|
|
79
|
+
const runner = new TestRunner(
|
|
80
|
+
options.concurrency,
|
|
81
|
+
options.verbose,
|
|
82
|
+
options.checkpoint,
|
|
83
|
+
options.resume || false
|
|
84
|
+
);
|
|
85
|
+
|
|
86
|
+
try {
|
|
87
|
+
// Load scenarios
|
|
88
|
+
const scenariosPath = path.resolve(process.cwd(), options.scenariosFile!);
|
|
89
|
+
console.log(`📂 Loading scenarios from: ${scenariosPath}`);
|
|
90
|
+
await runner.loadScenarios(scenariosPath);
|
|
91
|
+
|
|
92
|
+
// Filter by batch if specified
|
|
93
|
+
if (options.batch) {
|
|
94
|
+
const allScenarios = (runner as any).scenarios;
|
|
95
|
+
(runner as any).scenarios = allScenarios.filter((s: any) => s.batch === options.batch);
|
|
96
|
+
console.log(`📦 Filtered to Batch ${options.batch}: ${(runner as any).scenarios.length} scenarios`);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
// Run tests
|
|
100
|
+
const result = await runner.runAll();
|
|
101
|
+
|
|
102
|
+
// Display results
|
|
103
|
+
console.log('\n═══════════════════════════════════════════════════════════════════════════════');
|
|
104
|
+
console.log('📊 TEST RESULTS');
|
|
105
|
+
console.log('═══════════════════════════════════════════════════════════════════════════════');
|
|
106
|
+
console.log('');
|
|
107
|
+
console.log(`Total Scenarios: ${result.total}`);
|
|
108
|
+
console.log(`✅ Passed: ${result.passed}`);
|
|
109
|
+
console.log(`❌ Failed: ${result.failed}`);
|
|
110
|
+
console.log(`📈 Pass Rate: ${result.passRate.toFixed(2)}%`);
|
|
111
|
+
console.log(`⏱️ Duration: ${(result.duration / 1000).toFixed(2)}s`);
|
|
112
|
+
console.log('');
|
|
113
|
+
|
|
114
|
+
// Show failures
|
|
115
|
+
if (result.failures.length > 0) {
|
|
116
|
+
console.log('❌ FAILURES:');
|
|
117
|
+
result.failures.slice(0, 10).forEach(f => {
|
|
118
|
+
console.log(` - Scenario ${f.scenario.id}: ${f.scenario.description}`);
|
|
119
|
+
if (options.verbose && f.error) {
|
|
120
|
+
console.log(` Error: ${f.error.substring(0, 100)}`);
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
if (result.failures.length > 10) {
|
|
124
|
+
console.log(` ... and ${result.failures.length - 10} more`);
|
|
125
|
+
}
|
|
126
|
+
console.log('');
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
// Generate report
|
|
130
|
+
const reportPath = path.resolve(process.cwd(), options.output!);
|
|
131
|
+
await runner.generateReport(result, reportPath);
|
|
132
|
+
|
|
133
|
+
// Final verdict
|
|
134
|
+
if (result.failed === 0) {
|
|
135
|
+
console.log('🎯 RESULT: ✅ ALL SCENARIOS PASSED (100%)');
|
|
136
|
+
console.log('');
|
|
137
|
+
console.log('═══════════════════════════════════════════════════════════════════════════════');
|
|
138
|
+
console.log(' 🚀 MemoryLink v1.0 - PRODUCTION READY');
|
|
139
|
+
console.log('═══════════════════════════════════════════════════════════════════════════════');
|
|
140
|
+
process.exit(0);
|
|
141
|
+
} else {
|
|
142
|
+
console.log(`⚠️ RESULT: ${result.failed} scenario(s) failed`);
|
|
143
|
+
process.exit(1);
|
|
144
|
+
}
|
|
145
|
+
} catch (error: any) {
|
|
146
|
+
console.error('❌ Test execution failed:', error.message);
|
|
147
|
+
process.exit(1);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
main().catch(console.error);
|
|
152
|
+
|
package/src/types.ts
ADDED
|
@@ -0,0 +1,533 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MemoryLink - Core Types and Interfaces
|
|
3
|
+
* Universal memory layer for AI coding assistants
|
|
4
|
+
*
|
|
5
|
+
* v1.0 UPDATE: All logs now use JSONL format for robust parsing,
|
|
6
|
+
* schema validation, and future extensibility.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
// ============================================
|
|
10
|
+
// ENTRY STATUS TYPES
|
|
11
|
+
// ============================================
|
|
12
|
+
|
|
13
|
+
// Log entry status for learnings
|
|
14
|
+
export type LearningStatus = 'SUCCESS' | 'FAILED';
|
|
15
|
+
|
|
16
|
+
// Entry lifecycle status
|
|
17
|
+
export type EntryStatus = 'ACTIVE' | 'DEPRECATED' | 'DELETED';
|
|
18
|
+
|
|
19
|
+
// Memory entry types
|
|
20
|
+
export type MemoryType = 'note' | 'decision' | 'doc_ref' | 'context' | 'rule' | 'preference' | 'code_snippet' | 'code_structure';
|
|
21
|
+
|
|
22
|
+
// ============================================
|
|
23
|
+
// JSONL ENTRY INTERFACES (v1.0)
|
|
24
|
+
// ============================================
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Base interface for all JSONL log entries
|
|
28
|
+
*/
|
|
29
|
+
export interface BaseEntry {
|
|
30
|
+
id: string; // UUID v4
|
|
31
|
+
ts: string; // ISO 8601 timestamp
|
|
32
|
+
agent: string; // "cursor", "claude", "chatgpt", "user", etc.
|
|
33
|
+
status: EntryStatus; // Entry lifecycle status
|
|
34
|
+
tags?: string[]; // Searchable keywords
|
|
35
|
+
forcedSecretCheck?: boolean; // If --force was used to bypass secret detection
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Memory log entry (JSONL format)
|
|
40
|
+
* File: .memorylink/memory.log
|
|
41
|
+
*
|
|
42
|
+
* v1.4: Enhanced with Buddy-Check fields (backward compatible)
|
|
43
|
+
* v1.3 and earlier records will have defaults applied during migration
|
|
44
|
+
*/
|
|
45
|
+
export interface MemoryEntry extends BaseEntry {
|
|
46
|
+
type: MemoryType; // Type of memory entry
|
|
47
|
+
details: string; // Main content/message
|
|
48
|
+
path?: string; // For doc_ref: path to referenced file
|
|
49
|
+
hash?: string; // For doc_ref: file hash for integrity
|
|
50
|
+
replacesId?: string; // ID of entry this replaces (for updates)
|
|
51
|
+
// For code_snippet type:
|
|
52
|
+
code?: string; // Actual code content
|
|
53
|
+
language?: string; // Programming language (typescript, python, etc.)
|
|
54
|
+
file?: string; // Source file path (for code_snippet)
|
|
55
|
+
lines?: string; // Line range (e.g., "42-50" or "42")
|
|
56
|
+
context?: string; // Why this snippet is important
|
|
57
|
+
// For code_structure type (v1.2):
|
|
58
|
+
dependencies?: string[]; // Files this depends on
|
|
59
|
+
complexity?: number; // Code complexity score
|
|
60
|
+
|
|
61
|
+
// v1.4 Buddy-Check fields (optional for backward compatibility)
|
|
62
|
+
schemaVersion?: string; // "1.4.0" if v1.4 record, undefined for v1.3
|
|
63
|
+
recordVersion?: number; // Version number for this record
|
|
64
|
+
projectPath?: string; // Project path (defaults to current dir)
|
|
65
|
+
location?: RecordLocation; // Code location if applicable
|
|
66
|
+
sensitivity?: Sensitivity; // Defaults to 'internal' if missing
|
|
67
|
+
trustLevel?: TrustLevel; // Defaults to 'medium' if missing
|
|
68
|
+
memoryStatus?: MemoryStatus; // Defaults to 'VERIFIED' for human, 'DRAFT' for agent
|
|
69
|
+
sourceType?: SourceType; // Defaults based on agent field
|
|
70
|
+
provenance?: Provenance; // Defaults from ts/agent fields
|
|
71
|
+
expiresAt?: string; // Optional TTL
|
|
72
|
+
incident?: boolean; // Optional incident flag
|
|
73
|
+
// v1.5 Phase 2: Project scoping
|
|
74
|
+
projectScope?: string; // Optional project/feature scope (e.g., "frontend", "backend")
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Learning log entry (JSONL format)
|
|
79
|
+
* File: .memorylink/learnings.log
|
|
80
|
+
*/
|
|
81
|
+
export interface LearningEntry extends BaseEntry {
|
|
82
|
+
problem: string; // Problem description
|
|
83
|
+
solution: string; // Solution that was tried
|
|
84
|
+
outcome: LearningStatus; // SUCCESS or FAILED
|
|
85
|
+
reason?: string; // Why it succeeded/failed
|
|
86
|
+
confidence?: number; // 0-1 confidence score
|
|
87
|
+
replacesId?: string; // ID of entry this replaces
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Change log entry (JSONL format)
|
|
92
|
+
* File: .memorylink/changes.log
|
|
93
|
+
*/
|
|
94
|
+
export interface ChangeEntry extends BaseEntry {
|
|
95
|
+
file: string; // File path that was changed
|
|
96
|
+
action: 'created' | 'edited' | 'deleted' | 'renamed';
|
|
97
|
+
reason: string; // Why the change was made
|
|
98
|
+
user?: string; // User who initiated (if known)
|
|
99
|
+
diff?: string; // Optional diff summary
|
|
100
|
+
// Enhanced context fields (v1.2+):
|
|
101
|
+
justification?: string; // Detailed justification for the change
|
|
102
|
+
reviewedBy?: string; // Person who reviewed the change
|
|
103
|
+
tested?: string; // Testing status/notes
|
|
104
|
+
impact?: string; // Human-readable impact description
|
|
105
|
+
// For change_impact type (v1.2):
|
|
106
|
+
type?: 'change' | 'change_impact';
|
|
107
|
+
impactData?: {
|
|
108
|
+
direct_dependents: number;
|
|
109
|
+
indirect_dependents: number;
|
|
110
|
+
breaking_changes: string[];
|
|
111
|
+
migration_required: boolean;
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* Protected file entry
|
|
117
|
+
* File: .memorylink/protected.txt (plain text, one per line)
|
|
118
|
+
*/
|
|
119
|
+
export interface ProtectedFile {
|
|
120
|
+
path: string;
|
|
121
|
+
addedAt: string;
|
|
122
|
+
reason?: string;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
// ============================================
|
|
126
|
+
// LEGACY TYPES (for migration)
|
|
127
|
+
// ============================================
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* Legacy memory entry (pre-v1.0 text format)
|
|
131
|
+
* Format: [TIMESTAMP] MESSAGE [tags]
|
|
132
|
+
*/
|
|
133
|
+
export interface LegacyMemoryEntry {
|
|
134
|
+
timestamp: string;
|
|
135
|
+
message: string;
|
|
136
|
+
tags?: string[];
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
/**
|
|
140
|
+
* Legacy learning entry (pre-v1.0 text format)
|
|
141
|
+
* Format: [TIMESTAMP] [STATUS] PROBLEM -> SOLUTION [tags]
|
|
142
|
+
*/
|
|
143
|
+
export interface LegacyLearningEntry {
|
|
144
|
+
timestamp: string;
|
|
145
|
+
problem: string;
|
|
146
|
+
solution: string;
|
|
147
|
+
status: LearningStatus;
|
|
148
|
+
tags?: string[];
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
/**
|
|
152
|
+
* Legacy change entry (pre-v1.0 text format)
|
|
153
|
+
* Format: [TIMESTAMP] FILE: REASON (agent)
|
|
154
|
+
*/
|
|
155
|
+
export interface LegacyChangeEntry {
|
|
156
|
+
timestamp: string;
|
|
157
|
+
file: string;
|
|
158
|
+
reason: string;
|
|
159
|
+
agent?: string;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
// Configuration
|
|
163
|
+
export interface MemoryLinkConfig {
|
|
164
|
+
version: string;
|
|
165
|
+
initialized: string;
|
|
166
|
+
watchIgnore: string[];
|
|
167
|
+
// v1.4: Mode configuration for Buddy-Check
|
|
168
|
+
mode?: 'developer' | 'enterprise';
|
|
169
|
+
strict?: boolean;
|
|
170
|
+
// v1.5 Phase 2: Lock timeout configuration
|
|
171
|
+
lockTimeoutMinutes?: number;
|
|
172
|
+
// v1.5 Phase 2: Smart filtering weights
|
|
173
|
+
smart?: {
|
|
174
|
+
weights?: {
|
|
175
|
+
trust?: { high?: number; medium?: number; low?: number };
|
|
176
|
+
status?: { verified?: number; draft?: number; default?: number };
|
|
177
|
+
recency?: { day1?: number; day7?: number; day30?: number; day90?: number; older?: number };
|
|
178
|
+
file?: { exact?: number; partial?: number; directory?: number };
|
|
179
|
+
task?: { max?: number };
|
|
180
|
+
};
|
|
181
|
+
threshold?: number; // Minimum score to include (default: 10)
|
|
182
|
+
};
|
|
183
|
+
// v1.6: Telemetry configuration (opt-in only, OFF by default)
|
|
184
|
+
telemetry?: {
|
|
185
|
+
enabled?: boolean; // Default: false (opt-in only)
|
|
186
|
+
endpoint?: string | null; // HTTP endpoint for events (null = disabled)
|
|
187
|
+
apiKey?: string | null; // Optional API key for authentication
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
// Export options
|
|
192
|
+
export interface ExportOptions extends GlobalOptions {
|
|
193
|
+
format?: 'json' | 'jsonl';
|
|
194
|
+
limit?: number;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
// Doctor check result (v1.3)
|
|
198
|
+
export interface DoctorCheck {
|
|
199
|
+
name: string;
|
|
200
|
+
status: 'pass' | 'fail' | 'warn';
|
|
201
|
+
message: string;
|
|
202
|
+
suggestion?: string; // Auto-fix suggestion for this issue
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
// ============================================
|
|
206
|
+
// V1.4 BUDDY-CHECK TYPES
|
|
207
|
+
// ============================================
|
|
208
|
+
|
|
209
|
+
/**
|
|
210
|
+
* Buddy-Check status (v1.4)
|
|
211
|
+
* GREEN: No errors, safe to proceed
|
|
212
|
+
* YELLOW: Warnings but no hard errors
|
|
213
|
+
* RED: Critical errors, should block
|
|
214
|
+
*/
|
|
215
|
+
export type BuddyStatus = 'GREEN' | 'YELLOW' | 'RED';
|
|
216
|
+
|
|
217
|
+
/**
|
|
218
|
+
* Buddy-Check issue (v1.4)
|
|
219
|
+
*/
|
|
220
|
+
export interface BuddyIssue {
|
|
221
|
+
id?: string; // record id if applicable
|
|
222
|
+
type: string; // SCHEMA, BROKEN_REF, SECRET, PII, STALE, CONFLICT, POLICY, etc.
|
|
223
|
+
severity: 'info' | 'warning' | 'error';
|
|
224
|
+
message: string;
|
|
225
|
+
projectPath?: string;
|
|
226
|
+
suggestion?: string; // Optional fix suggestion
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
/**
|
|
230
|
+
* Human override information (v1.4)
|
|
231
|
+
*/
|
|
232
|
+
export interface BuddyOverride {
|
|
233
|
+
approvedBy: string;
|
|
234
|
+
reason: string;
|
|
235
|
+
timestamp: string; // ISO 8601 UTC
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
/**
|
|
239
|
+
* Buddy-Check report (v1.4)
|
|
240
|
+
*/
|
|
241
|
+
export interface BuddyReport {
|
|
242
|
+
status: BuddyStatus;
|
|
243
|
+
summary: string;
|
|
244
|
+
issues: BuddyIssue[];
|
|
245
|
+
override?: BuddyOverride;
|
|
246
|
+
timestamp?: string; // When report was generated
|
|
247
|
+
runType?: 'preflight' | 'postflight';
|
|
248
|
+
agentId?: string; // Agent that triggered the check
|
|
249
|
+
branch?: string; // Git branch
|
|
250
|
+
recordsUsed?: number; // Number of records checked
|
|
251
|
+
highTrust?: number; // Count of high trust records
|
|
252
|
+
mediumTrust?: number; // Count of medium trust records
|
|
253
|
+
lowTrust?: number; // Count of low trust records
|
|
254
|
+
staleCount?: number; // Count of stale records
|
|
255
|
+
durationMs?: number; // Check duration in milliseconds
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
// Status report
|
|
259
|
+
export interface StatusReport {
|
|
260
|
+
initialized: boolean;
|
|
261
|
+
protectedCount: number;
|
|
262
|
+
memoryCount: number;
|
|
263
|
+
changesCount: number;
|
|
264
|
+
learningsCount: number;
|
|
265
|
+
successCount: number;
|
|
266
|
+
failedCount: number;
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
// ============================================
|
|
270
|
+
// CLI OPTIONS
|
|
271
|
+
// ============================================
|
|
272
|
+
|
|
273
|
+
export interface GlobalOptions {
|
|
274
|
+
verbose?: boolean;
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
export interface MemoryOptions extends GlobalOptions {
|
|
278
|
+
tags?: string;
|
|
279
|
+
type?: MemoryType;
|
|
280
|
+
force?: boolean; // Bypass secret detection
|
|
281
|
+
template?: string; // Template name (v1.3 - Week 6)
|
|
282
|
+
scope?: string; // v1.5 Phase 2: Project scope (e.g., "frontend", "backend")
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
export interface LearnOptions extends GlobalOptions {
|
|
286
|
+
status: LearningStatus;
|
|
287
|
+
tags?: string;
|
|
288
|
+
reason?: string;
|
|
289
|
+
force?: boolean; // Bypass secret detection
|
|
290
|
+
template?: string; // Template name (v1.3 - Week 6)
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
export interface ChangeOptions extends GlobalOptions {
|
|
294
|
+
justification?: string; // Detailed justification
|
|
295
|
+
reviewedBy?: string; // Reviewer name
|
|
296
|
+
tested?: string; // Testing status
|
|
297
|
+
impact?: string; // Impact description
|
|
298
|
+
action?: 'created' | 'edited' | 'deleted' | 'renamed';
|
|
299
|
+
agent?: string;
|
|
300
|
+
force?: boolean; // Bypass secret detection
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
export interface WatchOptions extends GlobalOptions {
|
|
304
|
+
ignore?: string[];
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
export interface GetContextOptions extends GlobalOptions {
|
|
308
|
+
limit?: number;
|
|
309
|
+
since?: string; // Duration like "7d", "2w", "1m"
|
|
310
|
+
tag?: string;
|
|
311
|
+
type?: MemoryType;
|
|
312
|
+
format?: 'default' | 'raw' | 'json' | 'cursor' | 'claude' | 'chatgpt'; // AI-specific formatting
|
|
313
|
+
page?: number; // Page number for pagination
|
|
314
|
+
perPage?: number; // Results per page
|
|
315
|
+
stream?: boolean; // Use streaming mode (memory-efficient)
|
|
316
|
+
smart?: boolean; // v1.5 Phase 1: Smart filtering with ranking
|
|
317
|
+
task?: string; // v1.5 Phase 1: Task description for smart filtering
|
|
318
|
+
scope?: string; // v1.5 Phase 2: Filter by project scope
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
export interface ListOptions extends GlobalOptions {
|
|
322
|
+
limit?: number;
|
|
323
|
+
since?: string; // Duration like "7d", "2w", "1m"
|
|
324
|
+
tag?: string;
|
|
325
|
+
status?: EntryStatus | LearningStatus;
|
|
326
|
+
json?: boolean; // Output as JSON
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
export interface SearchOptions extends GlobalOptions {
|
|
330
|
+
tag?: string;
|
|
331
|
+
since?: string;
|
|
332
|
+
limit?: number;
|
|
333
|
+
type?: string; // "memory", "learning", "change", or "all"
|
|
334
|
+
semantic?: boolean; // Use semantic search instead of keyword matching (TF-IDF)
|
|
335
|
+
vector?: boolean; // Use vector search (embeddings) - requires index
|
|
336
|
+
threshold?: number; // Semantic similarity threshold (0-1)
|
|
337
|
+
json?: boolean;
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
export interface DoctorOptions extends GlobalOptions {
|
|
341
|
+
fix?: boolean; // Auto-fix issues where possible
|
|
342
|
+
scanSecrets?: boolean;
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
// File paths configuration
|
|
346
|
+
export const MEMORYLINK_DIR = '.memorylink';
|
|
347
|
+
export const FILES = {
|
|
348
|
+
PROTECTED: 'protected.txt',
|
|
349
|
+
MEMORY: 'memory.log',
|
|
350
|
+
CHANGES: 'changes.log',
|
|
351
|
+
LEARNINGS: 'learnings.log',
|
|
352
|
+
CONFIG: 'config.json',
|
|
353
|
+
IGNORE: '.memorylinkignore',
|
|
354
|
+
RULES: 'rules.md',
|
|
355
|
+
PREFERENCES: 'preferences.json',
|
|
356
|
+
AGENTS: 'AGENTS.md',
|
|
357
|
+
} as const;
|
|
358
|
+
|
|
359
|
+
// Default ignore patterns
|
|
360
|
+
export const DEFAULT_IGNORE_PATTERNS = [
|
|
361
|
+
'node_modules/**',
|
|
362
|
+
'.git/**',
|
|
363
|
+
'dist/**',
|
|
364
|
+
'build/**',
|
|
365
|
+
'.next/**',
|
|
366
|
+
'.nuxt/**',
|
|
367
|
+
'coverage/**',
|
|
368
|
+
'*.log',
|
|
369
|
+
'.DS_Store',
|
|
370
|
+
'Thumbs.db',
|
|
371
|
+
'.env*',
|
|
372
|
+
'*.lock',
|
|
373
|
+
'package-lock.json',
|
|
374
|
+
'yarn.lock',
|
|
375
|
+
'pnpm-lock.yaml',
|
|
376
|
+
];
|
|
377
|
+
|
|
378
|
+
// ============================================
|
|
379
|
+
// SECRET DETECTION PATTERNS
|
|
380
|
+
// ============================================
|
|
381
|
+
|
|
382
|
+
export interface SecretPattern {
|
|
383
|
+
name: string;
|
|
384
|
+
pattern: RegExp;
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
export const SECRET_PATTERNS: SecretPattern[] = [
|
|
388
|
+
// API Keys - Common Providers
|
|
389
|
+
{ name: 'OpenAI API Key', pattern: /sk-[a-zA-Z0-9]{8,}/ }, // sk- followed by 8+ chars
|
|
390
|
+
{ name: 'OpenAI Project Key', pattern: /sk-proj-[a-zA-Z0-9]{8,}/ },
|
|
391
|
+
{ name: 'Anthropic API Key', pattern: /sk-ant-[a-zA-Z0-9-]{8,}/ },
|
|
392
|
+
{ name: 'Stripe Secret Key', pattern: /sk_live_[a-zA-Z0-9]{8,}/ },
|
|
393
|
+
{ name: 'Stripe Test Key', pattern: /sk_test_[a-zA-Z0-9]{8,}/ },
|
|
394
|
+
{ name: 'AWS Access Key', pattern: /AKIA[0-9A-Z]{16}/ },
|
|
395
|
+
{ name: 'AWS Secret Key', pattern: /AWS_SECRET_ACCESS_KEY\s*[:=]\s*['"]?[a-zA-Z0-9/+=]{8,}['"]?/i },
|
|
396
|
+
{ name: 'GitHub Token', pattern: /ghp_[a-zA-Z0-9]{20,}/ },
|
|
397
|
+
{ name: 'GitHub Token (PAT)', pattern: /github_pat_[a-zA-Z0-9_]{20,}/ },
|
|
398
|
+
{ name: 'Google API Key', pattern: /AIza[0-9A-Za-z-_]{30,}/ },
|
|
399
|
+
{ name: 'Slack Token', pattern: /xox[baprs]-[0-9]{8,}/ },
|
|
400
|
+
|
|
401
|
+
// Generic patterns - More aggressive
|
|
402
|
+
{ name: 'API Key Assignment', pattern: /api[_-]?key\s*[:=]\s*['"]?[a-zA-Z0-9_-]{8,}['"]?/i },
|
|
403
|
+
{ name: 'Secret Assignment', pattern: /secret\s*[:=]\s*['"]?[a-zA-Z0-9_-]{8,}['"]?/i },
|
|
404
|
+
{ name: 'Token Assignment', pattern: /token\s*[:=]\s*['"]?[a-zA-Z0-9_-]{12,}['"]?/i },
|
|
405
|
+
{ name: 'Password Assignment', pattern: /password\s*[:=]\s*['"]?[^\s'"]{4,}['"]?/i },
|
|
406
|
+
{ name: 'Passwd Assignment', pattern: /passwd\s*[:=]\s*['"]?[^\s'"]{4,}['"]?/i },
|
|
407
|
+
{ name: 'Pwd Assignment', pattern: /\bpwd\s*[:=]\s*['"]?[^\s'"]{4,}['"]?/i },
|
|
408
|
+
{ name: 'Database URL with Password', pattern: /postgres(ql)?:\/\/[^:]+:[^@]+@/i },
|
|
409
|
+
{ name: 'Redis URL with Password', pattern: /redis:\/\/:[^@]+@/i },
|
|
410
|
+
{ name: 'MongoDB URL with Password', pattern: /mongodb(\+srv)?:\/\/[^:]+:[^@]+@/i },
|
|
411
|
+
{ name: 'Private Key', pattern: /-----BEGIN (?:[A-Z]+ )?PRIVATE KEY-----/ },
|
|
412
|
+
{ name: 'Bearer Token', pattern: /bearer\s+[a-zA-Z0-9_-]{16,}/i },
|
|
413
|
+
|
|
414
|
+
// Key-like strings (looks like actual keys, not variable names)
|
|
415
|
+
{ name: 'Potential API Key', pattern: /['"]\s*sk[_-][a-zA-Z0-9]{16,}\s*['"]/ },
|
|
416
|
+
];
|
|
417
|
+
|
|
418
|
+
// ============================================
|
|
419
|
+
// DURATION PARSING
|
|
420
|
+
// ============================================
|
|
421
|
+
|
|
422
|
+
export type DurationUnit = 'd' | 'w' | 'm' | 'y';
|
|
423
|
+
|
|
424
|
+
export const DURATION_MS: Record<DurationUnit, number> = {
|
|
425
|
+
d: 24 * 60 * 60 * 1000, // 1 day
|
|
426
|
+
w: 7 * 24 * 60 * 60 * 1000, // 1 week
|
|
427
|
+
m: 30 * 24 * 60 * 60 * 1000, // 1 month (approx)
|
|
428
|
+
y: 365 * 24 * 60 * 60 * 1000, // 1 year (approx)
|
|
429
|
+
};
|
|
430
|
+
|
|
431
|
+
// ============================================
|
|
432
|
+
// V1.4 SCHEMA TYPES (Buddy-Check)
|
|
433
|
+
// ============================================
|
|
434
|
+
|
|
435
|
+
/**
|
|
436
|
+
* Memory record status for Buddy-Check
|
|
437
|
+
* DRAFT: Unverified, needs human review
|
|
438
|
+
* VERIFIED: Human-approved or CI-verified
|
|
439
|
+
*/
|
|
440
|
+
export type MemoryStatus = 'DRAFT' | 'VERIFIED';
|
|
441
|
+
|
|
442
|
+
/**
|
|
443
|
+
* Sensitivity classification for memory records
|
|
444
|
+
* public: Safe to share publicly
|
|
445
|
+
* internal: Internal use only
|
|
446
|
+
* secret: Contains sensitive information
|
|
447
|
+
*/
|
|
448
|
+
export type Sensitivity = 'public' | 'internal' | 'secret';
|
|
449
|
+
|
|
450
|
+
/**
|
|
451
|
+
* Trust level for memory records
|
|
452
|
+
* high: Verified, recent, from trusted source
|
|
453
|
+
* medium: Default for most records
|
|
454
|
+
* low: Stale, unverified, or from untrusted source
|
|
455
|
+
*/
|
|
456
|
+
export type TrustLevel = 'high' | 'medium' | 'low';
|
|
457
|
+
|
|
458
|
+
/**
|
|
459
|
+
* Source type of the memory record
|
|
460
|
+
* human: Created by human user
|
|
461
|
+
* code: Extracted from code analysis
|
|
462
|
+
* agent: Created by AI agent
|
|
463
|
+
* external: From external system
|
|
464
|
+
*/
|
|
465
|
+
export type SourceType = 'human' | 'code' | 'agent' | 'external';
|
|
466
|
+
|
|
467
|
+
/**
|
|
468
|
+
* Record type for v1.4 schema
|
|
469
|
+
* NODE: Code structure node
|
|
470
|
+
* EDGE: Dependency relationship
|
|
471
|
+
* NOTE: General note/decision
|
|
472
|
+
* EVENT: Change event
|
|
473
|
+
*/
|
|
474
|
+
export type RecordType = 'NODE' | 'EDGE' | 'NOTE' | 'EVENT';
|
|
475
|
+
|
|
476
|
+
/**
|
|
477
|
+
* Provenance information for memory records
|
|
478
|
+
*/
|
|
479
|
+
export interface Provenance {
|
|
480
|
+
createdAt: string; // ISO 8601 UTC
|
|
481
|
+
createdBy: string; // user or agent id
|
|
482
|
+
model?: string; // AI model name (e.g., "claude-3.5-sonnet")
|
|
483
|
+
tool?: string; // cursor, vscode, cli, etc.
|
|
484
|
+
commitOid?: string; // Git commit OID
|
|
485
|
+
branch?: string; // Git branch name
|
|
486
|
+
prNumber?: string; // Pull request number
|
|
487
|
+
kind: 'user' | 'app' | 'signed-token';
|
|
488
|
+
tokenIssuer?: string; // Token issuer for signed-token kind
|
|
489
|
+
}
|
|
490
|
+
|
|
491
|
+
/**
|
|
492
|
+
* Location information for code-related records
|
|
493
|
+
*/
|
|
494
|
+
export interface RecordLocation {
|
|
495
|
+
lineStart: number;
|
|
496
|
+
lineEnd: number;
|
|
497
|
+
commit: string; // commitOid
|
|
498
|
+
}
|
|
499
|
+
|
|
500
|
+
/**
|
|
501
|
+
* v1.4 Memory Record (enhanced schema for Buddy-Check)
|
|
502
|
+
* This is the new canonical format for all memory records
|
|
503
|
+
*/
|
|
504
|
+
export interface MemoryRecord {
|
|
505
|
+
id: string;
|
|
506
|
+
schemaVersion: string; // "1.4.0"
|
|
507
|
+
recordVersion: number; // start at 1, increment on update
|
|
508
|
+
|
|
509
|
+
type: RecordType;
|
|
510
|
+
projectPath: string;
|
|
511
|
+
branch?: string;
|
|
512
|
+
location?: RecordLocation;
|
|
513
|
+
content: string;
|
|
514
|
+
|
|
515
|
+
sensitivity: Sensitivity;
|
|
516
|
+
trustLevel: TrustLevel;
|
|
517
|
+
status: MemoryStatus; // 'DRAFT' or 'VERIFIED'
|
|
518
|
+
|
|
519
|
+
sourceType: SourceType;
|
|
520
|
+
provenance: Provenance;
|
|
521
|
+
|
|
522
|
+
expiresAt?: string; // optional TTL hint (ISO 8601)
|
|
523
|
+
incident?: boolean; // optional incident flag
|
|
524
|
+
projectScope?: string; // v1.5 Phase 2: Optional project/feature scope (e.g., "frontend", "backend", "auth-module")
|
|
525
|
+
}
|
|
526
|
+
|
|
527
|
+
// ============================================
|
|
528
|
+
// VERSION INFO
|
|
529
|
+
// ============================================
|
|
530
|
+
|
|
531
|
+
export const MEMORYLINK_VERSION = '1.0.0';
|
|
532
|
+
export const JSONL_SCHEMA_VERSION = '1.0';
|
|
533
|
+
|