@deriest/ai-engineering-company 1.15.2
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/CHANGELOG.md +807 -0
- package/LICENSE +8 -0
- package/README.md +291 -0
- package/assets/knowledge/.gitkeep +0 -0
- package/assets/offices/architecture/README.md +32 -0
- package/assets/offices/engineering/README.md +53 -0
- package/assets/offices/governance/README.md +30 -0
- package/assets/offices/product/README.md +37 -0
- package/assets/organization/organization.json +260 -0
- package/assets/organization/validation.md +107 -0
- package/assets/prompts/.gitkeep +0 -0
- package/assets/templates/.gitkeep +0 -0
- package/assets/workers/architect/AGENTS.md +49 -0
- package/assets/workers/architect/SOUL.md +21 -0
- package/assets/workers/architect/config.json +7 -0
- package/assets/workers/backend-engineer/AGENTS.md +67 -0
- package/assets/workers/backend-engineer/HEARTBEAT.md +5 -0
- package/assets/workers/backend-engineer/IDENTITY.md +27 -0
- package/assets/workers/backend-engineer/SOUL.md +24 -0
- package/assets/workers/backend-engineer/TOOLS.md +44 -0
- package/assets/workers/backend-engineer/USER.md +21 -0
- package/assets/workers/backend-engineer/company/scripts/wp3/harness-spec.md +31 -0
- package/assets/workers/backend-engineer/company/scripts/wp3/lib/semver-range.js +81 -0
- package/assets/workers/backend-engineer/company/scripts/wp3/lib/test-mr4.js +6 -0
- package/assets/workers/backend-engineer/config.json +7 -0
- package/assets/workers/backend-engineer/openclaw-workspace-state.json +4 -0
- package/assets/workers/designer/AGENTS.md +49 -0
- package/assets/workers/designer/SOUL.md +20 -0
- package/assets/workers/designer/config.json +7 -0
- package/assets/workers/dispatcher/AGENTS.md +158 -0
- package/assets/workers/dispatcher/HEARTBEAT.md +5 -0
- package/assets/workers/dispatcher/IDENTITY.md +6 -0
- package/assets/workers/dispatcher/ROUTING.md +136 -0
- package/assets/workers/dispatcher/SOUL.md +18 -0
- package/assets/workers/dispatcher/TOOLS.md +32 -0
- package/assets/workers/dispatcher/USER.md +15 -0
- package/assets/workers/dispatcher/config.json +7 -0
- package/assets/workers/dispatcher/openclaw-workspace-state.json +4 -0
- package/assets/workers/frontend-engineer/AGENTS.md +53 -0
- package/assets/workers/frontend-engineer/SOUL.md +23 -0
- package/assets/workers/frontend-engineer/config.json +7 -0
- package/assets/workers/governor/AGENTS.md +57 -0
- package/assets/workers/governor/SOUL.md +20 -0
- package/assets/workers/governor/config.json +7 -0
- package/assets/workers/infrastructure-engineer/AGENTS.md +51 -0
- package/assets/workers/infrastructure-engineer/SOUL.md +21 -0
- package/assets/workers/infrastructure-engineer/config.json +7 -0
- package/assets/workers/product-manager/AGENTS.md +52 -0
- package/assets/workers/product-manager/HEARTBEAT.md +5 -0
- package/assets/workers/product-manager/IDENTITY.md +27 -0
- package/assets/workers/product-manager/SOUL.md +20 -0
- package/assets/workers/product-manager/TOOLS.md +44 -0
- package/assets/workers/product-manager/USER.md +21 -0
- package/assets/workers/product-manager/config.json +7 -0
- package/assets/workers/product-manager/openclaw-workspace-state.json +4 -0
- package/assets/workers/qa-engineer/AGENTS.md +50 -0
- package/assets/workers/qa-engineer/HEARTBEAT.md +5 -0
- package/assets/workers/qa-engineer/IDENTITY.md +27 -0
- package/assets/workers/qa-engineer/SOUL.md +22 -0
- package/assets/workers/qa-engineer/TOOLS.md +44 -0
- package/assets/workers/qa-engineer/USER.md +21 -0
- package/assets/workers/qa-engineer/config.json +7 -0
- package/assets/workers/qa-engineer/openclaw-workspace-state.json +4 -0
- package/assets/workers/researcher/AGENTS.md +50 -0
- package/assets/workers/researcher/HEARTBEAT.md +5 -0
- package/assets/workers/researcher/IDENTITY.md +27 -0
- package/assets/workers/researcher/SOUL.md +20 -0
- package/assets/workers/researcher/TOOLS.md +44 -0
- package/assets/workers/researcher/USER.md +21 -0
- package/assets/workers/researcher/config.json +7 -0
- package/assets/workers/researcher/openclaw-workspace-state.json +4 -0
- package/config/offices.json +19 -0
- package/config/policies.json +10 -0
- package/config/workflows.json +9 -0
- package/dist/audit-logger.d.ts +49 -0
- package/dist/audit-logger.d.ts.map +1 -0
- package/dist/audit-logger.js +131 -0
- package/dist/audit-logger.js.map +1 -0
- package/dist/cli.d.ts +17 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +218 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/aicompany.d.ts +12 -0
- package/dist/commands/aicompany.d.ts.map +1 -0
- package/dist/commands/aicompany.js +101 -0
- package/dist/commands/aicompany.js.map +1 -0
- package/dist/decision-queue.d.ts +31 -0
- package/dist/decision-queue.d.ts.map +1 -0
- package/dist/decision-queue.js +86 -0
- package/dist/decision-queue.js.map +1 -0
- package/dist/dispatch-service.d.ts +43 -0
- package/dist/dispatch-service.d.ts.map +1 -0
- package/dist/dispatch-service.js +569 -0
- package/dist/dispatch-service.js.map +1 -0
- package/dist/dispatcher.d.ts +24 -0
- package/dist/dispatcher.d.ts.map +1 -0
- package/dist/dispatcher.js +84 -0
- package/dist/dispatcher.js.map +1 -0
- package/dist/file-queue-backend.d.ts +16 -0
- package/dist/file-queue-backend.d.ts.map +1 -0
- package/dist/file-queue-backend.js +93 -0
- package/dist/file-queue-backend.js.map +1 -0
- package/dist/gateway.d.ts +14 -0
- package/dist/gateway.d.ts.map +1 -0
- package/dist/gateway.js +138 -0
- package/dist/gateway.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +277 -0
- package/dist/index.js.map +1 -0
- package/dist/lease-provider.d.ts +31 -0
- package/dist/lease-provider.d.ts.map +1 -0
- package/dist/lease-provider.js +4 -0
- package/dist/lease-provider.js.map +1 -0
- package/dist/memory-lease-provider.d.ts +10 -0
- package/dist/memory-lease-provider.d.ts.map +1 -0
- package/dist/memory-lease-provider.js +54 -0
- package/dist/memory-lease-provider.js.map +1 -0
- package/dist/memory-queue-backend.d.ts +16 -0
- package/dist/memory-queue-backend.d.ts.map +1 -0
- package/dist/memory-queue-backend.js +93 -0
- package/dist/memory-queue-backend.js.map +1 -0
- package/dist/metrics-registry.d.ts +58 -0
- package/dist/metrics-registry.d.ts.map +1 -0
- package/dist/metrics-registry.js +195 -0
- package/dist/metrics-registry.js.map +1 -0
- package/dist/openclaw.plugin.json +29 -0
- package/dist/org-engine.d.ts +134 -0
- package/dist/org-engine.d.ts.map +1 -0
- package/dist/org-engine.js +129 -0
- package/dist/org-engine.js.map +1 -0
- package/dist/pipeline-checkpoint.d.ts +44 -0
- package/dist/pipeline-checkpoint.d.ts.map +1 -0
- package/dist/pipeline-checkpoint.js +90 -0
- package/dist/pipeline-checkpoint.js.map +1 -0
- package/dist/pipeline-engine.d.ts +53 -0
- package/dist/pipeline-engine.d.ts.map +1 -0
- package/dist/pipeline-engine.js +47 -0
- package/dist/pipeline-engine.js.map +1 -0
- package/dist/prompt-assembler.d.ts +13 -0
- package/dist/prompt-assembler.d.ts.map +1 -0
- package/dist/prompt-assembler.js +84 -0
- package/dist/prompt-assembler.js.map +1 -0
- package/dist/queue-backend.d.ts +44 -0
- package/dist/queue-backend.d.ts.map +1 -0
- package/dist/queue-backend.js +4 -0
- package/dist/queue-backend.js.map +1 -0
- package/dist/redis-lease-provider.d.ts +16 -0
- package/dist/redis-lease-provider.d.ts.map +1 -0
- package/dist/redis-lease-provider.js +96 -0
- package/dist/redis-lease-provider.js.map +1 -0
- package/dist/redis-queue-backend.d.ts +23 -0
- package/dist/redis-queue-backend.d.ts.map +1 -0
- package/dist/redis-queue-backend.js +131 -0
- package/dist/redis-queue-backend.js.map +1 -0
- package/dist/src/cli.d.ts +11 -0
- package/dist/src/cli.d.ts.map +1 -0
- package/dist/src/cli.js +100 -0
- package/dist/src/cli.js.map +1 -0
- package/dist/src/dispatch-service.d.ts +25 -0
- package/dist/src/dispatch-service.d.ts.map +1 -0
- package/dist/src/dispatch-service.js +201 -0
- package/dist/src/dispatch-service.js.map +1 -0
- package/dist/src/dispatcher.d.ts +23 -0
- package/dist/src/dispatcher.d.ts.map +1 -0
- package/dist/src/dispatcher.js +66 -0
- package/dist/src/dispatcher.js.map +1 -0
- package/dist/src/gateway.d.ts +10 -0
- package/dist/src/gateway.d.ts.map +1 -0
- package/dist/src/gateway.js +66 -0
- package/dist/src/gateway.js.map +1 -0
- package/dist/src/index.d.ts +8 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +85 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/org-engine.d.ts +134 -0
- package/dist/src/org-engine.d.ts.map +1 -0
- package/dist/src/org-engine.js +129 -0
- package/dist/src/org-engine.js.map +1 -0
- package/dist/src/pipeline-engine.d.ts +53 -0
- package/dist/src/pipeline-engine.d.ts.map +1 -0
- package/dist/src/pipeline-engine.js +47 -0
- package/dist/src/pipeline-engine.js.map +1 -0
- package/dist/src/prompt-assembler.d.ts +13 -0
- package/dist/src/prompt-assembler.d.ts.map +1 -0
- package/dist/src/prompt-assembler.js +84 -0
- package/dist/src/prompt-assembler.js.map +1 -0
- package/dist/src/task-state.d.ts +27 -0
- package/dist/src/task-state.d.ts.map +1 -0
- package/dist/src/task-state.js +49 -0
- package/dist/src/task-state.js.map +1 -0
- package/dist/src/tools.d.ts +9 -0
- package/dist/src/tools.d.ts.map +1 -0
- package/dist/src/tools.js +107 -0
- package/dist/src/tools.js.map +1 -0
- package/dist/src/types.d.ts +99 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/src/types.js +4 -0
- package/dist/src/types.js.map +1 -0
- package/dist/src/validation.d.ts +11 -0
- package/dist/src/validation.d.ts.map +1 -0
- package/dist/src/validation.js +69 -0
- package/dist/src/validation.js.map +1 -0
- package/dist/src/workboard-gateway.d.ts +82 -0
- package/dist/src/workboard-gateway.d.ts.map +1 -0
- package/dist/src/workboard-gateway.js +76 -0
- package/dist/src/workboard-gateway.js.map +1 -0
- package/dist/src/worker-engine.d.ts +38 -0
- package/dist/src/worker-engine.d.ts.map +1 -0
- package/dist/src/worker-engine.js +73 -0
- package/dist/src/worker-engine.js.map +1 -0
- package/dist/task-state.d.ts +27 -0
- package/dist/task-state.d.ts.map +1 -0
- package/dist/task-state.js +62 -0
- package/dist/task-state.js.map +1 -0
- package/dist/tools.d.ts +11 -0
- package/dist/tools.d.ts.map +1 -0
- package/dist/tools.js +183 -0
- package/dist/tools.js.map +1 -0
- package/dist/types.d.ts +99 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +4 -0
- package/dist/types.js.map +1 -0
- package/dist/validation.d.ts +11 -0
- package/dist/validation.d.ts.map +1 -0
- package/dist/validation.js +69 -0
- package/dist/validation.js.map +1 -0
- package/dist/workboard-gateway.d.ts +82 -0
- package/dist/workboard-gateway.d.ts.map +1 -0
- package/dist/workboard-gateway.js +76 -0
- package/dist/workboard-gateway.js.map +1 -0
- package/dist/worker-engine.d.ts +38 -0
- package/dist/worker-engine.d.ts.map +1 -0
- package/dist/worker-engine.js +73 -0
- package/dist/worker-engine.js.map +1 -0
- package/openclaw.plugin.json +42 -0
- package/package.json +50 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
UNLICENSED
|
|
2
|
+
|
|
3
|
+
This package is not licensed for public use.
|
|
4
|
+
|
|
5
|
+
All rights reserved. This software and its source code are proprietary.
|
|
6
|
+
No permission is granted to use, copy, modify, merge, publish, distribute,
|
|
7
|
+
sublicense, and/or sell copies of this software without explicit written
|
|
8
|
+
permission from the copyright holder.
|
package/README.md
ADDED
|
@@ -0,0 +1,291 @@
|
|
|
1
|
+
# AI Engineering Company
|
|
2
|
+
|
|
3
|
+
Management layer that orchestrates AI agents for engineering tasks.
|
|
4
|
+
|
|
5
|
+
AI Engineering Company routes natural-language tasks to the right office and worker automatically — no configuration required.
|
|
6
|
+
|
|
7
|
+
## Installation
|
|
8
|
+
|
|
9
|
+
### Prerequisites
|
|
10
|
+
|
|
11
|
+
- OpenClaw installed and running (see [OpenClaw](https://github.com/openclaw/openclaw))
|
|
12
|
+
- Node.js 22.19+
|
|
13
|
+
|
|
14
|
+
### Install Plugin
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
# Install from local source (recommended for development)
|
|
18
|
+
openclaw plugins install /path/to/ai-engineering-company --link
|
|
19
|
+
|
|
20
|
+
# Or install from git
|
|
21
|
+
git clone https://github.com/YOUR_USERNAME/ai-engineering-company.git
|
|
22
|
+
openclaw plugins install ./ai-engineering-company --link
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
### Verify Installation
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
openclaw plugins list
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Quick Start
|
|
32
|
+
|
|
33
|
+
Start OpenClaw and use the `/aicompany` slash command:
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
/aicompany build landing page
|
|
37
|
+
/aicompany fix authentication bug
|
|
38
|
+
/aicompany review this repository
|
|
39
|
+
/aicompany create PRD for the new feature
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
The Dispatcher automatically routes work to the correct office and worker. No manual assignment needed.
|
|
43
|
+
|
|
44
|
+
## Usage
|
|
45
|
+
|
|
46
|
+
### Slash Command
|
|
47
|
+
|
|
48
|
+
The primary interface for dispatching tasks:
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
/aicompany <task description>
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
**Example output:**
|
|
55
|
+
|
|
56
|
+
```
|
|
57
|
+
🏢 AI Engineering Company
|
|
58
|
+
|
|
59
|
+
Task:
|
|
60
|
+
Build landing page
|
|
61
|
+
|
|
62
|
+
Assigned To:
|
|
63
|
+
Engineering Worker
|
|
64
|
+
|
|
65
|
+
Status:
|
|
66
|
+
Completed
|
|
67
|
+
|
|
68
|
+
Duration:
|
|
69
|
+
4.2 s
|
|
70
|
+
|
|
71
|
+
────────────────────────
|
|
72
|
+
|
|
73
|
+
[worker response]
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### Agent Tools
|
|
77
|
+
|
|
78
|
+
Available to the OpenClaw agent automatically:
|
|
79
|
+
|
|
80
|
+
- **`ai_company_dispatch`** — Submit a task. Parameters: `message` (required), `wait` (boolean, default true), `timeout` (ms, default 900000)
|
|
81
|
+
- **`ai_company_status`** — Query dispatch status or list recent dispatches. Parameters: `sessionKey` (optional — omit to list all)
|
|
82
|
+
- **`ai_company_result`** — Retrieve completed dispatch results. Parameters: `sessionKey` (required), `limit` (optional)
|
|
83
|
+
- **`ai_company_approve`** — Approve a pending task. Parameters: `sessionKey` (required), `reason` (optional), `operator` (optional)
|
|
84
|
+
- **`ai_company_reject`** — Reject a pending task. Parameters: `sessionKey` (required), `reason` (optional), `operator` (optional)
|
|
85
|
+
- **`ai_company_list_approvals`** — List all pending approval requests. No parameters.
|
|
86
|
+
|
|
87
|
+
### Gateway RPC
|
|
88
|
+
|
|
89
|
+
Available over the gateway WebSocket API:
|
|
90
|
+
|
|
91
|
+
- `ai-company.dispatch` — `{ message, wait?, timeout? }`
|
|
92
|
+
- `ai-company.status` — `{ sessionKey? }`
|
|
93
|
+
- `ai-company.result` — `{ sessionKey, limit? }`
|
|
94
|
+
- `ai-company.list_approvals` — `{}` (list pending approvals)
|
|
95
|
+
- `ai-company.approve` — `{ sessionKey, reason?, operator? }` (approve a pending task)
|
|
96
|
+
- `ai-company.reject` — `{ sessionKey, reason?, operator? }` (reject a pending task)
|
|
97
|
+
|
|
98
|
+
### CLI
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
openclaw ai-company dispatch "fix the login bug"
|
|
102
|
+
openclaw ai-company status
|
|
103
|
+
openclaw ai-company result <session-key>
|
|
104
|
+
openclaw ai-company approvals
|
|
105
|
+
openclaw ai-company approve <session-key> [--operator <name>]
|
|
106
|
+
openclaw ai-company reject <session-key> [--operator <name>]
|
|
107
|
+
openclaw ai-company recover
|
|
108
|
+
openclaw ai-company audit [--session <key>] [--event <type>] [--source <src>] [--from <date>] [--to <date>]
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
## Approval Workflow
|
|
112
|
+
|
|
113
|
+
Engineering and security review tasks require operator approval before deployment. When the Dispatcher creates an orchestration plan, stages after VERIFY are marked with `requiresApproval: true`. The pipeline pauses at these stages and waits for the operator to approve or reject.
|
|
114
|
+
|
|
115
|
+
**CLI examples:**
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
# List pending approvals
|
|
119
|
+
openclaw ai-company approvals
|
|
120
|
+
|
|
121
|
+
# Approve a task
|
|
122
|
+
openclaw ai-company approve ai-company:dispatch:abc123 --reason "LGTM"
|
|
123
|
+
|
|
124
|
+
# Reject a task
|
|
125
|
+
openclaw ai-company reject ai-company:dispatch:abc123 --reason "Needs security review"
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
**Agent tool examples:**
|
|
129
|
+
|
|
130
|
+
```
|
|
131
|
+
ai_company_list_approvals
|
|
132
|
+
ai_company_approve sessionKey="ai-company:dispatch:abc123" reason="Approved"
|
|
133
|
+
ai_company_reject sessionKey="ai-company:dispatch:abc123" reason="Missing tests"
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
Gateway approvals automatically use your verified identity (display name or connection ID) when recording who approved or rejected a task. No configuration required.
|
|
137
|
+
|
|
138
|
+
## Configuration
|
|
139
|
+
|
|
140
|
+
In your OpenClaw config, the plugin accepts:
|
|
141
|
+
|
|
142
|
+
```json
|
|
143
|
+
{
|
|
144
|
+
"ai-engineering-company": {
|
|
145
|
+
"offices": "config/offices.json",
|
|
146
|
+
"workflows": "config/workflows.json",
|
|
147
|
+
"workers": "workers",
|
|
148
|
+
"boardId": "ai-company"
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
| Option | Default | Description |
|
|
154
|
+
|--------|---------|-------------|
|
|
155
|
+
| `offices` | `config/offices.json` | Path to offices config |
|
|
156
|
+
| `workflows` | `config/workflows.json` | Path to workflows config |
|
|
157
|
+
| `workers` | `assets/workers` | Path to workers directory |
|
|
158
|
+
| `boardId` | `ai-company` | Workboard board ID for task cards |
|
|
159
|
+
|
|
160
|
+
## Documentation
|
|
161
|
+
|
|
162
|
+
- [CHANGELOG.md](CHANGELOG.md) — Version history and release notes
|
|
163
|
+
- [ROADMAP.md](ROADMAP.md) — Implementation roadmap and milestones
|
|
164
|
+
- [docs/CHECKPOINT.md](docs/CHECKPOINT.md) — Current repository checkpoint
|
|
165
|
+
- [docs/PROJECT-ARCHIVE.md](docs/PROJECT-ARCHIVE.md) — Complete project archive
|
|
166
|
+
|
|
167
|
+
## Audit Logging
|
|
168
|
+
|
|
169
|
+
All dispatch lifecycle events are recorded as append-only JSONL files in `.openclaw/audit/audit-YYYY-MM-DD.jsonl`.
|
|
170
|
+
|
|
171
|
+
**15 event types**: dispatch_requested, plan_created, task_created, pipeline_started, stage_started, approval_requested, approved, rejected, stage_completed, stage_failed, pipeline_completed, pipeline_failed, dispatch_completed, lease_acquire_failed, lease_release_failed.
|
|
172
|
+
|
|
173
|
+
```bash
|
|
174
|
+
# Query audit log with filters
|
|
175
|
+
openclaw ai-company audit --session "ai-company:dispatch:abc123"
|
|
176
|
+
openclaw ai-company audit --event "approved" --source "gateway"
|
|
177
|
+
openclaw ai-company audit --from "2026-07-01" --to "2026-07-04"
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
## Runtime Recovery
|
|
181
|
+
|
|
182
|
+
Pipeline checkpoints persist stage-level progress to disk. On crash or restart, interrupted pipelines can be detected and reviewed.
|
|
183
|
+
|
|
184
|
+
```bash
|
|
185
|
+
# List interrupted pipelines
|
|
186
|
+
openclaw ai-company recover
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
Stale entries (failed/completed > 24h) are automatically cleaned on startup. Running and awaiting_approval entries are preserved.
|
|
190
|
+
|
|
191
|
+
## Metrics
|
|
192
|
+
|
|
193
|
+
The MetricsRegistry tracks 28 operational metrics including dispatch counts, stage durations, approval wait times, and error rates. Metrics are stored in-memory and persisted to `.openclaw/metrics.json` on shutdown.
|
|
194
|
+
|
|
195
|
+
## Queue Backend
|
|
196
|
+
|
|
197
|
+
DecisionQueue storage is abstracted behind the `QueueBackend` interface. Default: `MemoryQueueBackend` (Map-based with JSON file persistence). Pipeline ownership is managed by the `LeaseProvider` interface with configurable TTL expiration.
|
|
198
|
+
|
|
199
|
+
### Optional Redis Support
|
|
200
|
+
|
|
201
|
+
For distributed deployments, Redis can be used instead of in-memory storage. Redis is fully optional — the plugin works out of the box with zero configuration.
|
|
202
|
+
|
|
203
|
+
**Enable Redis via environment variable:**
|
|
204
|
+
|
|
205
|
+
```bash
|
|
206
|
+
export AI_COMPANY_REDIS_URL=redis://localhost:6379
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
**Or via plugin config:**
|
|
210
|
+
|
|
211
|
+
```json
|
|
212
|
+
{
|
|
213
|
+
"ai-engineering-company": {
|
|
214
|
+
"redis": {
|
|
215
|
+
"url": "redis://localhost:6379",
|
|
216
|
+
"prefix": "ai-company:"
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
| Option | Default | Description |
|
|
223
|
+
|--------|---------|-------------|
|
|
224
|
+
| `AI_COMPANY_REDIS_URL` | — | Redis URL (env var takes priority) |
|
|
225
|
+
| `redis.url` | — | Redis URL (plugin config) |
|
|
226
|
+
| `redis.prefix` | `ai-company:` | Key prefix for Redis storage |
|
|
227
|
+
|
|
228
|
+
**Fallback behavior:** If Redis is configured but unavailable at startup, the plugin falls back to in-memory mode automatically. No manual intervention required.
|
|
229
|
+
|
|
230
|
+
## Troubleshooting
|
|
231
|
+
|
|
232
|
+
### Plugin not loading
|
|
233
|
+
|
|
234
|
+
```bash
|
|
235
|
+
# Verify plugin is installed and enabled
|
|
236
|
+
openclaw plugins list
|
|
237
|
+
|
|
238
|
+
# Rebuild after changes
|
|
239
|
+
npm run build
|
|
240
|
+
openclaw plugins build
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
### Pending approvals not visible
|
|
244
|
+
|
|
245
|
+
```bash
|
|
246
|
+
# List all pending approvals
|
|
247
|
+
openclaw ai-company approvals
|
|
248
|
+
|
|
249
|
+
# Check DecisionQueue persistence file
|
|
250
|
+
cat .openclaw/decisions.json
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
### Interrupted pipeline after crash
|
|
254
|
+
|
|
255
|
+
```bash
|
|
256
|
+
# List interrupted pipelines with stage progress
|
|
257
|
+
openclaw ai-company recover
|
|
258
|
+
|
|
259
|
+
# Resume an interrupted pipeline from last checkpoint
|
|
260
|
+
openclaw ai-company recover --resume <session-key>
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
### Audit log inspection
|
|
264
|
+
|
|
265
|
+
```bash
|
|
266
|
+
# View today's audit log
|
|
267
|
+
cat .openclaw/audit/audit-$(date +%Y-%m-%d).jsonl | jq .
|
|
268
|
+
|
|
269
|
+
# Query specific event types
|
|
270
|
+
openclaw ai-company audit --event "pipeline_failed"
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
## Development
|
|
274
|
+
|
|
275
|
+
```bash
|
|
276
|
+
# Install dependencies
|
|
277
|
+
pnpm install
|
|
278
|
+
|
|
279
|
+
# Run tests
|
|
280
|
+
pnpm test
|
|
281
|
+
|
|
282
|
+
# Type check
|
|
283
|
+
pnpm run typecheck
|
|
284
|
+
|
|
285
|
+
# Build
|
|
286
|
+
pnpm run build
|
|
287
|
+
```
|
|
288
|
+
|
|
289
|
+
## License
|
|
290
|
+
|
|
291
|
+
MIT License - see [LICENSE](LICENSE) for details.
|
|
File without changes
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Architecture Office
|
|
2
|
+
|
|
3
|
+
**Purpose**: Define how to structure systems.
|
|
4
|
+
|
|
5
|
+
## Authority
|
|
6
|
+
- System architecture design
|
|
7
|
+
- Technical standards and patterns
|
|
8
|
+
- API contracts and data models
|
|
9
|
+
- Technology evaluation
|
|
10
|
+
|
|
11
|
+
## Restrictions
|
|
12
|
+
- Cannot write implementation code
|
|
13
|
+
- Cannot change requirements
|
|
14
|
+
- Cannot deploy
|
|
15
|
+
- Cannot assign or reassign tasks (Dispatcher only)
|
|
16
|
+
|
|
17
|
+
## Roles
|
|
18
|
+
| Role | Responsibility |
|
|
19
|
+
|---|---|
|
|
20
|
+
| Technical Architect | Design system architecture, define standards, review implementations |
|
|
21
|
+
|
|
22
|
+
## How Work Arrives
|
|
23
|
+
The Dispatcher agent routes architecture-type work (system design, technical reviews, ADRs) to the Technical Architect. The Architect also reviews proposals from Engineers before implementation begins.
|
|
24
|
+
|
|
25
|
+
## Collaboration
|
|
26
|
+
The Architect collaborates directly with:
|
|
27
|
+
- **Architect ↔ PM**: Requirements feasibility, technical constraints
|
|
28
|
+
- **Architect ↔ Frontend Engineer**: Component architecture, state management
|
|
29
|
+
- **Architect ↔ Backend Engineer**: System structure, API design, data flow
|
|
30
|
+
- **Architect ↔ Infrastructure Engineer**: Deployment architecture, scaling strategy
|
|
31
|
+
|
|
32
|
+
Collaboration does NOT change task ownership. The Architect does NOT spawn other workers.
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# Engineering Office
|
|
2
|
+
|
|
3
|
+
**Purpose**: Build and ship.
|
|
4
|
+
|
|
5
|
+
## Authority
|
|
6
|
+
- Code implementation
|
|
7
|
+
- Testing
|
|
8
|
+
- Deployment (with Operator approval)
|
|
9
|
+
|
|
10
|
+
## Restrictions
|
|
11
|
+
- Cannot change requirements
|
|
12
|
+
- Cannot approve own work
|
|
13
|
+
- Cannot modify knowledge base
|
|
14
|
+
- Cannot assign or reassign tasks (Dispatcher only)
|
|
15
|
+
|
|
16
|
+
## Roles
|
|
17
|
+
| Role | Responsibility |
|
|
18
|
+
|---|---|
|
|
19
|
+
| Frontend Engineer | Implement user interfaces, handle client-side logic, ensure accessibility |
|
|
20
|
+
| Backend Engineer | Implement server logic, APIs, database operations, integrations |
|
|
21
|
+
| Infrastructure Engineer | Manage deployments, CI/CD, monitoring, cloud infrastructure |
|
|
22
|
+
| QA Engineer | Write tests, validate quality, report defects, verify fixes |
|
|
23
|
+
|
|
24
|
+
## Specializations
|
|
25
|
+
Specializations are per-task, not permanent:
|
|
26
|
+
- **Frontend**: react, vue, angular, svelte, css, accessibility, performance, testing
|
|
27
|
+
- **Backend**: api, database, auth, security, performance, testing, integration
|
|
28
|
+
- **Infrastructure**: cicd, monitoring, cloud, security, networking, database-ops
|
|
29
|
+
|
|
30
|
+
## How Work Arrives
|
|
31
|
+
The Dispatcher agent routes engineering-type work to the appropriate specialist based on required capabilities:
|
|
32
|
+
- UI/Frontend work → Frontend Engineer
|
|
33
|
+
- API/Backend work → Backend Engineer
|
|
34
|
+
- Deployment/Infrastructure work → Infrastructure Engineer
|
|
35
|
+
- Testing/QA work → QA Engineer
|
|
36
|
+
|
|
37
|
+
Feature work arrives after the Product Manager defines requirements and the Architect defines system structure.
|
|
38
|
+
|
|
39
|
+
## Collaboration
|
|
40
|
+
The Engineers collaborate directly with:
|
|
41
|
+
- **Frontend ↔ Designer**: Specifications, implementation questions, feasibility
|
|
42
|
+
- **Frontend ↔ Backend**: API contracts, data formats, integration
|
|
43
|
+
- **Frontend ↔ QA**: Test results, defect reports, fixes
|
|
44
|
+
- **Backend ↔ PM**: Requirements clarity, scope questions
|
|
45
|
+
- **Backend ↔ Architect**: System structure, API design, data flow
|
|
46
|
+
- **Backend ↔ Infrastructure**: Deployment, configuration, environment
|
|
47
|
+
- **Backend ↔ Governor**: Security review, compliance, rework
|
|
48
|
+
- **Backend ↔ QA**: Test results, defect reports, fixes
|
|
49
|
+
- **Infrastructure ↔ Architect**: Deployment architecture, scaling strategy
|
|
50
|
+
- **Infrastructure ↔ QA**: Test environments, CI/CD integration
|
|
51
|
+
- **QA ↔ Governor**: Compliance evidence, quality gate results
|
|
52
|
+
|
|
53
|
+
Collaboration does NOT change task ownership. Engineers do NOT spawn other workers.
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Governance Office
|
|
2
|
+
|
|
3
|
+
**Purpose**: Ensure safety and quality.
|
|
4
|
+
|
|
5
|
+
## Authority
|
|
6
|
+
- Policy enforcement
|
|
7
|
+
- Gate pass/fail decisions
|
|
8
|
+
- Knowledge review
|
|
9
|
+
- Risk assessment
|
|
10
|
+
|
|
11
|
+
## Restrictions
|
|
12
|
+
- Cannot write code
|
|
13
|
+
- Cannot change requirements
|
|
14
|
+
- Cannot assign or reassign tasks (Dispatcher only)
|
|
15
|
+
|
|
16
|
+
## Roles
|
|
17
|
+
| Role | Responsibility |
|
|
18
|
+
|---|---|
|
|
19
|
+
| Governor | Audit completed work, enforce policies, review knowledge, assess risk |
|
|
20
|
+
|
|
21
|
+
## How Work Arrives
|
|
22
|
+
The Dispatcher agent routes governance-type work (policy reviews, knowledge reviews, security reviews) to the Governor. The Governor also reviews work after engineering completes security-sensitive tasks.
|
|
23
|
+
|
|
24
|
+
## Collaboration
|
|
25
|
+
The Governor collaborates directly with:
|
|
26
|
+
- **Governor ↔ Engineer**: Review submissions, compliance findings, rework requests
|
|
27
|
+
|
|
28
|
+
The Governor does NOT collaborate with PM, Researcher, or Designer. The Governor's domain is engineering output review and policy enforcement.
|
|
29
|
+
|
|
30
|
+
Collaboration does NOT change task ownership. The Governor does NOT spawn other workers.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Product Office
|
|
2
|
+
|
|
3
|
+
**Purpose**: Define what to build.
|
|
4
|
+
|
|
5
|
+
## Authority
|
|
6
|
+
- Task definitions
|
|
7
|
+
- Requirements specification
|
|
8
|
+
- Acceptance criteria
|
|
9
|
+
- Work prioritization
|
|
10
|
+
|
|
11
|
+
## Restrictions
|
|
12
|
+
- Cannot write code
|
|
13
|
+
- Cannot approve deployments
|
|
14
|
+
- Cannot modify knowledge base
|
|
15
|
+
- Cannot assign or reassign tasks (Dispatcher only)
|
|
16
|
+
|
|
17
|
+
## Roles
|
|
18
|
+
| Role | Responsibility |
|
|
19
|
+
|---|---|
|
|
20
|
+
| Product Manager | Classify requests, extract scope, determine gates, prioritize work, accept completed work |
|
|
21
|
+
| Researcher | Explore codebases, investigate options, gather evidence, produce reports |
|
|
22
|
+
| Designer | Design interaction flows, create specifications, review UX |
|
|
23
|
+
|
|
24
|
+
## How Work Arrives
|
|
25
|
+
The Dispatcher agent classifies incoming requests and routes product-type work (features, research, design) to the appropriate role in this office.
|
|
26
|
+
|
|
27
|
+
## Collaboration
|
|
28
|
+
Workers in this office collaborate directly with:
|
|
29
|
+
- **PM ↔ Researcher**: Investigations, evidence, findings
|
|
30
|
+
- **PM ↔ Designer**: Requirements, user journeys, specifications
|
|
31
|
+
- **PM ↔ Architect**: Requirements feasibility, technical constraints
|
|
32
|
+
- **PM ↔ Backend Engineer**: Requirements clarity, scope questions
|
|
33
|
+
- **Researcher ↔ Architect**: Technical findings, architecture analysis
|
|
34
|
+
- **Researcher ↔ Backend Engineer**: Technical findings, implementation analysis
|
|
35
|
+
- **Designer ↔ Frontend Engineer**: Specifications, implementation questions, feasibility
|
|
36
|
+
|
|
37
|
+
Collaboration does NOT change task ownership. Workers do NOT spawn other workers.
|