@jamesaphoenix/tx-core 0.6.1 → 0.8.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 (65) hide show
  1. package/README.md +11 -1
  2. package/dist/errors.d.ts +30 -1
  3. package/dist/errors.d.ts.map +1 -1
  4. package/dist/errors.js +17 -0
  5. package/dist/errors.js.map +1 -1
  6. package/dist/index.d.ts +2 -2
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +6 -2
  9. package/dist/index.js.map +1 -1
  10. package/dist/layer.d.ts +9 -4
  11. package/dist/layer.d.ts.map +1 -1
  12. package/dist/layer.js +27 -5
  13. package/dist/layer.js.map +1 -1
  14. package/dist/migrations-embedded.d.ts.map +1 -1
  15. package/dist/migrations-embedded.js +10 -0
  16. package/dist/migrations-embedded.js.map +1 -1
  17. package/dist/repo/attempt-repo.js +1 -1
  18. package/dist/repo/attempt-repo.js.map +1 -1
  19. package/dist/repo/guard-repo.d.ts +40 -0
  20. package/dist/repo/guard-repo.d.ts.map +1 -0
  21. package/dist/repo/guard-repo.js +98 -0
  22. package/dist/repo/guard-repo.js.map +1 -0
  23. package/dist/repo/index.d.ts +2 -0
  24. package/dist/repo/index.d.ts.map +1 -1
  25. package/dist/repo/index.js +2 -0
  26. package/dist/repo/index.js.map +1 -1
  27. package/dist/repo/label-repo.d.ts +31 -0
  28. package/dist/repo/label-repo.d.ts.map +1 -0
  29. package/dist/repo/label-repo.js +91 -0
  30. package/dist/repo/label-repo.js.map +1 -0
  31. package/dist/repo/task-repo.d.ts +5 -0
  32. package/dist/repo/task-repo.d.ts.map +1 -1
  33. package/dist/repo/task-repo.js +51 -1
  34. package/dist/repo/task-repo.js.map +1 -1
  35. package/dist/services/guard-service.d.ts +24 -0
  36. package/dist/services/guard-service.d.ts.map +1 -0
  37. package/dist/services/guard-service.js +132 -0
  38. package/dist/services/guard-service.js.map +1 -0
  39. package/dist/services/index.d.ts +3 -0
  40. package/dist/services/index.d.ts.map +1 -1
  41. package/dist/services/index.js +3 -0
  42. package/dist/services/index.js.map +1 -1
  43. package/dist/services/ready-service.d.ts +4 -1
  44. package/dist/services/ready-service.d.ts.map +1 -1
  45. package/dist/services/ready-service.js +4 -2
  46. package/dist/services/ready-service.js.map +1 -1
  47. package/dist/services/reflect-service.d.ts +54 -0
  48. package/dist/services/reflect-service.d.ts.map +1 -0
  49. package/dist/services/reflect-service.js +293 -0
  50. package/dist/services/reflect-service.js.map +1 -0
  51. package/dist/services/task-service.d.ts +4 -3
  52. package/dist/services/task-service.d.ts.map +1 -1
  53. package/dist/services/task-service.js +94 -2
  54. package/dist/services/task-service.js.map +1 -1
  55. package/dist/services/verify-service.d.ts +30 -0
  56. package/dist/services/verify-service.d.ts.map +1 -0
  57. package/dist/services/verify-service.js +262 -0
  58. package/dist/services/verify-service.js.map +1 -0
  59. package/dist/utils/toml-config.d.ts +17 -0
  60. package/dist/utils/toml-config.d.ts.map +1 -1
  61. package/dist/utils/toml-config.js +87 -0
  62. package/dist/utils/toml-config.js.map +1 -1
  63. package/migrations/031_task_guards.sql +15 -0
  64. package/migrations/032_verify_cmd.sql +8 -0
  65. package/package.json +1 -1
package/dist/layer.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"layer.js","sourceRoot":"","sources":["../src/layer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"layer.js","sourceRoot":"","sources":["../src/layer.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"migrations-embedded.d.ts","sourceRoot":"","sources":["../src/migrations-embedded.ts"],"names":[],"mappings":"AACA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAA;AAEhE,eAAO,MAAM,mBAAmB,EAAE,SAAS,SAAS,EAuJnD,CAAA"}
1
+ {"version":3,"file":"migrations-embedded.d.ts","sourceRoot":"","sources":["../src/migrations-embedded.ts"],"names":[],"mappings":"AACA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAA;AAEhE,eAAO,MAAM,mBAAmB,EAAE,SAAS,SAAS,EAiKnD,CAAA"}
@@ -148,6 +148,16 @@ export const EMBEDDED_MIGRATIONS = [
148
148
  "version": 30,
149
149
  "description": "context pins",
150
150
  "sql": "-- Version: 030\n-- Migration: Context pins — named content blocks for agent context files\n\n-- Context pins table (named markdown blocks synced to CLAUDE.md, AGENTS.md, etc.)\nCREATE TABLE IF NOT EXISTS context_pins (\n id TEXT PRIMARY KEY,\n content TEXT NOT NULL,\n created_at TEXT NOT NULL DEFAULT (datetime('now')),\n updated_at TEXT NOT NULL DEFAULT (datetime('now'))\n);\n\nCREATE INDEX IF NOT EXISTS idx_pins_updated ON context_pins(updated_at DESC);\n\n-- Global config for pin target files (key-value store)\nCREATE TABLE IF NOT EXISTS pin_config (\n key TEXT PRIMARY KEY,\n value TEXT NOT NULL\n);\n\n-- Default: sync pins to CLAUDE.md only (user configures via `tx pin targets`)\nINSERT OR IGNORE INTO pin_config (key, value) VALUES ('target_files', '[\"CLAUDE.md\"]');\n\n-- Record this migration\nINSERT OR IGNORE INTO schema_version (version, applied_at) VALUES (30, datetime('now'));\n"
151
+ },
152
+ {
153
+ "version": 31,
154
+ "description": "task guards",
155
+ "sql": "-- Version: 031\n-- Migration: Task creation guards — lightweight limits enforced at create time\n\nCREATE TABLE IF NOT EXISTS task_guards (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n scope TEXT NOT NULL UNIQUE, -- 'global', 'parent:<task_id>'\n max_pending INTEGER, -- max non-done tasks at any time\n max_children INTEGER, -- max direct children per parent\n max_depth INTEGER, -- max hierarchy nesting depth\n enforce INTEGER NOT NULL DEFAULT 0, -- 0=advisory, 1=hard block\n created_at TEXT NOT NULL DEFAULT (datetime('now'))\n);\n\n-- Record this migration\nINSERT OR IGNORE INTO schema_version (version, applied_at) VALUES (31, datetime('now'));\n"
156
+ },
157
+ {
158
+ "version": 32,
159
+ "description": "verify cmd",
160
+ "sql": "-- Version: 032\n-- Migration: Verification commands — attach machine-checkable done criteria to tasks\n\nALTER TABLE tasks ADD COLUMN verify_cmd TEXT;\nALTER TABLE tasks ADD COLUMN verify_schema TEXT;\n\n-- Record this migration\nINSERT OR IGNORE INTO schema_version (version, applied_at) VALUES (32, datetime('now'));\n"
151
161
  }
152
162
  ];
153
163
  //# sourceMappingURL=migrations-embedded.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"migrations-embedded.js","sourceRoot":"","sources":["../src/migrations-embedded.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"migrations-embedded.js","sourceRoot":"","sources":["../src/migrations-embedded.ts"],"names":[],"mappings":"AASA,MAAM,CAAC,MAAM,mBAAmB,GAAyB;IACvD;QACE,SAAS,EAAE,CAAC;QACZ,aAAa,EAAE,SAAS;QACxB,KAAK,EAAE,m6DAAm6D;KAC36D;IACD;QACE,SAAS,EAAE,CAAC;QACZ,aAAa,EAAE,WAAW;QAC1B,KAAK,EAAE,29EAA29E;KACn+E;IACD;QACE,SAAS,EAAE,CAAC;QACZ,aAAa,EAAE,gBAAgB;QAC/B,KAAK,EAAE,sxBAAsxB;KAC9xB;IACD;QACE,SAAS,EAAE,CAAC;QACZ,aAAa,EAAE,UAAU;QACzB,KAAK,EAAE,ipBAAipB;KACzpB;IACD;QACE,SAAS,EAAE,CAAC;QACZ,aAAa,EAAE,MAAM;QACrB,KAAK,EAAE,gqDAAgqD;KACxqD;IACD;QACE,SAAS,EAAE,CAAC;QACZ,aAAa,EAAE,QAAQ;QACvB,KAAK,EAAE,+xCAA+xC;KACvyC;IACD;QACE,SAAS,EAAE,CAAC;QACZ,aAAa,EAAE,aAAa;QAC5B,KAAK,EAAE,imBAAimB;KACzmB;IACD;QACE,SAAS,EAAE,CAAC;QACZ,aAAa,EAAE,kBAAkB;QACjC,KAAK,EAAE,o4CAAo4C;KAC54C;IACD;QACE,SAAS,EAAE,CAAC;QACZ,aAAa,EAAE,gBAAgB;QAC/B,KAAK,EAAE,spEAAspE;KAC9pE;IACD;QACE,SAAS,EAAE,EAAE;QACb,aAAa,EAAE,qBAAqB;QACpC,KAAK,EAAE,67CAA67C;KACr8C;IACD;QACE,SAAS,EAAE,EAAE;QACb,aAAa,EAAE,kBAAkB;QACjC,KAAK,EAAE,gyDAAgyD;KACxyD;IACD;QACE,SAAS,EAAE,EAAE;QACb,aAAa,EAAE,cAAc;QAC7B,KAAK,EAAE,w4CAAw4C;KACh5C;IACD;QACE,SAAS,EAAE,EAAE;QACb,aAAa,EAAE,iBAAiB;QAChC,KAAK,EAAE,2nBAA2nB;KACnoB;IACD;QACE,SAAS,EAAE,EAAE;QACb,aAAa,EAAE,yBAAyB;QACxC,KAAK,EAAE,45BAA45B;KACp6B;IACD;QACE,SAAS,EAAE,EAAE;QACb,aAAa,EAAE,sBAAsB;QACrC,KAAK,EAAE,o7FAAo7F;KAC57F;IACD;QACE,SAAS,EAAE,EAAE;QACb,aAAa,EAAE,kBAAkB;QACjC,KAAK,EAAE,oiBAAoiB;KAC5iB;IACD;QACE,SAAS,EAAE,EAAE;QACb,aAAa,EAAE,oBAAoB;QACnC,KAAK,EAAE,+2DAA+2D;KACv3D;IACD;QACE,SAAS,EAAE,EAAE;QACb,aAAa,EAAE,sBAAsB;QACrC,KAAK,EAAE,srBAAsrB;KAC9rB;IACD;QACE,SAAS,EAAE,EAAE;QACb,aAAa,EAAE,wBAAwB;QACvC,KAAK,EAAE,+eAA+e;KACvf;IACD;QACE,SAAS,EAAE,EAAE;QACb,aAAa,EAAE,eAAe;QAC9B,KAAK,EAAE,m5CAAm5C;KAC35C;IACD;QACE,SAAS,EAAE,EAAE;QACb,aAAa,EAAE,cAAc;QAC7B,KAAK,EAAE,27CAA27C;KACn8C;IACD;QACE,SAAS,EAAE,EAAE;QACb,aAAa,EAAE,oBAAoB;QACnC,KAAK,EAAE,ulFAAulF;KAC/lF;IACD;QACE,SAAS,EAAE,EAAE;QACb,aAAa,EAAE,aAAa;QAC5B,KAAK,EAAE,6iCAA6iC;KACrjC;IACD;QACE,SAAS,EAAE,EAAE;QACb,aAAa,EAAE,iBAAiB;QAChC,KAAK,EAAE,2zBAA2zB;KACn0B;IACD;QACE,SAAS,EAAE,EAAE;QACb,aAAa,EAAE,qBAAqB;QACpC,KAAK,EAAE,k7BAAk7B;KAC17B;IACD;QACE,SAAS,EAAE,EAAE;QACb,aAAa,EAAE,8BAA8B;QAC7C,KAAK,EAAE,2wBAA2wB;KACnxB;IACD;QACE,SAAS,EAAE,EAAE;QACb,aAAa,EAAE,+BAA+B;QAC9C,KAAK,EAAE,o3CAAo3C;KAC53C;IACD;QACE,SAAS,EAAE,EAAE;QACb,aAAa,EAAE,oBAAoB;QACnC,KAAK,EAAE,ygBAAygB;KACjhB;IACD;QACE,SAAS,EAAE,EAAE;QACb,aAAa,EAAE,QAAQ;QACvB,KAAK,EAAE,msHAAmsH;KAC3sH;IACD;QACE,SAAS,EAAE,EAAE;QACb,aAAa,EAAE,cAAc;QAC7B,KAAK,EAAE,05BAA05B;KACl6B;IACD;QACE,SAAS,EAAE,EAAE;QACb,aAAa,EAAE,aAAa;QAC5B,KAAK,EAAE,grBAAgrB;KACxrB;IACD;QACE,SAAS,EAAE,EAAE;QACb,aAAa,EAAE,YAAY;QAC3B,KAAK,EAAE,mUAAmU;KAC3U;CACF,CAAA"}
@@ -52,7 +52,7 @@ export const AttemptRepositoryLive = Layer.effect(AttemptRepository, Effect.gen(
52
52
  }),
53
53
  findByTaskId: (taskId) => Effect.try({
54
54
  try: () => {
55
- const rows = db.prepare("SELECT * FROM attempts WHERE task_id = ? ORDER BY created_at DESC").all(taskId);
55
+ const rows = db.prepare("SELECT * FROM attempts WHERE task_id = ? ORDER BY created_at DESC, id DESC").all(taskId);
56
56
  return rows.map(rowToAttempt);
57
57
  },
58
58
  catch: (cause) => new DatabaseError({ cause })
@@ -1 +1 @@
1
- {"version":3,"file":"attempt-repo.js","sourceRoot":"","sources":["../../src/repo/attempt-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,oBAAoB,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACpF,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAGpD,MAAM,iBAAiB,GAAG,GAAG,CAAA;AAE7B,MAAM,eAAe,GAAG,CACtB,MAAoB,EACpB,YAAoB,iBAAiB,EACJ,EAAE;IACnC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,CAAA;IACX,CAAC;IACD,MAAM,MAAM,GAAU,EAAE,CAAA;IACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC;QAClD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAQ,CAAC,CAAA;IACpD,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAED,MAAM,OAAO,iBAAkB,SAAQ,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAwBpE;CAAG;AAEN,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,CAAC,MAAM,CAC/C,iBAAiB,EACjB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,YAAY,CAAA;IAE9B,OAAO;QACL,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAChB,MAAM,CAAC,GAAG,CAAC;YACT,GAAG,EAAE,GAAG,EAAE;gBACR,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;gBACpC,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CACvB;sCACwB,CACzB,CAAC,GAAG,CACH,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,MAAM,IAAI,IAAI,EACpB,GAAG,CACJ,CAAA;gBACD,yBAAyB;gBACzB,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,CAA2B,CAAA;gBACnH,IAAI,CAAC,GAAG,EAAE,CAAC;oBACT,MAAM,IAAI,gBAAgB,CAAC;wBACzB,MAAM,EAAE,SAAS;wBACjB,EAAE,EAAE,MAAM,CAAC,eAAyB;wBACpC,SAAS,EAAE,QAAQ;qBACpB,CAAC,CAAA;gBACJ,CAAC;gBACD,OAAO,YAAY,CAAC,GAAG,CAAC,CAAA;YAC1B,CAAC;YACD,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC;SAC/C,CAAC;QAEJ,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,CACf,MAAM,CAAC,GAAG,CAAC;YACT,GAAG,EAAE,GAAG,EAAE;gBACR,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC,GAAG,CAAC,EAAE,CAA2B,CAAA;gBAC/F,OAAO,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;YACvC,CAAC;YACD,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC;SAC/C,CAAC;QAEJ,OAAO,EAAE,GAAG,EAAE,CACZ,MAAM,CAAC,GAAG,CAAC;YACT,GAAG,EAAE,GAAG,EAAE;gBACR,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CACrB,gDAAgD,CACjD,CAAC,GAAG,EAAkB,CAAA;gBACvB,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;YAC/B,CAAC;YACD,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC;SAC/C,CAAC;QAEJ,YAAY,EAAE,CAAC,MAAM,EAAE,EAAE,CACvB,MAAM,CAAC,GAAG,CAAC;YACT,GAAG,EAAE,GAAG,EAAE;gBACR,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CACrB,mEAAmE,CACpE,CAAC,GAAG,CAAC,MAAM,CAAiB,CAAA;gBAC7B,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;YAC/B,CAAC;YACD,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC;SAC/C,CAAC;QAEJ,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE,CAChB,MAAM,CAAC,GAAG,CAAC;YACT,GAAG,EAAE,GAAG,EAAE;gBACR,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CACvB,wDAAwD,CACzD,CAAC,GAAG,CAAC,MAAM,CAAoB,CAAA;oBAChC,OAAO,MAAM,CAAC,GAAG,CAAA;gBACnB,CAAC;gBACD,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAC,GAAG,EAAqB,CAAA;gBAC1F,OAAO,MAAM,CAAC,GAAG,CAAA;YACnB,CAAC;YACD,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC;SAC/C,CAAC;QAEJ,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,CACb,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;gBAC/B,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;gBAClE,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC;aAC/C,CAAC,CAAA;YACF,IAAI,MAAM,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;gBACzB,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,oBAAoB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;YACtD,CAAC;QACH,CAAC,CAAC;QAEJ,uBAAuB,EAAE,CAAC,OAAO,EAAE,EAAE,CACnC,MAAM,CAAC,GAAG,CAAC;YACT,GAAG,EAAE,GAAG,EAAE;gBACR,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACzB,OAAO,IAAI,GAAG,EAAkB,CAAA;gBAClC,CAAC;gBAED,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAA;gBACxC,KAAK,MAAM,KAAK,IAAI,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC7C,MAAM,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;oBACpD,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CACrB;qCACqB,YAAY;kCACf,CACnB,CAAC,GAAG,CAAC,GAAG,KAAK,CAA4C,CAAA;oBAC1D,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;wBACvB,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,CAAA;oBAClC,CAAC;gBACH,CAAC;gBACD,OAAO,MAAM,CAAA;YACf,CAAC;YACD,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC;SAC/C,CAAC;KACL,CAAA;AACH,CAAC,CAAC,CACH,CAAA"}
1
+ {"version":3,"file":"attempt-repo.js","sourceRoot":"","sources":["../../src/repo/attempt-repo.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import { Context, Effect, Layer } from "effect";
2
+ import { SqliteClient } from "../db.js";
3
+ import { DatabaseError } from "../errors.js";
4
+ export interface GuardRow {
5
+ readonly id: number;
6
+ readonly scope: string;
7
+ readonly max_pending: number | null;
8
+ readonly max_children: number | null;
9
+ readonly max_depth: number | null;
10
+ readonly enforce: number;
11
+ readonly created_at: string;
12
+ }
13
+ export interface Guard {
14
+ readonly id: number;
15
+ readonly scope: string;
16
+ readonly maxPending: number | null;
17
+ readonly maxChildren: number | null;
18
+ readonly maxDepth: number | null;
19
+ readonly enforce: boolean;
20
+ readonly createdAt: string;
21
+ }
22
+ declare const GuardRepository_base: Context.TagClass<GuardRepository, "GuardRepository", {
23
+ readonly findByScope: (scope: string) => Effect.Effect<Guard | null, DatabaseError>;
24
+ readonly findAll: () => Effect.Effect<readonly Guard[], DatabaseError>;
25
+ readonly upsert: (scope: string, guard: {
26
+ maxPending?: number | null;
27
+ maxChildren?: number | null;
28
+ maxDepth?: number | null;
29
+ enforce: boolean;
30
+ }) => Effect.Effect<Guard, DatabaseError>;
31
+ readonly remove: (scope: string) => Effect.Effect<boolean, DatabaseError>;
32
+ readonly countPending: () => Effect.Effect<number, DatabaseError>;
33
+ readonly countChildrenOf: (parentId: string) => Effect.Effect<number, DatabaseError>;
34
+ readonly getMaxDepth: (parentId: string) => Effect.Effect<number, DatabaseError>;
35
+ }>;
36
+ export declare class GuardRepository extends GuardRepository_base {
37
+ }
38
+ export declare const GuardRepositoryLive: Layer.Layer<GuardRepository, never, SqliteClient>;
39
+ export {};
40
+ //# sourceMappingURL=guard-repo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guard-repo.d.ts","sourceRoot":"","sources":["../../src/repo/guard-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,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IACnC,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IACpC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAC5B;AAED,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IAClC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IACnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC3B;;0BAeyB,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,EAAE,aAAa,CAAC;sBACjE,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,KAAK,EAAE,EAAE,aAAa,CAAC;qBACrD,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE;QACtC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;QAC1B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;QAC3B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;QACxB,OAAO,EAAE,OAAO,CAAA;KACjB,KAAK,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC;qBACxB,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC;2BAClD,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;8BACvC,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;0BAC9D,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;;AAdpF,qBAAa,eAAgB,SAAQ,oBAgBlC;CAAG;AAEN,eAAO,MAAM,mBAAmB,mDAkH/B,CAAA"}
@@ -0,0 +1,98 @@
1
+ import { Context, Effect, Layer } from "effect";
2
+ import { SqliteClient } from "../db.js";
3
+ import { DatabaseError } from "../errors.js";
4
+ const rowToGuard = (row) => ({
5
+ id: row.id,
6
+ scope: row.scope,
7
+ maxPending: row.max_pending,
8
+ maxChildren: row.max_children,
9
+ maxDepth: row.max_depth,
10
+ enforce: row.enforce === 1,
11
+ createdAt: row.created_at,
12
+ });
13
+ export class GuardRepository extends Context.Tag("GuardRepository")() {
14
+ }
15
+ export const GuardRepositoryLive = Layer.effect(GuardRepository, Effect.gen(function* () {
16
+ const db = yield* SqliteClient;
17
+ return {
18
+ findByScope: (scope) => Effect.try({
19
+ try: () => {
20
+ const row = db.prepare("SELECT * FROM task_guards WHERE scope = ?").get(scope);
21
+ return row ? rowToGuard(row) : null;
22
+ },
23
+ catch: (cause) => new DatabaseError({ cause })
24
+ }),
25
+ findAll: () => Effect.try({
26
+ try: () => {
27
+ const rows = db.prepare("SELECT * FROM task_guards ORDER BY scope").all();
28
+ return rows.map(rowToGuard);
29
+ },
30
+ catch: (cause) => new DatabaseError({ cause })
31
+ }),
32
+ upsert: (scope, guard) => Effect.try({
33
+ try: () => {
34
+ // Build SET clause dynamically:
35
+ // - undefined fields → COALESCE to preserve existing values
36
+ // - explicit null fields → SET to NULL (clears the limit)
37
+ // - numeric fields → SET to the new value
38
+ const setPending = guard.maxPending === undefined
39
+ ? "max_pending = COALESCE(excluded.max_pending, task_guards.max_pending)"
40
+ : "max_pending = excluded.max_pending";
41
+ const setChildren = guard.maxChildren === undefined
42
+ ? "max_children = COALESCE(excluded.max_children, task_guards.max_children)"
43
+ : "max_children = excluded.max_children";
44
+ const setDepth = guard.maxDepth === undefined
45
+ ? "max_depth = COALESCE(excluded.max_depth, task_guards.max_depth)"
46
+ : "max_depth = excluded.max_depth";
47
+ db.prepare(`INSERT INTO task_guards (scope, max_pending, max_children, max_depth, enforce)
48
+ VALUES (?, ?, ?, ?, ?)
49
+ ON CONFLICT(scope) DO UPDATE SET
50
+ ${setPending},
51
+ ${setChildren},
52
+ ${setDepth},
53
+ enforce = excluded.enforce`).run(scope, guard.maxPending ?? null, guard.maxChildren ?? null, guard.maxDepth ?? null, guard.enforce ? 1 : 0);
54
+ const row = db.prepare("SELECT * FROM task_guards WHERE scope = ?").get(scope);
55
+ return rowToGuard(row);
56
+ },
57
+ catch: (cause) => new DatabaseError({ cause })
58
+ }),
59
+ remove: (scope) => Effect.try({
60
+ try: () => {
61
+ const result = db.prepare("DELETE FROM task_guards WHERE scope = ?").run(scope);
62
+ return result.changes > 0;
63
+ },
64
+ catch: (cause) => new DatabaseError({ cause })
65
+ }),
66
+ countPending: () => Effect.try({
67
+ try: () => {
68
+ const row = db.prepare("SELECT COUNT(*) as cnt FROM tasks WHERE status != 'done'").get();
69
+ return row.cnt;
70
+ },
71
+ catch: (cause) => new DatabaseError({ cause })
72
+ }),
73
+ countChildrenOf: (parentId) => Effect.try({
74
+ try: () => {
75
+ const row = db.prepare("SELECT COUNT(*) as cnt FROM tasks WHERE parent_id = ?").get(parentId);
76
+ return row.cnt;
77
+ },
78
+ catch: (cause) => new DatabaseError({ cause })
79
+ }),
80
+ getMaxDepth: (parentId) => Effect.try({
81
+ try: () => {
82
+ // Count how many ancestors parentId has (0 for root, 1 for child of root, etc.)
83
+ // A new child under parentId would be at depth = (ancestor count of parentId) + 1
84
+ const row = db.prepare(`WITH RECURSIVE ancestors AS (
85
+ SELECT parent_id FROM tasks WHERE id = ?
86
+ UNION ALL
87
+ SELECT t.parent_id
88
+ FROM tasks t JOIN ancestors a ON t.id = a.parent_id
89
+ WHERE a.parent_id IS NOT NULL
90
+ )
91
+ SELECT COUNT(*) as depth FROM ancestors WHERE parent_id IS NOT NULL`).get(parentId);
92
+ return row.depth;
93
+ },
94
+ catch: (cause) => new DatabaseError({ cause })
95
+ }),
96
+ };
97
+ }));
98
+ //# sourceMappingURL=guard-repo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guard-repo.js","sourceRoot":"","sources":["../../src/repo/guard-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;AAsB5C,MAAM,UAAU,GAAG,CAAC,GAAa,EAAS,EAAE,CAAC,CAAC;IAC5C,EAAE,EAAE,GAAG,CAAC,EAAE;IACV,KAAK,EAAE,GAAG,CAAC,KAAK;IAChB,UAAU,EAAE,GAAG,CAAC,WAAW;IAC3B,WAAW,EAAE,GAAG,CAAC,YAAY;IAC7B,QAAQ,EAAE,GAAG,CAAC,SAAS;IACvB,OAAO,EAAE,GAAG,CAAC,OAAO,KAAK,CAAC;IAC1B,SAAS,EAAE,GAAG,CAAC,UAAU;CAC1B,CAAC,CAAA;AAEF,MAAM,OAAO,eAAgB,SAAQ,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAgBhE;CAAG;AAEN,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,CAAC,MAAM,CAC7C,eAAe,EACf,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,YAAY,CAAA;IAE9B,OAAO;QACL,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE,CACrB,MAAM,CAAC,GAAG,CAAC;YACT,GAAG,EAAE,GAAG,EAAE;gBACR,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,2CAA2C,CAAC,CAAC,GAAG,CAAC,KAAK,CAAyB,CAAA;gBACtG,OAAO,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;YACrC,CAAC;YACD,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC;SAC/C,CAAC;QAEJ,OAAO,EAAE,GAAG,EAAE,CACZ,MAAM,CAAC,GAAG,CAAC;YACT,GAAG,EAAE,GAAG,EAAE;gBACR,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,0CAA0C,CAAC,CAAC,GAAG,EAAgB,CAAA;gBACvF,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;YAC7B,CAAC;YACD,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC;SAC/C,CAAC;QAEJ,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CACvB,MAAM,CAAC,GAAG,CAAC;YACT,GAAG,EAAE,GAAG,EAAE;gBACR,gCAAgC;gBAChC,4DAA4D;gBAC5D,0DAA0D;gBAC1D,0CAA0C;gBAC1C,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,KAAK,SAAS;oBAC/C,CAAC,CAAC,uEAAuE;oBACzE,CAAC,CAAC,oCAAoC,CAAA;gBACxC,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,KAAK,SAAS;oBACjD,CAAC,CAAC,0EAA0E;oBAC5E,CAAC,CAAC,sCAAsC,CAAA;gBAC1C,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,KAAK,SAAS;oBAC3C,CAAC,CAAC,iEAAiE;oBACnE,CAAC,CAAC,gCAAgC,CAAA;gBAEpC,EAAE,CAAC,OAAO,CACR;;;mBAGK,UAAU;mBACV,WAAW;mBACX,QAAQ;4CACiB,CAC/B,CAAC,GAAG,CACH,KAAK,EACL,KAAK,CAAC,UAAU,IAAI,IAAI,EACxB,KAAK,CAAC,WAAW,IAAI,IAAI,EACzB,KAAK,CAAC,QAAQ,IAAI,IAAI,EACtB,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACtB,CAAA;gBACD,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,2CAA2C,CAAC,CAAC,GAAG,CAAC,KAAK,CAAa,CAAA;gBAC1F,OAAO,UAAU,CAAC,GAAG,CAAC,CAAA;YACxB,CAAC;YACD,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC;SAC/C,CAAC;QAEJ,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAChB,MAAM,CAAC,GAAG,CAAC;YACT,GAAG,EAAE,GAAG,EAAE;gBACR,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,yCAAyC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;gBAC/E,OAAO,MAAM,CAAC,OAAO,GAAG,CAAC,CAAA;YAC3B,CAAC;YACD,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC;SAC/C,CAAC;QAEJ,YAAY,EAAE,GAAG,EAAE,CACjB,MAAM,CAAC,GAAG,CAAC;YACT,GAAG,EAAE,GAAG,EAAE;gBACR,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CACpB,0DAA0D,CAC3D,CAAC,GAAG,EAAqB,CAAA;gBAC1B,OAAO,GAAG,CAAC,GAAG,CAAA;YAChB,CAAC;YACD,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC;SAC/C,CAAC;QAEJ,eAAe,EAAE,CAAC,QAAQ,EAAE,EAAE,CAC5B,MAAM,CAAC,GAAG,CAAC;YACT,GAAG,EAAE,GAAG,EAAE;gBACR,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CACpB,uDAAuD,CACxD,CAAC,GAAG,CAAC,QAAQ,CAAoB,CAAA;gBAClC,OAAO,GAAG,CAAC,GAAG,CAAA;YAChB,CAAC;YACD,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC;SAC/C,CAAC;QAEJ,WAAW,EAAE,CAAC,QAAQ,EAAE,EAAE,CACxB,MAAM,CAAC,GAAG,CAAC;YACT,GAAG,EAAE,GAAG,EAAE;gBACR,gFAAgF;gBAChF,kFAAkF;gBAClF,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CACpB;;;;;;;kFAOoE,CACrE,CAAC,GAAG,CAAC,QAAQ,CAAsB,CAAA;gBACpC,OAAO,GAAG,CAAC,KAAK,CAAA;YAClB,CAAC;YACD,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC;SAC/C,CAAC;KACL,CAAA;AACH,CAAC,CAAC,CACH,CAAA"}
@@ -20,4 +20,6 @@ export { MessageRepository, MessageRepositoryLive } from "./message-repo.js";
20
20
  export { DocRepository, DocRepositoryLive } from "./doc-repo.js";
21
21
  export { MemoryDocumentRepository, MemoryDocumentRepositoryLive, MemoryLinkRepository, MemoryLinkRepositoryLive, MemoryPropertyRepository, MemoryPropertyRepositoryLive, MemorySourceRepository, MemorySourceRepositoryLive, type MemoryBM25Result, } from "./memory-repo.js";
22
22
  export { PinRepository, PinRepositoryLive } from "./pin-repo.js";
23
+ export { GuardRepository, GuardRepositoryLive, type Guard, type GuardRow } from "./guard-repo.js";
24
+ export { LabelRepository, LabelRepositoryLive, type Label, type LabelRow } from "./label-repo.js";
23
25
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/repo/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACnE,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAA;AAC9E,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAChG,OAAO,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAA;AAC5F,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAC5E,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAChE,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AACzE,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACnE,OAAO,EAAE,uBAAuB,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAA;AAC9F,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAA;AAClF,OAAO,EAAE,wBAAwB,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAA;AAClG,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AACzE,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,KAAK,kBAAkB,EAAE,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACvH,OAAO,EAAE,2BAA2B,EAAE,+BAA+B,EAAE,KAAK,uBAAuB,EAAE,MAAM,8BAA8B,CAAA;AACzI,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,KAAK,kBAAkB,EAAE,KAAK,wBAAwB,EAAE,MAAM,sBAAsB,CAAA;AAC7I,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAC5E,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAChE,OAAO,EACL,wBAAwB,EAAE,4BAA4B,EACtD,oBAAoB,EAAE,wBAAwB,EAC9C,wBAAwB,EAAE,4BAA4B,EACtD,sBAAsB,EAAE,0BAA0B,EAClD,KAAK,gBAAgB,GACtB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/repo/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACnE,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAA;AAC9E,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAChG,OAAO,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAA;AAC5F,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAC5E,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAChE,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AACzE,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACnE,OAAO,EAAE,uBAAuB,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAA;AAC9F,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAA;AAClF,OAAO,EAAE,wBAAwB,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAA;AAClG,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AACzE,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,KAAK,kBAAkB,EAAE,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACvH,OAAO,EAAE,2BAA2B,EAAE,+BAA+B,EAAE,KAAK,uBAAuB,EAAE,MAAM,8BAA8B,CAAA;AACzI,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,KAAK,kBAAkB,EAAE,KAAK,wBAAwB,EAAE,MAAM,sBAAsB,CAAA;AAC7I,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAC5E,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAChE,OAAO,EACL,wBAAwB,EAAE,4BAA4B,EACtD,oBAAoB,EAAE,wBAAwB,EAC9C,wBAAwB,EAAE,4BAA4B,EACtD,sBAAsB,EAAE,0BAA0B,EAClD,KAAK,gBAAgB,GACtB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAChE,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,KAAK,KAAK,EAAE,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AACjG,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,KAAK,KAAK,EAAE,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAA"}
@@ -20,4 +20,6 @@ export { MessageRepository, MessageRepositoryLive } from "./message-repo.js";
20
20
  export { DocRepository, DocRepositoryLive } from "./doc-repo.js";
21
21
  export { MemoryDocumentRepository, MemoryDocumentRepositoryLive, MemoryLinkRepository, MemoryLinkRepositoryLive, MemoryPropertyRepository, MemoryPropertyRepositoryLive, MemorySourceRepository, MemorySourceRepositoryLive, } from "./memory-repo.js";
22
22
  export { PinRepository, PinRepositoryLive } from "./pin-repo.js";
23
+ export { GuardRepository, GuardRepositoryLive } from "./guard-repo.js";
24
+ export { LabelRepository, LabelRepositoryLive } from "./label-repo.js";
23
25
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/repo/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACnE,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAA;AAC9E,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAmB,MAAM,oBAAoB,CAAA;AAChG,OAAO,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAA;AAC5F,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAC5E,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAChE,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AACzE,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACnE,OAAO,EAAE,uBAAuB,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAA;AAC9F,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAA;AAClF,OAAO,EAAE,wBAAwB,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAA;AAClG,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AACzE,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAmD,MAAM,iBAAiB,CAAA;AACvH,OAAO,EAAE,2BAA2B,EAAE,+BAA+B,EAAgC,MAAM,8BAA8B,CAAA;AACzI,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAA0D,MAAM,sBAAsB,CAAA;AAC7I,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAC5E,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAChE,OAAO,EACL,wBAAwB,EAAE,4BAA4B,EACtD,oBAAoB,EAAE,wBAAwB,EAC9C,wBAAwB,EAAE,4BAA4B,EACtD,sBAAsB,EAAE,0BAA0B,GAEnD,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/repo/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACnE,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAA;AAC9E,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAmB,MAAM,oBAAoB,CAAA;AAChG,OAAO,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAA;AAC5F,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAC5E,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAChE,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AACzE,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACnE,OAAO,EAAE,uBAAuB,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAA;AAC9F,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAA;AAClF,OAAO,EAAE,wBAAwB,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAA;AAClG,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AACzE,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAmD,MAAM,iBAAiB,CAAA;AACvH,OAAO,EAAE,2BAA2B,EAAE,+BAA+B,EAAgC,MAAM,8BAA8B,CAAA;AACzI,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAA0D,MAAM,sBAAsB,CAAA;AAC7I,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAC5E,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAChE,OAAO,EACL,wBAAwB,EAAE,4BAA4B,EACtD,oBAAoB,EAAE,wBAAwB,EAC9C,wBAAwB,EAAE,4BAA4B,EACtD,sBAAsB,EAAE,0BAA0B,GAEnD,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAChE,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAA6B,MAAM,iBAAiB,CAAA;AACjG,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAA6B,MAAM,iBAAiB,CAAA"}
@@ -0,0 +1,31 @@
1
+ import { Context, Effect, Layer } from "effect";
2
+ import { SqliteClient } from "../db.js";
3
+ import { DatabaseError, LabelNotFoundError, TaskNotFoundError } from "../errors.js";
4
+ export interface LabelRow {
5
+ readonly id: number;
6
+ readonly name: string;
7
+ readonly color: string;
8
+ readonly created_at: string;
9
+ readonly updated_at: string;
10
+ }
11
+ export interface Label {
12
+ readonly id: number;
13
+ readonly name: string;
14
+ readonly color: string;
15
+ readonly createdAt: string;
16
+ readonly updatedAt: string;
17
+ }
18
+ declare const LabelRepository_base: Context.TagClass<LabelRepository, "LabelRepository", {
19
+ readonly findByName: (name: string) => Effect.Effect<Label | null, DatabaseError>;
20
+ readonly findAll: () => Effect.Effect<readonly Label[], DatabaseError>;
21
+ readonly create: (name: string, color: string) => Effect.Effect<Label, DatabaseError>;
22
+ readonly remove: (name: string) => Effect.Effect<boolean, DatabaseError>;
23
+ readonly assign: (taskId: string, labelName: string) => Effect.Effect<void, DatabaseError | LabelNotFoundError | TaskNotFoundError>;
24
+ readonly unassign: (taskId: string, labelName: string) => Effect.Effect<"removed" | "not_assigned" | "label_not_found", DatabaseError>;
25
+ readonly getLabelsForTask: (taskId: string) => Effect.Effect<readonly Label[], DatabaseError>;
26
+ }>;
27
+ export declare class LabelRepository extends LabelRepository_base {
28
+ }
29
+ export declare const LabelRepositoryLive: Layer.Layer<LabelRepository, never, SqliteClient>;
30
+ export {};
31
+ //# sourceMappingURL=label-repo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"label-repo.d.ts","sourceRoot":"","sources":["../../src/repo/label-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,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAEnF,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAC5B;AAED,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC3B;;yBAawB,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,EAAE,aAAa,CAAC;sBAC/D,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,KAAK,EAAE,EAAE,aAAa,CAAC;qBACrD,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC;qBACpE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC;qBACvD,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,kBAAkB,GAAG,iBAAiB,CAAC;uBAChH,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,SAAS,GAAG,cAAc,GAAG,iBAAiB,EAAE,aAAa,CAAC;+BAC3G,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,SAAS,KAAK,EAAE,EAAE,aAAa,CAAC;;AATjG,qBAAa,eAAgB,SAAQ,oBAWlC;CAAG;AAEN,eAAO,MAAM,mBAAmB,mDA+G/B,CAAA"}
@@ -0,0 +1,91 @@
1
+ import { Context, Effect, Layer } from "effect";
2
+ import { SqliteClient } from "../db.js";
3
+ import { DatabaseError, LabelNotFoundError, TaskNotFoundError } from "../errors.js";
4
+ const rowToLabel = (row) => ({
5
+ id: row.id,
6
+ name: row.name,
7
+ color: row.color,
8
+ createdAt: row.created_at,
9
+ updatedAt: row.updated_at,
10
+ });
11
+ export class LabelRepository extends Context.Tag("LabelRepository")() {
12
+ }
13
+ export const LabelRepositoryLive = Layer.effect(LabelRepository, Effect.gen(function* () {
14
+ const db = yield* SqliteClient;
15
+ return {
16
+ findByName: (name) => Effect.try({
17
+ try: () => {
18
+ const row = db.prepare("SELECT * FROM task_labels WHERE lower(name) = lower(?)").get(name);
19
+ return row ? rowToLabel(row) : null;
20
+ },
21
+ catch: (cause) => new DatabaseError({ cause })
22
+ }),
23
+ findAll: () => Effect.try({
24
+ try: () => {
25
+ const rows = db.prepare("SELECT * FROM task_labels ORDER BY name").all();
26
+ return rows.map(rowToLabel);
27
+ },
28
+ catch: (cause) => new DatabaseError({ cause })
29
+ }),
30
+ create: (name, color) => Effect.try({
31
+ try: () => {
32
+ const now = new Date().toISOString();
33
+ db.prepare("INSERT INTO task_labels (name, color, created_at, updated_at) VALUES (?, ?, ?, ?)").run(name, color, now, now);
34
+ const row = db.prepare("SELECT * FROM task_labels WHERE lower(name) = lower(?)").get(name);
35
+ return rowToLabel(row);
36
+ },
37
+ catch: (cause) => new DatabaseError({ cause })
38
+ }),
39
+ remove: (name) => Effect.try({
40
+ try: () => {
41
+ const result = db.prepare("DELETE FROM task_labels WHERE lower(name) = lower(?)").run(name);
42
+ return result.changes > 0;
43
+ },
44
+ catch: (cause) => new DatabaseError({ cause })
45
+ }),
46
+ assign: (taskId, labelName) => Effect.gen(function* () {
47
+ // Validate task exists (INSERT OR IGNORE swallows FK violations silently)
48
+ const task = yield* Effect.try({
49
+ try: () => db.prepare("SELECT id FROM tasks WHERE id = ?").get(taskId),
50
+ catch: (cause) => new DatabaseError({ cause })
51
+ });
52
+ if (!task) {
53
+ return yield* Effect.fail(new TaskNotFoundError({ id: taskId }));
54
+ }
55
+ const label = yield* Effect.try({
56
+ try: () => db.prepare("SELECT id FROM task_labels WHERE lower(name) = lower(?)").get(labelName),
57
+ catch: (cause) => new DatabaseError({ cause })
58
+ });
59
+ if (!label) {
60
+ return yield* Effect.fail(new LabelNotFoundError({ name: labelName }));
61
+ }
62
+ yield* Effect.try({
63
+ try: () => {
64
+ db.prepare("INSERT OR IGNORE INTO task_label_assignments (task_id, label_id, created_at) VALUES (?, ?, ?)").run(taskId, label.id, new Date().toISOString());
65
+ },
66
+ catch: (cause) => new DatabaseError({ cause })
67
+ });
68
+ }),
69
+ unassign: (taskId, labelName) => Effect.try({
70
+ try: () => {
71
+ const label = db.prepare("SELECT id FROM task_labels WHERE lower(name) = lower(?)").get(labelName);
72
+ if (!label)
73
+ return "label_not_found";
74
+ const result = db.prepare("DELETE FROM task_label_assignments WHERE task_id = ? AND label_id = ?").run(taskId, label.id);
75
+ return result.changes > 0 ? "removed" : "not_assigned";
76
+ },
77
+ catch: (cause) => new DatabaseError({ cause })
78
+ }),
79
+ getLabelsForTask: (taskId) => Effect.try({
80
+ try: () => {
81
+ const rows = db.prepare(`SELECT tl.* FROM task_labels tl
82
+ JOIN task_label_assignments tla ON tla.label_id = tl.id
83
+ WHERE tla.task_id = ?
84
+ ORDER BY tl.name`).all(taskId);
85
+ return rows.map(rowToLabel);
86
+ },
87
+ catch: (cause) => new DatabaseError({ cause })
88
+ }),
89
+ };
90
+ }));
91
+ //# sourceMappingURL=label-repo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"label-repo.js","sourceRoot":"","sources":["../../src/repo/label-repo.ts"],"names":[],"mappings":"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"}
@@ -32,6 +32,11 @@ declare const TaskRepository_base: Context.TagClass<TaskRepository, "TaskReposit
32
32
  * Returns true if a row was updated, false if no matching row found.
33
33
  */
34
34
  readonly recoverTaskStatus: (taskId: string, expectedStatus: string) => Effect.Effect<boolean, DatabaseError>;
35
+ readonly updateVerifyCmd: (taskId: string, cmd: string | null, schema: string | null) => Effect.Effect<void, DatabaseError | TaskNotFoundError>;
36
+ readonly getVerifyCmd: (taskId: string) => Effect.Effect<{
37
+ cmd: string | null;
38
+ schema: string | null;
39
+ }, DatabaseError>;
35
40
  }>;
36
41
  export declare class TaskRepository extends TaskRepository_base {
37
42
  }
@@ -1 +1 @@
1
- {"version":3,"file":"task-repo.d.ts","sourceRoot":"","sources":["../../src/repo/task-repo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task-repo.d.ts","sourceRoot":"","sources":["../../src/repo/task-repo.ts"],"names":[],"mappings":"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"}
@@ -82,6 +82,20 @@ export const TaskRepositoryLive = Layer.effect(TaskRepository, Effect.gen(functi
82
82
  if (filter?.excludeClaimed) {
83
83
  conditions.push("NOT EXISTS (SELECT 1 FROM task_claims WHERE task_id = tasks.id AND status = 'active')");
84
84
  }
85
+ // Label filters: include tasks with ALL specified labels
86
+ if (filter?.labels && filter.labels.length > 0) {
87
+ for (const label of filter.labels) {
88
+ conditions.push(`EXISTS (SELECT 1 FROM task_label_assignments tla JOIN task_labels tl ON tl.id = tla.label_id WHERE tla.task_id = tasks.id AND lower(tl.name) = lower(?))`);
89
+ params.push(label);
90
+ }
91
+ }
92
+ // Exclude label filters: exclude tasks with ANY specified label
93
+ if (filter?.excludeLabels && filter.excludeLabels.length > 0) {
94
+ for (const label of filter.excludeLabels) {
95
+ conditions.push(`NOT EXISTS (SELECT 1 FROM task_label_assignments tla JOIN task_labels tl ON tl.id = tla.label_id WHERE tla.task_id = tasks.id AND lower(tl.name) = lower(?))`);
96
+ params.push(label);
97
+ }
98
+ }
85
99
  const where = conditions.length > 0 ? `WHERE ${conditions.join(" AND ")}` : "";
86
100
  // Use parameterized query for LIMIT to prevent SQL injection
87
101
  let limitClause = "";
@@ -466,13 +480,49 @@ export const TaskRepositoryLive = Layer.effect(TaskRepository, Effect.gen(functi
466
480
  conditions.push("(title LIKE ? ESCAPE '\\' COLLATE NOCASE OR description LIKE ? ESCAPE '\\' COLLATE NOCASE)");
467
481
  params.push(searchPattern, searchPattern);
468
482
  }
483
+ // Exclude claimed tasks (same as findAll)
484
+ if (filter?.excludeClaimed) {
485
+ conditions.push("NOT EXISTS (SELECT 1 FROM task_claims WHERE task_id = tasks.id AND status = 'active')");
486
+ }
487
+ // Label filters (same as findAll)
488
+ if (filter?.labels && filter.labels.length > 0) {
489
+ for (const label of filter.labels) {
490
+ conditions.push(`EXISTS (SELECT 1 FROM task_label_assignments tla JOIN task_labels tl ON tl.id = tla.label_id WHERE tla.task_id = tasks.id AND lower(tl.name) = lower(?))`);
491
+ params.push(label);
492
+ }
493
+ }
494
+ if (filter?.excludeLabels && filter.excludeLabels.length > 0) {
495
+ for (const label of filter.excludeLabels) {
496
+ conditions.push(`NOT EXISTS (SELECT 1 FROM task_label_assignments tla JOIN task_labels tl ON tl.id = tla.label_id WHERE tla.task_id = tasks.id AND lower(tl.name) = lower(?))`);
497
+ params.push(label);
498
+ }
499
+ }
469
500
  // Note: cursor is intentionally not included in count - we want total matching records
470
501
  const where = conditions.length > 0 ? `WHERE ${conditions.join(" AND ")}` : "";
471
502
  const result = db.prepare(`SELECT COUNT(*) as cnt FROM tasks ${where}`).get(...params);
472
503
  return result.cnt;
473
504
  },
474
505
  catch: (cause) => new DatabaseError({ cause })
475
- })
506
+ }),
507
+ updateVerifyCmd: (taskId, cmd, schema) => Effect.gen(function* () {
508
+ const result = yield* Effect.try({
509
+ try: () => db.prepare("UPDATE tasks SET verify_cmd = ?, verify_schema = ?, updated_at = ? WHERE id = ?").run(cmd, schema, new Date().toISOString(), taskId),
510
+ catch: (cause) => new DatabaseError({ cause })
511
+ });
512
+ if (result.changes === 0) {
513
+ return yield* Effect.fail(new TaskNotFoundError({ id: taskId }));
514
+ }
515
+ }),
516
+ getVerifyCmd: (taskId) => Effect.try({
517
+ try: () => {
518
+ const row = db.prepare("SELECT verify_cmd, verify_schema FROM tasks WHERE id = ?").get(taskId);
519
+ return {
520
+ cmd: row?.verify_cmd ?? null,
521
+ schema: row?.verify_schema ?? null,
522
+ };
523
+ },
524
+ catch: (cause) => new DatabaseError({ cause })
525
+ }),
476
526
  };
477
527
  }));
478
528
  //# sourceMappingURL=task-repo.js.map