Skip to content

v0.0.5

Choose a tag to compare

@masterkeysrd masterkeysrd released this 17 Oct 02:49
· 3 commits to main since this release

Release v0.0.5

This release standardizes the project context filename on AGENTS.md, completes Toolkit and Plugin resolution in the runtime registry and loader, strengthens workspace validation, and expands the warp CLI with new inspection, rendering, and formatting commands.


⚠️ Breaking Changes

Canonical Context File Renamed to AGENTS.md

  • The canonical project context file has been renamed from AGENT.md to AGENTS.md (ContextFileName = "AGENTS.md") across the specification, parser, loader, plugins, and examples, aligning with the open AGENTS.md ecosystem standard.
  • Legacy AGENT.md files are no longer inferred as Context resources without explicit YAML front-matter. Rename existing AGENT.md files in your workspace and projects to AGENTS.md.

🚀 Key Highlights

1. Registry, Resolution & Validation

  • Toolkit Expansion (Kind: Toolkit): Agent.spec.tools can now reference Toolkit resources alongside individual Tool resources. Referenced toolkits expand both $ref tool pointers and inline tool definitions (ToolSpec.Description added) prior to evaluating workspace and agent tool policies.
  • Glob Pattern Support for Agent Capabilities: Agent.spec.skills, Agent.spec.commands, and Agent.spec.subagents now support glob patterns (e.g. skills/*, review-*, plugin-ns/Skill/*) in addition to exact short names, qualified names, and *.
  • Subdirectory Project Resolution: Registry.ProjectFromPath now resolves any nested subdirectory path to its owning project using longest path-prefix matching.
  • Base Registry Plugin Visibility: Resources imported from external plugins (Workspace.spec.plugins) are now accessible from the base Registry scope while preserving strict isolation between sibling project namespaces.
  • Deterministic Resource & Project Ordering: Registry.Resources(), Registry.ListProjects(), Registry.ListResources(), and ScopedRegistry.ListResources() now return deterministically sorted slices.
  • Comprehensive Registry.Validate():
    • Validates all 10 resource kinds (Workspace, Context, Plugin, Agent, Skill, Command, ModelProvider, Tool, Toolkit, MCP).
    • Verifies Agent.spec.extends parent existence and detects inheritance cycles during validation.
    • Validates Workspace.spec.defaultAgent and Workspace.spec.defaultProvider references.
    • Validates Toolkit.spec.tools ($ref targets and inline tool schemas) and Plugin.spec.exports.

2. Loader, Plugins & Fetcher

  • Workspace Plugin Loading & Lockfile Verification: LoadWorkspace now loads external and local plugins declared in Workspace.spec.plugins, enforces both Plugin.spec.exports and WorkspacePlugin.imports (include / exclude) filters, and verifies directory integrity against warp.lock SHA-256 hashes when present.
  • Flat-Root Authority Rule: When a workspace operates in single-project flat-root mode (projects: ["."]), WORKSPACE_ROOT/.agents/ is loaded directly into the project's local namespace rather than being duplicated into the workspace namespace.
  • Context.spec.resources Loading: LoadWorkspace now loads explicit resource files and directories declared in Context.spec.resources into the project's namespace.
  • Extended Git Reference Support: internal/fetcher now supports cloning plugin repositories at branches and full or short commit SHAs in addition to tags.

3. CLI & JSON Schema Tooling

  • New warp CLI Subcommands:
    • warp list [path] — lists all discovered projects and resources in a workspace.
    • warp render [-dir <path>] <ref> [args...] — renders the instructions template for an Agent, Command, Skill, or Context.
    • warp fmt [-w] <file...> — formats WARP Markdown front-matter and YAML files canonically.
    • warp validate [path] — surfaces non-fatal loader warnings alongside resource counts and validation results.
    • warp get --include <Kind/name> <package> — supports repeatable --include flags to selectively import plugin resources non-interactively.
  • JSON Schema: Added Context schema generation to cmd/schema-gen and regenerated schema/warp.json.

📦 Dependency Updates

Direct Dependencies

  • github.com/go-git/go-git/v5: v5.19.2 → v5.19.3

Indirect Dependencies

  • Charm Ecosystem:
    • charm.land/bubbletea/v2: v2.0.9 → v2.1.0
    • github.com/charmbracelet/ultraviolet: v0.0.0-20260903151058-ae99b731b8c5 → v0.0.0-20261008173134-6b8d4baf91b4
    • github.com/charmbracelet/x/ansi: v0.11.8 → v0.11.9
  • Go Standard Library Extensions (golang.org/x/*):
    • golang.org/x/crypto: v0.56.0 → v0.58.0
    • golang.org/x/net: v0.58.0 → v0.61.0
    • golang.org/x/sync: v0.22.0 → v0.24.0
    • golang.org/x/sys: v0.47.0 → v0.49.0
  • Git, Crypto & Utilities:
    • github.com/Microsoft/go-winio: v0.6.2 → v0.6.4
    • github.com/ProtonMail/go-crypto: v1.4.1 → v1.5.2
    • github.com/dustin/go-humanize: v1.0.1 → v1.1.0
    • github.com/go-git/go-billy/v5: v5.9.1 → v5.9.2
    • github.com/klauspost/cpuid/v2: v2.4.0 → v2.4.1
    • github.com/mattn/go-runewidth: v0.0.29 → v0.0.31
    • github.com/pb33f/ordered-map/v2: v2.3.1 → v2.3.2
    • github.com/pjbgf/sha1cd: v0.6.0 → v0.7.0
    • github.com/xo/terminfo: v1.0.0 → v1.2.0

🔨 Commits

  • e2426ad - refactor!: rename canonical context file from AGENT.md to AGENTS.md
  • 51fbac4 - chore(deps): update dependencies
  • 18d571c - feat(registry): add toolkit expansion, glob capabilities, and stronger validation
  • ee97189 - feat(loader): support plugin loading, lock verification, flat-root rule, and git refs
  • efb48b8 - feat(cli): add list, render, and fmt commands and regenerate schema
  • 369d04c - docs: update README, package doc, and specification

Full Changelog: v0.0.4...v0.0.5