bosun 0.42.0 → 0.42.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.
Files changed (63) hide show
  1. package/.env.example +12 -0
  2. package/README.md +2 -0
  3. package/agent/agent-pool.mjs +34 -1
  4. package/agent/agent-work-report.mjs +89 -3
  5. package/agent/analyze-agent-work-helpers.mjs +14 -0
  6. package/agent/analyze-agent-work.mjs +23 -3
  7. package/agent/primary-agent.mjs +23 -1
  8. package/bosun-tui.mjs +4 -3
  9. package/bosun.schema.json +1 -1
  10. package/config/config.mjs +58 -0
  11. package/config/workspace-health.mjs +36 -6
  12. package/git/diff-stats.mjs +550 -124
  13. package/github/github-app-auth.mjs +9 -5
  14. package/infra/maintenance.mjs +13 -6
  15. package/infra/monitor.mjs +398 -10
  16. package/infra/runtime-accumulator.mjs +9 -1
  17. package/infra/session-tracker.mjs +163 -1
  18. package/infra/tui-bridge.mjs +415 -0
  19. package/infra/worktree-recovery-state.mjs +159 -0
  20. package/kanban/kanban-adapter.mjs +41 -8
  21. package/lib/repo-map.mjs +411 -0
  22. package/package.json +140 -137
  23. package/server/ui-server.mjs +953 -59
  24. package/shell/codex-config.mjs +34 -8
  25. package/task/task-cli.mjs +93 -19
  26. package/task/task-executor.mjs +397 -8
  27. package/task/task-store.mjs +194 -1
  28. package/telegram/telegram-bot.mjs +267 -18
  29. package/tools/vitest-runner.mjs +108 -0
  30. package/tui/app.mjs +252 -148
  31. package/tui/components/status-header.mjs +88 -131
  32. package/tui/lib/ws-bridge.mjs +125 -35
  33. package/tui/screens/agents-screen-helpers.mjs +219 -0
  34. package/tui/screens/agents.mjs +287 -270
  35. package/tui/screens/status.mjs +51 -189
  36. package/tui/screens/tasks.mjs +41 -253
  37. package/ui/app.js +52 -23
  38. package/ui/components/chat-view.js +263 -84
  39. package/ui/components/diff-viewer.js +324 -140
  40. package/ui/components/kanban-board.js +13 -9
  41. package/ui/components/session-list.js +111 -41
  42. package/ui/demo-defaults.js +481 -59
  43. package/ui/demo.html +32 -0
  44. package/ui/modules/session-api.js +320 -5
  45. package/ui/modules/stream-timeline.js +356 -0
  46. package/ui/modules/telegram.js +5 -2
  47. package/ui/modules/worktree-recovery.js +85 -0
  48. package/ui/styles.css +44 -0
  49. package/ui/tabs/chat.js +19 -4
  50. package/ui/tabs/dashboard.js +22 -0
  51. package/ui/tabs/infra.js +25 -0
  52. package/ui/tabs/tasks.js +119 -11
  53. package/voice/voice-auth-manager.mjs +10 -5
  54. package/workflow/workflow-engine.mjs +179 -1
  55. package/workflow/workflow-nodes.mjs +872 -16
  56. package/workflow/workflow-templates.mjs +4 -0
  57. package/workflow-templates/github.mjs +2 -1
  58. package/workflow-templates/planning.mjs +2 -1
  59. package/workflow-templates/sub-workflows.mjs +10 -0
  60. package/workflow-templates/task-batch.mjs +9 -8
  61. package/workflow-templates/task-execution.mjs +30 -12
  62. package/workflow-templates/task-lifecycle.mjs +59 -4
  63. package/workspace/shared-knowledge.mjs +409 -155
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bosun",
3
- "version": "0.42.0",
3
+ "version": "0.42.2",
4
4
  "description": "Bosun Autonomous Engineering — manages AI agent executors with failover, extremely powerful workflow builder, and a massive amount of included default workflow templates for autonomous engineering, creates PRs via Vibe-Kanban API, and sends Telegram notifications. Supports N executors with weighted distribution, multi-repo projects, and auto-setup.",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",
@@ -116,8 +116,8 @@
116
116
  "shared-workspaces": "node workspace/shared-workspace-cli.mjs",
117
117
  "syntax:check": "node --experimental-vm-modules --no-warnings=ExperimentalWarning tools/syntax-check.mjs",
118
118
  "pretest": "npm run syntax:check",
119
- "test": "node --max-old-space-size=4096 node_modules/vitest/vitest.mjs run --config vitest.config.mjs",
120
- "test:vitest": "node --max-old-space-size=4096 node_modules/vitest/vitest.mjs run --config vitest.config.mjs",
119
+ "test": "node --max-old-space-size=4096 tools/vitest-runner.mjs run --config vitest.config.mjs",
120
+ "test:vitest": "node --max-old-space-size=4096 tools/vitest-runner.mjs run --config vitest.config.mjs",
121
121
  "test:node": "node --import ./tests/node-test-bootstrap.mjs --test tests/*.node.test.mjs",
122
122
  "test:all": "npm run test:vitest && npm run test:node",
123
123
  "test:e2e": "node --import ./tests/node-test-bootstrap.mjs --test tests/portal-ui-smoke.node.test.mjs",
@@ -155,209 +155,212 @@
155
155
  ".env.example",
156
156
  "LICENSE",
157
157
  "README.md",
158
- "bench/benchmark-mode.mjs",
159
- "bench/benchmark-registry.mjs",
160
- "bench/swebench/bosun-swebench.mjs",
161
158
  "agent/agent-custom-tools.mjs",
162
159
  "agent/agent-endpoint.mjs",
163
160
  "agent/agent-event-bus.mjs",
164
- "agent/retry-queue.mjs",
161
+ "agent/agent-hook-bridge.mjs",
162
+ "agent/agent-hooks.mjs",
165
163
  "agent/agent-pool.mjs",
166
164
  "agent/agent-prompt-catalog.mjs",
167
165
  "agent/agent-prompts.mjs",
168
166
  "agent/agent-sdk.mjs",
167
+ "agent/agent-supervisor.mjs",
168
+ "agent/agent-tool-config.mjs",
169
+ "agent/agent-work-analyzer.mjs",
169
170
  "agent/agent-work-report.mjs",
170
171
  "agent/analyze-agent-work-helpers.mjs",
171
172
  "agent/analyze-agent-work.mjs",
172
173
  "agent/autofix-git.mjs",
173
- "infra/anomaly-detector.mjs",
174
- "agent/autofix.mjs",
175
174
  "agent/autofix-prompts.mjs",
176
- "shell/claude-shell.mjs",
177
- "cli.mjs",
178
- "compat.mjs",
179
- "shell/codex-config.mjs",
180
- "shell/codex-config-file.mjs",
181
- "bosun.config.example.json",
182
- "bosun.schema.json",
175
+ "agent/autofix.mjs",
183
176
  "agent/bosun-skills.mjs",
177
+ "agent/fleet-coordinator.mjs",
178
+ "agent/hook-library.mjs",
179
+ "agent/hook-profiles.mjs",
180
+ "agent/primary-agent.mjs",
181
+ "agent/retry-queue.mjs",
182
+ "agent/review-agent.mjs",
184
183
  "agent/skills/skill-codebase-audit.md",
185
- "shell/codex-model-profiles.mjs",
186
- "shell/codex-shell.mjs",
187
- "config/config.mjs",
188
- "config/config-file-names.mjs",
184
+ "bench/benchmark-mode.mjs",
185
+ "bench/benchmark-registry.mjs",
186
+ "bench/swebench/bosun-swebench.mjs",
187
+ "bosun-tui.mjs",
188
+ "bosun.config.example.json",
189
+ "bosun.schema.json",
190
+ "cli.mjs",
191
+ "compat.mjs",
189
192
  "config/config-doctor.mjs",
193
+ "config/config-file-names.mjs",
194
+ "config/config.mjs",
195
+ "config/context-shredding-config.mjs",
190
196
  "config/executor-config.mjs",
197
+ "config/repo-config.mjs",
198
+ "config/repo-root.mjs",
191
199
  "config/workspace-health.mjs",
192
- "git/conflict-resolver.mjs",
193
- "workspace/context-cache.mjs",
194
- "workspace/command-diagnostics.mjs",
195
- "workspace/context-indexer.mjs",
196
- "config/context-shredding-config.mjs",
197
- "shell/copilot-shell.mjs",
198
- "shell/gemini-shell.mjs",
199
- "git/diff-stats.mjs",
200
- "desktop/main.mjs",
201
200
  "desktop/desktop-shortcuts.mjs",
202
201
  "desktop/launch.mjs",
203
- "infra/desktop-api-key.mjs",
202
+ "desktop/main.mjs",
203
+ "desktop/package.json",
204
204
  "desktop/preload.cjs",
205
205
  "desktop/preload.mjs",
206
- "desktop/package.json",
207
- "infra/desktop-shortcut.mjs",
208
- "infra/error-detector.mjs",
209
- "infra/fetch-runtime.mjs",
210
- "agent/fleet-coordinator.mjs",
211
- "github/github-app-auth.mjs",
212
- "github/github-auth-manager.mjs",
213
- "github/github-oauth-portal.mjs",
214
- "github-reconciler.mjs",
215
- "telegram/get-telegram-chat-id.mjs",
206
+ "entrypoint.mjs",
207
+ "lib/repo-map.mjs",
208
+ "git/conflict-resolver.mjs",
209
+ "git/diff-stats.mjs",
216
210
  "git/git-commit-helpers.mjs",
217
211
  "git/git-editor-fix.mjs",
218
212
  "git/git-safety.mjs",
219
- "kanban/kanban-adapter.mjs",
220
- "lib/codebase-audit-manifests.mjs",
221
- "lib/logger.mjs",
222
- "lib/codebase-audit.mjs",
223
- "lib/session-insights.mjs",
224
- "infra/library-manager.mjs",
213
+ "git/sdk-conflict-resolver.mjs",
214
+ "github-reconciler.mjs",
215
+ "github/github-app-auth.mjs",
216
+ "github/github-auth-manager.mjs",
217
+ "github/github-oauth-portal.mjs",
218
+ "infra/anomaly-detector.mjs",
219
+ "infra/container-runner.mjs",
220
+ "infra/daemon-restart-policy.mjs",
221
+ "infra/desktop-api-key.mjs",
222
+ "infra/desktop-shortcut.mjs",
223
+ "infra/error-detector.mjs",
224
+ "infra/fetch-runtime.mjs",
225
+ "infra/health-status.mjs",
225
226
  "infra/library-manager-utils.mjs",
226
227
  "infra/library-manager-well-known-sources.mjs",
228
+ "infra/library-manager.mjs",
227
229
  "infra/maintenance.mjs",
228
- "workflow/manual-flows.mjs",
229
- "workflow/manual-flow-audit.mjs",
230
- "workflow/pipeline-workflows.mjs",
231
- "workflow/workflow-cli.mjs",
232
- "workflow/execution-ledger.mjs",
233
- "workflow/mcp-discovery-proxy.mjs",
234
- "workflow/mcp-workflow-adapter.mjs",
235
- "workflow/mcp-registry.mjs",
236
- "workflow/meeting-workflow-service.mjs",
237
- "merge-strategy.mjs",
238
- "monitor-tail-sanitizer.mjs",
239
230
  "infra/monitor.mjs",
240
- "shell/opencode-shell.mjs",
241
- "shell/opencode-providers.mjs",
242
- "postinstall.mjs",
243
- "pr-cleanup-daemon.mjs",
244
231
  "infra/preflight.mjs",
245
- "tools/prepublish-check.mjs",
246
232
  "infra/presence.mjs",
247
- "agent/primary-agent.mjs",
248
- "config/repo-config.mjs",
249
- "config/repo-root.mjs",
250
233
  "infra/restart-controller.mjs",
251
- "agent/review-agent.mjs",
252
- "git/sdk-conflict-resolver.mjs",
234
+ "infra/runtime-accumulator.mjs",
253
235
  "infra/session-tracker.mjs",
236
+ "infra/startup-service.mjs",
237
+ "infra/stream-resilience.mjs",
238
+ "infra/sync-engine.mjs",
254
239
  "infra/test-runtime.mjs",
255
- "setup.mjs",
240
+ "infra/worktree-recovery-state.mjs",
241
+ "infra/tracing.mjs",
242
+ "infra/tui-bridge.mjs",
243
+ "infra/update-check.mjs",
244
+ "kanban/kanban-adapter.mjs",
245
+ "kanban/ve-kanban.mjs",
246
+ "kanban/ve-orchestrator.mjs",
247
+ "kanban/vibe-kanban-wrapper.mjs",
248
+ "kanban/vk-error-resolver.mjs",
249
+ "kanban/vk-log-stream.mjs",
250
+ "lib/codebase-audit-manifests.mjs",
251
+ "lib/codebase-audit.mjs",
252
+ "lib/logger.mjs",
253
+ "lib/session-insights.mjs",
254
+ "merge-strategy.mjs",
255
+ "monitor-tail-sanitizer.mjs",
256
+ "postinstall.mjs",
257
+ "pr-cleanup-daemon.mjs",
258
+ "rotate-agent-logs.sh",
256
259
  "server/bosun-mcp-server.mjs",
257
260
  "server/setup-web-server.mjs",
258
- "shell/pwsh-runtime.mjs",
259
- "workspace/shared-knowledge.mjs",
260
- "workspace/shared-state-manager.mjs",
261
- "workspace/shared-workspace-cli.mjs",
262
- "workspace/shared-workspace-registry.mjs",
261
+ "server/ui-server.mjs",
262
+ "setup.mjs",
263
263
  "shared-workspaces.json",
264
- "infra/stream-resilience.mjs",
265
- "infra/sync-engine.mjs",
264
+ "shell/claude-shell.mjs",
265
+ "shell/codex-config-file.mjs",
266
+ "shell/codex-config.mjs",
267
+ "shell/codex-model-profiles.mjs",
268
+ "shell/codex-shell.mjs",
269
+ "shell/copilot-shell.mjs",
270
+ "shell/gemini-shell.mjs",
271
+ "shell/opencode-providers.mjs",
272
+ "shell/opencode-shell.mjs",
273
+ "shell/pwsh-runtime.mjs",
274
+ "task/msg-hub.mjs",
275
+ "task/pipeline.mjs",
266
276
  "task/task-archiver.mjs",
267
277
  "task/task-assessment.mjs",
268
- "task/task-debt-ledger.mjs",
269
- "task/task-cli.mjs",
278
+ "task/task-attachments.mjs",
279
+ "task/task-claims.mjs",
270
280
  "task/task-cli-bin.mjs",
281
+ "task/task-cli.mjs",
271
282
  "task/task-complexity.mjs",
272
- "task/task-claims.mjs",
273
283
  "task/task-context.mjs",
274
- "task/task-attachments.mjs",
275
- "task/pipeline.mjs",
276
- "task/msg-hub.mjs",
277
- "task/task-executor.mjs",
284
+ "task/task-debt-ledger.mjs",
278
285
  "task/task-executor-pipeline.mjs",
286
+ "task/task-executor.mjs",
279
287
  "task/task-store.mjs",
288
+ "telegram/get-telegram-chat-id.mjs",
280
289
  "telegram/telegram-bot.mjs",
281
- "server/ui-server.mjs",
282
- "ui/modules/settings-schema.js",
290
+ "telegram/telegram-poll-owner.mjs",
291
+ "telegram/telegram-sentinel.mjs",
292
+ "telegram/whatsapp-channel.mjs",
293
+ "tools/",
294
+ "tools/prepublish-check.mjs",
295
+ "tools/publish.mjs",
296
+ "tools/vendor-sync.mjs",
297
+ "tui/",
283
298
  "ui/",
284
- "infra/update-check.mjs",
299
+ "ui/modules/settings-schema.js",
300
+ "ui/vendor/",
285
301
  "utils.mjs",
286
- "kanban/ve-kanban.mjs",
287
302
  "ve-kanban.ps1",
288
303
  "ve-kanban.sh",
289
- "kanban/ve-orchestrator.mjs",
290
304
  "ve-orchestrator.ps1",
291
305
  "ve-orchestrator.sh",
292
- "rotate-agent-logs.sh",
293
- "kanban/vibe-kanban-wrapper.mjs",
294
- "kanban/vk-error-resolver.mjs",
295
306
  "voice/vision-session-state.mjs",
296
- "kanban/vk-log-stream.mjs",
297
- "voice/voice-auth-manager.mjs",
298
307
  "voice/voice-action-dispatcher.mjs",
299
308
  "voice/voice-agents-sdk.mjs",
309
+ "voice/voice-auth-manager.mjs",
300
310
  "voice/voice-relay.mjs",
301
- "voice/voice-tools.mjs",
302
311
  "voice/voice-tool-definitions.mjs",
303
- "workspace/workspace-manager.mjs",
304
- "workspace/workspace-monitor.mjs",
305
- "workspace-reaper.mjs",
306
- "workspace/workspace-registry.mjs",
307
- "workspace/worktree-manager.mjs",
308
- "agent/agent-hooks.mjs",
309
- "agent/hook-profiles.mjs",
310
- "agent/hook-library.mjs",
311
- "agent/agent-hook-bridge.mjs",
312
- "agent/agent-tool-config.mjs",
313
- "agent/agent-supervisor.mjs",
314
- "agent/agent-work-analyzer.mjs",
315
- "infra/startup-service.mjs",
316
- "infra/runtime-accumulator.mjs",
317
- "infra/tracing.mjs",
318
- "telegram/telegram-sentinel.mjs",
319
- "telegram/telegram-poll-owner.mjs",
320
- "telegram/whatsapp-channel.mjs",
321
- "infra/container-runner.mjs",
322
- "infra/daemon-restart-policy.mjs",
323
- "tools/publish.mjs",
324
- "tools/vendor-sync.mjs",
325
- "workflow/workflow-engine.mjs",
326
- "workflow/workflow-migration.mjs",
327
- "workflow/workflow-nodes.mjs",
328
- "workflow/workflow-nodes/transforms.mjs",
329
- "workflow/workflow-nodes/definitions.mjs",
330
- "workflow/workflow-nodes/custom-loader.mjs",
331
- "workflow/project-detection.mjs",
332
- "workflow/workflow-templates.mjs",
333
- "workflow/workflow-contract.mjs",
334
- "workflow/pipeline.mjs",
312
+ "voice/voice-tools.mjs",
335
313
  "workflow-templates/_helpers.mjs",
336
314
  "workflow-templates/agents.mjs",
337
- "workflow-templates/sub-workflows.mjs",
315
+ "workflow-templates/bosun-native.mjs",
338
316
  "workflow-templates/ci-cd.mjs",
317
+ "workflow-templates/code-quality.mjs",
318
+ "workflow-templates/continuation-loop.mjs",
339
319
  "workflow-templates/coverage.mjs",
340
320
  "workflow-templates/github.mjs",
321
+ "workflow-templates/issue-continuation.mjs",
341
322
  "workflow-templates/mcp-integration.mjs",
342
323
  "workflow-templates/planning.mjs",
343
324
  "workflow-templates/reliability.mjs",
344
325
  "workflow-templates/research.mjs",
345
326
  "workflow-templates/security.mjs",
327
+ "workflow-templates/sub-workflows.mjs",
346
328
  "workflow-templates/task-batch.mjs",
347
329
  "workflow-templates/task-execution.mjs",
348
330
  "workflow-templates/task-lifecycle.mjs",
349
- "workflow-templates/issue-continuation.mjs",
350
- "workflow-templates/continuation-loop.mjs",
351
- "workflow-templates/code-quality.mjs",
352
- "workflow-templates/bosun-native.mjs",
353
- "bosun-tui.mjs",
354
- "tui/",
355
- "tools/",
356
- "ui/vendor/",
357
- "workflow/msg-hub.mjs",
358
331
  "workflow/declarative-workflows.mjs",
359
- "entrypoint.mjs",
360
- "infra/health-status.mjs"
332
+ "workflow/execution-ledger.mjs",
333
+ "workflow/manual-flow-audit.mjs",
334
+ "workflow/manual-flows.mjs",
335
+ "workflow/mcp-discovery-proxy.mjs",
336
+ "workflow/mcp-registry.mjs",
337
+ "workflow/mcp-workflow-adapter.mjs",
338
+ "workflow/meeting-workflow-service.mjs",
339
+ "workflow/msg-hub.mjs",
340
+ "workflow/pipeline-workflows.mjs",
341
+ "workflow/pipeline.mjs",
342
+ "workflow/project-detection.mjs",
343
+ "workflow/workflow-cli.mjs",
344
+ "workflow/workflow-contract.mjs",
345
+ "workflow/workflow-engine.mjs",
346
+ "workflow/workflow-migration.mjs",
347
+ "workflow/workflow-nodes.mjs",
348
+ "workflow/workflow-nodes/custom-loader.mjs",
349
+ "workflow/workflow-nodes/definitions.mjs",
350
+ "workflow/workflow-nodes/transforms.mjs",
351
+ "workflow/workflow-templates.mjs",
352
+ "workspace-reaper.mjs",
353
+ "workspace/command-diagnostics.mjs",
354
+ "workspace/context-cache.mjs",
355
+ "workspace/context-indexer.mjs",
356
+ "workspace/shared-knowledge.mjs",
357
+ "workspace/shared-state-manager.mjs",
358
+ "workspace/shared-workspace-cli.mjs",
359
+ "workspace/shared-workspace-registry.mjs",
360
+ "workspace/workspace-manager.mjs",
361
+ "workspace/workspace-monitor.mjs",
362
+ "workspace/workspace-registry.mjs",
363
+ "workspace/worktree-manager.mjs"
361
364
  ],
362
365
  "dependencies": {
363
366
  "@anthropic-ai/claude-agent-sdk": "latest",