@nomad-e/bluma-cli 0.5.6 → 0.6.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.
- package/dist/config/native_tools.json +183 -56
- package/dist/main.js +1969 -2199
- package/package.json +1 -1
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"type": "function",
|
|
41
41
|
"function": {
|
|
42
42
|
"name": "edit_tool",
|
|
43
|
-
"description": "Replaces exact text in file(s) or creates files. **Prefer batching:** use `edits` with multiple `{file_path, old_string, new_string}` entries in **one** call when you need several replacements (same or different files) to save model turns. Order matters: later entries see the result of earlier ones on the same path.\n\n**Single-file mode:** `file_path` + `old_string` + `new_string` (legacy).\n\n**Avoid line-by-line surgery:** do not chain dozens of one-line calls; batch related changes or use one wide `old_string` block.\n- After `read_file_lines`, copy a **contiguous block** with unique context into `old_string`.\n-
|
|
43
|
+
"description": "Replaces exact text in file(s) or creates files.\n\n MANDATORY: Always call `read_file_lines` on the target file immediately before this tool. Never edit from memory or context — file content may have changed. Copy `old_string` verbatim from the read output.\n\n**Prefer batching:** use `edits` with multiple `{file_path, old_string, new_string}` entries in **one** call when you need several replacements (same or different files) to save model turns. Order matters: later entries see the result of earlier ones on the same path.\n\n**Single-file mode:** `file_path` + `old_string` + `new_string` (legacy).\n\n**Avoid line-by-line surgery:** do not chain dozens of one-line calls; batch related changes or use one wide `old_string` block.\n- After `read_file_lines`, copy a **contiguous block** with unique context into `old_string`.\n- Include 2–3 lines of surrounding context to make `old_string` unique in the file.\n- If no match, re-read the file — do not guess or adjust blindly.\n- Match indentation and whitespace **exactly** as it appears in the file.\n\n**Checklist before calling:**\n1. Did I call `read_file_lines` on this file in this turn?\n2. Is `old_string` copied verbatim from that output?\n3. Does the indentation match exactly?\n4. Is `old_string` unique in the file (no accidental double-replace)?\n\nNew file: `old_string` must be empty string.",
|
|
44
44
|
"parameters": {
|
|
45
45
|
"type": "object",
|
|
46
46
|
"properties": {
|
|
@@ -227,7 +227,6 @@
|
|
|
227
227
|
}
|
|
228
228
|
}
|
|
229
229
|
},
|
|
230
|
-
|
|
231
230
|
{
|
|
232
231
|
"type": "function",
|
|
233
232
|
"function": {
|
|
@@ -310,21 +309,21 @@
|
|
|
310
309
|
"type": "function",
|
|
311
310
|
"function": {
|
|
312
311
|
"name": "read_file_lines",
|
|
313
|
-
"description": "Reads a slice of a text
|
|
312
|
+
"description": "Reads a slice of a text FILE. ONLY works on files — never pass a directory path. If you are unsure what files exist inside a directory, call ls_tool first. Supports offset+limit or start_line+end_line; defaults to reading up to 2000 lines from line 1. Use line_number_prefix to get cat -n style output.",
|
|
314
313
|
"parameters": {
|
|
315
314
|
"type": "object",
|
|
316
315
|
"properties": {
|
|
317
316
|
"filepath": {
|
|
318
317
|
"type": "string",
|
|
319
|
-
"description": "Path to the file (workspace-relative
|
|
318
|
+
"description": "Path to the file to read (absolute or workspace-relative, ~ is supported). Must point to a file, not a directory."
|
|
320
319
|
},
|
|
321
320
|
"file_path": {
|
|
322
321
|
"type": "string",
|
|
323
|
-
"description": "Alias for filepath
|
|
322
|
+
"description": "Alias for filepath."
|
|
324
323
|
},
|
|
325
324
|
"offset": {
|
|
326
325
|
"type": "integer",
|
|
327
|
-
"description": "1-based start line
|
|
326
|
+
"description": "1-based start line (alias of start_line). Defaults to 1."
|
|
328
327
|
},
|
|
329
328
|
"start_line": {
|
|
330
329
|
"type": "integer",
|
|
@@ -332,15 +331,15 @@
|
|
|
332
331
|
},
|
|
333
332
|
"end_line": {
|
|
334
333
|
"type": "integer",
|
|
335
|
-
"description": "1-based end line inclusive.
|
|
334
|
+
"description": "1-based end line, inclusive. Use instead of limit when you know the exact range."
|
|
336
335
|
},
|
|
337
336
|
"limit": {
|
|
338
337
|
"type": "integer",
|
|
339
|
-
"description": "Number of lines to read from start.
|
|
338
|
+
"description": "Number of lines to read from start. end_line = start + limit - 1. Ignored if end_line is set."
|
|
340
339
|
},
|
|
341
340
|
"line_number_prefix": {
|
|
342
341
|
"type": "boolean",
|
|
343
|
-
"description": "If true, prefix each line with
|
|
342
|
+
"description": "If true, prefix each line with its line number (cat -n style: ' 1|content')."
|
|
344
343
|
}
|
|
345
344
|
},
|
|
346
345
|
"required": [
|
|
@@ -743,7 +742,13 @@
|
|
|
743
742
|
"action": {
|
|
744
743
|
"type": "string",
|
|
745
744
|
"description": "add=new note | list=all entries with ids | search=filter by query | remove=delete one entry by id | update=change note and/or tags for one id",
|
|
746
|
-
"enum": [
|
|
745
|
+
"enum": [
|
|
746
|
+
"add",
|
|
747
|
+
"list",
|
|
748
|
+
"search",
|
|
749
|
+
"remove",
|
|
750
|
+
"update"
|
|
751
|
+
]
|
|
747
752
|
},
|
|
748
753
|
"id": {
|
|
749
754
|
"type": "integer",
|
|
@@ -765,7 +770,9 @@
|
|
|
765
770
|
"description": "Required for search. Matches note text and tags."
|
|
766
771
|
}
|
|
767
772
|
},
|
|
768
|
-
"required": [
|
|
773
|
+
"required": [
|
|
774
|
+
"action"
|
|
775
|
+
]
|
|
769
776
|
}
|
|
770
777
|
}
|
|
771
778
|
},
|
|
@@ -782,27 +789,50 @@
|
|
|
782
789
|
"items": {
|
|
783
790
|
"type": "object",
|
|
784
791
|
"properties": {
|
|
785
|
-
"question": {
|
|
786
|
-
|
|
787
|
-
|
|
792
|
+
"question": {
|
|
793
|
+
"type": "string",
|
|
794
|
+
"description": "Question text"
|
|
795
|
+
},
|
|
796
|
+
"header": {
|
|
797
|
+
"type": "string",
|
|
798
|
+
"description": "Short section title"
|
|
799
|
+
},
|
|
800
|
+
"multiSelect": {
|
|
801
|
+
"type": "boolean",
|
|
802
|
+
"description": "Allow selecting multiple options for this question."
|
|
803
|
+
},
|
|
788
804
|
"options": {
|
|
789
805
|
"type": "array",
|
|
790
806
|
"items": {
|
|
791
807
|
"type": "object",
|
|
792
808
|
"properties": {
|
|
793
|
-
"label": {
|
|
794
|
-
|
|
795
|
-
|
|
809
|
+
"label": {
|
|
810
|
+
"type": "string"
|
|
811
|
+
},
|
|
812
|
+
"description": {
|
|
813
|
+
"type": "string"
|
|
814
|
+
},
|
|
815
|
+
"preview": {
|
|
816
|
+
"type": "string",
|
|
817
|
+
"description": "Optional rendered preview shown beside the options."
|
|
818
|
+
}
|
|
796
819
|
},
|
|
797
|
-
"required": [
|
|
820
|
+
"required": [
|
|
821
|
+
"label"
|
|
822
|
+
]
|
|
798
823
|
}
|
|
799
824
|
}
|
|
800
825
|
},
|
|
801
|
-
"required": [
|
|
826
|
+
"required": [
|
|
827
|
+
"question",
|
|
828
|
+
"options"
|
|
829
|
+
]
|
|
802
830
|
}
|
|
803
831
|
}
|
|
804
832
|
},
|
|
805
|
-
"required": [
|
|
833
|
+
"required": [
|
|
834
|
+
"questions"
|
|
835
|
+
]
|
|
806
836
|
}
|
|
807
837
|
}
|
|
808
838
|
},
|
|
@@ -814,7 +844,10 @@
|
|
|
814
844
|
"parameters": {
|
|
815
845
|
"type": "object",
|
|
816
846
|
"properties": {
|
|
817
|
-
"reason": {
|
|
847
|
+
"reason": {
|
|
848
|
+
"type": "string",
|
|
849
|
+
"description": "Why planning mode is being entered."
|
|
850
|
+
}
|
|
818
851
|
}
|
|
819
852
|
}
|
|
820
853
|
}
|
|
@@ -827,7 +860,10 @@
|
|
|
827
860
|
"parameters": {
|
|
828
861
|
"type": "object",
|
|
829
862
|
"properties": {
|
|
830
|
-
"summary": {
|
|
863
|
+
"summary": {
|
|
864
|
+
"type": "string",
|
|
865
|
+
"description": "Optional short summary of the plan for the transcript."
|
|
866
|
+
}
|
|
831
867
|
}
|
|
832
868
|
}
|
|
833
869
|
}
|
|
@@ -840,14 +876,25 @@
|
|
|
840
876
|
"parameters": {
|
|
841
877
|
"type": "object",
|
|
842
878
|
"properties": {
|
|
843
|
-
"title": {
|
|
844
|
-
|
|
879
|
+
"title": {
|
|
880
|
+
"type": "string"
|
|
881
|
+
},
|
|
882
|
+
"detail": {
|
|
883
|
+
"type": "string"
|
|
884
|
+
},
|
|
845
885
|
"status": {
|
|
846
886
|
"type": "string",
|
|
847
|
-
"enum": [
|
|
887
|
+
"enum": [
|
|
888
|
+
"pending",
|
|
889
|
+
"in_progress",
|
|
890
|
+
"completed",
|
|
891
|
+
"cancelled"
|
|
892
|
+
]
|
|
848
893
|
}
|
|
849
894
|
},
|
|
850
|
-
"required": [
|
|
895
|
+
"required": [
|
|
896
|
+
"title"
|
|
897
|
+
]
|
|
851
898
|
}
|
|
852
899
|
}
|
|
853
900
|
},
|
|
@@ -856,7 +903,10 @@
|
|
|
856
903
|
"function": {
|
|
857
904
|
"name": "task_list",
|
|
858
905
|
"description": "List all session tasks.",
|
|
859
|
-
"parameters": {
|
|
906
|
+
"parameters": {
|
|
907
|
+
"type": "object",
|
|
908
|
+
"properties": {}
|
|
909
|
+
}
|
|
860
910
|
}
|
|
861
911
|
},
|
|
862
912
|
{
|
|
@@ -866,8 +916,14 @@
|
|
|
866
916
|
"description": "Get one task by id.",
|
|
867
917
|
"parameters": {
|
|
868
918
|
"type": "object",
|
|
869
|
-
"properties": {
|
|
870
|
-
|
|
919
|
+
"properties": {
|
|
920
|
+
"task_id": {
|
|
921
|
+
"type": "string"
|
|
922
|
+
}
|
|
923
|
+
},
|
|
924
|
+
"required": [
|
|
925
|
+
"task_id"
|
|
926
|
+
]
|
|
871
927
|
}
|
|
872
928
|
}
|
|
873
929
|
},
|
|
@@ -879,15 +935,28 @@
|
|
|
879
935
|
"parameters": {
|
|
880
936
|
"type": "object",
|
|
881
937
|
"properties": {
|
|
882
|
-
"task_id": {
|
|
883
|
-
|
|
884
|
-
|
|
938
|
+
"task_id": {
|
|
939
|
+
"type": "string"
|
|
940
|
+
},
|
|
941
|
+
"title": {
|
|
942
|
+
"type": "string"
|
|
943
|
+
},
|
|
944
|
+
"detail": {
|
|
945
|
+
"type": "string"
|
|
946
|
+
},
|
|
885
947
|
"status": {
|
|
886
948
|
"type": "string",
|
|
887
|
-
"enum": [
|
|
949
|
+
"enum": [
|
|
950
|
+
"pending",
|
|
951
|
+
"in_progress",
|
|
952
|
+
"completed",
|
|
953
|
+
"cancelled"
|
|
954
|
+
]
|
|
888
955
|
}
|
|
889
956
|
},
|
|
890
|
-
"required": [
|
|
957
|
+
"required": [
|
|
958
|
+
"task_id"
|
|
959
|
+
]
|
|
891
960
|
}
|
|
892
961
|
}
|
|
893
962
|
},
|
|
@@ -898,8 +967,14 @@
|
|
|
898
967
|
"description": "Mark a task as cancelled (TaskStop-style).",
|
|
899
968
|
"parameters": {
|
|
900
969
|
"type": "object",
|
|
901
|
-
"properties": {
|
|
902
|
-
|
|
970
|
+
"properties": {
|
|
971
|
+
"task_id": {
|
|
972
|
+
"type": "string"
|
|
973
|
+
}
|
|
974
|
+
},
|
|
975
|
+
"required": [
|
|
976
|
+
"task_id"
|
|
977
|
+
]
|
|
903
978
|
}
|
|
904
979
|
}
|
|
905
980
|
},
|
|
@@ -911,7 +986,10 @@
|
|
|
911
986
|
"parameters": {
|
|
912
987
|
"type": "object",
|
|
913
988
|
"properties": {
|
|
914
|
-
"server": {
|
|
989
|
+
"server": {
|
|
990
|
+
"type": "string",
|
|
991
|
+
"description": "Optional: filter to one server name from config."
|
|
992
|
+
}
|
|
915
993
|
}
|
|
916
994
|
}
|
|
917
995
|
}
|
|
@@ -924,10 +1002,19 @@
|
|
|
924
1002
|
"parameters": {
|
|
925
1003
|
"type": "object",
|
|
926
1004
|
"properties": {
|
|
927
|
-
"server": {
|
|
928
|
-
|
|
1005
|
+
"server": {
|
|
1006
|
+
"type": "string",
|
|
1007
|
+
"description": "MCP server name as in bluma-mcp.json"
|
|
1008
|
+
},
|
|
1009
|
+
"uri": {
|
|
1010
|
+
"type": "string",
|
|
1011
|
+
"description": "Resource URI from list_mcp_resources"
|
|
1012
|
+
}
|
|
929
1013
|
},
|
|
930
|
-
"required": [
|
|
1014
|
+
"required": [
|
|
1015
|
+
"server",
|
|
1016
|
+
"uri"
|
|
1017
|
+
]
|
|
931
1018
|
}
|
|
932
1019
|
}
|
|
933
1020
|
},
|
|
@@ -939,14 +1026,23 @@
|
|
|
939
1026
|
"parameters": {
|
|
940
1027
|
"type": "object",
|
|
941
1028
|
"properties": {
|
|
942
|
-
"delay_seconds": {
|
|
943
|
-
|
|
1029
|
+
"delay_seconds": {
|
|
1030
|
+
"type": "integer",
|
|
1031
|
+
"description": "Seconds until first fire (1–604800)"
|
|
1032
|
+
},
|
|
1033
|
+
"prompt": {
|
|
1034
|
+
"type": "string",
|
|
1035
|
+
"description": "Text injected as a scheduled user message"
|
|
1036
|
+
},
|
|
944
1037
|
"repeat_interval_seconds": {
|
|
945
1038
|
"type": "integer",
|
|
946
1039
|
"description": "If set, repeat every N seconds after first fire (min 30)"
|
|
947
1040
|
}
|
|
948
1041
|
},
|
|
949
|
-
"required": [
|
|
1042
|
+
"required": [
|
|
1043
|
+
"delay_seconds",
|
|
1044
|
+
"prompt"
|
|
1045
|
+
]
|
|
950
1046
|
}
|
|
951
1047
|
}
|
|
952
1048
|
},
|
|
@@ -955,7 +1051,10 @@
|
|
|
955
1051
|
"function": {
|
|
956
1052
|
"name": "cron_list",
|
|
957
1053
|
"description": "List scheduled session cron jobs.",
|
|
958
|
-
"parameters": {
|
|
1054
|
+
"parameters": {
|
|
1055
|
+
"type": "object",
|
|
1056
|
+
"properties": {}
|
|
1057
|
+
}
|
|
959
1058
|
}
|
|
960
1059
|
},
|
|
961
1060
|
{
|
|
@@ -965,8 +1064,14 @@
|
|
|
965
1064
|
"description": "Cancel a scheduled job by id from cron_list.",
|
|
966
1065
|
"parameters": {
|
|
967
1066
|
"type": "object",
|
|
968
|
-
"properties": {
|
|
969
|
-
|
|
1067
|
+
"properties": {
|
|
1068
|
+
"job_id": {
|
|
1069
|
+
"type": "string"
|
|
1070
|
+
}
|
|
1071
|
+
},
|
|
1072
|
+
"required": [
|
|
1073
|
+
"job_id"
|
|
1074
|
+
]
|
|
970
1075
|
}
|
|
971
1076
|
}
|
|
972
1077
|
},
|
|
@@ -978,7 +1083,9 @@
|
|
|
978
1083
|
"parameters": {
|
|
979
1084
|
"type": "object",
|
|
980
1085
|
"properties": {
|
|
981
|
-
"filepath": {
|
|
1086
|
+
"filepath": {
|
|
1087
|
+
"type": "string"
|
|
1088
|
+
},
|
|
982
1089
|
"operation": {
|
|
983
1090
|
"type": "string",
|
|
984
1091
|
"enum": [
|
|
@@ -989,10 +1096,17 @@
|
|
|
989
1096
|
"delete_cell"
|
|
990
1097
|
]
|
|
991
1098
|
},
|
|
992
|
-
"cell_index": {
|
|
993
|
-
|
|
1099
|
+
"cell_index": {
|
|
1100
|
+
"type": "integer"
|
|
1101
|
+
},
|
|
1102
|
+
"source": {
|
|
1103
|
+
"type": "string"
|
|
1104
|
+
}
|
|
994
1105
|
},
|
|
995
|
-
"required": [
|
|
1106
|
+
"required": [
|
|
1107
|
+
"filepath",
|
|
1108
|
+
"operation"
|
|
1109
|
+
]
|
|
996
1110
|
}
|
|
997
1111
|
}
|
|
998
1112
|
},
|
|
@@ -1004,18 +1118,31 @@
|
|
|
1004
1118
|
"parameters": {
|
|
1005
1119
|
"type": "object",
|
|
1006
1120
|
"properties": {
|
|
1007
|
-
"filepath": {
|
|
1008
|
-
|
|
1009
|
-
|
|
1121
|
+
"filepath": {
|
|
1122
|
+
"type": "string"
|
|
1123
|
+
},
|
|
1124
|
+
"line": {
|
|
1125
|
+
"type": "integer"
|
|
1126
|
+
},
|
|
1127
|
+
"character": {
|
|
1128
|
+
"type": "integer",
|
|
1129
|
+
"description": "Default 0"
|
|
1130
|
+
},
|
|
1010
1131
|
"operation": {
|
|
1011
1132
|
"type": "string",
|
|
1012
|
-
"enum": [
|
|
1133
|
+
"enum": [
|
|
1134
|
+
"definition",
|
|
1135
|
+
"references"
|
|
1136
|
+
],
|
|
1013
1137
|
"description": "Default definition"
|
|
1014
1138
|
}
|
|
1015
1139
|
},
|
|
1016
|
-
"required": [
|
|
1140
|
+
"required": [
|
|
1141
|
+
"filepath",
|
|
1142
|
+
"line"
|
|
1143
|
+
]
|
|
1017
1144
|
}
|
|
1018
1145
|
}
|
|
1019
1146
|
}
|
|
1020
1147
|
]
|
|
1021
|
-
}
|
|
1148
|
+
}
|