@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,58 +0,0 @@
|
|
|
1
|
-
import { Context, Effect, Layer } from "effect";
|
|
2
|
-
import { AstGrepError } from "../errors.js";
|
|
3
|
-
import type { SymbolInfo, ImportInfo, Match, SymbolPattern } from "@jamesaphoenix/tx-types";
|
|
4
|
-
/**
|
|
5
|
-
* File extension to ast-grep language mapping.
|
|
6
|
-
* Covers TypeScript, JavaScript, Python, Go, Rust, Java, C#, Ruby, PHP, Kotlin, Swift, C/C++.
|
|
7
|
-
*/
|
|
8
|
-
export declare const EXT_TO_LANGUAGE: Readonly<Record<string, string>>;
|
|
9
|
-
/**
|
|
10
|
-
* Default symbol patterns for each supported language.
|
|
11
|
-
* These patterns are used by ast-grep to extract symbols from source files.
|
|
12
|
-
* Following DD-014 specification.
|
|
13
|
-
*/
|
|
14
|
-
export declare const DEFAULT_SYMBOL_PATTERNS: Readonly<Record<string, readonly SymbolPattern[]>>;
|
|
15
|
-
declare const AstGrepService_base: Context.TagClass<AstGrepService, "AstGrepService", {
|
|
16
|
-
/**
|
|
17
|
-
* Find all symbols (functions, classes, interfaces, etc.) in a file.
|
|
18
|
-
* Returns empty array for unsupported file types.
|
|
19
|
-
*/
|
|
20
|
-
readonly findSymbols: (filePath: string) => Effect.Effect<readonly SymbolInfo[], AstGrepError>;
|
|
21
|
-
/**
|
|
22
|
-
* Extract import statements from a file.
|
|
23
|
-
* Returns empty array for unsupported file types.
|
|
24
|
-
*/
|
|
25
|
-
readonly getImports: (filePath: string) => Effect.Effect<readonly ImportInfo[], AstGrepError>;
|
|
26
|
-
/**
|
|
27
|
-
* Match a custom ast-grep pattern against a file or directory.
|
|
28
|
-
*/
|
|
29
|
-
readonly matchPattern: (pattern: string, path: string) => Effect.Effect<readonly Match[], AstGrepError>;
|
|
30
|
-
}>;
|
|
31
|
-
/**
|
|
32
|
-
* AstGrepService provides code intelligence via ast-grep CLI.
|
|
33
|
-
*
|
|
34
|
-
* This service extracts symbols, imports, and matches patterns from source files
|
|
35
|
-
* using structural code analysis. It gracefully degrades when ast-grep is not
|
|
36
|
-
* installed by providing a Noop fallback.
|
|
37
|
-
*
|
|
38
|
-
* Design: Following DD-014 specification for symbol extraction.
|
|
39
|
-
*/
|
|
40
|
-
export declare class AstGrepService extends AstGrepService_base {
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Live implementation that spawns ast-grep CLI.
|
|
44
|
-
* Requires ast-grep to be installed and available in PATH.
|
|
45
|
-
*/
|
|
46
|
-
export declare const AstGrepServiceLive: Layer.Layer<AstGrepService, never, never>;
|
|
47
|
-
/**
|
|
48
|
-
* Noop implementation that returns empty arrays.
|
|
49
|
-
* Used when ast-grep is not installed or not available.
|
|
50
|
-
*/
|
|
51
|
-
export declare const AstGrepServiceNoop: Layer.Layer<AstGrepService, never, never>;
|
|
52
|
-
/**
|
|
53
|
-
* Auto-detecting layer that uses Live if ast-grep is available, Noop otherwise.
|
|
54
|
-
* This allows graceful degradation when ast-grep is not installed.
|
|
55
|
-
*/
|
|
56
|
-
export declare const AstGrepServiceAuto: Layer.Layer<AstGrepService, never, never>;
|
|
57
|
-
export {};
|
|
58
|
-
//# sourceMappingURL=ast-grep-service.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ast-grep-service.d.ts","sourceRoot":"","sources":["../../src/services/ast-grep-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAE/C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAc,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAEvG;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAqC5D,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,aAAa,EAAE,CAAC,CAsHtF,CAAA;;IAcG;;;OAGG;0BACmB,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,SAAS,UAAU,EAAE,EAAE,YAAY,CAAC;IAC9F;;;OAGG;yBACkB,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,SAAS,UAAU,EAAE,EAAE,YAAY,CAAC;IAC7F;;OAEG;2BACoB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,SAAS,KAAK,EAAE,EAAE,YAAY,CAAC;;AAzB3G;;;;;;;;GAQG;AACH,qBAAa,cAAe,SAAQ,mBAkBjC;CAAG;AA6EN;;;GAGG;AACH,eAAO,MAAM,kBAAkB,2CAkJ7B,CAAA;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,2CAI7B,CAAA;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,2CAoB9B,CAAA"}
|
|
@@ -1,356 +0,0 @@
|
|
|
1
|
-
import { Context, Effect, Layer } from "effect";
|
|
2
|
-
import { spawn } from "child_process";
|
|
3
|
-
import { AstGrepError } from "../errors.js";
|
|
4
|
-
/**
|
|
5
|
-
* File extension to ast-grep language mapping.
|
|
6
|
-
* Covers TypeScript, JavaScript, Python, Go, Rust, Java, C#, Ruby, PHP, Kotlin, Swift, C/C++.
|
|
7
|
-
*/
|
|
8
|
-
export const EXT_TO_LANGUAGE = {
|
|
9
|
-
// TypeScript
|
|
10
|
-
".ts": "typescript",
|
|
11
|
-
".tsx": "typescript",
|
|
12
|
-
".mts": "typescript",
|
|
13
|
-
// JavaScript
|
|
14
|
-
".js": "javascript",
|
|
15
|
-
".jsx": "javascript",
|
|
16
|
-
".mjs": "javascript",
|
|
17
|
-
// Python
|
|
18
|
-
".py": "python",
|
|
19
|
-
".pyw": "python",
|
|
20
|
-
// Go
|
|
21
|
-
".go": "go",
|
|
22
|
-
// Rust
|
|
23
|
-
".rs": "rust",
|
|
24
|
-
// Java
|
|
25
|
-
".java": "java",
|
|
26
|
-
// C#
|
|
27
|
-
".cs": "csharp",
|
|
28
|
-
// Ruby
|
|
29
|
-
".rb": "ruby",
|
|
30
|
-
// PHP
|
|
31
|
-
".php": "php",
|
|
32
|
-
// Kotlin
|
|
33
|
-
".kt": "kotlin",
|
|
34
|
-
".kts": "kotlin",
|
|
35
|
-
// Swift
|
|
36
|
-
".swift": "swift",
|
|
37
|
-
// C
|
|
38
|
-
".c": "c",
|
|
39
|
-
".h": "c",
|
|
40
|
-
// C++
|
|
41
|
-
".cpp": "cpp",
|
|
42
|
-
".cc": "cpp",
|
|
43
|
-
".cxx": "cpp",
|
|
44
|
-
".hpp": "cpp",
|
|
45
|
-
};
|
|
46
|
-
/**
|
|
47
|
-
* Default symbol patterns for each supported language.
|
|
48
|
-
* These patterns are used by ast-grep to extract symbols from source files.
|
|
49
|
-
* Following DD-014 specification.
|
|
50
|
-
*/
|
|
51
|
-
export const DEFAULT_SYMBOL_PATTERNS = {
|
|
52
|
-
// TypeScript / JavaScript
|
|
53
|
-
typescript: [
|
|
54
|
-
{ pattern: "export function $NAME($_) { $$$_ }", kind: "function", exported: true },
|
|
55
|
-
{ pattern: "export const $NAME = ($_) => $$$_", kind: "function", exported: true },
|
|
56
|
-
{ pattern: "export class $NAME { $$$_ }", kind: "class", exported: true },
|
|
57
|
-
{ pattern: "export interface $NAME { $$$_ }", kind: "interface", exported: true },
|
|
58
|
-
{ pattern: "export type $NAME = $_", kind: "type", exported: true },
|
|
59
|
-
{ pattern: "export const $NAME = $_", kind: "const", exported: true },
|
|
60
|
-
{ pattern: "function $NAME($_) { $$$_ }", kind: "function" },
|
|
61
|
-
{ pattern: "class $NAME { $$$_ }", kind: "class" },
|
|
62
|
-
],
|
|
63
|
-
javascript: [
|
|
64
|
-
{ pattern: "export function $NAME($_) { $$$_ }", kind: "function", exported: true },
|
|
65
|
-
{ pattern: "export const $NAME = ($_) => $$$_", kind: "function", exported: true },
|
|
66
|
-
{ pattern: "export class $NAME { $$$_ }", kind: "class", exported: true },
|
|
67
|
-
{ pattern: "module.exports.$NAME = $_", kind: "function", exported: true },
|
|
68
|
-
{ pattern: "function $NAME($_) { $$$_ }", kind: "function" },
|
|
69
|
-
{ pattern: "class $NAME { $$$_ }", kind: "class" },
|
|
70
|
-
],
|
|
71
|
-
// Python
|
|
72
|
-
python: [
|
|
73
|
-
{ pattern: "def $NAME($_): $$$_", kind: "function" },
|
|
74
|
-
{ pattern: "async def $NAME($_): $$$_", kind: "function" },
|
|
75
|
-
{ pattern: "class $NAME: $$$_", kind: "class" },
|
|
76
|
-
{ pattern: "class $NAME($_): $$$_", kind: "class" },
|
|
77
|
-
],
|
|
78
|
-
// Go
|
|
79
|
-
go: [
|
|
80
|
-
{ pattern: "func $NAME($_) $_ { $$$_ }", kind: "function" },
|
|
81
|
-
{ pattern: "func ($_ $_) $NAME($_) $_ { $$$_ }", kind: "method" },
|
|
82
|
-
{ pattern: "type $NAME struct { $$$_ }", kind: "struct" },
|
|
83
|
-
{ pattern: "type $NAME interface { $$$_ }", kind: "interface" },
|
|
84
|
-
],
|
|
85
|
-
// Rust
|
|
86
|
-
rust: [
|
|
87
|
-
{ pattern: "pub fn $NAME($_) $$$_ { $$$_ }", kind: "function", exported: true },
|
|
88
|
-
{ pattern: "fn $NAME($_) $$$_ { $$$_ }", kind: "function" },
|
|
89
|
-
{ pattern: "pub struct $NAME { $$$_ }", kind: "struct", exported: true },
|
|
90
|
-
{ pattern: "struct $NAME { $$$_ }", kind: "struct" },
|
|
91
|
-
{ pattern: "pub enum $NAME { $$$_ }", kind: "enum", exported: true },
|
|
92
|
-
{ pattern: "pub trait $NAME { $$$_ }", kind: "trait", exported: true },
|
|
93
|
-
{ pattern: "impl $NAME { $$$_ }", kind: "class" },
|
|
94
|
-
],
|
|
95
|
-
// Java
|
|
96
|
-
java: [
|
|
97
|
-
{ pattern: "public class $NAME { $$$_ }", kind: "class", exported: true },
|
|
98
|
-
{ pattern: "public interface $NAME { $$$_ }", kind: "interface", exported: true },
|
|
99
|
-
{ pattern: "public enum $NAME { $$$_ }", kind: "enum", exported: true },
|
|
100
|
-
{ pattern: "public $_ $NAME($_) { $$$_ }", kind: "method", exported: true },
|
|
101
|
-
{ pattern: "private $_ $NAME($_) { $$$_ }", kind: "method" },
|
|
102
|
-
],
|
|
103
|
-
// C#
|
|
104
|
-
csharp: [
|
|
105
|
-
{ pattern: "public class $NAME { $$$_ }", kind: "class", exported: true },
|
|
106
|
-
{ pattern: "public interface $NAME { $$$_ }", kind: "interface", exported: true },
|
|
107
|
-
{ pattern: "public enum $NAME { $$$_ }", kind: "enum", exported: true },
|
|
108
|
-
{ pattern: "public $_ $NAME($_) { $$$_ }", kind: "method", exported: true },
|
|
109
|
-
{ pattern: "private $_ $NAME($_) { $$$_ }", kind: "method" },
|
|
110
|
-
{ pattern: "public struct $NAME { $$$_ }", kind: "struct", exported: true },
|
|
111
|
-
],
|
|
112
|
-
// Ruby
|
|
113
|
-
ruby: [
|
|
114
|
-
{ pattern: "def $NAME $$$_ end", kind: "method" },
|
|
115
|
-
{ pattern: "def self.$NAME $$$_ end", kind: "function" },
|
|
116
|
-
{ pattern: "class $NAME $$$_ end", kind: "class" },
|
|
117
|
-
{ pattern: "module $NAME $$$_ end", kind: "module" },
|
|
118
|
-
],
|
|
119
|
-
// PHP
|
|
120
|
-
php: [
|
|
121
|
-
{ pattern: "function $NAME($_) { $$$_ }", kind: "function" },
|
|
122
|
-
{ pattern: "public function $NAME($_) { $$$_ }", kind: "method", exported: true },
|
|
123
|
-
{ pattern: "class $NAME { $$$_ }", kind: "class" },
|
|
124
|
-
{ pattern: "interface $NAME { $$$_ }", kind: "interface" },
|
|
125
|
-
{ pattern: "trait $NAME { $$$_ }", kind: "trait" },
|
|
126
|
-
],
|
|
127
|
-
// Kotlin
|
|
128
|
-
kotlin: [
|
|
129
|
-
{ pattern: "fun $NAME($_): $_ { $$$_ }", kind: "function" },
|
|
130
|
-
{ pattern: "class $NAME { $$$_ }", kind: "class" },
|
|
131
|
-
{ pattern: "data class $NAME($_)", kind: "class" },
|
|
132
|
-
{ pattern: "interface $NAME { $$$_ }", kind: "interface" },
|
|
133
|
-
{ pattern: "object $NAME { $$$_ }", kind: "class" },
|
|
134
|
-
],
|
|
135
|
-
// Swift
|
|
136
|
-
swift: [
|
|
137
|
-
{ pattern: "func $NAME($_) $$$_ { $$$_ }", kind: "function" },
|
|
138
|
-
{ pattern: "class $NAME { $$$_ }", kind: "class" },
|
|
139
|
-
{ pattern: "struct $NAME { $$$_ }", kind: "struct" },
|
|
140
|
-
{ pattern: "protocol $NAME { $$$_ }", kind: "interface" },
|
|
141
|
-
{ pattern: "enum $NAME { $$$_ }", kind: "enum" },
|
|
142
|
-
],
|
|
143
|
-
// C
|
|
144
|
-
c: [
|
|
145
|
-
{ pattern: "$_ $NAME($_) { $$$_ }", kind: "function" },
|
|
146
|
-
{ pattern: "struct $NAME { $$$_ }", kind: "struct" },
|
|
147
|
-
{ pattern: "typedef struct { $$$_ } $NAME", kind: "struct" },
|
|
148
|
-
{ pattern: "enum $NAME { $$$_ }", kind: "enum" },
|
|
149
|
-
],
|
|
150
|
-
// C++
|
|
151
|
-
cpp: [
|
|
152
|
-
{ pattern: "$_ $NAME($_) { $$$_ }", kind: "function" },
|
|
153
|
-
{ pattern: "class $NAME { $$$_ }", kind: "class" },
|
|
154
|
-
{ pattern: "struct $NAME { $$$_ }", kind: "struct" },
|
|
155
|
-
{ pattern: "namespace $NAME { $$$_ }", kind: "module" },
|
|
156
|
-
{ pattern: "template<$_> class $NAME { $$$_ }", kind: "class" },
|
|
157
|
-
],
|
|
158
|
-
};
|
|
159
|
-
/**
|
|
160
|
-
* AstGrepService provides code intelligence via ast-grep CLI.
|
|
161
|
-
*
|
|
162
|
-
* This service extracts symbols, imports, and matches patterns from source files
|
|
163
|
-
* using structural code analysis. It gracefully degrades when ast-grep is not
|
|
164
|
-
* installed by providing a Noop fallback.
|
|
165
|
-
*
|
|
166
|
-
* Design: Following DD-014 specification for symbol extraction.
|
|
167
|
-
*/
|
|
168
|
-
export class AstGrepService extends Context.Tag("AstGrepService")() {
|
|
169
|
-
}
|
|
170
|
-
/**
|
|
171
|
-
* Get the language identifier for a file path based on extension.
|
|
172
|
-
*/
|
|
173
|
-
const getLanguage = (filePath) => {
|
|
174
|
-
const lastDot = filePath.lastIndexOf(".");
|
|
175
|
-
if (lastDot === -1)
|
|
176
|
-
return null;
|
|
177
|
-
const ext = filePath.slice(lastDot);
|
|
178
|
-
return EXT_TO_LANGUAGE[ext] ?? null;
|
|
179
|
-
};
|
|
180
|
-
/**
|
|
181
|
-
* Get symbol patterns for a language.
|
|
182
|
-
*/
|
|
183
|
-
const getPatterns = (language) => {
|
|
184
|
-
return DEFAULT_SYMBOL_PATTERNS[language] ?? [];
|
|
185
|
-
};
|
|
186
|
-
/**
|
|
187
|
-
* Run ast-grep CLI with given arguments.
|
|
188
|
-
* Returns the stdout as a string.
|
|
189
|
-
*/
|
|
190
|
-
const runAstGrep = (args) => Effect.async((resume) => {
|
|
191
|
-
const proc = spawn("ast-grep", [...args], { stdio: ["ignore", "pipe", "pipe"] });
|
|
192
|
-
let stdout = "";
|
|
193
|
-
let stderr = "";
|
|
194
|
-
proc.stdout.on("data", (data) => {
|
|
195
|
-
stdout += data.toString();
|
|
196
|
-
});
|
|
197
|
-
proc.stderr.on("data", (data) => {
|
|
198
|
-
stderr += data.toString();
|
|
199
|
-
});
|
|
200
|
-
proc.on("close", (code) => {
|
|
201
|
-
if (code !== 0 && code !== null) {
|
|
202
|
-
resume(Effect.fail(new AstGrepError({
|
|
203
|
-
reason: `ast-grep exited with code ${code}`,
|
|
204
|
-
cause: stderr,
|
|
205
|
-
})));
|
|
206
|
-
}
|
|
207
|
-
else {
|
|
208
|
-
resume(Effect.succeed(stdout));
|
|
209
|
-
}
|
|
210
|
-
});
|
|
211
|
-
proc.on("error", (err) => {
|
|
212
|
-
resume(Effect.fail(new AstGrepError({
|
|
213
|
-
reason: "Failed to spawn ast-grep",
|
|
214
|
-
cause: err,
|
|
215
|
-
})));
|
|
216
|
-
});
|
|
217
|
-
});
|
|
218
|
-
/**
|
|
219
|
-
* Live implementation that spawns ast-grep CLI.
|
|
220
|
-
* Requires ast-grep to be installed and available in PATH.
|
|
221
|
-
*/
|
|
222
|
-
export const AstGrepServiceLive = Layer.succeed(AstGrepService, {
|
|
223
|
-
findSymbols: (filePath) => Effect.gen(function* () {
|
|
224
|
-
const language = getLanguage(filePath);
|
|
225
|
-
if (!language) {
|
|
226
|
-
return [];
|
|
227
|
-
}
|
|
228
|
-
const patterns = getPatterns(language);
|
|
229
|
-
const symbols = [];
|
|
230
|
-
for (const { pattern, kind, exported } of patterns) {
|
|
231
|
-
const output = yield* runAstGrep(["--pattern", pattern, "--json", filePath]).pipe(Effect.catchAll(() => Effect.succeed("[]")));
|
|
232
|
-
let matches;
|
|
233
|
-
try {
|
|
234
|
-
matches = JSON.parse(output);
|
|
235
|
-
}
|
|
236
|
-
catch {
|
|
237
|
-
matches = [];
|
|
238
|
-
}
|
|
239
|
-
for (const m of matches) {
|
|
240
|
-
const name = m.metaVariables?.NAME?.text;
|
|
241
|
-
if (name) {
|
|
242
|
-
symbols.push({
|
|
243
|
-
name,
|
|
244
|
-
kind: kind,
|
|
245
|
-
line: (m.range?.start?.line ?? 0) + 1, // Convert 0-indexed to 1-indexed
|
|
246
|
-
exported: exported ?? false,
|
|
247
|
-
});
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
return symbols;
|
|
252
|
-
}),
|
|
253
|
-
getImports: (filePath) => Effect.gen(function* () {
|
|
254
|
-
const language = getLanguage(filePath);
|
|
255
|
-
if (!language) {
|
|
256
|
-
return [];
|
|
257
|
-
}
|
|
258
|
-
// TypeScript/JavaScript import patterns
|
|
259
|
-
const importPatterns = language === "typescript" || language === "javascript"
|
|
260
|
-
? [
|
|
261
|
-
'import { $$$SPECS } from "$SOURCE"',
|
|
262
|
-
'import * as $ALIAS from "$SOURCE"',
|
|
263
|
-
'import $DEFAULT from "$SOURCE"',
|
|
264
|
-
]
|
|
265
|
-
: [];
|
|
266
|
-
const imports = [];
|
|
267
|
-
for (const pattern of importPatterns) {
|
|
268
|
-
const output = yield* runAstGrep(["--pattern", pattern, "--json", filePath]).pipe(Effect.catchAll(() => Effect.succeed("[]")));
|
|
269
|
-
let matches;
|
|
270
|
-
try {
|
|
271
|
-
matches = JSON.parse(output);
|
|
272
|
-
}
|
|
273
|
-
catch {
|
|
274
|
-
matches = [];
|
|
275
|
-
}
|
|
276
|
-
for (const m of matches) {
|
|
277
|
-
const source = m.metaVariables?.SOURCE?.text ?? "";
|
|
278
|
-
if (!source)
|
|
279
|
-
continue;
|
|
280
|
-
// Extract specifiers from different patterns
|
|
281
|
-
const specsText = m.metaVariables?.SPECS?.text ?? "";
|
|
282
|
-
const aliasText = m.metaVariables?.ALIAS?.text ?? "";
|
|
283
|
-
const defaultText = m.metaVariables?.DEFAULT?.text ?? "";
|
|
284
|
-
let specifiers;
|
|
285
|
-
if (specsText) {
|
|
286
|
-
specifiers = specsText
|
|
287
|
-
.split(",")
|
|
288
|
-
.map((s) => s.trim())
|
|
289
|
-
.filter(Boolean);
|
|
290
|
-
}
|
|
291
|
-
else if (aliasText) {
|
|
292
|
-
specifiers = [`* as ${aliasText}`];
|
|
293
|
-
}
|
|
294
|
-
else if (defaultText) {
|
|
295
|
-
specifiers = [defaultText];
|
|
296
|
-
}
|
|
297
|
-
else {
|
|
298
|
-
specifiers = [];
|
|
299
|
-
}
|
|
300
|
-
imports.push({
|
|
301
|
-
source,
|
|
302
|
-
specifiers,
|
|
303
|
-
kind: "static",
|
|
304
|
-
});
|
|
305
|
-
}
|
|
306
|
-
}
|
|
307
|
-
return imports;
|
|
308
|
-
}),
|
|
309
|
-
matchPattern: (pattern, path) => Effect.gen(function* () {
|
|
310
|
-
const output = yield* runAstGrep(["--pattern", pattern, "--json", path]);
|
|
311
|
-
let matches;
|
|
312
|
-
try {
|
|
313
|
-
matches = JSON.parse(output);
|
|
314
|
-
}
|
|
315
|
-
catch {
|
|
316
|
-
return [];
|
|
317
|
-
}
|
|
318
|
-
return matches.map((m) => ({
|
|
319
|
-
file: m.file ?? path,
|
|
320
|
-
line: (m.range?.start?.line ?? 0) + 1, // Convert 0-indexed to 1-indexed
|
|
321
|
-
column: (m.range?.start?.column ?? 0) + 1,
|
|
322
|
-
text: m.text ?? "",
|
|
323
|
-
captures: Object.fromEntries(Object.entries(m.metaVariables ?? {}).map(([k, v]) => [k, v?.text ?? ""])),
|
|
324
|
-
}));
|
|
325
|
-
}),
|
|
326
|
-
});
|
|
327
|
-
/**
|
|
328
|
-
* Noop implementation that returns empty arrays.
|
|
329
|
-
* Used when ast-grep is not installed or not available.
|
|
330
|
-
*/
|
|
331
|
-
export const AstGrepServiceNoop = Layer.succeed(AstGrepService, {
|
|
332
|
-
findSymbols: () => Effect.succeed([]),
|
|
333
|
-
getImports: () => Effect.succeed([]),
|
|
334
|
-
matchPattern: () => Effect.succeed([]),
|
|
335
|
-
});
|
|
336
|
-
/**
|
|
337
|
-
* Auto-detecting layer that uses Live if ast-grep is available, Noop otherwise.
|
|
338
|
-
* This allows graceful degradation when ast-grep is not installed.
|
|
339
|
-
*/
|
|
340
|
-
export const AstGrepServiceAuto = Layer.unwrapEffect(Effect.gen(function* () {
|
|
341
|
-
// Check if ast-grep is available by trying to run it
|
|
342
|
-
const available = yield* Effect.async((resume) => {
|
|
343
|
-
const proc = spawn("ast-grep", ["--version"], { stdio: ["ignore", "pipe", "pipe"] });
|
|
344
|
-
proc.on("close", (code) => {
|
|
345
|
-
resume(Effect.succeed(code === 0));
|
|
346
|
-
});
|
|
347
|
-
proc.on("error", () => {
|
|
348
|
-
resume(Effect.succeed(false));
|
|
349
|
-
});
|
|
350
|
-
});
|
|
351
|
-
if (available) {
|
|
352
|
-
return AstGrepServiceLive;
|
|
353
|
-
}
|
|
354
|
-
return AstGrepServiceNoop;
|
|
355
|
-
}));
|
|
356
|
-
//# sourceMappingURL=ast-grep-service.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ast-grep-service.js","sourceRoot":"","sources":["../../src/services/ast-grep-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import { Context, Effect, Layer } from "effect";
|
|
2
|
-
import { ExtractionUnavailableError } from "../errors.js";
|
|
3
|
-
import type { TranscriptChunk, ExtractionResult } from "@jamesaphoenix/tx-types";
|
|
4
|
-
declare const CandidateExtractorService_base: Context.TagClass<CandidateExtractorService, "CandidateExtractorService", {
|
|
5
|
-
/**
|
|
6
|
-
* Extract learning candidates from a transcript chunk.
|
|
7
|
-
* Returns structured candidates with confidence and category.
|
|
8
|
-
*/
|
|
9
|
-
readonly extract: (chunk: TranscriptChunk) => Effect.Effect<ExtractionResult, ExtractionUnavailableError>;
|
|
10
|
-
/** Check if extraction functionality is available */
|
|
11
|
-
readonly isAvailable: () => Effect.Effect<boolean>;
|
|
12
|
-
}>;
|
|
13
|
-
/**
|
|
14
|
-
* CandidateExtractorService extracts learning candidates from Claude Code transcripts.
|
|
15
|
-
*
|
|
16
|
-
* This service uses LLM to analyze transcript content and identify:
|
|
17
|
-
* - Technical decisions with rationale
|
|
18
|
-
* - Gotchas and pitfalls to avoid
|
|
19
|
-
* - Patterns that worked well
|
|
20
|
-
* - Future improvements
|
|
21
|
-
*
|
|
22
|
-
* Design: Following DD-006 patterns for LLM integration with pluggable backends.
|
|
23
|
-
* Supports Anthropic, OpenAI, and noop backends with graceful degradation.
|
|
24
|
-
*
|
|
25
|
-
* @see PRD-015 for the JSONL daemon and knowledge promotion pipeline
|
|
26
|
-
*/
|
|
27
|
-
export declare class CandidateExtractorService extends CandidateExtractorService_base {
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Noop implementation - returns empty results without LLM processing.
|
|
31
|
-
* Used when no LLM API key is configured or for testing.
|
|
32
|
-
*/
|
|
33
|
-
export declare const CandidateExtractorServiceNoop: Layer.Layer<CandidateExtractorService, never, never>;
|
|
34
|
-
/**
|
|
35
|
-
* Anthropic (Claude) implementation.
|
|
36
|
-
* Uses Claude to extract learning candidates from transcripts.
|
|
37
|
-
*/
|
|
38
|
-
export declare const CandidateExtractorServiceAnthropic: Layer.Layer<CandidateExtractorService, ExtractionUnavailableError, never>;
|
|
39
|
-
/**
|
|
40
|
-
* OpenAI (GPT) implementation.
|
|
41
|
-
* Uses GPT to extract learning candidates from transcripts.
|
|
42
|
-
*/
|
|
43
|
-
export declare const CandidateExtractorServiceOpenAI: Layer.Layer<CandidateExtractorService, ExtractionUnavailableError, never>;
|
|
44
|
-
/**
|
|
45
|
-
* Auto-detecting layer that selects the appropriate backend based on environment.
|
|
46
|
-
*
|
|
47
|
-
* Priority:
|
|
48
|
-
* 1. ANTHROPIC_API_KEY set → Use Anthropic (Claude)
|
|
49
|
-
* 2. OPENAI_API_KEY set → Use OpenAI (GPT)
|
|
50
|
-
* 3. Neither set → Use Noop (graceful degradation)
|
|
51
|
-
*
|
|
52
|
-
* This allows graceful degradation when no LLM API keys are configured.
|
|
53
|
-
*/
|
|
54
|
-
export declare const CandidateExtractorServiceAuto: Layer.Layer<CandidateExtractorService, ExtractionUnavailableError, never>;
|
|
55
|
-
export {};
|
|
56
|
-
//# sourceMappingURL=candidate-extractor-service.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"candidate-extractor-service.d.ts","sourceRoot":"","sources":["../../src/services/candidate-extractor-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAkB,MAAM,QAAQ,CAAA;AAC/D,OAAO,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAA;AACzD,OAAO,KAAK,EACV,eAAe,EAEf,gBAAgB,EAGjB,MAAM,yBAAyB,CAAA;;IAgL5B;;;OAGG;sBACe,CAAC,KAAK,EAAE,eAAe,KAAK,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,0BAA0B,CAAC;IACzG,qDAAqD;0BAC/B,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;;AAvBtD;;;;;;;;;;;;;GAaG;AACH,qBAAa,yBAA0B,SAAQ,8BAW5C;CAAG;AAEN;;;GAGG;AACH,eAAO,MAAM,6BAA6B,sDAUzC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,kCAAkC,2EA0G9C,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,+BAA+B,2EA4G3C,CAAA;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,6BAA6B,2EAmBzC,CAAA"}
|