@jamesaphoenix/tx-api-server 0.1.1 → 0.5.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.
@@ -0,0 +1,153 @@
1
+ /**
2
+ * Cycle Route Handlers
3
+ *
4
+ * Provides endpoints for querying cycle scan data:
5
+ * - List all cycle runs
6
+ * - Get cycle detail with round metrics + issues
7
+ */
8
+ import { HttpApiBuilder } from "@effect/platform";
9
+ import { Effect } from "effect";
10
+ import { SqliteClient } from "@jamesaphoenix/tx-core";
11
+ import { TxApi, InternalError } from "../api.js";
12
+ // -----------------------------------------------------------------------------
13
+ // Handler Layer
14
+ // -----------------------------------------------------------------------------
15
+ export const CyclesLive = HttpApiBuilder.group(TxApi, "cycles", (handlers) => handlers
16
+ .handle("deleteCycle", ({ path }) => Effect.gen(function* () {
17
+ const db = yield* SqliteClient;
18
+ // Verify cycle exists and is a cycle-scanner run
19
+ const row = db
20
+ .prepare(`SELECT id, agent FROM runs WHERE id = ?`)
21
+ .get(path.id);
22
+ if (!row) {
23
+ return yield* Effect.fail(new InternalError({ message: `Cycle not found: ${path.id}` }));
24
+ }
25
+ // Delete associated issues (tasks created by this cycle)
26
+ const deleteIssues = db
27
+ .prepare(`DELETE FROM tasks WHERE json_extract(metadata, '$.cycleId') = ?`)
28
+ .run(path.id);
29
+ // Delete associated events
30
+ db.prepare(`DELETE FROM events WHERE run_id = ?`).run(path.id);
31
+ // Delete the run itself
32
+ db.prepare(`DELETE FROM runs WHERE id = ?`).run(path.id);
33
+ return {
34
+ success: true,
35
+ id: path.id,
36
+ deletedIssues: deleteIssues.changes,
37
+ };
38
+ }).pipe(Effect.catchAll((e) => Effect.fail(new InternalError({ message: String(e) })))))
39
+ .handle("listCycles", () => Effect.gen(function* () {
40
+ const db = yield* SqliteClient;
41
+ const rows = db
42
+ .prepare(`SELECT id, agent, started_at, ended_at, status, summary, metadata
43
+ FROM runs
44
+ WHERE agent = 'cycle-scanner'
45
+ ORDER BY started_at DESC`)
46
+ .all();
47
+ const cycles = rows.map((row) => {
48
+ const meta = JSON.parse(row.metadata || "{}");
49
+ return {
50
+ id: row.id,
51
+ cycle: meta.cycle ?? 0,
52
+ name: meta.name ?? "",
53
+ description: meta.description ?? "",
54
+ startedAt: row.started_at,
55
+ endedAt: row.ended_at ?? null,
56
+ status: row.status,
57
+ rounds: meta.rounds ?? 0,
58
+ totalNewIssues: meta.totalNewIssues ?? 0,
59
+ existingIssues: meta.existingIssues ?? 0,
60
+ finalLoss: meta.finalLoss ?? 0,
61
+ converged: meta.converged ?? false,
62
+ };
63
+ });
64
+ return { cycles };
65
+ }).pipe(Effect.catchAll((e) => Effect.fail(new InternalError({ message: String(e) })))))
66
+ .handle("getCycle", ({ path }) => Effect.gen(function* () {
67
+ const db = yield* SqliteClient;
68
+ // Get the cycle run
69
+ const runRow = db
70
+ .prepare(`SELECT id, agent, started_at, ended_at, status, summary, metadata
71
+ FROM runs WHERE id = ?`)
72
+ .get(path.id);
73
+ if (!runRow) {
74
+ return yield* Effect.fail(new InternalError({ message: `Cycle run not found: ${path.id}` }));
75
+ }
76
+ const meta = JSON.parse(runRow.metadata || "{}");
77
+ const cycle = {
78
+ id: runRow.id,
79
+ cycle: meta.cycle ?? 0,
80
+ name: meta.name ?? "",
81
+ description: meta.description ?? "",
82
+ startedAt: runRow.started_at,
83
+ endedAt: runRow.ended_at ?? null,
84
+ status: runRow.status,
85
+ rounds: meta.rounds ?? 0,
86
+ totalNewIssues: meta.totalNewIssues ?? 0,
87
+ existingIssues: meta.existingIssues ?? 0,
88
+ finalLoss: meta.finalLoss ?? 0,
89
+ converged: meta.converged ?? false,
90
+ };
91
+ // Get round metrics from events table
92
+ const eventRows = db
93
+ .prepare(`SELECT metadata FROM events
94
+ WHERE run_id = ? AND event_type = 'metric' AND content = 'cycle.round.loss'
95
+ ORDER BY timestamp ASC`)
96
+ .all(path.id);
97
+ const roundMetrics = eventRows.map((row) => {
98
+ const m = JSON.parse(row.metadata || "{}");
99
+ return {
100
+ cycle: m.cycle ?? 0,
101
+ round: m.round ?? 0,
102
+ loss: m.loss ?? 0,
103
+ newIssues: m.newIssues ?? 0,
104
+ existingIssues: m.existingIssues ?? 0,
105
+ duplicates: m.duplicates ?? 0,
106
+ high: m.high ?? 0,
107
+ medium: m.medium ?? 0,
108
+ low: m.low ?? 0,
109
+ };
110
+ });
111
+ // Get issues (tasks) created by this cycle
112
+ const issueRows = db
113
+ .prepare(`SELECT id, title, description, metadata FROM tasks
114
+ WHERE json_extract(metadata, '$.foundByScan') = 1
115
+ AND json_extract(metadata, '$.cycleId') = ?
116
+ ORDER BY json_extract(metadata, '$.round') ASC,
117
+ CASE json_extract(metadata, '$.severity')
118
+ WHEN 'high' THEN 0 WHEN 'medium' THEN 1 WHEN 'low' THEN 2 ELSE 3
119
+ END ASC`)
120
+ .all(path.id);
121
+ const issues = issueRows.map((row) => {
122
+ const m = JSON.parse(row.metadata || "{}");
123
+ return {
124
+ id: row.id,
125
+ title: row.title,
126
+ description: row.description,
127
+ severity: m.severity ?? "low",
128
+ issueType: m.issueType ?? "",
129
+ file: m.file ?? "",
130
+ line: m.line ?? 0,
131
+ cycle: m.cycle ?? 0,
132
+ round: m.round ?? 0,
133
+ };
134
+ });
135
+ return { cycle, roundMetrics, issues };
136
+ }).pipe(Effect.catchAll((e) => Effect.fail(new InternalError({ message: String(e) })))))
137
+ .handle("deleteIssues", ({ payload }) => Effect.gen(function* () {
138
+ const db = yield* SqliteClient;
139
+ const { issueIds } = payload;
140
+ if (issueIds.length === 0) {
141
+ return { success: true, deletedCount: 0 };
142
+ }
143
+ // Delete tasks by ID (issues are stored as tasks)
144
+ const placeholders = issueIds.map(() => "?").join(",");
145
+ const result = db
146
+ .prepare(`DELETE FROM tasks WHERE id IN (${placeholders})`)
147
+ .run(...issueIds);
148
+ return {
149
+ success: true,
150
+ deletedCount: result.changes,
151
+ };
152
+ }).pipe(Effect.catchAll((e) => Effect.fail(new InternalError({ message: String(e) }))))));
153
+ //# sourceMappingURL=cycles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cycles.js","sourceRoot":"","sources":["../../src/routes/cycles.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * Doc Route Handlers
3
3
  *
4
- * Implements doc endpoint handlers using Effect HttpApiBuilder.
5
- * Manages doc lifecycle, rendering, and linking.
4
+ * Implements docs-as-primitives endpoint handlers (DD-023).
5
+ * YAML-on-disk doc management with DB metadata, linking, and invariant sync.
6
6
  */
7
7
  import { DocService } from "@jamesaphoenix/tx-core";
8
8
  export declare const DocsLive: import("effect/Layer").Layer<import("@effect/platform/HttpApiGroup").ApiGroup<"tx", "docs">, never, DocService>;
@@ -1 +1 @@
1
- {"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../../src/routes/docs.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AA2BnD,eAAO,MAAM,QAAQ,iHA0EpB,CAAA"}
1
+ {"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../../src/routes/docs.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAOnD,eAAO,MAAM,QAAQ,iHA6JpB,CAAA"}
@@ -1,80 +1,142 @@
1
1
  /**
2
2
  * Doc Route Handlers
3
3
  *
4
- * Implements doc endpoint handlers using Effect HttpApiBuilder.
5
- * Manages doc lifecycle, rendering, and linking.
4
+ * Implements docs-as-primitives endpoint handlers (DD-023).
5
+ * YAML-on-disk doc management with DB metadata, linking, and invariant sync.
6
6
  */
7
7
  import { HttpApiBuilder } from "@effect/platform";
8
8
  import { Effect } from "effect";
9
+ import { readFileSync, existsSync } from "node:fs";
9
10
  import { DocService } from "@jamesaphoenix/tx-core";
10
- import { assertDocKind, assertDocStatus, assertDocLinkType } from "@jamesaphoenix/tx-types";
11
11
  import { TxApi, mapCoreError } from "../api.js";
12
12
  // -----------------------------------------------------------------------------
13
- // Serialization Helper
14
- // -----------------------------------------------------------------------------
15
- const serializeDoc = (doc) => ({
16
- id: doc.id,
17
- kind: doc.kind,
18
- name: doc.name,
19
- title: doc.title,
20
- version: doc.version,
21
- status: doc.status,
22
- filePath: doc.filePath ?? null,
23
- hash: doc.hash,
24
- createdAt: doc.createdAt.toISOString(),
25
- updatedAt: null,
26
- lockedAt: doc.lockedAt?.toISOString() ?? null,
27
- });
28
- // -----------------------------------------------------------------------------
29
13
  // Handler Layer
30
14
  // -----------------------------------------------------------------------------
31
15
  export const DocsLive = HttpApiBuilder.group(TxApi, "docs", (handlers) => handlers
32
16
  .handle("listDocs", ({ urlParams }) => Effect.gen(function* () {
33
- const docService = yield* DocService;
34
- const filter = {};
35
- if (urlParams.kind) {
36
- filter.kind = assertDocKind(urlParams.kind);
37
- }
38
- if (urlParams.status) {
39
- filter.status = assertDocStatus(urlParams.status);
40
- }
41
- const docs = yield* docService.list(filter);
42
- return { docs: docs.map(serializeDoc) };
43
- }).pipe(Effect.mapError(mapCoreError)))
44
- .handle("getDoc", ({ path }) => Effect.gen(function* () {
45
- const docService = yield* DocService;
46
- const doc = yield* docService.get(path.name);
47
- return serializeDoc(doc);
17
+ const svc = yield* DocService;
18
+ const docs = yield* svc.list({
19
+ kind: urlParams.kind,
20
+ status: urlParams.status,
21
+ });
22
+ return {
23
+ docs: docs.map((d) => ({
24
+ id: d.id,
25
+ hash: d.hash,
26
+ kind: d.kind,
27
+ name: d.name,
28
+ title: d.title,
29
+ version: d.version,
30
+ status: d.status,
31
+ filePath: d.filePath,
32
+ parentDocId: d.parentDocId,
33
+ createdAt: d.createdAt.toISOString(),
34
+ lockedAt: d.lockedAt ? d.lockedAt.toISOString() : null,
35
+ })),
36
+ };
48
37
  }).pipe(Effect.mapError(mapCoreError)))
49
38
  .handle("createDoc", ({ payload }) => Effect.gen(function* () {
50
- const docService = yield* DocService;
51
- const doc = yield* docService.create({
39
+ const svc = yield* DocService;
40
+ const doc = yield* svc.create({
52
41
  kind: payload.kind,
53
42
  name: payload.name,
54
43
  title: payload.title,
55
44
  yamlContent: payload.yamlContent,
56
45
  metadata: payload.metadata,
57
46
  });
58
- return serializeDoc(doc);
47
+ return {
48
+ id: doc.id,
49
+ hash: doc.hash,
50
+ kind: doc.kind,
51
+ name: doc.name,
52
+ title: doc.title,
53
+ version: doc.version,
54
+ status: doc.status,
55
+ filePath: doc.filePath,
56
+ parentDocId: doc.parentDocId,
57
+ createdAt: doc.createdAt.toISOString(),
58
+ lockedAt: doc.lockedAt ? doc.lockedAt.toISOString() : null,
59
+ };
59
60
  }).pipe(Effect.mapError(mapCoreError)))
60
- .handle("updateDoc", ({ path, payload }) => Effect.gen(function* () {
61
- const docService = yield* DocService;
62
- const doc = yield* docService.update(path.name, payload.yamlContent);
63
- return serializeDoc(doc);
61
+ .handle("getDoc", ({ path: { name } }) => Effect.gen(function* () {
62
+ const svc = yield* DocService;
63
+ const doc = yield* svc.get(name);
64
+ return {
65
+ id: doc.id,
66
+ hash: doc.hash,
67
+ kind: doc.kind,
68
+ name: doc.name,
69
+ title: doc.title,
70
+ version: doc.version,
71
+ status: doc.status,
72
+ filePath: doc.filePath,
73
+ parentDocId: doc.parentDocId,
74
+ createdAt: doc.createdAt.toISOString(),
75
+ lockedAt: doc.lockedAt ? doc.lockedAt.toISOString() : null,
76
+ };
64
77
  }).pipe(Effect.mapError(mapCoreError)))
65
- .handle("lockDoc", ({ path }) => Effect.gen(function* () {
66
- const docService = yield* DocService;
67
- const doc = yield* docService.lock(path.name);
68
- return serializeDoc(doc);
78
+ .handle("deleteDoc", ({ path: { name } }) => Effect.gen(function* () {
79
+ const svc = yield* DocService;
80
+ yield* svc.remove(name);
81
+ return { success: true, name };
69
82
  }).pipe(Effect.mapError(mapCoreError)))
70
- .handle("linkDoc", ({ path, payload }) => Effect.gen(function* () {
71
- const docService = yield* DocService;
72
- yield* docService.linkDocs(path.name, payload.toName, payload.linkType ? assertDocLinkType(payload.linkType) : undefined);
73
- return { success: true };
83
+ .handle("updateDoc", ({ path: { name }, payload }) => Effect.gen(function* () {
84
+ const svc = yield* DocService;
85
+ const doc = yield* svc.update(name, payload.yamlContent);
86
+ return {
87
+ id: doc.id,
88
+ hash: doc.hash,
89
+ kind: doc.kind,
90
+ name: doc.name,
91
+ title: doc.title,
92
+ version: doc.version,
93
+ status: doc.status,
94
+ filePath: doc.filePath,
95
+ parentDocId: doc.parentDocId,
96
+ createdAt: doc.createdAt.toISOString(),
97
+ lockedAt: doc.lockedAt ? doc.lockedAt.toISOString() : null,
98
+ };
74
99
  }).pipe(Effect.mapError(mapCoreError)))
75
- .handle("renderDoc", ({ path }) => Effect.gen(function* () {
76
- const docService = yield* DocService;
77
- const rendered = yield* docService.render(path.name);
100
+ .handle("lockDoc", ({ path: { name } }) => Effect.gen(function* () {
101
+ const svc = yield* DocService;
102
+ const doc = yield* svc.lock(name);
103
+ return {
104
+ id: doc.id,
105
+ hash: doc.hash,
106
+ kind: doc.kind,
107
+ name: doc.name,
108
+ title: doc.title,
109
+ version: doc.version,
110
+ status: doc.status,
111
+ filePath: doc.filePath,
112
+ parentDocId: doc.parentDocId,
113
+ createdAt: doc.createdAt.toISOString(),
114
+ lockedAt: doc.lockedAt ? doc.lockedAt.toISOString() : null,
115
+ };
116
+ }).pipe(Effect.mapError(mapCoreError)))
117
+ .handle("linkDocs", ({ payload }) => Effect.gen(function* () {
118
+ const svc = yield* DocService;
119
+ const link = yield* svc.linkDocs(payload.fromName, payload.toName, payload.linkType);
120
+ return {
121
+ id: link.id,
122
+ fromDocId: link.fromDocId,
123
+ toDocId: link.toDocId,
124
+ linkType: link.linkType,
125
+ createdAt: link.createdAt.toISOString(),
126
+ };
127
+ }).pipe(Effect.mapError(mapCoreError)))
128
+ .handle("renderDocs", ({ payload }) => Effect.gen(function* () {
129
+ const svc = yield* DocService;
130
+ const paths = yield* svc.render(payload.name ?? undefined);
131
+ const rendered = paths.map((p) => {
132
+ if (existsSync(p))
133
+ return readFileSync(p, "utf8");
134
+ return "";
135
+ });
78
136
  return { rendered };
137
+ }).pipe(Effect.mapError(mapCoreError)))
138
+ .handle("getDocGraph", () => Effect.gen(function* () {
139
+ const svc = yield* DocService;
140
+ return yield* svc.getDocGraph();
79
141
  }).pipe(Effect.mapError(mapCoreError))));
80
142
  //# sourceMappingURL=docs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"docs.js","sourceRoot":"","sources":["../../src/routes/docs.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAEnD,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3F,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAE/C,gFAAgF;AAChF,uBAAuB;AACvB,gFAAgF;AAEhF,MAAM,YAAY,GAAG,CAAC,GAAQ,EAAE,EAAE,CAAC,CAAC;IAClC,EAAE,EAAE,GAAG,CAAC,EAAE;IACV,IAAI,EAAE,GAAG,CAAC,IAAI;IACd,IAAI,EAAE,GAAG,CAAC,IAAI;IACd,KAAK,EAAE,GAAG,CAAC,KAAK;IAChB,OAAO,EAAE,GAAG,CAAC,OAAO;IACpB,MAAM,EAAE,GAAG,CAAC,MAAM;IAClB,QAAQ,EAAE,GAAG,CAAC,QAAQ,IAAI,IAAI;IAC9B,IAAI,EAAE,GAAG,CAAC,IAAI;IACd,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE;IACtC,SAAS,EAAE,IAAqB;IAChC,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,IAAI;CAC9C,CAAC,CAAA;AAEF,gFAAgF;AAChF,gBAAgB;AAChB,gFAAgF;AAEhF,MAAM,CAAC,MAAM,QAAQ,GAAG,cAAc,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CACvE,QAAQ;KACL,MAAM,CAAC,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CACpC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,UAAU,CAAA;IACpC,MAAM,MAAM,GAA6F,EAAE,CAAA;IAC3G,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;QACnB,MAAM,CAAC,IAAI,GAAG,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;IAC7C,CAAC;IACD,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;QACrB,MAAM,CAAC,MAAM,GAAG,eAAe,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;IACnD,CAAC;IACD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAC3C,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAA;AACzC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CACvC;KAEA,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAC7B,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,UAAU,CAAA;IACpC,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC5C,OAAO,YAAY,CAAC,GAAG,CAAC,CAAA;AAC1B,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CACvC;KAEA,MAAM,CAAC,WAAW,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CACnC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,UAAU,CAAA;IACpC,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC;QACnC,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,QAAQ,EAAE,OAAO,CAAC,QAAQ;KAC3B,CAAC,CAAA;IACF,OAAO,YAAY,CAAC,GAAG,CAAC,CAAA;AAC1B,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CACvC;KAEA,MAAM,CAAC,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CACzC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,UAAU,CAAA;IACpC,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,CAAA;IACpE,OAAO,YAAY,CAAC,GAAG,CAAC,CAAA;AAC1B,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CACvC;KAEA,MAAM,CAAC,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAC9B,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,UAAU,CAAA;IACpC,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC7C,OAAO,YAAY,CAAC,GAAG,CAAC,CAAA;AAC1B,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CACvC;KAEA,MAAM,CAAC,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CACvC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,UAAU,CAAA;IACpC,KAAK,CAAC,CAAC,UAAU,CAAC,QAAQ,CACxB,IAAI,CAAC,IAAI,EACT,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CACnE,CAAA;IACD,OAAO,EAAE,OAAO,EAAE,IAAa,EAAE,CAAA;AACnC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CACvC;KAEA,MAAM,CAAC,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAChC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,UAAU,CAAA;IACpC,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACpD,OAAO,EAAE,QAAQ,EAAE,CAAA;AACrB,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CACvC,CACJ,CAAA"}
1
+ {"version":3,"file":"docs.js","sourceRoot":"","sources":["../../src/routes/docs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Message Route Handlers
3
+ *
4
+ * Implements agent outbox messaging endpoint handlers (PRD-024).
5
+ * Channel-based messaging with cursor support for fan-out.
6
+ */
7
+ import { MessageService } from "@jamesaphoenix/tx-core";
8
+ export declare const MessagesLive: import("effect/Layer").Layer<import("@effect/platform/HttpApiGroup").ApiGroup<"tx", "messages">, never, MessageService>;
9
+ //# sourceMappingURL=messages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/routes/messages.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAQvD,eAAO,MAAM,YAAY,yHAsExB,CAAA"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Message Route Handlers
3
+ *
4
+ * Implements agent outbox messaging endpoint handlers (PRD-024).
5
+ * Channel-based messaging with cursor support for fan-out.
6
+ */
7
+ import { HttpApiBuilder } from "@effect/platform";
8
+ import { Effect } from "effect";
9
+ import { MessageService } from "@jamesaphoenix/tx-core";
10
+ import { serializeMessage } from "@jamesaphoenix/tx-types";
11
+ import { TxApi, mapCoreError } from "../api.js";
12
+ // -----------------------------------------------------------------------------
13
+ // Handler Layer
14
+ // -----------------------------------------------------------------------------
15
+ export const MessagesLive = HttpApiBuilder.group(TxApi, "messages", (handlers) => handlers
16
+ .handle("sendMessage", ({ payload }) => Effect.gen(function* () {
17
+ const svc = yield* MessageService;
18
+ const message = yield* svc.send({
19
+ channel: payload.channel,
20
+ sender: payload.sender ?? "api",
21
+ content: payload.content,
22
+ correlationId: payload.correlationId ?? null,
23
+ taskId: payload.taskId ?? null,
24
+ metadata: payload.metadata,
25
+ ttlSeconds: payload.ttlSeconds,
26
+ });
27
+ return serializeMessage(message);
28
+ }).pipe(Effect.mapError(mapCoreError)))
29
+ .handle("inbox", ({ path: { channel }, urlParams }) => Effect.gen(function* () {
30
+ const svc = yield* MessageService;
31
+ const messages = yield* svc.inbox({
32
+ channel,
33
+ afterId: urlParams.afterId,
34
+ limit: urlParams.limit,
35
+ sender: urlParams.sender,
36
+ correlationId: urlParams.correlationId,
37
+ includeAcked: urlParams.includeAcked === "true",
38
+ });
39
+ return {
40
+ messages: messages.map(serializeMessage),
41
+ channel,
42
+ count: messages.length,
43
+ };
44
+ }).pipe(Effect.mapError(mapCoreError)))
45
+ .handle("ackMessage", ({ path: { id } }) => Effect.gen(function* () {
46
+ const svc = yield* MessageService;
47
+ const message = yield* svc.ack(id);
48
+ return { message: serializeMessage(message) };
49
+ }).pipe(Effect.mapError(mapCoreError)))
50
+ .handle("ackAllMessages", ({ path: { channel } }) => Effect.gen(function* () {
51
+ const svc = yield* MessageService;
52
+ const count = yield* svc.ackAll(channel);
53
+ return { channel, ackedCount: count };
54
+ }).pipe(Effect.mapError(mapCoreError)))
55
+ .handle("pendingCount", ({ path: { channel } }) => Effect.gen(function* () {
56
+ const svc = yield* MessageService;
57
+ const count = yield* svc.pending(channel);
58
+ return { channel, count };
59
+ }).pipe(Effect.mapError(mapCoreError)))
60
+ .handle("gcMessages", ({ payload }) => Effect.gen(function* () {
61
+ const svc = yield* MessageService;
62
+ const result = yield* svc.gc({
63
+ ackedOlderThanHours: payload.ackedOlderThanHours,
64
+ });
65
+ return { expired: result.expired, acked: result.acked };
66
+ }).pipe(Effect.mapError(mapCoreError))));
67
+ //# sourceMappingURL=messages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/routes/messages.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"runs.d.ts","sourceRoot":"","sources":["../../src/routes/runs.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AA+BtD,eAAO,MAAM,QAAQ,oHA0NpB,CAAA"}
1
+ {"version":3,"file":"runs.d.ts","sourceRoot":"","sources":["../../src/routes/runs.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AA+BtD,eAAO,MAAM,QAAQ,oHAuNpB,CAAA"}
@@ -38,10 +38,7 @@ export const RunsLive = HttpApiBuilder.group(TxApi, "runs", (handlers) => handle
38
38
  allRuns = yield* runRepo.findByStatus(urlParams.status);
39
39
  }
40
40
  else {
41
- // TODO: Push agent/multi-status filtering down to the repository layer
42
- // to avoid loading excessive runs into memory for in-JS filtering.
43
- // Using a high limit to reduce silent data loss from in-memory filtering.
44
- allRuns = yield* runRepo.findRecent(10_000);
41
+ allRuns = yield* runRepo.findRecent(1000);
45
42
  }
46
43
  // Apply additional filters in memory
47
44
  let filtered = [...allRuns];
@@ -1 +1 @@
1
- {"version":3,"file":"runs.js","sourceRoot":"","sources":["../../src/routes/runs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runs.js","sourceRoot":"","sources":["../../src/routes/runs.ts"],"names":[],"mappings":"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"}
@@ -17,7 +17,7 @@ export declare const makeServerLive: (options: {
17
17
  port?: number;
18
18
  dbPath?: string;
19
19
  hostname?: string;
20
- }) => Layer.Layer<never, import("@jamesaphoenix/tx-core").DatabaseError | import("@jamesaphoenix/tx-core").LlmUnavailableError | import("@jamesaphoenix/tx-core").AgentError | import("@effect/platform/HttpServerError").ServeError, never>;
20
+ }) => Layer.Layer<never, boolean | import("@jamesaphoenix/tx-core").DatabaseError | import("@jamesaphoenix/tx-core").EmbeddingUnavailableError | import("@jamesaphoenix/tx-core").LlmUnavailableError | import("@effect/platform/HttpServerError").ServeError, never>;
21
21
  /**
22
22
  * Parse command line arguments and launch the server.
23
23
  * Exported for use by the CLI entry point.
@@ -1 +1 @@
1
- {"version":3,"file":"server-lib.d.ts","sourceRoot":"","sources":["../src/server-lib.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAwC9B;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAI,SAAS;IACtC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,2OAeA,CAAA;AAiCD;;;GAGG;AACH,eAAO,MAAM,IAAI,QAAO,IA0CvB,CAAA"}
1
+ {"version":3,"file":"server-lib.d.ts","sourceRoot":"","sources":["../src/server-lib.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAsC9B;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAI,SAAS;IACtC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,oQAgBA,CAAA;AAiCD;;;GAGG;AACH,eAAO,MAAM,IAAI,QAAO,IA0CvB,CAAA"}
@@ -10,16 +10,15 @@ import { HttpApiBuilder } from "@effect/platform";
10
10
  import { NodeHttpServer, NodeRuntime } from "@effect/platform-node";
11
11
  import { Layer } from "effect";
12
12
  import { createServer } from "node:http";
13
- import { makeAppLayer } from "@jamesaphoenix/tx-core";
13
+ import { makeAppLayer, LlmServiceNoop } from "@jamesaphoenix/tx-core";
14
14
  import { TasksLive } from "./routes/tasks.js";
15
15
  import { HealthLive } from "./routes/health.js";
16
16
  import { LearningsLive } from "./routes/learnings.js";
17
17
  import { RunsLive } from "./routes/runs.js";
18
18
  import { SyncLive } from "./routes/sync.js";
19
+ import { MessagesLive } from "./routes/messages.js";
20
+ import { CyclesLive } from "./routes/cycles.js";
19
21
  import { DocsLive } from "./routes/docs.js";
20
- import { ClaimsLive } from "./routes/claims.js";
21
- import { AttemptsLive } from "./routes/attempts.js";
22
- import { InvariantsLive } from "./routes/invariants.js";
23
22
  import { TxApi } from "./api.js";
24
23
  import { authMiddleware, isAuthEnabled } from "./middleware/auth.js";
25
24
  import { bodyLimitMiddleware } from "./middleware/body-limit.js";
@@ -30,7 +29,7 @@ import { getCorsConfig } from "./middleware/cors.js";
30
29
  /**
31
30
  * Combines all route handler groups into the full API implementation.
32
31
  */
33
- const ApiLive = HttpApiBuilder.api(TxApi).pipe(Layer.provide(TasksLive), Layer.provide(HealthLive), Layer.provide(LearningsLive), Layer.provide(RunsLive), Layer.provide(SyncLive), Layer.provide(DocsLive), Layer.provide(ClaimsLive), Layer.provide(AttemptsLive), Layer.provide(InvariantsLive));
32
+ const ApiLive = HttpApiBuilder.api(TxApi).pipe(Layer.provide(TasksLive), Layer.provide(HealthLive), Layer.provide(LearningsLive), Layer.provide(RunsLive), Layer.provide(SyncLive), Layer.provide(MessagesLive), Layer.provide(CyclesLive), Layer.provide(DocsLive));
34
33
  // -----------------------------------------------------------------------------
35
34
  // Server Layer Factory
36
35
  // -----------------------------------------------------------------------------
@@ -45,7 +44,7 @@ export const makeServerLive = (options) => {
45
44
  const host = options.hostname ?? process.env.TX_API_HOST ?? "127.0.0.1";
46
45
  const dbPath = options.dbPath ?? process.env.TX_DB_PATH ?? ".tx/tasks.db";
47
46
  const appLayer = makeAppLayer(dbPath);
48
- return HttpApiBuilder.serve().pipe(Layer.provide(HttpApiBuilder.middleware(bodyLimitMiddleware)), Layer.provide(HttpApiBuilder.middlewareCors(getCorsConfig())), Layer.provide(HttpApiBuilder.middleware(authMiddleware)), Layer.provide(ApiLive), Layer.provide(appLayer), Layer.provide(NodeHttpServer.layer(() => createServer(), { port, host })));
47
+ return HttpApiBuilder.serve().pipe(Layer.provide(HttpApiBuilder.middleware(bodyLimitMiddleware)), Layer.provide(HttpApiBuilder.middlewareCors(getCorsConfig())), Layer.provide(HttpApiBuilder.middleware(authMiddleware)), Layer.provide(ApiLive), Layer.provide(appLayer), Layer.provide(LlmServiceNoop), Layer.provide(NodeHttpServer.layer(() => createServer(), { port, host })));
49
48
  };
50
49
  // -----------------------------------------------------------------------------
51
50
  // CLI Support