@duckmind/deepquark-darwin-arm64 0.9.83 → 0.9.90

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/.deepquark/skills/bundled/knowledge-graph/SKILL.md +385 -0
  2. package/.deepquark/skills/bundled/knowledge-graph/STANDARDS.md +461 -0
  3. package/.deepquark/skills/bundled/knowledge-graph/lib/cli.ts +588 -0
  4. package/.deepquark/skills/bundled/knowledge-graph/lib/config.ts +630 -0
  5. package/.deepquark/skills/bundled/knowledge-graph/lib/connection-profile.ts +629 -0
  6. package/.deepquark/skills/bundled/knowledge-graph/lib/container.ts +756 -0
  7. package/.deepquark/skills/bundled/knowledge-graph/lib/mcp-client.ts +1310 -0
  8. package/.deepquark/skills/bundled/knowledge-graph/lib/output-formatter.ts +997 -0
  9. package/.deepquark/skills/bundled/knowledge-graph/lib/token-metrics.ts +335 -0
  10. package/.deepquark/skills/bundled/knowledge-graph/lib/transformation-log.ts +137 -0
  11. package/.deepquark/skills/bundled/knowledge-graph/lib/wrapper-config.ts +113 -0
  12. package/.deepquark/skills/bundled/knowledge-graph/server/.env.example +129 -0
  13. package/.deepquark/skills/bundled/knowledge-graph/server/compare-embeddings.ts +175 -0
  14. package/.deepquark/skills/bundled/knowledge-graph/server/config-falkordb.yaml +108 -0
  15. package/.deepquark/skills/bundled/knowledge-graph/server/config-neo4j.yaml +111 -0
  16. package/.deepquark/skills/bundled/knowledge-graph/server/diagnose.ts +483 -0
  17. package/.deepquark/skills/bundled/knowledge-graph/server/docker-compose-falkordb-dev.yml +146 -0
  18. package/.deepquark/skills/bundled/knowledge-graph/server/docker-compose-falkordb.yml +151 -0
  19. package/.deepquark/skills/bundled/knowledge-graph/server/docker-compose-neo4j-dev-local.yml +161 -0
  20. package/.deepquark/skills/bundled/knowledge-graph/server/docker-compose-neo4j-dev.yml +161 -0
  21. package/.deepquark/skills/bundled/knowledge-graph/server/docker-compose-neo4j.yml +169 -0
  22. package/.deepquark/skills/bundled/knowledge-graph/server/docker-compose-production.yml +128 -0
  23. package/.deepquark/skills/bundled/knowledge-graph/server/docker-compose-test.yml +10 -0
  24. package/.deepquark/skills/bundled/knowledge-graph/server/docker-compose.yml +84 -0
  25. package/.deepquark/skills/bundled/knowledge-graph/server/entrypoint.sh +40 -0
  26. package/.deepquark/skills/bundled/knowledge-graph/server/install.ts +2054 -0
  27. package/.deepquark/skills/bundled/knowledge-graph/server/podman-compose-falkordb.yml +78 -0
  28. package/.deepquark/skills/bundled/knowledge-graph/server/podman-compose-neo4j.yml +88 -0
  29. package/.deepquark/skills/bundled/knowledge-graph/server/podman-compose.yml +83 -0
  30. package/.deepquark/skills/bundled/knowledge-graph/server/test-all-llms-mcp.ts +387 -0
  31. package/.deepquark/skills/bundled/knowledge-graph/server/test-embedding-models.ts +201 -0
  32. package/.deepquark/skills/bundled/knowledge-graph/server/test-embedding-providers.ts +641 -0
  33. package/.deepquark/skills/bundled/knowledge-graph/server/test-graphiti-model.ts +217 -0
  34. package/.deepquark/skills/bundled/knowledge-graph/server/test-grok-correct.ts +141 -0
  35. package/.deepquark/skills/bundled/knowledge-graph/server/test-grok-llms-mcp.ts +386 -0
  36. package/.deepquark/skills/bundled/knowledge-graph/server/test-grok-models.ts +173 -0
  37. package/.deepquark/skills/bundled/knowledge-graph/server/test-llama-extraction.ts +188 -0
  38. package/.deepquark/skills/bundled/knowledge-graph/server/test-mcp-final.ts +240 -0
  39. package/.deepquark/skills/bundled/knowledge-graph/server/test-mcp-live.ts +187 -0
  40. package/.deepquark/skills/bundled/knowledge-graph/server/test-mcp-session.ts +127 -0
  41. package/.deepquark/skills/bundled/knowledge-graph/server/test-model-combinations.ts +316 -0
  42. package/.deepquark/skills/bundled/knowledge-graph/server/test-ollama-models.ts +228 -0
  43. package/.deepquark/skills/bundled/knowledge-graph/server/test-openrouter-models.ts +460 -0
  44. package/.deepquark/skills/bundled/knowledge-graph/server/test-real-life-mcp.ts +311 -0
  45. package/.deepquark/skills/bundled/knowledge-graph/server/test-search-debug.ts +199 -0
  46. package/.deepquark/skills/bundled/knowledge-graph/tools/Install.md +104 -0
  47. package/.deepquark/skills/bundled/knowledge-graph/tools/README.md +120 -0
  48. package/.deepquark/skills/bundled/knowledge-graph/tools/knowledge-cli.ts +996 -0
  49. package/.deepquark/skills/bundled/knowledge-graph/tools/server-cli.ts +531 -0
  50. package/.deepquark/skills/bundled/knowledge-graph/workflows/BulkImport.md +514 -0
  51. package/.deepquark/skills/bundled/knowledge-graph/workflows/CaptureEpisode.md +242 -0
  52. package/.deepquark/skills/bundled/knowledge-graph/workflows/ClearGraph.md +392 -0
  53. package/.deepquark/skills/bundled/knowledge-graph/workflows/GetRecent.md +352 -0
  54. package/.deepquark/skills/bundled/knowledge-graph/workflows/GetStatus.md +373 -0
  55. package/.deepquark/skills/bundled/knowledge-graph/workflows/HealthReport.md +212 -0
  56. package/.deepquark/skills/bundled/knowledge-graph/workflows/InvestigateEntity.md +142 -0
  57. package/.deepquark/skills/bundled/knowledge-graph/workflows/OntologyManagement.md +201 -0
  58. package/.deepquark/skills/bundled/knowledge-graph/workflows/RunMaintenance.md +302 -0
  59. package/.deepquark/skills/bundled/knowledge-graph/workflows/SearchByDate.md +255 -0
  60. package/.deepquark/skills/bundled/knowledge-graph/workflows/SearchFacts.md +382 -0
  61. package/.deepquark/skills/bundled/knowledge-graph/workflows/SearchKnowledge.md +374 -0
  62. package/.deepquark/skills/bundled/knowledge-graph/workflows/StixImport.md +212 -0
  63. package/bin/deepquark +0 -0
  64. package/package.json +1 -1
  65. package/.deepquark/skills/bundled/ge-payroll/SKILL.md +0 -153
  66. package/.deepquark/skills/bundled/ge-payroll/evals/evals.json +0 -23
  67. package/.deepquark/skills/bundled/ge-payroll/references/pain-points-improvements.md +0 -106
  68. package/.deepquark/skills/bundled/ge-payroll/references/process-detail.md +0 -217
  69. package/.deepquark/skills/bundled/ge-payroll/references/raci-stakeholders.md +0 -85
  70. package/.deepquark/skills/bundled/ge-payroll/references/timeline-mandays.md +0 -64
@@ -0,0 +1,201 @@
1
+ #!/usr/bin/env bun
2
+ /**
3
+ * Test Ollama embedding models for quality and performance
4
+ * Evaluates: response time, dimensions, and semantic similarity
5
+ */
6
+
7
+ const OLLAMA_HOST = 'http://10.0.0.150:11434';
8
+
9
+ const EMBEDDING_MODELS = [
10
+ 'nomic-embed-text:latest',
11
+ 'nomic-embed-text-v2-moe:latest',
12
+ 'mxbai-embed-large:latest',
13
+ 'qwen3-embedding:0.6b',
14
+ 'embeddinggemma:latest',
15
+ ];
16
+
17
+ // Test sentences for semantic similarity
18
+ const TEST_PAIRS = [
19
+ {
20
+ similar: ['The cat sat on the mat', 'A feline rested on the rug'],
21
+ label: 'Cat/Feline synonyms',
22
+ },
23
+ {
24
+ similar: ['Alice is a software engineer', 'Alice works as a developer'],
25
+ label: 'Job title synonyms',
26
+ },
27
+ {
28
+ dissimilar: ['The weather is sunny today', 'I love programming in TypeScript'],
29
+ label: 'Weather vs Programming',
30
+ },
31
+ ];
32
+
33
+ interface EmbeddingResult {
34
+ model: string;
35
+ dimensions: number;
36
+ avgResponseMs: number;
37
+ similarityScores: { label: string; score: number; type: 'similar' | 'dissimilar' }[];
38
+ error?: string;
39
+ }
40
+
41
+ function cosineSimilarity(a: number[], b: number[]): number {
42
+ let dotProduct = 0;
43
+ let normA = 0;
44
+ let normB = 0;
45
+ for (let i = 0; i < a.length; i++) {
46
+ dotProduct += a[i] * b[i];
47
+ normA += a[i] * a[i];
48
+ normB += b[i] * b[i];
49
+ }
50
+ return dotProduct / (Math.sqrt(normA) * Math.sqrt(normB));
51
+ }
52
+
53
+ async function getEmbedding(
54
+ model: string,
55
+ text: string
56
+ ): Promise<{ embedding: number[]; durationMs: number }> {
57
+ const start = Date.now();
58
+ const res = await fetch(`${OLLAMA_HOST}/api/embeddings`, {
59
+ method: 'POST',
60
+ headers: { 'Content-Type': 'application/json' },
61
+ body: JSON.stringify({ model, prompt: text }),
62
+ });
63
+
64
+ if (!res.ok) {
65
+ throw new Error(`HTTP ${res.status}: ${await res.text()}`);
66
+ }
67
+
68
+ const data = (await res.json()) as { embedding: number[] };
69
+ return { embedding: data.embedding, durationMs: Date.now() - start };
70
+ }
71
+
72
+ async function testModel(model: string): Promise<EmbeddingResult> {
73
+ console.log(`\nTesting: ${model}`);
74
+ console.log('---');
75
+
76
+ try {
77
+ // Test basic embedding
78
+ const { embedding, durationMs } = await getEmbedding(model, 'Hello world test');
79
+ console.log(` Dimensions: ${embedding.length}`);
80
+ console.log(` First call: ${durationMs}ms`);
81
+
82
+ // Test multiple calls for average time
83
+ const times: number[] = [durationMs];
84
+ for (let i = 0; i < 3; i++) {
85
+ const { durationMs: t } = await getEmbedding(model, `Test sentence number ${i}`);
86
+ times.push(t);
87
+ }
88
+ const avgTime = Math.round(times.reduce((a, b) => a + b, 0) / times.length);
89
+ console.log(` Avg response: ${avgTime}ms`);
90
+
91
+ // Test semantic similarity
92
+ const similarityScores: EmbeddingResult['similarityScores'] = [];
93
+
94
+ for (const pair of TEST_PAIRS) {
95
+ if (pair.similar) {
96
+ const [emb1, emb2] = await Promise.all([
97
+ getEmbedding(model, pair.similar[0]),
98
+ getEmbedding(model, pair.similar[1]),
99
+ ]);
100
+ const score = cosineSimilarity(emb1.embedding, emb2.embedding);
101
+ similarityScores.push({ label: pair.label, score, type: 'similar' });
102
+ console.log(` Similar "${pair.label}": ${(score * 100).toFixed(1)}%`);
103
+ }
104
+ if (pair.dissimilar) {
105
+ const [emb1, emb2] = await Promise.all([
106
+ getEmbedding(model, pair.dissimilar[0]),
107
+ getEmbedding(model, pair.dissimilar[1]),
108
+ ]);
109
+ const score = cosineSimilarity(emb1.embedding, emb2.embedding);
110
+ similarityScores.push({ label: pair.label, score, type: 'dissimilar' });
111
+ console.log(` Dissimilar "${pair.label}": ${(score * 100).toFixed(1)}%`);
112
+ }
113
+ }
114
+
115
+ return {
116
+ model,
117
+ dimensions: embedding.length,
118
+ avgResponseMs: avgTime,
119
+ similarityScores,
120
+ };
121
+ } catch (err: any) {
122
+ console.log(` ❌ Error: ${err.message}`);
123
+ return {
124
+ model,
125
+ dimensions: 0,
126
+ avgResponseMs: 0,
127
+ similarityScores: [],
128
+ error: err.message,
129
+ };
130
+ }
131
+ }
132
+
133
+ function calculateQualityScore(result: EmbeddingResult): number {
134
+ if (result.error) return 0;
135
+
136
+ // Quality = high similarity for similar pairs + low similarity for dissimilar pairs
137
+ let score = 0;
138
+ for (const s of result.similarityScores) {
139
+ if (s.type === 'similar') {
140
+ score += s.score; // Higher is better
141
+ } else {
142
+ score += 1 - s.score; // Lower similarity is better for dissimilar
143
+ }
144
+ }
145
+ return score / result.similarityScores.length;
146
+ }
147
+
148
+ async function main() {
149
+ console.log('==============================================');
150
+ console.log('Ollama Embedding Model Performance Test');
151
+ console.log(`Testing ${EMBEDDING_MODELS.length} models`);
152
+ console.log('==============================================');
153
+
154
+ const results: EmbeddingResult[] = [];
155
+
156
+ for (const model of EMBEDDING_MODELS) {
157
+ const result = await testModel(model);
158
+ results.push(result);
159
+ }
160
+
161
+ // Sort by quality score
162
+ const validResults = results.filter((r) => !r.error);
163
+ validResults.sort((a, b) => calculateQualityScore(b) - calculateQualityScore(a));
164
+
165
+ console.log('\n==============================================');
166
+ console.log('RESULTS SUMMARY (ranked by quality)');
167
+ console.log('==============================================\n');
168
+
169
+ console.log('| Rank | Model | Dims | Avg Time | Quality Score |');
170
+ console.log('|------|-------|------|----------|---------------|');
171
+
172
+ validResults.forEach((r, i) => {
173
+ const quality = (calculateQualityScore(r) * 100).toFixed(1);
174
+ console.log(`| ${i + 1} | ${r.model} | ${r.dimensions} | ${r.avgResponseMs}ms | ${quality}% |`);
175
+ });
176
+
177
+ const failed = results.filter((r) => r.error);
178
+ if (failed.length > 0) {
179
+ console.log('\n❌ Failed models:');
180
+ failed.forEach((r) => console.log(` - ${r.model}: ${r.error}`));
181
+ }
182
+
183
+ // Recommend best model
184
+ if (validResults.length > 0) {
185
+ const best = validResults[0];
186
+ console.log(`\n🏆 RECOMMENDED: ${best.model}`);
187
+ console.log(` - Dimensions: ${best.dimensions}`);
188
+ console.log(` - Avg response: ${best.avgResponseMs}ms`);
189
+ console.log(` - Quality score: ${(calculateQualityScore(best) * 100).toFixed(1)}%`);
190
+ }
191
+
192
+ // Output JSON
193
+ const outputPath = new URL('./embedding-test-results.json', import.meta.url).pathname;
194
+ await Bun.write(
195
+ outputPath,
196
+ JSON.stringify({ results, timestamp: new Date().toISOString() }, null, 2)
197
+ );
198
+ console.log(`\nResults saved to: ${outputPath}`);
199
+ }
200
+
201
+ main();