DNF90 服务端与启动器完整源码(含 GM 工具功能增强)

服务端(Go):
- GM 塞背包/带属性装备发放:在线角色推送 op14 增量物品行,背包实时刷新,无需回角色选择界面
- GM 改金币/改等级:去掉在线拒绝,落库后推送 op14 钱包/op37 等级状态,在线实时刷新
- 等级端点统一切换到新版 GMSetCharacterLevel(自带在线刷新)
- 无限/锁死疲劳模式 + 燃烧疲劳:每房间消耗 2 点、打怪与通关经验双倍
- 燃烧疲劳开关时给所有在线角色推送系统提示(op12 mode 0)
- 深渊史诗掉率:GM 全局倍率 + 城镇增益药剂窗口倍率,真实接入掉落结算

启动器(Python/JS):
- 标题栏自绘、窗口 1204x717、禁止拖拽改大小、仅最小化/关闭
- GM 工具:疲劳与燃烧、深渊史诗掉率、拍卖行上架(单一定价对齐)
- 拍卖行上架前端对齐服务端单一价格语义,修复 400 报错
This commit is contained in:
hanfuit committed 2026-11-04 14:31:55 +08:00
commit 645b64fe21
4388 files changed
+1405457

No files matched your search

@@ -0,0 +1,11 @@
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT
export {
Operation
} from "./models.js";
export type {
Component,
Descriptor
} from "./models.js";
@@ -0,0 +1,32 @@
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT
export interface Component {
"id": string;
"title": string;
"description": string;
"defaultSelected": boolean;
"requires": string[] | null;
"exclusiveGroup": string;
}
export interface Descriptor {
"id": string;
"name": string;
"canRead": boolean;
"canWrite": boolean;
"operations": Operation[] | null;
}
export enum Operation {
/**
* The Go zero value for the underlying type of the enum.
*/
$zero = "",
AddFile = "add",
ReplaceFile = "replace",
MergeList = "merge-list",
MergeStrings = "merge-strings",
DeleteFile = "delete",
};
@@ -0,0 +1,9 @@
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT
export type {
ArchiveInfoView,
ContentRules,
StringTableIndexStats,
WriteCapabilities
} from "./models.js";
@@ -0,0 +1,60 @@
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT
/**
* ArchiveInfoView is a UI-facing snapshot of the archive state. Paged110 is a
* legacy wire field for the shared paged capability, not a client version.
*/
export interface ArchiveInfoView {
"path": string;
"fileCount": number;
"groupCount": number;
"bodySize": number;
"modifiedCount": number;
"usesGuard": boolean;
"paged110": boolean;
"format": string;
"contentRules": ContentRules;
"writeCapabilities": WriteCapabilities;
"textEncoding": string;
"textEncodingLabel": string;
}
/**
* ContentRules describes client content conventions independently of the
* physical container. Future containers can reuse or combine these rules.
*/
export interface ContentRules {
"utf16Only": boolean;
"requiresIndexHash": boolean;
"supportsStringReferences": boolean;
}
/**
* StringTableIndexStats counts actual lazy builds, not cached lookups.
* Durations and payload counts are cumulative for this archive instance.
*/
export interface StringTableIndexStats {
"revision": number;
"state": string;
"activeBuilds": number;
"mappingBuilds": number;
"mappingCount": number;
"tableBuilds": number;
"failedTables": number;
"entries": number;
"bytes": number;
"mappingDurationMs": number;
"tableDurationMs": number;
"buildDurationMs": number;
}
/**
* WriteCapabilities is derived from both the format and recovered archive
* state. Structural edits include appending or remapping string-pool entries.
*/
export interface WriteCapabilities {
"canSave": boolean;
"canChangeStructure": boolean;
"reason": string;
}
@@ -0,0 +1,7 @@
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT
export type {
Entry,
Mutation
} from "./models.js";
@@ -0,0 +1,22 @@
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT
export interface Entry {
"id": string;
"kind": string;
"json": string;
"source": string;
"overridden": boolean;
"disabled": boolean;
"effective": boolean;
"dependencies": string[] | null;
}
export interface Mutation {
"category": string;
"revision": string;
"kind": string;
"id": string;
"action": string;
"json": string;
}
@@ -0,0 +1,18 @@
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import { Call as $Call, CancellablePromise as $CancellablePromise } from "@wailsio/runtime";
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import * as $models from "./models.js";
/**
* ReloadRules validates the on-disk rules before atomically replacing the
* active engine. Invalid files leave the current engine untouched.
*/
export function ReloadRules(): $CancellablePromise<$models.AnnotationReloadResult> {
return $Call.ByID(2871075508);
}
@@ -0,0 +1,75 @@
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT
/**
* ArchiveDiffService owns an isolated read-only comparison. It never installs
* the comparison archive in core or initializes workspace-derived indexes.
* @module
*/
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import { Call as $Call, CancellablePromise as $CancellablePromise } from "@wailsio/runtime";
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import * as $models from "./models.js";
export function Cancel(id: string): $CancellablePromise<void> {
return $Call.ByID(3576340794, id);
}
export function Children(id: string, path: string): $CancellablePromise<$models.ArchiveDiffNode[] | null> {
return $Call.ByID(3415478687, id, path);
}
export function FileDiff(id: string, path: string): $CancellablePromise<$models.ArchiveDiffFile | null> {
return $Call.ByID(1854378037, id, path);
}
/**
* FilteredChildren 按照目录路径与操作类型(all/add/modify/delete)返回子节点列表
*/
export function FilteredChildren(id: string, path: string, operation: string): $CancellablePromise<$models.ArchiveDiffNode[] | null> {
return $Call.ByID(1031553676, id, path, operation);
}
/**
* FlatFiles 按照搜索词与操作类型返回所有差异文件的平铺列表,供双栏工作台过滤检索
*/
export function FlatFiles(id: string, query: string, operation: string): $CancellablePromise<$models.ArchiveDiffNode[] | null> {
return $Call.ByID(2926329878, id, query, operation);
}
/**
* MergeFiles 将选中的差异文件从对比归档合并到本地当前打开的归档中。
* 遵循核心锁在前、diff 锁在后的顺序防止死锁。
* @author flobit
*/
export function MergeFiles(id: string, paths: string[] | null): $CancellablePromise<$models.ArchiveDiffMergeResult | null> {
return $Call.ByID(2350138011, id, paths);
}
/**
* MergeText 将单文件编辑或段落合入后的最终文本写回到当前工作区归档。
* @author flobit
*/
export function MergeText(id: string, path: string, text: string): $CancellablePromise<void> {
return $Call.ByID(3084798427, id, path, text);
}
export function Release(): $CancellablePromise<void> {
return $Call.ByID(3139863069);
}
export function SelectArchive(): $CancellablePromise<string> {
return $Call.ByID(3235316614);
}
export function Start(request: $models.ArchiveDiffRequest): $CancellablePromise<$models.ArchiveDiffStatus | null> {
return $Call.ByID(1549978460, request);
}
export function Status(id: string): $CancellablePromise<$models.ArchiveDiffStatus | null> {
return $Call.ByID(473957762, id);
}
@@ -0,0 +1,273 @@
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT
/**
* ArchiveService: 打开/关闭归档、状态查询、资源树懒加载与搜索。
* @module
*/
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import { Call as $Call, CancellablePromise as $CancellablePromise } from "@wailsio/runtime";
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import * as $models from "./models.js";
/**
* AdvancedIndexStatus returns the lazy string reverse-index status.
*/
export function AdvancedIndexStatus(): $CancellablePromise<$models.AdvancedSearchIndexStatus> {
return $Call.ByID(2276700277);
}
/**
* AdvancedSearch searches raw token bytes, string-pool references, or explorer metadata.
* Pass NextCursor back unchanged; string-mode cursors identify the query
* session and position, while binary mode retains its legacy offset. Limit is 1..1000.
*/
export function AdvancedSearch(mode: string, query: string, scopePath: string, regex: boolean, cursor: number, limit: number): $CancellablePromise<$models.AdvancedSearchResult | null> {
return $Call.ByID(3108371697, mode, query, scopePath, regex, cursor, limit);
}
/**
* CancelAdvancedSearch releases the lazy string index and cancels its current
* build/query. Binary search keeps its existing API and cancellation behavior.
*/
export function CancelAdvancedSearch(): $CancellablePromise<void> {
return $Call.ByID(4160052339);
}
/**
* Close 关闭当前归档,丢弃未保存的内存修改。
*/
export function Close(): $CancellablePromise<void> {
return $Call.ByID(3538974537);
}
/**
* CreateFile adds an empty editable file to the current archive. dataType is
* pvf.TypeScript or pvf.TypeUnicode; the caller can fill its content through
* EditorService.SetText afterwards.
*/
export function CreateFile(path: string, dataType: number): $CancellablePromise<$models.TreeNode | null> {
return $Call.ByID(3528027549, path, dataType);
}
/**
* DeleteFiles removes one or more file entries from the current archive.
*/
export function DeleteFiles(fileIndexes: number[] | null): $CancellablePromise<string[] | null> {
return $Call.ByID(1323782031, fileIndexes);
}
/**
* DeleteFilesWithRegistrations removes files and, when requested, the
* configured .lst entries that register those files.
*/
export function DeleteFilesWithRegistrations(fileIndexes: number[] | null, syncRegistrations: boolean): $CancellablePromise<string[] | null> {
return $Call.ByID(3396075955, fileIndexes, syncRegistrations);
}
/**
* FindFileRegistrations returns configured .lst entries that point to the
* supplied file indexes. It uses the same relation definitions as the search
* index, including contextual skill lists.
*/
export function FindFileRegistrations(fileIndexes: number[] | null): $CancellablePromise<($models.FileRegistration | null)[] | null> {
return $Call.ByID(3214711988, fileIndexes);
}
/**
* ImportFiles imports sourcePaths into targetDir. The source paths may be
* files or directories. All source data is read and staged before the live
* archive is replaced, so an error leaves the current archive unchanged.
*/
export function ImportFiles(sourcePaths: string[] | null, targetDir: string, mode: string): $CancellablePromise<$models.ImportResult | null> {
return $Call.ByID(1820874221, sourcePaths, targetDir, mode);
}
/**
* ImportFilesDialog opens a native multi-selection picker and imports the
* selected files or directories into targetDir.
*/
export function ImportFilesDialog(targetDir: string, mode: string): $CancellablePromise<$models.ImportResult | null> {
return $Call.ByID(2956082033, targetDir, mode);
}
/**
* IndexHashTargets lists the available list/indexhash pairs in a Paged110
* archive. Older archive layouts intentionally return an error.
*/
export function IndexHashTargets(): $CancellablePromise<($models.IndexHashTarget | null)[] | null> {
return $Call.ByID(531951057);
}
/**
* IndexStatus 返回当前归档的语义搜索索引状态。
*/
export function IndexStatus(): $CancellablePromise<$models.IndexStatus> {
return $Call.ByID(1258396651);
}
/**
* Info 返回当前归档状态;未打开时 Path 为空。
*/
export function Info(): $CancellablePromise<$models.ArchiveInfo> {
return $Call.ByID(1156716487);
}
/**
* ListChildren 懒加载某目录的直接子节点;path 为空表示根。
*/
export function ListChildren(path: string): $CancellablePromise<($models.TreeNode | null)[] | null> {
return $Call.ByID(3689351460, path);
}
/**
* ListDescendantFiles returns all files below a directory path. An empty path
* returns every file in the archive. Results preserve the archive path order.
*/
export function ListDescendantFiles(scopePath: string): $CancellablePromise<($models.TreeNode | null)[] | null> {
return $Call.ByID(1570903299, scopePath);
}
/**
* ListModifiedFiles lists the files currently changed in the in-memory PVF
* overlay. It deliberately does not depend on the optional version sidecar,
* so the version panel can show pending edits before version control is
* initialized.
*/
export function ListModifiedFiles(): $CancellablePromise<($models.TreeNode | null)[] | null> {
return $Call.ByID(3738676551);
}
/**
* ListRegistrationOptions returns the configured lists that can point to a
* file. Existing registrations are supplied by the search index and displayed
* beside the editor file, so this endpoint only supplies a target list and a
* collision-free default id.
*/
export function ListRegistrationOptions(fileIndex: number): $CancellablePromise<$models.FileRegistrationOptions | null> {
return $Call.ByID(4087817400, fileIndex);
}
/**
* Open 加载指定路径的归档并构建目录索引。
*/
export function Open(path: string): $CancellablePromise<$models.ArchiveInfo> {
return $Call.ByID(1804667807, path);
}
/**
* OpenDialog 弹出文件选择框并加载归档。
*/
export function OpenDialog(): $CancellablePromise<$models.ArchiveInfo | null> {
return $Call.ByID(4043575243);
}
/**
* PreviewImport validates and maps sourcePaths without modifying the live
* archive. It also stages the files on an isolated archive to catch encoding
* and index-building errors before the user confirms the operation.
*/
export function PreviewImport(sourcePaths: string[] | null, targetDir: string, mode: string): $CancellablePromise<$models.ImportPreview | null> {
return $Call.ByID(928248660, sourcePaths, targetDir, mode);
}
/**
* RebuildSearchIndex starts an asynchronous forced rebuild. An existing ready
* snapshot remains available to Search while the replacement is prepared.
*/
export function RebuildSearchIndex(): $CancellablePromise<$models.IndexStatus> {
return $Call.ByID(2232923942);
}
/**
* RegisterFileToList registers one file in the selected list. Paged110 files
* also receive the generated companion index-hash entry in the same mutation.
*/
export function RegisterFileToList(fileIndex: number, listPath: string, id: string): $CancellablePromise<$models.FileRegistration | null> {
return $Call.ByID(1202157717, fileIndex, listPath, id);
}
/**
* RegisterMissingIndexHashes writes generated hashes for ids that are absent
* from the selected companion file, and repairs entries written to the wrong
* string pool. Valid existing entries are left untouched.
*/
export function RegisterMissingIndexHashes(listPath: string, rawIDs: string[] | null): $CancellablePromise<$models.IndexHashRegistrationResult | null> {
return $Call.ByID(1112195474, listPath, rawIDs);
}
/**
* ResolveFiles resolves archive files by their normalized paths. Missing
* paths are omitted and duplicate input paths are returned only once.
*/
export function ResolveFiles(paths: string[] | null): $CancellablePromise<($models.TreeNode | null)[] | null> {
return $Call.ByID(2727375736, paths);
}
/**
* Search 在路径、语义名称和 id 中做不区分大小写的子串匹配。
* 查询包含 * 或 ? 时,改用通配符匹配:* 匹配任意长度字符,? 匹配一个字符。
* cursor 传上次返回的 NextCursor(首次传 0),limit 为本页上限(1..1000)。
*/
export function Search(query: string, cursor: number, limit: number): $CancellablePromise<$models.SearchResult | null> {
return $Call.ByID(685177899, query, cursor, limit);
}
/**
* SearchEffectResources applies the resource scope before pagination. Particle
* paths are discovered across the archive, including monster/ and equipment/.
*/
export function SearchEffectResources(kind: string, query: string, cursor: number, limit: number): $CancellablePromise<$models.SearchResult | null> {
return $Call.ByID(2434630623, kind, query, cursor, limit);
}
/**
* SearchExact 在路径、语义名称和 id 中做不区分大小写的全量匹配。
* 查询包含 * 或 ? 时,通配符仍按完整字段匹配。
* cursor 传上次返回的 NextCursor(首次传 0),limit 为本页上限(1..1000)。
*/
export function SearchExact(query: string, cursor: number, limit: number): $CancellablePromise<$models.SearchResult | null> {
return $Call.ByID(2978904002, query, cursor, limit);
}
/**
* SearchItems searches only registered equipment and stackable items. Filtering
* happens before pagination, so unrelated records cannot hide valid choices.
*/
export function SearchItems(query: string, cursor: number, limit: number): $CancellablePromise<$models.SearchResult | null> {
return $Call.ByID(2107665645, query, cursor, limit);
}
/**
* SearchQuestTargets searches registered dungeon, monster, or NPC IDs before pagination.
*/
export function SearchQuestTargets(kind: string, query: string, cursor: number, limit: number): $CancellablePromise<$models.SearchResult | null> {
return $Call.ByID(750277207, kind, query, cursor, limit);
}
/**
* SelectImportFilesDialog opens the native multi-selection picker without
* changing the current archive. The returned paths can be previewed first.
*/
export function SelectImportFilesDialog(): $CancellablePromise<string[] | null> {
return $Call.ByID(2682653281);
}
/**
* SetTextEncoding reinterprets native text without rewriting the archive.
*/
export function SetTextEncoding(encoding: string): $CancellablePromise<$models.ArchiveInfo> {
return $Call.ByID(3088270803, encoding);
}
/**
* SuggestDirectories returns directory paths with a case-insensitive prefix
* match. An empty prefix returns no suggestions to avoid flooding the UI.
*/
export function SuggestDirectories(prefix: string, limit: number): $CancellablePromise<string[] | null> {
return $Call.ByID(1741104606, prefix, limit);
}
@@ -0,0 +1,84 @@
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT
/**
* AutosaveService keeps a single overwriting snapshot of the current workspace
* so an abnormal exit (crash, killed process) leaves something to recover. The
* snapshot never touches the live archive: it is written from an isolated clone
* and the workspace stays "unsaved" after the write.
* @module
*/
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import { Call as $Call, CancellablePromise as $CancellablePromise } from "@wailsio/runtime";
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import * as $models from "./models.js";
/**
* ChooseCachePath asks the user for a backup file location.
*/
export function ChooseCachePath(): $CancellablePromise<string> {
return $Call.ByID(3588233147);
}
/**
* CreateSnapshot writes the pending edits to the backup slot. The live archive
* is left untouched: the write goes through an isolated clone, so the workspace
* keeps its unsaved state and the source file is never modified.
*/
export function CreateSnapshot(): $CancellablePromise<void> {
return $Call.ByID(1696877259);
}
/**
* Discard deletes the backup slot. It reports whether a cache file was removed.
*/
export function Discard(): $CancellablePromise<boolean> {
return $Call.ByID(3340239319);
}
/**
* DropForSource deletes the backup only when it belongs to sourcePath. Saving or
* closing another archive must never destroy a backup that still protects a
* different workspace.
*/
export function DropForSource(sourcePath: string): $CancellablePromise<void> {
return $Call.ByID(2933238364, sourcePath);
}
/**
* DropForWorkspace drops the backup of the currently open workspace. It is the
* exit path's "the user gave up on these edits" cleanup.
*/
export function DropForWorkspace(): $CancellablePromise<void> {
return $Call.ByID(1885443074);
}
/**
* PendingRecovery reports the backup left behind by an interrupted session, or
* nil when the slot is empty.
*/
export function PendingRecovery(): $CancellablePromise<$models.RecoveryInfo | null> {
return $Call.ByID(1111209093);
}
/**
* Restore reopens the recorded source file and replays the backed-up edits into
* the in-memory overlay, so the workspace ends up dirty exactly like the
* session that was interrupted: modified markers, version changes and the save
* target all stay consistent. The backup itself is kept until the next save or
* an explicit discard.
*/
export function Restore(): $CancellablePromise<$models.ArchiveInfo> {
return $Call.ByID(2260146459);
}
/**
* Status reports the backup slot without writing anything.
*/
export function Status(): $CancellablePromise<$models.AutosaveStatus> {
return $Call.ByID(3903292189);
}
@@ -0,0 +1,41 @@
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT
/**
* BatchService previews and applies multi-file edits against the current PVF.
* Preview plans live only in memory and are invalidated by every archive
* content mutation.
* @module
*/
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import { Call as $Call, CancellablePromise as $CancellablePromise } from "@wailsio/runtime";
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import * as $models from "./models.js";
/**
* Apply commits exactly the selected changed rows from a preview plan. An
* empty selection is rejected so the UI cannot accidentally report success for
* a no-op.
*/
export function Apply(planID: string, fileIndexes: number[] | null): $CancellablePromise<$models.BatchApplyResult> {
return $Call.ByID(693272307, planID, fileIndexes);
}
/**
* Preview builds an in-memory plan and returns its first page. It does not
* modify the live archive or any editor overlay.
*/
export function Preview(request: $models.BatchRequest): $CancellablePromise<$models.BatchPreviewPage | null> {
return $Call.ByID(3861460799, request);
}
/**
* PreviewPage returns another page from the currently retained preview plan.
*/
export function PreviewPage(planID: string, cursor: number, limit: number): $CancellablePromise<$models.BatchPreviewPage | null> {
return $Call.ByID(1058193476, planID, cursor, limit);
}
@@ -0,0 +1,45 @@
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT
/**
* BookmarkService persists user books and supplies the embedded system book.
* @module
*/
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import { Call as $Call, CancellablePromise as $CancellablePromise } from "@wailsio/runtime";
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import * as $models from "./models.js";
/**
* ExportBookmarkBookDialog saves one portable bookmark book selected by the
* frontend. Built-in books are intentionally exportable.
*/
export function ExportBookmarkBookDialog(book: $models.BookmarkBookFile): $CancellablePromise<string> {
return $Call.ByID(587496382, book);
}
/**
* ImportBookmarkBookDialog opens and parses one portable bookmark book.
*/
export function ImportBookmarkBookDialog(): $CancellablePromise<$models.BookmarkBookFile | null> {
return $Call.ByID(1853962089);
}
/**
* LoadBookmarks loads custom books and injects the current built-in book.
*/
export function LoadBookmarks(): $CancellablePromise<$models.BookmarkDocument> {
return $Call.ByID(3710037022);
}
/**
* SaveBookmarks persists custom books and, in development mode, writes the
* built-in book back to config/bookmarks.json.
*/
export function SaveBookmarks(document: $models.BookmarkDocument): $CancellablePromise<void> {
return $Call.ByID(552992597, document);
}
@@ -0,0 +1,43 @@
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT
/**
* CacheService reports and clears the caches the application keeps for itself:
* the semantic search index, the SQLite archive index, the advanced search
* index, the NPK icon index and the timed workspace backup. Everything below
* the cache root is either rebuilt on demand or disposable, so clearing can
* never remove configuration, bookmarks or file sets (those live in the user
* config directory).
* @module
*/
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import { Call as $Call, CancellablePromise as $CancellablePromise } from "@wailsio/runtime";
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import * as $models from "./models.js";
/**
* Clear deletes every cache entry it can, leaving indexes that are still in use
* by the running session in place.
*/
export function Clear(): $CancellablePromise<$models.CacheClearResult> {
return $Call.ByID(25024348);
}
/**
* EnforceBudget applies the shared soft budget, retaining all live leases and
* recovery backups. Once exceeded, it aims for 80% to avoid repeated small IO.
*/
export function EnforceBudget(): $CancellablePromise<$models.CacheClearResult> {
return $Call.ByID(971869066);
}
/**
* Usage sums the cache without changing anything.
*/
export function Usage(): $CancellablePromise<$models.CacheUsage> {
return $Call.ByID(3120517810);
}
@@ -0,0 +1,32 @@
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT
/**
* DropService reads and applies the four structured drop-rate files without
* opening them as editor tabs. Changes remain in the archive overlay until the
* regular editor save operation writes the PVF source file.
* @module
*/
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import { Call as $Call, CancellablePromise as $CancellablePromise } from "@wailsio/runtime";
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import * as $models from "./models.js";
/**
* Apply validates and applies a complete editor snapshot atomically. The
* revision check prevents a stale modal from overwriting a newer archive edit.
*/
export function Apply(request: $models.DropRateApplyRequest): $CancellablePromise<$models.DropRateApplyResult> {
return $Call.ByID(4081871964, request);
}
/**
* Read returns the current drop-rate snapshot for a verified client family.
*/
export function Read(): $CancellablePromise<$models.DropRateDocument | null> {
return $Call.ByID(1517419244);
}
@@ -0,0 +1,105 @@
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT
/**
* EditorService: 文件内容读取、内存编辑、保存/另存为、导出与整包解包。
* @module
*/
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import { Call as $Call, CancellablePromise as $CancellablePromise } from "@wailsio/runtime";
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import * as $models from "./models.js";
/**
* CancelUnpack 请求中止进行中的解包。
*/
export function CancelUnpack(): $CancellablePromise<void> {
return $Call.ByID(1164216096);
}
/**
* ExportFilesDialog 将选中的文件或目录导出到目标目录,文件内容使用渲染后的 UTF-8 文本。
* 目录会递归展开,并保留归档内的相对路径。
*/
export function ExportFilesDialog(scopes: string[] | null): $CancellablePromise<string> {
return $Call.ByID(2444537465, scopes);
}
/**
* GetAnnotations recomputes annotations against the exact current editor text.
*/
export function GetAnnotations(index: number): $CancellablePromise<$models.EditorAnnotation[] | null> {
return $Call.ByID(1902721074, index);
}
/**
* GetAnnotationsForText annotates a frontend draft without committing it to the archive.
*/
export function GetAnnotationsForText(index: number, text: string): $CancellablePromise<$models.EditorAnnotation[] | null> {
return $Call.ByID(1012716402, index, text);
}
/**
* GetFile 返回文件的反编译文本(内存编辑视图)。
*/
export function GetFile(index: number): $CancellablePromise<$models.FileMeta | null> {
return $Call.ByID(1304838230, index);
}
/**
* GetFileBasic returns the rendered file body without annotations or indexed
* metadata so the editor can display useful content before enrichment loads.
*/
export function GetFileBasic(index: number): $CancellablePromise<$models.FileMeta | null> {
return $Call.ByID(1614034244, index);
}
/**
* IsUnpacking 报告解包是否进行中。
*/
export function IsUnpacking(): $CancellablePromise<boolean> {
return $Call.ByID(3758982134);
}
/**
* Save 把全部内存修改写回源文件(原子写:临时文件 + rename)。
*/
export function Save(): $CancellablePromise<$models.ArchiveInfo> {
return $Call.ByID(1087792513);
}
/**
* SaveAsDialog 弹出保存对话框并另存为新 PVF。返回保存路径。
*/
export function SaveAsDialog(): $CancellablePromise<string> {
return $Call.ByID(3571654109);
}
/**
* SetPlaceholderText rewrites the display text behind one `<table::key>`
* placeholder of a script. index is the script being edited; tableIndex and key
* come from the placeholder annotation. Only the `.str` payload changes — the
* script keeps its placeholder, so no stored script data is altered.
*/
export function SetPlaceholderText(index: number, tableIndex: number, key: string, text: string): $CancellablePromise<void> {
return $Call.ByID(62517930, index, tableIndex, key, text);
}
/**
* SetText 把编辑后的文本写入内存 overlay(不落盘)。
*/
export function SetText(index: number, text: string): $CancellablePromise<void> {
return $Call.ByID(1812312363, index, text);
}
/**
* UnpackDialog 选择目录后,在后台协程把整包解包到该目录。
* 进度通过事件 "unpack:progress" {done,total} 推送,结束发 "unpack:done"。
*/
export function UnpackDialog(): $CancellablePromise<boolean> {
return $Call.ByID(4045253730);
}
@@ -0,0 +1,54 @@
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT
/**
* ExportService owns one short-lived immutable preview, shared by all export
* entry points. Source adaptation and format serialization remain independent.
* @module
*/
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import { Call as $Call, CancellablePromise as $CancellablePromise } from "@wailsio/runtime";
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import * as mod$0 from "../internal/mod/models.js";
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import * as $models from "./models.js";
/**
* ExecuteDialog picks the parent directory only after the frontend confirms.
*/
export function ExecuteDialog(id: string): $CancellablePromise<string> {
return $Call.ByID(179822670, id);
}
/**
* ExecuteSelectionDialog applies exclusions to the frozen preview. Dependencies
* are not resolved again, so an explicitly excluded file cannot reappear.
*/
export function ExecuteSelectionDialog(id: string, excluded: string[] | null): $CancellablePromise<string> {
return $Call.ByID(2804013576, id, excluded);
}
export function Formats(): $CancellablePromise<mod$0.Descriptor[] | null> {
return $Call.ByID(1740817781);
}
export function Prepare(request: $models.ExportRequest): $CancellablePromise<$models.ExportPreview | null> {
return $Call.ByID(3328806638, request);
}
export function Release(id: string): $CancellablePromise<void> {
return $Call.ByID(999072264, id);
}
/**
* SelectMergeDialog reads metadata only after a source has been selected and validated.
*/
export function SelectMergeDialog(formatID: string): $CancellablePromise<$models.ExportMergeSource | null> {
return $Call.ByID(254498909, formatID);
}
@@ -0,0 +1,153 @@
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT
/**
* FileGUIService reads GUI documents and applies validated edits to the overlay.
* @module
*/
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import { Call as $Call, CancellablePromise as $CancellablePromise } from "@wailsio/runtime";
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import * as $models from "./models.js";
/**
* ApplyShopEdit stages every touched file before publishing one overlay change.
* The caller sends dirty drafts, but only files touched by this operation are
* consumed. Revision and path checks reject another archive or stale dialog.
*/
export function ApplyShopEdit(req: $models.ShopEditRequest): $CancellablePromise<$models.ShopEditResult | null> {
return $Call.ByID(858128996, req);
}
/**
* ApplyWorldDropEdit publishes one complete validated snapshot to the archive
* overlay. Like shop edits, a stale revision or changed editor draft is rejected.
*/
export function ApplyWorldDropEdit(req: $models.WorldDropEditRequest): $CancellablePromise<$models.WorldDropEditResult | null> {
return $Call.ByID(237649473, req);
}
export function CheckItemCreation(req: $models.ItemCreateRequest): $CancellablePromise<$models.ItemCreationCheck | null> {
return $Call.ByID(597891646, req);
}
/**
* CreateItem stages the script, LST and (where required) indexhash before
* publishing one version operation. No PVF disk write happens here.
*/
export function CreateItem(req: $models.ItemCreateRequest): $CancellablePromise<$models.ItemCreateResult | null> {
return $Call.ByID(3967276739, req);
}
/**
* ListSkillTreeSkills lists registered IDs in the current job, including common skills.
*/
export function ListSkillTreeSkills(job: string): $CancellablePromise<$models.SkillTreeSkill[] | null> {
return $Call.ByID(2588513399, job);
}
export function ListSkillTrees(): $CancellablePromise<$models.SkillTreeRegistration[] | null> {
return $Call.ByID(2559201962);
}
export function ListSkills(): $CancellablePromise<$models.SkillEntry[] | null> {
return $Call.ByID(3606807130);
}
/**
* ListVendingMachines uses the registered LST, including relative and archive-root paths.
*/
export function ListVendingMachines(): $CancellablePromise<$models.SearchHit[] | null> {
return $Call.ByID(1304220627);
}
export function ReadForge(fileIndex: number, text: string): $CancellablePromise<$models.ForgeDocument | null> {
return $Call.ByID(1666123291, fileIndex, text);
}
export function ReadIndependentDrop(fileIndex: number, text: string): $CancellablePromise<$models.IndependentDropDocument | null> {
return $Call.ByID(286472991, fileIndex, text);
}
/**
* ReadItem resolves the same item union used by shop lists and search pickers.
*/
export function ReadItem(id: string, drafts: $models.ShopDraft[] | null): $CancellablePromise<$models.ShopItem | null> {
return $Call.ByID(3301299, id, drafts);
}
/**
* ReadItemAppearances batches presentation metadata without reading item prices.
*/
export function ReadItemAppearances(ids: string[] | null): $CancellablePromise<{ [_ in string]?: $models.ItemAppearance | null } | null> {
return $Call.ByID(3207892534, ids);
}
/**
* ReadItemEffectPreview resolves live LST references, relative paths and editor
* drafts. It reads only PVF resources; sprite decoding remains in ImageService.
*/
export function ReadItemEffectPreview(fileIndex: number, objectID: string, particle: string, drafts: $models.ShopDraft[] | null): $CancellablePromise<$models.ItemEffectPreview | null> {
return $Call.ByID(1037122538, fileIndex, objectID, particle, drafts);
}
/**
* ReadItemIcons reads only display metadata for the currently visible rewards.
*/
export function ReadItemIcons(ids: string[] | null): $CancellablePromise<{ [_ in string]?: $models.ImageReference | null } | null> {
return $Call.ByID(2935306771, ids);
}
/**
* ReadItemNames resolves equipment and stackable names using the same item
* relations and localized text as other archive views. Missing IDs are omitted.
*/
export function ReadItemNames(ids: string[] | null): $CancellablePromise<{ [_ in string]?: string } | null> {
return $Call.ByID(3212344113, ids);
}
/**
* ReadShop reads structure from the caller's draft, and references from the
* current archive overlay. Archive reads can populate caches, requiring Lock.
*/
export function ReadShop(fileIndex: number, text: string): $CancellablePromise<$models.ShopDocument | null> {
return $Call.ByID(603302160, fileIndex, text);
}
export function ReadSkill(fileIndex: number, text: string): $CancellablePromise<$models.SkillDocument | null> {
return $Call.ByID(3027074897, fileIndex, text);
}
/**
* ReadSkillTree resolves only registered trees, using the current archive overlay.
*/
export function ReadSkillTree(job: string, kind: string): $CancellablePromise<$models.SkillTreeDocument | null> {
return $Call.ByID(2818122281, job, kind);
}
/**
* ReadSkillTreeDraft projects the editor draft without changing the archive.
*/
export function ReadSkillTreeDraft(job: string, kind: string, text: string): $CancellablePromise<$models.SkillTreeDocument | null> {
return $Call.ByID(3201412064, job, kind, text);
}
export function ReadUpgrade(fileIndex: number, text: string): $CancellablePromise<$models.UpgradeDocument | null> {
return $Call.ByID(4242154256, fileIndex, text);
}
export function ReadVendingMachine(fileIndex: number, text: string): $CancellablePromise<$models.VendingDocument | null> {
return $Call.ByID(580116406, fileIndex, text);
}
/**
* ReadWorldDrop parses the caller's current editor draft, then resolves names
* against the archive's item relation index. Unknown IDs remain editable.
*/
export function ReadWorldDrop(fileIndex: number, text: string): $CancellablePromise<$models.WorldDropDocument | null> {
return $Call.ByID(3120791685, fileIndex, text);
}
@@ -0,0 +1,24 @@
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import { Call as $Call, CancellablePromise as $CancellablePromise } from "@wailsio/runtime";
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import * as $models from "./models.js";
/**
* LoadFileSets 从用户配置目录读取已保存的文件集。文件不存在时返回空文档。
*/
export function LoadFileSets(): $CancellablePromise<$models.FileSetDocument> {
return $Call.ByID(3735616708);
}
/**
* SaveFileSets 将全部文件集以原子方式保存到用户配置目录。
*/
export function SaveFileSets(document: $models.FileSetDocument): $CancellablePromise<void> {
return $Call.ByID(1092143253, document);
}
@@ -0,0 +1,65 @@
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT
/**
* ImageService owns the NPK/IMG metadata snapshot and on-demand PNG cache.
* It does not expose source NPK paths to the frontend.
* @module
*/
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import { Call as $Call, CancellablePromise as $CancellablePromise } from "@wailsio/runtime";
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import * as $models from "./models.js";
/**
* GetImage decodes one indexed frame and encodes it as a PNG data URL.
* Missing configuration, unfinished indexes, missing paths and out-of-range
* frames intentionally return (nil, nil) so callers can render a fallback.
*/
export function GetImage(path: string, index: number): $CancellablePromise<$models.ImageData | null> {
return $Call.ByID(3795816033, path, index);
}
/**
* GetImages groups a small visible-image batch by NPK and IMG. It opens each
* package once and parses each requested member's frame table once. Generation
* prevents delayed frontend requests from reading a different resource set.
*/
export function GetImages(references: $models.ImageReference[] | null, generation: number): $CancellablePromise<$models.ImageBatchResult[] | null> {
return $Call.ByID(1007461974, references, generation);
}
/**
* IndexStatus returns a copy of the current asynchronous scan state.
*/
export function IndexStatus(): $CancellablePromise<$models.ImageIndexStatus> {
return $Call.ByID(23376526);
}
/**
* Initialize loads a valid persistent snapshot, or starts an asynchronous
* scan for the configured directory.
*/
export function Initialize(): $CancellablePromise<$models.ImageIndexStatus> {
return $Call.ByID(935855838);
}
/**
* RebuildIndex starts a manual rebuild. Existing image data remains available
* through the old immutable snapshot until the new one is ready.
*/
export function RebuildIndex(): $CancellablePromise<$models.ImageIndexStatus> {
return $Call.ByID(2411028821);
}
/**
* SelectNPKDirectory opens the native directory chooser, persists the
* selected path and starts a new asynchronous index generation.
*/
export function SelectNPKDirectory(): $CancellablePromise<$models.ImageIndexStatus> {
return $Call.ByID(2689429750);
}
@@ -0,0 +1,201 @@
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT
import * as AnnotationService from "./annotationservice.js";
import * as ArchiveDiffService from "./archivediffservice.js";
import * as ArchiveService from "./archiveservice.js";
import * as AutosaveService from "./autosaveservice.js";
import * as BatchService from "./batchservice.js";
import * as BookmarkService from "./bookmarkservice.js";
import * as CacheService from "./cacheservice.js";
import * as DropService from "./dropservice.js";
import * as EditorService from "./editorservice.js";
import * as ExportService from "./exportservice.js";
import * as FileGUIService from "./fileguiservice.js";
import * as FileSetService from "./filesetservice.js";
import * as ImageService from "./imageservice.js";
import * as MCPService from "./mcpservice.js";
import * as ModImportService from "./modimportservice.js";
import * as PreviewService from "./previewservice.js";
import * as RenderingService from "./renderingservice.js";
import * as RuleService from "./ruleservice.js";
import * as ScriptService from "./scriptservice.js";
import * as ScriptWindowService from "./scriptwindowservice.js";
import * as SettingsService from "./settingsservice.js";
import * as SkillService from "./skillservice.js";
import * as UpdateService from "./updateservice.js";
import * as VersionService from "./versionservice.js";
export {
AnnotationService,
ArchiveDiffService,
ArchiveService,
AutosaveService,
BatchService,
BookmarkService,
CacheService,
DropService,
EditorService,
ExportService,
FileGUIService,
FileSetService,
ImageService,
MCPService,
ModImportService,
PreviewService,
RenderingService,
RuleService,
ScriptService,
ScriptWindowService,
SettingsService,
SkillService,
UpdateService,
VersionService
};
export type {
AdvancedSearchDetail,
AdvancedSearchHit,
AdvancedSearchIndexStatus,
AdvancedSearchResult,
AniPreviewDocument,
AniPreviewFrame,
AniPreviewLayer,
AnnotationReloadResult,
AppSettings,
ArchiveDiffDraft,
ArchiveDiffFile,
ArchiveDiffMergeResult,
ArchiveDiffNode,
ArchiveDiffRequest,
ArchiveDiffStatus,
ArchiveInfo,
AutosaveStatus,
BatchApplyResult,
BatchDiffLine,
BatchFilePreview,
BatchPreviewPage,
BatchRequest,
BookmarkBook,
BookmarkBookFile,
BookmarkDocument,
BookmarkEntry,
BookmarkGroup,
BuiltinSkill,
CacheClearResult,
CacheUsage,
DropRateApplyRequest,
DropRateApplyResult,
DropRateDocument,
DropRateGroup,
DropRateSection,
EditorAnnotation,
EffectParticle,
EquipmentPreviewAttribute,
EquipmentPreviewDocument,
EquipmentSetAbility,
EquipmentSetPreviewDocument,
EquipmentSkillLevelup,
ExportMergeSource,
ExportPreview,
ExportPreviewFile,
ExportRequest,
FileMeta,
FileRegistration,
FileRegistrationOptions,
FileSetDocument,
ForgeDocument,
ForgeSection,
ImageBatchResult,
ImageData,
ImageIndexStatus,
ImageReference,
ImportPreview,
ImportPreviewEntry,
ImportResult,
IndependentDropDocument,
IndependentDropItem,
IndependentDropList,
IndependentDropRow,
IndexHashRegistrationResult,
IndexHashTarget,
IndexStatus,
ItemAppearance,
ItemCreateRequest,
ItemCreateResult,
ItemCreationCheck,
ItemEffectLayer,
ItemEffectPreview,
ListRegistrationTarget,
MCPStatus,
ModImportFile,
ModImportPair,
ModImportPreview,
PlaceholderRef,
PreviewIssue,
RecoveryInfo,
RenderingReloadResult,
RuleQueryResult,
RuleTarget,
SafeUpgradeRow,
ScriptApplyResult,
ScriptCompileResult,
ScriptDiagnostic,
ScriptError,
ScriptFile,
ScriptFilePreview,
ScriptFileSetPreview,
ScriptLog,
ScriptPreviewPage,
ScriptRunRequest,
ScriptRunResult,
ScriptSession,
SearchHit,
SearchResult,
ShopCategory,
ShopCost,
ShopDocument,
ShopDraft,
ShopEditRequest,
ShopEditResult,
ShopEditedFile,
ShopEntry,
ShopGroup,
ShopItem,
ShopMaterialInput,
ShopTab,
SkillDocument,
SkillEntry,
SkillInstallResult,
SkillMode,
SkillNumber,
SkillProperty,
SkillPropertyBinding,
SkillTreeBranch,
SkillTreeDocument,
SkillTreeNode,
SkillTreeRegistration,
SkillTreeSkill,
StoredFileSet,
StoredFileSetEntry,
StructuredOperation,
TextReplaceSpec,
TreeAnnotation,
TreeNode,
TreeTag,
UpgradeDocument,
UpgradeRow,
VendingDocument,
VendingGroup,
VendingReward,
VersionChange,
VersionChangePage,
VersionCommit,
VersionFileDiff,
VersionHistoryPage,
VersionStatus,
WorldDropDocument,
WorldDropEditRequest,
WorldDropEditResult,
WorldDropItem,
WorldDropLevel
} from "./models.js";
@@ -0,0 +1,72 @@
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT
/**
* MCPService uses exactly the same archive, script and export services as Wails.
* Local connections share tasks and plans.
* @module
*/
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import { Call as $Call, CancellablePromise as $CancellablePromise } from "@wailsio/runtime";
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import * as $models from "./models.js";
export function Acknowledge(windowID: string, operationID: string, dirty: boolean, busy: boolean): $CancellablePromise<void> {
return $Call.ByID(4209846539, windowID, operationID, dirty, busy);
}
/**
* CancelActiveScript is the local UI escape hatch while an AI script is running.
*/
export function CancelActiveScript(): $CancellablePromise<boolean> {
return $Call.ByID(18665570);
}
export function Configure(enabled: boolean, port: number): $CancellablePromise<$models.MCPStatus> {
return $Call.ByID(1995964051, enabled, port);
}
/**
* ConnectionConfig is only called by the explicit UI copy action. It must never
* be logged or exposed as an MCP tool. The caller copies it to the clipboard.
*/
export function ConnectionConfig(): $CancellablePromise<string> {
return $Call.ByID(2435572835);
}
/**
* CurrentScriptResult restores a retained AI preview after a window reload.
*/
export function CurrentScriptResult(): $CancellablePromise<$models.ScriptRunResult | null> {
return $Call.ByID(1896890536);
}
export function RegisterWindow(id: string): $CancellablePromise<void> {
return $Call.ByID(3688712772, id);
}
/**
* ReportWindow refreshes draft status without persisting editor content.
*/
export function ReportWindow(id: string, dirty: boolean, busy: boolean): $CancellablePromise<void> {
return $Call.ByID(505278075, id, dirty, busy);
}
export function Status(): $CancellablePromise<$models.MCPStatus> {
return $Call.ByID(1802632375);
}
export function UnregisterWindow(id: string): $CancellablePromise<void> {
return $Call.ByID(3243350931, id);
}
/**
* WindowState lets a reloaded webview release a stale preparation barrier.
*/
export function WindowState(): $CancellablePromise<{ [_ in string]?: string } | null> {
return $Call.ByID(4111142886);
}
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,49 @@
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT
/**
* ModImportService freezes decoded content so confirmation never re-reads disk.
* @module
*/
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import { Call as $Call, CancellablePromise as $CancellablePromise } from "@wailsio/runtime";
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import * as mod$0 from "../internal/mod/models.js";
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import * as $models from "./models.js";
export function Execute(id: string): $CancellablePromise<$models.ImportResult | null> {
return $Call.ByID(2483342339, id);
}
/**
* Formats lists only formats with a registered reader.
*/
export function Formats(): $CancellablePromise<mod$0.Descriptor[] | null> {
return $Call.ByID(974718348);
}
export function Prepare(dir: string, formatID: string): $CancellablePromise<$models.ModImportPreview | null> {
return $Call.ByID(3518571439, dir, formatID);
}
export function PrepareDialog(formatID: string): $CancellablePromise<$models.ModImportPreview | null> {
return $Call.ByID(1317181403, formatID);
}
export function Release(id: string): $CancellablePromise<void> {
return $Call.ByID(1706932729, id);
}
/**
* SelectComponents rebuilds the preview from the frozen package, not the ZIP.
*/
export function SelectComponents(id: string, ids: string[] | null): $CancellablePromise<$models.ModImportPreview | null> {
return $Call.ByID(4159525464, id, ids);
}
@@ -0,0 +1,44 @@
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT
/**
* PreviewService parses structured preview formats from the editor's current
* text. The current document uses caller-provided text; archive state supplies
* context for related resources without modifying the archive.
* @module
*/
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import { Call as $Call, CancellablePromise as $CancellablePromise } from "@wailsio/runtime";
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import * as $models from "./models.js";
/**
* ParseANI parses the current editor text. Semantic and structural problems
* are returned in Issues so the caller can retain the last valid preview;
* the RPC error is reserved for service-level failures.
*/
export function ParseANI(text: string): $CancellablePromise<$models.AniPreviewDocument | null> {
return $Call.ByID(3389020806, text);
}
/**
* ParseANIForFile adds archive context to ANI text preview. Image placeholders
* under character/ and aicharacter/ use character.lst directory and
* animation-prefix matching.
*/
export function ParseANIForFile(fileIndex: number, text: string): $CancellablePromise<$models.AniPreviewDocument | null> {
return $Call.ByID(1029112795, fileIndex, text);
}
/**
* ParseEQU parses the current editor text. Archive state is only used for the
* file path and relation lookups; text itself always comes from the caller so
* unsaved changes are reflected immediately.
*/
export function ParseEQU(fileIndex: number, text: string): $CancellablePromise<$models.EquipmentPreviewDocument | null> {
return $Call.ByID(4063651793, fileIndex, text);
}
@@ -0,0 +1,23 @@
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT
/**
* RenderingService manages the user-facing script rendering configuration.
* @module
*/
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import { Call as $Call, CancellablePromise as $CancellablePromise } from "@wailsio/runtime";
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import * as $models from "./models.js";
/**
* ReloadRules validates the on-disk rendering rules before replacing the
* active renderer. Invalid files leave the current renderer untouched.
*/
export function ReloadRules(): $CancellablePromise<$models.RenderingReloadResult> {
return $Call.ByID(264833935);
}
@@ -0,0 +1,34 @@
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT
/**
* RuleService exposes only rule identities and contents, never arbitrary paths.
* @module
*/
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import { Call as $Call, CancellablePromise as $CancellablePromise } from "@wailsio/runtime";
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import * as ruleconfig$0 from "../internal/ruleconfig/models.js";
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import * as $models from "./models.js";
/**
* Apply validates, saves and activates a rule operation. A stale revision is rejected.
*/
export function Apply(m: ruleconfig$0.Mutation): $CancellablePromise<void> {
return $Call.ByID(3866863905, m);
}
export function Query(target: $models.RuleTarget): $CancellablePromise<$models.RuleQueryResult> {
return $Call.ByID(2848194805, target);
}
export function StartupWarnings(): $CancellablePromise<string[] | null> {
return $Call.ByID(2999950349);
}
@@ -0,0 +1,100 @@
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT
/**
* ScriptService executes user scripts against an isolated archive stage and
* exposes the retained preview plan to the frontend.
* @module
*/
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import { Call as $Call, CancellablePromise as $CancellablePromise } from "@wailsio/runtime";
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import * as $models from "./models.js";
/**
* Apply commits exactly the selected changed rows from one script plan. Rows
* are addressed by ChangeKey because created and deleted entries shift the
* entry indexes the other rows were previewed with.
*/
export function Apply(planID: string, changeKeys: string[] | null): $CancellablePromise<$models.ScriptApplyResult> {
return $Call.ByID(1069361246, planID, changeKeys);
}
/**
* Cancel requests cancellation of the active script. It is idempotent.
*/
export function Cancel(): $CancellablePromise<boolean> {
return $Call.ByID(1006017148);
}
/**
* Compile validates script syntax without reading the current archive.
*/
export function Compile(source: string): $CancellablePromise<$models.ScriptCompileResult> {
return $Call.ByID(190666999, source);
}
export function Discard(planID: string): $CancellablePromise<void> {
return $Call.ByID(2392854112, planID);
}
/**
* IsRunning reports whether a script call is currently executing.
*/
export function IsRunning(): $CancellablePromise<boolean> {
return $Call.ByID(473827193);
}
export function ListScripts(): $CancellablePromise<($models.ScriptFile | null)[] | null> {
return $Call.ByID(215077054);
}
export function LoadScript(name: string): $CancellablePromise<string> {
return $Call.ByID(306185925, name);
}
export function OpenScriptDirectory(): $CancellablePromise<void> {
return $Call.ByID(2089810056);
}
/**
* PreviewPage returns one page of preview rows, optionally narrowed to rows
* whose path contains filter (case-insensitive). Filtering happens here rather
* than in the UI so pagination and the matched total stay consistent: a filter
* that matches only later pages still reports and pages its matches correctly.
*/
export function PreviewPage(planID: string, filter: string, cursor: number, limit: number): $CancellablePromise<$models.ScriptPreviewPage | null> {
return $Call.ByID(3664869185, planID, filter, cursor, limit);
}
/**
* Run executes the script against a transaction and retains a diff plan. It
* never changes the live archive. The Wails context parameter is hidden from
* generated TypeScript bindings and is cancelled by the explicit Cancel call
* or by the caller closing the cancellable promise.
*/
export function Run(request: $models.ScriptRunRequest): $CancellablePromise<$models.ScriptRunResult> {
return $Call.ByID(3354473343, request);
}
export function SaveScript(name: string, source: string): $CancellablePromise<void> {
return $Call.ByID(4194335044, name, source);
}
export function ScriptDirectory(): $CancellablePromise<string> {
return $Call.ByID(1815875880);
}
/**
* SelectableChangeKeys returns the change keys of every row matching filter
* that can be applied. The frontend uses this so "apply selected" covers the
* whole filtered set even when only the loaded pages were ever previewed. The
* file set key is filter-independent: a fileset name is not an archive path.
*/
export function SelectableChangeKeys(planID: string, filter: string): $CancellablePromise<string[] | null> {
return $Call.ByID(503571914, planID, filter);
}
@@ -0,0 +1,74 @@
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT
/**
* ScriptWindowService owns the detached script workspace window and stages the
* script session that moves between windows.
* @module
*/
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import { Call as $Call, CancellablePromise as $CancellablePromise } from "@wailsio/runtime";
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import * as $models from "./models.js";
/**
* AllowScriptWindowClose lets the window close without asking the frontend. The
* application quit path calls this so shutdown cannot stall on the script
* window's close confirmation.
*/
export function AllowScriptWindowClose(): $CancellablePromise<void> {
return $Call.ByID(3414665564);
}
/**
* CloseScriptWindow stages the final session and closes the window. The close
* hook is what actually lets the close through, so the frontend runs its own
* confirmation before calling this.
*/
export function CloseScriptWindow(session: $models.ScriptSession): $CancellablePromise<void> {
return $Call.ByID(917308369, session);
}
/**
* CloseScriptWindowIfOpen closes the detached window without a frontend
* confirmation. It is for paths where the main surface is already going away and
* there is no window left to run a dialog.
*/
export function CloseScriptWindowIfOpen(): $CancellablePromise<void> {
return $Call.ByID(3009253426);
}
/**
* FocusScriptWindow brings the detached window forward, reporting whether it was
* there so the caller can fall back to the embedded workspace.
*/
export function FocusScriptWindow(): $CancellablePromise<boolean> {
return $Call.ByID(4201263721);
}
/**
* IsScriptWindowOpen reports whether the detached window currently exists.
*/
export function IsScriptWindowOpen(): $CancellablePromise<boolean> {
return $Call.ByID(1066923173);
}
/**
* LoadScriptSession returns the staged session, or nil when none was staged.
*/
export function LoadScriptSession(): $CancellablePromise<$models.ScriptSession | null> {
return $Call.ByID(1405434511);
}
/**
* OpenScriptWindow opens the detached script window, or focuses the existing one.
* The session is staged first so a freshly created window can pick it up when it
* starts loading its script.
*/
export function OpenScriptWindow(session: $models.ScriptSession): $CancellablePromise<void> {
return $Call.ByID(402863877, session);
}
@@ -0,0 +1,34 @@
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import { Call as $Call, CancellablePromise as $CancellablePromise } from "@wailsio/runtime";
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import * as $models from "./models.js";
export function GetSettings(): $CancellablePromise<$models.AppSettings> {
return $Call.ByID(3687703585);
}
export function SaveSettings(settings: $models.AppSettings): $CancellablePromise<void> {
return $Call.ByID(4275989344, settings);
}
/**
* UpdateNPKDirectory changes only the image resource directory while
* preserving settings added by newer versions of the application.
*/
export function UpdateNPKDirectory(directory: string): $CancellablePromise<$models.AppSettings> {
return $Call.ByID(2463267103, directory);
}
/**
* UpdateShortcutOverrides updates shortcuts without replacing settings that
* may have changed in another window since the caller last loaded them.
*/
export function UpdateShortcutOverrides(overrides: { [_ in string]?: string } | null): $CancellablePromise<$models.AppSettings> {
return $Call.ByID(2454093076, overrides);
}
@@ -0,0 +1,33 @@
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import { Call as $Call, CancellablePromise as $CancellablePromise } from "@wailsio/runtime";
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import * as $models from "./models.js";
export function ChooseDirectory(): $CancellablePromise<string> {
return $Call.ByID(2215256608);
}
/**
* Install skips existing skills unless overwrite is selected. Updates replace
* bundled files while preserving extra user files and rejecting symlink conflicts.
*/
export function Install(ids: string[] | null, target: string, directory: string, overwrite: boolean): $CancellablePromise<$models.SkillInstallResult[] | null> {
return $Call.ByID(3705746839, ids, target, directory, overwrite);
}
export function List(): $CancellablePromise<$models.BuiltinSkill[] | null> {
return $Call.ByID(3863744628);
}
/**
* ResolveDirectory returns the exact skill root shown before installation.
*/
export function ResolveDirectory(target: string, directory: string): $CancellablePromise<string> {
return $Call.ByID(58746571, target, directory);
}
@@ -0,0 +1,25 @@
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT
/**
* UpdateService shares one confirmation flow between startup, menu and settings.
* @module
*/
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import { Call as $Call, CancellablePromise as $CancellablePromise } from "@wailsio/runtime";
/**
* CheckForUpdates checks for a release and asks before starting any download.
*/
export function CheckForUpdates(): $CancellablePromise<void> {
return $Call.ByID(3771798315);
}
/**
* Version reports the running application version.
*/
export function Version(): $CancellablePromise<string> {
return $Call.ByID(3218535008);
}
@@ -0,0 +1,124 @@
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT
/**
* VersionService exposes local logical-file version control to the Wails
* frontend.
* @module
*/
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import { Call as $Call, CancellablePromise as $CancellablePromise } from "@wailsio/runtime";
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import * as $models from "./models.js";
/**
* Checkout loads a historical logical snapshot into the working tree. V1
* keeps main HEAD unchanged; committing afterwards creates a new commit on
* the current main line.
*/
export function Checkout(commitID: string): $CancellablePromise<$models.VersionStatus | null> {
return $Call.ByID(1400545369, commitID);
}
/**
* Commit freezes the current working tree as one commit without saving the
* packed PVF artifact.
*/
export function Commit(message: string): $CancellablePromise<$models.VersionCommit | null> {
return $Call.ByID(1256491804, message);
}
/**
* Diff returns a single commit change, including logical text where possible.
*/
export function Diff(commitID: string, path: string): $CancellablePromise<$models.VersionFileDiff | null> {
return $Call.ByID(2239054202, commitID, path);
}
/**
* DiffWorking returns the current worktree change for one path relative to
* HEAD. The current after-state is read from the in-memory archive, so the
* call does not require saving the packed PVF artifact first.
*/
export function DiffWorking(path: string): $CancellablePromise<$models.VersionFileDiff | null> {
return $Call.ByID(851505177, path);
}
/**
* Discard restores the current HEAD into the in-memory working archive.
*/
export function Discard(): $CancellablePromise<$models.VersionStatus | null> {
return $Call.ByID(4038705953);
}
/**
* ExportCommitFilesDialog exports the files touched by one commit. Add/modify
* entries use their after-state; deleted entries use their before-state so the
* exported directory represents every file involved in that version.
*/
export function ExportCommitFilesDialog(commitID: string): $CancellablePromise<string> {
return $Call.ByID(3937038033, commitID);
}
/**
* History returns main-branch commits from newest to oldest.
*/
export function History(cursor: number, limit: number): $CancellablePromise<$models.VersionHistoryPage | null> {
return $Call.ByID(1340059775, cursor, limit);
}
/**
* Initialize creates the sidecar repository for the currently opened PVF.
*/
export function Initialize(): $CancellablePromise<$models.VersionStatus | null> {
return $Call.ByID(2857664619);
}
/**
* ListChanges lists the current working-tree changes relative to HEAD.
*/
export function ListChanges(cursor: number, limit: number): $CancellablePromise<$models.VersionChangePage | null> {
return $Call.ByID(4290716790, cursor, limit);
}
/**
* ListCommitChanges lists the compact path changes belonging to one commit.
*/
export function ListCommitChanges(commitID: string, cursor: number, limit: number): $CancellablePromise<$models.VersionChangePage | null> {
return $Call.ByID(1789693609, commitID, cursor, limit);
}
/**
* Remove disables version control for the current artifact and deletes only
* its sidecar repository. The loaded PVF and its in-memory edits are kept.
*/
export function Remove(): $CancellablePromise<$models.VersionStatus | null> {
return $Call.ByID(4079566109);
}
/**
* RestorePath restores one changed path to the current HEAD. It only
* materializes the selected path and records the operation in the existing
* in-memory undo stack.
*/
export function RestorePath(path: string): $CancellablePromise<$models.VersionStatus | null> {
return $Call.ByID(835923498, path);
}
/**
* Status returns the current version session without modifying disk state.
*/
export function Status(): $CancellablePromise<$models.VersionStatus> {
return $Call.ByID(3521289999);
}
/**
* Undo reverses the most recent uncommitted mutation as one atomic operation.
*/
export function Undo(): $CancellablePromise<$models.VersionStatus | null> {
return $Call.ByID(636219343);
}