Documentation
¶
Index ¶
- func ReadCommandRunScript(commandPath string) (string, error)
- func RunScriptContent(command string) string
- func WithSkipCleanOutput(ctx context.Context) context.Context
- func WriteCommandRunScript(commandPath, command string) error
- type FileSystemNodeRuntimePreparer
- func (p *FileSystemNodeRuntimePreparer) Prepare(ctx context.Context, node *types.AnalysisNode) error
- func (p *FileSystemNodeRuntimePreparer) WriteCommand(node *types.AnalysisNode, scriptType, scriptPath, scriptWorkspacePath string, ...) error
- func (p *FileSystemNodeRuntimePreparer) WriteEnvFile(ctx context.Context, envFilePath string, node *types.AnalysisNode, ...) error
- type JupyterScriptBuilder
- type NodeRuntimePreparer
- type PythonScriptBuilder
- type QmdScriptBuilder
- type RScriptBuilder
- type RunScriptBuilder
- type RunScriptBuilderRegistry
- type ShellScriptBuilder
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ReadCommandRunScript ¶ added in v0.2.0
ReadCommandRunScript 读取命令节点 run.sh 的正文。
路径为空或文件尚未生成时返回空串与 nil,调用方据此按「还没有命令」处理 (例如授权预览里的旧值 diff、更新前的变更判断)。
func RunScriptContent ¶ added in v0.2.0
RunScriptContent 返回命令写入 run.sh 的标准正文:去掉首尾空白并补齐结尾换行 (命令为空时返回空串)。写入与授权预览共用同一口径,避免 diff 与实际文件不一致。
func WithSkipCleanOutput ¶ added in v0.1.4
WithSkipCleanOutput 返回一个携带“跳过清理输出目录”标识的 context。 Prepare 检测到该标识后,将不再调用 cleanDirContents。
func WriteCommandRunScript ¶ added in v0.2.0
WriteCommandRunScript 把命令正文写入命令节点的 run.sh。
命令节点的命令不再落库(AnalysisNode 没有 Command 字段):创建 / 更新入口 (create_agent_analysis、update_agent_analysis、手动建节点)直接调用本函数写盘, Prepare 只负责目录、params.json 与 env.sh,不会覆盖 run.sh。
内容口径:去掉首尾空白后补齐结尾换行;命令为空时返回错误,避免写出空脚本。
Types ¶
type FileSystemNodeRuntimePreparer ¶
type FileSystemNodeRuntimePreparer struct {
// contains filtered or unexported fields
}
func NewFileSystemNodeRuntimePreparer ¶ added in v0.1.4
func NewFileSystemNodeRuntimePreparer( analysisRepo interfaces.AnalysisRepository, workflowRepo interfaces.WorkflowRepository, projectRepo interfaces.ProjectRepository, workflowService interfaces.WorkflowService, cfg *config.Config, builders *RunScriptBuilderRegistry, ) *FileSystemNodeRuntimePreparer
func (*FileSystemNodeRuntimePreparer) Prepare ¶
func (p *FileSystemNodeRuntimePreparer) Prepare(ctx context.Context, node *types.AnalysisNode) error
func (*FileSystemNodeRuntimePreparer) WriteCommand ¶
func (p *FileSystemNodeRuntimePreparer) WriteCommand(node *types.AnalysisNode, scriptType, scriptPath, scriptWorkspacePath string, params map[string]any) error
func (*FileSystemNodeRuntimePreparer) WriteEnvFile ¶ added in v0.1.4
func (p *FileSystemNodeRuntimePreparer) WriteEnvFile(ctx context.Context, envFilePath string, node *types.AnalysisNode, scriptDir string) error
type JupyterScriptBuilder ¶
type JupyterScriptBuilder struct{}
func (JupyterScriptBuilder) Build ¶
func (JupyterScriptBuilder) Build(node *types.AnalysisNode, scriptPath, scriptWorkspacePath string, _ string, _ map[string]any) (string, error)
func (JupyterScriptBuilder) Name ¶ added in v0.1.4
func (JupyterScriptBuilder) Name() string
type NodeRuntimePreparer ¶
type NodeRuntimePreparer interface {
Prepare(ctx context.Context, node *types.AnalysisNode) error
}
type PythonScriptBuilder ¶
type PythonScriptBuilder struct{}
func (PythonScriptBuilder) Build ¶
func (PythonScriptBuilder) Build(node *types.AnalysisNode, scriptPath, scriptWorkspacePath string, _ string, _ map[string]any) (string, error)
func (PythonScriptBuilder) Name ¶ added in v0.1.4
func (PythonScriptBuilder) Name() string
type QmdScriptBuilder ¶
type QmdScriptBuilder struct{}
func (QmdScriptBuilder) Build ¶
func (QmdScriptBuilder) Build(node *types.AnalysisNode, scriptPath, scriptWorkspacePath string, _ string, _ map[string]any) (string, error)
func (QmdScriptBuilder) Name ¶ added in v0.1.4
func (QmdScriptBuilder) Name() string
type RScriptBuilder ¶
type RScriptBuilder struct{}
func (RScriptBuilder) Build ¶
func (RScriptBuilder) Build(node *types.AnalysisNode, scriptPath, scriptWorkspacePath string, _ string, _ map[string]any) (string, error)
func (RScriptBuilder) Name ¶ added in v0.1.4
func (RScriptBuilder) Name() string
type RunScriptBuilder ¶
type RunScriptBuilder interface {
// Name 返回构建器唯一标识(小写脚本类型,如 r / python / shell / qmd / jupyter)。
Name() string
// Build 根据节点、脚本路径、脚本内容与参数生成 run.sh 内容。
Build(node *types.AnalysisNode, scriptPath string, scriptWorkspacePath string, scriptContent string, params map[string]any) (string, error)
}
RunScriptBuilder 是「运行脚本构建器」接口:根据脚本类型(r / python / shell / qmd / jupyter)生成节点实际执行的 run.sh 内容。
func DefaultRunScriptBuilders ¶ added in v0.1.4
func DefaultRunScriptBuilders() []RunScriptBuilder
DefaultRunScriptBuilders 返回框架内置的 RunScriptBuilder 列表。
type RunScriptBuilderRegistry ¶ added in v0.1.4
type RunScriptBuilderRegistry struct {
// contains filtered or unexported fields
}
RunScriptBuilderRegistry 负责注册与解析 RunScriptBuilder。 采用与 agent.Registry 一致的注册表模式,由容器启动时注册内置构建器, 运行时按脚本类型解析;未匹配到对应类型时回退到 "shell"。
func NewRunScriptBuilderRegistry ¶ added in v0.1.4
func NewRunScriptBuilderRegistry(builders ...RunScriptBuilder) *RunScriptBuilderRegistry
NewRunScriptBuilderRegistry 创建注册表并注册传入的构建器。
func (*RunScriptBuilderRegistry) Has ¶ added in v0.1.4
func (r *RunScriptBuilderRegistry) Has(scriptType string) bool
Has 报告指定脚本类型是否已注册。
func (*RunScriptBuilderRegistry) Names ¶ added in v0.1.4
func (r *RunScriptBuilderRegistry) Names() []string
Names 返回已注册的构建器名称列表(升序,便于调试与校验)。
func (*RunScriptBuilderRegistry) Register ¶ added in v0.1.4
func (r *RunScriptBuilderRegistry) Register(b RunScriptBuilder)
Register 注册构建器;同名覆盖。
func (*RunScriptBuilderRegistry) Resolve ¶ added in v0.1.4
func (r *RunScriptBuilderRegistry) Resolve(scriptType string) RunScriptBuilder
Resolve 按脚本类型解析构建器;未匹配到对应类型时回退到 "shell"。 返回 nil 表示 "shell" 也未注册。
type ShellScriptBuilder ¶
type ShellScriptBuilder struct{}
func (ShellScriptBuilder) Build ¶
func (ShellScriptBuilder) Build(_ *types.AnalysisNode, scriptPath, scriptWorkspacePath string, scriptContent string, params map[string]any) (string, error)
func (ShellScriptBuilder) Name ¶ added in v0.1.4
func (ShellScriptBuilder) Name() string