/**
 * @treehouse/sdk — Treehouse platform SDK
 * For use in tenant agent containers and tenant apps.
 */

export { getContext } from "./client.js";
export type { TenantContext } from "./client.js";

export { writeIpcFile, readJsonFile, pollJsonFile, clearStaleResult } from "./ipc.js";

export { getCredential, listCredentials, setCredential, removeCredential } from "./modules/credentials.js";
export type { Credential } from "./modules/credentials.js";

export { listTasks, scheduleTask, pauseTask, resumeTask, cancelTask, updateTask } from "./modules/tasks.js";
export type { Task } from "./modules/tasks.js";

export { getHostingInfo, getAppStatus, getDeployErrors, waitForDeploy, getPortOccupancy } from "./modules/hosting.js";
export type { HostingInfo, AppStatus, DeployError, LiveContainer, PortOccupancy } from "./modules/hosting.js";

export {
  deployApp, removeApp, stopApp, restartApp, execInApp,
  getAppLogs, listAppVolumes, removeAppVolume
} from "./modules/apps.js";

export { sendMessage, sendMessageToGroup, sendFile, sendVoice } from "./modules/messaging.js";

export { registerGroup, updateGroupSettings } from "./modules/groups.js";

export { pruneRuntime, getDiskUsage, resetBuildkit } from "./modules/runtime.js";

export { getProxyInfo } from './modules/proxy.js';
export type { ProxyInfo } from './modules/proxy.js';

export { sendReport } from './modules/report.js';
export { getHooksConfig, setHooksEnabled, rotateHooksToken, triggerAgent, wake, invoke } from './modules/hooks.js';
export type { HooksConfig, HookAsyncResult, HookInvokeResult } from './modules/hooks.js';
export { lcmSearch, lcmDescribe, lcmSemanticSearch, lcmHybridSearch } from './modules/lcm.js';
