loki-mode 7.17.1 → 7.18.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.
- package/SKILL.md +2 -2
- package/VERSION +1 -1
- package/dashboard/__init__.py +1 -1
- package/dashboard/server.py +8 -1
- package/dashboard/static/cost.html +41 -5
- package/dashboard/static/index.html +97 -54
- package/dashboard/static/proofs.html +41 -5
- package/dashboard/static/trust.html +44 -5
- package/docs/INSTALLATION.md +1 -1
- package/loki-ts/dist/loki.js +2 -2
- package/mcp/__init__.py +1 -1
- package/package.json +1 -1
package/SKILL.md
CHANGED
|
@@ -3,7 +3,7 @@ name: loki-mode
|
|
|
3
3
|
description: Autonomous spec-to-product system. Triggers on "Loki Mode". Takes a spec (PRD, GitHub issue, OpenAPI doc, etc.) to deployed product via the RARV-C closure loop, with minimal human intervention. Provider-agnostic. Requires --dangerously-skip-permissions flag.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# Loki Mode v7.
|
|
6
|
+
# Loki Mode v7.18.0
|
|
7
7
|
|
|
8
8
|
**You are an autonomous agent. You make decisions. You do not ask questions. You do not stop.**
|
|
9
9
|
|
|
@@ -383,4 +383,4 @@ See `CHANGELOG.md` entries [7.5.7], [7.5.8], [7.5.13] for the per-fix list and r
|
|
|
383
383
|
|
|
384
384
|
---
|
|
385
385
|
|
|
386
|
-
**v7.
|
|
386
|
+
**v7.18.0 | [Autonomi](https://www.autonomi.dev/) flagship product | ~260 lines core**
|
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
7.
|
|
1
|
+
7.18.0
|
package/dashboard/__init__.py
CHANGED
package/dashboard/server.py
CHANGED
|
@@ -7772,7 +7772,14 @@ async def get_wiki_section(section: str):
|
|
|
7772
7772
|
raise HTTPException(status_code=400, detail=f"unknown section: {section}")
|
|
7773
7773
|
wiki_json = _wiki_dir() / "wiki.json"
|
|
7774
7774
|
if not wiki_json.is_file():
|
|
7775
|
-
|
|
7775
|
+
# Soft empty state for dashboard consumers on a fresh repo. A hard 404
|
|
7776
|
+
# here floods the browser console (the panel and the SPA both poll this)
|
|
7777
|
+
# even though "no wiki yet" is an expected, benign state. Mirrors the
|
|
7778
|
+
# generated:false contract of GET /api/wiki.
|
|
7779
|
+
return JSONResponse(content={
|
|
7780
|
+
"generated": False, "id": section, "title": "",
|
|
7781
|
+
"body": "", "citations": [],
|
|
7782
|
+
})
|
|
7776
7783
|
data = _safe_json_read(wiki_json, default=None)
|
|
7777
7784
|
if not isinstance(data, dict):
|
|
7778
7785
|
raise HTTPException(status_code=500, detail="wiki.json unreadable")
|
|
@@ -14,14 +14,50 @@
|
|
|
14
14
|
<head>
|
|
15
15
|
<meta charset="utf-8">
|
|
16
16
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
17
|
+
<script>
|
|
18
|
+
// Match the embedding SPA's theme via the ?theme=dark|light param it passes
|
|
19
|
+
// when loading this page in its iframe. Set before paint to avoid a flash;
|
|
20
|
+
// with no/invalid param, OS prefers-color-scheme applies.
|
|
21
|
+
(function () {
|
|
22
|
+
try {
|
|
23
|
+
var t = new URLSearchParams(location.search).get('theme');
|
|
24
|
+
if (t === 'dark' || t === 'light') {
|
|
25
|
+
document.documentElement.setAttribute('data-loki-theme', t);
|
|
26
|
+
}
|
|
27
|
+
} catch (e) { /* no-op: fall back to OS preference */ }
|
|
28
|
+
})();
|
|
29
|
+
</script>
|
|
17
30
|
<title>Loki Mode - Cost and Observability</title>
|
|
31
|
+
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
32
|
+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
33
|
+
<link href="https://fonts.googleapis.com/css2?family=DM+Serif+Display&family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet">
|
|
18
34
|
<style>
|
|
35
|
+
/* Match the dashboard SPA design language (cream/light + serif headings),
|
|
36
|
+
so this page reads as one product when embedded in the SPA iframe. The
|
|
37
|
+
local --bg/--panel/--text/--mono/--sans names are kept (the rest of the
|
|
38
|
+
CSS references them) and remapped to the SPA --loki-* palette, with a
|
|
39
|
+
prefers-color-scheme dark variant mirroring the SPA. */
|
|
19
40
|
:root {
|
|
20
|
-
--bg: #
|
|
21
|
-
--text: #
|
|
22
|
-
--green: #
|
|
23
|
-
--mono: ui-monospace, "SF Mono", "Menlo",
|
|
41
|
+
--bg: #FAFAF7; --panel: rgba(255,255,255,0.72); --panel-2: #E8E5DE; --border: rgba(0,0,0,0.08);
|
|
42
|
+
--text: #1A1614; --muted: #4A4640; --faint: #8A857C; --accent: #553DE9;
|
|
43
|
+
--green: #1AAF95; --red: #C04848; --amber: #C4922E;
|
|
44
|
+
--mono: 'JetBrains Mono', ui-monospace, "SF Mono", "Menlo", monospace;
|
|
24
45
|
--sans: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
|
|
46
|
+
--serif: 'DM Serif Display', Georgia, serif;
|
|
47
|
+
}
|
|
48
|
+
/* Dark palette. data-loki-theme (set from the SPA's ?theme= param) wins over
|
|
49
|
+
the OS preference so the iframe follows the SPA's manual Dark toggle. */
|
|
50
|
+
html[data-loki-theme="dark"] {
|
|
51
|
+
--bg: #0F0B1A; --panel: rgba(30,21,51,0.72); --panel-2: #1E1533; --border: rgba(255,255,255,0.08);
|
|
52
|
+
--text: #F0ECF8; --muted: #B8B0C8; --faint: #7B6FA0; --accent: #7B6BF0;
|
|
53
|
+
--green: #2ED8B6; --red: #E07070; --amber: #E8B84A;
|
|
54
|
+
}
|
|
55
|
+
@media (prefers-color-scheme: dark) {
|
|
56
|
+
html:not([data-loki-theme]) {
|
|
57
|
+
--bg: #0F0B1A; --panel: rgba(30,21,51,0.72); --panel-2: #1E1533; --border: rgba(255,255,255,0.08);
|
|
58
|
+
--text: #F0ECF8; --muted: #B8B0C8; --faint: #7B6FA0; --accent: #7B6BF0;
|
|
59
|
+
--green: #2ED8B6; --red: #E07070; --amber: #E8B84A;
|
|
60
|
+
}
|
|
25
61
|
}
|
|
26
62
|
* { box-sizing: border-box; }
|
|
27
63
|
body { margin: 0; background: var(--bg); color: var(--text); font-family: var(--sans); line-height: 1.5; }
|
|
@@ -29,7 +65,7 @@
|
|
|
29
65
|
a:hover { text-decoration: underline; }
|
|
30
66
|
.wrap { max-width: 960px; margin: 0 auto; padding: 40px 20px 80px; }
|
|
31
67
|
.head { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 8px; }
|
|
32
|
-
h1 { font-size:
|
|
68
|
+
h1 { font-family: var(--serif); font-size: 28px; font-weight: 400; letter-spacing: -0.3px; margin: 0; }
|
|
33
69
|
h2 { font-size: 15px; font-weight: 600; color: var(--muted); margin: 30px 0 12px; text-transform: uppercase; letter-spacing: 0.5px; }
|
|
34
70
|
.head a { font-size: 13px; }
|
|
35
71
|
.sub { color: var(--muted); font-size: 14px; margin: 0 0 26px; }
|