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-02T23:35:16.258Z", |
|
"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.796Z", |
|
"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": "ВОССТАНОВЛЕНИЕ И ПРОВЕРКА МОСТА\n\nШаг 1. Проверка моста. Вызови dsh_read на любой путь. Три исхода:\n- пришёл dsh-result с ok true — мост жив, файл есть\n- пришёл dsh-result с E_ARGS_INVALID File not found — мост жив, файла нет, это тоже успех калибровки\n- ответа нет вообще, статус idle, ошибок нет — мост выключен или вызов отброшен дедупом\n\nШаг 2. Если мост жив и есть точка входа проекта — прочитать по указанию пользователя.\n\nПроверка Рабочая папка .dsh-memory создаётся мостом при старте (logs/, outputs/, notes/). В notes/ лежат чекпоинты и протоколы, в logs/execution-log.jsonl — история tool-вызовов.\n\nНаличие блока в сообщении не доказывает что мост жив. Единственное доказательство — успешный dsh_read.", |
|
"importance": "always", |
|
"tags": [ |
|
"protocol", |
|
"recovery" |
|
], |
|
"version": 2, |
|
"createdAt": "2026-11-02T23:35:16.258Z", |
|
"updatedAt": "2026-11-03T00:43:54.413Z", |
|
"lastRecalled": null, |
|
"recallCount": 0, |
|
"bytes": 1152 |
|
}, |
|
{ |
|
"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 и Archive — только по запросу.\n\nЧто инжектится всегда: все track agent + importance always, плюс directive_ scope workspace для текущего chatId. Fingerprint: если тот же набор уже в истории чата — пропуск всего блока. Метка DSHM:SKILLS fingerprint.\n\nЗапросы через /memory/query:\nlist track scope importance since limit — items с preview и bytes, totalBytes, matched\nget ids — items с content, totalBytes\nrecent since — items, totalBytes\nunread chatId — новее lastInjectAt для чата\nsearch query track — plain substring, items, totalBytes\nbudgets — used по track и scope, alwaysCount, лимиты\nwrite op add replace remove — ok, id, version\n\nСервер ВСЕГДА отдаёт totalBytes в meta ДО контента. Модель видит объём и решает: взять всё, взять по ids, взять preview, отложить.\n\nТаксономия ключей: user_ (факты о пользователе), project_ (проекты), directive_ (правила), pref_ (привычки), tech_ (стек), interest_. Префикс задаёт группу, программа не решает релевантность.\n\nЛимиты первой итерации: always записей 10, tags 5 на запись по 32 символа, директив на чат 5, preview 200 символов. Калибровать по обратной связи.\n\nОбновление факта: replace по тому же id, не дубликат. AUTHENTIC EXTRACTION ONLY: только явно сказанное пользователем. NEVER cite memory tags в ответе.\n\nДИРЕКТИВЫ: op directives chatId state active|done|archive all. Директива = Entry с key directive_*, scope workspace, поле state. Активные инжектятся автоматически. Жизненный цикл: add с state active, replace state done когда шаг выполнен, replace state active чтобы вернуть из архива, state archive для окончательно выполненных. Привязка к чату через chatId (пусто = все чаты). Лимит активных директив на чат: 5.", |
|
"importance": "always", |
|
"tags": [ |
|
"protocol", |
|
"memory" |
|
], |
|
"version": 2, |
|
"createdAt": "2026-11-02T23:35:16.258Z", |
|
"updatedAt": "2026-11-02T23:59:30.336Z", |
|
"lastRecalled": null, |
|
"recallCount": 0, |
|
"bytes": 2629 |
|
}, |
|
{ |
|
"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.666Z", |
|
"lastRecalled": null, |
|
"recallCount": 0, |
|
"bytes": 1487 |
|
} |
|
], |
|
"chats": {} |
|
} |