bosun 0.36.7 → 0.36.29
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/README.md +19 -3
- package/bosun.config.example.json +3 -0
- package/bosun.schema.json +20 -2
- package/desktop/desktop-shortcuts.mjs +56 -0
- package/desktop/main.mjs +618 -109
- package/desktop/preload.mjs +29 -0
- package/desktop-shortcut.mjs +106 -13
- package/monitor.mjs +59 -173
- package/package.json +6 -4
- package/session-tracker.mjs +208 -43
- package/setup-web-server.mjs +208 -0
- package/task-executor.mjs +153 -2838
- package/telegram-bot.mjs +14 -4
- package/ui/components/workspace-switcher.js +18 -6
- package/ui/demo.html +109 -0
- package/ui/index.html +17 -3
- package/ui/modules/icon-utils.js +57 -0
- package/ui/modules/settings-schema.js +4 -4
- package/ui/modules/streaming.js +15 -0
- package/ui/modules/voice-client.js +248 -4
- package/ui/modules/voice-overlay.js +58 -1
- package/ui/setup.html +563 -61
- package/ui/tabs/settings.js +510 -10
- package/ui-server.mjs +302 -18
- package/voice-agents-sdk.mjs +33 -11
- package/voice-auth-manager.mjs +10 -6
- package/voice-relay.mjs +341 -75
- package/voice-tools.mjs +86 -23
- package/workflow-engine.mjs +38 -0
- package/workflow-migration.mjs +5 -0
- package/workflow-nodes.mjs +1101 -0
- package/workflow-templates/agents.mjs +1 -0
- package/workflow-templates/github.mjs +230 -1
- package/workflow-templates/reliability.mjs +315 -1
- package/workflow-templates/task-lifecycle.mjs +595 -0
- package/workflow-templates.mjs +158 -5
package/README.md
CHANGED
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
</p>
|
|
4
4
|
<h1 align="center">bosun</h1>
|
|
5
5
|
|
|
6
|
-
Bosun is a production-grade
|
|
6
|
+
Bosun is a production-grade control plane for an autonomous software engineer. It plans and routes work across executors, automates PR lifecycles, and keeps operators in control through Telegram, the Mini App dashboard, and optional WhatsApp notifications.
|
|
7
7
|
|
|
8
8
|
<p align="center">
|
|
9
|
-
<a href="https://bosun.
|
|
9
|
+
<a href="https://bosun.engineer">Website</a> · <a href="https://bosun.engineer/docs/">Docs</a> · <a href="https://github.com/virtengine/bosun?tab=readme-ov-file#bosun">GitHub</a> · <a href="https://www.npmjs.com/package/bosun">npm</a> · <a href="https://github.com/virtengine/bosun/issues">Issues</a>
|
|
10
10
|
</p>
|
|
11
11
|
|
|
12
12
|
<p align="center">
|
|
@@ -82,6 +82,22 @@ Fallback admin auth (secondary path) is available and stores only Argon2id hash
|
|
|
82
82
|
- Provides Telegram control and a Mini App dashboard
|
|
83
83
|
- Integrates with GitHub, Jira, and Vibe-Kanban boards
|
|
84
84
|
|
|
85
|
+
## Autonomous Engineer Workflow Capabilities
|
|
86
|
+
|
|
87
|
+
Bosun workflows provide a professional, end-to-end execution loop for autonomous delivery:
|
|
88
|
+
|
|
89
|
+
- Trigger intake: consume issues, comments, schedules, and webhook events
|
|
90
|
+
- Planning and decomposition: convert goals into scoped tasks with execution context
|
|
91
|
+
- Routed execution: dispatch tasks to the best executor profile with retries and failover
|
|
92
|
+
- Quality gates: enforce test/build/review checks before merge decisions
|
|
93
|
+
- Recovery and escalation: auto-heal stalled runs, then escalate with clear operator signals
|
|
94
|
+
|
|
95
|
+
Setup profiles for default workflow behavior:
|
|
96
|
+
|
|
97
|
+
- Manual Dispatch: human-directed flow with guardrails and review automations
|
|
98
|
+
- Balanced (Recommended): daily default with PR quality gates and targeted self-healing
|
|
99
|
+
- Autonomous: expanded end-to-end automation for planning, recovery, and maintenance
|
|
100
|
+
|
|
85
101
|
### Executor quick-start
|
|
86
102
|
|
|
87
103
|
| Executor | `primaryAgent` value | Key env vars |
|
|
@@ -103,7 +119,7 @@ Set `primaryAgent` in `.bosun/bosun.config.json` or choose an executor preset du
|
|
|
103
119
|
|
|
104
120
|
## Documentation
|
|
105
121
|
|
|
106
|
-
**Published docs (website):** https://bosun.
|
|
122
|
+
**Published docs (website):** https://bosun.engineer/docs/
|
|
107
123
|
|
|
108
124
|
**Source docs (markdown):** `_docs/` is the source of truth for long-form documentation. The website should be generated from the same markdown content so docs stay in sync.
|
|
109
125
|
|
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
"$schema": "./bosun.schema.json",
|
|
3
3
|
"projectName": "my-project",
|
|
4
4
|
"primaryAgent": "codex-sdk",
|
|
5
|
+
|
|
6
|
+
"_comment_workflowFirst": "Set to true to run everything as workflows (task lifecycle, PR management, etc.)",
|
|
7
|
+
"workflowFirst": false,
|
|
5
8
|
"kanban": {
|
|
6
9
|
"backend": "vk"
|
|
7
10
|
},
|
package/bosun.schema.json
CHANGED
|
@@ -33,6 +33,16 @@
|
|
|
33
33
|
"watchEnabled": { "type": "boolean" },
|
|
34
34
|
"echoLogs": { "type": "boolean" },
|
|
35
35
|
"autoFixEnabled": { "type": "boolean" },
|
|
36
|
+
"workflowFirst": {
|
|
37
|
+
"type": "boolean",
|
|
38
|
+
"default": false,
|
|
39
|
+
"description": "When true, all modules start in WORKFLOW mode by default. The task executor lifecycle is fully delegated to workflow templates (workflowOwnsTaskLifecycle). Bosun acts as a thin shell around the workflow engine."
|
|
40
|
+
},
|
|
41
|
+
"workflowOwnsTaskLifecycle": {
|
|
42
|
+
"type": "boolean",
|
|
43
|
+
"default": false,
|
|
44
|
+
"description": "Delegate task finalization and recovery to workflow automation instead of the legacy TaskExecutor. Automatically set to true when workflowFirst is enabled."
|
|
45
|
+
},
|
|
36
46
|
"interactiveShellEnabled": { "type": "boolean" },
|
|
37
47
|
"shellEnabled": { "type": "boolean" },
|
|
38
48
|
"codexEnabled": { "type": "boolean" },
|
|
@@ -188,7 +198,11 @@
|
|
|
188
198
|
"verse"
|
|
189
199
|
]
|
|
190
200
|
},
|
|
191
|
-
"azureDeployment": { "type": "string" }
|
|
201
|
+
"azureDeployment": { "type": "string" },
|
|
202
|
+
"endpointId": {
|
|
203
|
+
"type": "string",
|
|
204
|
+
"description": "ID of the voice endpoint to use for this provider slot"
|
|
205
|
+
}
|
|
192
206
|
},
|
|
193
207
|
"required": ["provider"]
|
|
194
208
|
}
|
|
@@ -304,13 +318,17 @@
|
|
|
304
318
|
"additionalProperties": false,
|
|
305
319
|
"required": ["provider"],
|
|
306
320
|
"properties": {
|
|
321
|
+
"id": {
|
|
322
|
+
"type": "string",
|
|
323
|
+
"description": "Unique identifier for this endpoint"
|
|
324
|
+
},
|
|
307
325
|
"name": {
|
|
308
326
|
"type": "string",
|
|
309
327
|
"description": "Friendly label for this endpoint"
|
|
310
328
|
},
|
|
311
329
|
"provider": {
|
|
312
330
|
"type": "string",
|
|
313
|
-
"enum": ["azure", "openai"],
|
|
331
|
+
"enum": ["azure", "openai", "claude", "gemini"],
|
|
314
332
|
"description": "Provider type"
|
|
315
333
|
},
|
|
316
334
|
"endpoint": {
|
|
@@ -140,6 +140,62 @@ export const DEFAULT_SHORTCUTS = [
|
|
|
140
140
|
scope: SCOPE_LOCAL,
|
|
141
141
|
group: "Navigation",
|
|
142
142
|
},
|
|
143
|
+
{
|
|
144
|
+
id: "bosun.navigate.chat",
|
|
145
|
+
label: "Chat & Sessions",
|
|
146
|
+
description: "Navigate to the Chat / Sessions panel",
|
|
147
|
+
defaultAccelerator: "CmdOrCtrl+Shift+C",
|
|
148
|
+
scope: SCOPE_LOCAL,
|
|
149
|
+
group: "Navigation",
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
id: "bosun.navigate.workflows",
|
|
153
|
+
label: "Workflows",
|
|
154
|
+
description: "Navigate to the Workflows panel",
|
|
155
|
+
defaultAccelerator: "CmdOrCtrl+Shift+W",
|
|
156
|
+
scope: SCOPE_LOCAL,
|
|
157
|
+
group: "Navigation",
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
id: "bosun.navigate.fleet",
|
|
161
|
+
label: "Fleet Sessions",
|
|
162
|
+
description: "Navigate to the Fleet Sessions panel",
|
|
163
|
+
defaultAccelerator: "CmdOrCtrl+Shift+F",
|
|
164
|
+
scope: SCOPE_LOCAL,
|
|
165
|
+
group: "Navigation",
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
id: "bosun.navigate.control",
|
|
169
|
+
label: "Control Panel",
|
|
170
|
+
description: "Navigate to the Control Panel",
|
|
171
|
+
defaultAccelerator: "CmdOrCtrl+Shift+O",
|
|
172
|
+
scope: SCOPE_LOCAL,
|
|
173
|
+
group: "Navigation",
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
id: "bosun.navigate.infra",
|
|
177
|
+
label: "Infrastructure",
|
|
178
|
+
description: "Navigate to the Infrastructure panel",
|
|
179
|
+
defaultAccelerator: "CmdOrCtrl+Shift+I",
|
|
180
|
+
scope: SCOPE_LOCAL,
|
|
181
|
+
group: "Navigation",
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
id: "bosun.navigate.library",
|
|
185
|
+
label: "Library",
|
|
186
|
+
description: "Navigate to the Library panel",
|
|
187
|
+
defaultAccelerator: "CmdOrCtrl+Shift+B",
|
|
188
|
+
scope: SCOPE_LOCAL,
|
|
189
|
+
group: "Navigation",
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
id: "bosun.navigate.telemetry",
|
|
193
|
+
label: "Telemetry",
|
|
194
|
+
description: "Navigate to the Telemetry panel",
|
|
195
|
+
defaultAccelerator: null,
|
|
196
|
+
scope: SCOPE_LOCAL,
|
|
197
|
+
group: "Navigation",
|
|
198
|
+
},
|
|
143
199
|
{
|
|
144
200
|
id: "bosun.show.shortcuts",
|
|
145
201
|
label: "Show Keyboard Shortcuts",
|