Help us shape the future of Go! Take the 2026 Go Developer Survey

continuedev

package
v0.7.5 Latest Latest
Warning

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

Go to latest
Published: Jun 29, 2026 License: MIT Imports: 12 Imported by: 0

Documentation

Overview

Package continuedev implements the Continue adapter for agentsync.

(The package is named continuedev rather than `continue` because `continue` is a Go keyword; the agent's name — Adapter.Name() — is still "continue".)

Continue stores configuration under ~/.continue (global) and <repo>/.continue (project), composed from "blocks" — individual files in per-kind subdirectories (per docs.continue.dev). agentsync projects to three of them:

  • MCP servers → .continue/mcpServers/<id>.yaml (one YAML block per server)
  • Memory → .continue/rules/agentsync.md (a plain always-apply rule)
  • Commands → .continue/prompts/<name>.md (one prompt block per command)

Each is a whole-file (one-file-per-item) write, so the adapter has NO key-merge strategy. Continue has no Agent Skills, no per-file subagents (its "agents" are top-level assistants), no declarative hooks, and no LSP config, so those components are skipped with a report. See docs/capability-matrix.md for the per-component coverage and documented loss.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func IngestMCPSpec

func IngestMCPSpec(raw map[string]any) source.MCPServerSpec

IngestMCPSpec translates one Continue-native server entry (a map under a block's `mcpServers` list) into the canonical MCPServerSpec. Inverse of continueMCPServerMap: `streamable-http` → http, `sse` → sse, otherwise stdio; `requestOptions.headers` → canonical headers, and any OTHER requestOptions subkey (timeout, verifySsl, proxy, …) is preserved verbatim in Extra["requestOptions"] so the round trip can rebuild the full object — dropping it silently would let the next apply destroy it on disk. Native keys agentsync doesn't model (e.g. cwd) are preserved in Extra.

Types

type Adapter

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

Adapter implements adapter.Adapter for Continue.

func New

func New(opts Options) *Adapter

New constructs a Continue adapter.

func (*Adapter) Apply

func (a *Adapter) Apply(ops []adapter.FileOp, w adapter.DestWriter) error

Apply routes every destination write through the supplied DestWriter rather than calling iox.AtomicWrite directly. Continue projects every component as a whole-file write (one block per file), so there is no per-key merge: a write is the op's content verbatim. The DestWriter owns the foreign-collision backup invariant — see the doc on adapter.DestWriter.

func (*Adapter) Capabilities

func (a *Adapter) Capabilities() adapter.Capability

func (*Adapter) Detect

func (a *Adapter) Detect() (bool, error)

func (*Adapter) Ingest

func (a *Adapter) Ingest(scope adapter.Scope, project string) (source.Canonical, error)

Ingest reads Continue's native block files and returns a partial source.Canonical. It is the inverse of Render (modulo the documented projected loss — command argument-hint/allowed-tools — which Render drops with a report).

func (*Adapter) KeyMergeStrategy

func (a *Adapter) KeyMergeStrategy() string

KeyMergeStrategy returns "" — Continue projects every component as a whole-file write (one YAML/markdown block per item), so the adapter owns no shared key-merge file.

func (*Adapter) Name

func (a *Adapter) Name() string

func (*Adapter) Render

func (a *Adapter) Render(r secrets.Resolved, scope adapter.Scope, project string) ([]adapter.FileOp, []adapter.Skip, error)

Render converts the resolved canonical into FileOps for Continue.

Render projects each plugin's COMPONENTS (MCP, memory, commands) to Continue's `.continue/` block directories. Continue has no native plugin enable-state agentsync models (it composes blocks from the Hub + local files), so there is no PluginIngester and nothing is written back — the same components-only-on- apply rule every adapter follows.

func (*Adapter) SetStderr

func (a *Adapter) SetStderr(w io.Writer)

SetStderr replaces the warning sink the adapter writes Ingest warnings to. See claude.Adapter.SetStderr for the contract.

func (*Adapter) VersionRoots added in v0.7.5

func (a *Adapter) VersionRoots(scope adapter.Scope, project string) []string

VersionRoots implements adapter.VersionedDirs: the user-scope ~/.continue config dir is the local-only git-backup root (issue #118). Returns nil at project scope.

type Options

type Options struct {
	TargetRoot string // honors AGENTSYNC_TARGET_ROOT (real "/Users/x" in production)
	// LookPath overrides exec.LookPath for testing. nil means use exec.LookPath.
	LookPath func(file string) (string, error)
	// Stderr receives Ingest warnings. nil means os.Stderr.
	Stderr io.Writer
}

Options configure the adapter at construction.

type Paths

type Paths struct {
	ConfigDir  string // ~/.continue (or <proj>/.continue)
	MCPDir     string // .continue/mcpServers (one YAML block per server)
	RulesDir   string // .continue/rules (memory → agentsync.md)
	PromptsDir string // .continue/prompts (one prompt block per command)
}

Paths resolves the destination directories for a given (scope, project, target-root). Continue uses the same `.continue/` layout at user scope (~/.continue) and project scope (<repo>/.continue).

func ResolvePaths

func ResolvePaths(targetRoot, project string, projectScope bool) Paths

ResolvePaths returns the Paths for the given target root and optional project.

Jump to

Keyboard shortcuts

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