@arbidocs/client 0.3.139 → 0.3.141

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
@@ -247,6 +247,9 @@ interface paths {
247
247
  * For each email:
248
248
  * - If user already exists: Adds them to contacts with status="registered"
249
249
  * - If user doesn't exist: Sends invitation email and creates contact with status="invited"
250
+ * - If an invitation is already pending: returns the contact unchanged without
251
+ * resending, since a resend rotates the code and invalidates the link already
252
+ * sent. Delete the contact to invite again before the invitation expires.
250
253
  *
251
254
  * Protected endpoint - requires authentication.
252
255
  * Returns list of created contact records.
@@ -1971,7 +1974,12 @@ interface paths {
1971
1974
  };
1972
1975
  /**
1973
1976
  * List Notes Endpoint
1974
- * @description List notes visible in the active workspace (newest first).
1977
+ * @description List notes visible in the active workspace.
1978
+ *
1979
+ * Newest first by default. Passing a date range (or ``dated_only``) turns this
1980
+ * into the timeline: only dated notes, ordered by when they happened. Each
1981
+ * bound is read at its own precision and widened outward, so ``date_to=2019``
1982
+ * runs through 31 December rather than stopping on 1 January.
1975
1983
  */
1976
1984
  get: operations['list_notes'];
1977
1985
  put?: never;
@@ -2026,6 +2034,36 @@ interface paths {
2026
2034
  patch: operations['update_note'];
2027
2035
  trace?: never;
2028
2036
  };
2037
+ '/v1/notes/{note_ext_id}/remind': {
2038
+ parameters: {
2039
+ query?: never;
2040
+ header?: never;
2041
+ path?: never;
2042
+ cookie?: never;
2043
+ };
2044
+ get?: never;
2045
+ put?: never;
2046
+ /**
2047
+ * Remind Note Endpoint
2048
+ * @description Set a one-off reminder for a dated note, and link it to the note.
2049
+ *
2050
+ * Give an explicit ``remind_at`` or a ``lead_minutes`` offset before the note's
2051
+ * date; with neither it fires when the note's span starts. Only dated notes can
2052
+ * be reminded about — there is nothing to fire relative to otherwise.
2053
+ *
2054
+ * The reminder is deliberately CONTENT-FREE: it names the note by external id
2055
+ * and nothing else. ``tasks.name`` is plaintext while ``notes.content`` is
2056
+ * encrypted under the workspace key, so copying the text into the reminder
2057
+ * would leak the very thing the note protects. The client resolves the text
2058
+ * from the note when it displays the notification.
2059
+ */
2060
+ post: operations['remind_note'];
2061
+ delete?: never;
2062
+ options?: never;
2063
+ head?: never;
2064
+ patch?: never;
2065
+ trace?: never;
2066
+ };
2029
2067
  '/v1/notifications/ws-schemas': {
2030
2068
  parameters: {
2031
2069
  query?: never;
@@ -3376,6 +3414,11 @@ interface components {
3376
3414
  * @description Per-step token cost (input + output + reasoning) for the LLM call that produced this step.
3377
3415
  */
3378
3416
  step_tokens?: number | null;
3417
+ /**
3418
+ * Step Credits
3419
+ * @description This step's own AI-credit cost, priced from cached model pricing — an estimate, not the authoritative LiteLLM cost (which is captured once per call into the turn-level ledger total, not correlated back to a specific step).
3420
+ */
3421
+ step_credits?: number | null;
3379
3422
  /** @description Token budget context snapshot. Present when retrieval counts change. */
3380
3423
  context?: components['schemas']['TokenBudgetContext'] | null;
3381
3424
  /**
@@ -3601,6 +3644,12 @@ interface components {
3601
3644
  * @default 20
3602
3645
  */
3603
3646
  AGENT_MAX_ITERATIONS: number;
3647
+ /**
3648
+ * Agent Turn Credit Budget
3649
+ * @description Maximum AI credits (1 credit = $0.01) a turn may spend, shared across the main agent and every deep_research/run_code/sub_agent child it spawns — priced per call using each call's own model, since different stages run different models. Agents get a heads-up in their own scratchpad at 50% and 90% so they can wrap up before being forced to answer with what they have. Default is half FREE_AI_CREDITS (100) — a free account's entire grant, so one turn can't consume it all. 0 = uncapped.
3650
+ * @default 50
3651
+ */
3652
+ AGENT_TURN_CREDIT_BUDGET: number;
3604
3653
  /**
3605
3654
  * Agent Max Parallel Tool Calls
3606
3655
  * @description Maximum number of tool calls the agent can make in a single iteration. Extra calls beyond this limit are silently dropped.
@@ -3801,6 +3850,12 @@ interface components {
3801
3850
  * @default 20
3802
3851
  */
3803
3852
  AGENT_MAX_ITERATIONS: number;
3853
+ /**
3854
+ * Agent Turn Credit Budget
3855
+ * @description Maximum AI credits (1 credit = $0.01) a turn may spend, shared across the main agent and every deep_research/run_code/sub_agent child it spawns — priced per call using each call's own model, since different stages run different models. Agents get a heads-up in their own scratchpad at 50% and 90% so they can wrap up before being forced to answer with what they have. Default is half FREE_AI_CREDITS (100) — a free account's entire grant, so one turn can't consume it all. 0 = uncapped.
3856
+ * @default 50
3857
+ */
3858
+ AGENT_TURN_CREDIT_BUDGET: number;
3804
3859
  };
3805
3860
  /** AllConfigs */
3806
3861
  AllConfigs: {
@@ -3836,6 +3891,7 @@ interface components {
3836
3891
  * "ENABLE_THINKING": false,
3837
3892
  * "AGENT_STRICT_TOOL_CALLS": true,
3838
3893
  * "AGENT_MAX_ITERATIONS": 20,
3894
+ * "AGENT_TURN_CREDIT_BUDGET": 50,
3839
3895
  * "AGENT_MAX_PARALLEL_TOOL_CALLS": 10,
3840
3896
  * "AGENT_HISTORY_CHAR_THRESHOLD": 8000,
3841
3897
  * "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 lists every document with its Id, Title, Date, and Pages. The Subject field is a brief navigation label only — it does not contain enough information to answer questions about a document's content. 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- For open-ended investigative queries (\"find interesting things\", \"what's notable\", \"what stands out\", \"explore X\", \"what should I know about\", \"any findings\", \"anything unusual\", \"key insights\"): ALWAYS call search_inside_documents with multiple diverse queries covering different aspects of the documents before answering. The document index is never sufficient for investigative answers — you must retrieve actual content.\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- Your job is to gather context by calling tools, then answer only once every reasonable tool call has been made. Do not give a final answer while there is still relevant context you could retrieve.\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."
@@ -4032,8 +4088,7 @@ interface components {
4032
4088
  * "MODEL_NAME": "Premium",
4033
4089
  * "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.",
4034
4090
  * "TEMPERATURE": 0.2,
4035
- * "MAX_TOKENS": 0,
4036
- * "MAX_ITERATIONS": 3
4091
+ * "MAX_TOKENS": 0
4037
4092
  * }
4038
4093
  */
4039
4094
  CodeAgent: components['schemas']['CodeAgentConfig'];
@@ -4241,6 +4296,11 @@ interface components {
4241
4296
  * @description The agent's own words for what this item is doing.
4242
4297
  */
4243
4298
  focus?: string | null;
4299
+ /**
4300
+ * Content
4301
+ * @description Extended text a one-line focus can't carry — e.g. a sub-agent spawn marker's own task description, or a planning step's checklist.
4302
+ */
4303
+ content?: string | null;
4244
4304
  /**
4245
4305
  * Detail
4246
4306
  * @description Enriched tool-call display shape (resolved summary, page ranges, digest flags) — richer than the raw `arguments` JSON, for the trace UI. One entry per call on a function_call item.
@@ -4260,6 +4320,11 @@ interface components {
4260
4320
  * @description Per-item token cost.
4261
4321
  */
4262
4322
  step_tokens?: number | null;
4323
+ /**
4324
+ * Step Credits
4325
+ * @description This item's own AI-credit cost, priced from cached model pricing for its usage — not the authoritative LiteLLM cost (that's captured once per call into the turn-level ledger, not correlated back to a specific step). An estimate for relative step-to-step cost while streaming.
4326
+ */
4327
+ step_credits?: number | null;
4263
4328
  /**
4264
4329
  * Total Tokens
4265
4330
  * @description Cumulative tokens across the response so far.
@@ -4468,6 +4533,13 @@ interface components {
4468
4533
  /** Session Id */
4469
4534
  session_id?: string | null;
4470
4535
  };
4536
+ /** Body_remind_note */
4537
+ Body_remind_note: {
4538
+ /** Remind At */
4539
+ remind_at?: string | null;
4540
+ /** Lead Minutes */
4541
+ lead_minutes?: number | null;
4542
+ };
4471
4543
  /**
4472
4544
  * ChangePasswordRequest
4473
4545
  * @description Password change request with signature-based auth.
@@ -4773,12 +4845,6 @@ interface components {
4773
4845
  * @default 0
4774
4846
  */
4775
4847
  MAX_TOKENS: number;
4776
- /**
4777
- * Max Iterations
4778
- * @description Maximum code-execute-fix retry cycles.
4779
- * @default 3
4780
- */
4781
- MAX_ITERATIONS: number;
4782
4848
  };
4783
4849
  /**
4784
4850
  * CommandDescriptorResponse
@@ -5118,7 +5184,7 @@ interface components {
5118
5184
  */
5119
5185
  ContactResponse: {
5120
5186
  /** External Id */
5121
- external_id: string;
5187
+ external_id?: string | null;
5122
5188
  /** Email */
5123
5189
  email: string;
5124
5190
  user?: components['schemas']['UserResponse'] | null;
@@ -5126,9 +5192,13 @@ interface components {
5126
5192
  * Status
5127
5193
  * @enum {string}
5128
5194
  */
5129
- status: 'invitation_pending' | 'invitation_expired' | 'registered';
5195
+ status: 'invitation_pending' | 'invitation_expired' | 'registered' | 'failed';
5130
5196
  /** Created At */
5131
5197
  created_at: string;
5198
+ /** Outcome */
5199
+ outcome?: ('invited' | 'reinvited' | 'not_resent_still_pending' | 'contact_added' | 'already_contact' | 'failed') | null;
5200
+ /** Outcome Detail */
5201
+ outcome_detail?: string | null;
5132
5202
  };
5133
5203
  /**
5134
5204
  * ContextUsage
@@ -5465,8 +5535,12 @@ interface components {
5465
5535
  * @enum {string}
5466
5536
  */
5467
5537
  source: 'manual' | 'learning' | 'curator';
5468
- /** Note Date */
5469
- note_date?: string | null;
5538
+ /** Date */
5539
+ date?: string | null;
5540
+ /** Date End */
5541
+ date_end?: string | null;
5542
+ /** Timezone */
5543
+ timezone?: string | null;
5470
5544
  /**
5471
5545
  * Tag Ext Ids
5472
5546
  * @default []
@@ -7464,8 +7538,14 @@ interface components {
7464
7538
  shared: boolean;
7465
7539
  /** Source */
7466
7540
  source: string;
7467
- /** Note Date */
7468
- note_date?: string | null;
7541
+ /** Date Start */
7542
+ date_start?: string | null;
7543
+ /** Date End */
7544
+ date_end?: string | null;
7545
+ /** Timezone */
7546
+ timezone?: string | null;
7547
+ /** Task Ext Id */
7548
+ task_ext_id?: string | null;
7469
7549
  /**
7470
7550
  * Tags
7471
7551
  * @default []
@@ -10366,6 +10446,16 @@ interface components {
10366
10446
  * @description Total cost: input_cost + output_cost (USD)
10367
10447
  */
10368
10448
  total_cost?: number | null;
10449
+ /**
10450
+ * Credits Spent
10451
+ * @description AI credits spent so far this turn (1 credit = $0.01), priced per LLM call using each call's own model — unlike total_cost above (single-rate, main query LLM only), this is correct across a turn that mixes models (agent LLM, deep_research/run_code child LLMs, evaluator, judge). Updates live as the turn progresses, not just a final total.
10452
+ */
10453
+ credits_spent?: number | null;
10454
+ /**
10455
+ * Credit Budget
10456
+ * @description This turn's shared credit budget (AGENT_TURN_CREDIT_BUDGET) — same value across the parent and every child it spawns. Absent when uncapped (budget=0).
10457
+ */
10458
+ credit_budget?: number | null;
10369
10459
  /**
10370
10460
  * Elapsed Seconds
10371
10461
  * @description Wall-clock time for the LLM call(s)
@@ -10473,7 +10563,7 @@ interface components {
10473
10563
  * UpdateNoteRequest
10474
10564
  * @description Patch a note. An edit to ``text`` soft-deletes the old row and
10475
10565
  * inserts a replacement (append + soft-delete lifecycle); ``pinned``/``shared``/
10476
- * ``note_date``/``tag_ext_ids`` update in place.
10566
+ * ``tag_ext_ids`` update in place.
10477
10567
  */
10478
10568
  UpdateNoteRequest: {
10479
10569
  /** Text */
@@ -10482,8 +10572,12 @@ interface components {
10482
10572
  pinned?: boolean | null;
10483
10573
  /** Shared */
10484
10574
  shared?: boolean | null;
10485
- /** Note Date */
10486
- note_date?: string | null;
10575
+ /** Date */
10576
+ date?: string | null;
10577
+ /** Date End */
10578
+ date_end?: string | null;
10579
+ /** Timezone */
10580
+ timezone?: string | null;
10487
10581
  /** Tag Ext Ids */
10488
10582
  tag_ext_ids?: string[] | null;
10489
10583
  citations?: components['schemas']['CitationSources'] | null;
@@ -14243,6 +14337,12 @@ interface operations {
14243
14337
  parameters: {
14244
14338
  query?: {
14245
14339
  pinned_only?: boolean;
14340
+ /** @description Range start, any precision ("2019", "2019-10") */
14341
+ date_from?: string | null;
14342
+ /** @description Range end, any precision */
14343
+ date_to?: string | null;
14344
+ /** @description Only notes that carry a date — the timeline view */
14345
+ dated_only?: boolean;
14246
14346
  };
14247
14347
  header?: never;
14248
14348
  path?: never;
@@ -14369,6 +14469,41 @@ interface operations {
14369
14469
  };
14370
14470
  };
14371
14471
  };
14472
+ remind_note: {
14473
+ parameters: {
14474
+ query?: never;
14475
+ header?: never;
14476
+ path: {
14477
+ note_ext_id: string;
14478
+ };
14479
+ cookie?: never;
14480
+ };
14481
+ requestBody?: {
14482
+ content: {
14483
+ 'application/json': components['schemas']['Body_remind_note'];
14484
+ };
14485
+ };
14486
+ responses: {
14487
+ /** @description Successful Response */
14488
+ 200: {
14489
+ headers: {
14490
+ [name: string]: unknown;
14491
+ };
14492
+ content: {
14493
+ 'application/json': components['schemas']['NoteResponse'];
14494
+ };
14495
+ };
14496
+ /** @description Validation Error */
14497
+ 422: {
14498
+ headers: {
14499
+ [name: string]: unknown;
14500
+ };
14501
+ content: {
14502
+ 'application/json': components['schemas']['HTTPValidationError'];
14503
+ };
14504
+ };
14505
+ };
14506
+ };
14372
14507
  get_websocket_schema: {
14373
14508
  parameters: {
14374
14509
  query?: never;
package/dist/index.d.ts CHANGED
@@ -247,6 +247,9 @@ interface paths {
247
247
  * For each email:
248
248
  * - If user already exists: Adds them to contacts with status="registered"
249
249
  * - If user doesn't exist: Sends invitation email and creates contact with status="invited"
250
+ * - If an invitation is already pending: returns the contact unchanged without
251
+ * resending, since a resend rotates the code and invalidates the link already
252
+ * sent. Delete the contact to invite again before the invitation expires.
250
253
  *
251
254
  * Protected endpoint - requires authentication.
252
255
  * Returns list of created contact records.
@@ -1971,7 +1974,12 @@ interface paths {
1971
1974
  };
1972
1975
  /**
1973
1976
  * List Notes Endpoint
1974
- * @description List notes visible in the active workspace (newest first).
1977
+ * @description List notes visible in the active workspace.
1978
+ *
1979
+ * Newest first by default. Passing a date range (or ``dated_only``) turns this
1980
+ * into the timeline: only dated notes, ordered by when they happened. Each
1981
+ * bound is read at its own precision and widened outward, so ``date_to=2019``
1982
+ * runs through 31 December rather than stopping on 1 January.
1975
1983
  */
1976
1984
  get: operations['list_notes'];
1977
1985
  put?: never;
@@ -2026,6 +2034,36 @@ interface paths {
2026
2034
  patch: operations['update_note'];
2027
2035
  trace?: never;
2028
2036
  };
2037
+ '/v1/notes/{note_ext_id}/remind': {
2038
+ parameters: {
2039
+ query?: never;
2040
+ header?: never;
2041
+ path?: never;
2042
+ cookie?: never;
2043
+ };
2044
+ get?: never;
2045
+ put?: never;
2046
+ /**
2047
+ * Remind Note Endpoint
2048
+ * @description Set a one-off reminder for a dated note, and link it to the note.
2049
+ *
2050
+ * Give an explicit ``remind_at`` or a ``lead_minutes`` offset before the note's
2051
+ * date; with neither it fires when the note's span starts. Only dated notes can
2052
+ * be reminded about — there is nothing to fire relative to otherwise.
2053
+ *
2054
+ * The reminder is deliberately CONTENT-FREE: it names the note by external id
2055
+ * and nothing else. ``tasks.name`` is plaintext while ``notes.content`` is
2056
+ * encrypted under the workspace key, so copying the text into the reminder
2057
+ * would leak the very thing the note protects. The client resolves the text
2058
+ * from the note when it displays the notification.
2059
+ */
2060
+ post: operations['remind_note'];
2061
+ delete?: never;
2062
+ options?: never;
2063
+ head?: never;
2064
+ patch?: never;
2065
+ trace?: never;
2066
+ };
2029
2067
  '/v1/notifications/ws-schemas': {
2030
2068
  parameters: {
2031
2069
  query?: never;
@@ -3376,6 +3414,11 @@ interface components {
3376
3414
  * @description Per-step token cost (input + output + reasoning) for the LLM call that produced this step.
3377
3415
  */
3378
3416
  step_tokens?: number | null;
3417
+ /**
3418
+ * Step Credits
3419
+ * @description This step's own AI-credit cost, priced from cached model pricing — an estimate, not the authoritative LiteLLM cost (which is captured once per call into the turn-level ledger total, not correlated back to a specific step).
3420
+ */
3421
+ step_credits?: number | null;
3379
3422
  /** @description Token budget context snapshot. Present when retrieval counts change. */
3380
3423
  context?: components['schemas']['TokenBudgetContext'] | null;
3381
3424
  /**
@@ -3601,6 +3644,12 @@ interface components {
3601
3644
  * @default 20
3602
3645
  */
3603
3646
  AGENT_MAX_ITERATIONS: number;
3647
+ /**
3648
+ * Agent Turn Credit Budget
3649
+ * @description Maximum AI credits (1 credit = $0.01) a turn may spend, shared across the main agent and every deep_research/run_code/sub_agent child it spawns — priced per call using each call's own model, since different stages run different models. Agents get a heads-up in their own scratchpad at 50% and 90% so they can wrap up before being forced to answer with what they have. Default is half FREE_AI_CREDITS (100) — a free account's entire grant, so one turn can't consume it all. 0 = uncapped.
3650
+ * @default 50
3651
+ */
3652
+ AGENT_TURN_CREDIT_BUDGET: number;
3604
3653
  /**
3605
3654
  * Agent Max Parallel Tool Calls
3606
3655
  * @description Maximum number of tool calls the agent can make in a single iteration. Extra calls beyond this limit are silently dropped.
@@ -3801,6 +3850,12 @@ interface components {
3801
3850
  * @default 20
3802
3851
  */
3803
3852
  AGENT_MAX_ITERATIONS: number;
3853
+ /**
3854
+ * Agent Turn Credit Budget
3855
+ * @description Maximum AI credits (1 credit = $0.01) a turn may spend, shared across the main agent and every deep_research/run_code/sub_agent child it spawns — priced per call using each call's own model, since different stages run different models. Agents get a heads-up in their own scratchpad at 50% and 90% so they can wrap up before being forced to answer with what they have. Default is half FREE_AI_CREDITS (100) — a free account's entire grant, so one turn can't consume it all. 0 = uncapped.
3856
+ * @default 50
3857
+ */
3858
+ AGENT_TURN_CREDIT_BUDGET: number;
3804
3859
  };
3805
3860
  /** AllConfigs */
3806
3861
  AllConfigs: {
@@ -3836,6 +3891,7 @@ interface components {
3836
3891
  * "ENABLE_THINKING": false,
3837
3892
  * "AGENT_STRICT_TOOL_CALLS": true,
3838
3893
  * "AGENT_MAX_ITERATIONS": 20,
3894
+ * "AGENT_TURN_CREDIT_BUDGET": 50,
3839
3895
  * "AGENT_MAX_PARALLEL_TOOL_CALLS": 10,
3840
3896
  * "AGENT_HISTORY_CHAR_THRESHOLD": 8000,
3841
3897
  * "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 lists every document with its Id, Title, Date, and Pages. The Subject field is a brief navigation label only — it does not contain enough information to answer questions about a document's content. 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- For open-ended investigative queries (\"find interesting things\", \"what's notable\", \"what stands out\", \"explore X\", \"what should I know about\", \"any findings\", \"anything unusual\", \"key insights\"): ALWAYS call search_inside_documents with multiple diverse queries covering different aspects of the documents before answering. The document index is never sufficient for investigative answers — you must retrieve actual content.\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- Your job is to gather context by calling tools, then answer only once every reasonable tool call has been made. Do not give a final answer while there is still relevant context you could retrieve.\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."
@@ -4032,8 +4088,7 @@ interface components {
4032
4088
  * "MODEL_NAME": "Premium",
4033
4089
  * "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.",
4034
4090
  * "TEMPERATURE": 0.2,
4035
- * "MAX_TOKENS": 0,
4036
- * "MAX_ITERATIONS": 3
4091
+ * "MAX_TOKENS": 0
4037
4092
  * }
4038
4093
  */
4039
4094
  CodeAgent: components['schemas']['CodeAgentConfig'];
@@ -4241,6 +4296,11 @@ interface components {
4241
4296
  * @description The agent's own words for what this item is doing.
4242
4297
  */
4243
4298
  focus?: string | null;
4299
+ /**
4300
+ * Content
4301
+ * @description Extended text a one-line focus can't carry — e.g. a sub-agent spawn marker's own task description, or a planning step's checklist.
4302
+ */
4303
+ content?: string | null;
4244
4304
  /**
4245
4305
  * Detail
4246
4306
  * @description Enriched tool-call display shape (resolved summary, page ranges, digest flags) — richer than the raw `arguments` JSON, for the trace UI. One entry per call on a function_call item.
@@ -4260,6 +4320,11 @@ interface components {
4260
4320
  * @description Per-item token cost.
4261
4321
  */
4262
4322
  step_tokens?: number | null;
4323
+ /**
4324
+ * Step Credits
4325
+ * @description This item's own AI-credit cost, priced from cached model pricing for its usage — not the authoritative LiteLLM cost (that's captured once per call into the turn-level ledger, not correlated back to a specific step). An estimate for relative step-to-step cost while streaming.
4326
+ */
4327
+ step_credits?: number | null;
4263
4328
  /**
4264
4329
  * Total Tokens
4265
4330
  * @description Cumulative tokens across the response so far.
@@ -4468,6 +4533,13 @@ interface components {
4468
4533
  /** Session Id */
4469
4534
  session_id?: string | null;
4470
4535
  };
4536
+ /** Body_remind_note */
4537
+ Body_remind_note: {
4538
+ /** Remind At */
4539
+ remind_at?: string | null;
4540
+ /** Lead Minutes */
4541
+ lead_minutes?: number | null;
4542
+ };
4471
4543
  /**
4472
4544
  * ChangePasswordRequest
4473
4545
  * @description Password change request with signature-based auth.
@@ -4773,12 +4845,6 @@ interface components {
4773
4845
  * @default 0
4774
4846
  */
4775
4847
  MAX_TOKENS: number;
4776
- /**
4777
- * Max Iterations
4778
- * @description Maximum code-execute-fix retry cycles.
4779
- * @default 3
4780
- */
4781
- MAX_ITERATIONS: number;
4782
4848
  };
4783
4849
  /**
4784
4850
  * CommandDescriptorResponse
@@ -5118,7 +5184,7 @@ interface components {
5118
5184
  */
5119
5185
  ContactResponse: {
5120
5186
  /** External Id */
5121
- external_id: string;
5187
+ external_id?: string | null;
5122
5188
  /** Email */
5123
5189
  email: string;
5124
5190
  user?: components['schemas']['UserResponse'] | null;
@@ -5126,9 +5192,13 @@ interface components {
5126
5192
  * Status
5127
5193
  * @enum {string}
5128
5194
  */
5129
- status: 'invitation_pending' | 'invitation_expired' | 'registered';
5195
+ status: 'invitation_pending' | 'invitation_expired' | 'registered' | 'failed';
5130
5196
  /** Created At */
5131
5197
  created_at: string;
5198
+ /** Outcome */
5199
+ outcome?: ('invited' | 'reinvited' | 'not_resent_still_pending' | 'contact_added' | 'already_contact' | 'failed') | null;
5200
+ /** Outcome Detail */
5201
+ outcome_detail?: string | null;
5132
5202
  };
5133
5203
  /**
5134
5204
  * ContextUsage
@@ -5465,8 +5535,12 @@ interface components {
5465
5535
  * @enum {string}
5466
5536
  */
5467
5537
  source: 'manual' | 'learning' | 'curator';
5468
- /** Note Date */
5469
- note_date?: string | null;
5538
+ /** Date */
5539
+ date?: string | null;
5540
+ /** Date End */
5541
+ date_end?: string | null;
5542
+ /** Timezone */
5543
+ timezone?: string | null;
5470
5544
  /**
5471
5545
  * Tag Ext Ids
5472
5546
  * @default []
@@ -7464,8 +7538,14 @@ interface components {
7464
7538
  shared: boolean;
7465
7539
  /** Source */
7466
7540
  source: string;
7467
- /** Note Date */
7468
- note_date?: string | null;
7541
+ /** Date Start */
7542
+ date_start?: string | null;
7543
+ /** Date End */
7544
+ date_end?: string | null;
7545
+ /** Timezone */
7546
+ timezone?: string | null;
7547
+ /** Task Ext Id */
7548
+ task_ext_id?: string | null;
7469
7549
  /**
7470
7550
  * Tags
7471
7551
  * @default []
@@ -10366,6 +10446,16 @@ interface components {
10366
10446
  * @description Total cost: input_cost + output_cost (USD)
10367
10447
  */
10368
10448
  total_cost?: number | null;
10449
+ /**
10450
+ * Credits Spent
10451
+ * @description AI credits spent so far this turn (1 credit = $0.01), priced per LLM call using each call's own model — unlike total_cost above (single-rate, main query LLM only), this is correct across a turn that mixes models (agent LLM, deep_research/run_code child LLMs, evaluator, judge). Updates live as the turn progresses, not just a final total.
10452
+ */
10453
+ credits_spent?: number | null;
10454
+ /**
10455
+ * Credit Budget
10456
+ * @description This turn's shared credit budget (AGENT_TURN_CREDIT_BUDGET) — same value across the parent and every child it spawns. Absent when uncapped (budget=0).
10457
+ */
10458
+ credit_budget?: number | null;
10369
10459
  /**
10370
10460
  * Elapsed Seconds
10371
10461
  * @description Wall-clock time for the LLM call(s)
@@ -10473,7 +10563,7 @@ interface components {
10473
10563
  * UpdateNoteRequest
10474
10564
  * @description Patch a note. An edit to ``text`` soft-deletes the old row and
10475
10565
  * inserts a replacement (append + soft-delete lifecycle); ``pinned``/``shared``/
10476
- * ``note_date``/``tag_ext_ids`` update in place.
10566
+ * ``tag_ext_ids`` update in place.
10477
10567
  */
10478
10568
  UpdateNoteRequest: {
10479
10569
  /** Text */
@@ -10482,8 +10572,12 @@ interface components {
10482
10572
  pinned?: boolean | null;
10483
10573
  /** Shared */
10484
10574
  shared?: boolean | null;
10485
- /** Note Date */
10486
- note_date?: string | null;
10575
+ /** Date */
10576
+ date?: string | null;
10577
+ /** Date End */
10578
+ date_end?: string | null;
10579
+ /** Timezone */
10580
+ timezone?: string | null;
10487
10581
  /** Tag Ext Ids */
10488
10582
  tag_ext_ids?: string[] | null;
10489
10583
  citations?: components['schemas']['CitationSources'] | null;
@@ -14243,6 +14337,12 @@ interface operations {
14243
14337
  parameters: {
14244
14338
  query?: {
14245
14339
  pinned_only?: boolean;
14340
+ /** @description Range start, any precision ("2019", "2019-10") */
14341
+ date_from?: string | null;
14342
+ /** @description Range end, any precision */
14343
+ date_to?: string | null;
14344
+ /** @description Only notes that carry a date — the timeline view */
14345
+ dated_only?: boolean;
14246
14346
  };
14247
14347
  header?: never;
14248
14348
  path?: never;
@@ -14369,6 +14469,41 @@ interface operations {
14369
14469
  };
14370
14470
  };
14371
14471
  };
14472
+ remind_note: {
14473
+ parameters: {
14474
+ query?: never;
14475
+ header?: never;
14476
+ path: {
14477
+ note_ext_id: string;
14478
+ };
14479
+ cookie?: never;
14480
+ };
14481
+ requestBody?: {
14482
+ content: {
14483
+ 'application/json': components['schemas']['Body_remind_note'];
14484
+ };
14485
+ };
14486
+ responses: {
14487
+ /** @description Successful Response */
14488
+ 200: {
14489
+ headers: {
14490
+ [name: string]: unknown;
14491
+ };
14492
+ content: {
14493
+ 'application/json': components['schemas']['NoteResponse'];
14494
+ };
14495
+ };
14496
+ /** @description Validation Error */
14497
+ 422: {
14498
+ headers: {
14499
+ [name: string]: unknown;
14500
+ };
14501
+ content: {
14502
+ 'application/json': components['schemas']['HTTPValidationError'];
14503
+ };
14504
+ };
14505
+ };
14506
+ };
14372
14507
  get_websocket_schema: {
14373
14508
  parameters: {
14374
14509
  query?: never;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arbidocs/client",
3
- "version": "0.3.139",
3
+ "version": "0.3.141",
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",