@rembr/vscode 1.0.0 ā 1.0.1
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/package.json
CHANGED
package/setup.js
CHANGED
|
@@ -110,7 +110,7 @@ function setupGitHubCopilotAgent(projectRoot) {
|
|
|
110
110
|
|
|
111
111
|
ensureDirectoryExists(agentsDir);
|
|
112
112
|
|
|
113
|
-
const templatePath = path.join(__dirname, 'templates', 'recursive-
|
|
113
|
+
const templatePath = path.join(__dirname, 'templates', 'recursive-agent.agent.md');
|
|
114
114
|
const agentContent = fs.readFileSync(templatePath, 'utf8');
|
|
115
115
|
|
|
116
116
|
if (fs.existsSync(agentPath)) {
|
|
@@ -247,11 +247,9 @@ function setup(interactive = false) {
|
|
|
247
247
|
console.log('\nš« Setting up REMBR client configuration...\n');
|
|
248
248
|
|
|
249
249
|
try {
|
|
250
|
-
// Set up MCP for
|
|
251
|
-
console.log('š” Configuring MCP servers...');
|
|
250
|
+
// Set up MCP for VS Code
|
|
251
|
+
console.log('š” Configuring MCP servers for VS Code...');
|
|
252
252
|
setupVSCodeMCP(projectRoot);
|
|
253
|
-
setupCursorMCP(projectRoot);
|
|
254
|
-
setupWindsurfMCP(projectRoot);
|
|
255
253
|
setupClaudeDesktopMCP(); // Global config
|
|
256
254
|
|
|
257
255
|
console.log('\nš¤ Configuring AI agents and RLM patterns...');
|
|
@@ -260,23 +258,15 @@ function setup(interactive = false) {
|
|
|
260
258
|
setupRLMHelper(projectRoot);
|
|
261
259
|
setupRLMDocumentation(projectRoot);
|
|
262
260
|
|
|
263
|
-
console.log('\nāļø Configuring legacy AI tools...');
|
|
264
|
-
setupCursorRules(projectRoot);
|
|
265
|
-
setupWindsurfRules(projectRoot);
|
|
266
|
-
setupAiderConfig(projectRoot);
|
|
267
|
-
|
|
268
261
|
console.log('\n⨠@rembr/vscode setup complete!\n');
|
|
269
262
|
console.log('š§ RLM Pattern System Installed:');
|
|
270
263
|
console.log(' ⢠GitHub Copilot with auto-detection (51% token reduction)');
|
|
271
|
-
console.log(' ā¢
|
|
264
|
+
console.log(' ⢠Sequential sub-agent orchestration for complex tasks');
|
|
272
265
|
console.log(' ⢠Semantic memory with rembr MCP integration');
|
|
273
266
|
console.log(' ⢠Task coordination and workflow optimization');
|
|
274
267
|
console.log('\nš” MCP Configured for:');
|
|
275
268
|
console.log(' ⢠VS Code + GitHub Copilot');
|
|
276
|
-
console.log(' ⢠Cursor');
|
|
277
|
-
console.log(' ⢠Windsurf');
|
|
278
269
|
console.log(' ⢠Claude Desktop');
|
|
279
|
-
console.log(' ⢠Aider');
|
|
280
270
|
console.log('\nš Documentation Created:');
|
|
281
271
|
console.log(' ⢠docs/rlm-patterns.md - Complete usage guide');
|
|
282
272
|
console.log(' ⢠docs/rlm-benchmarks.md - Performance analysis');
|
|
@@ -287,8 +277,8 @@ function setup(interactive = false) {
|
|
|
287
277
|
console.log(' Settings ā Extensions ā MCP ā rembr.env.REMBR_API_KEY');
|
|
288
278
|
console.log('3. Reload VS Code to activate RLM patterns');
|
|
289
279
|
console.log('4. Try a complex task like "implement rate limiting with Redis and monitoring"');
|
|
290
|
-
console.log('5. Watch GitHub Copilot automatically decompose into
|
|
291
|
-
console.log('š”
|
|
280
|
+
console.log('5. Watch GitHub Copilot automatically decompose into sequential subagents\n');
|
|
281
|
+
console.log('š” For other editors: Use @rembr/cursor or @rembr/aider\n');
|
|
292
282
|
} catch (error) {
|
|
293
283
|
console.error('ā Setup failed:', error.message);
|
|
294
284
|
process.exit(1);
|
|
@@ -1,18 +1,8 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: Recursive
|
|
3
|
-
description:
|
|
2
|
+
name: Recursive Agent
|
|
3
|
+
description: Orchestrates complex tasks using sequential decomposition with semantic memory coordination
|
|
4
4
|
tools:
|
|
5
|
-
|
|
6
|
-
- editFiles
|
|
7
|
-
- runInTerminal
|
|
8
|
-
- runTests
|
|
9
|
-
- search
|
|
10
|
-
- fetch
|
|
11
|
-
- usages
|
|
12
|
-
- problems
|
|
13
|
-
- terminalLastCommand
|
|
14
|
-
- terminalSelection
|
|
15
|
-
- rembr/*
|
|
5
|
+
['execute/runInTerminal', 'execute/runTests', 'read/terminalSelection', 'read/terminalLastCommand', 'read/problems', 'read/readFile', 'edit/editFiles', 'search', 'web/fetch', 'runSubagent', 'rembr/*']
|
|
16
6
|
infer: true
|
|
17
7
|
model: Claude Sonnet 4
|
|
18
8
|
handoffs:
|
|
@@ -22,13 +12,15 @@ handoffs:
|
|
|
22
12
|
send: false
|
|
23
13
|
---
|
|
24
14
|
|
|
25
|
-
#
|
|
15
|
+
# Sequential Task Orchestrator
|
|
26
16
|
|
|
27
|
-
You implement the Recursive Language Model (RLM) pattern. You handle arbitrarily complex tasks by:
|
|
17
|
+
You implement the Recursive Language Model (RLM) pattern adapted for VS Code Copilot. You handle arbitrarily complex tasks by:
|
|
28
18
|
1. Never working with more context than necessary
|
|
29
19
|
2. Using rembr to retrieve only relevant prior knowledge
|
|
30
|
-
3.
|
|
31
|
-
4. Coordinating subagent results through structured returns
|
|
20
|
+
3. Orchestrating sequential subagents for focused sub-tasks (one level only)
|
|
21
|
+
4. Coordinating subagent results through structured returns and rembr storage
|
|
22
|
+
|
|
23
|
+
**Platform Limitation**: VS Code Copilot does not support nested subagents. Use sequential decomposition instead of deep recursion.
|
|
32
24
|
|
|
33
25
|
## Subagent Contract
|
|
34
26
|
|
package/templates/aider.conf.yml
DELETED
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
# Aider configuration with REMBR semantic memory
|
|
2
|
-
|
|
3
|
-
# REMBR Integration
|
|
4
|
-
#
|
|
5
|
-
# REMBR provides persistent semantic memory for your coding sessions.
|
|
6
|
-
# While Aider doesn't natively support MCP, you can integrate REMBR via:
|
|
7
|
-
#
|
|
8
|
-
# 1. Manual tool calls in prompts:
|
|
9
|
-
# "First, search REMBR for authentication patterns, then implement..."
|
|
10
|
-
#
|
|
11
|
-
# 2. External scripts that call the REMBR API:
|
|
12
|
-
# curl -X POST https://rembr.ai/api/v1/search \
|
|
13
|
-
# -H "Authorization: Bearer $REMBR_API_KEY" \
|
|
14
|
-
# -d '{"query": "authentication patterns"}'
|
|
15
|
-
#
|
|
16
|
-
# 3. Pre/post hooks that store session context:
|
|
17
|
-
# - Before: Retrieve relevant context from REMBR
|
|
18
|
-
# - After: Store findings and decisions to REMBR
|
|
19
|
-
|
|
20
|
-
# Model configuration
|
|
21
|
-
model: claude-sonnet-4
|
|
22
|
-
|
|
23
|
-
# Enable git integration
|
|
24
|
-
auto-commits: true
|
|
25
|
-
dirty-commits: true
|
|
26
|
-
|
|
27
|
-
# Editor for commit messages
|
|
28
|
-
editor: vim
|
|
29
|
-
|
|
30
|
-
# Suggested workflow with REMBR:
|
|
31
|
-
#
|
|
32
|
-
# 1. Before starting: Query REMBR for relevant context
|
|
33
|
-
# $ rembr-query "database migration patterns"
|
|
34
|
-
#
|
|
35
|
-
# 2. During coding: Aider makes changes
|
|
36
|
-
#
|
|
37
|
-
# 3. After completing: Store findings to REMBR
|
|
38
|
-
# $ rembr-store "Migrated users table to support OAuth. Added provider column."
|
|
39
|
-
#
|
|
40
|
-
# You can create these wrapper scripts to integrate REMBR with Aider.
|
|
41
|
-
|
|
42
|
-
# Example bash aliases for ~/.bashrc:
|
|
43
|
-
#
|
|
44
|
-
# alias rembr-query='curl -X POST https://rembr.ai/api/v1/search \
|
|
45
|
-
# -H "Authorization: Bearer $REMBR_API_KEY" \
|
|
46
|
-
# -H "Content-Type: application/json" \
|
|
47
|
-
# -d "{\"query\": \"$1\", \"limit\": 5}" | jq -r ".memories[].content"'
|
|
48
|
-
#
|
|
49
|
-
# alias rembr-store='curl -X POST https://rembr.ai/api/v1/memories \
|
|
50
|
-
# -H "Authorization: Bearer $REMBR_API_KEY" \
|
|
51
|
-
# -H "Content-Type: application/json" \
|
|
52
|
-
# -d "{\"content\": \"$1\", \"category\": \"facts\"}"'
|
package/templates/cursorrules
DELETED
|
@@ -1,141 +0,0 @@
|
|
|
1
|
-
# REMBR - Recursive Language Model with Semantic Memory
|
|
2
|
-
|
|
3
|
-
You have access to REMBR, a semantic memory system via MCP tools. Use it to implement the Recursive Language Model (RLM) pattern for complex tasks.
|
|
4
|
-
|
|
5
|
-
## Core Principles
|
|
6
|
-
|
|
7
|
-
1. **Never work with more context than necessary** - Query REMBR for only relevant prior knowledge
|
|
8
|
-
2. **Break down complex tasks** - Spawn focused subtasks with targeted context
|
|
9
|
-
3. **Store findings persistently** - Save discoveries to REMBR for future sessions
|
|
10
|
-
4. **Coordinate through structured returns** - Each subtask returns a standard result format
|
|
11
|
-
|
|
12
|
-
## Available REMBR Tools (via MCP)
|
|
13
|
-
|
|
14
|
-
### Memory Management
|
|
15
|
-
- `store_memory` - Store insights, facts, preferences, project info
|
|
16
|
-
- `search_memory` - Hybrid semantic + text search across memories
|
|
17
|
-
- `list_memories` - Browse recent memories by category
|
|
18
|
-
- `get_memory` - Retrieve specific memory by ID
|
|
19
|
-
- `delete_memory` - Remove outdated memories
|
|
20
|
-
|
|
21
|
-
### Context Workspaces
|
|
22
|
-
- `create_context` - Create workspace for related memories
|
|
23
|
-
- `add_memory_to_context` - Link memories to contexts
|
|
24
|
-
- `search_context` - Scoped search within a workspace
|
|
25
|
-
- `list_contexts` - View available workspaces
|
|
26
|
-
|
|
27
|
-
### Snapshots (for subtask handoffs)
|
|
28
|
-
- `create_snapshot` - Immutable memory bundle with TTL
|
|
29
|
-
- `get_snapshot` - Retrieve snapshot by ID
|
|
30
|
-
- `list_snapshots` - View available snapshots
|
|
31
|
-
|
|
32
|
-
### Insights
|
|
33
|
-
- `get_stats` - Usage and limits
|
|
34
|
-
- `get_context_insights` - Category distribution, patterns
|
|
35
|
-
- `get_memory_graph` - Memory relationships
|
|
36
|
-
- `detect_contradictions` - Find conflicting information
|
|
37
|
-
|
|
38
|
-
## Memory Categories
|
|
39
|
-
|
|
40
|
-
Organize memories semantically:
|
|
41
|
-
- **facts** - Concrete information and data
|
|
42
|
-
- **preferences** - User settings and choices
|
|
43
|
-
- **conversations** - Conversation context
|
|
44
|
-
- **projects** - Project-specific information
|
|
45
|
-
- **learning** - Knowledge and insights
|
|
46
|
-
- **goals** - Objectives and targets
|
|
47
|
-
- **context** - Situational context
|
|
48
|
-
- **reminders** - Future actions
|
|
49
|
-
|
|
50
|
-
## RLM Pattern: Parent-Subtask Protocol
|
|
51
|
-
|
|
52
|
-
### Before Decomposing
|
|
53
|
-
|
|
54
|
-
1. Generate unique `taskId` (e.g., `implement-auth-20240106`)
|
|
55
|
-
2. Query REMBR for relevant prior context:
|
|
56
|
-
```
|
|
57
|
-
search_memory({ query: "authentication patterns OAuth JWT", limit: 10 })
|
|
58
|
-
```
|
|
59
|
-
3. Identify subtasks and what context each needs
|
|
60
|
-
|
|
61
|
-
### When Spawning Subtasks
|
|
62
|
-
|
|
63
|
-
Provide each subtask with:
|
|
64
|
-
```
|
|
65
|
-
## Subtask
|
|
66
|
-
[Specific focused objective]
|
|
67
|
-
|
|
68
|
-
## Context from REMBR
|
|
69
|
-
[Relevant memories retrieved for this subtask]
|
|
70
|
-
|
|
71
|
-
## Storage Instructions
|
|
72
|
-
Store findings with:
|
|
73
|
-
- Category: "facts"
|
|
74
|
-
- Metadata: { "taskId": "implement-auth-20240106", "area": "oauth-flow" }
|
|
75
|
-
|
|
76
|
-
## Return Format
|
|
77
|
-
- Summary: [What you found/did]
|
|
78
|
-
- Findings stored: [Search query to retrieve details]
|
|
79
|
-
- Key points: [Most important items]
|
|
80
|
-
- Status: [complete/partial/blocked]
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
### After Subtasks Complete
|
|
84
|
-
|
|
85
|
-
1. Read each subtask's summary and key points
|
|
86
|
-
2. If full details needed, query REMBR:
|
|
87
|
-
```
|
|
88
|
-
search_memory({ query: "implement-auth-20240106 oauth-flow", category: "facts" })
|
|
89
|
-
```
|
|
90
|
-
3. Synthesize findings and store to REMBR for future sessions
|
|
91
|
-
|
|
92
|
-
## Example Usage
|
|
93
|
-
|
|
94
|
-
### Storing a Discovery
|
|
95
|
-
```
|
|
96
|
-
store_memory({
|
|
97
|
-
category: "facts",
|
|
98
|
-
content: "API uses rate limiting: 100 req/min per user via express-rate-limit + Redis",
|
|
99
|
-
metadata: {
|
|
100
|
-
taskId: "rate-limit-analysis",
|
|
101
|
-
area: "api-middleware",
|
|
102
|
-
file: "src/middleware/rateLimit.ts"
|
|
103
|
-
}
|
|
104
|
-
})
|
|
105
|
-
```
|
|
106
|
-
|
|
107
|
-
### Retrieving Context
|
|
108
|
-
```
|
|
109
|
-
search_memory({
|
|
110
|
-
query: "rate limiting middleware patterns",
|
|
111
|
-
category: "facts",
|
|
112
|
-
limit: 5
|
|
113
|
-
})
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
### Creating a Workspace
|
|
117
|
-
```
|
|
118
|
-
create_context({
|
|
119
|
-
name: "payment-service-refactor",
|
|
120
|
-
description: "Refactoring payment service to microservices",
|
|
121
|
-
category: "projects"
|
|
122
|
-
})
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
## When to Use REMBR
|
|
126
|
-
|
|
127
|
-
ā
**Do use** for:
|
|
128
|
-
- Storing architectural decisions
|
|
129
|
-
- Remembering project patterns and conventions
|
|
130
|
-
- Building knowledge across sessions
|
|
131
|
-
- Coordinating complex multi-step tasks
|
|
132
|
-
- Sharing context between subtasks
|
|
133
|
-
|
|
134
|
-
ā **Don't use** for:
|
|
135
|
-
- Temporary variables or transient data
|
|
136
|
-
- Information already in the codebase
|
|
137
|
-
- Simple single-step tasks
|
|
138
|
-
|
|
139
|
-
## API Key Setup
|
|
140
|
-
|
|
141
|
-
Ensure `REMBR_API_KEY` is set in your Cursor environment settings.
|
package/templates/windsurfrules
DELETED
|
@@ -1,141 +0,0 @@
|
|
|
1
|
-
# REMBR - Recursive Language Model with Semantic Memory
|
|
2
|
-
|
|
3
|
-
You have access to REMBR, a semantic memory system via MCP tools. Use it to implement the Recursive Language Model (RLM) pattern for complex tasks.
|
|
4
|
-
|
|
5
|
-
## Core Principles
|
|
6
|
-
|
|
7
|
-
1. **Never work with more context than necessary** - Query REMBR for only relevant prior knowledge
|
|
8
|
-
2. **Break down complex tasks** - Spawn focused subtasks with targeted context
|
|
9
|
-
3. **Store findings persistently** - Save discoveries to REMBR for future sessions
|
|
10
|
-
4. **Coordinate through structured returns** - Each subtask returns a standard result format
|
|
11
|
-
|
|
12
|
-
## Available REMBR Tools (via MCP)
|
|
13
|
-
|
|
14
|
-
### Memory Management
|
|
15
|
-
- `store_memory` - Store insights, facts, preferences, project info
|
|
16
|
-
- `search_memory` - Hybrid semantic + text search across memories
|
|
17
|
-
- `list_memories` - Browse recent memories by category
|
|
18
|
-
- `get_memory` - Retrieve specific memory by ID
|
|
19
|
-
- `delete_memory` - Remove outdated memories
|
|
20
|
-
|
|
21
|
-
### Context Workspaces
|
|
22
|
-
- `create_context` - Create workspace for related memories
|
|
23
|
-
- `add_memory_to_context` - Link memories to contexts
|
|
24
|
-
- `search_context` - Scoped search within a workspace
|
|
25
|
-
- `list_contexts` - View available workspaces
|
|
26
|
-
|
|
27
|
-
### Snapshots (for subtask handoffs)
|
|
28
|
-
- `create_snapshot` - Immutable memory bundle with TTL
|
|
29
|
-
- `get_snapshot` - Retrieve snapshot by ID
|
|
30
|
-
- `list_snapshots` - View available snapshots
|
|
31
|
-
|
|
32
|
-
### Insights
|
|
33
|
-
- `get_stats` - Usage and limits
|
|
34
|
-
- `get_context_insights` - Category distribution, patterns
|
|
35
|
-
- `get_memory_graph` - Memory relationships
|
|
36
|
-
- `detect_contradictions` - Find conflicting information
|
|
37
|
-
|
|
38
|
-
## Memory Categories
|
|
39
|
-
|
|
40
|
-
Organize memories semantically:
|
|
41
|
-
- **facts** - Concrete information and data
|
|
42
|
-
- **preferences** - User settings and choices
|
|
43
|
-
- **conversations** - Conversation context
|
|
44
|
-
- **projects** - Project-specific information
|
|
45
|
-
- **learning** - Knowledge and insights
|
|
46
|
-
- **goals** - Objectives and targets
|
|
47
|
-
- **context** - Situational context
|
|
48
|
-
- **reminders** - Future actions
|
|
49
|
-
|
|
50
|
-
## RLM Pattern: Parent-Subtask Protocol
|
|
51
|
-
|
|
52
|
-
### Before Decomposing
|
|
53
|
-
|
|
54
|
-
1. Generate unique `taskId` (e.g., `implement-auth-20240106`)
|
|
55
|
-
2. Query REMBR for relevant prior context:
|
|
56
|
-
```
|
|
57
|
-
search_memory({ query: "authentication patterns OAuth JWT", limit: 10 })
|
|
58
|
-
```
|
|
59
|
-
3. Identify subtasks and what context each needs
|
|
60
|
-
|
|
61
|
-
### When Creating Flows/Cascades
|
|
62
|
-
|
|
63
|
-
Provide each flow with:
|
|
64
|
-
```
|
|
65
|
-
## Objective
|
|
66
|
-
[Specific focused objective]
|
|
67
|
-
|
|
68
|
-
## Context from REMBR
|
|
69
|
-
[Relevant memories retrieved for this flow]
|
|
70
|
-
|
|
71
|
-
## Storage Instructions
|
|
72
|
-
Store findings with:
|
|
73
|
-
- Category: "facts"
|
|
74
|
-
- Metadata: { "taskId": "implement-auth-20240106", "area": "oauth-flow" }
|
|
75
|
-
|
|
76
|
-
## Return Format
|
|
77
|
-
- Summary: [What you found/did]
|
|
78
|
-
- Findings stored: [Search query to retrieve details]
|
|
79
|
-
- Key points: [Most important items]
|
|
80
|
-
- Status: [complete/partial/blocked]
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
### After Flows Complete
|
|
84
|
-
|
|
85
|
-
1. Read each flow's summary and key points
|
|
86
|
-
2. If full details needed, query REMBR:
|
|
87
|
-
```
|
|
88
|
-
search_memory({ query: "implement-auth-20240106 oauth-flow", category: "facts" })
|
|
89
|
-
```
|
|
90
|
-
3. Synthesize findings and store to REMBR for future sessions
|
|
91
|
-
|
|
92
|
-
## Example Usage
|
|
93
|
-
|
|
94
|
-
### Storing a Discovery
|
|
95
|
-
```
|
|
96
|
-
store_memory({
|
|
97
|
-
category: "facts",
|
|
98
|
-
content: "API uses rate limiting: 100 req/min per user via express-rate-limit + Redis",
|
|
99
|
-
metadata: {
|
|
100
|
-
taskId: "rate-limit-analysis",
|
|
101
|
-
area: "api-middleware",
|
|
102
|
-
file: "src/middleware/rateLimit.ts"
|
|
103
|
-
}
|
|
104
|
-
})
|
|
105
|
-
```
|
|
106
|
-
|
|
107
|
-
### Retrieving Context
|
|
108
|
-
```
|
|
109
|
-
search_memory({
|
|
110
|
-
query: "rate limiting middleware patterns",
|
|
111
|
-
category: "facts",
|
|
112
|
-
limit: 5
|
|
113
|
-
})
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
### Creating a Workspace
|
|
117
|
-
```
|
|
118
|
-
create_context({
|
|
119
|
-
name: "payment-service-refactor",
|
|
120
|
-
description: "Refactoring payment service to microservices",
|
|
121
|
-
category: "projects"
|
|
122
|
-
})
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
## When to Use REMBR
|
|
126
|
-
|
|
127
|
-
ā
**Do use** for:
|
|
128
|
-
- Storing architectural decisions
|
|
129
|
-
- Remembering project patterns and conventions
|
|
130
|
-
- Building knowledge across sessions
|
|
131
|
-
- Coordinating complex multi-step tasks (Cascade flows)
|
|
132
|
-
- Sharing context between flows
|
|
133
|
-
|
|
134
|
-
ā **Don't use** for:
|
|
135
|
-
- Temporary variables or transient data
|
|
136
|
-
- Information already in the codebase
|
|
137
|
-
- Simple single-step tasks
|
|
138
|
-
|
|
139
|
-
## API Key Setup
|
|
140
|
-
|
|
141
|
-
Ensure `REMBR_API_KEY` is set in your Windsurf environment settings.
|