/** * `synap pod` — the unified pod-configuration view. * =================================================== * * `market installed` shows what packages are installed; `synap pod` answers * the bigger question — "what does my WHOLE pod look like right now?" — one * scannable graph over workspaces (with provenance), pod-wide vs per-workspace * capabilities/automations/playbooks, and the give/need feed links between * workspaces. It is the read surface for `GET /api/hub/pod/config` * (`hub-protocol/rest/pod.ts` on the backend side). * * `synap pod adopt --template ` links an orphan/ad-hoc * workspace to a matching template so it becomes version-tracked, via * `POST /api/hub/pod/adopt`. * * READ-first, ONE write door (`adopt`). Reuses rather than re-derives: * - the composition-tree engine (`buildCompositionTrees`/`printCompositionTree` * + `buildMarketCatalog`/`computeUpdates`) from `market.ts`, for the * marketplace-provenance workspaces' package → template deps → workspaces * overlay. * - the honest-outcome verdict helpers (`classifyApplyResult`/ * `printApplyVerdict`) from `market.ts`, for `pod adopt`'s outcome. */ export type WorkspaceProvenance = { kind: "marketplace"; packageSlug: string; packageVersion: string | null; } | { kind: "composed"; composedFrom: unknown[]; } | { kind: "ad-hoc"; createdBy: string | null; templateMatch?: { slug: string; name: string; }; }; export interface PodConfigWorkspace { id: string; name: string; subtype: string | null; entityCount: number; provenance: WorkspaceProvenance; } export type CapabilityProvenance = { kind: "marketplace"; templateKey: string; } | { kind: "manual"; }; export interface PodConfigCapability { id: string; name: string; workspaceId: string | null; provenance: CapabilityProvenance; } export type AutomationProvenance = { kind: "ai" | "manual" | "template"; }; export interface PodConfigAutomation { id: string; name: string; workspaceId: string | null; provenance: AutomationProvenance; } export type PlaybookProvenance = { kind: "manual"; }; export interface PodConfigPlaybook { id: string; name: string; workspaceId: string | null; provenance: PlaybookProvenance; } export interface PodConfigFeedsLink { from: string; to: string; domain: string | null; profileSlug: string | null; } export interface PodConfig { workspaces: PodConfigWorkspace[]; capabilities: PodConfigCapability[]; automations: PodConfigAutomation[]; playbooks: PodConfigPlaybook[]; feedsLinks: PodConfigFeedsLink[]; } export declare function pod(opts: { json?: boolean; orphans?: boolean; podUrl?: string; apiKey?: string; }): Promise; export declare function podAdopt(workspaceNameOrId: string, opts: { template?: string; json?: boolean; podUrl?: string; apiKey?: string; }): Promise;