@triedotdev/mcp 1.0.155 → 1.0.157

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 (118) hide show
  1. package/dist/{autonomy-config-RKLZW4XL.js → autonomy-config-FSERX3O3.js} +4 -4
  2. package/dist/{chat-store-O3IJ5PMN.js → chat-store-JNGNTDSN.js} +4 -4
  3. package/dist/{chunk-L4FODDDB.js → chunk-5BYSJ7XT.js} +2 -2
  4. package/dist/chunk-5PTA7A2E.js +3983 -0
  5. package/dist/chunk-5PTA7A2E.js.map +1 -0
  6. package/dist/{chunk-LFNH3CSN.js → chunk-5TRCQAOE.js} +4 -4
  7. package/dist/{chunk-EMJ7RVWB.js → chunk-62JD7MIS.js} +20 -20
  8. package/dist/chunk-62JD7MIS.js.map +1 -0
  9. package/dist/{chunk-CBAMZERA.js → chunk-ACU2RJUJ.js} +2 -2
  10. package/dist/{chunk-Z2E7X4WI.js → chunk-ACU3IXZG.js} +7 -7
  11. package/dist/{chunk-BUA5PQJY.js → chunk-BLQ3Z6O3.js} +90 -57
  12. package/dist/{chunk-BUA5PQJY.js.map → chunk-BLQ3Z6O3.js.map} +1 -1
  13. package/dist/{chunk-XUGUKSKO.js → chunk-FNZPMR62.js} +6 -3
  14. package/dist/chunk-FNZPMR62.js.map +1 -0
  15. package/dist/{chunk-UL337UDQ.js → chunk-FQ45QP5A.js} +2 -2
  16. package/dist/{chunk-FTOF3FHT.js → chunk-GDWA3CH3.js} +3 -3
  17. package/dist/{chunk-4ZAFQEP6.js → chunk-IRZXBQVQ.js} +4 -4
  18. package/dist/{chunk-3CYMLM35.js → chunk-JVMBCWKS.js} +2 -2
  19. package/dist/{chunk-JKEEQAG2.js → chunk-KDHN2ZQE.js} +2 -2
  20. package/dist/chunk-KDHN2ZQE.js.map +1 -0
  21. package/dist/{chunk-NVZZUUEU.js → chunk-LR46VMIE.js} +5 -5
  22. package/dist/{chunk-X64XFVAY.js → chunk-M4CGCPHR.js} +15 -15
  23. package/dist/{chunk-XD2HKZVB.js → chunk-ME2OERF5.js} +2 -2
  24. package/dist/{chunk-FXZAABXO.js → chunk-OLNZJ3XV.js} +2 -2
  25. package/dist/{chunk-2LAJKFWU.js → chunk-OMR4YCBS.js} +2 -2
  26. package/dist/{chunk-YEQXKKZQ.js → chunk-Q5EKA5YA.js} +2 -2
  27. package/dist/{chunk-WO7CC5FH.js → chunk-SY6KQG44.js} +2 -2
  28. package/dist/{chunk-T7UAH7GE.js → chunk-T63OHG4Q.js} +2 -2
  29. package/dist/{chunk-KYKADM7P.js → chunk-TN5WEKWI.js} +2 -2
  30. package/dist/{chunk-RY57G46E.js → chunk-UKIDAMAG.js} +12 -12
  31. package/dist/{chunk-KLMJKM63.js → chunk-VR4VWXXU.js} +3 -3
  32. package/dist/chunk-VR4VWXXU.js.map +1 -0
  33. package/dist/{chunk-JYWGYUKX.js → chunk-VUL52BQL.js} +6 -6
  34. package/dist/chunk-VUL52BQL.js.map +1 -0
  35. package/dist/{chunk-7F2R2ITA.js → chunk-VVITXIHN.js} +2 -2
  36. package/dist/{chunk-HD5H7YSW.js → chunk-Y4B3VEL7.js} +2 -2
  37. package/dist/{chunk-OVSYTWUU.js → chunk-ZBXW244P.js} +2 -2
  38. package/dist/cli/create-agent.js +2 -2
  39. package/dist/cli/main.js +28 -28
  40. package/dist/cli/yolo-daemon.js +25 -25
  41. package/dist/{client-ZHOLZTRW.js → client-NJPZE5JT.js} +4 -4
  42. package/dist/{codebase-index-N37NDF2A.js → codebase-index-VAPF32XX.js} +4 -4
  43. package/dist/{fast-analyzer-U6URGNQT.js → fast-analyzer-LLZ6FLP5.js} +6 -6
  44. package/dist/github-ingester-TFBDUDIY.js +11 -0
  45. package/dist/{goal-manager-5QDITJKE.js → goal-manager-D6XKE3FY.js} +8 -8
  46. package/dist/{goal-validator-FU5QWDQT.js → goal-validator-4DDL7NBP.js} +7 -7
  47. package/dist/graph-B3NA4S7I.js +10 -0
  48. package/dist/{hypothesis-JURDWVDC.js → hypothesis-RI3Q33JB.js} +8 -8
  49. package/dist/incident-index-EFNUSGWL.js +11 -0
  50. package/dist/index.js +30 -3991
  51. package/dist/index.js.map +1 -1
  52. package/dist/{insight-store-AMEP5PPF.js → insight-store-EC4PLSAW.js} +4 -4
  53. package/dist/{issue-store-RM3XLLKG.js → issue-store-DUR5UTYK.js} +5 -5
  54. package/dist/{ledger-PLE3C3X4.js → ledger-ZTR63P3L.js} +4 -4
  55. package/dist/linear-ingester-PLES2BRS.js +11 -0
  56. package/dist/{output-manager-FX4V7ERT.js → output-manager-JNMEAXFO.js} +3 -3
  57. package/dist/{progress-PAYTY7BF.js → progress-SRQ2V3BP.js} +2 -2
  58. package/dist/server/mcp-server.d.ts +22 -0
  59. package/dist/server/mcp-server.js +41 -0
  60. package/dist/tiered-storage-SUYPBYJL.js +12 -0
  61. package/dist/trie-agent-XWEJSIYH.js +27 -0
  62. package/dist/{vibe-code-signatures-J4GD4JOV.js → vibe-code-signatures-F6URTBW3.js} +3 -3
  63. package/dist/{vulnerability-signatures-EIKOHFPK.js → vulnerability-signatures-T7SKHORW.js} +3 -3
  64. package/dist/vulnerability-signatures-T7SKHORW.js.map +1 -0
  65. package/package.json +1 -1
  66. package/dist/chunk-EMJ7RVWB.js.map +0 -1
  67. package/dist/chunk-JKEEQAG2.js.map +0 -1
  68. package/dist/chunk-JYWGYUKX.js.map +0 -1
  69. package/dist/chunk-KLMJKM63.js.map +0 -1
  70. package/dist/chunk-XUGUKSKO.js.map +0 -1
  71. package/dist/github-ingester-AR5A4RAC.js +0 -11
  72. package/dist/graph-JO7GG65P.js +0 -10
  73. package/dist/incident-index-7CAXUNTL.js +0 -11
  74. package/dist/linear-ingester-NHFMKJBZ.js +0 -11
  75. package/dist/tiered-storage-SQDVZM2M.js +0 -12
  76. package/dist/trie-agent-TLOJ2UFS.js +0 -27
  77. /package/dist/{autonomy-config-RKLZW4XL.js.map → autonomy-config-FSERX3O3.js.map} +0 -0
  78. /package/dist/{chat-store-O3IJ5PMN.js.map → chat-store-JNGNTDSN.js.map} +0 -0
  79. /package/dist/{chunk-L4FODDDB.js.map → chunk-5BYSJ7XT.js.map} +0 -0
  80. /package/dist/{chunk-LFNH3CSN.js.map → chunk-5TRCQAOE.js.map} +0 -0
  81. /package/dist/{chunk-CBAMZERA.js.map → chunk-ACU2RJUJ.js.map} +0 -0
  82. /package/dist/{chunk-Z2E7X4WI.js.map → chunk-ACU3IXZG.js.map} +0 -0
  83. /package/dist/{chunk-UL337UDQ.js.map → chunk-FQ45QP5A.js.map} +0 -0
  84. /package/dist/{chunk-FTOF3FHT.js.map → chunk-GDWA3CH3.js.map} +0 -0
  85. /package/dist/{chunk-4ZAFQEP6.js.map → chunk-IRZXBQVQ.js.map} +0 -0
  86. /package/dist/{chunk-3CYMLM35.js.map → chunk-JVMBCWKS.js.map} +0 -0
  87. /package/dist/{chunk-NVZZUUEU.js.map → chunk-LR46VMIE.js.map} +0 -0
  88. /package/dist/{chunk-X64XFVAY.js.map → chunk-M4CGCPHR.js.map} +0 -0
  89. /package/dist/{chunk-XD2HKZVB.js.map → chunk-ME2OERF5.js.map} +0 -0
  90. /package/dist/{chunk-FXZAABXO.js.map → chunk-OLNZJ3XV.js.map} +0 -0
  91. /package/dist/{chunk-2LAJKFWU.js.map → chunk-OMR4YCBS.js.map} +0 -0
  92. /package/dist/{chunk-YEQXKKZQ.js.map → chunk-Q5EKA5YA.js.map} +0 -0
  93. /package/dist/{chunk-WO7CC5FH.js.map → chunk-SY6KQG44.js.map} +0 -0
  94. /package/dist/{chunk-T7UAH7GE.js.map → chunk-T63OHG4Q.js.map} +0 -0
  95. /package/dist/{chunk-KYKADM7P.js.map → chunk-TN5WEKWI.js.map} +0 -0
  96. /package/dist/{chunk-RY57G46E.js.map → chunk-UKIDAMAG.js.map} +0 -0
  97. /package/dist/{chunk-7F2R2ITA.js.map → chunk-VVITXIHN.js.map} +0 -0
  98. /package/dist/{chunk-HD5H7YSW.js.map → chunk-Y4B3VEL7.js.map} +0 -0
  99. /package/dist/{chunk-OVSYTWUU.js.map → chunk-ZBXW244P.js.map} +0 -0
  100. /package/dist/{client-ZHOLZTRW.js.map → client-NJPZE5JT.js.map} +0 -0
  101. /package/dist/{codebase-index-N37NDF2A.js.map → codebase-index-VAPF32XX.js.map} +0 -0
  102. /package/dist/{fast-analyzer-U6URGNQT.js.map → fast-analyzer-LLZ6FLP5.js.map} +0 -0
  103. /package/dist/{github-ingester-AR5A4RAC.js.map → github-ingester-TFBDUDIY.js.map} +0 -0
  104. /package/dist/{goal-manager-5QDITJKE.js.map → goal-manager-D6XKE3FY.js.map} +0 -0
  105. /package/dist/{goal-validator-FU5QWDQT.js.map → goal-validator-4DDL7NBP.js.map} +0 -0
  106. /package/dist/{graph-JO7GG65P.js.map → graph-B3NA4S7I.js.map} +0 -0
  107. /package/dist/{hypothesis-JURDWVDC.js.map → hypothesis-RI3Q33JB.js.map} +0 -0
  108. /package/dist/{incident-index-7CAXUNTL.js.map → incident-index-EFNUSGWL.js.map} +0 -0
  109. /package/dist/{insight-store-AMEP5PPF.js.map → insight-store-EC4PLSAW.js.map} +0 -0
  110. /package/dist/{issue-store-RM3XLLKG.js.map → issue-store-DUR5UTYK.js.map} +0 -0
  111. /package/dist/{ledger-PLE3C3X4.js.map → ledger-ZTR63P3L.js.map} +0 -0
  112. /package/dist/{linear-ingester-NHFMKJBZ.js.map → linear-ingester-PLES2BRS.js.map} +0 -0
  113. /package/dist/{output-manager-FX4V7ERT.js.map → output-manager-JNMEAXFO.js.map} +0 -0
  114. /package/dist/{progress-PAYTY7BF.js.map → progress-SRQ2V3BP.js.map} +0 -0
  115. /package/dist/{tiered-storage-SQDVZM2M.js.map → server/mcp-server.js.map} +0 -0
  116. /package/dist/{trie-agent-TLOJ2UFS.js.map → tiered-storage-SUYPBYJL.js.map} +0 -0
  117. /package/dist/{vibe-code-signatures-J4GD4JOV.js.map → trie-agent-XWEJSIYH.js.map} +0 -0
  118. /package/dist/{vulnerability-signatures-EIKOHFPK.js.map → vibe-code-signatures-F6URTBW3.js.map} +0 -0
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  getTrieDirectory
3
- } from "./chunk-7F2R2ITA.js";
3
+ } from "./chunk-VVITXIHN.js";
4
4
 
5
5
  // src/context/graph.ts
6
- import crypto from "crypto";
7
- import path2 from "path";
6
+ import * as crypto from "crypto";
7
+ import * as path2 from "path";
8
8
 
9
9
  // src/context/store.ts
10
10
  import Database from "better-sqlite3";
11
- import fs from "fs";
12
- import path from "path";
11
+ import * as fs from "fs";
12
+ import * as path from "path";
13
13
  var ContextStore = class {
14
14
  db;
15
15
  dbFilePath;
@@ -399,4 +399,4 @@ var ContextGraph = class {
399
399
  export {
400
400
  ContextGraph
401
401
  };
402
- //# sourceMappingURL=chunk-JYWGYUKX.js.map
402
+ //# sourceMappingURL=chunk-VUL52BQL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/context/graph.ts","../src/context/store.ts"],"sourcesContent":["import * as crypto from 'node:crypto';\nimport * as path from 'node:path';\n\nimport type { RiskLevel } from '../types/index.js';\nimport { ContextStore } from './store.js';\nimport type {\n ChangeNode,\n ChangeNodeData,\n ContextSnapshot,\n DecisionNode,\n DecisionNodeData,\n Edge,\n EdgeDirection,\n EdgeType,\n FileNode,\n FileNodeData,\n FixNode,\n FixNodeData,\n GitHubIssueNode,\n GitHubIssueNodeData,\n IncidentNode,\n IncidentNodeData,\n IssueNode,\n IssueNodeData,\n LinearTicketNode,\n LinearTicketNodeData,\n Node,\n NodeData,\n NodeType,\n PatternNode,\n PatternNodeData,\n PullRequestNode,\n PullRequestNodeData\n} from './types.js';\n\nexport class ContextGraph {\n private readonly store: ContextStore;\n private readonly projectPath: string;\n\n constructor(projectPath: string, dbPath?: string, store?: ContextStore) {\n this.projectPath = projectPath;\n this.store = store ?? new ContextStore(projectPath, dbPath);\n }\n\n get projectRoot(): string {\n return this.projectPath;\n }\n\n async addNode(type: 'file', data: FileNodeData): Promise<FileNode>;\n async addNode(type: 'change', data: ChangeNodeData): Promise<ChangeNode>;\n async addNode(type: 'incident', data: IncidentNodeData): Promise<IncidentNode>;\n async addNode(type: 'issue', data: IssueNodeData): Promise<IssueNode>;\n async addNode(type: 'pattern', data: PatternNodeData): Promise<PatternNode>;\n async addNode(type: 'fix', data: FixNodeData): Promise<FixNode>;\n async addNode(type: 'decision', data: DecisionNodeData): Promise<DecisionNode>;\n async addNode(type: 'linear-ticket', data: LinearTicketNodeData): Promise<LinearTicketNode>;\n async addNode(type: 'pull-request', data: PullRequestNodeData): Promise<PullRequestNode>;\n async addNode(type: 'github-issue', data: GitHubIssueNodeData): Promise<GitHubIssueNode>;\n async addNode(type: NodeType, data: NodeData): Promise<Node> {\n const now = new Date().toISOString();\n const id = this.generateNodeId(type, data);\n const node = {\n id,\n type,\n data,\n created_at: now,\n updated_at: now\n } as Node;\n\n this.store.addNode(node);\n return node;\n }\n\n async getNode(type: NodeType, id: string): Promise<Node | null> {\n return this.store.getNodeByType(type, id);\n }\n\n async updateNode(type: NodeType, id: string, updates: Partial<NodeData>): Promise<void> {\n const updated = this.store.updateNode(id, updates, new Date().toISOString());\n if (updated && updated.type !== type) {\n throw new Error(`Type mismatch for node ${id}: expected ${type} but found ${updated.type}`);\n }\n }\n\n async deleteNode(_type: NodeType, id: string): Promise<void> {\n this.store.deleteNode(id);\n }\n\n async addEdge(\n fromId: string,\n toId: string,\n type: EdgeType,\n metadata: Record<string, unknown> = {},\n weight = 1\n ): Promise<Edge> {\n const edge: Edge = {\n id: crypto.randomUUID(),\n from_id: fromId,\n to_id: toId,\n type,\n weight,\n metadata,\n created_at: new Date().toISOString()\n };\n\n this.store.addEdge(edge);\n return edge;\n }\n\n async getEdges(nodeId: string, direction: EdgeDirection = 'both'): Promise<Edge[]> {\n return this.store.getEdges(nodeId, direction);\n }\n\n async getIncidentsForFile(filePath: string): Promise<IncidentNode[]> {\n const fileNode = this.findFileNode(filePath);\n if (!fileNode) return [];\n\n const incidents = new Map<string, IncidentNode>();\n\n const affectEdges = this.store.getEdges(fileNode.id, 'in').filter((edge) => edge.type === 'affects');\n for (const edge of affectEdges) {\n const changeId = edge.from_id;\n const leadEdges = this.store.getEdges(changeId, 'out').filter((e) => e.type === 'leadTo');\n const causedByEdges = this.store.getEdges(changeId, 'in').filter((e) => e.type === 'causedBy');\n\n for (const le of leadEdges) {\n const incident = this.store.getNodeByType('incident', le.to_id);\n if (incident) incidents.set(incident.id, incident as IncidentNode);\n }\n\n for (const ce of causedByEdges) {\n const incident = this.store.getNodeByType('incident', ce.from_id);\n if (incident) incidents.set(incident.id, incident as IncidentNode);\n }\n }\n\n return Array.from(incidents.values());\n }\n\n async getPatternsForFile(filePath: string): Promise<PatternNode[]> {\n const normalized = this.normalizePath(filePath);\n const nodes = this.store.findNodesByType('pattern') as PatternNode[];\n\n return nodes.filter((node) =>\n node.data.appliesTo.some((pattern) => normalized.includes(pattern) || filePath.includes(pattern))\n );\n }\n\n async getRecentChanges(limit: number): Promise<ChangeNode[]> {\n const nodes = this.store.findNodesByType('change') as ChangeNode[];\n return nodes\n .sort((a, b) => new Date(b.data.timestamp).getTime() - new Date(a.data.timestamp).getTime())\n .slice(0, limit);\n }\n\n async calculateFileRisk(filePath: string): Promise<RiskLevel> {\n const fileNode = this.findFileNode(filePath);\n if (!fileNode) return 'low';\n\n // Simple heuristic based on incidents and changes\n const incidentScore = Math.min(fileNode.data.incidentCount * 2, 6);\n const changeScore = Math.min(fileNode.data.changeCount, 4);\n const baseScore = this.riskLevelToScore(fileNode.data.riskLevel);\n const total = baseScore + incidentScore + changeScore;\n\n if (total >= 10) return 'critical';\n if (total >= 7) return 'high';\n if (total >= 4) return 'medium';\n return 'low';\n }\n\n async listNodes(): Promise<Node[]> {\n return this.store.listNodes();\n }\n\n async listEdges(): Promise<Edge[]> {\n return this.store.listEdges();\n }\n\n async deleteEdge(id: string): Promise<void> {\n this.store.deleteEdge(id);\n }\n\n async getSnapshot(): Promise<ContextSnapshot> {\n return {\n nodes: this.store.listNodes(),\n edges: this.store.listEdges(),\n exported_at: new Date().toISOString()\n };\n }\n\n async applySnapshot(snapshot: ContextSnapshot): Promise<void> {\n for (const node of snapshot.nodes) {\n const existing = this.store.getNode(node.id);\n if (!existing || this.isNewer(node.updated_at, existing.updated_at)) {\n this.store.upsertNode(node);\n }\n }\n\n for (const edge of snapshot.edges) {\n const existing = this.store.getEdge(edge.id);\n if (!existing) {\n this.store.upsertEdge(edge);\n }\n }\n }\n\n private generateNodeId(type: NodeType, data: NodeData): string {\n if (type === 'file') {\n const fileData = data as FileNodeData;\n return this.normalizePath(fileData.path);\n }\n\n if (type === 'change') {\n const changeData = data as ChangeNodeData;\n if (changeData.commitHash) {\n return changeData.commitHash;\n }\n }\n\n if (type === 'linear-ticket') {\n const ticketData = data as LinearTicketNodeData;\n return `linear:${ticketData.ticketId}`;\n }\n\n if (type === 'pull-request') {\n const prData = data as PullRequestNodeData;\n return `pr:${prData.prNumber}`;\n }\n\n if (type === 'github-issue') {\n const issueData = data as GitHubIssueNodeData;\n return `gh-issue:${issueData.issueNumber}`;\n }\n\n return crypto.randomUUID();\n }\n\n private findFileNode(filePath: string): FileNode | null {\n const normalized = this.normalizePath(filePath);\n const nodes = this.store.findNodesByType('file') as FileNode[];\n return (\n nodes.find(\n (node) =>\n node.id === normalized ||\n this.normalizePath(node.data.path) === normalized ||\n node.data.path === filePath\n ) ?? null\n );\n }\n\n private normalizePath(filePath: string): string {\n return path.resolve(this.projectPath, filePath);\n }\n\n private riskLevelToScore(level: RiskLevel): number {\n switch (level) {\n case 'critical':\n return 6;\n case 'high':\n return 4;\n case 'medium':\n return 2;\n default:\n return 0;\n }\n }\n\n private isNewer(incoming: string, existing: string): boolean {\n return new Date(incoming).getTime() >= new Date(existing).getTime();\n }\n}\n","import Database, { type Database as DatabaseType } from 'better-sqlite3';\nimport * as fs from 'node:fs';\nimport * as path from 'node:path';\nimport { getTrieDirectory } from '../utils/workspace.js';\n\nimport type { Edge, EdgeDirection, EdgeType, Node, NodeData, NodeType } from './types.js';\n\ntype NodeRow = {\n id: string;\n type: NodeType;\n data: string;\n created_at: string;\n updated_at: string;\n};\n\ntype EdgeRow = {\n id: string;\n from_id: string;\n to_id: string;\n type: EdgeType;\n weight: number;\n metadata: string | null;\n created_at: string;\n};\n\nexport class ContextStore {\n private db: DatabaseType;\n private readonly dbFilePath: string;\n\n constructor(projectPath: string, dbFilePath?: string) {\n this.dbFilePath = dbFilePath ?? path.join(getTrieDirectory(projectPath), 'context.db');\n this.ensureDirectory();\n\n this.db = new Database(this.dbFilePath);\n this.configure();\n this.prepareSchema();\n }\n\n get databasePath(): string {\n return this.dbFilePath;\n }\n\n addNode(node: Node): Node {\n const stmt = this.db.prepare(\n `INSERT INTO nodes (id, type, data, created_at, updated_at)\n VALUES (@id, @type, @data, @created_at, @updated_at)`\n );\n\n stmt.run({\n id: node.id,\n type: node.type,\n data: JSON.stringify(node.data),\n created_at: node.created_at,\n updated_at: node.updated_at\n });\n\n return node;\n }\n\n upsertNode(node: Node): Node {\n const stmt = this.db.prepare(\n `INSERT INTO nodes (id, type, data, created_at, updated_at)\n VALUES (@id, @type, @data, @created_at, @updated_at)\n ON CONFLICT(id) DO UPDATE SET\n type=excluded.type,\n data=excluded.data,\n updated_at=excluded.updated_at`\n );\n\n stmt.run({\n id: node.id,\n type: node.type,\n data: JSON.stringify(node.data),\n created_at: node.created_at,\n updated_at: node.updated_at\n });\n\n return node;\n }\n\n getNode(id: string): Node | null {\n const row = this.db.prepare('SELECT * FROM nodes WHERE id = ?').get(id) as NodeRow | undefined;\n return row ? this.mapNodeRow(row) : null;\n }\n\n getNodeByType(type: NodeType, id: string): Node | null {\n const row = this.db\n .prepare('SELECT * FROM nodes WHERE id = ? AND type = ?')\n .get(id, type) as NodeRow | undefined;\n return row ? this.mapNodeRow(row) : null;\n }\n\n updateNode(id: string, updates: Partial<NodeData>, updatedAt: string): Node | null {\n const existing = this.getNode(id);\n if (!existing) {\n return null;\n }\n\n const merged = {\n ...existing,\n data: { ...existing.data, ...updates },\n updated_at: updatedAt\n } as Node;\n\n this.db\n .prepare(\n `UPDATE nodes SET data = @data, updated_at = @updated_at\n WHERE id = @id`\n )\n .run({\n id,\n data: JSON.stringify(merged.data),\n updated_at: merged.updated_at\n });\n\n return merged;\n }\n\n deleteNode(id: string): void {\n const deleteEdges = this.db.prepare('DELETE FROM edges WHERE from_id = ? OR to_id = ?');\n const deleteNodeStmt = this.db.prepare('DELETE FROM nodes WHERE id = ?');\n\n const transaction = this.db.transaction((nodeId: string) => {\n deleteEdges.run(nodeId, nodeId);\n deleteNodeStmt.run(nodeId);\n });\n\n transaction(id);\n }\n\n listNodes(): Node[] {\n const rows = this.db.prepare('SELECT * FROM nodes').all() as NodeRow[];\n return rows.map((row) => this.mapNodeRow(row));\n }\n\n findNodesByType(type: NodeType): Node[] {\n const rows = this.db.prepare('SELECT * FROM nodes WHERE type = ?').all(type) as NodeRow[];\n return rows.map((row) => this.mapNodeRow(row));\n }\n\n addEdge(edge: Edge): Edge {\n const stmt = this.db.prepare(\n `INSERT INTO edges (id, from_id, to_id, type, weight, metadata, created_at)\n VALUES (@id, @from_id, @to_id, @type, @weight, @metadata, @created_at)`\n );\n\n stmt.run({\n id: edge.id,\n from_id: edge.from_id,\n to_id: edge.to_id,\n type: edge.type,\n weight: edge.weight,\n metadata: JSON.stringify(edge.metadata ?? {}),\n created_at: edge.created_at\n });\n\n return edge;\n }\n\n upsertEdge(edge: Edge): Edge {\n const stmt = this.db.prepare(\n `INSERT INTO edges (id, from_id, to_id, type, weight, metadata, created_at)\n VALUES (@id, @from_id, @to_id, @type, @weight, @metadata, @created_at)\n ON CONFLICT(id) DO UPDATE SET\n from_id=excluded.from_id,\n to_id=excluded.to_id,\n type=excluded.type,\n weight=excluded.weight,\n metadata=excluded.metadata`\n );\n\n stmt.run({\n id: edge.id,\n from_id: edge.from_id,\n to_id: edge.to_id,\n type: edge.type,\n weight: edge.weight,\n metadata: JSON.stringify(edge.metadata ?? {}),\n created_at: edge.created_at\n });\n\n return edge;\n }\n\n getEdge(id: string): Edge | null {\n const row = this.db.prepare('SELECT * FROM edges WHERE id = ?').get(id) as EdgeRow | undefined;\n return row ? this.mapEdgeRow(row) : null;\n }\n\n getEdges(nodeId: string, direction: EdgeDirection = 'both'): Edge[] {\n let rows: EdgeRow[];\n\n if (direction === 'in') {\n rows = this.db.prepare('SELECT * FROM edges WHERE to_id = ?').all(nodeId) as EdgeRow[];\n } else if (direction === 'out') {\n rows = this.db.prepare('SELECT * FROM edges WHERE from_id = ?').all(nodeId) as EdgeRow[];\n } else {\n rows = this.db\n .prepare('SELECT * FROM edges WHERE from_id = ? OR to_id = ?')\n .all(nodeId, nodeId) as EdgeRow[];\n }\n\n return rows.map((row) => this.mapEdgeRow(row));\n }\n\n listEdges(): Edge[] {\n const rows = this.db.prepare('SELECT * FROM edges').all() as EdgeRow[];\n return rows.map((row) => this.mapEdgeRow(row));\n }\n\n deleteEdge(id: string): void {\n this.db.prepare('DELETE FROM edges WHERE id = ?').run(id);\n }\n\n close(): void {\n this.db.close();\n }\n\n private ensureDirectory(): void {\n fs.mkdirSync(path.dirname(this.dbFilePath), { recursive: true });\n }\n\n private configure(): void {\n this.db.pragma('journal_mode = WAL');\n this.db.pragma('busy_timeout = 5000');\n this.db.pragma('synchronous = NORMAL');\n }\n\n private prepareSchema(): void {\n this.db.exec(`\n CREATE TABLE IF NOT EXISTS nodes (\n id TEXT PRIMARY KEY,\n type TEXT NOT NULL,\n data TEXT NOT NULL,\n created_at TEXT NOT NULL,\n updated_at TEXT NOT NULL\n );\n\n CREATE TABLE IF NOT EXISTS edges (\n id TEXT PRIMARY KEY,\n from_id TEXT NOT NULL,\n to_id TEXT NOT NULL,\n type TEXT NOT NULL,\n weight REAL NOT NULL DEFAULT 1,\n metadata TEXT DEFAULT '{}',\n created_at TEXT NOT NULL\n );\n\n CREATE INDEX IF NOT EXISTS idx_nodes_type ON nodes(type);\n CREATE INDEX IF NOT EXISTS idx_edges_from ON edges(from_id);\n CREATE INDEX IF NOT EXISTS idx_edges_to ON edges(to_id);\n CREATE INDEX IF NOT EXISTS idx_edges_type ON edges(type);\n `);\n }\n\n private mapNodeRow(row: NodeRow): Node {\n return {\n id: row.id,\n type: row.type,\n data: JSON.parse(row.data),\n created_at: row.created_at,\n updated_at: row.updated_at\n } as Node;\n }\n\n private mapEdgeRow(row: EdgeRow): Edge {\n return {\n id: row.id,\n from_id: row.from_id,\n to_id: row.to_id,\n type: row.type,\n weight: row.weight,\n created_at: row.created_at,\n metadata: row.metadata ? (JSON.parse(row.metadata) as Record<string, unknown>) : {}\n };\n }\n}\n"],"mappings":"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","names":["path"]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  isInteractiveMode
3
- } from "./chunk-JKEEQAG2.js";
3
+ } from "./chunk-KDHN2ZQE.js";
4
4
 
5
5
  // src/utils/workspace.ts
6
6
  import { execSync } from "child_process";
@@ -186,4 +186,4 @@ export {
186
186
  getTrieDirectory,
187
187
  getWorkingDirectory
188
188
  };
189
- //# sourceMappingURL=chunk-7F2R2ITA.js.map
189
+ //# sourceMappingURL=chunk-VVITXIHN.js.map
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  getTrieDirectory,
6
6
  getWorkingDirectory
7
- } from "./chunk-7F2R2ITA.js";
7
+ } from "./chunk-VVITXIHN.js";
8
8
 
9
9
  // src/memory/ledger.ts
10
10
  import { createHash } from "crypto";
@@ -1389,4 +1389,4 @@ export {
1389
1389
  getEntryCorrectionHistory,
1390
1390
  getCorrectionStats
1391
1391
  };
1392
- //# sourceMappingURL=chunk-HD5H7YSW.js.map
1392
+ //# sourceMappingURL=chunk-Y4B3VEL7.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  getTrieDirectory,
3
3
  getWorkingDirectory
4
- } from "./chunk-7F2R2ITA.js";
4
+ } from "./chunk-VVITXIHN.js";
5
5
 
6
6
  // src/utils/project-info.ts
7
7
  import { readFile, writeFile, mkdir } from "fs/promises";
@@ -847,4 +847,4 @@ export {
847
847
  loadContextState,
848
848
  getContextForAI
849
849
  };
850
- //# sourceMappingURL=chunk-OVSYTWUU.js.map
850
+ //# sourceMappingURL=chunk-ZBXW244P.js.map
@@ -2,8 +2,8 @@
2
2
  import {
3
3
  getTrieDirectory,
4
4
  getWorkingDirectory
5
- } from "../chunk-7F2R2ITA.js";
6
- import "../chunk-JKEEQAG2.js";
5
+ } from "../chunk-VVITXIHN.js";
6
+ import "../chunk-KDHN2ZQE.js";
7
7
  import "../chunk-DGUM43GV.js";
8
8
 
9
9
  // src/ingest/agent-builder.ts
package/dist/cli/main.js CHANGED
@@ -7,10 +7,10 @@ import {
7
7
  loadProjectInfo,
8
8
  needsBootstrap,
9
9
  projectInfoExists
10
- } from "../chunk-OVSYTWUU.js";
10
+ } from "../chunk-ZBXW244P.js";
11
11
  import {
12
12
  LinearIngester
13
- } from "../chunk-FXZAABXO.js";
13
+ } from "../chunk-OLNZJ3XV.js";
14
14
  import {
15
15
  LearningEngine,
16
16
  exportToJson,
@@ -20,14 +20,14 @@ import {
20
20
  isTrieInitialized,
21
21
  perceiveCurrentChanges,
22
22
  reasonAboutChangesHumanReadable
23
- } from "../chunk-EMJ7RVWB.js";
23
+ } from "../chunk-62JD7MIS.js";
24
24
  import {
25
25
  loadConfig,
26
26
  saveConfig
27
- } from "../chunk-FTOF3FHT.js";
27
+ } from "../chunk-GDWA3CH3.js";
28
28
  import {
29
29
  IncidentIndex
30
- } from "../chunk-KYKADM7P.js";
30
+ } from "../chunk-TN5WEKWI.js";
31
31
  import "../chunk-ZV2K6M7T.js";
32
32
  import {
33
33
  GotchaPredictor,
@@ -37,30 +37,20 @@ import {
37
37
  listTrackedProjects,
38
38
  searchGlobalPatterns,
39
39
  updateGlobalMemoryMd
40
- } from "../chunk-RY57G46E.js";
40
+ } from "../chunk-UKIDAMAG.js";
41
+ import {
42
+ getStorage
43
+ } from "../chunk-FNZPMR62.js";
41
44
  import {
42
45
  ContextGraph
43
- } from "../chunk-JYWGYUKX.js";
46
+ } from "../chunk-VUL52BQL.js";
44
47
  import {
45
48
  measureInitialGoalValue
46
- } from "../chunk-Z2E7X4WI.js";
47
- import "../chunk-UL337UDQ.js";
49
+ } from "../chunk-ACU3IXZG.js";
50
+ import "../chunk-FQ45QP5A.js";
48
51
  import {
49
52
  getProjectState
50
- } from "../chunk-L4FODDDB.js";
51
- import "../chunk-WO7CC5FH.js";
52
- import "../chunk-2LAJKFWU.js";
53
- import "../chunk-6NLHFIYA.js";
54
- import {
55
- getStorage
56
- } from "../chunk-XUGUKSKO.js";
57
- import {
58
- getAutonomyConfig,
59
- recordBypass,
60
- shouldAutoFix,
61
- shouldBlockPush,
62
- trackIssueOccurrence
63
- } from "../chunk-XD2HKZVB.js";
53
+ } from "../chunk-5BYSJ7XT.js";
64
54
  import {
65
55
  getDailyLogs,
66
56
  getMemoryStats,
@@ -68,8 +58,18 @@ import {
68
58
  markIssueResolved,
69
59
  purgeIssues,
70
60
  searchIssues
71
- } from "../chunk-4ZAFQEP6.js";
61
+ } from "../chunk-IRZXBQVQ.js";
72
62
  import "../chunk-EFWVF6TI.js";
63
+ import "../chunk-SY6KQG44.js";
64
+ import "../chunk-OMR4YCBS.js";
65
+ import "../chunk-6NLHFIYA.js";
66
+ import {
67
+ getAutonomyConfig,
68
+ recordBypass,
69
+ shouldAutoFix,
70
+ shouldBlockPush,
71
+ trackIssueOccurrence
72
+ } from "../chunk-ME2OERF5.js";
73
73
  import {
74
74
  compressOldBlocks,
75
75
  correctLedgerEntries,
@@ -91,13 +91,13 @@ import {
91
91
  shouldCompress,
92
92
  syncLedgerFromShared,
93
93
  verifyLedger
94
- } from "../chunk-HD5H7YSW.js";
94
+ } from "../chunk-Y4B3VEL7.js";
95
95
  import "../chunk-43X6JBEM.js";
96
96
  import {
97
97
  getTrieDirectory,
98
98
  getWorkingDirectory
99
- } from "../chunk-7F2R2ITA.js";
100
- import "../chunk-JKEEQAG2.js";
99
+ } from "../chunk-VVITXIHN.js";
100
+ import "../chunk-KDHN2ZQE.js";
101
101
  import {
102
102
  __require
103
103
  } from "../chunk-DGUM43GV.js";
@@ -974,7 +974,7 @@ async function handlePreCommitCommand(_args) {
974
974
  console.error(pc2.yellow("\u26A0 Could not get staged files, skipping pre-commit check"));
975
975
  process.exit(0);
976
976
  }
977
- const { searchIssues: searchIssues2 } = await import("../issue-store-RM3XLLKG.js");
977
+ const { searchIssues: searchIssues2 } = await import("../issue-store-DUR5UTYK.js");
978
978
  let criticalIssues = 0;
979
979
  let totalIssues = 0;
980
980
  const issuesByFile = /* @__PURE__ */ new Map();
@@ -3,41 +3,41 @@ import {
3
3
  InteractiveDashboard,
4
4
  StreamingManager,
5
5
  TrieWatchTool
6
- } from "../chunk-BUA5PQJY.js";
7
- import "../chunk-3CYMLM35.js";
8
- import "../chunk-X64XFVAY.js";
9
- import "../chunk-YEQXKKZQ.js";
10
- import "../chunk-KLMJKM63.js";
11
- import "../chunk-LFNH3CSN.js";
12
- import "../chunk-NVZZUUEU.js";
13
- import "../chunk-T7UAH7GE.js";
6
+ } from "../chunk-BLQ3Z6O3.js";
7
+ import "../chunk-JVMBCWKS.js";
8
+ import "../chunk-M4CGCPHR.js";
9
+ import "../chunk-Q5EKA5YA.js";
10
+ import "../chunk-VR4VWXXU.js";
11
+ import "../chunk-5TRCQAOE.js";
12
+ import "../chunk-LR46VMIE.js";
13
+ import "../chunk-T63OHG4Q.js";
14
14
  import {
15
15
  isTrieInitialized
16
- } from "../chunk-EMJ7RVWB.js";
17
- import "../chunk-FTOF3FHT.js";
18
- import "../chunk-KYKADM7P.js";
16
+ } from "../chunk-62JD7MIS.js";
17
+ import "../chunk-GDWA3CH3.js";
18
+ import "../chunk-TN5WEKWI.js";
19
19
  import "../chunk-ZV2K6M7T.js";
20
- import "../chunk-RY57G46E.js";
21
- import "../chunk-JYWGYUKX.js";
22
- import "../chunk-Z2E7X4WI.js";
23
- import "../chunk-UL337UDQ.js";
24
- import "../chunk-L4FODDDB.js";
25
- import "../chunk-WO7CC5FH.js";
26
- import "../chunk-2LAJKFWU.js";
27
- import "../chunk-6NLHFIYA.js";
28
- import "../chunk-XUGUKSKO.js";
29
- import "../chunk-XD2HKZVB.js";
30
- import "../chunk-4ZAFQEP6.js";
20
+ import "../chunk-UKIDAMAG.js";
21
+ import "../chunk-FNZPMR62.js";
22
+ import "../chunk-VUL52BQL.js";
23
+ import "../chunk-ACU3IXZG.js";
24
+ import "../chunk-FQ45QP5A.js";
25
+ import "../chunk-5BYSJ7XT.js";
26
+ import "../chunk-IRZXBQVQ.js";
31
27
  import "../chunk-EFWVF6TI.js";
32
- import "../chunk-HD5H7YSW.js";
28
+ import "../chunk-SY6KQG44.js";
29
+ import "../chunk-OMR4YCBS.js";
30
+ import "../chunk-6NLHFIYA.js";
31
+ import "../chunk-ME2OERF5.js";
32
+ import "../chunk-Y4B3VEL7.js";
33
33
  import "../chunk-43X6JBEM.js";
34
34
  import {
35
35
  getWorkingDirectory
36
- } from "../chunk-7F2R2ITA.js";
36
+ } from "../chunk-VVITXIHN.js";
37
37
  import {
38
38
  isInteractiveMode,
39
39
  setInteractiveMode
40
- } from "../chunk-JKEEQAG2.js";
40
+ } from "../chunk-KDHN2ZQE.js";
41
41
  import "../chunk-DGUM43GV.js";
42
42
 
43
43
  // src/cli/yolo-daemon.ts
@@ -9,9 +9,9 @@ import {
9
9
  saveKeyToKeychain,
10
10
  setAPIKey,
11
11
  tryGetClient
12
- } from "./chunk-UL337UDQ.js";
13
- import "./chunk-7F2R2ITA.js";
14
- import "./chunk-JKEEQAG2.js";
12
+ } from "./chunk-FQ45QP5A.js";
13
+ import "./chunk-VVITXIHN.js";
14
+ import "./chunk-KDHN2ZQE.js";
15
15
  import "./chunk-DGUM43GV.js";
16
16
  export {
17
17
  analyzeCodeIssues,
@@ -25,4 +25,4 @@ export {
25
25
  setAPIKey,
26
26
  tryGetClient
27
27
  };
28
- //# sourceMappingURL=client-ZHOLZTRW.js.map
28
+ //# sourceMappingURL=client-NJPZE5JT.js.map
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  CodebaseIndex
3
- } from "./chunk-YEQXKKZQ.js";
3
+ } from "./chunk-Q5EKA5YA.js";
4
4
  import "./chunk-6NLHFIYA.js";
5
5
  import "./chunk-43X6JBEM.js";
6
- import "./chunk-7F2R2ITA.js";
7
- import "./chunk-JKEEQAG2.js";
6
+ import "./chunk-VVITXIHN.js";
7
+ import "./chunk-KDHN2ZQE.js";
8
8
  import "./chunk-DGUM43GV.js";
9
9
  export {
10
10
  CodebaseIndex
11
11
  };
12
- //# sourceMappingURL=codebase-index-N37NDF2A.js.map
12
+ //# sourceMappingURL=codebase-index-VAPF32XX.js.map
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  CodebaseIndex
3
- } from "./chunk-YEQXKKZQ.js";
3
+ } from "./chunk-Q5EKA5YA.js";
4
4
  import "./chunk-6NLHFIYA.js";
5
5
  import "./chunk-43X6JBEM.js";
6
- import "./chunk-7F2R2ITA.js";
7
- import "./chunk-JKEEQAG2.js";
6
+ import "./chunk-VVITXIHN.js";
7
+ import "./chunk-KDHN2ZQE.js";
8
8
  import "./chunk-DGUM43GV.js";
9
9
 
10
10
  // src/agent/fast-analyzer.ts
@@ -37,7 +37,7 @@ async function analyzeFilesRapidly(goals, projectPath, options = {}) {
37
37
  onProgress
38
38
  );
39
39
  } else {
40
- const { checkFilesForGoalViolations } = await import("./goal-validator-FU5QWDQT.js");
40
+ const { checkFilesForGoalViolations } = await import("./goal-validator-4DDL7NBP.js");
41
41
  newViolations = await checkFilesForGoalViolations(
42
42
  goals,
43
43
  projectPath,
@@ -171,7 +171,7 @@ async function analyzeWithSmartBatching(codebaseIndex, filesToScan, goals, proje
171
171
  const end = Math.min(start + adaptiveBatchSize, filesToScan.length);
172
172
  const batchFiles = filesToScan.slice(start, end);
173
173
  onProgress?.(`Fast analysis (${i + 1}/${totalBatches}): ${batchFiles.length} files...`);
174
- const { checkFilesForGoalViolations } = await import("./goal-validator-FU5QWDQT.js");
174
+ const { checkFilesForGoalViolations } = await import("./goal-validator-4DDL7NBP.js");
175
175
  const batchResults = await checkFilesForGoalViolations(
176
176
  goals,
177
177
  projectPath,
@@ -213,4 +213,4 @@ export {
213
213
  analyzeFilesRapidly,
214
214
  getAnalysisStats
215
215
  };
216
- //# sourceMappingURL=fast-analyzer-U6URGNQT.js.map
216
+ //# sourceMappingURL=fast-analyzer-LLZ6FLP5.js.map
@@ -0,0 +1,11 @@
1
+ import {
2
+ GitHubIngester
3
+ } from "./chunk-ACU2RJUJ.js";
4
+ import "./chunk-GDWA3CH3.js";
5
+ import "./chunk-VVITXIHN.js";
6
+ import "./chunk-KDHN2ZQE.js";
7
+ import "./chunk-DGUM43GV.js";
8
+ export {
9
+ GitHubIngester
10
+ };
11
+ //# sourceMappingURL=github-ingester-TFBDUDIY.js.map
@@ -4,15 +4,15 @@ import {
4
4
  calculateAdaptiveScanFrequency,
5
5
  clearGoalManagers,
6
6
  getGoalManager
7
- } from "./chunk-LFNH3CSN.js";
8
- import "./chunk-T7UAH7GE.js";
9
- import "./chunk-L4FODDDB.js";
10
- import "./chunk-4ZAFQEP6.js";
7
+ } from "./chunk-5TRCQAOE.js";
8
+ import "./chunk-T63OHG4Q.js";
9
+ import "./chunk-5BYSJ7XT.js";
10
+ import "./chunk-IRZXBQVQ.js";
11
11
  import "./chunk-EFWVF6TI.js";
12
- import "./chunk-HD5H7YSW.js";
12
+ import "./chunk-Y4B3VEL7.js";
13
13
  import "./chunk-43X6JBEM.js";
14
- import "./chunk-7F2R2ITA.js";
15
- import "./chunk-JKEEQAG2.js";
14
+ import "./chunk-VVITXIHN.js";
15
+ import "./chunk-KDHN2ZQE.js";
16
16
  import "./chunk-DGUM43GV.js";
17
17
  export {
18
18
  GoalManager,
@@ -21,4 +21,4 @@ export {
21
21
  clearGoalManagers,
22
22
  getGoalManager
23
23
  };
24
- //# sourceMappingURL=goal-manager-5QDITJKE.js.map
24
+ //# sourceMappingURL=goal-manager-D6XKE3FY.js.map
@@ -4,14 +4,14 @@ import {
4
4
  measureInitialGoalValue,
5
5
  recordGoalViolationCaught,
6
6
  recordGoalViolationFixed
7
- } from "./chunk-Z2E7X4WI.js";
8
- import "./chunk-L4FODDDB.js";
9
- import "./chunk-4ZAFQEP6.js";
7
+ } from "./chunk-ACU3IXZG.js";
8
+ import "./chunk-5BYSJ7XT.js";
9
+ import "./chunk-IRZXBQVQ.js";
10
10
  import "./chunk-EFWVF6TI.js";
11
- import "./chunk-HD5H7YSW.js";
11
+ import "./chunk-Y4B3VEL7.js";
12
12
  import "./chunk-43X6JBEM.js";
13
- import "./chunk-7F2R2ITA.js";
14
- import "./chunk-JKEEQAG2.js";
13
+ import "./chunk-VVITXIHN.js";
14
+ import "./chunk-KDHN2ZQE.js";
15
15
  import "./chunk-DGUM43GV.js";
16
16
  export {
17
17
  checkFilesForGoalViolations,
@@ -20,4 +20,4 @@ export {
20
20
  recordGoalViolationCaught,
21
21
  recordGoalViolationFixed
22
22
  };
23
- //# sourceMappingURL=goal-validator-FU5QWDQT.js.map
23
+ //# sourceMappingURL=goal-validator-4DDL7NBP.js.map
@@ -0,0 +1,10 @@
1
+ import {
2
+ ContextGraph
3
+ } from "./chunk-VUL52BQL.js";
4
+ import "./chunk-VVITXIHN.js";
5
+ import "./chunk-KDHN2ZQE.js";
6
+ import "./chunk-DGUM43GV.js";
7
+ export {
8
+ ContextGraph
9
+ };
10
+ //# sourceMappingURL=graph-B3NA4S7I.js.map
@@ -3,15 +3,15 @@ import {
3
3
  clearHypothesisEngines,
4
4
  gatherEvidenceForHypothesis,
5
5
  getHypothesisEngine
6
- } from "./chunk-NVZZUUEU.js";
7
- import "./chunk-T7UAH7GE.js";
8
- import "./chunk-L4FODDDB.js";
9
- import "./chunk-4ZAFQEP6.js";
6
+ } from "./chunk-LR46VMIE.js";
7
+ import "./chunk-T63OHG4Q.js";
8
+ import "./chunk-5BYSJ7XT.js";
9
+ import "./chunk-IRZXBQVQ.js";
10
10
  import "./chunk-EFWVF6TI.js";
11
- import "./chunk-HD5H7YSW.js";
11
+ import "./chunk-Y4B3VEL7.js";
12
12
  import "./chunk-43X6JBEM.js";
13
- import "./chunk-7F2R2ITA.js";
14
- import "./chunk-JKEEQAG2.js";
13
+ import "./chunk-VVITXIHN.js";
14
+ import "./chunk-KDHN2ZQE.js";
15
15
  import "./chunk-DGUM43GV.js";
16
16
  export {
17
17
  HypothesisEngine,
@@ -19,4 +19,4 @@ export {
19
19
  gatherEvidenceForHypothesis,
20
20
  getHypothesisEngine
21
21
  };
22
- //# sourceMappingURL=hypothesis-JURDWVDC.js.map
22
+ //# sourceMappingURL=hypothesis-RI3Q33JB.js.map
@@ -0,0 +1,11 @@
1
+ import {
2
+ IncidentIndex
3
+ } from "./chunk-TN5WEKWI.js";
4
+ import "./chunk-6NLHFIYA.js";
5
+ import "./chunk-VVITXIHN.js";
6
+ import "./chunk-KDHN2ZQE.js";
7
+ import "./chunk-DGUM43GV.js";
8
+ export {
9
+ IncidentIndex
10
+ };
11
+ //# sourceMappingURL=incident-index-EFNUSGWL.js.map