@duetso/agent 0.1.20
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.
- package/LICENSE +189 -0
- package/README.md +315 -0
- package/dist/package.json +84 -0
- package/dist/src/cli.d.ts +23 -0
- package/dist/src/cli.d.ts.map +1 -0
- package/dist/src/cli.js +754 -0
- package/dist/src/cli.js.map +1 -0
- package/dist/src/core/serializer.d.ts +3 -0
- package/dist/src/core/serializer.d.ts.map +1 -0
- package/dist/src/core/serializer.js +22 -0
- package/dist/src/core/serializer.js.map +1 -0
- package/dist/src/core/structured-output.d.ts +13 -0
- package/dist/src/core/structured-output.d.ts.map +1 -0
- package/dist/src/core/structured-output.js +41 -0
- package/dist/src/core/structured-output.js.map +1 -0
- package/dist/src/guardrails/firewall.d.ts +7 -0
- package/dist/src/guardrails/firewall.d.ts.map +1 -0
- package/dist/src/guardrails/firewall.js +31 -0
- package/dist/src/guardrails/firewall.js.map +1 -0
- package/dist/src/guardrails/pattern.d.ts +13 -0
- package/dist/src/guardrails/pattern.d.ts.map +1 -0
- package/dist/src/guardrails/pattern.js +70 -0
- package/dist/src/guardrails/pattern.js.map +1 -0
- package/dist/src/guardrails/semantic.d.ts +14 -0
- package/dist/src/guardrails/semantic.d.ts.map +1 -0
- package/dist/src/guardrails/semantic.js +47 -0
- package/dist/src/guardrails/semantic.js.map +1 -0
- package/dist/src/index.d.ts +20 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +20 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/lib/compact-json.d.ts +11 -0
- package/dist/src/lib/compact-json.d.ts.map +1 -0
- package/dist/src/lib/compact-json.js +36 -0
- package/dist/src/lib/compact-json.js.map +1 -0
- package/dist/src/lib/xml.d.ts +3 -0
- package/dist/src/lib/xml.d.ts.map +1 -0
- package/dist/src/lib/xml.js +9 -0
- package/dist/src/lib/xml.js.map +1 -0
- package/dist/src/memory/observation-groups.d.ts +15 -0
- package/dist/src/memory/observation-groups.d.ts.map +1 -0
- package/dist/src/memory/observation-groups.js +159 -0
- package/dist/src/memory/observation-groups.js.map +1 -0
- package/dist/src/memory/observational-prompts.d.ts +27 -0
- package/dist/src/memory/observational-prompts.d.ts.map +1 -0
- package/dist/src/memory/observational-prompts.js +237 -0
- package/dist/src/memory/observational-prompts.js.map +1 -0
- package/dist/src/memory/observational.d.ts +63 -0
- package/dist/src/memory/observational.d.ts.map +1 -0
- package/dist/src/memory/observational.js +605 -0
- package/dist/src/memory/observational.js.map +1 -0
- package/dist/src/memory/storage.d.ts +3 -0
- package/dist/src/memory/storage.d.ts.map +1 -0
- package/dist/src/memory/storage.js +127 -0
- package/dist/src/memory/storage.js.map +1 -0
- package/dist/src/memory/store.d.ts +13 -0
- package/dist/src/memory/store.d.ts.map +1 -0
- package/dist/src/memory/store.js +106 -0
- package/dist/src/memory/store.js.map +1 -0
- package/dist/src/model-resolution/duet-gateway.d.ts +35 -0
- package/dist/src/model-resolution/duet-gateway.d.ts.map +1 -0
- package/dist/src/model-resolution/duet-gateway.js +56 -0
- package/dist/src/model-resolution/duet-gateway.js.map +1 -0
- package/dist/src/model-resolution/index.d.ts +31 -0
- package/dist/src/model-resolution/index.d.ts.map +1 -0
- package/dist/src/model-resolution/index.js +129 -0
- package/dist/src/model-resolution/index.js.map +1 -0
- package/dist/src/session/session-manager.d.ts +45 -0
- package/dist/src/session/session-manager.d.ts.map +1 -0
- package/dist/src/session/session-manager.js +94 -0
- package/dist/src/session/session-manager.js.map +1 -0
- package/dist/src/session/session.d.ts +113 -0
- package/dist/src/session/session.d.ts.map +1 -0
- package/dist/src/session/session.js +308 -0
- package/dist/src/session/session.js.map +1 -0
- package/dist/src/tui/app.d.ts +60 -0
- package/dist/src/tui/app.d.ts.map +1 -0
- package/dist/src/tui/app.js +742 -0
- package/dist/src/tui/app.js.map +1 -0
- package/dist/src/turn-runner/agent-events.d.ts +5 -0
- package/dist/src/turn-runner/agent-events.d.ts.map +1 -0
- package/dist/src/turn-runner/agent-events.js +59 -0
- package/dist/src/turn-runner/agent-events.js.map +1 -0
- package/dist/src/turn-runner/prompts.d.ts +13 -0
- package/dist/src/turn-runner/prompts.d.ts.map +1 -0
- package/dist/src/turn-runner/prompts.js +79 -0
- package/dist/src/turn-runner/prompts.js.map +1 -0
- package/dist/src/turn-runner/shell-state-handle.d.ts +32 -0
- package/dist/src/turn-runner/shell-state-handle.d.ts.map +1 -0
- package/dist/src/turn-runner/shell-state-handle.js +168 -0
- package/dist/src/turn-runner/shell-state-handle.js.map +1 -0
- package/dist/src/turn-runner/skill-context.d.ts +26 -0
- package/dist/src/turn-runner/skill-context.d.ts.map +1 -0
- package/dist/src/turn-runner/skill-context.js +110 -0
- package/dist/src/turn-runner/skill-context.js.map +1 -0
- package/dist/src/turn-runner/skills.d.ts +35 -0
- package/dist/src/turn-runner/skills.d.ts.map +1 -0
- package/dist/src/turn-runner/skills.js +130 -0
- package/dist/src/turn-runner/skills.js.map +1 -0
- package/dist/src/turn-runner/state-machine-controller.d.ts +90 -0
- package/dist/src/turn-runner/state-machine-controller.d.ts.map +1 -0
- package/dist/src/turn-runner/state-machine-controller.js +289 -0
- package/dist/src/turn-runner/state-machine-controller.js.map +1 -0
- package/dist/src/turn-runner/state-machine-session.d.ts +27 -0
- package/dist/src/turn-runner/state-machine-session.d.ts.map +1 -0
- package/dist/src/turn-runner/state-machine-session.js +189 -0
- package/dist/src/turn-runner/state-machine-session.js.map +1 -0
- package/dist/src/turn-runner/tools.d.ts +193 -0
- package/dist/src/turn-runner/tools.d.ts.map +1 -0
- package/dist/src/turn-runner/tools.js +509 -0
- package/dist/src/turn-runner/tools.js.map +1 -0
- package/dist/src/turn-runner/turn-runner.d.ts +160 -0
- package/dist/src/turn-runner/turn-runner.d.ts.map +1 -0
- package/dist/src/turn-runner/turn-runner.js +907 -0
- package/dist/src/turn-runner/turn-runner.js.map +1 -0
- package/dist/src/turn-runner/turn-state.d.ts +6 -0
- package/dist/src/turn-runner/turn-state.d.ts.map +1 -0
- package/dist/src/turn-runner/turn-state.js +32 -0
- package/dist/src/turn-runner/turn-state.js.map +1 -0
- package/dist/src/turn-runner/usage-accounting.d.ts +7 -0
- package/dist/src/turn-runner/usage-accounting.d.ts.map +1 -0
- package/dist/src/turn-runner/usage-accounting.js +49 -0
- package/dist/src/turn-runner/usage-accounting.js.map +1 -0
- package/dist/src/types/agent.d.ts +15 -0
- package/dist/src/types/agent.d.ts.map +1 -0
- package/dist/src/types/agent.js +2 -0
- package/dist/src/types/agent.js.map +1 -0
- package/dist/src/types/config.d.ts +37 -0
- package/dist/src/types/config.d.ts.map +1 -0
- package/dist/src/types/config.js +2 -0
- package/dist/src/types/config.js.map +1 -0
- package/dist/src/types/guardrails.d.ts +34 -0
- package/dist/src/types/guardrails.d.ts.map +1 -0
- package/dist/src/types/guardrails.js +2 -0
- package/dist/src/types/guardrails.js.map +1 -0
- package/dist/src/types/memory.d.ts +151 -0
- package/dist/src/types/memory.d.ts.map +1 -0
- package/dist/src/types/memory.js +2 -0
- package/dist/src/types/memory.js.map +1 -0
- package/dist/src/types/protocol.d.ts +426 -0
- package/dist/src/types/protocol.d.ts.map +1 -0
- package/dist/src/types/protocol.js +2 -0
- package/dist/src/types/protocol.js.map +1 -0
- package/dist/src/types/state-machine.d.ts +344 -0
- package/dist/src/types/state-machine.d.ts.map +1 -0
- package/dist/src/types/state-machine.js +2 -0
- package/dist/src/types/state-machine.js.map +1 -0
- package/package.json +84 -0
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import { Agent, type AgentEvent, type AgentTool } from "@earendil-works/pi-agent-core";
|
|
2
|
+
import { type Usage } from "@earendil-works/pi-ai";
|
|
3
|
+
import type { Skill } from "@earendil-works/pi-coding-agent";
|
|
4
|
+
import type { SkillCollision } from "./skills.js";
|
|
5
|
+
import { MemoryStore } from "../memory/store.js";
|
|
6
|
+
import type { TurnRunnerConfig } from "../types/config.js";
|
|
7
|
+
import type { TurnAgentFile, TurnAnswerCommand, TurnEditFollowUpQueueCommand, TurnEvent, TurnInterruptCommand, TurnMode, TurnPromptCommand, TurnState, TurnTokenUsage, TurnStartCommand, TurnTerminalEvent, TurnCommand } from "../types/protocol.js";
|
|
8
|
+
import type { StateMachineAgentState } from "../types/state-machine.js";
|
|
9
|
+
import { type TurnRunnerControlResult } from "./tools.js";
|
|
10
|
+
import { SkillContext } from "./skill-context.js";
|
|
11
|
+
import { type StateAgentHandle } from "./state-machine-controller.js";
|
|
12
|
+
export type TurnEventHandler = (event: TurnEvent) => void;
|
|
13
|
+
export interface AgentWorkerInput {
|
|
14
|
+
state: TurnState;
|
|
15
|
+
prompt: string;
|
|
16
|
+
}
|
|
17
|
+
export interface AgentConfigInput {
|
|
18
|
+
state: TurnState;
|
|
19
|
+
appendSystemPrompt?: string;
|
|
20
|
+
skills?: Skill[];
|
|
21
|
+
tools: AgentTool[];
|
|
22
|
+
}
|
|
23
|
+
export interface AgentWorkerResult {
|
|
24
|
+
terminal: TurnTerminalEvent;
|
|
25
|
+
control: TurnRunnerControlResult;
|
|
26
|
+
}
|
|
27
|
+
export declare class TurnRunner {
|
|
28
|
+
readonly config: TurnRunnerConfig;
|
|
29
|
+
private readonly eventHandlers;
|
|
30
|
+
/** In-memory observation store used by context transforms during agent turns. */
|
|
31
|
+
protected readonly memory: MemoryStore;
|
|
32
|
+
/** Stops memory persistence subscriptions/databases when the runner is disposed. */
|
|
33
|
+
private memoryDispose?;
|
|
34
|
+
/**
|
|
35
|
+
* Session-scoped parent pi agent. It is created once during start() so model,
|
|
36
|
+
* tools, and system prompt shape stay stable for prompt caching while the
|
|
37
|
+
* transcript grows across every pi-agent turn in this duet-agent session.
|
|
38
|
+
*/
|
|
39
|
+
private parentAgent?;
|
|
40
|
+
/** True only while the parent pi agent is actively producing the public terminal event. */
|
|
41
|
+
private parentAgentRunning;
|
|
42
|
+
/** Last turn-runner control tool result observed from the parent agent. */
|
|
43
|
+
private parentControlResult;
|
|
44
|
+
/** Runtime owner for state-machine progress and active state work. */
|
|
45
|
+
private readonly stateMachineController;
|
|
46
|
+
/** Parent prompt started by a steer while state-machine work is driving the turn. */
|
|
47
|
+
private activeStateWorkPrompt?;
|
|
48
|
+
/** Terminal event prepared by `interrupt()` and returned when active work unwinds. */
|
|
49
|
+
private interruptedTerminal?;
|
|
50
|
+
/**
|
|
51
|
+
* Active work-chain promise. Callers may call turn() repeatedly while this is
|
|
52
|
+
* set; those commands are folded into the same duet-agent turn. A duet-agent
|
|
53
|
+
* turn may contain multiple parent pi-agent turns and multiple state-machine
|
|
54
|
+
* transitions, but it emits one public terminal event for the whole chain.
|
|
55
|
+
*/
|
|
56
|
+
private activeTurnPromise?;
|
|
57
|
+
/** Latest runner-owned state, hydrated by start() and advanced by terminal events. */
|
|
58
|
+
private state?;
|
|
59
|
+
/** True after `start()` has emitted the initial `turn_started` event. */
|
|
60
|
+
private started;
|
|
61
|
+
/** Aggregates model usage across parent agents, state agents, and memory work for one turn chain. */
|
|
62
|
+
private turnUsage?;
|
|
63
|
+
/** Ensures persisted memory hydrates once before the first turn that needs it. */
|
|
64
|
+
private memoryLoaded;
|
|
65
|
+
protected readonly skillContext: SkillContext;
|
|
66
|
+
constructor(config: TurnRunnerConfig);
|
|
67
|
+
dispose(): Promise<void>;
|
|
68
|
+
subscribe(handler: TurnEventHandler): () => void;
|
|
69
|
+
editFollowUpQueue(command: TurnEditFollowUpQueueCommand): void;
|
|
70
|
+
/**
|
|
71
|
+
* Set up a session before any turn runs. Loads memory and skills, then
|
|
72
|
+
* emits `turn_started` with the initial state (a fresh state, or the
|
|
73
|
+
* resumed state when `command.state` is provided). No agent work runs.
|
|
74
|
+
*
|
|
75
|
+
* Callers (CLI/TUI/session managers) call this once on launch so the user
|
|
76
|
+
* sees available skills before typing the first prompt.
|
|
77
|
+
*/
|
|
78
|
+
start(command: TurnStartCommand): Promise<TurnState>;
|
|
79
|
+
turn(command: TurnCommand): Promise<TurnTerminalEvent>;
|
|
80
|
+
private runTurnChain;
|
|
81
|
+
private executeTurnCommand;
|
|
82
|
+
private handleCommandDuringActiveTurn;
|
|
83
|
+
private sendCommandToAgent;
|
|
84
|
+
private startParentPromptDuringActiveStateWork;
|
|
85
|
+
private runParentPromptDuringActiveStateWork;
|
|
86
|
+
private drainQueuedTurnCommands;
|
|
87
|
+
private commandToUserMessage;
|
|
88
|
+
private enqueueTurnCommand;
|
|
89
|
+
private replaceFollowUpQueue;
|
|
90
|
+
private replaceQueuedFollowUpCommands;
|
|
91
|
+
private removeQueuedFollowUpCommands;
|
|
92
|
+
private isFollowUpQueueCommand;
|
|
93
|
+
private appendFollowUpPrompt;
|
|
94
|
+
private removeQueuedFollowUpPrompt;
|
|
95
|
+
private removeFollowUpPrompt;
|
|
96
|
+
private clearFollowUpQueue;
|
|
97
|
+
private emitFollowUpQueue;
|
|
98
|
+
interrupt(_command: TurnInterruptCommand): void;
|
|
99
|
+
protected emit(event: TurnEvent): void;
|
|
100
|
+
private consumeInterruptedTerminal;
|
|
101
|
+
protected prompt(command: TurnPromptCommand): Promise<TurnTerminalEvent>;
|
|
102
|
+
protected answer(command: TurnAnswerCommand): Promise<TurnTerminalEvent>;
|
|
103
|
+
protected wake(): Promise<TurnTerminalEvent>;
|
|
104
|
+
private restoreSleepAfterPromptIfNeeded;
|
|
105
|
+
private controllerResultToTerminal;
|
|
106
|
+
private driveStateMachineResult;
|
|
107
|
+
private selectNextStateAfterCompletion;
|
|
108
|
+
protected createStateAgentHandle(input: {
|
|
109
|
+
state: StateMachineAgentState;
|
|
110
|
+
prompt: string;
|
|
111
|
+
}): StateAgentHandle;
|
|
112
|
+
private requireRunnerState;
|
|
113
|
+
getState(): TurnState | undefined;
|
|
114
|
+
private snapshotState;
|
|
115
|
+
private setState;
|
|
116
|
+
private snapshotActiveAgentState;
|
|
117
|
+
private getFollowUpQueue;
|
|
118
|
+
private setFollowUpQueue;
|
|
119
|
+
private getQueuedCommands;
|
|
120
|
+
private setQueuedCommands;
|
|
121
|
+
private shiftQueuedCommand;
|
|
122
|
+
private getTodos;
|
|
123
|
+
private setTodos;
|
|
124
|
+
private requireStarted;
|
|
125
|
+
private requireParentAgent;
|
|
126
|
+
private initializeParentAgent;
|
|
127
|
+
protected runTurnRunnerAgentWithStateMachineTools(input: {
|
|
128
|
+
state: TurnState;
|
|
129
|
+
prompt: string;
|
|
130
|
+
mode: Exclude<TurnMode, "agent">;
|
|
131
|
+
}): Promise<TurnTerminalEvent>;
|
|
132
|
+
private controllerResultFromWorkerResult;
|
|
133
|
+
protected createTools(mode: TurnMode): {
|
|
134
|
+
tools: AgentTool[];
|
|
135
|
+
};
|
|
136
|
+
private replayFollowUpQueueIntoAgent;
|
|
137
|
+
protected runAgentMode(state: TurnState, prompt: string): Promise<TurnTerminalEvent>;
|
|
138
|
+
protected runAgentWorker(input: AgentWorkerInput): Promise<AgentWorkerResult>;
|
|
139
|
+
private setParentAgentRunning;
|
|
140
|
+
private runAgentWorkerWithUsage;
|
|
141
|
+
protected createAgent(input: AgentConfigInput, onControlResult?: (result: TurnRunnerControlResult) => void): Agent;
|
|
142
|
+
protected createMemoryTransform(model: string): (messages: import("@earendil-works/pi-agent-core").AgentMessage[], signal?: AbortSignal) => Promise<import("@earendil-works/pi-agent-core").AgentMessage[]>;
|
|
143
|
+
getSkills(): Promise<readonly Skill[]>;
|
|
144
|
+
/** System-prompt files (AGENTS.md by default) that resolved on disk for this session. */
|
|
145
|
+
getResolvedAgentFiles(): Promise<readonly TurnAgentFile[]>;
|
|
146
|
+
/** Skill name collisions where one definition shadowed another during discovery. */
|
|
147
|
+
getSkillCollisions(): Promise<readonly SkillCollision[]>;
|
|
148
|
+
getSkillInstructions(skillId: string): string;
|
|
149
|
+
private ensureSkillsLoaded;
|
|
150
|
+
private ensureMemoryLoaded;
|
|
151
|
+
protected createBaseSystemPromptWithAppendedLayers(input?: {
|
|
152
|
+
append?: Array<string | undefined>;
|
|
153
|
+
skills?: readonly Skill[];
|
|
154
|
+
}): string;
|
|
155
|
+
private askUserQuestion;
|
|
156
|
+
private resolveTurnOptions;
|
|
157
|
+
protected recordUsage(usage?: TurnTokenUsage | Usage): void;
|
|
158
|
+
protected emitAgentEvent(event: AgentEvent): void;
|
|
159
|
+
}
|
|
160
|
+
//# sourceMappingURL=turn-runner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"turn-runner.d.ts","sourceRoot":"","sources":["../../../src/turn-runner/turn-runner.ts"],"names":[],"mappings":"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"}
|