@soat/cli 0.5.5 → 0.5.6

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.
Files changed (2) hide show
  1. package/dist/esm/index.js +2249 -271
  2. package/package.json +3 -3
package/dist/esm/index.js CHANGED
@@ -16,12 +16,12 @@ import { program } from "commander";
16
16
  // package.json
17
17
  var package_default = {
18
18
  name: "@soat/cli",
19
- version: "0.5.5",
19
+ version: "0.5.6",
20
20
  type: "module",
21
21
  scripts: {
22
22
  generate: "tsx scripts/generate.ts",
23
23
  lint: "eslint src tests",
24
- test: "pnpm --filter @soat/sdk build && jest --config tests/unit/jest.config.ts --coverage=false",
24
+ test: "jest --config tests/unit/jest.config.ts --coverage=false",
25
25
  typecheck: "tsc --noEmit && tsc --noEmit -p tests/tsconfig.json",
26
26
  build: "pnpm generate && tsup"
27
27
  },
@@ -142,6 +142,22 @@ var resolveEnvRef = /* @__PURE__ */__name(args => {
142
142
  var agentFormationsWrapper = {
143
143
  id: "agent-formations-wrapper",
144
144
  commands: FORMATION_COMMANDS,
145
+ helpFlags: [{
146
+ name: "template-path",
147
+ description: "Path to template file (JSON or YAML). Alias: --template-file",
148
+ required: false,
149
+ type: "string"
150
+ }, {
151
+ name: "parameter",
152
+ description: "Template parameter in key=value format (repeatable). Values may reference env vars ($VAR)",
153
+ required: false,
154
+ type: "string"
155
+ }, {
156
+ name: "env-file",
157
+ description: "Path to .env file for parameter variable substitution",
158
+ required: false,
159
+ type: "string"
160
+ }],
145
161
  // eslint-disable-next-line complexity
146
162
  apply: /* @__PURE__ */__name(({
147
163
  context
@@ -287,6 +303,12 @@ var applyWrapperForCommand = /* @__PURE__ */__name(args => {
287
303
  }
288
304
  });
289
305
  }, "applyWrapperForCommand");
306
+ var getWrapperHelpFlags = /* @__PURE__ */__name(commandName => {
307
+ const wrapper = WRAPPERS.find(w => {
308
+ return w.commands.includes(commandName);
309
+ });
310
+ return wrapper?.helpFlags ?? [];
311
+ }, "getWrapperHelpFlags");
290
312
 
291
313
  // src/config.ts
292
314
  import * as fs2 from "fs";
@@ -345,940 +367,2870 @@ var routes = {
345
367
  "list-actors": {
346
368
  serviceClass: "Actors",
347
369
  operationId: "listActors",
348
- description: "List actors",
370
+ description: "Returns all actors the caller has access to. If projectId is provided, returns only actors in that project. project keys are scoped to a single project automatically. JWT users without projectId receive actors across all their accessible projects.",
371
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/actors",
349
372
  pathParams: [],
350
- queryParams: ["project_id", "external_id", "limit", "offset"]
373
+ queryParams: ["project_id", "external_id", "limit", "offset"],
374
+ flags: [{
375
+ "name": "project_id",
376
+ "description": "Project ID (optional)",
377
+ "required": false,
378
+ "type": "string",
379
+ "in": "query"
380
+ }, {
381
+ "name": "external_id",
382
+ "description": "External ID to filter by (e.g. WhatsApp phone number)",
383
+ "required": false,
384
+ "type": "string",
385
+ "in": "query"
386
+ }, {
387
+ "name": "limit",
388
+ "description": "Maximum number of results to return",
389
+ "required": false,
390
+ "type": "integer",
391
+ "in": "query"
392
+ }, {
393
+ "name": "offset",
394
+ "description": "Number of results to skip",
395
+ "required": false,
396
+ "type": "integer",
397
+ "in": "query"
398
+ }]
351
399
  },
352
400
  "create-actor": {
353
401
  serviceClass: "Actors",
354
402
  operationId: "createActor",
355
- description: "Create an actor",
403
+ description: "Creates a new actor. project keys automatically infer the project from the key's scope; JWT callers must supply projectId.",
404
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/actors",
356
405
  pathParams: [],
357
- queryParams: []
406
+ queryParams: [],
407
+ flags: [{
408
+ "name": "project_id",
409
+ "description": "Project ID. Required for JWT auth; omit when using an project key.",
410
+ "required": false,
411
+ "type": "string",
412
+ "in": "body"
413
+ }, {
414
+ "name": "name",
415
+ "description": "",
416
+ "required": true,
417
+ "type": "string",
418
+ "in": "body"
419
+ }, {
420
+ "name": "external_id",
421
+ "description": "Optional external identifier (e.g. WhatsApp phone number). If provided and an actor with this externalId already exists in the project, the existing actor is returned (idempotent \u2014 200 OK).",
422
+ "required": false,
423
+ "type": "string",
424
+ "in": "body"
425
+ }, {
426
+ "name": "memory_id",
427
+ "description": "Memory ID to link to this actor. Mutually exclusive with auto_create_memory.",
428
+ "required": false,
429
+ "type": "string",
430
+ "in": "body"
431
+ }, {
432
+ "name": "auto_create_memory",
433
+ "description": "When true, automatically creates a new memory container for this actor and links it. Ignored if memory_id is set. With external_id (idempotent), memory is only created on first creation.",
434
+ "required": false,
435
+ "type": "boolean",
436
+ "in": "body"
437
+ }]
358
438
  },
359
439
  "get-actor": {
360
440
  serviceClass: "Actors",
361
441
  operationId: "getActor",
362
- description: "Get an actor by ID",
442
+ description: "Returns an actor by its ID",
443
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/actors",
363
444
  pathParams: ["actor_id"],
364
- queryParams: []
445
+ queryParams: [],
446
+ flags: [{
447
+ "name": "actor_id",
448
+ "description": "Actor ID",
449
+ "required": true,
450
+ "type": "string",
451
+ "in": "path"
452
+ }]
365
453
  },
366
454
  "update-actor": {
367
455
  serviceClass: "Actors",
368
456
  operationId: "updateActor",
369
- description: "Update an actor",
457
+ description: "Updates an actor's properties",
458
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/actors",
370
459
  pathParams: ["actor_id"],
371
- queryParams: []
460
+ queryParams: [],
461
+ flags: [{
462
+ "name": "actor_id",
463
+ "description": "Actor ID",
464
+ "required": true,
465
+ "type": "string",
466
+ "in": "path"
467
+ }, {
468
+ "name": "name",
469
+ "description": "",
470
+ "required": false,
471
+ "type": "string",
472
+ "in": "body"
473
+ }, {
474
+ "name": "instructions",
475
+ "description": "Persona-specific instructions",
476
+ "required": false,
477
+ "type": "string",
478
+ "in": "body"
479
+ }, {
480
+ "name": "memory_id",
481
+ "description": "Memory ID to link to this actor. Set to null to unlink.",
482
+ "required": false,
483
+ "type": "string",
484
+ "in": "body"
485
+ }, {
486
+ "name": "tags",
487
+ "description": "",
488
+ "required": false,
489
+ "type": "object",
490
+ "in": "body"
491
+ }]
372
492
  },
373
493
  "delete-actor": {
374
494
  serviceClass: "Actors",
375
495
  operationId: "deleteActor",
376
- description: "Delete an actor",
496
+ description: "Deletes an actor by its ID",
497
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/actors",
377
498
  pathParams: ["actor_id"],
378
- queryParams: []
499
+ queryParams: [],
500
+ flags: [{
501
+ "name": "actor_id",
502
+ "description": "Actor ID",
503
+ "required": true,
504
+ "type": "string",
505
+ "in": "path"
506
+ }]
379
507
  },
380
508
  "get-actor-tags": {
381
509
  serviceClass: "Actors",
382
510
  operationId: "getActorTags",
383
- description: "Get actor tags",
511
+ description: "Returns all tags attached to the actor",
512
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/actors",
384
513
  pathParams: ["actor_id"],
385
- queryParams: []
514
+ queryParams: [],
515
+ flags: [{
516
+ "name": "actor_id",
517
+ "description": "Actor ID",
518
+ "required": true,
519
+ "type": "string",
520
+ "in": "path"
521
+ }]
386
522
  },
387
523
  "replace-actor-tags": {
388
524
  serviceClass: "Actors",
389
525
  operationId: "replaceActorTags",
390
- description: "Replace actor tags",
526
+ description: "Replaces all tags on the actor with the provided tags (not merged)",
527
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/actors",
391
528
  pathParams: ["actor_id"],
392
- queryParams: []
529
+ queryParams: [],
530
+ flags: [{
531
+ "name": "actor_id",
532
+ "description": "Actor ID",
533
+ "required": true,
534
+ "type": "string",
535
+ "in": "path"
536
+ }]
393
537
  },
394
538
  "merge-actor-tags": {
395
539
  serviceClass: "Actors",
396
540
  operationId: "mergeActorTags",
397
- description: "Merge actor tags",
541
+ description: "Merges provided tags with existing tags (existing tags are preserved unless overridden)",
542
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/actors",
398
543
  pathParams: ["actor_id"],
399
- queryParams: []
544
+ queryParams: [],
545
+ flags: [{
546
+ "name": "actor_id",
547
+ "description": "Actor ID",
548
+ "required": true,
549
+ "type": "string",
550
+ "in": "path"
551
+ }]
400
552
  },
401
553
  "validate-agent-formation": {
402
554
  serviceClass: "AgentFormations",
403
555
  operationId: "validateAgentFormation",
404
- description: "Validate a formation template",
556
+ description: "Validates a formation template without creating any resources. Returns a list of errors and warnings. Accepts the template as a JSON object or as a YAML/JSON string.",
557
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/agent-formations",
405
558
  pathParams: [],
406
- queryParams: []
559
+ queryParams: [],
560
+ flags: [{
561
+ "name": "template",
562
+ "description": "",
563
+ "required": true,
564
+ "type": "string",
565
+ "in": "body"
566
+ }]
407
567
  },
408
568
  "plan-agent-formation": {
409
569
  serviceClass: "AgentFormations",
410
570
  operationId: "planAgentFormation",
411
- description: "Plan a formation deployment",
571
+ description: "Computes a diff between the desired template and the current stack state without making any changes. Returns the list of planned actions.",
572
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/agent-formations",
412
573
  pathParams: [],
413
- queryParams: []
574
+ queryParams: [],
575
+ flags: [{
576
+ "name": "project_id",
577
+ "description": "Project ID",
578
+ "required": true,
579
+ "type": "string",
580
+ "in": "body"
581
+ }, {
582
+ "name": "formation_id",
583
+ "description": "Existing formation ID to compare against. Omit for new formation planning.",
584
+ "required": false,
585
+ "type": "string",
586
+ "in": "body"
587
+ }, {
588
+ "name": "template",
589
+ "description": "",
590
+ "required": true,
591
+ "type": "string",
592
+ "in": "body"
593
+ }, {
594
+ "name": "parameters",
595
+ "description": "Runtime parameter values that override or supply template parameter defaults. Keys must match parameter names declared in `template.parameters`.\n",
596
+ "required": false,
597
+ "type": "object",
598
+ "in": "body"
599
+ }]
414
600
  },
415
601
  "list-agent-formations": {
416
602
  serviceClass: "AgentFormations",
417
603
  operationId: "listAgentFormations",
418
- description: "List agent formations",
604
+ description: "Returns all formation stacks for a project",
605
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/agent-formations",
419
606
  pathParams: [],
420
- queryParams: ["project_id"]
607
+ queryParams: ["project_id"],
608
+ flags: [{
609
+ "name": "project_id",
610
+ "description": "Project ID (required if not using project key auth)",
611
+ "required": false,
612
+ "type": "string",
613
+ "in": "query"
614
+ }]
421
615
  },
422
616
  "create-agent-formation": {
423
617
  serviceClass: "AgentFormations",
424
618
  operationId: "createAgentFormation",
425
- description: "Create a new agent formation",
619
+ description: "Validates the template, creates the formation record, then provisions all declared resources in dependency order.",
620
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/agent-formations",
426
621
  pathParams: [],
427
- queryParams: []
622
+ queryParams: [],
623
+ flags: [{
624
+ "name": "project_id",
625
+ "description": "Project ID",
626
+ "required": true,
627
+ "type": "string",
628
+ "in": "body"
629
+ }, {
630
+ "name": "name",
631
+ "description": "Human-readable name for the formation stack",
632
+ "required": true,
633
+ "type": "string",
634
+ "in": "body"
635
+ }, {
636
+ "name": "template",
637
+ "description": "",
638
+ "required": true,
639
+ "type": "string",
640
+ "in": "body"
641
+ }, {
642
+ "name": "parameters",
643
+ "description": "Runtime parameter values that override or supply template parameter defaults. Keys must match parameter names declared in `template.parameters`. Required parameters (those without a default) must be provided here.\n",
644
+ "required": false,
645
+ "type": "object",
646
+ "in": "body"
647
+ }, {
648
+ "name": "metadata",
649
+ "description": "",
650
+ "required": false,
651
+ "type": "object",
652
+ "in": "body"
653
+ }]
428
654
  },
429
655
  "get-agent-formation": {
430
656
  serviceClass: "AgentFormations",
431
657
  operationId: "getAgentFormation",
432
- description: "Get a specific agent formation",
658
+ description: "Returns the formation stack including its current resources.",
659
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/agent-formations",
433
660
  pathParams: ["formation_id"],
434
- queryParams: []
661
+ queryParams: [],
662
+ flags: [{
663
+ "name": "formation_id",
664
+ "description": "",
665
+ "required": true,
666
+ "type": "string",
667
+ "in": "path"
668
+ }]
435
669
  },
436
670
  "update-agent-formation": {
437
671
  serviceClass: "AgentFormations",
438
672
  operationId: "updateAgentFormation",
439
- description: "Update an agent formation",
673
+ description: "Applies a new template to the formation. Resources are created, updated, or deleted to reconcile the current state with the desired state.",
674
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/agent-formations",
440
675
  pathParams: ["formation_id"],
441
- queryParams: []
676
+ queryParams: [],
677
+ flags: [{
678
+ "name": "formation_id",
679
+ "description": "",
680
+ "required": true,
681
+ "type": "string",
682
+ "in": "path"
683
+ }, {
684
+ "name": "template",
685
+ "description": "",
686
+ "required": false,
687
+ "type": "string",
688
+ "in": "body"
689
+ }, {
690
+ "name": "parameters",
691
+ "description": "Runtime parameter values that override or supply template parameter defaults. Keys must match parameter names declared in `template.parameters`. Required parameters (those without a default) must be provided here.\n",
692
+ "required": false,
693
+ "type": "object",
694
+ "in": "body"
695
+ }, {
696
+ "name": "metadata",
697
+ "description": "",
698
+ "required": false,
699
+ "type": "object",
700
+ "in": "body"
701
+ }]
442
702
  },
443
703
  "delete-agent-formation": {
444
704
  serviceClass: "AgentFormations",
445
705
  operationId: "deleteAgentFormation",
446
- description: "Delete an agent formation",
706
+ description: "Deletes the formation stack and all its managed resources in reverse dependency order.",
707
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/agent-formations",
447
708
  pathParams: ["formation_id"],
448
- queryParams: []
709
+ queryParams: [],
710
+ flags: [{
711
+ "name": "formation_id",
712
+ "description": "",
713
+ "required": true,
714
+ "type": "string",
715
+ "in": "path"
716
+ }]
449
717
  },
450
718
  "list-agent-formation-events": {
451
719
  serviceClass: "AgentFormations",
452
720
  operationId: "listAgentFormationEvents",
453
- description: "List formation operation events",
721
+ description: "Returns all operations (create, update, delete) with their event logs for the formation, ordered chronologically.",
722
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/agent-formations",
454
723
  pathParams: ["formation_id"],
455
- queryParams: []
724
+ queryParams: [],
725
+ flags: [{
726
+ "name": "formation_id",
727
+ "description": "",
728
+ "required": true,
729
+ "type": "string",
730
+ "in": "path"
731
+ }]
456
732
  },
457
733
  "list-agent-tools": {
458
734
  serviceClass: "AgentTools",
459
735
  operationId: "listAgentTools",
460
- description: "List agent tools",
736
+ description: "Returns all agent tools in the project.",
737
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/agents",
461
738
  pathParams: [],
462
- queryParams: ["project_id"]
739
+ queryParams: ["project_id"],
740
+ flags: [{
741
+ "name": "project_id",
742
+ "description": "Project public ID to filter by",
743
+ "required": false,
744
+ "type": "string",
745
+ "in": "query"
746
+ }]
463
747
  },
464
748
  "create-agent-tool": {
465
749
  serviceClass: "AgentTools",
466
750
  operationId: "createAgentTool",
467
- description: "Create an agent tool",
751
+ description: "Creates a new agent tool in the project.",
752
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/agents",
468
753
  pathParams: [],
469
- queryParams: []
754
+ queryParams: [],
755
+ flags: []
470
756
  },
471
757
  "get-agent-tool": {
472
758
  serviceClass: "AgentTools",
473
759
  operationId: "getAgentTool",
474
- description: "Get an agent tool",
760
+ description: "Returns a single agent tool by ID.",
761
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/agents",
475
762
  pathParams: ["tool_id"],
476
- queryParams: []
763
+ queryParams: [],
764
+ flags: [{
765
+ "name": "tool_id",
766
+ "description": "",
767
+ "required": true,
768
+ "type": "string",
769
+ "in": "path"
770
+ }]
477
771
  },
478
772
  "update-agent-tool": {
479
773
  serviceClass: "AgentTools",
480
774
  operationId: "updateAgentTool",
481
- description: "Update an agent tool",
775
+ description: "Updates an existing agent tool.",
776
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/agents",
482
777
  pathParams: ["tool_id"],
483
- queryParams: []
778
+ queryParams: [],
779
+ flags: [{
780
+ "name": "tool_id",
781
+ "description": "",
782
+ "required": true,
783
+ "type": "string",
784
+ "in": "path"
785
+ }]
484
786
  },
485
787
  "delete-agent-tool": {
486
788
  serviceClass: "AgentTools",
487
789
  operationId: "deleteAgentTool",
488
- description: "Delete an agent tool",
790
+ description: "Deletes an agent tool by ID.",
791
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/agents",
489
792
  pathParams: ["tool_id"],
490
- queryParams: []
793
+ queryParams: [],
794
+ flags: [{
795
+ "name": "tool_id",
796
+ "description": "",
797
+ "required": true,
798
+ "type": "string",
799
+ "in": "path"
800
+ }]
491
801
  },
492
802
  "list-agents": {
493
803
  serviceClass: "Agents",
494
804
  operationId: "listAgents",
495
- description: "List agents",
805
+ description: "Returns all agents in the project.",
806
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/agents",
496
807
  pathParams: [],
497
- queryParams: ["project_id"]
808
+ queryParams: ["project_id"],
809
+ flags: [{
810
+ "name": "project_id",
811
+ "description": "Project public ID to filter by",
812
+ "required": false,
813
+ "type": "string",
814
+ "in": "query"
815
+ }]
498
816
  },
499
817
  "create-agent": {
500
818
  serviceClass: "Agents",
501
819
  operationId: "createAgent",
502
- description: "Create an agent",
820
+ description: "Creates a new agent bound to an AI provider.",
821
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/agents",
503
822
  pathParams: [],
504
- queryParams: []
823
+ queryParams: [],
824
+ flags: []
505
825
  },
506
826
  "get-agent": {
507
827
  serviceClass: "Agents",
508
828
  operationId: "getAgent",
509
- description: "Get an agent",
829
+ description: "Returns a single agent by ID.",
830
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/agents",
510
831
  pathParams: ["agent_id"],
511
- queryParams: []
832
+ queryParams: [],
833
+ flags: [{
834
+ "name": "agent_id",
835
+ "description": "",
836
+ "required": true,
837
+ "type": "string",
838
+ "in": "path"
839
+ }]
512
840
  },
513
841
  "update-agent": {
514
842
  serviceClass: "Agents",
515
843
  operationId: "updateAgent",
516
- description: "Update an agent",
844
+ description: "Updates an existing agent.",
845
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/agents",
517
846
  pathParams: ["agent_id"],
518
- queryParams: []
847
+ queryParams: [],
848
+ flags: [{
849
+ "name": "agent_id",
850
+ "description": "",
851
+ "required": true,
852
+ "type": "string",
853
+ "in": "path"
854
+ }]
519
855
  },
520
856
  "delete-agent": {
521
857
  serviceClass: "Agents",
522
858
  operationId: "deleteAgent",
523
- description: "Delete an agent",
859
+ description: "Deletes an agent by ID.",
860
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/agents",
524
861
  pathParams: ["agent_id"],
525
- queryParams: []
862
+ queryParams: [],
863
+ flags: [{
864
+ "name": "agent_id",
865
+ "description": "",
866
+ "required": true,
867
+ "type": "string",
868
+ "in": "path"
869
+ }]
526
870
  },
527
871
  "create-agent-generation": {
528
872
  serviceClass: "Agents",
529
873
  operationId: "createAgentGeneration",
530
- description: "Run an agent generation",
874
+ description: "Sends messages to the agent, resolves its tools, and runs the AI model loop. Supports streaming via `stream: true`. Client tools pause the generation and return `requires_action`.",
875
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/agents",
531
876
  pathParams: ["agent_id"],
532
- queryParams: []
877
+ queryParams: [],
878
+ flags: [{
879
+ "name": "agent_id",
880
+ "description": "",
881
+ "required": true,
882
+ "type": "string",
883
+ "in": "path"
884
+ }]
533
885
  },
534
886
  "submit-agent-tool-outputs": {
535
887
  serviceClass: "Agents",
536
888
  operationId: "submitAgentToolOutputs",
537
- description: "Submit tool outputs for a paused generation",
889
+ description: "Resumes a generation that was paused due to client tool calls. Provide tool outputs for each pending tool call.",
890
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/agents",
538
891
  pathParams: ["agent_id", "generation_id"],
539
- queryParams: []
892
+ queryParams: [],
893
+ flags: [{
894
+ "name": "agent_id",
895
+ "description": "",
896
+ "required": true,
897
+ "type": "string",
898
+ "in": "path"
899
+ }, {
900
+ "name": "generation_id",
901
+ "description": "",
902
+ "required": true,
903
+ "type": "string",
904
+ "in": "path"
905
+ }]
540
906
  },
541
907
  "create-agent-actor": {
542
908
  serviceClass: "Agents",
543
909
  operationId: "createAgentActor",
544
- description: "Create an actor for an agent",
910
+ description: "Creates a new actor associated with the specified agent",
911
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/agents",
545
912
  pathParams: ["agent_id"],
546
- queryParams: []
913
+ queryParams: [],
914
+ flags: [{
915
+ "name": "agent_id",
916
+ "description": "Agent ID",
917
+ "required": true,
918
+ "type": "string",
919
+ "in": "path"
920
+ }, {
921
+ "name": "name",
922
+ "description": "",
923
+ "required": true,
924
+ "type": "string",
925
+ "in": "body"
926
+ }, {
927
+ "name": "type",
928
+ "description": "Optional actor type",
929
+ "required": false,
930
+ "type": "string",
931
+ "in": "body"
932
+ }, {
933
+ "name": "external_id",
934
+ "description": "Optional external identifier",
935
+ "required": false,
936
+ "type": "string",
937
+ "in": "body"
938
+ }, {
939
+ "name": "tags",
940
+ "description": "",
941
+ "required": false,
942
+ "type": "object",
943
+ "in": "body"
944
+ }]
547
945
  },
548
946
  "list-ai-providers": {
549
947
  serviceClass: "AIProviders",
550
948
  operationId: "listAiProviders",
551
- description: "List AI providers",
949
+ description: "Returns a list of AI provider configurations for a project",
950
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/ai-providers",
552
951
  pathParams: [],
553
- queryParams: ["project_id", "limit", "offset"]
952
+ queryParams: ["project_id", "limit", "offset"],
953
+ flags: [{
954
+ "name": "project_id",
955
+ "description": "Project ID (required if not using project key auth)",
956
+ "required": false,
957
+ "type": "string",
958
+ "in": "query"
959
+ }, {
960
+ "name": "limit",
961
+ "description": "Number of results per page",
962
+ "required": false,
963
+ "type": "integer",
964
+ "in": "query"
965
+ }, {
966
+ "name": "offset",
967
+ "description": "Number of results to skip",
968
+ "required": false,
969
+ "type": "integer",
970
+ "in": "query"
971
+ }]
554
972
  },
555
973
  "create-ai-provider": {
556
974
  serviceClass: "AIProviders",
557
975
  operationId: "createAiProvider",
558
- description: "Create an AI provider",
976
+ description: "Creates a new LLM provider configuration",
977
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/ai-providers",
559
978
  pathParams: [],
560
- queryParams: []
979
+ queryParams: [],
980
+ flags: [{
981
+ "name": "project_id",
982
+ "description": "Project ID (required if not using project key auth)",
983
+ "required": false,
984
+ "type": "string",
985
+ "in": "body"
986
+ }, {
987
+ "name": "name",
988
+ "description": "Provider configuration name",
989
+ "required": true,
990
+ "type": "string",
991
+ "in": "body"
992
+ }, {
993
+ "name": "provider",
994
+ "description": "LLM provider",
995
+ "required": true,
996
+ "type": "string",
997
+ "in": "body"
998
+ }, {
999
+ "name": "default_model",
1000
+ "description": "Default model to use",
1001
+ "required": true,
1002
+ "type": "string",
1003
+ "in": "body"
1004
+ }, {
1005
+ "name": "secret_id",
1006
+ "description": "Secret ID containing API credentials",
1007
+ "required": false,
1008
+ "type": "string",
1009
+ "in": "body"
1010
+ }, {
1011
+ "name": "base_url",
1012
+ "description": "Custom base URL for the provider",
1013
+ "required": false,
1014
+ "type": "string",
1015
+ "in": "body"
1016
+ }, {
1017
+ "name": "config",
1018
+ "description": "Additional provider-specific configuration",
1019
+ "required": false,
1020
+ "type": "object",
1021
+ "in": "body"
1022
+ }]
561
1023
  },
562
1024
  "get-ai-provider": {
563
1025
  serviceClass: "AIProviders",
564
1026
  operationId: "getAiProvider",
565
- description: "Get an AI provider",
1027
+ description: "Returns a specific AI provider configuration",
1028
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/ai-providers",
566
1029
  pathParams: ["ai_provider_id"],
567
- queryParams: []
1030
+ queryParams: [],
1031
+ flags: [{
1032
+ "name": "ai_provider_id",
1033
+ "description": "AI Provider ID",
1034
+ "required": true,
1035
+ "type": "string",
1036
+ "in": "path"
1037
+ }]
568
1038
  },
569
1039
  "update-ai-provider": {
570
1040
  serviceClass: "AIProviders",
571
1041
  operationId: "updateAiProvider",
572
- description: "Update an AI provider",
1042
+ description: "Updates an AI provider configuration",
1043
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/ai-providers",
573
1044
  pathParams: ["ai_provider_id"],
574
- queryParams: []
1045
+ queryParams: [],
1046
+ flags: [{
1047
+ "name": "ai_provider_id",
1048
+ "description": "AI Provider ID",
1049
+ "required": true,
1050
+ "type": "string",
1051
+ "in": "path"
1052
+ }, {
1053
+ "name": "name",
1054
+ "description": "",
1055
+ "required": false,
1056
+ "type": "string",
1057
+ "in": "body"
1058
+ }, {
1059
+ "name": "default_model",
1060
+ "description": "",
1061
+ "required": false,
1062
+ "type": "string",
1063
+ "in": "body"
1064
+ }, {
1065
+ "name": "secret_id",
1066
+ "description": "",
1067
+ "required": false,
1068
+ "type": "string",
1069
+ "in": "body"
1070
+ }, {
1071
+ "name": "base_url",
1072
+ "description": "",
1073
+ "required": false,
1074
+ "type": "string",
1075
+ "in": "body"
1076
+ }, {
1077
+ "name": "config",
1078
+ "description": "",
1079
+ "required": false,
1080
+ "type": "object",
1081
+ "in": "body"
1082
+ }]
575
1083
  },
576
1084
  "delete-ai-provider": {
577
1085
  serviceClass: "AIProviders",
578
1086
  operationId: "deleteAiProvider",
579
- description: "Delete an AI provider",
1087
+ description: "Deletes an AI provider configuration",
1088
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/ai-providers",
580
1089
  pathParams: ["ai_provider_id"],
581
- queryParams: []
1090
+ queryParams: [],
1091
+ flags: [{
1092
+ "name": "ai_provider_id",
1093
+ "description": "AI Provider ID",
1094
+ "required": true,
1095
+ "type": "string",
1096
+ "in": "path"
1097
+ }]
582
1098
  },
583
1099
  "list-api-keys": {
584
1100
  serviceClass: "APIKeys",
585
1101
  operationId: "listApiKeys",
586
- description: "List API keys",
1102
+ description: "Lists API keys accessible to the caller. - JWT admin: returns all API keys. - JWT regular user: returns only the user's own API keys. - API key scoped to a project: returns only API keys scoped to that project.",
1103
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/api-keys",
587
1104
  pathParams: [],
588
- queryParams: []
1105
+ queryParams: [],
1106
+ flags: []
589
1107
  },
590
1108
  "create-api-key": {
591
1109
  serviceClass: "APIKeys",
592
1110
  operationId: "createApiKey",
593
- description: "Create an API key",
1111
+ description: "Creates a new API key for the authenticated user. - If `project_id` is provided, the key is scoped to that project. - If `policy_ids` is provided, the key's effective permissions are the intersection of the user's policies and the key's policies. - If neither is provided, the key inherits the user's full permissions.",
1112
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/api-keys",
594
1113
  pathParams: [],
595
- queryParams: []
1114
+ queryParams: [],
1115
+ flags: [{
1116
+ "name": "name",
1117
+ "description": "Key name for identification",
1118
+ "required": true,
1119
+ "type": "string",
1120
+ "in": "body"
1121
+ }, {
1122
+ "name": "project_id",
1123
+ "description": "Optional project ID to scope this key to a specific project",
1124
+ "required": false,
1125
+ "type": "string",
1126
+ "in": "body"
1127
+ }, {
1128
+ "name": "policy_ids",
1129
+ "description": "Optional list of policy IDs to attach. Key permissions become the intersection of user policies and these policies.",
1130
+ "required": false,
1131
+ "type": "array",
1132
+ "in": "body"
1133
+ }]
596
1134
  },
597
1135
  "get-api-key": {
598
1136
  serviceClass: "APIKeys",
599
1137
  operationId: "getApiKey",
600
- description: "Get an API key",
1138
+ description: "Returns details of an API key. Only the owner or an admin can access it.",
1139
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/api-keys",
601
1140
  pathParams: ["api_key_id"],
602
- queryParams: []
1141
+ queryParams: [],
1142
+ flags: [{
1143
+ "name": "api_key_id",
1144
+ "description": "API key public ID (key_ prefix)",
1145
+ "required": true,
1146
+ "type": "string",
1147
+ "in": "path"
1148
+ }]
603
1149
  },
604
1150
  "update-api-key": {
605
1151
  serviceClass: "APIKeys",
606
1152
  operationId: "updateApiKey",
607
- description: "Update an API key",
1153
+ description: "Updates an API key's name, project scope, or policies. Only the owner or an admin can update it.",
1154
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/api-keys",
608
1155
  pathParams: ["api_key_id"],
609
- queryParams: []
1156
+ queryParams: [],
1157
+ flags: [{
1158
+ "name": "api_key_id",
1159
+ "description": "API key public ID (key_ prefix)",
1160
+ "required": true,
1161
+ "type": "string",
1162
+ "in": "path"
1163
+ }, {
1164
+ "name": "name",
1165
+ "description": "",
1166
+ "required": false,
1167
+ "type": "string",
1168
+ "in": "body"
1169
+ }, {
1170
+ "name": "project_id",
1171
+ "description": "Set to null to remove project scope",
1172
+ "required": false,
1173
+ "type": "string",
1174
+ "in": "body"
1175
+ }, {
1176
+ "name": "policy_ids",
1177
+ "description": "Replace the key's policy list (empty array removes all)",
1178
+ "required": false,
1179
+ "type": "array",
1180
+ "in": "body"
1181
+ }]
610
1182
  },
611
1183
  "delete-api-key": {
612
1184
  serviceClass: "APIKeys",
613
1185
  operationId: "deleteApiKey",
614
- description: "Delete an API key",
1186
+ description: "Deletes an API key. Only the owner or an admin can delete it.",
1187
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/api-keys",
615
1188
  pathParams: ["api_key_id"],
616
- queryParams: []
1189
+ queryParams: [],
1190
+ flags: [{
1191
+ "name": "api_key_id",
1192
+ "description": "API key public ID (key_ prefix)",
1193
+ "required": true,
1194
+ "type": "string",
1195
+ "in": "path"
1196
+ }]
617
1197
  },
618
1198
  "list-chats": {
619
1199
  serviceClass: "Chats",
620
1200
  operationId: "listChats",
621
- description: "List chats",
1201
+ description: "Returns all chats in the project.",
1202
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/chats",
622
1203
  pathParams: [],
623
- queryParams: ["project_id"]
1204
+ queryParams: ["project_id"],
1205
+ flags: [{
1206
+ "name": "project_id",
1207
+ "description": "Project public ID to filter by",
1208
+ "required": false,
1209
+ "type": "string",
1210
+ "in": "query"
1211
+ }]
624
1212
  },
625
1213
  "create-chat": {
626
1214
  serviceClass: "Chats",
627
1215
  operationId: "createChat",
628
- description: "Create a chat",
1216
+ description: "Creates a new chat resource bound to an AI provider.",
1217
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/chats",
629
1218
  pathParams: [],
630
- queryParams: []
1219
+ queryParams: [],
1220
+ flags: []
631
1221
  },
632
1222
  "get-chat": {
633
1223
  serviceClass: "Chats",
634
1224
  operationId: "getChat",
635
- description: "Get a chat",
1225
+ description: "Returns a single chat by ID.",
1226
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/chats",
636
1227
  pathParams: ["chat_id"],
637
- queryParams: []
1228
+ queryParams: [],
1229
+ flags: [{
1230
+ "name": "chat_id",
1231
+ "description": "",
1232
+ "required": true,
1233
+ "type": "string",
1234
+ "in": "path"
1235
+ }]
638
1236
  },
639
1237
  "delete-chat": {
640
1238
  serviceClass: "Chats",
641
1239
  operationId: "deleteChat",
642
- description: "Delete a chat",
1240
+ description: "Deletes a chat by ID.",
1241
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/chats",
643
1242
  pathParams: ["chat_id"],
644
- queryParams: []
1243
+ queryParams: [],
1244
+ flags: [{
1245
+ "name": "chat_id",
1246
+ "description": "",
1247
+ "required": true,
1248
+ "type": "string",
1249
+ "in": "path"
1250
+ }]
645
1251
  },
646
1252
  "create-chat-completion-for-chat": {
647
1253
  serviceClass: "Chats",
648
1254
  operationId: "createChatCompletionForChat",
649
- description: "Create a chat completion for a stored chat",
1255
+ description: "Runs a completion using the AI provider and settings stored in the chat. Pass `stream: true` for SSE streaming. A system message in `messages` overrides the chat's stored system message for this call only. Messages may use `documentId` instead of `content`.",
1256
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/chats",
650
1257
  pathParams: ["chat_id"],
651
- queryParams: []
1258
+ queryParams: [],
1259
+ flags: [{
1260
+ "name": "chat_id",
1261
+ "description": "",
1262
+ "required": true,
1263
+ "type": "string",
1264
+ "in": "path"
1265
+ }]
652
1266
  },
653
1267
  "create-chat-completion": {
654
1268
  serviceClass: "Chats",
655
1269
  operationId: "createChatCompletion",
656
- description: "Create a chat completion (stateless)",
1270
+ description: "OpenAI Chat Completions-compatible endpoint. Resolves the AI provider from `ai_provider_id`, decrypts its secret, and calls the appropriate Vercel AI SDK provider. `ai_provider_id` is required \u2014 there is no server-side model fallback.",
1271
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/chats",
657
1272
  pathParams: [],
658
- queryParams: []
1273
+ queryParams: [],
1274
+ flags: []
659
1275
  },
660
1276
  "create-chat-actor": {
661
1277
  serviceClass: "Chats",
662
1278
  operationId: "createChatActor",
663
- description: "Create an actor for a chat",
1279
+ description: "Creates a new actor associated with the specified chat",
1280
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/chats",
664
1281
  pathParams: ["chat_id"],
665
- queryParams: []
1282
+ queryParams: [],
1283
+ flags: [{
1284
+ "name": "chat_id",
1285
+ "description": "Chat ID",
1286
+ "required": true,
1287
+ "type": "string",
1288
+ "in": "path"
1289
+ }, {
1290
+ "name": "name",
1291
+ "description": "",
1292
+ "required": true,
1293
+ "type": "string",
1294
+ "in": "body"
1295
+ }, {
1296
+ "name": "type",
1297
+ "description": "Optional actor type",
1298
+ "required": false,
1299
+ "type": "string",
1300
+ "in": "body"
1301
+ }, {
1302
+ "name": "external_id",
1303
+ "description": "Optional external identifier",
1304
+ "required": false,
1305
+ "type": "string",
1306
+ "in": "body"
1307
+ }, {
1308
+ "name": "tags",
1309
+ "description": "",
1310
+ "required": false,
1311
+ "type": "object",
1312
+ "in": "body"
1313
+ }]
666
1314
  },
667
1315
  "list-conversations": {
668
1316
  serviceClass: "Conversations",
669
1317
  operationId: "listConversations",
670
- description: "List conversations",
1318
+ description: "Returns all conversations the caller has access to. If projectId is provided, returns only conversations in that project. project keys are scoped to a single project automatically.",
1319
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/conversations",
671
1320
  pathParams: [],
672
- queryParams: ["project_id", "actor_id", "limit", "offset"]
1321
+ queryParams: ["project_id", "actor_id", "limit", "offset"],
1322
+ flags: [{
1323
+ "name": "project_id",
1324
+ "description": "Project ID (optional)",
1325
+ "required": false,
1326
+ "type": "string",
1327
+ "in": "query"
1328
+ }, {
1329
+ "name": "actor_id",
1330
+ "description": "Filter by actor ID",
1331
+ "required": false,
1332
+ "type": "string",
1333
+ "in": "query"
1334
+ }, {
1335
+ "name": "limit",
1336
+ "description": "Maximum number of results to return",
1337
+ "required": false,
1338
+ "type": "integer",
1339
+ "in": "query"
1340
+ }, {
1341
+ "name": "offset",
1342
+ "description": "Number of results to skip",
1343
+ "required": false,
1344
+ "type": "integer",
1345
+ "in": "query"
1346
+ }]
673
1347
  },
674
1348
  "create-conversation": {
675
1349
  serviceClass: "Conversations",
676
1350
  operationId: "createConversation",
677
- description: "Create a conversation",
1351
+ description: "Creates a new conversation. project keys automatically infer the project from the key's scope; JWT callers must supply projectId.",
1352
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/conversations",
678
1353
  pathParams: [],
679
- queryParams: []
1354
+ queryParams: [],
1355
+ flags: [{
1356
+ "name": "project_id",
1357
+ "description": "Project ID. Required for JWT auth; omit when using an project key.",
1358
+ "required": false,
1359
+ "type": "string",
1360
+ "in": "body"
1361
+ }, {
1362
+ "name": "status",
1363
+ "description": "Initial conversation status",
1364
+ "required": false,
1365
+ "type": "string",
1366
+ "in": "body"
1367
+ }, {
1368
+ "name": "name",
1369
+ "description": "Optional name for the conversation",
1370
+ "required": false,
1371
+ "type": "string",
1372
+ "in": "body"
1373
+ }, {
1374
+ "name": "actor_id",
1375
+ "description": "Actor ID to associate with this conversation",
1376
+ "required": false,
1377
+ "type": "string",
1378
+ "in": "body"
1379
+ }]
680
1380
  },
681
1381
  "get-conversation": {
682
1382
  serviceClass: "Conversations",
683
1383
  operationId: "getConversation",
684
- description: "Get a conversation by ID",
1384
+ description: "Returns a conversation by its ID",
1385
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/conversations",
685
1386
  pathParams: ["conversation_id"],
686
- queryParams: []
1387
+ queryParams: [],
1388
+ flags: [{
1389
+ "name": "conversation_id",
1390
+ "description": "Conversation ID",
1391
+ "required": true,
1392
+ "type": "string",
1393
+ "in": "path"
1394
+ }]
687
1395
  },
688
1396
  "update-conversation": {
689
1397
  serviceClass: "Conversations",
690
1398
  operationId: "updateConversation",
691
- description: "Update a conversation",
1399
+ description: "Updates the status of a conversation",
1400
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/conversations",
692
1401
  pathParams: ["conversation_id"],
693
- queryParams: []
1402
+ queryParams: [],
1403
+ flags: [{
1404
+ "name": "conversation_id",
1405
+ "description": "Conversation ID",
1406
+ "required": true,
1407
+ "type": "string",
1408
+ "in": "path"
1409
+ }, {
1410
+ "name": "status",
1411
+ "description": "New conversation status",
1412
+ "required": true,
1413
+ "type": "string",
1414
+ "in": "body"
1415
+ }]
694
1416
  },
695
1417
  "delete-conversation": {
696
1418
  serviceClass: "Conversations",
697
1419
  operationId: "deleteConversation",
698
- description: "Delete a conversation",
1420
+ description: "Deletes a conversation by its ID",
1421
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/conversations",
699
1422
  pathParams: ["conversation_id"],
700
- queryParams: []
1423
+ queryParams: [],
1424
+ flags: [{
1425
+ "name": "conversation_id",
1426
+ "description": "Conversation ID",
1427
+ "required": true,
1428
+ "type": "string",
1429
+ "in": "path"
1430
+ }]
701
1431
  },
702
1432
  "list-conversation-messages": {
703
1433
  serviceClass: "Conversations",
704
1434
  operationId: "listConversationMessages",
705
- description: "List conversation messages",
1435
+ description: "Returns all messages (documents) attached to a conversation, ordered by position",
1436
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/conversations",
706
1437
  pathParams: ["conversation_id"],
707
- queryParams: ["limit", "offset"]
1438
+ queryParams: ["limit", "offset"],
1439
+ flags: [{
1440
+ "name": "conversation_id",
1441
+ "description": "Conversation ID",
1442
+ "required": true,
1443
+ "type": "string",
1444
+ "in": "path"
1445
+ }, {
1446
+ "name": "limit",
1447
+ "description": "Maximum number of results to return",
1448
+ "required": false,
1449
+ "type": "integer",
1450
+ "in": "query"
1451
+ }, {
1452
+ "name": "offset",
1453
+ "description": "Number of results to skip",
1454
+ "required": false,
1455
+ "type": "integer",
1456
+ "in": "query"
1457
+ }]
708
1458
  },
709
1459
  "add-conversation-message": {
710
1460
  serviceClass: "Conversations",
711
1461
  operationId: "addConversationMessage",
712
- description: "Add a message to a conversation",
1462
+ description: "Creates a document from the message text and attaches it to the conversation at the given position. If position is omitted, it is appended at the end.",
1463
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/conversations",
713
1464
  pathParams: ["conversation_id"],
714
- queryParams: []
1465
+ queryParams: [],
1466
+ flags: [{
1467
+ "name": "conversation_id",
1468
+ "description": "Conversation ID",
1469
+ "required": true,
1470
+ "type": "string",
1471
+ "in": "path"
1472
+ }, {
1473
+ "name": "message",
1474
+ "description": "Message text content to add to the conversation",
1475
+ "required": true,
1476
+ "type": "string",
1477
+ "in": "body"
1478
+ }, {
1479
+ "name": "role",
1480
+ "description": "Role of the message sender",
1481
+ "required": true,
1482
+ "type": "string",
1483
+ "in": "body"
1484
+ }, {
1485
+ "name": "actor_id",
1486
+ "description": "Optional actor ID to associate with this message (user identity)",
1487
+ "required": false,
1488
+ "type": "string",
1489
+ "in": "body"
1490
+ }, {
1491
+ "name": "position",
1492
+ "description": "Zero-based position. Defaults to MAX+1 (append).",
1493
+ "required": false,
1494
+ "type": "integer",
1495
+ "in": "body"
1496
+ }, {
1497
+ "name": "metadata",
1498
+ "description": "Optional structured metadata to attach to the message (e.g. phone number, channel). Stored as-is and injected into the AI prompt context.",
1499
+ "required": false,
1500
+ "type": "object",
1501
+ "in": "body"
1502
+ }]
715
1503
  },
716
1504
  "generate-conversation-message": {
717
1505
  serviceClass: "Conversations",
718
1506
  operationId: "generateConversationMessage",
719
- description: "Generate the next message in a conversation",
1507
+ description: "Generates the next message using the specified actor's linked agent or chat. On `completed`, the reply is persisted as a new ConversationMessage authored by that actor. On `requires_action`, nothing is persisted; the caller must submit tool outputs via the Agents module and re-invoke generate.",
1508
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/conversations",
720
1509
  pathParams: ["conversation_id"],
721
- queryParams: []
1510
+ queryParams: [],
1511
+ flags: [{
1512
+ "name": "conversation_id",
1513
+ "description": "",
1514
+ "required": true,
1515
+ "type": "string",
1516
+ "in": "path"
1517
+ }, {
1518
+ "name": "agent_id",
1519
+ "description": "ID of the agent that will produce the next message.",
1520
+ "required": true,
1521
+ "type": "string",
1522
+ "in": "body"
1523
+ }, {
1524
+ "name": "model",
1525
+ "description": "Optional model override.",
1526
+ "required": false,
1527
+ "type": "string",
1528
+ "in": "body"
1529
+ }, {
1530
+ "name": "stream",
1531
+ "description": "If true, stream tokens via SSE. NOT IMPLEMENTED in v1 \u2014 returns 501.",
1532
+ "required": false,
1533
+ "type": "boolean",
1534
+ "in": "body"
1535
+ }, {
1536
+ "name": "tool_context",
1537
+ "description": "Key-value pairs injected as context headers into all tool call requests made during this generation.",
1538
+ "required": false,
1539
+ "type": "object",
1540
+ "in": "body"
1541
+ }]
722
1542
  },
723
1543
  "list-conversation-actors": {
724
1544
  serviceClass: "Conversations",
725
1545
  operationId: "listConversationActors",
726
- description: "List actors in a conversation",
1546
+ description: "Returns all distinct actors who have sent at least one message in the conversation",
1547
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/conversations",
727
1548
  pathParams: ["conversation_id"],
728
- queryParams: []
1549
+ queryParams: [],
1550
+ flags: [{
1551
+ "name": "conversation_id",
1552
+ "description": "Conversation ID",
1553
+ "required": true,
1554
+ "type": "string",
1555
+ "in": "path"
1556
+ }]
729
1557
  },
730
1558
  "remove-conversation-message": {
731
1559
  serviceClass: "Conversations",
732
1560
  operationId: "removeConversationMessage",
733
- description: "Remove a message from a conversation",
1561
+ description: "Removes a document from a conversation",
1562
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/conversations",
734
1563
  pathParams: ["conversation_id", "document_id"],
735
- queryParams: []
1564
+ queryParams: [],
1565
+ flags: [{
1566
+ "name": "conversation_id",
1567
+ "description": "Conversation ID",
1568
+ "required": true,
1569
+ "type": "string",
1570
+ "in": "path"
1571
+ }, {
1572
+ "name": "document_id",
1573
+ "description": "Document ID",
1574
+ "required": true,
1575
+ "type": "string",
1576
+ "in": "path"
1577
+ }]
736
1578
  },
737
1579
  "get-conversation-tags": {
738
1580
  serviceClass: "Conversations",
739
1581
  operationId: "getConversationTags",
740
- description: "Get conversation tags",
1582
+ description: "Returns all tags attached to the conversation",
1583
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/conversations",
741
1584
  pathParams: ["conversation_id"],
742
- queryParams: []
1585
+ queryParams: [],
1586
+ flags: [{
1587
+ "name": "conversation_id",
1588
+ "description": "Conversation ID",
1589
+ "required": true,
1590
+ "type": "string",
1591
+ "in": "path"
1592
+ }]
743
1593
  },
744
1594
  "replace-conversation-tags": {
745
1595
  serviceClass: "Conversations",
746
1596
  operationId: "replaceConversationTags",
747
- description: "Replace conversation tags",
1597
+ description: "Replaces all tags on the conversation with the provided tags",
1598
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/conversations",
748
1599
  pathParams: ["conversation_id"],
749
- queryParams: []
1600
+ queryParams: [],
1601
+ flags: [{
1602
+ "name": "conversation_id",
1603
+ "description": "Conversation ID",
1604
+ "required": true,
1605
+ "type": "string",
1606
+ "in": "path"
1607
+ }]
750
1608
  },
751
1609
  "merge-conversation-tags": {
752
1610
  serviceClass: "Conversations",
753
1611
  operationId: "mergeConversationTags",
754
- description: "Merge conversation tags",
1612
+ description: "Merges provided tags with existing tags",
1613
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/conversations",
755
1614
  pathParams: ["conversation_id"],
756
- queryParams: []
1615
+ queryParams: [],
1616
+ flags: [{
1617
+ "name": "conversation_id",
1618
+ "description": "Conversation ID",
1619
+ "required": true,
1620
+ "type": "string",
1621
+ "in": "path"
1622
+ }]
757
1623
  },
758
1624
  "list-documents": {
759
1625
  serviceClass: "Documents",
760
1626
  operationId: "listDocuments",
761
- description: "List documents",
1627
+ description: "Returns all documents the caller has access to. If projectId is provided, returns only documents in that project. project keys are scoped to a single project automatically. JWT users without projectId receive documents across all their accessible projects.",
1628
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/documents",
762
1629
  pathParams: [],
763
- queryParams: ["project_id"]
1630
+ queryParams: ["project_id"],
1631
+ flags: [{
1632
+ "name": "project_id",
1633
+ "description": "Project ID (optional)",
1634
+ "required": false,
1635
+ "type": "string",
1636
+ "in": "query"
1637
+ }]
764
1638
  },
765
1639
  "create-document": {
766
1640
  serviceClass: "Documents",
767
1641
  operationId: "createDocument",
768
- description: "Create a document",
1642
+ description: "Creates a new text document and generates an embedding vector for semantic search. project keys automatically infer the project from the key's scope; JWT callers must supply projectId.",
1643
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/documents",
769
1644
  pathParams: [],
770
- queryParams: []
1645
+ queryParams: [],
1646
+ flags: [{
1647
+ "name": "project_id",
1648
+ "description": "Project ID. Required for JWT auth; omit when using an project key.",
1649
+ "required": false,
1650
+ "type": "string",
1651
+ "in": "body"
1652
+ }, {
1653
+ "name": "content",
1654
+ "description": "",
1655
+ "required": true,
1656
+ "type": "string",
1657
+ "in": "body"
1658
+ }, {
1659
+ "name": "path",
1660
+ "description": "Logical path within the project (e.g. /reports/q1.txt). Defaults to /filename if omitted.",
1661
+ "required": false,
1662
+ "type": "string",
1663
+ "in": "body"
1664
+ }, {
1665
+ "name": "filename",
1666
+ "description": "",
1667
+ "required": false,
1668
+ "type": "string",
1669
+ "in": "body"
1670
+ }]
771
1671
  },
772
1672
  "get-document": {
773
1673
  serviceClass: "Documents",
774
1674
  operationId: "getDocument",
775
- description: "Get a document by ID",
1675
+ description: "Returns a document with its text content",
1676
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/documents",
776
1677
  pathParams: ["document_id"],
777
- queryParams: []
1678
+ queryParams: [],
1679
+ flags: [{
1680
+ "name": "document_id",
1681
+ "description": "Document ID",
1682
+ "required": true,
1683
+ "type": "string",
1684
+ "in": "path"
1685
+ }]
778
1686
  },
779
1687
  "update-document": {
780
1688
  serviceClass: "Documents",
781
1689
  operationId: "updateDocument",
782
- description: "Update a document",
1690
+ description: "Updates document content, title, path, metadata, or tags. Supplying `path` moves the document to a new logical path within the project.",
1691
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/documents",
783
1692
  pathParams: ["document_id"],
784
- queryParams: []
1693
+ queryParams: [],
1694
+ flags: [{
1695
+ "name": "document_id",
1696
+ "description": "Document ID",
1697
+ "required": true,
1698
+ "type": "string",
1699
+ "in": "path"
1700
+ }, {
1701
+ "name": "content",
1702
+ "description": "New text content",
1703
+ "required": false,
1704
+ "type": "string",
1705
+ "in": "body"
1706
+ }, {
1707
+ "name": "title",
1708
+ "description": "New title",
1709
+ "required": false,
1710
+ "type": "string",
1711
+ "in": "body"
1712
+ }, {
1713
+ "name": "path",
1714
+ "description": "Logical path within the project (e.g. /reports/q1.txt). Pass null to clear.",
1715
+ "required": false,
1716
+ "type": "string",
1717
+ "in": "body"
1718
+ }, {
1719
+ "name": "metadata",
1720
+ "description": "Arbitrary metadata object",
1721
+ "required": false,
1722
+ "type": "object",
1723
+ "in": "body"
1724
+ }, {
1725
+ "name": "tags",
1726
+ "description": "Key-value tags",
1727
+ "required": false,
1728
+ "type": "object",
1729
+ "in": "body"
1730
+ }]
785
1731
  },
786
1732
  "delete-document": {
787
1733
  serviceClass: "Documents",
788
1734
  operationId: "deleteDocument",
789
- description: "Delete a document",
1735
+ description: "Deletes a document and its underlying file",
1736
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/documents",
790
1737
  pathParams: ["document_id"],
791
- queryParams: []
1738
+ queryParams: [],
1739
+ flags: [{
1740
+ "name": "document_id",
1741
+ "description": "Document ID",
1742
+ "required": true,
1743
+ "type": "string",
1744
+ "in": "path"
1745
+ }]
792
1746
  },
793
1747
  "get-document-tags": {
794
1748
  serviceClass: "Documents",
795
1749
  operationId: "getDocumentTags",
796
- description: "Get document tags",
1750
+ description: "Returns all tags attached to the document",
1751
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/documents",
797
1752
  pathParams: ["document_id"],
798
- queryParams: []
1753
+ queryParams: [],
1754
+ flags: [{
1755
+ "name": "document_id",
1756
+ "description": "Document ID",
1757
+ "required": true,
1758
+ "type": "string",
1759
+ "in": "path"
1760
+ }]
799
1761
  },
800
1762
  "replace-document-tags": {
801
1763
  serviceClass: "Documents",
802
1764
  operationId: "replaceDocumentTags",
803
- description: "Replace document tags",
1765
+ description: "Replaces all tags on the document with the provided tags (not merged)",
1766
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/documents",
804
1767
  pathParams: ["document_id"],
805
- queryParams: []
1768
+ queryParams: [],
1769
+ flags: [{
1770
+ "name": "document_id",
1771
+ "description": "Document ID",
1772
+ "required": true,
1773
+ "type": "string",
1774
+ "in": "path"
1775
+ }]
806
1776
  },
807
1777
  "merge-document-tags": {
808
1778
  serviceClass: "Documents",
809
1779
  operationId: "mergeDocumentTags",
810
- description: "Merge document tags",
1780
+ description: "Merges provided tags with existing tags (existing tags are preserved unless overridden)",
1781
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/documents",
811
1782
  pathParams: ["document_id"],
812
- queryParams: []
1783
+ queryParams: [],
1784
+ flags: [{
1785
+ "name": "document_id",
1786
+ "description": "Document ID",
1787
+ "required": true,
1788
+ "type": "string",
1789
+ "in": "path"
1790
+ }]
813
1791
  },
814
1792
  "list-files": {
815
1793
  serviceClass: "Files",
816
1794
  operationId: "listFiles",
817
- description: "List all files",
1795
+ description: "Returns a list of all stored files",
1796
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/files",
818
1797
  pathParams: [],
819
- queryParams: ["project_id", "limit", "offset"]
1798
+ queryParams: ["project_id", "limit", "offset"],
1799
+ flags: [{
1800
+ "name": "project_id",
1801
+ "description": "Filter files by project ID",
1802
+ "required": false,
1803
+ "type": "string",
1804
+ "in": "query"
1805
+ }, {
1806
+ "name": "limit",
1807
+ "description": "Maximum number of results to return",
1808
+ "required": false,
1809
+ "type": "integer",
1810
+ "in": "query"
1811
+ }, {
1812
+ "name": "offset",
1813
+ "description": "Number of results to skip",
1814
+ "required": false,
1815
+ "type": "integer",
1816
+ "in": "query"
1817
+ }]
820
1818
  },
821
1819
  "create-file": {
822
1820
  serviceClass: "Files",
823
1821
  operationId: "createFile",
824
- description: "Create a file",
1822
+ description: "Creates a new file record in the system",
1823
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/files",
825
1824
  pathParams: [],
826
- queryParams: []
1825
+ queryParams: [],
1826
+ flags: [{
1827
+ "name": "project_id",
1828
+ "description": "Public ID of the project",
1829
+ "required": true,
1830
+ "type": "string",
1831
+ "in": "body"
1832
+ }, {
1833
+ "name": "path",
1834
+ "description": "Logical path within the project (e.g. /images/logo.png). Defaults to /filename if omitted.",
1835
+ "required": false,
1836
+ "type": "string",
1837
+ "in": "body"
1838
+ }, {
1839
+ "name": "filename",
1840
+ "description": "Name of the file",
1841
+ "required": false,
1842
+ "type": "string",
1843
+ "in": "body"
1844
+ }, {
1845
+ "name": "content_type",
1846
+ "description": "MIME type of the file",
1847
+ "required": false,
1848
+ "type": "string",
1849
+ "in": "body"
1850
+ }, {
1851
+ "name": "size",
1852
+ "description": "File size in bytes",
1853
+ "required": false,
1854
+ "type": "integer",
1855
+ "in": "body"
1856
+ }, {
1857
+ "name": "storage_type",
1858
+ "description": "Storage backend type",
1859
+ "required": true,
1860
+ "type": "string",
1861
+ "in": "body"
1862
+ }, {
1863
+ "name": "storage_path",
1864
+ "description": "Path where the file is stored",
1865
+ "required": true,
1866
+ "type": "string",
1867
+ "in": "body"
1868
+ }, {
1869
+ "name": "metadata",
1870
+ "description": "JSON string with additional metadata",
1871
+ "required": false,
1872
+ "type": "string",
1873
+ "in": "body"
1874
+ }]
827
1875
  },
828
1876
  "upload-file": {
829
1877
  serviceClass: "Files",
830
1878
  operationId: "uploadFile",
831
- description: "Upload a file",
1879
+ description: "Uploads a file to the server and stores it in the configured storage directory",
1880
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/files",
832
1881
  pathParams: [],
833
- queryParams: []
1882
+ queryParams: [],
1883
+ flags: []
834
1884
  },
835
1885
  "upload-file-base64": {
836
1886
  serviceClass: "Files",
837
1887
  operationId: "uploadFileBase64",
838
- description: "Upload a file using base64 encoding",
1888
+ description: "Uploads a file to the server using base64-encoded content",
1889
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/files",
839
1890
  pathParams: [],
840
- queryParams: []
1891
+ queryParams: [],
1892
+ flags: []
841
1893
  },
842
1894
  "get-file": {
843
1895
  serviceClass: "Files",
844
1896
  operationId: "getFile",
845
- description: "Get a file by ID",
1897
+ description: "Returns the data and metadata of a specific file",
1898
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/files",
846
1899
  pathParams: ["file_id"],
847
- queryParams: []
1900
+ queryParams: [],
1901
+ flags: [{
1902
+ "name": "file_id",
1903
+ "description": "File ID",
1904
+ "required": true,
1905
+ "type": "string",
1906
+ "in": "path"
1907
+ }]
848
1908
  },
849
1909
  "delete-file": {
850
1910
  serviceClass: "Files",
851
1911
  operationId: "deleteFile",
852
- description: "Delete a file",
1912
+ description: "Removes a file from the system by ID",
1913
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/files",
853
1914
  pathParams: ["file_id"],
854
- queryParams: []
1915
+ queryParams: [],
1916
+ flags: [{
1917
+ "name": "file_id",
1918
+ "description": "ID of the file to delete",
1919
+ "required": true,
1920
+ "type": "string",
1921
+ "in": "path"
1922
+ }]
855
1923
  },
856
1924
  "download-file": {
857
1925
  serviceClass: "Files",
858
1926
  operationId: "downloadFile",
859
- description: "Download a file",
1927
+ description: "Streams the file content to the client",
1928
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/files",
860
1929
  pathParams: ["file_id"],
861
- queryParams: []
1930
+ queryParams: [],
1931
+ flags: [{
1932
+ "name": "file_id",
1933
+ "description": "File ID",
1934
+ "required": true,
1935
+ "type": "string",
1936
+ "in": "path"
1937
+ }]
862
1938
  },
863
1939
  "update-file-metadata": {
864
1940
  serviceClass: "Files",
865
1941
  operationId: "updateFileMetadata",
866
- description: "Update file metadata",
1942
+ description: "Updates the metadata field of a file",
1943
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/files",
867
1944
  pathParams: ["file_id"],
868
- queryParams: []
1945
+ queryParams: [],
1946
+ flags: [{
1947
+ "name": "file_id",
1948
+ "description": "File ID",
1949
+ "required": true,
1950
+ "type": "string",
1951
+ "in": "path"
1952
+ }, {
1953
+ "name": "metadata",
1954
+ "description": "New metadata as a JSON string",
1955
+ "required": false,
1956
+ "type": "string",
1957
+ "in": "body"
1958
+ }, {
1959
+ "name": "filename",
1960
+ "description": "New filename for the file",
1961
+ "required": false,
1962
+ "type": "string",
1963
+ "in": "body"
1964
+ }]
869
1965
  },
870
1966
  "download-file-base64": {
871
1967
  serviceClass: "Files",
872
1968
  operationId: "downloadFileBase64",
873
- description: "Download file as base64",
1969
+ description: "Returns the file content encoded as base64",
1970
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/files",
874
1971
  pathParams: ["file_id"],
875
- queryParams: []
1972
+ queryParams: [],
1973
+ flags: [{
1974
+ "name": "file_id",
1975
+ "description": "File ID",
1976
+ "required": true,
1977
+ "type": "string",
1978
+ "in": "path"
1979
+ }]
876
1980
  },
877
1981
  "get-file-tags": {
878
1982
  serviceClass: "Files",
879
1983
  operationId: "getFileTags",
880
- description: "Get file tags",
1984
+ description: "Returns all tags attached to the file",
1985
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/files",
881
1986
  pathParams: ["file_id"],
882
- queryParams: []
1987
+ queryParams: [],
1988
+ flags: [{
1989
+ "name": "file_id",
1990
+ "description": "File ID",
1991
+ "required": true,
1992
+ "type": "string",
1993
+ "in": "path"
1994
+ }]
883
1995
  },
884
1996
  "replace-file-tags": {
885
1997
  serviceClass: "Files",
886
1998
  operationId: "replaceFileTags",
887
- description: "Replace file tags",
1999
+ description: "Replaces all tags on the file with the provided tags",
2000
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/files",
888
2001
  pathParams: ["file_id"],
889
- queryParams: []
2002
+ queryParams: [],
2003
+ flags: [{
2004
+ "name": "file_id",
2005
+ "description": "File ID",
2006
+ "required": true,
2007
+ "type": "string",
2008
+ "in": "path"
2009
+ }]
890
2010
  },
891
2011
  "merge-file-tags": {
892
2012
  serviceClass: "Files",
893
2013
  operationId: "mergeFileTags",
894
- description: "Merge file tags",
2014
+ description: "Merges provided tags with existing tags",
2015
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/files",
895
2016
  pathParams: ["file_id"],
896
- queryParams: []
2017
+ queryParams: [],
2018
+ flags: [{
2019
+ "name": "file_id",
2020
+ "description": "File ID",
2021
+ "required": true,
2022
+ "type": "string",
2023
+ "in": "path"
2024
+ }]
897
2025
  },
898
2026
  "search-knowledge": {
899
2027
  serviceClass: "Knowledge",
900
2028
  operationId: "searchKnowledge",
901
- description: "Search knowledge",
2029
+ description: "Searches across documents and memory entries using semantic search, file paths, document IDs, or memory IDs/tags. At least one of `query`, `document_paths`, `document_ids`, `memory_ids`, or `memory_tags` must be provided.",
2030
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/knowledge",
902
2031
  pathParams: [],
903
- queryParams: []
2032
+ queryParams: [],
2033
+ flags: [{
2034
+ "name": "project_id",
2035
+ "description": "Limit search to a specific project",
2036
+ "required": false,
2037
+ "type": "string",
2038
+ "in": "body"
2039
+ }, {
2040
+ "name": "query",
2041
+ "description": "Semantic search query text",
2042
+ "required": false,
2043
+ "type": "string",
2044
+ "in": "body"
2045
+ }, {
2046
+ "name": "min_score",
2047
+ "description": "Minimum similarity score (0\u20131). Results with lower scores are excluded. Only applies when `query` is provided.",
2048
+ "required": false,
2049
+ "type": "number",
2050
+ "in": "body"
2051
+ }, {
2052
+ "name": "limit",
2053
+ "description": "Maximum number of results to return (default 10)",
2054
+ "required": false,
2055
+ "type": "integer",
2056
+ "in": "body"
2057
+ }, {
2058
+ "name": "memory_ids",
2059
+ "description": "Search entries within these specific memories",
2060
+ "required": false,
2061
+ "type": "array",
2062
+ "in": "body"
2063
+ }, {
2064
+ "name": "memory_tags",
2065
+ "description": "Search entries in memories whose tags match any of these patterns (glob supported)",
2066
+ "required": false,
2067
+ "type": "array",
2068
+ "in": "body"
2069
+ }, {
2070
+ "name": "document_paths",
2071
+ "description": "Filter results to documents whose file path starts with one of these prefixes",
2072
+ "required": false,
2073
+ "type": "array",
2074
+ "in": "body"
2075
+ }, {
2076
+ "name": "document_ids",
2077
+ "description": "Filter results to specific document IDs",
2078
+ "required": false,
2079
+ "type": "array",
2080
+ "in": "body"
2081
+ }]
904
2082
  },
905
2083
  "list-memories": {
906
2084
  serviceClass: "Memories",
907
2085
  operationId: "listMemories",
908
- description: "List memories",
2086
+ description: "Returns a list of memory configurations for a project",
2087
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/memories",
909
2088
  pathParams: [],
910
- queryParams: ["project_id", "tags"]
2089
+ queryParams: ["project_id", "tags"],
2090
+ flags: [{
2091
+ "name": "project_id",
2092
+ "description": "Project ID (required if not using project key auth)",
2093
+ "required": false,
2094
+ "type": "string",
2095
+ "in": "query"
2096
+ }, {
2097
+ "name": "tags",
2098
+ "description": "Filter memories by tag patterns. Supports glob syntax (`*` matches any substring, `?` matches any single character). Multiple values are ORed \u2014 a memory is returned if any of its tags match any of the provided patterns. Omit to return all memories.\n",
2099
+ "required": false,
2100
+ "type": "array",
2101
+ "in": "query"
2102
+ }]
911
2103
  },
912
2104
  "create-memory": {
913
2105
  serviceClass: "Memories",
914
2106
  operationId: "createMemory",
915
- description: "Create a memory",
2107
+ description: "Creates a new memory configuration in a project",
2108
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/memories",
916
2109
  pathParams: [],
917
- queryParams: []
2110
+ queryParams: [],
2111
+ flags: [{
2112
+ "name": "project_id",
2113
+ "description": "Project ID (required if not using project key auth)",
2114
+ "required": false,
2115
+ "type": "string",
2116
+ "in": "body"
2117
+ }, {
2118
+ "name": "name",
2119
+ "description": "Memory name",
2120
+ "required": true,
2121
+ "type": "string",
2122
+ "in": "body"
2123
+ }, {
2124
+ "name": "description",
2125
+ "description": "Optional description",
2126
+ "required": false,
2127
+ "type": "string",
2128
+ "in": "body"
2129
+ }, {
2130
+ "name": "tags",
2131
+ "description": "Optional list of tags for filtering in knowledge search",
2132
+ "required": false,
2133
+ "type": "array",
2134
+ "in": "body"
2135
+ }]
918
2136
  },
919
2137
  "get-memory": {
920
2138
  serviceClass: "Memories",
921
2139
  operationId: "getMemory",
922
- description: "Get a memory",
2140
+ description: "Returns a single memory configuration by ID",
2141
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/memories",
923
2142
  pathParams: ["memory_id"],
924
- queryParams: []
2143
+ queryParams: [],
2144
+ flags: [{
2145
+ "name": "memory_id",
2146
+ "description": "",
2147
+ "required": true,
2148
+ "type": "string",
2149
+ "in": "path"
2150
+ }]
925
2151
  },
926
2152
  "update-memory": {
927
2153
  serviceClass: "Memories",
928
2154
  operationId: "updateMemory",
929
- description: "Update a memory",
2155
+ description: "Updates an existing memory configuration",
2156
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/memories",
930
2157
  pathParams: ["memory_id"],
931
- queryParams: []
2158
+ queryParams: [],
2159
+ flags: [{
2160
+ "name": "memory_id",
2161
+ "description": "",
2162
+ "required": true,
2163
+ "type": "string",
2164
+ "in": "path"
2165
+ }, {
2166
+ "name": "name",
2167
+ "description": "Memory name",
2168
+ "required": false,
2169
+ "type": "string",
2170
+ "in": "body"
2171
+ }, {
2172
+ "name": "description",
2173
+ "description": "Optional description",
2174
+ "required": false,
2175
+ "type": "string",
2176
+ "in": "body"
2177
+ }, {
2178
+ "name": "tags",
2179
+ "description": "Optional list of tags for filtering in knowledge search",
2180
+ "required": false,
2181
+ "type": "array",
2182
+ "in": "body"
2183
+ }]
932
2184
  },
933
2185
  "delete-memory": {
934
2186
  serviceClass: "Memories",
935
2187
  operationId: "deleteMemory",
936
- description: "Delete a memory",
2188
+ description: "Deletes a memory configuration",
2189
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/memories",
937
2190
  pathParams: ["memory_id"],
938
- queryParams: []
2191
+ queryParams: [],
2192
+ flags: [{
2193
+ "name": "memory_id",
2194
+ "description": "",
2195
+ "required": true,
2196
+ "type": "string",
2197
+ "in": "path"
2198
+ }]
939
2199
  },
940
2200
  "list-memory-entries": {
941
2201
  serviceClass: "MemoryEntries",
942
2202
  operationId: "listMemoryEntries",
943
- description: "List memory entries",
2203
+ description: "Returns all entries in a memory container",
2204
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/memoryEntries",
944
2205
  pathParams: ["memory_id"],
945
- queryParams: []
2206
+ queryParams: [],
2207
+ flags: [{
2208
+ "name": "memory_id",
2209
+ "description": "",
2210
+ "required": true,
2211
+ "type": "string",
2212
+ "in": "path"
2213
+ }]
946
2214
  },
947
2215
  "create-memory-entry": {
948
2216
  serviceClass: "MemoryEntries",
949
2217
  operationId: "createMemoryEntry",
950
- description: "Create a memory entry",
2218
+ description: "Creates a new entry in the specified memory container. Automatically generates an embedding for semantic search.",
2219
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/memoryEntries",
951
2220
  pathParams: ["memory_id"],
952
- queryParams: []
2221
+ queryParams: [],
2222
+ flags: [{
2223
+ "name": "memory_id",
2224
+ "description": "",
2225
+ "required": true,
2226
+ "type": "string",
2227
+ "in": "path"
2228
+ }, {
2229
+ "name": "content",
2230
+ "description": "The text content of the memory entry",
2231
+ "required": true,
2232
+ "type": "string",
2233
+ "in": "body"
2234
+ }, {
2235
+ "name": "source",
2236
+ "description": "How this entry was created",
2237
+ "required": false,
2238
+ "type": "string",
2239
+ "in": "body"
2240
+ }, {
2241
+ "name": "duplicate_threshold",
2242
+ "description": "Cosine similarity score at or above which the incoming content is considered a duplicate and skipped (default 0.95)",
2243
+ "required": false,
2244
+ "type": "number",
2245
+ "in": "body"
2246
+ }, {
2247
+ "name": "update_threshold",
2248
+ "description": "Cosine similarity score at or above which the incoming content is appended to the existing entry (default 0.75)",
2249
+ "required": false,
2250
+ "type": "number",
2251
+ "in": "body"
2252
+ }]
953
2253
  },
954
2254
  "get-memory-entry": {
955
2255
  serviceClass: "MemoryEntries",
956
2256
  operationId: "getMemoryEntry",
957
- description: "Get a memory entry",
2257
+ description: "Returns a single memory entry by ID",
2258
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/memoryEntries",
958
2259
  pathParams: ["memory_id", "entry_id"],
959
- queryParams: []
2260
+ queryParams: [],
2261
+ flags: [{
2262
+ "name": "memory_id",
2263
+ "description": "",
2264
+ "required": true,
2265
+ "type": "string",
2266
+ "in": "path"
2267
+ }, {
2268
+ "name": "entry_id",
2269
+ "description": "",
2270
+ "required": true,
2271
+ "type": "string",
2272
+ "in": "path"
2273
+ }]
960
2274
  },
961
2275
  "update-memory-entry": {
962
2276
  serviceClass: "MemoryEntries",
963
2277
  operationId: "updateMemoryEntry",
964
- description: "Update a memory entry",
2278
+ description: "Updates an existing memory entry. Regenerates the embedding if content changes.",
2279
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/memoryEntries",
965
2280
  pathParams: ["memory_id", "entry_id"],
966
- queryParams: []
2281
+ queryParams: [],
2282
+ flags: [{
2283
+ "name": "memory_id",
2284
+ "description": "",
2285
+ "required": true,
2286
+ "type": "string",
2287
+ "in": "path"
2288
+ }, {
2289
+ "name": "entry_id",
2290
+ "description": "",
2291
+ "required": true,
2292
+ "type": "string",
2293
+ "in": "path"
2294
+ }, {
2295
+ "name": "content",
2296
+ "description": "Updated text content",
2297
+ "required": false,
2298
+ "type": "string",
2299
+ "in": "body"
2300
+ }]
967
2301
  },
968
2302
  "delete-memory-entry": {
969
2303
  serviceClass: "MemoryEntries",
970
2304
  operationId: "deleteMemoryEntry",
971
- description: "Delete a memory entry",
2305
+ description: "Deletes a memory entry",
2306
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/memoryEntries",
972
2307
  pathParams: ["memory_id", "entry_id"],
973
- queryParams: []
2308
+ queryParams: [],
2309
+ flags: [{
2310
+ "name": "memory_id",
2311
+ "description": "",
2312
+ "required": true,
2313
+ "type": "string",
2314
+ "in": "path"
2315
+ }, {
2316
+ "name": "entry_id",
2317
+ "description": "",
2318
+ "required": true,
2319
+ "type": "string",
2320
+ "in": "path"
2321
+ }]
974
2322
  },
975
2323
  "list-policies": {
976
2324
  serviceClass: "Policies",
977
2325
  operationId: "listPolicies",
978
- description: "List all policies",
2326
+ description: "Returns a list of all global policies. Requires admin role.",
2327
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/policies",
979
2328
  pathParams: [],
980
- queryParams: []
2329
+ queryParams: [],
2330
+ flags: []
981
2331
  },
982
2332
  "create-policy": {
983
2333
  serviceClass: "Policies",
984
2334
  operationId: "createPolicy",
985
- description: "Create a policy",
2335
+ description: "Creates a new global policy. Requires admin role.",
2336
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/policies",
986
2337
  pathParams: [],
987
- queryParams: []
2338
+ queryParams: [],
2339
+ flags: [{
2340
+ "name": "name",
2341
+ "description": "",
2342
+ "required": false,
2343
+ "type": "string",
2344
+ "in": "body"
2345
+ }, {
2346
+ "name": "description",
2347
+ "description": "",
2348
+ "required": false,
2349
+ "type": "string",
2350
+ "in": "body"
2351
+ }, {
2352
+ "name": "document",
2353
+ "description": "",
2354
+ "required": true,
2355
+ "type": "string",
2356
+ "in": "body"
2357
+ }]
988
2358
  },
989
2359
  "get-policy": {
990
2360
  serviceClass: "Policies",
991
2361
  operationId: "getPolicy",
992
- description: "Get a policy",
2362
+ description: "Returns details of a specific policy. Requires admin role.",
2363
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/policies",
993
2364
  pathParams: ["policy_id"],
994
- queryParams: []
2365
+ queryParams: [],
2366
+ flags: [{
2367
+ "name": "policy_id",
2368
+ "description": "Policy public ID (pol_ prefix)",
2369
+ "required": true,
2370
+ "type": "string",
2371
+ "in": "path"
2372
+ }]
995
2373
  },
996
2374
  "update-policy": {
997
2375
  serviceClass: "Policies",
998
2376
  operationId: "updatePolicy",
999
- description: "Update a policy",
2377
+ description: "Updates an existing global policy. Requires admin role.",
2378
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/policies",
1000
2379
  pathParams: ["policy_id"],
1001
- queryParams: []
2380
+ queryParams: [],
2381
+ flags: [{
2382
+ "name": "policy_id",
2383
+ "description": "Policy public ID (pol_ prefix)",
2384
+ "required": true,
2385
+ "type": "string",
2386
+ "in": "path"
2387
+ }, {
2388
+ "name": "name",
2389
+ "description": "",
2390
+ "required": false,
2391
+ "type": "string",
2392
+ "in": "body"
2393
+ }, {
2394
+ "name": "description",
2395
+ "description": "",
2396
+ "required": false,
2397
+ "type": "string",
2398
+ "in": "body"
2399
+ }, {
2400
+ "name": "document",
2401
+ "description": "",
2402
+ "required": true,
2403
+ "type": "string",
2404
+ "in": "body"
2405
+ }]
1002
2406
  },
1003
2407
  "delete-policy": {
1004
2408
  serviceClass: "Policies",
1005
2409
  operationId: "deletePolicy",
1006
- description: "Delete a policy",
2410
+ description: "Deletes a global policy. Requires admin role.",
2411
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/policies",
1007
2412
  pathParams: ["policy_id"],
1008
- queryParams: []
2413
+ queryParams: [],
2414
+ flags: [{
2415
+ "name": "policy_id",
2416
+ "description": "Policy public ID (pol_ prefix)",
2417
+ "required": true,
2418
+ "type": "string",
2419
+ "in": "path"
2420
+ }]
1009
2421
  },
1010
2422
  "create-project": {
1011
2423
  serviceClass: "Projects",
1012
2424
  operationId: "createProject",
1013
- description: "Create a project",
2425
+ description: "Creates a new project. Requires admin role.",
2426
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/projects",
1014
2427
  pathParams: [],
1015
- queryParams: []
2428
+ queryParams: [],
2429
+ flags: [{
2430
+ "name": "name",
2431
+ "description": "",
2432
+ "required": true,
2433
+ "type": "string",
2434
+ "in": "body"
2435
+ }]
1016
2436
  },
1017
2437
  "get-project": {
1018
2438
  serviceClass: "Projects",
1019
2439
  operationId: "getProject",
1020
- description: "Get a project",
2440
+ description: "Returns details of a specific project.",
2441
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/projects",
1021
2442
  pathParams: ["project_id"],
1022
- queryParams: []
2443
+ queryParams: [],
2444
+ flags: [{
2445
+ "name": "project_id",
2446
+ "description": "Project public ID (proj_ prefix)",
2447
+ "required": true,
2448
+ "type": "string",
2449
+ "in": "path"
2450
+ }]
1023
2451
  },
1024
2452
  "delete-project": {
1025
2453
  serviceClass: "Projects",
1026
2454
  operationId: "deleteProject",
1027
- description: "Delete a project",
2455
+ description: "Deletes a project. Requires admin role.",
2456
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/projects",
1028
2457
  pathParams: ["project_id"],
1029
- queryParams: []
2458
+ queryParams: [],
2459
+ flags: [{
2460
+ "name": "project_id",
2461
+ "description": "Project public ID (proj_ prefix)",
2462
+ "required": true,
2463
+ "type": "string",
2464
+ "in": "path"
2465
+ }]
1030
2466
  },
1031
2467
  "list-secrets": {
1032
2468
  serviceClass: "Secrets",
1033
2469
  operationId: "listSecrets",
1034
- description: "List secrets",
2470
+ description: "Returns a list of secrets for a project",
2471
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/secrets",
1035
2472
  pathParams: [],
1036
- queryParams: ["project_id", "limit", "offset"]
2473
+ queryParams: ["project_id", "limit", "offset"],
2474
+ flags: [{
2475
+ "name": "project_id",
2476
+ "description": "Project ID (required if not using project key auth)",
2477
+ "required": false,
2478
+ "type": "string",
2479
+ "in": "query"
2480
+ }, {
2481
+ "name": "limit",
2482
+ "description": "Number of results per page",
2483
+ "required": false,
2484
+ "type": "integer",
2485
+ "in": "query"
2486
+ }, {
2487
+ "name": "offset",
2488
+ "description": "Number of results to skip",
2489
+ "required": false,
2490
+ "type": "integer",
2491
+ "in": "query"
2492
+ }]
1037
2493
  },
1038
2494
  "create-secret": {
1039
2495
  serviceClass: "Secrets",
1040
2496
  operationId: "createSecret",
1041
- description: "Create a secret",
2497
+ description: "Creates a new encrypted secret in a project",
2498
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/secrets",
1042
2499
  pathParams: [],
1043
- queryParams: []
2500
+ queryParams: [],
2501
+ flags: [{
2502
+ "name": "project_id",
2503
+ "description": "Project ID (required if not using project key auth)",
2504
+ "required": false,
2505
+ "type": "string",
2506
+ "in": "body"
2507
+ }, {
2508
+ "name": "name",
2509
+ "description": "Secret name",
2510
+ "required": true,
2511
+ "type": "string",
2512
+ "in": "body"
2513
+ }, {
2514
+ "name": "value",
2515
+ "description": "Secret value (will be encrypted)",
2516
+ "required": true,
2517
+ "type": "string",
2518
+ "in": "body"
2519
+ }]
1044
2520
  },
1045
2521
  "get-secret": {
1046
2522
  serviceClass: "Secrets",
1047
2523
  operationId: "getSecret",
1048
- description: "Get a secret",
2524
+ description: "Returns a specific secret",
2525
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/secrets",
1049
2526
  pathParams: ["secret_id"],
1050
- queryParams: []
2527
+ queryParams: [],
2528
+ flags: [{
2529
+ "name": "secret_id",
2530
+ "description": "Secret ID",
2531
+ "required": true,
2532
+ "type": "string",
2533
+ "in": "path"
2534
+ }]
1051
2535
  },
1052
2536
  "update-secret": {
1053
2537
  serviceClass: "Secrets",
1054
2538
  operationId: "updateSecret",
1055
- description: "Update a secret",
2539
+ description: "Updates a secret's name and/or value",
2540
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/secrets",
1056
2541
  pathParams: ["secret_id"],
1057
- queryParams: []
2542
+ queryParams: [],
2543
+ flags: [{
2544
+ "name": "secret_id",
2545
+ "description": "Secret ID",
2546
+ "required": true,
2547
+ "type": "string",
2548
+ "in": "path"
2549
+ }, {
2550
+ "name": "name",
2551
+ "description": "New secret name",
2552
+ "required": false,
2553
+ "type": "string",
2554
+ "in": "body"
2555
+ }, {
2556
+ "name": "value",
2557
+ "description": "New secret value",
2558
+ "required": false,
2559
+ "type": "string",
2560
+ "in": "body"
2561
+ }]
1058
2562
  },
1059
2563
  "delete-secret": {
1060
2564
  serviceClass: "Secrets",
1061
2565
  operationId: "deleteSecret",
1062
- description: "Delete a secret",
2566
+ description: "Deletes a secret",
2567
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/secrets",
1063
2568
  pathParams: ["secret_id"],
1064
- queryParams: []
2569
+ queryParams: [],
2570
+ flags: [{
2571
+ "name": "secret_id",
2572
+ "description": "Secret ID",
2573
+ "required": true,
2574
+ "type": "string",
2575
+ "in": "path"
2576
+ }]
1065
2577
  },
1066
2578
  "list-agent-sessions": {
1067
2579
  serviceClass: "Sessions",
1068
2580
  operationId: "listAgentSessions",
1069
- description: "List sessions",
2581
+ description: "Returns sessions for the specified agent, optionally filtered by actorId and status.",
2582
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/sessions",
1070
2583
  pathParams: ["agent_id"],
1071
- queryParams: ["actor_id", "status", "limit", "offset"]
2584
+ queryParams: ["actor_id", "status", "limit", "offset"],
2585
+ flags: [{
2586
+ "name": "agent_id",
2587
+ "description": "Agent public ID",
2588
+ "required": true,
2589
+ "type": "string",
2590
+ "in": "path"
2591
+ }, {
2592
+ "name": "actor_id",
2593
+ "description": "Filter by actor public ID",
2594
+ "required": false,
2595
+ "type": "string",
2596
+ "in": "query"
2597
+ }, {
2598
+ "name": "status",
2599
+ "description": "Filter by session status (open or closed)",
2600
+ "required": false,
2601
+ "type": "string",
2602
+ "in": "query"
2603
+ }, {
2604
+ "name": "limit",
2605
+ "description": "",
2606
+ "required": false,
2607
+ "type": "integer",
2608
+ "in": "query"
2609
+ }, {
2610
+ "name": "offset",
2611
+ "description": "",
2612
+ "required": false,
2613
+ "type": "integer",
2614
+ "in": "query"
2615
+ }]
1072
2616
  },
1073
2617
  "create-agent-session": {
1074
2618
  serviceClass: "Sessions",
1075
2619
  operationId: "createAgentSession",
1076
- description: "Create a session",
2620
+ description: "Creates a new session for the specified agent. Internally creates a conversation and two actors (agent + user) so the caller only needs this single call to start interacting with the agent.",
2621
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/sessions",
1077
2622
  pathParams: ["agent_id"],
1078
- queryParams: []
2623
+ queryParams: [],
2624
+ flags: [{
2625
+ "name": "agent_id",
2626
+ "description": "Agent public ID",
2627
+ "required": true,
2628
+ "type": "string",
2629
+ "in": "path"
2630
+ }]
1079
2631
  },
1080
2632
  "get-agent-session": {
1081
2633
  serviceClass: "Sessions",
1082
2634
  operationId: "getAgentSession",
1083
- description: "Get a session",
2635
+ description: "Returns details of a single session.",
2636
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/sessions",
1084
2637
  pathParams: ["agent_id", "session_id"],
1085
- queryParams: []
2638
+ queryParams: [],
2639
+ flags: [{
2640
+ "name": "agent_id",
2641
+ "description": "Agent public ID",
2642
+ "required": true,
2643
+ "type": "string",
2644
+ "in": "path"
2645
+ }, {
2646
+ "name": "session_id",
2647
+ "description": "Session public ID",
2648
+ "required": true,
2649
+ "type": "string",
2650
+ "in": "path"
2651
+ }]
1086
2652
  },
1087
2653
  "update-session": {
1088
2654
  serviceClass: "Sessions",
1089
2655
  operationId: "updateSession",
1090
- description: "Update a session",
2656
+ description: "Updates the session name and/or status.",
2657
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/sessions",
1091
2658
  pathParams: ["agent_id", "session_id"],
1092
- queryParams: []
2659
+ queryParams: [],
2660
+ flags: [{
2661
+ "name": "agent_id",
2662
+ "description": "Agent public ID",
2663
+ "required": true,
2664
+ "type": "string",
2665
+ "in": "path"
2666
+ }, {
2667
+ "name": "session_id",
2668
+ "description": "Session public ID",
2669
+ "required": true,
2670
+ "type": "string",
2671
+ "in": "path"
2672
+ }]
1093
2673
  },
1094
2674
  "delete-agent-session": {
1095
2675
  serviceClass: "Sessions",
1096
2676
  operationId: "deleteAgentSession",
1097
- description: "Delete a session",
2677
+ description: "Deletes the session and its underlying conversation and actors.",
2678
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/sessions",
1098
2679
  pathParams: ["agent_id", "session_id"],
1099
- queryParams: []
2680
+ queryParams: [],
2681
+ flags: [{
2682
+ "name": "agent_id",
2683
+ "description": "Agent public ID",
2684
+ "required": true,
2685
+ "type": "string",
2686
+ "in": "path"
2687
+ }, {
2688
+ "name": "session_id",
2689
+ "description": "Session public ID",
2690
+ "required": true,
2691
+ "type": "string",
2692
+ "in": "path"
2693
+ }]
1100
2694
  },
1101
2695
  "list-agent-session-messages": {
1102
2696
  serviceClass: "Sessions",
1103
2697
  operationId: "listAgentSessionMessages",
1104
- description: "List session messages",
2698
+ description: "Returns messages in the session with simplified roles (user/assistant) instead of raw actor IDs.",
2699
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/sessions",
1105
2700
  pathParams: ["agent_id", "session_id"],
1106
- queryParams: ["limit", "offset"]
2701
+ queryParams: ["limit", "offset"],
2702
+ flags: [{
2703
+ "name": "agent_id",
2704
+ "description": "Agent public ID",
2705
+ "required": true,
2706
+ "type": "string",
2707
+ "in": "path"
2708
+ }, {
2709
+ "name": "session_id",
2710
+ "description": "Session public ID",
2711
+ "required": true,
2712
+ "type": "string",
2713
+ "in": "path"
2714
+ }, {
2715
+ "name": "limit",
2716
+ "description": "",
2717
+ "required": false,
2718
+ "type": "integer",
2719
+ "in": "query"
2720
+ }, {
2721
+ "name": "offset",
2722
+ "description": "",
2723
+ "required": false,
2724
+ "type": "integer",
2725
+ "in": "query"
2726
+ }]
1107
2727
  },
1108
2728
  "add-session-message": {
1109
2729
  serviceClass: "Sessions",
1110
2730
  operationId: "addSessionMessage",
1111
- description: "Add a user message",
2731
+ description: "Saves a user message to the session. When autoGenerate is enabled on the session and no generation is currently in progress, generation is triggered automatically and the response mirrors GenerateSessionResponse. Otherwise returns the saved user message.",
2732
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/sessions",
1112
2733
  pathParams: ["agent_id", "session_id"],
1113
- queryParams: []
2734
+ queryParams: [],
2735
+ flags: [{
2736
+ "name": "agent_id",
2737
+ "description": "Agent public ID",
2738
+ "required": true,
2739
+ "type": "string",
2740
+ "in": "path"
2741
+ }, {
2742
+ "name": "session_id",
2743
+ "description": "Session public ID",
2744
+ "required": true,
2745
+ "type": "string",
2746
+ "in": "path"
2747
+ }]
1114
2748
  },
1115
2749
  "generate-session-response": {
1116
2750
  serviceClass: "Sessions",
1117
2751
  operationId: "generateSessionResponse",
1118
- description: "Trigger agent generation",
2752
+ description: "Triggers the agent to generate a response based on the current conversation. Returns the assistant reply or a requires_action status if the agent needs client tool outputs. Pass ?async=true for a 202 accepted response when you do not need to wait for the result.",
2753
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/sessions",
1119
2754
  pathParams: ["agent_id", "session_id"],
1120
- queryParams: ["async"]
2755
+ queryParams: ["async"],
2756
+ flags: [{
2757
+ "name": "agent_id",
2758
+ "description": "Agent public ID",
2759
+ "required": true,
2760
+ "type": "string",
2761
+ "in": "path"
2762
+ }, {
2763
+ "name": "session_id",
2764
+ "description": "Session public ID",
2765
+ "required": true,
2766
+ "type": "string",
2767
+ "in": "path"
2768
+ }, {
2769
+ "name": "async",
2770
+ "description": "When true, generation runs in the background and 202 is returned immediately",
2771
+ "required": false,
2772
+ "type": "boolean",
2773
+ "in": "query"
2774
+ }]
1121
2775
  },
1122
2776
  "submit-session-tool-outputs": {
1123
2777
  serviceClass: "Sessions",
1124
2778
  operationId: "submitSessionToolOutputs",
1125
- description: "Submit tool outputs",
2779
+ description: "Submits client tool outputs for a generation that returned requires_action. The agent continues its loop and returns the final or next requires_action result.",
2780
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/sessions",
1126
2781
  pathParams: ["agent_id", "session_id"],
1127
- queryParams: []
2782
+ queryParams: [],
2783
+ flags: [{
2784
+ "name": "agent_id",
2785
+ "description": "Agent public ID",
2786
+ "required": true,
2787
+ "type": "string",
2788
+ "in": "path"
2789
+ }, {
2790
+ "name": "session_id",
2791
+ "description": "Session public ID",
2792
+ "required": true,
2793
+ "type": "string",
2794
+ "in": "path"
2795
+ }]
1128
2796
  },
1129
2797
  "get-session-tags": {
1130
2798
  serviceClass: "Sessions",
1131
2799
  operationId: "getSessionTags",
1132
- description: "Get session tags",
2800
+ description: "Returns the session's tags object.",
2801
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/sessions",
1133
2802
  pathParams: ["agent_id", "session_id"],
1134
- queryParams: []
2803
+ queryParams: [],
2804
+ flags: [{
2805
+ "name": "agent_id",
2806
+ "description": "Agent public ID",
2807
+ "required": true,
2808
+ "type": "string",
2809
+ "in": "path"
2810
+ }, {
2811
+ "name": "session_id",
2812
+ "description": "Session public ID",
2813
+ "required": true,
2814
+ "type": "string",
2815
+ "in": "path"
2816
+ }]
1135
2817
  },
1136
2818
  "replace-session-tags": {
1137
2819
  serviceClass: "Sessions",
1138
2820
  operationId: "replaceSessionTags",
1139
- description: "Replace session tags",
2821
+ description: "Replaces all tags on the session.",
2822
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/sessions",
1140
2823
  pathParams: ["agent_id", "session_id"],
1141
- queryParams: []
2824
+ queryParams: [],
2825
+ flags: [{
2826
+ "name": "agent_id",
2827
+ "description": "Agent public ID",
2828
+ "required": true,
2829
+ "type": "string",
2830
+ "in": "path"
2831
+ }, {
2832
+ "name": "session_id",
2833
+ "description": "Session public ID",
2834
+ "required": true,
2835
+ "type": "string",
2836
+ "in": "path"
2837
+ }]
1142
2838
  },
1143
2839
  "merge-session-tags": {
1144
2840
  serviceClass: "Sessions",
1145
2841
  operationId: "mergeSessionTags",
1146
- description: "Merge session tags",
2842
+ description: "Merges the provided tags into the session's existing tags.",
2843
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/sessions",
1147
2844
  pathParams: ["agent_id", "session_id"],
1148
- queryParams: []
2845
+ queryParams: [],
2846
+ flags: [{
2847
+ "name": "agent_id",
2848
+ "description": "Agent public ID",
2849
+ "required": true,
2850
+ "type": "string",
2851
+ "in": "path"
2852
+ }, {
2853
+ "name": "session_id",
2854
+ "description": "Session public ID",
2855
+ "required": true,
2856
+ "type": "string",
2857
+ "in": "path"
2858
+ }]
1149
2859
  },
1150
2860
  "list-traces": {
1151
2861
  serviceClass: "Traces",
1152
2862
  operationId: "listTraces",
1153
- description: "List traces",
2863
+ description: "Returns a paginated list of execution traces for the project.",
2864
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/traces",
1154
2865
  pathParams: [],
1155
- queryParams: ["project_id", "limit", "offset"]
2866
+ queryParams: ["project_id", "limit", "offset"],
2867
+ flags: [{
2868
+ "name": "project_id",
2869
+ "description": "Project public ID to filter by",
2870
+ "required": false,
2871
+ "type": "string",
2872
+ "in": "query"
2873
+ }, {
2874
+ "name": "limit",
2875
+ "description": "Maximum number of results to return",
2876
+ "required": false,
2877
+ "type": "integer",
2878
+ "in": "query"
2879
+ }, {
2880
+ "name": "offset",
2881
+ "description": "Number of results to skip",
2882
+ "required": false,
2883
+ "type": "integer",
2884
+ "in": "query"
2885
+ }]
1156
2886
  },
1157
2887
  "get-trace": {
1158
2888
  serviceClass: "Traces",
1159
2889
  operationId: "getTrace",
1160
- description: "Get a trace",
2890
+ description: "Returns a single trace by ID.",
2891
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/traces",
1161
2892
  pathParams: ["trace_id"],
1162
- queryParams: []
2893
+ queryParams: [],
2894
+ flags: [{
2895
+ "name": "trace_id",
2896
+ "description": "Public ID of the trace",
2897
+ "required": true,
2898
+ "type": "string",
2899
+ "in": "path"
2900
+ }]
1163
2901
  },
1164
2902
  "get-trace-tree": {
1165
2903
  serviceClass: "Traces",
1166
2904
  operationId: "getTraceTree",
1167
- description: "Get trace tree",
2905
+ description: "Returns the full execution tree rooted at the given trace (or its root if the given trace is a child). Each node represents one agent's execution session. The `children` array contains traces triggered by sub-agent tool calls from that trace.",
2906
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/traces",
1168
2907
  pathParams: ["trace_id"],
1169
- queryParams: []
2908
+ queryParams: [],
2909
+ flags: [{
2910
+ "name": "trace_id",
2911
+ "description": "Public ID of any trace in the tree (root or child)",
2912
+ "required": true,
2913
+ "type": "string",
2914
+ "in": "path"
2915
+ }]
1170
2916
  },
1171
2917
  "list-users": {
1172
2918
  serviceClass: "Users",
1173
2919
  operationId: "listUsers",
1174
- description: "List all users",
2920
+ description: "Returns a list of all users",
2921
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/users",
1175
2922
  pathParams: [],
1176
- queryParams: []
2923
+ queryParams: [],
2924
+ flags: []
1177
2925
  },
1178
2926
  "create-user": {
1179
2927
  serviceClass: "Users",
1180
2928
  operationId: "createUser",
1181
- description: "Create a user",
2929
+ description: "Creates a new user in the system",
2930
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/users",
1182
2931
  pathParams: [],
1183
- queryParams: []
2932
+ queryParams: [],
2933
+ flags: [{
2934
+ "name": "username",
2935
+ "description": "",
2936
+ "required": true,
2937
+ "type": "string",
2938
+ "in": "body"
2939
+ }, {
2940
+ "name": "password",
2941
+ "description": "",
2942
+ "required": true,
2943
+ "type": "string",
2944
+ "in": "body"
2945
+ }, {
2946
+ "name": "role",
2947
+ "description": "",
2948
+ "required": false,
2949
+ "type": "string",
2950
+ "in": "body"
2951
+ }]
1184
2952
  },
1185
2953
  "get-user": {
1186
2954
  serviceClass: "Users",
1187
2955
  operationId: "getUser",
1188
- description: "Get a user by ID",
2956
+ description: "Returns the data of a specific user",
2957
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/users",
1189
2958
  pathParams: ["user_id"],
1190
- queryParams: []
2959
+ queryParams: [],
2960
+ flags: [{
2961
+ "name": "user_id",
2962
+ "description": "User ID",
2963
+ "required": true,
2964
+ "type": "string",
2965
+ "in": "path"
2966
+ }]
1191
2967
  },
1192
2968
  "delete-user": {
1193
2969
  serviceClass: "Users",
1194
2970
  operationId: "deleteUser",
1195
- description: "Delete a user by ID",
2971
+ description: "Deletes a specific user",
2972
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/users",
1196
2973
  pathParams: ["user_id"],
1197
- queryParams: []
2974
+ queryParams: [],
2975
+ flags: [{
2976
+ "name": "user_id",
2977
+ "description": "User ID",
2978
+ "required": true,
2979
+ "type": "string",
2980
+ "in": "path"
2981
+ }]
1198
2982
  },
1199
2983
  "bootstrap-user": {
1200
2984
  serviceClass: "Users",
1201
2985
  operationId: "bootstrapUser",
1202
- description: "Create the first admin user",
2986
+ description: "Creates the first admin user. Returns 409 if any user already exists.",
2987
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/users",
1203
2988
  pathParams: [],
1204
- queryParams: []
2989
+ queryParams: [],
2990
+ flags: [{
2991
+ "name": "username",
2992
+ "description": "",
2993
+ "required": true,
2994
+ "type": "string",
2995
+ "in": "body"
2996
+ }, {
2997
+ "name": "password",
2998
+ "description": "",
2999
+ "required": true,
3000
+ "type": "string",
3001
+ "in": "body"
3002
+ }]
1205
3003
  },
1206
3004
  "login-user": {
1207
3005
  serviceClass: "Users",
1208
3006
  operationId: "loginUser",
1209
- description: "Login user",
3007
+ description: "Authenticates a user and returns a JWT token",
3008
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/users",
1210
3009
  pathParams: [],
1211
- queryParams: []
3010
+ queryParams: [],
3011
+ flags: [{
3012
+ "name": "username",
3013
+ "description": "",
3014
+ "required": true,
3015
+ "type": "string",
3016
+ "in": "body"
3017
+ }, {
3018
+ "name": "password",
3019
+ "description": "",
3020
+ "required": true,
3021
+ "type": "string",
3022
+ "in": "body"
3023
+ }]
1212
3024
  },
1213
3025
  "get-user-policies": {
1214
3026
  serviceClass: "Users",
1215
3027
  operationId: "getUserPolicies",
1216
- description: "Get policies attached to a user",
3028
+ description: "Returns the list of policies attached to a user. Requires admin role.",
3029
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/users",
1217
3030
  pathParams: ["user_id"],
1218
- queryParams: []
3031
+ queryParams: [],
3032
+ flags: [{
3033
+ "name": "user_id",
3034
+ "description": "User public ID (usr_ prefix)",
3035
+ "required": true,
3036
+ "type": "string",
3037
+ "in": "path"
3038
+ }]
1219
3039
  },
1220
3040
  "attach-user-policies": {
1221
3041
  serviceClass: "Users",
1222
3042
  operationId: "attachUserPolicies",
1223
- description: "Attach policies to a user",
3043
+ description: "Replaces the user's policy list with the provided policy IDs. Requires admin role.",
3044
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/users",
1224
3045
  pathParams: ["user_id"],
1225
- queryParams: []
3046
+ queryParams: [],
3047
+ flags: [{
3048
+ "name": "user_id",
3049
+ "description": "User public ID (usr_ prefix)",
3050
+ "required": true,
3051
+ "type": "string",
3052
+ "in": "path"
3053
+ }, {
3054
+ "name": "policy_ids",
3055
+ "description": "List of policy public IDs to attach (replaces existing)",
3056
+ "required": true,
3057
+ "type": "array",
3058
+ "in": "body"
3059
+ }]
1226
3060
  },
1227
3061
  "list-webhooks": {
1228
3062
  serviceClass: "Webhooks",
1229
3063
  operationId: "listWebhooks",
1230
- description: "List webhooks for a project",
3064
+ description: "Lists all webhooks configured for the specified project",
3065
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/webhooks",
1231
3066
  pathParams: ["project_id"],
1232
- queryParams: []
3067
+ queryParams: [],
3068
+ flags: [{
3069
+ "name": "project_id",
3070
+ "description": "",
3071
+ "required": true,
3072
+ "type": "string",
3073
+ "in": "path"
3074
+ }]
1233
3075
  },
1234
3076
  "create-webhook": {
1235
3077
  serviceClass: "Webhooks",
1236
3078
  operationId: "createWebhook",
1237
- description: "Create a webhook",
3079
+ description: "Creates a new webhook for the specified project",
3080
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/webhooks",
1238
3081
  pathParams: ["project_id"],
1239
- queryParams: []
3082
+ queryParams: [],
3083
+ flags: [{
3084
+ "name": "project_id",
3085
+ "description": "",
3086
+ "required": true,
3087
+ "type": "string",
3088
+ "in": "path"
3089
+ }]
1240
3090
  },
1241
3091
  "get-webhook": {
1242
3092
  serviceClass: "Webhooks",
1243
3093
  operationId: "getWebhook",
1244
- description: "Get a webhook",
3094
+ description: "Retrieves the details of a specific webhook",
3095
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/webhooks",
1245
3096
  pathParams: ["project_id", "webhook_id"],
1246
- queryParams: []
3097
+ queryParams: [],
3098
+ flags: [{
3099
+ "name": "project_id",
3100
+ "description": "",
3101
+ "required": true,
3102
+ "type": "string",
3103
+ "in": "path"
3104
+ }, {
3105
+ "name": "webhook_id",
3106
+ "description": "",
3107
+ "required": true,
3108
+ "type": "string",
3109
+ "in": "path"
3110
+ }]
1247
3111
  },
1248
3112
  "update-webhook": {
1249
3113
  serviceClass: "Webhooks",
1250
3114
  operationId: "updateWebhook",
1251
- description: "Update a webhook",
3115
+ description: "Updates an existing webhook's configuration",
3116
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/webhooks",
1252
3117
  pathParams: ["project_id", "webhook_id"],
1253
- queryParams: []
3118
+ queryParams: [],
3119
+ flags: [{
3120
+ "name": "project_id",
3121
+ "description": "",
3122
+ "required": true,
3123
+ "type": "string",
3124
+ "in": "path"
3125
+ }, {
3126
+ "name": "webhook_id",
3127
+ "description": "",
3128
+ "required": true,
3129
+ "type": "string",
3130
+ "in": "path"
3131
+ }]
1254
3132
  },
1255
3133
  "delete-webhook": {
1256
3134
  serviceClass: "Webhooks",
1257
3135
  operationId: "deleteWebhook",
1258
- description: "Delete a webhook",
3136
+ description: "Deletes a webhook and stops all event deliveries",
3137
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/webhooks",
1259
3138
  pathParams: ["project_id", "webhook_id"],
1260
- queryParams: []
3139
+ queryParams: [],
3140
+ flags: [{
3141
+ "name": "project_id",
3142
+ "description": "",
3143
+ "required": true,
3144
+ "type": "string",
3145
+ "in": "path"
3146
+ }, {
3147
+ "name": "webhook_id",
3148
+ "description": "",
3149
+ "required": true,
3150
+ "type": "string",
3151
+ "in": "path"
3152
+ }]
1261
3153
  },
1262
3154
  "list-webhook-deliveries": {
1263
3155
  serviceClass: "Webhooks",
1264
3156
  operationId: "listWebhookDeliveries",
1265
- description: "List deliveries for a webhook",
3157
+ description: "Lists all event deliveries for a specific webhook",
3158
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/webhooks",
1266
3159
  pathParams: ["project_id", "webhook_id"],
1267
- queryParams: ["limit", "offset"]
3160
+ queryParams: ["limit", "offset"],
3161
+ flags: [{
3162
+ "name": "project_id",
3163
+ "description": "",
3164
+ "required": true,
3165
+ "type": "string",
3166
+ "in": "path"
3167
+ }, {
3168
+ "name": "webhook_id",
3169
+ "description": "",
3170
+ "required": true,
3171
+ "type": "string",
3172
+ "in": "path"
3173
+ }, {
3174
+ "name": "limit",
3175
+ "description": "",
3176
+ "required": false,
3177
+ "type": "integer",
3178
+ "in": "query"
3179
+ }, {
3180
+ "name": "offset",
3181
+ "description": "",
3182
+ "required": false,
3183
+ "type": "integer",
3184
+ "in": "query"
3185
+ }]
1268
3186
  },
1269
3187
  "get-webhook-delivery": {
1270
3188
  serviceClass: "Webhooks",
1271
3189
  operationId: "getWebhookDelivery",
1272
- description: "Get a delivery",
3190
+ description: "Retrieves the details of a specific webhook delivery",
3191
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/webhooks",
1273
3192
  pathParams: ["project_id", "webhook_id", "delivery_id"],
1274
- queryParams: []
3193
+ queryParams: [],
3194
+ flags: [{
3195
+ "name": "project_id",
3196
+ "description": "",
3197
+ "required": true,
3198
+ "type": "string",
3199
+ "in": "path"
3200
+ }, {
3201
+ "name": "webhook_id",
3202
+ "description": "",
3203
+ "required": true,
3204
+ "type": "string",
3205
+ "in": "path"
3206
+ }, {
3207
+ "name": "delivery_id",
3208
+ "description": "",
3209
+ "required": true,
3210
+ "type": "string",
3211
+ "in": "path"
3212
+ }]
1275
3213
  },
1276
3214
  "rotate-webhook-secret": {
1277
3215
  serviceClass: "Webhooks",
1278
3216
  operationId: "rotateWebhookSecret",
1279
- description: "Rotate webhook secret",
3217
+ description: "Rotates the secret key for the specified webhook",
3218
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/webhooks",
1280
3219
  pathParams: ["project_id", "webhook_id"],
1281
- queryParams: []
3220
+ queryParams: [],
3221
+ flags: [{
3222
+ "name": "project_id",
3223
+ "description": "",
3224
+ "required": true,
3225
+ "type": "string",
3226
+ "in": "path"
3227
+ }, {
3228
+ "name": "webhook_id",
3229
+ "description": "",
3230
+ "required": true,
3231
+ "type": "string",
3232
+ "in": "path"
3233
+ }]
1282
3234
  }
1283
3235
  };
1284
3236
 
@@ -1319,6 +3271,7 @@ var resolveServiceClass = /* @__PURE__ */__name(serviceClassName => {
1319
3271
  return void 0;
1320
3272
  }, "resolveServiceClass");
1321
3273
  program.name("soat").description("SOAT CLI").version(package_default.version).option("-p, --profile <name>", "config profile to use");
3274
+ program.addHelpText("after", "\nTip: Run `soat <command> --help` to see command-specific flags and docs.");
1322
3275
  program.command("configure").description("Save credentials to a named profile (~/.soat/config.json)").option("-p, --profile <name>", "profile name", "default").action(async opts => {
1323
3276
  const [{
1324
3277
  default: input
@@ -1458,7 +3411,7 @@ program.command("listen").description("Start a local webhook listener for testin
1458
3411
  });
1459
3412
  });
1460
3413
  });
1461
- program.argument("[command]", "API command in kebab-case (e.g. list-actors)").argument("[args...]").allowUnknownOption().action(async commandName => {
3414
+ program.argument("[command]", "API command in kebab-case (e.g. list-actors)").argument("[args...]").allowUnknownOption().passThroughOptions().action(async commandName => {
1462
3415
  if (!commandName) {
1463
3416
  program.help();
1464
3417
  return;
@@ -1471,6 +3424,31 @@ program.argument("[command]", "API command in kebab-case (e.g. list-actors)").ar
1471
3424
  }
1472
3425
  const rawIdx = process.argv.indexOf(commandName);
1473
3426
  const rawArgs = rawIdx >= 0 ? process.argv.slice(rawIdx + 1) : [];
3427
+ if (rawArgs.includes("--help") || rawArgs.includes("-h")) {
3428
+ const wrapperFlags = getWrapperHelpFlags(commandName);
3429
+ const allFlags = [...route.flags, ...wrapperFlags.map(f => {
3430
+ return {
3431
+ ...f,
3432
+ in: "wrapper"
3433
+ };
3434
+ })];
3435
+ console.log(`
3436
+ Usage: soat ${commandName} [flags]
3437
+ `);
3438
+ console.log(` ${route.description}
3439
+ `);
3440
+ console.log(` Module docs: ${route.moduleDocsUrl}
3441
+ `);
3442
+ if (allFlags.length > 0) {
3443
+ console.log("Flags:");
3444
+ for (const f of allFlags) {
3445
+ const req = f.required ? " [required]" : "";
3446
+ const desc = f.description ? ` ${f.description}` : "";
3447
+ console.log(` --${f.name} <${f.type}>${req}${desc}`);
3448
+ }
3449
+ }
3450
+ process.exit(0);
3451
+ }
1474
3452
  const parsedFlags = parseUnknownWithRepeats({
1475
3453
  cliArgs: rawArgs
1476
3454
  });