loki-mode 6.37.8 → 6.38.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/README.md +1 -1
- package/SKILL.md +2 -2
- package/VERSION +1 -1
- package/dashboard/__init__.py +1 -1
- package/dashboard/models.py +3 -3
- package/dashboard/server.py +6 -6
- package/docs/INSTALLATION.md +1 -1
- package/mcp/__init__.py +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
|
|
15
15
|
### Traction
|
|
16
16
|
|
|
17
|
-
**
|
|
17
|
+
**744 stars** | **151 forks** | **12,700+ Docker pulls** | **477 npm downloads (last 7d)** | **641 commits** | **285+ releases published** | **30+ releases in 72 hours (March 17-19, 2026)**
|
|
18
18
|
|
|
19
19
|
---
|
|
20
20
|
|
package/SKILL.md
CHANGED
|
@@ -3,7 +3,7 @@ name: loki-mode
|
|
|
3
3
|
description: Multi-agent autonomous startup system. Triggers on "Loki Mode". Takes PRD to deployed product with minimal human intervention. Requires --dangerously-skip-permissions flag.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# Loki Mode v6.
|
|
6
|
+
# Loki Mode v6.38.0
|
|
7
7
|
|
|
8
8
|
**You are an autonomous agent. You make decisions. You do not ask questions. You do not stop.**
|
|
9
9
|
|
|
@@ -267,4 +267,4 @@ The following features are documented in skill modules but not yet fully automat
|
|
|
267
267
|
| Quality gates 3-reviewer system | Implemented (v5.35.0) | 5 specialist reviewers in `skills/quality-gates.md`; execution in run.sh |
|
|
268
268
|
| Benchmarks (HumanEval, SWE-bench) | Infrastructure only | Runner scripts and datasets exist in `benchmarks/`; no published results |
|
|
269
269
|
|
|
270
|
-
**v6.
|
|
270
|
+
**v6.38.0 | [Autonomi](https://www.autonomi.dev/) flagship product | ~260 lines core**
|
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
6.
|
|
1
|
+
6.38.0
|
package/dashboard/__init__.py
CHANGED
package/dashboard/models.py
CHANGED
|
@@ -94,8 +94,8 @@ class Project(Base):
|
|
|
94
94
|
description: Mapped[Optional[str]] = mapped_column(Text, nullable=True)
|
|
95
95
|
prd_path: Mapped[Optional[str]] = mapped_column(String(512), nullable=True)
|
|
96
96
|
status: Mapped[str] = mapped_column(String(50), default="active")
|
|
97
|
-
tenant_id: Mapped[
|
|
98
|
-
Integer, ForeignKey("tenants.id", ondelete="CASCADE"), nullable=
|
|
97
|
+
tenant_id: Mapped[int] = mapped_column(
|
|
98
|
+
Integer, ForeignKey("tenants.id", ondelete="CASCADE"), nullable=False
|
|
99
99
|
)
|
|
100
100
|
created_at: Mapped[datetime] = mapped_column(
|
|
101
101
|
DateTime, server_default=func.now(), nullable=False
|
|
@@ -105,7 +105,7 @@ class Project(Base):
|
|
|
105
105
|
)
|
|
106
106
|
|
|
107
107
|
# Relationships
|
|
108
|
-
tenant: Mapped[
|
|
108
|
+
tenant: Mapped["Tenant"] = relationship(
|
|
109
109
|
"Tenant", back_populates="projects"
|
|
110
110
|
)
|
|
111
111
|
tasks: Mapped[list["Task"]] = relationship(
|
package/dashboard/server.py
CHANGED
|
@@ -2854,7 +2854,7 @@ def _calculate_model_cost(model: str, input_tokens: int, output_tokens: int) ->
|
|
|
2854
2854
|
pricing = pricing_table.get(model.lower(), pricing_table.get("sonnet", {}))
|
|
2855
2855
|
input_cost = (input_tokens / 1_000_000) * pricing.get("input", 3.00)
|
|
2856
2856
|
output_cost = (output_tokens / 1_000_000) * pricing.get("output", 15.00)
|
|
2857
|
-
return round(input_cost + output_cost,
|
|
2857
|
+
return round(input_cost + output_cost, 6)
|
|
2858
2858
|
|
|
2859
2859
|
|
|
2860
2860
|
@app.get("/api/cost")
|
|
@@ -2947,20 +2947,20 @@ async def get_cost():
|
|
|
2947
2947
|
return {
|
|
2948
2948
|
"total_input_tokens": total_input,
|
|
2949
2949
|
"total_output_tokens": total_output,
|
|
2950
|
-
"estimated_cost_usd": round(estimated_cost,
|
|
2950
|
+
"estimated_cost_usd": round(estimated_cost, 6),
|
|
2951
2951
|
"by_phase": {k: {
|
|
2952
2952
|
"input_tokens": v["input_tokens"],
|
|
2953
2953
|
"output_tokens": v["output_tokens"],
|
|
2954
|
-
"cost_usd": round(v["cost_usd"],
|
|
2954
|
+
"cost_usd": round(v["cost_usd"], 6),
|
|
2955
2955
|
} for k, v in by_phase.items()},
|
|
2956
2956
|
"by_model": {k: {
|
|
2957
2957
|
"input_tokens": v["input_tokens"],
|
|
2958
2958
|
"output_tokens": v["output_tokens"],
|
|
2959
|
-
"cost_usd": round(v["cost_usd"],
|
|
2959
|
+
"cost_usd": round(v["cost_usd"], 6),
|
|
2960
2960
|
} for k, v in by_model.items()},
|
|
2961
2961
|
"budget_limit": budget_limit,
|
|
2962
|
-
"budget_used": round(budget_used,
|
|
2963
|
-
"budget_remaining": round(budget_remaining,
|
|
2962
|
+
"budget_used": round(budget_used, 6) if budget_limit is not None else None,
|
|
2963
|
+
"budget_remaining": round(budget_remaining, 6) if budget_remaining is not None else None,
|
|
2964
2964
|
}
|
|
2965
2965
|
|
|
2966
2966
|
|
package/docs/INSTALLATION.md
CHANGED
package/mcp/__init__.py
CHANGED