grimoire-kit 3.82.0__tar.gz → 3.84.0__tar.gz

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 (1156) hide show
  1. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/CHANGELOG.md +21 -0
  2. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/PKG-INFO +1 -1
  3. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/registry/kit-file-hashes.json +1 -1
  4. grimoire_kit-3.84.0/src/grimoire/__version__.py +1 -0
  5. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/app.py +2 -1
  6. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_cockpit.py +161 -162
  7. grimoire_kit-3.84.0/src/grimoire/cli/cmd_digest.py +69 -0
  8. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_task_waiting.py +19 -7
  9. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cockpit_http.py +48 -4
  10. grimoire_kit-3.84.0/src/grimoire/cli/cockpit_memory.py +54 -0
  11. grimoire_kit-3.84.0/src/grimoire/cli/cockpit_write_target.py +199 -0
  12. grimoire_kit-3.84.0/src/grimoire/core/ansi.py +29 -0
  13. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/flows/attestation.py +19 -2
  14. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/collect.py +17 -10
  15. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/decisions/human_turns.py +48 -0
  16. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/surface.py +79 -10
  17. grimoire_kit-3.84.0/src/grimoire/missions/digest.py +303 -0
  18. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/dispatch.py +5 -4
  19. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/human_acceptance.py +24 -2
  20. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/merger.py +6 -6
  21. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/proposals.py +1 -1
  22. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/project_registry.py +30 -0
  23. grimoire_kit-3.84.0/src/grimoire/tools/workspace_accept_merged.py +211 -0
  24. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_api.py +42 -7
  25. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_providers_write.py +8 -0
  26. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_pulse.py +37 -1
  27. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_read_cache.py +27 -4
  28. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_routes.py +94 -81
  29. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_work.py +50 -21
  30. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_write_guard.py +9 -2
  31. grimoire_kit-3.84.0/src/grimoire/traces/task_index.py +169 -0
  32. grimoire_kit-3.84.0/version.txt +1 -0
  33. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/workspace/README.md +70 -16
  34. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/workspace/api.js +171 -13
  35. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/workspace/chat.js +8 -2
  36. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/workspace/shell.css +42 -0
  37. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/workspace/shell.js +21 -19
  38. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/workspace/spaces/a-traiter.js +1 -1
  39. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/workspace/spaces/configurer.js +147 -1
  40. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/workspace/spaces/executer.js +106 -5
  41. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/workspace/spaces/memoire.js +46 -21
  42. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/workspace/spaces/task-create.js +8 -6
  43. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/workspace/spaces/task-intake.js +8 -2
  44. grimoire_kit-3.82.0/src/grimoire/__version__.py +0 -1
  45. grimoire_kit-3.82.0/version.txt +0 -1
  46. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/.gitignore +0 -0
  47. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/LICENSE +0 -0
  48. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/README.md +0 -0
  49. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/_grimoire/_config/custom/prompt-templates/README.md +0 -0
  50. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/archetypes/agentic-standard/archetype.dna.yaml +0 -0
  51. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/archetypes/agentic-standard/shared-context.tpl.md +0 -0
  52. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/archetypes/creative-studio/agents/blender-expert.md +0 -0
  53. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/archetypes/creative-studio/agents/brand-designer.md +0 -0
  54. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/archetypes/creative-studio/agents/illustration-expert.md +0 -0
  55. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/archetypes/creative-studio/archetype.dna.yaml +0 -0
  56. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/archetypes/creative-studio/shared-context.tpl.md +0 -0
  57. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/archetypes/creative-studio/skills/creative-content-copywriting.md +0 -0
  58. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/archetypes/features/vector-memory/vectus.md +0 -0
  59. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/archetypes/fix-loop/README.md +0 -0
  60. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/archetypes/fix-loop/agents/fix-loop-orchestrator.tpl.md +0 -0
  61. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/archetypes/fix-loop/archetype.dna.yaml +0 -0
  62. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/archetypes/fix-loop/workflows/workflow-closed-loop-fix.tpl.md +0 -0
  63. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/archetypes/infra-ops/agents/monitoring-specialist.md +0 -0
  64. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/archetypes/infra-ops/agents/ops-engineer.md +0 -0
  65. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/archetypes/infra-ops/agents/systems-debugger.md +0 -0
  66. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/archetypes/infra-ops/archetype.dna.yaml +0 -0
  67. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/archetypes/infra-ops/shared-context.tpl.md +0 -0
  68. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/archetypes/infra-ops/skills/infra-backup-dr.md +0 -0
  69. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/archetypes/infra-ops/skills/infra-k8s-gitops.md +0 -0
  70. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/archetypes/infra-ops/skills/infra-pipeline-cicd.md +0 -0
  71. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/archetypes/infra-ops/skills/infra-security-hardening.md +0 -0
  72. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/archetypes/meta/agents/agent-optimizer.md +0 -0
  73. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/archetypes/meta/agents/concierge.md +0 -0
  74. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/archetypes/meta/agents/security-auditor.md +0 -0
  75. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/archetypes/meta/archetype.dna.yaml +0 -0
  76. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/archetypes/meta/skills/meta-art-direction.md +0 -0
  77. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/archetypes/meta/skills/meta-memory-quality.md +0 -0
  78. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/archetypes/meta/skills/meta-project-navigation.md +0 -0
  79. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/archetypes/meta/skills/meta-toolsmithing.md +0 -0
  80. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/archetypes/meta/skills/upgrade-review.md +0 -0
  81. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/archetypes/minimal/agents/custom-agent.tpl.md +0 -0
  82. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/archetypes/minimal/archetype.dna.yaml +0 -0
  83. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/archetypes/platform-engineering/agents/backend-engineer.md +0 -0
  84. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/archetypes/platform-engineering/agents/platform-architect.md +0 -0
  85. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/archetypes/platform-engineering/archetype.dna.yaml +0 -0
  86. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/archetypes/platform-engineering/shared-context.tpl.md +0 -0
  87. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/archetypes/platform-engineering/skills/platform-deploy-release.md +0 -0
  88. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/archetypes/platform-engineering/skills/platform-reliability-sre.md +0 -0
  89. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/archetypes/platform-engineering/templates/architecture.tpl.md +0 -0
  90. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/archetypes/stack/agents/stack-engineer.md +0 -0
  91. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/archetypes/stack/archetype.dna.yaml +0 -0
  92. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/archetypes/stack/skills/stack-ansible.md +0 -0
  93. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/archetypes/stack/skills/stack-docker.md +0 -0
  94. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/archetypes/stack/skills/stack-go.md +0 -0
  95. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/archetypes/stack/skills/stack-k8s.md +0 -0
  96. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/archetypes/stack/skills/stack-python.md +0 -0
  97. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/archetypes/stack/skills/stack-terraform.md +0 -0
  98. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/archetypes/stack/skills/stack-typescript.md +0 -0
  99. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/archetypes/web-app/agents/fullstack-dev.md +0 -0
  100. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/archetypes/web-app/archetype.dna.yaml +0 -0
  101. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/archetypes/web-app/shared-context.tpl.md +0 -0
  102. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/archetypes/web-app/skills/web-frontend-ux.md +0 -0
  103. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/changelog.d/README.md +0 -0
  104. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/docs/assets/captures/i1/README.md +0 -0
  105. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/docs/assets/captures/p47/README.md +0 -0
  106. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/docs/captures/p42-correction/README.md +0 -0
  107. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/evals/README.md +0 -0
  108. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/evals/witnesses/README.md +0 -0
  109. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/evals/witnesses/web-app-todo/activated/README.md +0 -0
  110. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/evals/witnesses/web-app-todo/app/README.md +0 -0
  111. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/evals/witnesses/web-app-todo/app/web/index.html +0 -0
  112. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/evals/witnesses/web-app-todo/app/web/package-lock.json +0 -0
  113. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/evals/witnesses/web-app-todo/app/web/package.json +0 -0
  114. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/evals/witnesses/web-app-todo/app/web/src/App.tsx +0 -0
  115. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/evals/witnesses/web-app-todo/app/web/src/components/AddTaskForm.tsx +0 -0
  116. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/evals/witnesses/web-app-todo/app/web/src/components/TaskItem.tsx +0 -0
  117. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/evals/witnesses/web-app-todo/app/web/src/components/TaskList.tsx +0 -0
  118. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/evals/witnesses/web-app-todo/app/web/src/main.tsx +0 -0
  119. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/evals/witnesses/web-app-todo/app/web/src/styles.css +0 -0
  120. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/evals/witnesses/web-app-todo/app/web/src/test/AddTaskForm.test.tsx +0 -0
  121. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/evals/witnesses/web-app-todo/app/web/src/test/TaskList.test.tsx +0 -0
  122. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/evals/witnesses/web-app-todo/app/web/src/test/setup.ts +0 -0
  123. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/evals/witnesses/web-app-todo/app/web/src/types.ts +0 -0
  124. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/evals/witnesses/web-app-todo/app/web/tsconfig.json +0 -0
  125. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/evals/witnesses/web-app-todo/app/web/vite.config.ts +0 -0
  126. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/evals/witnesses/web-app-todo/enforced/README.md +0 -0
  127. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/examples/README.md +0 -0
  128. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/examples/blueprint-minimal/README.md +0 -0
  129. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/examples/blueprint-web-pipeline/README.md +0 -0
  130. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/examples/terraform-houseserver/README.md +0 -0
  131. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/examples/web-app-todo/README.md +0 -0
  132. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/extensions/README.md +0 -0
  133. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/extensions/autogen/artifacts/agents/autogen-conversation-runner.agent.md +0 -0
  134. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/extensions/autogen/artifacts/skills/autogen-conversation-design/SKILL.md +0 -0
  135. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/extensions/autogen/extension.json +0 -0
  136. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/extensions/autogen/scripts/verify-install.sh +0 -0
  137. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/extensions/browser-use/artifacts/agents/browser-use-runner.agent.md +0 -0
  138. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/extensions/browser-use/artifacts/instructions/browser-evidence.instructions.md +0 -0
  139. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/extensions/browser-use/extension.json +0 -0
  140. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/extensions/browser-use/scripts/verify-install.sh +0 -0
  141. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/extensions/crewai/artifacts/agents/crewai-crew-runner.agent.md +0 -0
  142. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/extensions/crewai/artifacts/hooks/crewai-telemetry-bridge.json +0 -0
  143. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/extensions/crewai/artifacts/hooks/crewai-telemetry-bridge.sh +0 -0
  144. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/extensions/crewai/artifacts/prompts/crewai-import-crew.prompt.md +0 -0
  145. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/extensions/crewai/artifacts/skills/crewai-crew-design/SKILL.md +0 -0
  146. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/extensions/crewai/extension.json +0 -0
  147. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/extensions/crewai/scripts/register-hooks.sh +0 -0
  148. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/extensions/crewai/scripts/unregister-hooks.sh +0 -0
  149. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/extensions/crewai/scripts/verify-install.sh +0 -0
  150. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/extensions/extension.schema.json +0 -0
  151. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/extensions/fennara-godot/artifacts/skills/godot-evidence-loop/SKILL.md +0 -0
  152. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/extensions/fennara-godot/extension.json +0 -0
  153. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/extensions/fennara-godot/scripts/setup-mcp.sh +0 -0
  154. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/extensions/fennara-godot/scripts/teardown-mcp.sh +0 -0
  155. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/extensions/fennara-godot/scripts/verify-install.sh +0 -0
  156. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/extensions/grimoire-mcp/artifacts/instructions/mcp-trust-gate.instructions.md +0 -0
  157. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/extensions/grimoire-mcp/artifacts/skills/grimoire-mcp-setup/SKILL.md +0 -0
  158. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/extensions/grimoire-mcp/extension.json +0 -0
  159. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/extensions/grimoire-mcp/scripts/verify-install.sh +0 -0
  160. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/extensions/haystack/artifacts/instructions/haystack-rag-governance.instructions.md +0 -0
  161. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/extensions/haystack/artifacts/skills/haystack-pipeline-design/SKILL.md +0 -0
  162. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/extensions/haystack/extension.json +0 -0
  163. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/extensions/haystack/scripts/verify-install.sh +0 -0
  164. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/extensions/langfuse/artifacts/hooks/langfuse-trace-export.json +0 -0
  165. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/extensions/langfuse/artifacts/hooks/langfuse-trace-export.sh +0 -0
  166. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/extensions/langfuse/artifacts/instructions/langfuse-observability.instructions.md +0 -0
  167. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/extensions/langfuse/artifacts/skills/langfuse-tracing-setup/SKILL.md +0 -0
  168. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/extensions/langfuse/extension.json +0 -0
  169. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/extensions/langfuse/scripts/register-hooks.sh +0 -0
  170. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/extensions/langfuse/scripts/unregister-hooks.sh +0 -0
  171. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/extensions/langfuse/scripts/verify-install.sh +0 -0
  172. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/extensions/langgraph/artifacts/agents/langgraph-graph-runner.agent.md +0 -0
  173. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/extensions/langgraph/artifacts/prompts/langgraph-import-graph.prompt.md +0 -0
  174. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/extensions/langgraph/artifacts/skills/langgraph-graph-design/SKILL.md +0 -0
  175. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/extensions/langgraph/extension.json +0 -0
  176. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/extensions/langgraph/scripts/verify-install.sh +0 -0
  177. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/FREEZE.md +0 -0
  178. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/agent-base-compact.md +0 -0
  179. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/agent-base.md +0 -0
  180. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/agent-mesh-network.md +0 -0
  181. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/agent-relationship-graph.md +0 -0
  182. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/agent-rules.md +0 -0
  183. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/agent2agent.md +0 -0
  184. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/agentic-industry-reference.md +0 -0
  185. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/agentic-standard/README.md +0 -0
  186. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/agentic-standard/capability-map.yaml +0 -0
  187. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/agentic-standard/needs-catalog.yaml +0 -0
  188. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/agentic-standard/profile-map.yaml +0 -0
  189. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/agentic-standard/target-schema.yaml +0 -0
  190. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/acceptance-record.md +0 -0
  191. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/accepted-risks.yaml +0 -0
  192. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/blast-radius-policy.yaml +0 -0
  193. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/browser-tool-contract.yaml +0 -0
  194. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/capability-registry.yaml +0 -0
  195. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/claim-ledger.md +0 -0
  196. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/cluster-action-policy.yaml +0 -0
  197. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/compliance-declaration.md +0 -0
  198. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/compliance-score.yaml +0 -0
  199. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/compression-gate.yaml +0 -0
  200. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/context-contract.yaml +0 -0
  201. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/cost-registry.yaml +0 -0
  202. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/decision-council.yaml +0 -0
  203. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/decision-graph.yaml +0 -0
  204. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/doc-graph-pipeline.yaml +0 -0
  205. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/environment-policy.yaml +0 -0
  206. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/evidence-gates.yaml +0 -0
  207. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/evidence-pack.md +0 -0
  208. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/flow-dsl-manifest.yaml +0 -0
  209. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/guardrail-contract.yaml +0 -0
  210. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/hook-registry.yaml +0 -0
  211. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/incident-registry.yaml +0 -0
  212. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/k8s-agent-manifest.yaml +0 -0
  213. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/knowledge-source-registry.yaml +0 -0
  214. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/llm-provider-registry.yaml +0 -0
  215. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/memory-integrity.yaml +0 -0
  216. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/memory-policy.yaml +0 -0
  217. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/merge-lane.yaml +0 -0
  218. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/mission-brief.md +0 -0
  219. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/observability-policy.yaml +0 -0
  220. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/orchestration-policy.yaml +0 -0
  221. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/pattern-catalog.yaml +0 -0
  222. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/privilege-boundary.yaml +0 -0
  223. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/prompt-firewall.yaml +0 -0
  224. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/prompt-version-log.yaml +0 -0
  225. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/remediation-plan.yaml +0 -0
  226. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/remote-hygiene.yaml +0 -0
  227. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/retention-registry.yaml +0 -0
  228. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/risk-control-matrix.yaml +0 -0
  229. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/rule-packs.yaml +0 -0
  230. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/runtime-provider-contract.yaml +0 -0
  231. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/runtime-surface-registry.yaml +0 -0
  232. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/task-board.yaml +0 -0
  233. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/task-envelope.md +0 -0
  234. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/tool-registry.yaml +0 -0
  235. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/visual-evidence.yaml +0 -0
  236. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/waivers.yaml +0 -0
  237. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/workflow-state-manifest.yaml +0 -0
  238. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/workspace-isolation.yaml +0 -0
  239. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/agentic-standard/traceability.yaml +0 -0
  240. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/archetype-dna.schema.yaml +0 -0
  241. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/cc-reference.md +0 -0
  242. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/cc-verify.sh +0 -0
  243. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/context-router.md +0 -0
  244. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/copilot/instructions/grimoire-project.instructions.md +0 -0
  245. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/copilot/prompts/grimoire-changelog.prompt.md +0 -0
  246. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/copilot/prompts/grimoire-dream.prompt.md +0 -0
  247. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/copilot/prompts/grimoire-health-check.prompt.md +0 -0
  248. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/copilot/prompts/grimoire-pre-push.prompt.md +0 -0
  249. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/copilot/prompts/grimoire-self-heal.prompt.md +0 -0
  250. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/copilot/prompts/grimoire-session-bootstrap.prompt.md +0 -0
  251. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/copilot/prompts/grimoire-status.prompt.md +0 -0
  252. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/copilot/prompts/grimoire-upgrade-review.prompt.md +0 -0
  253. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/copilot-extension/README.md +0 -0
  254. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/cross-validation-trust.md +0 -0
  255. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/delivery-contract.tpl.md +0 -0
  256. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/event-log-shared-state.md +0 -0
  257. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/expertises/skills/expertise-architecture-haut-niveau.md +0 -0
  258. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/expertises/skills/expertise-aws.md +0 -0
  259. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/expertises/skills/expertise-azure.md +0 -0
  260. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/expertises/skills/expertise-c.md +0 -0
  261. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/expertises/skills/expertise-cloudflare.md +0 -0
  262. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/expertises/skills/expertise-cpp.md +0 -0
  263. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/expertises/skills/expertise-csharp.md +0 -0
  264. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/expertises/skills/expertise-design-patterns.md +0 -0
  265. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/expertises/skills/expertise-elixir.md +0 -0
  266. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/expertises/skills/expertise-gcp.md +0 -0
  267. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/expertises/skills/expertise-hetzner.md +0 -0
  268. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/expertises/skills/expertise-java.md +0 -0
  269. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/expertises/skills/expertise-kotlin.md +0 -0
  270. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/expertises/skills/expertise-kubernetes-managed.md +0 -0
  271. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/expertises/skills/expertise-ovh.md +0 -0
  272. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/expertises/skills/expertise-performance.md +0 -0
  273. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/expertises/skills/expertise-php.md +0 -0
  274. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/expertises/skills/expertise-ruby.md +0 -0
  275. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/expertises/skills/expertise-rust.md +0 -0
  276. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/expertises/skills/expertise-scala.md +0 -0
  277. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/expertises/skills/expertise-scaleway.md +0 -0
  278. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/expertises/skills/expertise-securite-applicative.md +0 -0
  279. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/expertises/skills/expertise-swift.md +0 -0
  280. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/expertises/skills/expertise-systemes-bas-niveau.md +0 -0
  281. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/expertises/skills/expertise-testing-avancee.md +0 -0
  282. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/glossary.yaml +0 -0
  283. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/grimoire-trace.md +0 -0
  284. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/honest-uncertainty-protocol.md +0 -0
  285. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/hooks/.pre-commit-config.tpl.yaml +0 -0
  286. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/hooks/commit-msg.sh +0 -0
  287. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/hooks/mnemo-consolidate.sh +0 -0
  288. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/hooks/post-checkout.sh +0 -0
  289. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/hooks/post-commit.sh +0 -0
  290. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/hooks/pre-commit-cc.sh +0 -0
  291. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/hooks/pre-push.sh +0 -0
  292. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/hooks/prepare-commit-msg.sh +0 -0
  293. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/hosts/commands/grimoire-doctor.md +0 -0
  294. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/hosts/commands/grimoire-gate.md +0 -0
  295. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/hosts/commands/grimoire-proof.md +0 -0
  296. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/hosts/commands/grimoire-recall.md +0 -0
  297. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/hosts/commands/grimoire-verify.md +0 -0
  298. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/hosts/skills/grimoire-agent-dispatch.md +0 -0
  299. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/hosts/skills/grimoire-evidence.md +0 -0
  300. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/hosts/skills/grimoire-memory.md +0 -0
  301. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/hosts/skills/grimoire-steward.md +0 -0
  302. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/hybrid-parallelism-engine.md +0 -0
  303. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/mcp/grimoire-mcp-server.md +0 -0
  304. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/memory/.gitignore +0 -0
  305. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/memory/backends/__init__.py +0 -0
  306. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/memory/backends/backend_lexical.py +0 -0
  307. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/memory/backends/backend_local.py +0 -0
  308. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/memory/backends/backend_ollama.py +0 -0
  309. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/memory/backends/backend_qdrant_local.py +0 -0
  310. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/memory/backends/backend_qdrant_server.py +0 -0
  311. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/memory/contradiction-log.tpl.md +0 -0
  312. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/memory/dependency-graph.tpl.md +0 -0
  313. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/memory/docker-compose.memory-target.tpl.yml +0 -0
  314. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/memory/docker-compose.memory.tpl.yml +0 -0
  315. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/memory/failure-museum.tpl.md +0 -0
  316. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/memory/handoff-log.tpl.md +0 -0
  317. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/memory/k8s-qdrant.tpl.yaml +0 -0
  318. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/memory/maintenance.py +0 -0
  319. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/memory/mem0-bridge.py +0 -0
  320. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/memory/memory_seed.py +0 -0
  321. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/memory/network-topology.tpl.md +0 -0
  322. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/memory/oss-references.tpl.md +0 -0
  323. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/memory/requirements/requirements-minimal.txt +0 -0
  324. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/memory/requirements/requirements-ollama.txt +0 -0
  325. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/memory/requirements/requirements-qdrant.txt +0 -0
  326. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/memory/requirements.txt +0 -0
  327. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/memory/session-save.py +0 -0
  328. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/orchestrator-gateway.md +0 -0
  329. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/productive-conflict-engine.md +0 -0
  330. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/prompt-templates/README.md +0 -0
  331. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/prompt-templates/audit-report.md +0 -0
  332. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/prompt-templates/capacity-planning.md +0 -0
  333. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/prompt-templates/compliance-check.md +0 -0
  334. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/prompt-templates/dependency-updates.md +0 -0
  335. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/prompt-templates/design-tokens.md +0 -0
  336. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/prompt-templates/network-troubleshoot.md +0 -0
  337. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/prompt-templates/operational-mode.md +0 -0
  338. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/prompt-templates/periodic-report.md +0 -0
  339. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/prompt-templates/secret-rotation.md +0 -0
  340. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/prompt-templates/strategic-plan.md +0 -0
  341. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/prompt-templates/troubleshoot.md +0 -0
  342. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/question-escalation-chain.md +0 -0
  343. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/registry/README.md +0 -0
  344. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/selective-huddle-protocol.md +0 -0
  345. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/sessions/README.md +0 -0
  346. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/sil-collect.sh +0 -0
  347. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/tools/README.md +0 -0
  348. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/tools/adversarial-consensus.py +0 -0
  349. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/tools/agent-bench.py +0 -0
  350. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/tools/agent-caller.py +0 -0
  351. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/tools/agent-darwinism.py +0 -0
  352. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/tools/agent-debugger.py +0 -0
  353. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/tools/agent-forge.py +0 -0
  354. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/tools/agent-integrity.py +0 -0
  355. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/tools/agent-test.py +0 -0
  356. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/tools/agent-watch.py +0 -0
  357. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/tools/agent-worker.py +0 -0
  358. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/tools/antifragile-score.py +0 -0
  359. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/tools/auto-doc.py +0 -0
  360. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/tools/context-guard.py +0 -0
  361. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/tools/context-summarizer.py +0 -0
  362. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/tools/cross-migrate.py +0 -0
  363. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/tools/dep-check.py +0 -0
  364. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/tools/distill.py +0 -0
  365. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/tools/dna-evolve.py +0 -0
  366. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/tools/dream.py +0 -0
  367. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/tools/expert-tool-chain.py +0 -0
  368. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/tools/failure-museum.py +0 -0
  369. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/tools/gen-tests.py +0 -0
  370. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/tools/grimoire-completion.zsh +0 -0
  371. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/tools/grimoire-mcp-tools.py +0 -0
  372. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/tools/grimoire-setup.py +0 -0
  373. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/tools/image-prompt.py +0 -0
  374. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/tools/incubator.py +0 -0
  375. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/tools/llm-router.py +0 -0
  376. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/tools/memory-lint.py +0 -0
  377. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/tools/memory-sync.py +0 -0
  378. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/tools/message-bus.py +0 -0
  379. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/tools/nso.py +0 -0
  380. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/tools/observatory.py +0 -0
  381. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/tools/preflight-check.py +0 -0
  382. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/tools/quick-check.sh +0 -0
  383. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/tools/rag-indexer.py +0 -0
  384. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/tools/rag-retriever.py +0 -0
  385. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/tools/reasoning-stream.py +0 -0
  386. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/tools/schema-validator.py +0 -0
  387. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/tools/session-lifecycle.py +0 -0
  388. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/tools/stigmergy.py +0 -0
  389. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/tools/stigmergy_hooks/scripts/stigmergy-emit-post-edit.sh +0 -0
  390. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/tools/stigmergy_hooks/scripts/stigmergy-emit-stop.sh +0 -0
  391. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/tools/stigmergy_hooks/scripts/stigmergy-sense.sh +0 -0
  392. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/tools/stigmergy_hooks/scripts/stigmergy_hook.py +0 -0
  393. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/tools/stigmergy_hooks/stigmergy-emit.json +0 -0
  394. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/tools/stigmergy_hooks/stigmergy-sense.json +0 -0
  395. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/tools/swarm-consensus.py +0 -0
  396. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/tools/synapse-trace.py +0 -0
  397. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/tools/token-budget.py +0 -0
  398. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/tools/tool-registry.py +0 -0
  399. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/tools/tool-resolver.py +0 -0
  400. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/tools/vision-judge.py +0 -0
  401. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/tools/web-browser.py +0 -0
  402. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/workflows/boomerang-orchestration.md +0 -0
  403. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/workflows/github-cc-check.yml.tpl +0 -0
  404. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/workflows/incident-response.md +0 -0
  405. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/workflows/party-mode.md +0 -0
  406. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/workflows/repo-map-generator.md +0 -0
  407. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/workflows/state-checkpoint.md +0 -0
  408. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/workflows/subagent-orchestration.md +0 -0
  409. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/workflows/workflow-graph.tpl.yaml +0 -0
  410. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/framework/workflows/workflow-status.tpl.md +0 -0
  411. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/planning/README.md +0 -0
  412. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/pyproject.toml +0 -0
  413. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/registry/blueprints/README.md +0 -0
  414. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/registry/blueprints/project-upgrade.blueprint.json +0 -0
  415. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/registry/expertises.yaml +0 -0
  416. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/rust/grimoire-acp-core/pyproject.toml +0 -0
  417. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/rust/grimoire-dispatch-core/pyproject.toml +0 -0
  418. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/rust/grimoire-flows-core/pyproject.toml +0 -0
  419. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/rust/grimoire-hosts-core/pyproject.toml +0 -0
  420. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/rust/grimoire-policies-core/pyproject.toml +0 -0
  421. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/rust/grimoire-schema-core/pyproject.toml +0 -0
  422. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/rust/grimoire-traces-core/pyproject.toml +0 -0
  423. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/scripts/gen-site-data.py +0 -0
  424. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/__init__.py +0 -0
  425. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/__main__.py +0 -0
  426. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/acp/__init__.py +0 -0
  427. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/acp/client.py +0 -0
  428. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/acp/machine.py +0 -0
  429. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/archetypes/__init__.py +0 -0
  430. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/bridges/__init__.py +0 -0
  431. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/bridges/a2a_adapter.py +0 -0
  432. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/bridges/host.py +0 -0
  433. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/bridges/schemas.py +0 -0
  434. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/__init__.py +0 -0
  435. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/_condensed_help.py +0 -0
  436. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/_lazy.py +0 -0
  437. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/_lazy_extra.py +0 -0
  438. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/_registry_dispatches_report.py +0 -0
  439. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/_shared.py +0 -0
  440. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_agent.py +0 -0
  441. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_autonomy.py +0 -0
  442. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_blueprint.py +0 -0
  443. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_blueprint_import.py +0 -0
  444. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_cadrage.py +0 -0
  445. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_ceremony.py +0 -0
  446. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_chat.py +0 -0
  447. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_context_pack.py +0 -0
  448. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_debugger.py +0 -0
  449. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_dispatch.py +0 -0
  450. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_evidence.py +0 -0
  451. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_expertise.py +0 -0
  452. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_ext.py +0 -0
  453. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_features.py +0 -0
  454. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_flow.py +0 -0
  455. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_gates.py +0 -0
  456. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_hooks.py +0 -0
  457. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_host.py +0 -0
  458. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_idea.py +0 -0
  459. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_init.py +0 -0
  460. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_mcp.py +0 -0
  461. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_memory.py +0 -0
  462. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_memory_bundle.py +0 -0
  463. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_memory_gestures.py +0 -0
  464. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_memory_knowledge.py +0 -0
  465. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_memory_lexical.py +0 -0
  466. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_memory_ops.py +0 -0
  467. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_memory_packs.py +0 -0
  468. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_memory_projections.py +0 -0
  469. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_memory_rules.py +0 -0
  470. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_memory_shared.py +0 -0
  471. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_merge.py +0 -0
  472. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_migrate.py +0 -0
  473. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_mission.py +0 -0
  474. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_needs.py +0 -0
  475. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_onboard.py +0 -0
  476. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_orchestrate.py +0 -0
  477. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_phase.py +0 -0
  478. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_plans.py +0 -0
  479. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_policies.py +0 -0
  480. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_proposals.py +0 -0
  481. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_providers.py +0 -0
  482. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_queue.py +0 -0
  483. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_route.py +0 -0
  484. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_self_bundle.py +0 -0
  485. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_self_update.py +0 -0
  486. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_serve.py +0 -0
  487. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_setup.py +0 -0
  488. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_standard.py +0 -0
  489. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_standard_claims.py +0 -0
  490. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_steward.py +0 -0
  491. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_stigmergy.py +0 -0
  492. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_task.py +0 -0
  493. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_task_a2a.py +0 -0
  494. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_task_add.py +0 -0
  495. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_task_approve.py +0 -0
  496. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_task_import.py +0 -0
  497. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_task_portfolio.py +0 -0
  498. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_task_questions.py +0 -0
  499. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_task_review.py +0 -0
  500. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_task_usage.py +0 -0
  501. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_task_wave.py +0 -0
  502. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_task_worktree.py +0 -0
  503. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_team.py +0 -0
  504. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_up.py +0 -0
  505. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_up_prove.py +0 -0
  506. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_up_task_unification.py +0 -0
  507. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_upgrade.py +0 -0
  508. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_upgrade_flow.py +0 -0
  509. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_verify_install.py +0 -0
  510. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_web.py +0 -0
  511. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_workflows.py +0 -0
  512. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/doctor_acp.py +0 -0
  513. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/doctor_brake.py +0 -0
  514. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/doctor_hooks.py +0 -0
  515. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/doctor_instructions.py +0 -0
  516. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/doctor_mcp.py +0 -0
  517. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/doctor_memory.py +0 -0
  518. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/doctor_notify.py +0 -0
  519. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/doctor_skills.py +0 -0
  520. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/env_checks.py +0 -0
  521. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/init_memory.py +0 -0
  522. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/init_questions.py +0 -0
  523. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/cli/updater.py +0 -0
  524. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/codegraph/__init__.py +0 -0
  525. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/codegraph/backends/__init__.py +0 -0
  526. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/codegraph/backends/neo4j.py +0 -0
  527. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/codegraph/freshness.py +0 -0
  528. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/codegraph/graph.py +0 -0
  529. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/codegraph/parser.py +0 -0
  530. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/codegraph/schemas.py +0 -0
  531. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/__init__.py +0 -0
  532. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/agent_freshness.py +0 -0
  533. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/agentic_standard.py +0 -0
  534. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/archetype_resolver.py +0 -0
  535. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/cadrage.py +0 -0
  536. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/cadrage_requirements.py +0 -0
  537. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/claude_activation.py +0 -0
  538. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/command_line.py +0 -0
  539. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/config.py +0 -0
  540. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/console_encoding.py +0 -0
  541. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/context_bundle_memory.py +0 -0
  542. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/deprecation.py +0 -0
  543. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/error_codes.py +0 -0
  544. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/exceptions.py +0 -0
  545. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/execution_needs.py +0 -0
  546. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/expertises.py +0 -0
  547. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/fsio.py +0 -0
  548. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/grounding.py +0 -0
  549. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/integrity.py +0 -0
  550. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/kit_hashes.py +0 -0
  551. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/layered_rules.py +0 -0
  552. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/layout.py +0 -0
  553. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/learned_rules.py +0 -0
  554. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/log.py +0 -0
  555. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/merge.py +0 -0
  556. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/needs_suggest.py +0 -0
  557. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/onboarding_panel.py +0 -0
  558. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/override_drift.py +0 -0
  559. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/policy_budget_guard_check.py +0 -0
  560. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/profile_floor_doctor.py +0 -0
  561. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/project.py +0 -0
  562. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/project_capabilities.py +0 -0
  563. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/project_kind.py +0 -0
  564. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/project_types.py +0 -0
  565. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/request_memo.py +0 -0
  566. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/resolver.py +0 -0
  567. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/rule_resolution.py +0 -0
  568. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/safe_git.py +0 -0
  569. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/scaffold.py +0 -0
  570. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/scanner.py +0 -0
  571. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/schema.py +0 -0
  572. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/stack_pack_verifiers.py +0 -0
  573. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/stack_packs.py +0 -0
  574. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/stack_skills.py +0 -0
  575. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/standard_checks/__init__.py +0 -0
  576. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/standard_checks/acceptance_test_run.py +0 -0
  577. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/standard_checks/base.py +0 -0
  578. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/standard_checks/cadrage_ledger_check.py +0 -0
  579. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/standard_checks/claim_ledger_verify.py +0 -0
  580. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/standard_checks/claim_proof_resolve.py +0 -0
  581. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/standard_checks/controls.py +0 -0
  582. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/standard_checks/criterion_coverage.py +0 -0
  583. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/standard_checks/dispatch_cost_slo.py +0 -0
  584. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/standard_checks/evidence_chain.py +0 -0
  585. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/standard_checks/evidence_journal.py +0 -0
  586. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/standard_checks/evidence_resolve.py +0 -0
  587. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/standard_checks/gate_codegraph.py +0 -0
  588. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/standard_checks/gate_remedy.py +0 -0
  589. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/standard_checks/gate_review_checks.py +0 -0
  590. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/standard_checks/gate_test_run.py +0 -0
  591. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/standard_checks/hot_memory_check.py +0 -0
  592. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/standard_checks/no_tests_collected.py +0 -0
  593. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/standard_checks/observability_check.py +0 -0
  594. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/standard_checks/pattern_codes.py +0 -0
  595. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/standard_checks/plan_then_execute_check.py +0 -0
  596. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/standard_checks/registry.py +0 -0
  597. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/standard_checks/rules_check.py +0 -0
  598. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/standard_checks/runtime_journal_check.py +0 -0
  599. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/standard_checks/skills_check.py +0 -0
  600. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/standard_checks/tree_fingerprint.py +0 -0
  601. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/standard_checks/verifiers.py +0 -0
  602. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/standard_effective_profile.py +0 -0
  603. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/standard_generation.py +0 -0
  604. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/standard_profile_manifest.py +0 -0
  605. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/standard_state.py +0 -0
  606. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/standard_task_scaffold.py +0 -0
  607. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/standard_traceability.py +0 -0
  608. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/standard_upstream.py +0 -0
  609. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/task_board_ledger.py +0 -0
  610. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/task_unification_doctor.py +0 -0
  611. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/core/validator.py +0 -0
  612. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/costs.py +0 -0
  613. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/data/__init__.py +0 -0
  614. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/data/bench/longmemeval-sample.json +0 -0
  615. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/data/stack-packs/python.yaml +0 -0
  616. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/evidence/__init__.py +0 -0
  617. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/evidence/schemas.py +0 -0
  618. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/evidence/service.py +0 -0
  619. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/flows/__init__.py +0 -0
  620. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/flows/autonomy.py +0 -0
  621. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/flows/blueprint_loader.py +0 -0
  622. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/flows/directive.py +0 -0
  623. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/flows/dispatch_executor.py +0 -0
  624. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/flows/doctor.py +0 -0
  625. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/flows/engine.py +0 -0
  626. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/flows/executor.py +0 -0
  627. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/flows/extract.py +0 -0
  628. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/flows/fingerprint.py +0 -0
  629. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/flows/genres.py +0 -0
  630. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/flows/live_runs.py +0 -0
  631. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/flows/pilot.py +0 -0
  632. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/flows/registry.py +0 -0
  633. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/flows/schemas.py +0 -0
  634. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/flows/transfer.py +0 -0
  635. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/__init__.py +0 -0
  636. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/acp_hosts.py +0 -0
  637. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/capabilities.py +0 -0
  638. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/contract_probe.py +0 -0
  639. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/decisions/__init__.py +0 -0
  640. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/decisions/_shared.py +0 -0
  641. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/decisions/activation.py +0 -0
  642. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/decisions/authority_guard.py +0 -0
  643. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/decisions/calibration.py +0 -0
  644. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/decisions/chain_ack.py +0 -0
  645. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/decisions/context_capsule.py +0 -0
  646. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/decisions/done_gate.py +0 -0
  647. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/decisions/enrolment.py +0 -0
  648. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/decisions/event_trace.py +0 -0
  649. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/decisions/evidence_gate.py +0 -0
  650. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/decisions/evidence_trace.py +0 -0
  651. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/decisions/gate_override.py +0 -0
  652. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/decisions/gate_summary.py +0 -0
  653. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/decisions/instruction_scan.py +0 -0
  654. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/decisions/lease_brake.py +0 -0
  655. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/decisions/pause_brake.py +0 -0
  656. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/decisions/profile_floor.py +0 -0
  657. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/decisions/record.py +0 -0
  658. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/decisions/repetition_guard.py +0 -0
  659. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/decisions/self_view.py +0 -0
  660. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/decisions/session_memory.py +0 -0
  661. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/decisions/steering.py +0 -0
  662. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/decisions/subagent_gate.py +0 -0
  663. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/decisions/task_context.py +0 -0
  664. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/decisions/tool_facts.py +0 -0
  665. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/decisions/tool_policy.py +0 -0
  666. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/detection.py +0 -0
  667. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/emitters/__init__.py +0 -0
  668. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/emitters/base.py +0 -0
  669. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/emitters/claude_code.py +0 -0
  670. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/emitters/copilot.py +0 -0
  671. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/emitters/generic.py +0 -0
  672. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/emitters/opencode.py +0 -0
  673. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/emitters/rules.py +0 -0
  674. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/events.py +0 -0
  675. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/hook_launcher.py +0 -0
  676. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/host_version.py +0 -0
  677. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/matrix.py +0 -0
  678. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/probe.py +0 -0
  679. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/runtime.py +0 -0
  680. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/secrets.py +0 -0
  681. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/skill_spec.py +0 -0
  682. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/sync.py +0 -0
  683. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/mcp/__init__.py +0 -0
  684. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/mcp/idea_tools.py +0 -0
  685. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/mcp/memory_gestures.py +0 -0
  686. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/mcp/project.py +0 -0
  687. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/mcp/server.py +0 -0
  688. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/memory/__init__.py +0 -0
  689. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/memory/architecture.py +0 -0
  690. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/memory/backends/__init__.py +0 -0
  691. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/memory/backends/_qdrant_mixin.py +0 -0
  692. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/memory/backends/base.py +0 -0
  693. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/memory/backends/lexical.py +0 -0
  694. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/memory/backends/local.py +0 -0
  695. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/memory/backends/mempalace.py +0 -0
  696. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/memory/backends/ollama.py +0 -0
  697. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/memory/backends/qdrant.py +0 -0
  698. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/memory/backends/tantivy_local.py +0 -0
  699. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/memory/backends/weaviate.py +0 -0
  700. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/memory/bundle.py +0 -0
  701. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/memory/chromadb_native_probe.py +0 -0
  702. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/memory/correction.py +0 -0
  703. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/memory/embedding.py +0 -0
  704. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/memory/gestures.py +0 -0
  705. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/memory/health_cache.py +0 -0
  706. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/memory/hot.py +0 -0
  707. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/memory/journal.py +0 -0
  708. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/memory/knowledge.py +0 -0
  709. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/memory/longmemeval.py +0 -0
  710. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/memory/manager.py +0 -0
  711. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/memory/migration.py +0 -0
  712. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/memory/neo4j_backfill.py +0 -0
  713. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/memory/neo4j_graph.py +0 -0
  714. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/memory/profiles.py +0 -0
  715. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/memory/projections.py +0 -0
  716. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/memory/reads_log.py +0 -0
  717. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/memory/retrieval.py +0 -0
  718. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/memory/shared.py +0 -0
  719. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/memory/sidecar.py +0 -0
  720. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/memory/split.py +0 -0
  721. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/memory/store_probe.py +0 -0
  722. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/memory/supersession.py +0 -0
  723. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/memory/taxonomy.py +0 -0
  724. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/memory/validation.py +0 -0
  725. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/__init__.py +0 -0
  726. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/admission.py +0 -0
  727. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/autopilot.py +0 -0
  728. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/board.py +0 -0
  729. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/breaker.py +0 -0
  730. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/cadrage_plan.py +0 -0
  731. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/ceremony.py +0 -0
  732. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/ceremony_budget.py +0 -0
  733. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/check_gate.py +0 -0
  734. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/ci_slots.py +0 -0
  735. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/decisions.py +0 -0
  736. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/declarative_evidence.py +0 -0
  737. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/diff_fingerprint.py +0 -0
  738. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/dispatch_advice.py +0 -0
  739. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/dispatch_history.py +0 -0
  740. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/dispatch_worktree.py +0 -0
  741. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/effects.py +0 -0
  742. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/empty_green.py +0 -0
  743. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/ended.py +0 -0
  744. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/external_merge.py +0 -0
  745. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/finition.py +0 -0
  746. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/gates.py +0 -0
  747. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/ideas.py +0 -0
  748. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/intake.py +0 -0
  749. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/intake_tasks.py +0 -0
  750. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/janitor.py +0 -0
  751. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/launcher.py +0 -0
  752. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/lease.py +0 -0
  753. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/ledger.py +0 -0
  754. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/ledger_append.py +0 -0
  755. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/ledger_files.py +0 -0
  756. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/ledger_links.py +0 -0
  757. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/ledger_rules.py +0 -0
  758. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/ledger_snapshot.py +0 -0
  759. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/ledger_views.py +0 -0
  760. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/liveness.py +0 -0
  761. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/mandate.py +0 -0
  762. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/manual_review.py +0 -0
  763. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/orchestrate.py +0 -0
  764. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/orchestrator_policy.py +0 -0
  765. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/orchestrator_session.py +0 -0
  766. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/pause.py +0 -0
  767. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/plan_import.py +0 -0
  768. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/plans_registry.py +0 -0
  769. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/prepush_fence.py +0 -0
  770. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/provider_failure.py +0 -0
  771. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/question_gestures.py +0 -0
  772. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/question_rounds.py +0 -0
  773. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/question_v2.py +0 -0
  774. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/questions.py +0 -0
  775. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/recall.py +0 -0
  776. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/reclaim.py +0 -0
  777. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/report.py +0 -0
  778. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/reservation.py +0 -0
  779. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/review_receipt.py +0 -0
  780. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/review_seal.py +0 -0
  781. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/review_verdict.py +0 -0
  782. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/reviewer.py +0 -0
  783. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/route_dispatch.py +0 -0
  784. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/route_report.py +0 -0
  785. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/router.py +0 -0
  786. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/routing_policy.py +0 -0
  787. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/schemas.py +0 -0
  788. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/service.py +0 -0
  789. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/session_link.py +0 -0
  790. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/task_flow_adapter.py +0 -0
  791. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/task_unification.py +0 -0
  792. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/task_worktree.py +0 -0
  793. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/team_units.py +0 -0
  794. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/timer.py +0 -0
  795. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/trace.py +0 -0
  796. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/usage_fold.py +0 -0
  797. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/verifiability.py +0 -0
  798. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/verify.py +0 -0
  799. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/waiting.py +0 -0
  800. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/wave_checkpoint.py +0 -0
  801. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/waves.py +0 -0
  802. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/missions/worker_provider.py +0 -0
  803. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/onboarding/__init__.py +0 -0
  804. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/onboarding/brownfield.py +0 -0
  805. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/onboarding/facts.py +0 -0
  806. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/onboarding/scan_js.py +0 -0
  807. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/onboarding/scan_manifests.py +0 -0
  808. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/onboarding/scan_python.py +0 -0
  809. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/policies/__init__.py +0 -0
  810. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/policies/engine.py +0 -0
  811. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/policies/rules_config.py +0 -0
  812. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/policies/schemas.py +0 -0
  813. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/policies/security.py +0 -0
  814. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/policies/session_state.py +0 -0
  815. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/policies/temporal.py +0 -0
  816. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/providers/__init__.py +0 -0
  817. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/providers/audit.py +0 -0
  818. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/providers/data_policy.py +0 -0
  819. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/providers/quota.py +0 -0
  820. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/providers/registry.py +0 -0
  821. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/providers/routing.py +0 -0
  822. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/providers/secrets.py +0 -0
  823. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/providers/state.py +0 -0
  824. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/py.typed +0 -0
  825. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/registry/__init__.py +0 -0
  826. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/registry/agents.py +0 -0
  827. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/registry/discovery.py +0 -0
  828. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/registry/local.py +0 -0
  829. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/repo_gates/__init__.py +0 -0
  830. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/runtime/__init__.py +0 -0
  831. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/runtime/adapter_base.py +0 -0
  832. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/runtime/crewai_adapter.py +0 -0
  833. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/runtime/gascity_converter.py +0 -0
  834. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/runtime/kernel.py +0 -0
  835. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/runtime/langgraph_adapter.py +0 -0
  836. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/runtime/recipes.py +0 -0
  837. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/runtime/schemas.py +0 -0
  838. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/steward/__init__.py +0 -0
  839. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/steward/project_map.py +0 -0
  840. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/steward/report.py +0 -0
  841. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/steward/sources.py +0 -0
  842. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/steward/verdicts.py +0 -0
  843. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/__init__.py +0 -0
  844. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/_common.py +0 -0
  845. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/agent_creation.py +0 -0
  846. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/blueprint_checkpoint.py +0 -0
  847. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/blueprint_context.py +0 -0
  848. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/blueprint_diff.py +0 -0
  849. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/blueprint_eval_runner.py +0 -0
  850. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/blueprint_evals.py +0 -0
  851. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/blueprint_gate.py +0 -0
  852. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/blueprint_primitives.py +0 -0
  853. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/blueprint_resilience.py +0 -0
  854. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/blueprint_scatter.py +0 -0
  855. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/blueprint_security.py +0 -0
  856. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/blueprint_telemetry.py +0 -0
  857. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/cockpit_registry_routes.py +0 -0
  858. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/context_pack.py +0 -0
  859. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/cost_model.py +0 -0
  860. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/ext_manager.py +0 -0
  861. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/features.py +0 -0
  862. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/flow_runs.py +0 -0
  863. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/forge_http.py +0 -0
  864. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/forge_routes.py +0 -0
  865. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/forge_server.py +0 -0
  866. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/handoff.py +0 -0
  867. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/harmony_check.py +0 -0
  868. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/install_receipt.py +0 -0
  869. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/install_trust.py +0 -0
  870. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/mcp_processes.py +0 -0
  871. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/memory_link.py +0 -0
  872. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/memory_lint.py +0 -0
  873. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/memory_setup.py +0 -0
  874. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/memory_vectors.py +0 -0
  875. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/model_windows.py +0 -0
  876. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/project_health.py +0 -0
  877. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/project_setup.py +0 -0
  878. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/project_update.py +0 -0
  879. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/project_upgrade.py +0 -0
  880. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/request_guard.py +0 -0
  881. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/serve_data.py +0 -0
  882. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/source_assist.py +0 -0
  883. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/stigmergy.py +0 -0
  884. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/stigmergy_hooks.py +0 -0
  885. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/untrusted.py +0 -0
  886. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/update_bundle.py +0 -0
  887. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/update_bundle_build.py +0 -0
  888. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/update_channels.py +0 -0
  889. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/upgrade_changes.py +0 -0
  890. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/upgrade_preview.py +0 -0
  891. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/view_cache.py +0 -0
  892. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_actions.py +0 -0
  893. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_attention.py +0 -0
  894. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_capacity.py +0 -0
  895. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_chat.py +0 -0
  896. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_chat_kanban.py +0 -0
  897. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_chat_pilot.py +0 -0
  898. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_config.py +0 -0
  899. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_exec.py +0 -0
  900. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_first_launch.py +0 -0
  901. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_graph.py +0 -0
  902. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_hygiene.py +0 -0
  903. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_ideas.py +0 -0
  904. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_knowledge.py +0 -0
  905. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_language.py +0 -0
  906. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_launch_apply.py +0 -0
  907. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_launch_preflight.py +0 -0
  908. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_legacy.py +0 -0
  909. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_machine.py +0 -0
  910. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_memory.py +0 -0
  911. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_memory_gestures.py +0 -0
  912. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_notify.py +0 -0
  913. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_portfolio.py +0 -0
  914. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_recall.py +0 -0
  915. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_reviews.py +0 -0
  916. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_session_feed.py +0 -0
  917. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_sessions.py +0 -0
  918. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_setup_guide.py +0 -0
  919. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_since.py +0 -0
  920. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_slots.py +0 -0
  921. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_task_gates.py +0 -0
  922. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/traces/__init__.py +0 -0
  923. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/traces/intervals.py +0 -0
  924. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/traces/ledger.py +0 -0
  925. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/traces/observatory_feed.py +0 -0
  926. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/traces/otel_conventions.py +0 -0
  927. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/traces/otlp.py +0 -0
  928. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/traces/runtime_spans.py +0 -0
  929. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/traces/schemas.py +0 -0
  930. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/traces/transcript_usage.py +0 -0
  931. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/workflows/__init__.py +0 -0
  932. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/src/grimoire/workflows/registry.py +0 -0
  933. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/DESIGN-BRIEF-memory.md +0 -0
  934. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/DESIGN-BRIEF-observability.md +0 -0
  935. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/DESIGN-REVIEW-2026-09.md +0 -0
  936. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/DESIGN-SPEC-workspace-2026-09.md +0 -0
  937. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/anatomy.html +0 -0
  938. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/atelier-nav.js +0 -0
  939. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/atelier.css +0 -0
  940. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/atelier.html +0 -0
  941. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/blueprint-onboarding.js +0 -0
  942. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/blueprints.html +0 -0
  943. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/bp2-assist.js +0 -0
  944. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/bp2-composer.js +0 -0
  945. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/bp2-core.js +0 -0
  946. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/bp2-cost.js +0 -0
  947. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/bp2-diff.js +0 -0
  948. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/bp2-docs.js +0 -0
  949. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/bp2-evals.js +0 -0
  950. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/bp2-lexicon.js +0 -0
  951. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/bp2-library.js +0 -0
  952. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/bp2-manual.js +0 -0
  953. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/bp2-sections.js +0 -0
  954. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/bp2-team.css +0 -0
  955. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/bp2-team.js +0 -0
  956. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/bp2-tour.js +0 -0
  957. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/bp2.css +0 -0
  958. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/data/activity.json +0 -0
  959. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/data/architecture.json +0 -0
  960. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/data/catalogue-export.json +0 -0
  961. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/data/extensions.json +0 -0
  962. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/data/insights.json +0 -0
  963. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/data/kit-coverage.json +0 -0
  964. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/data/memory.json +0 -0
  965. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/data/meta.json +0 -0
  966. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/data/observatory.json +0 -0
  967. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/data/projects/atlas-ops/activity.json +0 -0
  968. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/data/projects/atlas-ops/insights.json +0 -0
  969. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/data/projects/atlas-ops/memory.json +0 -0
  970. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/data/projects/atlas-ops/meta.json +0 -0
  971. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/data/projects/atlas-ops/observatory.json +0 -0
  972. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/data/projects/atlas-ops/taskboard.json +0 -0
  973. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/data/projects/grimoire-kit/activity.json +0 -0
  974. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/data/projects/grimoire-kit/insights.json +0 -0
  975. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/data/projects/grimoire-kit/memory.json +0 -0
  976. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/data/projects/grimoire-kit/meta.json +0 -0
  977. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/data/projects/grimoire-kit/observatory.json +0 -0
  978. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/data/projects/grimoire-kit/taskboard.json +0 -0
  979. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/data/projects/ledger-data/activity.json +0 -0
  980. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/data/projects/ledger-data/insights.json +0 -0
  981. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/data/projects/ledger-data/memory.json +0 -0
  982. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/data/projects/ledger-data/meta.json +0 -0
  983. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/data/projects/ledger-data/observatory.json +0 -0
  984. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/data/projects/ledger-data/taskboard.json +0 -0
  985. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/data/projects/sentinel-sec/activity.json +0 -0
  986. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/data/projects/sentinel-sec/insights.json +0 -0
  987. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/data/projects/sentinel-sec/memory.json +0 -0
  988. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/data/projects/sentinel-sec/meta.json +0 -0
  989. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/data/projects/sentinel-sec/observatory.json +0 -0
  990. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/data/projects/sentinel-sec/taskboard.json +0 -0
  991. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/data/projects.json +0 -0
  992. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/data/reels/cloture-refusee-puis-acceptee.html +0 -0
  993. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/data/reels/cloture-refusee-puis-acceptee.json +0 -0
  994. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/data/reels/decision-humaine-attestee.html +0 -0
  995. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/data/reels/decision-humaine-attestee.json +0 -0
  996. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/data/reels/index.json +0 -0
  997. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/data/reels/rappel-au-claim.html +0 -0
  998. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/data/reels/rappel-au-claim.json +0 -0
  999. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/data/reels/supersession.html +0 -0
  1000. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/data/reels/supersession.json +0 -0
  1001. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/data/reels/tri-v0-v1-v2.html +0 -0
  1002. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/data/reels/tri-v0-v1-v2.json +0 -0
  1003. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/data/taskboard.json +0 -0
  1004. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/demo.html +0 -0
  1005. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/design/workspace-2026-09/Concevoir.dc.html +0 -0
  1006. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/design/workspace-2026-09/ConcevoirClair.dc.html +0 -0
  1007. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/design/workspace-2026-09/Couleurs.dc.html +0 -0
  1008. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/design/workspace-2026-09/DAArdoise.dc.html +0 -0
  1009. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/design/workspace-2026-09/DAPapier.dc.html +0 -0
  1010. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/design/workspace-2026-09/DAStudio.dc.html +0 -0
  1011. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/design/workspace-2026-09/DirectionB.dc.html +0 -0
  1012. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/design/workspace-2026-09/DirectionC.dc.html +0 -0
  1013. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/design/workspace-2026-09/DirectionD.dc.html +0 -0
  1014. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/design/workspace-2026-09/Encre.dc.html +0 -0
  1015. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/design/workspace-2026-09/EncreClair.dc.html +0 -0
  1016. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/design/workspace-2026-09/Main.dc.html +0 -0
  1017. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/design/workspace-2026-09/Mecaniques.dc.html +0 -0
  1018. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/design/workspace-2026-09/Source.dc.html +0 -0
  1019. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/design/workspace-2026-09/canvas.json +0 -0
  1020. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/design/workspace-2026-09/captures/concevoir-dark.jpg +0 -0
  1021. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/design/workspace-2026-09/captures/concevoir-light.jpg +0 -0
  1022. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/design/workspace-2026-09/captures/executer-dark.jpg +0 -0
  1023. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/design/workspace-2026-09/captures/executer-light.jpg +0 -0
  1024. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/design/workspace-2026-09/captures/memoire-dark.jpg +0 -0
  1025. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/design/workspace-2026-09/captures/memoire-light.jpg +0 -0
  1026. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/design/workspace-2026-09/captures/observer-dark.jpg +0 -0
  1027. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/design/workspace-2026-09/captures/observer-light.jpg +0 -0
  1028. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/design/workspace-2026-09/captures/piloter-dark.jpg +0 -0
  1029. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/design/workspace-2026-09/captures/piloter-light.jpg +0 -0
  1030. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/design/workspace-2026-09/captures/source-dark.jpg +0 -0
  1031. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/design/workspace-2026-09/captures/source-light.jpg +0 -0
  1032. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/design/workspace-2026-09/gen-couleurs.py +0 -0
  1033. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/design/workspace-2026-09/gen-skins.py +0 -0
  1034. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/design/workspace-2026-09/shell.tpl.html +0 -0
  1035. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/design-review-2026-09/01-cockpit-portefeuille-desktop.jpg +0 -0
  1036. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/design-review-2026-09/02-cockpit-portefeuille-full.jpg +0 -0
  1037. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/design-review-2026-09/03-cockpit-portefeuille-mobile.jpg +0 -0
  1038. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/design-review-2026-09/04-kanban-desktop.jpg +0 -0
  1039. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/design-review-2026-09/05-kanban-mobile.jpg +0 -0
  1040. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/design-review-2026-09/06-observatoire-desktop.jpg +0 -0
  1041. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/design-review-2026-09/07-observatoire-full.jpg +0 -0
  1042. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/design-review-2026-09/08-atelier-desktop.jpg +0 -0
  1043. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/design-review-2026-09/09-atelier-mobile.jpg +0 -0
  1044. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/design-review-2026-09/10-memoire-desktop.jpg +0 -0
  1045. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/design-review-2026-09/11-blueprints-desktop.jpg +0 -0
  1046. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/design-review-2026-09/12-extensions-desktop.jpg +0 -0
  1047. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/design-review-2026-09/13-patterns-desktop.jpg +0 -0
  1048. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/design-review-2026-09/14-cockpit-index-desktop.jpg +0 -0
  1049. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/design-review-2026-09/15-workspace-lot1-sombre-decouverte.png +0 -0
  1050. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/design-review-2026-09/16-workspace-lot1-clair-decouverte.png +0 -0
  1051. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/design-review-2026-09/17-workspace-lot1-sombre-concentration.png +0 -0
  1052. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/design-review-2026-09/18-workspace-lot1-clair-concentration.png +0 -0
  1053. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/documentation.html +0 -0
  1054. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/extensions.html +0 -0
  1055. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/fonts/Geist-Variable-latin.woff2 +0 -0
  1056. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/fonts/GeistMono-Variable-latin.woff2 +0 -0
  1057. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/fonts/JetBrainsMono-Regular.woff2 +0 -0
  1058. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/fonts/JetBrainsMono-SemiBold.woff2 +0 -0
  1059. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/fonts/OFL-instrument.txt +0 -0
  1060. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/fonts/OFL-jetbrains.txt +0 -0
  1061. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/fonts/OFL.txt +0 -0
  1062. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/fonts/fonts.css +0 -0
  1063. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/fonts/instrument-sans-400.woff2 +0 -0
  1064. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/fonts/instrument-sans-500.woff2 +0 -0
  1065. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/fonts/instrument-sans-600.woff2 +0 -0
  1066. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/forge-base.css +0 -0
  1067. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/forge-charts.css +0 -0
  1068. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/forge-landing.css +0 -0
  1069. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/forge-motion.css +0 -0
  1070. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/forge-motion.js +0 -0
  1071. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/forge-nav.js +0 -0
  1072. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/forge-observatory.js +0 -0
  1073. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/forge-tokens.css +0 -0
  1074. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/game-ui.html +0 -0
  1075. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/grimoire-mode.js +0 -0
  1076. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/index.html +0 -0
  1077. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/kanban.html +0 -0
  1078. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/labs.html +0 -0
  1079. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/media/capture-reelle.png +0 -0
  1080. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/media/teaser-720.mp4 +0 -0
  1081. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/media/teaser-poster.jpg +0 -0
  1082. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/memory.html +0 -0
  1083. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/observability.html +0 -0
  1084. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/patterns.html +0 -0
  1085. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/portfolio.html +0 -0
  1086. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/project-picker.js +0 -0
  1087. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/teaser/.gitignore +0 -0
  1088. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/teaser/README.md +0 -0
  1089. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/teaser/audio4.py +0 -0
  1090. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/teaser/build4.py +0 -0
  1091. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/teaser/clips.json +0 -0
  1092. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/teaser/cues.json +0 -0
  1093. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/teaser/cues.mjs +0 -0
  1094. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/teaser/detect_green.py +0 -0
  1095. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/teaser/fonts/JetBrainsMono-Regular.woff2 +0 -0
  1096. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/teaser/fonts/JetBrainsMono-SemiBold.woff2 +0 -0
  1097. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/teaser/fonts/OFL-InstrumentSans.txt +0 -0
  1098. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/teaser/fonts/OFL-JetBrainsMono.txt +0 -0
  1099. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/teaser/fonts/instrument-sans-400.woff2 +0 -0
  1100. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/teaser/fonts/instrument-sans-500.woff2 +0 -0
  1101. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/teaser/fonts/instrument-sans-600.woff2 +0 -0
  1102. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/teaser/footage-sources.json +0 -0
  1103. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/teaser/icons/board.svg +0 -0
  1104. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/teaser/icons/fleet.svg +0 -0
  1105. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/teaser/icons/inbox.svg +0 -0
  1106. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/teaser/icons/pr.svg +0 -0
  1107. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/teaser/icons/sliders.svg +0 -0
  1108. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/teaser/icons/tag.svg +0 -0
  1109. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/teaser/master.sh +0 -0
  1110. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/teaser/prep_footage.py +0 -0
  1111. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/teaser/render.mjs +0 -0
  1112. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/teaser/scene4.tpl.html +0 -0
  1113. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/teaser/screens.json +0 -0
  1114. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/teaser/shots.mjs +0 -0
  1115. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/teaser/storyboard.py +0 -0
  1116. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/teaser/terminal.json +0 -0
  1117. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/tools/check-links.py +0 -0
  1118. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/workspace/activity.js +0 -0
  1119. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/workspace/fonts/GeistMono-Medium.woff2 +0 -0
  1120. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/workspace/fonts/GeistMono-Regular.woff2 +0 -0
  1121. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/workspace/fonts/InstrumentSans-Variable.woff2 +0 -0
  1122. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/workspace/fonts/OFL-InstrumentSans.txt +0 -0
  1123. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/workspace/fonts/OFL.txt +0 -0
  1124. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/workspace/glossary.js +0 -0
  1125. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/workspace/icons/NOTICE +0 -0
  1126. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/workspace/icons.svg +0 -0
  1127. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/workspace/index.html +0 -0
  1128. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/workspace/live.js +0 -0
  1129. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/workspace/markdown.js +0 -0
  1130. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/workspace/notify.js +0 -0
  1131. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/workspace/score.js +0 -0
  1132. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/workspace/setup-state.js +0 -0
  1133. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/workspace/spaces/a-traiter-group.js +0 -0
  1134. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/workspace/spaces/a-traiter-since.js +0 -0
  1135. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/workspace/spaces/board-split.js +0 -0
  1136. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/workspace/spaces/capacite.js +0 -0
  1137. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/workspace/spaces/carte-worker.js +0 -0
  1138. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/workspace/spaces/carte.js +0 -0
  1139. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/workspace/spaces/code-projection.js +0 -0
  1140. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/workspace/spaces/concevoir.js +0 -0
  1141. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/workspace/spaces/decision-card.js +0 -0
  1142. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/workspace/spaces/demarrer.js +0 -0
  1143. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/workspace/spaces/donnees.js +0 -0
  1144. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/workspace/spaces/memoire-gestes.js +0 -0
  1145. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/workspace/spaces/observer.js +0 -0
  1146. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/workspace/spaces/piloter.js +0 -0
  1147. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/workspace/spaces/rappel.js +0 -0
  1148. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/workspace/spaces/recall-receipt.js +0 -0
  1149. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/workspace/spaces/registre.js +0 -0
  1150. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/workspace/spaces/revue.js +0 -0
  1151. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/workspace/spaces/sante.js +0 -0
  1152. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/workspace/spaces/sessions.js +0 -0
  1153. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/workspace/spaces/source-editor.js +0 -0
  1154. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/workspace/spaces/source.css +0 -0
  1155. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/workspace/spaces/source.js +0 -0
  1156. {grimoire_kit-3.82.0 → grimoire_kit-3.84.0}/web/workspace/tokens.css +0 -0
@@ -7,6 +7,27 @@ et ce projet adhère au [Semantic Versioning](https://semver.org/lang/fr/).
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [3.84.0] - 2026-11-12
11
+
12
+ - feat(cockpit): tout accepter les tâches fusionnées en un geste (#1186)
13
+ - feat(cockpit): mandat, pilote et fournisseurs de n'importe quel projet (lot 3) (#1187)
14
+ - feat(cockpit): un projet par onglet, chat compris (lot 4) (#1188)
15
+
16
+ ## [3.83.0] - 2026-11-08
17
+
18
+ - perf(cockpit): la lecture du journal de session qui nourrit le payload `work` est bornée à 1 Mio par passe (1,9 s → 188 ms sur cinq journaux de 20 Mo), et la palette de la coque demande `annotations=0` pour que le montage de la Flotte ne paie plus jamais cette lecture (#1010) (#1171)
19
+ - fix(missions): `task accept` lit le pack de preuve dans le worktree de la tâche, sans `--evidence-root`, et la question du merger donne la commande complète (#1169) (#1181)
20
+ - fix(hosts): deux personas au même faisceau (outils, contexte, skills) restent distinctes quand leur corps (fiche) diffère — le refus « même faisceau et même fiche » ne frappe plus que des définitions réellement identiques (corps normalisé, ou description à défaut de corps) (#1180) (#1182)
21
+ - fix(flows): un réveil programmé, une notification de tâche de fond ou un `claude -p` n'attestent plus un geste humain ; l'origine du tour est lue dans le journal de session de l'hôte par `prompt_id` (#992) (#1172)
22
+ - feat(cockpit): écrire sur n'importe quel projet enrôlé depuis un seul cockpit (lot 1) (#1178)
23
+ - feat(cockpit): gestes sensibles sur un autre projet avec confirmation nommée (lot 2) (#1184)
24
+ - feat(cli): `grimoire digest` résume un fichier ou stdin par le fournisseur `chat`/`cheap` le moins cher (local préféré), découpe les textes longs et cite les lignes d'erreur mot pour mot ; les séquences ANSI (CSI/OSC) sont retirées de toute sortie de fournisseur, y compris pour `task dispatch`. (#1174)
25
+ - perf(cockpit): les digests des fichiers de l'espace Source sont mémoïsés par `(mtime_ns, taille)` — seule une modification recalcule son empreinte (#1175)
26
+ - perf(cockpit): le cache de lecture sert aussi l'ouverture de page — `tasks`, `attention`, `sessions` et `sheet` sont servis depuis le cache sans `pulse_reload`, l'empreinte du pouls couvre désormais `traces.jsonl` et les journaux écrits hors cockpit (tick, flows, preuves, reçus de revue), et ces routes JSON répondent `304` sur `If-None-Match` (#1176)
27
+ - fix(cockpit): le refus d'une porte reste affiché — le pouls ne reconstruit plus l'inspecteur pendant une écriture en vol, sinon le refus partait dans un bloc déjà détaché et la page ne montrait rien (#1176)
28
+ - fix(cockpit): une ouverture de page ne se dessine qu'une fois — la réponse de la boîte à idées ne relance plus un dessin complet quand la liste n'a pas changé (le tableau était reconstruit ~0,5 s après l'ouverture, faisait relire `tasks`/`sessions` et détachait le DOM sous les yeux de l'e2e mobile) (#1176)
29
+ - perf(cockpit): `/api/workspace/tasks` et `/api/workspace/attention` ne reparcourent plus les 11 Mo de `traces.jsonl` à chaque requête — un index incrémental par `task_id` garde le regroupement en mémoire, indexé par `(mtime_ns, size)`, ne consomme que les lignes complètes ajoutées, et reconstruit sur troncature ou changement d'inode. Mesuré le 2026-11-07 (`curl -w %{time_total}`, journal de 10,5 Mo / 11 658 lignes) : `tasks` de 0,54–0,85 s à 0,24–0,27 s, `attention` de 0,81–1,25 s à 0,26–0,59 s à chaud ; la chaîne de regroupement des traces passe de 0,240 s à 0,0002 s après un unique parse complet (GAO-perf-cockpit-001) (#1177)
30
+
10
31
  ## [3.82.0] - 2026-11-07
11
32
 
12
33
  ### Added
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: grimoire-kit
3
- Version: 3.82.0
3
+ Version: 3.84.0
4
4
  Summary: Dashboard, task board, project memory and evidence check for code you delegate to agents (Claude Code, Copilot).
5
5
  Project-URL: Homepage, https://github.com/Guilhem-Bonnet/Grimoire-kit
6
6
  Project-URL: Repository, https://github.com/Guilhem-Bonnet/Grimoire-kit
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schema": "grimoire-kit-file-hashes/v1",
3
- "generated_for": "3.82.0",
3
+ "generated_for": "3.84.0",
4
4
  "digests": {
5
5
  "002d1e68ce00769ee09d1e94f4af260b952837f7d1557080c2fd505216c23ac0": {
6
6
  "version": "3.11.2",
@@ -0,0 +1 @@
1
+ __version__ = "3.84.0"
@@ -1311,6 +1311,7 @@ LazyTyperGroup.configure(
1311
1311
  "up": LazyCommandSpec("grimoire.cli.cmd_up", "up", rich_help_panel="Project"),
1312
1312
  "chat": LazyCommandSpec("grimoire.cli.cmd_chat", "chat_command", rich_help_panel="Project"),
1313
1313
  "context-pack": LazyCommandSpec("grimoire.cli.cmd_context_pack", "context_pack_command", rich_help_panel="Data"),
1314
+ "digest": LazyCommandSpec("grimoire.cli.cmd_digest", "digest_command", rich_help_panel="Data"),
1314
1315
  "migrate": LazyCommandSpec("grimoire.cli.cmd_migrate", "migrate_command", rich_help_panel="Project"),
1315
1316
  "upgrade": LazyCommandSpec("grimoire.cli.cmd_upgrade", "upgrade_command", rich_help_panel="Utilities"),
1316
1317
  "verify-install": LazyCommandSpec("grimoire.cli.cmd_verify_install", "verify_install_command", rich_help_panel="Utilities"),
@@ -1322,7 +1323,7 @@ LazyTyperGroup.configure(
1322
1323
  # `LazyTyperGroup.configure`'s docstring for why this is needed.
1323
1324
  order=[
1324
1325
  "version", "init", "doctor", "status", "add", "remove", "agent-miss",
1325
- "validate", "lint", "update", "up", "context-pack", "migrate", "upgrade", "verify-install",
1326
+ "validate", "lint", "update", "up", "context-pack", "digest", "migrate", "upgrade", "verify-install",
1326
1327
  "serve", "diff", "schema", "check", "merge", "setup", "env", "history",
1327
1328
  "repair",
1328
1329
  "memory", "hooks", "cadrage", "phase", "debugger", "dbg", "registry", "workflows",
@@ -35,7 +35,32 @@ import typer
35
35
  from rich.console import Console
36
36
  from rich.table import Table
37
37
 
38
- from grimoire.cli.cockpit_http import DRAIN_LIMIT, CountingReader, gzip_body, serve_asset, warm_sheet
38
+ from grimoire.cli.cockpit_http import (
39
+ DRAIN_LIMIT,
40
+ CountingReader,
41
+ gzip_body,
42
+ send_json,
43
+ serve_asset,
44
+ warm_sheet,
45
+ )
46
+ from grimoire.cli.cockpit_memory import (
47
+ ALLOWED_ACTIONS,
48
+ MEMORY_TIMEOUT_S,
49
+ MUTATION_ACTIONS,
50
+ is_plain_argument,
51
+ )
52
+ from grimoire.cli.cockpit_write_target import (
53
+ body_confirms_slug,
54
+ body_mismatch_status,
55
+ enrolled_write_root,
56
+ explicit_query_slug,
57
+ journal_confirmation,
58
+ query_slug,
59
+ read_root,
60
+ sensitive_write_refusal,
61
+ unresolvable_status,
62
+ write_refusal_status,
63
+ )
39
64
  from grimoire.data import site_script, web_path
40
65
  from grimoire.tools.cockpit_registry_routes import REGISTRY_ROUTES, registry_post
41
66
  from grimoire.tools.project_registry import (
@@ -48,11 +73,11 @@ from grimoire.tools.project_registry import (
48
73
  projects_payload,
49
74
  read_state,
50
75
  register_project,
76
+ registered_root,
51
77
  registry_file,
52
78
  registry_home,
53
79
  resolve_within_allowed,
54
80
  save_registry,
55
- selected_slug,
56
81
  set_selected_slug,
57
82
  slug_for_path,
58
83
  state_file,
@@ -67,6 +92,7 @@ from grimoire.tools.request_guard import (
67
92
  new_session_token,
68
93
  )
69
94
  from grimoire.tools.workspace_legacy import legacy_redirect_target
95
+ from grimoire.tools.workspace_read_cache import cacheable_read
70
96
  from grimoire.tools.workspace_write_guard import cockpit_journal_path, guard_write
71
97
 
72
98
  cockpit_app = typer.Typer(
@@ -143,12 +169,11 @@ def _resolve_project_path(slug: str | None) -> Path | None:
143
169
  return Path(projects[0]["path"]) if projects else None
144
170
 
145
171
 
146
- # Slug du projet servi en direct par CE process (#351/#356) — distinct de
147
- # `selected_slug()` (la sélection courante, persistée au disque, qui dérive
148
- # librement dès que l'UI navigue vers un autre projet du registre). Réglé une
149
- # fois, avant `serve_forever()` (voir `_select_cwd_project`), jamais ensuite :
150
- # c'est ce qui garde l'écriture ouverte sur LE projet de lancement même après
151
- # une navigation Flotte, et fermée sur tout autre projet du registre.
172
+ # Slug du projet ouvert par défaut par CE process (#351/#356), figé au
173
+ # démarrage. Depuis le lot 1 (2026-11-07), il ne restreint plus les écritures
174
+ # (voir `cockpit_write_target`) ; il sert au repli de lecture (`home` de
175
+ # `/api/status`) et, depuis le lot 2, à distinguer le projet d'ouverture (geste
176
+ # historique) d'un autre projet enrôlé (confirmation nommée).
152
177
  _HOME_SLUG: str | None = None
153
178
 
154
179
  # Chemin du projet servi, figé au démarrage : la garde P02 compare des chemins,
@@ -187,13 +212,10 @@ def _project_api(proot: Path) -> Any:
187
212
  # Governance API (127.0.0.1 only): allowlisted ``grimoire memory`` reads, confirmed
188
213
  # mutations and correction gestures (P34), the last two on the served project only.
189
214
 
190
- _ALLOWED_ACTIONS: dict[str, list[str]] = {
191
- "status": [],
192
- "gate": ["--soft"],
193
- "search": [], # requires a query argument
194
- "list": [],
195
- "taxonomy": [],
196
- }
215
+ _LOCAL_HOSTS = frozenset({"127.0.0.1", "::1", "localhost"})
216
+
217
+ # Les actions mémoire (listes blanches, mutations, arguments sûrs) vivent dans
218
+ # ``grimoire.cli.cockpit_memory`` pour tenir le cliquet de taille de ce module.
197
219
 
198
220
 
199
221
  def _forget_live_reads() -> None:
@@ -203,40 +225,6 @@ def _forget_live_reads() -> None:
203
225
  workspace_read_cache.clear()
204
226
 
205
227
 
206
- @dataclass(frozen=True)
207
- class _Mutation:
208
- """A governed write action — runs only with explicit confirmation."""
209
-
210
- args: tuple[str, ...] = ()
211
- needs_id: bool = False
212
- subcommand: str | None = None # defaults to the action name
213
-
214
-
215
- # Each mutation maps to a real ``grimoire memory`` command and needs ``confirm: true``.
216
- _MUTATION_ACTIONS: dict[str, _Mutation] = {
217
- "gc": _Mutation(), # consolidate / compact the store
218
- "delete": _Mutation(args=("--yes",), needs_id=True), # remove one entry by id
219
- # resync the Weaviate / Neo4j projections from the source store (reindex, no loss)
220
- "sync": _Mutation(subcommand="gate", args=("--sync", "--soft")),
221
- }
222
- _LOCAL_HOSTS = frozenset({"127.0.0.1", "::1", "localhost"})
223
-
224
- # Longueur d'argument bornée : une requête n'a pas à pousser un roman dans argv.
225
- _MAX_ARGUMENT_LEN = 512
226
-
227
-
228
- def _is_plain_argument(value: str) -> bool:
229
- """Vrai si la valeur peut être passée à la CLI comme simple positionnel.
230
-
231
- Le dispatch n'utilise pas de shell, donc il n'y a pas d'injection de shell
232
- possible — mais une valeur commençant par ``-`` serait lue comme une option
233
- par la sous-commande. On refuse ce cas, les octets nuls et les longueurs
234
- déraisonnables, et on passe malgré tout les valeurs après ``--``.
235
- """
236
- return bool(value) and not value.startswith("-") and "\x00" not in value and len(value) <= _MAX_ARGUMENT_LEN
237
-
238
-
239
- _MEMORY_TIMEOUT_S = 30
240
228
  # CliRunner remplace ``sys.stdout``/``sys.stderr`` pour tout le processus : deux
241
229
  # invocations simultanées s'écraseraient la sortie. Ce verrou ne protège que cela
242
230
  # (pas le répertoire courant, jamais modifié).
@@ -273,7 +261,7 @@ def _run_memory_in_process(proot: Path, argv: list[str]) -> _CliResult:
273
261
 
274
262
  pool = ThreadPoolExecutor(max_workers=1)
275
263
  try:
276
- return pool.submit(_invoke_memory_cli, proot, argv).result(timeout=_MEMORY_TIMEOUT_S)
264
+ return pool.submit(_invoke_memory_cli, proot, argv).result(timeout=MEMORY_TIMEOUT_S)
277
265
  except FutureTimeout:
278
266
  raise TimeoutError from None
279
267
  finally:
@@ -362,6 +350,7 @@ class _CockpitHandler(SimpleHTTPRequestHandler):
362
350
  journal=cockpit_journal_path(),
363
351
  with_body=has_body(self.headers),
364
352
  peer=self.client_address[0],
353
+ project=self._explicit_query_slug() or None,
365
354
  )
366
355
  if refused:
367
356
  self._send_json(refused[0], {"ok": False, "error": refused[1]})
@@ -369,22 +358,16 @@ class _CockpitHandler(SimpleHTTPRequestHandler):
369
358
  return False
370
359
  return True
371
360
 
372
- def _send_json(self, code: int, payload: dict[str, object]) -> None:
373
- # Le corps de la requête est lu en entier avant la première ligne de
374
- # réponse (#857) ; la connexion est fermée après cette réponse
375
- # (``HTTP/1.0``), l'en-tête le dit au client, et le tampon est vidé
376
- # avant que ``finish`` ne ferme le socket.
377
- self._drain_unread_body()
378
- body = json.dumps(payload, separators=(",", ":")).encode("utf-8")
379
- self.send_response(code)
380
- self.send_header("Content-Type", "application/json; charset=utf-8")
381
- body = gzip_body(self, body)
382
- self.send_header("Content-Length", str(len(body)))
383
- if self.close_connection: # le client l'a demandé (ou l'erreur de requête l'impose) : on le dit
384
- self.send_header("Connection", "close")
385
- self.end_headers()
386
- self.wfile.write(body)
387
- self.wfile.flush()
361
+ def _journal_confirmation(self, route: str, project: str, confirm_project: str) -> bool:
362
+ """Lot 2 : le journal de la garde note le slug ET la confirmation nommée."""
363
+ error = journal_confirmation(self.command, route, project, confirm_project)
364
+ if error:
365
+ self._send_json(503, {"ok": False, "error": error})
366
+ return False
367
+ return True
368
+
369
+ def _send_json(self, code: int, payload: dict[str, object], *, etag: bool = False) -> None:
370
+ send_json(self, code, payload, etag=etag)
388
371
 
389
372
  def send_error(self, code: int, message: str | None = None, explain: str | None = None) -> None:
390
373
  # Même contrat pour les refus de ``http.server`` lui-même (501, 404
@@ -396,20 +379,24 @@ class _CockpitHandler(SimpleHTTPRequestHandler):
396
379
  # ── Lectures : registre + API projet, repli statique ──────────────────
397
380
 
398
381
  def _query_slug(self) -> str:
399
- """Projet visé par la requête : ``?project=`` explicite, sinon la sélection courante."""
400
- asked = parse_qs(urlparse(self.path).query).get("project", [""])[0]
401
- return asked or selected_slug()
402
-
403
- def _is_home_request(self) -> bool:
404
- """Vrai si la requête cible le projet servi en direct par ce process.
405
-
406
- `_HOME_SLUG` ne bouge jamais après le démarrage ; `_query_slug()` peut
407
- pointer ailleurs dès que l'UI navigue vers un autre projet du
408
- registre (carte Flotte, `?project=` explicite) — cette requête-là
409
- reste en lecture seule, comme toute navigation cockpit vers un projet
410
- qu'on ne fait que regarder (#356).
382
+ return query_slug(self.path)
383
+
384
+ def _explicit_query_slug(self) -> str:
385
+ return explicit_query_slug(self.path)
386
+
387
+ def _enrolled_write_root(self) -> Path | None:
388
+ return enrolled_write_root(self.path)
389
+
390
+ def _is_enrolled_write_target(self) -> bool:
391
+ """Vrai si l'écriture vise un projet enrôlé au dossier présent.
392
+
393
+ Remplace ``_is_home_request()`` : un slug absent de l'URL ou du
394
+ registre, ou un dossier disparu, ferme la porte (échec fermé).
411
395
  """
412
- return bool(_HOME_SLUG) and self._query_slug() == _HOME_SLUG
396
+ return self._enrolled_write_root() is not None
397
+
398
+ def _body_confirms_slug(self, body: Any) -> bool:
399
+ return body_confirms_slug(body, self.path)
413
400
 
414
401
  def _serve_static(self) -> None:
415
402
  """Fichier statique ; une page HTML reçoit le jeton de session."""
@@ -462,12 +449,20 @@ class _CockpitHandler(SimpleHTTPRequestHandler):
462
449
  except PermissionError as exc:
463
450
  self._send_json(403, {"ok": False, "error": str(exc)})
464
451
  return
465
- proot = _resolve_project_path(self._query_slug() or None)
452
+ if path == "/api/status":
453
+ readonly = unresolvable_status(self.path, _HOME_SLUG)
454
+ if readonly is not None:
455
+ self._send_json(200, readonly)
456
+ return
457
+ # Lot 4 : une lecture nomme son projet (`?project=<slug>`), résolu par
458
+ # le registre ; sans paramètre, le repli reste la sélection courante.
459
+ proot = read_root(self.path)
466
460
  if proot is None or not proot.is_dir():
467
461
  self._send_json(404, {"ok": False, "error": "projet inconnu"})
468
462
  return
469
463
  from grimoire.tools.workspace_routes import (
470
464
  CHAT_STREAM_PATH,
465
+ LIVE_ROUTES,
471
466
  STREAM_HEADERS,
472
467
  STREAM_PATH,
473
468
  chat_stream,
@@ -493,10 +488,11 @@ class _CockpitHandler(SimpleHTTPRequestHandler):
493
488
  except ConnectionError:
494
489
  pass # la page est partie : fin du flux, pas une panne
495
490
  return
491
+ query = parse_qs(urlparse(self.path).query)
496
492
  try:
497
493
  from grimoire.tools.forge_routes import API_GET_UNHANDLED, api_get
498
494
 
499
- payload = api_get(_project_api(proot), path, parse_qs(urlparse(self.path).query))
495
+ payload = api_get(_project_api(proot), path, query)
500
496
  except FileNotFoundError as exc:
501
497
  # Même traduction que l'atelier (``forge_http.py::do_GET``) et que
502
498
  # ``do_POST`` ci-dessous : un refus métier (tâche inconnue, chemin hors
@@ -544,21 +540,21 @@ class _CockpitHandler(SimpleHTTPRequestHandler):
544
540
  # Même forme de réponse que l'atelier : la charge utile brute, pour que
545
541
  # le même code de page fonctionne contre les deux serveurs. Seul
546
542
  # ``/api/status`` est enrichi, pour que l'UI sache si l'hôte accepte
547
- # des mutations. Depuis #356 ce n'est plus toujours faux : le projet
548
- # de lancement direct (``_HOME_SLUG``) les honore, exactement comme le
549
- # faisait l'ancien atelier avant que #351 ne l'y fasse succéder —
550
- # naviguer vers un AUTRE projet du registre reste en lecture seule.
551
- # ``home`` nomme ce projet ouvert (P31) : le bandeau de lecture seule
552
- # en tire le geste « Revenir à … », ``None`` si le cockpit n'en a pas.
543
+ # des mutations. Depuis le lot 1 de l'écriture multi-projets, TOUT
544
+ # projet enrôlé en accepte : ``readOnly`` ne veut plus dire « pas le
545
+ # projet d'ouverture » mais « projet absent du registre, ou dossier
546
+ # disparu » — la seule cible qu'une écriture ne peut pas résoudre.
547
+ # ``home`` nomme le projet ouvert par défaut (P31).
553
548
  if path == "/api/status" and isinstance(payload, dict):
549
+ slug = self._query_slug()
554
550
  payload = {
555
551
  **payload,
556
552
  "host": "cockpit",
557
- "readOnly": not self._is_home_request(),
558
- "project": self._query_slug(),
553
+ "readOnly": not slug or registered_root(slug=slug) is None,
554
+ "project": slug,
559
555
  "home": _HOME_SLUG or None,
560
556
  }
561
- self._send_json(200, payload)
557
+ self._send_json(200, payload, etag=cacheable_read(path, query, live_routes=LIVE_ROUTES))
562
558
 
563
559
  def do_POST(self) -> None: # http.server contract
564
560
  # P79 : toute écriture passée par le cockpit (tâche, agent, réglage…) peut changer ce que les lectures du direct
@@ -630,23 +626,22 @@ class _CockpitHandler(SimpleHTTPRequestHandler):
630
626
  # Le wizard exécute (issue #171) : `grimoire serve` n'est plus
631
627
  # qu'un alias déprécié de cette commande (#351), donc c'est ICI —
632
628
  # pas dans `forge_http.py` — que passe toute requête réelle du
633
- # navigateur. Même garde que la vue de travail juste en dessous :
634
- # seul le projet de lancement direct (`_HOME_SLUG`) accepte cette
635
- # écriture, regarder un AUTRE projet du registre reste en lecture
636
- # seule.
637
- if not self._is_home_request():
629
+ # navigateur. Depuis le lot 1 de l'écriture multi-projets, le
630
+ # projet visé doit être ENRÔLÉ (résolu par le registre seul), pas
631
+ # forcément celui que ce process a ouvert.
632
+ proot = self._enrolled_write_root()
633
+ if proot is None:
638
634
  self._send_json(403, {"ok": False, "error": "hôte en lecture seule"})
639
635
  return
640
- proot = _resolve_project_path(self._query_slug() or None)
641
- if proot is None or not proot.is_dir():
642
- self._send_json(404, {"ok": False, "error": "projet inconnu"})
643
- return
644
636
  try:
645
637
  length = int(self.headers.get("Content-Length", 0))
646
638
  body = json.loads(self.rfile.read(length) or b"{}") if length else {}
647
639
  except (ValueError, json.JSONDecodeError):
648
640
  self._send_json(400, {"ok": False, "error": "bad json"})
649
641
  return
642
+ if not self._body_confirms_slug(body):
643
+ self._send_json(403, {"ok": False, "error": "le projet du corps ne correspond pas à l'URL"})
644
+ return
650
645
  try:
651
646
  result = _project_api(proot).setup_plan(body)
652
647
  except ValueError as exc:
@@ -694,39 +689,28 @@ class _CockpitHandler(SimpleHTTPRequestHandler):
694
689
  return
695
690
  if path.startswith(WORKSPACE_PREFIX):
696
691
  # Écritures de la vue de travail (réclamer/réaliser une tâche,
697
- # écrire un fichier, créer un override, lancer une commande) :
698
- # l'ancien atelier les honorait, `cockpit serve` en a hérité sans
699
- # les câbler quand #351 a fait de lui le seul serveur restant —
700
- # même trouvaille que `--project-root` (d5047fc6), pour la même
701
- # raison : fusionner deux commandes ne devait pas couper une
702
- # capacité (#356). Restreint à `_HOME_SLUG` : le projet qu'on ne
703
- # fait que regarder via le registre reste en lecture seule —
704
- # SAUF décider une proposition (`is_proposal_decision`, #490) ou
705
- # migrer les tâches d'un board vers le Mission Ledger
706
- # (`is_registry_scoped_write`, #559 suite/#560) : ces deux
707
- # écritures-là ouvrent la même porte que
708
- # `POST /api/projects/update` juste au-dessus, parce que valider
709
- # ou refuser un artefact déjà proposé, ou migrer les tâches d'un
710
- # projet qu'on pilote depuis la flotte, sont les gestes explicites
711
- # et ponctuels que le cockpit existe pour rendre possible sur
712
- # toute la flotte, pas seulement sur le projet de lancement.
713
- # Chaque dérogation est nommée : le reste de `WORKSPACE_PREFIX`
714
- # (écrire un fichier, réclamer une tâche…) reste `_HOME_SLUG`
715
- # seulement.
692
+ # décider une proposition, migrer un board, écrire un fichier…).
693
+ # Lot 1 de l'écriture multi-projets : la cible est le projet
694
+ # ENRÔLÉ nommé par `?project=`, résolu par le registre seul — le
695
+ # cockpit peut donc écrire sur n'importe quel projet qu'il pilote,
696
+ # pas seulement sur celui qu'il a ouvert. Lot 2 : `file/write`,
697
+ # `file/override` et `command` suivent la même résolution, mais
698
+ # exigent `confirm_project` égal au slug visé dès que la cible
699
+ # n'est pas le projet d'ouverture (voir `is_sensitive_write`).
716
700
  from grimoire.tools.workspace_routes import (
717
701
  WORKSPACE_UNHANDLED,
718
- is_proposal_decision,
719
- is_registry_scoped_write,
702
+ is_sensitive_write,
720
703
  workspace_post,
721
704
  )
722
705
 
723
- registry_scoped = is_proposal_decision(path) or is_registry_scoped_write(path)
724
- if not registry_scoped and not self._is_home_request():
725
- self._send_json(403, {"ok": False, "error": "hôte en lecture seule"})
726
- return
727
- proot = _resolve_project_path(self._query_slug() or None)
728
- if proot is None or not proot.is_dir():
729
- self._send_json(404, {"ok": False, "error": "projet inconnu"})
706
+ # Lot 3 : les écritures d'autorité (mandat, pilote, fournisseurs)
707
+ # nomment leur projet dans le corps. Un slug d'URL non enrôlé est un
708
+ # 404, un corps qui contredit l'URL un 400 — les autres écritures
709
+ # gardent le refus générique « lecture seule » (403) du lot 1.
710
+ proot = self._enrolled_write_root()
711
+ if proot is None:
712
+ code, error = write_refusal_status(self.path)
713
+ self._send_json(code, {"ok": False, "error": error})
730
714
  return
731
715
  try:
732
716
  length = int(self.headers.get("Content-Length", 0))
@@ -734,6 +718,18 @@ class _CockpitHandler(SimpleHTTPRequestHandler):
734
718
  except (ValueError, json.JSONDecodeError):
735
719
  self._send_json(400, {"ok": False, "error": "bad json"})
736
720
  return
721
+ if not self._body_confirms_slug(body):
722
+ self._send_json(body_mismatch_status(path), {"ok": False, "error": "le projet du corps ne correspond pas à l'URL"})
723
+ return
724
+ slug = self._explicit_query_slug()
725
+ if is_sensitive_write(path):
726
+ refusal = sensitive_write_refusal(body, self.path, _HOME_SLUG)
727
+ if refusal:
728
+ self._send_json(403, {"ok": False, "error": refusal})
729
+ return
730
+ confirmed = str(body.get("confirm_project") or "").strip() if isinstance(body, dict) else ""
731
+ if not self._journal_confirmation(path, slug, confirmed):
732
+ return
737
733
 
738
734
  # Même traduction que l'atelier (``forge_http.py::do_POST``) : sans
739
735
  # elle, un refus métier (skill inconnu, agent introuvable, chemin
@@ -765,15 +761,12 @@ class _CockpitHandler(SimpleHTTPRequestHandler):
765
761
  # persiste la section `compiled` dans le blueprint d'origine
766
762
  # (voir sa docstring) : ce n'est pas un calcul comme
767
763
  # `/validate`/`/simulate` juste en dessous. Même garde que
768
- # `/api/setup` et `PUT` : seul le projet de lancement direct
769
- # (`_HOME_SLUG`) accepte cette écriture.
770
- if not self._is_home_request():
764
+ # `/api/setup` et `PUT` : le projet visé doit être enrôlé (lot 1
765
+ # de l'écriture multi-projets).
766
+ proot = self._enrolled_write_root()
767
+ if proot is None:
771
768
  self._send_json(403, {"ok": False, "error": "hôte en lecture seule"})
772
769
  return
773
- proot = _resolve_project_path(self._query_slug() or None)
774
- if proot is None or not proot.is_dir():
775
- self._send_json(404, {"ok": False, "error": "projet inconnu"})
776
- return
777
770
  try:
778
771
  length = int(self.headers.get("Content-Length", 0))
779
772
  body = json.loads(self.rfile.read(length) or b"{}") if length else {}
@@ -796,13 +789,12 @@ class _CockpitHandler(SimpleHTTPRequestHandler):
796
789
  # Calcul, pas écriture : `blueprint_lint`/`blueprint_simulate` ne
797
790
  # touchent jamais le disque (voir leurs docstrings — la simulation
798
791
  # « ne produit aucun effet »). Contrairement à `/compile` et `PUT`
799
- # ci-dessus, aucune garde `_HOME_SLUG` ici — Concevoir doit
800
- # pouvoir valider/simuler le projet déjà sélectionné sur le
801
- # cockpit, comme sur l'atelier (#356), y compris un projet du
802
- # registre qu'on ne fait que regarder. Vérifié par un test sur un
803
- # vrai handler (`test_cmd_cockpit_blueprint_writes.py`, #546),
804
- # pas seulement supposé sur la base de ce commentaire.
805
- proot = _resolve_project_path(self._query_slug() or None)
792
+ # ci-dessus, aucune résolution enrôlée obligatoire ici — la
793
+ # lecture reste ouverte à tout projet du registre, comme sur
794
+ # l'atelier (#356). Vérifié par un test sur un vrai handler
795
+ # (`test_cmd_cockpit_blueprint_writes.py`, #546), pas seulement
796
+ # supposé sur la base de ce commentaire.
797
+ proot = read_root(self.path)
806
798
  if proot is None or not proot.is_dir():
807
799
  self._send_json(404, {"ok": False, "error": "projet inconnu"})
808
800
  return
@@ -840,8 +832,8 @@ class _CockpitHandler(SimpleHTTPRequestHandler):
840
832
  self._send_json(400, {"ok": False, "error": "bad json"})
841
833
  return
842
834
  action = str(data.get("action", ""))
843
- is_read = action in _ALLOWED_ACTIONS
844
- is_mutation = action in _MUTATION_ACTIONS
835
+ is_read = action in ALLOWED_ACTIONS
836
+ is_mutation = action in MUTATION_ACTIONS
845
837
  gesture = action == "gesture" # P34 : aperçu puis application (workspace_memory_gestures)
846
838
  if not (is_read or is_mutation or gesture):
847
839
  self._send_json(400, {"ok": False, "error": f"action non autorisée: {action}"})
@@ -849,14 +841,22 @@ class _CockpitHandler(SimpleHTTPRequestHandler):
849
841
  if is_mutation and data.get("confirm") is not True:
850
842
  self._send_json(403, {"ok": False, "error": "confirmation explicite requise"})
851
843
  return
852
- proot = _resolve_project_path(str(data.get("project", "")) or None)
844
+ project_slug = str(data.get("project", "")).strip()
845
+ proot = _resolve_project_path(project_slug or None)
853
846
  if proot is None or not proot.is_dir():
854
847
  self._send_json(400, {"ok": False, "error": "projet inconnu"})
855
848
  return
856
849
  if (is_mutation or gesture) and not _is_served_project(proot):
857
- # P02 : delete/gc/sync et gestes n'agissent que sur le projet servi (échec fermé).
858
- self._send_json(403, {"ok": False, "error": "hôte en lecture seule"})
859
- return
850
+ # P02 : un geste de correction (aperçu/apply) reste réservé au
851
+ # projet servi. Lot 2 : une MUTATION mémoire (delete/gc/sync)
852
+ # accepte n'importe quel projet ENRÔLÉ, à condition que la
853
+ # personne l'ait nommé (`confirm_project` égal au slug visé).
854
+ confirmed = str(data.get("confirm_project") or "").strip()
855
+ if not is_mutation or not project_slug or confirmed != project_slug:
856
+ self._send_json(403, {"ok": False, "error": "hôte en lecture seule"})
857
+ return
858
+ if not self._journal_confirmation("/api/memory", project_slug, confirmed):
859
+ return
860
860
  if gesture:
861
861
  from grimoire.tools.workspace_memory_gestures import handle as memory_gesture
862
862
 
@@ -865,7 +865,7 @@ class _CockpitHandler(SimpleHTTPRequestHandler):
865
865
  subcmd = action
866
866
  values: list[str] = []
867
867
  if is_read:
868
- flags = list(_ALLOWED_ACTIONS[action])
868
+ flags = list(ALLOWED_ACTIONS[action])
869
869
  if action == "search":
870
870
  query = str(data.get("query", "")).strip()
871
871
  if not query:
@@ -873,7 +873,7 @@ class _CockpitHandler(SimpleHTTPRequestHandler):
873
873
  return
874
874
  values = [query]
875
875
  else:
876
- spec = _MUTATION_ACTIONS[action]
876
+ spec = MUTATION_ACTIONS[action]
877
877
  subcmd = spec.subcommand or action
878
878
  flags = list(spec.args)
879
879
  if spec.needs_id:
@@ -882,7 +882,7 @@ class _CockpitHandler(SimpleHTTPRequestHandler):
882
882
  self._send_json(400, {"ok": False, "error": "id d'entrée requis"})
883
883
  return
884
884
  values = [entry_id]
885
- if not all(_is_plain_argument(v) for v in values):
885
+ if not all(is_plain_argument(v) for v in values):
886
886
  self._send_json(400, {"ok": False, "error": "valeur d'argument refusée"})
887
887
  return
888
888
  # La commande est rejouée dans le processus, via l'application Typer :
@@ -912,9 +912,9 @@ class _CockpitHandler(SimpleHTTPRequestHandler):
912
912
  def do_PUT(self) -> None: # http.server contract
913
913
  """``PUT /api/blueprints/<id>`` — enregistrer un blueprint (issue #535).
914
914
 
915
- Même garde que ``/api/setup`` : seul le projet de lancement direct
916
- (``_HOME_SLUG``) accepte l'écriture (#356) ; sans ``do_PUT``,
917
- ``http.server`` répondait 501 avant toute garde.
915
+ Même garde que ``/api/setup`` : le projet visé doit être enrôlé (lot 1
916
+ de l'écriture multi-projets) ; sans ``do_PUT``, ``http.server``
917
+ répondait 501 avant toute garde.
918
918
  """
919
919
  if not self._guard_mutation():
920
920
  return
@@ -929,13 +929,10 @@ class _CockpitHandler(SimpleHTTPRequestHandler):
929
929
  if not path.startswith("/api/blueprints/"):
930
930
  self._send_json(404, {"ok": False, "error": "route inconnue"})
931
931
  return
932
- if not self._is_home_request():
932
+ proot = self._enrolled_write_root()
933
+ if proot is None:
933
934
  self._send_json(403, {"ok": False, "error": "hôte en lecture seule"})
934
935
  return
935
- proot = _resolve_project_path(self._query_slug() or None)
936
- if proot is None or not proot.is_dir():
937
- self._send_json(404, {"ok": False, "error": "projet inconnu"})
938
- return
939
936
  try:
940
937
  length = int(self.headers.get("Content-Length", 0))
941
938
  body = json.loads(self.rfile.read(length) or b"{}") if length else {}
@@ -1091,10 +1088,12 @@ def _select_cwd_project(root: Path | None = None) -> str | None:
1091
1088
  Renvoie un message à afficher quand le projet vient d'être enregistré, ou
1092
1089
  ``None`` si rien n'a changé.
1093
1090
 
1094
- Retient aussi ce slug dans ``_HOME_SLUG`` (#356) : c'est le seul projet
1095
- pour lequel *ce* process honorera une écriture, même après que l'UI ait
1096
- navigué ailleurs dans le registre — voir ``_CockpitHandler._is_home_request``.
1097
- Son chemin résolu va dans ``_HOME_PATH`` (garde P02).
1091
+ Retient aussi ce slug dans ``_HOME_SLUG`` : c'est le projet que le
1092
+ cockpit ouvre par défaut (``home`` de ``/api/status``) et celui qui garde
1093
+ le geste historique pour les écritures sensibles du lot 2 (``file/write``,
1094
+ ``command``, ``file/override``, mutations mémoire) ; un AUTRE projet
1095
+ enrôlé exige ``confirm_project``. Son chemin résolu va dans
1096
+ ``_HOME_PATH`` (garde P02 des gestes mémoire).
1098
1097
  """
1099
1098
  global _HOME_PATH, _HOME_SLUG
1100
1099
  if os.environ.get("GRIMOIRE_NO_COCKPIT"):