feat(db): add project personas and skills tables
CI / build-and-test (push) Failing after 1m52s

* Introduce project_personas table with foreign keys to projects and agent_personas
* Add project_skills table with foreign key to projects and agent_skills
* Include override boolean field in agent_persona_skills and project_skills
* Update schema and migration files to reflect new tables and fields
* Enhance CORS handling to reflect request origin
This commit is contained in:
2026-07-04 23:45:51 +02:00
parent 1adf50e3db
commit c179e014ad
69 changed files with 1329 additions and 184 deletions
+2 -1
View File
@@ -143,7 +143,8 @@
unique_tools: raw?.metrics?.unique_tools ?? 0,
top_ips: Array.isArray(raw?.metrics?.top_ips) ? raw.metrics.top_ips : [],
top_agents: Array.isArray(raw?.metrics?.top_agents) ? raw.metrics.top_agents : [],
top_tools: Array.isArray(raw?.metrics?.top_tools) ? raw.metrics.top_tools : []
top_tools: Array.isArray(raw?.metrics?.top_tools) ? raw.metrics.top_tools : [],
recent_log: Array.isArray(raw?.metrics?.recent_log) ? raw.metrics.recent_log : []
}
};
} catch (err) {
+4 -12
View File
@@ -98,12 +98,6 @@
activeCard = id;
}
function handleCardKeydown(event: KeyboardEvent, id: string) {
if (event.key === "Enter" || event.key === " ") {
event.preventDefault();
setActiveCard(id);
}
}
</script>
<div
@@ -205,17 +199,15 @@
<div class="mt-4 grid gap-4 md:grid-cols-2 xl:grid-cols-3">
{#each intelligenceCards as card}
<article
class={`rounded-xl border p-4 transition ${
<button
type="button"
class={`w-full rounded-xl border p-4 text-left transition ${
activeCard === card.id
? "border-cyan-300/40 bg-cyan-400/[0.08] shadow-lg shadow-cyan-950/30"
: "border-white/10 bg-white/[0.03] hover:border-white/20 hover:bg-white/[0.05]"
}`}
role="button"
tabindex="0"
aria-pressed={activeCard === card.id}
onclick={() => setActiveCard(card.id)}
onkeydown={(event) => handleCardKeydown(event, card.id)}
>
<p class={`text-xs uppercase tracking-[0.16em] ${card.accentClass}`}>
{card.title}
@@ -233,7 +225,7 @@
: ""}
{/each}
</p>
</article>
</button>
{/each}
</div>
</div>