@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 +14 -7
- package/dist/agent-guide.d.ts +1 -1
- package/dist/agent-guide.d.ts.map +1 -1
- package/dist/agent-guide.js +7 -6
- package/dist/agent-guide.js.map +1 -1
- package/dist/client.d.ts +52 -4
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +99 -7
- package/dist/client.js.map +1 -1
- package/dist/http.d.ts +1 -0
- package/dist/http.d.ts.map +1 -1
- package/dist/http.js +12 -2
- package/dist/http.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/openapi.d.ts +11 -0
- package/dist/openapi.d.ts.map +1 -1
- package/dist/openapi.js +23 -4
- package/dist/openapi.js.map +1 -1
- package/dist/schemas.d.ts +281 -79
- package/dist/schemas.d.ts.map +1 -1
- package/dist/schemas.js +294 -31
- package/dist/schemas.js.map +1 -1
- package/dist/types.d.ts +59 -6
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
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 —
|
|
41
|
-
const
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
const
|
|
45
|
-
query:
|
|
46
|
-
|
|
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',
|
package/dist/agent-guide.d.ts
CHANGED
|
@@ -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.
|
|
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,
|
|
1
|
+
{"version":3,"file":"agent-guide.d.ts","sourceRoot":"","sources":["../src/agent-guide.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,iBAAiB,4sEAyB7B,CAAC"}
|
package/dist/agent-guide.js
CHANGED
|
@@ -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
|
-
|
|
11
|
-
- \`anara.
|
|
12
|
-
- \`anara.retrieval.
|
|
13
|
-
- \`anara.documents.getPages(documentId, [page])\` to read full pages.
|
|
10
|
+
Compose retrieval from the raw primitives — recall 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.
|
|
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
|
`;
|
package/dist/agent-guide.js.map
CHANGED
|
@@ -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
|
|
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,
|
|
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.
|
|
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
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,kBAAkB,EAClB,OAAO,EACP,OAAO,EACP,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,aAAa,EACb,cAAc,EACd,WAAW,EACX,kBAAkB,EAClB,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,EACV,SAAS,EACT,aAAa,EACb,aAAa,EACb,OAAO,EACP,cAAc,EACd,YAAY,EACZ,
|
|
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.
|
|
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);
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAmB,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAmB,MAAM,WAAW,CAAC;AA+D3E,MAAM,gBAAgB,GAAG,mBAAmB,CAAC;AAE7C,SAAS,SAAS;IAChB,MAAM,GAAG,GACP,UACD,CAAC,OAAO,EAAE,GAAG,CAAC;IACf,OAAO,GAAG,EAAE,aAAa,CAAC;AAC5B,CAAC;AAED,SAAS,OAAO,CAAoC,IAAO;IACzD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACpC,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC;AAED,gFAAgF;AAChF,mFAAmF;AACnF,KAAK,UAAU,UAAU,CACvB,KAAmB,EACnB,WAAmB,EACnB,EAA0C;IAE1C,MAAM,OAAO,GAAQ,EAAE,CAAC;IACxB,kFAAkF;IAClF,iFAAiF;IACjF,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CACpB,CAAC,EACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,CAC1D,CAAC;IACF,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,MAAM,MAAM,GAAG,KAAK,IAAmB,EAAE;QACvC,KAAK,IAAI,CAAC,GAAG,MAAM,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,EAAE,CAAC;YACtD,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE,CAAC,CAAC,CAAC;QACtC,CAAC;IACH,CAAC,CAAC;IACF,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACjE,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,OAAO,WAAW;IACL,MAAM,CAAa;IAEpC,YAAY,OAAO,GAAuB,EAAE;QAC1C,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;QACvD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,UAAU,CAClB,qHAAqH,CACtH,CAAC;QACJ,CAAC;QACD,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC;QACpD,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE,CAAC;YACpC,MAAM,IAAI,UAAU,CAClB,6DAA6D,CAC9D,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,MAAM,GAAG;YACZ,MAAM;YACN,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC,OAAO,IAAI,gBAAgB,CAAC;YAC9D,KAAK,EAAE,SAAS;YAChB,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE;YAC9B,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE,IAAI,EAAE,IAAI,SAAS;SAC5D,CAAC;IACJ,CAAC;IAED,2DAA2D;IAC3D,EAAE;QACA,OAAO,WAAW,CAAU,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;IAChE,CAAC;IAED,6DAA6D;IAC7D,eAAe,CAAC,cAAsB;QACpC,OAAO,IAAI,WAAW,CAAC;YACrB,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;YAC1B,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;YAC5B,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK;YACxB,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;YAC5B,cAAc;SACf,CAAC,CAAC;IACL,CAAC;IAED,mFAAmF;IACnF,MAAM,CACJ,MAAc,EACd,IAAI,GAA4B,EAAE;QAElC,OAAO,WAAW,CAChB,IAAI,CAAC,MAAM,EACX,MAAM,EACN,eAAe,kBAAkB,CAAC,MAAM,CAAC,EAAE,EAC3C,EAAE,IAAI,EAAE,CACT,CAAC;IACJ,CAAC;IAEQ,QAAQ,GAAG;QAClB,KAAK,EAAE,CAAC,KAAK,GAAgB,EAAE,EAA6B,EAAE,CAC5D,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,EAAE,GAAG,KAAK,EAAE,CAAC;QAC7C,GAAG,EAAE,CAAC,EAAU,EAAE,OAA0B,EAA2B,EAAE,CACvE,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;QAC1D,MAAM,EAAE,CAAC,KAAwB,EAA2B,EAAE,CAC5D,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,EAAE,GAAG,KAAK,EAAE,CAAC;QAC9C,MAAM,EAAE,CAAC,EAAU,EAAE,KAAwB,EAA2B,EAAE,CACxE,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;QAC3D,IAAI,EAAE,CAAC,EAAU,EAAE,OAAsB,EAA2B,EAAE,CACpE,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC;QAC/C,MAAM,EAAE,CACN,GAAsB,EACtB,OAA+B,EACA,EAAE,CACjC,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;KAC/D,CAAC;IAEO,SAAS,GAAG;QACnB,YAAY,EAAE,CAAC,KAAqB,EAAwB,EAAE,CAC5D,IAAI,CAAC,MAAM,CAAC,wBAAwB,EAAE,EAAE,GAAG,KAAK,EAAE,CAAC;QACrD,aAAa,EAAE,CAAC,KAAqB,EAAwB,EAAE,CAC7D,IAAI,CAAC,MAAM,CAAC,yBAAyB,EAAE,EAAE,GAAG,KAAK,EAAE,CAAC;QACtD,MAAM,EAAE,CAAC,KAAkB,EAAwB,EAAE,CACnD,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,EAAE,GAAG,KAAK,EAAE,CAAC;KAChD,CAAC;IAEO,SAAS,GAAG;QACnB,QAAQ,EAAE,CAAC,UAAkB,EAAE,KAAgB,EAA0B,EAAE,CACzE,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,OAAO,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;QACnE,aAAa,EAAE,CACb,KAAyB,EACS,EAAE,CACpC,IAAI,CAAC,MAAM,CAAC,yBAAyB,EAAE,EAAE,GAAG,KAAK,EAAE,CAAC;QACtD,OAAO,EAAE,CAAC,KAAmB,EAA6B,EAAE,CAC1D,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,EAAE,GAAG,KAAK,EAAE,CAAC;QAChD,SAAS,EAAE,CACT,KAAqB,EAC8C,EAAE,CACrE,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,EAAE,GAAG,KAAK,EAAE,CAAC;QAClD,OAAO,EAAE,CACP,KAAmB,EACiC,EAAE,CACtD,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,EAAE,GAAG,KAAK,EAAE,CAAC;QAChD,8DAA8D;QAC9D,MAAM,EAAE,CAAC,KAA0B,EAAiC,EAAE,CACpE,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,OAAO,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;QACxD,2DAA2D;QAC3D,MAAM,EAAE,CAAC,KAA0B,EAAiC,EAAE,CACpE,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,OAAO,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;QACxD;;;;;;;;;;;;;;WAcG;QACH,SAAS,EAAE,CACT,KAA4B,EAC5B,OAAsD,EAClB,EAAE,CACtC,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YAC1D,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,EAAE,QAAQ,CAAC;YACpD,IAAI,CAAC;gBACH,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAChD,OAAO,CAAC,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,CAAC,CAC/B,CAAC;gBACF,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,CAAC;YAC3D,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO;oBACL,EAAE,EAAE,KAAK;oBACT,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC;iBAC3B,CAAC;YACJ,CAAC;QACH,CAAC,CAAC;QACJ,4EAA4E;QAC5E,SAAS,EAAE,CACT,KAA4B,EAC5B,OAAsD,EAClB,EAAE,CACtC,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YAC1D,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,EAAE,QAAQ,CAAC;YACpD,IAAI,CAAC;gBACH,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAChD,OAAO,CAAC,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,CAAC,CAC/B,CAAC;gBACF,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,CAAC;YACjD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;YAClE,CAAC;QACH,CAAC,CAAC;KACL,CAAC;IAEO,YAAY,GAAG;QACtB,KAAK,EAAE,CAAC,KAA4B,EAAoB,EAAE,CACxD,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,EAAE,GAAG,KAAK,EAAE,CAAC;QACjD,MAAM,EAAE,CAAC,KAA6B,EAAoC,EAAE,CAC1E,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,EAAE,GAAG,KAAK,EAAE,CAAC;QAClD,UAAU,EAAE,CAAC,KAAiC,EAAoB,EAAE,CAClE,IAAI,CAAC,MAAM,CAAC,yBAAyB,EAAE,EAAE,GAAG,KAAK,EAAE,CAAC;KACvD,CAAC;IAEO,KAAK,GAAG;QACf,IAAI,EAAE,CACJ,KAAoB,EACgD,EAAE,CACtE,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,GAAG,KAAK,EAAE,CAAC;QACzC,IAAI,EAAE,CAAC,KAAoB,EAAiC,EAAE,CAC5D,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,GAAG,KAAK,EAAE,CAAC;KAC1C,CAAC;IAEO,MAAM,GAAG;QAChB,MAAM,EAAE,CAAC,KAAuB,EAA4B,EAAE,CAC5D,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,EAAE,GAAG,KAAK,EAAE,CAAC;KAC7C,CAAC;IAEO,SAAS,GAAG;QACnB,OAAO,EAAE,CAAC,KAA0B,EAAoB,EAAE,CACxD,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,EAAE,GAAG,KAAK,EAAE,CAAC;KACjD,CAAC;IAEO,KAAK,GAAG;QACf,MAAM,EAAE,CAAC,KAAuB,EAAoB,EAAE,CACpD,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,GAAG,KAAK,EAAE,CAAC;KAC5C,CAAC;IAEO,aAAa,GAAG;QACvB,+EAA+E;QAC/E,IAAI,EAAE,GAA4B,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,EAAE,CAAC;KAC3E,CAAC;IAEF;;;;OAIG;IACM,OAAO,GAAG;QACjB,MAAM,EAAE,CAAC,KAAyB,EAAgC,EAAE,CAClE,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,OAAO,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;QACtD,QAAQ,EAAE,CAAC,KAA2B,EAAkC,EAAE,CACxE,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,OAAO,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;QACxD,SAAS,EAAE,CACT,KAA4B,EACK,EAAE,CACnC,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,OAAO,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;QACzD,QAAQ,EAAE,CAAC,KAA2B,EAAkC,EAAE,CACxE,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,EAAE,GAAG,KAAK,EAAE,CAAC;QAC/C,QAAQ,EAAE,CAAC,KAA2B,EAAkC,EAAE,CACxE,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,OAAO,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;QACxD,OAAO,EAAE,CAAC,KAA0B,EAAiC,EAAE,CACrE,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,OAAO,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;QACvD,WAAW,EAAE,CACX,KAA8B,EACK,EAAE,CACrC,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,EAAE,GAAG,KAAK,EAAE,CAAC;QAClD,aAAa,EAAE,CACb,KAAgC,EACK,EAAE,CACvC,IAAI,CAAC,MAAM,CAAC,uBAAuB,EAAE,OAAO,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;QAC7D,IAAI,EAAE,CAAC,KAAuB,EAA8B,EAAE,CAC5D,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,GAAG,KAAK,EAAE,CAAC;KAC5C,CAAC;IAEO,KAAK,GAAG;QACf,GAAG,EAAE,CAAC,KAAc,EAA2B,EAAE,CAC/C,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,CAAC;QACrC,GAAG,EAAE,CAAc,MAAc,EAAc,EAAE,CAC/C,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,CAAC;KACvC,CAAC;IAEF,GAAG,CACD,KAAyB,EACzB,WAAmB,EACnB,OAAoB;QAEpB,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,CAAC;IACzE,CAAC;IAED,GAAG,CAAC,MAAc,EAAE,WAAoB;QACtC,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,OAAO,CAAC,KAAgB,EAAE,WAAoB;QAC5C,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,CACJ,KAAyB,EACzB,KAAa,EACb,OAAuB;QAEvB,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,CAAC;IACtE,CAAC;CACF;AAED,MAAM,UAAU,iBAAiB,CAC/B,OAAO,GAAuB,EAAE;IAEhC,OAAO,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;AAClC,CAAC"}
|
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;
|
package/dist/http.d.ts.map
CHANGED
|
@@ -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;
|
|
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
|
-
|
|
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":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;
|
|
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,
|
|
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
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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,
|
|
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,
|
|
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[];
|
package/dist/openapi.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openapi.d.ts","sourceRoot":"","sources":["../src/openapi.ts"],"names":[],"mappings":"
|
|
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
|
-
|
|
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.
|
|
53
|
-
description: 'The anara.* SDK surface — library
|
|
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,
|
package/dist/openapi.js.map
CHANGED
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"openapi.js","sourceRoot":"","sources":["../src/openapi.ts"],"names":[],"mappings":"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"}
|