task_id: task_create_page_apps entity_id: page_apps generated_at: '2025-12-19T06:08:12.183205' workflow_version: v001 target: type: page definition: id: page_apps name: Generated Apps path: /apps layout: layout_app data_needs: - api_id: api_list_apps purpose: Display generated apps gallery on_load: true components: - component_header - component_sidebar - component_app_gallery - component_app_card seo: title: Generated Apps - NoteToApp description: Your AI-generated applications auth: required: true roles: [] redirect: /login state: local: - filterType global: - user related: models: [] apis: - id: api_list_apps definition: &id001 id: api_list_apps method: GET path: /api/apps summary: List generated apps description: Get all apps generated for authenticated user tags: - apps path_params: [] query_params: - name: limit type: integer required: false default: 50 description: Maximum number of apps to return - name: offset type: integer required: false default: 0 description: Number of apps to skip request_body: content_type: application/json schema: type: object properties: [] responses: - status: 200 description: Apps list schema: type: object properties: - name: apps type: array - name: total type: integer example: apps: - id: app-123 title: Todo App app_type: todo status: completed created_at: '2024-12-19T06:00:00Z' total: 12 depends_on_models: - model_generated_app depends_on_apis: [] auth: required: true roles: [] external: false components: - id: component_app_card definition: &id002 id: component_app_card name: AppCard props: - name: app type: GeneratedApp required: true description: Generated app to display - name: showActions type: boolean required: false default: true description: Show delete button events: - name: onClick payload: string description: Fired when card clicked, payload is app ID - name: onDelete payload: string description: Fired when delete confirmed, payload is app ID uses_apis: [] uses_components: [] internal_state: - isDeleting variants: - default - compact external: false - id: component_app_gallery definition: &id003 id: component_app_gallery name: AppGallery props: - name: apps type: GeneratedApp[] required: true description: Array of generated apps to display - name: isLoading type: boolean required: false default: false description: Whether apps are being loaded events: - name: onSelectApp payload: string description: Fired when app is clicked, payload is app ID uses_apis: [] uses_components: - component_app_card internal_state: [] variants: - grid - list external: false - id: component_header definition: &id004 id: component_header name: Header props: - name: user type: User | null required: false default: null description: Current user for displaying name/avatar events: [] uses_apis: [] uses_components: [] internal_state: [] variants: - default external: false - id: component_sidebar definition: &id005 id: component_sidebar name: Sidebar props: - name: activePath type: string required: true description: Current route path for highlighting events: - name: onNavigate payload: string description: Fired when navigation item clicked uses_apis: [] uses_components: [] internal_state: - isCollapsed variants: - default external: false dependencies: entity_ids: - api_list_apps - component_app_card - component_app_gallery - component_header - component_sidebar definitions: - id: api_list_apps type: api definition: *id001 external: false - id: component_app_card type: component definition: *id002 external: false - id: component_app_gallery type: component definition: *id003 external: false - id: component_header type: component definition: *id004 external: false - id: component_sidebar type: component definition: *id005 external: false files: to_create: - app/apps/page.tsx reference: [] acceptance: - criterion: Page renders at /apps verification: Navigate to /apps - criterion: Data fetching works verification: Check network tab - criterion: Components render correctly verification: Visual inspection