Visual for OK Operational State OK Operational Knowledge is Nova’s live knowledge base for current service state, facts, capabilities, and freshness. Overview Stores Agent model Agent info When it applies Failure rules MCP contract Agent Tools

OK

OK stands for Operational Knowledge. Nova uses operational knowledge for current service state: which service a tab belongs to, which visible facts are fresh enough, and which assumptions need a new observation before they can guide action.

OK is Nova’s live knowledge layer for running web services in browser tabs. It stores observations about the visible service state, then turns accepted observations into current facts with confidence, freshness, and conflict handling.

OK is different from PKS and ETM. PKS stores reusable website behavior. ETM stores task-shaped episodes and completion conditions. OK answers the immediate question: what appears true right now in this tab or service context?

Agents do not use OK as a manual notes store. Normal browser tool calls can refresh target and service state automatically. An agent uses OK observation only when an important visible state would otherwise be missed, such as login state, selected model, plan tier, page type, language, theme, or available service features.

In short

  • OK stores current service state, not long-term website playbooks.
  • A single observation call can report several structured claims from the same page snapshot.
  • Accepted claims become current facts; weak or contradictory claims may stay as observations or produce warnings.
  • Freshness matters: facts older than the OK hint window are refreshed before they guide state-sensitive work.
  • Unknown canonical core signals are rejected, while custom namespaced signals can extend the observation surface.
  • OK can support rule checks and task context, but it does not override current-page confirmation or user approvals.

What OK stores

OK keeps a compact state picture around the current browser target, detected service, and visible service facts.

  1. Target and service context OK can associate a browser target with a recognized web service, current URL, origin, route, and binding state.
  2. Observations An observation records what an agent or system signal noticed at a specific moment. Agent observations are submitted as structured claims.
  3. Facts A fact is the current accepted value for a signal in a target or service binding, such as login state, selected model, plan tier, page type, language, or theme.
  4. Freshness OK compares observation time with the current page context. Perception can return hints when facts are missing, older than the freshness window, or tied to a changed URL.
  5. Conflict handling When a new value contradicts the current fact, OK either keeps the existing fact, marks conflict, or supersedes it with stronger evidence.
  6. Derived capabilities Some service facts can become capabilities, for example whether a service appears authenticated or whether a feature appears available.

When this matters

OK belongs to tasks that depend on live website state: checking whether a user appears signed in, which model or plan is visible, whether a feature is available, whether a route changed after navigation, or whether the current state is too uncertain for a reliable next step.

Operational model for agents

For an agent, OK answers four questions: which service context is active, which visible claims can be reported, which facts are current enough, and which uncertainty must be resolved before acting?

Target and binding
The browser target and detected service context where an observation belongs. A fact from one target should not be silently reused for another target.
Signal key
A structured key that names a state signal. Canonical public keys use the core namespace; custom service-specific keys must still follow a namespace.path format.
Claim
One reported observation inside an OK call. A claim contains the signal key, the observed value, optional evidence, and certainty.
Fact
The current accepted value for a signal after OK has processed observations, confidence, supersedence, and conflicts.
Certainty
The agent’s confidence level for a claim. Certain claims are strong, likely is the default, and tentative claims are weak orientation.
Freshness
The age and page fit of a fact. Perception asks for a new observation when relevant facts are missing, old, or tied to a previous URL.
Capability
A usable state derived from facts, such as an authenticated service or visible feature availability.

How agents use OK information

For agents, OK is a live state surface. It tells the agent when to observe, how to report visible state, and when stored state is too old, weak, or conflicted to guide a state-sensitive action.

  1. Read the current page The agent uses nova.perceive or another read tool to inspect the visible page. Perception can include okHints when operational state needs attention.
  2. Check OK hints If okHints.shouldObserve is true, the agent reads missingOrStaleKeys, firstVisit, and urlChanged before deciding what to report.
  3. Report only visible state The agent calls nova.ok_observe with claims that are visible on the current page. It should not report passwords, tokens, hidden account data, or guesses.
  4. Let OK process the claims OK returns accepted, rejected, superseded, facts[], and optional warnings[] so the agent can see what happened.
  5. Use state as orientation Fresh facts can guide later choices, but current page observation and safety boundaries still decide whether an action is allowed.
  6. Refresh uncertain state If a fact is stale, tentative, conflicted, or tied to an old URL, the agent should re-observe before relying on it for login, account, model, billing, or feature-sensitive behavior.

When OK state applies

OK state is not permission to click. It is reliable orientation only when the current page still supports the fact and the fact state is strong enough for the next step.

Missing or first visit okHints.firstVisit=true
Meaning
OK has no current facts yet for the detected service context, or required keys are absent.
Evidence required
Perception returns okHints with missing keys or no current facts.
Agent behavior
Observe the visible page and submit a scoped nova.ok_observe call if the state matters.
May guide action
No.
Fresh fact factState: fresh|confirmed
Meaning
A current fact exists and has not been superseded or marked conflicted.
Evidence required
Current fact value, certainty level, recent observation timestamp, and matching page context.
Agent behavior
Use it as orientation, then confirm the visible page before sensitive or irreversible actions.
May guide action
Yes, as orientation.
Stale fact older than 5 min hint window
Meaning
The fact exists but is old enough that perception asks the agent to refresh it.
Evidence required
The key appears in okHints.missingOrStaleKeys or lastObservedAgoMs exceeds the freshness window.
Agent behavior
Re-read the page and report fresh visible state before using the fact.
May guide action
No for state-sensitive action.
URL changed okHints.urlChanged=true
Meaning
The current page URL differs from the URL stored with the target state.
Evidence required
Perception reports a URL change for the same target and service context.
Agent behavior
Refresh route-dependent facts. Do not transfer state from the previous route by assumption.
May guide action
No until refreshed.
Tentative claim certainty: tentative
Meaning
The agent saw a weak signal. Tentative claims are useful evidence but cannot override an existing contradictory fact.
Evidence required
Claim certainty is tentative or the visible signal is incomplete.
Agent behavior
Record it when useful, then gather stronger evidence before relying on it.
May guide action
No by itself.
Conflicted fact factState: conflicted
Meaning
A new observation contradicted the current fact but did not clearly replace it.
Evidence required
Fact state or warnings show contradiction, or the returned fact remains conflicted.
Agent behavior
Observe again, prefer current visible evidence, and avoid state-sensitive decisions until resolved.
May guide action
No.
Superseded fact superseded > 0
Meaning
A stronger fresh observation replaced an older value for the same signal.
Evidence required
The observe response increments superseded and returns the new facts[].state.
Agent behavior
Treat the newest fact as current, while still confirming visible page state before acting.
May guide action
Yes, after current confirmation.

Failure and guard conditions

These are the hard edges an agent or integration should expect from the OK observation contract.

Condition Observed signal Agent behavior
Unknown top-level argument Only targetId, perceptionId, claims, and _meta are accepted. Fix the request shape. Extra fields are rejected instead of being ignored.
Missing or empty claims The claims array is missing, not an array, or has no items. Submit at least one claim from the current page snapshot.
Too many claims More than 50 items in claims. Split the observation into smaller page-scoped batches.
Invalid signal key A key is longer than 128 characters, misses the namespace.path shape, or uses an unknown core.* name. Use a canonical core key or a valid custom namespace. Unknown core keys fail fast.
Invalid value The claim has no value or the raw JSON value exceeds 16384 characters. Report a compact state value, not a page dump.
Invalid certainty The certainty is not certain, likely, tentative or null. Use one of the supported certainty levels. Omit or null means likely.
Deprecated or weak signal The response includes warnings[] or a fact state such as observation_only or conflicted. Treat the observation as diagnostic evidence and gather stronger current-page proof.
Scope fact cap reached New facts may return a capped state such as scope_full when a scope has too many active custom facts. Stop adding low-value custom keys and keep only compact, task-relevant signals.

Agent interpretation example

The example shows OK as a current-state contract: perception asks for fresh state, the agent reports visible claims, and the result tells the agent which facts can be used as orientation.

Observation request

{
  "tool": "nova.ok_observe",
  "arguments": {
    "targetId": "active",
    "perceptionId": "perceive_7f3a",
    "claims": [
      {
        "signalKey": "core.login_state",
        "value": "logged_in",
        "certainty": "likely",
        "evidence": "Visible user menu is present."
      },
      {
        "signalKey": "core.plan.tier",
        "value": "pro",
        "certainty": "tentative",
        "evidence": "A Pro label is visible near the account menu."
      }
    ]
  }
}

Relevant response fields

{
  "structuredContent": {
    "ok": true,
    "accepted": 2,
    "rejected": 0,
    "superseded": 0,
    "facts": [
      {
        "key": "core.login_state",
        "value": "logged_in",
        "state": "fresh",
        "isNew": true
      }
    ],
    "warnings": null
  }
}

Agent interpretation

{
  "treatAs": "current service-state evidence",
  "mayUse": "fresh facts can guide model, login, page-type, or feature-sensitive choices",
  "beforeAction": "confirm the visible page still supports the fact",
  "onStaleOrConflict": "perceive again and submit a fresh OK observation"
}

MCP contract

This is the deterministic layer below the explanation. It lists OK fields that agents and integrators should treat as contract signals rather than free prose.

Execution rule: No OK fact may guide state-sensitive action without current-page confirmation.

Variable Type / values Default Effect
nova.ok_observe MCP tool available in OK-capable Nova sessions Pushes structured observations about current page state. One call represents one perception snapshot with one or more claims.
targetId string or null: tab ID, sandbox ID, active active when omitted or null Selects the target that receives the observation.
perceptionId string or null null Groups claims from the same perception or trace moment.
claims array, min 1, max 50 required Contains the structured operational claims submitted by the agent.
claims[].signalKey string, max 128, namespace.path required Names the signal. Canonical core keys must exist in the OK signal vocabulary; custom namespaces are accepted when formatted correctly.
claims[].value any JSON value, max 16384 raw chars required Stores the observed state value. Keep it compact and state-focused.
claims[].certainty certain | likely | tentative | null likely Maps to claim confidence: certain 0.95, likely 0.75, tentative 0.50. Tentative cannot supersede contradictory existing facts.
claims[].evidence string or null null Optional evidence note for what the agent visibly observed.
_meta object optional MCP metadata Accepted as MCP metadata; it is not a normal OK state claim.
accepted / rejected / superseded integer counters computed Shows how many claims were accepted, rejected, and how many older facts were replaced by fresher observations.
facts[].key / value / state / isNew string; JSON; string; boolean computed Summarizes accepted facts returned from the observation call. State can include fresh, confirmed, conflicted, observation_only, or scope_full.
warnings[] array or null null Warns about invalid format, deprecated signals, or uncertainty that should change agent behavior.
okHints object or null on perception responses null when no refresh is needed Prompts the agent to observe current operational state when facts are missing, stale, first-visit, or URL-changed.
okHints.shouldObserve boolean computed True when first visit, URL change, or missing/stale keys require fresh observation.
okHints.missingOrStaleKeys string[] [] Lists canonical signals that need a current observation.
okHints.lastObservedAgoMs integer milliseconds or null null when no previous observation exists Shows the age of the oldest relevant current fact.
okHints.serviceKey string or null detected from current URL Identifies the current service context for OK hints.
okHints.currentFacts.* valueJson, factState, certaintyLevel, lastObservedAt null when no facts exist Shows the fact summaries that OK already has for the service context.
okHints.firstVisit / urlChanged boolean flags computed Explain why the hint was returned even if some facts already exist.
core.* signal vocabulary core.login_state, core.model.active, core.model.family, core.model.routing_mode, core.models.available, core.plan.label, core.plan.tier, core.account.display_name, core.account.email, core.session.state, core.page.type, core.ui.language, core.ui.theme, core.subscription.active, core.feature.available canonical public keys These are the known core signals that agents can report as OK claims when the current page visibly supports them.
Agent Tools

MCP tools for agents. These variables and tool names are intended for agents and integrators. They are not normal user controls in the interface.

Variable Meaning
nova.perceive Understand the visible page
nova.ok_observe Report operational state
nova.memory_stats Review learning-memory statistics