refactor(semantics): migrate legacy @TIER to @COMPLEXITY annotations
- Replaced @TIER: TRIVIAL with @COMPLEXITY: 1 - Replaced @TIER: STANDARD with @COMPLEXITY: 3 - Replaced @TIER: CRITICAL with @COMPLEXITY: 5 - Manually elevated specific critical/complex components to levels 2 and 4 - Ignored legacy, specs, and node_modules directories - Updated generated semantic map
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
<!-- [DEF:Counter:Component] -->
|
||||
<!--
|
||||
@TIER: TRIVIAL
|
||||
@COMPLEXITY: 1
|
||||
@PURPOSE: Simple counter demo component
|
||||
@LAYER: UI
|
||||
-->
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// [DEF:api_module:Module]
|
||||
// @TIER: STANDARD
|
||||
// @COMPLEXITY: 3
|
||||
// @SEMANTICS: api, client, fetch, rest
|
||||
// @PURPOSE: Handles all communication with the backend API.
|
||||
// @LAYER: Infra-API
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// [DEF:frontend.src.lib.api.__tests__.reports_api:Module]
|
||||
// @TIER: STANDARD
|
||||
// @COMPLEXITY: 3
|
||||
// @SEMANTICS: tests, reports, api-client, query-string, error-normalization
|
||||
// @PURPOSE: Unit tests for reports API client functions: query string building, error normalization, and fetch wrappers.
|
||||
// @LAYER: Infra (Tests)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// [DEF:frontend.src.lib.api.assistant:Module]
|
||||
// @TIER: STANDARD
|
||||
// @COMPLEXITY: 3
|
||||
// @SEMANTICS: assistant, api, client, chat, confirmation
|
||||
// @PURPOSE: API client wrapper for assistant chat, confirmation actions, and history retrieval.
|
||||
// @LAYER: Infra-API
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// [DEF:frontend.src.lib.api.reports:Module]
|
||||
// @TIER: CRITICAL
|
||||
// @COMPLEXITY: 5
|
||||
// @SEMANTICS: frontend, api_client, reports, wrapper
|
||||
// @PURPOSE: Wrapper-based reports API client for list/detail retrieval without direct native fetch usage.
|
||||
// @LAYER: Infra
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// [DEF:frontend.src.lib.auth.__tests__.permissions:Module]
|
||||
// @TIER: STANDARD
|
||||
// @COMPLEXITY: 3
|
||||
// @SEMANTICS: tests, auth, permissions, rbac
|
||||
// @PURPOSE: Verifies frontend RBAC permission parsing and access checks.
|
||||
// @LAYER: UI (Tests)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// [DEF:frontend.src.lib.auth.permissions:Module]
|
||||
// @TIER: STANDARD
|
||||
// @COMPLEXITY: 3
|
||||
// @SEMANTICS: auth, permissions, rbac, roles
|
||||
// @PURPOSE: Shared frontend RBAC utilities for route guards and menu visibility.
|
||||
// @LAYER: Domain
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// [DEF:authStore:Store]
|
||||
// @TIER: STANDARD
|
||||
// @COMPLEXITY: 3
|
||||
// @SEMANTICS: auth, store, svelte, jwt, session
|
||||
// @PURPOSE: Manages the global authentication state on the frontend.
|
||||
// @LAYER: Feature
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<!-- [DEF:AssistantChatPanel:Component] -->
|
||||
<script>
|
||||
/**
|
||||
* @TIER: CRITICAL
|
||||
* @COMPLEXITY: 5
|
||||
* @PURPOSE: Slide-out assistant chat panel for natural language command execution and task tracking.
|
||||
* @LAYER: UI
|
||||
* @RELATION: BINDS_TO -> assistantChatStore
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// [DEF:frontend.src.lib.components.assistant.__tests__.assistant_chat_integration:Module]
|
||||
// @TIER: STANDARD
|
||||
// @COMPLEXITY: 3
|
||||
// @SEMANTICS: assistant, integration-test, ux-contract, i18n
|
||||
// @PURPOSE: Contract-level integration checks for assistant chat panel implementation and localization wiring.
|
||||
// @LAYER: UI Tests
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// [DEF:frontend.src.lib.components.assistant.__tests__.assistant_first_message_integration:Module]
|
||||
// @TIER: STANDARD
|
||||
// @COMPLEXITY: 3
|
||||
// @SEMANTICS: assistant, integration-test, optimistic-message, conversation-race
|
||||
// @PURPOSE: Verify first optimistic user message stays visible while a new conversation request is pending.
|
||||
// @LAYER: UI Tests
|
||||
@@ -121,7 +121,7 @@ vi.mock('$lib/i18n', () => ({
|
||||
}));
|
||||
|
||||
// [DEF:assistant_first_message_tests:Function]
|
||||
// @TIER: STANDARD
|
||||
// @COMPLEXITY: 3
|
||||
// @PURPOSE: Guard optimistic first-message UX against history reload race in new conversation flow.
|
||||
// @PRE: Assistant panel renders with open state and mocked network dependencies.
|
||||
// @POST: First user message remains visible before pending send request resolves.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<!-- [DEF:HealthMatrix:Component] -->
|
||||
<!--
|
||||
@TIER: STANDARD
|
||||
@COMPLEXITY: 3
|
||||
@PURPOSE: Visual grid/matrix representing the health status of dashboards.
|
||||
@LAYER: UI/Component
|
||||
@UX_STATE: Idle -> Displays the health matrix grid.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<!-- [DEF:PolicyForm:Component] -->
|
||||
<!--
|
||||
@TIER: STANDARD
|
||||
@COMPLEXITY: 3
|
||||
@PURPOSE: Form for creating and editing validation policies.
|
||||
@LAYER: UI/Component
|
||||
@UX_STATE: Idle -> Displays the policy form.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<!-- [DEF:Breadcrumbs:Component] -->
|
||||
<script>
|
||||
/**
|
||||
* @TIER: STANDARD
|
||||
* @COMPLEXITY: 3
|
||||
* @PURPOSE: Display page hierarchy navigation
|
||||
* @LAYER: UI
|
||||
* @RELATION: DEPENDS_ON -> page store
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<!-- [DEF:Sidebar:Component] -->
|
||||
<script>
|
||||
/**
|
||||
* @TIER: CRITICAL
|
||||
* @COMPLEXITY: 5
|
||||
* @PURPOSE: Persistent left sidebar with resource categories navigation
|
||||
* @LAYER: UI
|
||||
* @RELATION: BINDS_TO -> sidebarStore
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<!-- [DEF:TaskDrawer:Component] -->
|
||||
<script>
|
||||
/**
|
||||
* @TIER: CRITICAL
|
||||
* @COMPLEXITY: 5
|
||||
* @PURPOSE: Global task drawer for monitoring background operations
|
||||
* @LAYER: UI
|
||||
* @RELATION: BINDS_TO -> taskDrawerStore, assistantChatStore, WebSocket
|
||||
@@ -414,7 +414,7 @@
|
||||
* @PURPOSE: Disconnects the active WebSocket connection
|
||||
* @PRE: ws may or may not be initialized
|
||||
* @POST: ws is closed and set to null
|
||||
* @TIER: STANDARD
|
||||
* @COMPLEXITY: 3
|
||||
*/
|
||||
function disconnectWebSocket() {
|
||||
console.log("[TaskDrawer][WebSocket][disconnectWebSocket:START]");
|
||||
@@ -470,7 +470,7 @@
|
||||
* @PURPOSE: Return to task list view from task details
|
||||
* @PRE: Drawer is open and activeTaskId is set
|
||||
* @POST: Drawer switches to list view and reloads tasks
|
||||
* @TIER: STANDARD
|
||||
* @COMPLEXITY: 3
|
||||
*/
|
||||
function goBackToList() {
|
||||
console.log("[TaskDrawer][UI][goBackToList:START]");
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<!-- [DEF:TopNavbar:Component] -->
|
||||
<script>
|
||||
/**
|
||||
* @TIER: CRITICAL
|
||||
* @COMPLEXITY: 5
|
||||
* @PURPOSE: Unified top navigation bar with Logo, Search, Activity, and User menu
|
||||
* @LAYER: UI
|
||||
* @RELATION: BINDS_TO -> activityStore, authStore
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// [DEF:frontend.src.lib.components.layout.__tests__.sidebarNavigation:Module]
|
||||
// @TIER: STANDARD
|
||||
// @COMPLEXITY: 3
|
||||
// @SEMANTICS: tests, sidebar, navigation, rbac, permissions
|
||||
// @PURPOSE: Verifies RBAC-based sidebar category and subitem visibility.
|
||||
// @LAYER: UI (Tests)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// [DEF:__tests__/test_breadcrumbs:Module]
|
||||
// @TIER: STANDARD
|
||||
// @COMPLEXITY: 3
|
||||
// @PURPOSE: Contract-focused unit tests for Breadcrumbs.svelte logic and UX annotations
|
||||
// @LAYER: UI
|
||||
// @RELATION: VERIFIES -> frontend/src/lib/components/layout/Breadcrumbs.svelte
|
||||
@@ -68,7 +68,7 @@ describe('Breadcrumbs Component Contract & Logic', () => {
|
||||
it('contains required UX tags and semantic header for STANDARD module', () => {
|
||||
const source = fs.readFileSync(COMPONENT_PATH, 'utf-8');
|
||||
|
||||
expect(source).toContain('@TIER: STANDARD');
|
||||
expect(source).toContain('@COMPLEXITY: 3');
|
||||
expect(source).toContain('@UX_STATE: Idle');
|
||||
expect(source).toContain('@UX_FEEDBACK');
|
||||
expect(source).toContain('@UX_RECOVERY');
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// [DEF:__tests__/test_sidebar:Module]
|
||||
// @TIER: STANDARD
|
||||
// @COMPLEXITY: 3
|
||||
// @PURPOSE: Unit tests for Sidebar.svelte component
|
||||
// @LAYER: UI
|
||||
// @RELATION: VERIFIES -> frontend/src/lib/components/layout/Sidebar.svelte
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// [DEF:__tests__/test_taskDrawer:Module]
|
||||
// @TIER: STANDARD
|
||||
// @COMPLEXITY: 3
|
||||
// @PURPOSE: Unit tests for TaskDrawer.svelte component
|
||||
// @LAYER: UI
|
||||
// @RELATION: VERIFIES -> frontend/src/lib/components/layout/TaskDrawer.svelte
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// [DEF:__tests__/test_topNavbar:Module]
|
||||
// @TIER: STANDARD
|
||||
// @COMPLEXITY: 3
|
||||
// @PURPOSE: Unit tests for TopNavbar.svelte component
|
||||
// @LAYER: UI
|
||||
// @RELATION: VERIFIES -> frontend/src/lib/components/layout/TopNavbar.svelte
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// [DEF:frontend.src.lib.components.layout.sidebarNavigation:Module]
|
||||
// @TIER: STANDARD
|
||||
// @COMPLEXITY: 3
|
||||
// @SEMANTICS: navigation, sidebar, rbac, menu, filtering
|
||||
// @PURPOSE: Build sidebar navigation categories filtered by current user permissions.
|
||||
// @LAYER: UI
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<!-- [DEF:ReportCard:Component] -->
|
||||
<script>
|
||||
/**
|
||||
* @TIER: CRITICAL
|
||||
* @COMPLEXITY: 5
|
||||
* @SEMANTICS: reports, card, type-profile, accessibility, fallback
|
||||
* @PURPOSE: Render one report with explicit textual type label and profile-driven visual variant.
|
||||
* @LAYER: UI
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<!-- [DEF:ReportDetailPanel:Component] -->
|
||||
<script>
|
||||
/**
|
||||
* @TIER: CRITICAL
|
||||
* @COMPLEXITY: 5
|
||||
* @SEMANTICS: reports, detail, diagnostics, next-actions, placeholders
|
||||
* @PURPOSE: Display detailed report context with diagnostics and actionable recovery guidance.
|
||||
* @LAYER: UI
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<!-- [DEF:ReportsList:Component] -->
|
||||
<script>
|
||||
/**
|
||||
* @TIER: CRITICAL
|
||||
* @COMPLEXITY: 5
|
||||
* @SEMANTICS: reports, list, card, unified, mixed-types
|
||||
* @PURPOSE: Render unified list of normalized reports with canonical minimum fields.
|
||||
* @LAYER: UI
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// [DEF:reports.fixtures:Module]
|
||||
// @TIER: STANDARD
|
||||
// @COMPLEXITY: 3
|
||||
// @SEMANTICS: reports, fixtures, test-data
|
||||
// @PURPOSE: Shared frontend fixtures for unified reports states.
|
||||
// @LAYER: UI
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
* @vitest-environment jsdom
|
||||
*/
|
||||
// [DEF:frontend.src.lib.components.reports.__tests__.report_card.ux:Module]
|
||||
// @TIER: STANDARD
|
||||
// @COMPLEXITY: 3
|
||||
// @SEMANTICS: reports, ux-tests, card, states, recovery
|
||||
// @PURPOSE: Test UX states and transitions for ReportCard component
|
||||
// @LAYER: UI
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// [DEF:frontend.src.lib.components.reports.__tests__.report_detail.integration:Module]
|
||||
// @TIER: STANDARD
|
||||
// @COMPLEXITY: 3
|
||||
// @SEMANTICS: tests, reports, detail, recovery-guidance, integration
|
||||
// @PURPOSE: Validate detail-panel behavior for failed reports and recovery guidance visibility.
|
||||
// @LAYER: UI (Tests)
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
* @vitest-environment jsdom
|
||||
*/
|
||||
// [DEF:frontend.src.lib.components.reports.__tests__.report_detail.ux:Module]
|
||||
// @TIER: STANDARD
|
||||
// @COMPLEXITY: 3
|
||||
// @SEMANTICS: reports, ux-tests, detail, diagnostics, recovery
|
||||
// @PURPOSE: Test UX states and recovery for ReportDetailPanel component
|
||||
// @LAYER: UI
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// [DEF:frontend.src.lib.components.reports.__tests__.report_type_profiles:Module]
|
||||
// @TIER: STANDARD
|
||||
// @COMPLEXITY: 3
|
||||
// @SEMANTICS: tests, reports, type-profiles, fallback
|
||||
// @PURPOSE: Validate report type profile mapping and unknown fallback behavior.
|
||||
// @LAYER: UI (Tests)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// [DEF:frontend.src.lib.components.reports.__tests__.reports_filter_performance:Module]
|
||||
// @TIER: STANDARD
|
||||
// @COMPLEXITY: 3
|
||||
// @SEMANTICS: tests, reports, performance, filtering
|
||||
// @PURPOSE: Guard test for report filter responsiveness on moderate in-memory dataset.
|
||||
// @LAYER: UI (Tests)
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
* @vitest-environment jsdom
|
||||
*/
|
||||
// [DEF:frontend.src.lib.components.reports.__tests__.reports_list.ux:Module]
|
||||
// @TIER: STANDARD
|
||||
// @COMPLEXITY: 3
|
||||
// @SEMANTICS: reports, list, ux-tests, events, iteration
|
||||
// @PURPOSE: Test ReportsList component iteration and event forwarding.
|
||||
// @LAYER: UI
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// [DEF:frontend.src.lib.components.reports.__tests__.reports_page.integration:Module]
|
||||
// @TIER: STANDARD
|
||||
// @COMPLEXITY: 3
|
||||
// @SEMANTICS: tests, reports, integration, mixed-types, rendering
|
||||
// @PURPOSE: Integration-style checks for unified mixed-type reports rendering expectations.
|
||||
// @LAYER: UI (Tests)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// [DEF:frontend.src.lib.components.reports.reportTypeProfiles:Module]
|
||||
// @TIER: CRITICAL
|
||||
// @COMPLEXITY: 5
|
||||
// @SEMANTICS: reports, ui, profiles, fallback, mapping
|
||||
// @PURPOSE: Deterministic mapping from report task_type to visual profile with one fallback.
|
||||
// @LAYER: UI
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// [DEF:i18n:Module]
|
||||
//
|
||||
// @TIER: STANDARD
|
||||
// @COMPLEXITY: 3
|
||||
// @SEMANTICS: i18n, localization, svelte-store, translation
|
||||
// @PURPOSE: Centralized internationalization management using Svelte stores.
|
||||
// @LAYER: Infra
|
||||
|
||||
@@ -1,71 +1,71 @@
|
||||
// [DEF:stores_module:Module]
|
||||
// @TIER: STANDARD
|
||||
// @SEMANTICS: state, stores, svelte, plugins, tasks
|
||||
// @PURPOSE: Global state management using Svelte stores.
|
||||
// @LAYER: UI-State
|
||||
|
||||
import { writable } from 'svelte/store';
|
||||
import { api } from './api.js';
|
||||
|
||||
// [DEF:plugins:Data]
|
||||
// @PURPOSE: Store for the list of available plugins.
|
||||
export const plugins = writable([]);
|
||||
// [/DEF:plugins:Data]
|
||||
|
||||
// [DEF:tasks:Data]
|
||||
// @PURPOSE: Store for the list of tasks.
|
||||
export const tasks = writable([]);
|
||||
// [/DEF:tasks:Data]
|
||||
|
||||
// [DEF:selectedPlugin:Data]
|
||||
// @PURPOSE: Store for the currently selected plugin.
|
||||
export const selectedPlugin = writable(null);
|
||||
// [/DEF:selectedPlugin:Data]
|
||||
|
||||
// [DEF:selectedTask:Data]
|
||||
// @PURPOSE: Store for the currently selected task.
|
||||
export const selectedTask = writable(null);
|
||||
// [/DEF:selectedTask:Data]
|
||||
|
||||
// [DEF:currentPage:Data]
|
||||
// @PURPOSE: Store for the current page.
|
||||
export const currentPage = writable('dashboard');
|
||||
// [/DEF:currentPage:Data]
|
||||
|
||||
// [DEF:taskLogs:Data]
|
||||
// @PURPOSE: Store for the logs of the currently selected task.
|
||||
export const taskLogs = writable([]);
|
||||
// [/DEF:taskLogs:Data]
|
||||
|
||||
// [DEF:fetchPlugins:Function]
|
||||
// @PURPOSE: Fetches plugins from the API and updates the plugins store.
|
||||
// @PRE: None.
|
||||
// @POST: plugins store is updated with data from the API.
|
||||
export async function fetchPlugins() {
|
||||
try {
|
||||
console.log("[stores.fetchPlugins][Action] Fetching plugins.");
|
||||
const data = await api.getPlugins();
|
||||
console.log("[stores.fetchPlugins][Coherence:OK] Plugins fetched context={{'count': " + data.length + "}}");
|
||||
plugins.set(data);
|
||||
} catch (error) {
|
||||
console.error(`[stores.fetchPlugins][Coherence:Failed] Error fetching plugins context={{'error': '${error}'}}`);
|
||||
}
|
||||
}
|
||||
// [/DEF:fetchPlugins:Function]
|
||||
|
||||
// [DEF:fetchTasks:Function]
|
||||
// @PURPOSE: Fetches tasks from the API and updates the tasks store.
|
||||
// @PRE: None.
|
||||
// @POST: tasks store is updated with data from the API.
|
||||
export async function fetchTasks() {
|
||||
try {
|
||||
console.log("[stores.fetchTasks][Action] Fetching tasks.");
|
||||
const data = await api.getTasks();
|
||||
console.log("[stores.fetchTasks][Coherence:OK] Tasks fetched context={{'count': " + data.length + "}}");
|
||||
tasks.set(data);
|
||||
} catch (error) {
|
||||
console.error(`[stores.fetchTasks][Coherence:Failed] Error fetching tasks context={{'error': '${error}'}}`);
|
||||
}
|
||||
}
|
||||
// [/DEF:fetchTasks:Function]
|
||||
// [DEF:stores_module:Module]
|
||||
// @COMPLEXITY: 3
|
||||
// @SEMANTICS: state, stores, svelte, plugins, tasks
|
||||
// @PURPOSE: Global state management using Svelte stores.
|
||||
// @LAYER: UI-State
|
||||
|
||||
import { writable } from 'svelte/store';
|
||||
import { api } from './api.js';
|
||||
|
||||
// [DEF:plugins:Data]
|
||||
// @PURPOSE: Store for the list of available plugins.
|
||||
export const plugins = writable([]);
|
||||
// [/DEF:plugins:Data]
|
||||
|
||||
// [DEF:tasks:Data]
|
||||
// @PURPOSE: Store for the list of tasks.
|
||||
export const tasks = writable([]);
|
||||
// [/DEF:tasks:Data]
|
||||
|
||||
// [DEF:selectedPlugin:Data]
|
||||
// @PURPOSE: Store for the currently selected plugin.
|
||||
export const selectedPlugin = writable(null);
|
||||
// [/DEF:selectedPlugin:Data]
|
||||
|
||||
// [DEF:selectedTask:Data]
|
||||
// @PURPOSE: Store for the currently selected task.
|
||||
export const selectedTask = writable(null);
|
||||
// [/DEF:selectedTask:Data]
|
||||
|
||||
// [DEF:currentPage:Data]
|
||||
// @PURPOSE: Store for the current page.
|
||||
export const currentPage = writable('dashboard');
|
||||
// [/DEF:currentPage:Data]
|
||||
|
||||
// [DEF:taskLogs:Data]
|
||||
// @PURPOSE: Store for the logs of the currently selected task.
|
||||
export const taskLogs = writable([]);
|
||||
// [/DEF:taskLogs:Data]
|
||||
|
||||
// [DEF:fetchPlugins:Function]
|
||||
// @PURPOSE: Fetches plugins from the API and updates the plugins store.
|
||||
// @PRE: None.
|
||||
// @POST: plugins store is updated with data from the API.
|
||||
export async function fetchPlugins() {
|
||||
try {
|
||||
console.log("[stores.fetchPlugins][Action] Fetching plugins.");
|
||||
const data = await api.getPlugins();
|
||||
console.log("[stores.fetchPlugins][Coherence:OK] Plugins fetched context={{'count': " + data.length + "}}");
|
||||
plugins.set(data);
|
||||
} catch (error) {
|
||||
console.error(`[stores.fetchPlugins][Coherence:Failed] Error fetching plugins context={{'error': '${error}'}}`);
|
||||
}
|
||||
}
|
||||
// [/DEF:fetchPlugins:Function]
|
||||
|
||||
// [DEF:fetchTasks:Function]
|
||||
// @PURPOSE: Fetches tasks from the API and updates the tasks store.
|
||||
// @PRE: None.
|
||||
// @POST: tasks store is updated with data from the API.
|
||||
export async function fetchTasks() {
|
||||
try {
|
||||
console.log("[stores.fetchTasks][Action] Fetching tasks.");
|
||||
const data = await api.getTasks();
|
||||
console.log("[stores.fetchTasks][Coherence:OK] Tasks fetched context={{'count': " + data.length + "}}");
|
||||
tasks.set(data);
|
||||
} catch (error) {
|
||||
console.error(`[stores.fetchTasks][Coherence:Failed] Error fetching tasks context={{'error': '${error}'}}`);
|
||||
}
|
||||
}
|
||||
// [/DEF:fetchTasks:Function]
|
||||
// [/DEF:stores_module:Module]
|
||||
@@ -1,5 +1,5 @@
|
||||
// [DEF:frontend.src.lib.stores.__tests__.assistantChat:Module]
|
||||
// @TIER: STANDARD
|
||||
// @COMPLEXITY: 3
|
||||
// @SEMANTICS: test, store, assistant, toggle, conversation
|
||||
// @PURPOSE: Validate assistant chat store visibility and conversation binding transitions.
|
||||
// @LAYER: UI Tests
|
||||
@@ -17,7 +17,7 @@ import {
|
||||
} from '../assistantChat.js';
|
||||
|
||||
// [DEF:assistantChatStore_tests:Function]
|
||||
// @TIER: STANDARD
|
||||
// @COMPLEXITY: 3
|
||||
// @PURPOSE: Group store unit scenarios for assistant panel behavior.
|
||||
// @PRE: Store can be reset to baseline state in beforeEach hook.
|
||||
// @POST: Open/close/toggle/conversation transitions are validated.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// [DEF:mock_env_public:Module]
|
||||
// @TIER: STANDARD
|
||||
// @COMPLEXITY: 3
|
||||
// @PURPOSE: Mock for $env/static/public SvelteKit module in vitest
|
||||
// @LAYER: UI (Tests)
|
||||
export const PUBLIC_WS_URL = 'ws://localhost:8000';
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// [DEF:setupTests:Module]
|
||||
// @TIER: STANDARD
|
||||
// @COMPLEXITY: 3
|
||||
// @PURPOSE: Global test setup with mocks for SvelteKit modules
|
||||
// @LAYER: UI
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// @RELATION: VERIFIES -> frontend/src/lib/stores/sidebar.js
|
||||
// [DEF:frontend.src.lib.stores.__tests__.sidebar:Module]
|
||||
// @TIER: STANDARD
|
||||
// @COMPLEXITY: 3
|
||||
// @SEMANTICS: sidebar, store, tests, mobile, navigation
|
||||
// @PURPOSE: Unit tests for sidebar store
|
||||
// @LAYER: Domain (Tests)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// [DEF:frontend.src.lib.stores.__tests__.test_activity:Module]
|
||||
// @TIER: STANDARD
|
||||
// @COMPLEXITY: 3
|
||||
// @PURPOSE: Unit tests for activity store
|
||||
// @LAYER: UI
|
||||
// @RELATION: VERIFIES -> frontend.src.lib.stores.activity
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// [DEF:frontend.src.lib.stores.__tests__.test_sidebar:Module]
|
||||
// @TIER: STANDARD
|
||||
// @COMPLEXITY: 3
|
||||
// @PURPOSE: Unit tests for sidebar store
|
||||
// @LAYER: UI
|
||||
// @RELATION: VERIFIES -> frontend.src.lib.stores.sidebar
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// [DEF:frontend.src.lib.stores.__tests__.test_taskDrawer:Module]
|
||||
// @TIER: STANDARD
|
||||
// @COMPLEXITY: 3
|
||||
// @SEMANTICS: task-drawer, store, mapping, tests
|
||||
// @PURPOSE: Unit tests for task drawer store
|
||||
// @LAYER: UI
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// [DEF:activity:Store]
|
||||
// @TIER: STANDARD
|
||||
// @COMPLEXITY: 3
|
||||
// @PURPOSE: Track active task count for navbar indicator
|
||||
// @LAYER: UI
|
||||
// @RELATION: DEPENDS_ON -> WebSocket connection, taskDrawer store
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// [DEF:assistantChat:Store]
|
||||
// @TIER: STANDARD
|
||||
// @COMPLEXITY: 3
|
||||
// @SEMANTICS: assistant, store, ui-state, conversation
|
||||
// @PURPOSE: Control assistant chat panel visibility and active conversation binding.
|
||||
// @LAYER: UI
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// [DEF:environmentContext:Store]
|
||||
// @TIER: STANDARD
|
||||
// @COMPLEXITY: 3
|
||||
// @PURPOSE: Global selected environment context for navigation and safety cues.
|
||||
// @LAYER: UI-State
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// [DEF:health_store:Store]
|
||||
// @TIER: STANDARD
|
||||
// @COMPLEXITY: 3
|
||||
// @PURPOSE: Manage dashboard health summary state and failing counts for UI badges.
|
||||
// @LAYER: UI
|
||||
// @RELATION: DEPENDS_ON -> api.getHealthSummary
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// [DEF:sidebar:Store]
|
||||
// @TIER: STANDARD
|
||||
// @COMPLEXITY: 3
|
||||
// @PURPOSE: Manage sidebar visibility and navigation state
|
||||
// @LAYER: UI
|
||||
// @INVARIANT: isExpanded state is always synced with localStorage
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// [DEF:taskDrawer:Store]
|
||||
// @TIER: CRITICAL
|
||||
// @COMPLEXITY: 5
|
||||
// @PURPOSE: Manage Task Drawer visibility and resource-to-task mapping
|
||||
// @LAYER: UI
|
||||
// @INVARIANT: resourceTaskMap always reflects current task associations
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<!-- [DEF:Button:Component] -->
|
||||
<!--
|
||||
@TIER: TRIVIAL
|
||||
@COMPLEXITY: 1
|
||||
@SEMANTICS: button, ui-atom, interactive
|
||||
@PURPOSE: Standardized button component with variants and loading states.
|
||||
@LAYER: Atom
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<!-- [DEF:Card:Component] -->
|
||||
<!--
|
||||
@TIER: TRIVIAL
|
||||
@COMPLEXITY: 1
|
||||
@SEMANTICS: card, container, ui-atom
|
||||
@PURPOSE: Standardized container with padding and elevation.
|
||||
@LAYER: Atom
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<!-- [DEF:Input:Component] -->
|
||||
<!--
|
||||
@TIER: TRIVIAL
|
||||
@COMPLEXITY: 1
|
||||
@SEMANTICS: input, form-field, ui-atom
|
||||
@PURPOSE: Standardized text input component with label and error handling.
|
||||
@LAYER: Atom
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<!-- [DEF:LanguageSwitcher:Component] -->
|
||||
<!--
|
||||
@TIER: TRIVIAL
|
||||
@COMPLEXITY: 1
|
||||
@SEMANTICS: language-switcher, i18n-ui, ui-atom
|
||||
@PURPOSE: Dropdown component to switch between supported languages.
|
||||
@LAYER: Atom
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<!-- [DEF:PageHeader:Component] -->
|
||||
<!--
|
||||
@TIER: TRIVIAL
|
||||
@COMPLEXITY: 1
|
||||
@SEMANTICS: page-header, layout-atom
|
||||
@PURPOSE: Standardized page header with title and action area.
|
||||
@LAYER: Atom
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<!-- [DEF:Select:Component] -->
|
||||
<!--
|
||||
@TIER: TRIVIAL
|
||||
@COMPLEXITY: 1
|
||||
@SEMANTICS: select, dropdown, form-field, ui-atom
|
||||
@PURPOSE: Standardized dropdown selection component.
|
||||
@LAYER: Atom
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// [DEF:ui:Module]
|
||||
//
|
||||
// @TIER: TRIVIAL
|
||||
// @COMPLEXITY: 1
|
||||
// @SEMANTICS: ui, components, library, atomic-design
|
||||
// @PURPOSE: Central export point for standardized UI components.
|
||||
// @LAYER: Atom
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// [DEF:Utils:Module]
|
||||
/**
|
||||
* @TIER: TRIVIAL
|
||||
* @COMPLEXITY: 1
|
||||
* @PURPOSE: General utility functions (class merging)
|
||||
* @LAYER: Infra
|
||||
*
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// [DEF:Debounce:Module]
|
||||
/**
|
||||
* @TIER: TRIVIAL
|
||||
* @COMPLEXITY: 1
|
||||
* @PURPOSE: Debounce utility for limiting function execution rate
|
||||
* @LAYER: Infra
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user