From e3de6da472e13a2c65b6a2c3ee51dc8c335d9867 Mon Sep 17 00:00:00 2001 From: Stream Date: Sat, 18 Apr 2026 09:50:01 +0300 Subject: [PATCH] auto-sync: 2026-04-18 09:50:01 --- memory/ontology/graph.jsonl | 3 + memory/ontology/schema.yaml | 185 ++++++++++++++++++++++++++++++++---- 2 files changed, 169 insertions(+), 19 deletions(-) diff --git a/memory/ontology/graph.jsonl b/memory/ontology/graph.jsonl index 317ea20..febbb26 100644 --- a/memory/ontology/graph.jsonl +++ b/memory/ontology/graph.jsonl @@ -90,3 +90,6 @@ {"op":"create","entity":{"id":"proj_kids_helper","type":"Project","properties":{"title":"Детский помощник — агент для родителей","description":"Персональный помощник по вопросам ребёнка: одежда, обувь, игрушки, обучение, события. Отдельный Telegram-бот, изолированная память. Workspace: workspace-kids. ТЗ: tasks/kids-helper/TZ.md.","status":"todo","priority":"medium","created":"2026-04-12T16:54:00Z","labels":["agent","kids","telegram"],"path":"tasks/kids-helper/"},"created":"2026-04-12T16:54:00Z"}} {"op":"create","entity":{"id":"proj_bytik","type":"Project","properties":{"title":"Байтик — детский ИИ-помощник","description":"Telegram-бот Байтик: ИИ-помощник для Егора (8 лет, ДР 17.04.2018). Отвечает на вопросы, утренняя рассылка 7:30 MSK с энциклопедическими фактами, поздравления с праздниками. Строгая детская цензура. LLM: Qwen 3.6-Plus. Инфраструктура: mva154, изолированный workspace.","status":"planned","created":"2026-04-14T21:55:00Z","path":"tasks/bytik/","labels":["agent","telegram","kids","ai"]},"created":"2026-04-14T21:55:00Z"}} {"op":"create","entity":{"id":"proj_bytik","type":"Project","properties":{"title":"Байтик — детский ИИ-помощник","description":"Telegram-бот Байтик для Егора (8 лет). MVP работает (14.04.2026).","status":"active","created":"2026-04-14T21:55:00Z","path":"tasks/bytik/","labels":["agent","telegram","kids","ai"]},"created":"2026-04-14T21:55:00Z"}} +{"op": "update", "id": "proj_reminders", "properties": {"name": "Reminders — система напоминаний"}, "timestamp": "2026-04-18T06:47:22.246054+00:00"} +{"op": "update", "id": "proj_kids_helper", "properties": {"name": "Детский помощник — агент для родителей"}, "timestamp": "2026-04-18T06:47:22.246054+00:00"} +{"op": "update", "id": "proj_bytik", "properties": {"name": "Байтик — детский ИИ-помощник"}, "timestamp": "2026-04-18T06:47:22.246054+00:00"} diff --git a/memory/ontology/schema.yaml b/memory/ontology/schema.yaml index b0f199d..cbb71ce 100644 --- a/memory/ontology/schema.yaml +++ b/memory/ontology/schema.yaml @@ -5,10 +5,20 @@ types: name: string email: string? phone: string? + organization: ref(Organization)? notes: string? + tags: string[]? pronouns: string? timezone: string? + Organization: + required: [name] + properties: + name: string + type: enum(company, team, community, government, other)? + website: url? + members: ref(Person)[]? + Agent: required: [id, name] properties: @@ -23,38 +33,175 @@ types: required: [name] properties: name: string - status: enum[active, paused, done, planned] + description: string? + status: enum(planning, active, paused, completed, archived) + owner: ref(Person)? + team: ref(Person)[]? + goals: ref(Goal)[]? start_date: date? + end_date: date? folder: string? - description: string? + tags: string[]? - Service: - required: [name, url] + Task: + required: [title, status] properties: - name: string - url: string - port: int? + title: string description: string? - type: string? + status: enum(open, in_progress, blocked, done, cancelled) + priority: enum(low, medium, high, urgent)? + assignee: ref(Person)? + project: ref(Project)? + due: datetime? + estimate_hours: number? + blockers: ref(Task)[]? + tags: string[]? - Skill: - required: [name] - properties: - name: string - location: string - shared: boolean - owner: string? - - Rule: + Goal: required: [description] properties: description: string - scope: string? + target_date: date? + status: enum(active, achieved, abandoned)? + metrics: object[]? + key_results: string[]? + + Event: + required: [title, start] + properties: + title: string + description: string? + start: datetime + end: datetime? + location: ref(Location)? + attendees: ref(Person)[]? + recurrence: object? + status: enum(confirmed, tentative, cancelled)? + reminders: object[]? + + Location: + required: [name] + properties: + name: string + address: string? + city: string? + country: string? + coordinates: object? + timezone: string? + + Document: + required: [title] + properties: + title: string + path: string? + url: url? + mime_type: string? + summary: string? + content_hash: string? + tags: string[]? + + Message: + required: [content, sender] + properties: + content: string + sender: ref(Person) + recipients: ref(Person)[] + thread: ref(Thread)? + timestamp: datetime + platform: string? + external_id: string? + + Thread: + required: [subject] + properties: + subject: string + participants: ref(Person)[] + messages: ref(Message)[] + status: enum(active, archived)? + last_activity: datetime? + + Note: + required: [content] + properties: + content: string + title: string? + tags: string[]? + refs: ref(Entity)[]? created: datetime + Account: + required: [service, username] + properties: + service: string + username: string + url: url? + credential_ref: ref(Credential)? + + Device: + required: [name, type] + properties: + name: string + type: enum(computer, phone, tablet, server, iot, other) + os: string? + identifiers: object? + owner: ref(Person)? + + Credential: + required: [service, secret_ref] + forbidden_properties: [password, secret, token, key, api_key] + properties: + service: string + secret_ref: string + expires: datetime? + scope: string[]? + + Action: + required: [type, target, timestamp] + properties: + type: string + target: ref(Entity) + timestamp: datetime + actor: ref(Person|Agent)? + outcome: enum(success, failure, pending)? + details: object? + + Policy: + required: [scope, rule] + properties: + scope: string + rule: string + enforcement: enum(block, warn, log) + enabled: boolean + relations: - has_agent: + owns: + from_types: [Person, Organization] + to_types: [Account, Device, Document, Project] + cardinality: one_to_many + + has_owner: + from_types: [Project, Task, Document] + to_types: [Person] + cardinality: many_to_one + + assigned_to: + from_types: [Task] + to_types: [Person] + cardinality: many_to_one + + has_task: from_types: [Project] + to_types: [Task] + cardinality: one_to_many + + depends_on: + from_types: [Task] + to_types: [Task] + cardinality: many_to_many + acyclic: true + + has_agent: + from_types: [Project, Task, Person] to_types: [Agent] cardinality: many_to_many