@marrowid/sdk
Advanced tools
+1
-1
@@ -55,3 +55,3 @@ import type { AddMessagesOptions, AskOptions, Claim, ClaimDeleteReceipt, ClaimHistoryEntry, ClaimMutationOptions, ClaimsListOptions, ClaimsQueryOptions, ContextOptions, EventStatus, FileIngestOptions, IngestJobListResponse, IngestJobResponse, IngestPlanResponse, ListJobsOptions, MarrowOptions, MemoryContext, Message, MessageInput, MessagesCreateReceipt, Page, PeerRecord, QueryOptions, QueryResult, QueueStatus, RepresentationResponse, SessionContextOptions, SessionRecord, UrlIngestOptions, WaitForJobOptions, Workspace, ClaimUpdateResult, CurrentAccess } from "./types.js"; | ||
| constructor(requester: Requester); | ||
| upsert(): Promise<Workspace>; | ||
| upsert(id?: string): Promise<Workspace>; | ||
| list(): Promise<Page<Workspace>>; | ||
@@ -58,0 +58,0 @@ } |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"client.d.ts","sources":["marrow-sdk:///src/client.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"client.d.ts","sources":["marrow-sdk:///src/client.ts"],"names":[],"mappings":"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"} |
+4
-2
@@ -316,4 +316,6 @@ import { ConflictError, ForbiddenScopeError, MarrowApiError, MarrowConfigError, MarrowError, MarrowResponseError, NotFoundError, ValidationError, WrongCredentialClassError, } from "./errors.js"; | ||
| constructor(requester) { this.#requester = requester; } | ||
| async upsert() { | ||
| return recordWithId("workspace", await this.#requester.request("POST", "/v1/workspaces", { body: {} })); | ||
| async upsert(id) { | ||
| return recordWithId("workspace", await this.#requester.request("POST", "/v1/workspaces", { | ||
| body: id === undefined ? {} : { id: segment(id, "workspace") }, | ||
| })); | ||
| } | ||
@@ -320,0 +322,0 @@ async list() { |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"client.js","sources":["marrow-sdk:///src/client.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n ConflictError,\n ForbiddenScopeError,\n MarrowApiError,\n MarrowConfigError,\n MarrowError,\n MarrowResponseError,\n NotFoundError,\n ValidationError,\n WrongCredentialClassError,\n type ValidationIssue,\n} from \"./errors.js\";\nimport {\n assertContext,\n assertPage,\n projectDto,\n projectIngestJobList,\n projectIngestJobResponse,\n projectIngestSubmission,\n projectQueryResult,\n} from \"./projection.js\";\nimport type {\n AddMessagesOptions,\n AskOptions,\n Claim,\n ClaimDeleteReceipt,\n ClaimHistoryEntry,\n ClaimMutationOptions,\n ClaimsListOptions,\n ClaimsQueryOptions,\n ContextOptions,\n EventStatus,\n FetchLike,\n FileIngestOptions,\n IngestJobListResponse,\n IngestJobResponse,\n IngestPlanResponse,\n ListJobsOptions,\n MarrowOptions,\n MemoryContext,\n Message,\n MessageInput,\n MessagesCreateReceipt,\n Page,\n PeerRecord,\n QueryOptions,\n QueryResult,\n QueueStatus,\n RepresentationResponse,\n SessionContextOptions,\n SessionRecord,\n UrlIngestOptions,\n WaitForJobOptions,\n Workspace,\n ClaimUpdateResult,\n CurrentAccess,\n} from \"./types.js\";\n\nconst DEFAULT_BASE_URL = \"https://api.marrow.id\";\nconst DEFAULT_WORKSPACE = \"default\";\nconst DEFAULT_TIMEOUT_MS = 30_000;\nconst MAX_FILE_INGEST_BYTES = 50_000_000;\nconst LOOPBACK_HOSTS = new Set([\"localhost\", \"127.0.0.1\", \"::1\", \"[::1]\"]);\nconst TERMINAL_JOB_STATUSES = new Set([\"succeeded\", \"failed\", \"quarantined\"]);\n\ntype RequestBody = Readonly<Record<string, unknown>>;\n\nfunction validateBaseURL(value: string): string {\n let parsed: URL;\n try {\n parsed = new URL(value);\n } catch {\n throw new MarrowConfigError(\n \"baseURL must be an absolute HTTPS URL; HTTP is allowed only for localhost, 127.0.0.1, or ::1.\",\n );\n }\n if (parsed.username || parsed.password) throw new MarrowConfigError(\"baseURL must not contain embedded credentials.\");\n if (parsed.search || parsed.hash) throw new MarrowConfigError(\"baseURL must not contain a query string or fragment.\");\n if (parsed.protocol !== \"https:\" && !(parsed.protocol === \"http:\" && LOOPBACK_HOSTS.has(parsed.hostname))) {\n throw new MarrowConfigError(\n \"baseURL must use HTTPS; HTTP is allowed only for localhost, 127.0.0.1, or ::1.\",\n );\n }\n return value.replace(/\\/+$/, \"\");\n}\n\nfunction segment(value: string, name: string): string {\n if (typeof value !== \"string\" || value.length === 0) throw new MarrowConfigError(`${name} must be a non-empty string`);\n return encodeURIComponent(value);\n}\n\nfunction positiveInteger(value: number, name: string, maximum: number): number {\n if (!Number.isInteger(value) || value < 1 || value > maximum) {\n throw new MarrowConfigError(`${name} must be an integer between 1 and ${maximum}`);\n }\n return value;\n}\n\nfunction querySelector(values: readonly string[] | undefined, name: string): readonly string[] | undefined {\n if (values === undefined) return undefined;\n if (!Array.isArray(values) || values.length === 0) {\n throw new MarrowConfigError(`${name} must contain at least one value`);\n }\n return values;\n}\n\nfunction idempotencyKey(value: string | undefined, dryRun: boolean): string | undefined {\n if (value === undefined) {\n if (!dryRun) {\n throw new MarrowConfigError(\"idempotencyKey is required for live ingest; use dryRun: true to preview without one\");\n }\n return undefined;\n }\n const key = value.trim();\n if (key.length < 8 || key.length > 160) {\n throw new MarrowConfigError(\"idempotencyKey must be between 8 and 160 characters\");\n }\n return key;\n}\n\nfunction compact(value: RequestBody): RequestBody {\n return Object.fromEntries(Object.entries(value).filter(([, item]) => item !== undefined));\n}\n\nfunction requireString(value: Record<string, unknown>, field: string, owner: string): void {\n if (typeof value[field] !== \"string\" || value[field] === \"\") {\n throw new MarrowResponseError(`${owner}.${field} must be a non-empty string`);\n }\n}\n\nfunction requireNumber(value: Record<string, unknown>, field: string, owner: string): void {\n if (typeof value[field] !== \"number\" || !Number.isFinite(value[field])) {\n throw new MarrowResponseError(`${owner}.${field} must be a number`);\n }\n}\n\nfunction parseIssues(value: unknown): readonly ValidationIssue[] {\n if (!Array.isArray(value)) return [];\n const issues: ValidationIssue[] = [];\n for (const item of value) {\n if (typeof item !== \"object\" || item === null || Array.isArray(item)) continue;\n const record = item as Record<string, unknown>;\n if (!Array.isArray(record.path) || typeof record.message !== \"string\") continue;\n const path = record.path.filter((part): part is string | number => typeof part === \"string\" || typeof part === \"number\");\n issues.push({ path, message: record.message });\n }\n return issues;\n}\n\nfunction buildApiError(status: number, value: unknown): MarrowApiError {\n const envelope = typeof value === \"object\" && value !== null && !Array.isArray(value)\n ? value as Record<string, unknown>\n : {};\n const nested = typeof envelope.error === \"object\" && envelope.error !== null && !Array.isArray(envelope.error)\n ? envelope.error as Record<string, unknown>\n : {};\n const message = typeof nested.message === \"string\" && nested.message.length > 0 ? nested.message : `HTTP ${status}`;\n const code = typeof nested.code === \"string\" ? nested.code : undefined;\n const requestId = typeof envelope.requestId === \"string\"\n ? envelope.requestId\n : typeof envelope.request_id === \"string\" ? envelope.request_id : undefined;\n const details = typeof nested.details === \"object\" && nested.details !== null && !Array.isArray(nested.details)\n ? nested.details as Record<string, unknown>\n : {};\n const issues = parseIssues(nested.issues ?? details.issues);\n const options = { statusCode: status, code, requestId, issues };\n if (status === 403 && code === \"wrong_credential_class\") return new WrongCredentialClassError(message, options);\n if (status === 403) return new ForbiddenScopeError(message, options);\n if (status === 404) return new NotFoundError(message, options);\n if (status === 409) return new ConflictError(message, options);\n if (status === 400) return new ValidationError(message, options);\n return new MarrowApiError(message, options);\n}\n\nasync function decodeResponse(response: Response): Promise<unknown> {\n const text = await response.text();\n if (text.length === 0) return null;\n try {\n return JSON.parse(text) as unknown;\n } catch {\n if (response.ok) throw new MarrowResponseError(\"Marrow returned a non-JSON success response\");\n return {};\n }\n}\n\nclass Requester {\n readonly #apiKey: string;\n readonly #baseURL: string;\n readonly #timeoutMs: number;\n readonly #fetch: FetchLike;\n\n constructor(options: MarrowOptions) {\n if (typeof options.apiKey !== \"string\" || options.apiKey.length === 0) {\n throw new MarrowConfigError(\"apiKey is required (a customer API key with scopes for the routes you call).\");\n }\n if (options.timeoutMs !== undefined && (!Number.isFinite(options.timeoutMs) || options.timeoutMs <= 0)) {\n throw new MarrowConfigError(\"timeoutMs must be a positive number\");\n }\n const fetchImpl = options.fetch ?? globalThis.fetch?.bind(globalThis);\n if (fetchImpl === undefined) throw new MarrowConfigError(\"A standards-compatible fetch implementation is required\");\n this.#apiKey = options.apiKey;\n this.#baseURL = validateBaseURL(options.baseURL ?? DEFAULT_BASE_URL);\n this.#timeoutMs = options.timeoutMs ?? DEFAULT_TIMEOUT_MS;\n this.#fetch = fetchImpl;\n }\n\n async request(\n method: \"GET\" | \"POST\" | \"PUT\" | \"DELETE\",\n path: string,\n options: { readonly body?: RequestBody; readonly query?: RequestBody } = {},\n ): Promise<unknown> {\n const url = new URL(`${this.#baseURL}${path}`);\n for (const [key, value] of Object.entries(options.query ?? {})) {\n if (value !== undefined) url.searchParams.set(key, String(value));\n }\n const controller = new AbortController();\n const timer = setTimeout(() => controller.abort(), this.#timeoutMs);\n let response: Response;\n try {\n response = await this.#fetch(url, {\n method,\n headers: {\n authorization: `Bearer ${this.#apiKey}`,\n ...(options.body === undefined ? {} : { \"content-type\": \"application/json\" }),\n },\n ...(options.body === undefined ? {} : { body: JSON.stringify(options.body) }),\n signal: controller.signal,\n });\n } catch (error) {\n if (controller.signal.aborted) throw new MarrowError(`Marrow request timed out after ${this.#timeoutMs}ms`);\n throw error;\n } finally {\n clearTimeout(timer);\n }\n const decoded = await decodeResponse(response);\n if (!response.ok) throw buildApiError(response.status, decoded);\n return decoded;\n }\n}\n\nexport class Context {\n readonly raw: MemoryContext;\n readonly status: MemoryContext[\"status\"];\n readonly placement: string;\n readonly context: string;\n readonly messages: MemoryContext[\"messages\"];\n readonly blocks: MemoryContext[\"blocks\"];\n readonly citations: MemoryContext[\"citations\"];\n readonly conflicts: MemoryContext[\"conflicts\"];\n readonly warnings: MemoryContext[\"warnings\"];\n\n constructor(raw: MemoryContext) {\n this.raw = raw;\n this.status = raw.status;\n this.placement = raw.placement;\n this.context = raw.context;\n this.messages = raw.messages;\n this.blocks = raw.blocks;\n this.citations = raw.citations;\n this.conflicts = raw.conflicts;\n this.warnings = raw.warnings;\n }\n\n toOpenAI(): readonly [{ readonly role: \"system\"; readonly content: string }] {\n return [{ role: \"system\", content: this.context }];\n }\n\n toAnthropic(): { readonly system: string } {\n return { system: this.context };\n }\n}\n\nfunction contextFrom(value: unknown): Context {\n const projected = projectDto(\"memoryContext\", value);\n assertContext(projected);\n return new Context(projected as unknown as MemoryContext);\n}\n\nfunction recordWithId<T>(id: \"workspace\" | \"peer\" | \"session\" | \"claim\", value: unknown): T {\n const projected = projectDto(id, value);\n requireString(projected, \"id\", id);\n return projected as T;\n}\n\nexport class Peer {\n readonly id: string;\n readonly #requester: Requester;\n readonly #workspace: string;\n\n constructor(requester: Requester, workspace: string, id: string) {\n this.#requester = requester;\n this.#workspace = workspace;\n this.id = id;\n }\n\n #path(suffix = \"\"): string {\n return `/v1/workspaces/${segment(this.#workspace, \"workspace\")}/peers/${segment(this.id, \"peer id\")}${suffix}`;\n }\n\n async create(): Promise<PeerRecord> {\n return recordWithId(\"peer\", await this.#requester.request(\"POST\", `/v1/workspaces/${segment(this.#workspace, \"workspace\")}/peers`, { body: { id: this.id } }));\n }\n\n async get(): Promise<PeerRecord> {\n return recordWithId(\"peer\", await this.#requester.request(\"GET\", this.#path()));\n }\n\n async ask(query: string, options: AskOptions = {}): Promise<Context> {\n return contextFrom(await this.#requester.request(\"POST\", this.#path(\"/ask\"), {\n body: compact({ query, session_id: options.session, top_k: options.topK }),\n }));\n }\n\n async context(options: ContextOptions = {}): Promise<Context> {\n return contextFrom(await this.#requester.request(\"GET\", this.#path(\"/context\"), {\n query: compact({ session: options.session, q: options.q }),\n }));\n }\n\n async representation(): Promise<RepresentationResponse> {\n const projected = projectDto(\"representationResponse\", await this.#requester.request(\"POST\", this.#path(\"/representation\"), { body: {} }));\n requireString(projected, \"peer_id\", \"representationResponse\");\n requireString(projected, \"generated_at\", \"representationResponse\");\n requireNumber(projected, \"count\", \"representationResponse\");\n return projected as unknown as RepresentationResponse;\n }\n\n async delete(): Promise<EventStatus> {\n const projected = projectDto(\"eventStatus\", await this.#requester.request(\"DELETE\", this.#path()));\n requireString(projected, \"event_id\", \"eventStatus\");\n requireString(projected, \"status\", \"eventStatus\");\n return projected as unknown as EventStatus;\n }\n}\n\nexport class Session {\n readonly id: string;\n readonly #requester: Requester;\n readonly #workspace: string;\n\n constructor(requester: Requester, workspace: string, id: string) {\n this.#requester = requester;\n this.#workspace = workspace;\n this.id = id;\n }\n\n #path(suffix = \"\"): string {\n return `/v1/workspaces/${segment(this.#workspace, \"workspace\")}/sessions/${segment(this.id, \"session id\")}${suffix}`;\n }\n\n async create(): Promise<SessionRecord> {\n return recordWithId(\"session\", await this.#requester.request(\"POST\", `/v1/workspaces/${segment(this.#workspace, \"workspace\")}/sessions`, { body: { id: this.id } }));\n }\n\n async get(): Promise<SessionRecord> {\n return recordWithId(\"session\", await this.#requester.request(\"GET\", this.#path()));\n }\n\n async addMessages(messages: readonly MessageInput[], options: AddMessagesOptions): Promise<MessagesCreateReceipt> {\n const projected = projectDto(\"messagesCreateReceipt\", await this.#requester.request(\"POST\", this.#path(\"/messages\"), {\n body: compact({\n peer_id: options.peerId,\n agent_id: options.agentId,\n messages,\n infer: options.infer,\n created_at: options.createdAt,\n metadata: options.metadata,\n source_ids: options.sourceIds,\n idempotency_key: options.idempotencyKey,\n }),\n }));\n requireString(projected, \"event_id\", \"messagesCreateReceipt\");\n return projected as unknown as MessagesCreateReceipt;\n }\n\n async messages(): Promise<Page<Message>> {\n const projected = projectDto(\"Page_Message\", await this.#requester.request(\"POST\", this.#path(\"/messages/list\"), { body: {} }));\n assertPage(projected, \"Page_Message\");\n return projected as unknown as Page<Message>;\n }\n\n async context(options: SessionContextOptions): Promise<Context> {\n return contextFrom(await this.#requester.request(\"GET\", this.#path(\"/context\"), {\n query: compact({ peer: options.peer, q: options.q }),\n }));\n }\n\n async delete(): Promise<EventStatus> {\n const projected = projectDto(\"eventStatus\", await this.#requester.request(\"DELETE\", this.#path()));\n requireString(projected, \"event_id\", \"eventStatus\");\n requireString(projected, \"status\", \"eventStatus\");\n return projected as unknown as EventStatus;\n }\n}\n\nclass Workspaces {\n readonly #requester: Requester;\n constructor(requester: Requester) { this.#requester = requester; }\n\n async upsert(): Promise<Workspace> {\n return recordWithId(\"workspace\", await this.#requester.request(\"POST\", \"/v1/workspaces\", { body: {} }));\n }\n\n async list(): Promise<Page<Workspace>> {\n const projected = projectDto(\"Page_Workspace\", await this.#requester.request(\"POST\", \"/v1/workspaces/list\", { body: {} }));\n assertPage(projected, \"Page_Workspace\");\n return projected as unknown as Page<Workspace>;\n }\n}\n\nclass Peers {\n readonly #requester: Requester;\n readonly #workspace: string;\n constructor(requester: Requester, workspace: string) { this.#requester = requester; this.#workspace = workspace; }\n\n async list(): Promise<Page<PeerRecord>> {\n const projected = projectDto(\"Page_Peer\", await this.#requester.request(\"POST\", `/v1/workspaces/${segment(this.#workspace, \"workspace\")}/peers/list`, { body: {} }));\n assertPage(projected, \"Page_Peer\");\n return projected as unknown as Page<PeerRecord>;\n }\n}\n\nclass Sessions {\n readonly #requester: Requester;\n readonly #workspace: string;\n constructor(requester: Requester, workspace: string) { this.#requester = requester; this.#workspace = workspace; }\n\n async list(): Promise<Page<SessionRecord>> {\n const projected = projectDto(\"Page_Session\", await this.#requester.request(\"POST\", `/v1/workspaces/${segment(this.#workspace, \"workspace\")}/sessions/list`, { body: {} }));\n assertPage(projected, \"Page_Session\");\n return projected as unknown as Page<SessionRecord>;\n }\n}\n\nclass Claims {\n readonly #requester: Requester;\n readonly #workspace: string;\n constructor(requester: Requester, workspace: string) { this.#requester = requester; this.#workspace = workspace; }\n #path(suffix: string): string { return `/v1/workspaces/${segment(this.#workspace, \"workspace\")}/claims${suffix}`; }\n\n async query(query: string, options: ClaimsQueryOptions): Promise<Page<Claim>> {\n const projected = projectDto(\"Page_Claim\", await this.#requester.request(\"POST\", this.#path(\"/query\"), {\n body: compact({ query, peer_id: options.peerId, agent_id: options.agentId, session_id: options.sessionId, top_k: options.topK }),\n }));\n assertPage(projected, \"Page_Claim\");\n return projected as unknown as Page<Claim>;\n }\n\n async list(options: ClaimsListOptions): Promise<Page<Claim>> {\n const projected = projectDto(\"Page_Claim\", await this.#requester.request(\"POST\", this.#path(\"/list\"), {\n body: compact({ peer_id: options.peerId, agent_id: options.agentId, session_id: options.sessionId, page: options.page, page_size: options.pageSize }),\n }));\n assertPage(projected, \"Page_Claim\");\n return projected as unknown as Page<Claim>;\n }\n\n async get(claimId: string): Promise<Claim> {\n return recordWithId(\"claim\", await this.#requester.request(\"GET\", this.#path(`/${segment(claimId, \"claim id\")}`)));\n }\n\n async history(claimId: string): Promise<readonly ClaimHistoryEntry[]> {\n const value = await this.#requester.request(\"GET\", this.#path(`/${segment(claimId, \"claim id\")}/history`));\n if (!Array.isArray(value)) throw new MarrowResponseError(\"claim history response must be an array\");\n return value.map((entry) => projectDto(\"claimHistoryEntry\", entry) as unknown as ClaimHistoryEntry);\n }\n\n async update(claimId: string, content: string, options: ClaimMutationOptions): Promise<ClaimUpdateResult> {\n const projected = projectDto(\"claimUpdateResult\", await this.#requester.request(\"PUT\", this.#path(`/${segment(claimId, \"claim id\")}`), {\n body: compact({ content, head_revision: options.headRevision, reason: options.reason }),\n }));\n requireString(projected, \"head_revision\", \"claimUpdateResult\");\n return projected as unknown as ClaimUpdateResult;\n }\n\n async delete(claimId: string, options: ClaimMutationOptions): Promise<ClaimDeleteReceipt> {\n const projected = projectDto(\"claimDeleteReceipt\", await this.#requester.request(\"DELETE\", this.#path(`/${segment(claimId, \"claim id\")}`), {\n body: compact({ head_revision: options.headRevision, reason: options.reason }),\n }));\n requireString(projected, \"id\", \"claimDeleteReceipt\");\n return projected as unknown as ClaimDeleteReceipt;\n }\n}\n\nclass Events {\n readonly #requester: Requester;\n readonly #workspace: string;\n constructor(requester: Requester, workspace: string) { this.#requester = requester; this.#workspace = workspace; }\n\n async get(eventId: string): Promise<EventStatus> {\n const projected = projectDto(\"eventStatus\", await this.#requester.request(\"GET\", `/v1/workspaces/${segment(this.#workspace, \"workspace\")}/events/${segment(eventId, \"event id\")}`));\n requireString(projected, \"event_id\", \"eventStatus\");\n requireString(projected, \"status\", \"eventStatus\");\n return projected as unknown as EventStatus;\n }\n}\n\nclass Queue {\n readonly #requester: Requester;\n readonly #workspace: string;\n constructor(requester: Requester, workspace: string) { this.#requester = requester; this.#workspace = workspace; }\n\n async status(): Promise<QueueStatus> {\n const projected = projectDto(\"queueStatus\", await this.#requester.request(\"GET\", `/v1/workspaces/${segment(this.#workspace, \"workspace\")}/queue/status`));\n for (const field of [\"queued\", \"running\", \"succeeded\", \"failed\"]) requireNumber(projected, field, \"queueStatus\");\n return projected as unknown as QueueStatus;\n }\n}\n\nclass IngestJobs {\n readonly #requester: Requester;\n constructor(requester: Requester) { this.#requester = requester; }\n\n async list(options: ListJobsOptions = {}): Promise<IngestJobListResponse> {\n const limit = positiveInteger(options.limit ?? 20, \"limit\", 100);\n return projectIngestJobList(await this.#requester.request(\"GET\", \"/v1/ingest/jobs\", { query: { limit } }));\n }\n\n async get(jobId: string): Promise<IngestJobResponse> {\n return projectIngestJobResponse(await this.#requester.request(\"GET\", `/v1/ingest/jobs/${segment(jobId, \"job id\")}`));\n }\n\n async wait(jobId: string, options: WaitForJobOptions = {}): Promise<IngestJobResponse> {\n const maxAttempts = positiveInteger(options.maxAttempts ?? 60, \"maxAttempts\", 10_000);\n const pollIntervalMs = options.pollIntervalMs ?? 1_000;\n if (!Number.isFinite(pollIntervalMs) || pollIntervalMs < 0) {\n throw new MarrowConfigError(\"pollIntervalMs must be a non-negative number\");\n }\n for (let attempt = 0; attempt < maxAttempts; attempt += 1) {\n const result = await this.get(jobId);\n if (TERMINAL_JOB_STATUSES.has(result.job.status)) return result;\n if (attempt + 1 < maxAttempts && pollIntervalMs > 0) {\n await new Promise<void>((resolve) => setTimeout(resolve, pollIntervalMs));\n }\n }\n throw new MarrowError(`ingest job ${JSON.stringify(jobId)} did not reach a terminal status after ${maxAttempts} attempts`);\n }\n}\n\nclass Sources {\n readonly #requester: Requester;\n constructor(requester: Requester) { this.#requester = requester; }\n\n async delete(sourceId: string): Promise<IngestJobResponse> {\n return projectIngestJobResponse(await this.#requester.request(\"DELETE\", `/v1/sources/${segment(sourceId, \"source id\")}`));\n }\n}\n\nasync function bytesFrom(value: Blob | ArrayBuffer | ArrayBufferView): Promise<Uint8Array> {\n if (typeof Blob !== \"undefined\" && value instanceof Blob) return new Uint8Array(await value.arrayBuffer());\n if (value instanceof ArrayBuffer) return new Uint8Array(value);\n if (ArrayBuffer.isView(value)) return new Uint8Array(value.buffer, value.byteOffset, value.byteLength);\n throw new MarrowConfigError(\"file content must be a Blob, ArrayBuffer, or typed-array view\");\n}\n\nfunction base64(value: Uint8Array): string {\n const alphabet = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n let output = \"\";\n for (let index = 0; index < value.length; index += 3) {\n const first = value[index] ?? 0;\n const second = value[index + 1] ?? 0;\n const third = value[index + 2] ?? 0;\n const bits = (first << 16) | (second << 8) | third;\n output += alphabet[(bits >> 18) & 63];\n output += alphabet[(bits >> 12) & 63];\n output += index + 1 < value.length ? alphabet[(bits >> 6) & 63] : \"=\";\n output += index + 2 < value.length ? alphabet[bits & 63] : \"=\";\n }\n return output;\n}\n\nfunction assertFileIngestSize(byteLength: number): void {\n if (byteLength > MAX_FILE_INGEST_BYTES) {\n throw new MarrowConfigError(`Uploaded file exceeds ${MAX_FILE_INGEST_BYTES} decoded bytes.`);\n }\n}\n\nclass Ingest {\n readonly jobs: IngestJobs;\n readonly #requester: Requester;\n constructor(requester: Requester) { this.#requester = requester; this.jobs = new IngestJobs(requester); }\n\n async url(url: string, options: UrlIngestOptions = {}): Promise<IngestPlanResponse | IngestJobResponse> {\n const dryRun = options.dryRun ?? true;\n const key = idempotencyKey(options.idempotencyKey, dryRun);\n return projectIngestSubmission(await this.#requester.request(\"POST\", \"/v1/ingest/url\", {\n body: compact({ url, dryRun, datedAt: options.datedAt, idempotencyKey: key }),\n }));\n }\n\n async file(options: FileIngestOptions): Promise<IngestPlanResponse | IngestJobResponse> {\n const dryRun = options.dryRun ?? true;\n const key = idempotencyKey(options.idempotencyKey, dryRun);\n const content = await bytesFrom(options.content);\n assertFileIngestSize(content.byteLength);\n return projectIngestSubmission(await this.#requester.request(\"POST\", \"/v1/ingest/file\", {\n body: compact({\n filename: options.filename,\n contentType: options.contentType,\n contentBase64: base64(content),\n dryRun,\n datedAt: options.datedAt,\n idempotencyKey: key,\n }),\n }));\n }\n}\n\nexport class Marrow {\n readonly workspaces: Workspaces;\n readonly peers: Peers;\n readonly sessions: Sessions;\n readonly claims: Claims;\n readonly events: Events;\n readonly queue: Queue;\n readonly ingest: Ingest;\n readonly sources: Sources;\n readonly #requester: Requester;\n readonly #workspace: string;\n\n constructor(options: MarrowOptions) {\n this.#requester = new Requester(options);\n this.#workspace = options.workspace ?? DEFAULT_WORKSPACE;\n segment(this.#workspace, \"workspace\");\n this.workspaces = new Workspaces(this.#requester);\n this.peers = new Peers(this.#requester, this.#workspace);\n this.sessions = new Sessions(this.#requester, this.#workspace);\n this.claims = new Claims(this.#requester, this.#workspace);\n this.events = new Events(this.#requester, this.#workspace);\n this.queue = new Queue(this.#requester, this.#workspace);\n this.ingest = new Ingest(this.#requester);\n this.sources = new Sources(this.#requester);\n }\n\n peer(peerId: string): Peer { return new Peer(this.#requester, this.#workspace, peerId); }\n session(sessionId: string): Session { return new Session(this.#requester, this.#workspace, sessionId); }\n\n async query(query: string, options: QueryOptions = {}): Promise<QueryResult> {\n if (typeof query !== \"string\" || query.trim().length === 0) throw new MarrowConfigError(\"query must be a non-empty string\");\n const workspace = options.workspace ?? this.#workspace;\n segment(workspace, \"workspace\");\n if (options.audience !== undefined) segment(options.audience, \"audience\");\n return projectQueryResult(await this.#requester.request(\"POST\", \"/v1/query\", {\n body: compact({\n query: query.trim(),\n limit: positiveInteger(options.limit ?? 5, \"limit\", 20),\n evidenceLimit: positiveInteger(options.evidenceLimit ?? 3, \"evidenceLimit\", 10),\n workspace,\n audience: options.audience,\n source_ids: querySelector(options.sourceIds, \"sourceIds\"),\n peer_ids: querySelector(options.peerIds, \"peerIds\"),\n session_ids: querySelector(options.sessionIds, \"sessionIds\"),\n }),\n }));\n }\n\n async access(): Promise<CurrentAccess> {\n const projected = projectDto(\"currentAccess\", await this.#requester.request(\"GET\", \"/v1/access\"));\n requireString(projected, \"schemaVersion\", \"currentAccess\");\n return projected as unknown as CurrentAccess;\n }\n}\n"]} | ||
| {"version":3,"file":"client.js","sources":["marrow-sdk:///src/client.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n ConflictError,\n ForbiddenScopeError,\n MarrowApiError,\n MarrowConfigError,\n MarrowError,\n MarrowResponseError,\n NotFoundError,\n ValidationError,\n WrongCredentialClassError,\n type ValidationIssue,\n} from \"./errors.js\";\nimport {\n assertContext,\n assertPage,\n projectDto,\n projectIngestJobList,\n projectIngestJobResponse,\n projectIngestSubmission,\n projectQueryResult,\n} from \"./projection.js\";\nimport type {\n AddMessagesOptions,\n AskOptions,\n Claim,\n ClaimDeleteReceipt,\n ClaimHistoryEntry,\n ClaimMutationOptions,\n ClaimsListOptions,\n ClaimsQueryOptions,\n ContextOptions,\n EventStatus,\n FetchLike,\n FileIngestOptions,\n IngestJobListResponse,\n IngestJobResponse,\n IngestPlanResponse,\n ListJobsOptions,\n MarrowOptions,\n MemoryContext,\n Message,\n MessageInput,\n MessagesCreateReceipt,\n Page,\n PeerRecord,\n QueryOptions,\n QueryResult,\n QueueStatus,\n RepresentationResponse,\n SessionContextOptions,\n SessionRecord,\n UrlIngestOptions,\n WaitForJobOptions,\n Workspace,\n ClaimUpdateResult,\n CurrentAccess,\n} from \"./types.js\";\n\nconst DEFAULT_BASE_URL = \"https://api.marrow.id\";\nconst DEFAULT_WORKSPACE = \"default\";\nconst DEFAULT_TIMEOUT_MS = 30_000;\nconst MAX_FILE_INGEST_BYTES = 50_000_000;\nconst LOOPBACK_HOSTS = new Set([\"localhost\", \"127.0.0.1\", \"::1\", \"[::1]\"]);\nconst TERMINAL_JOB_STATUSES = new Set([\"succeeded\", \"failed\", \"quarantined\"]);\n\ntype RequestBody = Readonly<Record<string, unknown>>;\n\nfunction validateBaseURL(value: string): string {\n let parsed: URL;\n try {\n parsed = new URL(value);\n } catch {\n throw new MarrowConfigError(\n \"baseURL must be an absolute HTTPS URL; HTTP is allowed only for localhost, 127.0.0.1, or ::1.\",\n );\n }\n if (parsed.username || parsed.password) throw new MarrowConfigError(\"baseURL must not contain embedded credentials.\");\n if (parsed.search || parsed.hash) throw new MarrowConfigError(\"baseURL must not contain a query string or fragment.\");\n if (parsed.protocol !== \"https:\" && !(parsed.protocol === \"http:\" && LOOPBACK_HOSTS.has(parsed.hostname))) {\n throw new MarrowConfigError(\n \"baseURL must use HTTPS; HTTP is allowed only for localhost, 127.0.0.1, or ::1.\",\n );\n }\n return value.replace(/\\/+$/, \"\");\n}\n\nfunction segment(value: string, name: string): string {\n if (typeof value !== \"string\" || value.length === 0) throw new MarrowConfigError(`${name} must be a non-empty string`);\n return encodeURIComponent(value);\n}\n\nfunction positiveInteger(value: number, name: string, maximum: number): number {\n if (!Number.isInteger(value) || value < 1 || value > maximum) {\n throw new MarrowConfigError(`${name} must be an integer between 1 and ${maximum}`);\n }\n return value;\n}\n\nfunction querySelector(values: readonly string[] | undefined, name: string): readonly string[] | undefined {\n if (values === undefined) return undefined;\n if (!Array.isArray(values) || values.length === 0) {\n throw new MarrowConfigError(`${name} must contain at least one value`);\n }\n return values;\n}\n\nfunction idempotencyKey(value: string | undefined, dryRun: boolean): string | undefined {\n if (value === undefined) {\n if (!dryRun) {\n throw new MarrowConfigError(\"idempotencyKey is required for live ingest; use dryRun: true to preview without one\");\n }\n return undefined;\n }\n const key = value.trim();\n if (key.length < 8 || key.length > 160) {\n throw new MarrowConfigError(\"idempotencyKey must be between 8 and 160 characters\");\n }\n return key;\n}\n\nfunction compact(value: RequestBody): RequestBody {\n return Object.fromEntries(Object.entries(value).filter(([, item]) => item !== undefined));\n}\n\nfunction requireString(value: Record<string, unknown>, field: string, owner: string): void {\n if (typeof value[field] !== \"string\" || value[field] === \"\") {\n throw new MarrowResponseError(`${owner}.${field} must be a non-empty string`);\n }\n}\n\nfunction requireNumber(value: Record<string, unknown>, field: string, owner: string): void {\n if (typeof value[field] !== \"number\" || !Number.isFinite(value[field])) {\n throw new MarrowResponseError(`${owner}.${field} must be a number`);\n }\n}\n\nfunction parseIssues(value: unknown): readonly ValidationIssue[] {\n if (!Array.isArray(value)) return [];\n const issues: ValidationIssue[] = [];\n for (const item of value) {\n if (typeof item !== \"object\" || item === null || Array.isArray(item)) continue;\n const record = item as Record<string, unknown>;\n if (!Array.isArray(record.path) || typeof record.message !== \"string\") continue;\n const path = record.path.filter((part): part is string | number => typeof part === \"string\" || typeof part === \"number\");\n issues.push({ path, message: record.message });\n }\n return issues;\n}\n\nfunction buildApiError(status: number, value: unknown): MarrowApiError {\n const envelope = typeof value === \"object\" && value !== null && !Array.isArray(value)\n ? value as Record<string, unknown>\n : {};\n const nested = typeof envelope.error === \"object\" && envelope.error !== null && !Array.isArray(envelope.error)\n ? envelope.error as Record<string, unknown>\n : {};\n const message = typeof nested.message === \"string\" && nested.message.length > 0 ? nested.message : `HTTP ${status}`;\n const code = typeof nested.code === \"string\" ? nested.code : undefined;\n const requestId = typeof envelope.requestId === \"string\"\n ? envelope.requestId\n : typeof envelope.request_id === \"string\" ? envelope.request_id : undefined;\n const details = typeof nested.details === \"object\" && nested.details !== null && !Array.isArray(nested.details)\n ? nested.details as Record<string, unknown>\n : {};\n const issues = parseIssues(nested.issues ?? details.issues);\n const options = { statusCode: status, code, requestId, issues };\n if (status === 403 && code === \"wrong_credential_class\") return new WrongCredentialClassError(message, options);\n if (status === 403) return new ForbiddenScopeError(message, options);\n if (status === 404) return new NotFoundError(message, options);\n if (status === 409) return new ConflictError(message, options);\n if (status === 400) return new ValidationError(message, options);\n return new MarrowApiError(message, options);\n}\n\nasync function decodeResponse(response: Response): Promise<unknown> {\n const text = await response.text();\n if (text.length === 0) return null;\n try {\n return JSON.parse(text) as unknown;\n } catch {\n if (response.ok) throw new MarrowResponseError(\"Marrow returned a non-JSON success response\");\n return {};\n }\n}\n\nclass Requester {\n readonly #apiKey: string;\n readonly #baseURL: string;\n readonly #timeoutMs: number;\n readonly #fetch: FetchLike;\n\n constructor(options: MarrowOptions) {\n if (typeof options.apiKey !== \"string\" || options.apiKey.length === 0) {\n throw new MarrowConfigError(\"apiKey is required (a customer API key with scopes for the routes you call).\");\n }\n if (options.timeoutMs !== undefined && (!Number.isFinite(options.timeoutMs) || options.timeoutMs <= 0)) {\n throw new MarrowConfigError(\"timeoutMs must be a positive number\");\n }\n const fetchImpl = options.fetch ?? globalThis.fetch?.bind(globalThis);\n if (fetchImpl === undefined) throw new MarrowConfigError(\"A standards-compatible fetch implementation is required\");\n this.#apiKey = options.apiKey;\n this.#baseURL = validateBaseURL(options.baseURL ?? DEFAULT_BASE_URL);\n this.#timeoutMs = options.timeoutMs ?? DEFAULT_TIMEOUT_MS;\n this.#fetch = fetchImpl;\n }\n\n async request(\n method: \"GET\" | \"POST\" | \"PUT\" | \"DELETE\",\n path: string,\n options: { readonly body?: RequestBody; readonly query?: RequestBody } = {},\n ): Promise<unknown> {\n const url = new URL(`${this.#baseURL}${path}`);\n for (const [key, value] of Object.entries(options.query ?? {})) {\n if (value !== undefined) url.searchParams.set(key, String(value));\n }\n const controller = new AbortController();\n const timer = setTimeout(() => controller.abort(), this.#timeoutMs);\n let response: Response;\n try {\n response = await this.#fetch(url, {\n method,\n headers: {\n authorization: `Bearer ${this.#apiKey}`,\n ...(options.body === undefined ? {} : { \"content-type\": \"application/json\" }),\n },\n ...(options.body === undefined ? {} : { body: JSON.stringify(options.body) }),\n signal: controller.signal,\n });\n } catch (error) {\n if (controller.signal.aborted) throw new MarrowError(`Marrow request timed out after ${this.#timeoutMs}ms`);\n throw error;\n } finally {\n clearTimeout(timer);\n }\n const decoded = await decodeResponse(response);\n if (!response.ok) throw buildApiError(response.status, decoded);\n return decoded;\n }\n}\n\nexport class Context {\n readonly raw: MemoryContext;\n readonly status: MemoryContext[\"status\"];\n readonly placement: string;\n readonly context: string;\n readonly messages: MemoryContext[\"messages\"];\n readonly blocks: MemoryContext[\"blocks\"];\n readonly citations: MemoryContext[\"citations\"];\n readonly conflicts: MemoryContext[\"conflicts\"];\n readonly warnings: MemoryContext[\"warnings\"];\n\n constructor(raw: MemoryContext) {\n this.raw = raw;\n this.status = raw.status;\n this.placement = raw.placement;\n this.context = raw.context;\n this.messages = raw.messages;\n this.blocks = raw.blocks;\n this.citations = raw.citations;\n this.conflicts = raw.conflicts;\n this.warnings = raw.warnings;\n }\n\n toOpenAI(): readonly [{ readonly role: \"system\"; readonly content: string }] {\n return [{ role: \"system\", content: this.context }];\n }\n\n toAnthropic(): { readonly system: string } {\n return { system: this.context };\n }\n}\n\nfunction contextFrom(value: unknown): Context {\n const projected = projectDto(\"memoryContext\", value);\n assertContext(projected);\n return new Context(projected as unknown as MemoryContext);\n}\n\nfunction recordWithId<T>(id: \"workspace\" | \"peer\" | \"session\" | \"claim\", value: unknown): T {\n const projected = projectDto(id, value);\n requireString(projected, \"id\", id);\n return projected as T;\n}\n\nexport class Peer {\n readonly id: string;\n readonly #requester: Requester;\n readonly #workspace: string;\n\n constructor(requester: Requester, workspace: string, id: string) {\n this.#requester = requester;\n this.#workspace = workspace;\n this.id = id;\n }\n\n #path(suffix = \"\"): string {\n return `/v1/workspaces/${segment(this.#workspace, \"workspace\")}/peers/${segment(this.id, \"peer id\")}${suffix}`;\n }\n\n async create(): Promise<PeerRecord> {\n return recordWithId(\"peer\", await this.#requester.request(\"POST\", `/v1/workspaces/${segment(this.#workspace, \"workspace\")}/peers`, { body: { id: this.id } }));\n }\n\n async get(): Promise<PeerRecord> {\n return recordWithId(\"peer\", await this.#requester.request(\"GET\", this.#path()));\n }\n\n async ask(query: string, options: AskOptions = {}): Promise<Context> {\n return contextFrom(await this.#requester.request(\"POST\", this.#path(\"/ask\"), {\n body: compact({ query, session_id: options.session, top_k: options.topK }),\n }));\n }\n\n async context(options: ContextOptions = {}): Promise<Context> {\n return contextFrom(await this.#requester.request(\"GET\", this.#path(\"/context\"), {\n query: compact({ session: options.session, q: options.q }),\n }));\n }\n\n async representation(): Promise<RepresentationResponse> {\n const projected = projectDto(\"representationResponse\", await this.#requester.request(\"POST\", this.#path(\"/representation\"), { body: {} }));\n requireString(projected, \"peer_id\", \"representationResponse\");\n requireString(projected, \"generated_at\", \"representationResponse\");\n requireNumber(projected, \"count\", \"representationResponse\");\n return projected as unknown as RepresentationResponse;\n }\n\n async delete(): Promise<EventStatus> {\n const projected = projectDto(\"eventStatus\", await this.#requester.request(\"DELETE\", this.#path()));\n requireString(projected, \"event_id\", \"eventStatus\");\n requireString(projected, \"status\", \"eventStatus\");\n return projected as unknown as EventStatus;\n }\n}\n\nexport class Session {\n readonly id: string;\n readonly #requester: Requester;\n readonly #workspace: string;\n\n constructor(requester: Requester, workspace: string, id: string) {\n this.#requester = requester;\n this.#workspace = workspace;\n this.id = id;\n }\n\n #path(suffix = \"\"): string {\n return `/v1/workspaces/${segment(this.#workspace, \"workspace\")}/sessions/${segment(this.id, \"session id\")}${suffix}`;\n }\n\n async create(): Promise<SessionRecord> {\n return recordWithId(\"session\", await this.#requester.request(\"POST\", `/v1/workspaces/${segment(this.#workspace, \"workspace\")}/sessions`, { body: { id: this.id } }));\n }\n\n async get(): Promise<SessionRecord> {\n return recordWithId(\"session\", await this.#requester.request(\"GET\", this.#path()));\n }\n\n async addMessages(messages: readonly MessageInput[], options: AddMessagesOptions): Promise<MessagesCreateReceipt> {\n const projected = projectDto(\"messagesCreateReceipt\", await this.#requester.request(\"POST\", this.#path(\"/messages\"), {\n body: compact({\n peer_id: options.peerId,\n agent_id: options.agentId,\n messages,\n infer: options.infer,\n created_at: options.createdAt,\n metadata: options.metadata,\n source_ids: options.sourceIds,\n idempotency_key: options.idempotencyKey,\n }),\n }));\n requireString(projected, \"event_id\", \"messagesCreateReceipt\");\n return projected as unknown as MessagesCreateReceipt;\n }\n\n async messages(): Promise<Page<Message>> {\n const projected = projectDto(\"Page_Message\", await this.#requester.request(\"POST\", this.#path(\"/messages/list\"), { body: {} }));\n assertPage(projected, \"Page_Message\");\n return projected as unknown as Page<Message>;\n }\n\n async context(options: SessionContextOptions): Promise<Context> {\n return contextFrom(await this.#requester.request(\"GET\", this.#path(\"/context\"), {\n query: compact({ peer: options.peer, q: options.q }),\n }));\n }\n\n async delete(): Promise<EventStatus> {\n const projected = projectDto(\"eventStatus\", await this.#requester.request(\"DELETE\", this.#path()));\n requireString(projected, \"event_id\", \"eventStatus\");\n requireString(projected, \"status\", \"eventStatus\");\n return projected as unknown as EventStatus;\n }\n}\n\nclass Workspaces {\n readonly #requester: Requester;\n constructor(requester: Requester) { this.#requester = requester; }\n\n async upsert(id?: string): Promise<Workspace> {\n return recordWithId(\"workspace\", await this.#requester.request(\"POST\", \"/v1/workspaces\", {\n body: id === undefined ? {} : { id: segment(id, \"workspace\") },\n }));\n }\n\n async list(): Promise<Page<Workspace>> {\n const projected = projectDto(\"Page_Workspace\", await this.#requester.request(\"POST\", \"/v1/workspaces/list\", { body: {} }));\n assertPage(projected, \"Page_Workspace\");\n return projected as unknown as Page<Workspace>;\n }\n}\n\nclass Peers {\n readonly #requester: Requester;\n readonly #workspace: string;\n constructor(requester: Requester, workspace: string) { this.#requester = requester; this.#workspace = workspace; }\n\n async list(): Promise<Page<PeerRecord>> {\n const projected = projectDto(\"Page_Peer\", await this.#requester.request(\"POST\", `/v1/workspaces/${segment(this.#workspace, \"workspace\")}/peers/list`, { body: {} }));\n assertPage(projected, \"Page_Peer\");\n return projected as unknown as Page<PeerRecord>;\n }\n}\n\nclass Sessions {\n readonly #requester: Requester;\n readonly #workspace: string;\n constructor(requester: Requester, workspace: string) { this.#requester = requester; this.#workspace = workspace; }\n\n async list(): Promise<Page<SessionRecord>> {\n const projected = projectDto(\"Page_Session\", await this.#requester.request(\"POST\", `/v1/workspaces/${segment(this.#workspace, \"workspace\")}/sessions/list`, { body: {} }));\n assertPage(projected, \"Page_Session\");\n return projected as unknown as Page<SessionRecord>;\n }\n}\n\nclass Claims {\n readonly #requester: Requester;\n readonly #workspace: string;\n constructor(requester: Requester, workspace: string) { this.#requester = requester; this.#workspace = workspace; }\n #path(suffix: string): string { return `/v1/workspaces/${segment(this.#workspace, \"workspace\")}/claims${suffix}`; }\n\n async query(query: string, options: ClaimsQueryOptions): Promise<Page<Claim>> {\n const projected = projectDto(\"Page_Claim\", await this.#requester.request(\"POST\", this.#path(\"/query\"), {\n body: compact({ query, peer_id: options.peerId, agent_id: options.agentId, session_id: options.sessionId, top_k: options.topK }),\n }));\n assertPage(projected, \"Page_Claim\");\n return projected as unknown as Page<Claim>;\n }\n\n async list(options: ClaimsListOptions): Promise<Page<Claim>> {\n const projected = projectDto(\"Page_Claim\", await this.#requester.request(\"POST\", this.#path(\"/list\"), {\n body: compact({ peer_id: options.peerId, agent_id: options.agentId, session_id: options.sessionId, page: options.page, page_size: options.pageSize }),\n }));\n assertPage(projected, \"Page_Claim\");\n return projected as unknown as Page<Claim>;\n }\n\n async get(claimId: string): Promise<Claim> {\n return recordWithId(\"claim\", await this.#requester.request(\"GET\", this.#path(`/${segment(claimId, \"claim id\")}`)));\n }\n\n async history(claimId: string): Promise<readonly ClaimHistoryEntry[]> {\n const value = await this.#requester.request(\"GET\", this.#path(`/${segment(claimId, \"claim id\")}/history`));\n if (!Array.isArray(value)) throw new MarrowResponseError(\"claim history response must be an array\");\n return value.map((entry) => projectDto(\"claimHistoryEntry\", entry) as unknown as ClaimHistoryEntry);\n }\n\n async update(claimId: string, content: string, options: ClaimMutationOptions): Promise<ClaimUpdateResult> {\n const projected = projectDto(\"claimUpdateResult\", await this.#requester.request(\"PUT\", this.#path(`/${segment(claimId, \"claim id\")}`), {\n body: compact({ content, head_revision: options.headRevision, reason: options.reason }),\n }));\n requireString(projected, \"head_revision\", \"claimUpdateResult\");\n return projected as unknown as ClaimUpdateResult;\n }\n\n async delete(claimId: string, options: ClaimMutationOptions): Promise<ClaimDeleteReceipt> {\n const projected = projectDto(\"claimDeleteReceipt\", await this.#requester.request(\"DELETE\", this.#path(`/${segment(claimId, \"claim id\")}`), {\n body: compact({ head_revision: options.headRevision, reason: options.reason }),\n }));\n requireString(projected, \"id\", \"claimDeleteReceipt\");\n return projected as unknown as ClaimDeleteReceipt;\n }\n}\n\nclass Events {\n readonly #requester: Requester;\n readonly #workspace: string;\n constructor(requester: Requester, workspace: string) { this.#requester = requester; this.#workspace = workspace; }\n\n async get(eventId: string): Promise<EventStatus> {\n const projected = projectDto(\"eventStatus\", await this.#requester.request(\"GET\", `/v1/workspaces/${segment(this.#workspace, \"workspace\")}/events/${segment(eventId, \"event id\")}`));\n requireString(projected, \"event_id\", \"eventStatus\");\n requireString(projected, \"status\", \"eventStatus\");\n return projected as unknown as EventStatus;\n }\n}\n\nclass Queue {\n readonly #requester: Requester;\n readonly #workspace: string;\n constructor(requester: Requester, workspace: string) { this.#requester = requester; this.#workspace = workspace; }\n\n async status(): Promise<QueueStatus> {\n const projected = projectDto(\"queueStatus\", await this.#requester.request(\"GET\", `/v1/workspaces/${segment(this.#workspace, \"workspace\")}/queue/status`));\n for (const field of [\"queued\", \"running\", \"succeeded\", \"failed\"]) requireNumber(projected, field, \"queueStatus\");\n return projected as unknown as QueueStatus;\n }\n}\n\nclass IngestJobs {\n readonly #requester: Requester;\n constructor(requester: Requester) { this.#requester = requester; }\n\n async list(options: ListJobsOptions = {}): Promise<IngestJobListResponse> {\n const limit = positiveInteger(options.limit ?? 20, \"limit\", 100);\n return projectIngestJobList(await this.#requester.request(\"GET\", \"/v1/ingest/jobs\", { query: { limit } }));\n }\n\n async get(jobId: string): Promise<IngestJobResponse> {\n return projectIngestJobResponse(await this.#requester.request(\"GET\", `/v1/ingest/jobs/${segment(jobId, \"job id\")}`));\n }\n\n async wait(jobId: string, options: WaitForJobOptions = {}): Promise<IngestJobResponse> {\n const maxAttempts = positiveInteger(options.maxAttempts ?? 60, \"maxAttempts\", 10_000);\n const pollIntervalMs = options.pollIntervalMs ?? 1_000;\n if (!Number.isFinite(pollIntervalMs) || pollIntervalMs < 0) {\n throw new MarrowConfigError(\"pollIntervalMs must be a non-negative number\");\n }\n for (let attempt = 0; attempt < maxAttempts; attempt += 1) {\n const result = await this.get(jobId);\n if (TERMINAL_JOB_STATUSES.has(result.job.status)) return result;\n if (attempt + 1 < maxAttempts && pollIntervalMs > 0) {\n await new Promise<void>((resolve) => setTimeout(resolve, pollIntervalMs));\n }\n }\n throw new MarrowError(`ingest job ${JSON.stringify(jobId)} did not reach a terminal status after ${maxAttempts} attempts`);\n }\n}\n\nclass Sources {\n readonly #requester: Requester;\n constructor(requester: Requester) { this.#requester = requester; }\n\n async delete(sourceId: string): Promise<IngestJobResponse> {\n return projectIngestJobResponse(await this.#requester.request(\"DELETE\", `/v1/sources/${segment(sourceId, \"source id\")}`));\n }\n}\n\nasync function bytesFrom(value: Blob | ArrayBuffer | ArrayBufferView): Promise<Uint8Array> {\n if (typeof Blob !== \"undefined\" && value instanceof Blob) return new Uint8Array(await value.arrayBuffer());\n if (value instanceof ArrayBuffer) return new Uint8Array(value);\n if (ArrayBuffer.isView(value)) return new Uint8Array(value.buffer, value.byteOffset, value.byteLength);\n throw new MarrowConfigError(\"file content must be a Blob, ArrayBuffer, or typed-array view\");\n}\n\nfunction base64(value: Uint8Array): string {\n const alphabet = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n let output = \"\";\n for (let index = 0; index < value.length; index += 3) {\n const first = value[index] ?? 0;\n const second = value[index + 1] ?? 0;\n const third = value[index + 2] ?? 0;\n const bits = (first << 16) | (second << 8) | third;\n output += alphabet[(bits >> 18) & 63];\n output += alphabet[(bits >> 12) & 63];\n output += index + 1 < value.length ? alphabet[(bits >> 6) & 63] : \"=\";\n output += index + 2 < value.length ? alphabet[bits & 63] : \"=\";\n }\n return output;\n}\n\nfunction assertFileIngestSize(byteLength: number): void {\n if (byteLength > MAX_FILE_INGEST_BYTES) {\n throw new MarrowConfigError(`Uploaded file exceeds ${MAX_FILE_INGEST_BYTES} decoded bytes.`);\n }\n}\n\nclass Ingest {\n readonly jobs: IngestJobs;\n readonly #requester: Requester;\n constructor(requester: Requester) { this.#requester = requester; this.jobs = new IngestJobs(requester); }\n\n async url(url: string, options: UrlIngestOptions = {}): Promise<IngestPlanResponse | IngestJobResponse> {\n const dryRun = options.dryRun ?? true;\n const key = idempotencyKey(options.idempotencyKey, dryRun);\n return projectIngestSubmission(await this.#requester.request(\"POST\", \"/v1/ingest/url\", {\n body: compact({ url, dryRun, datedAt: options.datedAt, idempotencyKey: key }),\n }));\n }\n\n async file(options: FileIngestOptions): Promise<IngestPlanResponse | IngestJobResponse> {\n const dryRun = options.dryRun ?? true;\n const key = idempotencyKey(options.idempotencyKey, dryRun);\n const content = await bytesFrom(options.content);\n assertFileIngestSize(content.byteLength);\n return projectIngestSubmission(await this.#requester.request(\"POST\", \"/v1/ingest/file\", {\n body: compact({\n filename: options.filename,\n contentType: options.contentType,\n contentBase64: base64(content),\n dryRun,\n datedAt: options.datedAt,\n idempotencyKey: key,\n }),\n }));\n }\n}\n\nexport class Marrow {\n readonly workspaces: Workspaces;\n readonly peers: Peers;\n readonly sessions: Sessions;\n readonly claims: Claims;\n readonly events: Events;\n readonly queue: Queue;\n readonly ingest: Ingest;\n readonly sources: Sources;\n readonly #requester: Requester;\n readonly #workspace: string;\n\n constructor(options: MarrowOptions) {\n this.#requester = new Requester(options);\n this.#workspace = options.workspace ?? DEFAULT_WORKSPACE;\n segment(this.#workspace, \"workspace\");\n this.workspaces = new Workspaces(this.#requester);\n this.peers = new Peers(this.#requester, this.#workspace);\n this.sessions = new Sessions(this.#requester, this.#workspace);\n this.claims = new Claims(this.#requester, this.#workspace);\n this.events = new Events(this.#requester, this.#workspace);\n this.queue = new Queue(this.#requester, this.#workspace);\n this.ingest = new Ingest(this.#requester);\n this.sources = new Sources(this.#requester);\n }\n\n peer(peerId: string): Peer { return new Peer(this.#requester, this.#workspace, peerId); }\n session(sessionId: string): Session { return new Session(this.#requester, this.#workspace, sessionId); }\n\n async query(query: string, options: QueryOptions = {}): Promise<QueryResult> {\n if (typeof query !== \"string\" || query.trim().length === 0) throw new MarrowConfigError(\"query must be a non-empty string\");\n const workspace = options.workspace ?? this.#workspace;\n segment(workspace, \"workspace\");\n if (options.audience !== undefined) segment(options.audience, \"audience\");\n return projectQueryResult(await this.#requester.request(\"POST\", \"/v1/query\", {\n body: compact({\n query: query.trim(),\n limit: positiveInteger(options.limit ?? 5, \"limit\", 20),\n evidenceLimit: positiveInteger(options.evidenceLimit ?? 3, \"evidenceLimit\", 10),\n workspace,\n audience: options.audience,\n source_ids: querySelector(options.sourceIds, \"sourceIds\"),\n peer_ids: querySelector(options.peerIds, \"peerIds\"),\n session_ids: querySelector(options.sessionIds, \"sessionIds\"),\n }),\n }));\n }\n\n async access(): Promise<CurrentAccess> {\n const projected = projectDto(\"currentAccess\", await this.#requester.request(\"GET\", \"/v1/access\"));\n requireString(projected, \"schemaVersion\", \"currentAccess\");\n return projected as unknown as CurrentAccess;\n }\n}\n"]} |
+2
-2
| { | ||
| "name": "@marrowid/sdk", | ||
| "version": "1.0.8", | ||
| "gitHead": "fc47eabe4538f5edfe6c37901df27ecb5b05937d", | ||
| "version": "1.0.9", | ||
| "gitHead": "57dfb4f66c4595578eecc8e9d70372139647691b", | ||
| "description": "Typed Marrow client for evidence-grounded, correctable agent memory.", | ||
@@ -6,0 +6,0 @@ "homepage": "https://marrow.id", |
+1
-1
@@ -10,3 +10,3 @@ # @marrowid/sdk | ||
| ```bash | ||
| npm install @marrowid/sdk@1.0.8 | ||
| npm install @marrowid/sdk@1.0.9 | ||
| ``` | ||
@@ -13,0 +13,0 @@ |
Explicitly Unlicensed Item
LicenseSomething was found which is explicitly marked as unlicensed.
Explicitly Unlicensed Item
LicenseSomething was found which is explicitly marked as unlicensed.
242278
0.12%1728
0.12%