@mcp-abap-adt/llm-agent 17.0.0 → 18.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/dist/interfaces/executor.d.ts +36 -0
  2. package/dist/interfaces/executor.d.ts.map +1 -0
  3. package/dist/interfaces/executor.js +2 -0
  4. package/dist/interfaces/executor.js.map +1 -0
  5. package/dist/interfaces/index.d.ts +11 -1
  6. package/dist/interfaces/index.d.ts.map +1 -1
  7. package/dist/interfaces/index.js +3 -0
  8. package/dist/interfaces/index.js.map +1 -1
  9. package/dist/interfaces/insufficient-signal.d.ts +7 -0
  10. package/dist/interfaces/insufficient-signal.d.ts.map +1 -0
  11. package/dist/interfaces/insufficient-signal.js +11 -0
  12. package/dist/interfaces/insufficient-signal.js.map +1 -0
  13. package/dist/interfaces/knowledge-rag.d.ts +40 -0
  14. package/dist/interfaces/knowledge-rag.d.ts.map +1 -0
  15. package/dist/interfaces/knowledge-rag.js +2 -0
  16. package/dist/interfaces/knowledge-rag.js.map +1 -0
  17. package/dist/interfaces/need-resolver.d.ts +12 -0
  18. package/dist/interfaces/need-resolver.d.ts.map +1 -0
  19. package/dist/interfaces/need-resolver.js +2 -0
  20. package/dist/interfaces/need-resolver.js.map +1 -0
  21. package/dist/interfaces/request-logger.d.ts +4 -1
  22. package/dist/interfaces/request-logger.d.ts.map +1 -1
  23. package/dist/interfaces/stepper-interpreter.d.ts +27 -0
  24. package/dist/interfaces/stepper-interpreter.d.ts.map +1 -0
  25. package/dist/interfaces/stepper-interpreter.js +2 -0
  26. package/dist/interfaces/stepper-interpreter.js.map +1 -0
  27. package/dist/interfaces/stepper-planner.d.ts +32 -0
  28. package/dist/interfaces/stepper-planner.d.ts.map +1 -0
  29. package/dist/interfaces/stepper-planner.js +2 -0
  30. package/dist/interfaces/stepper-planner.js.map +1 -0
  31. package/dist/interfaces/stepper.d.ts +73 -0
  32. package/dist/interfaces/stepper.d.ts.map +1 -0
  33. package/dist/interfaces/stepper.js +18 -0
  34. package/dist/interfaces/stepper.js.map +1 -0
  35. package/dist/interfaces/streaming.d.ts +54 -14
  36. package/dist/interfaces/streaming.d.ts.map +1 -1
  37. package/dist/interfaces/task-spec.d.ts +42 -0
  38. package/dist/interfaces/task-spec.d.ts.map +1 -0
  39. package/dist/interfaces/task-spec.js +17 -0
  40. package/dist/interfaces/task-spec.js.map +1 -0
  41. package/package.json +1 -1
@@ -0,0 +1,36 @@
1
+ import type { IKnowledgeRagHandle, IToolsRagHandle } from './knowledge-rag.js';
2
+ import type { INeedResolver } from './need-resolver.js';
3
+ import type { Budget, RunIdentity } from './stepper.js';
4
+ import type { StreamChunk } from './streaming.js';
5
+ import type { ITaskSpec } from './task-spec.js';
6
+ import type { LlmTool, LlmUsage } from './types.js';
7
+ export interface IExecutor {
8
+ readonly name: string;
9
+ execute(input: {
10
+ prompt: string;
11
+ tools: readonly LlmTool[];
12
+ knowledgeRag: IKnowledgeRagHandle;
13
+ toolsRag: IToolsRagHandle;
14
+ needResolver?: INeedResolver;
15
+ /**
16
+ * Formalized overall task (optional). When present it is kept as a
17
+ * persistent anchor in EVERY iteration and prefixes the tool-search query
18
+ * so the executor never loses sight of the overall task. Absent → behaves
19
+ * as before.
20
+ */
21
+ taskSpec?: ITaskSpec;
22
+ /** Executor is a LEAF; ignores depthRemaining, stops when budget.tokens.exhausted(). */
23
+ budget: Budget;
24
+ identity: RunIdentity;
25
+ signal?: AbortSignal;
26
+ sessionLogger?: {
27
+ logStep(name: string, data: unknown): void;
28
+ };
29
+ onProgress?: (event: StreamChunk) => void;
30
+ }): Promise<{
31
+ status: 'ok' | 'incomplete' | 'budget-exhausted';
32
+ missing?: string[];
33
+ usage: LlmUsage;
34
+ }>;
35
+ }
36
+ //# sourceMappingURL=executor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/interfaces/executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEpD,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,KAAK,EAAE;QACb,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,SAAS,OAAO,EAAE,CAAC;QAC1B,YAAY,EAAE,mBAAmB,CAAC;QAClC,QAAQ,EAAE,eAAe,CAAC;QAC1B,YAAY,CAAC,EAAE,aAAa,CAAC;QAC7B;;;;;WAKG;QACH,QAAQ,CAAC,EAAE,SAAS,CAAC;QACrB,wFAAwF;QACxF,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,WAAW,CAAC;QACtB,MAAM,CAAC,EAAE,WAAW,CAAC;QACrB,aAAa,CAAC,EAAE;YAAE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAAA;SAAE,CAAC;QAC/D,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;KAC3C,GAAG,OAAO,CAAC;QACV,MAAM,EAAE,IAAI,GAAG,YAAY,GAAG,kBAAkB,CAAC;QACjD,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QACnB,KAAK,EAAE,QAAQ,CAAC;KACjB,CAAC,CAAC;CACJ"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=executor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/interfaces/executor.ts"],"names":[],"mappings":""}
@@ -7,11 +7,14 @@ export type { ContextPath } from './context-path.js';
7
7
  export type { EpicFailTrace, IActivationStrategy, ICoordinatorConfig, ICoordinatorContext, IDispatchStrategy, IPlanningStrategy, Plan, PlanStep, StepResult, SubAgentWithDescription, } from './coordinator.js';
8
8
  export type { DagPlan, PlanNode } from './dag-plan.js';
9
9
  export type { ErrorContext, ErrorReaction, IErrorStrategy, } from './error-strategy.js';
10
+ export type { IExecutor } from './executor.js';
10
11
  export type { FinalizerInput, FinalizerResult, IFinalizer, } from './finalizer.js';
11
12
  export type { CircuitBreakerStatus, HealthComponentStatus, HealthStatus, } from './health.js';
12
13
  export type { IHistoryMemory } from './history-memory.js';
13
14
  export type { HistoryTurn, IHistorySummarizer, } from './history-summarizer.js';
15
+ export { InsufficientSignal } from './insufficient-signal.js';
14
16
  export type { IInterpreter, InterpretContext, InterpretResult, NodeResult, } from './interpreter.js';
17
+ export type { IKnowledgeRagHandle, IToolsRagHandle, KnowledgeEntry, KnowledgeEntryMetadata, KnowledgeFilter, } from './knowledge-rag.js';
15
18
  export type { ILlm } from './llm.js';
16
19
  export type { ILlmCallStrategy } from './llm-call-strategy.js';
17
20
  export type { IMcpClient } from './mcp-client.js';
@@ -19,6 +22,7 @@ export type { ConnectionStrategyOptions, IMcpConnectionStrategy, McpClientFactor
19
22
  export type { CounterSnapshot, HistogramSnapshot, ICounter, IHistogram, IMetrics, MetricsSnapshot, } from './metrics.js';
20
23
  export type { IModelFilter, IModelInfo, IModelProvider, } from './model-provider.js';
21
24
  export type { IModelResolver } from './model-resolver.js';
25
+ export type { INeedResolver } from './need-resolver.js';
22
26
  export type { BuiltInStageType, ControlFlowType, StageDefinition, StageType, } from './pipeline.js';
23
27
  export type { IPlanner, PlannerCatalogEntry, PlannerInput, PlannerResult, } from './planner.js';
24
28
  export type { IPluginLoader, IRagStoreConfig, ISmartAgentPlugin, IStageHandler, LoadedPlugins, PluginExports, RagScope, } from './plugin.js';
@@ -33,9 +37,15 @@ export type { ISessionManager } from './session.js';
33
37
  export type { SessionIdentity } from './session-identity.js';
34
38
  export type { ISkill, ISkillManager, ISkillMeta, ISkillResource, } from './skill.js';
35
39
  export type { IStateOracle, StateOracleInput, StateOracleResult, } from './state-oracle.js';
36
- export type { OnPartial, StreamChunk } from './streaming.js';
40
+ export type { Budget, IStepper, IStepperInput, IStepperResult, ITokenLedger, RunIdentity, } from './stepper.js';
41
+ export { TokenLedger } from './stepper.js';
42
+ export type { IStepperInterpreter } from './stepper-interpreter.js';
43
+ export type { IStepperPlanner } from './stepper-planner.js';
44
+ export type { OnPartial, StepperRef, StreamChunk } from './streaming.js';
37
45
  export type { ISubAgent, ISubAgentInput, ISubAgentResult, SubAgentCapabilities, SubAgentRegistry, } from './subagent.js';
38
46
  export type { ISubAgentContextBuilder, SubAgentContextRequest, SubAgentContextResult, } from './subagent-context.js';
47
+ export type { ITaskFormalizer, ITaskSpec } from './task-spec.js';
48
+ export { renderTaskSpec } from './task-spec.js';
39
49
  export type { IToolSelectionStrategy } from './tool-selection-strategy.js';
40
50
  export type { ISpan, ITracer, SpanOptions, SpanStatus } from './tracer.js';
41
51
  export type { AgentConfig, CallOptions, ContextFrame, LlmFinishReason, LlmResponse, LlmStreamChunk, LlmTool, LlmToolCall, LlmToolCallDelta, LlmUsage, McpTool, McpToolResult, ModelUsageEntry, RagMetadata, RagResult, Result, StreamHookContext, StreamToolCall, Subprompt, SubpromptType, TimingEntry, ToolCallRecord, ToolHeartbeat, TraceContext, } from './types.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,8 @@
1
1
  export { OrchestratorError, } from './agent-contracts.js';
2
+ export { InsufficientSignal } from './insufficient-signal.js';
2
3
  export { isBatchEmbedder } from './rag.js';
4
+ export { TokenLedger } from './stepper.js';
5
+ export { renderTaskSpec } from './task-spec.js';
3
6
  export { AssemblerError, ClassifierError, LlmError, McpError, RagError, SkillError, SmartAgentError, } from './types.js';
4
7
  export { ValidatorError } from './validator.js';
5
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,iBAAiB,GAGlB,MAAM,sBAAsB,CAAC;AA+G9B,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AA4E3C,OAAO,EACL,cAAc,EACd,eAAe,EACf,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,eAAe,GAChB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,iBAAiB,GAGlB,MAAM,sBAAsB,CAAC;AA2C9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AA8E9D,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AA2C3C,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAiB3C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AA6BhD,OAAO,EACL,cAAc,EACd,eAAe,EACf,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,eAAe,GAChB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { LlmUsage } from './types.js';
2
+ export declare class InsufficientSignal extends Error {
3
+ readonly missing: string[];
4
+ readonly usage?: LlmUsage;
5
+ constructor(missing: string[], usage?: LlmUsage);
6
+ }
7
+ //# sourceMappingURL=insufficient-signal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"insufficient-signal.d.ts","sourceRoot":"","sources":["../../src/interfaces/insufficient-signal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC;gBACd,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,CAAC,EAAE,QAAQ;CAMhD"}
@@ -0,0 +1,11 @@
1
+ export class InsufficientSignal extends Error {
2
+ missing;
3
+ usage;
4
+ constructor(missing, usage) {
5
+ super('insufficient');
6
+ this.name = 'InsufficientSignal';
7
+ this.missing = missing;
8
+ this.usage = usage;
9
+ }
10
+ }
11
+ //# sourceMappingURL=insufficient-signal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"insufficient-signal.js","sourceRoot":"","sources":["../../src/interfaces/insufficient-signal.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAClC,OAAO,CAAW;IAClB,KAAK,CAAY;IAC1B,YAAY,OAAiB,EAAE,KAAgB;QAC7C,KAAK,CAAC,cAAc,CAAC,CAAC;QACtB,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF"}
@@ -0,0 +1,40 @@
1
+ import type { LlmTool } from './types.js';
2
+ export interface KnowledgeEntryMetadata {
3
+ traceId: string;
4
+ turnId: string;
5
+ stepperId: string;
6
+ parentStepperId?: string;
7
+ task: string;
8
+ artifactType: string;
9
+ toolName?: string;
10
+ createdAt: string;
11
+ }
12
+ export interface KnowledgeEntry {
13
+ content: string;
14
+ metadata: KnowledgeEntryMetadata;
15
+ }
16
+ export interface KnowledgeFilter {
17
+ traceId?: string;
18
+ turnId?: string;
19
+ stepperId?: string;
20
+ parentStepperId?: string;
21
+ artifactType?: string | readonly string[];
22
+ toolName?: string;
23
+ }
24
+ export interface IKnowledgeRagHandle {
25
+ query(text: string, opts?: {
26
+ k?: number;
27
+ filter?: KnowledgeFilter;
28
+ }): Promise<readonly KnowledgeEntry[]>;
29
+ list(filter: KnowledgeFilter): Promise<readonly KnowledgeEntry[]>;
30
+ write(entry: {
31
+ content: string;
32
+ metadata: KnowledgeEntryMetadata;
33
+ }): Promise<void>;
34
+ fingerprint(): string;
35
+ }
36
+ export interface IToolsRagHandle {
37
+ query(text: string, k?: number): Promise<readonly LlmTool[]>;
38
+ lookup(name: string): LlmTool | undefined;
39
+ }
40
+ //# sourceMappingURL=knowledge-rag.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"knowledge-rag.d.ts","sourceRoot":"","sources":["../../src/interfaces/knowledge-rag.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,sBAAsB,CAAC;CAClC;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,CACH,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,eAAe,CAAA;KAAE,GAC9C,OAAO,CAAC,SAAS,cAAc,EAAE,CAAC,CAAC;IACtC,IAAI,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,SAAS,cAAc,EAAE,CAAC,CAAC;IAClE,KAAK,CAAC,KAAK,EAAE;QACX,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,sBAAsB,CAAC;KAClC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClB,WAAW,IAAI,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,OAAO,EAAE,CAAC,CAAC;IAC7D,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;CAC3C"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=knowledge-rag.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"knowledge-rag.js","sourceRoot":"","sources":["../../src/interfaces/knowledge-rag.ts"],"names":[],"mappings":""}
@@ -0,0 +1,12 @@
1
+ export interface INeedResolver {
2
+ /** Inspect an LLM utterance for an unmet-capability signal. Returns a
3
+ * tools-RAG query string to discover the needed capability, or undefined
4
+ * for a clean answer / normal tool call.
5
+ * v1 scope: only `queryToolsRag`. (Reserved for 18.x: queryKnowledgeRag,
6
+ * injectTools — intentionally NOT in the v1 contract so there are no dead
7
+ * public fields the executor ignores; see review R1-F5.) */
8
+ resolve(llmResponse: string): Promise<{
9
+ queryToolsRag: string;
10
+ } | undefined>;
11
+ }
12
+ //# sourceMappingURL=need-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"need-resolver.d.ts","sourceRoot":"","sources":["../../src/interfaces/need-resolver.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B;;;;;iEAK6D;IAC7D,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,aAAa,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC,CAAC;CAC9E"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=need-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"need-resolver.js","sourceRoot":"","sources":["../../src/interfaces/need-resolver.ts"],"names":[],"mappings":""}
@@ -1,4 +1,4 @@
1
- export type LlmComponent = 'tool-loop' | 'classifier' | 'helper' | 'translate' | 'query-expander' | 'embedding' | 'planner' | 'reviewer' | 'finalizer' | 'oracle';
1
+ export type LlmComponent = 'tool-loop' | 'classifier' | 'tool-definer' | 'helper' | 'translate' | 'query-expander' | 'embedding' | 'planner' | 'reviewer' | 'finalizer' | 'oracle';
2
2
  export type TokenCategory = 'initialization' | 'auxiliary' | 'request';
3
3
  export interface TokenBucket {
4
4
  promptTokens: number;
@@ -34,6 +34,9 @@ export interface ToolCallEntry {
34
34
  cached: boolean;
35
35
  }
36
36
  export interface RequestSummary {
37
+ /** Faithful sum across all byComponent entries (promptTokens, completionTokens,
38
+ * totalTokens, requests). Equal to reducing byComponent values; never null. */
39
+ totals: TokenBucket;
37
40
  /** Per-model aggregated token usage. */
38
41
  byModel: Record<string, TokenBucket>;
39
42
  /** Per-component aggregated token usage. */
@@ -1 +1 @@
1
- {"version":3,"file":"request-logger.d.ts","sourceRoot":"","sources":["../../src/interfaces/request-logger.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GACpB,WAAW,GACX,YAAY,GACZ,QAAQ,GACR,WAAW,GACX,gBAAgB,GAChB,WAAW,GACX,SAAS,GACT,UAAU,GACV,WAAW,GACX,QAAQ,CAAC;AAEb,MAAM,MAAM,aAAa,GAAG,gBAAgB,GAAG,WAAW,GAAG,SAAS,CAAC;AAEvE,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,YAAY,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;+DAC2D;IAC3D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,wCAAwC;IACxC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACrC,4CAA4C;IAC5C,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACzC,2CAA2C;IAC3C,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,8CAA8C;IAC9C,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAAC;IACtC,WAAW,CAAC,KAAK,EAAE,aAAa,GAAG;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACjE,WAAW,CAAC,KAAK,EAAE,aAAa,GAAG;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACjE;2CACuC;IACvC,YAAY,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,sEAAsE;IACtE,UAAU,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC;sEACkE;IAClE,WAAW,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,UAAU,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,cAAc,CAAC;IAC/C,KAAK,IAAI,IAAI,CAAC;CACf"}
1
+ {"version":3,"file":"request-logger.d.ts","sourceRoot":"","sources":["../../src/interfaces/request-logger.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GACpB,WAAW,GACX,YAAY,GACZ,cAAc,GACd,QAAQ,GACR,WAAW,GACX,gBAAgB,GAChB,WAAW,GACX,SAAS,GACT,UAAU,GACV,WAAW,GACX,QAAQ,CAAC;AAEb,MAAM,MAAM,aAAa,GAAG,gBAAgB,GAAG,WAAW,GAAG,SAAS,CAAC;AAEvE,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,YAAY,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;+DAC2D;IAC3D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B;oFACgF;IAChF,MAAM,EAAE,WAAW,CAAC;IACpB,wCAAwC;IACxC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACrC,4CAA4C;IAC5C,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACzC,2CAA2C;IAC3C,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,8CAA8C;IAC9C,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAAC;IACtC,WAAW,CAAC,KAAK,EAAE,aAAa,GAAG;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACjE,WAAW,CAAC,KAAK,EAAE,aAAa,GAAG;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACjE;2CACuC;IACvC,YAAY,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,sEAAsE;IACtE,UAAU,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC;sEACkE;IAClE,WAAW,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,UAAU,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,cAAc,CAAC;IAC/C,KAAK,IAAI,IAAI,CAAC;CACf"}
@@ -0,0 +1,27 @@
1
+ import type { DagPlan } from './dag-plan.js';
2
+ import type { IExecutor } from './executor.js';
3
+ import type { IKnowledgeRagHandle, IToolsRagHandle } from './knowledge-rag.js';
4
+ import type { Budget, IStepper, IStepperResult, RunIdentity } from './stepper.js';
5
+ import type { StreamChunk } from './streaming.js';
6
+ import type { ITaskSpec } from './task-spec.js';
7
+ export interface IStepperInterpreter {
8
+ readonly name: string;
9
+ interpret(plan: DagPlan, ctx: {
10
+ prompt: string;
11
+ knowledgeRag: IKnowledgeRagHandle;
12
+ toolsRag: IToolsRagHandle;
13
+ childSteppers: ReadonlyMap<string, IStepper>;
14
+ executor: IExecutor;
15
+ budget: Budget;
16
+ identity: RunIdentity;
17
+ taskSpec?: ITaskSpec;
18
+ maxParallelSteps: number;
19
+ mintStepperId: () => string;
20
+ signal?: AbortSignal;
21
+ sessionLogger?: {
22
+ logStep(name: string, data: unknown): void;
23
+ };
24
+ onProgress?: (event: StreamChunk) => void;
25
+ }): Promise<IStepperResult>;
26
+ }
27
+ //# sourceMappingURL=stepper-interpreter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stepper-interpreter.d.ts","sourceRoot":"","sources":["../../src/interfaces/stepper-interpreter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,KAAK,EACV,MAAM,EACN,QAAQ,EACR,cAAc,EACd,WAAW,EACZ,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,SAAS,CACP,IAAI,EAAE,OAAO,EACb,GAAG,EAAE;QACH,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,EAAE,mBAAmB,CAAC;QAClC,QAAQ,EAAE,eAAe,CAAC;QAC1B,aAAa,EAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC7C,QAAQ,EAAE,SAAS,CAAC;QACpB,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,WAAW,CAAC;QACtB,QAAQ,CAAC,EAAE,SAAS,CAAC;QACrB,gBAAgB,EAAE,MAAM,CAAC;QACzB,aAAa,EAAE,MAAM,MAAM,CAAC;QAC5B,MAAM,CAAC,EAAE,WAAW,CAAC;QACrB,aAAa,CAAC,EAAE;YAAE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAAA;SAAE,CAAC;QAC/D,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;KAC3C,GACA,OAAO,CAAC,cAAc,CAAC,CAAC;CAC5B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=stepper-interpreter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stepper-interpreter.js","sourceRoot":"","sources":["../../src/interfaces/stepper-interpreter.ts"],"names":[],"mappings":""}
@@ -0,0 +1,32 @@
1
+ import type { DagPlan } from './dag-plan.js';
2
+ import type { IKnowledgeRagHandle, IToolsRagHandle } from './knowledge-rag.js';
3
+ import type { RunIdentity } from './stepper.js';
4
+ import type { ITaskSpec } from './task-spec.js';
5
+ export interface IStepperPlanner {
6
+ readonly name: string;
7
+ plan(input: {
8
+ prompt: string;
9
+ knowledgeRag: IKnowledgeRagHandle;
10
+ toolsRag: IToolsRagHandle;
11
+ parentPath: string[];
12
+ identity: RunIdentity;
13
+ /**
14
+ * Formalized overall task (optional). When present, every planner at every
15
+ * level sees the overall task — not just its local sub-prompt — so plans
16
+ * stay aligned to the whole. Absent → behaves as before.
17
+ */
18
+ taskSpec?: ITaskSpec;
19
+ /**
20
+ * Child worker Steppers available for delegation (deep-stepper mode). The
21
+ * planner renders these into its prompt and may set a node's `agent` to one
22
+ * of these names to recurse into that child. Empty/omitted → the planner
23
+ * emits only leaves (executor-handled), i.e. flat planned-react behaviour.
24
+ */
25
+ agents?: ReadonlyArray<{
26
+ name: string;
27
+ description?: string;
28
+ }>;
29
+ signal?: AbortSignal;
30
+ }): Promise<DagPlan>;
31
+ }
32
+ //# sourceMappingURL=stepper-planner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stepper-planner.d.ts","sourceRoot":"","sources":["../../src/interfaces/stepper-planner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,KAAK,EAAE;QACV,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,EAAE,mBAAmB,CAAC;QAClC,QAAQ,EAAE,eAAe,CAAC;QAC1B,UAAU,EAAE,MAAM,EAAE,CAAC;QACrB,QAAQ,EAAE,WAAW,CAAC;QACtB;;;;WAIG;QACH,QAAQ,CAAC,EAAE,SAAS,CAAC;QACrB;;;;;WAKG;QACH,MAAM,CAAC,EAAE,aAAa,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,WAAW,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAC/D,MAAM,CAAC,EAAE,WAAW,CAAC;KACtB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACtB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=stepper-planner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stepper-planner.js","sourceRoot":"","sources":["../../src/interfaces/stepper-planner.ts"],"names":[],"mappings":""}
@@ -0,0 +1,73 @@
1
+ import type { IKnowledgeRagHandle, IToolsRagHandle } from './knowledge-rag.js';
2
+ import type { StreamChunk } from './streaming.js';
3
+ import type { ITaskSpec } from './task-spec.js';
4
+ import type { LlmUsage } from './types.js';
5
+ /** Identity carried through every layer so executors can stamp
6
+ * KnowledgeEntryMetadata and the coordinator can attribute streaming
7
+ * + usage. Minted at the coordinator boundary; the interpreter rewrites
8
+ * stepperId/parentStepperId at each dispatch. */
9
+ export interface RunIdentity {
10
+ traceId: string;
11
+ turnId: string;
12
+ sessionId: string;
13
+ stepperId: string;
14
+ parentStepperId?: string;
15
+ }
16
+ /** Shared, live token ledger (review R2-F1). ONE instance is created at the
17
+ * coordinator boundary and passed BY REFERENCE through the whole run. Every
18
+ * Stepper and executor reads `exhausted()` before each LLM call and calls
19
+ * `spend(usage)` after. This is a SOFT cap (review R3-F2/R5-F1): parallel
20
+ * siblings can each pass the pre-check before any records its spend, so the
21
+ * run can overshoot by at most (total in-flight calls across the tree ×
22
+ * tokens-per-call). maxParallelSteps bounds only each LOCAL scheduler; the
23
+ * global in-flight count is ≈ maxParallelSteps^depth worst case. The
24
+ * budget-extension ClarifySignal is the real net. Tokens bound WORK; depth
25
+ * (a per-branch value below) bounds RECURSION. A reserve-before-call hard
26
+ * cap is deferred. */
27
+ export interface ITokenLedger {
28
+ readonly remaining: number;
29
+ spend(usage: LlmUsage): void;
30
+ exhausted(): boolean;
31
+ }
32
+ export interface Budget {
33
+ /** Per-branch recursion bound — a plain value, decremented by 1 at each
34
+ * child dispatch (NOT shared). */
35
+ depthRemaining: number;
36
+ /** Shared run-wide token ledger — the SAME object reference for every
37
+ * Stepper/executor in the run. */
38
+ tokens: ITokenLedger;
39
+ }
40
+ export interface IStepperInput {
41
+ prompt: string;
42
+ knowledgeRag: IKnowledgeRagHandle;
43
+ toolsRag: IToolsRagHandle;
44
+ budget: Budget;
45
+ identity: RunIdentity;
46
+ /** Formalized overall task (optional). Threaded down to every planner and
47
+ * executor as a compact anchor. Absent → behaves as before. */
48
+ taskSpec?: ITaskSpec;
49
+ signal?: AbortSignal;
50
+ sessionLogger?: {
51
+ logStep(name: string, data: unknown): void;
52
+ };
53
+ onProgress?: (event: StreamChunk) => void;
54
+ }
55
+ export interface IStepperResult {
56
+ status: 'ok' | 'incomplete' | 'budget-exhausted';
57
+ missing?: string[];
58
+ usage: LlmUsage;
59
+ }
60
+ export interface IStepper {
61
+ readonly name: string;
62
+ run(input: IStepperInput): Promise<IStepperResult>;
63
+ }
64
+ /** Default mutable ledger. Created once per run with the configured token
65
+ * budget; shared by reference. */
66
+ export declare class TokenLedger implements ITokenLedger {
67
+ private _remaining;
68
+ constructor(total: number);
69
+ get remaining(): number;
70
+ spend(usage: LlmUsage): void;
71
+ exhausted(): boolean;
72
+ }
73
+ //# sourceMappingURL=stepper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stepper.d.ts","sourceRoot":"","sources":["../../src/interfaces/stepper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C;;;kDAGkD;AAClD,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;;;uBAUuB;AACvB,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,KAAK,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC7B,SAAS,IAAI,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,MAAM;IACrB;uCACmC;IACnC,cAAc,EAAE,MAAM,CAAC;IACvB;uCACmC;IACnC,MAAM,EAAE,YAAY,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,mBAAmB,CAAC;IAClC,QAAQ,EAAE,eAAe,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,WAAW,CAAC;IACtB;oEACgE;IAChE,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,aAAa,CAAC,EAAE;QAAE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAAA;KAAE,CAAC;IAC/D,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;CAC3C;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,IAAI,GAAG,YAAY,GAAG,kBAAkB,CAAC;IACjD,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,EAAE,QAAQ,CAAC;CACjB;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,GAAG,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;CACpD;AAED;mCACmC;AACnC,qBAAa,WAAY,YAAW,YAAY;IAC9C,OAAO,CAAC,UAAU,CAAS;gBACf,KAAK,EAAE,MAAM;IAGzB,IAAI,SAAS,IAAI,MAAM,CAEtB;IACD,KAAK,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAG5B,SAAS,IAAI,OAAO;CAGrB"}
@@ -0,0 +1,18 @@
1
+ /** Default mutable ledger. Created once per run with the configured token
2
+ * budget; shared by reference. */
3
+ export class TokenLedger {
4
+ _remaining;
5
+ constructor(total) {
6
+ this._remaining = total;
7
+ }
8
+ get remaining() {
9
+ return this._remaining;
10
+ }
11
+ spend(usage) {
12
+ this._remaining -= usage.totalTokens;
13
+ }
14
+ exhausted() {
15
+ return this._remaining <= 0;
16
+ }
17
+ }
18
+ //# sourceMappingURL=stepper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stepper.js","sourceRoot":"","sources":["../../src/interfaces/stepper.ts"],"names":[],"mappings":"AAoEA;mCACmC;AACnC,MAAM,OAAO,WAAW;IACd,UAAU,CAAS;IAC3B,YAAY,KAAa;QACvB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;IAC1B,CAAC;IACD,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IACD,KAAK,CAAC,KAAe;QACnB,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC,WAAW,CAAC;IACvC,CAAC;IACD,SAAS;QACP,OAAO,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC;IAC9B,CAAC;CACF"}
@@ -1,29 +1,69 @@
1
+ import type { LlmComponent } from './request-logger.js';
2
+ import type { LlmUsage } from './types.js';
3
+ /**
4
+ * Stable reference to a Stepper execution. Minted at dispatch (for recursive
5
+ * Stepper construction) or synthesized for terminal executor invocations.
6
+ * Unique across the whole run.
7
+ */
8
+ export interface StepperRef {
9
+ /** Stable UUID minted at each dispatch. */
10
+ stepperId: string;
11
+ /** Parent Stepper ID (undefined at root or for terminal executors). */
12
+ parentStepperId?: string;
13
+ /** Human-readable name (goal name or executor type). */
14
+ name: string;
15
+ }
1
16
  /**
2
17
  * Per-event chunk type emitted by `onPartial` callbacks along the
3
- * worker → interpreter → coordinator path.
18
+ * worker → Stepper → coordinator path.
19
+ *
20
+ * `content` carries an LLM-output delta. The 18.0 progress-event variants
21
+ * (`stepper-spawned`, `stepper-done`, `mcp-call`, `mcp-result`,
22
+ * `tokens-used`, `llm-call-start`, `llm-call-end`) each carry
23
+ * `source: StepperRef` for precise attribution in nested execution trees.
4
24
  *
5
- * `content` carries an LLM-output delta; `tool-call` flags a tool
6
- * invocation; `node-start` / `node-end` wrap a DAG node execution at
7
- * the interpreter layer. `nodeId` is supplied by the interpreter when
8
- * forwarding worker-emitted chunks (workers don't know their node id).
25
+ * BREAKING (18.0 / Task 19e): the 17.0 `tool-call`, `node-start`, and
26
+ * `node-end` variants have been removed. SSE clients must migrate to
27
+ * `mcp-call` / `mcp-result` / `stepper-spawned` / `stepper-done`.
9
28
  */
10
29
  export type StreamChunk = {
11
30
  kind: 'content';
12
31
  nodeId?: string;
13
32
  delta: string;
14
33
  } | {
15
- kind: 'tool-call';
16
- nodeId?: string;
17
- name: string;
18
- args?: unknown;
19
- } | {
20
- kind: 'node-start';
21
- nodeId: string;
34
+ kind: 'stepper-spawned';
35
+ source: StepperRef;
22
36
  goal: string;
23
37
  } | {
24
- kind: 'node-end';
25
- nodeId: string;
38
+ kind: 'stepper-done';
39
+ source: StepperRef;
26
40
  ok: boolean;
41
+ } | {
42
+ kind: 'mcp-call';
43
+ source: StepperRef;
44
+ tool: string;
45
+ args?: unknown;
46
+ } | {
47
+ kind: 'mcp-result';
48
+ source: StepperRef;
49
+ tool: string;
50
+ durationMs: number;
51
+ bytes?: number;
52
+ } | {
53
+ kind: 'tokens-used';
54
+ source: StepperRef;
55
+ component: LlmComponent;
56
+ delta: LlmUsage;
57
+ } | {
58
+ kind: 'llm-call-start';
59
+ source: StepperRef;
60
+ component: LlmComponent;
61
+ model: string;
62
+ } | {
63
+ kind: 'llm-call-end';
64
+ source: StepperRef;
65
+ component: LlmComponent;
66
+ durationMs: number;
27
67
  };
28
68
  export type OnPartial = (chunk: StreamChunk) => void;
29
69
  //# sourceMappingURL=streaming.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"streaming.d.ts","sourceRoot":"","sources":["../../src/interfaces/streaming.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACnD;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GACpE;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACpD;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,OAAO,CAAA;CAAE,CAAC;AAEtD,MAAM,MAAM,SAAS,GAAG,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC"}
1
+ {"version":3,"file":"streaming.d.ts","sourceRoot":"","sources":["../../src/interfaces/streaming.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,2CAA2C;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,uEAAuE;IACvE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAEnD;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,MAAM,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC7D;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,MAAM,EAAE,UAAU,CAAC;IAAC,EAAE,EAAE,OAAO,CAAA;CAAE,GACzD;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GACtE;IACE,IAAI,EAAE,YAAY,CAAC;IACnB,MAAM,EAAE,UAAU,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GACD;IACE,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,YAAY,CAAC;IACxB,KAAK,EAAE,QAAQ,CAAC;CACjB,GACD;IACE,IAAI,EAAE,gBAAgB,CAAC;IACvB,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,YAAY,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;CACf,GACD;IACE,IAAI,EAAE,cAAc,CAAC;IACrB,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,YAAY,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEN,MAAM,MAAM,SAAS,GAAG,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * TaskSpec — the formalized overall task.
3
+ *
4
+ * Produced ONCE at the coordinator root by an {@link ITaskFormalizer} and then
5
+ * threaded down through every planner and executor (as a compact anchor) so no
6
+ * level "forgets" it is part of the overall task. It is BOUNDED on purpose — a
7
+ * few short fields, never the full conversation — to anchor context without a
8
+ * context explosion. Optional everywhere: when absent, the runtime behaves
9
+ * exactly as before (backward-compatible).
10
+ */
11
+ export interface ITaskSpec {
12
+ /** The overall objective in one sentence. */
13
+ objective: string;
14
+ /** What the task should cover (optional). */
15
+ scope?: string;
16
+ /** Hard constraints the work must respect (optional). */
17
+ constraints?: readonly string[];
18
+ /** Expected shape of the final deliverable (optional). */
19
+ deliverable?: string;
20
+ /** The original user request, verbatim — the ground truth. */
21
+ raw: string;
22
+ }
23
+ /**
24
+ * Turns a raw prompt into a {@link ITaskSpec}. Implemented once with the
25
+ * strong (planner-tier) model at the coordinator root. MUST never throw on a
26
+ * bad LLM response — fall back to `{ objective: prompt, raw: prompt }`.
27
+ */
28
+ export interface ITaskFormalizer {
29
+ readonly name: string;
30
+ formalize(input: {
31
+ prompt: string;
32
+ signal?: AbortSignal;
33
+ }): Promise<ITaskSpec>;
34
+ }
35
+ /**
36
+ * Render a TaskSpec as a compact, bounded anchor block for planner/executor
37
+ * prompts. A few lines — NOT the full history. Used both as a persistent
38
+ * "main task" reminder in the executor and as the overall-intent prefix for the
39
+ * tool-search query.
40
+ */
41
+ export declare function renderTaskSpec(spec: ITaskSpec): string;
42
+ //# sourceMappingURL=task-spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-spec.d.ts","sourceRoot":"","sources":["../../src/interfaces/task-spec.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,WAAW,SAAS;IACxB,6CAA6C;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,6CAA6C;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,0DAA0D;IAC1D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8DAA8D;IAC9D,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,KAAK,EAAE;QACf,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,WAAW,CAAC;KACtB,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;CACxB;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAOtD"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Render a TaskSpec as a compact, bounded anchor block for planner/executor
3
+ * prompts. A few lines — NOT the full history. Used both as a persistent
4
+ * "main task" reminder in the executor and as the overall-intent prefix for the
5
+ * tool-search query.
6
+ */
7
+ export function renderTaskSpec(spec) {
8
+ const lines = [`Overall task: ${spec.objective}`];
9
+ if (spec.scope)
10
+ lines.push(`Scope: ${spec.scope}`);
11
+ if (spec.constraints && spec.constraints.length > 0)
12
+ lines.push(`Constraints: ${spec.constraints.join('; ')}`);
13
+ if (spec.deliverable)
14
+ lines.push(`Deliverable: ${spec.deliverable}`);
15
+ return lines.join('\n');
16
+ }
17
+ //# sourceMappingURL=task-spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-spec.js","sourceRoot":"","sources":["../../src/interfaces/task-spec.ts"],"names":[],"mappings":"AAoCA;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,IAAe;IAC5C,MAAM,KAAK,GAAG,CAAC,iBAAiB,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IAClD,IAAI,IAAI,CAAC,KAAK;QAAE,KAAK,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IACnD,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;QACjD,KAAK,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5D,IAAI,IAAI,CAAC,WAAW;QAAE,KAAK,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IACrE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mcp-abap-adt/llm-agent",
3
- "version": "17.0.0",
3
+ "version": "18.0.0",
4
4
  "description": "Core interfaces, types, and lightweight default implementations for LLM agent orchestration.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",