juno-code 1.0.12 → 1.0.14

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.
@@ -0,0 +1,189 @@
1
+ #!/usr/bin/env bash
2
+
3
+ # bootstrap.sh
4
+ #
5
+ # Purpose: Pre-flight Python environment setup for juno-code
6
+ #
7
+ # This script runs before the main juno-code entrypoint and ensures:
8
+ # 1. Python virtual environment (.venv_juno) exists
9
+ # 2. Required Python packages are installed
10
+ # 3. Virtual environment is activated if needed
11
+ # 4. Main application can run with proper Python dependencies
12
+ #
13
+ # Usage: ./bootstrap.sh [main-entrypoint-command] [args...]
14
+ #
15
+ # Created by: juno-code init command
16
+ # Date: Auto-generated during project initialization
17
+
18
+ set -euo pipefail # Exit on error, undefined variable, or pipe failure
19
+
20
+ # DEBUG OUTPUT: Show that bootstrap.sh is being executed
21
+ # User feedback: "Add a one line printing from .sh file as well so we could debug it"
22
+ echo "[DEBUG] bootstrap.sh is being executed from: $(pwd)" >&2
23
+
24
+ # Color output for better readability
25
+ RED='\033[0;31m'
26
+ GREEN='\033[0;32m'
27
+ YELLOW='\033[1;33m'
28
+ BLUE='\033[0;34m'
29
+ NC='\033[0m' # No Color
30
+
31
+ # Configuration
32
+ VENV_DIR=".venv_juno"
33
+ SCRIPTS_DIR=".juno_task/scripts"
34
+ INSTALL_SCRIPT="${SCRIPTS_DIR}/install_requirements.sh"
35
+
36
+ # Logging functions
37
+ log_info() {
38
+ echo -e "${BLUE}[BOOTSTRAP]${NC} $1"
39
+ }
40
+
41
+ log_success() {
42
+ echo -e "${GREEN}[BOOTSTRAP]${NC} $1"
43
+ }
44
+
45
+ log_warning() {
46
+ echo -e "${YELLOW}[BOOTSTRAP]${NC} $1"
47
+ }
48
+
49
+ log_error() {
50
+ echo -e "${RED}[BOOTSTRAP]${NC} $1"
51
+ }
52
+
53
+ # Function to check if we're inside .venv_juno specifically
54
+ # CRITICAL FIX: Don't just check for ANY venv - check if we're in .venv_juno
55
+ # User feedback: "bootstrap.sh has the issues that install_requirements.sh used to have.
56
+ # the detection of virtual enviroment is not correct."
57
+ # Previous approach was too permissive - accepted ANY venv (conda, other venvs)
58
+ # NEW APPROACH: Only return success if we're in .venv_juno specifically
59
+ is_in_venv_juno() {
60
+ # Check if VIRTUAL_ENV is set and points to .venv_juno
61
+ if [ -n "${VIRTUAL_ENV:-}" ]; then
62
+ # Check if VIRTUAL_ENV path contains .venv_juno
63
+ if [[ "${VIRTUAL_ENV:-}" == *"/.venv_juno" ]] || [[ "${VIRTUAL_ENV:-}" == *".venv_juno"* ]]; then
64
+ return 0 # Inside .venv_juno
65
+ fi
66
+
67
+ # Check if the basename is .venv_juno
68
+ if [ "$(basename "${VIRTUAL_ENV:-}")" = ".venv_juno" ]; then
69
+ return 0 # Inside .venv_juno
70
+ fi
71
+ fi
72
+
73
+ return 1 # Not inside .venv_juno (or not in any venv)
74
+ }
75
+
76
+ # Function to activate virtual environment
77
+ activate_venv() {
78
+ local venv_path="$1"
79
+
80
+ if [ ! -d "$venv_path" ]; then
81
+ log_error "Virtual environment not found: $venv_path"
82
+ return 1
83
+ fi
84
+
85
+ # Activate the venv
86
+ # shellcheck disable=SC1091
87
+ if [ -f "$venv_path/bin/activate" ]; then
88
+ source "$venv_path/bin/activate"
89
+ log_success "Activated virtual environment: $venv_path"
90
+ return 0
91
+ else
92
+ log_error "Activation script not found: $venv_path/bin/activate"
93
+ return 1
94
+ fi
95
+ }
96
+
97
+ # Function to ensure Python environment is ready
98
+ ensure_python_environment() {
99
+ log_info "Checking Python environment..."
100
+
101
+ # CRITICAL FIX: Check if we're specifically in .venv_juno, not just ANY venv
102
+ # User feedback: "the detection of virtual enviroment is not correct"
103
+ # Previous logic accepted ANY venv (conda, other venvs) which was wrong
104
+ # NEW LOGIC: Only accept .venv_juno specifically
105
+
106
+ # Step 1: Check if we're already in .venv_juno specifically
107
+ if is_in_venv_juno; then
108
+ log_success "Already inside .venv_juno virtual environment"
109
+ return 0
110
+ fi
111
+
112
+ # Step 2: Not in .venv_juno - check if .venv_juno exists in project root
113
+ if [ -d "$VENV_DIR" ]; then
114
+ log_info "Found existing virtual environment: $VENV_DIR"
115
+
116
+ # Activate the venv
117
+ if activate_venv "$VENV_DIR"; then
118
+ return 0
119
+ else
120
+ log_error "Failed to activate virtual environment"
121
+ return 1
122
+ fi
123
+ fi
124
+
125
+ # Step 3: .venv_juno doesn't exist - need to create it
126
+ log_warning "Virtual environment not found: $VENV_DIR"
127
+ log_info "Running install_requirements.sh to create virtual environment..."
128
+
129
+ # Check if install_requirements.sh exists
130
+ if [ ! -f "$INSTALL_SCRIPT" ]; then
131
+ log_error "Install script not found: $INSTALL_SCRIPT"
132
+ log_error "Please run 'juno-code init' to initialize the project"
133
+ return 1
134
+ fi
135
+
136
+ # Make sure the script is executable
137
+ chmod +x "$INSTALL_SCRIPT"
138
+
139
+ # Run the install script
140
+ if bash "$INSTALL_SCRIPT"; then
141
+ log_success "Python environment setup completed successfully"
142
+
143
+ # After install, activate the venv if it was created
144
+ if [ -d "$VENV_DIR" ]; then
145
+ if activate_venv "$VENV_DIR"; then
146
+ return 0
147
+ fi
148
+ fi
149
+
150
+ return 0
151
+ else
152
+ log_error "Failed to run install_requirements.sh"
153
+ log_error "Please check the error messages above"
154
+ return 1
155
+ fi
156
+ }
157
+
158
+ # Main bootstrap logic
159
+ main() {
160
+ log_info "=== juno-code Bootstrap ==="
161
+ echo ""
162
+
163
+ # Ensure Python environment is ready
164
+ if ! ensure_python_environment; then
165
+ log_error "Failed to setup Python environment"
166
+ exit 1
167
+ fi
168
+
169
+ echo ""
170
+ log_success "Python environment ready!"
171
+
172
+ # If there are additional arguments, execute them as the main entrypoint
173
+ if [ $# -gt 0 ]; then
174
+ log_info "Executing main entrypoint: $*"
175
+ echo ""
176
+
177
+ # Execute the main entrypoint with all arguments
178
+ exec "$@"
179
+ else
180
+ log_info "No main entrypoint specified - environment is ready for use"
181
+ log_info "To activate the virtual environment manually, run:"
182
+ echo ""
183
+ echo " source $VENV_DIR/bin/activate"
184
+ echo ""
185
+ fi
186
+ }
187
+
188
+ # Run main function with all arguments
189
+ main "$@"
@@ -11,7 +11,7 @@
11
11
  #
12
12
  # Usage: ./clean_logs_folder.sh
13
13
  #
14
- # Created by: juno-task-ts init command
14
+ # Created by: juno-code init command
15
15
  # Date: Auto-generated during project initialization
16
16
 
17
17
  set -euo pipefail # Exit on error, undefined variable, or pipe failure
@@ -2,25 +2,32 @@
2
2
 
3
3
  # install_requirements.sh
4
4
  #
5
- # Purpose: Install Python dependencies required for juno-task-ts
5
+ # Purpose: Install Python dependencies required for juno-code
6
6
  #
7
7
  # This script:
8
- # 1. Checks if 'uv' (ultrafast Python package manager) is installed
9
- # 2. Falls back to 'pip' if 'uv' is not available
10
- # 3. Detects virtual environment and installs accordingly:
8
+ # 1. Checks if 'pipx' (recommended for app installations) is installed
9
+ # 2. Falls back to 'uv' (ultrafast Python package manager) if 'pipx' not available
10
+ # 3. Falls back to 'pip' if neither 'pipx' nor 'uv' is available
11
+ # 4. Detects externally managed Python (PEP 668) on Ubuntu/Debian systems
12
+ # 5. Handles installation based on environment:
11
13
  # - If inside venv: installs into venv
12
- # - If outside venv: uses --system flag for system-wide installation
13
- # 4. Installs required packages: juno-kanban, roundtable-ai
14
- # 5. Reports if requirements are already satisfied
15
- # 6. Shows error if neither 'uv' nor 'pip' is available
14
+ # - If externally managed Python detected: uses pipx or creates temporary venv
15
+ # - If outside venv (non-managed): uses --system flag for system-wide installation
16
+ # 6. Installs required packages: juno-kanban, roundtable-ai
17
+ # 7. Reports if requirements are already satisfied
16
18
  #
17
19
  # Usage: ./install_requirements.sh
18
20
  #
19
- # Created by: juno-task-ts init command
21
+ # Created by: juno-code init command
20
22
  # Date: Auto-generated during project initialization
21
23
 
22
24
  set -euo pipefail # Exit on error, undefined variable, or pipe failure
23
25
 
26
+ # DEBUG OUTPUT: Show that install_requirements.sh is being executed
27
+ # User feedback: "Add a one line printing from .sh file as well so we could debug it"
28
+ echo "[DEBUG] install_requirements.sh is being executed from: $(pwd)" >&2
29
+ echo "[DEBUG] .venv_juno will be created in: $(pwd)/.venv_juno" >&2
30
+
24
31
  # Color output for better readability
25
32
  RED='\033[0;31m'
26
33
  GREEN='\033[0;32m'
@@ -100,17 +107,168 @@ is_in_virtualenv() {
100
107
  return 1 # Not inside venv
101
108
  }
102
109
 
103
- # Function to install packages using uv
110
+ # Function to find the best Python version (3.10-3.13, preferably 3.13)
111
+ find_best_python() {
112
+ # Try to find Python in order of preference: 3.13, 3.12, 3.11, 3.10
113
+ local python_versions=("python3.13" "python3.12" "python3.11" "python3.10")
114
+
115
+ for py_cmd in "${python_versions[@]}"; do
116
+ if command -v "$py_cmd" &> /dev/null; then
117
+ # Verify it's actually the right version
118
+ local version
119
+ version=$($py_cmd --version 2>&1 | grep -oE '[0-9]+\.[0-9]+' | head -1)
120
+ local major
121
+ major=$(echo "$version" | cut -d'.' -f1)
122
+ local minor
123
+ minor=$(echo "$version" | cut -d'.' -f2)
124
+
125
+ # Check if version is 3.10 or higher
126
+ if [ "$major" -eq 3 ] && [ "$minor" -ge 10 ]; then
127
+ echo "$py_cmd"
128
+ return 0
129
+ fi
130
+ fi
131
+ done
132
+
133
+ # Fall back to python3 if available and check its version
134
+ if command -v python3 &> /dev/null; then
135
+ local version
136
+ version=$(python3 --version 2>&1 | grep -oE '[0-9]+\.[0-9]+' | head -1)
137
+ local major
138
+ major=$(echo "$version" | cut -d'.' -f1)
139
+ local minor
140
+ minor=$(echo "$version" | cut -d'.' -f2)
141
+
142
+ # Check if version is 3.10 or higher
143
+ if [ "$major" -eq 3 ] && [ "$minor" -ge 10 ]; then
144
+ echo "python3"
145
+ return 0
146
+ else
147
+ # Python3 exists but is too old
148
+ log_error "Found Python $version, but Python 3.10+ is required"
149
+ return 1
150
+ fi
151
+ fi
152
+
153
+ # No suitable Python found
154
+ log_error "No Python 3.10+ found. Please install Python 3.10, 3.11, 3.12, or 3.13 (preferably 3.13)"
155
+ return 1
156
+ }
157
+
158
+ # Function to check if Python is externally managed (PEP 668)
159
+ # This is common on Ubuntu 23.04+, Debian, and other modern Linux distros
160
+ is_externally_managed_python() {
161
+ # Check for EXTERNALLY-MANAGED marker file
162
+ local python_cmd="python3"
163
+ if ! command -v python3 &> /dev/null; then
164
+ if command -v python &> /dev/null; then
165
+ python_cmd="python"
166
+ else
167
+ return 1 # Python not found, can't determine
168
+ fi
169
+ fi
170
+
171
+ # Get the stdlib directory and check for EXTERNALLY-MANAGED file
172
+ local stdlib_dir
173
+ stdlib_dir=$($python_cmd -c "import sysconfig; print(sysconfig.get_path('stdlib'))" 2>/dev/null || echo "")
174
+
175
+ if [ -n "$stdlib_dir" ] && [ -f "$stdlib_dir/EXTERNALLY-MANAGED" ]; then
176
+ return 0 # Externally managed
177
+ fi
178
+
179
+ return 1 # Not externally managed
180
+ }
181
+
182
+ # Function to install packages using pipx
183
+ install_with_pipx() {
184
+ log_info "Installing packages using 'pipx' (recommended for Python applications)..."
185
+
186
+ local failed_packages=()
187
+
188
+ for package in "${REQUIRED_PACKAGES[@]}"; do
189
+ log_info "Installing: $package"
190
+ if pipx install "$package" --force &>/dev/null || pipx install "$package" &>/dev/null; then
191
+ log_success "Successfully installed: $package"
192
+ else
193
+ log_error "Failed to install: $package"
194
+ failed_packages+=("$package")
195
+ fi
196
+ done
197
+
198
+ if [ ${#failed_packages[@]} -gt 0 ]; then
199
+ log_error "Failed to install ${#failed_packages[@]} package(s): ${failed_packages[*]}"
200
+ return 1
201
+ fi
202
+
203
+ return 0
204
+ }
205
+
206
+ # Function to install packages using uv with externally managed Python handling
104
207
  install_with_uv() {
105
208
  log_info "Installing packages using 'uv' (ultrafast Python package manager)..."
106
209
 
107
- # Determine if we need --system flag
108
210
  local uv_flags="--quiet"
109
- if ! is_in_virtualenv; then
110
- log_info "Not in a virtual environment - using --system flag for system-wide installation"
111
- uv_flags="--quiet --system"
112
- else
113
- log_info "Detected virtual environment - installing into venv"
211
+
212
+ # CRITICAL FIX: Properly detect if uv will work in the current environment
213
+ # User feedback: "Maybe the way you are verifying being inside venv by uv is not correct !!!"
214
+ # Previous approach failed because uv pip list doesn't reliably indicate venv compatibility
215
+ # NEW APPROACH: Always create .venv_juno unless we're already inside it
216
+
217
+ local venv_path=".venv_juno"
218
+ local need_venv=true
219
+
220
+ # Check if we're already inside .venv_juno
221
+ if [ -n "${VIRTUAL_ENV:-}" ] && ( [[ "${VIRTUAL_ENV:-}" == *"/.venv_juno" ]] || [[ "${VIRTUAL_ENV:-}" == *".venv_juno"* ]] ); then
222
+ log_info "Already inside .venv_juno virtual environment"
223
+ need_venv=false
224
+ # Check if we're in .venv_juno by checking the activate script path
225
+ elif [ -n "${VIRTUAL_ENV:-}" ] && [ "$(basename "${VIRTUAL_ENV:-}")" = ".venv_juno" ]; then
226
+ log_info "Already inside .venv_juno virtual environment"
227
+ need_venv=false
228
+ fi
229
+
230
+ # If we need a venv, create and activate .venv_juno
231
+ if [ "$need_venv" = true ]; then
232
+ log_info "Creating/using .venv_juno virtual environment for reliable uv installation..."
233
+
234
+ # Find best Python version (3.10-3.13, preferably 3.13)
235
+ local python_cmd
236
+ if ! python_cmd=$(find_best_python); then
237
+ log_error "Cannot create venv: No suitable Python version found"
238
+ log_info "Please install Python 3.10+ (preferably Python 3.13)"
239
+ log_info " Mac: brew install python@3.13"
240
+ log_info " Ubuntu/Debian: sudo apt install python3.13 python3.13-venv"
241
+ return 1
242
+ fi
243
+
244
+ local version
245
+ version=$($python_cmd --version 2>&1 | grep -oE '[0-9]+\.[0-9]+\.[0-9]+')
246
+ log_info "Using Python $version for virtual environment"
247
+
248
+ # Create a project-local venv if it doesn't exist
249
+ if [ ! -d "$venv_path" ]; then
250
+ log_info "Creating virtual environment with $python_cmd..."
251
+ if ! $python_cmd -m venv "$venv_path" 2>/dev/null; then
252
+ log_error "Failed to create virtual environment"
253
+ log_info "Please ensure python venv module is installed:"
254
+ log_info " Mac: brew install python@3.13"
255
+ log_info " Ubuntu/Debian: sudo apt install python3.13-venv python3-full"
256
+ return 1
257
+ fi
258
+ log_success "Created virtual environment at $venv_path with Python $version"
259
+ else
260
+ log_info "Using existing virtual environment at $venv_path"
261
+ fi
262
+
263
+ # Activate the venv for this script
264
+ # shellcheck disable=SC1091
265
+ if [ -f "$venv_path/bin/activate" ]; then
266
+ source "$venv_path/bin/activate"
267
+ log_success "Activated virtual environment - uv will now install into .venv_juno"
268
+ else
269
+ log_error "Virtual environment activation script not found"
270
+ return 1
271
+ fi
114
272
  fi
115
273
 
116
274
  local failed_packages=()
@@ -133,7 +291,7 @@ install_with_uv() {
133
291
  return 0
134
292
  }
135
293
 
136
- # Function to install packages using pip
294
+ # Function to install packages using pip with externally managed Python handling
137
295
  install_with_pip() {
138
296
  log_info "Installing packages using 'pip'..."
139
297
 
@@ -148,6 +306,41 @@ install_with_pip() {
148
306
  fi
149
307
  fi
150
308
 
309
+ # Handle externally managed Python or missing venv
310
+ if ! is_in_virtualenv && is_externally_managed_python; then
311
+ log_warning "Detected externally managed Python (PEP 668) - Ubuntu/Debian system"
312
+ log_info "Creating virtual environment for installation..."
313
+
314
+ # Find best Python version (3.10-3.13, preferably 3.13)
315
+ if ! python_cmd=$(find_best_python); then
316
+ log_error "Cannot create venv: No suitable Python version found"
317
+ log_info "Please install Python 3.10+ (preferably Python 3.13)"
318
+ log_info " Ubuntu/Debian: sudo apt install python3.13 python3.13-venv"
319
+ return 1
320
+ fi
321
+
322
+ local version
323
+ version=$($python_cmd --version 2>&1 | grep -oE '[0-9]+\.[0-9]+\.[0-9]+')
324
+ log_info "Using Python $version for virtual environment"
325
+
326
+ # Create a project-local venv if it doesn't exist
327
+ local venv_path=".venv_juno"
328
+ if [ ! -d "$venv_path" ]; then
329
+ if ! $python_cmd -m venv "$venv_path" 2>/dev/null; then
330
+ log_error "Failed to create virtual environment"
331
+ log_info "Please install python3-venv (Linux: sudo apt install python3.13-venv python3-full)"
332
+ return 1
333
+ fi
334
+ log_success "Created virtual environment at $venv_path with Python $version"
335
+ fi
336
+
337
+ # Activate the venv for this script
338
+ # shellcheck disable=SC1091
339
+ source "$venv_path/bin/activate"
340
+ log_success "Activated virtual environment"
341
+ python_cmd="python" # Use the venv's python
342
+ fi
343
+
151
344
  local failed_packages=()
152
345
 
153
346
  for package in "${REQUIRED_PACKAGES[@]}"; do
@@ -194,28 +387,50 @@ main() {
194
387
  # Step 2: Determine which package manager to use
195
388
  local installer=""
196
389
 
197
- if command -v uv &> /dev/null; then
390
+ # Check if Python is externally managed (Ubuntu/Debian PEP 668)
391
+ local is_ext_managed=false
392
+ if is_externally_managed_python && ! is_in_virtualenv; then
393
+ is_ext_managed=true
394
+ log_warning "Detected externally managed Python environment (Ubuntu/Debian PEP 668)"
395
+ fi
396
+
397
+ # Prioritize pipx for externally managed systems
398
+ if [ "$is_ext_managed" = true ] && command -v pipx &> /dev/null; then
399
+ log_success "'pipx' found - using pipx (recommended for externally managed Python)"
400
+ installer="pipx"
401
+ elif command -v uv &> /dev/null; then
198
402
  log_success "'uv' found - using ultrafast Python package manager"
199
403
  installer="uv"
200
404
  elif command -v pip3 &> /dev/null || command -v pip &> /dev/null; then
201
405
  log_success "'pip' found - using standard Python package installer"
202
406
  installer="pip"
203
407
  else
204
- # Neither uv nor pip found
205
- log_error "Neither 'uv' nor 'pip' package manager found!"
408
+ # No package manager found
409
+ log_error "No suitable package manager found!"
206
410
  echo ""
207
411
  log_info "Please install one of the following:"
208
412
  echo ""
209
- echo " Option 1: Install 'uv' (recommended - ultrafast)"
413
+ if [ "$is_ext_managed" = true ]; then
414
+ echo " Option 1: Install 'pipx' (RECOMMENDED for Ubuntu/Debian)"
415
+ echo " sudo apt install pipx"
416
+ echo " pipx ensurepath"
417
+ echo ""
418
+ fi
419
+ echo " Option 2: Install 'uv' (ultrafast Python package manager)"
210
420
  echo " curl -LsSf https://astral.sh/uv/install.sh | sh"
211
421
  echo " OR"
212
422
  echo " brew install uv (macOS)"
213
423
  echo ""
214
- echo " Option 2: Install 'pip' (standard Python package manager)"
424
+ echo " Option 3: Install 'pip' (standard Python package manager)"
215
425
  echo " python3 -m ensurepip --upgrade"
216
426
  echo " OR"
217
427
  echo " curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py && python3 get-pip.py"
218
428
  echo ""
429
+ if [ "$is_ext_managed" = true ]; then
430
+ log_info "Note: On Ubuntu/Debian with externally managed Python, 'pipx' is recommended"
431
+ log_info "Alternatively, install python3-venv: sudo apt install python3-venv python3-full"
432
+ fi
433
+ echo ""
219
434
  exit 1
220
435
  fi
221
436
 
@@ -224,10 +439,25 @@ main() {
224
439
  log_info "Installing required packages: ${REQUIRED_PACKAGES[*]}"
225
440
  echo ""
226
441
 
227
- if [ "$installer" = "uv" ]; then
442
+ if [ "$installer" = "pipx" ]; then
443
+ if install_with_pipx; then
444
+ echo ""
445
+ log_success "All packages installed successfully using 'pipx'!"
446
+ log_info "Packages installed in isolated environments and added to PATH"
447
+ echo ""
448
+ exit 0
449
+ else
450
+ log_error "Some packages failed to install with 'pipx'"
451
+ exit 1
452
+ fi
453
+ elif [ "$installer" = "uv" ]; then
228
454
  if install_with_uv; then
229
455
  echo ""
230
456
  log_success "All packages installed successfully using 'uv'!"
457
+ if [ -d ".venv_juno" ]; then
458
+ log_info "Packages installed in virtual environment: .venv_juno"
459
+ log_info "To use them, activate the venv: source .venv_juno/bin/activate"
460
+ fi
231
461
  echo ""
232
462
  exit 0
233
463
  else
@@ -238,6 +468,10 @@ main() {
238
468
  if install_with_pip; then
239
469
  echo ""
240
470
  log_success "All packages installed successfully using 'pip'!"
471
+ if [ -d ".venv_juno" ]; then
472
+ log_info "Packages installed in virtual environment: .venv_juno"
473
+ log_info "To use them, activate the venv: source .venv_juno/bin/activate"
474
+ fi
241
475
  echo ""
242
476
  exit 0
243
477
  else
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "juno-code",
3
- "version": "1.0.12",
4
- "description": "AI Subagent Orchestration CLI - Code-focused package for juno-task-ts providing Claude Code integration and MCP server orchestration",
3
+ "version": "1.0.14",
4
+ "description": "AI Subagent Orchestration CLI - Professional TypeScript CLI for AI-powered code intelligence, MCP server orchestration, and subagent collaboration",
5
5
  "keywords": [
6
6
  "ai",
7
7
  "code",
@@ -35,6 +35,9 @@
35
35
  "README.md",
36
36
  "CHANGELOG.md"
37
37
  ],
38
+ "scripts": {
39
+ "build:copy-wrapper": "node -e \"const fs = require('fs-extra'); fs.copySync('src/bin/juno-code.sh', 'dist/bin/juno-code.sh'); fs.chmodSync('dist/bin/juno-code.sh', 0o755);\""
40
+ },
38
41
  "dependencies": {
39
42
  "@modelcontextprotocol/sdk": "^1.20.0",
40
43
  "chalk": "^5.3.0",
@@ -61,12 +64,12 @@
61
64
  },
62
65
  "repository": {
63
66
  "type": "git",
64
- "url": "https://github.com/owner/juno-task-ts.git"
67
+ "url": "https://github.com/owner/juno-code.git"
65
68
  },
66
69
  "bugs": {
67
- "url": "https://github.com/owner/juno-task-ts/issues"
70
+ "url": "https://github.com/owner/juno-code/issues"
68
71
  },
69
- "homepage": "https://github.com/owner/juno-task-ts#readme",
72
+ "homepage": "https://github.com/owner/juno-code#readme",
70
73
  "license": "MIT",
71
74
  "author": {
72
75
  "name": "Development Team",