@buildaureon/sdk 0.1.1 → 0.1.2

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/adapters/fetch-adapter.ts","../src/constants/defaults.ts","../src/constants/endpoints.ts","../src/errors/codes.ts","../src/errors/base.ts","../src/errors/http.ts","../src/transport/url.ts","../src/transport/http.ts","../src/types/client-options.ts","../src/types/market.ts","../src/validation/market-input.ts","../src/types/objective.ts","../src/validation/objective-input.ts","../src/client/aureon-client.ts","../src/client/factory.ts","../src/auth/session.ts","../src/formatting/display.ts","../src/types/health.ts","../src/types/timeline.ts","../src/types/execution.ts","../src/adapters/logging-adapter.ts"],"names":["DEFAULT_TIMEOUT_MS"],"mappings":"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","file":"index.js","sourcesContent":["/**\n * @fileoverview Fetch adapter helpers for browser and Node runtimes.\n */\n\nexport type FetchLike = typeof fetch;\n\nexport function resolveFetch(custom?: FetchLike): FetchLike {\n if (custom) return custom.bind(custom);\n if (typeof globalThis.fetch !== \"function\") {\n throw new Error(\"No fetch implementation available in this runtime\");\n }\n return globalThis.fetch.bind(globalThis);\n}\n\nexport function mergeHeaders(\n base: Record<string, string>,\n extra?: Record<string, string>\n): Record<string, string> {\n return { ...base, ...(extra ?? {}) };\n}\n\nexport function userAgentHeader(version: string): Record<string, string> {\n return { \"X-Aureon-SDK\": `@buildaureon/sdk/${version}` };\n}\n","/**\n * @fileoverview Default runtime values for SDK clients and examples.\n */\n\n/** Production AUREON API (public integrators). */\nexport const DEFAULT_API_BASE_URL = \"https://api.aureonlabs.network\";\n\n/** Local monorepo preview only; not for public docs. */\nexport const LOCAL_API_BASE_URL = \"http://127.0.0.1:8787\";\n\nexport const DEFAULT_TIMEOUT_MS = 30_000;\nexport const SDK_VERSION = \"0.1.0\";\nexport const SDK_NAME = \"@buildaureon/sdk\";\nexport const PRODUCT_NAME = \"AUREON\";\nexport const PRODUCT_TAGLINE =\n \"Financial Compass for Robinhood Chain\";\n\nexport const REFERENCE_SYMBOLS = [\"USDG\", \"NVDA\", \"AAPL\", \"GOOGL\", \"ETH\"] as const;\n\n/** HTTP header for product API keys. */\nexport const API_KEY_HEADER = \"X-Aureon-Api-Key\";\n","/**\n * @fileoverview API path constants for AureonClient methods.\n */\n\nexport const ENDPOINTS = {\n healthz: \"/healthz\",\n overview: \"/overview\",\n portfolio: \"/portfolio\",\n portfolioClear: \"/portfolio/clear\",\n portfolioSync: \"/portfolio/sync\",\n watchdogRefresh: \"/watchdog/refresh\",\n objectives: \"/objectives\",\n health: \"/health\",\n timeline: \"/timeline\",\n executions: \"/executions\",\n executionsRun: \"/executions/run\",\n marketEvents: \"/market/events\",\n marketPresets: \"/market/presets\",\n vault: \"/vault\",\n vaultStatus: \"/vault/status\",\n vaultPrepareDeposit: \"/vault/prepare-deposit\",\n vaultPrepareWithdraw: \"/vault/prepare-withdraw\",\n authNonce: \"/auth/nonce\",\n authVerify: \"/auth/verify\",\n authLogout: \"/auth/logout\",\n authDevLogin: \"/auth/dev-login\",\n authMe: \"/auth/me\",\n developerApiKeys: \"/developer/api-keys\",\n} as const;\n\nexport function objectivePath(id: string): string {\n return `${ENDPOINTS.objectives}/${encodeURIComponent(id)}`;\n}\n\nexport function objectivePausePath(id: string): string {\n return `${objectivePath(id)}/pause`;\n}\n\nexport function objectiveResumePath(id: string): string {\n return `${objectivePath(id)}/resume`;\n}\n\nexport function objectiveRestorePlanPath(id: string): string {\n return `${objectivePath(id)}/restore-plan`;\n}\n\nexport function objectiveRestorePath(id: string): string {\n return `${objectivePath(id)}/restore`;\n}\n\nexport function developerApiKeyPath(id: string): string {\n return `${ENDPOINTS.developerApiKeys}/${encodeURIComponent(id)}`;\n}\n","/**\n * @fileoverview Stable machine-readable error codes for @buildaureon/sdk.\n */\n\nexport type AureonErrorCode =\n | \"NETWORK_ERROR\"\n | \"TIMEOUT\"\n | \"VALIDATION_ERROR\"\n | \"NOT_FOUND\"\n | \"CONFLICT\"\n | \"UNAUTHORIZED\"\n | \"RATE_LIMITED\"\n | \"SERVER_ERROR\"\n | \"UNEXPECTED_RESPONSE\"\n | \"ABORTED\";\n\nexport const RETRYABLE_CODES: readonly AureonErrorCode[] = [\n \"NETWORK_ERROR\",\n \"TIMEOUT\",\n \"RATE_LIMITED\",\n \"SERVER_ERROR\",\n] as const;\n\nexport function isRetryableCode(code: AureonErrorCode): boolean {\n return (RETRYABLE_CODES as readonly string[]).includes(code);\n}\n\nexport function defaultMessageForStatus(status: number): string {\n switch (status) {\n case 400:\n return \"The request failed validation\";\n case 401:\n return \"Authentication is required\";\n case 403:\n return \"Access is forbidden for this resource\";\n case 404:\n return \"The requested resource was not found\";\n case 409:\n return \"The request conflicts with the current resource state\";\n case 429:\n return \"Rate limit exceeded\";\n default:\n if (status >= 500) return \"The server encountered an error\";\n return `Unexpected HTTP status ${status}`;\n }\n}\n","/**\n * @fileoverview Base and specialized error classes for the AUREON SDK.\n */\n\nimport { isRetryableCode, type AureonErrorCode } from \"./codes.js\";\n\nexport class AureonError extends Error {\n readonly code: AureonErrorCode;\n readonly status: number | null;\n readonly details: Record<string, unknown> | null;\n\n constructor(\n message: string,\n code: AureonErrorCode,\n status: number | null = null,\n details: Record<string, unknown> | null = null\n ) {\n super(message);\n this.name = \"AureonError\";\n this.code = code;\n this.status = status;\n this.details = details;\n Object.setPrototypeOf(this, new.target.prototype);\n }\n\n get retryable(): boolean {\n return isRetryableCode(this.code);\n }\n\n toJSON(): Record<string, unknown> {\n return {\n name: this.name,\n message: this.message,\n code: this.code,\n status: this.status,\n details: this.details,\n retryable: this.retryable,\n };\n }\n}\n\nexport class AureonValidationError extends AureonError {\n constructor(message: string, details: Record<string, unknown> | null = null) {\n super(message, \"VALIDATION_ERROR\", 400, details);\n this.name = \"AureonValidationError\";\n Object.setPrototypeOf(this, new.target.prototype);\n }\n}\n\nexport class AureonNotFoundError extends AureonError {\n constructor(message: string, details: Record<string, unknown> | null = null) {\n super(message, \"NOT_FOUND\", 404, details);\n this.name = \"AureonNotFoundError\";\n Object.setPrototypeOf(this, new.target.prototype);\n }\n}\n\nexport class AureonConflictError extends AureonError {\n constructor(message: string, details: Record<string, unknown> | null = null) {\n super(message, \"CONFLICT\", 409, details);\n this.name = \"AureonConflictError\";\n Object.setPrototypeOf(this, new.target.prototype);\n }\n}\n\nexport class AureonNetworkError extends AureonError {\n constructor(message: string, details: Record<string, unknown> | null = null) {\n super(message, \"NETWORK_ERROR\", null, details);\n this.name = \"AureonNetworkError\";\n Object.setPrototypeOf(this, new.target.prototype);\n }\n}\n\nexport class AureonTimeoutError extends AureonError {\n constructor(message = \"Request timed out\", details: Record<string, unknown> | null = null) {\n super(message, \"TIMEOUT\", null, details);\n this.name = \"AureonTimeoutError\";\n Object.setPrototypeOf(this, new.target.prototype);\n }\n}\n","/**\n * @fileoverview Maps HTTP responses into typed AureonError instances.\n */\n\nimport {\n AureonConflictError,\n AureonError,\n AureonNotFoundError,\n AureonValidationError,\n} from \"./base.js\";\nimport { defaultMessageForStatus } from \"./codes.js\";\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nfunction extractMessage(body: unknown): string | null {\n if (!isRecord(body)) return null;\n if (typeof body.message === \"string\") return body.message;\n if (typeof body.error === \"string\") return body.error;\n if (isRecord(body.error) && typeof body.error.message === \"string\") {\n return body.error.message;\n }\n return null;\n}\n\nexport function errorFromHttpStatus(status: number, body: unknown): AureonError {\n const message = extractMessage(body) ?? defaultMessageForStatus(status);\n const details = isRecord(body) ? body : { body };\n\n if (status === 400) return new AureonValidationError(message, details);\n if (status === 404) return new AureonNotFoundError(message, details);\n if (status === 409) return new AureonConflictError(message, details);\n if (status === 401 || status === 403) {\n return new AureonError(message, \"UNAUTHORIZED\", status, details);\n }\n if (status === 429) {\n return new AureonError(message, \"RATE_LIMITED\", status, details);\n }\n if (status >= 500) {\n return new AureonError(message, \"SERVER_ERROR\", status, details);\n }\n return new AureonError(message, \"UNEXPECTED_RESPONSE\", status, details);\n}\n\nexport function isAureonError(value: unknown): value is AureonError {\n return value instanceof AureonError;\n}\n","/**\n * @fileoverview URL helpers for the AUREON HTTP transport.\n */\n\nimport { AureonError } from \"../errors/base.js\";\n\nexport function joinUrl(baseUrl: string, path: string): string {\n const base = baseUrl.replace(/\\/+$/, \"\");\n const suffix = path.startsWith(\"/\") ? path : `/${path}`;\n return `${base}${suffix}`;\n}\n\nexport function assertBaseUrl(baseUrl: string): string {\n const trimmed = baseUrl.trim().replace(/\\/+$/, \"\");\n if (!/^https?:\\/\\//i.test(trimmed)) {\n throw new AureonError(\n \"baseUrl must be an absolute http(s) URL\",\n \"VALIDATION_ERROR\",\n 400,\n { baseUrl }\n );\n }\n return trimmed;\n}\n\nexport function withQuery(\n path: string,\n query: Record<string, string | undefined>\n): string {\n const params = new URLSearchParams();\n for (const [key, value] of Object.entries(query)) {\n if (value !== undefined && value !== \"\") params.set(key, value);\n }\n const qs = params.toString();\n if (!qs) return path;\n return path.includes(\"?\") ? `${path}&${qs}` : `${path}?${qs}`;\n}\n","/**\n * @fileoverview JSON HTTP transport used by AureonClient.\n */\n\nimport type { AureonLogger } from \"../adapters/logging-adapter.js\";\nimport {\n AureonError,\n AureonNetworkError,\n AureonTimeoutError,\n} from \"../errors/base.js\";\nimport { errorFromHttpStatus } from \"../errors/http.js\";\nimport { joinUrl } from \"./url.js\";\n\nexport interface TransportOptions {\n baseUrl: string;\n fetchImpl: typeof fetch;\n headers: Record<string, string>;\n timeoutMs: number;\n maxRetries?: number;\n retryDelayMs?: number;\n logger?: AureonLogger;\n getAccessToken?: () =>\n | string\n | null\n | undefined\n | Promise<string | null | undefined>;\n getApiKey?: () =>\n | string\n | null\n | undefined\n | Promise<string | null | undefined>;\n}\n\nexport interface RequestOptions {\n method?: string;\n body?: unknown;\n headers?: Record<string, string>;\n signal?: AbortSignal;\n}\n\nfunction safeParseJson(text: string): unknown {\n try {\n return JSON.parse(text);\n } catch {\n return { message: text };\n }\n}\n\nfunction isAbortError(error: unknown): boolean {\n return (\n (error instanceof DOMException && error.name === \"AbortError\") ||\n (error instanceof Error && error.name === \"AbortError\")\n );\n}\n\nfunction isRetryableError(error: unknown): boolean {\n if (error instanceof AureonNetworkError || error instanceof AureonTimeoutError) {\n return true;\n }\n if (error instanceof AureonError) {\n return (\n typeof error.status === \"number\" &&\n (error.status >= 500 || error.status === 429)\n );\n }\n return false;\n}\n\nfunction sleep(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nexport async function requestJson<T>(\n transport: TransportOptions,\n path: string,\n options: RequestOptions = {}\n): Promise<T> {\n const url = joinUrl(transport.baseUrl, path);\n const maxRetries = transport.maxRetries ?? 0;\n const retryDelayMs = transport.retryDelayMs ?? 250;\n let attempt = 0;\n\n while (true) {\n attempt += 1;\n const controller = new AbortController();\n const timeout = setTimeout(() => controller.abort(), transport.timeoutMs);\n const onAbort = () => controller.abort();\n\n if (options.signal) {\n if (options.signal.aborted) {\n clearTimeout(timeout);\n throw new AureonError(\"Request aborted\", \"ABORTED\");\n }\n options.signal.addEventListener(\"abort\", onAbort, { once: true });\n }\n\n try {\n const token = transport.getAccessToken\n ? await transport.getAccessToken()\n : null;\n const authHeaders: Record<string, string> = {};\n if (typeof token === \"string\" && token.trim().length > 0) {\n authHeaders.Authorization = `Bearer ${token.trim()}`;\n }\n\n const apiKey = transport.getApiKey\n ? await transport.getApiKey()\n : null;\n if (typeof apiKey === \"string\" && apiKey.trim().length > 0) {\n authHeaders[\"X-Aureon-Api-Key\"] = apiKey.trim();\n }\n\n transport.logger?.debug(\"aureon.request\", {\n method: options.method ?? (options.body !== undefined ? \"POST\" : \"GET\"),\n path,\n attempt,\n });\n\n const response = await transport.fetchImpl(url, {\n method: options.method ?? (options.body !== undefined ? \"POST\" : \"GET\"),\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n ...transport.headers,\n ...authHeaders,\n ...options.headers,\n },\n body:\n options.body !== undefined ? JSON.stringify(options.body) : undefined,\n signal: controller.signal,\n });\n\n const text = await response.text();\n const parsed = text.length > 0 ? safeParseJson(text) : null;\n\n if (!response.ok) {\n throw errorFromHttpStatus(response.status, parsed ?? { message: text });\n }\n\n return parsed as T;\n } catch (error) {\n if (error instanceof AureonError && !isRetryableError(error)) {\n throw error;\n }\n if (isAbortError(error)) {\n const timeoutError = new AureonTimeoutError(\n \"Request timed out or was aborted\",\n { url, timeoutMs: transport.timeoutMs }\n );\n if (attempt <= maxRetries) {\n transport.logger?.warn(\"aureon.retry\", {\n path,\n attempt,\n reason: \"timeout\",\n });\n await sleep(retryDelayMs);\n continue;\n }\n throw timeoutError;\n }\n if (error instanceof AureonError) {\n if (attempt <= maxRetries && isRetryableError(error)) {\n transport.logger?.warn(\"aureon.retry\", {\n path,\n attempt,\n code: error.code,\n status: error.status,\n });\n await sleep(retryDelayMs);\n continue;\n }\n throw error;\n }\n const networkError = new AureonNetworkError(\n error instanceof Error ? error.message : \"Network request failed\",\n { url }\n );\n if (attempt <= maxRetries) {\n transport.logger?.warn(\"aureon.retry\", {\n path,\n attempt,\n reason: \"network\",\n });\n await sleep(retryDelayMs);\n continue;\n }\n throw networkError;\n } finally {\n clearTimeout(timeout);\n if (options.signal) options.signal.removeEventListener(\"abort\", onAbort);\n }\n }\n}\n","/**\n * @fileoverview Client configuration types for AureonClient.\n */\n\nimport type { AureonLogger } from \"../adapters/logging-adapter.js\";\nimport { API_KEY_HEADER } from \"../constants/defaults.js\";\n\nexport interface AureonClientOptions {\n /**\n * Base URL of the AUREON API.\n * Defaults to `https://api.aureonlabs.network`.\n */\n baseUrl?: string;\n /**\n * Product API key sent as `X-Aureon-Api-Key` on every request.\n * Operator-issued keys (from the Developers console) also identify the\n * bound wallet for control-plane calls — no Bearer required.\n * Env bootstrap keys unlock product access only; they do not set identity.\n * The operator utility uses wallet Bearer only.\n */\n apiKey?: string | null;\n /**\n * Called before each request to resolve the product API key.\n * Prefer this for automations that load keys from env or a secret store.\n */\n getApiKey?: () => string | null | undefined | Promise<string | null | undefined>;\n /** Optional fetch implementation for non-browser runtimes. */\n fetch?: typeof fetch;\n /** Optional default headers merged into every request. */\n headers?: Record<string, string>;\n /** Request timeout in milliseconds. Defaults to 30000. */\n timeoutMs?: number;\n /**\n * Static Bearer session token. Prefer `getAccessToken` for apps that refresh\n * or clear sessions at runtime.\n */\n authToken?: string | null;\n /**\n * Called before each request to resolve the current Bearer token.\n * Return null/undefined to send the request without Authorization.\n */\n getAccessToken?: () => string | null | undefined | Promise<string | null | undefined>;\n /** Optional structured logger for request lifecycle diagnostics. */\n logger?: AureonLogger;\n /**\n * Extra attempts after the first failure for retryable errors\n * (network, timeout, 429, 5xx). Defaults to 0.\n */\n maxRetries?: number;\n /** Delay in ms between retries. Defaults to 250. */\n retryDelayMs?: number;\n}\n\nexport const DEFAULT_TIMEOUT_MS = 30_000;\n\nexport function resolveTimeoutMs(options: AureonClientOptions): number {\n const value = options.timeoutMs ?? DEFAULT_TIMEOUT_MS;\n if (!Number.isFinite(value) || value <= 0) {\n throw new Error(\"timeoutMs must be a positive finite number\");\n }\n return value;\n}\n\nexport function resolveHeaders(\n options: AureonClientOptions\n): Record<string, string> {\n const headers: Record<string, string> = { ...(options.headers ?? {}) };\n const key = options.apiKey?.trim();\n if (key) {\n headers[API_KEY_HEADER] = key;\n }\n return headers;\n}\n\nexport function resolveMaxRetries(options: AureonClientOptions): number {\n const value = options.maxRetries ?? 0;\n if (!Number.isInteger(value) || value < 0) {\n throw new Error(\"maxRetries must be a non-negative integer\");\n }\n return value;\n}\n\nexport function resolveRetryDelayMs(options: AureonClientOptions): number {\n const value = options.retryDelayMs ?? 250;\n if (!Number.isFinite(value) || value < 0) {\n throw new Error(\"retryDelayMs must be a non-negative finite number\");\n }\n return value;\n}\n","/**\n * @fileoverview Controlled market event types for operator demos and rehearsals.\n */\n\nexport interface MarketEvent {\n id: string;\n name: string;\n description: string;\n symbol: string;\n priceChangeRatio: number;\n appliedAt: string;\n}\n\nexport interface MarketPreset {\n name: string;\n description: string;\n symbol: string;\n priceChangeRatio: number;\n}\n\nexport interface ApplyMarketEventInput {\n name?: string;\n description?: string;\n symbol: string;\n priceChangeRatio: number;\n autoRestore?: boolean;\n}\n\nexport interface DashboardOverview {\n activeObjectives: number;\n healthyCount: number;\n warningCount: number;\n violationCount: number;\n pausedCount: number;\n totalNotionalUsd: number;\n stableWeight: number;\n /** Holdings count from the capital book. */\n assetCount: number;\n /** Absolute USD change vs prior UTC day snapshot; null when baseline only. */\n change24hUsd: number | null;\n /** Fractional change (0.05 = +5%); null when baseline only. */\n change24hPct: number | null;\n /** True when no prior-day snapshot exists yet. */\n change24hBaselineOnly: boolean;\n /** True when today's snapshot row exists. */\n change24hHasSnapshot: boolean;\n /** Average health score across non-paused objectives; null when none. */\n globalHealthScore: number | null;\n /** Persisted health samples (oldest → newest), up to ~90 days. */\n healthHistory: Array<{ at: string; score: number }>;\n /** warning + violation count. */\n attentionCount: number;\n /** Last successful live-mark watchdog evaluation (not overview poll). */\n lastEvaluationAt: string | null;\n /** lastEvaluationAt + watchdog interval when continuous monitor is configured. */\n nextEvaluationAt: string | null;\n watchdogIntervalMs: number | null;\n /** Last background/manual watchdog failure message, if any. */\n lastWatchdogError: string | null;\n lastSyncedAt: string | null;\n recentExecutions: import(\"./execution.js\").ExecutionReceipt[];\n recentEvents: import(\"./timeline.js\").TimelineEvent[];\n}\n\nexport function normalizeSymbol(symbol: string): string {\n return symbol.trim().toUpperCase();\n}\n\nexport function describeMarketMove(event: MarketEvent): string {\n const pct = (event.priceChangeRatio * 100).toFixed(2);\n return `${event.symbol} mark moved ${pct}% (${event.name})`;\n}\n","/**\n * @fileoverview Validation for controlled market event inputs.\n */\n\nimport { AureonValidationError } from \"../errors/base.js\";\nimport type { ApplyMarketEventInput } from \"../types/market.js\";\nimport { normalizeSymbol } from \"../types/market.js\";\n\nexport function normalizeApplyMarketEventInput(\n input: ApplyMarketEventInput\n): ApplyMarketEventInput {\n const symbol = normalizeSymbol(input.symbol ?? \"\");\n if (!symbol) throw new AureonValidationError(\"symbol is required\");\n if (!Number.isFinite(input.priceChangeRatio)) {\n throw new AureonValidationError(\"priceChangeRatio must be a finite number\");\n }\n if (input.priceChangeRatio <= -0.95) {\n throw new AureonValidationError(\n \"priceChangeRatio is too extreme for preview runtime\"\n );\n }\n return {\n ...input,\n symbol,\n autoRestore: input.autoRestore !== false,\n name: input.name?.trim() || undefined,\n description: input.description?.trim() || undefined,\n };\n}\n","/**\n * @fileoverview Objective domain types for Financial Compass Objectives.\n */\n\n/** Lifecycle status for a Financial Compass Objective (FCO). */\nexport type ObjectiveStatus =\n | \"draft\"\n | \"validated\"\n | \"active\"\n | \"paused\"\n | \"cancelled\"\n | \"completed\";\n\n/** Supported objective kinds for Phase 1 operator workflows. */\nexport type ObjectiveKind =\n | \"stable_allocation\"\n | \"balanced_portfolio\"\n | \"risk_ceiling\"\n | \"reward_reinvestment\";\n\n/** Priority influences evaluation ordering when multiple objectives compete. */\nexport type ObjectivePriority = \"low\" | \"medium\" | \"high\" | \"critical\";\n\n/**\n * Per-objective restore behaviour as stored on the API.\n *\n * SDK / agent integrations create objectives as **Automatic** (default).\n * `\"manual\"` exists so the operator utility can require an Approve click;\n * it is not part of the recommended SDK integration path.\n */\nexport type ObjectiveAutomationMode = \"manual\" | \"auto\";\n\n/** Policy rules attached to an objective. */\nexport interface ObjectivePolicy {\n targetWeight: number;\n tolerance: number;\n maxRiskScore?: number;\n reinvestRatio?: number;\n /** Holding symbol when the objective tracks a specific asset weight. */\n targetSymbol?: string;\n summary: string;\n}\n\n/** Financial Compass Objective record. */\nexport interface Objective {\n id: string;\n name: string;\n kind: ObjectiveKind;\n status: ObjectiveStatus;\n priority: ObjectivePriority;\n /**\n * Restore mode for this objective.\n * SDK creates always set `\"auto\"`. `\"manual\"` is operator-utility only.\n */\n automationMode: ObjectiveAutomationMode;\n policy: ObjectivePolicy;\n ownerId: string;\n createdAt: string;\n updatedAt: string;\n lastEvaluatedAt: string | null;\n lastExecutionId: string | null;\n}\n\n/**\n * Input for creating a new objective.\n *\n * SDK create always sends `automationMode: \"auto\"` (Automatic restore).\n * Manual Approve is an operator-utility concern; do not rely on it in\n * agent / SDK loops.\n */\nexport interface CreateObjectiveInput {\n name: string;\n kind: ObjectiveKind;\n priority?: ObjectivePriority;\n targetWeight: number;\n tolerance: number;\n maxRiskScore?: number;\n reinvestRatio?: number;\n targetSymbol?: string | null;\n /**\n * @deprecated For SDK integrations omit this; create always uses Automatic.\n * The operator utility may still pass `\"manual\"` for Approve UX.\n */\n automationMode?: ObjectiveAutomationMode;\n}\n\n/** Partial update for an existing objective. */\nexport interface UpdateObjectiveInput {\n name?: string;\n priority?: ObjectivePriority;\n targetWeight?: number;\n tolerance?: number;\n maxRiskScore?: number;\n reinvestRatio?: number;\n /**\n * @deprecated Rejected on update; target token is fixed at create.\n * Recreate the objective to track a different holding.\n */\n targetSymbol?: never;\n /**\n * @deprecated Rejected on update; mode is fixed at create to avoid restore-flow issues.\n * Recreate the objective to switch Manual ↔ Automatic.\n */\n automationMode?: never;\n}\n\nexport const OBJECTIVE_KINDS: readonly ObjectiveKind[] = [\n \"stable_allocation\",\n \"balanced_portfolio\",\n \"risk_ceiling\",\n \"reward_reinvestment\",\n] as const;\n\nexport const OBJECTIVE_PRIORITIES: readonly ObjectivePriority[] = [\n \"low\",\n \"medium\",\n \"high\",\n \"critical\",\n] as const;\n\nexport function isObjectiveKind(value: string): value is ObjectiveKind {\n return (OBJECTIVE_KINDS as readonly string[]).includes(value);\n}\n\nexport function isObjectivePriority(value: string): value is ObjectivePriority {\n return (OBJECTIVE_PRIORITIES as readonly string[]).includes(value);\n}\n","/**\n * @fileoverview Validation and normalization for objective create/update payloads.\n */\n\nimport { AureonValidationError } from \"../errors/base.js\";\nimport type {\n CreateObjectiveInput,\n UpdateObjectiveInput,\n} from \"../types/objective.js\";\nimport { isObjectiveKind, isObjectivePriority } from \"../types/objective.js\";\n\nexport function buildPolicySummary(\n kind: CreateObjectiveInput[\"kind\"],\n targetWeight: number,\n tolerance: number\n): string {\n const targetPct = (targetWeight * 100).toFixed(1);\n const tolPct = (tolerance * 100).toFixed(1);\n switch (kind) {\n case \"stable_allocation\":\n return `Maintain ${targetPct}% stable allocation within ±${tolPct}%`;\n case \"balanced_portfolio\":\n return `Hold balanced weights near ${targetPct}% primary sleeve within ±${tolPct}%`;\n case \"risk_ceiling\":\n return `Keep portfolio risk at or below configured ceiling with ${tolPct}% buffer`;\n case \"reward_reinvestment\":\n return `Reinvest available rewards toward ${targetPct}% target sleeve`;\n default:\n return `Objective policy target ${targetPct}% ±${tolPct}%`;\n }\n}\n\nexport function normalizeCreateObjectiveInput(\n input: CreateObjectiveInput\n): CreateObjectiveInput {\n const name = input.name?.trim();\n if (!name || name.length < 3) {\n throw new AureonValidationError(\"Objective name must be at least 3 characters\");\n }\n if (!isObjectiveKind(input.kind)) {\n throw new AureonValidationError(`Unsupported objective kind: ${input.kind}`);\n }\n if (input.targetWeight < 0 || input.targetWeight > 1) {\n throw new AureonValidationError(\"targetWeight must be between 0 and 1\");\n }\n if (input.tolerance < 0 || input.tolerance > 0.5) {\n throw new AureonValidationError(\"tolerance must be between 0 and 0.5\");\n }\n const priority = input.priority ?? \"high\";\n if (!isObjectivePriority(priority)) {\n throw new AureonValidationError(`Unsupported priority: ${priority}`);\n }\n if (input.kind === \"balanced_portfolio\") {\n const symbol = input.targetSymbol?.trim().toUpperCase();\n if (!symbol) {\n throw new AureonValidationError(\n \"balanced_portfolio requires targetSymbol\"\n );\n }\n return {\n ...input,\n name,\n priority,\n targetSymbol: symbol,\n // SDK / agent path defaults to Automatic. Explicit \"manual\" is reserved\n // for the operator utility Approve UX; not recommended for integrations.\n automationMode: input.automationMode === \"manual\" ? \"manual\" : \"auto\",\n };\n }\n return {\n ...input,\n name,\n priority,\n targetSymbol: null,\n automationMode: input.automationMode === \"manual\" ? \"manual\" : \"auto\",\n };\n}\n\nexport function normalizeUpdateObjectiveInput(\n input: UpdateObjectiveInput\n): UpdateObjectiveInput {\n const next: UpdateObjectiveInput = { ...input };\n if (next.name !== undefined) {\n const name = next.name.trim();\n if (name.length < 3) {\n throw new AureonValidationError(\"Objective name must be at least 3 characters\");\n }\n next.name = name;\n }\n if (next.targetWeight !== undefined) {\n if (next.targetWeight < 0 || next.targetWeight > 1) {\n throw new AureonValidationError(\"targetWeight must be between 0 and 1\");\n }\n }\n if (next.tolerance !== undefined) {\n if (next.tolerance < 0 || next.tolerance > 0.5) {\n throw new AureonValidationError(\"tolerance must be between 0 and 0.5\");\n }\n }\n if (next.priority !== undefined && !isObjectivePriority(next.priority)) {\n throw new AureonValidationError(`Unsupported priority: ${next.priority}`);\n }\n if (next.automationMode !== undefined) {\n throw new AureonValidationError(\n \"automationMode cannot be changed after create: recreate the objective instead\"\n );\n }\n if ((input as { targetSymbol?: unknown }).targetSymbol !== undefined) {\n throw new AureonValidationError(\n \"targetSymbol cannot be changed after create: recreate the objective instead\"\n );\n }\n return next;\n}\n\nexport function assertId(value: string, label: string): void {\n if (!value || typeof value !== \"string\" || value.trim().length < 8) {\n throw new AureonValidationError(`Invalid ${label}`);\n }\n}\n","/**\n * @fileoverview AureonClient: primary entry point for @buildaureon/sdk.\n *\n * Typed HTTP client for the hosted AUREON API. Operator-issued API keys\n * (`X-Aureon-Api-Key`) identify the bound wallet for control-plane calls;\n * optional wallet Bearer sessions also work (Bearer wins when both are sent).\n * Env bootstrap keys unlock product access only.\n *\n * Objectives default to Automatic automation mode. Vault deposit and withdraw\n * are prepare-calldata steps for wallet signing; not server-side broadcasts.\n * Restorative execution receipts may use `settlement: \"vault\"` or\n * `settlement: \"staged\"` depending on the restore path.\n */\n\nimport { resolveFetch, userAgentHeader } from \"../adapters/fetch-adapter.js\";\nimport {\n DEFAULT_API_BASE_URL,\n SDK_VERSION,\n} from \"../constants/defaults.js\";\nimport {\n ENDPOINTS,\n developerApiKeyPath,\n objectivePath,\n objectivePausePath,\n objectiveResumePath,\n objectiveRestorePath,\n objectiveRestorePlanPath,\n} from \"../constants/endpoints.js\";\nimport { AureonValidationError } from \"../errors/base.js\";\nimport {\n assertBaseUrl,\n requestJson,\n withQuery,\n type TransportOptions,\n} from \"../transport/index.js\";\nimport type { AureonClientOptions } from \"../types/client-options.js\";\nimport {\n resolveHeaders,\n resolveMaxRetries,\n resolveRetryDelayMs,\n resolveTimeoutMs,\n} from \"../types/client-options.js\";\nimport type { ExecutionReceipt, RestorePlan } from \"../types/execution.js\";\nimport type { ObjectiveHealth } from \"../types/health.js\";\nimport type {\n ApplyMarketEventInput,\n DashboardOverview,\n MarketEvent,\n MarketPreset,\n} from \"../types/market.js\";\nimport type {\n CreateObjectiveInput,\n Objective,\n UpdateObjectiveInput,\n} from \"../types/objective.js\";\nimport type { PortfolioPositionInput, PortfolioSnapshot } from \"../types/portfolio.js\";\nimport type {\n VaultDepositSymbol,\n VaultOverview,\n VaultPrepareResult,\n VaultStatus,\n} from \"../types/vault.js\";\nimport type { WatchdogRefreshResult } from \"../types/watchdog.js\";\nimport type { TimelineEvent } from \"../types/timeline.js\";\nimport { normalizeApplyMarketEventInput } from \"../validation/market-input.js\";\nimport {\n assertId,\n normalizeCreateObjectiveInput,\n normalizeUpdateObjectiveInput,\n} from \"../validation/objective-input.js\";\n\nexport interface AuthNonceResponse {\n walletAddress: string;\n nonce: string;\n message: string;\n expiresAt: string;\n}\n\nexport interface AuthSessionResponse {\n token: string;\n walletAddress: string;\n expiresAt: string;\n sessionId: string;\n mode?: string;\n}\n\nexport interface AuthMeResponse {\n walletAddress: string;\n}\n\nexport interface SyncPortfolioResult {\n portfolio: PortfolioSnapshot;\n chainId: number;\n skippedZero: string[];\n}\n\nexport interface DeveloperApiKey {\n id: string;\n name: string;\n prefix: string;\n status: string;\n createdAt: string;\n revokedAt: string | null;\n}\n\nexport interface CreatedDeveloperApiKey extends DeveloperApiKey {\n /** Plaintext secret; only returned once at creation. */\n secret: string;\n}\n\n/**\n * High-level SDK client for AUREON operator and developer integrations.\n */\nexport class AureonClient {\n private readonly transport: TransportOptions;\n\n constructor(options: AureonClientOptions = {}) {\n const baseUrl = options.baseUrl ?? DEFAULT_API_BASE_URL;\n\n const staticToken = options.authToken;\n const getAccessToken =\n options.getAccessToken ??\n (staticToken\n ? () => staticToken\n : undefined);\n\n const staticApiKey = options.apiKey;\n const getApiKey =\n options.getApiKey ??\n (staticApiKey\n ? () => staticApiKey\n : undefined);\n\n this.transport = {\n baseUrl: assertBaseUrl(baseUrl),\n fetchImpl: resolveFetch(options.fetch),\n headers: {\n ...userAgentHeader(SDK_VERSION),\n ...resolveHeaders({ ...options, apiKey: undefined }),\n },\n timeoutMs: resolveTimeoutMs(options),\n maxRetries: resolveMaxRetries(options),\n retryDelayMs: resolveRetryDelayMs(options),\n logger: options.logger,\n getAccessToken,\n getApiKey,\n };\n }\n\n /** Returns the resolved API base URL. */\n get baseUrl(): string {\n return this.transport.baseUrl;\n }\n\n /** Health probe for connectivity checks. No auth required. */\n async ping(): Promise<{ ok: true; service: string; version: string }> {\n return requestJson(this.transport, ENDPOINTS.healthz);\n }\n\n /**\n * Requests a single-use wallet auth nonce/message for the given address.\n * No Bearer token required.\n */\n async getAuthNonce(address: string): Promise<AuthNonceResponse> {\n const trimmed = address?.trim();\n if (!trimmed) {\n throw new AureonValidationError(\"address is required\");\n }\n return requestJson(\n this.transport,\n withQuery(ENDPOINTS.authNonce, { address: trimmed })\n );\n }\n\n /**\n * Verifies a wallet signature and returns a Bearer session.\n * No Bearer token required on the request itself.\n */\n async verifyWallet(input: {\n address: string;\n message: string;\n signature: string;\n inviteCode?: string;\n }): Promise<AuthSessionResponse> {\n const address = input.address?.trim();\n const message = input.message?.trim();\n const signature = input.signature?.trim();\n const inviteCode = input.inviteCode?.trim();\n if (!address || !message || !signature) {\n throw new AureonValidationError(\n \"address, message, and signature are required\"\n );\n }\n return requestJson(this.transport, ENDPOINTS.authVerify, {\n method: \"POST\",\n body: { address, message, signature, inviteCode },\n });\n }\n\n /**\n * Local preview login without a wallet signature.\n * Only succeeds when the backend has `AUREON_ALLOW_DEV_LOGIN=1`.\n */\n async devLogin(): Promise<AuthSessionResponse> {\n return requestJson(this.transport, ENDPOINTS.authDevLogin, {\n method: \"POST\",\n });\n }\n\n /** Revokes the current Bearer session on the server. */\n async logout(): Promise<{ ok: true }> {\n return requestJson(this.transport, ENDPOINTS.authLogout, {\n method: \"POST\",\n });\n }\n\n /** Returns the wallet bound to the current Bearer session. Auth required. */\n async me(): Promise<AuthMeResponse> {\n return requestJson(this.transport, ENDPOINTS.authMe);\n }\n\n /**\n * Creates and activates a Financial Compass Objective (FCO).\n * SDK / agent path always prefers Automatic (`automationMode` omitted → `\"auto\"`).\n * Mode cannot be changed later via `updateObjective`; recreate instead.\n * Passing `\"manual\"` is reserved for the operator utility Approve UX.\n * Auth required.\n */\n async createObjective(input: CreateObjectiveInput): Promise<Objective> {\n const body = normalizeCreateObjectiveInput(input);\n return requestJson(this.transport, ENDPOINTS.objectives, {\n method: \"POST\",\n body,\n });\n }\n\n /** Lists objectives for the authenticated wallet. Auth required. */\n async listObjectives(): Promise<Objective[]> {\n const result = await requestJson<{ objectives: Objective[] }>(\n this.transport,\n ENDPOINTS.objectives\n );\n return result.objectives;\n }\n\n /** Fetches a single objective by id. Auth required. */\n async getObjective(id: string): Promise<Objective> {\n assertId(id, \"objective id\");\n return requestJson(this.transport, objectivePath(id));\n }\n\n /**\n * Applies a partial update to an objective policy or metadata.\n * Does **not** accept `automationMode` or `targetSymbol` (both locked at create).\n * Auth required.\n */\n async updateObjective(\n id: string,\n input: UpdateObjectiveInput\n ): Promise<Objective> {\n assertId(id, \"objective id\");\n const body = normalizeUpdateObjectiveInput(input);\n return requestJson(this.transport, objectivePath(id), {\n method: \"PATCH\",\n body,\n });\n }\n\n /** Pauses continuous evaluation for an objective. Auth required. */\n async pauseObjective(id: string): Promise<Objective> {\n assertId(id, \"objective id\");\n return requestJson(this.transport, objectivePausePath(id), {\n method: \"POST\",\n });\n }\n\n /** Resumes evaluation for a paused objective. Auth required. */\n async resumeObjective(id: string): Promise<Objective> {\n assertId(id, \"objective id\");\n return requestJson(this.transport, objectiveResumePath(id), {\n method: \"POST\",\n });\n }\n\n /** Returns health for one objective or all objectives when id is omitted. Auth required. */\n async getHealth(objectiveId?: string): Promise<ObjectiveHealth[]> {\n const path = withQuery(ENDPOINTS.health, { objectiveId });\n const result = await requestJson<{ health: ObjectiveHealth[] }>(\n this.transport,\n path\n );\n return result.health;\n }\n\n /** Returns timeline events, optionally filtered by objective. Auth required. */\n async getTimeline(objectiveId?: string): Promise<TimelineEvent[]> {\n const path = withQuery(ENDPOINTS.timeline, { objectiveId });\n const result = await requestJson<{ events: TimelineEvent[] }>(\n this.transport,\n path\n );\n return result.events;\n }\n\n /** Returns the current portfolio snapshot for the wallet. Auth required. */\n async getPortfolio(): Promise<PortfolioSnapshot> {\n return requestJson(this.transport, ENDPOINTS.portfolio);\n }\n\n /**\n * Replaces the wallet capital book with the provided positions.\n * Auth required. Does not invent holdings: every row must be supplied.\n */\n async setPortfolio(\n positions: PortfolioPositionInput[]\n ): Promise<PortfolioSnapshot> {\n if (!Array.isArray(positions) || positions.length === 0) {\n throw new AureonValidationError(\"positions must be a non-empty array\");\n }\n const result = await requestJson<{ portfolio: PortfolioSnapshot }>(\n this.transport,\n ENDPOINTS.portfolio,\n { method: \"PUT\", body: { positions } }\n );\n return result.portfolio;\n }\n\n /**\n * Clears all capital-book positions for the authenticated wallet.\n * Auth required. Does not invent seeded holdings.\n */\n async clearPortfolio(): Promise<PortfolioSnapshot> {\n const result = await requestJson<{ portfolio: PortfolioSnapshot }>(\n this.transport,\n ENDPOINTS.portfolioClear,\n { method: \"POST\" }\n );\n return result.portfolio;\n }\n\n /**\n * Replaces the capital book with on-chain balances for the session wallet\n * (Robinhood Chain via the AUREON API). Vault balances merge into the book.\n * Requires a wallet Bearer session; SDK clients should also send an API key\n * when keys are enforced. Does not invent holdings; only positive balances\n * returned by the API.\n */\n async syncPortfolio(): Promise<SyncPortfolioResult> {\n return requestJson(this.transport, ENDPOINTS.portfolioSync, {\n method: \"POST\",\n });\n }\n\n /**\n * Refreshes portfolio marks from live public market data, re-evaluates\n * objectives, optionally fires breach webhooks, and returns restore suggestions.\n * Auth required.\n */\n async refreshWatchdog(): Promise<WatchdogRefreshResult> {\n return requestJson(this.transport, ENDPOINTS.watchdogRefresh, {\n method: \"POST\",\n });\n }\n\n /** Returns dashboard overview aggregates. Auth required. */\n async getOverview(): Promise<DashboardOverview> {\n return requestJson(this.transport, ENDPOINTS.overview);\n }\n\n /**\n * Applies a controlled market event to portfolio marks.\n * When autoRestore is true, the API evaluates health and may run staged restorative execution.\n * Auth required.\n */\n async applyMarketEvent(input: ApplyMarketEventInput): Promise<{\n event: MarketEvent;\n portfolio: PortfolioSnapshot;\n health: ObjectiveHealth[];\n executions: ExecutionReceipt[];\n }> {\n const body = normalizeApplyMarketEventInput(input);\n return requestJson(this.transport, ENDPOINTS.marketEvents, {\n method: \"POST\",\n body,\n });\n }\n\n /** Lists controlled market event presets. Auth required. */\n async listMarketPresets(): Promise<MarketPreset[]> {\n const result = await requestJson<{ presets: MarketPreset[] }>(\n this.transport,\n ENDPOINTS.marketPresets\n );\n return result.presets;\n }\n\n /**\n * Returns the restore plan for an objective (wrap ETH, unwrap WETH, or vault swap).\n * Auth required.\n */\n async getRestorePlan(objectiveId: string): Promise<RestorePlan> {\n assertId(objectiveId, \"objective id\");\n const result = await requestJson<{ plan: RestorePlan }>(\n this.transport,\n objectiveRestorePlanPath(objectiveId)\n );\n return result.plan;\n }\n\n /**\n * Runs restorative execution for an objective currently outside policy.\n * Vault Sell A→Buy B when configured. ETH↔WETH wrap/unwrap is client-side\n * via getRestorePlan; this endpoint rejects those with action details.\n * Auth required.\n */\n async runExecution(objectiveId: string): Promise<ExecutionReceipt> {\n assertId(objectiveId, \"objective id\");\n return requestJson(this.transport, ENDPOINTS.executionsRun, {\n method: \"POST\",\n body: { objectiveId },\n });\n }\n\n /**\n * Runs vault-backed restorative execution for an objective outside policy.\n * Auth required.\n */\n async restoreObjective(objectiveId: string): Promise<ExecutionReceipt> {\n assertId(objectiveId, \"objective id\");\n return requestJson(this.transport, objectiveRestorePath(objectiveId), {\n method: \"POST\",\n });\n }\n\n /** Lists recent execution receipts. Auth required. */\n async listExecutions(objectiveId?: string): Promise<ExecutionReceipt[]> {\n const path = withQuery(ENDPOINTS.executions, { objectiveId });\n const result = await requestJson<{ executions: ExecutionReceipt[] }>(\n this.transport,\n path\n );\n return result.executions;\n }\n\n /** Returns the vault overview for the authenticated wallet. Auth required. */\n async getVault(): Promise<VaultOverview> {\n return requestJson(this.transport, ENDPOINTS.vault);\n }\n\n /** Returns compact vault funding status before restore. Auth required. */\n async getVaultStatus(): Promise<VaultStatus> {\n return requestJson(this.transport, ENDPOINTS.vaultStatus);\n }\n\n /**\n * Prepares wallet-signed calldata steps for a vault deposit.\n * Auth required.\n */\n async prepareVaultDeposit(input: {\n symbol: VaultDepositSymbol;\n amount: string;\n }): Promise<VaultPrepareResult> {\n const symbol = input.symbol?.trim();\n const amount = input.amount?.trim();\n if (!symbol) {\n throw new AureonValidationError(\n \"symbol is required (ETH or an allowlisted ERC-20)\"\n );\n }\n if (!amount) {\n throw new AureonValidationError(\"amount is required\");\n }\n return requestJson(this.transport, ENDPOINTS.vaultPrepareDeposit, {\n method: \"POST\",\n body: { symbol: symbol.toUpperCase(), amount },\n });\n }\n\n /**\n * Prepares wallet-signed calldata steps for a vault withdraw (any allowlisted ERC-20).\n * Auth required.\n */\n async prepareVaultWithdraw(input: {\n symbol?: string;\n amount: string;\n }): Promise<VaultPrepareResult> {\n const symbol = (input.symbol?.trim() || \"WETH\").toUpperCase();\n const amount = input.amount?.trim();\n if (!amount) {\n throw new AureonValidationError(\"amount is required\");\n }\n if (symbol === \"ETH\") {\n throw new AureonValidationError(\n 'withdraw symbol cannot be \"ETH\", use WETH'\n );\n }\n return requestJson(this.transport, ENDPOINTS.vaultPrepareWithdraw, {\n method: \"POST\",\n body: { symbol, amount },\n });\n }\n\n /**\n * Lists SDK API keys for the authenticated wallet.\n * Used by the operator utility Developer page.\n */\n async listApiKeys(): Promise<DeveloperApiKey[]> {\n const result = await requestJson<{ keys: DeveloperApiKey[] }>(\n this.transport,\n ENDPOINTS.developerApiKeys\n );\n return result.keys;\n }\n\n /**\n * Creates an SDK API key. `secret` is returned once; store it immediately.\n */\n async createApiKey(name: string): Promise<CreatedDeveloperApiKey> {\n const trimmed = name.trim();\n if (trimmed.length < 2) {\n throw new AureonValidationError(\"name must be at least 2 characters\");\n }\n return requestJson(this.transport, ENDPOINTS.developerApiKeys, {\n method: \"POST\",\n body: { name: trimmed },\n });\n }\n\n /** Revokes (deletes) an SDK API key owned by this wallet. */\n async revokeApiKey(keyId: string): Promise<DeveloperApiKey> {\n assertId(keyId, \"api key id\");\n return requestJson(this.transport, developerApiKeyPath(keyId), {\n method: \"DELETE\",\n });\n }\n\n /** Toggles the status (active/paused) of an SDK API key owned by this wallet. */\n async toggleApiKey(keyId: string): Promise<DeveloperApiKey> {\n assertId(keyId, \"api key id\");\n return requestJson(this.transport, `${developerApiKeyPath(keyId)}/toggle`, {\n method: \"POST\",\n });\n }\n}\n","/**\n * @fileoverview Factory helpers for constructing AureonClient instances.\n */\n\nimport {\n DEFAULT_API_BASE_URL,\n LOCAL_API_BASE_URL,\n} from \"../constants/defaults.js\";\nimport type { AureonClientOptions } from \"../types/client-options.js\";\nimport { AureonClient } from \"./aureon-client.js\";\n\n/**\n * Factory helper preferred by examples and quickstarts.\n * Defaults to the production AUREON API URL when `baseUrl` is omitted.\n */\nexport function createAureonClient(\n options: AureonClientOptions = {}\n): AureonClient {\n return new AureonClient({\n baseUrl: options.baseUrl ?? DEFAULT_API_BASE_URL,\n ...options,\n });\n}\n\n/**\n * Creates a client pointed at a local AUREON API process (monorepo operators).\n * Not advertised in the public README.\n */\nexport function createLocalAureonClient(\n overrides: Partial<AureonClientOptions> = {}\n): AureonClient {\n return new AureonClient({\n ...overrides,\n baseUrl: overrides.baseUrl ?? LOCAL_API_BASE_URL,\n });\n}\n","/**\r\n * @fileoverview Mutable bearer token holder for scripts and apps.\r\n */\r\n\r\n/** Mutable bearer token holder for scripts and apps. */\r\nexport function createSessionTokenProvider(initialToken?: string | null) {\r\n let token = initialToken ?? null;\r\n return {\r\n getAccessToken: () => token,\r\n setToken: (next: string | null) => {\r\n token = next;\r\n },\r\n clear: () => {\r\n token = null;\r\n },\r\n };\r\n}\r\n\r\nexport type SessionTokenProvider = ReturnType<typeof createSessionTokenProvider>;\r\n","/**\n * @fileoverview Display helpers shared by utility apps and CLI output.\n */\n\nimport type { HealthState } from \"../types/health.js\";\n\nexport function formatUsd(value: number): string {\n return new Intl.NumberFormat(\"en-US\", {\n style: \"currency\",\n currency: \"USD\",\n maximumFractionDigits: 2,\n }).format(value);\n}\n\nexport function formatWeight(weight: number): string {\n return `${(weight * 100).toFixed(1)}%`;\n}\n\nexport function healthTone(\n state: HealthState\n): \"positive\" | \"caution\" | \"critical\" | \"neutral\" {\n switch (state) {\n case \"healthy\":\n return \"positive\";\n case \"warning\":\n return \"caution\";\n case \"violation\":\n return \"critical\";\n case \"paused\":\n return \"neutral\";\n default:\n return \"neutral\";\n }\n}\n\nexport function formatSignedPercent(ratio: number): string {\n const pct = ratio * 100;\n const sign = pct > 0 ? \"+\" : \"\";\n return `${sign}${pct.toFixed(1)}%`;\n}\n\nexport function formatIsoTime(iso: string): string {\n try {\n return new Intl.DateTimeFormat(\"en-US\", {\n hour: \"2-digit\",\n minute: \"2-digit\",\n second: \"2-digit\",\n }).format(new Date(iso));\n } catch {\n return iso;\n }\n}\n","/**\n * @fileoverview Health Engine result types.\n */\n\nexport type HealthState = \"healthy\" | \"warning\" | \"violation\" | \"paused\";\n\nexport interface ObjectiveHealth {\n objectiveId: string;\n state: HealthState;\n score: number;\n currentMetric: number;\n targetMetric: number;\n deviation: number;\n message: string;\n evaluatedAt: string;\n}\n\nexport function isHealthState(value: string): value is HealthState {\n return [\"healthy\", \"warning\", \"violation\", \"paused\"].includes(value);\n}\n\nexport function healthRank(state: HealthState): number {\n switch (state) {\n case \"healthy\":\n return 0;\n case \"warning\":\n return 1;\n case \"paused\":\n return 2;\n case \"violation\":\n return 3;\n default:\n return 99;\n }\n}\n\nexport function pickWorstHealth(records: ObjectiveHealth[]): ObjectiveHealth | null {\n if (records.length === 0) return null;\n return [...records].sort((a, b) => healthRank(b.state) - healthRank(a.state))[0] ?? null;\n}\n","/**\n * @fileoverview Timeline event contracts for append-only operator narratives.\n */\n\nexport type TimelineEventType =\n | \"objective_created\"\n | \"objective_updated\"\n | \"objective_paused\"\n | \"objective_resumed\"\n | \"health_changed\"\n | \"violation_detected\"\n | \"evaluation_started\"\n | \"execution_started\"\n | \"execution_completed\"\n | \"market_event_applied\"\n | \"objective_restored\"\n | \"capital_provisioned\"\n | \"capital_cleared\"\n | \"capital_synced\";\n\nexport interface TimelineEvent {\n id: string;\n objectiveId: string | null;\n type: TimelineEventType;\n message: string;\n payload: Record<string, unknown>;\n createdAt: string;\n}\n\nexport const TIMELINE_EVENT_TYPES: readonly TimelineEventType[] = [\n \"objective_created\",\n \"objective_updated\",\n \"objective_paused\",\n \"objective_resumed\",\n \"health_changed\",\n \"violation_detected\",\n \"evaluation_started\",\n \"execution_started\",\n \"execution_completed\",\n \"market_event_applied\",\n \"objective_restored\",\n \"capital_provisioned\",\n \"capital_cleared\",\n \"capital_synced\",\n] as const;\n\nexport function isTimelineEventType(value: string): value is TimelineEventType {\n return (TIMELINE_EVENT_TYPES as readonly string[]).includes(value);\n}\n\nexport function filterTimelineByObjective(\n events: TimelineEvent[],\n objectiveId: string\n): TimelineEvent[] {\n return events.filter((event) => event.objectiveId === objectiveId);\n}\n","/**\n * @fileoverview Execution receipt + restore-plan types.\n *\n * Receipts may settle as vault on-chain rebalance (`settlement: \"vault\"`) or\n * as a staged capital-book update (`settlement: \"staged\"`) when the vault\n * path is unavailable. Wrap/unwrap ETH↔WETH is client-side via RestorePlan.\n */\n\nexport interface ExecutionReceipt {\n id: string;\n objectiveId: string;\n status: \"pending\" | \"submitted\" | \"confirmed\" | \"failed\";\n transactionHash: string;\n action: string;\n notionalAdjustedUsd: number;\n result: string;\n createdAt: string;\n confirmedAt: string | null;\n /**\n * `\"vault\"`: keeper rebalance confirmed (or pending_vault_* then confirmed).\n * `\"staged\"`: capital-book restore only (honest non-finality label).\n */\n settlement?: \"staged\" | \"vault\";\n}\n\n/** Client-side restore action: wrap/unwrap ETH↔WETH or keeper vault swap. */\nexport type RestorePlanKind = \"wrap_eth\" | \"unwrap_weth\" | \"vault_swap\";\n\nexport interface RestorePlan {\n kind: RestorePlanKind;\n amountHuman: string;\n approxUsd: number;\n message: string;\n sellSymbol?: string;\n buySymbol?: string;\n}\n\nexport function isConfirmedExecution(receipt: ExecutionReceipt): boolean {\n return receipt.status === \"confirmed\" && Boolean(receipt.confirmedAt);\n}\n\nexport function shortTransactionHash(hash: string, head = 10, tail = 6): string {\n if (hash.length <= head + tail + 1) return hash;\n return `${hash.slice(0, head)}…${hash.slice(-tail)}`;\n}\n\nexport function sortExecutionsNewestFirst(\n receipts: ExecutionReceipt[]\n): ExecutionReceipt[] {\n return [...receipts].sort((a, b) => (a.createdAt < b.createdAt ? 1 : -1));\n}\n\n/** True when the receipt claims vault (on-chain) settlement. */\nexport function isVaultSettlement(receipt: ExecutionReceipt): boolean {\n return receipt.settlement === \"vault\";\n}\n","/**\n * @fileoverview Optional structured logging hooks for SDK integrators.\n */\n\nexport type LogLevel = \"debug\" | \"info\" | \"warn\" | \"error\";\n\nexport interface AureonLogger {\n debug(message: string, context?: Record<string, unknown>): void;\n info(message: string, context?: Record<string, unknown>): void;\n warn(message: string, context?: Record<string, unknown>): void;\n error(message: string, context?: Record<string, unknown>): void;\n}\n\nexport const silentLogger: AureonLogger = {\n debug() {},\n info() {},\n warn() {},\n error() {},\n};\n\nexport function createConsoleLogger(prefix = \"aureon-sdk\"): AureonLogger {\n const write = (level: LogLevel, message: string, context?: Record<string, unknown>) => {\n const line = `[${prefix}] ${message}`;\n if (level === \"error\") console.error(line, context ?? \"\");\n else if (level === \"warn\") console.warn(line, context ?? \"\");\n else console.log(line, context ?? \"\");\n };\n return {\n debug: (m, c) => write(\"debug\", m, c),\n info: (m, c) => write(\"info\", m, c),\n warn: (m, c) => write(\"warn\", m, c),\n error: (m, c) => write(\"error\", m, c),\n };\n}\n"]}
1
+ {"version":3,"sources":["../src/adapters/fetch-adapter.ts","../src/constants/defaults.ts","../src/constants/endpoints.ts","../src/errors/codes.ts","../src/errors/base.ts","../src/errors/http.ts","../src/transport/url.ts","../src/transport/http.ts","../src/types/client-options.ts","../src/types/market.ts","../src/validation/market-input.ts","../src/types/objective.ts","../src/validation/objective-input.ts","../src/client/aureon-client.ts","../src/client/factory.ts","../src/auth/session.ts","../src/formatting/display.ts","../src/types/health.ts","../src/types/timeline.ts","../src/types/execution.ts","../src/adapters/logging-adapter.ts"],"names":["DEFAULT_TIMEOUT_MS"],"mappings":"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","file":"index.js","sourcesContent":["/**\r\n * @fileoverview Fetch adapter helpers for browser and Node runtimes.\r\n */\r\n\r\nexport type FetchLike = typeof fetch;\r\n\r\nexport function resolveFetch(custom?: FetchLike): FetchLike {\r\n if (custom) return custom.bind(custom);\r\n if (typeof globalThis.fetch !== \"function\") {\r\n throw new Error(\"No fetch implementation available in this runtime\");\r\n }\r\n return globalThis.fetch.bind(globalThis);\r\n}\r\n\r\nexport function mergeHeaders(\r\n base: Record<string, string>,\r\n extra?: Record<string, string>\r\n): Record<string, string> {\r\n return { ...base, ...(extra ?? {}) };\r\n}\r\n\r\nexport function userAgentHeader(version: string): Record<string, string> {\r\n return { \"X-Aureon-SDK\": `@buildaureon/sdk/${version}` };\r\n}\r\n","/**\r\n * @fileoverview Default runtime values for SDK clients and examples.\r\n */\r\n\r\n/** Production AUREON API (public integrators). */\r\nexport const DEFAULT_API_BASE_URL = \"https://api.aureonlabs.network\";\r\n\r\n/** Local monorepo preview only; not for public docs. */\r\nexport const LOCAL_API_BASE_URL = \"http://127.0.0.1:8787\";\r\n\r\nexport const DEFAULT_TIMEOUT_MS = 30_000;\r\nexport const SDK_VERSION = \"0.1.2\";\r\nexport const SDK_NAME = \"@buildaureon/sdk\";\r\nexport const PRODUCT_NAME = \"AUREON\";\r\nexport const PRODUCT_TAGLINE =\r\n \"Financial Compass for Robinhood Chain\";\r\n\r\nexport const REFERENCE_SYMBOLS = [\"USDG\", \"NVDA\", \"AAPL\", \"GOOGL\", \"ETH\"] as const;\r\n\r\n/** HTTP header for product API keys. */\r\nexport const API_KEY_HEADER = \"X-Aureon-Api-Key\";\r\n","/**\r\n * @fileoverview API path constants for AureonClient methods.\r\n */\r\n\r\nexport const ENDPOINTS = {\r\n healthz: \"/healthz\",\r\n overview: \"/overview\",\r\n portfolio: \"/portfolio\",\r\n portfolioClear: \"/portfolio/clear\",\r\n portfolioSync: \"/portfolio/sync\",\r\n watchdogRefresh: \"/watchdog/refresh\",\r\n objectives: \"/objectives\",\r\n health: \"/health\",\r\n timeline: \"/timeline\",\r\n executions: \"/executions\",\r\n executionsRun: \"/executions/run\",\r\n marketEvents: \"/market/events\",\r\n marketPresets: \"/market/presets\",\r\n vault: \"/vault\",\r\n vaultStatus: \"/vault/status\",\r\n vaultPrepareDeposit: \"/vault/prepare-deposit\",\r\n vaultPrepareWithdraw: \"/vault/prepare-withdraw\",\r\n authNonce: \"/auth/nonce\",\r\n authVerify: \"/auth/verify\",\r\n authLogout: \"/auth/logout\",\r\n authDevLogin: \"/auth/dev-login\",\r\n authMe: \"/auth/me\",\r\n developerApiKeys: \"/developer/api-keys\",\r\n registryStatus: \"/registry/status\",\r\n} as const;\r\n\r\nexport function objectivePath(id: string): string {\r\n return `${ENDPOINTS.objectives}/${encodeURIComponent(id)}`;\r\n}\r\n\r\nexport function objectivePausePath(id: string): string {\r\n return `${objectivePath(id)}/pause`;\r\n}\r\n\r\nexport function objectiveResumePath(id: string): string {\r\n return `${objectivePath(id)}/resume`;\r\n}\r\n\r\nexport function objectiveRestorePlanPath(id: string): string {\r\n return `${objectivePath(id)}/restore-plan`;\r\n}\r\n\r\nexport function objectiveRestorePath(id: string): string {\r\n return `${objectivePath(id)}/restore`;\r\n}\r\n\r\nexport function developerApiKeyPath(id: string): string {\r\n return `${ENDPOINTS.developerApiKeys}/${encodeURIComponent(id)}`;\r\n}\r\n\r\nexport function registryObjectivePath(id: string): string {\r\n return `/registry/objectives/${encodeURIComponent(id)}`;\r\n}\r\n\r\nexport function registryPreparePath(id: string): string {\r\n return `${registryObjectivePath(id)}/prepare-register`;\r\n}\r\n\r\nexport function registryConfirmPath(id: string): string {\r\n return `${registryObjectivePath(id)}/confirm`;\r\n}\r\n","/**\r\n * @fileoverview Stable machine-readable error codes for @buildaureon/sdk.\r\n */\r\n\r\nexport type AureonErrorCode =\r\n | \"NETWORK_ERROR\"\r\n | \"TIMEOUT\"\r\n | \"VALIDATION_ERROR\"\r\n | \"NOT_FOUND\"\r\n | \"CONFLICT\"\r\n | \"UNAUTHORIZED\"\r\n | \"RATE_LIMITED\"\r\n | \"SERVER_ERROR\"\r\n | \"UNEXPECTED_RESPONSE\"\r\n | \"ABORTED\";\r\n\r\nexport const RETRYABLE_CODES: readonly AureonErrorCode[] = [\r\n \"NETWORK_ERROR\",\r\n \"TIMEOUT\",\r\n \"RATE_LIMITED\",\r\n \"SERVER_ERROR\",\r\n] as const;\r\n\r\nexport function isRetryableCode(code: AureonErrorCode): boolean {\r\n return (RETRYABLE_CODES as readonly string[]).includes(code);\r\n}\r\n\r\nexport function defaultMessageForStatus(status: number): string {\r\n switch (status) {\r\n case 400:\r\n return \"The request failed validation\";\r\n case 401:\r\n return \"Authentication is required\";\r\n case 403:\r\n return \"Access is forbidden for this resource\";\r\n case 404:\r\n return \"The requested resource was not found\";\r\n case 409:\r\n return \"The request conflicts with the current resource state\";\r\n case 429:\r\n return \"Rate limit exceeded\";\r\n default:\r\n if (status >= 500) return \"The server encountered an error\";\r\n return `Unexpected HTTP status ${status}`;\r\n }\r\n}\r\n","/**\r\n * @fileoverview Base and specialized error classes for the AUREON SDK.\r\n */\r\n\r\nimport { isRetryableCode, type AureonErrorCode } from \"./codes.js\";\r\n\r\nexport class AureonError extends Error {\r\n readonly code: AureonErrorCode;\r\n readonly status: number | null;\r\n readonly details: Record<string, unknown> | null;\r\n\r\n constructor(\r\n message: string,\r\n code: AureonErrorCode,\r\n status: number | null = null,\r\n details: Record<string, unknown> | null = null\r\n ) {\r\n super(message);\r\n this.name = \"AureonError\";\r\n this.code = code;\r\n this.status = status;\r\n this.details = details;\r\n Object.setPrototypeOf(this, new.target.prototype);\r\n }\r\n\r\n get retryable(): boolean {\r\n return isRetryableCode(this.code);\r\n }\r\n\r\n toJSON(): Record<string, unknown> {\r\n return {\r\n name: this.name,\r\n message: this.message,\r\n code: this.code,\r\n status: this.status,\r\n details: this.details,\r\n retryable: this.retryable,\r\n };\r\n }\r\n}\r\n\r\nexport class AureonValidationError extends AureonError {\r\n constructor(message: string, details: Record<string, unknown> | null = null) {\r\n super(message, \"VALIDATION_ERROR\", 400, details);\r\n this.name = \"AureonValidationError\";\r\n Object.setPrototypeOf(this, new.target.prototype);\r\n }\r\n}\r\n\r\nexport class AureonNotFoundError extends AureonError {\r\n constructor(message: string, details: Record<string, unknown> | null = null) {\r\n super(message, \"NOT_FOUND\", 404, details);\r\n this.name = \"AureonNotFoundError\";\r\n Object.setPrototypeOf(this, new.target.prototype);\r\n }\r\n}\r\n\r\nexport class AureonConflictError extends AureonError {\r\n constructor(message: string, details: Record<string, unknown> | null = null) {\r\n super(message, \"CONFLICT\", 409, details);\r\n this.name = \"AureonConflictError\";\r\n Object.setPrototypeOf(this, new.target.prototype);\r\n }\r\n}\r\n\r\nexport class AureonNetworkError extends AureonError {\r\n constructor(message: string, details: Record<string, unknown> | null = null) {\r\n super(message, \"NETWORK_ERROR\", null, details);\r\n this.name = \"AureonNetworkError\";\r\n Object.setPrototypeOf(this, new.target.prototype);\r\n }\r\n}\r\n\r\nexport class AureonTimeoutError extends AureonError {\r\n constructor(message = \"Request timed out\", details: Record<string, unknown> | null = null) {\r\n super(message, \"TIMEOUT\", null, details);\r\n this.name = \"AureonTimeoutError\";\r\n Object.setPrototypeOf(this, new.target.prototype);\r\n }\r\n}\r\n","/**\r\n * @fileoverview Maps HTTP responses into typed AureonError instances.\r\n */\r\n\r\nimport {\r\n AureonConflictError,\r\n AureonError,\r\n AureonNotFoundError,\r\n AureonValidationError,\r\n} from \"./base.js\";\r\nimport { defaultMessageForStatus } from \"./codes.js\";\r\n\r\nfunction isRecord(value: unknown): value is Record<string, unknown> {\r\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\r\n}\r\n\r\nfunction extractMessage(body: unknown): string | null {\r\n if (!isRecord(body)) return null;\r\n if (typeof body.message === \"string\") return body.message;\r\n if (typeof body.error === \"string\") return body.error;\r\n if (isRecord(body.error) && typeof body.error.message === \"string\") {\r\n return body.error.message;\r\n }\r\n return null;\r\n}\r\n\r\nexport function errorFromHttpStatus(status: number, body: unknown): AureonError {\r\n const message = extractMessage(body) ?? defaultMessageForStatus(status);\r\n const details = isRecord(body) ? body : { body };\r\n\r\n if (status === 400) return new AureonValidationError(message, details);\r\n if (status === 404) return new AureonNotFoundError(message, details);\r\n if (status === 409) return new AureonConflictError(message, details);\r\n if (status === 401 || status === 403) {\r\n return new AureonError(message, \"UNAUTHORIZED\", status, details);\r\n }\r\n if (status === 429) {\r\n return new AureonError(message, \"RATE_LIMITED\", status, details);\r\n }\r\n if (status >= 500) {\r\n return new AureonError(message, \"SERVER_ERROR\", status, details);\r\n }\r\n return new AureonError(message, \"UNEXPECTED_RESPONSE\", status, details);\r\n}\r\n\r\nexport function isAureonError(value: unknown): value is AureonError {\r\n return value instanceof AureonError;\r\n}\r\n","/**\r\n * @fileoverview URL helpers for the AUREON HTTP transport.\r\n */\r\n\r\nimport { AureonError } from \"../errors/base.js\";\r\n\r\nexport function joinUrl(baseUrl: string, path: string): string {\r\n const base = baseUrl.replace(/\\/+$/, \"\");\r\n const suffix = path.startsWith(\"/\") ? path : `/${path}`;\r\n return `${base}${suffix}`;\r\n}\r\n\r\nexport function assertBaseUrl(baseUrl: string): string {\r\n const trimmed = baseUrl.trim().replace(/\\/+$/, \"\");\r\n if (!/^https?:\\/\\//i.test(trimmed)) {\r\n throw new AureonError(\r\n \"baseUrl must be an absolute http(s) URL\",\r\n \"VALIDATION_ERROR\",\r\n 400,\r\n { baseUrl }\r\n );\r\n }\r\n return trimmed;\r\n}\r\n\r\nexport function withQuery(\r\n path: string,\r\n query: Record<string, string | undefined>\r\n): string {\r\n const params = new URLSearchParams();\r\n for (const [key, value] of Object.entries(query)) {\r\n if (value !== undefined && value !== \"\") params.set(key, value);\r\n }\r\n const qs = params.toString();\r\n if (!qs) return path;\r\n return path.includes(\"?\") ? `${path}&${qs}` : `${path}?${qs}`;\r\n}\r\n","/**\r\n * @fileoverview JSON HTTP transport used by AureonClient.\r\n */\r\n\r\nimport type { AureonLogger } from \"../adapters/logging-adapter.js\";\r\nimport {\r\n AureonError,\r\n AureonNetworkError,\r\n AureonTimeoutError,\r\n} from \"../errors/base.js\";\r\nimport { errorFromHttpStatus } from \"../errors/http.js\";\r\nimport { joinUrl } from \"./url.js\";\r\n\r\nexport interface TransportOptions {\r\n baseUrl: string;\r\n fetchImpl: typeof fetch;\r\n headers: Record<string, string>;\r\n timeoutMs: number;\r\n maxRetries?: number;\r\n retryDelayMs?: number;\r\n logger?: AureonLogger;\r\n getAccessToken?: () =>\r\n | string\r\n | null\r\n | undefined\r\n | Promise<string | null | undefined>;\r\n getApiKey?: () =>\r\n | string\r\n | null\r\n | undefined\r\n | Promise<string | null | undefined>;\r\n}\r\n\r\nexport interface RequestOptions {\r\n method?: string;\r\n body?: unknown;\r\n headers?: Record<string, string>;\r\n signal?: AbortSignal;\r\n}\r\n\r\nfunction safeParseJson(text: string): unknown {\r\n try {\r\n return JSON.parse(text);\r\n } catch {\r\n return { message: text };\r\n }\r\n}\r\n\r\nfunction isAbortError(error: unknown): boolean {\r\n return (\r\n (error instanceof DOMException && error.name === \"AbortError\") ||\r\n (error instanceof Error && error.name === \"AbortError\")\r\n );\r\n}\r\n\r\nfunction isRetryableError(error: unknown): boolean {\r\n if (error instanceof AureonNetworkError || error instanceof AureonTimeoutError) {\r\n return true;\r\n }\r\n if (error instanceof AureonError) {\r\n return (\r\n typeof error.status === \"number\" &&\r\n (error.status >= 500 || error.status === 429)\r\n );\r\n }\r\n return false;\r\n}\r\n\r\nfunction sleep(ms: number): Promise<void> {\r\n return new Promise((resolve) => setTimeout(resolve, ms));\r\n}\r\n\r\nexport async function requestJson<T>(\r\n transport: TransportOptions,\r\n path: string,\r\n options: RequestOptions = {}\r\n): Promise<T> {\r\n const url = joinUrl(transport.baseUrl, path);\r\n const maxRetries = transport.maxRetries ?? 0;\r\n const retryDelayMs = transport.retryDelayMs ?? 250;\r\n let attempt = 0;\r\n\r\n while (true) {\r\n attempt += 1;\r\n const controller = new AbortController();\r\n const timeout = setTimeout(() => controller.abort(), transport.timeoutMs);\r\n const onAbort = () => controller.abort();\r\n\r\n if (options.signal) {\r\n if (options.signal.aborted) {\r\n clearTimeout(timeout);\r\n throw new AureonError(\"Request aborted\", \"ABORTED\");\r\n }\r\n options.signal.addEventListener(\"abort\", onAbort, { once: true });\r\n }\r\n\r\n try {\r\n const token = transport.getAccessToken\r\n ? await transport.getAccessToken()\r\n : null;\r\n const authHeaders: Record<string, string> = {};\r\n if (typeof token === \"string\" && token.trim().length > 0) {\r\n authHeaders.Authorization = `Bearer ${token.trim()}`;\r\n }\r\n\r\n const apiKey = transport.getApiKey\r\n ? await transport.getApiKey()\r\n : null;\r\n if (typeof apiKey === \"string\" && apiKey.trim().length > 0) {\r\n authHeaders[\"X-Aureon-Api-Key\"] = apiKey.trim();\r\n }\r\n\r\n transport.logger?.debug(\"aureon.request\", {\r\n method: options.method ?? (options.body !== undefined ? \"POST\" : \"GET\"),\r\n path,\r\n attempt,\r\n });\r\n\r\n const response = await transport.fetchImpl(url, {\r\n method: options.method ?? (options.body !== undefined ? \"POST\" : \"GET\"),\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n ...transport.headers,\r\n ...authHeaders,\r\n ...options.headers,\r\n },\r\n body:\r\n options.body !== undefined ? JSON.stringify(options.body) : undefined,\r\n signal: controller.signal,\r\n });\r\n\r\n const text = await response.text();\r\n const parsed = text.length > 0 ? safeParseJson(text) : null;\r\n\r\n if (!response.ok) {\r\n throw errorFromHttpStatus(response.status, parsed ?? { message: text });\r\n }\r\n\r\n return parsed as T;\r\n } catch (error) {\r\n if (error instanceof AureonError && !isRetryableError(error)) {\r\n throw error;\r\n }\r\n if (isAbortError(error)) {\r\n const timeoutError = new AureonTimeoutError(\r\n \"Request timed out or was aborted\",\r\n { url, timeoutMs: transport.timeoutMs }\r\n );\r\n if (attempt <= maxRetries) {\r\n transport.logger?.warn(\"aureon.retry\", {\r\n path,\r\n attempt,\r\n reason: \"timeout\",\r\n });\r\n await sleep(retryDelayMs);\r\n continue;\r\n }\r\n throw timeoutError;\r\n }\r\n if (error instanceof AureonError) {\r\n if (attempt <= maxRetries && isRetryableError(error)) {\r\n transport.logger?.warn(\"aureon.retry\", {\r\n path,\r\n attempt,\r\n code: error.code,\r\n status: error.status,\r\n });\r\n await sleep(retryDelayMs);\r\n continue;\r\n }\r\n throw error;\r\n }\r\n const networkError = new AureonNetworkError(\r\n error instanceof Error ? error.message : \"Network request failed\",\r\n { url }\r\n );\r\n if (attempt <= maxRetries) {\r\n transport.logger?.warn(\"aureon.retry\", {\r\n path,\r\n attempt,\r\n reason: \"network\",\r\n });\r\n await sleep(retryDelayMs);\r\n continue;\r\n }\r\n throw networkError;\r\n } finally {\r\n clearTimeout(timeout);\r\n if (options.signal) options.signal.removeEventListener(\"abort\", onAbort);\r\n }\r\n }\r\n}\r\n","/**\r\n * @fileoverview Client configuration types for AureonClient.\r\n */\r\n\r\nimport type { AureonLogger } from \"../adapters/logging-adapter.js\";\r\nimport { API_KEY_HEADER } from \"../constants/defaults.js\";\r\n\r\nexport interface AureonClientOptions {\r\n /**\r\n * Base URL of the AUREON API.\r\n * Defaults to `https://api.aureonlabs.network`.\r\n */\r\n baseUrl?: string;\r\n /**\r\n * Product API key sent as `X-Aureon-Api-Key` on every request.\r\n * Operator-issued keys (from the Developers console) also identify the\r\n * bound wallet for control-plane calls — no Bearer required.\r\n * Env bootstrap keys unlock product access only; they do not set identity.\r\n * The operator utility uses wallet Bearer only.\r\n */\r\n apiKey?: string | null;\r\n /**\r\n * Called before each request to resolve the product API key.\r\n * Prefer this for automations that load keys from env or a secret store.\r\n */\r\n getApiKey?: () => string | null | undefined | Promise<string | null | undefined>;\r\n /** Optional fetch implementation for non-browser runtimes. */\r\n fetch?: typeof fetch;\r\n /** Optional default headers merged into every request. */\r\n headers?: Record<string, string>;\r\n /** Request timeout in milliseconds. Defaults to 30000. */\r\n timeoutMs?: number;\r\n /**\r\n * Static Bearer session token. Prefer `getAccessToken` for apps that refresh\r\n * or clear sessions at runtime.\r\n */\r\n authToken?: string | null;\r\n /**\r\n * Called before each request to resolve the current Bearer token.\r\n * Return null/undefined to send the request without Authorization.\r\n */\r\n getAccessToken?: () => string | null | undefined | Promise<string | null | undefined>;\r\n /** Optional structured logger for request lifecycle diagnostics. */\r\n logger?: AureonLogger;\r\n /**\r\n * Extra attempts after the first failure for retryable errors\r\n * (network, timeout, 429, 5xx). Defaults to 0.\r\n */\r\n maxRetries?: number;\r\n /** Delay in ms between retries. Defaults to 250. */\r\n retryDelayMs?: number;\r\n}\r\n\r\nexport const DEFAULT_TIMEOUT_MS = 30_000;\r\n\r\nexport function resolveTimeoutMs(options: AureonClientOptions): number {\r\n const value = options.timeoutMs ?? DEFAULT_TIMEOUT_MS;\r\n if (!Number.isFinite(value) || value <= 0) {\r\n throw new Error(\"timeoutMs must be a positive finite number\");\r\n }\r\n return value;\r\n}\r\n\r\nexport function resolveHeaders(\r\n options: AureonClientOptions\r\n): Record<string, string> {\r\n const headers: Record<string, string> = { ...(options.headers ?? {}) };\r\n const key = options.apiKey?.trim();\r\n if (key) {\r\n headers[API_KEY_HEADER] = key;\r\n }\r\n return headers;\r\n}\r\n\r\nexport function resolveMaxRetries(options: AureonClientOptions): number {\r\n const value = options.maxRetries ?? 0;\r\n if (!Number.isInteger(value) || value < 0) {\r\n throw new Error(\"maxRetries must be a non-negative integer\");\r\n }\r\n return value;\r\n}\r\n\r\nexport function resolveRetryDelayMs(options: AureonClientOptions): number {\r\n const value = options.retryDelayMs ?? 250;\r\n if (!Number.isFinite(value) || value < 0) {\r\n throw new Error(\"retryDelayMs must be a non-negative finite number\");\r\n }\r\n return value;\r\n}\r\n","/**\r\n * @fileoverview Controlled market event types for operator demos and rehearsals.\r\n */\r\n\r\nexport interface MarketEvent {\r\n id: string;\r\n name: string;\r\n description: string;\r\n symbol: string;\r\n priceChangeRatio: number;\r\n appliedAt: string;\r\n}\r\n\r\nexport interface MarketPreset {\r\n name: string;\r\n description: string;\r\n symbol: string;\r\n priceChangeRatio: number;\r\n}\r\n\r\nexport interface ApplyMarketEventInput {\r\n name?: string;\r\n description?: string;\r\n symbol: string;\r\n priceChangeRatio: number;\r\n autoRestore?: boolean;\r\n}\r\n\r\nexport interface DashboardOverview {\r\n activeObjectives: number;\r\n healthyCount: number;\r\n warningCount: number;\r\n violationCount: number;\r\n pausedCount: number;\r\n totalNotionalUsd: number;\r\n stableWeight: number;\r\n /** Holdings count from the capital book. */\r\n assetCount: number;\r\n /** Absolute USD change vs prior UTC day snapshot; null when baseline only. */\r\n change24hUsd: number | null;\r\n /** Fractional change (0.05 = +5%); null when baseline only. */\r\n change24hPct: number | null;\r\n /** True when no prior-day snapshot exists yet. */\r\n change24hBaselineOnly: boolean;\r\n /** True when today's snapshot row exists. */\r\n change24hHasSnapshot: boolean;\r\n /** Average health score across non-paused objectives; null when none. */\r\n globalHealthScore: number | null;\r\n /** Persisted health samples (oldest → newest), up to ~90 days. */\r\n healthHistory: Array<{ at: string; score: number }>;\r\n /** warning + violation count. */\r\n attentionCount: number;\r\n /** Last successful live-mark watchdog evaluation (not overview poll). */\r\n lastEvaluationAt: string | null;\r\n /** lastEvaluationAt + watchdog interval when continuous monitor is configured. */\r\n nextEvaluationAt: string | null;\r\n watchdogIntervalMs: number | null;\r\n /** Last background/manual watchdog failure message, if any. */\r\n lastWatchdogError: string | null;\r\n lastSyncedAt: string | null;\r\n recentExecutions: import(\"./execution.js\").ExecutionReceipt[];\r\n recentEvents: import(\"./timeline.js\").TimelineEvent[];\r\n}\r\n\r\nexport function normalizeSymbol(symbol: string): string {\r\n return symbol.trim().toUpperCase();\r\n}\r\n\r\nexport function describeMarketMove(event: MarketEvent): string {\r\n const pct = (event.priceChangeRatio * 100).toFixed(2);\r\n return `${event.symbol} mark moved ${pct}% (${event.name})`;\r\n}\r\n","/**\r\n * @fileoverview Validation for controlled market event inputs.\r\n */\r\n\r\nimport { AureonValidationError } from \"../errors/base.js\";\r\nimport type { ApplyMarketEventInput } from \"../types/market.js\";\r\nimport { normalizeSymbol } from \"../types/market.js\";\r\n\r\nexport function normalizeApplyMarketEventInput(\r\n input: ApplyMarketEventInput\r\n): ApplyMarketEventInput {\r\n const symbol = normalizeSymbol(input.symbol ?? \"\");\r\n if (!symbol) throw new AureonValidationError(\"symbol is required\");\r\n if (!Number.isFinite(input.priceChangeRatio)) {\r\n throw new AureonValidationError(\"priceChangeRatio must be a finite number\");\r\n }\r\n if (input.priceChangeRatio <= -0.95) {\r\n throw new AureonValidationError(\r\n \"priceChangeRatio is too extreme for preview runtime\"\r\n );\r\n }\r\n return {\r\n ...input,\r\n symbol,\r\n autoRestore: input.autoRestore !== false,\r\n name: input.name?.trim() || undefined,\r\n description: input.description?.trim() || undefined,\r\n };\r\n}\r\n","/**\r\n * @fileoverview Objective domain types for Financial Compass Objectives.\r\n */\r\n\r\n/** Lifecycle status for a Financial Compass Objective (FCO). */\r\nexport type ObjectiveStatus =\r\n | \"draft\"\r\n | \"validated\"\r\n | \"active\"\r\n | \"paused\"\r\n | \"cancelled\"\r\n | \"completed\";\r\n\r\n/** Supported objective kinds for Phase 1 operator workflows. */\r\nexport type ObjectiveKind =\r\n | \"stable_allocation\"\r\n | \"balanced_portfolio\"\r\n | \"risk_ceiling\"\r\n | \"reward_reinvestment\";\r\n\r\n/** Priority influences evaluation ordering when multiple objectives compete. */\r\nexport type ObjectivePriority = \"low\" | \"medium\" | \"high\" | \"critical\";\r\n\r\n/**\r\n * Per-objective restore behaviour as stored on the API.\r\n *\r\n * SDK / agent integrations create objectives as **Automatic** (default).\r\n * `\"manual\"` exists so the operator utility can require an Approve click;\r\n * it is not part of the recommended SDK integration path.\r\n */\r\nexport type ObjectiveAutomationMode = \"manual\" | \"auto\";\r\n\r\n/** Policy rules attached to an objective. */\r\nexport interface ObjectivePolicy {\r\n targetWeight: number;\r\n tolerance: number;\r\n maxRiskScore?: number;\r\n reinvestRatio?: number;\r\n /** Holding symbol when the objective tracks a specific asset weight. */\r\n targetSymbol?: string;\r\n summary: string;\r\n}\r\n\r\n/** Financial Compass Objective record. */\r\nexport interface Objective {\r\n id: string;\r\n name: string;\r\n kind: ObjectiveKind;\r\n status: ObjectiveStatus;\r\n priority: ObjectivePriority;\r\n /**\r\n * Restore mode for this objective.\r\n * SDK creates always set `\"auto\"`. `\"manual\"` is operator-utility only.\r\n */\r\n automationMode: ObjectiveAutomationMode;\r\n policy: ObjectivePolicy;\r\n ownerId: string;\r\n createdAt: string;\r\n updatedAt: string;\r\n lastEvaluatedAt: string | null;\r\n lastExecutionId: string | null;\r\n verifiedOnChain?: boolean;\r\n configHash?: string;\r\n}\r\n\r\n/**\r\n * Input for creating a new objective.\r\n *\r\n * SDK create always sends `automationMode: \"auto\"` (Automatic restore).\r\n * Manual Approve is an operator-utility concern; do not rely on it in\r\n * agent / SDK loops.\r\n */\r\nexport interface CreateObjectiveInput {\r\n name: string;\r\n kind: ObjectiveKind;\r\n priority?: ObjectivePriority;\r\n targetWeight: number;\r\n tolerance: number;\r\n maxRiskScore?: number;\r\n reinvestRatio?: number;\r\n targetSymbol?: string | null;\r\n /**\r\n * @deprecated For SDK integrations omit this; create always uses Automatic.\r\n * The operator utility may still pass `\"manual\"` for Approve UX.\r\n */\r\n automationMode?: ObjectiveAutomationMode;\r\n}\r\n\r\n/** Partial update for an existing objective. */\r\nexport interface UpdateObjectiveInput {\r\n name?: string;\r\n priority?: ObjectivePriority;\r\n targetWeight?: number;\r\n tolerance?: number;\r\n maxRiskScore?: number;\r\n reinvestRatio?: number;\r\n /**\r\n * @deprecated Rejected on update; target token is fixed at create.\r\n * Recreate the objective to track a different holding.\r\n */\r\n targetSymbol?: never;\r\n /**\r\n * @deprecated Rejected on update; mode is fixed at create to avoid restore-flow issues.\r\n * Recreate the objective to switch Manual ↔ Automatic.\r\n */\r\n automationMode?: never;\r\n}\r\n\r\nexport const OBJECTIVE_KINDS: readonly ObjectiveKind[] = [\r\n \"stable_allocation\",\r\n \"balanced_portfolio\",\r\n \"risk_ceiling\",\r\n \"reward_reinvestment\",\r\n] as const;\r\n\r\nexport const OBJECTIVE_PRIORITIES: readonly ObjectivePriority[] = [\r\n \"low\",\r\n \"medium\",\r\n \"high\",\r\n \"critical\",\r\n] as const;\r\n\r\nexport function isObjectiveKind(value: string): value is ObjectiveKind {\r\n return (OBJECTIVE_KINDS as readonly string[]).includes(value);\r\n}\r\n\r\nexport function isObjectivePriority(value: string): value is ObjectivePriority {\r\n return (OBJECTIVE_PRIORITIES as readonly string[]).includes(value);\r\n}\r\n","/**\r\n * @fileoverview Validation and normalization for objective create/update payloads.\r\n */\r\n\r\nimport { AureonValidationError } from \"../errors/base.js\";\r\nimport type {\r\n CreateObjectiveInput,\r\n UpdateObjectiveInput,\r\n} from \"../types/objective.js\";\r\nimport { isObjectiveKind, isObjectivePriority } from \"../types/objective.js\";\r\n\r\nexport function buildPolicySummary(\r\n kind: CreateObjectiveInput[\"kind\"],\r\n targetWeight: number,\r\n tolerance: number\r\n): string {\r\n const targetPct = (targetWeight * 100).toFixed(1);\r\n const tolPct = (tolerance * 100).toFixed(1);\r\n switch (kind) {\r\n case \"stable_allocation\":\r\n return `Maintain ${targetPct}% stable allocation within ±${tolPct}%`;\r\n case \"balanced_portfolio\":\r\n return `Hold balanced weights near ${targetPct}% primary sleeve within ±${tolPct}%`;\r\n case \"risk_ceiling\":\r\n return `Keep portfolio risk at or below configured ceiling with ${tolPct}% buffer`;\r\n case \"reward_reinvestment\":\r\n return `Reinvest available rewards toward ${targetPct}% target sleeve`;\r\n default:\r\n return `Objective policy target ${targetPct}% ±${tolPct}%`;\r\n }\r\n}\r\n\r\nexport function normalizeCreateObjectiveInput(\r\n input: CreateObjectiveInput\r\n): CreateObjectiveInput {\r\n const name = input.name?.trim();\r\n if (!name || name.length < 3) {\r\n throw new AureonValidationError(\"Objective name must be at least 3 characters\");\r\n }\r\n if (!isObjectiveKind(input.kind)) {\r\n throw new AureonValidationError(`Unsupported objective kind: ${input.kind}`);\r\n }\r\n if (input.targetWeight < 0 || input.targetWeight > 1) {\r\n throw new AureonValidationError(\"targetWeight must be between 0 and 1\");\r\n }\r\n if (input.tolerance < 0 || input.tolerance > 0.5) {\r\n throw new AureonValidationError(\"tolerance must be between 0 and 0.5\");\r\n }\r\n const priority = input.priority ?? \"high\";\r\n if (!isObjectivePriority(priority)) {\r\n throw new AureonValidationError(`Unsupported priority: ${priority}`);\r\n }\r\n if (input.kind === \"balanced_portfolio\") {\r\n const symbol = input.targetSymbol?.trim().toUpperCase();\r\n if (!symbol) {\r\n throw new AureonValidationError(\r\n \"balanced_portfolio requires targetSymbol\"\r\n );\r\n }\r\n return {\r\n ...input,\r\n name,\r\n priority,\r\n targetSymbol: symbol,\r\n // SDK / agent path defaults to Automatic. Explicit \"manual\" is reserved\r\n // for the operator utility Approve UX; not recommended for integrations.\r\n automationMode: input.automationMode === \"manual\" ? \"manual\" : \"auto\",\r\n };\r\n }\r\n return {\r\n ...input,\r\n name,\r\n priority,\r\n targetSymbol: null,\r\n automationMode: input.automationMode === \"manual\" ? \"manual\" : \"auto\",\r\n };\r\n}\r\n\r\nexport function normalizeUpdateObjectiveInput(\r\n input: UpdateObjectiveInput\r\n): UpdateObjectiveInput {\r\n const next: UpdateObjectiveInput = { ...input };\r\n if (next.name !== undefined) {\r\n const name = next.name.trim();\r\n if (name.length < 3) {\r\n throw new AureonValidationError(\"Objective name must be at least 3 characters\");\r\n }\r\n next.name = name;\r\n }\r\n if (next.targetWeight !== undefined) {\r\n if (next.targetWeight < 0 || next.targetWeight > 1) {\r\n throw new AureonValidationError(\"targetWeight must be between 0 and 1\");\r\n }\r\n }\r\n if (next.tolerance !== undefined) {\r\n if (next.tolerance < 0 || next.tolerance > 0.5) {\r\n throw new AureonValidationError(\"tolerance must be between 0 and 0.5\");\r\n }\r\n }\r\n if (next.priority !== undefined && !isObjectivePriority(next.priority)) {\r\n throw new AureonValidationError(`Unsupported priority: ${next.priority}`);\r\n }\r\n if (next.automationMode !== undefined) {\r\n throw new AureonValidationError(\r\n \"automationMode cannot be changed after create: recreate the objective instead\"\r\n );\r\n }\r\n if ((input as { targetSymbol?: unknown }).targetSymbol !== undefined) {\r\n throw new AureonValidationError(\r\n \"targetSymbol cannot be changed after create: recreate the objective instead\"\r\n );\r\n }\r\n return next;\r\n}\r\n\r\nexport function assertId(value: string, label: string): void {\r\n if (!value || typeof value !== \"string\" || value.trim().length < 8) {\r\n throw new AureonValidationError(`Invalid ${label}`);\r\n }\r\n}\r\n","/**\r\n * @fileoverview AureonClient: primary entry point for @buildaureon/sdk.\r\n *\r\n * Typed HTTP client for the hosted AUREON API. Operator-issued API keys\r\n * (`X-Aureon-Api-Key`) identify the bound wallet for control-plane calls;\r\n * optional wallet Bearer sessions also work (Bearer wins when both are sent).\r\n * Env bootstrap keys unlock product access only.\r\n *\r\n * Objectives default to Automatic automation mode. Vault deposit and withdraw\r\n * are prepare-calldata steps for wallet signing; not server-side broadcasts.\r\n * Restorative execution receipts may use `settlement: \"vault\"` or\r\n * `settlement: \"staged\"` depending on the restore path.\r\n */\r\n\r\nimport { resolveFetch, userAgentHeader } from \"../adapters/fetch-adapter.js\";\r\nimport {\r\n DEFAULT_API_BASE_URL,\r\n SDK_VERSION,\r\n} from \"../constants/defaults.js\";\r\nimport {\r\n ENDPOINTS,\r\n developerApiKeyPath,\r\n objectivePath,\r\n objectivePausePath,\r\n objectiveResumePath,\r\n objectiveRestorePath,\r\n objectiveRestorePlanPath,\r\n registryObjectivePath,\r\n registryPreparePath,\r\n registryConfirmPath,\r\n} from \"../constants/endpoints.js\";\r\nimport { AureonValidationError } from \"../errors/base.js\";\r\nimport {\r\n assertBaseUrl,\r\n requestJson,\r\n withQuery,\r\n type TransportOptions,\r\n} from \"../transport/index.js\";\r\nimport type { AureonClientOptions } from \"../types/client-options.js\";\r\nimport {\r\n resolveHeaders,\r\n resolveMaxRetries,\r\n resolveRetryDelayMs,\r\n resolveTimeoutMs,\r\n} from \"../types/client-options.js\";\r\nimport type { ExecutionReceipt, RestorePlan } from \"../types/execution.js\";\r\nimport type {\r\n ObjectiveRegistryLookup,\r\n ObjectiveRegistryRecord,\r\n PrepareRegistryResult,\r\n RegistryStatus,\r\n} from \"../types/registry.js\";\r\nimport type { ObjectiveHealth } from \"../types/health.js\";\r\nimport type {\r\n ApplyMarketEventInput,\r\n DashboardOverview,\r\n MarketEvent,\r\n MarketPreset,\r\n} from \"../types/market.js\";\r\nimport type {\r\n CreateObjectiveInput,\r\n Objective,\r\n UpdateObjectiveInput,\r\n} from \"../types/objective.js\";\r\nimport type { PortfolioPositionInput, PortfolioSnapshot } from \"../types/portfolio.js\";\r\nimport type {\r\n VaultDepositSymbol,\r\n VaultOverview,\r\n VaultPrepareResult,\r\n VaultStatus,\r\n} from \"../types/vault.js\";\r\nimport type { WatchdogRefreshResult } from \"../types/watchdog.js\";\r\nimport type { TimelineEvent } from \"../types/timeline.js\";\r\nimport { normalizeApplyMarketEventInput } from \"../validation/market-input.js\";\r\nimport {\r\n assertId,\r\n normalizeCreateObjectiveInput,\r\n normalizeUpdateObjectiveInput,\r\n} from \"../validation/objective-input.js\";\r\n\r\nexport interface AuthNonceResponse {\r\n walletAddress: string;\r\n nonce: string;\r\n message: string;\r\n expiresAt: string;\r\n}\r\n\r\nexport interface AuthSessionResponse {\r\n token: string;\r\n walletAddress: string;\r\n expiresAt: string;\r\n sessionId: string;\r\n mode?: string;\r\n}\r\n\r\nexport interface AuthMeResponse {\r\n walletAddress: string;\r\n}\r\n\r\nexport interface SyncPortfolioResult {\r\n portfolio: PortfolioSnapshot;\r\n chainId: number;\r\n skippedZero: string[];\r\n}\r\n\r\nexport interface DeveloperApiKey {\r\n id: string;\r\n name: string;\r\n prefix: string;\r\n status: string;\r\n createdAt: string;\r\n revokedAt: string | null;\r\n}\r\n\r\nexport interface CreatedDeveloperApiKey extends DeveloperApiKey {\r\n /** Plaintext secret; only returned once at creation. */\r\n secret: string;\r\n}\r\n\r\n/**\r\n * High-level SDK client for AUREON operator and developer integrations.\r\n */\r\nexport class AureonClient {\r\n private readonly transport: TransportOptions;\r\n\r\n constructor(options: AureonClientOptions = {}) {\r\n const baseUrl = options.baseUrl ?? DEFAULT_API_BASE_URL;\r\n\r\n const staticToken = options.authToken;\r\n const getAccessToken =\r\n options.getAccessToken ??\r\n (staticToken\r\n ? () => staticToken\r\n : undefined);\r\n\r\n const staticApiKey = options.apiKey;\r\n const getApiKey =\r\n options.getApiKey ??\r\n (staticApiKey\r\n ? () => staticApiKey\r\n : undefined);\r\n\r\n this.transport = {\r\n baseUrl: assertBaseUrl(baseUrl),\r\n fetchImpl: resolveFetch(options.fetch),\r\n headers: {\r\n ...userAgentHeader(SDK_VERSION),\r\n ...resolveHeaders({ ...options, apiKey: undefined }),\r\n },\r\n timeoutMs: resolveTimeoutMs(options),\r\n maxRetries: resolveMaxRetries(options),\r\n retryDelayMs: resolveRetryDelayMs(options),\r\n logger: options.logger,\r\n getAccessToken,\r\n getApiKey,\r\n };\r\n }\r\n\r\n /** Returns the resolved API base URL. */\r\n get baseUrl(): string {\r\n return this.transport.baseUrl;\r\n }\r\n\r\n /** Health probe for connectivity checks. No auth required. */\r\n async ping(): Promise<{ ok: true; service: string; version: string }> {\r\n return requestJson(this.transport, ENDPOINTS.healthz);\r\n }\r\n\r\n /**\r\n * Requests a single-use wallet auth nonce/message for the given address.\r\n * No Bearer token required.\r\n */\r\n async getAuthNonce(address: string): Promise<AuthNonceResponse> {\r\n const trimmed = address?.trim();\r\n if (!trimmed) {\r\n throw new AureonValidationError(\"address is required\");\r\n }\r\n return requestJson(\r\n this.transport,\r\n withQuery(ENDPOINTS.authNonce, { address: trimmed })\r\n );\r\n }\r\n\r\n /**\r\n * Verifies a wallet signature and returns a Bearer session.\r\n * No Bearer token required on the request itself.\r\n */\r\n async verifyWallet(input: {\r\n address: string;\r\n message: string;\r\n signature: string;\r\n inviteCode?: string;\r\n }): Promise<AuthSessionResponse> {\r\n const address = input.address?.trim();\r\n const message = input.message?.trim();\r\n const signature = input.signature?.trim();\r\n const inviteCode = input.inviteCode?.trim();\r\n if (!address || !message || !signature) {\r\n throw new AureonValidationError(\r\n \"address, message, and signature are required\"\r\n );\r\n }\r\n return requestJson(this.transport, ENDPOINTS.authVerify, {\r\n method: \"POST\",\r\n body: { address, message, signature, inviteCode },\r\n });\r\n }\r\n\r\n /**\r\n * Local preview login without a wallet signature.\r\n * Only succeeds when the backend has `AUREON_ALLOW_DEV_LOGIN=1`.\r\n */\r\n async devLogin(): Promise<AuthSessionResponse> {\r\n return requestJson(this.transport, ENDPOINTS.authDevLogin, {\r\n method: \"POST\",\r\n });\r\n }\r\n\r\n /** Revokes the current Bearer session on the server. */\r\n async logout(): Promise<{ ok: true }> {\r\n return requestJson(this.transport, ENDPOINTS.authLogout, {\r\n method: \"POST\",\r\n });\r\n }\r\n\r\n /** Returns the wallet bound to the current Bearer session. Auth required. */\r\n async me(): Promise<AuthMeResponse> {\r\n return requestJson(this.transport, ENDPOINTS.authMe);\r\n }\r\n\r\n /**\r\n * Creates and activates a Financial Compass Objective (FCO).\r\n * SDK / agent path always prefers Automatic (`automationMode` omitted → `\"auto\"`).\r\n * Mode cannot be changed later via `updateObjective`; recreate instead.\r\n * Passing `\"manual\"` is reserved for the operator utility Approve UX.\r\n * Auth required.\r\n */\r\n async createObjective(input: CreateObjectiveInput): Promise<Objective> {\r\n const body = normalizeCreateObjectiveInput(input);\r\n return requestJson(this.transport, ENDPOINTS.objectives, {\r\n method: \"POST\",\r\n body,\r\n });\r\n }\r\n\r\n /** Lists objectives for the authenticated wallet. Auth required. */\r\n async listObjectives(): Promise<Objective[]> {\r\n const result = await requestJson<{ objectives: Objective[] }>(\r\n this.transport,\r\n ENDPOINTS.objectives\r\n );\r\n return result.objectives;\r\n }\r\n\r\n /** Fetches a single objective by id. Auth required. */\r\n async getObjective(id: string): Promise<Objective> {\r\n assertId(id, \"objective id\");\r\n return requestJson(this.transport, objectivePath(id));\r\n }\r\n\r\n /**\r\n * Applies a partial update to an objective policy or metadata.\r\n * Does **not** accept `automationMode` or `targetSymbol` (both locked at create).\r\n * Auth required.\r\n */\r\n async updateObjective(\r\n id: string,\r\n input: UpdateObjectiveInput\r\n ): Promise<Objective> {\r\n assertId(id, \"objective id\");\r\n const body = normalizeUpdateObjectiveInput(input);\r\n return requestJson(this.transport, objectivePath(id), {\r\n method: \"PATCH\",\r\n body,\r\n });\r\n }\r\n\r\n /** Pauses continuous evaluation for an objective. Auth required. */\r\n async pauseObjective(id: string): Promise<Objective> {\r\n assertId(id, \"objective id\");\r\n return requestJson(this.transport, objectivePausePath(id), {\r\n method: \"POST\",\r\n });\r\n }\r\n\r\n /** Resumes evaluation for a paused objective. Auth required. */\r\n async resumeObjective(id: string): Promise<Objective> {\r\n assertId(id, \"objective id\");\r\n return requestJson(this.transport, objectiveResumePath(id), {\r\n method: \"POST\",\r\n });\r\n }\r\n\r\n /** Returns health for one objective or all objectives when id is omitted. Auth required. */\r\n async getHealth(objectiveId?: string): Promise<ObjectiveHealth[]> {\r\n const path = withQuery(ENDPOINTS.health, { objectiveId });\r\n const result = await requestJson<{ health: ObjectiveHealth[] }>(\r\n this.transport,\r\n path\r\n );\r\n return result.health;\r\n }\r\n\r\n /** Returns timeline events, optionally filtered by objective. Auth required. */\r\n async getTimeline(objectiveId?: string): Promise<TimelineEvent[]> {\r\n const path = withQuery(ENDPOINTS.timeline, { objectiveId });\r\n const result = await requestJson<{ events: TimelineEvent[] }>(\r\n this.transport,\r\n path\r\n );\r\n return result.events;\r\n }\r\n\r\n /** Returns the current portfolio snapshot for the wallet. Auth required. */\r\n async getPortfolio(): Promise<PortfolioSnapshot> {\r\n return requestJson(this.transport, ENDPOINTS.portfolio);\r\n }\r\n\r\n /**\r\n * Replaces the wallet capital book with the provided positions.\r\n * Auth required. Does not invent holdings: every row must be supplied.\r\n */\r\n async setPortfolio(\r\n positions: PortfolioPositionInput[]\r\n ): Promise<PortfolioSnapshot> {\r\n if (!Array.isArray(positions) || positions.length === 0) {\r\n throw new AureonValidationError(\"positions must be a non-empty array\");\r\n }\r\n const result = await requestJson<{ portfolio: PortfolioSnapshot }>(\r\n this.transport,\r\n ENDPOINTS.portfolio,\r\n { method: \"PUT\", body: { positions } }\r\n );\r\n return result.portfolio;\r\n }\r\n\r\n /**\r\n * Clears all capital-book positions for the authenticated wallet.\r\n * Auth required. Does not invent seeded holdings.\r\n */\r\n async clearPortfolio(): Promise<PortfolioSnapshot> {\r\n const result = await requestJson<{ portfolio: PortfolioSnapshot }>(\r\n this.transport,\r\n ENDPOINTS.portfolioClear,\r\n { method: \"POST\" }\r\n );\r\n return result.portfolio;\r\n }\r\n\r\n /**\r\n * Replaces the capital book with on-chain balances for the session wallet\r\n * (Robinhood Chain via the AUREON API). Vault balances merge into the book.\r\n * Requires a wallet Bearer session; SDK clients should also send an API key\r\n * when keys are enforced. Does not invent holdings; only positive balances\r\n * returned by the API.\r\n */\r\n async syncPortfolio(): Promise<SyncPortfolioResult> {\r\n return requestJson(this.transport, ENDPOINTS.portfolioSync, {\r\n method: \"POST\",\r\n });\r\n }\r\n\r\n /**\r\n * Refreshes portfolio marks from live public market data, re-evaluates\r\n * objectives, optionally fires breach webhooks, and returns restore suggestions.\r\n * Auth required.\r\n */\r\n async refreshWatchdog(): Promise<WatchdogRefreshResult> {\r\n return requestJson(this.transport, ENDPOINTS.watchdogRefresh, {\r\n method: \"POST\",\r\n });\r\n }\r\n\r\n /** Returns dashboard overview aggregates. Auth required. */\r\n async getOverview(): Promise<DashboardOverview> {\r\n return requestJson(this.transport, ENDPOINTS.overview);\r\n }\r\n\r\n /**\r\n * Applies a controlled market event to portfolio marks.\r\n * When autoRestore is true, the API evaluates health and may run staged restorative execution.\r\n * Auth required.\r\n */\r\n async applyMarketEvent(input: ApplyMarketEventInput): Promise<{\r\n event: MarketEvent;\r\n portfolio: PortfolioSnapshot;\r\n health: ObjectiveHealth[];\r\n executions: ExecutionReceipt[];\r\n }> {\r\n const body = normalizeApplyMarketEventInput(input);\r\n return requestJson(this.transport, ENDPOINTS.marketEvents, {\r\n method: \"POST\",\r\n body,\r\n });\r\n }\r\n\r\n /** Lists controlled market event presets. Auth required. */\r\n async listMarketPresets(): Promise<MarketPreset[]> {\r\n const result = await requestJson<{ presets: MarketPreset[] }>(\r\n this.transport,\r\n ENDPOINTS.marketPresets\r\n );\r\n return result.presets;\r\n }\r\n\r\n /**\r\n * Returns the restore plan for an objective (wrap ETH, unwrap WETH, or vault swap).\r\n * Auth required.\r\n */\r\n async getRestorePlan(objectiveId: string): Promise<RestorePlan> {\r\n assertId(objectiveId, \"objective id\");\r\n const result = await requestJson<{ plan: RestorePlan }>(\r\n this.transport,\r\n objectiveRestorePlanPath(objectiveId)\r\n );\r\n return result.plan;\r\n }\r\n\r\n /**\r\n * Runs restorative execution for an objective currently outside policy.\r\n * Vault Sell A→Buy B when configured. ETH↔WETH wrap/unwrap is client-side\r\n * via getRestorePlan; this endpoint rejects those with action details.\r\n * Auth required.\r\n */\r\n async runExecution(objectiveId: string): Promise<ExecutionReceipt> {\r\n assertId(objectiveId, \"objective id\");\r\n return requestJson(this.transport, ENDPOINTS.executionsRun, {\r\n method: \"POST\",\r\n body: { objectiveId },\r\n });\r\n }\r\n\r\n /**\r\n * Runs vault-backed restorative execution for an objective outside policy.\r\n * Auth required.\r\n */\r\n async restoreObjective(objectiveId: string): Promise<ExecutionReceipt> {\r\n assertId(objectiveId, \"objective id\");\r\n return requestJson(this.transport, objectiveRestorePath(objectiveId), {\r\n method: \"POST\",\r\n });\r\n }\r\n\r\n /** Lists recent execution receipts. Auth required. */\r\n async listExecutions(objectiveId?: string): Promise<ExecutionReceipt[]> {\r\n const path = withQuery(ENDPOINTS.executions, { objectiveId });\r\n const result = await requestJson<{ executions: ExecutionReceipt[] }>(\r\n this.transport,\r\n path\r\n );\r\n return result.executions;\r\n }\r\n\r\n /** Returns Phase 2 ObjectiveRegistry deployment status. Auth required. */\r\n async getRegistryStatus(): Promise<RegistryStatus> {\r\n return requestJson(this.transport, ENDPOINTS.registryStatus);\r\n }\r\n\r\n /** Returns on-chain registry record for an objective when registered. Auth required. */\r\n async getObjectiveRegistry(objectiveId: string): Promise<ObjectiveRegistryLookup> {\r\n assertId(objectiveId, \"objective id\");\r\n return requestJson(this.transport, registryObjectivePath(objectiveId));\r\n }\r\n\r\n /**\r\n * Prepares wallet-signed calldata to register an objective on ObjectiveRegistry.\r\n * Auth required.\r\n */\r\n async prepareObjectiveRegistry(objectiveId: string): Promise<PrepareRegistryResult> {\r\n assertId(objectiveId, \"objective id\");\r\n return requestJson(this.transport, registryPreparePath(objectiveId), {\r\n method: \"POST\",\r\n });\r\n }\r\n\r\n /**\r\n * Confirms an on-chain registration after the wallet broadcast tx.\r\n * Auth required.\r\n */\r\n async confirmObjectiveRegistry(\r\n objectiveId: string,\r\n transactionHash: string\r\n ): Promise<{ record: ObjectiveRegistryRecord }> {\r\n assertId(objectiveId, \"objective id\");\r\n const hash = transactionHash.trim();\r\n if (!hash) {\r\n throw new AureonValidationError(\"transactionHash is required\");\r\n }\r\n return requestJson(this.transport, registryConfirmPath(objectiveId), {\r\n method: \"POST\",\r\n body: { transactionHash: hash },\r\n });\r\n }\r\n\r\n /** Returns the vault overview for the authenticated wallet. Auth required. */\r\n async getVault(): Promise<VaultOverview> {\r\n return requestJson(this.transport, ENDPOINTS.vault);\r\n }\r\n\r\n /** Returns compact vault funding status before restore. Auth required. */\r\n async getVaultStatus(): Promise<VaultStatus> {\r\n return requestJson(this.transport, ENDPOINTS.vaultStatus);\r\n }\r\n\r\n /**\r\n * Prepares wallet-signed calldata steps for a vault deposit.\r\n * Auth required.\r\n */\r\n async prepareVaultDeposit(input: {\r\n symbol: VaultDepositSymbol;\r\n amount: string;\r\n }): Promise<VaultPrepareResult> {\r\n const symbol = input.symbol?.trim();\r\n const amount = input.amount?.trim();\r\n if (!symbol) {\r\n throw new AureonValidationError(\r\n \"symbol is required (ETH or an allowlisted ERC-20)\"\r\n );\r\n }\r\n if (!amount) {\r\n throw new AureonValidationError(\"amount is required\");\r\n }\r\n return requestJson(this.transport, ENDPOINTS.vaultPrepareDeposit, {\r\n method: \"POST\",\r\n body: { symbol: symbol.toUpperCase(), amount },\r\n });\r\n }\r\n\r\n /**\r\n * Prepares wallet-signed calldata steps for a vault withdraw (any allowlisted ERC-20).\r\n * Auth required.\r\n */\r\n async prepareVaultWithdraw(input: {\r\n symbol?: string;\r\n amount: string;\r\n }): Promise<VaultPrepareResult> {\r\n const symbol = (input.symbol?.trim() || \"WETH\").toUpperCase();\r\n const amount = input.amount?.trim();\r\n if (!amount) {\r\n throw new AureonValidationError(\"amount is required\");\r\n }\r\n if (symbol === \"ETH\") {\r\n throw new AureonValidationError(\r\n 'withdraw symbol cannot be \"ETH\", use WETH'\r\n );\r\n }\r\n return requestJson(this.transport, ENDPOINTS.vaultPrepareWithdraw, {\r\n method: \"POST\",\r\n body: { symbol, amount },\r\n });\r\n }\r\n\r\n /**\r\n * Lists SDK API keys for the authenticated wallet.\r\n * Used by the operator utility Developer page.\r\n */\r\n async listApiKeys(): Promise<DeveloperApiKey[]> {\r\n const result = await requestJson<{ keys: DeveloperApiKey[] }>(\r\n this.transport,\r\n ENDPOINTS.developerApiKeys\r\n );\r\n return result.keys;\r\n }\r\n\r\n /**\r\n * Creates an SDK API key. `secret` is returned once; store it immediately.\r\n */\r\n async createApiKey(name: string): Promise<CreatedDeveloperApiKey> {\r\n const trimmed = name.trim();\r\n if (trimmed.length < 2) {\r\n throw new AureonValidationError(\"name must be at least 2 characters\");\r\n }\r\n return requestJson(this.transport, ENDPOINTS.developerApiKeys, {\r\n method: \"POST\",\r\n body: { name: trimmed },\r\n });\r\n }\r\n\r\n /** Revokes (deletes) an SDK API key owned by this wallet. */\r\n async revokeApiKey(keyId: string): Promise<DeveloperApiKey> {\r\n assertId(keyId, \"api key id\");\r\n return requestJson(this.transport, developerApiKeyPath(keyId), {\r\n method: \"DELETE\",\r\n });\r\n }\r\n\r\n /** Toggles the status (active/paused) of an SDK API key owned by this wallet. */\r\n async toggleApiKey(keyId: string): Promise<DeveloperApiKey> {\r\n assertId(keyId, \"api key id\");\r\n return requestJson(this.transport, `${developerApiKeyPath(keyId)}/toggle`, {\r\n method: \"POST\",\r\n });\r\n }\r\n}\r\n","/**\r\n * @fileoverview Factory helpers for constructing AureonClient instances.\r\n */\r\n\r\nimport {\r\n DEFAULT_API_BASE_URL,\r\n LOCAL_API_BASE_URL,\r\n} from \"../constants/defaults.js\";\r\nimport type { AureonClientOptions } from \"../types/client-options.js\";\r\nimport { AureonClient } from \"./aureon-client.js\";\r\n\r\n/**\r\n * Factory helper preferred by examples and quickstarts.\r\n * Defaults to the production AUREON API URL when `baseUrl` is omitted.\r\n */\r\nexport function createAureonClient(\r\n options: AureonClientOptions = {}\r\n): AureonClient {\r\n return new AureonClient({\r\n baseUrl: options.baseUrl ?? DEFAULT_API_BASE_URL,\r\n ...options,\r\n });\r\n}\r\n\r\n/**\r\n * Creates a client pointed at a local AUREON API process (monorepo operators).\r\n * Not advertised in the public README.\r\n */\r\nexport function createLocalAureonClient(\r\n overrides: Partial<AureonClientOptions> = {}\r\n): AureonClient {\r\n return new AureonClient({\r\n ...overrides,\r\n baseUrl: overrides.baseUrl ?? LOCAL_API_BASE_URL,\r\n });\r\n}\r\n","/**\r\n * @fileoverview Mutable bearer token holder for scripts and apps.\r\n */\r\n\r\n/** Mutable bearer token holder for scripts and apps. */\r\nexport function createSessionTokenProvider(initialToken?: string | null) {\r\n let token = initialToken ?? null;\r\n return {\r\n getAccessToken: () => token,\r\n setToken: (next: string | null) => {\r\n token = next;\r\n },\r\n clear: () => {\r\n token = null;\r\n },\r\n };\r\n}\r\n\r\nexport type SessionTokenProvider = ReturnType<typeof createSessionTokenProvider>;\r\n","/**\r\n * @fileoverview Display helpers shared by utility apps and CLI output.\r\n */\r\n\r\nimport type { HealthState } from \"../types/health.js\";\r\n\r\nexport function formatUsd(value: number): string {\r\n return new Intl.NumberFormat(\"en-US\", {\r\n style: \"currency\",\r\n currency: \"USD\",\r\n maximumFractionDigits: 2,\r\n }).format(value);\r\n}\r\n\r\nexport function formatWeight(weight: number): string {\r\n return `${(weight * 100).toFixed(1)}%`;\r\n}\r\n\r\nexport function healthTone(\r\n state: HealthState\r\n): \"positive\" | \"caution\" | \"critical\" | \"neutral\" {\r\n switch (state) {\r\n case \"healthy\":\r\n return \"positive\";\r\n case \"warning\":\r\n return \"caution\";\r\n case \"violation\":\r\n return \"critical\";\r\n case \"paused\":\r\n return \"neutral\";\r\n default:\r\n return \"neutral\";\r\n }\r\n}\r\n\r\nexport function formatSignedPercent(ratio: number): string {\r\n const pct = ratio * 100;\r\n const sign = pct > 0 ? \"+\" : \"\";\r\n return `${sign}${pct.toFixed(1)}%`;\r\n}\r\n\r\nexport function formatIsoTime(iso: string): string {\r\n try {\r\n return new Intl.DateTimeFormat(\"en-US\", {\r\n hour: \"2-digit\",\r\n minute: \"2-digit\",\r\n second: \"2-digit\",\r\n }).format(new Date(iso));\r\n } catch {\r\n return iso;\r\n }\r\n}\r\n","/**\r\n * @fileoverview Health Engine result types.\r\n */\r\n\r\nexport type HealthState = \"healthy\" | \"warning\" | \"violation\" | \"paused\";\r\n\r\nexport interface ObjectiveHealth {\r\n objectiveId: string;\r\n state: HealthState;\r\n score: number;\r\n currentMetric: number;\r\n targetMetric: number;\r\n deviation: number;\r\n message: string;\r\n evaluatedAt: string;\r\n}\r\n\r\nexport function isHealthState(value: string): value is HealthState {\r\n return [\"healthy\", \"warning\", \"violation\", \"paused\"].includes(value);\r\n}\r\n\r\nexport function healthRank(state: HealthState): number {\r\n switch (state) {\r\n case \"healthy\":\r\n return 0;\r\n case \"warning\":\r\n return 1;\r\n case \"paused\":\r\n return 2;\r\n case \"violation\":\r\n return 3;\r\n default:\r\n return 99;\r\n }\r\n}\r\n\r\nexport function pickWorstHealth(records: ObjectiveHealth[]): ObjectiveHealth | null {\r\n if (records.length === 0) return null;\r\n return [...records].sort((a, b) => healthRank(b.state) - healthRank(a.state))[0] ?? null;\r\n}\r\n","/**\r\n * @fileoverview Timeline event contracts for append-only operator narratives.\r\n */\r\n\r\nexport type TimelineEventType =\r\n | \"objective_created\"\r\n | \"objective_updated\"\r\n | \"objective_paused\"\r\n | \"objective_resumed\"\r\n | \"health_changed\"\r\n | \"violation_detected\"\r\n | \"evaluation_started\"\r\n | \"execution_started\"\r\n | \"execution_completed\"\r\n | \"market_event_applied\"\r\n | \"objective_restored\"\r\n | \"capital_provisioned\"\r\n | \"capital_cleared\"\r\n | \"capital_synced\"\r\n | \"registry_anchored\";\r\n\r\nexport interface TimelineEvent {\r\n id: string;\r\n objectiveId: string | null;\r\n type: TimelineEventType;\r\n message: string;\r\n payload: Record<string, unknown>;\r\n createdAt: string;\r\n}\r\n\r\nexport const TIMELINE_EVENT_TYPES: readonly TimelineEventType[] = [\r\n \"objective_created\",\r\n \"objective_updated\",\r\n \"objective_paused\",\r\n \"objective_resumed\",\r\n \"health_changed\",\r\n \"violation_detected\",\r\n \"evaluation_started\",\r\n \"execution_started\",\r\n \"execution_completed\",\r\n \"market_event_applied\",\r\n \"objective_restored\",\r\n \"capital_provisioned\",\r\n \"capital_cleared\",\r\n \"capital_synced\",\r\n \"registry_anchored\",\r\n] as const;\r\n\r\nexport function isTimelineEventType(value: string): value is TimelineEventType {\r\n return (TIMELINE_EVENT_TYPES as readonly string[]).includes(value);\r\n}\r\n\r\nexport function filterTimelineByObjective(\r\n events: TimelineEvent[],\r\n objectiveId: string\r\n): TimelineEvent[] {\r\n return events.filter((event) => event.objectiveId === objectiveId);\r\n}\r\n","/**\r\n * @fileoverview Execution receipt + restore-plan types.\r\n *\r\n * Receipts may settle as vault on-chain rebalance (`settlement: \"vault\"`) or\r\n * as a staged capital-book update (`settlement: \"staged\"`) when the vault\r\n * path is unavailable. Wrap/unwrap ETH↔WETH is client-side via RestorePlan.\r\n */\r\n\r\nimport type { RegistryRef } from \"./registry.js\";\r\n\r\nexport interface ExecutionReceipt {\r\n id: string;\r\n objectiveId: string;\r\n status: \"pending\" | \"submitted\" | \"confirmed\" | \"failed\";\r\n transactionHash: string;\r\n action: string;\r\n notionalAdjustedUsd: number;\r\n result: string;\r\n createdAt: string;\r\n confirmedAt: string | null;\r\n /**\r\n * `\"vault\"`: keeper rebalance confirmed (or pending_vault_* then confirmed).\r\n * `\"staged\"`: capital-book restore only (honest non-finality label).\r\n */\r\n settlement?: \"staged\" | \"vault\";\r\n registryRef?: RegistryRef;\r\n}\r\n\r\n/** Client-side restore action: wrap/unwrap ETH↔WETH or keeper vault swap. */\r\nexport type RestorePlanKind = \"wrap_eth\" | \"unwrap_weth\" | \"vault_swap\";\r\n\r\nexport interface RestorePlan {\r\n kind: RestorePlanKind;\r\n amountHuman: string;\r\n approxUsd: number;\r\n message: string;\r\n sellSymbol?: string;\r\n buySymbol?: string;\r\n}\r\n\r\nexport function isConfirmedExecution(receipt: ExecutionReceipt): boolean {\r\n return receipt.status === \"confirmed\" && Boolean(receipt.confirmedAt);\r\n}\r\n\r\nexport function shortTransactionHash(hash: string, head = 10, tail = 6): string {\r\n if (hash.length <= head + tail + 1) return hash;\r\n return `${hash.slice(0, head)}…${hash.slice(-tail)}`;\r\n}\r\n\r\nexport function sortExecutionsNewestFirst(\r\n receipts: ExecutionReceipt[]\r\n): ExecutionReceipt[] {\r\n return [...receipts].sort((a, b) => (a.createdAt < b.createdAt ? 1 : -1));\r\n}\r\n\r\n/** True when the receipt claims vault (on-chain) settlement. */\r\nexport function isVaultSettlement(receipt: ExecutionReceipt): boolean {\r\n return receipt.settlement === \"vault\";\r\n}\r\n","/**\r\n * @fileoverview Optional structured logging hooks for SDK integrators.\r\n */\r\n\r\nexport type LogLevel = \"debug\" | \"info\" | \"warn\" | \"error\";\r\n\r\nexport interface AureonLogger {\r\n debug(message: string, context?: Record<string, unknown>): void;\r\n info(message: string, context?: Record<string, unknown>): void;\r\n warn(message: string, context?: Record<string, unknown>): void;\r\n error(message: string, context?: Record<string, unknown>): void;\r\n}\r\n\r\nexport const silentLogger: AureonLogger = {\r\n debug() {},\r\n info() {},\r\n warn() {},\r\n error() {},\r\n};\r\n\r\nexport function createConsoleLogger(prefix = \"aureon-sdk\"): AureonLogger {\r\n const write = (level: LogLevel, message: string, context?: Record<string, unknown>) => {\r\n const line = `[${prefix}] ${message}`;\r\n if (level === \"error\") console.error(line, context ?? \"\");\r\n else if (level === \"warn\") console.warn(line, context ?? \"\");\r\n else console.log(line, context ?? \"\");\r\n };\r\n return {\r\n debug: (m, c) => write(\"debug\", m, c),\r\n info: (m, c) => write(\"info\", m, c),\r\n warn: (m, c) => write(\"warn\", m, c),\r\n error: (m, c) => write(\"error\", m, c),\r\n };\r\n}\r\n"]}