mirror of
https://github.com/Memo-2023/mana-monorepo.git
synced 2026-05-19 10:01:23 +02:00
First pass of the Multi-Agent discoverability UX. A new /agents/ templates route showcases pre-configured agents; clicking one creates agent + scene + starter mission(s) as a single bundle. Addresses the "blank form anxiety" + "user doesn't know what agents are for" observations from the UX brainstorm. Three templates for v1 (shared-ai/src/agents/templates/): - 🔍 Recherche-Agent — reads sources one by one, writes a note per source, summarizes into a report. Manual-cadence mission; all writes propose so user curates. - 🧭 Kontext-Agent — learns about the user via a weekly check-in. Reads kontext/notes/goals, asks 2-3 questions, proposes a diff- style context update. Weekly Sunday cadence. - 🌅 Today-Agent — researches "on this day" history each morning, writes a 4-8 line German poem, proposes a journal note. Daily 7am cadence. A "delight" agent, not a productive one. Each template packs (agent config, scene layout, starter mission): - AgentTemplate type lives in @mana/shared-ai — pure data, no runtime imports. Adding a new template = drop a file in templates/ and extend ALL_TEMPLATES. - Template-specific policies derive from the proposable-tool list so drift-guard catches divergence from the canonical set. - Starter missions default to startPaused=true — user sees the mission ready-to-go and hits Play when ready. Prevents surprise autonomous work on first apply. Applicator (data/ai/agents/apply-template.ts): - Creates agent → scene (if template defines one) → missions in order. Agent failure = abort; scene/mission failures surface as warnings in the result without blocking. - Duplicate-name handling: falls through to findByName, returns existing agent with wasExisting=true; scene is skipped in that case to avoid clone-proliferation. Gallery page /(app)/agents/templates/+page.svelte: - Three large cards side-by-side (stacks on mobile) with avatar / label / tagline / meta chips (Scene, N Missionen). - Click opens detail panel with full description, scene preview (app-ids + widths), mission preview (title / objective / cadence), and override checkboxes (create scene, create missions, start active vs paused). - Success panel shows what landed with warnings inline; CTA back to workbench. Discoverability in /ai-agents module: - Bar now has two buttons: "Aus Template" (primary, goto templates route) + "Eigener Agent" (secondary, opens the existing blank-form create mode). - When only the default "Mana" agent exists, render a dashed promo banner at the top linking to the template gallery. Disappears as soon as the user has a second agent. Tests: webapp svelte-check 0 errors, 0 warnings. shared-ai 26/26. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
87 lines
1.7 KiB
TypeScript
87 lines
1.7 KiB
TypeScript
/**
|
|
* @mana/shared-ai
|
|
*
|
|
* AI Workbench code that both the webapp (SvelteKit/Vite) and the
|
|
* server-side mana-ai service (Bun) import. Keep this package free of
|
|
* runtime imports from storage layers (Dexie, Postgres) — the types +
|
|
* pure functions here must work in both environments.
|
|
*/
|
|
|
|
export type {
|
|
Actor,
|
|
ActorKind,
|
|
BaseActor,
|
|
UserActor,
|
|
AiActor,
|
|
SystemActor,
|
|
SystemSource,
|
|
} from './actor';
|
|
export {
|
|
SYSTEM_PROJECTION,
|
|
SYSTEM_RULE,
|
|
SYSTEM_MIGRATION,
|
|
SYSTEM_STREAM,
|
|
SYSTEM_MISSION_RUNNER,
|
|
LEGACY_USER_PRINCIPAL,
|
|
LEGACY_AI_PRINCIPAL,
|
|
LEGACY_SYSTEM_PRINCIPAL,
|
|
LEGACY_DISPLAY_NAME,
|
|
USER_ACTOR,
|
|
makeUserActor,
|
|
makeAgentActor,
|
|
makeSystemActor,
|
|
normalizeActor,
|
|
isUserActor,
|
|
isAiActor,
|
|
isSystemActor,
|
|
isFromMissionRunner,
|
|
} from './actor';
|
|
|
|
export type {
|
|
IterationPhase,
|
|
Mission,
|
|
MissionCadence,
|
|
MissionInputRef,
|
|
MissionIteration,
|
|
MissionState,
|
|
PlanStep,
|
|
GrantDerivation,
|
|
GrantDerivationVersion,
|
|
MissionGrant,
|
|
} from './missions';
|
|
export {
|
|
GRANT_DERIVATION_VERSION,
|
|
canonicalInfoString,
|
|
deriveMissionDataKey,
|
|
deriveMissionDataKeyRaw,
|
|
} from './missions';
|
|
|
|
export type {
|
|
AiPlanInput,
|
|
AiPlanOutput,
|
|
AvailableTool,
|
|
ParseResult,
|
|
PlannedStep,
|
|
PlannerMessages,
|
|
ResolvedInput,
|
|
} from './planner';
|
|
export { buildPlannerPrompt, parsePlannerResponse } from './planner';
|
|
|
|
export {
|
|
AI_PROPOSABLE_TOOL_NAMES,
|
|
AI_PROPOSABLE_TOOL_SET,
|
|
type AiProposableToolName,
|
|
type AiPolicy,
|
|
type PolicyDecision,
|
|
} from './policy';
|
|
|
|
export type {
|
|
Agent,
|
|
AgentState,
|
|
AgentTemplate,
|
|
AgentTemplateAgentPart,
|
|
AgentTemplateScenePart,
|
|
AgentTemplateSceneApp,
|
|
AgentTemplateMissionPart,
|
|
} from './agents';
|
|
export { DEFAULT_AGENT_ID, DEFAULT_AGENT_NAME, ALL_TEMPLATES, getTemplateById } from './agents';
|