mister-wolf 2.12.0 → 2.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (449) hide show
  1. package/README.md +4 -1
  2. package/README.ru.md +4 -1
  3. package/dist/adapters/cli/cli-entry.d.ts +25 -0
  4. package/dist/adapters/cli/cli-entry.d.ts.map +1 -1
  5. package/dist/adapters/cli/cli-entry.js +156 -85
  6. package/dist/adapters/cli/cli-entry.js.map +1 -1
  7. package/dist/adapters/cli/commands/analytics.d.ts +30 -5
  8. package/dist/adapters/cli/commands/analytics.d.ts.map +1 -1
  9. package/dist/adapters/cli/commands/analytics.js +295 -2
  10. package/dist/adapters/cli/commands/analytics.js.map +1 -1
  11. package/dist/adapters/cli/commands/memory-add.d.ts +21 -1
  12. package/dist/adapters/cli/commands/memory-add.d.ts.map +1 -1
  13. package/dist/adapters/cli/commands/memory-add.js +42 -29
  14. package/dist/adapters/cli/commands/memory-add.js.map +1 -1
  15. package/dist/adapters/cli/commands/memory-aggregate.d.ts +3 -0
  16. package/dist/adapters/cli/commands/memory-aggregate.d.ts.map +1 -0
  17. package/dist/adapters/cli/commands/memory-aggregate.js +31 -0
  18. package/dist/adapters/cli/commands/memory-aggregate.js.map +1 -0
  19. package/dist/adapters/cli/commands/memory-archive.d.ts +3 -0
  20. package/dist/adapters/cli/commands/memory-archive.d.ts.map +1 -0
  21. package/dist/adapters/cli/commands/memory-archive.js +19 -0
  22. package/dist/adapters/cli/commands/memory-archive.js.map +1 -0
  23. package/dist/adapters/cli/commands/memory-call.d.ts.map +1 -1
  24. package/dist/adapters/cli/commands/memory-call.js +9 -2
  25. package/dist/adapters/cli/commands/memory-call.js.map +1 -1
  26. package/dist/adapters/cli/commands/memory-complain.d.ts +6 -0
  27. package/dist/adapters/cli/commands/memory-complain.d.ts.map +1 -1
  28. package/dist/adapters/cli/commands/memory-complain.js +20 -0
  29. package/dist/adapters/cli/commands/memory-complain.js.map +1 -1
  30. package/dist/adapters/cli/commands/memory-doctor.d.ts.map +1 -1
  31. package/dist/adapters/cli/commands/memory-doctor.js +43 -2
  32. package/dist/adapters/cli/commands/memory-doctor.js.map +1 -1
  33. package/dist/adapters/cli/commands/memory-edit.d.ts +3 -0
  34. package/dist/adapters/cli/commands/memory-edit.d.ts.map +1 -0
  35. package/dist/adapters/cli/commands/memory-edit.js +67 -0
  36. package/dist/adapters/cli/commands/memory-edit.js.map +1 -0
  37. package/dist/adapters/cli/commands/memory-init.d.ts.map +1 -1
  38. package/dist/adapters/cli/commands/memory-init.js +46 -7
  39. package/dist/adapters/cli/commands/memory-init.js.map +1 -1
  40. package/dist/adapters/cli/commands/memory-list.d.ts +12 -0
  41. package/dist/adapters/cli/commands/memory-list.d.ts.map +1 -1
  42. package/dist/adapters/cli/commands/memory-list.js +36 -21
  43. package/dist/adapters/cli/commands/memory-list.js.map +1 -1
  44. package/dist/adapters/cli/commands/memory-migrate.d.ts.map +1 -1
  45. package/dist/adapters/cli/commands/memory-migrate.js +91 -0
  46. package/dist/adapters/cli/commands/memory-migrate.js.map +1 -1
  47. package/dist/adapters/cli/commands/memory-recap.d.ts.map +1 -1
  48. package/dist/adapters/cli/commands/memory-recap.js +3 -1
  49. package/dist/adapters/cli/commands/memory-recap.js.map +1 -1
  50. package/dist/adapters/cli/commands/memory-relation.d.ts +1 -1
  51. package/dist/adapters/cli/commands/memory-relation.d.ts.map +1 -1
  52. package/dist/adapters/cli/commands/memory-relation.js +57 -2
  53. package/dist/adapters/cli/commands/memory-relation.js.map +1 -1
  54. package/dist/adapters/cli/commands/memory-search.d.ts.map +1 -1
  55. package/dist/adapters/cli/commands/memory-search.js +21 -2
  56. package/dist/adapters/cli/commands/memory-search.js.map +1 -1
  57. package/dist/adapters/cli/commands/memory-session.d.ts.map +1 -1
  58. package/dist/adapters/cli/commands/memory-session.js +2 -12
  59. package/dist/adapters/cli/commands/memory-session.js.map +1 -1
  60. package/dist/adapters/cli/commands/memory-sync.d.ts.map +1 -1
  61. package/dist/adapters/cli/commands/memory-sync.js +2 -9
  62. package/dist/adapters/cli/commands/memory-sync.js.map +1 -1
  63. package/dist/adapters/cli/commands/memory-taxonomy.d.ts.map +1 -1
  64. package/dist/adapters/cli/commands/memory-taxonomy.js +4 -4
  65. package/dist/adapters/cli/commands/memory-taxonomy.js.map +1 -1
  66. package/dist/adapters/cli/commands/memory-tool.d.ts.map +1 -1
  67. package/dist/adapters/cli/commands/memory-tool.js +13 -5
  68. package/dist/adapters/cli/commands/memory-tool.js.map +1 -1
  69. package/dist/adapters/cli/commands/memory-validate.d.ts.map +1 -1
  70. package/dist/adapters/cli/commands/memory-validate.js +18 -4
  71. package/dist/adapters/cli/commands/memory-validate.js.map +1 -1
  72. package/dist/adapters/cli/commands/projects.d.ts +3 -0
  73. package/dist/adapters/cli/commands/projects.d.ts.map +1 -0
  74. package/dist/adapters/cli/commands/projects.js +18 -0
  75. package/dist/adapters/cli/commands/projects.js.map +1 -0
  76. package/dist/adapters/cli/removed-commands.d.ts +11 -0
  77. package/dist/adapters/cli/removed-commands.d.ts.map +1 -0
  78. package/dist/adapters/cli/removed-commands.js +36 -0
  79. package/dist/adapters/cli/removed-commands.js.map +1 -0
  80. package/dist/adapters/cli/type-command-generator.d.ts +5 -0
  81. package/dist/adapters/cli/type-command-generator.d.ts.map +1 -0
  82. package/dist/adapters/cli/type-command-generator.js +132 -0
  83. package/dist/adapters/cli/type-command-generator.js.map +1 -0
  84. package/dist/adapters/fs/config-file.d.ts +6 -1
  85. package/dist/adapters/fs/config-file.d.ts.map +1 -1
  86. package/dist/adapters/fs/config-file.js +112 -55
  87. package/dist/adapters/fs/config-file.js.map +1 -1
  88. package/dist/adapters/fs/doc-id-migration.d.ts +2 -0
  89. package/dist/adapters/fs/doc-id-migration.d.ts.map +1 -1
  90. package/dist/adapters/fs/doc-id-migration.js +8 -2
  91. package/dist/adapters/fs/doc-id-migration.js.map +1 -1
  92. package/dist/adapters/fs/effectiveness-snapshots.d.ts +1 -1
  93. package/dist/adapters/fs/effectiveness-snapshots.d.ts.map +1 -1
  94. package/dist/adapters/fs/jsonl-relation-log.d.ts.map +1 -1
  95. package/dist/adapters/fs/jsonl-relation-log.js +10 -2
  96. package/dist/adapters/fs/jsonl-relation-log.js.map +1 -1
  97. package/dist/adapters/fs/layout-migration.d.ts.map +1 -1
  98. package/dist/adapters/fs/layout-migration.js +21 -2
  99. package/dist/adapters/fs/layout-migration.js.map +1 -1
  100. package/dist/adapters/fs/markdown-memory-store.d.ts +12 -1
  101. package/dist/adapters/fs/markdown-memory-store.d.ts.map +1 -1
  102. package/dist/adapters/fs/markdown-memory-store.js +124 -22
  103. package/dist/adapters/fs/markdown-memory-store.js.map +1 -1
  104. package/dist/adapters/fs/project-paths.d.ts +1 -1
  105. package/dist/adapters/fs/project-paths.d.ts.map +1 -1
  106. package/dist/adapters/fs/project-paths.js +1 -1
  107. package/dist/adapters/fs/project-paths.js.map +1 -1
  108. package/dist/adapters/fs/projects-registry.d.ts +8 -2
  109. package/dist/adapters/fs/projects-registry.d.ts.map +1 -1
  110. package/dist/adapters/fs/projects-registry.js +43 -16
  111. package/dist/adapters/fs/projects-registry.js.map +1 -1
  112. package/dist/adapters/fs/schema-version.d.ts +2 -0
  113. package/dist/adapters/fs/schema-version.d.ts.map +1 -1
  114. package/dist/adapters/fs/schema-version.js +15 -0
  115. package/dist/adapters/fs/schema-version.js.map +1 -1
  116. package/dist/adapters/fs/session-metrics-log.d.ts +32 -118
  117. package/dist/adapters/fs/session-metrics-log.d.ts.map +1 -1
  118. package/dist/adapters/fs/session-metrics-log.js +106 -141
  119. package/dist/adapters/fs/session-metrics-log.js.map +1 -1
  120. package/dist/adapters/fs/taxonomy-migration.d.ts +38 -0
  121. package/dist/adapters/fs/taxonomy-migration.d.ts.map +1 -0
  122. package/dist/adapters/fs/taxonomy-migration.js +280 -0
  123. package/dist/adapters/fs/taxonomy-migration.js.map +1 -0
  124. package/dist/adapters/mcp/mcp-schemas.d.ts +0 -122
  125. package/dist/adapters/mcp/mcp-schemas.d.ts.map +1 -1
  126. package/dist/adapters/mcp/mcp-schemas.js +0 -102
  127. package/dist/adapters/mcp/mcp-schemas.js.map +1 -1
  128. package/dist/adapters/mcp/mcp-server.d.ts.map +1 -1
  129. package/dist/adapters/mcp/mcp-server.js +30 -1
  130. package/dist/adapters/mcp/mcp-server.js.map +1 -1
  131. package/dist/adapters/mcp/mcp-tools.d.ts +10 -0
  132. package/dist/adapters/mcp/mcp-tools.d.ts.map +1 -1
  133. package/dist/adapters/mcp/mcp-tools.js +48 -186
  134. package/dist/adapters/mcp/mcp-tools.js.map +1 -1
  135. package/dist/adapters/sqlite/sqlite-schema.d.ts +1 -1
  136. package/dist/adapters/sqlite/sqlite-schema.d.ts.map +1 -1
  137. package/dist/adapters/sqlite/sqlite-schema.js +4 -2
  138. package/dist/adapters/sqlite/sqlite-schema.js.map +1 -1
  139. package/dist/adapters/sqlite/sqlite-search-index.d.ts +7 -0
  140. package/dist/adapters/sqlite/sqlite-search-index.d.ts.map +1 -1
  141. package/dist/adapters/sqlite/sqlite-search-index.js +41 -9
  142. package/dist/adapters/sqlite/sqlite-search-index.js.map +1 -1
  143. package/dist/app/use-cases/add-memory-object.d.ts +4 -0
  144. package/dist/app/use-cases/add-memory-object.d.ts.map +1 -1
  145. package/dist/app/use-cases/add-memory-object.js +42 -4
  146. package/dist/app/use-cases/add-memory-object.js.map +1 -1
  147. package/dist/app/use-cases/apply-aggregate.d.ts +36 -0
  148. package/dist/app/use-cases/apply-aggregate.d.ts.map +1 -0
  149. package/dist/app/use-cases/apply-aggregate.js +63 -0
  150. package/dist/app/use-cases/apply-aggregate.js.map +1 -0
  151. package/dist/app/use-cases/bootstrap-project.d.ts.map +1 -1
  152. package/dist/app/use-cases/bootstrap-project.js +13 -9
  153. package/dist/app/use-cases/bootstrap-project.js.map +1 -1
  154. package/dist/app/use-cases/build-analytics.d.ts +105 -1
  155. package/dist/app/use-cases/build-analytics.d.ts.map +1 -1
  156. package/dist/app/use-cases/build-analytics.js +330 -9
  157. package/dist/app/use-cases/build-analytics.js.map +1 -1
  158. package/dist/app/use-cases/build-projects-list.d.ts +30 -0
  159. package/dist/app/use-cases/build-projects-list.d.ts.map +1 -0
  160. package/dist/app/use-cases/build-projects-list.js +94 -0
  161. package/dist/app/use-cases/build-projects-list.js.map +1 -0
  162. package/dist/app/use-cases/create-memory-repair-request.d.ts.map +1 -1
  163. package/dist/app/use-cases/create-memory-repair-request.js +5 -3
  164. package/dist/app/use-cases/create-memory-repair-request.js.map +1 -1
  165. package/dist/app/use-cases/detect-unaggregated-lessons.d.ts +30 -0
  166. package/dist/app/use-cases/detect-unaggregated-lessons.d.ts.map +1 -0
  167. package/dist/app/use-cases/detect-unaggregated-lessons.js +40 -0
  168. package/dist/app/use-cases/detect-unaggregated-lessons.js.map +1 -0
  169. package/dist/app/use-cases/diff-thread.d.ts.map +1 -1
  170. package/dist/app/use-cases/diff-thread.js +9 -6
  171. package/dist/app/use-cases/diff-thread.js.map +1 -1
  172. package/dist/app/use-cases/doctor.d.ts +11 -3
  173. package/dist/app/use-cases/doctor.d.ts.map +1 -1
  174. package/dist/app/use-cases/doctor.js +53 -12
  175. package/dist/app/use-cases/doctor.js.map +1 -1
  176. package/dist/app/use-cases/generate-agent-brief.d.ts.map +1 -1
  177. package/dist/app/use-cases/generate-agent-brief.js +18 -8
  178. package/dist/app/use-cases/generate-agent-brief.js.map +1 -1
  179. package/dist/app/use-cases/generate-recap.d.ts +10 -0
  180. package/dist/app/use-cases/generate-recap.d.ts.map +1 -1
  181. package/dist/app/use-cases/generate-recap.js +81 -7
  182. package/dist/app/use-cases/generate-recap.js.map +1 -1
  183. package/dist/app/use-cases/get-call-injections.d.ts +8 -0
  184. package/dist/app/use-cases/get-call-injections.d.ts.map +1 -1
  185. package/dist/app/use-cases/get-call-injections.js +34 -8
  186. package/dist/app/use-cases/get-call-injections.js.map +1 -1
  187. package/dist/app/use-cases/init-project.d.ts +2 -6
  188. package/dist/app/use-cases/init-project.d.ts.map +1 -1
  189. package/dist/app/use-cases/init-project.js +11 -13
  190. package/dist/app/use-cases/init-project.js.map +1 -1
  191. package/dist/app/use-cases/list-memory-objects.d.ts +2 -0
  192. package/dist/app/use-cases/list-memory-objects.d.ts.map +1 -1
  193. package/dist/app/use-cases/list-memory-objects.js.map +1 -1
  194. package/dist/app/use-cases/record-relation.d.ts.map +1 -1
  195. package/dist/app/use-cases/record-relation.js +4 -0
  196. package/dist/app/use-cases/record-relation.js.map +1 -1
  197. package/dist/app/use-cases/scaffold-agent.d.ts.map +1 -1
  198. package/dist/app/use-cases/scaffold-agent.js +58 -17
  199. package/dist/app/use-cases/scaffold-agent.js.map +1 -1
  200. package/dist/app/use-cases/scan-project.d.ts.map +1 -1
  201. package/dist/app/use-cases/scan-project.js +7 -3
  202. package/dist/app/use-cases/scan-project.js.map +1 -1
  203. package/dist/app/use-cases/seed-base-playbooks.d.ts +82 -3
  204. package/dist/app/use-cases/seed-base-playbooks.d.ts.map +1 -1
  205. package/dist/app/use-cases/seed-base-playbooks.js +13 -1
  206. package/dist/app/use-cases/seed-base-playbooks.js.map +1 -1
  207. package/dist/app/use-cases/should-summarize.d.ts.map +1 -1
  208. package/dist/app/use-cases/should-summarize.js +3 -1
  209. package/dist/app/use-cases/should-summarize.js.map +1 -1
  210. package/dist/app/use-cases/snapshot-delta.d.ts +1 -1
  211. package/dist/app/use-cases/snapshot-delta.d.ts.map +1 -1
  212. package/dist/app/use-cases/snapshot-delta.js.map +1 -1
  213. package/dist/app/use-cases/summarize-session.d.ts.map +1 -1
  214. package/dist/app/use-cases/summarize-session.js +11 -2
  215. package/dist/app/use-cases/summarize-session.js.map +1 -1
  216. package/dist/app/use-cases/thinking.d.ts +2 -2
  217. package/dist/app/use-cases/thinking.d.ts.map +1 -1
  218. package/dist/app/use-cases/thinking.js +20 -12
  219. package/dist/app/use-cases/thinking.js.map +1 -1
  220. package/dist/app/use-cases/tool-stats.js +1 -1
  221. package/dist/app/use-cases/tool-stats.js.map +1 -1
  222. package/dist/bootstrap/container.d.ts.map +1 -1
  223. package/dist/bootstrap/container.js +30 -2
  224. package/dist/bootstrap/container.js.map +1 -1
  225. package/dist/domain/facet-colors.d.ts +12 -0
  226. package/dist/domain/facet-colors.d.ts.map +1 -0
  227. package/dist/domain/facet-colors.js +33 -0
  228. package/dist/domain/facet-colors.js.map +1 -0
  229. package/dist/domain/governance.d.ts.map +1 -1
  230. package/dist/domain/governance.js +9 -2
  231. package/dist/domain/governance.js.map +1 -1
  232. package/dist/domain/memory-types.d.ts +73 -318
  233. package/dist/domain/memory-types.d.ts.map +1 -1
  234. package/dist/domain/memory-types.js +90 -223
  235. package/dist/domain/memory-types.js.map +1 -1
  236. package/dist/domain/policies/read-only-zones.d.ts.map +1 -1
  237. package/dist/domain/policies/read-only-zones.js +7 -11
  238. package/dist/domain/policies/read-only-zones.js.map +1 -1
  239. package/dist/domain/schemas/memory-event-schema.d.ts +3 -0
  240. package/dist/domain/schemas/memory-event-schema.d.ts.map +1 -1
  241. package/dist/domain/schemas/memory-event-schema.js +3 -0
  242. package/dist/domain/schemas/memory-event-schema.js.map +1 -1
  243. package/dist/domain/schemas/memory-object-schema.d.ts +2 -0
  244. package/dist/domain/schemas/memory-object-schema.d.ts.map +1 -1
  245. package/dist/domain/schemas/memory-object-schema.js +3 -0
  246. package/dist/domain/schemas/memory-object-schema.js.map +1 -1
  247. package/dist/domain/schemas/relation-schema.d.ts +10 -4
  248. package/dist/domain/schemas/relation-schema.d.ts.map +1 -1
  249. package/dist/domain/schemas/relation-schema.js +12 -0
  250. package/dist/domain/schemas/relation-schema.js.map +1 -1
  251. package/dist/domain/schemas/session-checkpoint-schema.d.ts +3 -1
  252. package/dist/domain/schemas/session-checkpoint-schema.d.ts.map +1 -1
  253. package/dist/domain/schemas/session-checkpoint-schema.js +3 -2
  254. package/dist/domain/schemas/session-checkpoint-schema.js.map +1 -1
  255. package/dist/domain/solve/scenarios.js +3 -3
  256. package/dist/domain/solve/scenarios.js.map +1 -1
  257. package/dist/domain/taxonomy.d.ts +15 -1
  258. package/dist/domain/taxonomy.d.ts.map +1 -1
  259. package/dist/domain/taxonomy.js +14 -1
  260. package/dist/domain/taxonomy.js.map +1 -1
  261. package/dist/domain/tool-economy.d.ts +1 -1
  262. package/dist/domain/tool-economy.js +1 -1
  263. package/dist/domain/type-schema-builder.d.ts +15 -2
  264. package/dist/domain/type-schema-builder.d.ts.map +1 -1
  265. package/dist/domain/type-schema-builder.js +10 -1
  266. package/dist/domain/type-schema-builder.js.map +1 -1
  267. package/dist/ports/memory-store.port.d.ts +2 -0
  268. package/dist/ports/memory-store.port.d.ts.map +1 -1
  269. package/dist/ports/search-index.port.d.ts +2 -0
  270. package/dist/ports/search-index.port.d.ts.map +1 -1
  271. package/package.json +2 -2
  272. package/templates/base/agents/executor-lead.md +5 -0
  273. package/templates/base/agents/mr-wolf.md +6 -0
  274. package/templates/base/agents/steward.md +31 -2
  275. package/templates/opencode/plugins/wolf-router.ts +8 -3
  276. package/templates/opencode/plugins/wolf-session-start.js +6 -3
  277. package/dist/adapters/cli/commands/coord.d.ts +0 -3
  278. package/dist/adapters/cli/commands/coord.d.ts.map +0 -1
  279. package/dist/adapters/cli/commands/coord.js +0 -36
  280. package/dist/adapters/cli/commands/coord.js.map +0 -1
  281. package/dist/adapters/cli/commands/dashboard.d.ts +0 -20
  282. package/dist/adapters/cli/commands/dashboard.d.ts.map +0 -1
  283. package/dist/adapters/cli/commands/dashboard.js +0 -231
  284. package/dist/adapters/cli/commands/dashboard.js.map +0 -1
  285. package/dist/adapters/cli/commands/memory-article.d.ts +0 -3
  286. package/dist/adapters/cli/commands/memory-article.d.ts.map +0 -1
  287. package/dist/adapters/cli/commands/memory-article.js +0 -47
  288. package/dist/adapters/cli/commands/memory-article.js.map +0 -1
  289. package/dist/adapters/cli/commands/memory-blocker.d.ts +0 -3
  290. package/dist/adapters/cli/commands/memory-blocker.d.ts.map +0 -1
  291. package/dist/adapters/cli/commands/memory-blocker.js +0 -52
  292. package/dist/adapters/cli/commands/memory-blocker.js.map +0 -1
  293. package/dist/adapters/cli/commands/memory-council.d.ts +0 -3
  294. package/dist/adapters/cli/commands/memory-council.d.ts.map +0 -1
  295. package/dist/adapters/cli/commands/memory-council.js +0 -42
  296. package/dist/adapters/cli/commands/memory-council.js.map +0 -1
  297. package/dist/adapters/cli/commands/memory-decision.d.ts +0 -3
  298. package/dist/adapters/cli/commands/memory-decision.d.ts.map +0 -1
  299. package/dist/adapters/cli/commands/memory-decision.js +0 -41
  300. package/dist/adapters/cli/commands/memory-decision.js.map +0 -1
  301. package/dist/adapters/cli/commands/memory-effectiveness.d.ts +0 -3
  302. package/dist/adapters/cli/commands/memory-effectiveness.d.ts.map +0 -1
  303. package/dist/adapters/cli/commands/memory-effectiveness.js +0 -127
  304. package/dist/adapters/cli/commands/memory-effectiveness.js.map +0 -1
  305. package/dist/adapters/cli/commands/memory-info-request.d.ts +0 -3
  306. package/dist/adapters/cli/commands/memory-info-request.d.ts.map +0 -1
  307. package/dist/adapters/cli/commands/memory-info-request.js +0 -47
  308. package/dist/adapters/cli/commands/memory-info-request.js.map +0 -1
  309. package/dist/adapters/cli/commands/memory-insights.d.ts +0 -3
  310. package/dist/adapters/cli/commands/memory-insights.d.ts.map +0 -1
  311. package/dist/adapters/cli/commands/memory-insights.js +0 -42
  312. package/dist/adapters/cli/commands/memory-insights.js.map +0 -1
  313. package/dist/adapters/cli/commands/memory-learn.d.ts +0 -3
  314. package/dist/adapters/cli/commands/memory-learn.d.ts.map +0 -1
  315. package/dist/adapters/cli/commands/memory-learn.js +0 -327
  316. package/dist/adapters/cli/commands/memory-learn.js.map +0 -1
  317. package/dist/adapters/cli/commands/memory-rule.d.ts +0 -3
  318. package/dist/adapters/cli/commands/memory-rule.d.ts.map +0 -1
  319. package/dist/adapters/cli/commands/memory-rule.js +0 -40
  320. package/dist/adapters/cli/commands/memory-rule.js.map +0 -1
  321. package/dist/adapters/cli/commands/memory-run.d.ts +0 -3
  322. package/dist/adapters/cli/commands/memory-run.d.ts.map +0 -1
  323. package/dist/adapters/cli/commands/memory-run.js +0 -154
  324. package/dist/adapters/cli/commands/memory-run.js.map +0 -1
  325. package/dist/adapters/cli/commands/memory-stage.d.ts +0 -3
  326. package/dist/adapters/cli/commands/memory-stage.d.ts.map +0 -1
  327. package/dist/adapters/cli/commands/memory-stage.js +0 -35
  328. package/dist/adapters/cli/commands/memory-stage.js.map +0 -1
  329. package/dist/adapters/cli/commands/memory-thread.d.ts +0 -3
  330. package/dist/adapters/cli/commands/memory-thread.d.ts.map +0 -1
  331. package/dist/adapters/cli/commands/memory-thread.js +0 -48
  332. package/dist/adapters/cli/commands/memory-thread.js.map +0 -1
  333. package/dist/adapters/cli/opencode-run-metrics.d.ts +0 -25
  334. package/dist/adapters/cli/opencode-run-metrics.d.ts.map +0 -1
  335. package/dist/adapters/cli/opencode-run-metrics.js +0 -64
  336. package/dist/adapters/cli/opencode-run-metrics.js.map +0 -1
  337. package/dist/app/use-cases/activate-draft.d.ts +0 -31
  338. package/dist/app/use-cases/activate-draft.d.ts.map +0 -1
  339. package/dist/app/use-cases/activate-draft.js +0 -74
  340. package/dist/app/use-cases/activate-draft.js.map +0 -1
  341. package/dist/app/use-cases/build-dashboard.d.ts +0 -43
  342. package/dist/app/use-cases/build-dashboard.d.ts.map +0 -1
  343. package/dist/app/use-cases/build-dashboard.js +0 -32
  344. package/dist/app/use-cases/build-dashboard.js.map +0 -1
  345. package/dist/app/use-cases/create-article.d.ts +0 -31
  346. package/dist/app/use-cases/create-article.d.ts.map +0 -1
  347. package/dist/app/use-cases/create-article.js +0 -62
  348. package/dist/app/use-cases/create-article.js.map +0 -1
  349. package/dist/app/use-cases/create-blocker.d.ts +0 -28
  350. package/dist/app/use-cases/create-blocker.d.ts.map +0 -1
  351. package/dist/app/use-cases/create-blocker.js +0 -51
  352. package/dist/app/use-cases/create-blocker.js.map +0 -1
  353. package/dist/app/use-cases/create-decision.d.ts +0 -28
  354. package/dist/app/use-cases/create-decision.d.ts.map +0 -1
  355. package/dist/app/use-cases/create-decision.js +0 -58
  356. package/dist/app/use-cases/create-decision.js.map +0 -1
  357. package/dist/app/use-cases/create-info-request.d.ts +0 -31
  358. package/dist/app/use-cases/create-info-request.d.ts.map +0 -1
  359. package/dist/app/use-cases/create-info-request.js +0 -58
  360. package/dist/app/use-cases/create-info-request.js.map +0 -1
  361. package/dist/app/use-cases/create-rule.d.ts +0 -27
  362. package/dist/app/use-cases/create-rule.d.ts.map +0 -1
  363. package/dist/app/use-cases/create-rule.js +0 -48
  364. package/dist/app/use-cases/create-rule.js.map +0 -1
  365. package/dist/app/use-cases/create-session-checkpoint.d.ts +0 -23
  366. package/dist/app/use-cases/create-session-checkpoint.d.ts.map +0 -1
  367. package/dist/app/use-cases/create-session-checkpoint.js +0 -61
  368. package/dist/app/use-cases/create-session-checkpoint.js.map +0 -1
  369. package/dist/app/use-cases/create-synthesis.d.ts +0 -25
  370. package/dist/app/use-cases/create-synthesis.d.ts.map +0 -1
  371. package/dist/app/use-cases/create-synthesis.js +0 -36
  372. package/dist/app/use-cases/create-synthesis.js.map +0 -1
  373. package/dist/app/use-cases/create-work-thread.d.ts +0 -26
  374. package/dist/app/use-cases/create-work-thread.d.ts.map +0 -1
  375. package/dist/app/use-cases/create-work-thread.js +0 -47
  376. package/dist/app/use-cases/create-work-thread.js.map +0 -1
  377. package/dist/app/use-cases/effectiveness.d.ts +0 -116
  378. package/dist/app/use-cases/effectiveness.d.ts.map +0 -1
  379. package/dist/app/use-cases/effectiveness.js +0 -198
  380. package/dist/app/use-cases/effectiveness.js.map +0 -1
  381. package/dist/app/use-cases/get-thread-brief.d.ts +0 -19
  382. package/dist/app/use-cases/get-thread-brief.d.ts.map +0 -1
  383. package/dist/app/use-cases/get-thread-brief.js +0 -72
  384. package/dist/app/use-cases/get-thread-brief.js.map +0 -1
  385. package/dist/app/use-cases/learn-decay.d.ts +0 -91
  386. package/dist/app/use-cases/learn-decay.d.ts.map +0 -1
  387. package/dist/app/use-cases/learn-decay.js +0 -274
  388. package/dist/app/use-cases/learn-decay.js.map +0 -1
  389. package/dist/app/use-cases/model-routing.d.ts +0 -30
  390. package/dist/app/use-cases/model-routing.d.ts.map +0 -1
  391. package/dist/app/use-cases/model-routing.js +0 -39
  392. package/dist/app/use-cases/model-routing.js.map +0 -1
  393. package/dist/app/use-cases/pattern-detection.d.ts +0 -44
  394. package/dist/app/use-cases/pattern-detection.d.ts.map +0 -1
  395. package/dist/app/use-cases/pattern-detection.js +0 -71
  396. package/dist/app/use-cases/pattern-detection.js.map +0 -1
  397. package/dist/app/use-cases/propose-draft.d.ts +0 -79
  398. package/dist/app/use-cases/propose-draft.d.ts.map +0 -1
  399. package/dist/app/use-cases/propose-draft.js +0 -140
  400. package/dist/app/use-cases/propose-draft.js.map +0 -1
  401. package/dist/app/use-cases/resolve-blocker.d.ts +0 -17
  402. package/dist/app/use-cases/resolve-blocker.d.ts.map +0 -1
  403. package/dist/app/use-cases/resolve-blocker.js +0 -31
  404. package/dist/app/use-cases/resolve-blocker.js.map +0 -1
  405. package/dist/app/use-cases/run-source.d.ts +0 -15
  406. package/dist/app/use-cases/run-source.d.ts.map +0 -1
  407. package/dist/app/use-cases/run-source.js +0 -26
  408. package/dist/app/use-cases/run-source.js.map +0 -1
  409. package/dist/app/use-cases/tally-council-votes.d.ts +0 -24
  410. package/dist/app/use-cases/tally-council-votes.d.ts.map +0 -1
  411. package/dist/app/use-cases/tally-council-votes.js +0 -30
  412. package/dist/app/use-cases/tally-council-votes.js.map +0 -1
  413. package/dist/app/use-cases/template-evolve.d.ts +0 -87
  414. package/dist/app/use-cases/template-evolve.d.ts.map +0 -1
  415. package/dist/app/use-cases/template-evolve.js +0 -164
  416. package/dist/app/use-cases/template-evolve.js.map +0 -1
  417. package/dist/app/use-cases/validate-draft.d.ts +0 -36
  418. package/dist/app/use-cases/validate-draft.d.ts.map +0 -1
  419. package/dist/app/use-cases/validate-draft.js +0 -75
  420. package/dist/app/use-cases/validate-draft.js.map +0 -1
  421. package/dist/domain/gates/stop-gate.d.ts +0 -43
  422. package/dist/domain/gates/stop-gate.d.ts.map +0 -1
  423. package/dist/domain/gates/stop-gate.js +0 -125
  424. package/dist/domain/gates/stop-gate.js.map +0 -1
  425. package/dist/domain/schemas/article-schema.d.ts +0 -79
  426. package/dist/domain/schemas/article-schema.d.ts.map +0 -1
  427. package/dist/domain/schemas/article-schema.js +0 -12
  428. package/dist/domain/schemas/article-schema.js.map +0 -1
  429. package/dist/domain/schemas/blocker-schema.d.ts +0 -77
  430. package/dist/domain/schemas/blocker-schema.d.ts.map +0 -1
  431. package/dist/domain/schemas/blocker-schema.js +0 -10
  432. package/dist/domain/schemas/blocker-schema.js.map +0 -1
  433. package/dist/domain/schemas/decision-schema.d.ts +0 -75
  434. package/dist/domain/schemas/decision-schema.d.ts.map +0 -1
  435. package/dist/domain/schemas/decision-schema.js +0 -8
  436. package/dist/domain/schemas/decision-schema.js.map +0 -1
  437. package/dist/domain/schemas/info-request-schema.d.ts +0 -80
  438. package/dist/domain/schemas/info-request-schema.d.ts.map +0 -1
  439. package/dist/domain/schemas/info-request-schema.js +0 -13
  440. package/dist/domain/schemas/info-request-schema.js.map +0 -1
  441. package/dist/domain/schemas/rule-schema.d.ts +0 -80
  442. package/dist/domain/schemas/rule-schema.d.ts.map +0 -1
  443. package/dist/domain/schemas/rule-schema.js +0 -10
  444. package/dist/domain/schemas/rule-schema.js.map +0 -1
  445. package/dist/domain/schemas/thread-schema.d.ts +0 -77
  446. package/dist/domain/schemas/thread-schema.d.ts.map +0 -1
  447. package/dist/domain/schemas/thread-schema.js +0 -10
  448. package/dist/domain/schemas/thread-schema.js.map +0 -1
  449. package/templates/base/playbooks/wolf-review-lenses.md +0 -50
@@ -66,9 +66,32 @@ export class SQLiteSearchIndex {
66
66
  this.db = new Database(this.dbPath);
67
67
  this.db.pragma('busy_timeout = 5000');
68
68
  this.db.exec(SQLITE_SCHEMA);
69
+ this.migrateFacetColumns();
69
70
  }
70
71
  return this.db;
71
72
  }
73
+ /**
74
+ * P212 (2.13 §5.3а): facet-колонки в БД старой схемы. memory_meta — обычная
75
+ * таблица, хватает ALTER ADD COLUMN; FTS5 не поддерживает ALTER для
76
+ * виртуальных таблиц — копируем в новую таблицу с facet (drop/rename),
77
+ * данные сохраняются без пересборки индекса.
78
+ */
79
+ migrateFacetColumns() {
80
+ const db = this.db;
81
+ const hasFacet = (table) => db.prepare(`PRAGMA table_info(${table})`).all().some((c) => c.name === 'facet');
82
+ if (!hasFacet('memory_meta')) {
83
+ db.exec('ALTER TABLE memory_meta ADD COLUMN facet TEXT');
84
+ }
85
+ if (!hasFacet('memory_search')) {
86
+ db.exec(`CREATE VIRTUAL TABLE memory_search_new USING fts5(
87
+ memory_id, type, title, body, tags, status, review_state, facet
88
+ )`);
89
+ db.exec(`INSERT INTO memory_search_new(memory_id, type, title, body, tags, status, review_state, facet)
90
+ SELECT memory_id, type, title, body, tags, status, review_state, NULL FROM memory_search`);
91
+ db.exec('DROP TABLE memory_search');
92
+ db.exec('ALTER TABLE memory_search_new RENAME TO memory_search');
93
+ }
94
+ }
72
95
  async indexObject(object) {
73
96
  runWithBusyRetry(() => {
74
97
  this.removeFromIndex(object.id);
@@ -94,13 +117,13 @@ export class SQLiteSearchIndex {
94
117
  if (!ftsQuery) {
95
118
  return [];
96
119
  }
97
- // Колонки memory_search по порядку: memory_id, type, title, body, tags, status, review_state.
98
- // title и tags весят заметно больше body.
99
- const bm25Expr = 'bm25(memory_search, 1.0, 1.0, 8.0, 1.0, 4.0, 1.0, 1.0)';
120
+ // Колонки memory_search по порядку: memory_id, type, title, body, tags, status, review_state, facet.
121
+ // title и tags весят заметно больше body; facet — фильтруемая колонка, вес дефолтный.
122
+ const bm25Expr = 'bm25(memory_search, 1.0, 1.0, 8.0, 1.0, 4.0, 1.0, 1.0, 1.0)';
100
123
  let sql = `
101
124
  SELECT s.memory_id, s.type, s.title, s.body, s.status, s.review_state,
102
125
  m.confidence, m.importance, m.created_at, m.updated_at, m.created_by,
103
- m.schema_version, m.source, m.related, m.tags, m.superseded_by,
126
+ m.schema_version, m.source, m.related, m.tags, m.superseded_by, m.facet,
104
127
  ${bm25Expr} AS rank
105
128
  FROM memory_search s
106
129
  JOIN memory_meta m ON s.memory_id = m.memory_id
@@ -116,6 +139,11 @@ export class SQLiteSearchIndex {
116
139
  sql += ` AND s.type = ?`;
117
140
  params.push(options.type);
118
141
  }
142
+ if (options.facet) {
143
+ // P212 (2.13 §5.3б): фасет хранится в memory_meta (NULL у типов без фасета)
144
+ sql += ` AND m.facet = ?`;
145
+ params.push(options.facet);
146
+ }
119
147
  if (options.status) {
120
148
  sql += ` AND s.status = ?`;
121
149
  params.push(options.status);
@@ -177,7 +205,7 @@ export class SQLiteSearchIndex {
177
205
  const rows = this.getDb()
178
206
  .prepare(`SELECT s.memory_id, s.type, s.title, s.body, s.status, s.review_state,
179
207
  m.confidence, m.importance, m.created_at, m.updated_at, m.created_by,
180
- m.schema_version, m.source, m.related, m.tags, m.superseded_by
208
+ m.schema_version, m.source, m.related, m.tags, m.superseded_by, m.facet
181
209
  FROM memory_search s
182
210
  JOIN memory_meta m ON s.memory_id = m.memory_id
183
211
  WHERE s.status NOT IN ('superseded', 'archived')`)
@@ -203,6 +231,8 @@ export class SQLiteSearchIndex {
203
231
  related: JSON.parse(row.related),
204
232
  tags: JSON.parse(row.tags),
205
233
  superseded_by: row.superseded_by,
234
+ // NULL → undefined: без фасета объект сравним с каноническим (toEqual)
235
+ ...(row.facet != null ? { facet: row.facet } : {}),
206
236
  },
207
237
  score: this.computeScore(row.rank ?? 0, row.importance, row.confidence),
208
238
  };
@@ -216,12 +246,14 @@ export class SQLiteSearchIndex {
216
246
  this.getDb().prepare('DELETE FROM memory_meta WHERE memory_id = ?').run(id);
217
247
  }
218
248
  insertIntoIndex(object) {
249
+ // P212 (2.13 §5.3а): facet пишется только у note (иначе NULL)
250
+ const facet = typeof object.facet === 'string' ? object.facet : null;
219
251
  this.getDb()
220
- .prepare('INSERT INTO memory_search (memory_id, type, title, body, tags, status, review_state) VALUES (?, ?, ?, ?, ?, ?, ?)')
221
- .run(object.id, object.type, object.title, object.body, object.tags.join(','), object.status, object.review_state);
252
+ .prepare('INSERT INTO memory_search (memory_id, type, title, body, tags, status, review_state, facet) VALUES (?, ?, ?, ?, ?, ?, ?, ?)')
253
+ .run(object.id, object.type, object.title, object.body, object.tags.join(','), object.status, object.review_state, facet);
222
254
  this.getDb()
223
- .prepare('INSERT INTO memory_meta (memory_id, type, status, review_state, importance, created_at, confidence, created_by, updated_at, superseded_by, source, related, tags, schema_version) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)')
224
- .run(object.id, object.type, object.status, object.review_state, object.importance, object.created_at, object.confidence, object.created_by, object.updated_at, object.superseded_by, JSON.stringify(object.source), JSON.stringify(object.related), JSON.stringify(object.tags), object.schema_version);
255
+ .prepare('INSERT INTO memory_meta (memory_id, type, status, review_state, importance, created_at, confidence, created_by, updated_at, superseded_by, source, related, tags, schema_version, facet) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)')
256
+ .run(object.id, object.type, object.status, object.review_state, object.importance, object.created_at, object.confidence, object.created_by, object.updated_at, object.superseded_by, JSON.stringify(object.source), JSON.stringify(object.related), JSON.stringify(object.tags), object.schema_version, facet);
225
257
  }
226
258
  }
227
259
  //# sourceMappingURL=sqlite-search-index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite-search-index.js","sourceRoot":"","sources":["../../../src/adapters/sqlite/sqlite-search-index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sqlite-search-index.js","sourceRoot":"","sources":["../../../src/adapters/sqlite/sqlite-search-index.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,8 @@ export interface AddMemoryObjectInput {
22
22
  lifetime?: MemoryObject['lifetime'];
23
23
  extra?: Record<string, unknown>;
24
24
  status?: MemoryObject['status'];
25
+ /** 2.13 §5.3: фасет «характер записи» — обязателен для note, запрещён прочим типам. */
26
+ facet?: string;
25
27
  }
26
28
  export interface AddMemoryObjectResult {
27
29
  object: MemoryObject;
@@ -35,5 +37,7 @@ export declare function addMemoryObject(deps: {
35
37
  index?: SearchIndex;
36
38
  lock?: MemoryLock;
37
39
  declarations?: readonly MemoryTypeDeclaration[];
40
+ /** 2.13 §5.3: кастомный словарь facets.character из config.yaml. */
41
+ facetCharacter?: readonly string[];
38
42
  }, input: AddMemoryObjectInput): Promise<AddMemoryObjectResult>;
39
43
  //# sourceMappingURL=add-memory-object.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"add-memory-object.d.ts","sourceRoot":"","sources":["../../../src/app/use-cases/add-memory-object.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAsB,MAAM,8CAA8C,CAAC;AAGhG,OAAO,EAAkB,KAAK,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAI1F,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,CAAC,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;IAClC,UAAU,CAAC,EAAE,YAAY,CAAC,YAAY,CAAC,CAAC;IACxC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;IAChC,WAAW,CAAC,EAAE,YAAY,CAAC,cAAc,CAAC,CAAC;IAC3C,WAAW,CAAC,EAAE,YAAY,CAAC,cAAc,CAAC,CAAC;IAC3C,SAAS,CAAC,EAAE,YAAY,CAAC,YAAY,CAAC,CAAC;IACvC,QAAQ,CAAC,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,MAAM,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,YAAY,CAAC;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,wBAAsB,eAAe,CACnC,IAAI,EAAE;IACJ,KAAK,EAAE,WAAW,CAAC;IACnB,GAAG,EAAE,QAAQ,CAAC;IACd,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,WAAW,CAAC;IACnB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,YAAY,CAAC,EAAE,SAAS,qBAAqB,EAAE,CAAC;CACjD,EACD,KAAK,EAAE,oBAAoB,GAC1B,OAAO,CAAC,qBAAqB,CAAC,CAiEhC"}
1
+ {"version":3,"file":"add-memory-object.d.ts","sourceRoot":"","sources":["../../../src/app/use-cases/add-memory-object.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAsB,MAAM,8CAA8C,CAAC;AAGhG,OAAO,EAA4C,KAAK,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAIpH,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,CAAC,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;IAClC,UAAU,CAAC,EAAE,YAAY,CAAC,YAAY,CAAC,CAAC;IACxC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;IAChC,WAAW,CAAC,EAAE,YAAY,CAAC,cAAc,CAAC,CAAC;IAC3C,WAAW,CAAC,EAAE,YAAY,CAAC,cAAc,CAAC,CAAC;IAC3C,SAAS,CAAC,EAAE,YAAY,CAAC,YAAY,CAAC,CAAC;IACvC,QAAQ,CAAC,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,MAAM,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;IAChC,uFAAuF;IACvF,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,YAAY,CAAC;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,wBAAsB,eAAe,CACnC,IAAI,EAAE;IACJ,KAAK,EAAE,WAAW,CAAC;IACnB,GAAG,EAAE,QAAQ,CAAC;IACd,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,WAAW,CAAC;IACnB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,YAAY,CAAC,EAAE,SAAS,qBAAqB,EAAE,CAAC;IAChD,oEAAoE;IACpE,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC,EACD,KAAK,EAAE,oBAAoB,GAC1B,OAAO,CAAC,qBAAqB,CAAC,CA2GhC"}
@@ -1,10 +1,30 @@
1
1
  import { MemoryObjectSchema } from '../../domain/schemas/memory-object-schema.js';
2
2
  import { validateMemoryObject } from '../../domain/policies/write-protocol.js';
3
3
  import { governanceDefaults } from '../../domain/governance.js';
4
- import { getDeclaration } from '../../domain/memory-types.js';
5
- import { buildTypeSchema } from '../../domain/type-schema-builder.js';
4
+ import { getDeclaration, DEFAULT_CHARACTER_FACETS } from '../../domain/memory-types.js';
5
+ import { buildTypeSchema, applyFacetEnum } from '../../domain/type-schema-builder.js';
6
6
  import { UserFacingError } from '../../domain/errors.js';
7
7
  export async function addMemoryObject(deps, input) {
8
+ // T030/2.13 §6.1: гвард «rules by user request only» перенесён из create-rule
9
+ // (CLI не всегда TTY — ошибка вместо интерактивного вопроса; пользовательский
10
+ // путь = actor user:* через --created-by или env WOLF_ACTOR)
11
+ if (input.type === 'rule' && input.createdBy.startsWith('agent:')) {
12
+ throw new UserFacingError('Rules can only be created by explicit user request (use a user actor: --created-by user:<name> or env WOLF_ACTOR)');
13
+ }
14
+ // 2.13 §5.3: фасетная валидация в домене (формат подсказки — прецедент getDeclaration)
15
+ const facetDict = deps.facetCharacter ?? DEFAULT_CHARACTER_FACETS;
16
+ const facet = input.facet ?? input.extra?.facet;
17
+ if (input.type === 'note') {
18
+ if (facet === undefined) {
19
+ throw new UserFacingError(`facet is required for type "note" (valid values: ${facetDict.join(', ')})`);
20
+ }
21
+ if (!facetDict.includes(facet)) {
22
+ throw new UserFacingError(`Invalid facet "${facet}" for type "note" (valid values: ${facetDict.join(', ')})`);
23
+ }
24
+ }
25
+ else if (facet !== undefined) {
26
+ throw new UserFacingError(`facet is only valid for type "note" (got type "${input.type}")`);
27
+ }
8
28
  const run = async () => {
9
29
  const now = deps.clock.now();
10
30
  const defaults = governanceDefaults(input.createdBy);
@@ -32,7 +52,11 @@ export async function addMemoryObject(deps, input) {
32
52
  lifetime: input.lifetime ?? defaults.lifetime,
33
53
  };
34
54
  Object.assign(object, input.extra ?? {});
35
- const decl = getDeclaration(object.type, deps.declarations);
55
+ if (input.type === 'note' && facet !== undefined)
56
+ object.facet = facet;
57
+ const baseDecl = getDeclaration(object.type, deps.declarations);
58
+ // note: enum фасета = эффективный словарь (кастомный из конфига или дефолт)
59
+ const decl = object.type === 'note' ? applyFacetEnum(baseDecl, facetDict) : baseDecl;
36
60
  const baseKeys = new Set(Object.keys(MemoryObjectSchema.shape));
37
61
  for (const key of Object.keys(input.extra ?? {})) {
38
62
  if (!baseKeys.has(key) && !(key in (decl.fields ?? {}))) {
@@ -45,13 +69,27 @@ export async function addMemoryObject(deps, input) {
45
69
  throw new UserFacingError(`Type validation failed: ${typeCheck.error.issues.map((i) => `${i.path.join('.')}: ${i.message}`).join('; ')}`);
46
70
  }
47
71
  const validation = validateMemoryObject(object);
72
+ // P300/2.14 §5.1: коллизия детерминированного id — отказ с подсказкой,
73
+ // никогда тихая перезапись (P0-жалоба 817efd). get — один locate-обход,
74
+ // add не hot-path (Р5 спеки 2.14)
75
+ const existing = await deps.store.get(object.id);
76
+ if (existing) {
77
+ throw new UserFacingError(`Memory object "${object.id}" already exists (same title produced same id).\n` +
78
+ `Use: wolf edit ${object.id} (правка) | wolf supersede ${object.id} <new-id> (смена) | другой --title.`);
79
+ }
48
80
  await deps.store.save(object);
49
81
  await deps.log.append({
50
82
  id: deps.idGen.generateEventId(now),
51
83
  type: 'memory.added',
52
84
  timestamp: now.toISOString(),
53
85
  actor: input.createdBy,
54
- payload: { memory_id: object.id, type: object.type },
86
+ payload: {
87
+ memory_id: object.id,
88
+ type: object.type,
89
+ // 2.13: tags в payload — аддитивно (инвариант i); summarize-session ищет
90
+ // по тегу session-summary событие последнего wrap-up (note + facet history)
91
+ ...(object.tags.length > 0 ? { tags: object.tags } : {}),
92
+ },
55
93
  });
56
94
  if (deps.index) {
57
95
  await deps.index.indexObject(object);
@@ -1 +1 @@
1
- {"version":3,"file":"add-memory-object.js","sourceRoot":"","sources":["../../../src/app/use-cases/add-memory-object.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"add-memory-object.js","sourceRoot":"","sources":["../../../src/app/use-cases/add-memory-object.ts"],"names":[],"mappings":"AAMA,OAAO,EAAgB,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAChG,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,wBAAwB,EAA8B,MAAM,8BAA8B,CAAC;AACpH,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACtF,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AA2BzD,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,IAUC,EACD,KAA2B;IAE3B,8EAA8E;IAC9E,8EAA8E;IAC9E,6DAA6D;IAC7D,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAClE,MAAM,IAAI,eAAe,CACvB,mHAAmH,CACpH,CAAC;IACJ,CAAC;IAED,uFAAuF;IACvF,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,IAAI,wBAAwB,CAAC;IAClE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAK,KAAK,CAAC,KAAK,EAAE,KAA4B,CAAC;IACxE,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC1B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,IAAI,eAAe,CAAC,oDAAoD,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzG,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,eAAe,CAAC,kBAAkB,KAAK,oCAAoC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChH,CAAC;IACH,CAAC;SAAM,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,IAAI,eAAe,CAAC,kDAAkD,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC;IAC9F,CAAC;IAED,MAAM,GAAG,GAAG,KAAK,IAAoC,EAAE;QACrD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,kBAAkB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACrD,MAAM,MAAM,GAAiB;YAC3B,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC;YACjD,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE;YACtB,MAAM,EACJ,KAAK,CAAC,MAAM;gBACZ,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,aAAa;gBAC3D,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;YAC5D,YAAY,EAAE,KAAK,CAAC,WAAW,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC;YACnG,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,QAAQ;YACxC,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,GAAG;YACnC,UAAU,EAAE,GAAG,CAAC,WAAW,EAAE;YAC7B,UAAU,EAAE,GAAG,CAAC,WAAW,EAAE;YAC7B,UAAU,EAAE,KAAK,CAAC,SAAS;YAC3B,cAAc,EAAE,CAAC;YACjB,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC1C,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;YAChE,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE;YACtB,aAAa,EAAE,IAAI;YACnB,YAAY,EAAE,KAAK,CAAC,WAAW,IAAI,QAAQ,CAAC,YAAY;YACxD,UAAU,EAAE,KAAK,CAAC,SAAS,IAAI,QAAQ,CAAC,UAAU;YAClD,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ;SAC9C,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QACzC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,KAAK,SAAS;YAAE,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;QACvE,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAChE,4EAA4E;QAC5E,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QACrF,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;QAChE,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC;YACjD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;gBACxD,8EAA8E;gBAC9E,MAAM,IAAI,eAAe,CACvB,kBAAkB,GAAG,eAAe,MAAM,CAAC,IAAI,oBAC7C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAC/C,GAAG,CACJ,CAAC;YACJ,CAAC;QACH,CAAC;QACD,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC1D,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;YACvB,MAAM,IAAI,eAAe,CACvB,2BAA2B,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC/G,CAAC;QACJ,CAAC;QAED,MAAM,UAAU,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;QAChD,uEAAuE;QACvE,wEAAwE;QACxE,kCAAkC;QAClC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACjD,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,IAAI,eAAe,CACvB,kBAAkB,MAAM,CAAC,EAAE,mDAAmD;gBAC5E,kBAAkB,MAAM,CAAC,EAAE,8BAA8B,MAAM,CAAC,EAAE,qCAAqC,CAC1G,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9B,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;YACpB,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC;YACnC,IAAI,EAAE,cAAc;YACpB,SAAS,EAAE,GAAG,CAAC,WAAW,EAAE;YAC5B,KAAK,EAAE,KAAK,CAAC,SAAS;YACtB,OAAO,EAAE;gBACP,SAAS,EAAE,MAAM,CAAC,EAAE;gBACpB,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,yEAAyE;gBACzE,4EAA4E;gBAC5E,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACzD;SACF,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACvC,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC;IACnD,CAAC,CAAC;IACF,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACrD,CAAC"}
@@ -0,0 +1,36 @@
1
+ import { MemoryStore } from '../../ports/memory-store.port.js';
2
+ import { EventLog } from '../../ports/event-log.port.js';
3
+ import { Clock } from '../../ports/clock.port.js';
4
+ import { IdGenerator } from '../../ports/id-generator.port.js';
5
+ import { SearchIndex } from '../../ports/search-index.port.js';
6
+ import { MemoryLock } from '../../ports/memory-lock.port.js';
7
+ import { RelationLog } from '../../ports/relation-log.port.js';
8
+ export interface ApplyAggregateResult {
9
+ /** Агрегат переведён proposed → active этим запуском. */
10
+ activated: boolean;
11
+ /** Исходники, архивированные этим запуском. */
12
+ archived: string[];
13
+ /** Исходники, уже archived или отсутствующие (пропущены, идемпотентность). */
14
+ skipped: string[];
15
+ /** Активаций/архиваций не было (агрегат active, все исходники погашены). */
16
+ noop: boolean;
17
+ }
18
+ /**
19
+ * 2.14 §7.3: подтверждение агрегата владельцем. Под lock: proposed → active,
20
+ * исходники по рёбрам `aggregates` → archived, одно событие memory.aggregated.
21
+ * FS не транзакционен: повторный apply дозавершает оставшиеся исходники
22
+ * (уже archived → skipped); полный no-op — только когда агрегат active и
23
+ * исходников к архивации нет, событие тогда не пишется (инвариант (ii) §9).
24
+ * canTransition сознательно не проверяем: apply — governance этого пути
25
+ * (proposed→active вне ALLOWED_TRANSITIONS), отказ — `transition <id> rejected`.
26
+ */
27
+ export declare function applyAggregate(deps: {
28
+ store: MemoryStore;
29
+ log: EventLog;
30
+ clock: Clock;
31
+ idGen: IdGenerator;
32
+ relations: RelationLog;
33
+ index?: SearchIndex;
34
+ lock?: MemoryLock;
35
+ }, aggregateId: string, actor?: string): Promise<ApplyAggregateResult>;
36
+ //# sourceMappingURL=apply-aggregate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apply-aggregate.d.ts","sourceRoot":"","sources":["../../../src/app/use-cases/apply-aggregate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAG/D,MAAM,WAAW,oBAAoB;IACnC,yDAAyD;IACzD,SAAS,EAAE,OAAO,CAAC;IACnB,+CAA+C;IAC/C,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,8EAA8E;IAC9E,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,4EAA4E;IAC5E,IAAI,EAAE,OAAO,CAAC;CACf;AAED;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE;IACJ,KAAK,EAAE,WAAW,CAAC;IACnB,GAAG,EAAE,QAAQ,CAAC;IACd,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,WAAW,CAAC;IACnB,SAAS,EAAE,WAAW,CAAC;IACvB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB,EACD,WAAW,EAAE,MAAM,EACnB,KAAK,GAAE,MAAsB,GAC5B,OAAO,CAAC,oBAAoB,CAAC,CAyD/B"}
@@ -0,0 +1,63 @@
1
+ import { UserFacingError } from '../../domain/errors.js';
2
+ /**
3
+ * 2.14 §7.3: подтверждение агрегата владельцем. Под lock: proposed → active,
4
+ * исходники по рёбрам `aggregates` → archived, одно событие memory.aggregated.
5
+ * FS не транзакционен: повторный apply дозавершает оставшиеся исходники
6
+ * (уже archived → skipped); полный no-op — только когда агрегат active и
7
+ * исходников к архивации нет, событие тогда не пишется (инвариант (ii) §9).
8
+ * canTransition сознательно не проверяем: apply — governance этого пути
9
+ * (proposed→active вне ALLOWED_TRANSITIONS), отказ — `transition <id> rejected`.
10
+ */
11
+ export async function applyAggregate(deps, aggregateId, actor = 'system:wolf') {
12
+ const run = async () => {
13
+ const agg = await deps.store.get(aggregateId);
14
+ if (!agg)
15
+ throw new UserFacingError(`Memory object not found: ${aggregateId}`);
16
+ if (agg.status !== 'proposed' && agg.status !== 'active') {
17
+ throw new UserFacingError(`Aggregate ${aggregateId} is ${agg.status}: apply expects a proposed or active aggregate; ` +
18
+ `to refuse use "wolf transition ${aggregateId} rejected"`);
19
+ }
20
+ // исходники: уникальные object-строки рёбер aggregates от агрегата, порядок лога
21
+ const rows = await deps.relations.list();
22
+ const sourceIds = [];
23
+ for (const r of rows) {
24
+ if (r.predicate === 'aggregates' && r.subject === aggregateId && !sourceIds.includes(r.object)) {
25
+ sourceIds.push(r.object);
26
+ }
27
+ }
28
+ const activated = agg.status === 'proposed';
29
+ const archived = [];
30
+ const skipped = [];
31
+ for (const id of sourceIds) {
32
+ const obj = await deps.store.get(id);
33
+ // отсутствующий исходник — сломанный кластер, apply не валится
34
+ if (!obj || obj.status === 'archived') {
35
+ skipped.push(id);
36
+ continue;
37
+ }
38
+ const updated = await deps.store.update(id, { status: 'archived' });
39
+ archived.push(id);
40
+ if (deps.index)
41
+ await deps.index.indexObject(updated);
42
+ }
43
+ if (!activated && archived.length === 0) {
44
+ return { activated: false, archived, skipped, noop: true };
45
+ }
46
+ if (activated) {
47
+ const updatedAgg = await deps.store.update(aggregateId, { status: 'active' });
48
+ if (deps.index)
49
+ await deps.index.indexObject(updatedAgg);
50
+ }
51
+ const now = deps.clock.now();
52
+ await deps.log.append({
53
+ id: deps.idGen.generateEventId(now),
54
+ type: 'memory.aggregated',
55
+ timestamp: now.toISOString(),
56
+ actor,
57
+ payload: { aggregate_id: aggregateId, source_ids: sourceIds },
58
+ });
59
+ return { activated, archived, skipped, noop: false };
60
+ };
61
+ return deps.lock ? deps.lock.withLock(run) : run();
62
+ }
63
+ //# sourceMappingURL=apply-aggregate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apply-aggregate.js","sourceRoot":"","sources":["../../../src/app/use-cases/apply-aggregate.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap-project.d.ts","sourceRoot":"","sources":["../../../src/app/use-cases/bootstrap-project.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,8CAA8C,CAAC;AAG5E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAK1E,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;CACf;AAOD,kFAAkF;AAClF,eAAO,MAAM,sBAAsB,sCAAsC,CAAC;AAE1E;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE;IACJ,KAAK,EAAE,WAAW,CAAC;IACnB,GAAG,EAAE,QAAQ,CAAC;IACd,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,WAAW,CAAC;IACnB,OAAO,EAAE,cAAc,CAAC;IACxB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,YAAY,CAAC,EAAE,SAAS,qBAAqB,EAAE,CAAC;IAChD,EAAE,EAAE,UAAU,CAAC;CAChB,EACD,KAAK,EAAE,qBAAqB,GAC3B,OAAO,CAAC,sBAAsB,CAAC,CA8EjC"}
1
+ {"version":3,"file":"bootstrap-project.d.ts","sourceRoot":"","sources":["../../../src/app/use-cases/bootstrap-project.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,8CAA8C,CAAC;AAG5E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAI1E,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;CACf;AAOD,kFAAkF;AAClF,eAAO,MAAM,sBAAsB,sCAAsC,CAAC;AAE1E;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE;IACJ,KAAK,EAAE,WAAW,CAAC;IACnB,GAAG,EAAE,QAAQ,CAAC;IACd,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,WAAW,CAAC;IACnB,OAAO,EAAE,cAAc,CAAC;IACxB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,YAAY,CAAC,EAAE,SAAS,qBAAqB,EAAE,CAAC;IAChD,EAAE,EAAE,UAAU,CAAC;CAChB,EACD,KAAK,EAAE,qBAAqB,GAC3B,OAAO,CAAC,sBAAsB,CAAC,CAmFjC"}
@@ -2,7 +2,6 @@ import { join } from 'path';
2
2
  import { UserFacingError } from '../../domain/errors.js';
3
3
  import { scanProject } from './scan-project.js';
4
4
  import { addMemoryObject } from './add-memory-object.js';
5
- import { createWorkThread } from './create-work-thread.js';
6
5
  /** Заголовок bootstrap-thread — константа дедупа и детекции recap-секции (§3). */
7
6
  export const BOOTSTRAP_THREAD_TITLE = 'Bootstrap: seeding initial memory';
8
7
  /**
@@ -19,7 +18,7 @@ export async function bootstrapProject(deps, input) {
19
18
  // Guard §5.1 «онбординг уже закрыт»: thread status ≠ active → no-op без скана.
20
19
  // Иначе повторный bootstrap после закрытия регрессировал бы память к черновикам
21
20
  // (дедуп смотрит только proposed, а после свёртки черновиков их нет).
22
- const existingThread = (await deps.store.list({ type: 'work-thread' })).find((t) => t.title === BOOTSTRAP_THREAD_TITLE);
21
+ const existingThread = (await deps.store.list({ type: 'thread' })).find((t) => t.title === BOOTSTRAP_THREAD_TITLE);
23
22
  if (existingThread && existingThread.status !== 'active') {
24
23
  return {
25
24
  rules: [],
@@ -60,18 +59,23 @@ export async function bootstrapProject(deps, input) {
60
59
  }
61
60
  else {
62
61
  // Указатель «что и когда сделано» (§5.2): id init-отчёта по тегам wolf-init
62
+ // (wave13-a: report → note+facet history; alias-корни list({note}) покрывают старые)
63
63
  const now = deps.clock.now().toISOString();
64
- const initReport = (await deps.store.list({ type: 'report' }))
65
- .filter((r) => r.status === 'active' && r.tags.includes('wolf-init'))
64
+ const initReport = (await deps.store.list({ type: 'note' }))
65
+ .filter((r) => r.status === 'active' && r.facet === 'history' && r.tags.includes('wolf-init'))
66
66
  .sort((a, b) => b.updated_at.localeCompare(a.updated_at))[0];
67
67
  const initTs = initReport ? initReport.created_at : now;
68
- const { object: thread } = await createWorkThread(deps, {
68
+ // P222: create-work-thread умер — единый add-путь (goal обязателен по декларации)
69
+ const { object: thread } = await addMemoryObject(deps, {
70
+ type: 'thread',
69
71
  title: BOOTSTRAP_THREAD_TITLE,
70
- goal: 'Collapse drafts and finish onboarding in dialogue with the user',
71
- currentState: `init ${initTs} ✓ (${initReport ? `report ${initReport.id}` : 'no report'}); ` +
72
- `bootstrap ${now}: drafts ${rules.length}, document-refs ${documents.length}`,
73
- nextSteps: rules.map((rule) => `${rule.id}: ${rule.title}`),
74
72
  createdBy: input.createdBy,
73
+ extra: {
74
+ goal: 'Collapse drafts and finish onboarding in dialogue with the user',
75
+ current_state: `init ${initTs} ✓ (${initReport ? `report ${initReport.id}` : 'no report'}); ` +
76
+ `bootstrap ${now}: drafts ${rules.length}, document-refs ${documents.length}`,
77
+ next_steps: rules.map((rule) => `${rule.id}: ${rule.title}`),
78
+ },
75
79
  });
76
80
  threadId = thread.id;
77
81
  }
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap-project.js","sourceRoot":"","sources":["../../../src/app/use-cases/bootstrap-project.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bootstrap-project.js","sourceRoot":"","sources":["../../../src/app/use-cases/bootstrap-project.ts"],"names":[],"mappings":"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"}
@@ -8,8 +8,9 @@ import type { EventLog } from '../../ports/event-log.port.js';
8
8
  import type { RelationLog } from '../../ports/relation-log.port.js';
9
9
  import type { Clock } from '../../ports/clock.port.js';
10
10
  import { type SignalEvent } from '../../adapters/fs/session-metrics-log.js';
11
+ import { type EconomyResult } from '../../domain/tool-economy.js';
11
12
  import type { RouterLogRow } from '../../domain/router-log.js';
12
- import type { PricingTable } from '../../domain/pricing.js';
13
+ import { type PricingTable, type RawTokens } from '../../domain/pricing.js';
13
14
  export interface LifecycleThresholds {
14
15
  newDays: number;
15
16
  workhorseUses: number;
@@ -336,6 +337,15 @@ export interface StewardView {
336
337
  recidivismCount: number;
337
338
  churnIds: string[];
338
339
  autoMutationSharePct: number | null;
340
+ /** 2.14 §7.4: затухание класса на каждый active-агрегат (метрика Т5). */
341
+ aggregationDecay: {
342
+ aggregateId: string;
343
+ sources: number;
344
+ lessonsBefore: number;
345
+ lessonsAfter: number;
346
+ complaintsBefore: number;
347
+ complaintsAfter: number;
348
+ }[];
339
349
  }
340
350
  export interface ExperimentReadiness {
341
351
  totalRuns: number;
@@ -462,6 +472,100 @@ export declare function parseSkillInvocations(text: string): {
462
472
  * Не падает на пустой памяти — все блоки возвращают нули/null/пустые массивы.
463
473
  */
464
474
  export declare function buildAnalyticsReport(deps: AnalyticsDeps, input: AnalyticsInput): Promise<AnalyticsReport>;
475
+ /** Пороги статусов панели (проценты). */
476
+ export interface EffectivenessThresholds {
477
+ noiseOk: number;
478
+ noiseWarn: number;
479
+ silentOk: number;
480
+ }
481
+ export declare const DEFAULT_EFFECTIVENESS_THRESHOLDS: EffectivenessThresholds;
482
+ /** M3: блок «Абсолюты» — из run-СИГНАЛОВ (rev.4), не из run-log. */
483
+ export interface TotalsBlock {
484
+ runs: number;
485
+ /** run-сигналы с outcome !== 'ok'. */
486
+ processFailures: number;
487
+ sumWeighted: number;
488
+ /** null = ни один run-сигнал не несёт tokens (до M1-данных). */
489
+ sumTokens: RawTokens | null;
490
+ /** cache_read/(input+cache_read)×100; null при sumTokens null или знаменателе 0. */
491
+ cacheHitRatio: number | null;
492
+ avgDurationMs: number | null;
493
+ costUsd: number | null;
494
+ byModel: Array<{
495
+ model: string;
496
+ runs: number;
497
+ processFailures: number;
498
+ sumWeighted: number;
499
+ avgDurationMs: number | null;
500
+ costUsd: number | null;
501
+ /** costUsd/(runs-processFailures); null если costUsd null или завершённых 0. */
502
+ costPerCompletedRun: number | null;
503
+ }>;
504
+ }
505
+ export type BlockStatus = 'OK' | 'WARN' | 'BAD' | 'NO_DATA';
506
+ /** Шум: null → NO_DATA; <noiseOk → OK; <=noiseWarn → WARN; иначе BAD. */
507
+ export declare function classifyNoise(share: number | null, t: EffectivenessThresholds): BlockStatus;
508
+ /** Молчащие правила: null → NO_DATA; <silentOk → OK; иначе BAD. */
509
+ export declare function classifySilent(share: number | null, t: EffectivenessThresholds): BlockStatus;
510
+ /** Override из config поверх дефолтов (E1.2); битые/чужие поля отбрасываются схемой. */
511
+ export declare function resolveThresholds(override?: Partial<EffectivenessThresholds>): EffectivenessThresholds;
512
+ export interface EffectivenessReport {
513
+ /** Блок 1: правила (информативный). prevented/checked — null при отсутствии holdout-данных (Ф22). */
514
+ rules: {
515
+ activeRules: number;
516
+ prevented: number | null;
517
+ checked: number | null;
518
+ };
519
+ /** Блок 2: инструменты (информационный). */
520
+ tools: {
521
+ toolCount: number;
522
+ totalUsage: number;
523
+ economy: EconomyResult;
524
+ };
525
+ /** Блок 3: доставка→срабатывание. */
526
+ delivery: {
527
+ deliveryEvents: number;
528
+ triggeredObjects: number;
529
+ activeRules: number;
530
+ silentRules: number;
531
+ /** false — окно молчания ещё не набралось (мало пробега), silentShare = null. */
532
+ enoughDeliveryData: boolean;
533
+ /** null — мало delivery-данных (окно silentRuleIds) или нет активных правил. */
534
+ silentShare: number | null;
535
+ };
536
+ /** Блок 4: шум памяти («пишется-но-не-читается»); documents — document-ref, исключённые из метрики; archived — вне метрики (строка панели). */
537
+ noise: {
538
+ totalObjects: number;
539
+ writeOnly: number;
540
+ share: number | null;
541
+ documents: number;
542
+ archived: number;
543
+ };
544
+ noiseStatus: BlockStatus;
545
+ silentStatus: BlockStatus;
546
+ /** Блок 5: роутинг по моделям (информационный); сортировка по tasks убыв. */
547
+ routing: Array<{
548
+ model: string;
549
+ tasks: number;
550
+ medianWeighted: number | null;
551
+ }>;
552
+ /** Блок 6 «Абсолюты» (M3). */
553
+ totals: TotalsBlock;
554
+ }
555
+ /**
556
+ * Пять блоков отчёта из одних портов: чистая агрегация, детерминированная.
557
+ * Не падает на пустой памяти — все блоки возвращают нули/null.
558
+ */
559
+ export declare function buildEffectivenessReport(deps: {
560
+ store: MemoryStore;
561
+ log: EventLog;
562
+ relations: RelationLog;
563
+ }, input: {
564
+ signals: SignalEvent[];
565
+ runLogText: string | null;
566
+ thresholds: EffectivenessThresholds;
567
+ pricing?: PricingTable;
568
+ }): Promise<EffectivenessReport>;
465
569
  export interface AnalyticsViewFilter {
466
570
  view: 'memory' | 'tools' | 'rules' | 'weeklyActivity' | 'agents' | 'steward' | 'outliers' | 'readiness' | 'councils' | 'coordination' | 'campaign' | 'delivery' | 'acceptance' | 'all';
467
571
  class?: 'new' | 'sleeper' | 'workhorse' | 'dead';