Files
goclaw/internal/tools/delegation_artifacts_unsupported.go
Duc Nguyenandntduc bb7712a9ff fix(collaboration): harden delegated task isolation (#1486)
* feat(collaboration): isolate delegated artifacts and child runs

Isolate delegated inputs and outputs behind secure artifact exchange lifecycles. Scope Agent Link tasks by tenant and root agent, and enforce delegation spawn-tree boundaries. Add process-wide child-run admission and preserve logical media paths across native, MCP, and sandbox execution.

* fix(collaboration): harden delegated task isolation

Enforce tenant and root-agent task scope across migrations and stores. Add exactly-once async completion delivery, delegated sandbox boundaries, and confined artifact and media recovery across runtime surfaces.

* fix(collaboration): recover interrupted async tasks

* fix(collaboration): normalize persisted child-run status

---------

Co-authored-by: ntduc <ntduc@cpp.ai.vn>
2026-07-30 14:17:40 +07:00

64 lines
1.6 KiB
Go

//go:build !linux && !darwin && !windows
package tools
import (
"io/fs"
"os"
)
type artifactSecureRoot struct{}
func openArtifactSecureRoot(string) (*artifactSecureRoot, error) {
return nil, ErrArtifactSecureUnavailable
}
func (r *artifactSecureRoot) close() error { return nil }
func (r *artifactSecureRoot) mkdirAll(string, fs.FileMode) error {
return ErrArtifactSecureUnavailable
}
func (r *artifactSecureRoot) createSubroot(string, fs.FileMode) (*artifactSecureRoot, error) {
return nil, ErrArtifactSecureUnavailable
}
func (r *artifactSecureRoot) openSubroot(string) (*artifactSecureRoot, error) {
return nil, ErrArtifactSecureUnavailable
}
func (r *artifactSecureRoot) createFile(string, fs.FileMode) (*os.File, error) {
return nil, ErrArtifactSecureUnavailable
}
func (r *artifactSecureRoot) openEntry(string) (*artifactSecureEntry, error) {
return nil, ErrArtifactSecureUnavailable
}
func (r *artifactSecureRoot) readDir(string) ([]string, error) {
return nil, ErrArtifactSecureUnavailable
}
func (r *artifactSecureRoot) exists(string) (bool, error) {
return false, ErrArtifactSecureUnavailable
}
func (r *artifactSecureRoot) syncDir(string) error {
return ErrArtifactSecureUnavailable
}
func (r *artifactSecureRoot) removeTree(string) error {
return ErrArtifactSecureUnavailable
}
func (r *artifactSecureRoot) renameNoReplace(string, string) error {
return ErrArtifactSecureUnavailable
}
func (r *artifactSecureRoot) renameReplace(string, string) error {
return ErrArtifactSecureUnavailable
}
func isArtifactAlreadyExists(error) bool { return false }
func isArtifactNotExist(error) bool { return false }