@jamesaphoenix/tx-core 0.5.9 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/README.md +54 -4
  2. package/dist/errors.d.ts +25 -1
  3. package/dist/errors.d.ts.map +1 -1
  4. package/dist/errors.js +16 -0
  5. package/dist/errors.js.map +1 -1
  6. package/dist/index.d.ts +6 -5
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +8 -5
  9. package/dist/index.js.map +1 -1
  10. package/dist/layer.d.ts +8 -4
  11. package/dist/layer.d.ts.map +1 -1
  12. package/dist/layer.js +25 -4
  13. package/dist/layer.js.map +1 -1
  14. package/dist/mappers/index.d.ts +1 -0
  15. package/dist/mappers/index.d.ts.map +1 -1
  16. package/dist/mappers/index.js +2 -0
  17. package/dist/mappers/index.js.map +1 -1
  18. package/dist/mappers/memory.d.ts +34 -0
  19. package/dist/mappers/memory.d.ts.map +1 -0
  20. package/dist/mappers/memory.js +135 -0
  21. package/dist/mappers/memory.js.map +1 -0
  22. package/dist/mappers/pin.d.ts +6 -0
  23. package/dist/mappers/pin.d.ts.map +1 -0
  24. package/dist/mappers/pin.js +10 -0
  25. package/dist/mappers/pin.js.map +1 -0
  26. package/dist/migrations-embedded.d.ts +9 -0
  27. package/dist/migrations-embedded.d.ts.map +1 -0
  28. package/dist/migrations-embedded.js +153 -0
  29. package/dist/migrations-embedded.js.map +1 -0
  30. package/dist/repo/index.d.ts +2 -0
  31. package/dist/repo/index.d.ts.map +1 -1
  32. package/dist/repo/index.js +2 -0
  33. package/dist/repo/index.js.map +1 -1
  34. package/dist/repo/memory-repo.d.ts +88 -0
  35. package/dist/repo/memory-repo.d.ts.map +1 -0
  36. package/dist/repo/memory-repo.js +556 -0
  37. package/dist/repo/memory-repo.js.map +1 -0
  38. package/dist/repo/pin-repo.d.ts +29 -0
  39. package/dist/repo/pin-repo.d.ts.map +1 -0
  40. package/dist/repo/pin-repo.js +79 -0
  41. package/dist/repo/pin-repo.js.map +1 -0
  42. package/dist/schemas/index.d.ts +2 -2
  43. package/dist/schemas/index.d.ts.map +1 -1
  44. package/dist/schemas/index.js +1 -1
  45. package/dist/schemas/index.js.map +1 -1
  46. package/dist/schemas/sync.d.ts +598 -3
  47. package/dist/schemas/sync.d.ts.map +1 -1
  48. package/dist/schemas/sync.js +280 -6
  49. package/dist/schemas/sync.js.map +1 -1
  50. package/dist/services/agent-service.d.ts +2 -0
  51. package/dist/services/agent-service.d.ts.map +1 -1
  52. package/dist/services/agent-service.js +15 -1
  53. package/dist/services/agent-service.js.map +1 -1
  54. package/dist/services/cycle-scan-service.d.ts.map +1 -1
  55. package/dist/services/cycle-scan-service.js +11 -7
  56. package/dist/services/cycle-scan-service.js.map +1 -1
  57. package/dist/services/diversifier-service.d.ts +2 -2
  58. package/dist/services/diversifier-service.d.ts.map +1 -1
  59. package/dist/services/diversifier-service.js.map +1 -1
  60. package/dist/services/index.d.ts +4 -2
  61. package/dist/services/index.d.ts.map +1 -1
  62. package/dist/services/index.js +3 -1
  63. package/dist/services/index.js.map +1 -1
  64. package/dist/services/learning-service.d.ts +3 -2
  65. package/dist/services/learning-service.d.ts.map +1 -1
  66. package/dist/services/learning-service.js.map +1 -1
  67. package/dist/services/memory-retriever-service.d.ts +48 -0
  68. package/dist/services/memory-retriever-service.d.ts.map +1 -0
  69. package/dist/services/memory-retriever-service.js +332 -0
  70. package/dist/services/memory-retriever-service.js.map +1 -0
  71. package/dist/services/memory-service.d.ts +49 -0
  72. package/dist/services/memory-service.d.ts.map +1 -0
  73. package/dist/services/memory-service.js +1061 -0
  74. package/dist/services/memory-service.js.map +1 -0
  75. package/dist/services/migration-service.d.ts +8 -2
  76. package/dist/services/migration-service.d.ts.map +1 -1
  77. package/dist/services/migration-service.js +23 -8
  78. package/dist/services/migration-service.js.map +1 -1
  79. package/dist/services/pin-service.d.ts +33 -0
  80. package/dist/services/pin-service.d.ts.map +1 -0
  81. package/dist/services/pin-service.js +140 -0
  82. package/dist/services/pin-service.js.map +1 -0
  83. package/dist/services/ready-service.js +1 -1
  84. package/dist/services/ready-service.js.map +1 -1
  85. package/dist/services/retriever-service.d.ts +2 -2
  86. package/dist/services/retriever-service.d.ts.map +1 -1
  87. package/dist/services/retriever-service.js.map +1 -1
  88. package/dist/services/sync-service.d.ts +123 -4
  89. package/dist/services/sync-service.d.ts.map +1 -1
  90. package/dist/services/sync-service.js +1099 -11
  91. package/dist/services/sync-service.js.map +1 -1
  92. package/dist/services/task-service.js +2 -2
  93. package/dist/services/task-service.js.map +1 -1
  94. package/dist/utils/math.d.ts +4 -3
  95. package/dist/utils/math.d.ts.map +1 -1
  96. package/dist/utils/math.js +9 -4
  97. package/dist/utils/math.js.map +1 -1
  98. package/dist/utils/pin-file.d.ts +33 -0
  99. package/dist/utils/pin-file.d.ts.map +1 -0
  100. package/dist/utils/pin-file.js +87 -0
  101. package/dist/utils/pin-file.js.map +1 -0
  102. package/dist/utils/toml-config.d.ts +12 -0
  103. package/dist/utils/toml-config.d.ts.map +1 -1
  104. package/dist/utils/toml-config.js +111 -1
  105. package/dist/utils/toml-config.js.map +1 -1
  106. package/migrations/029_memory.sql +83 -0
  107. package/migrations/030_context_pins.sql +24 -0
  108. package/package.json +3 -2
@@ -8,10 +8,14 @@ export const DASHBOARD_DEFAULT_TASK_ASSIGMENT_KEY = "default_task_assigment_type
8
8
  const DASHBOARD_SECTION = "dashboard";
9
9
  const DOCS_SECTION = "docs";
10
10
  const CYCLES_SECTION = "cycles";
11
+ const PINS_SECTION = "pins";
12
+ const MEMORY_SECTION = "memory";
11
13
  const DEFAULT_CONFIG = {
12
14
  docs: { path: ".tx/docs" },
15
+ memory: { defaultDir: "docs" },
13
16
  cycles: { scanPrompt: null, agents: 3, model: "claude-opus-4-6" },
14
17
  dashboard: { defaultTaskAssigmentType: "human" },
18
+ pins: { targetFiles: ["CLAUDE.md", "AGENTS.md"] },
15
19
  };
16
20
  const isDashboardDefaultTaskAssigmentType = (value) => value === "human" || value === "agent";
17
21
  const parseTaskAssigmentTypeOrDefault = (value) => isDashboardDefaultTaskAssigmentType(value)
@@ -34,10 +38,15 @@ export const readTxConfig = (cwd = process.cwd()) => {
34
38
  const cyclesAgents = extractTomlValue(raw, CYCLES_SECTION, "agents");
35
39
  const cyclesModel = extractTomlValue(raw, CYCLES_SECTION, "model");
36
40
  const defaultTaskAssigmentType = extractTomlValue(raw, DASHBOARD_SECTION, DASHBOARD_DEFAULT_TASK_ASSIGMENT_KEY);
41
+ const memoryDefaultDir = extractTomlValue(raw, MEMORY_SECTION, "default_dir");
42
+ const pinsTargetFiles = extractTomlValue(raw, PINS_SECTION, "target_files");
37
43
  return {
38
44
  docs: {
39
45
  path: docsPath ?? DEFAULT_CONFIG.docs.path,
40
46
  },
47
+ memory: {
48
+ defaultDir: memoryDefaultDir ?? DEFAULT_CONFIG.memory.defaultDir,
49
+ },
41
50
  cycles: {
42
51
  scanPrompt: cyclesScanPrompt ?? DEFAULT_CONFIG.cycles.scanPrompt,
43
52
  agents: cyclesAgents
@@ -48,6 +57,11 @@ export const readTxConfig = (cwd = process.cwd()) => {
48
57
  dashboard: {
49
58
  defaultTaskAssigmentType: parseTaskAssigmentTypeOrDefault(defaultTaskAssigmentType),
50
59
  },
60
+ pins: {
61
+ targetFiles: pinsTargetFiles
62
+ ? pinsTargetFiles.split(",").map(f => f.trim()).filter(Boolean)
63
+ : DEFAULT_CONFIG.pins.targetFiles,
64
+ },
51
65
  };
52
66
  }
53
67
  catch {
@@ -61,7 +75,8 @@ export const readTxConfig = (cwd = process.cwd()) => {
61
75
  export const writeDashboardDefaultTaskAssigmentType = (value, cwd = process.cwd()) => {
62
76
  const configDir = resolve(cwd, ".tx");
63
77
  const configPath = resolve(configDir, "config.toml");
64
- const nextConfig = { ...readTxConfig(cwd), dashboard: { defaultTaskAssigmentType: value } };
78
+ const current = readTxConfig(cwd);
79
+ const nextConfig = { ...current, dashboard: { defaultTaskAssigmentType: value } };
65
80
  mkdirSync(dirname(configPath), { recursive: true });
66
81
  const existingRaw = existsSync(configPath) ? readFileSync(configPath, "utf8") : "";
67
82
  const nextRaw = patchTomlKey(existingRaw, DASHBOARD_SECTION, DASHBOARD_DEFAULT_TASK_ASSIGMENT_KEY, `"${value}"`);
@@ -145,4 +160,99 @@ function patchTomlKey(toml, section, key, renderedValue) {
145
160
  function escapeRegex(value) {
146
161
  return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
147
162
  }
163
+ /**
164
+ * The default config.toml content with comments and doc links.
165
+ * Written by `tx init` if config.toml does not exist.
166
+ */
167
+ const DEFAULT_CONFIG_TOML = `# tx configuration
168
+ # Full documentation: https://txdocs.dev/docs
169
+ #
170
+ # This file is created by \`tx init\` and lives at .tx/config.toml.
171
+ # Edit any value below to override the default. Commented-out lines
172
+ # show optional settings — uncomment them to enable.
173
+
174
+ # ─── Docs ───────────────────────────────────────────────────────────
175
+ # Structured documentation primitives for PRDs, design docs, and specs.
176
+ # Commands: tx doc add, tx doc show, tx doc list, tx doc validate
177
+ # Docs: https://txdocs.dev/docs/primitives/docs
178
+ [docs]
179
+
180
+ # Where tx stores YAML doc files on disk.
181
+ # Relative to the project root.
182
+ path = ".tx/docs"
183
+
184
+ # ─── Memory ─────────────────────────────────────────────────────────
185
+ # Filesystem-backed markdown search over your project's documentation.
186
+ # Index directories with \`tx memory source add <dir>\`, then search
187
+ # with \`tx memory search <query>\` (BM25) or \`--semantic\` (vector).
188
+ # Docs: https://txdocs.dev/docs/primitives/learning
189
+ [memory]
190
+
191
+ # Default directory used by \`tx memory add\` when no source is registered.
192
+ # If this directory isn't already a registered source, tx auto-registers
193
+ # it so new documents survive future \`tx memory index\` runs.
194
+ # Relative to the project root.
195
+ default_dir = "docs"
196
+
197
+ # ─── Cycles ─────────────────────────────────────────────────────────
198
+ # Sub-agent swarm for automated issue discovery.
199
+ # Run \`tx cycle\` to dispatch parallel scan agents that find issues,
200
+ # then review results in the dashboard or via \`tx list\`.
201
+ # Docs: https://txdocs.dev/docs/headful/docs-runs-cycles
202
+ [cycles]
203
+
204
+ # Optional prompt appended to each scan agent's system prompt.
205
+ # Use this to focus scans on specific areas (e.g. security, performance).
206
+ # scan_prompt = "Focus on security issues"
207
+
208
+ # Number of parallel scan agents to dispatch per cycle run.
209
+ # Higher values = faster scans but more API usage.
210
+ agents = 3
211
+
212
+ # LLM model used by cycle scan agents.
213
+ # Must be a valid Anthropic model ID.
214
+ model = "claude-opus-4-6"
215
+
216
+ # ─── Dashboard ──────────────────────────────────────────────────────
217
+ # Settings for the tx dashboard web UI (\`tx dashboard\`).
218
+ # The dashboard provides a visual interface for task management,
219
+ # doc browsing, run inspection, and cycle results.
220
+ # Docs: https://txdocs.dev/docs/headful/filters-and-settings
221
+ [dashboard]
222
+
223
+ # Default assignee type when creating new tasks from the dashboard.
224
+ # "human" = tasks are assigned to humans by default.
225
+ # "agent" = tasks are assigned to agents by default.
226
+ # Can be toggled per-task with Cmd+K in the dashboard.
227
+ default_task_assigment_type = "human"
228
+
229
+ # ─── Pins ───────────────────────────────────────────────────────────
230
+ # Context pins — persistent named content blocks that are injected
231
+ # into agent context files as <tx-pin id="...">...</tx-pin> XML sections.
232
+ # This enables programmatic CRUD of agent memory across sessions.
233
+ # Commands: tx pin set, tx pin get, tx pin rm, tx pin list, tx pin sync
234
+ # Docs: https://txdocs.dev/docs/primitives/pin
235
+ [pins]
236
+
237
+ # Comma-separated list of files that \`tx pin sync\` writes pins into.
238
+ # Paths are relative to the project root.
239
+ # Both Claude Code (CLAUDE.md) and Codex (AGENTS.md) are synced by default
240
+ # so all agents share the same persistent context.
241
+ target_files = "CLAUDE.md, AGENTS.md"
242
+ `;
243
+ /**
244
+ * Scaffold .tx/config.toml with annotated defaults.
245
+ * No-op if the file already exists (preserves user edits).
246
+ * Returns true if the file was created, false if it already existed.
247
+ */
248
+ export const scaffoldConfigToml = (cwd = process.cwd()) => {
249
+ const configDir = resolve(cwd, ".tx");
250
+ const configPath = resolve(configDir, "config.toml");
251
+ if (existsSync(configPath)) {
252
+ return false;
253
+ }
254
+ mkdirSync(configDir, { recursive: true });
255
+ writeFileSync(configPath, DEFAULT_CONFIG_TOML, "utf8");
256
+ return true;
257
+ };
148
258
  //# sourceMappingURL=toml-config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"toml-config.js","sourceRoot":"","sources":["../../src/utils/toml-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"toml-config.js","sourceRoot":"","sources":["../../src/utils/toml-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,83 @@
1
+ -- Migration 029: Memory system tables
2
+ -- Filesystem-backed memory with BM25 + vector + graph search over .md files.
3
+
4
+ -- Indexed memory documents (derived from .md files, not source of truth)
5
+ CREATE TABLE IF NOT EXISTS memory_documents (
6
+ id TEXT PRIMARY KEY,
7
+ file_path TEXT NOT NULL,
8
+ root_dir TEXT NOT NULL,
9
+ title TEXT NOT NULL,
10
+ content TEXT NOT NULL,
11
+ frontmatter TEXT,
12
+ tags TEXT,
13
+ file_hash TEXT NOT NULL,
14
+ file_mtime TEXT NOT NULL,
15
+ embedding BLOB,
16
+ created_at TEXT NOT NULL,
17
+ indexed_at TEXT NOT NULL,
18
+ UNIQUE(file_path, root_dir)
19
+ );
20
+
21
+ -- FTS5 full-text search index
22
+ CREATE VIRTUAL TABLE IF NOT EXISTS memory_fts USING fts5(
23
+ title, content, tags,
24
+ content='memory_documents', content_rowid='rowid',
25
+ tokenize='porter unicode61'
26
+ );
27
+
28
+ -- FTS5 sync triggers (keep FTS index in sync with memory_documents)
29
+ CREATE TRIGGER IF NOT EXISTS memory_fts_ai AFTER INSERT ON memory_documents BEGIN
30
+ INSERT INTO memory_fts(rowid, title, content, tags) VALUES (new.rowid, new.title, new.content, new.tags);
31
+ END;
32
+
33
+ CREATE TRIGGER IF NOT EXISTS memory_fts_ad AFTER DELETE ON memory_documents BEGIN
34
+ INSERT INTO memory_fts(memory_fts, rowid, title, content, tags) VALUES ('delete', old.rowid, old.title, old.content, old.tags);
35
+ END;
36
+
37
+ CREATE TRIGGER IF NOT EXISTS memory_fts_au AFTER UPDATE OF title, content, tags ON memory_documents BEGIN
38
+ INSERT INTO memory_fts(memory_fts, rowid, title, content, tags) VALUES ('delete', old.rowid, old.title, old.content, old.tags);
39
+ INSERT INTO memory_fts(rowid, title, content, tags) VALUES (new.rowid, new.title, new.content, new.tags);
40
+ END;
41
+
42
+ -- Wikilinks and explicit edges between documents
43
+ CREATE TABLE IF NOT EXISTS memory_links (
44
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
45
+ source_doc_id TEXT NOT NULL REFERENCES memory_documents(id) ON DELETE CASCADE,
46
+ target_doc_id TEXT,
47
+ target_ref TEXT NOT NULL,
48
+ link_type TEXT NOT NULL CHECK (link_type IN ('wikilink', 'frontmatter', 'explicit')),
49
+ created_at TEXT NOT NULL DEFAULT (datetime('now')),
50
+ UNIQUE(source_doc_id, target_ref, link_type)
51
+ );
52
+
53
+ -- Configuration: which directories to index
54
+ CREATE TABLE IF NOT EXISTS memory_sources (
55
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
56
+ root_dir TEXT NOT NULL UNIQUE,
57
+ label TEXT,
58
+ created_at TEXT NOT NULL DEFAULT (datetime('now'))
59
+ );
60
+
61
+ -- Structured key-value properties per document
62
+ CREATE TABLE IF NOT EXISTS memory_properties (
63
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
64
+ doc_id TEXT NOT NULL REFERENCES memory_documents(id) ON DELETE CASCADE,
65
+ key TEXT NOT NULL,
66
+ value TEXT NOT NULL,
67
+ UNIQUE(doc_id, key)
68
+ );
69
+
70
+ -- Indexes for efficient queries
71
+ CREATE INDEX IF NOT EXISTS idx_memory_docs_path ON memory_documents(file_path);
72
+ CREATE INDEX IF NOT EXISTS idx_memory_docs_path_root ON memory_documents(file_path, root_dir);
73
+ CREATE INDEX IF NOT EXISTS idx_memory_docs_root ON memory_documents(root_dir);
74
+ CREATE INDEX IF NOT EXISTS idx_memory_docs_hash ON memory_documents(file_hash);
75
+ CREATE INDEX IF NOT EXISTS idx_memory_docs_indexed_at ON memory_documents(indexed_at);
76
+ CREATE INDEX IF NOT EXISTS idx_memory_links_source ON memory_links(source_doc_id);
77
+ CREATE INDEX IF NOT EXISTS idx_memory_links_target ON memory_links(target_doc_id) WHERE target_doc_id IS NOT NULL;
78
+ CREATE INDEX IF NOT EXISTS idx_memory_links_ref ON memory_links(target_ref);
79
+ CREATE INDEX IF NOT EXISTS idx_memory_props_doc ON memory_properties(doc_id);
80
+ CREATE INDEX IF NOT EXISTS idx_memory_props_key_value ON memory_properties(key, value);
81
+
82
+ -- Track schema version (must be last — only inserted after all DDL succeeds)
83
+ INSERT OR IGNORE INTO schema_version (version, applied_at) VALUES (29, datetime('now'));
@@ -0,0 +1,24 @@
1
+ -- Version: 030
2
+ -- Migration: Context pins — named content blocks for agent context files
3
+
4
+ -- Context pins table (named markdown blocks synced to CLAUDE.md, AGENTS.md, etc.)
5
+ CREATE TABLE IF NOT EXISTS context_pins (
6
+ id TEXT PRIMARY KEY,
7
+ content TEXT NOT NULL,
8
+ created_at TEXT NOT NULL DEFAULT (datetime('now')),
9
+ updated_at TEXT NOT NULL DEFAULT (datetime('now'))
10
+ );
11
+
12
+ CREATE INDEX IF NOT EXISTS idx_pins_updated ON context_pins(updated_at DESC);
13
+
14
+ -- Global config for pin target files (key-value store)
15
+ CREATE TABLE IF NOT EXISTS pin_config (
16
+ key TEXT PRIMARY KEY,
17
+ value TEXT NOT NULL
18
+ );
19
+
20
+ -- Default: sync pins to CLAUDE.md only (user configures via `tx pin targets`)
21
+ INSERT OR IGNORE INTO pin_config (key, value) VALUES ('target_files', '["CLAUDE.md"]');
22
+
23
+ -- Record this migration
24
+ INSERT OR IGNORE INTO schema_version (version, applied_at) VALUES (30, datetime('now'));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jamesaphoenix/tx-core",
3
- "version": "0.5.9",
3
+ "version": "0.6.0",
4
4
  "description": "Core business logic for tx - Effect-TS services and repositories",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -37,7 +37,8 @@
37
37
  "README.md"
38
38
  ],
39
39
  "scripts": {
40
- "build": "tsc -b && cp -r ../../migrations ./migrations",
40
+ "prebuild": "node ../../scripts/bundle-migrations.js",
41
+ "build": "tsc -b && { rm -r ./migrations 2>/dev/null; cp -r ../../migrations ./migrations; }",
41
42
  "typecheck": "tsc --noEmit",
42
43
  "lint": "eslint src/",
43
44
  "test": "bunx --bun vitest run --passWithNoTests"