@pellux/goodvibes-sdk 0.28.14 → 0.28.16

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 (38) hide show
  1. package/dist/_internal/contracts/artifacts/operator-contract.json +19 -1
  2. package/dist/_internal/contracts/generated/foundation-metadata.d.ts +1 -1
  3. package/dist/_internal/contracts/generated/foundation-metadata.js +1 -1
  4. package/dist/_internal/contracts/generated/operator-contract.d.ts.map +1 -1
  5. package/dist/_internal/contracts/generated/operator-contract.js +19 -1
  6. package/dist/_internal/platform/control-plane/operator-contract-schemas-knowledge.d.ts.map +1 -1
  7. package/dist/_internal/platform/control-plane/operator-contract-schemas-knowledge.js +1 -0
  8. package/dist/_internal/platform/knowledge/home-graph/generated-pages.d.ts.map +1 -1
  9. package/dist/_internal/platform/knowledge/home-graph/generated-pages.js +13 -4
  10. package/dist/_internal/platform/knowledge/home-graph/service.d.ts.map +1 -1
  11. package/dist/_internal/platform/knowledge/home-graph/service.js +48 -46
  12. package/dist/_internal/platform/knowledge/semantic/answer-fallback.d.ts.map +1 -1
  13. package/dist/_internal/platform/knowledge/semantic/answer-fallback.js +18 -4
  14. package/dist/_internal/platform/knowledge/semantic/answer.js +3 -0
  15. package/dist/_internal/platform/knowledge/semantic/gap-repair.js +11 -4
  16. package/dist/_internal/platform/knowledge/semantic/self-improvement-promotion.d.ts +11 -0
  17. package/dist/_internal/platform/knowledge/semantic/self-improvement-promotion.d.ts.map +1 -0
  18. package/dist/_internal/platform/knowledge/semantic/self-improvement-promotion.js +256 -0
  19. package/dist/_internal/platform/knowledge/semantic/self-improvement-tasks.d.ts.map +1 -1
  20. package/dist/_internal/platform/knowledge/semantic/self-improvement-tasks.js +9 -1
  21. package/dist/_internal/platform/knowledge/semantic/self-improvement.d.ts.map +1 -1
  22. package/dist/_internal/platform/knowledge/semantic/self-improvement.js +13 -46
  23. package/dist/_internal/platform/knowledge/semantic/service.d.ts.map +1 -1
  24. package/dist/_internal/platform/knowledge/semantic/service.js +55 -10
  25. package/dist/_internal/platform/knowledge/store-refinement.d.ts.map +1 -1
  26. package/dist/_internal/platform/knowledge/store-refinement.js +8 -0
  27. package/dist/_internal/platform/knowledge/store-schema.d.ts.map +1 -1
  28. package/dist/_internal/platform/knowledge/store-schema.js +6 -1
  29. package/dist/_internal/platform/knowledge/store.d.ts +1 -0
  30. package/dist/_internal/platform/knowledge/store.d.ts.map +1 -1
  31. package/dist/_internal/platform/knowledge/store.js +1 -0
  32. package/dist/_internal/platform/knowledge/types.d.ts +2 -0
  33. package/dist/_internal/platform/knowledge/types.d.ts.map +1 -1
  34. package/dist/_internal/platform/state/sqlite-store.d.ts +3 -0
  35. package/dist/_internal/platform/state/sqlite-store.d.ts.map +1 -1
  36. package/dist/_internal/platform/state/sqlite-store.js +19 -0
  37. package/dist/_internal/platform/version.js +1 -1
  38. package/package.json +1 -1
@@ -3,7 +3,7 @@
3
3
  "product": {
4
4
  "id": "goodvibes",
5
5
  "surface": "operator",
6
- "version": "0.28.14"
6
+ "version": "0.28.16"
7
7
  },
8
8
  "auth": {
9
9
  "modes": [
@@ -28903,6 +28903,9 @@
28903
28903
  "blockedReason": {
28904
28904
  "type": "string"
28905
28905
  },
28906
+ "nextRepairAttemptAt": {
28907
+ "type": "number"
28908
+ },
28906
28909
  "trace": {
28907
28910
  "type": "array",
28908
28911
  "items": {
@@ -29118,6 +29121,9 @@
29118
29121
  "blockedReason": {
29119
29122
  "type": "string"
29120
29123
  },
29124
+ "nextRepairAttemptAt": {
29125
+ "type": "number"
29126
+ },
29121
29127
  "trace": {
29122
29128
  "type": "array",
29123
29129
  "items": {
@@ -29336,6 +29342,9 @@
29336
29342
  "blockedReason": {
29337
29343
  "type": "string"
29338
29344
  },
29345
+ "nextRepairAttemptAt": {
29346
+ "type": "number"
29347
+ },
29339
29348
  "trace": {
29340
29349
  "type": "array",
29341
29350
  "items": {
@@ -39697,6 +39706,9 @@
39697
39706
  "blockedReason": {
39698
39707
  "type": "string"
39699
39708
  },
39709
+ "nextRepairAttemptAt": {
39710
+ "type": "number"
39711
+ },
39700
39712
  "trace": {
39701
39713
  "type": "array",
39702
39714
  "items": {
@@ -39888,6 +39900,9 @@
39888
39900
  "blockedReason": {
39889
39901
  "type": "string"
39890
39902
  },
39903
+ "nextRepairAttemptAt": {
39904
+ "type": "number"
39905
+ },
39891
39906
  "trace": {
39892
39907
  "type": "array",
39893
39908
  "items": {
@@ -40096,6 +40111,9 @@
40096
40111
  "blockedReason": {
40097
40112
  "type": "string"
40098
40113
  },
40114
+ "nextRepairAttemptAt": {
40115
+ "type": "number"
40116
+ },
40099
40117
  "trace": {
40100
40118
  "type": "array",
40101
40119
  "items": {
@@ -1,6 +1,6 @@
1
1
  export declare const FOUNDATION_METADATA: {
2
2
  readonly productId: "goodvibes";
3
- readonly productVersion: "0.28.14";
3
+ readonly productVersion: "0.28.16";
4
4
  readonly operatorMethodCount: 265;
5
5
  readonly operatorEventCount: 30;
6
6
  readonly peerEndpointCount: 6;
@@ -1,7 +1,7 @@
1
1
  // Synced from packages/contracts/src/generated/foundation-metadata.ts
2
2
  export const FOUNDATION_METADATA = {
3
3
  "productId": "goodvibes",
4
- "productVersion": "0.28.14",
4
+ "productVersion": "0.28.16",
5
5
  "operatorMethodCount": 265,
6
6
  "operatorEventCount": 30,
7
7
  "peerEndpointCount": 6
@@ -1 +1 @@
1
- {"version":3,"file":"operator-contract.d.ts","sourceRoot":"","sources":["../../../../src/_internal/contracts/generated/operator-contract.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAE5D,eAAO,MAAM,iBAAiB,EAAE,wBAsrmEtB,CAAC"}
1
+ {"version":3,"file":"operator-contract.d.ts","sourceRoot":"","sources":["../../../../src/_internal/contracts/generated/operator-contract.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAE5D,eAAO,MAAM,iBAAiB,EAAE,wBAwsmEtB,CAAC"}
@@ -3,7 +3,7 @@ export const OPERATOR_CONTRACT = {
3
3
  "product": {
4
4
  "id": "goodvibes",
5
5
  "surface": "operator",
6
- "version": "0.28.14"
6
+ "version": "0.28.16"
7
7
  },
8
8
  "auth": {
9
9
  "modes": [
@@ -28903,6 +28903,9 @@ export const OPERATOR_CONTRACT = {
28903
28903
  "blockedReason": {
28904
28904
  "type": "string"
28905
28905
  },
28906
+ "nextRepairAttemptAt": {
28907
+ "type": "number"
28908
+ },
28906
28909
  "trace": {
28907
28910
  "type": "array",
28908
28911
  "items": {
@@ -29118,6 +29121,9 @@ export const OPERATOR_CONTRACT = {
29118
29121
  "blockedReason": {
29119
29122
  "type": "string"
29120
29123
  },
29124
+ "nextRepairAttemptAt": {
29125
+ "type": "number"
29126
+ },
29121
29127
  "trace": {
29122
29128
  "type": "array",
29123
29129
  "items": {
@@ -29336,6 +29342,9 @@ export const OPERATOR_CONTRACT = {
29336
29342
  "blockedReason": {
29337
29343
  "type": "string"
29338
29344
  },
29345
+ "nextRepairAttemptAt": {
29346
+ "type": "number"
29347
+ },
29339
29348
  "trace": {
29340
29349
  "type": "array",
29341
29350
  "items": {
@@ -39697,6 +39706,9 @@ export const OPERATOR_CONTRACT = {
39697
39706
  "blockedReason": {
39698
39707
  "type": "string"
39699
39708
  },
39709
+ "nextRepairAttemptAt": {
39710
+ "type": "number"
39711
+ },
39700
39712
  "trace": {
39701
39713
  "type": "array",
39702
39714
  "items": {
@@ -39888,6 +39900,9 @@ export const OPERATOR_CONTRACT = {
39888
39900
  "blockedReason": {
39889
39901
  "type": "string"
39890
39902
  },
39903
+ "nextRepairAttemptAt": {
39904
+ "type": "number"
39905
+ },
39891
39906
  "trace": {
39892
39907
  "type": "array",
39893
39908
  "items": {
@@ -40096,6 +40111,9 @@ export const OPERATOR_CONTRACT = {
40096
40111
  "blockedReason": {
40097
40112
  "type": "string"
40098
40113
  },
40114
+ "nextRepairAttemptAt": {
40115
+ "type": "number"
40116
+ },
40099
40117
  "trace": {
40100
40118
  "type": "array",
40101
40119
  "items": {
@@ -1 +1 @@
1
- {"version":3,"file":"operator-contract-schemas-knowledge.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/control-plane/operator-contract-schemas-knowledge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"operator-contract-schemas-knowledge.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/control-plane/operator-contract-schemas-knowledge.ts"],"names":[],"mappings":"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"}
@@ -328,6 +328,7 @@ export const KNOWLEDGE_REFINEMENT_TASK_SCHEMA = objectSchema({
328
328
  budget: recordSchema(NUMBER_SCHEMA),
329
329
  attemptCount: NUMBER_SCHEMA,
330
330
  blockedReason: STRING_SCHEMA,
331
+ nextRepairAttemptAt: NUMBER_SCHEMA,
331
332
  trace: GENERIC_LIST_SCHEMA,
332
333
  metadata: METADATA_SCHEMA,
333
334
  createdAt: NUMBER_SCHEMA,
@@ -1 +1 @@
1
- {"version":3,"file":"generated-pages.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/knowledge/home-graph/generated-pages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAM9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAsClD,OAAO,KAAK,EACV,6BAA6B,EAC7B,8BAA8B,EAC9B,wBAAwB,EACxB,yBAAyB,EACzB,sBAAsB,EACvB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAED,eAAO,MAAM,8BAA8B,uBAAuB,CAAC;AAKnE,wBAAsB,+BAA+B,CACnD,OAAO,EAAE,oBAAoB,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,sBAAsB,CAAA;CAAE,GACzE,OAAO,CAAC,8BAA8B,CAAC,CAOzC;AAED,wBAAsB,8BAA8B,CAClD,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,8BAA8B,CAAC,CAEzC;AA+FD,wBAAsB,8BAA8B,CAClD,OAAO,EAAE,oBAAoB,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,wBAAwB,CAAA;CAAE,GAC3E,OAAO,CAAC,6BAA6B,GAAG;IAAE,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAA;CAAE,CAAC,CA6EhF;AAED,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,oBAAoB,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,wBAAwB,CAAA;CAAE,GAC3E,OAAO,CAAC,yBAAyB,GAAG;IAAE,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAA;CAAE,CAAC,CAsC5E;AAED,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,oBAAoB,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,wBAAwB,CAAA;CAAE,GAC3E,OAAO,CAAC,yBAAyB,GAAG;IAAE,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAA;CAAE,CAAC,CAyB5E"}
1
+ {"version":3,"file":"generated-pages.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/knowledge/home-graph/generated-pages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAM9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAsClD,OAAO,KAAK,EACV,6BAA6B,EAC7B,8BAA8B,EAC9B,wBAAwB,EACxB,yBAAyB,EACzB,sBAAsB,EACvB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAED,eAAO,MAAM,8BAA8B,uBAAuB,CAAC;AAQnE,wBAAsB,+BAA+B,CACnD,OAAO,EAAE,oBAAoB,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,sBAAsB,CAAA;CAAE,GACzE,OAAO,CAAC,8BAA8B,CAAC,CAoBzC;AAED,wBAAsB,8BAA8B,CAClD,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,8BAA8B,CAAC,CAEzC;AA+FD,wBAAsB,8BAA8B,CAClD,OAAO,EAAE,oBAAoB,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,wBAAwB,CAAA;CAAE,GAC3E,OAAO,CAAC,6BAA6B,GAAG;IAAE,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAA;CAAE,CAAC,CA6EhF;AAED,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,oBAAoB,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,wBAAwB,CAAA;CAAE,GAC3E,OAAO,CAAC,yBAAyB,GAAG;IAAE,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAA;CAAE,CAAC,CAsC5E;AAED,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,oBAAoB,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,wBAAwB,CAAA;CAAE,GAC3E,OAAO,CAAC,yBAAyB,GAAG;IAAE,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAA;CAAE,CAAC,CAyB5E"}
@@ -9,12 +9,16 @@ export const HOME_GRAPH_PAGE_POLICY_VERSION = 'homegraph-pages-v7';
9
9
  const DEFAULT_SYNC_DEVICE_PASSPORT_LIMIT = 32;
10
10
  const DEFAULT_SYNC_ROOM_PAGE_LIMIT = 12;
11
11
  const DEFAULT_SYNC_PAGE_RUN_MS = 15_000;
12
+ const MAX_FOREGROUND_SYNC_DEVICE_PASSPORTS = 32;
13
+ const MAX_FOREGROUND_SYNC_ROOM_PAGES = 12;
14
+ const MAX_FOREGROUND_SYNC_PAGE_RUN_MS = 30_000;
12
15
  export async function generateAutomaticHomeGraphPages(context) {
16
+ const requested = context.input.pageAutomation ?? {};
13
17
  return generateHomeGraphPagesForCurrentState(context, {
14
- maxDevicePassports: DEFAULT_SYNC_DEVICE_PASSPORT_LIMIT,
15
- maxRoomPages: DEFAULT_SYNC_ROOM_PAGE_LIMIT,
16
- maxRunMs: DEFAULT_SYNC_PAGE_RUN_MS,
17
- ...(context.input.pageAutomation ?? {}),
18
+ ...requested,
19
+ maxDevicePassports: clampForegroundLimit(requested.maxDevicePassports, DEFAULT_SYNC_DEVICE_PASSPORT_LIMIT, MAX_FOREGROUND_SYNC_DEVICE_PASSPORTS),
20
+ maxRoomPages: clampForegroundLimit(requested.maxRoomPages, DEFAULT_SYNC_ROOM_PAGE_LIMIT, MAX_FOREGROUND_SYNC_ROOM_PAGES),
21
+ maxRunMs: clampForegroundLimit(requested.maxRunMs, DEFAULT_SYNC_PAGE_RUN_MS, MAX_FOREGROUND_SYNC_PAGE_RUN_MS),
18
22
  });
19
23
  }
20
24
  export async function refreshAutomaticHomeGraphPages(context) {
@@ -373,6 +377,11 @@ function limitRecords(records, limit) {
373
377
  return records;
374
378
  return records.slice(0, Math.max(0, Math.trunc(limit)));
375
379
  }
380
+ function clampForegroundLimit(value, fallback, max) {
381
+ if (typeof value !== 'number' || !Number.isFinite(value))
382
+ return fallback;
383
+ return Math.max(0, Math.min(max, Math.trunc(value)));
384
+ }
376
385
  function readHomeAssistantObjectId(node, ...keys) {
377
386
  const homeAssistant = readRecord(node.metadata.homeAssistant);
378
387
  for (const key of keys) {
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/knowledge/home-graph/service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/knowledge/home-graph/service.ts"],"names":[],"mappings":"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"}
@@ -35,53 +35,55 @@ export class HomeGraphService {
35
35
  }
36
36
  async syncSnapshot(input) {
37
37
  await this.store.init();
38
- const { spaceId, installationId } = resolveHomeGraphSpace(input);
39
- const capturedAt = input.capturedAt ?? Date.now();
40
- const source = await this.store.upsertSource({
41
- id: homeGraphSourceId(spaceId, 'snapshot', String(capturedAt)),
42
- connectorId: HOME_GRAPH_CONNECTOR_ID,
43
- sourceType: 'dataset',
44
- title: input.title ?? 'Home Assistant snapshot',
45
- canonicalUri: namespacedCanonicalUri(spaceId, 'snapshot', String(capturedAt)),
46
- summary: 'Home Assistant entity, device, area, automation, script, scene, label, and integration snapshot.',
47
- tags: ['homeassistant', 'home-graph', 'snapshot'],
48
- status: 'indexed',
49
- lastCrawledAt: capturedAt,
50
- metadata: buildHomeGraphMetadata(spaceId, installationId, {
51
- ...(input.metadata ?? {}),
52
- homeGraphSourceKind: 'snapshot',
53
- capturedAt,
54
- }),
55
- });
56
- const home = await this.upsertHomeNode(spaceId, installationId, input);
57
- const beforeNodeIds = new Set(readHomeGraphState(this.store, spaceId).nodes.map((node) => node.id));
58
- const beforeEdgeIds = new Set(readHomeGraphState(this.store, spaceId).edges.map((edge) => edge.id));
59
- const groups = await this.upsertSnapshotObjects(spaceId, installationId, input, home.id, source.id);
60
- await this.autoLinkExistingSources(spaceId, installationId);
61
- const issues = await this.refreshQualityIssues(spaceId, installationId);
62
- this.scheduleSyncSelfImprovement(spaceId);
63
- const generated = await generateAutomaticHomeGraphPages({
64
- store: this.store,
65
- artifactStore: this.artifactStore,
66
- spaceId,
67
- installationId,
68
- input,
38
+ return this.store.batch(async () => {
39
+ const { spaceId, installationId } = resolveHomeGraphSpace(input);
40
+ const capturedAt = input.capturedAt ?? Date.now();
41
+ const source = await this.store.upsertSource({
42
+ id: homeGraphSourceId(spaceId, 'snapshot', String(capturedAt)),
43
+ connectorId: HOME_GRAPH_CONNECTOR_ID,
44
+ sourceType: 'dataset',
45
+ title: input.title ?? 'Home Assistant snapshot',
46
+ canonicalUri: namespacedCanonicalUri(spaceId, 'snapshot', String(capturedAt)),
47
+ summary: 'Home Assistant entity, device, area, automation, script, scene, label, and integration snapshot.',
48
+ tags: ['homeassistant', 'home-graph', 'snapshot'],
49
+ status: 'indexed',
50
+ lastCrawledAt: capturedAt,
51
+ metadata: buildHomeGraphMetadata(spaceId, installationId, {
52
+ ...(input.metadata ?? {}),
53
+ homeGraphSourceKind: 'snapshot',
54
+ capturedAt,
55
+ }),
56
+ });
57
+ const home = await this.upsertHomeNode(spaceId, installationId, input);
58
+ const beforeNodeIds = new Set(readHomeGraphState(this.store, spaceId).nodes.map((node) => node.id));
59
+ const beforeEdgeIds = new Set(readHomeGraphState(this.store, spaceId).edges.map((edge) => edge.id));
60
+ const groups = await this.upsertSnapshotObjects(spaceId, installationId, input, home.id, source.id);
61
+ await this.autoLinkExistingSources(spaceId, installationId);
62
+ const issues = await this.refreshQualityIssues(spaceId, installationId);
63
+ this.scheduleSyncSelfImprovement(spaceId);
64
+ const generated = await generateAutomaticHomeGraphPages({
65
+ store: this.store,
66
+ artifactStore: this.artifactStore,
67
+ spaceId,
68
+ installationId,
69
+ input,
70
+ });
71
+ const after = readHomeGraphState(this.store, spaceId);
72
+ return {
73
+ ok: true,
74
+ spaceId,
75
+ installationId,
76
+ source,
77
+ home,
78
+ created: {
79
+ nodes: after.nodes.filter((node) => !beforeNodeIds.has(node.id)).length,
80
+ edges: after.edges.filter((edge) => !beforeEdgeIds.has(edge.id)).length,
81
+ issues: issues.length,
82
+ },
83
+ generated,
84
+ counts: groups,
85
+ };
69
86
  });
70
- const after = readHomeGraphState(this.store, spaceId);
71
- return {
72
- ok: true,
73
- spaceId,
74
- installationId,
75
- source,
76
- home,
77
- created: {
78
- nodes: after.nodes.filter((node) => !beforeNodeIds.has(node.id)).length,
79
- edges: after.edges.filter((edge) => !beforeEdgeIds.has(edge.id)).length,
80
- issues: issues.length,
81
- },
82
- generated,
83
- counts: groups,
84
- };
85
87
  }
86
88
  async ingestUrl(input) {
87
89
  const { spaceId, installationId } = resolveHomeGraphSpace(input);
@@ -1 +1 @@
1
- {"version":3,"file":"answer-fallback.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/knowledge/semantic/answer-fallback.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAGvD,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;CAC/B;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,SAAS,sBAAsB,EAAE,EAC3C,KAAK,EAAE,SAAS,mBAAmB,EAAE,GACpC,cAAc,CAehB"}
1
+ {"version":3,"file":"answer-fallback.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/knowledge/semantic/answer-fallback.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAGvD,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;CAC/B;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,SAAS,sBAAsB,EAAE,EAC3C,KAAK,EAAE,SAAS,mBAAmB,EAAE,GACpC,cAAc,CAuBhB"}
@@ -1,4 +1,4 @@
1
- import { clampText, readString } from './utils.js';
1
+ import { clampText, normalizeWhitespace, readString } from './utils.js';
2
2
  export function renderFallbackAnswer(query, mode, evidence, facts) {
3
3
  const factLimit = mode === 'detailed' ? 12 : mode === 'concise' ? 3 : 8;
4
4
  const factPhrases = facts.slice(0, factLimit).map(renderFactPhrase).filter(Boolean);
@@ -8,11 +8,19 @@ export function renderFallbackAnswer(query, mode, evidence, facts) {
8
8
  text: `The source-backed facts I found indicate ${joinFactPhrases(factPhrases)}.`,
9
9
  };
10
10
  }
11
- const lines = evidence.slice(0, mode === 'detailed' ? 8 : mode === 'concise' ? 1 : 4)
12
- .map((item) => `- ${item.title}${item.excerpt ? `: ${clampText(item.excerpt, 360)}` : ''}`);
11
+ const evidencePhrases = evidence
12
+ .slice(0, mode === 'detailed' ? 8 : mode === 'concise' ? 2 : 5)
13
+ .map(renderEvidencePhrase)
14
+ .filter(Boolean);
15
+ if (evidencePhrases.length > 0) {
16
+ return {
17
+ synthesized: true,
18
+ text: `The indexed evidence currently indicates ${joinFactPhrases(evidencePhrases)}. It does not yet contain enough extracted source-backed facts to answer every part of "${query}".`,
19
+ };
20
+ }
13
21
  return {
14
22
  synthesized: false,
15
- text: lines.length > 0 ? lines.join('\n') : `No knowledge matched "${query}".`,
23
+ text: `No knowledge matched "${query}".`,
16
24
  };
17
25
  }
18
26
  function renderFactPhrase(fact) {
@@ -29,3 +37,9 @@ function joinFactPhrases(phrases) {
29
37
  return `${phrases[0]} and ${phrases[1]}`;
30
38
  return `${phrases.slice(0, -1).join('; ')}; and ${phrases[phrases.length - 1]}`;
31
39
  }
40
+ function renderEvidencePhrase(item) {
41
+ const excerpt = normalizeWhitespace(item.excerpt ?? '');
42
+ if (!excerpt)
43
+ return item.title;
44
+ return `${item.title}: ${clampText(excerpt, 260)}`;
45
+ }
@@ -314,7 +314,10 @@ function factQuality(fact) {
314
314
  const extractor = readString(fact.metadata.extractor);
315
315
  const kind = readString(fact.metadata.factKind);
316
316
  const value = readString(fact.metadata.value);
317
+ const authority = readString(fact.metadata.sourceAuthority);
317
318
  return (extractor === 'llm' ? 40 : 0)
319
+ + (extractor === 'repair-promotion' ? 34 : 0)
320
+ + (authority === 'official-vendor' ? 24 : authority === 'vendor' ? 14 : 0)
318
321
  + (value ? 12 : 0)
319
322
  + (kind === 'capability' || kind === 'feature' ? 8 : kind === 'specification' ? 6 : 0)
320
323
  + Math.round(fact.confidence / 10);
@@ -18,6 +18,7 @@ async function repairKnowledgeGapsWithWeb(request, options) {
18
18
  const sourceLimit = Math.max(2, Math.min(5, request.maxSources ?? options.maxSources ?? options.maxIngest ?? 5));
19
19
  const searchLimit = Math.max(1, Math.min(5, options.maxSearches ?? queries.length));
20
20
  const existingCandidates = selectExistingRepairSources(request, options, sourceLimit);
21
+ const acceptedExisting = candidateCanonicalUris(existingCandidates);
21
22
  const searchResults = new Map();
22
23
  const providerIds = new Set();
23
24
  let lastError;
@@ -47,7 +48,7 @@ async function repairKnowledgeGapsWithWeb(request, options) {
47
48
  continue;
48
49
  searchResults.set(canonical, { ...result, searchQuery: query, searchProviderId: response.providerId });
49
50
  }
50
- const partial = mergeRepairCandidates(existingCandidates, selectGapRepairCandidates([...searchResults.values()], existing, options, request, sourceLimit), sourceLimit);
51
+ const partial = mergeRepairCandidates(existingCandidates, selectGapRepairCandidates([...searchResults.values()], acceptedExisting, options, request, sourceLimit), sourceLimit);
51
52
  if (hasEnoughRepairEvidence(partial, options))
52
53
  break;
53
54
  }
@@ -58,7 +59,7 @@ async function repairKnowledgeGapsWithWeb(request, options) {
58
59
  }
59
60
  }
60
61
  const allResults = [...searchResults.values()];
61
- const candidates = mergeRepairCandidates(existingCandidates, selectGapRepairCandidates(allResults, existing, options, request, sourceLimit), sourceLimit);
62
+ const candidates = mergeRepairCandidates(existingCandidates, selectGapRepairCandidates(allResults, acceptedExisting, options, request, sourceLimit), sourceLimit);
62
63
  if (!hasEnoughRepairEvidence(candidates, options)) {
63
64
  return {
64
65
  searched: true,
@@ -228,7 +229,7 @@ function selectExistingRepairSources(request, options, sourceLimit) {
228
229
  const minimumConfidence = Math.max(1, Math.min(100, options.minConfidence ?? 70));
229
230
  const byDomain = new Map();
230
231
  for (const source of request.sources) {
231
- if (source.status !== 'indexed' || isGeneratedOrSyntheticSource(source))
232
+ if ((source.status !== 'indexed' && source.status !== 'pending') || isGeneratedOrSyntheticSource(source))
232
233
  continue;
233
234
  const url = source.sourceUri ?? source.canonicalUri;
234
235
  if (!url)
@@ -251,7 +252,10 @@ function selectExistingRepairSources(request, options, sourceLimit) {
251
252
  ...(snippet ? { snippet } : {}),
252
253
  };
253
254
  const assessment = assessGapRepairSource(result, request.query, request);
254
- if (assessment.confidence < minimumConfidence && !isOfficialOrVendorSource(assessment.reasons))
255
+ const officialOrVendor = isOfficialOrVendorSource(assessment.reasons);
256
+ if (source.status !== 'indexed' && !officialOrVendor)
257
+ continue;
258
+ if (assessment.confidence < minimumConfidence && !officialOrVendor)
255
259
  continue;
256
260
  byDomain.set(domain, {
257
261
  ...result,
@@ -262,6 +266,9 @@ function selectExistingRepairSources(request, options, sourceLimit) {
262
266
  }
263
267
  return [...byDomain.values()].sort(compareRepairCandidates).slice(0, sourceLimit);
264
268
  }
269
+ function candidateCanonicalUris(candidates) {
270
+ return new Set(candidates.map((candidate) => canonicalizeUri(candidate.url)).filter((value) => Boolean(value)));
271
+ }
265
272
  function assessGapRepairSource(result, query, request) {
266
273
  const searchable = [result.title, result.snippet, result.url, result.domain].filter(Boolean).join(' ').toLowerCase();
267
274
  const reasons = [];
@@ -0,0 +1,11 @@
1
+ import type { KnowledgeStore } from '../store.js';
2
+ import type { KnowledgeNodeRecord, KnowledgeRefinementTaskRecord } from '../types.js';
3
+ export interface SelfImprovePromotionContext {
4
+ readonly store: KnowledgeStore;
5
+ readonly enrichSource?: (sourceId: string, options: {
6
+ readonly force?: boolean;
7
+ readonly knowledgeSpaceId?: string;
8
+ }) => Promise<unknown>;
9
+ }
10
+ export declare function promoteRepairSources(context: SelfImprovePromotionContext, spaceId: string, gap: KnowledgeNodeRecord, sourceIds: readonly string[], task: KnowledgeRefinementTaskRecord, deadlineAt: number): Promise<number>;
11
+ //# sourceMappingURL=self-improvement-promotion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"self-improvement-promotion.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/knowledge/semantic/self-improvement-promotion.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAEV,mBAAmB,EACnB,6BAA6B,EAE9B,MAAM,aAAa,CAAC;AAiBrB,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE;QAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC3I;AAED,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,2BAA2B,EACpC,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,mBAAmB,EACxB,SAAS,EAAE,SAAS,MAAM,EAAE,EAC5B,IAAI,EAAE,6BAA6B,EACnC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,CAAC,CAwBjB"}