@davidjinguoxu/agentcore 0.4.2 → 0.4.3

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 +42 -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 +1 -1
@@ -0,0 +1,39 @@
1
+ export type TrustLevel = "verified" | "ai-generated" | "external";
2
+ export interface BronzeRecord {
3
+ source: string;
4
+ type: string;
5
+ content: string;
6
+ project?: string;
7
+ context?: Record<string, unknown>;
8
+ run_id?: string;
9
+ _timestamp: string;
10
+ _source: string;
11
+ _event_id: string;
12
+ _trust: TrustLevel;
13
+ _filePath?: string;
14
+ }
15
+ export interface AppendEventInput {
16
+ source: string;
17
+ type: string;
18
+ content: string;
19
+ project?: string;
20
+ context?: Record<string, unknown>;
21
+ run_id?: string;
22
+ }
23
+ export interface AppendEventResult {
24
+ bronzeDir: string;
25
+ filePath: string;
26
+ record: BronzeRecord;
27
+ }
28
+ export interface Filters {
29
+ source?: string;
30
+ type?: string;
31
+ limit?: number;
32
+ }
33
+ export interface ReadAllResult {
34
+ bronzeDir: string;
35
+ files: string[];
36
+ records: BronzeRecord[];
37
+ parseErrors: number;
38
+ }
39
+ //# sourceMappingURL=bronze.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bronze.d.ts","sourceRoot":"","sources":["../../src/models/bronze.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,cAAc,GAAG,UAAU,CAAC;AAElE,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,YAAY,CAAC;CACtB;AAED,MAAM,WAAW,OAAO;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;CACrB"}
@@ -0,0 +1,4 @@
1
+ // models/bronze.ts — Bronze layer data model types.
2
+ // Raw event records, write inputs, read outputs.
3
+ export {};
4
+ //# sourceMappingURL=bronze.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bronze.js","sourceRoot":"","sources":["../../src/models/bronze.ts"],"names":[],"mappings":"AAAA,oDAAoD;AACpD,iDAAiD"}
@@ -0,0 +1,43 @@
1
+ export interface GoldEntity {
2
+ entity_type: string;
3
+ entity_id: string;
4
+ summary: string;
5
+ project?: string;
6
+ tags?: string[];
7
+ links_to?: string[];
8
+ source_events?: string[];
9
+ data?: unknown;
10
+ created_at: string;
11
+ updated_at: string;
12
+ }
13
+ export interface AddEntityInput {
14
+ entity_type: string;
15
+ summary: string;
16
+ project?: string;
17
+ tags?: string[];
18
+ links_to?: string[];
19
+ source_events?: string[];
20
+ data?: unknown;
21
+ }
22
+ export interface AddEntityResult {
23
+ entity_id: string;
24
+ file_path: string;
25
+ action: "created" | "updated";
26
+ }
27
+ export interface GetFactsInput {
28
+ entity_type?: string;
29
+ project?: string;
30
+ tag?: string;
31
+ query?: string;
32
+ }
33
+ export interface GetFactsResult {
34
+ entities: GoldEntity[];
35
+ total: number;
36
+ }
37
+ export interface GetLinkedResult {
38
+ entity: GoldEntity | null;
39
+ links_out: GoldEntity[];
40
+ links_in: GoldEntity[];
41
+ total_connections: number;
42
+ }
43
+ //# sourceMappingURL=gold.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gold.d.ts","sourceRoot":"","sources":["../../src/models/gold.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,SAAS,GAAG,SAAS,CAAC;CAC/B;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,UAAU,EAAE,CAAC;IACxB,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;CAC3B"}
@@ -0,0 +1,4 @@
1
+ // models/gold.ts — Gold layer data model types.
2
+ // Curated knowledge graph: entities, inputs, results.
3
+ export {};
4
+ //# sourceMappingURL=gold.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gold.js","sourceRoot":"","sources":["../../src/models/gold.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,sDAAsD"}
@@ -0,0 +1,6 @@
1
+ export * from "./bronze.js";
2
+ export * from "./gold.js";
3
+ export * from "./silver.js";
4
+ export * from "./tasks.js";
5
+ export * from "./questions.js";
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":"AAGA,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,8 @@
1
+ // models/index.ts — Re-exports all data model types.
2
+ // Import from here or from individual layer files directly.
3
+ export * from "./bronze.js";
4
+ export * from "./gold.js";
5
+ export * from "./silver.js";
6
+ export * from "./tasks.js";
7
+ export * from "./questions.js";
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD,4DAA4D;AAE5D,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,24 @@
1
+ export interface QuestionInput {
2
+ directed_to?: string;
3
+ status?: "open" | "answered" | "all";
4
+ task_id?: string;
5
+ limit?: number;
6
+ }
7
+ export interface QuestionSummary {
8
+ thread_id: string;
9
+ question: string;
10
+ asked_by: string | null;
11
+ directed_to: string | null;
12
+ task_id: string | null;
13
+ status: "open" | "answered";
14
+ asked_at: string | null;
15
+ answered_at: string | null;
16
+ answer: string | null;
17
+ answered_by: string | null;
18
+ }
19
+ export interface QuestionResult {
20
+ bronzeDir: string;
21
+ total: number;
22
+ questions: QuestionSummary[];
23
+ }
24
+ //# sourceMappingURL=questions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"questions.d.ts","sourceRoot":"","sources":["../../src/models/questions.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,aAAa;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,KAAK,CAAC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC;IAC5B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,eAAe,EAAE,CAAC;CAC9B"}
@@ -0,0 +1,3 @@
1
+ // models/questions.ts — Async Q&A data model types.
2
+ export {};
3
+ //# sourceMappingURL=questions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"questions.js","sourceRoot":"","sources":["../../src/models/questions.ts"],"names":[],"mappings":"AAAA,oDAAoD"}
@@ -0,0 +1,26 @@
1
+ export interface SearchInput {
2
+ query: string;
3
+ maxResults?: number;
4
+ source?: string;
5
+ type?: string;
6
+ }
7
+ export interface SearchResult {
8
+ eventId: string | null;
9
+ timestamp: string | null;
10
+ source: string | null;
11
+ type: string | null;
12
+ trust: import("./bronze.js").TrustLevel | null;
13
+ snippet: string;
14
+ filePath: string;
15
+ }
16
+ export interface SearchOutput {
17
+ bronzeDir: string;
18
+ filesScanned: number;
19
+ eventsScanned: number;
20
+ parseErrors: number;
21
+ totalMatches: number;
22
+ results: SearchResult[];
23
+ sourceCounts: Record<string, number>;
24
+ typeCounts: Record<string, number>;
25
+ }
26
+ //# sourceMappingURL=silver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"silver.d.ts","sourceRoot":"","sources":["../../src/models/silver.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,EAAE,OAAO,aAAa,EAAE,UAAU,GAAG,IAAI,CAAC;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC"}
@@ -0,0 +1,4 @@
1
+ // models/silver.ts — Silver layer data model types.
2
+ // Search inputs and outputs (keyword + semantic).
3
+ export {};
4
+ //# sourceMappingURL=silver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"silver.js","sourceRoot":"","sources":["../../src/models/silver.ts"],"names":[],"mappings":"AAAA,oDAAoD;AACpD,kDAAkD"}
@@ -0,0 +1,56 @@
1
+ export interface TaskInput {
2
+ status?: string;
3
+ assigned_to?: string;
4
+ task_type?: string;
5
+ task_id?: string;
6
+ limit?: number;
7
+ }
8
+ export interface TaskSummary {
9
+ task_id: string;
10
+ status: string;
11
+ task_type: string | null;
12
+ assigned_to: string | null;
13
+ score: unknown;
14
+ problem: unknown;
15
+ impact: unknown;
16
+ project: unknown;
17
+ workflow_stage: unknown;
18
+ phase: unknown;
19
+ depends_on: unknown;
20
+ pattern: unknown;
21
+ acceptance: unknown;
22
+ spec_file: unknown;
23
+ summary: string | null;
24
+ latest_update: string | null;
25
+ latest_type: string | null;
26
+ created_at: string | null;
27
+ updated_at: string | null;
28
+ event_count: number;
29
+ tags: unknown;
30
+ lessons: unknown;
31
+ }
32
+ export interface TaskEvent {
33
+ eventId: string | null;
34
+ timestamp: string | null;
35
+ source: string | null;
36
+ type: string | null;
37
+ content: string | null;
38
+ context: Record<string, unknown> | null;
39
+ }
40
+ export interface TaskBoardResult {
41
+ bronzeDir: string;
42
+ mode: "board";
43
+ status_filter: string;
44
+ total_tasks: number;
45
+ tasks: TaskSummary[];
46
+ parseErrors: number;
47
+ }
48
+ export interface TaskHistoryResult {
49
+ bronzeDir: string;
50
+ mode: "history";
51
+ task_id: string;
52
+ events: TaskEvent[];
53
+ totalEvents: number;
54
+ }
55
+ export type TaskResult = TaskBoardResult | TaskHistoryResult;
56
+ //# sourceMappingURL=tasks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../src/models/tasks.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,SAAS;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,OAAO,CAAC;IACxB,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CACzC;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,OAAO,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,UAAU,GAAG,eAAe,GAAG,iBAAiB,CAAC"}
@@ -0,0 +1,3 @@
1
+ // models/tasks.ts — Task lifecycle data model types.
2
+ export {};
3
+ //# sourceMappingURL=tasks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../src/models/tasks.ts"],"names":[],"mappings":"AAAA,qDAAqD"}
File without changes
File without changes
@@ -0,0 +1,19 @@
1
+ export declare const EMBEDDABLE_TYPES: Set<string>;
2
+ export declare const MIN_CONTENT_LENGTH = 50;
3
+ export declare function shouldEmbed(record: {
4
+ type?: string;
5
+ content?: string;
6
+ }): boolean;
7
+ export declare const KNOWN_SOURCES: Set<string>;
8
+ export interface ValidationResult {
9
+ valid: boolean;
10
+ reasons: string[];
11
+ }
12
+ export declare function validateForSilver(record: Record<string, unknown>): ValidationResult;
13
+ /**
14
+ * Extract a compact summary from event content for better Silver embeddings.
15
+ * Rule-based only — no LLM calls. For content >200 chars: first sentence + key entities.
16
+ * Returns null for short content (embed as-is).
17
+ */
18
+ export declare function extractContentSummary(content: string | null | undefined): string | null;
19
+ //# sourceMappingURL=embeddable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embeddable.d.ts","sourceRoot":"","sources":["../../src/search/embeddable.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,gBAAgB,aAsB3B,CAAC;AAEH,eAAO,MAAM,kBAAkB,KAAK,CAAC;AAErC,wBAAgB,WAAW,CAAC,MAAM,EAAE;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,OAAO,CAIV;AAGD,eAAO,MAAM,aAAa,aAexB,CAAC;AAKH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,gBAAgB,CAkClB;AAID;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACjC,MAAM,GAAG,IAAI,CAoBf"}
@@ -0,0 +1,106 @@
1
+ // embeddable.ts — Which event types are worth embedding? What's valid for Silver?
2
+ // Shared logic for export-for-databricks and export-daily scripts.
3
+ // Single source of truth for what goes to Databricks Silver layer.
4
+ export const EMBEDDABLE_TYPES = new Set([
5
+ "assistant_message",
6
+ "human_message",
7
+ "conversation",
8
+ "decision",
9
+ "action",
10
+ "insight",
11
+ "problem",
12
+ "task_created",
13
+ "task_context",
14
+ "task_completed",
15
+ "task_reviewed",
16
+ "task_started",
17
+ "message_preprocessed",
18
+ "message_sent",
19
+ "tool_summary",
20
+ "response_message",
21
+ "agent_message",
22
+ "message",
23
+ "tool_result",
24
+ "record",
25
+ "reasoning",
26
+ ]);
27
+ export const MIN_CONTENT_LENGTH = 50;
28
+ export function shouldEmbed(record) {
29
+ if (!EMBEDDABLE_TYPES.has(record.type ?? ""))
30
+ return false;
31
+ if ((record.content ?? "").length < MIN_CONTENT_LENGTH)
32
+ return false;
33
+ return true;
34
+ }
35
+ // Known sources — events from unknown sources get flagged
36
+ export const KNOWN_SOURCES = new Set([
37
+ "claude",
38
+ "claude-agent",
39
+ "claude.ai",
40
+ "claude-desktop",
41
+ "claude-web",
42
+ "claude-cowork",
43
+ "codex",
44
+ "codex-session",
45
+ "gemini",
46
+ "gemini-session",
47
+ "openclaw",
48
+ "openclaw-session",
49
+ "log-session-sh",
50
+ "datacore",
51
+ ]);
52
+ const MAX_CONTENT_LENGTH = 50_000;
53
+ const ISO_DATE_RE = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/;
54
+ export function validateForSilver(record) {
55
+ const reasons = [];
56
+ if (!record._event_id)
57
+ reasons.push("missing _event_id");
58
+ if (!record._timestamp) {
59
+ reasons.push("missing _timestamp");
60
+ }
61
+ else if (!ISO_DATE_RE.test(String(record._timestamp))) {
62
+ reasons.push(`invalid _timestamp: ${String(record._timestamp).slice(0, 30)}`);
63
+ }
64
+ const source = (record._source ?? record.source);
65
+ if (!source) {
66
+ reasons.push("missing source");
67
+ }
68
+ else if (!KNOWN_SOURCES.has(source)) {
69
+ reasons.push(`unknown source: ${source}`);
70
+ }
71
+ if (!record.type)
72
+ reasons.push("missing type");
73
+ const content = record.content ?? "";
74
+ if (typeof content !== "string") {
75
+ reasons.push("content is not a string");
76
+ }
77
+ else if (content.length < MIN_CONTENT_LENGTH) {
78
+ reasons.push(`content too short (${content.length} < ${MIN_CONTENT_LENGTH})`);
79
+ }
80
+ else if (content.length > MAX_CONTENT_LENGTH) {
81
+ reasons.push(`content too long (${content.length} > ${MAX_CONTENT_LENGTH})`);
82
+ }
83
+ return { valid: reasons.length === 0, reasons };
84
+ }
85
+ const SUMMARY_MIN_CONTENT_LENGTH = 200;
86
+ /**
87
+ * Extract a compact summary from event content for better Silver embeddings.
88
+ * Rule-based only — no LLM calls. For content >200 chars: first sentence + key entities.
89
+ * Returns null for short content (embed as-is).
90
+ */
91
+ export function extractContentSummary(content) {
92
+ if (!content || content.length < SUMMARY_MIN_CONTENT_LENGTH) {
93
+ return null;
94
+ }
95
+ const firstSentenceMatch = content.match(/^(.{20,300}?[.!?])(?:\s|$)/s);
96
+ const firstSentence = firstSentenceMatch
97
+ ? firstSentenceMatch[1].trim()
98
+ : content.slice(0, 200).trim();
99
+ const entityPattern = /\b([A-Z][a-z]+(?:\s[A-Z][a-z]+)*|[A-Z]{2,}|v\d+\.\d+[\w.]*|R\d{1,3}(?:-\w+)?)\b/g;
100
+ const entities = [...new Set(content.match(entityPattern) ?? [])].slice(0, 8);
101
+ const summary = entities.length > 0
102
+ ? `${firstSentence} [${entities.join(", ")}]`
103
+ : firstSentence;
104
+ return summary.length < content.length * 0.8 ? summary : null;
105
+ }
106
+ //# sourceMappingURL=embeddable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embeddable.js","sourceRoot":"","sources":["../../src/search/embeddable.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- import type { SearchInput, SearchOutput } from "../types.js";
1
+ import type { SearchInput, SearchOutput } from "../models/index.js";
2
2
  export declare function searchEvents({ query, maxResults, source, type, }: SearchInput): Promise<SearchOutput>;
3
3
  //# sourceMappingURL=search.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/search/search.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAEV,WAAW,EAEX,YAAY,EACb,MAAM,aAAa,CAAC;AA6CrB,wBAAsB,YAAY,CAAC,EACjC,KAAK,EACL,UAAgC,EAChC,MAAM,EACN,IAAI,GACL,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CA2CrC"}
1
+ {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/search/search.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAEV,WAAW,EAEX,YAAY,EACb,MAAM,oBAAoB,CAAC;AA6C5B,wBAAsB,YAAY,CAAC,EACjC,KAAK,EACL,UAAgC,EAChC,MAAM,EACN,IAAI,GACL,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CA2CrC"}
@@ -0,0 +1,12 @@
1
+ import type { AddEntityResult, BronzeRecord } from "../types.js";
2
+ export declare function bronzeWriteAck(record: BronzeRecord): {
3
+ status: "ok";
4
+ event_id: string;
5
+ type: string;
6
+ };
7
+ export declare function goldUpsertAck(result: AddEntityResult): {
8
+ status: "ok";
9
+ entity_id: string;
10
+ action: AddEntityResult["action"];
11
+ };
12
+ //# sourceMappingURL=mcp-slim-ack.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-slim-ack.d.ts","sourceRoot":"","sources":["../../src/server/mcp-slim-ack.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEjE,wBAAgB,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG;IACpD,MAAM,EAAE,IAAI,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd,CAMA;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,eAAe,GAAG;IACtD,MAAM,EAAE,IAAI,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;CACnC,CAMA"}
@@ -0,0 +1,16 @@
1
+ // mcp-slim-ack.ts — Minimal structuredContent for write tools (DC-T23: avoid echoing full records into model context).
2
+ export function bronzeWriteAck(record) {
3
+ return {
4
+ status: "ok",
5
+ event_id: record._event_id,
6
+ type: record.type,
7
+ };
8
+ }
9
+ export function goldUpsertAck(result) {
10
+ return {
11
+ status: "ok",
12
+ entity_id: result.entity_id,
13
+ action: result.action,
14
+ };
15
+ }
16
+ //# sourceMappingURL=mcp-slim-ack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-slim-ack.js","sourceRoot":"","sources":["../../src/server/mcp-slim-ack.ts"],"names":[],"mappings":"AAAA,uHAAuH;AAIvH,MAAM,UAAU,cAAc,CAAC,MAAoB;IAKjD,OAAO;QACL,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,MAAM,CAAC,SAAS;QAC1B,IAAI,EAAE,MAAM,CAAC,IAAI;KAClB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAAuB;IAKnD,OAAO;QACL,MAAM,EAAE,IAAI;QACZ,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,MAAM,EAAE,MAAM,CAAC,MAAM;KACtB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server/server.ts"],"names":[],"mappings":""}
@@ -0,0 +1,42 @@
1
+ #!/usr/bin/env node
2
+ // server.ts — How does the MCP server start?
3
+ // Two transports: MCP stdio (for AI agents) + HTTP REST (for infrastructure).
4
+ // Same process, same database.
5
+ // Set DATACORE_STDIO=0 (or HTTP_ONLY=1) to run in container mode (HTTP only).
6
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
7
+ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
8
+ import { registerTools } from "../tools/index.js";
9
+ import { startHttpServer } from "../transport/http-server.js";
10
+ import { getMcpServerPackageVersion } from "../config/agentcore-constants.js";
11
+ import { initSchema } from "../storage/schema-init.js";
12
+ const server = new McpServer({
13
+ name: "datacore",
14
+ version: getMcpServerPackageVersion(),
15
+ });
16
+ registerTools(server);
17
+ // Ensure all 7 tables exist before accepting any requests
18
+ await initSchema();
19
+ // Start HTTP first so triggers can POST to /log as soon as MCP connects
20
+ const httpServer = await startHttpServer();
21
+ const httpOnly = process.env["DATACORE_STDIO"] === "0" ||
22
+ process.env["DATACORE_HTTP_ONLY"] === "1";
23
+ if (httpOnly) {
24
+ // Container mode — HTTP transport only, no stdio
25
+ function shutdownHttp() {
26
+ httpServer.close();
27
+ process.exit(0);
28
+ }
29
+ process.on("SIGINT", shutdownHttp);
30
+ process.on("SIGTERM", shutdownHttp);
31
+ }
32
+ else {
33
+ await server.connect(new StdioServerTransport());
34
+ async function shutdown() {
35
+ httpServer.close();
36
+ await server.close();
37
+ process.exit(0);
38
+ }
39
+ process.on("SIGINT", shutdown);
40
+ process.on("SIGTERM", shutdown);
41
+ }
42
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server/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,mBAAmB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAEvD,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"}
@@ -0,0 +1,3 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ export declare function registerTools(server: McpServer): void;
3
+ //# sourceMappingURL=tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/server/tools.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAyBzE,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAohBrD"}