grimoire-kit 3.44.0__tar.gz → 3.44.2__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.0 → grimoire_kit-3.44.2}/CHANGELOG.md +191 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/PKG-INFO +1 -1
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/registry/kit-file-hashes.json +1 -1
- grimoire_kit-3.44.2/src/grimoire/__version__.py +1 -0
- grimoire_kit-3.44.2/src/grimoire/cli/_lazy.py +169 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/cli/app.py +65 -70
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/cli/cmd_task.py +6 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/cli/cmd_up.py +14 -4
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/core/agentic_standard.py +8 -1
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/core/standard_state.py +151 -17
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/flows/engine.py +41 -11
- grimoire_kit-3.44.2/src/grimoire/hosts/__init__.py +53 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/hosts/capabilities.py +7 -1
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/hosts/collect.py +24 -3
- grimoire_kit-3.44.2/src/grimoire/hosts/decisions/__init__.py +218 -0
- grimoire_kit-3.44.2/src/grimoire/hosts/decisions/_shared.py +72 -0
- grimoire_kit-3.44.2/src/grimoire/hosts/decisions/activation.py +175 -0
- grimoire_kit-3.44.2/src/grimoire/hosts/decisions/context_capsule.py +32 -0
- grimoire_kit-3.44.2/src/grimoire/hosts/decisions/evidence_gate.py +97 -0
- grimoire_kit-3.44.2/src/grimoire/hosts/decisions/evidence_trace.py +24 -0
- grimoire_kit-3.44.2/src/grimoire/hosts/decisions/gate_summary.py +35 -0
- grimoire_kit-3.44.2/src/grimoire/hosts/decisions/record.py +100 -0
- grimoire_kit-3.44.2/src/grimoire/hosts/decisions/subagent_gate.py +31 -0
- grimoire_kit-3.44.2/src/grimoire/hosts/decisions/task_context.py +23 -0
- grimoire_kit-3.44.2/src/grimoire/hosts/decisions/tool_facts.py +229 -0
- grimoire_kit-3.44.2/src/grimoire/hosts/decisions/tool_policy.py +118 -0
- grimoire_kit-3.44.2/src/grimoire/hosts/events.py +60 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/hosts/runtime.py +5 -1
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/hosts/surface.py +11 -42
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/mcp/server.py +6 -2
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/missions/service.py +5 -0
- grimoire_kit-3.44.2/version.txt +1 -0
- grimoire_kit-3.44.0/src/grimoire/__version__.py +0 -1
- grimoire_kit-3.44.0/src/grimoire/hosts/__init__.py +0 -17
- grimoire_kit-3.44.0/src/grimoire/hosts/decisions.py +0 -918
- grimoire_kit-3.44.0/version.txt +0 -1
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/.gitignore +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/LICENSE +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/README.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/_grimoire/_config/custom/prompt-templates/README.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/archetypes/agentic-standard/archetype.dna.yaml +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/archetypes/agentic-standard/shared-context.tpl.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/archetypes/creative-studio/agents/blender-expert.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/archetypes/creative-studio/agents/brand-designer.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/archetypes/creative-studio/agents/illustration-expert.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/archetypes/creative-studio/archetype.dna.yaml +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/archetypes/creative-studio/shared-context.tpl.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/archetypes/creative-studio/skills/creative-content-copywriting.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/archetypes/features/vector-memory/vectus.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/archetypes/fix-loop/README.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/archetypes/fix-loop/agents/fix-loop-orchestrator.tpl.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/archetypes/fix-loop/archetype.dna.yaml +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/archetypes/fix-loop/workflows/workflow-closed-loop-fix.tpl.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/archetypes/infra-ops/agents/monitoring-specialist.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/archetypes/infra-ops/agents/ops-engineer.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/archetypes/infra-ops/agents/systems-debugger.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/archetypes/infra-ops/archetype.dna.yaml +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/archetypes/infra-ops/shared-context.tpl.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/archetypes/infra-ops/skills/infra-backup-dr.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/archetypes/infra-ops/skills/infra-k8s-gitops.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/archetypes/infra-ops/skills/infra-pipeline-cicd.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/archetypes/infra-ops/skills/infra-security-hardening.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/archetypes/meta/agents/agent-optimizer.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/archetypes/meta/agents/concierge.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/archetypes/meta/agents/security-auditor.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/archetypes/meta/archetype.dna.yaml +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/archetypes/meta/skills/meta-art-direction.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/archetypes/meta/skills/meta-memory-quality.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/archetypes/meta/skills/meta-project-navigation.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/archetypes/meta/skills/meta-toolsmithing.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/archetypes/minimal/agents/custom-agent.tpl.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/archetypes/minimal/archetype.dna.yaml +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/archetypes/platform-engineering/agents/backend-engineer.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/archetypes/platform-engineering/agents/platform-architect.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/archetypes/platform-engineering/archetype.dna.yaml +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/archetypes/platform-engineering/shared-context.tpl.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/archetypes/platform-engineering/skills/platform-deploy-release.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/archetypes/platform-engineering/skills/platform-reliability-sre.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/archetypes/platform-engineering/templates/architecture.tpl.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/archetypes/stack/agents/stack-engineer.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/archetypes/stack/archetype.dna.yaml +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/archetypes/stack/skills/stack-ansible.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/archetypes/stack/skills/stack-docker.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/archetypes/stack/skills/stack-go.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/archetypes/stack/skills/stack-k8s.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/archetypes/stack/skills/stack-python.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/archetypes/stack/skills/stack-terraform.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/archetypes/stack/skills/stack-typescript.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/archetypes/web-app/agents/fullstack-dev.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/archetypes/web-app/archetype.dna.yaml +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/archetypes/web-app/shared-context.tpl.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/archetypes/web-app/skills/web-frontend-ux.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/evals/README.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/evals/witnesses/README.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/evals/witnesses/web-app-todo/activated/README.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/evals/witnesses/web-app-todo/app/README.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/evals/witnesses/web-app-todo/app/web/index.html +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/evals/witnesses/web-app-todo/app/web/package-lock.json +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/evals/witnesses/web-app-todo/app/web/package.json +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/evals/witnesses/web-app-todo/app/web/src/App.tsx +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/evals/witnesses/web-app-todo/app/web/src/components/AddTaskForm.tsx +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/evals/witnesses/web-app-todo/app/web/src/components/TaskItem.tsx +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/evals/witnesses/web-app-todo/app/web/src/components/TaskList.tsx +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/evals/witnesses/web-app-todo/app/web/src/main.tsx +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/evals/witnesses/web-app-todo/app/web/src/styles.css +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/evals/witnesses/web-app-todo/app/web/src/test/AddTaskForm.test.tsx +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/evals/witnesses/web-app-todo/app/web/src/test/TaskList.test.tsx +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/evals/witnesses/web-app-todo/app/web/src/test/setup.ts +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/evals/witnesses/web-app-todo/app/web/src/types.ts +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/evals/witnesses/web-app-todo/app/web/tsconfig.json +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/evals/witnesses/web-app-todo/app/web/vite.config.ts +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/evals/witnesses/web-app-todo/enforced/README.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/examples/terraform-houseserver/README.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/examples/web-app-todo/README.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/extensions/README.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/extensions/autogen/artifacts/agents/autogen-conversation-runner.agent.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/extensions/autogen/artifacts/skills/autogen-conversation-design/SKILL.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/extensions/autogen/extension.json +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/extensions/autogen/scripts/verify-install.sh +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/extensions/browser-use/artifacts/agents/browser-use-runner.agent.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/extensions/browser-use/artifacts/instructions/browser-evidence.instructions.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/extensions/browser-use/extension.json +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/extensions/browser-use/scripts/verify-install.sh +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/extensions/crewai/artifacts/agents/crewai-crew-runner.agent.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/extensions/crewai/artifacts/hooks/crewai-telemetry-bridge.json +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/extensions/crewai/artifacts/hooks/crewai-telemetry-bridge.sh +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/extensions/crewai/artifacts/prompts/crewai-import-crew.prompt.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/extensions/crewai/artifacts/skills/crewai-crew-design/SKILL.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/extensions/crewai/extension.json +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/extensions/crewai/scripts/register-hooks.sh +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/extensions/crewai/scripts/unregister-hooks.sh +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/extensions/crewai/scripts/verify-install.sh +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/extensions/extension.schema.json +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/extensions/fennara-godot/artifacts/skills/godot-evidence-loop/SKILL.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/extensions/fennara-godot/extension.json +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/extensions/fennara-godot/scripts/setup-mcp.sh +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/extensions/fennara-godot/scripts/teardown-mcp.sh +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/extensions/fennara-godot/scripts/verify-install.sh +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/extensions/grimoire-mcp/artifacts/instructions/mcp-trust-gate.instructions.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/extensions/grimoire-mcp/artifacts/skills/grimoire-mcp-setup/SKILL.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/extensions/grimoire-mcp/extension.json +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/extensions/grimoire-mcp/scripts/verify-install.sh +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/extensions/haystack/artifacts/instructions/haystack-rag-governance.instructions.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/extensions/haystack/artifacts/skills/haystack-pipeline-design/SKILL.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/extensions/haystack/extension.json +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/extensions/haystack/scripts/verify-install.sh +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/extensions/langfuse/artifacts/hooks/langfuse-trace-export.json +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/extensions/langfuse/artifacts/hooks/langfuse-trace-export.sh +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/extensions/langfuse/artifacts/instructions/langfuse-observability.instructions.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/extensions/langfuse/artifacts/skills/langfuse-tracing-setup/SKILL.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/extensions/langfuse/extension.json +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/extensions/langfuse/scripts/register-hooks.sh +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/extensions/langfuse/scripts/unregister-hooks.sh +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/extensions/langfuse/scripts/verify-install.sh +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/extensions/langgraph/artifacts/agents/langgraph-graph-runner.agent.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/extensions/langgraph/artifacts/prompts/langgraph-import-graph.prompt.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/extensions/langgraph/artifacts/skills/langgraph-graph-design/SKILL.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/extensions/langgraph/extension.json +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/extensions/langgraph/scripts/verify-install.sh +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/FREEZE.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/agent-base-compact.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/agent-base.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/agent-mesh-network.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/agent-relationship-graph.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/agent-rules.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/agent2agent.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/agentic-industry-reference.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/agentic-standard/README.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/agentic-standard/capability-map.yaml +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/agentic-standard/needs-catalog.yaml +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/agentic-standard/profile-map.yaml +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/agentic-standard/target-schema.yaml +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/agentic-standard/templates/acceptance-record.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/agentic-standard/templates/accepted-risks.yaml +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/agentic-standard/templates/blast-radius-policy.yaml +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/agentic-standard/templates/browser-tool-contract.yaml +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/agentic-standard/templates/capability-registry.yaml +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/agentic-standard/templates/claim-ledger.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/agentic-standard/templates/cluster-action-policy.yaml +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/agentic-standard/templates/compliance-declaration.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/agentic-standard/templates/compliance-score.yaml +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/agentic-standard/templates/compression-gate.yaml +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/agentic-standard/templates/context-contract.yaml +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/agentic-standard/templates/cost-registry.yaml +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/agentic-standard/templates/decision-council.yaml +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/agentic-standard/templates/decision-graph.yaml +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/agentic-standard/templates/doc-graph-pipeline.yaml +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/agentic-standard/templates/environment-policy.yaml +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/agentic-standard/templates/evidence-gates.yaml +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/agentic-standard/templates/evidence-pack.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/agentic-standard/templates/flow-dsl-manifest.yaml +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/agentic-standard/templates/guardrail-contract.yaml +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/agentic-standard/templates/hook-registry.yaml +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/agentic-standard/templates/incident-registry.yaml +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/agentic-standard/templates/k8s-agent-manifest.yaml +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/agentic-standard/templates/knowledge-source-registry.yaml +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/agentic-standard/templates/llm-provider-registry.yaml +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/agentic-standard/templates/memory-integrity.yaml +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/agentic-standard/templates/memory-policy.yaml +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/agentic-standard/templates/merge-lane.yaml +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/agentic-standard/templates/mission-brief.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/agentic-standard/templates/observability-policy.yaml +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/agentic-standard/templates/orchestration-policy.yaml +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/agentic-standard/templates/pattern-catalog.yaml +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/agentic-standard/templates/privilege-boundary.yaml +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/agentic-standard/templates/prompt-firewall.yaml +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/agentic-standard/templates/prompt-version-log.yaml +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/agentic-standard/templates/remediation-plan.yaml +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/agentic-standard/templates/remote-hygiene.yaml +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/agentic-standard/templates/retention-registry.yaml +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/agentic-standard/templates/risk-control-matrix.yaml +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/agentic-standard/templates/rule-packs.yaml +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/agentic-standard/templates/runtime-provider-contract.yaml +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/agentic-standard/templates/runtime-surface-registry.yaml +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/agentic-standard/templates/task-board.yaml +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/agentic-standard/templates/task-envelope.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/agentic-standard/templates/tool-registry.yaml +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/agentic-standard/templates/visual-evidence.yaml +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/agentic-standard/templates/waivers.yaml +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/agentic-standard/templates/workflow-state-manifest.yaml +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/agentic-standard/templates/workspace-isolation.yaml +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/agentic-standard/traceability.yaml +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/archetype-dna.schema.yaml +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/cc-reference.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/cc-verify.sh +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/context-router.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/copilot/instructions/grimoire-project.instructions.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/copilot/prompts/grimoire-changelog.prompt.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/copilot/prompts/grimoire-dream.prompt.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/copilot/prompts/grimoire-health-check.prompt.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/copilot/prompts/grimoire-pre-push.prompt.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/copilot/prompts/grimoire-self-heal.prompt.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/copilot/prompts/grimoire-session-bootstrap.prompt.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/copilot/prompts/grimoire-status.prompt.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/copilot-extension/README.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/cross-validation-trust.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/delivery-contract.tpl.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/event-log-shared-state.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/glossary.yaml +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/grimoire-trace.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/honest-uncertainty-protocol.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/hooks/.pre-commit-config.tpl.yaml +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/hooks/commit-msg.sh +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/hooks/mnemo-consolidate.sh +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/hooks/post-checkout.sh +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/hooks/post-commit.sh +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/hooks/pre-commit-cc.sh +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/hooks/pre-push.sh +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/hooks/prepare-commit-msg.sh +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/hosts/commands/grimoire-doctor.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/hosts/commands/grimoire-gate.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/hosts/commands/grimoire-proof.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/hosts/commands/grimoire-recall.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/hosts/commands/grimoire-verify.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/hosts/skills/grimoire-agent-dispatch.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/hosts/skills/grimoire-evidence.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/hosts/skills/grimoire-memory.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/hybrid-parallelism-engine.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/mcp/grimoire-mcp-server.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/memory/.gitignore +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/memory/backends/__init__.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/memory/backends/backend_lexical.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/memory/backends/backend_local.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/memory/backends/backend_ollama.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/memory/backends/backend_qdrant_local.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/memory/backends/backend_qdrant_server.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/memory/contradiction-log.tpl.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/memory/dependency-graph.tpl.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/memory/docker-compose.memory-target.tpl.yml +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/memory/docker-compose.memory.tpl.yml +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/memory/failure-museum.tpl.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/memory/handoff-log.tpl.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/memory/k8s-qdrant.tpl.yaml +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/memory/maintenance.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/memory/mem0-bridge.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/memory/memory_seed.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/memory/network-topology.tpl.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/memory/oss-references.tpl.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/memory/requirements/requirements-minimal.txt +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/memory/requirements/requirements-ollama.txt +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/memory/requirements/requirements-qdrant.txt +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/memory/requirements.txt +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/memory/session-save.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/orchestrator-gateway.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/productive-conflict-engine.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/prompt-templates/README.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/prompt-templates/audit-report.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/prompt-templates/capacity-planning.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/prompt-templates/compliance-check.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/prompt-templates/dependency-updates.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/prompt-templates/design-tokens.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/prompt-templates/network-troubleshoot.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/prompt-templates/operational-mode.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/prompt-templates/periodic-report.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/prompt-templates/secret-rotation.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/prompt-templates/strategic-plan.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/prompt-templates/troubleshoot.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/question-escalation-chain.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/registry/README.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/selective-huddle-protocol.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/sessions/README.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/sil-collect.sh +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/tools/README.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/tools/adversarial-consensus.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/tools/agent-bench.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/tools/agent-caller.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/tools/agent-darwinism.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/tools/agent-debugger.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/tools/agent-forge.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/tools/agent-integrity.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/tools/agent-test.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/tools/agent-watch.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/tools/agent-worker.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/tools/antifragile-score.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/tools/auto-doc.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/tools/context-guard.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/tools/context-summarizer.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/tools/cross-migrate.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/tools/dep-check.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/tools/distill.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/tools/dna-evolve.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/tools/dream.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/tools/expert-tool-chain.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/tools/failure-museum.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/tools/gen-tests.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/tools/grimoire-completion.zsh +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/tools/grimoire-mcp-tools.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/tools/grimoire-setup.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/tools/image-prompt.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/tools/incubator.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/tools/llm-router.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/tools/memory-lint.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/tools/memory-sync.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/tools/message-bus.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/tools/nso.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/tools/observatory.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/tools/preflight-check.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/tools/quick-check.sh +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/tools/rag-indexer.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/tools/rag-retriever.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/tools/reasoning-stream.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/tools/schema-validator.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/tools/session-lifecycle.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/tools/stigmergy.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/tools/stigmergy_hooks/scripts/stigmergy-emit-post-edit.sh +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/tools/stigmergy_hooks/scripts/stigmergy-emit-stop.sh +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/tools/stigmergy_hooks/scripts/stigmergy-sense.sh +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/tools/stigmergy_hooks/scripts/stigmergy_hook.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/tools/stigmergy_hooks/stigmergy-emit.json +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/tools/stigmergy_hooks/stigmergy-sense.json +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/tools/swarm-consensus.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/tools/synapse-trace.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/tools/token-budget.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/tools/tool-registry.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/tools/tool-resolver.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/tools/vision-judge.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/tools/web-browser.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/workflows/boomerang-orchestration.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/workflows/github-cc-check.yml.tpl +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/workflows/incident-response.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/workflows/party-mode.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/workflows/repo-map-generator.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/workflows/state-checkpoint.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/workflows/subagent-orchestration.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/workflows/workflow-graph.tpl.yaml +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/framework/workflows/workflow-status.tpl.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/planning/README.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/pyproject.toml +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/registry/blueprints/README.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/rust/grimoire-dispatch-core/pyproject.toml +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/rust/grimoire-flows-core/pyproject.toml +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/rust/grimoire-hosts-core/pyproject.toml +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/rust/grimoire-policies-core/pyproject.toml +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/rust/grimoire-schema-core/pyproject.toml +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/scripts/gen-site-data.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/__init__.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/__main__.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/archetypes/__init__.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/bridges/__init__.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/bridges/a2a_adapter.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/bridges/host.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/bridges/schemas.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/cli/__init__.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/cli/_shared.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/cli/cmd_blueprint.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/cli/cmd_cadrage.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/cli/cmd_cockpit.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/cli/cmd_context_pack.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/cli/cmd_debugger.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/cli/cmd_ext.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/cli/cmd_features.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/cli/cmd_flow.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/cli/cmd_hooks.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/cli/cmd_host.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/cli/cmd_init.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/cli/cmd_memory.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/cli/cmd_memory_bundle.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/cli/cmd_memory_lexical.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/cli/cmd_memory_ops.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/cli/cmd_memory_projections.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/cli/cmd_memory_shared.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/cli/cmd_merge.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/cli/cmd_migrate.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/cli/cmd_proposals.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/cli/cmd_providers.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/cli/cmd_serve.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/cli/cmd_setup.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/cli/cmd_standard.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/cli/cmd_stigmergy.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/cli/cmd_upgrade.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/cli/cmd_web.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/cli/cmd_workflows.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/cli/updater.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/codegraph/__init__.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/codegraph/backends/__init__.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/codegraph/backends/neo4j.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/codegraph/graph.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/codegraph/parser.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/codegraph/schemas.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/core/__init__.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/core/agent_freshness.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/core/archetype_resolver.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/core/cadrage.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/core/claude_activation.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/core/config.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/core/console_encoding.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/core/deprecation.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/core/error_codes.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/core/exceptions.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/core/integrity.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/core/kit_hashes.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/core/layout.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/core/log.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/core/merge.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/core/needs_suggest.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/core/project.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/core/project_types.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/core/resolver.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/core/retry.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/core/scaffold.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/core/scanner.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/core/schema.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/core/standard_checks/__init__.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/core/standard_checks/base.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/core/standard_checks/controls.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/core/standard_checks/pattern_codes.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/core/standard_checks/registry.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/core/standard_checks/verifiers.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/core/standard_generation.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/core/standard_profile_manifest.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/core/standard_traceability.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/core/standard_upstream.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/core/validator.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/data/__init__.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/evidence/__init__.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/evidence/schemas.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/evidence/service.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/flows/__init__.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/flows/blueprint_loader.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/flows/dispatch_executor.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/flows/executor.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/flows/schemas.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/hosts/emitters/__init__.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/hosts/emitters/base.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/hosts/emitters/claude_code.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/hosts/emitters/copilot.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/hosts/emitters/generic.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/hosts/secrets.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/hosts/sync.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/mcp/__init__.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/memory/__init__.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/memory/architecture.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/memory/backends/__init__.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/memory/backends/_qdrant_mixin.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/memory/backends/base.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/memory/backends/lexical.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/memory/backends/local.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/memory/backends/mempalace.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/memory/backends/ollama.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/memory/backends/qdrant.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/memory/backends/tantivy_local.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/memory/backends/weaviate.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/memory/bundle.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/memory/embedding.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/memory/hot.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/memory/manager.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/memory/migration.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/memory/neo4j_graph.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/memory/profiles.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/memory/projections.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/memory/retrieval.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/memory/shared.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/memory/sidecar.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/memory/taxonomy.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/memory/validation.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/missions/__init__.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/missions/beads_adapter.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/missions/board.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/missions/dispatch.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/missions/dispatch_history.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/missions/gates.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/missions/intake.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/missions/ledger.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/missions/plans_registry.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/missions/projections.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/missions/recall.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/missions/schemas.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/missions/task_flow_adapter.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/missions/trace.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/missions/verifiability.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/policies/__init__.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/policies/engine.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/policies/schemas.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/policies/security.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/proposals.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/providers/__init__.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/providers/audit.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/providers/registry.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/providers/routing.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/providers/state.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/py.typed +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/registry/__init__.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/registry/agents.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/registry/discovery.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/registry/local.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/runtime/__init__.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/runtime/adapter_base.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/runtime/crewai_adapter.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/runtime/gascity_converter.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/runtime/kernel.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/runtime/langgraph_adapter.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/runtime/p2p_guard.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/runtime/recipes.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/runtime/schemas.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/tools/__init__.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/tools/_common.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/tools/agent_creation.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/tools/agent_forge.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/tools/blueprint_checkpoint.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/tools/blueprint_context.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/tools/blueprint_diff.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/tools/blueprint_eval_runner.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/tools/blueprint_evals.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/tools/blueprint_gate.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/tools/blueprint_primitives.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/tools/blueprint_resilience.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/tools/blueprint_scatter.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/tools/blueprint_security.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/tools/blueprint_telemetry.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/tools/context_guard.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/tools/context_pack.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/tools/context_router.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/tools/cost_model.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/tools/ext_manager.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/tools/features.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/tools/forge_http.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/tools/forge_routes.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/tools/forge_server.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/tools/handoff.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/tools/harmony_check.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/tools/memory_link.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/tools/memory_lint.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/tools/memory_setup.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/tools/memory_vectors.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/tools/model_windows.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/tools/preflight_check.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/tools/project_health.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/tools/project_registry.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/tools/project_setup.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/tools/project_update.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/tools/serve_data.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/tools/stigmergy.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/tools/stigmergy_hooks.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/tools/untrusted.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/tools/workspace_api.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/tools/workspace_exec.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/tools/workspace_language.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/tools/workspace_legacy.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/tools/workspace_routes.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/traces/__init__.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/traces/ledger.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/traces/otel_conventions.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/traces/schemas.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/workflows/__init__.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/workflows/registry.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/src/grimoire/workflows/teams.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/DESIGN-BRIEF-memory.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/DESIGN-BRIEF-observability.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/DESIGN-REVIEW-2026-09.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/DESIGN-SPEC-workspace-2026-09.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/anatomy.html +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/atelier-nav.js +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/atelier.css +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/atelier.html +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/blueprint-onboarding.js +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/blueprints.html +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/bp2-assist.js +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/bp2-composer.js +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/bp2-core.js +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/bp2-cost.js +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/bp2-diff.js +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/bp2-docs.js +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/bp2-evals.js +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/bp2-lexicon.js +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/bp2-library.js +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/bp2-manual.js +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/bp2-sections.js +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/bp2-team.css +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/bp2-team.js +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/bp2-tour.js +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/bp2.css +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/data/activity.json +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/data/architecture.json +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/data/catalogue-export.json +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/data/extensions.json +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/data/insights.json +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/data/kit-coverage.json +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/data/memory.json +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/data/meta.json +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/data/observatory.json +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/data/projects/atlas-ops/activity.json +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/data/projects/atlas-ops/insights.json +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/data/projects/atlas-ops/memory.json +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/data/projects/atlas-ops/meta.json +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/data/projects/atlas-ops/observatory.json +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/data/projects/atlas-ops/taskboard.json +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/data/projects/grimoire-kit/activity.json +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/data/projects/grimoire-kit/insights.json +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/data/projects/grimoire-kit/memory.json +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/data/projects/grimoire-kit/meta.json +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/data/projects/grimoire-kit/observatory.json +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/data/projects/grimoire-kit/taskboard.json +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/data/projects/ledger-data/activity.json +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/data/projects/ledger-data/insights.json +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/data/projects/ledger-data/memory.json +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/data/projects/ledger-data/meta.json +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/data/projects/ledger-data/observatory.json +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/data/projects/ledger-data/taskboard.json +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/data/projects/sentinel-sec/activity.json +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/data/projects/sentinel-sec/insights.json +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/data/projects/sentinel-sec/memory.json +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/data/projects/sentinel-sec/meta.json +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/data/projects/sentinel-sec/observatory.json +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/data/projects/sentinel-sec/taskboard.json +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/data/projects.json +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/data/taskboard.json +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/demo.html +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/design/workspace-2026-09/Concevoir.dc.html +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/design/workspace-2026-09/ConcevoirClair.dc.html +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/design/workspace-2026-09/Couleurs.dc.html +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/design/workspace-2026-09/DAArdoise.dc.html +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/design/workspace-2026-09/DAPapier.dc.html +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/design/workspace-2026-09/DAStudio.dc.html +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/design/workspace-2026-09/DirectionB.dc.html +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/design/workspace-2026-09/DirectionC.dc.html +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/design/workspace-2026-09/DirectionD.dc.html +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/design/workspace-2026-09/Encre.dc.html +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/design/workspace-2026-09/EncreClair.dc.html +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/design/workspace-2026-09/Main.dc.html +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/design/workspace-2026-09/Mecaniques.dc.html +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/design/workspace-2026-09/Source.dc.html +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/design/workspace-2026-09/canvas.json +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/design/workspace-2026-09/captures/concevoir-dark.jpg +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/design/workspace-2026-09/captures/concevoir-light.jpg +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/design/workspace-2026-09/captures/executer-dark.jpg +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/design/workspace-2026-09/captures/executer-light.jpg +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/design/workspace-2026-09/captures/memoire-dark.jpg +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/design/workspace-2026-09/captures/memoire-light.jpg +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/design/workspace-2026-09/captures/observer-dark.jpg +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/design/workspace-2026-09/captures/observer-light.jpg +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/design/workspace-2026-09/captures/piloter-dark.jpg +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/design/workspace-2026-09/captures/piloter-light.jpg +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/design/workspace-2026-09/captures/source-dark.jpg +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/design/workspace-2026-09/captures/source-light.jpg +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/design/workspace-2026-09/gen-couleurs.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/design/workspace-2026-09/gen-skins.py +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/design/workspace-2026-09/shell.tpl.html +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/design-review-2026-09/01-cockpit-portefeuille-desktop.jpg +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/design-review-2026-09/02-cockpit-portefeuille-full.jpg +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/design-review-2026-09/03-cockpit-portefeuille-mobile.jpg +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/design-review-2026-09/04-kanban-desktop.jpg +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/design-review-2026-09/05-kanban-mobile.jpg +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/design-review-2026-09/06-observatoire-desktop.jpg +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/design-review-2026-09/07-observatoire-full.jpg +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/design-review-2026-09/08-atelier-desktop.jpg +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/design-review-2026-09/09-atelier-mobile.jpg +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/design-review-2026-09/10-memoire-desktop.jpg +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/design-review-2026-09/11-blueprints-desktop.jpg +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/design-review-2026-09/12-extensions-desktop.jpg +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/design-review-2026-09/13-patterns-desktop.jpg +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/design-review-2026-09/14-cockpit-index-desktop.jpg +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/design-review-2026-09/15-workspace-lot1-sombre-decouverte.png +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/design-review-2026-09/16-workspace-lot1-clair-decouverte.png +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/design-review-2026-09/17-workspace-lot1-sombre-concentration.png +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/design-review-2026-09/18-workspace-lot1-clair-concentration.png +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/documentation.html +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/extensions.html +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/forge-base.css +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/forge-charts.css +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/forge-landing.css +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/forge-motion.css +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/forge-motion.js +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/forge-nav.js +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/forge-observatory.js +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/forge-tokens.css +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/game-ui.html +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/grimoire-mode.js +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/index.html +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/kanban.html +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/labs.html +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/memory.html +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/observability.html +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/patterns.html +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/portfolio.html +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/project-picker.js +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/workspace/README.md +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/workspace/api.js +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/workspace/fonts/Geist-Medium.woff2 +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/workspace/fonts/Geist-Regular.woff2 +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/workspace/fonts/Geist-SemiBold.woff2 +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/workspace/fonts/GeistMono-Medium.woff2 +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/workspace/fonts/GeistMono-Regular.woff2 +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/workspace/fonts/OFL.txt +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/workspace/glossary.js +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/workspace/index.html +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/workspace/shell.css +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/workspace/shell.js +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/workspace/spaces/concevoir.js +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/workspace/spaces/executer.js +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/workspace/spaces/memoire.js +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/workspace/spaces/observer.js +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/workspace/spaces/piloter.js +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/workspace/spaces/source-editor.js +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/workspace/spaces/source.css +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/workspace/spaces/source.js +0 -0
- {grimoire_kit-3.44.0 → grimoire_kit-3.44.2}/web/workspace/tokens.css +0 -0
|
@@ -7,6 +7,196 @@ et ce projet adhère au [Semantic Versioning](https://semver.org/lang/fr/).
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [3.44.2] - 2026-09-11
|
|
11
|
+
|
|
12
|
+
- **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).**
|
|
13
|
+
`entry_persona_context` et `_category_carrier` (déclencheur de propositions)
|
|
14
|
+
appelaient `collect_agents(project_root)` sans lui passer l'inventaire des
|
|
15
|
+
skills du projet ; le défaut retombait alors sur un ensemble vide, donc
|
|
16
|
+
*tout* agent déclarant un `skills:` en frontmatter — la forme par défaut
|
|
17
|
+
des archétypes depuis #377/#387 — échouait fail-closed comme si ses
|
|
18
|
+
skills n'existaient pas. `collect_agents(project_root, *, known_skills=None, …)`
|
|
19
|
+
résout maintenant lui-même l'inventaire via `collect_skills(project_root)`
|
|
20
|
+
quand `known_skills` vaut `None`, pour qu'aucun appelant ne puisse
|
|
21
|
+
retomber dans ce trou ; un inventaire explicite reste accepté pour les
|
|
22
|
+
appelants qui en réutilisent un déjà collecté (`build_surface`, etc.).
|
|
23
|
+
|
|
24
|
+
- **perf(hosts): cache JSON de l'état du standard, invalidé par empreinte — `grimoire-hook` évite `ruamel.yaml` sur cache chaud (#419).**
|
|
25
|
+
Suite du découpage de `hosts/decisions.py` (#420) : le profil résiduel
|
|
26
|
+
identifiait `grimoire.core.standard_state` (`active_task_id`/`active_profile_id`)
|
|
27
|
+
+ `ruamel.yaml` comme le seul poste encore compressible, ~9 ms sur
|
|
28
|
+
`PreToolUse` destructif. Deux changements distincts s'additionnent :
|
|
29
|
+
l'import de `ruamel.yaml` dans `standard_state.py` était au niveau module
|
|
30
|
+
(payé par *tout* appel de hook, même sur un projet non enrôlé, sans
|
|
31
|
+
standard-profile.yaml ni task-board.yaml à lire) — il est maintenant local
|
|
32
|
+
à `_load_mapping`, donc jamais payé quand ces fichiers n'existent pas. Sur
|
|
33
|
+
un projet enrôlé, où ils existent, un cache JSON (stdlib `json`, jamais
|
|
34
|
+
`ruamel`) sous `_grimoire-output/.runs/standard-state-cache.json` — même
|
|
35
|
+
emplacement que l'état de session éphémère existant, gitignoré — mémorise
|
|
36
|
+
`profile_id` et les tâches `in_progress` du board, invalidé par empreinte
|
|
37
|
+
fichier (`[mtime_ns, size]`) : une source modifiée est relue et le cache
|
|
38
|
+
regénéré ; un cache absent, tronqué ou au mauvais format retombe
|
|
39
|
+
silencieusement sur la lecture YAML, jamais une erreur de hook. Écriture
|
|
40
|
+
atomique (fichier temporaire + `os.replace`). Un outil MCP annoté
|
|
41
|
+
`readOnlyHint` (`grimoire_host_status`, `task_recall`) ne doit rien écrire :
|
|
42
|
+
`active_profile_id`/`resolve_active_task`/`active_task_id` et
|
|
43
|
+
`hosts.collect.build_surface` acceptent un `write_cache: bool = True` que
|
|
44
|
+
ces deux tools seuls mettent à `False` — ils lisent un cache déjà chaud
|
|
45
|
+
sans jamais le créer ni le corriger. Le cache est aussi invalidé
|
|
46
|
+
(supprimé, best-effort) juste après une écriture connue de ces YAML —
|
|
47
|
+
`setup_standard_profile`, `TaskService.project_board`, `grimoire task
|
|
48
|
+
board export` — pour que le changement soit visible dès l'appel de hook
|
|
49
|
+
suivant plutôt que celui d'après ; pas requis pour la correction, l'empreinte
|
|
50
|
+
périmée suffit, seulement pour la latence d'un cas rare.
|
|
51
|
+
|
|
52
|
+
Mesuré par `scripts/bench-rust-cores.py --macro-runs 15` (même machine,
|
|
53
|
+
projet de bench isolé non enrôlé — c'est le seul fixture du script, donc la
|
|
54
|
+
seule chose qu'il mesure ici est l'import `ruamel` devenu conditionnel) :
|
|
55
|
+
|
|
56
|
+
| commande | avant | après | cible | statut |
|
|
57
|
+
|---|---|---|---|---|
|
|
58
|
+
| `grimoire-hook PreToolUse` (tool-policy, destructif — mesure officielle #418/#419) | 62,7 ms | 55,1 ms | < 50 ms | **non atteinte** |
|
|
59
|
+
|
|
60
|
+
Le cache lui-même n'a rien à faire sur un projet non enrôlé (aucun YAML à
|
|
61
|
+
mettre en cache) : mesuré séparément sur un projet **enrôlé** (`standard
|
|
62
|
+
init --profile governed`, `_grimoire/standard/standard-profile.yaml` +
|
|
63
|
+
`task-board.yaml` réels), même méthodologie (médiane de 15 exécutions) :
|
|
64
|
+
|
|
65
|
+
| événement (décision) | avant | après |
|
|
66
|
+
|---|---|---|
|
|
67
|
+
| `PreToolUse` (tool-policy) | 75,7 ms | 54,2 ms |
|
|
68
|
+
| `SessionStart` (activation) | 73,1 ms | 70,3 ms |
|
|
69
|
+
| `UserPromptSubmit` (task-context) | 58,9 ms | 39,6 ms |
|
|
70
|
+
| `PostToolUse` (evidence-trace) | 57,0 ms | 49,0 ms |
|
|
71
|
+
| `SubagentStop` (subagent-gate) | 131,7 ms | 127,9 ms |
|
|
72
|
+
| `PreCompact` (context-capsule) | 132,1 ms | 121,2 ms |
|
|
73
|
+
| `Stop` (evidence-gate) | 144,4 ms | 127,9 ms |
|
|
74
|
+
|
|
75
|
+
(Les trois derniers événements sont plus lents dans l'absolu sur un projet
|
|
76
|
+
`governed` : `evidence-gate`/`context-capsule`/`subagent-gate` y exercent de
|
|
77
|
+
vraies vérifications de gate, hors périmètre de ce cache.) `cProfile` sur
|
|
78
|
+
cache chaud (`PreToolUse`, projet enrôlé) : ni `ruamel` ni
|
|
79
|
+
`grimoire.core.standard_state._load_mapping` n'apparaissent plus dans le
|
|
80
|
+
profil — confirmé aussi par un `sys.modules` vide de tout module `ruamel.*`
|
|
81
|
+
en sous-processus frais. **Cible des 50 ms toujours non atteinte sur la
|
|
82
|
+
mesure officielle (projet non enrôlé)**, assumé : il ne reste, sur ce
|
|
83
|
+
chemin, que le coût `dataclasses`/`inspect` de la première dataclass
|
|
84
|
+
chargée dans le process (stdlib, ~6-9 ms, inhérent à `@dataclass` sur
|
|
85
|
+
`HookInput`/`Decision`/`ToolFacts`/`ActiveTask` — `dataclasses.py` importe
|
|
86
|
+
`inspect` sans condition, aucune combinaison de `frozen`/`slots` n'y
|
|
87
|
+
change quoi que ce soit) et le moteur de politique lui-même
|
|
88
|
+
(`policies.engine`/`policies.schemas`, ~5 ms, propre à `tool-policy`,
|
|
89
|
+
aucun fichier lu). Les deux sont documentés comme incompressibles avec ce
|
|
90
|
+
mécanisme par #419 lui-même ; ni l'un ni l'autre n'a de solution triviale
|
|
91
|
+
sans réécrire ces classes à la main.
|
|
92
|
+
Tests : `tests/unit/core/test_standard_state.py` (cache créé/lu/régénéré
|
|
93
|
+
sur source modifiée/corrompu/absent, `invalidate_cache`) ; garde de
|
|
94
|
+
non-régression `tests/unit/test_hook_cost.py::test_a_warm_standard_state_cache_never_imports_ruamel`
|
|
95
|
+
(sous-processus froid puis chaud, `sys.modules` sans aucun `ruamel.*` au
|
|
96
|
+
second) ; `tests/unit/mcp/test_server.py::TestReadOnlyToolsWriteNothing`
|
|
97
|
+
(déjà existant, aucune modification requise) couvre le contrat
|
|
98
|
+
`write_cache=False`. Aucun changement de décision : les tests existants de
|
|
99
|
+
`hosts/decisions.py` et `test_hosts.py` passent sans modification.
|
|
100
|
+
|
|
101
|
+
## [3.44.1] - 2026-09-11
|
|
102
|
+
|
|
103
|
+
- **perf(hosts): découper `hosts/decisions.py` par décision — `grimoire-hook` payait la moitié du fichier pour chaque appel (#419).**
|
|
104
|
+
Suite de mesure de #418 : `grimoire-hook PreToolUse` restait à 69-70 ms
|
|
105
|
+
malgré le chargement paresseux du CLI, parce que ce point d'entrée
|
|
106
|
+
(`grimoire.hosts.runtime:main`) ne passe jamais par `grimoire.cli.app`.
|
|
107
|
+
`grimoire.hosts.decisions` était un seul module de 918 lignes portant les
|
|
108
|
+
sept décisions (`grimoire.activation`, `.task-context`, `.tool-policy`,
|
|
109
|
+
`.evidence-trace`, `.evidence-gate`, `.subagent-gate`, `.context-capsule`) :
|
|
110
|
+
quelle que soit la décision demandée, tout le fichier — et donc le moteur
|
|
111
|
+
de politique (`grimoire.policies.engine`/`.schemas`) — était importé. C'est
|
|
112
|
+
devenu un paquet, un module par décision, résolu paresseusement par
|
|
113
|
+
`grimoire.hosts.decisions.run_decision` via un registre id → module ;
|
|
114
|
+
`__init__.py` ré-exporte tous les noms publics existants (et le privé
|
|
115
|
+
`_gate_summary` qu'un test pinne) par `__getattr__` de module, donc aucun
|
|
116
|
+
import existant ne change. `grimoire.hosts.surface` (446 lignes : IR
|
|
117
|
+
agent/modèle, fingerprinting, sonde du cœur Rust) est passé par le même
|
|
118
|
+
chemin : les trois enums que le hook lit sur *chaque* appel (`HookEvent`,
|
|
119
|
+
`ToolVerb`, `Enforcement`) vivent maintenant dans `grimoire.hosts.events`
|
|
120
|
+
(nouveau, réexporté par `surface.py` pour compatibilité) — et
|
|
121
|
+
`grimoire/hosts/__init__.py`, qui importait `ProjectSurface` (donc tout
|
|
122
|
+
`surface.py`) au niveau module rien que pour une ré-export dont rien dans
|
|
123
|
+
le dépôt ne se sert (`from grimoire.hosts import ProjectSurface`), le fait
|
|
124
|
+
maintenant paresseusement lui aussi.
|
|
125
|
+
Mesuré par `scripts/bench-rust-cores.py --macro-runs 15` (même machine) :
|
|
126
|
+
|
|
127
|
+
| commande | avant | après | cible | statut |
|
|
128
|
+
|---|---|---|---|---|
|
|
129
|
+
| `grimoire-hook PreToolUse` (tool-policy, destructif) | 70 ms | 64 ms | < 50 ms | **non atteinte** |
|
|
130
|
+
| `grimoire-hook PreToolUse` (lecture seule) | 69 ms | 58 ms | — | — |
|
|
131
|
+
| `grimoire-hook SessionStart` | 77 ms | 72 ms | — | — |
|
|
132
|
+
| `grimoire-hook UserPromptSubmit` | 63 ms | 49 ms | — | atteinte |
|
|
133
|
+
| `grimoire-hook PostToolUse` | 64 ms | 57 ms | — | — |
|
|
134
|
+
| `grimoire-hook SubagentStop` | 64 ms | 50 ms | — | — |
|
|
135
|
+
| `grimoire-hook PreCompact` | 65 ms | 50 ms | — | — |
|
|
136
|
+
| `grimoire-hook Stop` | 69 ms | 56 ms | — | — |
|
|
137
|
+
|
|
138
|
+
**Cible des 50 ms non atteinte pour `PreToolUse`, assumé.** Le profil
|
|
139
|
+
restant après découpage tient en trois postes incompressibles avec ce
|
|
140
|
+
mécanisme : le coût `dataclasses`/`inspect` de la première dataclass
|
|
141
|
+
chargée dans le process (stdlib, ~6-9 ms), `grimoire.core.standard_state`
|
|
142
|
+
+ `ruamel.yaml` (~9 ms — nécessaire : même une commande destructive lit
|
|
143
|
+
`active_task_id`/`active_profile_id` avant que le moteur de politique ne
|
|
144
|
+
tranche, sur tous les événements sauf aucun), et le moteur de politique
|
|
145
|
+
lui-même (`policies.engine`/`policies.schemas`, ~5 ms, propre à
|
|
146
|
+
`tool-policy`). Découper `decisions.py` plus finement ne change rien à ces
|
|
147
|
+
trois postes ; les réduire est un chantier distinct (bascule de parseur
|
|
148
|
+
YAML pour le premier, hors périmètre — `ruamel.yaml` est la seule
|
|
149
|
+
dépendance YAML déclarée du kit, `pyyaml` n'est que transitive).
|
|
150
|
+
Garde de régression : `tests/unit/test_hook_cost.py` — un sous-processus
|
|
151
|
+
propre par décision vérifie qu'exécuter une décision n'importe jamais le
|
|
152
|
+
module d'une décision sœur (`test_running_one_decision_imports_only_its_own_submodule`,
|
|
153
|
+
paramétré sur les sept), plus un budget de temps large et portable dans le
|
|
154
|
+
même esprit que `_COCKPIT_REFRESH_BUDGET_SECONDS`
|
|
155
|
+
(`tests/test_invariants.py`).
|
|
156
|
+
|
|
157
|
+
- **perf(cli): charger les sous-commandes à la demande — 60 % du temps de `doctor` était l'arbre Typer (#405).**
|
|
158
|
+
`grimoire.cli.app` importait sans condition les 20 modules `cmd_*` derrière
|
|
159
|
+
chaque sous-commande (`cmd_flow`, `cmd_host`, `cmd_memory_lexical`,
|
|
160
|
+
`cmd_cockpit`, `cmd_up`...) pour construire l'arbre Typer/Click, quelle que
|
|
161
|
+
soit la commande demandée — `grimoire --version` payait donc l'import de
|
|
162
|
+
`grimoire.flows`, `grimoire.missions.dispatch`, `grimoire.memory`, etc.
|
|
163
|
+
`grimoire.cli._lazy.LazyTyperGroup` (nouveau, `cls=` du `typer.Typer`
|
|
164
|
+
racine) remplace `add_typer()`/`command()` pour ces sous-commandes par un
|
|
165
|
+
registre nom → (module, attribut, aide courte, panneau, visibilité) ; le
|
|
166
|
+
module n'est importé qu'à la résolution réelle de la commande (dispatch, ou
|
|
167
|
+
son propre `--help`) — `grimoire --version` et `grimoire doctor .` ne
|
|
168
|
+
touchent plus aucun d'entre eux. `grimoire.cli.cmd_up` importait en outre
|
|
169
|
+
`cmd_init`/`core.scaffold`/`hosts.sync` à son propre niveau module rien que
|
|
170
|
+
pour les fonctions que `doctor` utilise réellement (`run_env_checks`) —
|
|
171
|
+
ces imports descendent maintenant dans les fonctions qui les utilisent
|
|
172
|
+
vraiment (`up()`, `_step_init`, `repair_project_artifacts`).
|
|
173
|
+
`grimoire --help` et l'aide de chaque sous-commande restent identiques au
|
|
174
|
+
caractère près (ordre des panneaux et des lignes inclus, garanti par un
|
|
175
|
+
registre `order` explicite dans `LazyTyperGroup.configure`) —
|
|
176
|
+
`scripts/compare-cli-help.py` (nouveau) le vérifie avant/après pour les 47
|
|
177
|
+
commandes. Garde de régression : `tests/unit/cli/test_lazy_startup.py`
|
|
178
|
+
(sous-processus propre) échoue si l'import de `grimoire.cli.app` amène
|
|
179
|
+
`grimoire.flows`, `grimoire.missions.dispatch`, `grimoire.memory` ou
|
|
180
|
+
`grimoire.cli.cmd_cockpit` dans `sys.modules`.
|
|
181
|
+
Mesuré par `scripts/bench-rust-cores.py` (médiane de 15, même machine) :
|
|
182
|
+
|
|
183
|
+
| commande | avant | après | cible | statut |
|
|
184
|
+
|---|---|---|---|---|
|
|
185
|
+
| `grimoire --version` | 313 ms | 89 ms | < 150 ms | atteinte |
|
|
186
|
+
| `grimoire doctor .` | 448 ms | 270 ms | < 300 ms | atteinte |
|
|
187
|
+
| `grimoire-hook PreToolUse` | 70 ms | 69 ms | < 50 ms | **non atteinte** |
|
|
188
|
+
|
|
189
|
+
`grimoire-hook` (point d'entrée séparé, `grimoire.hosts.runtime:main`) ne
|
|
190
|
+
passe jamais par `grimoire.cli.app` et n'est donc pas concerné par ce
|
|
191
|
+
mécanisme ; son coût restant vient de `grimoire.hosts.decisions` (918
|
|
192
|
+
lignes, tous les types de décision dans un seul module) et de
|
|
193
|
+
`grimoire.hosts.capabilities`/`.surface` — hors du périmètre de ce ticket
|
|
194
|
+
(« enregistrer les sous-commandes sans importer leur module », pas refondre
|
|
195
|
+
le moteur de décision des hooks). `grimoire-mcp` (`grimoire.mcp.server`)
|
|
196
|
+
vérifié : n'importe déjà pas `grimoire.cli.app`, rien à faire.
|
|
197
|
+
|
|
198
|
+
- fix(flows): un abandon (ou un refus MAST) avant tout progrès n'affiche plus tous les nodes comme complétés dans `grimoire flow status` (#414). `FlowEngine.status()` dérivait `completed_nodes`/`pending_nodes` de la seule position de `current_node` dans l'ordre topologique — sur un run ABORTED/REFUSED, `current_node` devient `None` (terminal) exactement comme un run réussi, donc l'ancien découpage rendait `completed_nodes == order` en entier même quand *aucun* node n'était réellement fait. `completed_nodes` reflète désormais les `completed_steps` du dernier checkpoint réel du `RuntimeKernel` sur un run mort (liste vide si aucun checkpoint n'existe encore, c'est-à-dire un abandon avant le premier `resume()`) ; `pending_nodes` reste vide par convention (on ne sait pas si l'hôte comptait reprendre). Corrigé des deux côtés en même temps, même verdict : `rust/grimoire-flows-core/src/lib.rs` (`status_slices_core`) miroité, `grimoire flow status` (texte et JSON) en hérite sans changement de code propre. Nouveaux tests de parité sous les deux backends (`GRIMOIRE_FLOWS_BACKEND=python|rust`) : abandon avant tout progrès, abandon après k nodes, refus avant progrès, complétion normale (inchangée) — `tests/unit/test_flows_rust_parity.py`.
|
|
199
|
+
|
|
10
200
|
## [3.44.0] - 2026-09-11
|
|
11
201
|
|
|
12
202
|
- feat(dispatch): cinquième port Rust optionnel de la cascade de dispatch et du routage de fournisseurs — `start_tier_for`/`_tier_chain` (plancher et chaîne de paliers par classe de vérifiabilité), la résolution `--start-tier` explicite contre le plancher, `render_invocation` (rendu d'un gabarit en argv), `_looks_rate_limited`, `_extract_cost_usd`/`_uncertainties_search_text`/`_extract_uncertainties` (analyse de la sortie d'un ouvrier délégué), `_matches_review_surface`/`_classify_review` (classification de revue), `DispatchReport.succeeded`/`.exit_code`/`.refusal_message`, et l'ordre/filtre de refroidissement de `providers.routing.candidates` (issue #354). `rust/grimoire-dispatch-core/` (dépendance `serde_json` épinglée `=1.0.151`, strict RFC 8259), bascule `GRIMOIRE_DISPATCH_BACKEND=python|rust|auto` (lue indépendamment par `grimoire.missions.dispatch` et `grimoire.providers.routing`, qui ne s'importent pas l'un l'autre), jobs CI `rust-dispatch / cargo` et `rust-dispatch / parity` dans `.github/workflows/rust-cores.yml`, roue toujours `py3-none-any`. Deux défauts trouvés par l'oracle Rust en portant `_extract_cost_usd`, corrigés côté Python dans cette même PR : `isinstance(True, int)` est vrai en Python, donc un `total_cost_usd` JSON `true`/`false` était jusqu'ici coercé en `1.0`/`0.0` — désormais exclu explicitement des deux côtés ; `json.loads` de CPython accepte par défaut les jetons hors RFC 8259 `NaN`/`Infinity`/`-Infinity`, que le cœur Rust (`serde_json`, strict) n'accepte pas nativement — **corrigé côté Python : JSON strict** (`_reject_non_standard` passé en `parse_constant` à chaque `json.loads` de `dispatch.py`, rattrapé comme un JSON invalide), un document portant un de ces jetons — même ailleurs que dans le champ lu — est désormais rejeté en bloc des deux côtés (coût absent, aucune incertitude extraite), jamais l'inverse (Rust est l'oracle, pas Python). Nouveau corpus fixture de dix sorties d'ouvrier réalistes (`tests/fixtures/dispatch_worker_outputs/`, aucune sortie enregistrée réelle trouvée dans le dépôt) et fuzz léger (200 chaînes aléatoires) prouvant qu'aucune des deux fonctions d'analyse ne lève jamais, sous aucun backend.
|
|
@@ -14,6 +204,7 @@ et ce projet adhère au [Semantic Versioning](https://semver.org/lang/fr/).
|
|
|
14
204
|
- feat(flows): quatrième port Rust optionnel de la machine à états du moteur de flows — `check_output_against_contract`, le calcul du node courant (`FlowEngine._current_node`), la décision de `resume()`/le calcul de `ResumeOutcome`, le découpage completed/pending de `status()`, et la table de transitions de `RuntimeKernel` (`_transition`/`advance_step`) (issue #354). `rust/grimoire-flows-core/`, bascule `GRIMOIRE_FLOWS_BACKEND=python|rust|auto` (lue indépendamment par `grimoire.flows.engine` et `grimoire.runtime.kernel`), jobs CI `rust-flows / cargo` et `rust-flows / parity` dans `.github/workflows/rust-cores.yml`, roue toujours `py3-none-any`. Divergence trouvée par l'oracle Rust et corrigée dans cette PR : `FlowEngine._TERMINAL_STATUSES` omettait `REFUSED` (terminal côté `RuntimeKernel` depuis les plafonds MAST, B11) — `resume()` sur un run REFUSED levait une erreur au message générique du kernel au lieu du message nommé de `resume()`, et `status()` affichait un `current_node`/`pending_nodes` périmés comme si le run continuait de progresser ; `REFUSED` ajouté à `_TERMINAL_STATUSES`, les deux backends s'accordent désormais. Comportement documenté et volontairement non changé : `status()` dérive `completed_nodes` de la position de `current_node` dans l'ordre topologique — un run ABORTED/REFUSED avant tout progrès affiche tous les nodes comme complétés, les deux backends reproduisant ce même comportement à l'identique (voir `rust/grimoire-flows-core/src/lib.rs` et l'issue de suivi citée dans la PR). Nouveau test de parité sur le corpus réel (`registry/blueprints/*.blueprint.json`) et sur la grille complète des 9×9 transitions de `WorkflowStatus`.
|
|
15
205
|
|
|
16
206
|
- feat(hosts): troisième port Rust optionnel de `grimoire.hosts.collect`/`grimoire.hosts.surface` — lecture du frontmatter d'agent et garde de distinction (issue #354). `rust/grimoire-hosts-core/`, bascule `GRIMOIRE_HOSTS_BACKEND=python|rust|auto`, jobs CI `rust-hosts / cargo` et `rust-hosts / parity` dans `.github/workflows/rust-cores.yml`, roue toujours `py3-none-any`. Divergences trouvées par l'oracle Rust : `_max_turns` plantait avec un `ValueError` non rattrapé sur un chiffre Unicode non-ASCII (`"²"`, `str.isdigit()` vrai mais `int()` refuse) — corrigé dans cette PR (`str.isascii()` en plus) ; `_tool_verbs` ignore un verbe d'outil hors de `ToolVerb` — le périmètre d'outils reste inchangé (changer ça modifierait silencieusement celui d'agents existants), mais le rejet n'est plus silencieux : `collect_agents`/`build_surface` remonte désormais une note `ProjectSurface.notes` par agent nommant les jetons rejetés, identique sous les deux backends. Nouveau test de parité sur le corpus réel (`archetypes/*/agents/*.md`) prouvant que `yaml-rust2` et ruamel s'accordent sur ce que le kit expédie effectivement.
|
|
207
|
+
|
|
17
208
|
## [3.43.1] - 2026-09-11
|
|
18
209
|
### Corrigé
|
|
19
210
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: grimoire-kit
|
|
3
|
-
Version: 3.44.
|
|
3
|
+
Version: 3.44.2
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "3.44.2"
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
"""Lazy command-tree loading for the ``grimoire`` CLI (issue #405).
|
|
2
|
+
|
|
3
|
+
Building the full Typer/Click command tree eagerly means importing every
|
|
4
|
+
sub-command module — and its heavy dependencies (``grimoire.flows``,
|
|
5
|
+
``grimoire.missions.dispatch``, ``grimoire.memory``, ``grimoire.cli.cmd_cockpit``...)
|
|
6
|
+
— before Typer even knows which command the user asked for. That import cost
|
|
7
|
+
used to be paid by *every* invocation, including ``grimoire --version`` and
|
|
8
|
+
every hook/MCP call (see the measurement in issue #405).
|
|
9
|
+
|
|
10
|
+
:class:`LazyTyperGroup` defers that import to the moment a specific
|
|
11
|
+
sub-command is actually resolved — real dispatch, or that sub-command's own
|
|
12
|
+
``--help``. Importing ``grimoire.cli.app`` or running an unrelated command
|
|
13
|
+
never touches a lazy sub-command's module.
|
|
14
|
+
|
|
15
|
+
The two registries (:class:`LazyGroupSpec` for ``add_typer``-style sub-apps,
|
|
16
|
+
:class:`LazyCommandSpec` for single ``@app.command`` functions) exist purely
|
|
17
|
+
as name -> (module, attribute) mappings plus the metadata Typer needs to
|
|
18
|
+
render the parent's own ``--help`` panel (short description, hidden flag,
|
|
19
|
+
rich panel) — see ``app.py`` for the actual data.
|
|
20
|
+
"""
|
|
21
|
+
|
|
22
|
+
from __future__ import annotations
|
|
23
|
+
|
|
24
|
+
import importlib
|
|
25
|
+
from dataclasses import dataclass
|
|
26
|
+
from typing import Any, ClassVar
|
|
27
|
+
|
|
28
|
+
import typer
|
|
29
|
+
from typer.core import TyperGroup
|
|
30
|
+
from typer.models import CommandInfo, TyperInfo
|
|
31
|
+
|
|
32
|
+
# Typer's own default (``typer.Typer(pretty_exceptions_short=True)``).
|
|
33
|
+
# Nothing in this CLI overrides it on the root app or any sub-app (verified:
|
|
34
|
+
# no ``pretty_exceptions_short=`` anywhere under ``grimoire.cli``), and the
|
|
35
|
+
# value isn't retrievable from a built click.Group afterwards — so it's
|
|
36
|
+
# fixed here rather than threaded through every lazy build call.
|
|
37
|
+
_PRETTY_EXCEPTIONS_SHORT = True
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
@dataclass(frozen=True)
|
|
41
|
+
class LazyGroupSpec:
|
|
42
|
+
"""A sub-``typer.Typer`` app, registered by name, imported on first use."""
|
|
43
|
+
|
|
44
|
+
module: str
|
|
45
|
+
attr: str
|
|
46
|
+
rich_help_panel: str | None = None
|
|
47
|
+
hidden: bool = False
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
@dataclass(frozen=True)
|
|
51
|
+
class LazyCommandSpec:
|
|
52
|
+
"""A single command function, registered by name, imported on first use."""
|
|
53
|
+
|
|
54
|
+
module: str
|
|
55
|
+
attr: str
|
|
56
|
+
rich_help_panel: str | None = None
|
|
57
|
+
hidden: bool = False
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
# Two aliases can point at the same backing module with *different* metadata
|
|
61
|
+
# (``debugger``: visible, panel "Data" / ``dbg``: hidden, no panel) — the
|
|
62
|
+
# built Click object carries that metadata, so it must be cached per (name,
|
|
63
|
+
# spec), not per (module, attr). Re-importing the module for the second alias
|
|
64
|
+
# is free anyway (``sys.modules`` already has it); only the Click-object
|
|
65
|
+
# build is repeated, once, only if both aliases are ever resolved in the same
|
|
66
|
+
# process (never happens on the measured paths — only on a full `--help`).
|
|
67
|
+
_build_cache: dict[tuple[str, Any], Any] = {}
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
def _import_attr(module: str, attr: str) -> Any:
|
|
71
|
+
return getattr(importlib.import_module(module), attr)
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
def _build_group(name: str, spec: LazyGroupSpec, owner: TyperGroup) -> Any:
|
|
75
|
+
key = (name, spec)
|
|
76
|
+
built = _build_cache.get(key)
|
|
77
|
+
if built is None:
|
|
78
|
+
sub_typer = _import_attr(spec.module, spec.attr)
|
|
79
|
+
info = TyperInfo(
|
|
80
|
+
sub_typer,
|
|
81
|
+
name=name,
|
|
82
|
+
hidden=spec.hidden,
|
|
83
|
+
rich_help_panel=spec.rich_help_panel,
|
|
84
|
+
)
|
|
85
|
+
built = typer.main.get_group_from_info(
|
|
86
|
+
info,
|
|
87
|
+
pretty_exceptions_short=_PRETTY_EXCEPTIONS_SHORT,
|
|
88
|
+
rich_markup_mode=owner.rich_markup_mode,
|
|
89
|
+
suggest_commands=owner.suggest_commands,
|
|
90
|
+
)
|
|
91
|
+
_build_cache[key] = built
|
|
92
|
+
return built
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
def _build_command(name: str, spec: LazyCommandSpec, owner: TyperGroup) -> Any:
|
|
96
|
+
key = (name, spec)
|
|
97
|
+
built = _build_cache.get(key)
|
|
98
|
+
if built is None:
|
|
99
|
+
func = _import_attr(spec.module, spec.attr)
|
|
100
|
+
info = CommandInfo(
|
|
101
|
+
name=name,
|
|
102
|
+
callback=func,
|
|
103
|
+
hidden=spec.hidden,
|
|
104
|
+
rich_help_panel=spec.rich_help_panel,
|
|
105
|
+
)
|
|
106
|
+
built = typer.main.get_command_from_info(
|
|
107
|
+
info,
|
|
108
|
+
pretty_exceptions_short=_PRETTY_EXCEPTIONS_SHORT,
|
|
109
|
+
rich_markup_mode=owner.rich_markup_mode,
|
|
110
|
+
)
|
|
111
|
+
_build_cache[key] = built
|
|
112
|
+
return built
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
class LazyTyperGroup(TyperGroup):
|
|
116
|
+
"""``TyperGroup`` that resolves a registered subset of commands lazily.
|
|
117
|
+
|
|
118
|
+
Call :meth:`configure` once, right after building the ``typer.Typer``
|
|
119
|
+
instance that uses this class (``typer.Typer(cls=LazyTyperGroup, ...)``),
|
|
120
|
+
with the name -> spec registries. Eager commands/sub-typers registered
|
|
121
|
+
the normal way (``@app.command``, ``app.add_typer``) are unaffected —
|
|
122
|
+
they still live in ``self.commands``.
|
|
123
|
+
|
|
124
|
+
``order`` is the exact name sequence ``grimoire --help`` rendered before
|
|
125
|
+
this class existed (every ``@app.command``/``app.command()`` in file
|
|
126
|
+
order, then every ``add_typer()`` in call order — Typer's own rule for
|
|
127
|
+
populating a group's ``commands`` dict). Sub-command panels are grouped
|
|
128
|
+
by ``rich_help_panel``, and rich renders panels/rows in first-seen order,
|
|
129
|
+
so without ``order`` the panel and row order would depend on which names
|
|
130
|
+
are eager vs. lazy instead of matching the pre-#405 output byte-for-byte.
|
|
131
|
+
"""
|
|
132
|
+
|
|
133
|
+
_lazy_groups: ClassVar[dict[str, LazyGroupSpec]] = {}
|
|
134
|
+
_lazy_commands: ClassVar[dict[str, LazyCommandSpec]] = {}
|
|
135
|
+
_lazy_order: ClassVar[list[str]] = []
|
|
136
|
+
|
|
137
|
+
@classmethod
|
|
138
|
+
def configure(
|
|
139
|
+
cls,
|
|
140
|
+
*,
|
|
141
|
+
groups: dict[str, LazyGroupSpec],
|
|
142
|
+
commands: dict[str, LazyCommandSpec],
|
|
143
|
+
order: list[str] | None = None,
|
|
144
|
+
) -> None:
|
|
145
|
+
cls._lazy_groups = groups
|
|
146
|
+
cls._lazy_commands = commands
|
|
147
|
+
cls._lazy_order = order or []
|
|
148
|
+
|
|
149
|
+
def list_commands(self, ctx: Any) -> list[str]:
|
|
150
|
+
names = set(self.commands) | set(self._lazy_groups) | set(self._lazy_commands)
|
|
151
|
+
ordered = [n for n in self._lazy_order if n in names]
|
|
152
|
+
remaining = [n for n in names if n not in self._lazy_order]
|
|
153
|
+
return ordered + remaining
|
|
154
|
+
|
|
155
|
+
def get_command(self, ctx: Any, cmd_name: str) -> Any:
|
|
156
|
+
cmd = self.commands.get(cmd_name)
|
|
157
|
+
if cmd is not None:
|
|
158
|
+
return cmd
|
|
159
|
+
group_spec = self._lazy_groups.get(cmd_name)
|
|
160
|
+
if group_spec is not None:
|
|
161
|
+
built = _build_group(cmd_name, group_spec, self)
|
|
162
|
+
self.commands[cmd_name] = built
|
|
163
|
+
return built
|
|
164
|
+
command_spec = self._lazy_commands.get(cmd_name)
|
|
165
|
+
if command_spec is not None:
|
|
166
|
+
built = _build_command(cmd_name, command_spec, self)
|
|
167
|
+
self.commands[cmd_name] = built
|
|
168
|
+
return built
|
|
169
|
+
return None
|
|
@@ -19,29 +19,8 @@ from rich.console import Console
|
|
|
19
19
|
from rich.table import Table
|
|
20
20
|
|
|
21
21
|
from grimoire.__version__ import __version__
|
|
22
|
+
from grimoire.cli._lazy import LazyCommandSpec, LazyGroupSpec, LazyTyperGroup
|
|
22
23
|
from grimoire.cli._shared import _AUDIT_FILENAME, _log_operation, _status_spinner
|
|
23
|
-
from grimoire.cli.cmd_blueprint import blueprint_app
|
|
24
|
-
from grimoire.cli.cmd_cadrage import cadrage_app
|
|
25
|
-
from grimoire.cli.cmd_cockpit import cockpit_app
|
|
26
|
-
from grimoire.cli.cmd_context_pack import context_pack_command
|
|
27
|
-
from grimoire.cli.cmd_debugger import debugger_app
|
|
28
|
-
from grimoire.cli.cmd_ext import ext_app
|
|
29
|
-
from grimoire.cli.cmd_features import features_app
|
|
30
|
-
from grimoire.cli.cmd_flow import flow_app
|
|
31
|
-
from grimoire.cli.cmd_hooks import hooks_app
|
|
32
|
-
from grimoire.cli.cmd_host import host_app
|
|
33
|
-
from grimoire.cli.cmd_memory_lexical import memory_app
|
|
34
|
-
from grimoire.cli.cmd_migrate import migrate_command
|
|
35
|
-
from grimoire.cli.cmd_proposals import proposals_app
|
|
36
|
-
from grimoire.cli.cmd_providers import providers_app
|
|
37
|
-
from grimoire.cli.cmd_serve import serve as serve_cmd
|
|
38
|
-
from grimoire.cli.cmd_standard import standard_app
|
|
39
|
-
from grimoire.cli.cmd_stigmergy import stigmergy_app
|
|
40
|
-
from grimoire.cli.cmd_task import task_app
|
|
41
|
-
from grimoire.cli.cmd_up import up as up_command
|
|
42
|
-
from grimoire.cli.cmd_upgrade import upgrade_command
|
|
43
|
-
from grimoire.cli.cmd_web import web_app
|
|
44
|
-
from grimoire.cli.cmd_workflows import workflows_app
|
|
45
24
|
from grimoire.core import layout
|
|
46
25
|
from grimoire.core.config import GrimoireConfig
|
|
47
26
|
from grimoire.core.exceptions import GrimoireConfigError, GrimoireError
|
|
@@ -94,6 +73,10 @@ def _suggest_command() -> None:
|
|
|
94
73
|
for group_info in app.registered_groups:
|
|
95
74
|
if group_info.name:
|
|
96
75
|
_KNOWN_COMMANDS.add(group_info.name)
|
|
76
|
+
# Lazy sub-commands (issue #405) aren't in app.registered_groups —
|
|
77
|
+
# they never call add_typer()/command() at import time.
|
|
78
|
+
_KNOWN_COMMANDS.update(LazyTyperGroup._lazy_groups)
|
|
79
|
+
_KNOWN_COMMANDS.update(LazyTyperGroup._lazy_commands)
|
|
97
80
|
_KNOWN_COMMANDS.update(_ALIASES)
|
|
98
81
|
if arg in _KNOWN_COMMANDS:
|
|
99
82
|
return
|
|
@@ -107,6 +90,7 @@ def _suggest_command() -> None:
|
|
|
107
90
|
|
|
108
91
|
app = typer.Typer(
|
|
109
92
|
name="grimoire",
|
|
93
|
+
cls=LazyTyperGroup,
|
|
110
94
|
help="Grimoire Kit — Composable AI agent platform.",
|
|
111
95
|
no_args_is_help=True,
|
|
112
96
|
rich_markup_mode="rich",
|
|
@@ -983,35 +967,65 @@ def update_cmd() -> None:
|
|
|
983
967
|
self_update()
|
|
984
968
|
|
|
985
969
|
|
|
986
|
-
# ──
|
|
987
|
-
#
|
|
988
|
-
#
|
|
989
|
-
|
|
990
|
-
app
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
#
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
#
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
970
|
+
# ── Lazy sub-commands (issue #405) ─────────────────────────────────────────────
|
|
971
|
+
#
|
|
972
|
+
# Every entry below used to be an eager `from grimoire.cli.cmd_X import Y` at
|
|
973
|
+
# the top of this file plus an `app.add_typer(Y, ...)` / `app.command(...)(Y)`
|
|
974
|
+
# call here — meaning importing `grimoire.cli.app` (hence every CLI
|
|
975
|
+
# invocation, hook, and MCP call) paid for importing all of them, regardless
|
|
976
|
+
# of which command was actually requested. `LazyTyperGroup` (see `_lazy.py`)
|
|
977
|
+
# imports the backing module only when that specific command is resolved:
|
|
978
|
+
# real dispatch, or that command's own `--help`. `grimoire --version` and
|
|
979
|
+
# `grimoire doctor .` never touch any of these modules.
|
|
980
|
+
#
|
|
981
|
+
# Name, rich_help_panel and hidden must match what the corresponding
|
|
982
|
+
# `add_typer`/`command` call passed before — they are what `grimoire --help`
|
|
983
|
+
# renders without importing anything.
|
|
984
|
+
|
|
985
|
+
LazyTyperGroup.configure(
|
|
986
|
+
groups={
|
|
987
|
+
"memory": LazyGroupSpec("grimoire.cli.cmd_memory_lexical", "memory_app", rich_help_panel="Data"),
|
|
988
|
+
"hooks": LazyGroupSpec("grimoire.cli.cmd_hooks", "hooks_app", rich_help_panel="Project"),
|
|
989
|
+
"cadrage": LazyGroupSpec("grimoire.cli.cmd_cadrage", "cadrage_app", rich_help_panel="Project"),
|
|
990
|
+
"debugger": LazyGroupSpec("grimoire.cli.cmd_debugger", "debugger_app", rich_help_panel="Data"),
|
|
991
|
+
"dbg": LazyGroupSpec("grimoire.cli.cmd_debugger", "debugger_app", hidden=True),
|
|
992
|
+
"workflows": LazyGroupSpec("grimoire.cli.cmd_workflows", "workflows_app", rich_help_panel="Project"),
|
|
993
|
+
"wf": LazyGroupSpec("grimoire.cli.cmd_workflows", "workflows_app", hidden=True),
|
|
994
|
+
"standard": LazyGroupSpec("grimoire.cli.cmd_standard", "standard_app", rich_help_panel="Project"),
|
|
995
|
+
"ext": LazyGroupSpec("grimoire.cli.cmd_ext", "ext_app", rich_help_panel="Project"),
|
|
996
|
+
"blueprint": LazyGroupSpec("grimoire.cli.cmd_blueprint", "blueprint_app", rich_help_panel="Project"),
|
|
997
|
+
"flow": LazyGroupSpec("grimoire.cli.cmd_flow", "flow_app", rich_help_panel="Project"),
|
|
998
|
+
"cockpit": LazyGroupSpec("grimoire.cli.cmd_cockpit", "cockpit_app", rich_help_panel="Project"),
|
|
999
|
+
"task": LazyGroupSpec("grimoire.cli.cmd_task", "task_app", rich_help_panel="Project"),
|
|
1000
|
+
"stigmergy": LazyGroupSpec("grimoire.cli.cmd_stigmergy", "stigmergy_app", rich_help_panel="Data"),
|
|
1001
|
+
"features": LazyGroupSpec("grimoire.cli.cmd_features", "features_app", rich_help_panel="Project"),
|
|
1002
|
+
"host": LazyGroupSpec("grimoire.cli.cmd_host", "host_app", rich_help_panel="Project"),
|
|
1003
|
+
"providers": LazyGroupSpec("grimoire.cli.cmd_providers", "providers_app", rich_help_panel="Project"),
|
|
1004
|
+
"proposals": LazyGroupSpec("grimoire.cli.cmd_proposals", "proposals_app", rich_help_panel="Agents"),
|
|
1005
|
+
"web": LazyGroupSpec("grimoire.cli.cmd_web", "web_app", rich_help_panel="Data"),
|
|
1006
|
+
},
|
|
1007
|
+
commands={
|
|
1008
|
+
"up": LazyCommandSpec("grimoire.cli.cmd_up", "up", rich_help_panel="Project"),
|
|
1009
|
+
"context-pack": LazyCommandSpec("grimoire.cli.cmd_context_pack", "context_pack_command", rich_help_panel="Data"),
|
|
1010
|
+
"migrate": LazyCommandSpec("grimoire.cli.cmd_migrate", "migrate_command", rich_help_panel="Project"),
|
|
1011
|
+
"upgrade": LazyCommandSpec("grimoire.cli.cmd_upgrade", "upgrade_command", rich_help_panel="Utilities"),
|
|
1012
|
+
"serve": LazyCommandSpec("grimoire.cli.cmd_serve", "serve", hidden=True), # alias déprécié — voir `cockpit serve` (#351)
|
|
1013
|
+
},
|
|
1014
|
+
# Exact pre-#405 order: every @app.command/app.command() in file order,
|
|
1015
|
+
# then every add_typer() in call order (Typer's own populating rule) —
|
|
1016
|
+
# keeps `grimoire --help`'s panel/row order byte-identical. See
|
|
1017
|
+
# `LazyTyperGroup.configure`'s docstring for why this is needed.
|
|
1018
|
+
order=[
|
|
1019
|
+
"version", "init", "doctor", "status", "add", "remove", "agent-miss",
|
|
1020
|
+
"validate", "lint", "update", "up", "context-pack", "migrate", "upgrade",
|
|
1021
|
+
"serve", "diff", "schema", "check", "merge", "setup", "env", "history",
|
|
1022
|
+
"repair",
|
|
1023
|
+
"memory", "hooks", "cadrage", "debugger", "dbg", "registry", "workflows",
|
|
1024
|
+
"wf", "standard", "ext", "blueprint", "flow", "cockpit", "task",
|
|
1025
|
+
"stigmergy", "features", "host", "providers", "proposals", "web",
|
|
1026
|
+
"config", "completion", "self", "plugins",
|
|
1027
|
+
],
|
|
1028
|
+
)
|
|
1015
1029
|
|
|
1016
1030
|
|
|
1017
1031
|
# ── grimoire registry ─────────────────────────────────────────────────────────────
|
|
@@ -1021,25 +1035,6 @@ _reg_query_arg = typer.Argument(None, help="Search query.")
|
|
|
1021
1035
|
app.add_typer(registry_app, name="registry", rich_help_panel="Agents")
|
|
1022
1036
|
|
|
1023
1037
|
|
|
1024
|
-
# ── grimoire workflows ───────────────────────────────────────────────────────────
|
|
1025
|
-
|
|
1026
|
-
app.add_typer(workflows_app, name="workflows", rich_help_panel="Project")
|
|
1027
|
-
app.add_typer(workflows_app, name="wf", hidden=True)
|
|
1028
|
-
app.add_typer(standard_app, name="standard", rich_help_panel="Project")
|
|
1029
|
-
app.add_typer(ext_app, name="ext", rich_help_panel="Project")
|
|
1030
|
-
app.add_typer(blueprint_app, name="blueprint", rich_help_panel="Project")
|
|
1031
|
-
app.add_typer(flow_app, name="flow", rich_help_panel="Project")
|
|
1032
|
-
app.add_typer(cockpit_app, name="cockpit", rich_help_panel="Project")
|
|
1033
|
-
app.add_typer(task_app, name="task", rich_help_panel="Project")
|
|
1034
|
-
app.add_typer(stigmergy_app, name="stigmergy", rich_help_panel="Data")
|
|
1035
|
-
app.add_typer(features_app, name="features", rich_help_panel="Project")
|
|
1036
|
-
app.add_typer(host_app, name="host", rich_help_panel="Project")
|
|
1037
|
-
app.add_typer(providers_app, name="providers", rich_help_panel="Project")
|
|
1038
|
-
app.add_typer(proposals_app, name="proposals", rich_help_panel="Agents")
|
|
1039
|
-
app.add_typer(web_app, name="web", rich_help_panel="Data")
|
|
1040
|
-
app.command("serve", hidden=True)(serve_cmd) # alias déprécié — voir `cockpit serve` (#351)
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
1038
|
@registry_app.command("list")
|
|
1044
1039
|
def registry_list(ctx: typer.Context) -> None:
|
|
1045
1040
|
"""List all available archetypes and agents."""
|
|
@@ -71,6 +71,12 @@ def board_export(
|
|
|
71
71
|
return
|
|
72
72
|
|
|
73
73
|
write_board(dest, board)
|
|
74
|
+
if dest == root / _BOARD_RELPATH:
|
|
75
|
+
# Même empreinte-invalidation que le service (issue #419, second
|
|
76
|
+
# lot) : sans cet appel, seul le hook *suivant* verrait la reprojection.
|
|
77
|
+
from grimoire.core.standard_state import invalidate_cache
|
|
78
|
+
|
|
79
|
+
invalidate_cache(root)
|
|
74
80
|
counts = _counts(board)
|
|
75
81
|
if _fmt(ctx) == "json":
|
|
76
82
|
typer.echo(json.dumps({"path": str(dest), "tasks": len(board["tasks"]), "by_status": counts}, indent=2, ensure_ascii=False))
|
|
@@ -30,12 +30,17 @@ from rich.console import Console
|
|
|
30
30
|
from rich.table import Table
|
|
31
31
|
|
|
32
32
|
from grimoire.cli import cmd_setup
|
|
33
|
-
from grimoire.cli.cmd_init import KNOWN_ARCHETYPES, KNOWN_BACKENDS, run_init
|
|
34
33
|
from grimoire.core import layout
|
|
35
34
|
from grimoire.core.config import GrimoireConfig
|
|
36
35
|
from grimoire.core.exceptions import GrimoireConfigError, GrimoireError
|
|
37
|
-
|
|
38
|
-
|
|
36
|
+
|
|
37
|
+
# NOTE (issue #405): cmd_init/core.scaffold/hosts.sync are only needed by the
|
|
38
|
+
# actual `up`/`--fix` code paths below, not by `run_env_checks` — which
|
|
39
|
+
# `grimoire doctor` imports unconditionally on every run. Importing them here
|
|
40
|
+
# at module level meant every `grimoire doctor .` paid for `grimoire init`'s
|
|
41
|
+
# full dependency tree (scaffold, memory, missions, hosts.*) just to reach a
|
|
42
|
+
# handful of socket probes. They're imported lazily, next to their one use
|
|
43
|
+
# each, instead.
|
|
39
44
|
|
|
40
45
|
console = Console(stderr=True)
|
|
41
46
|
|
|
@@ -511,7 +516,8 @@ def repair_project_artifacts(target: Path) -> list[str]:
|
|
|
511
516
|
Returns the list of regenerated labels (relative paths).
|
|
512
517
|
"""
|
|
513
518
|
from grimoire.core.archetype_resolver import ResolvedArchetype
|
|
514
|
-
from grimoire.core.scaffold import ProjectScaffolder, ScaffoldPlan
|
|
519
|
+
from grimoire.core.scaffold import TIER_SEED, ProjectScaffolder, ScaffoldPlan, write_text_if_changed
|
|
520
|
+
from grimoire.hosts.sync import sync_host_surfaces
|
|
515
521
|
|
|
516
522
|
target = target.resolve()
|
|
517
523
|
cfg = _load_config_quiet(target)
|
|
@@ -634,6 +640,8 @@ def _step_init(
|
|
|
634
640
|
dry_run: bool,
|
|
635
641
|
) -> bool:
|
|
636
642
|
"""Run (or skip) express init. Returns True when a config is available after the step."""
|
|
643
|
+
from grimoire.cli.cmd_init import run_init
|
|
644
|
+
|
|
637
645
|
config_path = target / "project-context.yaml"
|
|
638
646
|
if config_path.is_file():
|
|
639
647
|
state.steps.append(StepResult("init", "skipped", "project already initialized (project-context.yaml present)"))
|
|
@@ -1067,6 +1075,8 @@ def up(
|
|
|
1067
1075
|
[cyan]grimoire up . --needs collab-review[/cyan] Standard init from a need profile
|
|
1068
1076
|
[cyan]grimoire up . --no-standard[/cyan] Skip the agentic standard step
|
|
1069
1077
|
"""
|
|
1078
|
+
from grimoire.cli.cmd_init import KNOWN_ARCHETYPES, KNOWN_BACKENDS
|
|
1079
|
+
|
|
1070
1080
|
target = path.resolve()
|
|
1071
1081
|
fmt = (ctx.obj or {}).get("output", "text")
|
|
1072
1082
|
|