Harbor

module
v1.20.0 Latest Latest
Warning

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

Go to latest
Published: Jul 24, 2026 License: Apache-2.0

README

Harbor

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

Docs · Quickstart · Embedding · Architecture · Contributing

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 two ways, and they are the same runtime:

  • A Go SDK. go get github.com/hurtener/Harbor and assemble the full agent stack inside your own program — no CLI, no HTTP listener, no daemon. The sdk/ facade is the supported public surface, and a standing CI gate compiles a scaffolded external agent on every commit so "importable from outside" stays true rather than aspirational.
  • A static binary. harbor drives the local dev loop, validation, scaffolding, and the Console. CGo-free, no message broker to stand up; harbor dev boots the whole runtime on your laptop in under a second.

External Go control-plane and UI clients use the curated sdk/protocolclient facade. It provides one concurrent-safe authenticated REST/SSE client with typed Protocol errors, identity-aware token resolution, immutable session clones, strict bounded decoding, and resumable event cursors. Static tokens are principal-bound, so a multi-session client supplies a TokenSource that resolves credentials for the requested identity rather than reusing one session's JWT. The stock inspect-events, inspect-runs, and inspect-topology commands use the same implementation.

The native conversation client attaches through that same authenticated Protocol surface: harbor tui --attach http://127.0.0.1:18080. It keeps one active session per terminal, reloads rotated JWT files before every request and SSE reconnect, and persists only bounded local drafts/view preferences. See the drive-the-harbor-tui skill.

Embed the runtime in your own program

import (
    _ "github.com/hurtener/Harbor/sdk/drivers/prod" // production driver registrations

    "github.com/hurtener/Harbor/sdk/assemble"
    "github.com/hurtener/Harbor/sdk/config"
)

cfg := config.Defaults()
cfg.LLM.Provider = "openrouter"
cfg.LLM.Model = "anthropic/claude-sonnet-4"
cfg.LLM.APIKey = "env.OPENROUTER_API_KEY" // env-var indirection — never inline a key

if err := cfg.ValidateCore(); err != nil {
    return fmt.Errorf("config: %w", err) // fail loud before anything boots
}

stack, err := assemble.Assemble(ctx, cfg, assemble.Options{})
if err != nil {
    return fmt.Errorf("assemble: %w", err)
}
defer stack.Close(ctx)

One call composes the dependency-ordered stack — stores, event bus, LLM client, memory, skills, tasks, tool catalog, sessions, pause coordinator, planner, run loop — with reverse-order closers and partial-failure cleanup. Register your own tools via assemble.Options.PreRegisterTools, then turn a goal plus the (tenant, user, session) identity into an answer envelope in one blocking call with stack.RunOnce (add WithStream for live token / tool / step events on the same call). Want a typed answer instead of a string? Pass WithOutputSchema for a schema-validated answer_payload, or assemble.RunTyped[T](ctx, stack, goal, id) to get the answer unmarshaled straight into your Go type. The complete worked path is the Embed Harbor headless recipe; every snippet in it is executed by an integration test, so it cannot drift from the real API.

Five minutes to a working agent

go install github.com/hurtener/Harbor/cmd/harbor@latest

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

The operator skills in docs/skills/INDEX.md walk this path step by step — scaffold-a-harbor-agentrun-the-dev-loopdrive-the-playground is the first-five-minutes chain.

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 paused run survives a process restart — the pause checkpoints its trajectory, and a max-park sweeper reaps what nobody resumes. Pause/resume serialization fails loudly (ErrUnserializable) rather than silently dropping context.
  • Steerable. Cancel, redirect, inject a message, pause, resume — all routed through one primitive. Human-in-the-loop approval, tool-side OAuth, and operator pause are the same mechanism, not three reinventions.
  • 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. Identity is mandatory and the runtime fails closed — there is no single-tenant mode to "upgrade from."
  • Operationally honest. Per-tenant governance ceilings (cost, rate, max-tokens) enforce rather than advise. Telemetry passes through a mandatory redactor — raw tool arguments never reach a log. Heavy content is artifact-stubbed before it can leak into an LLM context window.

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:

        your Go program                       the harbor binary
   ┌─────────────────────────┐           ┌─────────────────────────┐
   │ sdk/assemble · sdk/...  │           │ harbor dev · scaffold   │
   └───────────┬─────────────┘           └───────────┬─────────────┘
               ▼                                     ▼
   ┌─────────────────────────────────────────────────────────────┐
   │  Harbor Runtime — headless orchestration kernel             │
   │  tasks · planner runtime · tools · memory · sessions        │
   │  events · skills · artifacts · ONE pause/resume primitive   │
   │  every operation scoped by (tenant, user, session)          │
   └───────────────────────────┬─────────────────────────────────┘
                               │  canonical events · state · control
                               ▼
   ┌─────────────────────────────────────────────────────────────┐
   │  Harbor Protocol — versioned wire contract (SSE + REST)     │
   └──────────┬─────────────────────┬──────────────────┬─────────┘
              ▼                     ▼                  ▼
       Harbor Console        third-party client   harbor inspect-*
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, skill, 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. Reopening a long conversation is a first-class read: the state.history method serves a bounded, tail-first window of a session's durable event stream with a scroll-up cursor, so a client rehydrates the newest turn first instead of re-streaming the whole history. Its sibling events.list widens that read to a time range across sessions — the same flat rows, the same paging grammar — so a fleet observability view scrolls the raw event log back over a window (fleet-wide reads gated on a verified admin/console:fleet scope).

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. A tool that needs a downstream OAuth credential binds to a provider; alongside the interactive authorization-code flow, the tokenexchange provider pulls that credential from an external broker via an RFC-8693 exchange keyed on the verified identity triple — one central grant serves a whole fleet, and brokered tokens are never persisted. The provider's own client credential resolves from the process env by default, or — with credential_source: remote — is pulled from a coordinator endpoint at first need, so a credential minted after boot reaches a running runtime with zero touch and never enters its environment.

Using Harbor

The fastest path is the four-step CLI flow above: harbor init drops a tiered, commented harbor.yaml plus companion docs; 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 importing the sdk/ facade, a harbortest-driven test). Add --with-server and the scaffold also emits a cmd/<name>/main.go that serves the Protocol from your own binary via the sdk/server facade — a scaffolded agent with compiled in-process Go tools then reaches wire parity with the stock harbor serve (production-only posture; the local-dev loop is harbor token keygenidentity.jwks_fileharbor token mint). From there:

  • harbor dev — boots the local Runtime + Protocol server, mints an ephemeral dev token, serves until you Ctrl-C.
  • harbor serve — the production sibling of harbor dev: boots the headless Runtime + Protocol surface behind a JWKS-backed JWT verifier (your IdP's signing keys, via identity.jwks_url / jwks_file), mints no token, embeds no Console. See examples/serve.yaml.
  • 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 skill import <path> / harbor skill rm <name> — ingest a Skills.md playbook into the runtime skill catalog (the same store harbor dev serves) or remove one by name.
  • 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, embedding the runtime headless, steering and resuming a run, observing an embedded runtime — 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 parameter vocabulary (event buses, identities, tool catalogs, event types) is constructed through the sdk/ aliases (sdk/events, sdk/audit, sdk/identity, sdk/tools), so the full surface works externally — the preflight gate runs an external-module probe against it. The godoc documents the surface and harbortest/agent_test.go is the worked example.

Documentation

The published docs site at https://hurtener.github.io/Harbor/ renders the operator skills, recipes, the Protocol adoption track (for third-party client authors), and the full reference set (configuration, RFC, glossary, decisions log) with navigation and search. It builds from the canonical files below — the repo stays the source of truth.

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/site/protocol/ The Protocol adoption track — build a third-party client against the wire: the executed quickstart, the generated method/event/error/type reference (drift-gated by make protocol-docs-gen-check), the five choreography guides (auth, streaming, task control, the pause model, versioning), the worked event-viewer client (~150 lines, stdlib-only, compile-gated), and the conformance-certification path.
docs/CONFIG.md Full operator-facing reference for every harbor.yaml knob.
docs/notes/productionization-playbook.md The audit-driven hardening process — how a working agent becomes a production one.
RFC-001-Harbor.md The design RFC — product intent and every architectural decision.
docs/glossary.md Harbor's vocabulary, one entry per term.
docs/decisions.md The append-only architectural decision log (D-001…).
docs/plans/README.md The master phase plan — how Harbor was built, phase by phase.
CHANGELOG.md Release history, Keep-a-Changelog format.

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 per platform with the version stamped at link time, SHA-256 checksums, 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-gen-protocol-docs command
Command harbor-gen-protocol-docs emits the four generated Protocol contract-reference pages (`methods.md` / `events.md` / `errors.md` / `types.md`) into docs/site/protocol/ from the canonical single sources the Runtime compiles from (RFC §5):
Command harbor-gen-protocol-docs emits the four generated Protocol contract-reference pages (`methods.md` / `events.md` / `errors.md` / `types.md`) into docs/site/protocol/ from the canonical single sources the Runtime compiles from (RFC §5):
harbor-mcptest-stdio command
harbor-mcptest-stdio is a minimal MCP stdio server used by the integration test.
harbor-mcptest-stdio is a minimal MCP stdio server used by the integration test.
harbor-protocol-ts-lockstep command
Command harbor-protocol-ts-lockstep emits the committed wire-surface manifest (web/console/src/lib/protocol/wire-manifest.gen.json) from the canonical Harbor Protocol single sources (RFC §5):
Command harbor-protocol-ts-lockstep emits the committed wire-surface manifest (web/console/src/lib/protocol/wire-manifest.gen.json) from the canonical Harbor Protocol single sources (RFC §5):
harbor-protocol-ts-types command
Command harbor-protocol-ts-types emits a vendorable, external-client TypeScript wire-type module from the canonical Harbor Protocol single sources (RFC §5):
Command harbor-protocol-ts-types emits a vendorable, external-client TypeScript wire-type module from the canonical Harbor Protocol single sources (RFC §5):
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.
embed-runonce command
Command embed-runonce is the worked example for the embed adopter path's one-call runner: assemble a headless Harbor stack, then run a goal with a single blocking Stack.RunOnce call and print the answer.
Command embed-runonce is the worked example for the embed adopter path's one-call runner: assemble a headless Harbor stack, then run a goal with a single blocking Stack.RunOnce call and print the answer.
protocol-clients/conformance-fork
Package conformancefork is the in-tree worked example for certifying a Protocol-server fork (or embedder assembly) against Harbor's conformance suite.
Package conformancefork is the in-tree worked example for certifying a Protocol-server fork (or embedder assembly) against Harbor's conformance suite.
protocol-clients/event-viewer command
Command event-viewer is the worked client from the Protocol adoption track's build-a-client guide (docs/site/protocol/build-a-client.md).
Command event-viewer is the worked client from the Protocol adoption track's build-a-client guide (docs/site/protocol/build-a-client.md).
protocol-clients/oidc-client-example command
Command oidc-client-example is a worked Harbor Protocol client that obtains a JWT from an OAuth2 / OIDC provider via the client-credentials grant and attaches it to a production `harbor serve` instance.
Command oidc-client-example is a worked Harbor Protocol client that obtains a JWT from an OAuth2 / OIDC provider via the client-credentials grant and attaches it to a production `harbor serve` instance.
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
agentcfg
Package agentcfg owns Harbor's agent-config control plane: a durable, identity-scoped, versioned desired-state registry where every edit to an agent's configuration (skills membership now; tool/MCP exposure and prompt layers as later consumers extend the envelope) is an immutable, content-addressed revision.
Package agentcfg owns Harbor's agent-config control plane: a durable, identity-scoped, versioned desired-state registry where every edit to an agent's configuration (skills membership now; tool/MCP exposure and prompt layers as later consumers extend the envelope) is an immutable, content-addressed revision.
agentcfg/conformance
Package conformance is the shared agentcfg.Registry driver conformance suite: a single set of behaviour assertions every driver must pass, so a future driver inherits the contract verbatim (the §11 conformance-suite pattern).
Package conformance is the shared agentcfg.Registry driver conformance suite: a single set of behaviour assertions every driver must pass, so a future driver inherits the contract verbatim (the §11 conformance-suite pattern).
agentcfg/drivers/statestore
Package statestore implements the StateStore-backed agentcfg Registry driver — the default driver for the agent-config control plane.
Package statestore implements the StateStore-backed agentcfg Registry driver — the default driver for the agent-config control plane.
agentcfg/sessionoverlay
Package sessionoverlay owns the SESSION-scoped safe-subset overlay of the agent-config control plane: the lower tier of the authorization matrix.
Package sessionoverlay owns the SESSION-scoped safe-subset overlay of the agent-config control plane: the lower tier of the authorization matrix.
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; 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; 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.
Package sqlite is Harbor's SQLite-backed `artifacts.ArtifactStore` driver.
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.
Package devdraft implements the `harbor dev` draft-save scaffolding surface.
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/durable
Package durable is Harbor's StateStore-backed MessageBus driver.
Package durable is Harbor's StateStore-backed MessageBus 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`.
drivers/prod
Package prod is the production driver aggregator — the single sanctioned home of Harbor's driver blank-import block (AGENTS.md §4.4).
Package prod is the production driver aggregator — the single sanctioned home of Harbor's driver blank-import block (AGENTS.md §4.4).
embeddings
Package embeddings owns Harbor's embedding client — the seam that turns text into vectors (RFC §6.5).
Package embeddings owns Harbor's embedding client — the seam that turns text into vectors (RFC §6.5).
embeddings/drivers/bifrost
Package bifrost is Harbor's production `embeddings.Embedder` driver, wired to the bifrost provider gateway's embedding surface.
Package bifrost is Harbor's production `embeddings.Embedder` driver, wired to the bifrost provider gateway's embedding surface.
embeddings/embeddingstest
Package embeddingstest provides a deterministic, test-grade `embeddings.Embedder` for conformance suites and integration tests that need meaningful similarity without provider traffic.
Package embeddingstest provides a deterministic, test-grade `embeddings.Embedder` for conformance suites and integration tests that need meaningful similarity without provider traffic.
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/conformancetest
Package conformancetest exposes the canonical correctness suite every `events.EventBus` driver must pass.
Package conformancetest exposes the canonical correctness suite every `events.EventBus` driver must pass.
events/drivers/durable
Package durable is Harbor's StateStore-backed durable event log driver (RFC §6.13).
Package durable is Harbor's StateStore-backed durable event log driver (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 ( — RFC §6.5).
Package corrections is Harbor's provider correction layer ( — RFC §6.5).
llm/credsource
Package credsource is the inference-plane credential-source seam: it answers WHERE a runtime's LLM PROVIDER API KEY comes from — the process environment (boot config, the historical default) or a coordinator-served broker the runtime PULLS from at connect + refresh.
Package credsource is the inference-plane credential-source seam: it answers WHERE a runtime's LLM PROVIDER API KEY comes from — the process environment (boot config, the historical default) or a coordinator-served broker the runtime PULLS from at connect + refresh.
llm/credsource/inferencebrokertest
Package inferencebrokertest ships the committed REFERENCE implementation of the inference-plane credential-pull contract: an httptest server that serves an LLM provider's API key to the broker-pull [InferenceKeySource].
Package inferencebrokertest ships the committed REFERENCE implementation of the inference-plane credential-pull contract: an httptest server that serves an LLM provider's API key to the broker-pull [InferenceKeySource].
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 (RFC §6.5).
Package output is Harbor's structured-output strategy + downgrade chain (RFC §6.5).
llm/retry
Package retry is Harbor's retry-with-feedback wrapper ( RFC §6.5).
Package retry is Harbor's retry-with-feedback wrapper ( RFC §6.5).
llm/summarizer
Package summarizer is the home of Harbor's production LLM-backed summarisation: the memory-subsystem `memory.Summarizer` and the planner-trajectory `planner.Summariser`.
Package summarizer is the home of Harbor's production LLM-backed summarisation: the memory-subsystem `memory.Summarizer` and the planner-trajectory `planner.Summariser`.
mcpconsole
Package mcpconsole wires the MCP-Connections Protocol surface to its runtime-side dependencies — the MCP driver registry and the tool-side OAuth provider.
Package mcpconsole wires the MCP-Connections Protocol surface to its runtime-side dependencies — the MCP driver registry and the 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.
Package postgres is Harbor's Postgres-backed `memory.MemoryStore` driver.
memory/drivers/sqlite
Package sqlite is Harbor's SQLite-backed `memory.MemoryStore` driver.
Package sqlite is Harbor's SQLite-backed `memory.MemoryStore` driver.
memory/protocol
Package protocol — additions: the strategy-trace read projection + the admin-gated mutation pair (`memory.put` / `memory.delete`).
Package protocol — additions: the strategy-trace read projection + the admin-gated mutation pair (`memory.put` / `memory.delete`).
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.
persistence/sqlmigrate
Package sqlmigrate is the shared forward-only SQL migration runner for Harbor's SQLite and Postgres persistence drivers.
Package sqlmigrate is the shared forward-only SQL migration runner for Harbor's SQLite and Postgres persistence drivers.
planner
Attachment disposition policy.
Attachment disposition policy.
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 (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 (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 (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 (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).
Package repair ships Harbor's reusable salvage / schema-repair / graceful-failure / multi-action-salvage ladder for planner steps (RFC §6.2).
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/adminwrite
Package adminwrite holds the ONE fail-closed admin-plane write+audit posture shared by every admin-scoped Protocol write that must not leave an un-auditable mutation observably applied (CLAUDE.md §5, §7 rule 6).
Package adminwrite holds the ONE fail-closed admin-plane write+audit posture shared by every admin-scoped Protocol write that must not leave an un-auditable mutation observably applied (CLAUDE.md §5, §7 rule 6).
protocol/auth
Package auth is the Harbor Protocol's JWT validation surface — the transport-edge cryptographic identity check that turns the 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 transport-edge cryptographic identity check that turns the wire transports' trust-based identity carriers into verified ones (RFC §5.5: "JWT, asymmetric algorithms only ...
protocol/client
Package client provides the authenticated REST/SSE Harbor Protocol client.
Package client provides the authenticated REST/SSE Harbor Protocol client.
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 detail block).
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 detail block).
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/projectioncheck
Package projectioncheck is the registry-gated projection-completeness gate — the mechanical close of the silent-absence class the runtime's read surfaces kept re-introducing (a read surface declares a typed, wire-visible field, ships a facet / sort / aggregate over it, and never populates it, so the operation returns FALSE ABSENCE on a fleet full of matching data).
Package projectioncheck is the registry-gated projection-completeness gate — the mechanical close of the silent-absence class the runtime's read surfaces kept re-introducing (a read surface declares a typed, wire-visible field, ships a facet / sort / aggregate over it, and never populates it, so the operation returns FALSE ABSENCE on a fleet full of matching data).
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 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 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 security primitive that unlocks the 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 security primitive that unlocks the 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 — addition: the admin-scoped `agent_config.*` agent-config control-plane HTTP handler.
Package stream — addition: the admin-scoped `agent_config.*` agent-config control-plane 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).
protocol/wiresurface
Package wiresurface computes the canonical Harbor Protocol wire-surface digest: a coarse, opaque, stable name-level fingerprint of the surface a Protocol client binds to.
Package wiresurface computes the canonical Harbor Protocol wire-surface digest: a coarse, opaque, stable name-level fingerprint of the surface a Protocol client binds to.
runtime/agentcfg/projection
Package projection holds the run-start agent-config projection shared by every run-loop driver (the production dev driver and the harbortest devstack twin) and exercised directly by the control-plane integration test.
Package projection holds the run-start agent-config projection shared by every run-loop driver (the production dev driver and the harbortest devstack twin) and exercised directly by the control-plane integration test.
runtime/agentcfg/protocol
Package protocol implements the admin-scoped `agent_config.*` Protocol methods the Console agent-config control plane consumes:
Package protocol implements the admin-scoped `agent_config.*` Protocol methods the Console agent-config control plane consumes:
runtime/assemble
Package assemble is Harbor's assembly entry point: the ONE exported, error-returning config→stack fan-out that turns a validated *config.Config into a running runtime stack.
Package assemble is Harbor's assembly entry point: the ONE exported, error-returning config→stack fan-out that turns a validated *config.Config into a running runtime stack.
runtime/concurrency
Package concurrency ships Harbor's runtime concurrency primitives — of the runtime kernel chain (RFC §6.1).
Package concurrency ships Harbor's runtime concurrency primitives — of the runtime kernel chain (RFC §6.1).
runtime/dispatch
Package dispatch is the runtime's production tool-dispatch concrete — the one full `steering.ToolExecutor` implementation ( originally, as the dev binary's executor).
Package dispatch is the runtime's production tool-dispatch concrete — the one full `steering.ToolExecutor` implementation ( originally, as the dev binary's executor).
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): 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): 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.
Package protocol implements the runtime side of the Console Flows page.
runtime/governance/protocol
Package protocol implements the admin-scoped `governance.*` tenant-default override Protocol methods the Console control plane consumes:
Package protocol implements the admin-scoped `governance.*` tenant-default override Protocol methods the Console control plane consumes:
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).
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).
runtime/parallel
Package parallel ships Harbor's runtime parallel-call executor — the consumer of planner.CallParallel Decisions (RFC §6.2).
Package parallel ships Harbor's runtime parallel-call executor — the consumer of planner.CallParallel Decisions (RFC §6.2).
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).
Package registry owns Harbor's Agent Registry — the in-process, per-runtime-instance subsystem that owns the *registration identity* of agents (RFC §6.16).
runtime/registry/protocol
Package protocol implements the eight `agents.*` Protocol methods the Console Agents page consumes:
Package protocol implements the eight `agents.*` Protocol methods the Console Agents page consumes:
runtime/routers
Package routers ships Harbor's runtime routing surface — the of the runtime kernel chain (RFC §6.1).
Package routers ships Harbor's runtime routing surface — the of the runtime kernel chain (RFC §6.1).
runtime/runctx
Input-artifact disposition observability.
Input-artifact disposition observability.
runtime/runs/protocol
Package protocol implements the `runs.set_overrides` Protocol method the Console Playground page consumes.
Package protocol implements the `runs.set_overrides` Protocol method the Console Playground page consumes.
runtime/serve
Package serve is the importable serve band: the config→listener composition that turns a loaded configuration into a running Harbor Protocol server.
Package serve is the importable serve band: the config→listener composition that turns a loaded configuration into a running Harbor Protocol server.
runtime/serve/external
Package external is the production-only entry point behind the public sdk/server facade: it turns a validated configuration into a running Harbor Protocol server that an external Go binary can host, with its compiled in-process tools wrapped at the pre-policy catalog seam.
Package external is the production-only entry point behind the public sdk/server facade: it turns a validated configuration into a running Harbor Protocol server that an external Go binary can host, with its compiled in-process tools wrapped at the pre-policy catalog seam.
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).
Package steering ships Harbor's per-run steering inbox + the nine-event control taxonomy + the Protocol-edge validation / sanitisation pass (RFC §6.3).
search
Package search owns the Harbor 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 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 `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.
Package artifacts implements the `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.
search/events
Package events implements the `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.
Package events implements the `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.
search/sessions
Package sessions implements the `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.
Package sessions implements the `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.
search/tasks
Package tasks implements the `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.
Package tasks implements the `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.
server
approval_authorizer.go — the Protocol-side resolve authorizer.
approval_authorizer.go — the Protocol-side resolve authorizer.
sessions
Package sessions owns Harbor's session-lifecycle subsystem.
Package sessions owns Harbor's session-lifecycle subsystem.
sessions/protocol
Package protocol implements the `sessions.*` Protocol methods the Console Sessions page consumes:
Package protocol implements the `sessions.*` Protocol methods the Console Sessions page 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) and the virtual directory (internal/skills).
Package capfilter holds the primitive capability-filter and tool-name-scrub logic shared by the skills planner tools (internal/skills/tools) and the virtual directory (internal/skills).
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.
Package localdb is Harbor's SQLite-backed `skills.SkillStore` driver.
skills/drivers/postgres
Package postgres is Harbor's Postgres-backed `skills.SkillStore` driver.
Package postgres is Harbor's Postgres-backed `skills.SkillStore` driver.
skills/generator
Package generator owns Harbor's in-runtime skill generator with persistence (RFC §6.7).
Package generator owns Harbor's in-runtime skill generator with persistence (RFC §6.7).
skills/importer
Package importer ships Harbor's Skills.md importer — the predecessor's gap-closer (RFC §6.7).
Package importer ships Harbor's Skills.md importer — the predecessor's gap-closer (RFC §6.7).
skills/tools
Package tools registers Harbor's planner-facing skill tools (`skill_search`, `skill_get`, `skill_list`) into the `tools.ToolCatalog`.
Package tools registers Harbor's planner-facing skill tools (`skill_search`, `skill_get`, `skill_list`) into the `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.
Package sqlite is Harbor's SQLite-backed `state.StateStore` driver.
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/durable
Package durable is Harbor's StateStore-backed TaskRegistry driver.
Package durable is Harbor's StateStore-backed TaskRegistry driver.
tasks/drivers/inprocess
Package inprocess is Harbor's default in-process TaskRegistry driver.
Package inprocess is Harbor's default in-process TaskRegistry driver.
tasks/engine
Package engine holds Harbor's shared TaskRegistry state machine: the task/group/patch lifecycle, idempotency dedup, cascade-cancel, group governance (seal/resolve/fail-fast), retain-turn waiters, and WatchGroup fan-out.
Package engine holds Harbor's shared TaskRegistry state machine: the task/group/patch lifecycle, idempotency dedup, cascade-cancel, group governance (seal/resolve/fail-fast), retain-turn waiters, and WatchGroup fan-out.
tasks/protocol
Package protocol implements the two `tasks.*` read methods the Console Tasks page consumes:
Package protocol implements the two `tasks.*` read methods the Console Tasks page 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; the "metrics cardinality footgun").
Package cardinalitylint is the Harbor metrics-cardinality enforcement checker (RFC §6.14; the "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 the telemetry.BusEmitter seam to the events.EventBus.
Package eventbus is the adapter that connects the telemetry.BusEmitter seam to the events.EventBus.
tools
agent_provenance.go — the ctx-carried acting-agent provenance seam.
agent_provenance.go — the ctx-carried acting-agent provenance seam.
tools/annotate
Package annotate assembles the production per-tool Annotator the Tools catalog projector reads OAuth / approval / metrics / content-stats / last-used / display-mode annotations through.
Package annotate assembles the production per-tool Annotator the Tools catalog projector reads OAuth / approval / metrics / content-stats / last-used / display-mode annotations through.
tools/approval
Package approval ships Harbor's tool-side synchronous approval-gate subsystem — the second consumer of the unified pause/resume primitive, layered on the same Coordinator + bus + steering inbox seams the tool-side OAuth work built.
Package approval ships Harbor's tool-side synchronous approval-gate subsystem — the second consumer of the unified pause/resume primitive, layered on the same Coordinator + bus + steering inbox seams the tool-side OAuth work built.
tools/auth
Package auth ships Harbor's tool-side OAuth subsystem — the TokenStore + OAuthProvider seam every HTTP / MCP / 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 HTTP / MCP / A2A southbound driver consults when a tool call needs a bearer token.
tools/auth/conformancetest
Package conformancetest exposes the shared TokenStore + Sealer conformance suite Harbor ships.
Package conformancetest exposes the shared TokenStore + Sealer conformance suite Harbor ships.
tools/auth/credsource
Package credsource is the §4.4 seam through which an OAuth provider's OWN client credential (`client_id` / `client_secret`) resolves.
Package credsource is the §4.4 seam through which an OAuth provider's OWN client credential (`client_id` / `client_secret`) resolves.
tools/auth/credsource/credsourcetest
Package credsourcetest ships the committed REFERENCE implementation of the coordinator credential-fetch contract: an httptest server that serves an OAuth provider's client credential to the `remote` credential source.
Package credsourcetest ships the committed REFERENCE implementation of the coordinator credential-fetch contract: an httptest server that serves an OAuth provider's client credential to the `remote` credential source.
tools/auth/credsource/drivers/env
Package env ships the default credential source: the OAuth provider's client credential is read from the process environment ONCE at boot.
Package env ships the default credential source: the OAuth provider's client credential is read from the process environment ONCE at boot.
tools/auth/credsource/drivers/remote
Package remote ships the coordinator-served credential source: the runtime PULLS an OAuth provider's client credential (`client_id` / `client_secret`) from an operator-configured endpoint at first need, authenticated by the runtime's own service token.
Package remote ships the coordinator-served credential source: the runtime PULLS an OAuth provider's client credential (`client_id` / `client_secret`) from an operator-configured endpoint at first need, authenticated by the runtime's own service token.
tools/auth/drivers/oauth2
Package oauth2 ships Harbor's V1 default OAuth provider driver (closes issue #116 and the deferred construction gap).
Package oauth2 ships Harbor's V1 default OAuth provider driver (closes issue #116 and the deferred construction gap).
tools/auth/drivers/tokenexchange
Package tokenexchange ships Harbor's pull-based, non-interactive external-credential acquisition strategy: a driver on the OAuth flow-strategy registry that obtains a downstream tool credential (a user's Microsoft 365 token, a Google Workspace token — foreign-IdP tokens used to call third-party tools) from an operator-configured external credential broker (a fleet orchestrator, an enterprise token vault, an STS) via an RFC-8693-shaped token exchange, instead of Harbor's interactive authorization-code flow.
Package tokenexchange ships Harbor's pull-based, non-interactive external-credential acquisition strategy: a driver on the OAuth flow-strategy registry that obtains a downstream tool credential (a user's Microsoft 365 token, a Google Workspace token — foreign-IdP tokens used to call third-party tools) from an operator-configured external credential broker (a fleet orchestrator, an enterprise token vault, an STS) via an RFC-8693-shaped token exchange, instead of Harbor's interactive authorization-code flow.
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.
Package catalog ships Harbor's operator-config-driven tool-catalog wiring.
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.
Package a2a is Harbor's southbound A2A integration with the tool catalog.
tools/drivers/http
Package http is Harbor's HTTP transport driver for the unified tool catalog.
Package http is Harbor's HTTP transport driver for the unified tool catalog.
tools/drivers/inproc
Package inproc is Harbor's in-process tool driver.
Package inproc is Harbor's in-process tool driver.
tools/drivers/mcp
attach.go — the exported boot-time MCP server attachment helper (absorbs cmd/harbor's attachDevMCPServer from INCLUDING the config→ToolPolicy projection that the devstack mirror had silently dropped).
attach.go — the exported boot-time MCP server attachment helper (absorbs cmd/harbor's attachDevMCPServer from INCLUDING the config→ToolPolicy projection that the devstack mirror had silently dropped).
tools/drivers/searchcache
Package searchcache is Harbor's SQLite FTS5-backed tool search cache.
Package searchcache is Harbor's SQLite FTS5-backed tool search cache.
tools/protocol
Package protocol implements the seven `tools.*` Protocol methods the Console Tools page consumes:
Package protocol implements the seven `tools.*` Protocol methods the Console Tools page consumes:
tools/schema
Package schema is Harbor's neutral Go-type -> JSON-Schema derivation home.
Package schema is Harbor's neutral Go-type -> JSON-Schema derivation home.
tui/app
Package app implements Harbor's deterministic terminal shell.
Package app implements Harbor's deterministic terminal shell.
tui/artifacts
Package artifacts derives safe terminal artifact metadata and preview posture.
Package artifacts derives safe terminal artifact metadata and preview posture.
tui/composer
Package composer implements the TUI's local editor-quality composer model.
Package composer implements the TUI's local editor-quality composer model.
tui/entry
Package entry is the shared TUI attach entry point consumed by both `harbor tui --attach` (cmd_tui.go) and the public `sdk/tui.Run` facade.
Package entry is the shared TUI attach entry point consumed by both `harbor tui --attach` (cmd_tui.go) and the public `sdk/tui.Run` facade.
tui/events
Package events derives retained/live event diagnostics from Protocol values.
Package events derives retained/live event diagnostics from Protocol values.
tui/interventions
Package interventions implements the PauseToken-correlated TUI intervention inbox.
Package interventions implements the PauseToken-correlated TUI intervention inbox.
tui/markdown
Package markdown renders a lenient, streaming-stable subset of Markdown to styled terminal lines using Harbor's semantic theme tokens.
Package markdown renders a lenient, streaming-stable subset of Markdown to styled terminal lines using Harbor's semantic theme tokens.
tui/posture
Package posture derives Runtime health and diagnostics from Protocol values.
Package posture derives Runtime health and diagnostics from Protocol values.
tui/projection
Package projection reduces Harbor Protocol snapshots and events into a rendering-independent conversation projection.
Package projection reduces Harbor Protocol snapshots and events into a rendering-independent conversation projection.
tui/renderers
Package renderers provides immutable safe renderer registries for TUI data.
Package renderers provides immutable safe renderer registries for TUI data.
tui/sessionpicker
Package sessionpicker implements generation-fenced session selection.
Package sessionpicker implements generation-fenced session selection.
tui/surface
Package surface defines honest loading and availability state for TUI views.
Package surface defines honest loading and availability state for TUI views.
tui/tasks
Package tasks derives terminal task inspection state from Protocol values.
Package tasks derives terminal task inspection state from Protocol values.
tui/tools
Package tools derives terminal tool inspection state from Protocol values.
Package tools derives terminal tool inspection state from Protocol values.
tui/ui
Package ui defines Harbor's terminal design tokens and geometry primitives.
Package ui defines Harbor's terminal design tokens and geometry primitives.
sdk
Package sdk is the root of Harbor's public SDK facade (RFC §3.6) — the curated, alias-based re-export tree that makes the runtime importable by external Go modules.
Package sdk is the root of Harbor's public SDK facade (RFC §3.6) — the curated, alias-based re-export tree that makes the runtime importable by external Go modules.
artifacts
Package artifacts is the public SDK facade over Harbor's internal/artifacts package — the content-addressed, identity-scoped artifact store and the by-reference heavy-content contract (RFC §3.6, §6.10).
Package artifacts is the public SDK facade over Harbor's internal/artifacts package — the content-addressed, identity-scoped artifact store and the by-reference heavy-content contract (RFC §3.6, §6.10).
assemble
Package assemble is the public SDK facade over Harbor's internal/runtime/assemble package — the ONE composition fan-out that turns a validated config into a running headless stack (RFC §3.6, §6.4).
Package assemble is the public SDK facade over Harbor's internal/runtime/assemble package — the ONE composition fan-out that turns a validated config into a running headless stack (RFC §3.6, §6.4).
audit
Package audit is the public SDK facade over Harbor's internal/audit package — the mandatory redaction seam every payload passes through before leaving the process (RFC §3.6).
Package audit is the public SDK facade over Harbor's internal/audit package — the mandatory redaction seam every payload passes through before leaving the process (RFC §3.6).
config
Package config is the public SDK facade over Harbor's internal/config package — the operator configuration schema, loader, defaults, and validation surface (RFC §3.6, §10).
Package config is the public SDK facade over Harbor's internal/config package — the operator configuration schema, loader, defaults, and validation surface (RFC §3.6, §10).
dispatch
Package dispatch is the public SDK facade over Harbor's internal/runtime/dispatch package — the production ToolExecutor that dispatches the planner's CallTool / CallParallel / SpawnTask / AwaitTask decisions against the catalog with the heavy-result→artifact promotion (RFC §3.6, §6.10).
Package dispatch is the public SDK facade over Harbor's internal/runtime/dispatch package — the production ToolExecutor that dispatches the planner's CallTool / CallParallel / SpawnTask / AwaitTask decisions against the catalog with the heavy-result→artifact promotion (RFC §3.6, §6.10).
drivers/prod
Package prod is the public SDK facade over Harbor's internal/drivers/prod package — the production driver aggregator (RFC §3.6).
Package prod is the public SDK facade over Harbor's internal/drivers/prod package — the production driver aggregator (RFC §3.6).
embeddings
Package embeddings is the public SDK facade over Harbor's internal/embeddings package — the embedding client that turns text into vectors (RFC §3.6, §6.5).
Package embeddings is the public SDK facade over Harbor's internal/embeddings package — the embedding client that turns text into vectors (RFC §3.6, §6.5).
events
Package events is the public SDK facade over Harbor's internal/events package — the typed event bus every subsystem publishes to and subscribes from (RFC §3.6, §6.13).
Package events is the public SDK facade over Harbor's internal/events package — the typed event bus every subsystem publishes to and subscribes from (RFC §3.6, §6.13).
governance
Package governance is the public SDK facade over Harbor's internal/governance package — per-identity cost ceilings, rate limits, and MaxTokens caps composed as an LLM-client wrapper (RFC §3.6, §6.15).
Package governance is the public SDK facade over Harbor's internal/governance package — per-identity cost ceilings, rate limits, and MaxTokens caps composed as an LLM-client wrapper (RFC §3.6, §6.15).
identity
Package identity is the public SDK facade over Harbor's internal/identity package — the load-bearing (tenant, user, session) isolation triple plus the per-run Quadruple (RFC §3.6, §4).
Package identity is the public SDK facade over Harbor's internal/identity package — the load-bearing (tenant, user, session) isolation triple plus the per-run Quadruple (RFC §3.6, §4).
llm
Package llm is the public SDK facade over Harbor's internal/llm package — the provider-corrected LLM client, the chat message vocabulary, and the artifact-stub content contract (RFC §3.6, §6.5).
Package llm is the public SDK facade over Harbor's internal/llm package — the provider-corrected LLM client, the chat message vocabulary, and the artifact-stub content contract (RFC §3.6, §6.5).
memory
Package memory is the public SDK facade over Harbor's internal/memory package — the session-scoped memory store, its strategies, and the LLM-context patch vocabulary (RFC §3.6, §6.6).
Package memory is the public SDK facade over Harbor's internal/memory package — the session-scoped memory store, its strategies, and the LLM-context patch vocabulary (RFC §3.6, §6.6).
planner
Package planner is the public SDK facade over Harbor's internal/planner package — the swappable Planner interface, the Decision sum, the RunContext view, the Trajectory record, and the driver registry external planner concretes register on (RFC §3.6, §6.2).
Package planner is the public SDK facade over Harbor's internal/planner package — the swappable Planner interface, the Decision sum, the RunContext view, the Trajectory record, and the driver registry external planner concretes register on (RFC §3.6, §6.2).
planner/deterministic
Package deterministic is the public SDK facade over Harbor's internal/planner/deterministic package — the decision-tree planner concrete that drives the same Runtime as the LLM-driven ReAct planner through the identical Planner seam (RFC §3.6, §6.2).
Package deterministic is the public SDK facade over Harbor's internal/planner/deterministic package — the decision-tree planner concrete that drives the same Runtime as the LLM-driven ReAct planner through the identical Planner seam (RFC §3.6, §6.2).
planner/react
Package react is the public SDK facade over Harbor's internal/planner/react package — the reference LLM-driven ReAct planner concrete (RFC §3.6, §6.2).
Package react is the public SDK facade over Harbor's internal/planner/react package — the reference LLM-driven ReAct planner concrete (RFC §3.6, §6.2).
protocolclient
Package protocolclient is the curated public facade for Harbor's authenticated Go Protocol client.
Package protocolclient is the curated public facade for Harbor's authenticated Go Protocol client.
runctx
Package runctx is the public SDK facade over Harbor's internal/runtime/runctx package — the RunContext-population projections a run-loop driver applies between "task spawned" and "planner.Next" (RFC §3.6, §6.2).
Package runctx is the public SDK facade over Harbor's internal/runtime/runctx package — the RunContext-population projections a run-loop driver applies between "task spawned" and "planner.Next" (RFC §3.6, §6.2).
server
Package server is the public SDK facade for serving the Harbor Protocol from your own Go binary — the external-serving on-ramp that makes an agent with compiled in-process tools reachable over the wire at parity with the stock harbor serve.
Package server is the public SDK facade for serving the Harbor Protocol from your own Go binary — the external-serving on-ramp that makes an agent with compiled in-process tools reachable over the wire at parity with the stock harbor serve.
skills
Package skills is the public SDK facade over Harbor's internal/skills package — the token-savvy skill store and the Directory view that projects ranked skills into planner context (RFC §3.6, §6.7).
Package skills is the public SDK facade over Harbor's internal/skills package — the token-savvy skill store and the Directory view that projects ranked skills into planner context (RFC §3.6, §6.7).
skills/generator
Package generator is the public SDK facade over Harbor's internal/skills/generator package — the in-runtime `skill_propose` tool that lets an agent persist a reusable skill from a successful trajectory (RFC §3.6, §6.7).
Package generator is the public SDK facade over Harbor's internal/skills/generator package — the in-runtime `skill_propose` tool that lets an agent persist a reusable skill from a successful trajectory (RFC §3.6, §6.7).
skills/importer
Package importer is the public SDK facade over Harbor's internal/skills/importer package — the Skills.md ingest path (RFC §3.6, §6.7).
Package importer is the public SDK facade over Harbor's internal/skills/importer package — the Skills.md ingest path (RFC §3.6, §6.7).
skills/tools
Package tools is the public SDK facade over Harbor's internal/skills/tools package — the planner-facing skill retrieval handlers (`skill_search` / `skill_get` / `skill_list`) with the capability filter, tool-name redaction, and token budgeter built in (RFC §3.6, §6.7).
Package tools is the public SDK facade over Harbor's internal/skills/tools package — the planner-facing skill retrieval handlers (`skill_search` / `skill_get` / `skill_list`) with the capability filter, tool-name redaction, and token budgeter built in (RFC §3.6, §6.7).
state
Package state is the public SDK facade over Harbor's internal/state package — the identity-scoped StateStore (RFC §3.6, §9).
Package state is the public SDK facade over Harbor's internal/state package — the identity-scoped StateStore (RFC §3.6, §9).
steering
Package steering is the public SDK facade over Harbor's internal/runtime/steering package — the run loop that drives a planner, the per-run control inbox/registry, and the steering taxonomy (RFC §3.6, §6.3).
Package steering is the public SDK facade over Harbor's internal/runtime/steering package — the run loop that drives a planner, the per-run control inbox/registry, and the steering taxonomy (RFC §3.6, §6.3).
tasks
Package tasks is the public SDK facade over Harbor's internal/tasks package — the unified foreground/background TaskRegistry, the spawn vocabulary, and the task-group join surface (RFC §3.6, §6.3).
Package tasks is the public SDK facade over Harbor's internal/tasks package — the unified foreground/background TaskRegistry, the spawn vocabulary, and the task-group join surface (RFC §3.6, §6.3).
telemetry
Package telemetry is the public SDK facade over Harbor's internal/telemetry package — the redactor-mandatory structured Logger, the bus→metrics bridge, and the bus→tracer bridge that derive Harbor's three signals from the one canonical event stream (RFC §3.6, §6.14).
Package telemetry is the public SDK facade over Harbor's internal/telemetry package — the redactor-mandatory structured Logger, the bus→metrics bridge, and the bus→tracer bridge that derive Harbor's three signals from the one canonical event stream (RFC §3.6, §6.14).
telemetry/eventbus
Package eventbus is the public SDK facade over Harbor's internal/telemetry/eventbus package — the production BusEmitter adapter that pairs Logger.Error calls with runtime.error events on the canonical bus (RFC §3.6, §6.14).
Package eventbus is the public SDK facade over Harbor's internal/telemetry/eventbus package — the production BusEmitter adapter that pairs Logger.Error calls with runtime.error events on the canonical bus (RFC §3.6, §6.14).
tools
Package tools is the public SDK facade over Harbor's internal/tools package — the transport-agnostic tool catalog, the descriptor/policy vocabulary, and the planner-facing catalog view (RFC §3.6, §6.10).
Package tools is the public SDK facade over Harbor's internal/tools package — the transport-agnostic tool catalog, the descriptor/policy vocabulary, and the planner-facing catalog view (RFC §3.6, §6.10).
tools/auth
Package auth is the public SDK facade over Harbor's internal/tools/auth package — the tool-side OAuth completion leg: a plain http.Handler that exchanges the provider redirect and resumes the parked pause (RFC §3.6, §6.3).
Package auth is the public SDK facade over Harbor's internal/tools/auth package — the tool-side OAuth completion leg: a plain http.Handler that exchanges the provider redirect and resumes the parked pause (RFC §3.6, §6.3).
tools/builtin
Package builtin is the public SDK facade over Harbor's internal/tools/builtin package — the runtime's built-in tool set (clock, text, artifact_fetch, tool/skill discovery, declarative actions) registered by name onto a catalog (RFC §3.6, §6.10).
Package builtin is the public SDK facade over Harbor's internal/tools/builtin package — the runtime's built-in tool set (clock, text, artifact_fetch, tool/skill discovery, declarative actions) registered by name onto a catalog (RFC §3.6, §6.10).
tools/inproc
Package inproc is the public SDK facade over Harbor's internal/tools/drivers/inproc package — the in-process tool driver that registers plain Go functions as Tools with reflection-derived schemas (RFC §3.6, §6.10).
Package inproc is the public SDK facade over Harbor's internal/tools/drivers/inproc package — the in-process tool driver that registers plain Go functions as Tools with reflection-derived schemas (RFC §3.6, §6.10).
tui
Package tui is the public SDK facade for attaching Harbor's native terminal client to a running Runtime.
Package tui is the public SDK facade for attaching Harbor's native terminal client to a running Runtime.
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