@wrongstack/webui-server 0.307.0 → 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 +28 -0
- package/dist/protocol/client-integrations.d.ts +1 -1
- package/dist/protocol/index.js +2 -0
- package/dist/protocol/registry.d.ts +2 -2
- package/dist/protocol/server-integrations.d.ts +1 -1
- package/dist/server/entry.js +27 -0
- package/dist/server/index.d.ts +1 -1
- package/dist/server/prompts-handlers.d.ts +2 -0
- package/package.json +11 -11
package/dist/index.js
CHANGED
|
@@ -4071,6 +4071,7 @@ async function handleFilesMove(ws, msg, projectRoot) {
|
|
|
4071
4071
|
}
|
|
4072
4072
|
|
|
4073
4073
|
// src/server/prompts-handlers.ts
|
|
4074
|
+
import { getPromptJournalEntries } from "@wrongstack/core/prompts";
|
|
4074
4075
|
function parseVariablesPayload(raw) {
|
|
4075
4076
|
if (!Array.isArray(raw)) return void 0;
|
|
4076
4077
|
const out = [];
|
|
@@ -4274,6 +4275,25 @@ async function handlePromptsRecent(ws, ctx) {
|
|
|
4274
4275
|
send(ws, { type: "prompts.recent", payload: { slugs: [], error: errMessage(err) } });
|
|
4275
4276
|
}
|
|
4276
4277
|
}
|
|
4278
|
+
async function handlePromptsJournal(ws, msg, projectRoot) {
|
|
4279
|
+
if (!projectRoot) {
|
|
4280
|
+
send(ws, { type: "prompts.journal", payload: { enabled: false, entries: [] } });
|
|
4281
|
+
return;
|
|
4282
|
+
}
|
|
4283
|
+
const payload = msg.payload;
|
|
4284
|
+
try {
|
|
4285
|
+
const entries = await getPromptJournalEntries(projectRoot, {
|
|
4286
|
+
...payload?.filter ?? {},
|
|
4287
|
+
limit: payload?.filter?.limit ?? 200
|
|
4288
|
+
});
|
|
4289
|
+
send(ws, { type: "prompts.journal", payload: { enabled: true, entries } });
|
|
4290
|
+
} catch (err) {
|
|
4291
|
+
send(ws, {
|
|
4292
|
+
type: "prompts.journal",
|
|
4293
|
+
payload: { enabled: true, entries: [], error: errMessage(err) }
|
|
4294
|
+
});
|
|
4295
|
+
}
|
|
4296
|
+
}
|
|
4277
4297
|
|
|
4278
4298
|
// src/server/skills-handlers.ts
|
|
4279
4299
|
import { promises as fs6 } from "node:fs";
|
|
@@ -4774,6 +4794,9 @@ async function handleContentRoute(ctx, ws, message) {
|
|
|
4774
4794
|
case "prompts.recent":
|
|
4775
4795
|
await handlePromptsRecent(ws, ctx.getPromptsContext());
|
|
4776
4796
|
return true;
|
|
4797
|
+
case "prompts.journal":
|
|
4798
|
+
await handlePromptsJournal(ws, message, ctx.getProjectRoot());
|
|
4799
|
+
return true;
|
|
4777
4800
|
case "design.list":
|
|
4778
4801
|
await handleDesignList(ws, ctx.getDesignContext());
|
|
4779
4802
|
return true;
|
|
@@ -18232,6 +18255,7 @@ var CLIENT_EXTENSION_MESSAGE_TYPES = [
|
|
|
18232
18255
|
"prompts.content",
|
|
18233
18256
|
"prompts.create",
|
|
18234
18257
|
"prompts.favorite",
|
|
18258
|
+
"prompts.journal",
|
|
18235
18259
|
"prompts.list",
|
|
18236
18260
|
"prompts.recent",
|
|
18237
18261
|
"prompts.search",
|
|
@@ -18517,6 +18541,7 @@ var SERVER_EXTENSION_MESSAGE_TYPES = [
|
|
|
18517
18541
|
"prompts.content",
|
|
18518
18542
|
"prompts.created",
|
|
18519
18543
|
"prompts.favorite",
|
|
18544
|
+
"prompts.journal",
|
|
18520
18545
|
"prompts.list",
|
|
18521
18546
|
"prompts.recent",
|
|
18522
18547
|
"prompts.search",
|
|
@@ -24194,6 +24219,7 @@ import {
|
|
|
24194
24219
|
ObservableBrainArbiter as ObservableBrainArbiterCtor
|
|
24195
24220
|
} from "@wrongstack/core/coordination";
|
|
24196
24221
|
import { installDesignStudioMiddleware } from "@wrongstack/core/design";
|
|
24222
|
+
import { installVibeProtocol } from "@wrongstack/sdd";
|
|
24197
24223
|
import {
|
|
24198
24224
|
AutoCompactionMiddleware as AutoCompactionMiddlewareCtor,
|
|
24199
24225
|
createBrainRuntime,
|
|
@@ -25095,6 +25121,7 @@ async function createAgentServices(input) {
|
|
|
25095
25121
|
const collabPause = collabPauseMiddleware(collabBus, { logger });
|
|
25096
25122
|
pipelines.toolCall.prepend(collabPause);
|
|
25097
25123
|
installDesignStudioMiddleware({ pipelines, ctx: context });
|
|
25124
|
+
installVibeProtocol(pipelines);
|
|
25098
25125
|
const runSageSessionHygiene = setupSage({
|
|
25099
25126
|
config,
|
|
25100
25127
|
pipelines,
|
|
@@ -28331,6 +28358,7 @@ export {
|
|
|
28331
28358
|
handlePromptsContent,
|
|
28332
28359
|
handlePromptsCreate,
|
|
28333
28360
|
handlePromptsFavorite,
|
|
28361
|
+
handlePromptsJournal,
|
|
28334
28362
|
handlePromptsList,
|
|
28335
28363
|
handlePromptsRecent,
|
|
28336
28364
|
handlePromptsSearch,
|
|
@@ -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
|
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",
|
|
@@ -463,6 +464,7 @@ var SERVER_EXTENSION_MESSAGE_TYPES = [
|
|
|
463
464
|
"prompts.content",
|
|
464
465
|
"prompts.created",
|
|
465
466
|
"prompts.favorite",
|
|
467
|
+
"prompts.journal",
|
|
466
468
|
"prompts.list",
|
|
467
469
|
"prompts.recent",
|
|
468
470
|
"prompts.search",
|
|
@@ -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.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"];
|
|
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
|
package/dist/server/entry.js
CHANGED
|
@@ -4028,6 +4028,7 @@ async function handleFilesMove(ws, msg, projectRoot) {
|
|
|
4028
4028
|
}
|
|
4029
4029
|
|
|
4030
4030
|
// src/server/prompts-handlers.ts
|
|
4031
|
+
import { getPromptJournalEntries } from "@wrongstack/core/prompts";
|
|
4031
4032
|
function parseVariablesPayload(raw) {
|
|
4032
4033
|
if (!Array.isArray(raw)) return void 0;
|
|
4033
4034
|
const out = [];
|
|
@@ -4231,6 +4232,25 @@ async function handlePromptsRecent(ws, ctx) {
|
|
|
4231
4232
|
send(ws, { type: "prompts.recent", payload: { slugs: [], error: errMessage(err) } });
|
|
4232
4233
|
}
|
|
4233
4234
|
}
|
|
4235
|
+
async function handlePromptsJournal(ws, msg, projectRoot) {
|
|
4236
|
+
if (!projectRoot) {
|
|
4237
|
+
send(ws, { type: "prompts.journal", payload: { enabled: false, entries: [] } });
|
|
4238
|
+
return;
|
|
4239
|
+
}
|
|
4240
|
+
const payload = msg.payload;
|
|
4241
|
+
try {
|
|
4242
|
+
const entries = await getPromptJournalEntries(projectRoot, {
|
|
4243
|
+
...payload?.filter ?? {},
|
|
4244
|
+
limit: payload?.filter?.limit ?? 200
|
|
4245
|
+
});
|
|
4246
|
+
send(ws, { type: "prompts.journal", payload: { enabled: true, entries } });
|
|
4247
|
+
} catch (err) {
|
|
4248
|
+
send(ws, {
|
|
4249
|
+
type: "prompts.journal",
|
|
4250
|
+
payload: { enabled: true, entries: [], error: errMessage(err) }
|
|
4251
|
+
});
|
|
4252
|
+
}
|
|
4253
|
+
}
|
|
4234
4254
|
|
|
4235
4255
|
// src/server/skills-handlers.ts
|
|
4236
4256
|
import { promises as fs6 } from "node:fs";
|
|
@@ -4688,6 +4708,9 @@ async function handleContentRoute(ctx, ws, message) {
|
|
|
4688
4708
|
case "prompts.recent":
|
|
4689
4709
|
await handlePromptsRecent(ws, ctx.getPromptsContext());
|
|
4690
4710
|
return true;
|
|
4711
|
+
case "prompts.journal":
|
|
4712
|
+
await handlePromptsJournal(ws, message, ctx.getProjectRoot());
|
|
4713
|
+
return true;
|
|
4691
4714
|
case "design.list":
|
|
4692
4715
|
await handleDesignList(ws, ctx.getDesignContext());
|
|
4693
4716
|
return true;
|
|
@@ -16952,6 +16975,7 @@ var CLIENT_EXTENSION_MESSAGE_TYPES = [
|
|
|
16952
16975
|
"prompts.content",
|
|
16953
16976
|
"prompts.create",
|
|
16954
16977
|
"prompts.favorite",
|
|
16978
|
+
"prompts.journal",
|
|
16955
16979
|
"prompts.list",
|
|
16956
16980
|
"prompts.recent",
|
|
16957
16981
|
"prompts.search",
|
|
@@ -17237,6 +17261,7 @@ var SERVER_EXTENSION_MESSAGE_TYPES = [
|
|
|
17237
17261
|
"prompts.content",
|
|
17238
17262
|
"prompts.created",
|
|
17239
17263
|
"prompts.favorite",
|
|
17264
|
+
"prompts.journal",
|
|
17240
17265
|
"prompts.list",
|
|
17241
17266
|
"prompts.recent",
|
|
17242
17267
|
"prompts.search",
|
|
@@ -22072,6 +22097,7 @@ import {
|
|
|
22072
22097
|
ObservableBrainArbiter as ObservableBrainArbiterCtor
|
|
22073
22098
|
} from "@wrongstack/core/coordination";
|
|
22074
22099
|
import { installDesignStudioMiddleware } from "@wrongstack/core/design";
|
|
22100
|
+
import { installVibeProtocol } from "@wrongstack/sdd";
|
|
22075
22101
|
import {
|
|
22076
22102
|
AutoCompactionMiddleware as AutoCompactionMiddlewareCtor,
|
|
22077
22103
|
createBrainRuntime,
|
|
@@ -22973,6 +22999,7 @@ async function createAgentServices(input) {
|
|
|
22973
22999
|
const collabPause = collabPauseMiddleware(collabBus, { logger });
|
|
22974
23000
|
pipelines.toolCall.prepend(collabPause);
|
|
22975
23001
|
installDesignStudioMiddleware({ pipelines, ctx: context });
|
|
23002
|
+
installVibeProtocol(pipelines);
|
|
22976
23003
|
const runSageSessionHygiene = setupSage({
|
|
22977
23004
|
config,
|
|
22978
23005
|
pipelines,
|
package/dist/server/index.d.ts
CHANGED
|
@@ -90,7 +90,7 @@ export type { ProjectRouteHandlers } from './project-routes.js';
|
|
|
90
90
|
export { handleProjectRoute } from './project-routes.js';
|
|
91
91
|
export { createProjectHandlers, type ProjectHandlersContext } from './project-handlers.js';
|
|
92
92
|
export { ensureProjectDataDir, loadManifest, projectsJsonPath, saveManifest, touchProjectInManifest, } from './projects-manifest.js';
|
|
93
|
-
export { handlePromptsContent, handlePromptsCreate, handlePromptsFavorite, handlePromptsList, handlePromptsRecent, handlePromptsSearch, handlePromptsUsed, type PromptsContext, } from './prompts-handlers.js';
|
|
93
|
+
export { handlePromptsContent, handlePromptsCreate, handlePromptsFavorite, handlePromptsJournal, handlePromptsList, handlePromptsRecent, handlePromptsSearch, handlePromptsUsed, type PromptsContext, } from './prompts-handlers.js';
|
|
94
94
|
export { loadSavedProviders, saveProviders } from './provider-config-io.js';
|
|
95
95
|
export { createProviderConfigIO } from './provider-config-standalone.js';
|
|
96
96
|
export { createProviderHandlers, createProviderOperations, type ProviderOperationsDeps, type ProviderPersistence, probeModelDescriptors, projectSavedProviders, type SavedProviderView, } from './provider-handlers.js';
|
|
@@ -33,6 +33,8 @@ export declare function handlePromptsCreate(ws: WSLike, ctx: PromptsContext, msg
|
|
|
33
33
|
export declare function handlePromptsUsed(ws: WSLike, ctx: PromptsContext, msg: unknown): Promise<void>;
|
|
34
34
|
/** Return recently-inserted prompt slugs (most-recent first) for the modal's Recent view. */
|
|
35
35
|
export declare function handlePromptsRecent(ws: WSLike, ctx: PromptsContext): Promise<void>;
|
|
36
|
+
/** Read the project's hierarchical prompt journal (`<projectRoot>/.wrongstack/prompts/`). */
|
|
37
|
+
export declare function handlePromptsJournal(ws: WSLike, msg: unknown, projectRoot: string): Promise<void>;
|
|
36
38
|
/** Minimal structural type for the ws.send sink (matches `ws` WebSocket). */
|
|
37
39
|
type WSLike = Parameters<typeof send>[0];
|
|
38
40
|
export {};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wrongstack/webui-server",
|
|
3
|
-
"version": "0.307.
|
|
3
|
+
"version": "0.307.1",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "WrongStack WebUI HTTP/WebSocket server module — extracted from @wrongstack/webui in PR #243/244 to remove the CLI -> @wrongstack/webui/server cross-package edge (audit §3.1.1). Pure backend: HTTP routes, WebSocket handlers, MCP tool wrappers, HTML serving. The web frontend lives in @wrongstack/webui; this package is the standalone server it can run on.",
|
|
6
6
|
"keywords": [
|
|
@@ -40,16 +40,16 @@
|
|
|
40
40
|
],
|
|
41
41
|
"dependencies": {
|
|
42
42
|
"ws": "^8.21.3",
|
|
43
|
-
"@wrongstack/
|
|
44
|
-
"@wrongstack/
|
|
45
|
-
"@wrongstack/
|
|
46
|
-
"@wrongstack/
|
|
47
|
-
"@wrongstack/
|
|
48
|
-
"@wrongstack/
|
|
49
|
-
"@wrongstack/sage": "0.307.
|
|
50
|
-
"@wrongstack/
|
|
51
|
-
"@wrongstack/tools": "0.307.
|
|
52
|
-
"@wrongstack/
|
|
43
|
+
"@wrongstack/core": "0.307.1",
|
|
44
|
+
"@wrongstack/providers": "0.307.1",
|
|
45
|
+
"@wrongstack/kanban": "0.307.1",
|
|
46
|
+
"@wrongstack/requirement-intake": "0.307.1",
|
|
47
|
+
"@wrongstack/runtime": "0.307.1",
|
|
48
|
+
"@wrongstack/mcp": "0.307.1",
|
|
49
|
+
"@wrongstack/sage": "0.307.1",
|
|
50
|
+
"@wrongstack/sdd": "0.307.1",
|
|
51
|
+
"@wrongstack/tools": "0.307.1",
|
|
52
|
+
"@wrongstack/techstack": "0.307.1"
|
|
53
53
|
},
|
|
54
54
|
"devDependencies": {
|
|
55
55
|
"@types/node": "^26.2.0",
|