727 lines
15 KiB
Markdown
727 lines
15 KiB
Markdown
# 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
|