bosun 0.36.0 → 0.36.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/.env.example +98 -16
- package/README.md +27 -0
- package/agent-event-bus.mjs +5 -5
- package/agent-pool.mjs +129 -12
- package/agent-prompts.mjs +7 -1
- package/agent-sdk.mjs +13 -2
- package/agent-supervisor.mjs +2 -2
- package/agent-work-report.mjs +1 -1
- package/anomaly-detector.mjs +6 -6
- package/autofix.mjs +15 -15
- package/bosun-skills.mjs +4 -4
- package/bosun.schema.json +160 -4
- package/claude-shell.mjs +11 -11
- package/cli.mjs +21 -21
- package/codex-config.mjs +19 -19
- package/codex-shell.mjs +180 -29
- package/config-doctor.mjs +27 -2
- package/config.mjs +60 -7
- package/copilot-shell.mjs +4 -4
- package/error-detector.mjs +1 -1
- package/fleet-coordinator.mjs +2 -2
- package/gemini-shell.mjs +692 -0
- package/github-oauth-portal.mjs +1 -1
- package/github-reconciler.mjs +2 -2
- package/kanban-adapter.mjs +741 -168
- package/merge-strategy.mjs +25 -25
- package/monitor.mjs +123 -105
- package/opencode-shell.mjs +22 -22
- package/package.json +7 -1
- package/postinstall.mjs +22 -22
- package/pr-cleanup-daemon.mjs +6 -6
- package/prepublish-check.mjs +4 -4
- package/presence.mjs +2 -2
- package/primary-agent.mjs +85 -7
- package/publish.mjs +1 -1
- package/review-agent.mjs +1 -1
- package/session-tracker.mjs +11 -0
- package/setup-web-server.mjs +429 -21
- package/setup.mjs +367 -12
- package/shared-knowledge.mjs +1 -1
- package/startup-service.mjs +9 -9
- package/stream-resilience.mjs +58 -4
- package/sync-engine.mjs +2 -2
- package/task-assessment.mjs +9 -9
- package/task-cli.mjs +1 -1
- package/task-complexity.mjs +71 -2
- package/task-context.mjs +1 -2
- package/task-executor.mjs +104 -41
- package/telegram-bot.mjs +825 -494
- package/telegram-sentinel.mjs +28 -28
- package/ui/app.js +256 -23
- package/ui/app.monolith.js +1 -1
- package/ui/components/agent-selector.js +4 -3
- package/ui/components/chat-view.js +101 -28
- package/ui/components/diff-viewer.js +3 -3
- package/ui/components/kanban-board.js +3 -3
- package/ui/components/session-list.js +255 -35
- package/ui/components/workspace-switcher.js +3 -3
- package/ui/demo.html +209 -194
- package/ui/index.html +3 -3
- package/ui/modules/icon-utils.js +206 -142
- package/ui/modules/icons.js +2 -27
- package/ui/modules/settings-schema.js +29 -5
- package/ui/modules/streaming.js +30 -2
- package/ui/modules/vision-stream.js +275 -0
- package/ui/modules/voice-client.js +102 -9
- package/ui/modules/voice-fallback.js +62 -6
- package/ui/modules/voice-overlay.js +594 -59
- package/ui/modules/voice.js +31 -38
- package/ui/setup.html +284 -34
- package/ui/styles/components.css +47 -0
- package/ui/styles/sessions.css +75 -0
- package/ui/tabs/agents.js +73 -43
- package/ui/tabs/chat.js +37 -40
- package/ui/tabs/control.js +2 -2
- package/ui/tabs/dashboard.js +1 -1
- package/ui/tabs/infra.js +10 -10
- package/ui/tabs/library.js +8 -8
- package/ui/tabs/logs.js +10 -10
- package/ui/tabs/settings.js +20 -20
- package/ui/tabs/tasks.js +76 -47
- package/ui-server.mjs +1761 -124
- package/update-check.mjs +13 -13
- package/ve-kanban.mjs +1 -1
- package/whatsapp-channel.mjs +5 -5
- package/workflow-engine.mjs +20 -1
- package/workflow-nodes.mjs +904 -4
- package/workflow-templates/agents.mjs +321 -7
- package/workflow-templates/ci-cd.mjs +6 -6
- package/workflow-templates/github.mjs +156 -84
- package/workflow-templates/planning.mjs +8 -8
- package/workflow-templates/reliability.mjs +8 -8
- package/workflow-templates/security.mjs +3 -3
- package/workflow-templates.mjs +15 -9
- package/workspace-manager.mjs +85 -1
- package/workspace-monitor.mjs +2 -2
- package/workspace-registry.mjs +2 -2
- package/worktree-manager.mjs +1 -1
package/copilot-shell.mjs
CHANGED
|
@@ -719,7 +719,7 @@ export async function execCopilotPrompt(userMessage, options = {}) {
|
|
|
719
719
|
if (activeTurn && !options._holdActiveTurn) {
|
|
720
720
|
return {
|
|
721
721
|
finalResponse:
|
|
722
|
-
"
|
|
722
|
+
":clock: Agent is still executing a previous task. Please wait.",
|
|
723
723
|
items: [],
|
|
724
724
|
usage: null,
|
|
725
725
|
};
|
|
@@ -857,8 +857,8 @@ export async function execCopilotPrompt(userMessage, options = {}) {
|
|
|
857
857
|
const reason = abortController?.signal?.reason || "timeout";
|
|
858
858
|
const msg =
|
|
859
859
|
reason === "user_stop"
|
|
860
|
-
? "
|
|
861
|
-
:
|
|
860
|
+
? ":close: Agent stopped by user."
|
|
861
|
+
: `:clock: Agent timed out after ${timeoutMs / 1000}s`;
|
|
862
862
|
return { finalResponse: msg, items: [], usage: null };
|
|
863
863
|
}
|
|
864
864
|
// ── Transient stream retry ──────────────────────────────────────────────────
|
|
@@ -885,7 +885,7 @@ export async function execCopilotPrompt(userMessage, options = {}) {
|
|
|
885
885
|
`[copilot-shell] stream disconnection not resolved after ${MAX_STREAM_RETRIES} attempts`,
|
|
886
886
|
);
|
|
887
887
|
return {
|
|
888
|
-
finalResponse:
|
|
888
|
+
finalResponse: `:close: Stream disconnected after ${MAX_STREAM_RETRIES} retries: ${err.message}`,
|
|
889
889
|
items: [],
|
|
890
890
|
usage: null,
|
|
891
891
|
};
|
package/error-detector.mjs
CHANGED
|
@@ -456,7 +456,7 @@ export class ErrorDetector {
|
|
|
456
456
|
// Block after too many consecutive errors.
|
|
457
457
|
if (errorCount >= this.maxConsecutiveErrors) {
|
|
458
458
|
const reason = `Task has ${errorCount} consecutive errors (max ${this.maxConsecutiveErrors}) — blocking`;
|
|
459
|
-
this._notifyTelegram(
|
|
459
|
+
this._notifyTelegram(`:close: Task ${taskId} blocked: ${reason}`);
|
|
460
460
|
return { action: "block", reason, errorCount };
|
|
461
461
|
}
|
|
462
462
|
|
package/fleet-coordinator.mjs
CHANGED
|
@@ -811,7 +811,7 @@ export function getTotalFleetSlots() {
|
|
|
811
811
|
export function formatFleetSummary() {
|
|
812
812
|
const fp = fleetState.repoFingerprint;
|
|
813
813
|
const lines = [
|
|
814
|
-
|
|
814
|
+
`:server: Fleet Status: ${fleetState.mode.toUpperCase()}`,
|
|
815
815
|
`Repo: ${fp?.normalized || "unknown"} (${fp?.hash?.slice(0, 8) || "no fingerprint"})`,
|
|
816
816
|
`Coordinator: ${fleetState.isCoordinator ? "THIS INSTANCE" : "remote"}`,
|
|
817
817
|
`Fleet size: ${fleetState.fleetSize} workstation(s)`,
|
|
@@ -825,7 +825,7 @@ export function formatFleetSummary() {
|
|
|
825
825
|
const label = peer.instance_label || peer.instance_id;
|
|
826
826
|
const slots = peer.max_parallel ?? "?";
|
|
827
827
|
const host = peer.host || "unknown";
|
|
828
|
-
const coordTag = peer.is_coordinator ? "
|
|
828
|
+
const coordTag = peer.is_coordinator ? " :star:" : "";
|
|
829
829
|
lines.push(` • ${label}${coordTag} — ${host} (${slots} slots)`);
|
|
830
830
|
}
|
|
831
831
|
}
|