Download src/omega/event-model.ts from Darochin/openskynet: direct link, hf CLI and curl.
- Browser
- Download file 2.72 kB
-
https://huggingface.co/Darochin/openskynet/resolve/main/src/omega/event-model.ts
- Command line
-
hf download hf://Darochin/openskynet/src/omega/event-model.ts
-
curl -L -o event-model.ts https://huggingface.co/Darochin/openskynet/resolve/main/src/omega/event-model.ts
2.72 kB
| import type { | |
| OmegaSessionOutcomeSnapshot, | |
| OmegaSessionTimelineEntry, | |
| OmegaSessionValidationSnapshot, | |
| } from "./session-context.js"; | |
| import { interpretOmegaInput, type OmegaInteractionKind } from "./interaction-model.js"; | |
| const OMEGA_STATE_CONSTRAINT_LIMIT = 6; | |
| export type OmegaSessionSelfState = { | |
| activeGoal?: string; | |
| activeTargets: string[]; | |
| requiredKeys: string[]; | |
| lastInteractionKind?: OmegaInteractionKind; | |
| lastTask?: string; | |
| lastOutcomeStatus?: "ok" | "error" | "timeout"; | |
| lastErrorKind?: string; | |
| lastSuccessfulTask?: string; | |
| lastFailedTask?: string; | |
| learnedConstraints: string[]; | |
| updatedAt: number; | |
| }; | |
| function uniqueItems(values: string[]): string[] { | |
| return Array.from(new Set(values.map((value) => value.trim()).filter(Boolean))); | |
| } | |
| function constraintFromErrorKind(errorKind?: string): string[] { | |
| switch (errorKind) { | |
| case "invalid_structured_result": | |
| return ["return_exact_json_object"]; | |
| case "target_not_touched": | |
| return ["touch_required_targets"]; | |
| case "missing_target_writes": | |
| return ["touch_every_required_target"]; | |
| default: | |
| return []; | |
| } | |
| } | |
| export function deriveOmegaSessionSelfState(params: { | |
| priorState?: OmegaSessionSelfState; | |
| task: string; | |
| validation: OmegaSessionValidationSnapshot; | |
| outcome: OmegaSessionOutcomeSnapshot; | |
| timeline: OmegaSessionTimelineEntry[]; | |
| }): OmegaSessionSelfState { | |
| const prior = params.priorState; | |
| const interpretation = interpretOmegaInput({ | |
| task: params.task, | |
| validation: params.validation, | |
| timeline: params.timeline, | |
| }); | |
| const actionfulTurn = | |
| interpretation.hasActionRequest || params.validation.expectedPaths.length > 0; | |
| const activeGoal = actionfulTurn ? params.task : prior?.activeGoal; | |
| const activeTargets = | |
| params.validation.expectedPaths.length > 0 | |
| ? params.validation.expectedPaths | |
| : (prior?.activeTargets ?? []); | |
| const requiredKeys = | |
| params.validation.expectedKeys.length > 0 | |
| ? params.validation.expectedKeys | |
| : (prior?.requiredKeys ?? []); | |
| const learnedConstraints = uniqueItems([ | |
| ...(prior?.learnedConstraints ?? []), | |
| ...constraintFromErrorKind(params.outcome.errorKind), | |
| ]).slice(-OMEGA_STATE_CONSTRAINT_LIMIT); | |
| return { | |
| activeGoal, | |
| activeTargets, | |
| requiredKeys, | |
| lastInteractionKind: interpretation.kind, | |
| lastTask: params.task, | |
| lastOutcomeStatus: params.outcome.status, | |
| lastErrorKind: params.outcome.errorKind, | |
| lastSuccessfulTask: | |
| params.outcome.status === "ok" ? params.task : prior?.lastSuccessfulTask, | |
| lastFailedTask: | |
| params.outcome.status !== "ok" ? params.task : prior?.lastFailedTask, | |
| learnedConstraints, | |
| updatedAt: Date.now(), | |
| }; | |
| } | |