loki-mode 6.7.0 → 6.7.1
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 +2 -2
- package/VERSION +1 -1
- package/autonomy/loki +33 -7
- package/autonomy/run.sh +8 -5
- package/dashboard/__init__.py +1 -1
- package/docs/INSTALLATION.md +1 -1
- package/mcp/__init__.py +1 -1
- package/package.json +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 minimal human intervention. Requires --dangerously-skip-permissions flag.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# Loki Mode v6.7.
|
|
6
|
+
# Loki Mode v6.7.1
|
|
7
7
|
|
|
8
8
|
**You are an autonomous agent. You make decisions. You do not ask questions. You do not stop.**
|
|
9
9
|
|
|
@@ -267,4 +267,4 @@ The following features are documented in skill modules but not yet fully automat
|
|
|
267
267
|
| Quality gates 3-reviewer system | Implemented (v5.35.0) | 5 specialist reviewers in `skills/quality-gates.md`; execution in run.sh |
|
|
268
268
|
| Benchmarks (HumanEval, SWE-bench) | Infrastructure only | Runner scripts and datasets exist in `benchmarks/`; no published results |
|
|
269
269
|
|
|
270
|
-
**v6.7.
|
|
270
|
+
**v6.7.1 | [Autonomi](https://www.autonomi.dev/) flagship product | ~260 lines core**
|
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
6.7.
|
|
1
|
+
6.7.1
|
package/autonomy/loki
CHANGED
|
@@ -8576,8 +8576,16 @@ if count == 0:
|
|
|
8576
8576
|
echo -e "${BOLD}Memory Search: $query${NC}"
|
|
8577
8577
|
echo ""
|
|
8578
8578
|
|
|
8579
|
+
# Use python3.12 for ML packages (3.14 lacks sentence-transformers)
|
|
8580
|
+
local _search_py="python3"
|
|
8581
|
+
if command -v /opt/homebrew/bin/python3.12 &>/dev/null; then
|
|
8582
|
+
_search_py="/opt/homebrew/bin/python3.12"
|
|
8583
|
+
elif command -v python3.12 &>/dev/null; then
|
|
8584
|
+
_search_py="python3.12"
|
|
8585
|
+
fi
|
|
8586
|
+
|
|
8579
8587
|
# Try vector search first, fall back to keyword
|
|
8580
|
-
|
|
8588
|
+
$_search_py << PYEOF
|
|
8581
8589
|
import os, json, sys, glob
|
|
8582
8590
|
|
|
8583
8591
|
query = """$query"""
|
|
@@ -8631,14 +8639,26 @@ try:
|
|
|
8631
8639
|
from memory.storage import MemoryStorage
|
|
8632
8640
|
storage = MemoryStorage('.loki/memory')
|
|
8633
8641
|
retriever = MemoryRetrieval(storage)
|
|
8634
|
-
|
|
8635
|
-
for
|
|
8636
|
-
|
|
8642
|
+
retriever.build_indices()
|
|
8643
|
+
for coll in ['episodic', 'semantic', 'skills']:
|
|
8644
|
+
try:
|
|
8645
|
+
vr = retriever.retrieve_by_similarity(query, coll, top_k=3)
|
|
8646
|
+
for item in vr:
|
|
8647
|
+
if isinstance(item, dict):
|
|
8648
|
+
item['_collection'] = coll
|
|
8649
|
+
vector_results.append(item)
|
|
8650
|
+
except Exception:
|
|
8651
|
+
continue
|
|
8637
8652
|
if vector_results:
|
|
8638
8653
|
print(" [Vector Search Results]")
|
|
8639
8654
|
for item in vector_results[:5]:
|
|
8640
8655
|
if isinstance(item, dict):
|
|
8641
|
-
|
|
8656
|
+
coll = item.get('_collection', '?')
|
|
8657
|
+
title = item.get('title', item.get('name', item.get('id', '?')))
|
|
8658
|
+
summary = item.get('summary', item.get('pattern', ''))[:80]
|
|
8659
|
+
print(f" [{coll}] {title}")
|
|
8660
|
+
if summary:
|
|
8661
|
+
print(f" {summary}")
|
|
8642
8662
|
else:
|
|
8643
8663
|
print(f" {str(item)[:80]}")
|
|
8644
8664
|
print()
|
|
@@ -9081,7 +9101,7 @@ except Exception as e:
|
|
|
9081
9101
|
# Build initial index if memory files exist
|
|
9082
9102
|
echo ""
|
|
9083
9103
|
echo -n " Building vector indices... "
|
|
9084
|
-
|
|
9104
|
+
$py_ml -c "
|
|
9085
9105
|
try:
|
|
9086
9106
|
import sys
|
|
9087
9107
|
sys.path.insert(0, '.')
|
|
@@ -9104,7 +9124,13 @@ except Exception as e:
|
|
|
9104
9124
|
;;
|
|
9105
9125
|
|
|
9106
9126
|
rebuild)
|
|
9107
|
-
|
|
9127
|
+
local py_rb="python3"
|
|
9128
|
+
if command -v /opt/homebrew/bin/python3.12 &>/dev/null; then
|
|
9129
|
+
py_rb="/opt/homebrew/bin/python3.12"
|
|
9130
|
+
elif command -v python3.12 &>/dev/null; then
|
|
9131
|
+
py_rb="python3.12"
|
|
9132
|
+
fi
|
|
9133
|
+
$py_rb -c "
|
|
9108
9134
|
try:
|
|
9109
9135
|
import sys
|
|
9110
9136
|
sys.path.insert(0, '.')
|
package/autonomy/run.sh
CHANGED
|
@@ -673,8 +673,8 @@ fi
|
|
|
673
673
|
# Track worktree PIDs for cleanup (requires bash 4+ for associative arrays)
|
|
674
674
|
# BASH_VERSION_MAJOR is defined at script startup
|
|
675
675
|
if [ "$BASH_VERSION_MAJOR" -ge 4 ] 2>/dev/null; then
|
|
676
|
-
declare -A WORKTREE_PIDS
|
|
677
|
-
declare -A WORKTREE_PATHS
|
|
676
|
+
declare -A WORKTREE_PIDS=()
|
|
677
|
+
declare -A WORKTREE_PATHS=()
|
|
678
678
|
else
|
|
679
679
|
# Fallback: parallel mode will check and warn
|
|
680
680
|
# shellcheck disable=SC2178
|
|
@@ -2584,7 +2584,10 @@ run_parallel_orchestrator() {
|
|
|
2584
2584
|
"worktrees": {
|
|
2585
2585
|
$(for stream in "${!WORKTREE_PATHS[@]}"; do
|
|
2586
2586
|
local path="${WORKTREE_PATHS[$stream]}"
|
|
2587
|
-
local pid="
|
|
2587
|
+
local pid="null"
|
|
2588
|
+
if [ -n "${WORKTREE_PIDS[$stream]+x}" ]; then
|
|
2589
|
+
pid="${WORKTREE_PIDS[$stream]}"
|
|
2590
|
+
fi
|
|
2588
2591
|
local status="stopped"
|
|
2589
2592
|
if [ "$pid" != "null" ] && kill -0 "$pid" 2>/dev/null; then
|
|
2590
2593
|
status="running"
|
|
@@ -5119,7 +5122,7 @@ COMPOUND_SCRIPT
|
|
|
5119
5122
|
enforce_static_analysis() {
|
|
5120
5123
|
local loki_dir="${TARGET_DIR:-.}/.loki"
|
|
5121
5124
|
local quality_dir="$loki_dir/quality"
|
|
5122
|
-
mkdir -p "$quality_dir"
|
|
5125
|
+
mkdir -p "$quality_dir" "$loki_dir/signals"
|
|
5123
5126
|
|
|
5124
5127
|
local changed_files
|
|
5125
5128
|
changed_files=$(git -C "${TARGET_DIR:-.}" diff --name-only HEAD~1 2>/dev/null || \
|
|
@@ -5262,7 +5265,7 @@ SAFEOF
|
|
|
5262
5265
|
enforce_test_coverage() {
|
|
5263
5266
|
local loki_dir="${TARGET_DIR:-.}/.loki"
|
|
5264
5267
|
local quality_dir="$loki_dir/quality"
|
|
5265
|
-
mkdir -p "$quality_dir"
|
|
5268
|
+
mkdir -p "$quality_dir" "$loki_dir/signals"
|
|
5266
5269
|
|
|
5267
5270
|
local min_coverage="${LOKI_MIN_COVERAGE:-80}"
|
|
5268
5271
|
local test_passed=true
|
package/dashboard/__init__.py
CHANGED
package/docs/INSTALLATION.md
CHANGED
package/mcp/__init__.py
CHANGED