@cyberstrike-io/sdk 1.1.9 → 1.1.12-beta.0

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.
@@ -120,6 +120,7 @@ export type UserMessage = {
120
120
  [key: string]: boolean;
121
121
  };
122
122
  variant?: string;
123
+ excludeHistory?: boolean;
123
124
  };
124
125
  export type ProviderAuthError = {
125
126
  name: "ProviderAuthError";
@@ -608,6 +609,21 @@ export type Request = {
608
609
  body_hash?: string;
609
610
  query_hash?: string;
610
611
  status: "queued" | "processing" | "processed";
612
+ trigger_element?: string;
613
+ element_roles?: Array<string>;
614
+ ui_context?: {
615
+ [key: string]: unknown;
616
+ };
617
+ page_url?: string;
618
+ page_visited_by?: Array<string>;
619
+ scheme?: "http" | "https";
620
+ host?: string;
621
+ port?: number;
622
+ origin?: string;
623
+ site?: string;
624
+ canonical_path?: string;
625
+ template_id?: string;
626
+ norm_source?: "tier1" | "tier2" | "tier3" | "failed";
611
627
  response_status?: number;
612
628
  response_headers?: {
613
629
  [key: string]: string;
@@ -648,6 +664,36 @@ export type EventWebCredentialUpdated = {
648
664
  credentials: Array<WebCredential>;
649
665
  };
650
666
  };
667
+ export type SessionQueueStatus = {
668
+ paused: boolean;
669
+ pending: number;
670
+ };
671
+ export type EventSessionQueueStatus = {
672
+ type: "session.queue.status";
673
+ properties: {
674
+ sessionID: string;
675
+ status: SessionQueueStatus;
676
+ };
677
+ };
678
+ export type HackbrowserPhase = "starting" | "crawling" | "completed" | "failed";
679
+ export type HackbrowserStatus = {
680
+ sessionID: string;
681
+ phase: HackbrowserPhase;
682
+ targetUrl: string;
683
+ pagesExplored: number;
684
+ capturedEndpoints: number;
685
+ currentPage?: string;
686
+ errors: Array<string>;
687
+ startedAt: number;
688
+ finishedAt?: number;
689
+ };
690
+ export type EventSessionHackbrowserStatus = {
691
+ type: "session.hackbrowser.status";
692
+ properties: {
693
+ sessionID: string;
694
+ status: HackbrowserStatus;
695
+ };
696
+ };
651
697
  export type Todo = {
652
698
  /**
653
699
  * Brief description of the task
@@ -696,88 +742,46 @@ export type EventVulnerabilityUpdated = {
696
742
  vulnerabilities: Array<Vulnerability>;
697
743
  };
698
744
  };
699
- export type EventTuiPromptAppend = {
700
- type: "tui.prompt.append";
701
- properties: {
702
- text: string;
703
- };
704
- };
705
- export type EventTuiCommandExecute = {
706
- type: "tui.command.execute";
707
- properties: {
708
- command: "session.list" | "session.new" | "session.share" | "session.interrupt" | "session.compact" | "session.page.up" | "session.page.down" | "session.line.up" | "session.line.down" | "session.half.page.up" | "session.half.page.down" | "session.first" | "session.last" | "prompt.clear" | "prompt.submit" | "agent.cycle" | string;
709
- };
710
- };
711
- export type EventTuiToastShow = {
712
- type: "tui.toast.show";
713
- properties: {
714
- title?: string;
715
- message: string;
716
- variant: "info" | "success" | "warning" | "error";
717
- /**
718
- * Duration in milliseconds
719
- */
720
- duration?: number;
721
- };
722
- };
723
- export type EventTuiSessionSelect = {
724
- type: "tui.session.select";
725
- properties: {
726
- /**
727
- * Session ID to navigate to
728
- */
729
- sessionID: string;
730
- };
731
- };
732
- export type EventMcpToolsChanged = {
733
- type: "mcp.tools.changed";
734
- properties: {
735
- server: string;
736
- };
737
- };
738
- export type EventMcpBrowserOpenFailed = {
739
- type: "mcp.browser.open.failed";
740
- properties: {
741
- mcpName: string;
742
- url: string;
743
- };
744
- };
745
- export type WebRole = {
745
+ export type EndpointTemplate = {
746
746
  id: string;
747
747
  session_id: string;
748
- name: string;
749
- level?: number;
750
- discovered_from?: string;
748
+ origin: string;
749
+ method: "GET" | "POST" | "PUT" | "PATCH" | "DELETE" | "HEAD" | "OPTIONS";
750
+ template: string;
751
+ segment_count: number;
752
+ source: "tier1" | "tier3-llm";
753
+ confidence: number;
754
+ hit_count: number;
751
755
  time: {
752
756
  created: number;
753
757
  updated: number;
754
758
  };
755
759
  };
756
- export type EventWebRoleUpdated = {
757
- type: "web_role.updated";
760
+ export type EventEndpointTemplateUpdated = {
761
+ type: "endpoint_template.updated";
758
762
  properties: {
759
763
  sessionID: string;
760
- roles: Array<WebRole>;
764
+ templates: Array<EndpointTemplate>;
761
765
  };
762
766
  };
763
- export type WebRetest = {
767
+ export type WebFunction = {
764
768
  id: string;
765
769
  session_id: string;
770
+ name: string;
771
+ action_type: "create" | "read" | "update" | "delete";
766
772
  request_id: string;
767
- trigger_type: "new_role" | "new_object_value" | "new_credential";
768
- trigger_source: string;
769
- status: "pending" | "processing" | "completed";
770
- priority: "high" | "medium" | "low";
773
+ role_id?: string;
774
+ objects?: Array<string>;
771
775
  time: {
772
776
  created: number;
773
777
  updated: number;
774
778
  };
775
779
  };
776
- export type EventWebRetestUpdated = {
777
- type: "web_retest.updated";
780
+ export type EventWebFunctionUpdated = {
781
+ type: "web_function.updated";
778
782
  properties: {
779
783
  sessionID: string;
780
- queue: Array<WebRetest>;
784
+ functions: Array<WebFunction>;
781
785
  };
782
786
  };
783
787
  export type WebObject = {
@@ -821,24 +825,88 @@ export type EventWebObjectValueUpdated = {
821
825
  values: Array<WebObjectValue>;
822
826
  };
823
827
  };
824
- export type WebFunction = {
828
+ export type WebRole = {
825
829
  id: string;
826
830
  session_id: string;
827
831
  name: string;
828
- action_type: "create" | "read" | "update" | "delete";
832
+ level?: number;
833
+ discovered_from?: string;
834
+ time: {
835
+ created: number;
836
+ updated: number;
837
+ };
838
+ };
839
+ export type EventWebRoleUpdated = {
840
+ type: "web_role.updated";
841
+ properties: {
842
+ sessionID: string;
843
+ roles: Array<WebRole>;
844
+ };
845
+ };
846
+ export type WebRetest = {
847
+ id: string;
848
+ session_id: string;
829
849
  request_id: string;
830
- role_id?: string;
831
- objects?: Array<string>;
850
+ trigger_type: "new_role" | "new_object_value" | "new_credential";
851
+ trigger_source: string;
852
+ status: "pending" | "processing" | "completed";
853
+ priority: "high" | "medium" | "low";
832
854
  time: {
833
855
  created: number;
834
856
  updated: number;
835
857
  };
836
858
  };
837
- export type EventWebFunctionUpdated = {
838
- type: "web_function.updated";
859
+ export type EventWebRetestUpdated = {
860
+ type: "web_retest.updated";
839
861
  properties: {
840
862
  sessionID: string;
841
- functions: Array<WebFunction>;
863
+ queue: Array<WebRetest>;
864
+ };
865
+ };
866
+ export type EventTuiPromptAppend = {
867
+ type: "tui.prompt.append";
868
+ properties: {
869
+ text: string;
870
+ };
871
+ };
872
+ export type EventTuiCommandExecute = {
873
+ type: "tui.command.execute";
874
+ properties: {
875
+ command: "session.list" | "session.new" | "session.share" | "session.interrupt" | "session.compact" | "session.page.up" | "session.page.down" | "session.line.up" | "session.line.down" | "session.half.page.up" | "session.half.page.down" | "session.first" | "session.last" | "prompt.clear" | "prompt.submit" | "agent.cycle" | string;
876
+ };
877
+ };
878
+ export type EventTuiToastShow = {
879
+ type: "tui.toast.show";
880
+ properties: {
881
+ title?: string;
882
+ message: string;
883
+ variant: "info" | "success" | "warning" | "error";
884
+ /**
885
+ * Duration in milliseconds
886
+ */
887
+ duration?: number;
888
+ };
889
+ };
890
+ export type EventTuiSessionSelect = {
891
+ type: "tui.session.select";
892
+ properties: {
893
+ /**
894
+ * Session ID to navigate to
895
+ */
896
+ sessionID: string;
897
+ };
898
+ };
899
+ export type EventMcpToolsChanged = {
900
+ type: "mcp.tools.changed";
901
+ properties: {
902
+ server: string;
903
+ };
904
+ };
905
+ export type EventMcpBrowserOpenFailed = {
906
+ type: "mcp.browser.open.failed";
907
+ properties: {
908
+ mcpName: string;
909
+ url: string;
842
910
  };
843
911
  };
844
912
  export type EventCommandExecuted = {
@@ -973,7 +1041,7 @@ export type EventWorktreeFailed = {
973
1041
  message: string;
974
1042
  };
975
1043
  };
976
- export type Event = EventInstallationUpdated | EventInstallationUpdateAvailable | EventProjectUpdated | EventServerInstanceDisposed | EventServerConnected | EventGlobalDisposed | EventLspClientDiagnostics | EventLspUpdated | EventFileEdited | EventMessageUpdated | EventMessageRemoved | EventMessagePartUpdated | EventMessagePartDelta | EventMessagePartRemoved | EventPermissionAsked | EventPermissionReplied | EventSessionStatus | EventSessionIdle | EventQuestionAsked | EventQuestionReplied | EventQuestionRejected | EventSessionCompacted | EventFileWatcherUpdated | EventRequestUpdated | EventWebCredentialUpdated | EventTodoUpdated | EventVulnerabilityUpdated | EventTuiPromptAppend | EventTuiCommandExecute | EventTuiToastShow | EventTuiSessionSelect | EventMcpToolsChanged | EventMcpBrowserOpenFailed | EventWebRoleUpdated | EventWebRetestUpdated | EventWebObjectUpdated | EventWebObjectValueUpdated | EventWebFunctionUpdated | EventCommandExecuted | EventSessionCreated | EventSessionUpdated | EventSessionDeleted | EventSessionDiff | EventSessionError | EventVcsBranchUpdated | EventPtyCreated | EventPtyUpdated | EventPtyExited | EventPtyDeleted | EventWorktreeReady | EventWorktreeFailed;
1044
+ export type Event = EventInstallationUpdated | EventInstallationUpdateAvailable | EventProjectUpdated | EventServerInstanceDisposed | EventServerConnected | EventGlobalDisposed | EventLspClientDiagnostics | EventLspUpdated | EventFileEdited | EventMessageUpdated | EventMessageRemoved | EventMessagePartUpdated | EventMessagePartDelta | EventMessagePartRemoved | EventPermissionAsked | EventPermissionReplied | EventSessionStatus | EventSessionIdle | EventQuestionAsked | EventQuestionReplied | EventQuestionRejected | EventSessionCompacted | EventFileWatcherUpdated | EventRequestUpdated | EventWebCredentialUpdated | EventSessionQueueStatus | EventSessionHackbrowserStatus | EventTodoUpdated | EventVulnerabilityUpdated | EventEndpointTemplateUpdated | EventWebFunctionUpdated | EventWebObjectUpdated | EventWebObjectValueUpdated | EventWebRoleUpdated | EventWebRetestUpdated | EventTuiPromptAppend | EventTuiCommandExecute | EventTuiToastShow | EventTuiSessionSelect | EventMcpToolsChanged | EventMcpBrowserOpenFailed | EventCommandExecuted | EventSessionCreated | EventSessionUpdated | EventSessionDeleted | EventSessionDiff | EventSessionError | EventVcsBranchUpdated | EventPtyCreated | EventPtyUpdated | EventPtyExited | EventPtyDeleted | EventWorktreeReady | EventWorktreeFailed;
977
1045
  export type GlobalEvent = {
978
1046
  directory: string;
979
1047
  payload: Event;
@@ -1690,6 +1758,10 @@ export type Config = {
1690
1758
  * URLs to fetch skills from (e.g., https://example.com/.well-known/skills/)
1691
1759
  */
1692
1760
  urls?: Array<string>;
1761
+ /**
1762
+ * Skill names to disable (will not be loaded by agents)
1763
+ */
1764
+ disabled?: Array<string>;
1693
1765
  };
1694
1766
  watcher?: {
1695
1767
  ignore?: Array<string>;
@@ -2825,6 +2897,121 @@ export type SessionStatusResponses = {
2825
2897
  };
2826
2898
  };
2827
2899
  export type SessionStatusResponse = SessionStatusResponses[keyof SessionStatusResponses];
2900
+ export type SessionQueueStatusData = {
2901
+ body?: never;
2902
+ path?: never;
2903
+ query?: {
2904
+ directory?: string;
2905
+ };
2906
+ url: "/session/queue/status";
2907
+ };
2908
+ export type SessionQueueStatusErrors = {
2909
+ /**
2910
+ * Bad request
2911
+ */
2912
+ 400: BadRequestError;
2913
+ };
2914
+ export type SessionQueueStatusError = SessionQueueStatusErrors[keyof SessionQueueStatusErrors];
2915
+ export type SessionQueueStatusResponses = {
2916
+ /**
2917
+ * Queue status map keyed by sessionID
2918
+ */
2919
+ 200: {
2920
+ [key: string]: SessionQueueStatus;
2921
+ };
2922
+ };
2923
+ export type SessionQueueStatusResponse = SessionQueueStatusResponses[keyof SessionQueueStatusResponses];
2924
+ export type SessionHackbrowserLaunchData = {
2925
+ body?: {
2926
+ target: string;
2927
+ credentials?: Array<string>;
2928
+ scope?: Array<string>;
2929
+ exclude?: Array<string>;
2930
+ steps?: number;
2931
+ headless?: boolean;
2932
+ };
2933
+ path: {
2934
+ sessionID: string;
2935
+ };
2936
+ query?: {
2937
+ directory?: string;
2938
+ };
2939
+ url: "/session/{sessionID}/hackbrowser/launch";
2940
+ };
2941
+ export type SessionHackbrowserLaunchErrors = {
2942
+ /**
2943
+ * Bad request
2944
+ */
2945
+ 400: BadRequestError;
2946
+ /**
2947
+ * Not found
2948
+ */
2949
+ 404: NotFoundError;
2950
+ };
2951
+ export type SessionHackbrowserLaunchError = SessionHackbrowserLaunchErrors[keyof SessionHackbrowserLaunchErrors];
2952
+ export type SessionHackbrowserLaunchResponses = {
2953
+ /**
2954
+ * Crawl successfully kicked off; returns sessionID + started flag + status message
2955
+ */
2956
+ 200: {
2957
+ sessionID: string;
2958
+ started: boolean;
2959
+ message: string;
2960
+ };
2961
+ };
2962
+ export type SessionHackbrowserLaunchResponse = SessionHackbrowserLaunchResponses[keyof SessionHackbrowserLaunchResponses];
2963
+ export type SessionHackbrowserStopData = {
2964
+ body?: never;
2965
+ path: {
2966
+ sessionID: string;
2967
+ };
2968
+ query?: {
2969
+ directory?: string;
2970
+ };
2971
+ url: "/session/{sessionID}/hackbrowser/stop";
2972
+ };
2973
+ export type SessionHackbrowserStopErrors = {
2974
+ /**
2975
+ * Bad request
2976
+ */
2977
+ 400: BadRequestError;
2978
+ /**
2979
+ * Not found
2980
+ */
2981
+ 404: NotFoundError;
2982
+ };
2983
+ export type SessionHackbrowserStopError = SessionHackbrowserStopErrors[keyof SessionHackbrowserStopErrors];
2984
+ export type SessionHackbrowserStopResponses = {
2985
+ /**
2986
+ * true when a run was cancelled, false when no active run
2987
+ */
2988
+ 200: boolean;
2989
+ };
2990
+ export type SessionHackbrowserStopResponse = SessionHackbrowserStopResponses[keyof SessionHackbrowserStopResponses];
2991
+ export type SessionHackbrowserStatusData = {
2992
+ body?: never;
2993
+ path?: never;
2994
+ query?: {
2995
+ directory?: string;
2996
+ };
2997
+ url: "/session/hackbrowser/status";
2998
+ };
2999
+ export type SessionHackbrowserStatusErrors = {
3000
+ /**
3001
+ * Bad request
3002
+ */
3003
+ 400: BadRequestError;
3004
+ };
3005
+ export type SessionHackbrowserStatusError = SessionHackbrowserStatusErrors[keyof SessionHackbrowserStatusErrors];
3006
+ export type SessionHackbrowserStatusResponses = {
3007
+ /**
3008
+ * Hackbrowser status map keyed by sessionID
3009
+ */
3010
+ 200: {
3011
+ [key: string]: HackbrowserStatus;
3012
+ };
3013
+ };
3014
+ export type SessionHackbrowserStatusResponse = SessionHackbrowserStatusResponses[keyof SessionHackbrowserStatusResponses];
2828
3015
  export type SessionDeleteData = {
2829
3016
  body?: never;
2830
3017
  path: {
@@ -3365,6 +3552,32 @@ export type SessionIngestData = {
3365
3552
  */
3366
3553
  body: string;
3367
3554
  };
3555
+ /**
3556
+ * UI element that triggered this request (role:label)
3557
+ */
3558
+ trigger_element?: string;
3559
+ /**
3560
+ * Roles that can see the trigger element
3561
+ */
3562
+ element_roles?: Array<string>;
3563
+ /**
3564
+ * UI form context at request time
3565
+ */
3566
+ ui_context?: {
3567
+ [key: string]: unknown;
3568
+ };
3569
+ /**
3570
+ * Page being explored when request was captured
3571
+ */
3572
+ page_url?: string;
3573
+ /**
3574
+ * Roles that can visit this page
3575
+ */
3576
+ page_visited_by?: Array<string>;
3577
+ /**
3578
+ * URL scheme of the captured request; inferred from Host header / port when omitted
3579
+ */
3580
+ scheme?: "http" | "https";
3368
3581
  };
3369
3582
  path?: never;
3370
3583
  query?: {
@@ -3477,6 +3690,62 @@ export type SessionAbortResponses = {
3477
3690
  200: boolean;
3478
3691
  };
3479
3692
  export type SessionAbortResponse = SessionAbortResponses[keyof SessionAbortResponses];
3693
+ export type SessionQueuePauseData = {
3694
+ body?: never;
3695
+ path: {
3696
+ sessionID: string;
3697
+ };
3698
+ query?: {
3699
+ directory?: string;
3700
+ };
3701
+ url: "/session/{sessionID}/queue/pause";
3702
+ };
3703
+ export type SessionQueuePauseErrors = {
3704
+ /**
3705
+ * Bad request
3706
+ */
3707
+ 400: BadRequestError;
3708
+ /**
3709
+ * Not found
3710
+ */
3711
+ 404: NotFoundError;
3712
+ };
3713
+ export type SessionQueuePauseError = SessionQueuePauseErrors[keyof SessionQueuePauseErrors];
3714
+ export type SessionQueuePauseResponses = {
3715
+ /**
3716
+ * Paused
3717
+ */
3718
+ 200: boolean;
3719
+ };
3720
+ export type SessionQueuePauseResponse = SessionQueuePauseResponses[keyof SessionQueuePauseResponses];
3721
+ export type SessionQueueResumeData = {
3722
+ body?: never;
3723
+ path: {
3724
+ sessionID: string;
3725
+ };
3726
+ query?: {
3727
+ directory?: string;
3728
+ };
3729
+ url: "/session/{sessionID}/queue/resume";
3730
+ };
3731
+ export type SessionQueueResumeErrors = {
3732
+ /**
3733
+ * Bad request
3734
+ */
3735
+ 400: BadRequestError;
3736
+ /**
3737
+ * Not found
3738
+ */
3739
+ 404: NotFoundError;
3740
+ };
3741
+ export type SessionQueueResumeError = SessionQueueResumeErrors[keyof SessionQueueResumeErrors];
3742
+ export type SessionQueueResumeResponses = {
3743
+ /**
3744
+ * Resumed
3745
+ */
3746
+ 200: boolean;
3747
+ };
3748
+ export type SessionQueueResumeResponse = SessionQueueResumeResponses[keyof SessionQueueResumeResponses];
3480
3749
  export type SessionUnshareData = {
3481
3750
  body?: never;
3482
3751
  path: {
@@ -3639,6 +3908,7 @@ export type SessionPromptData = {
3639
3908
  format?: OutputFormat;
3640
3909
  system?: string;
3641
3910
  variant?: string;
3911
+ excludeHistory?: boolean;
3642
3912
  parts: Array<TextPartInput | FilePartInput | AgentPartInput | SubtaskPartInput>;
3643
3913
  };
3644
3914
  path: {
@@ -3807,6 +4077,7 @@ export type SessionPromptAsyncData = {
3807
4077
  format?: OutputFormat;
3808
4078
  system?: string;
3809
4079
  variant?: string;
4080
+ excludeHistory?: boolean;
3810
4081
  parts: Array<TextPartInput | FilePartInput | AgentPartInput | SubtaskPartInput>;
3811
4082
  };
3812
4083
  path: {
@@ -5140,7 +5411,7 @@ export type AppAgentsResponses = {
5140
5411
  200: Array<Agent>;
5141
5412
  };
5142
5413
  export type AppAgentsResponse = AppAgentsResponses[keyof AppAgentsResponses];
5143
- export type AppSkillsData = {
5414
+ export type SkillListData = {
5144
5415
  body?: never;
5145
5416
  path?: never;
5146
5417
  query?: {
@@ -5148,18 +5419,280 @@ export type AppSkillsData = {
5148
5419
  };
5149
5420
  url: "/skill";
5150
5421
  };
5151
- export type AppSkillsResponses = {
5422
+ export type SkillListResponses = {
5152
5423
  /**
5153
5424
  * List of skills
5154
5425
  */
5155
5426
  200: Array<{
5427
+ name: string;
5428
+ description: string;
5429
+ verified?: string;
5430
+ category?: string;
5431
+ owasp_id?: string;
5432
+ version?: string;
5433
+ author?: string;
5434
+ tags?: Array<string>;
5435
+ tech_stack?: Array<string>;
5436
+ cwe_ids?: Array<string>;
5437
+ chains_with?: Array<string>;
5438
+ }>;
5439
+ };
5440
+ export type SkillListResponse = SkillListResponses[keyof SkillListResponses];
5441
+ export type SkillSearchData = {
5442
+ body?: never;
5443
+ path?: never;
5444
+ query?: {
5445
+ directory?: string;
5446
+ q?: string;
5447
+ tech?: string;
5448
+ cwe?: string;
5449
+ category?: string;
5450
+ tag?: string;
5451
+ };
5452
+ url: "/skill/search";
5453
+ };
5454
+ export type SkillSearchResponses = {
5455
+ /**
5456
+ * Search results
5457
+ */
5458
+ 200: Array<{
5459
+ name: string;
5460
+ description: string;
5461
+ verified?: string;
5462
+ category?: string;
5463
+ owasp_id?: string;
5464
+ version?: string;
5465
+ author?: string;
5466
+ tags?: Array<string>;
5467
+ tech_stack?: Array<string>;
5468
+ cwe_ids?: Array<string>;
5469
+ chains_with?: Array<string>;
5470
+ }>;
5471
+ };
5472
+ export type SkillSearchResponse = SkillSearchResponses[keyof SkillSearchResponses];
5473
+ export type SkillContextData = {
5474
+ body?: never;
5475
+ path?: never;
5476
+ query?: {
5477
+ directory?: string;
5478
+ };
5479
+ url: "/skill/context";
5480
+ };
5481
+ export type SkillContextResponses = {
5482
+ /**
5483
+ * Context state
5484
+ */
5485
+ 200: {
5486
+ active: Array<string>;
5487
+ tokens: number;
5488
+ };
5489
+ };
5490
+ export type SkillContextResponse = SkillContextResponses[keyof SkillContextResponses];
5491
+ export type SkillChainData = {
5492
+ body?: {
5493
+ findings: Array<{
5494
+ skill_id: string;
5495
+ severity: "info" | "low" | "medium" | "high" | "critical";
5496
+ cwe_id?: string;
5497
+ tech_stack?: Array<string>;
5498
+ }>;
5499
+ };
5500
+ path?: never;
5501
+ query?: {
5502
+ directory?: string;
5503
+ };
5504
+ url: "/skill/chain";
5505
+ };
5506
+ export type SkillChainErrors = {
5507
+ /**
5508
+ * Bad request
5509
+ */
5510
+ 400: BadRequestError;
5511
+ };
5512
+ export type SkillChainError = SkillChainErrors[keyof SkillChainErrors];
5513
+ export type SkillChainResponses = {
5514
+ /**
5515
+ * Kill chain analysis results
5516
+ */
5517
+ 200: {
5518
+ chains: Array<{
5519
+ skills: Array<string>;
5520
+ combined_severity: string;
5521
+ description: string;
5522
+ next_steps: Array<string>;
5523
+ }>;
5524
+ summary: string;
5525
+ };
5526
+ };
5527
+ export type SkillChainResponse = SkillChainResponses[keyof SkillChainResponses];
5528
+ export type SkillRemoveData = {
5529
+ body?: never;
5530
+ path: {
5531
+ name: string;
5532
+ };
5533
+ query?: {
5534
+ directory?: string;
5535
+ };
5536
+ url: "/skill/{name}";
5537
+ };
5538
+ export type SkillRemoveErrors = {
5539
+ /**
5540
+ * Not found
5541
+ */
5542
+ 404: NotFoundError;
5543
+ };
5544
+ export type SkillRemoveError = SkillRemoveErrors[keyof SkillRemoveErrors];
5545
+ export type SkillRemoveResponses = {
5546
+ /**
5547
+ * Removal result
5548
+ */
5549
+ 200: {
5550
+ removed: boolean;
5551
+ name: string;
5552
+ };
5553
+ };
5554
+ export type SkillRemoveResponse = SkillRemoveResponses[keyof SkillRemoveResponses];
5555
+ export type SkillGetData = {
5556
+ body?: never;
5557
+ path: {
5558
+ name: string;
5559
+ };
5560
+ query?: {
5561
+ directory?: string;
5562
+ };
5563
+ url: "/skill/{name}";
5564
+ };
5565
+ export type SkillGetErrors = {
5566
+ /**
5567
+ * Not found
5568
+ */
5569
+ 404: NotFoundError;
5570
+ };
5571
+ export type SkillGetError = SkillGetErrors[keyof SkillGetErrors];
5572
+ export type SkillGetResponses = {
5573
+ /**
5574
+ * Skill detail
5575
+ */
5576
+ 200: {
5156
5577
  name: string;
5157
5578
  description: string;
5158
5579
  location: string;
5159
5580
  content: string;
5160
- }>;
5581
+ version?: string;
5582
+ author?: string;
5583
+ tags?: Array<string>;
5584
+ sha256?: string;
5585
+ signature?: string;
5586
+ signed_by?: string;
5587
+ verified?: "official" | "community" | "unverified" | "tampered";
5588
+ category?: string;
5589
+ owasp_id?: string;
5590
+ tech_stack?: Array<string>;
5591
+ cwe_ids?: Array<string>;
5592
+ chains_with?: Array<string>;
5593
+ prerequisites?: Array<string>;
5594
+ severity_boost?: {
5595
+ [key: string]: string;
5596
+ };
5597
+ };
5598
+ };
5599
+ export type SkillGetResponse = SkillGetResponses[keyof SkillGetResponses];
5600
+ export type SkillVerifyData = {
5601
+ body?: never;
5602
+ path: {
5603
+ name: string;
5604
+ };
5605
+ query?: {
5606
+ directory?: string;
5607
+ };
5608
+ url: "/skill/{name}/verify";
5609
+ };
5610
+ export type SkillVerifyErrors = {
5611
+ /**
5612
+ * Not found
5613
+ */
5614
+ 404: NotFoundError;
5615
+ };
5616
+ export type SkillVerifyError = SkillVerifyErrors[keyof SkillVerifyErrors];
5617
+ export type SkillVerifyResponses = {
5618
+ /**
5619
+ * Verification result
5620
+ */
5621
+ 200: {
5622
+ name: string;
5623
+ verified: string;
5624
+ };
5625
+ };
5626
+ export type SkillVerifyResponse = SkillVerifyResponses[keyof SkillVerifyResponses];
5627
+ export type SkillInstallData = {
5628
+ body?: {
5629
+ /**
5630
+ * URL to skill registry or individual skill
5631
+ */
5632
+ url: string;
5633
+ };
5634
+ path?: never;
5635
+ query?: {
5636
+ directory?: string;
5637
+ };
5638
+ url: "/skill/install";
5639
+ };
5640
+ export type SkillInstallErrors = {
5641
+ /**
5642
+ * Bad request
5643
+ */
5644
+ 400: BadRequestError;
5645
+ };
5646
+ export type SkillInstallError = SkillInstallErrors[keyof SkillInstallErrors];
5647
+ export type SkillInstallResponses = {
5648
+ /**
5649
+ * Installed skill names
5650
+ */
5651
+ 200: {
5652
+ installed: Array<string>;
5653
+ };
5654
+ };
5655
+ export type SkillInstallResponse = SkillInstallResponses[keyof SkillInstallResponses];
5656
+ export type SkillEnableData = {
5657
+ body?: never;
5658
+ path: {
5659
+ name: string;
5660
+ };
5661
+ query?: {
5662
+ directory?: string;
5663
+ };
5664
+ url: "/skill/{name}/enable";
5665
+ };
5666
+ export type SkillEnableResponses = {
5667
+ /**
5668
+ * Enable result
5669
+ */
5670
+ 200: {
5671
+ name: string;
5672
+ enabled: boolean;
5673
+ };
5674
+ };
5675
+ export type SkillEnableResponse = SkillEnableResponses[keyof SkillEnableResponses];
5676
+ export type SkillDisableData = {
5677
+ body?: never;
5678
+ path: {
5679
+ name: string;
5680
+ };
5681
+ query?: {
5682
+ directory?: string;
5683
+ };
5684
+ url: "/skill/{name}/disable";
5685
+ };
5686
+ export type SkillDisableResponses = {
5687
+ /**
5688
+ * Disable result
5689
+ */
5690
+ 200: {
5691
+ name: string;
5692
+ enabled: boolean;
5693
+ };
5161
5694
  };
5162
- export type AppSkillsResponse = AppSkillsResponses[keyof AppSkillsResponses];
5695
+ export type SkillDisableResponse = SkillDisableResponses[keyof SkillDisableResponses];
5163
5696
  export type LspStatusData = {
5164
5697
  body?: never;
5165
5698
  path?: never;