feat(llm): mask API keys in UI responses and prevent masked-key leakage in fetch/test/save payloads
- Add mask_api_key() and is_masked_or_placeholder() to llm_provider service - Return masked keys in all provider CRUD endpoints - Reject masked/placeholder keys in fetch_models and test_provider_config - Show masked key with Change button in ProviderConfig.svelte edit form - Exclude masked keys from fetch-models, test, and submit payloads on frontend - Update semantics-core skill with clarified complexity tier rules - Switch agent modes from subagent to all
This commit is contained in:
@@ -1,9 +1,6 @@
|
||||
# #region AnchorConfig [C:3] [TYPE Block] [SEMANTICS config,anchor]
|
||||
# @BRIEF Якорный синтаксис — глобальный формат и переопределения по директориям.
|
||||
# @RELATION BINDS_TO -> [Std.Semantics.Core]
|
||||
#
|
||||
# По умолчанию #region/#endregion — новый код пишется в region-формате.
|
||||
# Legacy DEF и Doc-формат brace признаются для обратной совместимости.
|
||||
anchor:
|
||||
format: region
|
||||
overrides:
|
||||
@@ -13,7 +10,6 @@ anchor:
|
||||
# #endregion AnchorConfig
|
||||
|
||||
# #region IndexingConfig [C:2] [TYPE Block] [SEMANTICS config,indexing]
|
||||
# @BRIEF Правила обхода файлов — include/exclude паттерны и source/doc директории.
|
||||
indexing:
|
||||
include: []
|
||||
exclude:
|
||||
@@ -30,6 +26,7 @@ indexing:
|
||||
- '*.yml'
|
||||
- '*.json'
|
||||
- '*.toml'
|
||||
- '*.md'
|
||||
source_dirs:
|
||||
- src
|
||||
- tests
|
||||
@@ -41,27 +38,20 @@ indexing:
|
||||
# #region ComplexityRules [C:5] [TYPE Block] [SEMANTICS config,rules,validation]
|
||||
# @BRIEF Обязательные и запрещённые тэги по уровням сложности C1-C5.
|
||||
# @RELATION BINDS_TO -> [Std.Semantics.Core]
|
||||
# @RELATION DEPENDS_ON -> [TagSchema]
|
||||
# @INVARIANT Каждый тэг в required/forbidden списках обязан иметь определение в TagSchema.
|
||||
# @RATIONALE Каждый уровень строго контролирует допустимый набор тэгов — это предотвращает verbosity и структурную эрозию (INV_7).
|
||||
# LAYER и SEMANTICS — Module-специфичные тэги; не входят в базовую шкалу сложности core.
|
||||
# BRIEF указан как alias PURPOSE — явно в forbidden для C1, т.к. C1 запрещает все content-тэги.
|
||||
# @REJECTED Свободная валидация без строгих forbidden-списков отвергнута — порождает Slop и размывает Decision Memory.
|
||||
# @REJECTED UX_STATE в общих complexity_rules отвергнут — UX_STATE Component-специфичен и управляется через contract_type_overrides.
|
||||
# @RATIONALE BRIEF/PURPOSE/RATIONALE/REJECTED — универсально опциональны (C1+).
|
||||
# EXAMPLE, ERROR/RAISES, DEPRECATED, REPLACED_BY — тоже опциональны.
|
||||
# @REJECTED Свободная валидация без строгих forbidden-списков отвергнута — порождает Slop.
|
||||
complexity_rules:
|
||||
'1':
|
||||
required: []
|
||||
forbidden:
|
||||
- BRIEF
|
||||
- PURPOSE
|
||||
- RELATION
|
||||
- PRE
|
||||
- POST
|
||||
- SIDE_EFFECT
|
||||
- DATA_CONTRACT
|
||||
- INVARIANT
|
||||
- RATIONALE
|
||||
- REJECTED
|
||||
'2':
|
||||
required:
|
||||
- PURPOSE
|
||||
@@ -72,8 +62,6 @@ complexity_rules:
|
||||
- SIDE_EFFECT
|
||||
- DATA_CONTRACT
|
||||
- INVARIANT
|
||||
- RATIONALE
|
||||
- REJECTED
|
||||
'3':
|
||||
required:
|
||||
- PURPOSE
|
||||
@@ -84,8 +72,6 @@ complexity_rules:
|
||||
- SIDE_EFFECT
|
||||
- DATA_CONTRACT
|
||||
- INVARIANT
|
||||
- RATIONALE
|
||||
- REJECTED
|
||||
'4':
|
||||
required:
|
||||
- PURPOSE
|
||||
@@ -96,8 +82,6 @@ complexity_rules:
|
||||
forbidden:
|
||||
- DATA_CONTRACT
|
||||
- INVARIANT
|
||||
- RATIONALE
|
||||
- REJECTED
|
||||
'5':
|
||||
required:
|
||||
- PURPOSE
|
||||
@@ -107,17 +91,10 @@ complexity_rules:
|
||||
- SIDE_EFFECT
|
||||
- DATA_CONTRACT
|
||||
- INVARIANT
|
||||
- RATIONALE
|
||||
- REJECTED
|
||||
forbidden: []
|
||||
# #endregion ComplexityRules
|
||||
|
||||
# #region ContractTypeOverrides [C:3] [TYPE Block] [SEMANTICS config,adr,override]
|
||||
# @BRIEF Особые правила валидации для ADR, Component и Tombstone.
|
||||
# @RELATION DEPENDS_ON -> [ComplexityRules]
|
||||
# @RELATION DEPENDS_ON -> [TagSchema]
|
||||
#
|
||||
# ADR не имеет COMPLEXITY (это всегда архитектурное решение). Component имеет @UX_STATE вместо @PRE/@POST на C3. Tombstone — минимальный контракт-заглушка.
|
||||
contract_type_overrides:
|
||||
ADR:
|
||||
required:
|
||||
@@ -197,52 +174,35 @@ contract_type_overrides:
|
||||
- SIDE_EFFECT
|
||||
- DATA_CONTRACT
|
||||
- INVARIANT
|
||||
- RATIONALE
|
||||
- REJECTED
|
||||
'4':
|
||||
required:
|
||||
- PURPOSE
|
||||
- RELATION
|
||||
- RATIONALE
|
||||
- REJECTED
|
||||
forbidden:
|
||||
- PRE
|
||||
- POST
|
||||
- SIDE_EFFECT
|
||||
forbidden:
|
||||
- DATA_CONTRACT
|
||||
- INVARIANT
|
||||
'5':
|
||||
required:
|
||||
- PURPOSE
|
||||
- RELATION
|
||||
- RATIONALE
|
||||
- REJECTED
|
||||
- INVARIANT
|
||||
forbidden:
|
||||
- PRE
|
||||
- POST
|
||||
- SIDE_EFFECT
|
||||
- DATA_CONTRACT
|
||||
- INVARIANT
|
||||
forbidden: []
|
||||
# #endregion ContractTypeOverrides
|
||||
|
||||
# #region TagSchema [C:5] [TYPE Block] [SEMANTICS config,tags,schema]
|
||||
# @BRIEF Полная схема GRACE-тэгов: типы, алиасы, enum-ы, предикаты, применимость.
|
||||
# @RELATION DEPENDS_ON -> [ComplexityRules]
|
||||
# @INVARIANT Каждый тэг, referenced в complexity_rules и contract_type_overrides, имеет определение в tags.
|
||||
# @RATIONALE Централизованная схема тэгов — единый источник истины для парсера, валидатора и MCP-тулов. Расширяется через alias_for без изменения канонических имён.
|
||||
# @RATIONALE LAYER.enum +Service: semantics-python использует @LAYER Service в canonical C3 Module примере (dashboard_migration).
|
||||
# @RATIONALE SEMANTICS/PRE/POST/SIDE_EFFECT/DATA_CONTRACT/INVARIANT +Agent: Core §II декларирует Agent как валидный тип контракта; Fullstack.Coder и другие Agent-контракты используют эти тэги.
|
||||
# @REJECTED Разрозненные определения тэгов в коде парсера отвергнуты — делают валидацию неконсистентной и неподдерживаемой.
|
||||
tags:
|
||||
C:
|
||||
type: string
|
||||
multiline: false
|
||||
description: 'Краткий алиас для COMPLEXITY. @C: 3 ≡ @COMPLEXITY: 3.'
|
||||
description: 'Алиас для COMPLEXITY. @C: 3 ≡ @COMPLEXITY: 3.'
|
||||
alias_for: COMPLEXITY
|
||||
separator: null
|
||||
is_reference: false
|
||||
enum: []
|
||||
allowed_predicates: []
|
||||
contract_types:
|
||||
- Module
|
||||
- Function
|
||||
@@ -257,16 +217,8 @@ tags:
|
||||
COMPLEXITY:
|
||||
type: string
|
||||
multiline: false
|
||||
description: Уровень сложности (1-5). C1 — DTO/утилиты, C2 — +PURPOSE, C3 — +RELATION, C4 — контракты (PRE/POST), C5 — инварианты и Decision Memory.
|
||||
separator: null
|
||||
is_reference: false
|
||||
enum:
|
||||
- '1'
|
||||
- '2'
|
||||
- '3'
|
||||
- '4'
|
||||
- '5'
|
||||
allowed_predicates: []
|
||||
description: 'Уровень сложности (1-5). Универсально опциональный.'
|
||||
enum: ['1','2','3','4','5']
|
||||
contract_types:
|
||||
- Module
|
||||
- Function
|
||||
@@ -278,16 +230,11 @@ tags:
|
||||
protected: false
|
||||
orthogonal: false
|
||||
decision_memory: false
|
||||
alias_for: null
|
||||
BRIEF:
|
||||
type: string
|
||||
multiline: true
|
||||
description: 'Doxygen-совместимый алиас для PURPOSE. @BRIEF Краткое описание. Разрешается в канонический PURPOSE при парсинге.'
|
||||
description: 'Алиас для PURPOSE. Универсально опциональный.'
|
||||
alias_for: PURPOSE
|
||||
separator: null
|
||||
is_reference: false
|
||||
enum: []
|
||||
allowed_predicates: []
|
||||
contract_types: []
|
||||
protected: false
|
||||
orthogonal: false
|
||||
@@ -295,11 +242,7 @@ tags:
|
||||
PURPOSE:
|
||||
type: string
|
||||
multiline: true
|
||||
description: Назначение контракта. Краткое (1-2 предложения) описание. Каноническое имя. Обязателен с C2. @BRIEF — Doxygen-алиас.
|
||||
separator: null
|
||||
is_reference: false
|
||||
enum: []
|
||||
allowed_predicates: []
|
||||
description: 'Назначение контракта. Обязателен с C2.'
|
||||
contract_types:
|
||||
- Module
|
||||
- Function
|
||||
@@ -312,15 +255,81 @@ tags:
|
||||
protected: false
|
||||
orthogonal: false
|
||||
decision_memory: false
|
||||
alias_for: null
|
||||
EXAMPLE:
|
||||
type: string
|
||||
multiline: true
|
||||
description: 'Пример использования. Универсально опциональный.'
|
||||
contract_types:
|
||||
- Module
|
||||
- Function
|
||||
- Class
|
||||
- Component
|
||||
- Block
|
||||
- Skill
|
||||
- Agent
|
||||
protected: false
|
||||
orthogonal: false
|
||||
decision_memory: false
|
||||
ERROR:
|
||||
type: string
|
||||
multiline: true
|
||||
description: 'Исключение. @ERROR ValueError. Алиасы: RAISES, THROWS. Универсально опциональный.'
|
||||
contract_types:
|
||||
- Module
|
||||
- Function
|
||||
- Class
|
||||
- Component
|
||||
- Block
|
||||
protected: false
|
||||
orthogonal: false
|
||||
decision_memory: false
|
||||
RAISES:
|
||||
type: string
|
||||
multiline: true
|
||||
alias_for: ERROR
|
||||
description: 'Алиас для ERROR.'
|
||||
contract_types: []
|
||||
protected: false
|
||||
orthogonal: false
|
||||
decision_memory: false
|
||||
DEPRECATED:
|
||||
type: string
|
||||
multiline: true
|
||||
description: 'Метка устаревания. @DEPRECATED v2.5. Универсально опциональный.'
|
||||
contract_types:
|
||||
- Module
|
||||
- Function
|
||||
- Class
|
||||
- Component
|
||||
- Block
|
||||
- ADR
|
||||
- Skill
|
||||
- Agent
|
||||
protected: false
|
||||
orthogonal: false
|
||||
decision_memory: true
|
||||
REPLACED_BY:
|
||||
type: string
|
||||
multiline: false
|
||||
description: 'Ссылка на замену. @REPLACED_BY NewService.run.'
|
||||
is_reference: true
|
||||
contract_types:
|
||||
- Module
|
||||
- Function
|
||||
- Class
|
||||
- Component
|
||||
- Block
|
||||
- ADR
|
||||
- Skill
|
||||
- Agent
|
||||
protected: false
|
||||
orthogonal: false
|
||||
decision_memory: true
|
||||
SEMANTICS:
|
||||
type: array
|
||||
multiline: false
|
||||
description: Семантические маркеры (домен, зона ответственности). Ортогональный — допустим на любом C-level для Module, Block, Skill, Agent.
|
||||
separator: ','
|
||||
is_reference: false
|
||||
enum: []
|
||||
allowed_predicates: []
|
||||
description: 'Семантические маркеры. Ортогональный.'
|
||||
contract_types:
|
||||
- Module
|
||||
- Block
|
||||
@@ -329,15 +338,10 @@ tags:
|
||||
protected: false
|
||||
orthogonal: true
|
||||
decision_memory: false
|
||||
alias_for: null
|
||||
SIDE_EFFECT:
|
||||
type: string
|
||||
multiline: false
|
||||
description: 'Побочные эффекты: мутации состояния, I/O, БД, сеть. Обязателен с C4.'
|
||||
separator: null
|
||||
is_reference: false
|
||||
enum: []
|
||||
allowed_predicates: []
|
||||
description: 'Побочные эффекты. Обязателен с C4.'
|
||||
contract_types:
|
||||
- Module
|
||||
- Function
|
||||
@@ -347,15 +351,10 @@ tags:
|
||||
protected: false
|
||||
orthogonal: false
|
||||
decision_memory: false
|
||||
alias_for: null
|
||||
STATUS:
|
||||
type: string
|
||||
multiline: false
|
||||
description: 'Статус: ACTIVE, DEPRECATED -> REPLACED_BY: [NewId], EXPERIMENTAL. Ортогональный для Tombstone/ADR/Module.'
|
||||
separator: null
|
||||
is_reference: false
|
||||
enum: []
|
||||
allowed_predicates: []
|
||||
description: 'Статус: ACTIVE, DEPRECATED, EXPERIMENTAL.'
|
||||
contract_types:
|
||||
- Tombstone
|
||||
- ADR
|
||||
@@ -363,153 +362,84 @@ tags:
|
||||
protected: false
|
||||
orthogonal: true
|
||||
decision_memory: false
|
||||
alias_for: null
|
||||
TEST_CONTRACT:
|
||||
type: string
|
||||
multiline: false
|
||||
description: Что проверяет тест. Ортогональный тестовый тэг.
|
||||
separator: null
|
||||
is_reference: false
|
||||
enum: []
|
||||
allowed_predicates: []
|
||||
contract_types:
|
||||
- Function
|
||||
- Block
|
||||
description: Что проверяет тест. Ортогональный.
|
||||
contract_types: [Function, Block]
|
||||
protected: false
|
||||
orthogonal: true
|
||||
decision_memory: false
|
||||
alias_for: null
|
||||
TEST_EDGE:
|
||||
type: string
|
||||
multiline: false
|
||||
description: Краевой случай, покрываемый тестом. Ортогональный.
|
||||
separator: null
|
||||
is_reference: false
|
||||
enum: []
|
||||
allowed_predicates: []
|
||||
contract_types:
|
||||
- Function
|
||||
- Block
|
||||
description: Краевой случай. Ортогональный.
|
||||
contract_types: [Function, Block]
|
||||
protected: false
|
||||
orthogonal: true
|
||||
decision_memory: false
|
||||
alias_for: null
|
||||
TEST_FIXTURE:
|
||||
type: string
|
||||
multiline: false
|
||||
description: Тестовая фикстура или набор данных. Ортогональный.
|
||||
separator: null
|
||||
is_reference: false
|
||||
enum: []
|
||||
allowed_predicates: []
|
||||
contract_types:
|
||||
- Block
|
||||
description: Тестовая фикстура. Ортогональный.
|
||||
contract_types: [Block]
|
||||
protected: false
|
||||
orthogonal: true
|
||||
decision_memory: false
|
||||
alias_for: null
|
||||
TEST_INVARIANT:
|
||||
type: string
|
||||
multiline: false
|
||||
description: Инвариант, проверяемый тестом. Ортогональный.
|
||||
separator: null
|
||||
is_reference: false
|
||||
enum: []
|
||||
allowed_predicates: []
|
||||
contract_types:
|
||||
- Module
|
||||
- Function
|
||||
description: Инвариант теста. Ортогональный.
|
||||
contract_types: [Module, Function]
|
||||
protected: false
|
||||
orthogonal: true
|
||||
decision_memory: false
|
||||
alias_for: null
|
||||
TEST_SCENARIO:
|
||||
type: string
|
||||
multiline: false
|
||||
description: Тестовый сценарий (шаги + ожидаемый результат). Ортогональный.
|
||||
separator: null
|
||||
is_reference: false
|
||||
enum: []
|
||||
allowed_predicates: []
|
||||
contract_types:
|
||||
- Function
|
||||
- Block
|
||||
description: Сценарий теста. Ортогональный.
|
||||
contract_types: [Function, Block]
|
||||
protected: false
|
||||
orthogonal: true
|
||||
decision_memory: false
|
||||
alias_for: null
|
||||
UX_FEEDBACK:
|
||||
type: string
|
||||
multiline: false
|
||||
description: 'Формат обратной связи: тосты, инлайн-ошибки, модальные окна. Ортогональный для Component.'
|
||||
separator: null
|
||||
is_reference: false
|
||||
enum: []
|
||||
allowed_predicates: []
|
||||
contract_types:
|
||||
- Component
|
||||
description: Формат обратной связи. Component.
|
||||
contract_types: [Component]
|
||||
protected: false
|
||||
orthogonal: true
|
||||
decision_memory: false
|
||||
alias_for: null
|
||||
UX_REACTIVITY:
|
||||
type: string
|
||||
multiline: false
|
||||
description: 'Реактивная модель: store-driven render, optimistic updates, debounced inputs. Ортогональный для Component.'
|
||||
separator: null
|
||||
is_reference: false
|
||||
enum: []
|
||||
allowed_predicates: []
|
||||
contract_types:
|
||||
- Component
|
||||
description: Реактивная модель. Component.
|
||||
contract_types: [Component]
|
||||
protected: false
|
||||
orthogonal: true
|
||||
decision_memory: false
|
||||
alias_for: null
|
||||
UX_RECOVERY:
|
||||
type: string
|
||||
multiline: false
|
||||
description: 'Стратегия восстановления: retry, fallback-интерфейс, ручной перезапуск. Ортогональный для Component.'
|
||||
separator: null
|
||||
is_reference: false
|
||||
enum: []
|
||||
allowed_predicates: []
|
||||
contract_types:
|
||||
- Component
|
||||
description: Стратегия восстановления. Component.
|
||||
contract_types: [Component]
|
||||
protected: false
|
||||
orthogonal: true
|
||||
decision_memory: false
|
||||
alias_for: null
|
||||
UX_STATE:
|
||||
type: string
|
||||
multiline: false
|
||||
description: Конечный автомат UX-состояний (loading → ready → error). Обязателен для Component с C3+.
|
||||
separator: null
|
||||
is_reference: false
|
||||
enum: []
|
||||
allowed_predicates: []
|
||||
contract_types:
|
||||
- Component
|
||||
description: Конечный автомат UX. Обязателен Component C3+.
|
||||
contract_types: [Component]
|
||||
protected: false
|
||||
orthogonal: false
|
||||
decision_memory: false
|
||||
alias_for: null
|
||||
RELATION:
|
||||
type: string
|
||||
multiline: false
|
||||
description: 'Графовая зависимость: PREDICATE -> [TargetId]. Predicates: DEPENDS_ON, CALLS, INHERITS, IMPLEMENTS, DISPATCHES, BINDS_TO, CALLED_BY, VERIFIES. Обязателен с C3.'
|
||||
separator: null
|
||||
description: 'Графовая зависимость. Обязателен с C3.'
|
||||
is_reference: true
|
||||
enum: []
|
||||
allowed_predicates:
|
||||
- DEPENDS_ON
|
||||
- CALLS
|
||||
- INHERITS
|
||||
- IMPLEMENTS
|
||||
- DISPATCHES
|
||||
- BINDS_TO
|
||||
- CALLED_BY
|
||||
- VERIFIES
|
||||
allowed_predicates: [DEPENDS_ON, CALLS, INHERITS, IMPLEMENTS, DISPATCHES, BINDS_TO, CALLED_BY, VERIFIES]
|
||||
contract_types:
|
||||
- Module
|
||||
- Function
|
||||
@@ -522,15 +452,10 @@ tags:
|
||||
protected: false
|
||||
orthogonal: false
|
||||
decision_memory: false
|
||||
alias_for: null
|
||||
PRE:
|
||||
type: string
|
||||
multiline: true
|
||||
description: 'Предусловия выполнения. Должны быть проверены в коде через if/raise (не assert). Обязателен с C4.'
|
||||
separator: null
|
||||
is_reference: false
|
||||
enum: []
|
||||
allowed_predicates: []
|
||||
description: 'Предусловия. Обязателен с C4.'
|
||||
contract_types:
|
||||
- Module
|
||||
- Function
|
||||
@@ -540,15 +465,10 @@ tags:
|
||||
protected: false
|
||||
orthogonal: false
|
||||
decision_memory: false
|
||||
alias_for: null
|
||||
POST:
|
||||
type: string
|
||||
multiline: true
|
||||
description: 'Гарантии результата. Обязателен с C4. Не может быть ослаблен без проверки upstream @RELATION зависимостей.'
|
||||
separator: null
|
||||
is_reference: false
|
||||
enum: []
|
||||
allowed_predicates: []
|
||||
description: 'Гарантии результата. Обязателен с C4.'
|
||||
contract_types:
|
||||
- Module
|
||||
- Function
|
||||
@@ -558,15 +478,10 @@ tags:
|
||||
protected: false
|
||||
orthogonal: false
|
||||
decision_memory: false
|
||||
alias_for: null
|
||||
RATIONALE:
|
||||
type: string
|
||||
multiline: true
|
||||
description: 'Обоснование выбранного решения. C5-only. Часть Decision Memory — расширяет логический скелет архитектуры.'
|
||||
separator: null
|
||||
is_reference: false
|
||||
enum: []
|
||||
allowed_predicates: []
|
||||
description: 'Обоснование. Универсально опциональный (C1+). Decision Memory.'
|
||||
contract_types:
|
||||
- Module
|
||||
- Function
|
||||
@@ -579,15 +494,10 @@ tags:
|
||||
protected: false
|
||||
orthogonal: false
|
||||
decision_memory: true
|
||||
alias_for: null
|
||||
REJECTED:
|
||||
type: string
|
||||
multiline: true
|
||||
description: 'Отвергнутый альтернативный путь с указанием причины. C5-only. Часть Decision Memory — запрещает воскрешение rejected-пути.'
|
||||
separator: null
|
||||
is_reference: false
|
||||
enum: []
|
||||
allowed_predicates: []
|
||||
description: 'Отвергнутый путь. Универсально опциональный (C1+). Decision Memory.'
|
||||
contract_types:
|
||||
- Module
|
||||
- Function
|
||||
@@ -600,15 +510,10 @@ tags:
|
||||
protected: false
|
||||
orthogonal: false
|
||||
decision_memory: true
|
||||
alias_for: null
|
||||
DATA_CONTRACT:
|
||||
type: string
|
||||
multiline: false
|
||||
description: 'DTO-маппинг: Input -> InputDTO, Output -> OutputDTO. Обязателен с C5.'
|
||||
separator: null
|
||||
is_reference: false
|
||||
enum: []
|
||||
allowed_predicates: []
|
||||
description: 'DTO-маппинг. Обязателен с C5.'
|
||||
contract_types:
|
||||
- Module
|
||||
- Function
|
||||
@@ -618,15 +523,10 @@ tags:
|
||||
protected: false
|
||||
orthogonal: false
|
||||
decision_memory: false
|
||||
alias_for: null
|
||||
INVARIANT:
|
||||
type: string
|
||||
multiline: true
|
||||
description: 'Инвариант — условие, которое всегда истинно для данного контракта. Обязателен с C5.'
|
||||
separator: null
|
||||
is_reference: false
|
||||
enum: []
|
||||
allowed_predicates: []
|
||||
description: 'Инвариант. Обязателен с C5.'
|
||||
contract_types:
|
||||
- Module
|
||||
- Function
|
||||
@@ -638,15 +538,11 @@ tags:
|
||||
protected: false
|
||||
orthogonal: false
|
||||
decision_memory: false
|
||||
alias_for: null
|
||||
LAYER:
|
||||
type: string
|
||||
multiline: false
|
||||
description: 'Архитектурный слой: Service, UI, Infrastructure, Domain. Ортогональный — Module/Skill/Agent-специфичный.'
|
||||
separator: null
|
||||
is_reference: false
|
||||
enum: []
|
||||
allowed_predicates: []
|
||||
description: 'Слой: Core, Domain, API, UI, Service, Infrastructure, Plugin. Универсально опциональный.'
|
||||
enum: [Core, Domain, API, UI, Service, Infrastructure, Plugin]
|
||||
contract_types:
|
||||
- Module
|
||||
- Skill
|
||||
@@ -654,11 +550,9 @@ tags:
|
||||
protected: false
|
||||
orthogonal: true
|
||||
decision_memory: false
|
||||
alias_for: null
|
||||
# #endregion TagSchema
|
||||
|
||||
# #region InfrastructureConfig [C:2] [TYPE Block] [SEMANTICS config,embedding,http]
|
||||
# @BRIEF Инфраструктурные настройки: embedding, HTTP API, doc-режим.
|
||||
embedding: null
|
||||
http_api:
|
||||
http_enabled: false
|
||||
|
||||
Reference in New Issue
Block a user