@wrongstack/webui-server 0.306.4 → 0.307.1
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 +3567 -2746
- package/dist/protocol/client-integrations.d.ts +1 -1
- package/dist/protocol/client-operations.d.ts +1 -1
- package/dist/protocol/client-workspace.d.ts +1 -1
- package/dist/protocol/index.js +14 -0
- package/dist/protocol/registry.d.ts +2 -2
- package/dist/protocol/server-integrations.d.ts +1 -1
- package/dist/protocol/server-workspace.d.ts +1 -1
- package/dist/server/collaboration-ws-handler.d.ts +18 -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 +3525 -2716
- 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 +3 -2
- package/dist/server/network-info.d.ts +2 -3
- package/dist/server/project-watcher.d.ts +31 -0
- package/dist/server/prompts-handlers.d.ts +2 -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/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_KNOWLEDGE_MESSAGE_TYPES: readonly ['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'];
|
|
2
|
-
export declare const CLIENT_EXTENSION_MESSAGE_TYPES: readonly ['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 CLIENT_EXTENSION_MESSAGE_TYPES: readonly ['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.journal', 'prompts.list', 'prompts.recent', 'prompts.search', 'prompts.used', 'skills.content', 'skills.create', 'skills.edit', 'skills.export', 'skills.install', 'skills.list', 'skills.uninstall', 'skills.update'];
|
|
3
3
|
//# sourceMappingURL=client-integrations.d.ts.map
|
|
@@ -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
|
@@ -178,6 +178,7 @@ var CLIENT_EXTENSION_MESSAGE_TYPES = [
|
|
|
178
178
|
"prompts.content",
|
|
179
179
|
"prompts.create",
|
|
180
180
|
"prompts.favorite",
|
|
181
|
+
"prompts.journal",
|
|
181
182
|
"prompts.list",
|
|
182
183
|
"prompts.recent",
|
|
183
184
|
"prompts.search",
|
|
@@ -247,6 +248,7 @@ var CLIENT_SDD_MESSAGE_TYPES = [
|
|
|
247
248
|
"sdd.spec.discard",
|
|
248
249
|
"sdd.spec.get",
|
|
249
250
|
"sdd.spec.message",
|
|
251
|
+
"sdd.spec.rewind",
|
|
250
252
|
"sdd.spec.start",
|
|
251
253
|
"specs.get",
|
|
252
254
|
"specs.list",
|
|
@@ -255,8 +257,13 @@ var CLIENT_SDD_MESSAGE_TYPES = [
|
|
|
255
257
|
|
|
256
258
|
// src/protocol/client-workspace.ts
|
|
257
259
|
var CLIENT_WORKSPACE_MESSAGE_TYPES = [
|
|
260
|
+
"files.create",
|
|
261
|
+
"files.delete",
|
|
258
262
|
"files.list",
|
|
263
|
+
"files.move",
|
|
259
264
|
"files.read",
|
|
265
|
+
"files.rename",
|
|
266
|
+
"files.skeleton",
|
|
260
267
|
"files.tree",
|
|
261
268
|
"files.write",
|
|
262
269
|
"git.changes",
|
|
@@ -457,6 +464,7 @@ var SERVER_EXTENSION_MESSAGE_TYPES = [
|
|
|
457
464
|
"prompts.content",
|
|
458
465
|
"prompts.created",
|
|
459
466
|
"prompts.favorite",
|
|
467
|
+
"prompts.journal",
|
|
460
468
|
"prompts.list",
|
|
461
469
|
"prompts.recent",
|
|
462
470
|
"prompts.search",
|
|
@@ -540,9 +548,15 @@ var SERVER_WORKSPACE_MESSAGE_TYPES = [
|
|
|
540
548
|
"codemap.tool_executed",
|
|
541
549
|
"codemap.tool_started",
|
|
542
550
|
"file.saved",
|
|
551
|
+
"files.created",
|
|
552
|
+
"files.deleted",
|
|
543
553
|
"files.list",
|
|
554
|
+
"files.moved",
|
|
544
555
|
"files.read",
|
|
556
|
+
"files.renamed",
|
|
557
|
+
"files.skeleton_result",
|
|
545
558
|
"files.tree",
|
|
559
|
+
"files.tree.changed",
|
|
546
560
|
"files.written",
|
|
547
561
|
"git.changes",
|
|
548
562
|
"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.journal", "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.journal", "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
1
|
export declare const SERVER_KNOWLEDGE_MESSAGE_TYPES: readonly ['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'];
|
|
2
|
-
export declare const SERVER_EXTENSION_MESSAGE_TYPES: readonly ['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'];
|
|
2
|
+
export declare const SERVER_EXTENSION_MESSAGE_TYPES: readonly ['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.journal', '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
|
//# sourceMappingURL=server-integrations.d.ts.map
|
|
@@ -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
|
/**
|
|
@@ -143,6 +150,17 @@ export declare class CollaborationWebSocketHandler {
|
|
|
143
150
|
*/
|
|
144
151
|
private historyEventToKind;
|
|
145
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;
|
|
146
164
|
private ensureBroadcast;
|
|
147
165
|
private stopBroadcast;
|
|
148
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
|