Files
sfera/README.md
T
2026-05-16 19:03:49 +03:00

727 lines
15 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# SFERA Platform
**SFERA — Semantic Operating Platform for 1C Ecosystems**
SFERA — enterprise semantic platform для анализа, понимания, индексирования, визуализации и AI-оркестрации экосистем 1С.
SFERA также является современной IDE/authoring-средой для 1С: пользователь должен уметь вручную писать код, создавать и менять объекты, формы, команды и отчёты, а AI должен помогать как pair programmer, который видит текущий код, metadata, связи объектов, доступные переменные и правила платформы.
Платформа строит детерминированное semantic core ядро поверх:
- 1C BSL
- XML metadata
- CF/CFE
- integrations
- access topology
- UI semantics
- scheduled jobs
- object dependencies
- runtime graph
SFERA проектируется как:
```text
Enterprise AI Operating System
for 1C ecosystems
```
---
# Core Philosophy
```text
Semantic truth first.
AI later.
```
AI не является источником истины.
Сначала:
- deterministic parsing
- semantic graph
- metadata topology
- impact analysis
- dependency resolution
- integration discovery
- access analysis
И только потом:
- AI copilots
- AI review
- AI reasoning
- AI onboarding
- AI architecture analysis
- AI migration planning
---
# High-Level Architecture
```text
1C BSL/XML/CF/CFE
Rust BSL Parser
SIR Snapshot
Semantic Kernel
Neo4j Semantic Graph
Incremental Indexing
Impact Analysis
AI Operating Layer
```
---
# Main Goals
## Semantic Understanding of 1C
SFERA должна понимать:
- объекты 1С
- формы
- команды
- реквизиты
- табличные части
- роли
- права доступа
- BSL dependencies
- integrations
- scheduled jobs
- runtime topology
- object impact
- UI semantics
---
## 1C IDE and Authoring
SFERA должна давать возможности современной IDE для 1С:
- BSL editor: подсветка, диагностика, folding, outline, go to definition, find references, rename, extract method и безопасные refactoring actions.
- Semantic autocomplete: продолжение кода с учётом текущей процедуры, параметров, локальных переменных, реквизитов объекта, табличных частей, форм, команд, ролей, интеграций и доступных методов 1С.
- AI pair programmer: генерация процедур, функций, запросов, обработчиков команд, движений регистров, проверок заполнения и обработчиков форм.
- Object designer: создание и изменение документов, справочников, регистров, общих модулей, реквизитов, табличных частей, команд и форм.
- Form/report designer: работа с формами, элементами, командами, обработчиками и отчётами в visual/object-oriented интерфейсе.
- Diff/preview/apply: любое AI- или ручное изменение проходит через preview, semantic diff, impact analysis, review и подтверждение.
- Context-aware hints: подсказки не просто по словам, а по текущему объекту 1С, доступным данным, связям, query/write context и runtime/knowledge facts.
AI не ограничивается анализом. Он должен уметь писать код и предлагать структурные изменения, но SFERA обязана показывать последствия и держать контроль применения у пользователя.
---
## Enterprise AI Layer
Поверх semantic graph строится AI operating layer:
- AI code completion
- AI code generation
- AI object/form/report generation
- AI guarded refactoring
- AI code review
- AI impact analysis
- AI onboarding
- AI architecture assistant
- AI dependency explorer
- AI migration assistant
- AI semantic search
- AI documentation generation
- AI risk analysis
- AI integration analysis
AI должен работать поверх semantic truth: перед предложением кода он учитывает текущий BSL-контекст, AST/SIR, metadata object, форму, доступные реквизиты, табличные части, команды, роли, запросы, регистры, интеграции, knowledge records и privacy policy.
---
## 1C Knowledge Coverage
`GET /projects/{project_id}/knowledge/schema-coverage` показывает покрытие knowledge-records для документов, справочников, реквизитов и табличных частей.
`GET /projects/{project_id}/review` добавляет INFO `Missing 1C schema knowledge`, если узел схемы 1С не связан ни с одной knowledge-записью.
`POST /knowledge/packs` импортирует BSP/vendor documentation pack как набор `KnowledgeRecord` с тегами `pack:{pack_id}` и `vendor:{vendor}`. `GET /knowledge/packs` показывает установленные пакеты знаний.
`GET /projects/{project_id}/patterns` выполняет детерминированный pattern mining по SIR: повторяющиеся чтения таблиц, записи таблиц и совпадающие read/write формы процедур.
## 1C Ownership
`POST /projects/{project_id}/comments` добавляет обсуждение к `target_id` внутри проекта, а `GET /projects/{project_id}/comments/{target_id}` возвращает комментарии по конкретному объекту, задаче или lineage.
`POST /projects/{project_id}/ownership` назначает ответственного на 1С-объект по `lineage_id`.
`GET /projects/{project_id}/objects/ownership/{object_name}` возвращает владельцев документа, справочника, регистра, общего модуля и других корневых объектов 1С.
`GET /projects/{project_id}/review` добавляет INFO `Missing 1C object owner` для 1С-объектов без назначенного владельца, а `GET /projects/{project_id}/report` включает `ownership_count`, `unowned_object_count` и `unowned_objects`.
## 1C Privacy
`POST /projects/{project_id}/privacy/markers` назначает privacy-классификацию на `lineage_id`: `PUBLIC`, `INTERNAL`, `CONFIDENTIAL`, `PERSONAL_DATA`, `SECRET`.
`GET /projects/{project_id}/objects/privacy/{object_name}` возвращает privacy-маркеры самого 1С-объекта и его прямых реквизитов/табличных частей/форм.
`GET /projects/{project_id}/review` добавляет INFO `Unclassified sensitive 1C field` для реквизитов с чувствительными именами вроде ИНН, паспорт, телефон, email, адрес, если они ещё не классифицированы.
## AI Usage Governance
`POST /ai/usage` записывает факт AI-действия: проект, пользователь, модель, операция, prompt/completion токены и стоимость.
`GET /ai/usage/summary` агрегирует AI usage по проекту, пользователю, модели и операции. `GET /ai/policy` показывает текущий token limit и остаток для пользователя.
`GET /projects/{project_id}/report` включает `ai_usage_request_count`, `ai_usage_total_tokens` и `ai_usage_cost`.
`POST /projects/{project_id}/ai/answer-policy` проверяет, можно ли отвечать на AI-вопрос по выбранному 1С-контексту: учитывает token budget, knowledge records, privacy markers и запрет external model calls.
---
# Monorepo Structure
```text
sfera-platform/
packages/
bsl-parser-rs/
sir/
semantic-kernel/
neo4j-projection/
indexing/
integrations/
api/
ai/
frontend/
sfera-web/
docs/
architecture/
frontend/
operations/
ai/
prompts/
.codex/
.cursor/
```
---
# Technology Stack
## Backend
```text
Python
FastAPI
Rust
Neo4j
PostgreSQL
Pydantic
NetworkX
asyncio
uv
```
## Frontend
```text
Next.js
React
TypeScript
Tailwind CSS
shadcn/ui
TanStack Table
TanStack Query
Zustand
Framer Motion
Recharts / ECharts
```
## AI Layer
```text
OpenAI-compatible APIs
Local LLM support
Multi-model routing
AI policy engine
AI audit system
Context orchestration
Token accounting
Semantic AI routing
```
---
# Quick Start
## Environment
```bash
cp .env.example .env
uv sync --all-packages
```
## Run tests
```bash
pytest packages/sir/tests
```
## Run Rust parser
```bash
cargo run -p bsl-parser -- ../tests/golden/english_module.bsl
```
---
# Development Philosophy
SFERA строится как:
```text
Deterministic semantic platform first.
AI-enhanced operating system second.
```
Главный приоритет:
- reproducibility
- deterministic parsing
- semantic correctness
- graph consistency
- auditability
- incremental scalability
---
# Semantic Intermediate Representation (SIR)
Rust parser возвращает deterministic JSON contract:
```json
{
"procedures": [],
"calls": [],
"queries": [],
"writes": [],
"diagnostics": []
}
```
SIR является semantic truth snapshot проекта.
---
# Supported 1C Metadata
## Core metadata objects
```text
Catalog
Document
Register
CommonModule
ExchangePlan
ScheduledJob
BusinessProcess
Task
Role
Form
Command
Attribute
TabularSection
Element
```
---
# Semantic Graph Relations
## Main graph relations
```text
CALLS
WRITES
READS
USES_INTEGRATION
HANDLES
CONTAINS
HAS_FORM
HAS_COMMAND
HAS_ATTRIBUTE
HAS_TABULAR_SECTION
HAS_ROLE
HAS_ELEMENT
RUNS
GRANTS_ACCESS
```
---
# Object Impact Analysis
SFERA умеет строить object-level impact:
- реквизиты
- табличные части
- формы
- команды
- BSL handlers
- registers
- integrations
- scheduled jobs
- roles/access
- UI semantics
- cross-module dependencies
---
# Incremental Indexing
SFERA поддерживает incremental semantic updates.
Изменение:
- `.bsl`
- `.xml`
- metadata object
- forms
- handlers
перестраивает только affected semantic graph sections.
---
# Neo4j Projection
Semantic graph может быть выгружен в Neo4j:
```text
SIR Snapshot
Neo4j Projection
Cypher Queries
Graph Analytics
```
---
# Integration Topology
SFERA извлекает integrations из:
- HTTPConnection
- HTTPСоединение
- WSProxy
- FTPConnection
- COMObject
- ExchangePlan
- URL strings
- external services
---
# Scheduled Jobs
Регламентные задания индексируются как runtime semantic graph:
```text
ScheduledJob
RUNS
Procedure
```
---
# Access Model
Для ролей 1С извлекаются:
- object permissions
- rights
- grants
- access topology
Graph relation:
```text
Role GRANTS_ACCESS Object
```
---
# UI Semantics
SFERA анализирует UI layer:
- forms
- commands
- command handlers
- form elements
- UI actions
- BSL bindings
---
# API Examples
## Object impact
```text
GET /projects/{project_id}/objects/impact/{object_name}
```
## UI semantics
```text
GET /projects/{project_id}/objects/ui/{object_name}
```
## Integrations
```text
GET /projects/{project_id}/integrations
```
## Scheduled jobs
```text
GET /projects/{project_id}/jobs/scheduled
```
## Access graph
```text
GET /projects/{project_id}/access/roles/{role_name}/objects
```
---
# Frontend Philosophy
SFERA UI — не обычная CRM.
Интерфейс должен ощущаться как:
- Linear
- Stripe Dashboard
- Notion
- Attio
- Plane
- Enterprise AI Workspace
---
# Frontend Stack
```text
Next.js
React
TypeScript
Tailwind CSS
shadcn/ui
TanStack Table
Framer Motion
```
---
# Enterprise UI Principles
## Main principles
- clean enterprise minimalism
- dark/light mode
- modular workspace
- AI-native UX
- semantic navigation
- adaptive layouts
- contextual side panels
- command palette
- realtime analytics
---
# AI-Assisted Development
Проект проектируется для работы через:
- Codex
- Cursor
- v0
- AI code review
- AI UI generation
- AI semantic assistants
---
# Codex Workflow
В репозитории присутствуют:
```text
.codex/
.cursor/
docs/design-system.md
docs/component-architecture.md
docs/codex-ui-guidelines.md
prompts/
```
Codex обязан:
- соблюдать architecture rules
- соблюдать design system
- генерировать production-ready TypeScript
- использовать reusable components
- учитывать AI limits/audit/token usage
---
# Frontend Design System
Frontend design system основан на:
```text
Tailwind CSS
shadcn/ui
Radix UI
Design Tokens
Enterprise Layout Rules
```
Основной принцип:
```text
Enterprise AI Operating System
instead of legacy CRM UI
```
---
# AI Operating Layer
Будущие AI возможности:
- AI semantic copilots
- AI impact prediction
- AI migration planning
- AI documentation generation
- AI integration analysis
- AI security review
- AI onboarding assistant
- AI dependency graph reasoning
- AI runtime diagnostics
- AI topology explorer
---
# Infrastructure
Docker Engine локально для development stand не обязателен.
Общий infrastructure host:
```text
docker-test
test-docker
```
Infrastructure documentation:
```text
docs/operations/STAND_RUNBOOK.md
```
---
# First Demo Target
```bsl
Процедура Проведение()
ПроверитьОстатки();
Движения.ОстаткиТоваров.Записать();
КонецПроцедуры
```
Expected semantic graph:
```text
Проведение CALLS ПроверитьОстатки
Проведение WRITES РегистрНакопления.ОстаткиТоваров
```
---
# Long-Term Vision
SFERA — это не просто analyzer.
Цель проекта:
```text
Semantic Operating System
for enterprise 1C ecosystems
```
Где:
- semantic graph
- runtime topology
- integrations
- access model
- UI semantics
- AI reasoning
- enterprise workflows
- impact analysis
становятся единой operating platform.
---
# Core Principles
```text
Deterministic.
Semantic.
Incremental.
Observable.
AI-Ready.
Enterprise-Scale.
```
---
# Future Roadmap
## Phase 1
- Rust parser
- SIR
- semantic graph
- Neo4j projection
- incremental indexing
## Phase 2
- semantic APIs
- integrations topology
- access graph
- UI semantics
## Phase 3
- enterprise frontend
- AI copilots
- semantic search
- AI review
## Phase 4
- distributed indexing
- multi-project graph
- semantic federation
- AI orchestration
- autonomous semantic agents