@pellux/goodvibes-sdk 0.33.11 → 0.33.12

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": "0.33.11"
6
+ "version": "0.33.12"
7
7
  },
8
8
  "auth": {
9
9
  "modes": [
@@ -1 +1 @@
1
- {"version":3,"file":"ingest-compile.d.ts","sourceRoot":"","sources":["../../../src/platform/knowledge/ingest-compile.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,KAAK,EACV,yBAAyB,EAEzB,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,YAAY,CAAC;AAMpB,wBAAsB,+BAA+B,CACnD,OAAO,EAAE,sBAAsB,EAC/B,KAAK,EAAE;IACL,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC;IACzC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC5C,GACA,OAAO,CAAC;IAAE,MAAM,EAAE,qBAAqB,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,yBAAyB,CAAA;CAAE,CAAC,CAoEvG;AAOD,wBAAsB,wBAAwB,CAAC,OAAO,EAAE,sBAAsB,EAAE,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqB5H;AAED,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,sBAAsB,EAC/B,MAAM,EAAE,qBAAqB,EAC7B,UAAU,CAAC,EAAE,yBAAyB,GAAG,IAAI,GAC5C,OAAO,CAAC,IAAI,CAAC,CAaf;AAkKD,wBAAsB,qCAAqC,CACzD,OAAO,EAAE,sBAAsB,EAC/B,MAAM,EAAE,qBAAqB,EAC7B,UAAU,CAAC,EAAE,yBAAyB,GAAG,IAAI,GAC5C,OAAO,CAAC,IAAI,CAAC,CAwGf"}
1
+ {"version":3,"file":"ingest-compile.d.ts","sourceRoot":"","sources":["../../../src/platform/knowledge/ingest-compile.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,KAAK,EACV,yBAAyB,EAEzB,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,YAAY,CAAC;AAOpB,wBAAsB,+BAA+B,CACnD,OAAO,EAAE,sBAAsB,EAC/B,KAAK,EAAE;IACL,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC;IACzC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC5C,GACA,OAAO,CAAC;IAAE,MAAM,EAAE,qBAAqB,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,yBAAyB,CAAA;CAAE,CAAC,CAoEvG;AAOD,wBAAsB,wBAAwB,CAAC,OAAO,EAAE,sBAAsB,EAAE,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqB5H;AAED,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,sBAAsB,EAC/B,MAAM,EAAE,qBAAqB,EAC7B,UAAU,CAAC,EAAE,yBAAyB,GAAG,IAAI,GAC5C,OAAO,CAAC,IAAI,CAAC,CAaf;AA2KD,wBAAsB,qCAAqC,CACzD,OAAO,EAAE,sBAAsB,EAC/B,MAAM,EAAE,qBAAqB,EAC7B,UAAU,CAAC,EAAE,yBAAyB,GAAG,IAAI,GAC5C,OAAO,CAAC,IAAI,CAAC,CA0Gf"}
@@ -4,6 +4,7 @@ import { logger } from '../utils/logger.js';
4
4
  import { extractKnowledgeArtifact } from './extractors.js';
5
5
  import { knowledgeExtractionNeedsRefresh } from './extraction-policy.js';
6
6
  import { canonicalizeUri, extractTaggedValues, mergeTags, readMetadataStrings, slugify, topKeywords, } from './shared.js';
7
+ import { getKnowledgeSpaceId, knowledgeSpaceMetadata } from './spaces.js';
7
8
  const MAX_EXTRACTION_SECTION_NODES = 12;
8
9
  const MAX_EXTRACTION_LINK_EDGES = 24;
9
10
  const MAX_ENTITY_HINT_VALUES_PER_KIND = 8;
@@ -115,6 +116,7 @@ export async function compileKnowledgeSource(context, source, extraction) {
115
116
  }), source.sessionId);
116
117
  }
117
118
  async function compileKnowledgeSourceRecords(context, source, extraction) {
119
+ const spaceId = getKnowledgeSpaceId(source);
118
120
  if (source.artifactId) {
119
121
  await context.store.upsertEdge({
120
122
  fromKind: 'source',
@@ -122,6 +124,7 @@ async function compileKnowledgeSourceRecords(context, source, extraction) {
122
124
  toKind: 'artifact',
123
125
  toId: source.artifactId,
124
126
  relation: 'snapshotted_as',
127
+ metadata: knowledgeSpaceMetadata(spaceId),
125
128
  });
126
129
  }
127
130
  const domain = source.canonicalUri ?? source.sourceUri;
@@ -130,11 +133,11 @@ async function compileKnowledgeSourceRecords(context, source, extraction) {
130
133
  const hostname = new URL(domain).hostname.toLowerCase();
131
134
  const domainNode = await context.store.upsertNode({
132
135
  kind: 'domain',
133
- slug: slugify(hostname),
136
+ slug: slugify(`${spaceId}-${hostname}`),
134
137
  title: hostname,
135
138
  summary: `Knowledge sources cataloged under ${hostname}.`,
136
139
  aliases: [hostname],
137
- metadata: { hostname },
140
+ metadata: knowledgeSpaceMetadata(spaceId, { hostname }),
138
141
  });
139
142
  await context.store.upsertEdge({
140
143
  fromKind: 'source',
@@ -142,6 +145,7 @@ async function compileKnowledgeSourceRecords(context, source, extraction) {
142
145
  toKind: 'node',
143
146
  toId: domainNode.id,
144
147
  relation: 'belongs_to_domain',
148
+ metadata: knowledgeSpaceMetadata(spaceId),
145
149
  });
146
150
  }
147
151
  catch (error) {
@@ -161,11 +165,11 @@ async function compileKnowledgeSourceRecords(context, source, extraction) {
161
165
  accumulated = accumulated ? `${accumulated}/${segment}` : segment;
162
166
  const folderNode = await context.store.upsertNode({
163
167
  kind: 'bookmark_folder',
164
- slug: slugify(accumulated),
168
+ slug: slugify(`${spaceId}-${accumulated}`),
165
169
  title: segment,
166
170
  summary: `Bookmark folder ${accumulated}.`,
167
171
  aliases: [accumulated],
168
- metadata: { folderPath: accumulated },
172
+ metadata: knowledgeSpaceMetadata(spaceId, { folderPath: accumulated }),
169
173
  });
170
174
  if (previousNode) {
171
175
  await context.store.upsertEdge({
@@ -174,6 +178,7 @@ async function compileKnowledgeSourceRecords(context, source, extraction) {
174
178
  toKind: 'node',
175
179
  toId: folderNode.id,
176
180
  relation: 'contains_folder',
181
+ metadata: knowledgeSpaceMetadata(spaceId),
177
182
  });
178
183
  }
179
184
  previousNode = folderNode;
@@ -185,17 +190,18 @@ async function compileKnowledgeSourceRecords(context, source, extraction) {
185
190
  toKind: 'node',
186
191
  toId: previousNode.id,
187
192
  relation: 'cataloged_in_folder',
193
+ metadata: knowledgeSpaceMetadata(spaceId),
188
194
  });
189
195
  }
190
196
  }
191
197
  for (const tag of source.tags) {
192
198
  const topicNode = await context.store.upsertNode({
193
199
  kind: 'topic',
194
- slug: slugify(tag),
200
+ slug: slugify(`${spaceId}-${tag}`),
195
201
  title: tag,
196
202
  summary: `Topic tag ${tag}.`,
197
203
  aliases: [tag],
198
- metadata: { tag },
204
+ metadata: knowledgeSpaceMetadata(spaceId, { tag }),
199
205
  });
200
206
  await context.store.upsertEdge({
201
207
  fromKind: 'source',
@@ -203,6 +209,7 @@ async function compileKnowledgeSourceRecords(context, source, extraction) {
203
209
  toKind: 'node',
204
210
  toId: topicNode.id,
205
211
  relation: 'tagged_with',
212
+ metadata: knowledgeSpaceMetadata(spaceId),
206
213
  });
207
214
  }
208
215
  await compileKnowledgeStructuredEntityHints(context, source, extraction);
@@ -224,14 +231,14 @@ async function compileKnowledgeSourceRecords(context, source, extraction) {
224
231
  continue;
225
232
  const topicNode = await context.store.upsertNode({
226
233
  kind: 'topic',
227
- slug: slugify(section),
234
+ slug: slugify(`${spaceId}-${section}`),
228
235
  title: section,
229
236
  summary: `Compiled section or concept from source ${source.id}.`,
230
237
  aliases: [section],
231
- metadata: {
238
+ metadata: knowledgeSpaceMetadata(spaceId, {
232
239
  sourceId: source.id,
233
240
  extractionId: extraction.id,
234
- },
241
+ }),
235
242
  });
236
243
  await context.store.upsertEdge({
237
244
  fromKind: 'source',
@@ -239,6 +246,7 @@ async function compileKnowledgeSourceRecords(context, source, extraction) {
239
246
  toKind: 'node',
240
247
  toId: topicNode.id,
241
248
  relation: 'mentions_section',
249
+ metadata: knowledgeSpaceMetadata(spaceId),
242
250
  });
243
251
  }
244
252
  const outboundUris = [...new Set(extraction.links
@@ -255,6 +263,7 @@ async function compileKnowledgeSourceRecords(context, source, extraction) {
255
263
  toKind: 'source',
256
264
  toId: linked.id,
257
265
  relation: 'links_to_source',
266
+ metadata: knowledgeSpaceMetadata(spaceId),
258
267
  });
259
268
  }
260
269
  }
@@ -265,10 +274,12 @@ async function compileKnowledgeSourceRecords(context, source, extraction) {
265
274
  toKind: 'session',
266
275
  toId: source.sessionId,
267
276
  relation: 'ingested_during',
277
+ metadata: knowledgeSpaceMetadata(spaceId),
268
278
  });
269
279
  }
270
280
  }
271
281
  export async function compileKnowledgeStructuredEntityHints(context, source, extraction) {
282
+ const spaceId = getKnowledgeSpaceId(source);
272
283
  const metadata = source.metadata ?? {};
273
284
  const topicKeywords = topKeywords([
274
285
  source.title ?? '',
@@ -327,14 +338,14 @@ export async function compileKnowledgeStructuredEntityHints(context, source, ext
327
338
  continue;
328
339
  const node = await context.store.upsertNode({
329
340
  kind: spec.kind,
330
- slug: slugify(title),
341
+ slug: slugify(`${spaceId}-${title}`),
331
342
  title,
332
343
  summary: `${spec.summaryPrefix} entity compiled from structured knowledge sources.`,
333
344
  aliases: topicKeywords,
334
- metadata: {
345
+ metadata: knowledgeSpaceMetadata(spaceId, {
335
346
  compiledFrom: source.id,
336
347
  tags: [...source.tags],
337
- },
348
+ }),
338
349
  });
339
350
  await context.store.upsertEdge({
340
351
  fromKind: 'source',
@@ -342,6 +353,7 @@ export async function compileKnowledgeStructuredEntityHints(context, source, ext
342
353
  toKind: 'node',
343
354
  toId: node.id,
344
355
  relation: spec.relation,
356
+ metadata: knowledgeSpaceMetadata(spaceId),
345
357
  });
346
358
  }
347
359
  }
@@ -1 +1 @@
1
- {"version":3,"file":"answer-evidence.d.ts","sourceRoot":"","sources":["../../../../src/platform/knowledge/semantic/answer-evidence.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EACV,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,aAAa,CAAC;AAQrB,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAwB/D,OAAO,EAGL,KAAK,YAAY,EAClB,MAAM,oBAAoB,CAAC;AAW5B,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,cAAc,EACrB,KAAK,EAAE,4BAA4B,EACnC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,SAAS,4BAA4B,EAAE,GACtD,YAAY,EAAE,CAkGhB;AAED,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,cAAc,EACrB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,SAAS,4BAA4B,EAAE,GACtD,mBAAmB,EAAE,CASvB;AAED,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,SAAS,mBAAmB,EAAE,EACrC,cAAc,EAAE,SAAS,4BAA4B,EAAE,GACtD,SAAS,mBAAmB,EAAE,CAKhC;AAED,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,4BAA4B,EACnC,2BAA2B,EAAE,SAAS,mBAAmB,EAAE,GAC1D,OAAO,CAMT;AAED,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,cAAc,EACrB,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,SAAS,qBAAqB,EAAE,EAC/C,aAAa,EAAE,SAAS,mBAAmB,EAAE,GAC5C,SAAS,qBAAqB,EAAE,CAelC;AAED,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,cAAc,EACrB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,SAAS,YAAY,EAAE,EACjC,aAAa,EAAE,SAAS,mBAAmB,EAAE,EAC7C,KAAK,EAAE,MAAM,GACZ,YAAY,EAAE,CAwChB;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,YAAY,GAAG,qBAAqB,CASxE;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,mBAAmB,EAAE,GAAG,mBAAmB,EAAE,CASxF;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,qBAAqB,GAAG,qBAAqB,CAM5F"}
1
+ {"version":3,"file":"answer-evidence.d.ts","sourceRoot":"","sources":["../../../../src/platform/knowledge/semantic/answer-evidence.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EACV,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,aAAa,CAAC;AAOrB,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAwB/D,OAAO,EAGL,KAAK,YAAY,EAClB,MAAM,oBAAoB,CAAC;AAW5B,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,cAAc,EACrB,KAAK,EAAE,4BAA4B,EACnC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,SAAS,4BAA4B,EAAE,GACtD,YAAY,EAAE,CAkGhB;AAED,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,cAAc,EACrB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,SAAS,4BAA4B,EAAE,GACtD,mBAAmB,EAAE,CASvB;AAED,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,SAAS,mBAAmB,EAAE,EACrC,cAAc,EAAE,SAAS,4BAA4B,EAAE,GACtD,SAAS,mBAAmB,EAAE,CAKhC;AAED,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,4BAA4B,EACnC,2BAA2B,EAAE,SAAS,mBAAmB,EAAE,GAC1D,OAAO,CAMT;AAED,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,cAAc,EACrB,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,SAAS,qBAAqB,EAAE,EAC/C,aAAa,EAAE,SAAS,mBAAmB,EAAE,GAC5C,SAAS,qBAAqB,EAAE,CAelC;AAED,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,cAAc,EACrB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,SAAS,YAAY,EAAE,EACjC,aAAa,EAAE,SAAS,mBAAmB,EAAE,EAC7C,KAAK,EAAE,MAAM,GACZ,YAAY,EAAE,CAwChB;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,YAAY,GAAG,qBAAqB,CASxE;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,mBAAmB,EAAE,GAAG,mBAAmB,EAAE,CASxF;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,qBAAqB,GAAG,qBAAqB,CAM5F"}
@@ -1,4 +1,4 @@
1
- import { getKnowledgeSpaceId, isHomeAssistantKnowledgeSpace, isInKnowledgeSpace, normalizeKnowledgeSpaceId, } from '../spaces.js';
1
+ import { getExplicitKnowledgeSpaceId, isHomeAssistantKnowledgeSpace, normalizeKnowledgeSpaceId, } from '../spaces.js';
2
2
  import { isActiveKnowledgeEdge } from '../projection-utils.js';
3
3
  import { clampText, normalizeWhitespace, readRecord, readString, readStringArray, scoreSemanticText, sourceSemanticText, splitSentences, tokenizeSemanticQuery, uniqueStrings, } from './utils.js';
4
4
  import { isLowValueFeatureOrSpecText, isSemanticAnswerLinkedObject, } from './fact-quality.js';
@@ -396,12 +396,15 @@ function pruneEvidence(items, limit, strictTopCluster = false) {
396
396
  }
397
397
  function belongsToAnswerSpace(record, spaceId) {
398
398
  const normalized = normalizeKnowledgeSpaceId(spaceId);
399
- const recordSpaceId = normalizeKnowledgeSpaceId(getKnowledgeSpaceId(record));
399
+ const explicitSpaceId = getExplicitKnowledgeSpaceId(record);
400
+ if (!explicitSpaceId)
401
+ return false;
402
+ const recordSpaceId = normalizeKnowledgeSpaceId(explicitSpaceId);
400
403
  if (normalized === 'default')
401
404
  return recordSpaceId === 'default';
402
405
  if (normalized === 'homeassistant')
403
406
  return isHomeAssistantKnowledgeSpace(recordSpaceId);
404
- return isInKnowledgeSpace(record, normalized);
407
+ return recordSpaceId === normalized;
405
408
  }
406
409
  function uniqueSources(sources) {
407
410
  const seen = new Set();
@@ -22,8 +22,10 @@ export declare function withKnowledgeSpace<T extends {
22
22
  readonly metadata?: Record<string, unknown>;
23
23
  }>(input: T, spaceId: string): T;
24
24
  export declare function getKnowledgeSpaceId(input: KnowledgeSpaceBackedRecord | Record<string, unknown> | undefined | null): KnowledgeSpaceId;
25
+ export declare function getExplicitKnowledgeSpaceId(input: KnowledgeSpaceBackedRecord | Record<string, unknown> | undefined | null): KnowledgeSpaceId | null;
25
26
  export declare function isInKnowledgeSpace(input: KnowledgeSpaceBackedRecord | undefined | null, spaceId: string): boolean;
26
27
  export declare function resolveKnowledgeSpaceScope(input?: KnowledgeSpaceScopeInput): KnowledgeSpaceId | null;
27
28
  export declare function isInKnowledgeSpaceScope(input: KnowledgeSpaceBackedRecord | undefined | null, scope?: KnowledgeSpaceScopeInput): boolean;
29
+ export declare function ensureKnowledgeSpaceMetadata(metadata?: Record<string, unknown>, fallbackSpaceId?: string): Record<string, unknown>;
28
30
  export declare function normalizeSpaceComponent(value?: string | null): string;
29
31
  //# sourceMappingURL=spaces.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"spaces.d.ts","sourceRoot":"","sources":["../../../src/platform/knowledge/spaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,yBAAyB,EACzB,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,EACtB,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAEtC,eAAO,MAAM,0BAA0B,YAAY,CAAC;AACpD,eAAO,MAAM,qCAAqC,mBAAmB,CAAC;AACtE,eAAO,MAAM,8BAA8B,aAAa,CAAC;AAEzD,MAAM,MAAM,0BAA0B,GAClC,qBAAqB,GACrB,mBAAmB,GACnB,mBAAmB,GACnB,oBAAoB,GACpB,yBAAyB,GACzB;IAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAAC;AAEpD,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACjD;AAED,wBAAgB,yBAAyB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,gBAAgB,CAGjF;AAED,wBAAgB,6BAA6B,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,gBAAgB,CAG9F;AAED,wBAAgB,oCAAoC,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAElF;AAED,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEtE;AAED,wBAAgB,uBAAuB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,gBAAgB,CAEnF;AAED,wBAAgB,kBAAkB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAEhE;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEhE;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,EACf,QAAQ,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACrC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAOzB;AAED,wBAAgB,kBAAkB,CAAC,CAAC,SAAS;IAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,EAC1F,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,MAAM,GACd,CAAC,CAKH;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,0BAA0B,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,IAAI,GAAG,gBAAgB,CAOpI;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,0BAA0B,GAAG,SAAS,GAAG,IAAI,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAEjH;AAED,wBAAgB,0BAA0B,CAAC,KAAK,GAAE,wBAA6B,GAAG,gBAAgB,GAAG,IAAI,CAGxG;AAED,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,0BAA0B,GAAG,SAAS,GAAG,IAAI,EACpD,KAAK,GAAE,wBAA6B,GACnC,OAAO,CAGT;AAED,wBAAgB,uBAAuB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAOrE"}
1
+ {"version":3,"file":"spaces.d.ts","sourceRoot":"","sources":["../../../src/platform/knowledge/spaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,yBAAyB,EACzB,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,EACtB,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAEtC,eAAO,MAAM,0BAA0B,YAAY,CAAC;AACpD,eAAO,MAAM,qCAAqC,mBAAmB,CAAC;AACtE,eAAO,MAAM,8BAA8B,aAAa,CAAC;AAEzD,MAAM,MAAM,0BAA0B,GAClC,qBAAqB,GACrB,mBAAmB,GACnB,mBAAmB,GACnB,oBAAoB,GACpB,yBAAyB,GACzB;IAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAAC;AAEpD,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACjD;AAED,wBAAgB,yBAAyB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,gBAAgB,CAGjF;AAED,wBAAgB,6BAA6B,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,gBAAgB,CAG9F;AAED,wBAAgB,oCAAoC,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAElF;AAED,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEtE;AAED,wBAAgB,uBAAuB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,gBAAgB,CAEnF;AAED,wBAAgB,kBAAkB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAEhE;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEhE;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,EACf,QAAQ,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACrC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAOzB;AAED,wBAAgB,kBAAkB,CAAC,CAAC,SAAS;IAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,EAC1F,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,MAAM,GACd,CAAC,CAKH;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,0BAA0B,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,IAAI,GAAG,gBAAgB,CAEpI;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,0BAA0B,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,IAAI,GAAG,gBAAgB,GAAG,IAAI,CAOnJ;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,0BAA0B,GAAG,SAAS,GAAG,IAAI,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAEjH;AAED,wBAAgB,0BAA0B,CAAC,KAAK,GAAE,wBAA6B,GAAG,gBAAgB,GAAG,IAAI,CAGxG;AAED,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,0BAA0B,GAAG,SAAS,GAAG,IAAI,EACpD,KAAK,GAAE,wBAA6B,GACnC,OAAO,CAIT;AAED,wBAAgB,4BAA4B,CAC1C,QAAQ,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACtC,eAAe,GAAE,MAAmC,GACnD,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAIzB;AAED,wBAAgB,uBAAuB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAOrE"}
@@ -39,10 +39,14 @@ export function withKnowledgeSpace(input, spaceId) {
39
39
  };
40
40
  }
41
41
  export function getKnowledgeSpaceId(input) {
42
+ return getExplicitKnowledgeSpaceId(input) ?? DEFAULT_KNOWLEDGE_SPACE_ID;
43
+ }
44
+ export function getExplicitKnowledgeSpaceId(input) {
42
45
  const metadata = readMetadata(input);
43
- return normalizeKnowledgeSpaceId(readString(metadata.knowledgeSpaceId)
46
+ const value = readString(metadata.knowledgeSpaceId)
44
47
  ?? readString(metadata.spaceId)
45
- ?? readString(metadata.namespace));
48
+ ?? readString(metadata.namespace);
49
+ return value ? normalizeKnowledgeSpaceId(value) : null;
46
50
  }
47
51
  export function isInKnowledgeSpace(input, spaceId) {
48
52
  return getKnowledgeSpaceId(input) === normalizeKnowledgeSpaceId(spaceId);
@@ -54,7 +58,14 @@ export function resolveKnowledgeSpaceScope(input = {}) {
54
58
  }
55
59
  export function isInKnowledgeSpaceScope(input, scope = {}) {
56
60
  const scopedSpaceId = resolveKnowledgeSpaceScope(scope);
57
- return scopedSpaceId === null || getKnowledgeSpaceId(input) === scopedSpaceId;
61
+ if (scopedSpaceId === null)
62
+ return true;
63
+ return getExplicitKnowledgeSpaceId(input) === scopedSpaceId;
64
+ }
65
+ export function ensureKnowledgeSpaceMetadata(metadata = {}, fallbackSpaceId = DEFAULT_KNOWLEDGE_SPACE_ID) {
66
+ return getExplicitKnowledgeSpaceId({ metadata })
67
+ ? metadata
68
+ : knowledgeSpaceMetadata(fallbackSpaceId, metadata);
58
69
  }
59
70
  export function normalizeSpaceComponent(value) {
60
71
  const normalized = (typeof value === 'string' ? value : '')
@@ -1,4 +1,4 @@
1
- import { getKnowledgeSpaceId, normalizeKnowledgeSpaceId } from './spaces.js';
1
+ import { isInKnowledgeSpaceScope, normalizeKnowledgeSpaceId } from './spaces.js';
2
2
  function sliceLimit(limit) {
3
3
  return Math.max(1, limit);
4
4
  }
@@ -44,7 +44,7 @@ export function listKnowledgeNodes(view, limit = 100) {
44
44
  export function listKnowledgeNodesInSpace(view, spaceId) {
45
45
  const normalizedSpaceId = normalizeKnowledgeSpaceId(spaceId);
46
46
  return [...view.nodes.values()]
47
- .filter((node) => getKnowledgeSpaceId(node) === normalizedSpaceId)
47
+ .filter((node) => isInKnowledgeSpaceScope(node, { knowledgeSpaceId: normalizedSpaceId }))
48
48
  .sort(byUpdatedAtDesc);
49
49
  }
50
50
  export function listKnowledgeEdges(view) {
@@ -53,7 +53,7 @@ export function listKnowledgeEdges(view) {
53
53
  export function listKnowledgeSourcesInSpace(view, spaceId) {
54
54
  const normalizedSpaceId = normalizeKnowledgeSpaceId(spaceId);
55
55
  return [...view.sources.values()]
56
- .filter((source) => getKnowledgeSpaceId(source) === normalizedSpaceId)
56
+ .filter((source) => isInKnowledgeSpaceScope(source, { knowledgeSpaceId: normalizedSpaceId }))
57
57
  .sort(byUpdatedAtDesc);
58
58
  }
59
59
  export function listKnowledgeIssues(view, limit = 100) {
@@ -64,7 +64,7 @@ export function listKnowledgeIssues(view, limit = 100) {
64
64
  export function listKnowledgeIssuesInSpace(view, spaceId) {
65
65
  const normalizedSpaceId = normalizeKnowledgeSpaceId(spaceId);
66
66
  return [...view.issues.values()]
67
- .filter((issue) => getKnowledgeSpaceId(issue) === normalizedSpaceId)
67
+ .filter((issue) => isInKnowledgeSpaceScope(issue, { knowledgeSpaceId: normalizedSpaceId }))
68
68
  .sort(byUpdatedAtDesc);
69
69
  }
70
70
  export function listKnowledgeExtractions(view, limit = 100) {
@@ -75,7 +75,7 @@ export function listKnowledgeExtractions(view, limit = 100) {
75
75
  export function listKnowledgeExtractionsInSpace(view, spaceId) {
76
76
  const normalizedSpaceId = normalizeKnowledgeSpaceId(spaceId);
77
77
  return [...view.extractions.values()]
78
- .filter((extraction) => getKnowledgeSpaceId(extraction) === normalizedSpaceId)
78
+ .filter((extraction) => isInKnowledgeSpaceScope(extraction, { knowledgeSpaceId: normalizedSpaceId }))
79
79
  .sort(byUpdatedAtDesc);
80
80
  }
81
81
  export function listKnowledgeExtractionsForSources(view, sourceIds) {
@@ -75,6 +75,7 @@ export declare class KnowledgeStore {
75
75
  replaceEdgeRecord(record: KnowledgeEdgeRecord): Promise<void>;
76
76
  replaceIssues(inputs: readonly KnowledgeIssueUpsertInput[], namespace?: string): Promise<KnowledgeIssueRecord[]>;
77
77
  upsertIssue(input: KnowledgeIssueUpsertInput): Promise<KnowledgeIssueRecord>;
78
+ replaceIssueRecord(record: KnowledgeIssueRecord): Promise<void>;
78
79
  upsertExtraction(input: KnowledgeExtractionUpsertInput): Promise<KnowledgeExtractionRecord>;
79
80
  upsertJobRun(input: KnowledgeJobRunUpsertInput): Promise<KnowledgeJobRunRecord>;
80
81
  upsertRefinementTask(input: KnowledgeRefinementTaskUpsertInput): Promise<KnowledgeRefinementTaskRecord>;
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/platform/knowledge/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/platform/knowledge/store.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@ import { deleteKnowledgeSpaceRows, planKnowledgeSpaceDeleteRows, } from './store
9
9
  import { deleteKnowledgeSchedule, upsertKnowledgeSchedule, } from './store-schedules.js';
10
10
  import { edgesForKnowledgeStore, getKnowledgeConsolidationCandidate, getKnowledgeConsolidationCandidateBySubject, getKnowledgeConsolidationReport, getKnowledgeExtraction, getKnowledgeExtractionBySourceId, getKnowledgeIssue, getKnowledgeItem, getKnowledgeJobRun, getKnowledgeRefinementTask, getKnowledgeNode, getKnowledgeNodeByKindAndSlug, getKnowledgeSchedule, getKnowledgeSource, getKnowledgeSourceByCanonicalUri, getKnowledgeStoreStatus, getKnowledgeUsageRecord, listKnowledgeConsolidationCandidates, listKnowledgeConsolidationReports, listKnowledgeEdges, listKnowledgeExtractions, listKnowledgeExtractionsForSources, listKnowledgeExtractionsInSpace, listKnowledgeIssues, listKnowledgeIssuesInSpace, listKnowledgeJobRuns, listKnowledgeRefinementTasks, listKnowledgeNodes, listKnowledgeNodesInSpace, listKnowledgeSchedules, listKnowledgeSources, listKnowledgeSourcesInSpace, listKnowledgeUsageRecords, } from './store-read.js';
11
11
  import { loadKnowledgeStoreSnapshot } from './store-load.js';
12
+ import { ensureKnowledgeSpaceMetadata, getExplicitKnowledgeSpaceId, getKnowledgeSpaceId, } from './spaces.js';
12
13
  export class KnowledgeStore {
13
14
  sqlite;
14
15
  dbPath;
@@ -186,6 +187,10 @@ export class KnowledgeStore {
186
187
  const _contentHash = stableText(input.contentHash);
187
188
  const _crawlError = stableText(input.crawlError);
188
189
  const _sessionId = stableText(input.sessionId);
190
+ const sourceMetadata = ensureKnowledgeSpaceMetadata({
191
+ ...(existing?.metadata ?? {}),
192
+ ...(input.metadata ?? {}),
193
+ });
189
194
  const record = {
190
195
  id: existing?.id ?? input.id ?? `source-${randomUUID().slice(0, 8)}`,
191
196
  connectorId: input.connectorId,
@@ -203,10 +208,7 @@ export class KnowledgeStore {
203
208
  ...(typeof input.lastCrawledAt === 'number' ? { lastCrawledAt: input.lastCrawledAt } : existing?.lastCrawledAt ? { lastCrawledAt: existing.lastCrawledAt } : {}),
204
209
  ...opt('crawlError', _crawlError, existing?.crawlError && input.status !== 'indexed' ? existing.crawlError : undefined),
205
210
  ...opt('sessionId', _sessionId, existing?.sessionId),
206
- metadata: {
207
- ...(existing?.metadata ?? {}),
208
- ...(input.metadata ?? {}),
209
- },
211
+ metadata: sourceMetadata,
210
212
  createdAt: existing?.createdAt ?? now,
211
213
  updatedAt: now,
212
214
  };
@@ -320,6 +322,18 @@ export class KnowledgeStore {
320
322
  const now = nowMs();
321
323
  const _summary = stableText(input.summary);
322
324
  const _sourceId = stableText(input.sourceId);
325
+ const mergedNodeMetadata = {
326
+ ...(existing?.metadata ?? {}),
327
+ ...(input.metadata ?? {}),
328
+ };
329
+ const linkedSource = _sourceId !== null
330
+ ? this.sources.get(_sourceId)
331
+ : existing?.sourceId
332
+ ? this.sources.get(existing.sourceId)
333
+ : null;
334
+ const nodeMetadata = getExplicitKnowledgeSpaceId({ metadata: mergedNodeMetadata }) || !linkedSource
335
+ ? mergedNodeMetadata
336
+ : ensureKnowledgeSpaceMetadata(mergedNodeMetadata, getKnowledgeSpaceId(linkedSource));
323
337
  const record = {
324
338
  id: existing?.id ?? input.id ?? `node-${randomUUID().slice(0, 8)}`,
325
339
  kind: input.kind,
@@ -330,10 +344,7 @@ export class KnowledgeStore {
330
344
  status: input.status ?? existing?.status ?? 'active',
331
345
  confidence: Math.max(0, Math.min(100, input.confidence ?? existing?.confidence ?? 70)),
332
346
  ...(_sourceId !== null ? { sourceId: _sourceId } : existing?.sourceId ? { sourceId: existing.sourceId } : {}),
333
- metadata: {
334
- ...(existing?.metadata ?? {}),
335
- ...(input.metadata ?? {}),
336
- },
347
+ metadata: nodeMetadata,
337
348
  createdAt: existing?.createdAt ?? now,
338
349
  updatedAt: now,
339
350
  };
@@ -516,6 +527,26 @@ export class KnowledgeStore {
516
527
  const now = nowMs();
517
528
  const _sourceId = stableText(input.sourceId);
518
529
  const _nodeId = stableText(input.nodeId);
530
+ const mergedIssueMetadata = {
531
+ ...(existing?.metadata ?? {}),
532
+ ...(input.metadata ?? {}),
533
+ };
534
+ const issueSource = _sourceId !== null
535
+ ? this.sources.get(_sourceId)
536
+ : existing?.sourceId
537
+ ? this.sources.get(existing.sourceId)
538
+ : null;
539
+ const issueNode = _nodeId !== null
540
+ ? this.nodes.get(_nodeId)
541
+ : existing?.nodeId
542
+ ? this.nodes.get(existing.nodeId)
543
+ : null;
544
+ const issueSpaceId = getExplicitKnowledgeSpaceId({ metadata: mergedIssueMetadata })
545
+ ?? getExplicitKnowledgeSpaceId(issueSource)
546
+ ?? getExplicitKnowledgeSpaceId(issueNode);
547
+ const issueMetadata = issueSpaceId
548
+ ? ensureKnowledgeSpaceMetadata(mergedIssueMetadata, issueSpaceId)
549
+ : mergedIssueMetadata;
519
550
  const record = {
520
551
  id: existing?.id ?? input.id ?? `issue-${randomUUID().slice(0, 8)}`,
521
552
  severity: input.severity,
@@ -524,10 +555,7 @@ export class KnowledgeStore {
524
555
  status: input.status ?? issueStatusForUpsert(existing, input),
525
556
  ...(_sourceId !== null ? { sourceId: _sourceId } : {}),
526
557
  ...(_nodeId !== null ? { nodeId: _nodeId } : {}),
527
- metadata: {
528
- ...(existing?.metadata ?? {}),
529
- ...(input.metadata ?? {}),
530
- },
558
+ metadata: issueMetadata,
531
559
  createdAt: existing?.createdAt ?? now,
532
560
  updatedAt: now,
533
561
  };
@@ -551,6 +579,27 @@ export class KnowledgeStore {
551
579
  await this.sqlite.save();
552
580
  return record;
553
581
  }
582
+ async replaceIssueRecord(record) {
583
+ await this.init();
584
+ this.sqlite.run(`
585
+ INSERT OR REPLACE INTO knowledge_issues (
586
+ id, severity, code, message, status, source_id, node_id, metadata, created_at, updated_at
587
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
588
+ `, [
589
+ record.id,
590
+ record.severity,
591
+ record.code,
592
+ record.message,
593
+ record.status,
594
+ record.sourceId ?? null,
595
+ record.nodeId ?? null,
596
+ JSON.stringify(record.metadata),
597
+ record.createdAt,
598
+ record.updatedAt,
599
+ ]);
600
+ this.issues.set(record.id, record);
601
+ await this.sqlite.save();
602
+ }
554
603
  async upsertExtraction(input) {
555
604
  await this.init();
556
605
  const existing = input.id
@@ -561,6 +610,14 @@ export class KnowledgeStore {
561
610
  const _title = stableText(input.title);
562
611
  const _summary = stableText(input.summary);
563
612
  const _excerpt = stableText(input.excerpt);
613
+ const mergedExtractionMetadata = {
614
+ ...(existing?.metadata ?? {}),
615
+ ...(input.metadata ?? {}),
616
+ };
617
+ const extractionSource = this.sources.get(input.sourceId);
618
+ const extractionMetadata = getExplicitKnowledgeSpaceId({ metadata: mergedExtractionMetadata }) || !extractionSource
619
+ ? mergedExtractionMetadata
620
+ : ensureKnowledgeSpaceMetadata(mergedExtractionMetadata, getKnowledgeSpaceId(extractionSource));
564
621
  const record = {
565
622
  id: existing?.id ?? input.id ?? `extract-${randomUUID().slice(0, 8)}`,
566
623
  sourceId: input.sourceId,
@@ -577,10 +634,7 @@ export class KnowledgeStore {
577
634
  ...(existing?.structure ?? {}),
578
635
  ...(input.structure ?? {}),
579
636
  },
580
- metadata: {
581
- ...(existing?.metadata ?? {}),
582
- ...(input.metadata ?? {}),
583
- },
637
+ metadata: extractionMetadata,
584
638
  createdAt: existing?.createdAt ?? now,
585
639
  updatedAt: now,
586
640
  };
@@ -1,6 +1,6 @@
1
1
  import { readFileSync } from 'node:fs';
2
2
  import { join } from 'node:path';
3
- let version = '0.33.11';
3
+ let version = '0.33.12';
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": "0.33.11",
3
+ "version": "0.33.12",
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",
@@ -449,14 +449,14 @@
449
449
  "sideEffects": false,
450
450
  "type": "module",
451
451
  "dependencies": {
452
- "@pellux/goodvibes-contracts": "0.33.11",
453
- "@pellux/goodvibes-daemon-sdk": "0.33.11",
454
- "@pellux/goodvibes-errors": "0.33.11",
455
- "@pellux/goodvibes-operator-sdk": "0.33.11",
456
- "@pellux/goodvibes-peer-sdk": "0.33.11",
457
- "@pellux/goodvibes-transport-core": "0.33.11",
458
- "@pellux/goodvibes-transport-http": "0.33.11",
459
- "@pellux/goodvibes-transport-realtime": "0.33.11"
452
+ "@pellux/goodvibes-contracts": "0.33.12",
453
+ "@pellux/goodvibes-daemon-sdk": "0.33.12",
454
+ "@pellux/goodvibes-errors": "0.33.12",
455
+ "@pellux/goodvibes-operator-sdk": "0.33.12",
456
+ "@pellux/goodvibes-peer-sdk": "0.33.12",
457
+ "@pellux/goodvibes-transport-core": "0.33.12",
458
+ "@pellux/goodvibes-transport-http": "0.33.12",
459
+ "@pellux/goodvibes-transport-realtime": "0.33.12"
460
460
  },
461
461
  "optionalDependencies": {
462
462
  "@agentclientprotocol/sdk": "^0.21.0",