@stable_sea/sdk 0.2.18 → 0.2.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -388,3 +388,23 @@ Bank registration and reads support US accounts only. Non-US banks and
388
388
  cross-border Payments/Treasury operations are intentionally excluded. Update to
389
389
  the latest SDK for the current HTTP contract; credential and webhook record
390
390
  versions are unchanged.
391
+
392
+ ### Member fund controls
393
+
394
+ Use the member session client with the signed-in business session for
395
+ `GET /identity/members/{id}/action_settings`, `POST` on the same path, and
396
+ `GET /identity/members/{id}/action_settings/preview`. Saves require Manage
397
+ Permissions; send the returned `revision` as `expected_revision`. Send `policy_schema_version: 2`
398
+ for extended fund controls or when replacing/clearing an extended override.
399
+
400
+ Each buy/sell `fund_controls` has `allowed_categories`, `conditions` and
401
+ `catalog_revision`. Supported categories are returned in `fund_categories`; `/v1/securities` also
402
+ publishes each fund's canonical `approval_category`.
403
+ A condition selects a teammate for every amount (`min_usd: null`) or at/above an
404
+ exact USD string. All-assets amount conditions cannot overlap type conditions.
405
+ Use the saved control's catalog revision to preserve its membership. To explicitly
406
+ adopt new/reclassified assets, review `fund_catalog_changes`, then use the current
407
+ `fund_catalog_revision`. The server supplies the actual catalog and valuation.
408
+ Preview checks saved settings and does not authorize execution. API keys do not
409
+ act as the key owner's member; machine `/v1/policies` remains business controls
410
+ and tiers, without member-policy administration.
@@ -2029,6 +2029,11 @@ export interface components {
2029
2029
  object: string;
2030
2030
  };
2031
2031
  Security: {
2032
+ /**
2033
+ * @description Stable server fund category for member controls; independent of asset_class and is_money_market.
2034
+ * @enum {string}
2035
+ */
2036
+ approval_category: "treasury_money_market" | "floating_rate_treasury" | "short_duration_income";
2032
2037
  asset_class: string;
2033
2038
  details: components["schemas"]["SecurityDetails"];
2034
2039
  /**
@@ -55,7 +55,7 @@ export interface paths {
55
55
  };
56
56
  /**
57
57
  * Read the business's e-signature enrollment (business)
58
- * @description Reports whether the caller accepts their business's MSA by e-signature — the business is enrolled and its allow-list, when it has one, names the caller — the provider this deployment uses, and how the embedded signing page reports progress (protocol and the only allowed message origin). A caller who is not enrolled reads enrolled:false and accepts by click-through. An enrolled caller while e-signature is unavailable on this deployment gets 503 — never enrolled:false, because click-through acceptance is refused for them.
58
+ * @description Reports whether the caller accepts their business's MSA by e-signature — the business is enrolled and its allow-list, when it has one, names the caller — the provider this deployment uses, and how the embedded signing page reports progress (protocol and the only allowed message origin). A caller who is not enrolled reads enrolled:false and accepts by click-through. While e-signature is paused on this deployment, an enrolled caller also reads enrolled:false and accepts by click-through, unless a signature request holds their business's current MSA: that business keeps signing by e-signature until the request ends. A caller who signs by e-signature while it is not running on this deployment gets 503 — never enrolled:false, because click-through acceptance is refused for them.
59
59
  */
60
60
  get: operations["compliance.esign.enrollment.get"];
61
61
  put?: never;
@@ -1063,6 +1063,50 @@ export interface paths {
1063
1063
  patch?: never;
1064
1064
  trace?: never;
1065
1065
  };
1066
+ "/identity/members/{id}/action_settings": {
1067
+ parameters: {
1068
+ query?: never;
1069
+ header?: never;
1070
+ path?: never;
1071
+ cookie?: never;
1072
+ };
1073
+ /**
1074
+ * Get a member's permissions and action settings
1075
+ * @description One current member configuration. Each fund action has at most three category conditions. Catalog changes contain only the union of its saved and current finite server reference catalogs, never tenant activity or history.
1076
+ */
1077
+ get: operations["identity.members.action_settings.get"];
1078
+ put?: never;
1079
+ /**
1080
+ * Save member permissions and action settings atomically
1081
+ * @description Returns one current member configuration. Each fund action has at most three category conditions. Catalog changes contain only the union of its saved and current finite server reference catalogs, never tenant activity or history.
1082
+ */
1083
+ post: operations["identity.members.action_settings.save"];
1084
+ delete?: never;
1085
+ options?: never;
1086
+ head?: never;
1087
+ patch?: never;
1088
+ trace?: never;
1089
+ };
1090
+ "/identity/members/{id}/action_settings/preview": {
1091
+ parameters: {
1092
+ query?: never;
1093
+ header?: never;
1094
+ path?: never;
1095
+ cookie?: never;
1096
+ };
1097
+ /**
1098
+ * Preview current approval requirements for a member action
1099
+ * @description Read-only configuration and server valuation evidence. This preview does not authorize execution; submission rechecks current permissions, policies and financial controls.
1100
+ */
1101
+ get: operations["identity.members.action_settings.preview"];
1102
+ put?: never;
1103
+ post?: never;
1104
+ delete?: never;
1105
+ options?: never;
1106
+ head?: never;
1107
+ patch?: never;
1108
+ trace?: never;
1109
+ };
1066
1110
  "/identity/members/{id}/deactivate": {
1067
1111
  parameters: {
1068
1112
  query?: never;
@@ -1247,26 +1291,6 @@ export interface paths {
1247
1291
  patch?: never;
1248
1292
  trace?: never;
1249
1293
  };
1250
- "/identity/step_ups": {
1251
- parameters: {
1252
- query?: never;
1253
- header?: never;
1254
- path?: never;
1255
- cookie?: never;
1256
- };
1257
- get?: never;
1258
- put?: never;
1259
- /**
1260
- * Verify a fresh second factor
1261
- * @description Record a fresh second-factor proof for your current business session where an existing action requires it.
1262
- */
1263
- post: operations["identity.step_ups.create"];
1264
- delete?: never;
1265
- options?: never;
1266
- head?: never;
1267
- patch?: never;
1268
- trace?: never;
1269
- };
1270
1294
  "/identity/two_factor_settings": {
1271
1295
  parameters: {
1272
1296
  query?: never;
@@ -2564,8 +2588,48 @@ export interface components {
2564
2588
  deleted?: boolean;
2565
2589
  id?: string;
2566
2590
  };
2567
- MembersMemberAccessInput: {
2568
- reason?: string;
2591
+ MembersMemberActionSettingsSummary: {
2592
+ actions?: components["schemas"]["MembersMemberActionSettings"];
2593
+ fund_catalog_changes?: {
2594
+ [key: string]: components["schemas"]["MembersMemberFundCatalogChange"][];
2595
+ } | null;
2596
+ fund_catalog_revision?: string;
2597
+ fund_categories?: components["schemas"]["MembersMemberFundCategory"][] | null;
2598
+ individual_id?: string;
2599
+ permissions?: components["schemas"]["MembersGetMemberRBACPoliciesOutput"];
2600
+ /** Format: int32 */
2601
+ policy_schema_version?: number;
2602
+ revision?: string;
2603
+ };
2604
+ MembersMemberActionSettings: {
2605
+ ach_withdrawal?: components["schemas"]["MembersMemberActionOverride"];
2606
+ fund_buy?: components["schemas"]["MembersMemberActionOverride"];
2607
+ fund_sell?: components["schemas"]["MembersMemberActionOverride"];
2608
+ onchain_withdrawal?: components["schemas"]["MembersMemberActionOverride"];
2609
+ wire_withdrawal?: components["schemas"]["MembersMemberActionOverride"];
2610
+ };
2611
+ MembersMemberActionOverride: {
2612
+ allowed: boolean;
2613
+ fund_controls?: components["schemas"]["MembersMemberFundControls"];
2614
+ min_usd: string | null;
2615
+ selected_approver_id: string | null;
2616
+ } | null;
2617
+ MembersMemberFundControls: {
2618
+ allowed_categories: components["schemas"]["MembersMemberFundCategory"][] | null;
2619
+ catalog_revision: string;
2620
+ conditions: components["schemas"]["MembersMemberFundCondition"][];
2621
+ };
2622
+ /** @enum {string} */
2623
+ MembersMemberFundCategory: "treasury_money_market" | "floating_rate_treasury" | "short_duration_income";
2624
+ MembersMemberFundCondition: {
2625
+ category: components["schemas"]["MembersMemberFundCategory"];
2626
+ min_usd: string | null;
2627
+ selected_approver_id: string;
2628
+ };
2629
+ MembersMemberFundCatalogChange: {
2630
+ category?: string;
2631
+ previous_category?: string;
2632
+ symbol?: string;
2569
2633
  };
2570
2634
  MembersGetMemberRBACPoliciesOutput: {
2571
2635
  api_keys_manage?: boolean;
@@ -2579,6 +2643,79 @@ export interface components {
2579
2643
  permissions_manage?: boolean;
2580
2644
  transfers_approve?: boolean;
2581
2645
  };
2646
+ MembersSaveMemberActionSettingsInput: {
2647
+ actions?: components["schemas"]["MembersMemberActionSettingsPatch"];
2648
+ expected_revision: string;
2649
+ permissions?: components["schemas"]["MembersActionSettingsPermissionPatch"];
2650
+ /** Format: int32 */
2651
+ policy_schema_version?: number;
2652
+ };
2653
+ MembersMemberActionSettingsPatch: {
2654
+ ach_withdrawal?: components["schemas"]["MembersMemberActionOverride"];
2655
+ fund_buy?: components["schemas"]["MembersMemberActionOverride"];
2656
+ fund_sell?: components["schemas"]["MembersMemberActionOverride"];
2657
+ onchain_withdrawal?: components["schemas"]["MembersMemberActionOverride"];
2658
+ wire_withdrawal?: components["schemas"]["MembersMemberActionOverride"];
2659
+ };
2660
+ MembersActionSettingsPermissionPatch: {
2661
+ api_keys_manage?: boolean;
2662
+ assets_buy?: boolean;
2663
+ assets_sell?: boolean;
2664
+ bank_account_add?: boolean;
2665
+ bank_account_remove?: boolean;
2666
+ funds_deposit?: boolean;
2667
+ funds_withdraw?: boolean;
2668
+ members_invite?: boolean;
2669
+ permissions_manage?: boolean;
2670
+ transfers_approve?: boolean;
2671
+ };
2672
+ /** @enum {string} */
2673
+ MembersMemberAction: "ach_withdrawal" | "wire_withdrawal" | "onchain_withdrawal" | "fund_buy" | "fund_sell";
2674
+ MembersMemberActionSettingsPreview: {
2675
+ action_allowed?: boolean;
2676
+ business_policy_revision?: string | null;
2677
+ permission_allowed?: boolean;
2678
+ requirements?: components["schemas"]["MembersMemberApprovalRequirementView"][] | null;
2679
+ revision?: string;
2680
+ valuation?: components["schemas"]["MembersMemberActionValuationView"];
2681
+ };
2682
+ MembersMemberApprovalRequirementView: {
2683
+ /** Format: int32 */
2684
+ count?: number;
2685
+ excluded_individual_ids?: string[];
2686
+ individual_id?: string;
2687
+ kind?: components["schemas"]["MembersMemberRequirementKind"];
2688
+ source?: components["schemas"]["MembersMemberRequirementSource"];
2689
+ };
2690
+ /** @enum {string} */
2691
+ MembersMemberRequirementKind: "ordinary_quorum" | "additional_named" | "selected_member";
2692
+ /** @enum {string} */
2693
+ MembersMemberRequirementSource: "business" | "member";
2694
+ MembersMemberActionValuationView: {
2695
+ amount_usd?: string | null;
2696
+ amount_usd_view?: components["schemas"]["MoneyfmtMoneyAmountView"] | (null);
2697
+ fund_category?: string;
2698
+ status?: components["schemas"]["MembersMemberValuationStatus"];
2699
+ };
2700
+ MoneyfmtMoneyAmountView: {
2701
+ /** Format: double */
2702
+ float: number;
2703
+ formatted: components["schemas"]["MoneyfmtFormattedMoneyAmountView"];
2704
+ precise: string;
2705
+ symbol: string;
2706
+ zero: boolean;
2707
+ };
2708
+ MoneyfmtFormattedMoneyAmountView: {
2709
+ compact: string;
2710
+ currency_sign: string;
2711
+ currency_sign_position: string;
2712
+ full: string;
2713
+ };
2714
+ /** @enum {string} */
2715
+ MembersMemberValuationStatus: "valued" | "unavailable";
2716
+ MembersMemberAccessInput: {
2717
+ reason?: string;
2718
+ };
2582
2719
  MembersSetMemberRBACPolicyInput: {
2583
2720
  enabled?: boolean;
2584
2721
  rbac_type: string;
@@ -2628,22 +2765,6 @@ export interface components {
2628
2765
  ip_address?: string;
2629
2766
  session_token?: string;
2630
2767
  };
2631
- IdentityStepUpCreateInput: {
2632
- /** @description Current authenticator code. */
2633
- code: string;
2634
- /**
2635
- * @description Second factor to prove. Only totp.
2636
- * @enum {string}
2637
- */
2638
- method: "totp";
2639
- };
2640
- IdentityStepUpCreateOutput: {
2641
- /**
2642
- * Format: date-time
2643
- * @description When the code was verified and recorded.
2644
- */
2645
- verified_ts: string;
2646
- };
2647
2768
  IdentityTwofaOutput: {
2648
2769
  /** @enum {string} */
2649
2770
  method?: "sms" | "totp";
@@ -6242,6 +6363,225 @@ export interface operations {
6242
6363
  };
6243
6364
  };
6244
6365
  };
6366
+ "identity.members.action_settings.get": {
6367
+ parameters: {
6368
+ query?: never;
6369
+ header?: never;
6370
+ path: {
6371
+ id: string;
6372
+ };
6373
+ cookie?: never;
6374
+ };
6375
+ requestBody?: never;
6376
+ responses: {
6377
+ /** @description OK */
6378
+ 200: {
6379
+ headers: {
6380
+ [name: string]: unknown;
6381
+ };
6382
+ content: {
6383
+ "application/json": components["schemas"]["MembersMemberActionSettingsSummary"];
6384
+ };
6385
+ };
6386
+ /** @description Unauthorized */
6387
+ 401: {
6388
+ headers: {
6389
+ [name: string]: unknown;
6390
+ };
6391
+ content: {
6392
+ "application/json": components["schemas"]["HttputilAPIError"];
6393
+ };
6394
+ };
6395
+ /** @description Forbidden */
6396
+ 403: {
6397
+ headers: {
6398
+ [name: string]: unknown;
6399
+ };
6400
+ content: {
6401
+ "application/json": components["schemas"]["HttputilAPIError"];
6402
+ };
6403
+ };
6404
+ /** @description Not Found */
6405
+ 404: {
6406
+ headers: {
6407
+ [name: string]: unknown;
6408
+ };
6409
+ content: {
6410
+ "application/json": components["schemas"]["HttputilAPIError"];
6411
+ };
6412
+ };
6413
+ /** @description Error response. */
6414
+ default: {
6415
+ headers: {
6416
+ [name: string]: unknown;
6417
+ };
6418
+ content: {
6419
+ "application/json": components["schemas"]["HttputilAPIError"];
6420
+ };
6421
+ };
6422
+ };
6423
+ };
6424
+ "identity.members.action_settings.save": {
6425
+ parameters: {
6426
+ query?: never;
6427
+ header?: never;
6428
+ path: {
6429
+ id: string;
6430
+ };
6431
+ cookie?: never;
6432
+ };
6433
+ requestBody?: {
6434
+ content: {
6435
+ "application/json": components["schemas"]["MembersSaveMemberActionSettingsInput"];
6436
+ };
6437
+ };
6438
+ responses: {
6439
+ /** @description OK */
6440
+ 200: {
6441
+ headers: {
6442
+ [name: string]: unknown;
6443
+ };
6444
+ content: {
6445
+ "application/json": components["schemas"]["MembersMemberActionSettingsSummary"];
6446
+ };
6447
+ };
6448
+ /** @description Bad Request */
6449
+ 400: {
6450
+ headers: {
6451
+ [name: string]: unknown;
6452
+ };
6453
+ content: {
6454
+ "application/json": components["schemas"]["HttputilAPIError"];
6455
+ };
6456
+ };
6457
+ /** @description Unauthorized */
6458
+ 401: {
6459
+ headers: {
6460
+ [name: string]: unknown;
6461
+ };
6462
+ content: {
6463
+ "application/json": components["schemas"]["HttputilAPIError"];
6464
+ };
6465
+ };
6466
+ /** @description Forbidden */
6467
+ 403: {
6468
+ headers: {
6469
+ [name: string]: unknown;
6470
+ };
6471
+ content: {
6472
+ "application/json": components["schemas"]["HttputilAPIError"];
6473
+ };
6474
+ };
6475
+ /** @description Not Found */
6476
+ 404: {
6477
+ headers: {
6478
+ [name: string]: unknown;
6479
+ };
6480
+ content: {
6481
+ "application/json": components["schemas"]["HttputilAPIError"];
6482
+ };
6483
+ };
6484
+ /** @description Conflict */
6485
+ 409: {
6486
+ headers: {
6487
+ [name: string]: unknown;
6488
+ };
6489
+ content: {
6490
+ "application/json": components["schemas"]["HttputilAPIError"];
6491
+ };
6492
+ };
6493
+ /** @description Error response. */
6494
+ default: {
6495
+ headers: {
6496
+ [name: string]: unknown;
6497
+ };
6498
+ content: {
6499
+ "application/json": components["schemas"]["HttputilAPIError"];
6500
+ };
6501
+ };
6502
+ };
6503
+ };
6504
+ "identity.members.action_settings.preview": {
6505
+ parameters: {
6506
+ query: {
6507
+ action: components["schemas"]["MembersMemberAction"];
6508
+ amount: string;
6509
+ symbol?: string;
6510
+ payment_rail?: string;
6511
+ };
6512
+ header?: never;
6513
+ path: {
6514
+ id: string;
6515
+ };
6516
+ cookie?: never;
6517
+ };
6518
+ requestBody?: never;
6519
+ responses: {
6520
+ /** @description OK */
6521
+ 200: {
6522
+ headers: {
6523
+ [name: string]: unknown;
6524
+ };
6525
+ content: {
6526
+ "application/json": components["schemas"]["MembersMemberActionSettingsPreview"];
6527
+ };
6528
+ };
6529
+ /** @description Bad Request */
6530
+ 400: {
6531
+ headers: {
6532
+ [name: string]: unknown;
6533
+ };
6534
+ content: {
6535
+ "application/json": components["schemas"]["HttputilAPIError"];
6536
+ };
6537
+ };
6538
+ /** @description Unauthorized */
6539
+ 401: {
6540
+ headers: {
6541
+ [name: string]: unknown;
6542
+ };
6543
+ content: {
6544
+ "application/json": components["schemas"]["HttputilAPIError"];
6545
+ };
6546
+ };
6547
+ /** @description Forbidden */
6548
+ 403: {
6549
+ headers: {
6550
+ [name: string]: unknown;
6551
+ };
6552
+ content: {
6553
+ "application/json": components["schemas"]["HttputilAPIError"];
6554
+ };
6555
+ };
6556
+ /** @description Not Found */
6557
+ 404: {
6558
+ headers: {
6559
+ [name: string]: unknown;
6560
+ };
6561
+ content: {
6562
+ "application/json": components["schemas"]["HttputilAPIError"];
6563
+ };
6564
+ };
6565
+ /** @description Service Unavailable */
6566
+ 503: {
6567
+ headers: {
6568
+ [name: string]: unknown;
6569
+ };
6570
+ content: {
6571
+ "application/json": components["schemas"]["HttputilAPIError"];
6572
+ };
6573
+ };
6574
+ /** @description Error response. */
6575
+ default: {
6576
+ headers: {
6577
+ [name: string]: unknown;
6578
+ };
6579
+ content: {
6580
+ "application/json": components["schemas"]["HttputilAPIError"];
6581
+ };
6582
+ };
6583
+ };
6584
+ };
6245
6585
  "identity.members.deactivate": {
6246
6586
  parameters: {
6247
6587
  query?: never;
@@ -6731,84 +7071,6 @@ export interface operations {
6731
7071
  };
6732
7072
  };
6733
7073
  };
6734
- "identity.step_ups.create": {
6735
- parameters: {
6736
- query?: never;
6737
- header?: never;
6738
- path?: never;
6739
- cookie?: never;
6740
- };
6741
- requestBody?: {
6742
- content: {
6743
- "application/json": components["schemas"]["IdentityStepUpCreateInput"];
6744
- };
6745
- };
6746
- responses: {
6747
- /** @description OK */
6748
- 200: {
6749
- headers: {
6750
- [name: string]: unknown;
6751
- };
6752
- content: {
6753
- "application/json": components["schemas"]["IdentityStepUpCreateOutput"];
6754
- };
6755
- };
6756
- /** @description Bad Request */
6757
- 400: {
6758
- headers: {
6759
- [name: string]: unknown;
6760
- };
6761
- content: {
6762
- "application/json": components["schemas"]["HttputilAPIError"];
6763
- };
6764
- };
6765
- /** @description Unauthorized */
6766
- 401: {
6767
- headers: {
6768
- [name: string]: unknown;
6769
- };
6770
- content: {
6771
- "application/json": components["schemas"]["HttputilAPIError"];
6772
- };
6773
- };
6774
- /** @description Forbidden */
6775
- 403: {
6776
- headers: {
6777
- [name: string]: unknown;
6778
- };
6779
- content: {
6780
- "application/json": components["schemas"]["HttputilAPIError"];
6781
- };
6782
- };
6783
- /** @description Conflict */
6784
- 409: {
6785
- headers: {
6786
- [name: string]: unknown;
6787
- };
6788
- content: {
6789
- "application/json": components["schemas"]["HttputilAPIError"];
6790
- };
6791
- };
6792
- /** @description Too Many Requests */
6793
- 429: {
6794
- headers: {
6795
- [name: string]: unknown;
6796
- };
6797
- content: {
6798
- "application/json": components["schemas"]["HttputilAPIError"];
6799
- };
6800
- };
6801
- /** @description Error response. */
6802
- default: {
6803
- headers: {
6804
- [name: string]: unknown;
6805
- };
6806
- content: {
6807
- "application/json": components["schemas"]["HttputilAPIError"];
6808
- };
6809
- };
6810
- };
6811
- };
6812
7074
  "identity.twofa.current": {
6813
7075
  parameters: {
6814
7076
  query?: never;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stable_sea/sdk",
3
- "version": "0.2.18",
3
+ "version": "0.2.19",
4
4
  "type": "module",
5
5
  "sideEffects": false,
6
6
  "files": [