Planned Integrations¶
This page catalogs integrations that are not production-ready: scaffolded
SDKs, stub applications, and adapter surfaces named in design.md that are
not implemented. For shipped integrations, see the dedicated reference
pages (Python SDK, REST API,
gRPC API, MCP Tools,
CLI, VSCode Tooling,
Rule Packs).
Each entry declares a Status of one of:
- Shipped — in-tree, tested, documented, and reachable from a release artifact.
- Partial — in-tree with working code but missing tests, packaging, or CI coverage.
- Planned — named in
design.mdwith no implementation in the source tree.
Go SDK — packages/fathom-go/¶
Status: Partial.
Location: packages/fathom-go/ — a hand-written REST client. The
package contents are client.go (180 lines), go.mod, and a Makefile;
no other Go files exist. go.mod declares module
github.com/KrakenNet/fathom-go at go 1.21.
What works today:
NewClient(baseURL, opts...)constructor atclient.go:39-48, with functional optionsWithBearerToken(client.go:25-27) andWithHTTPClient(client.go:31-33).- Four request/response pairs covering the REST surface:
Evaluate,AssertFact,Query,Retract(client.go:74-144). - Shared transport at
client.go:148-180: JSON marshal/unmarshal,Content-Type: application/json, optionalAuthorization: Bearer <token>header, and error surfacing on any non-2xx status with the server body embedded in the returned error.
What is missing:
- No tests. A directory listing of
packages/fathom-go/contains no*_test.gofiles; nothing is exercised by CI. - No gRPC client. Only REST is wired up.
protos/fathom.proto:12declaresgo_package = "github.com/KrakenNet/fathom-go/proto;fathomv1", but no generated bindings are checked in and noprotocstep runs in the repo. - No released module. Consumers must vendor the package from a local clone; nothing is published to a Go proxy.
How to use today: Clone the monorepo, go get against the local path
(or add a replace directive), and point the client at a running REST
server. For the current public API surface, see the generated reference
at Go SDK.
TypeScript SDK — packages/fathom-ts/¶
Status: Partial.
Location: packages/fathom-ts/ — published identity
@fathom-rules/sdk at 0.1.0 per package.json. Source lives in
src/client.ts (215 lines), src/errors.ts (77 lines), and
src/index.ts (26 lines). Vitest suites in test/client.test.ts and
test/errors.test.ts.
What works today: A hand-written FathomClient plus a typed error
hierarchy. Per design.md:571, the package ships at v0.1.0 with 19
vitest tests passing, and the typedoc reference is generated into
docs/reference/typescript-sdk/ by the docs npm script in
package.json:14.
What is missing:
- No OpenAPI-generated client.
package.json:12declares ageneratescript that shells out toscripts/generate.sh, which invokesnpx @hey-api/openapi-tsagainst../../openapi.jsonand writes intosrc/generated/. Neitheropenapi.jsonnorsrc/generated/is in the tree — the generator has never been run and committed. - No published npm release.
repository.urlinpackage.jsonpoints at the monorepo; nodist/is published.
How to use today: Clone the monorepo, pnpm install in
packages/fathom-ts/, and import from the local workspace path. The
generated API reference lives at
TypeScript SDK.
Visual Rule Editor — packages/fathom-editor/¶
Status: Partial (stub).
Location: packages/fathom-editor/ — package identity @fathom/editor
at 0.1.0 with "private": true set in package.json:4. Dependencies:
React ^19.1.0, Vite ^7.1.0; dev toolchain TypeScript ^5.9.0.
What exists: Component stubs under src/components/: RuleTree.tsx,
ConditionBuilder.tsx, TemplateBrowser.tsx, ClipsPreview.tsx,
TestRunner.tsx, YamlEditor.tsx. Entry at src/App.tsx, Vite bootstrap
at src/main.tsx, and an src/api/ directory for backend glue.
What is missing:
- No tests.
package.jsondeclares notestscript and no test runner is installed. - No backend wiring. Per
design.md:572, "components exist but not production-ready." The stubs do not round-trip against a live Fathom REST server. - Not publishable. The package is marked
private: trueand has no build artifact consumers.
How to use today: pnpm install && pnpm dev inside
packages/fathom-editor/ runs the Vite dev server. This is a development
scaffold, not a supported end-user artifact.
Framework adapters¶
design.md:490-495 lists four framework adapters. All four are now shipped.
| Adapter | Status | Location |
|---|---|---|
| LangChain callback handler | Shipped | src/fathom/integrations/langchain.py |
| CrewAI before-tool-call hook | Shipped | src/fathom/integrations/crewai.py |
| OpenAI Agents SDK tool guardrail | Shipped | src/fathom/integrations/openai_agents.py |
| Google ADK before-tool callback | Shipped | src/fathom/integrations/google_adk.py |
Each adapter follows the same pattern: intercept tool calls, assert a
tool_request fact into Fathom, evaluate policy rules, and raise
PolicyViolation (or return an error dict for ADK) on deny/escalate.
Install via pip install fathom-rules[langchain], fathom-rules[crewai],
fathom-rules[openai-agents], or fathom-rules[google-adk].
Known blockers¶
- Proto ↔
go.modpath alignment — previously flagged asREVIEW.mdM2 (proto declaredgithub.com/KrakenNet/fathom/gen/go/fathom/v1whilego.moddeclaredgithub.com/KrakenNet/fathom-go, which would have brokenprotocoutput). Resolved at HEAD:protos/fathom.proto:12now declaresgo_package = "github.com/KrakenNet/fathom-go/proto;fathomv1", matchingpackages/fathom-go/go.mod:1. Generated bindings still need to be produced viaprotocand checked intopackages/fathom-go/proto/before a gRPC client can be built. - No CI for the Go, TypeScript, or editor packages. The Python test
suite (1361 tests per
design.md:544) is the only suite wired into CI; every "works today" claim above reduces to "works when run locally against a developer's machine."
See also¶
- Python SDK — the reference implementation; all shipped adapters (including LangChain) live here.
- REST API — the wire protocol the Go and TypeScript SDKs target.
- gRPC API — the proto surface the Go SDK does not yet implement.
- Go SDK — gomarkdoc output for the REST client described above.
- TypeScript SDK — typedoc output for
@fathom-rules/sdk.