Skip to content
中文

assembleContextPlan ​

CORE · function · Runtime value

Build the model input for a context plan.

Import ​

ts
import { assembleContextPlan } from '@jangts/agent-core/context';
js
import { assembleContextPlan } from '@jangts/agent-core/context';

Other public entry points:@jangts/agent-core, @jangts/agent-core/types, @jangts/agent-core/context.

Definition ​

Call ​

ts
assembleContextPlan(plan: ContextPlan): BuiltContext

Build the model input for a context plan.

ParameterTypePassingDescription
planContextPlanRequired—
Fields of plan
FieldTypeRequiredDescription
fragmentsreadonly ContextFragment[]RequiredRead-only. Fragments in the order supplied by the App; assembly preserves it.
maxInputCharsnumberRequiredCharacter budget Core validates after assembly.
additionalMessagesreadonly (ModelMessage & { role: "user"; })[] | undefinedOptionalProtected user messages (for example image inputs); text counts toward the same budget.
originalFragmentsreadonly ContextFragment[] | undefinedOptionalTrusted originals for structural mutation auditing; never sent to the model.
mutableFragmentIdsreadonly string[] | undefinedOptionalExplicit value-mutation allowance when originals are supplied.

Returns: BuiltContext.

Return value structure
FieldTypeRequiredDescription
messagesModelMessage[]RequiredMessages in final model order.
fragmentUsageContextFragmentUsage[]RequiredPer-fragment accounting in the same order as the fragments were merged.
inputCharsnumberRequiredTotal counted characters across messages and usage.
maxInputCharsnumberRequiredBudget the assembly was validated against; Infinity means unbounded.

Examples ​

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);

API reference, usage examples and developer guides.