@pellux/goodvibes-sdk 0.28.8 → 0.28.10

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 (48) hide show
  1. package/dist/_internal/contracts/artifacts/operator-contract.json +89 -4
  2. package/dist/_internal/contracts/generated/foundation-metadata.d.ts +2 -2
  3. package/dist/_internal/contracts/generated/foundation-metadata.js +2 -2
  4. package/dist/_internal/contracts/generated/operator-contract.d.ts.map +1 -1
  5. package/dist/_internal/contracts/generated/operator-contract.js +89 -4
  6. package/dist/_internal/contracts/generated/operator-method-ids.d.ts +1 -1
  7. package/dist/_internal/contracts/generated/operator-method-ids.d.ts.map +1 -1
  8. package/dist/_internal/contracts/generated/operator-method-ids.js +1 -0
  9. package/dist/_internal/platform/control-plane/method-catalog-homegraph.d.ts.map +1 -1
  10. package/dist/_internal/platform/control-plane/method-catalog-homegraph.js +13 -1
  11. package/dist/_internal/platform/control-plane/operator-contract-schemas-homegraph.d.ts +1 -0
  12. package/dist/_internal/platform/control-plane/operator-contract-schemas-homegraph.d.ts.map +1 -1
  13. package/dist/_internal/platform/control-plane/operator-contract-schemas-homegraph.js +7 -0
  14. package/dist/_internal/platform/daemon/http/home-graph-routes.d.ts.map +1 -1
  15. package/dist/_internal/platform/daemon/http/home-graph-routes.js +3 -0
  16. package/dist/_internal/platform/knowledge/home-graph/ask.d.ts.map +1 -1
  17. package/dist/_internal/platform/knowledge/home-graph/ask.js +26 -7
  18. package/dist/_internal/platform/knowledge/home-graph/index.d.ts +1 -1
  19. package/dist/_internal/platform/knowledge/home-graph/index.d.ts.map +1 -1
  20. package/dist/_internal/platform/knowledge/home-graph/search-utils.d.ts +3 -0
  21. package/dist/_internal/platform/knowledge/home-graph/search-utils.d.ts.map +1 -0
  22. package/dist/_internal/platform/knowledge/home-graph/search-utils.js +16 -0
  23. package/dist/_internal/platform/knowledge/home-graph/search.d.ts.map +1 -1
  24. package/dist/_internal/platform/knowledge/home-graph/search.js +12 -13
  25. package/dist/_internal/platform/knowledge/home-graph/service.d.ts +2 -1
  26. package/dist/_internal/platform/knowledge/home-graph/service.d.ts.map +1 -1
  27. package/dist/_internal/platform/knowledge/home-graph/service.js +6 -0
  28. package/dist/_internal/platform/knowledge/home-graph/types.d.ts +20 -1
  29. package/dist/_internal/platform/knowledge/home-graph/types.d.ts.map +1 -1
  30. package/dist/_internal/platform/knowledge/home-graph/types.js +1 -0
  31. package/dist/_internal/platform/knowledge/index.d.ts +1 -1
  32. package/dist/_internal/platform/knowledge/index.d.ts.map +1 -1
  33. package/dist/_internal/platform/knowledge/semantic/answer.d.ts.map +1 -1
  34. package/dist/_internal/platform/knowledge/semantic/answer.js +6 -0
  35. package/dist/_internal/platform/knowledge/semantic/homeassistant-scope.d.ts +12 -0
  36. package/dist/_internal/platform/knowledge/semantic/homeassistant-scope.d.ts.map +1 -0
  37. package/dist/_internal/platform/knowledge/semantic/homeassistant-scope.js +240 -0
  38. package/dist/_internal/platform/knowledge/store-schedules.d.ts +5 -0
  39. package/dist/_internal/platform/knowledge/store-schedules.d.ts.map +1 -0
  40. package/dist/_internal/platform/knowledge/store-schedules.js +46 -0
  41. package/dist/_internal/platform/knowledge/store-space-delete.d.ts +30 -0
  42. package/dist/_internal/platform/knowledge/store-space-delete.d.ts.map +1 -0
  43. package/dist/_internal/platform/knowledge/store-space-delete.js +66 -0
  44. package/dist/_internal/platform/knowledge/store.d.ts +2 -0
  45. package/dist/_internal/platform/knowledge/store.d.ts.map +1 -1
  46. package/dist/_internal/platform/knowledge/store.js +21 -42
  47. package/dist/_internal/platform/version.js +1 -1
  48. package/package.json +1 -1
@@ -0,0 +1,66 @@
1
+ import { SQLiteStore } from '../state/sqlite-store.js';
2
+ import { getKnowledgeSpaceId, normalizeKnowledgeSpaceId } from './spaces.js';
3
+ export function deleteKnowledgeSpaceRows(sqlite, stores, spaceId) {
4
+ const normalized = normalizeKnowledgeSpaceId(spaceId);
5
+ const sourceIds = matchingIds(stores.sources, (record) => getKnowledgeSpaceId(record) === normalized);
6
+ const nodeIds = matchingIds(stores.nodes, (record) => getKnowledgeSpaceId(record) === normalized);
7
+ const issueIds = matchingIds(stores.issues, (record) => (getKnowledgeSpaceId(record) === normalized
8
+ || (record.sourceId !== undefined && sourceIds.has(record.sourceId))
9
+ || (record.nodeId !== undefined && nodeIds.has(record.nodeId))));
10
+ const extractionIds = matchingIds(stores.extractions, (record) => (getKnowledgeSpaceId(record) === normalized || sourceIds.has(record.sourceId)));
11
+ const edgeIds = matchingIds(stores.edges, (record) => (getKnowledgeSpaceId(record) === normalized
12
+ || (record.fromKind === 'source' && sourceIds.has(record.fromId))
13
+ || (record.toKind === 'source' && sourceIds.has(record.toId))
14
+ || (record.fromKind === 'node' && nodeIds.has(record.fromId))
15
+ || (record.toKind === 'node' && nodeIds.has(record.toId))));
16
+ const refinementTaskIds = matchingIds(stores.refinementTasks, (record) => normalizeKnowledgeSpaceId(record.spaceId) === normalized);
17
+ const jobRunIds = matchingIds(stores.jobRuns, (record) => getKnowledgeSpaceId(record) === normalized);
18
+ const usageRecordIds = matchingIds(stores.usageRecords, (record) => (getKnowledgeSpaceId(record) === normalized
19
+ || (record.targetKind === 'source' && sourceIds.has(record.targetId))
20
+ || (record.targetKind === 'node' && nodeIds.has(record.targetId))
21
+ || (record.targetKind === 'issue' && issueIds.has(record.targetId))));
22
+ const consolidationCandidateIds = matchingIds(stores.consolidationCandidates, (record) => (getKnowledgeSpaceId(record) === normalized
23
+ || (record.subjectKind === 'source' && sourceIds.has(record.subjectId))
24
+ || (record.subjectKind === 'node' && nodeIds.has(record.subjectId))
25
+ || (record.subjectKind === 'issue' && issueIds.has(record.subjectId))));
26
+ const consolidationReportIds = matchingIds(stores.consolidationReports, (record) => getKnowledgeSpaceId(record) === normalized);
27
+ const scheduleIds = matchingIds(stores.schedules, (record) => getKnowledgeSpaceId(record) === normalized);
28
+ deleteRows(sqlite, 'knowledge_usage_records', usageRecordIds, stores.usageRecords);
29
+ deleteRows(sqlite, 'knowledge_consolidation_candidates', consolidationCandidateIds, stores.consolidationCandidates);
30
+ deleteRows(sqlite, 'knowledge_consolidation_reports', consolidationReportIds, stores.consolidationReports);
31
+ deleteRows(sqlite, 'knowledge_refinement_tasks', refinementTaskIds, stores.refinementTasks);
32
+ deleteRows(sqlite, 'knowledge_job_runs', jobRunIds, stores.jobRuns);
33
+ deleteRows(sqlite, 'knowledge_edges', edgeIds, stores.edges);
34
+ deleteRows(sqlite, 'knowledge_issues', issueIds, stores.issues);
35
+ deleteRows(sqlite, 'knowledge_extractions', extractionIds, stores.extractions);
36
+ deleteRows(sqlite, 'knowledge_nodes', nodeIds, stores.nodes);
37
+ deleteRows(sqlite, 'knowledge_sources', sourceIds, stores.sources);
38
+ deleteRows(sqlite, 'knowledge_schedules', scheduleIds, stores.schedules);
39
+ return {
40
+ sources: sourceIds.size,
41
+ nodes: nodeIds.size,
42
+ edges: edgeIds.size,
43
+ issues: issueIds.size,
44
+ extractions: extractionIds.size,
45
+ jobRuns: jobRunIds.size,
46
+ refinementTasks: refinementTaskIds.size,
47
+ usageRecords: usageRecordIds.size,
48
+ consolidationCandidates: consolidationCandidateIds.size,
49
+ consolidationReports: consolidationReportIds.size,
50
+ schedules: scheduleIds.size,
51
+ };
52
+ }
53
+ function matchingIds(records, predicate) {
54
+ const ids = new Set();
55
+ for (const [id, record] of records) {
56
+ if (predicate(record))
57
+ ids.add(id);
58
+ }
59
+ return ids;
60
+ }
61
+ function deleteRows(sqlite, table, ids, records) {
62
+ for (const id of ids) {
63
+ sqlite.run(`DELETE FROM ${table} WHERE id = ?`, [id]);
64
+ records.delete(id);
65
+ }
66
+ }
@@ -1,5 +1,6 @@
1
1
  import type { KnowledgeConsolidationCandidateRecord, KnowledgeConsolidationCandidateUpsertInput, KnowledgeConsolidationReportRecord, KnowledgeConsolidationReportUpsertInput, KnowledgeEdgeRecord, KnowledgeEdgeUpsertInput, KnowledgeExtractionRecord, KnowledgeExtractionUpsertInput, KnowledgeIssueRecord, KnowledgeIssueUpsertInput, KnowledgeItemView, KnowledgeJobRunRecord, KnowledgeJobRunUpsertInput, KnowledgeRefinementTaskFilter, KnowledgeRefinementTaskRecord, KnowledgeRefinementTaskUpsertInput, KnowledgeNodeRecord, KnowledgeNodeUpsertInput, KnowledgeScheduleRecord, KnowledgeScheduleUpsertInput, KnowledgeSourceRecord, KnowledgeSourceUpsertInput, KnowledgeStatus, KnowledgeUsageRecord, KnowledgeUsageUpsertInput } from './types.js';
2
2
  import { type KnowledgeStoreConfig } from './store-config.js';
3
+ import { type KnowledgeSpaceDeleteResult } from './store-space-delete.js';
3
4
  export declare class KnowledgeStore {
4
5
  private readonly sqlite;
5
6
  private readonly dbPath;
@@ -70,6 +71,7 @@ export declare class KnowledgeStore {
70
71
  upsertConsolidationReport(input: KnowledgeConsolidationReportUpsertInput): Promise<KnowledgeConsolidationReportRecord>;
71
72
  upsertSchedule(input: KnowledgeScheduleUpsertInput): Promise<KnowledgeScheduleRecord>;
72
73
  deleteSchedule(id: string): Promise<boolean>;
74
+ deleteKnowledgeSpace(spaceId: string): Promise<KnowledgeSpaceDeleteResult>;
73
75
  private initialize;
74
76
  }
75
77
  //# sourceMappingURL=store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/knowledge/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/knowledge/store.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,8 @@ import { SQLiteStore } from '../state/sqlite-store.js';
3
3
  import { createSchema, issueStatusForUpsert, nowMs, stableText, uniq, } from './store-schema.js';
4
4
  import { resolveKnowledgeDbPath } from './store-config.js';
5
5
  import { upsertKnowledgeRefinementTask } from './store-refinement.js';
6
+ import { deleteKnowledgeSpaceRows, } from './store-space-delete.js';
7
+ import { deleteKnowledgeSchedule, upsertKnowledgeSchedule, } from './store-schedules.js';
6
8
  import { edgesForKnowledgeStore, getKnowledgeConsolidationCandidate, getKnowledgeConsolidationCandidateBySubject, getKnowledgeConsolidationReport, getKnowledgeExtraction, getKnowledgeExtractionBySourceId, getKnowledgeIssue, getKnowledgeItem, getKnowledgeJobRun, getKnowledgeRefinementTask, getKnowledgeNode, getKnowledgeNodeByKindAndSlug, getKnowledgeSchedule, getKnowledgeSource, getKnowledgeSourceByCanonicalUri, getKnowledgeStoreStatus, getKnowledgeUsageRecord, listKnowledgeConsolidationCandidates, listKnowledgeConsolidationReports, listKnowledgeEdges, listKnowledgeExtractions, listKnowledgeIssues, listKnowledgeJobRuns, listKnowledgeRefinementTasks, listKnowledgeNodes, listKnowledgeSchedules, listKnowledgeSources, listKnowledgeUsageRecords, } from './store-read.js';
7
9
  import { loadKnowledgeStoreSnapshot } from './store-load.js';
8
10
  export class KnowledgeStore {
@@ -602,52 +604,29 @@ export class KnowledgeStore {
602
604
  }
603
605
  async upsertSchedule(input) {
604
606
  await this.init();
605
- const existing = input.id ? this.schedules.get(input.id) : null;
606
- const now = nowMs();
607
- const record = {
608
- id: existing?.id ?? input.id ?? `ksched-${randomUUID().slice(0, 8)}`,
609
- jobId: input.jobId,
610
- label: input.label.trim(),
611
- enabled: input.enabled ?? existing?.enabled ?? true,
612
- schedule: input.schedule,
613
- ...(typeof input.lastRunAt === 'number' ? { lastRunAt: input.lastRunAt } : existing?.lastRunAt ? { lastRunAt: existing.lastRunAt } : {}),
614
- ...(typeof input.nextRunAt === 'number' ? { nextRunAt: input.nextRunAt } : existing?.nextRunAt ? { nextRunAt: existing.nextRunAt } : {}),
615
- metadata: {
616
- ...(existing?.metadata ?? {}),
617
- ...(input.metadata ?? {}),
618
- },
619
- createdAt: existing?.createdAt ?? now,
620
- updatedAt: now,
621
- };
622
- this.sqlite.run(`
623
- INSERT OR REPLACE INTO knowledge_schedules (
624
- id, job_id, label, enabled, schedule, last_run_at, next_run_at, metadata, created_at, updated_at
625
- ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
626
- `, [
627
- record.id,
628
- record.jobId,
629
- record.label,
630
- record.enabled ? 1 : 0,
631
- JSON.stringify(record.schedule),
632
- record.lastRunAt ?? null,
633
- record.nextRunAt ?? null,
634
- JSON.stringify(record.metadata),
635
- record.createdAt,
636
- record.updatedAt,
637
- ]);
638
- this.schedules.set(record.id, record);
639
- await this.sqlite.save();
640
- return record;
607
+ return upsertKnowledgeSchedule(this.sqlite, this.schedules, input, () => `ksched-${randomUUID().slice(0, 8)}`);
641
608
  }
642
609
  async deleteSchedule(id) {
643
610
  await this.init();
644
- const existing = this.schedules.get(id);
645
- if (!existing)
646
- return false;
647
- this.sqlite.run('DELETE FROM knowledge_schedules WHERE id = ?', [id]);
648
- this.schedules.delete(id);
611
+ return deleteKnowledgeSchedule(this.sqlite, this.schedules, id);
612
+ }
613
+ async deleteKnowledgeSpace(spaceId) {
614
+ await this.init();
615
+ const deleted = deleteKnowledgeSpaceRows(this.sqlite, {
616
+ sources: this.sources,
617
+ nodes: this.nodes,
618
+ edges: this.edges,
619
+ issues: this.issues,
620
+ extractions: this.extractions,
621
+ jobRuns: this.jobRuns,
622
+ refinementTasks: this.refinementTasks,
623
+ usageRecords: this.usageRecords,
624
+ consolidationCandidates: this.consolidationCandidates,
625
+ consolidationReports: this.consolidationReports,
626
+ schedules: this.schedules,
627
+ }, spaceId);
649
628
  await this.sqlite.save();
650
- return true;
629
+ return deleted;
651
630
  }
652
631
  async initialize() {
653
632
  await this.sqlite.init(createSchema);
@@ -1,6 +1,6 @@
1
1
  import { readFileSync } from 'node:fs';
2
2
  import { join } from 'node:path';
3
- let version = '0.28.8';
3
+ let version = '0.28.10';
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.28.8",
3
+ "version": "0.28.10",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/mgd34msu/goodvibes-sdk.git"