Candor Finance
Server Details
Personal-finance workspace for AI agents: accounts, spending, budgets, goals, and investments.
- Status
- Healthy
- OAuth
- Works in Glama
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- candorsystems/candor-finance
- GitHub Stars
- 2
- Server Listing
- candor-finance
TDQS
Scored across 11 tools
Each tool has a distinct role (query, write, preview, schema discovery, snapshot, visualize, etc.), and cross-references clarify boundaries. Slight overlap exists between candor_open, candor_query, and candor_snapshot as read-style tools, but their scopes are differentiated enough that an agent can reliably select among them.
All tools follow a consistent candor_<verb> pattern with clear verbs: changes, configure_overview, connections, get, open, preview, query, schema, snapshot, visualize, write. The naming is uniform, predictable, and reflects each tool's action.
11 tools is well within the ideal range for a financial API MCP server. Each tool covers a distinct API surface area: discovery, reads, writes, preview, configuration, visualization, and connection management, so no tool feels redundant or excessive.
The tool set provides a strong end-to-end workflow: schema discovery, querying, reading openings, writing acknowledgments, previewing mutations, executing writes, and visualizing overviews. Minor gaps exist such as no explicit disconnect tool (connections are web-portal only) and no dedicated batch operation, but the core financial inspection/action lifecycle is well covered.
Available Tools
11 toolscandor_changesInspect Candor changesAInspect
Inspect computed comparisons for spending, income, recurring payments, account terms, and investment positions, with basis handles and coverage caveats. Spending and income use inclusive since/until and comparison_since/comparison_until date ranges and compare recorded posted totals, not normalized rates. Without ranges the last complete UTC calendar month is compared with the preceding month; the response reports both date ranges. limit trims output items and never changes the financial comparison. Source history may be incomplete; capped evidence suppresses spending and income comparisons. Use candor_open for new activity and current attention, candor_get for an exact record, candor_query for dated dataset rows, and candor_snapshot for scoped analysis across datasets. This read records action history and an audit event using reason, but does not advance the shared opening checkpoint, mark activity seen, resolve attention, or consume due notes. Acknowledge a processed opening separately through its open.acknowledge next action.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum change items to return, from 1 to 1000; defaults to 25. Only trims output, never the comparison evidence. | |
| since | No | Inclusive start of the current range (YYYY-MM-DD). Supply all four range dates for spending or income comparisons. | |
| until | No | Inclusive end of the current range (YYYY-MM-DD). | |
| domain | No | Restrict to one change domain; omitted or all includes every supported domain. Values: all, spending, income, recurring, account_terms, investments. | |
| reason | No | Concise user-visible purpose recorded in immutable action history, including for financial reads. A reason is not approval. Root operations require it except fixed-reason orientation operations; continuations inherit the parent reason only when no reason is supplied. Fixed-reason orientation operations always use their system reason. | |
| task_key | No | Optional stable label grouping operations for the same user task. Omit to inherit the parent task key, if any. It does not schedule work or provide idempotency. | |
| parent_action | No | Existing action id in this workspace, typically returned in next_actions, whose root identity this continuation inherits. An omitted reason inherits the parent reason; an explicit reason is preserved, except for fixed-reason orientation operations. Omit for a new root action. | |
| comparison_since | No | Inclusive start of the comparison range (YYYY-MM-DD). | |
| comparison_until | No | Inclusive end of the comparison range (YYYY-MM-DD). | |
| account_identity_id | No | Restrict changes to one durable account identity before applying history caps. This scope applies to every domain; for investments it reads that account's own position observations, so a busy vault cannot crowd the account out of the capped read. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| action | No | |
| errors | Yes | |
| status | Yes | |
| metadata | No | |
| warnings | Yes | |
| request_id | Yes | |
| generated_at | Yes | |
| next_actions | Yes | |
| user_message | No | |
| data_freshness | No | |
| schema_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Even though annotations are sparse, the description discloses the tool's side-effect profile: it records action history and an audit event using reason, but does not advance the shared opening checkpoint, mark activity seen, resolve attention, or consume due notes. It also explains default date-range behavior and source-history incompleteness, going well beyond what the annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but every sentence earns its place: purpose, default behavior, limitations, sibling routing, and side-effect caveats are all covered. The main purpose is front-loaded, though the density of caveats makes it heavier than strictly necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 10 parameters, existing output schema, and side-effecting behavior, the description covers defaults, parameter semantics, side effects, and sibling distinctions comprehensively. An agent has enough context to call the tool correctly without needing other sources.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3, but the description adds meaningful semantics: since/until and comparison_since/comparison_until are inclusive and compare posted totals rather than normalized rates, the default range behavior is defined, and limit only trims output rather than affecting the comparison. This goes beyond the individual parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the specific verb 'Inspect computed comparisons' and enumerates the supported domains: spending, income, recurring payments, account terms, and investment positions. It also differentiates itself by naming sibling tools for different purposes, so an agent can distinguish it without opening other schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly routes to alternatives: candor_open for new activity and current attention, candor_get for exact records, candor_query for dated rows, and candor_snapshot for scoped cross-dataset analysis. It also clarifies behavioral boundaries such as 'limit trims output items and never changes the financial comparison' and conditions like capped evidence suppressing comparisons.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
candor_configure_overviewConfigure Candor OverviewADestructiveInspect
Save exactly five unique panels as the workspace Overview. Reuse idempotency_key for transport retries, which replay the original result. After a refused action and access recovery, start a new save with a new key. Returns the saved configuration or an access recovery envelope; candor_visualize reads the configured Overview or individual panels.
| Name | Required | Description | Default |
|---|---|---|---|
| panels | Yes | ||
| reason | No | Concise user-visible purpose recorded in immutable action history, including for financial reads. A reason is not approval. Root operations require it except fixed-reason orientation operations; continuations inherit the parent reason only when no reason is supplied. Fixed-reason orientation operations always use their system reason. | |
| task_key | No | Optional stable label grouping operations for the same user task. Omit to inherit the parent task key, if any. It does not schedule work or provide idempotency. | |
| parent_action | No | Existing action id in this workspace, typically returned in next_actions, whose root identity this continuation inherits. An omitted reason inherits the parent reason; an explicit reason is preserved, except for fixed-reason orientation operations. Omit for a new root action. | |
| idempotency_key | No | Stable opaque identity for one logical POST. Reuse only with the same method, path, actor, and body for transport retries. A completed receipt replays its original result, including a refusal; changed input with the same key is rejected. After a refused action and access recovery, use a new key for the new attempt. Follow retryable and recovery guidance if the operation is still running or its outcome is unknown. If omitted, MCP derives a key from this request identity; use an explicit key to deduplicate separate tool invocations. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true and idempotentHint=false, but the description adds meaningful behavioral detail: that reusing idempotency_key replays the original result, that a new key is required after a refused action and access recovery, and that the return may be an 'access recovery envelope'. This goes beyond the annotation flags without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is composed of three tightly scoped sentences, front-loaded with the core action and constraint. It avoids redundancy and every clause adds operational value (panels constraint, idempotency behavior, recovery requirement, return type, and reading sibling). No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the operation's complexity (5 parameters, output schema, destructive annotation), the description covers essential context: exact panel count, retry semantics, recovery handling, and the return type. The existence of an output schema means return values need not be detailed. A small gap is the absence of any prerequisite or condition stating when configuration is allowed, but the description is otherwise complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 80%, with detailed descriptions for reason, task_key, parent_action, and idempotency_key. The description adds minimal parameter-specific value: it reiterates the panels constraint ('exactly five unique panels') and the idempotency_key retry behavior, both already covered by schema descriptions. Thus a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Save exactly five unique panels as the workspace Overview.' It specifies the resource (Overview), the constraint (exactly five unique panels), and the expected result (returns saved configuration or access recovery envelope). It also differentiates from candor_visualize by noting that the latter reads the Overview, making the separation of concerns obvious.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context on when to use this tool: to configure the Overview, and indirectly when not to use it by mentioning candor_visualize reads the configured Overview. It also gives operational guidance on idempotency_key reuse for retries and recovery after refused actions. However, it does not explicitly enumerate exclusions or alternatives beyond candor_visualize, so a slight deduction from a perfect score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
candor_connectionsRefresh Candor connectionsADestructiveInspect
Refresh already-connected sources through the Candor API. Financial-source connection, reconnection, and disconnection happen only in the secure Candor web portal; query the accounts dataset to inspect connected financial accounts.
| Name | Required | Description | Default |
|---|---|---|---|
| args | No | Arguments listed in accepted_args by candor_schema for the selected operation, including declared shorthand such as open.acknowledge checkpoint. Put action context such as parent_action at the top level, including when it comes from a returned next action. Request-body fields belong in input unless the operation explicitly accepts them as shorthand args. | |
| input | No | Inline request body matching the operation input schema returned by candor_schema. Put fields such as a note's about link inside this object. | |
| reason | No | Concise user-visible purpose recorded in immutable action history, including for financial reads. A reason is not approval. Root operations require it except fixed-reason orientation operations; continuations inherit the parent reason only when no reason is supplied. Fixed-reason orientation operations always use their system reason. | |
| task_key | No | Optional stable label grouping operations for the same user task. Omit to inherit the parent task key, if any. It does not schedule work or provide idempotency. | |
| operation | Yes | Exact operation id from candor_schema, such as notes.create. Use the tool indicated by its calls.mcp or next_call. | |
| parent_action | No | Existing action id in this workspace, typically returned in next_actions, whose root identity this continuation inherits. An omitted reason inherits the parent reason; an explicit reason is preserved, except for fixed-reason orientation operations. Omit for a new root action. | |
| idempotency_key | No | Stable opaque identity for one logical POST. Reuse only with the same method, path, actor, and body for transport retries. A completed receipt replays its original result, including a refusal; changed input with the same key is rejected. After a refused action and access recovery, use a new key for the new attempt. Follow retryable and recovery guidance if the operation is still running or its outcome is unknown. If omitted, MCP derives a key from this request identity; use an explicit key to deduplicate separate tool invocations. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| action | No | |
| errors | Yes | |
| status | Yes | |
| metadata | No | |
| warnings | Yes | |
| request_id | Yes | |
| generated_at | Yes | |
| next_actions | Yes | |
| user_message | No | |
| data_freshness | No | |
| schema_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already carry readOnlyHint=false, destructiveHint=true, and idempotentHint=false, so the agent knows this is a mutating, non-idempotent operation. The description adds useful context about the portal-only boundary for connection lifecycle. However, it doesn't explain what 'refresh' changes or what destructive behavior might be implied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, both information-dense, with the core purpose front-loaded and the boundary condition in the second sentence. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a wrapper tool with 7 generic parameters, an output schema, and annotations covering safety, the description covers the essential selection facts: what it refreshes, what it cannot do, and where to inspect accounts. A small gap is not naming the sibling or explaining the effect of refresh.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are documented elsewhere. The description adds no parameter-specific guidance beyond naming the operation (refresh), which is acceptable but not additive.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Refresh') and a specific resource ('already-connected sources through the Candor API'). It also distinguishes itself by stating what it does not do: connection, reconnection, and disconnection happen only in the web portal, and inspection is done via the accounts dataset. This separates it from the sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit when-not: connection/reconnection/disconnection are excluded from this tool, and inspecting accounts should be done by querying the accounts dataset. It doesn't explicitly name a sibling tool as an alternative, but the routing guidance is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
candor_getGet Candor objectAInspect
Read one typed object or exact GET operation through the Candor API. Describe an unfamiliar operation with candor_schema before supplying its operation-specific args. The full response returns in this tool result. This read records private action history and audit events without changing financial records.
| Name | Required | Description | Default |
|---|---|---|---|
| args | No | Arguments listed in accepted_args by candor_schema for the selected operation, including declared shorthand such as open.acknowledge checkpoint. Put action context such as parent_action at the top level, including when it comes from a returned next action. Request-body fields belong in input unless the operation explicitly accepts them as shorthand args. | |
| input | No | Inline request body matching the operation input schema returned by candor_schema. Put fields such as a note's about link inside this object. | |
| reason | No | Concise user-visible purpose recorded in immutable action history, including for financial reads. A reason is not approval. Root operations require it except fixed-reason orientation operations; continuations inherit the parent reason only when no reason is supplied. Fixed-reason orientation operations always use their system reason. | |
| task_key | No | Optional stable label grouping operations for the same user task. Omit to inherit the parent task key, if any. It does not schedule work or provide idempotency. | |
| operation | Yes | Exact operation id from candor_schema, such as notes.create. Use the tool indicated by its calls.mcp or next_call. | |
| parent_action | No | Existing action id in this workspace, typically returned in next_actions, whose root identity this continuation inherits. An omitted reason inherits the parent reason; an explicit reason is preserved, except for fixed-reason orientation operations. Omit for a new root action. | |
| idempotency_key | No | Stable opaque identity for one logical POST. Reuse only with the same method, path, actor, and body for transport retries. A completed receipt replays its original result, including a refusal; changed input with the same key is rejected. After a refused action and access recovery, use a new key for the new attempt. Follow retryable and recovery guidance if the operation is still running or its outcome is unknown. If omitted, MCP derives a key from this request identity; use an explicit key to deduplicate separate tool invocations. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| action | No | |
| errors | Yes | |
| status | Yes | |
| metadata | No | |
| warnings | Yes | |
| request_id | Yes | |
| generated_at | Yes | |
| next_actions | Yes | |
| user_message | No | |
| data_freshness | No | |
| schema_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the operation records private action history and audit events and does not change financial records, adding useful nuance beyond the annotations. This is especially valuable because the tool is called a 'read' yet has side effects, which aligns with readOnlyHint=false rather than contradicting it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each earning its place: the core action is front-loaded, followed by a practical prerequisite and a behavioral caveat. There is no redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the rich schema descriptions, annotations, and presence of an output schema, the description covers all essential behavioral context. It states the full response returns in the tool result, mentions the candor_schema prerequisite, and clarifies the side-effect profile, making it complete for an agent to select and invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so the baseline is 3. The description does not add parameter-level meaning beyond mentioning operation-specific args and candor_schema; the schema already thoroughly explains args, input, reason, parent_action, task_key, and idempotency_key.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Read') and resource ('one typed object or exact GET operation through the Candor API'), making the core action clear. It does not explicitly distinguish itself from sibling tools such as candor_query or candor_open, though 'exact GET operation' provides some implicit contrast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit procedural guidance: consult candor_schema for unfamiliar operations before supplying args. It also sets the expectation of exact GET operations, but it does not mention when not to use this tool or explicitly name alternatives like candor_query or candor_write.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
candor_openOpen CandorAInspect
Read the workspace, or use mode=pulse for a compact inspection signal that carries no checkpoint. In the default opening mode the checkpoint is data.new_since_checkpoint.checkpoint_candidate, and the open.acknowledge entry in next_actions carries the same value as args.checkpoint; acknowledgment is a separate candor_write operation after processing that opening. This read records private action history and audit events without changing financial records. Return workspace context, financial position, approved state, new activity, factual attention, and executable next actions. Reading does not advance the shared checkpoint. The checkpoint for this opening is data.new_since_checkpoint.checkpoint_candidate; the same value is carried as args.checkpoint on the open.acknowledge entry in next_actions, so find that entry by command rather than by position. After processing this opening, acknowledge that exact checkpoint to mark activity as seen; acknowledgement does not resolve attention or due notes.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | ||
| reason | No | Concise user-visible purpose recorded in immutable action history, including for financial reads. A reason is not approval. Root operations require it except fixed-reason orientation operations; continuations inherit the parent reason only when no reason is supplied. Fixed-reason orientation operations always use their system reason. | |
| task_key | No | Optional stable label grouping operations for the same user task. Omit to inherit the parent task key, if any. It does not schedule work or provide idempotency. | |
| parent_action | No | Existing action id in this workspace, typically returned in next_actions, whose root identity this continuation inherits. An omitted reason inherits the parent reason; an explicit reason is preserved, except for fixed-reason orientation operations. Omit for a new root action. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| action | No | |
| errors | Yes | |
| status | Yes | |
| metadata | No | |
| warnings | Yes | |
| request_id | Yes | |
| generated_at | Yes | |
| next_actions | Yes | |
| user_message | No | |
| data_freshness | No | |
| schema_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses important behavioral traits beyond annotations: reading records private action history and audit events without changing financial records, reading does not advance the shared checkpoint, and acknowledgment does not resolve attention or due notes. It also explains the checkpoint/acknowledgment mechanism in detail. These statements do not contradict readOnlyHint=false, since audit recording is a side effect without financial mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the main purpose and contains rich operational detail, but it repeats the checkpoint/args.checkpoint relationship almost verbatim twice, making it longer than necessary. A single consolidated explanation of the checkpoint flow would be tighter without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema and four optional parameters, the description is complete enough for an agent to invoke the tool correctly. It covers purpose, mode differences, side effects, checkpoint behavior, the acknowledgment step as a separate candor_write operation, and the limits of acknowledgment. Nothing essential to executing the operation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75%, and the parameters reason, task_key, and parent_action already carry detailed schema-level descriptions. The description adds meaningful semantics for mode, explaining that pulse is a compact inspection signal with no checkpoint while the default opening mode carries a checkpoint. This compensates for the one parameter that lacks schema-level description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action: 'Read the workspace' and enumerates the returned content, including workspace context, financial position, approved state, new activity, factual attention, and executable next actions. It also distinguishes the default opening mode from the compact pulse mode. However, it does not explicitly contrast candor_open with sibling read tools like candor_get or candor_query, so sibling differentiation is implicit rather than named.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives concrete usage guidance for mode selection: use mode=pulse for a compact inspection signal with no checkpoint, otherwise use the default opening mode. It also describes the required follow-up acknowledgment via candor_write and cautions that the open.acknowledge entry must be located by command rather than position. It does not state when to prefer candor_open over sibling read tools, but the operational flow is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
candor_previewPreview Candor changesAInspect
Preview a POST operation through the Candor API without applying the proposed changes. candor_schema describes the preview operation and its arguments or input schema. Previews record private action history and audit events.
| Name | Required | Description | Default |
|---|---|---|---|
| args | No | Arguments listed in accepted_args by candor_schema for the selected operation, including declared shorthand such as open.acknowledge checkpoint. Put action context such as parent_action at the top level, including when it comes from a returned next action. Request-body fields belong in input unless the operation explicitly accepts them as shorthand args. | |
| input | No | Inline request body matching the operation input schema returned by candor_schema. Put fields such as a note's about link inside this object. | |
| reason | No | Concise user-visible purpose recorded in immutable action history, including for financial reads. A reason is not approval. Root operations require it except fixed-reason orientation operations; continuations inherit the parent reason only when no reason is supplied. Fixed-reason orientation operations always use their system reason. | |
| task_key | No | Optional stable label grouping operations for the same user task. Omit to inherit the parent task key, if any. It does not schedule work or provide idempotency. | |
| operation | Yes | Exact operation id from candor_schema, such as notes.create. Use the tool indicated by its calls.mcp or next_call. | |
| parent_action | No | Existing action id in this workspace, typically returned in next_actions, whose root identity this continuation inherits. An omitted reason inherits the parent reason; an explicit reason is preserved, except for fixed-reason orientation operations. Omit for a new root action. | |
| idempotency_key | No | Stable opaque identity for one logical POST. Reuse only with the same method, path, actor, and body for transport retries. A completed receipt replays its original result, including a refusal; changed input with the same key is rejected. After a refused action and access recovery, use a new key for the new attempt. Follow retryable and recovery guidance if the operation is still running or its outcome is unknown. If omitted, MCP derives a key from this request identity; use an explicit key to deduplicate separate tool invocations. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| action | No | |
| errors | Yes | |
| status | Yes | |
| metadata | No | |
| warnings | Yes | |
| request_id | Yes | |
| generated_at | Yes | |
| next_actions | Yes | |
| user_message | No | |
| data_freshness | No | |
| schema_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description discloses that previews record private action history and audit events, making clear the operation is not fully side-effect-free even though changes are not applied. 'Without applying the proposed changes' clarifies write semantics, and nothing contradicts the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with no filler: core behavior first, schema pointer second, side-effect disclosure third. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema and fully described parameters, the description plus schema covers what an agent needs: behavior, side effects, and the pointer to candor_schema for operation-specific arguments. It could be more complete by explicitly naming the applying sibling, but that is not a critical gap for a preview tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and each parameter already has a detailed schema description. The tool description itself adds no independent parameter semantics beyond referring to candor_schema for operation arguments, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a precise verb and object: it previews a POST operation through the Candor API and explicitly states it does not apply the proposed changes. This clearly distinguishes it from write/apply tools and from candor_schema, which describes operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Use is implied: preview is for inspecting a POST operation before applying it, and the description points to candor_schema for operation details. However, it never explicitly names an alternative like candor_write for actually applying changes, nor does it state when not to use preview.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
candor_queryQuery Candor dataAInspect
Run one limited query against a declared financial dataset in the Candor API. The full response returns in this tool result; use limit and cursor pagination to keep each page bounded. A cursor is bound to the exact filters of the page that issued it, so replay the returned next_actions call unchanged. This read records private action history and audit events without changing financial records. Run one bounded query against a declared financial dataset. Inspect the selected dataset schema for accepted filters and defaults; omitting filters uses those defaults. Cursor-paginated results keep records, calculations, and pagination under data.page. Calculations cover exactly the returned records, not later pages or the full workspace. Follow next_actions for the exact continuation, preserving the query filters.
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | Concise user-visible purpose recorded in immutable action history, including for financial reads. A reason is not approval. Root operations require it except fixed-reason orientation operations; continuations inherit the parent reason only when no reason is supplied. Fixed-reason orientation operations always use their system reason. | |
| dataset | Yes | Declared dataset to read. Inspect its schema when its fields or filters are unfamiliar. | |
| filters | No | Dataset query filters declared by candor_schema({dataset}), including supported limit and cursor fields. Omit to use that dataset's defaults. Do not put action context here. | |
| task_key | No | Optional stable label grouping operations for the same user task. Omit to inherit the parent task key, if any. It does not schedule work or provide idempotency. | |
| parent_action | No | Existing action id in this workspace, typically returned in next_actions, whose root identity this continuation inherits. An omitted reason inherits the parent reason; an explicit reason is preserved, except for fixed-reason orientation operations. Omit for a new root action. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| action | No | |
| errors | Yes | |
| status | Yes | |
| metadata | No | |
| warnings | Yes | |
| request_id | Yes | |
| generated_at | Yes | |
| next_actions | Yes | |
| user_message | No | |
| data_freshness | No | |
| schema_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations all set to false/negative, the description carries the responsibility and it does well: it discloses that reads are recorded in private action history and audit events, that financial records are not changed, and that an op cursor is bound to the exact filters of the page that issued it. It also explains that calculations cover only the returned records, not later pages.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded and substantive, but it repeats the core instruction ('Run one limited query...' and then 'Run one bounded query...') and states cursor/pagination guidance multiple times. It is redundant enough to cost it a higher score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with five parameters, one required parameter, an output schema, and non-helpful annotations, the description is largely complete: it covers the single-query constraint, filter defaults, cursor pagination, action-history side effects, and next_action continuation. It does not cover authorization or rate limits, but that is a minor gap given its complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes all parameters at 100% coverage, so the baseline is 3. The description raises the score by adding important behavioral guidance around parameters: cursor binding, replaying next_actions unchanged, filter defaults, and pagination placement under data.page.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action and scope: 'Run one limited query against a declared financial dataset in the Candor API' and clarifies it is a read that does not change financial records. It does not explicitly compare itself with sibling tools such as candor_get or candor_schema, so it misses the strongest distinction-level guidance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides implied usage guidance: inspect the selected dataset schema, omit filters to use defaults, use limit/cursor pagination, and follow next_actions for continuation. It does not state explicit when-to-use/when-not-to-use rules versus sibling tools, so the guidance is useful but not fully explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
candor_schemaInspect Candor schemaAInspect
Discover contracts before using unfamiliar datasets, filters, or operations. Choose one mode: omit selectors for the workspace schema index, or set dataset for one dataset schema; set operation for an exact operation contract and call shape; set query to search the operation catalog. dataset, operation, and query are mutually exclusive, with no precedence. limit applies only to query (default 10, maximum 10). Reuse a known current schema or an exact next_actions call without rediscovering it. This tool returns contracts, not financial records. Workspace and dataset schema reads record private action history and audit events; catalog searches and operation descriptions are local lookups.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum operation search matches; default 10. Valid only with query. | |
| query | No | Search operation names and capability descriptions. Use the returned operation id with operation for its full contract; do not combine with dataset or operation. | |
| reason | No | Concise user-visible purpose recorded in immutable action history, including for financial reads. A reason is not approval. Root operations require it except fixed-reason orientation operations; continuations inherit the parent reason only when no reason is supplied. Fixed-reason orientation operations always use their system reason. | |
| dataset | No | Inspect one dataset: fields, supported query filters, and coverage contract. Omit all selectors for the workspace schema index. | |
| task_key | No | Optional stable label grouping operations for the same user task. Omit to inherit the parent task key, if any. It does not schedule work or provide idempotency. | |
| operation | No | Describe one exact operation id, including accepted_args, input_schema when applicable, and invocation shape. Do not combine with dataset or query. | |
| parent_action | No | Existing action id in this workspace, typically returned in next_actions, whose root identity this continuation inherits. An omitted reason inherits the parent reason; an explicit reason is preserved, except for fixed-reason orientation operations. Omit for a new root action. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| action | No | |
| errors | Yes | |
| status | Yes | |
| metadata | No | |
| warnings | Yes | |
| request_id | Yes | |
| generated_at | Yes | |
| next_actions | Yes | |
| user_message | No | |
| data_freshness | No | |
| schema_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations carry no safety hints, so the description carries the full burden. It discloses that workspace and dataset schema reads record private action history and audit events, while catalog searches and operation descriptions are local lookups. It also explains the reason parameter is recorded in immutable action history, that a reason is not approval, and how parent_action inheritance works—far beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but each sentence carries load—purpose, modes, constraints, behavioral notes, and usage tips. It front-loads the core purpose and uses a logical mode-based structure. A couple of details (e.g., 'no precedence' and 'fixed-reason orientation operations') are dense but necessary for correctness. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter tool with an output schema and complex interaction rules, the description covers all critical aspects: parameter relationships, side effects, reason/parent semantics, and when to use each mode. It even preempts common mistakes (e.g., combining selectors, using limit without query). Nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds substantial meaning: mutual exclusivity rules, the scope of limit ('applies only to query, default 10, maximum 10'), reason semantics (immutability, not approval, root requirement, inheritance), task_key grouping behavior, and parent_action inheritance rules. These are not in the schema and materially affect correct invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a clear, specific purpose: 'Discover contracts before using unfamiliar datasets, filters, or operations.' It then enumerates the exact modes (workspace index, dataset, operation, query) and distinguishes the tool from siblings like candor_get and candor_query by focusing on contract discovery rather than data retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-to-use guidance ('before using unfamiliar datasets, filters, or operations') and detailed mode selection rules, including mutual exclusivity of dataset/operation/query, the scope of limit, and a tip to reuse known schemas or next_actions calls without rediscovering. It also clarifies that this tool returns contracts, not financial records, steering agents away from misuse.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
candor_snapshotBuild Candor snapshotAInspect
Compose an explicitly scoped analytical response using only the snapshot datasets declared by candor_schema. The full snapshot returns in this tool result; scope datasets and filters to keep it bounded. Dataset reads record private action history and audit events without changing financial records.
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | Concise user-visible purpose recorded in immutable action history, including for financial reads. A reason is not approval. Root operations require it except fixed-reason orientation operations; continuations inherit the parent reason only when no reason is supplied. Fixed-reason orientation operations always use their system reason. | |
| filters | No | Shared filters applied to each selected dataset query. Inspect each dataset schema for supported fields; omit for per-dataset defaults. The dataset selector is supplied by datasets. | |
| datasets | Yes | Unique declared datasets to include in this analytical snapshot; select only those needed for the analysis. | |
| task_key | No | Optional stable label grouping operations for the same user task. Omit to inherit the parent task key, if any. It does not schedule work or provide idempotency. | |
| parent_action | No | Existing action id in this workspace, typically returned in next_actions, whose root identity this continuation inherits. An omitted reason inherits the parent reason; an explicit reason is preserved, except for fixed-reason orientation operations. Omit for a new root action. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| action | No | |
| errors | Yes | |
| status | Yes | |
| metadata | No | |
| warnings | Yes | |
| request_id | Yes | |
| generated_at | Yes | |
| next_actions | Yes | |
| user_message | No | |
| data_freshness | No | |
| schema_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description reveals that dataset reads record private action history and audit events without changing financial records. This is valuable behavioral context beyond the annotations, which only state readOnlyHint=false, openWorldHint=false, idempotentHint=false, destructiveHint=false. It clarifies the nature of side effects without contradicting the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each carrying distinct information: purpose, result/scoping guidance, and side-effect behavior. The purpose is front-loaded and there is little wasted wording, though the phrase 'explicitly scoped analytical response' is slightly abstract and could be tightened.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists, the description need not explain return values. It covers the key operational concerns: which datasets are allowed, how to keep results bounded, and what side effects occur. It does not discuss alternate sibling use cases, but the schema-rich context and output schema make the definition adequate for invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already explains datasets, filters, reason, task_key, and parent_action. The description adds some operational guidance ('scope datasets and filters to keep it bounded') but does not materially expand on the parameter semantics beyond what the schema provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Compose an explicitly scoped analytical response') and a specific resource ('snapshot datasets declared by candor_schema'), which clearly identifies what the tool produces. It does not explicitly distinguish itself from sibling tools like candor_query or candor_get, but the 'snapshot' phrasing and dataset-scoping constraint make the purpose reasonably clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives practical in-tool guidance: 'scope datasets and filters to keep it bounded' and 'using only the snapshot datasets declared by candor_schema.' However, it never explicitly explains when to use this snapshot tool versus alternatives such as candor_query or candor_get, so the usage context is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
candor_visualizeVisualize Candor dataCInspect
Read one focused Candor panel or the stored Overview as text context, structured panel data, and a View in Candor link; hosts that declare MCP App rendering also draw the panel with the dashboard's own renderer. Hosts without rendering receive the text context and View in Candor link. Overview configuration is saved separately by candor_configure_overview. Panel reads record private action history and audit events without changing financial records.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | ||
| from | No | ||
| panel | No | ||
| panels | No | ||
| preset | No | ||
| reason | No | Concise user-visible purpose recorded in immutable action history, including for financial reads. A reason is not approval. Root operations require it except fixed-reason orientation operations; continuations inherit the parent reason only when no reason is supplied. Fixed-reason orientation operations always use their system reason. | |
| task_key | No | Optional stable label grouping operations for the same user task. Omit to inherit the parent task key, if any. It does not schedule work or provide idempotency. | |
| parent_action | No | Existing action id in this workspace, typically returned in next_actions, whose root identity this continuation inherits. An omitted reason inherits the parent reason; an explicit reason is preserved, except for fixed-reason orientation operations. Omit for a new root action. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description states the tool 'Read's data 'without changing financial records', implying a read-only operation. However, the annotations declare readOnlyHint=false, which directly contradicts the description's read-only claim. Per the contradiction rule, this dimension must be scored 1.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but well-organized, front-loading the core verb and resource in the first clause. The conditional rendering behavior and the note on overview configuration are relevant, though the description is longer than strictly necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 8 optional parameters and a complex rendering conditional, the description omits guidance on when to use panel vs panels, how preset interacts with date ranges, and what the action-history implications are beyond a read claim. The annotation contradiction further weakens its completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 38%, so the description needed to compensate by explaining parameters, but it does not. It never clarifies the relationship between to/from and preset, nor how to choose between panel and panels, relying on schema enums and existing inline descriptions instead.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool 'Read one focused Candor panel or the stored Overview' and enumerates the outputs: text context, structured panel data, and a View in Candor link. It also distinguishes itself from overview configuration by naming candor_configure_overview, but it does not differentiate from read siblings like candor_get or candor_query.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when reading a Candor panel or the stored Overview, and it notes that overview configuration belongs to candor_configure_overview. However, it gives no explicit guidance on when to choose this tool over other read-oriented siblings such as candor_get or candor_query, leaving alternatives to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
candor_writeWrite Candor stateADestructiveInspect
Create, update, or remove typed workspace state through validation and audited action history. Find an unfamiliar operation with candor_schema(query), then describe it with candor_schema(operation) for accepted_args, input_schema, confirmation requirements, and the correct tool. candor_preview provides read-only previews where supported; the operation contract defines any required prerequisites. A preview or reason does not grant approval. Put declared arguments in args and the request-body object in input. Includes open.acknowledge with args.checkpoint to mark a processed opening as seen. Returns an envelope with the changed object or receipt; inspect status, errors, and next_actions before assuming success. Invalid operations or arguments return schema recovery without executing the write. For an unknown outcome or an already-completed response that cannot be replayed, inspect workspace state before attempting another write.
| Name | Required | Description | Default |
|---|---|---|---|
| args | No | Arguments listed in accepted_args by candor_schema for the selected operation, including declared shorthand such as open.acknowledge checkpoint. Put action context such as parent_action at the top level, including when it comes from a returned next action. Request-body fields belong in input unless the operation explicitly accepts them as shorthand args. | |
| input | No | Inline request body matching the operation input schema returned by candor_schema. Put fields such as a note's about link inside this object. | |
| reason | No | Concise user-visible purpose recorded in immutable action history, including for financial reads. A reason is not approval. Root operations require it except fixed-reason orientation operations; continuations inherit the parent reason only when no reason is supplied. Fixed-reason orientation operations always use their system reason. | |
| task_key | No | Optional stable label grouping operations for the same user task. Omit to inherit the parent task key, if any. It does not schedule work or provide idempotency. | |
| operation | Yes | Exact operation id from candor_schema, such as notes.create. Use the tool indicated by its calls.mcp or next_call. | |
| parent_action | No | Existing action id in this workspace, typically returned in next_actions, whose root identity this continuation inherits. An omitted reason inherits the parent reason; an explicit reason is preserved, except for fixed-reason orientation operations. Omit for a new root action. | |
| idempotency_key | No | Stable opaque identity for one logical POST. Reuse only with the same method, path, actor, and body for transport retries. A completed receipt replays its original result, including a refusal; changed input with the same key is rejected. After a refused action and access recovery, use a new key for the new attempt. Follow retryable and recovery guidance if the operation is still running or its outcome is unknown. If omitted, MCP derives a key from this request identity; use an explicit key to deduplicate separate tool invocations. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| action | No | |
| errors | Yes | |
| status | Yes | |
| metadata | No | |
| warnings | Yes | |
| request_id | Yes | |
| generated_at | Yes | |
| next_actions | Yes | |
| user_message | No | |
| data_freshness | No | |
| schema_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, so the safety profile is known. The description adds substantial context beyond that: returns an envelope whose status/errors/next_actions must be inspected before assuming success, invalid operations return schema recovery without executing, previews/reasons do not grant approval, and unknown outcomes require inspecting workspace state before retrying. This materially helps an agent reason about post-conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long (~200 words) and dense, but every sentence earns its place given the tool's complexity: 7 parameters, nested objects, and a rich sibling ecosystem. The core purpose is front-loaded, and the operational guidance is grouped logically. Only minor redundancy around 'reason is not approval' (stated twice) keeps this from a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Remarkably complete for a tool at this complexity. It covers operation discovery, preview behavior, the args/input handoff, envelope return semantics, error recovery, idempotency guidance, and unknown-outcome handling — all without needing to explain the return shape since an output schema exists. Nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds value beyond the schema by explaining the critical args/input split (declared arguments vs request-body object), calling out the open.acknowledge checkpoint shorthand, and clarifying that reason is not approval. It does not restate schema content, which is the right division of labor.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb set (create/update/remove), the resource (typed workspace state), and the mechanism (validation and audited action history). The description also distinguishes itself from siblings by positioning candor_preview as the read-only counterpart and candor_schema as the operation-discovery tool, so an agent can tell them apart without inspecting sibling schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit when-to guidance: consult candor_schema(query) for unfamiliar operations, use candor_schema(operation) for accepted_args/input_schema/confirmation, and use candor_preview for read-only previews. It also states the args-vs-input split and the open.acknowledge shorthand, leaving little to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
11 tool updates
- Changed
candor_changes12 fields changed- added
Input schema / properties / account_identity_id / descriptionAdded value: +"Restrict changes to one durable account identity before applying history caps. This scope applies to every domain; for investments it reads that account's own position observations, so a busy vault cannot crowd the account out of the capped read." - added
Input schema / properties / comparison_sinceAdded value: +{ + "description": "Inclusive start of the comparison range (YYYY-MM-DD).", + "type": "string" +} - added
Input schema / properties / comparison_untilAdded value: +{ + "description": "Inclusive end of the comparison range (YYYY-MM-DD).", + "type": "string" +} - added
Input schema / properties / domain / descriptionAdded value: +"Restrict to one change domain; omitted or all includes every supported domain. Values: all, spending, income, recurring, account_terms, investments." - removed
Input schema / properties / inline_responseRemoved value: -{ - "description": "Return the full response payload in this MCP tool result instead of a resource link. Use only when the client can materialize large tool results into a code sandbox; the response may be very large.", - "type": "boolean" -} - added
Input schema / properties / limit / descriptionAdded value: +"Maximum change items to return, from 1 to 1000; defaults to 25. Only trims output, never the comparison evidence." - added
Input schema / properties / parent_action / descriptionAdded value: +"Existing action id in this workspace, typically returned in next_actions, whose root identity this continuation inherits. An omitted reason inherits the parent reason; an explicit reason is preserved, except for fixed-reason orientation operations. Omit for a new root action." - changed
Input schema / properties / reason / descriptionPrevious value: -"Concise user-visible reason recorded in action history."New value: +"Concise user-visible purpose recorded in immutable action history, including for financial reads. A reason is not approval. Root operations require it except fixed-reason orientation operations; continuations inherit the parent reason only when no reason is supplied. Fixed-reason orientation operations always use their system reason." - added
Input schema / properties / sinceAdded value: +{ + "description": "Inclusive start of the current range (YYYY-MM-DD). Supply all four range dates for spending or income comparisons.", + "type": "string" +} - added
Input schema / properties / task_key / descriptionAdded value: +"Optional stable label grouping operations for the same user task. Omit to inherit the parent task key, if any. It does not schedule work or provide idempotency." - added
Input schema / properties / untilAdded value: +{ + "description": "Inclusive end of the current range (YYYY-MM-DD).", + "type": "string" +} - removed
Input schema / requiredRemoved value: -[ - "reason" -]
- Changed
candor_configure_overview5 fields changed- added
Input schema / properties / idempotency_key / descriptionAdded value: +"Stable opaque identity for one logical POST. Reuse only with the same method, path, actor, and body for transport retries. A completed receipt replays its original result, including a refusal; changed input with the same key is rejected. After a refused action and access recovery, use a new key for the new attempt. Follow retryable and recovery guidance if the operation is still running or its outcome is unknown. If omitted, MCP derives a key from this request identity; use an explicit key to deduplicate separate tool invocations." - added
Input schema / properties / parent_action / descriptionAdded value: +"Existing action id in this workspace, typically returned in next_actions, whose root identity this continuation inherits. An omitted reason inherits the parent reason; an explicit reason is preserved, except for fixed-reason orientation operations. Omit for a new root action." - changed
Input schema / properties / reason / descriptionPrevious value: -"Concise user-visible reason recorded in action history."New value: +"Concise user-visible purpose recorded in immutable action history, including for financial reads. A reason is not approval. Root operations require it except fixed-reason orientation operations; continuations inherit the parent reason only when no reason is supplied. Fixed-reason orientation operations always use their system reason." - added
Input schema / properties / task_key / descriptionAdded value: +"Optional stable label grouping operations for the same user task. Omit to inherit the parent task key, if any. It does not schedule work or provide idempotency." - changed
Input schema / requiredPrevious value: -[ - "panels", - "reason" -]New value: +[ + "panels" +]
- Changed
candor_connections6 fields changed- added
Input schema / properties / idempotency_key / descriptionAdded value: +"Stable opaque identity for one logical POST. Reuse only with the same method, path, actor, and body for transport retries. A completed receipt replays its original result, including a refusal; changed input with the same key is rejected. After a refused action and access recovery, use a new key for the new attempt. Follow retryable and recovery guidance if the operation is still running or its outcome is unknown. If omitted, MCP derives a key from this request identity; use an explicit key to deduplicate separate tool invocations." - added
Input schema / properties / operation / descriptionAdded value: +"Exact operation id from candor_schema, such as notes.create. Use the tool indicated by its calls.mcp or next_call." - added
Input schema / properties / parent_action / descriptionAdded value: +"Existing action id in this workspace, typically returned in next_actions, whose root identity this continuation inherits. An omitted reason inherits the parent reason; an explicit reason is preserved, except for fixed-reason orientation operations. Omit for a new root action." - changed
Input schema / properties / reason / descriptionPrevious value: -"Concise user-visible reason recorded in action history."New value: +"Concise user-visible purpose recorded in immutable action history, including for financial reads. A reason is not approval. Root operations require it except fixed-reason orientation operations; continuations inherit the parent reason only when no reason is supplied. Fixed-reason orientation operations always use their system reason." - added
Input schema / properties / task_key / descriptionAdded value: +"Optional stable label grouping operations for the same user task. Omit to inherit the parent task key, if any. It does not schedule work or provide idempotency." - changed
Input schema / requiredPrevious value: -[ - "reason", - "operation" -]New value: +[ + "operation" +]
- Changed
candor_get7 fields changed- added
Input schema / properties / idempotency_key / descriptionAdded value: +"Stable opaque identity for one logical POST. Reuse only with the same method, path, actor, and body for transport retries. A completed receipt replays its original result, including a refusal; changed input with the same key is rejected. After a refused action and access recovery, use a new key for the new attempt. Follow retryable and recovery guidance if the operation is still running or its outcome is unknown. If omitted, MCP derives a key from this request identity; use an explicit key to deduplicate separate tool invocations." - removed
Input schema / properties / inline_responseRemoved value: -{ - "description": "Return the full response payload in this MCP tool result instead of a resource link. Use only when the client can materialize large tool results into a code sandbox; the response may be very large.", - "type": "boolean" -} - added
Input schema / properties / operation / descriptionAdded value: +"Exact operation id from candor_schema, such as notes.create. Use the tool indicated by its calls.mcp or next_call." - added
Input schema / properties / parent_action / descriptionAdded value: +"Existing action id in this workspace, typically returned in next_actions, whose root identity this continuation inherits. An omitted reason inherits the parent reason; an explicit reason is preserved, except for fixed-reason orientation operations. Omit for a new root action." - changed
Input schema / properties / reason / descriptionPrevious value: -"Concise user-visible reason recorded in action history."New value: +"Concise user-visible purpose recorded in immutable action history, including for financial reads. A reason is not approval. Root operations require it except fixed-reason orientation operations; continuations inherit the parent reason only when no reason is supplied. Fixed-reason orientation operations always use their system reason." - added
Input schema / properties / task_key / descriptionAdded value: +"Optional stable label grouping operations for the same user task. Omit to inherit the parent task key, if any. It does not schedule work or provide idempotency." - changed
Input schema / requiredPrevious value: -[ - "reason", - "operation" -]New value: +[ + "operation" +]
- Changed
candor_open4 fields changed- removed
Input schema / properties / inline_responseRemoved value: -{ - "description": "Return the full response payload in this MCP tool result instead of a resource link. Use only when the client can materialize large tool results into a code sandbox; the response may be very large.", - "type": "boolean" -} - added
Input schema / properties / parent_action / descriptionAdded value: +"Existing action id in this workspace, typically returned in next_actions, whose root identity this continuation inherits. An omitted reason inherits the parent reason; an explicit reason is preserved, except for fixed-reason orientation operations. Omit for a new root action." - changed
Input schema / properties / reason / descriptionPrevious value: -"Concise user-visible reason recorded in action history."New value: +"Concise user-visible purpose recorded in immutable action history, including for financial reads. A reason is not approval. Root operations require it except fixed-reason orientation operations; continuations inherit the parent reason only when no reason is supplied. Fixed-reason orientation operations always use their system reason." - added
Input schema / properties / task_key / descriptionAdded value: +"Optional stable label grouping operations for the same user task. Omit to inherit the parent task key, if any. It does not schedule work or provide idempotency."
- Changed
candor_preview7 fields changed- added
Input schema / properties / idempotency_key / descriptionAdded value: +"Stable opaque identity for one logical POST. Reuse only with the same method, path, actor, and body for transport retries. A completed receipt replays its original result, including a refusal; changed input with the same key is rejected. After a refused action and access recovery, use a new key for the new attempt. Follow retryable and recovery guidance if the operation is still running or its outcome is unknown. If omitted, MCP derives a key from this request identity; use an explicit key to deduplicate separate tool invocations." - removed
Input schema / properties / inline_responseRemoved value: -{ - "description": "Return the full response payload in this MCP tool result instead of a resource link. Use only when the client can materialize large tool results into a code sandbox; the response may be very large.", - "type": "boolean" -} - added
Input schema / properties / operation / descriptionAdded value: +"Exact operation id from candor_schema, such as notes.create. Use the tool indicated by its calls.mcp or next_call." - added
Input schema / properties / parent_action / descriptionAdded value: +"Existing action id in this workspace, typically returned in next_actions, whose root identity this continuation inherits. An omitted reason inherits the parent reason; an explicit reason is preserved, except for fixed-reason orientation operations. Omit for a new root action." - changed
Input schema / properties / reason / descriptionPrevious value: -"Concise user-visible reason recorded in action history."New value: +"Concise user-visible purpose recorded in immutable action history, including for financial reads. A reason is not approval. Root operations require it except fixed-reason orientation operations; continuations inherit the parent reason only when no reason is supplied. Fixed-reason orientation operations always use their system reason." - added
Input schema / properties / task_key / descriptionAdded value: +"Optional stable label grouping operations for the same user task. Omit to inherit the parent task key, if any. It does not schedule work or provide idempotency." - changed
Input schema / requiredPrevious value: -[ - "reason", - "operation" -]New value: +[ + "operation" +]
- Changed
candor_query7 fields changed- added
Input schema / properties / dataset / descriptionAdded value: +"Declared dataset to read. Inspect its schema when its fields or filters are unfamiliar." - changed
Input schema / properties / filters / descriptionPrevious value: -"Arguments listed in accepted_args by candor_schema for the selected operation, including declared shorthand such as open.acknowledge checkpoint. Put action context such as parent_action at the top level, including when it comes from a returned next action. Request-body fields belong in input unless the operation explicitly accepts them as shorthand args."New value: +"Dataset query filters declared by candor_schema({dataset}), including supported limit and cursor fields. Omit to use that dataset's defaults. Do not put action context here." - removed
Input schema / properties / inline_responseRemoved value: -{ - "description": "Return the full response payload in this MCP tool result instead of a resource link. Use only when the client can materialize large tool results into a code sandbox; the response may be very large.", - "type": "boolean" -} - added
Input schema / properties / parent_action / descriptionAdded value: +"Existing action id in this workspace, typically returned in next_actions, whose root identity this continuation inherits. An omitted reason inherits the parent reason; an explicit reason is preserved, except for fixed-reason orientation operations. Omit for a new root action." - changed
Input schema / properties / reason / descriptionPrevious value: -"Concise user-visible reason recorded in action history."New value: +"Concise user-visible purpose recorded in immutable action history, including for financial reads. A reason is not approval. Root operations require it except fixed-reason orientation operations; continuations inherit the parent reason only when no reason is supplied. Fixed-reason orientation operations always use their system reason." - added
Input schema / properties / task_key / descriptionAdded value: +"Optional stable label grouping operations for the same user task. Omit to inherit the parent task key, if any. It does not schedule work or provide idempotency." - changed
Input schema / requiredPrevious value: -[ - "reason", - "dataset" -]New value: +[ + "dataset" +]
- Changed
candor_schema8 fields changed- added
Input schema / properties / dataset / descriptionAdded value: +"Inspect one dataset: fields, supported query filters, and coverage contract. Omit all selectors for the workspace schema index." - removed
Input schema / properties / inline_responseRemoved value: -{ - "description": "Return the full response payload in this MCP tool result instead of a resource link. Use only when the client can materialize large tool results into a code sandbox; the response may be very large.", - "type": "boolean" -} - added
Input schema / properties / limit / descriptionAdded value: +"Maximum operation search matches; default 10. Valid only with query." - added
Input schema / properties / operation / descriptionAdded value: +"Describe one exact operation id, including accepted_args, input_schema when applicable, and invocation shape. Do not combine with dataset or query." - added
Input schema / properties / parent_action / descriptionAdded value: +"Existing action id in this workspace, typically returned in next_actions, whose root identity this continuation inherits. An omitted reason inherits the parent reason; an explicit reason is preserved, except for fixed-reason orientation operations. Omit for a new root action." - added
Input schema / properties / query / descriptionAdded value: +"Search operation names and capability descriptions. Use the returned operation id with operation for its full contract; do not combine with dataset or operation." - changed
Input schema / properties / reason / descriptionPrevious value: -"Concise user-visible reason recorded in action history."New value: +"Concise user-visible purpose recorded in immutable action history, including for financial reads. A reason is not approval. Root operations require it except fixed-reason orientation operations; continuations inherit the parent reason only when no reason is supplied. Fixed-reason orientation operations always use their system reason." - added
Input schema / properties / task_key / descriptionAdded value: +"Optional stable label grouping operations for the same user task. Omit to inherit the parent task key, if any. It does not schedule work or provide idempotency."
- Changed
candor_snapshot7 fields changed- added
Input schema / properties / datasets / descriptionAdded value: +"Unique declared datasets to include in this analytical snapshot; select only those needed for the analysis." - changed
Input schema / properties / filters / descriptionPrevious value: -"Arguments listed in accepted_args by candor_schema for the selected operation, including declared shorthand such as open.acknowledge checkpoint. Put action context such as parent_action at the top level, including when it comes from a returned next action. Request-body fields belong in input unless the operation explicitly accepts them as shorthand args."New value: +"Shared filters applied to each selected dataset query. Inspect each dataset schema for supported fields; omit for per-dataset defaults. The dataset selector is supplied by datasets." - removed
Input schema / properties / inline_responseRemoved value: -{ - "description": "Return the full response payload in this MCP tool result instead of a resource link. Use only when the client can materialize large tool results into a code sandbox; the response may be very large.", - "type": "boolean" -} - added
Input schema / properties / parent_action / descriptionAdded value: +"Existing action id in this workspace, typically returned in next_actions, whose root identity this continuation inherits. An omitted reason inherits the parent reason; an explicit reason is preserved, except for fixed-reason orientation operations. Omit for a new root action." - changed
Input schema / properties / reason / descriptionPrevious value: -"Concise user-visible reason recorded in action history."New value: +"Concise user-visible purpose recorded in immutable action history, including for financial reads. A reason is not approval. Root operations require it except fixed-reason orientation operations; continuations inherit the parent reason only when no reason is supplied. Fixed-reason orientation operations always use their system reason." - added
Input schema / properties / task_key / descriptionAdded value: +"Optional stable label grouping operations for the same user task. Omit to inherit the parent task key, if any. It does not schedule work or provide idempotency." - changed
Input schema / requiredPrevious value: -[ - "reason", - "datasets" -]New value: +[ + "datasets" +]
- Changed
candor_visualize5 fields changed- added
Input schema / properties / parent_action / descriptionAdded value: +"Existing action id in this workspace, typically returned in next_actions, whose root identity this continuation inherits. An omitted reason inherits the parent reason; an explicit reason is preserved, except for fixed-reason orientation operations. Omit for a new root action." - changed
Input schema / properties / reason / descriptionPrevious value: -"Concise user-visible reason recorded in action history."New value: +"Concise user-visible purpose recorded in immutable action history, including for financial reads. A reason is not approval. Root operations require it except fixed-reason orientation operations; continuations inherit the parent reason only when no reason is supplied. Fixed-reason orientation operations always use their system reason." - added
Input schema / properties / task_key / descriptionAdded value: +"Optional stable label grouping operations for the same user task. Omit to inherit the parent task key, if any. It does not schedule work or provide idempotency." - removed
Input schema / requiredRemoved value: -[ - "reason" -] - changed
Output schema / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "panels": { - "items": { - "oneOf": [ - { - "additionalProperties": false, - "properties": { - "account_count": { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - }, - "asset_accounts": { - "items": { - "additionalProperties": false, - "properties": { - "as_of": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "balance": { - "maxLength": 32, - "type": "string" - }, - "category": { - "minLength": 1, - "type": "string" - }, - "id": { - "minLength": 1, - "type": "string" - }, - "institution": { - "minLength": 1, - "type": "string" - }, - "mask": { - "type": "string" - }, - "name": { - "minLength": 1, - "type": "string" - } - }, - "required": [ - "as_of", - "category", - "id", - "name" - ], - "type": "object" - }, - "type": "array" - }, - "assets": { - "maxLength": 32, - "type": "string" - }, - "caveats": { - "items": { - "type": "string" - }, - "type": "array" - }, - "context": { - "additionalProperties": false, - "properties": { - "summary": { - "minLength": 1, - "type": "string" - }, - "talking_points": { - "items": { - "minLength": 1, - "type": "string" - }, - "type": "array" - }, - "visible_facts": { - "items": { - "additionalProperties": false, - "properties": { - "label": { - "minLength": 1, - "type": "string" - }, - "value": { - "minLength": 1, - "type": "string" - } - }, - "required": [ - "label", - "value" - ], - "type": "object" - }, - "type": "array" - } - }, - "required": [ - "summary", - "talking_points", - "visible_facts" - ], - "type": "object" - }, - "data_as_of": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "generated_at": { - "type": "string" - }, - "id": { - "const": "net-position", - "type": "string" - }, - "liabilities": { - "maxLength": 32, - "type": "string" - }, - "liability_accounts": { - "items": { - "additionalProperties": false, - "properties": { - "as_of": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "balance": { - "maxLength": 32, - "type": "string" - }, - "category": { - "minLength": 1, - "type": "string" - }, - "id": { - "minLength": 1, - "type": "string" - }, - "institution": { - "minLength": 1, - "type": "string" - }, - "mask": { - "type": "string" - }, - "name": { - "minLength": 1, - "type": "string" - } - }, - "required": [ - "as_of", - "category", - "id", - "name" - ], - "type": "object" - }, - "type": "array" - }, - "net": { - "maxLength": 32, - "type": "string" - }, - "period_change": { - "additionalProperties": false, - "properties": { - "assets": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "amount": { - "maxLength": 32, - "type": "string" - }, - "percent": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "since": { - "format": "date", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", - "type": "string" - } - }, - "required": [ - "amount", - "percent", - "since" - ], - "type": "object" - }, - { - "type": "null" - } - ] - }, - "liabilities": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "amount": { - "maxLength": 32, - "type": "string" - }, - "percent": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "since": { - "format": "date", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", - "type": "string" - } - }, - "required": [ - "amount", - "percent", - "since" - ], - "type": "object" - }, - { - "type": "null" - } - ] - }, - "net": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "amount": { - "maxLength": 32, - "type": "string" - }, - "percent": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "since": { - "format": "date", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", - "type": "string" - } - }, - "required": [ - "amount", - "percent", - "since" - ], - "type": "object" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "assets", - "liabilities", - "net" - ], - "type": "object" - }, - "presentation": { - "enum": [ - "summary", - "detail" - ], - "type": "string" - }, - "property_count": { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - }, - "range": { - "additionalProperties": false, - "properties": { - "from": { - "format": "date", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", - "type": "string" - }, - "label": { - "minLength": 1, - "type": "string" - }, - "preset": { - "enum": [ - "1w", - "1m", - "3m", - "ytd", - "1y" - ], - "type": "string" - }, - "to": { - "format": "date", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", - "type": "string" - } - }, - "required": [ - "from", - "label", - "to" - ], - "type": "object" - }, - "series": { - "items": { - "additionalProperties": false, - "properties": { - "date": { - "format": "date", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", - "type": "string" - }, - "provenance": { - "minLength": 1, - "type": "string" - }, - "value": { - "maxLength": 32, - "type": "string" - } - }, - "required": [ - "date", - "provenance", - "value" - ], - "type": "object" - }, - "type": "array" - }, - "title": { - "minLength": 1, - "type": "string" - }, - "version": { - "const": "dashboard_panel.v1", - "type": "string" - }, - "view_url": { - "format": "uri", - "type": "string" - } - }, - "required": [ - "caveats", - "context", - "data_as_of", - "generated_at", - "presentation", - "range", - "title", - "version", - "view_url", - "id", - "account_count", - "asset_accounts", - "assets", - "liability_accounts", - "liabilities", - "net", - "period_change", - "series" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "caveats": { - "items": { - "type": "string" - }, - "type": "array" - }, - "context": { - "additionalProperties": false, - "properties": { - "summary": { - "minLength": 1, - "type": "string" - }, - "talking_points": { - "items": { - "minLength": 1, - "type": "string" - }, - "type": "array" - }, - "visible_facts": { - "items": { - "additionalProperties": false, - "properties": { - "label": { - "minLength": 1, - "type": "string" - }, - "value": { - "minLength": 1, - "type": "string" - } - }, - "required": [ - "label", - "value" - ], - "type": "object" - }, - "type": "array" - } - }, - "required": [ - "summary", - "talking_points", - "visible_facts" - ], - "type": "object" - }, - "data_as_of": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "generated_at": { - "type": "string" - }, - "id": { - "const": "cash-flow", - "type": "string" - }, - "income": { - "maxLength": 32, - "type": "string" - }, - "net": { - "maxLength": 32, - "type": "string" - }, - "periods": { - "items": { - "additionalProperties": false, - "properties": { - "end": { - "format": "date", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", - "type": "string" - }, - "income": { - "maxLength": 32, - "type": "string" - }, - "label": { - "minLength": 1, - "type": "string" - }, - "net": { - "maxLength": 32, - "type": "string" - }, - "spending": { - "maxLength": 32, - "type": "string" - }, - "start": { - "format": "date", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", - "type": "string" - } - }, - "required": [ - "end", - "label", - "start", - "income", - "net", - "spending" - ], - "type": "object" - }, - "type": "array" - }, - "presentation": { - "enum": [ - "summary", - "detail" - ], - "type": "string" - }, - "range": { - "additionalProperties": false, - "properties": { - "from": { - "format": "date", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", - "type": "string" - }, - "label": { - "minLength": 1, - "type": "string" - }, - "preset": { - "enum": [ - "1w", - "1m", - "3m", - "ytd", - "1y" - ], - "type": "string" - }, - "to": { - "format": "date", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", - "type": "string" - } - }, - "required": [ - "from", - "label", - "to" - ], - "type": "object" - }, - "spending": { - "maxLength": 32, - "type": "string" - }, - "title": { - "minLength": 1, - "type": "string" - }, - "transaction_count": { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - }, - "version": { - "const": "dashboard_panel.v1", - "type": "string" - }, - "view_url": { - "format": "uri", - "type": "string" - } - }, - "required": [ - "caveats", - "context", - "data_as_of", - "generated_at", - "presentation", - "range", - "title", - "version", - "view_url", - "id", - "income", - "net", - "periods", - "spending", - "transaction_count" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "caveats": { - "items": { - "type": "string" - }, - "type": "array" - }, - "context": { - "additionalProperties": false, - "properties": { - "summary": { - "minLength": 1, - "type": "string" - }, - "talking_points": { - "items": { - "minLength": 1, - "type": "string" - }, - "type": "array" - }, - "visible_facts": { - "items": { - "additionalProperties": false, - "properties": { - "label": { - "minLength": 1, - "type": "string" - }, - "value": { - "minLength": 1, - "type": "string" - } - }, - "required": [ - "label", - "value" - ], - "type": "object" - }, - "type": "array" - } - }, - "required": [ - "summary", - "talking_points", - "visible_facts" - ], - "type": "object" - }, - "data_as_of": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "generated_at": { - "type": "string" - }, - "id": { - "const": "recent-transactions", - "type": "string" - }, - "presentation": { - "enum": [ - "summary", - "detail" - ], - "type": "string" - }, - "range": { - "additionalProperties": false, - "properties": { - "from": { - "format": "date", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", - "type": "string" - }, - "label": { - "minLength": 1, - "type": "string" - }, - "preset": { - "enum": [ - "1w", - "1m", - "3m", - "ytd", - "1y" - ], - "type": "string" - }, - "to": { - "format": "date", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", - "type": "string" - } - }, - "required": [ - "from", - "label", - "to" - ], - "type": "object" - }, - "rows": { - "items": { - "additionalProperties": false, - "properties": { - "amount": { - "maxLength": 32, - "type": "string" - }, - "category": { - "type": "string" - }, - "date": { - "format": "date", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", - "type": "string" - }, - "description": { - "minLength": 1, - "type": "string" - }, - "direction": { - "enum": [ - "inflow", - "neutral", - "outflow" - ], - "type": "string" - }, - "id": { - "minLength": 1, - "type": "string" - }, - "pending": { - "type": "boolean" - } - }, - "required": [ - "amount", - "date", - "description", - "direction", - "id", - "pending" - ], - "type": "object" - }, - "type": "array" - }, - "title": { - "minLength": 1, - "type": "string" - }, - "version": { - "const": "dashboard_panel.v1", - "type": "string" - }, - "view_url": { - "format": "uri", - "type": "string" - } - }, - "required": [ - "caveats", - "context", - "data_as_of", - "generated_at", - "presentation", - "range", - "title", - "version", - "view_url", - "id", - "rows" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "caveats": { - "items": { - "type": "string" - }, - "type": "array" - }, - "context": { - "additionalProperties": false, - "properties": { - "summary": { - "minLength": 1, - "type": "string" - }, - "talking_points": { - "items": { - "minLength": 1, - "type": "string" - }, - "type": "array" - }, - "visible_facts": { - "items": { - "additionalProperties": false, - "properties": { - "label": { - "minLength": 1, - "type": "string" - }, - "value": { - "minLength": 1, - "type": "string" - } - }, - "required": [ - "label", - "value" - ], - "type": "object" - }, - "type": "array" - } - }, - "required": [ - "summary", - "talking_points", - "visible_facts" - ], - "type": "object" - }, - "data_as_of": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "generated_at": { - "type": "string" - }, - "holding_count": { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - }, - "id": { - "const": "holdings", - "type": "string" - }, - "presentation": { - "enum": [ - "summary", - "detail" - ], - "type": "string" - }, - "range": { - "additionalProperties": false, - "properties": { - "from": { - "format": "date", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", - "type": "string" - }, - "label": { - "minLength": 1, - "type": "string" - }, - "preset": { - "enum": [ - "1w", - "1m", - "3m", - "ytd", - "1y" - ], - "type": "string" - }, - "to": { - "format": "date", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", - "type": "string" - } - }, - "required": [ - "from", - "label", - "to" - ], - "type": "object" - }, - "rows": { - "items": { - "additionalProperties": false, - "properties": { - "as_of": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "cost_basis": { - "maxLength": 32, - "type": "string" - }, - "day_change_percent": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "gain_loss": { - "maxLength": 32, - "type": "string" - }, - "id": { - "minLength": 1, - "type": "string" - }, - "name": { - "minLength": 1, - "type": "string" - }, - "quantity": { - "type": "string" - }, - "sparkline": { - "items": { - "additionalProperties": false, - "properties": { - "date": { - "format": "date", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", - "type": "string" - }, - "value": { - "maxLength": 32, - "type": "string" - } - }, - "required": [ - "date", - "value" - ], - "type": "object" - }, - "type": "array" - }, - "symbol": { - "type": "string" - }, - "value": { - "maxLength": 32, - "type": "string" - }, - "weight": { - "type": "number" - } - }, - "required": [ - "as_of", - "id", - "name" - ], - "type": "object" - }, - "type": "array" - }, - "title": { - "minLength": 1, - "type": "string" - }, - "total_value": { - "maxLength": 32, - "type": "string" - }, - "version": { - "const": "dashboard_panel.v1", - "type": "string" - }, - "view_url": { - "format": "uri", - "type": "string" - } - }, - "required": [ - "caveats", - "context", - "data_as_of", - "generated_at", - "presentation", - "range", - "title", - "version", - "view_url", - "id", - "rows", - "holding_count", - "total_value" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "account_count": { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - }, - "accounts": { - "items": { - "additionalProperties": false, - "properties": { - "as_of": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "balance": { - "maxLength": 32, - "type": "string" - }, - "basis": { - "enum": [ - "positions", - "source_observed" - ], - "type": "string" - }, - "id": { - "minLength": 1, - "type": "string" - }, - "institution": { - "minLength": 1, - "type": "string" - }, - "mask": { - "type": "string" - }, - "name": { - "minLength": 1, - "type": "string" - }, - "period_change": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "amount": { - "maxLength": 32, - "type": "string" - }, - "percent": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "since": { - "format": "date", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", - "type": "string" - } - }, - "required": [ - "amount", - "percent", - "since" - ], - "type": "object" - }, - { - "type": "null" - } - ] - }, - "reported_balance": { - "maxLength": 32, - "type": "string" - } - }, - "required": [ - "as_of", - "basis", - "id", - "name", - "period_change" - ], - "type": "object" - }, - "type": "array" - }, - "allocation": { - "items": { - "additionalProperties": false, - "properties": { - "holding_count": { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - }, - "type": { - "minLength": 1, - "type": "string" - }, - "value": { - "maxLength": 32, - "type": "string" - }, - "weight": { - "type": "number" - } - }, - "required": [ - "holding_count", - "type", - "value", - "weight" - ], - "type": "object" - }, - "type": "array" - }, - "allocation_basis": { - "enum": [ - "net", - "gross" - ], - "type": "string" - }, - "caveats": { - "items": { - "type": "string" - }, - "type": "array" - }, - "context": { - "additionalProperties": false, - "properties": { - "summary": { - "minLength": 1, - "type": "string" - }, - "talking_points": { - "items": { - "minLength": 1, - "type": "string" - }, - "type": "array" - }, - "visible_facts": { - "items": { - "additionalProperties": false, - "properties": { - "label": { - "minLength": 1, - "type": "string" - }, - "value": { - "minLength": 1, - "type": "string" - } - }, - "required": [ - "label", - "value" - ], - "type": "object" - }, - "type": "array" - } - }, - "required": [ - "summary", - "talking_points", - "visible_facts" - ], - "type": "object" - }, - "data_as_of": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "day_change": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "amount": { - "maxLength": 32, - "type": "string" - }, - "holding_count": { - "exclusiveMinimum": 0, - "maximum": 9007199254740991, - "type": "integer" - }, - "percent": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "amount", - "holding_count", - "percent" - ], - "type": "object" - }, - { - "type": "null" - } - ] - }, - "generated_at": { - "type": "string" - }, - "id": { - "const": "investments", - "type": "string" - }, - "latest_price_as_of": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "market_valued_account_count": { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - }, - "movers": { - "items": { - "additionalProperties": false, - "properties": { - "account_count": { - "exclusiveMinimum": 0, - "maximum": 9007199254740991, - "type": "integer" - }, - "day_change_amount": { - "maxLength": 32, - "type": "string" - }, - "day_change_percent": { - "type": "number" - }, - "holding_ids": { - "items": { - "minLength": 1, - "type": "string" - }, - "minItems": 1, - "type": "array" - }, - "id": { - "minLength": 1, - "type": "string" - }, - "name": { - "minLength": 1, - "type": "string" - }, - "session": { - "additionalProperties": false, - "properties": { - "closes_at": { - "type": "string" - }, - "market_date": { - "format": "date", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", - "type": "string" - }, - "opens_at": { - "type": "string" - }, - "points": { - "items": { - "additionalProperties": false, - "properties": { - "at": { - "type": "string" - }, - "price": { - "type": "string" - } - }, - "required": [ - "at", - "price" - ], - "type": "object" - }, - "minItems": 1, - "type": "array" - }, - "previous_close": { - "type": "string" - } - }, - "required": [ - "closes_at", - "market_date", - "opens_at", - "points", - "previous_close" - ], - "type": "object" - }, - "sparkline": { - "items": { - "additionalProperties": false, - "properties": { - "date": { - "format": "date", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", - "type": "string" - }, - "value": { - "maxLength": 32, - "type": "string" - } - }, - "required": [ - "date", - "value" - ], - "type": "object" - }, - "type": "array" - }, - "symbol": { - "type": "string" - }, - "value": { - "maxLength": 32, - "type": "string" - } - }, - "required": [ - "account_count", - "day_change_percent", - "holding_ids", - "id", - "name", - "value" - ], - "type": "object" - }, - "type": "array" - }, - "period_change": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "amount": { - "maxLength": 32, - "type": "string" - }, - "percent": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "since": { - "format": "date", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", - "type": "string" - } - }, - "required": [ - "amount", - "percent", - "since" - ], - "type": "object" - }, - { - "type": "null" - } - ] - }, - "presentation": { - "enum": [ - "summary", - "detail" - ], - "type": "string" - }, - "price_as_of": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "range": { - "additionalProperties": false, - "properties": { - "from": { - "format": "date", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", - "type": "string" - }, - "label": { - "minLength": 1, - "type": "string" - }, - "preset": { - "enum": [ - "1w", - "1m", - "3m", - "ytd", - "1y" - ], - "type": "string" - }, - "to": { - "format": "date", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", - "type": "string" - } - }, - "required": [ - "from", - "label", - "to" - ], - "type": "object" - }, - "series": { - "items": { - "additionalProperties": false, - "properties": { - "date": { - "format": "date", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", - "type": "string" - }, - "provenance": { - "minLength": 1, - "type": "string" - }, - "value": { - "maxLength": 32, - "type": "string" - } - }, - "required": [ - "date", - "provenance", - "value" - ], - "type": "object" - }, - "type": "array" - }, - "stale_quote_holding_count": { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - }, - "title": { - "minLength": 1, - "type": "string" - }, - "total_value": { - "maxLength": 32, - "type": "string" - }, - "version": { - "const": "dashboard_panel.v1", - "type": "string" - }, - "view_url": { - "format": "uri", - "type": "string" - } - }, - "required": [ - "caveats", - "context", - "data_as_of", - "generated_at", - "presentation", - "range", - "title", - "version", - "view_url", - "id", - "account_count", - "accounts", - "allocation_basis", - "allocation", - "day_change", - "market_valued_account_count", - "movers", - "period_change", - "latest_price_as_of", - "price_as_of", - "stale_quote_holding_count", - "series", - "total_value" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "caveats": { - "items": { - "type": "string" - }, - "type": "array" - }, - "context": { - "additionalProperties": false, - "properties": { - "summary": { - "minLength": 1, - "type": "string" - }, - "talking_points": { - "items": { - "minLength": 1, - "type": "string" - }, - "type": "array" - }, - "visible_facts": { - "items": { - "additionalProperties": false, - "properties": { - "label": { - "minLength": 1, - "type": "string" - }, - "value": { - "minLength": 1, - "type": "string" - } - }, - "required": [ - "label", - "value" - ], - "type": "object" - }, - "type": "array" - } - }, - "required": [ - "summary", - "talking_points", - "visible_facts" - ], - "type": "object" - }, - "data_as_of": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "generated_at": { - "type": "string" - }, - "id": { - "const": "spending", - "type": "string" - }, - "periods": { - "items": { - "additionalProperties": false, - "properties": { - "categories": { - "items": { - "additionalProperties": false, - "properties": { - "amount": { - "maxLength": 32, - "type": "string" - }, - "category": { - "minLength": 1, - "type": "string" - } - }, - "required": [ - "amount", - "category" - ], - "type": "object" - }, - "type": "array" - }, - "end": { - "format": "date", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", - "type": "string" - }, - "label": { - "minLength": 1, - "type": "string" - }, - "start": { - "format": "date", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", - "type": "string" - }, - "total": { - "maxLength": 32, - "type": "string" - } - }, - "required": [ - "end", - "label", - "start", - "categories", - "total" - ], - "type": "object" - }, - "type": "array" - }, - "presentation": { - "enum": [ - "summary", - "detail" - ], - "type": "string" - }, - "range": { - "additionalProperties": false, - "properties": { - "from": { - "format": "date", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", - "type": "string" - }, - "label": { - "minLength": 1, - "type": "string" - }, - "preset": { - "enum": [ - "1w", - "1m", - "3m", - "ytd", - "1y" - ], - "type": "string" - }, - "to": { - "format": "date", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", - "type": "string" - } - }, - "required": [ - "from", - "label", - "to" - ], - "type": "object" - }, - "rows": { - "items": { - "additionalProperties": false, - "properties": { - "amount": { - "maxLength": 32, - "type": "string" - }, - "category": { - "minLength": 1, - "type": "string" - }, - "transaction_count": { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - } - }, - "required": [ - "amount", - "category", - "transaction_count" - ], - "type": "object" - }, - "type": "array" - }, - "title": { - "minLength": 1, - "type": "string" - }, - "total": { - "maxLength": 32, - "type": "string" - }, - "transaction_count": { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - }, - "version": { - "const": "dashboard_panel.v1", - "type": "string" - }, - "view_url": { - "format": "uri", - "type": "string" - } - }, - "required": [ - "caveats", - "context", - "data_as_of", - "generated_at", - "presentation", - "range", - "title", - "version", - "view_url", - "id", - "rows", - "periods", - "total", - "transaction_count" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "actual": { - "maxLength": 32, - "type": "string" - }, - "caveats": { - "items": { - "type": "string" - }, - "type": "array" - }, - "configured": { - "type": "boolean" - }, - "context": { - "additionalProperties": false, - "properties": { - "summary": { - "minLength": 1, - "type": "string" - }, - "talking_points": { - "items": { - "minLength": 1, - "type": "string" - }, - "type": "array" - }, - "visible_facts": { - "items": { - "additionalProperties": false, - "properties": { - "label": { - "minLength": 1, - "type": "string" - }, - "value": { - "minLength": 1, - "type": "string" - } - }, - "required": [ - "label", - "value" - ], - "type": "object" - }, - "type": "array" - } - }, - "required": [ - "summary", - "talking_points", - "visible_facts" - ], - "type": "object" - }, - "data_as_of": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "days_elapsed": { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - }, - "days_in_period": { - "exclusiveMinimum": 0, - "maximum": 9007199254740991, - "type": "integer" - }, - "expected_to_date": { - "maxLength": 32, - "type": "string" - }, - "generated_at": { - "type": "string" - }, - "group_totals": { - "items": { - "additionalProperties": false, - "properties": { - "actual": { - "maxLength": 32, - "type": "string" - }, - "line_type": { - "enum": [ - "recurring", - "flexible", - "goal", - "cushion", - "other" - ], - "type": "string" - }, - "planned": { - "maxLength": 32, - "type": "string" - }, - "remaining": { - "maxLength": 32, - "type": "string" - } - }, - "required": [ - "actual", - "line_type", - "planned", - "remaining" - ], - "type": "object" - }, - "type": "array" - }, - "id": { - "const": "budget-status", - "type": "string" - }, - "pace_variance": { - "maxLength": 32, - "type": "string" - }, - "period": { - "pattern": "^\\d{4}-(0[1-9]|1[0-2])$", - "type": "string" - }, - "planned": { - "maxLength": 32, - "type": "string" - }, - "presentation": { - "enum": [ - "summary", - "detail" - ], - "type": "string" - }, - "range": { - "additionalProperties": false, - "properties": { - "from": { - "format": "date", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", - "type": "string" - }, - "label": { - "minLength": 1, - "type": "string" - }, - "preset": { - "enum": [ - "1w", - "1m", - "3m", - "ytd", - "1y" - ], - "type": "string" - }, - "to": { - "format": "date", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", - "type": "string" - } - }, - "required": [ - "from", - "label", - "to" - ], - "type": "object" - }, - "remaining": { - "maxLength": 32, - "type": "string" - }, - "row_count": { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - }, - "rows": { - "items": { - "additionalProperties": false, - "properties": { - "actual": { - "maxLength": 32, - "type": "string" - }, - "category": { - "minLength": 1, - "type": "string" - }, - "line_type": { - "enum": [ - "recurring", - "flexible", - "goal", - "cushion", - "other" - ], - "type": "string" - }, - "planned": { - "maxLength": 32, - "type": "string" - }, - "remaining": { - "maxLength": 32, - "type": "string" - }, - "status": { - "enum": [ - "not_started", - "over_budget", - "within_budget" - ], - "type": "string" - }, - "transaction_count": { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - } - }, - "required": [ - "actual", - "category", - "line_type", - "planned", - "remaining", - "status", - "transaction_count" - ], - "type": "object" - }, - "type": "array" - }, - "safe_to_spend": { - "maxLength": 32, - "type": "string" - }, - "series": { - "items": { - "additionalProperties": false, - "properties": { - "date": { - "format": "date", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", - "type": "string" - }, - "value": { - "maxLength": 32, - "type": "string" - } - }, - "required": [ - "date", - "value" - ], - "type": "object" - }, - "type": "array" - }, - "title": { - "minLength": 1, - "type": "string" - }, - "unplanned_count": { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - }, - "unplanned_rows": { - "items": { - "additionalProperties": false, - "properties": { - "actual": { - "maxLength": 32, - "type": "string" - }, - "category": { - "minLength": 1, - "type": "string" - }, - "transaction_count": { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - } - }, - "required": [ - "actual", - "category", - "transaction_count" - ], - "type": "object" - }, - "type": "array" - }, - "unplanned_total": { - "maxLength": 32, - "type": "string" - }, - "version": { - "const": "dashboard_panel.v1", - "type": "string" - }, - "view_url": { - "format": "uri", - "type": "string" - } - }, - "required": [ - "caveats", - "context", - "data_as_of", - "generated_at", - "presentation", - "range", - "title", - "version", - "view_url", - "id", - "actual", - "configured", - "days_elapsed", - "days_in_period", - "expected_to_date", - "group_totals", - "pace_variance", - "period", - "planned", - "remaining", - "row_count", - "rows", - "safe_to_spend", - "series", - "unplanned_count", - "unplanned_rows", - "unplanned_total" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "caveats": { - "items": { - "type": "string" - }, - "type": "array" - }, - "context": { - "additionalProperties": false, - "properties": { - "summary": { - "minLength": 1, - "type": "string" - }, - "talking_points": { - "items": { - "minLength": 1, - "type": "string" - }, - "type": "array" - }, - "visible_facts": { - "items": { - "additionalProperties": false, - "properties": { - "label": { - "minLength": 1, - "type": "string" - }, - "value": { - "minLength": 1, - "type": "string" - } - }, - "required": [ - "label", - "value" - ], - "type": "object" - }, - "type": "array" - } - }, - "required": [ - "summary", - "talking_points", - "visible_facts" - ], - "type": "object" - }, - "data_as_of": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "generated_at": { - "type": "string" - }, - "id": { - "const": "goals", - "type": "string" - }, - "period": { - "pattern": "^\\d{4}-(0[1-9]|1[0-2])$", - "type": "string" - }, - "presentation": { - "enum": [ - "summary", - "detail" - ], - "type": "string" - }, - "range": { - "additionalProperties": false, - "properties": { - "from": { - "format": "date", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", - "type": "string" - }, - "label": { - "minLength": 1, - "type": "string" - }, - "preset": { - "enum": [ - "1w", - "1m", - "3m", - "ytd", - "1y" - ], - "type": "string" - }, - "to": { - "format": "date", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", - "type": "string" - } - }, - "required": [ - "from", - "label", - "to" - ], - "type": "object" - }, - "rows": { - "items": { - "additionalProperties": false, - "properties": { - "contribution_amount": { - "maxLength": 32, - "type": "string" - }, - "contribution_cadence": { - "enum": [ - "weekly", - "biweekly", - "monthly", - "quarterly", - "annual" - ], - "type": "string" - }, - "days_elapsed": { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - }, - "days_remaining": { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - }, - "id": { - "minLength": 1, - "type": "string" - }, - "kind": { - "enum": [ - "debt_reduction", - "income", - "other", - "purchase", - "reserve", - "sinking_fund" - ], - "type": "string" - }, - "name": { - "minLength": 1, - "type": "string" - }, - "observed": { - "maxLength": 32, - "type": "string" - }, - "observed_this_period": { - "maxLength": 32, - "type": "string" - }, - "projected_completion_date": { - "format": "date", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", - "type": "string" - }, - "remaining": { - "maxLength": 32, - "type": "string" - }, - "required_contribution": { - "additionalProperties": false, - "properties": { - "amount": { - "maxLength": 32, - "type": "string" - }, - "cadence": { - "enum": [ - "weekly", - "biweekly", - "monthly", - "quarterly", - "annual" - ], - "type": "string" - } - }, - "required": [ - "amount", - "cadence" - ], - "type": "object" - }, - "series": { - "items": { - "additionalProperties": false, - "properties": { - "date": { - "format": "date", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", - "type": "string" - }, - "value": { - "maxLength": 32, - "type": "string" - } - }, - "required": [ - "date", - "value" - ], - "type": "object" - }, - "type": "array" - }, - "series_partial": { - "type": "boolean" - }, - "started_on": { - "format": "date", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", - "type": "string" - }, - "status": { - "enum": [ - "active", - "archived", - "completed", - "paused" - ], - "type": "string" - }, - "target": { - "maxLength": 32, - "type": "string" - }, - "target_date": { - "format": "date", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", - "type": "string" - } - }, - "required": [ - "days_elapsed", - "id", - "kind", - "name", - "series", - "series_partial", - "started_on", - "status" - ], - "type": "object" - }, - "type": "array" - }, - "title": { - "minLength": 1, - "type": "string" - }, - "version": { - "const": "dashboard_panel.v1", - "type": "string" - }, - "view_url": { - "format": "uri", - "type": "string" - } - }, - "required": [ - "caveats", - "context", - "data_as_of", - "generated_at", - "presentation", - "range", - "title", - "version", - "view_url", - "id", - "period", - "rows" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "candidates_count": { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - }, - "caveats": { - "items": { - "type": "string" - }, - "type": "array" - }, - "context": { - "additionalProperties": false, - "properties": { - "summary": { - "minLength": 1, - "type": "string" - }, - "talking_points": { - "items": { - "minLength": 1, - "type": "string" - }, - "type": "array" - }, - "visible_facts": { - "items": { - "additionalProperties": false, - "properties": { - "label": { - "minLength": 1, - "type": "string" - }, - "value": { - "minLength": 1, - "type": "string" - } - }, - "required": [ - "label", - "value" - ], - "type": "object" - }, - "type": "array" - } - }, - "required": [ - "summary", - "talking_points", - "visible_facts" - ], - "type": "object" - }, - "data_as_of": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "generated_at": { - "type": "string" - }, - "has_recurring_items": { - "type": "boolean" - }, - "horizon_days": { - "exclusiveMinimum": 0, - "maximum": 9007199254740991, - "type": "integer" - }, - "id": { - "const": "coming-up", - "type": "string" - }, - "month": { - "additionalProperties": false, - "properties": { - "left_to_pay": { - "additionalProperties": { - "maxLength": 32, - "type": "string" - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "paid_so_far": { - "additionalProperties": { - "maxLength": 32, - "type": "string" - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "payments": { - "items": { - "additionalProperties": false, - "properties": { - "account_label": { - "minLength": 1, - "type": "string" - }, - "amount": { - "maxLength": 32, - "type": "string" - }, - "cadence": { - "minLength": 1, - "type": "string" - }, - "category": { - "minLength": 1, - "type": "string" - }, - "date": { - "format": "date", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", - "type": "string" - }, - "id": { - "minLength": 1, - "type": "string" - }, - "merchant_name": { - "minLength": 1, - "type": "string" - }, - "recurring_item_id": { - "minLength": 1, - "type": "string" - }, - "status": { - "enum": [ - "paid", - "expected" - ], - "type": "string" - }, - "transaction_id": { - "minLength": 1, - "type": "string" - } - }, - "required": [ - "id", - "recurring_item_id", - "merchant_name", - "cadence", - "date", - "amount", - "status" - ], - "type": "object" - }, - "type": "array" - }, - "period": { - "pattern": "^\\d{4}-(0[1-9]|1[0-2])$", - "type": "string" - } - }, - "required": [ - "period", - "left_to_pay", - "paid_so_far" - ], - "type": "object" - }, - "presentation": { - "enum": [ - "summary", - "detail" - ], - "type": "string" - }, - "range": { - "additionalProperties": false, - "properties": { - "from": { - "format": "date", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", - "type": "string" - }, - "label": { - "minLength": 1, - "type": "string" - }, - "preset": { - "enum": [ - "1w", - "1m", - "3m", - "ytd", - "1y" - ], - "type": "string" - }, - "to": { - "format": "date", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", - "type": "string" - } - }, - "required": [ - "from", - "label", - "to" - ], - "type": "object" - }, - "rows": { - "items": { - "additionalProperties": false, - "properties": { - "account_identity_id": { - "minLength": 1, - "type": "string" - }, - "account_label": { - "minLength": 1, - "type": "string" - }, - "amount_estimate": { - "maxLength": 32, - "type": "string" - }, - "cadence": { - "minLength": 1, - "type": "string" - }, - "category": { - "minLength": 1, - "type": "string" - }, - "confirmation_note": { - "minLength": 1, - "type": "string" - }, - "confirmed": { - "type": "boolean" - }, - "direction": { - "enum": [ - "inflow", - "outflow", - "neutral" - ], - "type": "string" - }, - "ends_at": { - "anyOf": [ - { - "format": "date", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", - "type": "string" - }, - { - "type": "null" - } - ] - }, - "group": { - "enum": [ - "overdue", - "upcoming", - "later", - "candidate", - "archived" - ], - "type": "string" - }, - "id": { - "minLength": 1, - "type": "string" - }, - "last_amount": { - "anyOf": [ - { - "maxLength": 32, - "type": "string" - }, - { - "type": "null" - } - ] - }, - "merchant_name": { - "minLength": 1, - "type": "string" - }, - "missed_count": { - "anyOf": [ - { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "predicted_next_date": { - "anyOf": [ - { - "format": "date", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", - "type": "string" - }, - { - "type": "null" - } - ] - }, - "predicted_window": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "from": { - "format": "date", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", - "type": "string" - }, - "to": { - "format": "date", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", - "type": "string" - } - }, - "required": [ - "from", - "to" - ], - "type": "object" - }, - { - "type": "null" - } - ] - }, - "remaining_occurrences": { - "anyOf": [ - { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "source": { - "enum": [ - "detected", - "declared" - ], - "type": "string" - }, - "status": { - "enum": [ - "candidate", - "active", - "stopped", - "dismissed" - ], - "type": "string" - } - }, - "required": [ - "account_identity_id", - "amount_estimate", - "cadence", - "confirmed", - "direction", - "ends_at", - "group", - "id", - "last_amount", - "merchant_name", - "missed_count", - "predicted_next_date", - "predicted_window", - "remaining_occurrences", - "source", - "status" - ], - "type": "object" - }, - "type": "array" - }, - "timeline": { - "items": { - "additionalProperties": false, - "properties": { - "inflow": { - "additionalProperties": { - "maxLength": 32, - "type": "string" - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "month": { - "pattern": "^\\d{4}-(0[1-9]|1[0-2])$", - "type": "string" - }, - "occurrences": { - "items": { - "additionalProperties": false, - "properties": { - "amount": { - "maxLength": 32, - "type": "string" - }, - "date": { - "format": "date", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", - "type": "string" - }, - "direction": { - "enum": [ - "inflow", - "outflow", - "neutral" - ], - "type": "string" - }, - "merchant_name": { - "minLength": 1, - "type": "string" - }, - "recurring_item_id": { - "minLength": 1, - "type": "string" - } - }, - "required": [ - "amount", - "date", - "direction", - "merchant_name", - "recurring_item_id" - ], - "type": "object" - }, - "type": "array" - }, - "outflow": { - "additionalProperties": { - "maxLength": 32, - "type": "string" - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - } - }, - "required": [ - "inflow", - "month", - "occurrences", - "outflow" - ], - "type": "object" - }, - "type": "array" - }, - "title": { - "minLength": 1, - "type": "string" - }, - "totals": { - "additionalProperties": false, - "properties": { - "annual": { - "additionalProperties": false, - "properties": { - "inflow": { - "additionalProperties": { - "maxLength": 32, - "type": "string" - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "outflow": { - "additionalProperties": { - "maxLength": 32, - "type": "string" - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - } - }, - "required": [ - "inflow", - "outflow" - ], - "type": "object" - }, - "counted": { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - }, - "excluded": { - "additionalProperties": false, - "properties": { - "candidate": { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - }, - "ended": { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - }, - "inactive": { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - }, - "no_cadence": { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - } - }, - "required": [ - "candidate", - "ended", - "inactive", - "no_cadence" - ], - "type": "object" - }, - "monthly_equivalent": { - "additionalProperties": false, - "properties": { - "inflow": { - "additionalProperties": { - "maxLength": 32, - "type": "string" - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "outflow": { - "additionalProperties": { - "maxLength": 32, - "type": "string" - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - } - }, - "required": [ - "inflow", - "outflow" - ], - "type": "object" - } - }, - "required": [ - "annual", - "counted", - "excluded", - "monthly_equivalent" - ], - "type": "object" - }, - "version": { - "const": "dashboard_panel.v1", - "type": "string" - }, - "view_url": { - "format": "uri", - "type": "string" - } - }, - "required": [ - "caveats", - "context", - "data_as_of", - "generated_at", - "presentation", - "range", - "title", - "version", - "view_url", - "id", - "candidates_count", - "horizon_days", - "month", - "rows", - "timeline", - "totals" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "caveats": { - "items": { - "type": "string" - }, - "type": "array" - }, - "context": { - "additionalProperties": false, - "properties": { - "summary": { - "minLength": 1, - "type": "string" - }, - "talking_points": { - "items": { - "minLength": 1, - "type": "string" - }, - "type": "array" - }, - "visible_facts": { - "items": { - "additionalProperties": false, - "properties": { - "label": { - "minLength": 1, - "type": "string" - }, - "value": { - "minLength": 1, - "type": "string" - } - }, - "required": [ - "label", - "value" - ], - "type": "object" - }, - "type": "array" - } - }, - "required": [ - "summary", - "talking_points", - "visible_facts" - ], - "type": "object" - }, - "data_as_of": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "generated_at": { - "type": "string" - }, - "has_earlier": { - "type": "boolean" - }, - "id": { - "const": "agent-activity", - "type": "string" - }, - "presentation": { - "enum": [ - "summary", - "detail" - ], - "type": "string" - }, - "range": { - "additionalProperties": false, - "properties": { - "from": { - "format": "date", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", - "type": "string" - }, - "label": { - "minLength": 1, - "type": "string" - }, - "preset": { - "enum": [ - "1w", - "1m", - "3m", - "ytd", - "1y" - ], - "type": "string" - }, - "to": { - "format": "date", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", - "type": "string" - } - }, - "required": [ - "from", - "label", - "to" - ], - "type": "object" - }, - "rows": { - "items": { - "additionalProperties": false, - "properties": { - "changed_domains": { - "items": { - "type": "string" - }, - "type": "array" - }, - "created_at": { - "type": "string" - }, - "data_domains": { - "items": { - "type": "string" - }, - "type": "array" - }, - "id": { - "minLength": 1, - "type": "string" - }, - "last_activity_at": { - "type": "string" - }, - "operation": { - "minLength": 1, - "type": "string" - }, - "operations": { - "items": { - "additionalProperties": false, - "properties": { - "agent": { - "minLength": 1, - "type": "string" - }, - "changed_domains": { - "items": { - "type": "string" - }, - "type": "array" - }, - "created_at": { - "type": "string" - }, - "data_domains": { - "items": { - "type": "string" - }, - "type": "array" - }, - "id": { - "minLength": 1, - "type": "string" - }, - "operation": { - "minLength": 1, - "type": "string" - }, - "outcome": { - "minLength": 1, - "type": "string" - }, - "status": { - "enum": [ - "failed", - "refused", - "started", - "succeeded" - ], - "type": "string" - } - }, - "required": [ - "id", - "agent", - "changed_domains", - "created_at", - "data_domains", - "operation", - "status" - ], - "type": "object" - }, - "type": "array" - }, - "operations_truncated": { - "type": "boolean" - }, - "outcome": { - "minLength": 1, - "type": "string" - }, - "reason": { - "minLength": 1, - "type": "string" - }, - "state": { - "enum": [ - "changed", - "incomplete", - "in_progress", - "problem", - "read_only" - ], - "type": "string" - }, - "status": { - "enum": [ - "failed", - "refused", - "started", - "succeeded" - ], - "type": "string" - } - }, - "required": [ - "id", - "changed_domains", - "created_at", - "data_domains", - "last_activity_at", - "operation", - "operations", - "operations_truncated", - "reason", - "state", - "status" - ], - "type": "object" - }, - "type": "array" - }, - "title": { - "minLength": 1, - "type": "string" - }, - "version": { - "const": "dashboard_panel.v2", - "type": "string" - }, - "view_url": { - "format": "uri", - "type": "string" - } - }, - "required": [ - "caveats", - "context", - "data_as_of", - "generated_at", - "presentation", - "range", - "title", - "version", - "view_url", - "has_earlier", - "id", - "rows" - ], - "type": "object" - } - ] - }, - "maxItems": 5, - "minItems": 1, - "type": "array" - }, - "version": { - "const": "dashboard_visual.v2", - "type": "string" - }, - "view_url": { - "format": "uri", - "type": "string" - } - }, - "required": [ - "panels", - "version", - "view_url" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "action": { - "additionalProperties": false, - "properties": { - "completed_at": { - "type": "string" - }, - "created_at": { - "type": "string" - }, - "id": { - "minLength": 1, - "type": "string" - }, - "operation": { - "minLength": 1, - "type": "string" - }, - "parent_action_id": { - "minLength": 1, - "type": "string" - }, - "reason": { - "maxLength": 280, - "minLength": 1, - "type": "string" - }, - "root_action_id": { - "minLength": 1, - "type": "string" - }, - "status": { - "enum": [ - "started", - "succeeded", - "refused", - "failed" - ], - "type": "string" - }, - "task_key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "created_at", - "id", - "operation", - "reason", - "root_action_id", - "status" - ], - "type": "object" - }, - "data": {}, - "data_freshness": { - "additionalProperties": false, - "properties": { - "balances_last_synced_at": { - "type": "string" - }, - "coverage": { - "enum": [ - "complete", - "partial", - "stale", - "unavailable" - ], - "type": "string" - }, - "holdings_last_synced_at": { - "type": "string" - }, - "transactions_last_synced_at": { - "type": "string" - } - }, - "required": [ - "coverage" - ], - "type": "object" - }, - "errors": { - "items": { - "additionalProperties": false, - "properties": { - "code": { - "type": "string" - }, - "expires_at": { - "type": "string" - }, - "idempotency_key": { - "maxLength": 128, - "minLength": 16, - "pattern": "^[\\x20-\\x7e]+$", - "type": "string" - }, - "message": { - "type": "string" - }, - "recovery_url": { - "type": "string" - }, - "required_capability": { - "type": "string" - }, - "retry_after_seconds": { - "exclusiveMinimum": 0, - "maximum": 9007199254740991, - "type": "integer" - }, - "retryable": { - "type": "boolean" - }, - "suggested_command": { - "type": "string" - } - }, - "required": [ - "code", - "message", - "retryable" - ], - "type": "object" - }, - "type": "array" - }, - "generated_at": { - "type": "string" - }, - "metadata": { - "additionalProperties": {}, - "properties": { - "view_url": { - "format": "uri", - "type": "string" - } - }, - "type": "object" - }, - "next_actions": { - "items": { - "additionalProperties": false, - "properties": { - "args": { - "additionalProperties": { - "$ref": "#/$defs/__schema0" - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "command": { - "type": "string" - }, - "intent": { - "type": "string" - }, - "shell": { - "type": "string" - } - }, - "required": [ - "args", - "command", - "intent", - "shell" - ], - "type": "object" - }, - "type": "array" - }, - "request_id": { - "type": "string" - }, - "schema_version": { - "type": "string" - }, - "status": { - "enum": [ - "success", - "partial_success", - "action_required", - "error" - ], - "type": "string" - }, - "user_message": { - "minLength": 1, - "type": "string" - }, - "warnings": { - "items": { - "additionalProperties": false, - "properties": { - "code": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "code", - "message" - ], - "type": "object" - }, - "type": "array" - } - }, - "required": [ - "data", - "errors", - "generated_at", - "next_actions", - "request_id", - "schema_version", - "status", - "warnings" - ], - "type": "object" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "panels": { + "items": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "account_count": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "asset_accounts": { + "items": { + "additionalProperties": false, + "properties": { + "as_of": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "balance": { + "maxLength": 32, + "type": "string" + }, + "category": { + "minLength": 1, + "type": "string" + }, + "id": { + "minLength": 1, + "type": "string" + }, + "institution": { + "minLength": 1, + "type": "string" + }, + "mask": { + "type": "string" + }, + "name": { + "minLength": 1, + "type": "string" + } + }, + "required": [ + "as_of", + "category", + "id", + "name" + ], + "type": "object" + }, + "type": "array" + }, + "assets": { + "maxLength": 32, + "type": "string" + }, + "caveats": { + "items": { + "type": "string" + }, + "type": "array" + }, + "context": { + "additionalProperties": false, + "properties": { + "summary": { + "minLength": 1, + "type": "string" + }, + "talking_points": { + "items": { + "minLength": 1, + "type": "string" + }, + "type": "array" + }, + "visible_facts": { + "items": { + "additionalProperties": false, + "properties": { + "label": { + "minLength": 1, + "type": "string" + }, + "value": { + "minLength": 1, + "type": "string" + } + }, + "required": [ + "label", + "value" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "summary", + "talking_points", + "visible_facts" + ], + "type": "object" + }, + "data_as_of": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "generated_at": { + "type": "string" + }, + "id": { + "const": "net-position", + "type": "string" + }, + "liabilities": { + "maxLength": 32, + "type": "string" + }, + "liability_accounts": { + "items": { + "additionalProperties": false, + "properties": { + "as_of": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "balance": { + "maxLength": 32, + "type": "string" + }, + "category": { + "minLength": 1, + "type": "string" + }, + "id": { + "minLength": 1, + "type": "string" + }, + "institution": { + "minLength": 1, + "type": "string" + }, + "mask": { + "type": "string" + }, + "name": { + "minLength": 1, + "type": "string" + } + }, + "required": [ + "as_of", + "category", + "id", + "name" + ], + "type": "object" + }, + "type": "array" + }, + "net": { + "maxLength": 32, + "type": "string" + }, + "period_change": { + "additionalProperties": false, + "properties": { + "assets": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "amount": { + "maxLength": 32, + "type": "string" + }, + "percent": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "since": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + } + }, + "required": [ + "amount", + "percent", + "since" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "liabilities": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "amount": { + "maxLength": 32, + "type": "string" + }, + "percent": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "since": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + } + }, + "required": [ + "amount", + "percent", + "since" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "net": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "amount": { + "maxLength": 32, + "type": "string" + }, + "percent": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "since": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + } + }, + "required": [ + "amount", + "percent", + "since" + ], + "type": "object" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "assets", + "liabilities", + "net" + ], + "type": "object" + }, + "presentation": { + "enum": [ + "summary", + "detail" + ], + "type": "string" + }, + "property_count": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "range": { + "additionalProperties": false, + "properties": { + "from": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + }, + "label": { + "minLength": 1, + "type": "string" + }, + "preset": { + "enum": [ + "1w", + "1m", + "3m", + "ytd", + "1y" + ], + "type": "string" + }, + "to": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + } + }, + "required": [ + "from", + "label", + "to" + ], + "type": "object" + }, + "series": { + "items": { + "additionalProperties": false, + "properties": { + "date": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + }, + "provenance": { + "minLength": 1, + "type": "string" + }, + "value": { + "maxLength": 32, + "type": "string" + } + }, + "required": [ + "date", + "provenance", + "value" + ], + "type": "object" + }, + "type": "array" + }, + "title": { + "minLength": 1, + "type": "string" + }, + "version": { + "const": "dashboard_panel.v1", + "type": "string" + }, + "view_url": { + "format": "uri", + "type": "string" + } + }, + "required": [ + "caveats", + "context", + "data_as_of", + "generated_at", + "presentation", + "range", + "title", + "version", + "view_url", + "id", + "account_count", + "asset_accounts", + "assets", + "liability_accounts", + "liabilities", + "net", + "period_change", + "series" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "caveats": { + "items": { + "type": "string" + }, + "type": "array" + }, + "context": { + "additionalProperties": false, + "properties": { + "summary": { + "minLength": 1, + "type": "string" + }, + "talking_points": { + "items": { + "minLength": 1, + "type": "string" + }, + "type": "array" + }, + "visible_facts": { + "items": { + "additionalProperties": false, + "properties": { + "label": { + "minLength": 1, + "type": "string" + }, + "value": { + "minLength": 1, + "type": "string" + } + }, + "required": [ + "label", + "value" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "summary", + "talking_points", + "visible_facts" + ], + "type": "object" + }, + "data_as_of": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "generated_at": { + "type": "string" + }, + "id": { + "const": "cash-flow", + "type": "string" + }, + "income": { + "maxLength": 32, + "type": "string" + }, + "net": { + "maxLength": 32, + "type": "string" + }, + "periods": { + "items": { + "additionalProperties": false, + "properties": { + "end": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + }, + "income": { + "maxLength": 32, + "type": "string" + }, + "label": { + "minLength": 1, + "type": "string" + }, + "net": { + "maxLength": 32, + "type": "string" + }, + "spending": { + "maxLength": 32, + "type": "string" + }, + "start": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + } + }, + "required": [ + "end", + "label", + "start", + "income", + "net", + "spending" + ], + "type": "object" + }, + "type": "array" + }, + "presentation": { + "enum": [ + "summary", + "detail" + ], + "type": "string" + }, + "range": { + "additionalProperties": false, + "properties": { + "from": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + }, + "label": { + "minLength": 1, + "type": "string" + }, + "preset": { + "enum": [ + "1w", + "1m", + "3m", + "ytd", + "1y" + ], + "type": "string" + }, + "to": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + } + }, + "required": [ + "from", + "label", + "to" + ], + "type": "object" + }, + "spending": { + "maxLength": 32, + "type": "string" + }, + "title": { + "minLength": 1, + "type": "string" + }, + "transaction_count": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "version": { + "const": "dashboard_panel.v1", + "type": "string" + }, + "view_url": { + "format": "uri", + "type": "string" + } + }, + "required": [ + "caveats", + "context", + "data_as_of", + "generated_at", + "presentation", + "range", + "title", + "version", + "view_url", + "id", + "income", + "net", + "periods", + "spending", + "transaction_count" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "caveats": { + "items": { + "type": "string" + }, + "type": "array" + }, + "context": { + "additionalProperties": false, + "properties": { + "summary": { + "minLength": 1, + "type": "string" + }, + "talking_points": { + "items": { + "minLength": 1, + "type": "string" + }, + "type": "array" + }, + "visible_facts": { + "items": { + "additionalProperties": false, + "properties": { + "label": { + "minLength": 1, + "type": "string" + }, + "value": { + "minLength": 1, + "type": "string" + } + }, + "required": [ + "label", + "value" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "summary", + "talking_points", + "visible_facts" + ], + "type": "object" + }, + "data_as_of": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "generated_at": { + "type": "string" + }, + "id": { + "const": "recent-transactions", + "type": "string" + }, + "presentation": { + "enum": [ + "summary", + "detail" + ], + "type": "string" + }, + "range": { + "additionalProperties": false, + "properties": { + "from": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + }, + "label": { + "minLength": 1, + "type": "string" + }, + "preset": { + "enum": [ + "1w", + "1m", + "3m", + "ytd", + "1y" + ], + "type": "string" + }, + "to": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + } + }, + "required": [ + "from", + "label", + "to" + ], + "type": "object" + }, + "rows": { + "items": { + "additionalProperties": false, + "properties": { + "amount": { + "maxLength": 32, + "type": "string" + }, + "category": { + "type": "string" + }, + "date": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + }, + "description": { + "minLength": 1, + "type": "string" + }, + "direction": { + "enum": [ + "inflow", + "neutral", + "outflow" + ], + "type": "string" + }, + "id": { + "minLength": 1, + "type": "string" + }, + "pending": { + "type": "boolean" + } + }, + "required": [ + "amount", + "date", + "description", + "direction", + "id", + "pending" + ], + "type": "object" + }, + "type": "array" + }, + "title": { + "minLength": 1, + "type": "string" + }, + "version": { + "const": "dashboard_panel.v1", + "type": "string" + }, + "view_url": { + "format": "uri", + "type": "string" + } + }, + "required": [ + "caveats", + "context", + "data_as_of", + "generated_at", + "presentation", + "range", + "title", + "version", + "view_url", + "id", + "rows" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "caveats": { + "items": { + "type": "string" + }, + "type": "array" + }, + "context": { + "additionalProperties": false, + "properties": { + "summary": { + "minLength": 1, + "type": "string" + }, + "talking_points": { + "items": { + "minLength": 1, + "type": "string" + }, + "type": "array" + }, + "visible_facts": { + "items": { + "additionalProperties": false, + "properties": { + "label": { + "minLength": 1, + "type": "string" + }, + "value": { + "minLength": 1, + "type": "string" + } + }, + "required": [ + "label", + "value" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "summary", + "talking_points", + "visible_facts" + ], + "type": "object" + }, + "data_as_of": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "generated_at": { + "type": "string" + }, + "holding_count": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "id": { + "const": "holdings", + "type": "string" + }, + "presentation": { + "enum": [ + "summary", + "detail" + ], + "type": "string" + }, + "range": { + "additionalProperties": false, + "properties": { + "from": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + }, + "label": { + "minLength": 1, + "type": "string" + }, + "preset": { + "enum": [ + "1w", + "1m", + "3m", + "ytd", + "1y" + ], + "type": "string" + }, + "to": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + } + }, + "required": [ + "from", + "label", + "to" + ], + "type": "object" + }, + "rows": { + "items": { + "additionalProperties": false, + "properties": { + "as_of": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "cost_basis": { + "maxLength": 32, + "type": "string" + }, + "day_change_percent": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "gain_loss": { + "maxLength": 32, + "type": "string" + }, + "id": { + "minLength": 1, + "type": "string" + }, + "name": { + "minLength": 1, + "type": "string" + }, + "quantity": { + "type": "string" + }, + "sparkline": { + "items": { + "additionalProperties": false, + "properties": { + "date": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + }, + "value": { + "maxLength": 32, + "type": "string" + } + }, + "required": [ + "date", + "value" + ], + "type": "object" + }, + "type": "array" + }, + "symbol": { + "type": "string" + }, + "value": { + "maxLength": 32, + "type": "string" + }, + "weight": { + "type": "number" + } + }, + "required": [ + "as_of", + "id", + "name" + ], + "type": "object" + }, + "type": "array" + }, + "title": { + "minLength": 1, + "type": "string" + }, + "total_value": { + "maxLength": 32, + "type": "string" + }, + "version": { + "const": "dashboard_panel.v1", + "type": "string" + }, + "view_url": { + "format": "uri", + "type": "string" + } + }, + "required": [ + "caveats", + "context", + "data_as_of", + "generated_at", + "presentation", + "range", + "title", + "version", + "view_url", + "id", + "rows", + "holding_count", + "total_value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "account_count": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "accounts": { + "items": { + "additionalProperties": false, + "properties": { + "as_of": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "balance": { + "maxLength": 32, + "type": "string" + }, + "basis": { + "enum": [ + "positions", + "source_observed" + ], + "type": "string" + }, + "id": { + "minLength": 1, + "type": "string" + }, + "institution": { + "minLength": 1, + "type": "string" + }, + "mask": { + "type": "string" + }, + "name": { + "minLength": 1, + "type": "string" + }, + "period_change": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "amount": { + "maxLength": 32, + "type": "string" + }, + "percent": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "since": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + } + }, + "required": [ + "amount", + "percent", + "since" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "reported_balance": { + "maxLength": 32, + "type": "string" + } + }, + "required": [ + "as_of", + "basis", + "id", + "name", + "period_change" + ], + "type": "object" + }, + "type": "array" + }, + "allocation": { + "items": { + "additionalProperties": false, + "properties": { + "holding_count": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "type": { + "minLength": 1, + "type": "string" + }, + "value": { + "maxLength": 32, + "type": "string" + }, + "weight": { + "type": "number" + } + }, + "required": [ + "holding_count", + "type", + "value", + "weight" + ], + "type": "object" + }, + "type": "array" + }, + "allocation_basis": { + "enum": [ + "net", + "gross" + ], + "type": "string" + }, + "caveats": { + "items": { + "type": "string" + }, + "type": "array" + }, + "context": { + "additionalProperties": false, + "properties": { + "summary": { + "minLength": 1, + "type": "string" + }, + "talking_points": { + "items": { + "minLength": 1, + "type": "string" + }, + "type": "array" + }, + "visible_facts": { + "items": { + "additionalProperties": false, + "properties": { + "label": { + "minLength": 1, + "type": "string" + }, + "value": { + "minLength": 1, + "type": "string" + } + }, + "required": [ + "label", + "value" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "summary", + "talking_points", + "visible_facts" + ], + "type": "object" + }, + "data_as_of": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "day_change": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "amount": { + "maxLength": 32, + "type": "string" + }, + "holding_count": { + "exclusiveMinimum": 0, + "maximum": 9007199254740991, + "type": "integer" + }, + "percent": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "amount", + "holding_count", + "percent" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "generated_at": { + "type": "string" + }, + "id": { + "const": "investments", + "type": "string" + }, + "latest_price_as_of": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "market_valued_account_count": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "movers": { + "items": { + "additionalProperties": false, + "properties": { + "account_count": { + "exclusiveMinimum": 0, + "maximum": 9007199254740991, + "type": "integer" + }, + "day_change_amount": { + "maxLength": 32, + "type": "string" + }, + "day_change_percent": { + "type": "number" + }, + "holding_ids": { + "items": { + "minLength": 1, + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "id": { + "minLength": 1, + "type": "string" + }, + "name": { + "minLength": 1, + "type": "string" + }, + "session": { + "additionalProperties": false, + "properties": { + "closes_at": { + "type": "string" + }, + "market_date": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + }, + "opens_at": { + "type": "string" + }, + "points": { + "items": { + "additionalProperties": false, + "properties": { + "at": { + "type": "string" + }, + "price": { + "type": "string" + } + }, + "required": [ + "at", + "price" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" + }, + "previous_close": { + "type": "string" + } + }, + "required": [ + "closes_at", + "market_date", + "opens_at", + "points", + "previous_close" + ], + "type": "object" + }, + "sparkline": { + "items": { + "additionalProperties": false, + "properties": { + "date": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + }, + "value": { + "maxLength": 32, + "type": "string" + } + }, + "required": [ + "date", + "value" + ], + "type": "object" + }, + "type": "array" + }, + "symbol": { + "type": "string" + }, + "value": { + "maxLength": 32, + "type": "string" + } + }, + "required": [ + "account_count", + "day_change_percent", + "holding_ids", + "id", + "name", + "value" + ], + "type": "object" + }, + "type": "array" + }, + "period_change": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "amount": { + "maxLength": 32, + "type": "string" + }, + "percent": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "since": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + } + }, + "required": [ + "amount", + "percent", + "since" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "presentation": { + "enum": [ + "summary", + "detail" + ], + "type": "string" + }, + "price_as_of": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "range": { + "additionalProperties": false, + "properties": { + "from": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + }, + "label": { + "minLength": 1, + "type": "string" + }, + "preset": { + "enum": [ + "1w", + "1m", + "3m", + "ytd", + "1y" + ], + "type": "string" + }, + "to": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + } + }, + "required": [ + "from", + "label", + "to" + ], + "type": "object" + }, + "series": { + "items": { + "additionalProperties": false, + "properties": { + "date": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + }, + "provenance": { + "minLength": 1, + "type": "string" + }, + "value": { + "maxLength": 32, + "type": "string" + } + }, + "required": [ + "date", + "provenance", + "value" + ], + "type": "object" + }, + "type": "array" + }, + "stale_quote_holding_count": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "title": { + "minLength": 1, + "type": "string" + }, + "total_value": { + "maxLength": 32, + "type": "string" + }, + "version": { + "const": "dashboard_panel.v1", + "type": "string" + }, + "view_url": { + "format": "uri", + "type": "string" + } + }, + "required": [ + "caveats", + "context", + "data_as_of", + "generated_at", + "presentation", + "range", + "title", + "version", + "view_url", + "id", + "account_count", + "accounts", + "allocation_basis", + "allocation", + "day_change", + "market_valued_account_count", + "movers", + "period_change", + "latest_price_as_of", + "price_as_of", + "stale_quote_holding_count", + "series", + "total_value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "caveats": { + "items": { + "type": "string" + }, + "type": "array" + }, + "context": { + "additionalProperties": false, + "properties": { + "summary": { + "minLength": 1, + "type": "string" + }, + "talking_points": { + "items": { + "minLength": 1, + "type": "string" + }, + "type": "array" + }, + "visible_facts": { + "items": { + "additionalProperties": false, + "properties": { + "label": { + "minLength": 1, + "type": "string" + }, + "value": { + "minLength": 1, + "type": "string" + } + }, + "required": [ + "label", + "value" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "summary", + "talking_points", + "visible_facts" + ], + "type": "object" + }, + "data_as_of": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "generated_at": { + "type": "string" + }, + "id": { + "const": "spending", + "type": "string" + }, + "periods": { + "items": { + "additionalProperties": false, + "properties": { + "categories": { + "items": { + "additionalProperties": false, + "properties": { + "amount": { + "maxLength": 32, + "type": "string" + }, + "category": { + "minLength": 1, + "type": "string" + } + }, + "required": [ + "amount", + "category" + ], + "type": "object" + }, + "type": "array" + }, + "end": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + }, + "label": { + "minLength": 1, + "type": "string" + }, + "start": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + }, + "total": { + "maxLength": 32, + "type": "string" + } + }, + "required": [ + "end", + "label", + "start", + "categories", + "total" + ], + "type": "object" + }, + "type": "array" + }, + "presentation": { + "enum": [ + "summary", + "detail" + ], + "type": "string" + }, + "range": { + "additionalProperties": false, + "properties": { + "from": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + }, + "label": { + "minLength": 1, + "type": "string" + }, + "preset": { + "enum": [ + "1w", + "1m", + "3m", + "ytd", + "1y" + ], + "type": "string" + }, + "to": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + } + }, + "required": [ + "from", + "label", + "to" + ], + "type": "object" + }, + "rows": { + "items": { + "additionalProperties": false, + "properties": { + "amount": { + "maxLength": 32, + "type": "string" + }, + "category": { + "minLength": 1, + "type": "string" + }, + "transaction_count": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "amount", + "category", + "transaction_count" + ], + "type": "object" + }, + "type": "array" + }, + "title": { + "minLength": 1, + "type": "string" + }, + "total": { + "maxLength": 32, + "type": "string" + }, + "transaction_count": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "version": { + "const": "dashboard_panel.v1", + "type": "string" + }, + "view_url": { + "format": "uri", + "type": "string" + } + }, + "required": [ + "caveats", + "context", + "data_as_of", + "generated_at", + "presentation", + "range", + "title", + "version", + "view_url", + "id", + "rows", + "periods", + "total", + "transaction_count" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "actual": { + "maxLength": 32, + "type": "string" + }, + "caveats": { + "items": { + "type": "string" + }, + "type": "array" + }, + "configured": { + "type": "boolean" + }, + "context": { + "additionalProperties": false, + "properties": { + "summary": { + "minLength": 1, + "type": "string" + }, + "talking_points": { + "items": { + "minLength": 1, + "type": "string" + }, + "type": "array" + }, + "visible_facts": { + "items": { + "additionalProperties": false, + "properties": { + "label": { + "minLength": 1, + "type": "string" + }, + "value": { + "minLength": 1, + "type": "string" + } + }, + "required": [ + "label", + "value" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "summary", + "talking_points", + "visible_facts" + ], + "type": "object" + }, + "data_as_of": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "days_elapsed": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "days_in_period": { + "exclusiveMinimum": 0, + "maximum": 9007199254740991, + "type": "integer" + }, + "expected_to_date": { + "maxLength": 32, + "type": "string" + }, + "generated_at": { + "type": "string" + }, + "group_totals": { + "items": { + "additionalProperties": false, + "properties": { + "actual": { + "maxLength": 32, + "type": "string" + }, + "line_type": { + "enum": [ + "recurring", + "flexible", + "goal", + "cushion", + "other" + ], + "type": "string" + }, + "planned": { + "maxLength": 32, + "type": "string" + }, + "remaining": { + "maxLength": 32, + "type": "string" + } + }, + "required": [ + "actual", + "line_type", + "planned", + "remaining" + ], + "type": "object" + }, + "type": "array" + }, + "id": { + "const": "budget-status", + "type": "string" + }, + "pace_variance": { + "maxLength": 32, + "type": "string" + }, + "period": { + "pattern": "^\\d{4}-(0[1-9]|1[0-2])$", + "type": "string" + }, + "planned": { + "maxLength": 32, + "type": "string" + }, + "presentation": { + "enum": [ + "summary", + "detail" + ], + "type": "string" + }, + "range": { + "additionalProperties": false, + "properties": { + "from": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + }, + "label": { + "minLength": 1, + "type": "string" + }, + "preset": { + "enum": [ + "1w", + "1m", + "3m", + "ytd", + "1y" + ], + "type": "string" + }, + "to": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + } + }, + "required": [ + "from", + "label", + "to" + ], + "type": "object" + }, + "remaining": { + "maxLength": 32, + "type": "string" + }, + "row_count": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "rows": { + "items": { + "additionalProperties": false, + "properties": { + "actual": { + "maxLength": 32, + "type": "string" + }, + "category": { + "minLength": 1, + "type": "string" + }, + "line_type": { + "enum": [ + "recurring", + "flexible", + "goal", + "cushion", + "other" + ], + "type": "string" + }, + "planned": { + "maxLength": 32, + "type": "string" + }, + "remaining": { + "maxLength": 32, + "type": "string" + }, + "status": { + "enum": [ + "not_started", + "over_budget", + "within_budget" + ], + "type": "string" + }, + "transaction_count": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "actual", + "category", + "line_type", + "planned", + "remaining", + "status", + "transaction_count" + ], + "type": "object" + }, + "type": "array" + }, + "series": { + "items": { + "additionalProperties": false, + "properties": { + "date": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + }, + "value": { + "maxLength": 32, + "type": "string" + } + }, + "required": [ + "date", + "value" + ], + "type": "object" + }, + "type": "array" + }, + "title": { + "minLength": 1, + "type": "string" + }, + "unplanned_count": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "unplanned_rows": { + "items": { + "additionalProperties": false, + "properties": { + "actual": { + "maxLength": 32, + "type": "string" + }, + "category": { + "minLength": 1, + "type": "string" + }, + "transaction_count": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "actual", + "category", + "transaction_count" + ], + "type": "object" + }, + "type": "array" + }, + "unplanned_total": { + "maxLength": 32, + "type": "string" + }, + "unspent_flexible_and_cushion_amount": { + "maxLength": 32, + "type": "string" + }, + "version": { + "const": "dashboard_panel.v1", + "type": "string" + }, + "view_url": { + "format": "uri", + "type": "string" + } + }, + "required": [ + "caveats", + "context", + "data_as_of", + "generated_at", + "presentation", + "range", + "title", + "version", + "view_url", + "id", + "actual", + "configured", + "days_elapsed", + "days_in_period", + "expected_to_date", + "group_totals", + "pace_variance", + "period", + "planned", + "remaining", + "row_count", + "rows", + "unspent_flexible_and_cushion_amount", + "series", + "unplanned_count", + "unplanned_rows", + "unplanned_total" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "caveats": { + "items": { + "type": "string" + }, + "type": "array" + }, + "context": { + "additionalProperties": false, + "properties": { + "summary": { + "minLength": 1, + "type": "string" + }, + "talking_points": { + "items": { + "minLength": 1, + "type": "string" + }, + "type": "array" + }, + "visible_facts": { + "items": { + "additionalProperties": false, + "properties": { + "label": { + "minLength": 1, + "type": "string" + }, + "value": { + "minLength": 1, + "type": "string" + } + }, + "required": [ + "label", + "value" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "summary", + "talking_points", + "visible_facts" + ], + "type": "object" + }, + "data_as_of": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "generated_at": { + "type": "string" + }, + "id": { + "const": "goals", + "type": "string" + }, + "period": { + "pattern": "^\\d{4}-(0[1-9]|1[0-2])$", + "type": "string" + }, + "presentation": { + "enum": [ + "summary", + "detail" + ], + "type": "string" + }, + "range": { + "additionalProperties": false, + "properties": { + "from": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + }, + "label": { + "minLength": 1, + "type": "string" + }, + "preset": { + "enum": [ + "1w", + "1m", + "3m", + "ytd", + "1y" + ], + "type": "string" + }, + "to": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + } + }, + "required": [ + "from", + "label", + "to" + ], + "type": "object" + }, + "rows": { + "items": { + "additionalProperties": false, + "properties": { + "contribution_amount": { + "maxLength": 32, + "type": "string" + }, + "contribution_cadence": { + "enum": [ + "weekly", + "biweekly", + "monthly", + "quarterly", + "annual" + ], + "type": "string" + }, + "days_elapsed": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "days_remaining": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "id": { + "minLength": 1, + "type": "string" + }, + "kind": { + "enum": [ + "debt_reduction", + "income", + "other", + "purchase", + "reserve", + "sinking_fund" + ], + "type": "string" + }, + "name": { + "minLength": 1, + "type": "string" + }, + "observed": { + "maxLength": 32, + "type": "string" + }, + "observed_this_period": { + "maxLength": 32, + "type": "string" + }, + "projected_completion_date": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + }, + "remaining": { + "maxLength": 32, + "type": "string" + }, + "required_contribution": { + "additionalProperties": false, + "properties": { + "amount": { + "maxLength": 32, + "type": "string" + }, + "cadence": { + "enum": [ + "weekly", + "biweekly", + "monthly", + "quarterly", + "annual" + ], + "type": "string" + } + }, + "required": [ + "amount", + "cadence" + ], + "type": "object" + }, + "series": { + "items": { + "additionalProperties": false, + "properties": { + "date": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + }, + "value": { + "maxLength": 32, + "type": "string" + } + }, + "required": [ + "date", + "value" + ], + "type": "object" + }, + "type": "array" + }, + "series_partial": { + "type": "boolean" + }, + "started_on": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + }, + "status": { + "enum": [ + "active", + "archived", + "completed", + "paused" + ], + "type": "string" + }, + "target": { + "maxLength": 32, + "type": "string" + }, + "target_date": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + } + }, + "required": [ + "days_elapsed", + "id", + "kind", + "name", + "series", + "series_partial", + "started_on", + "status" + ], + "type": "object" + }, + "type": "array" + }, + "title": { + "minLength": 1, + "type": "string" + }, + "version": { + "const": "dashboard_panel.v1", + "type": "string" + }, + "view_url": { + "format": "uri", + "type": "string" + } + }, + "required": [ + "caveats", + "context", + "data_as_of", + "generated_at", + "presentation", + "range", + "title", + "version", + "view_url", + "id", + "period", + "rows" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "candidates_count": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "caveats": { + "items": { + "type": "string" + }, + "type": "array" + }, + "context": { + "additionalProperties": false, + "properties": { + "summary": { + "minLength": 1, + "type": "string" + }, + "talking_points": { + "items": { + "minLength": 1, + "type": "string" + }, + "type": "array" + }, + "visible_facts": { + "items": { + "additionalProperties": false, + "properties": { + "label": { + "minLength": 1, + "type": "string" + }, + "value": { + "minLength": 1, + "type": "string" + } + }, + "required": [ + "label", + "value" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "summary", + "talking_points", + "visible_facts" + ], + "type": "object" + }, + "data_as_of": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "generated_at": { + "type": "string" + }, + "has_recurring_items": { + "type": "boolean" + }, + "horizon_days": { + "exclusiveMinimum": 0, + "maximum": 9007199254740991, + "type": "integer" + }, + "id": { + "const": "coming-up", + "type": "string" + }, + "month": { + "additionalProperties": false, + "properties": { + "left_to_pay": { + "additionalProperties": { + "maxLength": 32, + "type": "string" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "paid_so_far": { + "additionalProperties": { + "maxLength": 32, + "type": "string" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "payments": { + "items": { + "additionalProperties": false, + "properties": { + "account_label": { + "minLength": 1, + "type": "string" + }, + "amount": { + "maxLength": 32, + "type": "string" + }, + "cadence": { + "minLength": 1, + "type": "string" + }, + "category": { + "minLength": 1, + "type": "string" + }, + "date": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + }, + "id": { + "minLength": 1, + "type": "string" + }, + "merchant_name": { + "minLength": 1, + "type": "string" + }, + "recurring_item_id": { + "minLength": 1, + "type": "string" + }, + "status": { + "enum": [ + "paid", + "expected" + ], + "type": "string" + }, + "transaction_id": { + "minLength": 1, + "type": "string" + } + }, + "required": [ + "id", + "recurring_item_id", + "merchant_name", + "cadence", + "date", + "amount", + "status" + ], + "type": "object" + }, + "type": "array" + }, + "period": { + "pattern": "^\\d{4}-(0[1-9]|1[0-2])$", + "type": "string" + } + }, + "required": [ + "period", + "left_to_pay", + "paid_so_far" + ], + "type": "object" + }, + "presentation": { + "enum": [ + "summary", + "detail" + ], + "type": "string" + }, + "range": { + "additionalProperties": false, + "properties": { + "from": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + }, + "label": { + "minLength": 1, + "type": "string" + }, + "preset": { + "enum": [ + "1w", + "1m", + "3m", + "ytd", + "1y" + ], + "type": "string" + }, + "to": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + } + }, + "required": [ + "from", + "label", + "to" + ], + "type": "object" + }, + "rows": { + "items": { + "additionalProperties": false, + "properties": { + "account_identity_id": { + "minLength": 1, + "type": "string" + }, + "account_label": { + "minLength": 1, + "type": "string" + }, + "amount_estimate": { + "maxLength": 32, + "type": "string" + }, + "cadence": { + "minLength": 1, + "type": "string" + }, + "category": { + "minLength": 1, + "type": "string" + }, + "confirmation_note": { + "minLength": 1, + "type": "string" + }, + "confirmed": { + "type": "boolean" + }, + "direction": { + "enum": [ + "inflow", + "outflow", + "neutral" + ], + "type": "string" + }, + "ends_at": { + "anyOf": [ + { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + }, + { + "type": "null" + } + ] + }, + "group": { + "enum": [ + "overdue", + "upcoming", + "later", + "candidate", + "archived" + ], + "type": "string" + }, + "id": { + "minLength": 1, + "type": "string" + }, + "last_amount": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ] + }, + "merchant_name": { + "minLength": 1, + "type": "string" + }, + "missed_count": { + "anyOf": [ + { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "predicted_next_date": { + "anyOf": [ + { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + }, + { + "type": "null" + } + ] + }, + "predicted_window": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "from": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + }, + "to": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + } + }, + "required": [ + "from", + "to" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "remaining_occurrences": { + "anyOf": [ + { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "source": { + "enum": [ + "detected", + "declared" + ], + "type": "string" + }, + "status": { + "enum": [ + "candidate", + "active", + "stopped", + "dismissed" + ], + "type": "string" + } + }, + "required": [ + "account_identity_id", + "amount_estimate", + "cadence", + "confirmed", + "direction", + "ends_at", + "group", + "id", + "last_amount", + "merchant_name", + "missed_count", + "predicted_next_date", + "predicted_window", + "remaining_occurrences", + "source", + "status" + ], + "type": "object" + }, + "type": "array" + }, + "timeline": { + "items": { + "additionalProperties": false, + "properties": { + "inflow": { + "additionalProperties": { + "maxLength": 32, + "type": "string" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "month": { + "pattern": "^\\d{4}-(0[1-9]|1[0-2])$", + "type": "string" + }, + "occurrences": { + "items": { + "additionalProperties": false, + "properties": { + "amount": { + "maxLength": 32, + "type": "string" + }, + "date": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + }, + "direction": { + "enum": [ + "inflow", + "outflow", + "neutral" + ], + "type": "string" + }, + "merchant_name": { + "minLength": 1, + "type": "string" + }, + "recurring_item_id": { + "minLength": 1, + "type": "string" + } + }, + "required": [ + "amount", + "date", + "direction", + "merchant_name", + "recurring_item_id" + ], + "type": "object" + }, + "type": "array" + }, + "outflow": { + "additionalProperties": { + "maxLength": 32, + "type": "string" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + }, + "required": [ + "inflow", + "month", + "occurrences", + "outflow" + ], + "type": "object" + }, + "type": "array" + }, + "title": { + "minLength": 1, + "type": "string" + }, + "totals": { + "additionalProperties": false, + "properties": { + "annual": { + "additionalProperties": false, + "properties": { + "inflow": { + "additionalProperties": { + "maxLength": 32, + "type": "string" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "outflow": { + "additionalProperties": { + "maxLength": 32, + "type": "string" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + }, + "required": [ + "inflow", + "outflow" + ], + "type": "object" + }, + "counted": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "excluded": { + "additionalProperties": false, + "properties": { + "candidate": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "ended": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "inactive": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "no_cadence": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "candidate", + "ended", + "inactive", + "no_cadence" + ], + "type": "object" + }, + "monthly_equivalent": { + "additionalProperties": false, + "properties": { + "inflow": { + "additionalProperties": { + "maxLength": 32, + "type": "string" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "outflow": { + "additionalProperties": { + "maxLength": 32, + "type": "string" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + }, + "required": [ + "inflow", + "outflow" + ], + "type": "object" + } + }, + "required": [ + "annual", + "counted", + "excluded", + "monthly_equivalent" + ], + "type": "object" + }, + "version": { + "const": "dashboard_panel.v1", + "type": "string" + }, + "view_url": { + "format": "uri", + "type": "string" + } + }, + "required": [ + "caveats", + "context", + "data_as_of", + "generated_at", + "presentation", + "range", + "title", + "version", + "view_url", + "id", + "candidates_count", + "horizon_days", + "month", + "rows", + "timeline", + "totals" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "caveats": { + "items": { + "type": "string" + }, + "type": "array" + }, + "context": { + "additionalProperties": false, + "properties": { + "summary": { + "minLength": 1, + "type": "string" + }, + "talking_points": { + "items": { + "minLength": 1, + "type": "string" + }, + "type": "array" + }, + "visible_facts": { + "items": { + "additionalProperties": false, + "properties": { + "label": { + "minLength": 1, + "type": "string" + }, + "value": { + "minLength": 1, + "type": "string" + } + }, + "required": [ + "label", + "value" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "summary", + "talking_points", + "visible_facts" + ], + "type": "object" + }, + "data_as_of": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "generated_at": { + "type": "string" + }, + "has_earlier": { + "type": "boolean" + }, + "id": { + "const": "agent-activity", + "type": "string" + }, + "presentation": { + "enum": [ + "summary", + "detail" + ], + "type": "string" + }, + "range": { + "additionalProperties": false, + "properties": { + "from": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + }, + "label": { + "minLength": 1, + "type": "string" + }, + "preset": { + "enum": [ + "1w", + "1m", + "3m", + "ytd", + "1y" + ], + "type": "string" + }, + "to": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + } + }, + "required": [ + "from", + "label", + "to" + ], + "type": "object" + }, + "rows": { + "items": { + "additionalProperties": false, + "properties": { + "changed_domains": { + "items": { + "type": "string" + }, + "type": "array" + }, + "created_at": { + "type": "string" + }, + "data_domains": { + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "minLength": 1, + "type": "string" + }, + "last_activity_at": { + "type": "string" + }, + "operation": { + "minLength": 1, + "type": "string" + }, + "operations": { + "items": { + "additionalProperties": false, + "properties": { + "agent": { + "minLength": 1, + "type": "string" + }, + "changed_domains": { + "items": { + "type": "string" + }, + "type": "array" + }, + "created_at": { + "type": "string" + }, + "data_domains": { + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "minLength": 1, + "type": "string" + }, + "operation": { + "minLength": 1, + "type": "string" + }, + "outcome": { + "minLength": 1, + "type": "string" + }, + "status": { + "enum": [ + "failed", + "refused", + "started", + "succeeded" + ], + "type": "string" + } + }, + "required": [ + "id", + "agent", + "changed_domains", + "created_at", + "data_domains", + "operation", + "status" + ], + "type": "object" + }, + "type": "array" + }, + "operations_truncated": { + "type": "boolean" + }, + "outcome": { + "minLength": 1, + "type": "string" + }, + "reason": { + "minLength": 1, + "type": "string" + }, + "state": { + "enum": [ + "changed", + "incomplete", + "in_progress", + "problem", + "read_only" + ], + "type": "string" + }, + "status": { + "enum": [ + "failed", + "refused", + "started", + "succeeded" + ], + "type": "string" + } + }, + "required": [ + "id", + "changed_domains", + "created_at", + "data_domains", + "last_activity_at", + "operation", + "operations", + "operations_truncated", + "reason", + "state", + "status" + ], + "type": "object" + }, + "type": "array" + }, + "title": { + "minLength": 1, + "type": "string" + }, + "version": { + "const": "dashboard_panel.v2", + "type": "string" + }, + "view_url": { + "format": "uri", + "type": "string" + } + }, + "required": [ + "caveats", + "context", + "data_as_of", + "generated_at", + "presentation", + "range", + "title", + "version", + "view_url", + "has_earlier", + "id", + "rows" + ], + "type": "object" + } + ] + }, + "maxItems": 5, + "minItems": 1, + "type": "array" + }, + "version": { + "const": "dashboard_visual.v2", + "type": "string" + }, + "view_url": { + "format": "uri", + "type": "string" + } + }, + "required": [ + "panels", + "version", + "view_url" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "action": { + "additionalProperties": false, + "properties": { + "completed_at": { + "type": "string" + }, + "created_at": { + "type": "string" + }, + "id": { + "minLength": 1, + "type": "string" + }, + "operation": { + "minLength": 1, + "type": "string" + }, + "parent_action_id": { + "minLength": 1, + "type": "string" + }, + "reason": { + "maxLength": 280, + "minLength": 1, + "type": "string" + }, + "root_action_id": { + "minLength": 1, + "type": "string" + }, + "status": { + "enum": [ + "started", + "succeeded", + "refused", + "failed" + ], + "type": "string" + }, + "task_key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "created_at", + "id", + "operation", + "reason", + "root_action_id", + "status" + ], + "type": "object" + }, + "data": {}, + "data_freshness": { + "additionalProperties": false, + "properties": { + "balances_last_synced_at": { + "type": "string" + }, + "coverage": { + "enum": [ + "complete", + "partial", + "stale", + "unavailable" + ], + "type": "string" + }, + "holdings_last_synced_at": { + "type": "string" + }, + "transactions_last_synced_at": { + "type": "string" + } + }, + "required": [ + "coverage" + ], + "type": "object" + }, + "errors": { + "items": { + "additionalProperties": false, + "properties": { + "code": { + "type": "string" + }, + "expires_at": { + "type": "string" + }, + "idempotency_key": { + "maxLength": 128, + "minLength": 16, + "pattern": "^[\\x20-\\x7e]+$", + "type": "string" + }, + "message": { + "type": "string" + }, + "recovery_url": { + "type": "string" + }, + "required_capability": { + "type": "string" + }, + "retry_after_seconds": { + "exclusiveMinimum": 0, + "maximum": 9007199254740991, + "type": "integer" + }, + "retryable": { + "type": "boolean" + }, + "suggested_command": { + "type": "string" + } + }, + "required": [ + "code", + "message", + "retryable" + ], + "type": "object" + }, + "type": "array" + }, + "generated_at": { + "type": "string" + }, + "metadata": { + "additionalProperties": {}, + "properties": { + "view_url": { + "format": "uri", + "type": "string" + } + }, + "type": "object" + }, + "next_actions": { + "items": { + "additionalProperties": false, + "properties": { + "args": { + "additionalProperties": { + "$ref": "#/$defs/__schema0" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "command": { + "type": "string" + }, + "intent": { + "type": "string" + }, + "shell": { + "type": "string" + } + }, + "required": [ + "args", + "command", + "intent", + "shell" + ], + "type": "object" + }, + "type": "array" + }, + "request_id": { + "type": "string" + }, + "schema_version": { + "type": "string" + }, + "status": { + "enum": [ + "success", + "partial_success", + "action_required", + "error" + ], + "type": "string" + }, + "user_message": { + "minLength": 1, + "type": "string" + }, + "warnings": { + "items": { + "additionalProperties": false, + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "code", + "message" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "data", + "errors", + "generated_at", + "next_actions", + "request_id", + "schema_version", + "status", + "warnings" + ], + "type": "object" + } +]
- Changed
candor_write6 fields changed- added
Input schema / properties / idempotency_key / descriptionAdded value: +"Stable opaque identity for one logical POST. Reuse only with the same method, path, actor, and body for transport retries. A completed receipt replays its original result, including a refusal; changed input with the same key is rejected. After a refused action and access recovery, use a new key for the new attempt. Follow retryable and recovery guidance if the operation is still running or its outcome is unknown. If omitted, MCP derives a key from this request identity; use an explicit key to deduplicate separate tool invocations." - added
Input schema / properties / operation / descriptionAdded value: +"Exact operation id from candor_schema, such as notes.create. Use the tool indicated by its calls.mcp or next_call." - added
Input schema / properties / parent_action / descriptionAdded value: +"Existing action id in this workspace, typically returned in next_actions, whose root identity this continuation inherits. An omitted reason inherits the parent reason; an explicit reason is preserved, except for fixed-reason orientation operations. Omit for a new root action." - changed
Input schema / properties / reason / descriptionPrevious value: -"Concise user-visible reason recorded in action history."New value: +"Concise user-visible purpose recorded in immutable action history, including for financial reads. A reason is not approval. Root operations require it except fixed-reason orientation operations; continuations inherit the parent reason only when no reason is supplied. Fixed-reason orientation operations always use their system reason." - added
Input schema / properties / task_key / descriptionAdded value: +"Optional stable label grouping operations for the same user task. Omit to inherit the parent task key, if any. It does not schedule work or provide idempotency." - changed
Input schema / requiredPrevious value: -[ - "reason", - "operation" -]New value: +[ + "operation" +]
12 tool updates
- Removed
candor_account - Changed
candor_changes3 fields changed- changed
Input schema / properties / limit / maximumPrevious value: -100New value: +1000 - added
Output schema / properties / metadata / propertiesAdded value: +{ + "view_url": { + "format": "uri", + "type": "string" + } +} - removed
Output schema / properties / metadata / propertyNamesRemoved value: -{ - "type": "string" -}
- Added
candor_configure_overview - Changed
candor_connections3 fields changed- changed
Input schema / properties / args / descriptionPrevious value: -"Path and query arguments declared by the selected operation. Do not put request-body fields here."New value: +"Arguments listed in accepted_args by candor_schema for the selected operation, including declared shorthand such as open.acknowledge checkpoint. Put action context such as parent_action at the top level, including when it comes from a returned next action. Request-body fields belong in input unless the operation explicitly accepts them as shorthand args." - added
Output schema / properties / metadata / propertiesAdded value: +{ + "view_url": { + "format": "uri", + "type": "string" + } +} - removed
Output schema / properties / metadata / propertyNamesRemoved value: -{ - "type": "string" -}
- Changed
candor_get3 fields changed- changed
Input schema / properties / args / descriptionPrevious value: -"Path and query arguments declared by the selected operation. Do not put request-body fields here."New value: +"Arguments listed in accepted_args by candor_schema for the selected operation, including declared shorthand such as open.acknowledge checkpoint. Put action context such as parent_action at the top level, including when it comes from a returned next action. Request-body fields belong in input unless the operation explicitly accepts them as shorthand args." - added
Output schema / properties / metadata / propertiesAdded value: +{ + "view_url": { + "format": "uri", + "type": "string" + } +} - removed
Output schema / properties / metadata / propertyNamesRemoved value: -{ - "type": "string" -}
- Changed
candor_open5 fields changed- added
Input schema / additionalPropertiesAdded value: +false - removed
Input schema / properties / acknowledge_checkpointRemoved value: -{ - "minLength": 1, - "type": "string" -} - removed
Input schema / properties / idempotency_keyRemoved value: -{ - "maxLength": 128, - "minLength": 16, - "type": "string" -} - added
Output schema / properties / metadata / propertiesAdded value: +{ + "view_url": { + "format": "uri", + "type": "string" + } +} - removed
Output schema / properties / metadata / propertyNamesRemoved value: -{ - "type": "string" -}
- Added
candor_preview - Changed
candor_query4 fields changed- changed
Input schema / properties / dataset / enumPrevious value: -[ - "accounts", - "balances", - "account_terms", - "transactions", - "coverage", - "recurring", - "holdings", - "investment_transactions", - "budgets", - "goals", - "rules", - "changes", - "actions" -]New value: +[ + "properties", + "accounts", + "balances", + "account_terms", + "transactions", + "coverage", + "recurring", + "holdings", + "holding_valuations", + "investment_transactions", + "budgets", + "goals", + "rules", + "categories", + "changes", + "actions" +] - changed
Input schema / properties / filters / descriptionPrevious value: -"Path and query arguments declared by the selected operation. Do not put request-body fields here."New value: +"Arguments listed in accepted_args by candor_schema for the selected operation, including declared shorthand such as open.acknowledge checkpoint. Put action context such as parent_action at the top level, including when it comes from a returned next action. Request-body fields belong in input unless the operation explicitly accepts them as shorthand args." - added
Output schema / properties / metadata / propertiesAdded value: +{ + "view_url": { + "format": "uri", + "type": "string" + } +} - removed
Output schema / properties / metadata / propertyNamesRemoved value: -{ - "type": "string" -}
- Changed
candor_schema3 fields changed- changed
Input schema / properties / dataset / enumPrevious value: -[ - "accounts", - "balances", - "account_terms", - "transactions", - "coverage", - "recurring", - "holdings", - "investment_transactions", - "budgets", - "goals", - "rules", - "changes", - "actions" -]New value: +[ + "properties", + "accounts", + "balances", + "account_terms", + "transactions", + "coverage", + "recurring", + "holdings", + "holding_valuations", + "investment_transactions", + "budgets", + "goals", + "rules", + "categories", + "changes", + "actions" +] - added
Output schema / properties / metadata / propertiesAdded value: +{ + "view_url": { + "format": "uri", + "type": "string" + } +} - removed
Output schema / properties / metadata / propertyNamesRemoved value: -{ - "type": "string" -}
- Changed
candor_snapshot5 fields changed- changed
Input schema / properties / datasets / items / enumPrevious value: -[ - "accounts", - "balances", - "account_terms", - "transactions", - "coverage", - "recurring", - "holdings", - "investment_transactions", - "budgets", - "goals", - "rules", - "changes", - "actions" -]New value: +[ + "properties", + "accounts", + "balances", + "account_terms", + "transactions", + "coverage", + "recurring", + "holdings", + "holding_valuations", + "investment_transactions", + "budgets", + "goals", + "rules", + "categories", + "changes", + "actions" +] - changed
Input schema / properties / datasets / maxItemsPrevious value: -13New value: +16 - changed
Input schema / properties / filters / descriptionPrevious value: -"Path and query arguments declared by the selected operation. Do not put request-body fields here."New value: +"Arguments listed in accepted_args by candor_schema for the selected operation, including declared shorthand such as open.acknowledge checkpoint. Put action context such as parent_action at the top level, including when it comes from a returned next action. Request-body fields belong in input unless the operation explicitly accepts them as shorthand args." - added
Output schema / properties / metadata / propertiesAdded value: +{ + "view_url": { + "format": "uri", + "type": "string" + } +} - removed
Output schema / properties / metadata / propertyNamesRemoved value: -{ - "type": "string" -}
- Changed
candor_visualize15 fields changed- removed
Input schema / $defsRemoved value: -{ - "__schema0": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - }, - { - "items": { - "$ref": "#/$defs/__schema0" - }, - "type": "array" - }, - { - "additionalProperties": { - "$ref": "#/$defs/__schema0" - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - } - ] - } -} - added
Input schema / additionalPropertiesAdded value: +false - removed
Input schema / properties / argsRemoved value: -{ - "additionalProperties": { - "$ref": "#/$defs/__schema0" - }, - "description": "Path and query arguments declared by the selected operation. Do not put request-body fields here.", - "propertyNames": { - "type": "string" - }, - "type": "object" -} - added
Input schema / properties / fromAdded value: +{ + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" +} - removed
Input schema / properties / inline_responseRemoved value: -{ - "description": "Return the full response payload in this MCP tool result instead of a resource link. Use only when the client can materialize large tool results into a code sandbox; the response may be very large.", - "type": "boolean" -} - removed
Input schema / properties / kindRemoved value: -{ - "enum": [ - "budget-status", - "cashflow", - "metric-trend", - "overview", - "spending-categories", - "visible-net-position" - ], - "type": "string" -} - added
Input schema / properties / panelAdded value: +{ + "enum": [ + "net-position", + "cash-flow", + "recent-transactions", + "holdings", + "investments", + "spending", + "budget-status", + "goals", + "coming-up", + "agent-activity" + ], + "type": "string" +} - added
Input schema / properties / panelsAdded value: +{ + "items": { + "enum": [ + "net-position", + "cash-flow", + "recent-transactions", + "holdings", + "investments", + "spending", + "budget-status", + "goals", + "coming-up", + "agent-activity" + ], + "type": "string" + }, + "maxItems": 5, + "minItems": 2, + "type": "array" +} - added
Input schema / properties / presetAdded value: +{ + "enum": [ + "1w", + "1m", + "3m", + "ytd", + "1y" + ], + "type": "string" +} - added
Input schema / properties / toAdded value: +{ + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" +} - changed
Input schema / requiredPrevious value: -[ - "reason", - "kind" -]New value: +[ + "reason" +] - removed
Output schema / additionalPropertiesRemoved value: -false - added
Output schema / anyOfAdded value: +[ + { + "additionalProperties": false, + "properties": { + "panels": { + "items": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "account_count": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "asset_accounts": { + "items": { + "additionalProperties": false, + "properties": { + "as_of": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "balance": { + "maxLength": 32, + "type": "string" + }, + "category": { + "minLength": 1, + "type": "string" + }, + "id": { + "minLength": 1, + "type": "string" + }, + "institution": { + "minLength": 1, + "type": "string" + }, + "mask": { + "type": "string" + }, + "name": { + "minLength": 1, + "type": "string" + } + }, + "required": [ + "as_of", + "category", + "id", + "name" + ], + "type": "object" + }, + "type": "array" + }, + "assets": { + "maxLength": 32, + "type": "string" + }, + "caveats": { + "items": { + "type": "string" + }, + "type": "array" + }, + "context": { + "additionalProperties": false, + "properties": { + "summary": { + "minLength": 1, + "type": "string" + }, + "talking_points": { + "items": { + "minLength": 1, + "type": "string" + }, + "type": "array" + }, + "visible_facts": { + "items": { + "additionalProperties": false, + "properties": { + "label": { + "minLength": 1, + "type": "string" + }, + "value": { + "minLength": 1, + "type": "string" + } + }, + "required": [ + "label", + "value" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "summary", + "talking_points", + "visible_facts" + ], + "type": "object" + }, + "data_as_of": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "generated_at": { + "type": "string" + }, + "id": { + "const": "net-position", + "type": "string" + }, + "liabilities": { + "maxLength": 32, + "type": "string" + }, + "liability_accounts": { + "items": { + "additionalProperties": false, + "properties": { + "as_of": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "balance": { + "maxLength": 32, + "type": "string" + }, + "category": { + "minLength": 1, + "type": "string" + }, + "id": { + "minLength": 1, + "type": "string" + }, + "institution": { + "minLength": 1, + "type": "string" + }, + "mask": { + "type": "string" + }, + "name": { + "minLength": 1, + "type": "string" + } + }, + "required": [ + "as_of", + "category", + "id", + "name" + ], + "type": "object" + }, + "type": "array" + }, + "net": { + "maxLength": 32, + "type": "string" + }, + "period_change": { + "additionalProperties": false, + "properties": { + "assets": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "amount": { + "maxLength": 32, + "type": "string" + }, + "percent": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "since": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + } + }, + "required": [ + "amount", + "percent", + "since" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "liabilities": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "amount": { + "maxLength": 32, + "type": "string" + }, + "percent": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "since": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + } + }, + "required": [ + "amount", + "percent", + "since" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "net": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "amount": { + "maxLength": 32, + "type": "string" + }, + "percent": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "since": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + } + }, + "required": [ + "amount", + "percent", + "since" + ], + "type": "object" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "assets", + "liabilities", + "net" + ], + "type": "object" + }, + "presentation": { + "enum": [ + "summary", + "detail" + ], + "type": "string" + }, + "property_count": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "range": { + "additionalProperties": false, + "properties": { + "from": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + }, + "label": { + "minLength": 1, + "type": "string" + }, + "preset": { + "enum": [ + "1w", + "1m", + "3m", + "ytd", + "1y" + ], + "type": "string" + }, + "to": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + } + }, + "required": [ + "from", + "label", + "to" + ], + "type": "object" + }, + "series": { + "items": { + "additionalProperties": false, + "properties": { + "date": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + }, + "provenance": { + "minLength": 1, + "type": "string" + }, + "value": { + "maxLength": 32, + "type": "string" + } + }, + "required": [ + "date", + "provenance", + "value" + ], + "type": "object" + }, + "type": "array" + }, + "title": { + "minLength": 1, + "type": "string" + }, + "version": { + "const": "dashboard_panel.v1", + "type": "string" + }, + "view_url": { + "format": "uri", + "type": "string" + } + }, + "required": [ + "caveats", + "context", + "data_as_of", + "generated_at", + "presentation", + "range", + "title", + "version", + "view_url", + "id", + "account_count", + "asset_accounts", + "assets", + "liability_accounts", + "liabilities", + "net", + "period_change", + "series" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "caveats": { + "items": { + "type": "string" + }, + "type": "array" + }, + "context": { + "additionalProperties": false, + "properties": { + "summary": { + "minLength": 1, + "type": "string" + }, + "talking_points": { + "items": { + "minLength": 1, + "type": "string" + }, + "type": "array" + }, + "visible_facts": { + "items": { + "additionalProperties": false, + "properties": { + "label": { + "minLength": 1, + "type": "string" + }, + "value": { + "minLength": 1, + "type": "string" + } + }, + "required": [ + "label", + "value" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "summary", + "talking_points", + "visible_facts" + ], + "type": "object" + }, + "data_as_of": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "generated_at": { + "type": "string" + }, + "id": { + "const": "cash-flow", + "type": "string" + }, + "income": { + "maxLength": 32, + "type": "string" + }, + "net": { + "maxLength": 32, + "type": "string" + }, + "periods": { + "items": { + "additionalProperties": false, + "properties": { + "end": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + }, + "income": { + "maxLength": 32, + "type": "string" + }, + "label": { + "minLength": 1, + "type": "string" + }, + "net": { + "maxLength": 32, + "type": "string" + }, + "spending": { + "maxLength": 32, + "type": "string" + }, + "start": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + } + }, + "required": [ + "end", + "label", + "start", + "income", + "net", + "spending" + ], + "type": "object" + }, + "type": "array" + }, + "presentation": { + "enum": [ + "summary", + "detail" + ], + "type": "string" + }, + "range": { + "additionalProperties": false, + "properties": { + "from": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + }, + "label": { + "minLength": 1, + "type": "string" + }, + "preset": { + "enum": [ + "1w", + "1m", + "3m", + "ytd", + "1y" + ], + "type": "string" + }, + "to": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + } + }, + "required": [ + "from", + "label", + "to" + ], + "type": "object" + }, + "spending": { + "maxLength": 32, + "type": "string" + }, + "title": { + "minLength": 1, + "type": "string" + }, + "transaction_count": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "version": { + "const": "dashboard_panel.v1", + "type": "string" + }, + "view_url": { + "format": "uri", + "type": "string" + } + }, + "required": [ + "caveats", + "context", + "data_as_of", + "generated_at", + "presentation", + "range", + "title", + "version", + "view_url", + "id", + "income", + "net", + "periods", + "spending", + "transaction_count" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "caveats": { + "items": { + "type": "string" + }, + "type": "array" + }, + "context": { + "additionalProperties": false, + "properties": { + "summary": { + "minLength": 1, + "type": "string" + }, + "talking_points": { + "items": { + "minLength": 1, + "type": "string" + }, + "type": "array" + }, + "visible_facts": { + "items": { + "additionalProperties": false, + "properties": { + "label": { + "minLength": 1, + "type": "string" + }, + "value": { + "minLength": 1, + "type": "string" + } + }, + "required": [ + "label", + "value" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "summary", + "talking_points", + "visible_facts" + ], + "type": "object" + }, + "data_as_of": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "generated_at": { + "type": "string" + }, + "id": { + "const": "recent-transactions", + "type": "string" + }, + "presentation": { + "enum": [ + "summary", + "detail" + ], + "type": "string" + }, + "range": { + "additionalProperties": false, + "properties": { + "from": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + }, + "label": { + "minLength": 1, + "type": "string" + }, + "preset": { + "enum": [ + "1w", + "1m", + "3m", + "ytd", + "1y" + ], + "type": "string" + }, + "to": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + } + }, + "required": [ + "from", + "label", + "to" + ], + "type": "object" + }, + "rows": { + "items": { + "additionalProperties": false, + "properties": { + "amount": { + "maxLength": 32, + "type": "string" + }, + "category": { + "type": "string" + }, + "date": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + }, + "description": { + "minLength": 1, + "type": "string" + }, + "direction": { + "enum": [ + "inflow", + "neutral", + "outflow" + ], + "type": "string" + }, + "id": { + "minLength": 1, + "type": "string" + }, + "pending": { + "type": "boolean" + } + }, + "required": [ + "amount", + "date", + "description", + "direction", + "id", + "pending" + ], + "type": "object" + }, + "type": "array" + }, + "title": { + "minLength": 1, + "type": "string" + }, + "version": { + "const": "dashboard_panel.v1", + "type": "string" + }, + "view_url": { + "format": "uri", + "type": "string" + } + }, + "required": [ + "caveats", + "context", + "data_as_of", + "generated_at", + "presentation", + "range", + "title", + "version", + "view_url", + "id", + "rows" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "caveats": { + "items": { + "type": "string" + }, + "type": "array" + }, + "context": { + "additionalProperties": false, + "properties": { + "summary": { + "minLength": 1, + "type": "string" + }, + "talking_points": { + "items": { + "minLength": 1, + "type": "string" + }, + "type": "array" + }, + "visible_facts": { + "items": { + "additionalProperties": false, + "properties": { + "label": { + "minLength": 1, + "type": "string" + }, + "value": { + "minLength": 1, + "type": "string" + } + }, + "required": [ + "label", + "value" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "summary", + "talking_points", + "visible_facts" + ], + "type": "object" + }, + "data_as_of": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "generated_at": { + "type": "string" + }, + "holding_count": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "id": { + "const": "holdings", + "type": "string" + }, + "presentation": { + "enum": [ + "summary", + "detail" + ], + "type": "string" + }, + "range": { + "additionalProperties": false, + "properties": { + "from": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + }, + "label": { + "minLength": 1, + "type": "string" + }, + "preset": { + "enum": [ + "1w", + "1m", + "3m", + "ytd", + "1y" + ], + "type": "string" + }, + "to": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + } + }, + "required": [ + "from", + "label", + "to" + ], + "type": "object" + }, + "rows": { + "items": { + "additionalProperties": false, + "properties": { + "as_of": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "cost_basis": { + "maxLength": 32, + "type": "string" + }, + "day_change_percent": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "gain_loss": { + "maxLength": 32, + "type": "string" + }, + "id": { + "minLength": 1, + "type": "string" + }, + "name": { + "minLength": 1, + "type": "string" + }, + "quantity": { + "type": "string" + }, + "sparkline": { + "items": { + "additionalProperties": false, + "properties": { + "date": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + }, + "value": { + "maxLength": 32, + "type": "string" + } + }, + "required": [ + "date", + "value" + ], + "type": "object" + }, + "type": "array" + }, + "symbol": { + "type": "string" + }, + "value": { + "maxLength": 32, + "type": "string" + }, + "weight": { + "type": "number" + } + }, + "required": [ + "as_of", + "id", + "name" + ], + "type": "object" + }, + "type": "array" + }, + "title": { + "minLength": 1, + "type": "string" + }, + "total_value": { + "maxLength": 32, + "type": "string" + }, + "version": { + "const": "dashboard_panel.v1", + "type": "string" + }, + "view_url": { + "format": "uri", + "type": "string" + } + }, + "required": [ + "caveats", + "context", + "data_as_of", + "generated_at", + "presentation", + "range", + "title", + "version", + "view_url", + "id", + "rows", + "holding_count", + "total_value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "account_count": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "accounts": { + "items": { + "additionalProperties": false, + "properties": { + "as_of": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "balance": { + "maxLength": 32, + "type": "string" + }, + "basis": { + "enum": [ + "positions", + "source_observed" + ], + "type": "string" + }, + "id": { + "minLength": 1, + "type": "string" + }, + "institution": { + "minLength": 1, + "type": "string" + }, + "mask": { + "type": "string" + }, + "name": { + "minLength": 1, + "type": "string" + }, + "period_change": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "amount": { + "maxLength": 32, + "type": "string" + }, + "percent": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "since": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + } + }, + "required": [ + "amount", + "percent", + "since" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "reported_balance": { + "maxLength": 32, + "type": "string" + } + }, + "required": [ + "as_of", + "basis", + "id", + "name", + "period_change" + ], + "type": "object" + }, + "type": "array" + }, + "allocation": { + "items": { + "additionalProperties": false, + "properties": { + "holding_count": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "type": { + "minLength": 1, + "type": "string" + }, + "value": { + "maxLength": 32, + "type": "string" + }, + "weight": { + "type": "number" + } + }, + "required": [ + "holding_count", + "type", + "value", + "weight" + ], + "type": "object" + }, + "type": "array" + }, + "allocation_basis": { + "enum": [ + "net", + "gross" + ], + "type": "string" + }, + "caveats": { + "items": { + "type": "string" + }, + "type": "array" + }, + "context": { + "additionalProperties": false, + "properties": { + "summary": { + "minLength": 1, + "type": "string" + }, + "talking_points": { + "items": { + "minLength": 1, + "type": "string" + }, + "type": "array" + }, + "visible_facts": { + "items": { + "additionalProperties": false, + "properties": { + "label": { + "minLength": 1, + "type": "string" + }, + "value": { + "minLength": 1, + "type": "string" + } + }, + "required": [ + "label", + "value" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "summary", + "talking_points", + "visible_facts" + ], + "type": "object" + }, + "data_as_of": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "day_change": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "amount": { + "maxLength": 32, + "type": "string" + }, + "holding_count": { + "exclusiveMinimum": 0, + "maximum": 9007199254740991, + "type": "integer" + }, + "percent": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "amount", + "holding_count", + "percent" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "generated_at": { + "type": "string" + }, + "id": { + "const": "investments", + "type": "string" + }, + "latest_price_as_of": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "market_valued_account_count": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "movers": { + "items": { + "additionalProperties": false, + "properties": { + "account_count": { + "exclusiveMinimum": 0, + "maximum": 9007199254740991, + "type": "integer" + }, + "day_change_amount": { + "maxLength": 32, + "type": "string" + }, + "day_change_percent": { + "type": "number" + }, + "holding_ids": { + "items": { + "minLength": 1, + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "id": { + "minLength": 1, + "type": "string" + }, + "name": { + "minLength": 1, + "type": "string" + }, + "session": { + "additionalProperties": false, + "properties": { + "closes_at": { + "type": "string" + }, + "market_date": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + }, + "opens_at": { + "type": "string" + }, + "points": { + "items": { + "additionalProperties": false, + "properties": { + "at": { + "type": "string" + }, + "price": { + "type": "string" + } + }, + "required": [ + "at", + "price" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" + }, + "previous_close": { + "type": "string" + } + }, + "required": [ + "closes_at", + "market_date", + "opens_at", + "points", + "previous_close" + ], + "type": "object" + }, + "sparkline": { + "items": { + "additionalProperties": false, + "properties": { + "date": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + }, + "value": { + "maxLength": 32, + "type": "string" + } + }, + "required": [ + "date", + "value" + ], + "type": "object" + }, + "type": "array" + }, + "symbol": { + "type": "string" + }, + "value": { + "maxLength": 32, + "type": "string" + } + }, + "required": [ + "account_count", + "day_change_percent", + "holding_ids", + "id", + "name", + "value" + ], + "type": "object" + }, + "type": "array" + }, + "period_change": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "amount": { + "maxLength": 32, + "type": "string" + }, + "percent": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "since": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + } + }, + "required": [ + "amount", + "percent", + "since" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "presentation": { + "enum": [ + "summary", + "detail" + ], + "type": "string" + }, + "price_as_of": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "range": { + "additionalProperties": false, + "properties": { + "from": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + }, + "label": { + "minLength": 1, + "type": "string" + }, + "preset": { + "enum": [ + "1w", + "1m", + "3m", + "ytd", + "1y" + ], + "type": "string" + }, + "to": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + } + }, + "required": [ + "from", + "label", + "to" + ], + "type": "object" + }, + "series": { + "items": { + "additionalProperties": false, + "properties": { + "date": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + }, + "provenance": { + "minLength": 1, + "type": "string" + }, + "value": { + "maxLength": 32, + "type": "string" + } + }, + "required": [ + "date", + "provenance", + "value" + ], + "type": "object" + }, + "type": "array" + }, + "stale_quote_holding_count": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "title": { + "minLength": 1, + "type": "string" + }, + "total_value": { + "maxLength": 32, + "type": "string" + }, + "version": { + "const": "dashboard_panel.v1", + "type": "string" + }, + "view_url": { + "format": "uri", + "type": "string" + } + }, + "required": [ + "caveats", + "context", + "data_as_of", + "generated_at", + "presentation", + "range", + "title", + "version", + "view_url", + "id", + "account_count", + "accounts", + "allocation_basis", + "allocation", + "day_change", + "market_valued_account_count", + "movers", + "period_change", + "latest_price_as_of", + "price_as_of", + "stale_quote_holding_count", + "series", + "total_value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "caveats": { + "items": { + "type": "string" + }, + "type": "array" + }, + "context": { + "additionalProperties": false, + "properties": { + "summary": { + "minLength": 1, + "type": "string" + }, + "talking_points": { + "items": { + "minLength": 1, + "type": "string" + }, + "type": "array" + }, + "visible_facts": { + "items": { + "additionalProperties": false, + "properties": { + "label": { + "minLength": 1, + "type": "string" + }, + "value": { + "minLength": 1, + "type": "string" + } + }, + "required": [ + "label", + "value" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "summary", + "talking_points", + "visible_facts" + ], + "type": "object" + }, + "data_as_of": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "generated_at": { + "type": "string" + }, + "id": { + "const": "spending", + "type": "string" + }, + "periods": { + "items": { + "additionalProperties": false, + "properties": { + "categories": { + "items": { + "additionalProperties": false, + "properties": { + "amount": { + "maxLength": 32, + "type": "string" + }, + "category": { + "minLength": 1, + "type": "string" + } + }, + "required": [ + "amount", + "category" + ], + "type": "object" + }, + "type": "array" + }, + "end": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + }, + "label": { + "minLength": 1, + "type": "string" + }, + "start": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + }, + "total": { + "maxLength": 32, + "type": "string" + } + }, + "required": [ + "end", + "label", + "start", + "categories", + "total" + ], + "type": "object" + }, + "type": "array" + }, + "presentation": { + "enum": [ + "summary", + "detail" + ], + "type": "string" + }, + "range": { + "additionalProperties": false, + "properties": { + "from": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + }, + "label": { + "minLength": 1, + "type": "string" + }, + "preset": { + "enum": [ + "1w", + "1m", + "3m", + "ytd", + "1y" + ], + "type": "string" + }, + "to": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + } + }, + "required": [ + "from", + "label", + "to" + ], + "type": "object" + }, + "rows": { + "items": { + "additionalProperties": false, + "properties": { + "amount": { + "maxLength": 32, + "type": "string" + }, + "category": { + "minLength": 1, + "type": "string" + }, + "transaction_count": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "amount", + "category", + "transaction_count" + ], + "type": "object" + }, + "type": "array" + }, + "title": { + "minLength": 1, + "type": "string" + }, + "total": { + "maxLength": 32, + "type": "string" + }, + "transaction_count": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "version": { + "const": "dashboard_panel.v1", + "type": "string" + }, + "view_url": { + "format": "uri", + "type": "string" + } + }, + "required": [ + "caveats", + "context", + "data_as_of", + "generated_at", + "presentation", + "range", + "title", + "version", + "view_url", + "id", + "rows", + "periods", + "total", + "transaction_count" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "actual": { + "maxLength": 32, + "type": "string" + }, + "caveats": { + "items": { + "type": "string" + }, + "type": "array" + }, + "configured": { + "type": "boolean" + }, + "context": { + "additionalProperties": false, + "properties": { + "summary": { + "minLength": 1, + "type": "string" + }, + "talking_points": { + "items": { + "minLength": 1, + "type": "string" + }, + "type": "array" + }, + "visible_facts": { + "items": { + "additionalProperties": false, + "properties": { + "label": { + "minLength": 1, + "type": "string" + }, + "value": { + "minLength": 1, + "type": "string" + } + }, + "required": [ + "label", + "value" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "summary", + "talking_points", + "visible_facts" + ], + "type": "object" + }, + "data_as_of": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "days_elapsed": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "days_in_period": { + "exclusiveMinimum": 0, + "maximum": 9007199254740991, + "type": "integer" + }, + "expected_to_date": { + "maxLength": 32, + "type": "string" + }, + "generated_at": { + "type": "string" + }, + "group_totals": { + "items": { + "additionalProperties": false, + "properties": { + "actual": { + "maxLength": 32, + "type": "string" + }, + "line_type": { + "enum": [ + "recurring", + "flexible", + "goal", + "cushion", + "other" + ], + "type": "string" + }, + "planned": { + "maxLength": 32, + "type": "string" + }, + "remaining": { + "maxLength": 32, + "type": "string" + } + }, + "required": [ + "actual", + "line_type", + "planned", + "remaining" + ], + "type": "object" + }, + "type": "array" + }, + "id": { + "const": "budget-status", + "type": "string" + }, + "pace_variance": { + "maxLength": 32, + "type": "string" + }, + "period": { + "pattern": "^\\d{4}-(0[1-9]|1[0-2])$", + "type": "string" + }, + "planned": { + "maxLength": 32, + "type": "string" + }, + "presentation": { + "enum": [ + "summary", + "detail" + ], + "type": "string" + }, + "range": { + "additionalProperties": false, + "properties": { + "from": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + }, + "label": { + "minLength": 1, + "type": "string" + }, + "preset": { + "enum": [ + "1w", + "1m", + "3m", + "ytd", + "1y" + ], + "type": "string" + }, + "to": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + } + }, + "required": [ + "from", + "label", + "to" + ], + "type": "object" + }, + "remaining": { + "maxLength": 32, + "type": "string" + }, + "row_count": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "rows": { + "items": { + "additionalProperties": false, + "properties": { + "actual": { + "maxLength": 32, + "type": "string" + }, + "category": { + "minLength": 1, + "type": "string" + }, + "line_type": { + "enum": [ + "recurring", + "flexible", + "goal", + "cushion", + "other" + ], + "type": "string" + }, + "planned": { + "maxLength": 32, + "type": "string" + }, + "remaining": { + "maxLength": 32, + "type": "string" + }, + "status": { + "enum": [ + "not_started", + "over_budget", + "within_budget" + ], + "type": "string" + }, + "transaction_count": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "actual", + "category", + "line_type", + "planned", + "remaining", + "status", + "transaction_count" + ], + "type": "object" + }, + "type": "array" + }, + "safe_to_spend": { + "maxLength": 32, + "type": "string" + }, + "series": { + "items": { + "additionalProperties": false, + "properties": { + "date": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + }, + "value": { + "maxLength": 32, + "type": "string" + } + }, + "required": [ + "date", + "value" + ], + "type": "object" + }, + "type": "array" + }, + "title": { + "minLength": 1, + "type": "string" + }, + "unplanned_count": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "unplanned_rows": { + "items": { + "additionalProperties": false, + "properties": { + "actual": { + "maxLength": 32, + "type": "string" + }, + "category": { + "minLength": 1, + "type": "string" + }, + "transaction_count": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "actual", + "category", + "transaction_count" + ], + "type": "object" + }, + "type": "array" + }, + "unplanned_total": { + "maxLength": 32, + "type": "string" + }, + "version": { + "const": "dashboard_panel.v1", + "type": "string" + }, + "view_url": { + "format": "uri", + "type": "string" + } + }, + "required": [ + "caveats", + "context", + "data_as_of", + "generated_at", + "presentation", + "range", + "title", + "version", + "view_url", + "id", + "actual", + "configured", + "days_elapsed", + "days_in_period", + "expected_to_date", + "group_totals", + "pace_variance", + "period", + "planned", + "remaining", + "row_count", + "rows", + "safe_to_spend", + "series", + "unplanned_count", + "unplanned_rows", + "unplanned_total" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "caveats": { + "items": { + "type": "string" + }, + "type": "array" + }, + "context": { + "additionalProperties": false, + "properties": { + "summary": { + "minLength": 1, + "type": "string" + }, + "talking_points": { + "items": { + "minLength": 1, + "type": "string" + }, + "type": "array" + }, + "visible_facts": { + "items": { + "additionalProperties": false, + "properties": { + "label": { + "minLength": 1, + "type": "string" + }, + "value": { + "minLength": 1, + "type": "string" + } + }, + "required": [ + "label", + "value" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "summary", + "talking_points", + "visible_facts" + ], + "type": "object" + }, + "data_as_of": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "generated_at": { + "type": "string" + }, + "id": { + "const": "goals", + "type": "string" + }, + "period": { + "pattern": "^\\d{4}-(0[1-9]|1[0-2])$", + "type": "string" + }, + "presentation": { + "enum": [ + "summary", + "detail" + ], + "type": "string" + }, + "range": { + "additionalProperties": false, + "properties": { + "from": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + }, + "label": { + "minLength": 1, + "type": "string" + }, + "preset": { + "enum": [ + "1w", + "1m", + "3m", + "ytd", + "1y" + ], + "type": "string" + }, + "to": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + } + }, + "required": [ + "from", + "label", + "to" + ], + "type": "object" + }, + "rows": { + "items": { + "additionalProperties": false, + "properties": { + "contribution_amount": { + "maxLength": 32, + "type": "string" + }, + "contribution_cadence": { + "enum": [ + "weekly", + "biweekly", + "monthly", + "quarterly", + "annual" + ], + "type": "string" + }, + "days_elapsed": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "days_remaining": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "id": { + "minLength": 1, + "type": "string" + }, + "kind": { + "enum": [ + "debt_reduction", + "income", + "other", + "purchase", + "reserve", + "sinking_fund" + ], + "type": "string" + }, + "name": { + "minLength": 1, + "type": "string" + }, + "observed": { + "maxLength": 32, + "type": "string" + }, + "observed_this_period": { + "maxLength": 32, + "type": "string" + }, + "projected_completion_date": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + }, + "remaining": { + "maxLength": 32, + "type": "string" + }, + "required_contribution": { + "additionalProperties": false, + "properties": { + "amount": { + "maxLength": 32, + "type": "string" + }, + "cadence": { + "enum": [ + "weekly", + "biweekly", + "monthly", + "quarterly", + "annual" + ], + "type": "string" + } + }, + "required": [ + "amount", + "cadence" + ], + "type": "object" + }, + "series": { + "items": { + "additionalProperties": false, + "properties": { + "date": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + }, + "value": { + "maxLength": 32, + "type": "string" + } + }, + "required": [ + "date", + "value" + ], + "type": "object" + }, + "type": "array" + }, + "series_partial": { + "type": "boolean" + }, + "started_on": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + }, + "status": { + "enum": [ + "active", + "archived", + "completed", + "paused" + ], + "type": "string" + }, + "target": { + "maxLength": 32, + "type": "string" + }, + "target_date": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + } + }, + "required": [ + "days_elapsed", + "id", + "kind", + "name", + "series", + "series_partial", + "started_on", + "status" + ], + "type": "object" + }, + "type": "array" + }, + "title": { + "minLength": 1, + "type": "string" + }, + "version": { + "const": "dashboard_panel.v1", + "type": "string" + }, + "view_url": { + "format": "uri", + "type": "string" + } + }, + "required": [ + "caveats", + "context", + "data_as_of", + "generated_at", + "presentation", + "range", + "title", + "version", + "view_url", + "id", + "period", + "rows" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "candidates_count": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "caveats": { + "items": { + "type": "string" + }, + "type": "array" + }, + "context": { + "additionalProperties": false, + "properties": { + "summary": { + "minLength": 1, + "type": "string" + }, + "talking_points": { + "items": { + "minLength": 1, + "type": "string" + }, + "type": "array" + }, + "visible_facts": { + "items": { + "additionalProperties": false, + "properties": { + "label": { + "minLength": 1, + "type": "string" + }, + "value": { + "minLength": 1, + "type": "string" + } + }, + "required": [ + "label", + "value" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "summary", + "talking_points", + "visible_facts" + ], + "type": "object" + }, + "data_as_of": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "generated_at": { + "type": "string" + }, + "has_recurring_items": { + "type": "boolean" + }, + "horizon_days": { + "exclusiveMinimum": 0, + "maximum": 9007199254740991, + "type": "integer" + }, + "id": { + "const": "coming-up", + "type": "string" + }, + "month": { + "additionalProperties": false, + "properties": { + "left_to_pay": { + "additionalProperties": { + "maxLength": 32, + "type": "string" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "paid_so_far": { + "additionalProperties": { + "maxLength": 32, + "type": "string" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "payments": { + "items": { + "additionalProperties": false, + "properties": { + "account_label": { + "minLength": 1, + "type": "string" + }, + "amount": { + "maxLength": 32, + "type": "string" + }, + "cadence": { + "minLength": 1, + "type": "string" + }, + "category": { + "minLength": 1, + "type": "string" + }, + "date": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + }, + "id": { + "minLength": 1, + "type": "string" + }, + "merchant_name": { + "minLength": 1, + "type": "string" + }, + "recurring_item_id": { + "minLength": 1, + "type": "string" + }, + "status": { + "enum": [ + "paid", + "expected" + ], + "type": "string" + }, + "transaction_id": { + "minLength": 1, + "type": "string" + } + }, + "required": [ + "id", + "recurring_item_id", + "merchant_name", + "cadence", + "date", + "amount", + "status" + ], + "type": "object" + }, + "type": "array" + }, + "period": { + "pattern": "^\\d{4}-(0[1-9]|1[0-2])$", + "type": "string" + } + }, + "required": [ + "period", + "left_to_pay", + "paid_so_far" + ], + "type": "object" + }, + "presentation": { + "enum": [ + "summary", + "detail" + ], + "type": "string" + }, + "range": { + "additionalProperties": false, + "properties": { + "from": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + }, + "label": { + "minLength": 1, + "type": "string" + }, + "preset": { + "enum": [ + "1w", + "1m", + "3m", + "ytd", + "1y" + ], + "type": "string" + }, + "to": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + } + }, + "required": [ + "from", + "label", + "to" + ], + "type": "object" + }, + "rows": { + "items": { + "additionalProperties": false, + "properties": { + "account_identity_id": { + "minLength": 1, + "type": "string" + }, + "account_label": { + "minLength": 1, + "type": "string" + }, + "amount_estimate": { + "maxLength": 32, + "type": "string" + }, + "cadence": { + "minLength": 1, + "type": "string" + }, + "category": { + "minLength": 1, + "type": "string" + }, + "confirmation_note": { + "minLength": 1, + "type": "string" + }, + "confirmed": { + "type": "boolean" + }, + "direction": { + "enum": [ + "inflow", + "outflow", + "neutral" + ], + "type": "string" + }, + "ends_at": { + "anyOf": [ + { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + }, + { + "type": "null" + } + ] + }, + "group": { + "enum": [ + "overdue", + "upcoming", + "later", + "candidate", + "archived" + ], + "type": "string" + }, + "id": { + "minLength": 1, + "type": "string" + }, + "last_amount": { + "anyOf": [ + { + "maxLength": 32, + "type": "string" + }, + { + "type": "null" + } + ] + }, + "merchant_name": { + "minLength": 1, + "type": "string" + }, + "missed_count": { + "anyOf": [ + { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "predicted_next_date": { + "anyOf": [ + { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + }, + { + "type": "null" + } + ] + }, + "predicted_window": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "from": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + }, + "to": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + } + }, + "required": [ + "from", + "to" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "remaining_occurrences": { + "anyOf": [ + { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "source": { + "enum": [ + "detected", + "declared" + ], + "type": "string" + }, + "status": { + "enum": [ + "candidate", + "active", + "stopped", + "dismissed" + ], + "type": "string" + } + }, + "required": [ + "account_identity_id", + "amount_estimate", + "cadence", + "confirmed", + "direction", + "ends_at", + "group", + "id", + "last_amount", + "merchant_name", + "missed_count", + "predicted_next_date", + "predicted_window", + "remaining_occurrences", + "source", + "status" + ], + "type": "object" + }, + "type": "array" + }, + "timeline": { + "items": { + "additionalProperties": false, + "properties": { + "inflow": { + "additionalProperties": { + "maxLength": 32, + "type": "string" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "month": { + "pattern": "^\\d{4}-(0[1-9]|1[0-2])$", + "type": "string" + }, + "occurrences": { + "items": { + "additionalProperties": false, + "properties": { + "amount": { + "maxLength": 32, + "type": "string" + }, + "date": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + }, + "direction": { + "enum": [ + "inflow", + "outflow", + "neutral" + ], + "type": "string" + }, + "merchant_name": { + "minLength": 1, + "type": "string" + }, + "recurring_item_id": { + "minLength": 1, + "type": "string" + } + }, + "required": [ + "amount", + "date", + "direction", + "merchant_name", + "recurring_item_id" + ], + "type": "object" + }, + "type": "array" + }, + "outflow": { + "additionalProperties": { + "maxLength": 32, + "type": "string" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + }, + "required": [ + "inflow", + "month", + "occurrences", + "outflow" + ], + "type": "object" + }, + "type": "array" + }, + "title": { + "minLength": 1, + "type": "string" + }, + "totals": { + "additionalProperties": false, + "properties": { + "annual": { + "additionalProperties": false, + "properties": { + "inflow": { + "additionalProperties": { + "maxLength": 32, + "type": "string" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "outflow": { + "additionalProperties": { + "maxLength": 32, + "type": "string" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + }, + "required": [ + "inflow", + "outflow" + ], + "type": "object" + }, + "counted": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "excluded": { + "additionalProperties": false, + "properties": { + "candidate": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "ended": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "inactive": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "no_cadence": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "candidate", + "ended", + "inactive", + "no_cadence" + ], + "type": "object" + }, + "monthly_equivalent": { + "additionalProperties": false, + "properties": { + "inflow": { + "additionalProperties": { + "maxLength": 32, + "type": "string" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "outflow": { + "additionalProperties": { + "maxLength": 32, + "type": "string" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + }, + "required": [ + "inflow", + "outflow" + ], + "type": "object" + } + }, + "required": [ + "annual", + "counted", + "excluded", + "monthly_equivalent" + ], + "type": "object" + }, + "version": { + "const": "dashboard_panel.v1", + "type": "string" + }, + "view_url": { + "format": "uri", + "type": "string" + } + }, + "required": [ + "caveats", + "context", + "data_as_of", + "generated_at", + "presentation", + "range", + "title", + "version", + "view_url", + "id", + "candidates_count", + "horizon_days", + "month", + "rows", + "timeline", + "totals" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "caveats": { + "items": { + "type": "string" + }, + "type": "array" + }, + "context": { + "additionalProperties": false, + "properties": { + "summary": { + "minLength": 1, + "type": "string" + }, + "talking_points": { + "items": { + "minLength": 1, + "type": "string" + }, + "type": "array" + }, + "visible_facts": { + "items": { + "additionalProperties": false, + "properties": { + "label": { + "minLength": 1, + "type": "string" + }, + "value": { + "minLength": 1, + "type": "string" + } + }, + "required": [ + "label", + "value" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "summary", + "talking_points", + "visible_facts" + ], + "type": "object" + }, + "data_as_of": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "generated_at": { + "type": "string" + }, + "has_earlier": { + "type": "boolean" + }, + "id": { + "const": "agent-activity", + "type": "string" + }, + "presentation": { + "enum": [ + "summary", + "detail" + ], + "type": "string" + }, + "range": { + "additionalProperties": false, + "properties": { + "from": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + }, + "label": { + "minLength": 1, + "type": "string" + }, + "preset": { + "enum": [ + "1w", + "1m", + "3m", + "ytd", + "1y" + ], + "type": "string" + }, + "to": { + "format": "date", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$", + "type": "string" + } + }, + "required": [ + "from", + "label", + "to" + ], + "type": "object" + }, + "rows": { + "items": { + "additionalProperties": false, + "properties": { + "changed_domains": { + "items": { + "type": "string" + }, + "type": "array" + }, + "created_at": { + "type": "string" + }, + "data_domains": { + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "minLength": 1, + "type": "string" + }, + "last_activity_at": { + "type": "string" + }, + "operation": { + "minLength": 1, + "type": "string" + }, + "operations": { + "items": { + "additionalProperties": false, + "properties": { + "agent": { + "minLength": 1, + "type": "string" + }, + "changed_domains": { + "items": { + "type": "string" + }, + "type": "array" + }, + "created_at": { + "type": "string" + }, + "data_domains": { + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "minLength": 1, + "type": "string" + }, + "operation": { + "minLength": 1, + "type": "string" + }, + "outcome": { + "minLength": 1, + "type": "string" + }, + "status": { + "enum": [ + "failed", + "refused", + "started", + "succeeded" + ], + "type": "string" + } + }, + "required": [ + "id", + "agent", + "changed_domains", + "created_at", + "data_domains", + "operation", + "status" + ], + "type": "object" + }, + "type": "array" + }, + "operations_truncated": { + "type": "boolean" + }, + "outcome": { + "minLength": 1, + "type": "string" + }, + "reason": { + "minLength": 1, + "type": "string" + }, + "state": { + "enum": [ + "changed", + "incomplete", + "in_progress", + "problem", + "read_only" + ], + "type": "string" + }, + "status": { + "enum": [ + "failed", + "refused", + "started", + "succeeded" + ], + "type": "string" + } + }, + "required": [ + "id", + "changed_domains", + "created_at", + "data_domains", + "last_activity_at", + "operation", + "operations", + "operations_truncated", + "reason", + "state", + "status" + ], + "type": "object" + }, + "type": "array" + }, + "title": { + "minLength": 1, + "type": "string" + }, + "version": { + "const": "dashboard_panel.v2", + "type": "string" + }, + "view_url": { + "format": "uri", + "type": "string" + } + }, + "required": [ + "caveats", + "context", + "data_as_of", + "generated_at", + "presentation", + "range", + "title", + "version", + "view_url", + "has_earlier", + "id", + "rows" + ], + "type": "object" + } + ] + }, + "maxItems": 5, + "minItems": 1, + "type": "array" + }, + "version": { + "const": "dashboard_visual.v2", + "type": "string" + }, + "view_url": { + "format": "uri", + "type": "string" + } + }, + "required": [ + "panels", + "version", + "view_url" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "action": { + "additionalProperties": false, + "properties": { + "completed_at": { + "type": "string" + }, + "created_at": { + "type": "string" + }, + "id": { + "minLength": 1, + "type": "string" + }, + "operation": { + "minLength": 1, + "type": "string" + }, + "parent_action_id": { + "minLength": 1, + "type": "string" + }, + "reason": { + "maxLength": 280, + "minLength": 1, + "type": "string" + }, + "root_action_id": { + "minLength": 1, + "type": "string" + }, + "status": { + "enum": [ + "started", + "succeeded", + "refused", + "failed" + ], + "type": "string" + }, + "task_key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "created_at", + "id", + "operation", + "reason", + "root_action_id", + "status" + ], + "type": "object" + }, + "data": {}, + "data_freshness": { + "additionalProperties": false, + "properties": { + "balances_last_synced_at": { + "type": "string" + }, + "coverage": { + "enum": [ + "complete", + "partial", + "stale", + "unavailable" + ], + "type": "string" + }, + "holdings_last_synced_at": { + "type": "string" + }, + "transactions_last_synced_at": { + "type": "string" + } + }, + "required": [ + "coverage" + ], + "type": "object" + }, + "errors": { + "items": { + "additionalProperties": false, + "properties": { + "code": { + "type": "string" + }, + "expires_at": { + "type": "string" + }, + "idempotency_key": { + "maxLength": 128, + "minLength": 16, + "pattern": "^[\\x20-\\x7e]+$", + "type": "string" + }, + "message": { + "type": "string" + }, + "recovery_url": { + "type": "string" + }, + "required_capability": { + "type": "string" + }, + "retry_after_seconds": { + "exclusiveMinimum": 0, + "maximum": 9007199254740991, + "type": "integer" + }, + "retryable": { + "type": "boolean" + }, + "suggested_command": { + "type": "string" + } + }, + "required": [ + "code", + "message", + "retryable" + ], + "type": "object" + }, + "type": "array" + }, + "generated_at": { + "type": "string" + }, + "metadata": { + "additionalProperties": {}, + "properties": { + "view_url": { + "format": "uri", + "type": "string" + } + }, + "type": "object" + }, + "next_actions": { + "items": { + "additionalProperties": false, + "properties": { + "args": { + "additionalProperties": { + "$ref": "#/$defs/__schema0" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "command": { + "type": "string" + }, + "intent": { + "type": "string" + }, + "shell": { + "type": "string" + } + }, + "required": [ + "args", + "command", + "intent", + "shell" + ], + "type": "object" + }, + "type": "array" + }, + "request_id": { + "type": "string" + }, + "schema_version": { + "type": "string" + }, + "status": { + "enum": [ + "success", + "partial_success", + "action_required", + "error" + ], + "type": "string" + }, + "user_message": { + "minLength": 1, + "type": "string" + }, + "warnings": { + "items": { + "additionalProperties": false, + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "code", + "message" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "data", + "errors", + "generated_at", + "next_actions", + "request_id", + "schema_version", + "status", + "warnings" + ], + "type": "object" + } +] - removed
Output schema / propertiesRemoved value: -{ - "action": { - "additionalProperties": false, - "properties": { - "completed_at": { - "type": "string" - }, - "created_at": { - "type": "string" - }, - "id": { - "minLength": 1, - "type": "string" - }, - "operation": { - "minLength": 1, - "type": "string" - }, - "parent_action_id": { - "minLength": 1, - "type": "string" - }, - "reason": { - "maxLength": 280, - "minLength": 1, - "type": "string" - }, - "root_action_id": { - "minLength": 1, - "type": "string" - }, - "status": { - "enum": [ - "started", - "succeeded", - "refused", - "failed" - ], - "type": "string" - }, - "task_key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "created_at", - "id", - "operation", - "reason", - "root_action_id", - "status" - ], - "type": "object" - }, - "data": {}, - "data_freshness": { - "additionalProperties": false, - "properties": { - "balances_last_synced_at": { - "type": "string" - }, - "coverage": { - "enum": [ - "complete", - "partial", - "stale", - "unavailable" - ], - "type": "string" - }, - "holdings_last_synced_at": { - "type": "string" - }, - "transactions_last_synced_at": { - "type": "string" - } - }, - "required": [ - "coverage" - ], - "type": "object" - }, - "errors": { - "items": { - "additionalProperties": false, - "properties": { - "code": { - "type": "string" - }, - "expires_at": { - "type": "string" - }, - "idempotency_key": { - "maxLength": 128, - "minLength": 16, - "pattern": "^[\\x20-\\x7e]+$", - "type": "string" - }, - "message": { - "type": "string" - }, - "recovery_url": { - "type": "string" - }, - "required_capability": { - "type": "string" - }, - "retry_after_seconds": { - "exclusiveMinimum": 0, - "maximum": 9007199254740991, - "type": "integer" - }, - "retryable": { - "type": "boolean" - }, - "suggested_command": { - "type": "string" - } - }, - "required": [ - "code", - "message", - "retryable" - ], - "type": "object" - }, - "type": "array" - }, - "generated_at": { - "type": "string" - }, - "metadata": { - "additionalProperties": {}, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "next_actions": { - "items": { - "additionalProperties": false, - "properties": { - "args": { - "additionalProperties": { - "$ref": "#/$defs/__schema0" - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "command": { - "type": "string" - }, - "intent": { - "type": "string" - }, - "shell": { - "type": "string" - } - }, - "required": [ - "args", - "command", - "intent", - "shell" - ], - "type": "object" - }, - "type": "array" - }, - "request_id": { - "type": "string" - }, - "schema_version": { - "type": "string" - }, - "status": { - "enum": [ - "success", - "partial_success", - "action_required", - "error" - ], - "type": "string" - }, - "user_message": { - "minLength": 1, - "type": "string" - }, - "warnings": { - "items": { - "additionalProperties": false, - "properties": { - "code": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "code", - "message" - ], - "type": "object" - }, - "type": "array" - } -} - removed
Output schema / requiredRemoved value: -[ - "data", - "errors", - "generated_at", - "next_actions", - "request_id", - "schema_version", - "status", - "warnings" -]
- Changed
candor_write3 fields changed- changed
Input schema / properties / args / descriptionPrevious value: -"Path and query arguments declared by the selected operation. Do not put request-body fields here."New value: +"Arguments listed in accepted_args by candor_schema for the selected operation, including declared shorthand such as open.acknowledge checkpoint. Put action context such as parent_action at the top level, including when it comes from a returned next action. Request-body fields belong in input unless the operation explicitly accepts them as shorthand args." - added
Output schema / properties / metadata / propertiesAdded value: +{ + "view_url": { + "format": "uri", + "type": "string" + } +} - removed
Output schema / properties / metadata / propertyNamesRemoved value: -{ - "type": "string" -}
10 tool updates
- Changed
candor_account1 field changed- added
Output schema / properties / metadataAdded value: +{ + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" +}
- Changed
candor_changes1 field changed- added
Output schema / properties / metadataAdded value: +{ + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" +}
- Changed
candor_connections1 field changed- added
Output schema / properties / metadataAdded value: +{ + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" +}
- Changed
candor_get1 field changed- added
Output schema / properties / metadataAdded value: +{ + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" +}
- Changed
candor_open1 field changed- added
Output schema / properties / metadataAdded value: +{ + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" +}
- Changed
candor_query1 field changed- added
Output schema / properties / metadataAdded value: +{ + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" +}
- Changed
candor_schema1 field changed- added
Output schema / properties / metadataAdded value: +{ + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" +}
- Changed
candor_snapshot1 field changed- added
Output schema / properties / metadataAdded value: +{ + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" +}
- Changed
candor_visualize1 field changed- added
Output schema / properties / metadataAdded value: +{ + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" +}
- Changed
candor_write1 field changed- added
Output schema / properties / metadataAdded value: +{ + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" +}
10 tool updates
- Changed
candor_account2 fields changed- removed
Output schema / properties / summaryRemoved value: -{ - "minLength": 1, - "type": "string" -} - changed
Output schema / requiredPrevious value: -[ - "data", - "errors", - "generated_at", - "next_actions", - "request_id", - "schema_version", - "status", - "summary", - "warnings" -]New value: +[ + "data", + "errors", + "generated_at", + "next_actions", + "request_id", + "schema_version", + "status", + "warnings" +]
- Changed
candor_changes2 fields changed- removed
Output schema / properties / summaryRemoved value: -{ - "minLength": 1, - "type": "string" -} - changed
Output schema / requiredPrevious value: -[ - "data", - "errors", - "generated_at", - "next_actions", - "request_id", - "schema_version", - "status", - "summary", - "warnings" -]New value: +[ + "data", + "errors", + "generated_at", + "next_actions", + "request_id", + "schema_version", + "status", + "warnings" +]
- Changed
candor_connections2 fields changed- removed
Output schema / properties / summaryRemoved value: -{ - "minLength": 1, - "type": "string" -} - changed
Output schema / requiredPrevious value: -[ - "data", - "errors", - "generated_at", - "next_actions", - "request_id", - "schema_version", - "status", - "summary", - "warnings" -]New value: +[ + "data", + "errors", + "generated_at", + "next_actions", + "request_id", + "schema_version", + "status", + "warnings" +]
- Changed
candor_get2 fields changed- removed
Output schema / properties / summaryRemoved value: -{ - "minLength": 1, - "type": "string" -} - changed
Output schema / requiredPrevious value: -[ - "data", - "errors", - "generated_at", - "next_actions", - "request_id", - "schema_version", - "status", - "summary", - "warnings" -]New value: +[ + "data", + "errors", + "generated_at", + "next_actions", + "request_id", + "schema_version", + "status", + "warnings" +]
- Changed
candor_open2 fields changed- removed
Output schema / properties / summaryRemoved value: -{ - "minLength": 1, - "type": "string" -} - changed
Output schema / requiredPrevious value: -[ - "data", - "errors", - "generated_at", - "next_actions", - "request_id", - "schema_version", - "status", - "summary", - "warnings" -]New value: +[ + "data", + "errors", + "generated_at", + "next_actions", + "request_id", + "schema_version", + "status", + "warnings" +]
- Changed
candor_query2 fields changed- removed
Output schema / properties / summaryRemoved value: -{ - "minLength": 1, - "type": "string" -} - changed
Output schema / requiredPrevious value: -[ - "data", - "errors", - "generated_at", - "next_actions", - "request_id", - "schema_version", - "status", - "summary", - "warnings" -]New value: +[ + "data", + "errors", + "generated_at", + "next_actions", + "request_id", + "schema_version", + "status", + "warnings" +]
- Changed
candor_schema2 fields changed- removed
Output schema / properties / summaryRemoved value: -{ - "minLength": 1, - "type": "string" -} - changed
Output schema / requiredPrevious value: -[ - "data", - "errors", - "generated_at", - "next_actions", - "request_id", - "schema_version", - "status", - "summary", - "warnings" -]New value: +[ + "data", + "errors", + "generated_at", + "next_actions", + "request_id", + "schema_version", + "status", + "warnings" +]
- Changed
candor_snapshot2 fields changed- removed
Output schema / properties / summaryRemoved value: -{ - "minLength": 1, - "type": "string" -} - changed
Output schema / requiredPrevious value: -[ - "data", - "errors", - "generated_at", - "next_actions", - "request_id", - "schema_version", - "status", - "summary", - "warnings" -]New value: +[ + "data", + "errors", + "generated_at", + "next_actions", + "request_id", + "schema_version", + "status", + "warnings" +]
- Changed
candor_visualize2 fields changed- removed
Output schema / properties / summaryRemoved value: -{ - "minLength": 1, - "type": "string" -} - changed
Output schema / requiredPrevious value: -[ - "data", - "errors", - "generated_at", - "next_actions", - "request_id", - "schema_version", - "status", - "summary", - "warnings" -]New value: +[ + "data", + "errors", + "generated_at", + "next_actions", + "request_id", + "schema_version", + "status", + "warnings" +]
- Changed
candor_write2 fields changed- removed
Output schema / properties / summaryRemoved value: -{ - "minLength": 1, - "type": "string" -} - changed
Output schema / requiredPrevious value: -[ - "data", - "errors", - "generated_at", - "next_actions", - "request_id", - "schema_version", - "status", - "summary", - "warnings" -]New value: +[ + "data", + "errors", + "generated_at", + "next_actions", + "request_id", + "schema_version", + "status", + "warnings" +]
10 tool updates
- Changed
candor_account2 fields changed- removed
Output schema / $defs / __schema1Removed value: -{ - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - }, - { - "items": { - "$ref": "#/$defs/__schema1" - }, - "type": "array" - }, - { - "additionalProperties": { - "$ref": "#/$defs/__schema1" - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - } - ] -} - removed
Output schema / properties / query_scopeRemoved value: -{ - "additionalProperties": false, - "properties": { - "population": { - "additionalProperties": false, - "properties": { - "included_count": { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - }, - "total_available_count": { - "anyOf": [ - { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "included_count", - "total_available_count" - ], - "type": "object" - }, - "query": { - "additionalProperties": false, - "properties": { - "args": { - "additionalProperties": { - "$ref": "#/$defs/__schema1" - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "operation": { - "minLength": 1, - "type": "string" - } - }, - "required": [ - "args", - "operation" - ], - "type": "object" - } - }, - "required": [ - "population", - "query" - ], - "type": "object" -}
- Changed
candor_changes2 fields changed- removed
Output schema / $defs / __schema1Removed value: -{ - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - }, - { - "items": { - "$ref": "#/$defs/__schema1" - }, - "type": "array" - }, - { - "additionalProperties": { - "$ref": "#/$defs/__schema1" - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - } - ] -} - removed
Output schema / properties / query_scopeRemoved value: -{ - "additionalProperties": false, - "properties": { - "population": { - "additionalProperties": false, - "properties": { - "included_count": { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - }, - "total_available_count": { - "anyOf": [ - { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "included_count", - "total_available_count" - ], - "type": "object" - }, - "query": { - "additionalProperties": false, - "properties": { - "args": { - "additionalProperties": { - "$ref": "#/$defs/__schema1" - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "operation": { - "minLength": 1, - "type": "string" - } - }, - "required": [ - "args", - "operation" - ], - "type": "object" - } - }, - "required": [ - "population", - "query" - ], - "type": "object" -}
- Changed
candor_connections2 fields changed- removed
Output schema / $defs / __schema1Removed value: -{ - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - }, - { - "items": { - "$ref": "#/$defs/__schema1" - }, - "type": "array" - }, - { - "additionalProperties": { - "$ref": "#/$defs/__schema1" - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - } - ] -} - removed
Output schema / properties / query_scopeRemoved value: -{ - "additionalProperties": false, - "properties": { - "population": { - "additionalProperties": false, - "properties": { - "included_count": { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - }, - "total_available_count": { - "anyOf": [ - { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "included_count", - "total_available_count" - ], - "type": "object" - }, - "query": { - "additionalProperties": false, - "properties": { - "args": { - "additionalProperties": { - "$ref": "#/$defs/__schema1" - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "operation": { - "minLength": 1, - "type": "string" - } - }, - "required": [ - "args", - "operation" - ], - "type": "object" - } - }, - "required": [ - "population", - "query" - ], - "type": "object" -}
- Changed
candor_get2 fields changed- removed
Output schema / $defs / __schema1Removed value: -{ - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - }, - { - "items": { - "$ref": "#/$defs/__schema1" - }, - "type": "array" - }, - { - "additionalProperties": { - "$ref": "#/$defs/__schema1" - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - } - ] -} - removed
Output schema / properties / query_scopeRemoved value: -{ - "additionalProperties": false, - "properties": { - "population": { - "additionalProperties": false, - "properties": { - "included_count": { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - }, - "total_available_count": { - "anyOf": [ - { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "included_count", - "total_available_count" - ], - "type": "object" - }, - "query": { - "additionalProperties": false, - "properties": { - "args": { - "additionalProperties": { - "$ref": "#/$defs/__schema1" - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "operation": { - "minLength": 1, - "type": "string" - } - }, - "required": [ - "args", - "operation" - ], - "type": "object" - } - }, - "required": [ - "population", - "query" - ], - "type": "object" -}
- Changed
candor_open2 fields changed- removed
Output schema / $defs / __schema1Removed value: -{ - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - }, - { - "items": { - "$ref": "#/$defs/__schema1" - }, - "type": "array" - }, - { - "additionalProperties": { - "$ref": "#/$defs/__schema1" - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - } - ] -} - removed
Output schema / properties / query_scopeRemoved value: -{ - "additionalProperties": false, - "properties": { - "population": { - "additionalProperties": false, - "properties": { - "included_count": { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - }, - "total_available_count": { - "anyOf": [ - { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "included_count", - "total_available_count" - ], - "type": "object" - }, - "query": { - "additionalProperties": false, - "properties": { - "args": { - "additionalProperties": { - "$ref": "#/$defs/__schema1" - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "operation": { - "minLength": 1, - "type": "string" - } - }, - "required": [ - "args", - "operation" - ], - "type": "object" - } - }, - "required": [ - "population", - "query" - ], - "type": "object" -}
- Changed
candor_query3 fields changed- changed
Input schema / properties / dataset / enumPrevious value: -[ - "accounts", - "balances", - "account_terms", - "transactions", - "coverage", - "spending_categories", - "merchants", - "recurring", - "holdings", - "investment_transactions", - "budgets", - "goals", - "rules", - "changes", - "actions" -]New value: +[ + "accounts", + "balances", + "account_terms", + "transactions", + "coverage", + "recurring", + "holdings", + "investment_transactions", + "budgets", + "goals", + "rules", + "changes", + "actions" +] - removed
Output schema / $defs / __schema1Removed value: -{ - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - }, - { - "items": { - "$ref": "#/$defs/__schema1" - }, - "type": "array" - }, - { - "additionalProperties": { - "$ref": "#/$defs/__schema1" - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - } - ] -} - removed
Output schema / properties / query_scopeRemoved value: -{ - "additionalProperties": false, - "properties": { - "population": { - "additionalProperties": false, - "properties": { - "included_count": { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - }, - "total_available_count": { - "anyOf": [ - { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "included_count", - "total_available_count" - ], - "type": "object" - }, - "query": { - "additionalProperties": false, - "properties": { - "args": { - "additionalProperties": { - "$ref": "#/$defs/__schema1" - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "operation": { - "minLength": 1, - "type": "string" - } - }, - "required": [ - "args", - "operation" - ], - "type": "object" - } - }, - "required": [ - "population", - "query" - ], - "type": "object" -}
- Changed
candor_schema3 fields changed- changed
Input schema / properties / dataset / enumPrevious value: -[ - "accounts", - "balances", - "account_terms", - "transactions", - "coverage", - "spending_categories", - "merchants", - "recurring", - "holdings", - "investment_transactions", - "budgets", - "goals", - "rules", - "changes", - "actions" -]New value: +[ + "accounts", + "balances", + "account_terms", + "transactions", + "coverage", + "recurring", + "holdings", + "investment_transactions", + "budgets", + "goals", + "rules", + "changes", + "actions" +] - removed
Output schema / $defs / __schema1Removed value: -{ - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - }, - { - "items": { - "$ref": "#/$defs/__schema1" - }, - "type": "array" - }, - { - "additionalProperties": { - "$ref": "#/$defs/__schema1" - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - } - ] -} - removed
Output schema / properties / query_scopeRemoved value: -{ - "additionalProperties": false, - "properties": { - "population": { - "additionalProperties": false, - "properties": { - "included_count": { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - }, - "total_available_count": { - "anyOf": [ - { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "included_count", - "total_available_count" - ], - "type": "object" - }, - "query": { - "additionalProperties": false, - "properties": { - "args": { - "additionalProperties": { - "$ref": "#/$defs/__schema1" - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "operation": { - "minLength": 1, - "type": "string" - } - }, - "required": [ - "args", - "operation" - ], - "type": "object" - } - }, - "required": [ - "population", - "query" - ], - "type": "object" -}
- Changed
candor_snapshot4 fields changed- changed
Input schema / properties / datasets / items / enumPrevious value: -[ - "accounts", - "balances", - "account_terms", - "transactions", - "coverage", - "spending_categories", - "merchants", - "recurring", - "holdings", - "investment_transactions", - "budgets", - "goals", - "rules", - "changes", - "actions" -]New value: +[ + "accounts", + "balances", + "account_terms", + "transactions", + "coverage", + "recurring", + "holdings", + "investment_transactions", + "budgets", + "goals", + "rules", + "changes", + "actions" +] - changed
Input schema / properties / datasets / maxItemsPrevious value: -15New value: +13 - removed
Output schema / $defs / __schema1Removed value: -{ - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - }, - { - "items": { - "$ref": "#/$defs/__schema1" - }, - "type": "array" - }, - { - "additionalProperties": { - "$ref": "#/$defs/__schema1" - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - } - ] -} - removed
Output schema / properties / query_scopeRemoved value: -{ - "additionalProperties": false, - "properties": { - "population": { - "additionalProperties": false, - "properties": { - "included_count": { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - }, - "total_available_count": { - "anyOf": [ - { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "included_count", - "total_available_count" - ], - "type": "object" - }, - "query": { - "additionalProperties": false, - "properties": { - "args": { - "additionalProperties": { - "$ref": "#/$defs/__schema1" - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "operation": { - "minLength": 1, - "type": "string" - } - }, - "required": [ - "args", - "operation" - ], - "type": "object" - } - }, - "required": [ - "population", - "query" - ], - "type": "object" -}
- Changed
candor_visualize2 fields changed- removed
Output schema / $defs / __schema1Removed value: -{ - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - }, - { - "items": { - "$ref": "#/$defs/__schema1" - }, - "type": "array" - }, - { - "additionalProperties": { - "$ref": "#/$defs/__schema1" - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - } - ] -} - removed
Output schema / properties / query_scopeRemoved value: -{ - "additionalProperties": false, - "properties": { - "population": { - "additionalProperties": false, - "properties": { - "included_count": { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - }, - "total_available_count": { - "anyOf": [ - { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "included_count", - "total_available_count" - ], - "type": "object" - }, - "query": { - "additionalProperties": false, - "properties": { - "args": { - "additionalProperties": { - "$ref": "#/$defs/__schema1" - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "operation": { - "minLength": 1, - "type": "string" - } - }, - "required": [ - "args", - "operation" - ], - "type": "object" - } - }, - "required": [ - "population", - "query" - ], - "type": "object" -}
- Changed
candor_write2 fields changed- removed
Output schema / $defs / __schema1Removed value: -{ - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - }, - { - "items": { - "$ref": "#/$defs/__schema1" - }, - "type": "array" - }, - { - "additionalProperties": { - "$ref": "#/$defs/__schema1" - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - } - ] -} - removed
Output schema / properties / query_scopeRemoved value: -{ - "additionalProperties": false, - "properties": { - "population": { - "additionalProperties": false, - "properties": { - "included_count": { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - }, - "total_available_count": { - "anyOf": [ - { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "included_count", - "total_available_count" - ], - "type": "object" - }, - "query": { - "additionalProperties": false, - "properties": { - "args": { - "additionalProperties": { - "$ref": "#/$defs/__schema1" - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "operation": { - "minLength": 1, - "type": "string" - } - }, - "required": [ - "args", - "operation" - ], - "type": "object" - } - }, - "required": [ - "population", - "query" - ], - "type": "object" -}
10 tool updates
- Changed
candor_account2 fields changed- added
Output schema / $defs / __schema1Added value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/$defs/__schema1" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/$defs/__schema1" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] +} - added
Output schema / properties / query_scopeAdded value: +{ + "additionalProperties": false, + "properties": { + "population": { + "additionalProperties": false, + "properties": { + "included_count": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "total_available_count": { + "anyOf": [ + { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "included_count", + "total_available_count" + ], + "type": "object" + }, + "query": { + "additionalProperties": false, + "properties": { + "args": { + "additionalProperties": { + "$ref": "#/$defs/__schema1" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "operation": { + "minLength": 1, + "type": "string" + } + }, + "required": [ + "args", + "operation" + ], + "type": "object" + } + }, + "required": [ + "population", + "query" + ], + "type": "object" +}
- Changed
candor_changes2 fields changed- added
Output schema / $defs / __schema1Added value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/$defs/__schema1" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/$defs/__schema1" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] +} - added
Output schema / properties / query_scopeAdded value: +{ + "additionalProperties": false, + "properties": { + "population": { + "additionalProperties": false, + "properties": { + "included_count": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "total_available_count": { + "anyOf": [ + { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "included_count", + "total_available_count" + ], + "type": "object" + }, + "query": { + "additionalProperties": false, + "properties": { + "args": { + "additionalProperties": { + "$ref": "#/$defs/__schema1" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "operation": { + "minLength": 1, + "type": "string" + } + }, + "required": [ + "args", + "operation" + ], + "type": "object" + } + }, + "required": [ + "population", + "query" + ], + "type": "object" +}
- Changed
candor_connections2 fields changed- added
Output schema / $defs / __schema1Added value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/$defs/__schema1" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/$defs/__schema1" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] +} - added
Output schema / properties / query_scopeAdded value: +{ + "additionalProperties": false, + "properties": { + "population": { + "additionalProperties": false, + "properties": { + "included_count": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "total_available_count": { + "anyOf": [ + { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "included_count", + "total_available_count" + ], + "type": "object" + }, + "query": { + "additionalProperties": false, + "properties": { + "args": { + "additionalProperties": { + "$ref": "#/$defs/__schema1" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "operation": { + "minLength": 1, + "type": "string" + } + }, + "required": [ + "args", + "operation" + ], + "type": "object" + } + }, + "required": [ + "population", + "query" + ], + "type": "object" +}
- Changed
candor_get2 fields changed- added
Output schema / $defs / __schema1Added value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/$defs/__schema1" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/$defs/__schema1" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] +} - added
Output schema / properties / query_scopeAdded value: +{ + "additionalProperties": false, + "properties": { + "population": { + "additionalProperties": false, + "properties": { + "included_count": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "total_available_count": { + "anyOf": [ + { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "included_count", + "total_available_count" + ], + "type": "object" + }, + "query": { + "additionalProperties": false, + "properties": { + "args": { + "additionalProperties": { + "$ref": "#/$defs/__schema1" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "operation": { + "minLength": 1, + "type": "string" + } + }, + "required": [ + "args", + "operation" + ], + "type": "object" + } + }, + "required": [ + "population", + "query" + ], + "type": "object" +}
- Changed
candor_open2 fields changed- added
Output schema / $defs / __schema1Added value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/$defs/__schema1" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/$defs/__schema1" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] +} - added
Output schema / properties / query_scopeAdded value: +{ + "additionalProperties": false, + "properties": { + "population": { + "additionalProperties": false, + "properties": { + "included_count": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "total_available_count": { + "anyOf": [ + { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "included_count", + "total_available_count" + ], + "type": "object" + }, + "query": { + "additionalProperties": false, + "properties": { + "args": { + "additionalProperties": { + "$ref": "#/$defs/__schema1" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "operation": { + "minLength": 1, + "type": "string" + } + }, + "required": [ + "args", + "operation" + ], + "type": "object" + } + }, + "required": [ + "population", + "query" + ], + "type": "object" +}
- Changed
candor_query2 fields changed- added
Output schema / $defs / __schema1Added value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/$defs/__schema1" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/$defs/__schema1" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] +} - added
Output schema / properties / query_scopeAdded value: +{ + "additionalProperties": false, + "properties": { + "population": { + "additionalProperties": false, + "properties": { + "included_count": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "total_available_count": { + "anyOf": [ + { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "included_count", + "total_available_count" + ], + "type": "object" + }, + "query": { + "additionalProperties": false, + "properties": { + "args": { + "additionalProperties": { + "$ref": "#/$defs/__schema1" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "operation": { + "minLength": 1, + "type": "string" + } + }, + "required": [ + "args", + "operation" + ], + "type": "object" + } + }, + "required": [ + "population", + "query" + ], + "type": "object" +}
- Changed
candor_schema3 fields changed- added
Input schema / properties / limitAdded value: +{ + "maximum": 10, + "minimum": 1, + "type": "integer" +} - added
Output schema / $defs / __schema1Added value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/$defs/__schema1" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/$defs/__schema1" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] +} - added
Output schema / properties / query_scopeAdded value: +{ + "additionalProperties": false, + "properties": { + "population": { + "additionalProperties": false, + "properties": { + "included_count": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "total_available_count": { + "anyOf": [ + { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "included_count", + "total_available_count" + ], + "type": "object" + }, + "query": { + "additionalProperties": false, + "properties": { + "args": { + "additionalProperties": { + "$ref": "#/$defs/__schema1" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "operation": { + "minLength": 1, + "type": "string" + } + }, + "required": [ + "args", + "operation" + ], + "type": "object" + } + }, + "required": [ + "population", + "query" + ], + "type": "object" +}
- Changed
candor_snapshot2 fields changed- added
Output schema / $defs / __schema1Added value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/$defs/__schema1" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/$defs/__schema1" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] +} - added
Output schema / properties / query_scopeAdded value: +{ + "additionalProperties": false, + "properties": { + "population": { + "additionalProperties": false, + "properties": { + "included_count": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "total_available_count": { + "anyOf": [ + { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "included_count", + "total_available_count" + ], + "type": "object" + }, + "query": { + "additionalProperties": false, + "properties": { + "args": { + "additionalProperties": { + "$ref": "#/$defs/__schema1" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "operation": { + "minLength": 1, + "type": "string" + } + }, + "required": [ + "args", + "operation" + ], + "type": "object" + } + }, + "required": [ + "population", + "query" + ], + "type": "object" +}
- Changed
candor_visualize2 fields changed- added
Output schema / $defs / __schema1Added value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/$defs/__schema1" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/$defs/__schema1" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] +} - added
Output schema / properties / query_scopeAdded value: +{ + "additionalProperties": false, + "properties": { + "population": { + "additionalProperties": false, + "properties": { + "included_count": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "total_available_count": { + "anyOf": [ + { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "included_count", + "total_available_count" + ], + "type": "object" + }, + "query": { + "additionalProperties": false, + "properties": { + "args": { + "additionalProperties": { + "$ref": "#/$defs/__schema1" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "operation": { + "minLength": 1, + "type": "string" + } + }, + "required": [ + "args", + "operation" + ], + "type": "object" + } + }, + "required": [ + "population", + "query" + ], + "type": "object" +}
- Changed
candor_write2 fields changed- added
Output schema / $defs / __schema1Added value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/$defs/__schema1" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/$defs/__schema1" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] +} - added
Output schema / properties / query_scopeAdded value: +{ + "additionalProperties": false, + "properties": { + "population": { + "additionalProperties": false, + "properties": { + "included_count": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "total_available_count": { + "anyOf": [ + { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "included_count", + "total_available_count" + ], + "type": "object" + }, + "query": { + "additionalProperties": false, + "properties": { + "args": { + "additionalProperties": { + "$ref": "#/$defs/__schema1" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "operation": { + "minLength": 1, + "type": "string" + } + }, + "required": [ + "args", + "operation" + ], + "type": "object" + } + }, + "required": [ + "population", + "query" + ], + "type": "object" +}
10 tool updates
- Changed
candor_account5 fields changed- added
Input schema / $defsAdded value: +{ + "__schema0": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/$defs/__schema0" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/$defs/__schema0" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] + }, + "__schema1": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/$defs/__schema1" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/$defs/__schema1" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] + } +} - added
Input schema / properties / args / additionalProperties / $refAdded value: +"#/$defs/__schema0" - added
Input schema / properties / input / additionalProperties / $refAdded value: +"#/$defs/__schema1" - added
Output schema / $defsAdded value: +{ + "__schema0": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/$defs/__schema0" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/$defs/__schema0" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] + } +} - added
Output schema / properties / next_actions / items / properties / args / additionalProperties / $refAdded value: +"#/$defs/__schema0"
- Changed
candor_changes2 fields changed- added
Output schema / $defsAdded value: +{ + "__schema0": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/$defs/__schema0" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/$defs/__schema0" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] + } +} - added
Output schema / properties / next_actions / items / properties / args / additionalProperties / $refAdded value: +"#/$defs/__schema0"
- Changed
candor_connections5 fields changed- added
Input schema / $defsAdded value: +{ + "__schema0": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/$defs/__schema0" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/$defs/__schema0" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] + }, + "__schema1": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/$defs/__schema1" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/$defs/__schema1" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] + } +} - added
Input schema / properties / args / additionalProperties / $refAdded value: +"#/$defs/__schema0" - added
Input schema / properties / input / additionalProperties / $refAdded value: +"#/$defs/__schema1" - added
Output schema / $defsAdded value: +{ + "__schema0": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/$defs/__schema0" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/$defs/__schema0" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] + } +} - added
Output schema / properties / next_actions / items / properties / args / additionalProperties / $refAdded value: +"#/$defs/__schema0"
- Changed
candor_get5 fields changed- added
Input schema / $defsAdded value: +{ + "__schema0": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/$defs/__schema0" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/$defs/__schema0" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] + }, + "__schema1": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/$defs/__schema1" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/$defs/__schema1" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] + } +} - added
Input schema / properties / args / additionalProperties / $refAdded value: +"#/$defs/__schema0" - added
Input schema / properties / input / additionalProperties / $refAdded value: +"#/$defs/__schema1" - added
Output schema / $defsAdded value: +{ + "__schema0": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/$defs/__schema0" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/$defs/__schema0" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] + } +} - added
Output schema / properties / next_actions / items / properties / args / additionalProperties / $refAdded value: +"#/$defs/__schema0"
- Changed
candor_open2 fields changed- added
Output schema / $defsAdded value: +{ + "__schema0": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/$defs/__schema0" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/$defs/__schema0" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] + } +} - added
Output schema / properties / next_actions / items / properties / args / additionalProperties / $refAdded value: +"#/$defs/__schema0"
- Changed
candor_query4 fields changed- added
Input schema / $defsAdded value: +{ + "__schema0": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/$defs/__schema0" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/$defs/__schema0" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] + } +} - added
Input schema / properties / filters / additionalProperties / $refAdded value: +"#/$defs/__schema0" - added
Output schema / $defsAdded value: +{ + "__schema0": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/$defs/__schema0" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/$defs/__schema0" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] + } +} - added
Output schema / properties / next_actions / items / properties / args / additionalProperties / $refAdded value: +"#/$defs/__schema0"
- Changed
candor_schema2 fields changed- added
Output schema / $defsAdded value: +{ + "__schema0": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/$defs/__schema0" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/$defs/__schema0" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] + } +} - added
Output schema / properties / next_actions / items / properties / args / additionalProperties / $refAdded value: +"#/$defs/__schema0"
- Changed
candor_snapshot4 fields changed- added
Input schema / $defsAdded value: +{ + "__schema0": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/$defs/__schema0" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/$defs/__schema0" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] + } +} - added
Input schema / properties / filters / additionalProperties / $refAdded value: +"#/$defs/__schema0" - added
Output schema / $defsAdded value: +{ + "__schema0": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/$defs/__schema0" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/$defs/__schema0" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] + } +} - added
Output schema / properties / next_actions / items / properties / args / additionalProperties / $refAdded value: +"#/$defs/__schema0"
- Changed
candor_visualize4 fields changed- added
Input schema / $defsAdded value: +{ + "__schema0": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/$defs/__schema0" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/$defs/__schema0" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] + } +} - added
Input schema / properties / args / additionalProperties / $refAdded value: +"#/$defs/__schema0" - added
Output schema / $defsAdded value: +{ + "__schema0": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/$defs/__schema0" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/$defs/__schema0" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] + } +} - added
Output schema / properties / next_actions / items / properties / args / additionalProperties / $refAdded value: +"#/$defs/__schema0"
- Changed
candor_write5 fields changed- added
Input schema / $defsAdded value: +{ + "__schema0": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/$defs/__schema0" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/$defs/__schema0" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] + }, + "__schema1": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/$defs/__schema1" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/$defs/__schema1" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] + } +} - added
Input schema / properties / args / additionalProperties / $refAdded value: +"#/$defs/__schema0" - added
Input schema / properties / input / additionalProperties / $refAdded value: +"#/$defs/__schema1" - added
Output schema / $defsAdded value: +{ + "__schema0": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/$defs/__schema0" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/$defs/__schema0" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] + } +} - added
Output schema / properties / next_actions / items / properties / args / additionalProperties / $refAdded value: +"#/$defs/__schema0"
10 tool updates
- First observed
candor_account - First observed
candor_changes - First observed
candor_connections - First observed
candor_get - First observed
candor_open - First observed
candor_query - First observed
candor_schema - First observed
candor_snapshot - First observed
candor_visualize - First observed
candor_write
Related MCP Connectors
Personal finance ledger for AI agents — query spending, track bills, forecast cash flow.
Personal finance for AI agents — onboard, import statements, categorize & budget over MCP.
- financeOAuthcom.zoninga
Personal finance for AI agents: accounts, budgets, goals, 9-strategy debt payoff, reports. OAuth 2.1
- BankSyncOAuthio.banksync
Connect AI agents to bank accounts, transactions, balances, and investments.
Related MCP Servers
- FlicenseBqualityBmaintenanceEnables AI agents to manage personal finances with deterministic, grounded tools for cash-flow projection, drift detection, reconciliation, and Todoist integration. All figures trace back to a local SQLite database.55-
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to access and manage personal financial data from US institutions and manual entries, including transactions, balances, liabilities, and investments.MIT
- AlicenseAqualityAmaintenanceEnables AI assistants to securely manage and analyze personal finances through natural language, with full control over data via a private PostgreSQL database.12MIT
- FlicenseNot gradedqualityBmaintenanceSelf-hosted household finance app for shared expenses, budgets, investments, loans, and zakat, exposing MCP tools for AI agents to manage finances via natural language.3-
Glama MCP Gateway
Add one secure layer between your agents and this server.