@sudosandwich/limps 2.8.0 → 2.9.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 (113) hide show
  1. package/README.md +86 -0
  2. package/dist/agent-parser.d.ts +6 -0
  3. package/dist/agent-parser.d.ts.map +1 -1
  4. package/dist/agent-parser.js +30 -0
  5. package/dist/agent-parser.js.map +1 -1
  6. package/dist/cli/config-cmd.d.ts +12 -0
  7. package/dist/cli/config-cmd.d.ts.map +1 -1
  8. package/dist/cli/config-cmd.js +143 -1
  9. package/dist/cli/config-cmd.js.map +1 -1
  10. package/dist/cli/json-output.d.ts +3 -0
  11. package/dist/cli/json-output.d.ts.map +1 -1
  12. package/dist/cli/json-output.js +3 -0
  13. package/dist/cli/json-output.js.map +1 -1
  14. package/dist/cli/list-agents.d.ts.map +1 -1
  15. package/dist/cli/list-agents.js +10 -4
  16. package/dist/cli/list-agents.js.map +1 -1
  17. package/dist/cli/next-task.d.ts +20 -3
  18. package/dist/cli/next-task.d.ts.map +1 -1
  19. package/dist/cli/next-task.js +249 -34
  20. package/dist/cli/next-task.js.map +1 -1
  21. package/dist/cli/plan-repair.d.ts +26 -0
  22. package/dist/cli/plan-repair.d.ts.map +1 -0
  23. package/dist/cli/plan-repair.js +145 -0
  24. package/dist/cli/plan-repair.js.map +1 -0
  25. package/dist/commands/config/index.d.ts.map +1 -1
  26. package/dist/commands/config/index.js +31 -2
  27. package/dist/commands/config/index.js.map +1 -1
  28. package/dist/commands/config/list.d.ts.map +1 -1
  29. package/dist/commands/config/list.js +13 -3
  30. package/dist/commands/config/list.js.map +1 -1
  31. package/dist/commands/config/scoring.d.ts +13 -0
  32. package/dist/commands/config/scoring.d.ts.map +1 -0
  33. package/dist/commands/config/scoring.js +104 -0
  34. package/dist/commands/config/scoring.js.map +1 -0
  35. package/dist/commands/index.d.ts.map +1 -1
  36. package/dist/commands/index.js +1 -1
  37. package/dist/commands/index.js.map +1 -1
  38. package/dist/commands/list-agents.d.ts +1 -0
  39. package/dist/commands/list-agents.d.ts.map +1 -1
  40. package/dist/commands/list-agents.js +54 -15
  41. package/dist/commands/list-agents.js.map +1 -1
  42. package/dist/commands/list-plans.d.ts +1 -0
  43. package/dist/commands/list-plans.d.ts.map +1 -1
  44. package/dist/commands/list-plans.js +41 -16
  45. package/dist/commands/list-plans.js.map +1 -1
  46. package/dist/commands/next-task.d.ts +1 -0
  47. package/dist/commands/next-task.d.ts.map +1 -1
  48. package/dist/commands/next-task.js +61 -25
  49. package/dist/commands/next-task.js.map +1 -1
  50. package/dist/commands/reindex.d.ts +12 -0
  51. package/dist/commands/reindex.d.ts.map +1 -0
  52. package/dist/commands/reindex.js +64 -0
  53. package/dist/commands/reindex.js.map +1 -0
  54. package/dist/commands/repair-plans.d.ts +16 -0
  55. package/dist/commands/repair-plans.d.ts.map +1 -0
  56. package/dist/commands/repair-plans.js +141 -0
  57. package/dist/commands/repair-plans.js.map +1 -0
  58. package/dist/commands/score-all.d.ts +15 -0
  59. package/dist/commands/score-all.d.ts.map +1 -0
  60. package/dist/commands/score-all.js +96 -0
  61. package/dist/commands/score-all.js.map +1 -0
  62. package/dist/commands/score-task.d.ts +15 -0
  63. package/dist/commands/score-task.d.ts.map +1 -0
  64. package/dist/commands/score-task.js +104 -0
  65. package/dist/commands/score-task.js.map +1 -0
  66. package/dist/commands/serve.d.ts +1 -0
  67. package/dist/commands/serve.d.ts.map +1 -1
  68. package/dist/commands/serve.js +6 -3
  69. package/dist/commands/serve.js.map +1 -1
  70. package/dist/commands/status.d.ts +1 -0
  71. package/dist/commands/status.d.ts.map +1 -1
  72. package/dist/commands/status.js +68 -20
  73. package/dist/commands/status.js.map +1 -1
  74. package/dist/components/NextTask.d.ts.map +1 -1
  75. package/dist/components/NextTask.js +2 -1
  76. package/dist/components/NextTask.js.map +1 -1
  77. package/dist/config.d.ts +17 -2
  78. package/dist/config.d.ts.map +1 -1
  79. package/dist/config.js +136 -5
  80. package/dist/config.js.map +1 -1
  81. package/dist/graph/schema.d.ts +4 -0
  82. package/dist/graph/schema.d.ts.map +1 -0
  83. package/dist/graph/schema.js +77 -0
  84. package/dist/graph/schema.js.map +1 -0
  85. package/dist/graph/storage.d.ts +26 -0
  86. package/dist/graph/storage.d.ts.map +1 -0
  87. package/dist/graph/storage.js +441 -0
  88. package/dist/graph/storage.js.map +1 -0
  89. package/dist/graph/types.d.ts +32 -0
  90. package/dist/graph/types.d.ts.map +1 -0
  91. package/dist/graph/types.js +11 -0
  92. package/dist/graph/types.js.map +1 -0
  93. package/dist/indexer.d.ts +6 -0
  94. package/dist/indexer.d.ts.map +1 -1
  95. package/dist/indexer.js +11 -0
  96. package/dist/indexer.js.map +1 -1
  97. package/dist/tools/index.d.ts +3 -1
  98. package/dist/tools/index.d.ts.map +1 -1
  99. package/dist/tools/index.js +112 -22
  100. package/dist/tools/index.js.map +1 -1
  101. package/dist/tools/process-docs.d.ts.map +1 -1
  102. package/dist/tools/process-docs.js +10 -1
  103. package/dist/tools/process-docs.js.map +1 -1
  104. package/dist/tools/update-task-status.d.ts +1 -1
  105. package/dist/utils/cli-help.d.ts +32 -0
  106. package/dist/utils/cli-help.d.ts.map +1 -0
  107. package/dist/utils/cli-help.js +79 -0
  108. package/dist/utils/cli-help.js.map +1 -0
  109. package/dist/utils/config-resolver.d.ts +8 -0
  110. package/dist/utils/config-resolver.d.ts.map +1 -1
  111. package/dist/utils/config-resolver.js +14 -0
  112. package/dist/utils/config-resolver.js.map +1 -1
  113. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AACpF,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AA8C7B;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC;AAExC;;GAEG;AACH,MAAM,uBAAuB,GAAG,CAAC,KAAK,CAAC,CAAC;AAExC;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAmB;IACrD,UAAU,EAAE,EAAE;IACd,QAAQ,EAAE,EAAE;IACZ,QAAQ,EAAE,EAAE;CACb,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAoB;IACpD,OAAO,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAkB,EAAE,CAAC;AAExD;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAoB;IACnD,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;AAC/B,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,CAAC;AAE1C;;GAEG;AACH,MAAM,cAAc,GAAiB;IACnC,aAAa,EAAE,sBAAsB;IACrC,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,cAAc,EAAE,SAAS;IACzB,QAAQ,EAAE,QAAQ;IAClB,OAAO,EAAE;QACP,OAAO,EAAE,uBAAuB;QAChC,MAAM,EAAE,sBAAsB;KAC/B;IACD,UAAU,EAAE,SAAS;CACtB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;QAC1C,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,SAAS,gCAAgC,CAAC,QAAgB;IACxD,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,UAAU,CAAC,QAAQ,CAAC,CAAC;QACvB,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,UAAU,CAAC,UAAkB;IAC3C,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAEtC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,6BAA6B;QAC7B,MAAM,aAAa,GAAG,EAAE,GAAG,cAAc,EAAE,CAAC;QAC5C,wCAAwC;QACxC,aAAa,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;QACvE,aAAa,CAAC,QAAQ,GAAG,OAAO,CAAC,SAAS,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;QAErE,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1C,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAC3E,gCAAgC,CAAC,IAAI,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC,CAAC;QACvE,gCAAgC,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC,CAAC;QACpF,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAA4B,CAAC;IAC9D,MAAM,WAAW,GAAG,MAA+B,CAAC;IAEpD,qDAAqD;IACrD,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,IAAI,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;IAClC,IAAI,CAAC,OAAO,EAAE,OAAO,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;QAC1C,OAAO,GAAG;YACR,OAAO,EAAE,uBAAuB;YAChC,MAAM,EAAE,sBAAsB;SAC/B,CAAC;QACF,WAAW,CAAC,OAAO,GAAG,OAAO,CAAC;QAC9B,SAAS,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,0CAA0C;IAC1C,IAAI,WAAW,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;QAC5C,WAAW,CAAC,aAAa,GAAG,sBAAsB,CAAC;QACnD,SAAS,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,iGAAiG;IACjG,IAAI,kBAAkB,IAAI,MAAM,EAAE,CAAC;QACjC,OAAQ,MAAkC,CAAC,gBAAgB,CAAC;QAC5D,SAAS,GAAG,IAAI,CAAC;IACnB,CAAC;IACD,IAAI,kBAAkB,IAAI,MAAM,EAAE,CAAC;QACjC,OAAQ,MAAkC,CAAC,gBAAgB,CAAC;QAC5D,SAAS,GAAG,IAAI,CAAC;IACnB,CAAC;IACD,IAAI,eAAe,IAAI,MAAM,EAAE,CAAC;QAC9B,OAAQ,MAAkC,CAAC,aAAa,CAAC;QACzD,SAAS,GAAG,IAAI,CAAC;IACnB,CAAC;IACD,IAAI,sBAAsB,IAAI,MAAM,EAAE,CAAC;QACrC,OAAQ,MAAkC,CAAC,oBAAoB,CAAC;QAChE,SAAS,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,oCAAoC;IACpC,IAAI,SAAS,EAAE,CAAC;QACd,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAC3E,CAAC;IAED,8CAA8C;IAC9C,MAAM,WAAW,GAAG,CAAC,CAAS,EAAU,EAAE;QACxC,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAChC,mFAAmF;QACnF,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACtB,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,OAAO,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACtC,CAAC,CAAC;IAEF,mEAAmE;IACnE,MAAM,iBAAiB,GAAG,WAAW,CAAC,SAAS;QAC7C,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC;QACxC,CAAC,CAAC,SAAS,CAAC;IAEd,+DAA+D;IAC/D,MAAM,cAAc,GAAiB;QACnC,aAAa,EAAE,WAAW,CAAC,aAAa;QACxC,SAAS,EAAE,WAAW,CAAC,WAAW,CAAC,SAAS,IAAI,cAAc,CAAC,SAAS,CAAC;QACzE,SAAS,EAAE,iBAAiB;QAC5B,cAAc,EAAE,WAAW,CAAC,cAAc;QAC1C,QAAQ,EAAE,WAAW,CAAC,WAAW,CAAC,QAAQ,IAAI,cAAc,CAAC,QAAQ,CAAC;QACtE,OAAO;QACP,UAAU,EAAE,WAAW,CAAC,UAAU;KACnC,CAAC;IAEF,wDAAwD;IACxD,MAAM,YAAY,GAAiB;QACjC,GAAI,MAAkC;QACtC,GAAG,cAAc;KACF,CAAC;IAElB,yFAAyF;IACzF,gCAAgC,CAAC,IAAI,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC,CAAC;IACvE,gCAAgC,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC,CAAC;IAErF,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,MAAe;IAC5C,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC1C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,CAAC,GAAG,MAA+B,CAAC;IAE1C,wBAAwB;IACxB,IAAI,OAAO,CAAC,CAAC,SAAS,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACtE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,6DAA6D;IAC7D,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QAC9B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,EAAE,CAAC;YACpF,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,kEAAkE;IAClE,IAAI,CAAC,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;QACnC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,EAAE,CAAC;YAC9F,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,OAAO,GAAG,CAAC,CAAC,OAA2C,CAAC;IAC9D,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACxC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IACE,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,KAAK,QAAQ;QAC9C,OAAO,OAAO,CAAC,OAAO,CAAC,QAAQ,KAAK,QAAQ;QAC5C,OAAO,OAAO,CAAC,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAC5C,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,MAAoB;IAClD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC5B,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACjC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAoB;IACpD,OAAO,MAAM,CAAC,cAAc,IAAI,uBAAuB,CAAC;AAC1D,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { Database as DatabaseType } from 'better-sqlite3';
2
+ export declare const SCHEMA_SQL: string;
3
+ export declare function createGraphSchema(db: DatabaseType): void;
4
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/graph/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAM/D,eAAO,MAAM,UAAU,QAqEtB,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI,CAExD"}
@@ -0,0 +1,77 @@
1
+ import { ENTITY_TYPES, RELATION_TYPES } from './types.js';
2
+ const entityTypeList = ENTITY_TYPES.map((type) => `'${type}'`).join(', ');
3
+ const relationTypeList = RELATION_TYPES.map((type) => `'${type}'`).join(', ');
4
+ export const SCHEMA_SQL = `
5
+ -- Entities table
6
+ CREATE TABLE IF NOT EXISTS entities (
7
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
8
+ type TEXT NOT NULL CHECK(type IN (${entityTypeList})),
9
+ canonical_id TEXT NOT NULL,
10
+ name TEXT NOT NULL,
11
+ source_path TEXT,
12
+ content_hash TEXT,
13
+ metadata TEXT DEFAULT '{}',
14
+ created_at TEXT DEFAULT (datetime('now')),
15
+ updated_at TEXT DEFAULT (datetime('now')),
16
+ UNIQUE(type, canonical_id)
17
+ );
18
+
19
+ -- Relationships table
20
+ CREATE TABLE IF NOT EXISTS relationships (
21
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
22
+ source_id INTEGER NOT NULL REFERENCES entities(id) ON DELETE CASCADE,
23
+ target_id INTEGER NOT NULL REFERENCES entities(id) ON DELETE CASCADE,
24
+ relation_type TEXT NOT NULL CHECK(relation_type IN (${relationTypeList})),
25
+ confidence REAL DEFAULT 1.0,
26
+ metadata TEXT DEFAULT '{}',
27
+ created_at TEXT DEFAULT (datetime('now')),
28
+ UNIQUE(source_id, target_id, relation_type)
29
+ );
30
+
31
+ -- Indexes for fast lookups
32
+ CREATE INDEX IF NOT EXISTS idx_entities_type ON entities(type);
33
+ CREATE INDEX IF NOT EXISTS idx_entities_canonical ON entities(canonical_id);
34
+ CREATE INDEX IF NOT EXISTS idx_entities_source ON entities(source_path);
35
+ CREATE INDEX IF NOT EXISTS idx_entities_hash ON entities(content_hash);
36
+
37
+ CREATE INDEX IF NOT EXISTS idx_rel_source ON relationships(source_id);
38
+ CREATE INDEX IF NOT EXISTS idx_rel_target ON relationships(target_id);
39
+ CREATE INDEX IF NOT EXISTS idx_rel_type ON relationships(relation_type);
40
+
41
+ -- Full-text search on entity names (for lexical retrieval)
42
+ CREATE VIRTUAL TABLE IF NOT EXISTS entities_fts USING fts5(
43
+ canonical_id,
44
+ name,
45
+ content='entities',
46
+ content_rowid='id'
47
+ );
48
+
49
+ -- Triggers to keep FTS in sync
50
+ CREATE TRIGGER IF NOT EXISTS entities_ai AFTER INSERT ON entities BEGIN
51
+ INSERT INTO entities_fts(rowid, canonical_id, name)
52
+ VALUES (new.id, new.canonical_id, new.name);
53
+ END;
54
+
55
+ CREATE TRIGGER IF NOT EXISTS entities_ad AFTER DELETE ON entities BEGIN
56
+ INSERT INTO entities_fts(entities_fts, rowid, canonical_id, name)
57
+ VALUES ('delete', old.id, old.canonical_id, old.name);
58
+ END;
59
+
60
+ CREATE TRIGGER IF NOT EXISTS entities_au AFTER UPDATE ON entities BEGIN
61
+ INSERT INTO entities_fts(entities_fts, rowid, canonical_id, name)
62
+ VALUES ('delete', old.id, old.canonical_id, old.name);
63
+ INSERT INTO entities_fts(rowid, canonical_id, name)
64
+ VALUES (new.id, new.canonical_id, new.name);
65
+ END;
66
+
67
+ -- Graph metadata table
68
+ CREATE TABLE IF NOT EXISTS graph_meta (
69
+ key TEXT PRIMARY KEY,
70
+ value TEXT,
71
+ updated_at TEXT DEFAULT (datetime('now'))
72
+ );
73
+ `;
74
+ export function createGraphSchema(db) {
75
+ db.exec(SCHEMA_SQL);
76
+ }
77
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/graph/schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE1D,MAAM,cAAc,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1E,MAAM,gBAAgB,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAE9E,MAAM,CAAC,MAAM,UAAU,GAAG;;;;sCAIY,cAAc;;;;;;;;;;;;;;;;wDAgBI,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiDvE,CAAC;AAEF,MAAM,UAAU,iBAAiB,CAAC,EAAgB;IAChD,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACtB,CAAC"}
@@ -0,0 +1,26 @@
1
+ import type { Database as DatabaseType } from 'better-sqlite3';
2
+ import type { Entity, EntityType, GraphStats, RelationType, Relationship } from './types.js';
3
+ export declare class GraphStorage {
4
+ private db;
5
+ constructor(db: DatabaseType);
6
+ upsertEntity(entity: Omit<Entity, 'id' | 'createdAt' | 'updatedAt'>): Entity;
7
+ getEntity(canonicalId: string, type?: EntityType): Entity | null;
8
+ getEntitiesByType(type: EntityType): Entity[];
9
+ getEntitiesBySource(sourcePath: string): Entity[];
10
+ deleteEntity(canonicalId: string, type?: EntityType): boolean;
11
+ upsertRelationship(rel: Omit<Relationship, 'id' | 'createdAt'>): Relationship;
12
+ getRelationships(entityId: number, direction: 'outgoing' | 'incoming' | 'both'): Relationship[];
13
+ getRelationshipsByType(type: RelationType): Relationship[];
14
+ deleteRelationship(sourceId: number, targetId: number, type: RelationType): boolean;
15
+ getNeighbors(entityId: number, relationType?: RelationType): Entity[];
16
+ getPath(fromId: number, toId: number, maxDepth: number, maxPaths?: number): Entity[][] | null;
17
+ bulkUpsertEntities(entities: Entity[]): number;
18
+ bulkUpsertRelationships(rels: Relationship[]): number;
19
+ deleteEntitiesBySource(sourcePath: string): number;
20
+ getStats(): GraphStats;
21
+ searchEntities(query: string, limit: number): Entity[];
22
+ private getEntityById;
23
+ }
24
+ export declare function computeContentHash(content: string): string;
25
+ export declare function hasChanged(storage: GraphStorage, sourcePath: string, currentHash: string): boolean;
26
+ //# sourceMappingURL=storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/graph/storage.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAwF7F,qBAAa,YAAY;IACX,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,YAAY;IAIpC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,GAAG,WAAW,GAAG,WAAW,CAAC,GAAG,MAAM;IAgD5E,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI;IAahE,iBAAiB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,EAAE;IAK7C,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE;IAOjD,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO;IAU7D,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,GAAG,WAAW,CAAC,GAAG,YAAY;IA6C7E,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,GAAG,UAAU,GAAG,MAAM,GAAG,YAAY,EAAE;IAoB/F,sBAAsB,CAAC,IAAI,EAAE,YAAY,GAAG,YAAY,EAAE;IAO1D,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,GAAG,OAAO;IASnF,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,YAAY,GAAG,MAAM,EAAE;IA6BrE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,SAAK,GAAG,MAAM,EAAE,EAAE,GAAG,IAAI;IA2DzF,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM;IAiD9C,uBAAuB,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,MAAM;IA0CrD,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAKlD,QAAQ,IAAI,UAAU;IAgEtB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;IA0BtD,OAAO,CAAC,aAAa;CAMtB;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,wBAAgB,UAAU,CACxB,OAAO,EAAE,YAAY,EACrB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,GAClB,OAAO,CAOT"}
@@ -0,0 +1,441 @@
1
+ import { createHash } from 'crypto';
2
+ import { ENTITY_TYPES, RELATION_TYPES } from './types.js';
3
+ function resolveEntityType(canonicalId, explicitType) {
4
+ if (explicitType) {
5
+ return explicitType;
6
+ }
7
+ const [prefix] = canonicalId.split(':');
8
+ if (prefix && ENTITY_TYPES.includes(prefix)) {
9
+ return prefix;
10
+ }
11
+ return null;
12
+ }
13
+ function parseMetadata(value) {
14
+ if (!value) {
15
+ return {};
16
+ }
17
+ if (typeof value === 'object') {
18
+ return value;
19
+ }
20
+ try {
21
+ return JSON.parse(value);
22
+ }
23
+ catch (error) {
24
+ const errorMessage = error instanceof Error ? error.message : String(error);
25
+ console.warn('GraphStorage.parseMetadata failed; returning empty object.', {
26
+ error: errorMessage,
27
+ });
28
+ return {};
29
+ }
30
+ }
31
+ function mapEntity(row) {
32
+ return {
33
+ id: row.id,
34
+ type: row.type,
35
+ canonicalId: row.canonical_id,
36
+ name: row.name,
37
+ sourcePath: row.source_path ?? undefined,
38
+ contentHash: row.content_hash ?? undefined,
39
+ metadata: parseMetadata(row.metadata),
40
+ createdAt: row.created_at,
41
+ updatedAt: row.updated_at,
42
+ };
43
+ }
44
+ function mapRelationship(row) {
45
+ return {
46
+ id: row.id,
47
+ sourceId: row.source_id,
48
+ targetId: row.target_id,
49
+ relationType: row.relation_type,
50
+ confidence: row.confidence,
51
+ metadata: parseMetadata(row.metadata),
52
+ createdAt: row.created_at,
53
+ };
54
+ }
55
+ function normalizeTimestamp(value, fallback) {
56
+ return value && value.trim().length > 0 ? value : fallback;
57
+ }
58
+ export class GraphStorage {
59
+ db;
60
+ constructor(db) {
61
+ this.db = db;
62
+ this.db.pragma('foreign_keys = ON');
63
+ }
64
+ upsertEntity(entity) {
65
+ const now = new Date().toISOString();
66
+ const metadata = JSON.stringify(entity.metadata ?? {});
67
+ this.db
68
+ .prepare(`
69
+ INSERT INTO entities (
70
+ type,
71
+ canonical_id,
72
+ name,
73
+ source_path,
74
+ content_hash,
75
+ metadata,
76
+ created_at,
77
+ updated_at
78
+ )
79
+ VALUES (@type, @canonicalId, @name, @sourcePath, @contentHash, @metadata, @createdAt, @updatedAt)
80
+ ON CONFLICT(type, canonical_id) DO UPDATE SET
81
+ name = excluded.name,
82
+ source_path = excluded.source_path,
83
+ content_hash = excluded.content_hash,
84
+ metadata = excluded.metadata,
85
+ updated_at = excluded.updated_at
86
+ `)
87
+ .run({
88
+ type: entity.type,
89
+ canonicalId: entity.canonicalId,
90
+ name: entity.name,
91
+ sourcePath: entity.sourcePath ?? null,
92
+ contentHash: entity.contentHash ?? null,
93
+ metadata,
94
+ createdAt: now,
95
+ updatedAt: now,
96
+ });
97
+ const row = this.db
98
+ .prepare('SELECT * FROM entities WHERE type = ? AND canonical_id = ?')
99
+ .get(entity.type, entity.canonicalId);
100
+ if (!row) {
101
+ throw new Error(`Failed to upsert entity: ${entity.canonicalId}`);
102
+ }
103
+ return mapEntity(row);
104
+ }
105
+ getEntity(canonicalId, type) {
106
+ const resolvedType = resolveEntityType(canonicalId, type);
107
+ const row = resolvedType
108
+ ? this.db
109
+ .prepare('SELECT * FROM entities WHERE type = ? AND canonical_id = ? ORDER BY id LIMIT 1')
110
+ .get(resolvedType, canonicalId)
111
+ : this.db
112
+ .prepare('SELECT * FROM entities WHERE canonical_id = ? ORDER BY id LIMIT 1')
113
+ .get(canonicalId);
114
+ return row ? mapEntity(row) : null;
115
+ }
116
+ getEntitiesByType(type) {
117
+ const rows = this.db.prepare('SELECT * FROM entities WHERE type = ?').all(type);
118
+ return rows.map(mapEntity);
119
+ }
120
+ getEntitiesBySource(sourcePath) {
121
+ const rows = this.db
122
+ .prepare('SELECT * FROM entities WHERE source_path = ?')
123
+ .all(sourcePath);
124
+ return rows.map(mapEntity);
125
+ }
126
+ deleteEntity(canonicalId, type) {
127
+ const resolvedType = resolveEntityType(canonicalId, type);
128
+ const result = resolvedType
129
+ ? this.db
130
+ .prepare('DELETE FROM entities WHERE type = ? AND canonical_id = ?')
131
+ .run(resolvedType, canonicalId)
132
+ : this.db.prepare('DELETE FROM entities WHERE canonical_id = ?').run(canonicalId);
133
+ return result.changes > 0;
134
+ }
135
+ upsertRelationship(rel) {
136
+ const now = new Date().toISOString();
137
+ const metadata = JSON.stringify(rel.metadata ?? {});
138
+ this.db
139
+ .prepare(`
140
+ INSERT INTO relationships (
141
+ source_id,
142
+ target_id,
143
+ relation_type,
144
+ confidence,
145
+ metadata,
146
+ created_at
147
+ )
148
+ VALUES (@sourceId, @targetId, @relationType, @confidence, @metadata, @createdAt)
149
+ ON CONFLICT(source_id, target_id, relation_type) DO UPDATE SET
150
+ confidence = excluded.confidence,
151
+ metadata = excluded.metadata
152
+ `)
153
+ .run({
154
+ sourceId: rel.sourceId,
155
+ targetId: rel.targetId,
156
+ relationType: rel.relationType,
157
+ confidence: rel.confidence ?? 1.0,
158
+ metadata,
159
+ createdAt: now,
160
+ });
161
+ const row = this.db
162
+ .prepare('SELECT * FROM relationships WHERE source_id = ? AND target_id = ? AND relation_type = ?')
163
+ .get(rel.sourceId, rel.targetId, rel.relationType);
164
+ if (!row) {
165
+ throw new Error(`Failed to upsert relationship: ${rel.sourceId} -> ${rel.targetId} (${rel.relationType})`);
166
+ }
167
+ return mapRelationship(row);
168
+ }
169
+ getRelationships(entityId, direction) {
170
+ let rows;
171
+ if (direction === 'outgoing') {
172
+ rows = this.db
173
+ .prepare('SELECT * FROM relationships WHERE source_id = ?')
174
+ .all(entityId);
175
+ }
176
+ else if (direction === 'incoming') {
177
+ rows = this.db
178
+ .prepare('SELECT * FROM relationships WHERE target_id = ?')
179
+ .all(entityId);
180
+ }
181
+ else {
182
+ rows = this.db
183
+ .prepare('SELECT * FROM relationships WHERE source_id = ? OR target_id = ?')
184
+ .all(entityId, entityId);
185
+ }
186
+ return rows.map(mapRelationship);
187
+ }
188
+ getRelationshipsByType(type) {
189
+ const rows = this.db
190
+ .prepare('SELECT * FROM relationships WHERE relation_type = ?')
191
+ .all(type);
192
+ return rows.map(mapRelationship);
193
+ }
194
+ deleteRelationship(sourceId, targetId, type) {
195
+ const result = this.db
196
+ .prepare('DELETE FROM relationships WHERE source_id = ? AND target_id = ? AND relation_type = ?')
197
+ .run(sourceId, targetId, type);
198
+ return result.changes > 0;
199
+ }
200
+ getNeighbors(entityId, relationType) {
201
+ if (relationType) {
202
+ const rows = this.db
203
+ .prepare(`
204
+ SELECT e.*
205
+ FROM relationships r
206
+ JOIN entities e ON e.id = r.target_id
207
+ WHERE r.source_id = ? AND r.relation_type = ?
208
+ `)
209
+ .all(entityId, relationType);
210
+ return rows.map(mapEntity);
211
+ }
212
+ const rows = this.db
213
+ .prepare(`
214
+ SELECT e.*
215
+ FROM relationships r
216
+ JOIN entities e ON e.id = r.target_id
217
+ WHERE r.source_id = ?
218
+ `)
219
+ .all(entityId);
220
+ return rows.map(mapEntity);
221
+ }
222
+ getPath(fromId, toId, maxDepth, maxPaths = 25) {
223
+ if (maxDepth < 1) {
224
+ return null;
225
+ }
226
+ const boundedDepth = Math.min(maxDepth, 10);
227
+ const boundedPaths = Math.max(1, Math.min(maxPaths, 1000));
228
+ const start = this.getEntityById(fromId);
229
+ const target = this.getEntityById(toId);
230
+ if (!start || !target) {
231
+ return null;
232
+ }
233
+ if (fromId === toId) {
234
+ return [[start]];
235
+ }
236
+ const results = [];
237
+ const queue = [[start]];
238
+ let head = 0;
239
+ while (head < queue.length) {
240
+ const path = queue[head++];
241
+ if (!path) {
242
+ continue;
243
+ }
244
+ const last = path[path.length - 1];
245
+ if (!last) {
246
+ continue;
247
+ }
248
+ const depth = path.length - 1;
249
+ if (depth >= boundedDepth) {
250
+ continue;
251
+ }
252
+ const neighbors = this.getNeighbors(last.id);
253
+ for (const neighbor of neighbors) {
254
+ if (path.some((node) => node.id === neighbor.id)) {
255
+ continue;
256
+ }
257
+ const nextPath = [...path, neighbor];
258
+ if (neighbor.id === toId) {
259
+ results.push(nextPath);
260
+ if (results.length >= boundedPaths) {
261
+ return results;
262
+ }
263
+ }
264
+ else {
265
+ queue.push(nextPath);
266
+ }
267
+ }
268
+ }
269
+ return results.length > 0 ? results : null;
270
+ }
271
+ bulkUpsertEntities(entities) {
272
+ if (entities.length === 0) {
273
+ return 0;
274
+ }
275
+ const now = new Date().toISOString();
276
+ const statement = this.db.prepare(`
277
+ INSERT INTO entities (
278
+ type,
279
+ canonical_id,
280
+ name,
281
+ source_path,
282
+ content_hash,
283
+ metadata,
284
+ created_at,
285
+ updated_at
286
+ )
287
+ VALUES (@type, @canonicalId, @name, @sourcePath, @contentHash, @metadata, @createdAt, @updatedAt)
288
+ ON CONFLICT(type, canonical_id) DO UPDATE SET
289
+ name = excluded.name,
290
+ source_path = excluded.source_path,
291
+ content_hash = excluded.content_hash,
292
+ metadata = excluded.metadata,
293
+ updated_at = excluded.updated_at
294
+ `);
295
+ const transaction = this.db.transaction((rows) => {
296
+ let changes = 0;
297
+ for (const entity of rows) {
298
+ const result = statement.run({
299
+ type: entity.type,
300
+ canonicalId: entity.canonicalId,
301
+ name: entity.name,
302
+ sourcePath: entity.sourcePath ?? null,
303
+ contentHash: entity.contentHash ?? null,
304
+ metadata: JSON.stringify(entity.metadata ?? {}),
305
+ createdAt: normalizeTimestamp(entity.createdAt, now),
306
+ updatedAt: normalizeTimestamp(entity.updatedAt, now),
307
+ });
308
+ changes += result.changes;
309
+ }
310
+ return changes;
311
+ });
312
+ return transaction(entities);
313
+ }
314
+ bulkUpsertRelationships(rels) {
315
+ if (rels.length === 0) {
316
+ return 0;
317
+ }
318
+ const now = new Date().toISOString();
319
+ const statement = this.db.prepare(`
320
+ INSERT INTO relationships (
321
+ source_id,
322
+ target_id,
323
+ relation_type,
324
+ confidence,
325
+ metadata,
326
+ created_at
327
+ )
328
+ VALUES (@sourceId, @targetId, @relationType, @confidence, @metadata, @createdAt)
329
+ ON CONFLICT(source_id, target_id, relation_type) DO UPDATE SET
330
+ confidence = excluded.confidence,
331
+ metadata = excluded.metadata
332
+ `);
333
+ const transaction = this.db.transaction((rows) => {
334
+ let changes = 0;
335
+ for (const rel of rows) {
336
+ const result = statement.run({
337
+ sourceId: rel.sourceId,
338
+ targetId: rel.targetId,
339
+ relationType: rel.relationType,
340
+ confidence: rel.confidence ?? 1.0,
341
+ metadata: JSON.stringify(rel.metadata ?? {}),
342
+ createdAt: normalizeTimestamp(rel.createdAt, now),
343
+ });
344
+ changes += result.changes;
345
+ }
346
+ return changes;
347
+ });
348
+ return transaction(rels);
349
+ }
350
+ deleteEntitiesBySource(sourcePath) {
351
+ const result = this.db.prepare('DELETE FROM entities WHERE source_path = ?').run(sourcePath);
352
+ return result.changes;
353
+ }
354
+ getStats() {
355
+ const entityCounts = {
356
+ plan: 0,
357
+ agent: 0,
358
+ feature: 0,
359
+ file: 0,
360
+ tag: 0,
361
+ concept: 0,
362
+ };
363
+ const relationCounts = {
364
+ CONTAINS: 0,
365
+ DEPENDS_ON: 0,
366
+ MODIFIES: 0,
367
+ IMPLEMENTS: 0,
368
+ SIMILAR_TO: 0,
369
+ BLOCKS: 0,
370
+ TAGGED_WITH: 0,
371
+ };
372
+ const entityRows = this.db
373
+ .prepare('SELECT type, COUNT(*) as count FROM entities GROUP BY type')
374
+ .all();
375
+ for (const row of entityRows) {
376
+ if (ENTITY_TYPES.includes(row.type)) {
377
+ entityCounts[row.type] = row.count;
378
+ }
379
+ }
380
+ const relationRows = this.db
381
+ .prepare('SELECT relation_type as type, COUNT(*) as count FROM relationships GROUP BY relation_type')
382
+ .all();
383
+ for (const row of relationRows) {
384
+ if (RELATION_TYPES.includes(row.type)) {
385
+ relationCounts[row.type] = row.count;
386
+ }
387
+ }
388
+ const totalEntitiesRow = this.db.prepare('SELECT COUNT(*) as count FROM entities').get();
389
+ const totalRelationsRow = this.db
390
+ .prepare('SELECT COUNT(*) as count FROM relationships')
391
+ .get();
392
+ const lastIndexedRow = this.db
393
+ .prepare("SELECT value FROM graph_meta WHERE key = 'last_indexed'")
394
+ .get();
395
+ return {
396
+ entityCounts,
397
+ relationCounts,
398
+ totalEntities: totalEntitiesRow?.count ?? 0,
399
+ totalRelations: totalRelationsRow?.count ?? 0,
400
+ lastIndexed: lastIndexedRow?.value ?? '',
401
+ };
402
+ }
403
+ searchEntities(query, limit) {
404
+ const safeLimit = Math.max(1, Math.min(limit, 1000));
405
+ try {
406
+ const rows = this.db
407
+ .prepare(`
408
+ SELECT e.*
409
+ FROM entities e
410
+ JOIN entities_fts ON entities_fts.rowid = e.id
411
+ WHERE entities_fts MATCH ?
412
+ ORDER BY bm25(entities_fts)
413
+ LIMIT ?
414
+ `)
415
+ .all(query, safeLimit);
416
+ return rows.map(mapEntity);
417
+ }
418
+ catch (error) {
419
+ const errorMessage = error instanceof Error ? error.message : String(error);
420
+ console.warn('GraphStorage.searchEntities failed; returning empty results.', {
421
+ error: errorMessage,
422
+ });
423
+ return [];
424
+ }
425
+ }
426
+ getEntityById(id) {
427
+ const row = this.db.prepare('SELECT * FROM entities WHERE id = ?').get(id);
428
+ return row ? mapEntity(row) : null;
429
+ }
430
+ }
431
+ export function computeContentHash(content) {
432
+ return createHash('sha256').update(content).digest('hex');
433
+ }
434
+ export function hasChanged(storage, sourcePath, currentHash) {
435
+ const existing = storage.getEntitiesBySource(sourcePath);
436
+ if (existing.length === 0) {
437
+ return true;
438
+ }
439
+ return existing.some((entity) => !entity.contentHash || entity.contentHash !== currentHash);
440
+ }
441
+ //# sourceMappingURL=storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/graph/storage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ export declare const ENTITY_TYPES: readonly ["plan", "agent", "feature", "file", "tag", "concept"];
2
+ export type EntityType = (typeof ENTITY_TYPES)[number];
3
+ export interface Entity {
4
+ id: number;
5
+ type: EntityType;
6
+ canonicalId: string;
7
+ name: string;
8
+ sourcePath?: string;
9
+ contentHash?: string;
10
+ metadata: Record<string, unknown>;
11
+ createdAt: string;
12
+ updatedAt: string;
13
+ }
14
+ export declare const RELATION_TYPES: readonly ["CONTAINS", "DEPENDS_ON", "MODIFIES", "IMPLEMENTS", "SIMILAR_TO", "BLOCKS", "TAGGED_WITH"];
15
+ export type RelationType = (typeof RELATION_TYPES)[number];
16
+ export interface Relationship {
17
+ id: number;
18
+ sourceId: number;
19
+ targetId: number;
20
+ relationType: RelationType;
21
+ confidence: number;
22
+ metadata: Record<string, unknown>;
23
+ createdAt: string;
24
+ }
25
+ export interface GraphStats {
26
+ entityCounts: Record<EntityType, number>;
27
+ relationCounts: Record<RelationType, number>;
28
+ totalEntities: number;
29
+ totalRelations: number;
30
+ lastIndexed: string;
31
+ }
32
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/graph/types.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,iEAAkE,CAAC;AAE5F,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvD,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,UAAU,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,cAAc,sGAQjB,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3D,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,YAAY,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,YAAY,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACzC,cAAc,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAC7C,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;CACrB"}