grimoire-kit 3.76.0__tar.gz → 3.77.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/CHANGELOG.md +12 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/PKG-INFO +1 -1
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/registry/kit-file-hashes.json +1 -1
- grimoire_kit-3.77.0/src/grimoire/__version__.py +1 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/_lazy_extra.py +1 -0
- grimoire_kit-3.77.0/src/grimoire/cli/cmd_idea.py +118 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_task_usage.py +35 -1
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/agentic_standard.py +9 -9
- grimoire_kit-3.77.0/src/grimoire/core/request_memo.py +40 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/standard_checks/verifiers.py +9 -0
- grimoire_kit-3.77.0/src/grimoire/mcp/idea_tools.py +60 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/mcp/memory_gestures.py +4 -0
- grimoire_kit-3.77.0/src/grimoire/missions/ideas.py +190 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/ledger.py +11 -4
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/merger.py +8 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/orchestrate.py +25 -1
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/reviewer.py +11 -6
- grimoire_kit-3.77.0/src/grimoire/missions/usage_fold.py +245 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/workspace_api.py +70 -32
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/workspace_attention.py +9 -4
- grimoire_kit-3.77.0/src/grimoire/tools/workspace_ideas.py +93 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/workspace_pulse.py +29 -12
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/workspace_routes.py +10 -31
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/workspace_work.py +5 -0
- grimoire_kit-3.77.0/version.txt +1 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/workspace/api.js +6 -1
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/workspace/index.html +1 -1
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/workspace/live.js +64 -11
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/workspace/shell.css +45 -1
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/workspace/shell.js +37 -14
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/workspace/spaces/a-traiter.js +19 -3
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/workspace/spaces/demarrer.js +1 -1
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/workspace/spaces/executer.js +4 -2
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/workspace/spaces/piloter.js +1 -1
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/workspace/spaces/revue.js +1 -1
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/workspace/spaces/task-intake.js +139 -6
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/workspace/tokens.css +5 -0
- grimoire_kit-3.76.0/src/grimoire/__version__.py +0 -1
- grimoire_kit-3.76.0/version.txt +0 -1
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/.gitignore +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/LICENSE +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/README.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/_grimoire/_config/custom/prompt-templates/README.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/archetypes/agentic-standard/archetype.dna.yaml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/archetypes/agentic-standard/shared-context.tpl.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/archetypes/creative-studio/agents/blender-expert.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/archetypes/creative-studio/agents/brand-designer.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/archetypes/creative-studio/agents/illustration-expert.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/archetypes/creative-studio/archetype.dna.yaml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/archetypes/creative-studio/shared-context.tpl.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/archetypes/creative-studio/skills/creative-content-copywriting.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/archetypes/features/vector-memory/vectus.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/archetypes/fix-loop/README.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/archetypes/fix-loop/agents/fix-loop-orchestrator.tpl.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/archetypes/fix-loop/archetype.dna.yaml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/archetypes/fix-loop/workflows/workflow-closed-loop-fix.tpl.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/archetypes/infra-ops/agents/monitoring-specialist.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/archetypes/infra-ops/agents/ops-engineer.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/archetypes/infra-ops/agents/systems-debugger.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/archetypes/infra-ops/archetype.dna.yaml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/archetypes/infra-ops/shared-context.tpl.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/archetypes/infra-ops/skills/infra-backup-dr.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/archetypes/infra-ops/skills/infra-k8s-gitops.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/archetypes/infra-ops/skills/infra-pipeline-cicd.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/archetypes/infra-ops/skills/infra-security-hardening.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/archetypes/meta/agents/agent-optimizer.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/archetypes/meta/agents/concierge.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/archetypes/meta/agents/security-auditor.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/archetypes/meta/archetype.dna.yaml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/archetypes/meta/skills/meta-art-direction.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/archetypes/meta/skills/meta-memory-quality.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/archetypes/meta/skills/meta-project-navigation.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/archetypes/meta/skills/meta-toolsmithing.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/archetypes/meta/skills/upgrade-review.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/archetypes/minimal/agents/custom-agent.tpl.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/archetypes/minimal/archetype.dna.yaml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/archetypes/platform-engineering/agents/backend-engineer.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/archetypes/platform-engineering/agents/platform-architect.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/archetypes/platform-engineering/archetype.dna.yaml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/archetypes/platform-engineering/shared-context.tpl.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/archetypes/platform-engineering/skills/platform-deploy-release.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/archetypes/platform-engineering/skills/platform-reliability-sre.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/archetypes/platform-engineering/templates/architecture.tpl.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/archetypes/stack/agents/stack-engineer.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/archetypes/stack/archetype.dna.yaml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/archetypes/stack/skills/stack-ansible.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/archetypes/stack/skills/stack-docker.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/archetypes/stack/skills/stack-go.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/archetypes/stack/skills/stack-k8s.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/archetypes/stack/skills/stack-python.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/archetypes/stack/skills/stack-terraform.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/archetypes/stack/skills/stack-typescript.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/archetypes/web-app/agents/fullstack-dev.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/archetypes/web-app/archetype.dna.yaml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/archetypes/web-app/shared-context.tpl.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/archetypes/web-app/skills/web-frontend-ux.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/changelog.d/README.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/docs/assets/captures/i1/README.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/docs/assets/captures/p47/README.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/docs/captures/p42-correction/README.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/evals/README.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/evals/witnesses/README.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/evals/witnesses/web-app-todo/activated/README.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/evals/witnesses/web-app-todo/app/README.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/evals/witnesses/web-app-todo/app/web/index.html +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/evals/witnesses/web-app-todo/app/web/package-lock.json +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/evals/witnesses/web-app-todo/app/web/package.json +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/evals/witnesses/web-app-todo/app/web/src/App.tsx +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/evals/witnesses/web-app-todo/app/web/src/components/AddTaskForm.tsx +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/evals/witnesses/web-app-todo/app/web/src/components/TaskItem.tsx +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/evals/witnesses/web-app-todo/app/web/src/components/TaskList.tsx +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/evals/witnesses/web-app-todo/app/web/src/main.tsx +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/evals/witnesses/web-app-todo/app/web/src/styles.css +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/evals/witnesses/web-app-todo/app/web/src/test/AddTaskForm.test.tsx +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/evals/witnesses/web-app-todo/app/web/src/test/TaskList.test.tsx +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/evals/witnesses/web-app-todo/app/web/src/test/setup.ts +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/evals/witnesses/web-app-todo/app/web/src/types.ts +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/evals/witnesses/web-app-todo/app/web/tsconfig.json +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/evals/witnesses/web-app-todo/app/web/vite.config.ts +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/evals/witnesses/web-app-todo/enforced/README.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/examples/README.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/examples/blueprint-minimal/README.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/examples/blueprint-web-pipeline/README.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/examples/terraform-houseserver/README.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/examples/web-app-todo/README.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/extensions/README.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/extensions/autogen/artifacts/agents/autogen-conversation-runner.agent.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/extensions/autogen/artifacts/skills/autogen-conversation-design/SKILL.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/extensions/autogen/extension.json +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/extensions/autogen/scripts/verify-install.sh +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/extensions/browser-use/artifacts/agents/browser-use-runner.agent.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/extensions/browser-use/artifacts/instructions/browser-evidence.instructions.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/extensions/browser-use/extension.json +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/extensions/browser-use/scripts/verify-install.sh +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/extensions/crewai/artifacts/agents/crewai-crew-runner.agent.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/extensions/crewai/artifacts/hooks/crewai-telemetry-bridge.json +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/extensions/crewai/artifacts/hooks/crewai-telemetry-bridge.sh +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/extensions/crewai/artifacts/prompts/crewai-import-crew.prompt.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/extensions/crewai/artifacts/skills/crewai-crew-design/SKILL.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/extensions/crewai/extension.json +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/extensions/crewai/scripts/register-hooks.sh +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/extensions/crewai/scripts/unregister-hooks.sh +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/extensions/crewai/scripts/verify-install.sh +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/extensions/extension.schema.json +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/extensions/fennara-godot/artifacts/skills/godot-evidence-loop/SKILL.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/extensions/fennara-godot/extension.json +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/extensions/fennara-godot/scripts/setup-mcp.sh +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/extensions/fennara-godot/scripts/teardown-mcp.sh +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/extensions/fennara-godot/scripts/verify-install.sh +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/extensions/grimoire-mcp/artifacts/instructions/mcp-trust-gate.instructions.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/extensions/grimoire-mcp/artifacts/skills/grimoire-mcp-setup/SKILL.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/extensions/grimoire-mcp/extension.json +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/extensions/grimoire-mcp/scripts/verify-install.sh +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/extensions/haystack/artifacts/instructions/haystack-rag-governance.instructions.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/extensions/haystack/artifacts/skills/haystack-pipeline-design/SKILL.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/extensions/haystack/extension.json +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/extensions/haystack/scripts/verify-install.sh +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/extensions/langfuse/artifacts/hooks/langfuse-trace-export.json +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/extensions/langfuse/artifacts/hooks/langfuse-trace-export.sh +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/extensions/langfuse/artifacts/instructions/langfuse-observability.instructions.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/extensions/langfuse/artifacts/skills/langfuse-tracing-setup/SKILL.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/extensions/langfuse/extension.json +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/extensions/langfuse/scripts/register-hooks.sh +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/extensions/langfuse/scripts/unregister-hooks.sh +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/extensions/langfuse/scripts/verify-install.sh +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/extensions/langgraph/artifacts/agents/langgraph-graph-runner.agent.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/extensions/langgraph/artifacts/prompts/langgraph-import-graph.prompt.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/extensions/langgraph/artifacts/skills/langgraph-graph-design/SKILL.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/extensions/langgraph/extension.json +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/extensions/langgraph/scripts/verify-install.sh +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/FREEZE.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/agent-base-compact.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/agent-base.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/agent-mesh-network.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/agent-relationship-graph.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/agent-rules.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/agent2agent.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/agentic-industry-reference.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/agentic-standard/README.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/agentic-standard/capability-map.yaml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/agentic-standard/needs-catalog.yaml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/agentic-standard/profile-map.yaml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/agentic-standard/target-schema.yaml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/acceptance-record.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/accepted-risks.yaml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/blast-radius-policy.yaml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/browser-tool-contract.yaml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/capability-registry.yaml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/claim-ledger.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/cluster-action-policy.yaml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/compliance-declaration.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/compliance-score.yaml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/compression-gate.yaml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/context-contract.yaml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/cost-registry.yaml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/decision-council.yaml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/decision-graph.yaml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/doc-graph-pipeline.yaml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/environment-policy.yaml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/evidence-gates.yaml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/evidence-pack.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/flow-dsl-manifest.yaml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/guardrail-contract.yaml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/hook-registry.yaml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/incident-registry.yaml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/k8s-agent-manifest.yaml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/knowledge-source-registry.yaml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/llm-provider-registry.yaml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/memory-integrity.yaml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/memory-policy.yaml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/merge-lane.yaml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/mission-brief.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/observability-policy.yaml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/orchestration-policy.yaml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/pattern-catalog.yaml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/privilege-boundary.yaml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/prompt-firewall.yaml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/prompt-version-log.yaml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/remediation-plan.yaml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/remote-hygiene.yaml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/retention-registry.yaml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/risk-control-matrix.yaml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/rule-packs.yaml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/runtime-provider-contract.yaml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/runtime-surface-registry.yaml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/task-board.yaml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/task-envelope.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/tool-registry.yaml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/visual-evidence.yaml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/waivers.yaml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/workflow-state-manifest.yaml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/workspace-isolation.yaml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/agentic-standard/traceability.yaml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/archetype-dna.schema.yaml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/cc-reference.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/cc-verify.sh +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/context-router.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/copilot/instructions/grimoire-project.instructions.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/copilot/prompts/grimoire-changelog.prompt.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/copilot/prompts/grimoire-dream.prompt.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/copilot/prompts/grimoire-health-check.prompt.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/copilot/prompts/grimoire-pre-push.prompt.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/copilot/prompts/grimoire-self-heal.prompt.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/copilot/prompts/grimoire-session-bootstrap.prompt.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/copilot/prompts/grimoire-status.prompt.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/copilot/prompts/grimoire-upgrade-review.prompt.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/copilot-extension/README.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/cross-validation-trust.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/delivery-contract.tpl.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/event-log-shared-state.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/expertises/skills/expertise-architecture-haut-niveau.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/expertises/skills/expertise-aws.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/expertises/skills/expertise-azure.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/expertises/skills/expertise-c.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/expertises/skills/expertise-cloudflare.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/expertises/skills/expertise-cpp.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/expertises/skills/expertise-csharp.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/expertises/skills/expertise-design-patterns.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/expertises/skills/expertise-elixir.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/expertises/skills/expertise-gcp.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/expertises/skills/expertise-hetzner.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/expertises/skills/expertise-java.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/expertises/skills/expertise-kotlin.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/expertises/skills/expertise-kubernetes-managed.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/expertises/skills/expertise-ovh.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/expertises/skills/expertise-performance.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/expertises/skills/expertise-php.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/expertises/skills/expertise-ruby.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/expertises/skills/expertise-rust.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/expertises/skills/expertise-scala.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/expertises/skills/expertise-scaleway.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/expertises/skills/expertise-securite-applicative.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/expertises/skills/expertise-swift.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/expertises/skills/expertise-systemes-bas-niveau.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/expertises/skills/expertise-testing-avancee.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/glossary.yaml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/grimoire-trace.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/honest-uncertainty-protocol.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/hooks/.pre-commit-config.tpl.yaml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/hooks/commit-msg.sh +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/hooks/mnemo-consolidate.sh +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/hooks/post-checkout.sh +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/hooks/post-commit.sh +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/hooks/pre-commit-cc.sh +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/hooks/pre-push.sh +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/hooks/prepare-commit-msg.sh +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/hosts/commands/grimoire-doctor.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/hosts/commands/grimoire-gate.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/hosts/commands/grimoire-proof.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/hosts/commands/grimoire-recall.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/hosts/commands/grimoire-verify.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/hosts/skills/grimoire-agent-dispatch.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/hosts/skills/grimoire-evidence.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/hosts/skills/grimoire-memory.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/hosts/skills/grimoire-steward.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/hybrid-parallelism-engine.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/mcp/grimoire-mcp-server.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/memory/.gitignore +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/memory/backends/__init__.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/memory/backends/backend_lexical.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/memory/backends/backend_local.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/memory/backends/backend_ollama.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/memory/backends/backend_qdrant_local.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/memory/backends/backend_qdrant_server.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/memory/contradiction-log.tpl.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/memory/dependency-graph.tpl.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/memory/docker-compose.memory-target.tpl.yml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/memory/docker-compose.memory.tpl.yml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/memory/failure-museum.tpl.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/memory/handoff-log.tpl.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/memory/k8s-qdrant.tpl.yaml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/memory/maintenance.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/memory/mem0-bridge.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/memory/memory_seed.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/memory/network-topology.tpl.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/memory/oss-references.tpl.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/memory/requirements/requirements-minimal.txt +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/memory/requirements/requirements-ollama.txt +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/memory/requirements/requirements-qdrant.txt +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/memory/requirements.txt +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/memory/session-save.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/orchestrator-gateway.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/productive-conflict-engine.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/prompt-templates/README.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/prompt-templates/audit-report.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/prompt-templates/capacity-planning.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/prompt-templates/compliance-check.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/prompt-templates/dependency-updates.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/prompt-templates/design-tokens.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/prompt-templates/network-troubleshoot.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/prompt-templates/operational-mode.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/prompt-templates/periodic-report.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/prompt-templates/secret-rotation.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/prompt-templates/strategic-plan.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/prompt-templates/troubleshoot.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/question-escalation-chain.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/registry/README.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/selective-huddle-protocol.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/sessions/README.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/sil-collect.sh +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/tools/README.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/tools/adversarial-consensus.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/tools/agent-bench.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/tools/agent-caller.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/tools/agent-darwinism.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/tools/agent-debugger.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/tools/agent-forge.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/tools/agent-integrity.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/tools/agent-test.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/tools/agent-watch.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/tools/agent-worker.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/tools/antifragile-score.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/tools/auto-doc.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/tools/context-guard.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/tools/context-summarizer.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/tools/cross-migrate.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/tools/dep-check.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/tools/distill.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/tools/dna-evolve.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/tools/dream.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/tools/expert-tool-chain.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/tools/failure-museum.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/tools/gen-tests.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/tools/grimoire-completion.zsh +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/tools/grimoire-mcp-tools.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/tools/grimoire-setup.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/tools/image-prompt.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/tools/incubator.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/tools/llm-router.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/tools/memory-lint.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/tools/memory-sync.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/tools/message-bus.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/tools/nso.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/tools/observatory.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/tools/preflight-check.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/tools/quick-check.sh +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/tools/rag-indexer.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/tools/rag-retriever.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/tools/reasoning-stream.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/tools/schema-validator.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/tools/session-lifecycle.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/tools/stigmergy.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/tools/stigmergy_hooks/scripts/stigmergy-emit-post-edit.sh +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/tools/stigmergy_hooks/scripts/stigmergy-emit-stop.sh +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/tools/stigmergy_hooks/scripts/stigmergy-sense.sh +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/tools/stigmergy_hooks/scripts/stigmergy_hook.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/tools/stigmergy_hooks/stigmergy-emit.json +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/tools/stigmergy_hooks/stigmergy-sense.json +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/tools/swarm-consensus.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/tools/synapse-trace.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/tools/token-budget.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/tools/tool-registry.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/tools/tool-resolver.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/tools/vision-judge.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/tools/web-browser.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/workflows/boomerang-orchestration.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/workflows/github-cc-check.yml.tpl +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/workflows/incident-response.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/workflows/party-mode.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/workflows/repo-map-generator.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/workflows/state-checkpoint.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/workflows/subagent-orchestration.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/workflows/workflow-graph.tpl.yaml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/framework/workflows/workflow-status.tpl.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/planning/README.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/pyproject.toml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/registry/blueprints/README.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/registry/blueprints/project-upgrade.blueprint.json +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/registry/expertises.yaml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/rust/grimoire-acp-core/pyproject.toml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/rust/grimoire-dispatch-core/pyproject.toml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/rust/grimoire-flows-core/pyproject.toml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/rust/grimoire-hosts-core/pyproject.toml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/rust/grimoire-policies-core/pyproject.toml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/rust/grimoire-schema-core/pyproject.toml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/rust/grimoire-traces-core/pyproject.toml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/scripts/gen-site-data.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/__init__.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/__main__.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/acp/__init__.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/acp/client.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/acp/machine.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/archetypes/__init__.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/bridges/__init__.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/bridges/a2a_adapter.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/bridges/host.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/bridges/schemas.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/__init__.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/_condensed_help.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/_lazy.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/_registry_dispatches_report.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/_shared.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/app.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_agent.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_autonomy.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_blueprint.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_blueprint_import.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_cadrage.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_ceremony.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_chat.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_cockpit.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_context_pack.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_debugger.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_dispatch.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_evidence.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_expertise.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_ext.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_features.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_flow.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_gates.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_hooks.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_host.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_init.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_mcp.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_memory.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_memory_bundle.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_memory_gestures.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_memory_knowledge.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_memory_lexical.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_memory_ops.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_memory_packs.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_memory_projections.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_memory_rules.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_memory_shared.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_merge.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_migrate.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_mission.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_needs.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_onboard.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_orchestrate.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_phase.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_plans.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_policies.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_proposals.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_providers.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_queue.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_route.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_self_bundle.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_self_update.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_serve.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_setup.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_standard.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_standard_claims.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_steward.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_stigmergy.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_task.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_task_a2a.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_task_add.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_task_approve.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_task_import.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_task_portfolio.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_task_questions.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_task_review.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_task_waiting.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_task_wave.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_task_worktree.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_team.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_up.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_up_prove.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_up_task_unification.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_upgrade.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_upgrade_flow.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_verify_install.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_web.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_workflows.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cockpit_http.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/doctor_acp.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/doctor_brake.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/doctor_hooks.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/doctor_instructions.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/doctor_mcp.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/doctor_notify.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/doctor_skills.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/env_checks.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/init_memory.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/init_questions.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/cli/updater.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/codegraph/__init__.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/codegraph/backends/__init__.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/codegraph/backends/neo4j.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/codegraph/freshness.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/codegraph/graph.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/codegraph/parser.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/codegraph/schemas.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/__init__.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/agent_freshness.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/archetype_resolver.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/cadrage.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/cadrage_requirements.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/claude_activation.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/command_line.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/config.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/console_encoding.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/deprecation.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/error_codes.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/exceptions.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/execution_needs.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/expertises.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/fsio.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/grounding.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/integrity.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/kit_hashes.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/layered_rules.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/layout.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/learned_rules.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/log.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/merge.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/needs_suggest.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/onboarding_panel.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/override_drift.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/policy_budget_guard_check.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/profile_floor_doctor.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/project.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/project_capabilities.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/project_kind.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/project_types.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/resolver.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/rule_resolution.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/safe_git.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/scaffold.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/scanner.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/schema.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/stack_pack_verifiers.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/stack_packs.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/stack_skills.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/standard_checks/__init__.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/standard_checks/acceptance_test_run.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/standard_checks/base.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/standard_checks/cadrage_ledger_check.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/standard_checks/claim_ledger_verify.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/standard_checks/claim_proof_resolve.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/standard_checks/controls.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/standard_checks/criterion_coverage.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/standard_checks/dispatch_cost_slo.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/standard_checks/evidence_chain.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/standard_checks/evidence_journal.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/standard_checks/evidence_resolve.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/standard_checks/gate_codegraph.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/standard_checks/gate_remedy.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/standard_checks/gate_review_checks.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/standard_checks/gate_test_run.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/standard_checks/hot_memory_check.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/standard_checks/no_tests_collected.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/standard_checks/observability_check.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/standard_checks/pattern_codes.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/standard_checks/plan_then_execute_check.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/standard_checks/registry.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/standard_checks/rules_check.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/standard_checks/runtime_journal_check.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/standard_checks/skills_check.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/standard_checks/tree_fingerprint.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/standard_effective_profile.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/standard_generation.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/standard_profile_manifest.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/standard_state.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/standard_task_scaffold.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/standard_traceability.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/standard_upstream.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/task_board_ledger.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/task_unification_doctor.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/core/validator.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/costs.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/data/__init__.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/data/bench/longmemeval-sample.json +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/data/stack-packs/python.yaml +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/evidence/__init__.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/evidence/schemas.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/evidence/service.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/flows/__init__.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/flows/attestation.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/flows/autonomy.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/flows/blueprint_loader.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/flows/directive.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/flows/dispatch_executor.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/flows/doctor.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/flows/engine.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/flows/executor.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/flows/extract.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/flows/fingerprint.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/flows/genres.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/flows/live_runs.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/flows/pilot.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/flows/registry.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/flows/schemas.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/flows/transfer.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/__init__.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/acp_hosts.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/capabilities.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/collect.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/contract_probe.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/decisions/__init__.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/decisions/_shared.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/decisions/activation.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/decisions/authority_guard.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/decisions/calibration.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/decisions/chain_ack.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/decisions/context_capsule.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/decisions/done_gate.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/decisions/enrolment.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/decisions/event_trace.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/decisions/evidence_gate.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/decisions/evidence_trace.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/decisions/gate_override.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/decisions/gate_summary.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/decisions/human_turns.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/decisions/instruction_scan.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/decisions/lease_brake.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/decisions/pause_brake.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/decisions/profile_floor.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/decisions/record.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/decisions/repetition_guard.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/decisions/self_view.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/decisions/session_memory.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/decisions/steering.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/decisions/subagent_gate.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/decisions/task_context.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/decisions/tool_facts.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/decisions/tool_policy.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/detection.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/emitters/__init__.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/emitters/base.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/emitters/claude_code.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/emitters/copilot.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/emitters/generic.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/emitters/opencode.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/emitters/rules.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/events.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/hook_launcher.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/host_version.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/matrix.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/probe.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/runtime.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/secrets.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/skill_spec.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/surface.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/sync.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/mcp/__init__.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/mcp/project.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/mcp/server.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/memory/__init__.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/memory/architecture.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/memory/backends/__init__.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/memory/backends/_qdrant_mixin.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/memory/backends/base.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/memory/backends/lexical.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/memory/backends/local.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/memory/backends/mempalace.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/memory/backends/ollama.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/memory/backends/qdrant.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/memory/backends/tantivy_local.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/memory/backends/weaviate.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/memory/bundle.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/memory/correction.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/memory/embedding.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/memory/gestures.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/memory/health_cache.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/memory/hot.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/memory/journal.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/memory/knowledge.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/memory/longmemeval.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/memory/manager.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/memory/migration.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/memory/neo4j_backfill.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/memory/neo4j_graph.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/memory/profiles.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/memory/projections.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/memory/reads_log.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/memory/retrieval.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/memory/shared.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/memory/sidecar.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/memory/split.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/memory/store_probe.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/memory/supersession.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/memory/taxonomy.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/memory/validation.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/__init__.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/admission.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/autopilot.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/board.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/breaker.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/cadrage_plan.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/ceremony.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/ceremony_budget.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/check_gate.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/ci_slots.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/decisions.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/declarative_evidence.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/diff_fingerprint.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/dispatch.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/dispatch_advice.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/dispatch_history.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/effects.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/empty_green.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/ended.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/finition.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/gates.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/human_acceptance.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/intake.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/intake_tasks.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/janitor.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/launcher.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/lease.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/ledger_append.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/ledger_links.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/ledger_rules.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/ledger_snapshot.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/ledger_views.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/liveness.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/mandate.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/manual_review.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/orchestrator_policy.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/orchestrator_session.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/pause.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/plan_import.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/plans_registry.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/prepush_fence.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/question_gestures.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/question_rounds.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/question_v2.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/questions.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/recall.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/reclaim.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/report.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/reservation.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/review_receipt.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/review_seal.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/review_verdict.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/route_dispatch.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/route_report.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/router.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/routing_policy.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/schemas.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/service.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/session_link.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/task_flow_adapter.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/task_unification.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/task_worktree.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/team_units.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/timer.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/trace.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/verifiability.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/verify.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/waiting.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/wave_checkpoint.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/missions/waves.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/onboarding/__init__.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/onboarding/brownfield.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/onboarding/facts.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/onboarding/scan_js.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/onboarding/scan_manifests.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/onboarding/scan_python.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/policies/__init__.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/policies/engine.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/policies/rules_config.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/policies/schemas.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/policies/security.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/policies/session_state.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/policies/temporal.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/proposals.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/providers/__init__.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/providers/audit.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/providers/quota.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/providers/registry.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/providers/routing.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/providers/state.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/py.typed +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/registry/__init__.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/registry/agents.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/registry/discovery.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/registry/local.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/repo_gates/__init__.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/runtime/__init__.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/runtime/adapter_base.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/runtime/crewai_adapter.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/runtime/gascity_converter.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/runtime/kernel.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/runtime/langgraph_adapter.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/runtime/recipes.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/runtime/schemas.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/steward/__init__.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/steward/project_map.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/steward/report.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/steward/sources.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/steward/verdicts.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/__init__.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/_common.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/agent_creation.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/blueprint_checkpoint.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/blueprint_context.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/blueprint_diff.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/blueprint_eval_runner.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/blueprint_evals.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/blueprint_gate.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/blueprint_primitives.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/blueprint_resilience.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/blueprint_scatter.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/blueprint_security.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/blueprint_telemetry.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/cockpit_registry_routes.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/context_pack.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/cost_model.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/ext_manager.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/features.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/flow_runs.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/forge_http.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/forge_routes.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/forge_server.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/handoff.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/harmony_check.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/install_receipt.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/install_trust.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/mcp_processes.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/memory_link.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/memory_lint.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/memory_setup.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/memory_vectors.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/model_windows.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/project_health.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/project_registry.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/project_setup.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/project_update.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/project_upgrade.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/request_guard.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/serve_data.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/source_assist.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/stigmergy.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/stigmergy_hooks.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/untrusted.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/update_bundle.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/update_bundle_build.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/update_channels.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/upgrade_changes.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/upgrade_preview.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/view_cache.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/workspace_actions.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/workspace_capacity.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/workspace_chat.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/workspace_chat_kanban.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/workspace_chat_pilot.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/workspace_config.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/workspace_exec.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/workspace_first_launch.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/workspace_graph.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/workspace_hygiene.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/workspace_knowledge.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/workspace_language.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/workspace_launch_apply.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/workspace_launch_preflight.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/workspace_legacy.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/workspace_machine.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/workspace_memory.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/workspace_memory_gestures.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/workspace_notify.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/workspace_portfolio.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/workspace_read_cache.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/workspace_recall.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/workspace_reviews.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/workspace_session_feed.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/workspace_sessions.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/workspace_setup_guide.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/workspace_since.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/workspace_slots.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/workspace_task_gates.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/tools/workspace_write_guard.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/traces/__init__.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/traces/intervals.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/traces/ledger.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/traces/observatory_feed.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/traces/otel_conventions.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/traces/otlp.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/traces/runtime_spans.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/traces/schemas.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/traces/transcript_usage.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/workflows/__init__.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/src/grimoire/workflows/registry.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/DESIGN-BRIEF-memory.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/DESIGN-BRIEF-observability.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/DESIGN-REVIEW-2026-09.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/DESIGN-SPEC-workspace-2026-09.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/anatomy.html +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/atelier-nav.js +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/atelier.css +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/atelier.html +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/blueprint-onboarding.js +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/blueprints.html +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/bp2-assist.js +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/bp2-composer.js +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/bp2-core.js +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/bp2-cost.js +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/bp2-diff.js +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/bp2-docs.js +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/bp2-evals.js +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/bp2-lexicon.js +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/bp2-library.js +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/bp2-manual.js +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/bp2-sections.js +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/bp2-team.css +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/bp2-team.js +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/bp2-tour.js +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/bp2.css +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/data/activity.json +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/data/architecture.json +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/data/catalogue-export.json +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/data/extensions.json +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/data/insights.json +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/data/kit-coverage.json +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/data/memory.json +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/data/meta.json +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/data/observatory.json +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/data/projects/atlas-ops/activity.json +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/data/projects/atlas-ops/insights.json +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/data/projects/atlas-ops/memory.json +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/data/projects/atlas-ops/meta.json +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/data/projects/atlas-ops/observatory.json +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/data/projects/atlas-ops/taskboard.json +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/data/projects/grimoire-kit/activity.json +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/data/projects/grimoire-kit/insights.json +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/data/projects/grimoire-kit/memory.json +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/data/projects/grimoire-kit/meta.json +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/data/projects/grimoire-kit/observatory.json +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/data/projects/grimoire-kit/taskboard.json +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/data/projects/ledger-data/activity.json +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/data/projects/ledger-data/insights.json +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/data/projects/ledger-data/memory.json +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/data/projects/ledger-data/meta.json +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/data/projects/ledger-data/observatory.json +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/data/projects/ledger-data/taskboard.json +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/data/projects/sentinel-sec/activity.json +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/data/projects/sentinel-sec/insights.json +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/data/projects/sentinel-sec/memory.json +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/data/projects/sentinel-sec/meta.json +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/data/projects/sentinel-sec/observatory.json +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/data/projects/sentinel-sec/taskboard.json +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/data/projects.json +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/data/reels/cloture-refusee-puis-acceptee.html +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/data/reels/cloture-refusee-puis-acceptee.json +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/data/reels/decision-humaine-attestee.html +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/data/reels/decision-humaine-attestee.json +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/data/reels/index.json +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/data/reels/rappel-au-claim.html +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/data/reels/rappel-au-claim.json +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/data/reels/supersession.html +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/data/reels/supersession.json +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/data/reels/tri-v0-v1-v2.html +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/data/reels/tri-v0-v1-v2.json +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/data/taskboard.json +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/demo.html +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/design/workspace-2026-09/Concevoir.dc.html +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/design/workspace-2026-09/ConcevoirClair.dc.html +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/design/workspace-2026-09/Couleurs.dc.html +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/design/workspace-2026-09/DAArdoise.dc.html +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/design/workspace-2026-09/DAPapier.dc.html +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/design/workspace-2026-09/DAStudio.dc.html +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/design/workspace-2026-09/DirectionB.dc.html +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/design/workspace-2026-09/DirectionC.dc.html +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/design/workspace-2026-09/DirectionD.dc.html +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/design/workspace-2026-09/Encre.dc.html +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/design/workspace-2026-09/EncreClair.dc.html +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/design/workspace-2026-09/Main.dc.html +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/design/workspace-2026-09/Mecaniques.dc.html +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/design/workspace-2026-09/Source.dc.html +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/design/workspace-2026-09/canvas.json +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/design/workspace-2026-09/captures/concevoir-dark.jpg +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/design/workspace-2026-09/captures/concevoir-light.jpg +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/design/workspace-2026-09/captures/executer-dark.jpg +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/design/workspace-2026-09/captures/executer-light.jpg +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/design/workspace-2026-09/captures/memoire-dark.jpg +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/design/workspace-2026-09/captures/memoire-light.jpg +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/design/workspace-2026-09/captures/observer-dark.jpg +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/design/workspace-2026-09/captures/observer-light.jpg +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/design/workspace-2026-09/captures/piloter-dark.jpg +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/design/workspace-2026-09/captures/piloter-light.jpg +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/design/workspace-2026-09/captures/source-dark.jpg +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/design/workspace-2026-09/captures/source-light.jpg +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/design/workspace-2026-09/gen-couleurs.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/design/workspace-2026-09/gen-skins.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/design/workspace-2026-09/shell.tpl.html +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/design-review-2026-09/01-cockpit-portefeuille-desktop.jpg +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/design-review-2026-09/02-cockpit-portefeuille-full.jpg +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/design-review-2026-09/03-cockpit-portefeuille-mobile.jpg +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/design-review-2026-09/04-kanban-desktop.jpg +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/design-review-2026-09/05-kanban-mobile.jpg +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/design-review-2026-09/06-observatoire-desktop.jpg +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/design-review-2026-09/07-observatoire-full.jpg +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/design-review-2026-09/08-atelier-desktop.jpg +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/design-review-2026-09/09-atelier-mobile.jpg +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/design-review-2026-09/10-memoire-desktop.jpg +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/design-review-2026-09/11-blueprints-desktop.jpg +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/design-review-2026-09/12-extensions-desktop.jpg +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/design-review-2026-09/13-patterns-desktop.jpg +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/design-review-2026-09/14-cockpit-index-desktop.jpg +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/design-review-2026-09/15-workspace-lot1-sombre-decouverte.png +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/design-review-2026-09/16-workspace-lot1-clair-decouverte.png +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/design-review-2026-09/17-workspace-lot1-sombre-concentration.png +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/design-review-2026-09/18-workspace-lot1-clair-concentration.png +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/documentation.html +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/extensions.html +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/fonts/Geist-Variable-latin.woff2 +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/fonts/GeistMono-Variable-latin.woff2 +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/fonts/JetBrainsMono-Regular.woff2 +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/fonts/JetBrainsMono-SemiBold.woff2 +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/fonts/OFL-instrument.txt +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/fonts/OFL-jetbrains.txt +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/fonts/OFL.txt +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/fonts/fonts.css +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/fonts/instrument-sans-400.woff2 +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/fonts/instrument-sans-500.woff2 +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/fonts/instrument-sans-600.woff2 +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/forge-base.css +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/forge-charts.css +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/forge-landing.css +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/forge-motion.css +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/forge-motion.js +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/forge-nav.js +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/forge-observatory.js +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/forge-tokens.css +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/game-ui.html +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/grimoire-mode.js +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/index.html +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/kanban.html +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/labs.html +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/media/capture-reelle.png +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/media/teaser-720.mp4 +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/media/teaser-poster.jpg +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/memory.html +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/observability.html +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/patterns.html +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/portfolio.html +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/project-picker.js +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/teaser/.gitignore +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/teaser/README.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/teaser/audio4.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/teaser/build4.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/teaser/clips.json +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/teaser/cues.json +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/teaser/cues.mjs +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/teaser/detect_green.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/teaser/fonts/JetBrainsMono-Regular.woff2 +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/teaser/fonts/JetBrainsMono-SemiBold.woff2 +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/teaser/fonts/OFL-InstrumentSans.txt +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/teaser/fonts/OFL-JetBrainsMono.txt +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/teaser/fonts/instrument-sans-400.woff2 +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/teaser/fonts/instrument-sans-500.woff2 +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/teaser/fonts/instrument-sans-600.woff2 +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/teaser/footage-sources.json +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/teaser/icons/board.svg +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/teaser/icons/fleet.svg +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/teaser/icons/inbox.svg +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/teaser/icons/pr.svg +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/teaser/icons/sliders.svg +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/teaser/icons/tag.svg +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/teaser/master.sh +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/teaser/prep_footage.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/teaser/render.mjs +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/teaser/scene4.tpl.html +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/teaser/screens.json +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/teaser/shots.mjs +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/teaser/storyboard.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/teaser/terminal.json +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/tools/check-links.py +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/workspace/README.md +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/workspace/activity.js +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/workspace/chat.js +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/workspace/fonts/GeistMono-Medium.woff2 +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/workspace/fonts/GeistMono-Regular.woff2 +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/workspace/fonts/InstrumentSans-Variable.woff2 +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/workspace/fonts/OFL-InstrumentSans.txt +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/workspace/fonts/OFL.txt +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/workspace/glossary.js +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/workspace/icons/NOTICE +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/workspace/icons.svg +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/workspace/markdown.js +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/workspace/notify.js +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/workspace/score.js +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/workspace/setup-state.js +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/workspace/spaces/a-traiter-group.js +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/workspace/spaces/a-traiter-since.js +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/workspace/spaces/board-split.js +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/workspace/spaces/capacite.js +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/workspace/spaces/carte-worker.js +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/workspace/spaces/carte.js +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/workspace/spaces/code-projection.js +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/workspace/spaces/concevoir.js +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/workspace/spaces/configurer.js +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/workspace/spaces/decision-card.js +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/workspace/spaces/donnees.js +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/workspace/spaces/memoire-gestes.js +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/workspace/spaces/memoire.js +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/workspace/spaces/observer.js +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/workspace/spaces/rappel.js +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/workspace/spaces/recall-receipt.js +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/workspace/spaces/registre.js +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/workspace/spaces/sante.js +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/workspace/spaces/sessions.js +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/workspace/spaces/source-editor.js +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/workspace/spaces/source.css +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/workspace/spaces/source.js +0 -0
- {grimoire_kit-3.76.0 → grimoire_kit-3.77.0}/web/workspace/spaces/task-create.js +0 -0
|
@@ -7,6 +7,18 @@ et ce projet adhère au [Semantic Versioning](https://semver.org/lang/fr/).
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [3.77.0] - 2026-10-30
|
|
11
|
+
|
|
12
|
+
- chore(release): correctifs intermédiaires des PR fusionnées par commit de fusion, déjà décrits par le fragment de leur PR : e56b9bde, 643cd839, 45360126, ea109781, efb3ea4e, 00f1a297, 195fcb60
|
|
13
|
+
- fix(missions): le relecteur ne juge plus une tâche sur un run d'E2E périmé — un check relancé (échec ancien, run en cours) est en cours, pas rouge — et chaque `task.review_judged` porte le verdict CI lu (`ci`, `ci_detail`) (GAO-i8-le-relec-001)
|
|
14
|
+
- fix(cockpit): « À traiter » ne compte plus les consignes des tâches finies ; une consigne non lue sur une tâche ouverte est « à entretenir », le badge et le titre d'onglet ne comptent que les gestes, et clôturer une tâche acquitte ses consignes (raison « tâche close »)
|
|
15
|
+
- feat(missions): boîte à idées — `grimoire idea add|list|drop|promote`, outil MCP `idea_add` et « Garder pour plus tard » dans « Une idée ? » du cockpit : une idée se garde sans être triée, et se transforme en tâches plus tard (I13)
|
|
16
|
+
- fix(cockpit): les cibles tactiles font 44 px à 390 px ou au doigt (jeton `--hit`) et les rubriques de Savoir et de Configuration ne s'effondrent plus à 18 px (GAO-i14-rendre-002)
|
|
17
|
+
- perf(cockpit): le pouls porte une empreinte par projet et l'interface ne relit que le projet affiché quand il a bougé ; l'écart entre deux relectures suit leur durée réelle (3 à 15 s) et la barre d'état compte les relectures par minute (GAO-i11-ne-rech-001)
|
|
18
|
+
- perf(cockpit): le panneau Preuves lit le board et les politiques une fois par requête, ne calcule que les tâches actives (les terminales sont comptées, `?all=1` les détaille) et borne son calcul à 5 s (`truncated`) — 283 tâches en moins de 1,5 s au lieu de plus de 30 s (GAO-i9-rendre-l-001)
|
|
19
|
+
- fix(cockpit): `GET /api/workspace/evidence` n'écrit plus de `gate.checked` dans `runtime-journal.jsonl` (`check_evidence_gates(record=False)`), un journal périmé n'est plus rendu « frais » par l'ouverture du panneau (GAO-i9-rendre-l-001)
|
|
20
|
+
- feat(missions): l'usage réel de chaque session est replié dans sa tâche à chaque tick (journal retrouvé dans le worktree ou par identifiant de session, au plus 5 journaux et 50 Mo par tick) ; `grimoire task usage --backfill [--dry-run]` rattrape les tâches closes ; un journal absent est dit « journal de session introuvable »
|
|
21
|
+
|
|
10
22
|
## [3.76.0] - 2026-10-29
|
|
11
23
|
|
|
12
24
|
- chore(release): correctifs intermédiaires des PR fusionnées par commit de fusion, déjà décrits par le fragment de leur PR : a4b0e8a7, 077bba97, e82f2a3f, 7198f1de, abd4ef41, d17c4672, 27fe2020, 5de84791, 773d7441, bcb735df
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: grimoire-kit
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.77.0
|
|
4
4
|
Summary: Dashboard, task board, project memory and evidence check for code you delegate to agents (Claude Code, Copilot).
|
|
5
5
|
Project-URL: Homepage, https://github.com/Guilhem-Bonnet/Grimoire-kit
|
|
6
6
|
Project-URL: Repository, https://github.com/Guilhem-Bonnet/Grimoire-kit
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "3.77.0"
|
|
@@ -13,4 +13,5 @@ from grimoire.cli._lazy import LazyGroupSpec
|
|
|
13
13
|
#: Nom → groupe, dans l'ordre d'affichage de ``grimoire --help --all``.
|
|
14
14
|
EXTRA_GROUPS: dict[str, LazyGroupSpec] = {
|
|
15
15
|
"steward": LazyGroupSpec("grimoire.cli.cmd_steward", "steward_app", rich_help_panel="Project"),
|
|
16
|
+
"idea": LazyGroupSpec("grimoire.cli.cmd_idea", "idea_app", rich_help_panel="Project"),
|
|
16
17
|
}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
"""CLI ``grimoire idea`` — la boîte à idées : garder maintenant, décider plus tard (I13)."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import json
|
|
6
|
+
from pathlib import Path
|
|
7
|
+
from typing import TYPE_CHECKING, Annotated
|
|
8
|
+
|
|
9
|
+
import typer
|
|
10
|
+
from rich.console import Console
|
|
11
|
+
from rich.markup import escape
|
|
12
|
+
|
|
13
|
+
if TYPE_CHECKING:
|
|
14
|
+
from grimoire.missions.ideas import Idea, IdeaStore
|
|
15
|
+
|
|
16
|
+
idea_app = typer.Typer(help="Boîte à idées : add, list, drop, promote.", no_args_is_help=True)
|
|
17
|
+
console = Console()
|
|
18
|
+
|
|
19
|
+
_PROJECT_ROOT = typer.Option("--project-root", help="Racine du projet.", show_default=False)
|
|
20
|
+
_LEDGER_ROOT = typer.Option("--ledger-root", help="Racine du Mission Ledger (relative au projet).")
|
|
21
|
+
_DEFAULT_LEDGER = Path("_grimoire-runtime-output/ledger")
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
def _store(project_root: Path, ledger_root: Path) -> IdeaStore:
|
|
25
|
+
from grimoire.missions.ideas import IdeaStore
|
|
26
|
+
|
|
27
|
+
return IdeaStore(project_root.resolve(), ledger_root)
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
def _fail(message: str) -> typer.Exit:
|
|
31
|
+
console.print(f"[red]✗[/red] {escape(message)}")
|
|
32
|
+
return typer.Exit(1)
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
def _line(idea: Idea) -> str:
|
|
36
|
+
tasks = f" → {', '.join(idea.tasks)}" if idea.tasks else ""
|
|
37
|
+
return f"{idea.id} {escape(f'[{idea.state}]')} {escape(idea.text)}{tasks}"
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
@idea_app.command("add")
|
|
41
|
+
def idea_add(
|
|
42
|
+
text: Annotated[str, typer.Argument(help="L'idée, en une phrase (500 caractères au plus).")],
|
|
43
|
+
project_root: Annotated[Path, _PROJECT_ROOT] = Path(),
|
|
44
|
+
ledger_root: Annotated[Path, _LEDGER_ROOT] = _DEFAULT_LEDGER,
|
|
45
|
+
json_output: Annotated[bool, typer.Option("--json", help="Sortie JSON.")] = False,
|
|
46
|
+
) -> None:
|
|
47
|
+
"""Garde une idée sans la trier."""
|
|
48
|
+
from grimoire.missions.ideas import IdeaError
|
|
49
|
+
|
|
50
|
+
try:
|
|
51
|
+
idea = _store(project_root, ledger_root).add(text, "cli")
|
|
52
|
+
except IdeaError as exc:
|
|
53
|
+
raise _fail(str(exc)) from exc
|
|
54
|
+
if json_output:
|
|
55
|
+
typer.echo(json.dumps(idea.to_dict(), indent=2, ensure_ascii=False))
|
|
56
|
+
return
|
|
57
|
+
console.print(f"[green]✓[/green] {_line(idea)}")
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
@idea_app.command("list")
|
|
61
|
+
def idea_list(
|
|
62
|
+
project_root: Annotated[Path, _PROJECT_ROOT] = Path(),
|
|
63
|
+
ledger_root: Annotated[Path, _LEDGER_ROOT] = _DEFAULT_LEDGER,
|
|
64
|
+
state: Annotated[str, typer.Option("--state", help="Filtrer : open, promoted ou dropped.")] = "",
|
|
65
|
+
json_output: Annotated[bool, typer.Option("--json", help="Sortie JSON.")] = False,
|
|
66
|
+
) -> None:
|
|
67
|
+
"""Les idées, dans l'ordre où elles ont été gardées."""
|
|
68
|
+
ideas = _store(project_root, ledger_root).list(state)
|
|
69
|
+
if json_output:
|
|
70
|
+
typer.echo(json.dumps([i.to_dict() for i in ideas], indent=2, ensure_ascii=False))
|
|
71
|
+
return
|
|
72
|
+
if not ideas:
|
|
73
|
+
console.print("[dim]Aucune idée.[/dim]")
|
|
74
|
+
for idea in ideas:
|
|
75
|
+
console.print(_line(idea))
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
@idea_app.command("drop")
|
|
79
|
+
def idea_drop(
|
|
80
|
+
idea_id: Annotated[str, typer.Argument(help="Identifiant de l'idée.")],
|
|
81
|
+
project_root: Annotated[Path, _PROJECT_ROOT] = Path(),
|
|
82
|
+
ledger_root: Annotated[Path, _LEDGER_ROOT] = _DEFAULT_LEDGER,
|
|
83
|
+
) -> None:
|
|
84
|
+
"""Écarte une idée ouverte (le journal garde la trace)."""
|
|
85
|
+
from grimoire.missions.ideas import IdeaError
|
|
86
|
+
|
|
87
|
+
try:
|
|
88
|
+
idea = _store(project_root, ledger_root).drop(idea_id)
|
|
89
|
+
except IdeaError as exc:
|
|
90
|
+
raise _fail(str(exc)) from exc
|
|
91
|
+
console.print(f"[green]✓[/green] {_line(idea)}")
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
@idea_app.command("promote")
|
|
95
|
+
def idea_promote(
|
|
96
|
+
idea_id: Annotated[str, typer.Argument(help="Identifiant de l'idée.")],
|
|
97
|
+
project_root: Annotated[Path, _PROJECT_ROOT] = Path(),
|
|
98
|
+
ledger_root: Annotated[Path, _LEDGER_ROOT] = _DEFAULT_LEDGER,
|
|
99
|
+
json_output: Annotated[bool, typer.Option("--json", help="Sortie JSON.")] = False,
|
|
100
|
+
) -> None:
|
|
101
|
+
"""Crée les tâches que l'intake propose (comme `task add --intake --create`), puis marque l'idée promue."""
|
|
102
|
+
from grimoire.core.exceptions import GrimoireError
|
|
103
|
+
from grimoire.missions.ideas import IdeaError
|
|
104
|
+
from grimoire.missions.service import TaskService
|
|
105
|
+
|
|
106
|
+
service = TaskService(project_root.resolve(), ledger_root)
|
|
107
|
+
try:
|
|
108
|
+
idea, created = _store(project_root, ledger_root).promote(idea_id, service)
|
|
109
|
+
except (IdeaError, GrimoireError, ValueError) as exc:
|
|
110
|
+
raise _fail(str(exc)) from exc
|
|
111
|
+
if json_output:
|
|
112
|
+
typer.echo(json.dumps({"idea": idea.to_dict(), "created": created}, indent=2, ensure_ascii=False))
|
|
113
|
+
return
|
|
114
|
+
console.print(f"[green]✓[/green] {_line(idea)}")
|
|
115
|
+
for entry in created:
|
|
116
|
+
console.print(f" {entry['id']} ({entry['status']}) {escape(entry['title'])}")
|
|
117
|
+
if entry["reason"]:
|
|
118
|
+
console.print(f" [yellow]{escape(entry['reason'])}[/yellow]")
|
|
@@ -15,8 +15,9 @@ from rich.markup import escape
|
|
|
15
15
|
|
|
16
16
|
|
|
17
17
|
def register_usage_commands(app: typer.Typer) -> None:
|
|
18
|
-
"""Accroche ``fold-usage`` au groupe *app*."""
|
|
18
|
+
"""Accroche ``fold-usage`` et ``usage`` au groupe *app*."""
|
|
19
19
|
app.command("fold-usage")(task_fold_usage)
|
|
20
|
+
app.command("usage")(task_usage_fold)
|
|
20
21
|
|
|
21
22
|
|
|
22
23
|
def _usage_of(task: Any, root: Path) -> dict[str, Any]:
|
|
@@ -103,3 +104,36 @@ def task_fold_usage(
|
|
|
103
104
|
f"[yellow]![/yellow] {count} appel(s) déjà attribué(s) à {escape(holder)}, non réattribués"
|
|
104
105
|
" (un appel n'appartient qu'à une tâche ; --since/--until répartit un journal)."
|
|
105
106
|
)
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
def task_usage_fold(
|
|
110
|
+
ctx: typer.Context,
|
|
111
|
+
backfill: Annotated[bool, typer.Option("--backfill", help="Les tâches closes déjà là, sans plafond de journaux.")] = False,
|
|
112
|
+
dry_run: Annotated[bool, typer.Option("--dry-run", help="Dit combien de journaux et d'octets seraient lus, n'écrit rien.")] = False,
|
|
113
|
+
project_root: Annotated[Path, typer.Option("--project-root", help="Racine du projet.")] = Path(),
|
|
114
|
+
ledger_root: Annotated[Path, typer.Option("--ledger-root", help="Racine du Mission Ledger.")] = Path("_grimoire-runtime-output/ledger"),
|
|
115
|
+
) -> None:
|
|
116
|
+
"""Replie l'usage des sessions rattachées aux tâches, comme le fait le tick (GAO-i12).
|
|
117
|
+
|
|
118
|
+
Sans option : le pas du tick (au plus 5 journaux et 50 Mo). ``--backfill`` :
|
|
119
|
+
les tâches closes seulement, tous leurs journaux d'une traite. Un journal
|
|
120
|
+
absent est dit « journal de session introuvable », jamais compté pour zéro.
|
|
121
|
+
"""
|
|
122
|
+
from grimoire.cli.cmd_task import _fmt, _service, console
|
|
123
|
+
from grimoire.missions.usage_fold import MAX_LOGS, fold_pending
|
|
124
|
+
|
|
125
|
+
service = _service(project_root.resolve(), ledger_root)
|
|
126
|
+
report = fold_pending(service, max_logs=0 if backfill else MAX_LOGS, only_terminal=backfill, dry_run=dry_run)
|
|
127
|
+
if _fmt(ctx) == "json":
|
|
128
|
+
typer.echo(json.dumps(report.to_dict(), indent=2, ensure_ascii=False))
|
|
129
|
+
return
|
|
130
|
+
if dry_run:
|
|
131
|
+
console.print(f"{report.logs} journal(aux), {report.bytes} octet(s) seraient lus ; rien n'est écrit.")
|
|
132
|
+
else:
|
|
133
|
+
console.print(f"[green]OK[/green] {report.logs} journal(aux) lu(s) : {report.new_calls} appel(s) replié(s), {report.already_folded} déjà connu(s)")
|
|
134
|
+
for status in ("missing", "refused", "deferred", "error"):
|
|
135
|
+
outcomes = report.of(status)
|
|
136
|
+
if outcomes:
|
|
137
|
+
console.print(f"[yellow]![/yellow] {len(outcomes)} {status} :")
|
|
138
|
+
for o in outcomes[:10]:
|
|
139
|
+
console.print(f" {escape(o.task_id)} — {escape(o.detail)}")
|
|
@@ -13,6 +13,7 @@ from pathlib import Path
|
|
|
13
13
|
from typing import Any
|
|
14
14
|
|
|
15
15
|
from grimoire.core import standard_generation as gen
|
|
16
|
+
from grimoire.core.request_memo import memoized
|
|
16
17
|
from grimoire.core.standard_checks.base import (
|
|
17
18
|
BOARD_STATES as BOARD_STATES,
|
|
18
19
|
)
|
|
@@ -65,10 +66,7 @@ from grimoire.core.standard_checks.registry import (
|
|
|
65
66
|
from grimoire.core.standard_checks.registry import (
|
|
66
67
|
dimension_for,
|
|
67
68
|
)
|
|
68
|
-
from grimoire.core.standard_checks.verifiers import
|
|
69
|
-
_verify_memory_policy,
|
|
70
|
-
run_verifiers,
|
|
71
|
-
)
|
|
69
|
+
from grimoire.core.standard_checks.verifiers import memory_policy_checks, run_verifiers
|
|
72
70
|
from grimoire.core.standard_effective_profile import effective_manifest_profile
|
|
73
71
|
from grimoire.core.standard_generation import (
|
|
74
72
|
CONTEXT_DIR,
|
|
@@ -909,11 +907,13 @@ def verify_standard_profile(
|
|
|
909
907
|
return result
|
|
910
908
|
|
|
911
909
|
|
|
910
|
+
@memoized
|
|
912
911
|
def _selected_profile(project_root: Path, profile_id: str | None) -> StandardProfile:
|
|
913
912
|
selected_profile = profile_id or effective_manifest_profile(project_root) or "starter"
|
|
914
913
|
return get_profile(selected_profile)
|
|
915
914
|
|
|
916
915
|
|
|
916
|
+
@memoized
|
|
917
917
|
def _read_yaml_mapping(root: Path, rel_path: Path) -> dict[str, Any]:
|
|
918
918
|
path = root / rel_path
|
|
919
919
|
if not path.is_file():
|
|
@@ -1447,8 +1447,9 @@ def check_evidence_gates(
|
|
|
1447
1447
|
task_id: str = "bootstrap",
|
|
1448
1448
|
target_state: str | None = None,
|
|
1449
1449
|
profile_id: str | None = None,
|
|
1450
|
+
record: bool = True,
|
|
1450
1451
|
) -> StandardGateResult:
|
|
1451
|
-
"""Evaluate task evidence gates
|
|
1452
|
+
"""Evaluate task evidence gates; ``record=False`` n'écrit rien au journal (lecture pure du cockpit)."""
|
|
1452
1453
|
root = project_root.resolve()
|
|
1453
1454
|
normalized_task_id = normalize_task_id(task_id)
|
|
1454
1455
|
profile = _selected_profile(root, profile_id)
|
|
@@ -1495,9 +1496,7 @@ def check_evidence_gates(
|
|
|
1495
1496
|
if not (root / required_paths["memory_policy"]).is_file():
|
|
1496
1497
|
missing.append("memory_policy")
|
|
1497
1498
|
else:
|
|
1498
|
-
|
|
1499
|
-
_verify_memory_policy(root, profile, memory_result)
|
|
1500
|
-
checks.extend(memory_result.checks)
|
|
1499
|
+
checks.extend(memory_policy_checks(root, profile))
|
|
1501
1500
|
if state in {"review", "accepted", "released"}:
|
|
1502
1501
|
for key in ("evidence_pack", "claim_ledger", "decision_trace"):
|
|
1503
1502
|
if not (root / required_paths[key]).is_file():
|
|
@@ -1519,7 +1518,8 @@ def check_evidence_gates(
|
|
|
1519
1518
|
path=required_paths.get(key),
|
|
1520
1519
|
))
|
|
1521
1520
|
ok = not any(check.is_error for check in checks)
|
|
1522
|
-
|
|
1521
|
+
if record:
|
|
1522
|
+
_append_runtime_event(root, event_type="gate.checked", task_id=normalized_task_id, profile=profile.id, details={"ok": ok, "target_state": state, "missing": missing})
|
|
1523
1523
|
return StandardGateResult(ok=ok, task_id=normalized_task_id, profile=profile.id, state=state or None, missing=tuple(missing), checks=tuple(checks))
|
|
1524
1524
|
|
|
1525
1525
|
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"""Mémo borné à une requête : une surface qui évalue beaucoup de tâches d'un coup
|
|
2
|
+
(le panneau Preuves) relirait sinon le board et les politiques à chaque tâche.
|
|
3
|
+
|
|
4
|
+
Hors bloc :func:`request_memo` rien n'est mémorisé ; jamais de cache entre requêtes.
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from __future__ import annotations
|
|
8
|
+
|
|
9
|
+
import contextlib
|
|
10
|
+
import contextvars
|
|
11
|
+
import functools
|
|
12
|
+
from collections.abc import Callable, Iterator
|
|
13
|
+
from typing import Any
|
|
14
|
+
|
|
15
|
+
_MEMO: contextvars.ContextVar[dict[Any, Any] | None] = contextvars.ContextVar("grimoire_request_memo", default=None)
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
@contextlib.contextmanager
|
|
19
|
+
def request_memo() -> Iterator[None]:
|
|
20
|
+
token = _MEMO.set({})
|
|
21
|
+
try:
|
|
22
|
+
yield
|
|
23
|
+
finally:
|
|
24
|
+
_MEMO.reset(token)
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
def memoized[F: Callable[..., Any]](fn: F) -> F:
|
|
28
|
+
"""Mémorise ``fn`` (arguments hachables) pendant le bloc :func:`request_memo` courant."""
|
|
29
|
+
|
|
30
|
+
@functools.wraps(fn)
|
|
31
|
+
def wrapper(*args: Any, **kwargs: Any) -> Any:
|
|
32
|
+
memo = _MEMO.get()
|
|
33
|
+
if memo is None:
|
|
34
|
+
return fn(*args, **kwargs)
|
|
35
|
+
key = (fn.__qualname__, args, tuple(sorted(kwargs.items())))
|
|
36
|
+
if key not in memo:
|
|
37
|
+
memo[key] = fn(*args, **kwargs)
|
|
38
|
+
return memo[key]
|
|
39
|
+
|
|
40
|
+
return wrapper # type: ignore[return-value]
|
|
@@ -12,6 +12,7 @@ from collections.abc import Mapping
|
|
|
12
12
|
from pathlib import Path
|
|
13
13
|
from typing import Any
|
|
14
14
|
|
|
15
|
+
from grimoire.core.request_memo import memoized
|
|
15
16
|
from grimoire.core.standard_checks.base import (
|
|
16
17
|
BOARD_STATES,
|
|
17
18
|
KNOWN_HOOK_ACTIONS,
|
|
@@ -885,6 +886,14 @@ def _verify_memory_os_contract(
|
|
|
885
886
|
)
|
|
886
887
|
|
|
887
888
|
|
|
889
|
+
@memoized
|
|
890
|
+
def memory_policy_checks(root: Path, profile: StandardProfile) -> tuple[Any, ...]:
|
|
891
|
+
"""Constats de la politique mémoire, lus une fois par requête (voir request_memo)."""
|
|
892
|
+
result = StandardVerificationResult(profile=profile.id, project_root=root)
|
|
893
|
+
_verify_memory_policy(root, profile, result)
|
|
894
|
+
return tuple(result.checks)
|
|
895
|
+
|
|
896
|
+
|
|
888
897
|
def _verify_memory_policy(root: Path, profile: StandardProfile, result: StandardVerificationResult) -> None:
|
|
889
898
|
rel_path = STANDARD_DIR / "memory-policy.yaml"
|
|
890
899
|
data = _load_yaml_file(root, rel_path, result)
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"""Outil MCP ``idea_add`` : garder une idée hors périmètre au lieu de la perdre (I13).
|
|
2
|
+
|
|
3
|
+
Module voisin de :mod:`grimoire.mcp.server` (au plafond du cliquet de lignes) : la fonction est
|
|
4
|
+
nue, :func:`register` l'enregistre avec le décorateur et les annotations du serveur. Même journal
|
|
5
|
+
que ``grimoire idea add`` (:class:`grimoire.missions.ideas.IdeaStore`), source ``agent``.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
from __future__ import annotations
|
|
9
|
+
|
|
10
|
+
import json
|
|
11
|
+
import os
|
|
12
|
+
from collections.abc import Callable
|
|
13
|
+
from pathlib import Path
|
|
14
|
+
from typing import Any
|
|
15
|
+
|
|
16
|
+
__all__ = ["IDEA_ADD_LIMIT", "idea_add", "register"]
|
|
17
|
+
|
|
18
|
+
#: Idées qu'une session peut garder : de quoi ne pas perdre ce qu'on croise, pas de quoi noyer la boîte.
|
|
19
|
+
IDEA_ADD_LIMIT = 20
|
|
20
|
+
_idea_adds: dict[str, int] = {}
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
def _error(message: str) -> Any:
|
|
24
|
+
from grimoire.mcp.server import _tool_error
|
|
25
|
+
|
|
26
|
+
return _tool_error({"error": message})
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
def idea_add(text: str, project_path: str = ".", ledger_root: str = "_grimoire-runtime-output/ledger") -> Any:
|
|
30
|
+
"""Park an out-of-scope idea in the project's idea box instead of losing it (I13).
|
|
31
|
+
|
|
32
|
+
Use it when you cross an idea that does not belong to your task: it is appended to
|
|
33
|
+
`ideas.jsonl` (source `agent`) and a human decides later with `grimoire idea promote|drop`
|
|
34
|
+
or from the cockpit. Nothing is triaged and no task is created. Bounded: 500 characters
|
|
35
|
+
per idea, 20 ideas per session; a refused call says why.
|
|
36
|
+
|
|
37
|
+
Args:
|
|
38
|
+
text: The idea, one or two sentences, at most 500 characters.
|
|
39
|
+
project_path: Path to project root (default: current directory).
|
|
40
|
+
ledger_root: Mission Ledger directory, relative to the project root.
|
|
41
|
+
"""
|
|
42
|
+
from grimoire.missions.ideas import IDEA_MAX_CHARS, IdeaError, IdeaStore
|
|
43
|
+
|
|
44
|
+
session = os.environ.get("GRIMOIRE_SESSION_ID") or os.environ.get("CLAUDE_CODE_SESSION_ID") or ""
|
|
45
|
+
key = f"{Path(project_path).resolve()}|{session}"
|
|
46
|
+
if len(text.strip()) > IDEA_MAX_CHARS:
|
|
47
|
+
return _error(f"idée trop longue : {len(text.strip())} caractères, {IDEA_MAX_CHARS} au plus")
|
|
48
|
+
if _idea_adds.get(key, 0) >= IDEA_ADD_LIMIT:
|
|
49
|
+
return _error(f"limite atteinte : {IDEA_ADD_LIMIT} idées par session ; le reste attend la prochaine session")
|
|
50
|
+
try:
|
|
51
|
+
idea = IdeaStore(Path(project_path).resolve(), Path(ledger_root)).add(text, "agent")
|
|
52
|
+
except (IdeaError, OSError) as exc:
|
|
53
|
+
return _error(str(exc))
|
|
54
|
+
_idea_adds[key] = _idea_adds.get(key, 0) + 1
|
|
55
|
+
return json.dumps(idea.to_dict(), indent=2, ensure_ascii=False)
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
def register(tool: Callable[[Any], Callable[[Any], Any]], writes: Callable[..., Any]) -> None:
|
|
59
|
+
"""Enregistre ``idea_add`` avec le décorateur et les annotations du serveur (écriture, non destructive)."""
|
|
60
|
+
tool(writes(destructive=False, idempotent=False))(idea_add)
|
|
@@ -108,3 +108,7 @@ def register(tool: Callable[[Any], Callable[[Any], Any]], writes: Callable[...,
|
|
|
108
108
|
tool(writes(destructive=False, idempotent=False))(grimoire_memory_retract)
|
|
109
109
|
tool(writes(destructive=False, idempotent=False))(grimoire_memory_unretract)
|
|
110
110
|
tool(writes(destructive=False, idempotent=True))(grimoire_memory_update_tags)
|
|
111
|
+
# Boîte à idées (I13) : même raison, ``server.py`` est au plafond du cliquet de lignes.
|
|
112
|
+
from grimoire.mcp import idea_tools
|
|
113
|
+
|
|
114
|
+
idea_tools.register(tool, writes)
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
"""La boîte à idées du projet : garder une idée sans la trier (I13).
|
|
2
|
+
|
|
3
|
+
Un journal append-only ``<ledger>/ideas.jsonl`` ; l'état d'une idée (``open``,
|
|
4
|
+
``promoted``, ``dropped``) se dérive du pli de ses événements, jamais d'une
|
|
5
|
+
réécriture. Un « annuler » est un événement de plus (``restore``), pas une
|
|
6
|
+
suppression de ligne. L'écriture tient le verrou de fichier du kit
|
|
7
|
+
(:func:`grimoire.core.fsio.locked`) : deux processus qui ajoutent ne perdent
|
|
8
|
+
aucune ligne.
|
|
9
|
+
|
|
10
|
+
``promote`` passe par l'intake déterministe (:mod:`grimoire.missions.intake_tasks`),
|
|
11
|
+
comme ``grimoire task add --intake --create``.
|
|
12
|
+
"""
|
|
13
|
+
|
|
14
|
+
from __future__ import annotations
|
|
15
|
+
|
|
16
|
+
import builtins
|
|
17
|
+
import json
|
|
18
|
+
from dataclasses import dataclass, field
|
|
19
|
+
from datetime import UTC, datetime
|
|
20
|
+
from pathlib import Path
|
|
21
|
+
from typing import Any
|
|
22
|
+
|
|
23
|
+
from grimoire.core.fsio import locked
|
|
24
|
+
from grimoire.missions.ledger_append import append_bytes
|
|
25
|
+
|
|
26
|
+
__all__ = ["IDEA_MAX_CHARS", "IDEA_SOURCES", "Idea", "IdeaError", "IdeaStore"]
|
|
27
|
+
|
|
28
|
+
IDEAS_FILE = "ideas.jsonl"
|
|
29
|
+
DEFAULT_LEDGER = Path("_grimoire-runtime-output/ledger")
|
|
30
|
+
#: Borne d'une idée : une phrase à garder, pas un brief (le même plafond que le champ du cockpit).
|
|
31
|
+
IDEA_MAX_CHARS = 500
|
|
32
|
+
IDEA_SOURCES = ("cli", "cockpit", "agent")
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
class IdeaError(ValueError):
|
|
36
|
+
"""Une demande refusée sur la boîte à idées : le message dit pourquoi."""
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
@dataclass
|
|
40
|
+
class Idea:
|
|
41
|
+
id: str
|
|
42
|
+
text: str
|
|
43
|
+
source: str
|
|
44
|
+
created_at: str
|
|
45
|
+
state: str = "open"
|
|
46
|
+
tasks: list[str] = field(default_factory=list)
|
|
47
|
+
|
|
48
|
+
def to_dict(self) -> dict[str, Any]:
|
|
49
|
+
return {
|
|
50
|
+
"id": self.id,
|
|
51
|
+
"text": self.text,
|
|
52
|
+
"source": self.source,
|
|
53
|
+
"created_at": self.created_at,
|
|
54
|
+
"state": self.state,
|
|
55
|
+
"tasks": list(self.tasks),
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
def _now() -> str:
|
|
60
|
+
return datetime.now(UTC).isoformat(timespec="seconds").replace("+00:00", "Z")
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
class IdeaStore:
|
|
64
|
+
"""Lecture et écriture de ``ideas.jsonl`` pour un projet."""
|
|
65
|
+
|
|
66
|
+
def __init__(self, project_root: Path, ledger_root: Path = DEFAULT_LEDGER) -> None:
|
|
67
|
+
root = ledger_root if ledger_root.is_absolute() else project_root / ledger_root
|
|
68
|
+
self.path = root / IDEAS_FILE
|
|
69
|
+
|
|
70
|
+
# ── lecture ──────────────────────────────────────────────────────────────
|
|
71
|
+
|
|
72
|
+
def _events(self) -> builtins.list[dict[str, Any]]:
|
|
73
|
+
try:
|
|
74
|
+
raw = self.path.read_text(encoding="utf-8")
|
|
75
|
+
except OSError:
|
|
76
|
+
return []
|
|
77
|
+
events: builtins.list[dict[str, Any]] = []
|
|
78
|
+
for line in raw.splitlines():
|
|
79
|
+
try:
|
|
80
|
+
event = json.loads(line)
|
|
81
|
+
except ValueError:
|
|
82
|
+
continue # une fin tronquée ne casse pas la boîte
|
|
83
|
+
if isinstance(event, dict):
|
|
84
|
+
events.append(event)
|
|
85
|
+
return events
|
|
86
|
+
|
|
87
|
+
@staticmethod
|
|
88
|
+
def _fold(events: builtins.list[dict[str, Any]]) -> dict[str, Idea]:
|
|
89
|
+
ideas: dict[str, Idea] = {}
|
|
90
|
+
for event in events:
|
|
91
|
+
kind, idea_id = event.get("event"), str(event.get("id") or "")
|
|
92
|
+
if kind == "add":
|
|
93
|
+
ideas[idea_id] = Idea(
|
|
94
|
+
idea_id,
|
|
95
|
+
str(event.get("text") or ""),
|
|
96
|
+
str(event.get("source") or "cli"),
|
|
97
|
+
str(event.get("ts") or ""),
|
|
98
|
+
)
|
|
99
|
+
continue
|
|
100
|
+
idea = ideas.get(idea_id)
|
|
101
|
+
if idea is None:
|
|
102
|
+
continue
|
|
103
|
+
if kind == "drop" and idea.state == "open":
|
|
104
|
+
idea.state = "dropped"
|
|
105
|
+
elif kind == "restore" and idea.state == "dropped":
|
|
106
|
+
idea.state = "open"
|
|
107
|
+
elif kind == "promote" and idea.state != "promoted":
|
|
108
|
+
idea.state = "promoted"
|
|
109
|
+
idea.tasks = [str(t) for t in event.get("tasks") or ()]
|
|
110
|
+
return ideas
|
|
111
|
+
|
|
112
|
+
def list(self, state: str = "") -> builtins.list[Idea]:
|
|
113
|
+
"""Les idées dans l'ordre d'ajout ; *state* filtre (``open``, ``promoted``, ``dropped``)."""
|
|
114
|
+
return [i for i in self._fold(self._events()).values() if not state or i.state == state]
|
|
115
|
+
|
|
116
|
+
def get(self, idea_id: str) -> Idea:
|
|
117
|
+
idea = self._fold(self._events()).get(idea_id)
|
|
118
|
+
if idea is None:
|
|
119
|
+
raise IdeaError(f"idée inconnue : {idea_id}")
|
|
120
|
+
return idea
|
|
121
|
+
|
|
122
|
+
# ── écriture ─────────────────────────────────────────────────────────────
|
|
123
|
+
|
|
124
|
+
def _append(self, event: dict[str, Any]) -> None:
|
|
125
|
+
append_bytes(self.path, (json.dumps(event, ensure_ascii=False, sort_keys=True) + "\n").encode("utf-8"))
|
|
126
|
+
|
|
127
|
+
def add(self, text: str, source: str = "cli") -> Idea:
|
|
128
|
+
text = " ".join(text.split())
|
|
129
|
+
if not text:
|
|
130
|
+
raise IdeaError("une idée vide n'est pas gardée")
|
|
131
|
+
if len(text) > IDEA_MAX_CHARS:
|
|
132
|
+
raise IdeaError(f"idée trop longue : {len(text)} caractères, {IDEA_MAX_CHARS} au plus")
|
|
133
|
+
if source not in IDEA_SOURCES:
|
|
134
|
+
raise IdeaError(f"source inconnue : {source} (attendu : {', '.join(IDEA_SOURCES)})")
|
|
135
|
+
with locked(self.path):
|
|
136
|
+
events = self._events()
|
|
137
|
+
number = 1 + sum(1 for e in events if e.get("event") == "add")
|
|
138
|
+
idea_id = f"IDEA-{number:04d}"
|
|
139
|
+
ts = _now()
|
|
140
|
+
self._append({"event": "add", "id": idea_id, "text": text, "source": source, "ts": ts})
|
|
141
|
+
return Idea(idea_id, text, source, ts)
|
|
142
|
+
|
|
143
|
+
def _transition(self, idea_id: str, kind: str, allowed: str, why: str, extra: dict[str, Any] | None = None) -> Idea:
|
|
144
|
+
with locked(self.path):
|
|
145
|
+
idea = self._fold(self._events()).get(idea_id)
|
|
146
|
+
if idea is None:
|
|
147
|
+
raise IdeaError(f"idée inconnue : {idea_id}")
|
|
148
|
+
if idea.state != allowed:
|
|
149
|
+
raise IdeaError(f"{idea_id} est {idea.state} : {why}")
|
|
150
|
+
self._append({"event": kind, "id": idea_id, "ts": _now(), **(extra or {})})
|
|
151
|
+
return self.get(idea_id)
|
|
152
|
+
|
|
153
|
+
def drop(self, idea_id: str) -> Idea:
|
|
154
|
+
return self._transition(idea_id, "drop", "open", "seule une idée ouverte s'écarte")
|
|
155
|
+
|
|
156
|
+
def restore(self, idea_id: str) -> Idea:
|
|
157
|
+
return self._transition(idea_id, "restore", "dropped", "seule une idée écartée se restaure")
|
|
158
|
+
|
|
159
|
+
def mark_promoted(self, idea_id: str, task_ids: builtins.list[str]) -> Idea:
|
|
160
|
+
"""Marque l'idée ``promoted`` avec les tâches créées (le cockpit crée par l'intake, puis marque)."""
|
|
161
|
+
return self._transition(
|
|
162
|
+
idea_id,
|
|
163
|
+
"promote",
|
|
164
|
+
"open",
|
|
165
|
+
"elle a déjà été promue ou écartée",
|
|
166
|
+
{"tasks": [str(t) for t in task_ids]},
|
|
167
|
+
)
|
|
168
|
+
|
|
169
|
+
def promote(
|
|
170
|
+
self, idea_id: str, service: Any, *, actor: str = "cli", origin: str = "cli"
|
|
171
|
+
) -> tuple[Idea, builtins.list[dict[str, Any]]]:
|
|
172
|
+
"""Crée les tâches non critiques que l'intake propose, puis marque l'idée ``promoted``.
|
|
173
|
+
|
|
174
|
+
Une seconde promotion est refusée avant toute création. Les propositions critiques
|
|
175
|
+
ne sont jamais créées d'office : elles sont rendues dans ``skipped`` du premier retour.
|
|
176
|
+
"""
|
|
177
|
+
from grimoire.missions.intake_tasks import create_from_proposals, proposals_for
|
|
178
|
+
|
|
179
|
+
with locked(self.path):
|
|
180
|
+
idea = self._fold(self._events()).get(idea_id)
|
|
181
|
+
if idea is None:
|
|
182
|
+
raise IdeaError(f"idée inconnue : {idea_id}")
|
|
183
|
+
if idea.state != "open":
|
|
184
|
+
raise IdeaError(f"{idea_id} est {idea.state} : seule une idée ouverte se promeut")
|
|
185
|
+
chosen = [p for p in proposals_for(idea.text) if p["checked"]]
|
|
186
|
+
if not chosen:
|
|
187
|
+
raise IdeaError(f"{idea_id} : l'intake ne propose que des tâches critiques, à créer à la main")
|
|
188
|
+
created = create_from_proposals(service, [{**p, "check": ""} for p in chosen], actor=actor, origin=origin)
|
|
189
|
+
self._append({"event": "promote", "id": idea_id, "ts": _now(), "tasks": [c["id"] for c in created]})
|
|
190
|
+
return self.get(idea_id), created
|
|
@@ -684,9 +684,13 @@ class MissionLedger:
|
|
|
684
684
|
with _ledger_file_lock(self._events_path):
|
|
685
685
|
self._refresh()
|
|
686
686
|
self._load()
|
|
687
|
-
|
|
687
|
+
moved = self._transition_locked(
|
|
688
688
|
task_id, to_state, actor_id, reason, claim, extra_payload, expected_from, lease_epoch, step
|
|
689
689
|
)
|
|
690
|
+
if to_state in (TaskState.CLOSED, TaskState.CANCELLED): # plus de session pour lire : tout est acquitté
|
|
691
|
+
for directive in moved.unacknowledged_directives:
|
|
692
|
+
moved = self.acknowledge_directive(task_id, directive.id, actor_id=actor_id, reason="tâche close")
|
|
693
|
+
return moved
|
|
690
694
|
|
|
691
695
|
def _transition_locked(
|
|
692
696
|
self,
|
|
@@ -1259,8 +1263,10 @@ class MissionLedger:
|
|
|
1259
1263
|
self._load()
|
|
1260
1264
|
return self._tasks[task_id]
|
|
1261
1265
|
|
|
1262
|
-
def acknowledge_directive(
|
|
1263
|
-
|
|
1266
|
+
def acknowledge_directive(
|
|
1267
|
+
self, task_id: str, directive_id: str, *, actor_id: str, reason: str = ""
|
|
1268
|
+
) -> MissionTask:
|
|
1269
|
+
"""Horodate l'accusé de réception d'une consigne connue de la tâche ; *reason* dit pourquoi, s'il y a lieu."""
|
|
1264
1270
|
self._load()
|
|
1265
1271
|
task = self._tasks.get(task_id)
|
|
1266
1272
|
if task is None:
|
|
@@ -1269,7 +1275,8 @@ class MissionLedger:
|
|
|
1269
1275
|
raise GrimoireMissionError(f"Consigne inconnue sur {task_id} : {directive_id}")
|
|
1270
1276
|
self._append_event(
|
|
1271
1277
|
"task.directive_acknowledged", task_id, "task", actor_id,
|
|
1272
|
-
{"task_id": task_id, "directive_id": directive_id, "acknowledged_at": _now_iso(), "actor_id": actor_id
|
|
1278
|
+
{"task_id": task_id, "directive_id": directive_id, "acknowledged_at": _now_iso(), "actor_id": actor_id,
|
|
1279
|
+
**({"reason": reason} if reason else {})},
|
|
1273
1280
|
)
|
|
1274
1281
|
self._load()
|
|
1275
1282
|
return self._tasks[task_id]
|