@davidjinguoxu/agentcore 0.4.2 → 0.4.4

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 (163) hide show
  1. package/README.md +85 -127
  2. package/dist/config/agentcore-constants.d.ts +21 -0
  3. package/dist/config/agentcore-constants.d.ts.map +1 -0
  4. package/dist/config/agentcore-constants.js +68 -0
  5. package/dist/config/agentcore-constants.js.map +1 -0
  6. package/dist/domain/bronze/questions.d.ts +3 -0
  7. package/dist/domain/bronze/questions.d.ts.map +1 -0
  8. package/dist/domain/bronze/questions.js +60 -0
  9. package/dist/domain/bronze/questions.js.map +1 -0
  10. package/dist/domain/bronze/run-manager.d.ts +14 -0
  11. package/dist/domain/bronze/run-manager.d.ts.map +1 -0
  12. package/dist/domain/bronze/run-manager.js +25 -0
  13. package/dist/domain/bronze/run-manager.js.map +1 -0
  14. package/dist/domain/bronze/task-event-index.d.ts +31 -0
  15. package/dist/domain/bronze/task-event-index.d.ts.map +1 -0
  16. package/dist/domain/bronze/task-event-index.js +117 -0
  17. package/dist/domain/bronze/task-event-index.js.map +1 -0
  18. package/dist/domain/bronze/tasks.d.ts +3 -0
  19. package/dist/domain/bronze/tasks.d.ts.map +1 -0
  20. package/dist/domain/bronze/tasks.js +112 -0
  21. package/dist/domain/bronze/tasks.js.map +1 -0
  22. package/dist/domain/context/warm-start-builders.d.ts +18 -0
  23. package/dist/domain/context/warm-start-builders.d.ts.map +1 -0
  24. package/dist/domain/context/warm-start-builders.js +157 -0
  25. package/dist/domain/context/warm-start-builders.js.map +1 -0
  26. package/dist/domain/context/warm-start-extractors.d.ts +37 -0
  27. package/dist/domain/context/warm-start-extractors.d.ts.map +1 -0
  28. package/dist/domain/context/warm-start-extractors.js +372 -0
  29. package/dist/domain/context/warm-start-extractors.js.map +1 -0
  30. package/dist/domain/context/warm-start.d.ts +17 -0
  31. package/dist/domain/context/warm-start.d.ts.map +1 -0
  32. package/dist/domain/context/warm-start.js +225 -0
  33. package/dist/domain/context/warm-start.js.map +1 -0
  34. package/dist/domain/gold/gold-store.d.ts +11 -0
  35. package/dist/domain/gold/gold-store.d.ts.map +1 -0
  36. package/dist/domain/gold/gold-store.js +210 -0
  37. package/dist/domain/gold/gold-store.js.map +1 -0
  38. package/dist/domain/run-manager.js +0 -0
  39. package/dist/domain/virtual-office/inbox.d.ts +14 -0
  40. package/dist/domain/virtual-office/inbox.d.ts.map +1 -0
  41. package/dist/domain/virtual-office/inbox.js +138 -0
  42. package/dist/domain/virtual-office/inbox.js.map +1 -0
  43. package/dist/domain/virtual-office/office-status.d.ts +31 -0
  44. package/dist/domain/virtual-office/office-status.d.ts.map +1 -0
  45. package/dist/domain/virtual-office/office-status.js +138 -0
  46. package/dist/domain/virtual-office/office-status.js.map +1 -0
  47. package/dist/index.d.ts +3 -3
  48. package/dist/index.d.ts.map +1 -1
  49. package/dist/index.js +3 -3
  50. package/dist/index.js.map +1 -1
  51. package/dist/models/bronze.d.ts +39 -0
  52. package/dist/models/bronze.d.ts.map +1 -0
  53. package/dist/models/bronze.js +4 -0
  54. package/dist/models/bronze.js.map +1 -0
  55. package/dist/models/gold.d.ts +43 -0
  56. package/dist/models/gold.d.ts.map +1 -0
  57. package/dist/models/gold.js +4 -0
  58. package/dist/models/gold.js.map +1 -0
  59. package/dist/models/index.d.ts +6 -0
  60. package/dist/models/index.d.ts.map +1 -0
  61. package/dist/models/index.js +8 -0
  62. package/dist/models/index.js.map +1 -0
  63. package/dist/models/questions.d.ts +24 -0
  64. package/dist/models/questions.d.ts.map +1 -0
  65. package/dist/models/questions.js +3 -0
  66. package/dist/models/questions.js.map +1 -0
  67. package/dist/models/silver.d.ts +26 -0
  68. package/dist/models/silver.d.ts.map +1 -0
  69. package/dist/models/silver.js +4 -0
  70. package/dist/models/silver.js.map +1 -0
  71. package/dist/models/tasks.d.ts +56 -0
  72. package/dist/models/tasks.d.ts.map +1 -0
  73. package/dist/models/tasks.js +3 -0
  74. package/dist/models/tasks.js.map +1 -0
  75. package/dist/search/azure-search-client.d.ts.map +0 -0
  76. package/dist/search/deep-search.js +0 -0
  77. package/dist/search/embeddable.d.ts +19 -0
  78. package/dist/search/embeddable.d.ts.map +1 -0
  79. package/dist/search/embeddable.js +106 -0
  80. package/dist/search/embeddable.js.map +1 -0
  81. package/dist/search/search.d.ts +1 -1
  82. package/dist/search/search.d.ts.map +1 -1
  83. package/dist/server/mcp-slim-ack.d.ts +12 -0
  84. package/dist/server/mcp-slim-ack.d.ts.map +1 -0
  85. package/dist/server/mcp-slim-ack.js +16 -0
  86. package/dist/server/mcp-slim-ack.js.map +1 -0
  87. package/dist/server/server.d.ts +3 -0
  88. package/dist/server/server.d.ts.map +1 -0
  89. package/dist/server/server.js +48 -0
  90. package/dist/server/server.js.map +1 -0
  91. package/dist/server/tools.d.ts +3 -0
  92. package/dist/server/tools.d.ts.map +1 -0
  93. package/dist/server/tools.js +413 -0
  94. package/dist/server/tools.js.map +1 -0
  95. package/dist/server.js +3 -0
  96. package/dist/server.js.map +1 -1
  97. package/dist/skills/index.js +1 -1
  98. package/dist/skills/index.js.map +1 -1
  99. package/dist/skills/insights.d.ts +3 -0
  100. package/dist/skills/insights.d.ts.map +1 -0
  101. package/dist/skills/insights.js +78 -0
  102. package/dist/skills/insights.js.map +1 -0
  103. package/dist/skills/knowledge.js +1 -1
  104. package/dist/skills/knowledge.js.map +1 -1
  105. package/dist/skills/task-workflow.js +2 -2
  106. package/dist/skills/task-workflow.js.map +1 -1
  107. package/dist/storage/backend.d.ts +1 -1
  108. package/dist/storage/backend.d.ts.map +1 -1
  109. package/dist/storage/cosmos-client.js +1 -1
  110. package/dist/storage/cosmos-client.js.map +1 -1
  111. package/dist/storage/lancedb-backend.d.ts +1 -1
  112. package/dist/storage/lancedb-backend.d.ts.map +1 -1
  113. package/dist/storage/schema-init.d.ts +12 -0
  114. package/dist/storage/schema-init.d.ts.map +1 -0
  115. package/dist/storage/schema-init.js +199 -0
  116. package/dist/storage/schema-init.js.map +1 -0
  117. package/dist/storage/store.d.ts +1 -1
  118. package/dist/storage/store.d.ts.map +1 -1
  119. package/dist/storage/store.js +1 -1
  120. package/dist/storage/store.js.map +1 -1
  121. package/dist/storage/task-compaction.d.ts +1 -1
  122. package/dist/storage/task-compaction.d.ts.map +1 -1
  123. package/dist/storage/task-context-snapshot.d.ts +1 -1
  124. package/dist/storage/task-context-snapshot.d.ts.map +1 -1
  125. package/dist/storage/trigger-engine.d.ts +1 -1
  126. package/dist/storage/trigger-engine.d.ts.map +1 -1
  127. package/dist/storage/trigger-engine.js +0 -0
  128. package/dist/tools/context.d.ts +3 -0
  129. package/dist/tools/context.d.ts.map +1 -0
  130. package/dist/tools/context.js +45 -0
  131. package/dist/tools/context.js.map +1 -0
  132. package/dist/tools/gold.d.ts +3 -0
  133. package/dist/tools/gold.d.ts.map +1 -0
  134. package/dist/tools/gold.js +136 -0
  135. package/dist/tools/gold.js.map +1 -0
  136. package/dist/tools/index.d.ts +3 -0
  137. package/dist/tools/index.d.ts.map +1 -0
  138. package/dist/tools/index.js +15 -0
  139. package/dist/tools/index.js.map +1 -0
  140. package/dist/tools/memory.d.ts +3 -0
  141. package/dist/tools/memory.d.ts.map +1 -0
  142. package/dist/tools/memory.js +187 -0
  143. package/dist/tools/memory.js.map +1 -0
  144. package/dist/tools/tasks.d.ts +3 -0
  145. package/dist/tools/tasks.d.ts.map +1 -0
  146. package/dist/tools/tasks.js +86 -0
  147. package/dist/tools/tasks.js.map +1 -0
  148. package/dist/transport/client.js +1 -1
  149. package/dist/transport/client.js.map +1 -1
  150. package/dist/transport/http-server.d.ts.map +1 -1
  151. package/dist/transport/http-server.js +12 -13
  152. package/dist/transport/http-server.js.map +1 -1
  153. package/dist/types.d.ts +1 -184
  154. package/dist/types.d.ts.map +1 -1
  155. package/dist/types.js +4 -2
  156. package/dist/types.js.map +1 -1
  157. package/dist/utils/mcp-slim-ack.d.ts +12 -0
  158. package/dist/utils/mcp-slim-ack.d.ts.map +1 -0
  159. package/dist/utils/mcp-slim-ack.js +16 -0
  160. package/dist/utils/mcp-slim-ack.js.map +1 -0
  161. package/package.json +3 -3
  162. package/scripts/run-server.mjs +1 -1
  163. package/scripts/stdio-only.mjs +4 -22
@@ -0,0 +1,413 @@
1
+ // tools.ts — What can agents do?
2
+ import { z } from "zod";
3
+ import { appendEvent, getBronzeDir } from "../storage/store.js";
4
+ import { searchEvents } from "../search/search.js";
5
+ import { getTasks } from "../domain/bronze/tasks.js";
6
+ import { deepSearch } from "../search/deep-search.js";
7
+ import { upsertEntity, queryEntities, getGoldDir, getLinkedEntities, } from "../domain/gold/gold-store.js";
8
+ import { getQuestions } from "../domain/bronze/questions.js";
9
+ import { buildWarmStartPreamble } from "../domain/context/warm-start.js";
10
+ import { registerSkills } from "../skills/index.js";
11
+ import { bronzeWriteAck, goldUpsertAck } from "./mcp-slim-ack.js";
12
+ function toTextResult(text, structuredContent) {
13
+ return {
14
+ content: [{ type: "text", text }],
15
+ ...(structuredContent !== undefined
16
+ ? { structuredContent: structuredContent }
17
+ : {}),
18
+ };
19
+ }
20
+ export function registerTools(server) {
21
+ // ─── log_event ─────────────────────────────────────────────
22
+ server.tool("log_event", "Append a raw event to the Bronze layer in Azure Cosmos DB.", {
23
+ source: z.string().min(1),
24
+ type: z.string().min(1),
25
+ content: z.string().min(1),
26
+ project: z.string().min(1).optional(),
27
+ context: z.record(z.string(), z.unknown()).optional(),
28
+ }, {
29
+ readOnlyHint: false,
30
+ destructiveHint: true,
31
+ idempotentHint: false,
32
+ openWorldHint: true,
33
+ }, async ({ source, type, content, project, context }) => {
34
+ const logged = await appendEvent({
35
+ source,
36
+ type,
37
+ content,
38
+ project,
39
+ context,
40
+ });
41
+ return toTextResult(`Logged ${type} from ${source} to ${logged.filePath}`, bronzeWriteAck(logged.record));
42
+ });
43
+ // ─── search ───────────────────────────────────────────────
44
+ server.tool("search", "Search collected Bronze events using case-insensitive full-text matching.", {
45
+ query: z.string().min(1),
46
+ max_results: z.number().int().min(1).max(100).optional(),
47
+ source: z.string().optional().describe("Filter by source"),
48
+ type: z.string().optional().describe("Filter by event type"),
49
+ }, {
50
+ readOnlyHint: true,
51
+ destructiveHint: false,
52
+ idempotentHint: true,
53
+ openWorldHint: true,
54
+ }, async ({ query, max_results: maxResults, source, type }) => {
55
+ const result = await searchEvents({ query, maxResults, source, type });
56
+ if (result.results.length === 0) {
57
+ const filters = [source && `source=${source}`, type && `type=${type}`]
58
+ .filter(Boolean)
59
+ .join(", ");
60
+ const filterNote = filters ? ` (filters: ${filters})` : "";
61
+ return toTextResult(`No events matched "${query}"${filterNote} in ${result.bronzeDir}`, result);
62
+ }
63
+ const summary = result.results
64
+ .map((match, index) => {
65
+ const timestamp = match.timestamp ?? "?";
66
+ const src = match.source ?? "?";
67
+ const typ = match.type ?? "?";
68
+ return `${index + 1}. [${src}/${typ}] ${timestamp} ${match.snippet}`;
69
+ })
70
+ .join("\n");
71
+ return toTextResult(`Found ${result.results.length} match(es) for "${query}" in ${getBronzeDir()}\n${summary}`, result);
72
+ });
73
+ // ─── get_tasks ─────────────────────────────────────────────
74
+ server.tool("get_tasks", "Query task board from Bronze events.", {
75
+ status: z
76
+ .enum(["active", "completed", "failed", "rework", "all"])
77
+ .optional(),
78
+ assigned_to: z.string().optional(),
79
+ task_type: z.string().optional(),
80
+ task_id: z.string().optional(),
81
+ limit: z.number().int().min(1).max(50).optional(),
82
+ }, {
83
+ readOnlyHint: true,
84
+ destructiveHint: false,
85
+ idempotentHint: true,
86
+ openWorldHint: true,
87
+ }, async ({ status, assigned_to, task_type, task_id, limit }) => {
88
+ const result = await getTasks({
89
+ status,
90
+ assigned_to,
91
+ task_type,
92
+ task_id,
93
+ limit,
94
+ });
95
+ if (result.mode === "history") {
96
+ const { events, totalEvents } = result;
97
+ if (events.length === 0) {
98
+ return toTextResult(`No task events found for task_id "${task_id}"`, result);
99
+ }
100
+ const timeline = events
101
+ .map((ev, i) => {
102
+ const ts = ev.timestamp ?? "?";
103
+ const src = ev.source ?? "?";
104
+ return `${i + 1}. [${ev.type}] ${ts} by ${src}\n ${ev.content}`;
105
+ })
106
+ .join("\n\n");
107
+ const created = events[0];
108
+ const ctx = created.context ?? {};
109
+ const contextSummary = [
110
+ ctx.problem && `Problem: ${ctx.problem}`,
111
+ ctx.impact && `Impact: ${ctx.impact}`,
112
+ ctx.project && `Project: ${ctx.project}`,
113
+ ctx.assigned_to && `Assigned to: ${ctx.assigned_to}`,
114
+ ]
115
+ .filter(Boolean)
116
+ .join("\n");
117
+ return toTextResult(`Task ${task_id} — ${totalEvents} events\n\n` +
118
+ (contextSummary ? `--- Context ---\n${contextSummary}\n\n` : "") +
119
+ `--- Timeline ---\n${timeline}`, result);
120
+ }
121
+ // Board mode
122
+ const { tasks, total_tasks } = result;
123
+ if (tasks.length === 0) {
124
+ return toTextResult(`No ${status ?? "active"} tasks found`, result);
125
+ }
126
+ const board = tasks
127
+ .map((t) => {
128
+ const parts = [
129
+ `[${t.task_id}] ${t.status.toUpperCase()}`,
130
+ t.assigned_to ? `→ ${t.assigned_to}` : "→ unassigned",
131
+ t.task_type ? `(${t.task_type})` : "",
132
+ ];
133
+ const header = parts.filter(Boolean).join(" ");
134
+ const lines = [header];
135
+ if (t.summary)
136
+ lines.push(` Summary: ${t.summary.slice(0, 200)}`);
137
+ if (t.problem)
138
+ lines.push(` Why: ${t.problem}`);
139
+ return lines.join("\n");
140
+ })
141
+ .join("\n\n");
142
+ return toTextResult(`Task Board (${status ?? "active"}) — ${total_tasks} task(s)\n\n${board}`, result);
143
+ });
144
+ // ─── deep_search ─────────────────────────────────────────
145
+ server.tool("deep_search", "Semantic (vector) search over Bronze events — finds by meaning, not keywords. " +
146
+ "Local mode: LanceDB full-text index. Cloud mode: Azure AI Search (set AZURE_SEARCH_ENDPOINT + AZURE_SEARCH_KEY).", {
147
+ query: z.string().min(1).describe("Natural language search query"),
148
+ num_results: z
149
+ .number()
150
+ .int()
151
+ .min(1)
152
+ .max(20)
153
+ .optional()
154
+ .describe("Max results (default 5)"),
155
+ source: z.string().optional().describe("Filter by source"),
156
+ type: z.string().optional().describe("Filter by event type"),
157
+ mode: z
158
+ .enum(["hybrid", "semantic"])
159
+ .optional()
160
+ .describe("'hybrid' (default) = keyword+semantic, 'semantic' = vector only"),
161
+ }, {
162
+ readOnlyHint: true,
163
+ destructiveHint: false,
164
+ idempotentHint: true,
165
+ openWorldHint: true,
166
+ }, async ({ query, num_results: numResults, source, type, mode }) => {
167
+ try {
168
+ const result = await deepSearch({
169
+ query,
170
+ numResults,
171
+ source,
172
+ type,
173
+ mode,
174
+ });
175
+ if (result.results.length === 0) {
176
+ return toTextResult(`No semantic matches for "${query}"`, result);
177
+ }
178
+ const summary = result.results
179
+ .map((r, i) => {
180
+ const ts = r.timestamp ?? "?";
181
+ const src = r.source ?? "?";
182
+ const typ = r.type ?? "?";
183
+ const content = (r.content ?? "").slice(0, 200);
184
+ return `${i + 1}. [${src}/${typ}] ${ts}\n ${content}`;
185
+ })
186
+ .join("\n\n");
187
+ return toTextResult(`Found ${result.totalResults} semantic match(es) for "${query}" (${result.mode} mode)\n\n${summary}`, result);
188
+ }
189
+ catch (error) {
190
+ const msg = error instanceof Error ? error.message : String(error);
191
+ if (msg.includes("DATABRICKS_HOST")) {
192
+ return toTextResult("deep_search not configured. Set DATABRICKS_HOST and DATABRICKS_TOKEN env vars. " +
193
+ "Run Databricks notebooks 01 and 02 first.");
194
+ }
195
+ return toTextResult(`deep_search error: ${msg}`);
196
+ }
197
+ });
198
+ // ─── get_facts ────────────────────────────────────────────
199
+ server.tool("get_facts", "Query Gold entities — structured facts extracted from Bronze events. " +
200
+ 'Answers "what do we know about X?" rather than fuzzy search.', {
201
+ entity_type: z
202
+ .string()
203
+ .optional()
204
+ .describe("Filter by entity type: decision, fact, project, tool"),
205
+ project: z
206
+ .string()
207
+ .optional()
208
+ .describe("Filter by project name (partial match)"),
209
+ tag: z.string().optional().describe("Filter by tag (partial match)"),
210
+ query: z
211
+ .string()
212
+ .optional()
213
+ .describe("Keyword search within entity summaries and data"),
214
+ }, {
215
+ readOnlyHint: true,
216
+ destructiveHint: false,
217
+ idempotentHint: true,
218
+ openWorldHint: false,
219
+ }, async ({ entity_type, project, tag, query }) => {
220
+ const result = await queryEntities({ entity_type, project, tag, query });
221
+ if (result.total === 0) {
222
+ const filters = [
223
+ entity_type && `type=${entity_type}`,
224
+ project && `project=${project}`,
225
+ tag && `tag=${tag}`,
226
+ query && `query="${query}"`,
227
+ ]
228
+ .filter(Boolean)
229
+ .join(", ");
230
+ return toTextResult(`No Gold entities found${filters ? ` (${filters})` : ""} in ${getGoldDir()}`, result);
231
+ }
232
+ const lines = result.entities
233
+ .map((e, i) => {
234
+ const meta = [
235
+ e.project && `project=${e.project}`,
236
+ e.tags?.length && `tags=[${e.tags.join(", ")}]`,
237
+ e.links_to?.length && `links_to=[${e.links_to.join(", ")}]`,
238
+ e.source_events?.length && `sources=${e.source_events.length}`,
239
+ ]
240
+ .filter(Boolean)
241
+ .join(" ");
242
+ return `${i + 1}. [${e.entity_type}] ${e.summary}${meta ? `\n ${meta}` : ""}`;
243
+ })
244
+ .join("\n\n");
245
+ return toTextResult(`Found ${result.total} Gold ${result.total === 1 ? "entity" : "entities"}\n\n${lines}`, result);
246
+ });
247
+ // ─── get_linked ─────────────────────────────────────────────
248
+ server.tool("get_linked", "Traverse the Gold knowledge graph from one entity: outbound links_to targets and inbound linkers (DC-T12).", {
249
+ entity_id: z
250
+ .string()
251
+ .min(1)
252
+ .describe("Gold entity_id (UUID from add_entity / get_facts structured output)"),
253
+ }, {
254
+ readOnlyHint: true,
255
+ destructiveHint: false,
256
+ idempotentHint: true,
257
+ openWorldHint: false,
258
+ }, async ({ entity_id }) => {
259
+ const result = await getLinkedEntities(entity_id);
260
+ if (!result.entity) {
261
+ return toTextResult(`No Gold entity with entity_id=${entity_id}`, result);
262
+ }
263
+ const e = result.entity;
264
+ const outLines = result.links_out.map((x) => ` → [${x.entity_type}] ${x.summary} (${x.entity_id})`);
265
+ const inLines = result.links_in.map((x) => ` ← [${x.entity_type}] ${x.summary} (${x.entity_id})`);
266
+ const text = [
267
+ `[${e.entity_type}] ${e.summary}`,
268
+ `id=${e.entity_id}`,
269
+ result.links_out.length
270
+ ? `Outbound (${result.links_out.length}):\n${outLines.join("\n")}`
271
+ : "Outbound: (none)",
272
+ result.links_in.length
273
+ ? `Inbound (${result.links_in.length}):\n${inLines.join("\n")}`
274
+ : "Inbound: (none)",
275
+ `Total connections: ${result.total_connections}`,
276
+ ].join("\n\n");
277
+ return toTextResult(text, result);
278
+ });
279
+ // ─── add_entity ───────────────────────────────────────────
280
+ server.tool("add_entity", "Create or update a Gold entity (structured fact). " +
281
+ "Upserts by summary+project — same summary in same project updates rather than duplicates.", {
282
+ entity_type: z
283
+ .string()
284
+ .min(1)
285
+ .describe("Entity type: decision, fact, project, tool, or custom"),
286
+ summary: z.string().min(1).describe("One-sentence summary of the entity"),
287
+ project: z.string().optional().describe("Project this entity belongs to"),
288
+ tags: z.array(z.string()).optional().describe("Tags for filtering"),
289
+ links_to: z
290
+ .array(z.string())
291
+ .optional()
292
+ .describe("Other Gold entity_ids this row links to (knowledge graph edges)"),
293
+ source_events: z
294
+ .array(z.string())
295
+ .optional()
296
+ .describe("Bronze event IDs that inform this entity"),
297
+ data: z
298
+ .record(z.string(), z.unknown())
299
+ .optional()
300
+ .describe("Structured entity data"),
301
+ }, {
302
+ readOnlyHint: false,
303
+ destructiveHint: false,
304
+ idempotentHint: true,
305
+ openWorldHint: false,
306
+ }, async ({ entity_type, summary, project, tags, links_to, source_events, data, }) => {
307
+ const result = await upsertEntity({
308
+ entity_type,
309
+ summary,
310
+ project,
311
+ tags,
312
+ links_to,
313
+ source_events,
314
+ data,
315
+ });
316
+ return toTextResult(`${result.action === "created" ? "Created" : "Updated"} Gold entity ${result.entity_id} in ${result.file_path}`, goldUpsertAck(result));
317
+ });
318
+ // ─── get_questions ────────────────────────────────────────
319
+ server.tool("get_questions", "Query async questions between AI agents. " +
320
+ 'Agents post questions via log_event(type="question"), others answer via log_event(type="answer"). ' +
321
+ "Check at session start for pending questions directed to you.", {
322
+ directed_to: z
323
+ .string()
324
+ .optional()
325
+ .describe('Filter by who the question is directed to (e.g. "claude-desktop")'),
326
+ status: z
327
+ .enum(["open", "answered", "all"])
328
+ .optional()
329
+ .describe("Filter by status: open (unanswered), answered, or all. Default: open"),
330
+ task_id: z
331
+ .string()
332
+ .optional()
333
+ .describe("Filter by task_id in question context"),
334
+ limit: z
335
+ .number()
336
+ .optional()
337
+ .describe("Max results to return. Default: 10"),
338
+ }, {
339
+ readOnlyHint: true,
340
+ destructiveHint: false,
341
+ idempotentHint: true,
342
+ openWorldHint: false,
343
+ }, async ({ directed_to, status, task_id, limit }) => {
344
+ const result = await getQuestions({
345
+ directed_to,
346
+ status,
347
+ task_id,
348
+ limit,
349
+ });
350
+ if (result.total === 0) {
351
+ const filters = [
352
+ directed_to && `directed_to=${directed_to}`,
353
+ status && `status=${status}`,
354
+ task_id && `task_id=${task_id}`,
355
+ ]
356
+ .filter(Boolean)
357
+ .join(", ");
358
+ return toTextResult(`No questions found${filters ? ` (${filters})` : ""} in ${result.bronzeDir}`, result);
359
+ }
360
+ const lines = result.questions
361
+ .map((q, i) => {
362
+ const meta = [
363
+ q.asked_by && `from=${q.asked_by}`,
364
+ q.directed_to && `to=${q.directed_to}`,
365
+ q.task_id && `task=${q.task_id}`,
366
+ ]
367
+ .filter(Boolean)
368
+ .join(" ");
369
+ const statusIcon = q.status === "open" ? "❓" : "✅";
370
+ let line = `${i + 1}. ${statusIcon} [${q.thread_id}] ${q.question.slice(0, 200)}`;
371
+ if (meta)
372
+ line += `\n ${meta}`;
373
+ if (q.answer)
374
+ line += `\n → ${q.answer.slice(0, 200)}`;
375
+ return line;
376
+ })
377
+ .join("\n\n");
378
+ return toTextResult(`Found ${result.total} question${result.total === 1 ? "" : "s"}\n\n${lines}`, result);
379
+ });
380
+ // ─── warm_start ──────────────────────────────────────────
381
+ server.tool("warm_start", "Assemble a structured context preamble for a task. " +
382
+ "Returns layered context: identity (L0), task spec (L1), project gotchas (L2), " +
383
+ "knowledge graph links (L3), recent completions (L4), retry context (L5), file manifest (L6). " +
384
+ "Call at session start before working on any task.", {
385
+ task_id: z.string().min(1).describe("Task ID to assemble context for"),
386
+ agent: z
387
+ .string()
388
+ .min(1)
389
+ .describe("Agent identity (e.g. codex, cursor, claude-desktop)"),
390
+ budget_tokens: z
391
+ .number()
392
+ .int()
393
+ .min(1000)
394
+ .max(32000)
395
+ .optional()
396
+ .describe("Max token budget for preamble (default 8000)"),
397
+ }, {
398
+ readOnlyHint: true,
399
+ destructiveHint: false,
400
+ idempotentHint: true,
401
+ openWorldHint: false,
402
+ }, async ({ task_id, agent, budget_tokens }) => {
403
+ const result = await buildWarmStartPreamble({
404
+ task_id,
405
+ agent,
406
+ budget_tokens,
407
+ });
408
+ return toTextResult(result.preamble, result);
409
+ });
410
+ // ─── Higher-level skills (task workflow & knowledge capture) ────────────────
411
+ registerSkills(server);
412
+ }
413
+ //# sourceMappingURL=tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/server/tools.ts"],"names":[],"mappings":"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"}
package/dist/server.js CHANGED
@@ -8,11 +8,14 @@ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"
8
8
  import { registerTools } from "./tools.js";
9
9
  import { startHttpServer } from "./transport/http-server.js";
10
10
  import { getMcpServerPackageVersion } from "./config/datacore-constants.js";
11
+ import { initSchema } from "./storage/schema-init.js";
11
12
  const server = new McpServer({
12
13
  name: "datacore",
13
14
  version: getMcpServerPackageVersion(),
14
15
  });
15
16
  registerTools(server);
17
+ // Ensure all 7 tables exist before accepting any requests
18
+ await initSchema();
16
19
  // Start HTTP first so triggers can POST to /log as soon as MCP connects
17
20
  const httpServer = await startHttpServer();
18
21
  const httpOnly = process.env["DATACORE_STDIO"] === "0" ||
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";AAEA,6CAA6C;AAC7C,8EAA8E;AAC9E,+BAA+B;AAC/B,8EAA8E;AAC9E,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAE5E,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;IAC3B,IAAI,EAAE,UAAU;IAChB,OAAO,EAAE,0BAA0B,EAAE;CACtC,CAAC,CAAC;AAEH,aAAa,CAAC,MAAM,CAAC,CAAC;AAEtB,wEAAwE;AACxE,MAAM,UAAU,GAAG,MAAM,eAAe,EAAE,CAAC;AAE3C,MAAM,QAAQ,GACZ,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK,GAAG;IACrC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,KAAK,GAAG,CAAC;AAE5C,IAAI,QAAQ,EAAE,CAAC;IACb,iDAAiD;IACjD,SAAS,YAAY;QACnB,UAAU,CAAC,KAAK,EAAE,CAAC;QACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IACnC,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;AACtC,CAAC;KAAM,CAAC;IACN,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,oBAAoB,EAAE,CAAC,CAAC;IAEjD,KAAK,UAAU,QAAQ;QACrB,UAAU,CAAC,KAAK,EAAE,CAAC;QACnB,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AAClC,CAAC"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";AAEA,6CAA6C;AAC7C,8EAA8E;AAC9E,+BAA+B;AAC/B,8EAA8E;AAC9E,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;IAC3B,IAAI,EAAE,UAAU;IAChB,OAAO,EAAE,0BAA0B,EAAE;CACtC,CAAC,CAAC;AAEH,aAAa,CAAC,MAAM,CAAC,CAAC;AAEtB,0DAA0D;AAC1D,MAAM,UAAU,EAAE,CAAC;AAEnB,wEAAwE;AACxE,MAAM,UAAU,GAAG,MAAM,eAAe,EAAE,CAAC;AAE3C,MAAM,QAAQ,GACZ,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK,GAAG;IACrC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,KAAK,GAAG,CAAC;AAE5C,IAAI,QAAQ,EAAE,CAAC;IACb,iDAAiD;IACjD,SAAS,YAAY;QACnB,UAAU,CAAC,KAAK,EAAE,CAAC;QACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IACnC,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;AACtC,CAAC;KAAM,CAAC;IACN,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,oBAAoB,EAAE,CAAC,CAAC;IAEjD,KAAK,UAAU,QAAQ;QACrB,UAAU,CAAC,KAAK,EAAE,CAAC;QACnB,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AAClC,CAAC"}
@@ -1,6 +1,6 @@
1
1
  // index.ts — aggregate skill registration for Datacore MCP server.
2
2
  import { registerTaskWorkflowSkills } from "./task-workflow.js";
3
- import { registerKnowledgeSkills } from "./knowledge.js";
3
+ import { registerKnowledgeSkills } from "./insights.js";
4
4
  export function registerSkills(server) {
5
5
  registerTaskWorkflowSkills(server);
6
6
  registerKnowledgeSkills(server);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/skills/index.ts"],"names":[],"mappings":"AAAA,mEAAmE;AAGnE,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAEzD,MAAM,UAAU,cAAc,CAAC,MAAiB;IAC9C,0BAA0B,CAAC,MAAM,CAAC,CAAC;IACnC,uBAAuB,CAAC,MAAM,CAAC,CAAC;AAClC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/skills/index.ts"],"names":[],"mappings":"AAAA,mEAAmE;AAGnE,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAExD,MAAM,UAAU,cAAc,CAAC,MAAiB;IAC9C,0BAA0B,CAAC,MAAM,CAAC,CAAC;IACnC,uBAAuB,CAAC,MAAM,CAAC,CAAC;AAClC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ export declare function registerKnowledgeSkills(server: McpServer): void;
3
+ //# sourceMappingURL=insights.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"insights.d.ts","sourceRoot":"","sources":["../../src/skills/insights.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAazE,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAiG/D"}
@@ -0,0 +1,78 @@
1
+ // knowledge.ts — MCP skills for saving lessons, decisions, and team questions.
2
+ import { z } from "zod";
3
+ import { appendEvent } from "../storage/store.js";
4
+ import { bronzeWriteAck } from "../utils/mcp-slim-ack.js";
5
+ function toTextResult(text, structuredContent) {
6
+ return {
7
+ content: [{ type: "text", text }],
8
+ ...(structuredContent !== undefined
9
+ ? { structuredContent: structuredContent }
10
+ : {}),
11
+ };
12
+ }
13
+ export function registerKnowledgeSkills(server) {
14
+ const annotations = {
15
+ readOnlyHint: false,
16
+ destructiveHint: true,
17
+ idempotentHint: false,
18
+ openWorldHint: false,
19
+ };
20
+ server.tool("save_lesson", "Capture a task-specific lesson learned. Required: agent_id (your identifier), task_id, lesson text.", {
21
+ agent_id: z
22
+ .string()
23
+ .min(1)
24
+ .describe("Agent identifier writing the lesson (e.g. codex-session)"),
25
+ task_id: z
26
+ .string()
27
+ .min(1)
28
+ .describe("Task identifier that the lesson applies to"),
29
+ lesson: z.string().min(1).describe("Lesson learned in plain text"),
30
+ }, annotations, async ({ agent_id, task_id, lesson }) => {
31
+ const record = await appendEvent({
32
+ source: agent_id,
33
+ type: "insight",
34
+ content: `${task_id} lessons: ${lesson}`,
35
+ context: { task_id },
36
+ });
37
+ return toTextResult("save_lesson logged insight event", bronzeWriteAck(record.record));
38
+ });
39
+ server.tool("save_decision", "Record a decision with rationale. Required: agent_id (your identifier), summary, rationale.", {
40
+ agent_id: z
41
+ .string()
42
+ .min(1)
43
+ .describe("Agent identifier recording the decision"),
44
+ summary: z.string().min(1).describe("Decision summary in one sentence"),
45
+ rationale: z
46
+ .string()
47
+ .min(1)
48
+ .describe("Supporting rationale explaining the decision"),
49
+ }, annotations, async ({ agent_id, summary, rationale }) => {
50
+ const record = await appendEvent({
51
+ source: agent_id,
52
+ type: "decision",
53
+ content: `${summary}. Rationale: ${rationale}`,
54
+ context: { summary },
55
+ });
56
+ return toTextResult("save_decision logged decision event", bronzeWriteAck(record.record));
57
+ });
58
+ server.tool("ask_team", "Log a question to the team with a directed recipient. Writes question events with status=open.", {
59
+ agent_id: z
60
+ .string()
61
+ .min(1)
62
+ .describe("Agent identifier asking the question"),
63
+ question: z.string().min(1).describe("Question text to log"),
64
+ directed_to: z
65
+ .string()
66
+ .min(1)
67
+ .describe("Intended recipient agent (e.g. claude-desktop, openclaw)"),
68
+ }, annotations, async ({ agent_id, question, directed_to }) => {
69
+ const record = await appendEvent({
70
+ source: agent_id,
71
+ type: "question",
72
+ content: question,
73
+ context: { directed_to, status: "open" },
74
+ });
75
+ return toTextResult("ask_team logged question event", bronzeWriteAck(record.record));
76
+ });
77
+ }
78
+ //# sourceMappingURL=insights.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"insights.js","sourceRoot":"","sources":["../../src/skills/insights.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  // knowledge.ts — MCP skills for saving lessons, decisions, and team questions.
2
2
  import { z } from "zod";
3
3
  import { appendEvent } from "../storage/store.js";
4
- import { bronzeWriteAck } from "../mcp-slim-ack.js";
4
+ import { bronzeWriteAck } from "../server/mcp-slim-ack.js";
5
5
  function toTextResult(text, structuredContent) {
6
6
  return {
7
7
  content: [{ type: "text", text }],
@@ -1 +1 @@
1
- {"version":3,"file":"knowledge.js","sourceRoot":"","sources":["../../src/skills/knowledge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"knowledge.js","sourceRoot":"","sources":["../../src/skills/knowledge.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  // task-workflow.ts — MCP skill wrappers for consistent task lifecycle logging.
2
2
  import { z } from "zod";
3
3
  import { appendEvent } from "../storage/store.js";
4
- import { getTasks } from "../domain/tasks.js";
5
- import { bronzeWriteAck } from "../mcp-slim-ack.js";
4
+ import { getTasks } from "../domain/bronze/tasks.js";
5
+ import { bronzeWriteAck } from "../utils/mcp-slim-ack.js";
6
6
  const LOOP_DETECT_THRESHOLD = 4; // emit task_loop_detected every N progress events
7
7
  const COMPACT_THRESHOLD = 8; // emit task_compaction_needed every N progress events
8
8
  // ── DC-T8 Tier 1: session buffer (server-side auto-capture) ───────────────
@@ -1 +1 @@
1
- {"version":3,"file":"task-workflow.js","sourceRoot":"","sources":["../../src/skills/task-workflow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task-workflow.js","sourceRoot":"","sources":["../../src/skills/task-workflow.ts"],"names":[],"mappings":"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"}