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,405 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Setup Commands
|
|
4
|
+
*
|
|
5
|
+
* AI-specific setup for Cursor, Claude, ChatGPT, etc.
|
|
6
|
+
* Creates configuration files that teach AI tools to use MemoryLink
|
|
7
|
+
*/
|
|
8
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
9
|
+
if (k2 === undefined) k2 = k;
|
|
10
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
11
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
12
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
13
|
+
}
|
|
14
|
+
Object.defineProperty(o, k2, desc);
|
|
15
|
+
}) : (function(o, m, k, k2) {
|
|
16
|
+
if (k2 === undefined) k2 = k;
|
|
17
|
+
o[k2] = m[k];
|
|
18
|
+
}));
|
|
19
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
20
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
21
|
+
}) : function(o, v) {
|
|
22
|
+
o["default"] = v;
|
|
23
|
+
});
|
|
24
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
25
|
+
var ownKeys = function(o) {
|
|
26
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
27
|
+
var ar = [];
|
|
28
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
29
|
+
return ar;
|
|
30
|
+
};
|
|
31
|
+
return ownKeys(o);
|
|
32
|
+
};
|
|
33
|
+
return function (mod) {
|
|
34
|
+
if (mod && mod.__esModule) return mod;
|
|
35
|
+
var result = {};
|
|
36
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
37
|
+
__setModuleDefault(result, mod);
|
|
38
|
+
return result;
|
|
39
|
+
};
|
|
40
|
+
})();
|
|
41
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
+
exports.setupCursorCommand = setupCursorCommand;
|
|
43
|
+
exports.setupClaudeCommand = setupClaudeCommand;
|
|
44
|
+
exports.setupChatGPTCommand = setupChatGPTCommand;
|
|
45
|
+
exports.setupCopilotCommand = setupCopilotCommand;
|
|
46
|
+
exports.setupAllCommand = setupAllCommand;
|
|
47
|
+
const fs = __importStar(require("fs"));
|
|
48
|
+
const path = __importStar(require("path"));
|
|
49
|
+
const utils_js_1 = require("../utils.js");
|
|
50
|
+
// ===========================================
|
|
51
|
+
// CURSOR SETUP
|
|
52
|
+
// ===========================================
|
|
53
|
+
const CURSOR_RULES = `# MemoryLink Integration for Cursor AI
|
|
54
|
+
|
|
55
|
+
## Before Making ANY Changes
|
|
56
|
+
|
|
57
|
+
1. **Read Protected Files**: Check \`.memorylink/protected.txt\` - DO NOT modify these files.
|
|
58
|
+
2. **Read Project Context**: Check \`.memorylink/memory.log\` for project decisions and context.
|
|
59
|
+
3. **Check Past Solutions**: Review \`.memorylink/learnings.log\` before solving problems.
|
|
60
|
+
- Entries marked SUCCESS = use these approaches
|
|
61
|
+
- Entries marked FAILED = DO NOT repeat these
|
|
62
|
+
|
|
63
|
+
## After Making Changes
|
|
64
|
+
|
|
65
|
+
1. **Log Changes**: Record what you changed and why
|
|
66
|
+
2. **Log Learnings**: If you solved a problem, note whether it worked (SUCCESS/FAILED)
|
|
67
|
+
|
|
68
|
+
## File Locations
|
|
69
|
+
|
|
70
|
+
\`\`\`
|
|
71
|
+
.memorylink/
|
|
72
|
+
├── protected.txt # Files I cannot modify
|
|
73
|
+
├── memory.log # Project context and decisions
|
|
74
|
+
├── changes.log # Audit trail of all changes
|
|
75
|
+
└── learnings.log # Past solutions (SUCCESS/FAILED)
|
|
76
|
+
\`\`\`
|
|
77
|
+
|
|
78
|
+
## Example Workflow
|
|
79
|
+
|
|
80
|
+
Before editing \`api.ts\`:
|
|
81
|
+
1. Check if \`api.ts\` is in protected.txt → If yes, ask permission first
|
|
82
|
+
2. Read memory.log for API-related context
|
|
83
|
+
3. Check learnings.log for past API solutions
|
|
84
|
+
|
|
85
|
+
After fixing a bug:
|
|
86
|
+
1. Note the change in changes.log
|
|
87
|
+
2. If the fix worked, add to learnings.log with SUCCESS
|
|
88
|
+
3. If the fix failed, add to learnings.log with FAILED
|
|
89
|
+
|
|
90
|
+
## Important Rules
|
|
91
|
+
|
|
92
|
+
- NEVER edit files listed in protected.txt without explicit permission
|
|
93
|
+
- ALWAYS check learnings.log before suggesting solutions to avoid repeating failures
|
|
94
|
+
- Keep memory.log updated with important decisions
|
|
95
|
+
|
|
96
|
+
## MemoryLink-First Workflow (Optimize Document Creation)
|
|
97
|
+
|
|
98
|
+
### Before Creating Documents:
|
|
99
|
+
1. **Check MemoryLink First:** Use \`memorylink get-context\` instead of creating planning docs
|
|
100
|
+
2. **Use MemoryLink for State:** Store decisions in memory.log, not in separate docs
|
|
101
|
+
3. **Log Learnings:** Use learnings.log instead of creating "what worked" docs
|
|
102
|
+
|
|
103
|
+
### When to Create Documents:
|
|
104
|
+
- **User-Requested:** Only if user explicitly asks for a document
|
|
105
|
+
- **External Sharing:** Documents for humans (README, guides, etc.)
|
|
106
|
+
- **Complex Analysis:** Multi-step analysis that needs structure
|
|
107
|
+
|
|
108
|
+
### When to Use MemoryLink:
|
|
109
|
+
- **Project Decisions:** Use memory.log (not decision docs)
|
|
110
|
+
- **What Worked/Failed:** Use learnings.log (not summary docs)
|
|
111
|
+
- **Change Tracking:** Use changes.log (not change logs)
|
|
112
|
+
- **Context for Next Session:** Use get-context command (not reading old docs)
|
|
113
|
+
|
|
114
|
+
### Document Creation Guidelines:
|
|
115
|
+
- **Avoid:** Creating "planning" documents (use MemoryLink memory.log)
|
|
116
|
+
- **Avoid:** Creating "summary" documents (use MemoryLink learnings.log)
|
|
117
|
+
- **Avoid:** Creating "state" documents (use MemoryLink get-context)
|
|
118
|
+
- **Create:** Only user-facing documentation (README, guides, troubleshooting)
|
|
119
|
+
|
|
120
|
+
### Workflow Optimization:
|
|
121
|
+
1. **Start Session:** Run \`memorylink get-context\` (don't read old planning docs)
|
|
122
|
+
2. **During Work:** Log to MemoryLink (don't create summary docs)
|
|
123
|
+
3. **End Session:** MemoryLink remembers (no need for summary doc)
|
|
124
|
+
4. **Next Session:** MemoryLink provides context (no need to read old docs)
|
|
125
|
+
|
|
126
|
+
### Why This Matters:
|
|
127
|
+
- **Document Creation = Memory Workaround:** Creating docs because you lack memory
|
|
128
|
+
- **MemoryLink = Solution:** Use MemoryLink instead of creating redundant docs
|
|
129
|
+
- **Efficiency:** Reduces document proliferation and redundant reading
|
|
130
|
+
`;
|
|
131
|
+
async function setupCursorCommand(options = {}) {
|
|
132
|
+
const { verbose } = options;
|
|
133
|
+
(0, utils_js_1.log)('Setting up MemoryLink for Cursor', verbose);
|
|
134
|
+
const root = (0, utils_js_1.findRoot)() || process.cwd();
|
|
135
|
+
if (!(0, utils_js_1.isInitialized)(root)) {
|
|
136
|
+
(0, utils_js_1.error)('MemoryLink not initialized. Run: memorylink init');
|
|
137
|
+
process.exit(1);
|
|
138
|
+
}
|
|
139
|
+
// Get active rules/preferences from memory.log (Qwen's Hello World requirement)
|
|
140
|
+
const memoryPath = (0, utils_js_1.getFilePath)('MEMORY', root);
|
|
141
|
+
let activeRules = [];
|
|
142
|
+
if (fs.existsSync(memoryPath) && (0, utils_js_1.isJsonlFormat)(memoryPath)) {
|
|
143
|
+
const entries = (0, utils_js_1.readJsonlEntries)(memoryPath);
|
|
144
|
+
activeRules = entries.filter(e => e.status === 'ACTIVE' &&
|
|
145
|
+
(e.type === 'rule' || e.type === 'preference'));
|
|
146
|
+
}
|
|
147
|
+
// Generate active rules section
|
|
148
|
+
let activeRulesSection = '';
|
|
149
|
+
if (activeRules.length > 0) {
|
|
150
|
+
activeRulesSection = '## 🚨 ACTIVE RULES & PREFERENCES (OVERRIDE DEFAULT BEHAVIOR)\n\n';
|
|
151
|
+
activeRulesSection += '**These rules MUST be followed. They override default assistant behavior.**\n\n';
|
|
152
|
+
activeRules.forEach((rule, index) => {
|
|
153
|
+
const tagsStr = rule.tags?.length ? ` [${rule.tags.join(', ')}]` : '';
|
|
154
|
+
activeRulesSection += `${index + 1}. **${rule.type.toUpperCase()}**: ${rule.details}${tagsStr}\n`;
|
|
155
|
+
});
|
|
156
|
+
activeRulesSection += '\n---\n\n';
|
|
157
|
+
if (verbose) {
|
|
158
|
+
(0, utils_js_1.info)(`Found ${activeRules.length} active rule(s)/preference(s) to inject`);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
const cursorrules = path.join(root, '.cursorrules');
|
|
162
|
+
// Check if .cursorrules exists
|
|
163
|
+
if (fs.existsSync(cursorrules)) {
|
|
164
|
+
const existing = fs.readFileSync(cursorrules, 'utf-8');
|
|
165
|
+
// Check if already has MemoryLink
|
|
166
|
+
if (existing.includes('MemoryLink')) {
|
|
167
|
+
(0, utils_js_1.warn)('.cursorrules already contains MemoryLink configuration');
|
|
168
|
+
(0, utils_js_1.info)('Run `memorylink sync-rules` to update with latest rules/preferences');
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
171
|
+
// Append to existing with active rules at the top
|
|
172
|
+
const updated = activeRulesSection + existing + '\n\n' + CURSOR_RULES;
|
|
173
|
+
fs.writeFileSync(cursorrules, updated);
|
|
174
|
+
(0, utils_js_1.success)('Added MemoryLink rules to existing .cursorrules');
|
|
175
|
+
if (activeRules.length > 0) {
|
|
176
|
+
(0, utils_js_1.info)(`Injected ${activeRules.length} active rule(s)/preference(s) at the top`);
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
else {
|
|
180
|
+
// Create new with active rules at the top
|
|
181
|
+
const content = activeRulesSection + CURSOR_RULES;
|
|
182
|
+
fs.writeFileSync(cursorrules, content);
|
|
183
|
+
(0, utils_js_1.success)('Created .cursorrules with MemoryLink integration');
|
|
184
|
+
if (activeRules.length > 0) {
|
|
185
|
+
(0, utils_js_1.info)(`Injected ${activeRules.length} active rule(s)/preference(s) at the top`);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
console.log('');
|
|
189
|
+
(0, utils_js_1.info)('Cursor AI will now:');
|
|
190
|
+
console.log(' • See active rules/preferences at the top of .cursorrules');
|
|
191
|
+
console.log(' • Check protected.txt before editing files');
|
|
192
|
+
console.log(' • Read memory.log for project context');
|
|
193
|
+
console.log(' • Check learnings.log before solving problems');
|
|
194
|
+
console.log('');
|
|
195
|
+
if (activeRules.length > 0) {
|
|
196
|
+
(0, utils_js_1.info)('✅ Hello World test ready: Active rules are now in .cursorrules');
|
|
197
|
+
(0, utils_js_1.info)(' Cursor will see these rules automatically on next chat');
|
|
198
|
+
}
|
|
199
|
+
else {
|
|
200
|
+
(0, utils_js_1.info)('💡 Add rules with: memorylink memory "rule" --type rule');
|
|
201
|
+
(0, utils_js_1.info)(' Then run: memorylink sync-rules (or setup cursor again)');
|
|
202
|
+
}
|
|
203
|
+
console.log('');
|
|
204
|
+
}
|
|
205
|
+
// ===========================================
|
|
206
|
+
// CLAUDE SETUP
|
|
207
|
+
// ===========================================
|
|
208
|
+
const CLAUDE_INSTRUCTIONS = `# MemoryLink Project Context
|
|
209
|
+
|
|
210
|
+
## How to Use This Project
|
|
211
|
+
|
|
212
|
+
This project uses MemoryLink for AI memory management. Before making any changes:
|
|
213
|
+
|
|
214
|
+
### 1. Check Protected Files
|
|
215
|
+
Read \`.memorylink/protected.txt\` - these files should NOT be modified without explicit permission.
|
|
216
|
+
|
|
217
|
+
### 2. Read Project Context
|
|
218
|
+
Check \`.memorylink/memory.log\` for important decisions and context about this project.
|
|
219
|
+
|
|
220
|
+
### 3. Learn from Past Solutions
|
|
221
|
+
Review \`.memorylink/learnings.log\`:
|
|
222
|
+
- SUCCESS entries = approaches that worked
|
|
223
|
+
- FAILED entries = approaches that did NOT work - do not repeat these
|
|
224
|
+
|
|
225
|
+
### 4. After Making Changes
|
|
226
|
+
- Log significant changes to \`.memorylink/changes.log\`
|
|
227
|
+
- Log problem solutions to \`.memorylink/learnings.log\` with SUCCESS or FAILED
|
|
228
|
+
|
|
229
|
+
## Quick Reference
|
|
230
|
+
|
|
231
|
+
\`\`\`
|
|
232
|
+
.memorylink/protected.txt → Files I cannot edit
|
|
233
|
+
.memorylink/memory.log → Project context
|
|
234
|
+
.memorylink/learnings.log → What worked/didn't work
|
|
235
|
+
.memorylink/changes.log → Audit trail
|
|
236
|
+
\`\`\`
|
|
237
|
+
|
|
238
|
+
## Rules
|
|
239
|
+
1. NEVER edit protected files
|
|
240
|
+
2. Check learnings BEFORE suggesting solutions
|
|
241
|
+
3. Ask if unsure about a file's protection status
|
|
242
|
+
`;
|
|
243
|
+
async function setupClaudeCommand(options = {}) {
|
|
244
|
+
const { verbose } = options;
|
|
245
|
+
(0, utils_js_1.log)('Setting up MemoryLink for Claude', verbose);
|
|
246
|
+
const root = (0, utils_js_1.findRoot)() || process.cwd();
|
|
247
|
+
if (!(0, utils_js_1.isInitialized)(root)) {
|
|
248
|
+
(0, utils_js_1.error)('MemoryLink not initialized. Run: memorylink init');
|
|
249
|
+
process.exit(1);
|
|
250
|
+
}
|
|
251
|
+
const claudeFile = path.join(root, 'CLAUDE_INSTRUCTIONS.md');
|
|
252
|
+
if (fs.existsSync(claudeFile)) {
|
|
253
|
+
(0, utils_js_1.warn)('CLAUDE_INSTRUCTIONS.md already exists');
|
|
254
|
+
(0, utils_js_1.info)('Skipping to avoid overwrite. Delete it first if you want to regenerate.');
|
|
255
|
+
return;
|
|
256
|
+
}
|
|
257
|
+
fs.writeFileSync(claudeFile, CLAUDE_INSTRUCTIONS);
|
|
258
|
+
(0, utils_js_1.success)('Created CLAUDE_INSTRUCTIONS.md');
|
|
259
|
+
console.log('');
|
|
260
|
+
(0, utils_js_1.info)('To use with Claude:');
|
|
261
|
+
console.log(' 1. Upload CLAUDE_INSTRUCTIONS.md at the start of your chat');
|
|
262
|
+
console.log(' 2. Or paste its contents into your first message');
|
|
263
|
+
console.log(' 3. Or add to Claude\'s custom instructions (Pro feature)');
|
|
264
|
+
console.log('');
|
|
265
|
+
}
|
|
266
|
+
// ===========================================
|
|
267
|
+
// CHATGPT SETUP
|
|
268
|
+
// ===========================================
|
|
269
|
+
const CHATGPT_INSTRUCTIONS = `# MemoryLink Integration
|
|
270
|
+
|
|
271
|
+
This project uses MemoryLink for AI memory management.
|
|
272
|
+
|
|
273
|
+
## Before ANY code changes:
|
|
274
|
+
|
|
275
|
+
1. **Protected Files**: Check .memorylink/protected.txt
|
|
276
|
+
- Files listed here should NOT be modified
|
|
277
|
+
- Ask permission before touching protected files
|
|
278
|
+
|
|
279
|
+
2. **Project Context**: Read .memorylink/memory.log
|
|
280
|
+
- Contains project decisions and important context
|
|
281
|
+
- Use this information when making suggestions
|
|
282
|
+
|
|
283
|
+
3. **Past Solutions**: Check .memorylink/learnings.log
|
|
284
|
+
- SUCCESS = this approach worked, use it
|
|
285
|
+
- FAILED = this approach did NOT work, avoid it
|
|
286
|
+
|
|
287
|
+
## After making changes:
|
|
288
|
+
|
|
289
|
+
- Note what changed and why
|
|
290
|
+
- If you solved a problem, remember if it worked (SUCCESS) or not (FAILED)
|
|
291
|
+
|
|
292
|
+
## File Structure:
|
|
293
|
+
.memorylink/
|
|
294
|
+
├── protected.txt → DO NOT edit these files
|
|
295
|
+
├── memory.log → Project context
|
|
296
|
+
├── changes.log → What was changed
|
|
297
|
+
└── learnings.log → What worked/failed
|
|
298
|
+
|
|
299
|
+
## Key Rules:
|
|
300
|
+
1. Check protected.txt FIRST
|
|
301
|
+
2. Never repeat FAILED solutions
|
|
302
|
+
3. Use SUCCESS solutions as templates
|
|
303
|
+
`;
|
|
304
|
+
async function setupChatGPTCommand(options = {}) {
|
|
305
|
+
const { verbose } = options;
|
|
306
|
+
(0, utils_js_1.log)('Setting up MemoryLink for ChatGPT', verbose);
|
|
307
|
+
const root = (0, utils_js_1.findRoot)() || process.cwd();
|
|
308
|
+
if (!(0, utils_js_1.isInitialized)(root)) {
|
|
309
|
+
(0, utils_js_1.error)('MemoryLink not initialized. Run: memorylink init');
|
|
310
|
+
process.exit(1);
|
|
311
|
+
}
|
|
312
|
+
const chatgptFile = path.join(root, 'CHATGPT_INSTRUCTIONS.md');
|
|
313
|
+
if (fs.existsSync(chatgptFile)) {
|
|
314
|
+
(0, utils_js_1.warn)('CHATGPT_INSTRUCTIONS.md already exists');
|
|
315
|
+
(0, utils_js_1.info)('Skipping to avoid overwrite. Delete it first if you want to regenerate.');
|
|
316
|
+
return;
|
|
317
|
+
}
|
|
318
|
+
fs.writeFileSync(chatgptFile, CHATGPT_INSTRUCTIONS);
|
|
319
|
+
(0, utils_js_1.success)('Created CHATGPT_INSTRUCTIONS.md');
|
|
320
|
+
console.log('');
|
|
321
|
+
(0, utils_js_1.info)('To use with ChatGPT:');
|
|
322
|
+
console.log(' 1. Upload CHATGPT_INSTRUCTIONS.md to your chat');
|
|
323
|
+
console.log(' 2. ChatGPT will follow the MemoryLink rules');
|
|
324
|
+
console.log(' 3. For ChatGPT Plus: Add to "Custom Instructions"');
|
|
325
|
+
console.log('');
|
|
326
|
+
}
|
|
327
|
+
// ===========================================
|
|
328
|
+
// COPILOT SETUP
|
|
329
|
+
// ===========================================
|
|
330
|
+
const COPILOT_INSTRUCTIONS = `# MemoryLink Integration for GitHub Copilot
|
|
331
|
+
|
|
332
|
+
## Project Memory System
|
|
333
|
+
|
|
334
|
+
This project uses MemoryLink for cross-AI memory. Key files:
|
|
335
|
+
|
|
336
|
+
- .memorylink/protected.txt - Files that should not be auto-completed/modified
|
|
337
|
+
- .memorylink/memory.log - Project context and decisions
|
|
338
|
+
- .memorylink/learnings.log - Past solutions (SUCCESS/FAILED)
|
|
339
|
+
|
|
340
|
+
## For Copilot Users
|
|
341
|
+
|
|
342
|
+
1. Before accepting suggestions for protected files, check protected.txt
|
|
343
|
+
2. Use memory.log context when writing new code
|
|
344
|
+
3. Check learnings.log when debugging similar issues
|
|
345
|
+
|
|
346
|
+
## Integration Notes
|
|
347
|
+
|
|
348
|
+
Copilot cannot directly read these files, but you can:
|
|
349
|
+
1. Open .memorylink files in a split pane for reference
|
|
350
|
+
2. Use comments to remind yourself of context
|
|
351
|
+
3. Use memorylink CLI to check before major changes
|
|
352
|
+
`;
|
|
353
|
+
async function setupCopilotCommand(options = {}) {
|
|
354
|
+
const { verbose } = options;
|
|
355
|
+
(0, utils_js_1.log)('Setting up MemoryLink for Copilot', verbose);
|
|
356
|
+
const root = (0, utils_js_1.findRoot)() || process.cwd();
|
|
357
|
+
if (!(0, utils_js_1.isInitialized)(root)) {
|
|
358
|
+
(0, utils_js_1.error)('MemoryLink not initialized. Run: memorylink init');
|
|
359
|
+
process.exit(1);
|
|
360
|
+
}
|
|
361
|
+
const copilotFile = path.join(root, '.github', 'copilot-instructions.md');
|
|
362
|
+
const githubDir = path.join(root, '.github');
|
|
363
|
+
// Create .github directory if needed
|
|
364
|
+
if (!fs.existsSync(githubDir)) {
|
|
365
|
+
fs.mkdirSync(githubDir, { recursive: true });
|
|
366
|
+
}
|
|
367
|
+
if (fs.existsSync(copilotFile)) {
|
|
368
|
+
(0, utils_js_1.warn)('.github/copilot-instructions.md already exists');
|
|
369
|
+
(0, utils_js_1.info)('Skipping to avoid overwrite. Delete it first if you want to regenerate.');
|
|
370
|
+
return;
|
|
371
|
+
}
|
|
372
|
+
fs.writeFileSync(copilotFile, COPILOT_INSTRUCTIONS);
|
|
373
|
+
(0, utils_js_1.success)('Created .github/copilot-instructions.md');
|
|
374
|
+
console.log('');
|
|
375
|
+
(0, utils_js_1.info)('Copilot will now see these instructions in your project.');
|
|
376
|
+
console.log('');
|
|
377
|
+
}
|
|
378
|
+
// ===========================================
|
|
379
|
+
// SETUP ALL
|
|
380
|
+
// ===========================================
|
|
381
|
+
async function setupAllCommand(options = {}) {
|
|
382
|
+
console.log('');
|
|
383
|
+
console.log('\x1b[36m╔══════════════════════════════════════════════════════════╗\x1b[0m');
|
|
384
|
+
console.log('\x1b[36m║ ║\x1b[0m');
|
|
385
|
+
console.log('\x1b[36m║ 🔧 Setting up MemoryLink for ALL AI tools ║\x1b[0m');
|
|
386
|
+
console.log('\x1b[36m║ ║\x1b[0m');
|
|
387
|
+
console.log('\x1b[36m╚══════════════════════════════════════════════════════════╝\x1b[0m');
|
|
388
|
+
console.log('');
|
|
389
|
+
console.log('\x1b[1m[1/4] Cursor AI\x1b[0m');
|
|
390
|
+
await setupCursorCommand({ ...options, verbose: false });
|
|
391
|
+
console.log('\x1b[1m[2/4] Claude\x1b[0m');
|
|
392
|
+
await setupClaudeCommand({ ...options, verbose: false });
|
|
393
|
+
console.log('\x1b[1m[3/4] ChatGPT\x1b[0m');
|
|
394
|
+
await setupChatGPTCommand({ ...options, verbose: false });
|
|
395
|
+
console.log('\x1b[1m[4/4] GitHub Copilot\x1b[0m');
|
|
396
|
+
await setupCopilotCommand({ ...options, verbose: false });
|
|
397
|
+
console.log('');
|
|
398
|
+
console.log('\x1b[32m╔══════════════════════════════════════════════════════════╗\x1b[0m');
|
|
399
|
+
console.log('\x1b[32m║ ║\x1b[0m');
|
|
400
|
+
console.log('\x1b[32m║ ✅ All AI tools configured! ║\x1b[0m');
|
|
401
|
+
console.log('\x1b[32m║ ║\x1b[0m');
|
|
402
|
+
console.log('\x1b[32m╚══════════════════════════════════════════════════════════╝\x1b[0m');
|
|
403
|
+
console.log('');
|
|
404
|
+
}
|
|
405
|
+
//# sourceMappingURL=setup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MemoryLink - Code Snippet Command
|
|
3
|
+
* Store actual code snippets (not just file references)
|
|
4
|
+
*
|
|
5
|
+
* Critical feature: Users need to store reusable code patterns and examples
|
|
6
|
+
*/
|
|
7
|
+
import type { GlobalOptions } from '../types.js';
|
|
8
|
+
interface SnippetOptions extends GlobalOptions {
|
|
9
|
+
code?: string;
|
|
10
|
+
file?: string;
|
|
11
|
+
lines?: string;
|
|
12
|
+
language?: string;
|
|
13
|
+
context?: string;
|
|
14
|
+
tags?: string;
|
|
15
|
+
force?: boolean;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Code Snippet Command
|
|
19
|
+
* Store code snippets in memory.log
|
|
20
|
+
*/
|
|
21
|
+
export declare function snippetCommand(description: string, options?: SnippetOptions): Promise<void>;
|
|
22
|
+
export {};
|
|
23
|
+
//# sourceMappingURL=snippet.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snippet.d.ts","sourceRoot":"","sources":["../../src/commands/snippet.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAoBH,OAAO,KAAK,EACV,aAAa,EAGd,MAAM,aAAa,CAAC;AAGrB,UAAU,cAAe,SAAQ,aAAa;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAwGD;;;GAGG;AACH,wBAAsB,cAAc,CAClC,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAsHf"}
|
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* MemoryLink - Code Snippet Command
|
|
4
|
+
* Store actual code snippets (not just file references)
|
|
5
|
+
*
|
|
6
|
+
* Critical feature: Users need to store reusable code patterns and examples
|
|
7
|
+
*/
|
|
8
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
9
|
+
if (k2 === undefined) k2 = k;
|
|
10
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
11
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
12
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
13
|
+
}
|
|
14
|
+
Object.defineProperty(o, k2, desc);
|
|
15
|
+
}) : (function(o, m, k, k2) {
|
|
16
|
+
if (k2 === undefined) k2 = k;
|
|
17
|
+
o[k2] = m[k];
|
|
18
|
+
}));
|
|
19
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
20
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
21
|
+
}) : function(o, v) {
|
|
22
|
+
o["default"] = v;
|
|
23
|
+
});
|
|
24
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
25
|
+
var ownKeys = function(o) {
|
|
26
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
27
|
+
var ar = [];
|
|
28
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
29
|
+
return ar;
|
|
30
|
+
};
|
|
31
|
+
return ownKeys(o);
|
|
32
|
+
};
|
|
33
|
+
return function (mod) {
|
|
34
|
+
if (mod && mod.__esModule) return mod;
|
|
35
|
+
var result = {};
|
|
36
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
37
|
+
__setModuleDefault(result, mod);
|
|
38
|
+
return result;
|
|
39
|
+
};
|
|
40
|
+
})();
|
|
41
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
+
exports.snippetCommand = snippetCommand;
|
|
43
|
+
const fs = __importStar(require("fs"));
|
|
44
|
+
const path = __importStar(require("path"));
|
|
45
|
+
const utils_js_1 = require("../utils.js");
|
|
46
|
+
const migrate_js_1 = require("./migrate.js");
|
|
47
|
+
const MAX_SNIPPET_SIZE = 1024; // 1KB limit
|
|
48
|
+
/**
|
|
49
|
+
* Detect programming language from file extension
|
|
50
|
+
*/
|
|
51
|
+
function detectLanguage(filePath) {
|
|
52
|
+
const ext = path.extname(filePath).toLowerCase();
|
|
53
|
+
const languageMap = {
|
|
54
|
+
'.ts': 'typescript',
|
|
55
|
+
'.tsx': 'typescript',
|
|
56
|
+
'.js': 'javascript',
|
|
57
|
+
'.jsx': 'javascript',
|
|
58
|
+
'.py': 'python',
|
|
59
|
+
'.java': 'java',
|
|
60
|
+
'.go': 'go',
|
|
61
|
+
'.rs': 'rust',
|
|
62
|
+
'.cpp': 'cpp',
|
|
63
|
+
'.c': 'c',
|
|
64
|
+
'.cs': 'csharp',
|
|
65
|
+
'.php': 'php',
|
|
66
|
+
'.rb': 'ruby',
|
|
67
|
+
'.swift': 'swift',
|
|
68
|
+
'.kt': 'kotlin',
|
|
69
|
+
'.scala': 'scala',
|
|
70
|
+
'.sh': 'bash',
|
|
71
|
+
'.bash': 'bash',
|
|
72
|
+
'.zsh': 'bash',
|
|
73
|
+
'.sql': 'sql',
|
|
74
|
+
'.html': 'html',
|
|
75
|
+
'.css': 'css',
|
|
76
|
+
'.scss': 'scss',
|
|
77
|
+
'.json': 'json',
|
|
78
|
+
'.yaml': 'yaml',
|
|
79
|
+
'.yml': 'yaml',
|
|
80
|
+
'.xml': 'xml',
|
|
81
|
+
'.md': 'markdown',
|
|
82
|
+
'.vue': 'vue',
|
|
83
|
+
'.svelte': 'svelte',
|
|
84
|
+
};
|
|
85
|
+
return languageMap[ext];
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Read code from file, optionally extracting specific lines
|
|
89
|
+
*/
|
|
90
|
+
function readCodeFromFile(filePath, root, lineRange) {
|
|
91
|
+
const fullPath = path.isAbsolute(filePath) ? filePath : path.join(root, filePath);
|
|
92
|
+
if (!fs.existsSync(fullPath)) {
|
|
93
|
+
throw new Error(`File not found: ${filePath}`);
|
|
94
|
+
}
|
|
95
|
+
const stats = fs.statSync(fullPath);
|
|
96
|
+
if (stats.size > 10 * 1024 * 1024) { // 10MB limit
|
|
97
|
+
throw new Error(`File too large (${Math.round(stats.size / 1024)}KB). Use doc_ref for large files.`);
|
|
98
|
+
}
|
|
99
|
+
let content = fs.readFileSync(fullPath, 'utf-8');
|
|
100
|
+
const language = detectLanguage(filePath);
|
|
101
|
+
// Extract specific lines if requested
|
|
102
|
+
if (lineRange) {
|
|
103
|
+
const lines = content.split('\n');
|
|
104
|
+
const match = lineRange.match(/^(\d+)(?:-(\d+))?$/);
|
|
105
|
+
if (!match) {
|
|
106
|
+
throw new Error(`Invalid line range format. Use: '42' or '42-50'`);
|
|
107
|
+
}
|
|
108
|
+
const start = parseInt(match[1], 10) - 1; // Convert to 0-based
|
|
109
|
+
const end = match[2] ? parseInt(match[2], 10) : start + 1; // End is 1-based
|
|
110
|
+
if (start < 0 || start >= lines.length) {
|
|
111
|
+
throw new Error(`Line ${start + 1} is out of range (file has ${lines.length} lines)`);
|
|
112
|
+
}
|
|
113
|
+
if (end < start || end > lines.length) {
|
|
114
|
+
throw new Error(`Line range ${start + 1}-${end} is invalid (file has ${lines.length} lines)`);
|
|
115
|
+
}
|
|
116
|
+
content = lines.slice(start, end).join('\n');
|
|
117
|
+
}
|
|
118
|
+
return { code: content, language };
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Validate code snippet size
|
|
122
|
+
*/
|
|
123
|
+
function validateCodeSize(code) {
|
|
124
|
+
const size = Buffer.byteLength(code, 'utf-8');
|
|
125
|
+
if (size > MAX_SNIPPET_SIZE) {
|
|
126
|
+
throw new Error(`Code snippet too large (${Math.round(size / 1024 * 100) / 100}KB, max ${MAX_SNIPPET_SIZE / 1024}KB). ` +
|
|
127
|
+
`Use doc_ref for larger files or split into multiple snippets.`);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Code Snippet Command
|
|
132
|
+
* Store code snippets in memory.log
|
|
133
|
+
*/
|
|
134
|
+
async function snippetCommand(description, options = {}) {
|
|
135
|
+
const { verbose, code, file, lines, language, context, tags: tagString, force = false } = options;
|
|
136
|
+
// Validate input
|
|
137
|
+
if (!description || description.trim().length === 0) {
|
|
138
|
+
(0, utils_js_1.error)('Description cannot be empty');
|
|
139
|
+
process.exit(1);
|
|
140
|
+
}
|
|
141
|
+
(0, utils_js_1.log)(`Adding code snippet: ${description}`, verbose);
|
|
142
|
+
// Check initialization
|
|
143
|
+
const root = (0, utils_js_1.findRoot)();
|
|
144
|
+
if (!root || !(0, utils_js_1.isInitialized)(root)) {
|
|
145
|
+
(0, utils_js_1.error)('MemoryLink is not initialized. Run: memorylink init');
|
|
146
|
+
process.exit(1);
|
|
147
|
+
}
|
|
148
|
+
// Check if migration is required
|
|
149
|
+
if ((0, migrate_js_1.checkMigrationRequired)(root)) {
|
|
150
|
+
(0, migrate_js_1.showMigrationWarning)();
|
|
151
|
+
process.exit(1);
|
|
152
|
+
}
|
|
153
|
+
// Get code content
|
|
154
|
+
let codeContent;
|
|
155
|
+
let detectedLanguage = language;
|
|
156
|
+
if (code) {
|
|
157
|
+
// Code provided directly
|
|
158
|
+
codeContent = code;
|
|
159
|
+
}
|
|
160
|
+
else if (file) {
|
|
161
|
+
// Read from file
|
|
162
|
+
try {
|
|
163
|
+
const result = readCodeFromFile(file, root, lines);
|
|
164
|
+
codeContent = result.code;
|
|
165
|
+
if (!detectedLanguage && result.language) {
|
|
166
|
+
detectedLanguage = result.language;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
catch (err) {
|
|
170
|
+
(0, utils_js_1.error)(`Failed to read file: ${err.message}`);
|
|
171
|
+
process.exit(1);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
else {
|
|
175
|
+
(0, utils_js_1.error)('Code required. Use --code "<code>" or --file <path>');
|
|
176
|
+
process.exit(1);
|
|
177
|
+
}
|
|
178
|
+
// Validate code is not empty
|
|
179
|
+
if (!codeContent || codeContent.trim().length === 0) {
|
|
180
|
+
(0, utils_js_1.error)('Code cannot be empty');
|
|
181
|
+
process.exit(1);
|
|
182
|
+
}
|
|
183
|
+
// Validate code size
|
|
184
|
+
try {
|
|
185
|
+
validateCodeSize(codeContent);
|
|
186
|
+
}
|
|
187
|
+
catch (err) {
|
|
188
|
+
(0, utils_js_1.error)(err.message);
|
|
189
|
+
process.exit(1);
|
|
190
|
+
}
|
|
191
|
+
// Secret detection
|
|
192
|
+
const contentToCheck = description + ' ' + codeContent;
|
|
193
|
+
if (!(0, utils_js_1.checkSecretsBeforeWrite)(contentToCheck, force)) {
|
|
194
|
+
process.exit(1);
|
|
195
|
+
}
|
|
196
|
+
const memoryPath = (0, utils_js_1.getFilePath)('MEMORY', root);
|
|
197
|
+
const tags = (0, utils_js_1.parseTags)(tagString);
|
|
198
|
+
// Normalize file path for storage (forward slashes, Git-compatible)
|
|
199
|
+
const normalizedFile = file ? (0, utils_js_1.normalizePathForStorage)(file, root) : undefined;
|
|
200
|
+
// Create code snippet entry
|
|
201
|
+
const entry = {
|
|
202
|
+
id: (0, utils_js_1.generateId)(),
|
|
203
|
+
ts: (0, utils_js_1.getTimestamp)(),
|
|
204
|
+
agent: 'user',
|
|
205
|
+
type: 'code_snippet',
|
|
206
|
+
details: description,
|
|
207
|
+
code: codeContent,
|
|
208
|
+
language: detectedLanguage,
|
|
209
|
+
file: normalizedFile,
|
|
210
|
+
lines: lines,
|
|
211
|
+
context: context,
|
|
212
|
+
tags,
|
|
213
|
+
status: 'ACTIVE',
|
|
214
|
+
forcedSecretCheck: force && (0, utils_js_1.checkSecretsBeforeWrite)(contentToCheck, true) ? true : undefined,
|
|
215
|
+
};
|
|
216
|
+
// Append with file locking
|
|
217
|
+
try {
|
|
218
|
+
await (0, utils_js_1.appendJsonlEntry)(memoryPath, entry);
|
|
219
|
+
(0, utils_js_1.success)(`Code snippet added (${Math.round(Buffer.byteLength(codeContent, 'utf-8'))} bytes)`);
|
|
220
|
+
if (verbose) {
|
|
221
|
+
(0, utils_js_1.info)(`Language: ${detectedLanguage || 'auto-detected'}`);
|
|
222
|
+
if (file) {
|
|
223
|
+
(0, utils_js_1.info)(`File: ${file}${lines ? ` (lines ${lines})` : ''}`);
|
|
224
|
+
}
|
|
225
|
+
if (context) {
|
|
226
|
+
(0, utils_js_1.info)(`Context: ${context}`);
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
catch (err) {
|
|
231
|
+
(0, utils_js_1.error)(`Failed to add code snippet: ${err.message}`);
|
|
232
|
+
process.exit(1);
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
//# sourceMappingURL=snippet.js.map
|