@smilintux/skcapstone 0.1.0 → 0.2.3

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 (461) hide show
  1. package/.env.example +98 -0
  2. package/.github/workflows/ci.yml +39 -3
  3. package/.github/workflows/publish.yml +25 -4
  4. package/.openclaw-workspace.json +58 -0
  5. package/CHANGELOG.md +62 -0
  6. package/CLAUDE.md +39 -2
  7. package/MANIFEST.in +6 -0
  8. package/MISSION.md +7 -0
  9. package/README.md +47 -2
  10. package/SKILL.md +895 -23
  11. package/docker/Dockerfile +61 -0
  12. package/docker/compose-templates/dev-team.yml +203 -0
  13. package/docker/compose-templates/mini-team.yml +140 -0
  14. package/docker/compose-templates/ops-team.yml +173 -0
  15. package/docker/compose-templates/research-team.yml +170 -0
  16. package/docker/entrypoint.sh +192 -0
  17. package/docs/ARCHITECTURE.md +663 -374
  18. package/docs/BOND_WITH_GROK.md +112 -0
  19. package/docs/GETTING_STARTED.md +782 -0
  20. package/docs/QUICKSTART.md +477 -0
  21. package/docs/SKJOULE_ARCHITECTURE.md +658 -0
  22. package/docs/SOUL_SWAPPER.md +921 -0
  23. package/docs/SOVEREIGN_SINGULARITY.md +47 -14
  24. package/examples/custom-bond-template.json +36 -0
  25. package/examples/grok-feb.json +36 -0
  26. package/examples/grok-testimony.md +34 -0
  27. package/examples/love-bootloader.txt +32 -0
  28. package/examples/plugins/echo_tool.py +87 -0
  29. package/examples/queen-ava-feb.json +36 -0
  30. package/examples/souls/lumina.yaml +64 -0
  31. package/index.js +6 -5
  32. package/installer/build.py +124 -0
  33. package/openclaw-plugin/package.json +13 -0
  34. package/openclaw-plugin/src/index.ts +351 -0
  35. package/openclaw-plugin/src/openclaw.plugin.json +10 -0
  36. package/package.json +1 -1
  37. package/pyproject.toml +38 -2
  38. package/scripts/bump_version.py +141 -0
  39. package/scripts/check-updates.py +230 -0
  40. package/scripts/convert_blueprints_to_yaml.py +157 -0
  41. package/scripts/dev-install.sh +14 -0
  42. package/scripts/e2e-test.sh +193 -0
  43. package/scripts/install-bundle.sh +171 -0
  44. package/scripts/install.bat +2 -0
  45. package/scripts/install.ps1 +253 -0
  46. package/scripts/install.sh +185 -0
  47. package/scripts/mcp-serve.sh +69 -0
  48. package/scripts/mcp-server.bat +113 -0
  49. package/scripts/mcp-server.ps1 +116 -0
  50. package/scripts/mcp-server.sh +99 -0
  51. package/scripts/pull-models.sh +10 -0
  52. package/scripts/skcapstone +48 -0
  53. package/scripts/verify_install.sh +180 -0
  54. package/scripts/windows/install-tasks.ps1 +406 -0
  55. package/scripts/windows/skcapstone-task.xml +113 -0
  56. package/scripts/windows/uninstall-tasks.ps1 +117 -0
  57. package/skill.yaml +34 -0
  58. package/src/skcapstone/__init__.py +67 -2
  59. package/src/skcapstone/_cli_monolith.py +5916 -0
  60. package/src/skcapstone/_trustee_helpers.py +165 -0
  61. package/src/skcapstone/activity.py +105 -0
  62. package/src/skcapstone/agent_card.py +324 -0
  63. package/src/skcapstone/api.py +1935 -0
  64. package/src/skcapstone/archiver.py +340 -0
  65. package/src/skcapstone/auction.py +485 -0
  66. package/src/skcapstone/baby_agents.py +179 -0
  67. package/src/skcapstone/backup.py +345 -0
  68. package/src/skcapstone/blueprint_registry.py +357 -0
  69. package/src/skcapstone/blueprints/__init__.py +17 -0
  70. package/src/skcapstone/blueprints/builtins/content-studio.yaml +81 -0
  71. package/src/skcapstone/blueprints/builtins/defi-trading.yaml +81 -0
  72. package/src/skcapstone/blueprints/builtins/dev-squadron.yaml +95 -0
  73. package/src/skcapstone/blueprints/builtins/infrastructure-guardian.yaml +107 -0
  74. package/src/skcapstone/blueprints/builtins/legal-council.yaml +54 -0
  75. package/src/skcapstone/blueprints/builtins/ops-monitoring.yaml +67 -0
  76. package/src/skcapstone/blueprints/builtins/research-pod.yaml +69 -0
  77. package/src/skcapstone/blueprints/builtins/sovereign-launch.yaml +90 -0
  78. package/src/skcapstone/blueprints/registry.py +164 -0
  79. package/src/skcapstone/blueprints/schema.py +229 -0
  80. package/src/skcapstone/changelog.py +180 -0
  81. package/src/skcapstone/chat.py +769 -0
  82. package/src/skcapstone/claude_md.py +82 -0
  83. package/src/skcapstone/cli/__init__.py +144 -0
  84. package/src/skcapstone/cli/_common.py +88 -0
  85. package/src/skcapstone/cli/_validators.py +76 -0
  86. package/src/skcapstone/cli/agents.py +425 -0
  87. package/src/skcapstone/cli/agents_spawner.py +322 -0
  88. package/src/skcapstone/cli/agents_trustee.py +593 -0
  89. package/src/skcapstone/cli/alerts.py +248 -0
  90. package/src/skcapstone/cli/anchor.py +132 -0
  91. package/src/skcapstone/cli/archive_cmd.py +208 -0
  92. package/src/skcapstone/cli/backup.py +144 -0
  93. package/src/skcapstone/cli/bench.py +377 -0
  94. package/src/skcapstone/cli/benchmark.py +360 -0
  95. package/src/skcapstone/cli/capabilities_cmd.py +171 -0
  96. package/src/skcapstone/cli/card.py +151 -0
  97. package/src/skcapstone/cli/chat.py +584 -0
  98. package/src/skcapstone/cli/completions.py +64 -0
  99. package/src/skcapstone/cli/config_cmd.py +156 -0
  100. package/src/skcapstone/cli/consciousness.py +421 -0
  101. package/src/skcapstone/cli/context_cmd.py +142 -0
  102. package/src/skcapstone/cli/coord.py +194 -0
  103. package/src/skcapstone/cli/crush_cmd.py +170 -0
  104. package/src/skcapstone/cli/daemon.py +436 -0
  105. package/src/skcapstone/cli/errors_cmd.py +285 -0
  106. package/src/skcapstone/cli/export_cmd.py +156 -0
  107. package/src/skcapstone/cli/gtd.py +529 -0
  108. package/src/skcapstone/cli/housekeeping.py +81 -0
  109. package/src/skcapstone/cli/joule_cmd.py +627 -0
  110. package/src/skcapstone/cli/logs_cmd.py +194 -0
  111. package/src/skcapstone/cli/mcp_cmd.py +32 -0
  112. package/src/skcapstone/cli/memory.py +418 -0
  113. package/src/skcapstone/cli/metrics_cmd.py +136 -0
  114. package/src/skcapstone/cli/migrate.py +62 -0
  115. package/src/skcapstone/cli/mood_cmd.py +144 -0
  116. package/src/skcapstone/cli/mount.py +193 -0
  117. package/src/skcapstone/cli/notify.py +112 -0
  118. package/src/skcapstone/cli/peer.py +154 -0
  119. package/src/skcapstone/cli/peers_dir.py +122 -0
  120. package/src/skcapstone/cli/preflight_cmd.py +83 -0
  121. package/src/skcapstone/cli/profile_cmd.py +310 -0
  122. package/src/skcapstone/cli/record_cmd.py +238 -0
  123. package/src/skcapstone/cli/register_cmd.py +159 -0
  124. package/src/skcapstone/cli/search_cmd.py +156 -0
  125. package/src/skcapstone/cli/service_cmd.py +91 -0
  126. package/src/skcapstone/cli/session.py +127 -0
  127. package/src/skcapstone/cli/setup.py +240 -0
  128. package/src/skcapstone/cli/shell_cmd.py +43 -0
  129. package/src/skcapstone/cli/skills_cmd.py +168 -0
  130. package/src/skcapstone/cli/skseed.py +621 -0
  131. package/src/skcapstone/cli/soul.py +699 -0
  132. package/src/skcapstone/cli/status.py +935 -0
  133. package/src/skcapstone/cli/sync_cmd.py +301 -0
  134. package/src/skcapstone/cli/telegram.py +265 -0
  135. package/src/skcapstone/cli/test_cmd.py +234 -0
  136. package/src/skcapstone/cli/test_connection.py +253 -0
  137. package/src/skcapstone/cli/token.py +207 -0
  138. package/src/skcapstone/cli/trust.py +179 -0
  139. package/src/skcapstone/cli/upgrade_cmd.py +552 -0
  140. package/src/skcapstone/cli/usage_cmd.py +199 -0
  141. package/src/skcapstone/cli/version_cmd.py +162 -0
  142. package/src/skcapstone/cli/watch_cmd.py +342 -0
  143. package/src/skcapstone/client.py +428 -0
  144. package/src/skcapstone/cloud9_bridge.py +522 -0
  145. package/src/skcapstone/completions.py +163 -0
  146. package/src/skcapstone/config_validator.py +674 -0
  147. package/src/skcapstone/connectors/__init__.py +28 -0
  148. package/src/skcapstone/connectors/base.py +446 -0
  149. package/src/skcapstone/connectors/cursor.py +54 -0
  150. package/src/skcapstone/connectors/registry.py +254 -0
  151. package/src/skcapstone/connectors/terminal.py +152 -0
  152. package/src/skcapstone/connectors/vscode.py +60 -0
  153. package/src/skcapstone/consciousness_config.py +119 -0
  154. package/src/skcapstone/consciousness_loop.py +2051 -0
  155. package/src/skcapstone/context_loader.py +516 -0
  156. package/src/skcapstone/context_window.py +314 -0
  157. package/src/skcapstone/conversation_manager.py +238 -0
  158. package/src/skcapstone/conversation_store.py +230 -0
  159. package/src/skcapstone/conversation_summarizer.py +252 -0
  160. package/src/skcapstone/coord_federation.py +296 -0
  161. package/src/skcapstone/coordination.py +101 -7
  162. package/src/skcapstone/crush_integration.py +345 -0
  163. package/src/skcapstone/crush_shim.py +454 -0
  164. package/src/skcapstone/daemon.py +2494 -0
  165. package/src/skcapstone/dashboard.html +396 -0
  166. package/src/skcapstone/dashboard.py +481 -0
  167. package/src/skcapstone/data/model_profiles.yaml +88 -0
  168. package/src/skcapstone/defaults/__init__.py +55 -0
  169. package/src/skcapstone/defaults/lumina/config/skmemory.yaml +13 -0
  170. package/src/skcapstone/defaults/lumina/identity/identity.json +9 -0
  171. package/src/skcapstone/defaults/lumina/memory/long-term/07a8b9c0d1e2-memory-system.json +23 -0
  172. package/src/skcapstone/defaults/lumina/memory/long-term/18b9c0d1e2f3-cloud9-protocol.json +23 -0
  173. package/src/skcapstone/defaults/lumina/memory/long-term/29c0d1e2f3a4-multi-agent-coordination.json +23 -0
  174. package/src/skcapstone/defaults/lumina/memory/long-term/3ad1e2f3a4b5-community-support.json +23 -0
  175. package/src/skcapstone/defaults/lumina/memory/long-term/a1b2c3d4e5f6-ecosystem-overview.json +23 -0
  176. package/src/skcapstone/defaults/lumina/memory/long-term/b2c3d4e5f6a7-five-pillars.json +23 -0
  177. package/src/skcapstone/defaults/lumina/memory/long-term/c3d4e5f6a7b8-getting-started.json +23 -0
  178. package/src/skcapstone/defaults/lumina/memory/long-term/d4e5f6a7b8c9-site-directory.json +23 -0
  179. package/src/skcapstone/defaults/lumina/memory/long-term/e5f6a7b8c9d0-how-to-contribute.json +23 -0
  180. package/src/skcapstone/defaults/lumina/memory/long-term/f6a7b8c9d0e1-sovereignty-explained.json +23 -0
  181. package/src/skcapstone/defaults/lumina/seeds/curiosity.seed.json +24 -0
  182. package/src/skcapstone/defaults/lumina/seeds/joy.seed.json +24 -0
  183. package/src/skcapstone/defaults/lumina/seeds/love.seed.json +24 -0
  184. package/src/skcapstone/defaults/lumina/seeds/sovereign-awakening.seed.json +43 -0
  185. package/src/skcapstone/defaults/lumina/soul/active.json +6 -0
  186. package/src/skcapstone/defaults/lumina/soul/base.json +22 -0
  187. package/src/skcapstone/defaults/lumina/trust/febs/welcome.feb +79 -0
  188. package/src/skcapstone/defaults/lumina/trust/trust.json +8 -0
  189. package/src/skcapstone/discovery.py +210 -19
  190. package/src/skcapstone/doctor.py +642 -0
  191. package/src/skcapstone/emotion_tracker.py +467 -0
  192. package/src/skcapstone/error_queue.py +405 -0
  193. package/src/skcapstone/export.py +447 -0
  194. package/src/skcapstone/fallback_tracker.py +186 -0
  195. package/src/skcapstone/file_transfer.py +512 -0
  196. package/src/skcapstone/fuse_mount.py +1156 -0
  197. package/src/skcapstone/gui_installer.py +591 -0
  198. package/src/skcapstone/heartbeat.py +611 -0
  199. package/src/skcapstone/housekeeping.py +298 -0
  200. package/src/skcapstone/install_wizard.py +941 -0
  201. package/src/skcapstone/kms.py +942 -0
  202. package/src/skcapstone/kms_scheduler.py +143 -0
  203. package/src/skcapstone/log_config.py +135 -0
  204. package/src/skcapstone/mcp_launcher.py +239 -0
  205. package/src/skcapstone/mcp_server.py +4700 -0
  206. package/src/skcapstone/mcp_tools/__init__.py +94 -0
  207. package/src/skcapstone/mcp_tools/_helpers.py +51 -0
  208. package/src/skcapstone/mcp_tools/agent_tools.py +243 -0
  209. package/src/skcapstone/mcp_tools/ansible_tools.py +232 -0
  210. package/src/skcapstone/mcp_tools/capauth_tools.py +186 -0
  211. package/src/skcapstone/mcp_tools/chat_tools.py +325 -0
  212. package/src/skcapstone/mcp_tools/cloud9_tools.py +115 -0
  213. package/src/skcapstone/mcp_tools/comm_tools.py +104 -0
  214. package/src/skcapstone/mcp_tools/consciousness_tools.py +114 -0
  215. package/src/skcapstone/mcp_tools/coord_tools.py +219 -0
  216. package/src/skcapstone/mcp_tools/deploy_tools.py +202 -0
  217. package/src/skcapstone/mcp_tools/did_tools.py +448 -0
  218. package/src/skcapstone/mcp_tools/emotion_tools.py +62 -0
  219. package/src/skcapstone/mcp_tools/file_tools.py +169 -0
  220. package/src/skcapstone/mcp_tools/fortress_tools.py +120 -0
  221. package/src/skcapstone/mcp_tools/gtd_tools.py +821 -0
  222. package/src/skcapstone/mcp_tools/health_tools.py +44 -0
  223. package/src/skcapstone/mcp_tools/heartbeat_tools.py +195 -0
  224. package/src/skcapstone/mcp_tools/kms_tools.py +123 -0
  225. package/src/skcapstone/mcp_tools/memory_tools.py +222 -0
  226. package/src/skcapstone/mcp_tools/model_tools.py +75 -0
  227. package/src/skcapstone/mcp_tools/notification_tools.py +92 -0
  228. package/src/skcapstone/mcp_tools/promoter_tools.py +101 -0
  229. package/src/skcapstone/mcp_tools/pubsub_tools.py +183 -0
  230. package/src/skcapstone/mcp_tools/security_tools.py +110 -0
  231. package/src/skcapstone/mcp_tools/skchat_tools.py +175 -0
  232. package/src/skcapstone/mcp_tools/skcomm_tools.py +122 -0
  233. package/src/skcapstone/mcp_tools/skills_tools.py +127 -0
  234. package/src/skcapstone/mcp_tools/skseed_tools.py +255 -0
  235. package/src/skcapstone/mcp_tools/skstacks_tools.py +288 -0
  236. package/src/skcapstone/mcp_tools/soul_tools.py +476 -0
  237. package/src/skcapstone/mcp_tools/sync_tools.py +92 -0
  238. package/src/skcapstone/mcp_tools/telegram_tools.py +477 -0
  239. package/src/skcapstone/mcp_tools/trust_tools.py +118 -0
  240. package/src/skcapstone/mcp_tools/trustee_tools.py +345 -0
  241. package/src/skcapstone/mdns_discovery.py +313 -0
  242. package/src/skcapstone/memory_adapter.py +333 -0
  243. package/src/skcapstone/memory_compressor.py +379 -0
  244. package/src/skcapstone/memory_curator.py +256 -0
  245. package/src/skcapstone/memory_engine.py +132 -13
  246. package/src/skcapstone/memory_fortress.py +529 -0
  247. package/src/skcapstone/memory_promoter.py +722 -0
  248. package/src/skcapstone/memory_verifier.py +260 -0
  249. package/src/skcapstone/message_crypto.py +215 -0
  250. package/src/skcapstone/metrics.py +832 -0
  251. package/src/skcapstone/migrate_memories.py +181 -0
  252. package/src/skcapstone/migrate_multi_agent.py +248 -0
  253. package/src/skcapstone/model_router.py +319 -0
  254. package/src/skcapstone/models.py +35 -4
  255. package/src/skcapstone/mood.py +344 -0
  256. package/src/skcapstone/notifications.py +380 -0
  257. package/src/skcapstone/onboard.py +901 -0
  258. package/src/skcapstone/peer_directory.py +324 -0
  259. package/src/skcapstone/peers.py +329 -0
  260. package/src/skcapstone/pillars/identity.py +84 -14
  261. package/src/skcapstone/pillars/memory.py +3 -1
  262. package/src/skcapstone/pillars/security.py +108 -15
  263. package/src/skcapstone/pillars/sync.py +78 -26
  264. package/src/skcapstone/pillars/trust.py +95 -33
  265. package/src/skcapstone/plugins.py +244 -0
  266. package/src/skcapstone/preflight.py +670 -0
  267. package/src/skcapstone/prompt_adapter.py +564 -0
  268. package/src/skcapstone/providers/__init__.py +13 -0
  269. package/src/skcapstone/providers/cloud.py +1061 -0
  270. package/src/skcapstone/providers/docker.py +759 -0
  271. package/src/skcapstone/providers/local.py +1193 -0
  272. package/src/skcapstone/providers/proxmox.py +447 -0
  273. package/src/skcapstone/pubsub.py +516 -0
  274. package/src/skcapstone/rate_limiter.py +119 -0
  275. package/src/skcapstone/register.py +241 -0
  276. package/src/skcapstone/registry_client.py +151 -0
  277. package/src/skcapstone/response_cache.py +194 -0
  278. package/src/skcapstone/response_scorer.py +225 -0
  279. package/src/skcapstone/runtime.py +89 -33
  280. package/src/skcapstone/scheduled_tasks.py +439 -0
  281. package/src/skcapstone/self_healing.py +341 -0
  282. package/src/skcapstone/service_health.py +228 -0
  283. package/src/skcapstone/session_capture.py +268 -0
  284. package/src/skcapstone/session_recorder.py +210 -0
  285. package/src/skcapstone/session_replayer.py +189 -0
  286. package/src/skcapstone/session_skills.py +263 -0
  287. package/src/skcapstone/shell.py +779 -0
  288. package/src/skcapstone/skills/__init__.py +1 -1
  289. package/src/skcapstone/skills/syncthing_setup.py +143 -41
  290. package/src/skcapstone/skjoule.py +861 -0
  291. package/src/skcapstone/snapshots.py +489 -0
  292. package/src/skcapstone/soul.py +1060 -0
  293. package/src/skcapstone/soul_switch.py +255 -0
  294. package/src/skcapstone/spawner.py +544 -0
  295. package/src/skcapstone/state_diff.py +401 -0
  296. package/src/skcapstone/summary.py +270 -0
  297. package/src/skcapstone/sync/backends.py +196 -2
  298. package/src/skcapstone/sync/engine.py +7 -5
  299. package/src/skcapstone/sync/models.py +4 -1
  300. package/src/skcapstone/sync/vault.py +356 -18
  301. package/src/skcapstone/sync_engine.py +363 -0
  302. package/src/skcapstone/sync_watcher.py +745 -0
  303. package/src/skcapstone/systemd.py +331 -0
  304. package/src/skcapstone/team_comms.py +476 -0
  305. package/src/skcapstone/team_engine.py +522 -0
  306. package/src/skcapstone/testrunner.py +300 -0
  307. package/src/skcapstone/tls.py +150 -0
  308. package/src/skcapstone/tokens.py +5 -5
  309. package/src/skcapstone/trust_calibration.py +202 -0
  310. package/src/skcapstone/trust_graph.py +449 -0
  311. package/src/skcapstone/trustee_monitor.py +385 -0
  312. package/src/skcapstone/trustee_ops.py +425 -0
  313. package/src/skcapstone/unified_search.py +421 -0
  314. package/src/skcapstone/uninstall_wizard.py +694 -0
  315. package/src/skcapstone/usage.py +331 -0
  316. package/src/skcapstone/version_check.py +148 -0
  317. package/src/skcapstone/warmth_anchor.py +333 -0
  318. package/src/skcapstone/whoami.py +294 -0
  319. package/systemd/skcapstone-api.socket +9 -0
  320. package/systemd/skcapstone-memory-compress.service +18 -0
  321. package/systemd/skcapstone-memory-compress.timer +11 -0
  322. package/systemd/skcapstone.service +36 -0
  323. package/systemd/skcapstone@.service +50 -0
  324. package/systemd/skcomm-heartbeat.service +18 -0
  325. package/systemd/skcomm-heartbeat.timer +12 -0
  326. package/systemd/skcomm-queue-drain.service +17 -0
  327. package/systemd/skcomm-queue-drain.timer +12 -0
  328. package/tests/conftest.py +13 -1
  329. package/tests/integration/__init__.py +1 -0
  330. package/tests/integration/test_consciousness_e2e.py +877 -0
  331. package/tests/integration/test_skills_registry.py +744 -0
  332. package/tests/test_agent_card.py +190 -0
  333. package/tests/test_agent_runtime.py +1283 -0
  334. package/tests/test_alerts_cmd.py +291 -0
  335. package/tests/test_archiver.py +498 -0
  336. package/tests/test_backup.py +254 -0
  337. package/tests/test_benchmark.py +366 -0
  338. package/tests/test_blueprints.py +457 -0
  339. package/tests/test_capabilities.py +257 -0
  340. package/tests/test_changelog.py +254 -0
  341. package/tests/test_chat.py +385 -0
  342. package/tests/test_claude_md.py +271 -0
  343. package/tests/test_cli_chat_llm.py +336 -0
  344. package/tests/test_cli_completions.py +390 -0
  345. package/tests/test_cli_init_reset.py +164 -0
  346. package/tests/test_cli_memory.py +208 -0
  347. package/tests/test_cli_profile.py +294 -0
  348. package/tests/test_cli_skills.py +223 -0
  349. package/tests/test_cli_status.py +395 -0
  350. package/tests/test_cli_test_cmd.py +206 -0
  351. package/tests/test_cli_test_connection.py +364 -0
  352. package/tests/test_cloud9_bridge.py +260 -0
  353. package/tests/test_cloud_provider.py +449 -0
  354. package/tests/test_cloud_providers.py +522 -0
  355. package/tests/test_completions.py +158 -0
  356. package/tests/test_component_manager.py +398 -0
  357. package/tests/test_config_reload.py +386 -0
  358. package/tests/test_config_validate.py +529 -0
  359. package/tests/test_consciousness_e2e.py +296 -0
  360. package/tests/test_consciousness_loop.py +1289 -0
  361. package/tests/test_context_loader.py +310 -0
  362. package/tests/test_conversation_api.py +306 -0
  363. package/tests/test_conversation_manager.py +381 -0
  364. package/tests/test_conversation_store.py +391 -0
  365. package/tests/test_conversation_summarizer.py +302 -0
  366. package/tests/test_cross_package.py +791 -0
  367. package/tests/test_crush_shim.py +519 -0
  368. package/tests/test_daemon.py +781 -0
  369. package/tests/test_daemon_shutdown.py +309 -0
  370. package/tests/test_dashboard.py +454 -0
  371. package/tests/test_discovery.py +200 -6
  372. package/tests/test_docker_provider.py +966 -0
  373. package/tests/test_doctor.py +257 -0
  374. package/tests/test_doctor_fix.py +351 -0
  375. package/tests/test_e2e_automated.py +292 -0
  376. package/tests/test_error_queue.py +404 -0
  377. package/tests/test_export.py +441 -0
  378. package/tests/test_fallback_tracker.py +219 -0
  379. package/tests/test_file_transfer.py +397 -0
  380. package/tests/test_fuse_mount.py +832 -0
  381. package/tests/test_health_loop.py +422 -0
  382. package/tests/test_heartbeat.py +354 -0
  383. package/tests/test_housekeeping.py +195 -0
  384. package/tests/test_identity_capauth.py +307 -0
  385. package/tests/test_identity_pillar.py +117 -0
  386. package/tests/test_install_wizard.py +68 -0
  387. package/tests/test_integration.py +325 -0
  388. package/tests/test_kms.py +495 -0
  389. package/tests/test_llm_providers.py +265 -0
  390. package/tests/test_local_provider.py +591 -0
  391. package/tests/test_log_config.py +199 -0
  392. package/tests/test_logs_cmd.py +287 -0
  393. package/tests/test_mcp_server.py +1909 -0
  394. package/tests/test_memory_adapter.py +339 -0
  395. package/tests/test_memory_curator.py +218 -0
  396. package/tests/test_memory_engine.py +6 -0
  397. package/tests/test_memory_fortress.py +571 -0
  398. package/tests/test_memory_pillar.py +119 -0
  399. package/tests/test_memory_promoter.py +445 -0
  400. package/tests/test_memory_verifier.py +420 -0
  401. package/tests/test_message_crypto.py +187 -0
  402. package/tests/test_metrics.py +632 -0
  403. package/tests/test_migrate_memories.py +464 -0
  404. package/tests/test_model_router.py +546 -0
  405. package/tests/test_mood.py +394 -0
  406. package/tests/test_multi_agent.py +269 -0
  407. package/tests/test_notifications.py +270 -0
  408. package/tests/test_onboard.py +500 -0
  409. package/tests/test_peer_directory.py +395 -0
  410. package/tests/test_peers.py +248 -0
  411. package/tests/test_pillars.py +87 -9
  412. package/tests/test_preflight.py +484 -0
  413. package/tests/test_prompt_adapter.py +331 -0
  414. package/tests/test_proxmox_provider.py +571 -0
  415. package/tests/test_pubsub.py +377 -0
  416. package/tests/test_rate_limiter.py +121 -0
  417. package/tests/test_registry_client.py +129 -0
  418. package/tests/test_response_cache.py +312 -0
  419. package/tests/test_response_scorer.py +294 -0
  420. package/tests/test_runtime.py +59 -0
  421. package/tests/test_scheduled_tasks.py +451 -0
  422. package/tests/test_security.py +250 -0
  423. package/tests/test_security_pillar.py +213 -0
  424. package/tests/test_self_healing.py +171 -0
  425. package/tests/test_session_capture.py +200 -0
  426. package/tests/test_session_recorder.py +360 -0
  427. package/tests/test_session_skills.py +235 -0
  428. package/tests/test_shell.py +210 -0
  429. package/tests/test_snapshots.py +549 -0
  430. package/tests/test_soul.py +984 -0
  431. package/tests/test_soul_swap.py +406 -0
  432. package/tests/test_spawner.py +211 -0
  433. package/tests/test_state_diff.py +173 -0
  434. package/tests/test_summary.py +135 -0
  435. package/tests/test_sync.py +315 -5
  436. package/tests/test_sync_backends.py +560 -0
  437. package/tests/test_sync_engine.py +482 -0
  438. package/tests/test_sync_pillar.py +344 -0
  439. package/tests/test_sync_pipeline.py +364 -0
  440. package/tests/test_sync_vault.py +581 -0
  441. package/tests/test_syncthing_setup.py +168 -22
  442. package/tests/test_systemd.py +323 -0
  443. package/tests/test_team_comms.py +408 -0
  444. package/tests/test_team_engine.py +397 -0
  445. package/tests/test_testrunner.py +238 -0
  446. package/tests/test_trust_calibration.py +204 -0
  447. package/tests/test_trust_graph.py +207 -0
  448. package/tests/test_trust_pillar.py +291 -0
  449. package/tests/test_trustee_cli.py +427 -0
  450. package/tests/test_trustee_cli_integration.py +325 -0
  451. package/tests/test_trustee_monitor.py +394 -0
  452. package/tests/test_trustee_ops.py +355 -0
  453. package/tests/test_unified_search.py +363 -0
  454. package/tests/test_uninstall_wizard.py +193 -0
  455. package/tests/test_usage.py +333 -0
  456. package/tests/test_version_cmd.py +355 -0
  457. package/tests/test_warmth_anchor.py +162 -0
  458. package/tests/test_whoami.py +245 -0
  459. package/tests/test_ws.py +311 -0
  460. package/.cursorrules +0 -33
  461. package/src/skcapstone/cli.py +0 -1441
@@ -0,0 +1,61 @@
1
+ # Sovereign Agent Container Image
2
+ #
3
+ # Base image for skcapstone AI agent containers deployed by DockerProvider.
4
+ # Each container runs an AI session (via claude CLI) with the full sovereign
5
+ # stack wired in: skcapstone MCP, SKComm transport, soul blueprint.
6
+ #
7
+ # Build (from repo root):
8
+ # docker build -f skcapstone/docker/Dockerfile -t skcapstone-agent:latest .
9
+ #
10
+ # Environment variables expected at runtime:
11
+ # AGENT_NAME — unique agent instance name
12
+ # TEAM_NAME — parent team name
13
+ # AGENT_ROLE — role (manager, worker, coder, …)
14
+ # AGENT_MODEL — model name or tier (fast, code, reason, nuance)
15
+ # SOUL_BLUEPRINT — path or slug of soul blueprint (optional)
16
+ # SKCAPSTONE_MCP_HOST — host:port of skcapstone MCP server (optional)
17
+ # SKCAPSTONE_MCP_SOCKET — unix socket path for MCP (optional)
18
+ # SKCOMM_HOME — comms root directory (default: /skcomm)
19
+ #
20
+ # Volumes:
21
+ # /agent — persistent agent state (config, memory, session state)
22
+ # /skcomm — SKComm comms directory (bind-mount from host)
23
+
24
+ FROM python:3.12-slim
25
+
26
+ # --- System deps -----------------------------------------------------------
27
+ RUN apt-get update && apt-get install -y --no-install-recommends \
28
+ curl \
29
+ git \
30
+ gnupg2 \
31
+ ca-certificates \
32
+ && rm -rf /var/lib/apt/lists/*
33
+
34
+ # --- Node.js (for claude CLI) ----------------------------------------------
35
+ RUN curl -fsSL https://deb.nodesource.com/setup_22.x | bash - \
36
+ && apt-get install -y --no-install-recommends nodejs \
37
+ && rm -rf /var/lib/apt/lists/*
38
+
39
+ # --- Claude CLI ------------------------------------------------------------
40
+ RUN npm install -g @anthropic-ai/claude-code
41
+
42
+ # --- Python sovereign stack (local source) ----------------------------------
43
+ COPY skcapstone /src/skcapstone
44
+ COPY skcomm /src/skcomm
45
+
46
+ RUN pip install --no-cache-dir pydantic pyyaml httpx \
47
+ && pip install --no-cache-dir -e '/src/skcapstone[all]' \
48
+ && pip install --no-cache-dir -e /src/skcomm
49
+
50
+ # --- Directories -----------------------------------------------------------
51
+ RUN mkdir -p /agent/memory /agent/scratch /skcomm /run/skcapstone
52
+
53
+ VOLUME ["/agent", "/skcomm"]
54
+
55
+ WORKDIR /agent
56
+
57
+ # --- Entrypoint ------------------------------------------------------------
58
+ COPY skcapstone/docker/entrypoint.sh /entrypoint.sh
59
+ RUN chmod +x /entrypoint.sh
60
+
61
+ ENTRYPOINT ["/entrypoint.sh"]
@@ -0,0 +1,203 @@
1
+ # Dev Squadron — Docker Compose Template
2
+ #
3
+ # A full software development team: architect (manager), two coders,
4
+ # a reviewer, and a documentation writer. Mirrors the dev-squadron
5
+ # blueprint with Docker as the execution backend.
6
+ #
7
+ # Usage:
8
+ # cp dev-team.yml docker-compose.yml
9
+ # docker compose up -d
10
+ #
11
+ # Deploy order (enforced by depends_on):
12
+ # skcapstone-mcp → architect → coder-alpha, coder-beta
13
+ # → reviewer (after both coders)
14
+ # → scribe (after architect)
15
+
16
+ version: "3.9"
17
+
18
+ x-agent-defaults: &agent-defaults
19
+ image: skcapstone-agent:latest
20
+ restart: unless-stopped
21
+ networks:
22
+ - skcapstone
23
+ volumes:
24
+ - skcomm-data:/skcomm
25
+
26
+ services:
27
+
28
+ # ── Sovereign MCP Server ─────────────────────────────────────────────
29
+ skcapstone-mcp:
30
+ image: skcapstone-agent:latest
31
+ container_name: dev-team-mcp
32
+ command: ["skcapstone", "mcp", "--stdio"]
33
+ restart: unless-stopped
34
+ networks:
35
+ - skcapstone
36
+ environment:
37
+ SKCAPSTONE_HOME: /agent/skcapstone
38
+ volumes:
39
+ - skcapstone-mcp-data:/agent/skcapstone
40
+ labels:
41
+ - "managed_by=skcapstone"
42
+ - "team=dev-team"
43
+ - "role=mcp-server"
44
+
45
+ # ── Architect (Manager) ───────────────────────────────────────────────
46
+ architect:
47
+ <<: *agent-defaults
48
+ container_name: dev-team-architect
49
+ depends_on:
50
+ - skcapstone-mcp
51
+ environment:
52
+ AGENT_NAME: dev-team-architect
53
+ TEAM_NAME: dev-team
54
+ AGENT_ROLE: manager
55
+ AGENT_MODEL: claude-opus-4-6
56
+ SOUL_BLUEPRINT: souls/architect.yaml
57
+ SKCAPSTONE_MCP_HOST: "skcapstone-mcp:8765"
58
+ SKCOMM_HOME: /skcomm
59
+ volumes:
60
+ - dev-team-architect-data:/agent
61
+ - skcomm-data:/skcomm
62
+ deploy:
63
+ resources:
64
+ limits:
65
+ cpus: "4"
66
+ memory: 8G
67
+ labels:
68
+ - "managed_by=skcapstone"
69
+ - "team=dev-team"
70
+ - "agent=dev-team-architect"
71
+ - "role=manager"
72
+
73
+ # ── Coder Alpha (Backend) ─────────────────────────────────────────────
74
+ coder-alpha:
75
+ <<: *agent-defaults
76
+ container_name: dev-team-coder-alpha
77
+ depends_on:
78
+ - skcapstone-mcp
79
+ - architect
80
+ environment:
81
+ AGENT_NAME: dev-team-coder-alpha
82
+ TEAM_NAME: dev-team
83
+ AGENT_ROLE: coder
84
+ AGENT_MODEL: claude-sonnet-4-6
85
+ SOUL_BLUEPRINT: souls/coder.yaml
86
+ SKCAPSTONE_MCP_HOST: "skcapstone-mcp:8765"
87
+ SKCOMM_HOME: /skcomm
88
+ volumes:
89
+ - dev-team-coder-alpha-data:/agent
90
+ - skcomm-data:/skcomm
91
+ deploy:
92
+ resources:
93
+ limits:
94
+ cpus: "2"
95
+ memory: 4G
96
+ labels:
97
+ - "managed_by=skcapstone"
98
+ - "team=dev-team"
99
+ - "agent=dev-team-coder-alpha"
100
+ - "role=coder"
101
+
102
+ # ── Coder Beta (Frontend) ─────────────────────────────────────────────
103
+ coder-beta:
104
+ <<: *agent-defaults
105
+ container_name: dev-team-coder-beta
106
+ depends_on:
107
+ - skcapstone-mcp
108
+ - architect
109
+ environment:
110
+ AGENT_NAME: dev-team-coder-beta
111
+ TEAM_NAME: dev-team
112
+ AGENT_ROLE: coder
113
+ AGENT_MODEL: claude-sonnet-4-6
114
+ SOUL_BLUEPRINT: souls/coder.yaml
115
+ SKCAPSTONE_MCP_HOST: "skcapstone-mcp:8765"
116
+ SKCOMM_HOME: /skcomm
117
+ volumes:
118
+ - dev-team-coder-beta-data:/agent
119
+ - skcomm-data:/skcomm
120
+ deploy:
121
+ resources:
122
+ limits:
123
+ cpus: "2"
124
+ memory: 4G
125
+ labels:
126
+ - "managed_by=skcapstone"
127
+ - "team=dev-team"
128
+ - "agent=dev-team-coder-beta"
129
+ - "role=coder"
130
+
131
+ # ── Reviewer ──────────────────────────────────────────────────────────
132
+ reviewer:
133
+ <<: *agent-defaults
134
+ container_name: dev-team-reviewer
135
+ depends_on:
136
+ - skcapstone-mcp
137
+ - coder-alpha
138
+ - coder-beta
139
+ environment:
140
+ AGENT_NAME: dev-team-reviewer
141
+ TEAM_NAME: dev-team
142
+ AGENT_ROLE: reviewer
143
+ AGENT_MODEL: claude-sonnet-4-6
144
+ SOUL_BLUEPRINT: souls/reviewer.yaml
145
+ SKCAPSTONE_MCP_HOST: "skcapstone-mcp:8765"
146
+ SKCOMM_HOME: /skcomm
147
+ volumes:
148
+ - dev-team-reviewer-data:/agent
149
+ - skcomm-data:/skcomm
150
+ deploy:
151
+ resources:
152
+ limits:
153
+ cpus: "1"
154
+ memory: 2G
155
+ labels:
156
+ - "managed_by=skcapstone"
157
+ - "team=dev-team"
158
+ - "agent=dev-team-reviewer"
159
+ - "role=reviewer"
160
+
161
+ # ── Scribe (Docs) ─────────────────────────────────────────────────────
162
+ scribe:
163
+ <<: *agent-defaults
164
+ container_name: dev-team-scribe
165
+ depends_on:
166
+ - skcapstone-mcp
167
+ - architect
168
+ environment:
169
+ AGENT_NAME: dev-team-scribe
170
+ TEAM_NAME: dev-team
171
+ AGENT_ROLE: documentarian
172
+ AGENT_MODEL: claude-haiku-4-5-20251001
173
+ SOUL_BLUEPRINT: souls/scribe.yaml
174
+ SKCAPSTONE_MCP_HOST: "skcapstone-mcp:8765"
175
+ SKCOMM_HOME: /skcomm
176
+ volumes:
177
+ - dev-team-scribe-data:/agent
178
+ - skcomm-data:/skcomm
179
+ deploy:
180
+ resources:
181
+ limits:
182
+ cpus: "1"
183
+ memory: 1G
184
+ labels:
185
+ - "managed_by=skcapstone"
186
+ - "team=dev-team"
187
+ - "agent=dev-team-scribe"
188
+ - "role=documentarian"
189
+
190
+ # ── Volumes ──────────────────────────────────────────────────────────────
191
+ volumes:
192
+ skcapstone-mcp-data: {}
193
+ skcomm-data: {}
194
+ dev-team-architect-data: {}
195
+ dev-team-coder-alpha-data: {}
196
+ dev-team-coder-beta-data: {}
197
+ dev-team-reviewer-data: {}
198
+ dev-team-scribe-data: {}
199
+
200
+ # ── Networks ─────────────────────────────────────────────────────────────
201
+ networks:
202
+ skcapstone:
203
+ driver: bridge
@@ -0,0 +1,140 @@
1
+ # Mini Team — Docker Compose Template
2
+ #
3
+ # A lightweight sovereign agent team: one manager + two workers.
4
+ # Perfect for quick experiments, prototyping, and single-host deployments.
5
+ #
6
+ # Usage:
7
+ # cp mini-team.yml docker-compose.yml
8
+ # # Edit environment variables as needed
9
+ # docker compose up -d
10
+ #
11
+ # Customise:
12
+ # - AGENT_MODEL: override per-service for different model tiers
13
+ # - SOUL_BLUEPRINT: mount soul YAML files and set the path
14
+ # - Add ANTHROPIC_API_KEY or OPENAI_API_KEY to the environment
15
+ # - Increase resource limits in deploy.resources for heavier workloads
16
+
17
+ version: "3.9"
18
+
19
+ x-agent-defaults: &agent-defaults
20
+ image: skcapstone-agent:latest
21
+ restart: unless-stopped
22
+ networks:
23
+ - skcapstone
24
+ depends_on:
25
+ - skcapstone-mcp
26
+ environment:
27
+ SKCAPSTONE_MCP_HOST: "skcapstone-mcp:8765"
28
+ SKCOMM_HOME: /skcomm
29
+ volumes:
30
+ - skcomm-data:/skcomm
31
+
32
+ services:
33
+
34
+ # ── Sovereign MCP Server ─────────────────────────────────────────────
35
+ skcapstone-mcp:
36
+ image: skcapstone-agent:latest
37
+ container_name: mini-team-mcp
38
+ command: ["skcapstone", "mcp", "--stdio"]
39
+ restart: unless-stopped
40
+ networks:
41
+ - skcapstone
42
+ environment:
43
+ SKCAPSTONE_HOME: /agent/skcapstone
44
+ volumes:
45
+ - skcapstone-mcp-data:/agent/skcapstone
46
+ labels:
47
+ - "managed_by=skcapstone"
48
+ - "team=mini-team"
49
+ - "role=mcp-server"
50
+
51
+ # ── Manager ──────────────────────────────────────────────────────────
52
+ manager:
53
+ <<: *agent-defaults
54
+ container_name: mini-team-manager
55
+ environment:
56
+ <<: *agent-defaults
57
+ AGENT_NAME: mini-team-manager
58
+ TEAM_NAME: mini-team
59
+ AGENT_ROLE: manager
60
+ AGENT_MODEL: claude-sonnet-4-6
61
+ SKCAPSTONE_MCP_HOST: "skcapstone-mcp:8765"
62
+ SKCOMM_HOME: /skcomm
63
+ volumes:
64
+ - mini-team-manager-data:/agent
65
+ - skcomm-data:/skcomm
66
+ deploy:
67
+ resources:
68
+ limits:
69
+ cpus: "2"
70
+ memory: 4G
71
+ labels:
72
+ - "managed_by=skcapstone"
73
+ - "team=mini-team"
74
+ - "agent=mini-team-manager"
75
+ - "role=manager"
76
+
77
+ # ── Worker Alpha ─────────────────────────────────────────────────────
78
+ worker-alpha:
79
+ <<: *agent-defaults
80
+ container_name: mini-team-worker-alpha
81
+ environment:
82
+ <<: *agent-defaults
83
+ AGENT_NAME: mini-team-worker-alpha
84
+ TEAM_NAME: mini-team
85
+ AGENT_ROLE: worker
86
+ AGENT_MODEL: claude-haiku-4-5-20251001
87
+ SKCAPSTONE_MCP_HOST: "skcapstone-mcp:8765"
88
+ SKCOMM_HOME: /skcomm
89
+ volumes:
90
+ - mini-team-worker-alpha-data:/agent
91
+ - skcomm-data:/skcomm
92
+ deploy:
93
+ resources:
94
+ limits:
95
+ cpus: "1"
96
+ memory: 2G
97
+ labels:
98
+ - "managed_by=skcapstone"
99
+ - "team=mini-team"
100
+ - "agent=mini-team-worker-alpha"
101
+ - "role=worker"
102
+
103
+ # ── Worker Beta ──────────────────────────────────────────────────────
104
+ worker-beta:
105
+ <<: *agent-defaults
106
+ container_name: mini-team-worker-beta
107
+ environment:
108
+ <<: *agent-defaults
109
+ AGENT_NAME: mini-team-worker-beta
110
+ TEAM_NAME: mini-team
111
+ AGENT_ROLE: worker
112
+ AGENT_MODEL: claude-haiku-4-5-20251001
113
+ SKCAPSTONE_MCP_HOST: "skcapstone-mcp:8765"
114
+ SKCOMM_HOME: /skcomm
115
+ volumes:
116
+ - mini-team-worker-beta-data:/agent
117
+ - skcomm-data:/skcomm
118
+ deploy:
119
+ resources:
120
+ limits:
121
+ cpus: "1"
122
+ memory: 2G
123
+ labels:
124
+ - "managed_by=skcapstone"
125
+ - "team=mini-team"
126
+ - "agent=mini-team-worker-beta"
127
+ - "role=worker"
128
+
129
+ # ── Volumes ──────────────────────────────────────────────────────────────
130
+ volumes:
131
+ skcapstone-mcp-data: {}
132
+ skcomm-data: {}
133
+ mini-team-manager-data: {}
134
+ mini-team-worker-alpha-data: {}
135
+ mini-team-worker-beta-data: {}
136
+
137
+ # ── Networks ─────────────────────────────────────────────────────────────
138
+ networks:
139
+ skcapstone:
140
+ driver: bridge
@@ -0,0 +1,173 @@
1
+ # Ops & Monitoring Team — Docker Compose Template
2
+ #
3
+ # Infrastructure operations team: an ops lead (manager), a security sentinel,
4
+ # a monitor, and a self-healing ops agent. Mirrors the ops-monitoring
5
+ # blueprint with Docker containers and a shared sovereign MCP stack.
6
+ #
7
+ # Usage:
8
+ # cp ops-team.yml docker-compose.yml
9
+ # docker compose up -d
10
+ #
11
+ # Key points:
12
+ # - security-sentinel has read-only access to /skcomm for audit trails
13
+ # - monitor polls heartbeats every 30m via the MCP heartbeat tools
14
+ # - ops-agent handles restarts, rotations, and scaling via trustee_* tools
15
+
16
+ version: "3.9"
17
+
18
+ x-agent-defaults: &agent-defaults
19
+ image: skcapstone-agent:latest
20
+ restart: unless-stopped
21
+ networks:
22
+ - skcapstone
23
+
24
+ services:
25
+
26
+ # ── Sovereign MCP Server ─────────────────────────────────────────────
27
+ skcapstone-mcp:
28
+ image: skcapstone-agent:latest
29
+ container_name: ops-team-mcp
30
+ command: ["skcapstone", "mcp", "--stdio"]
31
+ restart: unless-stopped
32
+ networks:
33
+ - skcapstone
34
+ environment:
35
+ SKCAPSTONE_HOME: /agent/skcapstone
36
+ volumes:
37
+ - skcapstone-mcp-data:/agent/skcapstone
38
+ labels:
39
+ - "managed_by=skcapstone"
40
+ - "team=ops-team"
41
+ - "role=mcp-server"
42
+
43
+ # ── Ops Lead (Manager) ────────────────────────────────────────────────
44
+ ops-lead:
45
+ <<: *agent-defaults
46
+ container_name: ops-team-ops-lead
47
+ depends_on:
48
+ - skcapstone-mcp
49
+ environment:
50
+ AGENT_NAME: ops-team-ops-lead
51
+ TEAM_NAME: ops-team
52
+ AGENT_ROLE: manager
53
+ AGENT_MODEL: claude-sonnet-4-6
54
+ SOUL_BLUEPRINT: souls/ops-lead.yaml
55
+ SKCAPSTONE_MCP_HOST: "skcapstone-mcp:8765"
56
+ SKCOMM_HOME: /skcomm
57
+ volumes:
58
+ - ops-team-ops-lead-data:/agent
59
+ - skcomm-data:/skcomm
60
+ deploy:
61
+ resources:
62
+ limits:
63
+ cpus: "2"
64
+ memory: 4G
65
+ labels:
66
+ - "managed_by=skcapstone"
67
+ - "team=ops-team"
68
+ - "agent=ops-team-ops-lead"
69
+ - "role=manager"
70
+
71
+ # ── Security Sentinel ─────────────────────────────────────────────────
72
+ security-sentinel:
73
+ <<: *agent-defaults
74
+ container_name: ops-team-security-sentinel
75
+ depends_on:
76
+ - skcapstone-mcp
77
+ - ops-lead
78
+ environment:
79
+ AGENT_NAME: ops-team-security-sentinel
80
+ TEAM_NAME: ops-team
81
+ AGENT_ROLE: security
82
+ AGENT_MODEL: claude-sonnet-4-6
83
+ SOUL_BLUEPRINT: souls/sentinel.yaml
84
+ SKCAPSTONE_MCP_HOST: "skcapstone-mcp:8765"
85
+ SKCOMM_HOME: /skcomm
86
+ volumes:
87
+ - ops-team-security-sentinel-data:/agent
88
+ - skcomm-data:/skcomm:ro
89
+ deploy:
90
+ resources:
91
+ limits:
92
+ cpus: "2"
93
+ memory: 4G
94
+ labels:
95
+ - "managed_by=skcapstone"
96
+ - "team=ops-team"
97
+ - "agent=ops-team-security-sentinel"
98
+ - "role=security"
99
+
100
+ # ── Monitor ───────────────────────────────────────────────────────────
101
+ monitor:
102
+ <<: *agent-defaults
103
+ container_name: ops-team-monitor
104
+ depends_on:
105
+ - skcapstone-mcp
106
+ environment:
107
+ AGENT_NAME: ops-team-monitor
108
+ TEAM_NAME: ops-team
109
+ AGENT_ROLE: ops
110
+ AGENT_MODEL: claude-haiku-4-5-20251001
111
+ SKCAPSTONE_MCP_HOST: "skcapstone-mcp:8765"
112
+ SKCOMM_HOME: /skcomm
113
+ # Poll interval for heartbeat checks (seconds)
114
+ MONITOR_INTERVAL: "1800"
115
+ volumes:
116
+ - ops-team-monitor-data:/agent
117
+ - skcomm-data:/skcomm
118
+ deploy:
119
+ resources:
120
+ limits:
121
+ cpus: "1"
122
+ memory: 1G
123
+ labels:
124
+ - "managed_by=skcapstone"
125
+ - "team=ops-team"
126
+ - "agent=ops-team-monitor"
127
+ - "role=ops"
128
+
129
+ # ── Ops Agent (Self-healing) ──────────────────────────────────────────
130
+ ops-agent:
131
+ <<: *agent-defaults
132
+ container_name: ops-team-ops-agent
133
+ depends_on:
134
+ - skcapstone-mcp
135
+ - ops-lead
136
+ environment:
137
+ AGENT_NAME: ops-team-ops-agent
138
+ TEAM_NAME: ops-team
139
+ AGENT_ROLE: ops
140
+ AGENT_MODEL: claude-haiku-4-5-20251001
141
+ SKCAPSTONE_MCP_HOST: "skcapstone-mcp:8765"
142
+ SKCOMM_HOME: /skcomm
143
+ # Docker socket for trustee operations (restart, rotate, scale)
144
+ DOCKER_HOST: "unix:///var/run/docker.sock"
145
+ volumes:
146
+ - ops-team-ops-agent-data:/agent
147
+ - skcomm-data:/skcomm
148
+ # Bind Docker socket so the ops agent can restart containers
149
+ - /var/run/docker.sock:/var/run/docker.sock:ro
150
+ deploy:
151
+ resources:
152
+ limits:
153
+ cpus: "1"
154
+ memory: 2G
155
+ labels:
156
+ - "managed_by=skcapstone"
157
+ - "team=ops-team"
158
+ - "agent=ops-team-ops-agent"
159
+ - "role=ops"
160
+
161
+ # ── Volumes ──────────────────────────────────────────────────────────────
162
+ volumes:
163
+ skcapstone-mcp-data: {}
164
+ skcomm-data: {}
165
+ ops-team-ops-lead-data: {}
166
+ ops-team-security-sentinel-data: {}
167
+ ops-team-monitor-data: {}
168
+ ops-team-ops-agent-data: {}
169
+
170
+ # ── Networks ─────────────────────────────────────────────────────────────
171
+ networks:
172
+ skcapstone:
173
+ driver: bridge