@auxiora/runtime 1.10.0 → 1.10.5

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 (57) hide show
  1. package/dist/__tests__/telemetry-wiring.test.d.ts +2 -0
  2. package/dist/__tests__/telemetry-wiring.test.d.ts.map +1 -0
  3. package/dist/__tests__/telemetry-wiring.test.js +61 -0
  4. package/dist/__tests__/telemetry-wiring.test.js.map +1 -0
  5. package/dist/confidence.d.ts +46 -0
  6. package/dist/confidence.d.ts.map +1 -0
  7. package/dist/confidence.js +112 -0
  8. package/dist/confidence.js.map +1 -0
  9. package/dist/enrichment/__tests__/integration.test.js +10 -0
  10. package/dist/enrichment/__tests__/integration.test.js.map +1 -1
  11. package/dist/enrichment/__tests__/telemetry-stage.test.d.ts +2 -0
  12. package/dist/enrichment/__tests__/telemetry-stage.test.d.ts.map +1 -0
  13. package/dist/enrichment/__tests__/telemetry-stage.test.js +61 -0
  14. package/dist/enrichment/__tests__/telemetry-stage.test.js.map +1 -0
  15. package/dist/enrichment/index.d.ts +5 -0
  16. package/dist/enrichment/index.d.ts.map +1 -1
  17. package/dist/enrichment/index.js +3 -0
  18. package/dist/enrichment/index.js.map +1 -1
  19. package/dist/enrichment/stages/group-context-stage.d.ts +8 -0
  20. package/dist/enrichment/stages/group-context-stage.d.ts.map +1 -0
  21. package/dist/enrichment/stages/group-context-stage.js +24 -0
  22. package/dist/enrichment/stages/group-context-stage.js.map +1 -0
  23. package/dist/enrichment/stages/learning-stage.d.ts +17 -0
  24. package/dist/enrichment/stages/learning-stage.d.ts.map +1 -0
  25. package/dist/enrichment/stages/learning-stage.js +37 -0
  26. package/dist/enrichment/stages/learning-stage.js.map +1 -0
  27. package/dist/enrichment/stages/telemetry-stage.d.ts +18 -0
  28. package/dist/enrichment/stages/telemetry-stage.d.ts.map +1 -0
  29. package/dist/enrichment/stages/telemetry-stage.js +39 -0
  30. package/dist/enrichment/stages/telemetry-stage.js.map +1 -0
  31. package/dist/enrichment/types.d.ts +6 -0
  32. package/dist/enrichment/types.d.ts.map +1 -1
  33. package/dist/index.d.ts +12 -0
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +288 -26
  36. package/dist/index.js.map +1 -1
  37. package/dist/queue-wiring.d.ts +73 -0
  38. package/dist/queue-wiring.d.ts.map +1 -0
  39. package/dist/queue-wiring.js +71 -0
  40. package/dist/queue-wiring.js.map +1 -0
  41. package/dist/response-provenance.d.ts +70 -0
  42. package/dist/response-provenance.d.ts.map +1 -0
  43. package/dist/response-provenance.js +115 -0
  44. package/dist/response-provenance.js.map +1 -0
  45. package/dist/source-attribution.d.ts +55 -0
  46. package/dist/source-attribution.d.ts.map +1 -0
  47. package/dist/source-attribution.js +107 -0
  48. package/dist/source-attribution.js.map +1 -0
  49. package/dist/telemetry-wiring.d.ts +28 -0
  50. package/dist/telemetry-wiring.d.ts.map +1 -0
  51. package/dist/telemetry-wiring.js +31 -0
  52. package/dist/telemetry-wiring.js.map +1 -0
  53. package/dist/user-model-export.d.ts +109 -0
  54. package/dist/user-model-export.d.ts.map +1 -0
  55. package/dist/user-model-export.js +88 -0
  56. package/dist/user-model-export.js.map +1 -0
  57. package/package.json +77 -72
package/dist/index.d.ts CHANGED
@@ -39,6 +39,8 @@ export declare class Auxiora {
39
39
  private actionPlanner?;
40
40
  private orchestrationEngine?;
41
41
  private jobQueue?;
42
+ private telemetryTracker?;
43
+ private sessionReflector?;
42
44
  private userManager?;
43
45
  private workflowEngine?;
44
46
  private approvalManager?;
@@ -218,5 +220,15 @@ export declare class Auxiora {
218
220
  }
219
221
  export { AgentRouter, AgentInstance, type AgentRoutingConfig, type AgentRoutingRule, type AgentConfig, } from './agent-router.js';
220
222
  export { BlockStream, ToolOutputStream, type BlockType, type ContentBlock, type BlockStreamEvent, type BlockStreamSender, } from './block-stream.js';
223
+ export { SourceAttributor } from './source-attribution.js';
224
+ export type { Attribution, AttributedSegment, ResponseAttribution, AttributionSource, SourceType } from './source-attribution.js';
225
+ export { ConfidenceAssessor } from './confidence.js';
226
+ export type { ConfidenceLevel, KnowledgeSource, ConfidenceSignal, ConfidenceAssessment, UncertaintyMarker } from './confidence.js';
227
+ export { ResponseProvenanceTracker } from './response-provenance.js';
228
+ export type { ProvenanceEntry, ProvenanceSummary, ContextSignalRecord, ToolCallRecord } from './response-provenance.js';
229
+ export { UserModelExporter } from './user-model-export.js';
230
+ export type { UserModelView, DomainProfile, PreferenceItem, DecisionItem } from './user-model-export.js';
231
+ export { createReActJobHandler, createWorkflowJobHandler } from './queue-wiring.js';
232
+ export type { QueuedReActPayload, QueuedWorkflowPayload } from './queue-wiring.js';
221
233
  export declare function startAuxiora(options?: AuxioraOptions): Promise<Auxiora>;
222
234
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -18,12 +18,10 @@ import * as path from 'node:path';
18
18
  import { BehaviorManager, evaluateConditions } from '@auxiora/behaviors';
19
19
  import { BrowserManager } from '@auxiora/browser';
20
20
  import { ClipboardMonitor, AppController, SystemStateMonitor } from '@auxiora/os-bridge';
21
- import { VoiceManager } from '@auxiora/voice';
22
- import { WhisperSTT } from '@auxiora/stt';
23
- import { OpenAITTS } from '@auxiora/tts';
21
+ import { VoiceManager, detectVoiceProviders, createSTTProvider, createTTSProvider } from '@auxiora/voice';
24
22
  import { WebhookManager } from '@auxiora/webhooks';
25
23
  import { createDashboardRouter } from '@auxiora/dashboard';
26
- import { PluginLoader } from '@auxiora/plugins';
24
+ import { PluginLoader, registerCreateSkillTool } from '@auxiora/plugins';
27
25
  import { MemoryStore, MemoryRetriever, MemoryExtractor, PatternDetector, PersonalityAdapter, } from '@auxiora/memory';
28
26
  import { TrustEngine, ActionAuditTrail, RollbackManager, TrustGate } from '@auxiora/autonomy';
29
27
  import { IntentParser, ActionPlanner } from '@auxiora/intent';
@@ -42,6 +40,9 @@ import { linearConnector } from '@auxiora/connector-linear';
42
40
  import { notionConnector } from '@auxiora/connector-notion';
43
41
  import { homeAssistantConnector } from '@auxiora/connector-homeassistant';
44
42
  import { twitterConnector, linkedinConnector, redditConnector, instagramConnector } from '@auxiora/connector-social';
43
+ import { spotifyConnector } from '@auxiora/connector-spotify';
44
+ import { hueConnector } from '@auxiora/connector-hue';
45
+ import { obsidianConnector } from '@auxiora/connector-obsidian';
45
46
  import { ConversationEngine } from '@auxiora/conversation';
46
47
  import { EmailTriageEngine, ThreadSummarizer } from '@auxiora/email-intelligence';
47
48
  import { ScheduleAnalyzer, ScheduleOptimizer, MeetingPrepGenerator } from '@auxiora/calendar-intelligence';
@@ -52,6 +53,7 @@ import { CapabilityCatalogImpl, HealthMonitorImpl, createIntrospectTool, generat
52
53
  import { JobQueue } from '@auxiora/job-queue';
53
54
  import { Consciousness } from '@auxiora/consciousness';
54
55
  import { McpClientManager } from '@auxiora/mcp';
56
+ // import { createMcpServer, StdioServerTransport } from '@auxiora/mcp-server';
55
57
  import { GuardrailPipeline } from '@auxiora/guardrails';
56
58
  import { collectTransparencyMeta } from './transparency/index.js';
57
59
  import { IntentParser as NLIntentParser, AutomationBuilder } from '@auxiora/nl-automation';
@@ -76,7 +78,7 @@ import { getModesDir } from '@auxiora/core';
76
78
  import { fileURLToPath } from 'node:url';
77
79
  import { getLogger, generateRequestId, runWithRequestId } from '@auxiora/logger';
78
80
  import { SelfAwarenessAssembler, InMemoryAwarenessStorage, ConversationReflector, CapacityMonitor, KnowledgeBoundary, RelationshipModel, TemporalTracker, EnvironmentSensor, MetaCognitor, } from '@auxiora/self-awareness';
79
- import { EnrichmentPipeline, MemoryStage, ModeStage, ArchitectStage, SelfAwarenessStage } from './enrichment/index.js';
81
+ import { EnrichmentPipeline, MemoryStage, ModeStage, ArchitectStage, SelfAwarenessStage, GroupContextStage, TelemetryStage } from './enrichment/index.js';
80
82
  /**
81
83
  * Map Claude Code emulation tool calls to our actual tool names + input format.
82
84
  * The model may call CC tools (WebSearch, Bash, etc.) since they're in the request for OAuth compat.
@@ -152,6 +154,9 @@ export class Auxiora {
152
154
  actionPlanner;
153
155
  orchestrationEngine;
154
156
  jobQueue;
157
+ // Self-improvement telemetry (structural types — no direct @auxiora/telemetry import)
158
+ telemetryTracker;
159
+ sessionReflector;
155
160
  // [P14] Team / Social
156
161
  userManager;
157
162
  workflowEngine;
@@ -274,6 +279,12 @@ export class Auxiora {
274
279
  });
275
280
  }
276
281
  }
282
+ // MCP server (expose Auxiora as MCP tools) - enabled via config
283
+ // if (config.mcpServer?.enabled) {
284
+ // const mcpServer = createMcpServer({ memoryStore: this.memoryStore, ... });
285
+ // const transport = new StdioServerTransport();
286
+ // await mcpServer.connect(transport);
287
+ // }
277
288
  // Initialize sessions
278
289
  this.sessions = new SessionManager({
279
290
  maxContextTokens: this.config.session.maxContextTokens,
@@ -472,17 +483,30 @@ export class Auxiora {
472
483
  await this.behaviors.executeNow(payload.behaviorId);
473
484
  }
474
485
  });
475
- // Register ambient pattern flush handler (re-enqueues itself)
486
+ // Register ambient pattern flush handler (re-enqueues itself on success only)
476
487
  this.jobQueue.register('ambient-flush', async (_payload, ctx) => {
477
488
  if (this.ambientEngine) {
478
489
  const serialized = this.ambientEngine.serialize();
479
490
  ctx.checkpoint(serialized);
480
491
  }
481
- // Re-enqueue next flush in 5 minutes
482
- if (this.jobQueue) {
483
- this.jobQueue.enqueue('ambient-flush', {}, { scheduledAt: Date.now() + 5 * 60 * 1000 });
492
+ });
493
+ // Listen for completion to schedule the next flush (avoids runaway re-enqueue on failure)
494
+ this.jobQueue.on('job:completed', (data) => {
495
+ const { job } = data;
496
+ if (job.type === 'ambient-flush' && this.jobQueue) {
497
+ // Check for existing pending ambient-flush before enqueueing
498
+ const pending = this.jobQueue.listJobs({ type: 'ambient-flush', status: 'pending' });
499
+ if (pending.length === 0) {
500
+ this.jobQueue.enqueue('ambient-flush', {}, { scheduledAt: Date.now() + 5 * 60 * 1000 });
501
+ }
484
502
  }
485
503
  });
504
+ // Purge stale ambient-flush jobs that accumulated from the re-enqueue bug
505
+ const purgedPending = this.jobQueue.purgeByType('ambient-flush', 'pending');
506
+ const purgedDead = this.jobQueue.purgeByType('ambient-flush', 'dead');
507
+ if (purgedPending > 0 || purgedDead > 0) {
508
+ this.logger.info(`Purged stale ambient-flush jobs: ${purgedPending} pending, ${purgedDead} dead`);
509
+ }
486
510
  this.jobQueue.start();
487
511
  this.logger.info('Durable job queue initialized');
488
512
  // Initialize behavior system
@@ -627,22 +651,37 @@ export class Auxiora {
627
651
  setGrammarChecker(grammarChecker);
628
652
  setLanguageDetector(languageDetector);
629
653
  this.logger.info('Compose system initialized');
630
- // Initialize voice system (if enabled and OpenAI key available)
654
+ // Initialize voice system (if enabled auto-detects providers)
631
655
  if (this.config.voice?.enabled) {
632
- let openaiKeyForVoice;
633
- try {
634
- openaiKeyForVoice = this.vault.get('OPENAI_API_KEY');
635
- }
636
- catch {
637
- // Vault locked
638
- }
639
- if (openaiKeyForVoice) {
656
+ const detected = await detectVoiceProviders({
657
+ sttProvider: this.config.voice.sttProvider ?? 'auto',
658
+ ttsProvider: this.config.voice.ttsProvider ?? 'auto',
659
+ }, this.vault);
660
+ if (detected.stt.provider && detected.tts.provider) {
661
+ let openaiKey;
662
+ let elevenKey;
663
+ try {
664
+ openaiKey = this.vault.get('OPENAI_API_KEY');
665
+ }
666
+ catch { /* vault locked or key missing */ }
667
+ try {
668
+ elevenKey = this.vault.get('ELEVENLABS_API_KEY');
669
+ }
670
+ catch { /* vault locked or key missing */ }
671
+ const sttProvider = createSTTProvider(detected.stt.provider, {
672
+ apiKey: openaiKey,
673
+ binaryPath: detected.stt.binaryPath,
674
+ modelPath: detected.stt.modelPath,
675
+ });
676
+ const ttsProvider = createTTSProvider(detected.tts.provider, {
677
+ apiKey: detected.tts.provider === 'elevenlabs-tts' ? elevenKey : openaiKey,
678
+ binaryPath: detected.tts.binaryPath,
679
+ modelPath: detected.tts.modelPath,
680
+ defaultVoice: this.config.voice.defaultVoice,
681
+ });
640
682
  this.voiceManager = new VoiceManager({
641
- sttProvider: new WhisperSTT({ apiKey: openaiKeyForVoice }),
642
- ttsProvider: new OpenAITTS({
643
- apiKey: openaiKeyForVoice,
644
- defaultVoice: this.config.voice.defaultVoice,
645
- }),
683
+ sttProvider,
684
+ ttsProvider,
646
685
  config: {
647
686
  enabled: true,
648
687
  defaultVoice: this.config.voice.defaultVoice,
@@ -652,10 +691,17 @@ export class Auxiora {
652
691
  },
653
692
  });
654
693
  this.gateway.onVoiceMessage(this.handleVoiceMessage.bind(this));
655
- this.logger.info('Voice mode enabled');
694
+ this.logger.info('Voice mode enabled', {
695
+ stt: detected.stt.provider,
696
+ tts: detected.tts.provider,
697
+ });
656
698
  }
657
699
  else {
658
- this.logger.warn('Voice mode enabled in config but no OPENAI_API_KEY found in vault');
700
+ audit('voice.skipped', { sttReason: detected.stt.reason, ttsReason: detected.tts.reason });
701
+ this.logger.warn('Voice mode enabled but no providers available', {
702
+ stt: detected.stt.reason,
703
+ tts: detected.tts.reason,
704
+ });
659
705
  }
660
706
  }
661
707
  // Initialize webhook system (if enabled)
@@ -1214,17 +1260,84 @@ export class Auxiora {
1214
1260
  }
1215
1261
  res.json(this.jobQueue.getStats());
1216
1262
  });
1263
+ jobsRouter.get('/list', (req, res) => {
1264
+ if (!this.jobQueue) {
1265
+ res.json({ data: [] });
1266
+ return;
1267
+ }
1268
+ const status = req.query.status;
1269
+ const type = req.query.type;
1270
+ const limit = req.query.limit ? Number(req.query.limit) : 50;
1271
+ const filter = { limit };
1272
+ if (status)
1273
+ filter.status = status;
1274
+ if (type)
1275
+ filter.type = type;
1276
+ const jobs = this.jobQueue.listJobs(filter);
1277
+ res.json({ data: jobs });
1278
+ });
1279
+ jobsRouter.get('/:id', (req, res) => {
1280
+ if (!this.jobQueue) {
1281
+ res.status(404).json({ error: 'Job queue not available' });
1282
+ return;
1283
+ }
1284
+ const job = this.jobQueue.getJob(String(req.params.id));
1285
+ if (!job) {
1286
+ res.status(404).json({ error: 'Job not found' });
1287
+ return;
1288
+ }
1289
+ res.json({ data: job });
1290
+ });
1291
+ jobsRouter.post('/:id/retry', (req, res) => {
1292
+ if (!this.jobQueue) {
1293
+ res.status(503).json({ error: 'Job queue not available' });
1294
+ return;
1295
+ }
1296
+ const job = this.jobQueue.getJob(String(req.params.id));
1297
+ if (!job) {
1298
+ res.status(404).json({ error: 'Job not found' });
1299
+ return;
1300
+ }
1301
+ if (job.status !== 'dead' && job.status !== 'failed') {
1302
+ res.status(400).json({ error: 'Only dead or failed jobs can be retried' });
1303
+ return;
1304
+ }
1305
+ const newId = this.jobQueue.enqueue(job.type, job.payload);
1306
+ res.json({ data: { originalId: job.id, newJobId: newId } });
1307
+ });
1217
1308
  return jobsRouter;
1218
1309
  })());
1219
1310
  // Initialize plugin system (if enabled)
1220
1311
  if (this.config.plugins?.enabled !== false) {
1221
1312
  const pluginsDir = this.config.plugins?.dir || undefined;
1222
1313
  this.pluginLoader = new PluginLoader(pluginsDir);
1314
+ const seeded = await this.pluginLoader.seedStarterSkills();
1315
+ if (seeded > 0) {
1316
+ this.logger.info(`Starter skills seeded: ${seeded}`);
1317
+ }
1223
1318
  const loaded = await this.pluginLoader.loadAll();
1224
1319
  const successful = loaded.filter(p => p.status === 'loaded');
1225
1320
  if (loaded.length > 0) {
1226
1321
  this.logger.info(`Plugins: ${successful.length} loaded, ${loaded.length - successful.length} failed`);
1227
1322
  }
1323
+ // Register the create_skill tool so the AI can author new plugins at runtime
1324
+ if (this.providers) {
1325
+ try {
1326
+ const provider = this.providers.getPrimaryProvider();
1327
+ registerCreateSkillTool({
1328
+ loader: this.pluginLoader,
1329
+ generate: async (prompt) => {
1330
+ const result = await provider.complete([{ role: 'user', content: prompt }]);
1331
+ return result.content;
1332
+ },
1333
+ pluginsDir: pluginsDir,
1334
+ });
1335
+ this.logger.info('Self-authoring skills enabled (create_skill tool registered)');
1336
+ }
1337
+ catch {
1338
+ this.logger.warn('Self-authoring skills disabled: no AI provider available');
1339
+ }
1340
+ }
1228
1341
  }
1229
1342
  // Initialize memory system (if enabled)
1230
1343
  if (this.config.memory?.enabled !== false) {
@@ -1336,7 +1449,11 @@ export class Auxiora {
1336
1449
  this.anticipationEngine = new AnticipationEngine();
1337
1450
  this.ambientAwarenessCollector = new AmbientAwarenessCollector();
1338
1451
  if (this.jobQueue) {
1339
- this.jobQueue.enqueue('ambient-flush', {}, { scheduledAt: Date.now() + 5 * 60 * 1000 });
1452
+ // Only enqueue if no ambient-flush jobs already exist (prevents buildup on restart)
1453
+ const existing = this.jobQueue.listJobs({ type: 'ambient-flush', status: 'pending' });
1454
+ if (existing.length === 0) {
1455
+ this.jobQueue.enqueue('ambient-flush', {}, { scheduledAt: Date.now() + 5 * 60 * 1000 });
1456
+ }
1340
1457
  }
1341
1458
  this.logger.info('Ambient intelligence initialized');
1342
1459
  // Initialize RAG document store
@@ -1436,6 +1553,9 @@ export class Auxiora {
1436
1553
  this.connectorRegistry.register(linkedinConnector);
1437
1554
  this.connectorRegistry.register(redditConnector);
1438
1555
  this.connectorRegistry.register(instagramConnector);
1556
+ this.connectorRegistry.register(spotifyConnector);
1557
+ this.connectorRegistry.register(hueConnector);
1558
+ this.connectorRegistry.register(obsidianConnector);
1439
1559
  this.triggerManager = new TriggerManager(this.connectorRegistry, this.connectorAuthManager);
1440
1560
  // Restore connector tokens from vault (per-connector try-catch so one
1441
1561
  // failure doesn't prevent others from loading)
@@ -2285,6 +2405,13 @@ export class Auxiora {
2285
2405
  }
2286
2406
  buildEnrichmentPipeline() {
2287
2407
  this.enrichmentPipeline = new EnrichmentPipeline();
2408
+ // Stage 0: Telemetry warnings (order 50) — injects operational insights before everything
2409
+ if (this.telemetryTracker) {
2410
+ const tracker = this.telemetryTracker;
2411
+ this.enrichmentPipeline.addStage(new TelemetryStage(() => tracker.getFlaggedTools(0.7, 5)));
2412
+ }
2413
+ // Group context (order 150) — self-gates via enabled()
2414
+ this.enrichmentPipeline.addStage(new GroupContextStage());
2288
2415
  // Stage 1: Memory (order 100)
2289
2416
  if (this.memoryStore && this.memoryRetriever) {
2290
2417
  this.enrichmentPipeline.addStage(new MemoryStage(this.memoryStore, this.memoryRetriever));
@@ -3385,6 +3512,8 @@ export class Auxiora {
3385
3512
  userId: inbound.senderId ?? 'anonymous',
3386
3513
  toolsUsed: this.lastToolsUsed.get(session.id) ?? [],
3387
3514
  config: this.config,
3515
+ senderName: inbound.senderName,
3516
+ groupContext: inbound.groupContext,
3388
3517
  };
3389
3518
  const result = await this.enrichmentPipeline.run(enrichCtx);
3390
3519
  enrichedPrompt = result.prompt;
@@ -3834,6 +3963,14 @@ export class Auxiora {
3834
3963
  if (this.jobQueue) {
3835
3964
  await this.jobQueue.stop(30000);
3836
3965
  }
3966
+ // Session reflection — capture insights before shutdown
3967
+ if (this.sessionReflector) {
3968
+ try {
3969
+ const reflection = this.sessionReflector.reflect('shutdown');
3970
+ this.sessionReflector.save(reflection);
3971
+ }
3972
+ catch { /* best-effort — don't block shutdown */ }
3973
+ }
3837
3974
  this.consciousness?.shutdown();
3838
3975
  this.sessions.destroy();
3839
3976
  this.vault.lock();
@@ -4041,6 +4178,126 @@ export class Auxiora {
4041
4178
  }
4042
4179
  res.json(model);
4043
4180
  });
4181
+ // --- Memory management ---
4182
+ router.get('/memories', async (_req, res) => {
4183
+ if (!guard(_req, res))
4184
+ return;
4185
+ if (!this.memoryStore) {
4186
+ res.status(404).json({ error: 'Memory store not available' });
4187
+ return;
4188
+ }
4189
+ const category = _req.query?.category;
4190
+ const data = category
4191
+ ? await this.memoryStore.getByCategory(category)
4192
+ : await this.memoryStore.getAll();
4193
+ res.json({ data });
4194
+ });
4195
+ router.get('/memories/search', async (req, res) => {
4196
+ if (!guard(req, res))
4197
+ return;
4198
+ if (!this.memoryStore) {
4199
+ res.status(404).json({ error: 'Memory store not available' });
4200
+ return;
4201
+ }
4202
+ const q = req.query?.q;
4203
+ if (!q) {
4204
+ res.status(400).json({ error: 'Missing query parameter q' });
4205
+ return;
4206
+ }
4207
+ const data = await this.memoryStore.search(q);
4208
+ res.json({ data });
4209
+ });
4210
+ router.get('/memories/export', async (_req, res) => {
4211
+ if (!guard(_req, res))
4212
+ return;
4213
+ if (!this.memoryStore) {
4214
+ res.status(404).json({ error: 'Memory store not available' });
4215
+ return;
4216
+ }
4217
+ const data = await this.memoryStore.exportAll();
4218
+ res.json(data);
4219
+ });
4220
+ router.patch('/memories/:id', async (req, res) => {
4221
+ if (!guard(req, res))
4222
+ return;
4223
+ if (!this.memoryStore) {
4224
+ res.status(404).json({ error: 'Memory store not available' });
4225
+ return;
4226
+ }
4227
+ const { content, importance } = req.body ?? {};
4228
+ const updated = await this.memoryStore.update(req.params.id, { content, importance });
4229
+ if (!updated) {
4230
+ res.status(404).json({ error: 'Memory not found' });
4231
+ return;
4232
+ }
4233
+ res.json({ data: updated });
4234
+ });
4235
+ router.delete('/memories/:id', async (req, res) => {
4236
+ if (!guard(req, res))
4237
+ return;
4238
+ if (!this.memoryStore) {
4239
+ res.status(404).json({ error: 'Memory store not available' });
4240
+ return;
4241
+ }
4242
+ const removed = await this.memoryStore.remove(req.params.id);
4243
+ if (!removed) {
4244
+ res.status(404).json({ error: 'Memory not found' });
4245
+ return;
4246
+ }
4247
+ res.json({ success: true });
4248
+ });
4249
+ // --- Selective forgetting ---
4250
+ router.post('/forget', async (req, res) => {
4251
+ if (!guard(req, res))
4252
+ return;
4253
+ const { topic } = req.body ?? {};
4254
+ if (!topic || typeof topic !== 'string') {
4255
+ res.status(400).json({ error: 'Missing required field: topic' });
4256
+ return;
4257
+ }
4258
+ const removed = { memories: 0, decisions: 0 };
4259
+ if (this.memoryStore) {
4260
+ const matches = await this.memoryStore.search(topic);
4261
+ for (const m of matches) {
4262
+ if (await this.memoryStore.remove(m.id))
4263
+ removed.memories++;
4264
+ }
4265
+ }
4266
+ if (this.architect) {
4267
+ try {
4268
+ const dl = this.architect.decisionLog;
4269
+ if (dl) {
4270
+ const decisions = dl.query({ search: topic });
4271
+ for (const d of decisions) {
4272
+ dl.updateDecision(d.id, { status: 'abandoned' });
4273
+ removed.decisions++;
4274
+ }
4275
+ }
4276
+ }
4277
+ catch { }
4278
+ }
4279
+ res.json({ removed });
4280
+ });
4281
+ // --- Full personalization export ---
4282
+ router.get('/export/personalization', async (_req, res) => {
4283
+ if (!guard(_req, res))
4284
+ return;
4285
+ const exportData = {
4286
+ version: 1,
4287
+ exportedAt: Date.now(),
4288
+ };
4289
+ if (this.memoryStore) {
4290
+ exportData.memories = await this.memoryStore.exportAll();
4291
+ }
4292
+ if (this.architect) {
4293
+ try {
4294
+ exportData.architect = JSON.parse(await this.architect.exportData());
4295
+ }
4296
+ catch { }
4297
+ exportData.userModel = this.getCachedUserModel();
4298
+ }
4299
+ res.json(exportData);
4300
+ });
4044
4301
  // --- Corrections (Gap 8) ---
4045
4302
  router.post('/corrections', async (req, res) => {
4046
4303
  if (!guard(req, res))
@@ -5975,6 +6232,11 @@ function deepMerge(target, source) {
5975
6232
  }
5976
6233
  export { AgentRouter, AgentInstance, } from './agent-router.js';
5977
6234
  export { BlockStream, ToolOutputStream, } from './block-stream.js';
6235
+ export { SourceAttributor } from './source-attribution.js';
6236
+ export { ConfidenceAssessor } from './confidence.js';
6237
+ export { ResponseProvenanceTracker } from './response-provenance.js';
6238
+ export { UserModelExporter } from './user-model-export.js';
6239
+ export { createReActJobHandler, createWorkflowJobHandler } from './queue-wiring.js';
5978
6240
  export async function startAuxiora(options = {}) {
5979
6241
  const auxiora = new Auxiora();
5980
6242
  await auxiora.initialize(options);