loki-mode 11.2.0 → 11.2.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.
Files changed (77) hide show
  1. package/SKILL.md +2 -2
  2. package/VERSION +1 -1
  3. package/autonomy/lib/skill-link-heal.sh +54 -0
  4. package/autonomy/loki +156 -1201
  5. package/autonomy/provider-offer.sh +4 -4
  6. package/autonomy/run.sh +11 -3
  7. package/bin/loki +22 -0
  8. package/bin/loki-postinstall.js +3 -1
  9. package/dashboard/__init__.py +1 -1
  10. package/docs/CLI-REFERENCE.md +1 -1
  11. package/docs/INSTALLATION.md +1 -1
  12. package/docs/KNOWN-ISSUES.md +0 -1
  13. package/docs/v10/ADOPTION-PLAN.md +2 -2
  14. package/docs/v10/DECISIONS.md +2 -0
  15. package/docs/v10/FAILURE-CLASSES.md +37 -1
  16. package/loki-ts/dist/loki.js +729 -704
  17. package/mcp/__init__.py +1 -1
  18. package/package.json +1 -1
  19. package/packages/control-plane/dist/server.js +252 -65
  20. package/plugins/loki-mode/.claude-plugin/plugin.json +1 -1
  21. package/web-app/dist/assets/{AdminPage-Bs4Vyd9R.js → AdminPage-C-iMLNxe.js} +1 -1
  22. package/web-app/dist/assets/{Avatar-Dmf_rtmv.js → Avatar-C7VUvwsO.js} +1 -1
  23. package/web-app/dist/assets/{Badge-DCEdgEN8.js → Badge-tGvQEhnw.js} +1 -1
  24. package/web-app/dist/assets/{Button-BpGXXEPk.js → Button-_iHlH_yL.js} +1 -1
  25. package/web-app/dist/assets/{CockpitPage-CzssVmim.js → CockpitPage-J_nNjbcR.js} +1 -1
  26. package/web-app/dist/assets/{ComparePage-BU4XtB9F.js → ComparePage-B05ui6Xt.js} +1 -1
  27. package/web-app/dist/assets/{ErrorBoundary-Bkjf4KP2.js → ErrorBoundary-Bxex6DLn.js} +1 -1
  28. package/web-app/dist/assets/{EvidenceReceiptPanel-CcGMfaq7.js → EvidenceReceiptPanel-BsgWfdD1.js} +1 -1
  29. package/web-app/dist/assets/{GitHubIssuesPanel-D53leEFJ.js → GitHubIssuesPanel-DZBhZ8_X.js} +1 -1
  30. package/web-app/dist/assets/{GitHubPRsPanel-UVsPtV3-.js → GitHubPRsPanel-BaxlAl6R.js} +1 -1
  31. package/web-app/dist/assets/{HomePage-D9wO-XTX.js → HomePage-mVJvzqbF.js} +2 -2
  32. package/web-app/dist/assets/{LoginPage-ChxBSele.js → LoginPage-B0zd4A_G.js} +1 -1
  33. package/web-app/dist/assets/{MagicPage-BqQDKX2L.js → MagicPage-DXLQ-y_R.js} +1 -1
  34. package/web-app/dist/assets/{MetricsPage-CA22NkPl.js → MetricsPage-CLS34Xvr.js} +1 -1
  35. package/web-app/dist/assets/{NotFoundPage-oYt5qdHQ.js → NotFoundPage-BXG8PbNV.js} +1 -1
  36. package/web-app/dist/assets/{ProjectPage-tSAdI6A6.js → ProjectPage-D3kFFC0F.js} +3 -3
  37. package/web-app/dist/assets/{ProjectsPage-Dk22bicF.js → ProjectsPage-2bFn-gnC.js} +1 -1
  38. package/web-app/dist/assets/{SettingsPage-CwDSvMn6.js → SettingsPage-CBM0ziWE.js} +1 -1
  39. package/web-app/dist/assets/{ShowcasePage-By3IMy9k.js → ShowcasePage-BTaXhjI3.js} +1 -1
  40. package/web-app/dist/assets/{SystemSettingsPage-DcWNR28_.js → SystemSettingsPage-BrC2hyAr.js} +1 -1
  41. package/web-app/dist/assets/{TeamsPage-CFawyYQg.js → TeamsPage-oqxdbVbY.js} +1 -1
  42. package/web-app/dist/assets/{TemplatesPage-D7pCD-63.js → TemplatesPage-CEbUIY21.js} +1 -1
  43. package/web-app/dist/assets/{TerminalOutput-CT2v1Vm2.js → TerminalOutput-aIoWLbJA.js} +1 -1
  44. package/web-app/dist/assets/{activity-DW6jRbjj.js → activity-CPyi45gt.js} +1 -1
  45. package/web-app/dist/assets/{bell-CJOu9IIM.js → bell-BhaNBaJp.js} +1 -1
  46. package/web-app/dist/assets/{bot-dVt0Xw_X.js → bot-Da8REaEP.js} +1 -1
  47. package/web-app/dist/assets/{check-BVC4A8YK.js → check-DPj99ArM.js} +1 -1
  48. package/web-app/dist/assets/{chevron-left-Djgr5pg-.js → chevron-left-CkxonN0X.js} +1 -1
  49. package/web-app/dist/assets/{circle-alert-OE2reifn.js → circle-alert-C0JkB1y5.js} +1 -1
  50. package/web-app/dist/assets/{clock-BUUN5rWU.js → clock-COzFIiWi.js} +1 -1
  51. package/web-app/dist/assets/{cloud-CzPIksNz.js → cloud-bjkac4kn.js} +1 -1
  52. package/web-app/dist/assets/{code-xml-DlE7vlGY.js → code-xml-hlKlvXUJ.js} +1 -1
  53. package/web-app/dist/assets/{database-DUauMcIC.js → database-D555S5Km.js} +1 -1
  54. package/web-app/dist/assets/{dollar-sign-CBx9DWbM.js → dollar-sign-CVcApzcD.js} +1 -1
  55. package/web-app/dist/assets/{file-code-corner-hTmaP9Mz.js → file-code-corner-UORaMIcO.js} +1 -1
  56. package/web-app/dist/assets/{file-plus-DimFEqtO.js → file-plus-ALJtDoI2.js} +1 -1
  57. package/web-app/dist/assets/{globe-BV7yxcQ_.js → globe-CPlrM_IC.js} +1 -1
  58. package/web-app/dist/assets/{hammer-CW6Ol_ju.js → hammer-qaGZHpja.js} +1 -1
  59. package/web-app/dist/assets/{index-83w75NC1.js → index-BcXljIAO.js} +3 -3
  60. package/web-app/dist/assets/{layers-DMAqCHxh.js → layers-BV8R9VUK.js} +1 -1
  61. package/web-app/dist/assets/{loader-circle-B-TJNPo5.js → loader-circle-6TlDS9Tu.js} +1 -1
  62. package/web-app/dist/assets/{lock-DbvZW7dV.js → lock-B9t6oWI0.js} +1 -1
  63. package/web-app/dist/assets/{package-BWFcV2kS.js → package-2gEUAtZJ.js} +1 -1
  64. package/web-app/dist/assets/{plus-CjPzASFv.js → plus-DXocxPjU.js} +1 -1
  65. package/web-app/dist/assets/{refresh-cw-DJL2nFq0.js → refresh-cw-D3dWHBd6.js} +1 -1
  66. package/web-app/dist/assets/{rotate-ccw-Bq3vK-Tu.js → rotate-ccw-CvuWqaSB.js} +1 -1
  67. package/web-app/dist/assets/{scroll-text-CAMgtDYH.js → scroll-text-ktmD_xJY.js} +1 -1
  68. package/web-app/dist/assets/{server-D71_Bywf.js → server-E7pZtj5A.js} +1 -1
  69. package/web-app/dist/assets/{shield-alert-DqQ5wzQ6.js → shield-alert-968j9z0V.js} +1 -1
  70. package/web-app/dist/assets/{thumbs-up-DXE_IT36.js → thumbs-up-Tz_8rpU_.js} +1 -1
  71. package/web-app/dist/assets/{trash-2-VYAPKajq.js → trash-2-Drh9IIj8.js} +1 -1
  72. package/web-app/dist/assets/{trending-down-CuE-J2LH.js → trending-down-DCQXtVSL.js} +1 -1
  73. package/web-app/dist/assets/{trending-up-BvdD9XmQ.js → trending-up-BIiwQbWV.js} +1 -1
  74. package/web-app/dist/assets/{upload-OM2YFziE.js → upload-sCbPkfmy.js} +1 -1
  75. package/web-app/dist/assets/{usePolling-Bk39fp_d.js → usePolling-BMIg6ZVT.js} +1 -1
  76. package/web-app/dist/assets/{user-CWmKQURs.js → user-kGzXC3V2.js} +1 -1
  77. 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.2.0
6
+ # Loki Mode v11.2.2
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 legacy engine, which still ships and is being removed (`loki start owner/repo#N` still routes to it; prefer `loki owner/repo#N`).
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.2.0 | [Autonomi](https://www.autonomi.dev/) flagship product | core skill**
486
+ **v11.2.2 | [Autonomi](https://www.autonomi.dev/) flagship product | core skill**
package/VERSION CHANGED
@@ -1 +1 @@
1
- 11.2.0
1
+ 11.2.2
@@ -0,0 +1,54 @@
1
+ #!/usr/bin/env bash
2
+ # FC-30: keep the provider skill links Loki created pointing at the running
3
+ # install. One shared mechanism, called from npm postinstall and from the bin/loki
4
+ # shim (first invocation after an install or upgrade). Cost: a few lstat/readlink
5
+ # calls, no network, no subprocess beyond readlink/ln/mv on the repair path.
6
+ #
7
+ # Opt out with LOKI_NO_SKILL_LINK_HEAL=1.
8
+ #
9
+ # A link is repointed only when ALL hold:
10
+ # - it is a symlink (a real directory or file is never touched)
11
+ # - its target is a Loki install path (…/node_modules/loki-mode, or a Homebrew
12
+ # Cellar/opt loki-mode dir), so a foreign link is never touched
13
+ # - its target is missing, or resolves to a different install than the running one
14
+ # - the running root is itself an install path with a SKILL.md, so a dev checkout
15
+ # or worktree never hijacks the user's global link
16
+
17
+ _loki_skill_is_install_path() {
18
+ case "${1%/}" in
19
+ */node_modules/loki-mode | */Cellar/loki-mode/* | */opt/loki-mode | */opt/loki-mode/libexec) return 0 ;;
20
+ esac
21
+ return 1
22
+ }
23
+
24
+ loki_skill_link_heal() {
25
+ [ "${LOKI_NO_SKILL_LINK_HEAL:-}" = "1" ] && return 0
26
+ local root="${1:-}" home="${HOME:-}" root_p rel link tgt live_p tmp
27
+ [ -n "$root" ] && [ -n "$home" ] || return 0
28
+ [ -f "$root/SKILL.md" ] || return 0
29
+ root_p="$(cd "$root" 2>/dev/null && pwd -P)" || return 0
30
+ _loki_skill_is_install_path "$root_p" || _loki_skill_is_install_path "$root" || return 0
31
+
32
+ for rel in .claude .codex .cline .aider; do
33
+ link="$home/$rel/skills/loki-mode"
34
+ [ -L "$link" ] || continue
35
+ tgt="$(readlink "$link" 2>/dev/null)" || continue
36
+ case "$tgt" in /*) ;; *) tgt="$(dirname "$link")/$tgt" ;; esac
37
+ _loki_skill_is_install_path "$tgt" || continue
38
+ if [ -e "$link" ]; then
39
+ live_p="$(cd "$link" 2>/dev/null && pwd -P)" || live_p=""
40
+ [ "$live_p" = "$root_p" ] && continue
41
+ fi
42
+ tmp="${link}.heal.$$"
43
+ rm -f "$tmp" 2>/dev/null
44
+ ln -s "$root_p" "$tmp" 2>/dev/null || continue
45
+ # Atomic replace. -T (GNU) / -h (BSD) stop mv from descending into a
46
+ # link that points at a directory.
47
+ if mv -fT "$tmp" "$link" 2>/dev/null || mv -fh "$tmp" "$link" 2>/dev/null; then
48
+ printf 'loki: repointed skill link %s -> %s (was %s)\n' "$link" "$root_p" "$tgt" >&2
49
+ else
50
+ rm -f "$tmp" 2>/dev/null
51
+ fi
52
+ done
53
+ return 0
54
+ }