grimoire-kit 3.83.0__tar.gz → 3.84.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.83.0 → grimoire_kit-3.84.0}/CHANGELOG.md +6 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/PKG-INFO +1 -1
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/registry/kit-file-hashes.json +1 -1
- grimoire_kit-3.84.0/src/grimoire/__version__.py +1 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_cockpit.py +14 -4
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cockpit_write_target.py +68 -3
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/project_registry.py +30 -0
- grimoire_kit-3.84.0/src/grimoire/tools/workspace_accept_merged.py +211 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_providers_write.py +8 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_routes.py +11 -4
- grimoire_kit-3.84.0/version.txt +1 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/workspace/README.md +47 -9
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/workspace/api.js +77 -9
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/workspace/chat.js +8 -2
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/workspace/shell.js +9 -2
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/workspace/spaces/configurer.js +147 -1
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/workspace/spaces/executer.js +93 -1
- grimoire_kit-3.83.0/src/grimoire/__version__.py +0 -1
- grimoire_kit-3.83.0/version.txt +0 -1
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/.gitignore +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/LICENSE +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/README.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/_grimoire/_config/custom/prompt-templates/README.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/archetypes/agentic-standard/archetype.dna.yaml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/archetypes/agentic-standard/shared-context.tpl.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/archetypes/creative-studio/agents/blender-expert.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/archetypes/creative-studio/agents/brand-designer.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/archetypes/creative-studio/agents/illustration-expert.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/archetypes/creative-studio/archetype.dna.yaml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/archetypes/creative-studio/shared-context.tpl.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/archetypes/creative-studio/skills/creative-content-copywriting.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/archetypes/features/vector-memory/vectus.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/archetypes/fix-loop/README.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/archetypes/fix-loop/agents/fix-loop-orchestrator.tpl.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/archetypes/fix-loop/archetype.dna.yaml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/archetypes/fix-loop/workflows/workflow-closed-loop-fix.tpl.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/archetypes/infra-ops/agents/monitoring-specialist.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/archetypes/infra-ops/agents/ops-engineer.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/archetypes/infra-ops/agents/systems-debugger.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/archetypes/infra-ops/archetype.dna.yaml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/archetypes/infra-ops/shared-context.tpl.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/archetypes/infra-ops/skills/infra-backup-dr.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/archetypes/infra-ops/skills/infra-k8s-gitops.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/archetypes/infra-ops/skills/infra-pipeline-cicd.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/archetypes/infra-ops/skills/infra-security-hardening.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/archetypes/meta/agents/agent-optimizer.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/archetypes/meta/agents/concierge.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/archetypes/meta/agents/security-auditor.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/archetypes/meta/archetype.dna.yaml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/archetypes/meta/skills/meta-art-direction.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/archetypes/meta/skills/meta-memory-quality.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/archetypes/meta/skills/meta-project-navigation.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/archetypes/meta/skills/meta-toolsmithing.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/archetypes/meta/skills/upgrade-review.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/archetypes/minimal/agents/custom-agent.tpl.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/archetypes/minimal/archetype.dna.yaml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/archetypes/platform-engineering/agents/backend-engineer.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/archetypes/platform-engineering/agents/platform-architect.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/archetypes/platform-engineering/archetype.dna.yaml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/archetypes/platform-engineering/shared-context.tpl.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/archetypes/platform-engineering/skills/platform-deploy-release.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/archetypes/platform-engineering/skills/platform-reliability-sre.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/archetypes/platform-engineering/templates/architecture.tpl.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/archetypes/stack/agents/stack-engineer.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/archetypes/stack/archetype.dna.yaml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/archetypes/stack/skills/stack-ansible.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/archetypes/stack/skills/stack-docker.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/archetypes/stack/skills/stack-go.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/archetypes/stack/skills/stack-k8s.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/archetypes/stack/skills/stack-python.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/archetypes/stack/skills/stack-terraform.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/archetypes/stack/skills/stack-typescript.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/archetypes/web-app/agents/fullstack-dev.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/archetypes/web-app/archetype.dna.yaml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/archetypes/web-app/shared-context.tpl.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/archetypes/web-app/skills/web-frontend-ux.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/changelog.d/README.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/docs/assets/captures/i1/README.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/docs/assets/captures/p47/README.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/docs/captures/p42-correction/README.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/evals/README.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/evals/witnesses/README.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/evals/witnesses/web-app-todo/activated/README.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/evals/witnesses/web-app-todo/app/README.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/evals/witnesses/web-app-todo/app/web/index.html +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/evals/witnesses/web-app-todo/app/web/package-lock.json +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/evals/witnesses/web-app-todo/app/web/package.json +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/evals/witnesses/web-app-todo/app/web/src/App.tsx +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/evals/witnesses/web-app-todo/app/web/src/components/AddTaskForm.tsx +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/evals/witnesses/web-app-todo/app/web/src/components/TaskItem.tsx +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/evals/witnesses/web-app-todo/app/web/src/components/TaskList.tsx +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/evals/witnesses/web-app-todo/app/web/src/main.tsx +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/evals/witnesses/web-app-todo/app/web/src/styles.css +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/evals/witnesses/web-app-todo/app/web/src/test/AddTaskForm.test.tsx +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/evals/witnesses/web-app-todo/app/web/src/test/TaskList.test.tsx +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/evals/witnesses/web-app-todo/app/web/src/test/setup.ts +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/evals/witnesses/web-app-todo/app/web/src/types.ts +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/evals/witnesses/web-app-todo/app/web/tsconfig.json +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/evals/witnesses/web-app-todo/app/web/vite.config.ts +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/evals/witnesses/web-app-todo/enforced/README.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/examples/README.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/examples/blueprint-minimal/README.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/examples/blueprint-web-pipeline/README.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/examples/terraform-houseserver/README.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/examples/web-app-todo/README.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/extensions/README.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/extensions/autogen/artifacts/agents/autogen-conversation-runner.agent.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/extensions/autogen/artifacts/skills/autogen-conversation-design/SKILL.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/extensions/autogen/extension.json +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/extensions/autogen/scripts/verify-install.sh +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/extensions/browser-use/artifacts/agents/browser-use-runner.agent.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/extensions/browser-use/artifacts/instructions/browser-evidence.instructions.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/extensions/browser-use/extension.json +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/extensions/browser-use/scripts/verify-install.sh +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/extensions/crewai/artifacts/agents/crewai-crew-runner.agent.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/extensions/crewai/artifacts/hooks/crewai-telemetry-bridge.json +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/extensions/crewai/artifacts/hooks/crewai-telemetry-bridge.sh +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/extensions/crewai/artifacts/prompts/crewai-import-crew.prompt.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/extensions/crewai/artifacts/skills/crewai-crew-design/SKILL.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/extensions/crewai/extension.json +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/extensions/crewai/scripts/register-hooks.sh +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/extensions/crewai/scripts/unregister-hooks.sh +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/extensions/crewai/scripts/verify-install.sh +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/extensions/extension.schema.json +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/extensions/fennara-godot/artifacts/skills/godot-evidence-loop/SKILL.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/extensions/fennara-godot/extension.json +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/extensions/fennara-godot/scripts/setup-mcp.sh +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/extensions/fennara-godot/scripts/teardown-mcp.sh +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/extensions/fennara-godot/scripts/verify-install.sh +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/extensions/grimoire-mcp/artifacts/instructions/mcp-trust-gate.instructions.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/extensions/grimoire-mcp/artifacts/skills/grimoire-mcp-setup/SKILL.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/extensions/grimoire-mcp/extension.json +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/extensions/grimoire-mcp/scripts/verify-install.sh +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/extensions/haystack/artifacts/instructions/haystack-rag-governance.instructions.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/extensions/haystack/artifacts/skills/haystack-pipeline-design/SKILL.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/extensions/haystack/extension.json +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/extensions/haystack/scripts/verify-install.sh +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/extensions/langfuse/artifacts/hooks/langfuse-trace-export.json +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/extensions/langfuse/artifacts/hooks/langfuse-trace-export.sh +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/extensions/langfuse/artifacts/instructions/langfuse-observability.instructions.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/extensions/langfuse/artifacts/skills/langfuse-tracing-setup/SKILL.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/extensions/langfuse/extension.json +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/extensions/langfuse/scripts/register-hooks.sh +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/extensions/langfuse/scripts/unregister-hooks.sh +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/extensions/langfuse/scripts/verify-install.sh +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/extensions/langgraph/artifacts/agents/langgraph-graph-runner.agent.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/extensions/langgraph/artifacts/prompts/langgraph-import-graph.prompt.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/extensions/langgraph/artifacts/skills/langgraph-graph-design/SKILL.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/extensions/langgraph/extension.json +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/extensions/langgraph/scripts/verify-install.sh +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/FREEZE.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/agent-base-compact.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/agent-base.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/agent-mesh-network.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/agent-relationship-graph.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/agent-rules.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/agent2agent.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/agentic-industry-reference.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/agentic-standard/README.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/agentic-standard/capability-map.yaml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/agentic-standard/needs-catalog.yaml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/agentic-standard/profile-map.yaml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/agentic-standard/target-schema.yaml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/acceptance-record.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/accepted-risks.yaml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/blast-radius-policy.yaml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/browser-tool-contract.yaml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/capability-registry.yaml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/claim-ledger.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/cluster-action-policy.yaml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/compliance-declaration.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/compliance-score.yaml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/compression-gate.yaml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/context-contract.yaml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/cost-registry.yaml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/decision-council.yaml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/decision-graph.yaml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/doc-graph-pipeline.yaml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/environment-policy.yaml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/evidence-gates.yaml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/evidence-pack.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/flow-dsl-manifest.yaml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/guardrail-contract.yaml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/hook-registry.yaml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/incident-registry.yaml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/k8s-agent-manifest.yaml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/knowledge-source-registry.yaml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/llm-provider-registry.yaml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/memory-integrity.yaml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/memory-policy.yaml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/merge-lane.yaml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/mission-brief.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/observability-policy.yaml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/orchestration-policy.yaml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/pattern-catalog.yaml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/privilege-boundary.yaml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/prompt-firewall.yaml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/prompt-version-log.yaml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/remediation-plan.yaml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/remote-hygiene.yaml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/retention-registry.yaml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/risk-control-matrix.yaml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/rule-packs.yaml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/runtime-provider-contract.yaml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/runtime-surface-registry.yaml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/task-board.yaml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/task-envelope.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/tool-registry.yaml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/visual-evidence.yaml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/waivers.yaml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/workflow-state-manifest.yaml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/agentic-standard/templates/workspace-isolation.yaml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/agentic-standard/traceability.yaml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/archetype-dna.schema.yaml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/cc-reference.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/cc-verify.sh +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/context-router.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/copilot/instructions/grimoire-project.instructions.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/copilot/prompts/grimoire-changelog.prompt.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/copilot/prompts/grimoire-dream.prompt.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/copilot/prompts/grimoire-health-check.prompt.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/copilot/prompts/grimoire-pre-push.prompt.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/copilot/prompts/grimoire-self-heal.prompt.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/copilot/prompts/grimoire-session-bootstrap.prompt.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/copilot/prompts/grimoire-status.prompt.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/copilot/prompts/grimoire-upgrade-review.prompt.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/copilot-extension/README.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/cross-validation-trust.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/delivery-contract.tpl.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/event-log-shared-state.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/expertises/skills/expertise-architecture-haut-niveau.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/expertises/skills/expertise-aws.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/expertises/skills/expertise-azure.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/expertises/skills/expertise-c.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/expertises/skills/expertise-cloudflare.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/expertises/skills/expertise-cpp.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/expertises/skills/expertise-csharp.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/expertises/skills/expertise-design-patterns.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/expertises/skills/expertise-elixir.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/expertises/skills/expertise-gcp.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/expertises/skills/expertise-hetzner.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/expertises/skills/expertise-java.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/expertises/skills/expertise-kotlin.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/expertises/skills/expertise-kubernetes-managed.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/expertises/skills/expertise-ovh.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/expertises/skills/expertise-performance.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/expertises/skills/expertise-php.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/expertises/skills/expertise-ruby.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/expertises/skills/expertise-rust.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/expertises/skills/expertise-scala.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/expertises/skills/expertise-scaleway.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/expertises/skills/expertise-securite-applicative.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/expertises/skills/expertise-swift.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/expertises/skills/expertise-systemes-bas-niveau.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/expertises/skills/expertise-testing-avancee.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/glossary.yaml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/grimoire-trace.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/honest-uncertainty-protocol.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/hooks/.pre-commit-config.tpl.yaml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/hooks/commit-msg.sh +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/hooks/mnemo-consolidate.sh +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/hooks/post-checkout.sh +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/hooks/post-commit.sh +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/hooks/pre-commit-cc.sh +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/hooks/pre-push.sh +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/hooks/prepare-commit-msg.sh +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/hosts/commands/grimoire-doctor.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/hosts/commands/grimoire-gate.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/hosts/commands/grimoire-proof.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/hosts/commands/grimoire-recall.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/hosts/commands/grimoire-verify.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/hosts/skills/grimoire-agent-dispatch.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/hosts/skills/grimoire-evidence.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/hosts/skills/grimoire-memory.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/hosts/skills/grimoire-steward.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/hybrid-parallelism-engine.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/mcp/grimoire-mcp-server.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/memory/.gitignore +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/memory/backends/__init__.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/memory/backends/backend_lexical.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/memory/backends/backend_local.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/memory/backends/backend_ollama.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/memory/backends/backend_qdrant_local.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/memory/backends/backend_qdrant_server.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/memory/contradiction-log.tpl.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/memory/dependency-graph.tpl.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/memory/docker-compose.memory-target.tpl.yml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/memory/docker-compose.memory.tpl.yml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/memory/failure-museum.tpl.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/memory/handoff-log.tpl.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/memory/k8s-qdrant.tpl.yaml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/memory/maintenance.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/memory/mem0-bridge.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/memory/memory_seed.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/memory/network-topology.tpl.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/memory/oss-references.tpl.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/memory/requirements/requirements-minimal.txt +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/memory/requirements/requirements-ollama.txt +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/memory/requirements/requirements-qdrant.txt +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/memory/requirements.txt +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/memory/session-save.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/orchestrator-gateway.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/productive-conflict-engine.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/prompt-templates/README.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/prompt-templates/audit-report.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/prompt-templates/capacity-planning.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/prompt-templates/compliance-check.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/prompt-templates/dependency-updates.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/prompt-templates/design-tokens.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/prompt-templates/network-troubleshoot.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/prompt-templates/operational-mode.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/prompt-templates/periodic-report.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/prompt-templates/secret-rotation.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/prompt-templates/strategic-plan.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/prompt-templates/troubleshoot.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/question-escalation-chain.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/registry/README.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/selective-huddle-protocol.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/sessions/README.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/sil-collect.sh +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/tools/README.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/tools/adversarial-consensus.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/tools/agent-bench.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/tools/agent-caller.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/tools/agent-darwinism.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/tools/agent-debugger.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/tools/agent-forge.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/tools/agent-integrity.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/tools/agent-test.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/tools/agent-watch.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/tools/agent-worker.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/tools/antifragile-score.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/tools/auto-doc.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/tools/context-guard.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/tools/context-summarizer.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/tools/cross-migrate.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/tools/dep-check.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/tools/distill.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/tools/dna-evolve.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/tools/dream.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/tools/expert-tool-chain.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/tools/failure-museum.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/tools/gen-tests.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/tools/grimoire-completion.zsh +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/tools/grimoire-mcp-tools.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/tools/grimoire-setup.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/tools/image-prompt.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/tools/incubator.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/tools/llm-router.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/tools/memory-lint.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/tools/memory-sync.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/tools/message-bus.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/tools/nso.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/tools/observatory.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/tools/preflight-check.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/tools/quick-check.sh +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/tools/rag-indexer.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/tools/rag-retriever.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/tools/reasoning-stream.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/tools/schema-validator.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/tools/session-lifecycle.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/tools/stigmergy.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/tools/stigmergy_hooks/scripts/stigmergy-emit-post-edit.sh +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/tools/stigmergy_hooks/scripts/stigmergy-emit-stop.sh +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/tools/stigmergy_hooks/scripts/stigmergy-sense.sh +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/tools/stigmergy_hooks/scripts/stigmergy_hook.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/tools/stigmergy_hooks/stigmergy-emit.json +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/tools/stigmergy_hooks/stigmergy-sense.json +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/tools/swarm-consensus.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/tools/synapse-trace.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/tools/token-budget.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/tools/tool-registry.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/tools/tool-resolver.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/tools/vision-judge.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/tools/web-browser.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/workflows/boomerang-orchestration.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/workflows/github-cc-check.yml.tpl +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/workflows/incident-response.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/workflows/party-mode.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/workflows/repo-map-generator.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/workflows/state-checkpoint.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/workflows/subagent-orchestration.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/workflows/workflow-graph.tpl.yaml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/framework/workflows/workflow-status.tpl.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/planning/README.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/pyproject.toml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/registry/blueprints/README.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/registry/blueprints/project-upgrade.blueprint.json +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/registry/expertises.yaml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/rust/grimoire-acp-core/pyproject.toml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/rust/grimoire-dispatch-core/pyproject.toml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/rust/grimoire-flows-core/pyproject.toml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/rust/grimoire-hosts-core/pyproject.toml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/rust/grimoire-policies-core/pyproject.toml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/rust/grimoire-schema-core/pyproject.toml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/rust/grimoire-traces-core/pyproject.toml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/scripts/gen-site-data.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/__init__.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/__main__.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/acp/__init__.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/acp/client.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/acp/machine.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/archetypes/__init__.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/bridges/__init__.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/bridges/a2a_adapter.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/bridges/host.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/bridges/schemas.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/__init__.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/_condensed_help.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/_lazy.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/_lazy_extra.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/_registry_dispatches_report.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/_shared.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/app.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_agent.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_autonomy.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_blueprint.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_blueprint_import.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_cadrage.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_ceremony.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_chat.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_context_pack.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_debugger.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_digest.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_dispatch.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_evidence.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_expertise.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_ext.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_features.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_flow.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_gates.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_hooks.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_host.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_idea.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_init.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_mcp.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_memory.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_memory_bundle.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_memory_gestures.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_memory_knowledge.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_memory_lexical.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_memory_ops.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_memory_packs.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_memory_projections.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_memory_rules.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_memory_shared.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_merge.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_migrate.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_mission.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_needs.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_onboard.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_orchestrate.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_phase.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_plans.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_policies.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_proposals.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_providers.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_queue.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_route.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_self_bundle.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_self_update.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_serve.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_setup.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_standard.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_standard_claims.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_steward.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_stigmergy.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_task.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_task_a2a.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_task_add.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_task_approve.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_task_import.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_task_portfolio.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_task_questions.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_task_review.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_task_usage.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_task_waiting.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_task_wave.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_task_worktree.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_team.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_up.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_up_prove.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_up_task_unification.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_upgrade.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_upgrade_flow.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_verify_install.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_web.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cmd_workflows.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cockpit_http.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/cockpit_memory.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/doctor_acp.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/doctor_brake.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/doctor_hooks.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/doctor_instructions.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/doctor_mcp.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/doctor_memory.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/doctor_notify.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/doctor_skills.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/env_checks.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/init_memory.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/init_questions.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/cli/updater.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/codegraph/__init__.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/codegraph/backends/__init__.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/codegraph/backends/neo4j.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/codegraph/freshness.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/codegraph/graph.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/codegraph/parser.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/codegraph/schemas.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/__init__.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/agent_freshness.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/agentic_standard.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/ansi.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/archetype_resolver.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/cadrage.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/cadrage_requirements.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/claude_activation.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/command_line.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/config.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/console_encoding.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/context_bundle_memory.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/deprecation.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/error_codes.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/exceptions.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/execution_needs.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/expertises.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/fsio.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/grounding.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/integrity.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/kit_hashes.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/layered_rules.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/layout.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/learned_rules.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/log.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/merge.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/needs_suggest.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/onboarding_panel.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/override_drift.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/policy_budget_guard_check.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/profile_floor_doctor.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/project.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/project_capabilities.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/project_kind.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/project_types.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/request_memo.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/resolver.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/rule_resolution.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/safe_git.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/scaffold.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/scanner.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/schema.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/stack_pack_verifiers.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/stack_packs.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/stack_skills.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/standard_checks/__init__.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/standard_checks/acceptance_test_run.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/standard_checks/base.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/standard_checks/cadrage_ledger_check.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/standard_checks/claim_ledger_verify.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/standard_checks/claim_proof_resolve.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/standard_checks/controls.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/standard_checks/criterion_coverage.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/standard_checks/dispatch_cost_slo.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/standard_checks/evidence_chain.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/standard_checks/evidence_journal.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/standard_checks/evidence_resolve.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/standard_checks/gate_codegraph.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/standard_checks/gate_remedy.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/standard_checks/gate_review_checks.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/standard_checks/gate_test_run.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/standard_checks/hot_memory_check.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/standard_checks/no_tests_collected.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/standard_checks/observability_check.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/standard_checks/pattern_codes.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/standard_checks/plan_then_execute_check.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/standard_checks/registry.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/standard_checks/rules_check.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/standard_checks/runtime_journal_check.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/standard_checks/skills_check.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/standard_checks/tree_fingerprint.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/standard_checks/verifiers.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/standard_effective_profile.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/standard_generation.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/standard_profile_manifest.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/standard_state.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/standard_task_scaffold.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/standard_traceability.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/standard_upstream.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/task_board_ledger.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/task_unification_doctor.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/core/validator.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/costs.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/data/__init__.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/data/bench/longmemeval-sample.json +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/data/stack-packs/python.yaml +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/evidence/__init__.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/evidence/schemas.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/evidence/service.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/flows/__init__.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/flows/attestation.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/flows/autonomy.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/flows/blueprint_loader.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/flows/directive.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/flows/dispatch_executor.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/flows/doctor.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/flows/engine.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/flows/executor.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/flows/extract.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/flows/fingerprint.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/flows/genres.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/flows/live_runs.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/flows/pilot.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/flows/registry.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/flows/schemas.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/flows/transfer.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/__init__.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/acp_hosts.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/capabilities.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/collect.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/contract_probe.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/decisions/__init__.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/decisions/_shared.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/decisions/activation.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/decisions/authority_guard.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/decisions/calibration.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/decisions/chain_ack.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/decisions/context_capsule.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/decisions/done_gate.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/decisions/enrolment.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/decisions/event_trace.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/decisions/evidence_gate.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/decisions/evidence_trace.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/decisions/gate_override.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/decisions/gate_summary.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/decisions/human_turns.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/decisions/instruction_scan.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/decisions/lease_brake.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/decisions/pause_brake.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/decisions/profile_floor.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/decisions/record.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/decisions/repetition_guard.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/decisions/self_view.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/decisions/session_memory.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/decisions/steering.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/decisions/subagent_gate.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/decisions/task_context.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/decisions/tool_facts.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/decisions/tool_policy.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/detection.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/emitters/__init__.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/emitters/base.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/emitters/claude_code.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/emitters/copilot.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/emitters/generic.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/emitters/opencode.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/emitters/rules.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/events.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/hook_launcher.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/host_version.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/matrix.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/probe.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/runtime.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/secrets.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/skill_spec.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/surface.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/hosts/sync.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/mcp/__init__.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/mcp/idea_tools.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/mcp/memory_gestures.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/mcp/project.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/mcp/server.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/memory/__init__.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/memory/architecture.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/memory/backends/__init__.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/memory/backends/_qdrant_mixin.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/memory/backends/base.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/memory/backends/lexical.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/memory/backends/local.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/memory/backends/mempalace.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/memory/backends/ollama.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/memory/backends/qdrant.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/memory/backends/tantivy_local.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/memory/backends/weaviate.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/memory/bundle.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/memory/chromadb_native_probe.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/memory/correction.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/memory/embedding.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/memory/gestures.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/memory/health_cache.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/memory/hot.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/memory/journal.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/memory/knowledge.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/memory/longmemeval.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/memory/manager.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/memory/migration.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/memory/neo4j_backfill.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/memory/neo4j_graph.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/memory/profiles.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/memory/projections.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/memory/reads_log.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/memory/retrieval.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/memory/shared.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/memory/sidecar.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/memory/split.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/memory/store_probe.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/memory/supersession.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/memory/taxonomy.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/memory/validation.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/__init__.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/admission.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/autopilot.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/board.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/breaker.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/cadrage_plan.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/ceremony.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/ceremony_budget.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/check_gate.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/ci_slots.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/decisions.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/declarative_evidence.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/diff_fingerprint.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/digest.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/dispatch.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/dispatch_advice.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/dispatch_history.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/dispatch_worktree.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/effects.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/empty_green.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/ended.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/external_merge.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/finition.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/gates.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/human_acceptance.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/ideas.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/intake.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/intake_tasks.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/janitor.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/launcher.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/lease.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/ledger.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/ledger_append.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/ledger_files.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/ledger_links.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/ledger_rules.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/ledger_snapshot.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/ledger_views.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/liveness.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/mandate.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/manual_review.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/merger.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/orchestrate.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/orchestrator_policy.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/orchestrator_session.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/pause.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/plan_import.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/plans_registry.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/prepush_fence.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/provider_failure.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/question_gestures.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/question_rounds.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/question_v2.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/questions.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/recall.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/reclaim.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/report.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/reservation.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/review_receipt.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/review_seal.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/review_verdict.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/reviewer.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/route_dispatch.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/route_report.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/router.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/routing_policy.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/schemas.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/service.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/session_link.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/task_flow_adapter.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/task_unification.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/task_worktree.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/team_units.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/timer.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/trace.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/usage_fold.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/verifiability.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/verify.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/waiting.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/wave_checkpoint.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/waves.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/missions/worker_provider.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/onboarding/__init__.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/onboarding/brownfield.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/onboarding/facts.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/onboarding/scan_js.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/onboarding/scan_manifests.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/onboarding/scan_python.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/policies/__init__.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/policies/engine.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/policies/rules_config.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/policies/schemas.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/policies/security.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/policies/session_state.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/policies/temporal.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/proposals.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/providers/__init__.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/providers/audit.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/providers/data_policy.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/providers/quota.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/providers/registry.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/providers/routing.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/providers/secrets.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/providers/state.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/py.typed +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/registry/__init__.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/registry/agents.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/registry/discovery.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/registry/local.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/repo_gates/__init__.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/runtime/__init__.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/runtime/adapter_base.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/runtime/crewai_adapter.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/runtime/gascity_converter.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/runtime/kernel.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/runtime/langgraph_adapter.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/runtime/recipes.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/runtime/schemas.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/steward/__init__.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/steward/project_map.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/steward/report.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/steward/sources.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/steward/verdicts.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/__init__.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/_common.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/agent_creation.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/blueprint_checkpoint.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/blueprint_context.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/blueprint_diff.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/blueprint_eval_runner.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/blueprint_evals.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/blueprint_gate.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/blueprint_primitives.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/blueprint_resilience.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/blueprint_scatter.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/blueprint_security.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/blueprint_telemetry.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/cockpit_registry_routes.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/context_pack.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/cost_model.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/ext_manager.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/features.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/flow_runs.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/forge_http.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/forge_routes.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/forge_server.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/handoff.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/harmony_check.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/install_receipt.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/install_trust.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/mcp_processes.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/memory_link.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/memory_lint.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/memory_setup.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/memory_vectors.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/model_windows.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/project_health.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/project_setup.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/project_update.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/project_upgrade.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/request_guard.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/serve_data.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/source_assist.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/stigmergy.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/stigmergy_hooks.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/untrusted.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/update_bundle.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/update_bundle_build.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/update_channels.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/upgrade_changes.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/upgrade_preview.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/view_cache.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_actions.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_api.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_attention.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_capacity.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_chat.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_chat_kanban.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_chat_pilot.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_config.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_exec.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_first_launch.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_graph.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_hygiene.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_ideas.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_knowledge.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_language.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_launch_apply.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_launch_preflight.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_legacy.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_machine.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_memory.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_memory_gestures.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_notify.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_portfolio.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_pulse.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_read_cache.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_recall.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_reviews.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_session_feed.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_sessions.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_setup_guide.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_since.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_slots.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_task_gates.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_work.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/tools/workspace_write_guard.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/traces/__init__.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/traces/intervals.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/traces/ledger.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/traces/observatory_feed.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/traces/otel_conventions.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/traces/otlp.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/traces/runtime_spans.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/traces/schemas.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/traces/task_index.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/traces/transcript_usage.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/workflows/__init__.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/src/grimoire/workflows/registry.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/DESIGN-BRIEF-memory.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/DESIGN-BRIEF-observability.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/DESIGN-REVIEW-2026-09.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/DESIGN-SPEC-workspace-2026-09.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/anatomy.html +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/atelier-nav.js +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/atelier.css +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/atelier.html +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/blueprint-onboarding.js +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/blueprints.html +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/bp2-assist.js +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/bp2-composer.js +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/bp2-core.js +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/bp2-cost.js +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/bp2-diff.js +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/bp2-docs.js +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/bp2-evals.js +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/bp2-lexicon.js +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/bp2-library.js +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/bp2-manual.js +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/bp2-sections.js +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/bp2-team.css +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/bp2-team.js +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/bp2-tour.js +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/bp2.css +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/data/activity.json +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/data/architecture.json +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/data/catalogue-export.json +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/data/extensions.json +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/data/insights.json +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/data/kit-coverage.json +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/data/memory.json +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/data/meta.json +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/data/observatory.json +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/data/projects/atlas-ops/activity.json +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/data/projects/atlas-ops/insights.json +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/data/projects/atlas-ops/memory.json +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/data/projects/atlas-ops/meta.json +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/data/projects/atlas-ops/observatory.json +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/data/projects/atlas-ops/taskboard.json +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/data/projects/grimoire-kit/activity.json +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/data/projects/grimoire-kit/insights.json +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/data/projects/grimoire-kit/memory.json +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/data/projects/grimoire-kit/meta.json +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/data/projects/grimoire-kit/observatory.json +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/data/projects/grimoire-kit/taskboard.json +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/data/projects/ledger-data/activity.json +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/data/projects/ledger-data/insights.json +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/data/projects/ledger-data/memory.json +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/data/projects/ledger-data/meta.json +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/data/projects/ledger-data/observatory.json +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/data/projects/ledger-data/taskboard.json +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/data/projects/sentinel-sec/activity.json +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/data/projects/sentinel-sec/insights.json +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/data/projects/sentinel-sec/memory.json +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/data/projects/sentinel-sec/meta.json +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/data/projects/sentinel-sec/observatory.json +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/data/projects/sentinel-sec/taskboard.json +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/data/projects.json +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/data/reels/cloture-refusee-puis-acceptee.html +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/data/reels/cloture-refusee-puis-acceptee.json +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/data/reels/decision-humaine-attestee.html +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/data/reels/decision-humaine-attestee.json +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/data/reels/index.json +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/data/reels/rappel-au-claim.html +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/data/reels/rappel-au-claim.json +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/data/reels/supersession.html +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/data/reels/supersession.json +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/data/reels/tri-v0-v1-v2.html +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/data/reels/tri-v0-v1-v2.json +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/data/taskboard.json +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/demo.html +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/design/workspace-2026-09/Concevoir.dc.html +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/design/workspace-2026-09/ConcevoirClair.dc.html +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/design/workspace-2026-09/Couleurs.dc.html +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/design/workspace-2026-09/DAArdoise.dc.html +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/design/workspace-2026-09/DAPapier.dc.html +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/design/workspace-2026-09/DAStudio.dc.html +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/design/workspace-2026-09/DirectionB.dc.html +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/design/workspace-2026-09/DirectionC.dc.html +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/design/workspace-2026-09/DirectionD.dc.html +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/design/workspace-2026-09/Encre.dc.html +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/design/workspace-2026-09/EncreClair.dc.html +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/design/workspace-2026-09/Main.dc.html +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/design/workspace-2026-09/Mecaniques.dc.html +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/design/workspace-2026-09/Source.dc.html +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/design/workspace-2026-09/canvas.json +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/design/workspace-2026-09/captures/concevoir-dark.jpg +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/design/workspace-2026-09/captures/concevoir-light.jpg +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/design/workspace-2026-09/captures/executer-dark.jpg +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/design/workspace-2026-09/captures/executer-light.jpg +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/design/workspace-2026-09/captures/memoire-dark.jpg +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/design/workspace-2026-09/captures/memoire-light.jpg +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/design/workspace-2026-09/captures/observer-dark.jpg +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/design/workspace-2026-09/captures/observer-light.jpg +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/design/workspace-2026-09/captures/piloter-dark.jpg +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/design/workspace-2026-09/captures/piloter-light.jpg +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/design/workspace-2026-09/captures/source-dark.jpg +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/design/workspace-2026-09/captures/source-light.jpg +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/design/workspace-2026-09/gen-couleurs.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/design/workspace-2026-09/gen-skins.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/design/workspace-2026-09/shell.tpl.html +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/design-review-2026-09/01-cockpit-portefeuille-desktop.jpg +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/design-review-2026-09/02-cockpit-portefeuille-full.jpg +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/design-review-2026-09/03-cockpit-portefeuille-mobile.jpg +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/design-review-2026-09/04-kanban-desktop.jpg +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/design-review-2026-09/05-kanban-mobile.jpg +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/design-review-2026-09/06-observatoire-desktop.jpg +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/design-review-2026-09/07-observatoire-full.jpg +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/design-review-2026-09/08-atelier-desktop.jpg +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/design-review-2026-09/09-atelier-mobile.jpg +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/design-review-2026-09/10-memoire-desktop.jpg +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/design-review-2026-09/11-blueprints-desktop.jpg +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/design-review-2026-09/12-extensions-desktop.jpg +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/design-review-2026-09/13-patterns-desktop.jpg +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/design-review-2026-09/14-cockpit-index-desktop.jpg +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/design-review-2026-09/15-workspace-lot1-sombre-decouverte.png +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/design-review-2026-09/16-workspace-lot1-clair-decouverte.png +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/design-review-2026-09/17-workspace-lot1-sombre-concentration.png +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/design-review-2026-09/18-workspace-lot1-clair-concentration.png +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/documentation.html +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/extensions.html +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/fonts/Geist-Variable-latin.woff2 +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/fonts/GeistMono-Variable-latin.woff2 +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/fonts/JetBrainsMono-Regular.woff2 +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/fonts/JetBrainsMono-SemiBold.woff2 +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/fonts/OFL-instrument.txt +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/fonts/OFL-jetbrains.txt +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/fonts/OFL.txt +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/fonts/fonts.css +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/fonts/instrument-sans-400.woff2 +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/fonts/instrument-sans-500.woff2 +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/fonts/instrument-sans-600.woff2 +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/forge-base.css +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/forge-charts.css +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/forge-landing.css +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/forge-motion.css +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/forge-motion.js +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/forge-nav.js +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/forge-observatory.js +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/forge-tokens.css +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/game-ui.html +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/grimoire-mode.js +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/index.html +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/kanban.html +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/labs.html +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/media/capture-reelle.png +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/media/teaser-720.mp4 +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/media/teaser-poster.jpg +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/memory.html +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/observability.html +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/patterns.html +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/portfolio.html +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/project-picker.js +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/teaser/.gitignore +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/teaser/README.md +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/teaser/audio4.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/teaser/build4.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/teaser/clips.json +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/teaser/cues.json +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/teaser/cues.mjs +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/teaser/detect_green.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/teaser/fonts/JetBrainsMono-Regular.woff2 +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/teaser/fonts/JetBrainsMono-SemiBold.woff2 +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/teaser/fonts/OFL-InstrumentSans.txt +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/teaser/fonts/OFL-JetBrainsMono.txt +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/teaser/fonts/instrument-sans-400.woff2 +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/teaser/fonts/instrument-sans-500.woff2 +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/teaser/fonts/instrument-sans-600.woff2 +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/teaser/footage-sources.json +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/teaser/icons/board.svg +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/teaser/icons/fleet.svg +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/teaser/icons/inbox.svg +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/teaser/icons/pr.svg +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/teaser/icons/sliders.svg +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/teaser/icons/tag.svg +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/teaser/master.sh +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/teaser/prep_footage.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/teaser/render.mjs +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/teaser/scene4.tpl.html +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/teaser/screens.json +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/teaser/shots.mjs +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/teaser/storyboard.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/teaser/terminal.json +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/tools/check-links.py +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/workspace/activity.js +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/workspace/fonts/GeistMono-Medium.woff2 +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/workspace/fonts/GeistMono-Regular.woff2 +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/workspace/fonts/InstrumentSans-Variable.woff2 +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/workspace/fonts/OFL-InstrumentSans.txt +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/workspace/fonts/OFL.txt +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/workspace/glossary.js +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/workspace/icons/NOTICE +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/workspace/icons.svg +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/workspace/index.html +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/workspace/live.js +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/workspace/markdown.js +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/workspace/notify.js +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/workspace/score.js +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/workspace/setup-state.js +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/workspace/shell.css +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/workspace/spaces/a-traiter-group.js +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/workspace/spaces/a-traiter-since.js +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/workspace/spaces/a-traiter.js +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/workspace/spaces/board-split.js +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/workspace/spaces/capacite.js +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/workspace/spaces/carte-worker.js +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/workspace/spaces/carte.js +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/workspace/spaces/code-projection.js +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/workspace/spaces/concevoir.js +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/workspace/spaces/decision-card.js +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/workspace/spaces/demarrer.js +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/workspace/spaces/donnees.js +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/workspace/spaces/memoire-gestes.js +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/workspace/spaces/memoire.js +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/workspace/spaces/observer.js +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/workspace/spaces/piloter.js +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/workspace/spaces/rappel.js +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/workspace/spaces/recall-receipt.js +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/workspace/spaces/registre.js +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/workspace/spaces/revue.js +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/workspace/spaces/sante.js +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/workspace/spaces/sessions.js +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/workspace/spaces/source-editor.js +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/workspace/spaces/source.css +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/workspace/spaces/source.js +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/workspace/spaces/task-create.js +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/workspace/spaces/task-intake.js +0 -0
- {grimoire_kit-3.83.0 → grimoire_kit-3.84.0}/web/workspace/tokens.css +0 -0
|
@@ -7,6 +7,12 @@ et ce projet adhère au [Semantic Versioning](https://semver.org/lang/fr/).
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [3.84.0] - 2026-11-12
|
|
11
|
+
|
|
12
|
+
- feat(cockpit): tout accepter les tâches fusionnées en un geste (#1186)
|
|
13
|
+
- feat(cockpit): mandat, pilote et fournisseurs de n'importe quel projet (lot 3) (#1187)
|
|
14
|
+
- feat(cockpit): un projet par onglet, chat compris (lot 4) (#1188)
|
|
15
|
+
|
|
10
16
|
## [3.83.0] - 2026-11-08
|
|
11
17
|
|
|
12
18
|
- perf(cockpit): la lecture du journal de session qui nourrit le payload `work` est bornée à 1 Mio par passe (1,9 s → 188 ms sur cinq journaux de 20 Mo), et la palette de la coque demande `annotations=0` pour que le montage de la Flotte ne paie plus jamais cette lecture (#1010) (#1171)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: grimoire-kit
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.84.0
|
|
4
4
|
Summary: Dashboard, task board, project memory and evidence check for code you delegate to agents (Claude Code, Copilot).
|
|
5
5
|
Project-URL: Homepage, https://github.com/Guilhem-Bonnet/Grimoire-kit
|
|
6
6
|
Project-URL: Repository, https://github.com/Guilhem-Bonnet/Grimoire-kit
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "3.84.0"
|
|
@@ -51,12 +51,15 @@ from grimoire.cli.cockpit_memory import (
|
|
|
51
51
|
)
|
|
52
52
|
from grimoire.cli.cockpit_write_target import (
|
|
53
53
|
body_confirms_slug,
|
|
54
|
+
body_mismatch_status,
|
|
54
55
|
enrolled_write_root,
|
|
55
56
|
explicit_query_slug,
|
|
56
57
|
journal_confirmation,
|
|
57
58
|
query_slug,
|
|
59
|
+
read_root,
|
|
58
60
|
sensitive_write_refusal,
|
|
59
61
|
unresolvable_status,
|
|
62
|
+
write_refusal_status,
|
|
60
63
|
)
|
|
61
64
|
from grimoire.data import site_script, web_path
|
|
62
65
|
from grimoire.tools.cockpit_registry_routes import REGISTRY_ROUTES, registry_post
|
|
@@ -451,7 +454,9 @@ class _CockpitHandler(SimpleHTTPRequestHandler):
|
|
|
451
454
|
if readonly is not None:
|
|
452
455
|
self._send_json(200, readonly)
|
|
453
456
|
return
|
|
454
|
-
|
|
457
|
+
# Lot 4 : une lecture nomme son projet (`?project=<slug>`), résolu par
|
|
458
|
+
# le registre ; sans paramètre, le repli reste la sélection courante.
|
|
459
|
+
proot = read_root(self.path)
|
|
455
460
|
if proot is None or not proot.is_dir():
|
|
456
461
|
self._send_json(404, {"ok": False, "error": "projet inconnu"})
|
|
457
462
|
return
|
|
@@ -698,9 +703,14 @@ class _CockpitHandler(SimpleHTTPRequestHandler):
|
|
|
698
703
|
workspace_post,
|
|
699
704
|
)
|
|
700
705
|
|
|
706
|
+
# Lot 3 : les écritures d'autorité (mandat, pilote, fournisseurs)
|
|
707
|
+
# nomment leur projet dans le corps. Un slug d'URL non enrôlé est un
|
|
708
|
+
# 404, un corps qui contredit l'URL un 400 — les autres écritures
|
|
709
|
+
# gardent le refus générique « lecture seule » (403) du lot 1.
|
|
701
710
|
proot = self._enrolled_write_root()
|
|
702
711
|
if proot is None:
|
|
703
|
-
|
|
712
|
+
code, error = write_refusal_status(self.path)
|
|
713
|
+
self._send_json(code, {"ok": False, "error": error})
|
|
704
714
|
return
|
|
705
715
|
try:
|
|
706
716
|
length = int(self.headers.get("Content-Length", 0))
|
|
@@ -709,7 +719,7 @@ class _CockpitHandler(SimpleHTTPRequestHandler):
|
|
|
709
719
|
self._send_json(400, {"ok": False, "error": "bad json"})
|
|
710
720
|
return
|
|
711
721
|
if not self._body_confirms_slug(body):
|
|
712
|
-
self._send_json(
|
|
722
|
+
self._send_json(body_mismatch_status(path), {"ok": False, "error": "le projet du corps ne correspond pas à l'URL"})
|
|
713
723
|
return
|
|
714
724
|
slug = self._explicit_query_slug()
|
|
715
725
|
if is_sensitive_write(path):
|
|
@@ -784,7 +794,7 @@ class _CockpitHandler(SimpleHTTPRequestHandler):
|
|
|
784
794
|
# l'atelier (#356). Vérifié par un test sur un vrai handler
|
|
785
795
|
# (`test_cmd_cockpit_blueprint_writes.py`, #546), pas seulement
|
|
786
796
|
# supposé sur la base de ce commentaire.
|
|
787
|
-
proot =
|
|
797
|
+
proot = read_root(self.path)
|
|
788
798
|
if proot is None or not proot.is_dir():
|
|
789
799
|
self._send_json(404, {"ok": False, "error": "projet inconnu"})
|
|
790
800
|
return
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
"""Cibles
|
|
1
|
+
"""Cibles du cockpit : slug de requête, racine enrôlée, corps.
|
|
2
2
|
|
|
3
3
|
Sorti de ``cmd_cockpit`` pour ne pas en gonfler le module (cliquet de taille) :
|
|
4
4
|
les fonctions ici sont pures — elles prennent le chemin de requête ou le slug
|
|
5
|
-
déjà extrait — et toute la politique
|
|
6
|
-
endroit, avec sa documentation.
|
|
5
|
+
déjà extrait — et toute la politique de résolution multi-projets vit à un seul
|
|
6
|
+
endroit, avec sa documentation. Les écritures (lots 1 et 2) et les lectures
|
|
7
|
+
(lot 4) résolvent leur projet ici.
|
|
7
8
|
|
|
8
9
|
Depuis le lot 1 de l'écriture multi-projets (2026-11-07), une écriture vise
|
|
9
10
|
n'importe quel projet ENRÔLÉ : le slug de ``?project=`` est **obligatoire** et
|
|
@@ -21,8 +22,55 @@ from typing import Any
|
|
|
21
22
|
from urllib.parse import parse_qs, urlparse
|
|
22
23
|
|
|
23
24
|
from grimoire.tools.project_registry import registered_root, selected_slug
|
|
25
|
+
from grimoire.tools.workspace_routes import PREFIX
|
|
24
26
|
from grimoire.tools.workspace_write_guard import cockpit_journal_path, journal_event
|
|
25
27
|
|
|
28
|
+
#: Écritures d'AUTORITÉ (lot 3, 2026-11-08) : le mandat, le pilote automatique
|
|
29
|
+
#: et les fournisseurs. Comme toute écriture de la vue de travail, elles visent
|
|
30
|
+
#: la racine ENRÔLÉE résolue depuis ``?project=``. Elles nomment en plus leur
|
|
31
|
+
#: projet dans le corps : un slug d'URL inconnu est un 404 et un slug du corps
|
|
32
|
+
#: qui ne désigne pas la même racine est un 400 — plutôt que le refus générique
|
|
33
|
+
#: « lecture seule » (403) des autres écritures. Absent du corps, le slug ne dit
|
|
34
|
+
#: rien (compatibilité des appels historiques).
|
|
35
|
+
AUTHORITY_WRITES = frozenset(
|
|
36
|
+
{
|
|
37
|
+
f"{PREFIX}autonomy/autopilot",
|
|
38
|
+
f"{PREFIX}autonomy/mandate/grant",
|
|
39
|
+
f"{PREFIX}autonomy/mandate/revoke",
|
|
40
|
+
f"{PREFIX}providers",
|
|
41
|
+
f"{PREFIX}providers/set-key",
|
|
42
|
+
}
|
|
43
|
+
)
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
def is_authority_write(path: str) -> bool:
|
|
47
|
+
"""Vrai pour une écriture qui nomme son projet dans le corps (mandat, pilote, fournisseurs)."""
|
|
48
|
+
return path in AUTHORITY_WRITES
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
def write_refusal_status(path: str) -> tuple[int, str]:
|
|
52
|
+
"""``(code, message)`` quand la cible d'une écriture ne résout pas.
|
|
53
|
+
|
|
54
|
+
Les autres écritures gardent le 403 « lecture seule » du lot 1. Une écriture
|
|
55
|
+
d'autorité (lot 3) nomme sa cible : slug absent de l'URL → 400 (rien ne dit
|
|
56
|
+
où écrire), slug inconnu ou dossier disparu → 404 (le registre ne le rend pas).
|
|
57
|
+
"""
|
|
58
|
+
if not is_authority_write(urlparse(path).path):
|
|
59
|
+
return 403, "hôte en lecture seule"
|
|
60
|
+
if not explicit_query_slug(path):
|
|
61
|
+
return 400, "projet non nommé"
|
|
62
|
+
return 404, "projet inconnu ou non enrôlé"
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
def body_mismatch_status(path: str) -> int:
|
|
66
|
+
"""Code de refus quand le ``project`` du corps contredit ``?project=``.
|
|
67
|
+
|
|
68
|
+
Une écriture d'autorité (lot 3) nomme sa cible dans le corps : le
|
|
69
|
+
contredire est une requête mal formée, donc 400. Les autres écritures
|
|
70
|
+
gardent le refus du lot 1 (403), qui ne promettait pas de cible au corps.
|
|
71
|
+
"""
|
|
72
|
+
return 400 if is_authority_write(urlparse(path).path) else 403
|
|
73
|
+
|
|
26
74
|
|
|
27
75
|
def query_slug(path: str) -> str:
|
|
28
76
|
"""Projet visé par la requête : ``?project=`` explicite, sinon la sélection.
|
|
@@ -57,6 +105,23 @@ def enrolled_write_root(path: str) -> Path | None:
|
|
|
57
105
|
return registered_root(slug=slug) if slug else None
|
|
58
106
|
|
|
59
107
|
|
|
108
|
+
def read_root(path: str) -> Path | None:
|
|
109
|
+
"""Racine ENRÔLÉE visée par une LECTURE, ou ``None`` (404).
|
|
110
|
+
|
|
111
|
+
Lot 4 (2026-11-08) : une lecture nomme son projet comme une écriture. Le
|
|
112
|
+
slug de ``?project=`` sert de clé à ``registered_root`` — jamais de chemin —
|
|
113
|
+
et un slug inconnu ne mène à aucune racine, au lieu de retomber en silence
|
|
114
|
+
sur un autre projet. Deux onglets peuvent donc lire deux projets différents
|
|
115
|
+
sans partager d'état.
|
|
116
|
+
|
|
117
|
+
Sans paramètre, le repli historique reste en place : la sélection courante
|
|
118
|
+
(``selected_slug``, elle-même retombant sur le projet primaire), pour que
|
|
119
|
+
les liens ouverts avant le lot 4 continuent de marcher.
|
|
120
|
+
"""
|
|
121
|
+
slug = explicit_query_slug(path)
|
|
122
|
+
return registered_root(slug=slug or selected_slug())
|
|
123
|
+
|
|
124
|
+
|
|
60
125
|
def body_confirms_slug(body: Any, path: str) -> bool:
|
|
61
126
|
"""Le ``project`` du corps, s'il est présent, doit viser le même projet.
|
|
62
127
|
|
|
@@ -268,6 +268,36 @@ def registered_root(*, slug: str = "", path: str = "") -> Path | None:
|
|
|
268
268
|
return None
|
|
269
269
|
|
|
270
270
|
|
|
271
|
+
def body_project_refusal(project_root: Path, body: Any) -> str | None:
|
|
272
|
+
"""Refus si le ``project`` du corps ne désigne pas ``project_root`` dans le registre.
|
|
273
|
+
|
|
274
|
+
Pendant de :func:`grimoire.cli.cockpit_write_target.body_confirms_slug`, côté
|
|
275
|
+
route : le transport compare le corps au slug de l'URL, mais une route ne
|
|
276
|
+
reçoit que la racine déjà résolue. Absent, le champ ne dit rien — les appels
|
|
277
|
+
historiques ne le portent pas. Présent, il doit nommer CETTE racine et rester
|
|
278
|
+
un slug du registre : un slug non enrôlé n'est jamais accepté, et un chemin
|
|
279
|
+
fourni par le client ne résout rien (``registered_root`` ne lit que des slugs).
|
|
280
|
+
"""
|
|
281
|
+
wanted = str(body.get("project") or "").strip() if isinstance(body, dict) else ""
|
|
282
|
+
if not wanted:
|
|
283
|
+
return None
|
|
284
|
+
if registered_root(slug=wanted) != project_root.resolve():
|
|
285
|
+
return f"le corps visait le projet {wanted!r}, la cible résolue diffère"
|
|
286
|
+
return None
|
|
287
|
+
|
|
288
|
+
|
|
289
|
+
def refuse_foreign_body(project_root: Path, body: Any) -> None:
|
|
290
|
+
"""Lève ``ValueError`` (400) si le ``project`` du corps vise une autre racine.
|
|
291
|
+
|
|
292
|
+
Variante levante de :func:`body_project_refusal` : les routes d'écriture du
|
|
293
|
+
workspace traduisent ``ValueError`` en 400, ce qui évite de répéter le test
|
|
294
|
+
dans chaque geste d'autorité (mandat, pilote, fournisseurs) — lot 3.
|
|
295
|
+
"""
|
|
296
|
+
refusal = body_project_refusal(project_root, body)
|
|
297
|
+
if refusal is not None:
|
|
298
|
+
raise ValueError(refusal)
|
|
299
|
+
|
|
300
|
+
|
|
271
301
|
def primary_slug() -> str:
|
|
272
302
|
projects = load_registry()
|
|
273
303
|
return str(projects[0].get("slug", "")) if projects else ""
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
"""« Tout accepter » (GAO-cockpit-tout-001) : fermer en un geste les tâches que le merger a laissées à l'humain.
|
|
2
|
+
|
|
3
|
+
Le 2026-11-07, treize tâches attendaient « Accepter … ? » dans le cockpit : une PR
|
|
4
|
+
qui touche un chemin réservé demande la fusion, puis ``grimoire task accept``.
|
|
5
|
+
Cette route fait le second geste pour toutes les tâches qu'elle peut prouver
|
|
6
|
+
prêtes, et **jamais** pour les autres.
|
|
7
|
+
|
|
8
|
+
Une tâche est candidate si et seulement si :
|
|
9
|
+
|
|
10
|
+
- son état est ``needs_verification`` ;
|
|
11
|
+
- un ``task.merged`` est noté au ledger depuis le dernier lancement ;
|
|
12
|
+
- la dernière question ouverte est celle que le merger pose pour l'acceptation
|
|
13
|
+
(``task.merge_escalated`` avec ``gesture: accept``, ou son texte
|
|
14
|
+
« Accepter <id> (PR #N fusionnée) ? ») ;
|
|
15
|
+
- le reçu de revue du worktree de la tâche porte le verdict ``READY``.
|
|
16
|
+
|
|
17
|
+
Le geste est celui d'un humain : la route exige la clé de contrôle
|
|
18
|
+
(``~/.grimoire/control/cockpit-key``), comme l'octroi du mandat et le pilote
|
|
19
|
+
automatique — le jeton de session, injecté dans toute page servie sur la
|
|
20
|
+
loopback, ne suffit pas à fermer des tâches. Chaque acceptation passe par
|
|
21
|
+
:func:`grimoire.missions.human_acceptance.accept_task`, avec les racines de
|
|
22
|
+
:func:`~grimoire.missions.human_acceptance.acceptance_roots` (#1169 : la preuve
|
|
23
|
+
est dans le worktree quand elle y a été rangée). Une tâche qui échoue est
|
|
24
|
+
rapportée, les autres continuent : c'est un lot, pas une transaction.
|
|
25
|
+
"""
|
|
26
|
+
|
|
27
|
+
from __future__ import annotations
|
|
28
|
+
|
|
29
|
+
import re
|
|
30
|
+
from typing import TYPE_CHECKING, Any
|
|
31
|
+
|
|
32
|
+
from grimoire.missions.human_acceptance import accept_task, acceptance_roots
|
|
33
|
+
from grimoire.missions.launcher import LAUNCHED_EVENT
|
|
34
|
+
from grimoire.missions.mandate import verify_control_key
|
|
35
|
+
from grimoire.missions.questions import OPEN, records_of, status_of
|
|
36
|
+
from grimoire.missions.review_receipt import READY, read_receipt
|
|
37
|
+
from grimoire.missions.schemas import ORIGIN_HUMAN, TaskState
|
|
38
|
+
from grimoire.missions.service import TaskService
|
|
39
|
+
from grimoire.missions.task_worktree import MERGED_EVENT
|
|
40
|
+
|
|
41
|
+
if TYPE_CHECKING:
|
|
42
|
+
from pathlib import Path
|
|
43
|
+
|
|
44
|
+
from grimoire.missions.questions import QuestionRecord
|
|
45
|
+
from grimoire.missions.schemas import LedgerEvent, MissionTask
|
|
46
|
+
|
|
47
|
+
__all__ = ["ACTOR", "accept_merged", "accept_merged_candidates", "accept_merged_view"]
|
|
48
|
+
|
|
49
|
+
#: L'acteur inscrit au ledger : le canal, jamais un nom fourni par le corps.
|
|
50
|
+
ACTOR = "cockpit"
|
|
51
|
+
|
|
52
|
+
#: La question d'acceptation posée par le merger (``merger._ask_human``) : le
|
|
53
|
+
#: préfixe suffit à reconnaître le geste, l'identifiant est vérifié à part.
|
|
54
|
+
_ACCEPT_TEXT = re.compile(r"^\s*Accepter\s+(?P<task>\S+)\s+\(PR\s+#(?P<pr>\d+)\s+fusionnée\)\s*\?")
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
def _last_launch_index(events: list[LedgerEvent]) -> int:
|
|
58
|
+
"""L'indice du dernier lancement, ou ``-1`` : une tâche faite à la main n'en a pas."""
|
|
59
|
+
return max((i for i, e in enumerate(events) if e.event_type == LAUNCHED_EVENT), default=-1)
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
def _merged_after_launch(events: list[LedgerEvent]) -> LedgerEvent | None:
|
|
63
|
+
"""Le dernier ``task.merged`` depuis le dernier lancement, sinon ``None``.
|
|
64
|
+
|
|
65
|
+
Même règle que le merger (``_accept``) : une fusion notée avant un nouveau
|
|
66
|
+
lancement ne dit rien du travail présent.
|
|
67
|
+
"""
|
|
68
|
+
after = _last_launch_index(events)
|
|
69
|
+
merged = [e for e in events[after + 1 :] if e.event_type == MERGED_EVENT]
|
|
70
|
+
return merged[-1] if merged else None
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
def _last_open_question(task: MissionTask) -> QuestionRecord | None:
|
|
74
|
+
"""La dernière question encore ouverte du registre, sinon ``None``."""
|
|
75
|
+
opened = [record for record in records_of(task) if status_of(task, record) == OPEN]
|
|
76
|
+
return opened[-1] if opened else None
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
def _is_merger_accept_question(task: MissionTask, question: QuestionRecord, events: list[LedgerEvent]) -> bool:
|
|
80
|
+
"""Vrai si *question* est celle que le merger pose pour l'acceptation de *task*.
|
|
81
|
+
|
|
82
|
+
L'événement ``task.merge_escalated`` fait foi ; le texte de la question sert
|
|
83
|
+
de repli pour un ledger qui porterait la question sans son événement.
|
|
84
|
+
"""
|
|
85
|
+
from grimoire.missions.merger import MERGE_ESCALATED_EVENT
|
|
86
|
+
|
|
87
|
+
if any(
|
|
88
|
+
e.event_type == MERGE_ESCALATED_EVENT
|
|
89
|
+
and e.payload.get("gesture") == "accept"
|
|
90
|
+
and e.payload.get("question_id") == question.id
|
|
91
|
+
for e in events
|
|
92
|
+
):
|
|
93
|
+
return True
|
|
94
|
+
match = _ACCEPT_TEXT.match(question.question.text or "")
|
|
95
|
+
return match is not None and match.group("task") == task.id
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
def _question_pr(question: QuestionRecord, merged: LedgerEvent) -> int:
|
|
99
|
+
"""Le numéro de PR que la question nomme, sinon celui de la fusion notée."""
|
|
100
|
+
match = _ACCEPT_TEXT.match(question.question.text or "")
|
|
101
|
+
if match is not None:
|
|
102
|
+
return int(match.group("pr"))
|
|
103
|
+
return int(merged.payload.get("pr") or 0)
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
def _ready_receipt(proof_root: Path, task_id: str) -> bool:
|
|
107
|
+
"""Vrai si le reçu de revue existe et porte ``READY`` — un reçu illisible n'est pas un READY."""
|
|
108
|
+
try:
|
|
109
|
+
receipt = read_receipt(proof_root, task_id)
|
|
110
|
+
except ValueError:
|
|
111
|
+
return False
|
|
112
|
+
return receipt is not None and receipt.verdict == READY
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
def _candidate_row(service: TaskService, task: MissionTask) -> dict[str, Any] | None:
|
|
116
|
+
"""La ligne de *task* si elle réunit les quatre conditions, sinon ``None``.
|
|
117
|
+
|
|
118
|
+
Un ledger, un reçu ou un worktree illisible n'est pas une candidate : la
|
|
119
|
+
route rend la liste de ce qui se prouve, pas une erreur d'affichage.
|
|
120
|
+
"""
|
|
121
|
+
try:
|
|
122
|
+
events = service.ledger.events_for(task.id)
|
|
123
|
+
merged = _merged_after_launch(events)
|
|
124
|
+
if merged is None:
|
|
125
|
+
return None
|
|
126
|
+
question = _last_open_question(task)
|
|
127
|
+
if question is None or not _is_merger_accept_question(task, question, events):
|
|
128
|
+
return None
|
|
129
|
+
_evidence_root, proof_root = acceptance_roots(service, task.id)
|
|
130
|
+
if not _ready_receipt(proof_root, task.id):
|
|
131
|
+
return None
|
|
132
|
+
except Exception:
|
|
133
|
+
return None
|
|
134
|
+
return {
|
|
135
|
+
"task_id": task.id,
|
|
136
|
+
"title": task.title,
|
|
137
|
+
"pr": _question_pr(question, merged),
|
|
138
|
+
"question_id": question.id,
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
def accept_merged_candidates(project_root: Path) -> list[dict[str, Any]]:
|
|
143
|
+
"""Les tâches que « Tout accepter » fermerait maintenant, sans rien écrire.
|
|
144
|
+
|
|
145
|
+
Une ligne : ``task_id``, ``title``, ``pr``, ``question_id``. Une tâche dont
|
|
146
|
+
la preuve, le reçu ou le ledger ne se lisent pas reste hors de la liste :
|
|
147
|
+
la candidate est celle qu'on peut prouver prête, pas celle qu'on espère.
|
|
148
|
+
"""
|
|
149
|
+
service = TaskService(project_root.resolve())
|
|
150
|
+
if not service.has_ledger:
|
|
151
|
+
return []
|
|
152
|
+
rows: list[dict[str, Any]] = []
|
|
153
|
+
for task in service.list_tasks(status=TaskState.NEEDS_VERIFICATION.value):
|
|
154
|
+
row = _candidate_row(service, task)
|
|
155
|
+
if row is not None:
|
|
156
|
+
rows.append(row)
|
|
157
|
+
return rows
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
def accept_merged_view(project_root: Path, _query: Any) -> dict[str, Any]:
|
|
161
|
+
"""La lecture de la route GET : candidates et compte, pour le libellé du bouton."""
|
|
162
|
+
rows = accept_merged_candidates(project_root)
|
|
163
|
+
return {"candidates": rows, "count": len(rows)}
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
def _reason(pr: int) -> str:
|
|
167
|
+
"""Le motif fixe : il nomme le lot (et son canal), et la PR, jamais une justification inventée par tâche."""
|
|
168
|
+
return f"Tout accepter (lot cockpit) : PR #{pr} fusionnée, relue READY"
|
|
169
|
+
|
|
170
|
+
|
|
171
|
+
def accept_merged(project_root: Path, body: dict[str, Any]) -> dict[str, Any]:
|
|
172
|
+
"""Accepte et ferme les candidates de *project_root* ; rend les acceptées et les refusées.
|
|
173
|
+
|
|
174
|
+
Sans clé de contrôle valide : :class:`PermissionError` (403), rien n'est écrit.
|
|
175
|
+
Chaque refus est attribué à sa tâche ; les autres continuent.
|
|
176
|
+
"""
|
|
177
|
+
if not verify_control_key(body.get("control_key")):
|
|
178
|
+
raise PermissionError("clé de contrôle absente ou invalide : accepter en lot est un geste d'humain")
|
|
179
|
+
root = project_root.resolve()
|
|
180
|
+
service = TaskService(root)
|
|
181
|
+
accepted: list[str] = []
|
|
182
|
+
refused: list[dict[str, str]] = []
|
|
183
|
+
for row in accept_merged_candidates(root):
|
|
184
|
+
task_id = str(row["task_id"])
|
|
185
|
+
try:
|
|
186
|
+
task = service.require(task_id)
|
|
187
|
+
evidence_root, proof_root = acceptance_roots(service, task_id)
|
|
188
|
+
reason = _reason(int(row.get("pr") or 0))
|
|
189
|
+
outcome = accept_task(
|
|
190
|
+
task,
|
|
191
|
+
root,
|
|
192
|
+
evidence_root,
|
|
193
|
+
reason,
|
|
194
|
+
ACTOR,
|
|
195
|
+
origin=ORIGIN_HUMAN,
|
|
196
|
+
proof_root=proof_root,
|
|
197
|
+
)
|
|
198
|
+
service.comment(
|
|
199
|
+
task_id,
|
|
200
|
+
f"Acceptation humaine ({outcome.verdict.id}, pack {outcome.pack.id}) : {reason}",
|
|
201
|
+
ACTOR,
|
|
202
|
+
origin=ORIGIN_HUMAN,
|
|
203
|
+
)
|
|
204
|
+
# La clôture relit la preuve et le reçu là où l'acceptation vient de les écrire : dans
|
|
205
|
+
# le worktree noté, un TaskService posé là retrouve le ledger du projet par son marqueur.
|
|
206
|
+
TaskService(proof_root).transition(task_id, TaskState.CLOSED, ACTOR, reason)
|
|
207
|
+
except Exception as exc: # un refus par tâche, jamais l’arrêt du lot
|
|
208
|
+
refused.append({"task_id": task_id, "reason": str(exc) or type(exc).__name__})
|
|
209
|
+
else:
|
|
210
|
+
accepted.append(task_id)
|
|
211
|
+
return {"accepted": accepted, "refused": refused}
|
|
@@ -31,7 +31,11 @@ def providers_write_route(project_root: Path, body: dict[str, Any]) -> Any:
|
|
|
31
31
|
set_provider_enabled,
|
|
32
32
|
)
|
|
33
33
|
from grimoire.tools import workspace_config
|
|
34
|
+
from grimoire.tools.project_registry import body_project_refusal
|
|
34
35
|
|
|
36
|
+
refusal = body_project_refusal(project_root, body)
|
|
37
|
+
if refusal is not None:
|
|
38
|
+
raise ValueError(refusal)
|
|
35
39
|
if not verify_control_key(body.get("control_key")):
|
|
36
40
|
raise PermissionError("clé de contrôle absente ou invalide : modifier les fournisseurs est un geste d'humain")
|
|
37
41
|
action = str(body.get("action") or "")
|
|
@@ -70,7 +74,11 @@ def providers_set_key_route(project_root: Path, body: dict[str, Any]) -> Any:
|
|
|
70
74
|
"""``POST /api/workspace/providers/set-key`` — pose une clé API en magasin, jamais dans le registre."""
|
|
71
75
|
from grimoire.missions.mandate import verify_control_key
|
|
72
76
|
from grimoire.providers.secrets import set_secret
|
|
77
|
+
from grimoire.tools.project_registry import body_project_refusal
|
|
73
78
|
|
|
79
|
+
refusal = body_project_refusal(project_root, body)
|
|
80
|
+
if refusal is not None:
|
|
81
|
+
raise ValueError(refusal)
|
|
74
82
|
if not verify_control_key(body.get("control_key")):
|
|
75
83
|
raise PermissionError("clé de contrôle absente ou invalide : poser une clé API est un geste d'humain")
|
|
76
84
|
provider_id = str(body.get("provider_id") or "")
|
|
@@ -52,6 +52,7 @@ from grimoire.memory.correction import request_correction_from_body as _memory_c
|
|
|
52
52
|
from grimoire.missions.liveness import probe_entries
|
|
53
53
|
from grimoire.tools import (
|
|
54
54
|
source_assist,
|
|
55
|
+
workspace_accept_merged,
|
|
55
56
|
workspace_actions,
|
|
56
57
|
workspace_api,
|
|
57
58
|
workspace_attention,
|
|
@@ -75,6 +76,7 @@ from grimoire.tools import (
|
|
|
75
76
|
workspace_setup_guide,
|
|
76
77
|
workspace_since,
|
|
77
78
|
)
|
|
79
|
+
from grimoire.tools.project_registry import refuse_foreign_body
|
|
78
80
|
|
|
79
81
|
__all__ = [
|
|
80
82
|
"CHAT_STREAM_PATH",
|
|
@@ -121,6 +123,7 @@ def is_sensitive_write(path: str) -> bool:
|
|
|
121
123
|
"""
|
|
122
124
|
return path in SENSITIVE_WRITES
|
|
123
125
|
|
|
126
|
+
|
|
124
127
|
#: Sentinelle, même contrat que ``forge_routes.API_GET_UNHANDLED`` : distingue
|
|
125
128
|
#: « chemin inconnu » d'une route qui rendrait légitimement ``None``.
|
|
126
129
|
WORKSPACE_UNHANDLED = object()
|
|
@@ -613,6 +616,7 @@ def _autopilot_state(project_root: Path, _query: _Query) -> Any:
|
|
|
613
616
|
GET_ROUTES: dict[str, _GetHandler] = {
|
|
614
617
|
f"{PREFIX}autonomy/autopilot": _autopilot_state,
|
|
615
618
|
f"{PREFIX}autonomy/mandate": _mandate_state,
|
|
619
|
+
f"{PREFIX}tasks/accept-merged": workspace_accept_merged.accept_merged_view,
|
|
616
620
|
f"{PREFIX}glossary": _glossary,
|
|
617
621
|
f"{PREFIX}capacity": _capacity,
|
|
618
622
|
f"{PREFIX}tasks": _tasks,
|
|
@@ -668,7 +672,9 @@ f"{PREFIX}autonomy/mandate": _mandate_state,
|
|
|
668
672
|
#: gardé » (portefeuille et sonde exclus) vit avec le cache ; ``pulse_reload``, que la page posait sur un
|
|
669
673
|
#: rechargement du direct, reste accepté (et retiré) : il ne change jamais la réponse.
|
|
670
674
|
PULSE_RELOAD = "pulse_reload"
|
|
671
|
-
LIVE_ROUTES = frozenset(
|
|
675
|
+
LIVE_ROUTES = frozenset(
|
|
676
|
+
{f"{PREFIX}tasks", f"{PREFIX}attention", f"{PREFIX}sessions", f"{PREFIX}sheet", f"{PREFIX}tasks/accept-merged"}
|
|
677
|
+
)
|
|
672
678
|
|
|
673
679
|
|
|
674
680
|
#: Le flux Server-Sent Events du pouls (P10) : même charge utile que ``pulse``,
|
|
@@ -960,7 +966,7 @@ def _mandate_grant(project_root: Path, body: dict[str, Any]) -> Any:
|
|
|
960
966
|
verify_control_key,
|
|
961
967
|
)
|
|
962
968
|
from grimoire.missions.schemas import ORIGIN_HUMAN
|
|
963
|
-
|
|
969
|
+
refuse_foreign_body(project_root, body)
|
|
964
970
|
if not verify_control_key(body.get("control_key")):
|
|
965
971
|
raise PermissionError("clé de contrôle absente ou invalide : accorder un mandat est un geste d'humain")
|
|
966
972
|
try:
|
|
@@ -977,7 +983,7 @@ def _mandate_grant(project_root: Path, body: dict[str, Any]) -> Any:
|
|
|
977
983
|
def _mandate_revoke(project_root: Path, body: dict[str, Any]) -> Any:
|
|
978
984
|
"""Révoque le mandat actif — toujours permis derrière le jeton : retirer une autorité n'en demande aucune."""
|
|
979
985
|
from grimoire.missions.mandate import REVOKE_MANUAL, MandateStore
|
|
980
|
-
|
|
986
|
+
refuse_foreign_body(project_root, body)
|
|
981
987
|
revoked = MandateStore(project_root).revoke(REVOKE_MANUAL, str(body.get("reason") or ""))
|
|
982
988
|
return {"revoked": revoked.to_dict() if revoked else None}
|
|
983
989
|
|
|
@@ -992,7 +998,7 @@ def _autopilot_set(project_root: Path, body: dict[str, Any]) -> Any:
|
|
|
992
998
|
from grimoire.missions.autopilot import AutopilotStore
|
|
993
999
|
from grimoire.missions.mandate import JournalError, MandateRefusedError, verify_control_key
|
|
994
1000
|
from grimoire.missions.schemas import ORIGIN_HUMAN
|
|
995
|
-
|
|
1001
|
+
refuse_foreign_body(project_root, body)
|
|
996
1002
|
if not verify_control_key(body.get("control_key")):
|
|
997
1003
|
raise PermissionError("clé de contrôle absente ou invalide : le pilote automatique est un geste d'humain")
|
|
998
1004
|
if not isinstance(body.get("on"), bool):
|
|
@@ -1021,6 +1027,7 @@ POST_ROUTES: dict[str, _PostHandler] = {
|
|
|
1021
1027
|
f"{PREFIX}assist": _assist,
|
|
1022
1028
|
f"{PREFIX}tasks/migrate-standard": _task_migrate_standard,
|
|
1023
1029
|
f"{PREFIX}tasks/add": _task_add,
|
|
1030
|
+
f"{PREFIX}tasks/accept-merged": workspace_accept_merged.accept_merged,
|
|
1024
1031
|
f"{PREFIX}memory/correct": _memory_correct,
|
|
1025
1032
|
f"{PREFIX}tasks/intake": workspace_ideas.task_intake,
|
|
1026
1033
|
f"{PREFIX}tasks/intake/create": workspace_ideas.task_intake_create,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
3.84.0
|
|
@@ -20,9 +20,14 @@ haut (`#project-chip`, palette réduite aux projets, sans plafond). Plus de zoom
|
|
|
20
20
|
Flotte/Projet par espace. **L'URL dit tout** : `?project=<slug>` ou
|
|
21
21
|
`?scope=all`, puis `#<espace>[/<rubrique>][?<élément>]` — par exemple
|
|
22
22
|
`?project=grimoire-forge#travail?task=GAO-12`. Les anciens `#piloter`,
|
|
23
|
-
`#executer`… mènent à la rubrique qui les remplace.
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
`#executer`… mènent à la rubrique qui les remplace. **Le projet est celui de
|
|
24
|
+
l'onglet** (lot 4) : le choix est retenu dans `sessionStorage` et chaque
|
|
25
|
+
requête porte `?project=` ; deux onglets sur deux projets ne se déplacent
|
|
26
|
+
plus l'un l'autre, et le chat de l'orchestrateur suit l'onglet. La sélection
|
|
27
|
+
globale du serveur ne sert plus qu'à ouvrir un onglet neuf ou un lien ancien
|
|
28
|
+
sans paramètre. Un projet absent du registre, ou dont le dossier a disparu,
|
|
29
|
+
reste en **lecture seule** : un bandeau le dit en tête, avec la commande qui
|
|
30
|
+
le réenrôle.
|
|
26
31
|
|
|
27
32
|
Décisions et alternatives écartées :
|
|
28
33
|
[`docs/adr-006-vue-de-travail.md`](../../docs/adr-006-vue-de-travail.md).
|
|
@@ -235,12 +240,17 @@ d'écrire l'entrée, jamais de retirer la citation.
|
|
|
235
240
|
## Les routes
|
|
236
241
|
|
|
237
242
|
Tout ce que la vue de travail ajoute vit sous `/api/workspace/`. Les lectures
|
|
238
|
-
sont servies par **les deux hôtes**.
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
243
|
+
sont servies par **les deux hôtes**. Depuis le lot 4, une lecture nomme elle
|
|
244
|
+
aussi son projet : `?project=<slug>` est résolu par le registre, un slug
|
|
245
|
+
inconnu est un 404, et sans paramètre le cockpit garde son repli historique
|
|
246
|
+
(sélection courante, sinon projet primaire). Les écritures visent le projet
|
|
247
|
+
désigné par `?project=` : l'atelier l'ignore (il n'en sert qu'un), le cockpit
|
|
248
|
+
le résout dans son registre — tout projet ENRÔLÉ est inscriptible, pas
|
|
249
|
+
seulement celui qu'il a ouvert (lot 1, 2026-11-07). Les écritures SENSIBLES
|
|
250
|
+
(fichier, override, commande, mutations mémoire) exigent en plus, sur un autre
|
|
251
|
+
projet que celui d'ouverture, `confirm_project: "<slug>"` égal au slug visé
|
|
252
|
+
(lot 2). Les écritures d'AUTORITÉ — mandat, pilote automatique, fournisseurs —
|
|
253
|
+
nomment en plus leur projet dans le corps (lot 3, voir plus bas).
|
|
244
254
|
|
|
245
255
|
### Lectures — atelier et cockpit
|
|
246
256
|
|
|
@@ -306,6 +316,34 @@ Les écritures d'agents (`skill`, `fields`), les mouvements de tâche, les
|
|
|
306
316
|
blueprints et `/compile` ont suivi la même ouverture au lot 1 : tout projet
|
|
307
317
|
enrôlé est inscriptible, le slug venant de `?project=` et jamais d'un chemin.
|
|
308
318
|
|
|
319
|
+
### Écritures d'autorité — mandat, pilote, fournisseurs (lot 3)
|
|
320
|
+
|
|
321
|
+
Depuis un seul cockpit, le mandat, le pilote automatique et les fournisseurs de
|
|
322
|
+
**n'importe quel projet enrôlé** se pilotent par les mêmes routes qu'avant ;
|
|
323
|
+
seule la résolution change. Le projet visé est nommé **dans l'URL et dans le
|
|
324
|
+
corps** (`{"project": "<slug>", ...}`) :
|
|
325
|
+
|
|
326
|
+
| Route | Corps (en plus de `project`) |
|
|
327
|
+
|---|---|
|
|
328
|
+
| `POST /api/workspace/autonomy/mandate/grant` | `{gestures[], task_types[], max_sessions_per_day, until, control_key}` |
|
|
329
|
+
| `POST /api/workspace/autonomy/mandate/revoke` | `{reason?}` |
|
|
330
|
+
| `POST /api/workspace/autonomy/autopilot` | `{on: bool, control_key}` |
|
|
331
|
+
| `POST /api/workspace/providers` | `{action: enable\|disable, provider_id, control_key}` |
|
|
332
|
+
| `POST /api/workspace/providers/set-key` | `{provider_id, env_var, value, control_key}` |
|
|
333
|
+
|
|
334
|
+
Le slug est résolu par le registre (`registered_root`) — jamais un chemin envoyé
|
|
335
|
+
par le client. Un `project` de corps qui ne désigne pas la racine de `?project=`
|
|
336
|
+
est refusé (400), y compris pour un appel direct à la route ; absent, il ne dit
|
|
337
|
+
rien (compatibilité des appels historiques). Une écriture d'autorité sans slug
|
|
338
|
+
d'URL vaut 400 (« projet non nommé ») et un slug inconnu, non enrôlé ou dont le
|
|
339
|
+
dossier a disparu vaut 404 — au lieu du 403 « lecture seule » générique des
|
|
340
|
+
autres écritures. La garde de la clé de contrôle reste **identique** sur tous les
|
|
341
|
+
projets : `control_key_path()`, la même clé lue dans le terminal, les mêmes
|
|
342
|
+
refus (403 sans clé valide). Le front nomme le projet cible avant le champ de la
|
|
343
|
+
clé (carte Fournisseurs, rubrique Mandat et pilote, geste du pilote dans le
|
|
344
|
+
chat) ; en portée « Tous les projets », il invite à choisir un projet au lieu de
|
|
345
|
+
deviner la cible.
|
|
346
|
+
|
|
309
347
|
## Ce que la Console accepte
|
|
310
348
|
|
|
311
349
|
`POST /api/workspace/command` n'exécute que des sous-commandes `grimoire` de
|