Identity and approvals - #728
Merged
Merged
Conversation
…s whose write waits for a person
|
Preview deployment for your docs. Learn more about Mintlify Previews.
💡 Tip: Enable Automations to automatically generate PRs for you. |
…-approvals # Conflicts: # agent/src/index.ts # cli/src/project.ts
breardon2011
marked this pull request as ready for review
September 12, 2026 03:59
…ve — a gated tool was always a tool whose run() we write for you, so defineGatedTool duplicated a name for what is really a property of one; supplying preview() and apply() instead of run() now makes the model's call a proposal, useTool is unchanged, and the compiler reads gating from the syntax tree because it is no longer visible in the callee's name and a textual match would read a JSON Schema property called preview as a gate
…to a tenant or a person — the tools page still taught a defineGatedTool that no longer exists, and useSecret's scope was undocumented entirely despite being the thing that stops one deployment handing every customer's agent every other customer's credential
breardon2011
added a commit
that referenced
this pull request
Sep 15, 2026
… kept both rows in the capabilities table and both nav entries, kept the callService pointer alongside the approvals section in tools.mdx, and added a note distinguishing the two GitHub paths #735 introduced: callService proxies the REST API, useConnection injects a token for git and gh
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.
input.channelA turn started by a channel message now carries the sender's identity:
provider,connectionId,workspaceId, and the conversation it arrivedin. Absent for turns that did not come from a channel.
useSecret(name, { scope })Scope is
project(default, unchanged),tenant, oruser. A tenantsecret resolves from the channel installation the message arrived through;
a user secret resolves from the person being acted for. Both are fixed when
the session starts. If no secret is set for that tenant or user, the call is
refused and the request never leaves the runtime — there is no fallback to
the project secret.
Tools that wait for approval
defineToolacceptspreviewandapplyin place ofrun. When the modelcalls such a tool,
previewruns, a proposal is recorded under the callingmessage's id, and the model is told the proposal was recorded and to stop.
Nothing is written.
applyruns later, from the arguments in the proposal,once a decision arrives — it receives that decision on its context. Calling
the same tool twice with the same message id yields one proposal.
previewwithoutapply, orapplywithoutpreview, is rejected. So issupplying
runalongside them.The compiler records which tools are gated in the artifact manifest. It reads
this from the syntax tree — the presence of
previewandapplyon theobject literal — rather than by matching source text.