moflo 4.8.24 → 4.8.26
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/.claude/agents/browser/browser-agent.yaml +182 -182
- package/.claude/agents/core/coder.md +265 -265
- package/.claude/agents/core/planner.md +167 -167
- package/.claude/agents/core/researcher.md +189 -189
- package/.claude/agents/core/reviewer.md +325 -325
- package/.claude/agents/core/tester.md +318 -318
- package/.claude/agents/database-specialist.yaml +21 -21
- package/.claude/agents/dual-mode/codex-coordinator.md +224 -224
- package/.claude/agents/dual-mode/codex-worker.md +211 -211
- package/.claude/agents/dual-mode/dual-orchestrator.md +291 -291
- package/.claude/agents/github/code-review-swarm.md +537 -537
- package/.claude/agents/github/github-modes.md +172 -172
- package/.claude/agents/github/issue-tracker.md +318 -318
- package/.claude/agents/github/multi-repo-swarm.md +552 -552
- package/.claude/agents/github/pr-manager.md +190 -190
- package/.claude/agents/github/project-board-sync.md +508 -508
- package/.claude/agents/github/release-manager.md +366 -366
- package/.claude/agents/github/release-swarm.md +582 -582
- package/.claude/agents/github/repo-architect.md +397 -397
- package/.claude/agents/github/swarm-issue.md +572 -572
- package/.claude/agents/github/swarm-pr.md +427 -427
- package/.claude/agents/github/sync-coordinator.md +451 -451
- package/.claude/agents/github/workflow-automation.md +634 -634
- package/.claude/agents/goal/code-goal-planner.md +445 -445
- package/.claude/agents/hive-mind/collective-intelligence-coordinator.md +129 -129
- package/.claude/agents/hive-mind/queen-coordinator.md +202 -202
- package/.claude/agents/hive-mind/scout-explorer.md +241 -241
- package/.claude/agents/hive-mind/swarm-memory-manager.md +192 -192
- package/.claude/agents/hive-mind/worker-specialist.md +216 -216
- package/.claude/agents/index.yaml +17 -17
- package/.claude/agents/neural/safla-neural.md +73 -73
- package/.claude/agents/project-coordinator.yaml +15 -15
- package/.claude/agents/python-specialist.yaml +21 -21
- package/.claude/agents/reasoning/goal-planner.md +72 -72
- package/.claude/agents/security-auditor.yaml +20 -20
- package/.claude/agents/swarm/adaptive-coordinator.md +395 -395
- package/.claude/agents/swarm/hierarchical-coordinator.md +326 -326
- package/.claude/agents/swarm/mesh-coordinator.md +391 -391
- package/.claude/agents/templates/migration-plan.md +745 -745
- package/.claude/agents/typescript-specialist.yaml +21 -21
- package/.claude/checkpoints/1767754460.json +8 -8
- package/.claude/commands/agents/agent-spawning.md +28 -28
- package/.claude/commands/github/github-modes.md +146 -146
- package/.claude/commands/github/github-swarm.md +121 -121
- package/.claude/commands/github/issue-tracker.md +291 -291
- package/.claude/commands/github/pr-manager.md +169 -169
- package/.claude/commands/github/release-manager.md +337 -337
- package/.claude/commands/github/repo-architect.md +366 -366
- package/.claude/commands/github/sync-coordinator.md +300 -300
- package/.claude/commands/memory/neural.md +47 -47
- package/.claude/commands/sparc/analyzer.md +51 -51
- package/.claude/commands/sparc/architect.md +53 -53
- package/.claude/commands/sparc/ask.md +97 -97
- package/.claude/commands/sparc/batch-executor.md +54 -54
- package/.claude/commands/sparc/code.md +89 -89
- package/.claude/commands/sparc/coder.md +54 -54
- package/.claude/commands/sparc/debug.md +83 -83
- package/.claude/commands/sparc/debugger.md +54 -54
- package/.claude/commands/sparc/designer.md +53 -53
- package/.claude/commands/sparc/devops.md +109 -109
- package/.claude/commands/sparc/docs-writer.md +80 -80
- package/.claude/commands/sparc/documenter.md +54 -54
- package/.claude/commands/sparc/innovator.md +54 -54
- package/.claude/commands/sparc/integration.md +83 -83
- package/.claude/commands/sparc/mcp.md +117 -117
- package/.claude/commands/sparc/memory-manager.md +54 -54
- package/.claude/commands/sparc/optimizer.md +54 -54
- package/.claude/commands/sparc/orchestrator.md +131 -131
- package/.claude/commands/sparc/post-deployment-monitoring-mode.md +83 -83
- package/.claude/commands/sparc/refinement-optimization-mode.md +83 -83
- package/.claude/commands/sparc/researcher.md +54 -54
- package/.claude/commands/sparc/reviewer.md +54 -54
- package/.claude/commands/sparc/security-review.md +80 -80
- package/.claude/commands/sparc/sparc-modes.md +174 -174
- package/.claude/commands/sparc/sparc.md +111 -111
- package/.claude/commands/sparc/spec-pseudocode.md +80 -80
- package/.claude/commands/sparc/supabase-admin.md +348 -348
- package/.claude/commands/sparc/swarm-coordinator.md +54 -54
- package/.claude/commands/sparc/tdd.md +54 -54
- package/.claude/commands/sparc/tester.md +54 -54
- package/.claude/commands/sparc/tutorial.md +79 -79
- package/.claude/commands/sparc/workflow-manager.md +54 -54
- package/.claude/commands/sparc.md +166 -166
- package/.claude/commands/swarm/analysis.md +95 -95
- package/.claude/commands/swarm/development.md +96 -96
- package/.claude/commands/swarm/examples.md +168 -168
- package/.claude/commands/swarm/maintenance.md +102 -102
- package/.claude/commands/swarm/optimization.md +117 -117
- package/.claude/commands/swarm/research.md +136 -136
- package/.claude/commands/swarm/testing.md +131 -131
- package/.claude/commands/workflows/development.md +77 -77
- package/.claude/commands/workflows/research.md +62 -62
- package/.claude/guidance/moflo-bootstrap.md +126 -126
- package/.claude/guidance/shipped/agent-bootstrap.md +143 -131
- package/.claude/guidance/shipped/guidance-memory-strategy.md +262 -262
- package/.claude/guidance/shipped/memory-strategy.md +204 -204
- package/.claude/guidance/shipped/moflo.md +675 -668
- package/.claude/guidance/shipped/task-swarm-integration.md +441 -441
- package/.claude/helpers/intelligence.cjs +207 -207
- package/.claude/helpers/statusline.cjs +851 -851
- package/.claude/skills/fl/SKILL.md +583 -583
- package/.claude/skills/flo/SKILL.md +583 -583
- package/.claude/skills/github-code-review/SKILL.md +1140 -1140
- package/.claude/skills/github-multi-repo/SKILL.md +874 -874
- package/.claude/skills/github-project-management/SKILL.md +1277 -1277
- package/.claude/skills/github-release-management/SKILL.md +1081 -1081
- package/.claude/skills/github-workflow-automation/SKILL.md +1065 -1065
- package/.claude/skills/hive-mind-advanced/SKILL.md +712 -712
- package/.claude/skills/hooks-automation/SKILL.md +1201 -1201
- package/.claude/skills/performance-analysis/SKILL.md +563 -563
- package/.claude/skills/sparc-methodology/SKILL.md +1115 -1115
- package/.claude/skills/swarm-advanced/SKILL.md +973 -973
- package/.claude/workflow-state.json +5 -5
- package/LICENSE +21 -21
- package/README.md +685 -698
- package/bin/cli.js +0 -0
- package/bin/gate-hook.mjs +50 -50
- package/bin/gate.cjs +138 -138
- package/bin/generate-code-map.mjs +937 -775
- package/bin/hook-handler.cjs +83 -83
- package/bin/hooks.mjs +696 -656
- package/bin/index-guidance.mjs +892 -892
- package/bin/index-tests.mjs +709 -709
- package/bin/lib/process-manager.mjs +256 -243
- package/bin/lib/registry-cleanup.cjs +41 -41
- package/bin/prompt-hook.mjs +72 -72
- package/bin/semantic-search.mjs +472 -472
- package/bin/session-start-launcher.mjs +238 -238
- package/bin/setup-project.mjs +250 -252
- package/package.json +123 -123
- package/src/@claude-flow/cli/README.md +452 -452
- package/src/@claude-flow/cli/bin/cli.js +180 -180
- package/src/@claude-flow/cli/bin/preinstall.cjs +2 -2
- package/src/@claude-flow/cli/dist/src/commands/completions.js +409 -409
- package/src/@claude-flow/cli/dist/src/commands/doctor.js +2 -18
- package/src/@claude-flow/cli/dist/src/commands/embeddings.js +25 -25
- package/src/@claude-flow/cli/dist/src/commands/github.js +61 -61
- package/src/@claude-flow/cli/dist/src/commands/hive-mind.js +90 -90
- package/src/@claude-flow/cli/dist/src/commands/hooks.js +9 -9
- package/src/@claude-flow/cli/dist/src/commands/init.js +8 -3
- package/src/@claude-flow/cli/dist/src/commands/ruvector/import.js +14 -14
- package/src/@claude-flow/cli/dist/src/commands/ruvector/setup.js +624 -624
- package/src/@claude-flow/cli/dist/src/config/moflo-config.d.ts +0 -3
- package/src/@claude-flow/cli/dist/src/config/moflo-config.js +91 -101
- package/src/@claude-flow/cli/dist/src/index.d.ts +0 -5
- package/src/@claude-flow/cli/dist/src/index.js +0 -44
- package/src/@claude-flow/cli/dist/src/init/claudemd-generator.d.ts +29 -29
- package/src/@claude-flow/cli/dist/src/init/claudemd-generator.js +43 -45
- package/src/@claude-flow/cli/dist/src/init/executor.js +453 -453
- package/src/@claude-flow/cli/dist/src/init/helpers-generator.js +482 -482
- package/src/@claude-flow/cli/dist/src/init/moflo-init.d.ts +30 -30
- package/src/@claude-flow/cli/dist/src/init/moflo-init.js +144 -200
- package/src/@claude-flow/cli/dist/src/init/statusline-generator.js +876 -876
- package/src/@claude-flow/cli/dist/src/mcp-tools/hooks-tools.js +11 -5
- package/src/@claude-flow/cli/dist/src/memory/memory-initializer.js +371 -371
- package/src/@claude-flow/cli/dist/src/runtime/headless.js +28 -28
- package/src/@claude-flow/cli/dist/src/services/daemon-lock.d.ts +0 -14
- package/src/@claude-flow/cli/dist/src/services/daemon-lock.js +1 -1
- package/src/@claude-flow/cli/dist/src/services/headless-worker-executor.js +84 -84
- package/src/@claude-flow/cli/package.json +1 -1
- package/src/@claude-flow/guidance/README.md +1195 -1195
- package/src/@claude-flow/guidance/package.json +198 -198
- package/src/@claude-flow/memory/README.md +587 -587
- package/src/@claude-flow/memory/dist/agentdb-backend.js +26 -26
- package/src/@claude-flow/memory/dist/auto-memory-bridge.test.js +27 -27
- package/src/@claude-flow/memory/dist/sqljs-backend.js +26 -26
- package/src/@claude-flow/memory/package.json +44 -44
- package/src/@claude-flow/shared/README.md +323 -323
- package/src/@claude-flow/shared/dist/events/event-store.js +31 -31
- package/src/README.md +493 -493
- package/.claude/agents/flow-nexus/app-store.md +0 -88
- package/.claude/agents/flow-nexus/authentication.md +0 -69
- package/.claude/agents/flow-nexus/challenges.md +0 -81
- package/.claude/agents/flow-nexus/neural-network.md +0 -88
- package/.claude/agents/flow-nexus/payments.md +0 -83
- package/.claude/agents/flow-nexus/sandbox.md +0 -76
- package/.claude/agents/flow-nexus/swarm.md +0 -76
- package/.claude/agents/flow-nexus/user-tools.md +0 -96
- package/.claude/agents/flow-nexus/workflow.md +0 -84
- package/.claude/agents/payments/agentic-payments.md +0 -126
- package/.claude/agents/sona/sona-learning-optimizer.md +0 -74
- package/.claude/agents/sublinear/consensus-coordinator.md +0 -338
- package/.claude/agents/sublinear/matrix-optimizer.md +0 -185
- package/.claude/agents/sublinear/pagerank-analyzer.md +0 -299
- package/.claude/agents/sublinear/performance-optimizer.md +0 -368
- package/.claude/agents/sublinear/trading-predictor.md +0 -246
- package/.claude/agents/v3/adr-architect.md +0 -184
- package/.claude/agents/v3/aidefence-guardian.md +0 -282
- package/.claude/agents/v3/claims-authorizer.md +0 -208
- package/.claude/agents/v3/collective-intelligence-coordinator.md +0 -993
- package/.claude/agents/v3/ddd-domain-expert.md +0 -220
- package/.claude/agents/v3/injection-analyst.md +0 -236
- package/.claude/agents/v3/memory-specialist.md +0 -995
- package/.claude/agents/v3/performance-engineer.md +0 -1233
- package/.claude/agents/v3/pii-detector.md +0 -151
- package/.claude/agents/v3/reasoningbank-learner.md +0 -213
- package/.claude/agents/v3/security-architect-aidefence.md +0 -410
- package/.claude/agents/v3/security-architect.md +0 -867
- package/.claude/agents/v3/security-auditor.md +0 -771
- package/.claude/agents/v3/sparc-orchestrator.md +0 -182
- package/.claude/agents/v3/swarm-memory-manager.md +0 -157
- package/.claude/agents/v3/v3-integration-architect.md +0 -205
- package/.claude/commands/analysis/COMMAND_COMPLIANCE_REPORT.md +0 -54
- package/.claude/commands/analysis/README.md +0 -9
- package/.claude/commands/analysis/bottleneck-detect.md +0 -162
- package/.claude/commands/analysis/performance-bottlenecks.md +0 -59
- package/.claude/commands/analysis/performance-report.md +0 -25
- package/.claude/commands/analysis/token-efficiency.md +0 -45
- package/.claude/commands/analysis/token-usage.md +0 -25
- package/.claude/commands/automation/README.md +0 -9
- package/.claude/commands/automation/auto-agent.md +0 -122
- package/.claude/commands/automation/self-healing.md +0 -106
- package/.claude/commands/automation/session-memory.md +0 -90
- package/.claude/commands/automation/smart-agents.md +0 -73
- package/.claude/commands/automation/smart-spawn.md +0 -25
- package/.claude/commands/automation/workflow-select.md +0 -25
- package/.claude/commands/monitoring/README.md +0 -9
- package/.claude/commands/monitoring/agent-metrics.md +0 -25
- package/.claude/commands/monitoring/agents.md +0 -44
- package/.claude/commands/monitoring/real-time-view.md +0 -25
- package/.claude/commands/monitoring/status.md +0 -46
- package/.claude/commands/monitoring/swarm-monitor.md +0 -25
- package/.claude/commands/optimization/README.md +0 -9
- package/.claude/commands/optimization/auto-topology.md +0 -62
- package/.claude/commands/optimization/cache-manage.md +0 -25
- package/.claude/commands/optimization/parallel-execute.md +0 -25
- package/.claude/commands/optimization/parallel-execution.md +0 -50
- package/.claude/commands/optimization/topology-optimize.md +0 -25
- package/.claude/guidance/shipped/task-icons.md +0 -42
- package/.claude/helpers/gate-hook.mjs +0 -50
- package/.claude/helpers/gate.cjs +0 -138
- package/.claude/helpers/hook-handler.cjs +0 -76
- package/.claude/helpers/prompt-hook.mjs +0 -72
- package/.claude/scripts/build-embeddings.mjs +0 -549
- package/.claude/scripts/generate-code-map.mjs +0 -776
- package/.claude/scripts/hooks.mjs +0 -656
- package/.claude/scripts/index-guidance.mjs +0 -893
- package/.claude/scripts/index-tests.mjs +0 -710
- package/.claude/scripts/semantic-search.mjs +0 -473
- package/.claude/scripts/session-start-launcher.mjs +0 -238
- package/.claude/settings.local.json +0 -18
- package/.claude/skills/pair-programming/SKILL.md +0 -1202
- package/.claude/skills/stream-chain/SKILL.md +0 -563
- package/.claude/skills/v3-cli-modernization/SKILL.md +0 -872
- package/.claude/skills/v3-core-implementation/SKILL.md +0 -797
- package/.claude/skills/v3-ddd-architecture/SKILL.md +0 -442
- package/.claude/skills/v3-integration-deep/SKILL.md +0 -241
- package/.claude/skills/v3-mcp-optimization/SKILL.md +0 -777
- package/.claude/skills/v3-memory-unification/SKILL.md +0 -174
- package/.claude/skills/v3-performance-optimization/SKILL.md +0 -390
- package/.claude/skills/v3-security-overhaul/SKILL.md +0 -82
- package/.claude/skills/v3-swarm-coordination/SKILL.md +0 -340
- package/src/@claude-flow/cli/dist/src/services/container-worker-pool.d.ts +0 -197
- package/src/@claude-flow/cli/dist/src/services/container-worker-pool.js +0 -584
- package/src/@claude-flow/memory/dist/hybrid-backend.d.ts +0 -245
- package/src/@claude-flow/memory/dist/hybrid-backend.js +0 -569
- package/src/@claude-flow/memory/dist/hybrid-backend.test.d.ts +0 -8
- package/src/@claude-flow/memory/dist/hybrid-backend.test.js +0 -320
- package/src/@claude-flow/memory/dist/sqlite-backend.d.ts +0 -121
- package/src/@claude-flow/memory/dist/sqlite-backend.js +0 -572
|
@@ -450,26 +450,26 @@ export class AgentDBBackend extends EventEmitter {
|
|
|
450
450
|
}
|
|
451
451
|
try {
|
|
452
452
|
// Create memory_entries table
|
|
453
|
-
await db.run(`
|
|
454
|
-
CREATE TABLE IF NOT EXISTS memory_entries (
|
|
455
|
-
id TEXT PRIMARY KEY,
|
|
456
|
-
key TEXT NOT NULL,
|
|
457
|
-
content TEXT NOT NULL,
|
|
458
|
-
embedding BLOB,
|
|
459
|
-
type TEXT NOT NULL,
|
|
460
|
-
namespace TEXT NOT NULL,
|
|
461
|
-
tags TEXT,
|
|
462
|
-
metadata TEXT,
|
|
463
|
-
owner_id TEXT,
|
|
464
|
-
access_level TEXT NOT NULL,
|
|
465
|
-
created_at INTEGER NOT NULL,
|
|
466
|
-
updated_at INTEGER NOT NULL,
|
|
467
|
-
expires_at INTEGER,
|
|
468
|
-
version INTEGER NOT NULL,
|
|
469
|
-
references TEXT,
|
|
470
|
-
access_count INTEGER DEFAULT 0,
|
|
471
|
-
last_accessed_at INTEGER
|
|
472
|
-
)
|
|
453
|
+
await db.run(`
|
|
454
|
+
CREATE TABLE IF NOT EXISTS memory_entries (
|
|
455
|
+
id TEXT PRIMARY KEY,
|
|
456
|
+
key TEXT NOT NULL,
|
|
457
|
+
content TEXT NOT NULL,
|
|
458
|
+
embedding BLOB,
|
|
459
|
+
type TEXT NOT NULL,
|
|
460
|
+
namespace TEXT NOT NULL,
|
|
461
|
+
tags TEXT,
|
|
462
|
+
metadata TEXT,
|
|
463
|
+
owner_id TEXT,
|
|
464
|
+
access_level TEXT NOT NULL,
|
|
465
|
+
created_at INTEGER NOT NULL,
|
|
466
|
+
updated_at INTEGER NOT NULL,
|
|
467
|
+
expires_at INTEGER,
|
|
468
|
+
version INTEGER NOT NULL,
|
|
469
|
+
references TEXT,
|
|
470
|
+
access_count INTEGER DEFAULT 0,
|
|
471
|
+
last_accessed_at INTEGER
|
|
472
|
+
)
|
|
473
473
|
`);
|
|
474
474
|
// Create indexes
|
|
475
475
|
await db.run('CREATE INDEX IF NOT EXISTS idx_namespace ON memory_entries(namespace)');
|
|
@@ -507,12 +507,12 @@ export class AgentDBBackend extends EventEmitter {
|
|
|
507
507
|
// Entry is already stored in-memory
|
|
508
508
|
return;
|
|
509
509
|
}
|
|
510
|
-
await db.run(`
|
|
511
|
-
INSERT OR REPLACE INTO memory_entries
|
|
512
|
-
(id, key, content, embedding, type, namespace, tags, metadata, owner_id,
|
|
513
|
-
access_level, created_at, updated_at, expires_at, version, references,
|
|
514
|
-
access_count, last_accessed_at)
|
|
515
|
-
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
510
|
+
await db.run(`
|
|
511
|
+
INSERT OR REPLACE INTO memory_entries
|
|
512
|
+
(id, key, content, embedding, type, namespace, tags, metadata, owner_id,
|
|
513
|
+
access_level, created_at, updated_at, expires_at, version, references,
|
|
514
|
+
access_count, last_accessed_at)
|
|
515
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
516
516
|
`, [
|
|
517
517
|
entry.id,
|
|
518
518
|
entry.key,
|
|
@@ -99,14 +99,14 @@ describe('findGitRoot', () => {
|
|
|
99
99
|
});
|
|
100
100
|
describe('parseMarkdownEntries', () => {
|
|
101
101
|
it('should parse markdown with ## headings into entries', () => {
|
|
102
|
-
const content = `# Main Title
|
|
103
|
-
|
|
104
|
-
## Section One
|
|
105
|
-
Content of section one.
|
|
106
|
-
More content here.
|
|
107
|
-
|
|
108
|
-
## Section Two
|
|
109
|
-
Content of section two.
|
|
102
|
+
const content = `# Main Title
|
|
103
|
+
|
|
104
|
+
## Section One
|
|
105
|
+
Content of section one.
|
|
106
|
+
More content here.
|
|
107
|
+
|
|
108
|
+
## Section Two
|
|
109
|
+
Content of section two.
|
|
110
110
|
`;
|
|
111
111
|
const entries = parseMarkdownEntries(content);
|
|
112
112
|
expect(entries).toHaveLength(2);
|
|
@@ -120,10 +120,10 @@ Content of section two.
|
|
|
120
120
|
expect(entries).toHaveLength(0);
|
|
121
121
|
});
|
|
122
122
|
it('should handle multiple lines under a heading', () => {
|
|
123
|
-
const content = `## Heading
|
|
124
|
-
Line 1
|
|
125
|
-
Line 2
|
|
126
|
-
Line 3
|
|
123
|
+
const content = `## Heading
|
|
124
|
+
Line 1
|
|
125
|
+
Line 2
|
|
126
|
+
Line 3
|
|
127
127
|
`;
|
|
128
128
|
const entries = parseMarkdownEntries(content);
|
|
129
129
|
expect(entries).toHaveLength(1);
|
|
@@ -141,12 +141,12 @@ Line 3
|
|
|
141
141
|
});
|
|
142
142
|
describe('extractSummaries', () => {
|
|
143
143
|
it('should extract bullet points from content', () => {
|
|
144
|
-
const content = `# Topic
|
|
145
|
-
|
|
146
|
-
- First summary
|
|
147
|
-
- Second summary
|
|
148
|
-
- See \`details.md\` for more
|
|
149
|
-
Some other text
|
|
144
|
+
const content = `# Topic
|
|
145
|
+
|
|
146
|
+
- First summary
|
|
147
|
+
- Second summary
|
|
148
|
+
- See \`details.md\` for more
|
|
149
|
+
Some other text
|
|
150
150
|
`;
|
|
151
151
|
const summaries = extractSummaries(content);
|
|
152
152
|
expect(summaries).toHaveLength(2);
|
|
@@ -412,11 +412,11 @@ describe('AutoMemoryBridge', () => {
|
|
|
412
412
|
});
|
|
413
413
|
describe('importFromAutoMemory', () => {
|
|
414
414
|
it('should import entries from existing markdown files', async () => {
|
|
415
|
-
const topicContent = `# Debugging Insights
|
|
416
|
-
|
|
417
|
-
## Known Issues
|
|
418
|
-
- Always init HNSW before search
|
|
419
|
-
- SQLite WASM needs sql.js
|
|
415
|
+
const topicContent = `# Debugging Insights
|
|
416
|
+
|
|
417
|
+
## Known Issues
|
|
418
|
+
- Always init HNSW before search
|
|
419
|
+
- SQLite WASM needs sql.js
|
|
420
420
|
`;
|
|
421
421
|
fsSync.writeFileSync(path.join(testDir, 'debugging.md'), topicContent, 'utf-8');
|
|
422
422
|
const result = await bridge.importFromAutoMemory();
|
|
@@ -426,10 +426,10 @@ describe('AutoMemoryBridge', () => {
|
|
|
426
426
|
expect(backend.bulkInsert).toHaveBeenCalled();
|
|
427
427
|
});
|
|
428
428
|
it('should skip entries already in AgentDB', async () => {
|
|
429
|
-
const topicContent = `# Test
|
|
430
|
-
|
|
431
|
-
## Existing
|
|
432
|
-
Already in DB
|
|
429
|
+
const topicContent = `# Test
|
|
430
|
+
|
|
431
|
+
## Existing
|
|
432
|
+
Already in DB
|
|
433
433
|
`;
|
|
434
434
|
fsSync.writeFileSync(path.join(testDir, 'test.md'), topicContent, 'utf-8');
|
|
435
435
|
// Mock backend to return existing entry with matching content hash
|
|
@@ -113,26 +113,26 @@ export class SqlJsBackend extends EventEmitter {
|
|
|
113
113
|
if (!this.db)
|
|
114
114
|
return;
|
|
115
115
|
// Main entries table
|
|
116
|
-
this.db.run(`
|
|
117
|
-
CREATE TABLE IF NOT EXISTS memory_entries (
|
|
118
|
-
id TEXT PRIMARY KEY,
|
|
119
|
-
key TEXT NOT NULL,
|
|
120
|
-
content TEXT NOT NULL,
|
|
121
|
-
embedding BLOB,
|
|
122
|
-
type TEXT NOT NULL,
|
|
123
|
-
namespace TEXT NOT NULL,
|
|
124
|
-
tags TEXT NOT NULL,
|
|
125
|
-
metadata TEXT NOT NULL,
|
|
126
|
-
owner_id TEXT,
|
|
127
|
-
access_level TEXT NOT NULL,
|
|
128
|
-
created_at INTEGER NOT NULL,
|
|
129
|
-
updated_at INTEGER NOT NULL,
|
|
130
|
-
expires_at INTEGER,
|
|
131
|
-
version INTEGER NOT NULL DEFAULT 1,
|
|
132
|
-
"references" TEXT NOT NULL,
|
|
133
|
-
access_count INTEGER NOT NULL DEFAULT 0,
|
|
134
|
-
last_accessed_at INTEGER NOT NULL
|
|
135
|
-
)
|
|
116
|
+
this.db.run(`
|
|
117
|
+
CREATE TABLE IF NOT EXISTS memory_entries (
|
|
118
|
+
id TEXT PRIMARY KEY,
|
|
119
|
+
key TEXT NOT NULL,
|
|
120
|
+
content TEXT NOT NULL,
|
|
121
|
+
embedding BLOB,
|
|
122
|
+
type TEXT NOT NULL,
|
|
123
|
+
namespace TEXT NOT NULL,
|
|
124
|
+
tags TEXT NOT NULL,
|
|
125
|
+
metadata TEXT NOT NULL,
|
|
126
|
+
owner_id TEXT,
|
|
127
|
+
access_level TEXT NOT NULL,
|
|
128
|
+
created_at INTEGER NOT NULL,
|
|
129
|
+
updated_at INTEGER NOT NULL,
|
|
130
|
+
expires_at INTEGER,
|
|
131
|
+
version INTEGER NOT NULL DEFAULT 1,
|
|
132
|
+
"references" TEXT NOT NULL,
|
|
133
|
+
access_count INTEGER NOT NULL DEFAULT 0,
|
|
134
|
+
last_accessed_at INTEGER NOT NULL
|
|
135
|
+
)
|
|
136
136
|
`);
|
|
137
137
|
// Indexes for performance
|
|
138
138
|
this.db.run('CREATE INDEX IF NOT EXISTS idx_namespace ON memory_entries(namespace)');
|
|
@@ -151,12 +151,12 @@ export class SqlJsBackend extends EventEmitter {
|
|
|
151
151
|
async store(entry) {
|
|
152
152
|
this.ensureInitialized();
|
|
153
153
|
const startTime = performance.now();
|
|
154
|
-
const stmt = `
|
|
155
|
-
INSERT OR REPLACE INTO memory_entries (
|
|
156
|
-
id, key, content, embedding, type, namespace, tags, metadata,
|
|
157
|
-
owner_id, access_level, created_at, updated_at, expires_at,
|
|
158
|
-
version, "references", access_count, last_accessed_at
|
|
159
|
-
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
154
|
+
const stmt = `
|
|
155
|
+
INSERT OR REPLACE INTO memory_entries (
|
|
156
|
+
id, key, content, embedding, type, namespace, tags, metadata,
|
|
157
|
+
owner_id, access_level, created_at, updated_at, expires_at,
|
|
158
|
+
version, "references", access_count, last_accessed_at
|
|
159
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
160
160
|
`;
|
|
161
161
|
const embeddingBuffer = entry.embedding
|
|
162
162
|
? Buffer.from(entry.embedding.buffer)
|
|
@@ -1,44 +1,44 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@claude-flow/memory",
|
|
3
|
-
"version": "3.0.0-alpha.11",
|
|
4
|
-
"type": "module",
|
|
5
|
-
"description": "Memory module - AgentDB unification, HNSW indexing, vector search, hybrid SQLite+AgentDB backend (ADR-009)",
|
|
6
|
-
"main": "dist/index.js",
|
|
7
|
-
"types": "dist/index.d.ts",
|
|
8
|
-
"exports": {
|
|
9
|
-
".": "./dist/index.js",
|
|
10
|
-
"./*": "./dist/*.js"
|
|
11
|
-
},
|
|
12
|
-
"scripts": {
|
|
13
|
-
"test": "vitest run",
|
|
14
|
-
"bench": "vitest bench",
|
|
15
|
-
"build": "tsc",
|
|
16
|
-
"prebuild": "rm -rf dist",
|
|
17
|
-
"prepublishOnly": "npm run build && node -e \"const m = await import('./dist/index.js'); const required = ['ControllerRegistry','HnswLite','PersistentSonaCoordinator','RvfBackend','RvfLearningStore','RvfMigrator']; const missing = required.filter(k => !m[k]); if (missing.length) { console.error('Missing exports:', missing); process.exit(1); } console.log('All required exports present');\""
|
|
18
|
-
},
|
|
19
|
-
"dependencies": {
|
|
20
|
-
"agentdb": "^3.0.0-alpha.10",
|
|
21
|
-
"sql.js": "^1.10.3"
|
|
22
|
-
},
|
|
23
|
-
"devDependencies": {
|
|
24
|
-
"@types/sql.js": "^1.4.9",
|
|
25
|
-
"vitest": "^4.0.16"
|
|
26
|
-
},
|
|
27
|
-
"files": [
|
|
28
|
-
"dist",
|
|
29
|
-
"README.md"
|
|
30
|
-
],
|
|
31
|
-
"publishConfig": {
|
|
32
|
-
"access": "public",
|
|
33
|
-
"tag": "v3alpha"
|
|
34
|
-
},
|
|
35
|
-
"os": [
|
|
36
|
-
"darwin",
|
|
37
|
-
"linux",
|
|
38
|
-
"win32"
|
|
39
|
-
],
|
|
40
|
-
"cpu": [
|
|
41
|
-
"x64",
|
|
42
|
-
"arm64"
|
|
43
|
-
]
|
|
44
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@claude-flow/memory",
|
|
3
|
+
"version": "3.0.0-alpha.11",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"description": "Memory module - AgentDB unification, HNSW indexing, vector search, hybrid SQLite+AgentDB backend (ADR-009)",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"types": "dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": "./dist/index.js",
|
|
10
|
+
"./*": "./dist/*.js"
|
|
11
|
+
},
|
|
12
|
+
"scripts": {
|
|
13
|
+
"test": "vitest run",
|
|
14
|
+
"bench": "vitest bench",
|
|
15
|
+
"build": "tsc",
|
|
16
|
+
"prebuild": "rm -rf dist",
|
|
17
|
+
"prepublishOnly": "npm run build && node -e \"const m = await import('./dist/index.js'); const required = ['ControllerRegistry','HnswLite','PersistentSonaCoordinator','RvfBackend','RvfLearningStore','RvfMigrator']; const missing = required.filter(k => !m[k]); if (missing.length) { console.error('Missing exports:', missing); process.exit(1); } console.log('All required exports present');\""
|
|
18
|
+
},
|
|
19
|
+
"dependencies": {
|
|
20
|
+
"agentdb": "^3.0.0-alpha.10",
|
|
21
|
+
"sql.js": "^1.10.3"
|
|
22
|
+
},
|
|
23
|
+
"devDependencies": {
|
|
24
|
+
"@types/sql.js": "^1.4.9",
|
|
25
|
+
"vitest": "^4.0.16"
|
|
26
|
+
},
|
|
27
|
+
"files": [
|
|
28
|
+
"dist",
|
|
29
|
+
"README.md"
|
|
30
|
+
],
|
|
31
|
+
"publishConfig": {
|
|
32
|
+
"access": "public",
|
|
33
|
+
"tag": "v3alpha"
|
|
34
|
+
},
|
|
35
|
+
"os": [
|
|
36
|
+
"darwin",
|
|
37
|
+
"linux",
|
|
38
|
+
"win32"
|
|
39
|
+
],
|
|
40
|
+
"cpu": [
|
|
41
|
+
"x64",
|
|
42
|
+
"arm64"
|
|
43
|
+
]
|
|
44
|
+
}
|