Harbor

module
v1.1.6 Latest Latest
Warning

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

Go to latest
Published: May 26, 2026 License: Apache-2.0

README

Harbor

A Go-native runtime for durable, steerable, event-driven AI agents.

CI Release Go Reference


Harbor runs agents the way a server runs requests: as long-lived, observable, interruptible work — not as a script that blocks until an LLM replies. An agent in Harbor can be paused mid-reasoning for a human approval, redirected by an operator, resumed after a process restart, and watched live — all without the agent's author writing a line of orchestration code.

It ships as one importable Go module and one static binary (harbor). No CGo, no daemon to operate, no message broker to stand up. harbor dev boots the whole runtime on your laptop in under a second.

go install github.com/hurtener/Harbor/cmd/harbor@v1.0.0

mkdir my-agent && cd my-agent
harbor init                       # tiered harbor.yaml + AGENTS.md/CLAUDE.md/README.md
# edit harbor.yaml — uncomment one LLM provider block + set its API key env var
harbor validate ./harbor.yaml     # fail-loud config check (file:line precision)
harbor scaffold --name my-agent   # materialise the Go project + worked agent + test
harbor dev                        # local runtime + protocol server on :18080

Why Harbor

Most agent frameworks are a loop: call the LLM, run a tool, repeat, return a string. That loop is easy to start and hard to operate. It can't be paused for approval, it loses everything on a crash, two users share its globals, and the only way to see what it's doing is to read stdout.

Harbor treats those operational concerns as the product:

  • Durable. Run state is persisted, not held in a goroutine. A run survives a restart; pause/resume serialization fails loudly (ErrUnserializable) rather than silently dropping context.
  • Steerable. Cancel, redirect, inject a message, pause, resume — nine control operations, all routed through one primitive. Human-in-the-loop approval, tool-side OAuth, and operator pause are the same mechanism.
  • Event-driven. Every meaningful thing a run does is a typed event on a bus. Observability is not bolted on; it is how the runtime is built.
  • Multi-isolation from line one. Every layer carries a (tenant, user, session) identity. One user can hold many concurrent sessions and they never see each other's state. There is no single-tenant mode to "upgrade from."

The reasoning policy is yours and it is swappable. Harbor owns the mechanism — events, tasks, tools, memory, artifacts, pause/resume — behind one Planner interface. The reference ReAct planner ships in the box; a Deterministic planner ships beside it to prove the seam. Plan-Execute, Graph, and Supervisor planners are post-V1, and they sit on the exact same primitives.

Architecture

Harbor is four layers, each with a hard boundary:

Layer What it is
Runtime The orchestration kernel — tasks, planner runtime, tools, memory, sessions, events, skills, artifacts, the unified pause/resume primitive. Headless.
Protocol The canonical, versioned event/state contract. Streaming events, the task-control surface, state snapshots, topology, traces, metrics.
Console The observability + control-plane UI (SvelteKit). Architecturally just a Protocol client — it never reads a Runtime object directly.
CLI The harbor binary: init, dev, console, scaffold, validate, version, and the inspect-* family.

Because the Console only ever speaks Protocol, the same surface powers a remote attach, a third-party dashboard, or an IDE/TUI client. Nothing about observability is privileged to the first-party UI.

Persistence ships as three conformance-equal drivers everywhere it matters (StateStore, ArtifactStore, MemoryStore, …): in-memory for dev, SQLite (CGo-free) for single-node, Postgres for scale. Tools are transport-agnostic — an in-process Go function, an HTTP endpoint, an MCP server, or an A2A agent all register into the same catalog.

Using Harbor

Build an agent against the runtime library:

import "github.com/hurtener/Harbor/harbortest"

The fastest path is the four-step CLI flow: harbor init drops a tiered, commented harbor.yaml plus AGENTS.md / CLAUDE.md / README.md companion files into the current directory; you edit one LLM-provider example block, run harbor validate, then harbor scaffold --name <name> to materialise the Go project (go.mod, a worked agent, a harbortest-driven test). From there:

  • harbor init — drop the editable yaml + companion docs. Pick from four commented LLM-provider examples (OpenRouter / Anthropic / OpenAI / NVIDIA NIM — Bifrost speaks many more; see docs/CONFIG.md).
  • harbor scaffold --name <name> — materialise the Go project + test pair.
  • harbor dev — boots the local Runtime + Protocol server, mints an ephemeral dev token, serves until you Ctrl-C.
  • harbor console — serves the Harbor Console (baked into the binary) against a co-resident Runtime.
  • harbor validate — runs the config loader against a YAML file with file:line-precise errors; suitable as a CI pre-flight.
  • harbor inspect-events / inspect-runs — tail the live event stream or reconstruct a run's trajectory from event replay.

The full operator-facing configuration reference for every knob in harbor.yaml lives at docs/CONFIG.md; a CI test fails the build when a new config field lands without a documentation entry.

Worked, runnable examples live in examples/; copy-paste how-to guides — defining a tool, wiring a planner, testing an agent — live in docs/recipes/.

Testing your agent

The public harbortest/ package is a five-function authoring surface for flow-level tests — RunOnce, AssertSequence, AssertNoLeaks, SimulateFailure, RecordedEvents. Import it from outside the module; its godoc documents the surface and harbortest/agent_test.go is the worked example.

Documentation

RFC-001-Harbor.md The design RFC — product intent and every architectural decision.
docs/plans/README.md The master phase plan — how Harbor was built, phase by phase.
docs/skills/INDEX.md Operator skills — Claude-Code-style playbooks for building agents with Harbor. Start at scaffold-a-harbor-agent.
docs/recipes/ Practical how-to guides, grounded in current APIs.
docs/CONFIG.md Full operator-facing reference for every harbor.yaml knob.
docs/decisions.md The append-only architectural decision log (D-001…).
CHANGELOG.md Release history, Keep-a-Changelog format.

Status

Harbor v1.0.0. The V1 surface is complete: the runtime kernel, the Protocol and its conformance suite, the ReAct and Deterministic planners, the three-driver persistence triad, the tool transports (in-proc / HTTP / MCP / A2A), the skills and memory subsystems, the unified pause/resume primitive, the Console and its fourteen pages, and the harbor CLI. Cross-tenant isolation, goroutine-leak, and chaos conformance harnesses gate every change.

Post-V1 work — deeper ReAct prompting, additional planner concretes, a durable distributed bus, governance extensions — is tracked in the master phase plan.

Releases

A release is built by scripts/release-build.sh (via make release-build, or the release.yml workflow on a v* tag): a CGo-free static binary with the version stamped at link time, a SHA-256 checksum, and a SLSA-style build-provenance attestation. harbor version reports the product version and, separately, the Harbor Protocol version. make release-dryrun exercises the whole path without a tag.

Contributing

AGENTS.md is binding for anyone — human or AI — modifying this repository. Read it first.

make help          # every target
make test          # the suite, race detector on
make lint          # the full golangci-lint gate
make preflight     # build + boot + smoke — the same gate CI enforces
make install-hooks # one-time per clone

License

Apache-2.0. See RFC-001-Harbor.md §10 for the rationale.

Directories

Path Synopsis
cmd
harbor command
Package main hosts the `harbor` CLI binary.
Package main hosts the `harbor` CLI binary.
harbor-mcptest-stdio command
harbor-mcptest-stdio is a minimal MCP stdio server used by the Phase 83g integration test.
harbor-mcptest-stdio is a minimal MCP stdio server used by the Phase 83g integration test.
harbor/init
Package harborinit ships the `harbor init` engine.
Package harborinit ships the `harbor init` engine.
harbor/scaffold
Package scaffold implements the `harbor scaffold` engine — the template registry, the renderer, and the on-disk writer.
Package scaffold implements the `harbor scaffold` engine — the template registry, the renderer, and the on-disk writer.
examples
agents/echo
Package echo is a worked, runnable Harbor agent example.
Package echo is a worked, runnable Harbor agent example.
tools/weather
Package weather is a worked, runnable example of registering a Go function as a Harbor in-process tool.
Package weather is a worked, runnable example of registering a Go function as a Harbor in-process tool.
Package harbortest is Harbor's public test kit — the ergonomic authoring surface for flow-level agent tests.
Package harbortest is Harbor's public test kit — the ergonomic authoring surface for flow-level agent tests.
devstack
Package devstack centralises per-test dev-stack assembly.
Package devstack centralises per-test dev-stack assembly.
internal
artifacts
Package artifacts defines Harbor's content-addressed blob store — the mandatory routing target for any output above the heavy-output threshold (default 32 KB; D-022, D-026, RFC §6.10).
Package artifacts defines Harbor's content-addressed blob store — the mandatory routing target for any output above the heavy-output threshold (default 32 KB; D-022, D-026, RFC §6.10).
artifacts/conformancetest
Package conformancetest exposes the canonical correctness suite every artifacts.ArtifactStore driver must pass.
Package conformancetest exposes the canonical correctness suite every artifacts.ArtifactStore driver must pass.
artifacts/drivers/fs
Package fs is Harbor's filesystem ArtifactStore driver.
Package fs is Harbor's filesystem ArtifactStore driver.
artifacts/drivers/inmem
Package inmem is Harbor's V1 in-memory ArtifactStore driver.
Package inmem is Harbor's V1 in-memory ArtifactStore driver.
artifacts/drivers/postgres
Package postgres is Harbor's V1 Postgres-backed ArtifactStore driver.
Package postgres is Harbor's V1 Postgres-backed ArtifactStore driver.
artifacts/drivers/s3
Package s3 is Harbor's S3-compatible ArtifactStore driver.
Package s3 is Harbor's S3-compatible ArtifactStore driver.
artifacts/drivers/sqlite
Package sqlite is Harbor's SQLite-backed `artifacts.ArtifactStore` driver (Phase 18).
Package sqlite is Harbor's SQLite-backed `artifacts.ArtifactStore` driver (Phase 18).
audit
Package audit owns Harbor's deep-redaction pass.
Package audit owns Harbor's deep-redaction pass.
audit/drivers/noop
Package noop is a pass-through audit redactor for tests that want to bypass redaction.
Package noop is a pass-through audit redactor for tests that want to bypass redaction.
audit/drivers/patterns
Package patterns is Harbor's V1 audit redactor driver.
Package patterns is Harbor's V1 audit redactor driver.
config
Package config defines Harbor's strongly-typed configuration surface.
Package config defines Harbor's strongly-typed configuration surface.
devdraft
Package devdraft implements the `harbor dev` draft-save scaffolding surface — Phase 66 / D-100.
Package devdraft implements the `harbor dev` draft-save scaffolding surface — Phase 66 / D-100.
distributed
Package distributed defines Harbor's V1 distributed-edge contracts:
Package distributed defines Harbor's V1 distributed-edge contracts:
distributed/a2a
Package a2a provides hand-transcribed Go shapes for every type defined in the vendored A2A v1 proto specification at `docs/specifications/a2a.proto` (commit `ae6a562d5d972f2c4b184f748bb32e1fa9aa7bf2`, 2026-04-23).
Package a2a provides hand-transcribed Go shapes for every type defined in the vendored A2A v1 proto specification at `docs/specifications/a2a.proto` (commit `ae6a562d5d972f2c4b184f748bb32e1fa9aa7bf2`, 2026-04-23).
distributed/conformancetest
Package conformancetest exposes the canonical correctness suites every distributed driver must pass.
Package conformancetest exposes the canonical correctness suites every distributed driver must pass.
distributed/drivers/a2a
Package a2a is Harbor's southbound A2A wire driver.
Package a2a is Harbor's southbound A2A wire driver.
distributed/drivers/loopback
Package loopback ships Harbor's V1 in-process drivers for both `distributed.MessageBus` and `distributed.RemoteTransport`.
Package loopback ships Harbor's V1 in-process drivers for both `distributed.MessageBus` and `distributed.RemoteTransport`.
events
Package events owns Harbor's typed event bus surface — the single pub/sub channel every subsystem (telemetry, audit, governance, runtime, planner, tools) Publishes to and Subscribes from.
Package events owns Harbor's typed event bus surface — the single pub/sub channel every subsystem (telemetry, audit, governance, runtime, planner, tools) Publishes to and Subscribes from.
events/drivers/durable
Package durable is Harbor's StateStore-backed durable event log driver (Phase 57, RFC §6.13).
Package durable is Harbor's StateStore-backed durable event log driver (Phase 57, RFC §6.13).
events/drivers/inmem
Package inmem is Harbor's V1 in-memory EventBus driver.
Package inmem is Harbor's V1 in-memory EventBus driver.
governance
Package governance is Harbor's policy middleware between the runtime and the LLM-edge chain.
Package governance is Harbor's policy middleware between the runtime and the LLM-edge chain.
governance/conformancetest
Package conformancetest exposes the canonical governance correctness suite that every supported `state.StateStore` driver must satisfy.
Package conformancetest exposes the canonical governance correctness suite that every supported `state.StateStore` driver must satisfy.
identity
Package identity defines Harbor's load-bearing isolation key.
Package identity defines Harbor's load-bearing isolation key.
identity/conformancetest
Package conformancetest exposes the canonical identity-correctness suite that every identity-aware Harbor subsystem (StateStore drivers, MemoryStore drivers, Governance, Audit, Memory) must run.
Package conformancetest exposes the canonical identity-correctness suite that every identity-aware Harbor subsystem (StateStore drivers, MemoryStore drivers, Governance, Audit, Memory) must run.
llm
Package llm defines Harbor's LLM-client interface and the runtime-wide invariants that guard every `Complete` call.
Package llm defines Harbor's LLM-client interface and the runtime-wide invariants that guard every `Complete` call.
llm/corrections
Package corrections is Harbor's provider correction layer (Phase 34 — RFC §6.5).
Package corrections is Harbor's provider correction layer (Phase 34 — RFC §6.5).
llm/drivers/bifrost
Package bifrost is Harbor's bifrost-backed LLM driver.
Package bifrost is Harbor's bifrost-backed LLM driver.
llm/mock
Package mock is Harbor's test-grade LLM driver.
Package mock is Harbor's test-grade LLM driver.
llm/output
Package output is Harbor's structured-output strategy + downgrade chain (Phase 35 — RFC §6.5).
Package output is Harbor's structured-output strategy + downgrade chain (Phase 35 — RFC §6.5).
llm/retry
Package retry is Harbor's retry-with-feedback wrapper (Phase 36 — RFC §6.5).
Package retry is Harbor's retry-with-feedback wrapper (Phase 36 — RFC §6.5).
llm/summarizer
Package summarizer is Harbor's production LLM-backed `memory.Summarizer` — the §13 "test stubs as production defaults" amendment closure for the memory subsystem's `rolling_summary` strategy.
Package summarizer is Harbor's production LLM-backed `memory.Summarizer` — the §13 "test stubs as production defaults" amendment closure for the memory subsystem's `rolling_summary` strategy.
mcpconsole
Package mcpconsole wires the Phase 73k (D-119) MCP-Connections Protocol surface to its runtime-side dependencies — the Phase 28 MCP driver registry and the Phase 30 tool-side OAuth provider.
Package mcpconsole wires the Phase 73k (D-119) MCP-Connections Protocol surface to its runtime-side dependencies — the Phase 28 MCP driver registry and the Phase 30 tool-side OAuth provider.
memory
Package memory owns Harbor's declared-policy, identity-scoped, pluggable memory subsystem.
Package memory owns Harbor's declared-policy, identity-scoped, pluggable memory subsystem.
memory/conformancetest
Package conformancetest exposes the canonical correctness suite every `memory.MemoryStore` driver must pass.
Package conformancetest exposes the canonical correctness suite every `memory.MemoryStore` driver must pass.
memory/drivers/inmem
Package inmem is Harbor's V1 in-memory MemoryStore driver.
Package inmem is Harbor's V1 in-memory MemoryStore driver.
memory/drivers/postgres
Package postgres is Harbor's Postgres-backed `memory.MemoryStore` driver (Phase 25).
Package postgres is Harbor's Postgres-backed `memory.MemoryStore` driver (Phase 25).
memory/drivers/sqlite
Package sqlite is Harbor's SQLite-backed `memory.MemoryStore` driver (Phase 25).
Package sqlite is Harbor's SQLite-backed `memory.MemoryStore` driver (Phase 25).
memory/protocol
Package protocol composes the read-only Console-memory-page Protocol surface (Phase 73j / D-118) on top of the shipped memory subsystem.
Package protocol composes the read-only Console-memory-page Protocol surface (Phase 73j / D-118) on top of the shipped memory subsystem.
memory/strategy
Package strategy holds the memory-strategy executors: the algorithmic core that any `memory.MemoryStore` driver delegates to.
Package strategy holds the memory-strategy executors: the algorithmic core that any `memory.MemoryStore` driver delegates to.
planner
Multimodal first-turn materialization (Round-7 F11 / D-166).
Multimodal first-turn materialization (Round-7 F11 / D-166).
planner/conformance
Package conformance ships the planner conformance pack.
Package conformance ships the planner conformance pack.
planner/deterministic
Package deterministic ships Harbor's second concrete Planner (Phase 48 — RFC §6.2 + RFC §11 Q-6 — the iface-validation lens that proves the `internal/planner.Planner` seam is genuinely swappable).
Package deterministic ships Harbor's second concrete Planner (Phase 48 — RFC §6.2 + RFC §11 Q-6 — the iface-validation lens that proves the `internal/planner.Planner` seam is genuinely swappable).
planner/finish
Package finish ships Harbor's stub Planner — a planner that always returns Finish{Reason: Goal}.
Package finish ships Harbor's stub Planner — a planner that always returns Finish{Reason: Goal}.
planner/react
Package react ships Harbor's reference LLM-driven planner concrete (Phase 45 — RFC §6.2 + RFC §3.2 — the first concrete sitting on the `internal/planner.Planner` seam).
Package react ships Harbor's reference LLM-driven planner concrete (Phase 45 — RFC §6.2 + RFC §3.2 — the first concrete sitting on the `internal/planner.Planner` seam).
planner/repair
Package repair ships Harbor's reusable salvage / schema-repair / graceful-failure / multi-action-salvage ladder for planner steps (RFC §6.2, Phase 44 — see docs/plans/phase-44-schema-repair.md).
Package repair ships Harbor's reusable salvage / schema-repair / graceful-failure / multi-action-salvage ladder for planner steps (RFC §6.2, Phase 44 — see docs/plans/phase-44-schema-repair.md).
planner/trajectory
Package trajectory ships Harbor's append-only planner-execution log and the fail-loudly serialise contract that closes the predecessor's silent-context-loss bug.
Package trajectory ships Harbor's append-only planner-execution log and the fail-loudly serialise contract that closes the predecessor's silent-context-loss bug.
protocol
Package protocol is the Harbor Protocol layer's runtime-side surface — the transport-agnostic handlers that translate a Protocol method call into a runtime action.
Package protocol is the Harbor Protocol layer's runtime-side surface — the transport-agnostic handlers that translate a Protocol method call into a runtime action.
protocol/auth
Package auth is the Harbor Protocol's JWT validation surface — the Phase 61 transport-edge cryptographic identity check that turns the Phase 60 wire transports' trust-based identity carriers into verified ones (RFC §5.5: "JWT, asymmetric algorithms only ...
Package auth is the Harbor Protocol's JWT validation surface — the Phase 61 transport-edge cryptographic identity check that turns the Phase 60 wire transports' trust-based identity carriers into verified ones (RFC §5.5: "JWT, asymmetric algorithms only ...
protocol/conformance
Package conformance is the Harbor Protocol conformance suite — the single binding pass/fail definition of "the Protocol surface works at version 0.1.0" (RFC §5 + master-plan Phase 62 detail block; D-080).
Package conformance is the Harbor Protocol conformance suite — the single binding pass/fail definition of "the Protocol surface works at version 0.1.0" (RFC §5 + master-plan Phase 62 detail block; D-080).
protocol/errors
Package errors is the single source of truth for Harbor Protocol error codes (CLAUDE.md §8: "Error codes live in internal/protocol/errors/errors.go.
Package errors is the single source of truth for Harbor Protocol error codes (CLAUDE.md §8: "Error codes live in internal/protocol/errors/errors.go.
protocol/methods
Package methods is the single source of truth for Harbor Protocol method names (CLAUDE.md §8: "Method names live in internal/protocol/methods/methods.go.
Package methods is the single source of truth for Harbor Protocol method names (CLAUDE.md §8: "Method names live in internal/protocol/methods/methods.go.
protocol/singlesource
Package singlesource is the Harbor Protocol single-source enforcement checker (CLAUDE.md §8, §13; RFC §5).
Package singlesource is the Harbor Protocol single-source enforcement checker (CLAUDE.md §8, §13; RFC §5).
protocol/transports
Package transports is the Harbor Protocol wire-transport seam — the Phase 60 binding of RFC §5.4's resolved transport choice (SSE for the event stream + REST/JSON for the control surface) onto net/http.
Package transports is the Harbor Protocol wire-transport seam — the Phase 60 binding of RFC §5.4's resolved transport choice (SSE for the event stream + REST/JSON for the control surface) onto net/http.
protocol/transports/control
Package control is the Harbor Protocol REST/JSON control transport — the client→server half of the wire binding RFC §5.4 resolves to (SSE for events + REST/JSON for control).
Package control is the Harbor Protocol REST/JSON control transport — the client→server half of the wire binding RFC §5.4 resolves to (SSE for events + REST/JSON for control).
protocol/transports/cors
Package cors is the Harbor Protocol CORS middleware — the Phase 83v security primitive that unlocks the D-091 multi-process Console+Runtime posture (Console on one origin attaches to a Runtime on a different origin) without weakening the browser-side enforcement contract.
Package cors is the Harbor Protocol CORS middleware — the Phase 83v security primitive that unlocks the D-091 multi-process Console+Runtime posture (Console on one origin attaches to a Runtime on a different origin) without weakening the browser-side enforcement contract.
protocol/transports/stream
Package stream — Wave 13 additions (Phase 73e): the `agents.*` HTTP handler.
Package stream — Wave 13 additions (Phase 73e): the `agents.*` HTTP handler.
protocol/types
Package types is the single source of truth for Harbor Protocol wire types (CLAUDE.md §8).
Package types is the single source of truth for Harbor Protocol wire types (CLAUDE.md §8).
runtime/concurrency
Package concurrency ships Harbor's runtime concurrency primitives — Phase 14 of the runtime kernel chain (RFC §6.1).
Package concurrency ships Harbor's runtime concurrency primitives — Phase 14 of the runtime kernel chain (RFC §6.1).
runtime/engine
Package engine is Harbor's typed, async, queue-backed graph executor — the runtime kernel every other phase sits on.
Package engine is Harbor's typed, async, queue-backed graph executor — the runtime kernel every other phase sits on.
runtime/flow
Package flow implements Harbor's Flow-as-Tool registration (RFC §6.1, D-023): a typed DAG of Nodes assembled into a runnable Engine via `Compose(def)`, then registered as a single Tool in the catalog via `RegisterAsTool(catalog, def, eng)`.
Package flow implements Harbor's Flow-as-Tool registration (RFC §6.1, D-023): a typed DAG of Nodes assembled into a runnable Engine via `Compose(def)`, then registered as a single Tool in the catalog via `RegisterAsTool(catalog, def, eng)`.
runtime/flow/protocol
Package protocol implements the runtime side of the Console Flows page (Phase 73i / D-117).
Package protocol implements the runtime side of the Console Flows page (Phase 73i / D-117).
runtime/messages
Package messages defines Harbor's wire-shaped runtime types: the Envelope every channel carries, the Headers it routes by, and the helpers (WithRunID, MergeMeta, Identity) downstream phases lean on.
Package messages defines Harbor's wire-shaped runtime types: the Envelope every channel carries, the Headers it routes by, and the helpers (WithRunID, MergeMeta, Identity) downstream phases lean on.
runtime/notifications
Package notifications ships Harbor's `notification.*` event family — a NEW event topic on the typed event bus carrying operator-facing notifications (alerts surfaced by the Console's notification centre, the Overview page alert ribbon, and the Settings notification-routing matrix per Brief 11 §CC-3).
Package notifications ships Harbor's `notification.*` event family — a NEW event topic on the typed event bus carrying operator-facing notifications (alerts surfaced by the Console's notification centre, the Overview page alert ribbon, and the Settings notification-routing matrix per Brief 11 §CC-3).
runtime/parallel
Package parallel ships Harbor's runtime parallel-call executor — the consumer of planner.CallParallel Decisions (RFC §6.2, Phase 47, D-056).
Package parallel ships Harbor's runtime parallel-call executor — the consumer of planner.CallParallel Decisions (RFC §6.2, Phase 47, D-056).
runtime/pauseresume
Package pauseresume ships Harbor's ONE pause/resume primitive — the unified Coordinator that HITL approval, tool-side OAuth, A2A AUTH_REQUIRED / INPUT_REQUIRED, and operator/Console PAUSE all converge on (CLAUDE.md §7 rule 4, RFC §3.3 + §6.3).
Package pauseresume ships Harbor's ONE pause/resume primitive — the unified Coordinator that HITL approval, tool-side OAuth, A2A AUTH_REQUIRED / INPUT_REQUIRED, and operator/Console PAUSE all converge on (CLAUDE.md §7 rule 4, RFC §3.3 + §6.3).
runtime/posture
Package posture builds the live `protocol.PostureDeps.Counters` and `protocol.PostureDeps.Metrics` seams over the real runtime subsystems.
Package posture builds the live `protocol.PostureDeps.Counters` and `protocol.PostureDeps.Metrics` seams over the real runtime subsystems.
runtime/registry
Package registry owns Harbor's Agent Registry — the in-process, per-runtime-instance subsystem that owns the *registration identity* of agents (RFC §6.16, D-059 / D-060).
Package registry owns Harbor's Agent Registry — the in-process, per-runtime-instance subsystem that owns the *registration identity* of agents (RFC §6.16, D-059 / D-060).
runtime/registry/protocol
Package protocol implements the eight `agents.*` Protocol methods the Console Agents page (Phase 73e / D-124) consumes:
Package protocol implements the eight `agents.*` Protocol methods the Console Agents page (Phase 73e / D-124) consumes:
runtime/routers
Package routers ships Harbor's runtime routing surface — Phase 14 of the runtime kernel chain (RFC §6.1).
Package routers ships Harbor's runtime routing surface — Phase 14 of the runtime kernel chain (RFC §6.1).
runtime/runs/protocol
Package protocol implements the `runs.set_overrides` Protocol method the Console Playground page (Phase 73n / D-130) consumes.
Package protocol implements the `runs.set_overrides` Protocol method the Console Playground page (Phase 73n / D-130) consumes.
runtime/steering
Package steering ships Harbor's per-run steering inbox + the nine-event control taxonomy + the Protocol-edge validation / sanitisation pass (RFC §6.3, brief 02 §2-§4).
Package steering ships Harbor's per-run steering inbox + the nine-event control taxonomy + the Protocol-edge validation / sanitisation pass (RFC §6.3, brief 02 §2-§4).
search
Package search owns the Harbor Phase 72c (D-108) cross-cutting search primitive — the four runtime-side per-subsystem indexes (sessions, tasks, events, artifacts) plus the `search.query` palette dispatcher that aggregates them.
Package search owns the Harbor Phase 72c (D-108) cross-cutting search primitive — the four runtime-side per-subsystem indexes (sessions, tasks, events, artifacts) plus the `search.query` palette dispatcher that aggregates them.
search/artifacts
Package artifacts implements the Phase 72c `search.artifacts` runtime-side index — a server-enforced search over the artifact store's catalog, scoped to the caller's identity triple unless the `auth.ScopeAdmin` claim is present (D-079).
Package artifacts implements the Phase 72c `search.artifacts` runtime-side index — a server-enforced search over the artifact store's catalog, scoped to the caller's identity triple unless the `auth.ScopeAdmin` claim is present (D-079).
search/events
Package events implements the Phase 72c `search.events` runtime-side index — a server-enforced search over the event bus's replay ring, scoped to the caller's identity triple unless the `auth.ScopeAdmin` claim is present (D-079).
Package events implements the Phase 72c `search.events` runtime-side index — a server-enforced search over the event bus's replay ring, scoped to the caller's identity triple unless the `auth.ScopeAdmin` claim is present (D-079).
search/sessions
Package sessions implements the Phase 72c `search.sessions` runtime-side index — a server-enforced search over session lifecycle records, scoped to the caller's identity triple unless the `auth.ScopeAdmin` claim is present (D-079).
Package sessions implements the Phase 72c `search.sessions` runtime-side index — a server-enforced search over session lifecycle records, scoped to the caller's identity triple unless the `auth.ScopeAdmin` claim is present (D-079).
search/tasks
Package tasks implements the Phase 72c `search.tasks` runtime-side index — a server-enforced search over task lifecycle records, scoped to the caller's identity triple unless the `auth.ScopeAdmin` claim is present (D-079).
Package tasks implements the Phase 72c `search.tasks` runtime-side index — a server-enforced search over task lifecycle records, scoped to the caller's identity triple unless the `auth.ScopeAdmin` claim is present (D-079).
sessions
Package sessions owns Harbor's session-lifecycle subsystem.
Package sessions owns Harbor's session-lifecycle subsystem.
sessions/protocol
Package protocol implements the two `sessions.*` Protocol methods the Console Sessions page (Phase 73c / D-122) consumes:
Package protocol implements the two `sessions.*` Protocol methods the Console Sessions page (Phase 73c / D-122) consumes:
skills
Package skills owns Harbor's token-savvy, DB-backed, identity- scoped skill subsystem (RFC §6.7).
Package skills owns Harbor's token-savvy, DB-backed, identity- scoped skill subsystem (RFC §6.7).
skills/capfilter
Package capfilter holds the primitive capability-filter and tool-name-scrub logic shared by the skills planner tools (internal/skills/tools, Phase 38) and the virtual directory (internal/skills, Phase 39).
Package capfilter holds the primitive capability-filter and tool-name-scrub logic shared by the skills planner tools (internal/skills/tools, Phase 38) and the virtual directory (internal/skills, Phase 39).
skills/conformancetest
Package conformancetest is the shared `SkillStore` conformance harness.
Package conformancetest is the shared `SkillStore` conformance harness.
skills/drivers/localdb
Package localdb is Harbor's SQLite-backed `skills.SkillStore` driver (Phase 37).
Package localdb is Harbor's SQLite-backed `skills.SkillStore` driver (Phase 37).
skills/generator
Package generator owns Harbor's in-runtime skill generator with persistence (Phase 41, RFC §6.7).
Package generator owns Harbor's in-runtime skill generator with persistence (Phase 41, RFC §6.7).
skills/importer
Package importer ships Harbor's Skills.md importer — the predecessor's gap-closer (RFC §6.7, brief 04 §4.7).
Package importer ships Harbor's Skills.md importer — the predecessor's gap-closer (RFC §6.7, brief 04 §4.7).
skills/tools
Package tools registers Harbor's planner-facing skill tools (`skill_search`, `skill_get`, `skill_list`) into the Phase 26 `tools.ToolCatalog`.
Package tools registers Harbor's planner-facing skill tools (`skill_search`, `skill_get`, `skill_list`) into the Phase 26 `tools.ToolCatalog`.
state
Package state owns Harbor's persistence floor: the single mandatory `StateStore` interface that every persistence-shaped subsystem (sessions, tasks, governance accumulators, planner checkpoints, memory snapshots, steering events) saves through.
Package state owns Harbor's persistence floor: the single mandatory `StateStore` interface that every persistence-shaped subsystem (sessions, tasks, governance accumulators, planner checkpoints, memory snapshots, steering events) saves through.
state/conformancetest
Package conformancetest exposes the canonical correctness suite every state.StateStore driver must pass.
Package conformancetest exposes the canonical correctness suite every state.StateStore driver must pass.
state/drivers/inmem
Package inmem is Harbor's V1 in-memory StateStore driver.
Package inmem is Harbor's V1 in-memory StateStore driver.
state/drivers/postgres
Package postgres is Harbor's V1 Postgres-backed StateStore driver.
Package postgres is Harbor's V1 Postgres-backed StateStore driver.
state/drivers/sqlite
Package sqlite is Harbor's SQLite-backed `state.StateStore` driver (Phase 15).
Package sqlite is Harbor's SQLite-backed `state.StateStore` driver (Phase 15).
tasks
Package tasks owns Harbor's unified task surface: the `TaskRegistry` interface every planner / runtime / steering caller uses to spawn, list, cancel, and prioritise both foreground runs and background tasks under one `TaskID` namespace.
Package tasks owns Harbor's unified task surface: the `TaskRegistry` interface every planner / runtime / steering caller uses to spawn, list, cancel, and prioritise both foreground runs and background tasks under one `TaskID` namespace.
tasks/conformancetest
Package conformancetest exposes the canonical correctness suite every tasks.TaskRegistry driver must pass.
Package conformancetest exposes the canonical correctness suite every tasks.TaskRegistry driver must pass.
tasks/drivers/inprocess
Package inprocess is Harbor's V1 in-process TaskRegistry driver.
Package inprocess is Harbor's V1 in-process TaskRegistry driver.
tasks/protocol
Package protocol implements the two `tasks.*` read methods the Console Tasks page (Phase 73d / D-123) consumes:
Package protocol implements the two `tasks.*` read methods the Console Tasks page (Phase 73d / D-123) consumes:
telemetry
Package telemetry owns Harbor's canonical structured logger.
Package telemetry owns Harbor's canonical structured logger.
telemetry/cardinalitylint
Package cardinalitylint is the Harbor metrics-cardinality enforcement checker (RFC §6.14; brief 06 "metrics cardinality footgun").
Package cardinalitylint is the Harbor metrics-cardinality enforcement checker (RFC §6.14; brief 06 "metrics cardinality footgun").
telemetry/drivers/noop
Package noop is the default telemetry.SpanExporter driver — it drops every span without error.
Package noop is the default telemetry.SpanExporter driver — it drops every span without error.
telemetry/drivers/otlp
Package otlp is the OTLP/gRPC telemetry.SpanExporter driver — it ships spans to an external OpenTelemetry collector (Jaeger, an OTLP collector, an observability vendor's endpoint).
Package otlp is the OTLP/gRPC telemetry.SpanExporter driver — it ships spans to an external OpenTelemetry collector (Jaeger, an OTLP collector, an observability vendor's endpoint).
telemetry/drivers/otlpmetric
Package otlpmetric is the OTLP/gRPC telemetry.MetricExporter driver — it ships metrics to an external OpenTelemetry collector (an OTLP collector, an observability vendor's endpoint).
Package otlpmetric is the OTLP/gRPC telemetry.MetricExporter driver — it ships metrics to an external OpenTelemetry collector (an OTLP collector, an observability vendor's endpoint).
telemetry/drivers/prometheus
Package prometheus is the built-in Prometheus telemetry.MetricExporter driver — it exposes Harbor's metrics on a pull /metrics endpoint in the Prometheus text exposition format.
Package prometheus is the built-in Prometheus telemetry.MetricExporter driver — it exposes Harbor's metrics on a pull /metrics endpoint in the Prometheus text exposition format.
telemetry/eventbus
Package eventbus is the adapter that connects Phase 04's telemetry.BusEmitter seam to Phase 05's events.EventBus.
Package eventbus is the adapter that connects Phase 04's telemetry.BusEmitter seam to Phase 05's events.EventBus.
tools
Package tools defines Harbor's unified tool catalog surface — the single planner-addressable concept that hides whether a tool is an in-process Go function, an HTTP endpoint, an MCP server, an A2A remote agent, or a Flow (a typed DAG of Nodes registered as one Tool — see internal/runtime/flow).
Package tools defines Harbor's unified tool catalog surface — the single planner-addressable concept that hides whether a tool is an in-process Go function, an HTTP endpoint, an MCP server, an A2A remote agent, or a Flow (a typed DAG of Nodes registered as one Tool — see internal/runtime/flow).
tools/approval
Package approval ships Harbor's tool-side synchronous approval-gate subsystem — the second consumer of the unified pause/resume primitive (Phase 50 / D-067), layered on the same Coordinator + bus + steering inbox seams Phase 30 (tool-side OAuth) built.
Package approval ships Harbor's tool-side synchronous approval-gate subsystem — the second consumer of the unified pause/resume primitive (Phase 50 / D-067), layered on the same Coordinator + bus + steering inbox seams Phase 30 (tool-side OAuth) built.
tools/auth
Package auth ships Harbor's tool-side OAuth subsystem — the TokenStore + OAuthProvider seam every Phase 27 (HTTP) / Phase 28 (MCP) / Phase 29 (A2A) southbound driver consults when a tool call needs a bearer token.
Package auth ships Harbor's tool-side OAuth subsystem — the TokenStore + OAuthProvider seam every Phase 27 (HTTP) / Phase 28 (MCP) / Phase 29 (A2A) southbound driver consults when a tool call needs a bearer token.
tools/auth/conformancetest
Package conformancetest exposes the shared TokenStore + Sealer conformance suite Phase 30 ships.
Package conformancetest exposes the shared TokenStore + Sealer conformance suite Phase 30 ships.
tools/auth/drivers/oauth2
Package oauth2 ships Harbor's V1 default OAuth provider driver (D-095, closes issue #116 and D-090's deferred construction gap).
Package oauth2 ships Harbor's V1 default OAuth provider driver (D-095, closes issue #116 and D-090's deferred construction gap).
tools/builtin
Package builtin ships the small set of opt-in tools that travel with the Harbor binary.
Package builtin ships the small set of opt-in tools that travel with the Harbor binary.
tools/catalog
Package catalog ships Harbor's operator-config-driven tool-catalog wiring (Phase 64a / D-090).
Package catalog ships Harbor's operator-config-driven tool-catalog wiring (Phase 64a / D-090).
tools/conformancetest
Package conformancetest is Harbor's shared conformance suite for any ToolCatalog implementation.
Package conformancetest is Harbor's shared conformance suite for any ToolCatalog implementation.
tools/drivers/a2a
Package a2a is Harbor's southbound A2A integration with the tool catalog (Phase 29).
Package a2a is Harbor's southbound A2A integration with the tool catalog (Phase 29).
tools/drivers/http
Package http is Harbor's HTTP transport driver for the unified tool catalog (Phase 27).
Package http is Harbor's HTTP transport driver for the unified tool catalog (Phase 27).
tools/drivers/inproc
Package inproc is Harbor's in-process tool driver.
Package inproc is Harbor's in-process tool driver.
tools/drivers/mcp
Package mcp is Harbor's Model Context Protocol (MCP) southbound driver.
Package mcp is Harbor's Model Context Protocol (MCP) southbound driver.
tools/protocol
Package protocol implements the seven `tools.*` Protocol methods the Console Tools page (Phase 73f / D-116) consumes:
Package protocol implements the seven `tools.*` Protocol methods the Console Tools page (Phase 73f / D-116) consumes:
test
benchmarks
Package benchmarks holds Harbor's V1 performance-benchmark suite (Phase 79).
Package benchmarks holds Harbor's V1 performance-benchmark suite (Phase 79).

Jump to

Keyboard shortcuts

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