arkaos 2.2.2 → 2.3.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/VERSION +1 -1
- package/arka/skills/conclave/SKILL.md +194 -0
- package/arka/skills/human-writing/SKILL.md +143 -0
- package/config/agent-memory-template.md +28 -0
- package/config/disc-profiles.json +108 -0
- package/config/disc-team-validator.sh +94 -0
- package/config/gotchas-fixes.json +148 -0
- package/config/profile-template.json +12 -0
- package/config/providers-registry.json +56 -0
- package/config/settings-template.json +42 -0
- package/config/standards/communication.md +64 -0
- package/config/standards/orchestration.md +91 -0
- package/config/statusline-v2.sh +101 -0
- package/config/statusline.sh +139 -0
- package/config/system-prompt.sh +190 -0
- package/dashboard/LICENSE +21 -0
- package/dashboard/README.md +64 -0
- package/dashboard/app/app.config.ts +8 -0
- package/dashboard/app/app.vue +42 -0
- package/dashboard/app/assets/css/main.css +18 -0
- package/dashboard/app/composables/useApi.ts +8 -0
- package/dashboard/app/composables/useDashboard.ts +19 -0
- package/dashboard/app/error.vue +24 -0
- package/dashboard/app/layouts/default.vue +114 -0
- package/dashboard/app/pages/agents/[id].vue +506 -0
- package/dashboard/app/pages/agents/index.vue +225 -0
- package/dashboard/app/pages/budget.vue +132 -0
- package/dashboard/app/pages/commands.vue +180 -0
- package/dashboard/app/pages/health.vue +98 -0
- package/dashboard/app/pages/index.vue +126 -0
- package/dashboard/app/pages/knowledge.vue +729 -0
- package/dashboard/app/pages/personas.vue +597 -0
- package/dashboard/app/pages/settings.vue +146 -0
- package/dashboard/app/pages/tasks.vue +203 -0
- package/dashboard/app/types/index.d.ts +181 -0
- package/dashboard/app/utils/index.ts +7 -0
- package/dashboard/nuxt.config.ts +39 -0
- package/dashboard/package.json +37 -0
- package/dashboard/pnpm-workspace.yaml +7 -0
- package/dashboard/tsconfig.json +10 -0
- package/installer/cli.js +0 -0
- package/installer/index.js +262 -62
- package/knowledge/INDEX.md +34 -0
- package/knowledge/agents-registry.json +254 -0
- package/knowledge/channels-config.json +6 -0
- package/knowledge/commands-keywords.json +466 -0
- package/knowledge/commands-registry.json +2791 -0
- package/knowledge/commands-registry.json.bak +2791 -0
- package/knowledge/ecosystems.json +7 -0
- package/knowledge/obsidian-config.json +112 -0
- package/package.json +10 -6
- package/pyproject.toml +1 -1
- package/scripts/check-version.js +13 -0
- package/scripts/dashboard-api.py +636 -0
- package/scripts/knowledge-index.py +113 -0
- package/scripts/skill_validator.py +217 -0
- package/scripts/start-dashboard.sh +54 -0
- package/scripts/synapse-bridge.py +199 -0
- package/scripts/tools/brand_voice_analyzer.py +192 -0
- package/scripts/tools/dcf_calculator.py +168 -0
- package/scripts/tools/headline_scorer.py +215 -0
- package/scripts/tools/okr_cascade.py +207 -0
- package/scripts/tools/rice_prioritizer.py +230 -0
- package/scripts/tools/saas_metrics.py +234 -0
- package/scripts/tools/seo_checker.py +197 -0
- package/scripts/tools/tech_debt_analyzer.py +206 -0
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import type { OverviewData } from '~/types'
|
|
3
|
+
|
|
4
|
+
const { fetchApi } = useApi()
|
|
5
|
+
|
|
6
|
+
const { data: overview, status, error, refresh } = await fetchApi<OverviewData>('/api/overview')
|
|
7
|
+
|
|
8
|
+
const stats = computed(() => [
|
|
9
|
+
{ label: 'Agents', value: overview.value?.agents ?? 0, icon: 'i-lucide-users' },
|
|
10
|
+
{ label: 'Skills', value: overview.value?.skills ?? 0, icon: 'i-lucide-sparkles' },
|
|
11
|
+
{ label: 'Departments', value: overview.value?.departments ?? 0, icon: 'i-lucide-building-2' },
|
|
12
|
+
{ label: 'Tests', value: overview.value?.tests ?? 0, icon: 'i-lucide-test-tubes' },
|
|
13
|
+
{ label: 'Commands', value: overview.value?.commands ?? 0, icon: 'i-lucide-terminal' },
|
|
14
|
+
{ label: 'Workflows', value: overview.value?.workflows ?? 0, icon: 'i-lucide-git-branch' }
|
|
15
|
+
])
|
|
16
|
+
|
|
17
|
+
const budgetPercent = computed(() => overview.value?.budget?.percent_used ?? 0)
|
|
18
|
+
const budgetUsed = computed(() => overview.value?.budget?.used ?? 0)
|
|
19
|
+
const budgetAllocated = computed(() => overview.value?.budget?.allocated ?? 0)
|
|
20
|
+
const budgetUnlimited = computed(() => overview.value?.budget?.is_unlimited ?? false)
|
|
21
|
+
|
|
22
|
+
function formatCurrency(value: number): string {
|
|
23
|
+
return new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD', maximumFractionDigits: 0 }).format(value)
|
|
24
|
+
}
|
|
25
|
+
</script>
|
|
26
|
+
|
|
27
|
+
<template>
|
|
28
|
+
<UDashboardPanel id="overview">
|
|
29
|
+
<template #header>
|
|
30
|
+
<UDashboardNavbar title="Overview">
|
|
31
|
+
<template #leading>
|
|
32
|
+
<UDashboardSidebarCollapse />
|
|
33
|
+
</template>
|
|
34
|
+
|
|
35
|
+
<template #right>
|
|
36
|
+
<UBadge v-if="overview?.version" :label="`v${overview.version}`" variant="subtle" color="primary" />
|
|
37
|
+
</template>
|
|
38
|
+
</UDashboardNavbar>
|
|
39
|
+
</template>
|
|
40
|
+
|
|
41
|
+
<template #body>
|
|
42
|
+
<!-- Loading State -->
|
|
43
|
+
<div v-if="status === 'pending'" class="flex items-center justify-center py-12">
|
|
44
|
+
<UIcon name="i-lucide-loader-2" class="size-8 animate-spin text-muted" />
|
|
45
|
+
</div>
|
|
46
|
+
|
|
47
|
+
<!-- Error State -->
|
|
48
|
+
<div v-else-if="error" class="flex flex-col items-center justify-center gap-4 py-12" role="alert">
|
|
49
|
+
<UIcon name="i-lucide-alert-triangle" class="size-12 text-red-500" />
|
|
50
|
+
<p class="text-sm text-muted">Failed to load overview data.</p>
|
|
51
|
+
<UButton label="Retry" variant="outline" color="primary" icon="i-lucide-refresh-cw" @click="refresh()" />
|
|
52
|
+
</div>
|
|
53
|
+
|
|
54
|
+
<!-- Content -->
|
|
55
|
+
<template v-else>
|
|
56
|
+
<!-- Stats Grid -->
|
|
57
|
+
<div class="grid grid-cols-2 gap-4 sm:grid-cols-3 lg:grid-cols-6">
|
|
58
|
+
<div
|
|
59
|
+
v-for="stat in stats"
|
|
60
|
+
:key="stat.label"
|
|
61
|
+
class="flex flex-col gap-2 rounded-lg border border-default p-4"
|
|
62
|
+
>
|
|
63
|
+
<div class="flex items-center gap-2">
|
|
64
|
+
<UIcon :name="stat.icon" class="size-4 text-muted" />
|
|
65
|
+
<span class="text-sm text-muted">{{ stat.label }}</span>
|
|
66
|
+
</div>
|
|
67
|
+
<span class="text-2xl font-semibold text-highlighted">{{ stat.value }}</span>
|
|
68
|
+
</div>
|
|
69
|
+
</div>
|
|
70
|
+
|
|
71
|
+
<!-- Budget Gauge -->
|
|
72
|
+
<div class="mt-6 rounded-lg border border-default p-6">
|
|
73
|
+
<h3 class="mb-4 text-lg font-semibold text-highlighted">Budget</h3>
|
|
74
|
+
<div v-if="budgetUnlimited" class="text-sm text-muted">
|
|
75
|
+
Unlimited budget configured.
|
|
76
|
+
</div>
|
|
77
|
+
<div v-else class="space-y-3">
|
|
78
|
+
<div class="flex items-center justify-between text-sm">
|
|
79
|
+
<span class="text-muted">Used: {{ formatCurrency(budgetUsed) }}</span>
|
|
80
|
+
<span class="text-muted">Allocated: {{ formatCurrency(budgetAllocated) }}</span>
|
|
81
|
+
</div>
|
|
82
|
+
<UProgress :value="budgetPercent" :max="100" size="md" />
|
|
83
|
+
<p class="text-xs text-muted">{{ budgetPercent.toFixed(1) }}% of budget used</p>
|
|
84
|
+
</div>
|
|
85
|
+
</div>
|
|
86
|
+
|
|
87
|
+
<!-- Bottom Row: Tasks + Knowledge -->
|
|
88
|
+
<div class="mt-6 grid grid-cols-1 gap-4 md:grid-cols-2">
|
|
89
|
+
<!-- Tasks Summary -->
|
|
90
|
+
<div class="rounded-lg border border-default p-6">
|
|
91
|
+
<h3 class="mb-4 text-lg font-semibold text-highlighted">Tasks</h3>
|
|
92
|
+
<div class="grid grid-cols-3 gap-4">
|
|
93
|
+
<div class="text-center">
|
|
94
|
+
<p class="text-2xl font-semibold text-highlighted">{{ overview?.tasks?.total ?? 0 }}</p>
|
|
95
|
+
<p class="text-xs text-muted">Total</p>
|
|
96
|
+
</div>
|
|
97
|
+
<div class="text-center">
|
|
98
|
+
<p class="text-2xl font-semibold text-primary">{{ overview?.tasks?.active ?? 0 }}</p>
|
|
99
|
+
<p class="text-xs text-muted">Active</p>
|
|
100
|
+
</div>
|
|
101
|
+
<div class="text-center">
|
|
102
|
+
<p class="text-2xl font-semibold text-muted">{{ overview?.tasks?.queued ?? 0 }}</p>
|
|
103
|
+
<p class="text-xs text-muted">Queued</p>
|
|
104
|
+
</div>
|
|
105
|
+
</div>
|
|
106
|
+
</div>
|
|
107
|
+
|
|
108
|
+
<!-- Knowledge Summary -->
|
|
109
|
+
<div class="rounded-lg border border-default p-6">
|
|
110
|
+
<h3 class="mb-4 text-lg font-semibold text-highlighted">Knowledge Base</h3>
|
|
111
|
+
<div class="grid grid-cols-2 gap-4">
|
|
112
|
+
<div class="text-center">
|
|
113
|
+
<p class="text-2xl font-semibold text-highlighted">{{ overview?.knowledge?.total_chunks ?? 0 }}</p>
|
|
114
|
+
<p class="text-xs text-muted">Chunks</p>
|
|
115
|
+
</div>
|
|
116
|
+
<div class="text-center">
|
|
117
|
+
<p class="text-2xl font-semibold text-highlighted">{{ overview?.knowledge?.total_files ?? 0 }}</p>
|
|
118
|
+
<p class="text-xs text-muted">Files</p>
|
|
119
|
+
</div>
|
|
120
|
+
</div>
|
|
121
|
+
</div>
|
|
122
|
+
</div>
|
|
123
|
+
</template>
|
|
124
|
+
</template>
|
|
125
|
+
</UDashboardPanel>
|
|
126
|
+
</template>
|