loki-mode 5.20.6 → 5.20.8

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.
@@ -125,8 +125,9 @@ COPY --from=builder /usr/bin/npx /usr/bin/npx
125
125
  COPY --from=builder /usr/bin/gh /usr/bin/gh
126
126
 
127
127
  # Copy installed CLI tools from builder (global node_modules)
128
- COPY --from=builder /usr/local/lib/node_modules /usr/local/lib/node_modules
129
- COPY --from=builder /usr/local/bin /usr/local/bin
128
+ # Note: npm -g with NodeSource installs to /usr/lib/node_modules, binaries to /usr/bin
129
+ # The /usr/local paths may not exist if CLIs aren't available on npm
130
+ # We already copied /usr/lib/node_modules above
130
131
 
131
132
  # Create symlinks for node binaries
132
133
  RUN ln -sf /usr/lib/node_modules/npm/bin/npm-cli.js /usr/local/bin/npm 2>/dev/null || true \
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.20.6
6
+ # Loki Mode v5.20.8
7
7
 
8
8
  **You are an autonomous agent. You make decisions. You do not ask questions. You do not stop.**
9
9
 
@@ -253,4 +253,4 @@ Auto-detected or force with `LOKI_COMPLEXITY`:
253
253
 
254
254
  ---
255
255
 
256
- **v5.20.6 | Dashboard Consolidation, Unified Web Components | ~250 lines core**
256
+ **v5.20.8 | Dashboard Consolidation, Unified Web Components | ~250 lines core**
package/VERSION CHANGED
@@ -1 +1 @@
1
- 5.20.6
1
+ 5.20.8
package/autonomy/loki CHANGED
@@ -441,7 +441,8 @@ cmd_start() {
441
441
  local effective_provider="${provider:-${LOKI_PROVIDER:-claude}}"
442
442
 
443
443
  # Handle sandbox mode - delegate to sandbox.sh
444
- if [[ "${LOKI_SANDBOX_MODE:-}" == "true" ]]; then
444
+ # Skip if we're already inside a container (/.dockerenv exists)
445
+ if [[ "${LOKI_SANDBOX_MODE:-}" == "true" ]] && [[ ! -f /.dockerenv ]]; then
445
446
  if [ ! -f "$SANDBOX_SH" ]; then
446
447
  echo -e "${RED}Error: sandbox.sh not found at $SANDBOX_SH${NC}"
447
448
  exit 1
@@ -3261,7 +3262,7 @@ try:
3261
3262
  from memory.engine import MemoryEngine
3262
3263
  import json
3263
3264
  episode_id = os.environ.get('LOKI_ID', '')
3264
- engine = MemoryEngine('.loki/memory')
3265
+ engine = MemoryEngine(base_path='.loki/memory')
3265
3266
  episode = engine.get_episode(episode_id)
3266
3267
  if episode:
3267
3268
  print(json.dumps(episode.to_dict(), indent=2))
@@ -3282,7 +3283,7 @@ except Exception as e:
3282
3283
  python3 -c "
3283
3284
  try:
3284
3285
  from memory.engine import MemoryEngine
3285
- engine = MemoryEngine('.loki/memory')
3286
+ engine = MemoryEngine(base_path='.loki/memory')
3286
3287
  patterns = engine.find_patterns()
3287
3288
  if not patterns:
3288
3289
  print('No patterns found')
@@ -3303,7 +3304,7 @@ try:
3303
3304
  from memory.engine import MemoryEngine
3304
3305
  import json
3305
3306
  pattern_id = os.environ.get('LOKI_ID', '')
3306
- engine = MemoryEngine('.loki/memory')
3307
+ engine = MemoryEngine(base_path='.loki/memory')
3307
3308
  pattern = engine.get_pattern(pattern_id)
3308
3309
  if pattern:
3309
3310
  print(json.dumps(pattern.to_dict(), indent=2))
@@ -675,6 +675,9 @@ start_sandbox() {
675
675
  # Working directory
676
676
  docker_args+=("--workdir" "/workspace")
677
677
 
678
+ # Override entrypoint to use bash (Dockerfile has loki as entrypoint)
679
+ docker_args+=("--entrypoint" "/bin/bash")
680
+
678
681
  # Image and command
679
682
  docker_args+=("$SANDBOX_IMAGE")
680
683
 
@@ -690,7 +693,7 @@ start_sandbox() {
690
693
  fi
691
694
  loki_cmd="$loki_cmd --provider $provider"
692
695
 
693
- docker_args+=("bash" "-c" "$loki_cmd")
696
+ docker_args+=("-c" "$loki_cmd")
694
697
 
695
698
  # Run container
696
699
  local container_id
@@ -1190,9 +1193,9 @@ main() {
1190
1193
  case "$command" in
1191
1194
  start)
1192
1195
  if [[ "$sandbox_mode" == "docker" ]]; then
1193
- start_sandbox "${args[@]}"
1196
+ start_sandbox ${args[@]+"${args[@]}"}
1194
1197
  else
1195
- start_worktree_sandbox "${args[@]}"
1198
+ start_worktree_sandbox ${args[@]+"${args[@]}"}
1196
1199
  fi
1197
1200
  ;;
1198
1201
  stop)
@@ -1210,7 +1213,7 @@ main() {
1210
1213
  fi
1211
1214
  ;;
1212
1215
  logs)
1213
- sandbox_logs "${args[@]}"
1216
+ sandbox_logs ${args[@]+"${args[@]}"}
1214
1217
  ;;
1215
1218
  shell)
1216
1219
  sandbox_shell
@@ -1220,28 +1223,28 @@ main() {
1220
1223
  ;;
1221
1224
  prompt)
1222
1225
  if [[ "$sandbox_mode" == "docker" ]]; then
1223
- sandbox_prompt "${args[@]}"
1226
+ sandbox_prompt ${args[@]+"${args[@]}"}
1224
1227
  else
1225
- worktree_sandbox_prompt "${args[@]}"
1228
+ worktree_sandbox_prompt ${args[@]+"${args[@]}"}
1226
1229
  fi
1227
1230
  ;;
1228
1231
  run)
1229
- sandbox_run "${args[@]}"
1232
+ sandbox_run ${args[@]+"${args[@]}"}
1230
1233
  ;;
1231
1234
  cleanup)
1232
1235
  cleanup_worktrees
1233
1236
  ;;
1234
1237
  serve)
1235
- sandbox_serve "${args[@]}"
1238
+ sandbox_serve ${args[@]+"${args[@]}"}
1236
1239
  ;;
1237
1240
  test)
1238
- sandbox_test "${args[@]}"
1241
+ sandbox_test ${args[@]+"${args[@]}"}
1239
1242
  ;;
1240
1243
  phase)
1241
1244
  sandbox_phase
1242
1245
  ;;
1243
1246
  expose)
1244
- sandbox_expose "${args[@]}"
1247
+ sandbox_expose ${args[@]+"${args[@]}"}
1245
1248
  ;;
1246
1249
  help|--help|-h)
1247
1250
  show_help
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "loki-mode",
3
- "version": "5.20.6",
3
+ "version": "5.20.8",
4
4
  "description": "Multi-agent autonomous startup system for Claude Code, Codex CLI, and Gemini CLI",
5
5
  "keywords": [
6
6
  "claude",