@pellux/goodvibes-sdk 1.3.0 → 1.3.2

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.
@@ -3,7 +3,7 @@
3
3
  "product": {
4
4
  "id": "goodvibes",
5
5
  "surface": "operator",
6
- "version": "1.3.0"
6
+ "version": "1.3.2"
7
7
  },
8
8
  "auth": {
9
9
  "modes": [
@@ -57142,6 +57142,9 @@
57142
57142
  },
57143
57143
  "error": {
57144
57144
  "type": "string"
57145
+ },
57146
+ "platformLimitReason": {
57147
+ "type": "string"
57145
57148
  }
57146
57149
  },
57147
57150
  "required": [
@@ -57339,6 +57342,9 @@
57339
57342
  },
57340
57343
  "error": {
57341
57344
  "type": "string"
57345
+ },
57346
+ "platformLimitReason": {
57347
+ "type": "string"
57342
57348
  }
57343
57349
  },
57344
57350
  "required": [
@@ -59771,6 +59777,9 @@
59771
59777
  },
59772
59778
  "error": {
59773
59779
  "type": "string"
59780
+ },
59781
+ "platformLimitReason": {
59782
+ "type": "string"
59774
59783
  }
59775
59784
  },
59776
59785
  "required": [
@@ -59851,6 +59860,9 @@
59851
59860
  },
59852
59861
  "error": {
59853
59862
  "type": "string"
59863
+ },
59864
+ "platformLimitReason": {
59865
+ "type": "string"
59854
59866
  }
59855
59867
  },
59856
59868
  "required": [
@@ -1 +1 @@
1
- {"version":3,"file":"operator-contract-schemas-runtime.d.ts","sourceRoot":"","sources":["../../../src/platform/control-plane/operator-contract-schemas-runtime.ts"],"names":[],"mappings":"AAmCA;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,+BAA+B,EAAyB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AA6B7F,eAAO,MAAM,iCAAiC,yBAQA,CAAC;AAE/C;;;;;GAKG;AACH,eAAO,MAAM,oCAAoC,yBAOe,CAAC;AAEjE,eAAO,MAAM,6BAA6B,yBAasB,CAAC;AAEjE,eAAO,MAAM,4BAA4B,yBAuBqI,CAAC;AAE/K,eAAO,MAAM,6BAA6B,yBAYsF,CAAC;AAEjI,eAAO,MAAM,6BAA6B,yBAO4B,CAAC;AAEvE,eAAO,MAAM,2CAA2C,yBAG7B,CAAC;AAE5B,eAAO,MAAM,mCAAmC,yBAOtB,CAAC;AAE3B,eAAO,MAAM,mCAAmC,yBAGnB,CAAC;AAE9B,eAAO,MAAM,oCAAoC,yBAkB/C,CAAC;AAEH,eAAO,MAAM,kCAAkC,yBAqB0D,CAAC;AAE1G,eAAO,MAAM,uBAAuB,yBAWoE,CAAC;AAEzG,eAAO,MAAM,8BAA8B,yBAOjB,CAAC;AAE3B,eAAO,MAAM,mCAAmC,yBAGrB,CAAC;AAE5B,eAAO,MAAM,iCAAiC,yBAGrB,CAAC;AAE1B,eAAO,MAAM,mCAAmC,yBAEjC,CAAC;AAEhB;;;;;;GAMG;AACH,eAAO,MAAM,qCAAqC,yBAIvB,CAAC;AAE5B,eAAO,MAAM,+CAA+C,yBAIlB,CAAC;AAE3C,eAAO,MAAM,2CAA2C,yBAMF,CAAC;AAEvD,eAAO,MAAM,0CAA0C;;CAK7C,CAAC;AAUX,eAAO,MAAM,mBAAmB,yBAqByD,CAAC;AAE1F,eAAO,MAAM,oBAAoB,yBAsBsB,CAAC;AAExD,eAAO,MAAM,wBAAwB,yBAgBO,CAAC;AAE7C,eAAO,MAAM,yBAAyB,yBASc,CAAC;AAErD,eAAO,MAAM,kBAAkB,yBAEnB,CAAC;AAEb,eAAO,MAAM,yBAAyB,yBAIM,CAAC;AAE7C,eAAO,MAAM,yBAAyB,yBAUiE,CAAC;AAWxG,eAAO,MAAM,6BAA6B,yBAgB8C,CAAC;AAEzF,eAAO,MAAM,wBAAwB,yBASuG,CAAC;AAE7I,eAAO,MAAM,4BAA4B,yBAIU,CAAC;AAOpD,eAAO,MAAM,6BAA6B,yBAKS,CAAC;AAEpD,eAAO,MAAM,6BAA6B,yBAE1B,CAAC;AA0EjB,eAAO,MAAM,gCAAgC,yBAMkB,CAAC;AAEhE,eAAO,MAAM,8BAA8B,yBAcqD,CAAC;AAqEjG,eAAO,MAAM,gCAAgC,yBAKmB,CAAC;AAEjE,eAAO,MAAM,sBAAsB,yBAcyF,CAAC;AAE7H,eAAO,MAAM,4BAA4B,yBASyG,CAAC;AAqBnJ,eAAO,MAAM,0BAA0B,yBAUyH,CAAC;AAEjK,eAAO,MAAM,2BAA2B,yBAIC,CAAC;AAG1C,eAAO,MAAM,mBAAmB,yBAA6C,CAAC;AAC9E,eAAO,MAAM,mBAAmB,yBAE9B,CAAC;AACH,eAAO,MAAM,0BAA0B,yBAA6D,CAAC;AACrG,eAAO,MAAM,6BAA6B,yBAA2D,CAAC;AAEtG,eAAO,MAAM,6BAA6B,yBAIvB,CAAC;AAEpB,eAAO,MAAM,oBAAoB,yBAeiH,CAAC;AAEnJ,eAAO,MAAM,kCAAkC,yBAWgJ,CAAC;AAEhM,eAAO,MAAM,kCAAkC,yBAG1B,CAAC;AAItB,eAAO,MAAM,kBAAkB,yBAKgB,CAAC;AAIhD,eAAO,MAAM,6BAA6B,yBAKL,CAAC;AAEtC,eAAO,MAAM,oBAAoB,yBAQ2D,CAAC;AAE7F,eAAO,MAAM,2BAA2B,yBAIkB,CAAC;AAE3D,eAAO,MAAM,gCAAgC,yBAE9B,CAAC;AAEhB,eAAO,MAAM,oCAAoC,yBAElC,CAAC;AAEhB,eAAO,MAAM,iCAAiC,yBAEjC,CAAC"}
1
+ {"version":3,"file":"operator-contract-schemas-runtime.d.ts","sourceRoot":"","sources":["../../../src/platform/control-plane/operator-contract-schemas-runtime.ts"],"names":[],"mappings":"AAmCA;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,+BAA+B,EAAyB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AA6B7F,eAAO,MAAM,iCAAiC,yBAQA,CAAC;AAE/C;;;;;GAKG;AACH,eAAO,MAAM,oCAAoC,yBAOe,CAAC;AAEjE,eAAO,MAAM,6BAA6B,yBAasB,CAAC;AAEjE,eAAO,MAAM,4BAA4B,yBAuBqI,CAAC;AAE/K,eAAO,MAAM,6BAA6B,yBAYsF,CAAC;AAEjI,eAAO,MAAM,6BAA6B,yBAO4B,CAAC;AAEvE,eAAO,MAAM,2CAA2C,yBAG7B,CAAC;AAE5B,eAAO,MAAM,mCAAmC,yBAOtB,CAAC;AAE3B,eAAO,MAAM,mCAAmC,yBAGnB,CAAC;AAE9B,eAAO,MAAM,oCAAoC,yBAkB/C,CAAC;AAEH,eAAO,MAAM,kCAAkC,yBAqB0D,CAAC;AAE1G,eAAO,MAAM,uBAAuB,yBAWoE,CAAC;AAEzG,eAAO,MAAM,8BAA8B,yBAOjB,CAAC;AAE3B,eAAO,MAAM,mCAAmC,yBAGrB,CAAC;AAE5B,eAAO,MAAM,iCAAiC,yBAGrB,CAAC;AAE1B,eAAO,MAAM,mCAAmC,yBAEjC,CAAC;AAEhB;;;;;;GAMG;AACH,eAAO,MAAM,qCAAqC,yBAIvB,CAAC;AAE5B,eAAO,MAAM,+CAA+C,yBAIlB,CAAC;AAE3C,eAAO,MAAM,2CAA2C,yBAMF,CAAC;AAEvD,eAAO,MAAM,0CAA0C;;CAK7C,CAAC;AAUX,eAAO,MAAM,mBAAmB,yBAqByD,CAAC;AAE1F,eAAO,MAAM,oBAAoB,yBAsBsB,CAAC;AAExD,eAAO,MAAM,wBAAwB,yBAgBO,CAAC;AAE7C,eAAO,MAAM,yBAAyB,yBASc,CAAC;AAErD,eAAO,MAAM,kBAAkB,yBAEnB,CAAC;AAEb,eAAO,MAAM,yBAAyB,yBAIM,CAAC;AAE7C,eAAO,MAAM,yBAAyB,yBAUiE,CAAC;AAWxG,eAAO,MAAM,6BAA6B,yBAgB8C,CAAC;AAEzF,eAAO,MAAM,wBAAwB,yBASuG,CAAC;AAE7I,eAAO,MAAM,4BAA4B,yBAIU,CAAC;AAOpD,eAAO,MAAM,6BAA6B,yBAKS,CAAC;AAEpD,eAAO,MAAM,6BAA6B,yBAE1B,CAAC;AA0EjB,eAAO,MAAM,gCAAgC,yBAMkB,CAAC;AAEhE,eAAO,MAAM,8BAA8B,yBAcqD,CAAC;AAqEjG,eAAO,MAAM,gCAAgC,yBAKmB,CAAC;AAEjE,eAAO,MAAM,sBAAsB,yBAcyF,CAAC;AAE7H,eAAO,MAAM,4BAA4B,yBASyG,CAAC;AAqBnJ,eAAO,MAAM,0BAA0B,yBAWyH,CAAC;AAEjK,eAAO,MAAM,2BAA2B,yBAIC,CAAC;AAG1C,eAAO,MAAM,mBAAmB,yBAA6C,CAAC;AAC9E,eAAO,MAAM,mBAAmB,yBAE9B,CAAC;AACH,eAAO,MAAM,0BAA0B,yBAA6D,CAAC;AACrG,eAAO,MAAM,6BAA6B,yBAA2D,CAAC;AAEtG,eAAO,MAAM,6BAA6B,yBAIvB,CAAC;AAEpB,eAAO,MAAM,oBAAoB,yBAeiH,CAAC;AAEnJ,eAAO,MAAM,kCAAkC,yBAWgJ,CAAC;AAEhM,eAAO,MAAM,kCAAkC,yBAG1B,CAAC;AAItB,eAAO,MAAM,kBAAkB,yBAKgB,CAAC;AAIhD,eAAO,MAAM,6BAA6B,yBAKL,CAAC;AAEtC,eAAO,MAAM,oBAAoB,yBAQ2D,CAAC;AAE7F,eAAO,MAAM,2BAA2B,yBAIkB,CAAC;AAE3D,eAAO,MAAM,gCAAgC,yBAE9B,CAAC;AAEhB,eAAO,MAAM,oCAAoC,yBAElC,CAAC;AAEhB,eAAO,MAAM,iCAAiC,yBAEjC,CAAC"}
@@ -614,6 +614,7 @@ export const MEMORY_VECTOR_STATS_SCHEMA = objectSchema({
614
614
  embeddingProviderId: STRING_SCHEMA,
615
615
  embeddingProviderLabel: STRING_SCHEMA,
616
616
  error: STRING_SCHEMA,
617
+ platformLimitReason: STRING_SCHEMA,
617
618
  }, ['backend', 'enabled', 'available', 'path', 'dimensions', 'indexedRecords', 'embeddingProviderId', 'embeddingProviderLabel'], { additionalProperties: true });
618
619
  export const MEMORY_DOCTOR_REPORT_SCHEMA = objectSchema({
619
620
  vector: MEMORY_VECTOR_STATS_SCHEMA,
@@ -83,6 +83,7 @@ export declare class CodeIndexStore {
83
83
  private db;
84
84
  private available;
85
85
  private error;
86
+ private platformLimitReason;
86
87
  private building;
87
88
  private buildStartedAtMs;
88
89
  private buildPromise;
@@ -1 +1 @@
1
- {"version":3,"file":"code-index-store.d.ts","sourceRoot":"","sources":["../../../src/platform/state/code-index-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"code-index-store.d.ts","sourceRoot":"","sources":["../../../src/platform/state/code-index-store.ts"],"names":[],"mappings":"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"}
@@ -55,7 +55,7 @@
55
55
  import { dirname, join, relative, sep } from 'node:path';
56
56
  import { mkdirSync, statSync } from 'node:fs';
57
57
  import { createRequire } from 'node:module';
58
- import { loadSqliteVecExtension } from './sqlite-vec-loader.js';
58
+ import { loadSqliteVecExtension, SqliteVecPlatformUnsupportedError } from './sqlite-vec-loader.js';
59
59
  import { HASHED_MEMORY_EMBEDDING_PROVIDER, MemoryEmbeddingProviderRegistry, normalizeMemoryEmbeddingVector, } from './memory-embeddings.js';
60
60
  import { MEMORY_VECTOR_DIMS } from './memory-vector-store.js';
61
61
  import { CodeIntelligence } from '../intelligence/facade.js';
@@ -99,6 +99,7 @@ export class CodeIndexStore {
99
99
  db = null;
100
100
  available = false;
101
101
  error;
102
+ platformLimitReason;
102
103
  building = false;
103
104
  buildStartedAtMs = null;
104
105
  buildPromise = null;
@@ -138,8 +139,16 @@ export class CodeIndexStore {
138
139
  catch (err) {
139
140
  this.close();
140
141
  this.available = false;
141
- this.error = summarizeError(err);
142
- logger.warn('Code index unavailable', { backend: 'sqlite-vec', error: this.error });
142
+ // Platform capability limit vs genuine fault (see sqlite-vec-loader.ts).
143
+ const limit = err instanceof SqliteVecPlatformUnsupportedError;
144
+ if (limit)
145
+ this.platformLimitReason = err.message;
146
+ else
147
+ this.error = summarizeError(err);
148
+ logger.warn(limit ? 'Code index unavailable on this platform' : 'Code index unavailable', {
149
+ backend: 'sqlite-vec',
150
+ ...(limit ? { reason: err.message } : { error: this.error }),
151
+ });
143
152
  }
144
153
  }
145
154
  close() {
@@ -27,6 +27,14 @@ export interface MemoryVectorStats {
27
27
  embeddingProviderId: string;
28
28
  embeddingProviderLabel: string;
29
29
  error?: string | undefined;
30
+ /**
31
+ * Set when the vector index is unavailable because the RUNTIME PLATFORM
32
+ * cannot load SQLite extensions (a permanent capability limit — e.g. a
33
+ * macOS-compiled binary on Apple's system SQLite). Deliberately NOT the
34
+ * `error` field: a capability limit is not a fault, and fault monitors
35
+ * must not fire on it. Semantic search degrades to literal matching.
36
+ */
37
+ platformLimitReason?: string | undefined;
30
38
  }
31
39
  export declare function resolveMemoryVectorDbPath(dbPath?: string): string;
32
40
  export declare function memoryVectorSourceHash(record: MemoryRecord): string;
@@ -39,6 +47,7 @@ export declare class SqliteVecMemoryIndex {
39
47
  private enabled;
40
48
  private available;
41
49
  private error;
50
+ private platformLimitReason;
42
51
  private static readonly rebuildBatchSize;
43
52
  constructor(dbPath: string, dimensions: number | undefined, embeddingRegistry: MemoryEmbeddingProviderRegistry);
44
53
  init(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"memory-vector-store.d.ts","sourceRoot":"","sources":["../../../src/platform/state/memory-vector-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memory-vector-store.d.ts","sourceRoot":"","sources":["../../../src/platform/state/memory-vector-store.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import { dirname } from 'node:path';
3
3
  import { mkdirSync } from 'node:fs';
4
4
  import { createRequire } from 'node:module';
5
5
  import { MemoryEmbeddingProviderRegistry, embedMemoryText, normalizeMemoryEmbeddingVector, } from './memory-embeddings.js';
6
- import { loadSqliteVecExtension } from './sqlite-vec-loader.js';
6
+ import { loadSqliteVecExtension, SqliteVecPlatformUnsupportedError } from './sqlite-vec-loader.js';
7
7
  import { logger } from '../utils/logger.js';
8
8
  import { summarizeError } from '../utils/error-display.js';
9
9
  // Lifted to sqlite-vec-loader.ts (see CHANGELOG 0.38.0) so code-index-store.ts can load
@@ -69,6 +69,7 @@ export class SqliteVecMemoryIndex {
69
69
  enabled = false;
70
70
  available = false;
71
71
  error;
72
+ platformLimitReason;
72
73
  static rebuildBatchSize = 25;
73
74
  constructor(dbPath, dimensions = MEMORY_VECTOR_DIMS, embeddingRegistry) {
74
75
  this.dbPath = dbPath;
@@ -92,8 +93,20 @@ export class SqliteVecMemoryIndex {
92
93
  this.close();
93
94
  this.available = false;
94
95
  this.enabled = false;
95
- this.error = summarizeError(err);
96
- logger.warn('Memory vector index unavailable', { backend: 'sqlite-vec', error: this.error });
96
+ if (err instanceof SqliteVecPlatformUnsupportedError) {
97
+ // A platform capability limit, not a fault: report it as a reason,
98
+ // never through the error field (fault monitors and release smokes
99
+ // treat `error` as a defect signal, and this is not one).
100
+ this.platformLimitReason = err.message;
101
+ logger.warn('Memory vector index unavailable on this platform — memory search uses literal matching', {
102
+ backend: 'sqlite-vec',
103
+ reason: err.message,
104
+ });
105
+ }
106
+ else {
107
+ this.error = summarizeError(err);
108
+ logger.warn('Memory vector index unavailable', { backend: 'sqlite-vec', error: this.error });
109
+ }
97
110
  }
98
111
  }
99
112
  stats() {
@@ -107,7 +120,8 @@ export class SqliteVecMemoryIndex {
107
120
  indexedRecords: this.countIndexedRecords(),
108
121
  embeddingProviderId: provider?.id ?? this.embeddingRegistry.getDefaultProviderId(),
109
122
  embeddingProviderLabel: provider?.label ?? `Unregistered (${this.embeddingRegistry.getDefaultProviderId()})`,
110
- ...(this.error ?? !provider
123
+ ...(this.platformLimitReason ? { platformLimitReason: this.platformLimitReason } : {}),
124
+ ...(this.error ?? (!provider && !this.platformLimitReason)
111
125
  ? { error: this.error ?? `Active memory embedding provider '${this.embeddingRegistry.getDefaultProviderId()}' is not registered.` }
112
126
  : {}),
113
127
  };
@@ -17,9 +17,25 @@ import type { Database } from 'bun:sqlite';
17
17
  * indexes load the exact same native extension the exact same way.
18
18
  */
19
19
  export declare function resolveSqliteVecPath(): string;
20
+ /**
21
+ * Thrown when the RUNTIME PLATFORM cannot load SQLite extensions at all —
22
+ * most commonly a macOS-compiled binary, where bun:sqlite links Apple's
23
+ * system SQLite, which ships with extension loading disabled. This is a
24
+ * permanent capability limit of the platform, not a defect in the build:
25
+ * callers should degrade to their documented no-vector mode with the
26
+ * `reason` surfaced, rather than reporting an error. A missing extension
27
+ * FILE (a genuine packaging defect) deliberately does NOT map to this class.
28
+ */
29
+ export declare class SqliteVecPlatformUnsupportedError extends Error {
30
+ readonly platformLimit = true;
31
+ constructor(cause: string);
32
+ }
20
33
  /**
21
34
  * Loads the sqlite-vec extension into a Bun SQLite database.
22
35
  * Handles both bundled-binary and development execution contexts.
36
+ *
37
+ * Throws SqliteVecPlatformUnsupportedError when the platform itself refuses
38
+ * extension loading (see the class doc); rethrows everything else untouched.
23
39
  */
24
40
  export declare function loadSqliteVecExtension(db: Database): void;
25
41
  //# sourceMappingURL=sqlite-vec-loader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite-vec-loader.d.ts","sourceRoot":"","sources":["../../../src/platform/state/sqlite-vec-loader.ts"],"names":[],"mappings":"AAAA,qFAAqF;AAGrF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAG3C;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAU7C;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CAOzD"}
1
+ {"version":3,"file":"sqlite-vec-loader.d.ts","sourceRoot":"","sources":["../../../src/platform/state/sqlite-vec-loader.ts"],"names":[],"mappings":"AAAA,qFAAqF;AAGrF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAG3C;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAU7C;AAED;;;;;;;;GAQG;AACH,qBAAa,iCAAkC,SAAQ,KAAK;IAC1D,QAAQ,CAAC,aAAa,QAAQ;gBAElB,KAAK,EAAE,MAAM;CAQ1B;AAWD;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CAczD"}
@@ -28,16 +28,53 @@ export function resolveSqliteVecPath() {
28
28
  // In dev mode, delegate to sqlite-vec's own resolver.
29
29
  return '';
30
30
  }
31
+ /**
32
+ * Thrown when the RUNTIME PLATFORM cannot load SQLite extensions at all —
33
+ * most commonly a macOS-compiled binary, where bun:sqlite links Apple's
34
+ * system SQLite, which ships with extension loading disabled. This is a
35
+ * permanent capability limit of the platform, not a defect in the build:
36
+ * callers should degrade to their documented no-vector mode with the
37
+ * `reason` surfaced, rather than reporting an error. A missing extension
38
+ * FILE (a genuine packaging defect) deliberately does NOT map to this class.
39
+ */
40
+ export class SqliteVecPlatformUnsupportedError extends Error {
41
+ platformLimit = true;
42
+ constructor(cause) {
43
+ super("this platform's SQLite does not allow loading extensions"
44
+ + ' (macOS system SQLite); the semantic vector index is unavailable'
45
+ + ` and memory search uses literal matching. Underlying refusal: ${cause}`);
46
+ this.name = 'SqliteVecPlatformUnsupportedError';
47
+ }
48
+ }
49
+ /** True when a loadExtension throw is the platform capability refusal, not a packaging defect. */
50
+ function isExtensionLoadingRefusal(err) {
51
+ const message = err instanceof Error ? err.message : String(err);
52
+ // Apple's SQLite refuses with an authorization message; a build with
53
+ // SQLITE_OMIT_LOAD_EXTENSION names the capability. A missing file surfaces
54
+ // as ENOENT/dlopen-no-such-file and must stay a loud defect.
55
+ return /not authorized|omit.*load.*extension|extension loading is disabled/i.test(message);
56
+ }
31
57
  /**
32
58
  * Loads the sqlite-vec extension into a Bun SQLite database.
33
59
  * Handles both bundled-binary and development execution contexts.
60
+ *
61
+ * Throws SqliteVecPlatformUnsupportedError when the platform itself refuses
62
+ * extension loading (see the class doc); rethrows everything else untouched.
34
63
  */
35
64
  export function loadSqliteVecExtension(db) {
36
65
  const bundledPath = resolveSqliteVecPath();
37
- if (bundledPath) {
38
- db.loadExtension(bundledPath);
66
+ try {
67
+ if (bundledPath) {
68
+ db.loadExtension(bundledPath);
69
+ }
70
+ else {
71
+ loadSqliteVec(db);
72
+ }
39
73
  }
40
- else {
41
- loadSqliteVec(db);
74
+ catch (err) {
75
+ if (isExtensionLoadingRefusal(err)) {
76
+ throw new SqliteVecPlatformUnsupportedError(err instanceof Error ? err.message : String(err));
77
+ }
78
+ throw err;
42
79
  }
43
80
  }
@@ -20,9 +20,14 @@ export interface NotifyOptions {
20
20
  force?: boolean;
21
21
  }
22
22
  /**
23
- * True when this call must be a no-op: real desktop notifications (and the
24
- * terminal bell) must never fire from an automated test run and spam
25
- * whoever's desktop the tests happen to execute on.
23
+ * True when this call must not reach an external side effect: real desktop
24
+ * notifications (notify-send/osascript) and real webhook HTTP deliveries must
25
+ * never fire from an automated test run and spam whoever's desktop or endpoint
26
+ * the tests happen to execute on.
27
+ *
28
+ * Note this governs only the external shell-out/HTTP layer. The in-process
29
+ * terminal bell (a single \x07 byte written to this process's own stdout) has
30
+ * no external side effect and is NOT gated by this — see {@link notifyCompletion}.
26
31
  *
27
32
  * Suppressed when either:
28
33
  * - `NODE_ENV === 'test'` (set automatically by `bun test`), or
@@ -1 +1 @@
1
- {"version":3,"file":"notify.d.ts","sourceRoot":"","sources":["../../../src/platform/utils/notify.ts"],"names":[],"mappings":"AAAA,qFAAqF;AAKrF;;;;;;;;GAQG;AACH,iFAAiF;AACjF,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,MAAM,WAAW,aAAa;IAC5B;;;;;OAKG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAM3D;AAiCD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,IAAI,CAwBlH"}
1
+ {"version":3,"file":"notify.d.ts","sourceRoot":"","sources":["../../../src/platform/utils/notify.ts"],"names":[],"mappings":"AAAA,qFAAqF;AAKrF;;;;;;;;GAQG;AACH,iFAAiF;AACjF,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,MAAM,WAAW,aAAa;IAC5B;;;;;OAKG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAM3D;AAiCD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,IAAI,CAgClH"}
@@ -15,9 +15,14 @@ export function escapeAppleScript(s) {
15
15
  return s.replace(/\\/g, '\\\\').replace(/"/g, '\\"');
16
16
  }
17
17
  /**
18
- * True when this call must be a no-op: real desktop notifications (and the
19
- * terminal bell) must never fire from an automated test run and spam
20
- * whoever's desktop the tests happen to execute on.
18
+ * True when this call must not reach an external side effect: real desktop
19
+ * notifications (notify-send/osascript) and real webhook HTTP deliveries must
20
+ * never fire from an automated test run and spam whoever's desktop or endpoint
21
+ * the tests happen to execute on.
22
+ *
23
+ * Note this governs only the external shell-out/HTTP layer. The in-process
24
+ * terminal bell (a single \x07 byte written to this process's own stdout) has
25
+ * no external side effect and is NOT gated by this — see {@link notifyCompletion}.
21
26
  *
22
27
  * Suppressed when either:
23
28
  * - `NODE_ENV === 'test'` (set automatically by `bun test`), or
@@ -68,19 +73,28 @@ function spawnNotification(command) {
68
73
  }
69
74
  }
70
75
  export function notifyCompletion(title, message, durationMs, options) {
71
- if (isNotifySuppressed(options?.force)) {
72
- logger.debug('Completion notification suppressed under test', { title, durationMs });
73
- return;
74
- }
75
76
  // Terminal bell for responses > 5s.
76
77
  // Surface-specific: this writes directly to stdout and is only meaningful
77
78
  // in a terminal context. Host surfaces that manage their own output stream
78
79
  // should inject this behaviour via a callback rather than calling it here.
80
+ //
81
+ // The bell is an in-process byte write with no external side effect, so it
82
+ // is emitted even under test suppression — only the real desktop-notification
83
+ // spawn below is suppressed. (This is the notify-guard scope fix: silencing a
84
+ // test run must not silence the terminal bell, which several host surfaces
85
+ // assert as product behaviour.)
79
86
  if (durationMs > 5000) {
80
87
  process.stdout.write('\x07');
81
88
  }
82
- // Desktop notification for responses > 30s
89
+ // Desktop notification for responses > 30s. Real notify-send/osascript
90
+ // spawns must never fire from an automated test run — suppressed under
91
+ // NODE_ENV=test / GOODVIBES_SUPPRESS_NOTIFY, with `force` as the opt-back-in
92
+ // for tests that exercise this shell-out layer itself.
83
93
  if (durationMs > 30000) {
94
+ if (isNotifySuppressed(options?.force)) {
95
+ logger.debug('Completion desktop notification suppressed under test', { title, durationMs });
96
+ return;
97
+ }
84
98
  if (process.platform === 'linux') {
85
99
  spawnNotification(['notify-send', title, message]);
86
100
  }
@@ -1,6 +1,6 @@
1
1
  import { readFileSync } from 'node:fs';
2
2
  import { join } from 'node:path';
3
- let version = '1.3.0';
3
+ let version = '1.3.2';
4
4
  try {
5
5
  const pkg = JSON.parse(readFileSync(join(import.meta.dir, '..', '..', 'package.json'), 'utf-8'));
6
6
  version = pkg.version ?? version;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pellux/goodvibes-sdk",
3
- "version": "1.3.0",
3
+ "version": "1.3.2",
4
4
  "description": "TypeScript SDK for building GoodVibes operator, peer, web, mobile, and daemon-connected apps with typed contracts, auth, realtime events, and transport layers.",
5
5
  "keywords": [
6
6
  "goodvibes",
@@ -477,14 +477,14 @@
477
477
  "sideEffects": false,
478
478
  "type": "module",
479
479
  "dependencies": {
480
- "@pellux/goodvibes-contracts": "1.3.0",
481
- "@pellux/goodvibes-daemon-sdk": "1.3.0",
482
- "@pellux/goodvibes-errors": "1.3.0",
483
- "@pellux/goodvibes-operator-sdk": "1.3.0",
484
- "@pellux/goodvibes-peer-sdk": "1.3.0",
485
- "@pellux/goodvibes-transport-core": "1.3.0",
486
- "@pellux/goodvibes-transport-http": "1.3.0",
487
- "@pellux/goodvibes-transport-realtime": "1.3.0"
480
+ "@pellux/goodvibes-contracts": "1.3.2",
481
+ "@pellux/goodvibes-daemon-sdk": "1.3.2",
482
+ "@pellux/goodvibes-errors": "1.3.2",
483
+ "@pellux/goodvibes-operator-sdk": "1.3.2",
484
+ "@pellux/goodvibes-peer-sdk": "1.3.2",
485
+ "@pellux/goodvibes-transport-core": "1.3.2",
486
+ "@pellux/goodvibes-transport-http": "1.3.2",
487
+ "@pellux/goodvibes-transport-realtime": "1.3.2"
488
488
  },
489
489
  "optionalDependencies": {
490
490
  "@agentclientprotocol/sdk": "^0.21.0",