@soleri/core 2.0.2 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (226) hide show
  1. package/dist/brain/brain.d.ts +14 -50
  2. package/dist/brain/brain.d.ts.map +1 -1
  3. package/dist/brain/brain.js +207 -16
  4. package/dist/brain/brain.js.map +1 -1
  5. package/dist/brain/intelligence.d.ts +86 -0
  6. package/dist/brain/intelligence.d.ts.map +1 -0
  7. package/dist/brain/intelligence.js +771 -0
  8. package/dist/brain/intelligence.js.map +1 -0
  9. package/dist/brain/types.d.ts +197 -0
  10. package/dist/brain/types.d.ts.map +1 -0
  11. package/dist/brain/types.js +2 -0
  12. package/dist/brain/types.js.map +1 -0
  13. package/dist/cognee/client.d.ts +35 -0
  14. package/dist/cognee/client.d.ts.map +1 -0
  15. package/dist/cognee/client.js +291 -0
  16. package/dist/cognee/client.js.map +1 -0
  17. package/dist/cognee/types.d.ts +46 -0
  18. package/dist/cognee/types.d.ts.map +1 -0
  19. package/dist/cognee/types.js +3 -0
  20. package/dist/cognee/types.js.map +1 -0
  21. package/dist/control/identity-manager.d.ts +22 -0
  22. package/dist/control/identity-manager.d.ts.map +1 -0
  23. package/dist/control/identity-manager.js +233 -0
  24. package/dist/control/identity-manager.js.map +1 -0
  25. package/dist/control/intent-router.d.ts +32 -0
  26. package/dist/control/intent-router.d.ts.map +1 -0
  27. package/dist/control/intent-router.js +242 -0
  28. package/dist/control/intent-router.js.map +1 -0
  29. package/dist/control/types.d.ts +68 -0
  30. package/dist/control/types.d.ts.map +1 -0
  31. package/dist/control/types.js +9 -0
  32. package/dist/control/types.js.map +1 -0
  33. package/dist/curator/curator.d.ts +29 -0
  34. package/dist/curator/curator.d.ts.map +1 -1
  35. package/dist/curator/curator.js +142 -5
  36. package/dist/curator/curator.js.map +1 -1
  37. package/dist/facades/types.d.ts +1 -1
  38. package/dist/governance/governance.d.ts +42 -0
  39. package/dist/governance/governance.d.ts.map +1 -0
  40. package/dist/governance/governance.js +488 -0
  41. package/dist/governance/governance.js.map +1 -0
  42. package/dist/governance/index.d.ts +3 -0
  43. package/dist/governance/index.d.ts.map +1 -0
  44. package/dist/governance/index.js +2 -0
  45. package/dist/governance/index.js.map +1 -0
  46. package/dist/governance/types.d.ts +102 -0
  47. package/dist/governance/types.d.ts.map +1 -0
  48. package/dist/governance/types.js +3 -0
  49. package/dist/governance/types.js.map +1 -0
  50. package/dist/index.d.ts +35 -3
  51. package/dist/index.d.ts.map +1 -1
  52. package/dist/index.js +32 -1
  53. package/dist/index.js.map +1 -1
  54. package/dist/llm/llm-client.d.ts.map +1 -1
  55. package/dist/llm/llm-client.js +9 -2
  56. package/dist/llm/llm-client.js.map +1 -1
  57. package/dist/logging/logger.d.ts +37 -0
  58. package/dist/logging/logger.d.ts.map +1 -0
  59. package/dist/logging/logger.js +145 -0
  60. package/dist/logging/logger.js.map +1 -0
  61. package/dist/logging/types.d.ts +19 -0
  62. package/dist/logging/types.d.ts.map +1 -0
  63. package/dist/logging/types.js +2 -0
  64. package/dist/logging/types.js.map +1 -0
  65. package/dist/loop/loop-manager.d.ts +49 -0
  66. package/dist/loop/loop-manager.d.ts.map +1 -0
  67. package/dist/loop/loop-manager.js +105 -0
  68. package/dist/loop/loop-manager.js.map +1 -0
  69. package/dist/loop/types.d.ts +35 -0
  70. package/dist/loop/types.d.ts.map +1 -0
  71. package/dist/loop/types.js +8 -0
  72. package/dist/loop/types.js.map +1 -0
  73. package/dist/planning/gap-analysis.d.ts +29 -0
  74. package/dist/planning/gap-analysis.d.ts.map +1 -0
  75. package/dist/planning/gap-analysis.js +265 -0
  76. package/dist/planning/gap-analysis.js.map +1 -0
  77. package/dist/planning/gap-types.d.ts +29 -0
  78. package/dist/planning/gap-types.d.ts.map +1 -0
  79. package/dist/planning/gap-types.js +28 -0
  80. package/dist/planning/gap-types.js.map +1 -0
  81. package/dist/planning/planner.d.ts +150 -1
  82. package/dist/planning/planner.d.ts.map +1 -1
  83. package/dist/planning/planner.js +365 -2
  84. package/dist/planning/planner.js.map +1 -1
  85. package/dist/project/project-registry.d.ts +79 -0
  86. package/dist/project/project-registry.d.ts.map +1 -0
  87. package/dist/project/project-registry.js +276 -0
  88. package/dist/project/project-registry.js.map +1 -0
  89. package/dist/project/types.d.ts +28 -0
  90. package/dist/project/types.d.ts.map +1 -0
  91. package/dist/project/types.js +5 -0
  92. package/dist/project/types.js.map +1 -0
  93. package/dist/runtime/admin-extra-ops.d.ts +13 -0
  94. package/dist/runtime/admin-extra-ops.d.ts.map +1 -0
  95. package/dist/runtime/admin-extra-ops.js +284 -0
  96. package/dist/runtime/admin-extra-ops.js.map +1 -0
  97. package/dist/runtime/admin-ops.d.ts +15 -0
  98. package/dist/runtime/admin-ops.d.ts.map +1 -0
  99. package/dist/runtime/admin-ops.js +322 -0
  100. package/dist/runtime/admin-ops.js.map +1 -0
  101. package/dist/runtime/capture-ops.d.ts +15 -0
  102. package/dist/runtime/capture-ops.d.ts.map +1 -0
  103. package/dist/runtime/capture-ops.js +345 -0
  104. package/dist/runtime/capture-ops.js.map +1 -0
  105. package/dist/runtime/core-ops.d.ts +7 -3
  106. package/dist/runtime/core-ops.d.ts.map +1 -1
  107. package/dist/runtime/core-ops.js +646 -15
  108. package/dist/runtime/core-ops.js.map +1 -1
  109. package/dist/runtime/curator-extra-ops.d.ts +9 -0
  110. package/dist/runtime/curator-extra-ops.d.ts.map +1 -0
  111. package/dist/runtime/curator-extra-ops.js +59 -0
  112. package/dist/runtime/curator-extra-ops.js.map +1 -0
  113. package/dist/runtime/domain-ops.d.ts.map +1 -1
  114. package/dist/runtime/domain-ops.js +59 -13
  115. package/dist/runtime/domain-ops.js.map +1 -1
  116. package/dist/runtime/grading-ops.d.ts +14 -0
  117. package/dist/runtime/grading-ops.d.ts.map +1 -0
  118. package/dist/runtime/grading-ops.js +105 -0
  119. package/dist/runtime/grading-ops.js.map +1 -0
  120. package/dist/runtime/loop-ops.d.ts +13 -0
  121. package/dist/runtime/loop-ops.d.ts.map +1 -0
  122. package/dist/runtime/loop-ops.js +179 -0
  123. package/dist/runtime/loop-ops.js.map +1 -0
  124. package/dist/runtime/memory-cross-project-ops.d.ts +12 -0
  125. package/dist/runtime/memory-cross-project-ops.d.ts.map +1 -0
  126. package/dist/runtime/memory-cross-project-ops.js +165 -0
  127. package/dist/runtime/memory-cross-project-ops.js.map +1 -0
  128. package/dist/runtime/memory-extra-ops.d.ts +13 -0
  129. package/dist/runtime/memory-extra-ops.d.ts.map +1 -0
  130. package/dist/runtime/memory-extra-ops.js +173 -0
  131. package/dist/runtime/memory-extra-ops.js.map +1 -0
  132. package/dist/runtime/orchestrate-ops.d.ts +17 -0
  133. package/dist/runtime/orchestrate-ops.d.ts.map +1 -0
  134. package/dist/runtime/orchestrate-ops.js +240 -0
  135. package/dist/runtime/orchestrate-ops.js.map +1 -0
  136. package/dist/runtime/planning-extra-ops.d.ts +17 -0
  137. package/dist/runtime/planning-extra-ops.d.ts.map +1 -0
  138. package/dist/runtime/planning-extra-ops.js +300 -0
  139. package/dist/runtime/planning-extra-ops.js.map +1 -0
  140. package/dist/runtime/project-ops.d.ts +15 -0
  141. package/dist/runtime/project-ops.d.ts.map +1 -0
  142. package/dist/runtime/project-ops.js +181 -0
  143. package/dist/runtime/project-ops.js.map +1 -0
  144. package/dist/runtime/runtime.d.ts.map +1 -1
  145. package/dist/runtime/runtime.js +48 -1
  146. package/dist/runtime/runtime.js.map +1 -1
  147. package/dist/runtime/types.d.ts +23 -0
  148. package/dist/runtime/types.d.ts.map +1 -1
  149. package/dist/runtime/vault-extra-ops.d.ts +9 -0
  150. package/dist/runtime/vault-extra-ops.d.ts.map +1 -0
  151. package/dist/runtime/vault-extra-ops.js +195 -0
  152. package/dist/runtime/vault-extra-ops.js.map +1 -0
  153. package/dist/telemetry/telemetry.d.ts +48 -0
  154. package/dist/telemetry/telemetry.d.ts.map +1 -0
  155. package/dist/telemetry/telemetry.js +87 -0
  156. package/dist/telemetry/telemetry.js.map +1 -0
  157. package/dist/vault/vault.d.ts +94 -0
  158. package/dist/vault/vault.d.ts.map +1 -1
  159. package/dist/vault/vault.js +340 -1
  160. package/dist/vault/vault.js.map +1 -1
  161. package/package.json +1 -1
  162. package/src/__tests__/admin-extra-ops.test.ts +420 -0
  163. package/src/__tests__/admin-ops.test.ts +271 -0
  164. package/src/__tests__/brain-intelligence.test.ts +828 -0
  165. package/src/__tests__/brain.test.ts +396 -27
  166. package/src/__tests__/capture-ops.test.ts +509 -0
  167. package/src/__tests__/cognee-client.test.ts +524 -0
  168. package/src/__tests__/core-ops.test.ts +341 -49
  169. package/src/__tests__/curator-extra-ops.test.ts +359 -0
  170. package/src/__tests__/curator.test.ts +126 -31
  171. package/src/__tests__/domain-ops.test.ts +111 -9
  172. package/src/__tests__/governance.test.ts +522 -0
  173. package/src/__tests__/grading-ops.test.ts +340 -0
  174. package/src/__tests__/identity-manager.test.ts +243 -0
  175. package/src/__tests__/intent-router.test.ts +222 -0
  176. package/src/__tests__/logger.test.ts +200 -0
  177. package/src/__tests__/loop-ops.test.ts +398 -0
  178. package/src/__tests__/memory-cross-project-ops.test.ts +246 -0
  179. package/src/__tests__/memory-extra-ops.test.ts +352 -0
  180. package/src/__tests__/orchestrate-ops.test.ts +284 -0
  181. package/src/__tests__/planner.test.ts +331 -0
  182. package/src/__tests__/planning-extra-ops.test.ts +548 -0
  183. package/src/__tests__/project-ops.test.ts +367 -0
  184. package/src/__tests__/runtime.test.ts +13 -11
  185. package/src/__tests__/vault-extra-ops.test.ts +407 -0
  186. package/src/brain/brain.ts +308 -72
  187. package/src/brain/intelligence.ts +1230 -0
  188. package/src/brain/types.ts +214 -0
  189. package/src/cognee/client.ts +352 -0
  190. package/src/cognee/types.ts +62 -0
  191. package/src/control/identity-manager.ts +354 -0
  192. package/src/control/intent-router.ts +326 -0
  193. package/src/control/types.ts +102 -0
  194. package/src/curator/curator.ts +265 -15
  195. package/src/governance/governance.ts +698 -0
  196. package/src/governance/index.ts +18 -0
  197. package/src/governance/types.ts +111 -0
  198. package/src/index.ts +128 -3
  199. package/src/llm/llm-client.ts +18 -24
  200. package/src/logging/logger.ts +154 -0
  201. package/src/logging/types.ts +21 -0
  202. package/src/loop/loop-manager.ts +130 -0
  203. package/src/loop/types.ts +44 -0
  204. package/src/planning/gap-analysis.ts +506 -0
  205. package/src/planning/gap-types.ts +58 -0
  206. package/src/planning/planner.ts +478 -2
  207. package/src/project/project-registry.ts +358 -0
  208. package/src/project/types.ts +31 -0
  209. package/src/runtime/admin-extra-ops.ts +307 -0
  210. package/src/runtime/admin-ops.ts +329 -0
  211. package/src/runtime/capture-ops.ts +385 -0
  212. package/src/runtime/core-ops.ts +747 -26
  213. package/src/runtime/curator-extra-ops.ts +71 -0
  214. package/src/runtime/domain-ops.ts +65 -13
  215. package/src/runtime/grading-ops.ts +121 -0
  216. package/src/runtime/loop-ops.ts +194 -0
  217. package/src/runtime/memory-cross-project-ops.ts +192 -0
  218. package/src/runtime/memory-extra-ops.ts +186 -0
  219. package/src/runtime/orchestrate-ops.ts +272 -0
  220. package/src/runtime/planning-extra-ops.ts +327 -0
  221. package/src/runtime/project-ops.ts +196 -0
  222. package/src/runtime/runtime.ts +54 -1
  223. package/src/runtime/types.ts +23 -0
  224. package/src/runtime/vault-extra-ops.ts +225 -0
  225. package/src/telemetry/telemetry.ts +118 -0
  226. package/src/vault/vault.ts +412 -1
@@ -0,0 +1,181 @@
1
+ /**
2
+ * Project registry operations — 12 ops for managing projects, rules, and links.
3
+ *
4
+ * These ops expose the ProjectRegistry module as facade operations.
5
+ * All state is persisted in the Vault's SQLite database.
6
+ */
7
+ import { z } from 'zod';
8
+ /**
9
+ * Create the 12 project registry operations for an agent runtime.
10
+ *
11
+ * Groups: projects (3), rules (4), links (4), misc (1).
12
+ */
13
+ export function createProjectOps(runtime) {
14
+ const { projectRegistry } = runtime;
15
+ return [
16
+ // ─── Projects ───────────────────────────────────────────────────
17
+ {
18
+ name: 'project_get',
19
+ description: 'Get a registered project by ID.',
20
+ auth: 'read',
21
+ schema: z.object({
22
+ projectId: z.string().describe('Project ID to look up'),
23
+ }),
24
+ handler: async (params) => {
25
+ const project = projectRegistry.get(params.projectId);
26
+ if (!project) {
27
+ return { found: false, project: null };
28
+ }
29
+ return { found: true, project };
30
+ },
31
+ },
32
+ {
33
+ name: 'project_list',
34
+ description: 'List all registered projects, ordered by last accessed time.',
35
+ auth: 'read',
36
+ handler: async () => {
37
+ const projects = projectRegistry.list();
38
+ return { count: projects.length, projects };
39
+ },
40
+ },
41
+ {
42
+ name: 'project_unregister',
43
+ description: 'Unregister a project — removes it and all associated rules and links.',
44
+ auth: 'write',
45
+ schema: z.object({
46
+ projectId: z.string().describe('Project ID to unregister'),
47
+ }),
48
+ handler: async (params) => {
49
+ const removed = projectRegistry.unregister(params.projectId);
50
+ return { removed, projectId: params.projectId };
51
+ },
52
+ },
53
+ // ─── Rules ──────────────────────────────────────────────────────
54
+ {
55
+ name: 'project_get_rules',
56
+ description: 'Get all rules for a specific project.',
57
+ auth: 'read',
58
+ schema: z.object({
59
+ projectId: z.string().describe('Project ID'),
60
+ }),
61
+ handler: async (params) => {
62
+ const rules = projectRegistry.getRules(params.projectId);
63
+ return { count: rules.length, rules };
64
+ },
65
+ },
66
+ {
67
+ name: 'project_list_rules',
68
+ description: 'List all projects with their associated rules.',
69
+ auth: 'read',
70
+ handler: async () => {
71
+ const result = projectRegistry.listRulesAll();
72
+ return {
73
+ count: result.length,
74
+ projects: result.map((r) => ({
75
+ project: r.project,
76
+ ruleCount: r.rules.length,
77
+ rules: r.rules,
78
+ })),
79
+ };
80
+ },
81
+ },
82
+ {
83
+ name: 'project_add_rule',
84
+ description: 'Add a rule to a project — behavior, preference, restriction, or convention.',
85
+ auth: 'write',
86
+ schema: z.object({
87
+ projectId: z.string().describe('Project ID to add the rule to'),
88
+ category: z.enum(['behavior', 'preference', 'restriction', 'convention']).describe('Rule category'),
89
+ text: z.string().describe('Rule text'),
90
+ priority: z.number().default(0).describe('Priority (higher = more important)'),
91
+ }),
92
+ handler: async (params) => {
93
+ const rule = projectRegistry.addRule(params.projectId, {
94
+ category: params.category,
95
+ text: params.text,
96
+ priority: params.priority ?? 0,
97
+ });
98
+ return { added: true, rule };
99
+ },
100
+ },
101
+ {
102
+ name: 'project_remove_rule',
103
+ description: 'Remove a project rule by its ID.',
104
+ auth: 'write',
105
+ schema: z.object({
106
+ ruleId: z.string().describe('Rule ID to remove'),
107
+ }),
108
+ handler: async (params) => {
109
+ const removed = projectRegistry.removeRule(params.ruleId);
110
+ return { removed, ruleId: params.ruleId };
111
+ },
112
+ },
113
+ // ─── Links ──────────────────────────────────────────────────────
114
+ {
115
+ name: 'project_link',
116
+ description: 'Create a link between two projects (related, parent, child, fork).',
117
+ auth: 'write',
118
+ schema: z.object({
119
+ sourceId: z.string().describe('Source project ID'),
120
+ targetId: z.string().describe('Target project ID'),
121
+ linkType: z.enum(['related', 'parent', 'child', 'fork']).describe('Type of link'),
122
+ }),
123
+ handler: async (params) => {
124
+ const link = projectRegistry.link(params.sourceId, params.targetId, params.linkType);
125
+ return { linked: true, link };
126
+ },
127
+ },
128
+ {
129
+ name: 'project_unlink',
130
+ description: 'Remove links between two projects. Omit linkType to remove all link types.',
131
+ auth: 'write',
132
+ schema: z.object({
133
+ sourceId: z.string().describe('Source project ID'),
134
+ targetId: z.string().describe('Target project ID'),
135
+ linkType: z.enum(['related', 'parent', 'child', 'fork']).optional().describe('Specific link type to remove'),
136
+ }),
137
+ handler: async (params) => {
138
+ const count = projectRegistry.unlink(params.sourceId, params.targetId, params.linkType);
139
+ return { removed: count, sourceId: params.sourceId, targetId: params.targetId };
140
+ },
141
+ },
142
+ {
143
+ name: 'project_get_links',
144
+ description: 'Get all links for a project (both incoming and outgoing).',
145
+ auth: 'read',
146
+ schema: z.object({
147
+ projectId: z.string().describe('Project ID'),
148
+ }),
149
+ handler: async (params) => {
150
+ const links = projectRegistry.getLinks(params.projectId);
151
+ return { count: links.length, links };
152
+ },
153
+ },
154
+ {
155
+ name: 'project_linked_projects',
156
+ description: 'Get linked projects with full details — project info, link type, and direction.',
157
+ auth: 'read',
158
+ schema: z.object({
159
+ projectId: z.string().describe('Project ID'),
160
+ }),
161
+ handler: async (params) => {
162
+ const linked = projectRegistry.getLinkedProjects(params.projectId);
163
+ return { count: linked.length, linked };
164
+ },
165
+ },
166
+ // ─── Misc ───────────────────────────────────────────────────────
167
+ {
168
+ name: 'project_touch',
169
+ description: 'Update the last accessed timestamp for a project.',
170
+ auth: 'write',
171
+ schema: z.object({
172
+ projectId: z.string().describe('Project ID to touch'),
173
+ }),
174
+ handler: async (params) => {
175
+ projectRegistry.touch(params.projectId);
176
+ return { touched: true, projectId: params.projectId };
177
+ },
178
+ },
179
+ ];
180
+ }
181
+ //# sourceMappingURL=project-ops.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-ops.js","sourceRoot":"","sources":["../../src/runtime/project-ops.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/runtime/runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAWH,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAEnE;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,GAAG,YAAY,CA0C3E"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/runtime/runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAoBH,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAEnE;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,GAAG,YAAY,CAsF3E"}
@@ -10,11 +10,20 @@ import { join } from 'node:path';
10
10
  import { homedir } from 'node:os';
11
11
  import { Vault } from '../vault/vault.js';
12
12
  import { Brain } from '../brain/brain.js';
13
+ import { BrainIntelligence } from '../brain/intelligence.js';
13
14
  import { Planner } from '../planning/planner.js';
14
15
  import { Curator } from '../curator/curator.js';
16
+ import { Governance } from '../governance/governance.js';
17
+ import { CogneeClient } from '../cognee/client.js';
18
+ import { LoopManager } from '../loop/loop-manager.js';
19
+ import { IdentityManager } from '../control/identity-manager.js';
20
+ import { IntentRouter } from '../control/intent-router.js';
15
21
  import { KeyPool, loadKeyPoolConfig } from '../llm/key-pool.js';
16
22
  import { loadIntelligenceData } from '../intelligence/loader.js';
17
23
  import { LLMClient } from '../llm/llm-client.js';
24
+ import { Telemetry } from '../telemetry/telemetry.js';
25
+ import { ProjectRegistry } from '../project/project-registry.js';
26
+ import { createLogger } from '../logging/logger.js';
18
27
  /**
19
28
  * Create a fully initialized agent runtime.
20
29
  *
@@ -28,6 +37,8 @@ export function createAgentRuntime(config) {
28
37
  const agentHome = join(homedir(), `.${agentId}`);
29
38
  const vaultPath = config.vaultPath ?? join(agentHome, 'vault.db');
30
39
  const plansPath = config.plansPath ?? join(agentHome, 'plans.json');
40
+ // Logger — structured output to stderr
41
+ const logger = createLogger({ level: config.logLevel, prefix: `[${agentId}]` });
31
42
  // Vault — persistent SQLite knowledge store
32
43
  const vault = new Vault(vaultPath);
33
44
  // Seed intelligence data if dataDir provided
@@ -41,8 +52,31 @@ export function createAgentRuntime(config) {
41
52
  const planner = new Planner(plansPath);
42
53
  // Brain — intelligence layer (TF-IDF scoring, auto-tagging, dedup)
43
54
  const brain = new Brain(vault);
55
+ // Brain Intelligence — pattern strengths, session knowledge, intelligence pipeline
56
+ const brainIntelligence = new BrainIntelligence(vault, brain);
44
57
  // Curator — vault self-maintenance (dedup, contradictions, grooming, health)
45
58
  const curator = new Curator(vault);
59
+ // Governance — policy engine + proposal tracker for gated knowledge capture
60
+ const governance = new Governance(vault);
61
+ // Cognee — vector search client (graceful degradation if Cognee is down)
62
+ const cogneePartial = { dataset: agentId };
63
+ if (process.env.COGNEE_BASE_URL)
64
+ cogneePartial.baseUrl = process.env.COGNEE_BASE_URL;
65
+ if (process.env.COGNEE_API_TOKEN)
66
+ cogneePartial.apiToken = process.env.COGNEE_API_TOKEN;
67
+ if (process.env.COGNEE_DATASET)
68
+ cogneePartial.dataset = process.env.COGNEE_DATASET;
69
+ const cognee = new CogneeClient(cogneePartial);
70
+ // Loop Manager — iterative validation loop tracking (in-memory, session-scoped)
71
+ const loop = new LoopManager();
72
+ // Identity Manager — agent persona CRUD with versioning/rollback
73
+ const identityManager = new IdentityManager(vault);
74
+ // Intent Router — keyword-based intent classification and mode management
75
+ const intentRouter = new IntentRouter(vault);
76
+ // Telemetry — in-memory facade call tracking
77
+ const telemetry = new Telemetry();
78
+ // Project Registry — multi-project tracking with rules and links
79
+ const projectRegistry = new ProjectRegistry(vault.getDb());
46
80
  // LLM key pools and client
47
81
  const keyPoolFiles = loadKeyPoolConfig(agentId);
48
82
  const openaiKeyPool = new KeyPool(keyPoolFiles.openai);
@@ -50,13 +84,26 @@ export function createAgentRuntime(config) {
50
84
  const llmClient = new LLMClient(openaiKeyPool, anthropicKeyPool, agentId);
51
85
  return {
52
86
  config,
87
+ logger,
53
88
  vault,
54
89
  brain,
90
+ brainIntelligence,
55
91
  planner,
56
92
  curator,
93
+ governance,
94
+ cognee,
95
+ loop,
96
+ identityManager,
97
+ intentRouter,
57
98
  keyPool: { openai: openaiKeyPool, anthropic: anthropicKeyPool },
58
99
  llmClient,
59
- close: () => vault.close(),
100
+ telemetry,
101
+ projectRegistry,
102
+ createdAt: Date.now(),
103
+ close: () => {
104
+ cognee.resetPendingCognify();
105
+ vault.close();
106
+ },
60
107
  };
61
108
  }
62
109
  //# sourceMappingURL=runtime.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/runtime/runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGjD;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAA0B;IAC3D,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;IAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,OAAO,EAAE,CAAC,CAAC;IACjD,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAClE,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IAEpE,4CAA4C;IAC5C,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC;IAEnC,6CAA6C;IAC7C,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,MAAM,OAAO,GAAG,oBAAoB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACrD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IAED,qCAAqC;IACrC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC;IAEvC,mEAAmE;IACnE,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;IAE/B,6EAA6E;IAC7E,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC;IAEnC,2BAA2B;IAC3B,MAAM,YAAY,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAChD,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IACvD,MAAM,gBAAgB,GAAG,IAAI,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IAC7D,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,aAAa,EAAE,gBAAgB,EAAE,OAAO,CAAC,CAAC;IAE1E,OAAO;QACL,MAAM;QACN,KAAK;QACL,KAAK;QACL,OAAO;QACP,OAAO;QACP,OAAO,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,gBAAgB,EAAE;QAC/D,SAAS;QACT,KAAK,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE;KAC3B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/runtime/runtime.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,19 @@
1
1
  import type { Vault } from '../vault/vault.js';
2
2
  import type { Brain } from '../brain/brain.js';
3
+ import type { BrainIntelligence } from '../brain/intelligence.js';
3
4
  import type { Planner } from '../planning/planner.js';
4
5
  import type { Curator } from '../curator/curator.js';
6
+ import type { Governance } from '../governance/governance.js';
7
+ import type { CogneeClient } from '../cognee/client.js';
5
8
  import type { KeyPool } from '../llm/key-pool.js';
6
9
  import type { LLMClient } from '../llm/llm-client.js';
10
+ import type { IdentityManager } from '../control/identity-manager.js';
11
+ import type { IntentRouter } from '../control/intent-router.js';
12
+ import type { LoopManager } from '../loop/loop-manager.js';
13
+ import type { Telemetry } from '../telemetry/telemetry.js';
14
+ import type { ProjectRegistry } from '../project/project-registry.js';
15
+ import type { Logger } from '../logging/logger.js';
16
+ import type { LogLevel } from '../logging/types.js';
7
17
  /**
8
18
  * Configuration for creating an agent runtime.
9
19
  * Only `agentId` is required — everything else has sensible defaults.
@@ -17,6 +27,8 @@ export interface AgentRuntimeConfig {
17
27
  plansPath?: string;
18
28
  /** Intelligence data directory to seed vault from. Optional. */
19
29
  dataDir?: string;
30
+ /** Minimum log level. Default: 'info' (or SOLERI_LOG_LEVEL env var). */
31
+ logLevel?: LogLevel;
20
32
  }
21
33
  /**
22
34
  * Fully initialized agent runtime — all modules ready.
@@ -24,15 +36,26 @@ export interface AgentRuntimeConfig {
24
36
  */
25
37
  export interface AgentRuntime {
26
38
  config: AgentRuntimeConfig;
39
+ logger: Logger;
27
40
  vault: Vault;
28
41
  brain: Brain;
42
+ brainIntelligence: BrainIntelligence;
29
43
  planner: Planner;
30
44
  curator: Curator;
45
+ governance: Governance;
46
+ cognee: CogneeClient;
47
+ loop: LoopManager;
48
+ identityManager: IdentityManager;
49
+ intentRouter: IntentRouter;
31
50
  keyPool: {
32
51
  openai: KeyPool;
33
52
  anthropic: KeyPool;
34
53
  };
35
54
  llmClient: LLMClient;
55
+ telemetry: Telemetry;
56
+ projectRegistry: ProjectRegistry;
57
+ /** Timestamp (ms since epoch) when this runtime was created. */
58
+ createdAt: number;
36
59
  /** Close the vault database connection. Call on shutdown. */
37
60
  close(): void;
38
61
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/runtime/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,oFAAoF;IACpF,OAAO,EAAE,MAAM,CAAC;IAChB,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iEAAiE;IACjE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gEAAgE;IAChE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,kBAAkB,CAAC;IAC3B,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC;IACjD,SAAS,EAAE,SAAS,CAAC;IACrB,6DAA6D;IAC7D,KAAK,IAAI,IAAI,CAAC;CACf"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/runtime/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEpD;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,oFAAoF;IACpF,OAAO,EAAE,MAAM,CAAC;IAChB,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iEAAiE;IACjE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gEAAgE;IAChE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,kBAAkB,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,KAAK,CAAC;IACb,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,UAAU,CAAC;IACvB,MAAM,EAAE,YAAY,CAAC;IACrB,IAAI,EAAE,WAAW,CAAC;IAClB,eAAe,EAAE,eAAe,CAAC;IACjC,YAAY,EAAE,YAAY,CAAC;IAC3B,OAAO,EAAE;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC;IACjD,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,SAAS,CAAC;IACrB,eAAe,EAAE,eAAe,CAAC;IACjC,gEAAgE;IAChE,SAAS,EAAE,MAAM,CAAC;IAClB,6DAA6D;IAC7D,KAAK,IAAI,IAAI,CAAC;CACf"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Extra vault operations — 12 ops that extend the 4 base vault ops in core-ops.ts.
3
+ *
4
+ * Groups: single-entry CRUD (3), bulk (2), discovery (3), import/export (3), analytics (1).
5
+ */
6
+ import type { OpDefinition } from '../facades/types.js';
7
+ import type { AgentRuntime } from './types.js';
8
+ export declare function createVaultExtraOps(runtime: AgentRuntime): OpDefinition[];
9
+ //# sourceMappingURL=vault-extra-ops.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vault-extra-ops.d.ts","sourceRoot":"","sources":["../../src/runtime/vault-extra-ops.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAiB/C,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,YAAY,GAAG,YAAY,EAAE,CAsMzE"}
@@ -0,0 +1,195 @@
1
+ /**
2
+ * Extra vault operations — 12 ops that extend the 4 base vault ops in core-ops.ts.
3
+ *
4
+ * Groups: single-entry CRUD (3), bulk (2), discovery (3), import/export (3), analytics (1).
5
+ */
6
+ import { z } from 'zod';
7
+ const entrySchema = z.object({
8
+ id: z.string(),
9
+ type: z.enum(['pattern', 'anti-pattern', 'rule']),
10
+ domain: z.string(),
11
+ title: z.string(),
12
+ severity: z.enum(['critical', 'warning', 'suggestion']),
13
+ description: z.string(),
14
+ context: z.string().optional(),
15
+ example: z.string().optional(),
16
+ counterExample: z.string().optional(),
17
+ why: z.string().optional(),
18
+ tags: z.array(z.string()),
19
+ appliesTo: z.array(z.string()).optional(),
20
+ });
21
+ export function createVaultExtraOps(runtime) {
22
+ const { vault } = runtime;
23
+ return [
24
+ // ─── Single-Entry CRUD ──────────────────────────────────────────
25
+ {
26
+ name: 'vault_get',
27
+ description: 'Get a single vault entry by ID.',
28
+ auth: 'read',
29
+ schema: z.object({ id: z.string() }),
30
+ handler: async (params) => {
31
+ const entry = vault.get(params.id);
32
+ if (!entry)
33
+ return { error: 'Entry not found: ' + params.id };
34
+ return entry;
35
+ },
36
+ },
37
+ {
38
+ name: 'vault_update',
39
+ description: 'Update an existing vault entry. Only the fields provided are changed; the rest stay the same.',
40
+ auth: 'write',
41
+ schema: z.object({
42
+ id: z.string(),
43
+ title: z.string().optional(),
44
+ description: z.string().optional(),
45
+ context: z.string().optional(),
46
+ example: z.string().optional(),
47
+ counterExample: z.string().optional(),
48
+ why: z.string().optional(),
49
+ tags: z.array(z.string()).optional(),
50
+ appliesTo: z.array(z.string()).optional(),
51
+ severity: z.enum(['critical', 'warning', 'suggestion']).optional(),
52
+ type: z.enum(['pattern', 'anti-pattern', 'rule']).optional(),
53
+ domain: z.string().optional(),
54
+ }),
55
+ handler: async (params) => {
56
+ const id = params.id;
57
+ const { id: _id, ...fields } = params;
58
+ // Strip undefined values so we only pass what was actually provided
59
+ const cleaned = {};
60
+ for (const [k, v] of Object.entries(fields)) {
61
+ if (v !== undefined)
62
+ cleaned[k] = v;
63
+ }
64
+ if (Object.keys(cleaned).length === 0) {
65
+ return { error: 'No fields to update' };
66
+ }
67
+ const updated = vault.update(id, cleaned);
68
+ if (!updated)
69
+ return { error: 'Entry not found: ' + id };
70
+ return { updated: true, entry: updated };
71
+ },
72
+ },
73
+ {
74
+ name: 'vault_remove',
75
+ description: 'Remove a single vault entry by ID.',
76
+ auth: 'admin',
77
+ schema: z.object({ id: z.string() }),
78
+ handler: async (params) => {
79
+ const removed = vault.remove(params.id);
80
+ return { removed, id: params.id };
81
+ },
82
+ },
83
+ // ─── Bulk Operations ────────────────────────────────────────────
84
+ {
85
+ name: 'vault_bulk_add',
86
+ description: 'Add multiple vault entries at once. Uses upsert — existing IDs are updated.',
87
+ auth: 'write',
88
+ schema: z.object({
89
+ entries: z.array(entrySchema),
90
+ }),
91
+ handler: async (params) => {
92
+ const entries = params.entries;
93
+ const count = vault.seed(entries);
94
+ return { added: count, total: vault.stats().totalEntries };
95
+ },
96
+ },
97
+ {
98
+ name: 'vault_bulk_remove',
99
+ description: 'Remove multiple vault entries by IDs in a single transaction.',
100
+ auth: 'admin',
101
+ schema: z.object({
102
+ ids: z.array(z.string()),
103
+ }),
104
+ handler: async (params) => {
105
+ const ids = params.ids;
106
+ const removed = vault.bulkRemove(ids);
107
+ return { removed, requested: ids.length, total: vault.stats().totalEntries };
108
+ },
109
+ },
110
+ // ─── Discovery ──────────────────────────────────────────────────
111
+ {
112
+ name: 'vault_tags',
113
+ description: 'List all unique tags used across vault entries with their occurrence counts.',
114
+ auth: 'read',
115
+ handler: async () => {
116
+ const tags = vault.getTags();
117
+ return { tags, count: tags.length };
118
+ },
119
+ },
120
+ {
121
+ name: 'vault_domains',
122
+ description: 'List all domains in the vault with their entry counts.',
123
+ auth: 'read',
124
+ handler: async () => {
125
+ const domains = vault.getDomains();
126
+ return { domains, count: domains.length };
127
+ },
128
+ },
129
+ {
130
+ name: 'vault_recent',
131
+ description: 'Get recently added or updated vault entries, ordered by most recent first.',
132
+ auth: 'read',
133
+ schema: z.object({
134
+ limit: z.number().optional().describe('Max entries to return (default 20)'),
135
+ }),
136
+ handler: async (params) => {
137
+ const limit = params.limit ?? 20;
138
+ const entries = vault.getRecent(limit);
139
+ return { entries, count: entries.length };
140
+ },
141
+ },
142
+ // ─── Import / Export / Seed ──────────────────────────────────────
143
+ {
144
+ name: 'vault_import',
145
+ description: 'Import vault entries from a JSON bundle. Uses upsert — existing IDs are updated, new IDs are inserted.',
146
+ auth: 'write',
147
+ schema: z.object({
148
+ entries: z.array(entrySchema),
149
+ }),
150
+ handler: async (params) => {
151
+ const entries = params.entries;
152
+ const before = vault.stats().totalEntries;
153
+ const count = vault.seed(entries);
154
+ const after = vault.stats().totalEntries;
155
+ return {
156
+ imported: count,
157
+ newEntries: after - before,
158
+ updatedEntries: count - (after - before),
159
+ total: after,
160
+ };
161
+ },
162
+ },
163
+ {
164
+ name: 'vault_seed',
165
+ description: 'Seed the vault from intelligence data. Idempotent — safe to call multiple times. Uses upsert.',
166
+ auth: 'write',
167
+ schema: z.object({
168
+ entries: z.array(entrySchema),
169
+ }),
170
+ handler: async (params) => {
171
+ const entries = params.entries;
172
+ const count = vault.seed(entries);
173
+ return { seeded: count, total: vault.stats().totalEntries };
174
+ },
175
+ },
176
+ {
177
+ name: 'vault_backup',
178
+ description: 'Export the full vault as a JSON bundle suitable for backup or transfer to another agent.',
179
+ auth: 'read',
180
+ handler: async () => {
181
+ return vault.exportAll();
182
+ },
183
+ },
184
+ // ─── Analytics ──────────────────────────────────────────────────
185
+ {
186
+ name: 'vault_age_report',
187
+ description: 'Show vault entry age distribution — how many entries are from today, this week, this month, this quarter, or older.',
188
+ auth: 'read',
189
+ handler: async () => {
190
+ return vault.getAgeReport();
191
+ },
192
+ },
193
+ ];
194
+ }
195
+ //# sourceMappingURL=vault-extra-ops.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vault-extra-ops.js","sourceRoot":"","sources":["../../src/runtime/vault-extra-ops.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * In-memory telemetry tracker for facade calls.
3
+ *
4
+ * No external deps — records calls, computes stats, bounds memory usage.
5
+ * Max 10 000 entries; auto-trims to 5 000 when limit is hit.
6
+ */
7
+ export interface FacadeCall {
8
+ facade: string;
9
+ op: string;
10
+ timestamp: number;
11
+ durationMs: number;
12
+ success: boolean;
13
+ error?: string;
14
+ }
15
+ export interface TelemetryStats {
16
+ totalCalls: number;
17
+ successRate: number;
18
+ avgDurationMs: number;
19
+ callsByFacade: Record<string, number>;
20
+ callsByOp: Record<string, number>;
21
+ errorsByOp: Record<string, number>;
22
+ slowestOps: Array<{
23
+ op: string;
24
+ avgMs: number;
25
+ }>;
26
+ since: number;
27
+ }
28
+ export declare class Telemetry {
29
+ private calls;
30
+ private startedAt;
31
+ /**
32
+ * Record a facade call. Timestamp is auto-set to Date.now().
33
+ */
34
+ record(call: Omit<FacadeCall, 'timestamp'>): void;
35
+ /**
36
+ * Compute aggregate stats from all recorded calls.
37
+ */
38
+ getStats(): TelemetryStats;
39
+ /**
40
+ * Get the N most recent calls, newest first.
41
+ */
42
+ getRecent(limit?: number): FacadeCall[];
43
+ /**
44
+ * Clear all recorded data and reset the start timestamp.
45
+ */
46
+ reset(): void;
47
+ }
48
+ //# sourceMappingURL=telemetry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../../src/telemetry/telemetry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,UAAU,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjD,KAAK,EAAE,MAAM,CAAC;CACf;AAKD,qBAAa,SAAS;IACpB,OAAO,CAAC,KAAK,CAAoB;IACjC,OAAO,CAAC,SAAS,CAAc;IAE/B;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,GAAG,IAAI;IAOjD;;OAEG;IACH,QAAQ,IAAI,cAAc;IAwD1B;;OAEG;IACH,SAAS,CAAC,KAAK,SAAK,GAAG,UAAU,EAAE;IAInC;;OAEG;IACH,KAAK,IAAI,IAAI;CAId"}