laohuang 0.4.2 → 0.5.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 (113) hide show
  1. package/README.md +10 -6
  2. package/dist/agent.d.ts +7 -27
  3. package/dist/agent.js +53 -567
  4. package/dist/agent.js.map +1 -1
  5. package/dist/capabilities.d.ts +19 -0
  6. package/dist/capabilities.js +29 -0
  7. package/dist/capabilities.js.map +1 -0
  8. package/dist/cli.d.ts +9 -6
  9. package/dist/cli.js +83 -70
  10. package/dist/cli.js.map +1 -1
  11. package/dist/commands.d.ts +20 -3
  12. package/dist/commands.js +39 -38
  13. package/dist/commands.js.map +1 -1
  14. package/dist/keybindings/default-keybindings.d.ts +2 -0
  15. package/dist/keybindings/default-keybindings.js +10 -0
  16. package/dist/keybindings/default-keybindings.js.map +1 -0
  17. package/dist/keybindings/hints.d.ts +3 -0
  18. package/dist/keybindings/hints.js +7 -0
  19. package/dist/keybindings/hints.js.map +1 -0
  20. package/dist/keybindings/key-id.d.ts +20 -0
  21. package/dist/keybindings/key-id.js +11 -0
  22. package/dist/keybindings/key-id.js.map +1 -0
  23. package/dist/keybindings/key-parser.d.ts +7 -0
  24. package/dist/keybindings/key-parser.js +92 -0
  25. package/dist/keybindings/key-parser.js.map +1 -0
  26. package/dist/keybindings/keybindings.d.ts +21 -0
  27. package/dist/keybindings/keybindings.js +65 -0
  28. package/dist/keybindings/keybindings.js.map +1 -0
  29. package/dist/routing.d.ts +2 -57
  30. package/dist/routing.js +3 -161
  31. package/dist/routing.js.map +1 -1
  32. package/dist/runtime/agent-step-runner.d.ts +51 -0
  33. package/dist/runtime/agent-step-runner.js +361 -0
  34. package/dist/runtime/agent-step-runner.js.map +1 -0
  35. package/dist/runtime/agent-turn-loop.d.ts +36 -0
  36. package/dist/runtime/agent-turn-loop.js +71 -0
  37. package/dist/runtime/agent-turn-loop.js.map +1 -0
  38. package/dist/runtime/guard-policy.d.ts +21 -0
  39. package/dist/runtime/guard-policy.js +93 -0
  40. package/dist/runtime/guard-policy.js.map +1 -0
  41. package/dist/runtime/history-committer.d.ts +34 -0
  42. package/dist/runtime/history-committer.js +77 -0
  43. package/dist/runtime/history-committer.js.map +1 -0
  44. package/dist/runtime/human-intent-router.d.ts +5 -0
  45. package/dist/runtime/human-intent-router.js +38 -0
  46. package/dist/runtime/human-intent-router.js.map +1 -0
  47. package/dist/runtime/model-runtime.d.ts +33 -0
  48. package/dist/runtime/model-runtime.js +70 -0
  49. package/dist/runtime/model-runtime.js.map +1 -0
  50. package/dist/runtime/queue-bridge.d.ts +11 -0
  51. package/dist/runtime/queue-bridge.js +2 -0
  52. package/dist/runtime/queue-bridge.js.map +1 -0
  53. package/dist/runtime/queue-dispatcher.d.ts +45 -0
  54. package/dist/runtime/queue-dispatcher.js +120 -0
  55. package/dist/runtime/queue-dispatcher.js.map +1 -0
  56. package/dist/runtime/runtime-events.d.ts +26 -0
  57. package/dist/runtime/runtime-events.js +21 -0
  58. package/dist/runtime/runtime-events.js.map +1 -0
  59. package/dist/runtime/session-action-protocol.d.ts +10 -0
  60. package/dist/runtime/session-action-protocol.js +64 -0
  61. package/dist/runtime/session-action-protocol.js.map +1 -0
  62. package/dist/runtime/session-action.d.ts +42 -0
  63. package/dist/runtime/session-action.js +3 -0
  64. package/dist/runtime/session-action.js.map +1 -0
  65. package/dist/runtime/task-lifecycle.d.ts +73 -0
  66. package/dist/runtime/task-lifecycle.js +267 -0
  67. package/dist/runtime/task-lifecycle.js.map +1 -0
  68. package/dist/runtime/tool-runtime.d.ts +33 -0
  69. package/dist/runtime/tool-runtime.js +89 -0
  70. package/dist/runtime/tool-runtime.js.map +1 -0
  71. package/dist/runtime/user-intent.d.ts +48 -0
  72. package/dist/runtime/user-intent.js +17 -0
  73. package/dist/runtime/user-intent.js.map +1 -0
  74. package/dist/session.d.ts +19 -9
  75. package/dist/session.js +119 -169
  76. package/dist/session.js.map +1 -1
  77. package/dist/terminal/editor.d.ts +16 -5
  78. package/dist/terminal/editor.js +99 -4
  79. package/dist/terminal/editor.js.map +1 -1
  80. package/dist/terminal/input.d.ts +2 -0
  81. package/dist/terminal/input.js +32 -7
  82. package/dist/terminal/input.js.map +1 -1
  83. package/dist/terminal/ui.d.ts +32 -21
  84. package/dist/terminal/ui.js +413 -252
  85. package/dist/terminal/ui.js.map +1 -1
  86. package/dist/tools.d.ts +7 -0
  87. package/dist/tools.js.map +1 -1
  88. package/dist/tui/components.d.ts +5 -0
  89. package/dist/tui/components.js +12 -0
  90. package/dist/tui/components.js.map +1 -0
  91. package/dist/tui/focus-manager.d.ts +7 -0
  92. package/dist/tui/focus-manager.js +13 -0
  93. package/dist/tui/focus-manager.js.map +1 -0
  94. package/dist/tui/overlay-manager.d.ts +12 -0
  95. package/dist/tui/overlay-manager.js +27 -0
  96. package/dist/tui/overlay-manager.js.map +1 -0
  97. package/dist/ui/display-actions.d.ts +23 -0
  98. package/dist/ui/display-actions.js +15 -0
  99. package/dist/ui/display-actions.js.map +1 -0
  100. package/dist/ui/display-policy.d.ts +38 -0
  101. package/dist/ui/display-policy.js +97 -0
  102. package/dist/ui/display-policy.js.map +1 -0
  103. package/dist/ui/frame-builder.d.ts +39 -0
  104. package/dist/ui/frame-builder.js +111 -0
  105. package/dist/ui/frame-builder.js.map +1 -0
  106. package/dist/ui/transcript-store.d.ts +35 -0
  107. package/dist/ui/transcript-store.js +172 -0
  108. package/dist/ui/transcript-store.js.map +1 -0
  109. package/dist/ui-state.js +6 -6
  110. package/dist/ui-state.js.map +1 -1
  111. package/dist/web.js +14 -1
  112. package/dist/web.js.map +1 -1
  113. package/package.json +2 -2
@@ -0,0 +1,92 @@
1
+ import { makeKeyInput } from "./key-id.js";
2
+ const NAMED_KEYS = {
3
+ enter: "enter",
4
+ return: "enter",
5
+ escape: "escape",
6
+ esc: "escape",
7
+ tab: "tab",
8
+ backspace: "backspace",
9
+ delete: "delete",
10
+ up: "up",
11
+ down: "down",
12
+ left: "left",
13
+ right: "right",
14
+ home: "home",
15
+ end: "end",
16
+ page_up: "page_up",
17
+ page_down: "page_down",
18
+ };
19
+ function controlKeyId(character) {
20
+ if (character === "c") {
21
+ return "ctrl_c";
22
+ }
23
+ if (character === "d") {
24
+ return "ctrl_d";
25
+ }
26
+ if (character === "l") {
27
+ return "ctrl_l";
28
+ }
29
+ return "character";
30
+ }
31
+ /** Parse a portable binding string such as `ctrl+o` into a normalized key. */
32
+ export function parseKey(value) {
33
+ const parts = value.toLowerCase().split("+").filter(Boolean);
34
+ if (parts.length === 0) {
35
+ throw new Error("key binding cannot be empty");
36
+ }
37
+ let ctrl = false;
38
+ let alt = false;
39
+ let shift = false;
40
+ const base = [];
41
+ for (const part of parts) {
42
+ if (part === "ctrl" || part === "control") {
43
+ ctrl = true;
44
+ }
45
+ else if (part === "alt" || part === "option") {
46
+ alt = true;
47
+ }
48
+ else if (part === "shift") {
49
+ shift = true;
50
+ }
51
+ else {
52
+ base.push(part);
53
+ }
54
+ }
55
+ if (base.length !== 1) {
56
+ throw new Error(`invalid key binding: ${value}`);
57
+ }
58
+ const name = base[0];
59
+ const named = NAMED_KEYS[name];
60
+ if (named !== undefined) {
61
+ return makeKeyInput(named, { ctrl, alt, shift });
62
+ }
63
+ if ([...name].length !== 1) {
64
+ throw new Error(`unknown key binding: ${value}`);
65
+ }
66
+ const id = ctrl ? controlKeyId(name) : "character";
67
+ return makeKeyInput(id, {
68
+ ...(id === "character" ? { text: name } : {}),
69
+ ctrl,
70
+ alt,
71
+ shift,
72
+ });
73
+ }
74
+ /** Stable lookup key for matching normalized input events. */
75
+ export function keySignature(key) {
76
+ return [key.id, key.text ?? "", key.ctrl, key.alt, key.shift].join(":");
77
+ }
78
+ /** Human-readable key label used by contextual hints. */
79
+ export function formatKey(key) {
80
+ const modifiers = [key.ctrl ? "Ctrl" : "", key.alt ? "Alt" : "", key.shift ? "Shift" : ""]
81
+ .filter(Boolean);
82
+ const name = key.id === "character"
83
+ ? (key.text ?? "").toUpperCase()
84
+ : key.id === "ctrl_c" ? "C"
85
+ : key.id === "ctrl_d" ? "D"
86
+ : key.id === "ctrl_l" ? "L"
87
+ : key.id === "page_up" ? "PageUp"
88
+ : key.id === "page_down" ? "PageDown"
89
+ : key.id[0].toUpperCase() + key.id.slice(1);
90
+ return [...modifiers, name].join("+");
91
+ }
92
+ //# sourceMappingURL=key-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"key-parser.js","sourceRoot":"","sources":["../../src/keybindings/key-parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { KeyInput } from "./key-id.ts";
2
+ export type ActionId = "toggle_tool_output" | "clear_screen" | "editor_newline" | "select_model" | "submit_follow_up" | "dismiss" | "cancel" | "toggle_thinking" | "cycle_thinking";
3
+ export interface Keybinding {
4
+ readonly context: string;
5
+ readonly key: string;
6
+ readonly action: ActionId;
7
+ }
8
+ export type KeybindingOverrides = Partial<Record<ActionId, readonly string[]>>;
9
+ export interface KeybindingConflict {
10
+ readonly context: string;
11
+ readonly key: string;
12
+ readonly actions: readonly ActionId[];
13
+ }
14
+ /** Context-aware bindings with deterministic later-binding override semantics. */
15
+ export declare class KeybindingsManager {
16
+ #private;
17
+ constructor(bindings: readonly Keybinding[], overrides?: KeybindingOverrides);
18
+ resolve(key: KeyInput, contexts: readonly string[]): ActionId | null;
19
+ keysForAction(action: ActionId, contexts: readonly string[]): readonly KeyInput[];
20
+ conflicts(): readonly KeybindingConflict[];
21
+ }
@@ -0,0 +1,65 @@
1
+ import { keySignature, parseKey } from "./key-parser.js";
2
+ /** Context-aware bindings with deterministic later-binding override semantics. */
3
+ export class KeybindingsManager {
4
+ #bindings;
5
+ #conflicts;
6
+ constructor(bindings, overrides = {}) {
7
+ const disabled = new Set(Object.entries(overrides)
8
+ .filter(([, keys]) => keys !== undefined && keys.length === 0)
9
+ .map(([action]) => action));
10
+ const resolved = bindings
11
+ .filter((binding) => !disabled.has(binding.action))
12
+ .map((binding) => ({ ...binding, input: parseKey(binding.key) }));
13
+ for (const [action, keys] of Object.entries(overrides)) {
14
+ if (keys === undefined || keys.length === 0) {
15
+ continue;
16
+ }
17
+ const existing = resolved.find((binding) => binding.action === action);
18
+ if (existing === undefined) {
19
+ throw new Error(`cannot override an unbound action: ${action}`);
20
+ }
21
+ for (const key of keys) {
22
+ resolved.push({ ...existing, key, input: parseKey(key) });
23
+ }
24
+ }
25
+ this.#bindings = resolved;
26
+ this.#conflicts = this.#findConflicts(resolved);
27
+ }
28
+ resolve(key, contexts) {
29
+ const signature = keySignature(key);
30
+ for (const context of contexts) {
31
+ for (let index = this.#bindings.length - 1; index >= 0; index -= 1) {
32
+ const binding = this.#bindings[index];
33
+ if (binding.context === context && keySignature(binding.input) === signature) {
34
+ return binding.action;
35
+ }
36
+ }
37
+ }
38
+ return null;
39
+ }
40
+ keysForAction(action, contexts) {
41
+ return this.#bindings
42
+ .filter((binding) => binding.action === action && contexts.includes(binding.context))
43
+ .map((binding) => binding.input);
44
+ }
45
+ conflicts() {
46
+ return this.#conflicts;
47
+ }
48
+ #findConflicts(bindings) {
49
+ const groups = new Map();
50
+ for (const binding of bindings) {
51
+ const group = `${binding.context}:${keySignature(binding.input)}`;
52
+ const values = groups.get(group) ?? [];
53
+ values.push(binding);
54
+ groups.set(group, values);
55
+ }
56
+ return [...groups.values()]
57
+ .filter((group) => new Set(group.map((binding) => binding.action)).size > 1)
58
+ .map((group) => ({
59
+ context: group[0].context,
60
+ key: group[0].key,
61
+ actions: group.map((binding) => binding.action),
62
+ }));
63
+ }
64
+ }
65
+ //# sourceMappingURL=keybindings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keybindings.js","sourceRoot":"","sources":["../../src/keybindings/keybindings.ts"],"names":[],"mappings":"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"}
package/dist/routing.d.ts CHANGED
@@ -1,42 +1,6 @@
1
- /** Deterministic routing, task registry, and runtime input queues. */
2
- import { CancelToken } from "./cancellation.ts";
1
+ /** Deterministic routing and runtime input queues. */
3
2
  import { type AnyEventEnvelope } from "./events.ts";
4
- export declare const TaskState: {
5
- readonly RunningModel: "running_model";
6
- readonly RunningTools: "running_tools";
7
- readonly Cancelling: "cancelling";
8
- readonly Cancelled: "cancelled";
9
- readonly Completed: "completed";
10
- readonly Failed: "failed";
11
- };
12
- export type TaskState = (typeof TaskState)[keyof typeof TaskState];
13
- export interface TaskRecord {
14
- readonly taskId: string;
15
- readonly state: TaskState;
16
- readonly cancelToken: CancelToken;
17
- readonly result: string | null;
18
- readonly error: string | null;
19
- }
20
- export interface RegisterTaskOptions {
21
- state?: TaskState;
22
- cancelToken?: CancelToken;
23
- activate?: boolean;
24
- }
25
- export interface TransitionOptions {
26
- result?: string;
27
- error?: string;
28
- }
29
- /** Task records with at most one active task. */
30
- export declare class TaskRegistry {
31
- private readonly tasks;
32
- private activeTaskIdValue;
33
- get activeTaskId(): string | null;
34
- register(taskId: string, options?: RegisterTaskOptions): TaskRecord;
35
- get(taskId: string): TaskRecord | null;
36
- active(): TaskRecord | null;
37
- transition(taskId: string, state: TaskState, options?: TransitionOptions): TaskRecord;
38
- records(): TaskRecord[];
39
- }
3
+ import { type TaskRecord, type TaskRegistry } from "./runtime/task-lifecycle.ts";
40
4
  export type RouteStrategy = "execute" | "steer" | "follow_up" | "cancel" | "reject";
41
5
  export type RouteDestination = "new_task" | "current_task" | "pending" | "held" | "control" | "drop";
42
6
  export type RouteTiming = "immediate" | "safe_point" | "after_cancel";
@@ -147,24 +111,5 @@ export declare class HeldQueue {
147
111
  clear(): number;
148
112
  get size(): number;
149
113
  }
150
- export interface ScheduleResult {
151
- readonly immediate: readonly RoutedEvent[];
152
- readonly queued: boolean;
153
- readonly rejected: boolean;
154
- readonly reason: string;
155
- }
156
- export interface SchedulerOptions {
157
- pending?: PendingQueue;
158
- held?: HeldQueue;
159
- deadLetters?: DeadLetterQueue;
160
- }
161
- export declare class Scheduler {
162
- readonly pending: PendingQueue;
163
- readonly held: HeldQueue;
164
- readonly deadLetters: DeadLetterQueue;
165
- constructor(options?: SchedulerOptions);
166
- schedule(event: RoutedEvent): ScheduleResult;
167
- safePoint(taskId: string): RoutedEvent[];
168
- }
169
114
  /** Combine a pending snapshot into one model input without losing IDs. */
170
115
  export declare function combineInput(events: Iterable<RoutedEvent>): string;
package/dist/routing.js CHANGED
@@ -1,120 +1,6 @@
1
- /** Deterministic routing, task registry, and runtime input queues. */
2
- import { CancelToken } from "./cancellation.js";
1
+ /** Deterministic routing and runtime input queues. */
3
2
  import { EventKind, EventSource, } from "./events.js";
4
- // ---------------------------------------------------------------------------
5
- // Task registry
6
- // ---------------------------------------------------------------------------
7
- export const TaskState = {
8
- RunningModel: "running_model",
9
- RunningTools: "running_tools",
10
- Cancelling: "cancelling",
11
- Cancelled: "cancelled",
12
- Completed: "completed",
13
- Failed: "failed",
14
- };
15
- const TERMINAL_TASK_STATES = new Set([
16
- TaskState.Cancelled,
17
- TaskState.Completed,
18
- TaskState.Failed,
19
- ]);
20
- const ALLOWED_TASK_TRANSITIONS = new Map([
21
- [
22
- TaskState.RunningModel,
23
- new Set([
24
- TaskState.RunningTools,
25
- TaskState.Cancelling,
26
- TaskState.Completed,
27
- TaskState.Failed,
28
- ]),
29
- ],
30
- [
31
- TaskState.RunningTools,
32
- new Set([
33
- TaskState.RunningModel,
34
- TaskState.Cancelling,
35
- TaskState.Completed,
36
- TaskState.Failed,
37
- ]),
38
- ],
39
- [TaskState.Cancelling, new Set([TaskState.Cancelled])],
40
- [TaskState.Cancelled, new Set()],
41
- [TaskState.Completed, new Set()],
42
- [TaskState.Failed, new Set()],
43
- ]);
44
- /** Task records with at most one active task. */
45
- export class TaskRegistry {
46
- tasks = new Map();
47
- activeTaskIdValue = null;
48
- get activeTaskId() {
49
- return this.activeTaskIdValue;
50
- }
51
- register(taskId, options = {}) {
52
- const state = options.state ?? TaskState.RunningModel;
53
- const activate = options.activate ?? true;
54
- if (this.tasks.has(taskId)) {
55
- throw new Error(`task already exists: ${taskId}`);
56
- }
57
- if (activate && this.activeTaskIdValue !== null) {
58
- throw new Error("another task is already active");
59
- }
60
- const record = {
61
- taskId,
62
- state,
63
- cancelToken: options.cancelToken ?? new CancelToken(),
64
- result: null,
65
- error: null,
66
- };
67
- this.tasks.set(taskId, record);
68
- if (activate && !TERMINAL_TASK_STATES.has(state)) {
69
- this.activeTaskIdValue = taskId;
70
- }
71
- return { ...record };
72
- }
73
- get(taskId) {
74
- const record = this.tasks.get(taskId);
75
- return record === undefined ? null : { ...record };
76
- }
77
- active() {
78
- if (this.activeTaskIdValue === null) {
79
- return null;
80
- }
81
- const record = this.tasks.get(this.activeTaskIdValue);
82
- return record === undefined ? null : { ...record };
83
- }
84
- transition(taskId, state, options = {}) {
85
- const record = this.tasks.get(taskId);
86
- if (record === undefined) {
87
- throw new Error(`unknown task: ${taskId}`);
88
- }
89
- if (state !== record.state &&
90
- !ALLOWED_TASK_TRANSITIONS.get(record.state)?.has(state)) {
91
- throw new Error(`invalid task transition: ${record.state} -> ${state}`);
92
- }
93
- const next = {
94
- ...record,
95
- state,
96
- result: options.result !== undefined ? options.result : record.result,
97
- error: options.error !== undefined ? options.error : record.error,
98
- };
99
- if (TERMINAL_TASK_STATES.has(state)) {
100
- if (this.activeTaskIdValue === taskId) {
101
- this.activeTaskIdValue = null;
102
- }
103
- }
104
- else {
105
- const active = this.activeTaskIdValue;
106
- if (active !== null && active !== taskId) {
107
- throw new Error("another task is already active");
108
- }
109
- this.activeTaskIdValue = taskId;
110
- }
111
- this.tasks.set(taskId, next);
112
- return { ...next };
113
- }
114
- records() {
115
- return [...this.tasks.values()].map((record) => ({ ...record }));
116
- }
117
- }
3
+ import { TaskState, isTerminalTaskState, } from "./runtime/task-lifecycle.js";
118
4
  // ---------------------------------------------------------------------------
119
5
  // Token estimates
120
6
  // ---------------------------------------------------------------------------
@@ -207,7 +93,7 @@ export class EventRouter {
207
93
  if (event.source !== EventSource.User && event.source !== EventSource.Cli) {
208
94
  if (active === null ||
209
95
  target.taskId !== active.taskId ||
210
- TERMINAL_TASK_STATES.has(target.state)) {
96
+ isTerminalTaskState(target.state)) {
211
97
  return {
212
98
  taskId: target.taskId,
213
99
  destination: "drop",
@@ -606,50 +492,6 @@ export class HeldQueue {
606
492
  return this.items.length;
607
493
  }
608
494
  }
609
- export class Scheduler {
610
- pending;
611
- held;
612
- deadLetters;
613
- constructor(options = {}) {
614
- this.pending = options.pending ?? new PendingQueue();
615
- this.held = options.held ?? new HeldQueue();
616
- this.deadLetters = options.deadLetters ?? new DeadLetterQueue();
617
- }
618
- schedule(event) {
619
- const destination = event.decision.destination;
620
- try {
621
- if (destination === "pending") {
622
- this.pending.put(event);
623
- return { immediate: [], queued: true, rejected: false, reason: "" };
624
- }
625
- if (destination === "held") {
626
- this.held.put(event);
627
- return { immediate: [], queued: true, rejected: false, reason: "" };
628
- }
629
- }
630
- catch (error) {
631
- if (!(error instanceof QueueOverflowError)) {
632
- throw error;
633
- }
634
- const reason = error.message;
635
- this.deadLetters.put(event.event, reason);
636
- return { immediate: [], queued: false, rejected: true, reason };
637
- }
638
- if (destination === "drop") {
639
- this.deadLetters.put(event.event, event.decision.reason);
640
- return {
641
- immediate: [],
642
- queued: false,
643
- rejected: true,
644
- reason: event.decision.reason,
645
- };
646
- }
647
- return { immediate: [event], queued: false, rejected: false, reason: "" };
648
- }
649
- safePoint(taskId) {
650
- return this.pending.drainCompatible({ taskId });
651
- }
652
- }
653
495
  /** Combine a pending snapshot into one model input without losing IDs. */
654
496
  export function combineInput(events) {
655
497
  const parts = [];
@@ -1 +1 @@
1
- {"version":3,"file":"routing.js","sourceRoot":"","sources":["../src/routing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"routing.js","sourceRoot":"","sources":["../src/routing.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ import type { CancelToken } from "../cancellation.ts";
2
+ import { type ChatClientLike } from "../model-adapter.ts";
3
+ import type { ToolExecutionMode, ToolResult } from "../tools.ts";
4
+ import { HistoryCommitter, type HistoryCommitContext, type PendingInputBatchLike } from "./history-committer.ts";
5
+ import { GuardPolicy } from "./guard-policy.ts";
6
+ import { ModelRuntime } from "./model-runtime.ts";
7
+ import { ToolRuntime } from "./tool-runtime.ts";
8
+ export declare const FORCED_FINAL_PROMPT = "Tool use has been stopped by the runtime safety guard.\nDo not call any tools. Give the user the best concise answer possible from the\ninformation already available. Clearly state any limitation caused by stopping\ntool use, but do not mention internal implementation details unless useful.";
9
+ export interface AgentStepRunnerContext extends HistoryCommitContext {
10
+ modelStarted?(): boolean | void;
11
+ modelRequestOpened?(): boolean | void;
12
+ toolsStarted?(): void;
13
+ safePoint?(): PendingInputBatchLike | null | undefined;
14
+ }
15
+ export interface AgentStepRunnerOptions {
16
+ client: ChatClientLike;
17
+ model: string;
18
+ provider: string | null;
19
+ modelRuntime: ModelRuntime;
20
+ toolRuntime: ToolRuntime;
21
+ toolDefinitions: Array<Record<string, unknown>>;
22
+ toolExecution: ToolExecutionMode;
23
+ history: HistoryCommitter;
24
+ guardPolicy: GuardPolicy;
25
+ userInput: string;
26
+ context: AgentStepRunnerContext | null;
27
+ cancelToken: CancelToken | null;
28
+ requestId: string | null;
29
+ isRequestActive: (requestId: string) => boolean;
30
+ onRequestId(requestId: string): void;
31
+ emit(eventType: string, payload: Record<string, unknown>): void;
32
+ emitLegacy(eventType: string, payload: Record<string, unknown>): void;
33
+ injectBaselineInstructions(cancelToken: CancelToken | null): void;
34
+ discoverForTouchedPaths(touchedPaths: readonly string[]): void;
35
+ onToolEvent(name: string, args: Record<string, unknown>, result: ToolResult): void;
36
+ createError(message: string, cause?: unknown): Error;
37
+ createCancelled(message: string, cause?: unknown): Error;
38
+ }
39
+ /** Runs the model/tool steps inside one user turn. */
40
+ export declare class AgentStepRunner {
41
+ private readonly options;
42
+ constructor(options: AgentStepRunnerOptions);
43
+ run(): Promise<string>;
44
+ private startToolEvent;
45
+ private completeToolEvent;
46
+ private toolEventContext;
47
+ private guardPayload;
48
+ private emit;
49
+ private isCancelled;
50
+ private raiseIfCancelled;
51
+ }