API surface
Choose a supported Cloud import and check its runtime and stability.
Cloud separates APIs by runtime. Use the entry point for the code you are writing.
Supported means application code may depend on the documented use. It does
not make every symbol in a mixed barrel an application API. Platform-owned
is for Cloud itself. Advanced paths are public exports, but application code
should use them only when a feature guide gives the exact import.
Preview means the contract may still change before its feature is released,
and such changes are not treated as breaking until then.
Application entry points
| Entry point | Status | Use |
|---|---|---|
@k2b/cloud |
Supported | Application declarations and typed notifications |
@k2b/cloud/server |
Supported, server-only | Hono middleware, validation, actors, results, and access |
@k2b/cloud/services |
Supported, server-only | Feature services named by a capability guide |
@k2b/cloud/contracts |
Supported | Browser-safe schemas and shared data contracts |
@k2b/cloud/browser |
Supported, browser | Typed Hono browser clients |
@k2b/ui |
Supported, SolidJS | Portable SolidJS components and interactions |
@k2b/stdlib/solid |
Supported, SolidJS | Owner-local queries, mutations, and browser interaction primitives |
@k2b/cloud/ssr |
Supported, server-only | Authenticated, anonymous, minimal, panel, and admin layouts; runtime context; request path; URL filters; hintOpen and markHintSeen for one-time hints |
@k2b/cloud/workflows |
Supported | Workflow definitions and authoring contracts |
@k2b/cloud/ai |
Supported, server-only | AI APIs named by the AI guides |
@k2b/cloud/cli |
Supported | Cloud CLI modules |
@k2b/cloud/config |
Supported, server-only | Selected typed runtime values |
Use the barrels above by default. Use a subpath when the specialized-entry table below links its feature guide.
Core's app bar administration uses railShortcuts from
@k2b/cloud/services and the RailAdminSchema, RailAdminInputSchema,
RailAccessSchema, RailAdminState, and RailAdminEntry contracts from
@k2b/cloud/contracts. These are platform-owned. Applications receive the
resolved navigation through Layout; see
Global app bar shortcuts.
Define the application
Import defineApp() from the package root:
import { defineApp } from "@k2b/cloud";The returned application's ssr renders pages and exposes ssr.access for
browser-route rejections and ssr.error(c, status, options?) for terminal HTML
errors. See SSR pages and routing.
The root also exports the types bound to an application declaration. This
includes typed settings and notification definitions, and skill() with
AppSkillDefinition for Assistant Skills. Registry, heartbeat, and
runtime-composition exports from the same barrel are platform-owned.
PanelLayout and PanelLayoutProps from @k2b/cloud/ssr render an
application's provider page with its request locale and the embedded panel
runtime. See Panels.
Handle server requests
Import request APIs from @k2b/cloud/server:
import {
type AppContext,
auth,
middleware,
respond,
v,
} from "@k2b/cloud/server";This entry point contains Hono context types, middleware, actor helpers,
validation, resource access, and response helpers. buildMetadata holds the
Cloud version and release label of the running application's build, for
example to show the version on a settings page.
For an internal endpoint using signed Cloud invocations, the same barrel exports
requireInvocation and InvocationExpectation. Supply the expected target app,
operation, and schema hash. The middleware verifies the invocation and resolves
current authority into the request context; the handler must still authorize
access to its domain resources. It does not replace operation idempotency.
A dashboard widget handler reads the size and validated settings the board
asks for with getWidgetRequest(c) from the same barrel; see
Dashboard widgets.
loadPendingApprovals(c, query) loads an approval page during SSR from this
entry point. Pass it as initial to the shared Approvals component.
See Show approvals in your app.
For a slow handler, setRequestTimeout, REQUEST_IDLE_TIMEOUT_SECONDS, and
REQUEST_IDLE_TIMEOUT_MAX_SECONDS control the bounded request idle timer;
see Answer slow requests.
See Server APIs for the request path.
The widget setting types WidgetSettingField, WidgetSettingsDeclaration,
WidgetSettingValue, and WidgetSettings, and the limits
WIDGET_SETTINGS_MAX_FIELDS, WIDGET_SETTING_MAX_OPTIONS,
WIDGET_SETTING_TEXT_MAX_LENGTH, WIDGET_SETTING_NAME_MAX_LENGTH,
WIDGET_ID_MAX_LENGTH, WIDGET_KEY_MAX_LENGTH, WIDGET_REQUEST_MAX_ENTRIES,
WIDGET_REQUEST_MAX_ID_LENGTH, and WIDGET_REQUEST_MAX_BYTES come from
@k2b/cloud/contracts; @k2b/cloud/browser/widgets re-exports the types. See
Declare settings.
Core approval routes
| Route | Use | Guide |
|---|---|---|
GET /api/approvals |
List the person's waiting requests; filter by app and link; paginate with cursor |
Approval routes |
GET /api/approvals/counts |
Read total and per-app open counts | Approval routes |
POST /api/approvals/:id/decision |
Approve or reject a request and continue its chat | Approval routes |
These routes require a user-backed actor.
Use platform services
Code outside an HTTP request uses asynchronous feature services:
import { logger } from "@k2b/cloud/services";
const log = logger("inventory");
log.info("Import completed", { itemCount: 42 });Use the capability guide to choose the narrow API:
- Settings:
SettingUnreadableError,SettingRead, andStoredSettingStatefrom@k2b/cloud/services;app.settings.read()reports stored state before a partial update. - Outgoing mail:
mail.profiles(),mail.send(),mail.enqueue(),mail.list(), andmail.readableApps()from@k2b/cloud/services, with mail contracts andPlatformPermissionfrom@k2b/cloud/contracts. - Notifications
- Logging:
logger()andredactSensitivePath()for safe request-path logging. - App capabilities:
cloudResourceHref(ref)from@k2b/cloud/contractsandcloudResourceUrl(ctx, ref)from@k2b/cloud/clisupply resource permalinks. - Universal search
- Document extraction
- Secrets and persistent state:
requestPublicHttps()for server-side requests to a URL that a person, an administrator, or remote content chooses;resolvePublicNetworkAddresses(),NetworkTargetBlockedError, andpinnedNetworkLookup()from@k2b/cloud/services/network-securityfor other transports. - Operator-approved internal targets:
createAllowedNetworkFetch(allowlist, { lookup?, resolve?, request? }?)from@k2b/cloud/servicessupplies a fetch-compatible streaming HTTP/HTTPS transport: it refuses URL user information, resolves once, pins the connection without proxies, preserves Host/TLS identity and repeated response headers, and propagates guard refusals. Redirects are never followed (redirect: "error"rejects a 3xx; other modes return it); non-identity encoding is rejected. Request normalization supports streaming bodies; the realResponsestreams until completion or cancellation. Signals cover lookup through response streaming, and callers own timeouts, limits and retries. Other internal transports useresolveAllowedNetworkAddresses()from the same entry point with aNetworkAllowlistparsed byparseNetworkAllowlist()orparseNetworkAllowlistEnv(variable, entries)(errors name the env variable) from@k2b/cloud/shared;isAllowlistedNetworkAddress()there matches IP networks without DNS. Entries come only from the application's operator-controlled env registry: exact host names, strict IPv4/IPv6, or canonical CIDRs. Host entries trust all validated answers; reserved names require a host entry. IPv4-mapped IPv6 also matches IPv4 networks; NAT64 and other embeddings require IPv6 entries. Failed or empty lookups still refuse.isNetworkTargetBlocked(hostname, allowlist, { resolve?, timeoutMs? })from@k2b/cloud/services/network-securityand@k2b/cloud/servicessupplies a save-time hint: only policy refusals returntrue; lookup failures and the default five-second timeout returnfalse. Every request still rechecks and pins its target.
Raw stores, runtime starters, gateway telemetry, migrations, and platform composition helpers from the same barrel are maintainer APIs unless a guide names them.
linuxIdentities is a platform-owned administration service from this barrel.
It checks administrator access on reads and writes. See
Linux identities for configuration,
explicit provisioning, and the compatible FreeIPA mirror.
accountIdentities is the supported application read service for the acting
user, effective groups, provider availability and administrator-only paginated
identity inventories. It does not allocate identities or track filesystems.
See Account administration API
for actor requirements and the limits of Cloud's FreeIPA inventory.
readAccountCategoryPolicy supplies server-side presentation settings;
isAccountCategoryAllowed is for platform-owned credential eligibility checks,
not application resource authorization. The browser-safe contracts barrel
exports AccountCategory, AccountCategoryPolicySchema, accountCategory
and accountCategoryLabel. See
Account types for their use.
The contracts barrel also exports the versioned app-approval input schemas,
signing-message helpers and protocol limits for independent authenticator
clients. Action approval schemas, APP_ACTION_LIMITS, and the Action digest
helpers support the signed inbox, action, and act commands.
appApproval, readAppApprovalConfig and the AppTerminalLogins hook type in
the services barrel are Core-owned maintainer surfaces, not general application
authentication. Use the
app approval HTTP contract for external clients.
For matching files,
@k2b/cloud/contracts exports FileProviderContext, FileProviderContextSchema,
FileProviderContextListInputSchema, FILE_PROVIDER_CONTEXT_MAX_REFS,
fileProviderContextList, and fileProviderAcceptsContext. The existing base
file-provider contract stays unchanged.
Share types with the browser
Export the Hono router type from the server. Use it with the browser client.
import { api } from "@k2b/cloud/browser";
import type { InventoryApi } from "../server";
export const inventoryApi = api.create<InventoryApi>({
baseUrl: "/api/inventory",
});See Browser clients and mutations.
Use query and mutation from @k2b/stdlib/solid for owner-local reads and
user-initiated writes. See
Server-backed state.
The clipboard, copyToClipboard, url, and isImageUrl exports are utility
helpers outside the documented typed-client contract. Do not choose them as
application APIs unless a guide names them.
Mixed barrels
Some barrels serve more than one audience. Use this boundary instead of inferring support from autocomplete.
| Entry point | Application surface | Other exports |
|---|---|---|
@k2b/cloud |
defineApp, declaration types, typed notifications |
Registry, heartbeat, and runtime composition are platform-owned |
@k2b/cloud/services |
Feature services used by capability guides | Raw stores, lifecycle starters, gateway telemetry, and migrations are maintainer APIs |
@k2b/cloud/ai |
Structured model calls, local tools, and listAiOpenQuestions with AiOpenQuestion / AiOpenQuestions for personal chat overviews |
Conversation stores, migrations, workers, and maintenance helpers are platform-owned |
@k2b/cloud/browser |
Typed Hono client factory | Utility helpers are outside the documented typed-client contract |
@k2b/cloud/shared |
Cloud-specific helpers named by feature guides | Generic utility re-exports are compatibility-only |
@k2b/cloud/cli |
APIs for application CLI modules | Built-in account, application, and admin modules are platform-owned |
For theme-aware server work, readThemeFromCookieHeader() returns a resolved
CloudTheme (light or dark); for Automatic it is a best-effort hint that
can be stale. readThemePreferenceFromCookieHeader()
returns a CloudThemePreference (light, dark, or system). Both readers
and types come from @k2b/cloud/shared. See
Follow the person's theme.
@k2b/cloud/config exports env.APP_SECRET, env.PORT,
env.IS_DEVELOPMENT, and env.ADMIN_LOGIN_TOKEN. The
runtime configuration guide
documents all process variables; that larger list is not the shape of env.
Evaluate Markdown table cells
Import evaluateTableCell(row, column, context) and EvalResult from
@k2b/cloud/shared when a chart or another derived view must use the same
values as a Markdown table. Row and column indices are zero-based. The context
contains headers, raw rows, currentRow, and currentCol.
import { evaluateTableCell } from "@k2b/cloud/shared";
const context = { headers: ["Amount"], rows: [["+1.2e2"]], currentRow: 0, currentCol: 0 };
const result = evaluateTableCell(0, 0, context); // { kind: "ok", value: 120 }A plain cell becomes a number only when its whole text is one decimal number,
including optional sign and exponent. Dates stay text. Formula cells return
the evaluated value or a structured error. Check result.kind before using its
value. Use isTotalRow(row) from the same entry point to omit total rows from
a derived chart while keeping the full table in the evaluation context.
Specialized entry points
View readers and types are exported from @k2b/cloud/ai/browser and
@k2b/cloud/ai: CloudAiChartView, CloudAiGroupView, CloudAiTableView,
CloudAiExplorerView, CloudAiExplorerRequest,
CloudAiStatsView, CloudAiDetailsView, CloudAiViewReference,
CloudAiView, CloudAiViewSummary, CloudAiViewSummarySchema,
parseCloudAiView, checkCloudAiView, cloudAiViewSummary, cloudAiViewTable,
cloudAiStatsTiles, cloudAiDetailsRows,
cloudAiTableTsv, isAiViewFile, isAiViewPath, parseCloudAiChartToolView,
cloudAiExplorerControls and cloudAiExplorerState,
plus the view directory, suffix, byte and table limits. Both entry points expose
CLOUD_AI_STATS_MAX_ITEMS (6), CLOUD_AI_GROUP_MAX_CHARTS (6), CLOUD_AI_VIEW_MAX_MARKS (3,840),
CLOUD_AI_CHART_MAX_SERIES (8), CLOUD_AI_CHART_MAX_VALUES (480),
CloudAiChartInput, CloudAiChartInputSchema, parseCloudAiChartInput,
cloudAiChartSchema, cloudAiAppChartSchema, cloudAiNumberFormatSchema,
cloudAiFormatSchema and CloudAiNumberFormat, CloudAiDateFormat,
CloudAiFormat. cloudAiAppChartSchema reads the same chart input for apps
without the chat's size and fit limits; missing or non-finite data values
become NaN, which the renderer leaves out.
Server integrations save run results with createAiConversationView and receive
AiViewInvalidError for invalid specs. See
Tools and approvals for validation and groups.
Custom chart hosts use browser exports cloudAiChartRenderOptions,
cloudAiChartLegend, cloudAiChartRows, cloudAiChartTable, cloudAiChartTooltip,
cloudAiChartMarkKey, cloudAiChartReferenceMark, cloudAiChartXValueFormat,
cloudAiNumberFormatters, cloudAiChartMarks and chartDrawingIssue, with
CloudAiChartColumn, CloudAiChartRow and CloudAiChartTable. These map
validated chart input to rendering, legend, comparison marks and locale-formatted
rows; cloudAiChartTooltip(columns, row) turns a row into the tooltip the chat
shows, so every host tells the same story. A chart's optional
tooltip: {label?, format?} names and formats the value in tooltips and table
rows; axes keep their own formats. ChartExplorer
from @k2b/ui accepts legend entries typed as ChartLegendEntry
({label, color, style?, reference?}) for a wrapping legend inside its fixed
height; see Chart presentation and controls.
@k2b/cloud/ai exposes AiTaskRequestSchema, AiTaskRequest,
AiTaskRequestInput, and executeAiTask for bounded text generation,
classification, and extraction. The schema and types are also available from
@k2b/cloud/ai/browser. See Structured and background AI
for execution, model access, and usage accounting.
| Entry point | Status | Use | Guide |
|---|---|---|---|
@k2b/cloud/shared-text |
Supported, server-only | Retained collaborative text logs and application-owned snapshot writes | Shared text documents |
@k2b/cloud/ai/browser |
Supported, client | Launch Assistant drafts; use SSE parsing, attachment helpers, and client-tool input and output schemas in browser or CLI clients | Chat and streaming |
@k2b/cloud/ai/solid |
Supported, browser | AI chat controller over the conversation SSE stream | Chat interface |
@k2b/cloud/ai/tools |
Advanced, server-only | Mount Cloud's standard agent-tool factories, including document-aware read_file and conversation-file markdown_to_pdf and html_to_pdf |
Files and Projects |
@k2b/cloud/ai/ui |
Supported, SolidJS | Shared AI chat components | Chat interface |
@k2b/cloud/ai/testing |
Supported, tests | aiQuestionFixtures demo questions (German and English, fixed times; the data may change in any release) and aiOpenQuestionFixture, a question as listAiOpenQuestions presents it from a tool block |
Chat and streaming |
@k2b/cloud/ai/live |
Supported, server-only | aiLive: the cursor of AI live updates for server-rendered state; Core mounts its socket |
Chat and streaming |
@k2b/cloud/ai/live-events |
Supported, browser and server | AiInvalidationSchema and AI_INVALIDATION_DOMAINS, the data of AI live updates |
Chat and streaming |
@k2b/cloud/ai/question-text |
Platform-owned, browser and server | The plain-text form of an Assistant question (approvalCard, actionCardText, actionQuestionLines) that cld, notifications, and Cloud Login show |
Tools and approvals |
@k2b/cloud/ai/runtime |
Platform-owned, server-only | Core-owned conversation runtime and turn submission | Chat and streaming |
@k2b/cloud/ai/admin |
Platform-owned, server-only | AI usage accounting, model access, and masked request-header names for administration | Models and providers, Observability |
@k2b/cloud/account/ui |
Supported, SolidJS | Cloud account selectors and avatars | Building blocks |
@k2b/cloud/approvals/ui |
Supported, SolidJS | Approvals, ApprovalsNavStatus, and approvalNavCount for open Action requests |
Action approvals |
@k2b/cloud/access/ui |
Supported, SolidJS | Cloud permission and resource-key controls; isManagerEntry and ManagerCandidate for paged grant lists |
Resource API keys, Last manager |
@k2b/cloud/browser/live |
Supported, browser | liveConnection for an application's live channels; createLiveWebSocket transport for other sockets |
Realtime UI |
@k2b/cloud/events |
Supported, server-only | defineLive: live updates written in the transaction that makes the change; routes(channels) serves them over one socket per application with access checked at delivery |
Live updates |
@k2b/cloud/events/testing |
Supported, tests only | Real live engine, limits and types; memory topic with publish and trim controls; outbox startup for integration tests | Test channels |
@k2b/cloud/browser/app-badges |
Supported, browser | refreshAppBadges reads the app bar's badge counts again after a change |
Layout and navigation |
@k2b/cloud/browser/app-approval |
Supported, browser | Authenticator namespace for pairing links, device keys and signed API calls | App approval |
@k2b/cloud/browser/mermaid |
Supported, browser | Mermaid configuration that follows Cloud's light and dark colors | Styling and accessibility |
@k2b/cloud/browser/notifications |
Supported, browser | Browser notification state | Notifications |
@k2b/cloud/browser/hints |
Supported, browser | markHintSeen: remembers a moved-path hint in the browser cookie before dismissal or navigation |
One-time hints |
@k2b/cloud/browser/reload |
Supported, browser | reloadOnce: bounded automatic page reload that cannot loop and, under an open modal dialog, offers the reload once the dialog closes; importOnDemand: load code when an action needs it and offer a reload when it cannot load |
Realtime UI, Islands |
@k2b/cloud/browser/resource-clipboard |
Supported, browser | Copy and recognize stable Cloud resource references | Resource copy and paste |
@k2b/cloud/browser/panel |
Supported, browser | openPanel and closePanel: open a visible provider or close the current panel |
Panels |
@k2b/cloud/browser/search |
Supported, browser | Open global search with an optional context and register app navigation | Universal search |
@k2b/cloud/browser/widgets |
Supported, browser | streamWidgets: read dashboard widgets from Core as each one answers |
Dashboard widgets |
@k2b/cloud/browser/commands |
Supported, browser | Open interactive Commands, handle command links, and register context actions | Capabilities |
@k2b/cloud/browser/testing |
Supported, browser tests | Inspect mounted context actions and navigation, and capture search requests | Universal search |
@k2b/cloud/browser/composer-insert |
Supported, SolidJS | Build insert rows with cloudInsertMenu and app-opening rows with cloudCommandMenu / openComposerCommand; read tags, commands() and state() from createCloudComposerCatalog |
Universal search |
@k2b/cloud/browser/resource-picker |
Supported, SolidJS | Choose a stable resource reference through Universal Search | Universal search |
@k2b/cloud/browser/files |
Supported, SolidJS | chooseFiles: add files from this device or from Cloud apps that offer files, as File objects; saveFiles, SaveFilesButton, saveFilesLabel, SAVE_FILES_ICON: save copies into Cloud apps that store files |
File providers |
@k2b/cloud/clients/core |
Platform-owned, browser | Typed client for the Core platform API | — |
@k2b/cloud/workflows/language |
Supported | Workflow compiler, parser, and authoring | Author workflows |
@k2b/cloud/workflows/runtime |
Supported, server-only | Workflow execution runtime | Workflow effects |
@k2b/cloud/workflows/store |
Supported, server-only | Durable workflow store, createWorkflowWorker, and notifyWorkflowWorker |
Start runs |
@k2b/cloud/workflows/ai |
Supported, server-only | Durable AI task migration and lifecycle for opted-in workflow apps | Structured and background AI |
@k2b/cloud/workflows/testing |
Supported, tests | Workflow process fixtures | Test workflows |
@k2b/cloud/services/image-metadata |
Supported, server-only | Strip metadata from content image uploads without re-encoding | Image upload privacy |
@k2b/cloud/services/document-extraction |
Supported, server-only | Convert authorized document bytes to bounded untrusted Markdown | Document extraction |
@k2b/cloud/services/outbox |
Supported, server-only | createPgOutbox: deliver the rows of an application's own outbox table after commit, in order per key |
Migrations and transactions |
@k2b/cloud/ssr/islands |
Supported, server-only | Shared SSR island helpers | In-product help |
@k2b/cloud/ssr/WorkspaceNavigation.island |
Supported | SSR-first workspace links for the Cloud mobile menu | Application shells |
@k2b/cloud/ssr/layout-runtime |
Supported, browser | layout.update() and layout.handleUp() for islands that navigate in place |
Layout and navigation |
@k2b/cloud/ssr/* |
Advanced | Named SSR modules; prefer the barrel | — |
@k2b/cloud/workflows/editor |
Supported, SolidJS | Workflow authoring controls | Shared components |
@k2b/cloud/styles/global.css |
Supported asset | Alias for the global stylesheet | Styling |
@k2b/cloud/cli/access |
Supported | Resource access commands | CLI modules |
@k2b/cloud/cli/capabilities |
Platform-owned | Built-in generic capability client | App capabilities |
@k2b/cloud/capabilities |
Supported, browser | Runtime-validated capability clients and typed actionReview builder |
App capabilities |
@k2b/cloud/capabilities/server |
Supported, server-only | Registry-backed capability clients and typed actionReview builder |
App capabilities |
@k2b/cloud/capabilities/store |
Platform-owned, server-only | Capability execution history: migration, recording, listing, summary, and retention | App capabilities |
@k2b/cloud/capabilities/testing |
Supported, tests | Provider manifest, evolution, resource-link and localized review checks | App capabilities |
@k2b/cloud/cli/account |
Platform-owned | Built-in account commands | — |
@k2b/cloud/cli/apps |
Platform-owned | Built-in application commands | — |
@k2b/cloud/cli/admin |
Platform-owned | Built-in administration commands | — |
@k2b/cloud/contracts/notifications |
Supported | Browser-safe notification contracts | Notifications |
@k2b/cloud/contracts/* |
Advanced | Named contract modules; prefer the barrel | — |
@k2b/cloud/config/* |
Advanced | Named configuration modules; prefer the barrel | — |
Every app-facing specialized row has a guide. Platform-owned and Advanced
rows are exported for Cloud itself or for a narrowly documented integration;
their presence is not an application support promise.
Preview surfaces
The mobile app is not released yet, so its part contract and the platform
exports behind it are Preview. Their guides say so at the top.
| Surface | Status | Use | Guide |
|---|---|---|---|
pwa option of defineApp() from @k2b/cloud |
Preview | Add the application's pages to the mobile app | Define an application |
/pwa/<app-id> part routes |
Preview | Paths that defineApp() derives for a part; every other /pwa path is reserved |
Pages in the mobile app |
PwaLayout and PwaLayoutProps from @k2b/cloud/ssr |
Preview, server-only | Frame every page of a part | Pages in the mobile app |
ssr.pwaAccess of the defined application |
Preview, server-only | Handle a part request without an app session | Pages in the mobile app |
visiblePwaParts and VisiblePwaPart from @k2b/cloud/ssr |
Preview, platform-owned | The parts the mobile app lists on Start | — |
PWA_* constants, isPwaPartId, isPwaShellAvailable, pairing-link helpers and Pwa* schemas from @k2b/cloud/contracts |
Preview, platform-owned | Paths, limits, pairing and phone contracts of the mobile app | App sessions |
pwaDevices, PwaError and their types from @k2b/cloud/services |
Preview, platform-owned | Pairing, app sessions and phone administration | Account administration API |
sessionKind on AuthContext, auth.isAppSession, auth.rejectAppSession and isAppSessionActor from @k2b/cloud/server |
Preview | Recognize the mobile app's session and refuse it where an action would outlive the phone | App sessions |
Platform-owned and limited surfaces
| Entry point | Status | Meaning |
|---|---|---|
@k2b/cloud/api |
Platform-owned | Builds the Core platform router, including createAiOpenAiRoutes for Core’s models-only OpenAI-compatible API |
@k2b/cloud/services/help |
Platform-owned | Core Help migration and shared publication/read service |
@k2b/cloud/services/approvals |
Platform-owned | Platform requests, decisions, consumption, lists, and counts; see Action approvals |
@k2b/cloud/ssr/help |
Supported, server-only | Request-scoped Help metadata for specialized embedded readers |
Registry, heartbeat, and runtime helpers from @k2b/cloud |
Platform-owned | Gateway, Core, and platform composition |
@k2b/cloud/services/* |
Advanced | Deep service exports; prefer the barrel |
@k2b/cloud/server/* |
Advanced | Deep server exports; prefer the barrel |
@k2b/cloud/desktop |
Limited | Exported desktop runtime; outside this application guide |
@k2b/cloud/desktop/solid |
Limited | Desktop SolidJS integration |
@k2b/cloud/services/ipa/service-account |
Blocked | Explicitly excluded from package exports |
“Limited” means the path is exported but not part of the documented web application contract. It is not a promise of instability.
Compatibility-only surfaces
| Surface | Use instead |
|---|---|
@k2b/cloud/shared utility re-exports |
@k2b/stdlib |
validator |
v |
Untyped apiClient |
api.create<TApi>() |
| Legacy notification send overloads | Typed notification definitions |
| Legacy access inputs | AccessSubject |
See Deprecations for migration steps.
Avoid internal imports
Do not import from package source paths such as:
import { something } from "@k2b/cloud/src/...";Those paths are implementation details.
requiresAuth and the other requires* values describe OpenAPI security. They
do not protect a route. Use auth middleware.
The @k2b/cloud/ai export CODE_SOURCE_TOOLS and its CodeSourceToolName type
define the flat inputs for direct Assistant server tools. See
Assistant code tools for loading and execution.
createCodeCapabilityTransport and CODE_CAPABILITY_TOKEN_HEADER on this
entry point are platform-owned managed-host helpers, not application APIs.
They keep the turn-bound callback credential outside the sandbox and route
capability calls through Core; see App capabilities.
PDF applications use renderHtmlToPdf, renderFacturXHtmlToPdf and
attachPdfFiles from @k2b/cloud/services for HTML conversion, invoice XML
embedding and ordinary file attachments. preparePdfImage and its input,
variant, result, and error types are available from @k2b/cloud/services and
@k2b/cloud/services/pdf for bounded print image preparation.
See PDF and templates
for their input, access, cancellation and deployment responsibilities.
Help surfaces
@k2b/cloud/ssr/islands exports Layout.HelpPage / LayoutHelpPage for
full-page and embedded readers, plus Layout.HelpDocuments /
LayoutHelpDocuments and openLayoutHelpDialog.
@k2b/cloud/ssr exports LayoutHelpPanel with LayoutHelpPanelProps for
server HTML with small interaction islands. Render it in a server page, such
as inside PanelLayout, never inside an island. Applications normally use the
automatic Help registration.
openLayoutHelpDialog() first opens Core's provider in the slot and falls back
to a dialog when no slot accepts it.
See In-product Help.
Workspace navigation
@k2b/cloud/ssr/WorkspaceNavigation.island supplies SSR-first workspace links.
@k2b/cloud/ssr/islands exports WorkspaceNavigationProvider and
provideWorkspaceNavigation for reactive navigation owned by an application
island. See Application shells.
The standalone UI exports createNavigation, Navigation, NavigationItem,
NavigationController, NavigationOptions, NavigationProps,
findNavigationItem, BottomSheet, BottomSheetProps, bottomSheetOptions, and
bottomSheetAdaptiveOptions. See BottomSheet for
choosing a bottom-edge sheet or an adaptive decision dialog.
@k2b/cloud/browser/commands exports openCommand, registerCommandHandler,
registerContextAwareCommand, and consumeCommandLink for interactive
Commands
and context actions in the global palette. @k2b/cloud/capabilities exports
resolveCommand for authenticated HTTP clients that need an entry URL.
@k2b/cloud/contracts also exports isCommandPath to check Cloud paths.
Import it from @k2b/cloud/contracts/command-path to use the check without
loading validators.
Panel page context
Use readPanelContext(c) from @k2b/cloud/ssr for a provider's first server
render. Browser code uses getContext() and onContextChange() from
@k2b/cloud/browser/panel; host pages with in-document place changes use
publishPageContext(). PanelPageContext and its strict schema are exported
from @k2b/cloud/contracts. See Panels
for consent, ordering, and the rule that refs never grant access.