memorylink 2.1.0 → 2.2.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.
Files changed (68) hide show
  1. package/CHANGELOG.md +10 -2
  2. package/README.md +66 -52
  3. package/dist/cli/commands/delete.d.ts +7 -0
  4. package/dist/cli/commands/delete.d.ts.map +1 -0
  5. package/dist/cli/commands/delete.js +106 -0
  6. package/dist/cli/commands/delete.js.map +1 -0
  7. package/dist/cli/commands/gate.d.ts +1 -1
  8. package/dist/cli/commands/gate.d.ts.map +1 -1
  9. package/dist/cli/commands/gate.js +14 -0
  10. package/dist/cli/commands/gate.js.map +1 -1
  11. package/dist/cli/commands/init.d.ts.map +1 -1
  12. package/dist/cli/commands/init.js +17 -75
  13. package/dist/cli/commands/init.js.map +1 -1
  14. package/dist/cli/commands/list.d.ts +7 -0
  15. package/dist/cli/commands/list.d.ts.map +1 -0
  16. package/dist/cli/commands/list.js +129 -0
  17. package/dist/cli/commands/list.js.map +1 -0
  18. package/dist/cli/commands/remember.d.ts +3 -0
  19. package/dist/cli/commands/remember.d.ts.map +1 -0
  20. package/dist/cli/commands/remember.js +61 -0
  21. package/dist/cli/commands/remember.js.map +1 -0
  22. package/dist/cli/commands/retrieve.d.ts +3 -0
  23. package/dist/cli/commands/retrieve.d.ts.map +1 -0
  24. package/dist/cli/commands/retrieve.js +32 -0
  25. package/dist/cli/commands/retrieve.js.map +1 -0
  26. package/dist/cli/commands/scaffold.d.ts +6 -0
  27. package/dist/cli/commands/scaffold.d.ts.map +1 -0
  28. package/dist/cli/commands/scaffold.js +132 -0
  29. package/dist/cli/commands/scaffold.js.map +1 -0
  30. package/dist/cli/index.js +10 -0
  31. package/dist/cli/index.js.map +1 -1
  32. package/dist/core/memory/gates.d.ts +17 -0
  33. package/dist/core/memory/gates.d.ts.map +1 -0
  34. package/dist/core/memory/gates.js +75 -0
  35. package/dist/core/memory/gates.js.map +1 -0
  36. package/dist/core/memory/git.d.ts +9 -0
  37. package/dist/core/memory/git.d.ts.map +1 -0
  38. package/dist/core/memory/git.js +57 -0
  39. package/dist/core/memory/git.js.map +1 -0
  40. package/dist/core/memory/storage.d.ts +11 -0
  41. package/dist/core/memory/storage.d.ts.map +1 -0
  42. package/dist/core/memory/storage.js +63 -0
  43. package/dist/core/memory/storage.js.map +1 -0
  44. package/dist/core/memory/structure.d.ts +10 -0
  45. package/dist/core/memory/structure.d.ts.map +1 -0
  46. package/dist/core/memory/structure.js +51 -0
  47. package/dist/core/memory/structure.js.map +1 -0
  48. package/dist/core/types.d.ts +13 -1
  49. package/dist/core/types.d.ts.map +1 -1
  50. package/dist/gate/rules/valid-syntax.d.ts +16 -0
  51. package/dist/gate/rules/valid-syntax.d.ts.map +1 -0
  52. package/dist/gate/rules/valid-syntax.js +76 -0
  53. package/dist/gate/rules/valid-syntax.js.map +1 -0
  54. package/dist/quarantine/patterns.js +2 -2
  55. package/dist/quarantine/patterns.js.map +1 -1
  56. package/dist/tools/pointer-generator.d.ts.map +1 -1
  57. package/dist/tools/pointer-generator.js +2 -2
  58. package/dist/tools/pointer-generator.js.map +1 -1
  59. package/docs/USER_GUIDE.md +181 -0
  60. package/package.json +3 -3
  61. package/docs/COMPARISONS.md +0 -229
  62. package/docs/FAQ.md +0 -230
  63. package/docs/GETTING_STARTED.md +0 -185
  64. package/docs/PATTERNS.md +0 -206
  65. package/docs/QUICK_REFERENCE.md +0 -209
  66. package/docs/REMEDIATION.md +0 -332
  67. package/docs/THREAT_MODEL.md +0 -279
  68. package/docs/TROUBLESHOOTING.md +0 -280
package/CHANGELOG.md CHANGED
@@ -5,6 +5,14 @@ All notable changes to MemoryLink will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [2.1.1] - 2026-01-03
9
+
10
+ ### Fixed
11
+ - **False Positive Fix**: Vercel and Netlify token patterns were too generic, causing false positives on normal code
12
+ - **Documentation**: Corrected pattern count from 129 to 127 across all docs
13
+
14
+ ---
15
+
8
16
  ## [2.1.0] - 2026-01-02
9
17
 
10
18
  ### Added
@@ -25,7 +33,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
25
33
  - **Symlink Protection**: Scanner now skips symbolic links to prevent traversal attacks
26
34
  - **Key Permissions**: Enhanced `ml self-check` verifies 600 permissions on encryption keys
27
35
 
28
- #### New Secret Patterns (16 new → 128 total)
36
+ #### New Secret Patterns (15 new → 127 total)
29
37
  - **Database Services**: Supabase, PlanetScale, Turso, Neon, Upstash
30
38
  - **AI Services**: Replicate, Together AI, Groq, Perplexity
31
39
  - **Auth Services**: Clerk
@@ -33,7 +41,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
33
41
  - **India Payments**: PhonePe, Cashfree, Instamojo (expanded)
34
42
 
35
43
  ### Changed
36
- - Pattern count increased from 112 to 128
44
+ - Pattern count increased from 112 to 127
37
45
  - Improved performance benchmarking in doctor command
38
46
  - Better error messages with JSON output support
39
47
 
package/README.md CHANGED
@@ -13,24 +13,39 @@
13
13
 
14
14
  ## 🎯 What is MemoryLink?
15
15
 
16
- MemoryLink scans your code for secrets (API keys, passwords, tokens) and **blocks them before commit**.
16
+ **MemoryLink is a Code Agent Memory OS.**
17
+ It treats Git Diffs as "Execution Truth" and uses them to prevent Agents from making mistakes.
17
18
 
18
- | Protection | What It Does | When |
19
- |------------|--------------|------|
20
- | 🔍 **Scan** | Detects 112 secret patterns (API keys, passwords, PII) | On demand |
21
- | 🪝 **Git Hooks** | Warns before you commit/push secrets | Every commit |
22
- | 🚫 **CI/CD Block** | Blocks PRs with secrets (19 CI platforms) | Every PR |
23
- | 🔐 **Quarantine** | Encrypts detected secrets (AES-256-GCM) | Automatic |
24
- | 📝 **Audit** | Tracks all detections with timestamps | Always |
19
+ > **Why not just use "Chat Memory" (Mem0/DiffMem)?**
20
+ > Chat memory only remembers what you *said*. MemoryLink remembers what you *did* (code changes).
21
+ > It enforces this truth with **Safety Gates** (AST checks, Secret Scanning) that block your Agent from introducing regressions or leaks.
22
+
23
+ ---
24
+
25
+ ## 🛡️ Core Features
26
+ MEMORYLINK is a **Dual-Engine** system:
27
+ 1. **Memory Engine:** Remembers your rules, context, and decisions.
28
+ 2. **Gate Engine:** Blocks mistakes (Secrets + Syntax) before commit.
29
+
30
+ | Protection | What It Does |
31
+ |:---|:---|
32
+ | 🧠 **Memory** | Stores project rules ("Use Hooks, not Classes") |
33
+ | 🔍 **Scan** | Detects 127 secret patterns (API keys, PII) |
34
+ | 🪝 **Git Hooks** | Blocks bad commits automatically |
35
+ | 🚫 **CI/CD Block** | Blocks PRs with secrets or syntax errors |
36
+ | 🔐 **Quarantine** | Encrypts detected secrets (AES-256-GCM) |
25
37
 
26
38
  **How It Works:**
27
39
  ```
28
- You Code → Git Commit → MemoryLink Scans → ⚠️ Warning (or 🚫 Block)
29
-
30
- 🔐 Secrets Quarantined
40
+ You Code → Git Commit → MemoryLink Scans
41
+
42
+ 1. 🧠 Check Memory (Rules)
43
+ 2. 🛡️ Check Gates (Secrets + Syntax)
44
+
45
+ ⚠️ Warning (or 🚫 Block)
31
46
  ```
32
47
 
33
- **Result:** Code confidently without worrying about leaking secrets!
48
+ **Result:** Your AI Agent gets smarter *and* safer over time.
34
49
 
35
50
  ---
36
51
 
@@ -38,44 +53,29 @@ You Code → Git Commit → MemoryLink Scans → ⚠️ Warning (or 🚫 Block)
38
53
 
39
54
  | Category | Supported |
40
55
  |----------|-----------|
56
+ | **AI Agents** | Cursor, Windsurf, Antigravity, GitHub Copilot |
41
57
  | **OS** | macOS, Linux, Windows (WSL2) |
42
58
  | **Node.js** | v18+ |
43
- | **Git** | Any project with Git |
44
- | **CI/CD** | GitHub Actions, GitLab CI, Jenkins, CircleCI, Travis, Buildkite, Azure Pipelines, and 12 more |
45
-
46
- **Use it with any editor, any language, any framework.**
47
59
 
48
60
  ---
49
61
 
50
62
  ## 👀 What You'll See
51
63
 
52
- When MemoryLink finds a secret:
64
+ When MemoryLink blocks a commit:
53
65
 
54
66
  ```
55
67
  ┌─────────────────────────────────────────────────────┐
56
- │ ⚠️ WARNING: 2 SECRETS DETECTED │
57
- ├─────────────────────────────────────────────────────┤
68
+ ┌ 🧠 MEMORY CHECK: 1 CONFLICT ┐
69
+ │ • Rule: "Never use default exports in utils/" │
70
+ │ Violation: src/utils/date.ts uses default export │
58
71
  │ │
72
+ ├ 🛡️ GATE CHECK: 1 SECRET DETECTED ┤
59
73
  │ 🔴 HIGH: AWS Access Key │
60
74
  │ File: src/config.ts:15 │
61
- │ Found: AKIA************WXYZ │
62
- │ │
63
- │ 🟡 MEDIUM: Generic API Key │
64
- │ File: .env.local:3 │
65
- │ Found: api_key=****...**** │
66
75
  │ │
67
- ├─────────────────────────────────────────────────────┤
68
- │ Mode: INACTIVE (warnings only) │
69
- │ │
70
- │ 💡 To block commits with secrets: │
71
- │ ml mode active │
72
76
  └─────────────────────────────────────────────────────┘
73
77
  ```
74
78
 
75
- **Modes:**
76
- - `INACTIVE` (default): Warns but allows commits ← **Good for learning**
77
- - `ACTIVE`: Blocks commits with secrets ← **Good for teams/CI**
78
-
79
79
  ---
80
80
 
81
81
  ## 📦 Installation
@@ -84,7 +84,6 @@ When MemoryLink finds a secret:
84
84
 
85
85
  - Node.js 18+ ([install](https://nodejs.org/))
86
86
  - npm or pnpm
87
- - **Windows users**: WSL2 recommended ([install guide](https://docs.microsoft.com/en-us/windows/wsl/install))
88
87
 
89
88
  ### Install from npm
90
89
 
@@ -110,15 +109,19 @@ ml init
110
109
  ```
111
110
 
112
111
  **What happens:**
113
- 1. ✅ Scans your entire project for existing secrets
114
- 2. ✅ Creates `.memorylink/` directory
115
- 3. ✅ Installs Git hooks (pre-commit + pre-push)
116
- 4. ✅ Updates `.gitignore`
117
- 5. 💡 Shows any detected issues
112
+ 1. ✅ Scans project for secrets
113
+ 2. ✅ Creates `.memorylink/` (Active Memory)
114
+ 3. ✅ Installs Git hooks (Red/Blue Gates)
118
115
 
119
- ### 2. That's It! You're Protected
116
+ ### 2. Capture Your First Memory
120
117
 
121
- From now on, every `git commit` and `git push` is automatically scanned.
118
+ Tell your Agent a rule so it never forgets:
119
+
120
+ ```bash
121
+ ml capture -t "api-rules" -c "Always use snake_case for API response types"
122
+ ```
123
+
124
+ Now, if an Agent tries to use `camelCase`, MemoryLink will know.
122
125
 
123
126
  ---
124
127
 
@@ -126,17 +129,27 @@ From now on, every `git commit` and `git push` is automatically scanned.
126
129
 
127
130
  | Command | What It Does |
128
131
  |---------|--------------|
129
- | `ml init` | Setup project + install Git hooks |
130
- | `ml scan` | Find secrets in your project |
131
- | `ml gate` | Check before commit/push |
132
- | `ml mode` | Switch active (block) / inactive (warn) |
133
- | `ml audit` | View security history |
132
+ | `ml capture` | Save a new memory/rule |
133
+ | `ml query` | Retrieve memories by topic |
134
+ | `ml list` | List all memories (with dates) |
135
+ | `ml delete` | Delete a memory |
136
+ | `ml gate` | Check code (Secrets + Syntax) |
137
+ | `ml scan` | Find existing secrets |
134
138
 
135
139
  ### `ml scan` - Find Secrets
136
140
 
137
141
  ```bash
138
142
  ml scan # Scan entire project
139
143
  ml scan --path src/ # Scan specific directory
144
+ ml scan --json # JSON output for CI/automation (v2.1)
145
+ ```
146
+
147
+ ### `ml doctor` - Health Check (v2.1)
148
+
149
+ ```bash
150
+ ml doctor # Basic health checks
151
+ ml doctor --full # Full diagnostics + benchmarks
152
+ ml doctor --json # JSON output for automation
140
153
  ```
141
154
 
142
155
  ### `ml mode` - Switch Protection Level
@@ -201,15 +214,16 @@ git push --no-verify # Emergency bypass (Git built-in)
201
214
 
202
215
  ---
203
216
 
204
- ## 🎨 112 Secret Patterns
217
+ ## 🎨 127 Secret Patterns
205
218
 
206
219
  | Category | Examples |
207
220
  |----------|----------|
208
221
  | **Cloud** | AWS, Azure, GCP, DigitalOcean, Heroku |
209
- | **AI/ML** | OpenAI, Claude/Anthropic, HuggingFace, Cohere |
210
- | **Payment** | Stripe, PayPal, Square, Razorpay |
211
- | **Auth** | GitHub, GitLab, Slack, Discord, JWT, OAuth |
212
- | **India** | Aadhaar, PAN, GSTIN, UPI, IFSC, Paytm |
222
+ | **AI/ML** | OpenAI, Claude/Anthropic, HuggingFace, Groq, Perplexity, Replicate |
223
+ | **Payment** | Stripe, PayPal, Square, Razorpay, PhonePe, Cashfree |
224
+ | **Auth** | GitHub, GitLab, Slack, Discord, JWT, OAuth, Clerk |
225
+ | **Database** | Supabase, PlanetScale, Turso, Neon, Upstash |
226
+ | **India** | Aadhaar, PAN, GSTIN, UPI, IFSC, Paytm, PhonePe, Instamojo |
213
227
  | **Personal** | SSN, Credit Card, Phone, Email |
214
228
  | **Browser** | localStorage, sessionStorage, cookies |
215
229
 
@@ -329,7 +343,7 @@ Add to `.memorylink/config.json`:
329
343
  - [Quick Reference](docs/QUICK_REFERENCE.md) - Cheat sheet
330
344
  - [FAQ](docs/FAQ.md) - Common questions
331
345
  - [Troubleshooting](docs/TROUBLESHOOTING.md) - Problem solutions
332
- - [Patterns](docs/PATTERNS.md) - All 112 patterns
346
+ - [Patterns](docs/PATTERNS.md) - All 127 patterns
333
347
  - [Comparisons](docs/COMPARISONS.md) - vs other tools
334
348
  - [Threat Model](docs/THREAT_MODEL.md) - Security boundaries & design
335
349
  - [Remediation Guide](docs/REMEDIATION.md) - How to rotate leaked secrets
@@ -0,0 +1,7 @@
1
+ /**
2
+ * ml delete command
3
+ * v1.7.0: Delete memories by ID or topic
4
+ */
5
+ import { Command } from 'commander';
6
+ export declare function registerDeleteCommand(program: Command): void;
7
+ //# sourceMappingURL=delete.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/delete.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA2BpC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,QAoFrD"}
@@ -0,0 +1,106 @@
1
+ /**
2
+ * ml delete command
3
+ * v1.7.0: Delete memories by ID or topic
4
+ */
5
+ import { join } from 'path';
6
+ import { readdir, unlink, readFile } from 'fs/promises';
7
+ import chalk from 'chalk';
8
+ async function findAllRecords(dir) {
9
+ const results = [];
10
+ try {
11
+ const entries = await readdir(dir, { withFileTypes: true });
12
+ for (const entry of entries) {
13
+ const fullPath = join(dir, entry.name);
14
+ if (entry.isDirectory()) {
15
+ const subResults = await findAllRecords(fullPath);
16
+ results.push(...subResults);
17
+ }
18
+ else if (entry.name.endsWith('.json')) {
19
+ results.push(fullPath);
20
+ }
21
+ }
22
+ }
23
+ catch (error) {
24
+ // Directory doesn't exist or not readable
25
+ }
26
+ return results;
27
+ }
28
+ export function registerDeleteCommand(program) {
29
+ program
30
+ .command('delete')
31
+ .description('Delete a memory by ID or topic')
32
+ .option('-i, --id <id>', 'Delete by record ID')
33
+ .option('-t, --topic <topic>', 'Delete all memories for a topic')
34
+ .option('--all', 'Delete ALL memories (use with caution)')
35
+ .option('-f, --force', 'Skip confirmation')
36
+ .action(async (options) => {
37
+ const cwd = process.cwd();
38
+ const recordsDir = join(cwd, '.memorylink', 'records');
39
+ try {
40
+ // Recursively find all JSON files
41
+ const allFiles = await findAllRecords(recordsDir);
42
+ if (allFiles.length === 0) {
43
+ console.log(chalk.yellow('No memories found.'));
44
+ return;
45
+ }
46
+ let toDelete = [];
47
+ // Delete by ID
48
+ if (options.id) {
49
+ const match = allFiles.find(f => f.includes(options.id));
50
+ if (match) {
51
+ toDelete.push(match);
52
+ }
53
+ else {
54
+ console.log(chalk.red(`No memory found with ID: ${options.id}`));
55
+ return;
56
+ }
57
+ }
58
+ // Delete by topic
59
+ if (options.topic) {
60
+ for (const file of allFiles) {
61
+ try {
62
+ const content = await readFile(file, 'utf-8');
63
+ const record = JSON.parse(content);
64
+ if (record.conflict_key === options.topic) {
65
+ toDelete.push(file);
66
+ }
67
+ }
68
+ catch (e) {
69
+ // Skip files that can't be parsed
70
+ }
71
+ }
72
+ if (toDelete.length === 0) {
73
+ console.log(chalk.red(`No memories found for topic: ${options.topic}`));
74
+ return;
75
+ }
76
+ }
77
+ // Delete all
78
+ if (options.all) {
79
+ toDelete = allFiles;
80
+ }
81
+ if (toDelete.length === 0) {
82
+ console.log(chalk.yellow('Please specify --id, --topic, or --all'));
83
+ return;
84
+ }
85
+ // Confirmation
86
+ if (!options.force) {
87
+ console.log(chalk.yellow(`⚠️ About to delete ${toDelete.length} memory file(s).`));
88
+ console.log(chalk.dim('Use --force to skip this warning.'));
89
+ }
90
+ // Delete files
91
+ for (const file of toDelete) {
92
+ await unlink(file);
93
+ }
94
+ console.log(chalk.green(`✅ Deleted ${toDelete.length} memory file(s).`));
95
+ }
96
+ catch (error) {
97
+ if (error.code === 'ENOENT') {
98
+ console.log(chalk.yellow('No .memorylink/records directory found.'));
99
+ }
100
+ else {
101
+ console.error(chalk.red(`Error: ${error.message}`));
102
+ }
103
+ }
104
+ });
105
+ }
106
+ //# sourceMappingURL=delete.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../src/cli/commands/delete.ts"],"names":[],"mappings":"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"}
@@ -27,7 +27,7 @@ export interface ModeInfo {
27
27
  * Gate options
28
28
  */
29
29
  export interface GateOptions {
30
- rule: 'block-quarantined';
30
+ rule: 'block-quarantined' | 'valid-syntax';
31
31
  scopeType?: 'project' | 'user' | 'org';
32
32
  repoUrl?: string;
33
33
  bypass?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"gate.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAiB,MAAM,qBAAqB,CAAC;AAMrE,OAAO,EAAE,YAAY,EAAmB,MAAM,wBAAwB,CAAC;AAMvE;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,QAAQ,GAAG,UAAU,CAAC;IACjC,MAAM,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI,GAAG,QAAQ,GAAG,SAAS,CAAC;IACrD,WAAW,EAAE,QAAQ,GAAG,UAAU,CAAC;IACnC,QAAQ,EAAE,QAAQ,GAAG,UAAU,GAAG,IAAI,CAAC;IACvC,SAAS,EAAE,QAAQ,GAAG,UAAU,GAAG,IAAI,CAAC;IACxC,IAAI,EAAE,OAAO,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,mBAAmB,CAAC;IAC1B,SAAS,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,KAAK,CAAC;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,YAAY,CAAC;IAExB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;IAE7C,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAEpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;GAIG;AACH,wBAAsB,OAAO,CAC3B,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC,CAqUrB;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC,CA0Qf"}
1
+ {"version":3,"file":"gate.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAiB,MAAM,qBAAqB,CAAC;AAOrE,OAAO,EAAE,YAAY,EAAmB,MAAM,wBAAwB,CAAC;AAMvE;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,QAAQ,GAAG,UAAU,CAAC;IACjC,MAAM,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI,GAAG,QAAQ,GAAG,SAAS,CAAC;IACrD,WAAW,EAAE,QAAQ,GAAG,UAAU,CAAC;IACnC,QAAQ,EAAE,QAAQ,GAAG,UAAU,GAAG,IAAI,CAAC;IACvC,SAAS,EAAE,QAAQ,GAAG,UAAU,GAAG,IAAI,CAAC;IACxC,IAAI,EAAE,OAAO,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,mBAAmB,GAAG,cAAc,CAAC;IAC3C,SAAS,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,KAAK,CAAC;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,YAAY,CAAC;IAExB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;IAE7C,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAEpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;GAIG;AACH,wBAAsB,OAAO,CAC3B,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC,CAoVrB;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC,CA0Qf"}
@@ -11,6 +11,7 @@
11
11
  * Gate output MUST NOT print secrets
12
12
  */
13
13
  import { checkBlockQuarantined } from '../../gate/rules/block-quarantined.js';
14
+ import { checkValidSyntax } from '../../gate/rules/valid-syntax.js';
14
15
  import { formatGateResult, validateGateOutput } from '../../gate/formatter.js';
15
16
  import { appendAuditEvent } from '../../audit/logger.js';
16
17
  import { EXIT_CODES } from '../../core/exit-codes.js';
@@ -315,6 +316,19 @@ export async function runGate(cwd, options) {
315
316
  warnOnly: options.blockMode !== true,
316
317
  };
317
318
  }
319
+ // Route to valid-syntax rule
320
+ if (options.rule === 'valid-syntax') {
321
+ const { generateScopeId } = await import('../../storage/paths.js');
322
+ const scope = options.repoUrl
323
+ ? {
324
+ type: options.scopeType || 'project',
325
+ id: generateScopeId(options.repoUrl),
326
+ }
327
+ : undefined;
328
+ return await checkValidSyntax(cwd, scope, {
329
+ diff: options.diff
330
+ });
331
+ }
318
332
  // Unknown rule
319
333
  return {
320
334
  passed: false,
@@ -1 +1 @@
1
- {"version":3,"file":"gate.js","sourceRoot":"","sources":["../../../src/cli/commands/gate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gate.js","sourceRoot":"","sources":["../../../src/cli/commands/gate.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA0BH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,IAAI,CAAC,CAgNf;AA4DD;;GAEG;AACH,wBAAsB,WAAW,CAC/B,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,IAAI,CAAC,CAQf"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA4BH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,IAAI,CAAC,CAsJf;AA4DD;;GAEG;AACH,wBAAsB,WAAW,CAC/B,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,IAAI,CAAC,CAQf"}
@@ -10,6 +10,7 @@ import { executeScan } from './scan.js';
10
10
  // Week 6: Tool integration
11
11
  import { generateAllPointers } from '../../tools/pointer-generator.js';
12
12
  import { out } from '../output.js';
13
+ import { scaffoldUniversalContext } from './scaffold.js';
13
14
  /**
14
15
  * Check if path is a symlink (security protection)
15
16
  * Prevents symlink attacks where .memorylink could point to sensitive directories
@@ -126,82 +127,23 @@ export async function initializeProject(cwd, options = {}) {
126
127
  out.print(` Install later with: ${out.cmd('ml hooks install')}`);
127
128
  }
128
129
  }
129
- // Week 6: Generate AGENTS.md and tool pointers (if first time)
130
- if (isFirstTime) {
131
- const agentsMdPath = join(cwd, 'AGENTS.md');
132
- if (!existsSync(agentsMdPath)) {
133
- // Create basic AGENTS.md template
134
- const basicTemplate = `# AGENTS.md
135
- **Universal Hub for All AI Tools**
136
-
137
- This file is the single source of truth for all AI coding assistants (Cursor, Claude Code, Copilot, etc.).
138
-
139
- ---
140
-
141
- ## 📋 Commands
142
-
143
- **Build:**
144
- \`\`\`bash
145
- npm run build
146
- # or
147
- pnpm build
148
- \`\`\`
149
-
150
- **Test:**
151
- \`\`\`bash
152
- npm test
153
- # or
154
- pnpm test
155
- \`\`\`
156
-
157
- **Lint:**
158
- \`\`\`bash
159
- npm run lint
160
- # or
161
- pnpm lint
162
- \`\`\`
163
-
164
- ---
165
-
166
- ## 🏗️ Architecture
167
-
168
- [Add your project architecture notes here]
169
-
170
- ---
171
-
172
- ## 📝 Coding Conventions
173
-
174
- [Add your coding conventions here]
175
-
176
- ---
177
-
178
- ## 🔒 Security
179
-
180
- - Never commit secrets to Git
181
- - Use environment variables for sensitive data
182
- - Run \`ml scan\` before committing
183
-
184
- ---
185
-
186
- **Last Updated:** ${new Date().toISOString().split('T')[0]}
187
- `;
188
- await writeFile(agentsMdPath, basicTemplate, 'utf-8');
189
- out.success('Created AGENTS.md', 'Universal hub for all AI tools');
190
- }
191
- // Generate tool pointer files
192
- const pointerResult = await generateAllPointers(cwd);
193
- if (pointerResult.ok) {
194
- out.success('Generated AI tool configurations');
195
- out.print(` ${out.dim('•')} .cursorrules ${out.dim('→ Points to AGENTS.md')}`);
196
- out.print(` ${out.dim('•')} CLAUDE.md ${out.dim('→ Points to AGENTS.md')}`);
197
- out.print(` ${out.dim('•')} .github/copilot-instructions.md ${out.dim('→ Points to AGENTS.md')}`);
198
- }
199
- else {
200
- out.warn(`Failed to generate pointer files: ${pointerResult.error.message}`);
201
- }
202
- // CRITICAL: Add .memorylink/ to .gitignore (ALL 8 AIs agreed)
203
- await updateGitignore(cwd);
130
+ // Week 10: Universal Context Scaffolding (Stop Context Drift Standard)
131
+ if (isFirstTime || !existsSync(join(cwd, '.agent'))) {
132
+ await scaffoldUniversalContext(cwd);
133
+ }
134
+ // Generate tool pointer files
135
+ const pointerResult = await generateAllPointers(cwd);
136
+ if (pointerResult.ok) {
137
+ out.success('Generated AI tool configurations');
138
+ out.print(` ${out.dim('•')} .cursorrules ${out.dim('→ Points to AGENTS.md')}`);
139
+ out.print(` ${out.dim('•')} CLAUDE.md ${out.dim('→ Points to AGENTS.md')}`);
140
+ out.print(` ${out.dim('•')} .github/copilot-instructions.md ${out.dim('→ Points to AGENTS.md')}`);
141
+ }
142
+ else {
143
+ out.warn(`Failed to generate pointer files: ${pointerResult.error.message}`);
204
144
  }
145
+ // CRITICAL: Add .memorylink/ to .gitignore (ALL 8 AIs agreed)
146
+ await updateGitignore(cwd);
205
147
  out.newline();
206
148
  out.successBox('MEMORYLINK IS READY', 'Your AI workflows are now protected from secret leaks.');
207
149
  // Enhanced success message with status summary