@smilintux/skcapstone 0.4.6 → 0.5.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/.github/workflows/publish.yml +8 -1
- package/docs/CUSTOM_AGENT.md +184 -0
- package/docs/GETTING_STARTED.md +3 -0
- package/launchd/com.skcapstone.daemon.plist +52 -0
- package/launchd/com.skcapstone.memory-compress.plist +45 -0
- package/launchd/com.skcapstone.skcomm-heartbeat.plist +33 -0
- package/launchd/com.skcapstone.skcomm-queue-drain.plist +34 -0
- package/launchd/install-launchd.sh +156 -0
- package/package.json +1 -1
- package/pyproject.toml +1 -1
- package/scripts/archive-sessions.sh +88 -0
- package/scripts/install.sh +39 -8
- package/scripts/notion-api.py +259 -0
- package/scripts/nvidia-proxy.mjs +878 -0
- package/scripts/proxy-monitor.sh +89 -0
- package/scripts/refresh-anthropic-token.sh +94 -0
- package/scripts/skgateway.mjs +856 -0
- package/scripts/telegram-catchup-all.sh +136 -0
- package/scripts/watch-anthropic-token.sh +117 -0
- package/src/skcapstone/__init__.py +1 -1
- package/src/skcapstone/_cli_monolith.py +4 -4
- package/src/skcapstone/api.py +36 -35
- package/src/skcapstone/auction.py +8 -8
- package/src/skcapstone/blueprint_registry.py +2 -2
- package/src/skcapstone/blueprints/builtins/itil-operations.yaml +40 -0
- package/src/skcapstone/brain_first.py +238 -0
- package/src/skcapstone/chat.py +4 -4
- package/src/skcapstone/cli/__init__.py +2 -0
- package/src/skcapstone/cli/agents_spawner.py +5 -2
- package/src/skcapstone/cli/chat.py +5 -2
- package/src/skcapstone/cli/consciousness.py +5 -2
- package/src/skcapstone/cli/daemon.py +116 -41
- package/src/skcapstone/cli/itil.py +434 -0
- package/src/skcapstone/cli/memory.py +4 -4
- package/src/skcapstone/cli/skills_cmd.py +2 -2
- package/src/skcapstone/cli/soul.py +5 -2
- package/src/skcapstone/cli/status.py +11 -8
- package/src/skcapstone/cli/upgrade_cmd.py +7 -4
- package/src/skcapstone/cli/watch_cmd.py +9 -6
- package/src/skcapstone/config_validator.py +7 -4
- package/src/skcapstone/consciousness_config.py +27 -0
- package/src/skcapstone/consciousness_loop.py +20 -18
- package/src/skcapstone/coordination.py +6 -2
- package/src/skcapstone/daemon.py +51 -42
- package/src/skcapstone/dashboard.py +8 -8
- package/src/skcapstone/defaults/lumina/config/claude-hooks.md +42 -0
- package/src/skcapstone/doctor.py +5 -2
- package/src/skcapstone/dreaming.py +1440 -0
- package/src/skcapstone/emotion_tracker.py +2 -2
- package/src/skcapstone/export.py +2 -2
- package/src/skcapstone/fuse_mount.py +21 -13
- package/src/skcapstone/heartbeat.py +33 -29
- package/src/skcapstone/itil.py +1104 -0
- package/src/skcapstone/launchd.py +426 -0
- package/src/skcapstone/mcp_server.py +306 -4
- package/src/skcapstone/mcp_tools/__init__.py +4 -0
- package/src/skcapstone/mcp_tools/_helpers.py +2 -2
- package/src/skcapstone/mcp_tools/ansible_tools.py +7 -4
- package/src/skcapstone/mcp_tools/brain_first_tools.py +90 -0
- package/src/skcapstone/mcp_tools/capauth_tools.py +7 -4
- package/src/skcapstone/mcp_tools/coord_tools.py +8 -4
- package/src/skcapstone/mcp_tools/did_tools.py +9 -6
- package/src/skcapstone/mcp_tools/gtd_tools.py +1 -1
- package/src/skcapstone/mcp_tools/itil_tools.py +657 -0
- package/src/skcapstone/mcp_tools/memory_tools.py +6 -2
- package/src/skcapstone/mcp_tools/soul_tools.py +6 -2
- package/src/skcapstone/mdns_discovery.py +2 -2
- package/src/skcapstone/metrics.py +8 -8
- package/src/skcapstone/migrate_memories.py +2 -2
- package/src/skcapstone/models.py +14 -0
- package/src/skcapstone/onboard.py +137 -14
- package/src/skcapstone/peer_directory.py +2 -2
- package/src/skcapstone/providers/docker.py +2 -2
- package/src/skcapstone/scheduled_tasks.py +107 -0
- package/src/skcapstone/service_health.py +83 -4
- package/src/skcapstone/sync_watcher.py +2 -2
- package/src/skcapstone/systemd.py +17 -0
|
@@ -16,6 +16,7 @@ Usage:
|
|
|
16
16
|
from __future__ import annotations
|
|
17
17
|
|
|
18
18
|
import logging
|
|
19
|
+
import platform
|
|
19
20
|
import shutil
|
|
20
21
|
import subprocess
|
|
21
22
|
from dataclasses import dataclass, field
|
|
@@ -24,6 +25,14 @@ from typing import Optional
|
|
|
24
25
|
|
|
25
26
|
logger = logging.getLogger("skcapstone.systemd")
|
|
26
27
|
|
|
28
|
+
|
|
29
|
+
def _require_linux() -> None:
|
|
30
|
+
"""Raise RuntimeError if not running on Linux."""
|
|
31
|
+
if platform.system() != "Linux":
|
|
32
|
+
raise RuntimeError(
|
|
33
|
+
"systemd is only available on Linux. Use launchd on macOS."
|
|
34
|
+
)
|
|
35
|
+
|
|
27
36
|
SERVICE_NAME = "skcapstone.service"
|
|
28
37
|
SOCKET_NAME = "skcapstone-api.socket"
|
|
29
38
|
HEARTBEAT_SERVICE = "skcomm-heartbeat.service"
|
|
@@ -93,7 +102,11 @@ def _systemctl(*args: str) -> subprocess.CompletedProcess:
|
|
|
93
102
|
|
|
94
103
|
Returns:
|
|
95
104
|
CompletedProcess result.
|
|
105
|
+
|
|
106
|
+
Raises:
|
|
107
|
+
RuntimeError: If not running on Linux.
|
|
96
108
|
"""
|
|
109
|
+
_require_linux()
|
|
97
110
|
return _run(["systemctl", "--user", *args])
|
|
98
111
|
|
|
99
112
|
|
|
@@ -127,6 +140,7 @@ def install_service(
|
|
|
127
140
|
Returns:
|
|
128
141
|
dict: Result with 'installed', 'enabled', 'started' bools.
|
|
129
142
|
"""
|
|
143
|
+
_require_linux()
|
|
130
144
|
target = unit_dir or SYSTEMD_USER_DIR
|
|
131
145
|
source = source_dir or BUNDLED_DIR
|
|
132
146
|
|
|
@@ -184,6 +198,7 @@ def uninstall_service(unit_dir: Optional[Path] = None) -> dict:
|
|
|
184
198
|
Returns:
|
|
185
199
|
dict: Result with 'stopped', 'disabled', 'removed' bools.
|
|
186
200
|
"""
|
|
201
|
+
_require_linux()
|
|
187
202
|
target = unit_dir or SYSTEMD_USER_DIR
|
|
188
203
|
result = {"stopped": False, "disabled": False, "removed": False}
|
|
189
204
|
|
|
@@ -214,6 +229,7 @@ def service_status() -> ServiceStatus:
|
|
|
214
229
|
Returns:
|
|
215
230
|
ServiceStatus: Detailed status information.
|
|
216
231
|
"""
|
|
232
|
+
_require_linux()
|
|
217
233
|
status = ServiceStatus()
|
|
218
234
|
|
|
219
235
|
unit_path = SYSTEMD_USER_DIR / SERVICE_NAME
|
|
@@ -264,6 +280,7 @@ def service_logs(lines: int = 50, follow: bool = False) -> str:
|
|
|
264
280
|
Returns:
|
|
265
281
|
str: Log output or the follow command.
|
|
266
282
|
"""
|
|
283
|
+
_require_linux()
|
|
267
284
|
if follow:
|
|
268
285
|
return f"journalctl --user -u {SERVICE_NAME} -f"
|
|
269
286
|
|