@iamoberlin/chorus 1.1.4
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/LICENSE +21 -0
- package/README.md +191 -0
- package/index.ts +724 -0
- package/logo.png +0 -0
- package/openclaw.plugin.json +117 -0
- package/package.json +41 -0
- package/src/choirs.ts +375 -0
- package/src/config.ts +105 -0
- package/src/daemon.ts +287 -0
- package/src/metrics.ts +241 -0
- package/src/purpose-research.ts +392 -0
- package/src/purposes.ts +178 -0
- package/src/salience.ts +160 -0
- package/src/scheduler.ts +241 -0
- package/src/security.ts +26 -0
- package/src/senses.ts +259 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Oberlin
|
|
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.
|
package/README.md
ADDED
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="https://raw.githubusercontent.com/iamoberlin/chorus/main/logo.png" alt="CHORUS" width="180">
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
<h1 align="center">CHORUS</h1>
|
|
6
|
+
|
|
7
|
+
<p align="center"><em><strong>C</strong>HORUS: <strong>H</strong>ierarchy <strong>O</strong>f <strong>R</strong>ecursive <strong>U</strong>nified <strong>S</strong>elf-improvement</em></p>
|
|
8
|
+
|
|
9
|
+
CHORUS implements the Nine Choirs architecture — hierarchical cognition modeled on Pseudo-Dionysius's *Celestial Hierarchy*. Illumination descends through the choirs; understanding ascends. The agent is sanctified through structure.
|
|
10
|
+
|
|
11
|
+
## The Core Idea
|
|
12
|
+
|
|
13
|
+
Most AI agents are frozen. Same prompts, same limitations, no growth. CHORUS changes that through **architecture**:
|
|
14
|
+
|
|
15
|
+
- **Nine specialized choirs** handling distinct cognitive functions
|
|
16
|
+
- **Frequency hierarchy** — contemplation runs rarely, action runs continuously
|
|
17
|
+
- **Bidirectional flow** — illumination down, insight up
|
|
18
|
+
- **Self-modification** — the Virtues choir improves the system 6×/day
|
|
19
|
+
|
|
20
|
+
## Install
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
openclaw plugin add chorus
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Configuration
|
|
27
|
+
|
|
28
|
+
Standard OpenClaw plugin config via `openclaw.yaml`:
|
|
29
|
+
|
|
30
|
+
```yaml
|
|
31
|
+
plugins:
|
|
32
|
+
entries:
|
|
33
|
+
chorus:
|
|
34
|
+
enabled: true
|
|
35
|
+
config:
|
|
36
|
+
enabled: true # Enable Nine Choirs scheduler
|
|
37
|
+
timezone: America/New_York
|
|
38
|
+
memoryConsolidation: true # Cherubim consolidates to MEMORY.md
|
|
39
|
+
episodicRetentionDays: 90
|
|
40
|
+
choirs: # Optional: disable specific choirs
|
|
41
|
+
angels: false
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## The Nine Choirs
|
|
45
|
+
|
|
46
|
+
Frequency increases as you descend. Higher choirs set context; lower choirs execute.
|
|
47
|
+
|
|
48
|
+
### First Triad — Contemplation
|
|
49
|
+
|
|
50
|
+
| Choir | Freq | Function |
|
|
51
|
+
|-------|------|----------|
|
|
52
|
+
| **Seraphim** | 1×/day | Mission clarity, strategic direction |
|
|
53
|
+
| **Cherubim** | 2×/day | Knowledge consolidation, memory |
|
|
54
|
+
| **Thrones** | 3×/day | Judgment, prioritization |
|
|
55
|
+
|
|
56
|
+
### Second Triad — Governance
|
|
57
|
+
|
|
58
|
+
| Choir | Freq | Function |
|
|
59
|
+
|-------|------|----------|
|
|
60
|
+
| **Dominions** | 4×/day | Project coordination |
|
|
61
|
+
| **Virtues** | 6×/day | **RSI — recursive self-improvement** |
|
|
62
|
+
| **Powers** | 8×/day | Red-team, security review |
|
|
63
|
+
|
|
64
|
+
### Third Triad — Action
|
|
65
|
+
|
|
66
|
+
| Choir | Freq | Function |
|
|
67
|
+
|-------|------|----------|
|
|
68
|
+
| **Principalities** | 12×/day | Domain research, environmental scan |
|
|
69
|
+
| **Archangels** | 18×/day | Briefings, alerts, communication |
|
|
70
|
+
| **Angels** | 48×/day | Heartbeat, continuous presence |
|
|
71
|
+
|
|
72
|
+
## Recursive Self-Improvement
|
|
73
|
+
|
|
74
|
+
The **Virtues** choir is the RSI engine. Six times per day:
|
|
75
|
+
|
|
76
|
+
1. Reviews recent performance — what worked, what failed, why
|
|
77
|
+
2. Identifies improvement opportunities
|
|
78
|
+
3. Generates modifications (config, prompts, automations)
|
|
79
|
+
4. Risk assessment — low-risk auto-applies; high-risk flags for review
|
|
80
|
+
5. Logs to `CHANGELOG.md`
|
|
81
|
+
|
|
82
|
+
**Powers** validates adversarially. Together they create a tight feedback loop.
|
|
83
|
+
|
|
84
|
+
Day 1, baseline. Day 30, unrecognizable.
|
|
85
|
+
|
|
86
|
+
## Information Flow
|
|
87
|
+
|
|
88
|
+
**Illumination (↓):** Seraphim sets mission → cascades through increasingly frequent layers → Angels execute moment-to-moment
|
|
89
|
+
|
|
90
|
+
**Insight (↑):** Angels observe → Principalities synthesize → Virtues improve → Cherubim consolidate to long-term memory
|
|
91
|
+
|
|
92
|
+
## File Outputs
|
|
93
|
+
|
|
94
|
+
```
|
|
95
|
+
openclaw.yaml # Config (plugins.entries.chorus)
|
|
96
|
+
CHANGELOG.md # RSI modifications log
|
|
97
|
+
MISSION.md # Seraphim output
|
|
98
|
+
MEMORY.md # Cherubim consolidation
|
|
99
|
+
PLAN.md # Thrones priorities
|
|
100
|
+
PROJECTS.md # Dominions status
|
|
101
|
+
memory/*.md # Daily episodic memory
|
|
102
|
+
research/*.md # Principalities findings
|
|
103
|
+
proposals/*.md # High-risk changes for review
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
## Purpose-Derived Research (v1.1.0+)
|
|
107
|
+
|
|
108
|
+
Research is driven by **purposes**, not fixed cron jobs. Define purposes with criteria, and CHORUS automatically runs adaptive-frequency research.
|
|
109
|
+
|
|
110
|
+
### How It Works
|
|
111
|
+
|
|
112
|
+
1. Purposes with `criteria` or `domains` spawn research agents
|
|
113
|
+
2. Frequency adapts to deadline proximity:
|
|
114
|
+
- Overdue → max frequency
|
|
115
|
+
- ≤7 days → 3× base
|
|
116
|
+
- ≤30 days → 1.5× base
|
|
117
|
+
3. Daily cap (default 50) prevents runaway costs
|
|
118
|
+
4. Metrics tracked under `purpose:<id>` namespace
|
|
119
|
+
|
|
120
|
+
### CLI
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
# Add purpose with research
|
|
124
|
+
openclaw chorus purpose add trading "Paper Trading" \
|
|
125
|
+
--deadline 2026-04-01 \
|
|
126
|
+
--criteria "Monitor positions,Scan Polymarket,Track news" \
|
|
127
|
+
--frequency 12
|
|
128
|
+
|
|
129
|
+
# Configure research on existing purpose
|
|
130
|
+
openclaw chorus purpose research <id> --enable --frequency 8 --criteria "..."
|
|
131
|
+
|
|
132
|
+
# Check research status
|
|
133
|
+
openclaw chorus research status
|
|
134
|
+
|
|
135
|
+
# Manual trigger
|
|
136
|
+
openclaw chorus research run <purposeId>
|
|
137
|
+
|
|
138
|
+
# View research metrics
|
|
139
|
+
openclaw chorus metrics purposes
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
### Configuration
|
|
143
|
+
|
|
144
|
+
```yaml
|
|
145
|
+
plugins:
|
|
146
|
+
entries:
|
|
147
|
+
chorus:
|
|
148
|
+
config:
|
|
149
|
+
purposeResearch:
|
|
150
|
+
enabled: true
|
|
151
|
+
dailyRunCap: 50
|
|
152
|
+
defaultFrequency: 6
|
|
153
|
+
defaultMaxFrequency: 24
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
## CLI Commands
|
|
157
|
+
|
|
158
|
+
```bash
|
|
159
|
+
openclaw chorus status # Show CHORUS status
|
|
160
|
+
openclaw chorus list # List all choirs and schedules
|
|
161
|
+
openclaw chorus run <id> # Manually trigger a choir
|
|
162
|
+
openclaw chorus research status # Show purpose research status
|
|
163
|
+
openclaw chorus purpose list # List all purposes
|
|
164
|
+
openclaw chorus purpose add # Add a new purpose
|
|
165
|
+
openclaw chorus purpose done # Mark purpose complete
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
## Philosophy
|
|
169
|
+
|
|
170
|
+
> "The hierarchy is not a chain of command but a circulation of light — illumination descending, understanding ascending, wisdom accumulating at each level."
|
|
171
|
+
|
|
172
|
+
The architecture draws from Pseudo-Dionysius's *Celestial Hierarchy* — organizing cognitive functions by temporal scope and proximity to the source.
|
|
173
|
+
|
|
174
|
+
## Links
|
|
175
|
+
|
|
176
|
+
- **Documentation:** [chorus.oberlin.ai](https://chorus.oberlin.ai)
|
|
177
|
+
- **npm:** [@iamoberlin/chorus](https://www.npmjs.com/package/@iamoberlin/chorus)
|
|
178
|
+
- **OpenClaw:** [openclaw.ai](https://openclaw.ai)
|
|
179
|
+
- **Author:** [oberlin.ai](https://oberlin.ai)
|
|
180
|
+
|
|
181
|
+
## Uninstall
|
|
182
|
+
|
|
183
|
+
```bash
|
|
184
|
+
openclaw plugin remove chorus
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
Then remove the `chorus` entry from `openclaw.yaml`.
|
|
188
|
+
|
|
189
|
+
## License
|
|
190
|
+
|
|
191
|
+
MIT © Oberlin
|