loki-mode 10.5.17 → 10.5.20

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 (126) hide show
  1. package/README.md +877 -30
  2. package/SKILL.md +3 -3
  3. package/VERSION +1 -1
  4. package/autonomy/lib/proof-generator.py +251 -0
  5. package/autonomy/lib/proof-verify.py +1 -0
  6. package/autonomy/loki +52 -6
  7. package/autonomy/run.sh +35 -5
  8. package/autonomy/verify.sh +1 -1
  9. package/dashboard/__init__.py +1 -1
  10. package/dashboard/api_start.py +463 -0
  11. package/dashboard/server.py +31 -0
  12. package/dashboard/static/start.html +100 -0
  13. package/docs/COMPARISON.md +6 -19
  14. package/docs/COMPETITIVE-ANALYSIS.md +6 -41
  15. package/docs/CRASH-REPORTING-PLAN.md +1 -1
  16. package/docs/ENTERPRISE-IDENTITY-ROADMAP.md +1 -1
  17. package/docs/INSTALLATION.md +1 -1
  18. package/docs/PRIVACY.md +1 -1
  19. package/docs/R8-SHAREABLE-TEAM-ASSETS-PLAN.md +1 -1
  20. package/docs/WANG-PRINCIPLES-PLAN.md +1 -1
  21. package/docs/architecture/STATE-MACHINES.md +18 -27
  22. package/docs/architecture/bmad-integration-validation.md +2 -2
  23. package/docs/audit-logging.md +12 -86
  24. package/docs/authentication.md +4 -4
  25. package/docs/authorization.md +15 -47
  26. package/docs/auto-claude-comparison.md +1 -33
  27. package/docs/certification/01-core-concepts/lab.md +3 -3
  28. package/docs/certification/01-core-concepts/lesson.md +11 -22
  29. package/docs/certification/01-core-concepts/quiz.md +7 -7
  30. package/docs/certification/02-enterprise-features/lab.md +0 -2
  31. package/docs/certification/02-enterprise-features/lesson.md +0 -10
  32. package/docs/certification/04-production-deployment/lab.md +1 -1
  33. package/docs/certification/05-troubleshooting/lab.md +2 -2
  34. package/docs/certification/README.md +1 -1
  35. package/docs/certification/answer-key.md +37 -20
  36. package/docs/certification/certification-exam.md +7 -7
  37. package/docs/competitive/emergence-others-analysis.md +3 -3
  38. package/docs/competitive/replit-lovable-analysis.md +2 -2
  39. package/docs/cursor-comparison.md +2 -2
  40. package/docs/dashboard-guide.md +14 -2
  41. package/docs/dev/architecture-reference.md +2 -2
  42. package/docs/dev/project-structure.md +1 -1
  43. package/docs/enterprise/architecture.md +11 -8
  44. package/docs/enterprise/integration-cookbook.md +23 -14
  45. package/docs/enterprise/migration.md +5 -9
  46. package/docs/enterprise/performance.md +3 -6
  47. package/docs/enterprise/sdk-guide.md +1 -1
  48. package/docs/enterprise/security.md +8 -17
  49. package/docs/exit-codes.md +14 -0
  50. package/docs/git-workflow.md +4 -62
  51. package/docs/network-security.md +3 -13
  52. package/docs/plans/ULTRAPLAN-FORGE-BAAS.md +1 -1
  53. package/docs/prd-purple-lab-platform-v2.md +1 -1
  54. package/docs/prd-purple-lab-platform.md +1 -3
  55. package/docs/research-2026-07/GAP-ANALYSIS-BACKLOG.md +1 -1
  56. package/docs/show-hn-post.md +3 -4
  57. package/docs/siem-integration.md +8 -10
  58. package/docs/test-scenarios/edge-cases.md +2 -2
  59. package/docs/test-scenarios/enterprise-scenarios.md +4 -4
  60. package/docs/v10/BOARD.md +7 -5
  61. package/docs/v10/GUIDE.md +5 -3
  62. package/docs/v10/METRICS.md +36 -0
  63. package/docs/v10/PROGRESS.md +42 -0
  64. package/docs/walkthrough/README.md +1 -7
  65. package/loki-ts/dist/loki.js +370 -370
  66. package/mcp/__init__.py +1 -1
  67. package/package.json +1 -1
  68. package/plugins/loki-mode/.claude-plugin/plugin.json +1 -1
  69. package/web-app/dist/assets/{AdminPage-DxGZSpFg.js → AdminPage-HjtApbcL.js} +1 -1
  70. package/web-app/dist/assets/{Avatar-BZEp23D8.js → Avatar-BcwLENsU.js} +1 -1
  71. package/web-app/dist/assets/{Badge-DnDwqDLu.js → Badge-DjJhHJj0.js} +1 -1
  72. package/web-app/dist/assets/{Button-C9KDP4c1.js → Button-CSMstrCz.js} +1 -1
  73. package/web-app/dist/assets/{CockpitPage-DRlh3LV2.js → CockpitPage-BHihN-aq.js} +1 -1
  74. package/web-app/dist/assets/{ComparePage-C_gE45dQ.js → ComparePage-_6JtexDp.js} +1 -1
  75. package/web-app/dist/assets/{ErrorBoundary-CL-J9-Cs.js → ErrorBoundary-Cx2fnw3q.js} +1 -1
  76. package/web-app/dist/assets/{EvidenceReceiptPanel-DABd176Y.js → EvidenceReceiptPanel-DcUQAnju.js} +1 -1
  77. package/web-app/dist/assets/{GitHubIssuesPanel-C4lYbm6O.js → GitHubIssuesPanel-1dYpQ5Rx.js} +1 -1
  78. package/web-app/dist/assets/{GitHubPRsPanel-CgiUixwo.js → GitHubPRsPanel-BPdDD1kX.js} +1 -1
  79. package/web-app/dist/assets/{HomePage-DC99RIrz.js → HomePage-JfmwLGnQ.js} +2 -2
  80. package/web-app/dist/assets/{LoginPage-Bd72QWNk.js → LoginPage-7SnMHzPc.js} +1 -1
  81. package/web-app/dist/assets/{MagicPage-CBouFs2K.js → MagicPage-C0IkoOzD.js} +1 -1
  82. package/web-app/dist/assets/{MetricsPage-c9MyDcBp.js → MetricsPage-BJOZ0L3F.js} +1 -1
  83. package/web-app/dist/assets/{NotFoundPage-ZPhiebiW.js → NotFoundPage-S49UjLyW.js} +1 -1
  84. package/web-app/dist/assets/{ProjectPage-DKwrALUb.js → ProjectPage-Dj_nv2kT.js} +3 -3
  85. package/web-app/dist/assets/{ProjectsPage-X1uZKZC_.js → ProjectsPage-C7thLjOm.js} +1 -1
  86. package/web-app/dist/assets/{SettingsPage-CiZKZRto.js → SettingsPage-DEcJyfsU.js} +1 -1
  87. package/web-app/dist/assets/{ShowcasePage-k_imKfeh.js → ShowcasePage-B5PshXNg.js} +1 -1
  88. package/web-app/dist/assets/{SystemSettingsPage-Wx9ESLll.js → SystemSettingsPage-Cnp4BkN7.js} +1 -1
  89. package/web-app/dist/assets/{TeamsPage-B7upn-I7.js → TeamsPage-1ImpgMzs.js} +1 -1
  90. package/web-app/dist/assets/{TemplatesPage-oJf_VKgh.js → TemplatesPage-BOYKrPX8.js} +1 -1
  91. package/web-app/dist/assets/{TerminalOutput-BdfPlgLI.js → TerminalOutput-LPxzwfwm.js} +1 -1
  92. package/web-app/dist/assets/{activity-BcZTsgWH.js → activity-Hl7iDpX_.js} +1 -1
  93. package/web-app/dist/assets/{bell-JNEkjWQ2.js → bell-DrBfjAq4.js} +1 -1
  94. package/web-app/dist/assets/{bot-DMAJobP_.js → bot-6SoklKaZ.js} +1 -1
  95. package/web-app/dist/assets/{check-DPTry-z2.js → check-DhHuZH8k.js} +1 -1
  96. package/web-app/dist/assets/{chevron-left-DSqOEtTV.js → chevron-left-BUERGaLO.js} +1 -1
  97. package/web-app/dist/assets/{circle-alert-BbL8Vysv.js → circle-alert-D7UOw5bc.js} +1 -1
  98. package/web-app/dist/assets/{clock-BHEr5lGW.js → clock-t3v_i7fP.js} +1 -1
  99. package/web-app/dist/assets/{cloud-C48PunYo.js → cloud-CP3eLZts.js} +1 -1
  100. package/web-app/dist/assets/{code-xml-Boa7kRqT.js → code-xml-DU-CmwVx.js} +1 -1
  101. package/web-app/dist/assets/{database-Eu35Gv7z.js → database-J27fE_Ot.js} +1 -1
  102. package/web-app/dist/assets/{dollar-sign-BO9fCnHW.js → dollar-sign-BdU_HR9C.js} +1 -1
  103. package/web-app/dist/assets/{file-code-corner-DHsSDIL_.js → file-code-corner-Cu4A1aIH.js} +1 -1
  104. package/web-app/dist/assets/{file-plus-BYiQLe5l.js → file-plus-BTli76r5.js} +1 -1
  105. package/web-app/dist/assets/{globe-BPZ5sQI2.js → globe-Bz3m1c_-.js} +1 -1
  106. package/web-app/dist/assets/{hammer-DlOLTsH3.js → hammer-HNN6jr92.js} +1 -1
  107. package/web-app/dist/assets/{index-BrgkuqSA.js → index-CgK4xqUy.js} +3 -3
  108. package/web-app/dist/assets/{layers-DMNdn1GR.js → layers-DhuXUuM6.js} +1 -1
  109. package/web-app/dist/assets/{loader-circle-_e9fypHL.js → loader-circle-CeBjdh2y.js} +1 -1
  110. package/web-app/dist/assets/{lock-D_elxMZb.js → lock-DjSqmIVZ.js} +1 -1
  111. package/web-app/dist/assets/{package-Bw-7g3JI.js → package-NL0AdpIi.js} +1 -1
  112. package/web-app/dist/assets/{plus-CZeq0pgJ.js → plus-Lbz3hom-.js} +1 -1
  113. package/web-app/dist/assets/{refresh-cw-D0WMyffs.js → refresh-cw-uKARwuER.js} +1 -1
  114. package/web-app/dist/assets/{rotate-ccw-CcKyNwXG.js → rotate-ccw-ByA6XJq1.js} +1 -1
  115. package/web-app/dist/assets/{scroll-text-C0L9Vqpm.js → scroll-text-BV8Blxig.js} +1 -1
  116. package/web-app/dist/assets/{server-SgwFv6cd.js → server-Cy3R5hde.js} +1 -1
  117. package/web-app/dist/assets/{shield-alert-D1tESlfI.js → shield-alert-rE_xXx7r.js} +1 -1
  118. package/web-app/dist/assets/{thumbs-up-bUtUA15O.js → thumbs-up-CNMITZHD.js} +1 -1
  119. package/web-app/dist/assets/{trash-2-C9Nv1kKk.js → trash-2-BP3Rr5SU.js} +1 -1
  120. package/web-app/dist/assets/{trending-down-Bh107AJe.js → trending-down-BE_8lCjD.js} +1 -1
  121. package/web-app/dist/assets/{trending-up-25BqhLVq.js → trending-up-CF6E9-9a.js} +1 -1
  122. package/web-app/dist/assets/{upload-DDYtMbN5.js → upload-D-Ui4N6K.js} +1 -1
  123. package/web-app/dist/assets/{usePolling-BSDT0il_.js → usePolling-DIVX97OV.js} +1 -1
  124. package/web-app/dist/assets/{user-CKpUEUhK.js → user-7rTiTfDj.js} +1 -1
  125. package/web-app/dist/index.html +1 -1
  126. package/docs/README-FULL.md +0 -977
@@ -132,19 +132,6 @@
132
132
 
133
133
  ---
134
134
 
135
- ## Benchmarks (SWE-bench Verified)
136
-
137
- | Agent | Score | Notes |
138
- |-------|-------|-------|
139
- | **Google Antigravity** | 76.2% | With Gemini 3 Pro |
140
- | **Claude Code** | ~75%+ | Claude Sonnet 4.5 |
141
- | **OpenAI Codex** | ~70%+ | GPT-5.2-Codex |
142
- | **Devin 2.0** | 67% | PR merge rate doubled |
143
- | **Amazon Q Developer** | 66% | State-of-the-art claim |
144
- | **Loki Mode** | Inherits Claude | Framework, not model |
145
-
146
- ---
147
-
148
135
  ## Zencoder/Zenflow Comparison (v2.36.7)
149
136
 
150
137
  **Comprehensive analysis of Zencoder.ai enterprise AI coding platform, including Zenflow (autonomous workflows), Zen Agents (specialized agents), and Zentester (QA automation).**
@@ -210,7 +197,7 @@
210
197
  |---------|--------------|---------|-----------------|------------|-----------------|---------------------|----------------|
211
198
  | **Stars** | 594 | 11,903 | 35K+ | 26K+ | 13.7K | N/A | N/A |
212
199
  | **npm/wk** | 6.1K | 21.4K | N/A | N/A | N/A | N/A | N/A |
213
- | **Agents** | 41 roles in 8 domains | 11 agents | Fresh per task | 108 agents | Swarm-based | 32 agents | N/A |
200
+ | **Agents** | Role prompts per domain | 11 agents | Fresh per task | 108 agents | Swarm-based | 32 agents | N/A |
214
201
  | **Skills** | Progressive disclosure | 6 slash commands | N/A | 129 skills | N/A | 35 skills | Memory focus |
215
202
  | **Multi-Provider** | Yes (Claude/Cline/Codex/Aider/opencode) | 3 CLIs (separate) | No | No | No | No | No |
216
203
  | **Memory System** | 3-tier (episodic/semantic/procedural) | None | N/A | N/A | Hybrid | N/A | SQLite+FTS5 |
@@ -265,7 +252,7 @@ Plugin marketplace architecture with unprecedented scale:
265
252
  | Pattern | Description | Loki Mode Status |
266
253
  |---------|-------------|------------------|
267
254
  | **72 Plugins** | Modular, focused plugins instead of monolith | Different approach (progressive disclosure) |
268
- | **108 Agents** | Specialized agents for specific domains | 41 agent roles in Loki Mode |
255
+ | **108 Agents** | Specialized agents for specific domains | Specialized agent roles in Loki Mode |
269
256
  | **129 Skills** | Skills as first-class objects | 10 skills in skills/ |
270
257
  | **Four-Tier Model Strategy** | Explicit tier selection with constraints | Similar to Loki Mode tiers |
271
258
 
@@ -286,7 +273,7 @@ Tiered agent architecture with explicit escalation:
286
273
 
287
274
  | Pattern | Description | Loki Mode Status |
288
275
  |---------|-------------|------------------|
289
- | **32 Agents** | Smaller but well-organized agent set | 41 in Loki Mode |
276
+ | **32 Agents** | Smaller but well-organized agent set | Specialized roles in Loki Mode |
290
277
  | **35 Skills** | Domain-specific skills | 10 skills in Loki Mode |
291
278
  | **Tiered Architecture** | LOW/MEDIUM/HIGH with explicit triggers | **IMPLEMENTED** (model-selection.md lines 180-363) |
292
279
  | **Delegation Enforcer** | Middleware auto-injects correct model | Evaluating |
@@ -349,13 +336,13 @@ Tiered agent architecture with explicit escalation:
349
336
 
350
337
  | Agent | Killer Feature |
351
338
  |-------|---------------|
352
- | **Loki Mode** | Minimal-human-intervention full SDLC from any spec (PRD, GitHub issue, or YAML), 41 agent roles in 8 domains, Constitutional AI, anti-sycophancy, cross-project learning, code transformation, property-based testing |
339
+ | **Loki Mode** | Minimal-human-intervention full SDLC from any spec (PRD, GitHub issue, or YAML), specialized agent roles, Constitutional AI, anti-sycophancy, cross-project learning, code transformation, property-based testing |
353
340
  | **Devin** | Full software engineer persona, Slack integration, 67% PR merge rate |
354
341
  | **OpenAI Codex** | Skills marketplace, $skill-creator, GPT-5.2-Codex, secure sandbox |
355
342
  | **Cursor** | 8 parallel agents, BugBot, Memories, $10B valuation, Composer model (250 tok/s) |
356
343
  | **Kiro** | Spec-driven development (requirements.md/design.md/tasks.md), Property-based testing, Hooks |
357
- | **Antigravity** | Manager Surface, Artifacts system (video), browser subagents, Gemini 3 (76.2% SWE-bench) |
358
- | **Amazon Q** | Code transformation (/transform), 66% SWE-bench, deep AWS integration, MCP support |
344
+ | **Antigravity** | Manager Surface, Artifacts system (video), browser subagents, Gemini 3 |
345
+ | **Amazon Q** | Code transformation (/transform), deep AWS integration, MCP support |
359
346
  | **OpenCode** | 70.9k stars, multi-provider, LSP integration (25+ languages), plugin system |
360
347
 
361
348
  ---
@@ -16,7 +16,7 @@ GSD is the closest competitor -- a context engineering system that spawns fresh
16
16
 
17
17
  | Dimension | Loki Mode | GSD | Winner |
18
18
  |-----------|-----------|-----|--------|
19
- | Feature depth | Deep (memory, council, dashboard, events, 41 agents) | Shallow (6 commands, 11 agents, markdown state) | Loki |
19
+ | Feature depth | Deep (memory, council, dashboard, events, agent roles) | Shallow (6 commands, 11 agents, markdown state) | Loki |
20
20
  | Adoption | 594 stars, 6K/wk npm | 11,903 stars, 21K/wk npm | GSD (20x) |
21
21
  | Simplicity | Complex (5.4K-line run.sh, 12 Python modules) | Simple (markdown agents + slash commands) | GSD |
22
22
  | Full autonomy | Walk away, come back to deployed product | Human checkpoints at discuss/verify/milestone | Loki |
@@ -36,12 +36,11 @@ GSD is the closest competitor -- a context engineering system that spawns fresh
36
36
  | Feature | Loki Mode | Claude-Flow | MetaGPT | CrewAI | Cursor Agent | Devin |
37
37
  |---------|-----------|-------------|---------|--------|--------------|-------|
38
38
  | **GitHub Stars** | 594 | 13,700 | 62,400 | 25,000+ | N/A (Commercial) | N/A (Commercial) |
39
- | **Agent Count** | 41 types | 64+ agents | 5 roles | Unlimited | 8 parallel | 1 autonomous |
40
39
  | **Parallel Execution** | Yes (multi-agent) | Yes (swarms) | Sequential | Yes (crews) | Yes (8 worktrees) | Yes (fleet) |
41
- | **Published Benchmarks** | 98.78% HumanEval (self-reported, max 3 retries) | None | 85.9-87.7% HumanEval | None | ~250 tok/s | 15% complex tasks |
40
+ | **Published Benchmarks** | None | None | 85.9-87.7% HumanEval | None | ~250 tok/s | 15% complex tasks |
42
41
  | **SWE-bench Score** | Not measured (patch generation harness exists; official evaluator not run, so no resolve rate exists) | Unknown | Unknown | Unknown | Unknown | 15% complex |
43
42
  | **Full SDLC** | Yes (8 phases) | Yes | Partial | Partial | No | Partial |
44
- | **Business Ops** | **Yes (8 agents)** | No | No | No | No | No |
43
+ | **Business Ops** | **Yes** | No | No | No | No | No |
45
44
  | **Enterprise Security** | `--dangerously-skip-permissions` | MCP sandboxed | Sandboxed | Audit logs, RBAC | Staged autonomy | Sandboxed |
46
45
  | **Cross-Project Learning** | No | AgentDB | No | No | No | Limited |
47
46
  | **Observability** | Dashboard + STATUS.txt | Real-time tracing | Logs | Full tracing | Built-in | Full |
@@ -175,43 +174,10 @@ GSD is the closest competitor -- a context engineering system that spawns fresh
175
174
 
176
175
  ---
177
176
 
178
- ## Benchmark Results (Published 2026-01-05)
177
+ ## Benchmark Results
179
178
 
180
- ### HumanEval Results (Three-Way Comparison)
181
-
182
- **Loki Mode Multi-Agent (with RARV):**
183
-
184
- | Metric | Value |
185
- |--------|-------|
186
- | **Pass@1** | **98.78%** |
187
- | Passed | 162/164 problems |
188
- | Failed | 2 problems (HumanEval/32, HumanEval/50) |
189
- | RARV Recoveries | 2 (HumanEval/38, HumanEval/132) |
190
- | Avg Attempts | 1.04 |
191
- | Model | Claude Opus 4.5 |
192
- | Time | 45.1 minutes |
193
-
194
- **Direct Claude (Single Agent Baseline):**
195
-
196
- | Metric | Value |
197
- |--------|-------|
198
- | **Pass@1** | **98.17%** |
199
- | Passed | 161/164 problems |
200
- | Failed | 3 problems |
201
- | Model | Claude Opus 4.5 |
202
- | Time | 21.1 minutes |
203
-
204
- **Three-Way Comparison:**
205
-
206
- | System | HumanEval Pass@1 | Agent Type |
207
- |--------|------------------|------------|
208
- | **Loki Mode (multi-agent)** | **98.78%** | Architect->Engineer->QA->Reviewer |
209
- | Direct Claude | 98.17% | Single agent |
210
- | MetaGPT | 85.9-87.7% | Multi-agent (5 roles) |
211
-
212
- **Key Finding:** RARV cycle recovered 2 problems that failed on first attempt, demonstrating the value of self-verification loops.
213
-
214
- **Failed Problems (after RARV):** HumanEval/32, HumanEval/50
179
+ No benchmark result is published. A self-reported HumanEval run from
180
+ 2026-01-05 is withdrawn as a headline figure.
215
181
 
216
182
  ### SWE-bench Lite: Honest Status
217
183
 
@@ -233,7 +199,6 @@ resolve rate is not yet measured." Nothing stronger.
233
199
  ## Critical Gaps to Address
234
200
 
235
201
  ### Priority 1: Benchmarks (PARTIAL)
236
- - **Real:** 98.78% HumanEval Pass@1 with RARV (162/164, reproducible harness; 98.17% single-agent baseline)
237
202
  - **NOT real:** SWE-bench. Patch generation ran (299/300 diffs produced); the official
238
203
  evaluator never ran, so there is NO resolve rate and no comparable score.
239
204
  - **Next:** run a contamination-resistant evaluator end-to-end (or publish nothing for SWE-bench)
@@ -494,7 +494,7 @@ Guards that prevent a bad auto-fix from shipping:
494
494
  | Backend abuse / spam | Unauthenticated-but-rate-limited (per IP + project_id_hash), body-size cap, whitelist-schema validation, 202-always (no oracle), occurrence counter collapses floods into one issue. |
495
495
  | Auto-fix ships a regression | local-ci gate (42/42 + bun-parity) BEFORE PR; unanimous council; NO auto-merge; one PR per fingerprint; human merge gate per CLAUDE.md. |
496
496
  | GitHub token exfiltration | Token only on backend (7c/7e); clients carry no write secret; only a public anon ingest key at most. |
497
- | GDPR / CCPA compliance | Anonymous-by-design (no PII in whitelist; emails/IPs denied); disclosed default-on with friction-free persistent opt-out (LOKI_TELEMETRY=off, loki telemetry off, DO_NOT_TRACK=1); project_id_hash is non-reversible; PRIVACY.md documents data categories, retention, opt-out, and deletion-by-fingerprint on request. Default-on is defensible only WITH the disclosure; covert would not be. |
497
+ | Personal data | Anonymous-by-design (no PII in whitelist; emails/IPs denied); disclosed default-on with friction-free persistent opt-out (LOKI_TELEMETRY=off, loki telemetry off, DO_NOT_TRACK=1); project_id_hash is non-reversible; PRIVACY.md documents data categories, retention, opt-out, and deletion-by-fingerprint on request. Default-on is defensible only WITH the disclosure; covert would not be. |
498
498
  | Dual-route parity burden | Single shared Python scrubber called by both routes (5a) eliminates redaction drift; bun-parity matrix entries for `loki crash` (local-ci.sh:250); commands ported in both `autonomy/loki` and `loki-ts/src/commands/`. |
499
499
  | Over-reporting normal operation | Conservative capture: only uncaught/ nonzero-exit/provider-failure/explicit friction signals (retry loop, rate-limit loop, gate failure), not routine retries; thresholds before friction fires. |
500
500
  | python3 absence breaks capture | Fail closed: local write only if scrub ran, never egress without scrub (5b). |
@@ -155,7 +155,7 @@ effort estimate, and the IdP or test infrastructure required.
155
155
  ### SOC2
156
156
 
157
157
  - Scope: SOC2 is a compliance PROGRAM, not a code feature. It spans durable,
158
- tamper-evident audit logging with retention and SIEM export, access reviews,
158
+ integrity-protected audit logging with retention and SIEM export, access reviews,
159
159
  change-management process, vendor management, security policies, and a Type
160
160
  II observation window (commonly 6 to 12 months of evidence collected under
161
161
  an auditor).
@@ -2,7 +2,7 @@
2
2
 
3
3
  The flagship product of [Autonomi](https://www.autonomi.dev/). Loki Mode is a spec-driven autonomous builder with a built-in trust layer that takes any spec to a deployed product and verifies completion with evidence (quality gates plus a completion council), not just a "done" claim. Complete installation instructions for all platforms and use cases.
4
4
 
5
- **Version:** v10.5.17
5
+ **Version:** v10.5.20
6
6
 
7
7
  ---
8
8
 
package/docs/PRIVACY.md CHANGED
@@ -21,7 +21,7 @@ match the code, the code is the bug; please open an issue.
21
21
  CONTINUOUS_INTEGRATION), an enterprise/air-gapped marker
22
22
  (LOKI_ENTERPRISE=true / LOKI_AIRGAP=true), or a non-interactive session (no
23
23
  TTY: scripts, pipes, cron, detached/container runs). In those contexts an
24
- untouched install sends us nothing. GDPR / FedRAMP deployments stay clean.
24
+ untouched install sends us nothing.
25
25
  - Disclosure is never covert: the first-run welcome screen states (once) that
26
26
  anonymous diagnostics are on and how to turn them off, and this document is the
27
27
  canonical reference.
@@ -17,7 +17,7 @@ was read in full. Findings:
17
17
  | `cmd_share` | `autonomy/loki:25147` | Uploads a session REPORT as a GitHub gist. | Not applicable (report, not assets). |
18
18
  | `cmd_memory` | `autonomy/loki:14475` | Lists/show cross-project learnings in `~/.loki/learnings/*.jsonl`. No tarball export. | Same source dir reused as an asset category. |
19
19
  | `proof_redact.py` | `autonomy/lib/proof_redact.py` | Single redaction chokepoint (R1). `redact_tree(obj)`, `redact_value(s)`, `set_context()`, `RULES_VERSION`. | REUSED as-is. No second redactor written. |
20
- | agent registry | `agents/types.json` | 41 shipped agent types. `cmd_agent` (`autonomy/loki:19509`) reads it from the install dir. | Bundled as the `agents` category. |
20
+ | agent registry | `agents/types.json` | Shipped agent types. `cmd_agent` (`autonomy/loki:19509`) reads it from the install dir. | Bundled as the `agents` category. |
21
21
  | PRD templates | `templates/*.md` | 21 templates; read from `$SKILL_DIR/templates` at runtime (`autonomy/loki:9781`, `8840`). | Bundled as `templates`. |
22
22
  | council config | `<project>/.loki/council/*.json` | `config.json` / `state.json` (`autonomy/loki:16688`, `autonomy/run.sh:3643`). | Bundled as `council`. |
23
23
  | project memory | `<project>/.loki/memory/{episodic,semantic,skills,...}` (`autonomy/run.sh:3183`) | Per-project episodic/semantic/procedural memory. | Bundled as `memory`. |
@@ -53,7 +53,7 @@ Measured on this machine, not asserted.
53
53
  | **1 Systems Thinking** | STRONG | 8 quality gates, RARV-C loop, council, Evidence Receipt, dual-route parity enforced by test |
54
54
  | **2 Speed** | MEASURED, UNOPTIMISED | agent call = **980s = 96%** of iteration; all gates together = 44s |
55
55
  | **3 Reliability** | STRONG, newly so | 73 mutation-proven trust invariants; four gates were shipping broken until v8.38.0 |
56
- | **4 Extensibility** | STRONG | 4 providers, 41 agent types, MCP (36 tools), plugin marketplace |
56
+ | **4 Extensibility** | STRONG | 5 providers, agent type registry, MCP (36 tools), plugin marketplace |
57
57
  | **5 Feedback Loops / Evals** | **BROKEN** | `cost_usd == 0` on **3 of 5** efficiency records; no eval score for our own harness |
58
58
 
59
59
  **Principle 5 is the gap, and it is the one Wang weights highest.** He states the
@@ -12,8 +12,8 @@ triggers and persistence, and source file references (file:line).
12
12
 
13
13
  **Last verified:** 2026-03-03 against v6.6.1 codebase (council-reviewed, merged via PR #49).
14
14
 
15
- **Current codebase:** v7.5.7 (2026-04-29). This document has NOT been re-verified
16
- end-to-end against v7.5.x. Treat shape/semantics as authoritative; treat line
15
+ **Last partial review:** v7.5.7 (2026-04-29). This document has NOT been re-verified
16
+ end-to-end since then. Treat shape/semantics as authoritative; treat line
17
17
  numbers as approximate. See "Known drift" and "Known additions" sections below
18
18
  before relying on any specific `file:line` reference.
19
19
 
@@ -520,25 +520,26 @@ Required provider variables (`loader.sh:65-83`):
520
520
  | PROVIDER_HAS_PARALLEL | `"true"` |
521
521
  | PROVIDER_DEGRADED | `"false"` |
522
522
 
523
- Supported providers: `claude`, `codex`, `gemini`, `cline`, `aider`
523
+ Supported providers: `claude`, `codex`, `cline`, `aider`, `opencode` (Gemini was removed in v7.5.18)
524
524
 
525
525
  ### 4.2 Model Tier Selection
526
526
 
527
527
  Each provider maps the 3 RARV tiers to provider-specific model settings via
528
528
  `provider_get_tier_param()`.
529
529
 
530
- Source: `providers/claude.sh:101`, `providers/codex.sh:106`, `providers/gemini.sh:132`,
531
- `providers/cline.sh:102`, `providers/aider.sh:109`
530
+ Source: `providers/claude.sh`, `providers/codex.sh`, `providers/cline.sh`,
531
+ `providers/aider.sh`, `providers/opencode.sh`
532
532
 
533
533
  ```
534
- RARV Tier Claude (model) Codex (effort) Gemini (thinking) Cline Aider
535
- --------- -------------- -------------- ----------------- ----- -----
536
- planning opus xhigh high single model* single model**
537
- development opus (upgraded) high medium single model* single model**
538
- fast sonnet (upgraded) low low single model* single model**
534
+ RARV Tier Claude (model) Codex (effort) Cline Aider opencode
535
+ --------- -------------- -------------- ----- ----- --------
536
+ planning opus xhigh single model* single model** per-tier model***
537
+ development opus (upgraded) high single model* single model** per-tier model***
538
+ fast sonnet (upgraded) low single model* single model** per-tier model***
539
539
 
540
540
  * Cline: returns LOKI_CLINE_MODEL (default: "default"), single externally-configured model
541
541
  ** Aider: returns LOKI_AIDER_MODEL (default: "claude-3.7-sonnet"), single externally-configured model
542
+ *** opencode: PROVIDER_MODEL_PLANNING / _DEVELOPMENT / _FAST, one model unless overridden per tier
542
543
 
543
544
  Note: Claude default tier mapping upgrades development->opus and fast->sonnet.
544
545
  With LOKI_ALLOW_HAIKU=true: planning=opus, development=sonnet, fast=haiku (original mapping).
@@ -546,8 +547,8 @@ Source: `providers/claude.sh:101`, `providers/codex.sh:106`, `providers/gemini.s
546
547
 
547
548
  ### 4.3 Degradation States
548
549
 
549
- Source: `providers/claude.sh`, `providers/codex.sh`, `providers/gemini.sh`,
550
- `providers/cline.sh`, `providers/aider.sh`
550
+ Source: `providers/claude.sh`, `providers/codex.sh`, `providers/cline.sh`,
551
+ `providers/aider.sh`, `providers/opencode.sh`
551
552
 
552
553
  ```
553
554
  Tier 1: Full Tier 2: Partial Tier 3: Degraded
@@ -560,15 +561,6 @@ Source: `providers/claude.sh`, `providers/codex.sh`, `providers/gemini.sh`,
560
561
  | - -p flag prompt | | - Single model | | - Positional prompt|
561
562
  +------------------+ +-------------------+ +-------------------+
562
563
 
563
- +-------------------+
564
- | Gemini |
565
- | (Degraded) |
566
- | - Sequential only |
567
- | - No MCP |
568
- | - No subagents |
569
- | - Positional prompt|
570
- +-------------------+
571
-
572
564
  +-------------------+
573
565
  | Aider |
574
566
  | (Degraded) |
@@ -586,7 +578,7 @@ Provider capability matrix:
586
578
  | Claude | true | true | true| false |
587
579
  | Cline | true | false | true| false |
588
580
  | Codex | false | false | true| true |
589
- | Gemini | false | false | false| true |
581
+ | opencode | false | false | true| false |
590
582
  | Aider | false | false | false| true |
591
583
 
592
584
  When `PROVIDER_DEGRADED=true`:
@@ -1211,7 +1203,7 @@ Written atomically every 2 seconds by `run.sh` to `.loki/dashboard-state.json`.
1211
1203
  "iteration": 0,
1212
1204
  "complexity": "simple|standard|complex",
1213
1205
  "mode": "autonomous|interactive",
1214
- "provider": "claude|codex|gemini|cline|aider",
1206
+ "provider": "claude|codex|cline|aider|opencode",
1215
1207
  "current_task": "...",
1216
1208
  "budget": {"limit": 0.0, "used": 0.0, "remaining": 0.0},
1217
1209
  "qualityGates": {"gate_name": {"status": "passed|failed"}}
@@ -1514,7 +1506,7 @@ Source: `autonomy/context-tracker.py`
1514
1506
  v
1515
1507
  Find session file
1516
1508
  Claude: ~/.claude/projects/<slug>/*.jsonl
1517
- Codex/Gemini: --tokens-input/--tokens-output args
1509
+ Codex: --tokens-input/--tokens-output args
1518
1510
  |
1519
1511
  v
1520
1512
  Parse new entries from last_offset
@@ -1545,9 +1537,8 @@ Provider pricing (USD per million tokens):
1545
1537
  |----------|-------|--------|------------|----------------|
1546
1538
  | Claude | $3.00 | $15.00 | $0.30 | $3.75 |
1547
1539
  | Codex | $2.00 | $8.00 | -- | -- |
1548
- | Gemini | $1.25 | $5.00 | -- | -- |
1549
1540
 
1550
- Context window sizes: Claude=200K, Codex=200K, Gemini=1M
1541
+ Context window sizes: Claude=200K, Codex=200K
1551
1542
 
1552
1543
  Persistence: `.loki/context/tracking.json` (atomic write via temp+rename)
1553
1544
 
@@ -1797,7 +1788,7 @@ Override: `COMPLEXITY_TIER` environment variable (bypasses auto-detection)
1797
1788
  loki CLI ──exec──> run.sh ──source──> completion-council.sh
1798
1789
  | | |
1799
1790
  | +──source──> providers/loader.sh
1800
- | | +──source──> claude.sh|codex.sh|gemini.sh|cline.sh|aider.sh
1791
+ | | +──source──> claude.sh|codex.sh|cline.sh|aider.sh|opencode.sh
1801
1792
  | |
1802
1793
  | +──python3──> memory/{engine,storage,retrieval,consolidation}.py
1803
1794
  | |
@@ -90,7 +90,7 @@ With an adapter that also feeds architecture.md into the analyzer, score would b
90
90
 
91
91
  ## 3. Agent Overlap Analysis
92
92
 
93
- ### BMAD Agents (8) vs Loki Agent Types (41)
93
+ ### BMAD Agents vs Loki Agent Types
94
94
 
95
95
  | BMAD Agent | Role | Loki Equivalent(s) | Relationship |
96
96
  |---|---|---|---|
@@ -98,7 +98,7 @@ With an adapter that also feeds architecture.md into the analyzer, score would b
98
98
  | John (PM) | PRD creation, validation | `prod-pm`, `orch-planner` | Overlapping -- Loki PM focuses on execution planning |
99
99
  | Winston (Architect) | Architecture design | `eng-infra`, `orch-planner` | Complementary -- BMAD architect is pre-code |
100
100
  | Sally (UX Designer) | UX specification | `prod-design` | Complementary -- BMAD UX is spec, Loki is implementation |
101
- | Amelia (Developer) | Code implementation | `eng-*` (8 agents) | Superseded -- Loki has specialized dev agents |
101
+ | Amelia (Developer) | Code implementation | `eng-*` | Superseded -- Loki has specialized dev agents |
102
102
  | Bob (Scrum Master) | Sprint planning | `orch-coordinator` | Overlapping -- different abstraction level |
103
103
  | Quinn (QA) | E2E test generation | `eng-qa` | Overlapping -- both generate tests |
104
104
  | Barry (Quick Flow) | Solo rapid dev | No equivalent | Unique to BMAD |
@@ -1,10 +1,10 @@
1
1
  # Audit Logging
2
2
 
3
- Compliance-ready audit trails for Loki Mode operations.
3
+ Audit trails for Loki Mode operations.
4
4
 
5
5
  ## Overview
6
6
 
7
- Audit logging captures all significant events for compliance requirements (SOC2, HIPAA), security monitoring, debugging, and usage analytics. Audit logging is **enabled by default** as of v5.37.0.
7
+ Audit logging captures significant events for security monitoring, debugging, and usage analytics. Audit logging is **enabled by default** as of v5.37.0.
8
8
 
9
9
  ## Configuration
10
10
 
@@ -189,17 +189,8 @@ Events by Actor:
189
189
  ### Tail Recent Entries
190
190
 
191
191
  ```bash
192
- # Last 20 entries
192
+ # Last 20 entries of the newest log file (takes no flags)
193
193
  loki enterprise audit tail
194
-
195
- # Follow new entries in real-time
196
- loki enterprise audit tail --follow
197
-
198
- # Filter by event type
199
- loki enterprise audit tail --event session.start
200
-
201
- # Filter by level
202
- loki enterprise audit tail --level error
203
194
  ```
204
195
 
205
196
  ### Search and export logs
@@ -210,19 +201,20 @@ documented both, with filter flags that do not exist). The log is newline
210
201
  -delimited JSON on disk, so query and export it with ordinary tools:
211
202
 
212
203
  ```bash
213
- AUDIT=~/.loki/dashboard/audit/audit.jsonl
204
+ # One file per day: ~/.loki/dashboard/audit/audit-YYYY-MM-DD.jsonl
205
+ AUDIT=~/.loki/dashboard/audit
214
206
 
215
- # Search by event type
216
- jq -c 'select(.event == "auth.fail")' "$AUDIT"
207
+ # Search by action
208
+ cat "$AUDIT"/audit-*.jsonl | jq -c 'select(.action == "delete")'
217
209
 
218
210
  # Search by date range
219
- jq -c 'select(.timestamp >= "2026-02-01" and .timestamp <= "2026-02-15")' "$AUDIT"
211
+ cat "$AUDIT"/audit-*.jsonl | jq -c 'select(.timestamp >= "2026-02-01" and .timestamp <= "2026-02-15")'
220
212
 
221
- # Search by actor
222
- jq -c 'select(.actor == "ci-bot")' "$AUDIT"
213
+ # Search by user
214
+ cat "$AUDIT"/audit-*.jsonl | jq -c 'select(.user_id == "ci-bot")'
223
215
 
224
- # Export a filtered slice
225
- jq -s 'map(select(.event == "task.fail"))' "$AUDIT" > errors.json
216
+ # Export failed actions
217
+ cat "$AUDIT"/audit-*.jsonl | jq -s 'map(select(.success == false))' > errors.json
226
218
  ```
227
219
 
228
220
  The built-in views:
@@ -442,68 +434,6 @@ loki audit scan --preset default
442
434
  this page showed `--action git_commit`, which is not implemented. Filter with
443
435
  `grep` or `jq` over `.loki/audit.jsonl` instead.
444
436
 
445
- ## Compliance
446
-
447
- ### SOC2
448
-
449
- Audit logging supports SOC2 requirements:
450
-
451
- - **CC6.1** - Logical access security (auth events)
452
- - **CC7.2** - System monitoring (session and task events)
453
- - **CC7.3** - Incident response (error events)
454
-
455
- Configuration:
456
-
457
- ```yaml
458
- enterprise:
459
- audit:
460
- enabled: true
461
- retention_days: 365 # 1 year minimum for SOC2
462
- integrity_check: true
463
- syslog_enabled: true
464
- ```
465
-
466
- ### HIPAA
467
-
468
- For healthcare applications:
469
-
470
- - Enable all authentication events
471
- - Set retention to minimum 6 years
472
- - Enable log encryption
473
- - Forward to SIEM for monitoring
474
-
475
- Configuration:
476
-
477
- ```yaml
478
- enterprise:
479
- audit:
480
- enabled: true
481
- retention_days: 2190 # 6 years
482
- encrypt: true
483
- integrity_check: true
484
- syslog_enabled: true
485
- ```
486
-
487
- ### GDPR
488
-
489
- For European deployments:
490
-
491
- - Log access to personal data
492
- - Provide data export capability
493
- - Support right to deletion
494
- - Enable audit trail for data access
495
-
496
- Configuration:
497
-
498
- ```yaml
499
- enterprise:
500
- audit:
501
- enabled: true
502
- retention_days: 365
503
- gdpr_compliance: true
504
- log_data_access: true
505
- ```
506
-
507
437
  ## Troubleshooting
508
438
 
509
439
  ### Logs Not Being Created
@@ -566,9 +496,6 @@ nc -zv syslog.example.com 514
566
496
  echo $LOKI_AUDIT_SYSLOG_HOST
567
497
  echo $LOKI_AUDIT_SYSLOG_PORT
568
498
 
569
- # View syslog errors in audit log
570
- loki enterprise audit tail --event syslog.error
571
-
572
499
  # Test manual syslog send
573
500
  logger -n syslog.example.com -P 514 "Test from Loki Mode"
574
501
  ```
@@ -591,7 +518,6 @@ logger -n syslog.example.com -P 514 "Test from Loki Mode"
591
518
  2. Rotate logs daily
592
519
  3. Compress rotated logs
593
520
  4. Set reasonable retention period
594
- 5. Exclude high-volume low-value events (e.g., api.request)
595
521
 
596
522
  ### Compliance
597
523
 
@@ -30,7 +30,7 @@ loki enterprise token generate my-token
30
30
  loki enterprise token generate ci-bot --scopes "read,write" --expires 30
31
31
 
32
32
  # With role
33
- loki enterprise token generate admin-bot --role admin --expires 90
33
+ loki enterprise token generate admin-bot --scopes '*' --expires 90
34
34
  ```
35
35
 
36
36
  Output:
@@ -109,7 +109,7 @@ Predefined roles map to common access patterns:
109
109
  Generate token with role:
110
110
 
111
111
  ```bash
112
- loki enterprise token generate viewer-bot --role viewer
112
+ loki enterprise token generate viewer-bot --scopes read
113
113
  ```
114
114
 
115
115
  Generate token with custom scopes:
@@ -302,8 +302,8 @@ curl https://accounts.google.com/.well-known/openid-configuration
302
302
  # Check client ID is correct
303
303
  echo $LOKI_OIDC_CLIENT_ID
304
304
 
305
- # View authentication logs
306
- loki enterprise audit tail --event auth.fail
305
+ # View recent audit entries
306
+ loki enterprise audit tail
307
307
 
308
308
  # Check redirect URI is whitelisted in identity provider
309
309
  # Should be: http://localhost:57374/auth/oidc/callback
@@ -121,8 +121,8 @@ carry scopes directly.
121
121
  # Generate token with scopes
122
122
  loki enterprise token generate dev-1 --scopes control,read,write --expires 30
123
123
  loki enterprise token generate viewer-1 --scopes read --expires 90
124
- loki enterprise token generate auditor-1 --role auditor --expires 180
125
- loki enterprise token generate admin-1 --role admin --expires 365
124
+ loki enterprise token generate auditor-1 --scopes read,audit --expires 180
125
+ loki enterprise token generate admin-1 --scopes '*' --expires 365
126
126
  ```
127
127
 
128
128
  ### Configuration File
@@ -201,37 +201,6 @@ Scopes are additive:
201
201
  | `DELETE /api/enterprise/tokens/:id` | `*` | Admin only |
202
202
  | `POST /api/config` | `*` | Admin only |
203
203
 
204
- ## Custom Roles
205
-
206
- Define custom roles for specific use cases:
207
-
208
- ```yaml
209
- # .loki/config.yaml
210
- enterprise:
211
- rbac:
212
- custom_roles:
213
- # Read-only with metrics access
214
- metrics_viewer:
215
- scopes: ["read"]
216
- description: "View metrics and dashboard only"
217
-
218
- # Task management only
219
- task_manager:
220
- scopes: ["read", "write"]
221
- description: "Create and update tasks, no session control"
222
-
223
- # Security analyst
224
- security_analyst:
225
- scopes: ["read", "audit"]
226
- description: "View audit logs and security events"
227
- ```
228
-
229
- Generate token with custom role:
230
-
231
- ```bash
232
- loki enterprise token generate metrics-bot --role metrics_viewer
233
- ```
234
-
235
204
  ## Permission Checks
236
205
 
237
206
  ### CLI
@@ -327,19 +296,19 @@ enterprise:
327
296
  ```bash
328
297
  # CI/CD pipeline token
329
298
  loki enterprise token generate github-actions \
330
- --role operator \
299
+ --scopes control,read,write \
331
300
  --scopes "control,read,write" \
332
301
  --expires 365
333
302
 
334
303
  # Monitoring system token
335
304
  loki enterprise token generate datadog \
336
- --role viewer \
305
+ --scopes read \
337
306
  --scopes "read" \
338
307
  --expires 9999
339
308
 
340
309
  # Security scanner token
341
310
  loki enterprise token generate security-scanner \
342
- --role auditor \
311
+ --scopes read,audit \
343
312
  --scopes "read,audit" \
344
313
  --expires 180
345
314
  ```
@@ -350,9 +319,8 @@ loki enterprise token generate security-scanner \
350
319
 
351
320
  1. Start with minimal permissions (viewer role)
352
321
  2. Grant additional scopes only as needed
353
- 3. Use custom roles for specific use cases
354
- 4. Review and audit role assignments quarterly
355
- 5. Remove unused tokens immediately
322
+ 3. Review and audit role assignments quarterly
323
+ 4. Remove unused tokens immediately
356
324
 
357
325
  ### Role Assignment
358
326
 
@@ -382,12 +350,12 @@ loki enterprise token list
382
350
  # Read the route's required scope from dashboard/server.py, then compare
383
351
  # against the scopes on your token from the listing above
384
352
 
385
- # Check audit log for denial reason
386
- loki enterprise audit tail --event permission.denied
353
+ # Check recent audit entries for the denial
354
+ loki enterprise audit tail
387
355
 
388
356
  # Generate new token with correct role
389
357
  loki enterprise token revoke <old-token>
390
- loki enterprise token generate <name> --role operator
358
+ loki enterprise token generate <name> --scopes control,read,write
391
359
  ```
392
360
 
393
361
  ### OIDC Role Mapping Not Working
@@ -397,13 +365,13 @@ loki enterprise token generate <name> --role operator
397
365
  # Check identity provider configuration
398
366
 
399
367
  # Test with explicit token role first
400
- loki enterprise token generate test-admin --role admin
368
+ loki enterprise token generate test-admin --scopes '*'
401
369
 
402
- # Check RBAC configuration
403
- cat .loki/config.yaml | grep -A 10 rbac
370
+ # Check which claim carries the roles
371
+ echo "$LOKI_OIDC_ROLES_CLAIM"
404
372
 
405
- # View OIDC claims in audit log
406
- loki enterprise audit tail --event auth.oidc.success
373
+ # View recent audit entries
374
+ loki enterprise audit tail
407
375
  ```
408
376
 
409
377
  ### Scope Confusion