@theokit/agents 4.25.0 → 4.26.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
- import { G as Guardrail, L as LoopStrategy, R as ReflectionStrategy, C as CompiledAgentOptions, M as MainLoopMeta, a as CompiledTool, b as ReasoningEffort, c as RoundStreamFactory, S as StreamEvent, D as DelegationResult, d as ContextWindowOptions, e as SkillsOptions, T as ToolOptions, A as ApprovalOptions, H as HumanInTheLoopOptions, f as AgentManifestEntry, g as HitlDecision, s as streamAgentUIMessages } from './bridge-entry-Cq1aVJ_c.js';
2
- export { h as AGENT_BRAND, i as AfterToolCallContext, j as AgentBuilder, k as AgentDefinition, l as AgentDefinitionError, m as AgentExecutionContext, n as AgentManifest, o as AgentManifestSource, p as AgentManifestTool, q as AgentOptions, r as AgentRoute, t as AgentRouteContext, u as AgentRunInfo, v as AgentStreamEvent, w as AgentTurnMetadata, x as AgentsPluginOptions, y as ApiErrorContext, z as ApiErrorDecision, B as ApiErrorPolicy, E as ApprovalRequiredEvent, F as ArtifactChunkEvent, I as ArtifactStartEvent, J as BackgroundDelegation, K as BeforeToolCallContext, N as BudgetExceededError, O as BudgetOptions, P as CheckpointSavedEvent, Q as CompiledContextWindow, U as ContextualTool, V as CostBudgetExceededError, W as DEFAULT_MAX_ITERATIONS, X as DefineAgentConfig, Y as DelegateFn, Z as DelegateOptions, _ as DelegationError, $ as DoneEvent, a0 as ErrorEvent, a1 as FileEditEvent, a2 as GuardrailAction, a3 as GuardrailPhase, a4 as GuardrailResult, a5 as GuardrailViolationError, a6 as HookHandlers, a7 as InferAgentInput, a8 as InferAgentToolNames, a9 as IterationEvent, aa as LLMCallContext, ab as LoopFinishReason, ac as LoopOutcome, ad as LoopStrategyConfig, ae as MainLoopOptions, af as McpApprovalSpec, ag as McpRegistryConfig, ah as McpRequestContext, ai as McpSelection, aj as PartialToolCallEvent, ak as PolicyHandler, al as ProcessInputContext, am as ReflectionContext, an as ReflectionResult, ao as ReflectionStrategyConfig, ap as RunStartedEvent, aq as ScoreVerdict, ar as ScoredDelegation, as as Scorer, at as SdkAgentHandle, au as SdkMessage, av as Segment, aw as SkillsRequestContext, ax as SkillsSelection, ay as StateUpdateEvent, az as TextDeltaEvent, aA as ThinkingEvent, aB as TimeoutAction, aC as ToolCallEvent, aD as ToolCallVeto, aE as ToolHooks, aF as ToolHooksPlugin, aG as ToolResultEvent, aH as ToolWalkResult, aI as ToolboxOptions, aJ as ToolboxWalkResult, aK as agentsPlugin, aL as buildModelSelection, aM as compileAgentDefinition, aN as compileAgentModule, aO as compileContextWindow, aP as compileProjectContext, aQ as compileSkills, aR as compileTools, aS as createAgentExecutionContext, aT as createApiErrorHandler, aU as createSdkAgentStream, aV as createThinkTagExtractor, aW as createToolHooksPlugin, aX as delegate, aY as delegateBackground, aZ as delegateWithScoring, a_ as extractThinkTagStream, a$ as generateAgentManifest, b0 as generateAgentRoutes, b1 as isAgentContext, b2 as isAgentDefinition, b3 as isApprovalRequired, b4 as isDone, b5 as isError, b6 as isPartialToolCall, b7 as isTextDelta, b8 as isToolCall, b9 as isToolResult, ba as ladderReflectionStrategy, bb as loopStrategyConfigSchema, bc as mcpRegistry, bd as mcpToolApprovals, be as noopReflectionStrategy, bf as presentUIMessageStream, bg as projectContextMetadataOnlyKnobs, bh as reflectionStrategyConfigSchema, bi as resolveEnabledSkills, bj as resolveLoopStrategy, bk as resolveMcpServers, bl as runWithApiErrorHandling, bm as streamAgentResponse, bn as toAgentFactory, bo as translateSdkEvent } from './bridge-entry-Cq1aVJ_c.js';
1
+ import { G as Guardrail, L as LoopStrategy, R as ReflectionStrategy, C as CompiledAgentOptions, M as MainLoopMeta, a as CompiledTool, b as ReasoningEffort, c as RoundStreamFactory, S as StreamEvent, D as DelegationResult, d as ContextWindowOptions, e as SkillsOptions, T as ToolOptions, A as ApprovalOptions, H as HumanInTheLoopOptions, f as AgentManifestEntry, g as HitlDecision, s as streamAgentUIMessages } from './bridge-entry-DMlHq9gR.js';
2
+ export { h as AGENT_BRAND, i as AfterToolCallContext, j as AgentBuilder, k as AgentDefinition, l as AgentDefinitionError, m as AgentExecutionContext, n as AgentManifest, o as AgentManifestSource, p as AgentManifestTool, q as AgentOptions, r as AgentRoute, t as AgentRouteContext, u as AgentRunInfo, v as AgentStreamEvent, w as AgentTurnMetadata, x as AgentsPluginOptions, y as ApiErrorContext, z as ApiErrorDecision, B as ApiErrorPolicy, E as ApprovalRequiredEvent, F as ArtifactChunkEvent, I as ArtifactStartEvent, J as BackgroundDelegation, K as BeforeToolCallContext, N as BudgetOptions, O as CheckpointSavedEvent, P as CompiledContextWindow, Q as ContextualTool, U as CostBudgetExceededError, V as DEFAULT_MAX_ITERATIONS, W as DefineAgentConfig, X as DefinicaoOuThunk, Y as DelegateFn, Z as DelegateOptions, _ as DelegationBudgetExceededError, $ as DelegationBudgetExceededErrorAlias, a0 as DelegationError, a1 as DoneEvent, a2 as ErrorEvent, a3 as FileEditEvent, a4 as GuardrailAction, a5 as GuardrailPhase, a6 as GuardrailResult, a7 as GuardrailViolationError, a8 as HookHandlers, a9 as InferAgentInput, aa as InferAgentToolNames, ab as IterationEvent, ac as LLMCallContext, ad as LoopFinishReason, ae as LoopOutcome, af as LoopStrategyConfig, ag as MainLoopOptions, ah as McpApprovalSpec, ai as McpRegistryConfig, aj as McpRequestContext, ak as McpSelection, al as PartialToolCallEvent, am as PolicyHandler, an as ProcessInputContext, ao as ReflectionContext, ap as ReflectionResult, aq as ReflectionStrategyConfig, ar as RunStartedEvent, as as ScoreVerdict, at as ScoredDelegation, au as Scorer, av as SdkAgentHandle, aw as SdkMessage, ax as SdkSendOptions, ay as SdkTurnHandle, az as Segment, aA as SkillsRequestContext, aB as SkillsSelection, aC as StateUpdateEvent, aD as TextDeltaEvent, aE as ThinkingEvent, aF as TimeoutAction, aG as ToolCallEvent, aH as ToolCallVeto, aI as ToolHooks, aJ as ToolHooksPlugin, aK as ToolResultEvent, aL as ToolWalkResult, aM as ToolboxOptions, aN as ToolboxWalkResult, aO as agentsPlugin, aP as buildModelSelection, aQ as compileAgentDefinition, aR as compileAgentModule, aS as compileContextWindow, aT as compileProjectContext, aU as compileSkills, aV as compileTools, aW as createAgentExecutionContext, aX as createApiErrorHandler, aY as createSdkAgentStream, aZ as createThinkTagExtractor, a_ as createToolHooksPlugin, a$ as delegate, b0 as delegateBackground, b1 as delegateWithScoring, b2 as extractThinkTagStream, b3 as generateAgentManifest, b4 as generateAgentRoutes, b5 as isAgentContext, b6 as isAgentDefinition, b7 as isApprovalRequired, b8 as isDone, b9 as isError, ba as isPartialToolCall, bb as isTextDelta, bc as isToolCall, bd as isToolResult, be as ladderReflectionStrategy, bf as loopStrategyConfigSchema, bg as mcpRegistry, bh as mcpToolApprovals, bi as noopReflectionStrategy, bj as presentUIMessageStream, bk as projectContextMetadataOnlyKnobs, bl as reflectionStrategyConfigSchema, bm as resolveEnabledSkills, bn as resolveLoopStrategy, bo as resolveMcpServers, bp as runWithApiErrorHandling, bq as streamAgentResponse, br as toAgentFactory, bs as translateSdkEvent } from './bridge-entry-DMlHq9gR.js';
3
3
  export * from '@theokit/sdk/errors';
4
- export { ConfigurationError } from '@theokit/sdk/errors';
4
+ export { BudgetExceededError, ConfigurationError } from '@theokit/sdk/errors';
5
5
  import { PluginsSettings, Plugin, ProviderRoutingSettings, AgentDefinition, BudgetTracker, CustomTool, GoalLoopAgent, GoalOptions, runGoalLoop, GoalEvent, GoalResult, InlineSkill } from '@theokit/sdk';
6
6
  export { Agent, CustomTool, GoalEvent, GoalLoopAgent, GoalOptions, GoalResult, JudgeCredentialError, JudgeResult, Provider, SDKAgent, SessionRecord, Squad, Tool, Verdict } from '@theokit/sdk';
7
7
  import { RetryOptions } from '@theokit/sdk/retry';
@@ -790,6 +790,64 @@ declare class ToolboxCapability implements Capability {
790
790
  apply(draft: CompiledAgentOptionsDraft): void;
791
791
  }
792
792
 
793
+ /**
794
+ * M91 — `Toolset`: coleção nomeada e imutável de tools, com política de resolução que falha alto.
795
+ *
796
+ * ## Por que na camada
797
+ *
798
+ * A camada já publica as costuras de `sandbox` e `interactive`; esta é a contraparte que faltava. Sem
799
+ * ela, o consumidor escreveu a sua — `agents/tools/registry.ts` do agent-builder, 170 LoC — e a
800
+ * política que importa (falhar alto em nome desconhecido **e** duplicado) ficou fora do framework,
801
+ * onde o próximo consumidor teria de redescobri-la.
802
+ *
803
+ * ## O que ela NÃO faz, e por quê
804
+ *
805
+ * **Não prefixa namespace.** Foi isso que desqualificou o `ToolboxCapability` deste mesmo diretório
806
+ * para este papel: o nome de uma tool é **contrato com o modelo**, e prefixar muda o que o modelo vê.
807
+ *
808
+ * **Não constrói tools.** Quais tools, com quais opções e sob qual escopo é decisão do consumidor —
809
+ * a camada não sabe o `projectRoot` nem a postura de sandbox de ninguém. O `Toolset` recebe as
810
+ * entradas já construídas e é dono só da **política de resolução**. É a divisão que impede a
811
+ * primitiva de virar uma segunda cópia do registry do consumidor.
812
+ *
813
+ * ## Por que falhar alto nos dois casos
814
+ *
815
+ * Nome **desconhecido**: um role que declara `run_shell` numa whitelist e recebe silêncio fica sem a
816
+ * tool sem ninguém notar. Nome **duplicado**: registra a mesma tool duas vezes no `Agent.create`, sem
817
+ * sinal nenhum. Nos dois, o resultado é uma mudança de autoridade **não observável** — que é
818
+ * exatamente o que uma whitelist existe para impedir.
819
+ */
820
+ /** O mínimo que o `Toolset` precisa saber de uma tool: que ela tem nome. */
821
+ interface ToolComNome {
822
+ readonly name: string;
823
+ }
824
+ declare class ToolsetError extends Error {
825
+ readonly code: 'unknown_tool' | 'duplicate_tool';
826
+ constructor(message: string, code: 'unknown_tool' | 'duplicate_tool');
827
+ }
828
+ declare class Toolset<T extends ToolComNome> {
829
+ #private;
830
+ private constructor();
831
+ /**
832
+ * Constrói a partir das tools já instanciadas. Falha alto em nome duplicado **na construção** — não
833
+ * na resolução: um descritor com duas tools de mesmo nome está errado no momento em que é escrito, e
834
+ * adiar o erro para o primeiro `resolve` esconde metade dos casos.
835
+ */
836
+ static from<T extends ToolComNome>(tools: readonly T[]): Toolset<T>;
837
+ /** Uma tool pelo nome. Lança com o nome no erro — nunca devolve `undefined` em silêncio. */
838
+ get(name: string): T;
839
+ /**
840
+ * Resolve uma whitelist. Falha alto em desconhecido **e** em duplicado dentro da própria lista:
841
+ * um time nunca concede em silêncio uma tool que o role não declarou, nem descarta em silêncio uma
842
+ * que declarou.
843
+ */
844
+ resolve(names: readonly string[]): readonly T[];
845
+ /** Os nomes conhecidos, na ordem de registro. */
846
+ names(): readonly string[];
847
+ /** Todas as tools, na ordem de registro. */
848
+ all(): readonly T[];
849
+ }
850
+
793
851
  /**
794
852
  * M15 (theokit-ai-first) — A2A agent card generation (ADR-0040 § D2, home/discovery concern).
795
853
  *
@@ -1050,4 +1108,4 @@ declare class InProcessApprovalRequiredError extends Error {
1050
1108
  */
1051
1109
  declare function streamAgentTurnInProcess(mod: unknown, apiKey: string, input: StreamAgentTurnInProcessInput, deps?: StreamAgentTurnDeps): AsyncGenerator<UIMessageChunk>;
1052
1110
 
1053
- export { type A2AAuth, type A2ACapabilities, type A2ASkill, type A2AToolConfig, AcpClient, AcpMessageDecoder, type AcpTransport, type AgentCard, type AgentConfig, AgentConfigCapability, AgentManifestEntry, AgentRunner, AgentRunnerBuilder, type AgentRunnerRunOptions, ApprovalOptions, type BuildAgentCardOptions, type Capability, CapabilityConflictError, CapabilityPreset, CapabilityRegistry, CheckpointCapability, type CompactionCallOptions, type CompactionStrategyConfig, CompiledAgentOptions, type CompiledAgentOptionsDraft, CompiledTool, ContextWindowCapability, type CostGuardOptions, DEFAULT_KEEP_TOKENS, DelegationResult, FieldCapability, type FinalizedDraft, GoalRunner, type GoalRunnerDeps, Guardrail, GuardrailsCapability, HitlDecision, HumanInTheLoopCapability, HumanInTheLoopOptions, type InProcessApprovalRequest, InProcessApprovalRequiredError, type InProcessAwaitApproval, LoopStrategy, MCP_PROTOCOL_VERSION, MainLoopCapability, MainLoopMeta, type McpJsonSchema, type McpServerInfo, McpServersCapability, type McpToolDescriptor, MemoryCapability, ModelCapability, type OutputModerationOptions, type PiiOptions, PluginsCapability, ProjectContextCapability, type PromptInjectionOptions, type ProvenanceEntry, ReasoningEffort, ReflectionStrategy, RoundStreamFactory, RunContextCapability, SettingSourcesCapability, SkillsCapability, SkillsOptionsCapability, SkillsResolverCapability, type StreamAgentTurnDeps, type StreamAgentTurnInProcessInput, StreamEvent, SubAgentsCapability, type Summarize, type ToolDeclaration, ToolOptions, ToolboxCapability, type ToolboxSource, ToolsCapability, type TranscriptCompactionStrategy, UnknownCapabilityError, applyCapabilities, buildAgentCard, buildMcpToolDescriptors, compactionStrategyConfigSchema, costGuard, createA2ATool, createDraft, deriveConversationId, encodeAcpMessage, estimateTokens, mcpServerInfo, moderateOutputStream, outputModeration, parseConversationId, piiDetector, promptInjectionDetector, resolveCompactionStrategy, runInputGuards, runOutputGuards, setOnce, streamAgentTurnInProcess, streamAgentUIMessages, tokenBudgetCompactionStrategy, unicodeNormalizer, wellKnownCardPath };
1111
+ export { type A2AAuth, type A2ACapabilities, type A2ASkill, type A2AToolConfig, AcpClient, AcpMessageDecoder, type AcpTransport, type AgentCard, type AgentConfig, AgentConfigCapability, AgentManifestEntry, AgentRunner, AgentRunnerBuilder, type AgentRunnerRunOptions, ApprovalOptions, type BuildAgentCardOptions, type Capability, CapabilityConflictError, CapabilityPreset, CapabilityRegistry, CheckpointCapability, type CompactionCallOptions, type CompactionStrategyConfig, CompiledAgentOptions, type CompiledAgentOptionsDraft, CompiledTool, ContextWindowCapability, type CostGuardOptions, DEFAULT_KEEP_TOKENS, DelegationResult, FieldCapability, type FinalizedDraft, GoalRunner, type GoalRunnerDeps, Guardrail, GuardrailsCapability, HitlDecision, HumanInTheLoopCapability, HumanInTheLoopOptions, type InProcessApprovalRequest, InProcessApprovalRequiredError, type InProcessAwaitApproval, LoopStrategy, MCP_PROTOCOL_VERSION, MainLoopCapability, MainLoopMeta, type McpJsonSchema, type McpServerInfo, McpServersCapability, type McpToolDescriptor, MemoryCapability, ModelCapability, type OutputModerationOptions, type PiiOptions, PluginsCapability, ProjectContextCapability, type PromptInjectionOptions, type ProvenanceEntry, ReasoningEffort, ReflectionStrategy, RoundStreamFactory, RunContextCapability, SettingSourcesCapability, SkillsCapability, SkillsOptionsCapability, SkillsResolverCapability, type StreamAgentTurnDeps, type StreamAgentTurnInProcessInput, StreamEvent, SubAgentsCapability, type Summarize, type ToolComNome, type ToolDeclaration, ToolOptions, ToolboxCapability, type ToolboxSource, ToolsCapability, Toolset, ToolsetError, type TranscriptCompactionStrategy, UnknownCapabilityError, applyCapabilities, buildAgentCard, buildMcpToolDescriptors, compactionStrategyConfigSchema, costGuard, createA2ATool, createDraft, deriveConversationId, encodeAcpMessage, estimateTokens, mcpServerInfo, moderateOutputStream, outputModeration, parseConversationId, piiDetector, promptInjectionDetector, resolveCompactionStrategy, runInputGuards, runOutputGuards, setOnce, streamAgentTurnInProcess, streamAgentUIMessages, tokenBudgetCompactionStrategy, unicodeNormalizer, wellKnownCardPath };
package/dist/index.js CHANGED
@@ -10,6 +10,7 @@ import {
10
10
  CostBudgetExceededError,
11
11
  DEFAULT_KEEP_TOKENS,
12
12
  DEFAULT_MAX_ITERATIONS,
13
+ DelegationBudgetExceededError,
13
14
  DelegationError,
14
15
  GoalRunner,
15
16
  GuardrailViolationError,
@@ -72,7 +73,7 @@ import {
72
73
  toolRuntimeName,
73
74
  translateSdkEvent,
74
75
  unicodeNormalizer
75
- } from "./chunk-2L5DI75P.js";
76
+ } from "./chunk-QEWP7GRM.js";
76
77
  import {
77
78
  __name
78
79
  } from "./chunk-7QVYU63E.js";
@@ -590,6 +591,78 @@ var ToolboxCapability = class {
590
591
  }
591
592
  };
592
593
 
594
+ // src/capability/toolset.ts
595
+ var ToolsetError = class extends Error {
596
+ static {
597
+ __name(this, "ToolsetError");
598
+ }
599
+ code;
600
+ constructor(message, code) {
601
+ super(message), this.code = code;
602
+ this.name = "ToolsetError";
603
+ }
604
+ };
605
+ var Toolset = class _Toolset {
606
+ static {
607
+ __name(this, "Toolset");
608
+ }
609
+ #porNome;
610
+ constructor(porNome) {
611
+ this.#porNome = porNome;
612
+ Object.freeze(this);
613
+ }
614
+ /**
615
+ * Constrói a partir das tools já instanciadas. Falha alto em nome duplicado **na construção** — não
616
+ * na resolução: um descritor com duas tools de mesmo nome está errado no momento em que é escrito, e
617
+ * adiar o erro para o primeiro `resolve` esconde metade dos casos.
618
+ */
619
+ static from(tools) {
620
+ const porNome = /* @__PURE__ */ new Map();
621
+ for (const tool of tools) {
622
+ if (porNome.has(tool.name)) {
623
+ throw new ToolsetError(`duplicate tool "${tool.name}" in toolset`, "duplicate_tool");
624
+ }
625
+ porNome.set(tool.name, tool);
626
+ }
627
+ return new _Toolset(porNome);
628
+ }
629
+ /** Uma tool pelo nome. Lança com o nome no erro — nunca devolve `undefined` em silêncio. */
630
+ get(name) {
631
+ const tool = this.#porNome.get(name);
632
+ if (tool === void 0) {
633
+ throw new ToolsetError(`unknown tool "${name}"`, "unknown_tool");
634
+ }
635
+ return tool;
636
+ }
637
+ /**
638
+ * Resolve uma whitelist. Falha alto em desconhecido **e** em duplicado dentro da própria lista:
639
+ * um time nunca concede em silêncio uma tool que o role não declarou, nem descarta em silêncio uma
640
+ * que declarou.
641
+ */
642
+ resolve(names) {
643
+ const vistos = /* @__PURE__ */ new Set();
644
+ return names.map((name) => {
645
+ if (vistos.has(name)) {
646
+ throw new ToolsetError(`duplicate tool "${name}" in a whitelist`, "duplicate_tool");
647
+ }
648
+ vistos.add(name);
649
+ return this.get(name);
650
+ });
651
+ }
652
+ /** Os nomes conhecidos, na ordem de registro. */
653
+ names() {
654
+ return [
655
+ ...this.#porNome.keys()
656
+ ];
657
+ }
658
+ /** Todas as tools, na ordem de registro. */
659
+ all() {
660
+ return [
661
+ ...this.#porNome.values()
662
+ ];
663
+ }
664
+ };
665
+
593
666
  // src/a2a/agent-card.ts
594
667
  function trimTrailingSlash(url) {
595
668
  return url.endsWith("/") ? url.slice(0, -1) : url;
@@ -873,6 +946,7 @@ export * from "@theokit/sdk/concurrency";
873
946
  export * from "@theokit/sdk/messages";
874
947
  export * from "@theokit/sdk/models";
875
948
  import { discoverSubagents, loadSubagentDefinition } from "@theokit/sdk/subagents-loader";
949
+ import { BudgetExceededError as BudgetExceededError2 } from "@theokit/sdk/errors";
876
950
 
877
951
  // src/in-process-turn.ts
878
952
  var InProcessApprovalRequiredError = class extends Error {
@@ -935,7 +1009,7 @@ export {
935
1009
  AgentDefinitionError,
936
1010
  AgentRunner,
937
1011
  AgentRunnerBuilder,
938
- BudgetExceededError,
1012
+ BudgetExceededError2 as BudgetExceededError,
939
1013
  CONTEXT_WINDOW_FLOOR,
940
1014
  CONTEXT_WINDOW_MARGIN,
941
1015
  CapabilityConflictError,
@@ -949,6 +1023,8 @@ export {
949
1023
  CostBudgetExceededError,
950
1024
  DEFAULT_KEEP_TOKENS,
951
1025
  DEFAULT_MAX_ITERATIONS,
1026
+ DelegationBudgetExceededError,
1027
+ BudgetExceededError as DelegationBudgetExceededErrorAlias,
952
1028
  DelegationError,
953
1029
  FieldCapability,
954
1030
  GoalRunner,
@@ -976,6 +1052,8 @@ export {
976
1052
  Tool,
977
1053
  ToolboxCapability,
978
1054
  ToolsCapability,
1055
+ Toolset,
1056
+ ToolsetError,
979
1057
  UnknownCapabilityError,
980
1058
  agentsPlugin,
981
1059
  applyCapabilities,