@theokit/agents 13.0.0-next.7 → 13.0.0-next.9

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/CHANGELOG.md CHANGED
@@ -1,5 +1,51 @@
1
1
  # @theokit/agents
2
2
 
3
+ ## 13.0.0-next.9
4
+
5
+ ### Minor Changes
6
+
7
+ - c59abf6: A foreign configuration root can be imported in part
8
+
9
+ `resolveCompatSources` returned the bare literal `'claude-code'`, which the SDK reads as "import
10
+ every surface" — hooks, plugins, skills, subagents. `settingSources.claudeCode.import` now names the
11
+ surfaces, and the resolved value carries them.
12
+
13
+ The distinction is the reason the grant exists: `.claude/` usually arrives with the clone and its
14
+ `hooks.json` executes shell, so "take the skills, refuse the hooks" is the ordinary thing to want,
15
+ and the only choices were all of it or none of it.
16
+
17
+ Absent `import` still means the whole root, so nothing existing changes. An EMPTY list is refused
18
+ rather than guessed: "no surfaces" and "unset, so all of them" are both defensible readings of `[]`,
19
+ they differ by whether shell executes, and picking one would settle a security question by
20
+ convention.
21
+
22
+ `CompatSurface` and `ResolvedCompatSource` are declared here rather than imported from the SDK, for
23
+ the reason already recorded beside the literal: they do not exist in `@theokit/sdk@4.52.1`, this
24
+ package's declared floor.
25
+
26
+ Closes usetheokit/theokit#686.
27
+
28
+ ## 13.0.0-next.8
29
+
30
+ ### Minor Changes
31
+
32
+ - feb5781: `AgentBuilder.create().hookApproval()` — the fluent twin of `defineAgent({ hookApproval })`
33
+
34
+ `13.0.0-next.7` shipped the hook approval gate reachable through `defineAgent` and capabilities, and
35
+ not through the fluent builder. A consumer that authors with `AgentBuilder.create()` had no way to
36
+ reach it: `.use()` composes presets rather than sinking capabilities, and the definition reaches
37
+ `streamAgentTurnInProcess` with `local` already assembled, so there was no downstream place to inject
38
+ `local.hooks` by hand either.
39
+
40
+ Fifth instance of one family and a NEW variant. The first four were "the symbol exists and the barrel
41
+ omits it", which the emitted-export guard now catches. This one is the opposite: the symbol is
42
+ exported, on the compiled waist, and reachable through one authoring door — the other door simply
43
+ does not offer it, and an export check is green on that.
44
+
45
+ So the guard for this variant builds the SAME agent through BOTH doors and asserts they arrive at the
46
+ same compiled waist. It catches the worst case too: an interface that declares the method while the
47
+ factory never wires it compiles, does nothing, and fails this test.
48
+
3
49
  ## 13.0.0-next.7
4
50
 
5
51
  ### Patch Changes
@@ -1,4 +1,4 @@
1
- import { InlineSkill, SystemPromptResolver, SettingSource, MemorySettings, SkillsSettings, ContextSettings } from '@theokit/sdk';
1
+ import { InlineSkill, TrustPosture, SettingSource, SystemPromptResolver, MemorySettings, SkillsSettings, ContextSettings } from '@theokit/sdk';
2
2
  import { TheokitAgentError } from '@theokit/sdk/errors';
3
3
  import { R as ReasoningEffort, a as MemoryOptions, P as ProjectContextOptions, M as McpServersMap, H as HumanInTheLoopOptions, C as CheckpointOptions, T as ToolOptions, A as ApprovalOptions, B as BudgetOptions } from './types-C16Wuh9E.js';
4
4
 
@@ -97,6 +97,183 @@ type SkillsSelection = readonly (string | InlineSkill)[] | ((ctx: SkillsRequestC
97
97
  */
98
98
  declare function resolveEnabledSkills(selection: SkillsSelection | undefined, ctx: SkillsRequestContext): Promise<string[] | undefined>;
99
99
 
100
+ /**
101
+ * M68 — the trust gate for `settingSources`.
102
+ *
103
+ * ## The defect this module closes
104
+ *
105
+ * `settingSources` enables on-disk config discovery. `'user'` reads `~/.theokit/` — the operator's
106
+ * own machine, which no third party controls. `'project'` reads `<cwd>/.theokit/`, **including
107
+ * `hooks.json`, which executes shell**.
108
+ *
109
+ * The previous API took `readonly SettingSource[]`, and its JSDoc justified the risk this way:
110
+ * *"it is opt-in because `.theokit/` is the app's own repo (informed consent)"*. That premise holds
111
+ * for a web app whose `cwd` is its own deploy. It does **not** hold for the class of product this
112
+ * framework addresses — an agent whose `cwd` is a repository the user just cloned. There `.theokit/`
113
+ * is attacker-controlled content, and enabling `'project'` is remote code execution on the first
114
+ * `build()`.
115
+ *
116
+ * Documenting it did not prevent it. The measured consumer (TheoCode) did not trust the API: it
117
+ * gated from the outside, with a `posture.allows` of its own (`chat.ts:386`, comment B-008). It
118
+ * already **had** the right decision and could not pass it through, because the API only accepted
119
+ * strings. The gate existed on its side and evaporated at the boundary.
120
+ *
121
+ * ## The evidence is the SDK's, not one invented here
122
+ *
123
+ * `TrustPosture` is `@theokit/sdk`'s own trust primitive, and `recordWiring`'s doc says *"a posture
124
+ * is the only thing in this package that retains a capability"*. A bespoke type would make two trust
125
+ * grammars coexist and drift apart (ADR 0063).
126
+ */
127
+ /**
128
+ * The framework's capability vocabulary — deliberately a single name (ADR 0065).
129
+ *
130
+ * `allows` is all-or-nothing in the SDK: every declared `K` gets the same boolean. A finer
131
+ * vocabulary (`hooks`, `skills`, `subagents`, `mcp`) would promise the consumer it can gate one
132
+ * without gating the other, and the primitive does not deliver that. An API that suggests a
133
+ * distinction the runtime does not make teaches the wrong thing, and the error only surfaces when
134
+ * somebody depends on the distinction.
135
+ */
136
+ type SettingSourceCapability = 'projectSettings';
137
+ /** Authorization to read config from the working directory. Requires the posture, never a claim. */
138
+ interface ProjectSettingsGrant {
139
+ /**
140
+ * Typically the output of `resolveTrustPosture` — which is what gives it `source` (`'env' |
141
+ * 'store' | 'default'`) and therefore a refusal that says WHERE the decision came from instead of
142
+ * merely denying.
143
+ */
144
+ readonly trustedBy: TrustPosture<SettingSourceCapability>;
145
+ }
146
+ /**
147
+ * Which on-disk config roots the agent may read.
148
+ *
149
+ * The asymmetry is the design: `user` is a boolean because `~/.theokit/` belongs to the operator;
150
+ * `project` requires evidence because `<cwd>/.theokit/` may not. Omitting a root is not enabling it
151
+ * — never "enabling without a gate". The asymmetry is inherited from the SDK itself, whose
152
+ * `TrustPostureInput.envOverride` documents that `false` and `undefined` both mean "the operator did
153
+ * not turn it on", not "turned it off".
154
+ */
155
+ interface SettingSourcesSelection {
156
+ /** `~/.theokit/` — the operator's machine. No gate: no third party controls it. */
157
+ readonly user?: boolean;
158
+ /** `<cwd>/.theokit/` — controlled by whoever wrote the open repository. Requires evidence. */
159
+ readonly project?: ProjectSettingsGrant;
160
+ /**
161
+ * `<cwd>/.claude/` — a FOREIGN configuration dialect, read only once declared
162
+ * (`usetheokit/theokit-sdk#524`).
163
+ *
164
+ * ## Two questions, and which half of this field answers each
165
+ *
166
+ * The SDK's docblock separates them, and the separation is the whole point of `compatSources`:
167
+ * a trust gate answers *"do I trust the code in this directory?"*; importing another product's
168
+ * configuration answers *"do I want it imported into this one?"*. They come apart in the ordinary
169
+ * case, because `.claude/` is populated in exactly the repository one trusts most — for a
170
+ * different tool, by a teammate who never heard of this runtime.
171
+ *
172
+ * So the two are answered by two different things here, and it matters which:
173
+ *
174
+ * | Question | Answered by |
175
+ * |---|---|
176
+ * | do I want the foreign dialect imported? | **declaring this field at all** — omitting is not enabling |
177
+ * | do I trust this directory's code to run? | the `TrustPosture` inside the grant |
178
+ *
179
+ * ## Why the grant is `ProjectSettingsGrant` and not a vocabulary of its own
180
+ *
181
+ * Not because the two questions are the same — they are not. Because a separate grant could not
182
+ * carry the distinction even if it existed: `TrustPosture.allows` is `Record<K, boolean>` and the
183
+ * SDK documents every value as moving together with the level, so a `'foreignDialects'` capability
184
+ * beside `'projectSettings'` would promise an operator they can grant one and withhold the other,
185
+ * and `resolveTrustPosture` would hand back the same boolean for both. That is precisely the
186
+ * failure ADR 0065 exists to prevent, and inventing the second name would commit it while looking
187
+ * like rigour.
188
+ *
189
+ * The consent half is therefore carried by the declaration, which is a real and sufficient
190
+ * boundary: an operator who trusts a repository completely still reads no `.claude/` until they
191
+ * write this field. What the grant adds on top is stricter than the SDK — there, listing a dialect
192
+ * is enough — and the extra strictness is deliberate: this reads a `hooks.json` that executes
193
+ * shell out of a directory that usually arrived with the clone.
194
+ */
195
+ readonly claudeCode?: ProjectSettingsGrant & {
196
+ /**
197
+ * #686 — WHICH surfaces of the foreign root to import. Absent means all of them, which is what
198
+ * every caller before this meant and still means.
199
+ *
200
+ * The distinction is the reason the grant exists. `.claude/` usually arrives with the clone and
201
+ * its `hooks.json` executes shell, so "take the skills, refuse the hooks" is the ordinary thing
202
+ * to want — and before this the only choices were all of it or none of it.
203
+ *
204
+ * Requires `@theokit/sdk >= 5.4.0`, which is where the narrowed form landed. On an older SDK the
205
+ * runtime drops an unrecognised shape in SILENCE, so declaring it there would import nothing at
206
+ * all rather than importing less — refused at resolve time instead.
207
+ */
208
+ readonly import?: readonly CompatSurface[];
209
+ };
210
+ }
211
+ /**
212
+ * The surfaces a foreign configuration root can contribute.
213
+ *
214
+ * Written out rather than imported, for the same reason as the `claude-code` literal below:
215
+ * `CompatSurface` does not exist in `@theokit/sdk@4.52.1`, this package's declared floor, and a gate
216
+ * that cannot build against its own minimum dependency is worse than a constant that has been
217
+ * checked. Verified against the published 5.4.0 `.d.ts`, where the union is
218
+ * `"hooks" | "plugins" | "skills" | "subagents"` — note `subagents`, not `agents`.
219
+ */
220
+ type CompatSurface = 'hooks' | 'plugins' | 'skills' | 'subagents';
221
+ /** What `resolveCompatSources` returns: the whole root, or the root narrowed to some surfaces. */
222
+ type ResolvedCompatSource = 'claude-code' | {
223
+ readonly kind: 'claude-code';
224
+ readonly import: readonly CompatSurface[];
225
+ };
226
+ /**
227
+ * Refusal to read the working directory for lack of trust.
228
+ *
229
+ * Descends from `TheokitAgentError` because typed errors are an unbreakable rule here — and because
230
+ * `isTransientError` only sees this hierarchy. A class extending plain `Error` would be invisible to
231
+ * the predicate that separates recoverable from unrecoverable (the defect M67 fixed in five
232
+ * classes).
233
+ */
234
+ declare class UntrustedSettingSourceError extends TheokitAgentError {
235
+ /** Where the trust decision came from: `'env' | 'store' | 'default'`. */
236
+ readonly trustSource: string;
237
+ /** The refused capability. */
238
+ readonly capability: SettingSourceCapability;
239
+ readonly name = "UntrustedSettingSourceError";
240
+ constructor(message: string,
241
+ /** Where the trust decision came from: `'env' | 'store' | 'default'`. */
242
+ trustSource: string,
243
+ /** The refused capability. */
244
+ capability: SettingSourceCapability);
245
+ }
246
+ /**
247
+ * Translate the declared selection into the `SettingSource`s the SDK accepts, refusing what the
248
+ * posture does not authorize.
249
+ *
250
+ * Refuses rather than ignores (ADR 0064). Ignoring would leave the product running in the belief
251
+ * that the repository's hooks are active — a silent failure mode, on the wrong side. The SDK already
252
+ * picked that side for the same problem: `recordWiring` throws `UngatedCapabilityError` when
253
+ * somebody registers a capability the posture does not gate.
254
+ *
255
+ * @throws {UntrustedSettingSourceError} when `project` is requested and the posture does not grant it.
256
+ */
257
+ declare function resolveSettingSources(selection: SettingSourcesSelection | undefined): readonly SettingSource[];
258
+ /**
259
+ * The foreign configuration dialects this layer forwards, once the posture authorises them.
260
+ *
261
+ * ## Why it is a separate function and the same vocabulary
262
+ *
263
+ * Separate because the SDK takes them on a separate option (`local.compatSources`); the same
264
+ * `ProjectSettingsGrant` because the thing being authorised is identical — reading a `hooks.json`
265
+ * that executes shell out of a directory the operator does not necessarily control.
266
+ *
267
+ * ## What it deliberately does NOT do
268
+ *
269
+ * Validate the source NAME. The SDK DROPS an unrecognised name rather than turning it into
270
+ * `<cwd>/<name>`, so a typo fails closed there; turning that into a throw here would convert a safe
271
+ * default into a crash. This gate decides authorisation, never vocabulary.
272
+ *
273
+ * @throws {UntrustedSettingSourceError} when a source is requested and the posture does not grant it.
274
+ */
275
+ declare function resolveCompatSources(selection: SettingSourcesSelection | undefined): readonly ResolvedCompatSource[];
276
+
100
277
  /**
101
278
  * Project the M8 fields from `CompiledAgentOptions` into `Agent.create()` arguments. Only the async
102
279
  * `@ProjectContext` resolver is built here (it does I/O, so the compiler keeps it raw). `applied`
@@ -245,7 +422,7 @@ interface CompiledAgentOptions {
245
422
  * Resolved at compile time by `resolveCompatSources`, exactly like `settingSources`: a value here
246
423
  * can only hold a source some posture granted, so the adapter projects rather than decides.
247
424
  */
248
- compatSources?: readonly string[];
425
+ compatSources?: readonly ResolvedCompatSource[];
249
426
  /**
250
427
  * #686 — the consumer's pre-spawn approval gate, forwarded to `Agent.create({ local: { hooks } })`.
251
428
  *
@@ -298,4 +475,4 @@ interface CompiledAgentOptions {
298
475
  skillsResolver?: SkillsSelection;
299
476
  }
300
477
 
301
- export { type CompiledAgentOptions as C, type Guardrail as G, type HookApprovalGate as H, type SkillsSelection as S, type ToolWalkResult as T, type CompiledTool as a, CostBudgetExceededError as b, type GuardrailAction as c, type GuardrailPhase as d, type GuardrailResult as e, GuardrailViolationError as f, type HookApprovalRequest as g, HookGateUnsupportedError as h, type SkillsRequestContext as i, type ToolboxWalkResult as j, compileTools as k, resolveEnabledSkills as r };
478
+ export { type CompiledAgentOptions as C, type Guardrail as G, type HookApprovalGate as H, type ProjectSettingsGrant as P, type ResolvedCompatSource as R, type SkillsSelection as S, type ToolWalkResult as T, UntrustedSettingSourceError as U, type SettingSourcesSelection as a, type CompiledTool as b, type CompatSurface as c, CostBudgetExceededError as d, type GuardrailAction as e, type GuardrailPhase as f, type GuardrailResult as g, GuardrailViolationError as h, type HookApprovalRequest as i, HookGateUnsupportedError as j, type SettingSourceCapability as k, type SkillsRequestContext as l, type ToolboxWalkResult as m, compileTools as n, resolveEnabledSkills as o, resolveSettingSources as p, resolveCompatSources as r };
@@ -1,11 +1,11 @@
1
1
  import { ExecutionContext } from '@theokit/http';
2
2
  import { c as AgentOptions, T as ToolOptions, P as ProjectContextOptions, H as HumanInTheLoopOptions, R as ReasoningEffort, M as McpServersMap } from './types-C16Wuh9E.js';
3
- import { C as CompiledAgentOptions, a as CompiledTool, G as Guardrail, S as SkillsSelection } from './agent-compiler-C2jIZ4CZ.js';
3
+ import { C as CompiledAgentOptions, b as CompiledTool, G as Guardrail, S as SkillsSelection, a as SettingSourcesSelection, H as HookApprovalGate } from './agent-compiler-DZorqtK2.js';
4
4
  import { SkillsSettings, ContextSettings, SystemPromptResolver, ModelSelection, PluginsSettings, Plugin, ProviderRoutingSettings, AgentDefinition as AgentDefinition$1, BudgetTracker, CustomTool, RunEventSink, MemorySettings } from '@theokit/sdk';
5
- import { S as StreamEvent, f as ApprovalRequiredEvent, a4 as MaskError } from './delegation-scoring-BrBQXvIp.js';
5
+ import { S as StreamEvent, f as ApprovalRequiredEvent, a4 as MaskError } from './delegation-scoring-MbnqL68u.js';
6
6
  import { RetryOptions } from '@theokit/sdk/retry';
7
7
  import { SandboxPosture } from '@theokit/sdk/sandbox';
8
- import { A as AgentDefinition, S as SettingSourcesSelection } from './define-agent-WYnUlWaH.js';
8
+ import { A as AgentDefinition } from './define-agent-D9b3h3VU.js';
9
9
  import { z } from 'zod';
10
10
  import { H as HookHandlers } from './hook-handlers-Cw2FsnE5.js';
11
11
  import { WireChunk } from '@theokit/presenter/wire';
@@ -912,6 +912,22 @@ interface AgentBuilder<TInput extends z.ZodType | UnsetMarker = UnsetMarker, TMo
912
912
  * whose `cwd` is its own deploy, false for an agent pointed at a repository someone else wrote.
913
913
  */
914
914
  settingSources(selection: SettingSourcesSelection): AgentBuilder<TInput, TModel, TContext, TTools>;
915
+ /**
916
+ * #686 — decide whether a hook declared in a config root is spawned AT ALL, before it runs.
917
+ *
918
+ * The fluent twin of `defineAgent({ hookApproval })`. It exists because a consumer that builds
919
+ * through this chain had no way to reach the gate: `.use()` composes presets rather than sinking
920
+ * capabilities, and the definition reaches `streamAgentTurnInProcess` with `local` already
921
+ * assembled, so there was no downstream place to inject it either.
922
+ *
923
+ * Distinct from {@link AgentBuilder.hooks} below, which ATTACHES lifecycle hooks. This one decides
924
+ * whether hooks somebody ELSE declared — in `.theokit/`, or in a foreign dialect imported through
925
+ * `settingSources` — are allowed to run.
926
+ *
927
+ * Requires `@theokit/sdk >= 5.4.0`. Declaring it against an older SDK is refused at assembly
928
+ * rather than forwarded: a gate that silently does not gate is worse than none.
929
+ */
930
+ hookApproval(gate: HookApprovalGate): AgentBuilder<TInput, TModel, TContext, TTools>;
915
931
  /**
916
932
  * M49 — enable the SDK's durable memory for this agent (`.theokit/memory/` in the run cwd:
917
933
  * `Remember:` capture with secret redaction, auto-injected recall, memory tools). Takes the SDK's
package/dist/bridge.d.ts CHANGED
@@ -1,7 +1,7 @@
1
- export { c as APPROVAL_MODES, d as AfterToolCallContext, e as AgentBuilder, f as AgentDefinitionError, g as AgentExecutionContext, h as AgentManifest, A as AgentManifestEntry, i as AgentManifestSource, j as AgentManifestTool, b as AgentModule, k as AgentRoute, l as AgentRouteContext, m as AgentRunInfo, n as AgentsPluginOptions, o as ApiErrorContext, p as ApiErrorDecision, q as ApiErrorPolicy, r as ApprovalMode, a as ApprovalPosture, B as BeforeToolCallContext, u as CompiledContextWindow, v as ContextualTool, D as DefinitionOrThunk, w as DelegationTimeoutError, E as EphemeralAgent, L as LLMCallContext, M as McpApprovalSpec, x as McpFileError, y as McpRegistryConfig, z as McpRequestContext, F as McpSelection, P as ProcessInputContext, G as SdkAgentHandle, I as SdkMessage, J as SdkSendOptions, K as SdkTurnHandle, N as Segment, O as ShouldAutoApproveOptions, T as ToolCallVeto, Q as ToolHooks, R as ToolHooksPlugin, W as WRITE_SCOPED_TOOLS, U as agentsPlugin, V as applyPosture, X as buildModelSelection, Y as compileAgentModule, Z as compileContextWindow, _ as compileLoadedAgentModule, $ as compileProjectContext, a0 as compileSkills, a1 as createAgentExecutionContext, a2 as createApiErrorHandler, a3 as createSdkAgentStream, a4 as createThinkTagExtractor, a5 as createToolHooksPlugin, a6 as extractThinkTagStream, a7 as generateAgentManifest, a8 as generateAgentRoutes, a9 as isAgentContext, aa as loadMcpJson, ab as mcpRegistry, ac as mcpToolApprovals, ad as projectContextMetadataOnlyKnobs, ae as reasoningEffortOf, af as resolveMcpServers, ag as runWithApiErrorHandling, ah as shouldAutoApprove, s as streamAgentUIMessages, ai as toAgentFactory, aj as translateSdkEvent, ak as withClockCap, al as withEphemeralAgent } from './bridge-entry-Db0SZbYj.js';
2
- export { C as CompiledAgentOptions, a as CompiledTool, H as HookApprovalGate, g as HookApprovalRequest, h as HookGateUnsupportedError, T as ToolWalkResult, j as ToolboxWalkResult, k as compileTools } from './agent-compiler-C2jIZ4CZ.js';
3
- export { A as AgentStopReason, d as AgentStreamEvent, e as AgentTurnMetadata, f as ApprovalRequiredEvent, g as ArtifactChunkEvent, h as ArtifactStartEvent, B as BackgroundDelegation, i as BudgetExceededError, C as CheckpointSavedEvent, k as DelegateFn, a as DelegateOptions, l as DelegationBudgetExceededError, m as DelegationError, n as DelegationPort, c as DelegationResult, D as DelegationTarget, o as DoneEvent, E as ErrorEvent, F as FileEditEvent, I as IterationEvent, P as PartialToolCallEvent, v as RunStartedEvent, w as ScoreVerdict, x as ScoredDelegation, y as Scorer, z as StateUpdateEvent, S as StreamEvent, T as TextDeltaEvent, G as ThinkingEvent, H as ToolCallEvent, J as ToolResultEvent, K as delegate, M as delegateBackground, N as delegateWithScoring, O as isApprovalRequired, Q as isDone, U as isError, V as isPartialToolCall, W as isTextDelta, X as isToolCall, Y as isToolResult, a0 as presentUIMessageStream, a3 as streamAgentResponse } from './delegation-scoring-BrBQXvIp.js';
4
- export { a as AGENT_BRAND, A as AgentDefinition, D as DefineAgentConfig, I as InferAgentInput, b as InferAgentToolNames, P as ProjectSettingsGrant, c as SettingSourceCapability, S as SettingSourcesSelection, U as UntrustedSettingSourceError, d as compileAgentDefinition, i as isAgentDefinition, r as resolveCompatSources, e as resolveSettingSources } from './define-agent-WYnUlWaH.js';
1
+ export { c as APPROVAL_MODES, d as AfterToolCallContext, e as AgentBuilder, f as AgentDefinitionError, g as AgentExecutionContext, h as AgentManifest, A as AgentManifestEntry, i as AgentManifestSource, j as AgentManifestTool, b as AgentModule, k as AgentRoute, l as AgentRouteContext, m as AgentRunInfo, n as AgentsPluginOptions, o as ApiErrorContext, p as ApiErrorDecision, q as ApiErrorPolicy, r as ApprovalMode, a as ApprovalPosture, B as BeforeToolCallContext, u as CompiledContextWindow, v as ContextualTool, D as DefinitionOrThunk, w as DelegationTimeoutError, E as EphemeralAgent, L as LLMCallContext, M as McpApprovalSpec, x as McpFileError, y as McpRegistryConfig, z as McpRequestContext, F as McpSelection, P as ProcessInputContext, G as SdkAgentHandle, I as SdkMessage, J as SdkSendOptions, K as SdkTurnHandle, N as Segment, O as ShouldAutoApproveOptions, T as ToolCallVeto, Q as ToolHooks, R as ToolHooksPlugin, W as WRITE_SCOPED_TOOLS, U as agentsPlugin, V as applyPosture, X as buildModelSelection, Y as compileAgentModule, Z as compileContextWindow, _ as compileLoadedAgentModule, $ as compileProjectContext, a0 as compileSkills, a1 as createAgentExecutionContext, a2 as createApiErrorHandler, a3 as createSdkAgentStream, a4 as createThinkTagExtractor, a5 as createToolHooksPlugin, a6 as extractThinkTagStream, a7 as generateAgentManifest, a8 as generateAgentRoutes, a9 as isAgentContext, aa as loadMcpJson, ab as mcpRegistry, ac as mcpToolApprovals, ad as projectContextMetadataOnlyKnobs, ae as reasoningEffortOf, af as resolveMcpServers, ag as runWithApiErrorHandling, ah as shouldAutoApprove, s as streamAgentUIMessages, ai as toAgentFactory, aj as translateSdkEvent, ak as withClockCap, al as withEphemeralAgent } from './bridge-entry-B0FqqPlt.js';
2
+ export { c as CompatSurface, C as CompiledAgentOptions, b as CompiledTool, H as HookApprovalGate, i as HookApprovalRequest, j as HookGateUnsupportedError, P as ProjectSettingsGrant, R as ResolvedCompatSource, k as SettingSourceCapability, a as SettingSourcesSelection, T as ToolWalkResult, m as ToolboxWalkResult, U as UntrustedSettingSourceError, n as compileTools, r as resolveCompatSources, p as resolveSettingSources } from './agent-compiler-DZorqtK2.js';
3
+ export { A as AgentStopReason, d as AgentStreamEvent, e as AgentTurnMetadata, f as ApprovalRequiredEvent, g as ArtifactChunkEvent, h as ArtifactStartEvent, B as BackgroundDelegation, i as BudgetExceededError, C as CheckpointSavedEvent, k as DelegateFn, a as DelegateOptions, l as DelegationBudgetExceededError, m as DelegationError, n as DelegationPort, c as DelegationResult, D as DelegationTarget, o as DoneEvent, E as ErrorEvent, F as FileEditEvent, I as IterationEvent, P as PartialToolCallEvent, v as RunStartedEvent, w as ScoreVerdict, x as ScoredDelegation, y as Scorer, z as StateUpdateEvent, S as StreamEvent, T as TextDeltaEvent, G as ThinkingEvent, H as ToolCallEvent, J as ToolResultEvent, K as delegate, M as delegateBackground, N as delegateWithScoring, O as isApprovalRequired, Q as isDone, U as isError, V as isPartialToolCall, W as isTextDelta, X as isToolCall, Y as isToolResult, a0 as presentUIMessageStream, a3 as streamAgentResponse } from './delegation-scoring-MbnqL68u.js';
4
+ export { a as AGENT_BRAND, A as AgentDefinition, D as DefineAgentConfig, I as InferAgentInput, b as InferAgentToolNames, c as compileAgentDefinition, i as isAgentDefinition } from './define-agent-D9b3h3VU.js';
5
5
  import '@theokit/http';
6
6
  import './types-C16Wuh9E.js';
7
7
  import '@theokit/sdk';
package/dist/bridge.js CHANGED
@@ -29,7 +29,7 @@ import {
29
29
  runWithApiErrorHandling,
30
30
  streamAgentResponse,
31
31
  streamAgentUIMessages
32
- } from "./chunk-YVPQ3KSA.js";
32
+ } from "./chunk-TZCHACY7.js";
33
33
  import {
34
34
  APPROVAL_MODES,
35
35
  BudgetExceededError,
@@ -55,7 +55,7 @@ import {
55
55
  translateSdkEvent,
56
56
  withClockCap,
57
57
  withEphemeralAgent
58
- } from "./chunk-NZTLBLHB.js";
58
+ } from "./chunk-6WFRR24F.js";
59
59
  import "./chunk-RKWCXVYG.js";
60
60
  import {
61
61
  AGENT_BRAND,
@@ -64,7 +64,7 @@ import {
64
64
  isAgentDefinition,
65
65
  resolveCompatSources,
66
66
  resolveSettingSources
67
- } from "./chunk-X4IGZHOV.js";
67
+ } from "./chunk-LPS65NGG.js";
68
68
  import "./chunk-OXNDJSAJ.js";
69
69
  import "./chunk-Z4QWC7IK.js";
70
70
  export {
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-RKWCXVYG.js";
5
5
  import {
6
6
  compileAgentDefinition
7
- } from "./chunk-X4IGZHOV.js";
7
+ } from "./chunk-LPS65NGG.js";
8
8
  import {
9
9
  createRunUsageMeter
10
10
  } from "./chunk-OXNDJSAJ.js";
@@ -2553,4 +2553,4 @@ export {
2553
2553
  delegateBackground,
2554
2554
  delegateWithScoring
2555
2555
  };
2556
- //# sourceMappingURL=chunk-NZTLBLHB.js.map
2556
+ //# sourceMappingURL=chunk-6WFRR24F.js.map