@jamesaphoenix/tx-core 0.7.0 → 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 (64) hide show
  1. package/dist/errors.d.ts +30 -1
  2. package/dist/errors.d.ts.map +1 -1
  3. package/dist/errors.js +17 -0
  4. package/dist/errors.js.map +1 -1
  5. package/dist/index.d.ts +2 -2
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +6 -2
  8. package/dist/index.js.map +1 -1
  9. package/dist/layer.d.ts +9 -4
  10. package/dist/layer.d.ts.map +1 -1
  11. package/dist/layer.js +27 -5
  12. package/dist/layer.js.map +1 -1
  13. package/dist/migrations-embedded.d.ts.map +1 -1
  14. package/dist/migrations-embedded.js +10 -0
  15. package/dist/migrations-embedded.js.map +1 -1
  16. package/dist/repo/attempt-repo.js +1 -1
  17. package/dist/repo/attempt-repo.js.map +1 -1
  18. package/dist/repo/guard-repo.d.ts +40 -0
  19. package/dist/repo/guard-repo.d.ts.map +1 -0
  20. package/dist/repo/guard-repo.js +98 -0
  21. package/dist/repo/guard-repo.js.map +1 -0
  22. package/dist/repo/index.d.ts +2 -0
  23. package/dist/repo/index.d.ts.map +1 -1
  24. package/dist/repo/index.js +2 -0
  25. package/dist/repo/index.js.map +1 -1
  26. package/dist/repo/label-repo.d.ts +31 -0
  27. package/dist/repo/label-repo.d.ts.map +1 -0
  28. package/dist/repo/label-repo.js +91 -0
  29. package/dist/repo/label-repo.js.map +1 -0
  30. package/dist/repo/task-repo.d.ts +5 -0
  31. package/dist/repo/task-repo.d.ts.map +1 -1
  32. package/dist/repo/task-repo.js +51 -1
  33. package/dist/repo/task-repo.js.map +1 -1
  34. package/dist/services/guard-service.d.ts +24 -0
  35. package/dist/services/guard-service.d.ts.map +1 -0
  36. package/dist/services/guard-service.js +132 -0
  37. package/dist/services/guard-service.js.map +1 -0
  38. package/dist/services/index.d.ts +3 -0
  39. package/dist/services/index.d.ts.map +1 -1
  40. package/dist/services/index.js +3 -0
  41. package/dist/services/index.js.map +1 -1
  42. package/dist/services/ready-service.d.ts +4 -1
  43. package/dist/services/ready-service.d.ts.map +1 -1
  44. package/dist/services/ready-service.js +4 -2
  45. package/dist/services/ready-service.js.map +1 -1
  46. package/dist/services/reflect-service.d.ts +54 -0
  47. package/dist/services/reflect-service.d.ts.map +1 -0
  48. package/dist/services/reflect-service.js +293 -0
  49. package/dist/services/reflect-service.js.map +1 -0
  50. package/dist/services/task-service.d.ts +4 -3
  51. package/dist/services/task-service.d.ts.map +1 -1
  52. package/dist/services/task-service.js +94 -2
  53. package/dist/services/task-service.js.map +1 -1
  54. package/dist/services/verify-service.d.ts +30 -0
  55. package/dist/services/verify-service.d.ts.map +1 -0
  56. package/dist/services/verify-service.js +262 -0
  57. package/dist/services/verify-service.js.map +1 -0
  58. package/dist/utils/toml-config.d.ts +17 -0
  59. package/dist/utils/toml-config.d.ts.map +1 -1
  60. package/dist/utils/toml-config.js +87 -0
  61. package/dist/utils/toml-config.js.map +1 -1
  62. package/migrations/031_task_guards.sql +15 -0
  63. package/migrations/032_verify_cmd.sql +8 -0
  64. package/package.json +1 -1
@@ -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":"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"}
@@ -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":"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"}
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":"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"}
@@ -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
@@ -1 +1 @@
1
- {"version":3,"file":"task-repo.js","sourceRoot":"","sources":["../../src/repo/task-repo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task-repo.js","sourceRoot":"","sources":["../../src/repo/task-repo.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import { Context, Effect, Layer } from "effect";
2
+ import { GuardRepository, type Guard } from "../repo/guard-repo.js";
3
+ import { DatabaseError, GuardExceededError } from "../errors.js";
4
+ export interface GuardCheckResult {
5
+ readonly passed: boolean;
6
+ readonly warnings: readonly string[];
7
+ }
8
+ declare const GuardService_base: Context.TagClass<GuardService, "GuardService", {
9
+ readonly set: (options: {
10
+ scope?: string;
11
+ maxPending?: number;
12
+ maxChildren?: number;
13
+ maxDepth?: number;
14
+ enforce?: boolean;
15
+ }) => Effect.Effect<Guard, DatabaseError>;
16
+ readonly show: () => Effect.Effect<readonly Guard[], DatabaseError>;
17
+ readonly clear: (scope?: string) => Effect.Effect<boolean, DatabaseError>;
18
+ readonly check: (parentId?: string | null) => Effect.Effect<GuardCheckResult, DatabaseError | GuardExceededError>;
19
+ }>;
20
+ export declare class GuardService extends GuardService_base {
21
+ }
22
+ export declare const GuardServiceLive: Layer.Layer<GuardService, never, GuardRepository>;
23
+ export {};
24
+ //# sourceMappingURL=guard-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guard-service.d.ts","sourceRoot":"","sources":["../../src/services/guard-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAC/C,OAAO,EAAE,eAAe,EAAE,KAAK,KAAK,EAAE,MAAM,uBAAuB,CAAA;AACnE,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAGhE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;CACrC;;kBAKiB,CAAC,OAAO,EAAE;QACtB,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,OAAO,CAAC,EAAE,OAAO,CAAA;KAClB,KAAK,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC;mBAC1B,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,KAAK,EAAE,EAAE,aAAa,CAAC;oBACnD,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC;oBACzD,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,KAAK,MAAM,CAAC,MAAM,CACzD,gBAAgB,EAChB,aAAa,GAAG,kBAAkB,CACnC;;AAfL,qBAAa,YAAa,SAAQ,iBAiB/B;CAAG;AAEN,eAAO,MAAM,gBAAgB,mDA0I5B,CAAA"}