Goal
Define the Agent Machine contract for a local Neuronpedia-compatible steering endpoint that Noetica can call without changing its client adapter.
Client-side contract references
This issue must align to the existing Noetica client shape rather than defining a parallel endpoint.
Reference Noetica files:
SocioProphet/Noetica:lib/providers/neuronpedia.ts
SocioProphet/Noetica:app/api/steer/route.ts
SocioProphet/Noetica:docs/adapter-contracts.md
Noetica PR Harden Agent Registry grant request scope #12 : Make Neuronpedia base URL configurable
Noetica endpoint resolution after PR #12 :
NEURONPEDIA_BASE_URL=https://www.neuronpedia.org resolves to hosted /api/steer.
NEURONPEDIA_BASE_URL=http://localhost:<port> resolves to local /steer.
Agent Machine should satisfy the localhost form.
Scope
Define expected POST /steer request and response shape.
Match Noetica's current payload shape:
prompt
model_id
steering.feature_id
steering.layer
steering.strength
optional steering.preset
Define response shape compatible with Noetica SteeringResult:
status: applied | not_configured | noop
baseline
steered
diff_summary
feature_id
layer
strength
Specify whether the endpoint is native Agent Machine, an inference-provider adapter, or an AgentPod workload.
Specify health/readiness endpoint expectations.
Specify how unavailable sourcesets return status: not_configured without crashing.
Keep credentials and model weights out of config.
Acceptance criteria
Contract or documentation exists for the local /steer endpoint.
Contract explicitly references Noetica's client-side adapter and docs.
Request payload includes prompt, model id, and steering config fields matching Noetica.
Response payload supports Noetica's status: applied | not_configured | noop semantics.
Contract states that MODEL_SOURCESET=gpt2-small.res-jb readiness is handled by Issue Register local steering sourcesets for GPT-2 Small and Gemma #33 , not assumed here.
No live provider implementation is required in this issue.
Non-goals
Goal
Define the Agent Machine contract for a local Neuronpedia-compatible steering endpoint that Noetica can call without changing its client adapter.
Client-side contract references
This issue must align to the existing Noetica client shape rather than defining a parallel endpoint.
Reference Noetica files:
SocioProphet/Noetica:lib/providers/neuronpedia.tsSocioProphet/Noetica:app/api/steer/route.tsSocioProphet/Noetica:docs/adapter-contracts.mdMake Neuronpedia base URL configurableNoetica endpoint resolution after PR #12:
NEURONPEDIA_BASE_URL=https://www.neuronpedia.orgresolves to hosted/api/steer.NEURONPEDIA_BASE_URL=http://localhost:<port>resolves to local/steer.Agent Machine should satisfy the localhost form.
Scope
POST /steerrequest and response shape.promptmodel_idsteering.feature_idsteering.layersteering.strengthsteering.presetSteeringResult:status: applied | not_configured | noopbaselinesteereddiff_summaryfeature_idlayerstrengthstatus: not_configuredwithout crashing.Acceptance criteria
/steerendpoint.status: applied | not_configured | noopsemantics.MODEL_SOURCESET=gpt2-small.res-jbreadiness is handled by Issue Register local steering sourcesets for GPT-2 Small and Gemma #33, not assumed here.Non-goals