mirror of
https://gitea.toothfairyai.com/ToothFairyAI/tf_code.git
synced 2026-03-29 21:33:54 +00:00
chore: generate
This commit is contained in:
parent
e6f5214779
commit
d178d8249f
@ -1,7 +1,15 @@
|
|||||||
import { base64Decode } from "@opencode-ai/util/encode"
|
import { base64Decode } from "@opencode-ai/util/encode"
|
||||||
import type { Page } from "@playwright/test"
|
import type { Page } from "@playwright/test"
|
||||||
import { test, expect } from "../fixtures"
|
import { test, expect } from "../fixtures"
|
||||||
import { defocus, createTestProject, cleanupTestProject, openSidebar, sessionIDFromUrl, waitDir, waitSlug } from "../actions"
|
import {
|
||||||
|
defocus,
|
||||||
|
createTestProject,
|
||||||
|
cleanupTestProject,
|
||||||
|
openSidebar,
|
||||||
|
sessionIDFromUrl,
|
||||||
|
waitDir,
|
||||||
|
waitSlug,
|
||||||
|
} from "../actions"
|
||||||
import { projectSwitchSelector, promptSelector, workspaceItemSelector, workspaceNewSessionSelector } from "../selectors"
|
import { projectSwitchSelector, promptSelector, workspaceItemSelector, workspaceNewSessionSelector } from "../selectors"
|
||||||
import { dirSlug, resolveDirectory } from "../utils"
|
import { dirSlug, resolveDirectory } from "../utils"
|
||||||
|
|
||||||
|
|||||||
@ -633,7 +633,8 @@ export default function Layout(props: ParentProps) {
|
|||||||
if (!expanded) continue
|
if (!expanded) continue
|
||||||
const key = workspaceKey(directory)
|
const key = workspaceKey(directory)
|
||||||
const project = projects.find(
|
const project = projects.find(
|
||||||
(item) => workspaceKey(item.worktree) === key || item.sandboxes?.some((sandbox) => workspaceKey(sandbox) === key),
|
(item) =>
|
||||||
|
workspaceKey(item.worktree) === key || item.sandboxes?.some((sandbox) => workspaceKey(sandbox) === key),
|
||||||
)
|
)
|
||||||
if (!project) continue
|
if (!project) continue
|
||||||
if (project.vcs === "git" && layout.sidebar.workspaces(project.worktree)()) continue
|
if (project.vcs === "git" && layout.sidebar.workspaces(project.worktree)()) continue
|
||||||
@ -1163,7 +1164,8 @@ export default function Layout(props: ParentProps) {
|
|||||||
const project = layout.projects
|
const project = layout.projects
|
||||||
.list()
|
.list()
|
||||||
.find(
|
.find(
|
||||||
(item) => workspaceKey(item.worktree) === key || item.sandboxes?.some((sandbox) => workspaceKey(sandbox) === key),
|
(item) =>
|
||||||
|
workspaceKey(item.worktree) === key || item.sandboxes?.some((sandbox) => workspaceKey(sandbox) === key),
|
||||||
)
|
)
|
||||||
if (project) return project.worktree
|
if (project) return project.worktree
|
||||||
|
|
||||||
|
|||||||
@ -31,11 +31,13 @@ function sortSessions(now: number) {
|
|||||||
const isRootVisibleSession = (session: Session, directory: string) =>
|
const isRootVisibleSession = (session: Session, directory: string) =>
|
||||||
workspaceKey(session.directory) === workspaceKey(directory) && !session.parentID && !session.time?.archived
|
workspaceKey(session.directory) === workspaceKey(directory) && !session.parentID && !session.time?.archived
|
||||||
|
|
||||||
const roots = (store: SessionStore) => (store.session ?? []).filter((session) => isRootVisibleSession(session, store.path.directory))
|
const roots = (store: SessionStore) =>
|
||||||
|
(store.session ?? []).filter((session) => isRootVisibleSession(session, store.path.directory))
|
||||||
|
|
||||||
export const sortedRootSessions = (store: SessionStore, now: number) => roots(store).sort(sortSessions(now))
|
export const sortedRootSessions = (store: SessionStore, now: number) => roots(store).sort(sortSessions(now))
|
||||||
|
|
||||||
export const latestRootSession = (stores: SessionStore[], now: number) => stores.flatMap(roots).sort(sortSessions(now))[0]
|
export const latestRootSession = (stores: SessionStore[], now: number) =>
|
||||||
|
stores.flatMap(roots).sort(sortSessions(now))[0]
|
||||||
|
|
||||||
export function hasProjectPermissions<T>(
|
export function hasProjectPermissions<T>(
|
||||||
request: Record<string, T[] | undefined>,
|
request: Record<string, T[] | undefined>,
|
||||||
|
|||||||
@ -599,7 +599,12 @@ export default function Page() {
|
|||||||
const list: ChangeMode[] = []
|
const list: ChangeMode[] = []
|
||||||
const git = sync.project?.vcs === "git"
|
const git = sync.project?.vcs === "git"
|
||||||
if (git) list.push("git")
|
if (git) list.push("git")
|
||||||
if (git && sync.data.vcs?.branch && sync.data.vcs?.default_branch && sync.data.vcs.branch !== sync.data.vcs.default_branch) {
|
if (
|
||||||
|
git &&
|
||||||
|
sync.data.vcs?.branch &&
|
||||||
|
sync.data.vcs?.default_branch &&
|
||||||
|
sync.data.vcs.branch !== sync.data.vcs.default_branch
|
||||||
|
) {
|
||||||
list.push("branch")
|
list.push("branch")
|
||||||
}
|
}
|
||||||
list.push("session", "turn")
|
list.push("session", "turn")
|
||||||
@ -961,7 +966,9 @@ export default function Page() {
|
|||||||
|
|
||||||
const mobileChanges = createMemo(() => !isDesktop() && store.mobileTab === "changes")
|
const mobileChanges = createMemo(() => !isDesktop() && store.mobileTab === "changes")
|
||||||
const wantsReview = createMemo(() =>
|
const wantsReview = createMemo(() =>
|
||||||
isDesktop() ? desktopFileTreeOpen() || (desktopReviewOpen() && activeTab() === "review") : store.mobileTab === "changes",
|
isDesktop()
|
||||||
|
? desktopFileTreeOpen() || (desktopReviewOpen() && activeTab() === "review")
|
||||||
|
: store.mobileTab === "changes",
|
||||||
)
|
)
|
||||||
|
|
||||||
createEffect(() => {
|
createEffect(() => {
|
||||||
|
|||||||
@ -366,7 +366,9 @@ export function SessionSidePanel(props: {
|
|||||||
<Tabs.List>
|
<Tabs.List>
|
||||||
<Tabs.Trigger value="changes" class="flex-1" classes={{ button: "w-full" }}>
|
<Tabs.Trigger value="changes" class="flex-1" classes={{ button: "w-full" }}>
|
||||||
{props.reviewCount()}{" "}
|
{props.reviewCount()}{" "}
|
||||||
{language.t(props.reviewCount() === 1 ? "session.review.change.one" : "session.review.change.other")}
|
{language.t(
|
||||||
|
props.reviewCount() === 1 ? "session.review.change.one" : "session.review.change.other",
|
||||||
|
)}
|
||||||
</Tabs.Trigger>
|
</Tabs.Trigger>
|
||||||
<Tabs.Trigger value="all" class="flex-1" classes={{ button: "w-full" }}>
|
<Tabs.Trigger value="all" class="flex-1" classes={{ button: "w-full" }}>
|
||||||
{language.t("session.files.all")}
|
{language.t("session.files.all")}
|
||||||
@ -395,9 +397,7 @@ export function SessionSidePanel(props: {
|
|||||||
/>
|
/>
|
||||||
</Show>
|
</Show>
|
||||||
</Match>
|
</Match>
|
||||||
<Match when={true}>
|
<Match when={true}>{empty(props.empty())}</Match>
|
||||||
{empty(props.empty())}
|
|
||||||
</Match>
|
|
||||||
</Switch>
|
</Switch>
|
||||||
</Tabs.Content>
|
</Tabs.Content>
|
||||||
<Tabs.Content value="all" class="bg-background-stronger px-3 py-0">
|
<Tabs.Content value="all" class="bg-background-stronger px-3 py-0">
|
||||||
|
|||||||
@ -20,37 +20,37 @@ mock.module("../../src/git", () => ({
|
|||||||
Git: {
|
Git: {
|
||||||
...gitModule.Git,
|
...gitModule.Git,
|
||||||
run: (args: string[], opts: { cwd: string; env?: Record<string, string> }) => {
|
run: (args: string[], opts: { cwd: string; env?: Record<string, string> }) => {
|
||||||
const cmd = ["git", ...args].join(" ")
|
const cmd = ["git", ...args].join(" ")
|
||||||
if (
|
if (
|
||||||
mode === "rev-list-fail" &&
|
mode === "rev-list-fail" &&
|
||||||
cmd.includes("git rev-list") &&
|
cmd.includes("git rev-list") &&
|
||||||
cmd.includes("--max-parents=0") &&
|
cmd.includes("--max-parents=0") &&
|
||||||
cmd.includes("HEAD")
|
cmd.includes("HEAD")
|
||||||
) {
|
) {
|
||||||
return Promise.resolve({
|
return Promise.resolve({
|
||||||
exitCode: 128,
|
exitCode: 128,
|
||||||
text: () => "",
|
text: () => "",
|
||||||
stdout: Buffer.from(""),
|
stdout: Buffer.from(""),
|
||||||
stderr: Buffer.from("fatal"),
|
stderr: Buffer.from("fatal"),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
if (mode === "top-fail" && cmd.includes("git rev-parse") && cmd.includes("--show-toplevel")) {
|
if (mode === "top-fail" && cmd.includes("git rev-parse") && cmd.includes("--show-toplevel")) {
|
||||||
return Promise.resolve({
|
return Promise.resolve({
|
||||||
exitCode: 128,
|
exitCode: 128,
|
||||||
text: () => "",
|
text: () => "",
|
||||||
stdout: Buffer.from(""),
|
stdout: Buffer.from(""),
|
||||||
stderr: Buffer.from("fatal"),
|
stderr: Buffer.from("fatal"),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
if (mode === "common-dir-fail" && cmd.includes("git rev-parse") && cmd.includes("--git-common-dir")) {
|
if (mode === "common-dir-fail" && cmd.includes("git rev-parse") && cmd.includes("--git-common-dir")) {
|
||||||
return Promise.resolve({
|
return Promise.resolve({
|
||||||
exitCode: 128,
|
exitCode: 128,
|
||||||
text: () => "",
|
text: () => "",
|
||||||
stdout: Buffer.from(""),
|
stdout: Buffer.from(""),
|
||||||
stderr: Buffer.from("fatal"),
|
stderr: Buffer.from("fatal"),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
return originalGit(args, opts)
|
return originalGit(args, opts)
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}))
|
}))
|
||||||
|
|||||||
@ -6576,6 +6576,59 @@
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"/vcs/diff": {
|
||||||
|
"get": {
|
||||||
|
"operationId": "vcs.diff",
|
||||||
|
"parameters": [
|
||||||
|
{
|
||||||
|
"in": "query",
|
||||||
|
"name": "directory",
|
||||||
|
"schema": {
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"in": "query",
|
||||||
|
"name": "workspace",
|
||||||
|
"schema": {
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"in": "query",
|
||||||
|
"name": "mode",
|
||||||
|
"schema": {
|
||||||
|
"type": "string",
|
||||||
|
"enum": ["git", "branch"]
|
||||||
|
},
|
||||||
|
"required": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"summary": "Get VCS diff",
|
||||||
|
"description": "Retrieve the current git diff for the working tree or against the default branch.",
|
||||||
|
"responses": {
|
||||||
|
"200": {
|
||||||
|
"description": "VCS diff",
|
||||||
|
"content": {
|
||||||
|
"application/json": {
|
||||||
|
"schema": {
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"$ref": "#/components/schemas/FileDiff"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"x-codeSamples": [
|
||||||
|
{
|
||||||
|
"lang": "js",
|
||||||
|
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.vcs.diff({\n ...\n})"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
"/command": {
|
"/command": {
|
||||||
"get": {
|
"get": {
|
||||||
"operationId": "command.list",
|
"operationId": "command.list",
|
||||||
@ -11928,9 +11981,11 @@
|
|||||||
"properties": {
|
"properties": {
|
||||||
"branch": {
|
"branch": {
|
||||||
"type": "string"
|
"type": "string"
|
||||||
|
},
|
||||||
|
"default_branch": {
|
||||||
|
"type": "string"
|
||||||
}
|
}
|
||||||
},
|
}
|
||||||
"required": ["branch"]
|
|
||||||
},
|
},
|
||||||
"Command": {
|
"Command": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user