grimoire-kit 3.44.2__tar.gz → 3.46.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 (748) hide show
  1. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/CHANGELOG.md +180 -0
  2. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/PKG-INFO +4 -4
  3. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-industry-reference.md +28 -20
  4. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/pattern-catalog.yaml +1 -1
  5. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/pyproject.toml +16 -8
  6. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/registry/kit-file-hashes.json +9 -1
  7. grimoire_kit-3.46.0/rust/grimoire-traces-core/pyproject.toml +18 -0
  8. grimoire_kit-3.46.0/src/grimoire/__version__.py +1 -0
  9. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/cli/app.py +27 -1
  10. grimoire_kit-3.46.0/src/grimoire/cli/cmd_agent.py +70 -0
  11. grimoire_kit-3.46.0/src/grimoire/cli/cmd_dispatch.py +148 -0
  12. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/cli/cmd_flow.py +17 -2
  13. grimoire_kit-3.46.0/src/grimoire/cli/cmd_policies.py +164 -0
  14. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/cli/cmd_setup.py +50 -4
  15. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/cli/cmd_standard.py +4 -1
  16. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/cli/cmd_task.py +12 -3
  17. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/cli/cmd_up.py +33 -0
  18. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/cli/cmd_upgrade.py +51 -6
  19. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/core/config.py +44 -1
  20. grimoire_kit-3.46.0/src/grimoire/core/override_drift.py +327 -0
  21. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/core/standard_checks/registry.py +1 -0
  22. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/core/standard_checks/verifiers.py +130 -0
  23. grimoire_kit-3.46.0/src/grimoire/flows/blueprint_loader.py +290 -0
  24. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/flows/dispatch_executor.py +132 -5
  25. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/flows/schemas.py +75 -0
  26. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/hosts/collect.py +146 -9
  27. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/hosts/decisions/activation.py +28 -0
  28. grimoire_kit-3.46.0/src/grimoire/hosts/decisions/evidence_trace.py +62 -0
  29. grimoire_kit-3.46.0/src/grimoire/hosts/decisions/tool_policy.py +198 -0
  30. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/hosts/surface.py +17 -0
  31. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/mcp/server.py +14 -0
  32. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/missions/dispatch.py +324 -20
  33. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/missions/trace.py +114 -5
  34. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/missions/verifiability.py +24 -10
  35. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/policies/engine.py +17 -1
  36. grimoire_kit-3.46.0/src/grimoire/policies/rules_config.py +103 -0
  37. grimoire_kit-3.46.0/src/grimoire/policies/schemas.py +390 -0
  38. grimoire_kit-3.46.0/src/grimoire/policies/session_state.py +173 -0
  39. grimoire_kit-3.46.0/src/grimoire/policies/temporal.py +374 -0
  40. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/proposals.py +225 -28
  41. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/providers/audit.py +15 -5
  42. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/runtime/kernel.py +31 -1
  43. grimoire_kit-3.46.0/src/grimoire/tools/_common.py +187 -0
  44. grimoire_kit-3.46.0/src/grimoire/tools/source_assist.py +348 -0
  45. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/workspace_api.py +24 -17
  46. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/workspace_language.py +12 -0
  47. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/workspace_routes.py +64 -6
  48. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/traces/ledger.py +371 -9
  49. grimoire_kit-3.46.0/version.txt +1 -0
  50. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/kanban.html +4 -0
  51. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/workspace/README.md +5 -2
  52. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/workspace/api.js +10 -0
  53. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/workspace/spaces/executer.js +165 -11
  54. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/workspace/spaces/observer.js +23 -0
  55. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/workspace/spaces/source-editor.js +228 -3
  56. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/workspace/spaces/source.css +83 -0
  57. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/workspace/spaces/source.js +3 -1
  58. grimoire_kit-3.44.2/src/grimoire/__version__.py +0 -1
  59. grimoire_kit-3.44.2/src/grimoire/flows/blueprint_loader.py +0 -159
  60. grimoire_kit-3.44.2/src/grimoire/hosts/decisions/evidence_trace.py +0 -24
  61. grimoire_kit-3.44.2/src/grimoire/hosts/decisions/tool_policy.py +0 -118
  62. grimoire_kit-3.44.2/src/grimoire/policies/schemas.py +0 -208
  63. grimoire_kit-3.44.2/src/grimoire/tools/_common.py +0 -109
  64. grimoire_kit-3.44.2/version.txt +0 -1
  65. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/.gitignore +0 -0
  66. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/LICENSE +0 -0
  67. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/README.md +0 -0
  68. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/_grimoire/_config/custom/prompt-templates/README.md +0 -0
  69. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/agentic-standard/archetype.dna.yaml +0 -0
  70. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/agentic-standard/shared-context.tpl.md +0 -0
  71. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/creative-studio/agents/blender-expert.md +0 -0
  72. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/creative-studio/agents/brand-designer.md +0 -0
  73. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/creative-studio/agents/illustration-expert.md +0 -0
  74. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/creative-studio/archetype.dna.yaml +0 -0
  75. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/creative-studio/shared-context.tpl.md +0 -0
  76. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/creative-studio/skills/creative-content-copywriting.md +0 -0
  77. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/features/vector-memory/vectus.md +0 -0
  78. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/fix-loop/README.md +0 -0
  79. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/fix-loop/agents/fix-loop-orchestrator.tpl.md +0 -0
  80. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/fix-loop/archetype.dna.yaml +0 -0
  81. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/fix-loop/workflows/workflow-closed-loop-fix.tpl.md +0 -0
  82. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/infra-ops/agents/monitoring-specialist.md +0 -0
  83. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/infra-ops/agents/ops-engineer.md +0 -0
  84. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/infra-ops/agents/systems-debugger.md +0 -0
  85. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/infra-ops/archetype.dna.yaml +0 -0
  86. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/infra-ops/shared-context.tpl.md +0 -0
  87. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/infra-ops/skills/infra-backup-dr.md +0 -0
  88. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/infra-ops/skills/infra-k8s-gitops.md +0 -0
  89. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/infra-ops/skills/infra-pipeline-cicd.md +0 -0
  90. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/infra-ops/skills/infra-security-hardening.md +0 -0
  91. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/meta/agents/agent-optimizer.md +0 -0
  92. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/meta/agents/concierge.md +0 -0
  93. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/meta/agents/security-auditor.md +0 -0
  94. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/meta/archetype.dna.yaml +0 -0
  95. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/meta/skills/meta-art-direction.md +0 -0
  96. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/meta/skills/meta-memory-quality.md +0 -0
  97. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/meta/skills/meta-project-navigation.md +0 -0
  98. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/meta/skills/meta-toolsmithing.md +0 -0
  99. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/minimal/agents/custom-agent.tpl.md +0 -0
  100. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/minimal/archetype.dna.yaml +0 -0
  101. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/platform-engineering/agents/backend-engineer.md +0 -0
  102. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/platform-engineering/agents/platform-architect.md +0 -0
  103. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/platform-engineering/archetype.dna.yaml +0 -0
  104. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/platform-engineering/shared-context.tpl.md +0 -0
  105. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/platform-engineering/skills/platform-deploy-release.md +0 -0
  106. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/platform-engineering/skills/platform-reliability-sre.md +0 -0
  107. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/platform-engineering/templates/architecture.tpl.md +0 -0
  108. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/stack/agents/stack-engineer.md +0 -0
  109. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/stack/archetype.dna.yaml +0 -0
  110. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/stack/skills/stack-ansible.md +0 -0
  111. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/stack/skills/stack-docker.md +0 -0
  112. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/stack/skills/stack-go.md +0 -0
  113. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/stack/skills/stack-k8s.md +0 -0
  114. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/stack/skills/stack-python.md +0 -0
  115. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/stack/skills/stack-terraform.md +0 -0
  116. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/stack/skills/stack-typescript.md +0 -0
  117. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/web-app/agents/fullstack-dev.md +0 -0
  118. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/web-app/archetype.dna.yaml +0 -0
  119. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/web-app/shared-context.tpl.md +0 -0
  120. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/web-app/skills/web-frontend-ux.md +0 -0
  121. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/evals/README.md +0 -0
  122. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/evals/witnesses/README.md +0 -0
  123. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/evals/witnesses/web-app-todo/activated/README.md +0 -0
  124. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/evals/witnesses/web-app-todo/app/README.md +0 -0
  125. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/evals/witnesses/web-app-todo/app/web/index.html +0 -0
  126. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/evals/witnesses/web-app-todo/app/web/package-lock.json +0 -0
  127. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/evals/witnesses/web-app-todo/app/web/package.json +0 -0
  128. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/evals/witnesses/web-app-todo/app/web/src/App.tsx +0 -0
  129. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/evals/witnesses/web-app-todo/app/web/src/components/AddTaskForm.tsx +0 -0
  130. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/evals/witnesses/web-app-todo/app/web/src/components/TaskItem.tsx +0 -0
  131. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/evals/witnesses/web-app-todo/app/web/src/components/TaskList.tsx +0 -0
  132. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/evals/witnesses/web-app-todo/app/web/src/main.tsx +0 -0
  133. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/evals/witnesses/web-app-todo/app/web/src/styles.css +0 -0
  134. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/evals/witnesses/web-app-todo/app/web/src/test/AddTaskForm.test.tsx +0 -0
  135. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/evals/witnesses/web-app-todo/app/web/src/test/TaskList.test.tsx +0 -0
  136. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/evals/witnesses/web-app-todo/app/web/src/test/setup.ts +0 -0
  137. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/evals/witnesses/web-app-todo/app/web/src/types.ts +0 -0
  138. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/evals/witnesses/web-app-todo/app/web/tsconfig.json +0 -0
  139. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/evals/witnesses/web-app-todo/app/web/vite.config.ts +0 -0
  140. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/evals/witnesses/web-app-todo/enforced/README.md +0 -0
  141. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/examples/terraform-houseserver/README.md +0 -0
  142. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/examples/web-app-todo/README.md +0 -0
  143. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/README.md +0 -0
  144. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/autogen/artifacts/agents/autogen-conversation-runner.agent.md +0 -0
  145. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/autogen/artifacts/skills/autogen-conversation-design/SKILL.md +0 -0
  146. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/autogen/extension.json +0 -0
  147. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/autogen/scripts/verify-install.sh +0 -0
  148. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/browser-use/artifacts/agents/browser-use-runner.agent.md +0 -0
  149. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/browser-use/artifacts/instructions/browser-evidence.instructions.md +0 -0
  150. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/browser-use/extension.json +0 -0
  151. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/browser-use/scripts/verify-install.sh +0 -0
  152. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/crewai/artifacts/agents/crewai-crew-runner.agent.md +0 -0
  153. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/crewai/artifacts/hooks/crewai-telemetry-bridge.json +0 -0
  154. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/crewai/artifacts/hooks/crewai-telemetry-bridge.sh +0 -0
  155. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/crewai/artifacts/prompts/crewai-import-crew.prompt.md +0 -0
  156. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/crewai/artifacts/skills/crewai-crew-design/SKILL.md +0 -0
  157. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/crewai/extension.json +0 -0
  158. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/crewai/scripts/register-hooks.sh +0 -0
  159. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/crewai/scripts/unregister-hooks.sh +0 -0
  160. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/crewai/scripts/verify-install.sh +0 -0
  161. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/extension.schema.json +0 -0
  162. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/fennara-godot/artifacts/skills/godot-evidence-loop/SKILL.md +0 -0
  163. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/fennara-godot/extension.json +0 -0
  164. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/fennara-godot/scripts/setup-mcp.sh +0 -0
  165. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/fennara-godot/scripts/teardown-mcp.sh +0 -0
  166. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/fennara-godot/scripts/verify-install.sh +0 -0
  167. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/grimoire-mcp/artifacts/instructions/mcp-trust-gate.instructions.md +0 -0
  168. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/grimoire-mcp/artifacts/skills/grimoire-mcp-setup/SKILL.md +0 -0
  169. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/grimoire-mcp/extension.json +0 -0
  170. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/grimoire-mcp/scripts/verify-install.sh +0 -0
  171. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/haystack/artifacts/instructions/haystack-rag-governance.instructions.md +0 -0
  172. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/haystack/artifacts/skills/haystack-pipeline-design/SKILL.md +0 -0
  173. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/haystack/extension.json +0 -0
  174. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/haystack/scripts/verify-install.sh +0 -0
  175. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/langfuse/artifacts/hooks/langfuse-trace-export.json +0 -0
  176. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/langfuse/artifacts/hooks/langfuse-trace-export.sh +0 -0
  177. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/langfuse/artifacts/instructions/langfuse-observability.instructions.md +0 -0
  178. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/langfuse/artifacts/skills/langfuse-tracing-setup/SKILL.md +0 -0
  179. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/langfuse/extension.json +0 -0
  180. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/langfuse/scripts/register-hooks.sh +0 -0
  181. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/langfuse/scripts/unregister-hooks.sh +0 -0
  182. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/langfuse/scripts/verify-install.sh +0 -0
  183. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/langgraph/artifacts/agents/langgraph-graph-runner.agent.md +0 -0
  184. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/langgraph/artifacts/prompts/langgraph-import-graph.prompt.md +0 -0
  185. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/langgraph/artifacts/skills/langgraph-graph-design/SKILL.md +0 -0
  186. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/langgraph/extension.json +0 -0
  187. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/langgraph/scripts/verify-install.sh +0 -0
  188. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/FREEZE.md +0 -0
  189. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agent-base-compact.md +0 -0
  190. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agent-base.md +0 -0
  191. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agent-mesh-network.md +0 -0
  192. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agent-relationship-graph.md +0 -0
  193. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agent-rules.md +0 -0
  194. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agent2agent.md +0 -0
  195. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/README.md +0 -0
  196. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/capability-map.yaml +0 -0
  197. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/needs-catalog.yaml +0 -0
  198. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/profile-map.yaml +0 -0
  199. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/target-schema.yaml +0 -0
  200. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/acceptance-record.md +0 -0
  201. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/accepted-risks.yaml +0 -0
  202. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/blast-radius-policy.yaml +0 -0
  203. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/browser-tool-contract.yaml +0 -0
  204. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/capability-registry.yaml +0 -0
  205. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/claim-ledger.md +0 -0
  206. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/cluster-action-policy.yaml +0 -0
  207. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/compliance-declaration.md +0 -0
  208. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/compliance-score.yaml +0 -0
  209. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/compression-gate.yaml +0 -0
  210. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/context-contract.yaml +0 -0
  211. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/cost-registry.yaml +0 -0
  212. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/decision-council.yaml +0 -0
  213. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/decision-graph.yaml +0 -0
  214. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/doc-graph-pipeline.yaml +0 -0
  215. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/environment-policy.yaml +0 -0
  216. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/evidence-gates.yaml +0 -0
  217. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/evidence-pack.md +0 -0
  218. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/flow-dsl-manifest.yaml +0 -0
  219. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/guardrail-contract.yaml +0 -0
  220. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/hook-registry.yaml +0 -0
  221. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/incident-registry.yaml +0 -0
  222. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/k8s-agent-manifest.yaml +0 -0
  223. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/knowledge-source-registry.yaml +0 -0
  224. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/llm-provider-registry.yaml +0 -0
  225. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/memory-integrity.yaml +0 -0
  226. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/memory-policy.yaml +0 -0
  227. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/merge-lane.yaml +0 -0
  228. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/mission-brief.md +0 -0
  229. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/observability-policy.yaml +0 -0
  230. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/orchestration-policy.yaml +0 -0
  231. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/privilege-boundary.yaml +0 -0
  232. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/prompt-firewall.yaml +0 -0
  233. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/prompt-version-log.yaml +0 -0
  234. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/remediation-plan.yaml +0 -0
  235. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/remote-hygiene.yaml +0 -0
  236. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/retention-registry.yaml +0 -0
  237. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/risk-control-matrix.yaml +0 -0
  238. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/rule-packs.yaml +0 -0
  239. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/runtime-provider-contract.yaml +0 -0
  240. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/runtime-surface-registry.yaml +0 -0
  241. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/task-board.yaml +0 -0
  242. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/task-envelope.md +0 -0
  243. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/tool-registry.yaml +0 -0
  244. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/visual-evidence.yaml +0 -0
  245. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/waivers.yaml +0 -0
  246. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/workflow-state-manifest.yaml +0 -0
  247. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/workspace-isolation.yaml +0 -0
  248. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/traceability.yaml +0 -0
  249. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/archetype-dna.schema.yaml +0 -0
  250. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/cc-reference.md +0 -0
  251. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/cc-verify.sh +0 -0
  252. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/context-router.md +0 -0
  253. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/copilot/instructions/grimoire-project.instructions.md +0 -0
  254. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/copilot/prompts/grimoire-changelog.prompt.md +0 -0
  255. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/copilot/prompts/grimoire-dream.prompt.md +0 -0
  256. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/copilot/prompts/grimoire-health-check.prompt.md +0 -0
  257. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/copilot/prompts/grimoire-pre-push.prompt.md +0 -0
  258. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/copilot/prompts/grimoire-self-heal.prompt.md +0 -0
  259. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/copilot/prompts/grimoire-session-bootstrap.prompt.md +0 -0
  260. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/copilot/prompts/grimoire-status.prompt.md +0 -0
  261. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/copilot-extension/README.md +0 -0
  262. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/cross-validation-trust.md +0 -0
  263. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/delivery-contract.tpl.md +0 -0
  264. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/event-log-shared-state.md +0 -0
  265. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/glossary.yaml +0 -0
  266. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/grimoire-trace.md +0 -0
  267. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/honest-uncertainty-protocol.md +0 -0
  268. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/hooks/.pre-commit-config.tpl.yaml +0 -0
  269. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/hooks/commit-msg.sh +0 -0
  270. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/hooks/mnemo-consolidate.sh +0 -0
  271. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/hooks/post-checkout.sh +0 -0
  272. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/hooks/post-commit.sh +0 -0
  273. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/hooks/pre-commit-cc.sh +0 -0
  274. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/hooks/pre-push.sh +0 -0
  275. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/hooks/prepare-commit-msg.sh +0 -0
  276. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/hosts/commands/grimoire-doctor.md +0 -0
  277. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/hosts/commands/grimoire-gate.md +0 -0
  278. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/hosts/commands/grimoire-proof.md +0 -0
  279. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/hosts/commands/grimoire-recall.md +0 -0
  280. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/hosts/commands/grimoire-verify.md +0 -0
  281. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/hosts/skills/grimoire-agent-dispatch.md +0 -0
  282. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/hosts/skills/grimoire-evidence.md +0 -0
  283. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/hosts/skills/grimoire-memory.md +0 -0
  284. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/hybrid-parallelism-engine.md +0 -0
  285. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/mcp/grimoire-mcp-server.md +0 -0
  286. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/memory/.gitignore +0 -0
  287. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/memory/backends/__init__.py +0 -0
  288. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/memory/backends/backend_lexical.py +0 -0
  289. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/memory/backends/backend_local.py +0 -0
  290. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/memory/backends/backend_ollama.py +0 -0
  291. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/memory/backends/backend_qdrant_local.py +0 -0
  292. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/memory/backends/backend_qdrant_server.py +0 -0
  293. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/memory/contradiction-log.tpl.md +0 -0
  294. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/memory/dependency-graph.tpl.md +0 -0
  295. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/memory/docker-compose.memory-target.tpl.yml +0 -0
  296. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/memory/docker-compose.memory.tpl.yml +0 -0
  297. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/memory/failure-museum.tpl.md +0 -0
  298. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/memory/handoff-log.tpl.md +0 -0
  299. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/memory/k8s-qdrant.tpl.yaml +0 -0
  300. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/memory/maintenance.py +0 -0
  301. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/memory/mem0-bridge.py +0 -0
  302. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/memory/memory_seed.py +0 -0
  303. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/memory/network-topology.tpl.md +0 -0
  304. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/memory/oss-references.tpl.md +0 -0
  305. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/memory/requirements/requirements-minimal.txt +0 -0
  306. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/memory/requirements/requirements-ollama.txt +0 -0
  307. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/memory/requirements/requirements-qdrant.txt +0 -0
  308. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/memory/requirements.txt +0 -0
  309. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/memory/session-save.py +0 -0
  310. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/orchestrator-gateway.md +0 -0
  311. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/productive-conflict-engine.md +0 -0
  312. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/prompt-templates/README.md +0 -0
  313. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/prompt-templates/audit-report.md +0 -0
  314. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/prompt-templates/capacity-planning.md +0 -0
  315. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/prompt-templates/compliance-check.md +0 -0
  316. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/prompt-templates/dependency-updates.md +0 -0
  317. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/prompt-templates/design-tokens.md +0 -0
  318. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/prompt-templates/network-troubleshoot.md +0 -0
  319. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/prompt-templates/operational-mode.md +0 -0
  320. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/prompt-templates/periodic-report.md +0 -0
  321. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/prompt-templates/secret-rotation.md +0 -0
  322. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/prompt-templates/strategic-plan.md +0 -0
  323. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/prompt-templates/troubleshoot.md +0 -0
  324. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/question-escalation-chain.md +0 -0
  325. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/registry/README.md +0 -0
  326. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/selective-huddle-protocol.md +0 -0
  327. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/sessions/README.md +0 -0
  328. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/sil-collect.sh +0 -0
  329. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/README.md +0 -0
  330. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/adversarial-consensus.py +0 -0
  331. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/agent-bench.py +0 -0
  332. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/agent-caller.py +0 -0
  333. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/agent-darwinism.py +0 -0
  334. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/agent-debugger.py +0 -0
  335. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/agent-forge.py +0 -0
  336. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/agent-integrity.py +0 -0
  337. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/agent-test.py +0 -0
  338. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/agent-watch.py +0 -0
  339. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/agent-worker.py +0 -0
  340. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/antifragile-score.py +0 -0
  341. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/auto-doc.py +0 -0
  342. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/context-guard.py +0 -0
  343. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/context-summarizer.py +0 -0
  344. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/cross-migrate.py +0 -0
  345. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/dep-check.py +0 -0
  346. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/distill.py +0 -0
  347. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/dna-evolve.py +0 -0
  348. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/dream.py +0 -0
  349. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/expert-tool-chain.py +0 -0
  350. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/failure-museum.py +0 -0
  351. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/gen-tests.py +0 -0
  352. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/grimoire-completion.zsh +0 -0
  353. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/grimoire-mcp-tools.py +0 -0
  354. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/grimoire-setup.py +0 -0
  355. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/image-prompt.py +0 -0
  356. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/incubator.py +0 -0
  357. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/llm-router.py +0 -0
  358. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/memory-lint.py +0 -0
  359. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/memory-sync.py +0 -0
  360. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/message-bus.py +0 -0
  361. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/nso.py +0 -0
  362. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/observatory.py +0 -0
  363. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/preflight-check.py +0 -0
  364. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/quick-check.sh +0 -0
  365. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/rag-indexer.py +0 -0
  366. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/rag-retriever.py +0 -0
  367. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/reasoning-stream.py +0 -0
  368. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/schema-validator.py +0 -0
  369. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/session-lifecycle.py +0 -0
  370. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/stigmergy.py +0 -0
  371. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/stigmergy_hooks/scripts/stigmergy-emit-post-edit.sh +0 -0
  372. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/stigmergy_hooks/scripts/stigmergy-emit-stop.sh +0 -0
  373. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/stigmergy_hooks/scripts/stigmergy-sense.sh +0 -0
  374. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/stigmergy_hooks/scripts/stigmergy_hook.py +0 -0
  375. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/stigmergy_hooks/stigmergy-emit.json +0 -0
  376. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/stigmergy_hooks/stigmergy-sense.json +0 -0
  377. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/swarm-consensus.py +0 -0
  378. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/synapse-trace.py +0 -0
  379. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/token-budget.py +0 -0
  380. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/tool-registry.py +0 -0
  381. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/tool-resolver.py +0 -0
  382. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/vision-judge.py +0 -0
  383. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/web-browser.py +0 -0
  384. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/workflows/boomerang-orchestration.md +0 -0
  385. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/workflows/github-cc-check.yml.tpl +0 -0
  386. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/workflows/incident-response.md +0 -0
  387. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/workflows/party-mode.md +0 -0
  388. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/workflows/repo-map-generator.md +0 -0
  389. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/workflows/state-checkpoint.md +0 -0
  390. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/workflows/subagent-orchestration.md +0 -0
  391. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/workflows/workflow-graph.tpl.yaml +0 -0
  392. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/workflows/workflow-status.tpl.md +0 -0
  393. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/planning/README.md +0 -0
  394. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/registry/blueprints/README.md +0 -0
  395. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/rust/grimoire-dispatch-core/pyproject.toml +0 -0
  396. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/rust/grimoire-flows-core/pyproject.toml +0 -0
  397. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/rust/grimoire-hosts-core/pyproject.toml +0 -0
  398. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/rust/grimoire-policies-core/pyproject.toml +0 -0
  399. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/rust/grimoire-schema-core/pyproject.toml +0 -0
  400. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/scripts/gen-site-data.py +0 -0
  401. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/__init__.py +0 -0
  402. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/__main__.py +0 -0
  403. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/archetypes/__init__.py +0 -0
  404. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/bridges/__init__.py +0 -0
  405. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/bridges/a2a_adapter.py +0 -0
  406. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/bridges/host.py +0 -0
  407. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/bridges/schemas.py +0 -0
  408. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/cli/__init__.py +0 -0
  409. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/cli/_lazy.py +0 -0
  410. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/cli/_shared.py +0 -0
  411. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/cli/cmd_blueprint.py +0 -0
  412. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/cli/cmd_cadrage.py +0 -0
  413. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/cli/cmd_cockpit.py +0 -0
  414. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/cli/cmd_context_pack.py +0 -0
  415. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/cli/cmd_debugger.py +0 -0
  416. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/cli/cmd_ext.py +0 -0
  417. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/cli/cmd_features.py +0 -0
  418. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/cli/cmd_hooks.py +0 -0
  419. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/cli/cmd_host.py +0 -0
  420. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/cli/cmd_init.py +0 -0
  421. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/cli/cmd_memory.py +0 -0
  422. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/cli/cmd_memory_bundle.py +0 -0
  423. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/cli/cmd_memory_lexical.py +0 -0
  424. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/cli/cmd_memory_ops.py +0 -0
  425. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/cli/cmd_memory_projections.py +0 -0
  426. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/cli/cmd_memory_shared.py +0 -0
  427. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/cli/cmd_merge.py +0 -0
  428. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/cli/cmd_migrate.py +0 -0
  429. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/cli/cmd_proposals.py +0 -0
  430. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/cli/cmd_providers.py +0 -0
  431. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/cli/cmd_serve.py +0 -0
  432. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/cli/cmd_stigmergy.py +0 -0
  433. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/cli/cmd_web.py +0 -0
  434. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/cli/cmd_workflows.py +0 -0
  435. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/cli/updater.py +0 -0
  436. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/codegraph/__init__.py +0 -0
  437. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/codegraph/backends/__init__.py +0 -0
  438. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/codegraph/backends/neo4j.py +0 -0
  439. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/codegraph/graph.py +0 -0
  440. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/codegraph/parser.py +0 -0
  441. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/codegraph/schemas.py +0 -0
  442. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/core/__init__.py +0 -0
  443. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/core/agent_freshness.py +0 -0
  444. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/core/agentic_standard.py +0 -0
  445. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/core/archetype_resolver.py +0 -0
  446. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/core/cadrage.py +0 -0
  447. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/core/claude_activation.py +0 -0
  448. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/core/console_encoding.py +0 -0
  449. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/core/deprecation.py +0 -0
  450. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/core/error_codes.py +0 -0
  451. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/core/exceptions.py +0 -0
  452. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/core/integrity.py +0 -0
  453. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/core/kit_hashes.py +0 -0
  454. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/core/layout.py +0 -0
  455. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/core/log.py +0 -0
  456. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/core/merge.py +0 -0
  457. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/core/needs_suggest.py +0 -0
  458. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/core/project.py +0 -0
  459. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/core/project_types.py +0 -0
  460. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/core/resolver.py +0 -0
  461. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/core/retry.py +0 -0
  462. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/core/scaffold.py +0 -0
  463. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/core/scanner.py +0 -0
  464. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/core/schema.py +0 -0
  465. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/core/standard_checks/__init__.py +0 -0
  466. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/core/standard_checks/base.py +0 -0
  467. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/core/standard_checks/controls.py +0 -0
  468. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/core/standard_checks/pattern_codes.py +0 -0
  469. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/core/standard_generation.py +0 -0
  470. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/core/standard_profile_manifest.py +0 -0
  471. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/core/standard_state.py +0 -0
  472. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/core/standard_traceability.py +0 -0
  473. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/core/standard_upstream.py +0 -0
  474. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/core/validator.py +0 -0
  475. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/data/__init__.py +0 -0
  476. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/evidence/__init__.py +0 -0
  477. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/evidence/schemas.py +0 -0
  478. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/evidence/service.py +0 -0
  479. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/flows/__init__.py +0 -0
  480. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/flows/engine.py +0 -0
  481. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/flows/executor.py +0 -0
  482. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/hosts/__init__.py +0 -0
  483. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/hosts/capabilities.py +0 -0
  484. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/hosts/decisions/__init__.py +0 -0
  485. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/hosts/decisions/_shared.py +0 -0
  486. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/hosts/decisions/context_capsule.py +0 -0
  487. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/hosts/decisions/evidence_gate.py +0 -0
  488. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/hosts/decisions/gate_summary.py +0 -0
  489. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/hosts/decisions/record.py +0 -0
  490. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/hosts/decisions/subagent_gate.py +0 -0
  491. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/hosts/decisions/task_context.py +0 -0
  492. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/hosts/decisions/tool_facts.py +0 -0
  493. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/hosts/emitters/__init__.py +0 -0
  494. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/hosts/emitters/base.py +0 -0
  495. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/hosts/emitters/claude_code.py +0 -0
  496. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/hosts/emitters/copilot.py +0 -0
  497. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/hosts/emitters/generic.py +0 -0
  498. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/hosts/events.py +0 -0
  499. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/hosts/runtime.py +0 -0
  500. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/hosts/secrets.py +0 -0
  501. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/hosts/sync.py +0 -0
  502. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/mcp/__init__.py +0 -0
  503. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/memory/__init__.py +0 -0
  504. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/memory/architecture.py +0 -0
  505. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/memory/backends/__init__.py +0 -0
  506. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/memory/backends/_qdrant_mixin.py +0 -0
  507. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/memory/backends/base.py +0 -0
  508. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/memory/backends/lexical.py +0 -0
  509. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/memory/backends/local.py +0 -0
  510. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/memory/backends/mempalace.py +0 -0
  511. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/memory/backends/ollama.py +0 -0
  512. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/memory/backends/qdrant.py +0 -0
  513. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/memory/backends/tantivy_local.py +0 -0
  514. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/memory/backends/weaviate.py +0 -0
  515. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/memory/bundle.py +0 -0
  516. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/memory/embedding.py +0 -0
  517. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/memory/hot.py +0 -0
  518. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/memory/manager.py +0 -0
  519. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/memory/migration.py +0 -0
  520. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/memory/neo4j_graph.py +0 -0
  521. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/memory/profiles.py +0 -0
  522. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/memory/projections.py +0 -0
  523. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/memory/retrieval.py +0 -0
  524. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/memory/shared.py +0 -0
  525. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/memory/sidecar.py +0 -0
  526. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/memory/taxonomy.py +0 -0
  527. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/memory/validation.py +0 -0
  528. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/missions/__init__.py +0 -0
  529. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/missions/beads_adapter.py +0 -0
  530. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/missions/board.py +0 -0
  531. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/missions/dispatch_history.py +0 -0
  532. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/missions/gates.py +0 -0
  533. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/missions/intake.py +0 -0
  534. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/missions/ledger.py +0 -0
  535. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/missions/plans_registry.py +0 -0
  536. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/missions/projections.py +0 -0
  537. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/missions/recall.py +0 -0
  538. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/missions/schemas.py +0 -0
  539. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/missions/service.py +0 -0
  540. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/missions/task_flow_adapter.py +0 -0
  541. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/policies/__init__.py +0 -0
  542. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/policies/security.py +0 -0
  543. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/providers/__init__.py +0 -0
  544. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/providers/registry.py +0 -0
  545. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/providers/routing.py +0 -0
  546. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/providers/state.py +0 -0
  547. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/py.typed +0 -0
  548. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/registry/__init__.py +0 -0
  549. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/registry/agents.py +0 -0
  550. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/registry/discovery.py +0 -0
  551. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/registry/local.py +0 -0
  552. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/runtime/__init__.py +0 -0
  553. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/runtime/adapter_base.py +0 -0
  554. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/runtime/crewai_adapter.py +0 -0
  555. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/runtime/gascity_converter.py +0 -0
  556. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/runtime/langgraph_adapter.py +0 -0
  557. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/runtime/p2p_guard.py +0 -0
  558. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/runtime/recipes.py +0 -0
  559. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/runtime/schemas.py +0 -0
  560. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/__init__.py +0 -0
  561. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/agent_creation.py +0 -0
  562. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/agent_forge.py +0 -0
  563. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/blueprint_checkpoint.py +0 -0
  564. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/blueprint_context.py +0 -0
  565. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/blueprint_diff.py +0 -0
  566. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/blueprint_eval_runner.py +0 -0
  567. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/blueprint_evals.py +0 -0
  568. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/blueprint_gate.py +0 -0
  569. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/blueprint_primitives.py +0 -0
  570. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/blueprint_resilience.py +0 -0
  571. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/blueprint_scatter.py +0 -0
  572. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/blueprint_security.py +0 -0
  573. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/blueprint_telemetry.py +0 -0
  574. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/context_guard.py +0 -0
  575. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/context_pack.py +0 -0
  576. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/context_router.py +0 -0
  577. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/cost_model.py +0 -0
  578. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/ext_manager.py +0 -0
  579. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/features.py +0 -0
  580. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/forge_http.py +0 -0
  581. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/forge_routes.py +0 -0
  582. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/forge_server.py +0 -0
  583. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/handoff.py +0 -0
  584. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/harmony_check.py +0 -0
  585. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/memory_link.py +0 -0
  586. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/memory_lint.py +0 -0
  587. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/memory_setup.py +0 -0
  588. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/memory_vectors.py +0 -0
  589. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/model_windows.py +0 -0
  590. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/preflight_check.py +0 -0
  591. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/project_health.py +0 -0
  592. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/project_registry.py +0 -0
  593. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/project_setup.py +0 -0
  594. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/project_update.py +0 -0
  595. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/serve_data.py +0 -0
  596. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/stigmergy.py +0 -0
  597. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/stigmergy_hooks.py +0 -0
  598. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/untrusted.py +0 -0
  599. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/workspace_exec.py +0 -0
  600. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/workspace_legacy.py +0 -0
  601. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/traces/__init__.py +0 -0
  602. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/traces/otel_conventions.py +0 -0
  603. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/traces/schemas.py +0 -0
  604. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/workflows/__init__.py +0 -0
  605. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/workflows/registry.py +0 -0
  606. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/workflows/teams.py +0 -0
  607. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/DESIGN-BRIEF-memory.md +0 -0
  608. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/DESIGN-BRIEF-observability.md +0 -0
  609. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/DESIGN-REVIEW-2026-09.md +0 -0
  610. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/DESIGN-SPEC-workspace-2026-09.md +0 -0
  611. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/anatomy.html +0 -0
  612. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/atelier-nav.js +0 -0
  613. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/atelier.css +0 -0
  614. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/atelier.html +0 -0
  615. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/blueprint-onboarding.js +0 -0
  616. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/blueprints.html +0 -0
  617. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/bp2-assist.js +0 -0
  618. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/bp2-composer.js +0 -0
  619. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/bp2-core.js +0 -0
  620. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/bp2-cost.js +0 -0
  621. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/bp2-diff.js +0 -0
  622. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/bp2-docs.js +0 -0
  623. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/bp2-evals.js +0 -0
  624. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/bp2-lexicon.js +0 -0
  625. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/bp2-library.js +0 -0
  626. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/bp2-manual.js +0 -0
  627. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/bp2-sections.js +0 -0
  628. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/bp2-team.css +0 -0
  629. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/bp2-team.js +0 -0
  630. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/bp2-tour.js +0 -0
  631. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/bp2.css +0 -0
  632. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/data/activity.json +0 -0
  633. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/data/architecture.json +0 -0
  634. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/data/catalogue-export.json +0 -0
  635. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/data/extensions.json +0 -0
  636. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/data/insights.json +0 -0
  637. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/data/kit-coverage.json +0 -0
  638. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/data/memory.json +0 -0
  639. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/data/meta.json +0 -0
  640. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/data/observatory.json +0 -0
  641. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/data/projects/atlas-ops/activity.json +0 -0
  642. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/data/projects/atlas-ops/insights.json +0 -0
  643. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/data/projects/atlas-ops/memory.json +0 -0
  644. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/data/projects/atlas-ops/meta.json +0 -0
  645. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/data/projects/atlas-ops/observatory.json +0 -0
  646. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/data/projects/atlas-ops/taskboard.json +0 -0
  647. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/data/projects/grimoire-kit/activity.json +0 -0
  648. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/data/projects/grimoire-kit/insights.json +0 -0
  649. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/data/projects/grimoire-kit/memory.json +0 -0
  650. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/data/projects/grimoire-kit/meta.json +0 -0
  651. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/data/projects/grimoire-kit/observatory.json +0 -0
  652. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/data/projects/grimoire-kit/taskboard.json +0 -0
  653. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/data/projects/ledger-data/activity.json +0 -0
  654. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/data/projects/ledger-data/insights.json +0 -0
  655. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/data/projects/ledger-data/memory.json +0 -0
  656. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/data/projects/ledger-data/meta.json +0 -0
  657. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/data/projects/ledger-data/observatory.json +0 -0
  658. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/data/projects/ledger-data/taskboard.json +0 -0
  659. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/data/projects/sentinel-sec/activity.json +0 -0
  660. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/data/projects/sentinel-sec/insights.json +0 -0
  661. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/data/projects/sentinel-sec/memory.json +0 -0
  662. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/data/projects/sentinel-sec/meta.json +0 -0
  663. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/data/projects/sentinel-sec/observatory.json +0 -0
  664. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/data/projects/sentinel-sec/taskboard.json +0 -0
  665. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/data/projects.json +0 -0
  666. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/data/taskboard.json +0 -0
  667. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/demo.html +0 -0
  668. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design/workspace-2026-09/Concevoir.dc.html +0 -0
  669. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design/workspace-2026-09/ConcevoirClair.dc.html +0 -0
  670. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design/workspace-2026-09/Couleurs.dc.html +0 -0
  671. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design/workspace-2026-09/DAArdoise.dc.html +0 -0
  672. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design/workspace-2026-09/DAPapier.dc.html +0 -0
  673. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design/workspace-2026-09/DAStudio.dc.html +0 -0
  674. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design/workspace-2026-09/DirectionB.dc.html +0 -0
  675. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design/workspace-2026-09/DirectionC.dc.html +0 -0
  676. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design/workspace-2026-09/DirectionD.dc.html +0 -0
  677. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design/workspace-2026-09/Encre.dc.html +0 -0
  678. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design/workspace-2026-09/EncreClair.dc.html +0 -0
  679. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design/workspace-2026-09/Main.dc.html +0 -0
  680. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design/workspace-2026-09/Mecaniques.dc.html +0 -0
  681. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design/workspace-2026-09/Source.dc.html +0 -0
  682. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design/workspace-2026-09/canvas.json +0 -0
  683. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design/workspace-2026-09/captures/concevoir-dark.jpg +0 -0
  684. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design/workspace-2026-09/captures/concevoir-light.jpg +0 -0
  685. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design/workspace-2026-09/captures/executer-dark.jpg +0 -0
  686. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design/workspace-2026-09/captures/executer-light.jpg +0 -0
  687. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design/workspace-2026-09/captures/memoire-dark.jpg +0 -0
  688. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design/workspace-2026-09/captures/memoire-light.jpg +0 -0
  689. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design/workspace-2026-09/captures/observer-dark.jpg +0 -0
  690. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design/workspace-2026-09/captures/observer-light.jpg +0 -0
  691. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design/workspace-2026-09/captures/piloter-dark.jpg +0 -0
  692. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design/workspace-2026-09/captures/piloter-light.jpg +0 -0
  693. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design/workspace-2026-09/captures/source-dark.jpg +0 -0
  694. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design/workspace-2026-09/captures/source-light.jpg +0 -0
  695. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design/workspace-2026-09/gen-couleurs.py +0 -0
  696. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design/workspace-2026-09/gen-skins.py +0 -0
  697. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design/workspace-2026-09/shell.tpl.html +0 -0
  698. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design-review-2026-09/01-cockpit-portefeuille-desktop.jpg +0 -0
  699. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design-review-2026-09/02-cockpit-portefeuille-full.jpg +0 -0
  700. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design-review-2026-09/03-cockpit-portefeuille-mobile.jpg +0 -0
  701. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design-review-2026-09/04-kanban-desktop.jpg +0 -0
  702. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design-review-2026-09/05-kanban-mobile.jpg +0 -0
  703. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design-review-2026-09/06-observatoire-desktop.jpg +0 -0
  704. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design-review-2026-09/07-observatoire-full.jpg +0 -0
  705. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design-review-2026-09/08-atelier-desktop.jpg +0 -0
  706. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design-review-2026-09/09-atelier-mobile.jpg +0 -0
  707. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design-review-2026-09/10-memoire-desktop.jpg +0 -0
  708. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design-review-2026-09/11-blueprints-desktop.jpg +0 -0
  709. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design-review-2026-09/12-extensions-desktop.jpg +0 -0
  710. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design-review-2026-09/13-patterns-desktop.jpg +0 -0
  711. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design-review-2026-09/14-cockpit-index-desktop.jpg +0 -0
  712. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design-review-2026-09/15-workspace-lot1-sombre-decouverte.png +0 -0
  713. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design-review-2026-09/16-workspace-lot1-clair-decouverte.png +0 -0
  714. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design-review-2026-09/17-workspace-lot1-sombre-concentration.png +0 -0
  715. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design-review-2026-09/18-workspace-lot1-clair-concentration.png +0 -0
  716. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/documentation.html +0 -0
  717. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/extensions.html +0 -0
  718. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/forge-base.css +0 -0
  719. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/forge-charts.css +0 -0
  720. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/forge-landing.css +0 -0
  721. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/forge-motion.css +0 -0
  722. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/forge-motion.js +0 -0
  723. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/forge-nav.js +0 -0
  724. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/forge-observatory.js +0 -0
  725. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/forge-tokens.css +0 -0
  726. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/game-ui.html +0 -0
  727. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/grimoire-mode.js +0 -0
  728. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/index.html +0 -0
  729. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/labs.html +0 -0
  730. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/memory.html +0 -0
  731. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/observability.html +0 -0
  732. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/patterns.html +0 -0
  733. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/portfolio.html +0 -0
  734. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/project-picker.js +0 -0
  735. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/workspace/fonts/Geist-Medium.woff2 +0 -0
  736. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/workspace/fonts/Geist-Regular.woff2 +0 -0
  737. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/workspace/fonts/Geist-SemiBold.woff2 +0 -0
  738. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/workspace/fonts/GeistMono-Medium.woff2 +0 -0
  739. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/workspace/fonts/GeistMono-Regular.woff2 +0 -0
  740. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/workspace/fonts/OFL.txt +0 -0
  741. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/workspace/glossary.js +0 -0
  742. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/workspace/index.html +0 -0
  743. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/workspace/shell.css +0 -0
  744. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/workspace/shell.js +0 -0
  745. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/workspace/spaces/concevoir.js +0 -0
  746. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/workspace/spaces/memoire.js +0 -0
  747. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/workspace/spaces/piloter.js +0 -0
  748. {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/workspace/tokens.css +0 -0
@@ -7,6 +7,186 @@ et ce projet adhère au [Semantic Versioning](https://semver.org/lang/fr/).
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [3.46.0] - 2026-09-12
11
+
12
+ - **feat(policies): politiques temporelles par session sur la médiation d'outils — budgets, approbation préalable, refroidissement (#439).**
13
+ Point 3 de l'audit de positionnement 2026-09-12 : `PolicyRule` gagne quatre
14
+ clés optionnelles et rétrocompatibles (`tool_pattern`, `require_approval`,
15
+ `per_session`, `cooldown_after`, voir `_grimoire/standard/policies.yaml`),
16
+ validées au chargement (`GrimoirePolicyError` nommée sur clé inconnue). L'état
17
+ de session (compteurs, approbations, horodatages — jamais de secret ni de
18
+ contenu d'outil) vit dans `_grimoire-output/.runs/session-<id>.json`, écrit
19
+ atomiquement, remis à zéro à `SessionStart` ; un fichier absent ou corrompu
20
+ redevient une session neuve. La décision pure (règle + état → verdict) est
21
+ portée à l'identique en Python (`grimoire.policies.temporal`) et en Rust
22
+ (`rust/grimoire-policies-core`, `evaluate_temporal`), testée en parité ; le
23
+ hook `PreToolUse` reste sous +5 ms de surcoût mesuré. `grimoire policies
24
+ status` affiche les compteurs et budgets restants de la session — le
25
+ cockpit n'est pas dans ce lot.
26
+
27
+ - **feat(hosts): un override d'agent peut désormais rester partiel (`extends: kit`) et signale sa dérive au lieu de figer silencieusement une copie (#427).**
28
+ Migration réelle 3.38.0 → 3.44.2 : quatre overrides en copie intégrale
29
+ n'avaient plus reçu une seule mise à niveau de leur agent depuis des mois,
30
+ `doctor` étant 22/22. Trois changements : (1) tout override écrit par un
31
+ chemin qui comprend le kit (cockpit, `grimoire agent override convert`)
32
+ enregistre `kit_source_hash:` (empreinte tronquée du fichier kit au moment
33
+ de l'écriture) ; `doctor` et le cockpit comparent cette empreinte à
34
+ l'actuelle et signalent en WARN (jamais FAIL) une dérive, avec un résumé
35
+ (sections de frontmatter ajoutées/retirées, delta du corps, ou champs
36
+ figés pour un override partiel), et en INFO une empreinte inconnue
37
+ (override antérieur à cette issue). (2) `extends: kit` dans le frontmatter
38
+ d'un override ne redéfinit plus que les champs qu'il liste
39
+ (`model_affinity`, `context`, `skills`, `tools`, `use_when`,
40
+ `dont_use_when`, `max_turns`, `description`, `tool_boundary`) — le corps et
41
+ le reste du frontmatter viennent du fichier kit de même nom, fusionnés
42
+ dans `hosts/collect.py` (dicts Python, avant tout appel au port Rust
43
+ optionnel — parité inchangée sous `GRIMOIRE_HOSTS_BACKEND=rust`) ; un
44
+ `extends: kit` sans agent kit de même nom refuse au chargement, nommant
45
+ l'agent. Le cockpit (assigner un skill, éditer une clause) écrit désormais
46
+ un override partiel dès qu'un agent kit du même nom existe, une copie
47
+ intégrale sinon. (3) `grimoire up` liste, après avoir rafraîchi le palier
48
+ kit, les overrides à revoir — sans jamais les toucher — et
49
+ `grimoire agent override convert <nom> [--dry-run]` convertit une copie
50
+ intégrale en override partiel équivalent, refusant (lignes citées) quand
51
+ le corps de la copie a divergé du kit plutôt que de fusionner du texte.
52
+
53
+ - **feat(dispatch): coût par tâche résolue et pass^k, comptabilité continue et contrôle dans les gates (#442).**
54
+ Point 5 de l'audit de positionnement du 2026-09-12 : le kit dispatchait déjà des tâches en cascade sans jamais agréger en continu ce que ça coûte ni si ça marche de façon fiable — seules des campagnes d'évals manuelles (#308) répondaient à ces questions. `grimoire task dispatch`/`grimoire flow run --executor dispatch` écrivent maintenant un événement `dispatch.outcome` par cascade réellement tentée dans le journal de traces (classe, paliers tentés, coût total, verdict d'acceptance, résolu ou non — aucun contenu de prompt). Nouvelle commande `grimoire dispatch stats [--since 30d] [--json]`, sœur de `providers history` : coût par tâche résolue, taux d'escalade, part d'inexécutable (par classe et par fournisseur), et pass^k sur les nœuds rejoués (une série est « toute au vert » seulement si toutes ses exécutions ont résolu la tâche). Les agrégations pures vivent dans `rust/grimoire-traces-core/` (extension du sixième port), avec parité de test sous les deux backends. Le standard gagne le contrôle `dispatch.cost_slo` (pattern `provider-cost-slo`) : `INFO` faute de données, `WARN` en cas de dépassement (coût ou pass^k), `FAIL` uniquement si le projet déclare `dispatch_cost_slo.enforce: true` — jamais bloquant par défaut. Le cockpit n'est pas concerné par ce lot.
55
+
56
+ - **feat(cockpit): timeline unifiée par tâche dans la vue de travail, l'export OTel de #322 devient une source lue plutôt qu'un mécanisme mort (#139).**
57
+ Audit de positionnement du 2026-09-12, point 2 : `TraceLedger.export_otel_jsonl`
58
+ produit des spans GenAI conformes depuis #322, mais rien ne les consommait —
59
+ `/api/otel` sert une pile d'événements différente (`blueprint_telemetry`,
60
+ `events.jsonl`), sans rapport avec le TraceLedger. `grimoire.missions.trace`
61
+ (déjà livré par #276) gagne une cinquième source, `otel` : si un export
62
+ existe à l'emplacement conventionnel (`<traces>/otel-export.jsonl`), ses
63
+ spans sont lus et corrélés par `grimoire.task_id` puis par `traceId`
64
+ partagé avec les spans enfants — jamais par heuristique textuelle. Deux
65
+ autres traces disparaissaient aussi en silence de la timeline avant ce
66
+ correctif : les dispatchs d'agent (`agent.dispatch`, `agent.miss`) et tout
67
+ futur fait du TraceLedger qui n'est ni un gate ni un appel d'outil — un
68
+ repli générique les reprend désormais sous la source `hooks`. Côté cockpit :
69
+ l'espace Exécuter (`web/workspace/spaces/executer.js`) ouvre la timeline
70
+ d'une tâche depuis sa carte (bouton « Voir la timeline »), la filtre par
71
+ source et par gravité, et détaille chaque ligne en accordéon ; l'espace
72
+ Observer (`observer.js`) y renvoie depuis un span qui porte
73
+ `grimoire.task_id`. Lecture seule (ADR-007) : aucune écriture, aucune
74
+ reconstruction d'événement absent — une tâche sans trace montre « aucun
75
+ événement » et nomme les sources lues. Tests : `tests/unit/missions/test_trace.py`
76
+ (corrélation par identifiants, dispatch non perdu, otel présent/absent),
77
+ `tests/unit/test_workspace_api.py`, `tests/e2e/test_workspace_lot4_spaces.py`
78
+ (dispatch et transition refusée visibles, filtre par source). Docs :
79
+ `docs/cli-reference.md`, `docs/serve-blueprints.md`,
80
+ `docs/audits/positionnement-2026-09-12.md` et
81
+ `framework/agentic-industry-reference.md` (section 10) mis à jour avec la
82
+ date de correction.
83
+
84
+ - **feat(cockpit): suggestions de contenu par un petit modèle local (Ollama), toujours derrière l'IntelliSense déterministe de l'espace Source, jamais à sa place (#280).**
85
+ Voie 2 de #280, derrière la voie 1 (IntelliSense déterministe, PR #303) :
86
+ `project-context.yaml: source.assist.model` (vide par défaut, opt-in) plus
87
+ la même sonde qu'`grimoire providers audit` (`GET /api/tags`) décident si
88
+ le bouton **Suggérer** de l'éditeur Source apparaît — sinon l'interface ne
89
+ montre rien et ne tente rien. `GET /api/workspace/assist` (sans coût) rend
90
+ ce statut ; `POST /api/workspace/assist` (`src/grimoire/tools/source_assist.py`,
91
+ projet d'accueil seulement) appelle réellement le modèle en local
92
+ (`http://127.0.0.1:11434`, délai borné à 10 s), avec les identifiants du
93
+ paquet de langage (agents, skills, workflows, patterns) injectés dans le
94
+ prompt, et vérifie après coup tout identifiant cité par la réponse contre
95
+ ce même paquet — marqué « inconnu » plutôt que corrigé à la place de
96
+ l'utilisateur. Panneau d'aperçu dans l'éditeur (`Ctrl+Maj+Espace`, ou le
97
+ bouton) avec **Insérer**/**Ignorer** ; l'insertion passe par le même
98
+ chemin que la frappe clavier, la colorisation et les diagnostics se
99
+ recalculent dessus. Aucun fournisseur distant, aucune clé, aucune écriture
100
+ de fichier par la route. Garde de relecture : une URL Ollama résolue
101
+ (`OLLAMA_HOST`) hors bouclage (`127.0.0.1`, `::1`, `localhost`) est
102
+ refusée par défaut — `source.assist.allow_lan: true` l'autorise
103
+ explicitement.
104
+
105
+ - **feat(mcp): migrer le pont MCP vers la révision de protocole 2026-07-28 (#436).**
106
+ Le plancher `mcp>=1.10,<3` laissait un résolveur retenir un SDK qui plafonne
107
+ à la révision 2025-11-25 (pas de `server/discover`, pas de mode sans état).
108
+ Relevé à `mcp>=2.0,<3` : à partir de 2.0.0, le SDK négocie 2026-07-28 par
109
+ défaut (`server/discover`, auto-dérivé des outils/prompts/ressources
110
+ enregistrés) tout en servant encore, sur la même connexion, un hôte qui ne
111
+ connaît que le handshake `initialize` (2025-06-18, 2025-11-25) —
112
+ `serve_dual_era_loop` côté SDK. Aucune ligne du pont
113
+ (`src/grimoire/mcp/server.py`) n'a dû changer : il ne câblait déjà ni
114
+ Roots, ni Sampling, ni Logging (les trois fonctionnalités que 2026-07-28
115
+ déprécie, retrait possible à partir de 2027-07-28), et ne garde aucun état
116
+ entre deux appels d'outil en dehors des fichiers du projet ciblé. Nouveaux
117
+ tests (`tests/unit/mcp/test_protocol_revision.py`) qui pilotent un vrai
118
+ `ClientSession` sur des flux en mémoire : négociation 2026-07-28 par
119
+ `server/discover`, compatibilité `initialize` à 2025-06-18 et 2025-11-25,
120
+ et absence d'état partagé entre deux connexions successives. Documentation
121
+ (`docs/mcp-integration.md`) et carte de correspondance
122
+ (`framework/agentic-industry-reference.md`, section 10) mises à jour.
123
+ Hors périmètre : transport HTTP/SSE, authentification, exposition réseau
124
+ distante — le pont reste stdio, en local.
125
+
126
+ - fix(yaml): `grimoire upgrade` round-trippait `project-context.yaml` via un chargeur `safe` (aucune métadonnée de commentaire) puis un dumper round-trip — tous les commentaires du fichier disparaissaient silencieusement à chaque migration v2→v3 (#430).
127
+
128
+ - fix(flows): `grimoire.runtime.kernel.create_instance` tronquait silencieusement `recipe_id`/`blueprint_id` aux 16 derniers caractères pour construire `wfi_id`/`run_id` (`WFI-...`) — deux blueprints partageant ce suffixe (par ex. `tasklib-hardening` perdait déjà son premier caractère) pouvaient obtenir le même `run_id` sur des kernels indépendants. L'identifiant complet est gardé tant qu'il tient dans une borne large (64 caractères) ; au-delà, il est raccourci et désambiguïsé par une empreinte de 8 hex de `sha256(recipe_id)` plutôt qu'une simple coupe. Les runs déjà persistés sous l'ancien format restent lisibles par `flow status`/`flow list` (#446).
129
+
130
+ ## [3.45.0] - 2026-09-12
131
+
132
+ - **fix(flows): le gate de `flow run --executor dispatch` exécute l'acceptance structurée d'un node, pas seulement l'enveloppe (#428).**
133
+ Rejeu réel du 2026-09-11 (épic #307, lot 3) : un nœud V0 déclaré vert alors
134
+ que sa vraie suite `pytest` ne pouvait pas être collectée (dépendance
135
+ absente) — le gate ne vérifiait que la conformité de l'enveloppe JSON de
136
+ l'ouvrier au contrat de sortie, jamais le texte de l'acceptance. `node.acceptance`
137
+ accepte désormais, en plus du texte libre (rétrocompatible), une forme
138
+ structurée exécutable (`{"run": "...", "expect_exit": 0, "cwd": ".",
139
+ "timeout_s": 120, "expect_stdout_contains": "..."}`) ou une evidence
140
+ mécanique (`{"path_exists": "..."}`, `{"test": "..."}`) — validée au
141
+ chargement du blueprint (`blueprint_loader.py`), refus nommé sur une forme
142
+ inconnue. Le gate (`missions/dispatch.py`) exécute ces commandes après la
143
+ réponse de l'ouvrier et rend trois verdicts, jamais un quatrième :
144
+ exécutée-verte (succès), exécutée-rouge (échec, suit la cascade normale :
145
+ réessai/escalade), ou **acceptance inexécutable** (refus nommé — binaire
146
+ absent, `pytest` 5/4, erreur d'import dans la sortie — qui arrête la
147
+ cascade net, jamais un succès). `flow status` et le rapport de dispatch
148
+ montrent par nœud le statut d'acceptance (exécutée/inexécutable/jugée) et
149
+ la sortie tronquée à 2 Ko. **La classe V0 exige une acceptance
150
+ structurée** : un nœud dont le texte seul le classerait V0 mais qui n'en
151
+ déclare aucune est rétrogradé en V1 (cascade démarrant à `mid`, jamais
152
+ fermé sur la seule enveloppe — marqué à relire), avec un avertissement
153
+ nommé posé au chargement du blueprint et transmis à la fois au démarrage
154
+ de la cascade et au rapport, pour que `flow run` et `flow status`
155
+ s'accordent sur la même classe. Un nœud V1 **déclaré** (vocabulaire de
156
+ revue) garde le comportement actuel du kit, documenté sans être étendu.
157
+ Aucun changement côté port Rust des flows (`rust/grimoire-flows-core/`) :
158
+ seule `NodeContract.outputs` (pins) y traverse la frontière PyO3, inchangée
159
+ par ce correctif.
160
+
161
+ - **feat(cockpit): le board de l'espace Exécuter montre le corps réel d'une tâche (description, garde-fous, dépendances) et les commandes d'intention restent gated par la preuve en multi-projet (#140).**
162
+ L'inspecteur de tâche affichait déjà les critères d'acceptation et les
163
+ preuves attendues ; il gagne des blocs Description, Garde-fous et
164
+ Dépendances, tirés du `MissionTask` du ledger — ce que `task-board.yaml`
165
+ n'a jamais su porter (ADR-005). `kanban.html` reste la vitrine statique et
166
+ gagne un lien vers le board vivant. Aucune écriture nouvelle : les
167
+ commandes de transition, le gate de preuve et la restriction au projet de
168
+ lancement du cockpit existaient déjà ; ce lot les couvre par des tests
169
+ dédiés (unitaires sur la route `/api/workspace/tasks/<id>/<action>` —
170
+ succès, refus nommant l'artefact manquant, refus hors projet de lancement —
171
+ et navigateur sur le critère d'acceptation à la lettre : une carte visée
172
+ vers *review* sans evidence pack est refusée avec l'artefact nommé, et le
173
+ board change quand on change de projet).
174
+
175
+ - feat(traces): sixième port Rust optionnel du cœur du système d'artefact émergent — les agrégations du journal de traces (`TraceLedger.agent_dispatch_counts`/`.agent_miss_counts`/`.oldest_started_at`), la règle de fraîcheur (`compute_agent_freshness`, issue #396) et le déclencheur de propositions d'artefact (`grimoire.proposals` : nommage mécanique, résolution du porteur issue #402, décision de synchronisation seuil/refus issue #395/#394/#389) (issue #354). `rust/grimoire-traces-core/`, bascule `GRIMOIRE_TRACES_BACKEND=python|rust|auto` (lue indépendamment par `grimoire.traces.ledger` et `grimoire.proposals`, qui ne s'importent pas l'un l'autre), jobs CI `rust-traces / cargo` et `rust-traces / parity` dans `.github/workflows/rust-cores.yml`, roue toujours `py3-none-any`. Défaut trouvé par l'oracle Rust et corrigé dans cette même PR : `grimoire.traces.ledger._parse_iso` attrapait `ValueError` mais pas la `TypeError` non rattrapée levée ensuite par `datetime.now(tz=UTC) - datetime.fromisoformat(...)` sur un horodatage ISO-8601 *naïf* (sans décalage) — un journal JSONL édité à la main peut en porter un, et `compute_agent_freshness` revendique explicitement ne jamais lever sur un journal arbitraire ; corrigé en traitant un horodatage naïf comme UTC des deux côtés (même correctif que `grimoire_traces_core`, qui n'a jamais eu ce trou). Invariants de la doctrine rendus impossibles à violer par construction (clampés/exclus dans la fonction de décision elle-même, jamais par un appelant qui pourrait l'oublier) : seuil de proposition jamais sous 2, aucune proposition au premier non-choix, une proposition refusée ne revient que si son compte a doublé depuis le refus, la persona d'entrée est exclue de la recherche de porteur avant même de lire son `use_when`, le match de catégorie se fait par mot entier (limite de mot Unicode) et non par sous-chaîne. Corpus fixture de dix journaux JSONL réalistes (`tests/fixtures/traces_ledgers/`) et fuzz léger (200 enregistrements aléatoires) prouvant qu'aucune des fonctions d'agrégation/fraîcheur ne lève jamais, sous aucun backend, et qu'un champ de contenu libre (`prompt`/`request`) écrit à la main n'est jamais agrégé.
176
+
177
+ - **fix(up): `identity` ne corrompt plus un scalaire commenté de `project-context.yaml` (#426).**
178
+ `cmd_setup._apply_project_context` réécrivait chaque ligne `user:` connue
179
+ avec une regex `.+` qui avalait tout le reste de la ligne — valeur *et*
180
+ commentaire inline — comme si c'était « la valeur », puis rewrappait ce
181
+ texte entier entre guillemets. `skill_level: "expert" # beginner |
182
+ intermediate | expert` devenait `skill_level: ""expert" # beginner |
183
+ intermediate | expert"` à chaque `grimoire up`, y compris quand la valeur
184
+ ne changeait pas — et cassait ensuite `grimoire doctor` (`GR002`, YAML
185
+ imparsable). Un nouveau `_split_scalar_and_comment` sépare correctement
186
+ le scalaire (quoté ou non) du commentaire qui le suit avant toute lecture
187
+ ou réécriture, et `_apply_project_context` recolle le commentaire original
188
+ après la nouvelle valeur au lieu de le jeter.
189
+
10
190
  ## [3.44.2] - 2026-09-11
11
191
 
12
192
  - **fix(hosts): `collect_agents` résout ses propres skills quand `known_skills` n'est pas fourni — `SessionStart` et le porteur de proposition ne plantent plus sur un agent à skills attachés (#423).**
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: grimoire-kit
3
- Version: 3.44.2
3
+ Version: 3.46.0
4
4
  Summary: Composable AI agent platform — personas, memory, workflows, and quality automation for any project.
5
5
  Project-URL: Homepage, https://github.com/Guilhem-Bonnet/Grimoire-kit
6
6
  Project-URL: Repository, https://github.com/Guilhem-Bonnet/Grimoire-kit
@@ -27,7 +27,7 @@ Requires-Dist: typer>=0.12
27
27
  Provides-Extra: all
28
28
  Requires-Dist: chromadb<0.7,>=0.6; extra == 'all'
29
29
  Requires-Dist: fastembed>=0.8; extra == 'all'
30
- Requires-Dist: mcp<3,>=1.10; extra == 'all'
30
+ Requires-Dist: mcp<3,>=2.0; extra == 'all'
31
31
  Requires-Dist: neo4j>=5.0; extra == 'all'
32
32
  Requires-Dist: ollama>=0.3; extra == 'all'
33
33
  Requires-Dist: qdrant-client>=1.9; extra == 'all'
@@ -37,7 +37,7 @@ Provides-Extra: dev
37
37
  Requires-Dist: chromadb<0.7,>=0.6; extra == 'dev'
38
38
  Requires-Dist: fastembed>=0.8; extra == 'dev'
39
39
  Requires-Dist: hypothesis>=6.100; extra == 'dev'
40
- Requires-Dist: mcp<3,>=1.10; extra == 'dev'
40
+ Requires-Dist: mcp<3,>=2.0; extra == 'dev'
41
41
  Requires-Dist: mypy>=1.10; extra == 'dev'
42
42
  Requires-Dist: neo4j>=5.0; extra == 'dev'
43
43
  Requires-Dist: ollama>=0.3; extra == 'dev'
@@ -56,7 +56,7 @@ Requires-Dist: mkdocs-material>=9.5; extra == 'docs'
56
56
  Requires-Dist: mkdocstrings[python]>=0.25; extra == 'docs'
57
57
  Requires-Dist: pymdown-extensions>=10.0; extra == 'docs'
58
58
  Provides-Extra: mcp
59
- Requires-Dist: mcp<3,>=1.10; extra == 'mcp'
59
+ Requires-Dist: mcp<3,>=2.0; extra == 'mcp'
60
60
  Provides-Extra: mempalace
61
61
  Requires-Dist: chromadb<0.7,>=0.6; extra == 'mempalace'
62
62
  Provides-Extra: neo4j
@@ -588,42 +588,50 @@ conditions d'arrêt) sont des défauts de harness, pas de modèle.
588
588
 
589
589
  ## <img src="../docs/assets/icons/handshake.svg" width="28" height="28" alt=""> 10. Correspondance Grimoire ↔ industrie
590
590
 
591
- Statuts : **aligné** (même pratique, même niveau) ; **en avance** (Grimoire va plus
592
- loin que la pratique publiée) ; **à combler** (l'industrie a une pratique prouvée que
593
- Grimoire n'a pas encore, ou pas au même niveau).
591
+ Mise à jour 2026-09-12, audit de positionnement (`docs/audits/positionnement-2026-09-12.md`),
592
+ suite à la version 3.41.0 → 3.45.0. Statuts : **aligné** (même pratique, même
593
+ niveau) ; **en avance** (Grimoire va plus loin que la pratique publiée) ; **à
594
+ combler** (l'industrie a une pratique prouvée que Grimoire n'a pas encore, ou
595
+ pas au même niveau). Un écart comblé ou partiellement comblé porte la
596
+ référence de l'issue ou de la PR qui l'a fait bouger, conformément à la
597
+ section 12.
594
598
 
595
599
  | Protocole ou mécanisme Grimoire | Équivalent industriel | Écart | Statut |
596
600
  |---|---|---|---|
597
601
  | SOG, point d'entrée unique et dispatch invisible (`orchestrator-gateway.md`) | Manager pattern OpenAI, Coordinator ADK, Harness Agent MAF | Même architecture ; Grimoire ajoute la détection de zones d'ombre et le batching de questions | aligné |
598
602
  | HUP, seuils de confiance vert/jaune/rouge (`honest-uncertainty-protocol.md`) | « Why language models hallucinate » (récompenser l'abstention) ; MAST FM-2.2 | Aucun éditeur n'expose un protocole équivalent côté agent ; l'industrie le traite à l'entraînement | en avance |
599
603
  | QEC, remontée groupée des questions (`question-escalation-chain.md`) | Elicitation MCP, `interrupt()` LangGraph, `request_confirmation` ADK, HITL OpenAI | Grimoire groupe les questions ; l'industrie les pose une à une | en avance |
600
- | CVTL, vérification croisée (`cross-validation-trust.md`) | Evaluator-optimizer, Writer/Reviewer séparés, Agent-as-a-Judge | Aligné sur la séparation générateur-évaluateur ; à outiller avec pass^k et coût par tâche | aligné |
604
+ | CVTL, vérification croisée (`cross-validation-trust.md`) | Evaluator-optimizer, Writer/Reviewer séparés, Agent-as-a-Judge | Aligné sur la séparation générateur-évaluateur ; **pass^k livré** (`grimoire.evals.schemas.pass_hat_k`, amendement A3 du protocole d'évals, 2026-09-08) mais seulement au niveau campagne — aucune campagne ne l'a encore consommé et il n'est pas branché sur CVTL elle-même ; coût par tâche mesuré une fois à la main (rejeu dispatch, #307, 2026-09-11), jamais instrumenté | aligné |
601
605
  | PCE, débats productifs (`productive-conflict-engine.md`) | Multi-agent debate | La recherche montre un gain rarement supérieur à Self-Consistency à coût bien supérieur ; réserver PCE aux décisions, pas à la production | à cadrer |
602
606
  | AMN et SHP, maillage et huddles (`agent-mesh-network.md`, `selective-huddle-protocol.md`) | Agent teams Claude Code, Swarm Strands, handoffs | Aligné sur le plafond d'échanges P2P ; la limite de cinq échanges avant notification SOG répond à MAST FM-1.3 et FM-1.5 | aligné |
603
607
  | ARG, graphe de relations (`agent-relationship-graph.md`) | Graphe d'orchestration OpenAI, Graph ADK/Strands | Aligné ; Grimoire l'utilise pour le routage, l'industrie pour l'exécution | aligné |
604
- | ELSS, journal d'événements partagé (`event-log-shared-state.md`) | Checkpointers LangGraph, task ledger Magentic, mailbox agent teams | Aligné ; à projeter en spans OTel GenAI (`invoke_agent`, `execute_tool`) | à combler |
605
- | CC, Completion Contract (`cc-reference.md`, `cc-verify.sh`) | « Give Claude a check it can run », Stop hooks, Ralph loop | Aligné ; c'est la réponse directe à MAST FM-3.x | aligné |
606
- | Standard agentique : `evidence-gated-fsm`, `mission-evidence-ledger`, gates de preuve | Trace grading OpenAI, evals ADK, HAL | Grimoire exige la preuve avant clôture ; l'industrie évalue après coup | en avance |
607
- | `tool-mediation-gate`, `governed-hook-gateway`, registre de sûreté des hooks en mode shadow/canary/enforced | Cotation de risque par outil (OpenAI), Policy Cedar/Dogwood (AgentCore), OWASP Agent Control Standard | Même idée ; Dogwood ajoute des politiques temporelles par session (compteurs, budgets) que Grimoire n'a pas | à combler |
608
- | `provider-routing-contract`, `provider-cost-slo`, `model-routing.yaml` | Routing et cascades (FrugalGPT, RouteLLM), `effort` par sous-agent | Aligné sur le principe ; mesurer le coût par tâche résolue et le pass^k, pas seulement le SLO par fournisseur | à combler |
609
- | `governed-memory-policy`, composition mémoire, Mémoire OS | Memory Bank, AgentCore Memory, Letta, memory tool | Aligné ; ajouter la validation externe des écritures contre le memory poisoning (OWASP T1, ASI06) | à combler |
608
+ | ELSS, journal d'événements partagé (`event-log-shared-state.md`) | Checkpointers LangGraph, task ledger Magentic, mailbox agent teams | **Export en spans OTel GenAI livré** (`TraceLedger.export_otel_jsonl`, un span `invoke_agent` par trace plus un `execute_tool` par appel d'outil, format semconv exact — #322, 2026-09-08). **Comblé le 2026-09-12** (#139) : `grimoire.missions.trace` corrèle par `task_id`/`traceId` le Mission Ledger, le TraceLedger (outils, gates, dispatch d'agent) et, s'il existe, l'export OTel lui-même, en CLI (`grimoire task trace`) comme dans le cockpit ; `grimoire task trace-export --format otel` reste une commande manuelle, mais son résultat est désormais lu, pas seulement produit | aligné |
609
+ | CC, Completion Contract (`cc-reference.md`, `cc-verify.sh`) | « Give Claude a check it can run », Stop hooks, Ralph loop | Aligné ; **renforcé par #428** (3.45.0) : le gate de `flow run --executor dispatch` exécute désormais l'acceptance structurée d'un node, pas seulement la conformité de l'enveloppe JSON — corrige un faux vert réel trouvé par le rejeu #307 (nœud fermé vert alors que sa suite `pytest` ne s'exécutait pas) | aligné |
610
+ | Standard agentique : `evidence-gated-fsm`, `mission-evidence-ledger`, gates de preuve | Trace grading OpenAI, evals ADK, HAL | Grimoire exige la preuve avant clôture ; l'industrie évalue après coup. Le gate d'acceptance structurée (#428) est la preuve la plus récente que l'exigence porte sur l'exécution réelle, pas la forme de la réponse | en avance |
611
+ | `tool-mediation-gate`, `governed-hook-gateway`, registre de sûreté des hooks en mode shadow/canary/enforced | Cotation de risque par outil (OpenAI), Policy Cedar/Dogwood (AgentCore), OWASP Agent Control Standard | Même idée ; Dogwood ajoute des politiques temporelles par session (compteurs, budgets) que Grimoire n'a pas. Vérifié au code le 2026-09-12 (`grimoire/policies/`) : aucun compteur ni budget par session, intact | à combler |
612
+ | `provider-routing-contract`, `provider-cost-slo`, `model-routing.yaml` | Routing et cascades (FrugalGPT, RouteLLM), `effort` par sous-agent | Aligné sur le principe. **Première mesure réelle faite** (#307, rejeu 2026-09-11, deux runs complets sur flow réel) : la cascade coûte 56,4 % du coût opus seul par nœud complété, contre 21,5 % projeté par la mesure isolée du lot 0 (#308) — l'écart venait du gate qui fermait vert sur la conformité d'enveloppe plutôt que sur l'acceptance réelle, corrigé par #428. Reste à combler : cette mesure est un rejeu ponctuel, pas une instrumentation continue du coût par tâche résolue | à combler |
613
+ | `governed-memory-policy`, composition mémoire, Mémoire OS | Memory Bank, AgentCore Memory, Letta, memory tool | Aligné ; ajouter la validation externe des écritures contre le memory poisoning (OWASP T1, ASI06). Revérifié le 2026-09-12 (recherche `memory poisoning`/`validation externe` dans le code) : intact, aucun mécanisme trouvé | à combler |
610
614
  | `advanced-context-orchestrator`, `context-contract.yaml`, capsule de contexte PreCompact | Context engineering Anthropic, write/select/compress/isolate | Aligné ; la capsule PreCompact est une pratique que peu d'hôtes formalisent | en avance |
611
- | Agent Skills du kit (`.github/skills`, `skill-forge` avec gate qualité) | agentskills.io, `skills-ref validate`, SkillsBench | Aligné sur le format ; ajouter la validation `skills-ref` et un eval par skill (evals.json) | à combler |
612
- | Hooks Forge via gateway (SessionStart, UserPromptSubmit, PreToolUse, PostToolUse, PreCompact, Subagent*, Stop) | Familles d'événements Claude Code, Codex, Gemini, Copilot, Kiro | Aligné ; les hôtes exposent désormais `TaskCreated`, `TaskCompleted`, `InstructionsLoaded`, `PostToolUseFailure` que la Forge n'exploite pas | à combler |
615
+ | Agent Skills du kit (`.github/skills`, `skill-forge` avec gate qualité) | agentskills.io, `skills-ref validate`, SkillsBench | Aligné sur le format ; ajouter la validation `skills-ref` et un eval par skill (evals.json), toujours intact au 2026-09-12. Changement de contexte à noter : les archétypes ont été refaits (#375, #380, 3.42.0) et l'attachement d'un skill à son agent porteur est devenu la règle par défaut (#377/#372, doctrine `docs/artifact-doctrine.md`) — le nombre de skills transversaux a chuté, mais cela ne comble pas l'écart de validation | à combler |
616
+ | Hooks Forge via gateway (SessionStart, UserPromptSubmit, PreToolUse, PostToolUse, PreCompact, Subagent*, Stop) | Familles d'événements Claude Code, Codex, Gemini, Copilot, Kiro | **Partiellement comblé** : `PostToolUseFailure` et `SubagentStart` sont désormais des `HookEvent` exploités par le kit (#321, fusionné le 2026-09-08 dans l'après-midi, donc après la rédaction de cette référence le même jour) ; `TaskCreated`, `TaskCompleted` et `InstructionsLoaded` restent absents de `grimoire/hosts/events.py` au 2026-09-12 | à combler |
613
617
  | Persona d'entrée injectée par SessionStart | Aucun hôte ne sait démarrer dans un agent (constat 2026-08-29) | Pratique propre à Grimoire | en avance |
614
- | Pont MCP du kit (`grimoire` serveur MCP) | MCP 2026-07-28 stateless, MRTR, `server/discover`, headers `Mcp-Method` | Le kit cible une révision antérieure ; planifier la migration avant le retrait de Roots et Sampling (2027-07-28) | à combler |
615
- | Observabilité cockpit, `observability-policy.yaml` | OTel GenAI spans et métriques, Langfuse, Phoenix | Émettre les spans `invoke_agent` et `execute_tool` au format semconv pour brancher n'importe quel backend | à combler |
616
- | Sécurité : garde des surfaces de contrôle, patterns destructifs | Six patterns Beurer-Kellner, CaMeL, sandbox à deux phases | Ajouter un pattern Plan-Then-Execute explicite pour les tâches qui lisent du contenu externe ; documenter l'isolation d'exécution | à combler |
618
+ | Pont MCP du kit (`grimoire` serveur MCP) | MCP 2026-07-28 stateless, MRTR, `server/discover`, headers `Mcp-Method` | **Comblé pendant la revue de cet audit** (issue #436, PR #437, 2026-09-12) : plancher `mcp>=2.0,<3`, `server/discover` négocie 2026-07-28 par défaut, `initialize` d'un hôte 2025-06-18/2025-11-25 toujours servi sur la même connexion, aucun état entre appels hors fichiers du projet — vérifié par test. Roots/Sampling/Logging jamais câblés, rien à retirer. Transport HTTP/SSE et OTel `_meta` restent hors périmètre | aligné |
619
+ | Observabilité cockpit, `observability-policy.yaml` | OTel GenAI spans et métriques, Langfuse, Phoenix | **Émission livrée** : `otel_conventions.py` définit le vocabulaire semconv exact (`gen_ai.provider.name`, spans `invoke_agent`/`execute_tool`) et `TraceLedger.export_otel_jsonl` (#322) les produit réellement. **Consommation comblée le 2026-09-12** (#139) : `web/workspace/spaces/executer.js` (timeline par tâche, filtrable par source et gravité, drill-down depuis une carte du board) et `observer.js` (drill-down depuis un span qui porte `grimoire.task_id`) la consomment côté cockpit ; l'ancien `web/observability.html` (`framework/tools/observatory.py`) n'a pas bougé et reste hors périmètre de ce correctif | aligné |
620
+ | Sécurité : garde des surfaces de contrôle, patterns destructifs | Six patterns Beurer-Kellner, CaMeL, sandbox à deux phases | Ajouter un pattern Plan-Then-Execute explicite pour les tâches qui lisent du contenu externe ; documenter l'isolation d'exécution. Revérifié le 2026-09-12 : intact, aucune occurrence trouvée | à combler |
617
621
  | Identité des agents | Entra Agent ID, SPIFFE, ID-JAG | Grimoire n'a pas d'identité par agent ; hors périmètre tant que les agents restent locaux | à suivre |
622
+ | **Nouveau** — système émergent non-choix → proposition → acceptation (`grimoire.proposals`, `agent_miss_counts`, #394/#395/#402, 3.43.0/3.43.1) | Skills auto-écrits (section 9) : SkillsBench, ACE playbook évolutif | Grimoire propose sur un seuil mécanique de non-choix répétés (jamais 1), par gabarit sans appel LLM, avec acceptation humaine explicite obligatoire (`grimoire proposals accept`) ; l'industrie évalue des skills déjà écrits par un LLM (SkillsBench) ou consolide un playbook en continu à l'exécution (ACE). Aucun des deux ne fait du taux d'échec de dispatch un déclencheur de proposition — mécanisme distinct, pas un même pattern appliqué plus tôt | en avance |
623
+ | **Nouveau** — règle de fraîcheur des agents (`compute_agent_freshness`, #396/#398, 3.43.0) | — | Aucun équivalent trouvé dans le corpus de sources de la section 11 : signale un agent non choisi depuis N jours (défaut 90), ne le retire ni ne le déprécie jamais automatiquement | en avance |
624
+ | **Nouveau** — cœurs Rust optionnels comme oracle de correction, jamais de performance (#354 et ses six ports : `policies`, `schema/validator`, `hosts`, `flows`, `dispatch`, `traces`) | Differential testing / second implémentation comme oracle (pratique d'ingénierie reconnue, non nommée dans le corpus de sources listées section 11) | Mesuré (commentaire #354, 2026-09-11) : le cœur Rust est plus lent que le Python qu'il remplace sur les cinq micro-benchmarks, écart dans le bruit de mesure en macro — décision de Guilhem : conservé pour les défauts trouvés par le compilateur (sept corrigés à ce jour), pas pour la vitesse. Aucune roue publiée (assumé) | aligné (hors corpus) |
618
625
 
619
626
  Priorités issues de cette carte, à instruire comme issues produit dans le dépôt
620
627
  Grimoire-kit (jamais comme chantiers d'atelier) :
621
628
 
622
- 1. Projection OTel GenAI des événements ELSS et du cockpit.
623
- 2. Coût par tâche résolue et pass^k dans les gates de preuve.
624
- 3. Validation externe des écritures mémoire.
625
- 4. Migration du pont MCP vers la révision 2026-07-28.
626
- 5. Politiques temporelles par session sur le tool-mediation-gate.
629
+ 1. Faire courir pass^k en continu et instrumenter le coût par tâche résolue directement dans les gates de preuve, pas seulement en campagne ponctuelle ou en rejeu manuel (#307).
630
+ 2. Validation externe des écritures mémoire.
631
+ 3. Politiques temporelles par session sur le tool-mediation-gate.
632
+ 4. Réparer #427 (un override d'agent en copie intégrale ne reçoit plus jamais les mises à niveau du kit, sans aucun signal de `doctor`) — promesse de personnalisation de la doctrine des artefacts non tenue par le code, distincte d'un écart face à l'industrie.
633
+
634
+ (Migration du pont MCP vers la révision 2026-07-28 : comblée pendant la revue de cet audit, issue #436, PR #437, 2026-09-12. Cockpit branché sur l'export OTel et timeline unifiée par tâche : comblé le 2026-09-12, issue #139.)
627
635
 
628
636
  <img src="../docs/assets/divider.svg" width="100%" alt="">
629
637
 
@@ -177,7 +177,7 @@ patterns:
177
177
  required_artifacts: ["llm-provider-registry.yaml"]
178
178
  rule_refs: ["provider.cost-budgeted"]
179
179
  hook_refs: []
180
- check_refs: []
180
+ check_refs: ["dispatch.cost_slo"]
181
181
  - id: tool-blast-radius-limiter
182
182
  category: security
183
183
  maturity: starter
@@ -37,14 +37,20 @@ dependencies = [
37
37
  # fermée sur la 3 : une majeure non parue ne peut pas être déclarée compatible.
38
38
  # Lever la borne demande de porter le serveur sur l'API 2.x.
39
39
  #
40
- # Borne basse relevée à 1.10 : le serveur n'utilise plus seulement le décorateur
41
- # `tool()`, il déclare des `ToolAnnotations` (révision de protocole 2025-03-26)
42
- # et rend ses échecs francs en `CallToolResult` avec `structuredContent`
43
- # (révision 2025-06-18). Sous 1.10 ces deux surfaces n'existent pas ou pas
44
- # ensemble : `pip install grimoire-kit[mcp]` livrerait à nouveau un serveur qui
45
- # casse à l'import plutôt qu'à l'appel. La borne haute reste `<3`, pour la
46
- # raison ci-dessus.
47
- mcp = ["mcp>=1.10,<3"]
40
+ # Borne basse relevée à 2.0 (issue #436, migration vers la révision de
41
+ # protocole 2026-07-28) : `mcp` 1.x plafonne à la révision 2025-11-25
42
+ # (`types.LATEST_PROTOCOL_VERSION == "2025-11-25"`, pas de
43
+ # `server/discover`) — vérifié contre 1.30.0, la dernière 1.x publiée, pas
44
+ # supposé. À partir de 2.0.0 (vérifié 2.0.0 à 2.2.0), le SDK sait déjà parler
45
+ # 2026-07-28 : `server/discover` a un handler par défaut dans
46
+ # `mcp.server.lowlevel.Server`, et le handshake `initialize` d'un hôte plus
47
+ # ancien (2025-06-18, 2025-11-25) continue de fonctionner via
48
+ # `serve_dual_era_loop` — aucune ligne du pont n'a dû changer pour ça. Sous
49
+ # 2.0 le pont resterait fonctionnellement correct mais annoncerait une
50
+ # révision que la spécification a déjà remplacée, et le jour du retrait de
51
+ # Roots/Sampling (prévu à partir de 2027-07-28) découvrirait la dette d'un
52
+ # coup. La borne haute reste `<3`, pour la raison ci-dessus.
53
+ mcp = ["mcp>=2.0,<3"]
48
54
  # Les extras ci-dessous restent volontairement sans borne haute. Audit du
49
55
  # 2026-08-15, mené après la panne mcp : chacun n'est utilisé qu'à travers un
50
56
  # point d'entrée canonique de haut niveau, celui qui survit aux majeures.
@@ -208,6 +214,7 @@ ignore_missing_imports = true
208
214
  # third such core (issue #354): rust/grimoire-hosts-core/.
209
215
  # `grimoire_flows_core` is the fourth: rust/grimoire-flows-core/.
210
216
  # `grimoire_dispatch_core` is the fifth: rust/grimoire-dispatch-core/.
217
+ # `grimoire_traces_core` is the sixth: rust/grimoire-traces-core/.
211
218
  [[tool.mypy.overrides]]
212
219
  module = [
213
220
  "grimoire_policies_core",
@@ -215,6 +222,7 @@ module = [
215
222
  "grimoire_hosts_core",
216
223
  "grimoire_flows_core",
217
224
  "grimoire_dispatch_core",
225
+ "grimoire_traces_core",
218
226
  ]
219
227
  ignore_missing_imports = true
220
228
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schema": "grimoire-kit-file-hashes/v1",
3
- "generated_for": "3.44.2",
3
+ "generated_for": "3.46.0",
4
4
  "digests": {
5
5
  "002d1e68ce00769ee09d1e94f4af260b952837f7d1557080c2fd505216c23ac0": {
6
6
  "version": "3.11.2",
@@ -1266,6 +1266,14 @@
1266
1266
  "version": "3.24.0",
1267
1267
  "path": "archetypes/platform-engineering/agents/platform-architect.md"
1268
1268
  },
1269
+ "6050bce4a13ae354a04a63b368e173f612539aab2a1b918de37d84e459b3291d": {
1270
+ "version": "3.46.0",
1271
+ "path": "framework/agentic-industry-reference.md"
1272
+ },
1273
+ "607299dda9ae7b510bb36fc02f0bb8d114ecbe4f37b56c707c6dc8d0a6d9689d": {
1274
+ "version": "3.46.0",
1275
+ "path": "framework/agentic-standard/templates/pattern-catalog.yaml"
1276
+ },
1269
1277
  "609134a13d67a6d84a5a0d9f58784e7ab57b0e3945652ff90a165347160e1fcd": {
1270
1278
  "version": "3.42.0",
1271
1279
  "path": "archetypes/platform-engineering/skills/platform-deploy-release.md"
@@ -0,0 +1,18 @@
1
+ [build-system]
2
+ requires = ["maturin>=1.7,<2"]
3
+ build-backend = "maturin"
4
+
5
+ [project]
6
+ name = "grimoire-traces-core"
7
+ version = "0.1.0"
8
+ description = "Coeur Rust optionnel des agregations du journal de traces, de la regle de fraicheur et du declencheur de propositions (PyO3). Non publie sur PyPI — build local uniquement, voir CONTRIBUTING.md."
9
+ requires-python = ">=3.12"
10
+ license = { text = "MIT" }
11
+ classifiers = [
12
+ "Programming Language :: Rust",
13
+ "Programming Language :: Python :: 3.12",
14
+ "Private :: Do Not Upload",
15
+ ]
16
+
17
+ [tool.maturin]
18
+ module-name = "grimoire_traces_core"
@@ -0,0 +1 @@
1
+ __version__ = "3.46.0"
@@ -439,6 +439,29 @@ def doctor(
439
439
  for check_name, check_passed, check_detail in integrity_checks(target):
440
440
  _record(check_name, passed=check_passed, detail=check_detail)
441
441
 
442
+ # 4quinquies. Override drift (issue #427) — un override est une copie ou
443
+ # une extension du kit, jamais une garantie qu'il en reçoit encore les
444
+ # mises à jour. Jamais FAIL : une dette de personnalisation, pas une
445
+ # panne. Une entrée par override nommant l'agent et la section changée,
446
+ # pas un agrégat — c'est ce que le critère d'arrêt de l'issue demande.
447
+ with _timed_phase("override_drift"):
448
+ from grimoire.core.override_drift import describe_drift, project_override_drift
449
+
450
+ for drift in project_override_drift(target):
451
+ if drift.status == "fresh":
452
+ continue # à jour : rien à signaler, pas de bruit sur chaque `doctor`
453
+ level, detail = describe_drift(drift)
454
+ drift_entry: dict[str, Any] = {
455
+ "name": f"override_drift_{drift.name}",
456
+ "passed": True,
457
+ "detail": detail,
458
+ "level": level,
459
+ }
460
+ results.append(drift_entry)
461
+ if fmt != "json":
462
+ tag = "[yellow]WARN[/yellow]" if level == "warn" else "[dim]○[/dim]"
463
+ console.print(f" {tag} {detail}")
464
+
442
465
  # 5. Config semantic validation
443
466
  if cfg:
444
467
  warnings = cfg.validate()
@@ -1001,7 +1024,10 @@ LazyTyperGroup.configure(
1001
1024
  "features": LazyGroupSpec("grimoire.cli.cmd_features", "features_app", rich_help_panel="Project"),
1002
1025
  "host": LazyGroupSpec("grimoire.cli.cmd_host", "host_app", rich_help_panel="Project"),
1003
1026
  "providers": LazyGroupSpec("grimoire.cli.cmd_providers", "providers_app", rich_help_panel="Project"),
1027
+ "dispatch": LazyGroupSpec("grimoire.cli.cmd_dispatch", "dispatch_app", rich_help_panel="Project"),
1028
+ "policies": LazyGroupSpec("grimoire.cli.cmd_policies", "policies_app", rich_help_panel="Project"),
1004
1029
  "proposals": LazyGroupSpec("grimoire.cli.cmd_proposals", "proposals_app", rich_help_panel="Agents"),
1030
+ "agent": LazyGroupSpec("grimoire.cli.cmd_agent", "agent_app", rich_help_panel="Agents"),
1005
1031
  "web": LazyGroupSpec("grimoire.cli.cmd_web", "web_app", rich_help_panel="Data"),
1006
1032
  },
1007
1033
  commands={
@@ -1022,7 +1048,7 @@ LazyTyperGroup.configure(
1022
1048
  "repair",
1023
1049
  "memory", "hooks", "cadrage", "debugger", "dbg", "registry", "workflows",
1024
1050
  "wf", "standard", "ext", "blueprint", "flow", "cockpit", "task",
1025
- "stigmergy", "features", "host", "providers", "proposals", "web",
1051
+ "stigmergy", "features", "host", "providers", "dispatch", "proposals", "agent", "web",
1026
1052
  "config", "completion", "self", "plugins",
1027
1053
  ],
1028
1054
  )
@@ -0,0 +1,70 @@
1
+ """``grimoire agent`` — inspect and manage a project's own agent overrides.
2
+
3
+ Only one command lives here today: ``agent override convert`` (issue #427),
4
+ the migration path ``grimoire up`` names but never applies on its own (see
5
+ ``_step_override_review`` in :mod:`grimoire.cli.cmd_up`). Named as its own
6
+ top-level group rather than folded into an existing one — ``registry`` reads
7
+ the kit's own catalog, ``standard`` is the governed profile — because a
8
+ project's agent overrides are neither.
9
+ """
10
+
11
+ from __future__ import annotations
12
+
13
+ from pathlib import Path
14
+
15
+ import typer
16
+ from rich.console import Console
17
+
18
+ console = Console(stderr=True)
19
+
20
+ agent_app = typer.Typer(help="Inspect and manage this project's agent overrides.")
21
+ override_app = typer.Typer(help="Compare, convert and review agent overrides against the kit.")
22
+ agent_app.add_typer(override_app, name="override")
23
+
24
+ _convert_name_arg = typer.Argument(..., help="Agent name (the override file's stem).")
25
+ _convert_path_opt = typer.Option(Path(), "--path", help="Project root.")
26
+ _convert_dry_run_opt = typer.Option(
27
+ False, "--dry-run", help="Show the resulting partial override without writing it."
28
+ )
29
+
30
+
31
+ @override_app.command("convert")
32
+ def convert(
33
+ name: str = _convert_name_arg,
34
+ path: Path = _convert_path_opt,
35
+ dry_run: bool = _convert_dry_run_opt,
36
+ ) -> None:
37
+ """Convert a full-copy override into the equivalent partial one.
38
+
39
+ A partial override (``extends: kit``) only redefines the frontmatter
40
+ fields that differ from the kit's own file — the body and every other
41
+ field stay live against future ``grimoire up`` runs. Refuses, naming the
42
+ lines that differ, when the override's body itself diverges from the
43
+ kit's: converting would otherwise silently drop a real customisation, and
44
+ this command never merges text.
45
+
46
+ [dim]Examples:[/dim]
47
+ [cyan]grimoire agent override convert ops-engineer --dry-run[/cyan]
48
+ [cyan]grimoire agent override convert ops-engineer[/cyan]
49
+ """
50
+ from grimoire.core.override_drift import OverrideConversionRefusedError, convert_override
51
+
52
+ target = path.resolve()
53
+ try:
54
+ result = convert_override(target, name, dry_run=dry_run)
55
+ except FileNotFoundError as exc:
56
+ console.print(f"[red]{exc}[/red]")
57
+ raise typer.Exit(1) from exc
58
+ except OverrideConversionRefusedError as exc:
59
+ console.print(f"[red]Refus :[/red] {exc}")
60
+ raise typer.Exit(1) from exc
61
+
62
+ fields_label = "aucun champ propre — juste `extends: kit`" if not result.fields else ", ".join(result.fields)
63
+
64
+ if dry_run:
65
+ console.print(f"[dim]dry-run — rien n'est écrit. Résultat pour « {name} » :[/dim]\n")
66
+ console.print(result.rendered)
67
+ console.print(f"\n[dim]Champs figés :[/dim] {fields_label}")
68
+ else:
69
+ console.print(f"[green]Converti :[/green] {result.override_ref}")
70
+ console.print(f"[dim]Champs figés :[/dim] {fields_label}")