wyrm-mcp 3.2.0 → 3.3.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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embedding-provider.d.ts","sourceRoot":"","sources":["../../src/providers/embedding-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,WAAW,iBAAiB;IAChC,0CAA0C;IAC1C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,4EAA4E;IAC5E,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,kDAAkD;IAClD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B,sDAAsD;IACtD,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAE3C,6EAA6E;IAC7E,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;CAC7B;AAED;;;;GAIG;AACH,qBAAa,iBAAkB,YAAW,iBAAiB;IACzD,QAAQ,CAAC,IAAI,gBAAgB;IAC7B,QAAQ,CAAC,KAAK,cAAc;IAC5B,QAAQ,CAAC,UAAU,OAAO;IAEpB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAuB1C,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;CAGlC;AAED;;GAEG;AACH,qBAAa,cAAe,YAAW,iBAAiB;IACtD,QAAQ,CAAC,IAAI,YAAY;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM;IAMpC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAmB1C,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;CAGlC;AAED;;GAEG;AACH,qBAAa,cAAe,YAAW,iBAAiB;IACtD,QAAQ,CAAC,IAAI,YAAY;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,OAAO,CAAC,OAAO,CAAS;gBAEZ,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM;IAOtC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAgB1C,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;CAQlC;AAED;;GAEG;AACH,qBAAa,YAAa,YAAW,iBAAiB;IACpD,QAAQ,CAAC,IAAI,UAAU;IACvB,QAAQ,CAAC,KAAK,UAAU;IACxB,QAAQ,CAAC,UAAU,KAAK;IAElB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAI3C,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;CAGlC;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;IACjD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,iBAAiB,CAsBlF"}
@@ -0,0 +1,149 @@
1
+ /**
2
+ * Embedding Provider Interface — Vendor-agnostic embedding generation
3
+ *
4
+ * @copyright 2026 Ghost Protocol (Pvt) Ltd. All Rights Reserved.
5
+ * @license Proprietary - See LICENSE file for details.
6
+ *
7
+ * All embedding providers implement this interface so the rest of Wyrm
8
+ * never needs to know which provider is active.
9
+ */
10
+ /**
11
+ * Hash-based local embedding — zero dependencies, deterministic, fast.
12
+ * NOT semantically meaningful — useful for testing and as a fallback.
13
+ * Will be replaced by ONNX transformers in Phase 1.
14
+ */
15
+ export class LocalHashProvider {
16
+ name = 'local-hash';
17
+ model = 'hash-384';
18
+ dimensions = 384;
19
+ async embed(text) {
20
+ const embedding = new Float32Array(this.dimensions);
21
+ const words = text.toLowerCase().split(/\s+/);
22
+ for (let i = 0; i < words.length; i++) {
23
+ const word = words[i];
24
+ for (let j = 0; j < word.length; j++) {
25
+ const idx = (word.charCodeAt(j) * (i + 1) * (j + 1)) % this.dimensions;
26
+ embedding[idx] += 1 / words.length;
27
+ }
28
+ }
29
+ // L2 normalize
30
+ const magnitude = Math.sqrt(embedding.reduce((sum, val) => sum + val * val, 0));
31
+ if (magnitude > 0) {
32
+ for (let i = 0; i < embedding.length; i++) {
33
+ embedding[i] /= magnitude;
34
+ }
35
+ }
36
+ return embedding;
37
+ }
38
+ async isReady() {
39
+ return true; // Always ready — no external deps
40
+ }
41
+ }
42
+ /**
43
+ * OpenAI embeddings via REST API.
44
+ */
45
+ export class OpenAIProvider {
46
+ name = 'openai';
47
+ model;
48
+ dimensions;
49
+ apiKey;
50
+ constructor(apiKey, model) {
51
+ this.apiKey = apiKey;
52
+ this.model = model || 'text-embedding-3-small';
53
+ this.dimensions = this.model.includes('large') ? 3072 : 1536;
54
+ }
55
+ async embed(text) {
56
+ const response = await fetch('https://api.openai.com/v1/embeddings', {
57
+ method: 'POST',
58
+ headers: {
59
+ 'Authorization': `Bearer ${this.apiKey}`,
60
+ 'Content-Type': 'application/json',
61
+ },
62
+ body: JSON.stringify({ input: text, model: this.model }),
63
+ });
64
+ if (!response.ok) {
65
+ const body = await response.text();
66
+ throw new Error(`OpenAI embedding API error ${response.status}: ${body}`);
67
+ }
68
+ const data = await response.json();
69
+ return new Float32Array(data.data[0].embedding);
70
+ }
71
+ async isReady() {
72
+ return !!this.apiKey;
73
+ }
74
+ }
75
+ /**
76
+ * Ollama embeddings via local API.
77
+ */
78
+ export class OllamaProvider {
79
+ name = 'ollama';
80
+ model;
81
+ dimensions;
82
+ baseUrl;
83
+ constructor(baseUrl, model) {
84
+ this.baseUrl = baseUrl || 'http://localhost:11434';
85
+ this.model = model || 'nomic-embed-text';
86
+ // Dimensions vary by model — these are common defaults
87
+ this.dimensions = this.model.includes('mxbai') ? 1024 : 768;
88
+ }
89
+ async embed(text) {
90
+ const response = await fetch(`${this.baseUrl}/api/embeddings`, {
91
+ method: 'POST',
92
+ headers: { 'Content-Type': 'application/json' },
93
+ body: JSON.stringify({ model: this.model, prompt: text }),
94
+ });
95
+ if (!response.ok) {
96
+ const body = await response.text();
97
+ throw new Error(`Ollama embedding API error ${response.status}: ${body}`);
98
+ }
99
+ const data = await response.json();
100
+ return new Float32Array(data.embedding);
101
+ }
102
+ async isReady() {
103
+ try {
104
+ const res = await fetch(`${this.baseUrl}/api/tags`, { signal: AbortSignal.timeout(2000) });
105
+ return res.ok;
106
+ }
107
+ catch {
108
+ return false;
109
+ }
110
+ }
111
+ }
112
+ /**
113
+ * No-op provider — returns nothing, used when embeddings are disabled.
114
+ */
115
+ export class NoneProvider {
116
+ name = 'none';
117
+ model = 'none';
118
+ dimensions = 0;
119
+ async embed(_text) {
120
+ return new Float32Array(0);
121
+ }
122
+ async isReady() {
123
+ return true;
124
+ }
125
+ }
126
+ /**
127
+ * Factory: create the right provider from config / environment.
128
+ */
129
+ export function createProvider(config) {
130
+ const provider = config?.provider
131
+ || process.env.WYRM_VECTOR_PROVIDER
132
+ || 'local';
133
+ switch (provider) {
134
+ case 'openai': {
135
+ const key = config?.apiKey || process.env.OPENAI_API_KEY;
136
+ if (!key)
137
+ throw new Error('OpenAI provider requires OPENAI_API_KEY');
138
+ return new OpenAIProvider(key, config?.model);
139
+ }
140
+ case 'ollama':
141
+ return new OllamaProvider(config?.ollamaUrl || process.env.OLLAMA_URL, config?.model);
142
+ case 'none':
143
+ return new NoneProvider();
144
+ case 'local':
145
+ default:
146
+ return new LocalHashProvider();
147
+ }
148
+ }
149
+ //# sourceMappingURL=embedding-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embedding-provider.js","sourceRoot":"","sources":["../../src/providers/embedding-provider.ts"],"names":[],"mappings":"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"}
package/dist/security.js CHANGED
@@ -81,7 +81,7 @@ export function sanitizeFtsQuery(query) {
81
81
  // Remove FTS5 special syntax characters
82
82
  // Allowed: alphanumeric, spaces, common punctuation
83
83
  const sanitized = query
84
- .replace(/[*"():^{}[\]\\]/g, ' ') // Remove FTS operators
84
+ .replace(/[*"():^{}[\]\\.@#$%&!?<>~`|;,]/g, ' ') // Remove FTS operators and special chars
85
85
  .replace(/\s+/g, ' ') // Normalize whitespace
86
86
  .trim()
87
87
  .slice(0, 500); // Limit length
@@ -1 +1 @@
1
- {"version":3,"file":"security.js","sourceRoot":"","sources":["../src/security.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC,0DAA0D;AAE1D;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,QAAgB,EAAE,UAAkB;IAC/D,MAAM,cAAc,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IACpD,MAAM,gBAAgB,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;IAElE,iCAAiC;IACjC,MAAM,GAAG,GAAG,QAAQ,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC;IAEvD,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,aAAa,CAAC,yBAAyB,EAAE,gBAAgB,CAAC,CAAC;IACvE,CAAC;IAED,6BAA6B;IAC7B,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;QACjD,MAAM,IAAI,aAAa,CAAC,yBAAyB,EAAE,gBAAgB,CAAC,CAAC;IACvE,CAAC;IAED,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,IAAI,CAAC;QACH,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;IAC1D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,WAAmB;IACrD,MAAM,cAAc,GAAG,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;IAEvD,mCAAmC;IACnC,MAAM,YAAY,GAAG;QACnB,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,cAAc,CAAC,CAAC;QAC7C,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,UAAU,CAAC,CAAC;QACzC,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC;QACpC,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,MAAM,CAAC,CAAC;QACrC,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;QACtC,SAAS,CAAC,gBAAgB,CAAC,EAAE,cAAc;KAC5C,CAAC;IAEF,uBAAuB;IACvB,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC3D,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,0CAA0C;IAC1C,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACzC,cAAc,KAAK,IAAI,IAAI,cAAc,CAAC,UAAU,CAAC,IAAI,GAAG,GAAG,CAAC,CACjE,CAAC;IAEF,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,aAAa,CACrB,yCAAyC,EACzC,sBAAsB,CACvB,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,aAAa,CAAC,+BAA+B,EAAE,mBAAmB,CAAC,CAAC;IAChF,CAAC;IAED,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,6DAA6D;AAE7D;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxC,MAAM,IAAI,aAAa,CAAC,sBAAsB,EAAE,eAAe,CAAC,CAAC;IACnE,CAAC;IAED,wCAAwC;IACxC,oDAAoD;IACpD,MAAM,SAAS,GAAG,KAAK;SACpB,OAAO,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAE,uBAAuB;SACzD,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAe,uBAAuB;SAC1D,IAAI,EAAE;SACN,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAqB,eAAe;IAErD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,aAAa,CAAC,0CAA0C,EAAE,eAAe,CAAC,CAAC;IACvF,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,KAAc,EAAE,SAAS,GAAG,KAAK;IAC9D,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1C,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,IAAI,aAAa,CAAC,uBAAuB,EAAE,cAAc,CAAC,CAAC;IACnE,CAAC;IAED,uBAAuB;IACvB,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;AACnC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,KAAc,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,MAAM,CAAC,gBAAgB;IAChF,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAE1B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,aAAa,CAAC,wBAAwB,EAAE,cAAc,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,EAAE,CAAC;QAC3B,MAAM,IAAI,aAAa,CAAC,yBAAyB,GAAG,KAAK,GAAG,GAAG,EAAE,cAAc,CAAC,CAAC;IACnF,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAC1B,KAAc,EACd,OAAqB,EACrB,YAAgB;IAEhB,IAAI,KAAK,KAAK,SAAS,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QACtD,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAU,CAAC,EAAE,CAAC;QAC/D,MAAM,IAAI,aAAa,CACrB,2BAA2B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAC/C,cAAc,CACf,CAAC;IACJ,CAAC;IAED,OAAO,KAAU,CAAC;AACpB,CAAC;AAED,0DAA0D;AAE1D;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,UAA8B,EAAE,YAAoB;IACjF,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACrD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAClC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QAChC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,2BAA2B;IAC3B,OAAO,mBAAmB,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC,CAAC;AAC7D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,KAAa;IACrC,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC1D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,CAAS,EAAE,CAAS;IACtD,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,MAAM,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED,OAAO,MAAM,KAAK,CAAC,CAAC;AACtB,CAAC;AASD,MAAM,cAAc,GAAG,IAAI,GAAG,EAA0B,CAAC;AAEzD;;GAEG;AACH,MAAM,UAAU,cAAc,CAC5B,GAAW,EACX,WAAW,GAAG,GAAG,EACjB,QAAQ,GAAG,KAAK;IAEhB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,IAAI,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAEpC,wCAAwC;IACxC,IAAI,cAAc,CAAC,IAAI,GAAG,KAAK,EAAE,CAAC;QAChC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,cAAc,EAAE,CAAC;YACpC,IAAI,CAAC,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC;gBACpB,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC;QAClC,KAAK,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,GAAG,QAAQ,EAAE,CAAC;QAC9C,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,KAAK,EAAE,CAAC;IAEd,OAAO;QACL,OAAO,EAAE,KAAK,CAAC,KAAK,IAAI,WAAW;QACnC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC;QACjD,OAAO,EAAE,KAAK,CAAC,OAAO;KACvB,CAAC;AACJ,CAAC;AAED,2DAA2D;AAE3D,MAAM,OAAO,aAAc,SAAQ,KAAK;IACtC,IAAI,CAAS;IAEb,YAAY,OAAe,EAAE,IAAY;QACvC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAED,+DAA+D;AAE/D,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,MAAM;AACnD,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAC;AACnC,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAC;AAEtC;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAgB;IAChD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,aAAa,CAAC,oCAAoC,EAAE,cAAc,CAAC,CAAC;IAChF,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,GAAG,cAAc,EAAE,CAAC;QAClC,MAAM,IAAI,aAAa,CACrB,cAAc,KAAK,CAAC,MAAM,uBAAuB,cAAc,EAAE,EACjE,iBAAiB,CAClB,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"security.js","sourceRoot":"","sources":["../src/security.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC,0DAA0D;AAE1D;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,QAAgB,EAAE,UAAkB;IAC/D,MAAM,cAAc,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IACpD,MAAM,gBAAgB,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;IAElE,iCAAiC;IACjC,MAAM,GAAG,GAAG,QAAQ,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC;IAEvD,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,aAAa,CAAC,yBAAyB,EAAE,gBAAgB,CAAC,CAAC;IACvE,CAAC;IAED,6BAA6B;IAC7B,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;QACjD,MAAM,IAAI,aAAa,CAAC,yBAAyB,EAAE,gBAAgB,CAAC,CAAC;IACvE,CAAC;IAED,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,IAAI,CAAC;QACH,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;IAC1D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,WAAmB;IACrD,MAAM,cAAc,GAAG,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;IAEvD,mCAAmC;IACnC,MAAM,YAAY,GAAG;QACnB,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,cAAc,CAAC,CAAC;QAC7C,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,UAAU,CAAC,CAAC;QACzC,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC;QACpC,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,MAAM,CAAC,CAAC;QACrC,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;QACtC,SAAS,CAAC,gBAAgB,CAAC,EAAE,cAAc;KAC5C,CAAC;IAEF,uBAAuB;IACvB,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC3D,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,0CAA0C;IAC1C,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACzC,cAAc,KAAK,IAAI,IAAI,cAAc,CAAC,UAAU,CAAC,IAAI,GAAG,GAAG,CAAC,CACjE,CAAC;IAEF,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,aAAa,CACrB,yCAAyC,EACzC,sBAAsB,CACvB,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,aAAa,CAAC,+BAA+B,EAAE,mBAAmB,CAAC,CAAC;IAChF,CAAC;IAED,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,6DAA6D;AAE7D;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxC,MAAM,IAAI,aAAa,CAAC,sBAAsB,EAAE,eAAe,CAAC,CAAC;IACnE,CAAC;IAED,wCAAwC;IACxC,oDAAoD;IACpD,MAAM,SAAS,GAAG,KAAK;SACpB,OAAO,CAAC,iCAAiC,EAAE,GAAG,CAAC,CAAE,yCAAyC;SAC1F,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAe,uBAAuB;SAC1D,IAAI,EAAE;SACN,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAqB,eAAe;IAErD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,aAAa,CAAC,0CAA0C,EAAE,eAAe,CAAC,CAAC;IACvF,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,KAAc,EAAE,SAAS,GAAG,KAAK;IAC9D,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1C,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,IAAI,aAAa,CAAC,uBAAuB,EAAE,cAAc,CAAC,CAAC;IACnE,CAAC;IAED,uBAAuB;IACvB,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;AACnC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,KAAc,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,MAAM,CAAC,gBAAgB;IAChF,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAE1B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,aAAa,CAAC,wBAAwB,EAAE,cAAc,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,EAAE,CAAC;QAC3B,MAAM,IAAI,aAAa,CAAC,yBAAyB,GAAG,KAAK,GAAG,GAAG,EAAE,cAAc,CAAC,CAAC;IACnF,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAC1B,KAAc,EACd,OAAqB,EACrB,YAAgB;IAEhB,IAAI,KAAK,KAAK,SAAS,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QACtD,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAU,CAAC,EAAE,CAAC;QAC/D,MAAM,IAAI,aAAa,CACrB,2BAA2B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAC/C,cAAc,CACf,CAAC;IACJ,CAAC;IAED,OAAO,KAAU,CAAC;AACpB,CAAC;AAED,0DAA0D;AAE1D;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,UAA8B,EAAE,YAAoB;IACjF,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACrD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAClC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QAChC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,2BAA2B;IAC3B,OAAO,mBAAmB,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC,CAAC;AAC7D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,KAAa;IACrC,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC1D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,CAAS,EAAE,CAAS;IACtD,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,MAAM,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED,OAAO,MAAM,KAAK,CAAC,CAAC;AACtB,CAAC;AASD,MAAM,cAAc,GAAG,IAAI,GAAG,EAA0B,CAAC;AAEzD;;GAEG;AACH,MAAM,UAAU,cAAc,CAC5B,GAAW,EACX,WAAW,GAAG,GAAG,EACjB,QAAQ,GAAG,KAAK;IAEhB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,IAAI,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAEpC,wCAAwC;IACxC,IAAI,cAAc,CAAC,IAAI,GAAG,KAAK,EAAE,CAAC;QAChC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,cAAc,EAAE,CAAC;YACpC,IAAI,CAAC,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC;gBACpB,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC;QAClC,KAAK,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,GAAG,QAAQ,EAAE,CAAC;QAC9C,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,KAAK,EAAE,CAAC;IAEd,OAAO;QACL,OAAO,EAAE,KAAK,CAAC,KAAK,IAAI,WAAW;QACnC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC;QACjD,OAAO,EAAE,KAAK,CAAC,OAAO;KACvB,CAAC;AACJ,CAAC;AAED,2DAA2D;AAE3D,MAAM,OAAO,aAAc,SAAQ,KAAK;IACtC,IAAI,CAAS;IAEb,YAAY,OAAe,EAAE,IAAY;QACvC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAED,+DAA+D;AAE/D,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,MAAM;AACnD,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAC;AACnC,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAC;AAEtC;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAgB;IAChD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,aAAa,CAAC,oCAAoC,EAAE,cAAc,CAAC,CAAC;IAChF,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,GAAG,cAAc,EAAE,CAAC;QAClC,MAAM,IAAI,aAAa,CACrB,cAAc,KAAK,CAAC,MAAM,uBAAuB,cAAc,EAAE,EACjE,iBAAiB,CAClB,CAAC;IACJ,CAAC;AACH,CAAC"}
package/dist/vectors.d.ts CHANGED
@@ -1,23 +1,19 @@
1
1
  /**
2
- * Wyrm Vector Embeddings - Semantic Search Support
2
+ * Wyrm Vector Embeddings Semantic Search Support
3
3
  *
4
4
  * @copyright 2026 Ghost Protocol (Pvt) Ltd. All Rights Reserved.
5
5
  * @license Proprietary - See LICENSE file for details.
6
6
  *
7
7
  * Features:
8
- * - Local embeddings using transformers.js (no API required)
9
- * - Optional OpenAI/Ollama embeddings for better quality
10
- * - SQLite-based vector storage (no external DB needed)
11
- * - Cosine similarity search
12
- * - Automatic embedding on memory creation
8
+ * - Provider-agnostic embeddings (local, OpenAI, Ollama)
9
+ * - SQLite-backed vector storage (no external DB needed)
10
+ * - Cosine similarity search with content-hash deduplication
11
+ * - Graceful degradation when no provider is configured
13
12
  */
14
- export interface EmbeddingConfig {
15
- provider: 'local' | 'openai' | 'ollama' | 'none';
16
- model?: string;
17
- apiKey?: string;
18
- ollamaUrl?: string;
19
- dimension?: number;
20
- }
13
+ import type Database from 'better-sqlite3';
14
+ import { type EmbeddingProvider, type ProviderConfig } from './providers/embedding-provider.js';
15
+ /** Re-export for backward compatibility */
16
+ export type { ProviderConfig as EmbeddingConfig };
21
17
  export interface VectorEntry {
22
18
  id: number;
23
19
  content_hash: string;
@@ -25,6 +21,8 @@ export interface VectorEntry {
25
21
  content_id: number;
26
22
  project_id: number;
27
23
  embedding: Float32Array;
24
+ model: string;
25
+ dimensions: number;
28
26
  created_at: string;
29
27
  }
30
28
  export interface SearchResult {
@@ -35,69 +33,55 @@ export interface SearchResult {
35
33
  content_hash: string;
36
34
  }
37
35
  /**
38
- * Simple vector storage using JSON files
39
- * For production, consider using sqlite-vss or similar
36
+ * SQLite-backed vector store with pluggable embedding providers.
40
37
  */
41
38
  export declare class VectorStore {
42
- private vectors;
43
- private storePath;
44
- private config;
45
- private dimension;
46
- constructor(config: EmbeddingConfig);
47
- private loadVectors;
48
- private saveVectors;
39
+ private provider;
40
+ private db;
41
+ constructor(provider: EmbeddingProvider, db?: Database.Database);
42
+ /** Create the vectors table if it doesn't exist */
43
+ private ensureTable;
49
44
  /**
50
- * Hash content for deduplication
45
+ * Hash content for deduplication — same hash means same content, skip re-embedding.
51
46
  */
52
47
  private hashContent;
53
48
  /**
54
- * Add or update a vector entry
49
+ * Add or update a vector entry.
50
+ * Returns the content hash, or null if the provider is disabled.
55
51
  */
56
52
  addVector(content: string, contentType: 'session' | 'quest' | 'context' | 'note', contentId: number, projectId: number): Promise<string | null>;
57
53
  /**
58
- * Generate embedding for text
59
- */
60
- private generateEmbedding;
61
- /**
62
- * Local embedding using simple TF-IDF-like approach
63
- * For production, use @xenova/transformers
64
- */
65
- private generateLocalEmbedding;
66
- /**
67
- * OpenAI embedding API
68
- */
69
- private generateOpenAIEmbedding;
70
- /**
71
- * Ollama embedding (local LLM)
72
- */
73
- private generateOllamaEmbedding;
74
- /**
75
- * Cosine similarity between two vectors
54
+ * Cosine similarity between two vectors.
76
55
  */
77
56
  private cosineSimilarity;
78
57
  /**
79
- * Search for similar content
58
+ * Search for similar content by embedding the query and comparing.
80
59
  */
81
60
  search(query: string, limit?: number, projectId?: number, contentTypes?: string[]): Promise<SearchResult[]>;
82
61
  /**
83
- * Remove vector by content hash
62
+ * Remove vector by content hash.
84
63
  */
85
64
  removeVector(contentHash: string): boolean;
86
65
  /**
87
- * Clear all vectors for a project
66
+ * Clear all vectors for a project.
88
67
  */
89
68
  clearProjectVectors(projectId: number): number;
90
69
  /**
91
- * Get stats about the vector store
70
+ * Get stats about the vector store.
92
71
  */
93
72
  getStats(): {
94
73
  total: number;
95
74
  byType: Record<string, number>;
96
75
  byProject: Record<number, number>;
76
+ provider: string;
77
+ model: string;
97
78
  };
79
+ /** Get the active embedding provider */
80
+ getProvider(): EmbeddingProvider;
98
81
  }
99
82
  /**
100
- * Create a vector store instance with config
83
+ * Create a vector store instance with config.
84
+ * Accepts an optional SQLite database for persistent storage.
101
85
  */
102
- export declare function createVectorStore(config?: Partial<EmbeddingConfig>): VectorStore;
86
+ export declare function createVectorStore(config?: Partial<ProviderConfig>, db?: Database.Database): VectorStore;
103
87
  //# sourceMappingURL=vectors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"vectors.d.ts","sourceRoot":"","sources":["../src/vectors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAcH,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;IACjD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACvD,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,YAAY,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,OAAO,CAAuC;IACtD,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,SAAS,CAAS;gBAEd,MAAM,EAAE,eAAe;IAanC,OAAO,CAAC,WAAW;IAgBnB,OAAO,CAAC,WAAW;IAQnB;;OAEG;IACH,OAAO,CAAC,WAAW;IAUnB;;OAEG;IACG,SAAS,CACb,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,EACrD,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAiCzB;;OAEG;YACW,iBAAiB;IAa/B;;;OAGG;YACW,sBAAsB;IAyBpC;;OAEG;YACW,uBAAuB;IAgCrC;;OAEG;YACW,uBAAuB;IA4BrC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAiBxB;;OAEG;IACG,MAAM,CACV,KAAK,EAAE,MAAM,EACb,KAAK,GAAE,MAAW,EAClB,SAAS,CAAC,EAAE,MAAM,EAClB,YAAY,CAAC,EAAE,MAAM,EAAE,GACtB,OAAO,CAAC,YAAY,EAAE,CAAC;IAoC1B;;OAEG;IACH,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAQ1C;;OAEG;IACH,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAc9C;;OAEG;IACH,QAAQ,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE;CAejG;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,WAAW,CAUhF"}
1
+ {"version":3,"file":"vectors.d.ts","sourceRoot":"","sources":["../src/vectors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,cAAc,EAGpB,MAAM,mCAAmC,CAAC;AAE3C,2CAA2C;AAC3C,YAAY,EAAE,cAAc,IAAI,eAAe,EAAE,CAAC;AAElD,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACvD,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,YAAY,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAoB;IACpC,OAAO,CAAC,EAAE,CAA2B;gBAEzB,QAAQ,EAAE,iBAAiB,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,QAAQ;IAS/D,mDAAmD;IACnD,OAAO,CAAC,WAAW;IAqBnB;;OAEG;IACH,OAAO,CAAC,WAAW;IAUnB;;;OAGG;IACG,SAAS,CACb,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,EACrD,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IA6CzB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAiBxB;;OAEG;IACG,MAAM,CACV,KAAK,EAAE,MAAM,EACb,KAAK,GAAE,MAAW,EAClB,SAAS,CAAC,EAAE,MAAM,EAClB,YAAY,CAAC,EAAE,MAAM,EAAE,GACtB,OAAO,CAAC,YAAY,EAAE,CAAC;IAsD1B;;OAEG;IACH,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAM1C;;OAEG;IACH,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAM9C;;OAEG;IACH,QAAQ,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE;IAyBjI,wCAAwC;IACxC,WAAW,IAAI,iBAAiB;CACjC;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,QAAQ,GAAG,WAAW,CAGvG"}