extension

package
v1.11.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 16, 2026 License: GPL-3.0 Imports: 19 Imported by: 0

Documentation

Overview

Package extension 实现 extension binder:扩展安装/启停、tool 调用、snippet 管理。

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CollectExtensionCategories

func CollectExtensionCategories(mgr *extension.Manager) []snippet_svc.ExtensionCategory

CollectExtensionCategories 遍历扩展管理器当前已加载扩展,收集其 manifest 声明的 snippet 分类。 返回结果喂给 CategoryRegistry 的 provider。

Types

type AssetTypeInfo

type AssetTypeInfo struct {
	Type          string `json:"type"`
	ExtensionName string `json:"extensionName,omitempty"`
	DisplayName   string `json:"displayName"`
	SSHTunnel     bool   `json:"sshTunnel"`
	ProxyChain    bool   `json:"proxyChain"`
}

AssetTypeInfo combines built-in and extension asset types for the frontend.

type Extension

type Extension struct {
	// contains filtered or unexported fields
}

Extension binder。

func New

func New(appCtx context.Context, lang LangProvider, pool *sshpool.Pool) *Extension

New 构造 extension binder。

func (*Extension) CallExtensionAction

func (e *Extension) CallExtensionAction(extName, action string, argsJSON string) (string, error)

CallExtensionAction calls an extension action and streams events via Wails Events.

func (*Extension) CallExtensionTool

func (e *Extension) CallExtensionTool(extName, tool string, argsJSON string) (string, error)

CallExtensionTool calls an extension tool (for frontend config testing etc.)

func (*Extension) CancelExtensionAction

func (e *Extension) CancelExtensionAction(extName string) error

CancelExtensionAction triggers cancellation of the currently running action.

func (*Extension) Cleanup

func (e *Extension) Cleanup()

Cleanup 关闭扩展运行时。

func (*Extension) CreateSnippet

func (e *Extension) CreateSnippet(req snippet_svc.CreateReq) (*snippet_entity.Snippet, error)

CreateSnippet 创建片段

func (*Extension) Ctx

func (e *Extension) Ctx() context.Context

Ctx 暴露 Wails ctx,给 HostProvider/dialog/event 用。

func (*Extension) DeleteSnippet

func (e *Extension) DeleteSnippet(id int64) error

DeleteSnippet 软删除片段

func (*Extension) DisableExtension

func (e *Extension) DisableExtension(name string) error

DisableExtension unloads a running extension without removing files.

func (*Extension) DuplicateSnippet

func (e *Extension) DuplicateSnippet(id int64) (*snippet_entity.Snippet, error)

DuplicateSnippet 复制片段

func (*Extension) EnableExtension

func (e *Extension) EnableExtension(name string) error

EnableExtension loads a disabled extension and registers it.

func (*Extension) ForceUninstallExtension

func (e *Extension) ForceUninstallExtension(name string, cleanData bool) error

ForceUninstallExtension removes an extension and optionally cleans up its data, bypassing the orphan-asset check.

func (*Extension) GetAvailableAssetTypes

func (e *Extension) GetAvailableAssetTypes() []AssetTypeInfo

GetAvailableAssetTypes returns built-in + extension asset types.

func (*Extension) GetDecryptedExtensionConfig

func (e *Extension) GetDecryptedExtensionConfig(assetID int64, extName string) (string, error)

GetDecryptedExtensionConfig returns the asset config with password fields decrypted.

func (*Extension) GetExtensionDetail

func (e *Extension) GetExtensionDetail(name string) (*extension_svc.ExtensionInfo, error)

GetExtensionDetail returns the full manifest and state for a single extension.

func (*Extension) GetExtensionManifest

func (e *Extension) GetExtensionManifest(name string) (*extension.Manifest, error)

GetExtensionManifest returns a single extension's manifest.

func (*Extension) GetSnippet

func (e *Extension) GetSnippet(id int64) (*snippet_entity.Snippet, error)

GetSnippet 获取单个片段

func (*Extension) GetSnippetLastAssets

func (e *Extension) GetSnippetLastAssets(id int64) ([]int64, error)

GetSnippetLastAssets returns the (live-filtered) asset IDs last used to run a snippet.

func (*Extension) InstallExtension

func (e *Extension) InstallExtension() (*extension_svc.ExtensionInfo, error)

InstallExtension opens a file dialog and installs an extension from a zip file.

func (*Extension) InstallExtensionFromDirectory

func (e *Extension) InstallExtensionFromDirectory() (*extension_svc.ExtensionInfo, error)

InstallExtensionFromDirectory opens a directory dialog and installs a local extension.

func (*Extension) ListInstalledExtensions

func (e *Extension) ListInstalledExtensions() []extension_svc.ExtensionInfo

ListInstalledExtensions returns all loaded extensions.

func (*Extension) ListSnippetCategories

func (e *Extension) ListSnippetCategories() []snippet_svc.Category

ListSnippetCategories 返回所有片段分类(内置 + 扩展提供)

func (*Extension) ListSnippets

func (e *Extension) ListSnippets(req snippet_svc.ListReq) ([]*snippet_entity.Snippet, error)

ListSnippets 查询片段列表

func (*Extension) NewActionEventHandler

func (e *Extension) NewActionEventHandler(extName string) *actionEventHandler

NewActionEventHandler 为指定扩展返回 actionEventHandler 实例。

func (*Extension) NewAssetConfigGetter

func (e *Extension) NewAssetConfigGetter() *assetConfigGetter

NewAssetConfigGetter 返回 assetConfigGetter 实例。

func (*Extension) NewFileDialogOpener

func (e *Extension) NewFileDialogOpener() *fileDialogOpener

NewFileDialogOpener 返回 fileDialogOpener 实例。

func (*Extension) NewHostProvider

func (e *Extension) NewHostProvider(extName string) interface{}

NewHostProvider 由 main.go 调用:根据扩展名构造一个 HostProvider;与下文 ext 包内的 helpers 一起注入到 extension.NewManager 的 ProviderFactory。

func (*Extension) NewKVStore

func (e *Extension) NewKVStore(extName string) *kvStore

NewKVStore 为指定扩展返回 kvStore 实例。

func (*Extension) NewTunnelDialer

func (e *Extension) NewTunnelDialer() *tunnelDialer

NewTunnelDialer 返回 tunnelDialer 实例。

func (*Extension) Pool

func (e *Extension) Pool() *sshpool.Pool

Pool 返回 SSH 池,供 main.go 构造 HostProvider 时使用。

func (*Extension) RecordSnippetUse

func (e *Extension) RecordSnippetUse(id int64) error

RecordSnippetUse 记录片段使用,原子更新 use_count / last_used_at

func (*Extension) ReloadExtensions

func (e *Extension) ReloadExtensions() error

ReloadExtensions re-scans extensions directory and updates the bridge.

func (*Extension) Service

func (e *Extension) Service() *extension_svc.Service

Service 返回当前持有的 extension_svc.Service(main.go 需要它去做附加配置)。

func (*Extension) SetService

func (e *Extension) SetService(svc *extension_svc.Service)

SetService main.go 在创建 extension_svc.Service 后注入。

func (*Extension) SetSnippetLastAssets

func (e *Extension) SetSnippetLastAssets(id int64, assetIDs []int64) error

SetSnippetLastAssets records the asset IDs most recently used to run a snippet.

func (*Extension) Startup

func (e *Extension) Startup(ctx context.Context)

Startup 异步初始化扩展系统(WASM 编译较慢,单独协程跑)。

func (*Extension) UninstallExtension

func (e *Extension) UninstallExtension(name string, cleanData bool) error

UninstallExtension removes an extension and optionally cleans up its data.

func (*Extension) UpdateSnippet

func (e *Extension) UpdateSnippet(req snippet_svc.UpdateReq) (*snippet_entity.Snippet, error)

UpdateSnippet 更新片段

type LangProvider

type LangProvider interface {
	Lang() string
}

LangProvider 由 system binder 实现。

type SnippetExtensionHook

type SnippetExtensionHook struct{}

SnippetExtensionHook 代理 extension_svc 的 SnippetExtensionHook 到全局 snippet_svc 单例。 单独为代理对象的原因:snippet_svc 单例在 bootstrap.Init 中注册;构造时可能尚未就绪, 延迟查表可避免启动顺序耦合。

func (SnippetExtensionHook) KnownCategoryIDs

func (SnippetExtensionHook) KnownCategoryIDs() []string

KnownCategoryIDs 实现 extension_svc.SnippetExtensionHook

func (SnippetExtensionHook) RefreshCategories

func (SnippetExtensionHook) RefreshCategories()

RefreshCategories 实现 extension_svc.SnippetExtensionHook

func (SnippetExtensionHook) RemoveExtensionSeeds

func (SnippetExtensionHook) RemoveExtensionSeeds(ctx context.Context, extName string) error

RemoveExtensionSeeds 实现 extension_svc.SnippetExtensionHook

func (SnippetExtensionHook) SyncExtensionSeeds

func (SnippetExtensionHook) SyncExtensionSeeds(ctx context.Context, extName string, seeds []snippet_svc.SeedDef) error

SyncExtensionSeeds 实现 extension_svc.SnippetExtensionHook

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL