Files changed: - .claude/settings.json - .gitea/workflows/ci.yml - .gitea/workflows/nightly.yml - .gitea/workflows/release.yml - .gitea/workflows/tracker-live.yml - .github/hooks/wiki-trace.json - .gitignore - .vibe/hooks.toml - AGENTS.md - CHANGES.md - EVALS.md - INSTALL.md - README.md - VERSION - instructions/bootstrap.md - instructions/preflight.md - instructions/setup-instance.md - instructions/upgrade-instance.md - tools/CONTRACT.md - tools/README.md - tools/chemenu/cli.py - tools/chemenu/commands/dist_cmd.py - tools/chemenu/commands/docs_verify.py - tools/chemenu/commands/doctor.py - tools/chemenu/commands/git_publish.py - tools/chemenu/commands/migrate_cmd.py - tools/chemenu/config.py - tools/chemenu/corpus_cache.py - tools/chemenu/prerequisites.py - tools/chemenu/search/ripgrep.py - tools/chemenu/tests/conftest.py - tools/chemenu/tests/test_dist_upgrade.py - tools/chemenu/tests/test_doctor.py - tools/chemenu/tests/test_preflight.py - tools/chemenu/toolpaths.py - tools/preflight.sh - tools/prerequisites.txt - tools/run_wikitool.py - tools/trace-hook - tools/wikitool
40 lines
1.7 KiB
TOML
40 lines
1.7 KiB
TOML
# Session tracing for Mistral Vibe Code.
|
|
#
|
|
# Verified against mistral-vibe 2.24.2 (vibe/core/hooks/models.py): the file is
|
|
# an array of `[[hooks]]` tables, each with a unique `name`, a `type` of
|
|
# pre_tool | post_tool | post_agent, and a `command` run through a shell with
|
|
# the invocation JSON on stdin.
|
|
#
|
|
# Vibe loads this file only for a trusted folder. See ../EVALS.md for what the
|
|
# three events can and cannot say - there is no session, prompt, compaction or
|
|
# permission hook to attach to, so a Vibe trace is thinner than a Copilot one
|
|
# and says so in its own `completeness` list.
|
|
|
|
[[hooks]]
|
|
name = "wiki-trace-pre-tool"
|
|
type = "pre_tool"
|
|
description = "Record an intended tool call. Observational only - never decides."
|
|
command = "./tools/trace-hook --source mistral-vibe --event tool.pre 2>/dev/null || true"
|
|
timeout = 5.0
|
|
# `strict = false` is the default and is spelled out here because it is the
|
|
# safety property that matters: under a non-strict hook, a crash or a timeout is
|
|
# a no-op warning, so a broken observer can never deny a tool call. Set it to
|
|
# true only for a hook that is meant to enforce something.
|
|
strict = false
|
|
|
|
[[hooks]]
|
|
name = "wiki-trace-post-tool"
|
|
type = "post_tool"
|
|
description = "Record the outcome of a tool call: status, output, duration."
|
|
command = "./tools/trace-hook --source mistral-vibe --event tool.post 2>/dev/null || true"
|
|
timeout = 5.0
|
|
strict = false
|
|
|
|
# `strict` and `match` are rejected on post_agent - they are tool-hook fields.
|
|
[[hooks]]
|
|
name = "wiki-trace-post-agent"
|
|
type = "post_agent"
|
|
description = "Record the end of an agent turn."
|
|
command = "./tools/trace-hook --source mistral-vibe --event turn.end 2>/dev/null || true"
|
|
timeout = 5.0
|