@smooai/smooth-operator-core 1.8.0 → 1.8.3

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/dist/agent.d.ts CHANGED
@@ -292,10 +292,11 @@ export interface ChatChunk {
292
292
  } | null;
293
293
  /**
294
294
  * The gateway's per-request cost, when the client surfaced one. It lives ONLY in
295
- * a response HEADER, which is gone once the SSE body is being consumed — so a
296
- * streaming client reads it up front and rides it on a chunk (the gateway client
297
- * uses a leading chunk with no `choices`, matching the Go engine). Absent ⇒
298
- * unmeasured, and the local pricing estimate is used instead of a bogus $0.
295
+ * a response HEADER, and a streaming client that returns a bare stream has no
296
+ * response object to read one off at all — so it captures the response, parses
297
+ * the cost, and rides it on a chunk (the gateway client uses a leading chunk with
298
+ * no `choices`, matching the Go engine). Absent ⇒ unmeasured, and the local
299
+ * pricing estimate is used instead of a bogus $0.
299
300
  */
300
301
  gatewayCostUsd?: number;
301
302
  /** Raw response headers, when the client hangs them off a chunk instead of pre-parsing. */
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
package/dist/agent.js CHANGED
@@ -412,10 +412,10 @@ export class SmoothAgent {
412
412
  ...metadataField(this.options.metadata),
413
413
  stream: true,
414
414
  });
415
- // Cost lives in a response HEADER, which is gone once the SSE body is
416
- // being consumed — so a streaming client reads it up front and rides it
417
- // on a chunk. Mirrors python/agent.py's run_stream and Go's first-chunk
418
- // ChatChunk{CostUSD}.
415
+ // Cost lives in a response HEADER. A client that returns a bare stream
416
+ // has no response object to read one off at all, so it captures the
417
+ // response and rides the cost on a chunk. Mirrors python/agent.py's
418
+ // run_stream and Go's first-chunk ChatChunk{CostUSD}.
419
419
  let gatewayCost;
420
420
  for await (const chunk of stream) {
421
421
  const chunkCost = responseGatewayCost(chunk);
package/dist/agent.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,173 @@
1
+ /**
2
+ * The durable-execution seam (ADR-030, `SMOODEV-1972`/`SMOODEV-1974`) — the
3
+ * TypeScript port of the Rust reference's `executor.rs` + `activities.rs`.
4
+ *
5
+ * It is two seams at two altitudes:
6
+ *
7
+ * - {@link AgentExecutor} decides *where and how* a turn runs, while
8
+ * {@link SmoothAgent} stays the unit of orchestration (instructions, tools,
9
+ * loop policy, compaction, checkpointing). The only implementation here is
10
+ * {@link InProcessExecutor}, which drives the turn in the calling task — a
11
+ * verbatim delegation to {@link SmoothAgent.run} / {@link SmoothAgent.runStream},
12
+ * so introducing the abstraction changes no behavior. It needs no
13
+ * infrastructure and pulls no dependencies: the zero-infra, OSS default.
14
+ * - {@link AgentActivities} + {@link driveTurn} split a turn into its
15
+ * *side-effecting* half (the model call, each tool invocation) and its
16
+ * *deterministic* half (the loop that decides "call the model → if it asked
17
+ * for tools, run them and loop → else stop"). A durable backend runs the
18
+ * former as retried, memoized workflow activities and replays the latter;
19
+ * the in-process backend runs both inline. **One loop, two backends** — which
20
+ * is what keeps the durable path from drifting away from the inline path.
21
+ *
22
+ * The point of the boundary is to let an *optional* durable backend plug in
23
+ * without the engine or its consumers knowing: a turn modeled as a workflow
24
+ * gets crash-safe resume, durable human-in-the-loop via signals, and durable
25
+ * timers. Keeping the executor a thin dispatch seam (rather than reaching into
26
+ * the loop) is deliberate — the battle-tested inline path is untouched, and the
27
+ * finer-grained orchestration/activity split a durable backend needs lives
28
+ * behind {@link driveTurn}, not forced onto the default path.
29
+ *
30
+ * TODO(ADR-030): a Temporal-backed `AgentExecutor` + `AgentActivities` belongs in
31
+ * a SEPARATE package (`@smooai/smooth-operator-temporal`) behind an opt-in entry
32
+ * point — mirroring the Rust reference's separate `smooth-operator-temporal`
33
+ * crate and its off-by-default `temporal` cargo feature — so this published
34
+ * package stays zero-infra and never pulls a Temporal SDK into a consumer's
35
+ * dependency tree.
36
+ *
37
+ * ## Scope of `driveTurn` vs. `SmoothAgent.run`
38
+ *
39
+ * {@link driveTurn} reproduces the *core decision flow* of {@link SmoothAgent.run}:
40
+ * context snapshot → model call → append assistant message → stop-or-run-tools →
41
+ * append tool results → loop to `maxIterations`. It deliberately omits the
42
+ * inline-runtime concerns a durable backend models differently or that are
43
+ * follow-ups in the epic: event emission (workflow history/queries replace it),
44
+ * checkpointing (the event history *is* the checkpoint), compaction, budget
45
+ * enforcement, parallel tools, permission/human gates, knowledge and memory
46
+ * injection. Those layer onto this loop without changing its shape; the
47
+ * convergence goal is for `SmoothAgent.run` itself to delegate here.
48
+ */
49
+ import type { AgentRunResponse, ChatClientLike, SmoothAgent, StreamEvent, Tool, ToolCall, ToolResult } from './agent.js';
50
+ import type { SmoothAgentThread } from './thread.js';
51
+ import type { LlmProvider } from './llmProvider.js';
52
+ /**
53
+ * The model's reply, exactly as the OpenAI-compatible client returns it. Named
54
+ * here because {@link AgentActivities.modelCall} both produces and (for a durable
55
+ * backend) serializes it across an activity boundary — it is plain JSON.
56
+ */
57
+ export type ModelResponse = Awaited<ReturnType<ChatClientLike['chat']['completions']['create']>>;
58
+ /**
59
+ * A backend that executes a {@link SmoothAgent} turn.
60
+ *
61
+ * Implementations decide *how* the turn is driven (inline, or on a durable
62
+ * workflow engine); the agent passed in owns *what* the turn does. Both methods
63
+ * take the agent as a parameter so an executor never owns it — it borrows it for
64
+ * the duration of the turn, exactly like calling {@link SmoothAgent.run} yourself.
65
+ *
66
+ * The parameters mirror the agent's own run entry points, so a consumer can swap
67
+ * a direct `agent.run(...)` for `executor.execute(agent, ...)` with no other
68
+ * change.
69
+ */
70
+ export interface AgentExecutor {
71
+ /**
72
+ * Run a single turn for `message`, returning the same {@link AgentRunResponse}
73
+ * {@link SmoothAgent.run} would.
74
+ *
75
+ * Rejects with any fatal error from the underlying turn (model call, tool
76
+ * dispatch, or — for durable backends — the workflow engine).
77
+ */
78
+ execute(agent: SmoothAgent, message: string, history?: Array<Record<string, unknown>>, thread?: SmoothAgentThread): Promise<AgentRunResponse>;
79
+ /**
80
+ * Run a single turn, yielding {@link StreamEvent}s (text deltas, tool calls,
81
+ * tool results) as they occur and ending with the terminal `done` event that
82
+ * carries the final {@link AgentRunResponse}.
83
+ *
84
+ * Behaviorally equivalent to {@link SmoothAgent.runStream} for the in-process
85
+ * backend.
86
+ */
87
+ executeStreaming(agent: SmoothAgent, message: string, history?: Array<Record<string, unknown>>, thread?: SmoothAgentThread): AsyncIterable<StreamEvent>;
88
+ }
89
+ /**
90
+ * The default, zero-infra executor: it drives the turn inline in the calling
91
+ * task by delegating straight to {@link SmoothAgent.run} / {@link SmoothAgent.runStream}.
92
+ *
93
+ * This is a verbatim pass-through — introducing it changes no behavior. It is
94
+ * the executor used unless a consumer explicitly opts into a durable backend.
95
+ */
96
+ export declare class InProcessExecutor implements AgentExecutor {
97
+ execute(agent: SmoothAgent, message: string, history?: Array<Record<string, unknown>>, thread?: SmoothAgentThread): Promise<AgentRunResponse>;
98
+ executeStreaming(agent: SmoothAgent, message: string, history?: Array<Record<string, unknown>>, thread?: SmoothAgentThread): AsyncGenerator<StreamEvent>;
99
+ }
100
+ /**
101
+ * The side-effecting boundary of an agent turn: the model call and each tool
102
+ * invocation. A durable backend runs these as workflow activities (retried,
103
+ * memoized in history); the in-process backend runs them inline.
104
+ *
105
+ * Every input and output is a plain, JSON-serializable value — OpenAI-shaped
106
+ * messages, OpenAI-shaped tool specs, the raw model response, a
107
+ * {@link ToolCall} / {@link ToolResult} — so an implementation may marshal them
108
+ * across an activity boundary unchanged.
109
+ */
110
+ export interface AgentActivities {
111
+ /**
112
+ * Invoke the model with the given context window and the tool specs to offer
113
+ * it (the OpenAI `tools` array; empty means "no tools").
114
+ *
115
+ * Rejects on a fatal model-call error (network, upstream rejection). A durable
116
+ * backend turns transient failures into activity retries before they surface
117
+ * here.
118
+ */
119
+ modelCall(messages: Array<Record<string, unknown>>, tools: Array<Record<string, unknown>>): Promise<ModelResponse>;
120
+ /**
121
+ * Execute a single tool call, returning its result.
122
+ *
123
+ * Rejects only on a fatal *dispatch* error. A tool's **business** failure is
124
+ * reported via {@link ToolResult.isError} with the message in `content`, not
125
+ * as a rejection — mirroring the Rust engine's `ToolRegistry::execute` and
126
+ * `SmoothAgent`'s own dispatch, both of which feed tool errors back to the
127
+ * model instead of failing the turn.
128
+ */
129
+ toolInvoke(call: ToolCall): Promise<ToolResult>;
130
+ }
131
+ /** Loop policy for {@link driveTurn}: the bound that keeps the orchestration terminating. */
132
+ export interface TurnPolicy {
133
+ /** Maximum model-call iterations before the turn stops unconditionally. */
134
+ maxIterations: number;
135
+ }
136
+ /**
137
+ * Drive one agent turn deterministically over the supplied activity surface,
138
+ * appending to `messages` in place.
139
+ *
140
+ * `messages` must already be seeded with the system prompt, any prior turns, and
141
+ * the current user message — exactly the state {@link SmoothAgent.run} holds when
142
+ * it enters its loop. On return it carries the appended assistant/tool messages.
143
+ *
144
+ * This function performs **no I/O, wall-clock reads, or RNG** of its own — all of
145
+ * that is delegated to `activities` — so it is replay-safe: durable workflow code
146
+ * can run this very function, and the in-process path runs it too.
147
+ *
148
+ * Rejects with the first fatal error from {@link AgentActivities.modelCall} or
149
+ * {@link AgentActivities.toolInvoke}. Exhausting `maxIterations` is NOT an error:
150
+ * the turn stops and `messages` holds what it accumulated, matching
151
+ * {@link SmoothAgent.run}'s post-loop behavior.
152
+ */
153
+ export declare function driveTurn(activities: AgentActivities, messages: Array<Record<string, unknown>>, tools: Array<Record<string, unknown>>, policy?: TurnPolicy): Promise<void>;
154
+ /**
155
+ * The default, zero-infra {@link AgentActivities}: the model call goes through an
156
+ * {@link LlmProvider} and each tool call through the supplied tool set, inline in
157
+ * the calling task.
158
+ */
159
+ export declare class InProcessActivities implements AgentActivities {
160
+ private readonly llm;
161
+ private readonly model;
162
+ private readonly toolsByName;
163
+ /**
164
+ * @param llm the OpenAI-compatible chat client to call.
165
+ * @param tools the tools dispatchable in this turn.
166
+ * @param model model id for the request body; defaults to the same model
167
+ * `SmoothAgent` defaults to (`DEFAULTS.model` in `agent.ts`).
168
+ */
169
+ constructor(llm: LlmProvider, tools?: Tool[], model?: string);
170
+ modelCall(messages: Array<Record<string, unknown>>, tools: Array<Record<string, unknown>>): Promise<ModelResponse>;
171
+ toolInvoke(call: ToolCall): Promise<ToolResult>;
172
+ }
173
+ //# sourceMappingURL=executor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../src/executor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,183 @@
1
+ /**
2
+ * The durable-execution seam (ADR-030, `SMOODEV-1972`/`SMOODEV-1974`) — the
3
+ * TypeScript port of the Rust reference's `executor.rs` + `activities.rs`.
4
+ *
5
+ * It is two seams at two altitudes:
6
+ *
7
+ * - {@link AgentExecutor} decides *where and how* a turn runs, while
8
+ * {@link SmoothAgent} stays the unit of orchestration (instructions, tools,
9
+ * loop policy, compaction, checkpointing). The only implementation here is
10
+ * {@link InProcessExecutor}, which drives the turn in the calling task — a
11
+ * verbatim delegation to {@link SmoothAgent.run} / {@link SmoothAgent.runStream},
12
+ * so introducing the abstraction changes no behavior. It needs no
13
+ * infrastructure and pulls no dependencies: the zero-infra, OSS default.
14
+ * - {@link AgentActivities} + {@link driveTurn} split a turn into its
15
+ * *side-effecting* half (the model call, each tool invocation) and its
16
+ * *deterministic* half (the loop that decides "call the model → if it asked
17
+ * for tools, run them and loop → else stop"). A durable backend runs the
18
+ * former as retried, memoized workflow activities and replays the latter;
19
+ * the in-process backend runs both inline. **One loop, two backends** — which
20
+ * is what keeps the durable path from drifting away from the inline path.
21
+ *
22
+ * The point of the boundary is to let an *optional* durable backend plug in
23
+ * without the engine or its consumers knowing: a turn modeled as a workflow
24
+ * gets crash-safe resume, durable human-in-the-loop via signals, and durable
25
+ * timers. Keeping the executor a thin dispatch seam (rather than reaching into
26
+ * the loop) is deliberate — the battle-tested inline path is untouched, and the
27
+ * finer-grained orchestration/activity split a durable backend needs lives
28
+ * behind {@link driveTurn}, not forced onto the default path.
29
+ *
30
+ * TODO(ADR-030): a Temporal-backed `AgentExecutor` + `AgentActivities` belongs in
31
+ * a SEPARATE package (`@smooai/smooth-operator-temporal`) behind an opt-in entry
32
+ * point — mirroring the Rust reference's separate `smooth-operator-temporal`
33
+ * crate and its off-by-default `temporal` cargo feature — so this published
34
+ * package stays zero-infra and never pulls a Temporal SDK into a consumer's
35
+ * dependency tree.
36
+ *
37
+ * ## Scope of `driveTurn` vs. `SmoothAgent.run`
38
+ *
39
+ * {@link driveTurn} reproduces the *core decision flow* of {@link SmoothAgent.run}:
40
+ * context snapshot → model call → append assistant message → stop-or-run-tools →
41
+ * append tool results → loop to `maxIterations`. It deliberately omits the
42
+ * inline-runtime concerns a durable backend models differently or that are
43
+ * follow-ups in the epic: event emission (workflow history/queries replace it),
44
+ * checkpointing (the event history *is* the checkpoint), compaction, budget
45
+ * enforcement, parallel tools, permission/human gates, knowledge and memory
46
+ * injection. Those layer onto this loop without changing its shape; the
47
+ * convergence goal is for `SmoothAgent.run` itself to delegate here.
48
+ */
49
+ /**
50
+ * The default, zero-infra executor: it drives the turn inline in the calling
51
+ * task by delegating straight to {@link SmoothAgent.run} / {@link SmoothAgent.runStream}.
52
+ *
53
+ * This is a verbatim pass-through — introducing it changes no behavior. It is
54
+ * the executor used unless a consumer explicitly opts into a durable backend.
55
+ */
56
+ export class InProcessExecutor {
57
+ execute(agent, message, history, thread) {
58
+ return agent.run(message, history, thread);
59
+ }
60
+ async *executeStreaming(agent, message, history, thread) {
61
+ yield* agent.runStream(message, history, thread);
62
+ }
63
+ }
64
+ /**
65
+ * Default iteration bound: the same 8 `SmoothAgent`'s own loop defaults to
66
+ * (`DEFAULTS.maxIterations` in `agent.ts`, which is not exported). The Rust
67
+ * reference defaults to 50 — each language core keeps its own engine's default
68
+ * so swapping in an executor never changes how long a turn may run.
69
+ */
70
+ const DEFAULT_MAX_ITERATIONS = 8;
71
+ /**
72
+ * Drive one agent turn deterministically over the supplied activity surface,
73
+ * appending to `messages` in place.
74
+ *
75
+ * `messages` must already be seeded with the system prompt, any prior turns, and
76
+ * the current user message — exactly the state {@link SmoothAgent.run} holds when
77
+ * it enters its loop. On return it carries the appended assistant/tool messages.
78
+ *
79
+ * This function performs **no I/O, wall-clock reads, or RNG** of its own — all of
80
+ * that is delegated to `activities` — so it is replay-safe: durable workflow code
81
+ * can run this very function, and the in-process path runs it too.
82
+ *
83
+ * Rejects with the first fatal error from {@link AgentActivities.modelCall} or
84
+ * {@link AgentActivities.toolInvoke}. Exhausting `maxIterations` is NOT an error:
85
+ * the turn stops and `messages` holds what it accumulated, matching
86
+ * {@link SmoothAgent.run}'s post-loop behavior.
87
+ */
88
+ export async function driveTurn(activities, messages, tools, policy = { maxIterations: DEFAULT_MAX_ITERATIONS }) {
89
+ for (let iteration = 1; iteration <= policy.maxIterations; iteration++) {
90
+ // Observe: snapshot the context window so the call can cross an activity
91
+ // boundary without aliasing the live conversation.
92
+ const context = [...messages];
93
+ // Think.
94
+ const response = await activities.modelCall(context, tools);
95
+ const choice = response.choices[0].message;
96
+ const toolCalls = choice.tool_calls ?? [];
97
+ const content = choice.content ?? '';
98
+ // Append the assistant turn (carrying any tool calls), mirroring the Rust
99
+ // engine's push condition exactly. The TS model response carries no
100
+ // `reasoning_content`, so that third disjunct has no analogue here.
101
+ if (content !== '' || toolCalls.length > 0) {
102
+ const assistantMsg = { role: 'assistant', content };
103
+ if (toolCalls.length > 0) {
104
+ assistantMsg.tool_calls = toolCalls.map((tc) => ({
105
+ id: tc.id,
106
+ type: 'function',
107
+ function: { name: tc.function.name, arguments: tc.function.arguments },
108
+ }));
109
+ }
110
+ messages.push(assistantMsg);
111
+ }
112
+ // No tool calls ⇒ the agent is done.
113
+ if (toolCalls.length === 0)
114
+ return;
115
+ // Act: run each tool and append its result, paired by call id + name so the
116
+ // model can match results to calls.
117
+ for (const tc of toolCalls) {
118
+ let args;
119
+ try {
120
+ args = tc.function.arguments ? JSON.parse(tc.function.arguments) : {};
121
+ }
122
+ catch {
123
+ // Malformed model output: report it to the model the way a failed
124
+ // tool would be, without spending an invocation on it.
125
+ messages.push({
126
+ role: 'tool',
127
+ tool_call_id: tc.id,
128
+ name: tc.function.name,
129
+ content: `error: tool '${tc.function.name}' received invalid JSON arguments`,
130
+ });
131
+ continue;
132
+ }
133
+ const result = await activities.toolInvoke({ id: tc.id, name: tc.function.name, arguments: args });
134
+ messages.push({ role: 'tool', tool_call_id: tc.id, name: tc.function.name, content: result.content });
135
+ }
136
+ }
137
+ }
138
+ /**
139
+ * The default, zero-infra {@link AgentActivities}: the model call goes through an
140
+ * {@link LlmProvider} and each tool call through the supplied tool set, inline in
141
+ * the calling task.
142
+ */
143
+ export class InProcessActivities {
144
+ llm;
145
+ model;
146
+ toolsByName;
147
+ /**
148
+ * @param llm the OpenAI-compatible chat client to call.
149
+ * @param tools the tools dispatchable in this turn.
150
+ * @param model model id for the request body; defaults to the same model
151
+ * `SmoothAgent` defaults to (`DEFAULTS.model` in `agent.ts`).
152
+ */
153
+ constructor(llm, tools = [], model = 'claude-haiku-4-5') {
154
+ this.llm = llm;
155
+ this.model = model;
156
+ this.toolsByName = new Map(tools.map((t) => [t.name, t]));
157
+ }
158
+ modelCall(messages, tools) {
159
+ return this.llm.chat.completions.create({
160
+ model: this.model,
161
+ messages,
162
+ ...(tools.length > 0 ? { tools } : {}),
163
+ });
164
+ }
165
+ async toolInvoke(call) {
166
+ // Tool failures are reported via `isError` rather than a rejection, so
167
+ // dispatch itself is effectively infallible here (Rust parity).
168
+ const tool = this.toolsByName.get(call.name);
169
+ if (!tool)
170
+ return { toolCallId: call.id, content: `error: unknown tool '${call.name}'`, isError: true };
171
+ try {
172
+ return { toolCallId: call.id, content: await tool.execute(call.arguments), isError: false };
173
+ }
174
+ catch (err) {
175
+ return {
176
+ toolCallId: call.id,
177
+ content: `error: tool '${call.name}' failed: ${err instanceof Error ? err.message : String(err)}`,
178
+ isError: true,
179
+ };
180
+ }
181
+ }
182
+ }
183
+ //# sourceMappingURL=executor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor.js","sourceRoot":"","sources":["../src/executor.ts"],"names":[],"mappings":"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"}
@@ -12,12 +12,12 @@
12
12
  * response throws away:
13
13
  *
14
14
  * 1. **The gateway cost header.** Cost is reported ONLY in a response header, and
15
- * on the streaming path those headers are gone once the SSE body is being
16
- * consumed — the regression core#102 fixed in Rust. `.withResponse()` hands
17
- * back the `Response` alongside the data, so both paths read the headers BEFORE
18
- * touching the body and surface the parsed cost on the documented seam
19
- * ({@link responseGatewayCost}): `headers` on a non-streaming response,
20
- * `gatewayCostUsd` on a leading {@link ChatChunk} when streaming.
15
+ * a plain `create({ stream: true })` hands back ONLY the stream — there is no
16
+ * `Response` left to ask for headers, so the cost is not late, it is absent.
17
+ * That is the regression core#102 fixed in Rust. `.withResponse()` keeps the
18
+ * `Response` alongside the data, and the parsed cost is surfaced on the
19
+ * documented seam ({@link responseGatewayCost}): `headers` on a non-streaming
20
+ * response, `gatewayCostUsd` on a leading {@link ChatChunk} when streaming.
21
21
  * 2. **Nothing else.** The request body is passed through verbatim, so the
22
22
  * agent's `metadata` (core#100) and every other field reach the wire unchanged.
23
23
  *
@@ -12,12 +12,12 @@
12
12
  * response throws away:
13
13
  *
14
14
  * 1. **The gateway cost header.** Cost is reported ONLY in a response header, and
15
- * on the streaming path those headers are gone once the SSE body is being
16
- * consumed — the regression core#102 fixed in Rust. `.withResponse()` hands
17
- * back the `Response` alongside the data, so both paths read the headers BEFORE
18
- * touching the body and surface the parsed cost on the documented seam
19
- * ({@link responseGatewayCost}): `headers` on a non-streaming response,
20
- * `gatewayCostUsd` on a leading {@link ChatChunk} when streaming.
15
+ * a plain `create({ stream: true })` hands back ONLY the stream — there is no
16
+ * `Response` left to ask for headers, so the cost is not late, it is absent.
17
+ * That is the regression core#102 fixed in Rust. `.withResponse()` keeps the
18
+ * `Response` alongside the data, and the parsed cost is surfaced on the
19
+ * documented seam ({@link responseGatewayCost}): `headers` on a non-streaming
20
+ * response, `gatewayCostUsd` on a leading {@link ChatChunk} when streaming.
21
21
  * 2. **Nothing else.** The request body is passed through verbatim, so the
22
22
  * agent's `metadata` (core#100) and every other field reach the wire unchanged.
23
23
  *
@@ -68,10 +68,12 @@ export function gatewayClientFrom(sdk) {
68
68
  * Open a streaming completion and yield its chunks, with the gateway cost riding a
69
69
  * leading chunk.
70
70
  *
71
- * The ordering here is the load-bearing part: `.withResponse()` resolves as soon as
72
- * the response HEAD arrives, so the cost header is parsed while the SSE body is
73
- * still untouched. Reading it after iterating the stream would find nothing — that
74
- * is the exact bug core#102 fixed in Rust and core#121 called out for Go.
71
+ * `.withResponse()` is the load-bearing part, and not for the reason it looks like:
72
+ * a fetch `Response` keeps `.headers` readable after its body is consumed, so
73
+ * nothing here is racing the stream. The hazard is dropping the `Response` entirely
74
+ * — a plain `create({ stream: true })` returns only the stream, leaving nothing to
75
+ * read a header off at any point. Reviewing this line means asking "is the response
76
+ * still captured?", not "is this read early enough?".
75
77
  *
76
78
  * The cost is emitted on its own leading chunk (matching Go's `ChatChunk{CostUSD}`)
77
79
  * so it is folded into the turn even if the stream errors before any usage arrives.
@@ -1 +1 @@
1
- {"version":3,"file":"gatewayClient.js","sourceRoot":"","sources":["../src/gatewayClient.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,OAAO,MAAM,MAAM,QAAQ,CAAC;AAI5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAgB7C,2EAA2E;AAC3E,MAAM,UAAU,mBAAmB,CAAC,OAA6B;IAC7D,OAAO,iBAAiB,CACpB,IAAI,MAAM,CAAC;QACP,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1E,GAAG,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAClF,CAAC,CACL,CAAC;AACN,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAW;IACzC,OAAO;QACH,IAAI,EAAE;YACF,WAAW,EAAE;gBACT,KAAK,CAAC,MAAM,CAAC,IAA6B;oBACtC,0EAA0E;oBAC1E,mEAAmE;oBACnE,wEAAwE;oBACxE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,WAAW;yBAChD,MAAM,CAAC,IAAyD,CAAC;yBACjE,YAAY,EAAE,CAAC;oBACpB,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAiC,CAAC;gBACjF,CAAC;gBACD,YAAY,CAAC,IAA6B;oBACtC,OAAO,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gBACvC,CAAC;aACJ;SACJ;KACJ,CAAC;AACN,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,KAAK,SAAS,CAAC,CAAC,gBAAgB,CAAC,GAAW,EAAE,IAA6B;IACvE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,WAAW;SAChD,MAAM,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,IAAI,EAAoD,CAAC;SACnF,YAAY,EAAE,CAAC;IACpB,MAAM,cAAc,GAAG,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC1D,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,cAAc,EAAE,CAAC;IAC1C,CAAC;IACD,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,IAA2C,EAAE,CAAC;QACpE,MAAM,KAAK,CAAC;IAChB,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"gatewayClient.js","sourceRoot":"","sources":["../src/gatewayClient.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,OAAO,MAAM,MAAM,QAAQ,CAAC;AAI5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAgB7C,2EAA2E;AAC3E,MAAM,UAAU,mBAAmB,CAAC,OAA6B;IAC7D,OAAO,iBAAiB,CACpB,IAAI,MAAM,CAAC;QACP,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1E,GAAG,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAClF,CAAC,CACL,CAAC;AACN,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAW;IACzC,OAAO;QACH,IAAI,EAAE;YACF,WAAW,EAAE;gBACT,KAAK,CAAC,MAAM,CAAC,IAA6B;oBACtC,0EAA0E;oBAC1E,mEAAmE;oBACnE,wEAAwE;oBACxE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,WAAW;yBAChD,MAAM,CAAC,IAAyD,CAAC;yBACjE,YAAY,EAAE,CAAC;oBACpB,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAiC,CAAC;gBACjF,CAAC;gBACD,YAAY,CAAC,IAA6B;oBACtC,OAAO,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gBACvC,CAAC;aACJ;SACJ;KACJ,CAAC;AACN,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,KAAK,SAAS,CAAC,CAAC,gBAAgB,CAAC,GAAW,EAAE,IAA6B;IACvE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,WAAW;SAChD,MAAM,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,IAAI,EAAoD,CAAC;SACnF,YAAY,EAAE,CAAC;IACpB,MAAM,cAAc,GAAG,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC1D,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,cAAc,EAAE,CAAC;IAC1C,CAAC;IACD,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,IAA2C,EAAE,CAAC;QACpE,MAAM,KAAK,CAAC;IAChB,CAAC;AACL,CAAC"}
package/dist/index.d.ts CHANGED
@@ -15,6 +15,8 @@ export { extractSection, findProjectContextFile, headingToAnchor, loadProjectCon
15
15
  export type { FileRef } from './context.js';
16
16
  export { CostTracker, DEFAULT_PRICING, GATEWAY_COST_HEADERS, parseGatewayCost } from './cost.js';
17
17
  export type { CostBudget, HeaderLike, ModelPricing, Usage } from './cost.js';
18
+ export { driveTurn, InProcessActivities, InProcessExecutor } from './executor.js';
19
+ export type { AgentActivities, AgentExecutor, ModelResponse, TurnPolicy } from './executor.js';
18
20
  export { createGatewayClient, gatewayClientFrom } from './gatewayClient.js';
19
21
  export type { GatewayClientOptions } from './gatewayClient.js';
20
22
  export { approve, approveAlways, deny, HumanDecision, isApproved } from './humanGate.js';
@@ -30,11 +32,14 @@ export type { Knowledge, KnowledgeHit } from './knowledge.js';
30
32
  export { MockLlmProvider, SCRIPTED_USAGE, textResponse, toolCallResponse } from './llmProvider.js';
31
33
  export type { LlmProvider, RecordedCall, ScriptedMessage, ScriptedUsage } from './llmProvider.js';
32
34
  export { InMemoryMemory } from './memory.js';
35
+ export { PROMPT_CACHE_BOUNDARY, PromptCache } from './promptCache.js';
33
36
  export type { Memory, MemoryEntry } from './memory.js';
34
37
  export { hasInjection, hasSecrets, NarcHook, redactMatch, scanInjection, scanSecrets, Severity, severityLabel } from './narc.js';
35
38
  export type { NarcAlert, NarcFinding } from './narc.js';
36
39
  export { LexicalReranker, NoopReranker } from './rerank.js';
37
40
  export type { Reranker } from './rerank.js';
41
+ export { jsonSchemaFormat, responseFormatField, structuredJson } from './structured.js';
42
+ export type { ResponseFormat } from './structured.js';
38
43
  export { SmoothAgentThread } from './thread.js';
39
44
  export { MAX_MATCHES, TOOL_SEARCH_NAME, ToolSearch } from './toolSearch.js';
40
45
  export { HashEmbedder, hashToken, VectorKnowledge } from './vector.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -10,6 +10,7 @@ export { Cast, Clearance, makeRole, RoleKind } from './cast.js';
10
10
  export { InMemoryCheckpointStore } from './checkpoint.js';
11
11
  export { extractSection, findProjectContextFile, headingToAnchor, loadProjectContext, parseFileReferences, parseLinkLine } from './context.js';
12
12
  export { CostTracker, DEFAULT_PRICING, GATEWAY_COST_HEADERS, parseGatewayCost } from './cost.js';
13
+ export { driveTurn, InProcessActivities, InProcessExecutor } from './executor.js';
13
14
  export { createGatewayClient, gatewayClientFrom } from './gatewayClient.js';
14
15
  export { approve, approveAlways, deny, HumanDecision, isApproved } from './humanGate.js';
15
16
  export { AutoMode, autoModeFromEnv, autoModeFromValue, decide, domainMatchesSuffixList, extractHosts, hostFromToken, PermissionHook, splitCompound, stripWrappersAndSudo, toolCategory, } from './permission.js';
@@ -18,8 +19,10 @@ export { DenyPolicy, DenyRules, globMatch } from './denyPolicy.js';
18
19
  export { InMemoryKnowledge } from './knowledge.js';
19
20
  export { MockLlmProvider, SCRIPTED_USAGE, textResponse, toolCallResponse } from './llmProvider.js';
20
21
  export { InMemoryMemory } from './memory.js';
22
+ export { PROMPT_CACHE_BOUNDARY, PromptCache } from './promptCache.js';
21
23
  export { hasInjection, hasSecrets, NarcHook, redactMatch, scanInjection, scanSecrets, Severity, severityLabel } from './narc.js';
22
24
  export { LexicalReranker, NoopReranker } from './rerank.js';
25
+ export { jsonSchemaFormat, responseFormatField, structuredJson } from './structured.js';
23
26
  export { SmoothAgentThread } from './thread.js';
24
27
  export { MAX_MATCHES, TOOL_SEARCH_NAME, ToolSearch } from './toolSearch.js';
25
28
  export { HashEmbedder, hashToken, VectorKnowledge } from './vector.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE3E,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAEhE,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAE1D,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,eAAe,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE/I,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAEjG,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE5E,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEzF,OAAO,EACH,QAAQ,EACR,eAAe,EACf,iBAAiB,EACjB,MAAM,EACN,uBAAuB,EACvB,YAAY,EACZ,aAAa,EACb,cAAc,EACd,aAAa,EACb,oBAAoB,EACpB,YAAY,GACf,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE1E,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnD,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEnG,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAEjI,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEvE,OAAO,EAAE,GAAG,EAAE,eAAe,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE3E,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAEhE,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAE1D,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,eAAe,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE/I,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAEjG,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElF,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE5E,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEzF,OAAO,EACH,QAAQ,EACR,eAAe,EACf,iBAAiB,EACjB,MAAM,EACN,uBAAuB,EACvB,YAAY,EACZ,aAAa,EACb,cAAc,EACd,aAAa,EACb,oBAAoB,EACpB,YAAY,GACf,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE1E,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnD,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEnG,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEtE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAEjI,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE5D,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAExF,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEvE,OAAO,EAAE,GAAG,EAAE,eAAe,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Prompt caching — the static/dynamic system-prompt split. The TypeScript port
3
+ * of the Rust reference `smooth-operator-core::conversation::PromptCache`.
4
+ *
5
+ * A system prompt has two halves with very different churn rates: role
6
+ * instructions and tool schemas barely change, while project context
7
+ * (AGENTS.md / CLAUDE.md, the working set) changes every turn. Anthropic's
8
+ * prompt cache keys on a PREFIX, so putting the volatile half first invalidates
9
+ * the whole thing. {@link PROMPT_CACHE_BOUNDARY} splits them: everything above
10
+ * the marker is static and hashed once for cache-key dedup, everything below is
11
+ * dynamic and can be swapped without busting the static prefix.
12
+ *
13
+ * Feed the result to the agent as its instructions:
14
+ *
15
+ * ```ts
16
+ * const cache = new PromptCache(`${rules}${PROMPT_CACHE_BOUNDARY}${projectContext}`);
17
+ * new SmoothAgent(provider, { instructions: cache.fullPrompt() });
18
+ * ```
19
+ */
20
+ /**
21
+ * Marker that splits a system prompt into a cacheable static portion and a
22
+ * frequently-changing dynamic portion.
23
+ */
24
+ export declare const PROMPT_CACHE_BOUNDARY = "__PROMPT_CACHE_BOUNDARY__";
25
+ /** A system prompt split at {@link PROMPT_CACHE_BOUNDARY}. */
26
+ export declare class PromptCache {
27
+ /** The cacheable half (above the marker). */
28
+ readonly staticPortion: string;
29
+ /** The frequently-changing half (below the marker). */
30
+ dynamicPortion: string;
31
+ private readonly _staticHash;
32
+ private readonly _staticTokens;
33
+ /**
34
+ * Split a system prompt at the boundary marker. With no marker the entire
35
+ * prompt is treated as dynamic — nothing is claimed cacheable that the
36
+ * caller didn't mark.
37
+ */
38
+ constructor(prompt: string);
39
+ /**
40
+ * Reassemble static + boundary + dynamic. With no static portion the dynamic
41
+ * half is returned alone, so a prompt that was never split round-trips
42
+ * unchanged rather than gaining a stray marker.
43
+ */
44
+ fullPrompt(): string;
45
+ /**
46
+ * Swap the dynamic half, leaving the static half and its hash untouched —
47
+ * the whole point of the split.
48
+ */
49
+ updateDynamic(dynamic: string): void;
50
+ /**
51
+ * Identifies the static portion for cache-key deduplication.
52
+ *
53
+ * Process-local only: it is compared against other hashes from THIS engine,
54
+ * never sent on the wire, so it deliberately does not match the Rust
55
+ * reference's value (Rust uses `DefaultHasher`, which is not reproducible
56
+ * across languages — or even across Rust releases). The ported contract is
57
+ * the behavior: same static text hashes the same, different static text
58
+ * hashes differently, and `updateDynamic` never changes it.
59
+ */
60
+ staticHash(): string;
61
+ /** Estimated tokens the static portion saves on a cache hit. */
62
+ cachedTokens(): number;
63
+ }
64
+ //# sourceMappingURL=promptCache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promptCache.d.ts","sourceRoot":"","sources":["../src/promptCache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH;;;GAGG;AACH,eAAO,MAAM,qBAAqB,8BAA8B,CAAC;AAEjE,8DAA8D;AAC9D,qBAAa,WAAW;IACpB,6CAA6C;IAC7C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,uDAAuD;IACvD,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IAEvC;;;;OAIG;gBACS,MAAM,EAAE,MAAM;IAa1B;;;;OAIG;IACH,UAAU,IAAI,MAAM;IAKpB;;;OAGG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIpC;;;;;;;;;OASG;IACH,UAAU,IAAI,MAAM;IAIpB,gEAAgE;IAChE,YAAY,IAAI,MAAM;CAGzB"}
@@ -0,0 +1,101 @@
1
+ /**
2
+ * Prompt caching — the static/dynamic system-prompt split. The TypeScript port
3
+ * of the Rust reference `smooth-operator-core::conversation::PromptCache`.
4
+ *
5
+ * A system prompt has two halves with very different churn rates: role
6
+ * instructions and tool schemas barely change, while project context
7
+ * (AGENTS.md / CLAUDE.md, the working set) changes every turn. Anthropic's
8
+ * prompt cache keys on a PREFIX, so putting the volatile half first invalidates
9
+ * the whole thing. {@link PROMPT_CACHE_BOUNDARY} splits them: everything above
10
+ * the marker is static and hashed once for cache-key dedup, everything below is
11
+ * dynamic and can be swapped without busting the static prefix.
12
+ *
13
+ * Feed the result to the agent as its instructions:
14
+ *
15
+ * ```ts
16
+ * const cache = new PromptCache(`${rules}${PROMPT_CACHE_BOUNDARY}${projectContext}`);
17
+ * new SmoothAgent(provider, { instructions: cache.fullPrompt() });
18
+ * ```
19
+ */
20
+ /**
21
+ * Marker that splits a system prompt into a cacheable static portion and a
22
+ * frequently-changing dynamic portion.
23
+ */
24
+ export const PROMPT_CACHE_BOUNDARY = '__PROMPT_CACHE_BOUNDARY__';
25
+ /** A system prompt split at {@link PROMPT_CACHE_BOUNDARY}. */
26
+ export class PromptCache {
27
+ /** The cacheable half (above the marker). */
28
+ staticPortion;
29
+ /** The frequently-changing half (below the marker). */
30
+ dynamicPortion;
31
+ _staticHash;
32
+ _staticTokens;
33
+ /**
34
+ * Split a system prompt at the boundary marker. With no marker the entire
35
+ * prompt is treated as dynamic — nothing is claimed cacheable that the
36
+ * caller didn't mark.
37
+ */
38
+ constructor(prompt) {
39
+ const idx = prompt.indexOf(PROMPT_CACHE_BOUNDARY);
40
+ if (idx < 0) {
41
+ this.staticPortion = '';
42
+ this.dynamicPortion = prompt;
43
+ }
44
+ else {
45
+ this.staticPortion = prompt.slice(0, idx);
46
+ this.dynamicPortion = prompt.slice(idx + PROMPT_CACHE_BOUNDARY.length);
47
+ }
48
+ this._staticHash = hashPromptPortion(this.staticPortion);
49
+ this._staticTokens = this.staticPortion === '' ? 0 : Math.floor(this.staticPortion.length / 4) + 1;
50
+ }
51
+ /**
52
+ * Reassemble static + boundary + dynamic. With no static portion the dynamic
53
+ * half is returned alone, so a prompt that was never split round-trips
54
+ * unchanged rather than gaining a stray marker.
55
+ */
56
+ fullPrompt() {
57
+ if (this.staticPortion === '')
58
+ return this.dynamicPortion;
59
+ return `${this.staticPortion}${PROMPT_CACHE_BOUNDARY}${this.dynamicPortion}`;
60
+ }
61
+ /**
62
+ * Swap the dynamic half, leaving the static half and its hash untouched —
63
+ * the whole point of the split.
64
+ */
65
+ updateDynamic(dynamic) {
66
+ this.dynamicPortion = dynamic;
67
+ }
68
+ /**
69
+ * Identifies the static portion for cache-key deduplication.
70
+ *
71
+ * Process-local only: it is compared against other hashes from THIS engine,
72
+ * never sent on the wire, so it deliberately does not match the Rust
73
+ * reference's value (Rust uses `DefaultHasher`, which is not reproducible
74
+ * across languages — or even across Rust releases). The ported contract is
75
+ * the behavior: same static text hashes the same, different static text
76
+ * hashes differently, and `updateDynamic` never changes it.
77
+ */
78
+ staticHash() {
79
+ return this._staticHash;
80
+ }
81
+ /** Estimated tokens the static portion saves on a cache hit. */
82
+ cachedTokens() {
83
+ return this._staticTokens;
84
+ }
85
+ }
86
+ /**
87
+ * FNV-1a (64-bit), the same non-cryptographic hash family the vector embedder
88
+ * uses, rendered as 16 hex chars like the Rust reference. BigInt because a
89
+ * 64-bit multiply overflows a JS number.
90
+ */
91
+ function hashPromptPortion(s) {
92
+ const MASK = (1n << 64n) - 1n;
93
+ let h = 14695981039346656037n;
94
+ const bytes = new TextEncoder().encode(s);
95
+ for (const b of bytes) {
96
+ h = (h ^ BigInt(b)) & MASK;
97
+ h = (h * 1099511628211n) & MASK;
98
+ }
99
+ return h.toString(16).padStart(16, '0');
100
+ }
101
+ //# sourceMappingURL=promptCache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promptCache.js","sourceRoot":"","sources":["../src/promptCache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,2BAA2B,CAAC;AAEjE,8DAA8D;AAC9D,MAAM,OAAO,WAAW;IACpB,6CAA6C;IACpC,aAAa,CAAS;IAC/B,uDAAuD;IACvD,cAAc,CAAS;IACN,WAAW,CAAS;IACpB,aAAa,CAAS;IAEvC;;;;OAIG;IACH,YAAY,MAAc;QACtB,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;QAClD,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;YACV,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;YACxB,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;QACjC,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YAC1C,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;QAC3E,CAAC;QACD,IAAI,CAAC,WAAW,GAAG,iBAAiB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACzD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IACvG,CAAC;IAED;;;;OAIG;IACH,UAAU;QACN,IAAI,IAAI,CAAC,aAAa,KAAK,EAAE;YAAE,OAAO,IAAI,CAAC,cAAc,CAAC;QAC1D,OAAO,GAAG,IAAI,CAAC,aAAa,GAAG,qBAAqB,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;IACjF,CAAC;IAED;;;OAGG;IACH,aAAa,CAAC,OAAe;QACzB,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;IAClC,CAAC;IAED;;;;;;;;;OASG;IACH,UAAU;QACN,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAED,gEAAgE;IAChE,YAAY;QACR,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;CACJ;AAED;;;;GAIG;AACH,SAAS,iBAAiB,CAAC,CAAS;IAChC,MAAM,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;IAC9B,IAAI,CAAC,GAAG,qBAAqB,CAAC;IAC9B,MAAM,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC1C,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACpB,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QAC3B,CAAC,GAAG,CAAC,CAAC,GAAG,cAAc,CAAC,GAAG,IAAI,CAAC;IACpC,CAAC;IACD,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;AAC5C,CAAC"}
@@ -0,0 +1,82 @@
1
+ /**
2
+ * Structured output — a guaranteed-JSON answer conforming to a caller-supplied
3
+ * JSON Schema. Port of the Rust reference's `ResponseFormat`
4
+ * (`rust/smooth-operator-core/src/llm.rs`, SMOODEV-1472).
5
+ *
6
+ * Wire mapping (OpenAI-compatible, e.g. the LiteLLM gateway at `llm.smoo.ai`):
7
+ * serialized on `/chat/completions` as
8
+ *
9
+ * ```json
10
+ * { "response_format": { "type": "json_schema",
11
+ * "json_schema": { "name": …, "schema": …, "strict": … } } }
12
+ * ```
13
+ *
14
+ * Usage follows this package's existing `metadataField` idiom — a spreadable
15
+ * fragment, so an unset format contributes nothing and the wire stays
16
+ * byte-identical:
17
+ *
18
+ * ```ts
19
+ * const response = await client.chat.completions.create({
20
+ * model, messages, ...responseFormatField(jsonSchemaFormat('weather', schema)),
21
+ * });
22
+ * const report = structuredJson<WeatherReport>(response);
23
+ * ```
24
+ *
25
+ * The Rust engine also has an Anthropic-native path (no `response_format` field
26
+ * there, so it forces a synthetic single tool call whose `input_schema` IS the
27
+ * requested schema). This engine talks to OpenAI-compatible endpoints only, so
28
+ * there is nothing to mirror.
29
+ */
30
+ /** Constrains the model's reply to a named JSON Schema. */
31
+ export interface ResponseFormat {
32
+ /** A short identifier for the schema, e.g. `weather_report`. */
33
+ name: string;
34
+ /** The JSON Schema the response object must conform to. */
35
+ schema: Record<string, unknown>;
36
+ /** Request exact schema adherence (no extra keys). OpenAI/LiteLLM enforce it. */
37
+ strict: boolean;
38
+ }
39
+ /** A strict JSON-schema response format — the analogue of Rust's `ResponseFormat::json_schema`. */
40
+ export declare function jsonSchemaFormat(name: string, schema: Record<string, unknown>): ResponseFormat;
41
+ /** The OpenAI-compatible `response_format` wire object. */
42
+ interface ResponseFormatWire {
43
+ type: 'json_schema';
44
+ json_schema: {
45
+ name: string;
46
+ schema: Record<string, unknown>;
47
+ strict: boolean;
48
+ };
49
+ }
50
+ /**
51
+ * Spreadable `{ response_format }` fragment for a model request body. An absent
52
+ * format yields `{}`, so the wire stays byte-identical when unset (Rust parity:
53
+ * the field is `Option` and skipped when `None`). Mirrors {@link metadataField}.
54
+ */
55
+ export declare function responseFormatField(format?: ResponseFormat): {
56
+ response_format?: ResponseFormatWire;
57
+ };
58
+ /** The slice of a chat completion these helpers read. */
59
+ interface CompletionLike {
60
+ choices: Array<{
61
+ message: {
62
+ content?: string | null;
63
+ };
64
+ }>;
65
+ }
66
+ /**
67
+ * Parse a completion's content as JSON. For a structured-output response this is
68
+ * the schema-conforming object the model produced.
69
+ *
70
+ * Throws if the content is empty or is not valid JSON, quoting a truncated
71
+ * snippet of the offending content so a model that ignored the schema can be
72
+ * diagnosed from the error alone. Never silently returns an empty value.
73
+ *
74
+ * The type parameter is an assertion, not a validation — TypeScript has no
75
+ * runtime types, so unlike Rust's `deserialize_json` nothing here can check the
76
+ * parsed value against `T`. There is deliberately no separate `deserializeJson`:
77
+ * it would be this function with a cast, and pretending otherwise would imply a
78
+ * guarantee this engine cannot make.
79
+ */
80
+ export declare function structuredJson<T = unknown>(response: CompletionLike): T;
81
+ export {};
82
+ //# sourceMappingURL=structured.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"structured.d.ts","sourceRoot":"","sources":["../src/structured.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,2DAA2D;AAC3D,MAAM,WAAW,cAAc;IAC3B,gEAAgE;IAChE,IAAI,EAAE,MAAM,CAAC;IACb,2DAA2D;IAC3D,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,iFAAiF;IACjF,MAAM,EAAE,OAAO,CAAC;CACnB;AAED,mGAAmG;AACnG,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,cAAc,CAE9F;AAED,2DAA2D;AAC3D,UAAU,kBAAkB;IACxB,IAAI,EAAE,aAAa,CAAC;IACpB,WAAW,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC;CACnF;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,CAAC,EAAE,cAAc,GAAG;IAAE,eAAe,CAAC,EAAE,kBAAkB,CAAA;CAAE,CAQrG;AAED,yDAAyD;AACzD,UAAU,cAAc;IACpB,OAAO,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE;YAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;SAAE,CAAA;KAAE,CAAC,CAAC;CAC5D;AAOD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,CAAC,GAAG,OAAO,EAAE,QAAQ,EAAE,cAAc,GAAG,CAAC,CAWvE"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * Structured output — a guaranteed-JSON answer conforming to a caller-supplied
3
+ * JSON Schema. Port of the Rust reference's `ResponseFormat`
4
+ * (`rust/smooth-operator-core/src/llm.rs`, SMOODEV-1472).
5
+ *
6
+ * Wire mapping (OpenAI-compatible, e.g. the LiteLLM gateway at `llm.smoo.ai`):
7
+ * serialized on `/chat/completions` as
8
+ *
9
+ * ```json
10
+ * { "response_format": { "type": "json_schema",
11
+ * "json_schema": { "name": …, "schema": …, "strict": … } } }
12
+ * ```
13
+ *
14
+ * Usage follows this package's existing `metadataField` idiom — a spreadable
15
+ * fragment, so an unset format contributes nothing and the wire stays
16
+ * byte-identical:
17
+ *
18
+ * ```ts
19
+ * const response = await client.chat.completions.create({
20
+ * model, messages, ...responseFormatField(jsonSchemaFormat('weather', schema)),
21
+ * });
22
+ * const report = structuredJson<WeatherReport>(response);
23
+ * ```
24
+ *
25
+ * The Rust engine also has an Anthropic-native path (no `response_format` field
26
+ * there, so it forces a synthetic single tool call whose `input_schema` IS the
27
+ * requested schema). This engine talks to OpenAI-compatible endpoints only, so
28
+ * there is nothing to mirror.
29
+ */
30
+ /** A strict JSON-schema response format — the analogue of Rust's `ResponseFormat::json_schema`. */
31
+ export function jsonSchemaFormat(name, schema) {
32
+ return { name, schema, strict: true };
33
+ }
34
+ /**
35
+ * Spreadable `{ response_format }` fragment for a model request body. An absent
36
+ * format yields `{}`, so the wire stays byte-identical when unset (Rust parity:
37
+ * the field is `Option` and skipped when `None`). Mirrors {@link metadataField}.
38
+ */
39
+ export function responseFormatField(format) {
40
+ if (!format)
41
+ return {};
42
+ return {
43
+ response_format: {
44
+ type: 'json_schema',
45
+ json_schema: { name: format.name, schema: format.schema, strict: format.strict },
46
+ },
47
+ };
48
+ }
49
+ /** First 200 characters (not bytes) — matches the Rust reference's truncation. */
50
+ function snippet(text) {
51
+ return [...text].slice(0, 200).join('');
52
+ }
53
+ /**
54
+ * Parse a completion's content as JSON. For a structured-output response this is
55
+ * the schema-conforming object the model produced.
56
+ *
57
+ * Throws if the content is empty or is not valid JSON, quoting a truncated
58
+ * snippet of the offending content so a model that ignored the schema can be
59
+ * diagnosed from the error alone. Never silently returns an empty value.
60
+ *
61
+ * The type parameter is an assertion, not a validation — TypeScript has no
62
+ * runtime types, so unlike Rust's `deserialize_json` nothing here can check the
63
+ * parsed value against `T`. There is deliberately no separate `deserializeJson`:
64
+ * it would be this function with a cast, and pretending otherwise would imply a
65
+ * guarantee this engine cannot make.
66
+ */
67
+ export function structuredJson(response) {
68
+ const content = (response.choices[0]?.message?.content ?? '').trim();
69
+ if (content === '') {
70
+ throw new Error('structured output: model returned empty content (expected a JSON object)');
71
+ }
72
+ try {
73
+ return JSON.parse(content);
74
+ }
75
+ catch (error) {
76
+ const reason = error instanceof Error ? error.message : String(error);
77
+ throw new Error(`structured output: response content was not valid JSON (${reason}): ${snippet(content)}`);
78
+ }
79
+ }
80
+ //# sourceMappingURL=structured.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"structured.js","sourceRoot":"","sources":["../src/structured.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAYH,mGAAmG;AACnG,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAE,MAA+B;IAC1E,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAC1C,CAAC;AAQD;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAuB;IACvD,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACvB,OAAO;QACH,eAAe,EAAE;YACb,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;SACnF;KACJ,CAAC;AACN,CAAC;AAOD,kFAAkF;AAClF,SAAS,OAAO,CAAC,IAAY;IACzB,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC5C,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,cAAc,CAAc,QAAwB;IAChE,MAAM,OAAO,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACrE,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC;IAChG,CAAC;IACD,IAAI,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAM,CAAC;IACpC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACtE,MAAM,IAAI,KAAK,CAAC,2DAA2D,MAAM,MAAM,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC/G,CAAC;AACL,CAAC"}
@@ -68,10 +68,15 @@ export declare class Workflow<S> {
68
68
  * turn: a sub-workflow node executes its whole sub-graph within that one turn,
69
69
  * and the top level stays turn-gated.
70
70
  *
71
+ * The result is an ordinary {@link NodeFn}: `addEdge` and `addConditionalEdge`
72
+ * treat it exactly like a plain node, as an edge source and as an edge target
73
+ * alike. Plain nodes and sub-workflows are therefore interchangeable vertices of
74
+ * one composite graph, and they nest arbitrarily — a sub-workflow may itself
75
+ * contain sub-workflows.
76
+ *
71
77
  * `mapIn` projects parent state into the child's state type; `mapOut` folds the
72
78
  * child's final state back into the parent's. An error from any child node
73
- * propagates out of the parent's `run`. Sub-workflows nest — a child may itself
74
- * hold a sub-workflow node.
79
+ * propagates out of the parent's `run`.
75
80
  */
76
81
  export declare function subWorkflowNode<P, C>(child: Workflow<C>, mapIn: (state: P) => C, mapOut: (parent: P, child: C) => P): NodeFn<P>;
77
82
  //# sourceMappingURL=workflow.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"workflow.d.ts","sourceRoot":"","sources":["../src/workflow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,sEAAsE;AACtE,eAAO,MAAM,GAAG,EAAG,SAAkB,CAAC;AAEtC,sEAAsE;AACtE,MAAM,MAAM,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAErD,qFAAqF;AACrF,MAAM,MAAM,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,CAAC;AAE7C,yEAAyE;AACzE,qBAAa,aAAc,SAAQ,KAAK;gBACxB,OAAO,EAAE,MAAM;CAI9B;AAKD;;;;;;GAMG;AACH,qBAAa,QAAQ,CAAC,CAAC;IAKP,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAJrC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgC;IACtD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA8B;IACpD,OAAO,CAAC,KAAK,CAAqB;gBAEL,QAAQ,SAAM;IAE3C,2EAA2E;IAC3E,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI;IAK5C,uCAAuC;IACvC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;IAKvC;;;OAGG;IACH,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI;IAKzD,kDAAkD;IAClD,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK5B,+DAA+D;IAC/D,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK1B;;;;;OAKG;IACG,GAAG,CAAC,YAAY,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;CAmCzC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAE/H"}
1
+ {"version":3,"file":"workflow.d.ts","sourceRoot":"","sources":["../src/workflow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,sEAAsE;AACtE,eAAO,MAAM,GAAG,EAAG,SAAkB,CAAC;AAEtC,sEAAsE;AACtE,MAAM,MAAM,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAErD,qFAAqF;AACrF,MAAM,MAAM,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,CAAC;AAE7C,yEAAyE;AACzE,qBAAa,aAAc,SAAQ,KAAK;gBACxB,OAAO,EAAE,MAAM;CAI9B;AAKD;;;;;;GAMG;AACH,qBAAa,QAAQ,CAAC,CAAC;IAKP,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAJrC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgC;IACtD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA8B;IACpD,OAAO,CAAC,KAAK,CAAqB;gBAEL,QAAQ,SAAM;IAE3C,2EAA2E;IAC3E,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI;IAK5C,uCAAuC;IACvC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;IAKvC;;;OAGG;IACH,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI;IAKzD,kDAAkD;IAClD,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK5B,+DAA+D;IAC/D,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK1B;;;;;OAKG;IACG,GAAG,CAAC,YAAY,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;CAmCzC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAE/H"}
package/dist/workflow.js CHANGED
@@ -115,10 +115,15 @@ export class Workflow {
115
115
  * turn: a sub-workflow node executes its whole sub-graph within that one turn,
116
116
  * and the top level stays turn-gated.
117
117
  *
118
+ * The result is an ordinary {@link NodeFn}: `addEdge` and `addConditionalEdge`
119
+ * treat it exactly like a plain node, as an edge source and as an edge target
120
+ * alike. Plain nodes and sub-workflows are therefore interchangeable vertices of
121
+ * one composite graph, and they nest arbitrarily — a sub-workflow may itself
122
+ * contain sub-workflows.
123
+ *
118
124
  * `mapIn` projects parent state into the child's state type; `mapOut` folds the
119
125
  * child's final state back into the parent's. An error from any child node
120
- * propagates out of the parent's `run`. Sub-workflows nest — a child may itself
121
- * hold a sub-workflow node.
126
+ * propagates out of the parent's `run`.
122
127
  */
123
128
  export function subWorkflowNode(child, mapIn, mapOut) {
124
129
  return async (state) => mapOut(state, await child.run(mapIn(state)));
@@ -1 +1 @@
1
- {"version":3,"file":"workflow.js","sourceRoot":"","sources":["../src/workflow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflow.js","sourceRoot":"","sources":["../src/workflow.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smooai/smooth-operator-core",
3
- "version": "1.8.0",
3
+ "version": "1.8.3",
4
4
  "description": "Native TypeScript implementation of the smooth-operator agent engine — an in-process, OpenAI-compatible agentic tool-calling loop with knowledge grounding. The TypeScript sibling of the Rust reference engine, the C# core, and the Python core.",
5
5
  "type": "module",
6
6
  "license": "MIT",