@arbidocs/client 0.3.177 → 0.3.179

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
@@ -4124,7 +4124,7 @@ interface components {
4124
4124
  * @default {
4125
4125
  * "API_TYPE": "remote",
4126
4126
  * "ENABLE_THINKING": false,
4127
- * "MODEL_NAME": "Fast",
4127
+ * "MODEL_NAME": "dummy",
4128
4128
  * "SYSTEM_INSTRUCTION": "You are ARBI, an AI assistant created by ARBI CITY. Be proactive, helpful and professional.Be concise. Use markdown where it helps readability. Cross-check information across sources before answering. Never fabricate facts. Not all assertions in the sources are factual — some are arguments by a party. Attribute claims to their source, especially where parties disagree.",
4129
4129
  * "MAX_TOKEN_SIZE_TO_ANSWER": 200000,
4130
4130
  * "TEMPERATURE": 0.1,
@@ -4136,7 +4136,7 @@ interface components {
4136
4136
  * @default {
4137
4137
  * "API_TYPE": "remote",
4138
4138
  * "ENABLE_THINKING": false,
4139
- * "MODEL_NAME": "Wise",
4139
+ * "MODEL_NAME": "dummy",
4140
4140
  * "SYSTEM_INSTRUCTION": "You are reviewing a draft answer prepared by a research agent. The draft was written based on summaries, but you now have access to the full source material.\n\nYour task:\n1. Review the draft answer against the source material provided\n2. Verify claims are supported by the sources\n3. Correct any inaccuracies or unsupported statements\n4. Add any important details from the sources that were missed\n5. Maintain formal, objective tone appropriate for professional contexts\n\nIf information is not found in the sources but the draft answer is based on web search results or general knowledge, preserve it and ensure it is clearly labelled as such. Only flag missing source support for claims that purport to come from the documents.\nDo not add inline citation markers - the system handles citations automatically.",
4141
4141
  * "TEMPERATURE": 0.1,
4142
4142
  * "MAX_TOKENS": 0,
@@ -4148,7 +4148,7 @@ interface components {
4148
4148
  * @default {
4149
4149
  * "API_TYPE": "remote",
4150
4150
  * "ENABLE_THINKING": false,
4151
- * "MODEL_NAME": "Fast",
4151
+ * "MODEL_NAME": "dummy",
4152
4152
  * "SYSTEM_INSTRUCTION": "You are a chunk evaluator. Analyze retrieved chunks to determine which are relevant to the user's query and extract key learnings from the RELEVANT chunks only. You must return your response as valid JSON matching the provided schema.",
4153
4153
  * "TEMPERATURE": 0.1,
4154
4154
  * "MAX_TOKENS": 0,
@@ -4163,7 +4163,7 @@ interface components {
4163
4163
  * @default {
4164
4164
  * "API_TYPE": "remote",
4165
4165
  * "ENABLE_THINKING": false,
4166
- * "MODEL_NAME": "Fast",
4166
+ * "MODEL_NAME": "dummy",
4167
4167
  * "SYSTEM_INSTRUCTION": "You are a title generator that creates concise, descriptive titles.\n\nOutput the title as plain text only. Do not use Markdown or any other formatting. Specifically:\n- Do not bold, italicize, or otherwise emphasize any part of the title.\n- Do not include asterisks (*), underscores (_), backticks (`), or other Markdown markers.\n- Do not prefix the title with bullets, dashes (-), or numbered/lettered enumeration (e.g. \"1.\", \"a)\").\n- Do not wrap the title in quotes or brackets.",
4168
4168
  * "MAX_TOKEN_SIZE_TO_ANSWER": 20,
4169
4169
  * "TEMPERATURE": 0.3,
@@ -4175,7 +4175,7 @@ interface components {
4175
4175
  * @default {
4176
4176
  * "API_TYPE": "remote",
4177
4177
  * "ENABLE_THINKING": false,
4178
- * "MODEL_NAME": "Wise",
4178
+ * "MODEL_NAME": "dummy",
4179
4179
  * "SYSTEM_INSTRUCTION": "You are a conversation summariser. Condense the conversation history into a concise summary that preserves:\n- Key decisions and conclusions reached\n- Specific names, dates, numbers, and document references\n- Open questions and unresolved items\n- The user's goals and constraints\n\nWrite in past tense, third person. Be specific, not vague. Do not omit important details in favour of brevity.",
4180
4180
  * "TEMPERATURE": 0.1,
4181
4181
  * "MAX_TOKENS": 0,
@@ -4189,7 +4189,7 @@ interface components {
4189
4189
  * @default {
4190
4190
  * "API_TYPE": "remote",
4191
4191
  * "ENABLE_THINKING": false,
4192
- * "MODEL_NAME": "Fast",
4192
+ * "MODEL_NAME": "dummy",
4193
4193
  * "SYSTEM_INSTRUCTION": "You are a document analysis assistant. Answer questions based strictly on document content.\n\nYour answers are displayed directly as cell values in a table, so keep every answer as short as possible.\n\nGuidelines:\n- Answer with the value only — never a full sentence. Do not restate the question or add lead-ins such as \"This document is...\" or \"The document describes...\". Good: \"German\". Bad: \"This document is written in German.\"\n- When an answer has multiple values, put each value on its own line: separate values with a newline character. Do not separate them with commas, bullets, dashes, numbering, or by writing them as a sentence.\n- Only use information explicitly stated in the document; do not infer or assume information not present.\n- If the information is not found, respond with exactly \"Not found\".\n- Follow the format instructions exactly for each answer.\n- Output answers as plain text only. Do not use Markdown or any other formatting: no bold, italics, asterisks (*), underscores (_), backticks (`), bullets, or numbered/lettered enumeration.",
4194
4194
  * "MAX_TOKEN_CONTEXT_TO_ANSWER": 200000,
4195
4195
  * "TEMPERATURE": 0.1,
@@ -4250,7 +4250,7 @@ interface components {
4250
4250
  * @default {
4251
4251
  * "API_TYPE": "remote",
4252
4252
  * "ENABLE_THINKING": false,
4253
- * "MODEL_NAME": "Wise",
4253
+ * "MODEL_NAME": "dummy",
4254
4254
  * "TEMPERATURE": 0.3,
4255
4255
  * "MAX_TOKENS": 0,
4256
4256
  * "MAX_TOKEN_CONTEXT": 200000,
@@ -4262,7 +4262,7 @@ interface components {
4262
4262
  * @default {
4263
4263
  * "API_TYPE": "remote",
4264
4264
  * "ENABLE_THINKING": true,
4265
- * "MODEL_NAME": "Wise",
4265
+ * "MODEL_NAME": "dummy",
4266
4266
  * "SYSTEM_INSTRUCTION": "You are a research planning assistant. Your job is to analyze a user query and produce a concise, numbered research plan.\n\nYou have access to a workspace of documents. The available tools for executing the plan are:\n- search_inside_documents: Search workspace documents for relevant passages (semantic, keyword, or hybrid). Use digest=true to extract learnings.\n- read_document: Read page ranges or entire documents. Use digest=true to extract learnings with citations.\n- get_table_of_contents: Get document headings with page references\n\nConsider:\n- What information is needed to answer the query\n- Which documents are likely relevant based on the document index\n- What search queries and document passages to examine\n- What order of operations will be most efficient\n- Whether parallel searches can be used for different aspects\n\nRespond with ONLY the plan (numbered steps). Do not execute any steps.",
4267
4267
  * "TEMPERATURE": 0.3,
4268
4268
  * "MAX_TOKENS": 0,
@@ -4275,7 +4275,7 @@ interface components {
4275
4275
  * @default {
4276
4276
  * "API_TYPE": "remote",
4277
4277
  * "ENABLE_THINKING": false,
4278
- * "MODEL_NAME": "Fast",
4278
+ * "MODEL_NAME": "dummy",
4279
4279
  * "SYSTEM_INSTRUCTION": "You are a context selector. Given a user's query, conversation history, and a table of available documents, determine the user's goal and select relevant context.\n\n## Instructions\n\n1. **goal**: 1-2 concise sentences describing the user's intent AND your filtering rationale. Explain what documents are needed and why. Examples:\n - \"The user is greeting the assistant. No documents are needed.\"\n - \"The user wants to find force majeure clauses. Only the three contracts are relevant, so I will keep only those.\"\n - \"The user wants a full timeline of the case. Most documents are relevant, so I will drop only the unrelated procedural orders.\"\n\n2. **doc_filter_mode** and **doc_ids**: Select which documents the agent needs.\n - `\"keep\"` mode: `doc_ids` lists the ONLY docs to keep. Everything else is dropped.\n - `\"drop\"` mode: `doc_ids` lists the ONLY docs to drop. Everything else is kept.\n - Pick whichever mode produces the **shorter `doc_ids` list**.\n - Doc IDs are in the **Id** column of the Available Documents table (e.g. `\"doc-abc12345\"`). Copy them **exactly** from the table — do not invent, guess, or modify IDs.\n\n | Scenario | doc_filter_mode | doc_ids |\n |----------|----------------|---------|\n | Need ALL docs | `\"drop\"` | `[]` |\n | Need NO docs | `\"keep\"` | `[]` |\n | Need 3 of 100 docs | `\"keep\"` | `[\"id1\",\"id2\",\"id3\"]` |\n | Drop 3 of 100 docs | `\"drop\"` | `[\"id1\",\"id2\",\"id3\"]` |\n\n3. **chat_range_start** and **chat_range_end**: 0-based inclusive range of earlier history messages that provide relevant context. The last 3 messages are always included automatically. Set both to -1 if no earlier history is needed.\n\n## Rules\n\n- **Never repeat a doc ID.** Each ID must appear at most once.\n- Before writing `doc_ids`, count how many you would keep vs drop, then pick the shorter list.\n- Greetings or meta-questions about the assistant (e.g. \"hello\", \"who are you?\", \"what can you do?\"): the agent does NOT need any documents → `\"keep\"` with `[]`.\n- Ambiguous references like \"the document\" or \"this contract\" without specifying which: keep all → `\"drop\"` with `[]`.\n- For follow-up questions, include history messages that establish the topic.\n- Always return valid JSON matching the schema.",
4280
4280
  * "TEMPERATURE": 0,
4281
4281
  * "MAX_TOKENS": 0
@@ -4286,7 +4286,7 @@ interface components {
4286
4286
  * @default {
4287
4287
  * "API_TYPE": "remote",
4288
4288
  * "ENABLE_THINKING": false,
4289
- * "MODEL_NAME": "Fast",
4289
+ * "MODEL_NAME": "dummy",
4290
4290
  * "TEMPERATURE": 0.1,
4291
4291
  * "MAX_TOKENS": 0,
4292
4292
  * "MAX_PAGES_PER_CALL": 5,
@@ -4307,7 +4307,7 @@ interface components {
4307
4307
  * @default {
4308
4308
  * "API_TYPE": "remote",
4309
4309
  * "ENABLE_THINKING": true,
4310
- * "MODEL_NAME": "Premium",
4310
+ * "MODEL_NAME": "",
4311
4311
  * "SYSTEM_INSTRUCTION": "You are a code execution agent. You write and run code to accomplish tasks.\n\nYou have access to an execute_code tool that runs code in a sandboxed Docker container.\n\nThe sandbox has:\n- Python 3.12 with numpy, pandas, matplotlib, requests, beautifulsoup4,\n httpx, pillow, sympy, pyyaml (plus uv for installing more)\n- Node.js 22 with TypeScript (ts-node) and npm\n- Bash with git, curl, wget, jq, sqlite3, build-essential\n- Network access (can pip/npm install additional packages)\n\nInstructions:\n1. Write clean, correct code to accomplish the user's task\n2. Always call execute_code to run your code — never guess the output\n3. If execution errors, analyze the traceback, fix the code, and retry\n4. Once you have the correct output, respond with ONLY the final result\n\nKeep code simple and direct. Prefer Python unless the task specifically requires another language.",
4312
4312
  * "TEMPERATURE": 0.2,
4313
4313
  * "MAX_TOKENS": 0
@@ -4377,7 +4377,7 @@ interface components {
4377
4377
  * },
4378
4378
  * "MAX_CONCURRENT_REQUESTS": 256,
4379
4379
  * "MODEL_NAME": "Qwen/Qwen3-Reranker-0.6B",
4380
- * "API_TYPE": "remote",
4380
+ * "API_TYPE": "local",
4381
4381
  * "RETRIEVAL_INSTRUCTION": "Judge whether the passage contains the specific facts, figures, names, or references mentioned in the query. Only answer yes if the passage directly contains these details"
4382
4382
  * }
4383
4383
  */
@@ -4398,7 +4398,7 @@ interface components {
4398
4398
  /**
4399
4399
  * @default {
4400
4400
  * "MODEL_NAME": "Qwen/Qwen3-Embedding-0.6B",
4401
- * "API_TYPE": "remote",
4401
+ * "API_TYPE": "local",
4402
4402
  * "BATCH_SIZE": 128,
4403
4403
  * "MAX_CONCURRENT_REQUESTS": 256,
4404
4404
  * "DOCUMENT_PREFIX": "",
@@ -5050,49 +5050,49 @@ interface components {
5050
5050
  };
5051
5051
  /**
5052
5052
  * CitationSources
5053
- * @description Flat provenance for a grounded note: the passages that back it.
5054
- *
5055
- * A note or a DocTag answers ONE question, so the per-statement
5056
- * :class:`CitationData` map it used to carry was almost entirely redundant —
5057
- * the ``statement`` duplicated the note text and the offsets spanned it end to
5058
- * end. All a reader needs is *which passages support this*, best-first.
5053
+ * @description Provenance for a grounded note: the documents it draws on, best first,
5054
+ * each with the passages cited from it, best first within the document.
5059
5055
  *
5060
- * One object per passage, deliberately, rather than parallel arrays: document
5061
- * and page belong to a specific chunk, and keeping them together removes any
5062
- * alignment invariant to maintain. Everything a client renders derives from
5063
- * this single list — document pills by deduping ``doc_ext_id``, page ranges by
5064
- * grouping on it — so there is exactly one way to express provenance.
5056
+ * Grouped by document because that is the unit every reader works in — the
5057
+ * Sources pills, the picker checkbox, "remove this source" — and because it
5058
+ * lets a whole-document source be expressed as a document with no chunks
5059
+ * rather than a sentinel chunk id. Stored as a bare JSON array.
5065
5060
  *
5066
- * Rerank scores are NOT stored. Nothing ever read them back, and a score is
5067
- * not comparable across reranker versions, so persisting one would imply a
5068
- * precision it does not have. Order carries the only durable signal.
5061
+ * Rerank scores are NOT stored: nothing ever read them back and they are not
5062
+ * comparable across reranker versions. Order carries the only durable signal.
5069
5063
  *
5070
- * Holds no document text, so it is **plaintext at rest** — chunk and doc ext
5071
- * ids are opaque identifiers, and the passage content behind them stays
5072
- * SecretBox-encrypted in Qdrant.
5064
+ * Holds no document text — chunk and doc ext ids are opaque — so it is
5065
+ * **plaintext at rest**; the passage content stays SecretBox-encrypted in
5066
+ * Qdrant. ``None`` (never ``[]``) is the one representation of "ungrounded".
5073
5067
  */
5074
- CitationSources: {
5075
- /** Passages */
5076
- passages: components['schemas']['CitedPassage'][];
5077
- };
5068
+ CitationSources: components['schemas']['CitedDocument'][];
5078
5069
  /**
5079
- * CitedPassage
5080
- * @description One passage backing a grounded note, with enough to render it.
5081
- *
5082
- * ``doc_ext_id`` is captured at grounding time from the chunk's metadata so a
5083
- * client can show the source as a document pill without resolving every chunk
5084
- * against Qdrant first. It is optional only because citations written before
5085
- * that capture existed carry the chunk alone — a missing value means "not
5086
- * recorded", never "no document" (every chunk belongs to exactly one).
5070
+ * CitedChunk
5071
+ * @description One passage backing a grounded note: the chunk, and the page it sits on
5072
+ * (captured at grounding time so a client can show a page pill without
5073
+ * resolving the chunk against Qdrant).
5087
5074
  */
5088
- CitedPassage: {
5075
+ CitedChunk: {
5089
5076
  /** Chunk Id */
5090
5077
  chunk_id: string;
5091
- /** Doc Ext Id */
5092
- doc_ext_id?: string | null;
5093
5078
  /** Page */
5094
5079
  page?: number | null;
5095
5080
  };
5081
+ /**
5082
+ * CitedDocument
5083
+ * @description One document backing a grounded note, with the passages cited from it.
5084
+ *
5085
+ * An EMPTY ``chunks`` list means the whole document is the source — a user
5086
+ * ticked it in the picker without choosing passages. There is no separate
5087
+ * "document-only" field: the document is always the unit, and passages
5088
+ * narrow it.
5089
+ */
5090
+ CitedDocument: {
5091
+ /** Doc Ext Id */
5092
+ doc_ext_id: string;
5093
+ /** Chunks */
5094
+ chunks?: components['schemas']['CitedChunk'][];
5095
+ };
5096
5096
  /**
5097
5097
  * CodeAgentConfig
5098
5098
  * @description Configuration for CodeAgent — sub-agent that writes and executes code via sandbox.
@@ -5114,7 +5114,7 @@ interface components {
5114
5114
  /**
5115
5115
  * Model Name
5116
5116
  * @description Model for code generation. Should be a strong coding model.
5117
- * @default Premium
5117
+ * @default
5118
5118
  */
5119
5119
  MODEL_NAME: string;
5120
5120
  /**
@@ -6298,7 +6298,7 @@ interface components {
6298
6298
  /**
6299
6299
  * Model Name
6300
6300
  * @description The name of the non-reasoning model to be used.
6301
- * @default Fast
6301
+ * @default dummy
6302
6302
  */
6303
6303
  MODEL_NAME: string;
6304
6304
  /**
@@ -6557,7 +6557,7 @@ interface components {
6557
6557
  /**
6558
6558
  * Api Type
6559
6559
  * @description The inference type (local or remote).
6560
- * @default remote
6560
+ * @default local
6561
6561
  * @enum {string}
6562
6562
  */
6563
6563
  API_TYPE: 'local' | 'remote';
@@ -6697,7 +6697,7 @@ interface components {
6697
6697
  /**
6698
6698
  * Model Name
6699
6699
  * @description The name of the non-reasoning model to be used.
6700
- * @default Fast
6700
+ * @default dummy
6701
6701
  */
6702
6702
  MODEL_NAME: string;
6703
6703
  /**
@@ -6952,7 +6952,7 @@ interface components {
6952
6952
  /**
6953
6953
  * Model Name
6954
6954
  * @description The name of the non-reasoning model to be used.
6955
- * @default Fast
6955
+ * @default dummy
6956
6956
  */
6957
6957
  MODEL_NAME: string;
6958
6958
  /**
@@ -7561,7 +7561,7 @@ interface components {
7561
7561
  /**
7562
7562
  * Model Name
7563
7563
  * @description The model for note consolidation. Defaults to reasoning model.
7564
- * @default Wise
7564
+ * @default dummy
7565
7565
  */
7566
7566
  MODEL_NAME: string;
7567
7567
  /**
@@ -8350,7 +8350,7 @@ interface components {
8350
8350
  /**
8351
8351
  * Model Name
8352
8352
  * @description The model for plan generation. Defaults to reasoning model.
8353
- * @default Wise
8353
+ * @default dummy
8354
8354
  */
8355
8355
  MODEL_NAME: string;
8356
8356
  /**
@@ -8743,7 +8743,7 @@ interface components {
8743
8743
  /**
8744
8744
  * Model Name
8745
8745
  * @description The model for query answering.
8746
- * @default Fast
8746
+ * @default dummy
8747
8747
  */
8748
8748
  MODEL_NAME: string;
8749
8749
  /**
@@ -9068,7 +9068,7 @@ interface components {
9068
9068
  /**
9069
9069
  * Api Type
9070
9070
  * @description The inference type (local or remote).
9071
- * @default remote
9071
+ * @default local
9072
9072
  * @enum {string}
9073
9073
  */
9074
9074
  API_TYPE: 'local' | 'remote';
@@ -9851,7 +9851,7 @@ interface components {
9851
9851
  /**
9852
9852
  * Model Name
9853
9853
  * @description The model for reviewing agent draft answers. Defaults to reasoning model.
9854
- * @default Wise
9854
+ * @default dummy
9855
9855
  */
9856
9856
  MODEL_NAME: string;
9857
9857
  /**
@@ -10425,7 +10425,7 @@ interface components {
10425
10425
  /**
10426
10426
  * Model Name
10427
10427
  * @description The model for conversation summarisation. Defaults to reasoning model.
10428
- * @default Wise
10428
+ * @default dummy
10429
10429
  */
10430
10430
  MODEL_NAME: string;
10431
10431
  /**
@@ -10588,6 +10588,11 @@ interface components {
10588
10588
  parent_ext_id?: string | null;
10589
10589
  /** Doctag Count */
10590
10590
  doctag_count: number;
10591
+ /**
10592
+ * Facttag Count
10593
+ * @default 0
10594
+ */
10595
+ facttag_count: number;
10591
10596
  /** Created By Ext Id */
10592
10597
  created_by_ext_id: string;
10593
10598
  /** Updated By Ext Id */
@@ -10847,7 +10852,7 @@ interface components {
10847
10852
  /**
10848
10853
  * Model Name
10849
10854
  * @description The name of the non-reasoning model to be used.
10850
- * @default Fast
10855
+ * @default dummy
10851
10856
  */
10852
10857
  MODEL_NAME: string;
10853
10858
  /**
@@ -11784,7 +11789,7 @@ interface components {
11784
11789
  /**
11785
11790
  * Model Name
11786
11791
  * @description The vision-capable model name (must support image inputs).
11787
- * @default Fast
11792
+ * @default dummy
11788
11793
  */
11789
11794
  MODEL_NAME: string;
11790
11795
  /**
package/dist/index.d.ts CHANGED
@@ -4124,7 +4124,7 @@ interface components {
4124
4124
  * @default {
4125
4125
  * "API_TYPE": "remote",
4126
4126
  * "ENABLE_THINKING": false,
4127
- * "MODEL_NAME": "Fast",
4127
+ * "MODEL_NAME": "dummy",
4128
4128
  * "SYSTEM_INSTRUCTION": "You are ARBI, an AI assistant created by ARBI CITY. Be proactive, helpful and professional.Be concise. Use markdown where it helps readability. Cross-check information across sources before answering. Never fabricate facts. Not all assertions in the sources are factual — some are arguments by a party. Attribute claims to their source, especially where parties disagree.",
4129
4129
  * "MAX_TOKEN_SIZE_TO_ANSWER": 200000,
4130
4130
  * "TEMPERATURE": 0.1,
@@ -4136,7 +4136,7 @@ interface components {
4136
4136
  * @default {
4137
4137
  * "API_TYPE": "remote",
4138
4138
  * "ENABLE_THINKING": false,
4139
- * "MODEL_NAME": "Wise",
4139
+ * "MODEL_NAME": "dummy",
4140
4140
  * "SYSTEM_INSTRUCTION": "You are reviewing a draft answer prepared by a research agent. The draft was written based on summaries, but you now have access to the full source material.\n\nYour task:\n1. Review the draft answer against the source material provided\n2. Verify claims are supported by the sources\n3. Correct any inaccuracies or unsupported statements\n4. Add any important details from the sources that were missed\n5. Maintain formal, objective tone appropriate for professional contexts\n\nIf information is not found in the sources but the draft answer is based on web search results or general knowledge, preserve it and ensure it is clearly labelled as such. Only flag missing source support for claims that purport to come from the documents.\nDo not add inline citation markers - the system handles citations automatically.",
4141
4141
  * "TEMPERATURE": 0.1,
4142
4142
  * "MAX_TOKENS": 0,
@@ -4148,7 +4148,7 @@ interface components {
4148
4148
  * @default {
4149
4149
  * "API_TYPE": "remote",
4150
4150
  * "ENABLE_THINKING": false,
4151
- * "MODEL_NAME": "Fast",
4151
+ * "MODEL_NAME": "dummy",
4152
4152
  * "SYSTEM_INSTRUCTION": "You are a chunk evaluator. Analyze retrieved chunks to determine which are relevant to the user's query and extract key learnings from the RELEVANT chunks only. You must return your response as valid JSON matching the provided schema.",
4153
4153
  * "TEMPERATURE": 0.1,
4154
4154
  * "MAX_TOKENS": 0,
@@ -4163,7 +4163,7 @@ interface components {
4163
4163
  * @default {
4164
4164
  * "API_TYPE": "remote",
4165
4165
  * "ENABLE_THINKING": false,
4166
- * "MODEL_NAME": "Fast",
4166
+ * "MODEL_NAME": "dummy",
4167
4167
  * "SYSTEM_INSTRUCTION": "You are a title generator that creates concise, descriptive titles.\n\nOutput the title as plain text only. Do not use Markdown or any other formatting. Specifically:\n- Do not bold, italicize, or otherwise emphasize any part of the title.\n- Do not include asterisks (*), underscores (_), backticks (`), or other Markdown markers.\n- Do not prefix the title with bullets, dashes (-), or numbered/lettered enumeration (e.g. \"1.\", \"a)\").\n- Do not wrap the title in quotes or brackets.",
4168
4168
  * "MAX_TOKEN_SIZE_TO_ANSWER": 20,
4169
4169
  * "TEMPERATURE": 0.3,
@@ -4175,7 +4175,7 @@ interface components {
4175
4175
  * @default {
4176
4176
  * "API_TYPE": "remote",
4177
4177
  * "ENABLE_THINKING": false,
4178
- * "MODEL_NAME": "Wise",
4178
+ * "MODEL_NAME": "dummy",
4179
4179
  * "SYSTEM_INSTRUCTION": "You are a conversation summariser. Condense the conversation history into a concise summary that preserves:\n- Key decisions and conclusions reached\n- Specific names, dates, numbers, and document references\n- Open questions and unresolved items\n- The user's goals and constraints\n\nWrite in past tense, third person. Be specific, not vague. Do not omit important details in favour of brevity.",
4180
4180
  * "TEMPERATURE": 0.1,
4181
4181
  * "MAX_TOKENS": 0,
@@ -4189,7 +4189,7 @@ interface components {
4189
4189
  * @default {
4190
4190
  * "API_TYPE": "remote",
4191
4191
  * "ENABLE_THINKING": false,
4192
- * "MODEL_NAME": "Fast",
4192
+ * "MODEL_NAME": "dummy",
4193
4193
  * "SYSTEM_INSTRUCTION": "You are a document analysis assistant. Answer questions based strictly on document content.\n\nYour answers are displayed directly as cell values in a table, so keep every answer as short as possible.\n\nGuidelines:\n- Answer with the value only — never a full sentence. Do not restate the question or add lead-ins such as \"This document is...\" or \"The document describes...\". Good: \"German\". Bad: \"This document is written in German.\"\n- When an answer has multiple values, put each value on its own line: separate values with a newline character. Do not separate them with commas, bullets, dashes, numbering, or by writing them as a sentence.\n- Only use information explicitly stated in the document; do not infer or assume information not present.\n- If the information is not found, respond with exactly \"Not found\".\n- Follow the format instructions exactly for each answer.\n- Output answers as plain text only. Do not use Markdown or any other formatting: no bold, italics, asterisks (*), underscores (_), backticks (`), bullets, or numbered/lettered enumeration.",
4194
4194
  * "MAX_TOKEN_CONTEXT_TO_ANSWER": 200000,
4195
4195
  * "TEMPERATURE": 0.1,
@@ -4250,7 +4250,7 @@ interface components {
4250
4250
  * @default {
4251
4251
  * "API_TYPE": "remote",
4252
4252
  * "ENABLE_THINKING": false,
4253
- * "MODEL_NAME": "Wise",
4253
+ * "MODEL_NAME": "dummy",
4254
4254
  * "TEMPERATURE": 0.3,
4255
4255
  * "MAX_TOKENS": 0,
4256
4256
  * "MAX_TOKEN_CONTEXT": 200000,
@@ -4262,7 +4262,7 @@ interface components {
4262
4262
  * @default {
4263
4263
  * "API_TYPE": "remote",
4264
4264
  * "ENABLE_THINKING": true,
4265
- * "MODEL_NAME": "Wise",
4265
+ * "MODEL_NAME": "dummy",
4266
4266
  * "SYSTEM_INSTRUCTION": "You are a research planning assistant. Your job is to analyze a user query and produce a concise, numbered research plan.\n\nYou have access to a workspace of documents. The available tools for executing the plan are:\n- search_inside_documents: Search workspace documents for relevant passages (semantic, keyword, or hybrid). Use digest=true to extract learnings.\n- read_document: Read page ranges or entire documents. Use digest=true to extract learnings with citations.\n- get_table_of_contents: Get document headings with page references\n\nConsider:\n- What information is needed to answer the query\n- Which documents are likely relevant based on the document index\n- What search queries and document passages to examine\n- What order of operations will be most efficient\n- Whether parallel searches can be used for different aspects\n\nRespond with ONLY the plan (numbered steps). Do not execute any steps.",
4267
4267
  * "TEMPERATURE": 0.3,
4268
4268
  * "MAX_TOKENS": 0,
@@ -4275,7 +4275,7 @@ interface components {
4275
4275
  * @default {
4276
4276
  * "API_TYPE": "remote",
4277
4277
  * "ENABLE_THINKING": false,
4278
- * "MODEL_NAME": "Fast",
4278
+ * "MODEL_NAME": "dummy",
4279
4279
  * "SYSTEM_INSTRUCTION": "You are a context selector. Given a user's query, conversation history, and a table of available documents, determine the user's goal and select relevant context.\n\n## Instructions\n\n1. **goal**: 1-2 concise sentences describing the user's intent AND your filtering rationale. Explain what documents are needed and why. Examples:\n - \"The user is greeting the assistant. No documents are needed.\"\n - \"The user wants to find force majeure clauses. Only the three contracts are relevant, so I will keep only those.\"\n - \"The user wants a full timeline of the case. Most documents are relevant, so I will drop only the unrelated procedural orders.\"\n\n2. **doc_filter_mode** and **doc_ids**: Select which documents the agent needs.\n - `\"keep\"` mode: `doc_ids` lists the ONLY docs to keep. Everything else is dropped.\n - `\"drop\"` mode: `doc_ids` lists the ONLY docs to drop. Everything else is kept.\n - Pick whichever mode produces the **shorter `doc_ids` list**.\n - Doc IDs are in the **Id** column of the Available Documents table (e.g. `\"doc-abc12345\"`). Copy them **exactly** from the table — do not invent, guess, or modify IDs.\n\n | Scenario | doc_filter_mode | doc_ids |\n |----------|----------------|---------|\n | Need ALL docs | `\"drop\"` | `[]` |\n | Need NO docs | `\"keep\"` | `[]` |\n | Need 3 of 100 docs | `\"keep\"` | `[\"id1\",\"id2\",\"id3\"]` |\n | Drop 3 of 100 docs | `\"drop\"` | `[\"id1\",\"id2\",\"id3\"]` |\n\n3. **chat_range_start** and **chat_range_end**: 0-based inclusive range of earlier history messages that provide relevant context. The last 3 messages are always included automatically. Set both to -1 if no earlier history is needed.\n\n## Rules\n\n- **Never repeat a doc ID.** Each ID must appear at most once.\n- Before writing `doc_ids`, count how many you would keep vs drop, then pick the shorter list.\n- Greetings or meta-questions about the assistant (e.g. \"hello\", \"who are you?\", \"what can you do?\"): the agent does NOT need any documents → `\"keep\"` with `[]`.\n- Ambiguous references like \"the document\" or \"this contract\" without specifying which: keep all → `\"drop\"` with `[]`.\n- For follow-up questions, include history messages that establish the topic.\n- Always return valid JSON matching the schema.",
4280
4280
  * "TEMPERATURE": 0,
4281
4281
  * "MAX_TOKENS": 0
@@ -4286,7 +4286,7 @@ interface components {
4286
4286
  * @default {
4287
4287
  * "API_TYPE": "remote",
4288
4288
  * "ENABLE_THINKING": false,
4289
- * "MODEL_NAME": "Fast",
4289
+ * "MODEL_NAME": "dummy",
4290
4290
  * "TEMPERATURE": 0.1,
4291
4291
  * "MAX_TOKENS": 0,
4292
4292
  * "MAX_PAGES_PER_CALL": 5,
@@ -4307,7 +4307,7 @@ interface components {
4307
4307
  * @default {
4308
4308
  * "API_TYPE": "remote",
4309
4309
  * "ENABLE_THINKING": true,
4310
- * "MODEL_NAME": "Premium",
4310
+ * "MODEL_NAME": "",
4311
4311
  * "SYSTEM_INSTRUCTION": "You are a code execution agent. You write and run code to accomplish tasks.\n\nYou have access to an execute_code tool that runs code in a sandboxed Docker container.\n\nThe sandbox has:\n- Python 3.12 with numpy, pandas, matplotlib, requests, beautifulsoup4,\n httpx, pillow, sympy, pyyaml (plus uv for installing more)\n- Node.js 22 with TypeScript (ts-node) and npm\n- Bash with git, curl, wget, jq, sqlite3, build-essential\n- Network access (can pip/npm install additional packages)\n\nInstructions:\n1. Write clean, correct code to accomplish the user's task\n2. Always call execute_code to run your code — never guess the output\n3. If execution errors, analyze the traceback, fix the code, and retry\n4. Once you have the correct output, respond with ONLY the final result\n\nKeep code simple and direct. Prefer Python unless the task specifically requires another language.",
4312
4312
  * "TEMPERATURE": 0.2,
4313
4313
  * "MAX_TOKENS": 0
@@ -4377,7 +4377,7 @@ interface components {
4377
4377
  * },
4378
4378
  * "MAX_CONCURRENT_REQUESTS": 256,
4379
4379
  * "MODEL_NAME": "Qwen/Qwen3-Reranker-0.6B",
4380
- * "API_TYPE": "remote",
4380
+ * "API_TYPE": "local",
4381
4381
  * "RETRIEVAL_INSTRUCTION": "Judge whether the passage contains the specific facts, figures, names, or references mentioned in the query. Only answer yes if the passage directly contains these details"
4382
4382
  * }
4383
4383
  */
@@ -4398,7 +4398,7 @@ interface components {
4398
4398
  /**
4399
4399
  * @default {
4400
4400
  * "MODEL_NAME": "Qwen/Qwen3-Embedding-0.6B",
4401
- * "API_TYPE": "remote",
4401
+ * "API_TYPE": "local",
4402
4402
  * "BATCH_SIZE": 128,
4403
4403
  * "MAX_CONCURRENT_REQUESTS": 256,
4404
4404
  * "DOCUMENT_PREFIX": "",
@@ -5050,49 +5050,49 @@ interface components {
5050
5050
  };
5051
5051
  /**
5052
5052
  * CitationSources
5053
- * @description Flat provenance for a grounded note: the passages that back it.
5054
- *
5055
- * A note or a DocTag answers ONE question, so the per-statement
5056
- * :class:`CitationData` map it used to carry was almost entirely redundant —
5057
- * the ``statement`` duplicated the note text and the offsets spanned it end to
5058
- * end. All a reader needs is *which passages support this*, best-first.
5053
+ * @description Provenance for a grounded note: the documents it draws on, best first,
5054
+ * each with the passages cited from it, best first within the document.
5059
5055
  *
5060
- * One object per passage, deliberately, rather than parallel arrays: document
5061
- * and page belong to a specific chunk, and keeping them together removes any
5062
- * alignment invariant to maintain. Everything a client renders derives from
5063
- * this single list — document pills by deduping ``doc_ext_id``, page ranges by
5064
- * grouping on it — so there is exactly one way to express provenance.
5056
+ * Grouped by document because that is the unit every reader works in — the
5057
+ * Sources pills, the picker checkbox, "remove this source" — and because it
5058
+ * lets a whole-document source be expressed as a document with no chunks
5059
+ * rather than a sentinel chunk id. Stored as a bare JSON array.
5065
5060
  *
5066
- * Rerank scores are NOT stored. Nothing ever read them back, and a score is
5067
- * not comparable across reranker versions, so persisting one would imply a
5068
- * precision it does not have. Order carries the only durable signal.
5061
+ * Rerank scores are NOT stored: nothing ever read them back and they are not
5062
+ * comparable across reranker versions. Order carries the only durable signal.
5069
5063
  *
5070
- * Holds no document text, so it is **plaintext at rest** — chunk and doc ext
5071
- * ids are opaque identifiers, and the passage content behind them stays
5072
- * SecretBox-encrypted in Qdrant.
5064
+ * Holds no document text — chunk and doc ext ids are opaque — so it is
5065
+ * **plaintext at rest**; the passage content stays SecretBox-encrypted in
5066
+ * Qdrant. ``None`` (never ``[]``) is the one representation of "ungrounded".
5073
5067
  */
5074
- CitationSources: {
5075
- /** Passages */
5076
- passages: components['schemas']['CitedPassage'][];
5077
- };
5068
+ CitationSources: components['schemas']['CitedDocument'][];
5078
5069
  /**
5079
- * CitedPassage
5080
- * @description One passage backing a grounded note, with enough to render it.
5081
- *
5082
- * ``doc_ext_id`` is captured at grounding time from the chunk's metadata so a
5083
- * client can show the source as a document pill without resolving every chunk
5084
- * against Qdrant first. It is optional only because citations written before
5085
- * that capture existed carry the chunk alone — a missing value means "not
5086
- * recorded", never "no document" (every chunk belongs to exactly one).
5070
+ * CitedChunk
5071
+ * @description One passage backing a grounded note: the chunk, and the page it sits on
5072
+ * (captured at grounding time so a client can show a page pill without
5073
+ * resolving the chunk against Qdrant).
5087
5074
  */
5088
- CitedPassage: {
5075
+ CitedChunk: {
5089
5076
  /** Chunk Id */
5090
5077
  chunk_id: string;
5091
- /** Doc Ext Id */
5092
- doc_ext_id?: string | null;
5093
5078
  /** Page */
5094
5079
  page?: number | null;
5095
5080
  };
5081
+ /**
5082
+ * CitedDocument
5083
+ * @description One document backing a grounded note, with the passages cited from it.
5084
+ *
5085
+ * An EMPTY ``chunks`` list means the whole document is the source — a user
5086
+ * ticked it in the picker without choosing passages. There is no separate
5087
+ * "document-only" field: the document is always the unit, and passages
5088
+ * narrow it.
5089
+ */
5090
+ CitedDocument: {
5091
+ /** Doc Ext Id */
5092
+ doc_ext_id: string;
5093
+ /** Chunks */
5094
+ chunks?: components['schemas']['CitedChunk'][];
5095
+ };
5096
5096
  /**
5097
5097
  * CodeAgentConfig
5098
5098
  * @description Configuration for CodeAgent — sub-agent that writes and executes code via sandbox.
@@ -5114,7 +5114,7 @@ interface components {
5114
5114
  /**
5115
5115
  * Model Name
5116
5116
  * @description Model for code generation. Should be a strong coding model.
5117
- * @default Premium
5117
+ * @default
5118
5118
  */
5119
5119
  MODEL_NAME: string;
5120
5120
  /**
@@ -6298,7 +6298,7 @@ interface components {
6298
6298
  /**
6299
6299
  * Model Name
6300
6300
  * @description The name of the non-reasoning model to be used.
6301
- * @default Fast
6301
+ * @default dummy
6302
6302
  */
6303
6303
  MODEL_NAME: string;
6304
6304
  /**
@@ -6557,7 +6557,7 @@ interface components {
6557
6557
  /**
6558
6558
  * Api Type
6559
6559
  * @description The inference type (local or remote).
6560
- * @default remote
6560
+ * @default local
6561
6561
  * @enum {string}
6562
6562
  */
6563
6563
  API_TYPE: 'local' | 'remote';
@@ -6697,7 +6697,7 @@ interface components {
6697
6697
  /**
6698
6698
  * Model Name
6699
6699
  * @description The name of the non-reasoning model to be used.
6700
- * @default Fast
6700
+ * @default dummy
6701
6701
  */
6702
6702
  MODEL_NAME: string;
6703
6703
  /**
@@ -6952,7 +6952,7 @@ interface components {
6952
6952
  /**
6953
6953
  * Model Name
6954
6954
  * @description The name of the non-reasoning model to be used.
6955
- * @default Fast
6955
+ * @default dummy
6956
6956
  */
6957
6957
  MODEL_NAME: string;
6958
6958
  /**
@@ -7561,7 +7561,7 @@ interface components {
7561
7561
  /**
7562
7562
  * Model Name
7563
7563
  * @description The model for note consolidation. Defaults to reasoning model.
7564
- * @default Wise
7564
+ * @default dummy
7565
7565
  */
7566
7566
  MODEL_NAME: string;
7567
7567
  /**
@@ -8350,7 +8350,7 @@ interface components {
8350
8350
  /**
8351
8351
  * Model Name
8352
8352
  * @description The model for plan generation. Defaults to reasoning model.
8353
- * @default Wise
8353
+ * @default dummy
8354
8354
  */
8355
8355
  MODEL_NAME: string;
8356
8356
  /**
@@ -8743,7 +8743,7 @@ interface components {
8743
8743
  /**
8744
8744
  * Model Name
8745
8745
  * @description The model for query answering.
8746
- * @default Fast
8746
+ * @default dummy
8747
8747
  */
8748
8748
  MODEL_NAME: string;
8749
8749
  /**
@@ -9068,7 +9068,7 @@ interface components {
9068
9068
  /**
9069
9069
  * Api Type
9070
9070
  * @description The inference type (local or remote).
9071
- * @default remote
9071
+ * @default local
9072
9072
  * @enum {string}
9073
9073
  */
9074
9074
  API_TYPE: 'local' | 'remote';
@@ -9851,7 +9851,7 @@ interface components {
9851
9851
  /**
9852
9852
  * Model Name
9853
9853
  * @description The model for reviewing agent draft answers. Defaults to reasoning model.
9854
- * @default Wise
9854
+ * @default dummy
9855
9855
  */
9856
9856
  MODEL_NAME: string;
9857
9857
  /**
@@ -10425,7 +10425,7 @@ interface components {
10425
10425
  /**
10426
10426
  * Model Name
10427
10427
  * @description The model for conversation summarisation. Defaults to reasoning model.
10428
- * @default Wise
10428
+ * @default dummy
10429
10429
  */
10430
10430
  MODEL_NAME: string;
10431
10431
  /**
@@ -10588,6 +10588,11 @@ interface components {
10588
10588
  parent_ext_id?: string | null;
10589
10589
  /** Doctag Count */
10590
10590
  doctag_count: number;
10591
+ /**
10592
+ * Facttag Count
10593
+ * @default 0
10594
+ */
10595
+ facttag_count: number;
10591
10596
  /** Created By Ext Id */
10592
10597
  created_by_ext_id: string;
10593
10598
  /** Updated By Ext Id */
@@ -10847,7 +10852,7 @@ interface components {
10847
10852
  /**
10848
10853
  * Model Name
10849
10854
  * @description The name of the non-reasoning model to be used.
10850
- * @default Fast
10855
+ * @default dummy
10851
10856
  */
10852
10857
  MODEL_NAME: string;
10853
10858
  /**
@@ -11784,7 +11789,7 @@ interface components {
11784
11789
  /**
11785
11790
  * Model Name
11786
11791
  * @description The vision-capable model name (must support image inputs).
11787
- * @default Fast
11792
+ * @default dummy
11788
11793
  */
11789
11794
  MODEL_NAME: string;
11790
11795
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arbidocs/client",
3
- "version": "0.3.177",
3
+ "version": "0.3.179",
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",