git-coco 0.14.1 → 0.14.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -72,6 +72,13 @@ var os__namespace = /*#__PURE__*/_interopNamespaceDefault(os);
72
72
  var path__namespace = /*#__PURE__*/_interopNamespaceDefault(path);
73
73
  var readline__namespace = /*#__PURE__*/_interopNamespaceDefault(readline$1);
74
74
 
75
+ // This file is auto-generated - DO NOT EDIT
76
+ /* eslint-disable */
77
+ /**
78
+ * Current build version from package.json
79
+ */
80
+ const BUILD_VERSION = "0.14.3";
81
+
75
82
  const isInteractive = (config) => {
76
83
  return config?.mode === 'interactive' || !!config?.interactive;
77
84
  };
@@ -90,7 +97,7 @@ const bannerWithHeader = (banner) => {
90
97
  └────┘`);
91
98
  };
92
99
  const USAGE_BANNER = chalk.green(`${LOGO}
93
- ${chalk.bgGreen(`\xa0v${process.env.npm_package_version}\xa0`)}
100
+ ${chalk.bgGreen(`\xa0v${BUILD_VERSION}\xa0`) }
94
101
  `);
95
102
  const getCommandUsageHeader = (command) => {
96
103
  return chalk.green(`${USAGE_BANNER}\n${chalk.white('Command:')}\n\xa0\xa0\xa0\xa0\xa0 $0 ${chalk.greenBright(command)} [options]`);
@@ -276,6 +283,11 @@ const DEFAULT_OLLAMA_LLM_SERVICE = {
276
283
  */
277
284
  function getDefaultServiceConfigFromAlias(provider, model) {
278
285
  switch (provider) {
286
+ case 'anthropic':
287
+ return {
288
+ ...DEFAULT_OPENAI_LLM_SERVICE,
289
+ model: model || DEFAULT_OPENAI_LLM_SERVICE.model,
290
+ };
279
291
  case 'ollama':
280
292
  return {
281
293
  ...DEFAULT_OLLAMA_LLM_SERVICE,
@@ -537,8 +549,15 @@ function loadIgnore(config) {
537
549
  return config;
538
550
  }
539
551
 
540
- // this file is auto-generated by the 'build:schema' script
552
+ // This file is auto-generated - DO NOT EDIT
553
+ /* eslint-disable */
554
+ /**
555
+ * Schema ID for JSON validation
556
+ */
541
557
  const SCHEMA_PUBLIC_URL = "http://git-co.co/schema.json";
558
+ /**
559
+ * Generated JSON schema
560
+ */
542
561
  const schema$1 = {
543
562
  "$id": "http://git-co.co/schema.json",
544
563
  "$schema": "http://json-schema.org/draft-07/schema#",
@@ -554,14 +573,17 @@ const schema$1 = {
554
573
  "interactive": {
555
574
  "type": "boolean"
556
575
  },
557
- "help": {
558
- "type": "boolean"
559
- },
560
576
  "verbose": {
561
577
  "type": "boolean",
562
578
  "description": "Enable verbose logging.",
563
579
  "default": false
564
580
  },
581
+ "version": {
582
+ "type": "boolean"
583
+ },
584
+ "help": {
585
+ "type": "boolean"
586
+ },
565
587
  "mode": {
566
588
  "type": "string",
567
589
  "enum": [
@@ -628,6 +650,9 @@ const schema$1 = {
628
650
  },
629
651
  {
630
652
  "$ref": "#/definitions/OllamaLLMService"
653
+ },
654
+ {
655
+ "$ref": "#/definitions/AnthropicLLMService"
631
656
  }
632
657
  ]
633
658
  },
@@ -642,321 +667,151 @@ const schema$1 = {
642
667
  "$ref": "#/definitions/LLMModel"
643
668
  },
644
669
  "fields": {
645
- "anyOf": [
646
- {
647
- "type": "object",
648
- "additionalProperties": false,
649
- "properties": {
650
- "verbose": {
651
- "type": "boolean"
652
- },
653
- "callbacks": {
654
- "$ref": "#/definitions/Callbacks"
655
- },
656
- "tags": {
657
- "type": "array",
658
- "items": {
659
- "type": "string"
660
- }
661
- },
662
- "metadata": {
663
- "type": "object",
664
- "additionalProperties": {}
665
- },
666
- "maxConcurrency": {
667
- "type": "number",
668
- "description": "The maximum number of concurrent calls that can be made. Defaults to `Infinity`, which means no limit."
669
- },
670
- "maxRetries": {
671
- "type": "number",
672
- "description": "The maximum number of retries that can be made for a single call, with an exponential backoff between each attempt. Defaults to 6."
673
- },
674
- "onFailedAttempt": {
675
- "$ref": "#/definitions/FailedAttemptHandler",
676
- "description": "Custom handler to handle failed attempts. Takes the originally thrown error object as input, and should itself throw an error if the input error is not retryable."
677
- },
678
- "callbackManager": {
679
- "$ref": "#/definitions/CallbackManager",
680
- "deprecated": "Use `callbacks` instead"
681
- },
682
- "cache": {
683
- "anyOf": [
684
- {
685
- "$ref": "#/definitions/BaseCache"
686
- },
687
- {
688
- "type": "boolean"
689
- }
690
- ]
691
- },
692
- "concurrency": {
693
- "type": "number",
694
- "deprecated": "Use `maxConcurrency` instead"
695
- },
696
- "bestOf": {
697
- "type": "number",
698
- "description": "Generates `bestOf` completions server side and returns the \"best\""
699
- },
700
- "batchSize": {
701
- "type": "number",
702
- "description": "Batch size to use when passing multiple documents to generate"
703
- },
704
- "temperature": {
705
- "type": "number",
706
- "description": "Sampling temperature to use"
707
- },
708
- "maxTokens": {
709
- "type": "number",
710
- "description": "Maximum number of tokens to generate in the completion. -1 returns as many tokens as possible given the prompt and the model's maximum context size."
711
- },
712
- "topP": {
713
- "type": "number",
714
- "description": "Total probability mass of tokens to consider at each step"
715
- },
716
- "frequencyPenalty": {
717
- "type": "number",
718
- "description": "Penalizes repeated tokens according to frequency"
719
- },
720
- "presencePenalty": {
721
- "type": "number",
722
- "description": "Penalizes repeated tokens"
723
- },
724
- "n": {
725
- "type": "number",
726
- "description": "Number of completions to generate for each prompt"
727
- },
728
- "logitBias": {
729
- "type": "object",
730
- "additionalProperties": {
731
- "type": "number"
732
- },
733
- "description": "Dictionary used to adjust the probability of specific tokens being generated"
734
- },
735
- "user": {
736
- "type": "string",
737
- "description": "Unique string identifier representing your end-user, which can help OpenAI to monitor and detect abuse."
738
- },
739
- "streaming": {
740
- "type": "boolean",
741
- "description": "Whether to stream the results or not. Enabling disables tokenUsage reporting"
742
- },
743
- "streamUsage": {
744
- "type": "boolean",
745
- "description": "Whether or not to include token usage data in streamed chunks.",
746
- "default": true
747
- },
748
- "modelName": {
749
- "type": "string",
750
- "description": "Model name to use Alias for `model`"
751
- },
752
- "model": {
753
- "type": "string",
754
- "description": "Model name to use"
755
- },
756
- "modelKwargs": {
757
- "type": "object",
758
- "description": "Holds any additional parameters that are valid to pass to {@link * https://platform.openai.com/docs/api-reference/completions/create | } * `openai.createCompletion`} that are not explicitly specified on this class."
759
- },
760
- "stop": {
761
- "type": "array",
762
- "items": {
763
- "type": "string"
764
- },
765
- "description": "List of stop words to use when generating Alias for `stopSequences`"
766
- },
767
- "stopSequences": {
768
- "type": "array",
769
- "items": {
770
- "type": "string"
771
- },
772
- "description": "List of stop words to use when generating"
773
- },
774
- "timeout": {
775
- "type": "number",
776
- "description": "Timeout to use when making requests to OpenAI."
777
- },
778
- "openAIApiKey": {
779
- "type": "string",
780
- "description": "API key to use when making requests to OpenAI. Defaults to the value of `OPENAI_API_KEY` environment variable. Alias for `apiKey`"
781
- },
782
- "apiKey": {
783
- "type": "string",
784
- "description": "API key to use when making requests to OpenAI. Defaults to the value of `OPENAI_API_KEY` environment variable."
785
- }
670
+ "type": "object",
671
+ "additionalProperties": false,
672
+ "properties": {
673
+ "verbose": {
674
+ "type": "boolean"
675
+ },
676
+ "callbacks": {
677
+ "$ref": "#/definitions/Callbacks"
678
+ },
679
+ "tags": {
680
+ "type": "array",
681
+ "items": {
682
+ "type": "string"
786
683
  }
787
684
  },
788
- {
685
+ "metadata": {
789
686
  "type": "object",
790
- "additionalProperties": false,
791
- "properties": {
792
- "verbose": {
793
- "type": "boolean"
794
- },
795
- "callbacks": {
796
- "$ref": "#/definitions/Callbacks"
797
- },
798
- "tags": {
799
- "type": "array",
800
- "items": {
801
- "type": "string"
802
- }
803
- },
804
- "metadata": {
805
- "type": "object",
806
- "additionalProperties": {}
807
- },
808
- "maxConcurrency": {
809
- "type": "number",
810
- "description": "The maximum number of concurrent calls that can be made. Defaults to `Infinity`, which means no limit."
811
- },
812
- "maxRetries": {
813
- "type": "number",
814
- "description": "The maximum number of retries that can be made for a single call, with an exponential backoff between each attempt. Defaults to 6."
815
- },
816
- "onFailedAttempt": {
817
- "$ref": "#/definitions/FailedAttemptHandler",
818
- "description": "Custom handler to handle failed attempts. Takes the originally thrown error object as input, and should itself throw an error if the input error is not retryable."
819
- },
820
- "callbackManager": {
821
- "$ref": "#/definitions/CallbackManager",
822
- "deprecated": "Use `callbacks` instead"
823
- },
824
- "cache": {
825
- "anyOf": [
826
- {
827
- "$ref": "#/definitions/BaseCache"
828
- },
829
- {
830
- "type": "boolean"
831
- }
832
- ]
833
- },
834
- "concurrency": {
835
- "type": "number",
836
- "deprecated": "Use `maxConcurrency` instead"
837
- },
838
- "embeddingOnly": {
839
- "type": "boolean"
840
- },
841
- "f16KV": {
842
- "type": "boolean"
843
- },
844
- "frequencyPenalty": {
845
- "type": "number"
846
- },
847
- "headers": {
848
- "type": "object",
849
- "additionalProperties": {
850
- "type": "string"
851
- }
852
- },
853
- "keepAlive": {
854
- "type": "string"
855
- },
856
- "logitsAll": {
857
- "type": "boolean"
858
- },
859
- "lowVram": {
860
- "type": "boolean"
861
- },
862
- "mainGpu": {
863
- "type": "number"
864
- },
865
- "model": {
866
- "type": "string"
867
- },
868
- "baseUrl": {
869
- "type": "string"
870
- },
871
- "mirostat": {
872
- "type": "number"
873
- },
874
- "mirostatEta": {
875
- "type": "number"
876
- },
877
- "mirostatTau": {
878
- "type": "number"
879
- },
880
- "numBatch": {
881
- "type": "number"
882
- },
883
- "numCtx": {
884
- "type": "number"
885
- },
886
- "numGpu": {
887
- "type": "number"
888
- },
889
- "numGqa": {
890
- "type": "number"
891
- },
892
- "numKeep": {
893
- "type": "number"
894
- },
895
- "numPredict": {
896
- "type": "number"
897
- },
898
- "numThread": {
899
- "type": "number"
900
- },
901
- "penalizeNewline": {
902
- "type": "boolean"
903
- },
904
- "presencePenalty": {
905
- "type": "number"
906
- },
907
- "repeatLastN": {
908
- "type": "number"
909
- },
910
- "repeatPenalty": {
911
- "type": "number"
912
- },
913
- "ropeFrequencyBase": {
914
- "type": "number"
915
- },
916
- "ropeFrequencyScale": {
917
- "type": "number"
918
- },
919
- "temperature": {
920
- "type": "number"
921
- },
922
- "stop": {
923
- "type": "array",
924
- "items": {
925
- "type": "string"
926
- }
927
- },
928
- "tfsZ": {
929
- "type": "number"
930
- },
931
- "topK": {
932
- "type": "number"
933
- },
934
- "topP": {
935
- "type": "number"
936
- },
937
- "typicalP": {
938
- "type": "number"
939
- },
940
- "useMLock": {
941
- "type": "boolean"
942
- },
943
- "useMMap": {
944
- "type": "boolean"
687
+ "additionalProperties": {}
688
+ },
689
+ "maxConcurrency": {
690
+ "type": "number",
691
+ "description": "The maximum number of concurrent calls that can be made. Defaults to `Infinity`, which means no limit."
692
+ },
693
+ "maxRetries": {
694
+ "type": "number",
695
+ "description": "The maximum number of retries that can be made for a single call, with an exponential backoff between each attempt. Defaults to 6."
696
+ },
697
+ "onFailedAttempt": {
698
+ "$ref": "#/definitions/FailedAttemptHandler",
699
+ "description": "Custom handler to handle failed attempts. Takes the originally thrown error object as input, and should itself throw an error if the input error is not retryable."
700
+ },
701
+ "callbackManager": {
702
+ "$ref": "#/definitions/CallbackManager",
703
+ "deprecated": "Use `callbacks` instead"
704
+ },
705
+ "cache": {
706
+ "anyOf": [
707
+ {
708
+ "$ref": "#/definitions/BaseCache"
945
709
  },
946
- "vocabOnly": {
710
+ {
947
711
  "type": "boolean"
948
- },
949
- "format": {
950
- "$ref": "#/definitions/StringWithAutocomplete%3C%22json%22%3E"
951
712
  }
952
- }
713
+ ]
714
+ },
715
+ "concurrency": {
716
+ "type": "number",
717
+ "deprecated": "Use `maxConcurrency` instead"
718
+ },
719
+ "bestOf": {
720
+ "type": "number",
721
+ "description": "Generates `bestOf` completions server side and returns the \"best\""
722
+ },
723
+ "batchSize": {
724
+ "type": "number",
725
+ "description": "Batch size to use when passing multiple documents to generate"
726
+ },
727
+ "temperature": {
728
+ "type": "number",
729
+ "description": "Sampling temperature to use"
730
+ },
731
+ "maxTokens": {
732
+ "type": "number",
733
+ "description": "Maximum number of tokens to generate in the completion. -1 returns as many tokens as possible given the prompt and the model's maximum context size."
734
+ },
735
+ "topP": {
736
+ "type": "number",
737
+ "description": "Total probability mass of tokens to consider at each step"
738
+ },
739
+ "frequencyPenalty": {
740
+ "type": "number",
741
+ "description": "Penalizes repeated tokens according to frequency"
742
+ },
743
+ "presencePenalty": {
744
+ "type": "number",
745
+ "description": "Penalizes repeated tokens"
746
+ },
747
+ "n": {
748
+ "type": "number",
749
+ "description": "Number of completions to generate for each prompt"
750
+ },
751
+ "logitBias": {
752
+ "type": "object",
753
+ "additionalProperties": {
754
+ "type": "number"
755
+ },
756
+ "description": "Dictionary used to adjust the probability of specific tokens being generated"
757
+ },
758
+ "user": {
759
+ "type": "string",
760
+ "description": "Unique string identifier representing your end-user, which can help OpenAI to monitor and detect abuse."
761
+ },
762
+ "streaming": {
763
+ "type": "boolean",
764
+ "description": "Whether to stream the results or not. Enabling disables tokenUsage reporting"
765
+ },
766
+ "streamUsage": {
767
+ "type": "boolean",
768
+ "description": "Whether or not to include token usage data in streamed chunks.",
769
+ "default": true
770
+ },
771
+ "modelName": {
772
+ "type": "string",
773
+ "description": "Model name to use Alias for `model`"
774
+ },
775
+ "model": {
776
+ "type": "string",
777
+ "description": "Model name to use"
778
+ },
779
+ "modelKwargs": {
780
+ "type": "object",
781
+ "description": "Holds any additional parameters that are valid to pass to {@link * https://platform.openai.com/docs/api-reference/completions/create | } * `openai.createCompletion`} that are not explicitly specified on this class."
782
+ },
783
+ "stop": {
784
+ "type": "array",
785
+ "items": {
786
+ "type": "string"
787
+ },
788
+ "description": "List of stop words to use when generating Alias for `stopSequences`"
789
+ },
790
+ "stopSequences": {
791
+ "type": "array",
792
+ "items": {
793
+ "type": "string"
794
+ },
795
+ "description": "List of stop words to use when generating"
796
+ },
797
+ "timeout": {
798
+ "type": "number",
799
+ "description": "Timeout to use when making requests to OpenAI."
800
+ },
801
+ "openAIApiKey": {
802
+ "type": "string",
803
+ "description": "API key to use when making requests to OpenAI. Defaults to the value of `OPENAI_API_KEY` environment variable. Alias for `apiKey`"
804
+ },
805
+ "apiKey": {
806
+ "type": "string",
807
+ "description": "API key to use when making requests to OpenAI. Defaults to the value of `OPENAI_API_KEY` environment variable."
953
808
  }
954
- ]
809
+ }
955
810
  },
956
811
  "tokenLimit": {
957
812
  "type": "number",
958
813
  "description": "The maximum number of tokens per request.",
959
- "default": 1024
814
+ "default": 2048
960
815
  },
961
816
  "temperature": {
962
817
  "type": "number",
@@ -1066,7 +921,8 @@ const schema$1 = {
1066
921
  "type": "string",
1067
922
  "enum": [
1068
923
  "openai",
1069
- "ollama"
924
+ "ollama",
925
+ "anthropic"
1070
926
  ]
1071
927
  },
1072
928
  "LLMModel": {
@@ -1134,51 +990,76 @@ const schema$1 = {
1134
990
  },
1135
991
  {
1136
992
  "$ref": "#/definitions/OllamaModel"
993
+ },
994
+ {
995
+ "$ref": "#/definitions/AnthropicModel"
1137
996
  }
1138
997
  ]
1139
998
  },
1140
999
  "OllamaModel": {
1141
1000
  "type": "string",
1142
1001
  "enum": [
1143
- "neural-chat",
1144
- "aya:8b",
1145
- "aya:35b",
1146
- "mistral",
1147
- "llama2",
1148
- "codellama",
1149
- "codellama:7b",
1002
+ "codegemma:2b",
1003
+ "codegemma:7b-code",
1004
+ "codegemma",
1150
1005
  "codellama:13b",
1151
1006
  "codellama:34b",
1152
1007
  "codellama:70b",
1153
- "llama2-uncensored",
1008
+ "codellama:7b",
1009
+ "codellama:instruct",
1010
+ "codellama:latest",
1011
+ "codellama",
1012
+ "gemma:2b",
1013
+ "gemma:7b",
1014
+ "gemma:latest",
1015
+ "gemma",
1154
1016
  "llama2:13b",
1155
1017
  "llama2:70b",
1156
- "llama3",
1018
+ "llama2:chat",
1019
+ "llama2:latest",
1020
+ "llama2:text",
1021
+ "llama2",
1022
+ "llama3:70b-text",
1023
+ "llama3:70b",
1157
1024
  "llama3:latest",
1158
1025
  "llama3:text",
1159
- "llama3:70b",
1160
- "llama3:70b-text",
1161
- "orca2",
1162
- "orca2:13b",
1163
- "orca-mini",
1164
- "orca-mini:latest",
1165
- "orca-mini:13b",
1166
- "orca-mini:70b",
1167
- "phi3",
1168
- "phi3:mini",
1169
- "phi3:medium",
1026
+ "llama3.1:70b",
1027
+ "llama3.1:8b",
1028
+ "llama3.1:latest",
1029
+ "llama3.2",
1030
+ "llama3.2:latest",
1031
+ "llama3.2:1b",
1032
+ "llama3.2:3b",
1033
+ "llama3.2:1b-instruct-fp16",
1034
+ "llama3.2:1b-instruct-q3_K_M",
1035
+ "llama3",
1036
+ "mistral:7b",
1037
+ "mistral:latest",
1038
+ "mistral:text",
1039
+ "mistral",
1040
+ "phi3:14b",
1041
+ "phi3:3.8b",
1042
+ "phi3:instruct",
1170
1043
  "phi3:medium-128k",
1171
- "qwen2",
1172
- "qwen2:72b",
1173
- "qwen2:72b-text",
1174
- "qwen2:1.5b",
1044
+ "phi3:medium-4k",
1045
+ "phi3:medium",
1046
+ "phi3",
1175
1047
  "qwen2:0.5b",
1176
- "gemma",
1177
- "gemma:7b`",
1178
- "gemma:2b",
1179
- "codegemma",
1180
- "codegemma:7b-code",
1181
- "codegemma:2b"
1048
+ "qwen2:1.5b",
1049
+ "qwen2:72b-text",
1050
+ "qwen2:72b",
1051
+ "qwen2"
1052
+ ]
1053
+ },
1054
+ "AnthropicModel": {
1055
+ "type": "string",
1056
+ "enum": [
1057
+ "claude-3-5-sonnet-20240620",
1058
+ "claude-3-opus-20240229",
1059
+ "claude-3-sonnet-20240229",
1060
+ "claude-3-haiku-20240307",
1061
+ "claude-2.1",
1062
+ "claude-2.0"
1182
1063
  ]
1183
1064
  },
1184
1065
  "Callbacks": {
@@ -1343,20 +1224,6 @@ const schema$1 = {
1343
1224
  "additionalProperties": false,
1344
1225
  "description": "Base class for all caches. All caches should extend this class."
1345
1226
  },
1346
- "StringWithAutocomplete<\"json\">": {
1347
- "anyOf": [
1348
- {
1349
- "type": "string"
1350
- },
1351
- {
1352
- "type": "string",
1353
- "enum": [
1354
- "json"
1355
- ]
1356
- }
1357
- ],
1358
- "description": "Represents a string value with autocompleted, but not required, suggestions."
1359
- },
1360
1227
  "OllamaLLMService": {
1361
1228
  "type": "object",
1362
1229
  "additionalProperties": false,
@@ -1371,321 +1238,321 @@ const schema$1 = {
1371
1238
  "type": "string"
1372
1239
  },
1373
1240
  "fields": {
1241
+ "type": "object",
1242
+ "additionalProperties": false,
1243
+ "properties": {
1244
+ "verbose": {
1245
+ "type": "boolean"
1246
+ },
1247
+ "callbacks": {
1248
+ "$ref": "#/definitions/Callbacks"
1249
+ },
1250
+ "tags": {
1251
+ "type": "array",
1252
+ "items": {
1253
+ "type": "string"
1254
+ }
1255
+ },
1256
+ "metadata": {
1257
+ "type": "object",
1258
+ "additionalProperties": {}
1259
+ },
1260
+ "maxConcurrency": {
1261
+ "type": "number",
1262
+ "description": "The maximum number of concurrent calls that can be made. Defaults to `Infinity`, which means no limit."
1263
+ },
1264
+ "maxRetries": {
1265
+ "type": "number",
1266
+ "description": "The maximum number of retries that can be made for a single call, with an exponential backoff between each attempt. Defaults to 6."
1267
+ },
1268
+ "onFailedAttempt": {
1269
+ "$ref": "#/definitions/FailedAttemptHandler",
1270
+ "description": "Custom handler to handle failed attempts. Takes the originally thrown error object as input, and should itself throw an error if the input error is not retryable."
1271
+ },
1272
+ "callbackManager": {
1273
+ "$ref": "#/definitions/CallbackManager",
1274
+ "deprecated": "Use `callbacks` instead"
1275
+ },
1276
+ "cache": {
1277
+ "anyOf": [
1278
+ {
1279
+ "$ref": "#/definitions/BaseCache"
1280
+ },
1281
+ {
1282
+ "type": "boolean"
1283
+ }
1284
+ ]
1285
+ },
1286
+ "concurrency": {
1287
+ "type": "number",
1288
+ "deprecated": "Use `maxConcurrency` instead"
1289
+ },
1290
+ "embeddingOnly": {
1291
+ "type": "boolean"
1292
+ },
1293
+ "f16KV": {
1294
+ "type": "boolean"
1295
+ },
1296
+ "frequencyPenalty": {
1297
+ "type": "number"
1298
+ },
1299
+ "headers": {
1300
+ "type": "object",
1301
+ "additionalProperties": {
1302
+ "type": "string"
1303
+ }
1304
+ },
1305
+ "keepAlive": {
1306
+ "type": "string"
1307
+ },
1308
+ "logitsAll": {
1309
+ "type": "boolean"
1310
+ },
1311
+ "lowVram": {
1312
+ "type": "boolean"
1313
+ },
1314
+ "mainGpu": {
1315
+ "type": "number"
1316
+ },
1317
+ "model": {
1318
+ "type": "string"
1319
+ },
1320
+ "baseUrl": {
1321
+ "type": "string"
1322
+ },
1323
+ "mirostat": {
1324
+ "type": "number"
1325
+ },
1326
+ "mirostatEta": {
1327
+ "type": "number"
1328
+ },
1329
+ "mirostatTau": {
1330
+ "type": "number"
1331
+ },
1332
+ "numBatch": {
1333
+ "type": "number"
1334
+ },
1335
+ "numCtx": {
1336
+ "type": "number"
1337
+ },
1338
+ "numGpu": {
1339
+ "type": "number"
1340
+ },
1341
+ "numGqa": {
1342
+ "type": "number"
1343
+ },
1344
+ "numKeep": {
1345
+ "type": "number"
1346
+ },
1347
+ "numPredict": {
1348
+ "type": "number"
1349
+ },
1350
+ "numThread": {
1351
+ "type": "number"
1352
+ },
1353
+ "penalizeNewline": {
1354
+ "type": "boolean"
1355
+ },
1356
+ "presencePenalty": {
1357
+ "type": "number"
1358
+ },
1359
+ "repeatLastN": {
1360
+ "type": "number"
1361
+ },
1362
+ "repeatPenalty": {
1363
+ "type": "number"
1364
+ },
1365
+ "ropeFrequencyBase": {
1366
+ "type": "number"
1367
+ },
1368
+ "ropeFrequencyScale": {
1369
+ "type": "number"
1370
+ },
1371
+ "temperature": {
1372
+ "type": "number"
1373
+ },
1374
+ "stop": {
1375
+ "type": "array",
1376
+ "items": {
1377
+ "type": "string"
1378
+ }
1379
+ },
1380
+ "tfsZ": {
1381
+ "type": "number"
1382
+ },
1383
+ "topK": {
1384
+ "type": "number"
1385
+ },
1386
+ "topP": {
1387
+ "type": "number"
1388
+ },
1389
+ "typicalP": {
1390
+ "type": "number"
1391
+ },
1392
+ "useMLock": {
1393
+ "type": "boolean"
1394
+ },
1395
+ "useMMap": {
1396
+ "type": "boolean"
1397
+ },
1398
+ "vocabOnly": {
1399
+ "type": "boolean"
1400
+ },
1401
+ "format": {
1402
+ "$ref": "#/definitions/StringWithAutocomplete%3C%22json%22%3E"
1403
+ }
1404
+ }
1405
+ },
1406
+ "tokenLimit": {
1407
+ "type": "number",
1408
+ "description": "The maximum number of tokens per request.",
1409
+ "default": 2048
1410
+ },
1411
+ "temperature": {
1412
+ "type": "number",
1413
+ "description": "The temperature value controls the randomness of the generated output. Higher values (e.g., 0.8) make the output more random, while lower values (e.g., 0.2) make it more deterministic.",
1414
+ "default": 0.4
1415
+ },
1416
+ "maxConcurrent": {
1417
+ "type": "number",
1418
+ "description": "The maximum number of requests to make concurrently.",
1419
+ "default": 6
1420
+ },
1421
+ "authentication": {
1374
1422
  "anyOf": [
1375
1423
  {
1376
1424
  "type": "object",
1377
- "additionalProperties": false,
1378
1425
  "properties": {
1379
- "verbose": {
1380
- "type": "boolean"
1381
- },
1382
- "callbacks": {
1383
- "$ref": "#/definitions/Callbacks"
1384
- },
1385
- "tags": {
1386
- "type": "array",
1387
- "items": {
1388
- "type": "string"
1389
- }
1390
- },
1391
- "metadata": {
1392
- "type": "object",
1393
- "additionalProperties": {}
1394
- },
1395
- "maxConcurrency": {
1396
- "type": "number",
1397
- "description": "The maximum number of concurrent calls that can be made. Defaults to `Infinity`, which means no limit."
1398
- },
1399
- "maxRetries": {
1400
- "type": "number",
1401
- "description": "The maximum number of retries that can be made for a single call, with an exponential backoff between each attempt. Defaults to 6."
1402
- },
1403
- "onFailedAttempt": {
1404
- "$ref": "#/definitions/FailedAttemptHandler",
1405
- "description": "Custom handler to handle failed attempts. Takes the originally thrown error object as input, and should itself throw an error if the input error is not retryable."
1406
- },
1407
- "callbackManager": {
1408
- "$ref": "#/definitions/CallbackManager",
1409
- "deprecated": "Use `callbacks` instead"
1410
- },
1411
- "cache": {
1412
- "anyOf": [
1413
- {
1414
- "$ref": "#/definitions/BaseCache"
1415
- },
1416
- {
1417
- "type": "boolean"
1418
- }
1419
- ]
1420
- },
1421
- "concurrency": {
1422
- "type": "number",
1423
- "deprecated": "Use `maxConcurrency` instead"
1424
- },
1425
- "bestOf": {
1426
- "type": "number",
1427
- "description": "Generates `bestOf` completions server side and returns the \"best\""
1428
- },
1429
- "batchSize": {
1430
- "type": "number",
1431
- "description": "Batch size to use when passing multiple documents to generate"
1432
- },
1433
- "temperature": {
1434
- "type": "number",
1435
- "description": "Sampling temperature to use"
1436
- },
1437
- "maxTokens": {
1438
- "type": "number",
1439
- "description": "Maximum number of tokens to generate in the completion. -1 returns as many tokens as possible given the prompt and the model's maximum context size."
1440
- },
1441
- "topP": {
1442
- "type": "number",
1443
- "description": "Total probability mass of tokens to consider at each step"
1444
- },
1445
- "frequencyPenalty": {
1446
- "type": "number",
1447
- "description": "Penalizes repeated tokens according to frequency"
1448
- },
1449
- "presencePenalty": {
1450
- "type": "number",
1451
- "description": "Penalizes repeated tokens"
1452
- },
1453
- "n": {
1454
- "type": "number",
1455
- "description": "Number of completions to generate for each prompt"
1456
- },
1457
- "logitBias": {
1458
- "type": "object",
1459
- "additionalProperties": {
1460
- "type": "number"
1461
- },
1462
- "description": "Dictionary used to adjust the probability of specific tokens being generated"
1463
- },
1464
- "user": {
1465
- "type": "string",
1466
- "description": "Unique string identifier representing your end-user, which can help OpenAI to monitor and detect abuse."
1467
- },
1468
- "streaming": {
1469
- "type": "boolean",
1470
- "description": "Whether to stream the results or not. Enabling disables tokenUsage reporting"
1471
- },
1472
- "streamUsage": {
1473
- "type": "boolean",
1474
- "description": "Whether or not to include token usage data in streamed chunks.",
1475
- "default": true
1476
- },
1477
- "modelName": {
1426
+ "type": {
1478
1427
  "type": "string",
1479
- "description": "Model name to use Alias for `model`"
1428
+ "const": "None"
1480
1429
  },
1481
- "model": {
1430
+ "credentials": {
1431
+ "not": {}
1432
+ }
1433
+ },
1434
+ "required": [
1435
+ "type"
1436
+ ],
1437
+ "additionalProperties": false
1438
+ },
1439
+ {
1440
+ "type": "object",
1441
+ "properties": {
1442
+ "type": {
1482
1443
  "type": "string",
1483
- "description": "Model name to use"
1444
+ "const": "OAuth"
1484
1445
  },
1485
- "modelKwargs": {
1446
+ "credentials": {
1486
1447
  "type": "object",
1487
- "description": "Holds any additional parameters that are valid to pass to {@link * https://platform.openai.com/docs/api-reference/completions/create | } * `openai.createCompletion`} that are not explicitly specified on this class."
1488
- },
1489
- "stop": {
1490
- "type": "array",
1491
- "items": {
1492
- "type": "string"
1493
- },
1494
- "description": "List of stop words to use when generating Alias for `stopSequences`"
1495
- },
1496
- "stopSequences": {
1497
- "type": "array",
1498
- "items": {
1499
- "type": "string"
1448
+ "properties": {
1449
+ "clientId": {
1450
+ "type": "string"
1451
+ },
1452
+ "clientSecret": {
1453
+ "type": "string"
1454
+ },
1455
+ "token": {
1456
+ "type": "string"
1457
+ }
1500
1458
  },
1501
- "description": "List of stop words to use when generating"
1502
- },
1503
- "timeout": {
1504
- "type": "number",
1505
- "description": "Timeout to use when making requests to OpenAI."
1506
- },
1507
- "openAIApiKey": {
1508
- "type": "string",
1509
- "description": "API key to use when making requests to OpenAI. Defaults to the value of `OPENAI_API_KEY` environment variable. Alias for `apiKey`"
1510
- },
1511
- "apiKey": {
1512
- "type": "string",
1513
- "description": "API key to use when making requests to OpenAI. Defaults to the value of `OPENAI_API_KEY` environment variable."
1459
+ "additionalProperties": false
1514
1460
  }
1515
- }
1461
+ },
1462
+ "required": [
1463
+ "type",
1464
+ "credentials"
1465
+ ],
1466
+ "additionalProperties": false
1516
1467
  },
1517
1468
  {
1518
1469
  "type": "object",
1519
- "additionalProperties": false,
1520
1470
  "properties": {
1521
- "verbose": {
1522
- "type": "boolean"
1523
- },
1524
- "callbacks": {
1525
- "$ref": "#/definitions/Callbacks"
1526
- },
1527
- "tags": {
1528
- "type": "array",
1529
- "items": {
1530
- "type": "string"
1531
- }
1471
+ "type": {
1472
+ "type": "string",
1473
+ "const": "APIKey"
1532
1474
  },
1533
- "metadata": {
1475
+ "credentials": {
1534
1476
  "type": "object",
1535
- "additionalProperties": {}
1536
- },
1537
- "maxConcurrency": {
1538
- "type": "number",
1539
- "description": "The maximum number of concurrent calls that can be made. Defaults to `Infinity`, which means no limit."
1540
- },
1541
- "maxRetries": {
1542
- "type": "number",
1543
- "description": "The maximum number of retries that can be made for a single call, with an exponential backoff between each attempt. Defaults to 6."
1544
- },
1545
- "onFailedAttempt": {
1546
- "$ref": "#/definitions/FailedAttemptHandler",
1547
- "description": "Custom handler to handle failed attempts. Takes the originally thrown error object as input, and should itself throw an error if the input error is not retryable."
1548
- },
1549
- "callbackManager": {
1550
- "$ref": "#/definitions/CallbackManager",
1551
- "deprecated": "Use `callbacks` instead"
1552
- },
1553
- "cache": {
1554
- "anyOf": [
1555
- {
1556
- "$ref": "#/definitions/BaseCache"
1557
- },
1558
- {
1559
- "type": "boolean"
1477
+ "properties": {
1478
+ "apiKey": {
1479
+ "type": "string"
1560
1480
  }
1561
- ]
1562
- },
1563
- "concurrency": {
1564
- "type": "number",
1565
- "deprecated": "Use `maxConcurrency` instead"
1566
- },
1567
- "embeddingOnly": {
1568
- "type": "boolean"
1569
- },
1570
- "f16KV": {
1571
- "type": "boolean"
1572
- },
1573
- "frequencyPenalty": {
1574
- "type": "number"
1575
- },
1576
- "headers": {
1577
- "type": "object",
1578
- "additionalProperties": {
1579
- "type": "string"
1580
- }
1581
- },
1582
- "keepAlive": {
1583
- "type": "string"
1584
- },
1585
- "logitsAll": {
1586
- "type": "boolean"
1587
- },
1588
- "lowVram": {
1589
- "type": "boolean"
1590
- },
1591
- "mainGpu": {
1592
- "type": "number"
1593
- },
1594
- "model": {
1595
- "type": "string"
1596
- },
1597
- "baseUrl": {
1598
- "type": "string"
1599
- },
1600
- "mirostat": {
1601
- "type": "number"
1602
- },
1603
- "mirostatEta": {
1604
- "type": "number"
1605
- },
1606
- "mirostatTau": {
1607
- "type": "number"
1608
- },
1609
- "numBatch": {
1610
- "type": "number"
1611
- },
1612
- "numCtx": {
1613
- "type": "number"
1614
- },
1615
- "numGpu": {
1616
- "type": "number"
1617
- },
1618
- "numGqa": {
1619
- "type": "number"
1620
- },
1621
- "numKeep": {
1622
- "type": "number"
1623
- },
1624
- "numPredict": {
1625
- "type": "number"
1626
- },
1627
- "numThread": {
1628
- "type": "number"
1629
- },
1630
- "penalizeNewline": {
1631
- "type": "boolean"
1632
- },
1633
- "presencePenalty": {
1634
- "type": "number"
1635
- },
1636
- "repeatLastN": {
1637
- "type": "number"
1638
- },
1639
- "repeatPenalty": {
1640
- "type": "number"
1641
- },
1642
- "ropeFrequencyBase": {
1643
- "type": "number"
1644
- },
1645
- "ropeFrequencyScale": {
1646
- "type": "number"
1647
- },
1648
- "temperature": {
1649
- "type": "number"
1650
- },
1651
- "stop": {
1652
- "type": "array",
1653
- "items": {
1654
- "type": "string"
1655
- }
1656
- },
1657
- "tfsZ": {
1658
- "type": "number"
1659
- },
1660
- "topK": {
1661
- "type": "number"
1662
- },
1663
- "topP": {
1664
- "type": "number"
1665
- },
1666
- "typicalP": {
1667
- "type": "number"
1668
- },
1669
- "useMLock": {
1670
- "type": "boolean"
1671
- },
1672
- "useMMap": {
1673
- "type": "boolean"
1674
- },
1675
- "vocabOnly": {
1676
- "type": "boolean"
1677
- },
1678
- "format": {
1679
- "$ref": "#/definitions/StringWithAutocomplete%3C%22json%22%3E"
1481
+ },
1482
+ "required": [
1483
+ "apiKey"
1484
+ ],
1485
+ "additionalProperties": false
1680
1486
  }
1681
- }
1487
+ },
1488
+ "required": [
1489
+ "type",
1490
+ "credentials"
1491
+ ],
1492
+ "additionalProperties": false
1682
1493
  }
1683
1494
  ]
1684
1495
  },
1496
+ "requestOptions": {
1497
+ "type": "object",
1498
+ "properties": {
1499
+ "timeout": {
1500
+ "type": "number"
1501
+ },
1502
+ "maxRetries": {
1503
+ "type": "number"
1504
+ }
1505
+ },
1506
+ "additionalProperties": false
1507
+ }
1508
+ },
1509
+ "required": [
1510
+ "authentication",
1511
+ "endpoint",
1512
+ "model",
1513
+ "provider"
1514
+ ]
1515
+ },
1516
+ "StringWithAutocomplete<\"json\">": {
1517
+ "anyOf": [
1518
+ {
1519
+ "type": "string"
1520
+ },
1521
+ {
1522
+ "type": "string",
1523
+ "enum": [
1524
+ "json"
1525
+ ]
1526
+ }
1527
+ ],
1528
+ "description": "Represents a string value with autocompleted, but not required, suggestions."
1529
+ },
1530
+ "AnthropicLLMService": {
1531
+ "type": "object",
1532
+ "additionalProperties": false,
1533
+ "properties": {
1534
+ "provider": {
1535
+ "$ref": "#/definitions/LLMProvider"
1536
+ },
1537
+ "model": {
1538
+ "$ref": "#/definitions/LLMModel"
1539
+ },
1540
+ "fields": {
1541
+ "type": "object",
1542
+ "properties": {
1543
+ "temperature": {
1544
+ "type": "number"
1545
+ },
1546
+ "maxTokens": {
1547
+ "type": "number"
1548
+ }
1549
+ },
1550
+ "additionalProperties": false
1551
+ },
1685
1552
  "tokenLimit": {
1686
1553
  "type": "number",
1687
1554
  "description": "The maximum number of tokens per request.",
1688
- "default": 1024
1555
+ "default": 2048
1689
1556
  },
1690
1557
  "temperature": {
1691
1558
  "type": "number",
@@ -1787,7 +1654,6 @@ const schema$1 = {
1787
1654
  },
1788
1655
  "required": [
1789
1656
  "authentication",
1790
- "endpoint",
1791
1657
  "model",
1792
1658
  "provider"
1793
1659
  ]
@@ -1867,6 +1733,18 @@ function parseServiceConfig(service) {
1867
1733
  }
1868
1734
  }
1869
1735
  };
1736
+ case 'anthropic':
1737
+ return {
1738
+ provider: 'anthropic',
1739
+ model: service.model,
1740
+ authentication: {
1741
+ type: 'APIKey',
1742
+ credentials: {
1743
+ apiKey: service.apiKey
1744
+ }
1745
+ },
1746
+ fields: service.fields
1747
+ };
1870
1748
  case 'ollama':
1871
1749
  return {
1872
1750
  provider: 'ollama',
@@ -1975,6 +1853,31 @@ function commandExecutor(handler) {
1975
1853
  };
1976
1854
  }
1977
1855
 
1856
+ const command$4 = 'changelog';
1857
+ /**
1858
+ * Command line options via yargs
1859
+ */
1860
+ const options$4 = {
1861
+ range: {
1862
+ type: 'string',
1863
+ alias: 'r',
1864
+ description: 'Commit range e.g `HEAD~2:HEAD`',
1865
+ },
1866
+ branch: {
1867
+ type: 'string',
1868
+ alias: 'b',
1869
+ description: 'Target branch to compare against',
1870
+ },
1871
+ i: {
1872
+ type: 'boolean',
1873
+ alias: 'interactive',
1874
+ description: 'Toggle interactive mode',
1875
+ },
1876
+ };
1877
+ const builder$4 = (yargs) => {
1878
+ return yargs.options(options$4).usage(getCommandUsageHeader(command$4));
1879
+ };
1880
+
1978
1881
  /**
1979
1882
  * Get LLM Model Based on Configuration
1980
1883
  *
@@ -2397,8 +2300,11 @@ async function handleResult({ result, mode, interactiveModeCallback }) {
2397
2300
 
2398
2301
  const template$3 = `Write informative git changelog, in the imperative, based on a series of individual messages.
2399
2302
 
2400
- - Include the git commit hash as reference for each change, including just the first 7 characters
2303
+ - Annotate each change with the git commit hash as reference, including just the first 7 characters
2401
2304
  - Logically group changes, and if necessary, summarize dependency updates
2305
+ - Include a descriptive title for the changelog, to give a high-level overview of the changes
2306
+ - Depending on the size of the changes, consider breaking the changelog into sections
2307
+ - Avoid generlizations like "various bug fixes" or "improvements" or "enhancements"
2402
2308
 
2403
2309
  {format_instructions}
2404
2310
 
@@ -2479,7 +2385,7 @@ const handler$4 = async (argv, logger) => {
2479
2385
  variables: CHANGELOG_PROMPT.inputVariables,
2480
2386
  fallback: CHANGELOG_PROMPT,
2481
2387
  });
2482
- const formatInstructions = "Respond with a valid JSON object, containing two fields: 'header' and 'content', both strings.";
2388
+ const formatInstructions = "Respond with a valid JSON object, containing two fields: 'title' a string, no more than 65 characters, and 'content' a string.";
2483
2389
  const changelog = await executeChain({
2484
2390
  llm,
2485
2391
  prompt,
@@ -2492,7 +2398,7 @@ const handler$4 = async (argv, logger) => {
2492
2398
  const branchName = await getCurrentBranchName({ git });
2493
2399
  const ticketId = extractTicketIdFromBranchName(branchName);
2494
2400
  const footer = ticketId ? `\n\nPart of **${ticketId}**` : '';
2495
- return `${changelog.header}\n\n${changelog.content}${footer}`;
2401
+ return `${changelog.title}\n\n${changelog.content}${footer}`;
2496
2402
  },
2497
2403
  noResult: async () => {
2498
2404
  if (config.range) {
@@ -2513,36 +2419,47 @@ const handler$4 = async (argv, logger) => {
2513
2419
  });
2514
2420
  };
2515
2421
 
2422
+ var changelog = {
2423
+ command: command$4,
2424
+ desc: 'Generate a changelog from current or target branch or provided commit range.',
2425
+ builder: builder$4,
2426
+ handler: commandExecutor(handler$4),
2427
+ options: options$4,
2428
+ };
2429
+
2430
+ const command$3 = 'commit';
2516
2431
  /**
2517
2432
  * Command line options via yargs
2518
2433
  */
2519
- const options$4 = {
2520
- range: {
2521
- type: 'string',
2522
- alias: 'r',
2523
- description: 'Commit range e.g `HEAD~2:HEAD`',
2434
+ const options$3 = {
2435
+ i: {
2436
+ alias: 'interactive',
2437
+ description: 'Toggle interactive mode',
2438
+ type: 'boolean',
2524
2439
  },
2525
- branch: {
2440
+ ignoredFiles: {
2441
+ description: 'Ignored files',
2442
+ type: 'array',
2443
+ },
2444
+ ignoredExtensions: {
2445
+ description: 'Ignored extensions',
2446
+ type: 'array',
2447
+ },
2448
+ append: {
2449
+ description: 'Add content to the end of the generated commit message',
2526
2450
  type: 'string',
2527
- alias: 'b',
2528
- description: 'Target branch to compare against',
2529
2451
  },
2530
- i: {
2452
+ appendTicket: {
2453
+ description: 'Append ticket ID from branch name to the commit message',
2531
2454
  type: 'boolean',
2532
- alias: 'interactive',
2533
- description: 'Toggle interactive mode',
2455
+ },
2456
+ additional: {
2457
+ description: 'Add extra contextual information to the prompt',
2458
+ type: 'string',
2534
2459
  },
2535
2460
  };
2536
- const builder$4 = (yargs) => {
2537
- return yargs.options(options$4).usage(getCommandUsageHeader(changelog.command));
2538
- };
2539
-
2540
- var changelog = {
2541
- command: 'changelog',
2542
- desc: 'Generate a changelog from current or target branch or provided commit range.',
2543
- builder: builder$4,
2544
- handler: commandExecutor(handler$4),
2545
- options: options$4,
2461
+ const builder$3 = (yargs) => {
2462
+ return yargs.options(options$3).usage(getCommandUsageHeader(command$3));
2546
2463
  };
2547
2464
 
2548
2465
  /**
@@ -6344,7 +6261,13 @@ const handler$3 = async (argv, logger) => {
6344
6261
  logger.log(LOGO);
6345
6262
  }
6346
6263
  async function factory() {
6347
- const changes = await getChanges({ git });
6264
+ const changes = await getChanges({
6265
+ git,
6266
+ options: {
6267
+ ignoredFiles: config.ignoredFiles || undefined,
6268
+ ignoredExtensions: config.ignoredExtensions || undefined,
6269
+ },
6270
+ });
6348
6271
  return changes.staged;
6349
6272
  }
6350
6273
  async function parser(changes) {
@@ -6414,46 +6337,27 @@ const handler$3 = async (argv, logger) => {
6414
6337
  });
6415
6338
  };
6416
6339
 
6340
+ var commit = {
6341
+ command: command$3,
6342
+ desc: 'Summarize the staged changes in a commit message.',
6343
+ builder: builder$3,
6344
+ handler: commandExecutor(handler$3),
6345
+ options: options$3,
6346
+ };
6347
+
6348
+ const command$2 = 'init';
6417
6349
  /**
6418
6350
  * Command line options via yargs
6419
6351
  */
6420
- const options$3 = {
6421
- i: {
6422
- alias: 'interactive',
6423
- description: 'Toggle interactive mode',
6424
- type: 'boolean',
6425
- },
6426
- ignoredFiles: {
6427
- description: 'Ignored files',
6428
- type: 'array',
6429
- },
6430
- ignoredExtensions: {
6431
- description: 'Ignored extensions',
6432
- type: 'array',
6433
- },
6434
- append: {
6435
- description: 'Add content to the end of the generated commit message',
6436
- type: 'string',
6437
- },
6438
- appendTicket: {
6439
- description: 'Append ticket ID from branch name to the commit message',
6440
- type: 'boolean',
6441
- },
6442
- additional: {
6443
- description: 'Add extra contextual information to the prompt',
6352
+ const options$2 = {
6353
+ scope: {
6444
6354
  type: 'string',
6355
+ description: 'configure coco for the current user or project?',
6356
+ choices: ['global', 'project'],
6445
6357
  },
6446
6358
  };
6447
- const builder$3 = (yargs) => {
6448
- return yargs.options(options$3).usage(getCommandUsageHeader(commit.command));
6449
- };
6450
-
6451
- var commit = {
6452
- command: 'commit',
6453
- desc: 'Summarize the staged changes in a commit message.',
6454
- builder: builder$3,
6455
- handler: commandExecutor(handler$3),
6456
- options: options$3,
6359
+ const builder$2 = (yargs) => {
6360
+ return yargs.options(options$2).usage(getCommandUsageHeader(command$2));
6457
6361
  };
6458
6362
 
6459
6363
  /**
@@ -6889,28 +6793,48 @@ const handler$2 = async (argv, logger) => {
6889
6793
  }
6890
6794
  };
6891
6795
 
6892
- /**
6893
- * Command line options via yargs
6894
- */
6895
- const options$2 = {
6896
- scope: {
6897
- type: 'string',
6898
- description: 'configure coco for the current user or project?',
6899
- choices: ['global', 'project'],
6900
- },
6901
- };
6902
- const builder$2 = (yargs) => {
6903
- return yargs.options(options$2).usage(getCommandUsageHeader(init.command));
6904
- };
6905
-
6906
6796
  var init = {
6907
- command: 'init',
6797
+ command: command$2,
6908
6798
  desc: 'install & configure coco globally or for the current project',
6909
6799
  builder: builder$2,
6910
6800
  handler: commandExecutor(handler$2),
6911
6801
  options: options$2,
6912
6802
  };
6913
6803
 
6804
+ const command$1 = 'recap';
6805
+ /**
6806
+ * Command line options via yargs
6807
+ */
6808
+ const options$1 = {
6809
+ yesterday: {
6810
+ type: 'boolean',
6811
+ description: 'Recap for yesterday',
6812
+ },
6813
+ 'last-week': {
6814
+ alias: 'week',
6815
+ type: 'boolean',
6816
+ description: 'Recap for last week',
6817
+ },
6818
+ 'last-month': {
6819
+ alias: 'month',
6820
+ type: 'boolean',
6821
+ description: 'Recap for last month',
6822
+ },
6823
+ 'last-tag': {
6824
+ alias: 'tag',
6825
+ type: 'boolean',
6826
+ description: 'Recap for last tag',
6827
+ },
6828
+ i: {
6829
+ type: 'boolean',
6830
+ alias: 'interactive',
6831
+ description: 'Toggle interactive mode',
6832
+ },
6833
+ };
6834
+ const builder$1 = (yargs) => {
6835
+ return yargs.options(options$1).usage(getCommandUsageHeader(command$1));
6836
+ };
6837
+
6914
6838
  /**
6915
6839
  * Formats a commit log into a readable string format.
6916
6840
  *
@@ -7089,45 +7013,32 @@ const handler$1 = async (argv, logger) => {
7089
7013
  });
7090
7014
  };
7091
7015
 
7016
+ var recap = {
7017
+ command: command$1,
7018
+ desc: 'Summarize the changes in the repository over a specified timeframe.',
7019
+ builder: builder$1,
7020
+ handler: commandExecutor(handler$1),
7021
+ options: options$1,
7022
+ };
7023
+
7024
+ const command = 'review';
7092
7025
  /**
7093
7026
  * Command line options via yargs
7094
7027
  */
7095
- const options$1 = {
7096
- yesterday: {
7097
- type: 'boolean',
7098
- description: 'Recap for yesterday',
7099
- },
7100
- 'last-week': {
7101
- alias: 'week',
7102
- type: 'boolean',
7103
- description: 'Recap for last week',
7104
- },
7105
- 'last-month': {
7106
- alias: 'month',
7107
- type: 'boolean',
7108
- description: 'Recap for last month',
7109
- },
7110
- 'last-tag': {
7111
- alias: 'tag',
7112
- type: 'boolean',
7113
- description: 'Recap for last tag',
7114
- },
7028
+ const options = {
7115
7029
  i: {
7116
7030
  type: 'boolean',
7117
7031
  alias: 'interactive',
7118
7032
  description: 'Toggle interactive mode',
7119
7033
  },
7034
+ b: {
7035
+ type: 'string',
7036
+ alias: 'branch',
7037
+ description: 'Branch to review',
7038
+ },
7120
7039
  };
7121
- const builder$1 = (yargs) => {
7122
- return yargs.options(options$1).usage(getCommandUsageHeader(recap.command));
7123
- };
7124
-
7125
- var recap = {
7126
- command: 'recap',
7127
- desc: 'Summarize the changes in the repository over a specified timeframe.',
7128
- builder: builder$1,
7129
- handler: commandExecutor(handler$1),
7130
- options: options$1,
7040
+ const builder = (yargs) => {
7041
+ return yargs.options(options).usage(getCommandUsageHeader(command));
7131
7042
  };
7132
7043
 
7133
7044
  /**
@@ -28444,28 +28355,9 @@ const handler = async (argv, logger) => {
28444
28355
  await reviewer.start();
28445
28356
  };
28446
28357
 
28447
- /**
28448
- * Command line options via yargs
28449
- */
28450
- const options = {
28451
- i: {
28452
- type: 'boolean',
28453
- alias: 'interactive',
28454
- description: 'Toggle interactive mode',
28455
- },
28456
- 'b': {
28457
- type: 'string',
28458
- alias: 'branch',
28459
- description: 'Branch to review',
28460
- },
28461
- };
28462
- const builder = (yargs) => {
28463
- return yargs.options(options).usage(getCommandUsageHeader(review.command));
28464
- };
28465
-
28466
28358
  var review = {
28467
- command: 'review',
28468
- desc: 'Review the staged changes',
28359
+ command,
28360
+ desc: 'Perform a code review on your changes',
28469
28361
  builder,
28470
28362
  handler: commandExecutor(handler),
28471
28363
  options,