grimoire-kit 3.75.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.75.0 → grimoire_kit-3.77.0}/CHANGELOG.md +35 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/PKG-INFO +1 -1
- grimoire_kit-3.77.0/docs/assets/captures/i1/README.md +11 -0
- grimoire_kit-3.77.0/docs/captures/p42-correction/README.md +12 -0
- {grimoire_kit-3.75.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.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/_lazy_extra.py +1 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/app.py +1 -1
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_chat.py +1 -15
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_cockpit.py +82 -83
- grimoire_kit-3.77.0/src/grimoire/cli/cmd_idea.py +118 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_memory.py +30 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_task_add.py +53 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_task_usage.py +35 -1
- grimoire_kit-3.77.0/src/grimoire/cli/cockpit_http.py +153 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/doctor_brake.py +13 -1
- grimoire_kit-3.77.0/src/grimoire/cli/doctor_notify.py +32 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/agentic_standard.py +9 -9
- grimoire_kit-3.77.0/src/grimoire/core/command_line.py +21 -0
- grimoire_kit-3.77.0/src/grimoire/core/request_memo.py +40 -0
- {grimoire_kit-3.75.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.75.0 → grimoire_kit-3.77.0}/src/grimoire/mcp/memory_gestures.py +4 -0
- grimoire_kit-3.77.0/src/grimoire/memory/correction.py +317 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/missions/decisions.py +2 -2
- grimoire_kit-3.77.0/src/grimoire/missions/ideas.py +190 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/missions/intake.py +4 -4
- grimoire_kit-3.77.0/src/grimoire/missions/intake_tasks.py +114 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/missions/ledger.py +11 -4
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/missions/merger.py +8 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/missions/orchestrate.py +25 -1
- {grimoire_kit-3.75.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.75.0 → grimoire_kit-3.77.0}/src/grimoire/proposals.py +12 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/project_health.py +48 -2
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/workspace_api.py +113 -34
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/workspace_attention.py +10 -4
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/workspace_chat.py +81 -3
- grimoire_kit-3.77.0/src/grimoire/tools/workspace_chat_pilot.py +154 -0
- grimoire_kit-3.77.0/src/grimoire/tools/workspace_first_launch.py +553 -0
- grimoire_kit-3.77.0/src/grimoire/tools/workspace_ideas.py +93 -0
- grimoire_kit-3.77.0/src/grimoire/tools/workspace_notify.py +116 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/workspace_portfolio.py +14 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/workspace_pulse.py +29 -12
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/workspace_routes.py +25 -20
- {grimoire_kit-3.75.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.75.0 → grimoire_kit-3.77.0}/web/workspace/README.md +1 -1
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/workspace/api.js +26 -2
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/workspace/chat.js +119 -0
- grimoire_kit-3.77.0/web/workspace/icons/NOTICE +47 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/workspace/icons.svg +20 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/workspace/index.html +6 -1
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/workspace/live.js +98 -21
- grimoire_kit-3.77.0/web/workspace/notify.js +203 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/workspace/shell.css +110 -1
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/workspace/shell.js +56 -15
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/workspace/spaces/a-traiter.js +19 -3
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/workspace/spaces/configurer.js +57 -1
- grimoire_kit-3.77.0/web/workspace/spaces/decision-card.js +587 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/workspace/spaces/demarrer.js +159 -7
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/workspace/spaces/executer.js +37 -6
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/workspace/spaces/memoire.js +43 -2
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/workspace/spaces/piloter.js +1 -1
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/workspace/spaces/revue.js +1 -1
- grimoire_kit-3.77.0/web/workspace/spaces/task-intake.js +386 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/workspace/tokens.css +5 -0
- grimoire_kit-3.75.0/src/grimoire/__version__.py +0 -1
- grimoire_kit-3.75.0/version.txt +0 -1
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/.gitignore +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/LICENSE +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/README.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/_grimoire/_config/custom/prompt-templates/README.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/archetypes/agentic-standard/archetype.dna.yaml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/archetypes/agentic-standard/shared-context.tpl.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/archetypes/creative-studio/agents/blender-expert.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/archetypes/creative-studio/agents/brand-designer.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/archetypes/creative-studio/agents/illustration-expert.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/archetypes/creative-studio/archetype.dna.yaml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/archetypes/creative-studio/shared-context.tpl.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/archetypes/creative-studio/skills/creative-content-copywriting.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/archetypes/features/vector-memory/vectus.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/archetypes/fix-loop/README.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/archetypes/fix-loop/agents/fix-loop-orchestrator.tpl.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/archetypes/fix-loop/archetype.dna.yaml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/archetypes/fix-loop/workflows/workflow-closed-loop-fix.tpl.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/archetypes/infra-ops/agents/monitoring-specialist.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/archetypes/infra-ops/agents/ops-engineer.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/archetypes/infra-ops/agents/systems-debugger.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/archetypes/infra-ops/archetype.dna.yaml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/archetypes/infra-ops/shared-context.tpl.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/archetypes/infra-ops/skills/infra-backup-dr.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/archetypes/infra-ops/skills/infra-k8s-gitops.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/archetypes/infra-ops/skills/infra-pipeline-cicd.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/archetypes/infra-ops/skills/infra-security-hardening.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/archetypes/meta/agents/agent-optimizer.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/archetypes/meta/agents/concierge.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/archetypes/meta/agents/security-auditor.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/archetypes/meta/archetype.dna.yaml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/archetypes/meta/skills/meta-art-direction.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/archetypes/meta/skills/meta-memory-quality.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/archetypes/meta/skills/meta-project-navigation.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/archetypes/meta/skills/meta-toolsmithing.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/archetypes/meta/skills/upgrade-review.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/archetypes/minimal/agents/custom-agent.tpl.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/archetypes/minimal/archetype.dna.yaml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/archetypes/platform-engineering/agents/backend-engineer.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/archetypes/platform-engineering/agents/platform-architect.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/archetypes/platform-engineering/archetype.dna.yaml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/archetypes/platform-engineering/shared-context.tpl.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/archetypes/platform-engineering/skills/platform-deploy-release.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/archetypes/platform-engineering/skills/platform-reliability-sre.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/archetypes/platform-engineering/templates/architecture.tpl.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/archetypes/stack/agents/stack-engineer.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/archetypes/stack/archetype.dna.yaml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/archetypes/stack/skills/stack-ansible.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/archetypes/stack/skills/stack-docker.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/archetypes/stack/skills/stack-go.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/archetypes/stack/skills/stack-k8s.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/archetypes/stack/skills/stack-python.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/archetypes/stack/skills/stack-terraform.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/archetypes/stack/skills/stack-typescript.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/archetypes/web-app/agents/fullstack-dev.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/archetypes/web-app/archetype.dna.yaml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/archetypes/web-app/shared-context.tpl.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/archetypes/web-app/skills/web-frontend-ux.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/changelog.d/README.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/docs/assets/captures/p47/README.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/evals/README.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/evals/witnesses/README.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/evals/witnesses/web-app-todo/activated/README.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/evals/witnesses/web-app-todo/app/README.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/evals/witnesses/web-app-todo/app/web/index.html +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/evals/witnesses/web-app-todo/app/web/package-lock.json +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/evals/witnesses/web-app-todo/app/web/package.json +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/evals/witnesses/web-app-todo/app/web/src/App.tsx +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/evals/witnesses/web-app-todo/app/web/src/components/AddTaskForm.tsx +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/evals/witnesses/web-app-todo/app/web/src/components/TaskItem.tsx +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/evals/witnesses/web-app-todo/app/web/src/components/TaskList.tsx +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/evals/witnesses/web-app-todo/app/web/src/main.tsx +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/evals/witnesses/web-app-todo/app/web/src/styles.css +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/evals/witnesses/web-app-todo/app/web/src/test/AddTaskForm.test.tsx +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/evals/witnesses/web-app-todo/app/web/src/test/TaskList.test.tsx +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/evals/witnesses/web-app-todo/app/web/src/test/setup.ts +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/evals/witnesses/web-app-todo/app/web/src/types.ts +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/evals/witnesses/web-app-todo/app/web/tsconfig.json +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/evals/witnesses/web-app-todo/app/web/vite.config.ts +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/evals/witnesses/web-app-todo/enforced/README.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/examples/README.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/examples/blueprint-minimal/README.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/examples/blueprint-web-pipeline/README.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/examples/terraform-houseserver/README.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/examples/web-app-todo/README.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/extensions/README.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/extensions/autogen/artifacts/agents/autogen-conversation-runner.agent.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/extensions/autogen/artifacts/skills/autogen-conversation-design/SKILL.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/extensions/autogen/extension.json +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/extensions/autogen/scripts/verify-install.sh +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/extensions/browser-use/artifacts/agents/browser-use-runner.agent.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/extensions/browser-use/artifacts/instructions/browser-evidence.instructions.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/extensions/browser-use/extension.json +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/extensions/browser-use/scripts/verify-install.sh +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/extensions/crewai/artifacts/agents/crewai-crew-runner.agent.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/extensions/crewai/artifacts/hooks/crewai-telemetry-bridge.json +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/extensions/crewai/artifacts/hooks/crewai-telemetry-bridge.sh +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/extensions/crewai/artifacts/prompts/crewai-import-crew.prompt.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/extensions/crewai/artifacts/skills/crewai-crew-design/SKILL.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/extensions/crewai/extension.json +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/extensions/crewai/scripts/register-hooks.sh +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/extensions/crewai/scripts/unregister-hooks.sh +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/extensions/crewai/scripts/verify-install.sh +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/extensions/extension.schema.json +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/extensions/fennara-godot/artifacts/skills/godot-evidence-loop/SKILL.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/extensions/fennara-godot/extension.json +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/extensions/fennara-godot/scripts/setup-mcp.sh +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/extensions/fennara-godot/scripts/teardown-mcp.sh +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/extensions/fennara-godot/scripts/verify-install.sh +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/extensions/grimoire-mcp/artifacts/instructions/mcp-trust-gate.instructions.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/extensions/grimoire-mcp/artifacts/skills/grimoire-mcp-setup/SKILL.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/extensions/grimoire-mcp/extension.json +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/extensions/grimoire-mcp/scripts/verify-install.sh +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/extensions/haystack/artifacts/instructions/haystack-rag-governance.instructions.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/extensions/haystack/artifacts/skills/haystack-pipeline-design/SKILL.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/extensions/haystack/extension.json +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/extensions/haystack/scripts/verify-install.sh +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/extensions/langfuse/artifacts/hooks/langfuse-trace-export.json +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/extensions/langfuse/artifacts/hooks/langfuse-trace-export.sh +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/extensions/langfuse/artifacts/instructions/langfuse-observability.instructions.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/extensions/langfuse/artifacts/skills/langfuse-tracing-setup/SKILL.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/extensions/langfuse/extension.json +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/extensions/langfuse/scripts/register-hooks.sh +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/extensions/langfuse/scripts/unregister-hooks.sh +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/extensions/langfuse/scripts/verify-install.sh +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/extensions/langgraph/artifacts/agents/langgraph-graph-runner.agent.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/extensions/langgraph/artifacts/prompts/langgraph-import-graph.prompt.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/extensions/langgraph/artifacts/skills/langgraph-graph-design/SKILL.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/extensions/langgraph/extension.json +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/extensions/langgraph/scripts/verify-install.sh +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/FREEZE.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/agent-base-compact.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/agent-base.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/agent-mesh-network.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/agent-relationship-graph.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/agent-rules.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/agent2agent.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/agentic-industry-reference.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/agentic-standard/README.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/agentic-standard/capability-map.yaml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/agentic-standard/needs-catalog.yaml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/agentic-standard/profile-map.yaml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/agentic-standard/target-schema.yaml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/acceptance-record.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/accepted-risks.yaml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/blast-radius-policy.yaml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/browser-tool-contract.yaml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/capability-registry.yaml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/claim-ledger.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/cluster-action-policy.yaml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/compliance-declaration.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/compliance-score.yaml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/compression-gate.yaml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/context-contract.yaml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/cost-registry.yaml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/decision-council.yaml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/decision-graph.yaml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/doc-graph-pipeline.yaml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/environment-policy.yaml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/evidence-gates.yaml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/evidence-pack.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/flow-dsl-manifest.yaml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/guardrail-contract.yaml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/hook-registry.yaml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/incident-registry.yaml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/k8s-agent-manifest.yaml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/knowledge-source-registry.yaml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/llm-provider-registry.yaml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/memory-integrity.yaml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/memory-policy.yaml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/merge-lane.yaml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/mission-brief.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/observability-policy.yaml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/orchestration-policy.yaml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/pattern-catalog.yaml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/privilege-boundary.yaml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/prompt-firewall.yaml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/prompt-version-log.yaml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/remediation-plan.yaml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/remote-hygiene.yaml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/retention-registry.yaml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/risk-control-matrix.yaml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/rule-packs.yaml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/runtime-provider-contract.yaml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/runtime-surface-registry.yaml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/task-board.yaml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/task-envelope.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/tool-registry.yaml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/visual-evidence.yaml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/waivers.yaml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/workflow-state-manifest.yaml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/agentic-standard/templates/workspace-isolation.yaml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/agentic-standard/traceability.yaml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/archetype-dna.schema.yaml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/cc-reference.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/cc-verify.sh +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/context-router.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/copilot/instructions/grimoire-project.instructions.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/copilot/prompts/grimoire-changelog.prompt.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/copilot/prompts/grimoire-dream.prompt.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/copilot/prompts/grimoire-health-check.prompt.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/copilot/prompts/grimoire-pre-push.prompt.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/copilot/prompts/grimoire-self-heal.prompt.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/copilot/prompts/grimoire-session-bootstrap.prompt.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/copilot/prompts/grimoire-status.prompt.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/copilot/prompts/grimoire-upgrade-review.prompt.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/copilot-extension/README.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/cross-validation-trust.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/delivery-contract.tpl.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/event-log-shared-state.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/expertises/skills/expertise-architecture-haut-niveau.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/expertises/skills/expertise-aws.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/expertises/skills/expertise-azure.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/expertises/skills/expertise-c.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/expertises/skills/expertise-cloudflare.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/expertises/skills/expertise-cpp.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/expertises/skills/expertise-csharp.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/expertises/skills/expertise-design-patterns.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/expertises/skills/expertise-elixir.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/expertises/skills/expertise-gcp.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/expertises/skills/expertise-hetzner.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/expertises/skills/expertise-java.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/expertises/skills/expertise-kotlin.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/expertises/skills/expertise-kubernetes-managed.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/expertises/skills/expertise-ovh.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/expertises/skills/expertise-performance.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/expertises/skills/expertise-php.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/expertises/skills/expertise-ruby.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/expertises/skills/expertise-rust.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/expertises/skills/expertise-scala.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/expertises/skills/expertise-scaleway.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/expertises/skills/expertise-securite-applicative.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/expertises/skills/expertise-swift.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/expertises/skills/expertise-systemes-bas-niveau.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/expertises/skills/expertise-testing-avancee.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/glossary.yaml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/grimoire-trace.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/honest-uncertainty-protocol.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/hooks/.pre-commit-config.tpl.yaml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/hooks/commit-msg.sh +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/hooks/mnemo-consolidate.sh +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/hooks/post-checkout.sh +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/hooks/post-commit.sh +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/hooks/pre-commit-cc.sh +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/hooks/pre-push.sh +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/hooks/prepare-commit-msg.sh +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/hosts/commands/grimoire-doctor.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/hosts/commands/grimoire-gate.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/hosts/commands/grimoire-proof.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/hosts/commands/grimoire-recall.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/hosts/commands/grimoire-verify.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/hosts/skills/grimoire-agent-dispatch.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/hosts/skills/grimoire-evidence.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/hosts/skills/grimoire-memory.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/hosts/skills/grimoire-steward.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/hybrid-parallelism-engine.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/mcp/grimoire-mcp-server.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/memory/.gitignore +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/memory/backends/__init__.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/memory/backends/backend_lexical.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/memory/backends/backend_local.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/memory/backends/backend_ollama.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/memory/backends/backend_qdrant_local.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/memory/backends/backend_qdrant_server.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/memory/contradiction-log.tpl.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/memory/dependency-graph.tpl.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/memory/docker-compose.memory-target.tpl.yml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/memory/docker-compose.memory.tpl.yml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/memory/failure-museum.tpl.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/memory/handoff-log.tpl.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/memory/k8s-qdrant.tpl.yaml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/memory/maintenance.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/memory/mem0-bridge.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/memory/memory_seed.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/memory/network-topology.tpl.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/memory/oss-references.tpl.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/memory/requirements/requirements-minimal.txt +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/memory/requirements/requirements-ollama.txt +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/memory/requirements/requirements-qdrant.txt +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/memory/requirements.txt +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/memory/session-save.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/orchestrator-gateway.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/productive-conflict-engine.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/prompt-templates/README.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/prompt-templates/audit-report.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/prompt-templates/capacity-planning.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/prompt-templates/compliance-check.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/prompt-templates/dependency-updates.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/prompt-templates/design-tokens.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/prompt-templates/network-troubleshoot.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/prompt-templates/operational-mode.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/prompt-templates/periodic-report.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/prompt-templates/secret-rotation.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/prompt-templates/strategic-plan.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/prompt-templates/troubleshoot.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/question-escalation-chain.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/registry/README.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/selective-huddle-protocol.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/sessions/README.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/sil-collect.sh +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/tools/README.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/tools/adversarial-consensus.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/tools/agent-bench.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/tools/agent-caller.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/tools/agent-darwinism.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/tools/agent-debugger.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/tools/agent-forge.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/tools/agent-integrity.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/tools/agent-test.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/tools/agent-watch.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/tools/agent-worker.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/tools/antifragile-score.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/tools/auto-doc.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/tools/context-guard.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/tools/context-summarizer.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/tools/cross-migrate.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/tools/dep-check.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/tools/distill.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/tools/dna-evolve.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/tools/dream.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/tools/expert-tool-chain.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/tools/failure-museum.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/tools/gen-tests.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/tools/grimoire-completion.zsh +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/tools/grimoire-mcp-tools.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/tools/grimoire-setup.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/tools/image-prompt.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/tools/incubator.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/tools/llm-router.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/tools/memory-lint.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/tools/memory-sync.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/tools/message-bus.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/tools/nso.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/tools/observatory.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/tools/preflight-check.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/tools/quick-check.sh +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/tools/rag-indexer.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/tools/rag-retriever.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/tools/reasoning-stream.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/tools/schema-validator.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/tools/session-lifecycle.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/tools/stigmergy.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/tools/stigmergy_hooks/scripts/stigmergy-emit-post-edit.sh +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/tools/stigmergy_hooks/scripts/stigmergy-emit-stop.sh +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/tools/stigmergy_hooks/scripts/stigmergy-sense.sh +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/tools/stigmergy_hooks/scripts/stigmergy_hook.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/tools/stigmergy_hooks/stigmergy-emit.json +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/tools/stigmergy_hooks/stigmergy-sense.json +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/tools/swarm-consensus.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/tools/synapse-trace.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/tools/token-budget.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/tools/tool-registry.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/tools/tool-resolver.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/tools/vision-judge.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/tools/web-browser.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/workflows/boomerang-orchestration.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/workflows/github-cc-check.yml.tpl +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/workflows/incident-response.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/workflows/party-mode.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/workflows/repo-map-generator.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/workflows/state-checkpoint.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/workflows/subagent-orchestration.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/workflows/workflow-graph.tpl.yaml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/framework/workflows/workflow-status.tpl.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/planning/README.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/pyproject.toml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/registry/blueprints/README.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/registry/blueprints/project-upgrade.blueprint.json +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/registry/expertises.yaml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/rust/grimoire-acp-core/pyproject.toml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/rust/grimoire-dispatch-core/pyproject.toml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/rust/grimoire-flows-core/pyproject.toml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/rust/grimoire-hosts-core/pyproject.toml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/rust/grimoire-policies-core/pyproject.toml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/rust/grimoire-schema-core/pyproject.toml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/rust/grimoire-traces-core/pyproject.toml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/scripts/gen-site-data.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/__init__.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/__main__.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/acp/__init__.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/acp/client.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/acp/machine.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/archetypes/__init__.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/bridges/__init__.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/bridges/a2a_adapter.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/bridges/host.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/bridges/schemas.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/__init__.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/_condensed_help.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/_lazy.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/_registry_dispatches_report.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/_shared.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_agent.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_autonomy.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_blueprint.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_blueprint_import.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_cadrage.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_ceremony.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_context_pack.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_debugger.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_dispatch.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_evidence.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_expertise.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_ext.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_features.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_flow.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_gates.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_hooks.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_host.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_init.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_mcp.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_memory_bundle.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_memory_gestures.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_memory_knowledge.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_memory_lexical.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_memory_ops.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_memory_packs.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_memory_projections.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_memory_rules.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_memory_shared.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_merge.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_migrate.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_mission.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_needs.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_onboard.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_orchestrate.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_phase.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_plans.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_policies.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_proposals.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_providers.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_queue.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_route.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_self_bundle.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_self_update.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_serve.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_setup.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_standard.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_standard_claims.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_steward.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_stigmergy.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_task.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_task_a2a.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_task_approve.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_task_import.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_task_portfolio.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_task_questions.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_task_review.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_task_waiting.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_task_wave.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_task_worktree.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_team.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_up.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_up_prove.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_up_task_unification.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_upgrade.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_upgrade_flow.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_verify_install.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_web.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/cmd_workflows.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/doctor_acp.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/doctor_hooks.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/doctor_instructions.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/doctor_mcp.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/doctor_skills.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/env_checks.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/init_memory.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/init_questions.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/cli/updater.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/codegraph/__init__.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/codegraph/backends/__init__.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/codegraph/backends/neo4j.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/codegraph/freshness.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/codegraph/graph.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/codegraph/parser.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/codegraph/schemas.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/__init__.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/agent_freshness.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/archetype_resolver.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/cadrage.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/cadrage_requirements.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/claude_activation.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/config.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/console_encoding.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/deprecation.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/error_codes.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/exceptions.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/execution_needs.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/expertises.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/fsio.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/grounding.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/integrity.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/kit_hashes.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/layered_rules.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/layout.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/learned_rules.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/log.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/merge.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/needs_suggest.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/onboarding_panel.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/override_drift.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/policy_budget_guard_check.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/profile_floor_doctor.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/project.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/project_capabilities.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/project_kind.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/project_types.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/resolver.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/rule_resolution.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/safe_git.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/scaffold.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/scanner.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/schema.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/stack_pack_verifiers.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/stack_packs.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/stack_skills.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/standard_checks/__init__.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/standard_checks/acceptance_test_run.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/standard_checks/base.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/standard_checks/cadrage_ledger_check.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/standard_checks/claim_ledger_verify.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/standard_checks/claim_proof_resolve.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/standard_checks/controls.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/standard_checks/criterion_coverage.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/standard_checks/dispatch_cost_slo.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/standard_checks/evidence_chain.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/standard_checks/evidence_journal.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/standard_checks/evidence_resolve.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/standard_checks/gate_codegraph.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/standard_checks/gate_remedy.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/standard_checks/gate_review_checks.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/standard_checks/gate_test_run.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/standard_checks/hot_memory_check.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/standard_checks/no_tests_collected.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/standard_checks/observability_check.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/standard_checks/pattern_codes.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/standard_checks/plan_then_execute_check.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/standard_checks/registry.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/standard_checks/rules_check.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/standard_checks/runtime_journal_check.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/standard_checks/skills_check.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/standard_checks/tree_fingerprint.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/standard_effective_profile.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/standard_generation.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/standard_profile_manifest.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/standard_state.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/standard_task_scaffold.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/standard_traceability.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/standard_upstream.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/task_board_ledger.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/task_unification_doctor.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/core/validator.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/costs.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/data/__init__.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/data/bench/longmemeval-sample.json +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/data/stack-packs/python.yaml +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/evidence/__init__.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/evidence/schemas.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/evidence/service.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/flows/__init__.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/flows/attestation.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/flows/autonomy.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/flows/blueprint_loader.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/flows/directive.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/flows/dispatch_executor.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/flows/doctor.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/flows/engine.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/flows/executor.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/flows/extract.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/flows/fingerprint.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/flows/genres.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/flows/live_runs.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/flows/pilot.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/flows/registry.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/flows/schemas.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/flows/transfer.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/__init__.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/acp_hosts.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/capabilities.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/collect.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/contract_probe.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/decisions/__init__.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/decisions/_shared.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/decisions/activation.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/decisions/authority_guard.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/decisions/calibration.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/decisions/chain_ack.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/decisions/context_capsule.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/decisions/done_gate.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/decisions/enrolment.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/decisions/event_trace.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/decisions/evidence_gate.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/decisions/evidence_trace.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/decisions/gate_override.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/decisions/gate_summary.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/decisions/human_turns.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/decisions/instruction_scan.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/decisions/lease_brake.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/decisions/pause_brake.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/decisions/profile_floor.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/decisions/record.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/decisions/repetition_guard.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/decisions/self_view.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/decisions/session_memory.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/decisions/steering.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/decisions/subagent_gate.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/decisions/task_context.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/decisions/tool_facts.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/decisions/tool_policy.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/detection.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/emitters/__init__.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/emitters/base.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/emitters/claude_code.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/emitters/copilot.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/emitters/generic.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/emitters/opencode.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/emitters/rules.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/events.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/hook_launcher.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/host_version.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/matrix.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/probe.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/runtime.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/secrets.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/skill_spec.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/surface.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/hosts/sync.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/mcp/__init__.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/mcp/project.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/mcp/server.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/memory/__init__.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/memory/architecture.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/memory/backends/__init__.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/memory/backends/_qdrant_mixin.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/memory/backends/base.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/memory/backends/lexical.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/memory/backends/local.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/memory/backends/mempalace.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/memory/backends/ollama.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/memory/backends/qdrant.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/memory/backends/tantivy_local.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/memory/backends/weaviate.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/memory/bundle.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/memory/embedding.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/memory/gestures.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/memory/health_cache.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/memory/hot.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/memory/journal.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/memory/knowledge.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/memory/longmemeval.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/memory/manager.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/memory/migration.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/memory/neo4j_backfill.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/memory/neo4j_graph.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/memory/profiles.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/memory/projections.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/memory/reads_log.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/memory/retrieval.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/memory/shared.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/memory/sidecar.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/memory/split.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/memory/store_probe.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/memory/supersession.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/memory/taxonomy.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/memory/validation.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/missions/__init__.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/missions/admission.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/missions/autopilot.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/missions/board.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/missions/breaker.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/missions/cadrage_plan.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/missions/ceremony.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/missions/ceremony_budget.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/missions/check_gate.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/missions/ci_slots.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/missions/declarative_evidence.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/missions/diff_fingerprint.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/missions/dispatch.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/missions/dispatch_advice.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/missions/dispatch_history.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/missions/effects.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/missions/empty_green.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/missions/ended.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/missions/finition.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/missions/gates.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/missions/human_acceptance.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/missions/janitor.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/missions/launcher.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/missions/lease.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/missions/ledger_append.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/missions/ledger_links.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/missions/ledger_rules.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/missions/ledger_snapshot.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/missions/ledger_views.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/missions/liveness.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/missions/mandate.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/missions/manual_review.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/missions/orchestrator_policy.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/missions/orchestrator_session.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/missions/pause.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/missions/plan_import.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/missions/plans_registry.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/missions/prepush_fence.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/missions/question_gestures.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/missions/question_rounds.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/missions/question_v2.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/missions/questions.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/missions/recall.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/missions/reclaim.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/missions/report.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/missions/reservation.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/missions/review_receipt.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/missions/review_seal.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/missions/review_verdict.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/missions/route_dispatch.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/missions/route_report.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/missions/router.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/missions/routing_policy.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/missions/schemas.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/missions/service.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/missions/session_link.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/missions/task_flow_adapter.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/missions/task_unification.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/missions/task_worktree.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/missions/team_units.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/missions/timer.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/missions/trace.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/missions/verifiability.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/missions/verify.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/missions/waiting.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/missions/wave_checkpoint.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/missions/waves.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/onboarding/__init__.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/onboarding/brownfield.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/onboarding/facts.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/onboarding/scan_js.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/onboarding/scan_manifests.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/onboarding/scan_python.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/policies/__init__.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/policies/engine.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/policies/rules_config.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/policies/schemas.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/policies/security.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/policies/session_state.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/policies/temporal.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/providers/__init__.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/providers/audit.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/providers/quota.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/providers/registry.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/providers/routing.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/providers/state.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/py.typed +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/registry/__init__.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/registry/agents.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/registry/discovery.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/registry/local.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/repo_gates/__init__.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/runtime/__init__.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/runtime/adapter_base.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/runtime/crewai_adapter.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/runtime/gascity_converter.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/runtime/kernel.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/runtime/langgraph_adapter.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/runtime/recipes.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/runtime/schemas.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/steward/__init__.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/steward/project_map.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/steward/report.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/steward/sources.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/steward/verdicts.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/__init__.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/_common.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/agent_creation.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/blueprint_checkpoint.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/blueprint_context.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/blueprint_diff.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/blueprint_eval_runner.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/blueprint_evals.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/blueprint_gate.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/blueprint_primitives.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/blueprint_resilience.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/blueprint_scatter.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/blueprint_security.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/blueprint_telemetry.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/cockpit_registry_routes.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/context_pack.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/cost_model.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/ext_manager.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/features.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/flow_runs.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/forge_http.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/forge_routes.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/forge_server.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/handoff.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/harmony_check.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/install_receipt.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/install_trust.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/mcp_processes.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/memory_link.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/memory_lint.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/memory_setup.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/memory_vectors.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/model_windows.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/project_registry.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/project_setup.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/project_update.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/project_upgrade.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/request_guard.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/serve_data.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/source_assist.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/stigmergy.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/stigmergy_hooks.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/untrusted.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/update_bundle.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/update_bundle_build.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/update_channels.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/upgrade_changes.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/upgrade_preview.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/view_cache.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/workspace_actions.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/workspace_capacity.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/workspace_chat_kanban.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/workspace_config.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/workspace_exec.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/workspace_graph.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/workspace_hygiene.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/workspace_knowledge.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/workspace_language.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/workspace_launch_apply.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/workspace_launch_preflight.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/workspace_legacy.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/workspace_machine.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/workspace_memory.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/workspace_memory_gestures.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/workspace_read_cache.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/workspace_recall.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/workspace_reviews.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/workspace_session_feed.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/workspace_sessions.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/workspace_setup_guide.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/workspace_since.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/workspace_slots.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/workspace_task_gates.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/tools/workspace_write_guard.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/traces/__init__.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/traces/intervals.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/traces/ledger.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/traces/observatory_feed.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/traces/otel_conventions.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/traces/otlp.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/traces/runtime_spans.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/traces/schemas.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/traces/transcript_usage.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/workflows/__init__.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/src/grimoire/workflows/registry.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/DESIGN-BRIEF-memory.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/DESIGN-BRIEF-observability.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/DESIGN-REVIEW-2026-09.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/DESIGN-SPEC-workspace-2026-09.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/anatomy.html +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/atelier-nav.js +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/atelier.css +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/atelier.html +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/blueprint-onboarding.js +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/blueprints.html +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/bp2-assist.js +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/bp2-composer.js +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/bp2-core.js +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/bp2-cost.js +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/bp2-diff.js +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/bp2-docs.js +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/bp2-evals.js +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/bp2-lexicon.js +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/bp2-library.js +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/bp2-manual.js +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/bp2-sections.js +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/bp2-team.css +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/bp2-team.js +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/bp2-tour.js +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/bp2.css +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/data/activity.json +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/data/architecture.json +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/data/catalogue-export.json +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/data/extensions.json +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/data/insights.json +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/data/kit-coverage.json +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/data/memory.json +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/data/meta.json +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/data/observatory.json +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/data/projects/atlas-ops/activity.json +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/data/projects/atlas-ops/insights.json +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/data/projects/atlas-ops/memory.json +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/data/projects/atlas-ops/meta.json +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/data/projects/atlas-ops/observatory.json +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/data/projects/atlas-ops/taskboard.json +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/data/projects/grimoire-kit/activity.json +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/data/projects/grimoire-kit/insights.json +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/data/projects/grimoire-kit/memory.json +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/data/projects/grimoire-kit/meta.json +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/data/projects/grimoire-kit/observatory.json +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/data/projects/grimoire-kit/taskboard.json +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/data/projects/ledger-data/activity.json +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/data/projects/ledger-data/insights.json +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/data/projects/ledger-data/memory.json +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/data/projects/ledger-data/meta.json +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/data/projects/ledger-data/observatory.json +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/data/projects/ledger-data/taskboard.json +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/data/projects/sentinel-sec/activity.json +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/data/projects/sentinel-sec/insights.json +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/data/projects/sentinel-sec/memory.json +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/data/projects/sentinel-sec/meta.json +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/data/projects/sentinel-sec/observatory.json +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/data/projects/sentinel-sec/taskboard.json +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/data/projects.json +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/data/reels/cloture-refusee-puis-acceptee.html +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/data/reels/cloture-refusee-puis-acceptee.json +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/data/reels/decision-humaine-attestee.html +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/data/reels/decision-humaine-attestee.json +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/data/reels/index.json +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/data/reels/rappel-au-claim.html +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/data/reels/rappel-au-claim.json +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/data/reels/supersession.html +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/data/reels/supersession.json +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/data/reels/tri-v0-v1-v2.html +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/data/reels/tri-v0-v1-v2.json +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/data/taskboard.json +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/demo.html +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/design/workspace-2026-09/Concevoir.dc.html +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/design/workspace-2026-09/ConcevoirClair.dc.html +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/design/workspace-2026-09/Couleurs.dc.html +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/design/workspace-2026-09/DAArdoise.dc.html +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/design/workspace-2026-09/DAPapier.dc.html +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/design/workspace-2026-09/DAStudio.dc.html +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/design/workspace-2026-09/DirectionB.dc.html +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/design/workspace-2026-09/DirectionC.dc.html +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/design/workspace-2026-09/DirectionD.dc.html +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/design/workspace-2026-09/Encre.dc.html +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/design/workspace-2026-09/EncreClair.dc.html +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/design/workspace-2026-09/Main.dc.html +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/design/workspace-2026-09/Mecaniques.dc.html +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/design/workspace-2026-09/Source.dc.html +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/design/workspace-2026-09/canvas.json +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/design/workspace-2026-09/captures/concevoir-dark.jpg +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/design/workspace-2026-09/captures/concevoir-light.jpg +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/design/workspace-2026-09/captures/executer-dark.jpg +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/design/workspace-2026-09/captures/executer-light.jpg +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/design/workspace-2026-09/captures/memoire-dark.jpg +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/design/workspace-2026-09/captures/memoire-light.jpg +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/design/workspace-2026-09/captures/observer-dark.jpg +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/design/workspace-2026-09/captures/observer-light.jpg +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/design/workspace-2026-09/captures/piloter-dark.jpg +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/design/workspace-2026-09/captures/piloter-light.jpg +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/design/workspace-2026-09/captures/source-dark.jpg +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/design/workspace-2026-09/captures/source-light.jpg +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/design/workspace-2026-09/gen-couleurs.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/design/workspace-2026-09/gen-skins.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/design/workspace-2026-09/shell.tpl.html +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/design-review-2026-09/01-cockpit-portefeuille-desktop.jpg +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/design-review-2026-09/02-cockpit-portefeuille-full.jpg +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/design-review-2026-09/03-cockpit-portefeuille-mobile.jpg +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/design-review-2026-09/04-kanban-desktop.jpg +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/design-review-2026-09/05-kanban-mobile.jpg +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/design-review-2026-09/06-observatoire-desktop.jpg +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/design-review-2026-09/07-observatoire-full.jpg +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/design-review-2026-09/08-atelier-desktop.jpg +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/design-review-2026-09/09-atelier-mobile.jpg +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/design-review-2026-09/10-memoire-desktop.jpg +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/design-review-2026-09/11-blueprints-desktop.jpg +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/design-review-2026-09/12-extensions-desktop.jpg +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/design-review-2026-09/13-patterns-desktop.jpg +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/design-review-2026-09/14-cockpit-index-desktop.jpg +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/design-review-2026-09/15-workspace-lot1-sombre-decouverte.png +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/design-review-2026-09/16-workspace-lot1-clair-decouverte.png +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/design-review-2026-09/17-workspace-lot1-sombre-concentration.png +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/design-review-2026-09/18-workspace-lot1-clair-concentration.png +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/documentation.html +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/extensions.html +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/fonts/Geist-Variable-latin.woff2 +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/fonts/GeistMono-Variable-latin.woff2 +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/fonts/JetBrainsMono-Regular.woff2 +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/fonts/JetBrainsMono-SemiBold.woff2 +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/fonts/OFL-instrument.txt +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/fonts/OFL-jetbrains.txt +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/fonts/OFL.txt +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/fonts/fonts.css +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/fonts/instrument-sans-400.woff2 +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/fonts/instrument-sans-500.woff2 +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/fonts/instrument-sans-600.woff2 +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/forge-base.css +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/forge-charts.css +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/forge-landing.css +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/forge-motion.css +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/forge-motion.js +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/forge-nav.js +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/forge-observatory.js +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/forge-tokens.css +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/game-ui.html +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/grimoire-mode.js +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/index.html +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/kanban.html +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/labs.html +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/media/capture-reelle.png +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/media/teaser-720.mp4 +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/media/teaser-poster.jpg +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/memory.html +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/observability.html +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/patterns.html +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/portfolio.html +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/project-picker.js +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/teaser/.gitignore +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/teaser/README.md +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/teaser/audio4.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/teaser/build4.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/teaser/clips.json +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/teaser/cues.json +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/teaser/cues.mjs +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/teaser/detect_green.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/teaser/fonts/JetBrainsMono-Regular.woff2 +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/teaser/fonts/JetBrainsMono-SemiBold.woff2 +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/teaser/fonts/OFL-InstrumentSans.txt +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/teaser/fonts/OFL-JetBrainsMono.txt +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/teaser/fonts/instrument-sans-400.woff2 +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/teaser/fonts/instrument-sans-500.woff2 +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/teaser/fonts/instrument-sans-600.woff2 +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/teaser/footage-sources.json +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/teaser/icons/board.svg +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/teaser/icons/fleet.svg +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/teaser/icons/inbox.svg +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/teaser/icons/pr.svg +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/teaser/icons/sliders.svg +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/teaser/icons/tag.svg +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/teaser/master.sh +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/teaser/prep_footage.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/teaser/render.mjs +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/teaser/scene4.tpl.html +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/teaser/screens.json +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/teaser/shots.mjs +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/teaser/storyboard.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/teaser/terminal.json +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/tools/check-links.py +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/workspace/activity.js +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/workspace/fonts/GeistMono-Medium.woff2 +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/workspace/fonts/GeistMono-Regular.woff2 +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/workspace/fonts/InstrumentSans-Variable.woff2 +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/workspace/fonts/OFL-InstrumentSans.txt +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/workspace/fonts/OFL.txt +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/workspace/glossary.js +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/workspace/markdown.js +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/workspace/score.js +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/workspace/setup-state.js +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/workspace/spaces/a-traiter-group.js +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/workspace/spaces/a-traiter-since.js +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/workspace/spaces/board-split.js +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/workspace/spaces/capacite.js +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/workspace/spaces/carte-worker.js +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/workspace/spaces/carte.js +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/workspace/spaces/code-projection.js +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/workspace/spaces/concevoir.js +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/workspace/spaces/donnees.js +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/workspace/spaces/memoire-gestes.js +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/workspace/spaces/observer.js +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/workspace/spaces/rappel.js +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/workspace/spaces/recall-receipt.js +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/workspace/spaces/registre.js +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/workspace/spaces/sante.js +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/workspace/spaces/sessions.js +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/workspace/spaces/source-editor.js +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/workspace/spaces/source.css +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/workspace/spaces/source.js +0 -0
- {grimoire_kit-3.75.0 → grimoire_kit-3.77.0}/web/workspace/spaces/task-create.js +0 -0
|
@@ -7,6 +7,41 @@ 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
|
+
|
|
22
|
+
## [3.76.0] - 2026-10-29
|
|
23
|
+
|
|
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
|
|
25
|
+
- feat(cockpit): le chat d'orchestrateur branché sur le pilote automatique (ACP4, `GAO-acp4-chat-d-001`). Pilote activé, une question qui reste à l'humain (liste réservée de P82 ou confiance basse) est posée dans le chat en plus de « À traiter » ; la réponse tapée après « Répondre ici » est une réponse humaine par le canal du cockpit. À l'ouverture, le chat résume les décisions du pilote depuis la dernière visite, avec un lien vers le journal. L'orchestrateur peut proposer `[[pilote:on]]` / `[[pilote:off]]` : le chat en fait un bouton que la personne clique avec la clé de contrôle, l'agent n'a aucun chemin pour activer ou couper le pilote.
|
|
26
|
+
- fix(intake): l'intake propose ses titres et justifications en français (« Écrire les tests : … », « Tâche principale détectée dans la demande », etc.), sans changer le découpage ni les types, risques et vérifiabilités proposés (GAO-i7-l-intake-001)
|
|
27
|
+
- feat(cockpit): dix-neuf icônes d'action `i-act-*` dans le sprite (P38, GAO-p38-ic-nes-001) : exception Lucide accordée — pause, skip, save, send, unlock, ban, back, next, approve, reject (déjà présentes), plus copy, close, preview, retry, add, filter, remove, launch, stop, choisies d après la fréquence des verbes du cockpit. Tracés Lucide (ISC) au trait 1,75, `web/workspace/icons/NOTICE` porte la licence, la charte écrit « aucune icône d'identité empruntée ». Aucun appel dans le cockpit encore.
|
|
28
|
+
- feat(memory): correction mémoire déléguée à un agent (P42, GAO-p42-correct-001) : « Demander une correction… » ouvre une tâche au critère généré selon le résultat attendu (`corrects: <id>` pour remplacer ou fusionner) ; l'agent dépose sa correction par `grimoire memory correct propose` comme proposition `memory-correction` (`grimoire.proposals`), sans écrire en mémoire ; accepter applique par `MemoryManager`, le journal P14 porte `proposed_by` et `applied_by` ; une proposition dont une entrée a changé depuis la demande est périmée (refusée, aperçu sur l'état actuel) ; le formulaire prévient que l'annulation de la tâche n'arrête pas la session de l'agent, qui peut encore travailler (tant que GAO-annuler-arr-001 n'est pas livré).
|
|
29
|
+
- feat(cockpit): chat d'orchestrateur, étape 3 (ACP3, GAO-acp3-chat-d-001) : tous les hôtes, choix par projet, doctor ACP, repli kanban
|
|
30
|
+
- **Table de lancement** (`HostProfile.acp_command`) : Gemini CLI `gemini --acp`, Copilot CLI `copilot --acp` (preview, à valider), Codex `npx -y @agentclientprotocol/codex-acp` (exige `npx` et `codex`), Cursor `agent acp`, opencode `opencode acp`. Le profil porte aussi `acp_binary`, `acp_preview` et `acp_note`.
|
|
31
|
+
- **Choix de l'hôte** par projet : sélecteur dans l'onglet Orchestrateur (`GET /api/workspace/chat/hosts`, `POST /api/workspace/chat/host`), mémorisé sous `_grimoire-runtime-output/cockpit/chat-host.json` ; sans réglage, l'hôte détecté. Les hôtes non installés sont grisés avec leur raison. `GRIMOIRE_CHAT_HOST` et `GRIMOIRE_CHAT_AGENT_COMMAND` passent toujours avant.
|
|
32
|
+
- **Doctor** : `grimoire doctor` négocie `initialize` avec le mode ACP de chaque hôte installé (aucun `session/new`, aucun prompt, donc aucun coût) ; un mode muet est un avertissement, le chat se replie sur le kanban.
|
|
33
|
+
- **Repli kanban** (Copilot dans VS Code n'a pas d'interface externe, ni tout hôte sans ACP lançable) : le chat dépose une consigne humaine sur la tâche tenue (ou `task_id`), et le fil affiche les notes, questions et commentaires que les sessions y déposent ; le fil se relit du ledger, il survit au redémarrage. En différé, mais disponible partout.
|
|
34
|
+
- **Pérennité** : Gemini CLI cède la place à Antigravity CLI pour les comptes gratuits (juin 2026) — `gemini --acp` reste valable tant que la CLI est installée, la commande du profil est à mettre à jour à la migration ; le mode ACP de Copilot CLI est en preview, signalé dans le sélecteur et par le doctor.
|
|
35
|
+
- feat(cockpit): « Lancer » dans le guide Démarrer — le plan de P36 s'exécute par les actions typées de P40, étape par étape (P45, `GAO-p45-premier-001`)
|
|
36
|
+
- **Étapes** : démarrer les services du profil (sautable), composer la mémoire (`memory.compose`), vérifier par un aller-retour mémoire réel (écrire, retrouver, retirer un souvenir de test, relu absent), lancer doctor (sautable). Un échec est traduit en phrase avec son remède (motif brut à part) ; **Réessayer**, **Sauter** (étapes non bloquantes seulement) et **Revenir en arrière** (inverse consigné, dernière étape d'abord). Un écart de vérification s'affiche avec sa commande de remède.
|
|
37
|
+
- **Avancement enregistré** (`_grimoire-runtime-output/setup/launch.json`, écrit avant chaque étape) : après rechargement, l'étape interrompue est dite telle et reprise là, sans rejouer ce qui est fait.
|
|
38
|
+
- **Routes** : `GET /api/workspace/setup/launch`, `POST /api/workspace/setup/launch` (`verb` : `start`, `next`, `retry`, `skip`, `rollback`, `reset`). Aucune écriture à l'ouverture du guide ; sans `project-context.yaml` (S0) il n'existe pas d'action typée d'initialisation : l'étape de composition est bloquée et dit `grimoire init` à copier.
|
|
39
|
+
- feat(cockpit): carte de décision v2 dans « À traiter › Décisions » — titre et contexte en deux lignes, puces de pièces dépliables (diff, CI, lien, fichier, capture, commande), recommandation avec sa raison, choix unique ou multiple avec conséquence, « Tout cocher / Tout décocher », consigne facultative, « Plus tard » qui n'envoie rien ; la réponse part en texte lisible et en `answer_data`, « Demandes précédentes » (ce que tu as répondu et la suite, lus au ledger via `waiting.rounds`), badge « 2e demande », raccourcis 1-9, R, E, H et Ctrl+Entrée (aucun envoi en un seul appui), barre « Envoyer » collante et cibles de 48 px à 390 px ; une question v1 garde la carte actuelle (GAO-p93-carte-d-001)
|
|
40
|
+
- perf(cockpit): réponses JSON et fichiers texte en gzip au-delà de 1 Ko, `ETag` + `Last-Modified` + 304 sur les fichiers statiques (`no-cache` conservé), HTTP/1.1 avec keep-alive (flux SSE inchangés), liste `tasks` allégée (consignes, description, garde-fous, dépendances par `tasks/<id>`), lecture du board du standard en libyaml et mise en cache : la fiche Piloter passe de ~0,9 s à ~0,15 s (GAO-p94-cockpit-001)
|
|
41
|
+
- feat(cockpit): « Une idée ? » dans l'espace Travail (raccourci `n`, palette) transforme une phrase en tâches prêtes (I2, `GAO-i2-transfor-001`). `POST /api/workspace/tasks/intake` rend, sans LLM et de façon déterministe, des propositions avec type, risque, vérifiabilité et critère proposé par classe ; une commande de vérification est requise pour passer en prête (V0/V1) ; les propositions critiques ne sont jamais cochées d'office ; « Créer N tâches (prêtes) » passe par `TaskService.add`, un refus du gate laisse la tâche proposée avec sa raison. CLI : `grimoire task add --intake "<texte>" --create [--json]` ; sans `--create`, rien n'est écrit.
|
|
42
|
+
- fix(windows): la commande de notification d'une décision attendue se découpe comme le shell du système (`grimoire.core.command_line.split_command`, partagé avec le chat ACP) : sous Windows, un chemin `C:\…\python.exe` n'est plus réduit par `shlex` en mode POSIX (main rouge sous Windows, 2026-10-29).
|
|
43
|
+
- feat(cockpit): prévenir d'une décision attendue, onglet masqué ou fermé (I1, `GAO-i1-pr-venir-001`). Le titre de l'onglet devient « (N) Grimoire » avec une pastille sur le favicon, rendus à l'identique à zéro. L'interrupteur « Me prévenir dans le navigateur » émet une notification par nouvelle question (dédupliquée par identifiant, même après rechargement) et garde le flux ouvert onglet masqué — seule exception au gel, absente tant qu'il est coupé. Configuration gagne la « Commande de notification » (`options.notify.command`) avec un bouton « Tester » (`POST /api/workspace/notify/test`), `grimoire doctor` signale une commande illisible, et le guide `docs/guides/etre-prevenu-d-une-decision.md` donne des recettes `notify-send` et `ntfy`.
|
|
44
|
+
|
|
10
45
|
## [3.75.0] - 2026-10-29
|
|
11
46
|
|
|
12
47
|
- chore(release): correctifs intermédiaires des PR fusionnées par les lots #1079 et précédents (commit de fusion), déjà décrits par le fragment de leur PR : 1ef3a7e4, df5d4745, c9ab5169, 1327282a, 6f8f19ba, 12ede29d, fe3db122, d92ca3d1, adcfed29, 1a2eb076, 2635f82b, 279bd31b
|
|
@@ -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,11 @@
|
|
|
1
|
+
---
|
|
2
|
+
audience: contributeur
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Captures I1 — prévenir d'une décision attendue
|
|
6
|
+
|
|
7
|
+
Playwright, projet de test avec deux décisions en attente, le 2026-10-29. Le titre d'onglet relevé par `page.title()` dans les trois cas est « (2) Grimoire — vue de travail ».
|
|
8
|
+
|
|
9
|
+
- `interrupteur-{clair,sombre}.png` : barre d'état à 1440 px, interrupteur « Me prévenir dans le navigateur » actif (`aria-pressed="true"`).
|
|
10
|
+
- `interrupteur-390px.png` : la même barre à 390 px — icône seule, nom accessible conservé, aucun défilement horizontal.
|
|
11
|
+
- `reglage-{clair,sombre,390px}.png` : carte « Commande de notification » de Configuration, avec ses boutons Enregistrer et Tester.
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
---
|
|
2
|
+
audience: contributeur
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Captures P42 — correction mémoire déléguée à un agent
|
|
6
|
+
|
|
7
|
+
Quatre captures, clair et sombre, de l'inspecteur Savoir (cockpit, kit 3.73.0, projet de démonstration `forge-p34`) :
|
|
8
|
+
|
|
9
|
+
- `p42-demander-une-correction-*.png` : « Demander une correction… » ouvert sur une décision en vigueur ; mode « Remplacer par une entrée corrigée », consigne libre, bouton « Créer la tâche » ;
|
|
10
|
+
- `p42-tache-creee-*.png` : après envoi, le retour nomme la tâche créée (`GAO-corriger-la-002`) et son critère vérifiable (« l'entrée … est remplacée par une entrée qui porte … ») ; l'entrée d'origine reste lisible.
|
|
11
|
+
|
|
12
|
+
Validées par Claude sous délégation explicite de Guilhem (2026-10-28 : « tu as le droit d'approuver tout en mon nom » ; 2026-10-29 : « fais aussi les revues »), le 2026-10-29 : le parcours est complet, lisible dans les deux thèmes, sans action destructive implicite (« Supprimer… » reste distinct et en rouge).
|
|
@@ -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
|
}
|
|
@@ -606,7 +606,7 @@ def doctor(
|
|
|
606
606
|
|
|
607
607
|
with _timed_phase("host_brake"): # P86 : le frein de la version d'hôte courante est-il prouvé ?
|
|
608
608
|
from grimoire.cli.doctor_brake import apply_host_brake_check
|
|
609
|
-
apply_host_brake_check(results, fmt=fmt, console=console)
|
|
609
|
+
apply_host_brake_check(results, fmt=fmt, console=console, project_root=target)
|
|
610
610
|
|
|
611
611
|
# 4quinquies. Override drift (issue #427) — un override est une copie ou
|
|
612
612
|
# une extension du kit, jamais une garantie qu'il en reçoit encore les
|
|
@@ -6,8 +6,6 @@ projet ; ses demandes de permission sont posées dans le terminal. Rien n'est ac
|
|
|
6
6
|
|
|
7
7
|
from __future__ import annotations
|
|
8
8
|
|
|
9
|
-
import os
|
|
10
|
-
import shlex
|
|
11
9
|
import sys
|
|
12
10
|
from pathlib import Path
|
|
13
11
|
from typing import Annotated
|
|
@@ -16,6 +14,7 @@ import typer
|
|
|
16
14
|
from rich.console import Console
|
|
17
15
|
|
|
18
16
|
from grimoire.acp import AcpClient, AcpError, PermissionRequest
|
|
17
|
+
from grimoire.core.command_line import split_command
|
|
19
18
|
from grimoire.hosts.capabilities import profile_for, resolve_host
|
|
20
19
|
|
|
21
20
|
console = Console(stderr=True)
|
|
@@ -23,19 +22,6 @@ console = Console(stderr=True)
|
|
|
23
22
|
_ALLOW = ("allow_once", "allow_always")
|
|
24
23
|
|
|
25
24
|
|
|
26
|
-
def split_command(text: str, *, posix: bool | None = None) -> tuple[str, ...]:
|
|
27
|
-
"""Découpe une ligne de commande comme le shell du système : sous Windows, l'antislash n'est pas un échappement.
|
|
28
|
-
|
|
29
|
-
``shlex`` en mode POSIX lit ``C:\\tools\\python.exe`` comme ``C:toolspython.exe`` (CI Windows du 2026-10-28) ;
|
|
30
|
-
hors POSIX, il garde les antislashs mais laisse les guillemets autour d'un argument, retirés ici.
|
|
31
|
-
"""
|
|
32
|
-
posix = os.name != "nt" if posix is None else posix
|
|
33
|
-
parts = shlex.split(text, posix=posix)
|
|
34
|
-
if not posix:
|
|
35
|
-
parts = [p[1:-1] if len(p) >= 2 and p[0] == p[-1] == '"' else p for p in parts]
|
|
36
|
-
return tuple(parts)
|
|
37
|
-
|
|
38
|
-
|
|
39
25
|
def ask_in_terminal(request: PermissionRequest) -> str | None:
|
|
40
26
|
"""Pose la demande au terminal ; une réponse vide, invalide ou un EOF annule."""
|
|
41
27
|
console.print(f"\n[bold yellow]Permission demandée[/bold yellow] (outil {request.tool_call_id})")
|
|
@@ -35,6 +35,7 @@ import typer
|
|
|
35
35
|
from rich.console import Console
|
|
36
36
|
from rich.table import Table
|
|
37
37
|
|
|
38
|
+
from grimoire.cli.cockpit_http import DRAIN_LIMIT, CountingReader, gzip_body, serve_asset, warm_sheet
|
|
38
39
|
from grimoire.data import site_script, web_path
|
|
39
40
|
from grimoire.tools.cockpit_registry_routes import REGISTRY_ROUTES, registry_post
|
|
40
41
|
from grimoire.tools.project_registry import (
|
|
@@ -82,12 +83,14 @@ console = Console(stderr=True)
|
|
|
82
83
|
# écrivent le même fichier, et deux copies de cette logique finiraient par
|
|
83
84
|
# diverger. Seul le dossier de service reste propre au cockpit.
|
|
84
85
|
|
|
86
|
+
|
|
85
87
|
def _serve_dir() -> Path:
|
|
86
88
|
return registry_home() / "serve"
|
|
87
89
|
|
|
88
90
|
|
|
89
91
|
# ── Daemon helpers (background start/stop) ────────────────────────────────────
|
|
90
92
|
|
|
93
|
+
|
|
91
94
|
def _read_state() -> dict[str, Any] | None:
|
|
92
95
|
"""État du démon, ``None`` quand il n'y en a pas — les appelants testent la
|
|
93
96
|
présence d'un cockpit démarré, pas le contenu d'un dictionnaire vide."""
|
|
@@ -128,6 +131,7 @@ def _terminate(pid: int) -> bool:
|
|
|
128
131
|
# ── Registry I/O ──────────────────────────────────────────────────────────────
|
|
129
132
|
# Délégué à ``grimoire.tools.project_registry`` (voir les imports en tête).
|
|
130
133
|
|
|
134
|
+
|
|
131
135
|
def _resolve_project_path(slug: str | None) -> Path | None:
|
|
132
136
|
"""Map a registry slug to its absolute project path (first project if slug is empty)."""
|
|
133
137
|
projects = load_registry()
|
|
@@ -276,66 +280,31 @@ def _run_memory_in_process(proot: Path, argv: list[str]) -> _CliResult:
|
|
|
276
280
|
pool.shutdown(wait=False)
|
|
277
281
|
|
|
278
282
|
|
|
279
|
-
#: Borne du drainage d'un corps refusé, comme ``request_guard.drain_body``.
|
|
280
|
-
_DRAIN_LIMIT = 1 << 20
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
class _CountingReader:
|
|
284
|
-
"""``rfile`` qui compte les octets lus — pour savoir ce qu'il reste du corps.
|
|
285
|
-
|
|
286
|
-
``http.client`` envoie l'en-tête et le corps en deux ``send`` distincts ;
|
|
287
|
-
sous charge, le serveur peut parser l'en-tête, refuser (403/404), répondre
|
|
288
|
-
et fermer avant que le corps n'arrive. Le corps atteint alors un socket
|
|
289
|
-
fermé : RST, que Windows répercute au client en jetant la réponse déjà
|
|
290
|
-
reçue (``WinError 10053``, #857). Compter ce qui a été lu permet à
|
|
291
|
-
:meth:`_CockpitHandler._drain_unread_body` de consommer *exactement* le
|
|
292
|
-
reste déclaré par ``Content-Length`` avant de répondre, sans jamais
|
|
293
|
-
bloquer sur un corps déjà lu.
|
|
294
|
-
"""
|
|
295
|
-
|
|
296
|
-
def __init__(self, raw: Any) -> None:
|
|
297
|
-
self._raw = raw
|
|
298
|
-
self.consumed = 0
|
|
299
|
-
|
|
300
|
-
def read(self, *args: Any) -> bytes:
|
|
301
|
-
data: bytes = self._raw.read(*args)
|
|
302
|
-
self.consumed += len(data)
|
|
303
|
-
return data
|
|
304
|
-
|
|
305
|
-
def readline(self, *args: Any) -> bytes:
|
|
306
|
-
data: bytes = self._raw.readline(*args)
|
|
307
|
-
self.consumed += len(data)
|
|
308
|
-
return data
|
|
309
|
-
|
|
310
|
-
def __getattr__(self, name: str) -> Any:
|
|
311
|
-
return getattr(self._raw, name)
|
|
312
|
-
|
|
313
|
-
|
|
314
283
|
class _CockpitHandler(SimpleHTTPRequestHandler):
|
|
315
284
|
"""Static file server + a tiny POST ``/api/memory`` governance endpoint."""
|
|
316
285
|
|
|
317
286
|
def log_message(self, *args: object) -> None:
|
|
318
287
|
return # quiet by default
|
|
319
288
|
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
289
|
+
# P94 : HTTP/1.1 et keep-alive — une connexion TCP sert plusieurs requêtes.
|
|
290
|
+
# Chaque réponse porte un ``Content-Length`` ; seuls les flux SSE
|
|
291
|
+
# (``Connection: close``) n'en ont pas. Un client silencieux libère son
|
|
292
|
+
# fil au bout de ``timeout`` secondes.
|
|
293
|
+
protocol_version = "HTTP/1.1"
|
|
294
|
+
timeout = 60
|
|
295
|
+
# En-tête et corps partent en deux écritures : sans cela, Nagle + ACK différé
|
|
296
|
+
# retardent le corps d'~40 ms par réponse sur une connexion qui reste ouverte.
|
|
297
|
+
disable_nagle_algorithm = True
|
|
329
298
|
|
|
330
299
|
def setup(self) -> None:
|
|
331
300
|
super().setup()
|
|
332
|
-
self.rfile =
|
|
301
|
+
self.rfile = CountingReader(self.rfile) # type: ignore[assignment]
|
|
333
302
|
|
|
334
303
|
def parse_request(self) -> bool:
|
|
335
304
|
ok = super().parse_request()
|
|
336
305
|
# Les octets lus jusqu'ici sont la ligne de requête et les en-têtes ;
|
|
337
306
|
# à partir de maintenant, le compteur ne mesure que le corps.
|
|
338
|
-
cast(
|
|
307
|
+
cast(CountingReader, self.rfile).consumed = 0
|
|
339
308
|
return ok
|
|
340
309
|
|
|
341
310
|
def _drain_unread_body(self) -> None:
|
|
@@ -346,12 +315,12 @@ class _CockpitHandler(SimpleHTTPRequestHandler):
|
|
|
346
315
|
réponse (``ConnectionAbortedError``). Le reste est borné par
|
|
347
316
|
``Content-Length`` et ignoré, jamais interprété.
|
|
348
317
|
"""
|
|
349
|
-
rfile = cast(
|
|
318
|
+
rfile = cast(CountingReader, self.rfile)
|
|
350
319
|
try:
|
|
351
320
|
declared = int(self.headers.get("Content-Length") or 0)
|
|
352
321
|
except (ValueError, TypeError):
|
|
353
322
|
return
|
|
354
|
-
remaining = min(declared - rfile.consumed,
|
|
323
|
+
remaining = min(declared - rfile.consumed, DRAIN_LIMIT)
|
|
355
324
|
if remaining > 0:
|
|
356
325
|
with contextlib.suppress(OSError, ValueError):
|
|
357
326
|
rfile.read(remaining)
|
|
@@ -406,11 +375,13 @@ class _CockpitHandler(SimpleHTTPRequestHandler):
|
|
|
406
375
|
# (``HTTP/1.0``), l'en-tête le dit au client, et le tampon est vidé
|
|
407
376
|
# avant que ``finish`` ne ferme le socket.
|
|
408
377
|
self._drain_unread_body()
|
|
409
|
-
body = json.dumps(payload).encode("utf-8")
|
|
378
|
+
body = json.dumps(payload, separators=(",", ":")).encode("utf-8")
|
|
410
379
|
self.send_response(code)
|
|
411
380
|
self.send_header("Content-Type", "application/json; charset=utf-8")
|
|
381
|
+
body = gzip_body(self, body)
|
|
412
382
|
self.send_header("Content-Length", str(len(body)))
|
|
413
|
-
self.
|
|
383
|
+
if self.close_connection: # le client l'a demandé (ou l'erreur de requête l'impose) : on le dit
|
|
384
|
+
self.send_header("Connection", "close")
|
|
414
385
|
self.end_headers()
|
|
415
386
|
self.wfile.write(body)
|
|
416
387
|
self.wfile.flush()
|
|
@@ -445,16 +416,20 @@ class _CockpitHandler(SimpleHTTPRequestHandler):
|
|
|
445
416
|
target = Path(self.translate_path(self.path))
|
|
446
417
|
if target.is_dir():
|
|
447
418
|
target = target / "index.html"
|
|
448
|
-
if
|
|
419
|
+
if not target.is_file():
|
|
449
420
|
super().do_GET()
|
|
450
421
|
return
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
422
|
+
if target.suffix.lower() == ".html":
|
|
423
|
+
body = inject_session_token(target.read_bytes())
|
|
424
|
+
self.send_response(200)
|
|
425
|
+
self.send_header("Content-Type", "text/html; charset=utf-8")
|
|
426
|
+
self.send_header("Cache-Control", "no-store")
|
|
427
|
+
body = gzip_body(self, body)
|
|
428
|
+
self.send_header("Content-Length", str(len(body)))
|
|
429
|
+
self.end_headers()
|
|
430
|
+
self.wfile.write(body)
|
|
431
|
+
return
|
|
432
|
+
serve_asset(self, target)
|
|
458
433
|
|
|
459
434
|
def do_GET(self) -> None: # http.server contract
|
|
460
435
|
parsed = urlparse(self.path)
|
|
@@ -505,6 +480,8 @@ class _CockpitHandler(SimpleHTTPRequestHandler):
|
|
|
505
480
|
self.send_response(200)
|
|
506
481
|
for name, value in STREAM_HEADERS:
|
|
507
482
|
self.send_header(name, value)
|
|
483
|
+
# Un flux n'a pas de longueur : sous HTTP/1.1 il se clôt avec la connexion.
|
|
484
|
+
self.send_header("Connection", "close")
|
|
508
485
|
self.end_headers()
|
|
509
486
|
self.close_connection = True
|
|
510
487
|
try:
|
|
@@ -882,6 +859,7 @@ class _CockpitHandler(SimpleHTTPRequestHandler):
|
|
|
882
859
|
return
|
|
883
860
|
if gesture:
|
|
884
861
|
from grimoire.tools.workspace_memory_gestures import handle as memory_gesture
|
|
862
|
+
|
|
885
863
|
self._send_json(*memory_gesture(proot, data))
|
|
886
864
|
return
|
|
887
865
|
subcmd = action
|
|
@@ -919,11 +897,17 @@ class _CockpitHandler(SimpleHTTPRequestHandler):
|
|
|
919
897
|
except TimeoutError:
|
|
920
898
|
self._send_json(504, {"ok": False, "error": "timeout"})
|
|
921
899
|
return
|
|
922
|
-
self._send_json(
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
900
|
+
self._send_json(
|
|
901
|
+
200,
|
|
902
|
+
{
|
|
903
|
+
"ok": res.returncode == 0,
|
|
904
|
+
"code": res.returncode,
|
|
905
|
+
"stdout": res.stdout,
|
|
906
|
+
"stderr": res.stderr,
|
|
907
|
+
"action": action,
|
|
908
|
+
"mutation": is_mutation,
|
|
909
|
+
},
|
|
910
|
+
)
|
|
927
911
|
|
|
928
912
|
def do_PUT(self) -> None: # http.server contract
|
|
929
913
|
"""``PUT /api/blueprints/<id>`` — enregistrer un blueprint (issue #535).
|
|
@@ -969,6 +953,7 @@ class _CockpitHandler(SimpleHTTPRequestHandler):
|
|
|
969
953
|
|
|
970
954
|
# ── Commands ──────────────────────────────────────────────────────────────────
|
|
971
955
|
|
|
956
|
+
|
|
972
957
|
@cockpit_app.command("add")
|
|
973
958
|
def add(
|
|
974
959
|
path: Annotated[Path, typer.Argument(help="Path to a local Grimoire project.")],
|
|
@@ -1271,7 +1256,9 @@ def _generate_data(serve_dir: Path, with_tests: bool) -> bool:
|
|
|
1271
1256
|
|
|
1272
1257
|
@cockpit_app.command("refresh")
|
|
1273
1258
|
def refresh(
|
|
1274
|
-
with_tests: Annotated[
|
|
1259
|
+
with_tests: Annotated[
|
|
1260
|
+
bool, typer.Option("--with-tests", help="Run pytest --collect-only per project (slow).")
|
|
1261
|
+
] = False,
|
|
1275
1262
|
) -> None:
|
|
1276
1263
|
"""Regenerate the cockpit data layer without serving."""
|
|
1277
1264
|
serve_dir = _serve_dir()
|
|
@@ -1279,8 +1266,7 @@ def refresh(
|
|
|
1279
1266
|
if _generate_data(serve_dir, with_tests):
|
|
1280
1267
|
console.print(f"[green]✓[/green] Données régénérées → {serve_dir / 'data'}")
|
|
1281
1268
|
else:
|
|
1282
|
-
console.print("[dim]Aucun projet enregistré — rien à générer. "
|
|
1283
|
-
"[b]grimoire cockpit scan <dossier>[/b][/dim]")
|
|
1269
|
+
console.print("[dim]Aucun projet enregistré — rien à générer. [b]grimoire cockpit scan <dossier>[/b][/dim]")
|
|
1284
1270
|
|
|
1285
1271
|
|
|
1286
1272
|
@cockpit_app.command("serve")
|
|
@@ -1288,7 +1274,9 @@ def serve(
|
|
|
1288
1274
|
port: Annotated[int, typer.Option("--port", "-p", help="Local port.")] = 8420,
|
|
1289
1275
|
open_browser: Annotated[bool, typer.Option("--open/--no-open", help="Open the browser.")] = True,
|
|
1290
1276
|
do_refresh: Annotated[bool, typer.Option("--refresh/--no-refresh", help="Regenerate data before serving.")] = True,
|
|
1291
|
-
with_tests: Annotated[
|
|
1277
|
+
with_tests: Annotated[
|
|
1278
|
+
bool, typer.Option("--with-tests", help="Run pytest --collect-only per project (slow).")
|
|
1279
|
+
] = False,
|
|
1292
1280
|
project_root: Annotated[
|
|
1293
1281
|
Path | None,
|
|
1294
1282
|
typer.Option("--project-root", help="Projet à ouvrir (défaut : dossier courant)."),
|
|
@@ -1305,8 +1293,10 @@ def serve(
|
|
|
1305
1293
|
console.print("[green]✓[/green] Data layer régénéré depuis le registre.")
|
|
1306
1294
|
else:
|
|
1307
1295
|
console.print("[dim]Registre vide → cockpit vide (aucune donnée inventée).[/dim]")
|
|
1308
|
-
console.print(
|
|
1309
|
-
|
|
1296
|
+
console.print(
|
|
1297
|
+
"[dim]Ajoute des projets : [b]grimoire cockpit add <path>[/b] "
|
|
1298
|
+
"ou [b]grimoire cockpit scan <dossier>[/b][/dim]"
|
|
1299
|
+
)
|
|
1310
1300
|
if cwd_notice is None:
|
|
1311
1301
|
notice = _unregistered_cwd_notice(load_registry())
|
|
1312
1302
|
if notice:
|
|
@@ -1330,6 +1320,10 @@ def serve(
|
|
|
1330
1320
|
console.print(f"[bold green]Cockpit[/bold green] → [link]{url}[/link] [dim](Ctrl-C pour arrêter)[/dim]")
|
|
1331
1321
|
if open_browser:
|
|
1332
1322
|
webbrowser.open(url)
|
|
1323
|
+
if _HOME_PATH is not None:
|
|
1324
|
+
# P94 : la première lecture de la fiche paie imports et caches froids ;
|
|
1325
|
+
# elle se fait ici, avant que la page ne la demande.
|
|
1326
|
+
threading.Thread(target=warm_sheet, args=(_HOME_PATH,), daemon=True).start()
|
|
1333
1327
|
try:
|
|
1334
1328
|
httpd.serve_forever()
|
|
1335
1329
|
except KeyboardInterrupt:
|
|
@@ -1342,7 +1336,9 @@ def serve(
|
|
|
1342
1336
|
def start(
|
|
1343
1337
|
port: Annotated[int, typer.Option("--port", "-p", help="Local port.")] = 8420,
|
|
1344
1338
|
open_browser: Annotated[bool, typer.Option("--open/--no-open", help="Open the browser.")] = True,
|
|
1345
|
-
with_tests: Annotated[
|
|
1339
|
+
with_tests: Annotated[
|
|
1340
|
+
bool, typer.Option("--with-tests", help="Run pytest --collect-only per project (slow).")
|
|
1341
|
+
] = False,
|
|
1346
1342
|
) -> None:
|
|
1347
1343
|
"""Start the cockpit in the background (non-blocking) and open it."""
|
|
1348
1344
|
state = _read_state()
|
|
@@ -1361,11 +1357,11 @@ def start(
|
|
|
1361
1357
|
if _generate_data(serve_dir, with_tests):
|
|
1362
1358
|
console.print("[green]✓[/green] Data layer régénéré depuis le registre.")
|
|
1363
1359
|
else:
|
|
1364
|
-
console.print(
|
|
1365
|
-
|
|
1360
|
+
console.print(
|
|
1361
|
+
"[dim]Registre vide → cockpit vide. [b]grimoire cockpit add <path>[/b] ou [b]scan <dossier>[/b][/dim]"
|
|
1362
|
+
)
|
|
1366
1363
|
|
|
1367
|
-
cmd = [sys.executable, "-m", "grimoire", "cockpit", "serve",
|
|
1368
|
-
"--port", str(port), "--no-open", "--no-refresh"]
|
|
1364
|
+
cmd = [sys.executable, "-m", "grimoire", "cockpit", "serve", "--port", str(port), "--no-open", "--no-refresh"]
|
|
1369
1365
|
pid = _spawn_detached(cmd)
|
|
1370
1366
|
url = f"http://127.0.0.1:{port}/workspace/index.html"
|
|
1371
1367
|
for _ in range(24):
|
|
@@ -1423,15 +1419,21 @@ def status() -> None:
|
|
|
1423
1419
|
# Le parcours est dans ``project_registry`` : ``grimoire serve`` expose la même
|
|
1424
1420
|
# découverte depuis l'atelier (POST /api/projects/scan).
|
|
1425
1421
|
|
|
1422
|
+
|
|
1426
1423
|
@cockpit_app.command("scan")
|
|
1427
1424
|
def scan(
|
|
1428
1425
|
root: Annotated[Path, typer.Argument(help="Root directory to crawl for local projects.")],
|
|
1429
1426
|
depth: Annotated[int, typer.Option("--depth", help="Maximum crawl depth.")] = 4,
|
|
1430
|
-
yes: Annotated[
|
|
1431
|
-
|
|
1432
|
-
|
|
1433
|
-
|
|
1434
|
-
|
|
1427
|
+
yes: Annotated[
|
|
1428
|
+
bool, typer.Option("--yes", "-y", help="Enrol all grimoire-managed projects without prompting.")
|
|
1429
|
+
] = False,
|
|
1430
|
+
include_uninitialized: Annotated[
|
|
1431
|
+
bool,
|
|
1432
|
+
typer.Option(
|
|
1433
|
+
"--include-uninitialized",
|
|
1434
|
+
help="Also enrol bare git repos that are not grimoire-initialized.",
|
|
1435
|
+
),
|
|
1436
|
+
] = False,
|
|
1435
1437
|
) -> None:
|
|
1436
1438
|
"""Discover projects under a root directory and enrol them in the cockpit."""
|
|
1437
1439
|
base = root.expanduser().resolve()
|
|
@@ -1459,10 +1461,7 @@ def scan(
|
|
|
1459
1461
|
table.add_row(_rel(cand.path), kind, reg)
|
|
1460
1462
|
console.print(table)
|
|
1461
1463
|
|
|
1462
|
-
to_enrol = [
|
|
1463
|
-
c for c in candidates
|
|
1464
|
-
if (c.managed or include_uninitialized) and str(c.path) not in registered_paths
|
|
1465
|
-
]
|
|
1464
|
+
to_enrol = [c for c in candidates if (c.managed or include_uninitialized) and str(c.path) not in registered_paths]
|
|
1466
1465
|
uninitialized = [c for c in candidates if not c.managed]
|
|
1467
1466
|
|
|
1468
1467
|
if to_enrol:
|
|
@@ -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]")
|
|
@@ -900,6 +900,36 @@ def memory_recall(
|
|
|
900
900
|
console.print(tbl)
|
|
901
901
|
|
|
902
902
|
|
|
903
|
+
# ── grimoire memory correct propose (P42) ──────────────────────────────────
|
|
904
|
+
|
|
905
|
+
|
|
906
|
+
correct_app = typer.Typer(help="Correction mémoire déléguée : l'agent propose, l'humain accepte.")
|
|
907
|
+
memory_app.add_typer(correct_app, name="correct")
|
|
908
|
+
|
|
909
|
+
|
|
910
|
+
@correct_app.command("propose")
|
|
911
|
+
def memory_correct_propose(
|
|
912
|
+
task_id: str = typer.Argument(..., help="Tâche de correction ouverte par « Demander une correction »."),
|
|
913
|
+
action: str = typer.Option(..., "--action", help="replace | merge | attach_source | retract."),
|
|
914
|
+
text: str = typer.Option("", "--text", help="Texte corrigé (replace, merge)."),
|
|
915
|
+
source: str = typer.Option("", "--source", help="Source à rattacher (attach_source)."),
|
|
916
|
+
reason: str = typer.Option("", "--reason", help="Raison (retract)."),
|
|
917
|
+
by: str = typer.Option("", "--by", help="Qui propose (agent ou session)."),
|
|
918
|
+
) -> None:
|
|
919
|
+
"""Déposer la correction comme proposition à accepter ou refuser — sans écrire dans la mémoire."""
|
|
920
|
+
from grimoire.memory.correction import propose_correction
|
|
921
|
+
|
|
922
|
+
_, root = _load_config_context()
|
|
923
|
+
try:
|
|
924
|
+
out = propose_correction(
|
|
925
|
+
root, task_id, action=action, text=text, source=source, reason=reason, proposed_by=by
|
|
926
|
+
)
|
|
927
|
+
except (ValueError, GrimoireMemoryError) as exc:
|
|
928
|
+
console.print(f"[red]{exc}[/red]")
|
|
929
|
+
raise typer.Exit(1) from None
|
|
930
|
+
console.print(f"Proposition {out['slug']} déposée (en attente) — à accepter : grimoire proposals accept {out['slug']}")
|
|
931
|
+
|
|
932
|
+
|
|
903
933
|
# ── grimoire memory list ──────────────────────────────────────────────────────
|
|
904
934
|
|
|
905
935
|
|