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