diff --git a/lexicons/git/defs.json b/lexicons/git/defs.json index a72387f52..9703a46ee 100644 --- a/lexicons/git/defs.json +++ b/lexicons/git/defs.json @@ -20,6 +20,70 @@ "description": "Timestamp of the signature" } } + }, + "fileDiff": { + "type": "object", + "required": ["lhsSrc", "rhsSrc", "hunks", "hasSyntacticChanges"], + "properties": { + "lhsSrc": { "type": "ref", "ref": "#diffSrc" }, + "rhsSrc": { "type": "ref", "ref": "#diffSrc" }, + "hunks": { "type": "array", "items": { "type": "ref", "ref": "#diffHunk" } }, + "hasByteChanges": { + "type": "ref", + "ref": "#byteChanges", + "description": "Byte count per side, present only when the two sides differ" + }, + "hasSyntacticChanges": { "type": "boolean" } + } + }, + "diffSrc": { + "type": "object", + "description": "One side of a file diff.", + "required": ["path", "oid", "size", "isBinary", "isSubmodule"], + "properties": { + "path": { "type": "string" }, + "oid": { "type": "string", "description": "Blob oid, or the commit oid for a submodule" }, + "size": { "type": "integer", "minimum": 0 }, + "isBinary": { "type": "boolean" }, + "isSubmodule": { "type": "boolean" }, + "content": { + "type": "string", + "description": "Inlined content. Used on interdiff's LHS." + } + } + }, + "diffHunk": { + "type": "object", + "required": ["novelLhs", "novelRhs", "lines"], + "properties": { + "novelLhs": { + "type": "array", + "description": "0-based line numbers holding novel content on the left side", + "items": { "type": "integer", "minimum": 0 } + }, + "novelRhs": { + "type": "array", + "description": "0-based line numbers holding novel content on the right side", + "items": { "type": "integer", "minimum": 0 } + }, + "lines": { "type": "array", "items": { "type": "ref", "ref": "#linePair" } } + } + }, + "linePair": { + "type": "object", + "description": "One aligned line pair; a side is absent when that side has no line.", + "properties": { + "lhs": { "type": "integer", "minimum": 0 }, + "rhs": { "type": "integer", "minimum": 0 } + } + }, + "byteChanges": { + "type": "object", + "required": ["lhs", "rhs"], + "properties": { + "lhs": { "type": "integer", "minimum": 0 }, + "rhs": { "type": "integer", "minimum": 0 } + } } } } diff --git a/lexicons/git/temp2/getDiff.json b/lexicons/git/temp2/getDiff.json new file mode 100644 index 000000000..bc0e6daa6 --- /dev/null +++ b/lexicons/git/temp2/getDiff.json @@ -0,0 +1,51 @@ +{ + "lexicon": 1, + "id": "sh.tangled.git.temp2.getDiff", + "defs": { + "main": { + "type": "query", + "parameters": { + "type": "params", + "required": ["baseRepo", "baseCommit", "headRepo", "headCommit"], + "properties": { + "baseRepo": { "type": "string", "format": "did" }, + "baseCommit": { "type": "string" }, + "headRepo": { "type": "string", "format": "did" }, + "headCommit": { "type": "string" } + } + }, + "output": { + "encoding": "application/json", + "description": "TBD", + "schema": { + "type": "object", + "required": ["diffs"], + "properties": { + "diffs": { + "type": "array", + "items": { "type": "ref", "ref": "sh.tangled.git.defs#fileDiff" } + } + } + } + }, + "errors": [ + { + "name": "RepoNotFound", + "description": "Repository not found or access denied" + }, + { + "name": "RevisionNotFound", + "description": "One or both revisions not found" + }, + { + "name": "InvalidRequest", + "description": "Invalid request parameters" + }, + { + "name": "CompareError", + "description": "Failed to compare revisions" + } + ] + } + } +} diff --git a/lexicons/git/temp2/getInterdiff.json b/lexicons/git/temp2/getInterdiff.json new file mode 100644 index 000000000..08c6b2054 --- /dev/null +++ b/lexicons/git/temp2/getInterdiff.json @@ -0,0 +1,59 @@ +{ + "lexicon": 1, + "id": "sh.tangled.git.temp2.getInterdiff", + "defs": { + "main": { + "type": "query", + "parameters": { + "type": "params", + "required": [ + "baseRepo", + "baseCommit1", + "baseCommit2", + "headRepo", + "headCommit1", + "headCommit2" + ], + "properties": { + "baseRepo": { "type": "string", "format": "did" }, + "baseCommit1": { "type": "string" }, + "baseCommit2": { "type": "string" }, + "headRepo": { "type": "string", "format": "did" }, + "headCommit1": { "type": "string" }, + "headCommit2": { "type": "string" } + } + }, + "output": { + "encoding": "application/json", + "schema": { + "type": "object", + "required": ["diffs"], + "properties": { + "diffs": { + "type": "array", + "items": { "type": "ref", "ref": "sh.tangled.git.defs#fileDiff" } + } + } + } + }, + "errors": [ + { + "name": "RepoNotFound", + "description": "Repository not found or access denied" + }, + { + "name": "RevisionNotFound", + "description": "One or both revisions not found" + }, + { + "name": "InvalidRequest", + "description": "Invalid request parameters" + }, + { + "name": "CompareError", + "description": "Failed to compare revisions" + } + ] + } + } +} diff --git a/lexicons/git/temp2/listCommits.json b/lexicons/git/temp2/listCommits.json new file mode 100644 index 000000000..1cf183bc5 --- /dev/null +++ b/lexicons/git/temp2/listCommits.json @@ -0,0 +1,99 @@ +{ + "lexicon": 1, + "id": "sh.tangled.git.temp2.listCommits", + "defs": { + "main": { + "type": "query", + "parameters": { + "type": "params", + "required": ["repo"], + "properties": { + "repo": { + "type": "string", + "format": "did", + "description": "DID of the repository" + }, + "ranges": { "type": "array", "items": { "type": "string" } }, + "allRefs": { "type": "boolean", "default": false }, + "after": { "type": "string", "format": "datetime" }, + "before": { "type": "string", "format": "datetime" }, + "limit": { + "type": "integer", + "description": "Maximum number of commits to return", + "minimum": 1, + "maximum": 100, + "default": 50 + }, + "skip": { + "type": "integer", + "description": "Number of matching commits to skip. A poor man's pagination.", + "minimum": 0, + "default": 0 + } + } + }, + "output": { + "encoding": "application/json", + "schema": { + "type": "object", + "required": ["commits"], + "properties": { + "commits": { + "type": "array", + "items": { + "type": "ref", + "ref": "#commit" + } + } + } + } + }, + "errors": [ + { + "name": "RepoNotFound", + "description": "Repository not found or access denied" + }, + { + "name": "RefNotFound", + "description": "Git reference not found" + }, + { + "name": "InvalidRequest", + "description": "Invalid request parameters" + } + ] + }, + "commit": { + "type": "object", + "required": [ + "oid", + "parents", + "tree", + "author", + "committer", + "message", + "extraHeaders" + ], + "properties": { + "oid": { "type": "string" }, + "parents": { "type": "array", "items": { "type": "string" } }, + "tree": { "type": "string" }, + "author": { "type": "ref", "ref": "sh.tangled.git.defs#signature" }, + "committer": { "type": "ref", "ref": "sh.tangled.git.defs#signature" }, + "message": { "type": "string" }, + "extraHeaders": { + "type": "array", + "items": { "type": "ref", "ref": "#header" } + } + } + }, + "header": { + "type": "object", + "required": ["key", "value"], + "properties": { + "key": { "type": "string" }, + "value": { "type": "string" } + } + } + } +} diff --git a/lexicons/git/temp2/mergeCheck.json b/lexicons/git/temp2/mergeCheck.json new file mode 100644 index 000000000..84cd70e4f --- /dev/null +++ b/lexicons/git/temp2/mergeCheck.json @@ -0,0 +1,75 @@ +{ + "lexicon": 1, + "id": "sh.tangled.git.temp2.mergeCheck", + "defs": { + "main": { + "type": "query", + "description": "3-way merge check between a target branch tip (ours) and a source commit (theirs). Read-only: the merged tree is never persisted.", + "parameters": { + "type": "params", + "required": ["targetRepo", "targetCommit", "sourceRepo", "sourceCommit"], + "properties": { + "targetRepo": { "type": "string", "format": "did" }, + "targetCommit": { + "type": "string", + "description": "Target branch tip to merge into (ours)" + }, + "sourceRepo": { "type": "string", "format": "did" }, + "sourceCommit": { + "type": "string", + "description": "Source commit to merge (theirs)" + } + } + }, + "output": { + "encoding": "application/json", + "schema": { + "type": "object", + "required": ["isConflicted", "conflicts"], + "properties": { + "isConflicted": { + "type": "boolean", + "description": "Whether the merge has unresolved conflicts" + }, + "conflicts": { + "type": "array", + "items": { "type": "ref", "ref": "#conflict" } + }, + "message": { + "type": "string", + "description": "Additional detail, e.g. unrelated histories" + } + } + } + }, + "errors": [ + { + "name": "RepoNotFound", + "description": "Repository not found or access denied" + }, + { + "name": "RevisionNotFound", + "description": "One or both commits not found" + }, + { + "name": "InvalidRequest", + "description": "Invalid request parameters" + } + ] + }, + "conflict": { + "type": "object", + "required": ["filename", "reason"], + "properties": { + "filename": { + "type": "string", + "description": "Path of the conflicted file" + }, + "reason": { + "type": "string", + "description": "Short classification of the conflict" + } + } + } + } +} diff --git a/web/src/lib/api/lexicons/index.ts b/web/src/lib/api/lexicons/index.ts index 4f4cdea17..5e2da77d8 100644 --- a/web/src/lib/api/lexicons/index.ts +++ b/web/src/lib/api/lexicons/index.ts @@ -53,6 +53,10 @@ export * as ShTangledGitTempListBranches from "./types/sh/tangled/git/temp/listB export * as ShTangledGitTempListCommits from "./types/sh/tangled/git/temp/listCommits.js"; export * as ShTangledGitTempListLanguages from "./types/sh/tangled/git/temp/listLanguages.js"; export * as ShTangledGitTempListTags from "./types/sh/tangled/git/temp/listTags.js"; +export * as ShTangledGitTemp2GetDiff from "./types/sh/tangled/git/temp2/getDiff.js"; +export * as ShTangledGitTemp2GetInterdiff from "./types/sh/tangled/git/temp2/getInterdiff.js"; +export * as ShTangledGitTemp2ListCommits from "./types/sh/tangled/git/temp2/listCommits.js"; +export * as ShTangledGitTemp2MergeCheck from "./types/sh/tangled/git/temp2/mergeCheck.js"; export * as ShTangledGraphCountFollows from "./types/sh/tangled/graph/countFollows.js"; export * as ShTangledGraphCountFollowsBy from "./types/sh/tangled/graph/countFollowsBy.js"; export * as ShTangledGraphCountVouches from "./types/sh/tangled/graph/countVouches.js"; diff --git a/web/src/lib/api/lexicons/types/sh/tangled/git/defs.ts b/web/src/lib/api/lexicons/types/sh/tangled/git/defs.ts index 9d047f0f9..41a063fa8 100644 --- a/web/src/lib/api/lexicons/types/sh/tangled/git/defs.ts +++ b/web/src/lib/api/lexicons/types/sh/tangled/git/defs.ts @@ -1,6 +1,89 @@ import type {} from "@atcute/lexicons"; import * as v from "@atcute/lexicons/validations"; +const _byteChangesSchema = /*#__PURE__*/ v.object({ + $type: /*#__PURE__*/ v.optional( + /*#__PURE__*/ v.literal("sh.tangled.git.defs#byteChanges"), + ), + /** + * @minimum 0 + */ + lhs: /*#__PURE__*/ v.integer(), + /** + * @minimum 0 + */ + rhs: /*#__PURE__*/ v.integer(), +}); +const _diffHunkSchema = /*#__PURE__*/ v.object({ + $type: /*#__PURE__*/ v.optional( + /*#__PURE__*/ v.literal("sh.tangled.git.defs#diffHunk"), + ), + get lines() { + return /*#__PURE__*/ v.array(linePairSchema); + }, + /** + * 0-based line numbers holding novel content on the left side + */ + novelLhs: /*#__PURE__*/ v.array(/*#__PURE__*/ v.integer()), + /** + * 0-based line numbers holding novel content on the right side + */ + novelRhs: /*#__PURE__*/ v.array(/*#__PURE__*/ v.integer()), +}); +const _diffSrcSchema = /*#__PURE__*/ v.object({ + $type: /*#__PURE__*/ v.optional( + /*#__PURE__*/ v.literal("sh.tangled.git.defs#diffSrc"), + ), + /** + * Inlined content. Used on interdiff's LHS. + */ + content: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.string()), + isBinary: /*#__PURE__*/ v.boolean(), + isSubmodule: /*#__PURE__*/ v.boolean(), + /** + * Blob oid, or the commit oid for a submodule + */ + oid: /*#__PURE__*/ v.string(), + path: /*#__PURE__*/ v.string(), + /** + * @minimum 0 + */ + size: /*#__PURE__*/ v.integer(), +}); +const _fileDiffSchema = /*#__PURE__*/ v.object({ + $type: /*#__PURE__*/ v.optional( + /*#__PURE__*/ v.literal("sh.tangled.git.defs#fileDiff"), + ), + /** + * Byte count per side, present only when the two sides differ + */ + get hasByteChanges() { + return /*#__PURE__*/ v.optional(byteChangesSchema); + }, + hasSyntacticChanges: /*#__PURE__*/ v.boolean(), + get hunks() { + return /*#__PURE__*/ v.array(diffHunkSchema); + }, + get lhsSrc() { + return diffSrcSchema; + }, + get rhsSrc() { + return diffSrcSchema; + }, +}); +const _linePairSchema = /*#__PURE__*/ v.object({ + $type: /*#__PURE__*/ v.optional( + /*#__PURE__*/ v.literal("sh.tangled.git.defs#linePair"), + ), + /** + * @minimum 0 + */ + lhs: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.integer()), + /** + * @minimum 0 + */ + rhs: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.integer()), +}); const _signatureSchema = /*#__PURE__*/ v.object({ $type: /*#__PURE__*/ v.optional( /*#__PURE__*/ v.literal("sh.tangled.git.defs#signature"), @@ -19,10 +102,30 @@ const _signatureSchema = /*#__PURE__*/ v.object({ when: /*#__PURE__*/ v.datetimeString(), }); +type byteChanges$schematype = typeof _byteChangesSchema; +type diffHunk$schematype = typeof _diffHunkSchema; +type diffSrc$schematype = typeof _diffSrcSchema; +type fileDiff$schematype = typeof _fileDiffSchema; +type linePair$schematype = typeof _linePairSchema; type signature$schematype = typeof _signatureSchema; +export interface byteChangesSchema extends byteChanges$schematype {} +export interface diffHunkSchema extends diffHunk$schematype {} +export interface diffSrcSchema extends diffSrc$schematype {} +export interface fileDiffSchema extends fileDiff$schematype {} +export interface linePairSchema extends linePair$schematype {} export interface signatureSchema extends signature$schematype {} +export const byteChangesSchema = _byteChangesSchema as byteChangesSchema; +export const diffHunkSchema = _diffHunkSchema as diffHunkSchema; +export const diffSrcSchema = _diffSrcSchema as diffSrcSchema; +export const fileDiffSchema = _fileDiffSchema as fileDiffSchema; +export const linePairSchema = _linePairSchema as linePairSchema; export const signatureSchema = _signatureSchema as signatureSchema; +export interface ByteChanges extends v.InferInput {} +export interface DiffHunk extends v.InferInput {} +export interface DiffSrc extends v.InferInput {} +export interface FileDiff extends v.InferInput {} +export interface LinePair extends v.InferInput {} export interface Signature extends v.InferInput {} diff --git a/web/src/lib/api/lexicons/types/sh/tangled/git/temp2/getDiff.ts b/web/src/lib/api/lexicons/types/sh/tangled/git/temp2/getDiff.ts new file mode 100644 index 000000000..6fe8d775e --- /dev/null +++ b/web/src/lib/api/lexicons/types/sh/tangled/git/temp2/getDiff.ts @@ -0,0 +1,36 @@ +import type {} from "@atcute/lexicons"; +import * as v from "@atcute/lexicons/validations"; +import type {} from "@atcute/lexicons/ambient"; +import * as ShTangledGitDefs from "../defs.js"; + +const _mainSchema = /*#__PURE__*/ v.query("sh.tangled.git.temp2.getDiff", { + params: /*#__PURE__*/ v.object({ + baseCommit: /*#__PURE__*/ v.string(), + baseRepo: /*#__PURE__*/ v.didString(), + headCommit: /*#__PURE__*/ v.string(), + headRepo: /*#__PURE__*/ v.didString(), + }), + output: { + type: "lex", + schema: /*#__PURE__*/ v.object({ + get diffs() { + return /*#__PURE__*/ v.array(ShTangledGitDefs.fileDiffSchema); + }, + }), + }, +}); + +type main$schematype = typeof _mainSchema; + +export interface mainSchema extends main$schematype {} + +export const mainSchema = _mainSchema as mainSchema; + +export interface $params extends v.InferInput {} +export interface $output extends v.InferXRPCBodyInput {} + +declare module "@atcute/lexicons/ambient" { + interface XRPCQueries { + "sh.tangled.git.temp2.getDiff": mainSchema; + } +} diff --git a/web/src/lib/api/lexicons/types/sh/tangled/git/temp2/getInterdiff.ts b/web/src/lib/api/lexicons/types/sh/tangled/git/temp2/getInterdiff.ts new file mode 100644 index 000000000..3f23b4387 --- /dev/null +++ b/web/src/lib/api/lexicons/types/sh/tangled/git/temp2/getInterdiff.ts @@ -0,0 +1,38 @@ +import type {} from "@atcute/lexicons"; +import * as v from "@atcute/lexicons/validations"; +import type {} from "@atcute/lexicons/ambient"; +import * as ShTangledGitDefs from "../defs.js"; + +const _mainSchema = /*#__PURE__*/ v.query("sh.tangled.git.temp2.getInterdiff", { + params: /*#__PURE__*/ v.object({ + baseCommit1: /*#__PURE__*/ v.string(), + baseCommit2: /*#__PURE__*/ v.string(), + baseRepo: /*#__PURE__*/ v.didString(), + headCommit1: /*#__PURE__*/ v.string(), + headCommit2: /*#__PURE__*/ v.string(), + headRepo: /*#__PURE__*/ v.didString(), + }), + output: { + type: "lex", + schema: /*#__PURE__*/ v.object({ + get diffs() { + return /*#__PURE__*/ v.array(ShTangledGitDefs.fileDiffSchema); + }, + }), + }, +}); + +type main$schematype = typeof _mainSchema; + +export interface mainSchema extends main$schematype {} + +export const mainSchema = _mainSchema as mainSchema; + +export interface $params extends v.InferInput {} +export interface $output extends v.InferXRPCBodyInput {} + +declare module "@atcute/lexicons/ambient" { + interface XRPCQueries { + "sh.tangled.git.temp2.getInterdiff": mainSchema; + } +} diff --git a/web/src/lib/api/lexicons/types/sh/tangled/git/temp2/listCommits.ts b/web/src/lib/api/lexicons/types/sh/tangled/git/temp2/listCommits.ts new file mode 100644 index 000000000..459aa4b1c --- /dev/null +++ b/web/src/lib/api/lexicons/types/sh/tangled/git/temp2/listCommits.ts @@ -0,0 +1,97 @@ +import type {} from "@atcute/lexicons"; +import * as v from "@atcute/lexicons/validations"; +import type {} from "@atcute/lexicons/ambient"; +import * as ShTangledGitDefs from "../defs.js"; + +const _commitSchema = /*#__PURE__*/ v.object({ + $type: /*#__PURE__*/ v.optional( + /*#__PURE__*/ v.literal("sh.tangled.git.temp2.listCommits#commit"), + ), + get author() { + return ShTangledGitDefs.signatureSchema; + }, + get committer() { + return ShTangledGitDefs.signatureSchema; + }, + get extraHeaders() { + return /*#__PURE__*/ v.array(headerSchema); + }, + message: /*#__PURE__*/ v.string(), + oid: /*#__PURE__*/ v.string(), + parents: /*#__PURE__*/ v.array(/*#__PURE__*/ v.string()), + tree: /*#__PURE__*/ v.string(), +}); +const _headerSchema = /*#__PURE__*/ v.object({ + $type: /*#__PURE__*/ v.optional( + /*#__PURE__*/ v.literal("sh.tangled.git.temp2.listCommits#header"), + ), + key: /*#__PURE__*/ v.string(), + value: /*#__PURE__*/ v.string(), +}); +const _mainSchema = /*#__PURE__*/ v.query("sh.tangled.git.temp2.listCommits", { + params: /*#__PURE__*/ v.object({ + after: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.datetimeString()), + /** + * @default false + */ + allRefs: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.boolean(), false), + before: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.datetimeString()), + /** + * Maximum number of commits to return + * @minimum 1 + * @maximum 100 + * @default 50 + */ + limit: /*#__PURE__*/ v.optional( + /*#__PURE__*/ v.constrain(/*#__PURE__*/ v.integer(), [ + /*#__PURE__*/ v.integerRange(1, 100), + ]), + 50, + ), + ranges: /*#__PURE__*/ v.optional( + /*#__PURE__*/ v.array(/*#__PURE__*/ v.string()), + ), + /** + * DID of the repository + */ + repo: /*#__PURE__*/ v.didString(), + /** + * Number of matching commits to skip. A poor man's pagination. + * @minimum 0 + * @default 0 + */ + skip: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.integer(), 0), + }), + output: { + type: "lex", + schema: /*#__PURE__*/ v.object({ + get commits() { + return /*#__PURE__*/ v.array(commitSchema); + }, + }), + }, +}); + +type commit$schematype = typeof _commitSchema; +type header$schematype = typeof _headerSchema; +type main$schematype = typeof _mainSchema; + +export interface commitSchema extends commit$schematype {} +export interface headerSchema extends header$schematype {} +export interface mainSchema extends main$schematype {} + +export const commitSchema = _commitSchema as commitSchema; +export const headerSchema = _headerSchema as headerSchema; +export const mainSchema = _mainSchema as mainSchema; + +export interface Commit extends v.InferInput {} +export interface Header extends v.InferInput {} + +export interface $params extends v.InferInput {} +export interface $output extends v.InferXRPCBodyInput {} + +declare module "@atcute/lexicons/ambient" { + interface XRPCQueries { + "sh.tangled.git.temp2.listCommits": mainSchema; + } +} diff --git a/web/src/lib/api/lexicons/types/sh/tangled/git/temp2/mergeCheck.ts b/web/src/lib/api/lexicons/types/sh/tangled/git/temp2/mergeCheck.ts new file mode 100644 index 000000000..6b926e638 --- /dev/null +++ b/web/src/lib/api/lexicons/types/sh/tangled/git/temp2/mergeCheck.ts @@ -0,0 +1,67 @@ +import type {} from "@atcute/lexicons"; +import * as v from "@atcute/lexicons/validations"; +import type {} from "@atcute/lexicons/ambient"; + +const _conflictSchema = /*#__PURE__*/ v.object({ + $type: /*#__PURE__*/ v.optional( + /*#__PURE__*/ v.literal("sh.tangled.git.temp2.mergeCheck#conflict"), + ), + /** + * Path of the conflicted file + */ + filename: /*#__PURE__*/ v.string(), + /** + * Short classification of the conflict + */ + reason: /*#__PURE__*/ v.string(), +}); +const _mainSchema = /*#__PURE__*/ v.query("sh.tangled.git.temp2.mergeCheck", { + params: /*#__PURE__*/ v.object({ + /** + * Source commit to merge (theirs) + */ + sourceCommit: /*#__PURE__*/ v.string(), + sourceRepo: /*#__PURE__*/ v.didString(), + /** + * Target branch tip to merge into (ours) + */ + targetCommit: /*#__PURE__*/ v.string(), + targetRepo: /*#__PURE__*/ v.didString(), + }), + output: { + type: "lex", + schema: /*#__PURE__*/ v.object({ + get conflicts() { + return /*#__PURE__*/ v.array(conflictSchema); + }, + /** + * Whether the merge has unresolved conflicts + */ + isConflicted: /*#__PURE__*/ v.boolean(), + /** + * Additional detail, e.g. unrelated histories + */ + message: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.string()), + }), + }, +}); + +type conflict$schematype = typeof _conflictSchema; +type main$schematype = typeof _mainSchema; + +export interface conflictSchema extends conflict$schematype {} +export interface mainSchema extends main$schematype {} + +export const conflictSchema = _conflictSchema as conflictSchema; +export const mainSchema = _mainSchema as mainSchema; + +export interface Conflict extends v.InferInput {} + +export interface $params extends v.InferInput {} +export interface $output extends v.InferXRPCBodyInput {} + +declare module "@atcute/lexicons/ambient" { + interface XRPCQueries { + "sh.tangled.git.temp2.mergeCheck": mainSchema; + } +}