juno-code 1.0.49 → 1.0.50
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/README.md +417 -203
- package/dist/bin/cli.d.mts +1 -1
- package/dist/bin/cli.d.ts +1 -1
- package/dist/bin/cli.js +1736 -976
- package/dist/bin/cli.js.map +1 -1
- package/dist/bin/cli.mjs +1735 -975
- package/dist/bin/cli.mjs.map +1 -1
- package/dist/bin/feedback-collector.js.map +1 -1
- package/dist/bin/feedback-collector.mjs.map +1 -1
- package/dist/index.d.mts +33 -7
- package/dist/index.d.ts +33 -7
- package/dist/index.js +202 -27
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +202 -27
- package/dist/index.mjs.map +1 -1
- package/dist/templates/scripts/install_requirements.sh +41 -3
- package/dist/templates/scripts/kanban.sh +4 -0
- package/dist/templates/services/__pycache__/pi.cpython-313.pyc +0 -0
- package/dist/templates/services/pi.py +1281 -238
- package/dist/templates/skills/claude/kanban-workflow/SKILL.md +138 -0
- package/dist/templates/skills/claude/plan-kanban-tasks/SKILL.md +1 -1
- package/dist/templates/skills/claude/ralph-loop/scripts/kanban.sh +4 -0
- package/dist/templates/skills/claude/understand-project/SKILL.md +1 -1
- package/dist/templates/skills/codex/kanban-workflow/SKILL.md +139 -0
- package/dist/templates/skills/codex/plan-kanban-tasks/SKILL.md +32 -0
- package/dist/templates/skills/codex/ralph-loop/scripts/kanban.sh +4 -0
- package/dist/templates/skills/codex/understand-project/SKILL.md +46 -0
- package/dist/templates/skills/pi/kanban-workflow/SKILL.md +139 -0
- package/dist/templates/skills/pi/plan-kanban-tasks/SKILL.md +1 -1
- package/dist/templates/skills/pi/ralph-loop/SKILL.md +4 -0
- package/dist/templates/skills/pi/understand-project/SKILL.md +1 -1
- package/package.json +7 -5
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
# - If inside venv: installs into venv
|
|
14
14
|
# - If externally managed Python detected: uses pipx or creates temporary venv
|
|
15
15
|
# - If outside venv (non-managed): uses --system flag for system-wide installation
|
|
16
|
-
# 6. Installs required packages: juno-kanban
|
|
16
|
+
# 6. Installs required packages: juno-kanban
|
|
17
17
|
# 7. Reports if requirements are already satisfied
|
|
18
18
|
#
|
|
19
19
|
# Usage: ./install_requirements.sh
|
|
@@ -54,13 +54,13 @@ NC='\033[0m' # No Color
|
|
|
54
54
|
# Required packages
|
|
55
55
|
# Note: requests and python-dotenv are required by github.py
|
|
56
56
|
# slack_sdk is required by Slack integration scripts (slack_fetch.py, slack_respond.py)
|
|
57
|
-
REQUIRED_PACKAGES=("juno-kanban" "
|
|
57
|
+
REQUIRED_PACKAGES=("juno-kanban" "requests" "python-dotenv" "slack_sdk")
|
|
58
58
|
|
|
59
59
|
# Version check cache configuration
|
|
60
60
|
# This ensures we don't check PyPI on every run (performance optimization per Task RTafs5)
|
|
61
61
|
VERSION_CHECK_CACHE_DIR="${HOME}/.juno_code"
|
|
62
62
|
VERSION_CHECK_CACHE_FILE="${VERSION_CHECK_CACHE_DIR}/.version_check_cache"
|
|
63
|
-
VERSION_CHECK_INTERVAL_HOURS=24 # Check for updates once per day
|
|
63
|
+
VERSION_CHECK_INTERVAL_HOURS="${VERSION_CHECK_INTERVAL_HOURS:-24}" # Check for updates once per day (override via env var)
|
|
64
64
|
|
|
65
65
|
# Logging functions
|
|
66
66
|
log_info() {
|
|
@@ -402,6 +402,38 @@ is_externally_managed_python() {
|
|
|
402
402
|
return 1 # Not externally managed
|
|
403
403
|
}
|
|
404
404
|
|
|
405
|
+
# Function to upgrade pip to latest version inside the active venv
|
|
406
|
+
# Why: venv ships with the pip version bundled in the Python distribution,
|
|
407
|
+
# which can be months/years behind. Old pip may fail to resolve modern
|
|
408
|
+
# dependency metadata or miss security fixes. Upgrading pip is fast (<2s)
|
|
409
|
+
# and prevents hard-to-debug install failures downstream.
|
|
410
|
+
upgrade_pip_in_venv() {
|
|
411
|
+
if ! is_in_virtualenv; then
|
|
412
|
+
return 0 # Only upgrade pip inside a venv
|
|
413
|
+
fi
|
|
414
|
+
|
|
415
|
+
log_info "Upgrading pip to latest version in venv..."
|
|
416
|
+
|
|
417
|
+
# Prefer uv for speed, fall back to pip itself
|
|
418
|
+
if command -v uv &>/dev/null; then
|
|
419
|
+
if uv pip install --upgrade pip --quiet 2>/dev/null; then
|
|
420
|
+
local pip_ver
|
|
421
|
+
pip_ver=$(python3 -m pip --version 2>/dev/null | awk '{print $2}' || echo "unknown")
|
|
422
|
+
log_success "pip upgraded to v$pip_ver (via uv)"
|
|
423
|
+
return 0
|
|
424
|
+
fi
|
|
425
|
+
fi
|
|
426
|
+
|
|
427
|
+
# Fall back to pip self-upgrade
|
|
428
|
+
if python3 -m pip install --upgrade pip --quiet 2>/dev/null; then
|
|
429
|
+
local pip_ver
|
|
430
|
+
pip_ver=$(python3 -m pip --version 2>/dev/null | awk '{print $2}' || echo "unknown")
|
|
431
|
+
log_success "pip upgraded to v$pip_ver"
|
|
432
|
+
else
|
|
433
|
+
log_warning "Could not upgrade pip (non-fatal, continuing with current version)"
|
|
434
|
+
fi
|
|
435
|
+
}
|
|
436
|
+
|
|
405
437
|
# Function to install packages using pipx
|
|
406
438
|
install_with_pipx() {
|
|
407
439
|
log_info "Installing packages using 'pipx' (recommended for Python applications)..."
|
|
@@ -492,6 +524,9 @@ install_with_uv() {
|
|
|
492
524
|
log_error "Virtual environment activation script not found"
|
|
493
525
|
return 1
|
|
494
526
|
fi
|
|
527
|
+
|
|
528
|
+
# Upgrade pip to latest version in venv
|
|
529
|
+
upgrade_pip_in_venv
|
|
495
530
|
fi
|
|
496
531
|
|
|
497
532
|
local failed_packages=()
|
|
@@ -562,6 +597,9 @@ install_with_pip() {
|
|
|
562
597
|
source "$venv_path/bin/activate"
|
|
563
598
|
log_success "Activated virtual environment"
|
|
564
599
|
python_cmd="python" # Use the venv's python
|
|
600
|
+
|
|
601
|
+
# Upgrade pip to latest version in venv
|
|
602
|
+
upgrade_pip_in_venv
|
|
565
603
|
fi
|
|
566
604
|
|
|
567
605
|
local failed_packages=()
|
|
@@ -190,6 +190,10 @@ fi
|
|
|
190
190
|
# Change to project root
|
|
191
191
|
cd "$PROJECT_ROOT"
|
|
192
192
|
|
|
193
|
+
# Export JUNO_TASK_ROOT so juno-kanban resolves .juno_task paths from project root,
|
|
194
|
+
# not from wherever the calling agent happens to be. Respects existing override.
|
|
195
|
+
export JUNO_TASK_ROOT="${JUNO_TASK_ROOT:-$PROJECT_ROOT}"
|
|
196
|
+
|
|
193
197
|
# Arrays to store normalized arguments (declared at script level for proper handling)
|
|
194
198
|
declare -a NORMALIZED_GLOBAL_FLAGS=()
|
|
195
199
|
declare -a NORMALIZED_COMMAND_ARGS=()
|
|
Binary file
|