@firela/api-types 0.0.0-canary.efbd2b9a → 0.0.0-canary.f2efa2bf

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1855,8 +1855,7 @@ export const $ResolveResultDto = {
1855
1855
  },
1856
1856
  resolutionId: {
1857
1857
  type: 'string',
1858
- description:
1859
- 'Resolution ID for undo. Absent when the resolver rejected the decision (review stayed PENDING).'
1858
+ description: 'Resolution ID for undo'
1860
1859
  },
1861
1860
  canUndo: {
1862
1861
  type: 'boolean',
@@ -1874,7 +1873,7 @@ export const $ResolveResultDto = {
1874
1873
  example: 'rule_01HXK5V8N2M3P4Q5R6S7T8U9V0'
1875
1874
  }
1876
1875
  },
1877
- required: ['success']
1876
+ required: ['success', 'resolutionId', 'canUndo', 'undoDeadline']
1878
1877
  } as const;
1879
1878
 
1880
1879
  export const $UndoResultDto = {
@@ -4912,49 +4911,6 @@ export const $ProviderSyncDto = {
4912
4911
  required: ['config', 'transactions']
4913
4912
  } as const;
4914
4913
 
4915
- export const $ProviderSyncResponseDto = {
4916
- type: 'object',
4917
- properties: {
4918
- imported: {
4919
- type: 'number',
4920
- description: 'Number of transactions successfully imported',
4921
- example: 10
4922
- },
4923
- skipped: {
4924
- type: 'number',
4925
- description: 'Number of transactions skipped (duplicates)',
4926
- example: 2
4927
- },
4928
- pendingReview: {
4929
- type: 'number',
4930
- description: 'Number of transactions pending review',
4931
- example: 3
4932
- },
4933
- failed: {
4934
- type: 'number',
4935
- description: 'Number of transactions that failed to import',
4936
- example: 0
4937
- },
4938
- importedTransactionIds: {
4939
- description: 'IDs of successfully imported transactions',
4940
- example: ['txn-001', 'txn-002'],
4941
- type: 'array',
4942
- items: {
4943
- type: 'string'
4944
- }
4945
- },
4946
- reviewItemIds: {
4947
- description: 'IDs of review items created for branched transactions',
4948
- example: ['review-001', 'review-002'],
4949
- type: 'array',
4950
- items: {
4951
- type: 'string'
4952
- }
4953
- }
4954
- },
4955
- required: ['imported', 'skipped', 'pendingReview', 'failed']
4956
- } as const;
4957
-
4958
4914
  export const $SupportedProvidersResponseDto = {
4959
4915
  type: 'object',
4960
4916
  properties: {
@@ -5018,779 +4974,6 @@ export const $ProcessNlpDto = {
5018
4974
  required: ['message']
5019
4975
  } as const;
5020
4976
 
5021
- export const $NlpTransactionInfoDto = {
5022
- type: 'object',
5023
- properties: {
5024
- id: {
5025
- type: 'string',
5026
- description: 'Transaction ID'
5027
- },
5028
- date: {
5029
- type: 'string',
5030
- description: 'Transaction date (ISO format)'
5031
- },
5032
- amount: {
5033
- type: 'number',
5034
- description: 'Transaction amount'
5035
- },
5036
- currency: {
5037
- type: 'string',
5038
- description: 'Currency code'
5039
- },
5040
- payee: {
5041
- type: 'string',
5042
- description: 'Payee name'
5043
- },
5044
- narration: {
5045
- type: 'string',
5046
- description: 'Transaction narration'
5047
- },
5048
- warning: {
5049
- type: 'string',
5050
- description:
5051
- 'Warning message for special transaction scenarios (e.g., cross-currency settlement)',
5052
- example: '此交易使用USD账户结算。如需记录CNY支出,请创建货币转换交易。'
5053
- }
5054
- },
5055
- required: ['id', 'date', 'amount', 'currency']
5056
- } as const;
5057
-
5058
- export const $NlpParsedDataDto = {
5059
- type: 'object',
5060
- properties: {
5061
- amount: {
5062
- type: 'number',
5063
- description: 'Extracted amount'
5064
- },
5065
- currency: {
5066
- type: 'string',
5067
- description: 'Currency code',
5068
- default: 'CNY'
5069
- },
5070
- date: {
5071
- type: 'string',
5072
- description: 'Transaction date (ISO format)'
5073
- },
5074
- payee: {
5075
- type: 'string',
5076
- description: 'Payee name'
5077
- },
5078
- narration: {
5079
- type: 'string',
5080
- description: 'Transaction narration'
5081
- },
5082
- category: {
5083
- type: 'string',
5084
- description: 'Category'
5085
- },
5086
- incomeType: {
5087
- type: 'string',
5088
- description: 'Income type (e.g., Salary, Bonus, Dividend, Interest)',
5089
- example: 'Salary'
5090
- },
5091
- incomeSource: {
5092
- type: 'string',
5093
- description: 'Income source (e.g., company name)',
5094
- example: 'Anthropic Inc.'
5095
- },
5096
- symbol: {
5097
- type: 'string',
5098
- description: 'Security symbol code (e.g., 600519, AAPL)',
5099
- example: '600519'
5100
- },
5101
- quantity: {
5102
- type: 'number',
5103
- description: 'Quantity of shares/units',
5104
- example: 100
5105
- },
5106
- price: {
5107
- type: 'number',
5108
- description: 'Unit price per share/unit',
5109
- example: 1900
5110
- },
5111
- investmentAction: {
5112
- type: 'string',
5113
- description: 'Investment action',
5114
- enum: ['buy', 'sell'],
5115
- example: 'buy'
5116
- },
5117
- paymentSource: {
5118
- type: 'string',
5119
- description: 'Payment source: asset (default) or liability (credit card)',
5120
- enum: ['asset', 'liability'],
5121
- example: 'asset'
5122
- },
5123
- liabilityHint: {
5124
- type: 'string',
5125
- description: 'Liability account hint (CreditCard/Huabei/Baitiao)',
5126
- example: 'CreditCard'
5127
- },
5128
- warning: {
5129
- type: 'string',
5130
- description:
5131
- 'Warning message for special scenarios (e.g., cross-currency settlement)',
5132
- example: '此交易使用USD账户结算。如需记录CNY支出,请创建货币转换交易。'
5133
- }
5134
- }
5135
- } as const;
5136
-
5137
- export const $NlpSourceTransactionDto = {
5138
- type: 'object',
5139
- properties: {
5140
- date: {
5141
- type: 'string',
5142
- description: 'Transaction date (ISO format)'
5143
- },
5144
- amount: {
5145
- type: 'string',
5146
- description: 'Amount as string'
5147
- },
5148
- currency: {
5149
- type: 'string',
5150
- description: 'Currency code'
5151
- },
5152
- payee: {
5153
- type: 'string',
5154
- description: 'Payee name'
5155
- },
5156
- narration: {
5157
- type: 'string',
5158
- description: 'Transaction narration'
5159
- }
5160
- },
5161
- required: ['date', 'amount', 'currency', 'narration']
5162
- } as const;
5163
-
5164
- export const $NlpTargetTransactionDto = {
5165
- type: 'object',
5166
- properties: {
5167
- id: {
5168
- type: 'string',
5169
- description: 'Existing transaction ID'
5170
- },
5171
- date: {
5172
- type: 'string',
5173
- description: 'Transaction date (ISO format)'
5174
- },
5175
- amount: {
5176
- type: 'string',
5177
- description: 'Amount as string'
5178
- },
5179
- currency: {
5180
- type: 'string',
5181
- description: 'Currency code'
5182
- },
5183
- payee: {
5184
- type: 'string',
5185
- description: 'Payee name'
5186
- },
5187
- narration: {
5188
- type: 'string',
5189
- description: 'Transaction narration'
5190
- }
5191
- },
5192
- required: ['id', 'date', 'amount', 'currency', 'narration']
5193
- } as const;
5194
-
5195
- export const $NlpSimilarityDto = {
5196
- type: 'object',
5197
- properties: {
5198
- dateMatch: {
5199
- type: 'boolean',
5200
- description: 'Whether dates match'
5201
- },
5202
- dateDiff: {
5203
- type: 'number',
5204
- description: 'Date difference in days'
5205
- },
5206
- amountMatch: {
5207
- type: 'boolean',
5208
- description: 'Whether amounts match'
5209
- },
5210
- amountDiff: {
5211
- type: 'string',
5212
- description: 'Amount difference as decimal string'
5213
- },
5214
- payeeMatch: {
5215
- type: 'boolean',
5216
- description: 'Whether payees match'
5217
- },
5218
- payeeSimilarity: {
5219
- type: 'number',
5220
- description: 'Payee similarity score (0-1)'
5221
- },
5222
- accountOverlap: {
5223
- type: 'number',
5224
- description: 'Account overlap score (0-1)'
5225
- }
5226
- },
5227
- required: [
5228
- 'dateMatch',
5229
- 'dateDiff',
5230
- 'amountMatch',
5231
- 'amountDiff',
5232
- 'payeeMatch',
5233
- 'payeeSimilarity',
5234
- 'accountOverlap'
5235
- ]
5236
- } as const;
5237
-
5238
- export const $NlpDuplicateConfirmationDataDto = {
5239
- type: 'object',
5240
- properties: {
5241
- confidence: {
5242
- type: 'number',
5243
- description: 'Duplicate detection confidence score (0.5-0.89)',
5244
- example: 0.85
5245
- },
5246
- sourceTransaction: {
5247
- description:
5248
- 'Source transaction summary (the new transaction being entered)',
5249
- allOf: [
5250
- {
5251
- $ref: '#/components/schemas/NlpSourceTransactionDto'
5252
- }
5253
- ]
5254
- },
5255
- targetTransaction: {
5256
- description: 'Target transaction summary (existing potential duplicate)',
5257
- allOf: [
5258
- {
5259
- $ref: '#/components/schemas/NlpTargetTransactionDto'
5260
- }
5261
- ]
5262
- },
5263
- similarity: {
5264
- description: 'Detailed similarity information',
5265
- allOf: [
5266
- {
5267
- $ref: '#/components/schemas/NlpSimilarityDto'
5268
- }
5269
- ]
5270
- },
5271
- reasons: {
5272
- description: 'Human-readable reasons for duplicate detection',
5273
- example: ['日期匹配', '金额匹配', '商户相似'],
5274
- type: 'array',
5275
- items: {
5276
- type: 'string'
5277
- }
5278
- }
5279
- },
5280
- required: [
5281
- 'confidence',
5282
- 'sourceTransaction',
5283
- 'targetTransaction',
5284
- 'similarity',
5285
- 'reasons'
5286
- ]
5287
- } as const;
5288
-
5289
- export const $NlpRuleConfirmationDataDto = {
5290
- type: 'object',
5291
- properties: {
5292
- confidence: {
5293
- type: 'number',
5294
- description: 'Rule match confidence score (0.5-0.74)',
5295
- example: 0.65
5296
- },
5297
- matchedRule: {
5298
- type: 'object',
5299
- description: 'Matched rule information'
5300
- },
5301
- suggestedAccounts: {
5302
- type: 'object',
5303
- description: 'Suggested accounts from the rule'
5304
- },
5305
- alternatives: {
5306
- type: 'array',
5307
- description: 'Alternative rules that also match'
5308
- },
5309
- reasons: {
5310
- description: 'Human-readable reasons for the match',
5311
- example: [
5312
- 'Moderate confidence (65%)',
5313
- 'Some keywords matched (OR logic)'
5314
- ],
5315
- type: 'array',
5316
- items: {
5317
- type: 'string'
5318
- }
5319
- }
5320
- },
5321
- required: [
5322
- 'confidence',
5323
- 'matchedRule',
5324
- 'suggestedAccounts',
5325
- 'alternatives',
5326
- 'reasons'
5327
- ]
5328
- } as const;
5329
-
5330
- export const $NlpAccountConfirmationDataDto = {
5331
- type: 'object',
5332
- properties: {
5333
- invalidAccount: {
5334
- type: 'string',
5335
- description: 'The invalid account name',
5336
- example: 'Expenses:Food:Coffee'
5337
- },
5338
- suggestedAccount: {
5339
- type: 'string',
5340
- description: 'Suggested replacement account',
5341
- example: 'Expenses:Food:Drinks'
5342
- },
5343
- similarAccounts: {
5344
- description: 'Similar accounts for user selection',
5345
- type: 'array',
5346
- items: {
5347
- type: 'string'
5348
- }
5349
- },
5350
- errorMessage: {
5351
- type: 'string',
5352
- description: 'Error message explaining the issue',
5353
- example: 'No similar account found'
5354
- },
5355
- transactionContext: {
5356
- type: 'object',
5357
- description: 'Transaction context for reference'
5358
- }
5359
- },
5360
- required: [
5361
- 'invalidAccount',
5362
- 'suggestedAccount',
5363
- 'similarAccounts',
5364
- 'errorMessage',
5365
- 'transactionContext'
5366
- ]
5367
- } as const;
5368
-
5369
- export const $NlpSuggestedPayeeDto = {
5370
- type: 'object',
5371
- properties: {
5372
- id: {
5373
- type: 'string',
5374
- description: 'Payee ID',
5375
- example: 'payee-123'
5376
- },
5377
- name: {
5378
- type: 'string',
5379
- description: 'Payee name',
5380
- example: 'Starbucks'
5381
- },
5382
- category: {
5383
- type: 'string',
5384
- description: 'Payee category',
5385
- example: 'food'
5386
- },
5387
- source: {
5388
- type: 'string',
5389
- description: 'Source of the payee',
5390
- enum: ['user', 'global']
5391
- },
5392
- payeeProfileId: {
5393
- type: 'string',
5394
- description: 'PayeeProfile ID (if matched from global)',
5395
- example: 'profile-456'
5396
- }
5397
- },
5398
- required: ['id', 'name']
5399
- } as const;
5400
-
5401
- export const $NlpAlternativePayeeDto = {
5402
- type: 'object',
5403
- properties: {
5404
- id: {
5405
- type: 'string',
5406
- description: 'Payee ID',
5407
- example: 'payee-alt-1'
5408
- },
5409
- name: {
5410
- type: 'string',
5411
- description: 'Payee name',
5412
- example: 'Starbucks Coffee'
5413
- },
5414
- similarity: {
5415
- type: 'number',
5416
- description: 'Similarity score (0-1)',
5417
- example: 0.75
5418
- }
5419
- },
5420
- required: ['id', 'name', 'similarity']
5421
- } as const;
5422
-
5423
- export const $NlpPayeeConfirmationDataDto = {
5424
- type: 'object',
5425
- properties: {
5426
- confidence: {
5427
- type: 'number',
5428
- description: 'Confidence score for the payee match (0-1)',
5429
- example: 0.65
5430
- },
5431
- originalPayee: {
5432
- type: 'string',
5433
- description: 'Original payee string from user input',
5434
- example: '星巴'
5435
- },
5436
- suggestedPayee: {
5437
- description: 'Suggested payee to use (null when no similar payees found)',
5438
- nullable: true,
5439
- allOf: [
5440
- {
5441
- $ref: '#/components/schemas/NlpSuggestedPayeeDto'
5442
- }
5443
- ]
5444
- },
5445
- similarity: {
5446
- type: 'number',
5447
- description: 'Similarity score between original and suggested (0-1)',
5448
- example: 0.85
5449
- },
5450
- alternatives: {
5451
- description: 'Alternative payee options',
5452
- type: 'array',
5453
- items: {
5454
- $ref: '#/components/schemas/NlpAlternativePayeeDto'
5455
- }
5456
- },
5457
- reasons: {
5458
- description: 'Human-readable reasons for the match',
5459
- example: ['Moderate similarity (65%)', 'Fuzzy match on name'],
5460
- type: 'array',
5461
- items: {
5462
- type: 'string'
5463
- }
5464
- }
5465
- },
5466
- required: [
5467
- 'confidence',
5468
- 'originalPayee',
5469
- 'similarity',
5470
- 'alternatives',
5471
- 'reasons'
5472
- ]
5473
- } as const;
5474
-
5475
- export const $RecurringMatchInfoDto = {
5476
- type: 'object',
5477
- properties: {
5478
- expectedId: {
5479
- type: 'string',
5480
- description: 'Expected transaction ID'
5481
- },
5482
- ruleId: {
5483
- type: 'string',
5484
- description: 'Recurring rule ID'
5485
- },
5486
- ruleName: {
5487
- type: 'string',
5488
- description: 'Rule name for display'
5489
- },
5490
- ruleIcon: {
5491
- type: 'string',
5492
- description: 'Rule icon'
5493
- },
5494
- expectedDate: {
5495
- type: 'string',
5496
- description: 'Expected date (YYYY-MM-DD)',
5497
- example: '2026-01-05'
5498
- },
5499
- expectedAmount: {
5500
- type: 'number',
5501
- description: 'Expected amount',
5502
- example: 3000
5503
- },
5504
- confidence: {
5505
- type: 'number',
5506
- description: 'Match confidence score (0-1)',
5507
- example: 0.88
5508
- },
5509
- isAutoMatched: {
5510
- type: 'boolean',
5511
- description: 'Whether auto-matched (confidence >= 0.82)'
5512
- }
5513
- },
5514
- required: [
5515
- 'expectedId',
5516
- 'ruleId',
5517
- 'ruleName',
5518
- 'expectedDate',
5519
- 'expectedAmount',
5520
- 'confidence',
5521
- 'isAutoMatched'
5522
- ]
5523
- } as const;
5524
-
5525
- export const $NlpSuggestedAccountDto = {
5526
- type: 'object',
5527
- properties: {
5528
- account: {
5529
- type: 'string',
5530
- description: 'Suggested account path',
5531
- example: 'Assets:Bank:Checking'
5532
- },
5533
- confidence: {
5534
- type: 'number',
5535
- description: 'Confidence score for this suggestion (0-1)',
5536
- example: 0.9
5537
- }
5538
- },
5539
- required: ['account']
5540
- } as const;
5541
-
5542
- export const $NlpSuggestedAccountsDto = {
5543
- type: 'object',
5544
- properties: {
5545
- source: {
5546
- description:
5547
- 'Source account suggestion (where money comes from). For expense: asset/liability account. For income: income account.',
5548
- allOf: [
5549
- {
5550
- $ref: '#/components/schemas/NlpSuggestedAccountDto'
5551
- }
5552
- ]
5553
- },
5554
- destination: {
5555
- description:
5556
- 'Destination account suggestion (where money goes to). For expense: expense account. For income: asset/liability account.',
5557
- allOf: [
5558
- {
5559
- $ref: '#/components/schemas/NlpSuggestedAccountDto'
5560
- }
5561
- ]
5562
- }
5563
- }
5564
- } as const;
5565
-
5566
- export const $NlpDefaultAccountsDto = {
5567
- type: 'object',
5568
- properties: {
5569
- asset: {
5570
- type: 'string',
5571
- description: 'Default asset account',
5572
- example: 'Assets:Bank:Checking'
5573
- },
5574
- expense: {
5575
- type: 'string',
5576
- description: 'Default expense account',
5577
- example: 'Expenses:Uncategorized'
5578
- },
5579
- income: {
5580
- type: 'string',
5581
- description: 'Default income account',
5582
- example: 'Income:Uncategorized'
5583
- },
5584
- liability: {
5585
- type: 'string',
5586
- description: 'Default liability account',
5587
- example: 'Liabilities:CreditCard'
5588
- }
5589
- },
5590
- required: ['asset', 'expense', 'income', 'liability']
5591
- } as const;
5592
-
5593
- export const $NlpResponseDto = {
5594
- type: 'object',
5595
- properties: {
5596
- status: {
5597
- type: 'string',
5598
- description: 'Response status',
5599
- enum: ['success', 'pending', 'error']
5600
- },
5601
- action: {
5602
- type: 'string',
5603
- description: 'Action taken or requested',
5604
- enum: [
5605
- 'created',
5606
- 'ask',
5607
- 'confirm',
5608
- 'confirm_duplicate',
5609
- 'confirm_rule',
5610
- 'confirm_account',
5611
- 'confirm_payee',
5612
- 'cancel'
5613
- ]
5614
- },
5615
- intent: {
5616
- type: 'string',
5617
- description:
5618
- 'Transaction intent detected by EntityRouter (v6.0: 5 core intents). Frontend uses this to render scenario-specific form fields.',
5619
- enum: ['expense', 'asset', 'income', 'liability', 'equity'],
5620
- example: 'expense'
5621
- },
5622
- assetSubType: {
5623
- type: 'string',
5624
- description:
5625
- 'Asset sub-type (only present when intent is "asset"). Determines which asset-related form to render.',
5626
- enum: ['transfer', 'banking', 'investment'],
5627
- example: 'investment'
5628
- },
5629
- liabilitySubType: {
5630
- type: 'string',
5631
- description:
5632
- 'Liability sub-type (only present when intent is "liability"). borrow: borrowing money (Liabilities → Assets), repay: repaying debt (Assets → Liabilities).',
5633
- enum: ['borrow', 'repay'],
5634
- example: 'borrow'
5635
- },
5636
- equitySubType: {
5637
- type: 'string',
5638
- description:
5639
- 'Equity sub-type (only present when intent is "equity"). opening: account opening balance (Equity → Assets), adjustment: balance correction.',
5640
- enum: ['opening', 'adjustment'],
5641
- example: 'opening'
5642
- },
5643
- paymentSource: {
5644
- type: 'string',
5645
- description:
5646
- 'Payment source for expense transactions (v6.1). Indicates whether payment comes from asset or liability account. Only present when intent is "expense".',
5647
- enum: ['asset', 'liability'],
5648
- example: 'liability'
5649
- },
5650
- liabilityHint: {
5651
- type: 'string',
5652
- description:
5653
- 'Liability account type hint for credit card/BNPL spending (v6.1). Only present when paymentSource is "liability". Values: CreditCard, Huabei, Baitiao',
5654
- example: 'CreditCard'
5655
- },
5656
- message: {
5657
- type: 'string',
5658
- description:
5659
- 'Human-readable message (for ask or error actions). Deprecated: Use messageKey for i18n support.',
5660
- example: 'How much did you spend?',
5661
- deprecated: true
5662
- },
5663
- messageKey: {
5664
- type: 'string',
5665
- description:
5666
- 'i18n message key for frontend translation. Use this instead of message for internationalization support.',
5667
- example: 'nlp.slot.prompt'
5668
- },
5669
- messageParams: {
5670
- type: 'object',
5671
- description:
5672
- 'Parameters for message interpolation. Used with messageKey for dynamic values in translated messages.',
5673
- example: {
5674
- slot: 'amount',
5675
- name: 'Starbucks',
5676
- similarity: 85
5677
- }
5678
- },
5679
- sessionId: {
5680
- type: 'string',
5681
- description:
5682
- 'Session ID for multi-turn dialogue. Must be included in subsequent requests to continue the conversation.',
5683
- example: 'session_abc123'
5684
- },
5685
- waitingFor: {
5686
- type: 'string',
5687
- description: 'Which slot is waiting for user input',
5688
- example: 'amount'
5689
- },
5690
- transaction: {
5691
- description: 'Created transaction info (for created action)',
5692
- allOf: [
5693
- {
5694
- $ref: '#/components/schemas/NlpTransactionInfoDto'
5695
- }
5696
- ]
5697
- },
5698
- parsedData: {
5699
- description:
5700
- 'Parsed data for confirmation (when action is "confirm"). Contains extracted fields that user should verify before transaction creation.',
5701
- allOf: [
5702
- {
5703
- $ref: '#/components/schemas/NlpParsedDataDto'
5704
- }
5705
- ]
5706
- },
5707
- duplicateData: {
5708
- description:
5709
- 'Duplicate detection data (when action is "confirm_duplicate"). Contains information about potential duplicate transaction for user confirmation.',
5710
- allOf: [
5711
- {
5712
- $ref: '#/components/schemas/NlpDuplicateConfirmationDataDto'
5713
- }
5714
- ]
5715
- },
5716
- ruleData: {
5717
- description:
5718
- 'Rule match data (when action is "confirm_rule"). Contains information about medium-confidence rule match for user confirmation.',
5719
- allOf: [
5720
- {
5721
- $ref: '#/components/schemas/NlpRuleConfirmationDataDto'
5722
- }
5723
- ]
5724
- },
5725
- accountData: {
5726
- description:
5727
- 'Account validation data (when action is "confirm_account"). Contains information about invalid account for user correction.',
5728
- allOf: [
5729
- {
5730
- $ref: '#/components/schemas/NlpAccountConfirmationDataDto'
5731
- }
5732
- ]
5733
- },
5734
- payeeData: {
5735
- description:
5736
- 'Payee confirmation data (when action is "confirm_payee"). Contains information about medium/low confidence payee match for user confirmation.',
5737
- allOf: [
5738
- {
5739
- $ref: '#/components/schemas/NlpPayeeConfirmationDataDto'
5740
- }
5741
- ]
5742
- },
5743
- confidence: {
5744
- type: 'number',
5745
- description: 'Overall confidence score (0-1)',
5746
- example: 0.85
5747
- },
5748
- confidenceThreshold: {
5749
- type: 'number',
5750
- description:
5751
- 'Confidence threshold for automatic creation (default: 0.75). When confidence < threshold, action will be "confirm" requiring user verification.',
5752
- example: 0.75
5753
- },
5754
- recurringMatch: {
5755
- description:
5756
- 'Recurring transaction match info (when action is "created"). Contains match details when transaction matches a pending expected transaction.',
5757
- allOf: [
5758
- {
5759
- $ref: '#/components/schemas/RecurringMatchInfoDto'
5760
- }
5761
- ]
5762
- },
5763
- recurringSuggestion: {
5764
- description:
5765
- 'Recurring rule creation suggestion (when action is "created"). Contains suggestion to create a recurring rule based on detected patterns. Only present when no existing rule matched and similar historical transactions were found.',
5766
- allOf: [
5767
- {
5768
- $ref: '#/components/schemas/RecurringSuggestionDto'
5769
- }
5770
- ]
5771
- },
5772
- suggestedAccounts: {
5773
- description:
5774
- 'Suggested accounts for this transaction. Contains recommended source and destination accounts based on the detected intent and rules.',
5775
- allOf: [
5776
- {
5777
- $ref: '#/components/schemas/NlpSuggestedAccountsDto'
5778
- }
5779
- ]
5780
- },
5781
- defaultAccounts: {
5782
- description:
5783
- 'Default accounts for the user/region. These are fallback accounts used when no specific suggestion is available.',
5784
- allOf: [
5785
- {
5786
- $ref: '#/components/schemas/NlpDefaultAccountsDto'
5787
- }
5788
- ]
5789
- }
5790
- },
5791
- required: ['status', 'action']
5792
- } as const;
5793
-
5794
4977
  export const $BalanceByCurrencyDto = {
5795
4978
  type: 'object',
5796
4979
  properties: {