@pellux/goodvibes-sdk 0.25.20 → 0.26.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.
Files changed (130) hide show
  1. package/dist/_internal/contracts/artifacts/operator-contract.json +5000 -149
  2. package/dist/_internal/contracts/generated/foundation-client-types.d.ts +83 -15
  3. package/dist/_internal/contracts/generated/foundation-client-types.d.ts.map +1 -1
  4. package/dist/_internal/contracts/generated/foundation-metadata.d.ts +2 -2
  5. package/dist/_internal/contracts/generated/foundation-metadata.js +2 -2
  6. package/dist/_internal/contracts/generated/operator-contract.d.ts.map +1 -1
  7. package/dist/_internal/contracts/generated/operator-contract.js +5000 -149
  8. package/dist/_internal/contracts/generated/operator-method-ids.d.ts +1 -1
  9. package/dist/_internal/contracts/generated/operator-method-ids.d.ts.map +1 -1
  10. package/dist/_internal/contracts/generated/operator-method-ids.js +18 -0
  11. package/dist/_internal/daemon/context.d.ts +1 -0
  12. package/dist/_internal/daemon/context.d.ts.map +1 -1
  13. package/dist/_internal/daemon/knowledge-route-types.d.ts +1 -0
  14. package/dist/_internal/daemon/knowledge-route-types.d.ts.map +1 -1
  15. package/dist/_internal/daemon/knowledge-routes.d.ts +1 -1
  16. package/dist/_internal/daemon/knowledge-routes.d.ts.map +1 -1
  17. package/dist/_internal/daemon/knowledge-routes.js +30 -0
  18. package/dist/_internal/daemon/operator.d.ts +1 -1
  19. package/dist/_internal/daemon/operator.d.ts.map +1 -1
  20. package/dist/_internal/daemon/operator.js +2 -0
  21. package/dist/_internal/platform/cloudflare/hostnames.d.ts +14 -0
  22. package/dist/_internal/platform/cloudflare/hostnames.d.ts.map +1 -0
  23. package/dist/_internal/platform/cloudflare/hostnames.js +47 -0
  24. package/dist/_internal/platform/cloudflare/manager.d.ts.map +1 -1
  25. package/dist/_internal/platform/cloudflare/manager.js +18 -5
  26. package/dist/_internal/platform/cloudflare/resources.d.ts +1 -0
  27. package/dist/_internal/platform/cloudflare/resources.d.ts.map +1 -1
  28. package/dist/_internal/platform/cloudflare/resources.js +31 -3
  29. package/dist/_internal/platform/cloudflare/utils.d.ts +5 -0
  30. package/dist/_internal/platform/cloudflare/utils.d.ts.map +1 -1
  31. package/dist/_internal/platform/cloudflare/utils.js +33 -0
  32. package/dist/_internal/platform/control-plane/method-catalog-control-automation.js +7 -7
  33. package/dist/_internal/platform/control-plane/method-catalog-control-core.d.ts.map +1 -1
  34. package/dist/_internal/platform/control-plane/method-catalog-control-core.js +4 -9
  35. package/dist/_internal/platform/control-plane/method-catalog-homegraph.d.ts +3 -0
  36. package/dist/_internal/platform/control-plane/method-catalog-homegraph.d.ts.map +1 -0
  37. package/dist/_internal/platform/control-plane/method-catalog-homegraph.js +223 -0
  38. package/dist/_internal/platform/control-plane/method-catalog-knowledge.d.ts.map +1 -1
  39. package/dist/_internal/platform/control-plane/method-catalog-knowledge.js +23 -1
  40. package/dist/_internal/platform/control-plane/operator-contract-schemas-knowledge.d.ts +15 -1
  41. package/dist/_internal/platform/control-plane/operator-contract-schemas-knowledge.d.ts.map +1 -1
  42. package/dist/_internal/platform/control-plane/operator-contract-schemas-knowledge.js +118 -0
  43. package/dist/_internal/platform/daemon/facade-composition.d.ts.map +1 -1
  44. package/dist/_internal/platform/daemon/facade-composition.js +2 -0
  45. package/dist/_internal/platform/daemon/facade-types.d.ts +2 -1
  46. package/dist/_internal/platform/daemon/facade-types.d.ts.map +1 -1
  47. package/dist/_internal/platform/daemon/http/home-graph-routes.d.ts +18 -0
  48. package/dist/_internal/platform/daemon/http/home-graph-routes.d.ts.map +1 -0
  49. package/dist/_internal/platform/daemon/http/home-graph-routes.js +108 -0
  50. package/dist/_internal/platform/daemon/http/router-route-contexts.d.ts.map +1 -1
  51. package/dist/_internal/platform/daemon/http/router-route-contexts.js +1 -0
  52. package/dist/_internal/platform/daemon/http/router.d.ts +4 -1
  53. package/dist/_internal/platform/daemon/http/router.d.ts.map +1 -1
  54. package/dist/_internal/platform/daemon/http/router.js +16 -0
  55. package/dist/_internal/platform/daemon/types.d.ts +2 -1
  56. package/dist/_internal/platform/daemon/types.d.ts.map +1 -1
  57. package/dist/_internal/platform/knowledge/browser-history/discover.d.ts +3 -0
  58. package/dist/_internal/platform/knowledge/browser-history/discover.d.ts.map +1 -0
  59. package/dist/_internal/platform/knowledge/browser-history/discover.js +88 -0
  60. package/dist/_internal/platform/knowledge/browser-history/index.d.ts +7 -0
  61. package/dist/_internal/platform/knowledge/browser-history/index.d.ts.map +1 -0
  62. package/dist/_internal/platform/knowledge/browser-history/index.js +4 -0
  63. package/dist/_internal/platform/knowledge/browser-history/ingest.d.ts +12 -0
  64. package/dist/_internal/platform/knowledge/browser-history/ingest.d.ts.map +1 -0
  65. package/dist/_internal/platform/knowledge/browser-history/ingest.js +275 -0
  66. package/dist/_internal/platform/knowledge/browser-history/locked-db.d.ts +7 -0
  67. package/dist/_internal/platform/knowledge/browser-history/locked-db.d.ts.map +1 -0
  68. package/dist/_internal/platform/knowledge/browser-history/locked-db.js +38 -0
  69. package/dist/_internal/platform/knowledge/browser-history/paths.d.ts +15 -0
  70. package/dist/_internal/platform/knowledge/browser-history/paths.d.ts.map +1 -0
  71. package/dist/_internal/platform/knowledge/browser-history/paths.js +125 -0
  72. package/dist/_internal/platform/knowledge/browser-history/readers.d.ts +8 -0
  73. package/dist/_internal/platform/knowledge/browser-history/readers.d.ts.map +1 -0
  74. package/dist/_internal/platform/knowledge/browser-history/readers.js +374 -0
  75. package/dist/_internal/platform/knowledge/browser-history/types.d.ts +50 -0
  76. package/dist/_internal/platform/knowledge/browser-history/types.d.ts.map +1 -0
  77. package/dist/_internal/platform/knowledge/browser-history/types.js +1 -0
  78. package/dist/_internal/platform/knowledge/consolidation.js +2 -0
  79. package/dist/_internal/platform/knowledge/extractors.d.ts.map +1 -1
  80. package/dist/_internal/platform/knowledge/extractors.js +31 -0
  81. package/dist/_internal/platform/knowledge/graphql-schema.d.ts +1 -1
  82. package/dist/_internal/platform/knowledge/graphql-schema.d.ts.map +1 -1
  83. package/dist/_internal/platform/knowledge/graphql-schema.js +5 -5
  84. package/dist/_internal/platform/knowledge/graphql.d.ts.map +1 -1
  85. package/dist/_internal/platform/knowledge/graphql.js +16 -5
  86. package/dist/_internal/platform/knowledge/home-graph/helpers.d.ts +46 -0
  87. package/dist/_internal/platform/knowledge/home-graph/helpers.d.ts.map +1 -0
  88. package/dist/_internal/platform/knowledge/home-graph/helpers.js +230 -0
  89. package/dist/_internal/platform/knowledge/home-graph/index.d.ts +4 -0
  90. package/dist/_internal/platform/knowledge/home-graph/index.d.ts.map +1 -0
  91. package/dist/_internal/platform/knowledge/home-graph/index.js +2 -0
  92. package/dist/_internal/platform/knowledge/home-graph/rendering.d.ts +25 -0
  93. package/dist/_internal/platform/knowledge/home-graph/rendering.d.ts.map +1 -0
  94. package/dist/_internal/platform/knowledge/home-graph/rendering.js +139 -0
  95. package/dist/_internal/platform/knowledge/home-graph/service.d.ts +82 -0
  96. package/dist/_internal/platform/knowledge/home-graph/service.d.ts.map +1 -0
  97. package/dist/_internal/platform/knowledge/home-graph/service.js +654 -0
  98. package/dist/_internal/platform/knowledge/home-graph/state.d.ts +24 -0
  99. package/dist/_internal/platform/knowledge/home-graph/state.d.ts.map +1 -0
  100. package/dist/_internal/platform/knowledge/home-graph/state.js +96 -0
  101. package/dist/_internal/platform/knowledge/home-graph/types.d.ts +206 -0
  102. package/dist/_internal/platform/knowledge/home-graph/types.d.ts.map +1 -0
  103. package/dist/_internal/platform/knowledge/home-graph/types.js +33 -0
  104. package/dist/_internal/platform/knowledge/html-readability.d.ts +13 -0
  105. package/dist/_internal/platform/knowledge/html-readability.d.ts.map +1 -0
  106. package/dist/_internal/platform/knowledge/html-readability.js +66 -0
  107. package/dist/_internal/platform/knowledge/index.d.ts +6 -0
  108. package/dist/_internal/platform/knowledge/index.d.ts.map +1 -1
  109. package/dist/_internal/platform/knowledge/index.js +3 -0
  110. package/dist/_internal/platform/knowledge/internal.d.ts.map +1 -1
  111. package/dist/_internal/platform/knowledge/internal.js +1 -0
  112. package/dist/_internal/platform/knowledge/knowledge-api.d.ts +2 -0
  113. package/dist/_internal/platform/knowledge/knowledge-api.d.ts.map +1 -1
  114. package/dist/_internal/platform/knowledge/knowledge-api.js +1 -0
  115. package/dist/_internal/platform/knowledge/lint.js +1 -0
  116. package/dist/_internal/platform/knowledge/scheduling.d.ts.map +1 -1
  117. package/dist/_internal/platform/knowledge/scheduling.js +1 -0
  118. package/dist/_internal/platform/knowledge/service.d.ts +4 -0
  119. package/dist/_internal/platform/knowledge/service.d.ts.map +1 -1
  120. package/dist/_internal/platform/knowledge/service.js +15 -0
  121. package/dist/_internal/platform/knowledge/spaces.d.ts +19 -0
  122. package/dist/_internal/platform/knowledge/spaces.d.ts.map +1 -0
  123. package/dist/_internal/platform/knowledge/spaces.js +54 -0
  124. package/dist/_internal/platform/knowledge/types.d.ts +3 -3
  125. package/dist/_internal/platform/knowledge/types.d.ts.map +1 -1
  126. package/dist/_internal/platform/runtime/services.d.ts +2 -1
  127. package/dist/_internal/platform/runtime/services.d.ts.map +1 -1
  128. package/dist/_internal/platform/runtime/services.js +3 -1
  129. package/dist/_internal/platform/version.js +1 -1
  130. package/package.json +4 -1
@@ -0,0 +1,46 @@
1
+ import type { KnowledgeEdgeRecord, KnowledgeNodeKind, KnowledgeNodeRecord, KnowledgeReferenceKind, KnowledgeIssueUpsertInput, KnowledgeSourceRecord } from '../types.js';
2
+ import type { HomeGraphKnowledgeTarget, HomeGraphNodeKind, HomeGraphObjectInput, HomeGraphObjectKind, HomeGraphSearchResult, HomeGraphSpaceInput } from './types.js';
3
+ export declare const HOME_GRAPH_CONNECTOR_ID = "homeassistant";
4
+ export declare function resolveHomeGraphSpace(input?: HomeGraphSpaceInput): {
5
+ readonly spaceId: string;
6
+ readonly installationId: string;
7
+ };
8
+ export declare function nodeKindForHomeGraphObject(kind: HomeGraphObjectKind | HomeGraphNodeKind): HomeGraphNodeKind;
9
+ export declare function objectKindForNodeKind(kind: HomeGraphNodeKind): HomeGraphObjectKind;
10
+ export declare function homeGraphSourceId(spaceId: string, kind: string, value: string): string;
11
+ export declare function homeGraphNodeId(spaceId: string, kind: string, objectId: string): string;
12
+ export declare function homeGraphEdgeId(spaceId: string, fromId: string, relation: string, toId: string): string;
13
+ export declare function homeGraphIssueId(spaceId: string, code: string, subjectId: string): string;
14
+ export declare function namespacedCanonicalUri(spaceId: string, kind: string, value: string): string;
15
+ export declare function buildHomeGraphMetadata(spaceId: string, installationId: string, metadata?: Record<string, unknown>): Record<string, unknown>;
16
+ export declare function buildHomeGraphNodeInput(spaceId: string, installationId: string, kind: HomeGraphObjectKind | HomeGraphNodeKind, object: HomeGraphObjectInput): {
17
+ readonly id: string;
18
+ readonly kind: KnowledgeNodeKind;
19
+ readonly slug: string;
20
+ readonly title: string;
21
+ readonly summary?: string;
22
+ readonly aliases: readonly string[];
23
+ readonly metadata: Record<string, unknown>;
24
+ };
25
+ export declare function edgeIsActive(edge: KnowledgeEdgeRecord): boolean;
26
+ export declare function belongsToSpace(record: {
27
+ readonly metadata?: Record<string, unknown>;
28
+ } | undefined | null, spaceId: string): boolean;
29
+ export declare function scoreHomeGraphResults(query: string, sources: readonly KnowledgeSourceRecord[], nodes: readonly KnowledgeNodeRecord[], extractionBySourceId: (sourceId: string) => {
30
+ readonly summary?: string;
31
+ readonly excerpt?: string;
32
+ readonly sections: readonly string[];
33
+ } | null, limit: number): HomeGraphSearchResult[];
34
+ export declare function targetToReference(target: HomeGraphKnowledgeTarget): {
35
+ readonly kind: KnowledgeReferenceKind;
36
+ readonly id: string;
37
+ readonly nodeKind?: HomeGraphNodeKind;
38
+ };
39
+ export declare function buildIssue(spaceId: string, installationId: string, code: string, message: string, subject: {
40
+ readonly nodeId?: string;
41
+ readonly sourceId?: string;
42
+ }): KnowledgeIssueUpsertInput;
43
+ export declare function stableHash(value: string, length?: number): string;
44
+ export declare function uniqueStrings(values: Iterable<string | undefined | null>): string[];
45
+ export declare function readRecord(value: unknown): Record<string, unknown>;
46
+ //# sourceMappingURL=helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/knowledge/home-graph/helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,230 @@
1
+ import { createHash } from 'node:crypto';
2
+ import { getKnowledgeSpaceId, homeAssistantKnowledgeSpaceId, knowledgeSpaceMetadata, normalizeHomeAssistantInstallationId, normalizeKnowledgeSpaceId, normalizeSpaceComponent, } from '../spaces.js';
3
+ export const HOME_GRAPH_CONNECTOR_ID = 'homeassistant';
4
+ const NODE_KIND_BY_OBJECT = {
5
+ home: 'ha_home',
6
+ entity: 'ha_entity',
7
+ device: 'ha_device',
8
+ area: 'ha_area',
9
+ automation: 'ha_automation',
10
+ script: 'ha_script',
11
+ scene: 'ha_scene',
12
+ label: 'ha_label',
13
+ integration: 'ha_integration',
14
+ room: 'ha_room',
15
+ device_passport: 'ha_device_passport',
16
+ maintenance_item: 'ha_maintenance_item',
17
+ troubleshooting_case: 'ha_troubleshooting_case',
18
+ purchase: 'ha_purchase',
19
+ network_node: 'ha_network_node',
20
+ };
21
+ const OBJECT_KIND_BY_NODE = Object.fromEntries(Object.entries(NODE_KIND_BY_OBJECT).map(([objectKind, nodeKind]) => [nodeKind, objectKind]));
22
+ export function resolveHomeGraphSpace(input = {}) {
23
+ const installationId = normalizeHomeAssistantInstallationId(input.installationId);
24
+ const spaceId = input.knowledgeSpaceId
25
+ ? normalizeKnowledgeSpaceId(input.knowledgeSpaceId)
26
+ : homeAssistantKnowledgeSpaceId(installationId);
27
+ return {
28
+ spaceId,
29
+ installationId: spaceId.startsWith('homeassistant:')
30
+ ? normalizeHomeAssistantInstallationId(spaceId.slice('homeassistant:'.length))
31
+ : installationId,
32
+ };
33
+ }
34
+ export function nodeKindForHomeGraphObject(kind) {
35
+ if (kind.startsWith('ha_'))
36
+ return kind;
37
+ return NODE_KIND_BY_OBJECT[kind] ?? 'ha_entity';
38
+ }
39
+ export function objectKindForNodeKind(kind) {
40
+ return OBJECT_KIND_BY_NODE[kind] ?? 'entity';
41
+ }
42
+ export function homeGraphSourceId(spaceId, kind, value) {
43
+ return `hg-src-${stableHash(`${spaceId}:${kind}:${value}`)}`;
44
+ }
45
+ export function homeGraphNodeId(spaceId, kind, objectId) {
46
+ return `hg-node-${stableHash(`${spaceId}:${kind}:${objectId}`)}`;
47
+ }
48
+ export function homeGraphEdgeId(spaceId, fromId, relation, toId) {
49
+ return `hg-edge-${stableHash(`${spaceId}:${fromId}:${relation}:${toId}`)}`;
50
+ }
51
+ export function homeGraphIssueId(spaceId, code, subjectId) {
52
+ return `hg-issue-${stableHash(`${spaceId}:${code}:${subjectId}`)}`;
53
+ }
54
+ export function namespacedCanonicalUri(spaceId, kind, value) {
55
+ return `homegraph://${encodeURIComponent(spaceId)}/${kind}/${stableHash(value, 16)}`;
56
+ }
57
+ export function buildHomeGraphMetadata(spaceId, installationId, metadata = {}) {
58
+ return knowledgeSpaceMetadata(spaceId, {
59
+ ...metadata,
60
+ homeGraph: true,
61
+ homeAssistant: {
62
+ ...readRecord(metadata.homeAssistant),
63
+ installationId,
64
+ },
65
+ });
66
+ }
67
+ export function buildHomeGraphNodeInput(spaceId, installationId, kind, object) {
68
+ const nodeKind = nodeKindForHomeGraphObject(kind);
69
+ const objectKind = objectKindForNodeKind(nodeKind);
70
+ const objectId = homeGraphObjectId(nodeKind, object);
71
+ const title = object.title ?? object.name ?? object.entityId ?? object.id;
72
+ const aliases = uniqueStrings([
73
+ ...(object.aliases ?? []),
74
+ ...(object.labels ?? []),
75
+ object.entityId,
76
+ object.name,
77
+ ]);
78
+ return {
79
+ id: homeGraphNodeId(spaceId, nodeKind, objectId),
80
+ kind: nodeKind,
81
+ slug: `${normalizeSpaceComponent(spaceId)}-${nodeKind}-${normalizeSpaceComponent(objectId)}`,
82
+ title,
83
+ ...(buildObjectSummary(object) ? { summary: buildObjectSummary(object) } : {}),
84
+ aliases,
85
+ metadata: buildHomeGraphMetadata(spaceId, installationId, {
86
+ ...(object.metadata ?? {}),
87
+ homeAssistant: {
88
+ installationId,
89
+ objectKind,
90
+ objectId,
91
+ ...(object.entityId ? { entityId: object.entityId } : {}),
92
+ ...(object.deviceId ? { deviceId: object.deviceId } : {}),
93
+ ...(object.areaId ? { areaId: object.areaId } : {}),
94
+ ...(object.integrationId ? { integrationId: object.integrationId } : {}),
95
+ },
96
+ labels: object.labels ? [...object.labels] : [],
97
+ ...(object.manufacturer ? { manufacturer: object.manufacturer } : {}),
98
+ ...(object.model ? { model: object.model } : {}),
99
+ }),
100
+ };
101
+ }
102
+ function homeGraphObjectId(kind, object) {
103
+ switch (kind) {
104
+ case 'ha_entity':
105
+ return object.entityId ?? object.id;
106
+ case 'ha_device':
107
+ case 'ha_device_passport':
108
+ return object.deviceId ?? object.id;
109
+ case 'ha_area':
110
+ case 'ha_room':
111
+ return object.areaId ?? object.id;
112
+ case 'ha_integration':
113
+ return object.integrationId ?? object.id;
114
+ default:
115
+ return object.id;
116
+ }
117
+ }
118
+ export function edgeIsActive(edge) {
119
+ return edge.metadata.linkStatus !== 'unlinked';
120
+ }
121
+ export function belongsToSpace(record, spaceId) {
122
+ return record ? getKnowledgeSpaceId(record) === normalizeKnowledgeSpaceId(spaceId) : false;
123
+ }
124
+ export function scoreHomeGraphResults(query, sources, nodes, extractionBySourceId, limit) {
125
+ const tokens = tokenize(query);
126
+ if (tokens.length === 0)
127
+ return [];
128
+ const sourceResults = sources.map((source) => {
129
+ const extraction = extractionBySourceId(source.id);
130
+ const haystack = [
131
+ source.title ?? '',
132
+ source.summary ?? '',
133
+ source.description ?? '',
134
+ source.sourceUri ?? '',
135
+ source.tags.join(' '),
136
+ extraction?.summary ?? '',
137
+ extraction?.excerpt ?? '',
138
+ extraction?.sections.join(' ') ?? '',
139
+ ].join(' ').toLowerCase();
140
+ const baseScore = scoreHaystack(haystack, tokens);
141
+ return {
142
+ kind: 'source',
143
+ id: source.id,
144
+ score: baseScore > 0 ? baseScore + (extraction ? 8 : 0) : 0,
145
+ title: source.title ?? source.sourceUri ?? source.id,
146
+ summary: extraction?.summary ?? source.summary,
147
+ source,
148
+ };
149
+ });
150
+ const nodeResults = nodes.map((node) => {
151
+ const haystack = [
152
+ node.title,
153
+ node.summary ?? '',
154
+ node.aliases.join(' '),
155
+ JSON.stringify(node.metadata),
156
+ ].join(' ').toLowerCase();
157
+ const baseScore = scoreHaystack(haystack, tokens);
158
+ return {
159
+ kind: 'node',
160
+ id: node.id,
161
+ score: baseScore > 0 ? baseScore + Math.round(node.confidence / 20) : 0,
162
+ title: node.title,
163
+ summary: node.summary,
164
+ node,
165
+ };
166
+ });
167
+ return [...sourceResults, ...nodeResults]
168
+ .filter((entry) => entry.score > 0)
169
+ .sort((a, b) => b.score - a.score || a.id.localeCompare(b.id))
170
+ .slice(0, Math.max(1, limit));
171
+ }
172
+ export function targetToReference(target) {
173
+ if (target.kind === 'source')
174
+ return { kind: 'source', id: target.id };
175
+ if (target.kind === 'node')
176
+ return { kind: 'node', id: target.id };
177
+ return {
178
+ kind: 'node',
179
+ id: target.id,
180
+ nodeKind: nodeKindForHomeGraphObject(target.kind),
181
+ };
182
+ }
183
+ export function buildIssue(spaceId, installationId, code, message, subject) {
184
+ const subjectId = subject.nodeId ?? subject.sourceId ?? message;
185
+ return {
186
+ id: homeGraphIssueId(spaceId, code, subjectId),
187
+ severity: 'warning',
188
+ code,
189
+ message,
190
+ ...subject,
191
+ metadata: buildHomeGraphMetadata(spaceId, installationId, {
192
+ namespace: `homegraph:${spaceId}:quality`,
193
+ subjectId,
194
+ }),
195
+ };
196
+ }
197
+ export function stableHash(value, length = 24) {
198
+ return createHash('sha256').update(value).digest('hex').slice(0, length);
199
+ }
200
+ export function uniqueStrings(values) {
201
+ const seen = new Set();
202
+ const result = [];
203
+ for (const value of values) {
204
+ const trimmed = typeof value === 'string' ? value.trim() : '';
205
+ if (!trimmed || seen.has(trimmed))
206
+ continue;
207
+ seen.add(trimmed);
208
+ result.push(trimmed);
209
+ }
210
+ return result;
211
+ }
212
+ export function readRecord(value) {
213
+ return value && typeof value === 'object' && !Array.isArray(value) ? value : {};
214
+ }
215
+ function buildObjectSummary(object) {
216
+ const parts = uniqueStrings([
217
+ object.manufacturer,
218
+ object.model,
219
+ object.areaId ? `area ${object.areaId}` : undefined,
220
+ object.deviceId ? `device ${object.deviceId}` : undefined,
221
+ object.integrationId ? `integration ${object.integrationId}` : undefined,
222
+ ]);
223
+ return parts.length > 0 ? parts.join(' - ') : undefined;
224
+ }
225
+ function tokenize(value) {
226
+ return value.toLowerCase().split(/[^a-z0-9_.:-]+/).map((entry) => entry.trim()).filter(Boolean);
227
+ }
228
+ function scoreHaystack(haystack, tokens) {
229
+ return tokens.reduce((score, token) => score + (haystack.includes(token) ? 10 : 0), 0);
230
+ }
@@ -0,0 +1,4 @@
1
+ export { HomeGraphService } from './service.js';
2
+ export { HOME_GRAPH_NODE_KINDS, HOME_GRAPH_RELATIONS, } from './types.js';
3
+ export type { HomeGraphAskInput, HomeGraphAskResult, HomeGraphDevicePassportResult, HomeGraphExport, HomeGraphIngestArtifactInput, HomeGraphIngestNoteInput, HomeGraphIngestResult, HomeGraphIngestUrlInput, HomeGraphKnowledgeTarget, HomeGraphLinkInput, HomeGraphLinkResult, HomeGraphNodeKind, HomeGraphObjectInput, HomeGraphObjectKind, HomeGraphProjectionInput, HomeGraphProjectionResult, HomeGraphRelation, HomeGraphReviewInput, HomeGraphSnapshotInput, HomeGraphStatus, HomeGraphSyncResult, } from './types.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/knowledge/home-graph/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EACL,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,iBAAiB,EACjB,kBAAkB,EAClB,6BAA6B,EAC7B,eAAe,EACf,4BAA4B,EAC5B,wBAAwB,EACxB,qBAAqB,EACrB,uBAAuB,EACvB,wBAAwB,EACxB,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,EACzB,iBAAiB,EACjB,oBAAoB,EACpB,sBAAsB,EACtB,eAAe,EACf,mBAAmB,GACpB,MAAM,YAAY,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { HomeGraphService } from './service.js';
2
+ export { HOME_GRAPH_NODE_KINDS, HOME_GRAPH_RELATIONS, } from './types.js';
@@ -0,0 +1,25 @@
1
+ import type { KnowledgeEdgeRecord, KnowledgeIssueRecord, KnowledgeNodeRecord, KnowledgeSourceRecord } from '../types.js';
2
+ export interface HomeGraphRenderState {
3
+ readonly spaceId: string;
4
+ readonly title: string;
5
+ readonly sources: readonly KnowledgeSourceRecord[];
6
+ readonly nodes: readonly KnowledgeNodeRecord[];
7
+ readonly edges: readonly KnowledgeEdgeRecord[];
8
+ readonly issues: readonly KnowledgeIssueRecord[];
9
+ }
10
+ export declare function renderRoomPage(state: HomeGraphRenderState, areaId?: string): string;
11
+ export declare function renderDevicePassportPage(input: {
12
+ readonly spaceId: string;
13
+ readonly device: KnowledgeNodeRecord;
14
+ readonly entities: readonly KnowledgeNodeRecord[];
15
+ readonly sources: readonly KnowledgeSourceRecord[];
16
+ readonly issues: readonly KnowledgeIssueRecord[];
17
+ readonly missingFields: readonly string[];
18
+ }): string;
19
+ export declare function renderPacketPage(state: HomeGraphRenderState, options?: {
20
+ readonly packetKind?: string;
21
+ readonly sharingProfile?: string;
22
+ readonly includeFields?: readonly string[];
23
+ readonly excludeFields?: readonly string[];
24
+ }): string;
25
+ //# sourceMappingURL=rendering.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rendering.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/knowledge/home-graph/rendering.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,EACtB,MAAM,aAAa,CAAC;AAGrB,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,SAAS,qBAAqB,EAAE,CAAC;IACnD,QAAQ,CAAC,KAAK,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAC/C,QAAQ,CAAC,KAAK,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAC/C,QAAQ,CAAC,MAAM,EAAE,SAAS,oBAAoB,EAAE,CAAC;CAClD;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,oBAAoB,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CA+BnF;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE;IAC9C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAClD,QAAQ,CAAC,OAAO,EAAE,SAAS,qBAAqB,EAAE,CAAC;IACnD,QAAQ,CAAC,MAAM,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACjD,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3C,GAAG,MAAM,CAoBT;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,oBAAoB,EAAE,OAAO,GAAE;IACrE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACvC,GAAG,MAAM,CAkBd"}
@@ -0,0 +1,139 @@
1
+ import { edgeIsActive } from './helpers.js';
2
+ export function renderRoomPage(state, areaId) {
3
+ const area = areaId
4
+ ? findNodeByHaId(state.nodes, 'ha_area', areaId) ?? findNodeByHaId(state.nodes, 'ha_room', areaId)
5
+ : undefined;
6
+ const title = area?.title ?? state.title;
7
+ const areaNodeId = area?.id;
8
+ const entities = state.nodes.filter((node) => (node.kind === 'ha_entity'
9
+ && (!areaNodeId || hasActiveEdge(state.edges, node.id, 'located_in', areaNodeId))));
10
+ const devices = state.nodes.filter((node) => (node.kind === 'ha_device'
11
+ && (!areaNodeId || hasActiveEdge(state.edges, node.id, 'located_in', areaNodeId))));
12
+ const automations = state.nodes.filter((node) => node.kind === 'ha_automation');
13
+ const scenes = state.nodes.filter((node) => node.kind === 'ha_scene');
14
+ const scripts = state.nodes.filter((node) => node.kind === 'ha_script');
15
+ const sources = relatedSources(state.sources, state.edges, areaNodeId);
16
+ return [
17
+ `# ${title}`,
18
+ '',
19
+ `Knowledge space: \`${state.spaceId}\``,
20
+ '',
21
+ renderNodeList('Devices', devices),
22
+ renderNodeList('Entities', entities),
23
+ renderNodeList('Automations', automations),
24
+ renderNodeList('Scenes', scenes),
25
+ renderNodeList('Scripts', scripts),
26
+ renderSourceList('Linked Sources', sources),
27
+ renderIssueList('Open Issues', state.issues.filter((issue) => issue.status === 'open')),
28
+ ].filter(Boolean).join('\n');
29
+ }
30
+ export function renderDevicePassportPage(input) {
31
+ return [
32
+ `# ${input.device.title}`,
33
+ '',
34
+ `Knowledge space: \`${input.spaceId}\``,
35
+ '',
36
+ '## Profile',
37
+ '',
38
+ renderMetadataField('Manufacturer', input.device.metadata.manufacturer),
39
+ renderMetadataField('Model', input.device.metadata.model),
40
+ renderMetadataField('Area', readHa(input.device, 'areaId')),
41
+ renderMetadataField('Device id', readHa(input.device, 'deviceId')),
42
+ '',
43
+ renderNodeList('Entities', input.entities),
44
+ renderSourceList('Sources', input.sources),
45
+ renderIssueList('Issues', input.issues),
46
+ input.missingFields.length > 0
47
+ ? ['## Missing Fields', '', ...input.missingFields.map((field) => `- ${field}`), ''].join('\n')
48
+ : '',
49
+ ].filter(Boolean).join('\n');
50
+ }
51
+ export function renderPacketPage(state, options = {}) {
52
+ const profile = options.sharingProfile ?? 'default';
53
+ const title = options.packetKind ? titleCase(options.packetKind) : state.title;
54
+ const excluded = new Set((options.excludeFields ?? []).map((field) => field.toLowerCase()));
55
+ return [
56
+ `# ${title}`,
57
+ '',
58
+ `Sharing profile: \`${profile}\``,
59
+ `Knowledge space: \`${state.spaceId}\``,
60
+ '',
61
+ excluded.has('devices') ? '' : renderNodeList('Devices', state.nodes.filter((node) => node.kind === 'ha_device')),
62
+ excluded.has('rooms') ? '' : renderNodeList('Rooms', state.nodes.filter((node) => node.kind === 'ha_area' || node.kind === 'ha_room')),
63
+ excluded.has('maintenance') ? '' : renderNodeList('Maintenance', state.nodes.filter((node) => node.kind === 'ha_maintenance_item')),
64
+ excluded.has('troubleshooting') ? '' : renderNodeList('Troubleshooting', state.nodes.filter((node) => node.kind === 'ha_troubleshooting_case')),
65
+ excluded.has('network') ? '' : renderNodeList('Network', state.nodes.filter((node) => node.kind === 'ha_network_node')),
66
+ excluded.has('sources') ? '' : renderSourceList('Sources', state.sources),
67
+ excluded.has('issues') ? '' : renderIssueList('Open Issues', state.issues.filter((issue) => issue.status === 'open')),
68
+ ].filter(Boolean).join('\n');
69
+ }
70
+ function renderNodeList(title, nodes) {
71
+ if (nodes.length === 0)
72
+ return '';
73
+ return [
74
+ `## ${title}`,
75
+ '',
76
+ ...nodes.slice(0, 100).map((node) => `- ${node.title}${node.summary ? ` - ${node.summary}` : ''}`),
77
+ '',
78
+ ].join('\n');
79
+ }
80
+ function renderSourceList(title, sources) {
81
+ if (sources.length === 0)
82
+ return '';
83
+ return [
84
+ `## ${title}`,
85
+ '',
86
+ ...sources.slice(0, 100).map((source) => {
87
+ const label = source.title ?? source.sourceUri ?? source.id;
88
+ return `- ${label}${source.sourceUri ? ` (${source.sourceUri})` : ''}`;
89
+ }),
90
+ '',
91
+ ].join('\n');
92
+ }
93
+ function renderIssueList(title, issues) {
94
+ if (issues.length === 0)
95
+ return '';
96
+ return [
97
+ `## ${title}`,
98
+ '',
99
+ ...issues.slice(0, 100).map((issue) => `- ${issue.severity}: ${issue.message}`),
100
+ '',
101
+ ].join('\n');
102
+ }
103
+ function renderMetadataField(label, value) {
104
+ return typeof value === 'string' && value.trim().length > 0 ? `- ${label}: ${value.trim()}` : '';
105
+ }
106
+ function relatedSources(sources, edges, nodeId) {
107
+ if (!nodeId)
108
+ return [...sources];
109
+ const sourceIds = new Set(edges.filter((edge) => (edgeIsActive(edge)
110
+ && edge.fromKind === 'source'
111
+ && edge.toKind === 'node'
112
+ && edge.toId === nodeId)).map((edge) => edge.fromId));
113
+ return sources.filter((source) => sourceIds.has(source.id));
114
+ }
115
+ function hasActiveEdge(edges, fromId, relation, toId) {
116
+ return edges.some((edge) => (edgeIsActive(edge)
117
+ && edge.fromKind === 'node'
118
+ && edge.fromId === fromId
119
+ && edge.toKind === 'node'
120
+ && edge.toId === toId
121
+ && edge.relation === relation));
122
+ }
123
+ function findNodeByHaId(nodes, kind, id) {
124
+ return nodes.find((node) => node.kind === kind && (readHa(node, 'objectId') === id
125
+ || readHa(node, 'areaId') === id
126
+ || node.id === id));
127
+ }
128
+ function readHa(node, key) {
129
+ const homeAssistant = node.metadata.homeAssistant;
130
+ if (!homeAssistant || typeof homeAssistant !== 'object' || Array.isArray(homeAssistant))
131
+ return undefined;
132
+ const value = homeAssistant[key];
133
+ return typeof value === 'string' ? value : undefined;
134
+ }
135
+ function titleCase(value) {
136
+ return value
137
+ .replace(/[-_]+/g, ' ')
138
+ .replace(/\b\w/g, (match) => match.toUpperCase());
139
+ }
@@ -0,0 +1,82 @@
1
+ import type { ArtifactStore } from '../../artifacts/index.js';
2
+ import type { KnowledgeStore } from '../store.js';
3
+ import type { KnowledgeEdgeRecord, KnowledgeIssueRecord, KnowledgeNodeRecord, KnowledgeSourceRecord } from '../types.js';
4
+ import type { HomeGraphAskInput, HomeGraphAskResult, HomeGraphDevicePassportResult, HomeGraphExport, HomeGraphIngestArtifactInput, HomeGraphIngestNoteInput, HomeGraphIngestResult, HomeGraphIngestUrlInput, HomeGraphLinkInput, HomeGraphLinkResult, HomeGraphProjectionInput, HomeGraphProjectionResult, HomeGraphReviewInput, HomeGraphSpaceInput, HomeGraphSnapshotInput, HomeGraphStatus, HomeGraphSyncResult } from './types.js';
5
+ export declare class HomeGraphService {
6
+ private readonly store;
7
+ private readonly artifactStore;
8
+ constructor(store: KnowledgeStore, artifactStore: ArtifactStore);
9
+ status(input?: {
10
+ readonly installationId?: string;
11
+ readonly knowledgeSpaceId?: string;
12
+ }): Promise<HomeGraphStatus>;
13
+ syncSnapshot(input: HomeGraphSnapshotInput): Promise<HomeGraphSyncResult>;
14
+ ingestUrl(input: HomeGraphIngestUrlInput): Promise<HomeGraphIngestResult>;
15
+ ingestNote(input: HomeGraphIngestNoteInput): Promise<HomeGraphIngestResult>;
16
+ ingestArtifact(input: HomeGraphIngestArtifactInput): Promise<HomeGraphIngestResult>;
17
+ linkKnowledge(input: HomeGraphLinkInput): Promise<HomeGraphLinkResult>;
18
+ unlinkKnowledge(input: HomeGraphLinkInput): Promise<HomeGraphLinkResult>;
19
+ ask(input: HomeGraphAskInput): Promise<HomeGraphAskResult>;
20
+ refreshDevicePassport(input: HomeGraphProjectionInput): Promise<HomeGraphDevicePassportResult>;
21
+ generateRoomPage(input: HomeGraphProjectionInput): Promise<HomeGraphProjectionResult>;
22
+ generatePacket(input: HomeGraphProjectionInput): Promise<HomeGraphProjectionResult>;
23
+ listIssues(input: HomeGraphSpaceInput & {
24
+ readonly status?: string;
25
+ readonly severity?: string;
26
+ readonly code?: string;
27
+ readonly limit?: number;
28
+ }): Promise<{
29
+ readonly ok: true;
30
+ readonly spaceId: string;
31
+ readonly issues: readonly KnowledgeIssueRecord[];
32
+ }>;
33
+ reviewFact(input: HomeGraphReviewInput): Promise<{
34
+ readonly ok: true;
35
+ readonly spaceId: string;
36
+ readonly issue?: KnowledgeIssueRecord;
37
+ readonly node?: KnowledgeNodeRecord;
38
+ readonly source?: KnowledgeSourceRecord;
39
+ }>;
40
+ listSources(input?: HomeGraphSpaceInput & {
41
+ readonly limit?: number;
42
+ }): Promise<{
43
+ readonly ok: true;
44
+ readonly spaceId: string;
45
+ readonly sources: readonly KnowledgeSourceRecord[];
46
+ }>;
47
+ browse(input?: HomeGraphSpaceInput & {
48
+ readonly limit?: number;
49
+ }): Promise<{
50
+ readonly ok: true;
51
+ readonly spaceId: string;
52
+ readonly nodes: readonly KnowledgeNodeRecord[];
53
+ readonly edges: readonly KnowledgeEdgeRecord[];
54
+ readonly sources: readonly KnowledgeSourceRecord[];
55
+ readonly issues: readonly KnowledgeIssueRecord[];
56
+ }>;
57
+ exportSpace(input?: HomeGraphSpaceInput): Promise<HomeGraphExport>;
58
+ importSpace(input: HomeGraphSpaceInput & {
59
+ readonly data: HomeGraphExport;
60
+ }): Promise<{
61
+ readonly ok: true;
62
+ readonly spaceId: string;
63
+ readonly imported: {
64
+ readonly sources: number;
65
+ readonly nodes: number;
66
+ readonly edges: number;
67
+ readonly issues: number;
68
+ readonly extractions: number;
69
+ };
70
+ }>;
71
+ private ingestCreatedArtifact;
72
+ private extractArtifact;
73
+ private upsertHomeNode;
74
+ private upsertSnapshotObjects;
75
+ private linkSnapshotObjectRelations;
76
+ private tryLinkNode;
77
+ private refreshQualityIssues;
78
+ private resolveLinkSource;
79
+ private ensureTarget;
80
+ private materializeMarkdown;
81
+ }
82
+ //# sourceMappingURL=service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/knowledge/home-graph/service.ts"],"names":[],"mappings":"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"}