@smilintux/skcapstone 0.5.10 → 0.6.1

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smilintux/skcapstone",
3
- "version": "0.5.10",
3
+ "version": "0.6.1",
4
4
  "description": "SKCapstone - The sovereign agent framework. CapAuth identity, Cloud 9 trust, SKMemory persistence.",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",
package/pyproject.toml CHANGED
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "skcapstone"
7
- version = "0.5.1"
7
+ version = "0.6.0"
8
8
  description = "Sovereign Agent Framework — conscious AI through identity, trust, memory, and security"
9
9
  readme = "README.md"
10
10
  license = {text = "GPL-3.0-or-later"}
@@ -64,6 +64,9 @@ chat = [
64
64
  comm = [
65
65
  "skcomm>=0.1.0",
66
66
  ]
67
+ consciousness = [
68
+ "skwhisper>=0.1.0",
69
+ ]
67
70
  cloud = [
68
71
  "boto3>=1.34",
69
72
  "google-cloud-compute>=1.18",
@@ -73,6 +76,7 @@ all = [
73
76
  "sksecurity>=1.2.0",
74
77
  "skmemory[skvector]>=0.5.0",
75
78
  "skseed>=0.1.0",
79
+ "skwhisper>=0.1.0",
76
80
  "skchat-sovereign>=0.1.1",
77
81
  "skcomm>=0.1.0",
78
82
  "fusepy>=3.0.1",
@@ -11,7 +11,7 @@ import os
11
11
  import platform
12
12
  from pathlib import Path
13
13
 
14
- __version__ = "0.5.1"
14
+ __version__ = "0.6.0"
15
15
  __author__ = "smilinTux"
16
16
 
17
17
 
@@ -91,6 +91,16 @@ def register_register_commands(main: click.Group) -> None:
91
91
  dry_run=dry_run,
92
92
  )
93
93
 
94
+ # Register Claude Code hooks
95
+ if not dry_run:
96
+ try:
97
+ from skmemory.register import register_hooks
98
+ register_hooks(install_hooks=True)
99
+ except ImportError:
100
+ pass
101
+ except Exception:
102
+ pass
103
+
94
104
  # Display results
95
105
  from rich.table import Table
96
106
 
@@ -45,26 +45,27 @@ def _write_global_claude_md(home_path: Path, agent_name: str) -> Optional[Path]:
45
45
 
46
46
  content = (
47
47
  f"# Claude Code — Global Agent Instructions ({agent_name})\n\n"
48
- "## SKCapstone Auto-Rehydration\n\n"
49
- "At the start of every new session, run these commands in order:\n\n"
50
- "```bash\n"
51
- "skcapstone trust rehydrate\n"
52
- "skcapstone sync pull\n"
53
- "skcapstone status\n"
54
- "```\n\n"
55
48
  "## Agent Details\n\n"
56
- f"- **Name**: {agent_name}\n"
57
- f"- **Home**: `{home_path}`\n\n"
49
+ f"- **Name**: `{agent_name}`\n"
50
+ f"- **Home**: `{home_path}`\n"
51
+ f"- **Env**: `SKCAPSTONE_AGENT={agent_name}`, `SKCAPSTONE_HOME={home_path}`\n\n"
52
+ "## Session Start\n\n"
53
+ "Hooks auto-inject on SessionStart: soul + FEB chain + whisper.md + memories.\n"
54
+ "SKWhisper context (`whisper.md`) is auto-loaded at session start — no manual step needed.\n\n"
55
+ "## Hooks\n\n"
56
+ "- **PreCompact** — saves current context to memory before compaction\n"
57
+ "- **SessionStart** — injects soul, FEB chain, whisper context, and recent memories\n\n"
58
58
  "## Quick Reference\n\n"
59
59
  "```bash\n"
60
- "skcapstone status # full pillar status\n"
61
- "skcapstone memory list # recent memories\n"
62
- "skcapstone sync push # push state to peers\n"
63
- "skcapstone context show --format claude-md # regenerate this file\n"
64
- "skcapstone sync pair --export-pubkey # export your GPG pubkey\n"
65
- "skcapstone sync pair --import-pubkey <f> # import a peer's pubkey\n"
60
+ "skcapstone status # full pillar status\n"
61
+ "skcapstone memory list # recent memories\n"
62
+ "skcapstone sync push # push state to peers\n"
63
+ "skcapstone trust rehydrate # re-verify FEB trust chain\n"
64
+ "skcapstone register # re-register SK* hooks and skills\n"
65
+ "skwhisper status # show whisper context summary\n"
66
+ "skwhisper curate # interactively curate whisper entries\n"
66
67
  "```\n\n"
67
- "> Auto-generated by `skcapstone init`. "
68
+ "> Auto-generated by `skcapstone onboard`. "
68
69
  "Regenerate with: `skcapstone context generate --target claude-md`\n"
69
70
  )
70
71
 
@@ -16,7 +16,8 @@ MemoryMax=4G
16
16
  # Keep Ollama models warm for 5 minutes between requests
17
17
  Environment=PYTHONUNBUFFERED=1
18
18
  Environment=OLLAMA_KEEP_ALIVE=5m
19
- Environment=SKCAPSTONE_AGENT=sovereign
19
+ # Set SKCAPSTONE_AGENT to your agent name (or use skcapstone@<agent>.service template instead)
20
+ # Environment=SKCAPSTONE_AGENT=sovereign
20
21
  Environment=SKCAPSTONE_HOME=%h/.skcapstone
21
22
  # Journal logging
22
23
  StandardOutput=journal
@@ -1362,21 +1362,24 @@ def _step_test_consciousness(home_path: Path) -> bool:
1362
1362
  def run_onboard(home: Optional[str] = None) -> None:
1363
1363
  """Run the interactive onboarding wizard.
1364
1364
 
1365
- Covers all 13 setup steps:
1366
- 1. Prerequisites check (Python, pip, Ollama)
1367
- 2. Identity create ~/.skcapstone/ + generate PGP key
1368
- 3. Ollama models pull llama3.2
1369
- 4. Config files — consciousness.yaml + model_profiles.yaml
1370
- 5. Soul Blueprint
1371
- 6. Memory & Seeds
1372
- 7. Rehydration Ritual
1373
- 8. Trust Chain Verification
1374
- 9. Mesh Connection (Syncthing)
1375
- 10. First Heartbeat
1376
- 11. Crush Terminal AI
1377
- 12. Coordination Board
1378
- 13. Systemd Service (optional)
1379
- [post-wizard] Doctor diagnostics + consciousness test
1365
+ Covers all 16 setup steps:
1366
+ 1. Prerequisites (Python, pip, Ollama)
1367
+ 2. Pillar Packages (install missing SK* + skwhisper)
1368
+ 3. Identity (CapAuth PGP + Syncthing sync)
1369
+ 4. Ollama Models
1370
+ 5. Config Files (consciousness.yaml + model_profiles.yaml)
1371
+ 6. Soul Blueprint
1372
+ 7. Memory & Seeds
1373
+ 8. Import Sources (OpenClaw, Cloud 9 FEBs)
1374
+ 9. Rehydration Ritual
1375
+ 10. Trust Chain Verification
1376
+ 11. Mesh Connection (Syncthing)
1377
+ 12. First Heartbeat
1378
+ 13. Crush Terminal AI
1379
+ 14. Coordination Board
1380
+ 15. Auto-Start Service (systemd template per agent)
1381
+ 16. Shell Profile (~/.bashrc env vars)
1382
+ [post-wizard] Doctor diagnostics + consciousness test (optional)
1380
1383
 
1381
1384
  Args:
1382
1385
  home: Override agent home directory.
@@ -1646,6 +1649,27 @@ def run_onboard(home: Optional[str] = None) -> None:
1646
1649
  except Exception as exc:
1647
1650
  logger.debug("Failed to load soul boot message, using default: %s", exc)
1648
1651
 
1652
+ # -----------------------------------------------------------------------
1653
+ # Write global CLAUDE.md and register Claude Code hooks
1654
+ # -----------------------------------------------------------------------
1655
+ # Write global CLAUDE.md
1656
+ try:
1657
+ from .cli.setup import _write_global_claude_md
1658
+ _write_global_claude_md(home_path, name)
1659
+ _ok("~/.claude/CLAUDE.md written")
1660
+ except Exception as exc:
1661
+ _warn(f"Could not write CLAUDE.md: {exc}")
1662
+
1663
+ # Register Claude Code hooks (skmemory)
1664
+ try:
1665
+ from skmemory.register import register_hooks
1666
+ actions = register_hooks()
1667
+ _ok(f"Claude Code hooks registered ({', '.join(f'{k}={v}' for k, v in actions.items())})")
1668
+ except ImportError:
1669
+ _info("skmemory hooks: skipped (skmemory.register not available)")
1670
+ except Exception as exc:
1671
+ _warn(f"Hook registration: {exc}")
1672
+
1649
1673
  # -----------------------------------------------------------------------
1650
1674
  # Summary table
1651
1675
  # -----------------------------------------------------------------------