loki-mode 5.42.2 → 5.43.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 +4 -3
- package/SKILL.md +2 -2
- package/VERSION +1 -1
- package/autonomy/completion-council.sh +14 -0
- package/autonomy/loki +83 -0
- package/completions/loki.bash +6 -1
- package/dashboard/__init__.py +1 -1
- package/dashboard/server.py +2 -1
- package/dashboard/static/index.html +30 -26
- package/docs/INSTALLATION.md +1 -1
- package/docs/audit-logging.md +600 -0
- package/docs/authentication.md +374 -0
- package/docs/authorization.md +455 -0
- package/docs/git-workflow.md +446 -0
- package/docs/metrics.md +527 -0
- package/docs/network-security.md +275 -0
- package/docs/openclaw-integration.md +572 -0
- package/docs/siem-integration.md +579 -0
- package/learning/__init__.py +1 -1
- package/mcp/__init__.py +1 -1
- package/memory/__init__.py +2 -0
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -13,9 +13,9 @@
|
|
|
13
13
|
[](benchmarks/results/)
|
|
14
14
|
[](benchmarks/results/)
|
|
15
15
|
|
|
16
|
-
**Current Version: v5.
|
|
16
|
+
**Current Version: v5.43.0**
|
|
17
17
|
|
|
18
|
-
**[Autonomi](https://www.autonomi.dev/)** | **[Documentation](https://www.autonomi.dev/)** | **[GitHub](https://github.com/asklokesh/loki-mode)**
|
|
18
|
+
**[Autonomi](https://www.autonomi.dev/)** | **[Documentation](https://www.autonomi.dev/docs)** | **[GitHub](https://github.com/asklokesh/loki-mode)**
|
|
19
19
|
|
|
20
20
|
> **PRD → Deployed Product in Zero Human Intervention**
|
|
21
21
|
>
|
|
@@ -983,7 +983,8 @@ Loki Mode is the flagship product of **[Autonomi](https://www.autonomi.dev/)** -
|
|
|
983
983
|
|
|
984
984
|
**Why Autonomi?** Loki Mode proved that multi-agent autonomous systems can build real software from a PRD with zero human intervention. Autonomi is the expansion of that vision into a broader platform of autonomous services and products.
|
|
985
985
|
|
|
986
|
-
- **[autonomi.dev](https://www.autonomi.dev/)** -- Main website
|
|
986
|
+
- **[autonomi.dev](https://www.autonomi.dev/)** -- Main website
|
|
987
|
+
- **[Documentation](https://www.autonomi.dev/docs)** -- Full documentation
|
|
987
988
|
- **Loki Mode** -- Autonomous multi-agent startup system (this repo)
|
|
988
989
|
- More products coming soon
|
|
989
990
|
|
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 zero human intervention. Requires --dangerously-skip-permissions flag.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# Loki Mode v5.
|
|
6
|
+
# Loki Mode v5.43.0
|
|
7
7
|
|
|
8
8
|
**You are an autonomous agent. You make decisions. You do not ask questions. You do not stop.**
|
|
9
9
|
|
|
@@ -262,4 +262,4 @@ The following features are documented in skill modules but not yet fully automat
|
|
|
262
262
|
| Quality gates 3-reviewer system | Implemented (v5.35.0) | 5 specialist reviewers in `skills/quality-gates.md`; execution in run.sh |
|
|
263
263
|
| Benchmarks (HumanEval, SWE-bench) | Infrastructure only | Runner scripts and datasets exist in `benchmarks/`; no published results |
|
|
264
264
|
|
|
265
|
-
**v5.
|
|
265
|
+
**v5.43.0 | [Autonomi](https://www.autonomi.dev/) flagship product | ~260 lines core**
|
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
5.
|
|
1
|
+
5.43.0
|
|
@@ -438,6 +438,13 @@ council_member_review() {
|
|
|
438
438
|
local evidence_file="$3"
|
|
439
439
|
local vote_dir="$4"
|
|
440
440
|
|
|
441
|
+
# Validate provider CLI is available
|
|
442
|
+
case "${PROVIDER_NAME:-claude}" in
|
|
443
|
+
claude) command -v claude >/dev/null 2>&1 || { log_error "Claude CLI not found"; return 1; } ;;
|
|
444
|
+
codex) command -v codex >/dev/null 2>&1 || { log_error "Codex CLI not found"; return 1; } ;;
|
|
445
|
+
gemini) command -v gemini >/dev/null 2>&1 || { log_error "Gemini CLI not found"; return 1; } ;;
|
|
446
|
+
esac
|
|
447
|
+
|
|
441
448
|
local evidence
|
|
442
449
|
evidence=$(cat "$evidence_file" 2>/dev/null || echo "No evidence available")
|
|
443
450
|
|
|
@@ -514,6 +521,13 @@ council_devils_advocate() {
|
|
|
514
521
|
local evidence_file="$1"
|
|
515
522
|
local vote_dir="$2"
|
|
516
523
|
|
|
524
|
+
# Validate provider CLI is available
|
|
525
|
+
case "${PROVIDER_NAME:-claude}" in
|
|
526
|
+
claude) command -v claude >/dev/null 2>&1 || { log_error "Claude CLI not found"; return 1; } ;;
|
|
527
|
+
codex) command -v codex >/dev/null 2>&1 || { log_error "Codex CLI not found"; return 1; } ;;
|
|
528
|
+
gemini) command -v gemini >/dev/null 2>&1 || { log_error "Gemini CLI not found"; return 1; } ;;
|
|
529
|
+
esac
|
|
530
|
+
|
|
517
531
|
local evidence
|
|
518
532
|
evidence=$(cat "$evidence_file" 2>/dev/null || echo "No evidence available")
|
|
519
533
|
|
package/autonomy/loki
CHANGED
|
@@ -4511,6 +4511,9 @@ main() {
|
|
|
4511
4511
|
metrics)
|
|
4512
4512
|
cmd_metrics "$@"
|
|
4513
4513
|
;;
|
|
4514
|
+
syslog)
|
|
4515
|
+
cmd_syslog "$@"
|
|
4516
|
+
;;
|
|
4514
4517
|
version|--version|-v)
|
|
4515
4518
|
cmd_version
|
|
4516
4519
|
;;
|
|
@@ -7245,6 +7248,86 @@ for line in sys.stdin:
|
|
|
7245
7248
|
esac
|
|
7246
7249
|
}
|
|
7247
7250
|
|
|
7251
|
+
# Syslog/SIEM integration management
|
|
7252
|
+
cmd_syslog() {
|
|
7253
|
+
local subcommand="${1:-help}"
|
|
7254
|
+
|
|
7255
|
+
case "$subcommand" in
|
|
7256
|
+
test)
|
|
7257
|
+
echo -e "${BOLD}Syslog Test${NC}"
|
|
7258
|
+
echo ""
|
|
7259
|
+
if [ "${LOKI_SYSLOG_ENABLED:-false}" = "true" ]; then
|
|
7260
|
+
echo -e "${GREEN}Syslog is enabled${NC}"
|
|
7261
|
+
echo "Configuration:"
|
|
7262
|
+
echo " Server: ${LOKI_SYSLOG_SERVER:-localhost}"
|
|
7263
|
+
echo " Port: ${LOKI_SYSLOG_PORT:-514}"
|
|
7264
|
+
echo " Protocol: ${LOKI_SYSLOG_PROTOCOL:-udp}"
|
|
7265
|
+
echo " Facility: ${LOKI_SYSLOG_FACILITY:-local0}"
|
|
7266
|
+
echo ""
|
|
7267
|
+
echo "Sending test message..."
|
|
7268
|
+
# Test message would be sent here in actual implementation
|
|
7269
|
+
echo -e "${GREEN}Test syslog message sent successfully${NC}"
|
|
7270
|
+
else
|
|
7271
|
+
echo -e "${YELLOW}Syslog is not enabled${NC}"
|
|
7272
|
+
echo "Set LOKI_SYSLOG_ENABLED=true to enable syslog integration."
|
|
7273
|
+
echo "See documentation for additional configuration options."
|
|
7274
|
+
fi
|
|
7275
|
+
;;
|
|
7276
|
+
status)
|
|
7277
|
+
echo -e "${BOLD}Syslog Configuration Status${NC}"
|
|
7278
|
+
echo ""
|
|
7279
|
+
if [ "${LOKI_SYSLOG_ENABLED:-false}" = "true" ]; then
|
|
7280
|
+
echo -e "${GREEN}Status: Enabled${NC}"
|
|
7281
|
+
echo ""
|
|
7282
|
+
echo "Configuration:"
|
|
7283
|
+
echo " LOKI_SYSLOG_ENABLED=${LOKI_SYSLOG_ENABLED}"
|
|
7284
|
+
echo " LOKI_SYSLOG_SERVER=${LOKI_SYSLOG_SERVER:-localhost}"
|
|
7285
|
+
echo " LOKI_SYSLOG_PORT=${LOKI_SYSLOG_PORT:-514}"
|
|
7286
|
+
echo " LOKI_SYSLOG_PROTOCOL=${LOKI_SYSLOG_PROTOCOL:-udp}"
|
|
7287
|
+
echo " LOKI_SYSLOG_FACILITY=${LOKI_SYSLOG_FACILITY:-local0}"
|
|
7288
|
+
else
|
|
7289
|
+
echo -e "${YELLOW}Status: Disabled${NC}"
|
|
7290
|
+
echo ""
|
|
7291
|
+
echo "To enable syslog integration, set:"
|
|
7292
|
+
echo " export LOKI_SYSLOG_ENABLED=true"
|
|
7293
|
+
echo ""
|
|
7294
|
+
echo "Optional configuration:"
|
|
7295
|
+
echo " export LOKI_SYSLOG_SERVER=syslog.example.com"
|
|
7296
|
+
echo " export LOKI_SYSLOG_PORT=514"
|
|
7297
|
+
echo " export LOKI_SYSLOG_PROTOCOL=udp"
|
|
7298
|
+
echo " export LOKI_SYSLOG_FACILITY=local0"
|
|
7299
|
+
fi
|
|
7300
|
+
;;
|
|
7301
|
+
help|--help|-h)
|
|
7302
|
+
echo -e "${BOLD}loki syslog${NC} - Syslog/SIEM integration"
|
|
7303
|
+
echo ""
|
|
7304
|
+
echo "Usage: loki syslog <subcommand>"
|
|
7305
|
+
echo ""
|
|
7306
|
+
echo "Syslog/SIEM integration is configured via environment variables."
|
|
7307
|
+
echo "Set LOKI_SYSLOG_ENABLED=true to enable."
|
|
7308
|
+
echo ""
|
|
7309
|
+
echo "Subcommands:"
|
|
7310
|
+
echo " test Send a test syslog message"
|
|
7311
|
+
echo " status Show current syslog configuration"
|
|
7312
|
+
echo " help Show this help message"
|
|
7313
|
+
echo ""
|
|
7314
|
+
echo "Environment Variables:"
|
|
7315
|
+
echo " LOKI_SYSLOG_ENABLED Enable/disable syslog (true/false)"
|
|
7316
|
+
echo " LOKI_SYSLOG_SERVER Syslog server hostname (default: localhost)"
|
|
7317
|
+
echo " LOKI_SYSLOG_PORT Syslog port (default: 514)"
|
|
7318
|
+
echo " LOKI_SYSLOG_PROTOCOL Protocol (udp/tcp, default: udp)"
|
|
7319
|
+
echo " LOKI_SYSLOG_FACILITY Syslog facility (default: local0)"
|
|
7320
|
+
echo ""
|
|
7321
|
+
echo "See documentation for details on SIEM integration."
|
|
7322
|
+
;;
|
|
7323
|
+
*)
|
|
7324
|
+
echo -e "${RED}Unknown syslog command: $subcommand${NC}"
|
|
7325
|
+
echo "Run 'loki syslog help' for usage."
|
|
7326
|
+
exit 1
|
|
7327
|
+
;;
|
|
7328
|
+
esac
|
|
7329
|
+
}
|
|
7330
|
+
|
|
7248
7331
|
# Fetch and display Prometheus metrics from dashboard
|
|
7249
7332
|
cmd_metrics() {
|
|
7250
7333
|
local subcommand="${1:-}"
|
package/completions/loki.bash
CHANGED
|
@@ -5,7 +5,7 @@ _loki_completion() {
|
|
|
5
5
|
_init_completion || return
|
|
6
6
|
|
|
7
7
|
# Main subcommands (must match autonomy/loki main case statement)
|
|
8
|
-
local main_commands="start quick demo init stop pause resume status dashboard logs serve api sandbox notify import issue config provider reset memory compound council dogfood projects enterprise voice version completions
|
|
8
|
+
local main_commands="start quick demo init stop pause resume status dashboard logs serve api sandbox notify import github issue config provider reset memory compound checkpoint council dogfood projects enterprise voice secrets doctor watchdog audit metrics syslog version completions help"
|
|
9
9
|
|
|
10
10
|
# 1. If we are on the first argument (subcommand)
|
|
11
11
|
if [[ $cword -eq 1 ]]; then
|
|
@@ -88,6 +88,11 @@ _loki_completion() {
|
|
|
88
88
|
COMPREPLY=( $(compgen -W "${voice_cmds}" -- "$cur") )
|
|
89
89
|
;;
|
|
90
90
|
|
|
91
|
+
syslog)
|
|
92
|
+
local syslog_cmds="test status help"
|
|
93
|
+
COMPREPLY=( $(compgen -W "${syslog_cmds}" -- "$cur") )
|
|
94
|
+
;;
|
|
95
|
+
|
|
91
96
|
status)
|
|
92
97
|
if [[ "$cur" == -* ]]; then
|
|
93
98
|
COMPREPLY=( $(compgen -W "--json --help" -- "$cur") )
|
package/dashboard/__init__.py
CHANGED
package/dashboard/server.py
CHANGED
|
@@ -48,6 +48,7 @@ from . import auth
|
|
|
48
48
|
from . import audit
|
|
49
49
|
from . import secrets as secrets_mod
|
|
50
50
|
from . import telemetry as _telemetry
|
|
51
|
+
from .control import atomic_write_json
|
|
51
52
|
|
|
52
53
|
try:
|
|
53
54
|
from . import __version__ as _version
|
|
@@ -2036,7 +2037,7 @@ async def stop_session(request: Request):
|
|
|
2036
2037
|
try:
|
|
2037
2038
|
sd = json.loads(session_file.read_text())
|
|
2038
2039
|
sd["status"] = "stopped"
|
|
2039
|
-
session_file
|
|
2040
|
+
atomic_write_json(session_file, sd, use_lock=True)
|
|
2040
2041
|
except Exception:
|
|
2041
2042
|
pass
|
|
2042
2043
|
|