feat(adapter): define Adapter interface and FileSet

This commit is contained in:
2026-05-23 02:45:50 +01:00
parent e4719b78a0
commit 6ab8d149e1
5 changed files with 175 additions and 0 deletions
+39
View File
@@ -0,0 +1,39 @@
// Package adapter defines the harness adapter interface and FileSet.
package adapter
import "github.com/lukaszraczylo/harness-sync/internal/canonical"
type Kind int
const (
RenderedFile Kind = iota
SymlinkFile
SymlinkDir
)
func (k Kind) String() string {
switch k {
case RenderedFile:
return "rendered"
case SymlinkFile:
return "symlink-file"
case SymlinkDir:
return "symlink-dir"
}
return "unknown"
}
type Adapter interface {
Name() string
Detect() bool
Render(b *canonical.Bundle) (*FileSet, error)
Import(home string) (*ImportResult, error)
}
type ImportResult struct {
Instructions string
Skills []canonical.Skill
Agents []canonical.Agent
MCP []canonical.MCPServer
Profiles []canonical.Profile
}