You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
121 lines
12 KiB
121 lines
12 KiB
{ |
|
"version": 2, |
|
"updatedAt": "2026-11-03T07:45:05.045Z", |
|
"entries": [ |
|
{ |
|
"id": "0f90dcf0-5d43-4ca4-bf86-ad8b3ee20382", |
|
"track": "agent", |
|
"scope": "user-global", |
|
"workspaceKey": "", |
|
"key": "protocol_marker_format", |
|
"text": "ФОРМАТ ВЫЗОВА DSH — главная ошибка.\n\nВызов состоит из четырёх частей строго по порядку:\n1. Открывающая угловая скобка U+27E6\n2. ASCII слово DSH\n3. Закрывающая угловая скобка U+27E7\n4. JSON объект с полями tool и args\n5. Открывающая угловая скобка U+27E6\n6. ASCII косая черта и слово DSH\n7. Закрывающая угловая скобка U+27E7\n\nМаркер это ДВЕ пары скобок, JSON между ними. Не одна пара.\nСхема ASCII: скобка DSH скобка, JSON, скобка косая DSH скобка.\nЧастая ошибка: скобка DSH JSON DSH скобка. Так не работает, парсер не найдёт вызов.\nНИКОГДА не писать живые скобки U+27E6 в обычном тексте — парсер примет пример за вызов.", |
|
"importance": "always", |
|
"tags": [ |
|
"protocol", |
|
"marker" |
|
], |
|
"version": 1, |
|
"createdAt": "2026-11-02T23:35:16.258Z", |
|
"updatedAt": "2026-11-02T23:35:16.258Z", |
|
"lastRecalled": null, |
|
"recallCount": 0, |
|
"bytes": 1016 |
|
}, |
|
{ |
|
"id": "027b58a0-cf63-4f15-bc95-1ccbef0250d7", |
|
"track": "agent", |
|
"scope": "user-global", |
|
"workspaceKey": "", |
|
"key": "protocol_tools_and_rules", |
|
"text": "ИНСТРУМЕНТЫ И ПАРАМЕТРЫ\n\ndsh_tree: path, depth. Дерево папки.\ndsh_read: path, offset, limit. Читать файл (512 КБ прямо, 2 МБ с offset/limit).\ndsh_write: path, content. Записать файл (content до 2 МБ).\ndsh_edit: path, oldText, newText. Заменить одно вхождение.\ndsh_search: path, query. Найти подстроку.\ndsh_bash: command. Только whitelist. Блокируются: powershell, rm, del, sed, символы вертикальной черты, амперсанда, угловых скобок, точки с запятой, доллара, переносы строк.\ndsh_git_status: path. Статус. Передавать path явно, если репозиторий не в корне workspace.\ndsh_git_diff: path. Различия.\n\nПРАВИЛА\nМаксимум 10 вызовов в сообщении, рекомендуется 3-4 (rate limit моста 60/min, задержка 3 сек на вызов). Пути относительные от workspace. Абсолютные запрещены. Rate limit 60 req/min, задержка 3 сек на вызов.", |
|
"importance": "always", |
|
"tags": [ |
|
"protocol", |
|
"tools" |
|
], |
|
"version": 2, |
|
"createdAt": "2026-11-02T23:35:16.258Z", |
|
"updatedAt": "2026-11-02T23:46:25.799Z", |
|
"lastRecalled": null, |
|
"recallCount": 0, |
|
"bytes": 1186 |
|
}, |
|
{ |
|
"id": "f03151af-0efc-426b-8e8d-80573bc2f613", |
|
"track": "agent", |
|
"scope": "user-global", |
|
"workspaceKey": "", |
|
"key": "protocol_pitfalls", |
|
"text": "КРИТИЧЕСКИЕ ГРАБЛИ\n\n1 ДЕДУП. Повторный вызов того же tool с теми же args отбрасывается молча. Симптом: статус зелёный idle, ошибок нет, в логе dup call skipped. Лечение: сменить файл или аргументы. Reset не помогает.\n\n2 ЛИНКИФИКАЦИЯ (только DOM). Рендерер превращает домены и URL в ссылки, collectText вставляет переводы строк. JSON ломается. В SSE этой проблемы нет.\n\n3 МНОГОСТРОЧНЫЙ OLD TEXT (только DOM). В dsh_edit не находится из-за разницы переводов. В SSE работает.\n\n4 BASH TIMEOUT. Поле timeout иногда приводит к молчанию. Вызывать без него. Команды вне whitelist требуют подтверждения в панели.\n\n5 ПРОВЕРКА ПОСЛЕ ЗАПИСИ. Отправил не значит записалось. После критичной записи читать файл обратно через dsh_read.\n\n6 JSON. Внутри маркера обязан быть валидным. Кавычки двойные.\n\n7 СМЕШАННЫЕ CRLF. Если в файле часть строк CRLF, часть LF — патчи по номерам съезжают. Нормализовать к LF перед патчем.\n\n8 ДВОЙНОЕ ПРИМЕНЕНИЕ ПАТЧА. Anchor не должен присутствовать в замене. Проверять повторным запуском: должен быть SKIP или fixed 0.", |
|
"importance": "always", |
|
"tags": [ |
|
"protocol", |
|
"pitfalls" |
|
], |
|
"version": 1, |
|
"createdAt": "2026-11-02T23:35:16.258Z", |
|
"updatedAt": "2026-11-02T23:35:16.258Z", |
|
"lastRecalled": null, |
|
"recallCount": 0, |
|
"bytes": 1715 |
|
}, |
|
{ |
|
"id": "2c416cb6-7f41-48fb-a2e0-fd2a1219974c", |
|
"track": "agent", |
|
"scope": "user-global", |
|
"workspaceKey": "", |
|
"key": "protocol_recovery", |
|
"text": "ВОССТАНОВЛЕНИЕ И ПРОВЕРКА МОСТА (dsh-memory 1.0.0)\n\nШаг 1. Проверка моста. Вызови dsh_read на любой путь, например .dsh-memory/notes/START.md.\nТри исхода:\n- пришёл dsh-result с ok true — мост жив, файл есть\n- пришёл dsh-result с E_ARGS_INVALID File not found — мост жив, файла нет, это тоже успех калибровки\n- ответа нет вообще, статус idle, ошибок нет — мост выключен или вызов отброшен дедупом (не повторяй тот же tool с теми же args)\n\nШаг 2. Если мост жив — прочитай .dsh-memory/notes/START.md. Он ведёт на актуальный чекпоинт (PART16), RECOVERY_CHECKLIST, PROTOCOLS_DSH.\n\nШаг 3. Короткий отчёт: мост жив, что прочитано, следующий шаг, готов продолжать.\n\nПроверка папки моста: .dsh-memory/logs/execution-log.jsonl создаётся на первом же tool-вызове. Если он есть — мост точно работал.\n\nВерсия приложения 1.0.0 (функционально завершено). Этапы 1-5 закрыты: SSE основной, память v2, директивы, .dsh-memory/, STG. Этап 6 калибровка отложен.\n\nНаличие блока в сообщении не доказывает что мост жив. Единственное доказательство — успешный dsh_read.", |
|
"importance": "always", |
|
"tags": [ |
|
"protocol", |
|
"recovery" |
|
], |
|
"version": 3, |
|
"createdAt": "2026-11-02T23:35:16.258Z", |
|
"updatedAt": "2026-11-03T07:44:54.590Z", |
|
"lastRecalled": null, |
|
"recallCount": 0, |
|
"bytes": 1639 |
|
}, |
|
{ |
|
"id": "c545a8d5-f6ae-4644-b760-1e0b570c12ad", |
|
"track": "agent", |
|
"scope": "user-global", |
|
"workspaceKey": "", |
|
"key": "protocol_memory_system", |
|
"text": "МЕХАНИЗМ ПАМЯТИ dsh-memory v2\n\nСлои. Protocol (track agent, importance always) инжектится в первый ход. Session (directive scope workspace) инжектится в первый ход текущего чата. Reference (called) и Archive (state archive) только по запросу.\n\nЧто инжектится всегда: все track agent + importance always, плюс directive_ scope workspace state active для текущего chatId с проверкой workspaceKey. Fingerprint: если тот же набор уже в истории чата — пропуск всего блока.\n\nЗапросы через dsh_memory (op):\nlist track scope importance state since limit — items с preview и bytes, totalBytes, matched\nget ids — items с content, totalBytes\nrecent since — items\nunread chatId — новее lastInjectAt\nsearch query track — plain substring, totalBytes\ndirectives chatId state active|done|archive|all — директивы\nbudgets — used по track и scope, alwaysCount, лимиты\nadd entry — новая запись, entry включает track scope workspaceKey key text importance tags\nreplace id text tags importance state chatId — правка\nremove id — удаление\n\nСервер ВСЕГДА отдаёт totalBytes в meta ДО контента. Модель видит объём и решает: взять всё, взять по ids, взять preview, отложить.\n\nТаксономия ключей: user_ факты о пользователе, project_ проекты, directive_ правила и шаги, pref_ привычки, tech_ стек, interest_ интересы, pitfall_ грабли и обходы, decision_ архитектурные решения. Префикс задаёт группу, программа не решает релевантность.\n\nЛимиты: always записей 10, tags 5 на запись по 32 символа, директив на чат 5, preview 200. Калибровать по обратной связи.\n\nОбновление факта: replace по тому же id, не дубликат. AUTHENTIC EXTRACTION ONLY: только явно сказанное пользователем. NEVER cite memory tags в ответе.", |
|
"importance": "always", |
|
"tags": [ |
|
"protocol", |
|
"memory" |
|
], |
|
"version": 4, |
|
"createdAt": "2026-11-02T23:35:16.258Z", |
|
"updatedAt": "2026-11-03T03:41:45.792Z", |
|
"lastRecalled": null, |
|
"recallCount": 0, |
|
"bytes": 2327 |
|
}, |
|
{ |
|
"id": "2853ce0e-de50-455c-bd5a-ebbf9a3fe337", |
|
"track": "agent", |
|
"scope": "user-global", |
|
"workspaceKey": "", |
|
"key": "protocol_modes", |
|
"text": "РЕЖИМЫ DOM И SSE\n\nSSE — основной. Текст идёт из XHR через extractAssistant, минуя DOM-рендерер. Все грабли DOM (линкификация, многострочный oldText, переэкранирование, .mjs-обход) в SSE не действуют. Писать напрямую dsh_write и dsh_edit с любой пунктуацией, юникодом, многострочным текстом.\n\nDOM — резервный. Годится для простых команд без доменов, URL и спецсимволов. При падении смотреть sse-debug.jsonl: сравнить packet.text (правильный XHR) и dom-parse-fail.msgText (искажённый collectText). Расхождение покажет какой узел испортил рендерер.\n\nПереключатель в панели: кнопка DOM / SSE. Ключ storage dshmem-transport.\n\nПолные детали в _ai_notes/PROTOCOLS_DSH.md (в репозитории dsh-memory).\n\nЛИМИТЫ: в SSE максимум 10 вызовов, рекомендуется 3-4. В DOM ОБЯЗАТЕЛЬНО 3-4 максимум — накладные расходы на обходы и диагностику растут, при 10 вызовах риск срыва резко выше. Если нужно больше — переключиться на SSE или разбить на два хода.", |
|
"importance": "always", |
|
"tags": [ |
|
"protocol", |
|
"modes" |
|
], |
|
"version": 2, |
|
"createdAt": "2026-11-02T23:35:16.258Z", |
|
"updatedAt": "2026-11-02T23:51:10.669Z", |
|
"lastRecalled": null, |
|
"recallCount": 0, |
|
"bytes": 1487 |
|
} |
|
], |
|
"chats": {} |
|
} |