aegis-platform-sdk 1.0.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/errors.ts","../src/transport.ts","../src/sse.ts","../src/resources/auth.ts","../src/resources/iam.ts","../src/resources/osdk.ts","../src/resources/operator.ts","../src/resources/ontology.ts","../src/resources/aip.ts","../src/resources/functions.ts","../src/resources/datasets.ts","../src/resources/reading.ts","../src/resources/operational.ts","../src/resources/governance.ts","../src/resources/platform.ts","../src/resources/domain.ts","../src/resources/collab.ts","../src/resources/workspaces.ts","../src/resources/platformVersions.ts","../src/client.ts","../src/classification.ts","../src/permissions.ts","../src/osdk-applications.ts","../src/osdk-adapter.ts"],"sourcesContent":["/**\n * Exception hierarchy for the AEGIS SDK — mirrors `aegis.exceptions` in the\n * Python SDK. Callers can catch the broad `AegisAPIError` or react to\n * specific subclasses:\n *\n * ```ts\n * try {\n * await client.iam.users.list();\n * } catch (err) {\n * if (err instanceof PermissionDeniedError) console.log(\"missing perm:\", err.detail);\n * else if (err instanceof AegisAPIError) console.log(err.statusCode, err.detail);\n * }\n * ```\n */\n\nexport class AegisAPIError extends Error {\n readonly statusCode: number;\n readonly detail: string;\n readonly payload: unknown;\n\n constructor(statusCode: number, detail = \"\", payload: unknown = null) {\n super(`HTTP ${statusCode}: ${detail}`);\n this.name = new.target.name;\n this.statusCode = statusCode;\n this.detail = detail;\n this.payload = payload;\n }\n}\n\n/** 401 — invalid / expired token, missing credentials, locked account. */\nexport class AuthError extends AegisAPIError {}\n\n/** 403 — authenticated but lacks the permission for this call. */\nexport class PermissionDeniedError extends AegisAPIError {}\n\n/** 404 — the addressed resource does not exist (or is hidden by tenant scope). */\nexport class NotFoundError extends AegisAPIError {}\n","import { AegisAPIError, AuthError, NotFoundError, PermissionDeniedError } from \"./errors\";\n\nexport type QueryParams = Record<\n string,\n string | number | boolean | ReadonlyArray<string | number> | undefined | null\n>;\n\nexport interface RequestOptions {\n params?: QueryParams;\n json?: unknown;\n /** Multipart body (e.g. logo upload) — mutually exclusive with `json`. */\n form?: FormData;\n signal?: AbortSignal;\n}\n\n/** The verb-agnostic transport contract every resource is built on. */\nexport interface Transport {\n request<T = unknown>(method: string, path: string, opts?: RequestOptions): Promise<T>;\n}\n\nexport function buildUrl(baseUrl: string, path: string, params?: QueryParams): string {\n const raw = baseUrl.replace(/\\/+$/, \"\") + path;\n let url: URL;\n if (/^[a-z][a-z0-9+.-]*:\\/\\//i.test(raw)) {\n url = new URL(raw);\n } else {\n // Relative base (e.g. \"/api\" behind a same-origin reverse proxy) —\n // resolve against the browser origin.\n const origin = (globalThis as { location?: { origin?: string } }).location?.origin;\n if (!origin) {\n throw new Error(\n `relative baseUrl \"${baseUrl}\" requires a browser origin — use an absolute URL in Node`,\n );\n }\n url = new URL(raw, origin);\n }\n if (params) {\n for (const [key, value] of Object.entries(params)) {\n if (value === undefined || value === null) continue;\n if (Array.isArray(value)) {\n for (const item of value) url.searchParams.append(key, String(item));\n } else {\n url.searchParams.set(key, String(value));\n }\n }\n }\n return url.toString();\n}\n\n/** Map an HTTP response to a payload or throw the mirrored exception hierarchy. */\nexport async function handleResponse<T>(res: Response): Promise<T> {\n if (res.status === 204) return null as T;\n const text = await res.text();\n let payload: unknown = text;\n try {\n payload = text ? JSON.parse(text) : null;\n } catch {\n /* non-JSON body — keep raw text */\n }\n if (res.ok) return payload as T;\n\n let detail = \"\";\n if (payload && typeof payload === \"object\" && \"detail\" in payload) {\n detail = String((payload as { detail: unknown }).detail ?? \"\");\n } else if (typeof payload === \"string\") {\n detail = payload;\n }\n if (res.status === 401) throw new AuthError(401, detail || \"unauthenticated\", payload);\n if (res.status === 403) throw new PermissionDeniedError(403, detail || \"forbidden\", payload);\n if (res.status === 404) throw new NotFoundError(404, detail || \"not found\", payload);\n throw new AegisAPIError(res.status, detail || text, payload);\n}\n","/**\n * Minimal SSE (text/event-stream) support — zero dependencies.\n *\n * AEGIS exposes server-sent-event endpoints for long-running work\n * (operator task progress, AIP chat streaming). `AegisClient.stream()`\n * yields parsed events as an async iterator:\n *\n * ```ts\n * for await (const ev of client.stream(\"/operator/tasks/t1/events\")) {\n * if (ev.event === \"progress\") console.log(JSON.parse(ev.data));\n * }\n * ```\n */\n\nexport interface SseEvent {\n /** Event name — defaults to \"message\" per the SSE spec. */\n event: string;\n /** Raw data payload (multi-line `data:` fields joined with `\\n`). */\n data: string;\n id?: string;\n retry?: number;\n}\n\n/** Parse a `text/event-stream` byte stream into events (spec-compliant subset). */\nexport async function* parseSseStream(\n stream: ReadableStream<Uint8Array>,\n): AsyncGenerator<SseEvent, void, undefined> {\n const reader = stream.getReader();\n const decoder = new TextDecoder();\n let buffer = \"\";\n\n let event = \"\";\n let data: string[] = [];\n let id: string | undefined;\n let retry: number | undefined;\n\n const flush = (): SseEvent | null => {\n // Per the SSE spec, dispatch is aborted when the data buffer is empty\n // (id/retry are sticky and alone never produce an event).\n if (data.length === 0) {\n event = \"\";\n return null;\n }\n const ev: SseEvent = { event: event || \"message\", data: data.join(\"\\n\") };\n if (id !== undefined) ev.id = id;\n if (retry !== undefined) ev.retry = retry;\n event = \"\";\n data = [];\n return ev;\n };\n\n const handleLine = (line: string): SseEvent | null => {\n if (line === \"\") return flush();\n if (line.startsWith(\":\")) return null; // comment / keep-alive\n const colon = line.indexOf(\":\");\n const field = colon === -1 ? line : line.slice(0, colon);\n let value = colon === -1 ? \"\" : line.slice(colon + 1);\n if (value.startsWith(\" \")) value = value.slice(1);\n switch (field) {\n case \"event\":\n event = value;\n break;\n case \"data\":\n data.push(value);\n break;\n case \"id\":\n id = value;\n break;\n case \"retry\": {\n const n = Number(value);\n if (Number.isFinite(n)) retry = n;\n break;\n }\n }\n return null;\n };\n\n try {\n for (;;) {\n const { done, value } = await reader.read();\n if (done) break;\n buffer += decoder.decode(value, { stream: true });\n let newline: number;\n while ((newline = buffer.search(/\\r\\n|\\n|\\r/)) !== -1) {\n const line = buffer.slice(0, newline);\n buffer = buffer.slice(newline + (buffer[newline] === \"\\r\" && buffer[newline + 1] === \"\\n\" ? 2 : 1));\n const ev = handleLine(line);\n if (ev) yield ev;\n }\n }\n // Stream ended — flush a trailing event without a blank-line terminator.\n if (buffer) handleLine(buffer);\n const tail = flush();\n if (tail) yield tail;\n } finally {\n reader.releaseLock();\n }\n}\n","import type { Transport } from \"../transport\";\nimport type { DevMode, TokenPair, WhoAmI } from \"../types\";\n\nexport interface LoginOptions {\n totpCode?: string;\n /** Attach the issued JWT to the client for subsequent calls (default true). */\n attach?: boolean;\n}\n\n/** `client.auth.*` — login, refresh, whoami, dev-mode. */\nexport class AuthResource {\n constructor(\n private readonly t: Transport,\n private readonly attach: (pair: TokenPair) => void,\n ) {}\n\n async login(username: string, password: string, opts: LoginOptions = {}): Promise<TokenPair> {\n const body: Record<string, unknown> = { username, password };\n if (opts.totpCode) body.totp_code = opts.totpCode;\n const pair = await this.t.request<TokenPair>(\"POST\", \"/auth/login\", { json: body });\n if (opts.attach !== false) this.attach(pair);\n return pair;\n }\n\n /** Rotate a refresh token explicitly (`POST /auth/refresh`). The client\n * already does this transparently on 401 — call this only for manual\n * flows. Attaches the new pair unless `attach: false`. */\n async refresh(refreshToken: string, opts: { attach?: boolean } = {}): Promise<TokenPair> {\n const pair = await this.t.request<TokenPair>(\"POST\", \"/auth/refresh\", {\n json: { refresh_token: refreshToken },\n });\n if (opts.attach !== false) this.attach(pair);\n return pair;\n }\n\n me(): Promise<WhoAmI> {\n return this.t.request<WhoAmI>(\"GET\", \"/auth/me\");\n }\n\n /** Activate a vendor dev-mode session; requires the `vendor` role. */\n enableDevMode(password: string): Promise<DevMode> {\n return this.t.request<DevMode>(\"POST\", \"/me/dev-mode\", { json: { password } });\n }\n}\n","import type { Transport } from \"../transport\";\nimport type { Json, Permission, Role, User } from \"../types\";\n\nclass UsersResource {\n constructor(private readonly t: Transport) {}\n list(): Promise<User[]> {\n return this.t.request(\"GET\", \"/iam/users\");\n }\n get(userId: string): Promise<User> {\n return this.t.request(\"GET\", `/iam/users/${userId}`);\n }\n}\n\nclass RolesResource {\n constructor(private readonly t: Transport) {}\n list(): Promise<Role[]> {\n return this.t.request(\"GET\", \"/iam/roles\");\n }\n get(roleId: string): Promise<Role> {\n return this.t.request(\"GET\", `/iam/roles/${roleId}`);\n }\n}\n\nexport class GroupsResource {\n constructor(private readonly t: Transport) {}\n list<T = Json>(opts: { limit?: number; offset?: number } = {}): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/iam/groups\", { params: opts });\n }\n get<T = Json>(groupId: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/iam/groups/${groupId}`);\n }\n create<T = Json>(name: string, description?: string): Promise<T> {\n return this.t.request<T>(\"POST\", \"/iam/groups\", { json: { name, description } });\n }\n update<T = Json>(groupId: string, patch: { name?: string; description?: string }): Promise<T> {\n return this.t.request<T>(\"PATCH\", `/iam/groups/${groupId}`, { json: patch });\n }\n delete(groupId: string): Promise<void> {\n return this.t.request(\"DELETE\", `/iam/groups/${groupId}`);\n }\n listMembers<T = Json>(groupId: string): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", `/iam/groups/${groupId}/members`);\n }\n addMember<T = Json>(groupId: string, userId: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/iam/groups/${groupId}/members`, { json: { user_id: userId } });\n }\n removeMember(groupId: string, userId: string): Promise<void> {\n return this.t.request(\"DELETE\", `/iam/groups/${groupId}/members/${userId}`);\n }\n listForUser<T = Json>(userId: string): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", `/iam/users/${userId}/groups`);\n }\n}\n\nclass PermissionsResource {\n constructor(private readonly t: Transport) {}\n list(resource?: string): Promise<Permission[]> {\n return this.t.request(\"GET\", \"/iam/permissions\", { params: { resource } });\n }\n}\n\nclass NavResource {\n constructor(private readonly t: Transport) {}\n tree<T = Json>(asRoleId?: string): Promise<T> {\n return this.t.request<T>(\"GET\", \"/iam/nav\", { params: { as_role_id: asRoleId } });\n }\n}\n\n/** `client.iam.*` — users, roles, groups, permissions, nav tree. */\nexport class IamResource {\n readonly users: UsersResource;\n readonly roles: RolesResource;\n readonly groups: GroupsResource;\n readonly permissions: PermissionsResource;\n readonly nav: NavResource;\n\n constructor(t: Transport) {\n this.users = new UsersResource(t);\n this.roles = new RolesResource(t);\n this.groups = new GroupsResource(t);\n this.permissions = new PermissionsResource(t);\n this.nav = new NavResource(t);\n }\n}\n","import type { Transport } from \"../transport\";\nimport type { OsdkToken, OsdkTokenWithSecret } from \"../types\";\n\n/** `client.osdk.*` — OSDK application token management (Governance → OSDK). */\nexport class OsdkResource {\n constructor(private readonly t: Transport) {}\n\n list(): Promise<OsdkToken[]> {\n return this.t.request(\"GET\", \"/governance/tokens\");\n }\n get(tokenId: string): Promise<OsdkToken> {\n return this.t.request(\"GET\", `/governance/tokens/${tokenId}`);\n }\n /** Returns the plaintext secret ONCE — stash it like any other secret. */\n create(name: string, scopes: string[], expiresAt?: string): Promise<OsdkTokenWithSecret> {\n return this.t.request(\"POST\", \"/governance/tokens\", {\n json: { name, scopes, expires_at: expiresAt },\n });\n }\n rotate(tokenId: string): Promise<OsdkTokenWithSecret> {\n return this.t.request(\"POST\", `/governance/tokens/${tokenId}/rotate`);\n }\n revoke(tokenId: string): Promise<void> {\n return this.t.request(\"DELETE\", `/governance/tokens/${tokenId}`);\n }\n}\n","import type { Transport } from \"../transport\";\nimport type { Json } from \"../types\";\n\nexport interface OperatorTaskListOptions {\n status?: string;\n project_id?: string;\n origin?: string;\n mine?: boolean;\n limit?: number;\n}\n\nexport interface OperatorTaskCreate {\n prompt_text: string;\n title?: string;\n project_id?: string;\n priority?: string;\n parent_task_id?: string;\n markings?: string[];\n}\n\nclass OperatorTasksResource {\n constructor(private readonly t: Transport) {}\n\n list<T = Json>(opts: OperatorTaskListOptions = {}): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/operator/tasks\", { params: { ...opts } });\n }\n get<T = Json>(taskId: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/operator/tasks/${taskId}`);\n }\n create<T = Json>(input: OperatorTaskCreate): Promise<T> {\n return this.t.request<T>(\"POST\", \"/operator/tasks\", { json: input });\n }\n cancel<T = Json>(taskId: string): Promise<T> {\n return this.t.request<T>(\"PATCH\", `/operator/tasks/${taskId}`, { json: { action: \"cancel\" } });\n }\n retry<T = Json>(taskId: string): Promise<T> {\n return this.t.request<T>(\"PATCH\", `/operator/tasks/${taskId}`, { json: { action: \"retry\" } });\n }\n reprioritize<T = Json>(taskId: string, priority: string): Promise<T> {\n return this.t.request<T>(\"PATCH\", `/operator/tasks/${taskId}`, {\n json: { action: \"reprioritize\", priority },\n });\n }\n}\n\n/** `client.operator.*` — operator task queue (NL kanban). */\nexport class OperatorResource {\n readonly tasks: OperatorTasksResource;\n constructor(t: Transport) {\n this.tasks = new OperatorTasksResource(t);\n }\n}\n","import type { Transport } from \"../transport\";\nimport type { Json } from \"../types\";\n\nclass ObjectsResource {\n constructor(private readonly t: Transport) {}\n\n get<T = Json>(objectId: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/ontology/nodes/${objectId}`);\n }\n list<T = Json>(kind: string, opts: { limit?: number; offset?: number; q?: string } = {}): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/ontology/nodes\", { params: { node_type: kind, ...opts } });\n }\n create<T = Json>(kind: string, properties: Json, name?: string): Promise<T> {\n return this.t.request<T>(\"POST\", \"/ontology/nodes\", {\n json: { kind, properties, name },\n });\n }\n createMany<T = Json>(kind: string, items: Json[], markings?: string[]): Promise<T> {\n return this.t.request<T>(\"POST\", \"/ontology/nodes/bulk\", { json: { kind, items, markings } });\n }\n delete<T = Json>(objectId: string): Promise<T> {\n return this.t.request<T>(\"DELETE\", `/ontology/nodes/${objectId}`);\n }\n bulkDelete<T = Json>(opts: {\n object_ids?: string[];\n kind?: string;\n dry_run?: boolean;\n confirm?: boolean;\n expected_count?: number;\n }): Promise<T> {\n return this.t.request<T>(\"POST\", \"/ontology/nodes/bulk-delete\", { json: opts });\n }\n links<T = Json>(objectId: string): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", `/entities/${objectId}/links`);\n }\n history<T = Json>(objectId: string): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", `/lineage/by-asset/${objectId}`);\n }\n queryTimeseries<T = Json>(\n objectId: string,\n propertyName: string,\n opts: { from_time?: string; to_time?: string; max_points?: number } = {},\n ): Promise<T> {\n return this.t.request<T>(\n \"POST\",\n `/ontology/nodes/${objectId}/properties/${propertyName}/timeseries-query`,\n { json: opts },\n );\n }\n appendTimeseries<T = Json>(objectId: string, propertyName: string, points: Json[]): Promise<T> {\n return this.t.request<T>(\n \"POST\",\n `/ontology/nodes/${objectId}/properties/${propertyName}/timeseries/append`,\n { json: { points } },\n );\n }\n}\n\nclass GraphResource {\n constructor(private readonly t: Transport) {}\n expand<T = Json>(seedId: string, opts: { depth?: number; limit?: number } = {}): Promise<T> {\n return this.t.request<T>(\"GET\", `/entities/${seedId}/graph`, { params: opts });\n }\n}\n\nclass ExplorerResource {\n constructor(private readonly t: Transport) {}\n histogram<T = Json>(property: string, filters?: Json): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/entities/aggregate\", {\n params: { property, ...(filters as Record<string, string> | undefined) },\n });\n }\n timeline<T = Json>(filters?: Json, bin?: string): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/entities/timeline\", {\n params: { bin, ...(filters as Record<string, string> | undefined) },\n });\n }\n}\n\nexport interface ObjectTypeWrite {\n title_property: string;\n properties: Json;\n display_name?: string;\n enforce?: boolean;\n markings?: string[];\n}\n\nclass ObjectTypesResource {\n constructor(private readonly t: Transport) {}\n get<T = Json>(kind: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/ontology/object-types/${kind}`);\n }\n create<T = Json>(kind: string, input: ObjectTypeWrite): Promise<T> {\n return this.t.request<T>(\"POST\", \"/ontology/object-types\", { json: { kind, ...input } });\n }\n update<T = Json>(kind: string, input: ObjectTypeWrite): Promise<T> {\n return this.t.request<T>(\"PUT\", `/ontology/object-types/${kind}`, { json: input });\n }\n delete<T = Json>(kind: string): Promise<T> {\n return this.t.request<T>(\"DELETE\", `/ontology/object-types/${kind}`);\n }\n}\n\nclass LinkTypesResource {\n constructor(private readonly t: Transport) {}\n declare<T = Json>(input: {\n source_kind: string;\n target_kind: string;\n relation: string;\n cardinality: string;\n inverse_label?: string;\n }): Promise<T> {\n return this.t.request<T>(\"POST\", \"/ontology/link-types\", { json: input });\n }\n delete<T = Json>(edgeId: string): Promise<T> {\n return this.t.request<T>(\"DELETE\", `/ontology/link-types/${edgeId}`);\n }\n}\n\n/** `client.ontology.*` — objects, graph, explorer, object/link types, OSDK manifest. */\nexport class OntologyResource {\n readonly objects: ObjectsResource;\n readonly graph: GraphResource;\n readonly explorer: ExplorerResource;\n readonly objectTypes: ObjectTypesResource;\n readonly linkTypes: LinkTypesResource;\n\n constructor(private readonly t: Transport) {\n this.objects = new ObjectsResource(t);\n this.graph = new GraphResource(t);\n this.explorer = new ExplorerResource(t);\n this.objectTypes = new ObjectTypesResource(t);\n this.linkTypes = new LinkTypesResource(t);\n }\n\n /** Shortcut — same as `objectTypes.get(kind)`. */\n objectType(kind: string): Promise<Json> {\n return this.objectTypes.get(kind);\n }\n osdkManifest<T = Json>(): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/ontology/osdk/manifest\");\n }\n osdkFunctions<T = Json>(): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/ontology/osdk/manifest/functions\");\n }\n osdkGenerate<T = Json>(lang?: string): Promise<T> {\n return this.t.request<T>(\"GET\", \"/ontology/osdk/generate\", { params: { lang } });\n }\n}\n","import type { Transport } from \"../transport\";\nimport type { Json } from \"../types\";\n\nclass FlowsResource {\n constructor(private readonly t: Transport) {}\n list<T = Json>(): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/campaign/flows\");\n }\n get<T = Json>(flowId: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/campaign/flows/${flowId}`);\n }\n runs<T = Json>(flowId: string): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", `/campaign/flows/${flowId}/runs`);\n }\n patch<T = Json>(flowId: string, payload: Json): Promise<T> {\n return this.t.request<T>(\"PATCH\", `/campaign/flows/${flowId}`, { json: payload });\n }\n run<T = Json>(flowId: string, dryRun?: boolean): Promise<T> {\n return this.t.request<T>(\"POST\", `/campaign/flows/${flowId}/run`, {\n json: dryRun === undefined ? {} : { dry_run: dryRun },\n });\n }\n}\n\nclass AgentsResource {\n constructor(private readonly t: Transport) {}\n list<T = Json>(): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/campaign/agents\");\n }\n get<T = Json>(agentId: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/campaign/agents/${agentId}`);\n }\n patch<T = Json>(agentId: string, config: Json): Promise<T> {\n return this.t.request<T>(\"PATCH\", `/campaign/agents/${agentId}`, { json: config });\n }\n manualRun<T = Json>(agentId: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/campaign/agents/${agentId}/runs`);\n }\n runs<T = Json>(agentId: string): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", `/campaign/agents/${agentId}/runs`);\n }\n}\n\nclass ModelsResource {\n constructor(private readonly t: Transport) {}\n catalog<T = Json>(provider?: string): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/platform/v25/aip/models/catalog\", { params: { provider } });\n }\n defaults<T = Json>(): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/platform/v25/aip/models/defaults\");\n }\n setDefault<T = Json>(input: {\n provider: string;\n model: string;\n purpose?: string;\n provider_id?: string;\n }): Promise<T> {\n return this.t.request<T>(\"PUT\", \"/platform/v25/aip/models/defaults\", { json: input });\n }\n}\n\nclass BudgetResource {\n constructor(private readonly t: Transport) {}\n get<T = Json>(): Promise<T> {\n return this.t.request<T>(\"GET\", \"/platform/v23/llm-budget\");\n }\n set<T = Json>(tokensPerMonth: number): Promise<T> {\n return this.t.request<T>(\"PUT\", \"/platform/v23/llm-budget\", {\n json: { tokens_per_month: tokensPerMonth },\n });\n }\n}\n\n/** `client.aip.*` — flows, agents, model catalog/defaults, LLM budget. */\nexport class AipResource {\n readonly flows: FlowsResource;\n readonly agents: AgentsResource;\n readonly models: ModelsResource;\n readonly budget: BudgetResource;\n\n constructor(t: Transport) {\n this.flows = new FlowsResource(t);\n this.agents = new AgentsResource(t);\n this.models = new ModelsResource(t);\n this.budget = new BudgetResource(t);\n }\n}\n","import type { Transport } from \"../transport\";\nimport type { Json } from \"../types\";\n\nexport interface FunctionCreate {\n slug: string;\n display_name: string;\n source: string;\n language?: string;\n signature?: Json;\n description?: string;\n markings?: string[];\n classification_level?: string;\n project_id?: string;\n strict_signature?: boolean;\n allow_network?: boolean;\n}\n\nexport interface PullRequestCreate {\n title: string;\n proposed_source: string;\n description?: string;\n proposed_signature?: Json;\n proposed_language?: string;\n required_approvers?: number;\n target_branch?: string;\n}\n\n/** `client.functions.*` — Code Functions (/platform/v26/functions). */\nexport class FunctionsResource {\n constructor(private readonly t: Transport) {}\n\n list<T = Json>(): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/platform/v26/functions\");\n }\n get<T = Json>(slug: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/platform/v26/functions/${slug}`);\n }\n create<T = Json>(input: FunctionCreate): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v26/functions\", { json: input });\n }\n invoke<T = Json>(slug: string, inputs?: Json, opts: { branch?: string; draft?: boolean } = {}): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v26/functions/${slug}/invoke`, {\n json: { inputs: inputs ?? {}, ...opts },\n });\n }\n tests<T = Json>(slug: string): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", `/platform/v26/functions/${slug}/tests`);\n }\n addTest<T = Json>(slug: string, name: string, inputs?: Json, expectedContains?: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v26/functions/${slug}/tests`, {\n json: { name, inputs, expected_contains: expectedContains },\n });\n }\n runTest<T = Json>(slug: string, testId: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v26/functions/${slug}/tests/${testId}/run`);\n }\n runTests<T = Json>(slug: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v26/functions/${slug}/test`);\n }\n publish<T = Json>(slug: string, branch?: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v26/functions/${slug}/publish`, {\n json: branch ? { branch } : {},\n });\n }\n versions<T = Json>(slug: string): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", `/platform/v26/functions/${slug}/versions`);\n }\n pullRequests<T = Json>(slug: string, status?: string): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", `/platform/v26/functions/${slug}/pull-requests`, {\n params: { status },\n });\n }\n openPullRequest<T = Json>(slug: string, input: PullRequestCreate): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v26/functions/${slug}/pull-requests`, { json: input });\n }\n updatePullRequest<T = Json>(slug: string, prId: string, patch: Json): Promise<T> {\n return this.t.request<T>(\"PATCH\", `/platform/v26/functions/${slug}/pull-requests/${prId}`, {\n json: patch,\n });\n }\n runPrCi<T = Json>(slug: string, prId: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v26/functions/${slug}/pull-requests/${prId}/ci`);\n }\n reviewPullRequest<T = Json>(slug: string, prId: string, decision: string, comment?: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v26/functions/${slug}/pull-requests/${prId}/reviews`, {\n json: { decision, comment },\n });\n }\n mergePullRequest<T = Json>(slug: string, prId: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v26/functions/${slug}/pull-requests/${prId}/merge`);\n }\n}\n\n/** `client.codeRepositories.*` — repos/branches around Code Functions. */\nexport class CodeRepositoriesResource {\n constructor(private readonly t: Transport) {}\n\n list<T = Json>(): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/platform/v26/code-repositories\");\n }\n create<T = Json>(input: {\n slug: string;\n display_name: string;\n description?: string;\n default_branch?: string;\n }): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v26/code-repositories\", { json: input });\n }\n branches<T = Json>(repoId: string): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", `/platform/v26/code-repositories/${repoId}/branches`);\n }\n createBranch<T = Json>(repoId: string, name: string, description?: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v26/code-repositories/${repoId}/branches`, {\n json: { name, description },\n });\n }\n functions<T = Json>(repoId: string): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", `/platform/v26/code-repositories/${repoId}/functions`);\n }\n assignFunction<T = Json>(repoId: string, slug: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v26/code-repositories/${repoId}/functions`, {\n json: { slug },\n });\n }\n runCi<T = Json>(repoId: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v26/code-repositories/${repoId}/ci`);\n }\n mergeBranch<T = Json>(repoId: string, sourceBranch: string, into?: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v26/code-repositories/${repoId}/merge`, {\n json: { source_branch: sourceBranch, into },\n });\n }\n}\n","import type { Transport } from \"../transport\";\nimport type { Json } from \"../types\";\n\nexport type TransactionKind = \"SNAPSHOT\" | \"APPEND\" | \"UPDATE\" | \"DELETE\";\n\n/** `client.datasets.*` — datasets, branches, transactions, classification, markings. */\nexport class DatasetsResource {\n constructor(private readonly t: Transport) {}\n\n list<T = Json>(): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/datasets\");\n }\n get<T = Json>(name: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/datasets/${name}`);\n }\n sample<T = Json>(name: string, limit?: number): Promise<T> {\n return this.t.request<T>(\"GET\", `/datasets/${name}/sample`, { params: { limit } });\n }\n\n listBranches<T = Json>(name: string): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", `/datasets/${name}/branches`);\n }\n createBranch<T = Json>(\n name: string,\n branchName: string,\n opts: {\n from_branch?: string;\n from_asset_id?: string;\n description?: string;\n project_id?: string;\n } = {},\n ): Promise<T> {\n return this.t.request<T>(\"POST\", `/datasets/${name}/branches`, {\n json: { branch_name: branchName, ...opts },\n });\n }\n deactivateBranch<T = Json>(name: string, branchName: string): Promise<T> {\n return this.t.request<T>(\"DELETE\", `/datasets/${name}/branches/${branchName}`);\n }\n\n listTransactions<T = Json>(name: string, branch?: string): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", `/datasets/${name}/transactions`, { params: { branch } });\n }\n beginTransaction<T = Json>(name: string, kind: TransactionKind, branch?: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/datasets/${name}/transactions`, { json: { kind, branch } });\n }\n commitTransaction<T = Json>(name: string, txId: string, inputPayload: Json): Promise<T> {\n return this.t.request<T>(\"POST\", `/datasets/${name}/transactions/${txId}/commit`, {\n json: inputPayload,\n });\n }\n abortTransaction<T = Json>(name: string, txId: string, reason?: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/datasets/${name}/transactions/${txId}/abort`, {\n json: { reason },\n });\n }\n\n mergeFastForward<T = Json>(name: string, source: string, into: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/datasets/${name}/branches/${source}/merge`, {\n json: { into },\n });\n }\n /** 409 responses carry the conflict body in `AegisAPIError.payload`. */\n mergeThreeWay<T = Json>(name: string, source: string, into: string, resolutions?: Json): Promise<T> {\n return this.t.request<T>(\"POST\", `/datasets/${name}/branches/${source}/merge3`, {\n json: { into, resolutions },\n });\n }\n\n getClassification<T = Json>(name: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/datasets/${name}/classification`);\n }\n setClassification<T = Json>(\n name: string,\n patch: { data_classification?: string; file_classification?: string },\n ): Promise<T> {\n return this.t.request<T>(\"PATCH\", `/datasets/${name}/classification`, { json: patch });\n }\n\n listMarkings<T = Json>(name: string): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", `/datasets/${name}/markings`);\n }\n applyMarking<T = Json>(name: string, markingId: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/datasets/${name}/markings`, { json: { marking_id: markingId } });\n }\n removeMarking(name: string, markingId: string): Promise<void> {\n return this.t.request(\"DELETE\", `/datasets/${name}/markings/${markingId}`);\n }\n}\n","import type { Transport } from \"../transport\";\nimport type { Json } from \"../types\";\n\n/** `client.geo.*` — geospatial read layer over the ontology (/api/v1/geo). */\nexport class GeoResource {\n constructor(private readonly t: Transport) {}\n nodes<T = Json>(\n opts: { node_type?: string; since_minutes?: number; limit?: number; bbox?: string } = {},\n ): Promise<T> {\n return this.t.request<T>(\"GET\", \"/api/v1/geo/nodes\", { params: opts });\n }\n nodeTypes<T = Json>(): Promise<T> {\n return this.t.request<T>(\"GET\", \"/api/v1/geo/node-types\");\n }\n sources<T = Json>(): Promise<T> {\n return this.t.request<T>(\"GET\", \"/api/v1/geo/sources\");\n }\n edges<T = Json>(nodeIds: string[], relationTypes?: string[]): Promise<T> {\n return this.t.request<T>(\"GET\", \"/api/v1/geo/edges\", {\n params: { node_ids: nodeIds.join(\",\"), relation_types: relationTypes?.join(\",\") },\n });\n }\n /** Catalog of keyless reference layers (IBGE limits, CNES health, …). */\n referenceLayers<T = Json>(): Promise<T> {\n return this.t.request<T>(\"GET\", \"/api/v1/geo/reference-layers\");\n }\n /** GeoJSON of one reference layer (resilient keyless proxy). */\n referenceLayer<T = Json>(layerId: string, opts: { uf?: string; municipio?: string } = {}): Promise<T> {\n return this.t.request<T>(\"GET\", `/api/v1/geo/reference-layers/${encodeURIComponent(layerId)}`, {\n params: opts,\n });\n }\n zones<T = Json>(): Promise<T> {\n return this.t.request<T>(\"GET\", \"/api/v1/geo/zones\");\n }\n importZones<T = Json>(\n features: Json[],\n opts: { default_zone_type?: string; extruded_height?: number; source_name?: string } = {},\n ): Promise<T> {\n return this.t.request<T>(\"POST\", \"/api/v1/geo/zones/import\", { json: { features, ...opts } });\n }\n deleteZone(zoneId: string): Promise<void> {\n return this.t.request(\"DELETE\", `/api/v1/geo/zones/${zoneId}`);\n }\n}\n\n/** `client.mapTemplates.*` — reusable map specs (v22).\n * (The Python SDK's stdout `Map` builder is sandbox-IDE-only and is not ported.) */\nexport class MapTemplatesResource {\n constructor(private readonly t: Transport) {}\n async list(): Promise<Json[]> {\n const payload = await this.t.request<Json>(\"GET\", \"/platform/v22/map-templates\");\n return (payload.items as Json[]) ?? [];\n }\n get<T = Json>(templateId: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/platform/v22/map-templates/${templateId}`);\n }\n create<T = Json>(name: string, spec: Json, description = \"\"): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v22/map-templates\", {\n json: { name, spec, description },\n });\n }\n instantiate<T = Json>(templateId: string, variables?: Json): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v22/map-templates/${templateId}/instantiate`, {\n json: { variables: variables ?? {} },\n });\n }\n /** Returns the raw SVG markup (non-JSON body). */\n exportSvg(templateId: string): Promise<string> {\n return this.t.request(\"GET\", `/platform/v22/map-templates/${templateId}/export.svg`);\n }\n}\n\n/** `client.media.*` — media sets + item metadata (bytes live in MinIO via `uri`). */\nexport class MediaResource {\n constructor(private readonly t: Transport) {}\n listSets<T = Json>(): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/platform/v23/media/sets\");\n }\n createSet<T = Json>(input: {\n slug: string;\n display_name: string;\n /** image | video | audio | document | mixed */\n media_type: string;\n bucket?: string;\n markings?: string[];\n project_id?: string;\n }): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v23/media/sets\", { json: input });\n }\n deleteSet<T = Json>(setId: string): Promise<T> {\n return this.t.request<T>(\"DELETE\", `/platform/v23/media/sets/${setId}`);\n }\n listItems<T = Json>(setId: string): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", `/platform/v23/media/sets/${setId}/items`);\n }\n /** Metadata only — no file bytes are uploaded (pass a pre-supplied `uri`). */\n addItem<T = Json>(\n setId: string,\n input: {\n filename: string;\n content_type?: string;\n size_bytes?: number;\n uri?: string;\n meta?: Json;\n },\n ): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v23/media/sets/${setId}/items`, { json: input });\n }\n}\n\n/** `client.docs.*` — platform documentation tree. */\nexport class DocsResource {\n constructor(private readonly t: Transport) {}\n tree<T = Json>(): Promise<T> {\n return this.t.request<T>(\"GET\", \"/docs/tree\");\n }\n read<T = Json>(path: string): Promise<T> {\n return this.t.request<T>(\"GET\", \"/docs/content\", { params: { path } });\n }\n}\n\n/** `client.pages.*` — registered pages (v23 page registry). */\nexport class PagesResource {\n constructor(private readonly t: Transport) {}\n list<T = Json>(opts: { status?: string; scope?: string; perm?: string } = {}): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/platform/v23/pages\", { params: opts });\n }\n get<T = Json>(slug: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/platform/v23/pages/${slug}`);\n }\n getConfig<T = Json>(slug: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/platform/v23/pages/${slug}/config`);\n }\n create<T = Json>(input: {\n slug: string;\n title: string;\n route: string;\n status?: string;\n workspace_bindings?: Json[];\n marking_requirements?: string[];\n iam_perm_required?: string;\n config?: Json;\n }): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v23/pages\", { json: input });\n }\n update<T = Json>(slug: string, patch: Json): Promise<T> {\n return this.t.request<T>(\"PATCH\", `/platform/v23/pages/${slug}`, { json: patch });\n }\n /** Soft delete — page moves to status=archived. */\n delete<T = Json>(slug: string): Promise<T> {\n return this.t.request<T>(\"DELETE\", `/platform/v23/pages/${slug}`);\n }\n duplicate<T = Json>(slug: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v23/pages/${slug}/duplicate`);\n }\n putConfig<T = Json>(slug: string, config: Json): Promise<T> {\n return this.t.request<T>(\"PUT\", `/platform/v23/pages/${slug}/config`, { json: { config } });\n }\n publish<T = Json>(slug: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v23/pages/${slug}/publish`);\n }\n}\n\n/** `client.dossier.*` — async dossier generation (start → poll `get`). */\nexport class DossierResource {\n constructor(private readonly t: Transport) {}\n startGeneric<T = Json>(nodeId: string, purpose?: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/ontology/nodes/${nodeId}/dossier`, {\n json: purpose ? { purpose } : {},\n });\n }\n /** Requires `anchor_node_id` or `node_ids`. */\n startComposite<T = Json>(input: {\n anchor_node_id?: string;\n node_ids?: string[];\n purpose?: string;\n correlate?: boolean;\n scene?: boolean;\n max_depth?: number;\n budget_nodes?: number;\n }): Promise<T> {\n if (!input.anchor_node_id && !input.node_ids?.length) {\n throw new Error(\"startComposite requires anchor_node_id or node_ids\");\n }\n return this.t.request<T>(\"POST\", \"/ontology/dossier/composite\", { json: input });\n }\n /** Poll until `status === \"done\"`; `result` is then populated. */\n get<T = Json>(taskId: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/ontology/dossier/${taskId}`);\n }\n}\n\n/** `client.timeseries.*` — chart definitions + render (v23). */\nexport class TimeSeriesResource {\n constructor(private readonly t: Transport) {}\n list<T = Json>(): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/platform/v23/timeseries\");\n }\n create<T = Json>(input: {\n slug: string;\n display_name: string;\n node_type: string;\n /** e.g. `{ bucket: \"day\" | \"hour\" }` */\n config?: Json;\n markings?: string[];\n }): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v23/timeseries\", { json: input });\n }\n delete<T = Json>(chartId: string): Promise<T> {\n return this.t.request<T>(\"DELETE\", `/platform/v23/timeseries/${chartId}`);\n }\n render<T = Json>(chartId: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v23/timeseries/${chartId}/render`);\n }\n}\n","import type { Transport } from \"../transport\";\nimport type { Json } from \"../types\";\n\nclass AlertFeedsResource {\n constructor(private readonly t: Transport) {}\n list<T = Json>(): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/alerts/feeds\");\n }\n create<T = Json>(name: string, filters: Json, cadenceSeconds = 300): Promise<T> {\n return this.t.request<T>(\"POST\", \"/alerts/feeds\", {\n json: { name, filters, cadence_seconds: cadenceSeconds },\n });\n }\n delete(feedId: string): Promise<void> {\n return this.t.request(\"DELETE\", `/alerts/feeds/${feedId}`);\n }\n alerts<T = Json>(): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/alerts/feeds/alerts\");\n }\n acknowledge(alertId: string): Promise<void> {\n return this.t.request(\"POST\", `/alerts/feeds/${alertId}/acknowledge`);\n }\n}\n\nclass AlertWatchesResource {\n constructor(private readonly t: Transport) {}\n list<T = Json>(): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/alerts/watches\");\n }\n create<T = Json>(objectId: string): Promise<T> {\n return this.t.request<T>(\"POST\", \"/alerts/watches\", { json: { object_id: objectId } });\n }\n delete(watchId: string): Promise<void> {\n return this.t.request(\"DELETE\", `/alerts/watches/${watchId}`);\n }\n alerts<T = Json>(): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/alerts/watches/alerts\");\n }\n acknowledge(alertId: string): Promise<void> {\n return this.t.request(\"POST\", `/alerts/watches/${alertId}/acknowledge`);\n }\n}\n\nclass AlertGeofencesResource {\n constructor(private readonly t: Transport) {}\n list<T = Json>(): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/alerts/geofences\");\n }\n /** `coordinates` is shape-dependent: polygon `[[lon,lat],…]`, circle\n * `{center, radius_meters}`, corridor/route `{waypoints, width_meters}`. */\n create<T = Json>(input: {\n name: string;\n shape: string;\n coordinates: unknown;\n severity?: string;\n baseline_silent?: boolean;\n }): Promise<T> {\n return this.t.request<T>(\"POST\", \"/alerts/geofences\", { json: input });\n }\n update<T = Json>(geofenceId: string, patch: Json): Promise<T> {\n return this.t.request<T>(\"PATCH\", `/alerts/geofences/${geofenceId}`, { json: patch });\n }\n delete(geofenceId: string): Promise<void> {\n return this.t.request(\"DELETE\", `/alerts/geofences/${geofenceId}`);\n }\n alerts<T = Json>(): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/alerts/geofences/alerts\");\n }\n acknowledge(alertId: string): Promise<void> {\n return this.t.request(\"POST\", `/alerts/geofences/${alertId}/acknowledge`);\n }\n}\n\nclass AlertSharesResource {\n constructor(private readonly t: Transport) {}\n list<T = Json>(): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/alerts/shares\");\n }\n acknowledge(alertId: string): Promise<void> {\n return this.t.request(\"POST\", `/alerts/shares/${alertId}/ack`);\n }\n}\n\nclass AlertRoutesResource {\n constructor(private readonly t: Transport) {}\n list<T = Json>(): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/alerts/routes\");\n }\n create<T = Json>(input: {\n name: string;\n channel: string;\n match?: Json;\n channel_config_ref?: string;\n escalation?: Json;\n active?: boolean;\n }): Promise<T> {\n return this.t.request<T>(\"POST\", \"/alerts/routes\", { json: input });\n }\n update<T = Json>(routeId: string, patch: Json): Promise<T> {\n return this.t.request<T>(\"PATCH\", `/alerts/routes/${routeId}`, { json: patch });\n }\n delete(routeId: string): Promise<void> {\n return this.t.request(\"DELETE\", `/alerts/routes/${routeId}`);\n }\n silence<T = Json>(routeId: string, minutes: number): Promise<T> {\n return this.t.request<T>(\"POST\", `/alerts/routes/${routeId}/silence`, { json: { minutes } });\n }\n unsilence(routeId: string): Promise<Json> {\n return this.silence(routeId, 0);\n }\n silenceState<T = Json>(routeId: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/alerts/routes/${routeId}/silence`);\n }\n async kinds(): Promise<string[]> {\n const payload = await this.t.request<Json>(\"GET\", \"/alerts/routes/kinds\");\n return (payload.kinds as string[]) ?? [];\n }\n}\n\nclass AlertInboxResource {\n constructor(private readonly t: Transport) {}\n list<T = Json>(\n opts: {\n kinds?: string[];\n severities?: string[];\n status?: string;\n limit?: number;\n offset?: number;\n } = {},\n ): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/alerts/inbox\", {\n params: {\n kinds: opts.kinds?.join(\",\"),\n severities: opts.severities?.join(\",\"),\n status: opts.status,\n limit: opts.limit,\n offset: opts.offset,\n },\n });\n }\n async countPending(): Promise<number> {\n const payload = await this.t.request<Json>(\"GET\", \"/alerts/count_pending\");\n return (payload.count as number) ?? 0;\n }\n acknowledge<T = Json>(alertId: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/alerts/${alertId}/acknowledge`);\n }\n}\n\n/** `client.alerts.*` — feeds, watches, geofences, shares, routes, inbox. */\nexport class AlertsResource {\n readonly feeds: AlertFeedsResource;\n readonly watches: AlertWatchesResource;\n readonly geofences: AlertGeofencesResource;\n readonly shares: AlertSharesResource;\n readonly routes: AlertRoutesResource;\n readonly inbox: AlertInboxResource;\n\n constructor(private readonly t: Transport) {\n this.feeds = new AlertFeedsResource(t);\n this.watches = new AlertWatchesResource(t);\n this.geofences = new AlertGeofencesResource(t);\n this.shares = new AlertSharesResource(t);\n this.routes = new AlertRoutesResource(t);\n this.inbox = new AlertInboxResource(t);\n }\n\n escalate(alertId: string): Promise<void> {\n return this.t.request(\"POST\", `/alerts/escalate/${alertId}`);\n }\n channels<T = Json>(): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/alerts/channels\");\n }\n}\n\n/** `client.alarms.*` — threshold alarm rules on node properties (v26). */\nexport class AlarmsResource {\n constructor(private readonly t: Transport) {}\n list<T = Json>(): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/platform/v26/alarms\");\n }\n /** `node_id` XOR `node_type`; operator ∈ gt|gte|lt|lte|eq|ne. */\n create<T = Json>(input: {\n name: string;\n property_name: string;\n operator: string;\n threshold: number;\n node_id?: string;\n node_type?: string;\n action_type_name?: string;\n action_payload?: Json;\n cooldown_seconds?: number;\n active?: boolean;\n }): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v26/alarms\", { json: input });\n }\n update<T = Json>(ruleId: string, patch: Json): Promise<T> {\n return this.t.request<T>(\"PUT\", `/platform/v26/alarms/${encodeURIComponent(ruleId)}`, {\n json: patch,\n });\n }\n delete(ruleId: string): Promise<void> {\n return this.t.request(\"DELETE\", `/platform/v26/alarms/${encodeURIComponent(ruleId)}`);\n }\n events<T = Json>(opts: { rule_id?: string; limit?: number } = {}): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/platform/v26/alarms/events\", { params: opts });\n }\n}\n\n/** `client.events.*` — detections pipeline status + dead-letter queue. */\nexport class EventsResource {\n constructor(private readonly t: Transport) {}\n pipelineStatus<T = Json>(): Promise<T> {\n return this.t.request<T>(\"GET\", \"/api/v1/events/pipeline/status\");\n }\n dlqList<T = Json>(limit = 50): Promise<T> {\n return this.t.request<T>(\"GET\", \"/api/v1/events/pipeline/dlq\", { params: { limit } });\n }\n /** Exactly one of `ids` / `all` is required. */\n dlqRetry<T = Json>(opts: { ids?: string[]; all?: boolean }): Promise<T> {\n assertIdsXorAll(opts);\n return this.t.request<T>(\"POST\", \"/api/v1/events/pipeline/dlq/retry\", { json: opts });\n }\n /** Exactly one of `ids` / `all` is required. */\n dlqPurge<T = Json>(opts: { ids?: string[]; all?: boolean }): Promise<T> {\n assertIdsXorAll(opts);\n return this.t.request<T>(\"POST\", \"/api/v1/events/pipeline/dlq/purge\", { json: opts });\n }\n}\n\nfunction assertIdsXorAll(opts: { ids?: string[]; all?: boolean }): void {\n const hasIds = !!opts.ids?.length;\n if (hasIds === !!opts.all) throw new Error(\"pass exactly one of ids or all\");\n}\n\n/** `client.connectors.*` — HTTP connector agents under governance. */\nexport class ConnectorsResource {\n constructor(private readonly t: Transport) {}\n list<T = Json>(): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/governance/agents\");\n }\n patch<T = Json>(agentId: string, patch: Json): Promise<T> {\n const body = Object.fromEntries(Object.entries(patch).filter(([, v]) => v !== undefined));\n if (Object.keys(body).length === 0) throw new Error(\"empty patch\");\n return this.t.request<T>(\"PATCH\", `/governance/agents/${agentId}`, { json: body });\n }\n /** status ∈ inactive|active|running|degraded|failed */\n setStatus(agentId: string, status: string): Promise<Json> {\n return this.patch(agentId, { status });\n }\n bindings<T = Json>(agentId: string): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", `/governance/agents/${agentId}/skills`);\n }\n /** Two calls: creates the worker agent, then binds the `connector.http` skill. */\n async register(input: {\n slug: string;\n display_name: string;\n base_url: string;\n node_type: string;\n id_field: string;\n path?: string;\n name_field?: string;\n records_path?: string;\n auth?: Json;\n pagination?: Json;\n cron_preset?: string;\n }): Promise<Json> {\n const agent = await this.t.request<Json>(\"POST\", \"/governance/agents\", {\n json: {\n slug: input.slug,\n display_name: input.display_name,\n kind: \"worker\",\n config: input.cron_preset ? { cron_preset: input.cron_preset } : {},\n },\n });\n await this.t.request(\"POST\", `/governance/agents/${agent.id}/skills`, {\n json: {\n skill_key: \"connector.http\",\n config: {\n base_url: input.base_url,\n path: input.path ?? \"\",\n node_type: input.node_type,\n id_field: input.id_field,\n name_field: input.name_field ?? \"\",\n records_path: input.records_path ?? \"\",\n auth: input.auth,\n pagination: input.pagination,\n },\n },\n });\n return agent;\n }\n test<T = Json>(agentId: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/governance/agents/${agentId}/skills/connector.http/test`);\n }\n run<T = Json>(agentId: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/governance/agents/${agentId}/run`, {\n json: { skill_key: \"connector.http\" },\n });\n }\n schedulerTick<T = Json>(): Promise<T> {\n return this.t.request<T>(\"POST\", \"/governance/agents/scheduler/tick\");\n }\n /** source ∈ native|clawhub */\n skillCatalog<T = Json>(source?: string): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/governance/agents/skills\", { params: { source } });\n }\n installOpenclaw<T = Json>(slug: string): Promise<T> {\n return this.t.request<T>(\"POST\", \"/governance/agents/skills/openclaw/install\", {\n json: { slug: slug.replace(/^openclaw:/, \"\") },\n });\n }\n refreshOpenclaw<T = Json>(): Promise<T> {\n return this.t.request<T>(\"POST\", \"/governance/agents/skills/openclaw/refresh\");\n }\n}\n\n/** `client.pipelines.*` — data pipelines (v22 CRUD + v23 preview/dry-run). */\nexport class PipelinesResource {\n constructor(private readonly t: Transport) {}\n list<T = Json>(): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/platform/v22/pipelines\");\n }\n transformPreview<T = Json>(sampleRows: Json[], steps: Json[]): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v23/pipeline/transform/preview\", {\n json: { sample_rows: sampleRows, steps },\n });\n }\n dryRun<T = Json>(boardId: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v23/pipeline/${boardId}/dry-run`);\n }\n syncPreview<T = Json>(\n format: string,\n opts: { sample?: string; source_url?: string; options?: Json; headers?: Json } = {},\n ): Promise<T> {\n const body: Json = { format };\n for (const [k, v] of Object.entries(opts)) if (v !== undefined) body[k] = v;\n return this.t.request<T>(\"POST\", \"/platform/v23/pipeline/sync/preview\", { json: body });\n }\n create<T = Json>(input: {\n slug: string;\n display_name: string;\n description?: string;\n /** `{ source, steps[], output?: { target_node_type, id_field } }` */\n spec?: Json;\n }): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v22/pipelines\", { json: input });\n }\n update<T = Json>(pipelineId: string, patch: Json): Promise<T> {\n return this.t.request<T>(\"PUT\", `/platform/v22/pipelines/${pipelineId}`, { json: patch });\n }\n setSchedule(pipelineId: string, preset: string): Promise<Json> {\n return this.update(pipelineId, { schedule_preset: preset || \"\" });\n }\n build<T = Json>(pipelineId: string, opts: { incremental?: boolean; branch?: string } = {}): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v22/pipelines/${pipelineId}/build`, {\n params: {\n incremental: String(opts.incremental ?? false),\n branch: opts.branch ?? \"main\",\n },\n });\n }\n runs<T = Json>(pipelineId: string, limit = 50): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", `/platform/v22/pipelines/${pipelineId}/runs`, {\n params: { limit },\n });\n }\n}\n\nclass ChatChannelsResource {\n constructor(private readonly t: Transport) {}\n list<T = Json>(): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/chat/channels\");\n }\n get<T = Json>(channelId: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/chat/channels/${channelId}`);\n }\n create<T = Json>(input: {\n name: string;\n visibility?: string;\n min_classification?: string;\n project_id?: string;\n description?: string;\n }): Promise<T> {\n const body = Object.fromEntries(Object.entries(input).filter(([, v]) => v !== undefined));\n return this.t.request<T>(\"POST\", \"/chat/channels\", { json: body });\n }\n patch<T = Json>(channelId: string, payload: Json): Promise<T> {\n return this.t.request<T>(\"PATCH\", `/chat/channels/${channelId}`, { json: payload });\n }\n delete(channelId: string): Promise<void> {\n return this.t.request(\"DELETE\", `/chat/channels/${channelId}`);\n }\n}\n\nclass ChatMessagesResource {\n constructor(private readonly t: Transport) {}\n list<T = Json>(channelId: string, opts: { limit?: number; before?: string } = {}): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", `/chat/channels/${channelId}/messages`, { params: opts });\n }\n send<T = Json>(\n channelId: string,\n body: string,\n opts: { classification?: string; embeds?: Json[] } = {},\n ): Promise<T> {\n return this.t.request<T>(\"POST\", `/chat/channels/${channelId}/messages`, {\n json: { body, classification: opts.classification ?? \"U\", embeds: opts.embeds },\n });\n }\n}\n\n/** `client.chat.*` — operator chat channels + messages. */\nexport class ChatResource {\n readonly channels: ChatChannelsResource;\n readonly messages: ChatMessagesResource;\n constructor(t: Transport) {\n this.channels = new ChatChannelsResource(t);\n this.messages = new ChatMessagesResource(t);\n }\n}\n\n/** `client.notepad.*` — markdown docs (v23). */\nexport class NotepadResource {\n constructor(private readonly t: Transport) {}\n list<T = Json>(): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/platform/v23/notepad\");\n }\n get<T = Json>(docId: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/platform/v23/notepad/${encodeURIComponent(docId)}`);\n }\n create<T = Json>(input: {\n slug: string;\n title: string;\n body_md?: string;\n markings?: string[];\n pinned?: boolean;\n project_id?: string;\n }): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v23/notepad\", { json: input });\n }\n /** Mirrors Python: all keys are sent (null = unchanged server-side). */\n update<T = Json>(\n docId: string,\n patch: { title?: string; body_md?: string; markings?: string[]; pinned?: boolean },\n ): Promise<T> {\n return this.t.request<T>(\"PUT\", `/platform/v23/notepad/${encodeURIComponent(docId)}`, {\n json: {\n title: patch.title ?? null,\n body_md: patch.body_md ?? null,\n markings: patch.markings ?? null,\n pinned: patch.pinned ?? null,\n },\n });\n }\n delete<T = Json>(docId: string): Promise<T> {\n return this.t.request<T>(\"DELETE\", `/platform/v23/notepad/${encodeURIComponent(docId)}`);\n }\n}\n","import type { Transport } from \"../transport\";\nimport type { Json } from \"../types\";\n\n/** `client.lineage.*` — workflow lineage graph + event log. */\nexport class LineageResource {\n constructor(private readonly t: Transport) {}\n graph<T = Json>(opts: { marking?: string; since?: string; kind?: string; limit_events?: number } = {}): Promise<T> {\n return this.t.request<T>(\"GET\", \"/platform/v23/lineage-graph\", { params: opts });\n }\n events<T = Json>(\n opts: { limit?: number; offset?: number; event_type?: string; status?: string } = {},\n ): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/lineage/events\", { params: opts });\n }\n}\n\n/** `client.accessAudit.*` — governance access-audit trail. */\nexport class AccessAuditResource {\n constructor(private readonly t: Transport) {}\n list<T = Json>(\n opts: {\n resource_type?: string;\n resource_id?: string;\n user_id?: string;\n since?: string;\n until?: string;\n limit?: number;\n } = {},\n ): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/governance/access-audit\", { params: opts });\n }\n}\n\nclass MarkingCategoriesResource {\n constructor(private readonly t: Transport) {}\n list<T = Json>(opts: { limit?: number; offset?: number } = {}): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/markings/categories\", { params: opts });\n }\n create<T = Json>(input: {\n slug: string;\n display_name: string;\n mode?: string;\n description?: string;\n }): Promise<T> {\n return this.t.request<T>(\"POST\", \"/markings/categories\", { json: input });\n }\n}\n\n/** `client.markings.*` — marking catalog + per-user eligibility. */\nexport class MarkingsResource {\n readonly categories: MarkingCategoriesResource;\n constructor(private readonly t: Transport) {\n this.categories = new MarkingCategoriesResource(t);\n }\n list<T = Json>(opts: { limit?: number; offset?: number; category_id?: string } = {}): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/markings\", { params: opts });\n }\n get<T = Json>(markingId: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/markings/${markingId}`);\n }\n create<T = Json>(input: {\n slug: string;\n display_name: string;\n description?: string;\n category_id?: string;\n }): Promise<T> {\n return this.t.request<T>(\"POST\", \"/markings\", { json: input });\n }\n update<T = Json>(\n markingId: string,\n patch: { display_name?: string; description?: string; category_id?: string; active?: boolean },\n ): Promise<T> {\n return this.t.request<T>(\"PATCH\", `/markings/${markingId}`, { json: patch });\n }\n listEligibility<T = Json>(markingId: string): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", `/markings/${markingId}/eligibility`);\n }\n grantEligibility<T = Json>(markingId: string, userId: string, canApply = false): Promise<T> {\n return this.t.request<T>(\"POST\", `/markings/${markingId}/eligibility`, {\n json: { user_id: userId, can_apply: canApply },\n });\n }\n revokeEligibility(markingId: string, userId: string): Promise<void> {\n return this.t.request(\"DELETE\", `/markings/${markingId}/eligibility/${userId}`);\n }\n}\n\n/** `client.resourceMarkings.*` — markings applied to arbitrary resources. */\nexport class ResourceMarkingsResource {\n constructor(private readonly t: Transport) {}\n list<T = Json>(resourceKind: string, resourceId: string): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", `/resources/${resourceKind}/${resourceId}/markings`);\n }\n apply<T = Json>(resourceKind: string, resourceId: string, markingId: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/resources/${resourceKind}/${resourceId}/markings`, {\n json: { marking_id: markingId },\n });\n }\n remove(resourceKind: string, resourceId: string, markingId: string): Promise<void> {\n return this.t.request(\n \"DELETE\",\n `/resources/${resourceKind}/${resourceId}/markings/${markingId}`,\n );\n }\n}\n\n/** `client.propertyMarkings.*` — markings on individual node properties. */\nexport class PropertyMarkingsResource {\n constructor(private readonly t: Transport) {}\n listForNode<T = Json>(nodeId: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/ontology/nodes/${nodeId}/property-markings`);\n }\n listOne<T = Json>(nodeId: string, propertyKey: string): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", `/ontology/nodes/${nodeId}/properties/${propertyKey}/markings`);\n }\n apply<T = Json>(nodeId: string, propertyKey: string, markingId: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/ontology/nodes/${nodeId}/properties/${propertyKey}/markings`, {\n json: { marking_id: markingId },\n });\n }\n remove(nodeId: string, propertyKey: string, markingId: string): Promise<void> {\n return this.t.request(\n \"DELETE\",\n `/ontology/nodes/${nodeId}/properties/${propertyKey}/markings/${markingId}`,\n );\n }\n}\n\n/** `client.rowPolicies.*` — row-level security policy templates (v26). */\nexport class RowPoliciesResource {\n constructor(private readonly t: Transport) {}\n list<T = Json>(): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/platform/v26/row-policies\");\n }\n create<T = Json>(input: {\n object_type: string;\n role: string;\n predicate_template: string;\n description?: string;\n active?: boolean;\n }): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v26/row-policies\", { json: input });\n }\n delete(policyId: string): Promise<void> {\n return this.t.request(\"DELETE\", `/platform/v26/row-policies/${encodeURIComponent(policyId)}`);\n }\n}\n\nexport interface ErasureSelector {\n node_ids?: string[];\n property?: string;\n value?: string;\n node_type?: string;\n}\n\n/** `client.erasure.*` — right-to-be-forgotten (preview first, then forget). */\nexport class ErasureResource {\n constructor(private readonly t: Transport) {}\n /** Dry-run: shows the match radius without mutating anything. */\n preview<T = Json>(selector: ErasureSelector): Promise<T> {\n return this.t.request<T>(\"POST\", \"/governance/erasure/preview\", { json: selector });\n }\n /** Requires `confirm: true`; pass `expected_count` to guard the radius (422 on mismatch). */\n forget<T = Json>(\n selector: ErasureSelector,\n opts: { mode?: string; reason?: string; confirm?: boolean; expected_count?: number } = {},\n ): Promise<T> {\n return this.t.request<T>(\"POST\", \"/governance/erasure/forget\", { json: { ...selector, ...opts } });\n }\n}\n\n/** `client.retention.*` — retention windows per target + manual prune. */\nexport class RetentionResource {\n constructor(private readonly t: Transport) {}\n list<T = Json>(): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/governance/retention\");\n }\n set<T = Json>(target: string, retentionDays: number, active = true): Promise<T> {\n return this.t.request<T>(\"PUT\", \"/governance/retention\", {\n json: { target, retention_days: retentionDays, active },\n });\n }\n delete(target: string): Promise<void> {\n return this.t.request(\"DELETE\", `/governance/retention/${encodeURIComponent(target)}`);\n }\n run<T = Json>(target: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/governance/retention/${encodeURIComponent(target)}/run`);\n }\n}\n\nexport interface GuestTokenIssue {\n allowed_action_ids: string[];\n label?: string;\n subject?: string;\n ttl_hours?: number;\n max_uses?: number;\n min_interval_seconds?: number;\n /** `{ fence, target, arrival_radius_m }` */\n geo?: Json;\n /** `{ channel, to, text? }` */\n share?: Json;\n link_base?: string;\n}\n\n/** `client.guestTokens.*` — public /m/{token} guest links. */\nexport class GuestTokensResource {\n constructor(private readonly t: Transport) {}\n list<T = Json>(): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/platform/v23/guest-tokens\");\n }\n /** Plaintext token appears once in the response — treat as a secret. */\n issue<T = Json>(input: GuestTokenIssue): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v23/guest-tokens\", { json: input });\n }\n revoke<T = Json>(tokenId: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v23/guest-tokens/${tokenId}/revoke`);\n }\n}\n","import type { Transport } from \"../transport\";\nimport type { Json } from \"../types\";\n\nclass WorkshopBriefingsResource {\n constructor(private readonly t: Transport) {}\n list<T = Json>(): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/workshop/apps\", { params: { kind: \"briefing\" } });\n }\n get<T = Json>(briefingId: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/workshop/apps/${briefingId}`);\n }\n create<T = Json>(name: string): Promise<T> {\n return this.t.request<T>(\"POST\", \"/workshop/apps\", { json: { name, kind: \"briefing\" } });\n }\n patch<T = Json>(briefingId: string, payload: Json): Promise<T> {\n return this.t.request<T>(\"PATCH\", `/workshop/apps/${briefingId}`, { json: payload });\n }\n broadcast<T = Json>(briefingId: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/workshop/briefings/${briefingId}/broadcast`);\n }\n}\n\nclass WorkshopDossiersResource {\n constructor(private readonly t: Transport) {}\n list<T = Json>(): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/workshop/dossiers\");\n }\n get<T = Json>(dossierId: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/workshop/dossiers/${dossierId}`);\n }\n create<T = Json>(title: string): Promise<T> {\n return this.t.request<T>(\"POST\", \"/workshop/dossiers\", { json: { title } });\n }\n patch<T = Json>(dossierId: string, body: Json): Promise<T> {\n return this.t.request<T>(\"PATCH\", `/workshop/dossiers/${dossierId}`, { json: body });\n }\n delete(dossierId: string): Promise<void> {\n return this.t.request(\"DELETE\", `/workshop/dossiers/${dossierId}`);\n }\n addEmbed<T = Json>(dossierId: string, kind: string, sourceRef: string, nodeId: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/workshop/dossiers/${dossierId}/embeds`, {\n json: { embed_kind: kind, source_ref: sourceRef, node_id: nodeId },\n });\n }\n embeds<T = Json>(dossierId: string): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", `/workshop/dossiers/${dossierId}/embeds`);\n }\n}\n\nclass WorkshopCovsResource {\n constructor(private readonly t: Transport) {}\n list<T = Json>(objectType?: string): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/workshop/covs\", { params: { object_type: objectType } });\n }\n get<T = Json>(covId: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/workshop/covs/${covId}`);\n }\n /** Full-object upsert. */\n save<T = Json>(cov: Json): Promise<T> {\n return this.t.request<T>(\"POST\", \"/workshop/covs\", { json: cov });\n }\n delete(covId: string): Promise<void> {\n return this.t.request(\"DELETE\", `/workshop/covs/${covId}`);\n }\n setTeamDefault(covId: string): Promise<void> {\n return this.t.request(\"POST\", `/workshop/covs/${covId}/set-team-default`);\n }\n}\n\n/** `client.workshop.*` — briefings, dossiers, custom object views, widget catalog. */\nexport class WorkshopResource {\n readonly briefings: WorkshopBriefingsResource;\n readonly dossiers: WorkshopDossiersResource;\n readonly covs: WorkshopCovsResource;\n\n constructor(private readonly t: Transport) {\n this.briefings = new WorkshopBriefingsResource(t);\n this.dossiers = new WorkshopDossiersResource(t);\n this.covs = new WorkshopCovsResource(t);\n }\n\n widgetCatalog<T = Json>(proposableOnly = false): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/workshop/widget-catalog\", {\n params: proposableOnly ? { proposable_only: \"true\" } : {},\n });\n }\n}\n\nclass ComputeProvidersResource {\n constructor(private readonly t: Transport) {}\n catalog<T = Json>(): Promise<T> {\n return this.t.request<T>(\"GET\", \"/compute/providers/catalog\");\n }\n list<T = Json>(): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/compute/providers\");\n }\n /** `api_key` is write-only — never returned by the API. */\n create<T = Json>(input: {\n display_name: string;\n vendor: string;\n api_key?: string;\n base_url?: string;\n country?: string;\n jurisdictions?: string[];\n capabilities?: string[];\n cert_metadata?: Json;\n pricing_hint?: Json;\n provider_kind?: string;\n enabled?: boolean;\n }): Promise<T> {\n return this.t.request<T>(\"POST\", \"/compute/providers\", { json: input });\n }\n update<T = Json>(providerId: string, patch: Json): Promise<T> {\n const body = Object.fromEntries(Object.entries(patch).filter(([, v]) => v !== undefined));\n return this.t.request<T>(\"PUT\", `/compute/providers/${providerId}`, { json: body });\n }\n delete<T = Json>(providerId: string): Promise<T> {\n return this.t.request<T>(\"DELETE\", `/compute/providers/${providerId}`);\n }\n test<T = Json>(providerId: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/compute/providers/${providerId}/test`);\n }\n}\n\nclass ComputeReleasesResource {\n constructor(private readonly t: Transport) {}\n list<T = Json>(name?: string): Promise<T> {\n return this.t.request<T>(\"GET\", \"/compute/releases\", { params: { name } });\n }\n publish<T = Json>(input: {\n name: string;\n image: string;\n eval_score?: number;\n metrics_sha256?: string;\n eval_notes?: string;\n notes?: string;\n spec?: Json;\n }): Promise<T> {\n return this.t.request<T>(\"POST\", \"/compute/releases\", { json: input });\n }\n /** 409 if `eval_score` is below the gate. */\n promote<T = Json>(name: string, version: string, minEvalScore = 0.8): Promise<T> {\n return this.t.request<T>(\"POST\", \"/compute/releases/promote\", {\n json: { name, version, min_eval_score: minEvalScore },\n });\n }\n deploy<T = Json>(providerId: string, name: string, channel = \"production\", extra: Json = {}): Promise<T> {\n return this.t.request<T>(\"POST\", `/compute/providers/${providerId}/releases/deploy`, {\n json: { name, channel, ...extra },\n });\n }\n}\n\n/** Scoped control-plane for one provider — `client.compute.control(providerId)`. */\nexport class ComputeControlResource {\n private readonly base: string;\n constructor(\n private readonly t: Transport,\n providerId: string,\n ) {\n this.base = `/compute/providers/${providerId}`;\n }\n listTemplates<T = Json>(): Promise<T> {\n return this.t.request<T>(\"GET\", `${this.base}/templates`);\n }\n saveTemplate<T = Json>(name: string, imageName: string, extra: Json = {}): Promise<T> {\n return this.t.request<T>(\"POST\", `${this.base}/templates`, {\n json: { name, image_name: imageName, ...extra },\n });\n }\n deleteTemplate<T = Json>(templateId: string): Promise<T> {\n return this.t.request<T>(\"DELETE\", `${this.base}/templates/${templateId}`);\n }\n listEndpoints<T = Json>(): Promise<T> {\n return this.t.request<T>(\"GET\", `${this.base}/endpoints`);\n }\n createEndpoint<T = Json>(templateId: string, name: string, extra: Json = {}): Promise<T> {\n return this.t.request<T>(\"POST\", `${this.base}/endpoints`, {\n json: { template_id: templateId, name, ...extra },\n });\n }\n updateEndpoint<T = Json>(endpointId: string, patch: Json): Promise<T> {\n return this.t.request<T>(\"PATCH\", `${this.base}/endpoints/${endpointId}`, {\n json: { patch },\n });\n }\n deleteEndpoint<T = Json>(endpointId: string): Promise<T> {\n return this.t.request<T>(\"DELETE\", `${this.base}/endpoints/${endpointId}`);\n }\n endpointHealth<T = Json>(endpointId: string): Promise<T> {\n return this.t.request<T>(\"GET\", `${this.base}/endpoints/${endpointId}/health`);\n }\n /** `sync: true` long-polls server-side up to `timeout_s` — pass a matching\n * `signal` (or raise the client `timeoutMs`) for long jobs. */\n submitJob<T = Json>(\n endpointId: string,\n input: Json,\n opts: { sync?: boolean; webhook?: string; timeout_s?: number } = {},\n ): Promise<T> {\n return this.t.request<T>(\"POST\", `${this.base}/endpoints/${endpointId}/jobs`, {\n json: { input, sync: opts.sync ?? false, webhook: opts.webhook, timeout_s: opts.timeout_s },\n });\n }\n jobStatus<T = Json>(endpointId: string, jobId: string): Promise<T> {\n return this.t.request<T>(\"GET\", `${this.base}/endpoints/${endpointId}/jobs/${jobId}`);\n }\n cancelJob<T = Json>(endpointId: string, jobId: string): Promise<T> {\n return this.t.request<T>(\"POST\", `${this.base}/endpoints/${endpointId}/jobs/${jobId}/cancel`);\n }\n listPods<T = Json>(): Promise<T> {\n return this.t.request<T>(\"GET\", `${this.base}/pods`);\n }\n createPod<T = Json>(name: string, imageName: string, extra: Json = {}): Promise<T> {\n return this.t.request<T>(\"POST\", `${this.base}/pods`, {\n json: { name, image_name: imageName, ...extra },\n });\n }\n stopPod<T = Json>(podId: string): Promise<T> {\n return this.t.request<T>(\"POST\", `${this.base}/pods/${podId}/stop`);\n }\n terminatePod<T = Json>(podId: string): Promise<T> {\n return this.t.request<T>(\"DELETE\", `${this.base}/pods/${podId}`);\n }\n}\n\n/** `client.compute.*` — vision compute, providers, releases, per-provider control plane. */\nexport class ComputeResource {\n readonly providers: ComputeProvidersResource;\n readonly releases: ComputeReleasesResource;\n\n constructor(private readonly t: Transport) {\n this.providers = new ComputeProvidersResource(t);\n this.releases = new ComputeReleasesResource(t);\n }\n\n selectModel<T = Json>(objective: string, opts: { intention?: string; jurisdiction?: string } = {}): Promise<T> {\n return this.t.request<T>(\"POST\", \"/compute/vision/select-model\", {\n json: { objective, ...opts },\n });\n }\n generateSpec<T = Json>(\n objective: string,\n opts: { base_image?: string; contract?: Json; pip?: string[]; env?: Json } = {},\n ): Promise<T> {\n return this.t.request<T>(\"POST\", \"/compute/spec/generate\", {\n json: { objective, base_image: opts.base_image ?? \"python:3.11-slim\", ...opts },\n });\n }\n visionCount<T = Json>(\n imageUrl: string,\n instruction: string,\n opts: {\n provider?: string;\n jurisdiction?: string;\n /** `{ nw: {lat,lng}, se: {lat,lng} }` */\n geo_bounds?: Json;\n /** detect | segment */\n capability?: string;\n /** geoshape | point */\n output_as?: string;\n } = {},\n ): Promise<T> {\n return this.t.request<T>(\"POST\", \"/compute/vision/count\", {\n json: { image_url: imageUrl, instruction, ...opts },\n });\n }\n /** Factory (no HTTP) — control plane scoped to one provider. */\n control(providerId: string): ComputeControlResource {\n return new ComputeControlResource(this.t, providerId);\n }\n}\n\n/** `client.inference.*` — audited LLM inference (server-side InferenceLog). */\nexport class InferenceResource {\n constructor(private readonly t: Transport) {}\n\n complete<T = Json>(\n prompt: string,\n opts: {\n provider?: string;\n model?: string;\n system_prompt?: string;\n temperature?: number;\n max_tokens?: number;\n } = {},\n ): Promise<T> {\n return this.t.request<T>(\"POST\", \"/inference/complete\", {\n json: {\n prompt,\n provider: opts.provider ?? \"groq\",\n model: opts.model ?? \"llama-3.3-70b-versatile\",\n system_prompt: opts.system_prompt,\n temperature: opts.temperature ?? 0.0,\n max_tokens: opts.max_tokens ?? 4096,\n },\n });\n }\n\n chat<T = Json>(\n messages: Json[],\n opts: {\n rag_sources?: string[];\n rag_limit?: number;\n provider?: string;\n model?: string;\n temperature?: number;\n max_tokens?: number;\n } = {},\n ): Promise<T> {\n const body: Json = {\n messages,\n provider: opts.provider ?? \"groq\",\n model: opts.model ?? \"llama-3.3-70b-versatile\",\n temperature: opts.temperature ?? 0.0,\n max_tokens: opts.max_tokens ?? 4096,\n };\n if (opts.rag_sources) {\n body.rag_sources = opts.rag_sources;\n body.rag_limit = opts.rag_limit ?? 5;\n }\n return this.t.request<T>(\"POST\", \"/inference/chat\", { json: body });\n }\n\n models<T = Json>(): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/inference/models\");\n }\n collections<T = Json>(): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/inference/collections\");\n }\n\n async chatWithRag(\n query: string,\n opts: {\n sources?: string[];\n limit?: number;\n provider?: string;\n model?: string;\n temperature?: number;\n max_tokens?: number;\n system?: string;\n } = {},\n ): Promise<Json> {\n const payload = await this.t.request<Json>(\"POST\", \"/mcp/tools/call\", {\n json: {\n name: \"chat_with_rag\",\n arguments: {\n query,\n sources: opts.sources ?? [\"all\"],\n limit: opts.limit ?? 6,\n provider: opts.provider ?? \"groq\",\n model: opts.model ?? \"llama-3.3-70b-versatile\",\n temperature: opts.temperature ?? 0.2,\n max_tokens: opts.max_tokens ?? 512,\n system: opts.system,\n },\n },\n });\n return (payload.result as Json) ?? payload;\n }\n\n auditTrail<T = Json>(opts: { limit?: number; provider?: string } = {}): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/inference/audit-trail\", {\n params: { limit: opts.limit ?? 50, provider: opts.provider },\n });\n }\n}\n\n/** `client.codegen.*` — LLM code generation (server AST-validates; invalid → 400). */\nexport class CodegenResource {\n constructor(private readonly t: Transport) {}\n /** kind ∈ transform|script */\n generate<T = Json>(objective: string, kind = \"transform\", context?: Json): Promise<T> {\n return this.t.request<T>(\"POST\", \"/codegen/generate\", { json: { objective, kind, context } });\n }\n}\n\n/** `client.correlation.*` — chain correlation (quick 1-hop sync + multi-hop async). */\nexport class CorrelationResource {\n constructor(private readonly t: Transport) {}\n quickLinks<T = Json>(value: string, kind?: string): Promise<T> {\n return this.t.request<T>(\"POST\", \"/correlation/quick-links\", { json: { value, kind } });\n }\n startChain<T = Json>(\n value: string,\n opts: { kind?: string; max_depth?: number; budget_nodes?: number; deep_osint_depth?: number } = {},\n ): Promise<T> {\n return this.t.request<T>(\"POST\", \"/correlation/chain\", { json: { value, ...opts } });\n }\n /** Poll until `status === \"done\"`. */\n getChain<T = Json>(taskId: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/correlation/chain/${taskId}`);\n }\n /** Opt-in: materializes the chain graph into the ontology. */\n saveChain<T = Json>(taskId: string, nodeIds?: string[]): Promise<T> {\n return this.t.request<T>(\"POST\", `/correlation/chain/${taskId}/save`, {\n json: nodeIds ? { node_ids: nodeIds } : {},\n });\n }\n}\n\n/** `client.situational.*` — spatio-temporal correlation over positioned nodes. */\nexport class SituationalResource {\n constructor(private readonly t: Transport) {}\n nearby<T = Json>(\n nodeId: string,\n opts: { radius_m?: number; window_s?: number; kinds?: string[]; limit?: number } = {},\n ): Promise<T> {\n return this.t.request<T>(\"GET\", \"/api/v1/situational/nearby\", {\n params: { node_id: nodeId, ...opts, kinds: opts.kinds?.join(\",\") },\n });\n }\n correlations<T = Json>(nodeId: string): Promise<T> {\n return this.t.request<T>(\"GET\", \"/api/v1/situational/correlations\", {\n params: { node_id: nodeId },\n });\n }\n correlate<T = Json>(\n anchorNodeId: string,\n opts: { radius_m?: number; window_s?: number; kinds?: string[]; limit?: number } = {},\n ): Promise<T> {\n return this.t.request<T>(\"POST\", \"/api/v1/situational/correlations\", {\n json: { anchor_node_id: anchorNodeId, ...opts },\n });\n }\n /** Reversible — removes the correlation edge. */\n cut(edgeId: string): Promise<void> {\n return this.t.request(\"DELETE\", `/api/v1/situational/correlations/${edgeId}`);\n }\n}\n\n/** Merge target selector: `{object_id}` | `{node_type, canonical}` | `{create: node_type}`. */\nexport type MergeTarget = Json;\n\n/** `client.merge.*` — evidence-preserving merge into canonical objects (perm `ontology.merge`). */\nexport class MergeResource {\n constructor(private readonly t: Transport) {}\n suggestTarget<T = Json>(nodeType: string, canonical: string): Promise<T> {\n return this.t.request<T>(\"POST\", \"/ontology/merge/suggest-target\", {\n json: { node_type: nodeType, canonical },\n });\n }\n /** Pass `result_payload` (raw) OR `properties` (ready). */\n preview<T = Json>(target: MergeTarget, opts: { result_payload?: Json; properties?: Json } = {}): Promise<T> {\n return this.t.request<T>(\"POST\", \"/ontology/merge/preview\", { json: { target, ...opts } });\n }\n /** `field_resolutions`: `{field: \"keep\"|\"replace\"|\"append\"}`;\n * `link`: `{target_object_id, relation_type, metadata?}`. */\n apply<T = Json>(\n target: MergeTarget,\n opts: {\n result_payload?: Json;\n properties?: Json;\n field_resolutions?: Json;\n link?: Json;\n } = {},\n ): Promise<T> {\n return this.t.request<T>(\"POST\", \"/ontology/merge/apply\", { json: { target, ...opts } });\n }\n}\n","import type { Transport } from \"../transport\";\nimport type { Json } from \"../types\";\n\nclass AtlasLayersResource {\n constructor(private readonly t: Transport) {}\n list<T = Json>(): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/atlas/layers\");\n }\n create<T = Json>(name: string, kind: string, extra: Json = {}): Promise<T> {\n const body: Json = { name, kind };\n for (const [k, v] of Object.entries(extra)) if (v !== undefined && v !== null) body[k] = v;\n return this.t.request<T>(\"POST\", \"/atlas/layers\", { json: body });\n }\n delete(layerId: string): Promise<void> {\n return this.t.request(\"DELETE\", `/atlas/layers/${layerId}`);\n }\n /** KML content travels inside the JSON body (not multipart) — same as Python. */\n importKml<T = Json>(layerId: string, kmlText: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/atlas/layers/${layerId}/import`, {\n json: { _kml_bytes_b64: kmlText },\n });\n }\n}\n\nclass AtlasEvaluationResource {\n constructor(private readonly t: Transport) {}\n status<T = Json>(): Promise<T> {\n return this.t.request<T>(\"GET\", \"/atlas/evaluation/status\");\n }\n runOnce<T = Json>(): Promise<T> {\n return this.t.request<T>(\"POST\", \"/atlas/evaluation/run-once\");\n }\n}\n\n/** `client.atlas.*` — atlas layers + rule evaluator. */\nexport class AtlasResource {\n readonly layers: AtlasLayersResource;\n readonly evaluation: AtlasEvaluationResource;\n constructor(t: Transport) {\n this.layers = new AtlasLayersResource(t);\n this.evaluation = new AtlasEvaluationResource(t);\n }\n}\n\n/** `client.briefing.*` — per-slug home briefing. */\nexport class BriefingResource {\n constructor(private readonly t: Transport) {}\n get<T = Json>(slug: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/campaign/home-briefing/${slug}`);\n }\n refresh<T = Json>(slug: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/campaign/home-briefing/${slug}/refresh`);\n }\n crisisPlan<T = Json>(slug: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/campaign/home-briefing/${slug}/crisis-plan`);\n }\n}\n\nclass CctvBookmarksResource {\n constructor(private readonly t: Transport) {}\n create<T = Json>(\n streamId: string,\n input: { t_ms: number; label: string; t_end_ms?: number; severity?: string },\n ): Promise<T> {\n return this.t.request<T>(\"POST\", `/api/v1/cctv/streams/${streamId}/bookmarks`, { json: input });\n }\n list<T = Json>(streamId: string, opts: { from_ms?: number; to_ms?: number } = {}): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", `/api/v1/cctv/streams/${streamId}/bookmarks`, { params: opts });\n }\n delete(bookmarkId: string): Promise<void> {\n return this.t.request(\"DELETE\", `/api/v1/cctv/bookmarks/${bookmarkId}`);\n }\n}\n\nclass CctvGcpsResource {\n constructor(private readonly t: Transport) {}\n put<T = Json>(streamId: string, gcps: Json[]): Promise<T> {\n return this.t.request<T>(\"PUT\", `/api/v1/cctv/streams/${streamId}/gcps`, { json: { gcps } });\n }\n get<T = Json>(streamId: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/api/v1/cctv/streams/${streamId}/gcps`);\n }\n delete(streamId: string): Promise<void> {\n return this.t.request(\"DELETE\", `/api/v1/cctv/streams/${streamId}/gcps`);\n }\n}\n\nclass CctvHotlistResource {\n constructor(private readonly t: Transport) {}\n list<T = Json>(activeOnly?: boolean): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/api/v1/cctv/hotlist\", { params: { active_only: activeOnly } });\n }\n add<T = Json>(plate: string, opts: { reason?: string; severity?: string } = {}): Promise<T> {\n return this.t.request<T>(\"POST\", \"/api/v1/cctv/hotlist\", {\n json: { plate, reason: opts.reason, severity: opts.severity ?? \"medium\" },\n });\n }\n remove(watchedId: string): Promise<void> {\n return this.t.request(\"DELETE\", `/api/v1/cctv/hotlist/${watchedId}`);\n }\n}\n\n/** `client.cctv.*` — CCTV streams, detections, recordings, exports, LPR hotlist. */\nexport class CctvResource {\n readonly bookmarks: CctvBookmarksResource;\n readonly gcps: CctvGcpsResource;\n readonly hotlist: CctvHotlistResource;\n\n constructor(private readonly t: Transport) {\n this.bookmarks = new CctvBookmarksResource(t);\n this.gcps = new CctvGcpsResource(t);\n this.hotlist = new CctvHotlistResource(t);\n }\n\n streamsPage<T = Json>(\n opts: {\n offset?: number;\n limit?: number;\n q?: string;\n status?: string;\n city?: string;\n detection_enabled?: boolean;\n } = {},\n ): Promise<T> {\n return this.t.request<T>(\"GET\", \"/api/v1/cctv/streams/page\", { params: opts });\n }\n detections<T = Json>(\n streamId: string,\n opts: { limit?: number; from_ms?: number; to_ms?: number } = {},\n ): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", `/api/v1/cctv/streams/${streamId}/detections`, { params: opts });\n }\n detectorClasses<T = Json>(): Promise<T> {\n return this.t.request<T>(\"GET\", \"/api/v1/cctv/detector/classes\");\n }\n presets<T = Json>(): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/api/v1/cctv/presets\");\n }\n bridgeBackfill<T = Json>(): Promise<T> {\n return this.t.request<T>(\"POST\", \"/api/v1/cctv/bridge/backfill\");\n }\n /** 202 — returns a provider job to poll. */\n detectNow<T = Json>(\n streamId: string,\n opts: { frames?: number; frame_stride?: number; push?: boolean } = {},\n ): Promise<T> {\n return this.t.request<T>(\"POST\", `/api/v1/cctv/streams/${streamId}/detect-now`, { json: opts });\n }\n /** 202 — export job; poll with `exportStatus`. */\n exportClip<T = Json>(\n streamId: string,\n opts: { duration_s?: number; from_ms?: number; to_ms?: number } = {},\n ): Promise<T> {\n return this.t.request<T>(\"POST\", `/api/v1/cctv/streams/${streamId}/export`, { json: opts });\n }\n exportStatus<T = Json>(jobId: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/api/v1/cctv/exports/${jobId}`);\n }\n recordings<T = Json>(streamId: string, opts: { from_ms?: number; to_ms?: number } = {}): Promise<T> {\n return this.t.request<T>(\"GET\", `/api/v1/cctv/streams/${streamId}/recordings`, { params: opts });\n }\n recordingStatus<T = Json>(streamId: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/api/v1/cctv/streams/${streamId}/recording`);\n }\n /** action ∈ start|stop */\n recordingControl<T = Json>(streamId: string, action: \"start\" | \"stop\", cadence?: number): Promise<T> {\n return this.t.request<T>(\"POST\", `/api/v1/cctv/streams/${streamId}/recording`, {\n json: { action, cadence },\n });\n }\n /** Returns the raw HLS VOD playlist text (m3u8), not JSON. */\n recordingsPlaylist(\n streamId: string,\n opts: { from_ms?: number; to_ms?: number } = {},\n ): Promise<string> {\n return this.t.request(\"GET\", `/api/v1/cctv/streams/${streamId}/recordings/playlist.m3u8`, {\n params: opts,\n });\n }\n}\n\n/** `client.edge.*` — edge node pairing + fleet version pinning. */\nexport class EdgeResource {\n constructor(private readonly t: Transport) {}\n createPairingCode<T = Json>(opts: { label?: string; ttl_seconds?: number } = {}): Promise<T> {\n return this.t.request<T>(\"POST\", \"/api/v1/edge/pairing-codes\", { json: opts });\n }\n listNodes<T = Json>(): Promise<T> {\n return this.t.request<T>(\"GET\", \"/api/v1/edge/nodes\");\n }\n listDiscovered<T = Json>(): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/api/v1/edge/discovered\");\n }\n revoke<T = Json>(edgeId: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/api/v1/edge/${edgeId}/revoke`);\n }\n setExpectedVersion<T = Json>(version: string): Promise<T> {\n return this.t.request<T>(\"PUT\", \"/api/v1/edge/expected-version\", { json: { version } });\n }\n getExpectedVersion<T = Json>(): Promise<T> {\n return this.t.request<T>(\"GET\", \"/api/v1/edge/expected-version\");\n }\n}\n\nclass VideoStreamsResource {\n constructor(private readonly t: Transport) {}\n list<T = Json>(): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/video/streams\");\n }\n create<T = Json>(input: {\n name: string;\n source_url: string;\n source_kind: string;\n classification?: string;\n camera_pose?: Json;\n }): Promise<T> {\n return this.t.request<T>(\"POST\", \"/video/streams\", { json: input });\n }\n delete(streamId: string): Promise<void> {\n return this.t.request(\"DELETE\", `/video/streams/${streamId}`);\n }\n}\n\n/** `client.video.*` — video streams, detections, tags, soak heatmap, exports. */\nexport class VideoResource {\n readonly streams: VideoStreamsResource;\n\n constructor(private readonly t: Transport) {\n this.streams = new VideoStreamsResource(t);\n }\n\n listDetections<T = Json>(streamId: string, opts: { from?: string; to?: string } = {}): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/video/detections\", {\n params: { stream_id: streamId, ...opts },\n });\n }\n submitDetection<T = Json>(detection: Json): Promise<T> {\n return this.t.request<T>(\"POST\", \"/video/detections\", { json: detection });\n }\n listTags<T = Json>(streamId: string): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/video/tags\", { params: { stream_id: streamId } });\n }\n submitTag<T = Json>(tag: Json): Promise<T> {\n return this.t.request<T>(\"POST\", \"/video/tags\", { json: tag });\n }\n soakHeatmap<T = Json>(streamId: string, from: string, to: string, precision?: number): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/video/soak\", {\n params: { stream_id: streamId, from, to, precision },\n });\n }\n createExport<T = Json>(streamId: string, frameRange: Json, redactions?: Json[]): Promise<T> {\n return this.t.request<T>(\"POST\", \"/video/exports\", {\n json: { stream_id: streamId, frame_range: frameRange, redactions },\n });\n }\n getExport<T = Json>(exportId: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/video/exports/${exportId}`);\n }\n}\n\n/** `client.comunicados.*` — tenant-wide announcements (v23). */\nexport class ComunicadosResource {\n constructor(private readonly t: Transport) {}\n list<T = Json>(\n opts: { kind?: string; status_temporal?: string; include_deleted?: boolean } = {},\n ): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/platform/v23/comunicados\", { params: opts });\n }\n listActive<T = Json>(): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/platform/v23/comunicados/active\");\n }\n create<T = Json>(input: {\n kind: string;\n title: string;\n body?: string;\n icon?: string;\n closable?: boolean;\n duration_s?: number;\n audience_roles?: string[];\n audience_iam_perms?: string[];\n audience_groups?: string[];\n schedule_start?: string;\n schedule_end?: string;\n schedule_days_of_week?: number[];\n cta_label?: string;\n cta_href?: string;\n }): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v23/comunicados\", { json: input });\n }\n /** Sparse patch — only provided keys are sent. */\n patch<T = Json>(comunicadoId: string, patch: Json): Promise<T> {\n const body = Object.fromEntries(Object.entries(patch).filter(([, v]) => v !== undefined));\n return this.t.request<T>(\"PATCH\", `/platform/v23/comunicados/${comunicadoId}`, { json: body });\n }\n /** Soft delete. */\n delete(comunicadoId: string): Promise<void> {\n return this.t.request(\"DELETE\", `/platform/v23/comunicados/${comunicadoId}`);\n }\n /** Idempotent per-user dismissal. */\n dismissMe(comunicadoId: string): Promise<void> {\n return this.t.request(\"POST\", `/platform/v23/comunicados/${comunicadoId}/dismiss/me`, {\n json: {},\n });\n }\n}\n\nclass CampaignBriefingResource {\n constructor(private readonly t: Transport) {}\n refresh<T = Json>(\n opts: {\n candidato_nome?: string;\n candidato_slug?: string;\n perfil_payload?: Json;\n clipping_items?: Json[];\n default_modo_inicial?: string;\n } = {},\n ): Promise<T> {\n return this.t.request<T>(\"POST\", \"/campaign/home-briefing/refresh\", {\n json: { default_modo_inicial: \"B\", ...opts },\n });\n }\n get<T = Json>(candidatoSlug: string, includeHeadline?: boolean): Promise<T> {\n return this.t.request<T>(\"GET\", \"/campaign/home-briefing\", {\n params: {\n candidato_slug: candidatoSlug,\n include_headline: includeHeadline === undefined ? undefined : String(includeHeadline),\n },\n });\n }\n /** 409 when the briefing is in crisis mode. */\n regenerateHeadline<T = Json>(candidatoSlug: string): Promise<T> {\n return this.t.request<T>(\"POST\", \"/campaign/home-briefing/headline/regenerate\", {\n json: { candidato_slug: candidatoSlug },\n });\n }\n /** duration_hours ∈ 1..168 (default 24). */\n overrideModo<T = Json>(candidatoSlug: string, novoModo: string, durationHours = 24): Promise<T> {\n return this.t.request<T>(\"POST\", \"/campaign/home-briefing/modo/override\", {\n json: { candidato_slug: candidatoSlug, novo_modo: novoModo, duration_hours: durationHours },\n });\n }\n}\n\n/** `client.campaign.*` — campaign home-briefing engine. */\nexport class CampaignResource {\n readonly briefing: CampaignBriefingResource;\n constructor(t: Transport) {\n this.briefing = new CampaignBriefingResource(t);\n }\n}\n","import type { Transport } from \"../transport\";\nimport type { Json } from \"../types\";\n\n/** `client.forms.*` — governed form submissions (v23). */\nexport class FormsResource {\n constructor(private readonly t: Transport) {}\n submit<T = Json>(\n formKey: string,\n payload: Json,\n opts: {\n fields?: Json[];\n visibility_policy?: string;\n required_perm?: string;\n action_id?: string;\n target_node_type?: string;\n note?: string;\n } = {},\n ): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v23/forms/submit\", {\n json: {\n form_key: formKey,\n payload,\n visibility_policy: opts.visibility_policy ?? \"requires_auth\",\n ...opts,\n },\n });\n }\n listSubmissions<T = Json>(\n opts: { form_key?: string; limit?: number; offset?: number } = {},\n ): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/platform/v23/forms/submissions\", { params: opts });\n }\n}\n\nclass AppShellSection {\n constructor(\n private readonly t: Transport,\n private readonly path: string,\n ) {}\n get<T = Json>(): Promise<T> {\n return this.t.request<T>(\"GET\", this.path);\n }\n put<T = Json>(value: Json): Promise<T> {\n return this.t.request<T>(\"PUT\", this.path, { json: value });\n }\n}\n\n/** `client.appShell.*` — chrome configuration (banner/footer/user-menu/sidenav/homepage). */\nexport class AppShellResource {\n readonly banner: AppShellSection;\n readonly footer: AppShellSection;\n readonly userMenu: AppShellSection;\n readonly sidenav: AppShellSection;\n readonly homepage: AppShellSection;\n\n constructor(private readonly t: Transport) {\n this.banner = new AppShellSection(t, \"/platform/v23/app-shell/banner\");\n this.footer = new AppShellSection(t, \"/platform/v23/app-shell/footer\");\n this.userMenu = new AppShellSection(t, \"/platform/v23/app-shell/user-menu\");\n this.sidenav = new AppShellSection(t, \"/platform/v23/app-shell/sidenav\");\n this.homepage = new AppShellSection(t, \"/platform/v23/app-shell/homepage\");\n }\n\n getMe<T = Json>(): Promise<T> {\n return this.t.request<T>(\"GET\", \"/platform/v23/app-shell/me\");\n }\n putMe<T = Json>(config: Json): Promise<T> {\n return this.t.request<T>(\"PUT\", \"/platform/v23/app-shell/me\", { json: config });\n }\n getTenant<T = Json>(): Promise<T> {\n return this.t.request<T>(\"GET\", \"/platform/v23/app-shell/tenant\");\n }\n putTenant<T = Json>(config: Json): Promise<T> {\n return this.t.request<T>(\"PUT\", \"/platform/v23/app-shell/tenant\", { json: config });\n }\n}\n\nclass ProjectConstraintsResource {\n constructor(private readonly t: Transport) {}\n get<T = Json>(projectId: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/projects/${projectId}/constraints`);\n }\n put<T = Json>(\n projectId: string,\n opts: { mode?: string; markings?: string[]; classification_ceiling?: string } = {},\n ): Promise<T> {\n return this.t.request<T>(\"PUT\", `/projects/${projectId}/constraints`, {\n json: { mode: opts.mode ?? \"none\", ...opts },\n });\n }\n clear(projectId: string): Promise<void> {\n return this.t.request(\"DELETE\", `/projects/${projectId}/constraints`);\n }\n /** Report-only — deletes nothing. */\n revalidate<T = Json>(projectId: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/projects/${projectId}/constraints/revalidate`);\n }\n}\n\n/** `client.projects.*` — project placement + governance constraints. */\nexport class ProjectsResource {\n readonly constraints: ProjectConstraintsResource;\n constructor(private readonly t: Transport) {\n this.constraints = new ProjectConstraintsResource(t);\n }\n /** `spaceId: null` removes the project from its Space. */\n move<T = Json>(projectId: string, spaceId: string | null): Promise<T> {\n return this.t.request<T>(\"PATCH\", `/projects/${projectId}/move`, {\n json: { space_id: spaceId },\n });\n }\n}\n\n/** `client.organizations.*` — org listing + cross-org guests. */\nexport class OrganizationsResource {\n constructor(private readonly t: Transport) {}\n list<T = Json>(opts: { limit?: number; offset?: number } = {}): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/organizations\", { params: opts });\n }\n get<T = Json>(organizationId: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/organizations/${organizationId}`);\n }\n listGuests<T = Json>(organizationId: string, includeRevoked = false): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", `/organizations/${organizationId}/guests`, {\n params: { include_revoked: includeRevoked },\n });\n }\n inviteGuest<T = Json>(organizationId: string, userId: string, expiresAt?: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/organizations/${organizationId}/guests`, {\n json: { user_id: userId, expires_at: expiresAt },\n });\n }\n revokeGuest(organizationId: string, userId: string): Promise<void> {\n return this.t.request(\"DELETE\", `/organizations/${organizationId}/guests/${userId}`);\n }\n}\n\n/** `client.spaces.*` — spaces (project grouping) + org membership. */\nexport class SpacesResource {\n constructor(private readonly t: Transport) {}\n list<T = Json>(opts: { limit?: number; offset?: number } = {}): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/spaces\", { params: opts });\n }\n get<T = Json>(spaceId: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/spaces/${spaceId}`);\n }\n create<T = Json>(slug: string, displayName: string, description?: string): Promise<T> {\n return this.t.request<T>(\"POST\", \"/spaces\", {\n json: { slug, display_name: displayName, description },\n });\n }\n update<T = Json>(\n spaceId: string,\n patch: { display_name?: string; description?: string; active?: boolean },\n ): Promise<T> {\n return this.t.request<T>(\"PATCH\", `/spaces/${spaceId}`, { json: patch });\n }\n addOrganization<T = Json>(spaceId: string, tenantId: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/spaces/${spaceId}/organizations`, {\n json: { tenant_id: tenantId },\n });\n }\n removeOrganization(spaceId: string, tenantId: string): Promise<void> {\n return this.t.request(\"DELETE\", `/spaces/${spaceId}/organizations/${tenantId}`);\n }\n}\n\n/** Valid project roles (mirror of `aegis.taxonomy.VALID_ROLES`). */\nexport const VALID_PROJECT_ROLES = [\n \"owner\",\n \"editor\",\n \"reviewer\",\n \"viewer\",\n \"discoverer\",\n] as const;\n\n/** `client.solutions.*` — AIP solution designer (blueprints, diagrams, materialize, teardown, marketplace). */\nexport class SolutionsResource {\n constructor(private readonly t: Transport) {}\n\n design<T = Json>(problem: string, opts: { domain?: string; wizard?: Json } = {}): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v23/solutions/design\", {\n json: { problem, ...opts },\n });\n }\n /** Accept-flags travel nested under `accept`; blueprint/diagram_id/app_id/linked_sources stay top-level. */\n materialize<T = Json>(\n blueprint: Json,\n accept: {\n ontology_types?: boolean;\n logic_functions?: boolean;\n action_types?: boolean;\n workspace_layout?: boolean;\n project?: boolean;\n project_id?: string;\n agents?: boolean;\n flows?: boolean;\n } = {},\n opts: { diagram_id?: string; app_id?: string; linked_sources?: Json[] } = {},\n ): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v23/solutions/materialize\", {\n json: { blueprint, accept, ...opts },\n });\n }\n /** depth ∈ lean|full */\n designGraph<T = Json>(problem: string, opts: { wizard?: Json; depth?: string } = {}): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v23/solutions/design-graph\", {\n json: { problem, depth: opts.depth ?? \"lean\", wizard: opts.wizard },\n });\n }\n mergeGraph<T = Json>(currentGraph: Json, baseBlueprint: Json, incomingBlueprint: Json): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v23/solutions/merge-graph\", {\n json: {\n current_graph: currentGraph,\n base_blueprint: baseBlueprint,\n incoming_blueprint: incomingBlueprint,\n },\n });\n }\n listPatterns<T = Json>(): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/platform/v23/solutions/patterns\");\n }\n listDiagrams<T = Json>(opts: { limit?: number; offset?: number } = {}): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/platform/v23/solutions/diagrams\", { params: opts });\n }\n get<T = Json>(diagramId: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/platform/v23/solutions/diagrams/${diagramId}`);\n }\n create<T = Json>(input: {\n slug: string;\n title: string;\n nodes: Json[];\n edges: Json[];\n wizard?: Json;\n description?: string;\n project_id?: string;\n }): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v23/solutions/diagrams\", { json: input });\n }\n /** Save == publish. */\n save<T = Json>(\n diagramId: string,\n input: { nodes: Json[]; edges: Json[]; wizard?: Json; message?: string },\n ): Promise<T> {\n return this.t.request<T>(\"PATCH\", `/platform/v23/solutions/diagrams/${diagramId}`, {\n json: input,\n });\n }\n delete(diagramId: string): Promise<void> {\n return this.t.request(\"DELETE\", `/platform/v23/solutions/diagrams/${diagramId}`);\n }\n versions<T = Json>(diagramId: string): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", `/platform/v23/solutions/diagrams/${diagramId}/versions`);\n }\n walkthrough<T = Json>(diagramId: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v23/solutions/diagrams/${diagramId}/walkthrough`, {\n json: {},\n });\n }\n implementations<T = Json>(graph: Json, nodeId: string, opts: { problem?: string; wizard?: Json } = {}): Promise<T[]> {\n return this.t.request<T[]>(\"POST\", \"/platform/v23/solutions/implementations\", {\n json: { graph, node_id: nodeId, problem: opts.problem ?? \"\", wizard: opts.wizard },\n });\n }\n expandNode<T = Json>(graph: Json, nodeId: string, planId: string, wizard?: Json): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v23/solutions/expand-node\", {\n json: { graph, node_id: nodeId, plan_id: planId, wizard },\n });\n }\n ontologyModel<T = Json>(prompt: string): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v23/solutions/ontology-model\", { json: { prompt } });\n }\n fromLineage<T = Json>(events?: Json[]): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v23/solutions/from-lineage\", {\n json: events ? { events } : {},\n });\n }\n teardownPlan<T = Json>(appId: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/workshop/apps/${appId}/teardown-plan`);\n }\n teardown<T = Json>(appId: string): Promise<T> {\n return this.t.request<T>(\"DELETE\", `/workshop/apps/${appId}`, {\n params: { teardown_build: \"true\" },\n });\n }\n marketplaceListings<T = Json>(\n opts: { status?: string; q?: string; tag?: string; category?: string } = {},\n ): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/solutions/marketplace/listings\", {\n params: { status: opts.status ?? \"published\", q: opts.q, tag: opts.tag, category: opts.category },\n });\n }\n marketplaceDetail<T = Json>(listingId: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/solutions/marketplace/listings/${listingId}`);\n }\n marketplacePublish<T = Json>(\n diagramId: string,\n opts: { title?: string; description?: string; category?: string; tags?: string[] } = {},\n ): Promise<T> {\n return this.t.request<T>(\"POST\", \"/solutions/marketplace/listings\", {\n json: { diagram_id: diagramId, category: opts.category ?? \"\", ...opts },\n });\n }\n /** Re-materializes the listing in the caller's tenant. */\n marketplaceInstall<T = Json>(listingId: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/solutions/marketplace/listings/${listingId}/install`);\n }\n marketplacePatch<T = Json>(listingId: string, fields: Json): Promise<T> {\n return this.t.request<T>(\"PATCH\", `/solutions/marketplace/listings/${listingId}`, {\n json: fields,\n });\n }\n}\n","import type { Transport } from \"../transport\";\nimport type { Json } from \"../types\";\n\nclass WorkspaceVersionsResource {\n constructor(private readonly t: Transport) {}\n list<T = Json>(workspaceId: string): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", `/workspaces/${workspaceId}/versions`);\n }\n get<T = Json>(workspaceId: string, versionNumber: number): Promise<T> {\n return this.t.request<T>(\"GET\", `/workspaces/${workspaceId}/versions/${versionNumber}`);\n }\n republish<T = Json>(workspaceId: string, versionNumber: number, message?: string): Promise<T> {\n return this.t.request<T>(\n \"POST\",\n `/workspaces/${workspaceId}/versions/${versionNumber}/republish`,\n { json: message ? { message } : {} },\n );\n }\n}\n\n/** `client.workspaces.*` — Workshop workspaces: publish, navigation, promotions, kiosk. */\nexport class WorkspacesResource {\n readonly versions: WorkspaceVersionsResource;\n\n constructor(private readonly t: Transport) {\n this.versions = new WorkspaceVersionsResource(t);\n }\n\n list<T = Json>(opts: { limit?: number; offset?: number; include_inactive?: boolean } = {}): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/workspaces\", { params: opts });\n }\n get<T = Json>(workspaceId: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/workspaces/${workspaceId}`);\n }\n create<T = Json>(input: {\n slug: string;\n display_name: string;\n description?: string;\n project_id?: string;\n config?: Json;\n }): Promise<T> {\n return this.t.request<T>(\"POST\", \"/workspaces\", { json: input });\n }\n /** Save == immediate publish — bumps version + snapshot. */\n publish<T = Json>(workspaceId: string, config: Json, message?: string): Promise<T> {\n return this.t.request<T>(\"PATCH\", `/workspaces/${workspaceId}`, { json: { config, message } });\n }\n /** Soft delete (`active=false`). */\n delete(workspaceId: string): Promise<void> {\n return this.t.request(\"DELETE\", `/workspaces/${workspaceId}`);\n }\n\n getNavigation<T = Json>(workspaceId: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/workspaces/${workspaceId}/navigation`);\n }\n setNavigation<T = Json>(\n workspaceId: string,\n opts: { navigate_out_allowed?: boolean; allowed_applications?: string[]; message?: string } = {},\n ): Promise<T> {\n return this.t.request<T>(\"PUT\", `/workspaces/${workspaceId}/navigation`, {\n json: { navigate_out_allowed: opts.navigate_out_allowed ?? true, ...opts },\n });\n }\n\n listPromotions<T = Json>(workspaceId: string): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", `/workspaces/${workspaceId}/promotions`);\n }\n /** Idempotent. */\n promote<T = Json>(workspaceId: string, organizationId: string, ordering = 0): Promise<T> {\n return this.t.request<T>(\"POST\", `/workspaces/${workspaceId}/promotions`, {\n json: { organization_id: organizationId, ordering },\n });\n }\n unpromote(workspaceId: string, organizationId: string): Promise<void> {\n return this.t.request(\"DELETE\", `/workspaces/${workspaceId}/promotions/${organizationId}`);\n }\n listPromotedForOrganization<T = Json>(organizationId: string): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", `/organizations/${organizationId}/promoted-workspaces`);\n }\n\n getKiosk<T = Json>(workspaceId: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/workspaces/${workspaceId}/kiosk`);\n }\n setKiosk<T = Json>(\n workspaceId: string,\n opts: {\n hide_chrome?: boolean;\n allow_exit?: boolean;\n auto_fullscreen?: boolean;\n message?: string;\n } = {},\n ): Promise<T> {\n return this.t.request<T>(\"PUT\", `/workspaces/${workspaceId}/kiosk`, {\n json: {\n hide_chrome: opts.hide_chrome ?? true,\n allow_exit: opts.allow_exit ?? true,\n auto_fullscreen: opts.auto_fullscreen ?? true,\n message: opts.message,\n },\n });\n }\n startKioskSession<T = Json>(workspaceId: string, clientInfo?: Json): Promise<T> {\n return this.t.request<T>(\"POST\", `/workspaces/${workspaceId}/kiosk/sessions`, {\n json: clientInfo ? { client_info: clientInfo } : {},\n });\n }\n endKioskSession<T = Json>(workspaceId: string, sessionId: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/workspaces/${workspaceId}/kiosk/sessions/${sessionId}/end`);\n }\n listKioskSessions<T = Json>(\n workspaceId: string,\n opts: { active_only?: boolean; limit?: number; offset?: number } = {},\n ): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", `/workspaces/${workspaceId}/kiosk/sessions`, { params: opts });\n }\n}\n\n/** `client.workspaceUpdates.*` — workspace release-notes tours. */\nexport class WorkspaceUpdatesResource {\n constructor(private readonly t: Transport) {}\n list<T = Json>(workspaceId: string, includeArchived = false): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", `/workspaces/${workspaceId}/updates`, {\n params: { include_archived: includeArchived },\n });\n }\n /** Active updates not yet seen by the caller. */\n listUnseen<T = Json>(workspaceId: string): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", `/workspaces/${workspaceId}/updates/unseen`);\n }\n get<T = Json>(workspaceId: string, updateId: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/workspaces/${workspaceId}/updates/${updateId}`);\n }\n create<T = Json>(\n workspaceId: string,\n input: { title: string; pages: Json[]; summary?: string },\n ): Promise<T> {\n return this.t.request<T>(\"POST\", `/workspaces/${workspaceId}/updates`, { json: input });\n }\n patch<T = Json>(\n workspaceId: string,\n updateId: string,\n patch: { title?: string; summary?: string; pages?: Json[] },\n ): Promise<T> {\n return this.t.request<T>(\"PATCH\", `/workspaces/${workspaceId}/updates/${updateId}`, {\n json: patch,\n });\n }\n archive<T = Json>(workspaceId: string, updateId: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/workspaces/${workspaceId}/updates/${updateId}/archive`);\n }\n /** Hard delete — cascades pages + views. */\n delete(workspaceId: string, updateId: string): Promise<void> {\n return this.t.request(\"DELETE\", `/workspaces/${workspaceId}/updates/${updateId}`);\n }\n markSeen(workspaceId: string, updateId: string, dismissed = false): Promise<void> {\n return this.t.request(\"POST\", `/workspaces/${workspaceId}/updates/${updateId}/seen`, {\n json: { dismissed },\n });\n }\n}\n","/**\n * Versioned platform surfaces (`/platform/v22..v26`) — mirrors the Python\n * `platform_v22..platform_v26` modules, unified over the single client\n * transport (Python uses four different transports; TS uses one).\n *\n * Surfaces already mirrored on first-class resources are NOT duplicated\n * here (pipelines v22, notepad/media/timeseries/pages/guest-tokens/\n * lineage-graph/llm-budget v23, aip models v25, functions/code-repos/\n * row-policies/alarms v26).\n */\nimport type { Transport } from \"../transport\";\nimport type { Json } from \"../types\";\n\n// ---------------------------------------------------------------------------\n// v22\n// ---------------------------------------------------------------------------\n\nclass V22ActionLogResource {\n constructor(private readonly t: Transport) {}\n record<T = Json>(input: {\n subject_type: string;\n subject_id: string;\n action: string;\n summary?: string;\n before?: Json;\n after?: Json;\n markings?: string[];\n }): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v22/action-log\", { json: input });\n }\n list<T = Json>(opts: { subject_type?: string; subject_id?: string } = {}): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/platform/v22/action-log\", { params: opts });\n }\n}\n\nclass V22NotepadResource {\n constructor(private readonly t: Transport) {}\n create<T = Json>(\n title: string,\n opts: { body?: string; is_template?: boolean; markings?: string[] } = {},\n ): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v22/notepad\", { json: { title, ...opts } });\n }\n freeze<T = Json>(docId: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v22/notepad/${docId}/freeze`);\n }\n instantiate<T = Json>(templateId: string, title: string, variables?: Json): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v22/notepad/${templateId}/instantiate`, {\n json: { title, variables },\n });\n }\n}\n\nclass V22QuiverResource {\n constructor(private readonly t: Transport) {}\n create<T = Json>(input: {\n slug: string;\n display_name: string;\n cells?: Json[];\n input_vars?: Json;\n output_vars?: Json;\n }): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v22/quiver\", { json: input });\n }\n render<T = Json>(dashId: string, opts: { variables?: Json; range?: Json } = {}): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v22/quiver/${dashId}/render`, { json: opts });\n }\n}\n\n/** `client.platformV22.*` — action log, notepad templates, quiver dashboards, usage metering. */\nexport class PlatformV22Resource {\n readonly actionLog: V22ActionLogResource;\n readonly notepad: V22NotepadResource;\n readonly quiver: V22QuiverResource;\n\n constructor(private readonly t: Transport) {\n this.actionLog = new V22ActionLogResource(t);\n this.notepad = new V22NotepadResource(t);\n this.quiver = new V22QuiverResource(t);\n }\n\n /** Returns the transformed value (unwraps the response's `value` field). */\n async applyVariableTransform(kind: string, inputs: Json): Promise<unknown> {\n const payload = await this.t.request<Json>(\"POST\", \"/platform/v22/variable-transforms/apply\", {\n json: { kind, inputs },\n });\n return payload.value;\n }\n recordUsage<T = Json>(input: {\n object_type: string;\n op: string;\n app_type: string;\n user_count_delta?: number;\n event_count_delta?: number;\n }): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v22/ontology-usage/record\", { json: input });\n }\n queryUsage<T = Json>(\n opts: { object_type?: string; op?: string; app_type?: string; days?: number } = {},\n ): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/platform/v22/ontology-usage\", {\n params: { days: 30, ...opts },\n });\n }\n}\n\n// ---------------------------------------------------------------------------\n// v23\n// ---------------------------------------------------------------------------\n\nclass V23LogicResource {\n constructor(private readonly t: Transport) {}\n list<T = Json>(): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/platform/v23/aip-logic\");\n }\n get<T = Json>(fid: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/platform/v23/aip-logic/${fid}`);\n }\n create<T = Json>(input: Json): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v23/aip-logic\", { json: input });\n }\n update<T = Json>(fid: string, patch: Json): Promise<T> {\n return this.t.request<T>(\"PUT\", `/platform/v23/aip-logic/${fid}`, { json: patch });\n }\n delete(fid: string): Promise<void> {\n return this.t.request(\"DELETE\", `/platform/v23/aip-logic/${fid}`);\n }\n invoke<T = Json>(fid: string, inputs?: Json): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v23/aip-logic/${fid}/invoke`, {\n json: { inputs: inputs ?? {} },\n });\n }\n addTest<T = Json>(fid: string, input: Json): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v23/aip-logic/${fid}/tests`, { json: input });\n }\n runTest<T = Json>(fid: string, testId: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v23/aip-logic/${fid}/tests/${testId}/run`);\n }\n}\n\nclass V23ActionsResource {\n constructor(private readonly t: Transport) {}\n list<T = Json>(): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/platform/v23/action-types\");\n }\n get<T = Json>(aid: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/platform/v23/action-types/${aid}`);\n }\n create<T = Json>(input: Json): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v23/action-types\", { json: input });\n }\n update<T = Json>(aid: string, patch: Json): Promise<T> {\n return this.t.request<T>(\"PUT\", `/platform/v23/action-types/${aid}`, { json: patch });\n }\n delete(aid: string): Promise<void> {\n return this.t.request(\"DELETE\", `/platform/v23/action-types/${aid}`);\n }\n execute<T = Json>(aid: string, inputs?: Json, note?: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v23/action-types/${aid}/execute`, {\n json: { input: inputs ?? {}, note },\n });\n }\n plan<T = Json>(steps: Json[]): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v23/action-types/plan\", { json: { steps } });\n }\n executions<T = Json>(aid: string): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", `/platform/v23/action-types/${aid}/executions`);\n }\n}\n\nclass V23AssistResource {\n constructor(private readonly t: Transport) {}\n list<T = Json>(opts: { scope?: string; resource_id?: string } = {}): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/platform/v23/aip-assist\", { params: opts });\n }\n create<T = Json>(input: Json): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v23/aip-assist\", { json: input });\n }\n delete(cid: string): Promise<void> {\n return this.t.request(\"DELETE\", `/platform/v23/aip-assist/${cid}`);\n }\n suggest<T = Json>(input: Json): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v23/aip-assist/suggest\", { json: input });\n }\n}\n\nclass V23PipelineResource {\n constructor(private readonly t: Transport) {}\n list<T = Json>(): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/platform/v23/pipeline\");\n }\n create<T = Json>(input: Json): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v23/pipeline\", { json: input });\n }\n update<T = Json>(pid: string, patch: Json): Promise<T> {\n return this.t.request<T>(\"PUT\", `/platform/v23/pipeline/${pid}`, { json: patch });\n }\n delete(pid: string): Promise<void> {\n return this.t.request(\"DELETE\", `/platform/v23/pipeline/${pid}`);\n }\n run<T = Json>(pid: string, opts: Json = {}): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v23/pipeline/${pid}/run`, { json: opts });\n }\n runs<T = Json>(pid: string, limit = 50): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", `/platform/v23/pipeline/${pid}/runs`, { params: { limit } });\n }\n}\n\nclass V23StylesBrandResource {\n constructor(private readonly t: Transport) {}\n get<T = Json>(): Promise<T> {\n return this.t.request<T>(\"GET\", \"/platform/v23/styles/brand\");\n }\n update<T = Json>(patch: Json): Promise<T> {\n return this.t.request<T>(\"PUT\", \"/platform/v23/styles/brand\", { json: patch });\n }\n /** Unauthenticated-safe read. */\n getPublic<T = Json>(tenant?: string): Promise<T> {\n return this.t.request<T>(\"GET\", \"/platform/v23/styles/brand/public\", { params: { tenant } });\n }\n}\n\nclass V23StylesResource {\n readonly brand: V23StylesBrandResource;\n constructor(private readonly t: Transport) {\n this.brand = new V23StylesBrandResource(t);\n }\n get<T = Json>(): Promise<T> {\n return this.t.request<T>(\"GET\", \"/platform/v23/styles\");\n }\n update<T = Json>(tokens: Json, message?: string): Promise<T> {\n return this.t.request<T>(\"PUT\", \"/platform/v23/styles\", { json: { tokens, message } });\n }\n getRegionColors<T = Json>(): Promise<T> {\n return this.t.request<T>(\"GET\", \"/platform/v23/styles/region-colors\");\n }\n updateRegionColors<T = Json>(patch: Json): Promise<T> {\n return this.t.request<T>(\"PUT\", \"/platform/v23/styles/region-colors\", { json: patch });\n }\n /** Multipart upload (the only non-JSON write in the v2x surfaces). */\n uploadLogo<T = Json>(file: Blob, filename = \"logo.png\"): Promise<T> {\n const form = new FormData();\n form.append(\"file\", file, filename);\n return this.t.request<T>(\"POST\", \"/platform/v23/styles/upload/logo\", { form });\n }\n}\n\nfunction crudFactory(t: Transport, base: string) {\n return {\n list: (): Promise<Json[]> => t.request(\"GET\", base),\n create: (input: Json): Promise<Json> => t.request(\"POST\", base, { json: input }),\n delete: (id: string): Promise<void> => t.request(\"DELETE\", `${base}/${id}`),\n };\n}\n\n/** `client.platformV23.*` — logic, action-types, assist, pipeline, quiver,\n * connectors, automate, health, contour, vertex, repos, object-sets, carbon, styles. */\nexport class PlatformV23Resource {\n readonly logic: V23LogicResource;\n readonly actions: V23ActionsResource;\n readonly assist: V23AssistResource;\n readonly pipeline: V23PipelineResource;\n readonly styles: V23StylesResource;\n readonly quiver: {\n list(): Promise<Json[]>;\n create(input: Json): Promise<Json>;\n delete(id: string): Promise<void>;\n update(id: string, patch: Json): Promise<Json>;\n run(id: string): Promise<Json>;\n };\n readonly connectors: {\n list(): Promise<Json[]>;\n register(input: Json): Promise<Json>;\n delete(id: string): Promise<void>;\n heartbeat(id: string, status?: string, error?: string): Promise<Json>;\n };\n readonly automate: {\n list(): Promise<Json[]>;\n create(input: Json): Promise<Json>;\n delete(id: string): Promise<void>;\n fire(id: string): Promise<Json>;\n runs(id: string): Promise<Json[]>;\n };\n readonly health: {\n list(): Promise<Json[]>;\n create(input: Json): Promise<Json>;\n delete(id: string): Promise<void>;\n run(id: string): Promise<Json>;\n };\n readonly contour: {\n list(): Promise<Json[]>;\n create(input: Json): Promise<Json>;\n delete(id: string): Promise<void>;\n evaluate(id: string, limit?: number): Promise<Json>;\n };\n readonly vertex: {\n list(): Promise<Json[]>;\n create(input: Json): Promise<Json>;\n delete(id: string): Promise<void>;\n };\n readonly repos: {\n list(): Promise<Json[]>;\n create(input: Json): Promise<Json>;\n delete(id: string): Promise<void>;\n commit(id: string, input: Json): Promise<Json>;\n commits(id: string, branch?: string): Promise<Json[]>;\n show(id: string, commitId: string): Promise<Json>;\n };\n readonly objectSets: {\n list(): Promise<Json[]>;\n create(input: Json): Promise<Json>;\n delete(id: string): Promise<void>;\n materialize(id: string, limit?: number): Promise<Json>;\n };\n\n constructor(private readonly t: Transport) {\n this.logic = new V23LogicResource(t);\n this.actions = new V23ActionsResource(t);\n this.assist = new V23AssistResource(t);\n this.pipeline = new V23PipelineResource(t);\n this.styles = new V23StylesResource(t);\n\n const quiverBase = \"/platform/v23/quiver\";\n this.quiver = {\n ...crudFactory(t, quiverBase),\n update: (id, patch) => t.request(\"PUT\", `${quiverBase}/${id}`, { json: patch }),\n run: (id) => t.request(\"POST\", `${quiverBase}/${id}/run`),\n };\n const connectorsBase = \"/platform/v23/connectors\";\n this.connectors = {\n list: () => t.request(\"GET\", connectorsBase),\n register: (input) => t.request(\"POST\", connectorsBase, { json: input }),\n delete: (id) => t.request(\"DELETE\", `${connectorsBase}/${id}`),\n heartbeat: (id, status = \"connected\", error) =>\n t.request(\"POST\", `${connectorsBase}/${id}/heartbeat`, { json: { status, error } }),\n };\n const automateBase = \"/platform/v23/automate\";\n this.automate = {\n ...crudFactory(t, automateBase),\n fire: (id) => t.request(\"POST\", `${automateBase}/${id}/fire`),\n runs: (id) => t.request(\"GET\", `${automateBase}/${id}/runs`),\n };\n const healthBase = \"/platform/v23/health\";\n this.health = {\n ...crudFactory(t, healthBase),\n run: (id) => t.request(\"POST\", `${healthBase}/${id}/run`),\n };\n const contourBase = \"/platform/v23/contour\";\n this.contour = {\n ...crudFactory(t, contourBase),\n evaluate: (id, limit = 50) =>\n t.request(\"POST\", `${contourBase}/${id}/evaluate`, { json: { limit } }),\n };\n this.vertex = crudFactory(t, \"/platform/v23/vertex\");\n const reposBase = \"/platform/v23/repos\";\n this.repos = {\n ...crudFactory(t, reposBase),\n commit: (id, input) => t.request(\"POST\", `${reposBase}/${id}/commits`, { json: input }),\n commits: (id, branch) =>\n t.request(\"GET\", `${reposBase}/${id}/commits`, { params: { branch } }),\n show: (id, commitId) => t.request(\"GET\", `${reposBase}/${id}/commits/${commitId}`),\n };\n const objectSetsBase = \"/platform/v23/object-sets\";\n this.objectSets = {\n ...crudFactory(t, objectSetsBase),\n materialize: (id, limit = 200) =>\n t.request(\"POST\", `${objectSetsBase}/${id}/materialize`, { json: { limit } }),\n };\n }\n\n carbonValidate<T = Json>(config: Json): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v23/carbon/validate\", { json: config });\n }\n catalog<T = Json>(): Promise<T> {\n return this.t.request<T>(\"GET\", \"/platform/v23\");\n }\n}\n\n/** `client.marketplace.*` — product storefront + install wizard (v23). */\nexport class MarketplaceResource {\n constructor(private readonly t: Transport) {}\n storefront<T = Json>(\n opts: { category?: string; sort?: string; search?: string; tags?: string[] } = {},\n ): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/platform/v23/marketplace\", {\n params: { sort: opts.sort ?? \"popular\", category: opts.category, search: opts.search, tags: opts.tags },\n });\n }\n products<T = Json>(publishedOnly = false): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/platform/v23/marketplace/products\", {\n params: { published_only: publishedOnly },\n });\n }\n create<T = Json>(input: Json): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v23/marketplace/products\", { json: input });\n }\n publish<T = Json>(pid: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v23/marketplace/products/${pid}/publish`);\n }\n details<T = Json>(pid: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/platform/v23/marketplace/${pid}`);\n }\n ontologyImpact<T = Json>(pid: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/platform/v23/marketplace/${pid}/ontology-impact`);\n }\n installPrecheck<T = Json>(pid: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/platform/v23/marketplace/${pid}/install-precheck`);\n }\n /** 422 with `{ok:false, gaps}` in the error payload when modules are missing. */\n install<T = Json>(\n pid: string,\n opts: { confirm_text?: string; config?: Json; notes?: string } = {},\n ): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v23/marketplace/${pid}/install`, {\n json: { confirm_text: opts.confirm_text ?? \"instalar\", config: opts.config, notes: opts.notes },\n });\n }\n installed<T = Json>(): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/platform/v23/marketplace/installed\");\n }\n uninstall<T = Json>(installId: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v23/marketplace/installs/${installId}/uninstall`);\n }\n /** Admin, idempotent. */\n seed<T = Json>(): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v23/marketplace/seed\");\n }\n}\n\n// ---------------------------------------------------------------------------\n// v24\n// ---------------------------------------------------------------------------\n\n/** `client.platformV24.*` — flat surface (logic functions, assist sessions,\n * views, rules, checkpoints, expectations, change requests, scenarios,\n * aggregations, object-set traversal, automations, metrics). */\nexport class PlatformV24Resource {\n constructor(private readonly t: Transport) {}\n\n createLogicFunction<T = Json>(input: Json): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v24/logic/functions\", { json: input });\n }\n listLogicFunctions<T = Json>(): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/platform/v24/logic/functions\");\n }\n invokeLogicFunction<T = Json>(fnId: string, inputs: Json): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v24/logic/functions/${fnId}/invoke`, {\n json: { inputs },\n });\n }\n openAssistSession<T = Json>(surface: string, context?: Json): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v24/assist/sessions\", {\n json: { surface, context },\n });\n }\n assistTurn<T = Json>(sessionId: string, content: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v24/assist/sessions/${sessionId}/turn`, {\n json: { content },\n });\n }\n createView<T = Json>(input: Json): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v24/views\", { json: input });\n }\n materializeView<T = Json>(viewId: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v24/views/${viewId}/materialize`);\n }\n listTemplates<T = Json>(): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/platform/v24/marketplace/templates\");\n }\n installTemplate<T = Json>(templateId: string, config?: Json): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v24/marketplace/install\", {\n json: { template_id: templateId, config },\n });\n }\n createRule<T = Json>(input: Json): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v24/rules\", { json: input });\n }\n evaluateRules<T = Json>(trigger: string, subject: Json): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v24/rules/evaluate\", {\n json: { trigger, subject },\n });\n }\n recordCheckpoint<T = Json>(\n pipeline: string,\n step: string,\n opts: { status?: string; state?: Json } = {},\n ): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v24/checkpoints\", {\n json: { pipeline, step, status: opts.status ?? \"OK\", state: opts.state },\n });\n }\n resumePipeline<T = Json>(pipeline: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/platform/v24/checkpoints/${pipeline}/resume`);\n }\n createExpectation<T = Json>(input: Json): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v24/expectations\", { json: input });\n }\n runExpectation<T = Json>(expId: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v24/expectations/${expId}/run`);\n }\n submitChangeRequest<T = Json>(input: Json): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v24/change-requests\", { json: input });\n }\n reviewChangeRequest<T = Json>(crId: string, status: string, note?: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v24/change-requests/${crId}/review`, {\n json: { status, note },\n });\n }\n createScenario<T = Json>(input: Json): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v24/scenarios\", { json: input });\n }\n simulateScenario<T = Json>(scenarioId: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v24/scenarios/${scenarioId}/simulate`);\n }\n createNotebook<T = Json>(input: Json): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v24/quiver/notebooks\", { json: input });\n }\n createAgent<T = Json>(input: Json): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v24/agent-studio/agents\", { json: input });\n }\n createEvalDashboard<T = Json>(input: Json): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v24/eval-dashboards\", { json: input });\n }\n renderEvalDashboard<T = Json>(dashId: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/platform/v24/eval-dashboards/${dashId}/render`);\n }\n addVerticalTab<T = Json>(input: Json): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v24/vertical-tabs\", { json: input });\n }\n createAggregation<T = Json>(input: Json): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v24/aggregations\", { json: input });\n }\n runAggregation<T = Json>(aggId: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v24/aggregations/${aggId}/run`);\n }\n /** Multi-hop object-set traversal (gate `workshop.apps.read`). */\n searchAround<T = Json>(input: Json): Promise<T> {\n return this.t.request<T>(\"POST\", \"/workshop/object-set/search-around\", { json: input });\n }\n /** On-the-fly aggregation: count/sum/avg/min/max/distinct_count/cardinality. */\n aggregateObjectSet<T = Json>(input: Json): Promise<T> {\n return this.t.request<T>(\"POST\", \"/workshop/object-set/aggregate\", { json: input });\n }\n createOsdkToken<T = Json>(name: string, scopes?: string[]): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v24/osdk-tokens\", { json: { name, scopes } });\n }\n verifyOsdkToken<T = Json>(token: string): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v24/osdk-tokens/verify\", { json: { token } });\n }\n createAutomation<T = Json>(input: Json): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v24/automations\", { json: input });\n }\n runAutomation<T = Json>(autoId: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v24/automations/${autoId}/run`);\n }\n computeOntologyMetrics<T = Json>(): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v24/metrics/compute\");\n }\n forkThread<T = Json>(parentSessionId: string, branchName: string, forkAtMessage = 0): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v24/thread-branches\", {\n json: {\n parent_session_id: parentSessionId,\n branch_name: branchName,\n fork_at_message: forkAtMessage,\n },\n });\n }\n}\n\n// ---------------------------------------------------------------------------\n// v25\n// ---------------------------------------------------------------------------\n\n/** `client.platformV25.*` — machinery processes, branch protection, kiosk\n * tokens, analyst threads, dataset rollback/snapshots/limits, freshness,\n * code scan, evals generation. */\nexport class PlatformV25Resource {\n constructor(private readonly t: Transport) {}\n\n // machinery\n listProcesses<T = Json>(): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/platform/v25/machinery/processes\");\n }\n createProcess<T = Json>(input: {\n slug: string;\n display_name: string;\n graph: Json;\n description?: string;\n markings?: string[];\n project_id?: string;\n }): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v25/machinery/processes\", { json: input });\n }\n startProcessInstance<T = Json>(\n processId: string,\n opts: { subject_ref?: string; context?: Json; initial_state?: string } = {},\n ): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v25/machinery/processes/${processId}/instances`, {\n json: opts,\n });\n }\n transitionProcessInstance<T = Json>(instanceId: string, to: string, reason?: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v25/machinery/instances/${instanceId}/transition`, {\n json: { to, reason },\n });\n }\n\n // branch protection\n setBranchProtection<T = Json>(\n dataset: string,\n branch: string,\n opts: {\n require_approvals?: number;\n required_clearances?: string[];\n required_reviewers?: string[];\n block_direct_commit?: boolean;\n } = {},\n ): Promise<T> {\n return this.t.request<T>(\"PUT\", `/platform/v25/branch-protection/${dataset}/${branch}`, {\n json: {\n require_approvals: opts.require_approvals ?? 1,\n block_direct_commit: opts.block_direct_commit ?? true,\n required_clearances: opts.required_clearances,\n required_reviewers: opts.required_reviewers,\n },\n });\n }\n evaluateBranchProtection<T = Json>(\n dataset: string,\n branch: string,\n opts: { approvals?: number; committer?: string } = {},\n ): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v25/branch-protection/evaluate\", {\n json: { dataset, branch, ...opts },\n });\n }\n\n // kiosk\n mintKioskSession<T = Json>(\n appId: string,\n opts: { display_name?: string; allowed_markings?: string[]; ttl_hours?: number } = {},\n ): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v25/kiosk/sessions\", {\n json: {\n app_id: appId,\n display_name: opts.display_name ?? \"kiosk\",\n allowed_markings: opts.allowed_markings,\n ttl_hours: opts.ttl_hours ?? 24,\n },\n });\n }\n verifyKioskToken<T = Json>(token: string): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v25/kiosk/verify\", { json: { token } });\n }\n\n // analyst threads\n newAnalystThread<T = Json>(title = \"Analyst thread\"): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v25/aip/analyst/threads\", { json: { title } });\n }\n postAnalystMessage<T = Json>(\n threadId: string,\n input: { role: string; content: string; citations?: Json[]; depends_on?: string[]; kind?: string },\n ): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v25/aip/analyst/threads/${threadId}/messages`, {\n json: input,\n });\n }\n\n // dataset ops\n rollbackDataset<T = Json>(\n dataset: string,\n toAssetId: string,\n opts: { branch?: string; reason?: string } = {},\n ): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v25/datasets/${dataset}/rollback`, {\n json: { branch: opts.branch ?? \"main\", to_asset_id: toAssetId, reason: opts.reason ?? \"\" },\n });\n }\n queueSnapshot<T = Json>(dataset: string, branch = \"main\"): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v25/datasets/${dataset}/queue-snapshot`, {\n json: { branch },\n });\n }\n peekSnapshotQueue<T = Json>(dataset: string, branch = \"main\"): Promise<T> {\n return this.t.request<T>(\"GET\", `/platform/v25/datasets/${dataset}/queue-snapshot`, {\n params: { branch },\n });\n }\n setTransactionLimits<T = Json>(\n dataset: string,\n opts: { branch?: string; max_rows?: number; max_bytes?: number; max_open?: number } = {},\n ): Promise<T> {\n return this.t.request<T>(\"PUT\", `/platform/v25/datasets/${dataset}/transaction-limits`, {\n json: { branch: \"main\", max_rows: 0, max_bytes: 0, max_open: 0, ...opts },\n });\n }\n\n /** Repeated `dataset` query params. */\n checkFreshness<T = Json>(datasets: string[]): Promise<T> {\n return this.t.request<T>(\"GET\", \"/platform/v25/workshop/widgets/data-freshness\", {\n params: { dataset: datasets },\n });\n }\n\n // code scan\n raiseCodeScanFinding<T = Json>(input: {\n repo_ref: string;\n path: string;\n rule_id: string;\n severity: string;\n message: string;\n line?: number;\n commit_sha?: string;\n }): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v25/code-scan/findings\", { json: input });\n }\n codeScanSummary<T = Json>(repoRef: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/platform/v25/code-scan/summary/${repoRef}`);\n }\n\n // evals\n generateEvals<T = Json>(\n subjectFunction: string,\n opts: { description?: string; count?: number } = {},\n ): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v25/evals/generate\", {\n json: {\n subject_function: subjectFunction,\n description: opts.description ?? \"\",\n count: opts.count ?? 5,\n },\n });\n }\n analyzeEvals<T = Json>(evalRunId: string, failures: Json[]): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v25/evals/analyze\", {\n json: { eval_run_id: evalRunId, failures },\n });\n }\n}\n\n// ---------------------------------------------------------------------------\n// v26\n// ---------------------------------------------------------------------------\n\n/** `client.platformV26.*` — promotions, object/core views, capacity,\n * listeners, sensitive-data scanner, monitoring, health checks, media\n * versions, insight, peers, run history. */\nexport class PlatformV26Resource {\n constructor(private readonly t: Transport) {}\n\n listPromotions<T = Json>(): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/platform/v26/promotions\");\n }\n promoteObjectType<T = Json>(\n objectType: string,\n opts: { status?: string; justification?: string } = {},\n ): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v26/promotions\", {\n json: { object_type: objectType, status: opts.status ?? \"verified\", justification: opts.justification },\n });\n }\n listObjectViews<T = Json>(objectType?: string): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/platform/v26/object-views\", {\n params: { object_type: objectType },\n });\n }\n createObjectView<T = Json>(\n objectType: string,\n branch: string,\n opts: { parent_branch?: string; view_spec?: Json } = {},\n ): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v26/object-views\", {\n json: {\n object_type: objectType,\n branch,\n parent_branch: opts.parent_branch ?? \"main\",\n view_spec: opts.view_spec,\n },\n });\n }\n publishObjectView<T = Json>(branchId: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v26/object-views/${branchId}/publish`);\n }\n generateCoreView<T = Json>(objectType: string, topN = 8): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v26/core-views/generate/${objectType}`, {\n params: { top_n: topN },\n });\n }\n getCoreView<T = Json>(objectType: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/platform/v26/core-views/${objectType}`);\n }\n reserveCapacity<T = Json>(\n provider: string,\n model: string,\n opts: { reserved_tpm?: number; reserved_rpm?: number; reason?: string } = {},\n ): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v26/capacity/reservations\", {\n json: { provider, model, reserved_tpm: 0, reserved_rpm: 0, ...opts },\n });\n }\n consumeCapacity<T = Json>(\n provider: string,\n model: string,\n opts: { tokens?: number; requests?: number } = {},\n ): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v26/capacity/consume\", {\n json: { provider, model, tokens: opts.tokens ?? 0, requests: opts.requests ?? 1 },\n });\n }\n /** Webhook listener — the secret is returned once. */\n createListener<T = Json>(\n slug: string,\n opts: { integration?: string; target_ontology_type?: string; markings?: string[] } = {},\n ): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v26/listeners\", {\n json: { slug, integration: opts.integration ?? \"generic\", ...opts },\n });\n }\n listenerEvents<T = Json>(listenerId: string): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", `/platform/v26/listeners/${listenerId}/events`);\n }\n /** mode ∈ report_only|hash|redact */\n scanSensitive<T = Json>(\n payload: Json,\n opts: { mode?: string; scope?: string; scope_ref?: string } = {},\n ): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v26/scanner/scan\", {\n json: { payload, mode: opts.mode ?? \"report_only\", scope: opts.scope ?? \"inline\", scope_ref: opts.scope_ref },\n });\n }\n scanHistory<T = Json>(limit = 50): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/platform/v26/scanner/scans\", { params: { limit } });\n }\n createMonitoringView<T = Json>(\n slug: string,\n displayName: string,\n opts: { project_scope?: string; resource_kinds?: string[] } = {},\n ): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v26/monitoring\", {\n json: {\n slug,\n display_name: displayName,\n project_scope: opts.project_scope,\n resource_kinds: opts.resource_kinds ?? [\"object_type\", \"action\"],\n },\n });\n }\n monitoringRollup<T = Json>(slug: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/platform/v26/monitoring/${slug}/rollup`);\n }\n createHealthCheck<T = Json>(\n datasetName: string,\n name: string,\n checkType: string,\n spec?: Json,\n ): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v26/health/checks\", {\n json: { dataset_name: datasetName, name, check_type: checkType, spec },\n });\n }\n runHealthCheck<T = Json>(checkId: string, branch = \"main\"): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v26/health/checks/${checkId}/run`, {\n params: { branch },\n });\n }\n healthRuns<T = Json>(checkId: string, limit = 50): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", `/platform/v26/health/checks/${checkId}/runs`, {\n params: { limit },\n });\n }\n /** Hash-referenced version metadata — no binary body. */\n uploadMediaVersion<T = Json>(\n mediaSet: string,\n path: string,\n input: { content_hash: string; mime_type?: string; size_bytes?: number; metadata?: Json },\n ): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v26/media/upload\", {\n json: { media_set: mediaSet, path, size_bytes: 0, ...input },\n });\n }\n mediaHistory<T = Json>(mediaSet: string, path: string): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/platform/v26/media/items/history\", {\n params: { media_set: mediaSet, path },\n });\n }\n createInsight<T = Json>(\n slug: string,\n input: {\n display_name: string;\n base_object_type: string;\n path: Json[];\n markings?: string[];\n project_id?: string;\n },\n ): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v26/insight\", { json: { slug, ...input } });\n }\n executeInsight<T = Json>(analysisId: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v26/insight/${analysisId}/execute`);\n }\n createPeer<T = Json>(\n slug: string,\n displayName: string,\n remoteUrl: string,\n authToken?: string,\n ): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v26/peers\", {\n json: { slug, display_name: displayName, remote_url: remoteUrl, auth_token: authToken },\n });\n }\n syncPeer<T = Json>(\n peerId: string,\n input: { resource_kind: string; remote_path: string; local_ref?: string },\n ): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v26/peers/${peerId}/sync`, { json: input });\n }\n listPeerMirrors<T = Json>(peerId: string): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", `/platform/v26/peers/${peerId}/mirrors`);\n }\n runHistory<T = Json>(\n opts: {\n status?: string;\n since?: string;\n until?: string;\n user?: string;\n action?: string;\n min_duration_ms?: number;\n failed_only?: boolean;\n limit?: number;\n } = {},\n ): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/platform/v26/run-history\", {\n params: { limit: 200, ...opts },\n });\n }\n}\n","/**\n * `AegisClient` — the top-level handle. Mirrors `aegis.client.AegisClient`\n * from the Python SDK (`aegis-platform-sdk` on PyPI).\n *\n * Token resolution priority:\n * 1. `token` option (typically an `osdk_…` API key for programmatic\n * callers, or a JWT issued by `/auth/login`).\n * 2. After `client.auth.login(...)` succeeds, the issued JWT is cached\n * and used automatically for subsequent calls.\n *\n * Transport is the platform `fetch` (Node ≥ 18 or any browser) — the SDK\n * has zero runtime dependencies.\n */\nimport { buildUrl, handleResponse } from \"./transport\";\nimport type { RequestOptions, Transport } from \"./transport\";\nimport { parseSseStream } from \"./sse\";\nimport type { SseEvent } from \"./sse\";\nimport { AegisAPIError, AuthError } from \"./errors\";\nimport type { TokenPair } from \"./types\";\nimport { AuthResource } from \"./resources/auth\";\nimport { IamResource } from \"./resources/iam\";\nimport { OsdkResource } from \"./resources/osdk\";\nimport { OperatorResource } from \"./resources/operator\";\nimport { OntologyResource } from \"./resources/ontology\";\nimport { AipResource } from \"./resources/aip\";\nimport { CodeRepositoriesResource, FunctionsResource } from \"./resources/functions\";\nimport { DatasetsResource } from \"./resources/datasets\";\nimport {\n DocsResource,\n DossierResource,\n GeoResource,\n MapTemplatesResource,\n MediaResource,\n PagesResource,\n TimeSeriesResource,\n} from \"./resources/reading\";\nimport {\n AlarmsResource,\n AlertsResource,\n ChatResource,\n ConnectorsResource,\n EventsResource,\n NotepadResource,\n PipelinesResource,\n} from \"./resources/operational\";\nimport {\n AccessAuditResource,\n ErasureResource,\n GuestTokensResource,\n LineageResource,\n MarkingsResource,\n PropertyMarkingsResource,\n ResourceMarkingsResource,\n RetentionResource,\n RowPoliciesResource,\n} from \"./resources/governance\";\nimport {\n CodegenResource,\n ComputeResource,\n CorrelationResource,\n InferenceResource,\n MergeResource,\n SituationalResource,\n WorkshopResource,\n} from \"./resources/platform\";\nimport {\n AtlasResource,\n BriefingResource,\n CampaignResource,\n CctvResource,\n ComunicadosResource,\n EdgeResource,\n VideoResource,\n} from \"./resources/domain\";\nimport {\n AppShellResource,\n FormsResource,\n OrganizationsResource,\n ProjectsResource,\n SolutionsResource,\n SpacesResource,\n} from \"./resources/collab\";\nimport type { GroupsResource } from \"./resources/iam\";\nimport { WorkspacesResource, WorkspaceUpdatesResource } from \"./resources/workspaces\";\nimport {\n MarketplaceResource,\n PlatformV22Resource,\n PlatformV23Resource,\n PlatformV24Resource,\n PlatformV25Resource,\n PlatformV26Resource,\n} from \"./resources/platformVersions\";\n\nexport interface AegisClientOptions {\n /** Root URL of the AEGIS deployment, e.g. `https://aegis.example.com`.\n * Falls back to `process.env.AEGIS_API_URL`, then `http://localhost:8002`. */\n baseUrl?: string;\n /** Bearer token — a JWT (`eyJ…`) or an OSDK key (`osdk_…`).\n * Falls back to `process.env.AEGIS_TOKEN`. Omit for `auth.login(...)` flows. */\n token?: string;\n /** Per-request timeout in milliseconds. Defaults to 15000. */\n timeoutMs?: number;\n /** Custom fetch implementation (tests, proxies, polyfills). */\n fetch?: typeof globalThis.fetch;\n /** Extra fetch init merged into every request — e.g. cookie-proxy setups\n * use `{ credentials: \"include\", cache: \"no-store\" }` with a relative\n * `baseUrl` like `/api` (the browser cookie carries the auth). */\n fetchInit?: Omit<RequestInit, \"method\" | \"body\" | \"signal\">;\n /** Refresh token to seed automatic JWT refresh (normally captured from\n * `auth.login`). On a 401 the client rotates it via `POST /auth/refresh`\n * and retries the request once. */\n refreshToken?: string;\n /** Retry/backoff for transient failures (network errors, timeouts, 429/\n * 502/503/504). GET/HEAD only unless `retryPost`. Exponential backoff\n * with full jitter. Pass `{ retries: 0 }` to disable. */\n retry?: RetryOptions;\n}\n\nexport interface RetryOptions {\n /** Extra attempts after the first (default 2). */\n retries?: number;\n /** First backoff delay in ms (default 250; doubles per attempt). */\n baseDelayMs?: number;\n /** Backoff ceiling in ms (default 4000). */\n maxDelayMs?: number;\n /** Also retry non-idempotent verbs (default false). */\n retryPost?: boolean;\n}\n\nconst RETRIABLE_STATUS = new Set([429, 502, 503, 504]);\n\nfunction isRetriableError(err: unknown): boolean {\n if (err instanceof AegisAPIError) return RETRIABLE_STATUS.has(err.statusCode);\n // Network failure (fetch rejects with TypeError) or per-request timeout.\n if (err instanceof TypeError) return true;\n return err instanceof Error && err.name === \"TimeoutError\";\n}\n\nfunction backoffDelay(attempt: number, base: number, max: number): number {\n const exp = Math.min(max, base * 2 ** (attempt - 1));\n return exp * (0.5 + Math.random() * 0.5); // full jitter\n}\n\nconst sleep = (ms: number) => new Promise<void>((resolve) => setTimeout(resolve, ms));\n\nfunction envVar(name: string): string | undefined {\n if (typeof process !== \"undefined\" && process.env) return process.env[name];\n return undefined;\n}\n\nexport class AegisClient implements Transport {\n readonly baseUrl: string;\n private _token: string | null;\n private readonly timeoutMs: number;\n private readonly _fetchOverride?: typeof globalThis.fetch;\n private readonly _fetchInit: Omit<RequestInit, \"method\" | \"body\" | \"signal\">;\n private _refreshToken: string | null;\n private readonly _retry: Required<RetryOptions>;\n private _refreshInFlight: Promise<void> | null = null;\n\n readonly auth: AuthResource;\n readonly iam: IamResource;\n readonly osdk: OsdkResource;\n readonly operator: OperatorResource;\n readonly ontology: OntologyResource;\n readonly aip: AipResource;\n readonly functions: FunctionsResource;\n readonly codeRepositories: CodeRepositoriesResource;\n readonly datasets: DatasetsResource;\n // Reading / consumption\n readonly geo: GeoResource;\n readonly mapTemplates: MapTemplatesResource;\n readonly media: MediaResource;\n readonly docs: DocsResource;\n readonly pages: PagesResource;\n readonly dossier: DossierResource;\n readonly timeseries: TimeSeriesResource;\n // Operational\n readonly alerts: AlertsResource;\n readonly alarms: AlarmsResource;\n readonly events: EventsResource;\n readonly connectors: ConnectorsResource;\n readonly pipelines: PipelinesResource;\n readonly chat: ChatResource;\n readonly notepad: NotepadResource;\n // Governance\n readonly lineage: LineageResource;\n readonly accessAudit: AccessAuditResource;\n readonly markings: MarkingsResource;\n readonly resourceMarkings: ResourceMarkingsResource;\n readonly propertyMarkings: PropertyMarkingsResource;\n readonly rowPolicies: RowPoliciesResource;\n readonly erasure: ErasureResource;\n readonly retention: RetentionResource;\n readonly guestTokens: GuestTokensResource;\n // Domain\n readonly atlas: AtlasResource;\n readonly briefing: BriefingResource;\n readonly campaign: CampaignResource;\n readonly cctv: CctvResource;\n readonly comunicados: ComunicadosResource;\n readonly edge: EdgeResource;\n readonly video: VideoResource;\n // Collaboration / apps\n readonly appShell: AppShellResource;\n readonly forms: FormsResource;\n /** Alias of `iam.groups` (mirrors Python's standalone `client.groups`). */\n readonly groups: GroupsResource;\n readonly organizations: OrganizationsResource;\n readonly projects: ProjectsResource;\n readonly solutions: SolutionsResource;\n readonly spaces: SpacesResource;\n readonly workspaces: WorkspacesResource;\n readonly workspaceUpdates: WorkspaceUpdatesResource;\n readonly marketplace: MarketplaceResource;\n // Versioned platform surfaces\n readonly platformV22: PlatformV22Resource;\n readonly platformV23: PlatformV23Resource;\n readonly platformV24: PlatformV24Resource;\n readonly platformV25: PlatformV25Resource;\n readonly platformV26: PlatformV26Resource;\n // Platform\n readonly workshop: WorkshopResource;\n readonly compute: ComputeResource;\n readonly inference: InferenceResource;\n readonly codegen: CodegenResource;\n readonly correlation: CorrelationResource;\n readonly situational: SituationalResource;\n readonly merge: MergeResource;\n\n constructor(options: AegisClientOptions = {}) {\n const baseUrl = options.baseUrl ?? envVar(\"AEGIS_API_URL\") ?? \"http://localhost:8002\";\n this.baseUrl = baseUrl.replace(/\\/+$/, \"\");\n this._token = options.token ?? envVar(\"AEGIS_TOKEN\") ?? null;\n this.timeoutMs = options.timeoutMs ?? 15_000;\n // Resolved lazily per request — construction must not require a global\n // fetch (jsdom test envs and late polyfills set it after construction).\n this._fetchOverride = options.fetch;\n this._fetchInit = options.fetchInit ?? {};\n this._refreshToken = options.refreshToken ?? null;\n this._retry = {\n retries: options.retry?.retries ?? 2,\n baseDelayMs: options.retry?.baseDelayMs ?? 250,\n maxDelayMs: options.retry?.maxDelayMs ?? 4000,\n retryPost: options.retry?.retryPost ?? false,\n };\n\n this.auth = new AuthResource(this, (pair) => {\n this.setToken(pair.access_token);\n if (pair.refresh_token) this.setRefreshToken(pair.refresh_token);\n });\n this.iam = new IamResource(this);\n this.osdk = new OsdkResource(this);\n this.operator = new OperatorResource(this);\n this.ontology = new OntologyResource(this);\n this.aip = new AipResource(this);\n this.functions = new FunctionsResource(this);\n this.codeRepositories = new CodeRepositoriesResource(this);\n this.datasets = new DatasetsResource(this);\n this.geo = new GeoResource(this);\n this.mapTemplates = new MapTemplatesResource(this);\n this.media = new MediaResource(this);\n this.docs = new DocsResource(this);\n this.pages = new PagesResource(this);\n this.dossier = new DossierResource(this);\n this.timeseries = new TimeSeriesResource(this);\n this.alerts = new AlertsResource(this);\n this.alarms = new AlarmsResource(this);\n this.events = new EventsResource(this);\n this.connectors = new ConnectorsResource(this);\n this.pipelines = new PipelinesResource(this);\n this.chat = new ChatResource(this);\n this.notepad = new NotepadResource(this);\n this.lineage = new LineageResource(this);\n this.accessAudit = new AccessAuditResource(this);\n this.markings = new MarkingsResource(this);\n this.resourceMarkings = new ResourceMarkingsResource(this);\n this.propertyMarkings = new PropertyMarkingsResource(this);\n this.rowPolicies = new RowPoliciesResource(this);\n this.erasure = new ErasureResource(this);\n this.retention = new RetentionResource(this);\n this.guestTokens = new GuestTokensResource(this);\n this.atlas = new AtlasResource(this);\n this.briefing = new BriefingResource(this);\n this.campaign = new CampaignResource(this);\n this.cctv = new CctvResource(this);\n this.comunicados = new ComunicadosResource(this);\n this.edge = new EdgeResource(this);\n this.video = new VideoResource(this);\n this.appShell = new AppShellResource(this);\n this.forms = new FormsResource(this);\n this.groups = this.iam.groups;\n this.organizations = new OrganizationsResource(this);\n this.projects = new ProjectsResource(this);\n this.solutions = new SolutionsResource(this);\n this.spaces = new SpacesResource(this);\n this.workspaces = new WorkspacesResource(this);\n this.workspaceUpdates = new WorkspaceUpdatesResource(this);\n this.marketplace = new MarketplaceResource(this);\n this.platformV22 = new PlatformV22Resource(this);\n this.platformV23 = new PlatformV23Resource(this);\n this.platformV24 = new PlatformV24Resource(this);\n this.platformV25 = new PlatformV25Resource(this);\n this.platformV26 = new PlatformV26Resource(this);\n this.workshop = new WorkshopResource(this);\n this.compute = new ComputeResource(this);\n this.inference = new InferenceResource(this);\n this.codegen = new CodegenResource(this);\n this.correlation = new CorrelationResource(this);\n this.situational = new SituationalResource(this);\n this.merge = new MergeResource(this);\n }\n\n /** Replace the active bearer token (or clear with `null`). */\n setToken(token: string | null): void {\n this._token = token;\n }\n\n /** Replace the refresh token used for automatic 401 recovery. */\n setRefreshToken(token: string | null): void {\n this._refreshToken = token;\n }\n\n get token(): string | null {\n return this._token;\n }\n\n private get _fetch(): typeof globalThis.fetch {\n if (this._fetchOverride) return this._fetchOverride;\n const globalFetch = globalThis.fetch;\n if (!globalFetch) {\n throw new Error(\"no fetch available — Node >= 18, a browser, or pass options.fetch\");\n }\n return globalFetch.bind(globalThis);\n }\n\n /** Generic escape hatch — call any AEGIS endpoint not yet wrapped.\n * Transient failures are retried with backoff (see `RetryOptions`);\n * a 401 triggers one transparent `POST /auth/refresh` + retry when a\n * refresh token is held. */\n async request<T = unknown>(method: string, path: string, opts: RequestOptions = {}): Promise<T> {\n try {\n return await this._requestWithRetry<T>(method, path, opts);\n } catch (err) {\n const refreshable =\n err instanceof AuthError && this._refreshToken !== null && !path.startsWith(\"/auth/\");\n if (!refreshable) throw err;\n await this._refreshOnce();\n return this._requestWithRetry<T>(method, path, opts);\n }\n }\n\n /** Rotate the refresh token (single-flight) and attach the new pair. */\n private _refreshOnce(): Promise<void> {\n this._refreshInFlight ??= (async () => {\n try {\n const pair = await this._requestWithRetry<TokenPair>(\"POST\", \"/auth/refresh\", {\n json: { refresh_token: this._refreshToken },\n });\n this._token = pair.access_token;\n this._refreshToken = pair.refresh_token ?? this._refreshToken;\n } catch (err) {\n // A rejected refresh is terminal — drop it so we don't loop.\n if (err instanceof AuthError) this._refreshToken = null;\n throw err;\n } finally {\n this._refreshInFlight = null;\n }\n })();\n return this._refreshInFlight;\n }\n\n private async _requestWithRetry<T>(\n method: string,\n path: string,\n opts: RequestOptions,\n ): Promise<T> {\n const idempotent = method === \"GET\" || method === \"HEAD\" || this._retry.retryPost;\n for (let attempt = 0; ; attempt++) {\n try {\n return await this._doRequest<T>(method, path, opts);\n } catch (err) {\n if (!idempotent || attempt >= this._retry.retries || !isRetriableError(err)) throw err;\n await sleep(backoffDelay(attempt + 1, this._retry.baseDelayMs, this._retry.maxDelayMs));\n }\n }\n }\n\n private async _doRequest<T>(method: string, path: string, opts: RequestOptions): Promise<T> {\n const url = buildUrl(this.baseUrl, path, opts.params);\n const headers: Record<string, string> = {};\n if (this._token) headers.Authorization = `Bearer ${this._token}`;\n\n const init: RequestInit = { ...this._fetchInit, method, headers };\n if (opts.form !== undefined) {\n init.body = opts.form; // fetch sets the multipart boundary header itself\n } else if (opts.json !== undefined) {\n headers[\"Content-Type\"] = \"application/json\";\n init.body = JSON.stringify(opts.json);\n }\n if (opts.signal) {\n init.signal = opts.signal;\n } else if (typeof AbortSignal !== \"undefined\" && \"timeout\" in AbortSignal) {\n init.signal = AbortSignal.timeout(this.timeoutMs);\n }\n\n const res = await this._fetch(url, init);\n return handleResponse<T>(res);\n }\n\n /**\n * Open a server-sent-events endpoint and iterate its events. Long-lived:\n * no default timeout is applied — pass `signal` to cancel.\n *\n * ```ts\n * for await (const ev of client.stream(\"/operator/tasks/t1/events\")) { … }\n * ```\n */\n async *stream(\n path: string,\n opts: RequestOptions & { method?: string } = {},\n ): AsyncGenerator<SseEvent, void, undefined> {\n const url = buildUrl(this.baseUrl, path, opts.params);\n const headers: Record<string, string> = { Accept: \"text/event-stream\" };\n if (this._token) headers.Authorization = `Bearer ${this._token}`;\n const init: RequestInit = { ...this._fetchInit, method: opts.method ?? \"GET\", headers };\n if (opts.json !== undefined) {\n headers[\"Content-Type\"] = \"application/json\";\n init.body = JSON.stringify(opts.json);\n init.method = opts.method ?? \"POST\";\n }\n if (opts.signal) init.signal = opts.signal;\n\n const res = await this._fetch(url, init);\n if (!res.ok || !res.body) {\n await handleResponse(res); // throws the mapped error hierarchy\n throw new AegisAPIError(res.status, \"stream endpoint returned no body\");\n }\n yield* parseSseStream(res.body);\n }\n}\n","/**\n * Pure client-side CBAC helpers — mirrors `aegis/classification.py`.\n * No HTTP: these validate the classification invariant before writes.\n */\n\nexport type ClassificationLevel = \"PUBLICO\" | \"INTERNO\" | \"RESTRITO\" | \"SECRETO\";\n\nexport const VALID_LEVELS: readonly ClassificationLevel[] = [\n \"PUBLICO\",\n \"INTERNO\",\n \"RESTRITO\",\n \"SECRETO\",\n];\n\nexport const CLASSIFICATION_RANK: Readonly<Record<ClassificationLevel, number>> = {\n PUBLICO: 0,\n INTERNO: 1,\n RESTRITO: 2,\n SECRETO: 3,\n};\n\nexport const CLASSIFICATION_LABEL: Readonly<Record<ClassificationLevel, string>> = {\n PUBLICO: \"Público\",\n INTERNO: \"Interno\",\n RESTRITO: \"Restrito\",\n SECRETO: \"Secreto\",\n};\n\nexport class ClassificationInvariantViolation extends Error {\n constructor(message: string) {\n super(message);\n this.name = \"ClassificationInvariantViolation\";\n }\n}\n\nfunction rank(level: string): number {\n const r = CLASSIFICATION_RANK[level as ClassificationLevel];\n if (r === undefined) throw new ClassificationInvariantViolation(`invalid level: ${level}`);\n return r;\n}\n\n/** Highest classification level among the given ones. */\nexport function maxLevel(levels: Iterable<string>): ClassificationLevel {\n let best: ClassificationLevel = \"PUBLICO\";\n for (const level of levels) {\n if (rank(level) > CLASSIFICATION_RANK[best]) best = level as ClassificationLevel;\n }\n return best;\n}\n\n/**\n * The file classification must dominate the data classification, and the\n * data classification must dominate every upstream input. Throws\n * `ClassificationInvariantViolation` on breach.\n */\nexport function validateInvariant(\n fileCls: string,\n dataCls: string,\n upstreamData: Iterable<string> = [],\n): void {\n if (rank(fileCls) < rank(dataCls)) {\n throw new ClassificationInvariantViolation(\n `file classification ${fileCls} must dominate data classification ${dataCls}`,\n );\n }\n for (const upstream of upstreamData) {\n if (rank(dataCls) < rank(upstream)) {\n throw new ClassificationInvariantViolation(\n `data classification ${dataCls} must dominate upstream ${upstream}`,\n );\n }\n }\n}\n","/**\n * IAM permission catalog — mirrors `aegis/iam/permissions.py` verbatim.\n * Pure client-side (no HTTP): lets SDK consumers reference permission keys\n * statically instead of hardcoding strings.\n */\n\nexport const NAV_PERMISSIONS = [\n \"nav.section.discover\",\n \"nav.item.discover.home\",\n \"nav.section.operations\",\n \"nav.item.operations.tasks\",\n \"nav.section.core_loop\",\n \"nav.item.core_loop.alerts\",\n \"nav.item.core_loop.proposals\",\n \"nav.item.core_loop.actions\",\n \"nav.section.ontology\",\n \"nav.item.ontology.manager\",\n \"nav.item.ontology.explorer\",\n \"nav.item.ontology.types\",\n \"nav.item.ontology.actions\",\n \"nav.item.ontology.interfaces\",\n \"nav.item.ontology.links\",\n \"nav.item.ontology.views\",\n \"nav.item.ontology.aggregations\",\n \"nav.item.ontology.object_sets\",\n \"nav.section.data\",\n \"nav.item.data.datasets\",\n \"nav.item.data.pipelines\",\n \"nav.item.data.connectors\",\n \"nav.item.data.media\",\n \"nav.item.data.schedules\",\n \"nav.item.data.notepad\",\n \"nav.item.data.lineage\",\n \"nav.item.data.health\",\n \"nav.section.aip\",\n \"nav.item.aip.threads\",\n \"nav.item.aip.agents\",\n \"nav.item.aip.tools\",\n \"nav.item.aip.logic\",\n \"nav.item.aip.models\",\n \"nav.item.aip.capacity\",\n \"nav.item.aip.scenarios\",\n \"nav.item.aip.evals\",\n \"nav.item.aip.memory\",\n \"nav.item.aip.mcp_adapters\",\n \"nav.section.workshop\",\n \"nav.item.workshop.apps\",\n \"nav.section.governance\",\n \"nav.item.governance.projects\",\n \"nav.item.governance.audit\",\n \"nav.item.governance.lgpd\",\n \"nav.item.governance.trace\",\n \"nav.item.governance.rules\",\n \"nav.item.governance.change_requests\",\n \"nav.item.governance.automations\",\n \"nav.item.governance.tokens\",\n \"nav.item.governance.peers\",\n \"nav.item.governance.code_scan\",\n \"nav.item.governance.kiosk\",\n \"nav.item.governance.access\",\n \"nav.item.governance.osdk\",\n \"nav.section.resources\",\n \"nav.item.resources.docs\",\n \"nav.item.resources.template_gallery\",\n \"nav.item.resources.aegis_sdk\",\n \"nav.section.other\",\n \"nav.item.other.intel_map\",\n \"nav.item.other.cognitive\",\n \"nav.item.other.map_view\",\n \"nav.section.campanha\",\n \"nav.item.campaign.hub\",\n \"nav.item.campaign.chat\",\n \"nav.item.campaign.visibility\",\n \"nav.item.campaign.agents\",\n \"nav.item.campaign.scenarios\",\n \"nav.item.campaign.brief\",\n \"nav.section.painel-de-controle\",\n \"nav.item.painel.home\",\n \"nav.item.painel.aprovacoes\",\n \"nav.item.painel.comunicacoes\",\n \"nav.item.painel.atividade\",\n] as const;\n\nexport const CAPABILITY_PERMISSIONS = [\n \"ontology.types.read\",\n \"ontology.types.write\",\n \"ontology.actions.read\",\n \"ontology.actions.write\",\n \"ontology.actions.execute\",\n \"ontology.actions.execute_external\",\n \"ontology.objects.read\",\n \"ontology.objects.write\",\n \"ontology.objects.bulk_delete\",\n \"ontology.links.read\",\n \"ontology.links.write\",\n \"solution.diagram.read\",\n \"solution.diagram.write\",\n \"solution.diagram.publish\",\n \"solution.diagram.delete\",\n \"solution.diagram.history.read\",\n \"solution.materialize.delete\",\n \"solution.refactor\",\n \"data.datasets.read\",\n \"data.datasets.write\",\n \"data.pipelines.read\",\n \"data.pipelines.write\",\n \"data.lineage.read\",\n \"data.connectors.read\",\n \"data.connectors.write\",\n \"aip.threads.read\",\n \"aip.threads.write\",\n \"aip.agents.read\",\n \"aip.agents.write\",\n \"aip.models.read\",\n \"aip.models.write\",\n \"aip.evals.read\",\n \"aip.evals.run\",\n \"aip.memory.read\",\n \"aip.memory.write\",\n \"workshop.apps.read\",\n \"workshop.apps.write\",\n \"workshop.apps.purge\",\n \"operator.tasks.read\",\n \"operator.tasks.write\",\n \"governance.audit.read\",\n \"governance.rules.read\",\n \"governance.rules.write\",\n \"governance.change_requests.read\",\n \"governance.change_requests.write\",\n \"governance.change_requests.approve\",\n \"governance.tokens.read\",\n \"governance.tokens.write\",\n \"governance.lgpd.read\",\n \"governance.lgpd.write\",\n \"governance.peers.read\",\n \"governance.peers.write\",\n \"governance.kiosk.read\",\n \"governance.kiosk.write\",\n \"admin.acessos\",\n \"admin.classificacao\",\n \"admin.auditoria\",\n \"admin.federacao\",\n \"admin.unidades\",\n \"admin.templates\",\n \"admin.automacoes\",\n \"admin.tokens\",\n \"campaign.chat.read\",\n \"campaign.chat.write\",\n \"campaign.brief.read\",\n \"campaign.brief.generate\",\n \"campaign.brief.sign\",\n \"campaign.scenario.read\",\n \"campaign.scenario.run\",\n \"campaign.scenario.write\",\n \"campaign.visibility.read\",\n \"campaign.visibility.pin\",\n \"campaign.visibility.escalate\",\n \"campaign.agents.read\",\n \"campaign.agents.write\",\n \"campaign.agents.run\",\n \"campaign.flows.read\",\n \"campaign.flows.write\",\n \"campaign.flows.run\",\n \"campaign.briefing.read\",\n \"campaign.briefing.refresh\",\n \"campaign.briefing.headline\",\n \"campaign.briefing.crisis_override\",\n \"vault.cookies.manage\",\n \"iam.users.read\",\n \"iam.users.write\",\n \"iam.roles.read\",\n \"iam.roles.write\",\n \"iam.permissions.read\",\n \"iam.permissions.write\",\n \"iam.nav.read\",\n \"iam.nav.write\",\n \"iam.audit.read\",\n \"iam.groups.read\",\n \"iam.groups.write\",\n \"iam.groups.manage_members\",\n \"docs.tree.read\",\n \"docs.content.read\",\n \"aip.flows.read\",\n \"aip.flows.write\",\n \"aip.flows.execute\",\n \"aip.agents.execute\",\n \"briefing.read\",\n \"briefing.refresh\",\n \"ontology.objects.view\",\n \"ontology.graph.read\",\n \"ontology.graph.export\",\n \"ontology.explorer.aggregate\",\n \"workshop.briefings.read\",\n \"workshop.briefings.write\",\n \"workshop.briefings.broadcast\",\n \"workshop.dossiers.read\",\n \"workshop.dossiers.write\",\n \"workshop.dossiers.share\",\n \"workshop.covs.read\",\n \"workshop.covs.write\",\n \"workshop.covs.share\",\n \"chat.channels.read\",\n \"chat.channels.write\",\n \"chat.channels.manage\",\n \"chat.messages.send\",\n \"chat.messages.read\",\n \"alerts.feeds.read\",\n \"alerts.feeds.subscribe\",\n \"alerts.watches.read\",\n \"alerts.watches.subscribe\",\n \"alerts.geofences.read\",\n \"alerts.geofences.manage\",\n \"alerts.shares.read\",\n \"alerts.read\",\n \"alerts.escalate\",\n \"alerts.routes.view\",\n \"alerts.routes.manage\",\n \"atlas.layers.read\",\n \"atlas.layers.manage\",\n \"atlas.geofences.draw\",\n \"atlas.evaluation.read\",\n \"atlas.evaluation.manage\",\n \"video.exports.create\",\n \"connectors.manage\",\n \"events.pipeline.view\",\n \"events.pipeline.manage\",\n \"situational.correlate.view\",\n \"situational.correlate.manage\",\n \"security.painel.view\",\n \"security.buscar.view\",\n \"security.geo.view\",\n \"security.geo.cerca.create\",\n \"security.cameras.view\",\n \"security.cameras.tag\",\n \"security.cameras.export\",\n \"security.cameras.manage\",\n \"security.cameras.bookmark\",\n \"security.cameras.hotlist\",\n \"security.cameras.cloud_inference\",\n \"security.explorador.view\",\n \"security.rede.view\",\n \"security.rede.edit\",\n \"security.ficha.view\",\n \"security.ficha.edit\",\n \"security.alertas.view\",\n \"security.alertas.resolve\",\n \"security.relatorios.view\",\n \"security.relatorios.edit\",\n \"security.relatorios.close\",\n \"security.briefings.view\",\n \"security.briefings.edit\",\n \"security.briefings.broadcast\",\n \"security.workshop.view\",\n \"security.workshop.edit\",\n \"security.workshop.publish_global\",\n \"security.fluxos.view\",\n \"security.fluxos.edit\",\n \"security.fluxos.run\",\n \"security.agentes.view\",\n \"security.agentes.edit\",\n \"security.agentes.run\",\n \"security.ontologia.view\",\n \"security.ontologia.edit\",\n \"security.workshop.kiosk\",\n \"security.configuracoes.view\",\n \"security.browser.manage\",\n \"painel.home.view\",\n \"painel.aprovacoes.view\",\n \"painel.aprovacoes.act\",\n \"painel.comunicacoes.view\",\n \"painel.comunicacoes.edit\",\n \"painel.atividade.view\",\n \"painel.atividade.export\",\n \"painel.favoritos.edit\",\n \"organization.read\",\n \"organization.write\",\n \"organization.invite_guest\",\n \"space.read\",\n \"space.write\",\n \"space.add_organization\",\n \"project.read\",\n \"project.write\",\n \"project.move\",\n \"project.link\",\n \"markings.read\",\n \"markings.write\",\n \"markings.apply\",\n \"markings.remove\",\n \"markings.expand_access\",\n \"markings.manage_eligibility\",\n \"classification.read\",\n \"classification.set\",\n \"classification.upgrade\",\n \"project.constraints.read\",\n \"project.constraints.configure\",\n \"project.constraints.revalidate\",\n \"workspace.read\",\n \"workspace.write\",\n \"workspace.delete\",\n \"workspace.publish\",\n \"workspace.history.read\",\n \"workspace.republish\",\n \"workspace.update.read\",\n \"workspace.update.write\",\n \"workspace.update.archive\",\n \"workspace.update.delete\",\n \"workspace.update.view\",\n \"workspace.navigation.read\",\n \"workspace.navigation.configure\",\n \"workspace.promote.read\",\n \"workspace.promote.set\",\n \"workspace.promote.unset\",\n \"workspace.kiosk.read\",\n \"workspace.kiosk.configure\",\n \"workspace.kiosk.session.start\",\n \"workspace.kiosk.session.end\",\n \"app_shell.manage\",\n \"comunicado.read\",\n \"comunicado.write\",\n \"comunicado.delete\",\n \"forms.submit\",\n \"forms.submissions.read\",\n \"vendor.dev_mode\",\n \"public.token.read\",\n \"public.token.issue\",\n \"public.token.revoke\",\n \"messaging.send\",\n \"automation.alarms.read\",\n \"automation.alarms.write\",\n \"data.media.read\",\n \"data.media.write\",\n \"function.read\",\n \"function.write\",\n \"function.invoke\",\n \"function.review\",\n \"sandbox.install\",\n \"sandbox.terminal\",\n \"llm.budget.read\",\n \"llm.budget.write\",\n \"governance.retention.read\",\n \"governance.retention.write\",\n \"rowpolicy.read\",\n \"rowpolicy.write\",\n \"compute.providers.read\",\n \"compute.providers.write\",\n \"compute.pipelines.deploy\",\n \"vision.count.execute\",\n \"ontology.objects.bulk_write\",\n] as const;\n\nexport type NavPermissionKey = (typeof NAV_PERMISSIONS)[number];\nexport type CapabilityPermissionKey = (typeof CAPABILITY_PERMISSIONS)[number];\nexport type PermissionKey = NavPermissionKey | CapabilityPermissionKey;\n\nexport const ALL_PERMISSIONS: readonly PermissionKey[] = [\n ...NAV_PERMISSIONS,\n ...CAPABILITY_PERMISSIONS,\n];\n\nexport interface IamPermissionDef {\n key: PermissionKey;\n kind: \"nav\" | \"capability\";\n /** Key minus its last segment. */\n resource: string;\n /** Last segment of the key. */\n action: string;\n}\n\nfunction toDef(key: PermissionKey, kind: \"nav\" | \"capability\"): IamPermissionDef {\n const idx = key.lastIndexOf(\".\");\n return { key, kind, resource: key.slice(0, idx), action: key.slice(idx + 1) };\n}\n\nexport function listPermissions(kind?: \"nav\" | \"capability\"): IamPermissionDef[] {\n if (kind === \"nav\") return NAV_PERMISSIONS.map((k) => toDef(k, \"nav\"));\n if (kind === \"capability\") return CAPABILITY_PERMISSIONS.map((k) => toDef(k, \"capability\"));\n if (kind !== undefined) throw new Error(`invalid permission kind: ${String(kind)}`);\n return [...listPermissions(\"nav\"), ...listPermissions(\"capability\")];\n}\n\nconst ALL_SET: ReadonlySet<string> = new Set(ALL_PERMISSIONS);\n\nexport function isSystemPermission(key: string): boolean {\n return ALL_SET.has(key);\n}\n","/**\n * Client-side OSDK Application catalog — mirrors `aegis/osdk/application.py`.\n * Pure data (no HTTP): pick a permission scope before minting a token via\n * `client.osdk.create(name, scopes)`.\n */\nimport { isSystemPermission } from \"./permissions\";\n\nexport interface OsdkApplication {\n slug: string;\n display_name: string;\n description: string;\n permissions: readonly string[];\n}\n\nexport const APPLICATIONS: readonly OsdkApplication[] = [\n {\n slug: \"security-app\",\n display_name: \"Security Application\",\n description: \"Operational security frontend — painel, geo, cameras, ficha, workshop, AIP.\",\n permissions: [\n \"nav.section.discover\",\n \"nav.section.painel-de-controle\",\n \"nav.item.painel.home\",\n \"nav.item.painel.aprovacoes\",\n \"nav.item.painel.comunicacoes\",\n \"nav.item.painel.atividade\",\n \"security.painel.view\",\n \"security.buscar.view\",\n \"security.geo.view\",\n \"security.geo.cerca.create\",\n \"security.cameras.view\",\n \"security.cameras.tag\",\n \"security.cameras.export\",\n \"security.cameras.manage\",\n \"security.cameras.bookmark\",\n \"security.cameras.hotlist\",\n \"security.cameras.cloud_inference\",\n \"video.exports.create\",\n \"security.explorador.view\",\n \"security.rede.view\",\n \"security.rede.edit\",\n \"security.ficha.view\",\n \"security.ficha.edit\",\n \"security.alertas.view\",\n \"security.alertas.resolve\",\n \"security.relatorios.view\",\n \"security.relatorios.edit\",\n \"security.relatorios.close\",\n \"security.briefings.view\",\n \"security.briefings.edit\",\n \"security.briefings.broadcast\",\n \"security.workshop.view\",\n \"security.workshop.edit\",\n \"security.workshop.publish_global\",\n \"security.fluxos.view\",\n \"security.fluxos.edit\",\n \"security.fluxos.run\",\n \"security.agentes.view\",\n \"security.agentes.edit\",\n \"security.agentes.run\",\n \"security.ontologia.view\",\n \"security.ontologia.edit\",\n \"security.workshop.kiosk\",\n \"security.configuracoes.view\",\n \"security.browser.manage\",\n \"connectors.manage\",\n \"events.pipeline.view\",\n \"events.pipeline.manage\",\n \"alerts.read\",\n \"alerts.escalate\",\n \"alerts.geofences.read\",\n \"alerts.geofences.manage\",\n \"alerts.routes.view\",\n \"alerts.routes.manage\",\n \"situational.correlate.view\",\n \"situational.correlate.manage\",\n \"painel.home.view\",\n \"painel.aprovacoes.view\",\n \"painel.aprovacoes.act\",\n \"painel.comunicacoes.view\",\n \"painel.comunicacoes.edit\",\n \"painel.atividade.view\",\n \"painel.atividade.export\",\n \"painel.favoritos.edit\",\n \"aip.threads.read\",\n \"aip.threads.write\",\n \"aip.models.read\",\n \"aip.memory.read\",\n \"aip.memory.write\",\n \"compute.providers.read\",\n \"compute.providers.write\",\n \"compute.pipelines.deploy\",\n \"vision.count.execute\",\n \"ontology.objects.bulk_write\",\n ],\n },\n {\n slug: \"aip-application\",\n display_name: \"AIP Application\",\n description: \"AIP threads, agents, tools, logic, models, evals, memory.\",\n permissions: [\n \"nav.section.aip\",\n \"nav.item.aip.threads\",\n \"nav.item.aip.agents\",\n \"nav.item.aip.tools\",\n \"nav.item.aip.logic\",\n \"nav.item.aip.models\",\n \"nav.item.aip.capacity\",\n \"nav.item.aip.scenarios\",\n \"nav.item.aip.evals\",\n \"nav.item.aip.memory\",\n \"nav.item.aip.mcp_adapters\",\n \"aip.threads.read\",\n \"aip.threads.write\",\n \"aip.agents.read\",\n \"aip.agents.write\",\n \"aip.agents.execute\",\n \"aip.models.read\",\n \"aip.models.write\",\n \"aip.memory.read\",\n \"aip.memory.write\",\n \"aip.evals.read\",\n \"aip.evals.run\",\n \"aip.flows.read\",\n \"aip.flows.write\",\n \"aip.flows.execute\",\n ],\n },\n {\n slug: \"ontology-application\",\n display_name: \"Ontology Application\",\n description: \"Ontology types, objects, links, graph, solution diagrams, lineage.\",\n permissions: [\n \"ontology.types.read\",\n \"ontology.types.write\",\n \"ontology.actions.read\",\n \"ontology.actions.write\",\n \"ontology.actions.execute\",\n \"ontology.actions.execute_external\",\n \"ontology.objects.read\",\n \"ontology.objects.write\",\n \"ontology.objects.view\",\n \"ontology.links.read\",\n \"ontology.links.write\",\n \"ontology.graph.read\",\n \"ontology.graph.export\",\n \"ontology.explorer.aggregate\",\n \"data.lineage.read\",\n \"solution.diagram.read\",\n \"solution.diagram.write\",\n \"solution.diagram.publish\",\n \"solution.diagram.delete\",\n \"solution.diagram.history.read\",\n \"solution.materialize.delete\",\n \"solution.refactor\",\n \"messaging.send\",\n \"compute.providers.read\",\n \"compute.pipelines.deploy\",\n \"vision.count.execute\",\n \"ontology.objects.bulk_write\",\n ],\n },\n {\n slug: \"governance-application\",\n display_name: \"Governance Application\",\n description: \"IAM groups, audit, rules, change requests, tokens, LGPD, markings, classification.\",\n permissions: [\n \"iam.groups.read\",\n \"iam.groups.write\",\n \"iam.groups.manage_members\",\n \"governance.audit.read\",\n \"governance.rules.read\",\n \"governance.rules.write\",\n \"governance.change_requests.read\",\n \"governance.change_requests.write\",\n \"governance.change_requests.approve\",\n \"governance.tokens.read\",\n \"governance.tokens.write\",\n \"governance.lgpd.read\",\n \"governance.lgpd.write\",\n \"governance.peers.read\",\n \"governance.peers.write\",\n \"governance.kiosk.read\",\n \"governance.kiosk.write\",\n \"admin.acessos\",\n \"admin.classificacao\",\n \"admin.auditoria\",\n \"admin.federacao\",\n \"admin.unidades\",\n \"admin.templates\",\n \"admin.automacoes\",\n \"admin.tokens\",\n \"markings.read\",\n \"markings.write\",\n \"markings.apply\",\n \"markings.remove\",\n \"markings.expand_access\",\n \"markings.manage_eligibility\",\n \"classification.read\",\n \"classification.set\",\n \"classification.upgrade\",\n \"project.constraints.read\",\n \"project.constraints.configure\",\n \"project.constraints.revalidate\",\n \"public.token.read\",\n \"public.token.issue\",\n \"public.token.revoke\",\n ],\n },\n {\n slug: \"workshop-application\",\n display_name: \"Workshop Application\",\n description: \"Workshop apps, briefings, dossiers, COVs, workspaces, app-shell, comunicados.\",\n permissions: [\n \"workshop.apps.read\",\n \"workshop.apps.write\",\n \"workshop.briefings.read\",\n \"workshop.briefings.write\",\n \"workshop.briefings.broadcast\",\n \"workshop.dossiers.read\",\n \"workshop.dossiers.write\",\n \"workshop.dossiers.share\",\n \"workshop.covs.read\",\n \"workshop.covs.write\",\n \"workshop.covs.share\",\n \"workspace.read\",\n \"workspace.write\",\n \"workspace.delete\",\n \"workspace.publish\",\n \"workspace.history.read\",\n \"workspace.republish\",\n \"workspace.update.read\",\n \"workspace.update.write\",\n \"workspace.update.archive\",\n \"workspace.update.delete\",\n \"workspace.update.view\",\n \"workspace.navigation.read\",\n \"workspace.navigation.configure\",\n \"workspace.promote.read\",\n \"workspace.promote.set\",\n \"workspace.promote.unset\",\n \"workspace.kiosk.read\",\n \"workspace.kiosk.configure\",\n \"workspace.kiosk.session.start\",\n \"workspace.kiosk.session.end\",\n \"app_shell.manage\",\n \"comunicado.read\",\n \"comunicado.write\",\n \"comunicado.delete\",\n ],\n },\n {\n slug: \"campaign-application\",\n display_name: \"Campaign Application (politicians-app)\",\n description: \"Campaign hub, chat, visibility, agents, scenarios, briefing.\",\n permissions: [\n \"nav.section.campanha\",\n \"nav.item.campaign.hub\",\n \"nav.item.campaign.chat\",\n \"nav.item.campaign.visibility\",\n \"nav.item.campaign.agents\",\n \"nav.item.campaign.scenarios\",\n \"nav.item.campaign.brief\",\n \"campaign.chat.read\",\n \"campaign.chat.write\",\n \"campaign.brief.read\",\n \"campaign.brief.generate\",\n \"campaign.brief.sign\",\n \"campaign.scenario.read\",\n \"campaign.scenario.run\",\n \"campaign.scenario.write\",\n \"campaign.visibility.read\",\n \"campaign.visibility.pin\",\n \"campaign.visibility.escalate\",\n \"campaign.agents.read\",\n \"campaign.agents.write\",\n \"campaign.agents.run\",\n \"campaign.briefing.read\",\n \"campaign.briefing.refresh\",\n \"campaign.briefing.headline\",\n \"campaign.briefing.crisis_override\",\n \"vault.cookies.manage\",\n ],\n },\n {\n slug: \"docs-loader\",\n display_name: \"Docs UI Loader\",\n description: \"Read-only access to the docs tree and content.\",\n permissions: [\"docs.tree.read\", \"docs.content.read\"],\n },\n];\n\nexport function listApplications(): readonly OsdkApplication[] {\n return APPLICATIONS;\n}\n\nexport function applicationBySlug(slug: string): OsdkApplication | undefined {\n return APPLICATIONS.find((app) => app.slug === slug);\n}\n\nexport function applicationHas(app: OsdkApplication, key: string): boolean {\n return app.permissions.includes(key);\n}\n\n/** Throws if the application references a permission key unknown to the catalog. */\nexport function validateApplication(app: OsdkApplication): void {\n for (const key of app.permissions) {\n if (!isSystemPermission(key)) {\n throw new Error(`application ${app.slug} references unknown permission: ${key}`);\n }\n }\n}\n","/**\n * Adapter between `AegisClient` and the `OSDKClient` contract expected by\n * code generated from the live ontology (`aegis-osdk generate` /\n * `GET /ontology/osdk/generate?lang=typescript`):\n *\n * ```ts\n * import { AegisClient, asOsdkClient } from \"aegis-platform-sdk\";\n * import { CameraApi } from \"./aegis_osdk\"; // generated\n *\n * const osdk = asOsdkClient(new AegisClient({ ... }));\n * ```\n */\nimport type { AegisClient } from \"./client\";\n\n/** The client contract emitted at the top of every generated OSDK module. */\nexport interface OSDKClient {\n get(path: string, params?: Record<string, unknown>): Promise<any>;\n post(path: string, body?: unknown): Promise<any>;\n}\n\nexport function asOsdkClient(client: AegisClient): OSDKClient {\n return {\n get: (path, params) =>\n client.request(\"GET\", path, {\n params: params as Record<string, string | number | boolean | undefined>,\n }),\n post: (path, body) => client.request(\"POST\", path, { json: body ?? {} }),\n };\n}\n"],"mappings":"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ACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAMO,IAAM,kBAA4C;AAAA,EACvD,GAAG;AAAA,EACH,GAAG;AACL;AAWA,SAAS,MAAM,KAAoB,MAA8C;AAC/E,QAAM,MAAM,IAAI,YAAY,GAAG;AAC/B,SAAO,EAAE,KAAK,MAAM,UAAU,IAAI,MAAM,GAAG,GAAG,GAAG,QAAQ,IAAI,MAAM,MAAM,CAAC,EAAE;AAC9E;AAEO,SAAS,gBAAgB,MAAiD;AAC/E,MAAI,SAAS,MAAO,QAAO,gBAAgB,IAAI,CAAC,MAAM,MAAM,GAAG,KAAK,CAAC;AACrE,MAAI,SAAS,aAAc,QAAO,uBAAuB,IAAI,CAAC,MAAM,MAAM,GAAG,YAAY,CAAC;AAC1F,MAAI,SAAS,OAAW,OAAM,IAAI,MAAM,4BAA4B,OAAO,IAAI,CAAC,EAAE;AAClF,SAAO,CAAC,GAAG,gBAAgB,KAAK,GAAG,GAAG,gBAAgB,YAAY,CAAC;AACrE;AAEA,IAAM,UAA+B,IAAI,IAAI,eAAe;AAErD,SAAS,mBAAmB,KAAsB;AACvD,SAAO,QAAQ,IAAI,GAAG;AACxB;;;AClXO,IAAM,eAA2C;AAAA,EACtD;AAAA,IACE,MAAM;AAAA,IACN,cAAc;AAAA,IACd,aAAa;AAAA,IACb,aAAa;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,cAAc;AAAA,IACd,aAAa;AAAA,IACb,aAAa;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,cAAc;AAAA,IACd,aAAa;AAAA,IACb,aAAa;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,cAAc;AAAA,IACd,aAAa;AAAA,IACb,aAAa;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,cAAc;AAAA,IACd,aAAa;AAAA,IACb,aAAa;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,cAAc;AAAA,IACd,aAAa;AAAA,IACb,aAAa;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,cAAc;AAAA,IACd,aAAa;AAAA,IACb,aAAa,CAAC,kBAAkB,mBAAmB;AAAA,EACrD;AACF;AAEO,SAAS,mBAA+C;AAC7D,SAAO;AACT;AAEO,SAAS,kBAAkB,MAA2C;AAC3E,SAAO,aAAa,KAAK,CAAC,QAAQ,IAAI,SAAS,IAAI;AACrD;AAEO,SAAS,eAAe,KAAsB,KAAsB;AACzE,SAAO,IAAI,YAAY,SAAS,GAAG;AACrC;AAGO,SAAS,oBAAoB,KAA4B;AAC9D,aAAW,OAAO,IAAI,aAAa;AACjC,QAAI,CAAC,mBAAmB,GAAG,GAAG;AAC5B,YAAM,IAAI,MAAM,eAAe,IAAI,IAAI,mCAAmC,GAAG,EAAE;AAAA,IACjF;AAAA,EACF;AACF;;;ACnSO,SAAS,aAAa,QAAiC;AAC5D,SAAO;AAAA,IACL,KAAK,CAAC,MAAM,WACV,OAAO,QAAQ,OAAO,MAAM;AAAA,MAC1B;AAAA,IACF,CAAC;AAAA,IACH,MAAM,CAAC,MAAM,SAAS,OAAO,QAAQ,QAAQ,MAAM,EAAE,MAAM,QAAQ,CAAC,EAAE,CAAC;AAAA,EACzE;AACF;","names":[]}
1
+ {"version":3,"sources":["../src/errors.ts","../src/transport.ts","../src/sse.ts","../src/resources/auth.ts","../src/resources/iam.ts","../src/resources/osdk.ts","../src/resources/operator.ts","../src/resources/ontology.ts","../src/resources/aip.ts","../src/resources/functions.ts","../src/resources/datasets.ts","../src/resources/reading.ts","../src/resources/publicGuest.ts","../src/resources/operational.ts","../src/resources/governance.ts","../src/resources/platform.ts","../src/resources/domain.ts","../src/resources/collab.ts","../src/resources/workspaces.ts","../src/resources/platformVersions.ts","../src/client.ts","../src/classification.ts","../src/permissions.ts","../src/osdk-applications.ts","../src/osdk-adapter.ts"],"sourcesContent":["/**\n * Exception hierarchy for the AEGIS SDK — mirrors `aegis.exceptions` in the\n * Python SDK. Callers can catch the broad `AegisAPIError` or react to\n * specific subclasses:\n *\n * ```ts\n * try {\n * await client.iam.users.list();\n * } catch (err) {\n * if (err instanceof PermissionDeniedError) console.log(\"missing perm:\", err.detail);\n * else if (err instanceof AegisAPIError) console.log(err.statusCode, err.detail);\n * }\n * ```\n */\n\nexport class AegisAPIError extends Error {\n readonly statusCode: number;\n readonly detail: string;\n readonly payload: unknown;\n\n constructor(statusCode: number, detail = \"\", payload: unknown = null) {\n super(`HTTP ${statusCode}: ${detail}`);\n this.name = new.target.name;\n this.statusCode = statusCode;\n this.detail = detail;\n this.payload = payload;\n }\n}\n\n/** 401 — invalid / expired token, missing credentials, locked account. */\nexport class AuthError extends AegisAPIError {}\n\n/** 403 — authenticated but lacks the permission for this call. */\nexport class PermissionDeniedError extends AegisAPIError {}\n\n/** 404 — the addressed resource does not exist (or is hidden by tenant scope). */\nexport class NotFoundError extends AegisAPIError {}\n","import { AegisAPIError, AuthError, NotFoundError, PermissionDeniedError } from \"./errors\";\n\nexport type QueryParams = Record<\n string,\n string | number | boolean | ReadonlyArray<string | number> | undefined | null\n>;\n\nexport interface RequestOptions {\n params?: QueryParams;\n json?: unknown;\n /** Multipart body (e.g. logo upload) — mutually exclusive with `json`. */\n form?: FormData;\n signal?: AbortSignal;\n}\n\n/** The verb-agnostic transport contract every resource is built on. */\nexport interface Transport {\n request<T = unknown>(method: string, path: string, opts?: RequestOptions): Promise<T>;\n}\n\nexport function buildUrl(baseUrl: string, path: string, params?: QueryParams): string {\n const raw = baseUrl.replace(/\\/+$/, \"\") + path;\n let url: URL;\n if (/^[a-z][a-z0-9+.-]*:\\/\\//i.test(raw)) {\n url = new URL(raw);\n } else {\n // Relative base (e.g. \"/api\" behind a same-origin reverse proxy) —\n // resolve against the browser origin.\n const origin = (globalThis as { location?: { origin?: string } }).location?.origin;\n if (!origin) {\n throw new Error(\n `relative baseUrl \"${baseUrl}\" requires a browser origin — use an absolute URL in Node`,\n );\n }\n url = new URL(raw, origin);\n }\n if (params) {\n for (const [key, value] of Object.entries(params)) {\n if (value === undefined || value === null) continue;\n if (Array.isArray(value)) {\n for (const item of value) url.searchParams.append(key, String(item));\n } else {\n url.searchParams.set(key, String(value));\n }\n }\n }\n return url.toString();\n}\n\n/** Map an HTTP response to a payload or throw the mirrored exception hierarchy. */\nexport async function handleResponse<T>(res: Response): Promise<T> {\n if (res.status === 204) return null as T;\n const text = await res.text();\n let payload: unknown = text;\n try {\n payload = text ? JSON.parse(text) : null;\n } catch {\n /* non-JSON body — keep raw text */\n }\n if (res.ok) return payload as T;\n\n let detail = \"\";\n if (payload && typeof payload === \"object\" && \"detail\" in payload) {\n detail = String((payload as { detail: unknown }).detail ?? \"\");\n } else if (typeof payload === \"string\") {\n detail = payload;\n }\n if (res.status === 401) throw new AuthError(401, detail || \"unauthenticated\", payload);\n if (res.status === 403) throw new PermissionDeniedError(403, detail || \"forbidden\", payload);\n if (res.status === 404) throw new NotFoundError(404, detail || \"not found\", payload);\n throw new AegisAPIError(res.status, detail || text, payload);\n}\n","/**\n * Minimal SSE (text/event-stream) support — zero dependencies.\n *\n * AEGIS exposes server-sent-event endpoints for long-running work\n * (operator task progress, AIP chat streaming). `AegisClient.stream()`\n * yields parsed events as an async iterator:\n *\n * ```ts\n * for await (const ev of client.stream(\"/operator/tasks/t1/events\")) {\n * if (ev.event === \"progress\") console.log(JSON.parse(ev.data));\n * }\n * ```\n */\n\nexport interface SseEvent {\n /** Event name — defaults to \"message\" per the SSE spec. */\n event: string;\n /** Raw data payload (multi-line `data:` fields joined with `\\n`). */\n data: string;\n id?: string;\n retry?: number;\n}\n\n/** Parse a `text/event-stream` byte stream into events (spec-compliant subset). */\nexport async function* parseSseStream(\n stream: ReadableStream<Uint8Array>,\n): AsyncGenerator<SseEvent, void, undefined> {\n const reader = stream.getReader();\n const decoder = new TextDecoder();\n let buffer = \"\";\n\n let event = \"\";\n let data: string[] = [];\n let id: string | undefined;\n let retry: number | undefined;\n\n const flush = (): SseEvent | null => {\n // Per the SSE spec, dispatch is aborted when the data buffer is empty\n // (id/retry are sticky and alone never produce an event).\n if (data.length === 0) {\n event = \"\";\n return null;\n }\n const ev: SseEvent = { event: event || \"message\", data: data.join(\"\\n\") };\n if (id !== undefined) ev.id = id;\n if (retry !== undefined) ev.retry = retry;\n event = \"\";\n data = [];\n return ev;\n };\n\n const handleLine = (line: string): SseEvent | null => {\n if (line === \"\") return flush();\n if (line.startsWith(\":\")) return null; // comment / keep-alive\n const colon = line.indexOf(\":\");\n const field = colon === -1 ? line : line.slice(0, colon);\n let value = colon === -1 ? \"\" : line.slice(colon + 1);\n if (value.startsWith(\" \")) value = value.slice(1);\n switch (field) {\n case \"event\":\n event = value;\n break;\n case \"data\":\n data.push(value);\n break;\n case \"id\":\n id = value;\n break;\n case \"retry\": {\n const n = Number(value);\n if (Number.isFinite(n)) retry = n;\n break;\n }\n }\n return null;\n };\n\n try {\n for (;;) {\n const { done, value } = await reader.read();\n if (done) break;\n buffer += decoder.decode(value, { stream: true });\n let newline: number;\n while ((newline = buffer.search(/\\r\\n|\\n|\\r/)) !== -1) {\n const line = buffer.slice(0, newline);\n buffer = buffer.slice(newline + (buffer[newline] === \"\\r\" && buffer[newline + 1] === \"\\n\" ? 2 : 1));\n const ev = handleLine(line);\n if (ev) yield ev;\n }\n }\n // Stream ended — flush a trailing event without a blank-line terminator.\n if (buffer) handleLine(buffer);\n const tail = flush();\n if (tail) yield tail;\n } finally {\n reader.releaseLock();\n }\n}\n","import type { Transport } from \"../transport\";\nimport type { DevMode, TokenPair, WhoAmI } from \"../types\";\n\nexport interface LoginOptions {\n totpCode?: string;\n /** Attach the issued JWT to the client for subsequent calls (default true). */\n attach?: boolean;\n}\n\n/** `client.auth.*` — login, refresh, whoami, dev-mode. */\nexport class AuthResource {\n constructor(\n private readonly t: Transport,\n private readonly attach: (pair: TokenPair) => void,\n ) {}\n\n async login(username: string, password: string, opts: LoginOptions = {}): Promise<TokenPair> {\n const body: Record<string, unknown> = { username, password };\n if (opts.totpCode) body.totp_code = opts.totpCode;\n const pair = await this.t.request<TokenPair>(\"POST\", \"/auth/login\", { json: body });\n if (opts.attach !== false) this.attach(pair);\n return pair;\n }\n\n /** Rotate a refresh token explicitly (`POST /auth/refresh`). The client\n * already does this transparently on 401 — call this only for manual\n * flows. Attaches the new pair unless `attach: false`. */\n async refresh(refreshToken: string, opts: { attach?: boolean } = {}): Promise<TokenPair> {\n const pair = await this.t.request<TokenPair>(\"POST\", \"/auth/refresh\", {\n json: { refresh_token: refreshToken },\n });\n if (opts.attach !== false) this.attach(pair);\n return pair;\n }\n\n me(): Promise<WhoAmI> {\n return this.t.request<WhoAmI>(\"GET\", \"/auth/me\");\n }\n\n /** Activate a vendor dev-mode session; requires the `vendor` role. */\n enableDevMode(password: string): Promise<DevMode> {\n return this.t.request<DevMode>(\"POST\", \"/me/dev-mode\", { json: { password } });\n }\n}\n","import type { Transport } from \"../transport\";\nimport type { Json, Permission, Role, User } from \"../types\";\n\nclass UsersResource {\n constructor(private readonly t: Transport) {}\n list(): Promise<User[]> {\n return this.t.request(\"GET\", \"/iam/users\");\n }\n get(userId: string): Promise<User> {\n return this.t.request(\"GET\", `/iam/users/${userId}`);\n }\n}\n\nclass RolesResource {\n constructor(private readonly t: Transport) {}\n list(): Promise<Role[]> {\n return this.t.request(\"GET\", \"/iam/roles\");\n }\n get(roleId: string): Promise<Role> {\n return this.t.request(\"GET\", `/iam/roles/${roleId}`);\n }\n}\n\nexport class GroupsResource {\n constructor(private readonly t: Transport) {}\n list<T = Json>(opts: { limit?: number; offset?: number } = {}): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/iam/groups\", { params: opts });\n }\n get<T = Json>(groupId: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/iam/groups/${groupId}`);\n }\n create<T = Json>(name: string, description?: string): Promise<T> {\n return this.t.request<T>(\"POST\", \"/iam/groups\", { json: { name, description } });\n }\n update<T = Json>(groupId: string, patch: { name?: string; description?: string }): Promise<T> {\n return this.t.request<T>(\"PATCH\", `/iam/groups/${groupId}`, { json: patch });\n }\n delete(groupId: string): Promise<void> {\n return this.t.request(\"DELETE\", `/iam/groups/${groupId}`);\n }\n listMembers<T = Json>(groupId: string): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", `/iam/groups/${groupId}/members`);\n }\n addMember<T = Json>(groupId: string, userId: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/iam/groups/${groupId}/members`, { json: { user_id: userId } });\n }\n removeMember(groupId: string, userId: string): Promise<void> {\n return this.t.request(\"DELETE\", `/iam/groups/${groupId}/members/${userId}`);\n }\n listForUser<T = Json>(userId: string): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", `/iam/users/${userId}/groups`);\n }\n}\n\nclass PermissionsResource {\n constructor(private readonly t: Transport) {}\n list(resource?: string): Promise<Permission[]> {\n return this.t.request(\"GET\", \"/iam/permissions\", { params: { resource } });\n }\n}\n\nclass NavResource {\n constructor(private readonly t: Transport) {}\n tree<T = Json>(asRoleId?: string): Promise<T> {\n return this.t.request<T>(\"GET\", \"/iam/nav\", { params: { as_role_id: asRoleId } });\n }\n}\n\n/** `client.iam.*` — users, roles, groups, permissions, nav tree. */\nexport class IamResource {\n readonly users: UsersResource;\n readonly roles: RolesResource;\n readonly groups: GroupsResource;\n readonly permissions: PermissionsResource;\n readonly nav: NavResource;\n\n constructor(t: Transport) {\n this.users = new UsersResource(t);\n this.roles = new RolesResource(t);\n this.groups = new GroupsResource(t);\n this.permissions = new PermissionsResource(t);\n this.nav = new NavResource(t);\n }\n}\n","import type { Transport } from \"../transport\";\nimport type { OsdkToken, OsdkTokenWithSecret } from \"../types\";\n\n/** `client.osdk.*` — OSDK application token management (Governance → OSDK). */\nexport class OsdkResource {\n constructor(private readonly t: Transport) {}\n\n list(): Promise<OsdkToken[]> {\n return this.t.request(\"GET\", \"/governance/tokens\");\n }\n get(tokenId: string): Promise<OsdkToken> {\n return this.t.request(\"GET\", `/governance/tokens/${tokenId}`);\n }\n /** Returns the plaintext secret ONCE — stash it like any other secret. */\n create(name: string, scopes: string[], expiresAt?: string): Promise<OsdkTokenWithSecret> {\n return this.t.request(\"POST\", \"/governance/tokens\", {\n json: { name, scopes, expires_at: expiresAt },\n });\n }\n rotate(tokenId: string): Promise<OsdkTokenWithSecret> {\n return this.t.request(\"POST\", `/governance/tokens/${tokenId}/rotate`);\n }\n revoke(tokenId: string): Promise<void> {\n return this.t.request(\"DELETE\", `/governance/tokens/${tokenId}`);\n }\n}\n","import type { Transport } from \"../transport\";\nimport type { Json } from \"../types\";\n\nexport interface OperatorTaskListOptions {\n status?: string;\n project_id?: string;\n origin?: string;\n mine?: boolean;\n limit?: number;\n}\n\nexport interface OperatorTaskCreate {\n prompt_text: string;\n title?: string;\n project_id?: string;\n priority?: string;\n parent_task_id?: string;\n markings?: string[];\n}\n\nclass OperatorTasksResource {\n constructor(private readonly t: Transport) {}\n\n list<T = Json>(opts: OperatorTaskListOptions = {}): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/operator/tasks\", { params: { ...opts } });\n }\n get<T = Json>(taskId: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/operator/tasks/${taskId}`);\n }\n create<T = Json>(input: OperatorTaskCreate): Promise<T> {\n return this.t.request<T>(\"POST\", \"/operator/tasks\", { json: input });\n }\n cancel<T = Json>(taskId: string): Promise<T> {\n return this.t.request<T>(\"PATCH\", `/operator/tasks/${taskId}`, { json: { action: \"cancel\" } });\n }\n retry<T = Json>(taskId: string): Promise<T> {\n return this.t.request<T>(\"PATCH\", `/operator/tasks/${taskId}`, { json: { action: \"retry\" } });\n }\n reprioritize<T = Json>(taskId: string, priority: string): Promise<T> {\n return this.t.request<T>(\"PATCH\", `/operator/tasks/${taskId}`, {\n json: { action: \"reprioritize\", priority },\n });\n }\n}\n\n/** `client.operator.*` — operator task queue (NL kanban). */\nexport class OperatorResource {\n readonly tasks: OperatorTasksResource;\n constructor(t: Transport) {\n this.tasks = new OperatorTasksResource(t);\n }\n}\n","import type { Transport } from \"../transport\";\nimport type { Json } from \"../types\";\n\nclass ObjectsResource {\n constructor(private readonly t: Transport) {}\n\n get<T = Json>(objectId: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/ontology/nodes/${objectId}`);\n }\n list<T = Json>(kind: string, opts: { limit?: number; offset?: number; q?: string } = {}): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/ontology/nodes\", { params: { node_type: kind, ...opts } });\n }\n create<T = Json>(kind: string, properties: Json, name?: string): Promise<T> {\n return this.t.request<T>(\"POST\", \"/ontology/nodes\", {\n json: { kind, properties, name },\n });\n }\n createMany<T = Json>(kind: string, items: Json[], markings?: string[]): Promise<T> {\n return this.t.request<T>(\"POST\", \"/ontology/nodes/bulk\", { json: { kind, items, markings } });\n }\n delete<T = Json>(objectId: string): Promise<T> {\n return this.t.request<T>(\"DELETE\", `/ontology/nodes/${objectId}`);\n }\n bulkDelete<T = Json>(opts: {\n object_ids?: string[];\n kind?: string;\n dry_run?: boolean;\n confirm?: boolean;\n expected_count?: number;\n }): Promise<T> {\n return this.t.request<T>(\"POST\", \"/ontology/nodes/bulk-delete\", { json: opts });\n }\n links<T = Json>(objectId: string): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", `/entities/${objectId}/links`);\n }\n history<T = Json>(objectId: string): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", `/lineage/by-asset/${objectId}`);\n }\n queryTimeseries<T = Json>(\n objectId: string,\n propertyName: string,\n opts: { from_time?: string; to_time?: string; max_points?: number } = {},\n ): Promise<T> {\n return this.t.request<T>(\n \"POST\",\n `/ontology/nodes/${objectId}/properties/${propertyName}/timeseries-query`,\n { json: opts },\n );\n }\n appendTimeseries<T = Json>(objectId: string, propertyName: string, points: Json[]): Promise<T> {\n return this.t.request<T>(\n \"POST\",\n `/ontology/nodes/${objectId}/properties/${propertyName}/timeseries/append`,\n { json: { points } },\n );\n }\n}\n\nclass GraphResource {\n constructor(private readonly t: Transport) {}\n expand<T = Json>(seedId: string, opts: { depth?: number; limit?: number } = {}): Promise<T> {\n return this.t.request<T>(\"GET\", `/entities/${seedId}/graph`, { params: opts });\n }\n}\n\nclass ExplorerResource {\n constructor(private readonly t: Transport) {}\n histogram<T = Json>(property: string, filters?: Json): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/entities/aggregate\", {\n params: { property, ...(filters as Record<string, string> | undefined) },\n });\n }\n timeline<T = Json>(filters?: Json, bin?: string): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/entities/timeline\", {\n params: { bin, ...(filters as Record<string, string> | undefined) },\n });\n }\n}\n\nexport interface ObjectTypeWrite {\n title_property: string;\n properties: Json;\n display_name?: string;\n enforce?: boolean;\n markings?: string[];\n}\n\nclass ObjectTypesResource {\n constructor(private readonly t: Transport) {}\n get<T = Json>(kind: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/ontology/object-types/${kind}`);\n }\n create<T = Json>(kind: string, input: ObjectTypeWrite): Promise<T> {\n return this.t.request<T>(\"POST\", \"/ontology/object-types\", { json: { kind, ...input } });\n }\n update<T = Json>(kind: string, input: ObjectTypeWrite): Promise<T> {\n return this.t.request<T>(\"PUT\", `/ontology/object-types/${kind}`, { json: input });\n }\n delete<T = Json>(kind: string): Promise<T> {\n return this.t.request<T>(\"DELETE\", `/ontology/object-types/${kind}`);\n }\n}\n\nclass LinkTypesResource {\n constructor(private readonly t: Transport) {}\n declare<T = Json>(input: {\n source_kind: string;\n target_kind: string;\n relation: string;\n cardinality: string;\n inverse_label?: string;\n }): Promise<T> {\n return this.t.request<T>(\"POST\", \"/ontology/link-types\", { json: input });\n }\n delete<T = Json>(edgeId: string): Promise<T> {\n return this.t.request<T>(\"DELETE\", `/ontology/link-types/${edgeId}`);\n }\n}\n\n/** `client.ontology.*` — objects, graph, explorer, object/link types, OSDK manifest. */\nexport class OntologyResource {\n readonly objects: ObjectsResource;\n readonly graph: GraphResource;\n readonly explorer: ExplorerResource;\n readonly objectTypes: ObjectTypesResource;\n readonly linkTypes: LinkTypesResource;\n\n constructor(private readonly t: Transport) {\n this.objects = new ObjectsResource(t);\n this.graph = new GraphResource(t);\n this.explorer = new ExplorerResource(t);\n this.objectTypes = new ObjectTypesResource(t);\n this.linkTypes = new LinkTypesResource(t);\n }\n\n /** Shortcut — same as `objectTypes.get(kind)`. */\n objectType(kind: string): Promise<Json> {\n return this.objectTypes.get(kind);\n }\n osdkManifest<T = Json>(): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/ontology/osdk/manifest\");\n }\n osdkFunctions<T = Json>(): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/ontology/osdk/manifest/functions\");\n }\n osdkGenerate<T = Json>(lang?: string): Promise<T> {\n return this.t.request<T>(\"GET\", \"/ontology/osdk/generate\", { params: { lang } });\n }\n}\n","import type { Transport } from \"../transport\";\nimport type { Json } from \"../types\";\n\nclass FlowsResource {\n constructor(private readonly t: Transport) {}\n list<T = Json>(): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/campaign/flows\");\n }\n get<T = Json>(flowId: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/campaign/flows/${flowId}`);\n }\n runs<T = Json>(flowId: string): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", `/campaign/flows/${flowId}/runs`);\n }\n patch<T = Json>(flowId: string, payload: Json): Promise<T> {\n return this.t.request<T>(\"PATCH\", `/campaign/flows/${flowId}`, { json: payload });\n }\n run<T = Json>(flowId: string, dryRun?: boolean): Promise<T> {\n return this.t.request<T>(\"POST\", `/campaign/flows/${flowId}/run`, {\n json: dryRun === undefined ? {} : { dry_run: dryRun },\n });\n }\n}\n\nclass AgentsResource {\n constructor(private readonly t: Transport) {}\n list<T = Json>(): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/campaign/agents\");\n }\n get<T = Json>(agentId: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/campaign/agents/${agentId}`);\n }\n patch<T = Json>(agentId: string, config: Json): Promise<T> {\n return this.t.request<T>(\"PATCH\", `/campaign/agents/${agentId}`, { json: config });\n }\n manualRun<T = Json>(agentId: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/campaign/agents/${agentId}/runs`);\n }\n runs<T = Json>(agentId: string): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", `/campaign/agents/${agentId}/runs`);\n }\n}\n\nclass ModelsResource {\n constructor(private readonly t: Transport) {}\n catalog<T = Json>(provider?: string): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/platform/v25/aip/models/catalog\", { params: { provider } });\n }\n defaults<T = Json>(): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/platform/v25/aip/models/defaults\");\n }\n setDefault<T = Json>(input: {\n provider: string;\n model: string;\n purpose?: string;\n provider_id?: string;\n }): Promise<T> {\n return this.t.request<T>(\"PUT\", \"/platform/v25/aip/models/defaults\", { json: input });\n }\n}\n\nclass BudgetResource {\n constructor(private readonly t: Transport) {}\n get<T = Json>(): Promise<T> {\n return this.t.request<T>(\"GET\", \"/platform/v23/llm-budget\");\n }\n set<T = Json>(tokensPerMonth: number): Promise<T> {\n return this.t.request<T>(\"PUT\", \"/platform/v23/llm-budget\", {\n json: { tokens_per_month: tokensPerMonth },\n });\n }\n}\n\n/** `client.aip.*` — flows, agents, model catalog/defaults, LLM budget. */\nexport class AipResource {\n readonly flows: FlowsResource;\n readonly agents: AgentsResource;\n readonly models: ModelsResource;\n readonly budget: BudgetResource;\n\n constructor(t: Transport) {\n this.flows = new FlowsResource(t);\n this.agents = new AgentsResource(t);\n this.models = new ModelsResource(t);\n this.budget = new BudgetResource(t);\n }\n}\n","import type { Transport } from \"../transport\";\nimport type { Json } from \"../types\";\n\nexport interface FunctionCreate {\n slug: string;\n display_name: string;\n source: string;\n language?: string;\n signature?: Json;\n description?: string;\n markings?: string[];\n classification_level?: string;\n project_id?: string;\n strict_signature?: boolean;\n allow_network?: boolean;\n}\n\nexport interface PullRequestCreate {\n title: string;\n proposed_source: string;\n description?: string;\n proposed_signature?: Json;\n proposed_language?: string;\n required_approvers?: number;\n target_branch?: string;\n}\n\n/** `client.functions.*` — Code Functions (/platform/v26/functions). */\nexport class FunctionsResource {\n constructor(private readonly t: Transport) {}\n\n list<T = Json>(): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/platform/v26/functions\");\n }\n get<T = Json>(slug: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/platform/v26/functions/${slug}`);\n }\n create<T = Json>(input: FunctionCreate): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v26/functions\", { json: input });\n }\n invoke<T = Json>(slug: string, inputs?: Json, opts: { branch?: string; draft?: boolean } = {}): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v26/functions/${slug}/invoke`, {\n json: { inputs: inputs ?? {}, ...opts },\n });\n }\n tests<T = Json>(slug: string): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", `/platform/v26/functions/${slug}/tests`);\n }\n addTest<T = Json>(slug: string, name: string, inputs?: Json, expectedContains?: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v26/functions/${slug}/tests`, {\n json: { name, inputs, expected_contains: expectedContains },\n });\n }\n runTest<T = Json>(slug: string, testId: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v26/functions/${slug}/tests/${testId}/run`);\n }\n runTests<T = Json>(slug: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v26/functions/${slug}/test`);\n }\n publish<T = Json>(slug: string, branch?: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v26/functions/${slug}/publish`, {\n json: branch ? { branch } : {},\n });\n }\n versions<T = Json>(slug: string): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", `/platform/v26/functions/${slug}/versions`);\n }\n pullRequests<T = Json>(slug: string, status?: string): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", `/platform/v26/functions/${slug}/pull-requests`, {\n params: { status },\n });\n }\n openPullRequest<T = Json>(slug: string, input: PullRequestCreate): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v26/functions/${slug}/pull-requests`, { json: input });\n }\n updatePullRequest<T = Json>(slug: string, prId: string, patch: Json): Promise<T> {\n return this.t.request<T>(\"PATCH\", `/platform/v26/functions/${slug}/pull-requests/${prId}`, {\n json: patch,\n });\n }\n runPrCi<T = Json>(slug: string, prId: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v26/functions/${slug}/pull-requests/${prId}/ci`);\n }\n reviewPullRequest<T = Json>(slug: string, prId: string, decision: string, comment?: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v26/functions/${slug}/pull-requests/${prId}/reviews`, {\n json: { decision, comment },\n });\n }\n mergePullRequest<T = Json>(slug: string, prId: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v26/functions/${slug}/pull-requests/${prId}/merge`);\n }\n}\n\n/** `client.codeRepositories.*` — repos/branches around Code Functions. */\nexport class CodeRepositoriesResource {\n constructor(private readonly t: Transport) {}\n\n list<T = Json>(): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/platform/v26/code-repositories\");\n }\n create<T = Json>(input: {\n slug: string;\n display_name: string;\n description?: string;\n default_branch?: string;\n }): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v26/code-repositories\", { json: input });\n }\n branches<T = Json>(repoId: string): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", `/platform/v26/code-repositories/${repoId}/branches`);\n }\n createBranch<T = Json>(repoId: string, name: string, description?: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v26/code-repositories/${repoId}/branches`, {\n json: { name, description },\n });\n }\n functions<T = Json>(repoId: string): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", `/platform/v26/code-repositories/${repoId}/functions`);\n }\n assignFunction<T = Json>(repoId: string, slug: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v26/code-repositories/${repoId}/functions`, {\n json: { slug },\n });\n }\n runCi<T = Json>(repoId: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v26/code-repositories/${repoId}/ci`);\n }\n mergeBranch<T = Json>(repoId: string, sourceBranch: string, into?: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v26/code-repositories/${repoId}/merge`, {\n json: { source_branch: sourceBranch, into },\n });\n }\n}\n","import type { Transport } from \"../transport\";\nimport type { Json } from \"../types\";\n\nexport type TransactionKind = \"SNAPSHOT\" | \"APPEND\" | \"UPDATE\" | \"DELETE\";\n\n/** `client.datasets.*` — datasets, branches, transactions, classification, markings. */\nexport class DatasetsResource {\n constructor(private readonly t: Transport) {}\n\n list<T = Json>(): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/datasets\");\n }\n get<T = Json>(name: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/datasets/${name}`);\n }\n sample<T = Json>(name: string, limit?: number): Promise<T> {\n return this.t.request<T>(\"GET\", `/datasets/${name}/sample`, { params: { limit } });\n }\n\n listBranches<T = Json>(name: string): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", `/datasets/${name}/branches`);\n }\n createBranch<T = Json>(\n name: string,\n branchName: string,\n opts: {\n from_branch?: string;\n from_asset_id?: string;\n description?: string;\n project_id?: string;\n } = {},\n ): Promise<T> {\n return this.t.request<T>(\"POST\", `/datasets/${name}/branches`, {\n json: { branch_name: branchName, ...opts },\n });\n }\n deactivateBranch<T = Json>(name: string, branchName: string): Promise<T> {\n return this.t.request<T>(\"DELETE\", `/datasets/${name}/branches/${branchName}`);\n }\n\n listTransactions<T = Json>(name: string, branch?: string): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", `/datasets/${name}/transactions`, { params: { branch } });\n }\n beginTransaction<T = Json>(name: string, kind: TransactionKind, branch?: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/datasets/${name}/transactions`, { json: { kind, branch } });\n }\n commitTransaction<T = Json>(name: string, txId: string, inputPayload: Json): Promise<T> {\n return this.t.request<T>(\"POST\", `/datasets/${name}/transactions/${txId}/commit`, {\n json: inputPayload,\n });\n }\n abortTransaction<T = Json>(name: string, txId: string, reason?: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/datasets/${name}/transactions/${txId}/abort`, {\n json: { reason },\n });\n }\n\n mergeFastForward<T = Json>(name: string, source: string, into: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/datasets/${name}/branches/${source}/merge`, {\n json: { into },\n });\n }\n /** 409 responses carry the conflict body in `AegisAPIError.payload`. */\n mergeThreeWay<T = Json>(name: string, source: string, into: string, resolutions?: Json): Promise<T> {\n return this.t.request<T>(\"POST\", `/datasets/${name}/branches/${source}/merge3`, {\n json: { into, resolutions },\n });\n }\n\n getClassification<T = Json>(name: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/datasets/${name}/classification`);\n }\n setClassification<T = Json>(\n name: string,\n patch: { data_classification?: string; file_classification?: string },\n ): Promise<T> {\n return this.t.request<T>(\"PATCH\", `/datasets/${name}/classification`, { json: patch });\n }\n\n listMarkings<T = Json>(name: string): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", `/datasets/${name}/markings`);\n }\n applyMarking<T = Json>(name: string, markingId: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/datasets/${name}/markings`, { json: { marking_id: markingId } });\n }\n removeMarking(name: string, markingId: string): Promise<void> {\n return this.t.request(\"DELETE\", `/datasets/${name}/markings/${markingId}`);\n }\n}\n","import type { Transport } from \"../transport\";\r\nimport type { Json } from \"../types\";\r\n\r\n/** `client.geo.*` — geospatial read layer over the ontology (/api/v1/geo). */\r\nexport class GeoResource {\r\n constructor(private readonly t: Transport) {}\r\n nodes<T = Json>(\r\n opts: { node_type?: string; since_minutes?: number; limit?: number; bbox?: string } = {},\r\n ): Promise<T> {\r\n return this.t.request<T>(\"GET\", \"/api/v1/geo/nodes\", { params: opts });\r\n }\r\n nodeTypes<T = Json>(): Promise<T> {\r\n return this.t.request<T>(\"GET\", \"/api/v1/geo/node-types\");\r\n }\r\n sources<T = Json>(): Promise<T> {\r\n return this.t.request<T>(\"GET\", \"/api/v1/geo/sources\");\r\n }\r\n edges<T = Json>(nodeIds: string[], relationTypes?: string[]): Promise<T> {\r\n return this.t.request<T>(\"GET\", \"/api/v1/geo/edges\", {\r\n params: { node_ids: nodeIds.join(\",\"), relation_types: relationTypes?.join(\",\") },\r\n });\r\n }\r\n /** Catalog of keyless reference layers (IBGE limits, CNES health, …). */\r\n referenceLayers<T = Json>(): Promise<T> {\r\n return this.t.request<T>(\"GET\", \"/api/v1/geo/reference-layers\");\r\n }\r\n /** GeoJSON of one reference layer (resilient keyless proxy). */\r\n referenceLayer<T = Json>(layerId: string, opts: { uf?: string; municipio?: string } = {}): Promise<T> {\r\n return this.t.request<T>(\"GET\", `/api/v1/geo/reference-layers/${encodeURIComponent(layerId)}`, {\r\n params: opts,\r\n });\r\n }\r\n zones<T = Json>(): Promise<T> {\r\n return this.t.request<T>(\"GET\", \"/api/v1/geo/zones\");\r\n }\r\n importZones<T = Json>(\r\n features: Json[],\r\n opts: { default_zone_type?: string; extruded_height?: number; source_name?: string } = {},\r\n ): Promise<T> {\r\n return this.t.request<T>(\"POST\", \"/api/v1/geo/zones/import\", { json: { features, ...opts } });\r\n }\r\n deleteZone(zoneId: string): Promise<void> {\r\n return this.t.request(\"DELETE\", `/api/v1/geo/zones/${zoneId}`);\r\n }\r\n\r\n // ── Reference Layer Builder (the AEGIS \"My Maps\") ──────────────────────\r\n //\r\n // Each layer is one editable dataset + one DAG board + one dedicated\r\n // node_type. Publishing runs the board; the materialized nodes show up on\r\n // their own under the map's \"Reference layers\" tab.\r\n // Read: `security.geo.view`; write: `security.geo.camada.manage`.\r\n\r\n /** Builder layers of the tenant, grouped by \"map\" (the project). */\r\n layers<T = Json>(): Promise<T> {\r\n return this.t.request<T>(\"GET\", \"/api/v1/geo/layers\");\r\n }\r\n /** Creates a layer (empty inline dataset + published board). The\r\n * `node_type` derives from the name and is IMMUTABLE. */\r\n createLayer<T = Json>(input: {\r\n nome: string;\r\n mapa?: string;\r\n descricao?: string;\r\n }): Promise<T> {\r\n return this.t.request<T>(\"POST\", \"/api/v1/geo/layers\", { json: input });\r\n }\r\n layerFeatures<T = Json>(boardId: string): Promise<T> {\r\n return this.t.request<T>(\"GET\", `/api/v1/geo/layers/${boardId}/features`);\r\n }\r\n /** Saves the drawing as a versioned SNAPSHOT. `geometry` is GeoJSON\r\n * `[lng,lat]`; `geo_style` travels PER FEATURE (colour/alpha/extrusion). */\r\n saveLayerFeatures<T = Json>(boardId: string, rows: Json[]): Promise<T> {\r\n return this.t.request<T>(\"PUT\", `/api/v1/geo/layers/${boardId}/features`, {\r\n json: { rows },\r\n });\r\n }\r\n /** Runs the board and RECONCILES — a feature deleted in the builder leaves\r\n * the map (the engine is upsert-only). */\r\n publishLayer<T = Json>(boardId: string): Promise<T> {\r\n return this.t.request<T>(\"POST\", `/api/v1/geo/layers/${boardId}/publish`);\r\n }\r\n /** Renames / regroups. Never changes the `node_type`; `mapa: \"\"` ungroups. */\r\n patchLayer<T = Json>(\r\n boardId: string,\r\n changes: { nome?: string; mapa?: string; descricao?: string },\r\n ): Promise<T> {\r\n return this.t.request<T>(\"PATCH\", `/api/v1/geo/layers/${boardId}`, { json: changes });\r\n }\r\n /** Deletes the whole layer: materialized nodes + dataset + board. */\r\n deleteLayer<T = Json>(boardId: string): Promise<T> {\r\n return this.t.request<T>(\"DELETE\", `/api/v1/geo/layers/${boardId}`);\r\n }\r\n}\r\n\r\n/** `client.mapTemplates.*` — reusable map specs (v22).\r\n * (The Python SDK's stdout `Map` builder is sandbox-IDE-only and is not ported.) */\r\nexport class MapTemplatesResource {\r\n constructor(private readonly t: Transport) {}\r\n async list(): Promise<Json[]> {\r\n const payload = await this.t.request<Json>(\"GET\", \"/platform/v22/map-templates\");\r\n return (payload.items as Json[]) ?? [];\r\n }\r\n get<T = Json>(templateId: string): Promise<T> {\r\n return this.t.request<T>(\"GET\", `/platform/v22/map-templates/${templateId}`);\r\n }\r\n create<T = Json>(name: string, spec: Json, description = \"\"): Promise<T> {\r\n return this.t.request<T>(\"POST\", \"/platform/v22/map-templates\", {\r\n json: { name, spec, description },\r\n });\r\n }\r\n instantiate<T = Json>(templateId: string, variables?: Json): Promise<T> {\r\n return this.t.request<T>(\"POST\", `/platform/v22/map-templates/${templateId}/instantiate`, {\r\n json: { variables: variables ?? {} },\r\n });\r\n }\r\n /** Returns the raw SVG markup (non-JSON body). */\r\n exportSvg(templateId: string): Promise<string> {\r\n return this.t.request(\"GET\", `/platform/v22/map-templates/${templateId}/export.svg`);\r\n }\r\n}\r\n\r\n/** `client.media.*` — media sets + item metadata (bytes live in MinIO via `uri`). */\r\nexport class MediaResource {\r\n constructor(private readonly t: Transport) {}\r\n listSets<T = Json>(): Promise<T[]> {\r\n return this.t.request<T[]>(\"GET\", \"/platform/v23/media/sets\");\r\n }\r\n createSet<T = Json>(input: {\r\n slug: string;\r\n display_name: string;\r\n /** image | video | audio | document | mixed */\r\n media_type: string;\r\n bucket?: string;\r\n markings?: string[];\r\n project_id?: string;\r\n }): Promise<T> {\r\n return this.t.request<T>(\"POST\", \"/platform/v23/media/sets\", { json: input });\r\n }\r\n deleteSet<T = Json>(setId: string): Promise<T> {\r\n return this.t.request<T>(\"DELETE\", `/platform/v23/media/sets/${setId}`);\r\n }\r\n listItems<T = Json>(setId: string): Promise<T[]> {\r\n return this.t.request<T[]>(\"GET\", `/platform/v23/media/sets/${setId}/items`);\r\n }\r\n /** Metadata only — no file bytes are uploaded (pass a pre-supplied `uri`). */\r\n addItem<T = Json>(\r\n setId: string,\r\n input: {\r\n filename: string;\r\n content_type?: string;\r\n size_bytes?: number;\r\n uri?: string;\r\n meta?: Json;\r\n },\r\n ): Promise<T> {\r\n return this.t.request<T>(\"POST\", `/platform/v23/media/sets/${setId}/items`, { json: input });\r\n }\r\n}\r\n\r\n/** `client.docs.*` — platform documentation tree. */\r\nexport class DocsResource {\r\n constructor(private readonly t: Transport) {}\r\n tree<T = Json>(): Promise<T> {\r\n return this.t.request<T>(\"GET\", \"/docs/tree\");\r\n }\r\n read<T = Json>(path: string): Promise<T> {\r\n return this.t.request<T>(\"GET\", \"/docs/content\", { params: { path } });\r\n }\r\n}\r\n\r\n/** `client.pages.*` — registered pages (v23 page registry). */\r\nexport class PagesResource {\r\n constructor(private readonly t: Transport) {}\r\n list<T = Json>(opts: { status?: string; scope?: string; perm?: string } = {}): Promise<T[]> {\r\n return this.t.request<T[]>(\"GET\", \"/platform/v23/pages\", { params: opts });\r\n }\r\n get<T = Json>(slug: string): Promise<T> {\r\n return this.t.request<T>(\"GET\", `/platform/v23/pages/${slug}`);\r\n }\r\n getConfig<T = Json>(slug: string): Promise<T> {\r\n return this.t.request<T>(\"GET\", `/platform/v23/pages/${slug}/config`);\r\n }\r\n create<T = Json>(input: {\r\n slug: string;\r\n title: string;\r\n route: string;\r\n status?: string;\r\n workspace_bindings?: Json[];\r\n marking_requirements?: string[];\r\n iam_perm_required?: string;\r\n config?: Json;\r\n }): Promise<T> {\r\n return this.t.request<T>(\"POST\", \"/platform/v23/pages\", { json: input });\r\n }\r\n update<T = Json>(slug: string, patch: Json): Promise<T> {\r\n return this.t.request<T>(\"PATCH\", `/platform/v23/pages/${slug}`, { json: patch });\r\n }\r\n /** Soft delete — page moves to status=archived. */\r\n delete<T = Json>(slug: string): Promise<T> {\r\n return this.t.request<T>(\"DELETE\", `/platform/v23/pages/${slug}`);\r\n }\r\n duplicate<T = Json>(slug: string): Promise<T> {\r\n return this.t.request<T>(\"POST\", `/platform/v23/pages/${slug}/duplicate`);\r\n }\r\n putConfig<T = Json>(slug: string, config: Json): Promise<T> {\r\n return this.t.request<T>(\"PUT\", `/platform/v23/pages/${slug}/config`, { json: { config } });\r\n }\r\n publish<T = Json>(slug: string): Promise<T> {\r\n return this.t.request<T>(\"POST\", `/platform/v23/pages/${slug}/publish`);\r\n }\r\n}\r\n\r\n/** `client.dossier.*` — async dossier generation (start → poll `get`). */\r\nexport class DossierResource {\r\n constructor(private readonly t: Transport) {}\r\n startGeneric<T = Json>(nodeId: string, purpose?: string): Promise<T> {\r\n return this.t.request<T>(\"POST\", `/ontology/nodes/${nodeId}/dossier`, {\r\n json: purpose ? { purpose } : {},\r\n });\r\n }\r\n /** Requires `anchor_node_id` or `node_ids`. */\r\n startComposite<T = Json>(input: {\r\n anchor_node_id?: string;\r\n node_ids?: string[];\r\n purpose?: string;\r\n correlate?: boolean;\r\n scene?: boolean;\r\n max_depth?: number;\r\n budget_nodes?: number;\r\n }): Promise<T> {\r\n if (!input.anchor_node_id && !input.node_ids?.length) {\r\n throw new Error(\"startComposite requires anchor_node_id or node_ids\");\r\n }\r\n return this.t.request<T>(\"POST\", \"/ontology/dossier/composite\", { json: input });\r\n }\r\n /** Poll until `status === \"done\"`; `result` is then populated. */\r\n get<T = Json>(taskId: string): Promise<T> {\r\n return this.t.request<T>(\"GET\", `/ontology/dossier/${taskId}`);\r\n }\r\n}\r\n\r\n/** `client.timeseries.*` — chart definitions + render (v23). */\r\nexport class TimeSeriesResource {\r\n constructor(private readonly t: Transport) {}\r\n list<T = Json>(): Promise<T[]> {\r\n return this.t.request<T[]>(\"GET\", \"/platform/v23/timeseries\");\r\n }\r\n create<T = Json>(input: {\r\n slug: string;\r\n display_name: string;\r\n node_type: string;\r\n /** e.g. `{ bucket: \"day\" | \"hour\" }` */\r\n config?: Json;\r\n markings?: string[];\r\n }): Promise<T> {\r\n return this.t.request<T>(\"POST\", \"/platform/v23/timeseries\", { json: input });\r\n }\r\n delete<T = Json>(chartId: string): Promise<T> {\r\n return this.t.request<T>(\"DELETE\", `/platform/v23/timeseries/${chartId}`);\r\n }\r\n render<T = Json>(chartId: string): Promise<T> {\r\n return this.t.request<T>(\"POST\", `/platform/v23/timeseries/${chartId}/render`);\r\n }\r\n}\r\n","import type { Transport } from \"../transport\";\r\nimport { buildUrl } from \"../transport\";\r\nimport type { Json } from \"../types\";\r\n\r\n/**\r\n * Body do `POST /public/v1/guest/{token}/fix` — uma leitura de GPS do visitante.\r\n * O backend avalia cerca/rota/destino (evaluate_fix) e devolve\r\n * inside_fence/arrived/deviated. Sem throttle e sem geofence-gate nesta rota.\r\n */\r\nexport interface GuestFix {\r\n lat: number;\r\n lng: number;\r\n accuracy?: number;\r\n /** ISO-8601; o backend usa \"agora\" se ausente. */\r\n ts?: string;\r\n /** Veredito de desvio do PRÓPRIO cliente (ex.: livetracker checando contra a\r\n * rota desenhada por ruas). O backend RELAIA à portaria (paridade legado);\r\n * ausente ⇒ o backend calcula pelo desvio da reta do token. */\r\n off_route?: boolean;\r\n}\r\n\r\n/** Body do `POST /{token}/document/object-sets/query`. */\r\nexport interface GuestObjectSetQuery {\r\n object_type: string;\r\n filter?: Json;\r\n order_by?: Json;\r\n /** 1..10000, default 200 no backend. */\r\n limit?: number;\r\n}\r\n\r\n/**\r\n * O transporte + a base URL. `mediaUrl()` precisa da base para montar um\r\n * `<img src>`; o AegisClient satisfaz isto (implementa Transport e expõe\r\n * `readonly baseUrl`).\r\n */\r\nexport interface PublicGuestTransport extends Transport {\r\n readonly baseUrl: string;\r\n}\r\n\r\n/**\r\n * `client.publicGuest.*` — o lado CONSUMIDOR do guest token público\r\n * (`/public/v1/guest/{token}/*`). Sem cookie e sem Authorization: o token\r\n * viaja no path; construa um client anônimo (`new AegisClient({ baseUrl })`).\r\n *\r\n * Erros mapeados pelo transporte: 404 (token inválido/expirado/revogado —\r\n * \"never leaks why\"), 403 (geofence-gate/ação não permitida — invoke),\r\n * 429 (throttle — invoke). Visita finalizada (chegou ao destino) → 410, que\r\n * cai em `AegisAPIError` com `statusCode === 410`.\r\n */\r\nexport class PublicGuestResource {\r\n constructor(private readonly t: PublicGuestTransport) {}\r\n\r\n private base(token: string): string {\r\n return `/public/v1/guest/${encodeURIComponent(token)}`;\r\n }\r\n\r\n /** Menu/resumo do token: label, subject, status, geo, ações permitidas. */\r\n menu<T = Json>(token: string): Promise<T> {\r\n return this.t.request<T>(\"GET\", this.base(token));\r\n }\r\n\r\n /** Reporta uma posição GPS; o backend avalia cerca/rota/destino. */\r\n fix<T = Json>(token: string, body: GuestFix): Promise<T> {\r\n return this.t.request<T>(\"POST\", `${this.base(token)}/fix`, { json: body });\r\n }\r\n\r\n /** Invoca uma ação permitida do token (ex.: abrir portão). */\r\n invoke<T = Json>(token: string, actionId: string, input: Json = {}): Promise<T> {\r\n return this.t.request<T>(\r\n \"POST\",\r\n `${this.base(token)}/actions/${encodeURIComponent(actionId)}`,\r\n { json: { input } },\r\n );\r\n }\r\n\r\n /**\r\n * Onda 2 — última posição do VISITANTE amarrado a um token de MORADOR\r\n * (`geo.live_ref`). Sem push: a SPA do morador faz polling desta rota. O\r\n * morador só vê ESSA visita (least-privilege). Retorna `{available, lat,\r\n * lng, ts, inside_fence, arrived, deviated, distance_to_target_m,\r\n * visit_status}`; `available:false` enquanto o visitante não mandou fix.\r\n */\r\n position<T = Json>(token: string): Promise<T> {\r\n return this.t.request<T>(\"GET\", `${this.base(token)}/position`);\r\n }\r\n\r\n /** Documento vinculado ao token (se `geo.document_id`). */\r\n document<T = Json>(token: string): Promise<T> {\r\n return this.t.request<T>(\"GET\", `${this.base(token)}/document`);\r\n }\r\n\r\n /** Consulta um object-set embutido no documento do token. */\r\n queryObjectSet<T = Json>(token: string, body: GuestObjectSetQuery): Promise<T> {\r\n return this.t.request<T>(\r\n \"POST\",\r\n `${this.base(token)}/document/object-sets/query`,\r\n { json: body },\r\n );\r\n }\r\n\r\n /** Um nó da ontologia referenciado pelo documento (mascarado por ABAC). */\r\n documentNode<T = Json>(token: string, nodeId: string): Promise<T> {\r\n return this.t.request<T>(\"GET\", `${this.base(token)}/document/node`, {\r\n params: { node_id: nodeId },\r\n });\r\n }\r\n\r\n /** Descritor da Page vinculada ao token (`geo.page_slug`). */\r\n page<T = Json>(token: string, slug: string): Promise<T> {\r\n return this.t.request<T>(\"GET\", `${this.base(token)}/pages/${encodeURIComponent(slug)}`);\r\n }\r\n\r\n /** Avalia as variáveis da Page (com overrides só de variáveis estáticas). */\r\n evaluatePage<T = Json>(token: string, slug: string, overrides: Json = {}): Promise<T> {\r\n return this.t.request<T>(\r\n \"POST\",\r\n `${this.base(token)}/pages/${encodeURIComponent(slug)}/evaluate`,\r\n { json: { overrides } },\r\n );\r\n }\r\n\r\n /**\r\n * URL absoluta de um objeto de mídia do documento (bytes servidos com\r\n * `Cache-Control: private`). Retorna string p/ `<img src>`/`<a href>` —\r\n * NÃO faz request (o transporte é JSON-cêntrico). A `key` deve começar\r\n * com `notepad/{doc_id}/` (validado no backend).\r\n */\r\n mediaUrl(token: string, key: string): string {\r\n return buildUrl(this.t.baseUrl, `${this.base(token)}/media`, { key });\r\n }\r\n}\r\n","import type { Transport } from \"../transport\";\r\nimport type { Json } from \"../types\";\r\n\r\nclass AlertFeedsResource {\r\n constructor(private readonly t: Transport) {}\r\n list<T = Json>(): Promise<T[]> {\r\n return this.t.request<T[]>(\"GET\", \"/alerts/feeds\");\r\n }\r\n create<T = Json>(name: string, filters: Json, cadenceSeconds = 300): Promise<T> {\r\n return this.t.request<T>(\"POST\", \"/alerts/feeds\", {\r\n json: { name, filters, cadence_seconds: cadenceSeconds },\r\n });\r\n }\r\n delete(feedId: string): Promise<void> {\r\n return this.t.request(\"DELETE\", `/alerts/feeds/${feedId}`);\r\n }\r\n alerts<T = Json>(): Promise<T[]> {\r\n return this.t.request<T[]>(\"GET\", \"/alerts/feeds/alerts\");\r\n }\r\n acknowledge(alertId: string): Promise<void> {\r\n return this.t.request(\"POST\", `/alerts/feeds/${alertId}/acknowledge`);\r\n }\r\n}\r\n\r\nclass AlertWatchesResource {\r\n constructor(private readonly t: Transport) {}\r\n list<T = Json>(): Promise<T[]> {\r\n return this.t.request<T[]>(\"GET\", \"/alerts/watches\");\r\n }\r\n create<T = Json>(objectId: string): Promise<T> {\r\n return this.t.request<T>(\"POST\", \"/alerts/watches\", { json: { object_id: objectId } });\r\n }\r\n delete(watchId: string): Promise<void> {\r\n return this.t.request(\"DELETE\", `/alerts/watches/${watchId}`);\r\n }\r\n alerts<T = Json>(): Promise<T[]> {\r\n return this.t.request<T[]>(\"GET\", \"/alerts/watches/alerts\");\r\n }\r\n acknowledge(alertId: string): Promise<void> {\r\n return this.t.request(\"POST\", `/alerts/watches/${alertId}/acknowledge`);\r\n }\r\n}\r\n\r\nclass AlertGeofencesResource {\r\n constructor(private readonly t: Transport) {}\r\n list<T = Json>(): Promise<T[]> {\r\n return this.t.request<T[]>(\"GET\", \"/alerts/geofences\");\r\n }\r\n /** `coordinates` is shape-dependent: polygon `[[lon,lat],…]`, circle\r\n * `{center, radius_meters}`, corridor/route `{waypoints, width_meters}`. */\r\n create<T = Json>(input: {\r\n name: string;\r\n shape: string;\r\n coordinates: unknown;\r\n severity?: string;\r\n baseline_silent?: boolean;\r\n }): Promise<T> {\r\n return this.t.request<T>(\"POST\", \"/alerts/geofences\", { json: input });\r\n }\r\n update<T = Json>(geofenceId: string, patch: Json): Promise<T> {\r\n return this.t.request<T>(\"PATCH\", `/alerts/geofences/${geofenceId}`, { json: patch });\r\n }\r\n delete(geofenceId: string): Promise<void> {\r\n return this.t.request(\"DELETE\", `/alerts/geofences/${geofenceId}`);\r\n }\r\n alerts<T = Json>(): Promise<T[]> {\r\n return this.t.request<T[]>(\"GET\", \"/alerts/geofences/alerts\");\r\n }\r\n acknowledge(alertId: string): Promise<void> {\r\n return this.t.request(\"POST\", `/alerts/geofences/${alertId}/acknowledge`);\r\n }\r\n}\r\n\r\nclass AlertSharesResource {\r\n constructor(private readonly t: Transport) {}\r\n list<T = Json>(): Promise<T[]> {\r\n return this.t.request<T[]>(\"GET\", \"/alerts/shares\");\r\n }\r\n acknowledge(alertId: string): Promise<void> {\r\n return this.t.request(\"POST\", `/alerts/shares/${alertId}/ack`);\r\n }\r\n}\r\n\r\nclass AlertRoutesResource {\r\n constructor(private readonly t: Transport) {}\r\n list<T = Json>(): Promise<T[]> {\r\n return this.t.request<T[]>(\"GET\", \"/alerts/routes\");\r\n }\r\n create<T = Json>(input: {\r\n name: string;\r\n channel: string;\r\n match?: Json;\r\n channel_config_ref?: string;\r\n escalation?: Json;\r\n active?: boolean;\r\n }): Promise<T> {\r\n return this.t.request<T>(\"POST\", \"/alerts/routes\", { json: input });\r\n }\r\n update<T = Json>(routeId: string, patch: Json): Promise<T> {\r\n return this.t.request<T>(\"PATCH\", `/alerts/routes/${routeId}`, { json: patch });\r\n }\r\n delete(routeId: string): Promise<void> {\r\n return this.t.request(\"DELETE\", `/alerts/routes/${routeId}`);\r\n }\r\n silence<T = Json>(routeId: string, minutes: number): Promise<T> {\r\n return this.t.request<T>(\"POST\", `/alerts/routes/${routeId}/silence`, { json: { minutes } });\r\n }\r\n unsilence(routeId: string): Promise<Json> {\r\n return this.silence(routeId, 0);\r\n }\r\n silenceState<T = Json>(routeId: string): Promise<T> {\r\n return this.t.request<T>(\"GET\", `/alerts/routes/${routeId}/silence`);\r\n }\r\n async kinds(): Promise<string[]> {\r\n const payload = await this.t.request<Json>(\"GET\", \"/alerts/routes/kinds\");\r\n return (payload.kinds as string[]) ?? [];\r\n }\r\n}\r\n\r\nclass AlertInboxResource {\r\n constructor(private readonly t: Transport) {}\r\n list<T = Json>(\r\n opts: {\r\n kinds?: string[];\r\n severities?: string[];\r\n status?: string;\r\n limit?: number;\r\n offset?: number;\r\n } = {},\r\n ): Promise<T[]> {\r\n return this.t.request<T[]>(\"GET\", \"/alerts/inbox\", {\r\n params: {\r\n kinds: opts.kinds?.join(\",\"),\r\n severities: opts.severities?.join(\",\"),\r\n status: opts.status,\r\n limit: opts.limit,\r\n offset: opts.offset,\r\n },\r\n });\r\n }\r\n async countPending(): Promise<number> {\r\n const payload = await this.t.request<Json>(\"GET\", \"/alerts/count_pending\");\r\n return (payload.count as number) ?? 0;\r\n }\r\n acknowledge<T = Json>(alertId: string): Promise<T> {\r\n return this.t.request<T>(\"POST\", `/alerts/${alertId}/acknowledge`);\r\n }\r\n}\r\n\r\n/** `client.alerts.*` — feeds, watches, geofences, shares, routes, inbox. */\r\nexport class AlertsResource {\r\n readonly feeds: AlertFeedsResource;\r\n readonly watches: AlertWatchesResource;\r\n readonly geofences: AlertGeofencesResource;\r\n readonly shares: AlertSharesResource;\r\n readonly routes: AlertRoutesResource;\r\n readonly inbox: AlertInboxResource;\r\n\r\n constructor(private readonly t: Transport) {\r\n this.feeds = new AlertFeedsResource(t);\r\n this.watches = new AlertWatchesResource(t);\r\n this.geofences = new AlertGeofencesResource(t);\r\n this.shares = new AlertSharesResource(t);\r\n this.routes = new AlertRoutesResource(t);\r\n this.inbox = new AlertInboxResource(t);\r\n }\r\n\r\n escalate(alertId: string): Promise<void> {\r\n return this.t.request(\"POST\", `/alerts/escalate/${alertId}`);\r\n }\r\n channels<T = Json>(): Promise<T[]> {\r\n return this.t.request<T[]>(\"GET\", \"/alerts/channels\");\r\n }\r\n /**\r\n * `PUT /alerts/channels/{ref}` — point a delivery channel at its\r\n * destination.\r\n *\r\n * Exists so this is a GESTURE: before it, sending alerts to the team's\r\n * Discord (or any webhook) meant editing the tenant's JSONB in the\r\n * database. Audited as `alert_channel.configured`.\r\n *\r\n * `ref` is the channel name (`\"discord\"`) or a named ref\r\n * (`\"discord-plantao\"`, then pass `channel: \"discord\"`). Fields are open\r\n * because the vocabulary belongs to the CHANNEL, not the core.\r\n *\r\n * The response returns the config MASKED — a webhook URL is the\r\n * credential, and reads never hand it back whole.\r\n * Perm: `alerts.routes.manage`.\r\n */\r\n setChannel<T = Json>(ref: string, config: AlertChannelConfigInput): Promise<T> {\r\n return this.t.request<T>(\"PUT\", `/alerts/channels/${encodeURIComponent(ref)}`, {\r\n json: config,\r\n });\r\n }\r\n /** `DELETE /alerts/channels/{ref}` — audited as `alert_channel.removed`. */\r\n deleteChannel(ref: string): Promise<void> {\r\n return this.t.request(\"DELETE\", `/alerts/channels/${encodeURIComponent(ref)}`);\r\n }\r\n}\r\n\r\n/** What `setChannel` accepts. Open-ended on purpose: the vocabulary is the\r\n * channel's, not the core's. */\r\nexport interface AlertChannelConfigInput {\r\n /** Which channel a named ref belongs to (omit when ref === channel). */\r\n channel?: string;\r\n /** Webhook address. This IS the credential — reads return it masked. */\r\n url?: string;\r\n to?: string;\r\n token?: string;\r\n username?: string;\r\n allowlist?: string[];\r\n timeout?: number;\r\n}\r\n\r\n/** `client.alarms.*` — threshold alarm rules on node properties (v26). */\r\nexport class AlarmsResource {\r\n constructor(private readonly t: Transport) {}\r\n list<T = Json>(): Promise<T[]> {\r\n return this.t.request<T[]>(\"GET\", \"/platform/v26/alarms\");\r\n }\r\n /** `node_id` XOR `node_type`; operator ∈ gt|gte|lt|lte|eq|ne. */\r\n create<T = Json>(input: {\r\n name: string;\r\n property_name: string;\r\n operator: string;\r\n threshold: number;\r\n node_id?: string;\r\n node_type?: string;\r\n action_type_name?: string;\r\n action_payload?: Json;\r\n cooldown_seconds?: number;\r\n active?: boolean;\r\n }): Promise<T> {\r\n return this.t.request<T>(\"POST\", \"/platform/v26/alarms\", { json: input });\r\n }\r\n update<T = Json>(ruleId: string, patch: Json): Promise<T> {\r\n return this.t.request<T>(\"PUT\", `/platform/v26/alarms/${encodeURIComponent(ruleId)}`, {\r\n json: patch,\r\n });\r\n }\r\n delete(ruleId: string): Promise<void> {\r\n return this.t.request(\"DELETE\", `/platform/v26/alarms/${encodeURIComponent(ruleId)}`);\r\n }\r\n events<T = Json>(opts: { rule_id?: string; limit?: number } = {}): Promise<T[]> {\r\n return this.t.request<T[]>(\"GET\", \"/platform/v26/alarms/events\", { params: opts });\r\n }\r\n}\r\n\r\n/** `client.events.*` — detections pipeline status + dead-letter queue. */\r\nexport class EventsResource {\r\n constructor(private readonly t: Transport) {}\r\n pipelineStatus<T = Json>(): Promise<T> {\r\n return this.t.request<T>(\"GET\", \"/api/v1/events/pipeline/status\");\r\n }\r\n dlqList<T = Json>(limit = 50): Promise<T> {\r\n return this.t.request<T>(\"GET\", \"/api/v1/events/pipeline/dlq\", { params: { limit } });\r\n }\r\n /** Exactly one of `ids` / `all` is required. */\r\n dlqRetry<T = Json>(opts: { ids?: string[]; all?: boolean }): Promise<T> {\r\n assertIdsXorAll(opts);\r\n return this.t.request<T>(\"POST\", \"/api/v1/events/pipeline/dlq/retry\", { json: opts });\r\n }\r\n /** Exactly one of `ids` / `all` is required. */\r\n dlqPurge<T = Json>(opts: { ids?: string[]; all?: boolean }): Promise<T> {\r\n assertIdsXorAll(opts);\r\n return this.t.request<T>(\"POST\", \"/api/v1/events/pipeline/dlq/purge\", { json: opts });\r\n }\r\n}\r\n\r\nfunction assertIdsXorAll(opts: { ids?: string[]; all?: boolean }): void {\r\n const hasIds = !!opts.ids?.length;\r\n if (hasIds === !!opts.all) throw new Error(\"pass exactly one of ids or all\");\r\n}\r\n\r\n/**\r\n * Pairing state for a skill that declares the `pairing` capability (e.g. a\r\n * WhatsApp station). `qr_data_url` is a ready-to-render `data:image/png;base64`.\r\n */\r\nexport interface PairingInfo {\r\n state: \"connected\" | \"awaiting_scan\" | \"disconnected\" | \"error\";\r\n qr_data_url: string | null;\r\n code: string | null;\r\n expires_at: string | null;\r\n detail: string;\r\n /** Additive (pool station): WHICH number is pairing — single-instance skills never set it. */\r\n pairing_number?: string | null;\r\n}\r\n\r\n/**\r\n * Result of an inventory gesture on a skill that declares the `inventory`\r\n * capability. `detail` carries the driver's own sentence (\"já existe número\r\n * com este identificador\") — it is the operator's diagnosis, so surface it\r\n * instead of a generic failure.\r\n */\r\nexport interface InventoryResult {\r\n ok: boolean;\r\n detail: string;\r\n item?: Record<string, unknown> | null;\r\n}\r\n\r\n/** A row of the connector skill catalog (`GET /governance/agents/skills`). */\r\nexport interface SkillCatalogRow {\r\n skill_key: string;\r\n label: string;\r\n description: string;\r\n category: string;\r\n source: string;\r\n platforms: string[];\r\n requires_secrets: string[];\r\n param_schema: Json[];\r\n /** Additive — declared capabilities of the skill, e.g. `[\"pairing\"]`. */\r\n capabilities?: string[];\r\n}\r\n\r\n/** `client.connectors.*` — HTTP connector agents under governance. */\r\nexport class ConnectorsResource {\r\n constructor(private readonly t: Transport) {}\r\n list<T = Json>(): Promise<T[]> {\r\n return this.t.request<T[]>(\"GET\", \"/governance/agents\");\r\n }\r\n patch<T = Json>(agentId: string, patch: Json): Promise<T> {\r\n const body = Object.fromEntries(Object.entries(patch).filter(([, v]) => v !== undefined));\r\n if (Object.keys(body).length === 0) throw new Error(\"empty patch\");\r\n return this.t.request<T>(\"PATCH\", `/governance/agents/${agentId}`, { json: body });\r\n }\r\n /** status ∈ inactive|active|running|degraded|failed */\r\n setStatus(agentId: string, status: string): Promise<Json> {\r\n return this.patch(agentId, { status });\r\n }\r\n bindings<T = Json>(agentId: string): Promise<T[]> {\r\n return this.t.request<T[]>(\"GET\", `/governance/agents/${agentId}/skills`);\r\n }\r\n /** Two calls: creates the worker agent, then binds the `connector.http` skill. */\r\n async register(input: {\r\n slug: string;\r\n display_name: string;\r\n base_url: string;\r\n node_type: string;\r\n id_field: string;\r\n path?: string;\r\n name_field?: string;\r\n records_path?: string;\r\n auth?: Json;\r\n pagination?: Json;\r\n cron_preset?: string;\r\n }): Promise<Json> {\r\n const agent = await this.t.request<Json>(\"POST\", \"/governance/agents\", {\r\n json: {\r\n slug: input.slug,\r\n display_name: input.display_name,\r\n kind: \"worker\",\r\n config: input.cron_preset ? { cron_preset: input.cron_preset } : {},\r\n },\r\n });\r\n await this.t.request(\"POST\", `/governance/agents/${agent.id}/skills`, {\r\n json: {\r\n skill_key: \"connector.http\",\r\n config: {\r\n base_url: input.base_url,\r\n path: input.path ?? \"\",\r\n node_type: input.node_type,\r\n id_field: input.id_field,\r\n name_field: input.name_field ?? \"\",\r\n records_path: input.records_path ?? \"\",\r\n auth: input.auth,\r\n pagination: input.pagination,\r\n },\r\n },\r\n });\r\n return agent;\r\n }\r\n test<T = Json>(agentId: string): Promise<T> {\r\n return this.t.request<T>(\"POST\", `/governance/agents/${agentId}/skills/connector.http/test`);\r\n }\r\n run<T = Json>(agentId: string): Promise<T> {\r\n return this.t.request<T>(\"POST\", `/governance/agents/${agentId}/run`, {\r\n json: { skill_key: \"connector.http\" },\r\n });\r\n }\r\n /**\r\n * Start/renew QR pairing for a skill with the `pairing` capability (WhatsApp\r\n * station). Pass `{ refresh: true }` to force a fresh code.\r\n */\r\n pairingStart<T = PairingInfo>(\r\n agentId: string,\r\n skillKey: string,\r\n opts: { refresh?: boolean; target?: string } = {},\r\n ): Promise<T> {\r\n const { target, ...json } = opts;\r\n return this.t.request<T>(\"POST\", `/governance/agents/${agentId}/skills/${skillKey}/pairing`, {\r\n json,\r\n params: target ? { target } : undefined,\r\n });\r\n }\r\n /** Read-only poll of the pairing state (no side effects). `target` aims a pool number. */\r\n pairingPoll<T = PairingInfo>(\r\n agentId: string,\r\n skillKey: string,\r\n opts: { target?: string } = {},\r\n ): Promise<T> {\r\n return this.t.request<T>(\"GET\", `/governance/agents/${agentId}/skills/${skillKey}/pairing`, {\r\n params: opts.target ? { target: opts.target } : undefined,\r\n });\r\n }\r\n /**\r\n * Add / correct / remove a sub-unit administered by a connector that\r\n * declares the `inventory` capability — e.g. one number of a WhatsApp\r\n * number-station.\r\n *\r\n * Reading is NOT here: the inventory already reaches callers through the\r\n * snapshot the tick publishes on the device mirror (`GET /api/v1/edge/nodes`\r\n * → `nodes[].pool`). A second read path would drift between ticks.\r\n */\r\n applyInventory<T = InventoryResult>(\r\n agentId: string,\r\n skillKey: string,\r\n op: \"add\" | \"update\" | \"remove\",\r\n item: Record<string, unknown>,\r\n ): Promise<T> {\r\n return this.t.request<T>(\r\n \"POST\",\r\n `/governance/agents/${agentId}/skills/${skillKey}/inventory`,\r\n { json: { op, item } },\r\n );\r\n }\r\n schedulerTick<T = Json>(): Promise<T> {\r\n return this.t.request<T>(\"POST\", \"/governance/agents/scheduler/tick\");\r\n }\r\n /** source ∈ native|clawhub. Rows carry an additive `capabilities` field. */\r\n skillCatalog<T = SkillCatalogRow>(source?: string): Promise<T[]> {\r\n return this.t.request<T[]>(\"GET\", \"/governance/agents/skills\", { params: { source } });\r\n }\r\n installOpenclaw<T = Json>(slug: string): Promise<T> {\r\n return this.t.request<T>(\"POST\", \"/governance/agents/skills/openclaw/install\", {\r\n json: { slug: slug.replace(/^openclaw:/, \"\") },\r\n });\r\n }\r\n refreshOpenclaw<T = Json>(): Promise<T> {\r\n return this.t.request<T>(\"POST\", \"/governance/agents/skills/openclaw/refresh\");\r\n }\r\n}\r\n\r\n/** `client.pipelines.*` — data pipelines (v22 CRUD + v23 preview/dry-run). */\r\nexport class PipelinesResource {\r\n constructor(private readonly t: Transport) {}\r\n list<T = Json>(): Promise<T[]> {\r\n return this.t.request<T[]>(\"GET\", \"/platform/v22/pipelines\");\r\n }\r\n transformPreview<T = Json>(sampleRows: Json[], steps: Json[]): Promise<T> {\r\n return this.t.request<T>(\"POST\", \"/platform/v23/pipeline/transform/preview\", {\r\n json: { sample_rows: sampleRows, steps },\r\n });\r\n }\r\n dryRun<T = Json>(boardId: string): Promise<T> {\r\n return this.t.request<T>(\"POST\", `/platform/v23/pipeline/${boardId}/dry-run`);\r\n }\r\n syncPreview<T = Json>(\r\n format: string,\r\n opts: { sample?: string; source_url?: string; options?: Json; headers?: Json } = {},\r\n ): Promise<T> {\r\n const body: Json = { format };\r\n for (const [k, v] of Object.entries(opts)) if (v !== undefined) body[k] = v;\r\n return this.t.request<T>(\"POST\", \"/platform/v23/pipeline/sync/preview\", { json: body });\r\n }\r\n create<T = Json>(input: {\r\n slug: string;\r\n display_name: string;\r\n description?: string;\r\n /** `{ source, steps[], output?: { target_node_type, id_field } }` */\r\n spec?: Json;\r\n }): Promise<T> {\r\n return this.t.request<T>(\"POST\", \"/platform/v22/pipelines\", { json: input });\r\n }\r\n update<T = Json>(pipelineId: string, patch: Json): Promise<T> {\r\n return this.t.request<T>(\"PUT\", `/platform/v22/pipelines/${pipelineId}`, { json: patch });\r\n }\r\n setSchedule(pipelineId: string, preset: string): Promise<Json> {\r\n return this.update(pipelineId, { schedule_preset: preset || \"\" });\r\n }\r\n build<T = Json>(pipelineId: string, opts: { incremental?: boolean; branch?: string } = {}): Promise<T> {\r\n return this.t.request<T>(\"POST\", `/platform/v22/pipelines/${pipelineId}/build`, {\r\n params: {\r\n incremental: String(opts.incremental ?? false),\r\n branch: opts.branch ?? \"main\",\r\n },\r\n });\r\n }\r\n runs<T = Json>(pipelineId: string, limit = 50): Promise<T[]> {\r\n return this.t.request<T[]>(\"GET\", `/platform/v22/pipelines/${pipelineId}/runs`, {\r\n params: { limit },\r\n });\r\n }\r\n}\r\n\r\nclass ChatChannelsResource {\r\n constructor(private readonly t: Transport) {}\r\n list<T = Json>(): Promise<T[]> {\r\n return this.t.request<T[]>(\"GET\", \"/chat/channels\");\r\n }\r\n get<T = Json>(channelId: string): Promise<T> {\r\n return this.t.request<T>(\"GET\", `/chat/channels/${channelId}`);\r\n }\r\n create<T = Json>(input: {\r\n name: string;\r\n visibility?: string;\r\n min_classification?: string;\r\n project_id?: string;\r\n description?: string;\r\n }): Promise<T> {\r\n const body = Object.fromEntries(Object.entries(input).filter(([, v]) => v !== undefined));\r\n return this.t.request<T>(\"POST\", \"/chat/channels\", { json: body });\r\n }\r\n patch<T = Json>(channelId: string, payload: Json): Promise<T> {\r\n return this.t.request<T>(\"PATCH\", `/chat/channels/${channelId}`, { json: payload });\r\n }\r\n delete(channelId: string): Promise<void> {\r\n return this.t.request(\"DELETE\", `/chat/channels/${channelId}`);\r\n }\r\n}\r\n\r\nclass ChatMessagesResource {\r\n constructor(private readonly t: Transport) {}\r\n list<T = Json>(channelId: string, opts: { limit?: number; before?: string } = {}): Promise<T[]> {\r\n return this.t.request<T[]>(\"GET\", `/chat/channels/${channelId}/messages`, { params: opts });\r\n }\r\n send<T = Json>(\r\n channelId: string,\r\n body: string,\r\n opts: { classification?: string; embeds?: Json[] } = {},\r\n ): Promise<T> {\r\n return this.t.request<T>(\"POST\", `/chat/channels/${channelId}/messages`, {\r\n json: { body, classification: opts.classification ?? \"U\", embeds: opts.embeds },\r\n });\r\n }\r\n}\r\n\r\n/** `client.chat.*` — operator chat channels + messages. */\r\nexport class ChatResource {\r\n readonly channels: ChatChannelsResource;\r\n readonly messages: ChatMessagesResource;\r\n constructor(t: Transport) {\r\n this.channels = new ChatChannelsResource(t);\r\n this.messages = new ChatMessagesResource(t);\r\n }\r\n}\r\n\r\n/** `client.notepad.*` — markdown docs (v23). */\r\nexport class NotepadResource {\r\n constructor(private readonly t: Transport) {}\r\n list<T = Json>(): Promise<T[]> {\r\n return this.t.request<T[]>(\"GET\", \"/platform/v23/notepad\");\r\n }\r\n get<T = Json>(docId: string): Promise<T> {\r\n return this.t.request<T>(\"GET\", `/platform/v23/notepad/${encodeURIComponent(docId)}`);\r\n }\r\n create<T = Json>(input: {\r\n slug: string;\r\n title: string;\r\n body_md?: string;\r\n markings?: string[];\r\n pinned?: boolean;\r\n project_id?: string;\r\n }): Promise<T> {\r\n return this.t.request<T>(\"POST\", \"/platform/v23/notepad\", { json: input });\r\n }\r\n /** Mirrors Python: all keys are sent (null = unchanged server-side). */\r\n update<T = Json>(\r\n docId: string,\r\n patch: { title?: string; body_md?: string; markings?: string[]; pinned?: boolean },\r\n ): Promise<T> {\r\n return this.t.request<T>(\"PUT\", `/platform/v23/notepad/${encodeURIComponent(docId)}`, {\r\n json: {\r\n title: patch.title ?? null,\r\n body_md: patch.body_md ?? null,\r\n markings: patch.markings ?? null,\r\n pinned: patch.pinned ?? null,\r\n },\r\n });\r\n }\r\n delete<T = Json>(docId: string): Promise<T> {\r\n return this.t.request<T>(\"DELETE\", `/platform/v23/notepad/${encodeURIComponent(docId)}`);\r\n }\r\n}\r\n","import type { Transport } from \"../transport\";\r\nimport type { Json } from \"../types\";\r\n\r\n/** `client.lineage.*` — workflow lineage graph + event log. */\r\nexport class LineageResource {\r\n constructor(private readonly t: Transport) {}\r\n graph<T = Json>(opts: { marking?: string; since?: string; kind?: string; limit_events?: number } = {}): Promise<T> {\r\n return this.t.request<T>(\"GET\", \"/platform/v23/lineage-graph\", { params: opts });\r\n }\r\n events<T = Json>(\r\n opts: { limit?: number; offset?: number; event_type?: string; status?: string } = {},\r\n ): Promise<T[]> {\r\n return this.t.request<T[]>(\"GET\", \"/lineage/events\", { params: opts });\r\n }\r\n}\r\n\r\n/** `client.accessAudit.*` — governance access-audit trail. */\r\nexport class AccessAuditResource {\r\n constructor(private readonly t: Transport) {}\r\n list<T = Json>(\r\n opts: {\r\n resource_type?: string;\r\n resource_id?: string;\r\n user_id?: string;\r\n since?: string;\r\n until?: string;\r\n limit?: number;\r\n } = {},\r\n ): Promise<T[]> {\r\n return this.t.request<T[]>(\"GET\", \"/governance/access-audit\", { params: opts });\r\n }\r\n}\r\n\r\nclass MarkingCategoriesResource {\r\n constructor(private readonly t: Transport) {}\r\n list<T = Json>(opts: { limit?: number; offset?: number } = {}): Promise<T[]> {\r\n return this.t.request<T[]>(\"GET\", \"/markings/categories\", { params: opts });\r\n }\r\n create<T = Json>(input: {\r\n slug: string;\r\n display_name: string;\r\n mode?: string;\r\n description?: string;\r\n }): Promise<T> {\r\n return this.t.request<T>(\"POST\", \"/markings/categories\", { json: input });\r\n }\r\n}\r\n\r\n/** `client.markings.*` — marking catalog + per-user eligibility. */\r\nexport class MarkingsResource {\r\n readonly categories: MarkingCategoriesResource;\r\n constructor(private readonly t: Transport) {\r\n this.categories = new MarkingCategoriesResource(t);\r\n }\r\n list<T = Json>(opts: { limit?: number; offset?: number; category_id?: string } = {}): Promise<T[]> {\r\n return this.t.request<T[]>(\"GET\", \"/markings\", { params: opts });\r\n }\r\n get<T = Json>(markingId: string): Promise<T> {\r\n return this.t.request<T>(\"GET\", `/markings/${markingId}`);\r\n }\r\n create<T = Json>(input: {\r\n slug: string;\r\n display_name: string;\r\n description?: string;\r\n category_id?: string;\r\n }): Promise<T> {\r\n return this.t.request<T>(\"POST\", \"/markings\", { json: input });\r\n }\r\n update<T = Json>(\r\n markingId: string,\r\n patch: { display_name?: string; description?: string; category_id?: string; active?: boolean },\r\n ): Promise<T> {\r\n return this.t.request<T>(\"PATCH\", `/markings/${markingId}`, { json: patch });\r\n }\r\n listEligibility<T = Json>(markingId: string): Promise<T[]> {\r\n return this.t.request<T[]>(\"GET\", `/markings/${markingId}/eligibility`);\r\n }\r\n grantEligibility<T = Json>(markingId: string, userId: string, canApply = false): Promise<T> {\r\n return this.t.request<T>(\"POST\", `/markings/${markingId}/eligibility`, {\r\n json: { user_id: userId, can_apply: canApply },\r\n });\r\n }\r\n revokeEligibility(markingId: string, userId: string): Promise<void> {\r\n return this.t.request(\"DELETE\", `/markings/${markingId}/eligibility/${userId}`);\r\n }\r\n}\r\n\r\n/** `client.resourceMarkings.*` — markings applied to arbitrary resources. */\r\nexport class ResourceMarkingsResource {\r\n constructor(private readonly t: Transport) {}\r\n list<T = Json>(resourceKind: string, resourceId: string): Promise<T[]> {\r\n return this.t.request<T[]>(\"GET\", `/resources/${resourceKind}/${resourceId}/markings`);\r\n }\r\n apply<T = Json>(resourceKind: string, resourceId: string, markingId: string): Promise<T> {\r\n return this.t.request<T>(\"POST\", `/resources/${resourceKind}/${resourceId}/markings`, {\r\n json: { marking_id: markingId },\r\n });\r\n }\r\n remove(resourceKind: string, resourceId: string, markingId: string): Promise<void> {\r\n return this.t.request(\r\n \"DELETE\",\r\n `/resources/${resourceKind}/${resourceId}/markings/${markingId}`,\r\n );\r\n }\r\n}\r\n\r\n/** `client.propertyMarkings.*` — markings on individual node properties. */\r\nexport class PropertyMarkingsResource {\r\n constructor(private readonly t: Transport) {}\r\n listForNode<T = Json>(nodeId: string): Promise<T> {\r\n return this.t.request<T>(\"GET\", `/ontology/nodes/${nodeId}/property-markings`);\r\n }\r\n listOne<T = Json>(nodeId: string, propertyKey: string): Promise<T[]> {\r\n return this.t.request<T[]>(\"GET\", `/ontology/nodes/${nodeId}/properties/${propertyKey}/markings`);\r\n }\r\n apply<T = Json>(nodeId: string, propertyKey: string, markingId: string): Promise<T> {\r\n return this.t.request<T>(\"POST\", `/ontology/nodes/${nodeId}/properties/${propertyKey}/markings`, {\r\n json: { marking_id: markingId },\r\n });\r\n }\r\n remove(nodeId: string, propertyKey: string, markingId: string): Promise<void> {\r\n return this.t.request(\r\n \"DELETE\",\r\n `/ontology/nodes/${nodeId}/properties/${propertyKey}/markings/${markingId}`,\r\n );\r\n }\r\n}\r\n\r\n/** `client.rowPolicies.*` — row-level security policy templates (v26). */\r\nexport class RowPoliciesResource {\r\n constructor(private readonly t: Transport) {}\r\n list<T = Json>(): Promise<T[]> {\r\n return this.t.request<T[]>(\"GET\", \"/platform/v26/row-policies\");\r\n }\r\n create<T = Json>(input: {\r\n object_type: string;\r\n role: string;\r\n predicate_template: string;\r\n description?: string;\r\n active?: boolean;\r\n }): Promise<T> {\r\n return this.t.request<T>(\"POST\", \"/platform/v26/row-policies\", { json: input });\r\n }\r\n delete(policyId: string): Promise<void> {\r\n return this.t.request(\"DELETE\", `/platform/v26/row-policies/${encodeURIComponent(policyId)}`);\r\n }\r\n}\r\n\r\nexport interface ErasureSelector {\r\n node_ids?: string[];\r\n property?: string;\r\n value?: string;\r\n node_type?: string;\r\n}\r\n\r\n/** `client.erasure.*` — right-to-be-forgotten (preview first, then forget). */\r\nexport class ErasureResource {\r\n constructor(private readonly t: Transport) {}\r\n /** Dry-run: shows the match radius without mutating anything. */\r\n preview<T = Json>(selector: ErasureSelector): Promise<T> {\r\n return this.t.request<T>(\"POST\", \"/governance/erasure/preview\", { json: selector });\r\n }\r\n /** Requires `confirm: true`; pass `expected_count` to guard the radius (422 on mismatch). */\r\n forget<T = Json>(\r\n selector: ErasureSelector,\r\n opts: { mode?: string; reason?: string; confirm?: boolean; expected_count?: number } = {},\r\n ): Promise<T> {\r\n return this.t.request<T>(\"POST\", \"/governance/erasure/forget\", { json: { ...selector, ...opts } });\r\n }\r\n}\r\n\r\n/** `client.retention.*` — retention windows per target + manual prune. */\r\nexport class RetentionResource {\r\n constructor(private readonly t: Transport) {}\r\n list<T = Json>(): Promise<T[]> {\r\n return this.t.request<T[]>(\"GET\", \"/governance/retention\");\r\n }\r\n set<T = Json>(target: string, retentionDays: number, active = true): Promise<T> {\r\n return this.t.request<T>(\"PUT\", \"/governance/retention\", {\r\n json: { target, retention_days: retentionDays, active },\r\n });\r\n }\r\n delete(target: string): Promise<void> {\r\n return this.t.request(\"DELETE\", `/governance/retention/${encodeURIComponent(target)}`);\r\n }\r\n run<T = Json>(target: string): Promise<T> {\r\n return this.t.request<T>(\"POST\", `/governance/retention/${encodeURIComponent(target)}/run`);\r\n }\r\n}\r\n\r\nexport interface GuestTokenIssue {\r\n allowed_action_ids: string[];\r\n label?: string;\r\n subject?: string;\r\n ttl_hours?: number;\r\n max_uses?: number;\r\n min_interval_seconds?: number;\r\n /** `{ fence, target, arrival_radius_m }` */\r\n geo?: Json;\r\n /**\r\n * Free-form denormalized contact (e.g. `{ phone, document, notes }`),\r\n * surfaced by real-time gate screens without extra reads. Multi-domain: the\r\n * site decides what goes here.\r\n */\r\n contact?: Json;\r\n /** `{ channel, to, text? }` */\r\n share?: Json;\r\n link_base?: string;\r\n}\r\n\r\n/** `client.guestTokens.*` — public /m/{token} guest links. */\r\nexport class GuestTokensResource {\r\n constructor(private readonly t: Transport) {}\r\n list<T = Json>(): Promise<T[]> {\r\n return this.t.request<T[]>(\"GET\", \"/platform/v23/guest-tokens\");\r\n }\r\n /** Plaintext token appears once in the response — treat as a secret. */\r\n issue<T = Json>(input: GuestTokenIssue): Promise<T> {\r\n return this.t.request<T>(\"POST\", \"/platform/v23/guest-tokens\", { json: input });\r\n }\r\n revoke<T = Json>(tokenId: string): Promise<T> {\r\n return this.t.request<T>(\"POST\", `/platform/v23/guest-tokens/${tokenId}/revoke`);\r\n }\r\n}\r\n","import type { Transport } from \"../transport\";\nimport type { Json } from \"../types\";\n\nclass WorkshopBriefingsResource {\n constructor(private readonly t: Transport) {}\n list<T = Json>(): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/workshop/apps\", { params: { kind: \"briefing\" } });\n }\n get<T = Json>(briefingId: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/workshop/apps/${briefingId}`);\n }\n create<T = Json>(name: string): Promise<T> {\n return this.t.request<T>(\"POST\", \"/workshop/apps\", { json: { name, kind: \"briefing\" } });\n }\n patch<T = Json>(briefingId: string, payload: Json): Promise<T> {\n return this.t.request<T>(\"PATCH\", `/workshop/apps/${briefingId}`, { json: payload });\n }\n broadcast<T = Json>(briefingId: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/workshop/briefings/${briefingId}/broadcast`);\n }\n}\n\nclass WorkshopDossiersResource {\n constructor(private readonly t: Transport) {}\n list<T = Json>(): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/workshop/dossiers\");\n }\n get<T = Json>(dossierId: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/workshop/dossiers/${dossierId}`);\n }\n create<T = Json>(title: string): Promise<T> {\n return this.t.request<T>(\"POST\", \"/workshop/dossiers\", { json: { title } });\n }\n patch<T = Json>(dossierId: string, body: Json): Promise<T> {\n return this.t.request<T>(\"PATCH\", `/workshop/dossiers/${dossierId}`, { json: body });\n }\n delete(dossierId: string): Promise<void> {\n return this.t.request(\"DELETE\", `/workshop/dossiers/${dossierId}`);\n }\n addEmbed<T = Json>(dossierId: string, kind: string, sourceRef: string, nodeId: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/workshop/dossiers/${dossierId}/embeds`, {\n json: { embed_kind: kind, source_ref: sourceRef, node_id: nodeId },\n });\n }\n embeds<T = Json>(dossierId: string): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", `/workshop/dossiers/${dossierId}/embeds`);\n }\n}\n\nclass WorkshopCovsResource {\n constructor(private readonly t: Transport) {}\n list<T = Json>(objectType?: string): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/workshop/covs\", { params: { object_type: objectType } });\n }\n get<T = Json>(covId: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/workshop/covs/${covId}`);\n }\n /** Full-object upsert. */\n save<T = Json>(cov: Json): Promise<T> {\n return this.t.request<T>(\"POST\", \"/workshop/covs\", { json: cov });\n }\n delete(covId: string): Promise<void> {\n return this.t.request(\"DELETE\", `/workshop/covs/${covId}`);\n }\n setTeamDefault(covId: string): Promise<void> {\n return this.t.request(\"POST\", `/workshop/covs/${covId}/set-team-default`);\n }\n}\n\n/** `client.workshop.*` — briefings, dossiers, custom object views, widget catalog. */\nexport class WorkshopResource {\n readonly briefings: WorkshopBriefingsResource;\n readonly dossiers: WorkshopDossiersResource;\n readonly covs: WorkshopCovsResource;\n\n constructor(private readonly t: Transport) {\n this.briefings = new WorkshopBriefingsResource(t);\n this.dossiers = new WorkshopDossiersResource(t);\n this.covs = new WorkshopCovsResource(t);\n }\n\n widgetCatalog<T = Json>(proposableOnly = false): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/workshop/widget-catalog\", {\n params: proposableOnly ? { proposable_only: \"true\" } : {},\n });\n }\n}\n\nclass ComputeProvidersResource {\n constructor(private readonly t: Transport) {}\n catalog<T = Json>(): Promise<T> {\n return this.t.request<T>(\"GET\", \"/compute/providers/catalog\");\n }\n list<T = Json>(): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/compute/providers\");\n }\n /** `api_key` is write-only — never returned by the API. */\n create<T = Json>(input: {\n display_name: string;\n vendor: string;\n api_key?: string;\n base_url?: string;\n country?: string;\n jurisdictions?: string[];\n capabilities?: string[];\n cert_metadata?: Json;\n pricing_hint?: Json;\n provider_kind?: string;\n enabled?: boolean;\n }): Promise<T> {\n return this.t.request<T>(\"POST\", \"/compute/providers\", { json: input });\n }\n update<T = Json>(providerId: string, patch: Json): Promise<T> {\n const body = Object.fromEntries(Object.entries(patch).filter(([, v]) => v !== undefined));\n return this.t.request<T>(\"PUT\", `/compute/providers/${providerId}`, { json: body });\n }\n delete<T = Json>(providerId: string): Promise<T> {\n return this.t.request<T>(\"DELETE\", `/compute/providers/${providerId}`);\n }\n test<T = Json>(providerId: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/compute/providers/${providerId}/test`);\n }\n}\n\nclass ComputeReleasesResource {\n constructor(private readonly t: Transport) {}\n list<T = Json>(name?: string): Promise<T> {\n return this.t.request<T>(\"GET\", \"/compute/releases\", { params: { name } });\n }\n publish<T = Json>(input: {\n name: string;\n image: string;\n eval_score?: number;\n metrics_sha256?: string;\n eval_notes?: string;\n notes?: string;\n spec?: Json;\n }): Promise<T> {\n return this.t.request<T>(\"POST\", \"/compute/releases\", { json: input });\n }\n /** 409 if `eval_score` is below the gate. */\n promote<T = Json>(name: string, version: string, minEvalScore = 0.8): Promise<T> {\n return this.t.request<T>(\"POST\", \"/compute/releases/promote\", {\n json: { name, version, min_eval_score: minEvalScore },\n });\n }\n deploy<T = Json>(providerId: string, name: string, channel = \"production\", extra: Json = {}): Promise<T> {\n return this.t.request<T>(\"POST\", `/compute/providers/${providerId}/releases/deploy`, {\n json: { name, channel, ...extra },\n });\n }\n}\n\n/** Scoped control-plane for one provider — `client.compute.control(providerId)`. */\nexport class ComputeControlResource {\n private readonly base: string;\n constructor(\n private readonly t: Transport,\n providerId: string,\n ) {\n this.base = `/compute/providers/${providerId}`;\n }\n listTemplates<T = Json>(): Promise<T> {\n return this.t.request<T>(\"GET\", `${this.base}/templates`);\n }\n saveTemplate<T = Json>(name: string, imageName: string, extra: Json = {}): Promise<T> {\n return this.t.request<T>(\"POST\", `${this.base}/templates`, {\n json: { name, image_name: imageName, ...extra },\n });\n }\n deleteTemplate<T = Json>(templateId: string): Promise<T> {\n return this.t.request<T>(\"DELETE\", `${this.base}/templates/${templateId}`);\n }\n listEndpoints<T = Json>(): Promise<T> {\n return this.t.request<T>(\"GET\", `${this.base}/endpoints`);\n }\n createEndpoint<T = Json>(templateId: string, name: string, extra: Json = {}): Promise<T> {\n return this.t.request<T>(\"POST\", `${this.base}/endpoints`, {\n json: { template_id: templateId, name, ...extra },\n });\n }\n updateEndpoint<T = Json>(endpointId: string, patch: Json): Promise<T> {\n return this.t.request<T>(\"PATCH\", `${this.base}/endpoints/${endpointId}`, {\n json: { patch },\n });\n }\n deleteEndpoint<T = Json>(endpointId: string): Promise<T> {\n return this.t.request<T>(\"DELETE\", `${this.base}/endpoints/${endpointId}`);\n }\n endpointHealth<T = Json>(endpointId: string): Promise<T> {\n return this.t.request<T>(\"GET\", `${this.base}/endpoints/${endpointId}/health`);\n }\n /** `sync: true` long-polls server-side up to `timeout_s` — pass a matching\n * `signal` (or raise the client `timeoutMs`) for long jobs. */\n submitJob<T = Json>(\n endpointId: string,\n input: Json,\n opts: { sync?: boolean; webhook?: string; timeout_s?: number } = {},\n ): Promise<T> {\n return this.t.request<T>(\"POST\", `${this.base}/endpoints/${endpointId}/jobs`, {\n json: { input, sync: opts.sync ?? false, webhook: opts.webhook, timeout_s: opts.timeout_s },\n });\n }\n jobStatus<T = Json>(endpointId: string, jobId: string): Promise<T> {\n return this.t.request<T>(\"GET\", `${this.base}/endpoints/${endpointId}/jobs/${jobId}`);\n }\n cancelJob<T = Json>(endpointId: string, jobId: string): Promise<T> {\n return this.t.request<T>(\"POST\", `${this.base}/endpoints/${endpointId}/jobs/${jobId}/cancel`);\n }\n listPods<T = Json>(): Promise<T> {\n return this.t.request<T>(\"GET\", `${this.base}/pods`);\n }\n createPod<T = Json>(name: string, imageName: string, extra: Json = {}): Promise<T> {\n return this.t.request<T>(\"POST\", `${this.base}/pods`, {\n json: { name, image_name: imageName, ...extra },\n });\n }\n stopPod<T = Json>(podId: string): Promise<T> {\n return this.t.request<T>(\"POST\", `${this.base}/pods/${podId}/stop`);\n }\n terminatePod<T = Json>(podId: string): Promise<T> {\n return this.t.request<T>(\"DELETE\", `${this.base}/pods/${podId}`);\n }\n}\n\n/** `client.compute.*` — vision compute, providers, releases, per-provider control plane. */\nexport class ComputeResource {\n readonly providers: ComputeProvidersResource;\n readonly releases: ComputeReleasesResource;\n\n constructor(private readonly t: Transport) {\n this.providers = new ComputeProvidersResource(t);\n this.releases = new ComputeReleasesResource(t);\n }\n\n selectModel<T = Json>(objective: string, opts: { intention?: string; jurisdiction?: string } = {}): Promise<T> {\n return this.t.request<T>(\"POST\", \"/compute/vision/select-model\", {\n json: { objective, ...opts },\n });\n }\n generateSpec<T = Json>(\n objective: string,\n opts: { base_image?: string; contract?: Json; pip?: string[]; env?: Json } = {},\n ): Promise<T> {\n return this.t.request<T>(\"POST\", \"/compute/spec/generate\", {\n json: { objective, base_image: opts.base_image ?? \"python:3.11-slim\", ...opts },\n });\n }\n visionCount<T = Json>(\n imageUrl: string,\n instruction: string,\n opts: {\n provider?: string;\n jurisdiction?: string;\n /** `{ nw: {lat,lng}, se: {lat,lng} }` */\n geo_bounds?: Json;\n /** detect | segment */\n capability?: string;\n /** geoshape | point */\n output_as?: string;\n } = {},\n ): Promise<T> {\n return this.t.request<T>(\"POST\", \"/compute/vision/count\", {\n json: { image_url: imageUrl, instruction, ...opts },\n });\n }\n /** Factory (no HTTP) — control plane scoped to one provider. */\n control(providerId: string): ComputeControlResource {\n return new ComputeControlResource(this.t, providerId);\n }\n}\n\n/** `client.inference.*` — audited LLM inference (server-side InferenceLog). */\nexport class InferenceResource {\n constructor(private readonly t: Transport) {}\n\n complete<T = Json>(\n prompt: string,\n opts: {\n provider?: string;\n model?: string;\n system_prompt?: string;\n temperature?: number;\n max_tokens?: number;\n } = {},\n ): Promise<T> {\n return this.t.request<T>(\"POST\", \"/inference/complete\", {\n json: {\n prompt,\n provider: opts.provider ?? \"groq\",\n model: opts.model ?? \"llama-3.3-70b-versatile\",\n system_prompt: opts.system_prompt,\n temperature: opts.temperature ?? 0.0,\n max_tokens: opts.max_tokens ?? 4096,\n },\n });\n }\n\n chat<T = Json>(\n messages: Json[],\n opts: {\n rag_sources?: string[];\n rag_limit?: number;\n provider?: string;\n model?: string;\n temperature?: number;\n max_tokens?: number;\n } = {},\n ): Promise<T> {\n const body: Json = {\n messages,\n provider: opts.provider ?? \"groq\",\n model: opts.model ?? \"llama-3.3-70b-versatile\",\n temperature: opts.temperature ?? 0.0,\n max_tokens: opts.max_tokens ?? 4096,\n };\n if (opts.rag_sources) {\n body.rag_sources = opts.rag_sources;\n body.rag_limit = opts.rag_limit ?? 5;\n }\n return this.t.request<T>(\"POST\", \"/inference/chat\", { json: body });\n }\n\n models<T = Json>(): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/inference/models\");\n }\n collections<T = Json>(): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/inference/collections\");\n }\n\n async chatWithRag(\n query: string,\n opts: {\n sources?: string[];\n limit?: number;\n provider?: string;\n model?: string;\n temperature?: number;\n max_tokens?: number;\n system?: string;\n } = {},\n ): Promise<Json> {\n const payload = await this.t.request<Json>(\"POST\", \"/mcp/tools/call\", {\n json: {\n name: \"chat_with_rag\",\n arguments: {\n query,\n sources: opts.sources ?? [\"all\"],\n limit: opts.limit ?? 6,\n provider: opts.provider ?? \"groq\",\n model: opts.model ?? \"llama-3.3-70b-versatile\",\n temperature: opts.temperature ?? 0.2,\n max_tokens: opts.max_tokens ?? 512,\n system: opts.system,\n },\n },\n });\n return (payload.result as Json) ?? payload;\n }\n\n auditTrail<T = Json>(opts: { limit?: number; provider?: string } = {}): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/inference/audit-trail\", {\n params: { limit: opts.limit ?? 50, provider: opts.provider },\n });\n }\n}\n\n/** `client.codegen.*` — LLM code generation (server AST-validates; invalid → 400). */\nexport class CodegenResource {\n constructor(private readonly t: Transport) {}\n /** kind ∈ transform|script */\n generate<T = Json>(objective: string, kind = \"transform\", context?: Json): Promise<T> {\n return this.t.request<T>(\"POST\", \"/codegen/generate\", { json: { objective, kind, context } });\n }\n}\n\n/** `client.correlation.*` — chain correlation (quick 1-hop sync + multi-hop async). */\nexport class CorrelationResource {\n constructor(private readonly t: Transport) {}\n quickLinks<T = Json>(value: string, kind?: string): Promise<T> {\n return this.t.request<T>(\"POST\", \"/correlation/quick-links\", { json: { value, kind } });\n }\n startChain<T = Json>(\n value: string,\n opts: { kind?: string; max_depth?: number; budget_nodes?: number; deep_osint_depth?: number } = {},\n ): Promise<T> {\n return this.t.request<T>(\"POST\", \"/correlation/chain\", { json: { value, ...opts } });\n }\n /** Poll until `status === \"done\"`. */\n getChain<T = Json>(taskId: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/correlation/chain/${taskId}`);\n }\n /** Opt-in: materializes the chain graph into the ontology. */\n saveChain<T = Json>(taskId: string, nodeIds?: string[]): Promise<T> {\n return this.t.request<T>(\"POST\", `/correlation/chain/${taskId}/save`, {\n json: nodeIds ? { node_ids: nodeIds } : {},\n });\n }\n}\n\n/** `client.situational.*` — spatio-temporal correlation over positioned nodes. */\nexport class SituationalResource {\n constructor(private readonly t: Transport) {}\n nearby<T = Json>(\n nodeId: string,\n opts: { radius_m?: number; window_s?: number; kinds?: string[]; limit?: number } = {},\n ): Promise<T> {\n return this.t.request<T>(\"GET\", \"/api/v1/situational/nearby\", {\n params: { node_id: nodeId, ...opts, kinds: opts.kinds?.join(\",\") },\n });\n }\n correlations<T = Json>(nodeId: string): Promise<T> {\n return this.t.request<T>(\"GET\", \"/api/v1/situational/correlations\", {\n params: { node_id: nodeId },\n });\n }\n correlate<T = Json>(\n anchorNodeId: string,\n opts: { radius_m?: number; window_s?: number; kinds?: string[]; limit?: number } = {},\n ): Promise<T> {\n return this.t.request<T>(\"POST\", \"/api/v1/situational/correlations\", {\n json: { anchor_node_id: anchorNodeId, ...opts },\n });\n }\n /** Reversible — removes the correlation edge. */\n cut(edgeId: string): Promise<void> {\n return this.t.request(\"DELETE\", `/api/v1/situational/correlations/${edgeId}`);\n }\n}\n\n/** Merge target selector: `{object_id}` | `{node_type, canonical}` | `{create: node_type}`. */\nexport type MergeTarget = Json;\n\n/** `client.merge.*` — evidence-preserving merge into canonical objects (perm `ontology.merge`). */\nexport class MergeResource {\n constructor(private readonly t: Transport) {}\n suggestTarget<T = Json>(nodeType: string, canonical: string): Promise<T> {\n return this.t.request<T>(\"POST\", \"/ontology/merge/suggest-target\", {\n json: { node_type: nodeType, canonical },\n });\n }\n /** Pass `result_payload` (raw) OR `properties` (ready). */\n preview<T = Json>(target: MergeTarget, opts: { result_payload?: Json; properties?: Json } = {}): Promise<T> {\n return this.t.request<T>(\"POST\", \"/ontology/merge/preview\", { json: { target, ...opts } });\n }\n /** `field_resolutions`: `{field: \"keep\"|\"replace\"|\"append\"}`;\n * `link`: `{target_object_id, relation_type, metadata?}`. */\n apply<T = Json>(\n target: MergeTarget,\n opts: {\n result_payload?: Json;\n properties?: Json;\n field_resolutions?: Json;\n link?: Json;\n } = {},\n ): Promise<T> {\n return this.t.request<T>(\"POST\", \"/ontology/merge/apply\", { json: { target, ...opts } });\n }\n}\n","import type { Transport } from \"../transport\";\r\nimport type { Json } from \"../types\";\r\n\r\nclass AtlasLayersResource {\r\n constructor(private readonly t: Transport) {}\r\n list<T = Json>(): Promise<T[]> {\r\n return this.t.request<T[]>(\"GET\", \"/atlas/layers\");\r\n }\r\n create<T = Json>(name: string, kind: string, extra: Json = {}): Promise<T> {\r\n const body: Json = { name, kind };\r\n for (const [k, v] of Object.entries(extra)) if (v !== undefined && v !== null) body[k] = v;\r\n return this.t.request<T>(\"POST\", \"/atlas/layers\", { json: body });\r\n }\r\n delete(layerId: string): Promise<void> {\r\n return this.t.request(\"DELETE\", `/atlas/layers/${layerId}`);\r\n }\r\n /** KML content travels inside the JSON body (not multipart) — same as Python. */\r\n importKml<T = Json>(layerId: string, kmlText: string): Promise<T> {\r\n return this.t.request<T>(\"POST\", `/atlas/layers/${layerId}/import`, {\r\n json: { _kml_bytes_b64: kmlText },\r\n });\r\n }\r\n}\r\n\r\nclass AtlasEvaluationResource {\r\n constructor(private readonly t: Transport) {}\r\n status<T = Json>(): Promise<T> {\r\n return this.t.request<T>(\"GET\", \"/atlas/evaluation/status\");\r\n }\r\n runOnce<T = Json>(): Promise<T> {\r\n return this.t.request<T>(\"POST\", \"/atlas/evaluation/run-once\");\r\n }\r\n}\r\n\r\n/** `client.atlas.*` — atlas layers + rule evaluator. */\r\nexport class AtlasResource {\r\n readonly layers: AtlasLayersResource;\r\n readonly evaluation: AtlasEvaluationResource;\r\n constructor(t: Transport) {\r\n this.layers = new AtlasLayersResource(t);\r\n this.evaluation = new AtlasEvaluationResource(t);\r\n }\r\n}\r\n\r\n/** `client.briefing.*` — per-slug home briefing. */\r\nexport class BriefingResource {\r\n constructor(private readonly t: Transport) {}\r\n get<T = Json>(slug: string): Promise<T> {\r\n return this.t.request<T>(\"GET\", `/campaign/home-briefing/${slug}`);\r\n }\r\n refresh<T = Json>(slug: string): Promise<T> {\r\n return this.t.request<T>(\"POST\", `/campaign/home-briefing/${slug}/refresh`);\r\n }\r\n crisisPlan<T = Json>(slug: string): Promise<T> {\r\n return this.t.request<T>(\"POST\", `/campaign/home-briefing/${slug}/crisis-plan`);\r\n }\r\n}\r\n\r\nclass CctvBookmarksResource {\r\n constructor(private readonly t: Transport) {}\r\n create<T = Json>(\r\n streamId: string,\r\n input: { t_ms: number; label: string; t_end_ms?: number; severity?: string },\r\n ): Promise<T> {\r\n return this.t.request<T>(\"POST\", `/api/v1/cctv/streams/${streamId}/bookmarks`, { json: input });\r\n }\r\n list<T = Json>(streamId: string, opts: { from_ms?: number; to_ms?: number } = {}): Promise<T[]> {\r\n return this.t.request<T[]>(\"GET\", `/api/v1/cctv/streams/${streamId}/bookmarks`, { params: opts });\r\n }\r\n delete(bookmarkId: string): Promise<void> {\r\n return this.t.request(\"DELETE\", `/api/v1/cctv/bookmarks/${bookmarkId}`);\r\n }\r\n}\r\n\r\nclass CctvGcpsResource {\r\n constructor(private readonly t: Transport) {}\r\n put<T = Json>(streamId: string, gcps: Json[]): Promise<T> {\r\n return this.t.request<T>(\"PUT\", `/api/v1/cctv/streams/${streamId}/gcps`, { json: { gcps } });\r\n }\r\n get<T = Json>(streamId: string): Promise<T> {\r\n return this.t.request<T>(\"GET\", `/api/v1/cctv/streams/${streamId}/gcps`);\r\n }\r\n delete(streamId: string): Promise<void> {\r\n return this.t.request(\"DELETE\", `/api/v1/cctv/streams/${streamId}/gcps`);\r\n }\r\n}\r\n\r\nclass CctvHotlistResource {\r\n constructor(private readonly t: Transport) {}\r\n list<T = Json>(activeOnly?: boolean): Promise<T[]> {\r\n return this.t.request<T[]>(\"GET\", \"/api/v1/cctv/hotlist\", { params: { active_only: activeOnly } });\r\n }\r\n add<T = Json>(plate: string, opts: { reason?: string; severity?: string } = {}): Promise<T> {\r\n return this.t.request<T>(\"POST\", \"/api/v1/cctv/hotlist\", {\r\n json: { plate, reason: opts.reason, severity: opts.severity ?? \"medium\" },\r\n });\r\n }\r\n remove(watchedId: string): Promise<void> {\r\n return this.t.request(\"DELETE\", `/api/v1/cctv/hotlist/${watchedId}`);\r\n }\r\n}\r\n\r\n/** `client.cctv.*` — CCTV streams, detections, recordings, exports, LPR hotlist. */\r\nexport class CctvResource {\r\n readonly bookmarks: CctvBookmarksResource;\r\n readonly gcps: CctvGcpsResource;\r\n readonly hotlist: CctvHotlistResource;\r\n\r\n constructor(private readonly t: Transport) {\r\n this.bookmarks = new CctvBookmarksResource(t);\r\n this.gcps = new CctvGcpsResource(t);\r\n this.hotlist = new CctvHotlistResource(t);\r\n }\r\n\r\n streamsPage<T = Json>(\r\n opts: {\r\n offset?: number;\r\n limit?: number;\r\n q?: string;\r\n status?: string;\r\n city?: string;\r\n detection_enabled?: boolean;\r\n } = {},\r\n ): Promise<T> {\r\n return this.t.request<T>(\"GET\", \"/api/v1/cctv/streams/page\", { params: opts });\r\n }\r\n detections<T = Json>(\r\n streamId: string,\r\n opts: { limit?: number; from_ms?: number; to_ms?: number } = {},\r\n ): Promise<T[]> {\r\n return this.t.request<T[]>(\"GET\", `/api/v1/cctv/streams/${streamId}/detections`, { params: opts });\r\n }\r\n detectorClasses<T = Json>(): Promise<T> {\r\n return this.t.request<T>(\"GET\", \"/api/v1/cctv/detector/classes\");\r\n }\r\n presets<T = Json>(): Promise<T[]> {\r\n return this.t.request<T[]>(\"GET\", \"/api/v1/cctv/presets\");\r\n }\r\n bridgeBackfill<T = Json>(): Promise<T> {\r\n return this.t.request<T>(\"POST\", \"/api/v1/cctv/bridge/backfill\");\r\n }\r\n /** 202 — returns a provider job to poll. */\r\n detectNow<T = Json>(\r\n streamId: string,\r\n opts: { frames?: number; frame_stride?: number; push?: boolean } = {},\r\n ): Promise<T> {\r\n return this.t.request<T>(\"POST\", `/api/v1/cctv/streams/${streamId}/detect-now`, { json: opts });\r\n }\r\n /** 202 — export job; poll with `exportStatus`. */\r\n exportClip<T = Json>(\r\n streamId: string,\r\n opts: { duration_s?: number; from_ms?: number; to_ms?: number } = {},\r\n ): Promise<T> {\r\n return this.t.request<T>(\"POST\", `/api/v1/cctv/streams/${streamId}/export`, { json: opts });\r\n }\r\n exportStatus<T = Json>(jobId: string): Promise<T> {\r\n return this.t.request<T>(\"GET\", `/api/v1/cctv/exports/${jobId}`);\r\n }\r\n recordings<T = Json>(streamId: string, opts: { from_ms?: number; to_ms?: number } = {}): Promise<T> {\r\n return this.t.request<T>(\"GET\", `/api/v1/cctv/streams/${streamId}/recordings`, { params: opts });\r\n }\r\n recordingStatus<T = Json>(streamId: string): Promise<T> {\r\n return this.t.request<T>(\"GET\", `/api/v1/cctv/streams/${streamId}/recording`);\r\n }\r\n /** action ∈ start|stop */\r\n recordingControl<T = Json>(streamId: string, action: \"start\" | \"stop\", cadence?: number): Promise<T> {\r\n return this.t.request<T>(\"POST\", `/api/v1/cctv/streams/${streamId}/recording`, {\r\n json: { action, cadence },\r\n });\r\n }\r\n /** Returns the raw HLS VOD playlist text (m3u8), not JSON. */\r\n recordingsPlaylist(\r\n streamId: string,\r\n opts: { from_ms?: number; to_ms?: number } = {},\r\n ): Promise<string> {\r\n return this.t.request(\"GET\", `/api/v1/cctv/streams/${streamId}/recordings/playlist.m3u8`, {\r\n params: opts,\r\n });\r\n }\r\n}\r\n\r\n/**\r\n * A number of a pool station's inventory (`GET /api/v1/edge/nodes` →\r\n * `nodes[].pool.numbers[]`). Published by the `connector.whatsapp_pool` tick.\r\n */\r\nexport interface EdgePoolNumber {\r\n id: string;\r\n msisdn?: string;\r\n role?: string;\r\n owner?: string;\r\n state?: string;\r\n sendable?: boolean;\r\n needs_gesture?: boolean;\r\n banned_until?: string | null;\r\n sent?: number;\r\n /** Present only when a device is declared for this number (opt-in). */\r\n automation?: EdgePoolAutomation | null;\r\n}\r\n\r\n/**\r\n * Android relink automation for one number. The phone is an edge: when a\r\n * session dies, a runner types the 8-character pairing code on the declared\r\n * device. Absent when no device is declared — the number stays on the manual\r\n * gesture and the row is unchanged.\r\n */\r\nexport interface EdgePoolAutomation {\r\n /** `\"idle\"` | `\"pending\"` | `\"attempting\"` | `\"confirming\"` | `\"needs_human\"` */\r\n state?: string;\r\n attempts?: number;\r\n max_attempts?: number;\r\n /** Why the automation gave up. Truncated to 160 chars by the backend. */\r\n last_error?: string;\r\n last_attempt_at?: string;\r\n last_success_at?: string;\r\n device?: {\r\n serial?: string;\r\n /** 0 = not reported. */\r\n battery?: number;\r\n screen_on?: boolean;\r\n wa_foreground?: boolean;\r\n at?: string;\r\n };\r\n}\r\n\r\n/** Pool snapshot of a number-station device (additive `pool` on {@link EdgeNode}). */\r\nexport interface EdgePoolSummary {\r\n station?: string | null;\r\n state?: string | null;\r\n health?: {\r\n total?: number;\r\n sendable?: number;\r\n standby?: number;\r\n needs_gesture?: number;\r\n temp_banned?: number;\r\n connected?: boolean;\r\n };\r\n numbers?: EdgePoolNumber[];\r\n}\r\n\r\n/**\r\n * An edge device row from `GET /api/v1/edge/nodes`. `kind` is additive —\r\n * `\"camera_gateway\"` | `\"whatsapp_station\"` | `\"whatsapp_pool\"` |\r\n * `\"autosync_bridge\"` (absent = legacy camera gateway). `pool` is additive —\r\n * present only on number-station devices whose connector published inventory.\r\n */\r\nexport interface EdgeNode {\r\n edge_id: string;\r\n name: string;\r\n kind?: string;\r\n status: string;\r\n version: string;\r\n last_seen_at: string | null;\r\n update_available: boolean;\r\n cameras_ok: number | null;\r\n pool?: EdgePoolSummary | null;\r\n /**\r\n * Connector behind a station-like device. `capabilities` are the ones the\r\n * skill DECLARES (`\"pairing\"`, `\"inventory\"`, …) — gate each gesture by\r\n * them, never by a hardcoded skill key.\r\n */\r\n pairing?: {\r\n agent_id: string;\r\n slug: string;\r\n skill_key: string;\r\n capabilities?: string[];\r\n } | null;\r\n}\r\n\r\n/** `client.edge.*` — edge node pairing + fleet version pinning. */\r\nexport class EdgeResource {\r\n constructor(private readonly t: Transport) {}\r\n /**\r\n * Issue a single-use pairing code (short TTL). The plaintext `code` appears\r\n * ONLY in this response (hash at rest).\r\n *\r\n * `grants` GRANTS gestures to whichever device redeems the code (allowlist;\r\n * today `[\"retry\"]`, so a desk app can ask the station to reconnect a\r\n * number). Empty — the default — is **read only**: least privilege, and\r\n * granting has to be a choice. The grant travels from the code to the node\r\n * and dies with it on `revoke`.\r\n *\r\n * Even when granted, the device never receives the gesture's ADDRESS\r\n * (`agent_id`/`skill_key`): it sends the verb and the server routes it.\r\n * Perm: `connectors.manage`.\r\n */\r\n createPairingCode<T = Json>(\r\n opts: { label?: string; ttl_seconds?: number; grants?: string[] } = {},\r\n ): Promise<T> {\r\n return this.t.request<T>(\"POST\", \"/api/v1/edge/pairing-codes\", { json: opts });\r\n }\r\n /** Nodes carry an additive `kind` field — see {@link EdgeNode}. */\r\n listNodes<T = Json>(): Promise<T> {\r\n return this.t.request<T>(\"GET\", \"/api/v1/edge/nodes\");\r\n }\r\n listDiscovered<T = Json>(): Promise<T[]> {\r\n return this.t.request<T[]>(\"GET\", \"/api/v1/edge/discovered\");\r\n }\r\n revoke<T = Json>(edgeId: string): Promise<T> {\r\n return this.t.request<T>(\"POST\", `/api/v1/edge/${edgeId}/revoke`);\r\n }\r\n setExpectedVersion<T = Json>(version: string): Promise<T> {\r\n return this.t.request<T>(\"PUT\", \"/api/v1/edge/expected-version\", { json: { version } });\r\n }\r\n getExpectedVersion<T = Json>(): Promise<T> {\r\n return this.t.request<T>(\"GET\", \"/api/v1/edge/expected-version\");\r\n }\r\n}\r\n\r\nclass VideoStreamsResource {\r\n constructor(private readonly t: Transport) {}\r\n list<T = Json>(): Promise<T[]> {\r\n return this.t.request<T[]>(\"GET\", \"/video/streams\");\r\n }\r\n create<T = Json>(input: {\r\n name: string;\r\n source_url: string;\r\n source_kind: string;\r\n classification?: string;\r\n camera_pose?: Json;\r\n }): Promise<T> {\r\n return this.t.request<T>(\"POST\", \"/video/streams\", { json: input });\r\n }\r\n delete(streamId: string): Promise<void> {\r\n return this.t.request(\"DELETE\", `/video/streams/${streamId}`);\r\n }\r\n}\r\n\r\n/** `client.video.*` — video streams, detections, tags, soak heatmap, exports. */\r\nexport class VideoResource {\r\n readonly streams: VideoStreamsResource;\r\n\r\n constructor(private readonly t: Transport) {\r\n this.streams = new VideoStreamsResource(t);\r\n }\r\n\r\n listDetections<T = Json>(streamId: string, opts: { from?: string; to?: string } = {}): Promise<T[]> {\r\n return this.t.request<T[]>(\"GET\", \"/video/detections\", {\r\n params: { stream_id: streamId, ...opts },\r\n });\r\n }\r\n submitDetection<T = Json>(detection: Json): Promise<T> {\r\n return this.t.request<T>(\"POST\", \"/video/detections\", { json: detection });\r\n }\r\n listTags<T = Json>(streamId: string): Promise<T[]> {\r\n return this.t.request<T[]>(\"GET\", \"/video/tags\", { params: { stream_id: streamId } });\r\n }\r\n submitTag<T = Json>(tag: Json): Promise<T> {\r\n return this.t.request<T>(\"POST\", \"/video/tags\", { json: tag });\r\n }\r\n soakHeatmap<T = Json>(streamId: string, from: string, to: string, precision?: number): Promise<T[]> {\r\n return this.t.request<T[]>(\"GET\", \"/video/soak\", {\r\n params: { stream_id: streamId, from, to, precision },\r\n });\r\n }\r\n createExport<T = Json>(streamId: string, frameRange: Json, redactions?: Json[]): Promise<T> {\r\n return this.t.request<T>(\"POST\", \"/video/exports\", {\r\n json: { stream_id: streamId, frame_range: frameRange, redactions },\r\n });\r\n }\r\n getExport<T = Json>(exportId: string): Promise<T> {\r\n return this.t.request<T>(\"GET\", `/video/exports/${exportId}`);\r\n }\r\n}\r\n\r\n/** `client.comunicados.*` — tenant-wide announcements (v23). */\r\nexport class ComunicadosResource {\r\n constructor(private readonly t: Transport) {}\r\n list<T = Json>(\r\n opts: { kind?: string; status_temporal?: string; include_deleted?: boolean } = {},\r\n ): Promise<T[]> {\r\n return this.t.request<T[]>(\"GET\", \"/platform/v23/comunicados\", { params: opts });\r\n }\r\n listActive<T = Json>(): Promise<T[]> {\r\n return this.t.request<T[]>(\"GET\", \"/platform/v23/comunicados/active\");\r\n }\r\n create<T = Json>(input: {\r\n kind: string;\r\n title: string;\r\n body?: string;\r\n icon?: string;\r\n closable?: boolean;\r\n duration_s?: number;\r\n audience_roles?: string[];\r\n audience_iam_perms?: string[];\r\n audience_groups?: string[];\r\n schedule_start?: string;\r\n schedule_end?: string;\r\n schedule_days_of_week?: number[];\r\n cta_label?: string;\r\n cta_href?: string;\r\n }): Promise<T> {\r\n return this.t.request<T>(\"POST\", \"/platform/v23/comunicados\", { json: input });\r\n }\r\n /** Sparse patch — only provided keys are sent. */\r\n patch<T = Json>(comunicadoId: string, patch: Json): Promise<T> {\r\n const body = Object.fromEntries(Object.entries(patch).filter(([, v]) => v !== undefined));\r\n return this.t.request<T>(\"PATCH\", `/platform/v23/comunicados/${comunicadoId}`, { json: body });\r\n }\r\n /** Soft delete. */\r\n delete(comunicadoId: string): Promise<void> {\r\n return this.t.request(\"DELETE\", `/platform/v23/comunicados/${comunicadoId}`);\r\n }\r\n /** Idempotent per-user dismissal. */\r\n dismissMe(comunicadoId: string): Promise<void> {\r\n return this.t.request(\"POST\", `/platform/v23/comunicados/${comunicadoId}/dismiss/me`, {\r\n json: {},\r\n });\r\n }\r\n}\r\n\r\nclass CampaignBriefingResource {\r\n constructor(private readonly t: Transport) {}\r\n refresh<T = Json>(\r\n opts: {\r\n candidato_nome?: string;\r\n candidato_slug?: string;\r\n perfil_payload?: Json;\r\n clipping_items?: Json[];\r\n default_modo_inicial?: string;\r\n } = {},\r\n ): Promise<T> {\r\n return this.t.request<T>(\"POST\", \"/campaign/home-briefing/refresh\", {\r\n json: { default_modo_inicial: \"B\", ...opts },\r\n });\r\n }\r\n get<T = Json>(candidatoSlug: string, includeHeadline?: boolean): Promise<T> {\r\n return this.t.request<T>(\"GET\", \"/campaign/home-briefing\", {\r\n params: {\r\n candidato_slug: candidatoSlug,\r\n include_headline: includeHeadline === undefined ? undefined : String(includeHeadline),\r\n },\r\n });\r\n }\r\n /** 409 when the briefing is in crisis mode. */\r\n regenerateHeadline<T = Json>(candidatoSlug: string): Promise<T> {\r\n return this.t.request<T>(\"POST\", \"/campaign/home-briefing/headline/regenerate\", {\r\n json: { candidato_slug: candidatoSlug },\r\n });\r\n }\r\n /** duration_hours ∈ 1..168 (default 24). */\r\n overrideModo<T = Json>(candidatoSlug: string, novoModo: string, durationHours = 24): Promise<T> {\r\n return this.t.request<T>(\"POST\", \"/campaign/home-briefing/modo/override\", {\r\n json: { candidato_slug: candidatoSlug, novo_modo: novoModo, duration_hours: durationHours },\r\n });\r\n }\r\n}\r\n\r\n/** `client.campaign.*` — campaign home-briefing engine. */\r\nexport class CampaignResource {\r\n readonly briefing: CampaignBriefingResource;\r\n constructor(t: Transport) {\r\n this.briefing = new CampaignBriefingResource(t);\r\n }\r\n}\r\n","import type { Transport } from \"../transport\";\nimport type { Json } from \"../types\";\n\n/** `client.forms.*` — governed form submissions (v23). */\nexport class FormsResource {\n constructor(private readonly t: Transport) {}\n submit<T = Json>(\n formKey: string,\n payload: Json,\n opts: {\n fields?: Json[];\n visibility_policy?: string;\n required_perm?: string;\n action_id?: string;\n target_node_type?: string;\n note?: string;\n } = {},\n ): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v23/forms/submit\", {\n json: {\n form_key: formKey,\n payload,\n visibility_policy: opts.visibility_policy ?? \"requires_auth\",\n ...opts,\n },\n });\n }\n listSubmissions<T = Json>(\n opts: { form_key?: string; limit?: number; offset?: number } = {},\n ): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/platform/v23/forms/submissions\", { params: opts });\n }\n}\n\nclass AppShellSection {\n constructor(\n private readonly t: Transport,\n private readonly path: string,\n ) {}\n get<T = Json>(): Promise<T> {\n return this.t.request<T>(\"GET\", this.path);\n }\n put<T = Json>(value: Json): Promise<T> {\n return this.t.request<T>(\"PUT\", this.path, { json: value });\n }\n}\n\n/** `client.appShell.*` — chrome configuration (banner/footer/user-menu/sidenav/homepage). */\nexport class AppShellResource {\n readonly banner: AppShellSection;\n readonly footer: AppShellSection;\n readonly userMenu: AppShellSection;\n readonly sidenav: AppShellSection;\n readonly homepage: AppShellSection;\n\n constructor(private readonly t: Transport) {\n this.banner = new AppShellSection(t, \"/platform/v23/app-shell/banner\");\n this.footer = new AppShellSection(t, \"/platform/v23/app-shell/footer\");\n this.userMenu = new AppShellSection(t, \"/platform/v23/app-shell/user-menu\");\n this.sidenav = new AppShellSection(t, \"/platform/v23/app-shell/sidenav\");\n this.homepage = new AppShellSection(t, \"/platform/v23/app-shell/homepage\");\n }\n\n getMe<T = Json>(): Promise<T> {\n return this.t.request<T>(\"GET\", \"/platform/v23/app-shell/me\");\n }\n putMe<T = Json>(config: Json): Promise<T> {\n return this.t.request<T>(\"PUT\", \"/platform/v23/app-shell/me\", { json: config });\n }\n getTenant<T = Json>(): Promise<T> {\n return this.t.request<T>(\"GET\", \"/platform/v23/app-shell/tenant\");\n }\n putTenant<T = Json>(config: Json): Promise<T> {\n return this.t.request<T>(\"PUT\", \"/platform/v23/app-shell/tenant\", { json: config });\n }\n}\n\nclass ProjectConstraintsResource {\n constructor(private readonly t: Transport) {}\n get<T = Json>(projectId: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/projects/${projectId}/constraints`);\n }\n put<T = Json>(\n projectId: string,\n opts: { mode?: string; markings?: string[]; classification_ceiling?: string } = {},\n ): Promise<T> {\n return this.t.request<T>(\"PUT\", `/projects/${projectId}/constraints`, {\n json: { mode: opts.mode ?? \"none\", ...opts },\n });\n }\n clear(projectId: string): Promise<void> {\n return this.t.request(\"DELETE\", `/projects/${projectId}/constraints`);\n }\n /** Report-only — deletes nothing. */\n revalidate<T = Json>(projectId: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/projects/${projectId}/constraints/revalidate`);\n }\n}\n\n/** `client.projects.*` — project placement + governance constraints. */\nexport class ProjectsResource {\n readonly constraints: ProjectConstraintsResource;\n constructor(private readonly t: Transport) {\n this.constraints = new ProjectConstraintsResource(t);\n }\n /** `spaceId: null` removes the project from its Space. */\n move<T = Json>(projectId: string, spaceId: string | null): Promise<T> {\n return this.t.request<T>(\"PATCH\", `/projects/${projectId}/move`, {\n json: { space_id: spaceId },\n });\n }\n}\n\n/** `client.organizations.*` — org listing + cross-org guests. */\nexport class OrganizationsResource {\n constructor(private readonly t: Transport) {}\n list<T = Json>(opts: { limit?: number; offset?: number } = {}): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/organizations\", { params: opts });\n }\n get<T = Json>(organizationId: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/organizations/${organizationId}`);\n }\n listGuests<T = Json>(organizationId: string, includeRevoked = false): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", `/organizations/${organizationId}/guests`, {\n params: { include_revoked: includeRevoked },\n });\n }\n inviteGuest<T = Json>(organizationId: string, userId: string, expiresAt?: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/organizations/${organizationId}/guests`, {\n json: { user_id: userId, expires_at: expiresAt },\n });\n }\n revokeGuest(organizationId: string, userId: string): Promise<void> {\n return this.t.request(\"DELETE\", `/organizations/${organizationId}/guests/${userId}`);\n }\n}\n\n/** `client.spaces.*` — spaces (project grouping) + org membership. */\nexport class SpacesResource {\n constructor(private readonly t: Transport) {}\n list<T = Json>(opts: { limit?: number; offset?: number } = {}): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/spaces\", { params: opts });\n }\n get<T = Json>(spaceId: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/spaces/${spaceId}`);\n }\n create<T = Json>(slug: string, displayName: string, description?: string): Promise<T> {\n return this.t.request<T>(\"POST\", \"/spaces\", {\n json: { slug, display_name: displayName, description },\n });\n }\n update<T = Json>(\n spaceId: string,\n patch: { display_name?: string; description?: string; active?: boolean },\n ): Promise<T> {\n return this.t.request<T>(\"PATCH\", `/spaces/${spaceId}`, { json: patch });\n }\n addOrganization<T = Json>(spaceId: string, tenantId: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/spaces/${spaceId}/organizations`, {\n json: { tenant_id: tenantId },\n });\n }\n removeOrganization(spaceId: string, tenantId: string): Promise<void> {\n return this.t.request(\"DELETE\", `/spaces/${spaceId}/organizations/${tenantId}`);\n }\n}\n\n/** Valid project roles (mirror of `aegis.taxonomy.VALID_ROLES`). */\nexport const VALID_PROJECT_ROLES = [\n \"owner\",\n \"editor\",\n \"reviewer\",\n \"viewer\",\n \"discoverer\",\n] as const;\n\n/** `client.solutions.*` — AIP solution designer (blueprints, diagrams, materialize, teardown, marketplace). */\nexport class SolutionsResource {\n constructor(private readonly t: Transport) {}\n\n design<T = Json>(problem: string, opts: { domain?: string; wizard?: Json } = {}): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v23/solutions/design\", {\n json: { problem, ...opts },\n });\n }\n /** Accept-flags travel nested under `accept`; blueprint/diagram_id/app_id/linked_sources stay top-level. */\n materialize<T = Json>(\n blueprint: Json,\n accept: {\n ontology_types?: boolean;\n logic_functions?: boolean;\n action_types?: boolean;\n workspace_layout?: boolean;\n project?: boolean;\n project_id?: string;\n agents?: boolean;\n flows?: boolean;\n } = {},\n opts: { diagram_id?: string; app_id?: string; linked_sources?: Json[] } = {},\n ): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v23/solutions/materialize\", {\n json: { blueprint, accept, ...opts },\n });\n }\n /** depth ∈ lean|full */\n designGraph<T = Json>(problem: string, opts: { wizard?: Json; depth?: string } = {}): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v23/solutions/design-graph\", {\n json: { problem, depth: opts.depth ?? \"lean\", wizard: opts.wizard },\n });\n }\n mergeGraph<T = Json>(currentGraph: Json, baseBlueprint: Json, incomingBlueprint: Json): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v23/solutions/merge-graph\", {\n json: {\n current_graph: currentGraph,\n base_blueprint: baseBlueprint,\n incoming_blueprint: incomingBlueprint,\n },\n });\n }\n listPatterns<T = Json>(): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/platform/v23/solutions/patterns\");\n }\n listDiagrams<T = Json>(opts: { limit?: number; offset?: number } = {}): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/platform/v23/solutions/diagrams\", { params: opts });\n }\n get<T = Json>(diagramId: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/platform/v23/solutions/diagrams/${diagramId}`);\n }\n create<T = Json>(input: {\n slug: string;\n title: string;\n nodes: Json[];\n edges: Json[];\n wizard?: Json;\n description?: string;\n project_id?: string;\n }): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v23/solutions/diagrams\", { json: input });\n }\n /** Save == publish. */\n save<T = Json>(\n diagramId: string,\n input: { nodes: Json[]; edges: Json[]; wizard?: Json; message?: string },\n ): Promise<T> {\n return this.t.request<T>(\"PATCH\", `/platform/v23/solutions/diagrams/${diagramId}`, {\n json: input,\n });\n }\n delete(diagramId: string): Promise<void> {\n return this.t.request(\"DELETE\", `/platform/v23/solutions/diagrams/${diagramId}`);\n }\n versions<T = Json>(diagramId: string): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", `/platform/v23/solutions/diagrams/${diagramId}/versions`);\n }\n walkthrough<T = Json>(diagramId: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v23/solutions/diagrams/${diagramId}/walkthrough`, {\n json: {},\n });\n }\n implementations<T = Json>(graph: Json, nodeId: string, opts: { problem?: string; wizard?: Json } = {}): Promise<T[]> {\n return this.t.request<T[]>(\"POST\", \"/platform/v23/solutions/implementations\", {\n json: { graph, node_id: nodeId, problem: opts.problem ?? \"\", wizard: opts.wizard },\n });\n }\n expandNode<T = Json>(graph: Json, nodeId: string, planId: string, wizard?: Json): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v23/solutions/expand-node\", {\n json: { graph, node_id: nodeId, plan_id: planId, wizard },\n });\n }\n ontologyModel<T = Json>(prompt: string): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v23/solutions/ontology-model\", { json: { prompt } });\n }\n fromLineage<T = Json>(events?: Json[]): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v23/solutions/from-lineage\", {\n json: events ? { events } : {},\n });\n }\n teardownPlan<T = Json>(appId: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/workshop/apps/${appId}/teardown-plan`);\n }\n teardown<T = Json>(appId: string): Promise<T> {\n return this.t.request<T>(\"DELETE\", `/workshop/apps/${appId}`, {\n params: { teardown_build: \"true\" },\n });\n }\n marketplaceListings<T = Json>(\n opts: { status?: string; q?: string; tag?: string; category?: string } = {},\n ): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/solutions/marketplace/listings\", {\n params: { status: opts.status ?? \"published\", q: opts.q, tag: opts.tag, category: opts.category },\n });\n }\n marketplaceDetail<T = Json>(listingId: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/solutions/marketplace/listings/${listingId}`);\n }\n marketplacePublish<T = Json>(\n diagramId: string,\n opts: { title?: string; description?: string; category?: string; tags?: string[] } = {},\n ): Promise<T> {\n return this.t.request<T>(\"POST\", \"/solutions/marketplace/listings\", {\n json: { diagram_id: diagramId, category: opts.category ?? \"\", ...opts },\n });\n }\n /** Re-materializes the listing in the caller's tenant. */\n marketplaceInstall<T = Json>(listingId: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/solutions/marketplace/listings/${listingId}/install`);\n }\n marketplacePatch<T = Json>(listingId: string, fields: Json): Promise<T> {\n return this.t.request<T>(\"PATCH\", `/solutions/marketplace/listings/${listingId}`, {\n json: fields,\n });\n }\n}\n","import type { Transport } from \"../transport\";\nimport type { Json } from \"../types\";\n\nclass WorkspaceVersionsResource {\n constructor(private readonly t: Transport) {}\n list<T = Json>(workspaceId: string): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", `/workspaces/${workspaceId}/versions`);\n }\n get<T = Json>(workspaceId: string, versionNumber: number): Promise<T> {\n return this.t.request<T>(\"GET\", `/workspaces/${workspaceId}/versions/${versionNumber}`);\n }\n republish<T = Json>(workspaceId: string, versionNumber: number, message?: string): Promise<T> {\n return this.t.request<T>(\n \"POST\",\n `/workspaces/${workspaceId}/versions/${versionNumber}/republish`,\n { json: message ? { message } : {} },\n );\n }\n}\n\n/** `client.workspaces.*` — Workshop workspaces: publish, navigation, promotions, kiosk. */\nexport class WorkspacesResource {\n readonly versions: WorkspaceVersionsResource;\n\n constructor(private readonly t: Transport) {\n this.versions = new WorkspaceVersionsResource(t);\n }\n\n list<T = Json>(opts: { limit?: number; offset?: number; include_inactive?: boolean } = {}): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/workspaces\", { params: opts });\n }\n get<T = Json>(workspaceId: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/workspaces/${workspaceId}`);\n }\n create<T = Json>(input: {\n slug: string;\n display_name: string;\n description?: string;\n project_id?: string;\n config?: Json;\n }): Promise<T> {\n return this.t.request<T>(\"POST\", \"/workspaces\", { json: input });\n }\n /** Save == immediate publish — bumps version + snapshot. */\n publish<T = Json>(workspaceId: string, config: Json, message?: string): Promise<T> {\n return this.t.request<T>(\"PATCH\", `/workspaces/${workspaceId}`, { json: { config, message } });\n }\n /** Soft delete (`active=false`). */\n delete(workspaceId: string): Promise<void> {\n return this.t.request(\"DELETE\", `/workspaces/${workspaceId}`);\n }\n\n getNavigation<T = Json>(workspaceId: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/workspaces/${workspaceId}/navigation`);\n }\n setNavigation<T = Json>(\n workspaceId: string,\n opts: { navigate_out_allowed?: boolean; allowed_applications?: string[]; message?: string } = {},\n ): Promise<T> {\n return this.t.request<T>(\"PUT\", `/workspaces/${workspaceId}/navigation`, {\n json: { navigate_out_allowed: opts.navigate_out_allowed ?? true, ...opts },\n });\n }\n\n listPromotions<T = Json>(workspaceId: string): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", `/workspaces/${workspaceId}/promotions`);\n }\n /** Idempotent. */\n promote<T = Json>(workspaceId: string, organizationId: string, ordering = 0): Promise<T> {\n return this.t.request<T>(\"POST\", `/workspaces/${workspaceId}/promotions`, {\n json: { organization_id: organizationId, ordering },\n });\n }\n unpromote(workspaceId: string, organizationId: string): Promise<void> {\n return this.t.request(\"DELETE\", `/workspaces/${workspaceId}/promotions/${organizationId}`);\n }\n listPromotedForOrganization<T = Json>(organizationId: string): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", `/organizations/${organizationId}/promoted-workspaces`);\n }\n\n getKiosk<T = Json>(workspaceId: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/workspaces/${workspaceId}/kiosk`);\n }\n setKiosk<T = Json>(\n workspaceId: string,\n opts: {\n hide_chrome?: boolean;\n allow_exit?: boolean;\n auto_fullscreen?: boolean;\n message?: string;\n } = {},\n ): Promise<T> {\n return this.t.request<T>(\"PUT\", `/workspaces/${workspaceId}/kiosk`, {\n json: {\n hide_chrome: opts.hide_chrome ?? true,\n allow_exit: opts.allow_exit ?? true,\n auto_fullscreen: opts.auto_fullscreen ?? true,\n message: opts.message,\n },\n });\n }\n startKioskSession<T = Json>(workspaceId: string, clientInfo?: Json): Promise<T> {\n return this.t.request<T>(\"POST\", `/workspaces/${workspaceId}/kiosk/sessions`, {\n json: clientInfo ? { client_info: clientInfo } : {},\n });\n }\n endKioskSession<T = Json>(workspaceId: string, sessionId: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/workspaces/${workspaceId}/kiosk/sessions/${sessionId}/end`);\n }\n listKioskSessions<T = Json>(\n workspaceId: string,\n opts: { active_only?: boolean; limit?: number; offset?: number } = {},\n ): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", `/workspaces/${workspaceId}/kiosk/sessions`, { params: opts });\n }\n}\n\n/** `client.workspaceUpdates.*` — workspace release-notes tours. */\nexport class WorkspaceUpdatesResource {\n constructor(private readonly t: Transport) {}\n list<T = Json>(workspaceId: string, includeArchived = false): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", `/workspaces/${workspaceId}/updates`, {\n params: { include_archived: includeArchived },\n });\n }\n /** Active updates not yet seen by the caller. */\n listUnseen<T = Json>(workspaceId: string): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", `/workspaces/${workspaceId}/updates/unseen`);\n }\n get<T = Json>(workspaceId: string, updateId: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/workspaces/${workspaceId}/updates/${updateId}`);\n }\n create<T = Json>(\n workspaceId: string,\n input: { title: string; pages: Json[]; summary?: string },\n ): Promise<T> {\n return this.t.request<T>(\"POST\", `/workspaces/${workspaceId}/updates`, { json: input });\n }\n patch<T = Json>(\n workspaceId: string,\n updateId: string,\n patch: { title?: string; summary?: string; pages?: Json[] },\n ): Promise<T> {\n return this.t.request<T>(\"PATCH\", `/workspaces/${workspaceId}/updates/${updateId}`, {\n json: patch,\n });\n }\n archive<T = Json>(workspaceId: string, updateId: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/workspaces/${workspaceId}/updates/${updateId}/archive`);\n }\n /** Hard delete — cascades pages + views. */\n delete(workspaceId: string, updateId: string): Promise<void> {\n return this.t.request(\"DELETE\", `/workspaces/${workspaceId}/updates/${updateId}`);\n }\n markSeen(workspaceId: string, updateId: string, dismissed = false): Promise<void> {\n return this.t.request(\"POST\", `/workspaces/${workspaceId}/updates/${updateId}/seen`, {\n json: { dismissed },\n });\n }\n}\n","/**\n * Versioned platform surfaces (`/platform/v22..v26`) — mirrors the Python\n * `platform_v22..platform_v26` modules, unified over the single client\n * transport (Python uses four different transports; TS uses one).\n *\n * Surfaces already mirrored on first-class resources are NOT duplicated\n * here (pipelines v22, notepad/media/timeseries/pages/guest-tokens/\n * lineage-graph/llm-budget v23, aip models v25, functions/code-repos/\n * row-policies/alarms v26).\n */\nimport type { Transport } from \"../transport\";\nimport type { Json } from \"../types\";\n\n// ---------------------------------------------------------------------------\n// v22\n// ---------------------------------------------------------------------------\n\nclass V22ActionLogResource {\n constructor(private readonly t: Transport) {}\n record<T = Json>(input: {\n subject_type: string;\n subject_id: string;\n action: string;\n summary?: string;\n before?: Json;\n after?: Json;\n markings?: string[];\n }): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v22/action-log\", { json: input });\n }\n list<T = Json>(opts: { subject_type?: string; subject_id?: string } = {}): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/platform/v22/action-log\", { params: opts });\n }\n}\n\nclass V22NotepadResource {\n constructor(private readonly t: Transport) {}\n create<T = Json>(\n title: string,\n opts: { body?: string; is_template?: boolean; markings?: string[] } = {},\n ): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v22/notepad\", { json: { title, ...opts } });\n }\n freeze<T = Json>(docId: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v22/notepad/${docId}/freeze`);\n }\n instantiate<T = Json>(templateId: string, title: string, variables?: Json): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v22/notepad/${templateId}/instantiate`, {\n json: { title, variables },\n });\n }\n}\n\nclass V22QuiverResource {\n constructor(private readonly t: Transport) {}\n create<T = Json>(input: {\n slug: string;\n display_name: string;\n cells?: Json[];\n input_vars?: Json;\n output_vars?: Json;\n }): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v22/quiver\", { json: input });\n }\n render<T = Json>(dashId: string, opts: { variables?: Json; range?: Json } = {}): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v22/quiver/${dashId}/render`, { json: opts });\n }\n}\n\n/** `client.platformV22.*` — action log, notepad templates, quiver dashboards, usage metering. */\nexport class PlatformV22Resource {\n readonly actionLog: V22ActionLogResource;\n readonly notepad: V22NotepadResource;\n readonly quiver: V22QuiverResource;\n\n constructor(private readonly t: Transport) {\n this.actionLog = new V22ActionLogResource(t);\n this.notepad = new V22NotepadResource(t);\n this.quiver = new V22QuiverResource(t);\n }\n\n /** Returns the transformed value (unwraps the response's `value` field). */\n async applyVariableTransform(kind: string, inputs: Json): Promise<unknown> {\n const payload = await this.t.request<Json>(\"POST\", \"/platform/v22/variable-transforms/apply\", {\n json: { kind, inputs },\n });\n return payload.value;\n }\n recordUsage<T = Json>(input: {\n object_type: string;\n op: string;\n app_type: string;\n user_count_delta?: number;\n event_count_delta?: number;\n }): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v22/ontology-usage/record\", { json: input });\n }\n queryUsage<T = Json>(\n opts: { object_type?: string; op?: string; app_type?: string; days?: number } = {},\n ): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/platform/v22/ontology-usage\", {\n params: { days: 30, ...opts },\n });\n }\n}\n\n// ---------------------------------------------------------------------------\n// v23\n// ---------------------------------------------------------------------------\n\nclass V23LogicResource {\n constructor(private readonly t: Transport) {}\n list<T = Json>(): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/platform/v23/aip-logic\");\n }\n get<T = Json>(fid: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/platform/v23/aip-logic/${fid}`);\n }\n create<T = Json>(input: Json): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v23/aip-logic\", { json: input });\n }\n update<T = Json>(fid: string, patch: Json): Promise<T> {\n return this.t.request<T>(\"PUT\", `/platform/v23/aip-logic/${fid}`, { json: patch });\n }\n delete(fid: string): Promise<void> {\n return this.t.request(\"DELETE\", `/platform/v23/aip-logic/${fid}`);\n }\n invoke<T = Json>(fid: string, inputs?: Json): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v23/aip-logic/${fid}/invoke`, {\n json: { inputs: inputs ?? {} },\n });\n }\n addTest<T = Json>(fid: string, input: Json): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v23/aip-logic/${fid}/tests`, { json: input });\n }\n runTest<T = Json>(fid: string, testId: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v23/aip-logic/${fid}/tests/${testId}/run`);\n }\n}\n\nclass V23ActionsResource {\n constructor(private readonly t: Transport) {}\n list<T = Json>(): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/platform/v23/action-types\");\n }\n get<T = Json>(aid: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/platform/v23/action-types/${aid}`);\n }\n create<T = Json>(input: Json): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v23/action-types\", { json: input });\n }\n update<T = Json>(aid: string, patch: Json): Promise<T> {\n return this.t.request<T>(\"PUT\", `/platform/v23/action-types/${aid}`, { json: patch });\n }\n delete(aid: string): Promise<void> {\n return this.t.request(\"DELETE\", `/platform/v23/action-types/${aid}`);\n }\n execute<T = Json>(aid: string, inputs?: Json, note?: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v23/action-types/${aid}/execute`, {\n json: { input: inputs ?? {}, note },\n });\n }\n plan<T = Json>(steps: Json[]): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v23/action-types/plan\", { json: { steps } });\n }\n executions<T = Json>(aid: string): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", `/platform/v23/action-types/${aid}/executions`);\n }\n}\n\nclass V23AssistResource {\n constructor(private readonly t: Transport) {}\n list<T = Json>(opts: { scope?: string; resource_id?: string } = {}): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/platform/v23/aip-assist\", { params: opts });\n }\n create<T = Json>(input: Json): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v23/aip-assist\", { json: input });\n }\n delete(cid: string): Promise<void> {\n return this.t.request(\"DELETE\", `/platform/v23/aip-assist/${cid}`);\n }\n suggest<T = Json>(input: Json): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v23/aip-assist/suggest\", { json: input });\n }\n}\n\nclass V23PipelineResource {\n constructor(private readonly t: Transport) {}\n list<T = Json>(): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/platform/v23/pipeline\");\n }\n create<T = Json>(input: Json): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v23/pipeline\", { json: input });\n }\n update<T = Json>(pid: string, patch: Json): Promise<T> {\n return this.t.request<T>(\"PUT\", `/platform/v23/pipeline/${pid}`, { json: patch });\n }\n delete(pid: string): Promise<void> {\n return this.t.request(\"DELETE\", `/platform/v23/pipeline/${pid}`);\n }\n run<T = Json>(pid: string, opts: Json = {}): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v23/pipeline/${pid}/run`, { json: opts });\n }\n runs<T = Json>(pid: string, limit = 50): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", `/platform/v23/pipeline/${pid}/runs`, { params: { limit } });\n }\n}\n\nclass V23StylesBrandResource {\n constructor(private readonly t: Transport) {}\n get<T = Json>(): Promise<T> {\n return this.t.request<T>(\"GET\", \"/platform/v23/styles/brand\");\n }\n update<T = Json>(patch: Json): Promise<T> {\n return this.t.request<T>(\"PUT\", \"/platform/v23/styles/brand\", { json: patch });\n }\n /** Unauthenticated-safe read. */\n getPublic<T = Json>(tenant?: string): Promise<T> {\n return this.t.request<T>(\"GET\", \"/platform/v23/styles/brand/public\", { params: { tenant } });\n }\n}\n\nclass V23StylesResource {\n readonly brand: V23StylesBrandResource;\n constructor(private readonly t: Transport) {\n this.brand = new V23StylesBrandResource(t);\n }\n get<T = Json>(): Promise<T> {\n return this.t.request<T>(\"GET\", \"/platform/v23/styles\");\n }\n update<T = Json>(tokens: Json, message?: string): Promise<T> {\n return this.t.request<T>(\"PUT\", \"/platform/v23/styles\", { json: { tokens, message } });\n }\n getRegionColors<T = Json>(): Promise<T> {\n return this.t.request<T>(\"GET\", \"/platform/v23/styles/region-colors\");\n }\n updateRegionColors<T = Json>(patch: Json): Promise<T> {\n return this.t.request<T>(\"PUT\", \"/platform/v23/styles/region-colors\", { json: patch });\n }\n /** Multipart upload (the only non-JSON write in the v2x surfaces). */\n uploadLogo<T = Json>(file: Blob, filename = \"logo.png\"): Promise<T> {\n const form = new FormData();\n form.append(\"file\", file, filename);\n return this.t.request<T>(\"POST\", \"/platform/v23/styles/upload/logo\", { form });\n }\n}\n\nfunction crudFactory(t: Transport, base: string) {\n return {\n list: (): Promise<Json[]> => t.request(\"GET\", base),\n create: (input: Json): Promise<Json> => t.request(\"POST\", base, { json: input }),\n delete: (id: string): Promise<void> => t.request(\"DELETE\", `${base}/${id}`),\n };\n}\n\n/** `client.platformV23.*` — logic, action-types, assist, pipeline, quiver,\n * connectors, automate, health, contour, vertex, repos, object-sets, carbon, styles. */\nexport class PlatformV23Resource {\n readonly logic: V23LogicResource;\n readonly actions: V23ActionsResource;\n readonly assist: V23AssistResource;\n readonly pipeline: V23PipelineResource;\n readonly styles: V23StylesResource;\n readonly quiver: {\n list(): Promise<Json[]>;\n create(input: Json): Promise<Json>;\n delete(id: string): Promise<void>;\n update(id: string, patch: Json): Promise<Json>;\n run(id: string): Promise<Json>;\n };\n readonly connectors: {\n list(): Promise<Json[]>;\n register(input: Json): Promise<Json>;\n delete(id: string): Promise<void>;\n heartbeat(id: string, status?: string, error?: string): Promise<Json>;\n };\n readonly automate: {\n list(): Promise<Json[]>;\n create(input: Json): Promise<Json>;\n delete(id: string): Promise<void>;\n fire(id: string): Promise<Json>;\n runs(id: string): Promise<Json[]>;\n };\n readonly health: {\n list(): Promise<Json[]>;\n create(input: Json): Promise<Json>;\n delete(id: string): Promise<void>;\n run(id: string): Promise<Json>;\n };\n readonly contour: {\n list(): Promise<Json[]>;\n create(input: Json): Promise<Json>;\n delete(id: string): Promise<void>;\n evaluate(id: string, limit?: number): Promise<Json>;\n };\n readonly vertex: {\n list(): Promise<Json[]>;\n create(input: Json): Promise<Json>;\n delete(id: string): Promise<void>;\n };\n readonly repos: {\n list(): Promise<Json[]>;\n create(input: Json): Promise<Json>;\n delete(id: string): Promise<void>;\n commit(id: string, input: Json): Promise<Json>;\n commits(id: string, branch?: string): Promise<Json[]>;\n show(id: string, commitId: string): Promise<Json>;\n };\n readonly objectSets: {\n list(): Promise<Json[]>;\n create(input: Json): Promise<Json>;\n delete(id: string): Promise<void>;\n materialize(id: string, limit?: number): Promise<Json>;\n };\n\n constructor(private readonly t: Transport) {\n this.logic = new V23LogicResource(t);\n this.actions = new V23ActionsResource(t);\n this.assist = new V23AssistResource(t);\n this.pipeline = new V23PipelineResource(t);\n this.styles = new V23StylesResource(t);\n\n const quiverBase = \"/platform/v23/quiver\";\n this.quiver = {\n ...crudFactory(t, quiverBase),\n update: (id, patch) => t.request(\"PUT\", `${quiverBase}/${id}`, { json: patch }),\n run: (id) => t.request(\"POST\", `${quiverBase}/${id}/run`),\n };\n const connectorsBase = \"/platform/v23/connectors\";\n this.connectors = {\n list: () => t.request(\"GET\", connectorsBase),\n register: (input) => t.request(\"POST\", connectorsBase, { json: input }),\n delete: (id) => t.request(\"DELETE\", `${connectorsBase}/${id}`),\n heartbeat: (id, status = \"connected\", error) =>\n t.request(\"POST\", `${connectorsBase}/${id}/heartbeat`, { json: { status, error } }),\n };\n const automateBase = \"/platform/v23/automate\";\n this.automate = {\n ...crudFactory(t, automateBase),\n fire: (id) => t.request(\"POST\", `${automateBase}/${id}/fire`),\n runs: (id) => t.request(\"GET\", `${automateBase}/${id}/runs`),\n };\n const healthBase = \"/platform/v23/health\";\n this.health = {\n ...crudFactory(t, healthBase),\n run: (id) => t.request(\"POST\", `${healthBase}/${id}/run`),\n };\n const contourBase = \"/platform/v23/contour\";\n this.contour = {\n ...crudFactory(t, contourBase),\n evaluate: (id, limit = 50) =>\n t.request(\"POST\", `${contourBase}/${id}/evaluate`, { json: { limit } }),\n };\n this.vertex = crudFactory(t, \"/platform/v23/vertex\");\n const reposBase = \"/platform/v23/repos\";\n this.repos = {\n ...crudFactory(t, reposBase),\n commit: (id, input) => t.request(\"POST\", `${reposBase}/${id}/commits`, { json: input }),\n commits: (id, branch) =>\n t.request(\"GET\", `${reposBase}/${id}/commits`, { params: { branch } }),\n show: (id, commitId) => t.request(\"GET\", `${reposBase}/${id}/commits/${commitId}`),\n };\n const objectSetsBase = \"/platform/v23/object-sets\";\n this.objectSets = {\n ...crudFactory(t, objectSetsBase),\n materialize: (id, limit = 200) =>\n t.request(\"POST\", `${objectSetsBase}/${id}/materialize`, { json: { limit } }),\n };\n }\n\n carbonValidate<T = Json>(config: Json): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v23/carbon/validate\", { json: config });\n }\n catalog<T = Json>(): Promise<T> {\n return this.t.request<T>(\"GET\", \"/platform/v23\");\n }\n}\n\n/** `client.marketplace.*` — product storefront + install wizard (v23). */\nexport class MarketplaceResource {\n constructor(private readonly t: Transport) {}\n storefront<T = Json>(\n opts: { category?: string; sort?: string; search?: string; tags?: string[] } = {},\n ): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/platform/v23/marketplace\", {\n params: { sort: opts.sort ?? \"popular\", category: opts.category, search: opts.search, tags: opts.tags },\n });\n }\n products<T = Json>(publishedOnly = false): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/platform/v23/marketplace/products\", {\n params: { published_only: publishedOnly },\n });\n }\n create<T = Json>(input: Json): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v23/marketplace/products\", { json: input });\n }\n publish<T = Json>(pid: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v23/marketplace/products/${pid}/publish`);\n }\n details<T = Json>(pid: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/platform/v23/marketplace/${pid}`);\n }\n ontologyImpact<T = Json>(pid: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/platform/v23/marketplace/${pid}/ontology-impact`);\n }\n installPrecheck<T = Json>(pid: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/platform/v23/marketplace/${pid}/install-precheck`);\n }\n /** 422 with `{ok:false, gaps}` in the error payload when modules are missing. */\n install<T = Json>(\n pid: string,\n opts: { confirm_text?: string; config?: Json; notes?: string } = {},\n ): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v23/marketplace/${pid}/install`, {\n json: { confirm_text: opts.confirm_text ?? \"instalar\", config: opts.config, notes: opts.notes },\n });\n }\n installed<T = Json>(): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/platform/v23/marketplace/installed\");\n }\n uninstall<T = Json>(installId: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v23/marketplace/installs/${installId}/uninstall`);\n }\n /** Admin, idempotent. */\n seed<T = Json>(): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v23/marketplace/seed\");\n }\n}\n\n// ---------------------------------------------------------------------------\n// v24\n// ---------------------------------------------------------------------------\n\n/** `client.platformV24.*` — flat surface (logic functions, assist sessions,\n * views, rules, checkpoints, expectations, change requests, scenarios,\n * aggregations, object-set traversal, automations, metrics). */\nexport class PlatformV24Resource {\n constructor(private readonly t: Transport) {}\n\n createLogicFunction<T = Json>(input: Json): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v24/logic/functions\", { json: input });\n }\n listLogicFunctions<T = Json>(): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/platform/v24/logic/functions\");\n }\n invokeLogicFunction<T = Json>(fnId: string, inputs: Json): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v24/logic/functions/${fnId}/invoke`, {\n json: { inputs },\n });\n }\n openAssistSession<T = Json>(surface: string, context?: Json): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v24/assist/sessions\", {\n json: { surface, context },\n });\n }\n assistTurn<T = Json>(sessionId: string, content: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v24/assist/sessions/${sessionId}/turn`, {\n json: { content },\n });\n }\n createView<T = Json>(input: Json): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v24/views\", { json: input });\n }\n materializeView<T = Json>(viewId: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v24/views/${viewId}/materialize`);\n }\n listTemplates<T = Json>(): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/platform/v24/marketplace/templates\");\n }\n installTemplate<T = Json>(templateId: string, config?: Json): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v24/marketplace/install\", {\n json: { template_id: templateId, config },\n });\n }\n createRule<T = Json>(input: Json): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v24/rules\", { json: input });\n }\n evaluateRules<T = Json>(trigger: string, subject: Json): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v24/rules/evaluate\", {\n json: { trigger, subject },\n });\n }\n recordCheckpoint<T = Json>(\n pipeline: string,\n step: string,\n opts: { status?: string; state?: Json } = {},\n ): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v24/checkpoints\", {\n json: { pipeline, step, status: opts.status ?? \"OK\", state: opts.state },\n });\n }\n resumePipeline<T = Json>(pipeline: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/platform/v24/checkpoints/${pipeline}/resume`);\n }\n createExpectation<T = Json>(input: Json): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v24/expectations\", { json: input });\n }\n runExpectation<T = Json>(expId: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v24/expectations/${expId}/run`);\n }\n submitChangeRequest<T = Json>(input: Json): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v24/change-requests\", { json: input });\n }\n reviewChangeRequest<T = Json>(crId: string, status: string, note?: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v24/change-requests/${crId}/review`, {\n json: { status, note },\n });\n }\n createScenario<T = Json>(input: Json): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v24/scenarios\", { json: input });\n }\n simulateScenario<T = Json>(scenarioId: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v24/scenarios/${scenarioId}/simulate`);\n }\n createNotebook<T = Json>(input: Json): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v24/quiver/notebooks\", { json: input });\n }\n createAgent<T = Json>(input: Json): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v24/agent-studio/agents\", { json: input });\n }\n createEvalDashboard<T = Json>(input: Json): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v24/eval-dashboards\", { json: input });\n }\n renderEvalDashboard<T = Json>(dashId: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/platform/v24/eval-dashboards/${dashId}/render`);\n }\n addVerticalTab<T = Json>(input: Json): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v24/vertical-tabs\", { json: input });\n }\n createAggregation<T = Json>(input: Json): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v24/aggregations\", { json: input });\n }\n runAggregation<T = Json>(aggId: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v24/aggregations/${aggId}/run`);\n }\n /** Multi-hop object-set traversal (gate `workshop.apps.read`). */\n searchAround<T = Json>(input: Json): Promise<T> {\n return this.t.request<T>(\"POST\", \"/workshop/object-set/search-around\", { json: input });\n }\n /** On-the-fly aggregation: count/sum/avg/min/max/distinct_count/cardinality. */\n aggregateObjectSet<T = Json>(input: Json): Promise<T> {\n return this.t.request<T>(\"POST\", \"/workshop/object-set/aggregate\", { json: input });\n }\n createOsdkToken<T = Json>(name: string, scopes?: string[]): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v24/osdk-tokens\", { json: { name, scopes } });\n }\n verifyOsdkToken<T = Json>(token: string): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v24/osdk-tokens/verify\", { json: { token } });\n }\n createAutomation<T = Json>(input: Json): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v24/automations\", { json: input });\n }\n runAutomation<T = Json>(autoId: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v24/automations/${autoId}/run`);\n }\n computeOntologyMetrics<T = Json>(): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v24/metrics/compute\");\n }\n forkThread<T = Json>(parentSessionId: string, branchName: string, forkAtMessage = 0): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v24/thread-branches\", {\n json: {\n parent_session_id: parentSessionId,\n branch_name: branchName,\n fork_at_message: forkAtMessage,\n },\n });\n }\n}\n\n// ---------------------------------------------------------------------------\n// v25\n// ---------------------------------------------------------------------------\n\n/** `client.platformV25.*` — machinery processes, branch protection, kiosk\n * tokens, analyst threads, dataset rollback/snapshots/limits, freshness,\n * code scan, evals generation. */\nexport class PlatformV25Resource {\n constructor(private readonly t: Transport) {}\n\n // machinery\n listProcesses<T = Json>(): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/platform/v25/machinery/processes\");\n }\n createProcess<T = Json>(input: {\n slug: string;\n display_name: string;\n graph: Json;\n description?: string;\n markings?: string[];\n project_id?: string;\n }): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v25/machinery/processes\", { json: input });\n }\n startProcessInstance<T = Json>(\n processId: string,\n opts: { subject_ref?: string; context?: Json; initial_state?: string } = {},\n ): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v25/machinery/processes/${processId}/instances`, {\n json: opts,\n });\n }\n transitionProcessInstance<T = Json>(instanceId: string, to: string, reason?: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v25/machinery/instances/${instanceId}/transition`, {\n json: { to, reason },\n });\n }\n\n // branch protection\n setBranchProtection<T = Json>(\n dataset: string,\n branch: string,\n opts: {\n require_approvals?: number;\n required_clearances?: string[];\n required_reviewers?: string[];\n block_direct_commit?: boolean;\n } = {},\n ): Promise<T> {\n return this.t.request<T>(\"PUT\", `/platform/v25/branch-protection/${dataset}/${branch}`, {\n json: {\n require_approvals: opts.require_approvals ?? 1,\n block_direct_commit: opts.block_direct_commit ?? true,\n required_clearances: opts.required_clearances,\n required_reviewers: opts.required_reviewers,\n },\n });\n }\n evaluateBranchProtection<T = Json>(\n dataset: string,\n branch: string,\n opts: { approvals?: number; committer?: string } = {},\n ): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v25/branch-protection/evaluate\", {\n json: { dataset, branch, ...opts },\n });\n }\n\n // kiosk\n mintKioskSession<T = Json>(\n appId: string,\n opts: { display_name?: string; allowed_markings?: string[]; ttl_hours?: number } = {},\n ): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v25/kiosk/sessions\", {\n json: {\n app_id: appId,\n display_name: opts.display_name ?? \"kiosk\",\n allowed_markings: opts.allowed_markings,\n ttl_hours: opts.ttl_hours ?? 24,\n },\n });\n }\n verifyKioskToken<T = Json>(token: string): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v25/kiosk/verify\", { json: { token } });\n }\n\n // analyst threads\n newAnalystThread<T = Json>(title = \"Analyst thread\"): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v25/aip/analyst/threads\", { json: { title } });\n }\n postAnalystMessage<T = Json>(\n threadId: string,\n input: { role: string; content: string; citations?: Json[]; depends_on?: string[]; kind?: string },\n ): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v25/aip/analyst/threads/${threadId}/messages`, {\n json: input,\n });\n }\n\n // dataset ops\n rollbackDataset<T = Json>(\n dataset: string,\n toAssetId: string,\n opts: { branch?: string; reason?: string } = {},\n ): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v25/datasets/${dataset}/rollback`, {\n json: { branch: opts.branch ?? \"main\", to_asset_id: toAssetId, reason: opts.reason ?? \"\" },\n });\n }\n queueSnapshot<T = Json>(dataset: string, branch = \"main\"): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v25/datasets/${dataset}/queue-snapshot`, {\n json: { branch },\n });\n }\n peekSnapshotQueue<T = Json>(dataset: string, branch = \"main\"): Promise<T> {\n return this.t.request<T>(\"GET\", `/platform/v25/datasets/${dataset}/queue-snapshot`, {\n params: { branch },\n });\n }\n setTransactionLimits<T = Json>(\n dataset: string,\n opts: { branch?: string; max_rows?: number; max_bytes?: number; max_open?: number } = {},\n ): Promise<T> {\n return this.t.request<T>(\"PUT\", `/platform/v25/datasets/${dataset}/transaction-limits`, {\n json: { branch: \"main\", max_rows: 0, max_bytes: 0, max_open: 0, ...opts },\n });\n }\n\n /** Repeated `dataset` query params. */\n checkFreshness<T = Json>(datasets: string[]): Promise<T> {\n return this.t.request<T>(\"GET\", \"/platform/v25/workshop/widgets/data-freshness\", {\n params: { dataset: datasets },\n });\n }\n\n // code scan\n raiseCodeScanFinding<T = Json>(input: {\n repo_ref: string;\n path: string;\n rule_id: string;\n severity: string;\n message: string;\n line?: number;\n commit_sha?: string;\n }): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v25/code-scan/findings\", { json: input });\n }\n codeScanSummary<T = Json>(repoRef: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/platform/v25/code-scan/summary/${repoRef}`);\n }\n\n // evals\n generateEvals<T = Json>(\n subjectFunction: string,\n opts: { description?: string; count?: number } = {},\n ): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v25/evals/generate\", {\n json: {\n subject_function: subjectFunction,\n description: opts.description ?? \"\",\n count: opts.count ?? 5,\n },\n });\n }\n analyzeEvals<T = Json>(evalRunId: string, failures: Json[]): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v25/evals/analyze\", {\n json: { eval_run_id: evalRunId, failures },\n });\n }\n}\n\n// ---------------------------------------------------------------------------\n// v26\n// ---------------------------------------------------------------------------\n\n/** `client.platformV26.*` — promotions, object/core views, capacity,\n * listeners, sensitive-data scanner, monitoring, health checks, media\n * versions, insight, peers, run history. */\nexport class PlatformV26Resource {\n constructor(private readonly t: Transport) {}\n\n listPromotions<T = Json>(): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/platform/v26/promotions\");\n }\n promoteObjectType<T = Json>(\n objectType: string,\n opts: { status?: string; justification?: string } = {},\n ): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v26/promotions\", {\n json: { object_type: objectType, status: opts.status ?? \"verified\", justification: opts.justification },\n });\n }\n listObjectViews<T = Json>(objectType?: string): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/platform/v26/object-views\", {\n params: { object_type: objectType },\n });\n }\n createObjectView<T = Json>(\n objectType: string,\n branch: string,\n opts: { parent_branch?: string; view_spec?: Json } = {},\n ): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v26/object-views\", {\n json: {\n object_type: objectType,\n branch,\n parent_branch: opts.parent_branch ?? \"main\",\n view_spec: opts.view_spec,\n },\n });\n }\n publishObjectView<T = Json>(branchId: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v26/object-views/${branchId}/publish`);\n }\n generateCoreView<T = Json>(objectType: string, topN = 8): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v26/core-views/generate/${objectType}`, {\n params: { top_n: topN },\n });\n }\n getCoreView<T = Json>(objectType: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/platform/v26/core-views/${objectType}`);\n }\n reserveCapacity<T = Json>(\n provider: string,\n model: string,\n opts: { reserved_tpm?: number; reserved_rpm?: number; reason?: string } = {},\n ): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v26/capacity/reservations\", {\n json: { provider, model, reserved_tpm: 0, reserved_rpm: 0, ...opts },\n });\n }\n consumeCapacity<T = Json>(\n provider: string,\n model: string,\n opts: { tokens?: number; requests?: number } = {},\n ): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v26/capacity/consume\", {\n json: { provider, model, tokens: opts.tokens ?? 0, requests: opts.requests ?? 1 },\n });\n }\n /** Webhook listener — the secret is returned once. */\n createListener<T = Json>(\n slug: string,\n opts: { integration?: string; target_ontology_type?: string; markings?: string[] } = {},\n ): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v26/listeners\", {\n json: { slug, integration: opts.integration ?? \"generic\", ...opts },\n });\n }\n listenerEvents<T = Json>(listenerId: string): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", `/platform/v26/listeners/${listenerId}/events`);\n }\n /** mode ∈ report_only|hash|redact */\n scanSensitive<T = Json>(\n payload: Json,\n opts: { mode?: string; scope?: string; scope_ref?: string } = {},\n ): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v26/scanner/scan\", {\n json: { payload, mode: opts.mode ?? \"report_only\", scope: opts.scope ?? \"inline\", scope_ref: opts.scope_ref },\n });\n }\n scanHistory<T = Json>(limit = 50): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/platform/v26/scanner/scans\", { params: { limit } });\n }\n createMonitoringView<T = Json>(\n slug: string,\n displayName: string,\n opts: { project_scope?: string; resource_kinds?: string[] } = {},\n ): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v26/monitoring\", {\n json: {\n slug,\n display_name: displayName,\n project_scope: opts.project_scope,\n resource_kinds: opts.resource_kinds ?? [\"object_type\", \"action\"],\n },\n });\n }\n monitoringRollup<T = Json>(slug: string): Promise<T> {\n return this.t.request<T>(\"GET\", `/platform/v26/monitoring/${slug}/rollup`);\n }\n createHealthCheck<T = Json>(\n datasetName: string,\n name: string,\n checkType: string,\n spec?: Json,\n ): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v26/health/checks\", {\n json: { dataset_name: datasetName, name, check_type: checkType, spec },\n });\n }\n runHealthCheck<T = Json>(checkId: string, branch = \"main\"): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v26/health/checks/${checkId}/run`, {\n params: { branch },\n });\n }\n healthRuns<T = Json>(checkId: string, limit = 50): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", `/platform/v26/health/checks/${checkId}/runs`, {\n params: { limit },\n });\n }\n /** Hash-referenced version metadata — no binary body. */\n uploadMediaVersion<T = Json>(\n mediaSet: string,\n path: string,\n input: { content_hash: string; mime_type?: string; size_bytes?: number; metadata?: Json },\n ): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v26/media/upload\", {\n json: { media_set: mediaSet, path, size_bytes: 0, ...input },\n });\n }\n mediaHistory<T = Json>(mediaSet: string, path: string): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/platform/v26/media/items/history\", {\n params: { media_set: mediaSet, path },\n });\n }\n createInsight<T = Json>(\n slug: string,\n input: {\n display_name: string;\n base_object_type: string;\n path: Json[];\n markings?: string[];\n project_id?: string;\n },\n ): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v26/insight\", { json: { slug, ...input } });\n }\n executeInsight<T = Json>(analysisId: string): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v26/insight/${analysisId}/execute`);\n }\n createPeer<T = Json>(\n slug: string,\n displayName: string,\n remoteUrl: string,\n authToken?: string,\n ): Promise<T> {\n return this.t.request<T>(\"POST\", \"/platform/v26/peers\", {\n json: { slug, display_name: displayName, remote_url: remoteUrl, auth_token: authToken },\n });\n }\n syncPeer<T = Json>(\n peerId: string,\n input: { resource_kind: string; remote_path: string; local_ref?: string },\n ): Promise<T> {\n return this.t.request<T>(\"POST\", `/platform/v26/peers/${peerId}/sync`, { json: input });\n }\n listPeerMirrors<T = Json>(peerId: string): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", `/platform/v26/peers/${peerId}/mirrors`);\n }\n runHistory<T = Json>(\n opts: {\n status?: string;\n since?: string;\n until?: string;\n user?: string;\n action?: string;\n min_duration_ms?: number;\n failed_only?: boolean;\n limit?: number;\n } = {},\n ): Promise<T[]> {\n return this.t.request<T[]>(\"GET\", \"/platform/v26/run-history\", {\n params: { limit: 200, ...opts },\n });\n }\n}\n","/**\r\n * `AegisClient` — the top-level handle. Mirrors `aegis.client.AegisClient`\r\n * from the Python SDK (`aegis-platform-sdk` on PyPI).\r\n *\r\n * Token resolution priority:\r\n * 1. `token` option (typically an `osdk_…` API key for programmatic\r\n * callers, or a JWT issued by `/auth/login`).\r\n * 2. After `client.auth.login(...)` succeeds, the issued JWT is cached\r\n * and used automatically for subsequent calls.\r\n *\r\n * Transport is the platform `fetch` (Node ≥ 18 or any browser) — the SDK\r\n * has zero runtime dependencies.\r\n */\r\nimport { buildUrl, handleResponse } from \"./transport\";\r\nimport type { RequestOptions, Transport } from \"./transport\";\r\nimport { parseSseStream } from \"./sse\";\r\nimport type { SseEvent } from \"./sse\";\r\nimport { AegisAPIError, AuthError } from \"./errors\";\r\nimport type { TokenPair } from \"./types\";\r\nimport { AuthResource } from \"./resources/auth\";\r\nimport { IamResource } from \"./resources/iam\";\r\nimport { OsdkResource } from \"./resources/osdk\";\r\nimport { OperatorResource } from \"./resources/operator\";\r\nimport { OntologyResource } from \"./resources/ontology\";\r\nimport { AipResource } from \"./resources/aip\";\r\nimport { CodeRepositoriesResource, FunctionsResource } from \"./resources/functions\";\r\nimport { DatasetsResource } from \"./resources/datasets\";\r\nimport {\r\n DocsResource,\r\n DossierResource,\r\n GeoResource,\r\n MapTemplatesResource,\r\n MediaResource,\r\n PagesResource,\r\n TimeSeriesResource,\r\n} from \"./resources/reading\";\r\nimport { PublicGuestResource } from \"./resources/publicGuest\";\r\nimport {\r\n AlarmsResource,\r\n AlertsResource,\r\n ChatResource,\r\n ConnectorsResource,\r\n EventsResource,\r\n NotepadResource,\r\n PipelinesResource,\r\n} from \"./resources/operational\";\r\nimport {\r\n AccessAuditResource,\r\n ErasureResource,\r\n GuestTokensResource,\r\n LineageResource,\r\n MarkingsResource,\r\n PropertyMarkingsResource,\r\n ResourceMarkingsResource,\r\n RetentionResource,\r\n RowPoliciesResource,\r\n} from \"./resources/governance\";\r\nimport {\r\n CodegenResource,\r\n ComputeResource,\r\n CorrelationResource,\r\n InferenceResource,\r\n MergeResource,\r\n SituationalResource,\r\n WorkshopResource,\r\n} from \"./resources/platform\";\r\nimport {\r\n AtlasResource,\r\n BriefingResource,\r\n CampaignResource,\r\n CctvResource,\r\n ComunicadosResource,\r\n EdgeResource,\r\n VideoResource,\r\n} from \"./resources/domain\";\r\nimport {\r\n AppShellResource,\r\n FormsResource,\r\n OrganizationsResource,\r\n ProjectsResource,\r\n SolutionsResource,\r\n SpacesResource,\r\n} from \"./resources/collab\";\r\nimport type { GroupsResource } from \"./resources/iam\";\r\nimport { WorkspacesResource, WorkspaceUpdatesResource } from \"./resources/workspaces\";\r\nimport {\r\n MarketplaceResource,\r\n PlatformV22Resource,\r\n PlatformV23Resource,\r\n PlatformV24Resource,\r\n PlatformV25Resource,\r\n PlatformV26Resource,\r\n} from \"./resources/platformVersions\";\r\n\r\nexport interface AegisClientOptions {\r\n /** Root URL of the AEGIS deployment, e.g. `https://aegis.example.com`.\r\n * Falls back to `process.env.AEGIS_API_URL`, then `http://localhost:8002`. */\r\n baseUrl?: string;\r\n /** Bearer token — a JWT (`eyJ…`) or an OSDK key (`osdk_…`).\r\n * Falls back to `process.env.AEGIS_TOKEN`. Omit for `auth.login(...)` flows. */\r\n token?: string;\r\n /** Per-request timeout in milliseconds. Defaults to 15000. */\r\n timeoutMs?: number;\r\n /** Custom fetch implementation (tests, proxies, polyfills). */\r\n fetch?: typeof globalThis.fetch;\r\n /** Extra fetch init merged into every request — e.g. cookie-proxy setups\r\n * use `{ credentials: \"include\", cache: \"no-store\" }` with a relative\r\n * `baseUrl` like `/api` (the browser cookie carries the auth). */\r\n fetchInit?: Omit<RequestInit, \"method\" | \"body\" | \"signal\">;\r\n /** Refresh token to seed automatic JWT refresh (normally captured from\r\n * `auth.login`). On a 401 the client rotates it via `POST /auth/refresh`\r\n * and retries the request once. */\r\n refreshToken?: string;\r\n /** Retry/backoff for transient failures (network errors, timeouts, 429/\r\n * 502/503/504). GET/HEAD only unless `retryPost`. Exponential backoff\r\n * with full jitter. Pass `{ retries: 0 }` to disable. */\r\n retry?: RetryOptions;\r\n}\r\n\r\nexport interface RetryOptions {\r\n /** Extra attempts after the first (default 2). */\r\n retries?: number;\r\n /** First backoff delay in ms (default 250; doubles per attempt). */\r\n baseDelayMs?: number;\r\n /** Backoff ceiling in ms (default 4000). */\r\n maxDelayMs?: number;\r\n /** Also retry non-idempotent verbs (default false). */\r\n retryPost?: boolean;\r\n}\r\n\r\nconst RETRIABLE_STATUS = new Set([429, 502, 503, 504]);\r\n\r\nfunction isRetriableError(err: unknown): boolean {\r\n if (err instanceof AegisAPIError) return RETRIABLE_STATUS.has(err.statusCode);\r\n // Network failure (fetch rejects with TypeError) or per-request timeout.\r\n if (err instanceof TypeError) return true;\r\n return err instanceof Error && err.name === \"TimeoutError\";\r\n}\r\n\r\nfunction backoffDelay(attempt: number, base: number, max: number): number {\r\n const exp = Math.min(max, base * 2 ** (attempt - 1));\r\n return exp * (0.5 + Math.random() * 0.5); // full jitter\r\n}\r\n\r\nconst sleep = (ms: number) => new Promise<void>((resolve) => setTimeout(resolve, ms));\r\n\r\nfunction envVar(name: string): string | undefined {\r\n if (typeof process !== \"undefined\" && process.env) return process.env[name];\r\n return undefined;\r\n}\r\n\r\nexport class AegisClient implements Transport {\r\n readonly baseUrl: string;\r\n private _token: string | null;\r\n private readonly timeoutMs: number;\r\n private readonly _fetchOverride?: typeof globalThis.fetch;\r\n private readonly _fetchInit: Omit<RequestInit, \"method\" | \"body\" | \"signal\">;\r\n private _refreshToken: string | null;\r\n private readonly _retry: Required<RetryOptions>;\r\n private _refreshInFlight: Promise<void> | null = null;\r\n\r\n readonly auth: AuthResource;\r\n readonly iam: IamResource;\r\n readonly osdk: OsdkResource;\r\n readonly operator: OperatorResource;\r\n readonly ontology: OntologyResource;\r\n readonly aip: AipResource;\r\n readonly functions: FunctionsResource;\r\n readonly codeRepositories: CodeRepositoriesResource;\r\n readonly datasets: DatasetsResource;\r\n // Reading / consumption\r\n readonly geo: GeoResource;\r\n readonly mapTemplates: MapTemplatesResource;\r\n readonly media: MediaResource;\r\n readonly docs: DocsResource;\r\n readonly pages: PagesResource;\r\n readonly dossier: DossierResource;\r\n readonly timeseries: TimeSeriesResource;\r\n /** Public guest-token consumer surface (`/public/v1/guest/{token}/*`). */\r\n readonly publicGuest: PublicGuestResource;\r\n // Operational\r\n readonly alerts: AlertsResource;\r\n readonly alarms: AlarmsResource;\r\n readonly events: EventsResource;\r\n readonly connectors: ConnectorsResource;\r\n readonly pipelines: PipelinesResource;\r\n readonly chat: ChatResource;\r\n readonly notepad: NotepadResource;\r\n // Governance\r\n readonly lineage: LineageResource;\r\n readonly accessAudit: AccessAuditResource;\r\n readonly markings: MarkingsResource;\r\n readonly resourceMarkings: ResourceMarkingsResource;\r\n readonly propertyMarkings: PropertyMarkingsResource;\r\n readonly rowPolicies: RowPoliciesResource;\r\n readonly erasure: ErasureResource;\r\n readonly retention: RetentionResource;\r\n readonly guestTokens: GuestTokensResource;\r\n // Domain\r\n readonly atlas: AtlasResource;\r\n readonly briefing: BriefingResource;\r\n readonly campaign: CampaignResource;\r\n readonly cctv: CctvResource;\r\n readonly comunicados: ComunicadosResource;\r\n readonly edge: EdgeResource;\r\n readonly video: VideoResource;\r\n // Collaboration / apps\r\n readonly appShell: AppShellResource;\r\n readonly forms: FormsResource;\r\n /** Alias of `iam.groups` (mirrors Python's standalone `client.groups`). */\r\n readonly groups: GroupsResource;\r\n readonly organizations: OrganizationsResource;\r\n readonly projects: ProjectsResource;\r\n readonly solutions: SolutionsResource;\r\n readonly spaces: SpacesResource;\r\n readonly workspaces: WorkspacesResource;\r\n readonly workspaceUpdates: WorkspaceUpdatesResource;\r\n readonly marketplace: MarketplaceResource;\r\n // Versioned platform surfaces\r\n readonly platformV22: PlatformV22Resource;\r\n readonly platformV23: PlatformV23Resource;\r\n readonly platformV24: PlatformV24Resource;\r\n readonly platformV25: PlatformV25Resource;\r\n readonly platformV26: PlatformV26Resource;\r\n // Platform\r\n readonly workshop: WorkshopResource;\r\n readonly compute: ComputeResource;\r\n readonly inference: InferenceResource;\r\n readonly codegen: CodegenResource;\r\n readonly correlation: CorrelationResource;\r\n readonly situational: SituationalResource;\r\n readonly merge: MergeResource;\r\n\r\n constructor(options: AegisClientOptions = {}) {\r\n const baseUrl = options.baseUrl ?? envVar(\"AEGIS_API_URL\") ?? \"http://localhost:8002\";\r\n this.baseUrl = baseUrl.replace(/\\/+$/, \"\");\r\n this._token = options.token ?? envVar(\"AEGIS_TOKEN\") ?? null;\r\n this.timeoutMs = options.timeoutMs ?? 15_000;\r\n // Resolved lazily per request — construction must not require a global\r\n // fetch (jsdom test envs and late polyfills set it after construction).\r\n this._fetchOverride = options.fetch;\r\n this._fetchInit = options.fetchInit ?? {};\r\n this._refreshToken = options.refreshToken ?? null;\r\n this._retry = {\r\n retries: options.retry?.retries ?? 2,\r\n baseDelayMs: options.retry?.baseDelayMs ?? 250,\r\n maxDelayMs: options.retry?.maxDelayMs ?? 4000,\r\n retryPost: options.retry?.retryPost ?? false,\r\n };\r\n\r\n this.auth = new AuthResource(this, (pair) => {\r\n this.setToken(pair.access_token);\r\n if (pair.refresh_token) this.setRefreshToken(pair.refresh_token);\r\n });\r\n this.iam = new IamResource(this);\r\n this.osdk = new OsdkResource(this);\r\n this.operator = new OperatorResource(this);\r\n this.ontology = new OntologyResource(this);\r\n this.aip = new AipResource(this);\r\n this.functions = new FunctionsResource(this);\r\n this.codeRepositories = new CodeRepositoriesResource(this);\r\n this.datasets = new DatasetsResource(this);\r\n this.geo = new GeoResource(this);\r\n this.mapTemplates = new MapTemplatesResource(this);\r\n this.media = new MediaResource(this);\r\n this.docs = new DocsResource(this);\r\n this.pages = new PagesResource(this);\r\n this.dossier = new DossierResource(this);\r\n this.timeseries = new TimeSeriesResource(this);\r\n this.publicGuest = new PublicGuestResource(this);\r\n this.alerts = new AlertsResource(this);\r\n this.alarms = new AlarmsResource(this);\r\n this.events = new EventsResource(this);\r\n this.connectors = new ConnectorsResource(this);\r\n this.pipelines = new PipelinesResource(this);\r\n this.chat = new ChatResource(this);\r\n this.notepad = new NotepadResource(this);\r\n this.lineage = new LineageResource(this);\r\n this.accessAudit = new AccessAuditResource(this);\r\n this.markings = new MarkingsResource(this);\r\n this.resourceMarkings = new ResourceMarkingsResource(this);\r\n this.propertyMarkings = new PropertyMarkingsResource(this);\r\n this.rowPolicies = new RowPoliciesResource(this);\r\n this.erasure = new ErasureResource(this);\r\n this.retention = new RetentionResource(this);\r\n this.guestTokens = new GuestTokensResource(this);\r\n this.atlas = new AtlasResource(this);\r\n this.briefing = new BriefingResource(this);\r\n this.campaign = new CampaignResource(this);\r\n this.cctv = new CctvResource(this);\r\n this.comunicados = new ComunicadosResource(this);\r\n this.edge = new EdgeResource(this);\r\n this.video = new VideoResource(this);\r\n this.appShell = new AppShellResource(this);\r\n this.forms = new FormsResource(this);\r\n this.groups = this.iam.groups;\r\n this.organizations = new OrganizationsResource(this);\r\n this.projects = new ProjectsResource(this);\r\n this.solutions = new SolutionsResource(this);\r\n this.spaces = new SpacesResource(this);\r\n this.workspaces = new WorkspacesResource(this);\r\n this.workspaceUpdates = new WorkspaceUpdatesResource(this);\r\n this.marketplace = new MarketplaceResource(this);\r\n this.platformV22 = new PlatformV22Resource(this);\r\n this.platformV23 = new PlatformV23Resource(this);\r\n this.platformV24 = new PlatformV24Resource(this);\r\n this.platformV25 = new PlatformV25Resource(this);\r\n this.platformV26 = new PlatformV26Resource(this);\r\n this.workshop = new WorkshopResource(this);\r\n this.compute = new ComputeResource(this);\r\n this.inference = new InferenceResource(this);\r\n this.codegen = new CodegenResource(this);\r\n this.correlation = new CorrelationResource(this);\r\n this.situational = new SituationalResource(this);\r\n this.merge = new MergeResource(this);\r\n }\r\n\r\n /** Replace the active bearer token (or clear with `null`). */\r\n setToken(token: string | null): void {\r\n this._token = token;\r\n }\r\n\r\n /** Replace the refresh token used for automatic 401 recovery. */\r\n setRefreshToken(token: string | null): void {\r\n this._refreshToken = token;\r\n }\r\n\r\n get token(): string | null {\r\n return this._token;\r\n }\r\n\r\n private get _fetch(): typeof globalThis.fetch {\r\n if (this._fetchOverride) return this._fetchOverride;\r\n const globalFetch = globalThis.fetch;\r\n if (!globalFetch) {\r\n throw new Error(\"no fetch available — Node >= 18, a browser, or pass options.fetch\");\r\n }\r\n return globalFetch.bind(globalThis);\r\n }\r\n\r\n /** Generic escape hatch — call any AEGIS endpoint not yet wrapped.\r\n * Transient failures are retried with backoff (see `RetryOptions`);\r\n * a 401 triggers one transparent `POST /auth/refresh` + retry when a\r\n * refresh token is held. */\r\n async request<T = unknown>(method: string, path: string, opts: RequestOptions = {}): Promise<T> {\r\n try {\r\n return await this._requestWithRetry<T>(method, path, opts);\r\n } catch (err) {\r\n const refreshable =\r\n err instanceof AuthError && this._refreshToken !== null && !path.startsWith(\"/auth/\");\r\n if (!refreshable) throw err;\r\n await this._refreshOnce();\r\n return this._requestWithRetry<T>(method, path, opts);\r\n }\r\n }\r\n\r\n /** Rotate the refresh token (single-flight) and attach the new pair. */\r\n private _refreshOnce(): Promise<void> {\r\n this._refreshInFlight ??= (async () => {\r\n try {\r\n const pair = await this._requestWithRetry<TokenPair>(\"POST\", \"/auth/refresh\", {\r\n json: { refresh_token: this._refreshToken },\r\n });\r\n this._token = pair.access_token;\r\n this._refreshToken = pair.refresh_token ?? this._refreshToken;\r\n } catch (err) {\r\n // A rejected refresh is terminal — drop it so we don't loop.\r\n if (err instanceof AuthError) this._refreshToken = null;\r\n throw err;\r\n } finally {\r\n this._refreshInFlight = null;\r\n }\r\n })();\r\n return this._refreshInFlight;\r\n }\r\n\r\n private async _requestWithRetry<T>(\r\n method: string,\r\n path: string,\r\n opts: RequestOptions,\r\n ): Promise<T> {\r\n const idempotent = method === \"GET\" || method === \"HEAD\" || this._retry.retryPost;\r\n for (let attempt = 0; ; attempt++) {\r\n try {\r\n return await this._doRequest<T>(method, path, opts);\r\n } catch (err) {\r\n if (!idempotent || attempt >= this._retry.retries || !isRetriableError(err)) throw err;\r\n await sleep(backoffDelay(attempt + 1, this._retry.baseDelayMs, this._retry.maxDelayMs));\r\n }\r\n }\r\n }\r\n\r\n private async _doRequest<T>(method: string, path: string, opts: RequestOptions): Promise<T> {\r\n const url = buildUrl(this.baseUrl, path, opts.params);\r\n const headers: Record<string, string> = {};\r\n if (this._token) headers.Authorization = `Bearer ${this._token}`;\r\n\r\n const init: RequestInit = { ...this._fetchInit, method, headers };\r\n if (opts.form !== undefined) {\r\n init.body = opts.form; // fetch sets the multipart boundary header itself\r\n } else if (opts.json !== undefined) {\r\n headers[\"Content-Type\"] = \"application/json\";\r\n init.body = JSON.stringify(opts.json);\r\n }\r\n if (opts.signal) {\r\n init.signal = opts.signal;\r\n } else if (typeof AbortSignal !== \"undefined\" && \"timeout\" in AbortSignal) {\r\n init.signal = AbortSignal.timeout(this.timeoutMs);\r\n }\r\n\r\n const res = await this._fetch(url, init);\r\n return handleResponse<T>(res);\r\n }\r\n\r\n /**\r\n * Open a server-sent-events endpoint and iterate its events. Long-lived:\r\n * no default timeout is applied — pass `signal` to cancel.\r\n *\r\n * ```ts\r\n * for await (const ev of client.stream(\"/operator/tasks/t1/events\")) { … }\r\n * ```\r\n */\r\n async *stream(\r\n path: string,\r\n opts: RequestOptions & { method?: string } = {},\r\n ): AsyncGenerator<SseEvent, void, undefined> {\r\n const url = buildUrl(this.baseUrl, path, opts.params);\r\n const headers: Record<string, string> = { Accept: \"text/event-stream\" };\r\n if (this._token) headers.Authorization = `Bearer ${this._token}`;\r\n const init: RequestInit = { ...this._fetchInit, method: opts.method ?? \"GET\", headers };\r\n if (opts.json !== undefined) {\r\n headers[\"Content-Type\"] = \"application/json\";\r\n init.body = JSON.stringify(opts.json);\r\n init.method = opts.method ?? \"POST\";\r\n }\r\n if (opts.signal) init.signal = opts.signal;\r\n\r\n const res = await this._fetch(url, init);\r\n if (!res.ok || !res.body) {\r\n await handleResponse(res); // throws the mapped error hierarchy\r\n throw new AegisAPIError(res.status, \"stream endpoint returned no body\");\r\n }\r\n yield* parseSseStream(res.body);\r\n }\r\n}\r\n","/**\n * Pure client-side CBAC helpers — mirrors `aegis/classification.py`.\n * No HTTP: these validate the classification invariant before writes.\n */\n\nexport type ClassificationLevel = \"PUBLICO\" | \"INTERNO\" | \"RESTRITO\" | \"SECRETO\";\n\nexport const VALID_LEVELS: readonly ClassificationLevel[] = [\n \"PUBLICO\",\n \"INTERNO\",\n \"RESTRITO\",\n \"SECRETO\",\n];\n\nexport const CLASSIFICATION_RANK: Readonly<Record<ClassificationLevel, number>> = {\n PUBLICO: 0,\n INTERNO: 1,\n RESTRITO: 2,\n SECRETO: 3,\n};\n\nexport const CLASSIFICATION_LABEL: Readonly<Record<ClassificationLevel, string>> = {\n PUBLICO: \"Público\",\n INTERNO: \"Interno\",\n RESTRITO: \"Restrito\",\n SECRETO: \"Secreto\",\n};\n\nexport class ClassificationInvariantViolation extends Error {\n constructor(message: string) {\n super(message);\n this.name = \"ClassificationInvariantViolation\";\n }\n}\n\nfunction rank(level: string): number {\n const r = CLASSIFICATION_RANK[level as ClassificationLevel];\n if (r === undefined) throw new ClassificationInvariantViolation(`invalid level: ${level}`);\n return r;\n}\n\n/** Highest classification level among the given ones. */\nexport function maxLevel(levels: Iterable<string>): ClassificationLevel {\n let best: ClassificationLevel = \"PUBLICO\";\n for (const level of levels) {\n if (rank(level) > CLASSIFICATION_RANK[best]) best = level as ClassificationLevel;\n }\n return best;\n}\n\n/**\n * The file classification must dominate the data classification, and the\n * data classification must dominate every upstream input. Throws\n * `ClassificationInvariantViolation` on breach.\n */\nexport function validateInvariant(\n fileCls: string,\n dataCls: string,\n upstreamData: Iterable<string> = [],\n): void {\n if (rank(fileCls) < rank(dataCls)) {\n throw new ClassificationInvariantViolation(\n `file classification ${fileCls} must dominate data classification ${dataCls}`,\n );\n }\n for (const upstream of upstreamData) {\n if (rank(dataCls) < rank(upstream)) {\n throw new ClassificationInvariantViolation(\n `data classification ${dataCls} must dominate upstream ${upstream}`,\n );\n }\n }\n}\n","/**\n * IAM permission catalog — mirrors `aegis/iam/permissions.py` verbatim.\n * Pure client-side (no HTTP): lets SDK consumers reference permission keys\n * statically instead of hardcoding strings.\n */\n\nexport const NAV_PERMISSIONS = [\n \"nav.section.discover\",\n \"nav.item.discover.home\",\n \"nav.section.operations\",\n \"nav.item.operations.tasks\",\n \"nav.section.core_loop\",\n \"nav.item.core_loop.alerts\",\n \"nav.item.core_loop.proposals\",\n \"nav.item.core_loop.actions\",\n \"nav.section.ontology\",\n \"nav.item.ontology.manager\",\n \"nav.item.ontology.explorer\",\n \"nav.item.ontology.types\",\n \"nav.item.ontology.actions\",\n \"nav.item.ontology.interfaces\",\n \"nav.item.ontology.links\",\n \"nav.item.ontology.views\",\n \"nav.item.ontology.aggregations\",\n \"nav.item.ontology.object_sets\",\n \"nav.section.data\",\n \"nav.item.data.datasets\",\n \"nav.item.data.pipelines\",\n \"nav.item.data.connectors\",\n \"nav.item.data.media\",\n \"nav.item.data.schedules\",\n \"nav.item.data.notepad\",\n \"nav.item.data.lineage\",\n \"nav.item.data.health\",\n \"nav.section.aip\",\n \"nav.item.aip.threads\",\n \"nav.item.aip.agents\",\n \"nav.item.aip.tools\",\n \"nav.item.aip.logic\",\n \"nav.item.aip.models\",\n \"nav.item.aip.capacity\",\n \"nav.item.aip.scenarios\",\n \"nav.item.aip.evals\",\n \"nav.item.aip.memory\",\n \"nav.item.aip.mcp_adapters\",\n \"nav.section.workshop\",\n \"nav.item.workshop.apps\",\n \"nav.section.governance\",\n \"nav.item.governance.projects\",\n \"nav.item.governance.audit\",\n \"nav.item.governance.lgpd\",\n \"nav.item.governance.trace\",\n \"nav.item.governance.rules\",\n \"nav.item.governance.change_requests\",\n \"nav.item.governance.automations\",\n \"nav.item.governance.tokens\",\n \"nav.item.governance.peers\",\n \"nav.item.governance.code_scan\",\n \"nav.item.governance.kiosk\",\n \"nav.item.governance.access\",\n \"nav.item.governance.osdk\",\n \"nav.section.resources\",\n \"nav.item.resources.docs\",\n \"nav.item.resources.template_gallery\",\n \"nav.item.resources.aegis_sdk\",\n \"nav.section.other\",\n \"nav.item.other.intel_map\",\n \"nav.item.other.cognitive\",\n \"nav.item.other.map_view\",\n \"nav.section.campanha\",\n \"nav.item.campaign.hub\",\n \"nav.item.campaign.chat\",\n \"nav.item.campaign.visibility\",\n \"nav.item.campaign.agents\",\n \"nav.item.campaign.scenarios\",\n \"nav.item.campaign.brief\",\n \"nav.section.painel-de-controle\",\n \"nav.item.painel.home\",\n \"nav.item.painel.aprovacoes\",\n \"nav.item.painel.comunicacoes\",\n \"nav.item.painel.atividade\",\n] as const;\n\nexport const CAPABILITY_PERMISSIONS = [\n \"ontology.types.read\",\n \"ontology.types.write\",\n \"ontology.actions.read\",\n \"ontology.actions.write\",\n \"ontology.actions.execute\",\n \"ontology.actions.execute_external\",\n \"ontology.objects.read\",\n \"ontology.objects.write\",\n \"ontology.objects.bulk_delete\",\n \"ontology.links.read\",\n \"ontology.links.write\",\n \"solution.diagram.read\",\n \"solution.diagram.write\",\n \"solution.diagram.publish\",\n \"solution.diagram.delete\",\n \"solution.diagram.history.read\",\n \"solution.materialize.delete\",\n \"solution.refactor\",\n \"data.datasets.read\",\n \"data.datasets.write\",\n \"data.pipelines.read\",\n \"data.pipelines.write\",\n \"data.lineage.read\",\n \"data.connectors.read\",\n \"data.connectors.write\",\n \"aip.threads.read\",\n \"aip.threads.write\",\n \"aip.agents.read\",\n \"aip.agents.write\",\n \"aip.models.read\",\n \"aip.models.write\",\n \"aip.evals.read\",\n \"aip.evals.run\",\n \"aip.memory.read\",\n \"aip.memory.write\",\n \"workshop.apps.read\",\n \"workshop.apps.write\",\n \"workshop.apps.purge\",\n \"operator.tasks.read\",\n \"operator.tasks.write\",\n \"governance.audit.read\",\n \"governance.rules.read\",\n \"governance.rules.write\",\n \"governance.change_requests.read\",\n \"governance.change_requests.write\",\n \"governance.change_requests.approve\",\n \"governance.tokens.read\",\n \"governance.tokens.write\",\n \"governance.lgpd.read\",\n \"governance.lgpd.write\",\n \"governance.peers.read\",\n \"governance.peers.write\",\n \"governance.kiosk.read\",\n \"governance.kiosk.write\",\n \"admin.acessos\",\n \"admin.classificacao\",\n \"admin.auditoria\",\n \"admin.federacao\",\n \"admin.unidades\",\n \"admin.templates\",\n \"admin.automacoes\",\n \"admin.tokens\",\n \"campaign.chat.read\",\n \"campaign.chat.write\",\n \"campaign.brief.read\",\n \"campaign.brief.generate\",\n \"campaign.brief.sign\",\n \"campaign.scenario.read\",\n \"campaign.scenario.run\",\n \"campaign.scenario.write\",\n \"campaign.visibility.read\",\n \"campaign.visibility.pin\",\n \"campaign.visibility.escalate\",\n \"campaign.agents.read\",\n \"campaign.agents.write\",\n \"campaign.agents.run\",\n \"campaign.flows.read\",\n \"campaign.flows.write\",\n \"campaign.flows.run\",\n \"campaign.briefing.read\",\n \"campaign.briefing.refresh\",\n \"campaign.briefing.headline\",\n \"campaign.briefing.crisis_override\",\n \"vault.cookies.manage\",\n \"iam.users.read\",\n \"iam.users.write\",\n \"iam.roles.read\",\n \"iam.roles.write\",\n \"iam.permissions.read\",\n \"iam.permissions.write\",\n \"iam.nav.read\",\n \"iam.nav.write\",\n \"iam.audit.read\",\n \"iam.groups.read\",\n \"iam.groups.write\",\n \"iam.groups.manage_members\",\n \"docs.tree.read\",\n \"docs.content.read\",\n \"aip.flows.read\",\n \"aip.flows.write\",\n \"aip.flows.execute\",\n \"aip.agents.execute\",\n \"briefing.read\",\n \"briefing.refresh\",\n \"ontology.objects.view\",\n \"ontology.graph.read\",\n \"ontology.graph.export\",\n \"ontology.explorer.aggregate\",\n \"workshop.briefings.read\",\n \"workshop.briefings.write\",\n \"workshop.briefings.broadcast\",\n \"workshop.dossiers.read\",\n \"workshop.dossiers.write\",\n \"workshop.dossiers.share\",\n \"workshop.covs.read\",\n \"workshop.covs.write\",\n \"workshop.covs.share\",\n \"chat.channels.read\",\n \"chat.channels.write\",\n \"chat.channels.manage\",\n \"chat.messages.send\",\n \"chat.messages.read\",\n \"alerts.feeds.read\",\n \"alerts.feeds.subscribe\",\n \"alerts.watches.read\",\n \"alerts.watches.subscribe\",\n \"alerts.geofences.read\",\n \"alerts.geofences.manage\",\n \"alerts.shares.read\",\n \"alerts.read\",\n \"alerts.escalate\",\n \"alerts.routes.view\",\n \"alerts.routes.manage\",\n \"atlas.layers.read\",\n \"atlas.layers.manage\",\n \"atlas.geofences.draw\",\n \"atlas.evaluation.read\",\n \"atlas.evaluation.manage\",\n \"video.exports.create\",\n \"connectors.manage\",\n \"events.pipeline.view\",\n \"events.pipeline.manage\",\n \"situational.correlate.view\",\n \"situational.correlate.manage\",\n \"security.painel.view\",\n \"security.buscar.view\",\n \"security.geo.view\",\n \"security.geo.cerca.create\",\n \"security.cameras.view\",\n \"security.cameras.tag\",\n \"security.cameras.export\",\n \"security.cameras.manage\",\n \"security.cameras.bookmark\",\n \"security.cameras.hotlist\",\n \"security.cameras.cloud_inference\",\n \"security.explorador.view\",\n \"security.rede.view\",\n \"security.rede.edit\",\n \"security.ficha.view\",\n \"security.ficha.edit\",\n \"security.alertas.view\",\n \"security.alertas.resolve\",\n \"security.relatorios.view\",\n \"security.relatorios.edit\",\n \"security.relatorios.close\",\n \"security.briefings.view\",\n \"security.briefings.edit\",\n \"security.briefings.broadcast\",\n \"security.workshop.view\",\n \"security.workshop.edit\",\n \"security.workshop.publish_global\",\n \"security.fluxos.view\",\n \"security.fluxos.edit\",\n \"security.fluxos.run\",\n \"security.agentes.view\",\n \"security.agentes.edit\",\n \"security.agentes.run\",\n \"security.ontologia.view\",\n \"security.ontologia.edit\",\n \"security.workshop.kiosk\",\n \"security.configuracoes.view\",\n \"security.browser.manage\",\n \"painel.home.view\",\n \"painel.aprovacoes.view\",\n \"painel.aprovacoes.act\",\n \"painel.comunicacoes.view\",\n \"painel.comunicacoes.edit\",\n \"painel.atividade.view\",\n \"painel.atividade.export\",\n \"painel.favoritos.edit\",\n \"organization.read\",\n \"organization.write\",\n \"organization.invite_guest\",\n \"space.read\",\n \"space.write\",\n \"space.add_organization\",\n \"project.read\",\n \"project.write\",\n \"project.move\",\n \"project.link\",\n \"markings.read\",\n \"markings.write\",\n \"markings.apply\",\n \"markings.remove\",\n \"markings.expand_access\",\n \"markings.manage_eligibility\",\n \"classification.read\",\n \"classification.set\",\n \"classification.upgrade\",\n \"project.constraints.read\",\n \"project.constraints.configure\",\n \"project.constraints.revalidate\",\n \"workspace.read\",\n \"workspace.write\",\n \"workspace.delete\",\n \"workspace.publish\",\n \"workspace.history.read\",\n \"workspace.republish\",\n \"workspace.update.read\",\n \"workspace.update.write\",\n \"workspace.update.archive\",\n \"workspace.update.delete\",\n \"workspace.update.view\",\n \"workspace.navigation.read\",\n \"workspace.navigation.configure\",\n \"workspace.promote.read\",\n \"workspace.promote.set\",\n \"workspace.promote.unset\",\n \"workspace.kiosk.read\",\n \"workspace.kiosk.configure\",\n \"workspace.kiosk.session.start\",\n \"workspace.kiosk.session.end\",\n \"app_shell.manage\",\n \"comunicado.read\",\n \"comunicado.write\",\n \"comunicado.delete\",\n \"forms.submit\",\n \"forms.submissions.read\",\n \"vendor.dev_mode\",\n \"public.token.read\",\n \"public.token.issue\",\n \"public.token.revoke\",\n \"messaging.send\",\n \"automation.alarms.read\",\n \"automation.alarms.write\",\n \"data.media.read\",\n \"data.media.write\",\n \"function.read\",\n \"function.write\",\n \"function.invoke\",\n \"function.review\",\n \"sandbox.install\",\n \"sandbox.terminal\",\n \"llm.budget.read\",\n \"llm.budget.write\",\n \"governance.retention.read\",\n \"governance.retention.write\",\n \"rowpolicy.read\",\n \"rowpolicy.write\",\n \"compute.providers.read\",\n \"compute.providers.write\",\n \"compute.pipelines.deploy\",\n \"vision.count.execute\",\n \"ontology.objects.bulk_write\",\n] as const;\n\nexport type NavPermissionKey = (typeof NAV_PERMISSIONS)[number];\nexport type CapabilityPermissionKey = (typeof CAPABILITY_PERMISSIONS)[number];\nexport type PermissionKey = NavPermissionKey | CapabilityPermissionKey;\n\nexport const ALL_PERMISSIONS: readonly PermissionKey[] = [\n ...NAV_PERMISSIONS,\n ...CAPABILITY_PERMISSIONS,\n];\n\nexport interface IamPermissionDef {\n key: PermissionKey;\n kind: \"nav\" | \"capability\";\n /** Key minus its last segment. */\n resource: string;\n /** Last segment of the key. */\n action: string;\n}\n\nfunction toDef(key: PermissionKey, kind: \"nav\" | \"capability\"): IamPermissionDef {\n const idx = key.lastIndexOf(\".\");\n return { key, kind, resource: key.slice(0, idx), action: key.slice(idx + 1) };\n}\n\nexport function listPermissions(kind?: \"nav\" | \"capability\"): IamPermissionDef[] {\n if (kind === \"nav\") return NAV_PERMISSIONS.map((k) => toDef(k, \"nav\"));\n if (kind === \"capability\") return CAPABILITY_PERMISSIONS.map((k) => toDef(k, \"capability\"));\n if (kind !== undefined) throw new Error(`invalid permission kind: ${String(kind)}`);\n return [...listPermissions(\"nav\"), ...listPermissions(\"capability\")];\n}\n\nconst ALL_SET: ReadonlySet<string> = new Set(ALL_PERMISSIONS);\n\nexport function isSystemPermission(key: string): boolean {\n return ALL_SET.has(key);\n}\n","/**\n * Client-side OSDK Application catalog — mirrors `aegis/osdk/application.py`.\n * Pure data (no HTTP): pick a permission scope before minting a token via\n * `client.osdk.create(name, scopes)`.\n */\nimport { isSystemPermission } from \"./permissions\";\n\nexport interface OsdkApplication {\n slug: string;\n display_name: string;\n description: string;\n permissions: readonly string[];\n}\n\nexport const APPLICATIONS: readonly OsdkApplication[] = [\n {\n slug: \"security-app\",\n display_name: \"Security Application\",\n description: \"Operational security frontend — painel, geo, cameras, ficha, workshop, AIP.\",\n permissions: [\n \"nav.section.discover\",\n \"nav.section.painel-de-controle\",\n \"nav.item.painel.home\",\n \"nav.item.painel.aprovacoes\",\n \"nav.item.painel.comunicacoes\",\n \"nav.item.painel.atividade\",\n \"security.painel.view\",\n \"security.buscar.view\",\n \"security.geo.view\",\n \"security.geo.cerca.create\",\n \"security.cameras.view\",\n \"security.cameras.tag\",\n \"security.cameras.export\",\n \"security.cameras.manage\",\n \"security.cameras.bookmark\",\n \"security.cameras.hotlist\",\n \"security.cameras.cloud_inference\",\n \"video.exports.create\",\n \"security.explorador.view\",\n \"security.rede.view\",\n \"security.rede.edit\",\n \"security.ficha.view\",\n \"security.ficha.edit\",\n \"security.alertas.view\",\n \"security.alertas.resolve\",\n \"security.relatorios.view\",\n \"security.relatorios.edit\",\n \"security.relatorios.close\",\n \"security.briefings.view\",\n \"security.briefings.edit\",\n \"security.briefings.broadcast\",\n \"security.workshop.view\",\n \"security.workshop.edit\",\n \"security.workshop.publish_global\",\n \"security.fluxos.view\",\n \"security.fluxos.edit\",\n \"security.fluxos.run\",\n \"security.agentes.view\",\n \"security.agentes.edit\",\n \"security.agentes.run\",\n \"security.ontologia.view\",\n \"security.ontologia.edit\",\n \"security.workshop.kiosk\",\n \"security.configuracoes.view\",\n \"security.browser.manage\",\n \"connectors.manage\",\n \"events.pipeline.view\",\n \"events.pipeline.manage\",\n \"alerts.read\",\n \"alerts.escalate\",\n \"alerts.geofences.read\",\n \"alerts.geofences.manage\",\n \"alerts.routes.view\",\n \"alerts.routes.manage\",\n \"situational.correlate.view\",\n \"situational.correlate.manage\",\n \"painel.home.view\",\n \"painel.aprovacoes.view\",\n \"painel.aprovacoes.act\",\n \"painel.comunicacoes.view\",\n \"painel.comunicacoes.edit\",\n \"painel.atividade.view\",\n \"painel.atividade.export\",\n \"painel.favoritos.edit\",\n \"aip.threads.read\",\n \"aip.threads.write\",\n \"aip.models.read\",\n \"aip.memory.read\",\n \"aip.memory.write\",\n \"compute.providers.read\",\n \"compute.providers.write\",\n \"compute.pipelines.deploy\",\n \"vision.count.execute\",\n \"ontology.objects.bulk_write\",\n ],\n },\n {\n slug: \"aip-application\",\n display_name: \"AIP Application\",\n description: \"AIP threads, agents, tools, logic, models, evals, memory.\",\n permissions: [\n \"nav.section.aip\",\n \"nav.item.aip.threads\",\n \"nav.item.aip.agents\",\n \"nav.item.aip.tools\",\n \"nav.item.aip.logic\",\n \"nav.item.aip.models\",\n \"nav.item.aip.capacity\",\n \"nav.item.aip.scenarios\",\n \"nav.item.aip.evals\",\n \"nav.item.aip.memory\",\n \"nav.item.aip.mcp_adapters\",\n \"aip.threads.read\",\n \"aip.threads.write\",\n \"aip.agents.read\",\n \"aip.agents.write\",\n \"aip.agents.execute\",\n \"aip.models.read\",\n \"aip.models.write\",\n \"aip.memory.read\",\n \"aip.memory.write\",\n \"aip.evals.read\",\n \"aip.evals.run\",\n \"aip.flows.read\",\n \"aip.flows.write\",\n \"aip.flows.execute\",\n ],\n },\n {\n slug: \"ontology-application\",\n display_name: \"Ontology Application\",\n description: \"Ontology types, objects, links, graph, solution diagrams, lineage.\",\n permissions: [\n \"ontology.types.read\",\n \"ontology.types.write\",\n \"ontology.actions.read\",\n \"ontology.actions.write\",\n \"ontology.actions.execute\",\n \"ontology.actions.execute_external\",\n \"ontology.objects.read\",\n \"ontology.objects.write\",\n \"ontology.objects.view\",\n \"ontology.links.read\",\n \"ontology.links.write\",\n \"ontology.graph.read\",\n \"ontology.graph.export\",\n \"ontology.explorer.aggregate\",\n \"data.lineage.read\",\n \"solution.diagram.read\",\n \"solution.diagram.write\",\n \"solution.diagram.publish\",\n \"solution.diagram.delete\",\n \"solution.diagram.history.read\",\n \"solution.materialize.delete\",\n \"solution.refactor\",\n \"messaging.send\",\n \"compute.providers.read\",\n \"compute.pipelines.deploy\",\n \"vision.count.execute\",\n \"ontology.objects.bulk_write\",\n ],\n },\n {\n slug: \"governance-application\",\n display_name: \"Governance Application\",\n description: \"IAM groups, audit, rules, change requests, tokens, LGPD, markings, classification.\",\n permissions: [\n \"iam.groups.read\",\n \"iam.groups.write\",\n \"iam.groups.manage_members\",\n \"governance.audit.read\",\n \"governance.rules.read\",\n \"governance.rules.write\",\n \"governance.change_requests.read\",\n \"governance.change_requests.write\",\n \"governance.change_requests.approve\",\n \"governance.tokens.read\",\n \"governance.tokens.write\",\n \"governance.lgpd.read\",\n \"governance.lgpd.write\",\n \"governance.peers.read\",\n \"governance.peers.write\",\n \"governance.kiosk.read\",\n \"governance.kiosk.write\",\n \"admin.acessos\",\n \"admin.classificacao\",\n \"admin.auditoria\",\n \"admin.federacao\",\n \"admin.unidades\",\n \"admin.templates\",\n \"admin.automacoes\",\n \"admin.tokens\",\n \"markings.read\",\n \"markings.write\",\n \"markings.apply\",\n \"markings.remove\",\n \"markings.expand_access\",\n \"markings.manage_eligibility\",\n \"classification.read\",\n \"classification.set\",\n \"classification.upgrade\",\n \"project.constraints.read\",\n \"project.constraints.configure\",\n \"project.constraints.revalidate\",\n \"public.token.read\",\n \"public.token.issue\",\n \"public.token.revoke\",\n ],\n },\n {\n slug: \"workshop-application\",\n display_name: \"Workshop Application\",\n description: \"Workshop apps, briefings, dossiers, COVs, workspaces, app-shell, comunicados.\",\n permissions: [\n \"workshop.apps.read\",\n \"workshop.apps.write\",\n \"workshop.briefings.read\",\n \"workshop.briefings.write\",\n \"workshop.briefings.broadcast\",\n \"workshop.dossiers.read\",\n \"workshop.dossiers.write\",\n \"workshop.dossiers.share\",\n \"workshop.covs.read\",\n \"workshop.covs.write\",\n \"workshop.covs.share\",\n \"workspace.read\",\n \"workspace.write\",\n \"workspace.delete\",\n \"workspace.publish\",\n \"workspace.history.read\",\n \"workspace.republish\",\n \"workspace.update.read\",\n \"workspace.update.write\",\n \"workspace.update.archive\",\n \"workspace.update.delete\",\n \"workspace.update.view\",\n \"workspace.navigation.read\",\n \"workspace.navigation.configure\",\n \"workspace.promote.read\",\n \"workspace.promote.set\",\n \"workspace.promote.unset\",\n \"workspace.kiosk.read\",\n \"workspace.kiosk.configure\",\n \"workspace.kiosk.session.start\",\n \"workspace.kiosk.session.end\",\n \"app_shell.manage\",\n \"comunicado.read\",\n \"comunicado.write\",\n \"comunicado.delete\",\n ],\n },\n {\n slug: \"campaign-application\",\n display_name: \"Campaign Application (politicians-app)\",\n description: \"Campaign hub, chat, visibility, agents, scenarios, briefing.\",\n permissions: [\n \"nav.section.campanha\",\n \"nav.item.campaign.hub\",\n \"nav.item.campaign.chat\",\n \"nav.item.campaign.visibility\",\n \"nav.item.campaign.agents\",\n \"nav.item.campaign.scenarios\",\n \"nav.item.campaign.brief\",\n \"campaign.chat.read\",\n \"campaign.chat.write\",\n \"campaign.brief.read\",\n \"campaign.brief.generate\",\n \"campaign.brief.sign\",\n \"campaign.scenario.read\",\n \"campaign.scenario.run\",\n \"campaign.scenario.write\",\n \"campaign.visibility.read\",\n \"campaign.visibility.pin\",\n \"campaign.visibility.escalate\",\n \"campaign.agents.read\",\n \"campaign.agents.write\",\n \"campaign.agents.run\",\n \"campaign.briefing.read\",\n \"campaign.briefing.refresh\",\n \"campaign.briefing.headline\",\n \"campaign.briefing.crisis_override\",\n \"vault.cookies.manage\",\n ],\n },\n {\n slug: \"docs-loader\",\n display_name: \"Docs UI Loader\",\n description: \"Read-only access to the docs tree and content.\",\n permissions: [\"docs.tree.read\", \"docs.content.read\"],\n },\n];\n\nexport function listApplications(): readonly OsdkApplication[] {\n return APPLICATIONS;\n}\n\nexport function applicationBySlug(slug: string): OsdkApplication | undefined {\n return APPLICATIONS.find((app) => app.slug === slug);\n}\n\nexport function applicationHas(app: OsdkApplication, key: string): boolean {\n return app.permissions.includes(key);\n}\n\n/** Throws if the application references a permission key unknown to the catalog. */\nexport function validateApplication(app: OsdkApplication): void {\n for (const key of app.permissions) {\n if (!isSystemPermission(key)) {\n throw new Error(`application ${app.slug} references unknown permission: ${key}`);\n }\n }\n}\n","/**\n * Adapter between `AegisClient` and the `OSDKClient` contract expected by\n * code generated from the live ontology (`aegis-osdk generate` /\n * `GET /ontology/osdk/generate?lang=typescript`):\n *\n * ```ts\n * import { AegisClient, asOsdkClient } from \"aegis-platform-sdk\";\n * import { CameraApi } from \"./aegis_osdk\"; // generated\n *\n * const osdk = asOsdkClient(new AegisClient({ ... }));\n * ```\n */\nimport type { AegisClient } from \"./client\";\n\n/** The client contract emitted at the top of every generated OSDK module. */\nexport interface OSDKClient {\n get(path: string, params?: Record<string, unknown>): Promise<any>;\n post(path: string, body?: unknown): Promise<any>;\n}\n\nexport function asOsdkClient(client: AegisClient): OSDKClient {\n return {\n get: (path, params) =>\n client.request(\"GET\", path, {\n params: params as Record<string, string | number | boolean | undefined>,\n }),\n post: (path, body) => client.request(\"POST\", path, { json: body ?? {} }),\n };\n}\n"],"mappings":"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ACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEO,IAAM,yBAAyB;AAAA,EACpC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAA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IACN,cAAc;AAAA,IACd,aAAa;AAAA,IACb,aAAa;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,cAAc;AAAA,IACd,aAAa;AAAA,IACb,aAAa;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,cAAc;AAAA,IACd,aAAa;AAAA,IACb,aAAa;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,cAAc;AAAA,IACd,aAAa;AAAA,IACb,aAAa;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,cAAc;AAAA,IACd,aAAa;AAAA,IACb,aAAa;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,cAAc;AAAA,IACd,aAAa;AAAA,IACb,aAAa,CAAC,kBAAkB,mBAAmB;AAAA,EACrD;AACF;AAEO,SAAS,mBAA+C;AAC7D,SAAO;AACT;AAEO,SAAS,kBAAkB,MAA2C;AAC3E,SAAO,aAAa,KAAK,CAAC,QAAQ,IAAI,SAAS,IAAI;AACrD;AAEO,SAAS,eAAe,KAAsB,KAAsB;AACzE,SAAO,IAAI,YAAY,SAAS,GAAG;AACrC;AAGO,SAAS,oBAAoB,KAA4B;AAC9D,aAAW,OAAO,IAAI,aAAa;AACjC,QAAI,CAAC,mBAAmB,GAAG,GAAG;AAC5B,YAAM,IAAI,MAAM,eAAe,IAAI,IAAI,mCAAmC,GAAG,EAAE;AAAA,IACjF;AAAA,EACF;AACF;;;ACnSO,SAAS,aAAa,QAAiC;AAC5D,SAAO;AAAA,IACL,KAAK,CAAC,MAAM,WACV,OAAO,QAAQ,OAAO,MAAM;AAAA,MAC1B;AAAA,IACF,CAAC;AAAA,IACH,MAAM,CAAC,MAAM,SAAS,OAAO,QAAQ,QAAQ,MAAM,EAAE,MAAM,QAAQ,CAAC,EAAE,CAAC;AAAA,EACzE;AACF;","names":[]}