Conversation
A tool can name a command plugin as its source, as in `source = "command.ticket.create"`, and JP runs the plugin for each call under the query's own configuration. The plugin receives its effective `plugins.command.<name>.options`, including nested `.jp.toml` files, conversation config, and `--cfg` overrides, rather than starting a child `jp` that resolves configuration from the workspace root. A package in a monorepo that points the ticket plugin at its own directory gets its tickets written there. Plugin tools follow the same rules as local tools. `run`, `result`, and `format` apply unchanged, and `access` grants, including `conversation.tools.'*'.access` and `--mount`, are compiled and sent to the plugin to enforce. The binary is admitted once when the turn starts, under the same `plugins.command.<name>.run` policy and saved approvals as `jp <plugin>`. A refused plugin's tools are left out of the turn with a notice, forcing one with `--tool` fails the query, and a binary replaced mid-turn is refused. `style.parameters = "tool"` lets a local or plugin tool describe its own call: JP runs the tool with the `format_arguments` action instead of a separate formatter command. Tool calls need plugin protocol 12, in which `init` carries a `tool`, stdin closes after it, and the plugin answers with `tool_outcome`. Closes: T-0vm44ks Signed-off-by: Jean Mertz <git@jeanmertz.com>
Signed-off-by: Jean Mertz <git@jeanmertz.com>
Signed-off-by: Jean Mertz <git@jeanmertz.com>
JeanMertz
force-pushed
the
ticket-0vm44ks
branch
from
October 2, 2026 21:48
045be07 to
3dd5667
Compare
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
A tool can name a command plugin as its source, as in
source = "plugin.command.ticket.create", and JP runs the plugin for each call under the query's own configuration. The plugin receives its effectiveplugins.command.<name>.options, including nested.jp.tomlfiles, conversation config, and--cfgoverrides, rather than starting a childjpthat resolves configuration from the workspace root. A package in a monorepo that points the ticket plugin at its own directory gets its tickets written there.Plugin tools follow the same rules as local tools.
run,result, andformatapply unchanged, andaccessgrants, includingconversation.tools.'*'.accessand--mount, are compiled and sent to the plugin to enforce. The binary is admitted once when the turn starts, under the sameplugins.command.<name>.runpolicy and saved approvals asjp <plugin>. A refused plugin's tools are left out of the turn with a notice, forcing one with--toolfails the query, and a binary replaced mid-turn is refused.style.parameters = "tool"lets a local or plugin tool describe its own call: JP runs the tool with theformat_argumentsaction instead of a separate formatter command. Tool calls need plugin protocol 12, in whichinitcarries atool, stdin closes after it, and the plugin answers withtool_outcomefollowed byexit. The ticket tools still run throughjust serve-tools; moving them ontoplugin.command.ticketis left to the branch that adds their plugin handler.Also files T-0vnd5xf, a cancelled tool whose processes outlive it (now covered on Unix by
jp_process, still open on Windows), and T-0vnx563, finding open PRs that touch a path.Closes: T-0vm44ks