juno-code 1.0.29 → 1.0.31
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/bin/cli.js +69 -5
- package/dist/bin/cli.js.map +1 -1
- package/dist/bin/cli.mjs +69 -5
- package/dist/bin/cli.mjs.map +1 -1
- package/dist/index.js +32 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +32 -1
- package/dist/index.mjs.map +1 -1
- package/dist/templates/services/claude.py +75 -17
- package/package.json +6 -6
|
@@ -33,6 +33,13 @@ class ClaudeService:
|
|
|
33
33
|
":opus": "claude-opus-4-5-20251101",
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
+
# Default allowed tools (used with --append-allowed-tools)
|
|
37
|
+
DEFAULT_ALLOWED_TOOLS = [
|
|
38
|
+
"Task", "Bash", "Glob", "Grep", "ExitPlanMode", "Read", "Edit", "Write",
|
|
39
|
+
"NotebookEdit", "WebFetch", "TodoWrite", "WebSearch", "BashOutput",
|
|
40
|
+
"KillShell", "Skill", "SlashCommand", "EnterPlanMode"
|
|
41
|
+
]
|
|
42
|
+
|
|
36
43
|
def __init__(self):
|
|
37
44
|
self.model_name = self.DEFAULT_MODEL
|
|
38
45
|
self.permission_mode = self.DEFAULT_PERMISSION_MODE
|
|
@@ -83,9 +90,15 @@ class ClaudeService:
|
|
|
83
90
|
Examples:
|
|
84
91
|
%(prog)s -p "Write a hello world function"
|
|
85
92
|
%(prog)s -pp prompt.txt --cd /path/to/project
|
|
86
|
-
%(prog)s -p "Add tests" -m :opus --tool
|
|
87
|
-
%(prog)s -p "Quick task" -m :haiku
|
|
88
|
-
%(prog)s -p "Complex task" -m claude-opus-4-20250514
|
|
93
|
+
%(prog)s -p "Add tests" -m :opus --tool Bash --tool Edit
|
|
94
|
+
%(prog)s -p "Quick task" -m :haiku --disallowed-tool Bash
|
|
95
|
+
%(prog)s -p "Complex task" -m claude-opus-4-20250514 --tool Read --tool Write
|
|
96
|
+
%(prog)s -p "Multi-tool task" --allowed-tools Bash Edit Read Write
|
|
97
|
+
%(prog)s -p "Restricted task" --disallowed-tools Bash WebSearch
|
|
98
|
+
|
|
99
|
+
Default Tools (enabled by default when no --allowed-tools specified):
|
|
100
|
+
Task, Bash, Glob, Grep, ExitPlanMode, Read, Edit, Write, NotebookEdit,
|
|
101
|
+
WebFetch, TodoWrite, WebSearch, BashOutput, KillShell, Skill, SlashCommand, EnterPlanMode
|
|
89
102
|
|
|
90
103
|
Environment Variables:
|
|
91
104
|
CLAUDE_PROJECT_PATH Project path (default: current directory)
|
|
@@ -133,10 +146,31 @@ Environment Variables:
|
|
|
133
146
|
)
|
|
134
147
|
|
|
135
148
|
parser.add_argument(
|
|
136
|
-
"--
|
|
149
|
+
"--tools",
|
|
150
|
+
action="append",
|
|
151
|
+
dest="tools",
|
|
152
|
+
help="Specify the list of available tools from the built-in set (only works with --print mode). Use \"\" to disable all tools, \"default\" to use all tools, or specify tool names (e.g. \"Bash\" \"Edit\" \"Read\"). Forwarded to claude CLI."
|
|
153
|
+
)
|
|
154
|
+
|
|
155
|
+
parser.add_argument(
|
|
156
|
+
"--allowedTools", "--allowed-tools",
|
|
137
157
|
action="append",
|
|
138
158
|
dest="allowed_tools",
|
|
139
|
-
help="
|
|
159
|
+
help="Permission-based filtering of specific tool instances (e.g. 'Bash(git:*)' 'Edit'). Accepts both --allowedTools and --allowed-tools. Default when not specified: Task, Bash, Glob, Grep, ExitPlanMode, Read, Edit, Write, NotebookEdit, WebFetch, TodoWrite, WebSearch, BashOutput, KillShell, Skill, SlashCommand, EnterPlanMode"
|
|
160
|
+
)
|
|
161
|
+
|
|
162
|
+
parser.add_argument(
|
|
163
|
+
"--disallowedTools", "--disallowed-tools",
|
|
164
|
+
action="append",
|
|
165
|
+
dest="disallowed_tools",
|
|
166
|
+
help="Disallowed tools (can be used multiple times, e.g. 'Bash' 'Edit'). Accepts both --disallowedTools and --disallowed-tools. By default, no tools are disallowed"
|
|
167
|
+
)
|
|
168
|
+
|
|
169
|
+
parser.add_argument(
|
|
170
|
+
"--appendAllowedTools", "--append-allowed-tools",
|
|
171
|
+
action="append",
|
|
172
|
+
dest="append_allowed_tools",
|
|
173
|
+
help="Append tools to the default allowed-tools list (mutually exclusive with --allowed-tools). Accepts both --appendAllowedTools and --append-allowed-tools."
|
|
140
174
|
)
|
|
141
175
|
|
|
142
176
|
parser.add_argument(
|
|
@@ -213,24 +247,40 @@ Environment Variables:
|
|
|
213
247
|
]
|
|
214
248
|
|
|
215
249
|
# Build the full prompt (auto_instruction + user prompt)
|
|
216
|
-
# IMPORTANT: Prompt must come BEFORE
|
|
217
|
-
# because
|
|
250
|
+
# IMPORTANT: Prompt must come BEFORE tool-related flags
|
|
251
|
+
# because some flags consume all following arguments
|
|
218
252
|
full_prompt = f"{self.auto_instruction}\n\n{self.prompt}"
|
|
219
253
|
cmd.append(full_prompt)
|
|
220
254
|
|
|
221
|
-
# Add
|
|
255
|
+
# Add available tools from built-in set if specified (AFTER the prompt)
|
|
256
|
+
# Note: --tools controls which built-in Claude tools are available (only works with --print mode)
|
|
257
|
+
if args.tools:
|
|
258
|
+
cmd.append("--tools")
|
|
259
|
+
cmd.extend(args.tools)
|
|
260
|
+
# No else block: By default Claude enables all tools
|
|
261
|
+
|
|
262
|
+
# Handle allowed tools (either --allowed-tools or --append-allowed-tools, but not both)
|
|
263
|
+
# These are mutually exclusive - validation already done above
|
|
264
|
+
# When neither is specified, use the default allowed-tools list
|
|
222
265
|
if args.allowed_tools:
|
|
223
|
-
|
|
266
|
+
# Use the explicitly specified allowed tools (replaces default)
|
|
267
|
+
cmd.append("--allowedTools")
|
|
224
268
|
cmd.extend(args.allowed_tools)
|
|
269
|
+
elif args.append_allowed_tools:
|
|
270
|
+
# Append specified tools to the default list
|
|
271
|
+
combined_tools = self.DEFAULT_ALLOWED_TOOLS + args.append_allowed_tools
|
|
272
|
+
cmd.append("--allowedTools")
|
|
273
|
+
cmd.extend(combined_tools)
|
|
225
274
|
else:
|
|
226
|
-
#
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
cmd.
|
|
275
|
+
# Use default allowed-tools list when no explicit list is provided
|
|
276
|
+
cmd.append("--allowedTools")
|
|
277
|
+
cmd.extend(self.DEFAULT_ALLOWED_TOOLS)
|
|
278
|
+
|
|
279
|
+
# Add disallowed tools if specified (AFTER the prompt)
|
|
280
|
+
# Note: claude CLI expects camelCase --disallowedTools (not kebab-case --disallowed-tools)
|
|
281
|
+
if args.disallowed_tools:
|
|
282
|
+
cmd.append("--disallowedTools")
|
|
283
|
+
cmd.extend(args.disallowed_tools)
|
|
234
284
|
|
|
235
285
|
# Add continue flag if specified
|
|
236
286
|
if args.continue_conversation:
|
|
@@ -529,6 +579,14 @@ Environment Variables:
|
|
|
529
579
|
# Parse arguments first to handle --help
|
|
530
580
|
args = self.parse_arguments()
|
|
531
581
|
|
|
582
|
+
# Validate that --allowed-tools and --append-allowed-tools are mutually exclusive
|
|
583
|
+
if args.allowed_tools and args.append_allowed_tools:
|
|
584
|
+
print(
|
|
585
|
+
"Error: --allowed-tools and --append-allowed-tools are mutually exclusive. Use one or the other.",
|
|
586
|
+
file=sys.stderr
|
|
587
|
+
)
|
|
588
|
+
return 1
|
|
589
|
+
|
|
532
590
|
# Check if prompt is provided
|
|
533
591
|
if not args.prompt and not args.prompt_file:
|
|
534
592
|
print(
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "juno-code",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.31",
|
|
4
4
|
"description": "TypeScript CLI tool for AI subagent orchestration with code automation",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ai",
|
|
@@ -129,16 +129,16 @@
|
|
|
129
129
|
},
|
|
130
130
|
"repository": {
|
|
131
131
|
"type": "git",
|
|
132
|
-
"url": "https://github.com/
|
|
132
|
+
"url": "https://github.com/askbudi/juno-code.git"
|
|
133
133
|
},
|
|
134
134
|
"bugs": {
|
|
135
|
-
"url": "https://github.com/
|
|
135
|
+
"url": "https://github.com/askbudi/juno-code/issues"
|
|
136
136
|
},
|
|
137
|
-
"homepage": "https://
|
|
137
|
+
"homepage": "https://askbudi.ai/juno-code#readme",
|
|
138
138
|
"license": "MIT",
|
|
139
139
|
"author": {
|
|
140
|
-
"name": "
|
|
141
|
-
"email": "
|
|
140
|
+
"name": "Juno AI INC.",
|
|
141
|
+
"email": "golchin@askdev.ai"
|
|
142
142
|
},
|
|
143
143
|
"publishConfig": {
|
|
144
144
|
"access": "public"
|