@arbidocs/sdk 0.3.16 → 0.3.18

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.
@@ -1,2 +1,2 @@
1
- export { f as AgentStepEvent, g as Arbi, h as ArbiApiError, i as ArbiError, j as ArbiOptions, k as ArtifactEvent, l as AuthContext, A as AuthHeaders, m as AuthenticatedClient, c as ChatSession, a as CliConfig, b as CliCredentials, C as ConfigStore, n as ConnectOptions, L as LIFECYCLE_LABELS, p as MessageMetadataPayload, q as MessageQueuedEvent, O as OutputTokensDetails, Q as QueryOptions, R as ReconnectOptions, r as ReconnectableWsConnection, s as ResponseCompletedEvent, t as ResponseContentPartAddedEvent, u as ResponseCreatedEvent, v as ResponseFailedEvent, w as ResponseOutputItemAddedEvent, x as ResponseOutputItemDoneEvent, y as ResponseOutputTextDeltaEvent, z as ResponseOutputTextDoneEvent, B as ResponseUsage, S as SSEEvent, E as SSEStreamCallbacks, G as SSEStreamResult, H as SSEStreamStartData, T as TOOL_LABELS, I as UserInfo, J as UserInputRequestEvent, K as UserMessageEvent, W as WorkspaceContext, N as WsConnection, P as agentconfig, V as assistant, X as authenticatedFetch, Y as buildRetrievalChunkTool, Z as buildRetrievalFullContextTool, _ as buildRetrievalTocTool, $ as connectWebSocket, a0 as connectWithReconnect, a1 as consumeSSEStream, a2 as contacts, a3 as conversations, a4 as createAuthenticatedClient, a6 as dm, a7 as doctags, a8 as documents, a9 as files, aa as formatAgentStepLabel, ab as formatFileSize, ac as formatUserName, ad as formatWorkspaceChoices, ah as getErrorMessage, ai as health, aj as parseSSEEvents, ak as performPasswordLogin, al as requireData, am as requireOk, an as resolveAuth, ao as resolveWorkspace, ap as responses, aq as selectWorkspace, ar as selectWorkspaceById, as as settings, at as streamSSE, au as tags, av as workspaces } from './browser-DFRwcoc1.cjs';
1
+ export { f as AgentStepEvent, g as Arbi, h as ArbiApiError, i as ArbiError, j as ArbiOptions, k as ArtifactEvent, l as AuthContext, A as AuthHeaders, m as AuthenticatedClient, c as ChatSession, n as CitationSummary, a as CliConfig, b as CliCredentials, C as ConfigStore, o as ConnectOptions, L as LIFECYCLE_LABELS, q as MessageMetadataPayload, r as MessageQueuedEvent, O as OutputTokensDetails, Q as QueryOptions, R as ReconnectOptions, s as ReconnectableWsConnection, t as ResolvedCitation, u as ResponseCompletedEvent, v as ResponseContentPartAddedEvent, w as ResponseCreatedEvent, x as ResponseFailedEvent, y as ResponseOutputItemAddedEvent, z as ResponseOutputItemDoneEvent, B as ResponseOutputTextDeltaEvent, E as ResponseOutputTextDoneEvent, G as ResponseUsage, S as SSEEvent, H as SSEStreamCallbacks, I as SSEStreamResult, J as SSEStreamStartData, T as TOOL_LABELS, K as UserInfo, N as UserInputRequestEvent, P as UserMessageEvent, W as WorkspaceContext, V as WsConnection, X as agentconfig, Y as assistant, Z as authenticatedFetch, _ as buildRetrievalChunkTool, $ as buildRetrievalFullContextTool, a0 as buildRetrievalTocTool, a1 as connectWebSocket, a2 as connectWithReconnect, a3 as consumeSSEStream, a4 as contacts, a5 as conversations, a6 as countCitations, a7 as createAuthenticatedClient, a9 as dm, aa as doctags, ab as documents, ac as files, ad as formatAgentStepLabel, ae as formatFileSize, ag as formatUserName, ah as formatWorkspaceChoices, al as getErrorMessage, am as health, an as parseSSEEvents, ao as performPasswordLogin, aq as requireData, ar as requireOk, as as resolveAuth, at as resolveCitations, au as resolveWorkspace, av as responses, aw as selectWorkspace, ax as selectWorkspaceById, ay as settings, az as streamSSE, aA as stripCitationMarkdown, aB as summarizeCitations, aC as tags, aD as workspaces } from './browser-DUQ3Eyvd.cjs';
2
2
  import '@arbidocs/client';
package/dist/browser.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export { f as AgentStepEvent, g as Arbi, h as ArbiApiError, i as ArbiError, j as ArbiOptions, k as ArtifactEvent, l as AuthContext, A as AuthHeaders, m as AuthenticatedClient, c as ChatSession, a as CliConfig, b as CliCredentials, C as ConfigStore, n as ConnectOptions, L as LIFECYCLE_LABELS, p as MessageMetadataPayload, q as MessageQueuedEvent, O as OutputTokensDetails, Q as QueryOptions, R as ReconnectOptions, r as ReconnectableWsConnection, s as ResponseCompletedEvent, t as ResponseContentPartAddedEvent, u as ResponseCreatedEvent, v as ResponseFailedEvent, w as ResponseOutputItemAddedEvent, x as ResponseOutputItemDoneEvent, y as ResponseOutputTextDeltaEvent, z as ResponseOutputTextDoneEvent, B as ResponseUsage, S as SSEEvent, E as SSEStreamCallbacks, G as SSEStreamResult, H as SSEStreamStartData, T as TOOL_LABELS, I as UserInfo, J as UserInputRequestEvent, K as UserMessageEvent, W as WorkspaceContext, N as WsConnection, P as agentconfig, V as assistant, X as authenticatedFetch, Y as buildRetrievalChunkTool, Z as buildRetrievalFullContextTool, _ as buildRetrievalTocTool, $ as connectWebSocket, a0 as connectWithReconnect, a1 as consumeSSEStream, a2 as contacts, a3 as conversations, a4 as createAuthenticatedClient, a6 as dm, a7 as doctags, a8 as documents, a9 as files, aa as formatAgentStepLabel, ab as formatFileSize, ac as formatUserName, ad as formatWorkspaceChoices, ah as getErrorMessage, ai as health, aj as parseSSEEvents, ak as performPasswordLogin, al as requireData, am as requireOk, an as resolveAuth, ao as resolveWorkspace, ap as responses, aq as selectWorkspace, ar as selectWorkspaceById, as as settings, at as streamSSE, au as tags, av as workspaces } from './browser-DFRwcoc1.js';
1
+ export { f as AgentStepEvent, g as Arbi, h as ArbiApiError, i as ArbiError, j as ArbiOptions, k as ArtifactEvent, l as AuthContext, A as AuthHeaders, m as AuthenticatedClient, c as ChatSession, n as CitationSummary, a as CliConfig, b as CliCredentials, C as ConfigStore, o as ConnectOptions, L as LIFECYCLE_LABELS, q as MessageMetadataPayload, r as MessageQueuedEvent, O as OutputTokensDetails, Q as QueryOptions, R as ReconnectOptions, s as ReconnectableWsConnection, t as ResolvedCitation, u as ResponseCompletedEvent, v as ResponseContentPartAddedEvent, w as ResponseCreatedEvent, x as ResponseFailedEvent, y as ResponseOutputItemAddedEvent, z as ResponseOutputItemDoneEvent, B as ResponseOutputTextDeltaEvent, E as ResponseOutputTextDoneEvent, G as ResponseUsage, S as SSEEvent, H as SSEStreamCallbacks, I as SSEStreamResult, J as SSEStreamStartData, T as TOOL_LABELS, K as UserInfo, N as UserInputRequestEvent, P as UserMessageEvent, W as WorkspaceContext, V as WsConnection, X as agentconfig, Y as assistant, Z as authenticatedFetch, _ as buildRetrievalChunkTool, $ as buildRetrievalFullContextTool, a0 as buildRetrievalTocTool, a1 as connectWebSocket, a2 as connectWithReconnect, a3 as consumeSSEStream, a4 as contacts, a5 as conversations, a6 as countCitations, a7 as createAuthenticatedClient, a9 as dm, aa as doctags, ab as documents, ac as files, ad as formatAgentStepLabel, ae as formatFileSize, ag as formatUserName, ah as formatWorkspaceChoices, al as getErrorMessage, am as health, an as parseSSEEvents, ao as performPasswordLogin, aq as requireData, ar as requireOk, as as resolveAuth, at as resolveCitations, au as resolveWorkspace, av as responses, aw as selectWorkspace, ax as selectWorkspaceById, ay as settings, az as streamSSE, aA as stripCitationMarkdown, aB as summarizeCitations, aC as tags, aD as workspaces } from './browser-DUQ3Eyvd.js';
2
2
  import '@arbidocs/client';
package/dist/browser.js CHANGED
@@ -96,6 +96,8 @@ async function authenticatedFetch(options) {
96
96
  }
97
97
  return res;
98
98
  }
99
+
100
+ // src/auth.ts
99
101
  function formatWorkspaceChoices(wsList) {
100
102
  return wsList.map((ws) => {
101
103
  const totalDocs = ws.shared_document_count + ws.private_document_count;
@@ -116,7 +118,8 @@ async function createAuthenticatedClient(config, creds, store) {
116
118
  const signingPrivateKey = base64ToBytes(creds.signingPrivateKeyBase64);
117
119
  const loginResult = await arbi.auth.loginWithKey({
118
120
  email: creds.email,
119
- signingPrivateKey
121
+ signingPrivateKey,
122
+ ssoToken: creds.ssoToken
120
123
  });
121
124
  store.saveCredentials({
122
125
  ...creds,
@@ -580,6 +583,66 @@ function formatUserName(user) {
580
583
  return [user.given_name, user.family_name].filter(Boolean).join(" ");
581
584
  }
582
585
 
586
+ // src/citations.ts
587
+ function resolveCitations(metadata) {
588
+ if (!metadata?.tools) return [];
589
+ const tools = metadata.tools;
590
+ const modelCitations = tools.model_citations;
591
+ const citationMap = modelCitations?.tool_responses;
592
+ if (!citationMap || Object.keys(citationMap).length === 0) return [];
593
+ const chunkLookup = buildChunkLookup(tools);
594
+ const resolved = [];
595
+ for (const [citationNum, citationData] of Object.entries(citationMap)) {
596
+ const chunks = [];
597
+ for (const chunkId of citationData.chunk_ids ?? []) {
598
+ const chunk = chunkLookup.get(chunkId);
599
+ if (chunk) chunks.push(chunk);
600
+ }
601
+ resolved.push({ citationNum, citationData, chunks });
602
+ }
603
+ resolved.sort((a, b) => Number(a.citationNum) - Number(b.citationNum));
604
+ return resolved;
605
+ }
606
+ function summarizeCitations(resolved) {
607
+ return resolved.map((r) => {
608
+ const firstChunk = r.chunks[0];
609
+ return {
610
+ citationNum: r.citationNum,
611
+ statement: r.citationData.statement ?? "",
612
+ docTitle: firstChunk?.metadata?.doc_title ?? "Unknown document",
613
+ pageNumber: firstChunk?.metadata?.page_number ?? null,
614
+ chunkCount: r.chunks.length
615
+ };
616
+ });
617
+ }
618
+ function countCitations(metadata) {
619
+ if (!metadata?.tools) return 0;
620
+ const tools = metadata.tools;
621
+ const modelCitations = tools.model_citations;
622
+ const responses = modelCitations?.tool_responses;
623
+ return responses ? Object.keys(responses).length : 0;
624
+ }
625
+ function stripCitationMarkdown(text) {
626
+ return text.replace(/\[([^\]]+)\]\(#cite-(\d+)\)/g, "$1[$2]");
627
+ }
628
+ function buildChunkLookup(tools) {
629
+ const lookup = /* @__PURE__ */ new Map();
630
+ for (const toolName of ["retrieval_chunk", "retrieval_full_context"]) {
631
+ const tool = tools[toolName];
632
+ if (!tool?.tool_responses) continue;
633
+ for (const chunks of Object.values(tool.tool_responses)) {
634
+ if (!Array.isArray(chunks)) continue;
635
+ for (const chunk of chunks) {
636
+ const id = chunk.metadata?.chunk_ext_id;
637
+ if (id && !lookup.has(id)) {
638
+ lookup.set(id, chunk);
639
+ }
640
+ }
641
+ }
642
+ }
643
+ return lookup;
644
+ }
645
+
583
646
  // src/operations/documents.ts
584
647
  var documents_exports = {};
585
648
  __export(documents_exports, {
@@ -1277,6 +1340,19 @@ var Arbi = class {
1277
1340
  lr.serverSessionKey,
1278
1341
  signingPrivateKeyBase64
1279
1342
  );
1343
+ const workspaceKeyHeader = client.session.getWorkspaceKeyHeader();
1344
+ if (workspaceKeyHeader) {
1345
+ const { data: openResult, error: openError } = await client.fetch.POST(
1346
+ "/v1/workspace/{workspace_ext_id}/open",
1347
+ {
1348
+ params: { path: { workspace_ext_id: ws.external_id } },
1349
+ body: { workspace_key: workspaceKeyHeader }
1350
+ }
1351
+ );
1352
+ if (!openError && openResult?.access_token) {
1353
+ client.session.setAccessToken(openResult.access_token);
1354
+ }
1355
+ }
1280
1356
  this.currentWorkspaceId = ws.external_id;
1281
1357
  }
1282
1358
  /** Log out and clear internal state. */
@@ -1561,6 +1637,6 @@ function extractResponseText(response) {
1561
1637
  return parts.join("");
1562
1638
  }
1563
1639
 
1564
- export { Arbi, ArbiApiError, ArbiError, LIFECYCLE_LABELS, TOOL_LABELS, agentconfig_exports as agentconfig, assistant_exports as assistant, authenticatedFetch, buildRetrievalChunkTool, buildRetrievalFullContextTool, buildRetrievalTocTool, connectWebSocket, connectWithReconnect, consumeSSEStream, contacts_exports as contacts, conversations_exports as conversations, createAuthenticatedClient, dm_exports as dm, doctags_exports as doctags, documents_exports as documents, files_exports as files, formatAgentStepLabel, formatFileSize, formatUserName, formatWorkspaceChoices, getErrorMessage, health_exports as health, parseSSEEvents, performPasswordLogin, requireData, requireOk, resolveAuth, resolveWorkspace, responses_exports as responses, selectWorkspace, selectWorkspaceById, settings_exports as settings, streamSSE, tags_exports as tags, workspaces_exports as workspaces };
1640
+ export { Arbi, ArbiApiError, ArbiError, LIFECYCLE_LABELS, TOOL_LABELS, agentconfig_exports as agentconfig, assistant_exports as assistant, authenticatedFetch, buildRetrievalChunkTool, buildRetrievalFullContextTool, buildRetrievalTocTool, connectWebSocket, connectWithReconnect, consumeSSEStream, contacts_exports as contacts, conversations_exports as conversations, countCitations, createAuthenticatedClient, dm_exports as dm, doctags_exports as doctags, documents_exports as documents, files_exports as files, formatAgentStepLabel, formatFileSize, formatUserName, formatWorkspaceChoices, getErrorMessage, health_exports as health, parseSSEEvents, performPasswordLogin, requireData, requireOk, resolveAuth, resolveCitations, resolveWorkspace, responses_exports as responses, selectWorkspace, selectWorkspaceById, settings_exports as settings, streamSSE, stripCitationMarkdown, summarizeCitations, tags_exports as tags, workspaces_exports as workspaces };
1565
1641
  //# sourceMappingURL=browser.js.map
1566
1642
  //# sourceMappingURL=browser.js.map