diff --git a/docs/designs/DECISIONS.md b/docs/designs/DECISIONS.md index 2910ed78..b2e830d9 100644 --- a/docs/designs/DECISIONS.md +++ b/docs/designs/DECISIONS.md @@ -223,6 +223,7 @@ check enforces the mechanical half. Full rationale: | DL-324 | The forge live-test Linear credential is app-actor ONLY — DL-308's retain-one-Linear-user-credential carve-out is dropped (Matt's RIG-3096 pivot): the `livegithub` oracle's Linear legs gate on a single env var, `LINEAR_FORGE` (`go/internal/forge/livegithub_test.go:65`, consumed by `requireLinear` :91-99), minted as an app-actor token per CI run by `tools/forge-linear-token/index.ts` via the client_credentials grant from the `LINEAR_FORGE_CLIENT_ID`/`_SECRET` Actions secrets (`.github/workflows/ci.yml:1002-1004`) — with NO `LINEAR_FORGE_USER_TOKEN` (zero code hits) and no human→app delegation-setup step in CI. Supersedes DL-308's Linear-user-cred clause ONLY — DL-308's GitHub App-installation-token-mint clause stays live, so DL-308 itself remains Active | Active (Matt, 2026-09-02) | [forge app credentials](server/compass-forge-app-credentials/design.md) | | DL-342 | The forge state-transition write op is a parallel-arm pair (`TransitionIssueState` / `TransitionPullRequestState` on `forge.Provider`, `transition_issue_state` / `transition_pull_request_state` on `ForgeCallRequest`) over a portable `{open, closed}` core plus per-provider refinements carried in one `TransitionState` input (`close_reason` for GitHub issues, `workflow_state` for Linear). Every mismatch fails LOUD and in-band as `invalid_argument` before any provider call: a refinement the target provider cannot express, an unknown or ambiguous Linear state name, a named state whose type contradicts the portable target, and — per the OQ-2 ruling — a default resolution finding MORE THAN ONE candidate state, which names the candidates and demands an explicit `workflow_state` rather than taking a positional guess. Defaulting happens only where the target is unambiguous (default-close resolves against `completed`, never `canceled`). The Linear PR half returns `ErrUnsupported` (Linear is issues-only). Transitions are NOT F3-deduped and NOT DL-055-recorded — not the comment arm's reason (a comment has no representable coordinate) but because a transition targets a coordinate whose row is a write-once authorship fact whose `client_request_id` backs the create's F3 memo, so routing a transition through the record path would overwrite it. Amends DL-241's tool count by citation (twelve tools, rule unchanged). | Active (Matt, 2026-09-07) | [forge state transition](server/compass-forge-state-transition/design.md) | | DL-343 | Forge transition actor attribution rides a CONSUMABLE `forge_state_transitions` memo, never a parsed-text or author-row proxy: written after a successful transition at the same attribution chokepoint every forge write rides, then consumed on match at the notify lane so the provider-echoed STATE event resolves to the acting agent. Tenant-scoped like its `forge_authored_artifacts` sibling, and fail-open on a miss (a late webhook loses attribution; it never blocks or misattributes). This is the contract surface the RIG-3326 self-origin suppression record's STATE arm keys on, and it settles that cross-record question in the memo's favour: RIG-3326's frozen text describes the actor as stamped onto the emitted event, so its STATE arm bends to a memo lookup at the actor-resolution seam. The rejected alternative was a synthetic STATE event emitted at the chokepoint — equivalent for the suppression outcome, but it invents an event the forge never sent. Landing the seam is what closes RIG-3326's interim-open STATE arm. | Active (Matt, 2026-09-07) | [forge state transition](server/compass-forge-state-transition/design.md) | +| DL-350 | The PR-addressing wire field is spelled `pr_number` everywhere on `ForgeCallRequest`: `CommentOnPullRequestRequest`, `GetPullRequestRequest`, and `SubmitReviewRequest` converge from `pull_number` onto the spelling `TransitionPullRequestStateRequest` already carried, and the agent tools' arktype parameter takes the same name, removing the `prNumber: BigInt(params.pull_number)` mapping that made one value answer to two names. Field numbers are unchanged, so the encoding is identical and no compatibility shim is owed. Scoped to the wire field only: `ingest.PullNumberResolver` / `PullNumberForSHA` keeps its name, being a different concept (resolving a `check_suite` head SHA to its PR number) rather than a PR-addressing field. Recorded here because the arktype key is the agent-facing tool API and no compiler or drift gate reconciles a reader against it — three older records still show `pull_number` in illustrative snippets, and this row, not an in-place rewrite of a frozen record, is what points a reader at current truth. | Active (Matt, 2026-09-08) | [compass agent forge tools](agent/compass-agent-forge-tools/design.md) | ## Agent roles & prompts diff --git a/go/internal/gen/compass/v1/agent_gateway.pb.go b/go/internal/gen/compass/v1/agent_gateway.pb.go index b907eb95..d67f8d01 100644 --- a/go/internal/gen/compass/v1/agent_gateway.pb.go +++ b/go/internal/gen/compass/v1/agent_gateway.pb.go @@ -2135,7 +2135,7 @@ func (x *CreatePullRequestRequest) GetDraft() bool { type CommentOnPullRequestRequest struct { state protoimpl.MessageState `protogen:"open.v1"` Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"` - PullNumber uint64 `protobuf:"varint,2,opt,name=pull_number,json=pullNumber,proto3" json:"pull_number,omitempty"` + PrNumber uint64 `protobuf:"varint,2,opt,name=pr_number,json=prNumber,proto3" json:"pr_number,omitempty"` Body string `protobuf:"bytes,3,opt,name=body,proto3" json:"body,omitempty"` // WITHOUT the owner header unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache @@ -2178,9 +2178,9 @@ func (x *CommentOnPullRequestRequest) GetRepo() string { return "" } -func (x *CommentOnPullRequestRequest) GetPullNumber() uint64 { +func (x *CommentOnPullRequestRequest) GetPrNumber() uint64 { if x != nil { - return x.PullNumber + return x.PrNumber } return 0 } @@ -2195,7 +2195,7 @@ func (x *CommentOnPullRequestRequest) GetBody() string { type GetPullRequestRequest struct { state protoimpl.MessageState `protogen:"open.v1"` Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"` - PullNumber uint64 `protobuf:"varint,2,opt,name=pull_number,json=pullNumber,proto3" json:"pull_number,omitempty"` + PrNumber uint64 `protobuf:"varint,2,opt,name=pr_number,json=prNumber,proto3" json:"pr_number,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -2237,9 +2237,9 @@ func (x *GetPullRequestRequest) GetRepo() string { return "" } -func (x *GetPullRequestRequest) GetPullNumber() uint64 { +func (x *GetPullRequestRequest) GetPrNumber() uint64 { if x != nil { - return x.PullNumber + return x.PrNumber } return 0 } @@ -2247,7 +2247,7 @@ func (x *GetPullRequestRequest) GetPullNumber() uint64 { type SubmitReviewRequest struct { state protoimpl.MessageState `protogen:"open.v1"` Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"` // REQUIRED; empty is invalid_argument - PullNumber uint64 `protobuf:"varint,2,opt,name=pull_number,json=pullNumber,proto3" json:"pull_number,omitempty"` + PrNumber uint64 `protobuf:"varint,2,opt,name=pr_number,json=prNumber,proto3" json:"pr_number,omitempty"` Verdict string `protobuf:"bytes,3,opt,name=verdict,proto3" json:"verdict,omitempty"` // "approve" | "request_changes" | "comment" Body string `protobuf:"bytes,4,opt,name=body,proto3" json:"body,omitempty"` // WITHOUT the owner header; the Server stamps it Comments []*ReviewCommentInput `protobuf:"bytes,5,rep,name=comments,proto3" json:"comments,omitempty"` // inline comments; may be empty @@ -2292,9 +2292,9 @@ func (x *SubmitReviewRequest) GetRepo() string { return "" } -func (x *SubmitReviewRequest) GetPullNumber() uint64 { +func (x *SubmitReviewRequest) GetPrNumber() uint64 { if x != nil { - return x.PullNumber + return x.PrNumber } return 0 } @@ -3426,20 +3426,17 @@ const file_compass_v1_agent_gateway_proto_rawDesc = "" + "\x04body\x18\x03 \x01(\tR\x04body\x12\x19\n" + "\bhead_ref\x18\x04 \x01(\tR\aheadRef\x12\x19\n" + "\bbase_ref\x18\x05 \x01(\tR\abaseRef\x12\x14\n" + - "\x05draft\x18\x06 \x01(\bR\x05draft\"f\n" + + "\x05draft\x18\x06 \x01(\bR\x05draft\"b\n" + "\x1bCommentOnPullRequestRequest\x12\x12\n" + - "\x04repo\x18\x01 \x01(\tR\x04repo\x12\x1f\n" + - "\vpull_number\x18\x02 \x01(\x04R\n" + - "pullNumber\x12\x12\n" + - "\x04body\x18\x03 \x01(\tR\x04body\"L\n" + + "\x04repo\x18\x01 \x01(\tR\x04repo\x12\x1b\n" + + "\tpr_number\x18\x02 \x01(\x04R\bprNumber\x12\x12\n" + + "\x04body\x18\x03 \x01(\tR\x04body\"H\n" + "\x15GetPullRequestRequest\x12\x12\n" + - "\x04repo\x18\x01 \x01(\tR\x04repo\x12\x1f\n" + - "\vpull_number\x18\x02 \x01(\x04R\n" + - "pullNumber\"\xb4\x01\n" + + "\x04repo\x18\x01 \x01(\tR\x04repo\x12\x1b\n" + + "\tpr_number\x18\x02 \x01(\x04R\bprNumber\"\xb0\x01\n" + "\x13SubmitReviewRequest\x12\x12\n" + - "\x04repo\x18\x01 \x01(\tR\x04repo\x12\x1f\n" + - "\vpull_number\x18\x02 \x01(\x04R\n" + - "pullNumber\x12\x18\n" + + "\x04repo\x18\x01 \x01(\tR\x04repo\x12\x1b\n" + + "\tpr_number\x18\x02 \x01(\x04R\bprNumber\x12\x18\n" + "\averdict\x18\x03 \x01(\tR\averdict\x12\x12\n" + "\x04body\x18\x04 \x01(\tR\x04body\x12:\n" + "\bcomments\x18\x05 \x03(\v2\x1e.compass.v1.ReviewCommentInputR\bcomments\"d\n" + diff --git a/go/server/forge.go b/go/server/forge.go index 065e649e..326bbda1 100644 --- a/go/server/forge.go +++ b/go/server/forge.go @@ -481,7 +481,7 @@ func (s *forgeService) commentOnPullRequest(ctx context.Context, caller store.Ac if err != nil { return forgeErrorResult(mapForgeError(err, forgeOp{provider: rf.author.Name(), op: "comment_on_pull_request", bodyLen: len(req.GetBody()), bodyLimit: rf.bodyLimit})) } - cm, err := rf.author.CommentOnPullRequest(ctx, req.GetRepo(), req.GetPullNumber(), body) + cm, err := rf.author.CommentOnPullRequest(ctx, req.GetRepo(), req.GetPrNumber(), body) if err != nil { return forgeErrorResult(mapForgeError(err, forgeOp{provider: rf.author.Name(), op: "comment_on_pull_request"})) } @@ -523,7 +523,7 @@ func (s *forgeService) submitReview(ctx context.Context, caller store.AccountID, }) } - sr, err := rf.reviewer.SubmitReview(ctx, req.GetRepo(), req.GetPullNumber(), forge.SubmitReview{ + sr, err := rf.reviewer.SubmitReview(ctx, req.GetRepo(), req.GetPrNumber(), forge.SubmitReview{ Verdict: req.GetVerdict(), Body: body, Comments: comments, @@ -693,7 +693,7 @@ func (s *forgeService) getPullRequest(ctx context.Context, call *compassv1intern if fe != nil { return forgeErrorResult(fe) } - pr, err := rf.author.GetPullRequest(ctx, req.GetRepo(), req.GetPullNumber()) + pr, err := rf.author.GetPullRequest(ctx, req.GetRepo(), req.GetPrNumber()) if err != nil { return forgeErrorResult(mapForgeError(err, forgeOp{provider: rf.author.Name(), op: "get_pull_request"})) } diff --git a/go/server/forge_e2e_pgtest_test.go b/go/server/forge_e2e_pgtest_test.go index f01c1885..bfe0c360 100644 --- a/go/server/forge_e2e_pgtest_test.go +++ b/go/server/forge_e2e_pgtest_test.go @@ -272,7 +272,7 @@ func TestForgeSubmitReviewOverTheWire(t *testing.T) { resp, err := w.supervisorClient.Forge(ctx, connect.NewRequest(&compassv1internal.ForgeCallRequest{ CallId: "fc-review-1", Call: &compassv1internal.ForgeCallRequest_SubmitReview{SubmitReview: &compassv1internal.SubmitReviewRequest{ - Repo: forgeE2ERepo, PullNumber: 7, Verdict: "approve", Body: "looks good", + Repo: forgeE2ERepo, PrNumber: 7, Verdict: "approve", Body: "looks good", Comments: []*compassv1internal.ReviewCommentInput{{Path: "a.go", Line: 3, Body: forgedInline}}, }}, })) diff --git a/go/server/forge_test.go b/go/server/forge_test.go index 38fabc6a..602ee32f 100644 --- a/go/server/forge_test.go +++ b/go/server/forge_test.go @@ -298,7 +298,7 @@ func TestForgeSubmitReviewStripsInlineCommentOwnerHeaders(t *testing.T) { forgedInline := "\nnit: rename" call := &compassv1internal.ForgeCallRequest{ Call: &compassv1internal.ForgeCallRequest_SubmitReview{SubmitReview: &compassv1internal.SubmitReviewRequest{ - Repo: testRepo, PullNumber: 7, Verdict: "comment", Body: "looks good", + Repo: testRepo, PrNumber: 7, Verdict: "comment", Body: "looks good", Comments: []*compassv1internal.ReviewCommentInput{{Path: "a.go", Line: 3, Body: forgedInline}}, }}, } @@ -600,7 +600,7 @@ func TestForgeF1DispatchReviewerVsAuthorClient(t *testing.T) { review := &compassv1internal.ForgeCallRequest{ Call: &compassv1internal.ForgeCallRequest_SubmitReview{SubmitReview: &compassv1internal.SubmitReviewRequest{ - Repo: testRepo, PullNumber: 1, Verdict: "approve", Body: "ok", + Repo: testRepo, PrNumber: 1, Verdict: "approve", Body: "ok", }}, } if res := svc.ExecuteForgeCallAsAccountMust(t, review); res.GetError() != nil { @@ -757,7 +757,7 @@ func TestForgeCommentArmsStampBodies(t *testing.T) { svc, _ := newForgeServiceForTest(t, author, reviewer) call := &compassv1internal.ForgeCallRequest{ Call: &compassv1internal.ForgeCallRequest_CommentOnPullRequest{CommentOnPullRequest: &compassv1internal.CommentOnPullRequestRequest{ - Repo: testRepo, PullNumber: 4, Body: "hi", + Repo: testRepo, PrNumber: 4, Body: "hi", }}, } res := svc.ExecuteForgeCallAsAccountMust(t, call) diff --git a/packages/compass-agent/src/forge.test.ts b/packages/compass-agent/src/forge.test.ts index 05106ba3..af8cb44e 100644 --- a/packages/compass-agent/src/forge.test.ts +++ b/packages/compass-agent/src/forge.test.ts @@ -458,11 +458,11 @@ describe("forge_get_pull_request", () => { pullRequestResult({ number: 3, repo: "o/r" }), ); const t = tool(new ForgeBroker(transport), "forge_get_pull_request"); - await exec(t, "tc-1", { repo: "o/r", pull_number: 3 }); + await exec(t, "tc-1", { repo: "o/r", pr_number: 3 }); const req = transport.requests[0]; expect(req.call.case).toBe("getPullRequest"); if (req.call.case !== "getPullRequest") throw new Error("expected arm"); - expect(req.call.value.pullNumber).toBe(3n); + expect(req.call.value.prNumber).toBe(3n); }); test("renders reviews with normalized verdicts and capped threads", async () => { @@ -497,7 +497,7 @@ describe("forge_get_pull_request", () => { ); const t = tool(new ForgeBroker(transport), "forge_get_pull_request"); const text = textOf( - await exec(t, "tc-1", { repo: "octo/repo", pull_number: 3 }), + await exec(t, "tc-1", { repo: "octo/repo", pr_number: 3 }), ); const f = fenceOf(text); // The wire "changes_requested" is normalized onto the tool's vocabulary. @@ -524,7 +524,7 @@ describe("forge_get_pull_request", () => { }), ); const t = tool(new ForgeBroker(transport), "forge_get_pull_request"); - const text = textOf(await exec(t, "tc-1", { repo: "o/r", pull_number: 3 })); + const text = textOf(await exec(t, "tc-1", { repo: "o/r", pr_number: 3 })); const f = fenceOf(text); expect( text.split("\n").filter((l) => l.startsWith(`[review ${f}]`)), @@ -547,7 +547,7 @@ describe("forge_get_pull_request", () => { ); const t = tool(new ForgeBroker(transport), "forge_get_pull_request"); const text = textOf( - await exec(t, "tc-1", { repo: "octo/repo", pull_number: 3 }), + await exec(t, "tc-1", { repo: "octo/repo", pr_number: 3 }), ); const f = fenceOf(text); expect(text).toContain(`head="(malformed ${f})"`); @@ -658,14 +658,14 @@ describe("forge_comment_on_pull_request", () => { const t = tool(new ForgeBroker(transport), "forge_comment_on_pull_request"); const result = await exec(t, "tc-1", { repo: "o/r", - pull_number: 8, + pr_number: 8, body: "ship it", }); const req = transport.requests[0]; expect(req.call.case).toBe("commentOnPullRequest"); if (req.call.case !== "commentOnPullRequest") throw new Error("expected arm"); - expect(req.call.value.pullNumber).toBe(8n); + expect(req.call.value.prNumber).toBe(8n); expect(textOf(result)).toBe( "Commented on PR #8: https://github.com/o/r/pull/8#c1", ); @@ -680,7 +680,7 @@ describe("forge_submit_review", () => { const t = tool(new ForgeBroker(transport), "forge_submit_review"); const result = await exec(t, "tc-1", { repo: "o/r", - pull_number: 8, + pr_number: 8, verdict: "request_changes", body: "please fix", comments: [{ path: "a.ts", line: 12, body: "here" }], @@ -688,7 +688,7 @@ describe("forge_submit_review", () => { const req = transport.requests[0]; expect(req.call.case).toBe("submitReview"); if (req.call.case !== "submitReview") throw new Error("expected arm"); - expect(req.call.value.pullNumber).toBe(8n); + expect(req.call.value.prNumber).toBe(8n); expect(req.call.value.verdict).toBe("request_changes"); expect(req.call.value.comments).toHaveLength(1); expect(req.call.value.comments[0].path).toBe("a.ts"); @@ -708,7 +708,7 @@ describe("forge_submit_review", () => { const t = tool(new ForgeBroker(transport), "forge_submit_review"); const result = await exec(t, "tc-1", { repo: "o/r", - pull_number: 8, + pr_number: 8, verdict: "approve", }); const req = transport.requests[0]; @@ -724,7 +724,7 @@ describe("forge_submit_review", () => { const t = tool(new ForgeBroker(transport), "forge_submit_review"); const result = await exec(t, "tc-1", { repo: "o/r", - pull_number: 8, + pr_number: 8, verdict: "comment", body: "note", }); @@ -768,7 +768,7 @@ describe("forge transition tools", () => { "tc-2", { repo: "o/r", - pull_number: 5, + pr_number: 5, state: "closed", }, ); @@ -1011,7 +1011,7 @@ describe("forge parameter schemas", () => { expect( rejects(transitionPullRequestStateParameters, { repo: "o/r", - pull_number: 5, + pr_number: 5, state: "Done", }), ).toBe(true); @@ -1092,7 +1092,7 @@ describe("forge parameter schemas", () => { expect( rejects(submitReviewParameters, { repo: "o/r", - pull_number: 1, + pr_number: 1, verdict: "lgtm", }), ).toBe(true); @@ -1102,14 +1102,14 @@ describe("forge parameter schemas", () => { expect( rejects(submitReviewParameters, { repo: "o/r", - pull_number: 1, + pr_number: 1, verdict: "request_changes", }), ).toBe(true); expect( rejects(submitReviewParameters, { repo: "o/r", - pull_number: 1, + pr_number: 1, verdict: "request_changes", body: " ", }), @@ -1117,7 +1117,7 @@ describe("forge parameter schemas", () => { expect( rejects(submitReviewParameters, { repo: "o/r", - pull_number: 1, + pr_number: 1, verdict: "request_changes", body: "please fix", }), @@ -1126,7 +1126,7 @@ describe("forge parameter schemas", () => { expect( rejects(submitReviewParameters, { repo: "o/r", - pull_number: 1, + pr_number: 1, verdict: "approve", }), ).toBe(false); diff --git a/packages/compass-agent/src/forge.ts b/packages/compass-agent/src/forge.ts index 10c7f4e8..5743bbb9 100644 --- a/packages/compass-agent/src/forge.ts +++ b/packages/compass-agent/src/forge.ts @@ -163,7 +163,7 @@ export const getIssueParameters = type({ export const getPullRequestParameters = type({ ...forgeSelector, repo: nonBlank(REPO_DESC), - pull_number: type("number.integer >= 1"), + pr_number: type("number.integer >= 1"), }); /** Exported so a test can validate the wire contract the agent loop enforces. */ @@ -193,7 +193,7 @@ export const commentOnIssueParameters = type({ export const commentOnPullRequestParameters = type({ ...forgeSelector, repo: nonBlank(REPO_DESC), - pull_number: type("number.integer >= 1"), + pr_number: type("number.integer >= 1"), body: nonBlank(STAMP_DESC), }); @@ -206,7 +206,7 @@ export const commentOnPullRequestParameters = type({ export const submitReviewParameters = type({ ...forgeSelector, repo: nonBlank(REPO_DESC), - pull_number: type("number.integer >= 1"), + pr_number: type("number.integer >= 1"), verdict: type("'approve' | 'request_changes' | 'comment'"), "body?": type("string").describe( "Review summary; required unless verdict is 'approve'. Do NOT include an attribution header — the server stamps it", @@ -292,7 +292,7 @@ export const transitionIssueStateParameters = type({ export const transitionPullRequestStateParameters = type({ ...forgeSelector, repo: nonBlank(REPO_DESC), - pull_number: type("number.integer >= 1"), + pr_number: type("number.integer >= 1"), state: type("'open' | 'closed'").describe("Target pull-request state"), }); @@ -511,7 +511,7 @@ function framedRead(records: string[]): string { // well-formed URL and slug). No fence: a single line names none. function reviewAck( - pullNumber: bigint, + prNumber: bigint, review: ReviewRef, fallbackVerdict: string, ): string { @@ -519,7 +519,7 @@ function reviewAck( review.verdict.length > 0 ? normalizeVerdict(review.verdict) : fallbackVerdict; - return `Submitted ${attr(verdict)} review on PR #${attr(String(pullNumber))}: ${ref(review.url)}`; + return `Submitted ${attr(verdict)} review on PR #${attr(String(prNumber))}: ${ref(review.url)}`; } // DL-206 dedup-hit: a replayed create returns a skeletal artifact carrying only @@ -606,7 +606,7 @@ export function createForgeTools(broker: ForgeBroker): AgentTool[] { case: "getPullRequest", value: create(GetPullRequestRequestSchema, { repo: params.repo, - pullNumber: BigInt(params.pull_number), + prNumber: BigInt(params.pr_number), }), }, forge: forgeRef(params), @@ -713,7 +713,7 @@ export function createForgeTools(broker: ForgeBroker): AgentTool[] { case: "commentOnPullRequest", value: create(CommentOnPullRequestRequestSchema, { repo: params.repo, - pullNumber: BigInt(params.pull_number), + prNumber: BigInt(params.pr_number), body: params.body, }), }, @@ -730,7 +730,7 @@ export function createForgeTools(broker: ForgeBroker): AgentTool[] { content: [ { type: "text", - text: `Commented on PR #${attr(String(BigInt(params.pull_number)))}: ${ref(result.result.value.url)}`, + text: `Commented on PR #${attr(String(BigInt(params.pr_number)))}: ${ref(result.result.value.url)}`, }, ], }; @@ -751,7 +751,7 @@ export function createForgeTools(broker: ForgeBroker): AgentTool[] { case: "submitReview", value: create(SubmitReviewRequestSchema, { repo: params.repo, - pullNumber: BigInt(params.pull_number), + prNumber: BigInt(params.pr_number), verdict: params.verdict, body: params.body ?? "", comments: (params.comments ?? []).map((c) => @@ -774,7 +774,7 @@ export function createForgeTools(broker: ForgeBroker): AgentTool[] { { type: "text", text: reviewAck( - BigInt(params.pull_number), + BigInt(params.pr_number), result.result.value, params.verdict, ), @@ -916,7 +916,7 @@ export function createForgeTools(broker: ForgeBroker): AgentTool[] { case: "transitionPullRequestState", value: create(TransitionPullRequestStateRequestSchema, { repo: params.repo, - prNumber: BigInt(params.pull_number), + prNumber: BigInt(params.pr_number), state: params.state, }), }, diff --git a/packages/compass-agent/src/gen/compass/v1/agent_gateway_pb.ts b/packages/compass-agent/src/gen/compass/v1/agent_gateway_pb.ts index 54ab2c75..f5457c46 100644 --- a/packages/compass-agent/src/gen/compass/v1/agent_gateway_pb.ts +++ b/packages/compass-agent/src/gen/compass/v1/agent_gateway_pb.ts @@ -48,7 +48,7 @@ import type { Message } from "@bufbuild/protobuf"; * Describes the file compass/v1/agent_gateway.proto. */ export const file_compass_v1_agent_gateway: GenFile = /*@__PURE__*/ - fileDesc("Ch5jb21wYXNzL3YxL2FnZW50X2dhdGV3YXkucHJvdG8SCmNvbXBhc3MudjEiuwQKEENvbW1zQ2FsbFJlcXVlc3QSDwoHY2FsbF9pZBgBIAEoCRIuCgRwb3N0GAIgASgLMh4uY29tcGFzcy52MS5Qb3N0TWVzc2FnZVJlcXVlc3RIABIvCgRsaXN0GAMgASgLMh8uY29tcGFzcy52MS5MaXN0TWVzc2FnZXNSZXF1ZXN0SAASLgoGcm9zdGVyGAQgASgLMhwuY29tcGFzcy52MS5HZXRSb3N0ZXJSZXF1ZXN0SAASNwoKc2V0X3N0YXR1cxgFIAEoCzIhLmNvbXBhc3MudjEuU2V0QWdlbnRTdGF0dXNSZXF1ZXN0SAASMwoDcGluGAYgASgLMiQuY29tcGFzcy52MS5VcGRhdGVQaW5uZWRCb2FyZFJlcXVlc3RIABI6Cg5jcmVhdGVfY2hhbm5lbBgHIAEoCzIgLmNvbXBhc3MudjEuQ3JlYXRlQ2hhbm5lbFJlcXVlc3RIABJBCg51cGRhdGVfbWVtYmVycxgIIAEoCzInLmNvbXBhc3MudjEuVXBkYXRlQ2hhbm5lbE1lbWJlcnNSZXF1ZXN0SAASRQoUY3JlYXRlX2NoYW5uZWxfZ3JvdXAYCSABKAsyJS5jb21wYXNzLnYxLkNyZWF0ZUNoYW5uZWxHcm91cFJlcXVlc3RIABIsCgdvcGVuX2RtGAsgASgLMhkuY29tcGFzcy52MS5PcGVuRE1SZXF1ZXN0SAASGwoTdHJpZ2dlcl90cmFjZXBhcmVudBgKIAEoCUIGCgRjYWxsItUECg9Db21tc0NhbGxSZXN1bHQSDwoHY2FsbF9pZBgBIAEoCRIvCgRwb3N0GAIgASgLMh8uY29tcGFzcy52MS5Qb3N0TWVzc2FnZVJlc3BvbnNlSAASMAoEbGlzdBgDIAEoCzIgLmNvbXBhc3MudjEuTGlzdE1lc3NhZ2VzUmVzcG9uc2VIABIrCgVlcnJvchgEIAEoCzIaLmNvbXBhc3MudjEuQ29tbXNDYWxsRXJyb3JIABIvCgZyb3N0ZXIYBSABKAsyHS5jb21wYXNzLnYxLkdldFJvc3RlclJlc3BvbnNlSAASOAoKc2V0X3N0YXR1cxgGIAEoCzIiLmNvbXBhc3MudjEuU2V0QWdlbnRTdGF0dXNSZXNwb25zZUgAEjQKA3BpbhgHIAEoCzIlLmNvbXBhc3MudjEuVXBkYXRlUGlubmVkQm9hcmRSZXNwb25zZUgAEjsKDmNyZWF0ZV9jaGFubmVsGAggASgLMiEuY29tcGFzcy52MS5DcmVhdGVDaGFubmVsUmVzcG9uc2VIABJCCg51cGRhdGVfbWVtYmVycxgJIAEoCzIoLmNvbXBhc3MudjEuVXBkYXRlQ2hhbm5lbE1lbWJlcnNSZXNwb25zZUgAEkYKFGNyZWF0ZV9jaGFubmVsX2dyb3VwGAogASgLMiYuY29tcGFzcy52MS5DcmVhdGVDaGFubmVsR3JvdXBSZXNwb25zZUgAEi0KB29wZW5fZG0YCyABKAsyGi5jb21wYXNzLnYxLk9wZW5ETVJlc3BvbnNlSABCCAoGcmVzdWx0Ii8KDkNvbW1zQ2FsbEVycm9yEgwKBGNvZGUYASABKAkSDwoHbWVzc2FnZRgCIAEoCSIpChVTZXRBZ2VudFN0YXR1c1JlcXVlc3QSEAoIYWN0aXZpdHkYASABKAkiGAoWU2V0QWdlbnRTdGF0dXNSZXNwb25zZSKRAQoUTGlmZWN5Y2xlQ2FsbFJlcXVlc3QSDwoHY2FsbF9pZBgBIAEoCRItCgVzcGF3bhgCIAEoCzIcLmNvbXBhc3MudjEuU3Bhd25QZWVyUmVxdWVzdEgAEjEKB2Rlc3Bhd24YAyABKAsyHi5jb21wYXNzLnYxLkRlc3Bhd25QZWVyUmVxdWVzdEgAQgYKBGNhbGwiiAEKEFNwYXduUGVlclJlcXVlc3QSDgoGaGFuZGxlGAEgASgJEhQKDGRpc3BsYXlfbmFtZRgCIAEoCRIZChFjbGllbnRfcmVxdWVzdF9pZBgEIAEoCRIMCgRyb2xlGAUgASgJEg8KB3BlcnNvbmEYBiABKAlKBAgDEARSDmluaXRpYWxfcHJvbXB0InIKEVNwYXduUGVlclJlc3BvbnNlEhgKEGFnZW50X2FjY291bnRfaWQYASABKAkSFgoOY29udGFpbmVyX25hbWUYAiABKAkSEgoKc2Vzc2lvbl9pZBgDIAEoCRIXCg9kbV9jaGFubmVsX25hbWUYBCABKAkiKgoSRGVzcGF3blBlZXJSZXF1ZXN0EhQKDGFnZW50X2hhbmRsZRgBIAEoCSIVChNEZXNwYXduUGVlclJlc3BvbnNlIsUBChNMaWZlY3ljbGVDYWxsUmVzdWx0Eg8KB2NhbGxfaWQYASABKAkSLgoFc3Bhd24YAiABKAsyHS5jb21wYXNzLnYxLlNwYXduUGVlclJlc3BvbnNlSAASMgoHZGVzcGF3bhgDIAEoCzIfLmNvbXBhc3MudjEuRGVzcGF3blBlZXJSZXNwb25zZUgAEi8KBWVycm9yGAQgASgLMh4uY29tcGFzcy52MS5MaWZlY3ljbGVDYWxsRXJyb3JIAEIICgZyZXN1bHQiMwoSTGlmZWN5Y2xlQ2FsbEVycm9yEgwKBGNvZGUYASABKAkSDwoHbWVzc2FnZRgCIAEoCSLrBgoQRm9yZ2VDYWxsUmVxdWVzdBIPCgdjYWxsX2lkGAEgASgJEjYKDGNyZWF0ZV9pc3N1ZRgCIAEoCzIeLmNvbXBhc3MudjEuQ3JlYXRlSXNzdWVSZXF1ZXN0SAASPQoQY29tbWVudF9vbl9pc3N1ZRgDIAEoCzIhLmNvbXBhc3MudjEuQ29tbWVudE9uSXNzdWVSZXF1ZXN0SAASMAoJZ2V0X2lzc3VlGAQgASgLMhsuY29tcGFzcy52MS5HZXRJc3N1ZVJlcXVlc3RIABI0CgtsaXN0X2lzc3VlcxgFIAEoCzIdLmNvbXBhc3MudjEuTGlzdElzc3Vlc1JlcXVlc3RIABJDChNjcmVhdGVfcHVsbF9yZXF1ZXN0GAYgASgLMiQuY29tcGFzcy52MS5DcmVhdGVQdWxsUmVxdWVzdFJlcXVlc3RIABJKChdjb21tZW50X29uX3B1bGxfcmVxdWVzdBgHIAEoCzInLmNvbXBhc3MudjEuQ29tbWVudE9uUHVsbFJlcXVlc3RSZXF1ZXN0SAASPQoQZ2V0X3B1bGxfcmVxdWVzdBgIIAEoCzIhLmNvbXBhc3MudjEuR2V0UHVsbFJlcXVlc3RSZXF1ZXN0SAASNgoJc3Vic2NyaWJlGAkgASgLMiEuY29tcGFzcy52MS5TdWJzY3JpYmVGb3JnZVJlcXVlc3RIABI6Cgt1bnN1YnNjcmliZRgKIAEoCzIjLmNvbXBhc3MudjEuVW5zdWJzY3JpYmVGb3JnZVJlcXVlc3RIABI4Cg1zdWJtaXRfcmV2aWV3GAsgASgLMh8uY29tcGFzcy52MS5TdWJtaXRSZXZpZXdSZXF1ZXN0SAASSQoWdHJhbnNpdGlvbl9pc3N1ZV9zdGF0ZRgOIAEoCzInLmNvbXBhc3MudjEuVHJhbnNpdGlvbklzc3VlU3RhdGVSZXF1ZXN0SAASVgoddHJhbnNpdGlvbl9wdWxsX3JlcXVlc3Rfc3RhdGUYDyABKAsyLS5jb21wYXNzLnYxLlRyYW5zaXRpb25QdWxsUmVxdWVzdFN0YXRlUmVxdWVzdEgAEiMKBWZvcmdlGAwgASgLMhQuY29tcGFzcy52MS5Gb3JnZVJlZhIZChFjbGllbnRfcmVxdWVzdF9pZBgNIAEoCUIGCgRjYWxsIuADCg9Gb3JnZUNhbGxSZXN1bHQSDwoHY2FsbF9pZBgBIAEoCRIiCgVpc3N1ZRgCIAEoCzIRLmNvbXBhc3MudjEuSXNzdWVIABIvCg1pc3N1ZV9jb21tZW50GAMgASgLMhYuY29tcGFzcy52MS5Db21tZW50UmVmSAASMAoGaXNzdWVzGAQgASgLMh4uY29tcGFzcy52MS5MaXN0SXNzdWVzUmVzcG9uc2VIABIvCgxwdWxsX3JlcXVlc3QYBSABKAsyFy5jb21wYXNzLnYxLlB1bGxSZXF1ZXN0SAASLAoKcHJfY29tbWVudBgGIAEoCzIWLmNvbXBhc3MudjEuQ29tbWVudFJlZkgAEjgKCnN1YnNjcmliZWQYByABKAsyIi5jb21wYXNzLnYxLlN1YnNjcmliZUZvcmdlUmVzcG9uc2VIABI8Cgx1bnN1YnNjcmliZWQYCCABKAsyJC5jb21wYXNzLnYxLlVuc3Vic2NyaWJlRm9yZ2VSZXNwb25zZUgAEisKBWVycm9yGAkgASgLMhouY29tcGFzcy52MS5Gb3JnZUNhbGxFcnJvckgAEicKBnJldmlldxgKIAEoCzIVLmNvbXBhc3MudjEuUmV2aWV3UmVmSABCCAoGcmVzdWx0IkcKDkZvcmdlQ2FsbEVycm9yEgwKBGNvZGUYASABKAkSDwoHbWVzc2FnZRgCIAEoCRIWCg5yZXRyeV9hZnRlcl9tcxgDIAEoDSJPChJDcmVhdGVJc3N1ZVJlcXVlc3QSDAoEcmVwbxgBIAEoCRINCgV0aXRsZRgCIAEoCRIMCgRib2R5GAMgASgJEg4KBmxhYmVscxgEIAMoCSJJChVDb21tZW50T25Jc3N1ZVJlcXVlc3QSDAoEcmVwbxgBIAEoCRIUCgxpc3N1ZV9udW1iZXIYAiABKAQSDAoEYm9keRgDIAEoCSI1Cg9HZXRJc3N1ZVJlcXVlc3QSDAoEcmVwbxgBIAEoCRIUCgxpc3N1ZV9udW1iZXIYAiABKAQiTwoRTGlzdElzc3Vlc1JlcXVlc3QSDAoEcmVwbxgBIAEoCRINCgVzdGF0ZRgCIAEoCRIOCgZsYWJlbHMYAyADKAkSDQoFbGltaXQYBCABKA0iNwoSTGlzdElzc3Vlc1Jlc3BvbnNlEiEKBmlzc3VlcxgBIAMoCzIRLmNvbXBhc3MudjEuSXNzdWUieAoYQ3JlYXRlUHVsbFJlcXVlc3RSZXF1ZXN0EgwKBHJlcG8YASABKAkSDQoFdGl0bGUYAiABKAkSDAoEYm9keRgDIAEoCRIQCghoZWFkX3JlZhgEIAEoCRIQCghiYXNlX3JlZhgFIAEoCRINCgVkcmFmdBgGIAEoCCJOChtDb21tZW50T25QdWxsUmVxdWVzdFJlcXVlc3QSDAoEcmVwbxgBIAEoCRITCgtwdWxsX251bWJlchgCIAEoBBIMCgRib2R5GAMgASgJIjoKFUdldFB1bGxSZXF1ZXN0UmVxdWVzdBIMCgRyZXBvGAEgASgJEhMKC3B1bGxfbnVtYmVyGAIgASgEIokBChNTdWJtaXRSZXZpZXdSZXF1ZXN0EgwKBHJlcG8YASABKAkSEwoLcHVsbF9udW1iZXIYAiABKAQSDwoHdmVyZGljdBgDIAEoCRIMCgRib2R5GAQgASgJEjAKCGNvbW1lbnRzGAUgAygLMh4uY29tcGFzcy52MS5SZXZpZXdDb21tZW50SW5wdXQiTAoSUmV2aWV3Q29tbWVudElucHV0EgwKBHBhdGgYASABKAkSDAoEbGluZRgCIAEoDRIMCgRzaWRlGAMgASgJEgwKBGJvZHkYBCABKAkifgobVHJhbnNpdGlvbklzc3VlU3RhdGVSZXF1ZXN0EgwKBHJlcG8YASABKAkSFAoMaXNzdWVfbnVtYmVyGAIgASgEEg0KBXN0YXRlGAMgASgJEhQKDGNsb3NlX3JlYXNvbhgEIAEoCRIWCg53b3JrZmxvd19zdGF0ZRgFIAEoCSJTCiFUcmFuc2l0aW9uUHVsbFJlcXVlc3RTdGF0ZVJlcXVlc3QSDAoEcmVwbxgBIAEoCRIRCglwcl9udW1iZXIYAiABKAQSDQoFc3RhdGUYAyABKAkipgEKFVN1YnNjcmliZUZvcmdlUmVxdWVzdBIMCgRyZXBvGAEgASgJEisKBGtpbmQYAiABKA4yHS5jb21wYXNzLnYxLkZvcmdlQXJ0aWZhY3RLaW5kEg4KBm51bWJlchgDIAEoBBIxCgVzY29wZRgEIAEoDjIiLmNvbXBhc3MudjEuRm9yZ2VTdWJzY3JpcHRpb25TY29wZRIPCgdwcm9qZWN0GAUgASgJIjEKFlN1YnNjcmliZUZvcmdlUmVzcG9uc2USFwoPc3Vic2NyaXB0aW9uX2lkGAEgASgJIjIKF1Vuc3Vic2NyaWJlRm9yZ2VSZXF1ZXN0EhcKD3N1YnNjcmlwdGlvbl9pZBgBIAEoCSIaChhVbnN1YnNjcmliZUZvcmdlUmVzcG9uc2UiaAoQQm9hcmRDYWxsUmVxdWVzdBIPCgdjYWxsX2lkGAEgASgJEjsKD3NldF9pc3N1ZV9zdGF0ZRgCIAEoCzIgLmNvbXBhc3MudjEuU2V0SXNzdWVTdGF0ZVJlcXVlc3RIAEIGCgRjYWxsIk8KFFNldElzc3VlU3RhdGVSZXF1ZXN0EhAKCGlzc3VlX2lkGAEgASgJEiUKBXN0YXRlGAIgASgOMhYuY29tcGFzcy52MS5Jc3N1ZVN0YXRlIjkKFVNldElzc3VlU3RhdGVSZXNwb25zZRIgCgVpc3N1ZRgBIAEoCzIRLmNvbXBhc3MudjEuSXNzdWUilwEKD0JvYXJkQ2FsbFJlc3VsdBIPCgdjYWxsX2lkGAEgASgJEjwKD3NldF9pc3N1ZV9zdGF0ZRgCIAEoCzIhLmNvbXBhc3MudjEuU2V0SXNzdWVTdGF0ZVJlc3BvbnNlSAASKwoFZXJyb3IYAyABKAsyGi5jb21wYXNzLnYxLkJvYXJkQ2FsbEVycm9ySABCCAoGcmVzdWx0Ii8KDkJvYXJkQ2FsbEVycm9yEgwKBGNvZGUYASABKAkSDwoHbWVzc2FnZRgCIAEoCSI8ChNQdWJsaXNoRnJhbWVSZXF1ZXN0EiUKBWZyYW1lGAEgASgLMhYuY29tcGFzcy52MS5BZ2VudEZyYW1lIhYKFFB1Ymxpc2hGcmFtZVJlc3BvbnNlIl4KHFBvc3RDb252ZXJzYXRpb25GcmFtZVJlcXVlc3QSJQoFZnJhbWUYASABKAsyFi5jb21wYXNzLnYxLkFnZW50RnJhbWUSFwoPaWRlbXBvdGVuY3lfa2V5GAIgASgJIh8KHVBvc3RDb252ZXJzYXRpb25GcmFtZVJlc3BvbnNlIhkKF0NvbnRyb2xTdWJzY3JpYmVSZXF1ZXN0KpEBChZGb3JnZVN1YnNjcmlwdGlvblNjb3BlEigKJEZPUkdFX1NVQlNDUklQVElPTl9TQ09QRV9VTlNQRUNJRklFRBAAEiUKIUZPUkdFX1NVQlNDUklQVElPTl9TQ09QRV9BUlRJRkFDVBABEiYKIkZPUkdFX1NVQlNDUklQVElPTl9TQ09QRV9DT05UQUlORVIQAjK0BAoMQWdlbnRHYXRld2F5EkIKBUNvbW1zEhwuY29tcGFzcy52MS5Db21tc0NhbGxSZXF1ZXN0GhsuY29tcGFzcy52MS5Db21tc0NhbGxSZXN1bHQSTgoJTGlmZWN5Y2xlEiAuY29tcGFzcy52MS5MaWZlY3ljbGVDYWxsUmVxdWVzdBofLmNvbXBhc3MudjEuTGlmZWN5Y2xlQ2FsbFJlc3VsdBJOCgdQdWJsaXNoEh8uY29tcGFzcy52MS5QdWJsaXNoRnJhbWVSZXF1ZXN0GiAuY29tcGFzcy52MS5QdWJsaXNoRnJhbWVSZXNwb25zZSgBEmwKFVBvc3RDb252ZXJzYXRpb25GcmFtZRIoLmNvbXBhc3MudjEuUG9zdENvbnZlcnNhdGlvbkZyYW1lUmVxdWVzdBopLmNvbXBhc3MudjEuUG9zdENvbnZlcnNhdGlvbkZyYW1lUmVzcG9uc2USSgoHQ29udHJvbBIjLmNvbXBhc3MudjEuQ29udHJvbFN1YnNjcmliZVJlcXVlc3QaGC5jb21wYXNzLnYxLkFnZW50Q29udHJvbDABEkIKBUZvcmdlEhwuY29tcGFzcy52MS5Gb3JnZUNhbGxSZXF1ZXN0GhsuY29tcGFzcy52MS5Gb3JnZUNhbGxSZXN1bHQSQgoFQm9hcmQSHC5jb21wYXNzLnYxLkJvYXJkQ2FsbFJlcXVlc3QaGy5jb21wYXNzLnYxLkJvYXJkQ2FsbFJlc3VsdGIGcHJvdG8z", [file_compass_v1_comms, file_compass_v1_agent, file_compass_v1_compass, file_compass_v1_forge]); + fileDesc("Ch5jb21wYXNzL3YxL2FnZW50X2dhdGV3YXkucHJvdG8SCmNvbXBhc3MudjEiuwQKEENvbW1zQ2FsbFJlcXVlc3QSDwoHY2FsbF9pZBgBIAEoCRIuCgRwb3N0GAIgASgLMh4uY29tcGFzcy52MS5Qb3N0TWVzc2FnZVJlcXVlc3RIABIvCgRsaXN0GAMgASgLMh8uY29tcGFzcy52MS5MaXN0TWVzc2FnZXNSZXF1ZXN0SAASLgoGcm9zdGVyGAQgASgLMhwuY29tcGFzcy52MS5HZXRSb3N0ZXJSZXF1ZXN0SAASNwoKc2V0X3N0YXR1cxgFIAEoCzIhLmNvbXBhc3MudjEuU2V0QWdlbnRTdGF0dXNSZXF1ZXN0SAASMwoDcGluGAYgASgLMiQuY29tcGFzcy52MS5VcGRhdGVQaW5uZWRCb2FyZFJlcXVlc3RIABI6Cg5jcmVhdGVfY2hhbm5lbBgHIAEoCzIgLmNvbXBhc3MudjEuQ3JlYXRlQ2hhbm5lbFJlcXVlc3RIABJBCg51cGRhdGVfbWVtYmVycxgIIAEoCzInLmNvbXBhc3MudjEuVXBkYXRlQ2hhbm5lbE1lbWJlcnNSZXF1ZXN0SAASRQoUY3JlYXRlX2NoYW5uZWxfZ3JvdXAYCSABKAsyJS5jb21wYXNzLnYxLkNyZWF0ZUNoYW5uZWxHcm91cFJlcXVlc3RIABIsCgdvcGVuX2RtGAsgASgLMhkuY29tcGFzcy52MS5PcGVuRE1SZXF1ZXN0SAASGwoTdHJpZ2dlcl90cmFjZXBhcmVudBgKIAEoCUIGCgRjYWxsItUECg9Db21tc0NhbGxSZXN1bHQSDwoHY2FsbF9pZBgBIAEoCRIvCgRwb3N0GAIgASgLMh8uY29tcGFzcy52MS5Qb3N0TWVzc2FnZVJlc3BvbnNlSAASMAoEbGlzdBgDIAEoCzIgLmNvbXBhc3MudjEuTGlzdE1lc3NhZ2VzUmVzcG9uc2VIABIrCgVlcnJvchgEIAEoCzIaLmNvbXBhc3MudjEuQ29tbXNDYWxsRXJyb3JIABIvCgZyb3N0ZXIYBSABKAsyHS5jb21wYXNzLnYxLkdldFJvc3RlclJlc3BvbnNlSAASOAoKc2V0X3N0YXR1cxgGIAEoCzIiLmNvbXBhc3MudjEuU2V0QWdlbnRTdGF0dXNSZXNwb25zZUgAEjQKA3BpbhgHIAEoCzIlLmNvbXBhc3MudjEuVXBkYXRlUGlubmVkQm9hcmRSZXNwb25zZUgAEjsKDmNyZWF0ZV9jaGFubmVsGAggASgLMiEuY29tcGFzcy52MS5DcmVhdGVDaGFubmVsUmVzcG9uc2VIABJCCg51cGRhdGVfbWVtYmVycxgJIAEoCzIoLmNvbXBhc3MudjEuVXBkYXRlQ2hhbm5lbE1lbWJlcnNSZXNwb25zZUgAEkYKFGNyZWF0ZV9jaGFubmVsX2dyb3VwGAogASgLMiYuY29tcGFzcy52MS5DcmVhdGVDaGFubmVsR3JvdXBSZXNwb25zZUgAEi0KB29wZW5fZG0YCyABKAsyGi5jb21wYXNzLnYxLk9wZW5ETVJlc3BvbnNlSABCCAoGcmVzdWx0Ii8KDkNvbW1zQ2FsbEVycm9yEgwKBGNvZGUYASABKAkSDwoHbWVzc2FnZRgCIAEoCSIpChVTZXRBZ2VudFN0YXR1c1JlcXVlc3QSEAoIYWN0aXZpdHkYASABKAkiGAoWU2V0QWdlbnRTdGF0dXNSZXNwb25zZSKRAQoUTGlmZWN5Y2xlQ2FsbFJlcXVlc3QSDwoHY2FsbF9pZBgBIAEoCRItCgVzcGF3bhgCIAEoCzIcLmNvbXBhc3MudjEuU3Bhd25QZWVyUmVxdWVzdEgAEjEKB2Rlc3Bhd24YAyABKAsyHi5jb21wYXNzLnYxLkRlc3Bhd25QZWVyUmVxdWVzdEgAQgYKBGNhbGwiiAEKEFNwYXduUGVlclJlcXVlc3QSDgoGaGFuZGxlGAEgASgJEhQKDGRpc3BsYXlfbmFtZRgCIAEoCRIZChFjbGllbnRfcmVxdWVzdF9pZBgEIAEoCRIMCgRyb2xlGAUgASgJEg8KB3BlcnNvbmEYBiABKAlKBAgDEARSDmluaXRpYWxfcHJvbXB0InIKEVNwYXduUGVlclJlc3BvbnNlEhgKEGFnZW50X2FjY291bnRfaWQYASABKAkSFgoOY29udGFpbmVyX25hbWUYAiABKAkSEgoKc2Vzc2lvbl9pZBgDIAEoCRIXCg9kbV9jaGFubmVsX25hbWUYBCABKAkiKgoSRGVzcGF3blBlZXJSZXF1ZXN0EhQKDGFnZW50X2hhbmRsZRgBIAEoCSIVChNEZXNwYXduUGVlclJlc3BvbnNlIsUBChNMaWZlY3ljbGVDYWxsUmVzdWx0Eg8KB2NhbGxfaWQYASABKAkSLgoFc3Bhd24YAiABKAsyHS5jb21wYXNzLnYxLlNwYXduUGVlclJlc3BvbnNlSAASMgoHZGVzcGF3bhgDIAEoCzIfLmNvbXBhc3MudjEuRGVzcGF3blBlZXJSZXNwb25zZUgAEi8KBWVycm9yGAQgASgLMh4uY29tcGFzcy52MS5MaWZlY3ljbGVDYWxsRXJyb3JIAEIICgZyZXN1bHQiMwoSTGlmZWN5Y2xlQ2FsbEVycm9yEgwKBGNvZGUYASABKAkSDwoHbWVzc2FnZRgCIAEoCSLrBgoQRm9yZ2VDYWxsUmVxdWVzdBIPCgdjYWxsX2lkGAEgASgJEjYKDGNyZWF0ZV9pc3N1ZRgCIAEoCzIeLmNvbXBhc3MudjEuQ3JlYXRlSXNzdWVSZXF1ZXN0SAASPQoQY29tbWVudF9vbl9pc3N1ZRgDIAEoCzIhLmNvbXBhc3MudjEuQ29tbWVudE9uSXNzdWVSZXF1ZXN0SAASMAoJZ2V0X2lzc3VlGAQgASgLMhsuY29tcGFzcy52MS5HZXRJc3N1ZVJlcXVlc3RIABI0CgtsaXN0X2lzc3VlcxgFIAEoCzIdLmNvbXBhc3MudjEuTGlzdElzc3Vlc1JlcXVlc3RIABJDChNjcmVhdGVfcHVsbF9yZXF1ZXN0GAYgASgLMiQuY29tcGFzcy52MS5DcmVhdGVQdWxsUmVxdWVzdFJlcXVlc3RIABJKChdjb21tZW50X29uX3B1bGxfcmVxdWVzdBgHIAEoCzInLmNvbXBhc3MudjEuQ29tbWVudE9uUHVsbFJlcXVlc3RSZXF1ZXN0SAASPQoQZ2V0X3B1bGxfcmVxdWVzdBgIIAEoCzIhLmNvbXBhc3MudjEuR2V0UHVsbFJlcXVlc3RSZXF1ZXN0SAASNgoJc3Vic2NyaWJlGAkgASgLMiEuY29tcGFzcy52MS5TdWJzY3JpYmVGb3JnZVJlcXVlc3RIABI6Cgt1bnN1YnNjcmliZRgKIAEoCzIjLmNvbXBhc3MudjEuVW5zdWJzY3JpYmVGb3JnZVJlcXVlc3RIABI4Cg1zdWJtaXRfcmV2aWV3GAsgASgLMh8uY29tcGFzcy52MS5TdWJtaXRSZXZpZXdSZXF1ZXN0SAASSQoWdHJhbnNpdGlvbl9pc3N1ZV9zdGF0ZRgOIAEoCzInLmNvbXBhc3MudjEuVHJhbnNpdGlvbklzc3VlU3RhdGVSZXF1ZXN0SAASVgoddHJhbnNpdGlvbl9wdWxsX3JlcXVlc3Rfc3RhdGUYDyABKAsyLS5jb21wYXNzLnYxLlRyYW5zaXRpb25QdWxsUmVxdWVzdFN0YXRlUmVxdWVzdEgAEiMKBWZvcmdlGAwgASgLMhQuY29tcGFzcy52MS5Gb3JnZVJlZhIZChFjbGllbnRfcmVxdWVzdF9pZBgNIAEoCUIGCgRjYWxsIuADCg9Gb3JnZUNhbGxSZXN1bHQSDwoHY2FsbF9pZBgBIAEoCRIiCgVpc3N1ZRgCIAEoCzIRLmNvbXBhc3MudjEuSXNzdWVIABIvCg1pc3N1ZV9jb21tZW50GAMgASgLMhYuY29tcGFzcy52MS5Db21tZW50UmVmSAASMAoGaXNzdWVzGAQgASgLMh4uY29tcGFzcy52MS5MaXN0SXNzdWVzUmVzcG9uc2VIABIvCgxwdWxsX3JlcXVlc3QYBSABKAsyFy5jb21wYXNzLnYxLlB1bGxSZXF1ZXN0SAASLAoKcHJfY29tbWVudBgGIAEoCzIWLmNvbXBhc3MudjEuQ29tbWVudFJlZkgAEjgKCnN1YnNjcmliZWQYByABKAsyIi5jb21wYXNzLnYxLlN1YnNjcmliZUZvcmdlUmVzcG9uc2VIABI8Cgx1bnN1YnNjcmliZWQYCCABKAsyJC5jb21wYXNzLnYxLlVuc3Vic2NyaWJlRm9yZ2VSZXNwb25zZUgAEisKBWVycm9yGAkgASgLMhouY29tcGFzcy52MS5Gb3JnZUNhbGxFcnJvckgAEicKBnJldmlldxgKIAEoCzIVLmNvbXBhc3MudjEuUmV2aWV3UmVmSABCCAoGcmVzdWx0IkcKDkZvcmdlQ2FsbEVycm9yEgwKBGNvZGUYASABKAkSDwoHbWVzc2FnZRgCIAEoCRIWCg5yZXRyeV9hZnRlcl9tcxgDIAEoDSJPChJDcmVhdGVJc3N1ZVJlcXVlc3QSDAoEcmVwbxgBIAEoCRINCgV0aXRsZRgCIAEoCRIMCgRib2R5GAMgASgJEg4KBmxhYmVscxgEIAMoCSJJChVDb21tZW50T25Jc3N1ZVJlcXVlc3QSDAoEcmVwbxgBIAEoCRIUCgxpc3N1ZV9udW1iZXIYAiABKAQSDAoEYm9keRgDIAEoCSI1Cg9HZXRJc3N1ZVJlcXVlc3QSDAoEcmVwbxgBIAEoCRIUCgxpc3N1ZV9udW1iZXIYAiABKAQiTwoRTGlzdElzc3Vlc1JlcXVlc3QSDAoEcmVwbxgBIAEoCRINCgVzdGF0ZRgCIAEoCRIOCgZsYWJlbHMYAyADKAkSDQoFbGltaXQYBCABKA0iNwoSTGlzdElzc3Vlc1Jlc3BvbnNlEiEKBmlzc3VlcxgBIAMoCzIRLmNvbXBhc3MudjEuSXNzdWUieAoYQ3JlYXRlUHVsbFJlcXVlc3RSZXF1ZXN0EgwKBHJlcG8YASABKAkSDQoFdGl0bGUYAiABKAkSDAoEYm9keRgDIAEoCRIQCghoZWFkX3JlZhgEIAEoCRIQCghiYXNlX3JlZhgFIAEoCRINCgVkcmFmdBgGIAEoCCJMChtDb21tZW50T25QdWxsUmVxdWVzdFJlcXVlc3QSDAoEcmVwbxgBIAEoCRIRCglwcl9udW1iZXIYAiABKAQSDAoEYm9keRgDIAEoCSI4ChVHZXRQdWxsUmVxdWVzdFJlcXVlc3QSDAoEcmVwbxgBIAEoCRIRCglwcl9udW1iZXIYAiABKAQihwEKE1N1Ym1pdFJldmlld1JlcXVlc3QSDAoEcmVwbxgBIAEoCRIRCglwcl9udW1iZXIYAiABKAQSDwoHdmVyZGljdBgDIAEoCRIMCgRib2R5GAQgASgJEjAKCGNvbW1lbnRzGAUgAygLMh4uY29tcGFzcy52MS5SZXZpZXdDb21tZW50SW5wdXQiTAoSUmV2aWV3Q29tbWVudElucHV0EgwKBHBhdGgYASABKAkSDAoEbGluZRgCIAEoDRIMCgRzaWRlGAMgASgJEgwKBGJvZHkYBCABKAkifgobVHJhbnNpdGlvbklzc3VlU3RhdGVSZXF1ZXN0EgwKBHJlcG8YASABKAkSFAoMaXNzdWVfbnVtYmVyGAIgASgEEg0KBXN0YXRlGAMgASgJEhQKDGNsb3NlX3JlYXNvbhgEIAEoCRIWCg53b3JrZmxvd19zdGF0ZRgFIAEoCSJTCiFUcmFuc2l0aW9uUHVsbFJlcXVlc3RTdGF0ZVJlcXVlc3QSDAoEcmVwbxgBIAEoCRIRCglwcl9udW1iZXIYAiABKAQSDQoFc3RhdGUYAyABKAkipgEKFVN1YnNjcmliZUZvcmdlUmVxdWVzdBIMCgRyZXBvGAEgASgJEisKBGtpbmQYAiABKA4yHS5jb21wYXNzLnYxLkZvcmdlQXJ0aWZhY3RLaW5kEg4KBm51bWJlchgDIAEoBBIxCgVzY29wZRgEIAEoDjIiLmNvbXBhc3MudjEuRm9yZ2VTdWJzY3JpcHRpb25TY29wZRIPCgdwcm9qZWN0GAUgASgJIjEKFlN1YnNjcmliZUZvcmdlUmVzcG9uc2USFwoPc3Vic2NyaXB0aW9uX2lkGAEgASgJIjIKF1Vuc3Vic2NyaWJlRm9yZ2VSZXF1ZXN0EhcKD3N1YnNjcmlwdGlvbl9pZBgBIAEoCSIaChhVbnN1YnNjcmliZUZvcmdlUmVzcG9uc2UiaAoQQm9hcmRDYWxsUmVxdWVzdBIPCgdjYWxsX2lkGAEgASgJEjsKD3NldF9pc3N1ZV9zdGF0ZRgCIAEoCzIgLmNvbXBhc3MudjEuU2V0SXNzdWVTdGF0ZVJlcXVlc3RIAEIGCgRjYWxsIk8KFFNldElzc3VlU3RhdGVSZXF1ZXN0EhAKCGlzc3VlX2lkGAEgASgJEiUKBXN0YXRlGAIgASgOMhYuY29tcGFzcy52MS5Jc3N1ZVN0YXRlIjkKFVNldElzc3VlU3RhdGVSZXNwb25zZRIgCgVpc3N1ZRgBIAEoCzIRLmNvbXBhc3MudjEuSXNzdWUilwEKD0JvYXJkQ2FsbFJlc3VsdBIPCgdjYWxsX2lkGAEgASgJEjwKD3NldF9pc3N1ZV9zdGF0ZRgCIAEoCzIhLmNvbXBhc3MudjEuU2V0SXNzdWVTdGF0ZVJlc3BvbnNlSAASKwoFZXJyb3IYAyABKAsyGi5jb21wYXNzLnYxLkJvYXJkQ2FsbEVycm9ySABCCAoGcmVzdWx0Ii8KDkJvYXJkQ2FsbEVycm9yEgwKBGNvZGUYASABKAkSDwoHbWVzc2FnZRgCIAEoCSI8ChNQdWJsaXNoRnJhbWVSZXF1ZXN0EiUKBWZyYW1lGAEgASgLMhYuY29tcGFzcy52MS5BZ2VudEZyYW1lIhYKFFB1Ymxpc2hGcmFtZVJlc3BvbnNlIl4KHFBvc3RDb252ZXJzYXRpb25GcmFtZVJlcXVlc3QSJQoFZnJhbWUYASABKAsyFi5jb21wYXNzLnYxLkFnZW50RnJhbWUSFwoPaWRlbXBvdGVuY3lfa2V5GAIgASgJIh8KHVBvc3RDb252ZXJzYXRpb25GcmFtZVJlc3BvbnNlIhkKF0NvbnRyb2xTdWJzY3JpYmVSZXF1ZXN0KpEBChZGb3JnZVN1YnNjcmlwdGlvblNjb3BlEigKJEZPUkdFX1NVQlNDUklQVElPTl9TQ09QRV9VTlNQRUNJRklFRBAAEiUKIUZPUkdFX1NVQlNDUklQVElPTl9TQ09QRV9BUlRJRkFDVBABEiYKIkZPUkdFX1NVQlNDUklQVElPTl9TQ09QRV9DT05UQUlORVIQAjK0BAoMQWdlbnRHYXRld2F5EkIKBUNvbW1zEhwuY29tcGFzcy52MS5Db21tc0NhbGxSZXF1ZXN0GhsuY29tcGFzcy52MS5Db21tc0NhbGxSZXN1bHQSTgoJTGlmZWN5Y2xlEiAuY29tcGFzcy52MS5MaWZlY3ljbGVDYWxsUmVxdWVzdBofLmNvbXBhc3MudjEuTGlmZWN5Y2xlQ2FsbFJlc3VsdBJOCgdQdWJsaXNoEh8uY29tcGFzcy52MS5QdWJsaXNoRnJhbWVSZXF1ZXN0GiAuY29tcGFzcy52MS5QdWJsaXNoRnJhbWVSZXNwb25zZSgBEmwKFVBvc3RDb252ZXJzYXRpb25GcmFtZRIoLmNvbXBhc3MudjEuUG9zdENvbnZlcnNhdGlvbkZyYW1lUmVxdWVzdBopLmNvbXBhc3MudjEuUG9zdENvbnZlcnNhdGlvbkZyYW1lUmVzcG9uc2USSgoHQ29udHJvbBIjLmNvbXBhc3MudjEuQ29udHJvbFN1YnNjcmliZVJlcXVlc3QaGC5jb21wYXNzLnYxLkFnZW50Q29udHJvbDABEkIKBUZvcmdlEhwuY29tcGFzcy52MS5Gb3JnZUNhbGxSZXF1ZXN0GhsuY29tcGFzcy52MS5Gb3JnZUNhbGxSZXN1bHQSQgoFQm9hcmQSHC5jb21wYXNzLnYxLkJvYXJkQ2FsbFJlcXVlc3QaGy5jb21wYXNzLnYxLkJvYXJkQ2FsbFJlc3VsdGIGcHJvdG8z", [file_compass_v1_comms, file_compass_v1_agent, file_compass_v1_compass, file_compass_v1_forge]); /** * One agent-initiated comms call. `call_id` is the agent-minted correlation id @@ -999,9 +999,9 @@ export type CommentOnPullRequestRequest = Message<"compass.v1.CommentOnPullReque repo: string; /** - * @generated from field: uint64 pull_number = 2; + * @generated from field: uint64 pr_number = 2; */ - pullNumber: bigint; + prNumber: bigint; /** * WITHOUT the owner header @@ -1028,9 +1028,9 @@ export type GetPullRequestRequest = Message<"compass.v1.GetPullRequestRequest"> repo: string; /** - * @generated from field: uint64 pull_number = 2; + * @generated from field: uint64 pr_number = 2; */ - pullNumber: bigint; + prNumber: bigint; }; /** @@ -1052,9 +1052,9 @@ export type SubmitReviewRequest = Message<"compass.v1.SubmitReviewRequest"> & { repo: string; /** - * @generated from field: uint64 pull_number = 2; + * @generated from field: uint64 pr_number = 2; */ - pullNumber: bigint; + prNumber: bigint; /** * "approve" | "request_changes" | "comment" diff --git a/proto/compass/v1/agent_gateway.proto b/proto/compass/v1/agent_gateway.proto index 211a358e..db46e13e 100644 --- a/proto/compass/v1/agent_gateway.proto +++ b/proto/compass/v1/agent_gateway.proto @@ -349,16 +349,16 @@ message CreatePullRequestRequest { } message CommentOnPullRequestRequest { string repo = 1; - uint64 pull_number = 2; + uint64 pr_number = 2; string body = 3; // WITHOUT the owner header } message GetPullRequestRequest { string repo = 1; - uint64 pull_number = 2; + uint64 pr_number = 2; } message SubmitReviewRequest { string repo = 1; // REQUIRED; empty is invalid_argument - uint64 pull_number = 2; + uint64 pr_number = 2; string verdict = 3; // "approve" | "request_changes" | "comment" string body = 4; // WITHOUT the owner header; the Server stamps it repeated ReviewCommentInput comments = 5; // inline comments; may be empty