@polka-codes/cli-shared 0.10.23 → 0.10.25
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/dist/index.js +1913 -7
- package/package.json +2 -2
- package/dist/config.js +0 -202
- package/dist/config.js.map +0 -1
- package/dist/config.parameters.test.js +0 -240
- package/dist/config.parameters.test.js.map +0 -1
- package/dist/config.rules.test.js +0 -92
- package/dist/config.rules.test.js.map +0 -1
- package/dist/config.test.js +0 -311
- package/dist/config.test.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/memory-manager.js +0 -76
- package/dist/memory-manager.js.map +0 -1
- package/dist/project-scope.js +0 -67
- package/dist/project-scope.js.map +0 -1
- package/dist/provider.js +0 -366
- package/dist/provider.js.map +0 -1
- package/dist/provider.test.js +0 -21
- package/dist/provider.test.js.map +0 -1
- package/dist/sqlite-memory-store.js +0 -911
- package/dist/sqlite-memory-store.js.map +0 -1
- package/dist/sqlite-memory-store.test.js +0 -661
- package/dist/sqlite-memory-store.test.js.map +0 -1
- package/dist/utils/__tests__/parameterSimplifier.test.js +0 -137
- package/dist/utils/__tests__/parameterSimplifier.test.js.map +0 -1
- package/dist/utils/checkRipgrep.js +0 -22
- package/dist/utils/checkRipgrep.js.map +0 -1
- package/dist/utils/eventHandler.js +0 -199
- package/dist/utils/eventHandler.js.map +0 -1
- package/dist/utils/eventHandler.test.js +0 -50
- package/dist/utils/eventHandler.test.js.map +0 -1
- package/dist/utils/index.js +0 -7
- package/dist/utils/index.js.map +0 -1
- package/dist/utils/listFiles.js +0 -136
- package/dist/utils/listFiles.js.map +0 -1
- package/dist/utils/listFiles.test.js +0 -64
- package/dist/utils/listFiles.test.js.map +0 -1
- package/dist/utils/parameterSimplifier.js +0 -65
- package/dist/utils/parameterSimplifier.js.map +0 -1
- package/dist/utils/readMultiline.js +0 -19
- package/dist/utils/readMultiline.js.map +0 -1
- package/dist/utils/search.constants.js +0 -8
- package/dist/utils/search.constants.js.map +0 -1
- package/dist/utils/searchFiles.js +0 -72
- package/dist/utils/searchFiles.js.map +0 -1
- package/dist/utils/searchFiles.test.js +0 -140
- package/dist/utils/searchFiles.test.js.map +0 -1
package/dist/config.test.js
DELETED
|
@@ -1,311 +0,0 @@
|
|
|
1
|
-
// Generated by polka.codes
|
|
2
|
-
import { afterAll, afterEach, beforeAll, beforeEach, describe, expect, spyOn, test } from 'bun:test';
|
|
3
|
-
import { mkdirSync, mkdtempSync, rmSync, writeFileSync } from 'node:fs';
|
|
4
|
-
import { tmpdir } from 'node:os';
|
|
5
|
-
import { join } from 'node:path';
|
|
6
|
-
import { loadConfig, mergeConfigs } from './config';
|
|
7
|
-
describe('config', () => {
|
|
8
|
-
let testDir;
|
|
9
|
-
let testSubDir;
|
|
10
|
-
let testHomeDir;
|
|
11
|
-
beforeAll(() => {
|
|
12
|
-
testDir = mkdtempSync(join(tmpdir(), 'polkacodes-test-'));
|
|
13
|
-
});
|
|
14
|
-
beforeEach(() => {
|
|
15
|
-
testSubDir = mkdtempSync(join(testDir, `sub-test-${Math.random()}`));
|
|
16
|
-
testHomeDir = mkdtempSync(join(testDir, `home-test-${Math.random()}`));
|
|
17
|
-
mkdirSync(join(testHomeDir, '.config', 'polkacodes'), { recursive: true });
|
|
18
|
-
});
|
|
19
|
-
afterEach(() => {
|
|
20
|
-
rmSync(testSubDir, { recursive: true, force: true });
|
|
21
|
-
rmSync(testHomeDir, { recursive: true, force: true });
|
|
22
|
-
});
|
|
23
|
-
afterAll(() => {
|
|
24
|
-
rmSync(testDir, { recursive: true, force: true });
|
|
25
|
-
});
|
|
26
|
-
test('loads config from specified path', async () => {
|
|
27
|
-
const configPath = join(testSubDir, 'test-config.yml');
|
|
28
|
-
writeFileSync(configPath, `
|
|
29
|
-
defaultProvider: anthropic
|
|
30
|
-
defaultModel: claude-3-opus
|
|
31
|
-
`);
|
|
32
|
-
const config = await loadConfig(configPath, testSubDir, testHomeDir);
|
|
33
|
-
// Verify the config was loaded with the correct values
|
|
34
|
-
expect(config).toBeDefined();
|
|
35
|
-
expect(config?.defaultProvider).toBe('anthropic');
|
|
36
|
-
expect(config?.defaultModel).toBe('claude-3-opus');
|
|
37
|
-
});
|
|
38
|
-
test('loads multiple config files', async () => {
|
|
39
|
-
const configPath1 = join(testSubDir, 'config1.yml');
|
|
40
|
-
const configPath2 = join(testSubDir, 'config2.yml');
|
|
41
|
-
writeFileSync(configPath1, `
|
|
42
|
-
defaultProvider: anthropic
|
|
43
|
-
defaultModel: claude-3-opus
|
|
44
|
-
rules:
|
|
45
|
-
- rule1
|
|
46
|
-
- rule2
|
|
47
|
-
`);
|
|
48
|
-
writeFileSync(configPath2, `
|
|
49
|
-
defaultModel: claude-3-sonnet
|
|
50
|
-
rules:
|
|
51
|
-
- rule3
|
|
52
|
-
`);
|
|
53
|
-
const config = await loadConfig([configPath1, configPath2], testSubDir, testHomeDir);
|
|
54
|
-
// Verify configs are merged with later configs taking precedence
|
|
55
|
-
expect(config).toBeDefined();
|
|
56
|
-
expect(config?.defaultProvider).toBe('anthropic');
|
|
57
|
-
expect(config?.defaultModel).toBe('claude-3-sonnet'); // Overridden by config2
|
|
58
|
-
expect(config?.rules).toContain('rule1');
|
|
59
|
-
expect(config?.rules).toContain('rule2');
|
|
60
|
-
expect(config?.rules).toContain('rule3');
|
|
61
|
-
});
|
|
62
|
-
test('loads config from default paths', async () => {
|
|
63
|
-
const configPath = join(testSubDir, '.polkacodes.yml');
|
|
64
|
-
writeFileSync(configPath, `
|
|
65
|
-
defaultProvider: deepseek
|
|
66
|
-
defaultModel: deepseek-chat
|
|
67
|
-
`);
|
|
68
|
-
const config = await loadConfig(undefined, testSubDir, testHomeDir);
|
|
69
|
-
// Verify the config was loaded from the default path
|
|
70
|
-
expect(config).toBeDefined();
|
|
71
|
-
expect(config?.defaultProvider).toBe('deepseek');
|
|
72
|
-
expect(config?.defaultModel).toBe('deepseek-chat');
|
|
73
|
-
// Clean up
|
|
74
|
-
writeFileSync(configPath, '');
|
|
75
|
-
});
|
|
76
|
-
test('validates config schema', async () => {
|
|
77
|
-
const consoleErrorSpy = spyOn(console, 'error').mockImplementation(() => { });
|
|
78
|
-
const configPath = join(testSubDir, 'invalid-config.yml');
|
|
79
|
-
writeFileSync(configPath, `
|
|
80
|
-
invalidKey: value
|
|
81
|
-
`);
|
|
82
|
-
expect(loadConfig(configPath, testSubDir, testHomeDir)).rejects.toThrow();
|
|
83
|
-
consoleErrorSpy.mockRestore();
|
|
84
|
-
});
|
|
85
|
-
test('handles commands configuration', async () => {
|
|
86
|
-
const configPath = join(testSubDir, 'commands-config.yml');
|
|
87
|
-
writeFileSync(configPath, `
|
|
88
|
-
scripts:
|
|
89
|
-
test: echo "test"
|
|
90
|
-
complex:
|
|
91
|
-
command: echo "complex"
|
|
92
|
-
description: A complex command
|
|
93
|
-
`);
|
|
94
|
-
const config = await loadConfig(configPath, testSubDir, testHomeDir);
|
|
95
|
-
// Verify scripts are parsed correctly
|
|
96
|
-
expect(config?.scripts).toBeDefined();
|
|
97
|
-
expect(config?.scripts?.test).toBe('echo "test"');
|
|
98
|
-
expect(config?.scripts?.complex).toEqual({
|
|
99
|
-
command: 'echo "complex"',
|
|
100
|
-
description: 'A complex command',
|
|
101
|
-
});
|
|
102
|
-
});
|
|
103
|
-
test('handles rules configuration', async () => {
|
|
104
|
-
const configPath = join(testSubDir, 'rules-config.yml');
|
|
105
|
-
writeFileSync(configPath, `
|
|
106
|
-
rules:
|
|
107
|
-
- rule1
|
|
108
|
-
- rule2
|
|
109
|
-
`);
|
|
110
|
-
const config = await loadConfig(configPath, testSubDir, testHomeDir);
|
|
111
|
-
// Verify rules are parsed as a string
|
|
112
|
-
expect(config?.rules).toBeDefined();
|
|
113
|
-
expect(typeof config?.rules).toBe('string');
|
|
114
|
-
expect(config?.rules).toContain('rule1');
|
|
115
|
-
expect(config?.rules).toContain('rule2');
|
|
116
|
-
});
|
|
117
|
-
test('handles command defaults', async () => {
|
|
118
|
-
const configPath = join(testSubDir, 'defaults-config.yml');
|
|
119
|
-
writeFileSync(configPath, `
|
|
120
|
-
commands:
|
|
121
|
-
default:
|
|
122
|
-
provider: deepseek
|
|
123
|
-
model: deepseek-chat
|
|
124
|
-
task:
|
|
125
|
-
model: deepseek-coder
|
|
126
|
-
`);
|
|
127
|
-
const config = await loadConfig(configPath, testSubDir, testHomeDir);
|
|
128
|
-
// Verify command defaults are parsed correctly
|
|
129
|
-
expect(config?.commands).toBeDefined();
|
|
130
|
-
expect(config?.commands?.default?.provider).toBe('deepseek');
|
|
131
|
-
expect(config?.commands?.default?.model).toBe('deepseek-chat');
|
|
132
|
-
expect(config?.commands?.task?.model).toBe('deepseek-coder');
|
|
133
|
-
});
|
|
134
|
-
test('merges multiple configs correctly', () => {
|
|
135
|
-
const configs = [
|
|
136
|
-
{
|
|
137
|
-
defaultProvider: 'anthropic',
|
|
138
|
-
defaultModel: 'claude-3-opus',
|
|
139
|
-
rules: ['rule1', 'rule2'],
|
|
140
|
-
excludeFiles: ['exclude1'],
|
|
141
|
-
},
|
|
142
|
-
{
|
|
143
|
-
defaultModel: 'claude-3-sonnet',
|
|
144
|
-
rules: ['rule3'],
|
|
145
|
-
excludeFiles: ['exclude2'],
|
|
146
|
-
},
|
|
147
|
-
{
|
|
148
|
-
rules: 'rule4',
|
|
149
|
-
excludeFiles: ['exclude3'],
|
|
150
|
-
},
|
|
151
|
-
];
|
|
152
|
-
const merged = mergeConfigs(configs);
|
|
153
|
-
// Verify merge behavior: later configs override, arrays concatenate
|
|
154
|
-
expect(merged.defaultProvider).toBe('anthropic');
|
|
155
|
-
expect(merged.defaultModel).toBe('claude-3-sonnet'); // Overridden by second config
|
|
156
|
-
expect(merged.rules).toContain('rule1');
|
|
157
|
-
expect(merged.rules).toContain('rule2');
|
|
158
|
-
expect(merged.rules).toContain('rule3');
|
|
159
|
-
expect(merged.rules).toContain('rule4');
|
|
160
|
-
expect(merged.excludeFiles).toEqual(['exclude1', 'exclude2', 'exclude3']);
|
|
161
|
-
});
|
|
162
|
-
test('merges global and local config with local precedence', async () => {
|
|
163
|
-
const globalConfigPath = join(testHomeDir, '.config', 'polkacodes', 'config.yml');
|
|
164
|
-
const localConfigPath = join(testSubDir, '.polkacodes.yml');
|
|
165
|
-
writeFileSync(globalConfigPath, `
|
|
166
|
-
defaultProvider: anthropic
|
|
167
|
-
defaultModel: claude-3-opus
|
|
168
|
-
commands:
|
|
169
|
-
default:
|
|
170
|
-
provider: deepseek
|
|
171
|
-
model: deepseek-chat
|
|
172
|
-
scripts:
|
|
173
|
-
test: echo "global"
|
|
174
|
-
complex:
|
|
175
|
-
command: echo "global-complex"
|
|
176
|
-
description: Global complex command
|
|
177
|
-
rules:
|
|
178
|
-
- global-rule
|
|
179
|
-
`);
|
|
180
|
-
writeFileSync(localConfigPath, `
|
|
181
|
-
providers:
|
|
182
|
-
anthropic:
|
|
183
|
-
apiKey: local-key
|
|
184
|
-
commands:
|
|
185
|
-
default:
|
|
186
|
-
model: deepseek-coder-instruct
|
|
187
|
-
scripts:
|
|
188
|
-
test: echo "local"
|
|
189
|
-
rules:
|
|
190
|
-
- local-rule
|
|
191
|
-
`);
|
|
192
|
-
const config = await loadConfig(localConfigPath, testSubDir, testHomeDir);
|
|
193
|
-
// Verify local config takes precedence over global
|
|
194
|
-
expect(config).toBeDefined();
|
|
195
|
-
expect(config?.defaultProvider).toBe('anthropic'); // From global
|
|
196
|
-
expect(config?.defaultModel).toBe('claude-3-opus'); // From global
|
|
197
|
-
expect(config?.providers?.anthropic?.apiKey).toBe('local-key'); // From local
|
|
198
|
-
expect(config?.commands?.default?.provider).toBe('deepseek'); // From global
|
|
199
|
-
expect(config?.commands?.default?.model).toBe('deepseek-coder-instruct'); // Overridden by local
|
|
200
|
-
expect(config?.scripts?.test).toBe('echo "local"'); // Overridden by local
|
|
201
|
-
expect(config?.scripts?.complex).toEqual({
|
|
202
|
-
command: 'echo "global-complex"',
|
|
203
|
-
description: 'Global complex command',
|
|
204
|
-
}); // From global
|
|
205
|
-
expect(config?.rules).toContain('global-rule');
|
|
206
|
-
expect(config?.rules).toContain('local-rule');
|
|
207
|
-
});
|
|
208
|
-
test('concatenates arrays', async () => {
|
|
209
|
-
const globalConfigPath = join(testHomeDir, '.config', 'polkacodes', 'config.yml');
|
|
210
|
-
const localConfigPath = join(testSubDir, '.polkacodes.yml');
|
|
211
|
-
writeFileSync(globalConfigPath, `
|
|
212
|
-
rules:
|
|
213
|
-
- global-rule-1
|
|
214
|
-
- global-rule-2
|
|
215
|
-
`);
|
|
216
|
-
writeFileSync(localConfigPath, `
|
|
217
|
-
rules: local-rule
|
|
218
|
-
`);
|
|
219
|
-
const config = await loadConfig(localConfigPath, testSubDir, testHomeDir);
|
|
220
|
-
// Verify array concatenation behavior
|
|
221
|
-
expect(config?.rules).toBeDefined();
|
|
222
|
-
expect(config?.rules).toContain('global-rule-1');
|
|
223
|
-
expect(config?.rules).toContain('global-rule-2');
|
|
224
|
-
expect(config?.rules).toContain('local-rule');
|
|
225
|
-
});
|
|
226
|
-
test('parses project .polkacodes.yml successfully', async () => {
|
|
227
|
-
await loadConfig();
|
|
228
|
-
});
|
|
229
|
-
test('parses example.polkacodes.yml successfully', async () => {
|
|
230
|
-
const fetchSpy = spyOn(global, 'fetch').mockImplementation((() => Promise.resolve(new Response('mock rule content'))));
|
|
231
|
-
try {
|
|
232
|
-
await loadConfig('example.polkacodes.yml');
|
|
233
|
-
}
|
|
234
|
-
finally {
|
|
235
|
-
fetchSpy.mockRestore();
|
|
236
|
-
}
|
|
237
|
-
});
|
|
238
|
-
test('handles both string and array rules formats', async () => {
|
|
239
|
-
// Test string format
|
|
240
|
-
const stringConfigPath = join(testSubDir, 'string-rules.yml');
|
|
241
|
-
writeFileSync(stringConfigPath, `
|
|
242
|
-
rules: |
|
|
243
|
-
Rule 1
|
|
244
|
-
Rule 2
|
|
245
|
-
Rule 3
|
|
246
|
-
`);
|
|
247
|
-
const stringConfig = await loadConfig(stringConfigPath, testSubDir, testHomeDir);
|
|
248
|
-
expect(typeof stringConfig?.rules).toBe('string');
|
|
249
|
-
expect(stringConfig?.rules).toContain('Rule 1');
|
|
250
|
-
// Test array format
|
|
251
|
-
const arrayConfigPath = join(testSubDir, 'array-rules.yml');
|
|
252
|
-
writeFileSync(arrayConfigPath, `
|
|
253
|
-
rules:
|
|
254
|
-
- "Rule 1"
|
|
255
|
-
- "Rule 2"
|
|
256
|
-
- "Rule 3"
|
|
257
|
-
`);
|
|
258
|
-
const arrayConfig = await loadConfig(arrayConfigPath, testSubDir, testHomeDir);
|
|
259
|
-
expect(typeof arrayConfig?.rules).toBe('string');
|
|
260
|
-
expect(arrayConfig?.rules).toContain('Rule 1');
|
|
261
|
-
expect(arrayConfig?.rules).toContain('Rule 2');
|
|
262
|
-
expect(arrayConfig?.rules).toContain('Rule 3');
|
|
263
|
-
// Test merging behavior
|
|
264
|
-
const globalConfigPath = join(testHomeDir, '.config', 'polkacodes', 'config.yml');
|
|
265
|
-
const localConfigPath = join(testSubDir, 'merged-rules.yml');
|
|
266
|
-
writeFileSync(globalConfigPath, `
|
|
267
|
-
rules:
|
|
268
|
-
- "Global Rule 1"
|
|
269
|
-
- "Global Rule 2"
|
|
270
|
-
`);
|
|
271
|
-
writeFileSync(localConfigPath, `
|
|
272
|
-
rules: "Local Rule"
|
|
273
|
-
`);
|
|
274
|
-
const mergedConfig = await loadConfig(localConfigPath, testSubDir, testHomeDir);
|
|
275
|
-
expect(typeof mergedConfig?.rules).toBe('string');
|
|
276
|
-
expect(mergedConfig?.rules).toContain('Global Rule 1');
|
|
277
|
-
expect(mergedConfig?.rules).toContain('Global Rule 2');
|
|
278
|
-
expect(mergedConfig?.rules).toContain('Local Rule');
|
|
279
|
-
});
|
|
280
|
-
test('handles loadRules configuration', async () => {
|
|
281
|
-
const configPath = join(testSubDir, 'load-rules-config.yml');
|
|
282
|
-
// Test explicitly disabling both
|
|
283
|
-
writeFileSync(configPath, `
|
|
284
|
-
loadRules:
|
|
285
|
-
AGENTS.md: false
|
|
286
|
-
CLAUDE.md: false
|
|
287
|
-
`);
|
|
288
|
-
const config = await loadConfig(configPath, testSubDir, testHomeDir);
|
|
289
|
-
expect(config?.loadRules?.['AGENTS.md']).toBe(false);
|
|
290
|
-
expect(config?.loadRules?.['CLAUDE.md']).toBe(false);
|
|
291
|
-
// Test explicitly enabling both
|
|
292
|
-
writeFileSync(configPath, `
|
|
293
|
-
loadRules:
|
|
294
|
-
AGENTS.md: true
|
|
295
|
-
CLAUDE.md: true
|
|
296
|
-
`);
|
|
297
|
-
const enabledConfig = await loadConfig(configPath, testSubDir, testHomeDir);
|
|
298
|
-
expect(enabledConfig?.loadRules?.['AGENTS.md']).toBe(true);
|
|
299
|
-
expect(enabledConfig?.loadRules?.['CLAUDE.md']).toBe(true);
|
|
300
|
-
// Test mixed settings
|
|
301
|
-
writeFileSync(configPath, `
|
|
302
|
-
loadRules:
|
|
303
|
-
AGENTS.md: true
|
|
304
|
-
CLAUDE.md: false
|
|
305
|
-
`);
|
|
306
|
-
const mixedConfig = await loadConfig(configPath, testSubDir, testHomeDir);
|
|
307
|
-
expect(mixedConfig?.loadRules?.['AGENTS.md']).toBe(true);
|
|
308
|
-
expect(mixedConfig?.loadRules?.['CLAUDE.md']).toBe(false);
|
|
309
|
-
});
|
|
310
|
-
});
|
|
311
|
-
//# sourceMappingURL=config.test.js.map
|
package/dist/config.test.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.test.js","sourceRoot":"","sources":["../src/config.test.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,eAAe,CAAA;AAC7B,cAAc,0BAA0B,CAAA;AACxC,cAAc,kBAAkB,CAAA"}
|
package/dist/memory-manager.js
DELETED
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Memory Manager
|
|
3
|
-
*
|
|
4
|
-
* This class provides core memory management logic that is independent
|
|
5
|
-
* of the storage backend. It implements the IMemoryStore interface and
|
|
6
|
-
* delegates storage operations to the provided store implementation.
|
|
7
|
-
*
|
|
8
|
-
* This allows the same business logic to be used with different storage
|
|
9
|
-
* backends (SQLite, PostgreSQL, Redis, etc.)
|
|
10
|
-
*/
|
|
11
|
-
export class MemoryManager {
|
|
12
|
-
store;
|
|
13
|
-
constructor(store) {
|
|
14
|
-
this.store = store;
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Read memory by topic name
|
|
18
|
-
*/
|
|
19
|
-
async readMemory(topic) {
|
|
20
|
-
return this.store.readMemory(topic);
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Update memory with operation
|
|
24
|
-
*/
|
|
25
|
-
async updateMemory(operation, topic, content, metadata) {
|
|
26
|
-
return this.store.updateMemory(operation, topic, content, metadata);
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Query memory with filters
|
|
30
|
-
*/
|
|
31
|
-
async queryMemory(query = {}, options) {
|
|
32
|
-
// Apply default safety limit if not specified
|
|
33
|
-
const finalQuery = {
|
|
34
|
-
...query,
|
|
35
|
-
};
|
|
36
|
-
// Only apply default limit for select operations, and if no explicit limit is set
|
|
37
|
-
// Skip for count, delete operations or when limit is explicitly set
|
|
38
|
-
const operation = options?.operation;
|
|
39
|
-
if ((operation === 'select' || !operation) && !finalQuery.limit) {
|
|
40
|
-
finalQuery.limit = 1000;
|
|
41
|
-
}
|
|
42
|
-
return this.store.queryMemory(finalQuery, options);
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* Batch update memory
|
|
46
|
-
*/
|
|
47
|
-
async batchUpdateMemory(operations) {
|
|
48
|
-
return this.store.batchUpdateMemory(operations);
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* Get database statistics
|
|
52
|
-
*/
|
|
53
|
-
async getStats() {
|
|
54
|
-
return this.store.getStats();
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Close the memory store
|
|
58
|
-
*/
|
|
59
|
-
async close() {
|
|
60
|
-
await this.store.close();
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Execute a transaction
|
|
64
|
-
* Exposes the underlying store's transaction method if available
|
|
65
|
-
*/
|
|
66
|
-
async transaction(callback) {
|
|
67
|
-
// Check if the underlying store supports transactions
|
|
68
|
-
const storeWithTransaction = this.store;
|
|
69
|
-
if (typeof storeWithTransaction.transaction === 'function') {
|
|
70
|
-
return storeWithTransaction.transaction(callback);
|
|
71
|
-
}
|
|
72
|
-
// If no transaction support, run the callback directly
|
|
73
|
-
return callback();
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
//# sourceMappingURL=memory-manager.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"memory-manager.js","sourceRoot":"","sources":["../src/memory-manager.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AACH,MAAM,OAAO,aAAa;IAChB,KAAK,CAAc;IAE3B,YAAY,KAAmB;QAC7B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,KAAa;QAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;IACrC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAChB,SAA0C,EAC1C,KAAa,EACb,OAA2B,EAC3B,QAQC;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;IACrE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,QAAqB,EAAE,EAAE,OAAsB;QAC/D,8CAA8C;QAC9C,MAAM,UAAU,GAAgB;YAC9B,GAAG,KAAK;SACT,CAAA;QACD,kFAAkF;QAClF,oEAAoE;QACpE,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,CAAA;QACpC,IAAI,CAAC,SAAS,KAAK,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YAChE,UAAU,CAAC,KAAK,GAAG,IAAI,CAAA;QACzB,CAAC;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;IACpD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB,CAAC,UAA6B;QACnD,OAAO,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAA;IACjD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAA;IAC9B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;IAC1B,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,WAAW,CAAI,QAA0B;QAC7C,sDAAsD;QACtD,MAAM,oBAAoB,GAAG,IAAI,CAAC,KAAqE,CAAA;QACvG,IAAI,OAAO,oBAAoB,CAAC,WAAW,KAAK,UAAU,EAAE,CAAC;YAC3D,OAAO,oBAAoB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;QACnD,CAAC;QACD,uDAAuD;QACvD,OAAO,QAAQ,EAAE,CAAA;IACnB,CAAC;CACF"}
|
package/dist/project-scope.js
DELETED
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import { existsSync } from 'node:fs';
|
|
2
|
-
import { dirname, normalize, resolve, sep } from 'node:path';
|
|
3
|
-
/**
|
|
4
|
-
* Detect project scope from current working directory
|
|
5
|
-
*
|
|
6
|
-
* This function determines whether we're in a project directory or global scope.
|
|
7
|
-
* It looks for common project markers (.git, package.json, etc.) to identify the project root.
|
|
8
|
-
*
|
|
9
|
-
* @param cwd - Current working directory
|
|
10
|
-
* @returns A scope string ('global' or 'project:/absolute/path')
|
|
11
|
-
*/
|
|
12
|
-
export function detectProjectScope(cwd) {
|
|
13
|
-
const projectPath = findProjectRoot(cwd);
|
|
14
|
-
if (!projectPath) {
|
|
15
|
-
return 'global';
|
|
16
|
-
}
|
|
17
|
-
const normalizedPath = normalizePath(projectPath);
|
|
18
|
-
return `project:${normalizedPath}`;
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Find the project root directory by looking for common project markers
|
|
22
|
-
*/
|
|
23
|
-
function findProjectRoot(dir) {
|
|
24
|
-
// Check if we're still in a valid directory
|
|
25
|
-
if (!existsSync(dir)) {
|
|
26
|
-
return null;
|
|
27
|
-
}
|
|
28
|
-
// Common project markers in priority order
|
|
29
|
-
const primaryMarkers = ['.git', 'package.json'];
|
|
30
|
-
const secondaryMarkers = [
|
|
31
|
-
'Cargo.toml', // Rust
|
|
32
|
-
'go.mod', // Go
|
|
33
|
-
'pyproject.toml', // Python
|
|
34
|
-
'requirements.txt', // Python
|
|
35
|
-
'setup.py', // Python
|
|
36
|
-
'Gemfile', // Ruby
|
|
37
|
-
'pom.xml', // Java Maven
|
|
38
|
-
'build.gradle', // Java Gradle
|
|
39
|
-
];
|
|
40
|
-
// Check primary markers first
|
|
41
|
-
for (const marker of primaryMarkers) {
|
|
42
|
-
if (existsSync(resolve(dir, marker))) {
|
|
43
|
-
return dir;
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
// Check secondary markers
|
|
47
|
-
for (const marker of secondaryMarkers) {
|
|
48
|
-
if (existsSync(resolve(dir, marker))) {
|
|
49
|
-
return dir;
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
// Check if we've reached the filesystem root
|
|
53
|
-
const parent = dirname(dir);
|
|
54
|
-
if (parent === dir) {
|
|
55
|
-
return null;
|
|
56
|
-
}
|
|
57
|
-
// Recurse up the directory tree
|
|
58
|
-
return findProjectRoot(parent);
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Normalize path to use forward slashes for consistency across platforms
|
|
62
|
-
*/
|
|
63
|
-
function normalizePath(path) {
|
|
64
|
-
// Normalize path separators to forward slashes for consistency
|
|
65
|
-
return normalize(path).split(sep).join('/');
|
|
66
|
-
}
|
|
67
|
-
//# sourceMappingURL=project-scope.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"project-scope.js","sourceRoot":"","sources":["../src/project-scope.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;AAE5D;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAW;IAC5C,MAAM,WAAW,GAAG,eAAe,CAAC,GAAG,CAAC,CAAA;IAExC,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,MAAM,cAAc,GAAG,aAAa,CAAC,WAAW,CAAC,CAAA;IACjD,OAAO,WAAW,cAAc,EAAE,CAAA;AACpC,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CAAC,GAAW;IAClC,4CAA4C;IAC5C,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,2CAA2C;IAC3C,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;IAC/C,MAAM,gBAAgB,GAAG;QACvB,YAAY,EAAE,OAAO;QACrB,QAAQ,EAAE,KAAK;QACf,gBAAgB,EAAE,SAAS;QAC3B,kBAAkB,EAAE,SAAS;QAC7B,UAAU,EAAE,SAAS;QACrB,SAAS,EAAE,OAAO;QAClB,SAAS,EAAE,aAAa;QACxB,cAAc,EAAE,cAAc;KAC/B,CAAA;IAED,8BAA8B;IAC9B,KAAK,MAAM,MAAM,IAAI,cAAc,EAAE,CAAC;QACpC,IAAI,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;YACrC,OAAO,GAAG,CAAA;QACZ,CAAC;IACH,CAAC;IAED,0BAA0B;IAC1B,KAAK,MAAM,MAAM,IAAI,gBAAgB,EAAE,CAAC;QACtC,IAAI,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;YACrC,OAAO,GAAG,CAAA;QACZ,CAAC;IACH,CAAC;IAED,6CAA6C;IAC7C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;IAC3B,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;QACnB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,gCAAgC;IAChC,OAAO,eAAe,CAAC,MAAM,CAAC,CAAA;AAChC,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,IAAY;IACjC,+DAA+D;IAC/D,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC7C,CAAC"}
|