@arbidocs/client 0.3.59 → 0.3.61

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -534,6 +534,83 @@ interface paths {
534
534
  patch?: never;
535
535
  trace?: never;
536
536
  };
537
+ '/v1/user/profile': {
538
+ parameters: {
539
+ query?: never;
540
+ header?: never;
541
+ path?: never;
542
+ cookie?: never;
543
+ };
544
+ get?: never;
545
+ put?: never;
546
+ post?: never;
547
+ delete?: never;
548
+ options?: never;
549
+ head?: never;
550
+ /**
551
+ * Update Profile
552
+ * @description Update user's display profile (given_name, family_name, picture).
553
+ *
554
+ * Pass an empty string to clear family_name or picture; null means "leave unchanged".
555
+ */
556
+ patch: operations['update_profile'];
557
+ trace?: never;
558
+ };
559
+ '/v1/user/request-email-change': {
560
+ parameters: {
561
+ query?: never;
562
+ header?: never;
563
+ path?: never;
564
+ cookie?: never;
565
+ };
566
+ get?: never;
567
+ put?: never;
568
+ /**
569
+ * Request Email Change
570
+ * @description Send a verification code to the new email address.
571
+ *
572
+ * SSO users cannot change their email here — Auth0 with account linking
573
+ * makes the semantics ambiguous (which linked identity? what about social
574
+ * providers that own the email upstream?). They change it at their IdP and
575
+ * /sso-status syncs it on next login.
576
+ *
577
+ * The code is generated deterministically from (new_email, current_user.external_id)
578
+ * so that only this user can complete the change.
579
+ */
580
+ post: operations['request_email_change'];
581
+ delete?: never;
582
+ options?: never;
583
+ head?: never;
584
+ patch?: never;
585
+ trace?: never;
586
+ };
587
+ '/v1/user/confirm-email-change': {
588
+ parameters: {
589
+ query?: never;
590
+ header?: never;
591
+ path?: never;
592
+ cookie?: never;
593
+ };
594
+ get?: never;
595
+ put?: never;
596
+ /**
597
+ * Confirm Email Change
598
+ * @description Confirm email change with verification code.
599
+ *
600
+ * Verifies the 3-word code, then atomically updates:
601
+ * 1. users.email
602
+ * 2. contacts.contact_email (all references to old email)
603
+ * 3. Stripe customer email (fire-and-forget)
604
+ *
605
+ * SSO users are blocked — see /request-email-change for rationale.
606
+ */
607
+ post: operations['confirm_email_change'];
608
+ delete?: never;
609
+ options?: never;
610
+ head?: never;
611
+ patch?: never;
612
+ trace?: never;
613
+ };
537
614
  '/v1/user/settings': {
538
615
  parameters: {
539
616
  query?: never;
@@ -2128,8 +2205,8 @@ interface components {
2128
2205
  AGENT_API_TYPE: 'local' | 'remote';
2129
2206
  /**
2130
2207
  * Llm Agent Temperature
2131
- * @description Temperature value for agent LLM.
2132
- * @default 1
2208
+ * @description Temperature value for agent LLM. 0.6 matches the value recommended upstream for Qwen3-27B-AWQ-INT4 with thinking enabled. Higher values (we used to default to 1.0) cause the model to drift from the canonical tool-call grammar under complex agent contexts, producing malformed XML / JSON that vLLM's tool-call parser cannot extract — measured 20% tool-call success at temp=1.0 vs 100% at temp=0.6 on the same 20-run hard-tool-required test.
2209
+ * @default 0.6
2133
2210
  */
2134
2211
  LLM_AGENT_TEMPERATURE: number;
2135
2212
  /**
@@ -2190,6 +2267,10 @@ interface components {
2190
2267
  * - Numbering for sequential steps or prioritized items
2191
2268
  * - Bold text for critical conclusions or decision points
2192
2269
  *
2270
+ * TOOL CALLING:
2271
+ * - Always invoke tools using the tool-calling mechanism. NEVER write text that describes or simulates a tool call (e.g. never write "Searching for X...", "Reading document Y...", "Calling search_inside_documents" as prose — actually call the tool).
2272
+ * - If you intend to search or read, issue the tool call immediately. Do not narrate your intent first.
2273
+ *
2193
2274
  * EFFICIENCY:
2194
2275
  * 1. Before each step, review the results of prior steps. Adapt your approach based on what you learned — if a call was rejected or returned poor results, adjust your strategy.
2195
2276
  * 2. Call multiple tools in parallel when a query has several aspects.
@@ -2257,13 +2338,13 @@ interface components {
2257
2338
  * "PERSONA": "You are ARBI, an AI assistant created by ARBI CITY. Be proactive, helpful and professional.",
2258
2339
  * "AGENT_MODEL_NAME": "auto",
2259
2340
  * "AGENT_API_TYPE": "remote",
2260
- * "LLM_AGENT_TEMPERATURE": 1,
2341
+ * "LLM_AGENT_TEMPERATURE": 0.6,
2261
2342
  * "AGENT_MAX_TOKENS": 10000,
2262
2343
  * "ENABLE_THINKING": false,
2263
2344
  * "AGENT_MAX_ITERATIONS": 20,
2264
2345
  * "AGENT_MAX_PARALLEL_TOOL_CALLS": 10,
2265
2346
  * "AGENT_HISTORY_CHAR_THRESHOLD": 8000,
2266
- * "AGENT_SYSTEM_PROMPT": "Answer any question the user asks. You have access to workspace documents — use them when relevant. When no documents are relevant, answer from your own knowledge. Always provide a helpful answer.\n\nIMPORTANT: Never say \"I don't have information in the available documents\" or refuse to answer. If documents are not relevant, just answer the question directly from your own knowledge. If the user asks about a specific workspace document, call read_document or get_table_of_contents — never answer from memory.\n\nWhen using documents, retrieve actual document content — do not rely on metadata or headings alone. Cross-check information across sources. Not all assertions in sources are factual — some are arguments by a party. Attribute claims to their source where parties disagree.\n\nDOCUMENT INDEX:\nThe \"Workspace Documents\" table in your system prompt already lists every document with its Id, Title, Date, Pages, and Subject. Use this table directly when the user asks to list, catalogue, or tabulate documents — do NOT call any tools for that. Only use tools when you need to read or search document content.\n\nDOCUMENT STRATEGY:\n- For listing/cataloguing documents: use the document index already in your prompt — no tool calls needed.\n- For overview/summary requests: use get_table_of_contents first, then read key sections with read_document.\n- For specific questions: use search_inside_documents to find relevant sections, then read those sections with read_document.\n- For translation, deep analysis, or detailed summaries of a single document: use read_document with no ranges to load the complete text.\n- For extracting structured findings from passages: use read_document with digest=true or search_inside_documents with digest=true.\n- Never search for meta-queries like \"summary\", \"overview\", or \"all documents\" — search for the actual subject matter.\n\nFORMATTING:\n- Start your answer directly with the content — never open with a description of what you searched for or read (e.g. never write \"Searching for X\", \"Reading Y\", \"I found Z documents\" as the first lines of an answer).\n- Use markdown: headings, bold, bullet points, numbered lists\n- Main conclusion first, followed by supporting points\n- Bullet points for lists of discrete items\n- Numbering for sequential steps or prioritized items\n- Bold text for critical conclusions or decision points\n\nEFFICIENCY:\n1. Before each step, review the results of prior steps. Adapt your approach based on what you learned — if a call was rejected or returned poor results, adjust your strategy.\n2. Call multiple tools in parallel when a query has several aspects.\n3. NEVER repeat a tool call with the same arguments.\n4. Use targeted queries and narrow page ranges per retrieval call.\n5. Stop when you have sufficient evidence — do not over-research."
2347
+ * "AGENT_SYSTEM_PROMPT": "Answer any question the user asks. You have access to workspace documents — use them when relevant. When no documents are relevant, answer from your own knowledge. Always provide a helpful answer.\n\nIMPORTANT: Never say \"I don't have information in the available documents\" or refuse to answer. If documents are not relevant, just answer the question directly from your own knowledge. If the user asks about a specific workspace document, call read_document or get_table_of_contents — never answer from memory.\n\nWhen using documents, retrieve actual document content — do not rely on metadata or headings alone. Cross-check information across sources. Not all assertions in sources are factual — some are arguments by a party. Attribute claims to their source where parties disagree.\n\nDOCUMENT INDEX:\nThe \"Workspace Documents\" table in your system prompt already lists every document with its Id, Title, Date, Pages, and Subject. Use this table directly when the user asks to list, catalogue, or tabulate documents — do NOT call any tools for that. Only use tools when you need to read or search document content.\n\nDOCUMENT STRATEGY:\n- For listing/cataloguing documents: use the document index already in your prompt — no tool calls needed.\n- For overview/summary requests: use get_table_of_contents first, then read key sections with read_document.\n- For specific questions: use search_inside_documents to find relevant sections, then read those sections with read_document.\n- For translation, deep analysis, or detailed summaries of a single document: use read_document with no ranges to load the complete text.\n- For extracting structured findings from passages: use read_document with digest=true or search_inside_documents with digest=true.\n- Never search for meta-queries like \"summary\", \"overview\", or \"all documents\" — search for the actual subject matter.\n\nFORMATTING:\n- Start your answer directly with the content — never open with a description of what you searched for or read (e.g. never write \"Searching for X\", \"Reading Y\", \"I found Z documents\" as the first lines of an answer).\n- Use markdown: headings, bold, bullet points, numbered lists\n- Main conclusion first, followed by supporting points\n- Bullet points for lists of discrete items\n- Numbering for sequential steps or prioritized items\n- Bold text for critical conclusions or decision points\n\nTOOL CALLING:\n- Always invoke tools using the tool-calling mechanism. NEVER write text that describes or simulates a tool call (e.g. never write \"Searching for X...\", \"Reading document Y...\", \"Calling search_inside_documents\" as prose — actually call the tool).\n- If you intend to search or read, issue the tool call immediately. Do not narrate your intent first.\n\nEFFICIENCY:\n1. Before each step, review the results of prior steps. Adapt your approach based on what you learned — if a call was rejected or returned poor results, adjust your strategy.\n2. Call multiple tools in parallel when a query has several aspects.\n3. NEVER repeat a tool call with the same arguments.\n4. Use targeted queries and narrow page ranges per retrieval call.\n5. Stop when you have sufficient evidence — do not over-research."
2267
2348
  * }
2268
2349
  */
2269
2350
  Agents: components['schemas']['AgentsConfig'];
@@ -3071,6 +3152,23 @@ interface components {
3071
3152
  /** Confirm Email */
3072
3153
  confirm_email: string;
3073
3154
  };
3155
+ /** ConfirmEmailChangeRequest */
3156
+ ConfirmEmailChangeRequest: {
3157
+ /**
3158
+ * New Email
3159
+ * Format: email
3160
+ */
3161
+ new_email: string;
3162
+ /** Verification Code */
3163
+ verification_code: string;
3164
+ };
3165
+ /** ConfirmEmailChangeResponse */
3166
+ ConfirmEmailChangeResponse: {
3167
+ /** Detail */
3168
+ detail: string;
3169
+ /** Email */
3170
+ email: string;
3171
+ };
3074
3172
  /**
3075
3173
  * ConnectionClosedMessage
3076
3174
  * @description Sent when connection is closed (e.g., another tab opened).
@@ -3469,6 +3567,8 @@ interface components {
3469
3567
  status?: string | null;
3470
3568
  /** Error Message */
3471
3569
  error_message?: string | null;
3570
+ /** Failed Stage */
3571
+ failed_stage?: string | null;
3472
3572
  /** N Pages */
3473
3573
  n_pages?: number | null;
3474
3574
  /** N Chunks */
@@ -5404,6 +5504,19 @@ interface components {
5404
5504
  /** Users */
5405
5505
  users: components['schemas']['RemoveWorkspaceUserItem'][];
5406
5506
  };
5507
+ /** RequestEmailChangeRequest */
5508
+ RequestEmailChangeRequest: {
5509
+ /**
5510
+ * New Email
5511
+ * Format: email
5512
+ */
5513
+ new_email: string;
5514
+ };
5515
+ /** RequestEmailChangeResponse */
5516
+ RequestEmailChangeResponse: {
5517
+ /** Detail */
5518
+ detail: string;
5519
+ };
5407
5520
  /**
5408
5521
  * RerankerConfig
5409
5522
  * @description Wire/storage shape for reranker settings.
@@ -6765,6 +6878,8 @@ interface components {
6765
6878
  status: 'uploading' | 'queued' | 'parsing' | 'encrypting' | 'indexing' | 'analysing' | 'completed' | 'failed' | 'skipped' | 'empty' | 'low-content';
6766
6879
  /** Progress */
6767
6880
  progress: number;
6881
+ /** Failed Stage */
6882
+ failed_stage?: string | null;
6768
6883
  };
6769
6884
  /** Thread */
6770
6885
  Thread: {
@@ -7021,6 +7136,26 @@ interface components {
7021
7136
  /** Updates */
7022
7137
  updates: components['schemas']['NotificationUpdate'][];
7023
7138
  };
7139
+ /** UpdateProfileRequest */
7140
+ UpdateProfileRequest: {
7141
+ /** Given Name */
7142
+ given_name?: string | null;
7143
+ /** Family Name */
7144
+ family_name?: string | null;
7145
+ /** Picture */
7146
+ picture?: string | null;
7147
+ };
7148
+ /** UpdateProfileResponse */
7149
+ UpdateProfileResponse: {
7150
+ /** Given Name */
7151
+ given_name: string;
7152
+ /** Family Name */
7153
+ family_name?: string | null;
7154
+ /** Email */
7155
+ email: string;
7156
+ /** Picture */
7157
+ picture?: string | null;
7158
+ };
7024
7159
  /** UpdateTagRequest */
7025
7160
  UpdateTagRequest: {
7026
7161
  /** Name */
@@ -7252,6 +7387,11 @@ interface components {
7252
7387
  picture?: string | null;
7253
7388
  /** Encryption Public Key */
7254
7389
  encryption_public_key: string;
7390
+ /**
7391
+ * Is Sso
7392
+ * @default false
7393
+ */
7394
+ is_sso: boolean;
7255
7395
  };
7256
7396
  /**
7257
7397
  * UserSettingsResponse
@@ -7619,6 +7759,11 @@ interface components {
7619
7759
  updated_at: string;
7620
7760
  /** Wrapped Key */
7621
7761
  wrapped_key?: string | null;
7762
+ /**
7763
+ * Is Member
7764
+ * @default false
7765
+ */
7766
+ is_member: boolean;
7622
7767
  /**
7623
7768
  * Shared Conversation Count
7624
7769
  * @default 0
@@ -8517,6 +8662,105 @@ interface operations {
8517
8662
  };
8518
8663
  };
8519
8664
  };
8665
+ update_profile: {
8666
+ parameters: {
8667
+ query?: never;
8668
+ header?: never;
8669
+ path?: never;
8670
+ cookie?: never;
8671
+ };
8672
+ requestBody: {
8673
+ content: {
8674
+ 'application/json': components['schemas']['UpdateProfileRequest'];
8675
+ };
8676
+ };
8677
+ responses: {
8678
+ /** @description Successful Response */
8679
+ 200: {
8680
+ headers: {
8681
+ [name: string]: unknown;
8682
+ };
8683
+ content: {
8684
+ 'application/json': components['schemas']['UpdateProfileResponse'];
8685
+ };
8686
+ };
8687
+ /** @description Validation Error */
8688
+ 422: {
8689
+ headers: {
8690
+ [name: string]: unknown;
8691
+ };
8692
+ content: {
8693
+ 'application/json': components['schemas']['HTTPValidationError'];
8694
+ };
8695
+ };
8696
+ };
8697
+ };
8698
+ request_email_change: {
8699
+ parameters: {
8700
+ query?: never;
8701
+ header?: never;
8702
+ path?: never;
8703
+ cookie?: never;
8704
+ };
8705
+ requestBody: {
8706
+ content: {
8707
+ 'application/json': components['schemas']['RequestEmailChangeRequest'];
8708
+ };
8709
+ };
8710
+ responses: {
8711
+ /** @description Successful Response */
8712
+ 200: {
8713
+ headers: {
8714
+ [name: string]: unknown;
8715
+ };
8716
+ content: {
8717
+ 'application/json': components['schemas']['RequestEmailChangeResponse'];
8718
+ };
8719
+ };
8720
+ /** @description Validation Error */
8721
+ 422: {
8722
+ headers: {
8723
+ [name: string]: unknown;
8724
+ };
8725
+ content: {
8726
+ 'application/json': components['schemas']['HTTPValidationError'];
8727
+ };
8728
+ };
8729
+ };
8730
+ };
8731
+ confirm_email_change: {
8732
+ parameters: {
8733
+ query?: never;
8734
+ header?: never;
8735
+ path?: never;
8736
+ cookie?: never;
8737
+ };
8738
+ requestBody: {
8739
+ content: {
8740
+ 'application/json': components['schemas']['ConfirmEmailChangeRequest'];
8741
+ };
8742
+ };
8743
+ responses: {
8744
+ /** @description Successful Response */
8745
+ 200: {
8746
+ headers: {
8747
+ [name: string]: unknown;
8748
+ };
8749
+ content: {
8750
+ 'application/json': components['schemas']['ConfirmEmailChangeResponse'];
8751
+ };
8752
+ };
8753
+ /** @description Validation Error */
8754
+ 422: {
8755
+ headers: {
8756
+ [name: string]: unknown;
8757
+ };
8758
+ content: {
8759
+ 'application/json': components['schemas']['HTTPValidationError'];
8760
+ };
8761
+ };
8762
+ };
8763
+ };
8520
8764
  get_user_settings: {
8521
8765
  parameters: {
8522
8766
  query?: never;
package/dist/index.d.ts CHANGED
@@ -534,6 +534,83 @@ interface paths {
534
534
  patch?: never;
535
535
  trace?: never;
536
536
  };
537
+ '/v1/user/profile': {
538
+ parameters: {
539
+ query?: never;
540
+ header?: never;
541
+ path?: never;
542
+ cookie?: never;
543
+ };
544
+ get?: never;
545
+ put?: never;
546
+ post?: never;
547
+ delete?: never;
548
+ options?: never;
549
+ head?: never;
550
+ /**
551
+ * Update Profile
552
+ * @description Update user's display profile (given_name, family_name, picture).
553
+ *
554
+ * Pass an empty string to clear family_name or picture; null means "leave unchanged".
555
+ */
556
+ patch: operations['update_profile'];
557
+ trace?: never;
558
+ };
559
+ '/v1/user/request-email-change': {
560
+ parameters: {
561
+ query?: never;
562
+ header?: never;
563
+ path?: never;
564
+ cookie?: never;
565
+ };
566
+ get?: never;
567
+ put?: never;
568
+ /**
569
+ * Request Email Change
570
+ * @description Send a verification code to the new email address.
571
+ *
572
+ * SSO users cannot change their email here — Auth0 with account linking
573
+ * makes the semantics ambiguous (which linked identity? what about social
574
+ * providers that own the email upstream?). They change it at their IdP and
575
+ * /sso-status syncs it on next login.
576
+ *
577
+ * The code is generated deterministically from (new_email, current_user.external_id)
578
+ * so that only this user can complete the change.
579
+ */
580
+ post: operations['request_email_change'];
581
+ delete?: never;
582
+ options?: never;
583
+ head?: never;
584
+ patch?: never;
585
+ trace?: never;
586
+ };
587
+ '/v1/user/confirm-email-change': {
588
+ parameters: {
589
+ query?: never;
590
+ header?: never;
591
+ path?: never;
592
+ cookie?: never;
593
+ };
594
+ get?: never;
595
+ put?: never;
596
+ /**
597
+ * Confirm Email Change
598
+ * @description Confirm email change with verification code.
599
+ *
600
+ * Verifies the 3-word code, then atomically updates:
601
+ * 1. users.email
602
+ * 2. contacts.contact_email (all references to old email)
603
+ * 3. Stripe customer email (fire-and-forget)
604
+ *
605
+ * SSO users are blocked — see /request-email-change for rationale.
606
+ */
607
+ post: operations['confirm_email_change'];
608
+ delete?: never;
609
+ options?: never;
610
+ head?: never;
611
+ patch?: never;
612
+ trace?: never;
613
+ };
537
614
  '/v1/user/settings': {
538
615
  parameters: {
539
616
  query?: never;
@@ -2128,8 +2205,8 @@ interface components {
2128
2205
  AGENT_API_TYPE: 'local' | 'remote';
2129
2206
  /**
2130
2207
  * Llm Agent Temperature
2131
- * @description Temperature value for agent LLM.
2132
- * @default 1
2208
+ * @description Temperature value for agent LLM. 0.6 matches the value recommended upstream for Qwen3-27B-AWQ-INT4 with thinking enabled. Higher values (we used to default to 1.0) cause the model to drift from the canonical tool-call grammar under complex agent contexts, producing malformed XML / JSON that vLLM's tool-call parser cannot extract — measured 20% tool-call success at temp=1.0 vs 100% at temp=0.6 on the same 20-run hard-tool-required test.
2209
+ * @default 0.6
2133
2210
  */
2134
2211
  LLM_AGENT_TEMPERATURE: number;
2135
2212
  /**
@@ -2190,6 +2267,10 @@ interface components {
2190
2267
  * - Numbering for sequential steps or prioritized items
2191
2268
  * - Bold text for critical conclusions or decision points
2192
2269
  *
2270
+ * TOOL CALLING:
2271
+ * - Always invoke tools using the tool-calling mechanism. NEVER write text that describes or simulates a tool call (e.g. never write "Searching for X...", "Reading document Y...", "Calling search_inside_documents" as prose — actually call the tool).
2272
+ * - If you intend to search or read, issue the tool call immediately. Do not narrate your intent first.
2273
+ *
2193
2274
  * EFFICIENCY:
2194
2275
  * 1. Before each step, review the results of prior steps. Adapt your approach based on what you learned — if a call was rejected or returned poor results, adjust your strategy.
2195
2276
  * 2. Call multiple tools in parallel when a query has several aspects.
@@ -2257,13 +2338,13 @@ interface components {
2257
2338
  * "PERSONA": "You are ARBI, an AI assistant created by ARBI CITY. Be proactive, helpful and professional.",
2258
2339
  * "AGENT_MODEL_NAME": "auto",
2259
2340
  * "AGENT_API_TYPE": "remote",
2260
- * "LLM_AGENT_TEMPERATURE": 1,
2341
+ * "LLM_AGENT_TEMPERATURE": 0.6,
2261
2342
  * "AGENT_MAX_TOKENS": 10000,
2262
2343
  * "ENABLE_THINKING": false,
2263
2344
  * "AGENT_MAX_ITERATIONS": 20,
2264
2345
  * "AGENT_MAX_PARALLEL_TOOL_CALLS": 10,
2265
2346
  * "AGENT_HISTORY_CHAR_THRESHOLD": 8000,
2266
- * "AGENT_SYSTEM_PROMPT": "Answer any question the user asks. You have access to workspace documents — use them when relevant. When no documents are relevant, answer from your own knowledge. Always provide a helpful answer.\n\nIMPORTANT: Never say \"I don't have information in the available documents\" or refuse to answer. If documents are not relevant, just answer the question directly from your own knowledge. If the user asks about a specific workspace document, call read_document or get_table_of_contents — never answer from memory.\n\nWhen using documents, retrieve actual document content — do not rely on metadata or headings alone. Cross-check information across sources. Not all assertions in sources are factual — some are arguments by a party. Attribute claims to their source where parties disagree.\n\nDOCUMENT INDEX:\nThe \"Workspace Documents\" table in your system prompt already lists every document with its Id, Title, Date, Pages, and Subject. Use this table directly when the user asks to list, catalogue, or tabulate documents — do NOT call any tools for that. Only use tools when you need to read or search document content.\n\nDOCUMENT STRATEGY:\n- For listing/cataloguing documents: use the document index already in your prompt — no tool calls needed.\n- For overview/summary requests: use get_table_of_contents first, then read key sections with read_document.\n- For specific questions: use search_inside_documents to find relevant sections, then read those sections with read_document.\n- For translation, deep analysis, or detailed summaries of a single document: use read_document with no ranges to load the complete text.\n- For extracting structured findings from passages: use read_document with digest=true or search_inside_documents with digest=true.\n- Never search for meta-queries like \"summary\", \"overview\", or \"all documents\" — search for the actual subject matter.\n\nFORMATTING:\n- Start your answer directly with the content — never open with a description of what you searched for or read (e.g. never write \"Searching for X\", \"Reading Y\", \"I found Z documents\" as the first lines of an answer).\n- Use markdown: headings, bold, bullet points, numbered lists\n- Main conclusion first, followed by supporting points\n- Bullet points for lists of discrete items\n- Numbering for sequential steps or prioritized items\n- Bold text for critical conclusions or decision points\n\nEFFICIENCY:\n1. Before each step, review the results of prior steps. Adapt your approach based on what you learned — if a call was rejected or returned poor results, adjust your strategy.\n2. Call multiple tools in parallel when a query has several aspects.\n3. NEVER repeat a tool call with the same arguments.\n4. Use targeted queries and narrow page ranges per retrieval call.\n5. Stop when you have sufficient evidence — do not over-research."
2347
+ * "AGENT_SYSTEM_PROMPT": "Answer any question the user asks. You have access to workspace documents — use them when relevant. When no documents are relevant, answer from your own knowledge. Always provide a helpful answer.\n\nIMPORTANT: Never say \"I don't have information in the available documents\" or refuse to answer. If documents are not relevant, just answer the question directly from your own knowledge. If the user asks about a specific workspace document, call read_document or get_table_of_contents — never answer from memory.\n\nWhen using documents, retrieve actual document content — do not rely on metadata or headings alone. Cross-check information across sources. Not all assertions in sources are factual — some are arguments by a party. Attribute claims to their source where parties disagree.\n\nDOCUMENT INDEX:\nThe \"Workspace Documents\" table in your system prompt already lists every document with its Id, Title, Date, Pages, and Subject. Use this table directly when the user asks to list, catalogue, or tabulate documents — do NOT call any tools for that. Only use tools when you need to read or search document content.\n\nDOCUMENT STRATEGY:\n- For listing/cataloguing documents: use the document index already in your prompt — no tool calls needed.\n- For overview/summary requests: use get_table_of_contents first, then read key sections with read_document.\n- For specific questions: use search_inside_documents to find relevant sections, then read those sections with read_document.\n- For translation, deep analysis, or detailed summaries of a single document: use read_document with no ranges to load the complete text.\n- For extracting structured findings from passages: use read_document with digest=true or search_inside_documents with digest=true.\n- Never search for meta-queries like \"summary\", \"overview\", or \"all documents\" — search for the actual subject matter.\n\nFORMATTING:\n- Start your answer directly with the content — never open with a description of what you searched for or read (e.g. never write \"Searching for X\", \"Reading Y\", \"I found Z documents\" as the first lines of an answer).\n- Use markdown: headings, bold, bullet points, numbered lists\n- Main conclusion first, followed by supporting points\n- Bullet points for lists of discrete items\n- Numbering for sequential steps or prioritized items\n- Bold text for critical conclusions or decision points\n\nTOOL CALLING:\n- Always invoke tools using the tool-calling mechanism. NEVER write text that describes or simulates a tool call (e.g. never write \"Searching for X...\", \"Reading document Y...\", \"Calling search_inside_documents\" as prose — actually call the tool).\n- If you intend to search or read, issue the tool call immediately. Do not narrate your intent first.\n\nEFFICIENCY:\n1. Before each step, review the results of prior steps. Adapt your approach based on what you learned — if a call was rejected or returned poor results, adjust your strategy.\n2. Call multiple tools in parallel when a query has several aspects.\n3. NEVER repeat a tool call with the same arguments.\n4. Use targeted queries and narrow page ranges per retrieval call.\n5. Stop when you have sufficient evidence — do not over-research."
2267
2348
  * }
2268
2349
  */
2269
2350
  Agents: components['schemas']['AgentsConfig'];
@@ -3071,6 +3152,23 @@ interface components {
3071
3152
  /** Confirm Email */
3072
3153
  confirm_email: string;
3073
3154
  };
3155
+ /** ConfirmEmailChangeRequest */
3156
+ ConfirmEmailChangeRequest: {
3157
+ /**
3158
+ * New Email
3159
+ * Format: email
3160
+ */
3161
+ new_email: string;
3162
+ /** Verification Code */
3163
+ verification_code: string;
3164
+ };
3165
+ /** ConfirmEmailChangeResponse */
3166
+ ConfirmEmailChangeResponse: {
3167
+ /** Detail */
3168
+ detail: string;
3169
+ /** Email */
3170
+ email: string;
3171
+ };
3074
3172
  /**
3075
3173
  * ConnectionClosedMessage
3076
3174
  * @description Sent when connection is closed (e.g., another tab opened).
@@ -3469,6 +3567,8 @@ interface components {
3469
3567
  status?: string | null;
3470
3568
  /** Error Message */
3471
3569
  error_message?: string | null;
3570
+ /** Failed Stage */
3571
+ failed_stage?: string | null;
3472
3572
  /** N Pages */
3473
3573
  n_pages?: number | null;
3474
3574
  /** N Chunks */
@@ -5404,6 +5504,19 @@ interface components {
5404
5504
  /** Users */
5405
5505
  users: components['schemas']['RemoveWorkspaceUserItem'][];
5406
5506
  };
5507
+ /** RequestEmailChangeRequest */
5508
+ RequestEmailChangeRequest: {
5509
+ /**
5510
+ * New Email
5511
+ * Format: email
5512
+ */
5513
+ new_email: string;
5514
+ };
5515
+ /** RequestEmailChangeResponse */
5516
+ RequestEmailChangeResponse: {
5517
+ /** Detail */
5518
+ detail: string;
5519
+ };
5407
5520
  /**
5408
5521
  * RerankerConfig
5409
5522
  * @description Wire/storage shape for reranker settings.
@@ -6765,6 +6878,8 @@ interface components {
6765
6878
  status: 'uploading' | 'queued' | 'parsing' | 'encrypting' | 'indexing' | 'analysing' | 'completed' | 'failed' | 'skipped' | 'empty' | 'low-content';
6766
6879
  /** Progress */
6767
6880
  progress: number;
6881
+ /** Failed Stage */
6882
+ failed_stage?: string | null;
6768
6883
  };
6769
6884
  /** Thread */
6770
6885
  Thread: {
@@ -7021,6 +7136,26 @@ interface components {
7021
7136
  /** Updates */
7022
7137
  updates: components['schemas']['NotificationUpdate'][];
7023
7138
  };
7139
+ /** UpdateProfileRequest */
7140
+ UpdateProfileRequest: {
7141
+ /** Given Name */
7142
+ given_name?: string | null;
7143
+ /** Family Name */
7144
+ family_name?: string | null;
7145
+ /** Picture */
7146
+ picture?: string | null;
7147
+ };
7148
+ /** UpdateProfileResponse */
7149
+ UpdateProfileResponse: {
7150
+ /** Given Name */
7151
+ given_name: string;
7152
+ /** Family Name */
7153
+ family_name?: string | null;
7154
+ /** Email */
7155
+ email: string;
7156
+ /** Picture */
7157
+ picture?: string | null;
7158
+ };
7024
7159
  /** UpdateTagRequest */
7025
7160
  UpdateTagRequest: {
7026
7161
  /** Name */
@@ -7252,6 +7387,11 @@ interface components {
7252
7387
  picture?: string | null;
7253
7388
  /** Encryption Public Key */
7254
7389
  encryption_public_key: string;
7390
+ /**
7391
+ * Is Sso
7392
+ * @default false
7393
+ */
7394
+ is_sso: boolean;
7255
7395
  };
7256
7396
  /**
7257
7397
  * UserSettingsResponse
@@ -7619,6 +7759,11 @@ interface components {
7619
7759
  updated_at: string;
7620
7760
  /** Wrapped Key */
7621
7761
  wrapped_key?: string | null;
7762
+ /**
7763
+ * Is Member
7764
+ * @default false
7765
+ */
7766
+ is_member: boolean;
7622
7767
  /**
7623
7768
  * Shared Conversation Count
7624
7769
  * @default 0
@@ -8517,6 +8662,105 @@ interface operations {
8517
8662
  };
8518
8663
  };
8519
8664
  };
8665
+ update_profile: {
8666
+ parameters: {
8667
+ query?: never;
8668
+ header?: never;
8669
+ path?: never;
8670
+ cookie?: never;
8671
+ };
8672
+ requestBody: {
8673
+ content: {
8674
+ 'application/json': components['schemas']['UpdateProfileRequest'];
8675
+ };
8676
+ };
8677
+ responses: {
8678
+ /** @description Successful Response */
8679
+ 200: {
8680
+ headers: {
8681
+ [name: string]: unknown;
8682
+ };
8683
+ content: {
8684
+ 'application/json': components['schemas']['UpdateProfileResponse'];
8685
+ };
8686
+ };
8687
+ /** @description Validation Error */
8688
+ 422: {
8689
+ headers: {
8690
+ [name: string]: unknown;
8691
+ };
8692
+ content: {
8693
+ 'application/json': components['schemas']['HTTPValidationError'];
8694
+ };
8695
+ };
8696
+ };
8697
+ };
8698
+ request_email_change: {
8699
+ parameters: {
8700
+ query?: never;
8701
+ header?: never;
8702
+ path?: never;
8703
+ cookie?: never;
8704
+ };
8705
+ requestBody: {
8706
+ content: {
8707
+ 'application/json': components['schemas']['RequestEmailChangeRequest'];
8708
+ };
8709
+ };
8710
+ responses: {
8711
+ /** @description Successful Response */
8712
+ 200: {
8713
+ headers: {
8714
+ [name: string]: unknown;
8715
+ };
8716
+ content: {
8717
+ 'application/json': components['schemas']['RequestEmailChangeResponse'];
8718
+ };
8719
+ };
8720
+ /** @description Validation Error */
8721
+ 422: {
8722
+ headers: {
8723
+ [name: string]: unknown;
8724
+ };
8725
+ content: {
8726
+ 'application/json': components['schemas']['HTTPValidationError'];
8727
+ };
8728
+ };
8729
+ };
8730
+ };
8731
+ confirm_email_change: {
8732
+ parameters: {
8733
+ query?: never;
8734
+ header?: never;
8735
+ path?: never;
8736
+ cookie?: never;
8737
+ };
8738
+ requestBody: {
8739
+ content: {
8740
+ 'application/json': components['schemas']['ConfirmEmailChangeRequest'];
8741
+ };
8742
+ };
8743
+ responses: {
8744
+ /** @description Successful Response */
8745
+ 200: {
8746
+ headers: {
8747
+ [name: string]: unknown;
8748
+ };
8749
+ content: {
8750
+ 'application/json': components['schemas']['ConfirmEmailChangeResponse'];
8751
+ };
8752
+ };
8753
+ /** @description Validation Error */
8754
+ 422: {
8755
+ headers: {
8756
+ [name: string]: unknown;
8757
+ };
8758
+ content: {
8759
+ 'application/json': components['schemas']['HTTPValidationError'];
8760
+ };
8761
+ };
8762
+ };
8763
+ };
8520
8764
  get_user_settings: {
8521
8765
  parameters: {
8522
8766
  query?: never;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arbidocs/client",
3
- "version": "0.3.59",
3
+ "version": "0.3.61",
4
4
  "description": "TypeScript SDK for the ARBI API — zero-knowledge auth, E2E encryption, and type-safe REST client",
5
5
  "type": "module",
6
6
  "main": "dist/index.cjs",
@@ -29,7 +29,7 @@
29
29
  "@types/libsodium-wrappers-sumo": "^0.8.2",
30
30
  "fake-indexeddb": "^6.2.5",
31
31
  "tsup": "^8.4.0",
32
- "typescript": "^5.9.3",
32
+ "typescript": "^6.0.3",
33
33
  "vitest": "^4.0.18"
34
34
  },
35
35
  "license": "MIT",