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.
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/CHANGELOG.md +180 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/PKG-INFO +4 -4
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-industry-reference.md +28 -20
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/pattern-catalog.yaml +1 -1
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/pyproject.toml +16 -8
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/registry/kit-file-hashes.json +9 -1
- grimoire_kit-3.46.0/rust/grimoire-traces-core/pyproject.toml +18 -0
- grimoire_kit-3.46.0/src/grimoire/__version__.py +1 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/cli/app.py +27 -1
- grimoire_kit-3.46.0/src/grimoire/cli/cmd_agent.py +70 -0
- grimoire_kit-3.46.0/src/grimoire/cli/cmd_dispatch.py +148 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/cli/cmd_flow.py +17 -2
- grimoire_kit-3.46.0/src/grimoire/cli/cmd_policies.py +164 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/cli/cmd_setup.py +50 -4
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/cli/cmd_standard.py +4 -1
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/cli/cmd_task.py +12 -3
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/cli/cmd_up.py +33 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/cli/cmd_upgrade.py +51 -6
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/core/config.py +44 -1
- grimoire_kit-3.46.0/src/grimoire/core/override_drift.py +327 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/core/standard_checks/registry.py +1 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/core/standard_checks/verifiers.py +130 -0
- grimoire_kit-3.46.0/src/grimoire/flows/blueprint_loader.py +290 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/flows/dispatch_executor.py +132 -5
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/flows/schemas.py +75 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/hosts/collect.py +146 -9
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/hosts/decisions/activation.py +28 -0
- grimoire_kit-3.46.0/src/grimoire/hosts/decisions/evidence_trace.py +62 -0
- grimoire_kit-3.46.0/src/grimoire/hosts/decisions/tool_policy.py +198 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/hosts/surface.py +17 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/mcp/server.py +14 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/missions/dispatch.py +324 -20
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/missions/trace.py +114 -5
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/missions/verifiability.py +24 -10
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/policies/engine.py +17 -1
- grimoire_kit-3.46.0/src/grimoire/policies/rules_config.py +103 -0
- grimoire_kit-3.46.0/src/grimoire/policies/schemas.py +390 -0
- grimoire_kit-3.46.0/src/grimoire/policies/session_state.py +173 -0
- grimoire_kit-3.46.0/src/grimoire/policies/temporal.py +374 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/proposals.py +225 -28
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/providers/audit.py +15 -5
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/runtime/kernel.py +31 -1
- grimoire_kit-3.46.0/src/grimoire/tools/_common.py +187 -0
- grimoire_kit-3.46.0/src/grimoire/tools/source_assist.py +348 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/workspace_api.py +24 -17
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/workspace_language.py +12 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/workspace_routes.py +64 -6
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/traces/ledger.py +371 -9
- grimoire_kit-3.46.0/version.txt +1 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/kanban.html +4 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/workspace/README.md +5 -2
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/workspace/api.js +10 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/workspace/spaces/executer.js +165 -11
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/workspace/spaces/observer.js +23 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/workspace/spaces/source-editor.js +228 -3
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/workspace/spaces/source.css +83 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/workspace/spaces/source.js +3 -1
- grimoire_kit-3.44.2/src/grimoire/__version__.py +0 -1
- grimoire_kit-3.44.2/src/grimoire/flows/blueprint_loader.py +0 -159
- grimoire_kit-3.44.2/src/grimoire/hosts/decisions/evidence_trace.py +0 -24
- grimoire_kit-3.44.2/src/grimoire/hosts/decisions/tool_policy.py +0 -118
- grimoire_kit-3.44.2/src/grimoire/policies/schemas.py +0 -208
- grimoire_kit-3.44.2/src/grimoire/tools/_common.py +0 -109
- grimoire_kit-3.44.2/version.txt +0 -1
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/.gitignore +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/LICENSE +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/README.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/_grimoire/_config/custom/prompt-templates/README.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/agentic-standard/archetype.dna.yaml +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/agentic-standard/shared-context.tpl.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/creative-studio/agents/blender-expert.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/creative-studio/agents/brand-designer.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/creative-studio/agents/illustration-expert.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/creative-studio/archetype.dna.yaml +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/creative-studio/shared-context.tpl.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/creative-studio/skills/creative-content-copywriting.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/features/vector-memory/vectus.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/fix-loop/README.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/fix-loop/agents/fix-loop-orchestrator.tpl.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/fix-loop/archetype.dna.yaml +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/fix-loop/workflows/workflow-closed-loop-fix.tpl.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/infra-ops/agents/monitoring-specialist.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/infra-ops/agents/ops-engineer.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/infra-ops/agents/systems-debugger.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/infra-ops/archetype.dna.yaml +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/infra-ops/shared-context.tpl.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/infra-ops/skills/infra-backup-dr.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/infra-ops/skills/infra-k8s-gitops.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/infra-ops/skills/infra-pipeline-cicd.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/infra-ops/skills/infra-security-hardening.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/meta/agents/agent-optimizer.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/meta/agents/concierge.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/meta/agents/security-auditor.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/meta/archetype.dna.yaml +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/meta/skills/meta-art-direction.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/meta/skills/meta-memory-quality.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/meta/skills/meta-project-navigation.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/meta/skills/meta-toolsmithing.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/minimal/agents/custom-agent.tpl.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/minimal/archetype.dna.yaml +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/platform-engineering/agents/backend-engineer.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/platform-engineering/agents/platform-architect.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/platform-engineering/archetype.dna.yaml +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/platform-engineering/shared-context.tpl.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/platform-engineering/skills/platform-deploy-release.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/platform-engineering/skills/platform-reliability-sre.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/platform-engineering/templates/architecture.tpl.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/stack/agents/stack-engineer.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/stack/archetype.dna.yaml +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/stack/skills/stack-ansible.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/stack/skills/stack-docker.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/stack/skills/stack-go.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/stack/skills/stack-k8s.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/stack/skills/stack-python.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/stack/skills/stack-terraform.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/stack/skills/stack-typescript.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/web-app/agents/fullstack-dev.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/web-app/archetype.dna.yaml +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/web-app/shared-context.tpl.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/archetypes/web-app/skills/web-frontend-ux.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/evals/README.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/evals/witnesses/README.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/evals/witnesses/web-app-todo/activated/README.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/evals/witnesses/web-app-todo/app/README.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/evals/witnesses/web-app-todo/app/web/index.html +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/evals/witnesses/web-app-todo/app/web/package-lock.json +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/evals/witnesses/web-app-todo/app/web/package.json +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/evals/witnesses/web-app-todo/app/web/src/App.tsx +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/evals/witnesses/web-app-todo/app/web/src/components/AddTaskForm.tsx +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/evals/witnesses/web-app-todo/app/web/src/components/TaskItem.tsx +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/evals/witnesses/web-app-todo/app/web/src/components/TaskList.tsx +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/evals/witnesses/web-app-todo/app/web/src/main.tsx +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/evals/witnesses/web-app-todo/app/web/src/styles.css +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/evals/witnesses/web-app-todo/app/web/src/test/AddTaskForm.test.tsx +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/evals/witnesses/web-app-todo/app/web/src/test/TaskList.test.tsx +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/evals/witnesses/web-app-todo/app/web/src/test/setup.ts +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/evals/witnesses/web-app-todo/app/web/src/types.ts +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/evals/witnesses/web-app-todo/app/web/tsconfig.json +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/evals/witnesses/web-app-todo/app/web/vite.config.ts +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/evals/witnesses/web-app-todo/enforced/README.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/examples/terraform-houseserver/README.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/examples/web-app-todo/README.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/README.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/autogen/artifacts/agents/autogen-conversation-runner.agent.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/autogen/artifacts/skills/autogen-conversation-design/SKILL.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/autogen/extension.json +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/autogen/scripts/verify-install.sh +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/browser-use/artifacts/agents/browser-use-runner.agent.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/browser-use/artifacts/instructions/browser-evidence.instructions.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/browser-use/extension.json +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/browser-use/scripts/verify-install.sh +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/crewai/artifacts/agents/crewai-crew-runner.agent.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/crewai/artifacts/hooks/crewai-telemetry-bridge.json +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/crewai/artifacts/hooks/crewai-telemetry-bridge.sh +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/crewai/artifacts/prompts/crewai-import-crew.prompt.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/crewai/artifacts/skills/crewai-crew-design/SKILL.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/crewai/extension.json +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/crewai/scripts/register-hooks.sh +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/crewai/scripts/unregister-hooks.sh +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/crewai/scripts/verify-install.sh +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/extension.schema.json +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/fennara-godot/artifacts/skills/godot-evidence-loop/SKILL.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/fennara-godot/extension.json +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/fennara-godot/scripts/setup-mcp.sh +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/fennara-godot/scripts/teardown-mcp.sh +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/fennara-godot/scripts/verify-install.sh +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/grimoire-mcp/artifacts/instructions/mcp-trust-gate.instructions.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/grimoire-mcp/artifacts/skills/grimoire-mcp-setup/SKILL.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/grimoire-mcp/extension.json +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/grimoire-mcp/scripts/verify-install.sh +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/haystack/artifacts/instructions/haystack-rag-governance.instructions.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/haystack/artifacts/skills/haystack-pipeline-design/SKILL.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/haystack/extension.json +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/haystack/scripts/verify-install.sh +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/langfuse/artifacts/hooks/langfuse-trace-export.json +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/langfuse/artifacts/hooks/langfuse-trace-export.sh +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/langfuse/artifacts/instructions/langfuse-observability.instructions.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/langfuse/artifacts/skills/langfuse-tracing-setup/SKILL.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/langfuse/extension.json +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/langfuse/scripts/register-hooks.sh +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/langfuse/scripts/unregister-hooks.sh +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/langfuse/scripts/verify-install.sh +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/langgraph/artifacts/agents/langgraph-graph-runner.agent.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/langgraph/artifacts/prompts/langgraph-import-graph.prompt.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/langgraph/artifacts/skills/langgraph-graph-design/SKILL.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/langgraph/extension.json +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/extensions/langgraph/scripts/verify-install.sh +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/FREEZE.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agent-base-compact.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agent-base.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agent-mesh-network.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agent-relationship-graph.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agent-rules.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agent2agent.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/README.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/capability-map.yaml +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/needs-catalog.yaml +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/profile-map.yaml +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/target-schema.yaml +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/acceptance-record.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/accepted-risks.yaml +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/blast-radius-policy.yaml +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/browser-tool-contract.yaml +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/capability-registry.yaml +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/claim-ledger.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/cluster-action-policy.yaml +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/compliance-declaration.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/compliance-score.yaml +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/compression-gate.yaml +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/context-contract.yaml +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/cost-registry.yaml +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/decision-council.yaml +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/decision-graph.yaml +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/doc-graph-pipeline.yaml +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/environment-policy.yaml +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/evidence-gates.yaml +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/evidence-pack.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/flow-dsl-manifest.yaml +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/guardrail-contract.yaml +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/hook-registry.yaml +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/incident-registry.yaml +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/k8s-agent-manifest.yaml +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/knowledge-source-registry.yaml +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/llm-provider-registry.yaml +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/memory-integrity.yaml +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/memory-policy.yaml +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/merge-lane.yaml +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/mission-brief.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/observability-policy.yaml +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/orchestration-policy.yaml +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/privilege-boundary.yaml +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/prompt-firewall.yaml +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/prompt-version-log.yaml +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/remediation-plan.yaml +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/remote-hygiene.yaml +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/retention-registry.yaml +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/risk-control-matrix.yaml +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/rule-packs.yaml +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/runtime-provider-contract.yaml +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/runtime-surface-registry.yaml +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/task-board.yaml +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/task-envelope.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/tool-registry.yaml +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/visual-evidence.yaml +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/waivers.yaml +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/workflow-state-manifest.yaml +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/templates/workspace-isolation.yaml +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/agentic-standard/traceability.yaml +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/archetype-dna.schema.yaml +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/cc-reference.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/cc-verify.sh +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/context-router.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/copilot/instructions/grimoire-project.instructions.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/copilot/prompts/grimoire-changelog.prompt.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/copilot/prompts/grimoire-dream.prompt.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/copilot/prompts/grimoire-health-check.prompt.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/copilot/prompts/grimoire-pre-push.prompt.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/copilot/prompts/grimoire-self-heal.prompt.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/copilot/prompts/grimoire-session-bootstrap.prompt.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/copilot/prompts/grimoire-status.prompt.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/copilot-extension/README.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/cross-validation-trust.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/delivery-contract.tpl.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/event-log-shared-state.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/glossary.yaml +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/grimoire-trace.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/honest-uncertainty-protocol.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/hooks/.pre-commit-config.tpl.yaml +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/hooks/commit-msg.sh +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/hooks/mnemo-consolidate.sh +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/hooks/post-checkout.sh +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/hooks/post-commit.sh +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/hooks/pre-commit-cc.sh +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/hooks/pre-push.sh +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/hooks/prepare-commit-msg.sh +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/hosts/commands/grimoire-doctor.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/hosts/commands/grimoire-gate.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/hosts/commands/grimoire-proof.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/hosts/commands/grimoire-recall.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/hosts/commands/grimoire-verify.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/hosts/skills/grimoire-agent-dispatch.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/hosts/skills/grimoire-evidence.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/hosts/skills/grimoire-memory.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/hybrid-parallelism-engine.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/mcp/grimoire-mcp-server.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/memory/.gitignore +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/memory/backends/__init__.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/memory/backends/backend_lexical.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/memory/backends/backend_local.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/memory/backends/backend_ollama.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/memory/backends/backend_qdrant_local.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/memory/backends/backend_qdrant_server.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/memory/contradiction-log.tpl.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/memory/dependency-graph.tpl.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/memory/docker-compose.memory-target.tpl.yml +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/memory/docker-compose.memory.tpl.yml +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/memory/failure-museum.tpl.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/memory/handoff-log.tpl.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/memory/k8s-qdrant.tpl.yaml +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/memory/maintenance.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/memory/mem0-bridge.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/memory/memory_seed.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/memory/network-topology.tpl.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/memory/oss-references.tpl.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/memory/requirements/requirements-minimal.txt +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/memory/requirements/requirements-ollama.txt +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/memory/requirements/requirements-qdrant.txt +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/memory/requirements.txt +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/memory/session-save.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/orchestrator-gateway.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/productive-conflict-engine.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/prompt-templates/README.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/prompt-templates/audit-report.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/prompt-templates/capacity-planning.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/prompt-templates/compliance-check.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/prompt-templates/dependency-updates.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/prompt-templates/design-tokens.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/prompt-templates/network-troubleshoot.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/prompt-templates/operational-mode.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/prompt-templates/periodic-report.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/prompt-templates/secret-rotation.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/prompt-templates/strategic-plan.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/prompt-templates/troubleshoot.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/question-escalation-chain.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/registry/README.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/selective-huddle-protocol.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/sessions/README.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/sil-collect.sh +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/README.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/adversarial-consensus.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/agent-bench.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/agent-caller.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/agent-darwinism.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/agent-debugger.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/agent-forge.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/agent-integrity.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/agent-test.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/agent-watch.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/agent-worker.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/antifragile-score.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/auto-doc.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/context-guard.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/context-summarizer.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/cross-migrate.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/dep-check.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/distill.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/dna-evolve.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/dream.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/expert-tool-chain.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/failure-museum.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/gen-tests.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/grimoire-completion.zsh +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/grimoire-mcp-tools.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/grimoire-setup.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/image-prompt.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/incubator.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/llm-router.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/memory-lint.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/memory-sync.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/message-bus.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/nso.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/observatory.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/preflight-check.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/quick-check.sh +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/rag-indexer.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/rag-retriever.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/reasoning-stream.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/schema-validator.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/session-lifecycle.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/stigmergy.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/stigmergy_hooks/scripts/stigmergy-emit-post-edit.sh +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/stigmergy_hooks/scripts/stigmergy-emit-stop.sh +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/stigmergy_hooks/scripts/stigmergy-sense.sh +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/stigmergy_hooks/scripts/stigmergy_hook.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/stigmergy_hooks/stigmergy-emit.json +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/stigmergy_hooks/stigmergy-sense.json +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/swarm-consensus.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/synapse-trace.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/token-budget.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/tool-registry.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/tool-resolver.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/vision-judge.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/tools/web-browser.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/workflows/boomerang-orchestration.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/workflows/github-cc-check.yml.tpl +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/workflows/incident-response.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/workflows/party-mode.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/workflows/repo-map-generator.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/workflows/state-checkpoint.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/workflows/subagent-orchestration.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/workflows/workflow-graph.tpl.yaml +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/framework/workflows/workflow-status.tpl.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/planning/README.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/registry/blueprints/README.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/rust/grimoire-dispatch-core/pyproject.toml +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/rust/grimoire-flows-core/pyproject.toml +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/rust/grimoire-hosts-core/pyproject.toml +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/rust/grimoire-policies-core/pyproject.toml +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/rust/grimoire-schema-core/pyproject.toml +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/scripts/gen-site-data.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/__init__.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/__main__.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/archetypes/__init__.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/bridges/__init__.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/bridges/a2a_adapter.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/bridges/host.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/bridges/schemas.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/cli/__init__.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/cli/_lazy.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/cli/_shared.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/cli/cmd_blueprint.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/cli/cmd_cadrage.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/cli/cmd_cockpit.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/cli/cmd_context_pack.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/cli/cmd_debugger.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/cli/cmd_ext.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/cli/cmd_features.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/cli/cmd_hooks.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/cli/cmd_host.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/cli/cmd_init.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/cli/cmd_memory.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/cli/cmd_memory_bundle.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/cli/cmd_memory_lexical.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/cli/cmd_memory_ops.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/cli/cmd_memory_projections.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/cli/cmd_memory_shared.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/cli/cmd_merge.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/cli/cmd_migrate.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/cli/cmd_proposals.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/cli/cmd_providers.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/cli/cmd_serve.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/cli/cmd_stigmergy.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/cli/cmd_web.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/cli/cmd_workflows.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/cli/updater.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/codegraph/__init__.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/codegraph/backends/__init__.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/codegraph/backends/neo4j.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/codegraph/graph.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/codegraph/parser.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/codegraph/schemas.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/core/__init__.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/core/agent_freshness.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/core/agentic_standard.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/core/archetype_resolver.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/core/cadrage.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/core/claude_activation.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/core/console_encoding.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/core/deprecation.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/core/error_codes.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/core/exceptions.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/core/integrity.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/core/kit_hashes.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/core/layout.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/core/log.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/core/merge.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/core/needs_suggest.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/core/project.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/core/project_types.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/core/resolver.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/core/retry.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/core/scaffold.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/core/scanner.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/core/schema.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/core/standard_checks/__init__.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/core/standard_checks/base.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/core/standard_checks/controls.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/core/standard_checks/pattern_codes.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/core/standard_generation.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/core/standard_profile_manifest.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/core/standard_state.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/core/standard_traceability.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/core/standard_upstream.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/core/validator.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/data/__init__.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/evidence/__init__.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/evidence/schemas.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/evidence/service.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/flows/__init__.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/flows/engine.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/flows/executor.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/hosts/__init__.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/hosts/capabilities.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/hosts/decisions/__init__.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/hosts/decisions/_shared.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/hosts/decisions/context_capsule.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/hosts/decisions/evidence_gate.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/hosts/decisions/gate_summary.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/hosts/decisions/record.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/hosts/decisions/subagent_gate.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/hosts/decisions/task_context.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/hosts/decisions/tool_facts.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/hosts/emitters/__init__.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/hosts/emitters/base.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/hosts/emitters/claude_code.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/hosts/emitters/copilot.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/hosts/emitters/generic.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/hosts/events.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/hosts/runtime.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/hosts/secrets.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/hosts/sync.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/mcp/__init__.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/memory/__init__.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/memory/architecture.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/memory/backends/__init__.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/memory/backends/_qdrant_mixin.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/memory/backends/base.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/memory/backends/lexical.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/memory/backends/local.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/memory/backends/mempalace.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/memory/backends/ollama.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/memory/backends/qdrant.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/memory/backends/tantivy_local.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/memory/backends/weaviate.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/memory/bundle.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/memory/embedding.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/memory/hot.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/memory/manager.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/memory/migration.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/memory/neo4j_graph.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/memory/profiles.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/memory/projections.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/memory/retrieval.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/memory/shared.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/memory/sidecar.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/memory/taxonomy.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/memory/validation.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/missions/__init__.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/missions/beads_adapter.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/missions/board.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/missions/dispatch_history.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/missions/gates.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/missions/intake.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/missions/ledger.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/missions/plans_registry.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/missions/projections.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/missions/recall.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/missions/schemas.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/missions/service.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/missions/task_flow_adapter.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/policies/__init__.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/policies/security.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/providers/__init__.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/providers/registry.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/providers/routing.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/providers/state.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/py.typed +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/registry/__init__.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/registry/agents.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/registry/discovery.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/registry/local.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/runtime/__init__.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/runtime/adapter_base.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/runtime/crewai_adapter.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/runtime/gascity_converter.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/runtime/langgraph_adapter.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/runtime/p2p_guard.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/runtime/recipes.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/runtime/schemas.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/__init__.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/agent_creation.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/agent_forge.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/blueprint_checkpoint.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/blueprint_context.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/blueprint_diff.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/blueprint_eval_runner.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/blueprint_evals.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/blueprint_gate.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/blueprint_primitives.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/blueprint_resilience.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/blueprint_scatter.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/blueprint_security.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/blueprint_telemetry.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/context_guard.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/context_pack.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/context_router.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/cost_model.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/ext_manager.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/features.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/forge_http.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/forge_routes.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/forge_server.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/handoff.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/harmony_check.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/memory_link.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/memory_lint.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/memory_setup.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/memory_vectors.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/model_windows.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/preflight_check.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/project_health.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/project_registry.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/project_setup.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/project_update.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/serve_data.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/stigmergy.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/stigmergy_hooks.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/untrusted.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/workspace_exec.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/tools/workspace_legacy.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/traces/__init__.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/traces/otel_conventions.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/traces/schemas.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/workflows/__init__.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/workflows/registry.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/src/grimoire/workflows/teams.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/DESIGN-BRIEF-memory.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/DESIGN-BRIEF-observability.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/DESIGN-REVIEW-2026-09.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/DESIGN-SPEC-workspace-2026-09.md +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/anatomy.html +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/atelier-nav.js +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/atelier.css +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/atelier.html +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/blueprint-onboarding.js +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/blueprints.html +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/bp2-assist.js +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/bp2-composer.js +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/bp2-core.js +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/bp2-cost.js +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/bp2-diff.js +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/bp2-docs.js +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/bp2-evals.js +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/bp2-lexicon.js +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/bp2-library.js +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/bp2-manual.js +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/bp2-sections.js +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/bp2-team.css +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/bp2-team.js +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/bp2-tour.js +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/bp2.css +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/data/activity.json +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/data/architecture.json +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/data/catalogue-export.json +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/data/extensions.json +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/data/insights.json +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/data/kit-coverage.json +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/data/memory.json +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/data/meta.json +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/data/observatory.json +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/data/projects/atlas-ops/activity.json +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/data/projects/atlas-ops/insights.json +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/data/projects/atlas-ops/memory.json +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/data/projects/atlas-ops/meta.json +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/data/projects/atlas-ops/observatory.json +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/data/projects/atlas-ops/taskboard.json +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/data/projects/grimoire-kit/activity.json +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/data/projects/grimoire-kit/insights.json +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/data/projects/grimoire-kit/memory.json +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/data/projects/grimoire-kit/meta.json +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/data/projects/grimoire-kit/observatory.json +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/data/projects/grimoire-kit/taskboard.json +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/data/projects/ledger-data/activity.json +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/data/projects/ledger-data/insights.json +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/data/projects/ledger-data/memory.json +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/data/projects/ledger-data/meta.json +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/data/projects/ledger-data/observatory.json +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/data/projects/ledger-data/taskboard.json +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/data/projects/sentinel-sec/activity.json +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/data/projects/sentinel-sec/insights.json +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/data/projects/sentinel-sec/memory.json +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/data/projects/sentinel-sec/meta.json +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/data/projects/sentinel-sec/observatory.json +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/data/projects/sentinel-sec/taskboard.json +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/data/projects.json +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/data/taskboard.json +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/demo.html +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design/workspace-2026-09/Concevoir.dc.html +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design/workspace-2026-09/ConcevoirClair.dc.html +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design/workspace-2026-09/Couleurs.dc.html +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design/workspace-2026-09/DAArdoise.dc.html +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design/workspace-2026-09/DAPapier.dc.html +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design/workspace-2026-09/DAStudio.dc.html +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design/workspace-2026-09/DirectionB.dc.html +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design/workspace-2026-09/DirectionC.dc.html +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design/workspace-2026-09/DirectionD.dc.html +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design/workspace-2026-09/Encre.dc.html +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design/workspace-2026-09/EncreClair.dc.html +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design/workspace-2026-09/Main.dc.html +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design/workspace-2026-09/Mecaniques.dc.html +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design/workspace-2026-09/Source.dc.html +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design/workspace-2026-09/canvas.json +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design/workspace-2026-09/captures/concevoir-dark.jpg +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design/workspace-2026-09/captures/concevoir-light.jpg +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design/workspace-2026-09/captures/executer-dark.jpg +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design/workspace-2026-09/captures/executer-light.jpg +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design/workspace-2026-09/captures/memoire-dark.jpg +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design/workspace-2026-09/captures/memoire-light.jpg +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design/workspace-2026-09/captures/observer-dark.jpg +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design/workspace-2026-09/captures/observer-light.jpg +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design/workspace-2026-09/captures/piloter-dark.jpg +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design/workspace-2026-09/captures/piloter-light.jpg +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design/workspace-2026-09/captures/source-dark.jpg +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design/workspace-2026-09/captures/source-light.jpg +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design/workspace-2026-09/gen-couleurs.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design/workspace-2026-09/gen-skins.py +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design/workspace-2026-09/shell.tpl.html +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design-review-2026-09/01-cockpit-portefeuille-desktop.jpg +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design-review-2026-09/02-cockpit-portefeuille-full.jpg +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design-review-2026-09/03-cockpit-portefeuille-mobile.jpg +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design-review-2026-09/04-kanban-desktop.jpg +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design-review-2026-09/05-kanban-mobile.jpg +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design-review-2026-09/06-observatoire-desktop.jpg +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design-review-2026-09/07-observatoire-full.jpg +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design-review-2026-09/08-atelier-desktop.jpg +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design-review-2026-09/09-atelier-mobile.jpg +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design-review-2026-09/10-memoire-desktop.jpg +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design-review-2026-09/11-blueprints-desktop.jpg +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design-review-2026-09/12-extensions-desktop.jpg +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design-review-2026-09/13-patterns-desktop.jpg +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design-review-2026-09/14-cockpit-index-desktop.jpg +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design-review-2026-09/15-workspace-lot1-sombre-decouverte.png +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design-review-2026-09/16-workspace-lot1-clair-decouverte.png +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design-review-2026-09/17-workspace-lot1-sombre-concentration.png +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/design-review-2026-09/18-workspace-lot1-clair-concentration.png +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/documentation.html +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/extensions.html +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/forge-base.css +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/forge-charts.css +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/forge-landing.css +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/forge-motion.css +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/forge-motion.js +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/forge-nav.js +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/forge-observatory.js +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/forge-tokens.css +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/game-ui.html +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/grimoire-mode.js +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/index.html +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/labs.html +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/memory.html +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/observability.html +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/patterns.html +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/portfolio.html +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/project-picker.js +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/workspace/fonts/Geist-Medium.woff2 +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/workspace/fonts/Geist-Regular.woff2 +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/workspace/fonts/Geist-SemiBold.woff2 +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/workspace/fonts/GeistMono-Medium.woff2 +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/workspace/fonts/GeistMono-Regular.woff2 +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/workspace/fonts/OFL.txt +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/workspace/glossary.js +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/workspace/index.html +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/workspace/shell.css +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/workspace/shell.js +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/workspace/spaces/concevoir.js +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/workspace/spaces/memoire.js +0 -0
- {grimoire_kit-3.44.2 → grimoire_kit-3.46.0}/web/workspace/spaces/piloter.js +0 -0
- {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.
|
|
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,>=
|
|
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,>=
|
|
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,>=
|
|
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
|
-
|
|
592
|
-
|
|
593
|
-
Grimoire
|
|
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 ;
|
|
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 |
|
|
605
|
-
| CC, Completion Contract (`cc-reference.md`, `cc-verify.sh`) | « Give Claude a check it can run », Stop hooks, Ralph loop | 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
|
|
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 |
|
|
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` |
|
|
615
|
-
| Observabilité cockpit, `observability-policy.yaml` | OTel GenAI spans et métriques, Langfuse, Phoenix |
|
|
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.
|
|
623
|
-
2.
|
|
624
|
-
3.
|
|
625
|
-
4.
|
|
626
|
-
|
|
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 à
|
|
41
|
-
#
|
|
42
|
-
#
|
|
43
|
-
#
|
|
44
|
-
#
|
|
45
|
-
#
|
|
46
|
-
#
|
|
47
|
-
|
|
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.
|
|
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}")
|