@deepraxis/sdk 0.1.1-dev.ea219e1 → 0.1.1-dev.eb022f5

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/METHODS.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # SDK methods
2
2
 
3
- Generated by `bun run generate`. 428 HTTP operations, plus product aliases. Version segments and path parameters are omitted from resource names. Inputs use typed `{ path, query, body, headers }` options. Collections form nested resource objects; POST actions retain their verb. Naming rules are documented in `scripts/resources.ts`; semantic exceptions and aliases with reasons are in `scripts/naming-overrides.ts`.
3
+ Generated by `bun run generate`. 522 HTTP operations, plus product aliases. Version segments and path parameters are omitted from resource names. Inputs use typed `{ path, query, body, headers }` options. Collections form nested resource objects; POST actions retain their verb. Naming rules are documented in `scripts/resources.ts`; semantic exceptions and aliases with reasons are in `scripts/naming-overrides.ts`.
4
4
 
5
5
  `always` returns an AsyncIterable; `optional` streams with `{ stream: true }`; `yes` pagination returns a Page. Only `{ data, next_cursor }` + `cursor` query contracts are automatically paginated.
6
6
 
@@ -449,6 +449,14 @@ Multipart request bodies expand plain objects into bracketed fields (for example
449
449
  | list | GET | `/automation/v1/scripts/{ns}/{name}/dist-tags` | no | no |
450
450
  | set | PUT | `/automation/v1/scripts/{ns}/{name}/dist-tags/{tag}` | no | no |
451
451
 
452
+ ### automation.scripts.vaults
453
+
454
+ | Method | HTTP | Path | Streaming | Pagination |
455
+ |---|---|---|---|---|
456
+ | delete | DELETE | `/automation/v1/scripts/{ns}/{name}/vaults/{alias}` | no | no |
457
+ | list | GET | `/automation/v1/scripts/{ns}/{name}/vaults` | no | no |
458
+ | set | PUT | `/automation/v1/scripts/{ns}/{name}/vaults/{alias}` | no | no |
459
+
452
460
  ### automation.scripts.versions
453
461
 
454
462
  | Method | HTTP | Path | Streaming | Pagination |
@@ -510,6 +518,14 @@ Multipart request bodies expand plain objects into bracketed fields (for example
510
518
  | list | GET | `/automation/v1/workflows/{ns}/{name}/dist-tags` | no | no |
511
519
  | set | PUT | `/automation/v1/workflows/{ns}/{name}/dist-tags/{tag}` | no | no |
512
520
 
521
+ ### automation.workflows.vaults
522
+
523
+ | Method | HTTP | Path | Streaming | Pagination |
524
+ |---|---|---|---|---|
525
+ | delete | DELETE | `/automation/v1/workflows/{ns}/{name}/vaults/{alias}` | no | no |
526
+ | list | GET | `/automation/v1/workflows/{ns}/{name}/vaults` | no | no |
527
+ | set | PUT | `/automation/v1/workflows/{ns}/{name}/vaults/{alias}` | no | no |
528
+
513
529
  ### automation.workflows.versions
514
530
 
515
531
  | Method | HTTP | Path | Streaming | Pagination |
@@ -579,6 +595,210 @@ Multipart request bodies expand plain objects into bracketed fields (for example
579
595
  |---|---|---|---|---|
580
596
  | create | POST | `/browser/v1/sessions/{sessionId}/viewer` | no | no |
581
597
 
598
+ ## canvas
599
+
600
+ ### canvas.canvases
601
+
602
+ | Method | HTTP | Path | Streaming | Pagination |
603
+ |---|---|---|---|---|
604
+ | create | POST | `/canvas/v1/canvases` | no | no |
605
+ | delete | DELETE | `/canvas/v1/canvases/{canvas_id}` | no | no |
606
+ | execute | POST | `/canvas/v1/canvases/{canvas_id}:execute` | no | no |
607
+ | list | GET | `/canvas/v1/canvases` | no | yes |
608
+ | restore | POST | `/canvas/v1/canvases/{canvas_id}:restore` | no | no |
609
+ | retrieve | GET | `/canvas/v1/canvases/{canvas_id}` | no | no |
610
+ | update | PATCH | `/canvas/v1/canvases/{canvas_id}` | no | no |
611
+
612
+ ### canvas.canvases.images
613
+
614
+ | Method | HTTP | Path | Streaming | Pagination |
615
+ |---|---|---|---|---|
616
+ | list | GET | `/canvas/v1/canvases/{canvas_id}/images` | no | no |
617
+
618
+ ### canvas.canvases.nodes
619
+
620
+ | Method | HTTP | Path | Streaming | Pagination |
621
+ |---|---|---|---|---|
622
+ | list | GET | `/canvas/v1/canvases/{canvas_id}/nodes` | no | no |
623
+
624
+ ### canvas.canvases.versions
625
+
626
+ | Method | HTTP | Path | Streaming | Pagination |
627
+ |---|---|---|---|---|
628
+ | list | GET | `/canvas/v1/canvases/{canvas_id}/versions` | no | no |
629
+
630
+ ### canvas.collections
631
+
632
+ | Method | HTTP | Path | Streaming | Pagination |
633
+ |---|---|---|---|---|
634
+ | create | POST | `/canvas/v1/collections` | no | no |
635
+ | delete | DELETE | `/canvas/v1/collections/{collection_id}` | no | no |
636
+ | list | GET | `/canvas/v1/collections` | no | no |
637
+ | retrieve | GET | `/canvas/v1/collections/{collection_id}` | no | no |
638
+ | update | PATCH | `/canvas/v1/collections/{collection_id}` | no | no |
639
+
640
+ ## crm
641
+
642
+ ### crm.associations
643
+
644
+ | Method | HTTP | Path | Streaming | Pagination |
645
+ |---|---|---|---|---|
646
+ | create | PUT | `/crm/v1/objects/{objectType}/{objectId}/associations/{toObjectType}/{toObjectId}` | no | no |
647
+ | createDefault | PUT | `/crm/v1/objects/{objectType}/{objectId}/associations/default/{toObjectType}/{toObjectId}` | no | no |
648
+ | list | GET | `/crm/v1/objects/{objectType}/{objectId}/associations/{toObjectType}` | no | no |
649
+ | remove | DELETE | `/crm/v1/objects/{objectType}/{objectId}/associations/{toObjectType}/{toObjectId}` | no | no |
650
+
651
+ ### crm.changes
652
+
653
+ | Method | HTTP | Path | Streaming | Pagination |
654
+ |---|---|---|---|---|
655
+ | revert | POST | `/crm/v1/changes/{changeSetId}:revert` | no | no |
656
+
657
+ ### crm.layouts
658
+
659
+ | Method | HTTP | Path | Streaming | Pagination |
660
+ |---|---|---|---|---|
661
+ | retrieve | GET | `/crm/v1/layouts/{objectType}` | no | no |
662
+ | update | PUT | `/crm/v1/layouts/{objectType}` | no | no |
663
+
664
+ ### crm.leads
665
+
666
+ | Method | HTTP | Path | Streaming | Pagination |
667
+ |---|---|---|---|---|
668
+ | qualify | POST | `/crm/v1/leads/{leadId}:qualify` | no | no |
669
+
670
+ ### crm.objects
671
+
672
+ | Method | HTTP | Path | Streaming | Pagination |
673
+ |---|---|---|---|---|
674
+ | archive | DELETE | `/crm/v1/objects/{objectType}/{objectId}` | no | no |
675
+ | create | POST | `/crm/v1/objects/{objectType}` | no | no |
676
+ | list | GET | `/crm/v1/objects/{objectType}` | no | no |
677
+ | retrieve | GET | `/crm/v1/objects/{objectType}/{objectId}` | no | no |
678
+ | search | POST | `/crm/v1/objects/{objectType}/search` | no | no |
679
+ | update | PATCH | `/crm/v1/objects/{objectType}/{objectId}` | no | no |
680
+
681
+ ### crm.objects.batch
682
+
683
+ | Method | HTTP | Path | Streaming | Pagination |
684
+ |---|---|---|---|---|
685
+ | archive | POST | `/crm/v1/objects/{objectType}/batch/archive` | no | no |
686
+ | create | POST | `/crm/v1/objects/{objectType}/batch/create` | no | no |
687
+ | read | POST | `/crm/v1/objects/{objectType}/batch/read` | no | no |
688
+ | update | POST | `/crm/v1/objects/{objectType}/batch/update` | no | no |
689
+ | upsert | POST | `/crm/v1/objects/{objectType}/batch/upsert` | no | no |
690
+
691
+ ### crm.pipelines
692
+
693
+ | Method | HTTP | Path | Streaming | Pagination |
694
+ |---|---|---|---|---|
695
+ | archive | DELETE | `/crm/v1/pipelines/{objectType}/{pipelineId}` | no | no |
696
+ | create | POST | `/crm/v1/pipelines/{objectType}` | no | no |
697
+ | list | GET | `/crm/v1/pipelines/{objectType}` | no | no |
698
+ | retrieve | GET | `/crm/v1/pipelines/{objectType}/{pipelineId}` | no | no |
699
+ | update | PATCH | `/crm/v1/pipelines/{objectType}/{pipelineId}` | no | no |
700
+
701
+ ### crm.pipelines.stages
702
+
703
+ | Method | HTTP | Path | Streaming | Pagination |
704
+ |---|---|---|---|---|
705
+ | archive | DELETE | `/crm/v1/pipelines/{objectType}/{pipelineId}/stages/{stageId}` | no | no |
706
+ | create | POST | `/crm/v1/pipelines/{objectType}/{pipelineId}/stages` | no | no |
707
+ | update | PATCH | `/crm/v1/pipelines/{objectType}/{pipelineId}/stages/{stageId}` | no | no |
708
+
709
+ ### crm.properties
710
+
711
+ | Method | HTTP | Path | Streaming | Pagination |
712
+ |---|---|---|---|---|
713
+ | archive | DELETE | `/crm/v1/properties/{objectType}/{propertyName}` | no | no |
714
+ | create | POST | `/crm/v1/properties/{objectType}` | no | no |
715
+ | list | GET | `/crm/v1/properties/{objectType}` | no | no |
716
+ | retrieve | GET | `/crm/v1/properties/{objectType}/{propertyName}` | no | no |
717
+ | update | PATCH | `/crm/v1/properties/{objectType}/{propertyName}` | no | no |
718
+
719
+ ### crm.properties.groups
720
+
721
+ | Method | HTTP | Path | Streaming | Pagination |
722
+ |---|---|---|---|---|
723
+ | create | POST | `/crm/v1/properties/{objectType}/groups` | no | no |
724
+ | list | GET | `/crm/v1/properties/{objectType}/groups` | no | no |
725
+
726
+ ### crm.schemas
727
+
728
+ | Method | HTTP | Path | Streaming | Pagination |
729
+ |---|---|---|---|---|
730
+ | create | POST | `/crm/v1/schemas` | no | no |
731
+ | list | GET | `/crm/v1/schemas` | no | no |
732
+
733
+ ## cut
734
+
735
+ ### cut.exports
736
+
737
+ | Method | HTTP | Path | Streaming | Pagination |
738
+ |---|---|---|---|---|
739
+ | cancel | POST | `/cut/v1/exports/{export_id}:cancel` | no | no |
740
+ | retrieve | GET | `/cut/v1/exports/{export_id}` | no | no |
741
+
742
+ ### cut.projects
743
+
744
+ | Method | HTTP | Path | Streaming | Pagination |
745
+ |---|---|---|---|---|
746
+ | create | POST | `/cut/v1/projects` | no | no |
747
+ | delete | DELETE | `/cut/v1/projects/{project_id}` | no | no |
748
+ | execute | POST | `/cut/v1/projects/{project_id}:execute` | no | no |
749
+ | list | GET | `/cut/v1/projects` | no | no |
750
+ | retrieve | GET | `/cut/v1/projects/{project_id}` | no | no |
751
+ | retrieveState | GET | `/cut/v1/projects/{project_id}/state` | no | no |
752
+ | retrieveTimeline | GET | `/cut/v1/projects/{project_id}/timeline` | no | no |
753
+ | undelete | POST | `/cut/v1/projects/{project_id}:undelete` | no | no |
754
+ | update | PATCH | `/cut/v1/projects/{project_id}` | no | no |
755
+
756
+ ### cut.projects.analysis
757
+
758
+ | Method | HTTP | Path | Streaming | Pagination |
759
+ |---|---|---|---|---|
760
+ | create | POST | `/cut/v1/projects/{project_id}/analysis` | no | no |
761
+
762
+ ### cut.projects.bindings
763
+
764
+ | Method | HTTP | Path | Streaming | Pagination |
765
+ |---|---|---|---|---|
766
+ | create | POST | `/cut/v1/projects/{project_id}/bindings` | no | no |
767
+ | delete | DELETE | `/cut/v1/projects/{project_id}/bindings/{name}` | no | no |
768
+ | list | GET | `/cut/v1/projects/{project_id}/bindings` | no | no |
769
+
770
+ ### cut.projects.exports
771
+
772
+ | Method | HTTP | Path | Streaming | Pagination |
773
+ |---|---|---|---|---|
774
+ | create | POST | `/cut/v1/projects/{project_id}/exports` | no | no |
775
+ | list | GET | `/cut/v1/projects/{project_id}/exports` | no | no |
776
+
777
+ ### cut.projects.frames
778
+
779
+ | Method | HTTP | Path | Streaming | Pagination |
780
+ |---|---|---|---|---|
781
+ | list | GET | `/cut/v1/projects/{project_id}/frames` | no | no |
782
+
783
+ ### cut.projects.media
784
+
785
+ | Method | HTTP | Path | Streaming | Pagination |
786
+ |---|---|---|---|---|
787
+ | import | POST | `/cut/v1/projects/{project_id}/media:import` | no | no |
788
+
789
+ ### cut.projects.versions
790
+
791
+ | Method | HTTP | Path | Streaming | Pagination |
792
+ |---|---|---|---|---|
793
+ | create | POST | `/cut/v1/projects/{project_id}/versions` | no | no |
794
+ | list | GET | `/cut/v1/projects/{project_id}/versions` | no | no |
795
+
796
+ ### cut.versions
797
+
798
+ | Method | HTTP | Path | Streaming | Pagination |
799
+ |---|---|---|---|---|
800
+ | restore | POST | `/cut/v1/versions/{version_id}:restore` | no | no |
801
+
582
802
  ## database
583
803
 
584
804
  ### database.databases
@@ -644,6 +864,18 @@ Multipart request bodies expand plain objects into bracketed fields (for example
644
864
  | retrieve | GET | `/file/v1/files/{file_id}` | no | no |
645
865
  | retrieveContent | GET | `/file/v1/files/{file_id}/content` | no | no |
646
866
 
867
+ ### file.files.contentLinks
868
+
869
+ | Method | HTTP | Path | Streaming | Pagination |
870
+ |---|---|---|---|---|
871
+ | revoke | POST | `/file/v1/files/{file_id}/content_links:revoke` | no | no |
872
+
873
+ ### file.files.contentUrl
874
+
875
+ | Method | HTTP | Path | Streaming | Pagination |
876
+ |---|---|---|---|---|
877
+ | create | POST | `/file/v1/files/{file_id}/content_url` | no | no |
878
+
647
879
  ### file.uploads
648
880
 
649
881
  | Method | HTTP | Path | Streaming | Pagination |
@@ -651,6 +883,7 @@ Multipart request bodies expand plain objects into bracketed fields (for example
651
883
  | cancel | POST | `/file/v1/uploads/{upload_id}/cancel` | no | no |
652
884
  | complete | POST | `/file/v1/uploads/{upload_id}/complete` | no | no |
653
885
  | create | POST | `/file/v1/uploads` | no | no |
886
+ | createSigned | POST | `/file/v1/uploads/signed` | no | no |
654
887
 
655
888
  ### file.uploads.parts
656
889
 
@@ -781,6 +1014,12 @@ Multipart request bodies expand plain objects into bracketed fields (for example
781
1014
  | create | POST | `/media/v1/libraries/{library_id}/batches` | no | no |
782
1015
  | retrieve | GET | `/media/v1/libraries/{library_id}/batches/{job_id}` | no | no |
783
1016
 
1017
+ ### media.libraries.deliveryTokens
1018
+
1019
+ | Method | HTTP | Path | Streaming | Pagination |
1020
+ |---|---|---|---|---|
1021
+ | create | POST | `/media/v1/libraries/{library_id}/delivery_tokens` | no | no |
1022
+
784
1023
  ### media.libraries.events
785
1024
 
786
1025
  | Method | HTTP | Path | Streaming | Pagination |
@@ -961,6 +1200,12 @@ Multipart request bodies expand plain objects into bracketed fields (for example
961
1200
  |---|---|---|---|---|
962
1201
  | create | POST | `/model/v1/responses/input_tokens` | no | no |
963
1202
 
1203
+ ### model.systemone
1204
+
1205
+ | Method | HTTP | Path | Streaming | Pagination |
1206
+ |---|---|---|---|---|
1207
+ | create | POST | `/model/v1/systemone` | no | no |
1208
+
964
1209
  ### model.videos
965
1210
 
966
1211
  | Method | HTTP | Path | Streaming | Pagination |
@@ -1014,6 +1259,12 @@ Multipart request bodies expand plain objects into bracketed fields (for example
1014
1259
  | create | POST | `/organization/v1/feedback/{id}/messages` | no | no |
1015
1260
  | list | GET | `/organization/v1/feedback/{id}/messages` | no | no |
1016
1261
 
1262
+ ### organization.members
1263
+
1264
+ | Method | HTTP | Path | Streaming | Pagination |
1265
+ |---|---|---|---|---|
1266
+ | list | GET | `/organization/v1/members` | no | no |
1267
+
1017
1268
  ### organization.usage
1018
1269
 
1019
1270
  | Method | HTTP | Path | Streaming | Pagination |
@@ -1096,7 +1347,36 @@ Multipart request bodies expand plain objects into bracketed fields (for example
1096
1347
 
1097
1348
  | Method | HTTP | Path | Streaming | Pagination |
1098
1349
  |---|---|---|---|---|
1350
+ | create | POST | `/sandbox/v1/templates` | no | no |
1351
+ | delete | DELETE | `/sandbox/v1/templates/{templateID}` | no | no |
1099
1352
  | list | GET | `/sandbox/v1/templates` | no | no |
1353
+ | retrieve | GET | `/sandbox/v1/templates/{templateID}` | no | no |
1354
+
1355
+ ### sandbox.templates.aliases
1356
+
1357
+ | Method | HTTP | Path | Streaming | Pagination |
1358
+ |---|---|---|---|---|
1359
+ | retrieve | GET | `/sandbox/v1/templates/aliases/{alias}` | no | no |
1360
+
1361
+ ### sandbox.templates.builds
1362
+
1363
+ | Method | HTTP | Path | Streaming | Pagination |
1364
+ |---|---|---|---|---|
1365
+ | update | POST | `/sandbox/v1/templates/{templateID}/builds/{buildID}` | no | no |
1366
+
1367
+ ### sandbox.templates.builds.status
1368
+
1369
+ | Method | HTTP | Path | Streaming | Pagination |
1370
+ |---|---|---|---|---|
1371
+ | list | GET | `/sandbox/v1/templates/{templateID}/builds/{buildID}/status` | no | no |
1372
+
1373
+ ### sandbox.templates.tags
1374
+
1375
+ | Method | HTTP | Path | Streaming | Pagination |
1376
+ |---|---|---|---|---|
1377
+ | create | POST | `/sandbox/v1/templates/tags` | no | no |
1378
+ | delete | DELETE | `/sandbox/v1/templates/tags` | no | no |
1379
+ | list | GET | `/sandbox/v1/templates/{templateID}/tags` | no | no |
1100
1380
 
1101
1381
  ### sandbox.volumes
1102
1382
 
@@ -1346,10 +1626,32 @@ Multipart request bodies expand plain objects into bracketed fields (for example
1346
1626
  | agent.sessions.events.send | Events submit session input; the product verb is send rather than create. |
1347
1627
  | automation.hooks.send | Delivers a payload to a trigger's secret webhook URL; it sends an event rather than updating a hook resource. |
1348
1628
  | automation.scripts.distTags.set | A dist-tag assigns a version to a name; use npm vocabulary set rather than update. |
1629
+ | automation.scripts.vaults.set | Assign a whole vault to a definition alias, independently of published versions. |
1349
1630
  | automation.scripts.versions.create / publish | Creating a script version publishes it; publish is a product alias of versions.create. |
1350
1631
  | automation.workflows.distTags.set | Workflow dist-tags use the same npm-style assignment vocabulary as script dist-tags. |
1632
+ | automation.workflows.vaults.set | Assign a whole vault to a definition alias, independently of published versions. |
1351
1633
  | automation.workflows.versions.create / publish | Creating a workflow version publishes it; publish is a product alias of versions.create. |
1634
+ | crm.objects.list | CRM objectType selects a collection, not an entity; preserve list/create separately from retrieve/update on an identified resource. |
1635
+ | crm.objects.create | CRM objectType selects a collection, not an entity; preserve list/create separately from retrieve/update on an identified resource. |
1636
+ | crm.objects.batch.create | The terminal batch segment is the requested operation, not another collection; retain its read/create/update/upsert/archive verb. |
1637
+ | crm.objects.batch.read | The terminal batch segment is the requested operation, not another collection; retain its read/create/update/upsert/archive verb. |
1638
+ | crm.objects.batch.update | The terminal batch segment is the requested operation, not another collection; retain its read/create/update/upsert/archive verb. |
1639
+ | crm.objects.batch.upsert | The terminal batch segment is the requested operation, not another collection; retain its read/create/update/upsert/archive verb. |
1640
+ | crm.objects.search | The terminal search segment queries records without creating a nested search resource. |
1641
+ | crm.objects.archive | CRM DELETE archives the resource rather than permanently deleting it; expose the archive product verb. |
1642
+ | crm.associations.createDefault | CRM relationships live below objects in the URL but form the associations SDK resource; distinguish labelled and default creation from record updates. |
1643
+ | crm.associations.list | CRM relationships live below objects in the URL but form the associations SDK resource; distinguish labelled and default creation from record updates. |
1644
+ | crm.associations.remove | CRM relationships live below objects in the URL but form the associations SDK resource; distinguish labelled and default creation from record updates. |
1645
+ | crm.associations.create | CRM relationships live below objects in the URL but form the associations SDK resource; distinguish labelled and default creation from record updates. |
1646
+ | crm.pipelines.list | CRM objectType selects a collection, not an entity; preserve list/create separately from retrieve/update on an identified resource. |
1647
+ | crm.pipelines.create | CRM objectType selects a collection, not an entity; preserve list/create separately from retrieve/update on an identified resource. |
1648
+ | crm.pipelines.archive | CRM DELETE archives the resource rather than permanently deleting it; expose the archive product verb. |
1649
+ | crm.pipelines.stages.archive | CRM DELETE archives the resource rather than permanently deleting it; expose the archive product verb. |
1650
+ | crm.properties.list | CRM objectType selects a collection, not an entity; preserve list/create separately from retrieve/update on an identified resource. |
1651
+ | crm.properties.create | CRM objectType selects a collection, not an entity; preserve list/create separately from retrieve/update on an identified resource. |
1652
+ | crm.properties.archive | CRM DELETE archives the resource rather than permanently deleting it; expose the archive product verb. |
1352
1653
  | database.databases.rest.create | The final parameter identifies a table collection; POST inserts rows rather than updating the table. |
1654
+ | file.uploads.createSigned | Signed upload creation returns a one-time local PUT URL; ADR-039 names this operation uploads.createSigned. |
1353
1655
  | meta.docs.search | Documentation keyword search is an operation on docs, not a nested collection. |
1354
1656
  | sandbox.sandboxes.commands.run | Sandbox data operations use the E2B SDK verb while preserving URL resource nesting. |
1355
1657
  | sandbox.sandboxes.files.remove | Sandbox data operations use the E2B SDK verb while preserving URL resource nesting. |
@@ -96,6 +96,33 @@ export declare function createAutomationClient(options: PraxisOptions): {
96
96
  restore: (options: import("./core/transport.js").CallOptions<import("./generated/types.gen.js").AutomationScriptsRestoreData>) => Promise<import("./generated/types.gen.js").AutomationDefinition>;
97
97
  retrieve: (options: import("./core/transport.js").CallOptions<import("./generated/types.gen.js").AutomationScriptsGetData>) => Promise<import("./generated/types.gen.js").AutomationDefinitionDetail>;
98
98
  update: (options: import("./core/transport.js").CallOptions<import("./generated/types.gen.js").AutomationScriptsPatchData>) => Promise<import("./generated/types.gen.js").AutomationDefinitionDetail>;
99
+ vaults: {
100
+ delete: (options: import("./core/transport.js").CallOptions<import("./generated/types.gen.js").AutomationScriptsVaultsDeleteData>) => Promise<void>;
101
+ list: (options: import("./core/transport.js").CallOptions<import("./generated/types.gen.js").AutomationScriptsVaultsListData>) => Promise<{
102
+ data: Array<{
103
+ alias: string;
104
+ vault: {
105
+ id: string;
106
+ name: string;
107
+ };
108
+ secrets: Array<{
109
+ name: string;
110
+ }>;
111
+ secrets_unavailable?: true;
112
+ }>;
113
+ }>;
114
+ set: (options: import("./core/transport.js").CallOptions<import("./generated/types.gen.js").AutomationScriptsVaultsSetData>) => Promise<{
115
+ alias: string;
116
+ vault: {
117
+ id: string;
118
+ name: string;
119
+ };
120
+ secrets: Array<{
121
+ name: string;
122
+ }>;
123
+ secrets_unavailable?: true;
124
+ }>;
125
+ };
99
126
  versions: {
100
127
  create: (options: import("./core/transport.js").CallOptions<import("./generated/types.gen.js").AutomationScriptsPublishData>) => Promise<import("./generated/types.gen.js").AutomationVersion>;
101
128
  deprecate: (options: import("./core/transport.js").CallOptions<import("./generated/types.gen.js").AutomationScriptsDeprecateData>) => Promise<import("./generated/types.gen.js").AutomationVersion>;
@@ -143,6 +170,33 @@ export declare function createAutomationClient(options: PraxisOptions): {
143
170
  restore: (options: import("./core/transport.js").CallOptions<import("./generated/types.gen.js").AutomationWorkflowsRestoreData>) => Promise<import("./generated/types.gen.js").AutomationDefinition>;
144
171
  retrieve: (options: import("./core/transport.js").CallOptions<import("./generated/types.gen.js").AutomationWorkflowsGetData>) => Promise<import("./generated/types.gen.js").AutomationDefinitionDetail>;
145
172
  update: (options: import("./core/transport.js").CallOptions<import("./generated/types.gen.js").AutomationWorkflowsPatchData>) => Promise<import("./generated/types.gen.js").AutomationDefinitionDetail>;
173
+ vaults: {
174
+ delete: (options: import("./core/transport.js").CallOptions<import("./generated/types.gen.js").AutomationWorkflowsVaultsDeleteData>) => Promise<void>;
175
+ list: (options: import("./core/transport.js").CallOptions<import("./generated/types.gen.js").AutomationWorkflowsVaultsListData>) => Promise<{
176
+ data: Array<{
177
+ alias: string;
178
+ vault: {
179
+ id: string;
180
+ name: string;
181
+ };
182
+ secrets: Array<{
183
+ name: string;
184
+ }>;
185
+ secrets_unavailable?: true;
186
+ }>;
187
+ }>;
188
+ set: (options: import("./core/transport.js").CallOptions<import("./generated/types.gen.js").AutomationWorkflowsVaultsSetData>) => Promise<{
189
+ alias: string;
190
+ vault: {
191
+ id: string;
192
+ name: string;
193
+ };
194
+ secrets: Array<{
195
+ name: string;
196
+ }>;
197
+ secrets_unavailable?: true;
198
+ }>;
199
+ };
146
200
  versions: {
147
201
  create: (options: import("./core/transport.js").CallOptions<import("./generated/types.gen.js").AutomationWorkflowsPublishData>) => Promise<import("./generated/types.gen.js").AutomationVersion>;
148
202
  deprecate: (options: import("./core/transport.js").CallOptions<import("./generated/types.gen.js").AutomationWorkflowsDeprecateData>) => Promise<import("./generated/types.gen.js").AutomationVersion>;
@@ -1,3 +1,4 @@
1
+ import { type SandboxTemplateBuildInput, type SandboxTemplateBuildResult } from "../helpers/sandbox-templates.js";
1
2
  import { type UploadFileOptions, type UploadedFile } from '../helpers/file-upload.js';
2
3
  import { resourceFactories } from '../resources.generated.js';
3
4
  import { type PraxisOptions } from './transport.js';
@@ -7,7 +8,12 @@ import { type CountInput, type CountResult } from '../helpers/database-count.js'
7
8
  type Resources = {
8
9
  readonly [K in keyof typeof resourceFactories]: ReturnType<(typeof resourceFactories)[K]>;
9
10
  };
10
- export interface Praxis extends Omit<Resources, 'application' | 'browser' | 'database' | 'file'> {
11
+ export interface Praxis extends Omit<Resources, 'application' | 'browser' | 'database' | 'file' | 'sandbox'> {
12
+ readonly sandbox: Omit<Resources['sandbox'], 'templates'> & {
13
+ templates: Resources['sandbox']['templates'] & {
14
+ build(input: SandboxTemplateBuildInput): Promise<SandboxTemplateBuildResult>;
15
+ };
16
+ };
11
17
  readonly browser: Resources['browser'] & {
12
18
  connect(options?: BrowserConnectOptions): Promise<PraxisBrowser>;
13
19
  };
@@ -1,3 +1,4 @@
1
+ import { buildSandboxTemplate } from "../helpers/sandbox-templates.js";
1
2
  import { uploadFile } from "../helpers/file-upload.js";
2
3
  import { resourceFactories } from "../resources.generated.js";
3
4
  import { Transport } from "./transport.js";
@@ -10,6 +11,8 @@ export class Praxis {
10
11
  for (const [name, create] of Object.entries(resourceFactories)) {
11
12
  const resource = create(transport);
12
13
  // Assemble before sealing the resource property; never replace a readonly SDK resource.
14
+ if (name === 'sandbox')
15
+ Object.assign(resource.templates, { build: (input) => buildSandboxTemplate(this, input) });
13
16
  if (name === 'file')
14
17
  Object.assign(resource, { uploadFile: (file, options) => uploadFile(this, file, options) });
15
18
  if (name === 'database')
@@ -25,6 +25,15 @@ type InternalOptions = RequestOptions & {
25
25
  query?: unknown;
26
26
  lastEventId?: string;
27
27
  };
28
+ /** Margin over a server-side execution deadline: the response still has to travel back after it. */
29
+ export declare const SERVER_DEADLINE_MARGIN_MS = 30000;
30
+ /**
31
+ * A request body that carries its own execution deadline (`timeoutMs`, as in sandbox commands.run) is
32
+ * waited for at least that long plus a margin, so the client never gives up before the server answers.
33
+ */
34
+ export declare function serverDeadlineMs(options: {
35
+ body?: unknown;
36
+ }): number;
28
37
  export declare class Transport {
29
38
  private readonly config;
30
39
  constructor(options: PraxisOptions);
@@ -32,6 +32,17 @@ function assertKnownOptions(options) {
32
32
  detail: `Unrecognised option ${stray.length > 1 ? 'keys' : 'key'} ${names}. Request parameters are not flat: put each under \`query\` (GET/DELETE: filters, pagination), \`path\` (URL segments) or \`body\` (POST/PATCH/PUT payload), e.g. call({ query: { ${stray[0]} } }) or call({ body: { ${stray[0]} } }). Common top-level keys: path, query, body, headers, signal, timeoutMs, maxRetries.`,
33
33
  });
34
34
  }
35
+ /** Margin over a server-side execution deadline: the response still has to travel back after it. */
36
+ export const SERVER_DEADLINE_MARGIN_MS = 30_000;
37
+ /**
38
+ * A request body that carries its own execution deadline (`timeoutMs`, as in sandbox commands.run) is
39
+ * waited for at least that long plus a margin, so the client never gives up before the server answers.
40
+ */
41
+ export function serverDeadlineMs(options) {
42
+ const body = options.body;
43
+ const deadline = body && typeof body === 'object' ? body.timeoutMs : undefined;
44
+ return typeof deadline === 'number' && Number.isFinite(deadline) && deadline > 0 ? deadline + SERVER_DEADLINE_MARGIN_MS : 0;
45
+ }
35
46
  export class Transport {
36
47
  config;
37
48
  constructor(options) {
@@ -46,7 +57,7 @@ export class Transport {
46
57
  }
47
58
  scope(options, streaming) {
48
59
  assertKnownOptions(options);
49
- const timeoutMs = options.timeoutMs ?? this.config.timeoutMs;
60
+ const timeoutMs = options.timeoutMs ?? Math.max(this.config.timeoutMs, serverDeadlineMs(options));
50
61
  const maxRetries = options.maxRetries ?? this.config.maxRetries;
51
62
  this.validate(timeoutMs, maxRetries);
52
63
  const controller = new AbortController();