dino-spec 17.4.3 → 17.6.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/README.md +16 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +10 -0
- package/dist/commands/init.js.map +1 -1
- package/dist/core/agents/__tests__/confidence-gate.test.d.ts +5 -0
- package/dist/core/agents/__tests__/confidence-gate.test.d.ts.map +1 -0
- package/dist/core/agents/__tests__/confidence-gate.test.js +329 -0
- package/dist/core/agents/__tests__/confidence-gate.test.js.map +1 -0
- package/dist/core/agents/__tests__/gap-detector.test.d.ts +5 -0
- package/dist/core/agents/__tests__/gap-detector.test.d.ts.map +1 -0
- package/dist/core/agents/__tests__/gap-detector.test.js +609 -0
- package/dist/core/agents/__tests__/gap-detector.test.js.map +1 -0
- package/dist/core/agents/__tests__/learning-loop.test.d.ts +5 -0
- package/dist/core/agents/__tests__/learning-loop.test.d.ts.map +1 -0
- package/dist/core/agents/__tests__/learning-loop.test.js +663 -0
- package/dist/core/agents/__tests__/learning-loop.test.js.map +1 -0
- package/dist/core/agents/__tests__/parallel-executor.test.d.ts +5 -0
- package/dist/core/agents/__tests__/parallel-executor.test.d.ts.map +1 -0
- package/dist/core/agents/__tests__/parallel-executor.test.js +610 -0
- package/dist/core/agents/__tests__/parallel-executor.test.js.map +1 -0
- package/dist/core/agents/__tests__/research-validator.test.js +5 -5
- package/dist/core/agents/__tests__/research-validator.test.js.map +1 -1
- package/dist/core/agents/__tests__/skill-creator.test.d.ts +5 -0
- package/dist/core/agents/__tests__/skill-creator.test.d.ts.map +1 -0
- package/dist/core/agents/__tests__/skill-creator.test.js +443 -0
- package/dist/core/agents/__tests__/skill-creator.test.js.map +1 -0
- package/dist/core/agents/__tests__/state-persistence.test.d.ts +2 -0
- package/dist/core/agents/__tests__/state-persistence.test.d.ts.map +1 -0
- package/dist/core/agents/__tests__/state-persistence.test.js +270 -0
- package/dist/core/agents/__tests__/state-persistence.test.js.map +1 -0
- package/dist/core/agents/__tests__/validation-cache.test.d.ts +2 -0
- package/dist/core/agents/__tests__/validation-cache.test.d.ts.map +1 -0
- package/dist/core/agents/__tests__/validation-cache.test.js +181 -0
- package/dist/core/agents/__tests__/validation-cache.test.js.map +1 -0
- package/dist/core/agents/ambiguity-resolver.d.ts +14 -1
- package/dist/core/agents/ambiguity-resolver.d.ts.map +1 -1
- package/dist/core/agents/ambiguity-resolver.js +24 -2
- package/dist/core/agents/ambiguity-resolver.js.map +1 -1
- package/dist/core/agents/blackboard.d.ts +22 -3
- package/dist/core/agents/blackboard.d.ts.map +1 -1
- package/dist/core/agents/blackboard.js +52 -2
- package/dist/core/agents/blackboard.js.map +1 -1
- package/dist/core/agents/circuit-breaker.d.ts +79 -1
- package/dist/core/agents/circuit-breaker.d.ts.map +1 -1
- package/dist/core/agents/circuit-breaker.js +175 -1
- package/dist/core/agents/circuit-breaker.js.map +1 -1
- package/dist/core/agents/clarification-phase.d.ts +128 -0
- package/dist/core/agents/clarification-phase.d.ts.map +1 -0
- package/dist/core/agents/clarification-phase.js +375 -0
- package/dist/core/agents/clarification-phase.js.map +1 -0
- package/dist/core/agents/confidence-gate.d.ts +133 -4
- package/dist/core/agents/confidence-gate.d.ts.map +1 -1
- package/dist/core/agents/confidence-gate.js +376 -9
- package/dist/core/agents/confidence-gate.js.map +1 -1
- package/dist/core/agents/correction-tracker.d.ts +197 -0
- package/dist/core/agents/correction-tracker.d.ts.map +1 -0
- package/dist/core/agents/correction-tracker.js +366 -0
- package/dist/core/agents/correction-tracker.js.map +1 -0
- package/dist/core/agents/dependency-graph.d.ts +193 -0
- package/dist/core/agents/dependency-graph.d.ts.map +1 -0
- package/dist/core/agents/dependency-graph.js +462 -0
- package/dist/core/agents/dependency-graph.js.map +1 -0
- package/dist/core/agents/gap-detector.d.ts +277 -0
- package/dist/core/agents/gap-detector.d.ts.map +1 -0
- package/dist/core/agents/gap-detector.js +540 -0
- package/dist/core/agents/gap-detector.js.map +1 -0
- package/dist/core/agents/index.d.ts +14 -1
- package/dist/core/agents/index.d.ts.map +1 -1
- package/dist/core/agents/index.js +26 -1
- package/dist/core/agents/index.js.map +1 -1
- package/dist/core/agents/message-protocol.d.ts +13 -2
- package/dist/core/agents/message-protocol.d.ts.map +1 -1
- package/dist/core/agents/message-protocol.js +20 -1
- package/dist/core/agents/message-protocol.js.map +1 -1
- package/dist/core/agents/parallel-executor.d.ts +182 -0
- package/dist/core/agents/parallel-executor.d.ts.map +1 -0
- package/dist/core/agents/parallel-executor.js +474 -0
- package/dist/core/agents/parallel-executor.js.map +1 -0
- package/dist/core/agents/pattern-detector.d.ts +157 -0
- package/dist/core/agents/pattern-detector.d.ts.map +1 -0
- package/dist/core/agents/pattern-detector.js +370 -0
- package/dist/core/agents/pattern-detector.js.map +1 -0
- package/dist/core/agents/registry-client.d.ts +6 -0
- package/dist/core/agents/registry-client.d.ts.map +1 -1
- package/dist/core/agents/registry-client.js +3 -0
- package/dist/core/agents/registry-client.js.map +1 -1
- package/dist/core/agents/research-phase.d.ts +114 -0
- package/dist/core/agents/research-phase.d.ts.map +1 -0
- package/dist/core/agents/research-phase.js +355 -0
- package/dist/core/agents/research-phase.js.map +1 -0
- package/dist/core/agents/research-validator.d.ts +13 -2
- package/dist/core/agents/research-validator.d.ts.map +1 -1
- package/dist/core/agents/research-validator.js +63 -31
- package/dist/core/agents/research-validator.js.map +1 -1
- package/dist/core/agents/skill-creator.d.ts +174 -0
- package/dist/core/agents/skill-creator.d.ts.map +1 -0
- package/dist/core/agents/skill-creator.js +570 -0
- package/dist/core/agents/skill-creator.js.map +1 -0
- package/dist/core/agents/state-persistence.d.ts +184 -0
- package/dist/core/agents/state-persistence.d.ts.map +1 -0
- package/dist/core/agents/state-persistence.js +394 -0
- package/dist/core/agents/state-persistence.js.map +1 -0
- package/dist/core/agents/validation-cache.d.ts +122 -0
- package/dist/core/agents/validation-cache.d.ts.map +1 -0
- package/dist/core/agents/validation-cache.js +280 -0
- package/dist/core/agents/validation-cache.js.map +1 -0
- package/dist/core/agents/validators/__tests__/validators.test.d.ts +5 -0
- package/dist/core/agents/validators/__tests__/validators.test.d.ts.map +1 -0
- package/dist/core/agents/validators/__tests__/validators.test.js +321 -0
- package/dist/core/agents/validators/__tests__/validators.test.js.map +1 -0
- package/dist/core/agents/validators/base-validator.d.ts +191 -0
- package/dist/core/agents/validators/base-validator.d.ts.map +1 -0
- package/dist/core/agents/validators/base-validator.js +192 -0
- package/dist/core/agents/validators/base-validator.js.map +1 -0
- package/dist/core/agents/validators/index.d.ts +7 -0
- package/dist/core/agents/validators/index.d.ts.map +1 -0
- package/dist/core/agents/validators/index.js +7 -0
- package/dist/core/agents/validators/index.js.map +1 -0
- package/dist/core/agents/validators/npm-validator.d.ts +50 -0
- package/dist/core/agents/validators/npm-validator.d.ts.map +1 -0
- package/dist/core/agents/validators/npm-validator.js +211 -0
- package/dist/core/agents/validators/npm-validator.js.map +1 -0
- package/dist/core/agents/validators/pip-validator.d.ts +49 -0
- package/dist/core/agents/validators/pip-validator.d.ts.map +1 -0
- package/dist/core/agents/validators/pip-validator.js +191 -0
- package/dist/core/agents/validators/pip-validator.js.map +1 -0
- package/dist/core/agents/validators/validator-registry.d.ts +122 -0
- package/dist/core/agents/validators/validator-registry.d.ts.map +1 -0
- package/dist/core/agents/validators/validator-registry.js +321 -0
- package/dist/core/agents/validators/validator-registry.js.map +1 -0
- package/dist/core/context/auto-injection-engine.d.ts +7 -1
- package/dist/core/context/auto-injection-engine.d.ts.map +1 -1
- package/dist/core/context/auto-injection-engine.js +46 -1
- package/dist/core/context/auto-injection-engine.js.map +1 -1
- package/dist/core/context-repl/types.d.ts +4 -4
- package/dist/core/memory/index.d.ts +1 -0
- package/dist/core/memory/index.d.ts.map +1 -1
- package/dist/core/memory/index.js +2 -0
- package/dist/core/memory/index.js.map +1 -1
- package/dist/core/memory/learning-store.d.ts +222 -0
- package/dist/core/memory/learning-store.d.ts.map +1 -0
- package/dist/core/memory/learning-store.js +477 -0
- package/dist/core/memory/learning-store.js.map +1 -0
- package/dist/core/ralph/__tests__/prd-generator-session-context.test.d.ts +7 -0
- package/dist/core/ralph/__tests__/prd-generator-session-context.test.d.ts.map +1 -0
- package/dist/core/ralph/__tests__/prd-generator-session-context.test.js +143 -0
- package/dist/core/ralph/__tests__/prd-generator-session-context.test.js.map +1 -0
- package/dist/core/ralph/index.d.ts +3 -3
- package/dist/core/ralph/index.d.ts.map +1 -1
- package/dist/core/ralph/index.js +2 -2
- package/dist/core/ralph/index.js.map +1 -1
- package/dist/core/ralph/prd-generator.d.ts +18 -3
- package/dist/core/ralph/prd-generator.d.ts.map +1 -1
- package/dist/core/ralph/prd-generator.js +33 -11
- package/dist/core/ralph/prd-generator.js.map +1 -1
- package/dist/core/ralph/progress-tracker.d.ts.map +1 -1
- package/dist/core/ralph/progress-tracker.js +2 -1
- package/dist/core/ralph/progress-tracker.js.map +1 -1
- package/dist/core/ralph/sub-agent-spawner.d.ts +4 -2
- package/dist/core/ralph/sub-agent-spawner.d.ts.map +1 -1
- package/dist/core/ralph/sub-agent-spawner.js +48 -3
- package/dist/core/ralph/sub-agent-spawner.js.map +1 -1
- package/dist/core/ralph/task-integration.d.ts.map +1 -1
- package/dist/core/ralph/task-integration.js +6 -3
- package/dist/core/ralph/task-integration.js.map +1 -1
- package/dist/core/ralph/types.d.ts +62 -3
- package/dist/core/ralph/types.d.ts.map +1 -1
- package/dist/core/ralph/types.js.map +1 -1
- package/dist/core/recommendations/recommendation-engine.d.ts +6 -0
- package/dist/core/recommendations/recommendation-engine.d.ts.map +1 -1
- package/dist/core/recommendations/recommendation-engine.js.map +1 -1
- package/dist/core/spec-analyzer/__tests__/ambiguity-detector.test.d.ts +5 -0
- package/dist/core/spec-analyzer/__tests__/ambiguity-detector.test.d.ts.map +1 -0
- package/dist/core/spec-analyzer/__tests__/ambiguity-detector.test.js +401 -0
- package/dist/core/spec-analyzer/__tests__/ambiguity-detector.test.js.map +1 -0
- package/dist/core/spec-analyzer/ambiguity-detector.d.ts +99 -0
- package/dist/core/spec-analyzer/ambiguity-detector.d.ts.map +1 -0
- package/dist/core/spec-analyzer/ambiguity-detector.js +250 -0
- package/dist/core/spec-analyzer/ambiguity-detector.js.map +1 -0
- package/dist/core/spec-analyzer/clarification-generator.d.ts +76 -0
- package/dist/core/spec-analyzer/clarification-generator.d.ts.map +1 -0
- package/dist/core/spec-analyzer/clarification-generator.js +257 -0
- package/dist/core/spec-analyzer/clarification-generator.js.map +1 -0
- package/dist/core/spec-analyzer/index.d.ts +22 -2
- package/dist/core/spec-analyzer/index.d.ts.map +1 -1
- package/dist/core/spec-analyzer/index.js +21 -3
- package/dist/core/spec-analyzer/index.js.map +1 -1
- package/dist/core/spec-analyzer/patterns.d.ts +73 -0
- package/dist/core/spec-analyzer/patterns.d.ts.map +1 -0
- package/dist/core/spec-analyzer/patterns.js +412 -0
- package/dist/core/spec-analyzer/patterns.js.map +1 -0
- package/dist/hooks/__tests__/dynamic-generator.test.d.ts +5 -0
- package/dist/hooks/__tests__/dynamic-generator.test.d.ts.map +1 -0
- package/dist/hooks/__tests__/dynamic-generator.test.js +425 -0
- package/dist/hooks/__tests__/dynamic-generator.test.js.map +1 -0
- package/dist/hooks/__tests__/hook-agent-bridge.test.d.ts +5 -0
- package/dist/hooks/__tests__/hook-agent-bridge.test.d.ts.map +1 -0
- package/dist/hooks/__tests__/hook-agent-bridge.test.js +315 -0
- package/dist/hooks/__tests__/hook-agent-bridge.test.js.map +1 -0
- package/dist/hooks/dynamic-generator.d.ts +158 -0
- package/dist/hooks/dynamic-generator.d.ts.map +1 -0
- package/dist/hooks/dynamic-generator.js +448 -0
- package/dist/hooks/dynamic-generator.js.map +1 -0
- package/dist/hooks/hook-agent-bridge.d.ts +252 -0
- package/dist/hooks/hook-agent-bridge.d.ts.map +1 -0
- package/dist/hooks/hook-agent-bridge.js +489 -0
- package/dist/hooks/hook-agent-bridge.js.map +1 -0
- package/dist/hooks/index.d.ts +3 -1
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +5 -1
- package/dist/hooks/index.js.map +1 -1
- package/dist/mcp/tool-catalog.d.ts.map +1 -1
- package/dist/mcp/tool-catalog.js +47 -0
- package/dist/mcp/tool-catalog.js.map +1 -1
- package/dist/mcp/tool-tiers.d.ts.map +1 -1
- package/dist/mcp/tool-tiers.js +4 -0
- package/dist/mcp/tool-tiers.js.map +1 -1
- package/dist/mcp/tools/auto-inject.d.ts +4 -0
- package/dist/mcp/tools/auto-inject.d.ts.map +1 -1
- package/dist/mcp/tools/auto-inject.js +13 -4
- package/dist/mcp/tools/auto-inject.js.map +1 -1
- package/dist/mcp/tools/chunking.d.ts +3 -0
- package/dist/mcp/tools/chunking.d.ts.map +1 -1
- package/dist/mcp/tools/chunking.js +10 -4
- package/dist/mcp/tools/chunking.js.map +1 -1
- package/dist/mcp/tools/embeddings.d.ts +4 -0
- package/dist/mcp/tools/embeddings.d.ts.map +1 -1
- package/dist/mcp/tools/embeddings.js +16 -6
- package/dist/mcp/tools/embeddings.js.map +1 -1
- package/dist/mcp/tools/index.d.ts +2 -1
- package/dist/mcp/tools/index.d.ts.map +1 -1
- package/dist/mcp/tools/index.js +15 -1
- package/dist/mcp/tools/index.js.map +1 -1
- package/dist/mcp/tools/knowledge-graph.d.ts +3 -0
- package/dist/mcp/tools/knowledge-graph.d.ts.map +1 -1
- package/dist/mcp/tools/knowledge-graph.js +19 -8
- package/dist/mcp/tools/knowledge-graph.js.map +1 -1
- package/dist/mcp/tools/lazy-context.d.ts +2 -0
- package/dist/mcp/tools/lazy-context.d.ts.map +1 -1
- package/dist/mcp/tools/lazy-context.js +10 -4
- package/dist/mcp/tools/lazy-context.js.map +1 -1
- package/dist/mcp/tools/learning-store.d.ts +30 -0
- package/dist/mcp/tools/learning-store.d.ts.map +1 -0
- package/dist/mcp/tools/learning-store.js +286 -0
- package/dist/mcp/tools/learning-store.js.map +1 -0
- package/dist/mcp/tools/memory-decay.d.ts.map +1 -1
- package/dist/mcp/tools/memory-decay.js +4 -2
- package/dist/mcp/tools/memory-decay.js.map +1 -1
- package/dist/mcp/tools/prefetch.d.ts +4 -1
- package/dist/mcp/tools/prefetch.d.ts.map +1 -1
- package/dist/mcp/tools/prefetch.js +18 -7
- package/dist/mcp/tools/prefetch.js.map +1 -1
- package/dist/mcp/tools/ralph.d.ts +2 -0
- package/dist/mcp/tools/ralph.d.ts.map +1 -1
- package/dist/mcp/tools/ralph.js +96 -6
- package/dist/mcp/tools/ralph.js.map +1 -1
- package/dist/mcp/tools/recommendations.d.ts +2 -0
- package/dist/mcp/tools/recommendations.d.ts.map +1 -1
- package/dist/mcp/tools/recommendations.js +13 -4
- package/dist/mcp/tools/recommendations.js.map +1 -1
- package/dist/mcp/tools/retrieval.d.ts +4 -0
- package/dist/mcp/tools/retrieval.d.ts.map +1 -1
- package/dist/mcp/tools/retrieval.js +25 -10
- package/dist/mcp/tools/retrieval.js.map +1 -1
- package/dist/mcp/tools/spec-feedback.d.ts +2 -0
- package/dist/mcp/tools/spec-feedback.d.ts.map +1 -1
- package/dist/mcp/tools/spec-feedback.js +33 -16
- package/dist/mcp/tools/spec-feedback.js.map +1 -1
- package/dist/mcp/utils/index.d.ts +1 -0
- package/dist/mcp/utils/index.d.ts.map +1 -1
- package/dist/mcp/utils/index.js +2 -0
- package/dist/mcp/utils/index.js.map +1 -1
- package/dist/mcp/utils/session-context.d.ts +108 -0
- package/dist/mcp/utils/session-context.d.ts.map +1 -0
- package/dist/mcp/utils/session-context.js +157 -0
- package/dist/mcp/utils/session-context.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
import { existsSync, mkdirSync, rmSync, writeFileSync } from 'node:fs';
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
import { afterEach, beforeEach, describe, expect, it } from 'vitest';
|
|
4
|
+
import { DEFAULT_PERSISTENCE_CONFIG, StatePersistence, } from '../state-persistence.js';
|
|
5
|
+
describe('StatePersistence', () => {
|
|
6
|
+
const testBaseDir = '.dino/test-agent-state';
|
|
7
|
+
let persistence;
|
|
8
|
+
beforeEach(() => {
|
|
9
|
+
// Clean up test directory
|
|
10
|
+
if (existsSync(testBaseDir)) {
|
|
11
|
+
rmSync(testBaseDir, { recursive: true });
|
|
12
|
+
}
|
|
13
|
+
persistence = new StatePersistence({ baseDir: testBaseDir });
|
|
14
|
+
});
|
|
15
|
+
afterEach(() => {
|
|
16
|
+
persistence.dispose();
|
|
17
|
+
if (existsSync(testBaseDir)) {
|
|
18
|
+
rmSync(testBaseDir, { recursive: true });
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
describe('Claims Persistence', () => {
|
|
22
|
+
it('should save and load claims', () => {
|
|
23
|
+
const claims = [
|
|
24
|
+
{
|
|
25
|
+
resource: 'src/file1.ts',
|
|
26
|
+
agentId: 'agent-1',
|
|
27
|
+
claimedAt: new Date().toISOString(),
|
|
28
|
+
expiresAt: new Date(Date.now() + 3600000).toISOString(),
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
resource: 'src/file2.ts',
|
|
32
|
+
agentId: 'agent-2',
|
|
33
|
+
claimedAt: new Date().toISOString(),
|
|
34
|
+
expiresAt: new Date(Date.now() + 3600000).toISOString(),
|
|
35
|
+
},
|
|
36
|
+
];
|
|
37
|
+
persistence.saveClaims(claims);
|
|
38
|
+
const loaded = persistence.loadClaims();
|
|
39
|
+
expect(loaded).toHaveLength(2);
|
|
40
|
+
expect(loaded[0].resource).toBe('src/file1.ts');
|
|
41
|
+
expect(loaded[1].resource).toBe('src/file2.ts');
|
|
42
|
+
});
|
|
43
|
+
it('should filter out stale claims (> 1 hour)', () => {
|
|
44
|
+
const now = Date.now();
|
|
45
|
+
const claims = [
|
|
46
|
+
{
|
|
47
|
+
resource: 'src/fresh.ts',
|
|
48
|
+
agentId: 'agent-1',
|
|
49
|
+
claimedAt: new Date(now - 1000).toISOString(), // 1 second ago
|
|
50
|
+
expiresAt: new Date(now + 3600000).toISOString(),
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
resource: 'src/stale.ts',
|
|
54
|
+
agentId: 'agent-2',
|
|
55
|
+
claimedAt: new Date(now - 3700000).toISOString(), // Over 1 hour ago
|
|
56
|
+
expiresAt: new Date(now - 100000).toISOString(), // Already expired
|
|
57
|
+
},
|
|
58
|
+
];
|
|
59
|
+
persistence.saveClaims(claims);
|
|
60
|
+
const loaded = persistence.loadClaims();
|
|
61
|
+
expect(loaded).toHaveLength(1);
|
|
62
|
+
expect(loaded[0].resource).toBe('src/fresh.ts');
|
|
63
|
+
});
|
|
64
|
+
it('should handle empty claims file', () => {
|
|
65
|
+
const loaded = persistence.loadClaims();
|
|
66
|
+
expect(loaded).toHaveLength(0);
|
|
67
|
+
});
|
|
68
|
+
it('should handle corrupted claims file', () => {
|
|
69
|
+
mkdirSync(testBaseDir, { recursive: true });
|
|
70
|
+
writeFileSync(join(testBaseDir, 'claims.json'), 'invalid json');
|
|
71
|
+
const loaded = persistence.loadClaims();
|
|
72
|
+
expect(loaded).toHaveLength(0);
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
describe('Message History Persistence', () => {
|
|
76
|
+
it('should save and load message history', () => {
|
|
77
|
+
const messages = [
|
|
78
|
+
{
|
|
79
|
+
id: 'msg-1',
|
|
80
|
+
from: 'agent-1',
|
|
81
|
+
to: 'agent-2',
|
|
82
|
+
type: 'query',
|
|
83
|
+
payload: { queryType: 'file-content', resource: 'test.ts' },
|
|
84
|
+
timestamp: new Date().toISOString(),
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
id: 'msg-2',
|
|
88
|
+
from: 'agent-2',
|
|
89
|
+
to: 'agent-1',
|
|
90
|
+
type: 'response',
|
|
91
|
+
payload: { queryId: 'msg-1', success: true, data: 'content' },
|
|
92
|
+
timestamp: new Date().toISOString(),
|
|
93
|
+
},
|
|
94
|
+
];
|
|
95
|
+
persistence.saveMessageHistory(messages);
|
|
96
|
+
const loaded = persistence.loadMessageHistory();
|
|
97
|
+
expect(loaded).toHaveLength(2);
|
|
98
|
+
expect(loaded[0].id).toBe('msg-1');
|
|
99
|
+
expect(loaded[1].id).toBe('msg-2');
|
|
100
|
+
});
|
|
101
|
+
it('should append messages incrementally', () => {
|
|
102
|
+
const message1 = {
|
|
103
|
+
id: 'msg-1',
|
|
104
|
+
from: 'agent-1',
|
|
105
|
+
to: null,
|
|
106
|
+
type: 'broadcast',
|
|
107
|
+
payload: { broadcastType: 'file-read', resource: 'test.ts' },
|
|
108
|
+
timestamp: new Date().toISOString(),
|
|
109
|
+
};
|
|
110
|
+
const message2 = {
|
|
111
|
+
id: 'msg-2',
|
|
112
|
+
from: 'agent-2',
|
|
113
|
+
to: null,
|
|
114
|
+
type: 'broadcast',
|
|
115
|
+
payload: { broadcastType: 'task-complete' },
|
|
116
|
+
timestamp: new Date().toISOString(),
|
|
117
|
+
};
|
|
118
|
+
persistence.appendMessage(message1);
|
|
119
|
+
persistence.appendMessage(message2);
|
|
120
|
+
persistence.flushMessages();
|
|
121
|
+
const loaded = persistence.loadMessageHistory();
|
|
122
|
+
expect(loaded).toHaveLength(2);
|
|
123
|
+
});
|
|
124
|
+
it('should compress history when exceeding max size', () => {
|
|
125
|
+
const smallPersistence = new StatePersistence({
|
|
126
|
+
baseDir: testBaseDir,
|
|
127
|
+
maxActiveMessages: 5,
|
|
128
|
+
});
|
|
129
|
+
// Create 10 messages
|
|
130
|
+
const messages = [];
|
|
131
|
+
for (let i = 0; i < 10; i++) {
|
|
132
|
+
messages.push({
|
|
133
|
+
id: `msg-${i}`,
|
|
134
|
+
from: 'agent-1',
|
|
135
|
+
to: null,
|
|
136
|
+
type: 'broadcast',
|
|
137
|
+
payload: { broadcastType: 'custom', data: { index: i } },
|
|
138
|
+
timestamp: new Date().toISOString(),
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
smallPersistence.saveMessageHistory(messages);
|
|
142
|
+
const loaded = smallPersistence.loadMessageHistory();
|
|
143
|
+
// Should only have last 5 messages
|
|
144
|
+
expect(loaded).toHaveLength(5);
|
|
145
|
+
expect(loaded[0].id).toBe('msg-5');
|
|
146
|
+
expect(loaded[4].id).toBe('msg-9');
|
|
147
|
+
smallPersistence.dispose();
|
|
148
|
+
});
|
|
149
|
+
it('should handle empty messages file', () => {
|
|
150
|
+
const loaded = persistence.loadMessageHistory();
|
|
151
|
+
expect(loaded).toHaveLength(0);
|
|
152
|
+
});
|
|
153
|
+
});
|
|
154
|
+
describe('Shared State Persistence', () => {
|
|
155
|
+
it('should save and load shared state', () => {
|
|
156
|
+
const state = new Map();
|
|
157
|
+
state.set('key1', 'value1');
|
|
158
|
+
state.set('key2', { nested: 'object' });
|
|
159
|
+
state.set('key3', [1, 2, 3]);
|
|
160
|
+
persistence.saveSharedState(state);
|
|
161
|
+
const loaded = persistence.loadSharedState();
|
|
162
|
+
expect(loaded.get('key1')).toBe('value1');
|
|
163
|
+
expect(loaded.get('key2')).toEqual({ nested: 'object' });
|
|
164
|
+
expect(loaded.get('key3')).toEqual([1, 2, 3]);
|
|
165
|
+
});
|
|
166
|
+
it('should handle empty state file', () => {
|
|
167
|
+
const loaded = persistence.loadSharedState();
|
|
168
|
+
expect(loaded.size).toBe(0);
|
|
169
|
+
});
|
|
170
|
+
});
|
|
171
|
+
describe('Full State Management', () => {
|
|
172
|
+
it('should load all state at once', () => {
|
|
173
|
+
// Save some data first
|
|
174
|
+
const claims = [
|
|
175
|
+
{
|
|
176
|
+
resource: 'test.ts',
|
|
177
|
+
agentId: 'agent-1',
|
|
178
|
+
claimedAt: new Date().toISOString(),
|
|
179
|
+
},
|
|
180
|
+
];
|
|
181
|
+
const messages = [
|
|
182
|
+
{
|
|
183
|
+
id: 'msg-1',
|
|
184
|
+
from: 'agent-1',
|
|
185
|
+
to: null,
|
|
186
|
+
type: 'broadcast',
|
|
187
|
+
payload: { broadcastType: 'custom' },
|
|
188
|
+
timestamp: new Date().toISOString(),
|
|
189
|
+
},
|
|
190
|
+
];
|
|
191
|
+
const state = new Map();
|
|
192
|
+
state.set('testKey', 'testValue');
|
|
193
|
+
persistence.saveClaims(claims);
|
|
194
|
+
persistence.saveMessageHistory(messages);
|
|
195
|
+
persistence.saveSharedState(state);
|
|
196
|
+
// Load all at once
|
|
197
|
+
const { claims: loadedClaims, messages: loadedMessages, sharedState } = persistence.loadAll();
|
|
198
|
+
expect(loadedClaims).toHaveLength(1);
|
|
199
|
+
expect(loadedMessages).toHaveLength(1);
|
|
200
|
+
expect(sharedState.get('testKey')).toBe('testValue');
|
|
201
|
+
});
|
|
202
|
+
it('should save all state at once', () => {
|
|
203
|
+
const claims = [
|
|
204
|
+
{
|
|
205
|
+
resource: 'all.ts',
|
|
206
|
+
agentId: 'agent-all',
|
|
207
|
+
claimedAt: new Date().toISOString(),
|
|
208
|
+
},
|
|
209
|
+
];
|
|
210
|
+
const messages = [
|
|
211
|
+
{
|
|
212
|
+
id: 'msg-all',
|
|
213
|
+
from: 'agent-all',
|
|
214
|
+
to: null,
|
|
215
|
+
type: 'broadcast',
|
|
216
|
+
payload: { broadcastType: 'custom' },
|
|
217
|
+
timestamp: new Date().toISOString(),
|
|
218
|
+
},
|
|
219
|
+
];
|
|
220
|
+
const state = new Map();
|
|
221
|
+
state.set('allKey', 'allValue');
|
|
222
|
+
persistence.saveAll(claims, messages, state);
|
|
223
|
+
// Verify by loading back
|
|
224
|
+
const loaded = persistence.loadAll();
|
|
225
|
+
expect(loaded.claims).toHaveLength(1);
|
|
226
|
+
expect(loaded.claims[0].resource).toBe('all.ts');
|
|
227
|
+
expect(loaded.messages).toHaveLength(1);
|
|
228
|
+
expect(loaded.sharedState.get('allKey')).toBe('allValue');
|
|
229
|
+
});
|
|
230
|
+
});
|
|
231
|
+
describe('Cleanup', () => {
|
|
232
|
+
it('should clean up stale claims', () => {
|
|
233
|
+
const now = Date.now();
|
|
234
|
+
const claims = [
|
|
235
|
+
{
|
|
236
|
+
resource: 'fresh.ts',
|
|
237
|
+
agentId: 'agent-1',
|
|
238
|
+
claimedAt: new Date(now - 1000).toISOString(),
|
|
239
|
+
},
|
|
240
|
+
{
|
|
241
|
+
resource: 'old.ts',
|
|
242
|
+
agentId: 'agent-2',
|
|
243
|
+
claimedAt: new Date(now - 7200000).toISOString(), // 2 hours ago
|
|
244
|
+
},
|
|
245
|
+
];
|
|
246
|
+
const cleaned = persistence.cleanupStaleClaims(claims);
|
|
247
|
+
expect(cleaned).toHaveLength(1);
|
|
248
|
+
expect(cleaned[0].resource).toBe('fresh.ts');
|
|
249
|
+
});
|
|
250
|
+
});
|
|
251
|
+
describe('Configuration', () => {
|
|
252
|
+
it('should use default configuration', () => {
|
|
253
|
+
expect(DEFAULT_PERSISTENCE_CONFIG.baseDir).toBe('.dino/agent-state');
|
|
254
|
+
expect(DEFAULT_PERSISTENCE_CONFIG.maxActiveMessages).toBe(1000);
|
|
255
|
+
expect(DEFAULT_PERSISTENCE_CONFIG.maxClaimAgeMs).toBe(3600000); // 1 hour
|
|
256
|
+
});
|
|
257
|
+
it('should allow custom configuration', () => {
|
|
258
|
+
const customConfig = {
|
|
259
|
+
baseDir: 'custom/path',
|
|
260
|
+
maxActiveMessages: 500,
|
|
261
|
+
maxClaimAgeMs: 1800000, // 30 minutes
|
|
262
|
+
};
|
|
263
|
+
const customPersistence = new StatePersistence(customConfig);
|
|
264
|
+
// Handle both Windows and Unix path separators
|
|
265
|
+
expect(customPersistence.claimsPath).toMatch(/custom[/\\]path/);
|
|
266
|
+
customPersistence.dispose();
|
|
267
|
+
});
|
|
268
|
+
});
|
|
269
|
+
});
|
|
270
|
+
//# sourceMappingURL=state-persistence.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state-persistence.test.js","sourceRoot":"","sources":["../../../../src/core/agents/__tests__/state-persistence.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation-cache.test.d.ts","sourceRoot":"","sources":["../../../../src/core/agents/__tests__/validation-cache.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
import { afterEach, beforeEach, describe, expect, it } from 'vitest';
|
|
2
|
+
import { API_RATE_LIMITS, RateLimiter, rateLimited, rateLimiter, ValidationCache, withRateLimit, } from '../validation-cache.js';
|
|
3
|
+
describe('ValidationCache', () => {
|
|
4
|
+
let cache;
|
|
5
|
+
beforeEach(() => {
|
|
6
|
+
cache = new ValidationCache({ ttlMs: 1000, maxEntries: 5 });
|
|
7
|
+
});
|
|
8
|
+
describe('Basic Operations', () => {
|
|
9
|
+
it('should store and retrieve values', () => {
|
|
10
|
+
cache.set('key1', 'value1');
|
|
11
|
+
expect(cache.get('key1')).toBe('value1');
|
|
12
|
+
});
|
|
13
|
+
it('should return undefined for missing keys', () => {
|
|
14
|
+
expect(cache.get('nonexistent')).toBeUndefined();
|
|
15
|
+
});
|
|
16
|
+
it('should check if key exists', () => {
|
|
17
|
+
cache.set('key1', 'value1');
|
|
18
|
+
expect(cache.has('key1')).toBe(true);
|
|
19
|
+
expect(cache.has('nonexistent')).toBe(false);
|
|
20
|
+
});
|
|
21
|
+
it('should delete values', () => {
|
|
22
|
+
cache.set('key1', 'value1');
|
|
23
|
+
expect(cache.delete('key1')).toBe(true);
|
|
24
|
+
expect(cache.get('key1')).toBeUndefined();
|
|
25
|
+
});
|
|
26
|
+
it('should clear all values', () => {
|
|
27
|
+
cache.set('key1', 'value1');
|
|
28
|
+
cache.set('key2', 'value2');
|
|
29
|
+
cache.clear();
|
|
30
|
+
expect(cache.get('key1')).toBeUndefined();
|
|
31
|
+
expect(cache.get('key2')).toBeUndefined();
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
describe('TTL Expiration', () => {
|
|
35
|
+
it('should expire entries after TTL', async () => {
|
|
36
|
+
const shortCache = new ValidationCache({ ttlMs: 50 });
|
|
37
|
+
shortCache.set('key1', 'value1');
|
|
38
|
+
expect(shortCache.get('key1')).toBe('value1');
|
|
39
|
+
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
40
|
+
expect(shortCache.get('key1')).toBeUndefined();
|
|
41
|
+
});
|
|
42
|
+
it('should allow custom TTL per entry', async () => {
|
|
43
|
+
cache.set('short', 'value', 50);
|
|
44
|
+
cache.set('long', 'value', 5000);
|
|
45
|
+
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
46
|
+
expect(cache.get('short')).toBeUndefined();
|
|
47
|
+
expect(cache.get('long')).toBe('value');
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
describe('Max Entries', () => {
|
|
51
|
+
it('should evict oldest entry when at capacity', () => {
|
|
52
|
+
for (let i = 0; i < 6; i++) {
|
|
53
|
+
cache.set(`key${i}`, `value${i}`);
|
|
54
|
+
}
|
|
55
|
+
// First entry should be evicted
|
|
56
|
+
const stats = cache.getStats();
|
|
57
|
+
expect(stats.size).toBeLessThanOrEqual(5);
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
describe('Statistics', () => {
|
|
61
|
+
it('should track hits and misses', () => {
|
|
62
|
+
cache.set('key1', 'value1');
|
|
63
|
+
cache.get('key1'); // hit
|
|
64
|
+
cache.get('key1'); // hit
|
|
65
|
+
cache.get('missing'); // miss
|
|
66
|
+
const stats = cache.getStats();
|
|
67
|
+
expect(stats.hits).toBe(2);
|
|
68
|
+
expect(stats.misses).toBe(1);
|
|
69
|
+
expect(stats.hitRate).toBeCloseTo(0.667, 2);
|
|
70
|
+
});
|
|
71
|
+
it('should report size', () => {
|
|
72
|
+
cache.set('key1', 'value1');
|
|
73
|
+
cache.set('key2', 'value2');
|
|
74
|
+
const stats = cache.getStats();
|
|
75
|
+
expect(stats.size).toBe(2);
|
|
76
|
+
expect(stats.maxSize).toBe(5);
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
describe('Cleanup', () => {
|
|
80
|
+
it('should cleanup expired entries', async () => {
|
|
81
|
+
const shortCache = new ValidationCache({ ttlMs: 50 });
|
|
82
|
+
shortCache.set('key1', 'value1');
|
|
83
|
+
shortCache.set('key2', 'value2');
|
|
84
|
+
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
85
|
+
const evicted = shortCache.cleanup();
|
|
86
|
+
expect(evicted).toBe(2);
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
});
|
|
90
|
+
describe('RateLimiter', () => {
|
|
91
|
+
let limiter;
|
|
92
|
+
beforeEach(() => {
|
|
93
|
+
limiter = new RateLimiter();
|
|
94
|
+
});
|
|
95
|
+
afterEach(() => {
|
|
96
|
+
limiter.resetAll();
|
|
97
|
+
});
|
|
98
|
+
describe('Token Acquisition', () => {
|
|
99
|
+
it('should allow immediate requests within burst limit', async () => {
|
|
100
|
+
// npm has burstLimit of 20
|
|
101
|
+
for (let i = 0; i < 5; i++) {
|
|
102
|
+
await expect(limiter.acquire('npm')).resolves.toBeUndefined();
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
it('should track available tokens', () => {
|
|
106
|
+
const stats = limiter.getStats('npm');
|
|
107
|
+
expect(stats.availableTokens).toBeGreaterThan(0);
|
|
108
|
+
expect(stats.config.requestsPerSecond).toBe(10);
|
|
109
|
+
});
|
|
110
|
+
it('should queue requests when tokens exhausted', async () => {
|
|
111
|
+
// Exhaust all tokens
|
|
112
|
+
const burstLimit = API_RATE_LIMITS.audit.burstLimit; // 3 for audit
|
|
113
|
+
for (let i = 0; i < burstLimit; i++) {
|
|
114
|
+
await limiter.acquire('audit');
|
|
115
|
+
}
|
|
116
|
+
// Next request should be queued
|
|
117
|
+
const stats = limiter.getStats('audit');
|
|
118
|
+
expect(stats.availableTokens).toBe(0);
|
|
119
|
+
});
|
|
120
|
+
});
|
|
121
|
+
describe('Rate Limit Configuration', () => {
|
|
122
|
+
it('should have default rate limits for npm', () => {
|
|
123
|
+
expect(API_RATE_LIMITS.npm).toEqual({
|
|
124
|
+
requestsPerSecond: 10,
|
|
125
|
+
burstLimit: 20,
|
|
126
|
+
});
|
|
127
|
+
});
|
|
128
|
+
it('should have default rate limits for bundlephobia', () => {
|
|
129
|
+
expect(API_RATE_LIMITS.bundlephobia).toEqual({
|
|
130
|
+
requestsPerSecond: 5,
|
|
131
|
+
burstLimit: 10,
|
|
132
|
+
});
|
|
133
|
+
});
|
|
134
|
+
it('should have default rate limits for audit', () => {
|
|
135
|
+
expect(API_RATE_LIMITS.audit).toEqual({
|
|
136
|
+
requestsPerSecond: 1,
|
|
137
|
+
burstLimit: 3,
|
|
138
|
+
});
|
|
139
|
+
});
|
|
140
|
+
});
|
|
141
|
+
describe('Reset', () => {
|
|
142
|
+
it('should reset a specific source', async () => {
|
|
143
|
+
await limiter.acquire('npm');
|
|
144
|
+
limiter.reset('npm');
|
|
145
|
+
const stats = limiter.getStats('npm');
|
|
146
|
+
expect(stats.queueLength).toBe(0);
|
|
147
|
+
});
|
|
148
|
+
it('should reset all sources', async () => {
|
|
149
|
+
await limiter.acquire('npm');
|
|
150
|
+
await limiter.acquire('audit');
|
|
151
|
+
limiter.resetAll();
|
|
152
|
+
// New stats should be fresh
|
|
153
|
+
const npmStats = limiter.getStats('npm');
|
|
154
|
+
expect(npmStats.queueLength).toBe(0);
|
|
155
|
+
});
|
|
156
|
+
});
|
|
157
|
+
});
|
|
158
|
+
describe('Utility Functions', () => {
|
|
159
|
+
afterEach(() => {
|
|
160
|
+
rateLimiter.resetAll();
|
|
161
|
+
});
|
|
162
|
+
describe('withRateLimit', () => {
|
|
163
|
+
it('should execute function with rate limiting', async () => {
|
|
164
|
+
let called = false;
|
|
165
|
+
const result = await withRateLimit('npm', async () => {
|
|
166
|
+
called = true;
|
|
167
|
+
return 'result';
|
|
168
|
+
});
|
|
169
|
+
expect(called).toBe(true);
|
|
170
|
+
expect(result).toBe('result');
|
|
171
|
+
});
|
|
172
|
+
});
|
|
173
|
+
describe('rateLimited', () => {
|
|
174
|
+
it('should create rate-limited function', async () => {
|
|
175
|
+
const fn = rateLimited('npm', async (x) => x * 2);
|
|
176
|
+
const result = await fn(5);
|
|
177
|
+
expect(result).toBe(10);
|
|
178
|
+
});
|
|
179
|
+
});
|
|
180
|
+
});
|
|
181
|
+
//# sourceMappingURL=validation-cache.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation-cache.test.js","sourceRoot":"","sources":["../../../../src/core/agents/__tests__/validation-cache.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -98,10 +98,23 @@ export declare function executeResearch(params: ResearchAgentParams, config?: Am
|
|
|
98
98
|
* Build research prompt for subagent
|
|
99
99
|
*/
|
|
100
100
|
export declare function buildResearchPrompt(params: ResearchAgentParams, config?: AmbiguityResolverConfig): string;
|
|
101
|
+
/**
|
|
102
|
+
* Session context for task spawning
|
|
103
|
+
* v17.6.0: Added to pass session.md context to research subagent
|
|
104
|
+
*/
|
|
105
|
+
export interface TaskSpawnSessionContext {
|
|
106
|
+
/** Focus area from session.md */
|
|
107
|
+
focusArea?: string;
|
|
108
|
+
/** Current phase from session.md */
|
|
109
|
+
phase?: string;
|
|
110
|
+
/** Recent changes from session.md */
|
|
111
|
+
recentChanges?: string[];
|
|
112
|
+
}
|
|
101
113
|
/**
|
|
102
114
|
* Build Task tool spawn parameters for research subagent
|
|
115
|
+
* v17.6.0: Enhanced with optional session context for better research scoping
|
|
103
116
|
*/
|
|
104
|
-
export declare function buildTaskSpawnParams(params: ResearchAgentParams, config?: AmbiguityResolverConfig): {
|
|
117
|
+
export declare function buildTaskSpawnParams(params: ResearchAgentParams, config?: AmbiguityResolverConfig, sessionContext?: TaskSpawnSessionContext): {
|
|
105
118
|
description: string;
|
|
106
119
|
prompt: string;
|
|
107
120
|
subagent_type: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ambiguity-resolver.d.ts","sourceRoot":"","sources":["../../../src/core/agents/ambiguity-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAiB,KAAK,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAM5E;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,eAAe,EAAE,CAAA;IAC3B,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,IAAI,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,SAAS,GAAG,MAAM,GAAG,eAAe,GAAG,UAAU,GAAG,UAAU,CAAA;IACpE,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc,EAAE,MAAM,CAAA;IACtB,OAAO,EAAE,eAAe,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,aAAa,EAAE,OAAO,CAAA;IACtB,cAAc,EAAE,OAAO,CAAA;IACvB,eAAe,EAAE,OAAO,CAAA;IACxB,WAAW,EAAE,OAAO,CAAA;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAA;IACjB,iBAAiB,EAAE,MAAM,CAAA;IACzB,cAAc,EAAE,MAAM,CAAA;IACtB,eAAe,EAAE,OAAO,CAAA;IACxB,oBAAoB,EAAE,OAAO,CAAA;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,OAAO,CAAA;IACtB,cAAc,EAAE,MAAM,CAAA;IACtB,QAAQ,EAAE,YAAY,CAAA;IACtB,QAAQ,CAAC,EAAE,cAAc,CAAA;IACzB,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,CAAA;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAoBD;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,0BAAiB,GAAG,OAAO,CAG9E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EACd,MAAM,0BAAiB,GACtB;IAAE,aAAa,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,eAAe,CAAA;CAAE,CAgBrE;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,MAAM,EACd,MAAM,0BAAiB,GACtB,OAAO,CAAC,mBAAmB,CAAC,CA+C9B;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,mBAAmB,EAC3B,MAAM,0BAAiB,GACtB,OAAO,CAAC,cAAc,CAAC,CAoBzB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,mBAAmB,EAAE,MAAM,0BAAiB,GAAG,MAAM,CAuFhG;AAED
|
|
1
|
+
{"version":3,"file":"ambiguity-resolver.d.ts","sourceRoot":"","sources":["../../../src/core/agents/ambiguity-resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -197,11 +197,33 @@ export function buildResearchPrompt(params, config = DEFAULT_CONFIG) {
|
|
|
197
197
|
}
|
|
198
198
|
/**
|
|
199
199
|
* Build Task tool spawn parameters for research subagent
|
|
200
|
+
* v17.6.0: Enhanced with optional session context for better research scoping
|
|
200
201
|
*/
|
|
201
|
-
export function buildTaskSpawnParams(params, config = DEFAULT_CONFIG) {
|
|
202
|
+
export function buildTaskSpawnParams(params, config = DEFAULT_CONFIG, sessionContext) {
|
|
203
|
+
// Build base prompt
|
|
204
|
+
let prompt = buildResearchPrompt(params, config);
|
|
205
|
+
// v17.6.0: Inject session context if available
|
|
206
|
+
if (sessionContext) {
|
|
207
|
+
const contextLines = [];
|
|
208
|
+
contextLines.push('\n## Session Context\n');
|
|
209
|
+
if (sessionContext.focusArea) {
|
|
210
|
+
contextLines.push(`**Focus Area:** ${sessionContext.focusArea}`);
|
|
211
|
+
contextLines.push('Prioritize files within this focus area.');
|
|
212
|
+
}
|
|
213
|
+
if (sessionContext.phase) {
|
|
214
|
+
contextLines.push(`**Current Phase:** ${sessionContext.phase}`);
|
|
215
|
+
}
|
|
216
|
+
if (sessionContext.recentChanges && sessionContext.recentChanges.length > 0) {
|
|
217
|
+
contextLines.push(`**Recent Changes:** ${sessionContext.recentChanges.slice(0, 3).join(', ')}`);
|
|
218
|
+
contextLines.push('Consider these recent changes for context.');
|
|
219
|
+
}
|
|
220
|
+
if (contextLines.length > 1) {
|
|
221
|
+
prompt += contextLines.join('\n');
|
|
222
|
+
}
|
|
223
|
+
}
|
|
202
224
|
return {
|
|
203
225
|
description: 'Research: resolve ambiguity',
|
|
204
|
-
prompt
|
|
226
|
+
prompt,
|
|
205
227
|
subagent_type: 'Explore',
|
|
206
228
|
model: 'sonnet',
|
|
207
229
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ambiguity-resolver.js","sourceRoot":"","sources":["../../../src/core/agents/ambiguity-resolver.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ambiguity-resolver.js","sourceRoot":"","sources":["../../../src/core/agents/ambiguity-resolver.ts"],"names":[],"mappings":"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"}
|