Proposal for OVOS-CONTEXT-1, the intent context specification.
Problem
Adapt's per-frame context manager provides declarative intent gating and slot pre-population, but it is engine-specific. OVOS needs an engine-agnostic version carried in the session.
Proposal
session.intent_context — a session-scoped flat map with entries {value, expires_at, turns_remaining}:
- Key-encoded scope: bare key = shared;
<skill_id>:<key> = private
- Two-phase decay: pre-match prune (drop expired), post-match decrement of
turns_remaining
- Gates:
requires_context (positive) and excludes_context (negative) on intents
- Context-supplied captures: a gate key naming an intent slot is filled from the live entry when the utterance does not supply one
- Bus surface:
ovos.context.set / .unset / .clear / .list; orchestrator computes stored key from context.skill_id
- Direct-mutation pathway: between match-accept and dispatch-emit
PR
PR #18
Proposal for OVOS-CONTEXT-1, the intent context specification.
Problem
Adapt's per-frame context manager provides declarative intent gating and slot pre-population, but it is engine-specific. OVOS needs an engine-agnostic version carried in the session.
Proposal
session.intent_context— a session-scoped flat map with entries{value, expires_at, turns_remaining}:<skill_id>:<key>= privateturns_remainingrequires_context(positive) andexcludes_context(negative) on intentsovos.context.set/.unset/.clear/.list; orchestrator computes stored key fromcontext.skill_idPR
PR #18