@anaralabs/sdk 0.1.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -37,15 +37,22 @@ import { createAnaraClient } from '@anaralabs/sdk';
37
37
  // `apiKey` defaults to the ANARA_API_KEY environment variable.
38
38
  const anara = createAnaraClient();
39
39
 
40
- // Retrieval — one call answers most questions, with citable passages.
41
- const hits = await anara.search({ query: 'wooden pallet recycling drop-off' });
42
-
43
- // Search + read the winners' pages in one shot.
44
- const research = await anara.research({
45
- query: ['revenue 2021', 'revenue 2022'],
46
- readPages: 2,
40
+ // Retrieval — compose it from the raw primitives: recall, rerank, read.
41
+ const candidates = await anara.retrieval.vectorSearch({
42
+ queries: ['wooden pallet recycling drop-off', 'where to recycle pallets'],
43
+ });
44
+ const winners = await anara.retrieval.rerank({
45
+ query: 'wooden pallet recycling drop-off',
46
+ candidates,
47
+ topK: 6,
47
48
  });
48
49
 
50
+ // Read a winner's full page when snippets aren't enough.
51
+ const page = await anara.documents.getPages(
52
+ winners[0].documentId,
53
+ winners[0].pageNumber != null ? [winners[0].pageNumber] : undefined,
54
+ );
55
+
49
56
  // Library entities (CRUD). Writes need an `anara:write` key.
50
57
  const drafts = await anara.entities.query({
51
58
  type: 'NOTE',
@@ -1,2 +1,2 @@
1
- export declare const ANARA_AGENT_GUIDE = "# Anara SDK \u2014 agent guide\n\nYou have an `anara` client (`@anaralabs/sdk`) authenticated to a research workspace.\nIt mirrors Anara's code-agent SDK: every call hits the Anara API over your key.\n\n## Retrieval (the common job)\n- `anara.search({ query, documentIds?, limit? })` \u2192 ranked, citable passages. ONE call answers most \"what does my library say about X\". STOP once you have a plausible answer \u2014 re-verifying is the #1 cost.\n- `anara.research({ query, readPages? })` \u2192 search + read the top winners' pages in one call. Pass an array of sub-questions (\u22646) to decompose.\n- `anara.retrieval.vectorSearch/keywordSearch({ queries })` then `anara.retrieval.rerank({ query, candidates, topK })` to compose custom recall. Gather wide, rerank, return narrow.\n- `anara.documents.getPages(documentId, [page])` to read full pages.\n\n## Library entities (CRUD)\n- `anara.entities.query({ type?, nameContains?, groupId?, limit? })`, `anara.entities.get(id, { withBody })`.\n- `anara.entities.create({ type: 'NOTE'|'GROUP'|'SPREADSHEET', ... })`, `update(id, { name })`, `move(id, groupId)`, `delete(ids, { dryRun })`.\n- Bulk delete? `delete(ids, { dryRun: true })` FIRST. Writes need an `anara:write` key.\n\n## Heavier tools\n- `anara.map(items, instruction, opts?)` and `anara.askMany(tasks, instruction?)` \u2014 fan a cheap sub-LM over big data when the per-item decision needs language judgment (NOT for string/regex/numeric tests \u2014 do those in plain code). `anara.ask(prompt, instruction?)` is the single-shot version.\n- `anara.store.put(value)` and `anara.store.get(handle)` \u2014 stash big intermediate data out of context (`store.put` needs an `anara:write` key).\n\n## How to use it well\n- Prefer `anara.search` over scraping; it already does retrieval + rerank.\n- One decisive call per step \u2014 round-trips are the cost.\n- Treat results as evidence to cite, not ground truth.\n";
1
+ export declare const ANARA_AGENT_GUIDE = "# Anara SDK \u2014 agent guide\n\nYou have an `anara` client (`@anaralabs/sdk`) authenticated to a research workspace.\nIt mirrors Anara's code-agent SDK: every call hits the Anara API over your key.\n\n## Retrieval (the common job)\nCompose retrieval from the raw primitives \u2014 recall wide, rerank, read narrow:\n- `anara.retrieval.vectorSearch({ queries })` (semantic) and/or `anara.retrieval.keywordSearch({ queries })` (exact terms) to gather candidates. Pass several phrasings as `queries` \u2014 they run in parallel and come back merged + deduped.\n- `anara.retrieval.rerank({ query, candidates, topK })` to score the merged set against the original question; keep the few winners (filter on `.score`).\n- `anara.documents.getPages(documentId, [page])` to read the winners' full pages when snippets aren't enough.\n- Multi-part question? Fan out up to 6 sub-queries, rerank each, and read at most 5 winners' pages. STOP once you have a plausible answer \u2014 re-verifying is the #1 cost.\n\n## Library entities (CRUD)\n- `anara.entities.query({ type?, nameContains?, groupId?, limit?, scope? })`, `anara.entities.get(id, { withBody })`. `scope` defaults to `'organization'` (the targeted workspace only); pass `'accessible'` to also list your private items in other workspaces.\n- `anara.entities.create({ type: 'NOTE'|'GROUP'|'SPREADSHEET', ... })`, `update(id, { name })`, `move(id, groupId)`, `delete(ids, { dryRun })`.\n- Bulk delete? `delete(ids, { dryRun: true })` FIRST. Writes need an `anara:write` key.\n\n## Heavier tools\n- `anara.map(items, instruction, opts?)` and `anara.askMany(tasks, instruction?)` \u2014 fan a cheap sub-LM over big data when the per-item decision needs language judgment (NOT for string/regex/numeric tests \u2014 do those in plain code). `anara.ask(prompt, instruction?)` is the single-shot version.\n- `anara.store.put(value)` and `anara.store.get(handle)` \u2014 stash big intermediate data out of context (`store.put` needs an `anara:write` key).\n\n## How to use it well\n- Prefer library retrieval (`anara.retrieval.*`) over scraping; gather, rerank, then read the winners.\n- One decisive call per step \u2014 round-trips are the cost.\n- Treat results as evidence to cite, not ground truth.\n";
2
2
  //# sourceMappingURL=agent-guide.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent-guide.d.ts","sourceRoot":"","sources":["../src/agent-guide.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,iBAAiB,64DAwB7B,CAAC"}
1
+ {"version":3,"file":"agent-guide.d.ts","sourceRoot":"","sources":["../src/agent-guide.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,iBAAiB,4sEAyB7B,CAAC"}
@@ -7,13 +7,14 @@ You have an \`anara\` client (\`@anaralabs/sdk\`) authenticated to a research wo
7
7
  It mirrors Anara's code-agent SDK: every call hits the Anara API over your key.
8
8
 
9
9
  ## Retrieval (the common job)
10
- - \`anara.search({ query, documentIds?, limit? })\` → ranked, citable passages. ONE call answers most "what does my library say about X". STOP once you have a plausible answer re-verifying is the #1 cost.
11
- - \`anara.research({ query, readPages? })\` search + read the top winners' pages in one call. Pass an array of sub-questions (≤6) to decompose.
12
- - \`anara.retrieval.vectorSearch/keywordSearch({ queries })\` then \`anara.retrieval.rerank({ query, candidates, topK })\` to compose custom recall. Gather wide, rerank, return narrow.
13
- - \`anara.documents.getPages(documentId, [page])\` to read full pages.
10
+ Compose retrieval from the raw primitivesrecall wide, rerank, read narrow:
11
+ - \`anara.retrieval.vectorSearch({ queries })\` (semantic) and/or \`anara.retrieval.keywordSearch({ queries })\` (exact terms) to gather candidates. Pass several phrasings as \`queries\` they run in parallel and come back merged + deduped.
12
+ - \`anara.retrieval.rerank({ query, candidates, topK })\` to score the merged set against the original question; keep the few winners (filter on \`.score\`).
13
+ - \`anara.documents.getPages(documentId, [page])\` to read the winners' full pages when snippets aren't enough.
14
+ - Multi-part question? Fan out up to 6 sub-queries, rerank each, and read at most 5 winners' pages. STOP once you have a plausible answer — re-verifying is the #1 cost.
14
15
 
15
16
  ## Library entities (CRUD)
16
- - \`anara.entities.query({ type?, nameContains?, groupId?, limit? })\`, \`anara.entities.get(id, { withBody })\`.
17
+ - \`anara.entities.query({ type?, nameContains?, groupId?, limit?, scope? })\`, \`anara.entities.get(id, { withBody })\`. \`scope\` defaults to \`'organization'\` (the targeted workspace only); pass \`'accessible'\` to also list your private items in other workspaces.
17
18
  - \`anara.entities.create({ type: 'NOTE'|'GROUP'|'SPREADSHEET', ... })\`, \`update(id, { name })\`, \`move(id, groupId)\`, \`delete(ids, { dryRun })\`.
18
19
  - Bulk delete? \`delete(ids, { dryRun: true })\` FIRST. Writes need an \`anara:write\` key.
19
20
 
@@ -22,7 +23,7 @@ It mirrors Anara's code-agent SDK: every call hits the Anara API over your key.
22
23
  - \`anara.store.put(value)\` and \`anara.store.get(handle)\` — stash big intermediate data out of context (\`store.put\` needs an \`anara:write\` key).
23
24
 
24
25
  ## How to use it well
25
- - Prefer \`anara.search\` over scraping; it already does retrieval + rerank.
26
+ - Prefer library retrieval (\`anara.retrieval.*\`) over scraping; gather, rerank, then read the winners.
26
27
  - One decisive call per step — round-trips are the cost.
27
28
  - Treat results as evidence to cite, not ground truth.
28
29
  `;
@@ -1 +1 @@
1
- {"version":3,"file":"agent-guide.js","sourceRoot":"","sources":["../src/agent-guide.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,8EAA8E;AAC9E,+BAA+B;AAC/B,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;CAwBhC,CAAC"}
1
+ {"version":3,"file":"agent-guide.js","sourceRoot":"","sources":["../src/agent-guide.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,8EAA8E;AAC9E,+BAA+B;AAC/B,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;CAyBhC,CAAC"}
package/dist/client.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { AnaraClientOptions, AnaraMe, AskTask, ChatsSearchInput, CreateEntityInput, DeleteEntitiesOptions, DeleteEntitiesResult, DocumentPages, EntityEnvelope, EntityQuery, ExpandContextInput, ExtractInput, GetEntityOptions, ImageCreateInput, MapOptions, MapResult, NoteEditInput, NoteReadInput, Passage, ReadMediaInput, ReadTocInput, RerankInput, ResearchInput, ResearchResult, RetrievalInput, SearchHit, SearchInput, SpreadsheetApplyEditsInput, SpreadsheetQueryInput, StorePutResult, UpdateEntityPatch, WorkspaceQueryInput } from './types.js';
1
+ import type { AnaraClientOptions, AnaraMe, AskTask, ChatsSearchInput, CreateEntityInput, DeleteEntitiesOptions, DeleteEntitiesResult, DocumentBatchOptions, DocumentImportAllResult, DocumentImportInput, DocumentImportResult, DocumentPages, DocumentUploadAllResult, DocumentUploadInput, DocumentUploadResult, EntityEnvelope, EntityQuery, ExpandContextInput, ExtractInput, GetEntityOptions, ImageCreateInput, MapOptions, MapResult, NoteEditInput, NoteReadInput, Organization, Passage, ReadMediaInput, ReadTocInput, ReduceOptions, ReduceResult, RerankInput, RetrievalInput, SandboxAttachFilesInput, SandboxAttachFilesResult, SandboxCreateInput, SandboxCreateResult, SandboxEditFileInput, SandboxEditFileResult, SandboxFetchDocumentInput, SandboxFetchDocumentResult, SandboxListDirInput, SandboxListDirResult, SandboxReadFileInput, SandboxReadFileResult, SandboxRunShellInput, SandboxRunShellResult, SandboxStopInput, SandboxStopResult, SandboxWriteFileInput, SandboxWriteFileResult, SearchHit, SpreadsheetApplyEditsInput, SpreadsheetExportInput, SpreadsheetExportOutput, SpreadsheetQueryInput, StorePutResult, UpdateEntityPatch, WorkspaceQueryInput } from './types.js';
2
2
  /**
3
3
  * Typed client for the Anara API. Mirrors the in-product `anara.*` SDK: every
4
4
  * method is a `POST /api/v1/sdk/{method}` call whose JSON body is the method's
@@ -7,7 +7,7 @@ import type { AnaraClientOptions, AnaraMe, AskTask, ChatsSearchInput, CreateEnti
7
7
  * ```ts
8
8
  * const anara = createAnaraClient();
9
9
  * const notes = await anara.entities.query({ type: 'NOTE', limit: 50 });
10
- * const hits = await anara.search({ query: 'wooden pallet recycling' });
10
+ * const hits = await anara.retrieval.vectorSearch({ query: 'wooden pallet recycling' });
11
11
  * ```
12
12
  */
13
13
  export declare class AnaraClient {
@@ -15,6 +15,8 @@ export declare class AnaraClient {
15
15
  constructor(options?: AnaraClientOptions);
16
16
  /** The user + active workspace the API key resolves to. */
17
17
  me(): Promise<AnaraMe>;
18
+ /** A client scoped to a specific workspace you belong to. */
19
+ forOrganization(organizationId: string): AnaraClient;
18
20
  /** Call a single `anara.*` method by name (escape hatch for the typed methods). */
19
21
  invoke<T = unknown>(method: string, body?: Record<string, unknown>): Promise<T>;
20
22
  readonly entities: {
@@ -25,8 +27,6 @@ export declare class AnaraClient {
25
27
  move: (id: string, groupId: string | null) => Promise<EntityEnvelope>;
26
28
  delete: (ids: string | string[], options?: DeleteEntitiesOptions) => Promise<DeleteEntitiesResult>;
27
29
  };
28
- search(input: SearchInput): Promise<SearchHit[]>;
29
- research(input: ResearchInput): Promise<ResearchResult | ResearchResult[]>;
30
30
  readonly retrieval: {
31
31
  vectorSearch: (input: RetrievalInput) => Promise<SearchHit[]>;
32
32
  keywordSearch: (input: RetrievalInput) => Promise<SearchHit[]>;
@@ -49,9 +49,36 @@ export declare class AnaraClient {
49
49
  extract: (input: ExtractInput) => Promise<{
50
50
  items: Array<Record<string, unknown>>;
51
51
  }>;
52
+ /** Ingest a remote URL (PDF or web page) into the library. */
53
+ import: (input: DocumentImportInput) => Promise<DocumentImportResult>;
54
+ /** Ingest raw file bytes (base64 PDF) into the library. */
55
+ upload: (input: DocumentUploadInput) => Promise<DocumentUploadResult>;
56
+ /**
57
+ * Upload a whole folder's worth of files in one call. The caller enumerates
58
+ * the directory (the SDK never touches the filesystem) and passes the read
59
+ * files; uploads fan out with bounded concurrency and settle per-item, so one
60
+ * bad file is reported in its result instead of failing the batch.
61
+ *
62
+ * In Node, build `files` by reading the directory with `node:fs` —
63
+ * `readdirSync(dir)`, keep the `.pdf` entries, map each to
64
+ * `{ filename, contentBase64: readFileSync(path).toString('base64') }` — then:
65
+ *
66
+ * ```ts
67
+ * const results = await anara.documents.uploadAll(files, { folderId });
68
+ * const failed = results.filter((r) => !r.ok);
69
+ * ```
70
+ */
71
+ uploadAll: (files: DocumentUploadInput[], options?: DocumentBatchOptions & {
72
+ folderId?: string;
73
+ }) => Promise<DocumentUploadAllResult[]>;
74
+ /** Import many remote URLs into the library in one call (see uploadAll). */
75
+ importAll: (items: DocumentImportInput[], options?: DocumentBatchOptions & {
76
+ folderId?: string;
77
+ }) => Promise<DocumentImportAllResult[]>;
52
78
  };
53
79
  readonly spreadsheets: {
54
80
  query: (input: SpreadsheetQueryInput) => Promise<unknown>;
81
+ export: (input: SpreadsheetExportInput) => Promise<SpreadsheetExportOutput>;
55
82
  applyEdits: (input: SpreadsheetApplyEditsInput) => Promise<unknown>;
56
83
  };
57
84
  readonly notes: {
@@ -75,6 +102,26 @@ export declare class AnaraClient {
75
102
  readonly chats: {
76
103
  search: (input: ChatsSearchInput) => Promise<unknown>;
77
104
  };
105
+ readonly organizations: {
106
+ /** Workspaces this key can target via `forOrganization` / `organizationId`. */
107
+ list: () => Promise<Organization[]>;
108
+ };
109
+ /**
110
+ * The Daytona code sandbox — a code-interpreter over your library. Requires an
111
+ * API key minted with the opt-in `sandbox` scope. Keyed per `sandboxId`; the
112
+ * server isolates it to your user + workspace.
113
+ */
114
+ readonly sandbox: {
115
+ create: (input: SandboxCreateInput) => Promise<SandboxCreateResult>;
116
+ runShell: (input: SandboxRunShellInput) => Promise<SandboxRunShellResult>;
117
+ writeFile: (input: SandboxWriteFileInput) => Promise<SandboxWriteFileResult>;
118
+ editFile: (input: SandboxEditFileInput) => Promise<SandboxEditFileResult>;
119
+ readFile: (input: SandboxReadFileInput) => Promise<SandboxReadFileResult>;
120
+ listDir: (input: SandboxListDirInput) => Promise<SandboxListDirResult>;
121
+ attachFiles: (input: SandboxAttachFilesInput) => Promise<SandboxAttachFilesResult>;
122
+ fetchDocument: (input: SandboxFetchDocumentInput) => Promise<SandboxFetchDocumentResult>;
123
+ stop: (input: SandboxStopInput) => Promise<SandboxStopResult>;
124
+ };
78
125
  readonly store: {
79
126
  put: (value: unknown) => Promise<StorePutResult>;
80
127
  get: <T = unknown>(handle: string) => Promise<T>;
@@ -82,6 +129,7 @@ export declare class AnaraClient {
82
129
  map(items: unknown[] | string, instruction: string, options?: MapOptions): Promise<MapResult[]>;
83
130
  ask(prompt: string, instruction?: string): Promise<string>;
84
131
  askMany(tasks: AskTask[], instruction?: string): Promise<MapResult[]>;
132
+ reduce(input: unknown[] | string, query: string, options?: ReduceOptions): Promise<ReduceResult>;
85
133
  }
86
134
  export declare function createAnaraClient(options?: AnaraClientOptions): AnaraClient;
87
135
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/client.js CHANGED
@@ -12,6 +12,25 @@ function compact(body) {
12
12
  }
13
13
  return body;
14
14
  }
15
+ function errorMessage(error) {
16
+ return error instanceof Error ? error.message : String(error);
17
+ }
18
+ // Runs `fn` over `items` with at most `concurrency` in flight, preserving input
19
+ // order. `fn` settles each item itself, so the batch never rejects on one failure.
20
+ async function mapSettled(items, concurrency, fn) {
21
+ const results = [];
22
+ // Guard a bad concurrency (NaN from `Number(unsetEnv)`, 0, negative, fractional):
23
+ // `Array.from({ length: NaN })` would spawn zero workers and silently return [].
24
+ const width = Math.max(1, Math.min(Math.floor(concurrency) || 1, items.length || 1));
25
+ let cursor = 0;
26
+ const worker = async () => {
27
+ for (let i = cursor++; i < items.length; i = cursor++) {
28
+ results[i] = await fn(items[i], i);
29
+ }
30
+ };
31
+ await Promise.all(Array.from({ length: width }, () => worker()));
32
+ return results;
33
+ }
15
34
  /**
16
35
  * Typed client for the Anara API. Mirrors the in-product `anara.*` SDK: every
17
36
  * method is a `POST /api/v1/sdk/{method}` call whose JSON body is the method's
@@ -20,7 +39,7 @@ function compact(body) {
20
39
  * ```ts
21
40
  * const anara = createAnaraClient();
22
41
  * const notes = await anara.entities.query({ type: 'NOTE', limit: 50 });
23
- * const hits = await anara.search({ query: 'wooden pallet recycling' });
42
+ * const hits = await anara.retrieval.vectorSearch({ query: 'wooden pallet recycling' });
24
43
  * ```
25
44
  */
26
45
  export class AnaraClient {
@@ -39,12 +58,23 @@ export class AnaraClient {
39
58
  baseUrl: normalizeBaseUrl(options.baseUrl ?? DEFAULT_BASE_URL),
40
59
  fetch: fetchImpl,
41
60
  headers: options.headers ?? {},
61
+ organizationId: options.organizationId?.trim() || undefined,
42
62
  };
43
63
  }
44
64
  /** The user + active workspace the API key resolves to. */
45
65
  me() {
46
66
  return httpRequest(this.config, 'GET', '/api/v1/me');
47
67
  }
68
+ /** A client scoped to a specific workspace you belong to. */
69
+ forOrganization(organizationId) {
70
+ return new AnaraClient({
71
+ apiKey: this.config.apiKey,
72
+ baseUrl: this.config.baseUrl,
73
+ fetch: this.config.fetch,
74
+ headers: this.config.headers,
75
+ organizationId,
76
+ });
77
+ }
48
78
  /** Call a single `anara.*` method by name (escape hatch for the typed methods). */
49
79
  invoke(method, body = {}) {
50
80
  return httpRequest(this.config, 'POST', `/api/v1/sdk/${encodeURIComponent(method)}`, { body });
@@ -57,12 +87,6 @@ export class AnaraClient {
57
87
  move: (id, groupId) => this.invoke('entities.move', { id, groupId }),
58
88
  delete: (ids, options) => this.invoke('entities.delete', compact({ ids, ...options })),
59
89
  };
60
- search(input) {
61
- return this.invoke('search', { ...input });
62
- }
63
- research(input) {
64
- return this.invoke('research', { ...input });
65
- }
66
90
  retrieval = {
67
91
  vectorSearch: (input) => this.invoke('retrieval.vectorSearch', { ...input }),
68
92
  keywordSearch: (input) => this.invoke('retrieval.keywordSearch', { ...input }),
@@ -74,9 +98,54 @@ export class AnaraClient {
74
98
  readToc: (input) => this.invoke('documents.readToc', { ...input }),
75
99
  readMedia: (input) => this.invoke('documents.readMedia', { ...input }),
76
100
  extract: (input) => this.invoke('documents.extract', { ...input }),
101
+ /** Ingest a remote URL (PDF or web page) into the library. */
102
+ import: (input) => this.invoke('documents.import', compact({ ...input })),
103
+ /** Ingest raw file bytes (base64 PDF) into the library. */
104
+ upload: (input) => this.invoke('documents.upload', compact({ ...input })),
105
+ /**
106
+ * Upload a whole folder's worth of files in one call. The caller enumerates
107
+ * the directory (the SDK never touches the filesystem) and passes the read
108
+ * files; uploads fan out with bounded concurrency and settle per-item, so one
109
+ * bad file is reported in its result instead of failing the batch.
110
+ *
111
+ * In Node, build `files` by reading the directory with `node:fs` —
112
+ * `readdirSync(dir)`, keep the `.pdf` entries, map each to
113
+ * `{ filename, contentBase64: readFileSync(path).toString('base64') }` — then:
114
+ *
115
+ * ```ts
116
+ * const results = await anara.documents.uploadAll(files, { folderId });
117
+ * const failed = results.filter((r) => !r.ok);
118
+ * ```
119
+ */
120
+ uploadAll: (files, options) => mapSettled(files, options?.concurrency ?? 4, async (file) => {
121
+ const folderId = file.folderId ?? options?.folderId;
122
+ try {
123
+ const { documentId } = await this.documents.upload(compact({ ...file, folderId }));
124
+ return { ok: true, filename: file.filename, documentId };
125
+ }
126
+ catch (error) {
127
+ return {
128
+ ok: false,
129
+ filename: file.filename,
130
+ error: errorMessage(error),
131
+ };
132
+ }
133
+ }),
134
+ /** Import many remote URLs into the library in one call (see uploadAll). */
135
+ importAll: (items, options) => mapSettled(items, options?.concurrency ?? 4, async (item) => {
136
+ const folderId = item.folderId ?? options?.folderId;
137
+ try {
138
+ const { documentId } = await this.documents.import(compact({ ...item, folderId }));
139
+ return { ok: true, url: item.url, documentId };
140
+ }
141
+ catch (error) {
142
+ return { ok: false, url: item.url, error: errorMessage(error) };
143
+ }
144
+ }),
77
145
  };
78
146
  spreadsheets = {
79
147
  query: (input) => this.invoke('spreadsheets.query', { ...input }),
148
+ export: (input) => this.invoke('spreadsheets.export', { ...input }),
80
149
  applyEdits: (input) => this.invoke('spreadsheets.applyEdits', { ...input }),
81
150
  };
82
151
  notes = {
@@ -92,6 +161,26 @@ export class AnaraClient {
92
161
  chats = {
93
162
  search: (input) => this.invoke('chats.search', { ...input }),
94
163
  };
164
+ organizations = {
165
+ /** Workspaces this key can target via `forOrganization` / `organizationId`. */
166
+ list: () => this.invoke('organizations.list', {}),
167
+ };
168
+ /**
169
+ * The Daytona code sandbox — a code-interpreter over your library. Requires an
170
+ * API key minted with the opt-in `sandbox` scope. Keyed per `sandboxId`; the
171
+ * server isolates it to your user + workspace.
172
+ */
173
+ sandbox = {
174
+ create: (input) => this.invoke('sandbox.create', compact({ ...input })),
175
+ runShell: (input) => this.invoke('sandbox.runShell', compact({ ...input })),
176
+ writeFile: (input) => this.invoke('sandbox.writeFile', compact({ ...input })),
177
+ editFile: (input) => this.invoke('sandbox.editFile', { ...input }),
178
+ readFile: (input) => this.invoke('sandbox.readFile', compact({ ...input })),
179
+ listDir: (input) => this.invoke('sandbox.listDir', compact({ ...input })),
180
+ attachFiles: (input) => this.invoke('sandbox.attachFiles', { ...input }),
181
+ fetchDocument: (input) => this.invoke('sandbox.fetchDocument', compact({ ...input })),
182
+ stop: (input) => this.invoke('sandbox.stop', { ...input }),
183
+ };
95
184
  store = {
96
185
  put: (value) => this.invoke('store.put', { value }),
97
186
  get: (handle) => this.invoke('store.get', { handle }),
@@ -105,6 +194,9 @@ export class AnaraClient {
105
194
  askMany(tasks, instruction) {
106
195
  return this.invoke('askMany', compact({ tasks, instruction }));
107
196
  }
197
+ reduce(input, query, options) {
198
+ return this.invoke('reduce', compact({ input, query, ...options }));
199
+ }
108
200
  }
109
201
  export function createAnaraClient(options = {}) {
110
202
  return new AnaraClient(options);
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/http.d.ts CHANGED
@@ -4,6 +4,7 @@ export interface HttpConfig {
4
4
  apiKey: string;
5
5
  fetch: typeof fetch;
6
6
  headers: Record<string, string>;
7
+ organizationId?: string;
7
8
  }
8
9
  export type QueryParams = Record<string, string | number | undefined>;
9
10
  export declare function normalizeBaseUrl(baseUrl: string): string;
@@ -1 +1 @@
1
- {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,OAAO,KAAK,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,CAAC;AAEtE,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,wBAAgB,QAAQ,CACtB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE,WAAW,GAClB,MAAM,CAQR;AAiCD,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,aAAa,CAAC,CAUxB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,UAAU,EAClB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC7B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CASxB;AAED,wBAAsB,WAAW,CAAC,CAAC,EACjC,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,CAAC,CAAC,CAeZ"}
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,OAAO,KAAK,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,CAAC;AAEtE,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,wBAAgB,QAAQ,CACtB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE,WAAW,GAClB,MAAM,CAQR;AAiCD,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,aAAa,CAAC,CAUxB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,UAAU,EAClB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC7B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAkBxB;AAED,wBAAsB,WAAW,CAAC,CAAC,EACjC,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,CAAC,CAAC,CAeZ"}
package/dist/http.js CHANGED
@@ -51,12 +51,22 @@ export async function errorFromResponse(response) {
51
51
  export function requestHeaders(config, extra) {
52
52
  // Caller headers first, then the SDK-managed ones — so a stray `x-api-key` in
53
53
  // `config.headers` can never override the configured key.
54
- return {
54
+ const merged = {
55
55
  accept: 'application/json',
56
56
  ...config.headers,
57
57
  ...extra,
58
- 'x-api-key': config.apiKey,
59
58
  };
59
+ if (config.organizationId) {
60
+ // Drop any caller-supplied case-variant so the configured workspace wins
61
+ // and the request can't carry two conflicting org headers.
62
+ for (const key of Object.keys(merged)) {
63
+ if (key.toLowerCase() === 'x-anara-organization-id')
64
+ delete merged[key];
65
+ }
66
+ merged['x-anara-organization-id'] = config.organizationId;
67
+ }
68
+ merged['x-api-key'] = config.apiKey;
69
+ return merged;
60
70
  }
61
71
  export async function httpRequest(config, method, path, options = {}) {
62
72
  const headers = requestHeaders(config);
package/dist/http.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  export { AnaraClient, createAnaraClient } from './client.js';
2
2
  export { AnaraError, AnaraApiError, isAnaraError, isAnaraApiError, type AnaraErrorCode, } from './errors.js';
3
3
  export { ANARA_AGENT_GUIDE } from './agent-guide.js';
4
- export { ANARA_METHODS, WRITE_METHODS, isAnaraMethod, entityEnvelope, type AnaraMethodName, type MethodSpec, } from './schemas.js';
4
+ export { ANARA_METHODS, WRITE_METHODS, SANDBOX_METHODS, scopeForMethod, scopesForMethod, isAnaraMethod, entityEnvelope, organizationSummary, type AnaraMethodName, type MethodSpec, } from './schemas.js';
5
5
  export { buildOpenApiDocument, type OpenApiOptions } from './openapi.js';
6
- export type { AnaraClientOptions, AnaraUser, AnaraMe, EntityEnvelope, EntityQuery, GetEntityOptions, CreateEntityInput, UpdateEntityPatch, DeleteEntitiesOptions, DeleteEntitiesResult, SearchInput, SearchHit, Passage, DocumentPages, ResearchInput, ResearchResult, RetrievalInput, RerankInput, StorePutResult, MapOptions, MapResult, AskTask, ExpandContextInput, ReadTocInput, ReadMediaInput, ExtractInput, SpreadsheetQueryInput, SpreadsheetApplyEditsInput, NoteReadInput, NoteEditInput, ImageCreateInput, WorkspaceQueryInput, ChatsSearchInput, } from './types.js';
6
+ export type { AnaraClientOptions, AnaraUser, AnaraMe, Organization, EntityEnvelope, EntityQuery, GetEntityOptions, CreateEntityInput, UpdateEntityPatch, DeleteEntitiesOptions, DeleteEntitiesResult, SearchHit, Passage, DocumentPages, RetrievalInput, RerankInput, StorePutResult, MapOptions, MapResult, AskTask, ReduceOptions, ReduceResult, ExpandContextInput, ReadTocInput, ReadMediaInput, ExtractInput, DocumentImportInput, DocumentImportResult, DocumentUploadInput, DocumentUploadResult, DocumentBatchOptions, DocumentUploadAllResult, DocumentImportAllResult, SpreadsheetQueryInput, SpreadsheetExportInput, SpreadsheetExportOutput, SpreadsheetApplyEditsInput, NoteReadInput, NoteEditInput, ImageCreateInput, WorkspaceQueryInput, ChatsSearchInput, SandboxCreateInput, SandboxCreateResult, SandboxRunShellInput, SandboxRunShellResult, SandboxFile, SandboxWriteFileInput, SandboxWriteFileResult, SandboxEditFileInput, SandboxEditFileResult, SandboxReadFileInput, SandboxReadFileResult, SandboxListDirInput, SandboxListDirResult, SandboxAttachFilesInput, SandboxAttachFilesResult, SandboxFetchDocumentInput, SandboxFetchDocumentResult, SandboxStopInput, SandboxStopResult, } from './types.js';
7
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EACL,UAAU,EACV,aAAa,EACb,YAAY,EACZ,eAAe,EACf,KAAK,cAAc,GACpB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EACL,aAAa,EACb,aAAa,EACb,aAAa,EACb,cAAc,EACd,KAAK,eAAe,EACpB,KAAK,UAAU,GAChB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,oBAAoB,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AACzE,YAAY,EACV,kBAAkB,EAClB,SAAS,EACT,OAAO,EACP,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,WAAW,EACX,SAAS,EACT,OAAO,EACP,aAAa,EACb,aAAa,EACb,cAAc,EACd,cAAc,EACd,WAAW,EACX,cAAc,EACd,UAAU,EACV,SAAS,EACT,OAAO,EACP,kBAAkB,EAClB,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,qBAAqB,EACrB,0BAA0B,EAC1B,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EACL,UAAU,EACV,aAAa,EACb,YAAY,EACZ,eAAe,EACf,KAAK,cAAc,GACpB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EACL,aAAa,EACb,aAAa,EACb,eAAe,EACf,cAAc,EACd,eAAe,EACf,aAAa,EACb,cAAc,EACd,mBAAmB,EACnB,KAAK,eAAe,EACpB,KAAK,UAAU,GAChB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,oBAAoB,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AACzE,YAAY,EACV,kBAAkB,EAClB,SAAS,EACT,OAAO,EACP,YAAY,EACZ,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,SAAS,EACT,OAAO,EACP,aAAa,EACb,cAAc,EACd,WAAW,EACX,cAAc,EACd,UAAU,EACV,SAAS,EACT,OAAO,EACP,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,uBAAuB,EACvB,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,EACtB,uBAAuB,EACvB,0BAA0B,EAC1B,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,WAAW,EACX,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,uBAAuB,EACvB,wBAAwB,EACxB,yBAAyB,EACzB,0BAA0B,EAC1B,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  export { AnaraClient, createAnaraClient } from './client.js';
2
2
  export { AnaraError, AnaraApiError, isAnaraError, isAnaraApiError, } from './errors.js';
3
3
  export { ANARA_AGENT_GUIDE } from './agent-guide.js';
4
- export { ANARA_METHODS, WRITE_METHODS, isAnaraMethod, entityEnvelope, } from './schemas.js';
4
+ export { ANARA_METHODS, WRITE_METHODS, SANDBOX_METHODS, scopeForMethod, scopesForMethod, isAnaraMethod, entityEnvelope, organizationSummary, } from './schemas.js';
5
5
  export { buildOpenApiDocument } from './openapi.js';
6
6
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EACL,UAAU,EACV,aAAa,EACb,YAAY,EACZ,eAAe,GAEhB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EACL,aAAa,EACb,aAAa,EACb,aAAa,EACb,cAAc,GAGf,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,oBAAoB,EAAuB,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EACL,UAAU,EACV,aAAa,EACb,YAAY,EACZ,eAAe,GAEhB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EACL,aAAa,EACb,aAAa,EACb,eAAe,EACf,cAAc,EACd,eAAe,EACf,aAAa,EACb,cAAc,EACd,mBAAmB,GAGpB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,oBAAoB,EAAuB,MAAM,cAAc,CAAC"}
package/dist/openapi.d.ts CHANGED
@@ -29,6 +29,17 @@ export declare function buildOpenApiDocument(options?: OpenApiOptions): {
29
29
  name: string;
30
30
  };
31
31
  };
32
+ parameters: {
33
+ OrganizationId: {
34
+ name: string;
35
+ in: string;
36
+ required: boolean;
37
+ description: string;
38
+ schema: {
39
+ type: string;
40
+ };
41
+ };
42
+ };
32
43
  };
33
44
  security: {
34
45
  ApiKeyAuth: never[];
@@ -1 +1 @@
1
- {"version":3,"file":"openapi.d.ts","sourceRoot":"","sources":["../src/openapi.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAMD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,cAAmB;;;QAwC3D,KAAK;QACL,OAAO;QACP,WAAW;;;;;;QAKX,eAAe;YACb,UAAU;gBAAI,IAAI;gBAAY,EAAE;gBAAY,IAAI;;;;;;;;EAMvD"}
1
+ {"version":3,"file":"openapi.d.ts","sourceRoot":"","sources":["../src/openapi.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAMD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,cAAmB;;;QAkD3D,KAAK;QACL,OAAO;QACP,WAAW;;;;;;QAKX,eAAe;YACb,UAAU;gBAAI,IAAI;gBAAY,EAAE;gBAAY,IAAI;;;QAElD,UAAU;YACR,cAAc;gBACZ,IAAI;gBACJ,EAAE;gBACF,QAAQ;gBACR,WAAW;gBAEX,MAAM;oBAAI,IAAI;;;;;;;;;EAOvB"}
package/dist/openapi.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- import { ANARA_METHODS } from './schemas.js';
2
+ import { ANARA_METHODS, scopeForMethod, scopesForMethod, } from './schemas.js';
3
3
  function jsonSchema(schema) {
4
4
  return z.toJSONSchema(schema, { target: 'draft-2020-12', io: 'input' });
5
5
  }
@@ -17,8 +17,18 @@ export function buildOpenApiDocument(options = {}) {
17
17
  post: {
18
18
  operationId: name.replace(/\./g, '_'),
19
19
  summary: spec.summary,
20
- 'x-anara-scope': spec.write ? 'anara:write' : 'anara:read',
20
+ // Primary scope plus EVERY scope the caller must also hold (AND), so a
21
+ // method like sandbox.fetchDocument that needs both `anara:sandbox` and
22
+ // `anara:read` advertises the full requirement in the contract.
23
+ 'x-anara-scope': scopeForMethod(name),
24
+ 'x-anara-scopes': scopesForMethod(name),
21
25
  security: [{ ApiKeyAuth: [] }],
26
+ // Discovery is cross-workspace; it ignores the targeting header server-side.
27
+ ...(name === 'organizations.list'
28
+ ? {}
29
+ : {
30
+ parameters: [{ $ref: '#/components/parameters/OrganizationId' }],
31
+ }),
22
32
  requestBody: {
23
33
  required: true,
24
34
  content: {
@@ -49,14 +59,23 @@ export function buildOpenApiDocument(options = {}) {
49
59
  openapi: '3.1.0',
50
60
  info: {
51
61
  title: options.title ?? 'Anara API',
52
- version: options.version ?? '0.1.0',
53
- description: 'The anara.* SDK surface — library search, research, entities, documents, store, and RLM — over an API key.',
62
+ version: options.version ?? '0.2.0',
63
+ description: 'The anara.* SDK surface — library retrieval, entities, documents, store, and RLM — over an API key.',
54
64
  },
55
65
  ...(options.serverUrl ? { servers: [{ url: options.serverUrl }] } : {}),
56
66
  components: {
57
67
  securitySchemes: {
58
68
  ApiKeyAuth: { type: 'apiKey', in: 'header', name: 'x-api-key' },
59
69
  },
70
+ parameters: {
71
+ OrganizationId: {
72
+ name: 'X-Anara-Organization-Id',
73
+ in: 'header',
74
+ required: false,
75
+ description: 'Target a specific workspace you belong to. Defaults to your default workspace.',
76
+ schema: { type: 'string' },
77
+ },
78
+ },
60
79
  },
61
80
  security: [{ ApiKeyAuth: [] }],
62
81
  paths,
@@ -1 +1 @@
1
- {"version":3,"file":"openapi.js","sourceRoot":"","sources":["../src/openapi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAS7C,SAAS,UAAU,CAAC,MAAoB;IACtC,OAAO,CAAC,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;AAC1E,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAO,GAAmB,EAAE;IAC/D,MAAM,KAAK,GAA4B,EAAE,CAAC;IAE1C,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;QACzD,KAAK,CAAC,eAAe,IAAI,EAAE,CAAC,GAAG;YAC7B,IAAI,EAAE;gBACJ,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;gBACrC,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY;gBAC1D,QAAQ,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;gBAC9B,WAAW,EAAE;oBACX,QAAQ,EAAE,IAAI;oBACd,OAAO,EAAE;wBACP,kBAAkB,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;qBACvD;iBACF;gBACD,SAAS,EAAE;oBACT,KAAK,EAAE;wBACL,WAAW,EAAE,SAAS;wBACtB,OAAO,EAAE;4BACP,kBAAkB,EAAE;gCAClB,MAAM,EAAE,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE;oCAClC,MAAM,EAAE,eAAe;oCACvB,EAAE,EAAE,QAAQ;iCACb,CAAC;6BACH;yBACF;qBACF;oBACD,KAAK,EAAE,EAAE,WAAW,EAAE,iBAAiB,EAAE;oBACzC,KAAK,EAAE,EAAE,WAAW,EAAE,4BAA4B,EAAE;oBACpD,KAAK,EAAE,EAAE,WAAW,EAAE,4CAA4C,EAAE;oBACpE,KAAK,EAAE,EAAE,WAAW,EAAE,6CAA6C,EAAE;iBACtE;aACF;SACF,CAAC;IACJ,CAAC;IAED,OAAO;QACL,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE;YACJ,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,WAAW;YACnC,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,OAAO;YACnC,WAAW,EACT,4GAA4G;SAC/G;QACD,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvE,UAAU,EAAE;YACV,eAAe,EAAE;gBACf,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE;aAChE;SACF;QACD,QAAQ,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;QAC9B,KAAK;KACN,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"openapi.js","sourceRoot":"","sources":["../src/openapi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,aAAa,EACb,cAAc,EACd,eAAe,GAEhB,MAAM,cAAc,CAAC;AAStB,SAAS,UAAU,CAAC,MAAoB;IACtC,OAAO,CAAC,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;AAC1E,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAO,GAAmB,EAAE;IAC/D,MAAM,KAAK,GAA4B,EAAE,CAAC;IAE1C,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;QACzD,KAAK,CAAC,eAAe,IAAI,EAAE,CAAC,GAAG;YAC7B,IAAI,EAAE;gBACJ,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;gBACrC,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,uEAAuE;gBACvE,wEAAwE;gBACxE,gEAAgE;gBAChE,eAAe,EAAE,cAAc,CAAC,IAAuB,CAAC;gBACxD,gBAAgB,EAAE,eAAe,CAAC,IAAuB,CAAC;gBAC1D,QAAQ,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;gBAC9B,6EAA6E;gBAC7E,GAAG,CAAC,IAAI,KAAK,oBAAoB;oBAC/B,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC;wBACE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,wCAAwC,EAAE,CAAC;qBACjE,CAAC;gBACN,WAAW,EAAE;oBACX,QAAQ,EAAE,IAAI;oBACd,OAAO,EAAE;wBACP,kBAAkB,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;qBACvD;iBACF;gBACD,SAAS,EAAE;oBACT,KAAK,EAAE;wBACL,WAAW,EAAE,SAAS;wBACtB,OAAO,EAAE;4BACP,kBAAkB,EAAE;gCAClB,MAAM,EAAE,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE;oCAClC,MAAM,EAAE,eAAe;oCACvB,EAAE,EAAE,QAAQ;iCACb,CAAC;6BACH;yBACF;qBACF;oBACD,KAAK,EAAE,EAAE,WAAW,EAAE,iBAAiB,EAAE;oBACzC,KAAK,EAAE,EAAE,WAAW,EAAE,4BAA4B,EAAE;oBACpD,KAAK,EAAE,EAAE,WAAW,EAAE,4CAA4C,EAAE;oBACpE,KAAK,EAAE,EAAE,WAAW,EAAE,6CAA6C,EAAE;iBACtE;aACF;SACF,CAAC;IACJ,CAAC;IAED,OAAO;QACL,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE;YACJ,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,WAAW;YACnC,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,OAAO;YACnC,WAAW,EACT,qGAAqG;SACxG;QACD,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvE,UAAU,EAAE;YACV,eAAe,EAAE;gBACf,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE;aAChE;YACD,UAAU,EAAE;gBACV,cAAc,EAAE;oBACd,IAAI,EAAE,yBAAyB;oBAC/B,EAAE,EAAE,QAAQ;oBACZ,QAAQ,EAAE,KAAK;oBACf,WAAW,EACT,gFAAgF;oBAClF,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;iBAC3B;aACF;SACF;QACD,QAAQ,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;QAC9B,KAAK;KACN,CAAC;AACJ,CAAC"}