validateContextFragment
CORE · function · Runtime value
Validate one fragment and return the text it contributes to the model input.
Import
ts
import { validateContextFragment } from '@jangts/agent-core/context';js
import { validateContextFragment } from '@jangts/agent-core/context';Other public entry points:@jangts/agent-core, @jangts/agent-core/types, @jangts/agent-core/context.
Definition
Call
ts
validateContextFragment(fragment: ContextFragment, ids?: Set<string>, checkBudget?: boolean): stringValidate one fragment and return the text it contributes to the model input.
| Parameter | Type | Passing | Description |
|---|---|---|---|
fragment | ContextFragment | Required | — |
ids | Set<string> | Optional | — |
checkBudget | boolean | Optional | — |
Fields of fragment
| Field | Type | Required | Description |
|---|---|---|---|
id | string | Required | Unique, stable id matching ^[a-z][a-zA-Z0-9:._-]*$; duplicates are rejected. |
sourceId | string | Required | Owning source (module or registration) used to explain where the content came from. |
trust | ContextTrust | Required | Producer trust level. user and tool content cannot become a system message. |
lifetime | ContextLifetime | Required | Declared validity window of this content. |
maxChars | number | Required | Hard upper bound in JSON characters; must be a positive safe integer. |
role | "system" | "user" | Required | Message slot the fragment occupies when assembled. |
value | string | Record<string, unknown> | Required | Rendered content. A system message accepts a string only, never a record. |
Returns: string.
Examples
- Context fragments: explicit source, trust, and budget: Core recognizes fragments and the assembly contract, validates source metadata and budgets, and has no built-in business compression algorithm.
Assemble one input from bare configuration
Beginner · Node.js
ts
import { assembleFragments } from '@jangts/agent-core/context';
const input = assembleFragments([{ id: 'question', sourceId: 'request', trust: 'user',
lifetime: 'turn', maxChars: 1000, role: 'user', value: '现在服务状态怎样?' }], 2000);
console.log(input.messages, input.fragmentUsage);js
import { assembleFragments } from '@jangts/agent-core/context';
const input = assembleFragments([{ id: 'question', sourceId: 'request', trust: 'user',
lifetime: 'turn', maxChars: 1000, role: 'user', value: '现在服务状态怎样?' }], 2000);
console.log(input.messages, input.fragmentUsage);Add a candidate plan and final audit
Configuration · Node.js
An empty mutable fragment list means the original fragments may not be modified; no compression step is authorized automatically.
ts
import { assembleContextPlan } from '@jangts/agent-core/context';
import type { ContextFragment } from '@jangts/agent-core/types';
const fragments: ContextFragment[] = [{ id: 'question', sourceId: 'request', trust: 'user',
lifetime: 'turn', maxChars: 1000, role: 'user', value: '现在服务状态怎样?' }];
const input = assembleContextPlan({ fragments, originalFragments: fragments, mutableFragmentIds: [], maxInputChars: 2000 });
console.log(input.inputChars);js
import { assembleContextPlan } from '@jangts/agent-core/context';
const fragments = [{ id: 'question', sourceId: 'request', trust: 'user',
lifetime: 'turn', maxChars: 1000, role: 'user', value: '现在服务状态怎样?' }];
const input = assembleContextPlan({ fragments, originalFragments: fragments, mutableFragmentIds: [], maxInputChars: 2000 });
console.log(input.inputChars);