How oneprolabs/sourcelens works
SourceLens is a shared, browser-accessible agentic RAG product: users ask an assistant about governed company data, and a sandboxed coding-agent harness reads and reasons over files on demand rather than relying on embeddings or pre-indexing. The main path runs from chat through the backend to a LensNode runtime and returns source-traceable answers. The graph also preserves account governance, datasource management, extensible tools, and public Q&A. Sampled excerpts are partial, so some subsystem links are omitted where invocation details are unverified.
Main entry points: runtime.py Agent harness · main.py LensNode worker · services.py Run services · lens.js Lens API client
Components 20
User experience
- Assistant chat
frontend/src/pages/lens/Chat.vue - Lens API client
frontend/src/api/lens.js - Public Q&A pages
frontend/src/pages/lens/PublicQa.vue
Backend control
- Lens gateway
backend/lens/views/gateway.py - Run services
backend/lens/services.py - Run and session state
backend/lens/models.py
Agent runtime
- LensNode worker
lensnode/lensnode/main.py - Agent harness
lensnode/lensnode/agent_runtime/runtime.py - Capability routing
lensnode/lensnode/agent_runtime/routing.py
Data and tools
- Sandbox workspace
lensnode/lensnode/workspace.py - Datasource control
backend/lens/datasource/services.py - Source connectors
lensnode/lensnode/datasource_adapters.py - Plugin integrations
lensnode/lensnode/plugin_runtime.py - Skills and packages
backend/lens/skill_packages.py - MCP tools
lensnode/lensnode/mcp_tools.py
Access and sharing
- Accounts and access
backend/accounts/permissions.py - Assistant configuration
backend/lens/views/assistants.py - Shared Q&A
backend/lens/views/shares.py
Other components
- User
- Chat and vision models
Connections 22
- User → Assistant chat: asks question
- Assistant chat → Lens API client: submits prompt
- Lens API client → Lens gateway: calls API
- Lens gateway → Run services: handles run
- Run services → Run and session state: persists run
- Run services → LensNode worker: dispatches work
- LensNode worker → Agent harness: runs harness
- Agent harness → Capability routing: classifies request
- Agent harness → Chat and vision models: requests inference
- Agent harness → Sandbox workspace: reads files
- Datasource control → LensNode worker: sends commands
- LensNode worker → Source connectors: syncs sources
- Source connectors → Sandbox workspace: updates files
- Agent harness → Plugin integrations: uses tools
- Agent harness → MCP tools: uses tools
- Agent harness → Skills and packages: uses skills
- Accounts and access → Lens gateway: authorizes requests
- Assistant configuration → Datasource control: configures sources
- Assistant configuration → Skills and packages: configures skills
- User → Public Q&A pages: views shared answers
- Public Q&A pages → Lens API client: loads Q&A
- Shared Q&A → Run and session state: shares answers