L2 Orchestrator Core API
This page documents the current L2 public surface.
The single source of truth is code:
services/orchestrator-api.tsdefines the public types and method signaturesservices/index.tsis the only supported import entry for L0/L1services/api-guard.tsapplies auth and audit as an internal proxy layer
Public entry
interface OrchestratorLayer {
api: OrchestratorApi;
runStartup(gateway: OutputGateway): Promise<void>;
shutdown(): Promise<void>;
}src/server.ts calls createOrchestratorLayer(...), then passes layer.api into platform modules.
Import boundary
L1 should import from services/index.ts only.
- Allowed:
createOrchestratorLayer,OrchestratorApi, shared public types - Not allowed: direct imports from
services/thread/*,services/turn/*,services/persistence/*, or other internal modules
Guard layer
withApiGuards(...) wraps the raw API in L2. L1 does not call auth or audit code directly.
Current permission families:
project.readconfig.writethread.manageturn.operatethread.mergeskill.managesystem.admin
Audit is attached to mutating operations such as project creation, thread creation, turn actions, merge execution, project pull, backend admin changes, and approval callbacks.
API groups
OrchestratorApi currently exposes 90 methods:
- §0-§9 grouped domain methods
enqueueAsyncPlatformMutationas an async platform-output helper
§0 Project and binding
15 methods:
resolveProjectIdgetProjectRecordcreateProjectlinkProjectToChatunlinkProjectdisableProjectreactivateProjectdeleteProjectlistProjectslistUnboundProjectsupdateGitRemoteupdateProjectConfigtoggleProjectStatuspreviewProjectPullconfirmProjectPull
Primary implementation files:
services/project/project-service.tsservices/project/project-setup-service.tsservices/project/project-pull-service.ts
§1 Thread management
8 methods:
createThreadjoinThreadleaveThreadlistThreadsdeleteThreadgetUserActiveThreadgetThreadRecordisPendingApproval
Primary implementation files:
services/thread/create-thread-layer.tsservices/thread/thread-service.tsservices/thread/thread-runtime-service.tsservices/thread/thread-use-case-service.ts
§2 Turn lifecycle
5 methods:
createTurninterruptTurnacceptTurnrevertTurnrespondUserInput
Primary implementation files:
services/turn/turn-lifecycle-service.tsservices/turn/turn-command-service.ts
§3 Turn data
3 methods:
getTurnDetailgetTurnCardDatalistTurns
Primary implementation file:
services/turn/turn-query-service.ts
§4 Snapshot
3 methods:
listSnapshotsjumpToSnapshotgetSnapshotDiff
Primary implementation files:
services/snapshot/create-snapshot-layer.tsservices/snapshot/snapshot-service.ts
§5 Merge
16 methods:
handleMergehandleMergePreviewhandleMergeConfirmhandleMergeRejectstartMergeReviewgetMergeReviewmergeDecideFilemergeAcceptAllcommitMergeReviewcancelMergeReviewconfigureMergeResolverresolveConflictsViaAgentretryMergeFileretryMergeFilespushWorkBranchdetectStaleThreads
Primary implementation files:
services/merge/merge-service.tsservices/thread/thread-runtime-service.tsservices/project/project-service.ts
§6 Backend administration
16 methods:
listAvailableBackendslistModelsForBackendgetBackendCatalogresolveBackendresolveSessionreadBackendConfigsadminAddProvideradminRemoveProvideradminAddModeladminRemoveModeladminTriggerRecheckreadBackendPolicyupdateBackendPolicyadminWriteProfileadminDeleteProfilecheckBackendHealth
Primary implementation files:
services/backend/backend-service.tsservices/backend/config-service.tsservices/backend/session-resolver.ts
§7 IAM and users
12 methods:
resolveRoleisAdminaddAdminremoveAdminlistAdminsaddProjectMemberremoveProjectMemberupdateProjectMemberRolelistProjectMemberslistUsers
Primary implementation files:
services/iam/iam-service.tsservices/iam/role-resolver.ts
§8 Skills
10 methods:
listSkillslistProjectSkillsinstallSkillremoveSkillbindSkillToProjectunbindSkillFromProjectinstallFromGithubinstallFromLocalSourceinspectLocalSourceallocateStagingDirvalidateSkillNameCandidatelistSkillCatalog
Primary implementation file:
services/plugin/plugin-service.ts
§9 Approval callback
1 method:
handleApprovalCallback
Primary implementation files:
services/approval/approval-callback-handler.tsservices/approval/approval-use-case.ts
Async platform mutation helper
1 method:
enqueueAsyncPlatformMutation
Primary implementation files:
services/factory.tsservices/event/output-intent-buffer.ts
Shared public types
The main public types exported from services/index.ts include:
ProjectRecordThreadRecordTurnRecordTurnDetailRecordTurnSnapshotRecordTurnCardDataBackendIdentityBackendIdMergeContextMergeResultPlatformOutputOutputGatewayProjectPullPreviewResultProjectPullConfirmResultProjectPullThreadDispositionThreadDispositionEntry
Output contract
Path B and async orchestration output are delivered through OutputGateway and the services/event/output-contracts.ts platform output model.
This keeps platform rendering in L1 while allowing L2 to emit:
- content deltas
- reasoning deltas
- plan updates
- tool progress
- approval requests
- user input requests
- turn summaries
- merge events
- async platform mutations
Notes
- This page summarizes the API surface, but does not duplicate full TypeScript signatures.
- If this page and code disagree,
services/orchestrator-api.tswins.