loki-mode 11.17.46 → 11.17.48

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.
Files changed (80) hide show
  1. package/SKILL.md +2 -2
  2. package/VERSION +1 -1
  3. package/autonomy/loki +32 -4
  4. package/autonomy/run.sh +16 -6
  5. package/benchmarks/seeded-defects/manifest.json +1606 -0
  6. package/completions/_loki +8 -0
  7. package/completions/loki.bash +1 -1
  8. package/dashboard/__init__.py +1 -1
  9. package/docs/CLI-REFERENCE.md +1 -1
  10. package/docs/INSTALLATION.md +1 -1
  11. package/docs/v10/BOARD.md +33 -3
  12. package/docs/v10/CONTROL-PLANE.md +1 -1
  13. package/docs/v10/FAILURE-CLASSES.md +1 -1
  14. package/docs/v10/PROGRESS.md +6 -0
  15. package/loki-ts/dist/loki.js +1307 -1279
  16. package/mcp/__init__.py +1 -1
  17. package/package.json +4 -2
  18. package/packages/control-plane/dist/ask-tools-server.js +8 -0
  19. package/packages/control-plane/dist/server.js +442 -368
  20. package/packages/control-plane/src/server/ingest.ts +2 -2
  21. package/packages/control-plane/src/server/integrity.ts +6 -12
  22. package/packages/control-plane/src/shipper/ship.ts +2 -8
  23. package/plugins/loki-mode/.claude-plugin/plugin.json +1 -1
  24. package/web-app/dist/assets/{AdminPage-DOQbb9S2.js → AdminPage-BPJVaCEf.js} +1 -1
  25. package/web-app/dist/assets/{Avatar-DlCHpaY9.js → Avatar-Bw7MMGi1.js} +1 -1
  26. package/web-app/dist/assets/{Badge-CsGRidkQ.js → Badge-CEFAS_Xj.js} +1 -1
  27. package/web-app/dist/assets/{Button-CaNiRTkv.js → Button-CzQvJaSb.js} +1 -1
  28. package/web-app/dist/assets/{CockpitPage-B8sezC-W.js → CockpitPage-uWZUV5vU.js} +1 -1
  29. package/web-app/dist/assets/{ComparePage-B36mEWLR.js → ComparePage-B8K52Bob.js} +1 -1
  30. package/web-app/dist/assets/{ErrorBoundary-BFGjCcE5.js → ErrorBoundary-mmBzw79w.js} +1 -1
  31. package/web-app/dist/assets/{EvidenceReceiptPanel-mFXX7T0e.js → EvidenceReceiptPanel-D-C_9v67.js} +1 -1
  32. package/web-app/dist/assets/{GitHubIssuesPanel-BjUOWEuY.js → GitHubIssuesPanel-D01lFHnc.js} +1 -1
  33. package/web-app/dist/assets/{GitHubPRsPanel-CcLMzJZk.js → GitHubPRsPanel-Bje_NQB0.js} +1 -1
  34. package/web-app/dist/assets/{HomePage-9j8CciDG.js → HomePage-C8OEDRTr.js} +2 -2
  35. package/web-app/dist/assets/{LoginPage-BXEJEipC.js → LoginPage-Cool7Iw_.js} +1 -1
  36. package/web-app/dist/assets/{MagicPage-JJhHAzUo.js → MagicPage-DMvhVDyI.js} +1 -1
  37. package/web-app/dist/assets/{MetricsPage-g2murSvE.js → MetricsPage-CzYARc4t.js} +1 -1
  38. package/web-app/dist/assets/{NotFoundPage-D3fshofn.js → NotFoundPage-CLuI0jCU.js} +1 -1
  39. package/web-app/dist/assets/{ProjectPage-B91c8gqI.js → ProjectPage-BxhIhhVe.js} +3 -3
  40. package/web-app/dist/assets/{ProjectsPage-f-AqCLnm.js → ProjectsPage-D_hclu0C.js} +1 -1
  41. package/web-app/dist/assets/{SettingsPage-xmKoxIhv.js → SettingsPage-Dau5TMP3.js} +1 -1
  42. package/web-app/dist/assets/{ShowcasePage-DxPIEO67.js → ShowcasePage-D560cP-Z.js} +1 -1
  43. package/web-app/dist/assets/{SystemSettingsPage-Cm9Dy2-W.js → SystemSettingsPage-ek9P-k4X.js} +1 -1
  44. package/web-app/dist/assets/{TeamsPage-xUmbM2Q6.js → TeamsPage-e1RGxUiS.js} +1 -1
  45. package/web-app/dist/assets/{TemplatesPage-BF0atSP9.js → TemplatesPage-C5O7u6Yl.js} +1 -1
  46. package/web-app/dist/assets/{TerminalOutput-BRR-hjM0.js → TerminalOutput-_UWCGfD0.js} +1 -1
  47. package/web-app/dist/assets/{activity-bs7r0Zgu.js → activity-BcHzPz-Z.js} +1 -1
  48. package/web-app/dist/assets/{bell-BSBQU6oH.js → bell-D5IPRWzy.js} +1 -1
  49. package/web-app/dist/assets/{bot-IY1WHsy_.js → bot-B_5hZVKx.js} +1 -1
  50. package/web-app/dist/assets/{check-BbLOs82D.js → check-Dn2f9AXR.js} +1 -1
  51. package/web-app/dist/assets/{chevron-left-Dr_YJex2.js → chevron-left-DF2PtK7-.js} +1 -1
  52. package/web-app/dist/assets/{circle-alert-CdPabs5h.js → circle-alert-B_4ZRu8m.js} +1 -1
  53. package/web-app/dist/assets/{clock-DSSC0-0Q.js → clock-7CFKor-w.js} +1 -1
  54. package/web-app/dist/assets/{cloud-D_gWiz8h.js → cloud-CGYN9-6_.js} +1 -1
  55. package/web-app/dist/assets/{code-xml-BeK0mcX9.js → code-xml-DqBxYuk4.js} +1 -1
  56. package/web-app/dist/assets/{database-CcJkBSXN.js → database-CiOULELf.js} +1 -1
  57. package/web-app/dist/assets/{dollar-sign-B0KTo6gY.js → dollar-sign-DijBsvLO.js} +1 -1
  58. package/web-app/dist/assets/{file-code-corner-Br9i1QUK.js → file-code-corner-BNEtGVfX.js} +1 -1
  59. package/web-app/dist/assets/{file-plus-Cntlx-H3.js → file-plus-DtUmw4Kz.js} +1 -1
  60. package/web-app/dist/assets/{globe-BzTQwBst.js → globe-CmWPNrp3.js} +1 -1
  61. package/web-app/dist/assets/{hammer-DY5E-S_s.js → hammer-CnrZECeT.js} +1 -1
  62. package/web-app/dist/assets/{index-D8iQaeY_.js → index-B9oYaFMU.js} +3 -3
  63. package/web-app/dist/assets/{layers-fichWK2q.js → layers-Lxxu1F99.js} +1 -1
  64. package/web-app/dist/assets/{loader-circle-H4GEC-nt.js → loader-circle-Dp9seYEV.js} +1 -1
  65. package/web-app/dist/assets/{lock-L2gybTp0.js → lock-Ej10h0El.js} +1 -1
  66. package/web-app/dist/assets/{package-C6GhNvrY.js → package-nzNsxPvu.js} +1 -1
  67. package/web-app/dist/assets/{plus-C76f-H0b.js → plus-Bohfac84.js} +1 -1
  68. package/web-app/dist/assets/{refresh-cw-CYrIM5Gt.js → refresh-cw-D28TMjNP.js} +1 -1
  69. package/web-app/dist/assets/{rotate-ccw-DuVzPMTc.js → rotate-ccw-EydLVFHV.js} +1 -1
  70. package/web-app/dist/assets/{scroll-text-Ou40WwYD.js → scroll-text-CqJ7dpQH.js} +1 -1
  71. package/web-app/dist/assets/{server-CY2Y_apg.js → server-UHZ1Mk-a.js} +1 -1
  72. package/web-app/dist/assets/{shield-alert-CNf-jmi3.js → shield-alert-a-XlrS3P.js} +1 -1
  73. package/web-app/dist/assets/{thumbs-up-DNRc_NvO.js → thumbs-up-QHDAqKhY.js} +1 -1
  74. package/web-app/dist/assets/{trash-2-CdzowWF_.js → trash-2-CJ8uIX7e.js} +1 -1
  75. package/web-app/dist/assets/{trending-down-DtZEAOFe.js → trending-down-CQ1Ofr8H.js} +1 -1
  76. package/web-app/dist/assets/{trending-up-BwiPR3rB.js → trending-up-jG23a3L-.js} +1 -1
  77. package/web-app/dist/assets/{upload-BI_6o8oU.js → upload-CsZ15cCI.js} +1 -1
  78. package/web-app/dist/assets/{usePolling-TefZLSUZ.js → usePolling-C2ztQasf.js} +1 -1
  79. package/web-app/dist/assets/{user-BzczgZi4.js → user-B1RCExaJ.js} +1 -1
  80. package/web-app/dist/index.html +1 -1
package/SKILL.md CHANGED
@@ -3,7 +3,7 @@ name: loki-mode
3
3
  description: An autonomous software factory that knows what it is supposed to deliver, and proves it did. Use when the user says Loki Mode or asks to build, fix or verify software autonomously.
4
4
  ---
5
5
 
6
- # Loki Mode v11.17.46
6
+ # Loki Mode v11.17.48
7
7
 
8
8
  **Current entry points (Loki 10 engine):** `loki "<task>"`, `loki owner/repo#N` and `loki quick "<task>"` run the Loki 10 engine and end with a signed receipt (`loki verify`). `loki backlog owner/repo --all` runs many issues in parallel. Guide: `docs/v10/GUIDE.md`. The skill instructions below, and `loki start`, describe the previous bash loop. PRD-file starts (`loki start ./prd.md`) and the opencode provider still run on it until FC38-SWEEP ports them; the legacy-engine command and the LOKI_ENGINE switch remain removed. Prefer `loki owner/repo#N` for issues.
9
9
 
@@ -483,4 +483,4 @@ See `CHANGELOG.md` entries [7.5.7], [7.5.8], [7.5.13] for the per-fix list and r
483
483
 
484
484
  ---
485
485
 
486
- **v11.17.46 | [Autonomi](https://www.autonomi.dev/) flagship product | core skill**
486
+ **v11.17.48 | [Autonomi](https://www.autonomi.dev/) flagship product | core skill**
package/VERSION CHANGED
@@ -1 +1 @@
1
- 11.17.46
1
+ 11.17.48
package/autonomy/loki CHANGED
@@ -74,9 +74,16 @@ fi
74
74
  # Default per-run spend cap (single source: default_max_cost_usd in loki-ts/data/model-pricing.json,
75
75
  # also read by loki-ts/src/e10ext/budget_cap.ts and autonomy/run.sh). Prints a plain number; 100 only if the file is unreadable.
76
76
  loki_budget_default_usd() {
77
- local v=""
78
- [ -f "$_LOKI_SCRIPT_DIR/../loki-ts/data/model-pricing.json" ] && \
79
- v="$(sed -n 's/.*"default_max_cost_usd"[[:space:]]*:[[:space:]]*\([0-9][0-9.]*\).*/\1/p' "$_LOKI_SCRIPT_DIR/../loki-ts/data/model-pricing.json" | head -1)"
77
+ local f="${1:-$_LOKI_SCRIPT_DIR/../loki-ts/data/model-pricing.json}" v=""
78
+ if [ -e "$f" ]; then
79
+ v="$(sed -n 's/.*"default_max_cost_usd"[[:space:]]*:[[:space:]]*\([0-9][0-9.]*\).*/\1/p' "$f" 2>/dev/null | head -1)"
80
+ case "$v" in
81
+ '' | *[!0-9.]*)
82
+ printf '%s\n' "loki: warning: cannot read default_max_cost_usd from $f (unreadable or no parsable key); using fallback 100" >&2
83
+ v=""
84
+ ;;
85
+ esac
86
+ fi
80
87
  printf '%s\n' "${v:-100}"
81
88
  }
82
89
 
@@ -2697,6 +2704,27 @@ cmd_start() {
2697
2704
  echo -e "${RED}--health-url, --health-match, --auto-rollback, --destination, --canary and --domain apply only with --deploy${NC}" >&2
2698
2705
  exit 2
2699
2706
  fi
2707
+ # Same checks and text as cmd_deploy so the bash route fails before cmd_start.
2708
+ if [ "$_ps_deploy" = 1 ]; then
2709
+ if [ -n "$_ps_dest" ]; then
2710
+ case "$_ps_dest" in
2711
+ preview|staging|production) ;;
2712
+ *) echo -e "${RED}loki deploy --destination must be one of: preview, staging, production${NC}" >&2; exit 2 ;;
2713
+ esac
2714
+ fi
2715
+ if [ "$_ps_rb" = 1 ] && [ -z "$_ps_health" ]; then
2716
+ echo -e "${RED}loki deploy --auto-rollback requires --health-url (no health signal, no rollback)${NC}" >&2
2717
+ exit 2
2718
+ fi
2719
+ if [ -n "$_ps_hmatch" ] && [ -z "$_ps_health" ]; then
2720
+ echo -e "${RED}loki deploy --health-match requires --health-url${NC}" >&2
2721
+ exit 2
2722
+ fi
2723
+ if [ "$_ps_canary" = 1 ] && [ -n "$_ps_dest" ] && [ "$_ps_dest" != production ]; then
2724
+ echo -e "${RED}loki deploy --canary only applies to --destination production${NC}" >&2
2725
+ exit 2
2726
+ fi
2727
+ fi
2700
2728
  if [ -n "$_ps_ws" ]; then
2701
2729
  if [ "$_ps_deploy" = 1 ]; then
2702
2730
  echo -e "${RED}--workspace and --deploy cannot be combined: deploy each repo with loki deploy${NC}" >&2
@@ -7201,7 +7229,7 @@ cmd_stats() {
7201
7229
  case "$1" in
7202
7230
  --json) show_json=true; shift ;;
7203
7231
  --efficiency) show_efficiency=true; shift ;;
7204
- *) shift ;;
7232
+ *) echo "Unknown option: $1 (see: loki stats --help)" >&2; return 2 ;;
7205
7233
  esac
7206
7234
  done
7207
7235
 
package/autonomy/run.sh CHANGED
@@ -568,12 +568,22 @@ RESOURCE_MEM_THRESHOLD=${LOKI_RESOURCE_MEM_THRESHOLD:-80} # Memory % thresho
568
568
  # LM-002: the default value is read from default_max_cost_usd in loki-ts/data/model-pricing.json, the same
569
569
  # file the Loki 10 engine reads (docs/cost-controls.md). "100.00" is only the
570
570
  # fallback when that file is absent, and budget_cap.test.ts pins it to the file.
571
- _loki_budget_default="$(sed -n 's/.*"default_max_cost_usd"[[:space:]]*:[[:space:]]*\([0-9][0-9.]*\).*/\1/p' \
572
- "${SCRIPT_DIR}/../loki-ts/data/model-pricing.json" 2>/dev/null | head -n 1)"
573
- case "$_loki_budget_default" in
574
- '' | *[!0-9.]*) _loki_budget_default="100.00" ;;
575
- *) _loki_budget_default="$(awk -v v="$_loki_budget_default" 'BEGIN{printf "%.2f", v}')" ;;
576
- esac
571
+ _loki_budget_default_from() {
572
+ local f="$1" v=""
573
+ if [ ! -e "$f" ]; then
574
+ printf '%s\n' "100.00"
575
+ return 0
576
+ fi
577
+ v="$(sed -n 's/.*"default_max_cost_usd"[[:space:]]*:[[:space:]]*\([0-9][0-9.]*\).*/\1/p' "$f" 2>/dev/null | head -n 1)"
578
+ case "$v" in
579
+ '' | *[!0-9.]*)
580
+ printf '%s\n' "loki: warning: cannot read default_max_cost_usd from $f (unreadable or no parsable key); using fallback 100.00" >&2
581
+ printf '%s\n' "100.00"
582
+ ;;
583
+ *) awk -v v="$v" 'BEGIN{printf "%.2f\n", v}' ;;
584
+ esac
585
+ }
586
+ _loki_budget_default="$(_loki_budget_default_from "${SCRIPT_DIR}/../loki-ts/data/model-pricing.json")"
577
587
  # Where the active cap came from: flag (loki start --budget), config (settings.json),
578
588
  # env (LOKI_BUDGET_LIMIT set by the caller), or default. Printed once at run start.
579
589
  if [ "${LOKI_BUDGET_LIMIT+set}" = "set" ]; then