arkaos 3.77.0 → 4.0.0
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/config/agent-allowlists/laravel.yaml +1 -0
- package/config/agent-allowlists/node.yaml +1 -0
- package/config/agent-allowlists/nuxt.yaml +1 -0
- package/config/agent-allowlists/python.yaml +1 -0
- package/core/agents/__pycache__/registry_gen.cpython-313.pyc +0 -0
- package/core/agents/__pycache__/schema.cpython-313.pyc +0 -0
- package/core/agents/registry_gen.py +6 -1
- package/core/agents/schema.py +4 -0
- package/core/cognition/__pycache__/reorganizer.cpython-313.pyc +0 -0
- package/core/cognition/reorganizer.py +37 -7
- package/core/governance/__pycache__/design_system_lint.cpython-313.pyc +0 -0
- package/core/governance/__pycache__/design_system_lint_cli.cpython-313.pyc +0 -0
- package/core/knowledge/__pycache__/agent_match.cpython-313.pyc +0 -0
- package/core/knowledge/__pycache__/chunker.cpython-313.pyc +0 -0
- package/core/knowledge/__pycache__/ingest.cpython-313.pyc +0 -0
- package/core/knowledge/__pycache__/sources.cpython-313.pyc +0 -0
- package/core/knowledge/__pycache__/vector_store.cpython-313.pyc +0 -0
- package/core/knowledge/agent_match.py +114 -0
- package/core/knowledge/chunker.py +45 -0
- package/core/knowledge/ingest.py +156 -78
- package/core/knowledge/sources.py +138 -0
- package/core/knowledge/vector_store.py +52 -0
- package/core/squads/__pycache__/loader.cpython-313.pyc +0 -0
- package/core/squads/loader.py +25 -0
- package/core/sync/__pycache__/agent_provisioner.cpython-313.pyc +0 -0
- package/core/sync/agent_provisioner.py +19 -8
- package/dashboard/app/components/KnowledgeSourcesList.vue +40 -13
- package/dashboard/app/pages/cognition.vue +9 -4
- package/dashboard/app/pages/knowledge/[id].vue +669 -0
- package/dashboard/app/pages/knowledge/index.vue +1281 -0
- package/dashboard/app/types/index.d.ts +1 -1
- package/departments/brand/agents/brand-director.yaml +2 -0
- package/departments/brand/agents/creative-director.md +4 -0
- package/departments/brand/agents/motion-designer.md +5 -1
- package/departments/brand/agents/ux-designer.yaml +26 -1
- package/departments/brand/agents/ux-researcher.yaml +73 -0
- package/departments/brand/agents/ux-strategist.yaml +72 -0
- package/departments/brand/agents/visual-designer.md +4 -0
- package/departments/brand/agents/visual-designer.yaml +11 -0
- package/departments/brand/references/uiux-knowledge-and-tools.md +136 -0
- package/departments/dev/agents/ai-engineering/ai-engineering-lead.yaml +76 -0
- package/departments/dev/agents/architect.yaml +9 -3
- package/departments/dev/agents/backend-core/laravel-eng.yaml +76 -0
- package/departments/dev/agents/backend-core/node-ts-eng.yaml +76 -0
- package/departments/dev/agents/backend-core/python-eng.yaml +76 -0
- package/departments/dev/agents/backend-dev.yaml +10 -4
- package/departments/dev/agents/data-platform/etl-eng.yaml +74 -0
- package/departments/dev/agents/dba.yaml +7 -3
- package/departments/dev/agents/frontend-dev.md +41 -11
- package/departments/dev/agents/frontend-dev.yaml +6 -0
- package/departments/dev/references/backend-knowledge-and-tools.md +70 -0
- package/departments/ecom/agents/retention-manager.yaml +13 -1
- package/departments/leadership/agents/culture-coach.yaml +20 -0
- package/departments/leadership/agents/hr-specialist.yaml +18 -0
- package/departments/leadership/agents/leadership-director.yaml +10 -0
- package/departments/org/agents/chief-of-staff.yaml +76 -0
- package/departments/org/agents/coo.yaml +11 -0
- package/departments/org/agents/okr-steward.yaml +71 -0
- package/departments/org/agents/org-designer.yaml +23 -0
- package/departments/org/skills/okr-cadence/SKILL.md +34 -0
- package/departments/org/skills/principles-audit/SKILL.md +36 -0
- package/departments/pm/agents/pm-director.yaml +21 -8
- package/departments/pm/agents/product-owner.yaml +24 -2
- package/departments/pm/agents/scrum-master.yaml +21 -0
- package/departments/pm/agents/strategic-pm.yaml +72 -0
- package/departments/pm/skills/discovery-plan/SKILL.md +7 -1
- package/departments/quality/agents/cqo.yaml +8 -0
- package/departments/saas/agents/cs-manager.yaml +19 -2
- package/departments/saas/agents/growth-engineer.yaml +14 -1
- package/departments/saas/agents/metrics-analyst.yaml +17 -1
- package/departments/saas/agents/revops-lead.yaml +73 -0
- package/departments/saas/skills/leaky-bucket/SKILL.md +28 -0
- package/departments/saas/skills/voc-loop/SKILL.md +29 -0
- package/departments/sales/agents/sales-director.yaml +9 -0
- package/departments/sales/agents/sdr.yaml +72 -0
- package/departments/strategy/agents/decision-quality.yaml +72 -0
- package/departments/strategy/agents/strategy-director.yaml +13 -0
- package/departments/strategy/skills/premortem/SKILL.md +33 -0
- package/installer/claude-plugins.js +32 -3
- package/installer/doctor.js +15 -0
- package/installer/frontend-tooling.js +150 -0
- package/installer/index.js +28 -0
- package/installer/keys.js +1 -0
- package/installer/update.js +35 -0
- package/knowledge/agents-registry-v2.json +1218 -78
- package/package.json +1 -1
- package/pyproject.toml +1 -1
- package/scripts/__pycache__/dashboard-api.cpython-313.pyc +0 -0
- package/scripts/dashboard-api.py +376 -13
- package/dashboard/app/pages/knowledge.vue +0 -918
|
@@ -9,6 +9,12 @@
|
|
|
9
9
|
interface SourceRow {
|
|
10
10
|
source: string
|
|
11
11
|
chunks: number
|
|
12
|
+
id: string
|
|
13
|
+
title?: string
|
|
14
|
+
type?: string
|
|
15
|
+
has_media?: boolean
|
|
16
|
+
duration?: number
|
|
17
|
+
status?: string
|
|
12
18
|
}
|
|
13
19
|
|
|
14
20
|
const { fetchApi, apiBase } = useApi()
|
|
@@ -78,6 +84,15 @@ function sourceLabel(src: string): string {
|
|
|
78
84
|
}
|
|
79
85
|
return src
|
|
80
86
|
}
|
|
87
|
+
|
|
88
|
+
const typeColorMap: Record<string, 'error' | 'primary' | 'warning' | 'success' | 'neutral'> = {
|
|
89
|
+
youtube: 'error',
|
|
90
|
+
web: 'primary',
|
|
91
|
+
pdf: 'warning',
|
|
92
|
+
audio: 'success',
|
|
93
|
+
markdown: 'neutral',
|
|
94
|
+
video: 'error'
|
|
95
|
+
}
|
|
81
96
|
</script>
|
|
82
97
|
|
|
83
98
|
<template>
|
|
@@ -87,7 +102,7 @@ function sourceLabel(src: string): string {
|
|
|
87
102
|
<div>
|
|
88
103
|
<h3 class="text-lg font-bold">Indexed sources</h3>
|
|
89
104
|
<p class="text-xs text-muted mt-0.5">
|
|
90
|
-
|
|
105
|
+
Click any source to view its transcript, video, and knowledge.
|
|
91
106
|
<span v-if="data?.total">{{ data.total }} total.</span>
|
|
92
107
|
</p>
|
|
93
108
|
</div>
|
|
@@ -120,18 +135,30 @@ function sourceLabel(src: string): string {
|
|
|
120
135
|
<ul class="space-y-1.5">
|
|
121
136
|
<li
|
|
122
137
|
v-for="row in paged"
|
|
123
|
-
:key="row.
|
|
124
|
-
class="flex items-center gap-
|
|
138
|
+
:key="row.id"
|
|
139
|
+
class="flex items-center gap-2 rounded-lg border border-default p-2.5 hover:border-primary/40 transition-colors"
|
|
125
140
|
>
|
|
126
|
-
<
|
|
127
|
-
:
|
|
128
|
-
class="
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
141
|
+
<NuxtLink
|
|
142
|
+
:to="`/knowledge/${row.id}`"
|
|
143
|
+
class="flex items-center gap-3 flex-1 min-w-0"
|
|
144
|
+
>
|
|
145
|
+
<UIcon
|
|
146
|
+
:name="row.source.startsWith('http') ? 'i-lucide-link' : 'i-lucide-file-text'"
|
|
147
|
+
class="size-4 text-muted shrink-0"
|
|
148
|
+
/>
|
|
149
|
+
<div class="flex-1 min-w-0">
|
|
150
|
+
<p class="text-sm truncate text-highlighted" :title="row.source">
|
|
151
|
+
{{ row.title || sourceLabel(row.source) }}
|
|
152
|
+
</p>
|
|
153
|
+
</div>
|
|
154
|
+
<UBadge
|
|
155
|
+
v-if="row.type"
|
|
156
|
+
:label="row.type"
|
|
157
|
+
:color="typeColorMap[row.type] ?? 'neutral'"
|
|
158
|
+
variant="subtle"
|
|
159
|
+
size="xs"
|
|
160
|
+
/>
|
|
161
|
+
</NuxtLink>
|
|
135
162
|
<UBadge :label="`${row.chunks} chunk${row.chunks === 1 ? '' : 's'}`" variant="subtle" size="xs" />
|
|
136
163
|
<UButton
|
|
137
164
|
icon="i-lucide-trash-2"
|
|
@@ -139,7 +166,7 @@ function sourceLabel(src: string): string {
|
|
|
139
166
|
variant="ghost"
|
|
140
167
|
size="xs"
|
|
141
168
|
aria-label="Delete source"
|
|
142
|
-
@click="remove(row)"
|
|
169
|
+
@click.stop.prevent="remove(row)"
|
|
143
170
|
/>
|
|
144
171
|
</li>
|
|
145
172
|
</ul>
|
|
@@ -26,9 +26,14 @@ interface Status {
|
|
|
26
26
|
|
|
27
27
|
const { apiBase } = useApi()
|
|
28
28
|
|
|
29
|
+
// Sentinel for the "All tags" option. Reka UI forbids an empty-string
|
|
30
|
+
// SelectItem value (it is reserved for clearing the selection), so the
|
|
31
|
+
// "show everything" choice needs a non-empty, collision-safe value.
|
|
32
|
+
const ALL_TAGS = '__all__'
|
|
33
|
+
|
|
29
34
|
const days = ref(7)
|
|
30
35
|
const confidenceFilter = ref<'all' | 'high' | 'medium' | 'low'>('all')
|
|
31
|
-
const tagFilter = ref(
|
|
36
|
+
const tagFilter = ref(ALL_TAGS)
|
|
32
37
|
const insights = ref<Insight[]>([])
|
|
33
38
|
const status = ref<Status | null>(null)
|
|
34
39
|
const available = ref(true)
|
|
@@ -70,7 +75,7 @@ onMounted(refresh)
|
|
|
70
75
|
// Reset the tag filter when the window changes — a tag may not exist in the
|
|
71
76
|
// new window, which would otherwise strand the user on an empty result.
|
|
72
77
|
watch(days, () => {
|
|
73
|
-
tagFilter.value =
|
|
78
|
+
tagFilter.value = ALL_TAGS
|
|
74
79
|
refresh()
|
|
75
80
|
})
|
|
76
81
|
|
|
@@ -82,7 +87,7 @@ const allTags = computed(() => {
|
|
|
82
87
|
|
|
83
88
|
const filtered = computed(() => insights.value.filter((i) => {
|
|
84
89
|
if (confidenceFilter.value !== 'all' && i.confidence !== confidenceFilter.value) return false
|
|
85
|
-
if (tagFilter.value && !i.tags.includes(tagFilter.value)) return false
|
|
90
|
+
if (tagFilter.value !== ALL_TAGS && !i.tags.includes(tagFilter.value)) return false
|
|
86
91
|
return true
|
|
87
92
|
}))
|
|
88
93
|
|
|
@@ -204,7 +209,7 @@ const isActive = computed(() => {
|
|
|
204
209
|
<USelect
|
|
205
210
|
v-if="allTags.length"
|
|
206
211
|
v-model="tagFilter"
|
|
207
|
-
:items="[{ label: 'All tags', value:
|
|
212
|
+
:items="[{ label: 'All tags', value: ALL_TAGS }, ...allTags.map(t => ({ label: '#' + t, value: t }))]"
|
|
208
213
|
size="sm"
|
|
209
214
|
class="w-40"
|
|
210
215
|
/>
|