@jamesaphoenix/tx-core 0.4.2 → 0.4.4
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/README.md +480 -0
- package/dist/db.d.ts +28 -14
- package/dist/db.d.ts.map +1 -1
- package/dist/db.js +108 -14
- package/dist/db.js.map +1 -1
- package/dist/errors.d.ts +178 -34
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +119 -26
- package/dist/errors.js.map +1 -1
- package/dist/id.d.ts +10 -0
- package/dist/id.d.ts.map +1 -1
- package/dist/id.js +17 -1
- package/dist/id.js.map +1 -1
- package/dist/index.d.ts +15 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +62 -8
- package/dist/index.js.map +1 -1
- package/dist/layer.d.ts +23 -14
- package/dist/layer.d.ts.map +1 -1
- package/dist/layer.js +75 -76
- package/dist/layer.js.map +1 -1
- package/dist/mappers/attempt.d.ts +3 -1
- package/dist/mappers/attempt.d.ts.map +1 -1
- package/dist/mappers/attempt.js +23 -9
- package/dist/mappers/attempt.js.map +1 -1
- package/dist/mappers/claim.d.ts +1 -1
- package/dist/mappers/claim.d.ts.map +1 -1
- package/dist/mappers/claim.js +11 -4
- package/dist/mappers/claim.js.map +1 -1
- package/dist/mappers/deduplication.d.ts +13 -1
- package/dist/mappers/deduplication.d.ts.map +1 -1
- package/dist/mappers/deduplication.js +22 -3
- package/dist/mappers/deduplication.js.map +1 -1
- package/dist/mappers/doc.d.ts +24 -0
- package/dist/mappers/doc.d.ts.map +1 -0
- package/dist/mappers/doc.js +161 -0
- package/dist/mappers/doc.js.map +1 -0
- package/dist/mappers/file-learning.d.ts.map +1 -1
- package/dist/mappers/file-learning.js +2 -1
- package/dist/mappers/file-learning.js.map +1 -1
- package/dist/mappers/index.d.ts +6 -7
- package/dist/mappers/index.d.ts.map +1 -1
- package/dist/mappers/index.js +10 -12
- package/dist/mappers/index.js.map +1 -1
- package/dist/mappers/learning.d.ts +9 -1
- package/dist/mappers/learning.d.ts.map +1 -1
- package/dist/mappers/learning.js +94 -14
- package/dist/mappers/learning.js.map +1 -1
- package/dist/mappers/orchestrator-state.d.ts +1 -1
- package/dist/mappers/orchestrator-state.d.ts.map +1 -1
- package/dist/mappers/orchestrator-state.js +31 -5
- package/dist/mappers/orchestrator-state.js.map +1 -1
- package/dist/mappers/parse-date.d.ts +11 -0
- package/dist/mappers/parse-date.d.ts.map +1 -0
- package/dist/mappers/parse-date.js +18 -0
- package/dist/mappers/parse-date.js.map +1 -0
- package/dist/mappers/run.d.ts +14 -4
- package/dist/mappers/run.d.ts.map +1 -1
- package/dist/mappers/run.js +49 -18
- package/dist/mappers/run.js.map +1 -1
- package/dist/mappers/task.d.ts +5 -1
- package/dist/mappers/task.d.ts.map +1 -1
- package/dist/mappers/task.js +66 -16
- package/dist/mappers/task.js.map +1 -1
- package/dist/mappers/tracked-project.d.ts +3 -1
- package/dist/mappers/tracked-project.d.ts.map +1 -1
- package/dist/mappers/tracked-project.js +23 -9
- package/dist/mappers/tracked-project.js.map +1 -1
- package/dist/mappers/worker.d.ts +1 -1
- package/dist/mappers/worker.d.ts.map +1 -1
- package/dist/mappers/worker.js +44 -6
- package/dist/mappers/worker.js.map +1 -1
- package/dist/repo/attempt-repo.d.ts +2 -2
- package/dist/repo/attempt-repo.d.ts.map +1 -1
- package/dist/repo/attempt-repo.js +16 -6
- package/dist/repo/attempt-repo.js.map +1 -1
- package/dist/repo/claim-repo.d.ts +46 -2
- package/dist/repo/claim-repo.d.ts.map +1 -1
- package/dist/repo/claim-repo.js +113 -6
- package/dist/repo/claim-repo.js.map +1 -1
- package/dist/repo/deduplication-repo.d.ts +9 -1
- package/dist/repo/deduplication-repo.d.ts.map +1 -1
- package/dist/repo/deduplication-repo.js +46 -9
- package/dist/repo/deduplication-repo.js.map +1 -1
- package/dist/repo/dep-repo.d.ts +27 -3
- package/dist/repo/dep-repo.d.ts.map +1 -1
- package/dist/repo/dep-repo.js +166 -39
- package/dist/repo/dep-repo.js.map +1 -1
- package/dist/repo/doc-repo.d.ts +59 -0
- package/dist/repo/doc-repo.d.ts.map +1 -0
- package/dist/repo/doc-repo.js +276 -0
- package/dist/repo/doc-repo.js.map +1 -0
- package/dist/repo/file-learning-repo.d.ts +3 -3
- package/dist/repo/file-learning-repo.d.ts.map +1 -1
- package/dist/repo/file-learning-repo.js +19 -8
- package/dist/repo/file-learning-repo.js.map +1 -1
- package/dist/repo/index.d.ts +4 -6
- package/dist/repo/index.d.ts.map +1 -1
- package/dist/repo/index.js +3 -5
- package/dist/repo/index.js.map +1 -1
- package/dist/repo/learning-repo.d.ts +10 -3
- package/dist/repo/learning-repo.d.ts.map +1 -1
- package/dist/repo/learning-repo.js +68 -11
- package/dist/repo/learning-repo.js.map +1 -1
- package/dist/repo/orchestrator-state-repo.d.ts.map +1 -1
- package/dist/repo/orchestrator-state-repo.js +8 -1
- package/dist/repo/orchestrator-state-repo.js.map +1 -1
- package/dist/repo/run-repo.d.ts +3 -3
- package/dist/repo/run-repo.d.ts.map +1 -1
- package/dist/repo/run-repo.js +40 -19
- package/dist/repo/run-repo.js.map +1 -1
- package/dist/repo/task-repo.d.ts +14 -3
- package/dist/repo/task-repo.d.ts.map +1 -1
- package/dist/repo/task-repo.js +194 -20
- package/dist/repo/task-repo.js.map +1 -1
- package/dist/repo/tracked-project-repo.d.ts.map +1 -1
- package/dist/repo/tracked-project-repo.js +15 -1
- package/dist/repo/tracked-project-repo.js.map +1 -1
- package/dist/repo/worker-repo.d.ts +3 -2
- package/dist/repo/worker-repo.d.ts.map +1 -1
- package/dist/repo/worker-repo.js +54 -8
- package/dist/repo/worker-repo.js.map +1 -1
- package/dist/schemas/sync.js +2 -2
- package/dist/schemas/sync.js.map +1 -1
- package/dist/schemas/worker.d.ts +1 -0
- package/dist/schemas/worker.d.ts.map +1 -1
- package/dist/schemas/worker.js +1 -0
- package/dist/schemas/worker.js.map +1 -1
- package/dist/services/agent-service.d.ts +57 -0
- package/dist/services/agent-service.d.ts.map +1 -0
- package/dist/services/agent-service.js +81 -0
- package/dist/services/agent-service.js.map +1 -0
- package/dist/services/attempt-service.d.ts.map +1 -1
- package/dist/services/attempt-service.js +1 -4
- package/dist/services/attempt-service.js.map +1 -1
- package/dist/services/auto-sync-service.d.ts.map +1 -1
- package/dist/services/auto-sync-service.js +18 -10
- package/dist/services/auto-sync-service.js.map +1 -1
- package/dist/services/claim-service.d.ts +8 -2
- package/dist/services/claim-service.d.ts.map +1 -1
- package/dist/services/claim-service.js +37 -23
- package/dist/services/claim-service.js.map +1 -1
- package/dist/services/cycle-scan-service.d.ts +32 -0
- package/dist/services/cycle-scan-service.d.ts.map +1 -0
- package/dist/services/cycle-scan-service.js +546 -0
- package/dist/services/cycle-scan-service.js.map +1 -0
- package/dist/services/daemon-service.d.ts +40 -2
- package/dist/services/daemon-service.d.ts.map +1 -1
- package/dist/services/daemon-service.js +199 -52
- package/dist/services/daemon-service.js.map +1 -1
- package/dist/services/deduplication-service.d.ts +8 -4
- package/dist/services/deduplication-service.d.ts.map +1 -1
- package/dist/services/deduplication-service.js +79 -25
- package/dist/services/deduplication-service.js.map +1 -1
- package/dist/services/dep-service.d.ts +2 -2
- package/dist/services/dep-service.d.ts.map +1 -1
- package/dist/services/dep-service.js +9 -5
- package/dist/services/dep-service.js.map +1 -1
- package/dist/services/diversifier-service.d.ts +2 -1
- package/dist/services/diversifier-service.d.ts.map +1 -1
- package/dist/services/diversifier-service.js +37 -43
- package/dist/services/diversifier-service.js.map +1 -1
- package/dist/services/doc-service.d.ts +49 -0
- package/dist/services/doc-service.d.ts.map +1 -0
- package/dist/services/doc-service.js +605 -0
- package/dist/services/doc-service.js.map +1 -0
- package/dist/services/embedding-service.d.ts +66 -2
- package/dist/services/embedding-service.d.ts.map +1 -1
- package/dist/services/embedding-service.js +138 -24
- package/dist/services/embedding-service.js.map +1 -1
- package/dist/services/file-learning-service.d.ts.map +1 -1
- package/dist/services/file-learning-service.js +8 -7
- package/dist/services/file-learning-service.js.map +1 -1
- package/dist/services/file-watcher-service.d.ts.map +1 -1
- package/dist/services/file-watcher-service.js +58 -11
- package/dist/services/file-watcher-service.js.map +1 -1
- package/dist/services/hierarchy-service.d.ts +1 -1
- package/dist/services/hierarchy-service.d.ts.map +1 -1
- package/dist/services/hierarchy-service.js +50 -32
- package/dist/services/hierarchy-service.js.map +1 -1
- package/dist/services/index.d.ts +13 -15
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +13 -15
- package/dist/services/index.js.map +1 -1
- package/dist/services/learning-service.d.ts +3 -3
- package/dist/services/learning-service.d.ts.map +1 -1
- package/dist/services/learning-service.js +75 -42
- package/dist/services/learning-service.js.map +1 -1
- package/dist/services/llm-service.d.ts +62 -0
- package/dist/services/llm-service.d.ts.map +1 -0
- package/dist/services/llm-service.js +172 -0
- package/dist/services/llm-service.js.map +1 -0
- package/dist/services/migration-service.d.ts +1 -1
- package/dist/services/migration-service.d.ts.map +1 -1
- package/dist/services/migration-service.js +18 -7
- package/dist/services/migration-service.js.map +1 -1
- package/dist/services/orchestrator-service.d.ts +4 -3
- package/dist/services/orchestrator-service.d.ts.map +1 -1
- package/dist/services/orchestrator-service.js +66 -27
- package/dist/services/orchestrator-service.js.map +1 -1
- package/dist/services/query-expansion-service.d.ts +30 -9
- package/dist/services/query-expansion-service.d.ts.map +1 -1
- package/dist/services/query-expansion-service.js +54 -63
- package/dist/services/query-expansion-service.js.map +1 -1
- package/dist/services/ready-service.d.ts +21 -1
- package/dist/services/ready-service.d.ts.map +1 -1
- package/dist/services/ready-service.js +44 -21
- package/dist/services/ready-service.js.map +1 -1
- package/dist/services/retriever-service.d.ts +10 -10
- package/dist/services/retriever-service.d.ts.map +1 -1
- package/dist/services/retriever-service.js +53 -161
- package/dist/services/retriever-service.js.map +1 -1
- package/dist/services/sync-service.d.ts +17 -4
- package/dist/services/sync-service.d.ts.map +1 -1
- package/dist/services/sync-service.js +381 -116
- package/dist/services/sync-service.js.map +1 -1
- package/dist/services/task-service.d.ts +6 -4
- package/dist/services/task-service.d.ts.map +1 -1
- package/dist/services/task-service.js +165 -35
- package/dist/services/task-service.js.map +1 -1
- package/dist/services/tracing-service.d.ts +55 -0
- package/dist/services/tracing-service.d.ts.map +1 -0
- package/dist/services/tracing-service.js +99 -0
- package/dist/services/tracing-service.js.map +1 -0
- package/dist/services/transcript-adapter.d.ts +99 -0
- package/dist/services/transcript-adapter.d.ts.map +1 -0
- package/dist/services/transcript-adapter.js +283 -0
- package/dist/services/transcript-adapter.js.map +1 -0
- package/dist/services/validation-service.d.ts +85 -0
- package/dist/services/validation-service.d.ts.map +1 -0
- package/dist/services/validation-service.js +289 -0
- package/dist/services/validation-service.js.map +1 -0
- package/dist/services/worker-process.d.ts +23 -4
- package/dist/services/worker-process.d.ts.map +1 -1
- package/dist/services/worker-process.js +168 -72
- package/dist/services/worker-process.js.map +1 -1
- package/dist/services/worker-service.d.ts.map +1 -1
- package/dist/services/worker-service.js +7 -12
- package/dist/services/worker-service.js.map +1 -1
- package/dist/sync/claude-task-writer.d.ts +49 -0
- package/dist/sync/claude-task-writer.d.ts.map +1 -0
- package/dist/sync/claude-task-writer.js +135 -0
- package/dist/sync/claude-task-writer.js.map +1 -0
- package/dist/utils/doc-hash.d.ts +10 -0
- package/dist/utils/doc-hash.d.ts.map +1 -0
- package/dist/utils/doc-hash.js +14 -0
- package/dist/utils/doc-hash.js.map +1 -0
- package/dist/utils/doc-renderer.d.ts +44 -0
- package/dist/utils/doc-renderer.d.ts.map +1 -0
- package/dist/utils/doc-renderer.js +202 -0
- package/dist/utils/doc-renderer.js.map +1 -0
- package/dist/utils/math.d.ts +5 -1
- package/dist/utils/math.d.ts.map +1 -1
- package/dist/utils/math.js +12 -4
- package/dist/utils/math.js.map +1 -1
- package/dist/utils/sql.d.ts +9 -0
- package/dist/utils/sql.d.ts.map +1 -0
- package/dist/utils/sql.js +9 -0
- package/dist/utils/sql.js.map +1 -0
- package/dist/utils/toml-config.d.ts +22 -0
- package/dist/utils/toml-config.d.ts.map +1 -0
- package/dist/utils/toml-config.js +75 -0
- package/dist/utils/toml-config.js.map +1 -0
- package/dist/worker/hooks.d.ts +102 -0
- package/dist/worker/hooks.d.ts.map +1 -0
- package/dist/worker/hooks.js +11 -0
- package/dist/worker/hooks.js.map +1 -0
- package/dist/worker/index.d.ts +9 -0
- package/dist/worker/index.d.ts.map +1 -0
- package/dist/worker/index.js +8 -0
- package/dist/worker/index.js.map +1 -0
- package/dist/worker/run-worker.d.ts +33 -0
- package/dist/worker/run-worker.d.ts.map +1 -0
- package/dist/worker/run-worker.js +265 -0
- package/dist/worker/run-worker.js.map +1 -0
- package/package.json +14 -12
- package/dist/mappers/anchor.d.ts +0 -14
- package/dist/mappers/anchor.d.ts.map +0 -1
- package/dist/mappers/anchor.js +0 -38
- package/dist/mappers/anchor.js.map +0 -1
- package/dist/mappers/candidate.d.ts +0 -23
- package/dist/mappers/candidate.d.ts.map +0 -1
- package/dist/mappers/candidate.js +0 -53
- package/dist/mappers/candidate.js.map +0 -1
- package/dist/mappers/edge.d.ts +0 -10
- package/dist/mappers/edge.d.ts.map +0 -1
- package/dist/mappers/edge.js +0 -19
- package/dist/mappers/edge.js.map +0 -1
- package/dist/repo/anchor-repo.d.ts +0 -52
- package/dist/repo/anchor-repo.d.ts.map +0 -1
- package/dist/repo/anchor-repo.js +0 -204
- package/dist/repo/anchor-repo.js.map +0 -1
- package/dist/repo/candidate-repo.d.ts +0 -16
- package/dist/repo/candidate-repo.d.ts.map +0 -1
- package/dist/repo/candidate-repo.js +0 -143
- package/dist/repo/candidate-repo.js.map +0 -1
- package/dist/repo/edge-repo.d.ts +0 -26
- package/dist/repo/edge-repo.d.ts.map +0 -1
- package/dist/repo/edge-repo.js +0 -227
- package/dist/repo/edge-repo.js.map +0 -1
- package/dist/services/anchor-service.d.ts +0 -147
- package/dist/services/anchor-service.d.ts.map +0 -1
- package/dist/services/anchor-service.js +0 -540
- package/dist/services/anchor-service.js.map +0 -1
- package/dist/services/anchor-verification.d.ts +0 -94
- package/dist/services/anchor-verification.d.ts.map +0 -1
- package/dist/services/anchor-verification.js +0 -617
- package/dist/services/anchor-verification.js.map +0 -1
- package/dist/services/ast-grep-service.d.ts +0 -58
- package/dist/services/ast-grep-service.d.ts.map +0 -1
- package/dist/services/ast-grep-service.js +0 -356
- package/dist/services/ast-grep-service.js.map +0 -1
- package/dist/services/candidate-extractor-service.d.ts +0 -56
- package/dist/services/candidate-extractor-service.d.ts.map +0 -1
- package/dist/services/candidate-extractor-service.js +0 -365
- package/dist/services/candidate-extractor-service.js.map +0 -1
- package/dist/services/edge-service.d.ts +0 -78
- package/dist/services/edge-service.d.ts.map +0 -1
- package/dist/services/edge-service.js +0 -158
- package/dist/services/edge-service.js.map +0 -1
- package/dist/services/feedback-tracker.d.ts +0 -64
- package/dist/services/feedback-tracker.d.ts.map +0 -1
- package/dist/services/feedback-tracker.js +0 -110
- package/dist/services/feedback-tracker.js.map +0 -1
- package/dist/services/graph-expansion.d.ts +0 -155
- package/dist/services/graph-expansion.d.ts.map +0 -1
- package/dist/services/graph-expansion.js +0 -466
- package/dist/services/graph-expansion.js.map +0 -1
- package/dist/services/promotion-service.d.ts +0 -67
- package/dist/services/promotion-service.d.ts.map +0 -1
- package/dist/services/promotion-service.js +0 -151
- package/dist/services/promotion-service.js.map +0 -1
- package/dist/services/swarm-verification.d.ts +0 -104
- package/dist/services/swarm-verification.d.ts.map +0 -1
- package/dist/services/swarm-verification.js +0 -400
- package/dist/services/swarm-verification.js.map +0 -1
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Candidate mappers - convert database rows to domain objects
|
|
3
|
-
*/
|
|
4
|
-
export { CANDIDATE_CONFIDENCES, CANDIDATE_CATEGORIES, CANDIDATE_STATUSES } from "@jamesaphoenix/tx-types";
|
|
5
|
-
/**
|
|
6
|
-
* Check if a string is a valid CandidateConfidence.
|
|
7
|
-
*/
|
|
8
|
-
export const isValidConfidence = (s) => {
|
|
9
|
-
const confidences = ["high", "medium", "low"];
|
|
10
|
-
return confidences.includes(s);
|
|
11
|
-
};
|
|
12
|
-
/**
|
|
13
|
-
* Check if a string is a valid CandidateStatus.
|
|
14
|
-
*/
|
|
15
|
-
export const isValidStatus = (s) => {
|
|
16
|
-
const statuses = ["pending", "promoted", "rejected", "merged"];
|
|
17
|
-
return statuses.includes(s);
|
|
18
|
-
};
|
|
19
|
-
/**
|
|
20
|
-
* Check if a string is a valid CandidateCategory.
|
|
21
|
-
*/
|
|
22
|
-
export const isValidCategory = (s) => {
|
|
23
|
-
const categories = [
|
|
24
|
-
"architecture",
|
|
25
|
-
"testing",
|
|
26
|
-
"performance",
|
|
27
|
-
"security",
|
|
28
|
-
"debugging",
|
|
29
|
-
"tooling",
|
|
30
|
-
"patterns",
|
|
31
|
-
"other"
|
|
32
|
-
];
|
|
33
|
-
return categories.includes(s);
|
|
34
|
-
};
|
|
35
|
-
/**
|
|
36
|
-
* Convert a database row to a LearningCandidate domain object.
|
|
37
|
-
*/
|
|
38
|
-
export const rowToCandidate = (row) => ({
|
|
39
|
-
id: row.id,
|
|
40
|
-
content: row.content,
|
|
41
|
-
confidence: row.confidence,
|
|
42
|
-
category: row.category,
|
|
43
|
-
sourceFile: row.source_file,
|
|
44
|
-
sourceRunId: row.source_run_id,
|
|
45
|
-
sourceTaskId: row.source_task_id,
|
|
46
|
-
extractedAt: new Date(row.extracted_at),
|
|
47
|
-
status: row.status,
|
|
48
|
-
reviewedAt: row.reviewed_at ? new Date(row.reviewed_at) : null,
|
|
49
|
-
reviewedBy: row.reviewed_by,
|
|
50
|
-
promotedLearningId: row.promoted_learning_id,
|
|
51
|
-
rejectionReason: row.rejection_reason
|
|
52
|
-
});
|
|
53
|
-
//# sourceMappingURL=candidate.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"candidate.js","sourceRoot":"","sources":["../../src/mappers/candidate.ts"],"names":[],"mappings":"AAAA;;GAEG;AAYH,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EACnB,MAAM,yBAAyB,CAAA;AAEhC;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAS,EAA4B,EAAE;IACvE,MAAM,WAAW,GAAsB,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAA;IAChE,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;AAChC,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAS,EAAwB,EAAE;IAC/D,MAAM,QAAQ,GAAsB,CAAC,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAA;IACjF,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;AAC7B,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAS,EAA0B,EAAE;IACnE,MAAM,UAAU,GAAsB;QACpC,cAAc;QACd,SAAS;QACT,aAAa;QACb,UAAU;QACV,WAAW;QACX,SAAS;QACT,UAAU;QACV,OAAO;KACR,CAAA;IACD,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;AAC/B,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,GAAiB,EAAqB,EAAE,CAAC,CAAC;IACvE,EAAE,EAAE,GAAG,CAAC,EAAE;IACV,OAAO,EAAE,GAAG,CAAC,OAAO;IACpB,UAAU,EAAE,GAAG,CAAC,UAAiC;IACjD,QAAQ,EAAE,GAAG,CAAC,QAAoC;IAClD,UAAU,EAAE,GAAG,CAAC,WAAW;IAC3B,WAAW,EAAE,GAAG,CAAC,aAAa;IAC9B,YAAY,EAAE,GAAG,CAAC,cAAc;IAChC,WAAW,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC;IACvC,MAAM,EAAE,GAAG,CAAC,MAAyB;IACrC,UAAU,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI;IAC9D,UAAU,EAAE,GAAG,CAAC,WAAW;IAC3B,kBAAkB,EAAE,GAAG,CAAC,oBAAoB;IAC5C,eAAe,EAAE,GAAG,CAAC,gBAAgB;CACtC,CAAC,CAAA"}
|
package/dist/mappers/edge.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Edge mappers - convert database rows to domain objects
|
|
3
|
-
*/
|
|
4
|
-
import type { Edge, EdgeRow } from "@jamesaphoenix/tx-types";
|
|
5
|
-
export type { EdgeRow } from "@jamesaphoenix/tx-types";
|
|
6
|
-
/**
|
|
7
|
-
* Convert a database row to an Edge domain object.
|
|
8
|
-
*/
|
|
9
|
-
export declare const rowToEdge: (row: EdgeRow) => Edge;
|
|
10
|
-
//# sourceMappingURL=edge.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"edge.d.ts","sourceRoot":"","sources":["../../src/mappers/edge.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,IAAI,EAIJ,OAAO,EACR,MAAM,yBAAyB,CAAA;AAGhC,YAAY,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AAEtD;;GAEG;AACH,eAAO,MAAM,SAAS,GAAI,KAAK,OAAO,KAAG,IAWvC,CAAA"}
|
package/dist/mappers/edge.js
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Edge mappers - convert database rows to domain objects
|
|
3
|
-
*/
|
|
4
|
-
/**
|
|
5
|
-
* Convert a database row to an Edge domain object.
|
|
6
|
-
*/
|
|
7
|
-
export const rowToEdge = (row) => ({
|
|
8
|
-
id: row.id,
|
|
9
|
-
edgeType: row.edge_type,
|
|
10
|
-
sourceType: row.source_type,
|
|
11
|
-
sourceId: row.source_id,
|
|
12
|
-
targetType: row.target_type,
|
|
13
|
-
targetId: row.target_id,
|
|
14
|
-
weight: row.weight,
|
|
15
|
-
metadata: row.metadata ? JSON.parse(row.metadata) : {},
|
|
16
|
-
createdAt: new Date(row.created_at),
|
|
17
|
-
invalidatedAt: row.invalidated_at ? new Date(row.invalidated_at) : null
|
|
18
|
-
});
|
|
19
|
-
//# sourceMappingURL=edge.js.map
|
package/dist/mappers/edge.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"edge.js","sourceRoot":"","sources":["../../src/mappers/edge.ts"],"names":[],"mappings":"AAAA;;GAEG;AAaH;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,GAAY,EAAQ,EAAE,CAAC,CAAC;IAChD,EAAE,EAAE,GAAG,CAAC,EAAY;IACpB,QAAQ,EAAE,GAAG,CAAC,SAAqB;IACnC,UAAU,EAAE,GAAG,CAAC,WAAuB;IACvC,QAAQ,EAAE,GAAG,CAAC,SAAS;IACvB,UAAU,EAAE,GAAG,CAAC,WAAuB;IACvC,QAAQ,EAAE,GAAG,CAAC,SAAS;IACvB,MAAM,EAAE,GAAG,CAAC,MAAM;IAClB,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;IACtD,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC;IACnC,aAAa,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI;CACxE,CAAC,CAAA"}
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import { Context, Effect, Layer } from "effect";
|
|
2
|
-
import { SqliteClient } from "../db.js";
|
|
3
|
-
import { DatabaseError } from "../errors.js";
|
|
4
|
-
import type { Anchor, CreateAnchorInput, UpdateAnchorInput, AnchorStatus, InvalidationLog, InvalidationSource } from "@jamesaphoenix/tx-types";
|
|
5
|
-
/** Input for logging an invalidation event */
|
|
6
|
-
export interface LogInvalidationInput {
|
|
7
|
-
readonly anchorId: number;
|
|
8
|
-
readonly oldStatus: AnchorStatus;
|
|
9
|
-
readonly newStatus: AnchorStatus;
|
|
10
|
-
readonly reason: string;
|
|
11
|
-
readonly detectedBy: InvalidationSource;
|
|
12
|
-
readonly oldContentHash?: string | null;
|
|
13
|
-
readonly newContentHash?: string | null;
|
|
14
|
-
readonly similarityScore?: number | null;
|
|
15
|
-
}
|
|
16
|
-
declare const AnchorRepository_base: Context.TagClass<AnchorRepository, "AnchorRepository", {
|
|
17
|
-
readonly create: (input: CreateAnchorInput) => Effect.Effect<Anchor, DatabaseError>;
|
|
18
|
-
readonly findById: (id: number) => Effect.Effect<Anchor | null, DatabaseError>;
|
|
19
|
-
readonly findByLearningId: (learningId: number) => Effect.Effect<readonly Anchor[], DatabaseError>;
|
|
20
|
-
readonly findByFilePath: (filePath: string) => Effect.Effect<readonly Anchor[], DatabaseError>;
|
|
21
|
-
readonly update: (id: number, input: UpdateAnchorInput) => Effect.Effect<Anchor | null, DatabaseError>;
|
|
22
|
-
readonly delete: (id: number) => Effect.Effect<boolean, DatabaseError>;
|
|
23
|
-
readonly findDrifted: () => Effect.Effect<readonly Anchor[], DatabaseError>;
|
|
24
|
-
readonly findInvalid: () => Effect.Effect<readonly Anchor[], DatabaseError>;
|
|
25
|
-
readonly updateStatus: (id: number, status: AnchorStatus) => Effect.Effect<boolean, DatabaseError>;
|
|
26
|
-
readonly updateVerifiedAt: (id: number) => Effect.Effect<boolean, DatabaseError>;
|
|
27
|
-
/** Find all anchors */
|
|
28
|
-
readonly findAll: () => Effect.Effect<readonly Anchor[], DatabaseError>;
|
|
29
|
-
/** Find all valid anchors (for verification) */
|
|
30
|
-
readonly findAllValid: () => Effect.Effect<readonly Anchor[], DatabaseError>;
|
|
31
|
-
/** Set pinned status */
|
|
32
|
-
readonly setPinned: (id: number, pinned: boolean) => Effect.Effect<boolean, DatabaseError>;
|
|
33
|
-
/** Delete old invalid anchors */
|
|
34
|
-
readonly deleteOldInvalid: (olderThanDays: number) => Effect.Effect<number, DatabaseError>;
|
|
35
|
-
/** Log an invalidation event */
|
|
36
|
-
readonly logInvalidation: (input: LogInvalidationInput) => Effect.Effect<InvalidationLog, DatabaseError>;
|
|
37
|
-
/** Get invalidation logs for an anchor */
|
|
38
|
-
readonly getInvalidationLogs: (anchorId?: number) => Effect.Effect<readonly InvalidationLog[], DatabaseError>;
|
|
39
|
-
/** Get anchor status summary */
|
|
40
|
-
readonly getStatusSummary: () => Effect.Effect<{
|
|
41
|
-
valid: number;
|
|
42
|
-
drifted: number;
|
|
43
|
-
invalid: number;
|
|
44
|
-
pinned: number;
|
|
45
|
-
total: number;
|
|
46
|
-
}, DatabaseError>;
|
|
47
|
-
}>;
|
|
48
|
-
export declare class AnchorRepository extends AnchorRepository_base {
|
|
49
|
-
}
|
|
50
|
-
export declare const AnchorRepositoryLive: Layer.Layer<AnchorRepository, never, SqliteClient>;
|
|
51
|
-
export {};
|
|
52
|
-
//# sourceMappingURL=anchor-repo.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"anchor-repo.d.ts","sourceRoot":"","sources":["../../src/repo/anchor-repo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAE5C,OAAO,KAAK,EAAE,MAAM,EAAa,iBAAiB,EAAE,iBAAiB,EAAE,YAAY,EAAE,eAAe,EAAsB,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAE7K,8CAA8C;AAC9C,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAA;IAChC,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAA;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAA;IACvC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACvC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACvC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACzC;;qBAKoB,CAAC,KAAK,EAAE,iBAAiB,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;uBAChE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,EAAE,aAAa,CAAC;+BACnD,CAAC,UAAU,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,SAAS,MAAM,EAAE,EAAE,aAAa,CAAC;6BACzE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,SAAS,MAAM,EAAE,EAAE,aAAa,CAAC;qBAC7E,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,EAAE,aAAa,CAAC;qBACrF,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC;0BAChD,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,MAAM,EAAE,EAAE,aAAa,CAAC;0BACrD,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,MAAM,EAAE,EAAE,aAAa,CAAC;2BACpD,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC;+BACvE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC;IAChF,uBAAuB;sBACL,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,MAAM,EAAE,EAAE,aAAa,CAAC;IACvE,gDAAgD;2BACzB,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,MAAM,EAAE,EAAE,aAAa,CAAC;IAC5E,wBAAwB;wBACJ,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC;IAC1F,iCAAiC;+BACN,CAAC,aAAa,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;IAC1F,gCAAgC;8BACN,CAAC,KAAK,EAAE,oBAAoB,KAAK,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,aAAa,CAAC;IACxG,0CAA0C;kCACZ,CAAC,QAAQ,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,SAAS,eAAe,EAAE,EAAE,aAAa,CAAC;IAC7G,gCAAgC;+BACL,MAAM,MAAM,CAAC,MAAM,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,aAAa,CAAC;;AA1BrJ,qBAAa,gBAAiB,SAAQ,qBA4BnC;CAAG;AAEN,eAAO,MAAM,oBAAoB,oDA+RhC,CAAA"}
|
package/dist/repo/anchor-repo.js
DELETED
|
@@ -1,204 +0,0 @@
|
|
|
1
|
-
import { Context, Effect, Layer } from "effect";
|
|
2
|
-
import { SqliteClient } from "../db.js";
|
|
3
|
-
import { DatabaseError } from "../errors.js";
|
|
4
|
-
import { rowToAnchor, rowToInvalidationLog } from "../mappers/anchor.js";
|
|
5
|
-
export class AnchorRepository extends Context.Tag("AnchorRepository")() {
|
|
6
|
-
}
|
|
7
|
-
export const AnchorRepositoryLive = Layer.effect(AnchorRepository, Effect.gen(function* () {
|
|
8
|
-
const db = yield* SqliteClient;
|
|
9
|
-
return {
|
|
10
|
-
create: (input) => Effect.try({
|
|
11
|
-
try: () => {
|
|
12
|
-
const result = db.prepare(`INSERT INTO learning_anchors
|
|
13
|
-
(learning_id, anchor_type, anchor_value, file_path, symbol_fqname, line_start, line_end, content_hash, content_preview)
|
|
14
|
-
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`).run(input.learningId, input.anchorType, input.anchorValue, input.filePath, input.symbolFqname ?? null, input.lineStart ?? null, input.lineEnd ?? null, input.contentHash ?? null, input.contentPreview ?? null);
|
|
15
|
-
const row = db.prepare("SELECT * FROM learning_anchors WHERE id = ?").get(result.lastInsertRowid);
|
|
16
|
-
return rowToAnchor(row);
|
|
17
|
-
},
|
|
18
|
-
catch: (cause) => new DatabaseError({ cause })
|
|
19
|
-
}),
|
|
20
|
-
findById: (id) => Effect.try({
|
|
21
|
-
try: () => {
|
|
22
|
-
const row = db.prepare("SELECT * FROM learning_anchors WHERE id = ?").get(id);
|
|
23
|
-
return row ? rowToAnchor(row) : null;
|
|
24
|
-
},
|
|
25
|
-
catch: (cause) => new DatabaseError({ cause })
|
|
26
|
-
}),
|
|
27
|
-
findByLearningId: (learningId) => Effect.try({
|
|
28
|
-
try: () => {
|
|
29
|
-
const rows = db.prepare("SELECT * FROM learning_anchors WHERE learning_id = ? ORDER BY created_at ASC").all(learningId);
|
|
30
|
-
return rows.map(rowToAnchor);
|
|
31
|
-
},
|
|
32
|
-
catch: (cause) => new DatabaseError({ cause })
|
|
33
|
-
}),
|
|
34
|
-
findByFilePath: (filePath) => Effect.try({
|
|
35
|
-
try: () => {
|
|
36
|
-
const rows = db.prepare("SELECT * FROM learning_anchors WHERE file_path = ? ORDER BY created_at ASC").all(filePath);
|
|
37
|
-
return rows.map(rowToAnchor);
|
|
38
|
-
},
|
|
39
|
-
catch: (cause) => new DatabaseError({ cause })
|
|
40
|
-
}),
|
|
41
|
-
update: (id, input) => Effect.try({
|
|
42
|
-
try: () => {
|
|
43
|
-
const updates = [];
|
|
44
|
-
const values = [];
|
|
45
|
-
if (input.anchorValue !== undefined) {
|
|
46
|
-
updates.push("anchor_value = ?");
|
|
47
|
-
values.push(input.anchorValue);
|
|
48
|
-
}
|
|
49
|
-
if (input.filePath !== undefined) {
|
|
50
|
-
updates.push("file_path = ?");
|
|
51
|
-
values.push(input.filePath);
|
|
52
|
-
}
|
|
53
|
-
if (input.symbolFqname !== undefined) {
|
|
54
|
-
updates.push("symbol_fqname = ?");
|
|
55
|
-
values.push(input.symbolFqname);
|
|
56
|
-
}
|
|
57
|
-
if (input.lineStart !== undefined) {
|
|
58
|
-
updates.push("line_start = ?");
|
|
59
|
-
values.push(input.lineStart);
|
|
60
|
-
}
|
|
61
|
-
if (input.lineEnd !== undefined) {
|
|
62
|
-
updates.push("line_end = ?");
|
|
63
|
-
values.push(input.lineEnd);
|
|
64
|
-
}
|
|
65
|
-
if (input.contentHash !== undefined) {
|
|
66
|
-
updates.push("content_hash = ?");
|
|
67
|
-
values.push(input.contentHash);
|
|
68
|
-
}
|
|
69
|
-
if (input.contentPreview !== undefined) {
|
|
70
|
-
updates.push("content_preview = ?");
|
|
71
|
-
values.push(input.contentPreview);
|
|
72
|
-
}
|
|
73
|
-
if (input.status !== undefined) {
|
|
74
|
-
updates.push("status = ?");
|
|
75
|
-
values.push(input.status);
|
|
76
|
-
}
|
|
77
|
-
if (input.verifiedAt !== undefined) {
|
|
78
|
-
updates.push("verified_at = ?");
|
|
79
|
-
values.push(input.verifiedAt ? input.verifiedAt.toISOString() : null);
|
|
80
|
-
}
|
|
81
|
-
if (updates.length === 0) {
|
|
82
|
-
const row = db.prepare("SELECT * FROM learning_anchors WHERE id = ?").get(id);
|
|
83
|
-
return row ? rowToAnchor(row) : null;
|
|
84
|
-
}
|
|
85
|
-
values.push(id);
|
|
86
|
-
const result = db.prepare(`UPDATE learning_anchors SET ${updates.join(", ")} WHERE id = ?`).run(...values);
|
|
87
|
-
if (result.changes === 0) {
|
|
88
|
-
return null;
|
|
89
|
-
}
|
|
90
|
-
const row = db.prepare("SELECT * FROM learning_anchors WHERE id = ?").get(id);
|
|
91
|
-
return rowToAnchor(row);
|
|
92
|
-
},
|
|
93
|
-
catch: (cause) => new DatabaseError({ cause })
|
|
94
|
-
}),
|
|
95
|
-
delete: (id) => Effect.try({
|
|
96
|
-
try: () => {
|
|
97
|
-
const result = db.prepare("DELETE FROM learning_anchors WHERE id = ?").run(id);
|
|
98
|
-
return result.changes > 0;
|
|
99
|
-
},
|
|
100
|
-
catch: (cause) => new DatabaseError({ cause })
|
|
101
|
-
}),
|
|
102
|
-
findDrifted: () => Effect.try({
|
|
103
|
-
try: () => {
|
|
104
|
-
const rows = db.prepare("SELECT * FROM learning_anchors WHERE status = 'drifted' ORDER BY created_at ASC").all();
|
|
105
|
-
return rows.map(rowToAnchor);
|
|
106
|
-
},
|
|
107
|
-
catch: (cause) => new DatabaseError({ cause })
|
|
108
|
-
}),
|
|
109
|
-
findInvalid: () => Effect.try({
|
|
110
|
-
try: () => {
|
|
111
|
-
const rows = db.prepare("SELECT * FROM learning_anchors WHERE status = 'invalid' ORDER BY created_at ASC").all();
|
|
112
|
-
return rows.map(rowToAnchor);
|
|
113
|
-
},
|
|
114
|
-
catch: (cause) => new DatabaseError({ cause })
|
|
115
|
-
}),
|
|
116
|
-
updateStatus: (id, status) => Effect.try({
|
|
117
|
-
try: () => {
|
|
118
|
-
const result = db.prepare("UPDATE learning_anchors SET status = ? WHERE id = ?").run(status, id);
|
|
119
|
-
return result.changes > 0;
|
|
120
|
-
},
|
|
121
|
-
catch: (cause) => new DatabaseError({ cause })
|
|
122
|
-
}),
|
|
123
|
-
updateVerifiedAt: (id) => Effect.try({
|
|
124
|
-
try: () => {
|
|
125
|
-
const result = db.prepare("UPDATE learning_anchors SET verified_at = datetime('now') WHERE id = ?").run(id);
|
|
126
|
-
return result.changes > 0;
|
|
127
|
-
},
|
|
128
|
-
catch: (cause) => new DatabaseError({ cause })
|
|
129
|
-
}),
|
|
130
|
-
findAll: () => Effect.try({
|
|
131
|
-
try: () => {
|
|
132
|
-
const rows = db.prepare("SELECT * FROM learning_anchors ORDER BY created_at DESC").all();
|
|
133
|
-
return rows.map(rowToAnchor);
|
|
134
|
-
},
|
|
135
|
-
catch: (cause) => new DatabaseError({ cause })
|
|
136
|
-
}),
|
|
137
|
-
findAllValid: () => Effect.try({
|
|
138
|
-
try: () => {
|
|
139
|
-
const rows = db.prepare("SELECT * FROM learning_anchors WHERE status = 'valid' ORDER BY created_at DESC").all();
|
|
140
|
-
return rows.map(rowToAnchor);
|
|
141
|
-
},
|
|
142
|
-
catch: (cause) => new DatabaseError({ cause })
|
|
143
|
-
}),
|
|
144
|
-
setPinned: (id, pinned) => Effect.try({
|
|
145
|
-
try: () => {
|
|
146
|
-
const result = db.prepare("UPDATE learning_anchors SET pinned = ? WHERE id = ?").run(pinned ? 1 : 0, id);
|
|
147
|
-
return result.changes > 0;
|
|
148
|
-
},
|
|
149
|
-
catch: (cause) => new DatabaseError({ cause })
|
|
150
|
-
}),
|
|
151
|
-
deleteOldInvalid: (olderThanDays) => Effect.try({
|
|
152
|
-
try: () => {
|
|
153
|
-
const result = db.prepare(`DELETE FROM learning_anchors
|
|
154
|
-
WHERE status = 'invalid'
|
|
155
|
-
AND created_at < datetime('now', '-' || ? || ' days')`).run(olderThanDays);
|
|
156
|
-
return result.changes;
|
|
157
|
-
},
|
|
158
|
-
catch: (cause) => new DatabaseError({ cause })
|
|
159
|
-
}),
|
|
160
|
-
logInvalidation: (input) => Effect.try({
|
|
161
|
-
try: () => {
|
|
162
|
-
const result = db.prepare(`INSERT INTO invalidation_log
|
|
163
|
-
(anchor_id, old_status, new_status, reason, detected_by, old_content_hash, new_content_hash, similarity_score)
|
|
164
|
-
VALUES (?, ?, ?, ?, ?, ?, ?, ?)`).run(input.anchorId, input.oldStatus, input.newStatus, input.reason, input.detectedBy, input.oldContentHash ?? null, input.newContentHash ?? null, input.similarityScore ?? null);
|
|
165
|
-
const row = db.prepare("SELECT * FROM invalidation_log WHERE id = ?").get(result.lastInsertRowid);
|
|
166
|
-
return rowToInvalidationLog(row);
|
|
167
|
-
},
|
|
168
|
-
catch: (cause) => new DatabaseError({ cause })
|
|
169
|
-
}),
|
|
170
|
-
getInvalidationLogs: (anchorId) => Effect.try({
|
|
171
|
-
try: () => {
|
|
172
|
-
if (anchorId !== undefined) {
|
|
173
|
-
const rows = db.prepare("SELECT * FROM invalidation_log WHERE anchor_id = ? ORDER BY invalidated_at DESC, id DESC").all(anchorId);
|
|
174
|
-
return rows.map(rowToInvalidationLog);
|
|
175
|
-
}
|
|
176
|
-
const rows = db.prepare("SELECT * FROM invalidation_log ORDER BY invalidated_at DESC, id DESC LIMIT 100").all();
|
|
177
|
-
return rows.map(rowToInvalidationLog);
|
|
178
|
-
},
|
|
179
|
-
catch: (cause) => new DatabaseError({ cause })
|
|
180
|
-
}),
|
|
181
|
-
getStatusSummary: () => Effect.try({
|
|
182
|
-
try: () => {
|
|
183
|
-
const result = db.prepare(`
|
|
184
|
-
SELECT
|
|
185
|
-
COUNT(*) as total,
|
|
186
|
-
SUM(CASE WHEN status = 'valid' THEN 1 ELSE 0 END) as valid,
|
|
187
|
-
SUM(CASE WHEN status = 'drifted' THEN 1 ELSE 0 END) as drifted,
|
|
188
|
-
SUM(CASE WHEN status = 'invalid' THEN 1 ELSE 0 END) as invalid,
|
|
189
|
-
SUM(CASE WHEN pinned = 1 THEN 1 ELSE 0 END) as pinned
|
|
190
|
-
FROM learning_anchors
|
|
191
|
-
`).get();
|
|
192
|
-
return {
|
|
193
|
-
total: result.total ?? 0,
|
|
194
|
-
valid: result.valid ?? 0,
|
|
195
|
-
drifted: result.drifted ?? 0,
|
|
196
|
-
invalid: result.invalid ?? 0,
|
|
197
|
-
pinned: result.pinned ?? 0
|
|
198
|
-
};
|
|
199
|
-
},
|
|
200
|
-
catch: (cause) => new DatabaseError({ cause })
|
|
201
|
-
})
|
|
202
|
-
};
|
|
203
|
-
}));
|
|
204
|
-
//# sourceMappingURL=anchor-repo.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"anchor-repo.js","sourceRoot":"","sources":["../../src/repo/anchor-repo.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { Context, Effect, Layer } from "effect";
|
|
2
|
-
import { SqliteClient } from "../db.js";
|
|
3
|
-
import { DatabaseError } from "../errors.js";
|
|
4
|
-
import type { LearningCandidate, CreateCandidateInput, UpdateCandidateInput, CandidateFilter, CandidateStatus } from "@jamesaphoenix/tx-types";
|
|
5
|
-
declare const CandidateRepository_base: Context.TagClass<CandidateRepository, "CandidateRepository", {
|
|
6
|
-
readonly insert: (input: CreateCandidateInput) => Effect.Effect<LearningCandidate, DatabaseError>;
|
|
7
|
-
readonly findById: (id: number) => Effect.Effect<LearningCandidate | null, DatabaseError>;
|
|
8
|
-
readonly findByFilter: (filter: CandidateFilter) => Effect.Effect<readonly LearningCandidate[], DatabaseError>;
|
|
9
|
-
readonly update: (id: number, input: UpdateCandidateInput) => Effect.Effect<LearningCandidate | null, DatabaseError>;
|
|
10
|
-
readonly updateStatus: (id: number, status: CandidateStatus) => Effect.Effect<LearningCandidate | null, DatabaseError>;
|
|
11
|
-
}>;
|
|
12
|
-
export declare class CandidateRepository extends CandidateRepository_base {
|
|
13
|
-
}
|
|
14
|
-
export declare const CandidateRepositoryLive: Layer.Layer<CandidateRepository, never, SqliteClient>;
|
|
15
|
-
export {};
|
|
16
|
-
//# sourceMappingURL=candidate-repo.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"candidate-repo.d.ts","sourceRoot":"","sources":["../../src/repo/candidate-repo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAE5C,OAAO,KAAK,EACV,iBAAiB,EAEjB,oBAAoB,EACpB,oBAAoB,EACpB,eAAe,EACf,eAAe,EAChB,MAAM,yBAAyB,CAAA;;qBAKX,CAAC,KAAK,EAAE,oBAAoB,KAAK,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE,aAAa,CAAC;uBAC9E,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,iBAAiB,GAAG,IAAI,EAAE,aAAa,CAAC;2BAClE,CAAC,MAAM,EAAE,eAAe,KAAK,MAAM,CAAC,MAAM,CAAC,SAAS,iBAAiB,EAAE,EAAE,aAAa,CAAC;qBAC7F,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,oBAAoB,KAAK,MAAM,CAAC,MAAM,CAAC,iBAAiB,GAAG,IAAI,EAAE,aAAa,CAAC;2BAC7F,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,KAAK,MAAM,CAAC,MAAM,CAAC,iBAAiB,GAAG,IAAI,EAAE,aAAa,CAAC;;AAP1H,qBAAa,mBAAoB,SAAQ,wBAStC;CAAG;AAEN,eAAO,MAAM,uBAAuB,uDA6LnC,CAAA"}
|
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
import { Context, Effect, Layer } from "effect";
|
|
2
|
-
import { SqliteClient } from "../db.js";
|
|
3
|
-
import { DatabaseError } from "../errors.js";
|
|
4
|
-
import { rowToCandidate } from "../mappers/candidate.js";
|
|
5
|
-
export class CandidateRepository extends Context.Tag("CandidateRepository")() {
|
|
6
|
-
}
|
|
7
|
-
export const CandidateRepositoryLive = Layer.effect(CandidateRepository, Effect.gen(function* () {
|
|
8
|
-
const db = yield* SqliteClient;
|
|
9
|
-
return {
|
|
10
|
-
insert: (input) => Effect.try({
|
|
11
|
-
try: () => {
|
|
12
|
-
const now = new Date().toISOString();
|
|
13
|
-
const result = db.prepare(`INSERT INTO learning_candidates
|
|
14
|
-
(content, confidence, category, source_file, source_run_id, source_task_id, extracted_at, status)
|
|
15
|
-
VALUES (?, ?, ?, ?, ?, ?, ?, 'pending')`).run(input.content, input.confidence, input.category ?? null, input.sourceFile, input.sourceRunId ?? null, input.sourceTaskId ?? null, now);
|
|
16
|
-
const row = db.prepare("SELECT * FROM learning_candidates WHERE id = ?").get(result.lastInsertRowid);
|
|
17
|
-
return rowToCandidate(row);
|
|
18
|
-
},
|
|
19
|
-
catch: (cause) => new DatabaseError({ cause })
|
|
20
|
-
}),
|
|
21
|
-
findById: (id) => Effect.try({
|
|
22
|
-
try: () => {
|
|
23
|
-
const row = db.prepare("SELECT * FROM learning_candidates WHERE id = ?").get(id);
|
|
24
|
-
return row ? rowToCandidate(row) : null;
|
|
25
|
-
},
|
|
26
|
-
catch: (cause) => new DatabaseError({ cause })
|
|
27
|
-
}),
|
|
28
|
-
findByFilter: (filter) => Effect.try({
|
|
29
|
-
try: () => {
|
|
30
|
-
const conditions = [];
|
|
31
|
-
const values = [];
|
|
32
|
-
// Status filter (supports single or array)
|
|
33
|
-
if (filter.status !== undefined) {
|
|
34
|
-
const statuses = Array.isArray(filter.status) ? filter.status : [filter.status];
|
|
35
|
-
if (statuses.length > 0) {
|
|
36
|
-
conditions.push(`status IN (${statuses.map(() => "?").join(", ")})`);
|
|
37
|
-
values.push(...statuses);
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
// Confidence filter (supports single or array)
|
|
41
|
-
if (filter.confidence !== undefined) {
|
|
42
|
-
const confidences = Array.isArray(filter.confidence) ? filter.confidence : [filter.confidence];
|
|
43
|
-
if (confidences.length > 0) {
|
|
44
|
-
conditions.push(`confidence IN (${confidences.map(() => "?").join(", ")})`);
|
|
45
|
-
values.push(...confidences);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
// Category filter (supports single or array)
|
|
49
|
-
if (filter.category !== undefined) {
|
|
50
|
-
const categories = Array.isArray(filter.category) ? filter.category : [filter.category];
|
|
51
|
-
if (categories.length > 0) {
|
|
52
|
-
conditions.push(`category IN (${categories.map(() => "?").join(", ")})`);
|
|
53
|
-
values.push(...categories);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
// Source file filter
|
|
57
|
-
if (filter.sourceFile !== undefined) {
|
|
58
|
-
conditions.push("source_file = ?");
|
|
59
|
-
values.push(filter.sourceFile);
|
|
60
|
-
}
|
|
61
|
-
// Source run ID filter
|
|
62
|
-
if (filter.sourceRunId !== undefined) {
|
|
63
|
-
conditions.push("source_run_id = ?");
|
|
64
|
-
values.push(filter.sourceRunId);
|
|
65
|
-
}
|
|
66
|
-
// Source task ID filter
|
|
67
|
-
if (filter.sourceTaskId !== undefined) {
|
|
68
|
-
conditions.push("source_task_id = ?");
|
|
69
|
-
values.push(filter.sourceTaskId);
|
|
70
|
-
}
|
|
71
|
-
// Build query
|
|
72
|
-
let sql = "SELECT * FROM learning_candidates";
|
|
73
|
-
if (conditions.length > 0) {
|
|
74
|
-
sql += ` WHERE ${conditions.join(" AND ")}`;
|
|
75
|
-
}
|
|
76
|
-
sql += " ORDER BY extracted_at DESC";
|
|
77
|
-
// Limit and offset
|
|
78
|
-
if (filter.limit !== undefined) {
|
|
79
|
-
sql += " LIMIT ?";
|
|
80
|
-
values.push(filter.limit);
|
|
81
|
-
if (filter.offset !== undefined) {
|
|
82
|
-
sql += " OFFSET ?";
|
|
83
|
-
values.push(filter.offset);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
const rows = db.prepare(sql).all(...values);
|
|
87
|
-
return rows.map(rowToCandidate);
|
|
88
|
-
},
|
|
89
|
-
catch: (cause) => new DatabaseError({ cause })
|
|
90
|
-
}),
|
|
91
|
-
update: (id, input) => Effect.try({
|
|
92
|
-
try: () => {
|
|
93
|
-
const updates = [];
|
|
94
|
-
const values = [];
|
|
95
|
-
if (input.status !== undefined) {
|
|
96
|
-
updates.push("status = ?");
|
|
97
|
-
values.push(input.status);
|
|
98
|
-
}
|
|
99
|
-
if (input.reviewedAt !== undefined) {
|
|
100
|
-
updates.push("reviewed_at = ?");
|
|
101
|
-
values.push(input.reviewedAt.toISOString());
|
|
102
|
-
}
|
|
103
|
-
if (input.reviewedBy !== undefined) {
|
|
104
|
-
updates.push("reviewed_by = ?");
|
|
105
|
-
values.push(input.reviewedBy);
|
|
106
|
-
}
|
|
107
|
-
if (input.promotedLearningId !== undefined) {
|
|
108
|
-
updates.push("promoted_learning_id = ?");
|
|
109
|
-
values.push(input.promotedLearningId);
|
|
110
|
-
}
|
|
111
|
-
if (input.rejectionReason !== undefined) {
|
|
112
|
-
updates.push("rejection_reason = ?");
|
|
113
|
-
values.push(input.rejectionReason);
|
|
114
|
-
}
|
|
115
|
-
if (updates.length === 0) {
|
|
116
|
-
// No updates, just return the current row
|
|
117
|
-
const row = db.prepare("SELECT * FROM learning_candidates WHERE id = ?").get(id);
|
|
118
|
-
return row ? rowToCandidate(row) : null;
|
|
119
|
-
}
|
|
120
|
-
values.push(id);
|
|
121
|
-
const result = db.prepare(`UPDATE learning_candidates SET ${updates.join(", ")} WHERE id = ?`).run(...values);
|
|
122
|
-
if (result.changes === 0) {
|
|
123
|
-
return null;
|
|
124
|
-
}
|
|
125
|
-
const row = db.prepare("SELECT * FROM learning_candidates WHERE id = ?").get(id);
|
|
126
|
-
return rowToCandidate(row);
|
|
127
|
-
},
|
|
128
|
-
catch: (cause) => new DatabaseError({ cause })
|
|
129
|
-
}),
|
|
130
|
-
updateStatus: (id, status) => Effect.try({
|
|
131
|
-
try: () => {
|
|
132
|
-
const result = db.prepare("UPDATE learning_candidates SET status = ? WHERE id = ?").run(status, id);
|
|
133
|
-
if (result.changes === 0) {
|
|
134
|
-
return null;
|
|
135
|
-
}
|
|
136
|
-
const row = db.prepare("SELECT * FROM learning_candidates WHERE id = ?").get(id);
|
|
137
|
-
return rowToCandidate(row);
|
|
138
|
-
},
|
|
139
|
-
catch: (cause) => new DatabaseError({ cause })
|
|
140
|
-
})
|
|
141
|
-
};
|
|
142
|
-
}));
|
|
143
|
-
//# sourceMappingURL=candidate-repo.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"candidate-repo.js","sourceRoot":"","sources":["../../src/repo/candidate-repo.ts"],"names":[],"mappings":"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"}
|
package/dist/repo/edge-repo.d.ts
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { Context, Effect, Layer } from "effect";
|
|
2
|
-
import { SqliteClient } from "../db.js";
|
|
3
|
-
import { DatabaseError, EdgeNotFoundError } from "../errors.js";
|
|
4
|
-
import type { Edge, NodeType, EdgeType, CreateEdgeInput, UpdateEdgeInput, NeighborNode } from "@jamesaphoenix/tx-types";
|
|
5
|
-
declare const EdgeRepository_base: Context.TagClass<EdgeRepository, "EdgeRepository", {
|
|
6
|
-
readonly create: (input: CreateEdgeInput) => Effect.Effect<Edge, DatabaseError>;
|
|
7
|
-
readonly findById: (id: number) => Effect.Effect<Edge | null, DatabaseError>;
|
|
8
|
-
readonly findBySource: (sourceType: NodeType, sourceId: string) => Effect.Effect<readonly Edge[], DatabaseError>;
|
|
9
|
-
readonly findByTarget: (targetType: NodeType, targetId: string) => Effect.Effect<readonly Edge[], DatabaseError>;
|
|
10
|
-
readonly findByMultipleSources: (sourceType: NodeType, sourceIds: readonly string[]) => Effect.Effect<ReadonlyMap<string, readonly Edge[]>, DatabaseError>;
|
|
11
|
-
readonly findByEdgeType: (edgeType: EdgeType) => Effect.Effect<readonly Edge[], DatabaseError>;
|
|
12
|
-
readonly countByType: () => Effect.Effect<ReadonlyMap<EdgeType, number>, DatabaseError>;
|
|
13
|
-
readonly findNeighbors: (nodeType: NodeType, nodeId: string, options?: {
|
|
14
|
-
direction?: "outgoing" | "incoming" | "both";
|
|
15
|
-
edgeTypes?: readonly EdgeType[];
|
|
16
|
-
}) => Effect.Effect<readonly NeighborNode[], DatabaseError>;
|
|
17
|
-
readonly findPath: (fromType: NodeType, fromId: string, toType: NodeType, toId: string, maxDepth?: number) => Effect.Effect<readonly Edge[] | null, DatabaseError>;
|
|
18
|
-
readonly update: (id: number, input: UpdateEdgeInput) => Effect.Effect<Edge | null, DatabaseError>;
|
|
19
|
-
readonly invalidate: (id: number) => Effect.Effect<boolean, EdgeNotFoundError | DatabaseError>;
|
|
20
|
-
readonly findAll: () => Effect.Effect<readonly Edge[], DatabaseError>;
|
|
21
|
-
}>;
|
|
22
|
-
export declare class EdgeRepository extends EdgeRepository_base {
|
|
23
|
-
}
|
|
24
|
-
export declare const EdgeRepositoryLive: Layer.Layer<EdgeRepository, never, SqliteClient>;
|
|
25
|
-
export {};
|
|
26
|
-
//# sourceMappingURL=edge-repo.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"edge-repo.d.ts","sourceRoot":"","sources":["../../src/repo/edge-repo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACvC,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAE/D,OAAO,KAAK,EACV,IAAI,EAEJ,QAAQ,EACR,QAAQ,EACR,eAAe,EACf,eAAe,EACf,YAAY,EACb,MAAM,yBAAyB,CAAA;;qBAKX,CAAC,KAAK,EAAE,eAAe,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC;uBAC5D,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,EAAE,aAAa,CAAC;2BACrD,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,EAAE,aAAa,CAAC;2BACzF,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,EAAE,aAAa,CAAC;oCAChF,CAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,MAAM,EAAE,KAAK,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,SAAS,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC;6BACjI,CAAC,QAAQ,EAAE,QAAQ,KAAK,MAAM,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,EAAE,aAAa,CAAC;0BACxE,MAAM,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,aAAa,CAAC;4BAC/D,CACtB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;QACR,SAAS,CAAC,EAAE,UAAU,GAAG,UAAU,GAAG,MAAM,CAAA;QAC5C,SAAS,CAAC,EAAE,SAAS,QAAQ,EAAE,CAAA;KAChC,KACE,MAAM,CAAC,MAAM,CAAC,SAAS,YAAY,EAAE,EAAE,aAAa,CAAC;uBACvC,CACjB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,QAAQ,EAChB,IAAI,EAAE,MAAM,EACZ,QAAQ,CAAC,EAAE,MAAM,KACd,MAAM,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,GAAG,IAAI,EAAE,aAAa,CAAC;qBACxC,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,EAAE,aAAa,CAAC;yBAC7E,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,iBAAiB,GAAG,aAAa,CAAC;sBAC5E,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,EAAE,aAAa,CAAC;;AA3BzE,qBAAa,cAAe,SAAQ,mBA6BjC;CAAG;AAEN,eAAO,MAAM,kBAAkB,kDAqT9B,CAAA"}
|