Compile where your knowledge already lives.

Connect a source once. TAVONEL discovers and imports read-only, then tracks revisions so the compiled World can stay traceable to the system it came from.

Connection health — configured, expired or unreachable — is reported in your workspace, where you can act on it.

Connecting your own sources is arranged with us. A finished Compiled World is open to read in full today, with its evidence attached. Compiling your own sources is set up with us rather than enabled by a plan purchase. Request access to arrange it, or open the public Compiled World to see what a connected source turns into.

What connects today.

5 source systems connect today: Google Drive, Dropbox, OneDrive / SharePoint, Mounted file server and S3-compatible object storage. Each is described below, with the access it is given and what happens when a file moves or disappears.

That is the whole list. Confluence, Notion, Slack, GitHub, Box and Jira have no connector here. Where such a system keeps its files in one of the cloud drives below, or exports to a directory or a bucket, that path works today; the system’s own API is not read.

Read-only
We hold an OAuth grant scoped to reading, run the sync, and never write back.
Customer-run
You run the import agent inside your network, and the storage credential never leaves it.

Cloud document systems.

Read-only

Google Drive

Discover and import Drive files read-only, tracking the file checksum as its revision.

Security and sync details
Scopes requested
openid email https://www.googleapis.com/auth/drive.readonly
Writes back
Never. Discovery and download only.
Deletion
The versioned changes reader observes renames, content versions and removal or lost-access events. A removal or a lost-access event suspends the bound source and stops the sync for review before its checkpoint advances — nothing compiles from a source we can no longer read.
Incremental cursor
Versioned snapshot and changes tokens, bound to the selected drive and stored per connection.
Read-only

Dropbox

Import folders recursively with revision tracking and explicit deleted entries.

Security and sync details
Scopes requested
account_info.read files.metadata.read files.content.read
Writes back
Never. Discovery and download only.
Deletion
A deleted entry or a lost-access event suspends the bound source and stops the sync for review before its checkpoint advances — nothing compiles from a source we can no longer read.
Incremental cursor
The provider cursor; malformed continuation is refused.
Read-only

OneDrive / SharePoint

Read Microsoft Graph drives and sites through delta sync with eTag revisions.

Security and sync details
Scopes requested
openid profile offline_access User.Read Files.Read.All Sites.Read.All
Writes back
Never. Discovery and download only.
Deletion
A deleted facet or a lost-access event suspends the bound source and stops the sync for review before its checkpoint advances — nothing compiles from a source we can no longer read. Off-origin continuation links are refused.
Incremental cursor
@odata.nextLink / @odata.deltaLink, origin-validated.

Verify the provider account in Workspace before the first sync. Connection health and lifecycle evidence stay with the connection.

File and object storage.

Use a local source agent for repositories that stay inside your network. We configure the first route with you.

Operating the agent
Install
Python 3.12 or newer. Verify the download against the sha256 in the distribution record at /developer/channel.json, create the connection in Workspace to get its id, and put the API key in the TAVONEL_API_KEY environment variable — the agent reads it from nowhere else. S3-compatible mode additionally needs boto3, which you install; the agent stops and says so if it is missing.
Permissions
Read on the directory tree, or ListObjectsV2 and GetObject on the bucket and prefix. Nothing more: the agent never writes to your source. Storage credentials are resolved on your host and are never sent to us. It skips symbolic links and refuses a path that resolves outside the root you gave it. Outbound HTTPS only, no inbound port.
One run
One invocation performs one sync and exits. It is not a service and has no internal timer: cron, a systemd timer or Task Scheduler is what makes it periodic, and that interval is your import latency. Do not run two against one connection at once.
Restart and network outage
The local cursor file is written only after we have committed the batch, so a killed process, a reboot or a dropped connection leaves it untouched and the next run sends the same work again; per-file upload keys are derived from the connection, path and revision, so a repeat resolves to the same document rather than a duplicate. There is no retry inside the agent: a failure exits non-zero and waits for your scheduler.
Update
The distribution record at /developer/channel.json carries the current version, the minimum Python and the sha256 of the agent. Compare, download, verify the hash, replace the file, keep the cursor state. There is no self-update and no notification, so checking that record is a task you schedule.
Responsibility
The host, its uptime, the scheduler, the credentials and noticing a failed run are yours, because the agent runs inside your network on your machine. We do not monitor it: an agent that stopped looks to us like a source with no changes. We are responsible for the API it calls, the upload capability, the cursor commit and everything after the upload.
Monitoring
The agent runs on your host under your scheduler, so your scheduler is where a failed run surfaces: the process exits non-zero and reports there. It has no inbound port, no health endpoint and no callback to us, so its liveness is whatever your scheduler reports. Timings are whatever a run on your own files produces.

The full runbook, with the error-message table, issource-agent-operations.md.