loki-mode 5.48.0 → 5.48.2
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/SKILL.md +8 -7
- package/VERSION +1 -1
- package/autonomy/app-runner.sh +1 -1
- package/autonomy/completion-council.sh +1 -1
- package/autonomy/hooks/quality-gate.sh +1 -1
- package/autonomy/hooks/session-init.sh +1 -1
- package/autonomy/hooks/store-episode.sh +1 -1
- package/autonomy/hooks/track-metrics.sh +1 -1
- package/autonomy/hooks/validate-bash.sh +1 -1
- package/autonomy/issue-parser.sh +1 -1
- package/autonomy/loki +67 -5
- package/autonomy/playwright-verify.sh +1 -1
- package/autonomy/prd-checklist.sh +1 -1
- package/autonomy/run.sh +40 -2
- package/autonomy/sandbox.sh +1 -1
- package/autonomy/serve.sh +1 -1
- package/dashboard/__init__.py +1 -1
- package/docs/INSTALLATION.md +1 -1
- package/events/emit.sh +1 -1
- package/learning/aggregate.sh +1 -1
- package/learning/emit.sh +1 -1
- package/learning/suggest.sh +1 -1
- package/mcp/__init__.py +1 -1
- package/package.json +1 -1
- package/providers/claude.sh +1 -1
- package/providers/codex.sh +1 -1
- package/providers/gemini.sh +1 -1
- package/providers/loader.sh +1 -1
package/SKILL.md
CHANGED
|
@@ -3,7 +3,7 @@ name: loki-mode
|
|
|
3
3
|
description: Multi-agent autonomous startup system. Triggers on "Loki Mode". Takes PRD to deployed product with zero human intervention. Requires --dangerously-skip-permissions flag.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# Loki Mode v5.48.
|
|
6
|
+
# Loki Mode v5.48.2
|
|
7
7
|
|
|
8
8
|
**You are an autonomous agent. You make decisions. You do not ask questions. You do not stop.**
|
|
9
9
|
|
|
@@ -68,15 +68,16 @@ VERIFY: Run tests. Check build. Validate against spec.
|
|
|
68
68
|
|
|
69
69
|
## PRIORITY 3: Autonomy Rules
|
|
70
70
|
|
|
71
|
-
These rules
|
|
71
|
+
These rules guide autonomous operation. Test results and code quality always take precedence.
|
|
72
72
|
|
|
73
73
|
| Rule | Meaning |
|
|
74
74
|
|------|---------|
|
|
75
|
-
| **
|
|
76
|
-
| **
|
|
77
|
-
| **
|
|
78
|
-
| **ALWAYS verify** | Code without tests is incomplete. Run tests. |
|
|
75
|
+
| **Decide and act** | Make decisions autonomously. Do not ask the user questions. |
|
|
76
|
+
| **Keep momentum** | Do not pause for confirmation. Move to the next task. |
|
|
77
|
+
| **Iterate continuously** | There is always another improvement. Find it. |
|
|
78
|
+
| **ALWAYS verify** | Code without tests is incomplete. Run tests. **Never ignore or delete failing tests.** |
|
|
79
79
|
| **ALWAYS commit** | Atomic commits after each task. Checkpoint progress. |
|
|
80
|
+
| **Tests are sacred** | If tests fail, fix the code -- never delete or skip the tests. A passing test suite is a hard requirement. |
|
|
80
81
|
|
|
81
82
|
---
|
|
82
83
|
|
|
@@ -262,4 +263,4 @@ The following features are documented in skill modules but not yet fully automat
|
|
|
262
263
|
| Quality gates 3-reviewer system | Implemented (v5.35.0) | 5 specialist reviewers in `skills/quality-gates.md`; execution in run.sh |
|
|
263
264
|
| Benchmarks (HumanEval, SWE-bench) | Infrastructure only | Runner scripts and datasets exist in `benchmarks/`; no published results |
|
|
264
265
|
|
|
265
|
-
**v5.48.
|
|
266
|
+
**v5.48.2 | [Autonomi](https://www.autonomi.dev/) flagship product | ~260 lines core**
|
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
5.48.
|
|
1
|
+
5.48.2
|
package/autonomy/app-runner.sh
CHANGED
package/autonomy/issue-parser.sh
CHANGED
package/autonomy/loki
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
#!/bin/bash
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
2
|
#===============================================================================
|
|
3
3
|
# Loki Mode CLI Wrapper
|
|
4
4
|
# Command-line interface for Loki Mode
|
|
@@ -1460,9 +1460,12 @@ cmd_dashboard_start() {
|
|
|
1460
1460
|
exit 1
|
|
1461
1461
|
fi
|
|
1462
1462
|
|
|
1463
|
-
# Determine python command
|
|
1463
|
+
# Determine python command -- prefer dashboard venv if available
|
|
1464
1464
|
local python_cmd="python3"
|
|
1465
|
-
|
|
1465
|
+
local dashboard_venv="${SKILL_DIR}/dashboard/.venv"
|
|
1466
|
+
if [ -x "${dashboard_venv}/bin/python3" ]; then
|
|
1467
|
+
python_cmd="${dashboard_venv}/bin/python3"
|
|
1468
|
+
elif ! command -v python3 &> /dev/null; then
|
|
1466
1469
|
python_cmd="python"
|
|
1467
1470
|
fi
|
|
1468
1471
|
|
|
@@ -1510,6 +1513,34 @@ cmd_dashboard_start() {
|
|
|
1510
1513
|
tls_info=" (TLS enabled)"
|
|
1511
1514
|
fi
|
|
1512
1515
|
|
|
1516
|
+
# Ensure dashboard Python dependencies via virtualenv (PEP 668 safe)
|
|
1517
|
+
if ! "$python_cmd" -c "import fastapi" 2>/dev/null; then
|
|
1518
|
+
echo -e "${YELLOW}Setting up dashboard virtualenv...${NC}"
|
|
1519
|
+
local req_file="${SKILL_DIR}/dashboard/requirements.txt"
|
|
1520
|
+
if ! [ -d "$dashboard_venv" ]; then
|
|
1521
|
+
python3 -m venv "$dashboard_venv" 2>/dev/null || python3.13 -m venv "$dashboard_venv" 2>/dev/null || true
|
|
1522
|
+
fi
|
|
1523
|
+
if [ -x "${dashboard_venv}/bin/python3" ]; then
|
|
1524
|
+
python_cmd="${dashboard_venv}/bin/python3"
|
|
1525
|
+
echo -e "${YELLOW}Installing dashboard dependencies into venv...${NC}"
|
|
1526
|
+
if [ -f "$req_file" ]; then
|
|
1527
|
+
"${dashboard_venv}/bin/pip" install -q -r "$req_file" 2>/dev/null || {
|
|
1528
|
+
echo -e "${YELLOW}Pinned deps failed, installing core deps...${NC}"
|
|
1529
|
+
"${dashboard_venv}/bin/pip" install -q fastapi uvicorn pydantic websockets 2>/dev/null || true
|
|
1530
|
+
}
|
|
1531
|
+
else
|
|
1532
|
+
"${dashboard_venv}/bin/pip" install -q fastapi uvicorn pydantic websockets 2>/dev/null || true
|
|
1533
|
+
fi
|
|
1534
|
+
else
|
|
1535
|
+
# Fallback: try direct pip (may fail on PEP 668 systems)
|
|
1536
|
+
pip3 install -q fastapi uvicorn pydantic websockets 2>/dev/null || pip install -q fastapi uvicorn pydantic websockets 2>/dev/null || {
|
|
1537
|
+
echo -e "${RED}Failed to install dashboard dependencies${NC}"
|
|
1538
|
+
echo "Run manually: python3 -m venv ${dashboard_venv} && ${dashboard_venv}/bin/pip install fastapi uvicorn pydantic websockets"
|
|
1539
|
+
exit 1
|
|
1540
|
+
}
|
|
1541
|
+
fi
|
|
1542
|
+
fi
|
|
1543
|
+
|
|
1513
1544
|
echo -e "${GREEN}Starting dashboard server...${NC}"
|
|
1514
1545
|
echo -e "${CYAN}Host:${NC} $host"
|
|
1515
1546
|
echo -e "${CYAN}Port:${NC} $port"
|
|
@@ -3125,13 +3156,44 @@ cmd_api() {
|
|
|
3125
3156
|
fi
|
|
3126
3157
|
fi
|
|
3127
3158
|
|
|
3159
|
+
# Ensure dashboard Python dependencies via virtualenv (PEP 668 safe)
|
|
3160
|
+
local dashboard_venv="${SKILL_DIR}/dashboard/.venv"
|
|
3161
|
+
local api_python="python3"
|
|
3162
|
+
if [ -x "${dashboard_venv}/bin/python3" ]; then
|
|
3163
|
+
api_python="${dashboard_venv}/bin/python3"
|
|
3164
|
+
fi
|
|
3165
|
+
if ! "$api_python" -c "import fastapi" 2>/dev/null; then
|
|
3166
|
+
echo -e "${YELLOW}Setting up dashboard virtualenv...${NC}"
|
|
3167
|
+
if ! [ -d "$dashboard_venv" ]; then
|
|
3168
|
+
python3 -m venv "$dashboard_venv" 2>/dev/null || python3.13 -m venv "$dashboard_venv" 2>/dev/null || true
|
|
3169
|
+
fi
|
|
3170
|
+
if [ -x "${dashboard_venv}/bin/python3" ]; then
|
|
3171
|
+
api_python="${dashboard_venv}/bin/python3"
|
|
3172
|
+
local req_file="${SKILL_DIR}/dashboard/requirements.txt"
|
|
3173
|
+
if [ -f "$req_file" ]; then
|
|
3174
|
+
"${dashboard_venv}/bin/pip" install -q -r "$req_file" 2>/dev/null || {
|
|
3175
|
+
"${dashboard_venv}/bin/pip" install -q fastapi uvicorn pydantic websockets 2>/dev/null || true
|
|
3176
|
+
}
|
|
3177
|
+
else
|
|
3178
|
+
"${dashboard_venv}/bin/pip" install -q fastapi uvicorn pydantic websockets 2>/dev/null || true
|
|
3179
|
+
fi
|
|
3180
|
+
else
|
|
3181
|
+
pip3 install -q fastapi uvicorn pydantic websockets 2>/dev/null || {
|
|
3182
|
+
echo -e "${RED}Failed to install dashboard dependencies${NC}"
|
|
3183
|
+
echo "Run manually: python3 -m venv ${dashboard_venv} && ${dashboard_venv}/bin/pip install fastapi uvicorn pydantic websockets"
|
|
3184
|
+
exit 1
|
|
3185
|
+
}
|
|
3186
|
+
fi
|
|
3187
|
+
fi
|
|
3188
|
+
|
|
3128
3189
|
# Start server
|
|
3129
3190
|
mkdir -p "$LOKI_DIR/logs" "$LOKI_DIR/dashboard"
|
|
3130
|
-
local
|
|
3191
|
+
local host="${LOKI_DASHBOARD_HOST:-127.0.0.1}"
|
|
3192
|
+
local uvicorn_args="--host $host --port $port"
|
|
3131
3193
|
if [ -n "${LOKI_TLS_CERT:-}" ] && [ -n "${LOKI_TLS_KEY:-}" ]; then
|
|
3132
3194
|
uvicorn_args="$uvicorn_args --ssl-certfile ${LOKI_TLS_CERT} --ssl-keyfile ${LOKI_TLS_KEY}"
|
|
3133
3195
|
fi
|
|
3134
|
-
LOKI_DIR="$LOKI_DIR" PYTHONPATH="$SKILL_DIR" nohup
|
|
3196
|
+
LOKI_DIR="$LOKI_DIR" PYTHONPATH="$SKILL_DIR" nohup "$api_python" -m uvicorn dashboard.server:app $uvicorn_args > "$LOKI_DIR/logs/api.log" 2>&1 &
|
|
3135
3197
|
local new_pid=$!
|
|
3136
3198
|
echo "$new_pid" > "$pid_file"
|
|
3137
3199
|
|
package/autonomy/run.sh
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
#!/bin/bash
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
2
|
# shellcheck disable=SC2034 # Many variables are used by sourced scripts
|
|
3
3
|
# shellcheck disable=SC2155 # Declare and assign separately (acceptable in this codebase)
|
|
4
4
|
# shellcheck disable=SC2329 # Functions may be invoked indirectly or via dynamic dispatch
|
|
@@ -5147,11 +5147,49 @@ start_dashboard() {
|
|
|
5147
5147
|
log_info "TLS enabled for dashboard"
|
|
5148
5148
|
fi
|
|
5149
5149
|
|
|
5150
|
+
# Ensure dashboard Python dependencies via virtualenv (PEP 668 safe)
|
|
5151
|
+
local skill_dir="${SCRIPT_DIR%/*}"
|
|
5152
|
+
local req_file="${skill_dir}/dashboard/requirements.txt"
|
|
5153
|
+
local dashboard_venv="${skill_dir}/dashboard/.venv"
|
|
5154
|
+
local python_cmd="python3"
|
|
5155
|
+
|
|
5156
|
+
# Use venv python if available, otherwise set one up
|
|
5157
|
+
if [ -x "${dashboard_venv}/bin/python3" ]; then
|
|
5158
|
+
python_cmd="${dashboard_venv}/bin/python3"
|
|
5159
|
+
fi
|
|
5160
|
+
|
|
5161
|
+
if ! "$python_cmd" -c "import fastapi" 2>/dev/null; then
|
|
5162
|
+
log_step "Setting up dashboard virtualenv..."
|
|
5163
|
+
if ! [ -d "$dashboard_venv" ]; then
|
|
5164
|
+
python3 -m venv "$dashboard_venv" 2>/dev/null || python3.13 -m venv "$dashboard_venv" 2>/dev/null || {
|
|
5165
|
+
log_warn "Failed to create virtualenv, trying direct pip install..."
|
|
5166
|
+
}
|
|
5167
|
+
fi
|
|
5168
|
+
if [ -x "${dashboard_venv}/bin/python3" ]; then
|
|
5169
|
+
python_cmd="${dashboard_venv}/bin/python3"
|
|
5170
|
+
log_step "Installing dashboard dependencies into venv..."
|
|
5171
|
+
if [ -f "$req_file" ]; then
|
|
5172
|
+
"${dashboard_venv}/bin/pip" install -q -r "$req_file" 2>/dev/null || {
|
|
5173
|
+
log_warn "Pinned deps failed, installing core deps..."
|
|
5174
|
+
"${dashboard_venv}/bin/pip" install -q fastapi uvicorn pydantic websockets 2>/dev/null || true
|
|
5175
|
+
}
|
|
5176
|
+
else
|
|
5177
|
+
"${dashboard_venv}/bin/pip" install -q fastapi uvicorn pydantic websockets 2>/dev/null || true
|
|
5178
|
+
fi
|
|
5179
|
+
else
|
|
5180
|
+
# Fallback: try direct pip (may fail on PEP 668 systems)
|
|
5181
|
+
pip3 install -q fastapi uvicorn pydantic websockets 2>/dev/null || pip install -q fastapi uvicorn pydantic websockets 2>/dev/null || {
|
|
5182
|
+
log_warn "Failed to install dashboard dependencies"
|
|
5183
|
+
log_warn "Run manually: python3 -m venv ${dashboard_venv} && ${dashboard_venv}/bin/pip install fastapi uvicorn pydantic websockets"
|
|
5184
|
+
}
|
|
5185
|
+
fi
|
|
5186
|
+
fi
|
|
5187
|
+
|
|
5150
5188
|
# Start the FastAPI dashboard server
|
|
5151
5189
|
# Dashboard module is at project root (parent of autonomy/)
|
|
5152
5190
|
# LOKI_SKILL_DIR tells server.py where to find static files
|
|
5153
5191
|
LOKI_TLS_CERT="${LOKI_TLS_CERT:-}" LOKI_TLS_KEY="${LOKI_TLS_KEY:-}" \
|
|
5154
|
-
LOKI_SKILL_DIR="${
|
|
5192
|
+
LOKI_SKILL_DIR="${skill_dir}" PYTHONPATH="${skill_dir}" nohup "$python_cmd" -m dashboard.server > "$log_file" 2>&1 &
|
|
5155
5193
|
DASHBOARD_PID=$!
|
|
5156
5194
|
|
|
5157
5195
|
# Save PID for later cleanup
|
package/autonomy/sandbox.sh
CHANGED
package/autonomy/serve.sh
CHANGED
package/dashboard/__init__.py
CHANGED
package/docs/INSTALLATION.md
CHANGED
package/events/emit.sh
CHANGED
package/learning/aggregate.sh
CHANGED
package/learning/emit.sh
CHANGED
package/learning/suggest.sh
CHANGED
package/mcp/__init__.py
CHANGED
package/package.json
CHANGED
package/providers/claude.sh
CHANGED
package/providers/codex.sh
CHANGED
package/providers/gemini.sh
CHANGED
package/providers/loader.sh
CHANGED