loki-mode 11.77.0 → 11.78.0

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 (75) hide show
  1. package/SKILL.md +2 -2
  2. package/VERSION +1 -1
  3. package/autonomy/loki +21 -2
  4. package/completions/_loki +9 -0
  5. package/completions/loki.bash +7 -0
  6. package/dashboard/__init__.py +1 -1
  7. package/docs/{v10/CLI-MODERN.md → CLI-INVENTORY.md} +6 -6
  8. package/docs/CLI-REFERENCE.md +2 -2
  9. package/docs/INSTALLATION.md +1 -1
  10. package/docs/dev/architecture-reference.md +2 -2
  11. package/docs/dev/project-structure.md +2 -1
  12. package/loki-ts/dist/loki.js +1602 -1600
  13. package/loki-ts/package.json +2 -2
  14. package/mcp/__init__.py +1 -1
  15. package/mcp/requirements.txt +1 -1
  16. package/package.json +3 -3
  17. package/packages/control-plane/dist/server.js +18243 -17888
  18. package/plugins/loki-mode/.claude-plugin/plugin.json +1 -1
  19. package/web-app/dist/assets/{AdminPage-DrlEpTKN.js → AdminPage-BPF2Xehf.js} +1 -1
  20. package/web-app/dist/assets/{Avatar-CJ9juG_K.js → Avatar-CSW9BhBU.js} +1 -1
  21. package/web-app/dist/assets/{Badge-DcttGvjK.js → Badge-wgm79wim.js} +1 -1
  22. package/web-app/dist/assets/{Button-b5O9YocE.js → Button-BcIAcPKr.js} +1 -1
  23. package/web-app/dist/assets/{CockpitPage-Bx6KwmVB.js → CockpitPage-BFi-0Kwj.js} +1 -1
  24. package/web-app/dist/assets/{ComparePage-BaevXGrD.js → ComparePage-B7Wibrfn.js} +1 -1
  25. package/web-app/dist/assets/{ErrorBoundary-2sZmLblz.js → ErrorBoundary-BYyOVh2c.js} +1 -1
  26. package/web-app/dist/assets/{EvidenceReceiptPanel-C2XY1fMD.js → EvidenceReceiptPanel-C9QcrjNl.js} +1 -1
  27. package/web-app/dist/assets/{GitHubIssuesPanel-DwHuq31X.js → GitHubIssuesPanel-CWbuBxVZ.js} +1 -1
  28. package/web-app/dist/assets/{GitHubPRsPanel-BQMn-YnD.js → GitHubPRsPanel-qcBHK615.js} +1 -1
  29. package/web-app/dist/assets/{HomePage-Dpo55VLr.js → HomePage-B1mYFU4t.js} +2 -2
  30. package/web-app/dist/assets/{LoginPage-Dfnw1PTO.js → LoginPage-CmIO1xL7.js} +1 -1
  31. package/web-app/dist/assets/{MagicPage-DoR3K8ef.js → MagicPage-L7UP4qKP.js} +1 -1
  32. package/web-app/dist/assets/{MetricsPage-Brf8VAOe.js → MetricsPage-DVPCjN1U.js} +1 -1
  33. package/web-app/dist/assets/{NotFoundPage-CepMv0TW.js → NotFoundPage-D3XZmCH5.js} +1 -1
  34. package/web-app/dist/assets/{ProjectPage-DKGi8lof.js → ProjectPage-BlaMzlVi.js} +3 -3
  35. package/web-app/dist/assets/{ProjectsPage-BxPCmo7e.js → ProjectsPage-DN7W28Zq.js} +1 -1
  36. package/web-app/dist/assets/{SettingsPage-CriniWvU.js → SettingsPage-2u9ODYB5.js} +1 -1
  37. package/web-app/dist/assets/{ShowcasePage-B2PV4GFW.js → ShowcasePage-CoKuTfab.js} +1 -1
  38. package/web-app/dist/assets/{SystemSettingsPage-CQUapqwh.js → SystemSettingsPage-Crhj2XAU.js} +1 -1
  39. package/web-app/dist/assets/{TeamsPage-BkLyYavH.js → TeamsPage-DehMgnKh.js} +1 -1
  40. package/web-app/dist/assets/{TemplatesPage-CeU_rnJk.js → TemplatesPage-DGtwfZgU.js} +1 -1
  41. package/web-app/dist/assets/{TerminalOutput-oLOjcbqL.js → TerminalOutput-7HZRtXoC.js} +1 -1
  42. package/web-app/dist/assets/{activity-DEHJPfgq.js → activity-DAp5wswo.js} +1 -1
  43. package/web-app/dist/assets/{bell-BmXaknK2.js → bell-Ncvnrz7d.js} +1 -1
  44. package/web-app/dist/assets/{bot-B-JWrH_p.js → bot-BWob3K3E.js} +1 -1
  45. package/web-app/dist/assets/{check-BaspF93s.js → check-DReWA2vm.js} +1 -1
  46. package/web-app/dist/assets/{chevron-left-M6VCet0K.js → chevron-left-CBJpzVU1.js} +1 -1
  47. package/web-app/dist/assets/{circle-alert-DVLpodrK.js → circle-alert-2c_vs5PW.js} +1 -1
  48. package/web-app/dist/assets/{clock-BRy8KpHK.js → clock-BrS_ZKKi.js} +1 -1
  49. package/web-app/dist/assets/{cloud-jTlY1qAB.js → cloud-Czvuo51R.js} +1 -1
  50. package/web-app/dist/assets/{code-xml-73Xelkkd.js → code-xml-BWEqJ2I8.js} +1 -1
  51. package/web-app/dist/assets/{database-DpMqKrsA.js → database-CJ6M-oK-.js} +1 -1
  52. package/web-app/dist/assets/{dollar-sign-Bcw89Epb.js → dollar-sign-DSObKmVv.js} +1 -1
  53. package/web-app/dist/assets/{file-code-corner-5Drrk2XB.js → file-code-corner-CVEW-gF5.js} +1 -1
  54. package/web-app/dist/assets/{file-plus-D1PmiWXN.js → file-plus-CAK0I0tE.js} +1 -1
  55. package/web-app/dist/assets/{globe-Dq8rgYwT.js → globe-DeUgcsSZ.js} +1 -1
  56. package/web-app/dist/assets/{hammer-Duyrm7AU.js → hammer-B74PyjS0.js} +1 -1
  57. package/web-app/dist/assets/{index-Dg4Wvsep.js → index-DW3_HRqp.js} +3 -3
  58. package/web-app/dist/assets/{layers-zbNbb_Hz.js → layers-Dw7kaGyJ.js} +1 -1
  59. package/web-app/dist/assets/{loader-circle-vOKp3Yno.js → loader-circle-B6xzlAjw.js} +1 -1
  60. package/web-app/dist/assets/{lock-AsdJPlwj.js → lock-5ncCPzIG.js} +1 -1
  61. package/web-app/dist/assets/{package-Dt8-zN2y.js → package-x59_dTx0.js} +1 -1
  62. package/web-app/dist/assets/{plus-md8Hlau_.js → plus-BcVBzjpS.js} +1 -1
  63. package/web-app/dist/assets/{refresh-cw-BSTU8fSw.js → refresh-cw-CNrJhks6.js} +1 -1
  64. package/web-app/dist/assets/{rotate-ccw-D5Wn5NCl.js → rotate-ccw-BpmS_ezI.js} +1 -1
  65. package/web-app/dist/assets/{scroll-text-ChmR_jcw.js → scroll-text-CwBYNyoj.js} +1 -1
  66. package/web-app/dist/assets/{server-NY1F729P.js → server-C4hnxkk6.js} +1 -1
  67. package/web-app/dist/assets/{shield-alert-yhSn1RwF.js → shield-alert-CSVUyWCM.js} +1 -1
  68. package/web-app/dist/assets/{thumbs-up-GEJKgG1X.js → thumbs-up-DEU9fmDX.js} +1 -1
  69. package/web-app/dist/assets/{trash-2-elTR7osS.js → trash-2-DJKMevAm.js} +1 -1
  70. package/web-app/dist/assets/{trending-down-ptCvIKeg.js → trending-down-Dq3wAM59.js} +1 -1
  71. package/web-app/dist/assets/{trending-up-DbdbNpEl.js → trending-up-DribptN4.js} +1 -1
  72. package/web-app/dist/assets/{upload-D61Rwawf.js → upload-DUlZxsH1.js} +1 -1
  73. package/web-app/dist/assets/{usePolling-DNF7DO1q.js → usePolling-PecqVZ0k.js} +1 -1
  74. package/web-app/dist/assets/{user-BEYk6Un_.js → user-BcLYLDVU.js} +1 -1
  75. package/web-app/dist/index.html +1 -1
package/SKILL.md CHANGED
@@ -3,7 +3,7 @@ name: loki-mode
3
3
  description: Runs an autonomous software factory that knows what it is supposed to deliver and proves it did, with a signed receipt. Use when the user says Loki Mode or asks to build, fix or verify software autonomously.
4
4
  ---
5
5
 
6
- # Loki Mode v11.77.0
6
+ # Loki Mode v11.78.0
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
 
@@ -475,4 +475,4 @@ Implemented, planned and deprecated items, with the version each landed in: `ski
475
475
 
476
476
  ---
477
477
 
478
- **v11.77.0 | [Autonomi](https://www.autonomi.dev/) flagship product | core skill**
478
+ **v11.78.0 | [Autonomi](https://www.autonomi.dev/) flagship product | core skill**
package/VERSION CHANGED
@@ -1 +1 @@
1
- 11.77.0
1
+ 11.78.0
package/autonomy/loki CHANGED
@@ -5869,8 +5869,27 @@ try:
5869
5869
  except Exception:
5870
5870
  sys.exit(1)
5871
5871
  PYEOF
5872
- local est_json
5873
- est_json="$(cmd_estimate --json 2>/dev/null)" || est_json=""
5872
+ local est_json="" est_pid="" est_ticks=0 est_max est_kid
5873
+ est_max=$(( ${LOKI_NEXT_ESTIMATE_TIMEOUT:-20} * 4 ))
5874
+ # The estimate runs in the background and is polled, so a slow or hung
5875
+ # estimator cannot hang the command (no timeout binary is assumed: macOS
5876
+ # bash 3.2 may lack one). Only the PID started here, and its direct
5877
+ # children, are ever signalled.
5878
+ ( cmd_estimate --json > "$tmp/est" 2>/dev/null ) &
5879
+ est_pid=$!
5880
+ while kill -0 "$est_pid" 2>/dev/null; do
5881
+ if [ "$est_ticks" -ge "$est_max" ]; then
5882
+ for est_kid in $(pgrep -P "$est_pid" 2>/dev/null); do kill "$est_kid" 2>/dev/null || true; done
5883
+ kill "$est_pid" 2>/dev/null || true
5884
+ note="${note:+$note; }estimate unavailable: timed out after ${LOKI_NEXT_ESTIMATE_TIMEOUT:-20}s"
5885
+ : > "$tmp/est"
5886
+ break
5887
+ fi
5888
+ sleep 0.25
5889
+ est_ticks=$((est_ticks + 1))
5890
+ done
5891
+ wait "$est_pid" 2>/dev/null || true
5892
+ est_json="$(cat "$tmp/est" 2>/dev/null)" || est_json=""
5874
5893
  { git grep -nIE 'TODO|FIXME' -- . ':!.loki' 2>/dev/null \
5875
5894
  || grep -rnIE 'TODO|FIXME' --exclude-dir=.git --exclude-dir=.loki --exclude-dir=node_modules . 2>/dev/null; } \
5876
5895
  | head -20 > "$tmp/todos" || true
package/completions/_loki CHANGED
@@ -74,6 +74,15 @@ function _loki {
74
74
  agent)
75
75
  _loki_agent
76
76
  ;;
77
+ cost)
78
+ _arguments \
79
+ '--json[Output machine-readable JSON]' \
80
+ '--last[Show only the last N runs]:count:' \
81
+ '--month[Only runs generated in that month]:month (YYYY-MM):' \
82
+ '--csv[One CSV row per run]' \
83
+ '--detail[Per-iteration cache and trend breakdown]' \
84
+ '--help[Show help]'
85
+ ;;
77
86
  estimate)
78
87
  _arguments \
79
88
  '--json[Output machine-readable JSON]' \
@@ -125,6 +125,13 @@ _loki_completion() {
125
125
  COMPREPLY=( $(compgen -W "${syslog_cmds}" -- "$cur") )
126
126
  ;;
127
127
 
128
+ cost)
129
+ if [[ "$cur" == -* ]]; then
130
+ COMPREPLY=( $(compgen -W "--json --last --month --csv --detail --help" -- "$cur") )
131
+ return 0
132
+ fi
133
+ ;;
134
+
128
135
  estimate)
129
136
  if [[ "$cur" == -* ]]; then
130
137
  COMPREPLY=( $(compgen -W "--json --model --provider --help" -- "$cur") )
@@ -7,6 +7,6 @@ Modules:
7
7
  control: Session control helpers (status, atomic writes, origin check)
8
8
  """
9
9
 
10
- __version__ = "11.77.0"
10
+ __version__ = "11.78.0"
11
11
 
12
12
  __all__ = ["__version__"]
@@ -11,7 +11,7 @@ Classes: KEEP-MODERN (v10-native or engine-neutral), UPDATE (live but needs mode
11
11
  - DROP-LEGACY: 31
12
12
  - DELETE: 14
13
13
  - Total rows: 144
14
- - Registry paths (commands and nested subcommands): 212
14
+ - Registry paths (commands and nested subcommands): 214
15
15
 
16
16
  ## Commands
17
17
 
@@ -169,19 +169,19 @@ Classes: KEEP-MODERN (v10-native or engine-neutral), UPDATE (live but needs mode
169
169
  - compliance: 1
170
170
  - config: 4
171
171
  - context: 5
172
- - cost: 6
172
+ - cost: 7
173
173
  - deploy: 1
174
174
  - docs: 4
175
175
  - enterprise: 2
176
176
  - explain: 5
177
- - export: 6
178
- - github: 6
177
+ - export: 7
178
+ - github: 7
179
179
  - import: 1
180
180
  - init: 21
181
181
  - issue: 2
182
182
  - magic: 12
183
183
  - memory: 7
184
- - metrics: 6
184
+ - metrics: 7
185
185
  - modernize: 3
186
186
  - next: 1
187
187
  - notify: 6
@@ -198,7 +198,7 @@ Classes: KEEP-MODERN (v10-native or engine-neutral), UPDATE (live but needs mode
198
198
  - secrets: 3
199
199
  - secure: 3
200
200
  - setup-skill: 1
201
- - share: 6
201
+ - share: 7
202
202
  - ship: 1
203
203
  - syslog: 3
204
204
  - telemetry: 1
@@ -1,7 +1,7 @@
1
1
  # CLI reference
2
2
 
3
- Generated from `loki-ts/src/cli/registry.ts` by `scripts/generate-stale-zero.sh` for v11.77.0. Do not edit by hand.
4
- Hidden and legacy-only commands are omitted; see `docs/v10/CLI-MODERN.md` for the full inventory.
3
+ Generated from `loki-ts/src/cli/registry.ts` by `scripts/generate-stale-zero.sh` for v11.78.0. Do not edit by hand.
4
+ Hidden and legacy-only commands are omitted; see `docs/CLI-INVENTORY.md` for the full inventory.
5
5
 
6
6
  | Command | Description |
7
7
  | --- | --- |
@@ -2,7 +2,7 @@
2
2
 
3
3
  Loki Mode, by [Autonomi](https://www.autonomi.dev/), turns a spec or an issue into a verified pull request with a receipt you can check. This page covers installing it, a first run, and the options around it.
4
4
 
5
- **Version:** v11.77.0
5
+ **Version:** v11.78.0
6
6
 
7
7
  **Engine note:** `loki start` is the primary command. `loki start`, `loki "<task>"`, `loki owner/repo#N` and `loki quick` all run the Loki 10 engine, whatever the flag order or input form (PRD file, issue ref, task or one-word brief). The previous loop runs only on `--engine legacy`, `LOKI_ENGINE=legacy`, or for one call when a flag Loki 10 cannot honor is present. See the [user guide](v10/GUIDE.md) and the [5-minute quickstart](QUICKSTART.md).
8
8
 
@@ -82,7 +82,7 @@ time-to-first-preview write-once (bash route only).
82
82
 
83
83
  ## Anthropic SDK upgrade capability matrix (RQ-104, 2026-10-23)
84
84
 
85
- Pins (exact, all sites): `@anthropic-ai/sdk` 0.124.0 -> 1.2.0 (loki-ts/package.json, loki-ts/bun.lock, docker/Dockerfile peer pin); `@anthropic-ai/claude-agent-sdk` 0.3.293 -> 0.3.309 (loki-ts/package.json, package.json, package-lock.json, bun.lock, docker/Dockerfile). `tests/test-sdk-version-sync.sh` asserts both. Sources: sdk CHANGELOG 0.125.0..1.2.0, agent-sdk CHANGELOG 0.3.294..0.3.309.
85
+ Pins (exact, all sites): `@anthropic-ai/sdk` 0.124.0 -> 1.3.0 (loki-ts/package.json, loki-ts/bun.lock, docker/Dockerfile peer pin); `@anthropic-ai/claude-agent-sdk` 0.3.293 -> 0.3.312 (loki-ts/package.json, package.json, package-lock.json, bun.lock, docker/Dockerfile). `tests/test-sdk-version-sync.sh` asserts both. Sources: sdk CHANGELOG 0.125.0..1.3.0, agent-sdk CHANGELOG 0.3.294..0.3.312.
86
86
 
87
87
  | Change | Status |
88
88
  |---|---|
@@ -142,7 +142,7 @@ extract_learnings_from_session (autonomy/run.sh) mirrors learnings and decisions
142
142
 
143
143
  - Wall publish (FC-VERIFIED-PR-WITHOUT-ITS-TEST): on a VERIFIED seal only, `publishWall` (`util/check_result.ts`, called from `stages/seal.ts`) makes ONE child commit (trailer `Loki-Wall-Publish: <runId>`) of the SEALED Wall bytes (`runDir/wall`, hash-checked against `wall.files[].sha256`) that verify ran and passed (`publishableWall`). Before writing, the realpath of each Wall file's parent directory must be inside the repo, and an existing file or symlink is removed first. The child commit runs with hooks and signing OFF (the default `git()` call, no `userHooks`), so a pre-commit hook cannot add files or rewrite the Wall bytes. Afterwards the commit must touch exactly the published paths and each committed blob must equal the blob hash of the sealed bytes (computed in process, never read from the worktree); on any mismatch the child is rolled back (`update-ref` HEAD to the product head plus `read-tree`), nothing is published and a NOT PROVEN note is added. The receipt binds the PRODUCT head (head_sha, tree, diff_sha256 are computed before the child commit). A re-seal binds `HEAD^` only when HEAD's message has the exact trailer line for this run, HEAD touches only paths of this run's `wall.files`, and every blob sha256 matches (`wallChild`); a forged trailer is not enough. `util/seal_drift.ts` accepts a moved HEAD after head_sha as benign only when every commit after it is such a Wall publish commit (linear, trailer line for the receipt's run_id, only `wall.files` paths, blob sha256 equal to the sealed one); any commit after head_sha that carries this run's trailer but fails that check is head drift (UNCHECKED). Later commits without the trailer stay under the TEN-GATES-16 sealed-path overlap rule. The PR body gains an "Acceptance tests" section. Commit stage and `backstopCommit` still drop Wall files. `LOKI_COMMIT_WALL=0` restores the old behavior (nothing published).
144
144
 
145
- ### Python anthropic SDK (RQ-105: pinned `anthropic==2.2.0`)
145
+ ### Python anthropic SDK (RQ-105: pinned `anthropic==2.3.0`)
146
146
 
147
147
  `mcp/requirements.txt` pins the Python SDK exactly (was `>=0.40,<1.0.0`; the resolver landed on 0.125.0). Requires Python >=3.10 (Ubuntu 24.04 image ships 3.12). The SDK runs on `httpx2`; no repo code passes `httpx` objects to it. v2.0.0 changes (API version 2026-10-21): `temperature`/`top_p`/`top_k` removed from Messages (no call site uses them), Admin API field renames (unused). Python-side call sites: `memory/managed_memory/client.py` (the only importer) and `providers/managed.py` (lazy import, `tests/managed/test_registry_lazy.py` contract unchanged).
148
148
 
@@ -61,7 +61,8 @@ events/ # Unified Event Bus (v5.17.0)
61
61
  emit.sh # Bash helper for emitting events
62
62
  docs/ # Architecture documentation
63
63
  SYNERGY-ROADMAP.md # 5-pillar tool integration architecture
64
- v10/ # User guides: GUIDE.md, GUIDE-MODERNIZE.md, CLI-MODERN.md, DEPS.md
64
+ CLI-INVENTORY.md # Generated command inventory (from loki-ts/src/cli/registry.ts)
65
+ v10/ # User guides: GUIDE.md, GUIDE-MODERNIZE.md, DEPS.md
65
66
  dev/ # Developer reference docs (this file and its siblings)
66
67
  autonomy/ # Runtime and autonomous execution
67
68
  context-tracker.py # Context window usage tracking