Skip to content

Campus SDK surface

Campus SDK is a library of stable Campus-owned primitives. It is not a product framework and does not own app rendering, state management, hydration, routing, or product-domain behavior.

Canonical browser entry

js
import { createCampusApp } from '/assets/campus_sdk/campus_browser.js'

const campus = createCampusApp({ appId: 'example-app' })
render()
await campus.ready()

Construction is synchronous. Capability methods perform launch synchronization internally. This matches ordinary browser libraries and framework clients such as Firebase, Supabase, and Stripe: create a client, draw with local state, then call services as needed. It does not introduce a React- style lifecycle or require every app to implement hydrate.

Ownership map

CapabilityTyped browser SDKAgent projectionApp-to-app use
App/shell lifecycleready, fail, close, shell.*bounded Campus MCP toolsSDK
Private backend transportbackend.*only when the app publishes a toolprivate SDK
Campus Appsapps.list/search/get/create/fork/install/uninstall/open/start/warm/pause/stopCampus MCP projectionSDK
Account/profileaccount.*Campus MCP projection where safeSDK
Contactscontacts.*Campus MCP projectionSDK
App-local accessaccess.*Campus MCP projection where safeSDK
Permissions/settingspermissions.*, settings.*trusted bounded projectionsSDK
Small private JSONkv()none by defaultSDK
Logical filesfiles.*bounded Campus projectionsSDK
E2E content graphencryptedContent.*bounded Campus projectionsSDK
Keys/recipients/commitmentscrypto.*bounded intent onlySDK
Protected outbound credentialssecrets.*brokered projectionSDK
Financial intent/authorizationspayments.*exact trusted intentSDK
Account event subscriptionsaccountEvents.*no generic event busSDK
Durable backend workflowsCampusServicesClient.runWorkflow, flow.activitynoneSDK + existing MCP/SDK effects
Notificationsnotifications.*Campus MCP projectionSDK
Schedulesschedules.*Campus MCP projectionSDK
Searchsearch.*Campus MCP projectionSDK
Intelligence/speechintelligence.*, speech.*Campus projectionSDK
MCP itselfmcp.*native Agent consumerSDK
Calls, Drop, Calendar, Messages, Mail, Drive, Wallet product operationsno product namespaceapp-owned MCPMCP

The rule is ownership, not implementation location: Campus may execute a reviewed system app tool, but the app manifest still owns its name and schema. Conversely, Campus capabilities remain SDK capabilities even when MCP projects them for Agents.

Naming

  • backend, not workload, in app-facing code;
  • kv, not storage or defaults, for bounded keyed JSON;
  • files for logical binary/large objects;
  • encryptedContent for the endpoint-encrypted collaboration graph;
  • accountEvents, not events, because it is not a generic bus;
  • workflow/activity, for durable replay and one named idempotent effect;
  • Agent component, not bot or app kind, for autonomous behavior declared by a Campus App.

CampusApp, storage(), content(), and workload-named browser methods are deprecated compatibility surface. New code uses createCampusApp(). Product classes such as CampusCalls and CampusCalendar are no longer exported.

Execution surfaces

SurfaceEntryPurpose
Browser appcreateCampusApp()trusted launch plus typed Campus primitives and MCP client
JavaScript backendCampusServicesClient.fromEnv()installation-scoped Gateway services and leases
Rust backendcampus_sdk::CampusServicesClientnative equivalent
Native Agent MCP client@campus/sdk/account-mcpcaller-filtered account/product MCP catalog over stdio
App MCP providermanifest mcp.toolsapp-owned product contract, using workload/browser/service transport

service transport is reserved for reviewed systemSupplied packages published by Campus. Private or Store packages cannot select a Campus service executor.

Software belongs to people. Campus gives it a durable place to run.