feat: let agents read supervisor story graphs

Expose saved decisions, timelines and source evidence through read-only Story Graph tools across Model, Harness and local/remote OpenCode and Continue. Supervisor enablement and runtime assignments govern discovery and calls; reads do not invoke models or modify stored evidence. Remote use requires matching Desktop and Agent changes.

Make Continue discussion show the complete editable message with a separated destination and shared action layout. Sending uses the visible draft without reattaching removed context.

Validation: existing focused MCP, runtime, controlled Linux Host, discussion component and Electron layout checks plus typechecks; staged diff check passed. Cross-scope fact reuse, historical reconstruction and full package acceptance remain deferred.

Release note: Agents can consult saved supervisor decisions and their sources when continuing work. Continue discussion now lets you review and edit the complete message before sending.
This commit is contained in:
mesalogo
2026-09-28 12:38:00 +08:00
parent 83a3ea261e
commit 66f77b83c2
61 changed files with 1527 additions and 150 deletions
+6 -3
View File
@@ -36,6 +36,7 @@ export type CapabilityAssignments = z.infer<
>
export const builtinMcpServerIdSchema = z.enum([
'story-graph',
'knowledge-base',
'magic-notes',
'goodbuddy-config',
@@ -62,17 +63,19 @@ export const builtinMcpServerToggleInputSchema = z
export const builtinMcpServerAssignmentsInputSchema = z
.object({
serverId: builtinMcpServerIdSchema,
assignments: builtinMcpAssignmentsSchema
assignments: capabilityAssignmentsSchema
})
.strict()
.refine(value => value.serverId === 'story-graph' || !value.assignments.includes('deepseek-harness'), 'DeepSeek Harness only supports the Story Graph built-in MCP')
export const builtinMcpServerStateSummarySchema = z
.object({
id: builtinMcpServerIdSchema,
enabled: z.boolean(),
assignments: builtinMcpAssignmentsSchema
assignments: capabilityAssignmentsSchema
})
.strict()
.refine(value => value.id === 'story-graph' || !value.assignments.includes('deepseek-harness'), 'DeepSeek Harness only supports the Story Graph built-in MCP')
export type BuiltinMcpServerStateSummary = z.infer<
typeof builtinMcpServerStateSummarySchema
>
@@ -396,7 +399,7 @@ export const capabilitySnapshotSchema = z
.optional(),
builtinMcpServers: z
.array(builtinMcpServerStateSummarySchema)
.max(5)
.max(6)
.optional(),
obsidian: obsidianSettingsSchema.default({ vaultPath: '' }),
mcpServers: z.array(mcpServerSummarySchema).max(64),