@jamesaphoenix/tx-core 0.5.1 → 0.5.2
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
CHANGED
|
@@ -9,6 +9,14 @@ npm install -g @jamesaphoenix/tx-cli
|
|
|
9
9
|
tx init
|
|
10
10
|
```
|
|
11
11
|
|
|
12
|
+
Agent onboarding (optional, both supported):
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
tx init --claude # CLAUDE.md + .claude/skills
|
|
16
|
+
tx init --codex # AGENTS.md + .codex/agents
|
|
17
|
+
tx init --claude --codex # scaffold both
|
|
18
|
+
```
|
|
19
|
+
|
|
12
20
|
---
|
|
13
21
|
|
|
14
22
|
## The Problem
|
|
@@ -132,18 +140,20 @@ We ship **example loops**, not **the loop**:
|
|
|
132
140
|
|
|
133
141
|
```bash
|
|
134
142
|
# Simple: one agent, one task
|
|
143
|
+
AGENT_CMD=${AGENT_CMD:-codex} # or: claude
|
|
135
144
|
while task=$(tx ready --limit 1 --json | jq -r '.[0].id'); do
|
|
136
|
-
|
|
145
|
+
"$AGENT_CMD" "Work on task $task, then run: tx done $task"
|
|
137
146
|
done
|
|
138
147
|
```
|
|
139
148
|
|
|
140
149
|
```bash
|
|
141
150
|
# Parallel: N agents with claims
|
|
151
|
+
AGENT_CMD=${AGENT_CMD:-codex} # or: claude
|
|
142
152
|
for i in {1..5}; do
|
|
143
153
|
(while task=$(tx ready --json --limit 1 | jq -r '.[0].id // empty'); do
|
|
144
154
|
[ -z "$task" ] && break
|
|
145
155
|
tx claim "$task" "worker-$i" || continue
|
|
146
|
-
|
|
156
|
+
"$AGENT_CMD" "Complete $task" && tx done "$task"
|
|
147
157
|
done) &
|
|
148
158
|
done
|
|
149
159
|
wait
|
|
@@ -151,9 +161,10 @@ wait
|
|
|
151
161
|
|
|
152
162
|
```bash
|
|
153
163
|
# Human-in-loop: agent proposes, human approves
|
|
164
|
+
AGENT_CMD=${AGENT_CMD:-codex} # or: claude
|
|
154
165
|
task=$(tx ready --json --limit 1 | jq -r '.[0].id')
|
|
155
|
-
|
|
156
|
-
read -p "Approve? [y/n] " &&
|
|
166
|
+
"$AGENT_CMD" "Plan implementation for $task" > plan.md
|
|
167
|
+
read -p "Approve? [y/n] " && "$AGENT_CMD" "Execute plan.md"
|
|
157
168
|
tx done $task
|
|
158
169
|
```
|
|
159
170
|
|
|
@@ -326,6 +337,7 @@ Local SQLite for speed. JSONL for git sync. Branch your knowledge with your code
|
|
|
326
337
|
|
|
327
338
|
- **[txdocs.dev](https://txdocs.dev)**: Documentation
|
|
328
339
|
- **[CLAUDE.md](CLAUDE.md)**: Doctrine and quick reference
|
|
340
|
+
- **[AGENTS.md](AGENTS.md)**: Codex onboarding and quick reference
|
|
329
341
|
- **[docs/](docs/)**: PRDs and Design Docs
|
|
330
342
|
|
|
331
343
|
---
|
package/dist/layer.d.ts
CHANGED
|
@@ -50,7 +50,7 @@ export { LlmService, LlmServiceNoop, LlmServiceAgentSdk, LlmServiceAnthropic, Ll
|
|
|
50
50
|
*
|
|
51
51
|
* @param infra A layer providing SqliteClient
|
|
52
52
|
*/
|
|
53
|
-
export declare const makeAppLayerFromInfra: <E>(infra: Layer.Layer<SqliteClient, E>) => Layer.Layer<import("./services/
|
|
53
|
+
export declare const makeAppLayerFromInfra: <E>(infra: Layer.Layer<SqliteClient, E>) => Layer.Layer<SqliteClient | import("./services/task-service.js").TaskService | import("./repo/task-repo.js").TaskRepository | import("./repo/dep-repo.js").DependencyRepository | import("./services/dep-service.js").DependencyService | import("./services/ready-service.js").ReadyService | import("./services/hierarchy-service.js").HierarchyService | import("./services/learning-service.js").LearningService | import("./repo/learning-repo.js").LearningRepository | import("./services/retriever-service.js").RetrieverService | import("./services/file-learning-service.js").FileLearningService | import("./repo/file-learning-repo.js").FileLearningRepository | import("./services/attempt-service.js").AttemptService | import("./repo/attempt-repo.js").AttemptRepository | import("./services/anchor-service.js").AnchorService | import("./repo/anchor-repo.js").AnchorRepository | import("./services/deduplication-service.js").DeduplicationService | import("./repo/deduplication-repo.js").DeduplicationRepository | import("./repo/run-repo.js").RunRepository | import("./repo/edge-repo.js").EdgeRepository | import("./repo/candidate-repo.js").CandidateRepository | import("./repo/tracked-project-repo.js").TrackedProjectRepository | import("./repo/worker-repo.js").WorkerRepository | import("./repo/claim-repo.js").ClaimRepository | import("./repo/orchestrator-state-repo.js").OrchestratorStateRepository | import("./repo/compaction-repo.js").CompactionRepository | import("./repo/message-repo.js").MessageRepository | import("./repo/doc-repo.js").DocRepository | import("./services/diversifier-service.js").DiversifierService | import("./services/graph-expansion.js").GraphExpansionService | import("./services/feedback-tracker.js").FeedbackTrackerService | import("./services/edge-service.js").EdgeService | import("./services/sync-service.js").SyncService | import("./services/anchor-verification.js").AnchorVerificationService | import("./services/swarm-verification.js").SwarmVerificationService | import("./services/promotion-service.js").PromotionService | import("./services/worker-service.js").WorkerService | import("./services/claim-service.js").ClaimService | import("./services/orchestrator-service.js").OrchestratorService | import("./services/daemon-service.js").DaemonService | import("./services/tracing-service.js").TracingService | import("./services/compaction-service.js").CompactionService | import("./services/validation-service.js").ValidationService | import("./services/message-service.js").MessageService | import("./services/doc-service.js").DocService | import("./services/migration-service.js").MigrationService, E | import("./errors.js").DatabaseError | import("./errors.js").EmbeddingUnavailableError | import("./errors.js").LlmUnavailableError, never>;
|
|
54
54
|
/**
|
|
55
55
|
* Create the full application layer with all services.
|
|
56
56
|
*
|
|
@@ -60,7 +60,7 @@ export declare const makeAppLayerFromInfra: <E>(infra: Layer.Layer<SqliteClient,
|
|
|
60
60
|
*
|
|
61
61
|
* @param dbPath Path to SQLite database file
|
|
62
62
|
*/
|
|
63
|
-
export declare const makeAppLayer: (dbPath: string) => Layer.Layer<import("./services/
|
|
63
|
+
export declare const makeAppLayer: (dbPath: string) => Layer.Layer<SqliteClient | import("./services/task-service.js").TaskService | import("./repo/task-repo.js").TaskRepository | import("./repo/dep-repo.js").DependencyRepository | import("./services/dep-service.js").DependencyService | import("./services/ready-service.js").ReadyService | import("./services/hierarchy-service.js").HierarchyService | import("./services/learning-service.js").LearningService | import("./repo/learning-repo.js").LearningRepository | import("./services/retriever-service.js").RetrieverService | import("./services/file-learning-service.js").FileLearningService | import("./repo/file-learning-repo.js").FileLearningRepository | import("./services/attempt-service.js").AttemptService | import("./repo/attempt-repo.js").AttemptRepository | import("./services/anchor-service.js").AnchorService | import("./repo/anchor-repo.js").AnchorRepository | import("./services/deduplication-service.js").DeduplicationService | import("./repo/deduplication-repo.js").DeduplicationRepository | import("./repo/run-repo.js").RunRepository | import("./repo/edge-repo.js").EdgeRepository | import("./repo/candidate-repo.js").CandidateRepository | import("./repo/tracked-project-repo.js").TrackedProjectRepository | import("./repo/worker-repo.js").WorkerRepository | import("./repo/claim-repo.js").ClaimRepository | import("./repo/orchestrator-state-repo.js").OrchestratorStateRepository | import("./repo/compaction-repo.js").CompactionRepository | import("./repo/message-repo.js").MessageRepository | import("./repo/doc-repo.js").DocRepository | import("./services/diversifier-service.js").DiversifierService | import("./services/graph-expansion.js").GraphExpansionService | import("./services/feedback-tracker.js").FeedbackTrackerService | import("./services/edge-service.js").EdgeService | import("./services/sync-service.js").SyncService | import("./services/anchor-verification.js").AnchorVerificationService | import("./services/swarm-verification.js").SwarmVerificationService | import("./services/promotion-service.js").PromotionService | import("./services/worker-service.js").WorkerService | import("./services/claim-service.js").ClaimService | import("./services/orchestrator-service.js").OrchestratorService | import("./services/daemon-service.js").DaemonService | import("./services/tracing-service.js").TracingService | import("./services/compaction-service.js").CompactionService | import("./services/validation-service.js").ValidationService | import("./services/message-service.js").MessageService | import("./services/doc-service.js").DocService | import("./services/migration-service.js").MigrationService, import("./errors.js").DatabaseError | import("./errors.js").EmbeddingUnavailableError | import("./errors.js").LlmUnavailableError, never>;
|
|
64
64
|
/**
|
|
65
65
|
* Create a minimal application layer from an existing SqliteClient infra layer.
|
|
66
66
|
*
|
|
@@ -70,12 +70,12 @@ export declare const makeAppLayer: (dbPath: string) => Layer.Layer<import("./ser
|
|
|
70
70
|
*
|
|
71
71
|
* @param infra A layer providing SqliteClient
|
|
72
72
|
*/
|
|
73
|
-
export declare const makeMinimalLayerFromInfra: <E>(infra: Layer.Layer<SqliteClient, E>) => Layer.Layer<import("./services/
|
|
73
|
+
export declare const makeMinimalLayerFromInfra: <E>(infra: Layer.Layer<SqliteClient, E>) => Layer.Layer<SqliteClient | import("./services/task-service.js").TaskService | import("./repo/task-repo.js").TaskRepository | import("./repo/dep-repo.js").DependencyRepository | import("./services/dep-service.js").DependencyService | import("./services/ready-service.js").ReadyService | import("./services/hierarchy-service.js").HierarchyService | import("./services/learning-service.js").LearningService | import("./repo/learning-repo.js").LearningRepository | import("./services/retriever-service.js").RetrieverService | import("./services/file-learning-service.js").FileLearningService | import("./repo/file-learning-repo.js").FileLearningRepository | import("./services/attempt-service.js").AttemptService | import("./repo/attempt-repo.js").AttemptRepository | import("./services/anchor-service.js").AnchorService | import("./repo/anchor-repo.js").AnchorRepository | import("./services/deduplication-service.js").DeduplicationService | import("./repo/deduplication-repo.js").DeduplicationRepository | import("./repo/run-repo.js").RunRepository | import("./repo/edge-repo.js").EdgeRepository | import("./repo/candidate-repo.js").CandidateRepository | import("./repo/tracked-project-repo.js").TrackedProjectRepository | import("./repo/worker-repo.js").WorkerRepository | import("./repo/claim-repo.js").ClaimRepository | import("./repo/orchestrator-state-repo.js").OrchestratorStateRepository | import("./repo/compaction-repo.js").CompactionRepository | import("./repo/message-repo.js").MessageRepository | import("./repo/doc-repo.js").DocRepository | import("./services/diversifier-service.js").DiversifierService | import("./services/graph-expansion.js").GraphExpansionService | import("./services/feedback-tracker.js").FeedbackTrackerService | import("./services/edge-service.js").EdgeService | import("./services/sync-service.js").SyncService | import("./services/anchor-verification.js").AnchorVerificationService | import("./services/swarm-verification.js").SwarmVerificationService | import("./services/promotion-service.js").PromotionService | import("./services/worker-service.js").WorkerService | import("./services/claim-service.js").ClaimService | import("./services/orchestrator-service.js").OrchestratorService | import("./services/daemon-service.js").DaemonService | import("./services/tracing-service.js").TracingService | import("./services/compaction-service.js").CompactionService | import("./services/validation-service.js").ValidationService | import("./services/message-service.js").MessageService | import("./services/doc-service.js").DocService | import("./services/migration-service.js").MigrationService, E | import("./errors.js").DatabaseError, never>;
|
|
74
74
|
/**
|
|
75
75
|
* Create a minimal application layer without auto-sync.
|
|
76
76
|
* Useful for testing and simple CLI operations.
|
|
77
77
|
*
|
|
78
78
|
* @param dbPath Path to SQLite database file
|
|
79
79
|
*/
|
|
80
|
-
export declare const makeMinimalLayer: (dbPath: string) => Layer.Layer<import("./services/
|
|
80
|
+
export declare const makeMinimalLayer: (dbPath: string) => Layer.Layer<SqliteClient | import("./services/task-service.js").TaskService | import("./repo/task-repo.js").TaskRepository | import("./repo/dep-repo.js").DependencyRepository | import("./services/dep-service.js").DependencyService | import("./services/ready-service.js").ReadyService | import("./services/hierarchy-service.js").HierarchyService | import("./services/learning-service.js").LearningService | import("./repo/learning-repo.js").LearningRepository | import("./services/retriever-service.js").RetrieverService | import("./services/file-learning-service.js").FileLearningService | import("./repo/file-learning-repo.js").FileLearningRepository | import("./services/attempt-service.js").AttemptService | import("./repo/attempt-repo.js").AttemptRepository | import("./services/anchor-service.js").AnchorService | import("./repo/anchor-repo.js").AnchorRepository | import("./services/deduplication-service.js").DeduplicationService | import("./repo/deduplication-repo.js").DeduplicationRepository | import("./repo/run-repo.js").RunRepository | import("./repo/edge-repo.js").EdgeRepository | import("./repo/candidate-repo.js").CandidateRepository | import("./repo/tracked-project-repo.js").TrackedProjectRepository | import("./repo/worker-repo.js").WorkerRepository | import("./repo/claim-repo.js").ClaimRepository | import("./repo/orchestrator-state-repo.js").OrchestratorStateRepository | import("./repo/compaction-repo.js").CompactionRepository | import("./repo/message-repo.js").MessageRepository | import("./repo/doc-repo.js").DocRepository | import("./services/diversifier-service.js").DiversifierService | import("./services/graph-expansion.js").GraphExpansionService | import("./services/feedback-tracker.js").FeedbackTrackerService | import("./services/edge-service.js").EdgeService | import("./services/sync-service.js").SyncService | import("./services/anchor-verification.js").AnchorVerificationService | import("./services/swarm-verification.js").SwarmVerificationService | import("./services/promotion-service.js").PromotionService | import("./services/worker-service.js").WorkerService | import("./services/claim-service.js").ClaimService | import("./services/orchestrator-service.js").OrchestratorService | import("./services/daemon-service.js").DaemonService | import("./services/tracing-service.js").TracingService | import("./services/compaction-service.js").CompactionService | import("./services/validation-service.js").ValidationService | import("./services/message-service.js").MessageService | import("./services/doc-service.js").DocService | import("./services/migration-service.js").MigrationService, import("./errors.js").DatabaseError, never>;
|
|
81
81
|
//# sourceMappingURL=layer.d.ts.map
|
|
@@ -92,7 +92,7 @@ export declare const CompactionServiceNoop: Layer.Layer<CompactionService, never
|
|
|
92
92
|
/**
|
|
93
93
|
* Live implementation using centralized LlmService.
|
|
94
94
|
*/
|
|
95
|
-
export declare const CompactionServiceLive: Layer.Layer<CompactionService, never, SqliteClient |
|
|
95
|
+
export declare const CompactionServiceLive: Layer.Layer<CompactionService, never, SqliteClient | CompactionRepository | LlmService>;
|
|
96
96
|
/**
|
|
97
97
|
* Auto-detecting layer that selects the appropriate backend based on LlmService availability.
|
|
98
98
|
*
|
|
@@ -100,6 +100,6 @@ export declare const CompactionServiceLive: Layer.Layer<CompactionService, never
|
|
|
100
100
|
* 1. LlmService available -> Use Live implementation
|
|
101
101
|
* 2. Not available -> Use Noop (graceful degradation)
|
|
102
102
|
*/
|
|
103
|
-
export declare const CompactionServiceAuto: Layer.Layer<CompactionService, never, SqliteClient |
|
|
103
|
+
export declare const CompactionServiceAuto: Layer.Layer<CompactionService, never, SqliteClient | CompactionRepository | LlmService>;
|
|
104
104
|
export {};
|
|
105
105
|
//# sourceMappingURL=compaction-service.d.ts.map
|
|
@@ -34,6 +34,6 @@ declare const LearningService_base: Context.TagClass<LearningService, "LearningS
|
|
|
34
34
|
}>;
|
|
35
35
|
export declare class LearningService extends LearningService_base {
|
|
36
36
|
}
|
|
37
|
-
export declare const LearningServiceLive: Layer.Layer<LearningService, never,
|
|
37
|
+
export declare const LearningServiceLive: Layer.Layer<LearningService, never, EmbeddingService | TaskRepository | LearningRepository | RetrieverService>;
|
|
38
38
|
export {};
|
|
39
39
|
//# sourceMappingURL=learning-service.d.ts.map
|
|
@@ -62,6 +62,6 @@ declare const PromotionService_base: Context.TagClass<PromotionService, "Promoti
|
|
|
62
62
|
*/
|
|
63
63
|
export declare class PromotionService extends PromotionService_base {
|
|
64
64
|
}
|
|
65
|
-
export declare const PromotionServiceLive: Layer.Layer<PromotionService, never,
|
|
65
|
+
export declare const PromotionServiceLive: Layer.Layer<PromotionService, never, LearningService | CandidateRepository | EdgeService>;
|
|
66
66
|
export {};
|
|
67
67
|
//# sourceMappingURL=promotion-service.d.ts.map
|
|
@@ -38,7 +38,7 @@ export declare const RetrieverServiceNoop: Layer.Layer<RetrieverService, never,
|
|
|
38
38
|
* - Optional LLM re-ranking
|
|
39
39
|
* - Recency/outcome/frequency boosts
|
|
40
40
|
*/
|
|
41
|
-
export declare const RetrieverServiceLive: Layer.Layer<RetrieverService, DatabaseError,
|
|
41
|
+
export declare const RetrieverServiceLive: Layer.Layer<RetrieverService, DatabaseError, EmbeddingService | LearningRepository | QueryExpansionService | RerankerService>;
|
|
42
42
|
/**
|
|
43
43
|
* Auto-detecting layer that always uses Live since BM25 is always available.
|
|
44
44
|
* The Live implementation gracefully degrades:
|
|
@@ -47,6 +47,6 @@ export declare const RetrieverServiceLive: Layer.Layer<RetrieverService, Databas
|
|
|
47
47
|
* - Reranking skips when RerankerService unavailable
|
|
48
48
|
* - Graph expansion skips when GraphExpansionService unavailable
|
|
49
49
|
*/
|
|
50
|
-
export declare const RetrieverServiceAuto: Layer.Layer<RetrieverService, DatabaseError,
|
|
50
|
+
export declare const RetrieverServiceAuto: Layer.Layer<RetrieverService, DatabaseError, EmbeddingService | LearningRepository | QueryExpansionService | RerankerService>;
|
|
51
51
|
export {};
|
|
52
52
|
//# sourceMappingURL=retriever-service.d.ts.map
|