Service Reference — Made Open Hub
Complete inventory of all services instantiated in apps/hub/src/main.ts. Services are grouped by capability area and listed in startup order.
Count: 150+ service instances across 86 service directories. 9,180+ tests (6,158 hub + 3,022 web). 28 AI agent tools. 8 connector plugins. 8 context resolvers.
Core Platform
These services form the foundation required for the MVP demo (intelligent call router).
| Service | Purpose | Key Methods | Dependencies | Status |
|---|---|---|---|---|
| EventBus | NATS JetStream client — publish/subscribe for all events | connect(), ensureStreams(), publish(), subscribe(), drain() | NATS URL | active |
| DataService | PostgreSQL CRUD via Supabase client — all entity operations | query(), getById(), insert(), update(), delete(), setLineageService() | Supabase URL + key | active |
| PrivacyEngine | PII scanning, consent enforcement, data anonymisation | scan(), enforce(), anonymise() | DataService, EventBus | active |
| AuditService | Append-only audit log — subscribes to events, records all access | start(), stop(), log() | DataService, EventBus | active |
| PolicyService | Zero-trust access control — evaluates policies before every operation | evaluate(), enforce(), checkAccess() | DataService, PrivacyEngine, AuditService | active |
| SearchService | Meilisearch indexing + full-text query with cache and circuit breaker | ensureIndexes(), bulkIndexEntities(), search() | Meili URL + key, CacheService, CircuitBreakerService | active |
| PluginManager | V8 isolate sandbox — loads, runs, and monitors plugins | loadPlugin(), executePlugin(), getPluginHealth() | plugins directory, EventBus, DataService | active |
| PluginRegistryService | Plugin catalog + ratings — seeds built-in plugins | seedBuiltinPlugins(), register(), search() | DataService, PluginManager, EventBus | active |
| ETLService | Raw connector data → unified entity model via event-driven pipeline | start(), stop(), transform() | EventBus, DataService, PluginManager | active |
| EmbeddingPipelineService | Auto-embed entities on data.Entity* events using AI models | start(), stop() | EventBus, DataService, AI config | active |
| ChannelService | Bidirectional communication — routes calls/SMS through channel plugins | start(), stop(), send(), route() | EventBus, PluginManager | active |
| RulesService | DSL evaluation engine — matches events against rules, fires actions | start(), stop(), evaluate() | EventBus, DataService, ChannelService, PolicyService, StreamProcessingService, RuleAnalyticsService | active |
| WorkflowService | Multi-step workflow execution (definitions + runs) | start(), stop(), execute() | EventBus, DataService, ChannelService | active |
| IntentionsService | Future-plane: schedule and execute user intentions via pg-boss | start(), stop(), create() | DataService, PgBoss, EventBus | active |
| ConnectorService | Schedule + manage connector plugins (MS Graph, etc.) | start(), stop() | EventBus, PluginManager, PgBoss | active |
Present Plane
| Service | Purpose | Key Methods | Dependencies | Status |
|---|---|---|---|---|
| StreamProcessingService | Redis-backed real-time event stream for present-plane processing | start(), stop(), process() | EventBus, Redis (IORedis) | active |
Sovereign AI
| Service | Purpose | Key Methods | Dependencies | Status |
|---|---|---|---|---|
| DocumentIntelligenceService | AI-powered document analysis (OCR, classification, extraction) | analyse(), classify() | DataService, EventBus, AgentConfig | active |
| ToolRegistry | Registers tools available to AI agents (search, docs, data) | register(), getTool(), listTools() | DataService, SearchService, DocumentIntelligenceService, ToolsService | active |
| AgentMemoryService | Persistent conversation memory for AI agents | store(), recall(), summarise() | DataService | active |
| MultiAgentOrchestrator | Coordinates multiple specialised AI agents for complex tasks | orchestrate(), delegate() | AgentConfig, ToolRegistry, AgentMemoryService | active |
| AgentService | Primary AI chat — LLM routing via OpenRouter/Ollama with RAG | query(), chat(), stream() | AgentConfig, DataService, PolicyService, SearchService, ToolRegistry, AgentMemoryService, CacheService | active |
Federation
| Service | Purpose | Key Methods | Dependencies | Status |
|---|---|---|---|---|
| DIDService | Decentralised Identifier (DID) creation and resolution | create(), resolve(), update() | DataService, HUB_URL | active |
| VCService | Verifiable Credential issuance and verification | issue(), verify(), revoke() | DataService, DIDService | active |
| DIDCommService | DIDComm v2 encrypted messaging between DIDs | send(), receive(), encrypt() | DataService, DIDService | active |
| ActivityPubService | ActivityPub federation — inbox/outbox, follow, activities | sendActivity(), receiveActivity(), follow() | DataService, EventBus, DIDService, HUB_URL | active |
| FederationService | Unified federation facade — coordinates AP, DID, VC, DIDComm | start(), stop(), federate() | ActivityPubService, DIDService, VCService, DIDCommService | active |
Marketplace + Reputation
| Service | Purpose | Key Methods | Dependencies | Status |
|---|---|---|---|---|
| MarketplaceService | Data product marketplace — list, search, transact | list(), search(), purchase() | DataService, EventBus, SearchService, PolicyService | active |
| DataProductBuilder | Create privacy-preserving data products from user data | build(), package() | DataService, PolicyService | active |
| ReputationService | Multi-domain trust scoring with VC-backed attestations | score(), attest(), decay() | DataService, EventBus, VCService | active |
| ResourceCoordinationService | Offer/Need matching, sharing economy exchange workflows | offer(), match(), exchange() | DataService, EventBus, DIDCommService | active |
Governance
| Service | Purpose | Key Methods | Dependencies | Status |
|---|---|---|---|---|
| TimeBankService | Time-based credit system — earn, spend, transfer time credits | credit(), debit(), balance() | DataService, EventBus | active |
| DisputeService | Dispute resolution workflow with VC-based evidence | file(), arbitrate(), resolve() | DataService, EventBus, VCService | active |
| ModerationService | Community content moderation — reports, actions, appeals | report(), moderate(), appeal() | DataService, EventBus | active |
| DAOService | DAO lifecycle — create, manage, membership | create(), join(), leave() | DataService, EventBus | active |
| ProposalService | Proposal creation and lifecycle management | create(), advance(), close() | DataService, EventBus, DAOService | active |
| VotingService | Voting mechanics — cast, tally, quorum | cast(), tally(), checkQuorum() | DataService, EventBus, ProposalService | active |
Web3
| Service | Purpose | Key Methods | Dependencies | Status |
|---|---|---|---|---|
| WalletService | Crypto wallet management — key derivation, signing | create(), sign(), getBalance() | DataService, EventBus | wired |
| TimeCreditBridgeService | Bridge time bank credits to on-chain tokens (Polygon/ETH) | bridge(), withdraw(), sync() | DataService, EventBus, TimeBankService, SmartContractConfigs | wired |
WebRTC Calling + Federated Marketplace
| Service | Purpose | Key Methods | Dependencies | Status |
|---|---|---|---|---|
| TwilioCallingService | WebRTC browser-to-phone calling via Twilio | generateToken(), handleInbound(), dial() | TwilioConfig, DataService, EventBus | active |
| FederatedMarketplaceService | Cross-instance marketplace federation via ActivityPub | publish(), discover(), transact() | DataService, EventBus, MarketplaceService, ActivityPubService | active |
Push Notifications + Webhooks
| Service | Purpose | Key Methods | Dependencies | Status |
|---|---|---|---|---|
| NotificationService | Push notifications (FCM) + in-app notifications | start(), stop(), send(), subscribe() | DataService, EventBus, FCM key | active |
| OutboundWebhookService | Deliver events to external webhook endpoints with retry | start(), stop(), register(), deliver() | DataService, EventBus | active |
Real-Time Collaboration
| Service | Purpose | Key Methods | Dependencies | Status |
|---|---|---|---|---|
| PresenceService | User online/offline presence via Supabase Realtime | setPresence(), getPresence(), subscribe() | DataService, EventBus, Supabase URL + key | active |
Document Intelligence + Plugin Marketplace
| Service | Purpose | Key Methods | Dependencies | Status |
|---|---|---|---|---|
| (PluginRegistryService) | (listed above in Core Platform — instantiated there for startup order) | |||
| (DocumentIntelligenceService) | (listed above in Sovereign AI — instantiated there for agent dependency) |
Scheduling + Advanced Rules
| Service | Purpose | Key Methods | Dependencies | Status |
|---|---|---|---|---|
| RuleAnalyticsService | Track rule execution metrics (hit counts, latency, outcomes) | record(), query(), topRules() | DataService | active |
| RuleTemplateService | Pre-built rule templates — seed, browse, instantiate | seedTemplates(), list(), instantiate() | DataService | active |
| ScheduledJobService | Cron-like scheduled job execution (exports, emails, cleanup) | start(), stop(), schedule(), run() | DataService, EventBus, ExportService, EmailService, SessionService | active |
Performance + Observability
| Service | Purpose | Key Methods | Dependencies | Status |
|---|---|---|---|---|
| CacheService | In-memory LRU cache with TTL and automatic pruning | get(), set(), invalidate(), clear(), stopPruneTimer() | config (ttlMs, maxSize) | active |
| MetricsService | Prometheus-compatible metrics collection | increment(), histogram(), gauge(), serialize() | none | active |
Resilience
| Service | Purpose | Key Methods | Dependencies | Status |
|---|---|---|---|---|
| RateLimiterService | Per-endpoint rate limiting with configurable windows | check(), consume(), reset() | rate limit configs | active |
| CircuitBreakerService | Circuit breaker pattern for external service calls | register(), execute(), getState() | breaker configs | active |
Event Sourcing
| Service | Purpose | Key Methods | Dependencies | Status |
|---|---|---|---|---|
| EventStoreService | Immutable event store — append, replay, time-travel queries | append(), replay(), getStream() | DataService | active |
Streaming + SSE
| Service | Purpose | Key Methods | Dependencies | Status |
|---|---|---|---|---|
| SseService | Server-Sent Events — real-time push to browsers via NATS bridge | startHeartbeat(), stopHeartbeat(), connectToNats(), subscribe() | EventBus | active |
| StreamingAgentService | Stream AI agent responses token-by-token via SSE | stream(), cancel() | AgentConfig, SseService, PolicyService | active |
| ActivityFeedService | Real-time activity feed — aggregates events into user-facing feed | start(), stop(), getFeed() | DataService, EventBus, SseService | active |
Multi-Tenancy
| Service | Purpose | Key Methods | Dependencies | Status |
|---|---|---|---|---|
| OrgService | Organisation CRUD, membership, tenant isolation | create(), addMember(), getOrg() | DataService | active |
| UsageService | Per-org usage tracking and metering | record(), query(), summary() | DataService | active |
Developer API
| Service | Purpose | Key Methods | Dependencies | Status |
|---|---|---|---|---|
| OAuthService | OAuth2 authorization server — app registration, token issuance | registerApp(), authorize(), token(), revoke() | DataService | active |
Advanced Search
| Service | Purpose | Key Methods | Dependencies | Status |
|---|---|---|---|---|
| VectorSearchService | pgvector-based semantic similarity search | search(), findSimilar() | DataService | active |
| HybridSearchService | Combines Meilisearch full-text + vector semantic search | search(), rank() | SearchService, VectorSearchService | active |
| SavedSearchService | Persistent saved searches with SSE-powered live updates | save(), execute(), subscribe() | DataService, HybridSearchService, SseService | active |
| RecommendationEngine | AI-powered entity recommendations from vectors + plugin data | recommend(), train() | DataService, VectorSearchService, PluginRegistryService | active |
Data Portability
| Service | Purpose | Key Methods | Dependencies | Status |
|---|---|---|---|---|
| VCardFormatter | Format contacts as vCard (.vcf) | format(), parse() | none | active |
| ICalFormatter | Format events as iCalendar (.ics) | format(), parse() | none | active |
| CsvFormatter | Format entities as CSV | format(), parse() | none | active |
| ExportService | Orchestrate data export in multiple formats | export(), schedule() | DataService, VCardFormatter, ICalFormatter, CsvFormatter | active |
| ImportService | Import data from vCard, iCal, CSV with event publishing | import(), validate() | DataService, VCardFormatter, ICalFormatter, CsvFormatter, EventBus | active |
Preferences
| Service | Purpose | Key Methods | Dependencies | Status |
|---|---|---|---|---|
| UserPreferencesService | User settings — theme, locale, notification preferences | get(), set(), reset() | DataService | active |
Error Tracking + Email
| Service | Purpose | Key Methods | Dependencies | Status |
|---|---|---|---|---|
| ErrorTrackingService | Aggregate and query application errors | track(), query(), acknowledge() | DataService | active |
| EmailService | Transactional email delivery | send(), queue(), retry() | DataService | active |
Billing + Feature Flags
| Service | Purpose | Key Methods | Dependencies | Status |
|---|---|---|---|---|
| BillingService | Stripe billing — subscriptions, invoices, webhooks | createCustomer(), subscribe(), handleWebhook() | DataService, Stripe keys | wired |
| FeatureFlagService | Feature flag evaluation with seeded defaults | seedFlags(), isEnabled(), setFlag() | DataService | active |
Security + Analytics
| Service | Purpose | Key Methods | Dependencies | Status |
|---|---|---|---|---|
| JwtService | JWT creation and verification | sign(), verify(), decode() | JWT secret | active |
| RbacService | Role-based access control evaluation | check(), assign(), revoke() | none | active |
| SessionService | User session management — create, validate, revoke | create(), validate(), revoke() | DataService, JwtService | active |
| AnalyticsService | User behaviour analytics — track events, query metrics | track(), query(), funnel() | DataService | active |
Data Lineage
| Service | Purpose | Key Methods | Dependencies | Status |
|---|---|---|---|---|
| LineageService | Field-level data provenance tracking across sources | record(), trace(), getLineage() | DataService | active |
| EntityMergeService | Deduplicate and merge person/org records | detect(), merge(), split() | DataService, LineageService, EventBus | active |
Tools
| Service | Purpose | Key Methods | Dependencies | Status |
|---|---|---|---|---|
| ToolsService | Execute tools/jobs requested by AI agents | execute(), getStatus() | DataService, EventBus | active |
Audio Intelligence
| Service | Purpose | Key Methods | Dependencies | Status |
|---|---|---|---|---|
| AudioETLService | Transcribe, analyse, and index audio via AI models | start(), stop(), transcribe() | EventBus, DataService, Supabase config, Ollama/OpenRouter | active |
| VoiceCommandService | Interpret voice commands and dispatch as jobs | start(), stop(), interpret() | EventBus, Supabase config, PgBoss, Ollama | active |
Device Control
| Service | Purpose | Key Methods | Dependencies | Status |
|---|---|---|---|---|
| DeviceCommandService | Send OS-level commands to connected devices | start(), stop(), send(), getStatus() | EventBus, Supabase config, PgBoss | active |
Unified Scheduling
| Service | Purpose | Key Methods | Dependencies | Status |
|---|---|---|---|---|
| SchedulerService | One-shot, cron, and iCal RRULE scheduling via pg-boss | scheduleAt(), scheduleAfter(), scheduleRecurring(), scheduleRrule(), start(), stop() | DataService, PgBoss, EventBus | active |
Knowledge Graph
| Service | Purpose | Key Methods | Dependencies | Status |
|---|---|---|---|---|
| LightRAGBridgeService | Event-driven bridge forwarding entity text to LightRAG for knowledge graph extraction | start(), stop(), indexDocument(), query(), getGraphData(), backfill() | EventBus, DataService, LightRAG URL | active |
| WikiService | Persistent compiled LLM wiki — pages, links, search and updates | search(), get(), upsert(), link() | DataService | active |
Inventory
| Service | Purpose | Key Methods | Dependencies | Status |
|---|---|---|---|---|
| InventoryService | Inventory items, spaces, maintenance records, and inventory events | listItems(), createItem(), listSpaces(), recordMaintenance() | DataService, EventBus | active |
Deep Communications
Nine services that form the unified communications layer — inbox materialisation, voice line management, voicemail, call transcription, full email compose/send, email AI intelligence, video meetings, contact timeline, and push delivery.
| Service | Purpose | Key Methods | Dependencies | Status |
|---|---|---|---|---|
| InboxService | Unified inbox — materialises every call, SMS, email, and voicemail as a typed inbox_items row; handles read/star/archive | start(), stop(), getInbox(), getUnreadCount(), markRead(), markStarred(), archive(), materializeInboxItem(), getContactTimeline(), resolveContact() | EventBus, DataService | active |
| PhoneLineService | Manage named Twilio phone lines per user — CRUD, DND schedule, VIP bypass | start(), stop(), listLines(), getLine(), createLine(), updateLine(), isDndActive(), isVipBypass() | DataService, EventBus | active |
| VoicemailService | Store Twilio voicemail webhooks as voicemails rows; manage call recordings | start(), stop(), listVoicemails(), markListened(), handleVoicemailWebhook(), saveRecording(), getRecording(), listRecordingsForCall() | DataService, EventBus | active |
| TranscriptionService | Post-call pipeline — stores transcripts and AI analyses; auto-triggers on communication.CallEnded | start(), stop(), saveTranscript(), getTranscriptBySession(), saveAnalysis(), getAnalysisBySession() | DataService, EventBus | active |
| EmailService | Full email client — folders, threads, compose/send/reply/forward, drafts, signatures, MS Graph integration | start(), stop(), listFolders(), listThreads(), getThread(), sendEmail(), replyToEmail(), forwardEmail(), saveDraft(), moveMessages(), deleteMessage(), listSignatures(), createSignature(), updateSignature(), deleteSignature() | EventBus, DataService, SearchService, PluginManager | active |
| EmailAIService | LLM-powered email intelligence — thread summarisation, suggested replies, priority scoring, follow-up detection | start(), stop(), summarizeThread(), suggestReplies(), scoreThreadPriority(), detectFollowUps() | EventBus, DataService, llmCall fn | active |
| MeetingService | Video meeting lifecycle — create rooms, generate Twilio video tokens, manage participants, control recording | start(), stop(), createMeeting(), getMeeting(), listMeetings(), joinMeeting(), endMeeting(), sendInvites(), getParticipants(), startRecording(), stopRecording(), getAnalysis() | EventBus, DataService, TwilioCallingService | active |
| ContactTimelineService | Per-contact interaction timeline, notes CRUD, contact merging and merge suggestions, relationship labels, dashboard widgets | start(), stop(), getTimeline(), createNote(), listNotes(), updateNote(), deleteNote(), mergeContacts(), getMergeSuggestions(), setRelationshipLabel(), getRecentContacts(), getMissedComms(), getCommStats() | EventBus, DataService | active |
| PushNotificationService | FCM device push delivery — token registration and targeted push on call, SMS, email, meeting, and voicemail events | start(), stop(), registerToken(), unregisterToken(), getActiveTokens(), sendToUser() | DataService, EventBus, FCM server key | active |
Events — Deep Communications
Published:
| Event | Publisher | Payload highlights |
|---|---|---|
inbox.ItemCreated | InboxService | inboxItemId, type, channelType, direction, contactId |
inbox.ItemUpdated | InboxService | inboxItemIds, changedFields |
contact.Resolved | InboxService | identifier, identifierType, contactId |
contact.SuggestionCreated | InboxService | identifier, identifierType, sourceEventType |
data.EntityCreated | PhoneLineService, ContactTimelineService | entityType, entityId |
communication.VoicemailReceived | VoicemailService | voicemailId, fromNumber, durationSeconds, phoneLineId |
ai.CallAnalyzed | TranscriptionService | analysisId, callSessionId, sentiment, actionItemCount, keyTopics |
email.Sent | EmailService | messageId, to, subject |
email.DraftSaved | EmailService | messageId |
ai.EmailSuggested | EmailAIService | threadId, priority, followUps |
video.MeetingCreated | MeetingService | meetingId, title, roomName, scheduledStart |
video.MeetingStarted | MeetingService | meetingId, roomName |
video.MeetingEnded | MeetingService | meetingId, roomName |
contact.Merged | ContactTimelineService | primaryId, mergedId, ownerId |
Subscribed:
| Event | Subscriber | Action |
|---|---|---|
communication.CallReceived | InboxService | Materialise call inbox item |
communication.CallEnded | InboxService, TranscriptionService | Update inbox item; trigger post-call pipeline |
communication.MessageReceived | InboxService | Materialise SMS inbox item |
communication.MessageSent | InboxService | Materialise outbound SMS inbox item |
email.Received | EmailAIService, PushNotificationService | Score priority + detect follow-ups; send push |
communication.CallIncoming | PushNotificationService | Send incoming-call push |
communication.SmsReceived | PushNotificationService | Send SMS push |
video.MeetingStarted | PushNotificationService | Send meeting-starting push |
communication.VoicemailReceived | PushNotificationService | Send voicemail push |
Unified Life Architecture
Foundation (5 services):
- ObservationService — Universal observation spine. Every domain insert creates an observation indexed by time, location, source, and entity.
- EntityRegistryService — Unified addressing with stable URIs for every entity (persons, devices, items, collections, dependents).
- ContextEngineV2 — Derived context with confidence decay. Computes location, activity, social, physiological, environmental, temporal, digital, and availability dimensions.
- ContextResolverService — Orchestrates 8 typed resolvers (TemporalResolver, LocationResolver, ActivityResolver, DigitalResolver, SocialResolver, PhysiologicalResolver, EnvironmentalResolver, AvailabilityResolver) that each hydrate a specific context dimension from the observation spine.
- ReactionLogService — Append-only immutable log of all system actions with authorization chains and context snapshots.
Intentions & PM (3 services):
- IntentionService — Declarative persistent goals (goal, aspiration, commitment, maintenance, consent). Progress tracking against observation metrics.
- ProjectService — Projects, milestones, task management with status workflows, subtasks, dependencies, and time tracking.
- HabitService — Recurring behavior tracking with streak management, completion logging, and reminder conditions.
Integration (3 services):
- CorrelationEngine — Time-window queries across the observation spine. Cross-domain pattern detection.
- RelationshipService — First-class relationships with event timelines and health scoring based on interaction frequency.
- ConnectorBridgeService — Routes connector plugin results into the observation spine. Manages plugin lifecycle for Fitbit, Google Fit, Plaid, Nutritionix, USDA FoodData, and device sensor connectors.
Life Domains (13 services):
- HealthService — Health metrics (heart rate, blood pressure, weight, etc.), symptoms, and sleep records.
- FitnessService — Workout activities with GPS tracks, splits, heart rate zones, and aggregate stats.
- NutritionService — Meals, meal items, water intake, daily nutrition summaries, dietary preferences.
- FinanceService — Financial accounts, transactions, budgets, subscriptions with spending analysis.
- CollectionService — Typed collections with templates (recipes, reading lists, wine cellar, plant care) and custom fields.
- JournalService — Journal entries with mood tracking, energy levels, and mood history.
- MediaService — Media consumption tracking (books, podcasts, movies, etc.) with progress and ratings.
- KnowledgeService — Knowledge captures (notes, bookmarks, highlights, quotes, annotations).
- EnvironmentService — Environmental readings (weather, air quality, noise, light) with current state.
- HomeService — Home/IoT readings, utility bills, energy stats.
- LearningService — Learning subjects, study sessions, certifications with progress tracking.
- CaptureService — Computer activity capture with user-defined rules, screen captures, clipboard, input metrics.
- DependentService — Dependents (children, pets, elderly) with entity registry integration.
Connector Plugins
Eight sandboxed V8-isolate connector plugins in apps/hub/plugins/connectors/. Each declares a plugin.json manifest with explicit network permissions and is routed by ConnectorBridgeService.
| Plugin | Source | Data Landed |
|---|---|---|
| ms-graph | Microsoft Exchange/Graph | contacts, calendar events, email threads |
| twilio | Twilio REST API | call logs, SMS history, recordings |
| fitbit | Fitbit Web API | activity, heart rate, sleep, weight |
| google-fit | Google Fit REST API | activity sessions, step counts, heart rate |
| plaid | Plaid Link API | financial accounts, transactions, balances |
| nutritionix | Nutritionix API | food search, meal logging, nutrition data |
| usda-food | USDA FoodData Central | food database, nutritional values |
| device | Made Open Android/Windows agent | GPS location, sensor readings, device commands |
AI Agent Tools (ToolRegistry)
Twenty-eight tools registered in ToolRegistry for use by AgentService and MultiAgentOrchestrator:
| Tool | Purpose |
|---|---|
search_contacts | Full-text search across contacts |
get_contact | Retrieve a single contact by ID |
search_messages | Search across messages and conversations |
list_rules | List automation rules for the user |
search_documents | Search uploaded and indexed documents |
analyze_document | AI-powered document analysis (OCR, extraction, classification) |
search_entities | Search the entity registry by type and query |
process_file | Process a file using the ToolsService (PDF, image, etc.) |
list_tool_capabilities | List available ToolsService operations |
search_wiki | Search compiled LLM wiki knowledge entries |
update_wiki | Add or update a wiki entry |
get_contact_timeline | Retrieve interaction timeline for a contact |
search_comms | Search across all communications (calls, SMS, email) |
get_unread_count | Get unread inbox item count per channel type |
get_call_summary | Get AI-generated summary for a call session |
send_message | Send an outbound message via a channel plugin |
query_observations | Query the observation spine with flexible filters |
get_time_window | Fetch observations in a time window across domains |
link_observations | Create relationships between observations |
log_observation | Log a new observation on behalf of the user |
get_current_context | Get the latest resolved context snapshot for the user |
get_context_history | Get context snapshots over a time range |
list_intentions | List active intentions with progress status |
check_intention_progress | Check metric progress toward a specific intention |
find_correlations | Run cross-domain correlation queries |
get_daily_timeline | Get ordered observation timeline for a day |
get_habit_status | Get streak and completion status for a habit |
get_health_summary | Aggregate health metrics summary for a period |
Startup Order
Services must start in dependency order. The startup sequence in main.ts:
- Infrastructure — CacheService, MetricsService, RateLimiterService, CircuitBreakerService
- Event Bus — EventBus.connect() + ensureStreams()
- Job Queue — PgBoss.start() (if DATABASE_URL set)
- Data Service — DataService (Supabase client)
- Policy Layer — PrivacyEngine → AuditService.start() → PolicyService
- Search — SearchService.ensureIndexes() + backfill
- Plugin Manager — PluginManager + load conditional plugins (MS Graph, Twilio)
- Plugin Registry — PluginRegistryService.seedBuiltinPlugins()
- ETL + Embedding — ETLService.start() + EmbeddingPipelineService.start()
- Stream Processing — StreamProcessingService.start() (if Redis available)
- Communication — ChannelService.start()
- Rules — RuleAnalyticsService + RuleTemplateService.seedTemplates() → RulesService.start()
- Workflow + Intentions — WorkflowService.start() + IntentionsService.start()
- Connectors — ConnectorService.start() (if PgBoss available)
- AI Layer — DocumentIntelligenceService + ToolsService + ToolRegistry + AgentMemoryService + MultiAgentOrchestrator + AgentService
- Federation — DIDService + VCService + DIDCommService + ActivityPubService → FederationService.start()
- Marketplace + Governance — MarketplaceService, DataProductBuilder, ReputationService, ResourceCoordinationService, TimeBankService, DisputeService, ModerationService, DAOService, ProposalService, VotingService
- Web3 — WalletService + TimeCreditBridgeService
- Calling — TwilioCallingService (if Twilio creds) + FederatedMarketplaceService
- Notifications — NotificationService.start() + OutboundWebhookService.start()
- Presence — PresenceService
- Export Formatters — VCardFormatter + ICalFormatter + CsvFormatter → ExportService
- Event Store — EventStoreService
- SSE + Streaming — SseService.startHeartbeat() + connectToNats() → StreamingAgentService + ActivityFeedService.start()
- Org + Usage — OrgService + UsageService
- OAuth — OAuthService
- Advanced Search — VectorSearchService + HybridSearchService + SavedSearchService + RecommendationEngine
- Import — ImportService
- Preferences — UserPreferencesService
- Error + Email — ErrorTrackingService + EmailService
- Billing + Flags — BillingService + FeatureFlagService.seedFlags()
- Security + Analytics — JwtService + RbacService + SessionService + AnalyticsService
- Lineage — LineageService + EntityMergeService → DataService.setLineageService()
- Audio — AudioETLService.start() + VoiceCommandService.start()
- Device — DeviceCommandService.start()
- Knowledge Graph — LightRAGBridgeService.start() (subscribes to entity events, forwards to LightRAG)
- Scheduled Jobs — ScheduledJobService.start() (requires EmailService + SessionService)
- HTTP Server — buildServer() + listen()
Graceful Shutdown Order
Shutdown reverses the startup, stopping consumer services first:
- HTTP server closes
- ActivityFeedService, SseService heartbeat stop
- NotificationService, OutboundWebhookService stop
- AuditService, FederationService stop
- RulesService, ChannelService stop
- AudioETLService, VoiceCommandService, DeviceCommandService stop
- ETLService, EmbeddingPipelineService stop
- ScheduledJobService stop
- PgBoss stop
- EventBus drain
- CacheService clear + stop prune timer