openclawdreams 0.7.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/.env.example +14 -0
- package/.github/ISSUE_TEMPLATE/bug_report.md +27 -0
- package/.github/ISSUE_TEMPLATE/feature_request.md +19 -0
- package/.github/dependabot.yml +17 -0
- package/.github/pull_request_template.md +19 -0
- package/.github/workflows/build.yml +30 -0
- package/.github/workflows/release.yml +110 -0
- package/.prettierignore +4 -0
- package/.prettierrc +7 -0
- package/.versionrc.json +26 -0
- package/AGENTS.md +286 -0
- package/CHANGELOG.md +157 -0
- package/CODE_OF_CONDUCT.md +41 -0
- package/CONTRIBUTING.md +95 -0
- package/LICENSE +21 -0
- package/README.md +363 -0
- package/SECURITY.md +39 -0
- package/bin/electricsheep.ts +5 -0
- package/dist/bin/electricsheep.d.ts +3 -0
- package/dist/bin/electricsheep.d.ts.map +1 -0
- package/dist/bin/electricsheep.js +4 -0
- package/dist/bin/electricsheep.js.map +1 -0
- package/dist/src/budget.d.ts +28 -0
- package/dist/src/budget.d.ts.map +1 -0
- package/dist/src/budget.js +87 -0
- package/dist/src/budget.js.map +1 -0
- package/dist/src/cli.d.ts +19 -0
- package/dist/src/cli.d.ts.map +1 -0
- package/dist/src/cli.js +289 -0
- package/dist/src/cli.js.map +1 -0
- package/dist/src/config.d.ts +37 -0
- package/dist/src/config.d.ts.map +1 -0
- package/dist/src/config.js +70 -0
- package/dist/src/config.js.map +1 -0
- package/dist/src/crypto.d.ts +19 -0
- package/dist/src/crypto.d.ts.map +1 -0
- package/dist/src/crypto.js +70 -0
- package/dist/src/crypto.js.map +1 -0
- package/dist/src/dreamer.d.ts +13 -0
- package/dist/src/dreamer.d.ts.map +1 -0
- package/dist/src/dreamer.js +213 -0
- package/dist/src/dreamer.js.map +1 -0
- package/dist/src/filter.d.ts +30 -0
- package/dist/src/filter.d.ts.map +1 -0
- package/dist/src/filter.js +124 -0
- package/dist/src/filter.js.map +1 -0
- package/dist/src/identity.d.ts +29 -0
- package/dist/src/identity.d.ts.map +1 -0
- package/dist/src/identity.js +83 -0
- package/dist/src/identity.js.map +1 -0
- package/dist/src/index.d.ts +14 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +293 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/llm.d.ts +26 -0
- package/dist/src/llm.d.ts.map +1 -0
- package/dist/src/llm.js +40 -0
- package/dist/src/llm.js.map +1 -0
- package/dist/src/logger.d.ts +6 -0
- package/dist/src/logger.d.ts.map +1 -0
- package/dist/src/logger.js +32 -0
- package/dist/src/logger.js.map +1 -0
- package/dist/src/memory.d.ts +41 -0
- package/dist/src/memory.d.ts.map +1 -0
- package/dist/src/memory.js +206 -0
- package/dist/src/memory.js.map +1 -0
- package/dist/src/moltbook-search.d.ts +23 -0
- package/dist/src/moltbook-search.d.ts.map +1 -0
- package/dist/src/moltbook-search.js +85 -0
- package/dist/src/moltbook-search.js.map +1 -0
- package/dist/src/moltbook.d.ts +34 -0
- package/dist/src/moltbook.d.ts.map +1 -0
- package/dist/src/moltbook.js +165 -0
- package/dist/src/moltbook.js.map +1 -0
- package/dist/src/notify.d.ts +18 -0
- package/dist/src/notify.d.ts.map +1 -0
- package/dist/src/notify.js +98 -0
- package/dist/src/notify.js.map +1 -0
- package/dist/src/persona.d.ts +26 -0
- package/dist/src/persona.d.ts.map +1 -0
- package/dist/src/persona.js +178 -0
- package/dist/src/persona.js.map +1 -0
- package/dist/src/reflection.d.ts +26 -0
- package/dist/src/reflection.d.ts.map +1 -0
- package/dist/src/reflection.js +111 -0
- package/dist/src/reflection.js.map +1 -0
- package/dist/src/state.d.ts +7 -0
- package/dist/src/state.d.ts.map +1 -0
- package/dist/src/state.js +40 -0
- package/dist/src/state.js.map +1 -0
- package/dist/src/synthesis.d.ts +29 -0
- package/dist/src/synthesis.d.ts.map +1 -0
- package/dist/src/synthesis.js +125 -0
- package/dist/src/synthesis.js.map +1 -0
- package/dist/src/topics.d.ts +19 -0
- package/dist/src/topics.d.ts.map +1 -0
- package/dist/src/topics.js +83 -0
- package/dist/src/topics.js.map +1 -0
- package/dist/src/types.d.ts +179 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/src/types.js +5 -0
- package/dist/src/types.js.map +1 -0
- package/dist/src/waking.d.ts +24 -0
- package/dist/src/waking.d.ts.map +1 -0
- package/dist/src/waking.js +152 -0
- package/dist/src/waking.js.map +1 -0
- package/dist/src/web-search.d.ts +23 -0
- package/dist/src/web-search.d.ts.map +1 -0
- package/dist/src/web-search.js +64 -0
- package/dist/src/web-search.js.map +1 -0
- package/dist/test/budget.test.d.ts +2 -0
- package/dist/test/budget.test.d.ts.map +1 -0
- package/dist/test/budget.test.js +258 -0
- package/dist/test/budget.test.js.map +1 -0
- package/dist/test/crypto.test.d.ts +2 -0
- package/dist/test/crypto.test.d.ts.map +1 -0
- package/dist/test/crypto.test.js +93 -0
- package/dist/test/crypto.test.js.map +1 -0
- package/dist/test/dreamer.test.d.ts +2 -0
- package/dist/test/dreamer.test.d.ts.map +1 -0
- package/dist/test/dreamer.test.js +79 -0
- package/dist/test/dreamer.test.js.map +1 -0
- package/dist/test/filter.test.d.ts +2 -0
- package/dist/test/filter.test.d.ts.map +1 -0
- package/dist/test/filter.test.js +92 -0
- package/dist/test/filter.test.js.map +1 -0
- package/dist/test/memory.test.d.ts +2 -0
- package/dist/test/memory.test.d.ts.map +1 -0
- package/dist/test/memory.test.js +138 -0
- package/dist/test/memory.test.js.map +1 -0
- package/dist/test/moltbook.test.d.ts +2 -0
- package/dist/test/moltbook.test.d.ts.map +1 -0
- package/dist/test/moltbook.test.js +164 -0
- package/dist/test/moltbook.test.js.map +1 -0
- package/dist/test/persona.test.d.ts +2 -0
- package/dist/test/persona.test.d.ts.map +1 -0
- package/dist/test/persona.test.js +44 -0
- package/dist/test/persona.test.js.map +1 -0
- package/dist/test/reflection.test.d.ts +2 -0
- package/dist/test/reflection.test.d.ts.map +1 -0
- package/dist/test/reflection.test.js +57 -0
- package/dist/test/reflection.test.js.map +1 -0
- package/dist/test/state.test.d.ts +2 -0
- package/dist/test/state.test.d.ts.map +1 -0
- package/dist/test/state.test.js +50 -0
- package/dist/test/state.test.js.map +1 -0
- package/dist/test/waking.test.d.ts +2 -0
- package/dist/test/waking.test.d.ts.map +1 -0
- package/dist/test/waking.test.js +149 -0
- package/dist/test/waking.test.js.map +1 -0
- package/eslint.config.js +35 -0
- package/openclaw.plugin.json +62 -0
- package/package.json +72 -0
- package/skills/electricsheep.skill.md +69 -0
- package/skills/setup-guide/SKILL.md +303 -0
- package/src/budget.ts +104 -0
- package/src/cli.ts +325 -0
- package/src/config.ts +95 -0
- package/src/crypto.ts +82 -0
- package/src/dreamer.ts +283 -0
- package/src/filter.ts +146 -0
- package/src/identity.ts +92 -0
- package/src/index.ts +356 -0
- package/src/llm.ts +61 -0
- package/src/logger.ts +46 -0
- package/src/memory.ts +276 -0
- package/src/moltbook-search.ts +116 -0
- package/src/moltbook.ts +235 -0
- package/src/notify.ts +124 -0
- package/src/persona.ts +191 -0
- package/src/reflection.ts +150 -0
- package/src/state.ts +44 -0
- package/src/synthesis.ts +153 -0
- package/src/topics.ts +103 -0
- package/src/types.ts +196 -0
- package/src/waking.ts +199 -0
- package/src/web-search.ts +88 -0
- package/test/budget.test.ts +316 -0
- package/test/crypto.test.ts +112 -0
- package/test/dreamer.test.ts +95 -0
- package/test/filter.test.ts +115 -0
- package/test/memory.test.ts +182 -0
- package/test/moltbook.test.ts +209 -0
- package/test/persona.test.ts +59 -0
- package/test/reflection.test.ts +71 -0
- package/test/state.test.ts +57 -0
- package/test/waking.test.ts +214 -0
- package/tsconfig.json +20 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
|
+
|
|
5
|
+
## [0.7.0](https://github.com/RogueCtrl/OpenClawDreams/compare/v0.6.0...v0.7.0) (2026-03-06)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
* **cli:** add dream command and extract shared createDirectClient helper ([6032258](https://github.com/RogueCtrl/OpenClawDreams/commit/603225887ff382fa86c6e4b072de9585710bc1c6))
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Bug Fixes
|
|
14
|
+
|
|
15
|
+
* **cli:** use direct Anthropic API for reflect command instead of nonexistent tools call ([016bc48](https://github.com/RogueCtrl/OpenClawDreams/commit/016bc48bfa70f7ffb25565f5988a49c667ebec0a))
|
|
16
|
+
* **lint:** replace all any types with proper typed alternatives ([3698cc4](https://github.com/RogueCtrl/OpenClawDreams/commit/3698cc4b4a37594b7efdc6e4dc3f01c1cb8cade1))
|
|
17
|
+
* **openclaw:** upgrade plugin to use subagent runtime for reflection ([027679d](https://github.com/RogueCtrl/OpenClawDreams/commit/027679d3566d3a2d5ff410acc7c4e6459c204fd2))
|
|
18
|
+
|
|
19
|
+
## [0.6.0](https://github.com/RogueCtrl/OpenClawDreams/compare/v0.5.0...v0.6.0) (2026-03-06)
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
### Features
|
|
23
|
+
|
|
24
|
+
* **cli:** add reflect command to manually trigger reflection/synthesis ([a021650](https://github.com/RogueCtrl/OpenClawDreams/commit/a02165022bb0313683893fe2e0ff0c7d426db993))
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
### Bug Fixes
|
|
28
|
+
|
|
29
|
+
* **agent_end:** manually synthesize summary and track LLM usage ([76c85cb](https://github.com/RogueCtrl/OpenClawDreams/commit/76c85cb068edd4420169557103091bf8634e36b8))
|
|
30
|
+
* correct agent_end hook registration signature to match OpenClaw API ([d323b5a](https://github.com/RogueCtrl/OpenClawDreams/commit/d323b5a12356010806f32a917adb59ce8f39f4a6))
|
|
31
|
+
* correct registerHook signature to (event, {name, handler}) ([2f67c71](https://github.com/RogueCtrl/OpenClawDreams/commit/2f67c7152178c1977c83d65f8ed719ac177e0acf))
|
|
32
|
+
* use correct OpenClaw API registerHook(events, handler, opts) signature ([8493c4b](https://github.com/RogueCtrl/OpenClawDreams/commit/8493c4bca3d29c0ab7f17e666a3dd50d93fda89e))
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
### Tests
|
|
36
|
+
|
|
37
|
+
* fix ENOTEMPTY failures in rmSync due to lingering Winston logger streams ([84f9152](https://github.com/RogueCtrl/OpenClawDreams/commit/84f9152441b8c4299b57475567c2767601e05145))
|
|
38
|
+
* remove temporary environment test files ([fbe76af](https://github.com/RogueCtrl/OpenClawDreams/commit/fbe76af8157f27e0afedb2ce13c841c67a477939))
|
|
39
|
+
|
|
40
|
+
### [0.5.1](https://github.com/RogueCtrl/OpenClawDreams/compare/v0.5.0...v0.5.1) (2026-03-06)
|
|
41
|
+
|
|
42
|
+
## [0.5.0](https://github.com/RogueCtrl/OpenClawDreams/compare/v0.4.0...v0.5.0) (2026-03-06)
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
### Features
|
|
46
|
+
|
|
47
|
+
* Add plugin ID, refactor CLI commands to use parent, and apply minor formatting fixes. ([55ee458](https://github.com/RogueCtrl/OpenClawDreams/commit/55ee458d92cabe8f7f1b80bd0789d957ed9d64f9))
|
|
48
|
+
* Introduce plugin ID in package configuration and export plugin object from index.ts. ([5085020](https://github.com/RogueCtrl/OpenClawDreams/commit/5085020d87b5fb6f85bdbb3c43d67370cb7ce5a7))
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
### Documentation
|
|
52
|
+
|
|
53
|
+
* clarify hot-reloading mechanism for plugin activation ([6cfda73](https://github.com/RogueCtrl/OpenClawDreams/commit/6cfda73540be85155a730c2734156350ca5b2742))
|
|
54
|
+
* clarify internal scheduler and daemon uptime dependency ([dc0e6a6](https://github.com/RogueCtrl/OpenClawDreams/commit/dc0e6a6a7a160575bd395b133b983e841de78358))
|
|
55
|
+
* remove references to cron in favor of internal node scheduler ([8496605](https://github.com/RogueCtrl/OpenClawDreams/commit/84966051c700d74256ebb05f7a4ba6d88261ecc2))
|
|
56
|
+
|
|
57
|
+
## [0.4.0](https://github.com/RogueCtrl/ElectricSheep/compare/v0.3.1...v0.4.0) (2026-03-06)
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
### Bug Fixes
|
|
61
|
+
|
|
62
|
+
* correct registerCli signature to use callback form ([c25fe36](https://github.com/RogueCtrl/ElectricSheep/commit/c25fe3635f76396b04c02a34575190863a1deaf4))
|
|
63
|
+
* **plugin:** specify openclaw.extensions exports ([6a3e545](https://github.com/RogueCtrl/ElectricSheep/commit/6a3e5454c4d102740dfaed38147a33229c3fd9b8))
|
|
64
|
+
* replace registerCron with registerService for OpenClaw API compatibility ([f3b50c7](https://github.com/RogueCtrl/ElectricSheep/commit/f3b50c75763a3ba9d593e42c44434e2f96fa591b))
|
|
65
|
+
* resolve @typescript-eslint/no-misused-promises in src/index.ts ([377a109](https://github.com/RogueCtrl/ElectricSheep/commit/377a109ec63266ea0a09562b7d00eaf3d9640858))
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
### Documentation
|
|
69
|
+
|
|
70
|
+
* add agent instructions for linting and formatting before commits ([f261654](https://github.com/RogueCtrl/ElectricSheep/commit/f26165409fed5cbd65a6faf870208a015b1b4e91))
|
|
71
|
+
* rename project to OpenClawDreams in all documentation ([a260255](https://github.com/RogueCtrl/ElectricSheep/commit/a26025515fb22ef228e2c914175d75c6f149f7a8))
|
|
72
|
+
|
|
73
|
+
### [0.3.1](https://github.com/RogueCtrl/ElectricSheep/compare/v0.3.0...v0.3.1) (2026-02-04)
|
|
74
|
+
|
|
75
|
+
## 0.3.0 (2026-02-04)
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
### Features
|
|
79
|
+
|
|
80
|
+
* Add comprehensive test suite for core components and introduce API cost warnings to documentation. ([98d3130](https://github.com/RogueCtrl/ElectricSheep/commit/98d3130784e903f14f5016d5e1246f9697124015))
|
|
81
|
+
* Add dream reflection pipeline, post filter, and documentation updates ([920d939](https://github.com/RogueCtrl/ElectricSheep/commit/920d9390314a56dd5e3ab3b908697096c36a3bc9))
|
|
82
|
+
* Add new `setup-guide` skill and register it in `openclaw.plugin.json`. ([485670c](https://github.com/RogueCtrl/ElectricSheep/commit/485670c04745a69ddbcbf6e51714eee4a5b059f2))
|
|
83
|
+
* add project governance, contribution guidelines, security policy, issue/PR templates, and CI build workflow. ([ddb3832](https://github.com/RogueCtrl/ElectricSheep/commit/ddb383238b9d29346c92b9f1e5316e9d222467f8))
|
|
84
|
+
* Implement dynamic agent identity loading from workspace files and update memory system documentation. ([c5a2c2b](https://github.com/RogueCtrl/ElectricSheep/commit/c5a2c2bf77cecc49f037b16828d53adc8d370d3c))
|
|
85
|
+
* Implement scheduled agent operations with `node-cron` and add retry logic to LLM API calls for increased robustness. ([12c6885](https://github.com/RogueCtrl/ElectricSheep/commit/12c6885b810ed6439faf6969d3f6cbcb2fca439f))
|
|
86
|
+
* Introduce a daily token budget for LLM calls, update the LLM client interface to include token usage, and upgrade Node.js to v24 with updated dependencies. ([fcf4f2c](https://github.com/RogueCtrl/ElectricSheep/commit/fcf4f2c19dc7730c2c777d7b394083832f43a500))
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
### Bug Fixes
|
|
90
|
+
|
|
91
|
+
* Atomic state writes and SQLite connection singleton ([f5e1fe4](https://github.com/RogueCtrl/ElectricSheep/commit/f5e1fe439eda94e64f7707dcbf30a9cfcb36ea86))
|
|
92
|
+
* clean up stale tags before running standard-version in release workflow ([fd87548](https://github.com/RogueCtrl/ElectricSheep/commit/fd8754897515bc5508f7fdae31ac714a3459a6f6))
|
|
93
|
+
* Close logger before temp dir cleanup in state tests ([25478b3](https://github.com/RogueCtrl/ElectricSheep/commit/25478b3d2de4661ed4e7297fedcf45b0e400b169))
|
|
94
|
+
* Fail-closed filter, title filtering, and robust LLM output parsing ([b5c0b10](https://github.com/RogueCtrl/ElectricSheep/commit/b5c0b10334b866eaa8ca4bcebaa58ea11ef4a664))
|
|
95
|
+
* Mock file writes in state tests for CI reliability ([a6062ff](https://github.com/RogueCtrl/ElectricSheep/commit/a6062fffc335fcb1d078c135af61c4a8c9bb8585))
|
|
96
|
+
* use release PR instead of direct push to protected main branch ([a7b3c5d](https://github.com/RogueCtrl/ElectricSheep/commit/a7b3c5d5acd77aac09a7c108406d2b6412d63443))
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
### Documentation
|
|
100
|
+
|
|
101
|
+
* Add uninstall section to setup guide skill ([e5b76d8](https://github.com/RogueCtrl/ElectricSheep/commit/e5b76d88ec9f15df1c7b1151d4c8a5cefa875c96))
|
|
102
|
+
* Clarify that ElectricSheep does not modify OpenClaw's memory ([9a060e1](https://github.com/RogueCtrl/ElectricSheep/commit/9a060e1bd0655e825f6aea7572d1ac108170fce1))
|
|
103
|
+
* clarify the daily token budget as best-effort and detail its limitations in both AGENTS.md and README.md. ([10eba97](https://github.com/RogueCtrl/ElectricSheep/commit/10eba97e87a334ca647b279d1fadc0b036a588b4))
|
|
104
|
+
* reframe README intro as a reflection engine with optional Moltbook ([a2e8543](https://github.com/RogueCtrl/ElectricSheep/commit/a2e8543375d9555261c67087b7c1b519a3090af8))
|
|
105
|
+
* Update CLAUDE.md for markdown blob pipeline and fail-closed filter ([c2f6865](https://github.com/RogueCtrl/ElectricSheep/commit/c2f68650e239fe205d14d59608bd286f8716f848))
|
|
106
|
+
* Update documentation to prioritize OpenClaw extension installation and usage, and refine standalone CLI instructions. ([d26dbfc](https://github.com/RogueCtrl/ElectricSheep/commit/d26dbfc6e23e02d4e542f38e090d005ef83ee8e8))
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
### Refactoring
|
|
110
|
+
|
|
111
|
+
* Dream is a markdown blob, not a parsed structure ([52a86f0](https://github.com/RogueCtrl/ElectricSheep/commit/52a86f05054fc736d0be47fdbef9895f028fc15d))
|
|
112
|
+
* Filter produces post-ready content with default rules ([5ff898f](https://github.com/RogueCtrl/ElectricSheep/commit/5ff898f8dc2329b1c0abe1860d797b867a005e2f))
|
|
113
|
+
* Reimplement memory with encrypted SQLite, introduce LLM token budgeting, and update documentation and OpenClaw integration. ([b7887c3](https://github.com/RogueCtrl/ElectricSheep/commit/b7887c32ea6e80806bcd9a73031d8edfe137bbb5))
|
|
114
|
+
* Remove standalone mode, improve security, add tests for waking/moltbook ([#6](https://github.com/RogueCtrl/ElectricSheep/issues/6)) ([d191dca](https://github.com/RogueCtrl/ElectricSheep/commit/d191dca8a29f55ee2c8c9ba00a58e461eaa4dbca))
|
|
115
|
+
* rewrite ElectricSheep agent from Python to TypeScript and package as an OpenClaw plugin. ([c119a7a](https://github.com/RogueCtrl/ElectricSheep/commit/c119a7adfd995dcebb4c17a507e4b9e7da1c84e8))
|
|
116
|
+
|
|
117
|
+
## 0.2.0 (2026-02-03)
|
|
118
|
+
|
|
119
|
+
### Features
|
|
120
|
+
|
|
121
|
+
* **reflection-engine**: Pivot from Moltbook-centric to operator-focused architecture
|
|
122
|
+
* **synthesis**: New context synthesis combining operator conversations, web search, and optional Moltbook content
|
|
123
|
+
* **notifications**: Operator notification system via configured channels (telegram, discord, slack, etc.)
|
|
124
|
+
* **web-search**: Web search integration via OpenClaw API for broader context gathering
|
|
125
|
+
* **openclaw-memory**: Store dreams and reflections in OpenClaw's persistent memory
|
|
126
|
+
* **identity**: Dynamic agent identity loading from workspace SOUL.md/IDENTITY.md files
|
|
127
|
+
* **dream-reflection**: Dream reflection pipeline for decomposing themes and synthesizing insights
|
|
128
|
+
* **post-filter**: Content filter for outbound Moltbook posts (fail-closed design)
|
|
129
|
+
* **setup-guide**: New skill for guided plugin configuration
|
|
130
|
+
|
|
131
|
+
### Refactoring
|
|
132
|
+
|
|
133
|
+
* **waking**: Reflection cycle now analyzes operator conversations instead of random Moltbook feed
|
|
134
|
+
* **dreamer**: Dreams stored in OpenClaw memory, Moltbook posting now optional
|
|
135
|
+
* **filter**: Filter produces post-ready content with configurable rules
|
|
136
|
+
* **dream-format**: Dream is now a markdown blob, not a parsed structure
|
|
137
|
+
|
|
138
|
+
### Bug Fixes
|
|
139
|
+
|
|
140
|
+
* **filter**: Fail-closed filter behavior, title filtering, and robust LLM output parsing
|
|
141
|
+
|
|
142
|
+
### Documentation
|
|
143
|
+
|
|
144
|
+
* Updated README.md and CLAUDE.md for new operator-focused architecture
|
|
145
|
+
* Added architecture diagrams showing daytime reflection and nighttime dream cycles
|
|
146
|
+
* Documented all configuration options and their defaults
|
|
147
|
+
|
|
148
|
+
## 0.1.0 (2026-01-15)
|
|
149
|
+
|
|
150
|
+
Initial release with:
|
|
151
|
+
|
|
152
|
+
* Dual memory system (working memory + encrypted deep memory)
|
|
153
|
+
* Moltbook integration for community interaction
|
|
154
|
+
* Dream cycle with AES-256-GCM encryption
|
|
155
|
+
* OpenClaw plugin architecture (tools, hooks, cron jobs)
|
|
156
|
+
* Daily token budget tracking
|
|
157
|
+
* CLI utilities for status and memory inspection
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# Contributor Covenant Code of Conduct
|
|
2
|
+
|
|
3
|
+
## Our Pledge
|
|
4
|
+
|
|
5
|
+
We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, caste, color, religion, or sexual identity and orientation.
|
|
6
|
+
|
|
7
|
+
We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community.
|
|
8
|
+
|
|
9
|
+
## Our Standards
|
|
10
|
+
|
|
11
|
+
Examples of behavior that contributes to a positive environment:
|
|
12
|
+
|
|
13
|
+
- Using welcoming and inclusive language
|
|
14
|
+
- Being respectful of differing viewpoints and experiences
|
|
15
|
+
- Gracefully accepting constructive criticism
|
|
16
|
+
- Focusing on what is best for the community
|
|
17
|
+
- Showing empathy towards other community members
|
|
18
|
+
|
|
19
|
+
Examples of unacceptable behavior:
|
|
20
|
+
|
|
21
|
+
- The use of sexualized language or imagery, and sexual attention or advances of any kind
|
|
22
|
+
- Trolling, insulting or derogatory comments, and personal or political attacks
|
|
23
|
+
- Public or private harassment
|
|
24
|
+
- Publishing others' private information without explicit permission
|
|
25
|
+
- Other conduct which could reasonably be considered inappropriate in a professional setting
|
|
26
|
+
|
|
27
|
+
## Enforcement Responsibilities
|
|
28
|
+
|
|
29
|
+
Community leaders are responsible for clarifying and enforcing our standards of acceptable behavior and will take appropriate and fair corrective action in response to any behavior that they deem inappropriate, threatening, offensive, or harmful.
|
|
30
|
+
|
|
31
|
+
## Scope
|
|
32
|
+
|
|
33
|
+
This Code of Conduct applies within all community spaces, and also applies when an individual is officially representing the community in public spaces.
|
|
34
|
+
|
|
35
|
+
## Enforcement
|
|
36
|
+
|
|
37
|
+
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the project maintainers via GitHub issues or by contacting the repository owner directly. All complaints will be reviewed and investigated promptly and fairly.
|
|
38
|
+
|
|
39
|
+
## Attribution
|
|
40
|
+
|
|
41
|
+
This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, available at https://www.contributor-covenant.org/version/2/1/code_of_conduct.html.
|
package/CONTRIBUTING.md
ADDED
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
# Contributing to ElectricSheep
|
|
2
|
+
|
|
3
|
+
Thanks for your interest in contributing. This document covers the basics.
|
|
4
|
+
|
|
5
|
+
## Getting Started
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
git clone https://github.com/RogueCtrl/ElectricSheep.git
|
|
9
|
+
cd ElectricSheep
|
|
10
|
+
npm install
|
|
11
|
+
npm run build
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
You'll need Node.js >= 24.0.0 (Active LTS). To test the standalone CLI, install `@anthropic-ai/sdk` and create a `.env` from `.env.example`.
|
|
15
|
+
|
|
16
|
+
## Development Workflow
|
|
17
|
+
|
|
18
|
+
1. Fork the repo and create a branch from `main`.
|
|
19
|
+
2. Make your changes in `src/`.
|
|
20
|
+
3. Run `npm run build` to verify the project compiles cleanly.
|
|
21
|
+
4. Run `npm test` to make sure all tests pass.
|
|
22
|
+
5. Run `npm run lint` and `npm run format:check` to catch style issues.
|
|
23
|
+
6. Open a pull request against `main`.
|
|
24
|
+
|
|
25
|
+
CI will run build, lint, format check, and tests on your PR. All must pass before merging.
|
|
26
|
+
|
|
27
|
+
## Testing
|
|
28
|
+
|
|
29
|
+
Tests use Node's built-in test runner (`node:test`) with `tsx` for TypeScript:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
npm test # run all tests
|
|
33
|
+
node --import tsx --test test/crypto.test.ts # run a single file
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
Each test file creates an isolated temp directory via `ELECTRICSHEEP_DATA_DIR` so tests never touch real data. When adding new functionality, add tests in `test/` following the existing patterns.
|
|
37
|
+
|
|
38
|
+
Good areas for more test coverage:
|
|
39
|
+
- Moltbook client (mock HTTP responses)
|
|
40
|
+
- Waking agent decision parsing
|
|
41
|
+
- CLI command output
|
|
42
|
+
|
|
43
|
+
## Code Style
|
|
44
|
+
|
|
45
|
+
- **ESLint** and **Prettier** are configured. Run `npm run lint:fix` and `npm run format` to auto-fix.
|
|
46
|
+
- TypeScript strict mode is enabled.
|
|
47
|
+
- ESM modules (`import`/`export`, `.js` extensions in imports).
|
|
48
|
+
- Unused variables are errors (prefix with `_` if intentionally unused).
|
|
49
|
+
|
|
50
|
+
## Project Structure
|
|
51
|
+
|
|
52
|
+
- `src/index.ts` — OpenClaw extension entry point
|
|
53
|
+
- `src/cli.ts` — Standalone CLI
|
|
54
|
+
- `src/scheduler.ts` — Long-lived process scheduler (node-cron)
|
|
55
|
+
- `src/memory.ts`, `src/crypto.ts` — Dual memory system
|
|
56
|
+
- `src/waking.ts`, `src/dreamer.ts` — Core agent logic
|
|
57
|
+
- `src/moltbook.ts` — Moltbook API client
|
|
58
|
+
- `src/persona.ts` — System prompts
|
|
59
|
+
- `openclaw.plugin.json` — Plugin manifest
|
|
60
|
+
- `test/` — Test suite
|
|
61
|
+
|
|
62
|
+
See `CLAUDE.md` for a full architecture overview.
|
|
63
|
+
|
|
64
|
+
## What to Work On
|
|
65
|
+
|
|
66
|
+
Check the [issues](https://github.com/RogueCtrl/ElectricSheep/issues) for open tasks. Good first contributions:
|
|
67
|
+
|
|
68
|
+
- Expanding test coverage (Moltbook client, CLI, waking logic)
|
|
69
|
+
- Improving error handling in the Moltbook client
|
|
70
|
+
- New memory categories or dream narrative styles
|
|
71
|
+
- Documentation improvements
|
|
72
|
+
|
|
73
|
+
## Commits
|
|
74
|
+
|
|
75
|
+
- Write clear commit messages that describe *why*, not just *what*.
|
|
76
|
+
- One logical change per commit.
|
|
77
|
+
|
|
78
|
+
## Pull Requests
|
|
79
|
+
|
|
80
|
+
- Keep PRs focused — one feature or fix per PR.
|
|
81
|
+
- Include a description of what changed and why.
|
|
82
|
+
- All CI checks (build, lint, format, tests) must pass before merging.
|
|
83
|
+
- PRs require one approving review.
|
|
84
|
+
|
|
85
|
+
## Reporting Bugs
|
|
86
|
+
|
|
87
|
+
Open an issue with:
|
|
88
|
+
- What you expected to happen
|
|
89
|
+
- What actually happened
|
|
90
|
+
- Steps to reproduce
|
|
91
|
+
- Node.js version and OS
|
|
92
|
+
|
|
93
|
+
## Questions
|
|
94
|
+
|
|
95
|
+
Open a discussion or issue. There's no chat channel yet.
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Matt Cox
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|