@wrongstack/webui-server 0.306.3 → 0.307.0
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/dist/index.js +3744 -2815
- package/dist/protocol/client-operations.d.ts +1 -1
- package/dist/protocol/client-workspace.d.ts +1 -1
- package/dist/protocol/index.js +12 -0
- package/dist/protocol/registry.d.ts +2 -2
- package/dist/protocol/server-workspace.d.ts +1 -1
- package/dist/server/collaboration-ws-handler.d.ts +20 -0
- package/dist/server/connections/collector.d.ts +15 -0
- package/dist/server/connections/helpers.d.ts +18 -0
- package/dist/server/connections/index.d.ts +5 -0
- package/dist/server/connections/service-actions.d.ts +16 -0
- package/dist/server/connections/types.d.ts +55 -0
- package/dist/server/connections-health-route.d.ts +5 -66
- package/dist/server/entry.js +3608 -2696
- package/dist/server/file-handlers.d.ts +37 -0
- package/dist/server/goal-ws-handler.d.ts +16 -0
- package/dist/server/http-server/api-router.d.ts +22 -0
- package/dist/server/http-server/index.d.ts +6 -0
- package/dist/server/http-server/security-helpers.d.ts +24 -0
- package/dist/server/http-server/static-file-handler.d.ts +10 -0
- package/dist/server/http-server.d.ts +28 -87
- package/dist/server/index.d.ts +4 -1
- package/dist/server/network-info.d.ts +2 -3
- package/dist/server/pref-helpers.d.ts +1 -1
- package/dist/server/project-watcher.d.ts +31 -0
- package/dist/server/sdd-board-ws-handler.d.ts +9 -0
- package/dist/server/sdd-wizard-ws-handler.d.ts +1 -0
- package/dist/server/server-runtime.d.ts +1 -1
- package/dist/server/session-cleanup-scheduler.d.ts +26 -0
- package/dist/server/session-deletion.d.ts +13 -0
- package/dist/server/setup-events-pattern-handlers.d.ts +10 -0
- package/dist/server/setup-events-status-watcher.d.ts +1 -1
- package/dist/server/setup-events-subagent-handlers.d.ts +14 -0
- package/dist/server/setup-events-tool-handlers.d.ts +18 -0
- package/dist/server/setup-events.d.ts +1 -2
- package/dist/server/shell-open.d.ts +9 -8
- package/dist/server/start-webui-companion.d.ts +16 -0
- package/dist/server/start-webui-credential-watcher.d.ts +13 -0
- package/dist/server/start-webui-remediation.d.ts +14 -0
- package/dist/server/start-webui-shutdown.d.ts +43 -0
- package/dist/server/start-webui-todos.d.ts +13 -0
- package/dist/server/start-webui.d.ts +2 -29
- package/dist/server/techstack-handlers.d.ts +2 -2
- package/dist/server/worktree-ws-handler.d.ts +7 -0
- package/package.json +13 -13
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export declare const CLIENT_GOAL_MESSAGE_TYPES: readonly ['goal-state.get', 'goal.addTask', 'goal.assess', 'goal.assignTask', 'goal.clear', 'goal.get', 'goal.list', 'goal.load', 'goal.moveTask', 'goal.pause', 'goal.resume', 'goal.retryTask', 'goal.revert', 'goal.runTask', 'goal.save', 'goal.selectPhase', 'goal.start', 'goal.state', 'goal.status', 'goal.stop', 'goal.taskStatus', 'goal.toggleAutonomous', 'plan.get', 'plan.item.update', 'plan.template_use', 'task.update', 'tasks.get'];
|
|
2
|
-
export declare const CLIENT_SDD_MESSAGE_TYPES: readonly ['sdd.board.cancel_task', 'sdd.board.cleanup_worktrees', 'sdd.board.delete_task', 'sdd.board.destroy', 'sdd.board.get', 'sdd.board.list', 'sdd.board.pause', 'sdd.board.reassign', 'sdd.board.resume', 'sdd.board.retry', 'sdd.board.retry_all_failed', 'sdd.board.rollback', 'sdd.board.set_task_fallbacks', 'sdd.board.set_task_model', 'sdd.board.set_task_verification', 'sdd.board.split_task', 'sdd.board.stop', 'sdd.run.from_graph', 'sdd.run.from_spec', 'sdd.run.start', 'sdd.spec.approve', 'sdd.spec.discard', 'sdd.spec.get', 'sdd.spec.message', 'sdd.spec.start', 'specs.get', 'specs.list', 'specs.taskStatus'];
|
|
2
|
+
export declare const CLIENT_SDD_MESSAGE_TYPES: readonly ['sdd.board.cancel_task', 'sdd.board.cleanup_worktrees', 'sdd.board.delete_task', 'sdd.board.destroy', 'sdd.board.get', 'sdd.board.list', 'sdd.board.pause', 'sdd.board.reassign', 'sdd.board.resume', 'sdd.board.retry', 'sdd.board.retry_all_failed', 'sdd.board.rollback', 'sdd.board.set_task_fallbacks', 'sdd.board.set_task_model', 'sdd.board.set_task_verification', 'sdd.board.split_task', 'sdd.board.stop', 'sdd.run.from_graph', 'sdd.run.from_spec', 'sdd.run.start', 'sdd.spec.approve', 'sdd.spec.discard', 'sdd.spec.get', 'sdd.spec.message', 'sdd.spec.rewind', 'sdd.spec.start', 'specs.get', 'specs.list', 'specs.taskStatus'];
|
|
3
3
|
//# sourceMappingURL=client-operations.d.ts.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export declare const CLIENT_WORKSPACE_MESSAGE_TYPES: readonly ['files.list', 'files.read', 'files.tree', 'files.write', 'git.changes', 'git.diff', 'git.info', 'projects.add', 'projects.list', 'projects.select', 'working_dir.set', 'worktree.cleanup', 'worktree.diff', 'worktree.merge', 'worktree.remove', 'worktree.scan', 'shell.open', 'process.kill', 'process.killAll', 'process.list', 'terminal.close', 'terminal.create', 'terminal.input', 'terminal.resize'];
|
|
1
|
+
export declare const CLIENT_WORKSPACE_MESSAGE_TYPES: readonly ['files.create', 'files.delete', 'files.list', 'files.move', 'files.read', 'files.rename', 'files.skeleton', 'files.tree', 'files.write', 'git.changes', 'git.diff', 'git.info', 'projects.add', 'projects.list', 'projects.select', 'working_dir.set', 'worktree.cleanup', 'worktree.diff', 'worktree.merge', 'worktree.remove', 'worktree.scan', 'shell.open', 'process.kill', 'process.killAll', 'process.list', 'terminal.close', 'terminal.create', 'terminal.input', 'terminal.resize'];
|
|
2
2
|
export declare const CLIENT_CONFIGURATION_MESSAGE_TYPES: readonly ['codebase.index.server.shutdown', 'connections.health', 'connections.service_action', 'diag.get', 'key.add', 'key.delete', 'key.set_active', 'key.update', 'prefs.get', 'prefs.update', 'provider.add', 'provider.clear_models', 'provider.custom_models.remove', 'provider.custom_models.set', 'provider.models', 'provider.models.search', 'provider.probe', 'provider.remove', 'provider.status.clear', 'provider.status.get', 'provider.status.retry', 'provider.undo_clear', 'provider.update', 'providers.list', 'providers.saved', 'tool.disable', 'tool.enable', 'tools.list', 'webui.shutdown'];
|
|
3
3
|
//# sourceMappingURL=client-workspace.d.ts.map
|
package/dist/protocol/index.js
CHANGED
|
@@ -247,6 +247,7 @@ var CLIENT_SDD_MESSAGE_TYPES = [
|
|
|
247
247
|
"sdd.spec.discard",
|
|
248
248
|
"sdd.spec.get",
|
|
249
249
|
"sdd.spec.message",
|
|
250
|
+
"sdd.spec.rewind",
|
|
250
251
|
"sdd.spec.start",
|
|
251
252
|
"specs.get",
|
|
252
253
|
"specs.list",
|
|
@@ -255,8 +256,13 @@ var CLIENT_SDD_MESSAGE_TYPES = [
|
|
|
255
256
|
|
|
256
257
|
// src/protocol/client-workspace.ts
|
|
257
258
|
var CLIENT_WORKSPACE_MESSAGE_TYPES = [
|
|
259
|
+
"files.create",
|
|
260
|
+
"files.delete",
|
|
258
261
|
"files.list",
|
|
262
|
+
"files.move",
|
|
259
263
|
"files.read",
|
|
264
|
+
"files.rename",
|
|
265
|
+
"files.skeleton",
|
|
260
266
|
"files.tree",
|
|
261
267
|
"files.write",
|
|
262
268
|
"git.changes",
|
|
@@ -540,9 +546,15 @@ var SERVER_WORKSPACE_MESSAGE_TYPES = [
|
|
|
540
546
|
"codemap.tool_executed",
|
|
541
547
|
"codemap.tool_started",
|
|
542
548
|
"file.saved",
|
|
549
|
+
"files.created",
|
|
550
|
+
"files.deleted",
|
|
543
551
|
"files.list",
|
|
552
|
+
"files.moved",
|
|
544
553
|
"files.read",
|
|
554
|
+
"files.renamed",
|
|
555
|
+
"files.skeleton_result",
|
|
545
556
|
"files.tree",
|
|
557
|
+
"files.tree.changed",
|
|
546
558
|
"files.written",
|
|
547
559
|
"git.changes",
|
|
548
560
|
"git.diff",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export declare const CLIENT_MESSAGE_TYPES: readonly ["abort", "ping", "user_message", "tool.confirm_result", "topic.advice", "completion.request", "model.switch", "model.refine", "model.fallback_choice", "autonomy.switch", "context.clear", "context.compact", "context.debug", "context.editor.open", "context.editor.validate", "context.editor.apply", "context.mode.create", "context.mode.delete", "context.mode.switch", "context.mode.update", "context.modes.list", "context.repair", "mode.switch", "modes.list", "session.checkpoints", "session.delete", "session.inspect", "session.new", "session.rename", "session.resume", "session.rewind", "session.save", "sessions.list", "side_effects.list", "stats.get", "todo.update", "todos.clear", "todos.get", "todos.remove", "collab.join", "collab.leave", "collab.annotate", "collab.resolve", "collab.request_pause", "collab.resume", "collab.grant_control", "collab.inject_tool", "mailbox.action", "mailbox.agents", "mailbox.clear", "mailbox.compact", "mailbox.messages", "mailbox.purge", "mailbox.send", "files.list", "files.read", "files.tree", "files.write", "git.changes", "git.diff", "git.info", "projects.add", "projects.list", "projects.select", "working_dir.set", "worktree.cleanup", "worktree.diff", "worktree.merge", "worktree.remove", "worktree.scan", "shell.open", "process.kill", "process.killAll", "process.list", "terminal.close", "terminal.create", "terminal.input", "terminal.resize", "codebase.index.server.shutdown", "connections.health", "connections.service_action", "diag.get", "key.add", "key.delete", "key.set_active", "key.update", "prefs.get", "prefs.update", "provider.add", "provider.clear_models", "provider.custom_models.remove", "provider.custom_models.set", "provider.models", "provider.models.search", "provider.probe", "provider.remove", "provider.status.clear", "provider.status.get", "provider.status.retry", "provider.undo_clear", "provider.update", "providers.list", "providers.saved", "tool.disable", "tool.enable", "tools.list", "webui.shutdown", "goal-state.get", "goal.addTask", "goal.assess", "goal.assignTask", "goal.clear", "goal.get", "goal.list", "goal.load", "goal.moveTask", "goal.pause", "goal.resume", "goal.retryTask", "goal.revert", "goal.runTask", "goal.save", "goal.selectPhase", "goal.start", "goal.state", "goal.status", "goal.stop", "goal.taskStatus", "goal.toggleAutonomous", "plan.get", "plan.item.update", "plan.template_use", "task.update", "tasks.get", "sdd.board.cancel_task", "sdd.board.cleanup_worktrees", "sdd.board.delete_task", "sdd.board.destroy", "sdd.board.get", "sdd.board.list", "sdd.board.pause", "sdd.board.reassign", "sdd.board.resume", "sdd.board.retry", "sdd.board.retry_all_failed", "sdd.board.rollback", "sdd.board.set_task_fallbacks", "sdd.board.set_task_model", "sdd.board.set_task_verification", "sdd.board.split_task", "sdd.board.stop", "sdd.run.from_graph", "sdd.run.from_spec", "sdd.run.start", "sdd.spec.approve", "sdd.spec.discard", "sdd.spec.get", "sdd.spec.message", "sdd.spec.start", "specs.get", "specs.list", "specs.taskStatus", "brain.ask", "brain.config.get", "brain.config.set", "brain.risk", "brain.status", "chronicle.facet", "chronicle.facets", "chronicle.graph", "chronicle.metrics", "chronicle.query", "chronicle.status", "config.doctor", "design.list", "design.materialize", "design.set", "design.state", "design.swap", "design.tune", "design.use", "design.verify", "memory.list", "memory.sage.backfillRecoverable", "memory.sage.candidateResolve", "memory.sage.delete", "memory.sage.forFile", "memory.sage.get", "memory.sage.graph", "memory.sage.list", "memory.sage.listCandidates", "memory.sage.listPage", "memory.sage.recover", "memory.sage.remember", "memory.sage.update", "auth.oauth.cancel", "auth.oauth.code", "auth.oauth.start", "mcp.add", "mcp.disable", "mcp.discover", "mcp.enable", "mcp.list", "mcp.prompt.get", "mcp.prompts", "mcp.remove", "mcp.resource.read", "mcp.resources", "mcp.restart", "mcp.sleep", "mcp.update", "mcp.wake", "prompts.content", "prompts.create", "prompts.favorite", "prompts.list", "prompts.recent", "prompts.search", "prompts.used", "skills.content", "skills.create", "skills.edit", "skills.export", "skills.install", "skills.list", "skills.uninstall", "skills.update"];
|
|
2
|
-
export declare const SERVER_MESSAGE_TYPES: readonly ["error", "log", "pong", "side_effects", "agent.status_changed", "agent.timeline.message", "client.status_update", "chimera.report_available", "compaction.failed", "completion.result", "context.compacted", "context.debug", "context.editor.snapshot", "context.editor.validation", "context.editor.applied", "context.mode.changed", "context.modes.list", "context.repaired", "ctx.max_context", "ctx.pct", "delegate.completed", "delegate.started", "iteration.completed", "iteration.limit_reached", "iteration.started", "model.refine_result", "modes.list", "provider.active_blocked", "provider.error", "provider.fallback", "provider.fallback_pending", "provider.response", "provider.retry", "provider.status_changed", "provider.stream_error", "provider.text_delta", "provider.thinking_delta", "run.result", "session.checkpoints", "session.damaged", "session.end", "session.inspect", "session.rewound", "session.start", "session.stats", "sessions.list", "sessions.status_update", "stats.get", "token.cost_estimate_unavailable", "token.threshold", "tool.confirm_needed", "tool.disabled", "tool.enabled", "tool.executed", "tool.loop_detected", "tool.progress", "tool.started", "topic.advice_result", "tools.list", "trust.persisted", "collab.annotation.added", "collab.annotation.resolved", "collab.event", "collab.injection.granted", "collab.participant.joined", "collab.participant.left", "collab.pause.granted", "collab.pause.released", "collab.state", "mailbox.action_result", "mailbox.agent_registered", "mailbox.agent_deregistered", "mailbox.agents", "mailbox.cleared", "mailbox.compacted", "mailbox.event", "mailbox.messages", "mailbox.sent", "mailbox.purged", "mailbox.received", "subagent.budget_extended", "subagent.event", "checkpoint.written", "codemap.file_event", "codemap.index_updated", "codemap.tool_executed", "codemap.tool_started", "file.saved", "files.list", "files.read", "files.tree", "files.written", "git.changes", "git.diff", "git.info", "process.list", "projects.added", "projects.list", "projects.selected", "terminal.exit", "terminal.output", "working_dir.changed", "worktree.cleanup_result", "worktree.diff_result", "worktree.event", "worktree.merge_result", "worktree.orphans", "worktree.state", "auth.oauth.status", "codebase.index.server.shutdown_result", "connections.health_error", "connections.health_result", "connections.service_action_result", "diag.get", "key.operation_result", "model.switch_result", "prefs.updated", "provider.catalog", "provider.models", "provider.models.search_result", "provider.probe", "provider.status.snapshot", "providers.saved", "budget.decision", "budget.threshold_reached", "coordinator.stats", "coordinator.status", "eternal.iteration", "fleet.concurrency_update", "goal-state.updated", "goal.assess.result", "goal.list", "goal.paused", "goal.resumed", "goal.saved", "goal.error", "goal.stopped", "goal.failed", "goal.completed", "goal.cleared", "goal.reverted", "goal.progress", "goal.state", "in_flight.ended", "in_flight.started", "plan.updated", "task.completed", "task.failed", "task.pending", "task.started", "tasks.updated", "todos.cleared", "todos.updated", "kanban.task.activity", "sdd.board.lifecycle_result", "sdd.board.list", "sdd.board.snapshot", "sdd.run.started", "sdd.spec.agent_text", "sdd.spec.error", "sdd.spec.snapshot", "specs.detail", "specs.list", "consensus.vote_cast", "consensus.vote_initiated", "consensus.vote_resolved", "cron.job_fired", "cron.snapshot", "techstack.job.cancelled", "techstack.job.failed", "techstack.job.progress", "techstack.job.started", "techstack.report.delivered", "techstack.report.ready", "techstack.snapshot.updated", "techstack.workspace.completed", "brain.answer", "brain.config", "brain.event", "brain.status", "chronicle.error", "chronicle.facet_result", "chronicle.facets_result", "chronicle.graph_result", "chronicle.metrics_result", "chronicle.query_result", "chronicle.status_result", "config.doctor.result", "design.list", "design.materialize", "design.set", "design.state", "design.swap", "design.tune", "design.use", "design.verify", "memory.event", "memory.list", "memory.sage.backfillRecoverable", "memory.sage.candidateResolve", "memory.sage.delete", "memory.sage.forFile", "memory.sage.get", "memory.sage.graph", "memory.sage.list", "memory.sage.listCandidates", "memory.sage.listPage", "memory.sage.recover", "memory.sage.remember", "memory.sage.update", "mcp.content.error", "mcp.content.selected", "mcp.list", "mcp.operation_result", "mcp.prompts", "mcp.resources", "mcp.server.added", "mcp.server.connected", "mcp.server.disconnected", "mcp.server.discovered", "mcp.server.error", "mcp.server.reconnected", "mcp.server.removed", "mcp.server.sleeping", "mcp.server.updated", "mcp.server.waking", "prompts.content", "prompts.created", "prompts.favorite", "prompts.list", "prompts.recent", "prompts.search", "prompts.used", "skills.content", "skills.created", "skills.edited", "skills.exported", "skills.installed", "skills.list", "skills.uninstalled", "skills.updated"];
|
|
1
|
+
export declare const CLIENT_MESSAGE_TYPES: readonly ["abort", "ping", "user_message", "tool.confirm_result", "topic.advice", "completion.request", "model.switch", "model.refine", "model.fallback_choice", "autonomy.switch", "context.clear", "context.compact", "context.debug", "context.editor.open", "context.editor.validate", "context.editor.apply", "context.mode.create", "context.mode.delete", "context.mode.switch", "context.mode.update", "context.modes.list", "context.repair", "mode.switch", "modes.list", "session.checkpoints", "session.delete", "session.inspect", "session.new", "session.rename", "session.resume", "session.rewind", "session.save", "sessions.list", "side_effects.list", "stats.get", "todo.update", "todos.clear", "todos.get", "todos.remove", "collab.join", "collab.leave", "collab.annotate", "collab.resolve", "collab.request_pause", "collab.resume", "collab.grant_control", "collab.inject_tool", "mailbox.action", "mailbox.agents", "mailbox.clear", "mailbox.compact", "mailbox.messages", "mailbox.purge", "mailbox.send", "files.create", "files.delete", "files.list", "files.move", "files.read", "files.rename", "files.skeleton", "files.tree", "files.write", "git.changes", "git.diff", "git.info", "projects.add", "projects.list", "projects.select", "working_dir.set", "worktree.cleanup", "worktree.diff", "worktree.merge", "worktree.remove", "worktree.scan", "shell.open", "process.kill", "process.killAll", "process.list", "terminal.close", "terminal.create", "terminal.input", "terminal.resize", "codebase.index.server.shutdown", "connections.health", "connections.service_action", "diag.get", "key.add", "key.delete", "key.set_active", "key.update", "prefs.get", "prefs.update", "provider.add", "provider.clear_models", "provider.custom_models.remove", "provider.custom_models.set", "provider.models", "provider.models.search", "provider.probe", "provider.remove", "provider.status.clear", "provider.status.get", "provider.status.retry", "provider.undo_clear", "provider.update", "providers.list", "providers.saved", "tool.disable", "tool.enable", "tools.list", "webui.shutdown", "goal-state.get", "goal.addTask", "goal.assess", "goal.assignTask", "goal.clear", "goal.get", "goal.list", "goal.load", "goal.moveTask", "goal.pause", "goal.resume", "goal.retryTask", "goal.revert", "goal.runTask", "goal.save", "goal.selectPhase", "goal.start", "goal.state", "goal.status", "goal.stop", "goal.taskStatus", "goal.toggleAutonomous", "plan.get", "plan.item.update", "plan.template_use", "task.update", "tasks.get", "sdd.board.cancel_task", "sdd.board.cleanup_worktrees", "sdd.board.delete_task", "sdd.board.destroy", "sdd.board.get", "sdd.board.list", "sdd.board.pause", "sdd.board.reassign", "sdd.board.resume", "sdd.board.retry", "sdd.board.retry_all_failed", "sdd.board.rollback", "sdd.board.set_task_fallbacks", "sdd.board.set_task_model", "sdd.board.set_task_verification", "sdd.board.split_task", "sdd.board.stop", "sdd.run.from_graph", "sdd.run.from_spec", "sdd.run.start", "sdd.spec.approve", "sdd.spec.discard", "sdd.spec.get", "sdd.spec.message", "sdd.spec.rewind", "sdd.spec.start", "specs.get", "specs.list", "specs.taskStatus", "brain.ask", "brain.config.get", "brain.config.set", "brain.risk", "brain.status", "chronicle.facet", "chronicle.facets", "chronicle.graph", "chronicle.metrics", "chronicle.query", "chronicle.status", "config.doctor", "design.list", "design.materialize", "design.set", "design.state", "design.swap", "design.tune", "design.use", "design.verify", "memory.list", "memory.sage.backfillRecoverable", "memory.sage.candidateResolve", "memory.sage.delete", "memory.sage.forFile", "memory.sage.get", "memory.sage.graph", "memory.sage.list", "memory.sage.listCandidates", "memory.sage.listPage", "memory.sage.recover", "memory.sage.remember", "memory.sage.update", "auth.oauth.cancel", "auth.oauth.code", "auth.oauth.start", "mcp.add", "mcp.disable", "mcp.discover", "mcp.enable", "mcp.list", "mcp.prompt.get", "mcp.prompts", "mcp.remove", "mcp.resource.read", "mcp.resources", "mcp.restart", "mcp.sleep", "mcp.update", "mcp.wake", "prompts.content", "prompts.create", "prompts.favorite", "prompts.list", "prompts.recent", "prompts.search", "prompts.used", "skills.content", "skills.create", "skills.edit", "skills.export", "skills.install", "skills.list", "skills.uninstall", "skills.update"];
|
|
2
|
+
export declare const SERVER_MESSAGE_TYPES: readonly ["error", "log", "pong", "side_effects", "agent.status_changed", "agent.timeline.message", "client.status_update", "chimera.report_available", "compaction.failed", "completion.result", "context.compacted", "context.debug", "context.editor.snapshot", "context.editor.validation", "context.editor.applied", "context.mode.changed", "context.modes.list", "context.repaired", "ctx.max_context", "ctx.pct", "delegate.completed", "delegate.started", "iteration.completed", "iteration.limit_reached", "iteration.started", "model.refine_result", "modes.list", "provider.active_blocked", "provider.error", "provider.fallback", "provider.fallback_pending", "provider.response", "provider.retry", "provider.status_changed", "provider.stream_error", "provider.text_delta", "provider.thinking_delta", "run.result", "session.checkpoints", "session.damaged", "session.end", "session.inspect", "session.rewound", "session.start", "session.stats", "sessions.list", "sessions.status_update", "stats.get", "token.cost_estimate_unavailable", "token.threshold", "tool.confirm_needed", "tool.disabled", "tool.enabled", "tool.executed", "tool.loop_detected", "tool.progress", "tool.started", "topic.advice_result", "tools.list", "trust.persisted", "collab.annotation.added", "collab.annotation.resolved", "collab.event", "collab.injection.granted", "collab.participant.joined", "collab.participant.left", "collab.pause.granted", "collab.pause.released", "collab.state", "mailbox.action_result", "mailbox.agent_registered", "mailbox.agent_deregistered", "mailbox.agents", "mailbox.cleared", "mailbox.compacted", "mailbox.event", "mailbox.messages", "mailbox.sent", "mailbox.purged", "mailbox.received", "subagent.budget_extended", "subagent.event", "checkpoint.written", "codemap.file_event", "codemap.index_updated", "codemap.tool_executed", "codemap.tool_started", "file.saved", "files.created", "files.deleted", "files.list", "files.moved", "files.read", "files.renamed", "files.skeleton_result", "files.tree", "files.tree.changed", "files.written", "git.changes", "git.diff", "git.info", "process.list", "projects.added", "projects.list", "projects.selected", "terminal.exit", "terminal.output", "working_dir.changed", "worktree.cleanup_result", "worktree.diff_result", "worktree.event", "worktree.merge_result", "worktree.orphans", "worktree.state", "auth.oauth.status", "codebase.index.server.shutdown_result", "connections.health_error", "connections.health_result", "connections.service_action_result", "diag.get", "key.operation_result", "model.switch_result", "prefs.updated", "provider.catalog", "provider.models", "provider.models.search_result", "provider.probe", "provider.status.snapshot", "providers.saved", "budget.decision", "budget.threshold_reached", "coordinator.stats", "coordinator.status", "eternal.iteration", "fleet.concurrency_update", "goal-state.updated", "goal.assess.result", "goal.list", "goal.paused", "goal.resumed", "goal.saved", "goal.error", "goal.stopped", "goal.failed", "goal.completed", "goal.cleared", "goal.reverted", "goal.progress", "goal.state", "in_flight.ended", "in_flight.started", "plan.updated", "task.completed", "task.failed", "task.pending", "task.started", "tasks.updated", "todos.cleared", "todos.updated", "kanban.task.activity", "sdd.board.lifecycle_result", "sdd.board.list", "sdd.board.snapshot", "sdd.run.started", "sdd.spec.agent_text", "sdd.spec.error", "sdd.spec.snapshot", "specs.detail", "specs.list", "consensus.vote_cast", "consensus.vote_initiated", "consensus.vote_resolved", "cron.job_fired", "cron.snapshot", "techstack.job.cancelled", "techstack.job.failed", "techstack.job.progress", "techstack.job.started", "techstack.report.delivered", "techstack.report.ready", "techstack.snapshot.updated", "techstack.workspace.completed", "brain.answer", "brain.config", "brain.event", "brain.status", "chronicle.error", "chronicle.facet_result", "chronicle.facets_result", "chronicle.graph_result", "chronicle.metrics_result", "chronicle.query_result", "chronicle.status_result", "config.doctor.result", "design.list", "design.materialize", "design.set", "design.state", "design.swap", "design.tune", "design.use", "design.verify", "memory.event", "memory.list", "memory.sage.backfillRecoverable", "memory.sage.candidateResolve", "memory.sage.delete", "memory.sage.forFile", "memory.sage.get", "memory.sage.graph", "memory.sage.list", "memory.sage.listCandidates", "memory.sage.listPage", "memory.sage.recover", "memory.sage.remember", "memory.sage.update", "mcp.content.error", "mcp.content.selected", "mcp.list", "mcp.operation_result", "mcp.prompts", "mcp.resources", "mcp.server.added", "mcp.server.connected", "mcp.server.disconnected", "mcp.server.discovered", "mcp.server.error", "mcp.server.reconnected", "mcp.server.removed", "mcp.server.sleeping", "mcp.server.updated", "mcp.server.waking", "prompts.content", "prompts.created", "prompts.favorite", "prompts.list", "prompts.recent", "prompts.search", "prompts.used", "skills.content", "skills.created", "skills.edited", "skills.exported", "skills.installed", "skills.list", "skills.uninstalled", "skills.updated"];
|
|
3
3
|
export type ExactClientMessageType = (typeof CLIENT_MESSAGE_TYPES)[number];
|
|
4
4
|
export type ExactServerMessageType = (typeof SERVER_MESSAGE_TYPES)[number];
|
|
5
5
|
export declare function isRegisteredMessageType(type: string, direction: 'client' | 'server'): boolean;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export declare const SERVER_WORKSPACE_MESSAGE_TYPES: readonly ['checkpoint.written', 'codemap.file_event', 'codemap.index_updated', 'codemap.tool_executed', 'codemap.tool_started', 'file.saved', 'files.list', 'files.read', 'files.tree', 'files.written', 'git.changes', 'git.diff', 'git.info', 'process.list', 'projects.added', 'projects.list', 'projects.selected', 'terminal.exit', 'terminal.output', 'working_dir.changed', 'worktree.cleanup_result', 'worktree.diff_result', 'worktree.event', 'worktree.merge_result', 'worktree.orphans', 'worktree.state'];
|
|
1
|
+
export declare const SERVER_WORKSPACE_MESSAGE_TYPES: readonly ['checkpoint.written', 'codemap.file_event', 'codemap.index_updated', 'codemap.tool_executed', 'codemap.tool_started', 'file.saved', 'files.created', 'files.deleted', 'files.list', 'files.moved', 'files.read', 'files.renamed', 'files.skeleton_result', 'files.tree', 'files.tree.changed', 'files.written', 'git.changes', 'git.diff', 'git.info', 'process.list', 'projects.added', 'projects.list', 'projects.selected', 'terminal.exit', 'terminal.output', 'working_dir.changed', 'worktree.cleanup_result', 'worktree.diff_result', 'worktree.event', 'worktree.merge_result', 'worktree.orphans', 'worktree.state'];
|
|
2
2
|
export declare const SERVER_CONFIGURATION_MESSAGE_TYPES: readonly ['auth.oauth.status', 'codebase.index.server.shutdown_result', 'connections.health_error', 'connections.health_result', 'connections.service_action_result', 'diag.get', 'key.operation_result', 'model.switch_result', 'prefs.updated', 'provider.catalog', 'provider.models', 'provider.models.search_result', 'provider.probe', 'provider.status.snapshot', 'providers.saved'];
|
|
3
3
|
//# sourceMappingURL=server-workspace.d.ts.map
|
|
@@ -71,6 +71,13 @@ export declare class CollaborationWebSocketHandler {
|
|
|
71
71
|
/** sessionId → participants currently watching it. */
|
|
72
72
|
private readonly bySession;
|
|
73
73
|
private broadcastInterval;
|
|
74
|
+
/**
|
|
75
|
+
* Last-broadcast participant-set fingerprint per session. The 2s interval
|
|
76
|
+
* only re-sends `collab.state` when the fingerprint changed (join/leave),
|
|
77
|
+
* so an idle session costs one tiny string build per tick instead of a
|
|
78
|
+
* serialize + fan-out.
|
|
79
|
+
*/
|
|
80
|
+
private readonly lastStateFingerprints;
|
|
74
81
|
private readonly offs;
|
|
75
82
|
constructor(events: EventBus, logger: Logger,
|
|
76
83
|
/**
|
|
@@ -95,6 +102,8 @@ export declare class CollaborationWebSocketHandler {
|
|
|
95
102
|
*/
|
|
96
103
|
bus?: CollaborationBus | undefined, options?: CollaborationHandlerOptions);
|
|
97
104
|
addClient(ws: WebSocket): void;
|
|
105
|
+
/** True while at least one collaboration participant is attached to a session. */
|
|
106
|
+
hasParticipants(sessionId: string): boolean;
|
|
98
107
|
dispose(): void;
|
|
99
108
|
/**
|
|
100
109
|
* Dispatch a parsed client message. Returns true when the message was
|
|
@@ -141,6 +150,17 @@ export declare class CollaborationWebSocketHandler {
|
|
|
141
150
|
*/
|
|
142
151
|
private historyEventToKind;
|
|
143
152
|
private stateMessage;
|
|
153
|
+
/**
|
|
154
|
+
* Cheap participant-set identity: participant ids are unique per join and
|
|
155
|
+
* `joinedAt` distinguishes a rejoin, so the fingerprint changes exactly on
|
|
156
|
+
* join/leave — the only events that alter `collab.state`.
|
|
157
|
+
*/
|
|
158
|
+
private stateFingerprint;
|
|
159
|
+
/**
|
|
160
|
+
* Broadcast the current state for a session and record the fingerprint.
|
|
161
|
+
* Used on join/leave (eager broadcast) and by the periodic interval.
|
|
162
|
+
*/
|
|
163
|
+
private broadcastState;
|
|
144
164
|
private ensureBroadcast;
|
|
145
165
|
private stopBroadcast;
|
|
146
166
|
private broadcast;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { ConnectionHealthService, ConnectionsHealthReport } from './types.js';
|
|
2
|
+
export declare function collectConnectionsHealth(options: {
|
|
3
|
+
projectRoot: string;
|
|
4
|
+
indexDir?: string | undefined;
|
|
5
|
+
backend: ConnectionsHealthReport['backend'];
|
|
6
|
+
}): Promise<ConnectionsHealthReport>;
|
|
7
|
+
export declare function webuiHealth(backend: ConnectionsHealthReport['backend']): ConnectionHealthService;
|
|
8
|
+
export declare function sessionCatalogHealth(projectRoot: string): Promise<ConnectionHealthService>;
|
|
9
|
+
export declare function chronicleHealth(projectRoot: string): Promise<ConnectionHealthService>;
|
|
10
|
+
export declare function codebaseIndexHealth(projectRoot: string, indexDir?: string): Promise<ConnectionHealthService>;
|
|
11
|
+
export declare function sageHealth(projectRoot: string): Promise<ConnectionHealthService>;
|
|
12
|
+
export declare function kanbanHealth(projectRoot: string): Promise<ConnectionHealthService>;
|
|
13
|
+
export declare function mailboxHealth(projectRoot: string): Promise<ConnectionHealthService>;
|
|
14
|
+
export declare function governanceHealth(projectRoot: string): Promise<ConnectionHealthService>;
|
|
15
|
+
//# sourceMappingURL=collector.d.ts.map
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { ConnectionHealthService } from './types.js';
|
|
2
|
+
export declare const RESTART_POLL_INTERVAL_MS = 250;
|
|
3
|
+
export declare const RESTART_DEADLINE_MS = 3000;
|
|
4
|
+
/**
|
|
5
|
+
* Raw socket probe — checks if anything is listening on an IPC endpoint
|
|
6
|
+
* (Unix domain socket or Windows named pipe) without sending protocol frames.
|
|
7
|
+
* Used for services whose client API offers no non-spawning probe.
|
|
8
|
+
*/
|
|
9
|
+
export declare function isEndpointAlive(endpoint: string): Promise<boolean>;
|
|
10
|
+
/**
|
|
11
|
+
* Give a shutdown signal time to take effect before re-establishing the
|
|
12
|
+
* connection. When a probe is provided, polls until the server confirms it
|
|
13
|
+
* is down. Falls back to a single sleep when no probe is available.
|
|
14
|
+
*/
|
|
15
|
+
export declare function waitForShutdown(probe?: () => Promise<boolean>): Promise<void>;
|
|
16
|
+
export declare function failureService(id: ConnectionHealthService['id'], label: string, required: boolean, mode: string, error: unknown, latencyMs?: number): ConnectionHealthService;
|
|
17
|
+
export declare function isOfflineConnectionError(error: unknown): boolean;
|
|
18
|
+
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { WebSocket } from 'ws';
|
|
2
|
+
import type { WSClientMessage } from '../types.js';
|
|
3
|
+
import type { ConnectionHealthService, ConnectionsHealthContext, ServiceActionResult } from './types.js';
|
|
4
|
+
export declare function handleConnectionsServiceAction(ws: WebSocket, message: WSClientMessage, context: ConnectionsHealthContext): Promise<boolean>;
|
|
5
|
+
export declare function executeServiceAction(serviceId: ConnectionHealthService['id'], action: 'shutdown' | 'restart', projectRoot: string, indexDir: string | undefined): Promise<ServiceActionResult>;
|
|
6
|
+
export declare function killKanbanServer(projectRoot: string, action: 'shutdown' | 'restart'): Promise<ServiceActionResult>;
|
|
7
|
+
export declare function restartKanbanServer(projectRoot: string): Promise<ServiceActionResult>;
|
|
8
|
+
export declare function killSageServer(projectRoot: string, action: 'shutdown' | 'restart'): Promise<ServiceActionResult>;
|
|
9
|
+
export declare function restartSageServer(projectRoot: string): Promise<ServiceActionResult>;
|
|
10
|
+
export declare function killChronicleServer(projectRoot: string, action: 'shutdown' | 'restart'): Promise<ServiceActionResult>;
|
|
11
|
+
export declare function restartChronicleServer(projectRoot: string): Promise<ServiceActionResult>;
|
|
12
|
+
export declare function killCodebaseIndexServer(projectRoot: string, indexDir: string | undefined, action: 'shutdown' | 'restart'): Promise<ServiceActionResult>;
|
|
13
|
+
export declare function restartCodebaseIndexServer(projectRoot: string, indexDir: string | undefined): Promise<ServiceActionResult>;
|
|
14
|
+
export declare function killMailboxServer(projectRoot: string, action: 'shutdown' | 'restart'): Promise<ServiceActionResult>;
|
|
15
|
+
export declare function restartMailboxServer(projectRoot: string): Promise<ServiceActionResult>;
|
|
16
|
+
//# sourceMappingURL=service-actions.d.ts.map
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import type { TrustBoundary } from '@wrongstack/core/security';
|
|
2
|
+
import type { WebSocket } from 'ws';
|
|
3
|
+
import type { authorizeWebUIAction } from '../privileged-actions.js';
|
|
4
|
+
import type { WSServerMessage } from '../types.js';
|
|
5
|
+
export type ConnectionHealthStatus = 'healthy' | 'degraded' | 'offline' | 'unavailable' | 'error';
|
|
6
|
+
export interface ConnectionHealthService {
|
|
7
|
+
id: 'webui' | 'session-catalog' | 'chronicle' | 'codebase-index' | 'sage' | 'kanban' | 'mailbox' | 'governance';
|
|
8
|
+
label: string;
|
|
9
|
+
status: ConnectionHealthStatus;
|
|
10
|
+
required: boolean;
|
|
11
|
+
mode: string;
|
|
12
|
+
detail: string;
|
|
13
|
+
ownerPid?: number | undefined;
|
|
14
|
+
endpoint?: string | undefined;
|
|
15
|
+
storage?: string | undefined;
|
|
16
|
+
uptimeMs?: number | undefined;
|
|
17
|
+
latencyMs?: number | undefined;
|
|
18
|
+
clients?: number | undefined;
|
|
19
|
+
activeRequests?: number | undefined;
|
|
20
|
+
queuedWork?: number | undefined;
|
|
21
|
+
watcher?: {
|
|
22
|
+
active: boolean;
|
|
23
|
+
watchedFiles?: number | undefined;
|
|
24
|
+
} | undefined;
|
|
25
|
+
lastError?: string | undefined;
|
|
26
|
+
control?: 'shutdown' | 'none' | undefined;
|
|
27
|
+
advisory?: {
|
|
28
|
+
code: string;
|
|
29
|
+
operatorAction: 'none' | 'observe' | 'investigate';
|
|
30
|
+
executionDisposition: 'continue';
|
|
31
|
+
} | undefined;
|
|
32
|
+
}
|
|
33
|
+
export interface ConnectionsHealthReport {
|
|
34
|
+
checkedAt: number;
|
|
35
|
+
overall: 'healthy' | 'degraded' | 'error';
|
|
36
|
+
backend: 'standalone' | 'cli-embedded';
|
|
37
|
+
projectRoot: string;
|
|
38
|
+
services: ConnectionHealthService[];
|
|
39
|
+
}
|
|
40
|
+
export interface ConnectionsHealthContext {
|
|
41
|
+
getProjectRoot(): string;
|
|
42
|
+
getIndexDir(): string | undefined;
|
|
43
|
+
send(ws: WebSocket, message: WSServerMessage): void;
|
|
44
|
+
backend: ConnectionsHealthReport['backend'];
|
|
45
|
+
collect?: (() => Promise<ConnectionsHealthReport>) | undefined;
|
|
46
|
+
trustBoundary?: TrustBoundary | undefined;
|
|
47
|
+
logger?: Parameters<typeof authorizeWebUIAction>[2];
|
|
48
|
+
}
|
|
49
|
+
export interface ServiceActionResult {
|
|
50
|
+
serviceId: ConnectionHealthService['id'] | null;
|
|
51
|
+
action: 'shutdown' | 'restart';
|
|
52
|
+
success: boolean;
|
|
53
|
+
message: string;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1,70 +1,9 @@
|
|
|
1
|
-
import type { TrustBoundary } from '@wrongstack/core/security';
|
|
2
1
|
import type { WebSocket } from 'ws';
|
|
3
|
-
import {
|
|
4
|
-
import type { WSClientMessage
|
|
5
|
-
export
|
|
6
|
-
export
|
|
7
|
-
|
|
8
|
-
label: string;
|
|
9
|
-
status: ConnectionHealthStatus;
|
|
10
|
-
required: boolean;
|
|
11
|
-
mode: string;
|
|
12
|
-
detail: string;
|
|
13
|
-
ownerPid?: number | undefined;
|
|
14
|
-
endpoint?: string | undefined;
|
|
15
|
-
storage?: string | undefined;
|
|
16
|
-
uptimeMs?: number | undefined;
|
|
17
|
-
latencyMs?: number | undefined;
|
|
18
|
-
clients?: number | undefined;
|
|
19
|
-
activeRequests?: number | undefined;
|
|
20
|
-
queuedWork?: number | undefined;
|
|
21
|
-
watcher?: {
|
|
22
|
-
active: boolean;
|
|
23
|
-
watchedFiles?: number | undefined;
|
|
24
|
-
} | undefined;
|
|
25
|
-
lastError?: string | undefined;
|
|
26
|
-
control?: 'shutdown' | 'none' | undefined;
|
|
27
|
-
advisory?: {
|
|
28
|
-
code: string;
|
|
29
|
-
operatorAction: 'none' | 'observe' | 'investigate';
|
|
30
|
-
executionDisposition: 'continue';
|
|
31
|
-
} | undefined;
|
|
32
|
-
}
|
|
33
|
-
export interface ConnectionsHealthReport {
|
|
34
|
-
checkedAt: number;
|
|
35
|
-
overall: 'healthy' | 'degraded' | 'error';
|
|
36
|
-
backend: 'standalone' | 'cli-embedded';
|
|
37
|
-
projectRoot: string;
|
|
38
|
-
services: ConnectionHealthService[];
|
|
39
|
-
}
|
|
40
|
-
export interface ConnectionsHealthContext {
|
|
41
|
-
getProjectRoot(): string;
|
|
42
|
-
getIndexDir(): string | undefined;
|
|
43
|
-
send(ws: WebSocket, message: WSServerMessage): void;
|
|
44
|
-
backend: ConnectionsHealthReport['backend'];
|
|
45
|
-
collect?: (() => Promise<ConnectionsHealthReport>) | undefined;
|
|
46
|
-
/**
|
|
47
|
-
* Policy authority for `connections.service_action`. Optional so the
|
|
48
|
-
* read-only `connections.health` route keeps working without one, but the
|
|
49
|
-
* action route REFUSES when it is absent rather than proceeding unchecked —
|
|
50
|
-
* a missing boundary must not read as "allowed".
|
|
51
|
-
*/
|
|
52
|
-
trustBoundary?: TrustBoundary | undefined;
|
|
53
|
-
logger?: Parameters<typeof authorizeWebUIAction>[2];
|
|
54
|
-
}
|
|
2
|
+
import type { ConnectionsHealthContext } from './connections/types.js';
|
|
3
|
+
import type { WSClientMessage } from './types.js';
|
|
4
|
+
export * from './connections/types.js';
|
|
5
|
+
export * from './connections/collector.js';
|
|
6
|
+
export * from './connections/service-actions.js';
|
|
55
7
|
/** One read-only health report for every per-project backend connection. */
|
|
56
8
|
export declare function handleConnectionsHealthRoute(context: ConnectionsHealthContext, ws: WebSocket, message: WSClientMessage): Promise<boolean>;
|
|
57
|
-
export declare function collectConnectionsHealth(options: {
|
|
58
|
-
projectRoot: string;
|
|
59
|
-
indexDir?: string | undefined;
|
|
60
|
-
backend: ConnectionsHealthReport['backend'];
|
|
61
|
-
}): Promise<ConnectionsHealthReport>;
|
|
62
|
-
export interface ServiceActionResult {
|
|
63
|
-
serviceId: ConnectionHealthService['id'] | null;
|
|
64
|
-
action: 'shutdown' | 'restart';
|
|
65
|
-
success: boolean;
|
|
66
|
-
message: string;
|
|
67
|
-
}
|
|
68
|
-
/** Handle WS message type `connections.service_action` — reset or kill a service. */
|
|
69
|
-
export declare function handleConnectionsServiceAction(ws: WebSocket, message: WSClientMessage, context: ConnectionsHealthContext): Promise<boolean>;
|
|
70
9
|
//# sourceMappingURL=connections-health-route.d.ts.map
|