@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.
- package/dist/{autonomy-config-RKLZW4XL.js → autonomy-config-FSERX3O3.js} +4 -4
- package/dist/{chat-store-O3IJ5PMN.js → chat-store-JNGNTDSN.js} +4 -4
- package/dist/{chunk-L4FODDDB.js → chunk-5BYSJ7XT.js} +2 -2
- package/dist/chunk-5PTA7A2E.js +3983 -0
- package/dist/chunk-5PTA7A2E.js.map +1 -0
- package/dist/{chunk-LFNH3CSN.js → chunk-5TRCQAOE.js} +4 -4
- package/dist/{chunk-EMJ7RVWB.js → chunk-62JD7MIS.js} +20 -20
- package/dist/chunk-62JD7MIS.js.map +1 -0
- package/dist/{chunk-CBAMZERA.js → chunk-ACU2RJUJ.js} +2 -2
- package/dist/{chunk-Z2E7X4WI.js → chunk-ACU3IXZG.js} +7 -7
- package/dist/{chunk-BUA5PQJY.js → chunk-BLQ3Z6O3.js} +90 -57
- package/dist/{chunk-BUA5PQJY.js.map → chunk-BLQ3Z6O3.js.map} +1 -1
- package/dist/{chunk-XUGUKSKO.js → chunk-FNZPMR62.js} +6 -3
- package/dist/chunk-FNZPMR62.js.map +1 -0
- package/dist/{chunk-UL337UDQ.js → chunk-FQ45QP5A.js} +2 -2
- package/dist/{chunk-FTOF3FHT.js → chunk-GDWA3CH3.js} +3 -3
- package/dist/{chunk-4ZAFQEP6.js → chunk-IRZXBQVQ.js} +4 -4
- package/dist/{chunk-3CYMLM35.js → chunk-JVMBCWKS.js} +2 -2
- package/dist/{chunk-JKEEQAG2.js → chunk-KDHN2ZQE.js} +2 -2
- package/dist/chunk-KDHN2ZQE.js.map +1 -0
- package/dist/{chunk-NVZZUUEU.js → chunk-LR46VMIE.js} +5 -5
- package/dist/{chunk-X64XFVAY.js → chunk-M4CGCPHR.js} +15 -15
- package/dist/{chunk-XD2HKZVB.js → chunk-ME2OERF5.js} +2 -2
- package/dist/{chunk-FXZAABXO.js → chunk-OLNZJ3XV.js} +2 -2
- package/dist/{chunk-2LAJKFWU.js → chunk-OMR4YCBS.js} +2 -2
- package/dist/{chunk-YEQXKKZQ.js → chunk-Q5EKA5YA.js} +2 -2
- package/dist/{chunk-WO7CC5FH.js → chunk-SY6KQG44.js} +2 -2
- package/dist/{chunk-T7UAH7GE.js → chunk-T63OHG4Q.js} +2 -2
- package/dist/{chunk-KYKADM7P.js → chunk-TN5WEKWI.js} +2 -2
- package/dist/{chunk-RY57G46E.js → chunk-UKIDAMAG.js} +12 -12
- package/dist/{chunk-KLMJKM63.js → chunk-VR4VWXXU.js} +3 -3
- package/dist/chunk-VR4VWXXU.js.map +1 -0
- package/dist/{chunk-JYWGYUKX.js → chunk-VUL52BQL.js} +6 -6
- package/dist/chunk-VUL52BQL.js.map +1 -0
- package/dist/{chunk-7F2R2ITA.js → chunk-VVITXIHN.js} +2 -2
- package/dist/{chunk-HD5H7YSW.js → chunk-Y4B3VEL7.js} +2 -2
- package/dist/{chunk-OVSYTWUU.js → chunk-ZBXW244P.js} +2 -2
- package/dist/cli/create-agent.js +2 -2
- package/dist/cli/main.js +28 -28
- package/dist/cli/yolo-daemon.js +25 -25
- package/dist/{client-ZHOLZTRW.js → client-NJPZE5JT.js} +4 -4
- package/dist/{codebase-index-N37NDF2A.js → codebase-index-VAPF32XX.js} +4 -4
- package/dist/{fast-analyzer-U6URGNQT.js → fast-analyzer-LLZ6FLP5.js} +6 -6
- package/dist/github-ingester-TFBDUDIY.js +11 -0
- package/dist/{goal-manager-5QDITJKE.js → goal-manager-D6XKE3FY.js} +8 -8
- package/dist/{goal-validator-FU5QWDQT.js → goal-validator-4DDL7NBP.js} +7 -7
- package/dist/graph-B3NA4S7I.js +10 -0
- package/dist/{hypothesis-JURDWVDC.js → hypothesis-RI3Q33JB.js} +8 -8
- package/dist/incident-index-EFNUSGWL.js +11 -0
- package/dist/index.js +30 -3991
- package/dist/index.js.map +1 -1
- package/dist/{insight-store-AMEP5PPF.js → insight-store-EC4PLSAW.js} +4 -4
- package/dist/{issue-store-RM3XLLKG.js → issue-store-DUR5UTYK.js} +5 -5
- package/dist/{ledger-PLE3C3X4.js → ledger-ZTR63P3L.js} +4 -4
- package/dist/linear-ingester-PLES2BRS.js +11 -0
- package/dist/{output-manager-FX4V7ERT.js → output-manager-JNMEAXFO.js} +3 -3
- package/dist/{progress-PAYTY7BF.js → progress-SRQ2V3BP.js} +2 -2
- package/dist/server/mcp-server.d.ts +22 -0
- package/dist/server/mcp-server.js +41 -0
- package/dist/tiered-storage-SUYPBYJL.js +12 -0
- package/dist/trie-agent-XWEJSIYH.js +27 -0
- package/dist/{vibe-code-signatures-J4GD4JOV.js → vibe-code-signatures-F6URTBW3.js} +3 -3
- package/dist/{vulnerability-signatures-EIKOHFPK.js → vulnerability-signatures-T7SKHORW.js} +3 -3
- package/dist/vulnerability-signatures-T7SKHORW.js.map +1 -0
- package/package.json +1 -1
- package/dist/chunk-EMJ7RVWB.js.map +0 -1
- package/dist/chunk-JKEEQAG2.js.map +0 -1
- package/dist/chunk-JYWGYUKX.js.map +0 -1
- package/dist/chunk-KLMJKM63.js.map +0 -1
- package/dist/chunk-XUGUKSKO.js.map +0 -1
- package/dist/github-ingester-AR5A4RAC.js +0 -11
- package/dist/graph-JO7GG65P.js +0 -10
- package/dist/incident-index-7CAXUNTL.js +0 -11
- package/dist/linear-ingester-NHFMKJBZ.js +0 -11
- package/dist/tiered-storage-SQDVZM2M.js +0 -12
- package/dist/trie-agent-TLOJ2UFS.js +0 -27
- /package/dist/{autonomy-config-RKLZW4XL.js.map → autonomy-config-FSERX3O3.js.map} +0 -0
- /package/dist/{chat-store-O3IJ5PMN.js.map → chat-store-JNGNTDSN.js.map} +0 -0
- /package/dist/{chunk-L4FODDDB.js.map → chunk-5BYSJ7XT.js.map} +0 -0
- /package/dist/{chunk-LFNH3CSN.js.map → chunk-5TRCQAOE.js.map} +0 -0
- /package/dist/{chunk-CBAMZERA.js.map → chunk-ACU2RJUJ.js.map} +0 -0
- /package/dist/{chunk-Z2E7X4WI.js.map → chunk-ACU3IXZG.js.map} +0 -0
- /package/dist/{chunk-UL337UDQ.js.map → chunk-FQ45QP5A.js.map} +0 -0
- /package/dist/{chunk-FTOF3FHT.js.map → chunk-GDWA3CH3.js.map} +0 -0
- /package/dist/{chunk-4ZAFQEP6.js.map → chunk-IRZXBQVQ.js.map} +0 -0
- /package/dist/{chunk-3CYMLM35.js.map → chunk-JVMBCWKS.js.map} +0 -0
- /package/dist/{chunk-NVZZUUEU.js.map → chunk-LR46VMIE.js.map} +0 -0
- /package/dist/{chunk-X64XFVAY.js.map → chunk-M4CGCPHR.js.map} +0 -0
- /package/dist/{chunk-XD2HKZVB.js.map → chunk-ME2OERF5.js.map} +0 -0
- /package/dist/{chunk-FXZAABXO.js.map → chunk-OLNZJ3XV.js.map} +0 -0
- /package/dist/{chunk-2LAJKFWU.js.map → chunk-OMR4YCBS.js.map} +0 -0
- /package/dist/{chunk-YEQXKKZQ.js.map → chunk-Q5EKA5YA.js.map} +0 -0
- /package/dist/{chunk-WO7CC5FH.js.map → chunk-SY6KQG44.js.map} +0 -0
- /package/dist/{chunk-T7UAH7GE.js.map → chunk-T63OHG4Q.js.map} +0 -0
- /package/dist/{chunk-KYKADM7P.js.map → chunk-TN5WEKWI.js.map} +0 -0
- /package/dist/{chunk-RY57G46E.js.map → chunk-UKIDAMAG.js.map} +0 -0
- /package/dist/{chunk-7F2R2ITA.js.map → chunk-VVITXIHN.js.map} +0 -0
- /package/dist/{chunk-HD5H7YSW.js.map → chunk-Y4B3VEL7.js.map} +0 -0
- /package/dist/{chunk-OVSYTWUU.js.map → chunk-ZBXW244P.js.map} +0 -0
- /package/dist/{client-ZHOLZTRW.js.map → client-NJPZE5JT.js.map} +0 -0
- /package/dist/{codebase-index-N37NDF2A.js.map → codebase-index-VAPF32XX.js.map} +0 -0
- /package/dist/{fast-analyzer-U6URGNQT.js.map → fast-analyzer-LLZ6FLP5.js.map} +0 -0
- /package/dist/{github-ingester-AR5A4RAC.js.map → github-ingester-TFBDUDIY.js.map} +0 -0
- /package/dist/{goal-manager-5QDITJKE.js.map → goal-manager-D6XKE3FY.js.map} +0 -0
- /package/dist/{goal-validator-FU5QWDQT.js.map → goal-validator-4DDL7NBP.js.map} +0 -0
- /package/dist/{graph-JO7GG65P.js.map → graph-B3NA4S7I.js.map} +0 -0
- /package/dist/{hypothesis-JURDWVDC.js.map → hypothesis-RI3Q33JB.js.map} +0 -0
- /package/dist/{incident-index-7CAXUNTL.js.map → incident-index-EFNUSGWL.js.map} +0 -0
- /package/dist/{insight-store-AMEP5PPF.js.map → insight-store-EC4PLSAW.js.map} +0 -0
- /package/dist/{issue-store-RM3XLLKG.js.map → issue-store-DUR5UTYK.js.map} +0 -0
- /package/dist/{ledger-PLE3C3X4.js.map → ledger-ZTR63P3L.js.map} +0 -0
- /package/dist/{linear-ingester-NHFMKJBZ.js.map → linear-ingester-PLES2BRS.js.map} +0 -0
- /package/dist/{output-manager-FX4V7ERT.js.map → output-manager-JNMEAXFO.js.map} +0 -0
- /package/dist/{progress-PAYTY7BF.js.map → progress-SRQ2V3BP.js.map} +0 -0
- /package/dist/{tiered-storage-SQDVZM2M.js.map → server/mcp-server.js.map} +0 -0
- /package/dist/{trie-agent-TLOJ2UFS.js.map → tiered-storage-SUYPBYJL.js.map} +0 -0
- /package/dist/{vibe-code-signatures-J4GD4JOV.js.map → trie-agent-XWEJSIYH.js.map} +0 -0
- /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-
|
|
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-
|
|
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-
|
|
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-
|
|
189
|
+
//# sourceMappingURL=chunk-VVITXIHN.js.map
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
import {
|
|
5
5
|
getTrieDirectory,
|
|
6
6
|
getWorkingDirectory
|
|
7
|
-
} from "./chunk-
|
|
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-
|
|
1392
|
+
//# sourceMappingURL=chunk-Y4B3VEL7.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getTrieDirectory,
|
|
3
3
|
getWorkingDirectory
|
|
4
|
-
} from "./chunk-
|
|
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-
|
|
850
|
+
//# sourceMappingURL=chunk-ZBXW244P.js.map
|
package/dist/cli/create-agent.js
CHANGED
package/dist/cli/main.js
CHANGED
|
@@ -7,10 +7,10 @@ import {
|
|
|
7
7
|
loadProjectInfo,
|
|
8
8
|
needsBootstrap,
|
|
9
9
|
projectInfoExists
|
|
10
|
-
} from "../chunk-
|
|
10
|
+
} from "../chunk-ZBXW244P.js";
|
|
11
11
|
import {
|
|
12
12
|
LinearIngester
|
|
13
|
-
} from "../chunk-
|
|
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-
|
|
23
|
+
} from "../chunk-62JD7MIS.js";
|
|
24
24
|
import {
|
|
25
25
|
loadConfig,
|
|
26
26
|
saveConfig
|
|
27
|
-
} from "../chunk-
|
|
27
|
+
} from "../chunk-GDWA3CH3.js";
|
|
28
28
|
import {
|
|
29
29
|
IncidentIndex
|
|
30
|
-
} from "../chunk-
|
|
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-
|
|
40
|
+
} from "../chunk-UKIDAMAG.js";
|
|
41
|
+
import {
|
|
42
|
+
getStorage
|
|
43
|
+
} from "../chunk-FNZPMR62.js";
|
|
41
44
|
import {
|
|
42
45
|
ContextGraph
|
|
43
|
-
} from "../chunk-
|
|
46
|
+
} from "../chunk-VUL52BQL.js";
|
|
44
47
|
import {
|
|
45
48
|
measureInitialGoalValue
|
|
46
|
-
} from "../chunk-
|
|
47
|
-
import "../chunk-
|
|
49
|
+
} from "../chunk-ACU3IXZG.js";
|
|
50
|
+
import "../chunk-FQ45QP5A.js";
|
|
48
51
|
import {
|
|
49
52
|
getProjectState
|
|
50
|
-
} from "../chunk-
|
|
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-
|
|
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-
|
|
94
|
+
} from "../chunk-Y4B3VEL7.js";
|
|
95
95
|
import "../chunk-43X6JBEM.js";
|
|
96
96
|
import {
|
|
97
97
|
getTrieDirectory,
|
|
98
98
|
getWorkingDirectory
|
|
99
|
-
} from "../chunk-
|
|
100
|
-
import "../chunk-
|
|
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-
|
|
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();
|
package/dist/cli/yolo-daemon.js
CHANGED
|
@@ -3,41 +3,41 @@ import {
|
|
|
3
3
|
InteractiveDashboard,
|
|
4
4
|
StreamingManager,
|
|
5
5
|
TrieWatchTool
|
|
6
|
-
} from "../chunk-
|
|
7
|
-
import "../chunk-
|
|
8
|
-
import "../chunk-
|
|
9
|
-
import "../chunk-
|
|
10
|
-
import "../chunk-
|
|
11
|
-
import "../chunk-
|
|
12
|
-
import "../chunk-
|
|
13
|
-
import "../chunk-
|
|
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-
|
|
17
|
-
import "../chunk-
|
|
18
|
-
import "../chunk-
|
|
16
|
+
} from "../chunk-62JD7MIS.js";
|
|
17
|
+
import "../chunk-GDWA3CH3.js";
|
|
18
|
+
import "../chunk-TN5WEKWI.js";
|
|
19
19
|
import "../chunk-ZV2K6M7T.js";
|
|
20
|
-
import "../chunk-
|
|
21
|
-
import "../chunk-
|
|
22
|
-
import "../chunk-
|
|
23
|
-
import "../chunk-
|
|
24
|
-
import "../chunk-
|
|
25
|
-
import "../chunk-
|
|
26
|
-
import "../chunk-
|
|
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-
|
|
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-
|
|
36
|
+
} from "../chunk-VVITXIHN.js";
|
|
37
37
|
import {
|
|
38
38
|
isInteractiveMode,
|
|
39
39
|
setInteractiveMode
|
|
40
|
-
} from "../chunk-
|
|
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-
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
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-
|
|
28
|
+
//# sourceMappingURL=client-NJPZE5JT.js.map
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
CodebaseIndex
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-Q5EKA5YA.js";
|
|
4
4
|
import "./chunk-6NLHFIYA.js";
|
|
5
5
|
import "./chunk-43X6JBEM.js";
|
|
6
|
-
import "./chunk-
|
|
7
|
-
import "./chunk-
|
|
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-
|
|
12
|
+
//# sourceMappingURL=codebase-index-VAPF32XX.js.map
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
CodebaseIndex
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-Q5EKA5YA.js";
|
|
4
4
|
import "./chunk-6NLHFIYA.js";
|
|
5
5
|
import "./chunk-43X6JBEM.js";
|
|
6
|
-
import "./chunk-
|
|
7
|
-
import "./chunk-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
10
|
-
import "./chunk-
|
|
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-
|
|
12
|
+
import "./chunk-Y4B3VEL7.js";
|
|
13
13
|
import "./chunk-43X6JBEM.js";
|
|
14
|
-
import "./chunk-
|
|
15
|
-
import "./chunk-
|
|
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-
|
|
24
|
+
//# sourceMappingURL=goal-manager-D6XKE3FY.js.map
|
|
@@ -4,14 +4,14 @@ import {
|
|
|
4
4
|
measureInitialGoalValue,
|
|
5
5
|
recordGoalViolationCaught,
|
|
6
6
|
recordGoalViolationFixed
|
|
7
|
-
} from "./chunk-
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
7
|
+
} from "./chunk-ACU3IXZG.js";
|
|
8
|
+
import "./chunk-5BYSJ7XT.js";
|
|
9
|
+
import "./chunk-IRZXBQVQ.js";
|
|
10
10
|
import "./chunk-EFWVF6TI.js";
|
|
11
|
-
import "./chunk-
|
|
11
|
+
import "./chunk-Y4B3VEL7.js";
|
|
12
12
|
import "./chunk-43X6JBEM.js";
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
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-
|
|
23
|
+
//# sourceMappingURL=goal-validator-4DDL7NBP.js.map
|
|
@@ -3,15 +3,15 @@ import {
|
|
|
3
3
|
clearHypothesisEngines,
|
|
4
4
|
gatherEvidenceForHypothesis,
|
|
5
5
|
getHypothesisEngine
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import "./chunk-
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
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-
|
|
11
|
+
import "./chunk-Y4B3VEL7.js";
|
|
12
12
|
import "./chunk-43X6JBEM.js";
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
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-
|
|
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
|