ContentGuardianAgent consolidation:
- Merge 3 duplicate classes into single source in specialized/content_guardian.py
- Watchdog audit_committee() with heuristic scoring, coverage gaps, overlaps, alerts
- Remove misleading rejection_rate() helper; use acceptance_rate directly
- Integrate audit + alerts + trend signals into today_workflow_service.py
Team Activity page:
- QualityAuditPanel: health ring, per-agent critiques, coverage gaps, overlaps
- TrendSignalsPanel: opportunity cards with urgency/impact/coverage bars
- AlertBanner: persistent dismiss via POST /alerts/{id}/mark-read
- AgentHelpModal: dialog showing all 8 agents with descriptions, tools, schedule
- QualityAuditPanel action buttons: Fill gap -> /content-planning, Resolve overlap, View CTA on alerts/issues
- TrendSignalsPanel action buttons: Create content from this trend -> /blog-writer with trend context state
Onboarding system:
- Step 4 validation: no auto-pass via basic_ready; requires persona data or explicit progression
- Step 5 validation: logs warning on auto-pass without integration data
- OnboardingCompletionService: single DB session, transactional task creation, upsert pattern
- Business-without-website: nullable website_url on SIFIndexingTask and MarketTrendsTask
- DeepCompetitorAnalysisExecutor: 5-min timeout, 10-competitor cap, asyncio.wait_for
- Persona generation: async with 30s timeout, falls back to scheduler
- OnboardingProgressService.reset_onboarding(): resets session + pauses all DB tasks
- OnboardingControlService.reset_onboarding(): also cancels APScheduler jobs
- FinalStep TaskSchedulingPanel: shows scheduled/failed tasks after completion, 8s auto-redirect
- onboarding_completed agent activity event logged to feed
Documentation:
- docs-site/features/onboarding/: overview, steps, scheduler-tasks, technical-reference (4 pages)
- docs-site/mkdocs.yml: added Onboarding System nav section
- docs-site/features/sif-agents/: overview, agent-directory, committee-system, content-guardian (4 pages)
- docs-site/features/team-activity/: overview, quality-audit, trend-signals, alert-system (4 pages)
- docs-site/features/todays-workflow/: updated overview, technical-architecture, workflow-guide, api-reference
79 lines
2.4 KiB
JSON
79 lines
2.4 KiB
JSON
{
|
|
"name": "alwrity-frontend",
|
|
"version": "1.0.0",
|
|
"description": "Alwrity React Frontend",
|
|
"private": true,
|
|
"dependencies": {
|
|
"@clerk/clerk-react": "^5.46.1",
|
|
"@copilotkit/react-core": "^1.10.6",
|
|
"@copilotkit/react-textarea": "^1.10.6",
|
|
"@copilotkit/react-ui": "^1.10.6",
|
|
"@copilotkit/shared": "^1.10.3",
|
|
"@emotion/react": "^11.11.0",
|
|
"@emotion/styled": "^11.11.0",
|
|
"@mui/icons-material": "^5.15.0",
|
|
"@mui/material": "^5.15.0",
|
|
"@stripe/react-stripe-js": "^5.6.0",
|
|
"@stripe/stripe-js": "^8.7.0",
|
|
"@tanstack/react-query": "^5.87.1",
|
|
"@types/react": "^18.2.0",
|
|
"@types/react-dom": "^18.2.0",
|
|
"@types/react-router-dom": "^5.3.3",
|
|
"@types/recharts": "^1.8.29",
|
|
"@wix/blog": "^1.0.488",
|
|
"@wix/sdk": "^1.17.1",
|
|
"ajv": "^8.18.0",
|
|
"axios": "^1.12.0",
|
|
"framer-motion": "^12.23.12",
|
|
"html2canvas": "^1.4.1",
|
|
"lucide-react": "^0.543.0",
|
|
"react": "^18.2.0",
|
|
"react-dom": "^18.2.0",
|
|
"react-joyride": "^2.9.3",
|
|
"react-router-dom": "^6.20.1",
|
|
"react-scripts": "5.0.1",
|
|
"recharts": "^3.2.0",
|
|
"zod": "^3.25.76",
|
|
"zustand": "^5.0.7"
|
|
},
|
|
"scripts": {
|
|
"start": "node --max_old_space_size=12288 node_modules/react-scripts/scripts/start.js",
|
|
"build": "node --max_old_space_size=12288 node_modules/react-scripts/scripts/build.js",
|
|
"build:nomap": "node --max_old_space_size=12288 -e \"process.env.GENERATE_SOURCEMAP='false'; require('./node_modules/react-scripts/scripts/build');\"",
|
|
"test": "react-scripts test",
|
|
"eject": "react-scripts eject",
|
|
"analyze": "npm run build && npx source-map-explorer 'build/static/js/*.js' --html bundle-report.html",
|
|
"analyze:size": "npm run build && npx bundlesize"
|
|
},
|
|
"eslintConfig": {
|
|
"extends": [
|
|
"react-app",
|
|
"react-app/jest"
|
|
]
|
|
},
|
|
"browserslist": {
|
|
"production": [
|
|
">0.2%",
|
|
"not dead",
|
|
"not op_mini all"
|
|
],
|
|
"development": [
|
|
"last 1 chrome version",
|
|
"last 1 firefox version",
|
|
"last 1 safari version"
|
|
]
|
|
},
|
|
"devDependencies": {
|
|
"@testing-library/jest-dom": "^6.9.1",
|
|
"@testing-library/react": "^16.3.2",
|
|
"@testing-library/user-event": "^14.6.1",
|
|
"@types/jest": "^30.0.0",
|
|
"@types/marked": "^5.0.2",
|
|
"@types/node": "^25.0.10",
|
|
"source-map-explorer": "^2.5.2",
|
|
"typescript": "^5.3.3"
|
|
},
|
|
"proxy": "http://localhost:8000",
|
|
"homepage": "/"
|
|
}
|