@archships/dim-agent-sdk 0.0.3 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. package/README.md +15 -2
  2. package/dist/dim-agent-sdk/src/agent-core/agent-types.d.ts +1 -1
  3. package/dist/dim-agent-sdk/src/agent-core/{Agent.d.ts → agent.d.ts} +2 -2
  4. package/dist/dim-agent-sdk/src/agent-core/index.d.ts +10 -10
  5. package/dist/dim-agent-sdk/src/agent-core/{LoopRunner.d.ts → loop-runner.d.ts} +5 -5
  6. package/dist/dim-agent-sdk/src/agent-core/notifications.d.ts +1 -1
  7. package/dist/dim-agent-sdk/src/agent-core/session-state.d.ts +1 -1
  8. package/dist/dim-agent-sdk/src/agent-core/{Session.d.ts → session.d.ts} +2 -2
  9. package/dist/dim-agent-sdk/src/agent-core/{ToolExecutor.d.ts → tool-executor.d.ts} +2 -2
  10. package/dist/dim-agent-sdk/src/context/{AutoContextManager.d.ts → auto-context-manager.d.ts} +1 -1
  11. package/dist/dim-agent-sdk/src/context/index.d.ts +2 -2
  12. package/dist/dim-agent-sdk/src/index.d.ts +6 -5
  13. package/dist/dim-agent-sdk/src/persistence/index.d.ts +5 -5
  14. package/dist/dim-agent-sdk/src/plugin-host/index.d.ts +2 -2
  15. package/dist/dim-agent-sdk/src/plugin-host/{PluginHost.d.ts → plugin-host.d.ts} +4 -4
  16. package/dist/dim-agent-sdk/src/providers/aihubmix/adapter.d.ts +17 -0
  17. package/dist/dim-agent-sdk/src/providers/aihubmix/driver.d.ts +3 -0
  18. package/dist/dim-agent-sdk/src/providers/aihubmix/index.d.ts +2 -0
  19. package/dist/dim-agent-sdk/src/providers/aihubmix-responses/adapter.d.ts +17 -0
  20. package/dist/dim-agent-sdk/src/providers/aihubmix-responses/driver.d.ts +12 -0
  21. package/dist/dim-agent-sdk/src/providers/aihubmix-responses/index.d.ts +2 -0
  22. package/dist/dim-agent-sdk/src/providers/aihubmix-responses/state.d.ts +7 -0
  23. package/dist/dim-agent-sdk/src/providers/anthropic/adapter.d.ts +15 -4
  24. package/dist/dim-agent-sdk/src/providers/anthropic/driver.d.ts +3 -0
  25. package/dist/dim-agent-sdk/src/providers/anthropic/index.d.ts +2 -0
  26. package/dist/dim-agent-sdk/src/providers/anthropic/state.d.ts +6 -0
  27. package/dist/dim-agent-sdk/src/providers/core/create-provider-factory.d.ts +39 -0
  28. package/dist/dim-agent-sdk/src/providers/core/index.d.ts +2 -0
  29. package/dist/dim-agent-sdk/src/providers/deepseek/adapter.d.ts +11 -0
  30. package/dist/dim-agent-sdk/src/providers/deepseek/driver.d.ts +3 -0
  31. package/dist/dim-agent-sdk/src/providers/deepseek/index.d.ts +2 -0
  32. package/dist/dim-agent-sdk/src/providers/gemini/adapter.d.ts +3 -4
  33. package/dist/dim-agent-sdk/src/providers/gemini/driver.d.ts +3 -0
  34. package/dist/dim-agent-sdk/src/providers/gemini/index.d.ts +2 -0
  35. package/dist/dim-agent-sdk/src/providers/gemini/state.d.ts +5 -0
  36. package/dist/dim-agent-sdk/src/providers/index.d.ts +22 -8
  37. package/dist/dim-agent-sdk/src/providers/moonshotai/adapter.d.ts +11 -0
  38. package/dist/dim-agent-sdk/src/providers/moonshotai/driver.d.ts +3 -0
  39. package/dist/dim-agent-sdk/src/providers/moonshotai/index.d.ts +2 -0
  40. package/dist/dim-agent-sdk/src/providers/openai/adapter.d.ts +3 -4
  41. package/dist/dim-agent-sdk/src/providers/openai/driver.d.ts +3 -0
  42. package/dist/dim-agent-sdk/src/providers/openai/index.d.ts +2 -0
  43. package/dist/dim-agent-sdk/src/providers/openai-responses/adapter.d.ts +3 -4
  44. package/dist/dim-agent-sdk/src/providers/openai-responses/driver.d.ts +3 -0
  45. package/dist/dim-agent-sdk/src/providers/openai-responses/index.d.ts +2 -0
  46. package/dist/dim-agent-sdk/src/providers/openai-responses/state.d.ts +7 -0
  47. package/dist/dim-agent-sdk/src/providers/shared/ai-sdk-driver.d.ts +7 -0
  48. package/dist/dim-agent-sdk/src/providers/shared/auth-warning.d.ts +6 -0
  49. package/dist/dim-agent-sdk/src/providers/shared/fetch.d.ts +8 -0
  50. package/dist/dim-agent-sdk/src/providers/shared/http-error.d.ts +10 -0
  51. package/dist/dim-agent-sdk/src/providers/shared/prompt.d.ts +14 -0
  52. package/dist/dim-agent-sdk/src/providers/shared/reasoning.d.ts +30 -7
  53. package/dist/dim-agent-sdk/src/providers/shared/responses-state.d.ts +11 -0
  54. package/dist/dim-agent-sdk/src/providers/shared/usage.d.ts +4 -2
  55. package/dist/dim-agent-sdk/src/providers/xai/adapter.d.ts +11 -0
  56. package/dist/dim-agent-sdk/src/providers/xai/driver.d.ts +3 -0
  57. package/dist/dim-agent-sdk/src/providers/xai/index.d.ts +2 -0
  58. package/dist/dim-agent-sdk/src/providers/xai-responses/adapter.d.ts +11 -0
  59. package/dist/dim-agent-sdk/src/providers/xai-responses/driver.d.ts +3 -0
  60. package/dist/dim-agent-sdk/src/providers/xai-responses/index.d.ts +2 -0
  61. package/dist/dim-agent-sdk/src/providers/xai-responses/state.d.ts +7 -0
  62. package/dist/dim-agent-sdk/src/providers/zenmux/adapter.d.ts +13 -0
  63. package/dist/dim-agent-sdk/src/providers/zenmux/driver.d.ts +3 -0
  64. package/dist/dim-agent-sdk/src/providers/zenmux/index.d.ts +2 -0
  65. package/dist/dim-agent-sdk/src/services/index.d.ts +6 -6
  66. package/dist/dim-agent-sdk/src/tools/builtins/{EditTool.d.ts → edit-tool.d.ts} +1 -1
  67. package/dist/dim-agent-sdk/src/tools/builtins/{ExecTool.d.ts → exec-tool.d.ts} +1 -1
  68. package/dist/dim-agent-sdk/src/tools/builtins/index.d.ts +4 -4
  69. package/dist/dim-agent-sdk/src/tools/builtins/{ReadTool.d.ts → read-tool.d.ts} +1 -1
  70. package/dist/dim-agent-sdk/src/tools/builtins/{WriteTool.d.ts → write-tool.d.ts} +1 -1
  71. package/dist/dim-agent-sdk/src/tools/index.d.ts +2 -2
  72. package/dist/{index.js → src/index.js} +4124 -3645
  73. package/dist/src/providers/aihubmix/index.js +636 -0
  74. package/dist/src/providers/aihubmix-responses/index.js +759 -0
  75. package/dist/src/providers/anthropic/index.js +743 -0
  76. package/dist/src/providers/core/index.js +92 -0
  77. package/dist/src/providers/deepseek/index.js +639 -0
  78. package/dist/src/providers/gemini/index.js +756 -0
  79. package/dist/src/providers/moonshotai/index.js +639 -0
  80. package/dist/src/providers/openai/index.js +499 -0
  81. package/dist/src/providers/openai-responses/index.js +727 -0
  82. package/dist/src/providers/xai/index.js +639 -0
  83. package/dist/src/providers/xai-responses/index.js +728 -0
  84. package/dist/src/providers/zenmux/index.js +642 -0
  85. package/package.json +74 -5
  86. package/dist/dim-agent-sdk/src/providers/anthropic/mapper.d.ts +0 -28
  87. package/dist/dim-agent-sdk/src/providers/gemini/mapper.d.ts +0 -30
  88. package/dist/dim-agent-sdk/src/providers/openai/mapper.d.ts +0 -15
  89. package/dist/dim-agent-sdk/src/providers/openai-responses/mapper.d.ts +0 -40
  90. /package/dist/dim-agent-sdk/src/agent-core/{createModel.d.ts → create-model.d.ts} +0 -0
  91. /package/dist/dim-agent-sdk/src/agent-core/{MessageFactory.d.ts → message-factory.d.ts} +0 -0
  92. /package/dist/dim-agent-sdk/src/agent-core/{ModelTurnCollector.d.ts → model-turn-collector.d.ts} +0 -0
  93. /package/dist/dim-agent-sdk/src/agent-core/{TerminationPolicy.d.ts → termination-policy.d.ts} +0 -0
  94. /package/dist/dim-agent-sdk/src/persistence/{FileStateStore.d.ts → file-state-store.d.ts} +0 -0
  95. /package/dist/dim-agent-sdk/src/persistence/{InMemoryStateStore.d.ts → in-memory-state-store.d.ts} +0 -0
  96. /package/dist/dim-agent-sdk/src/persistence/{SnapshotCodec.d.ts → snapshot-codec.d.ts} +0 -0
  97. /package/dist/dim-agent-sdk/src/plugin-host/{HookPipeline.d.ts → hook-pipeline.d.ts} +0 -0
  98. /package/dist/dim-agent-sdk/src/services/{ExecGateway.d.ts → exec-gateway.d.ts} +0 -0
  99. /package/dist/dim-agent-sdk/src/services/{FileSystemGateway.d.ts → file-system-gateway.d.ts} +0 -0
  100. /package/dist/dim-agent-sdk/src/services/{GitGateway.d.ts → git-gateway.d.ts} +0 -0
  101. /package/dist/dim-agent-sdk/src/services/{ModelGateway.d.ts → model-gateway.d.ts} +0 -0
  102. /package/dist/dim-agent-sdk/src/services/{NetworkGateway.d.ts → network-gateway.d.ts} +0 -0
  103. /package/dist/dim-agent-sdk/src/services/{PermissionGateway.d.ts → permission-gateway.d.ts} +0 -0
  104. /package/dist/dim-agent-sdk/src/tools/{BaseTool.d.ts → base-tool.d.ts} +0 -0
  105. /package/dist/dim-agent-sdk/src/tools/{ToolRegistry.d.ts → tool-registry.d.ts} +0 -0
package/README.md CHANGED
@@ -49,7 +49,7 @@ console.log(message.content)
49
49
  - Canonical content / message / tool / model / state contracts
50
50
  - `createAgent()` -> `Agent` -> `Session`
51
51
  - Session stream events: `text_delta`, optional `thinking_delta`, `tool_call`, `plugin_event`, `tool_result`, `done`
52
- - Provider adapters: `openai-compatible`, `openai-responses`, `anthropic`, `gemini`
52
+ - Provider adapters: `openai-compatible`, `openai-responses`, `anthropic`, `gemini`, `zenmux`, `aihubmix`, `aihubmix-responses`, `moonshotai`, `deepseek`, `xai`, `xai-responses`
53
53
  - Builtin tools: `read`, `write`, `edit`, `exec`
54
54
  - Hook-first plugin integration
55
55
  - Runtime gateways: file system, git, exec, network, model
@@ -109,8 +109,20 @@ Current failure policy:
109
109
 
110
110
  - `createOpenAIAdapter()`: OpenAI-compatible Chat Completions style; no official reasoning channel mapping
111
111
  - `createOpenAIResponsesAdapter()`: official OpenAI Responses API; maps reasoning summaries into `thinking_delta`
112
- - `createAnthropicAdapter()`: maps Claude thinking blocks into `thinking_delta`
112
+ - `createAnthropicAdapter()`: maps Claude thinking blocks into `thinking_delta`; when overriding `baseUrl`, the adapter appends `/v1` if it is missing
113
113
  - `createGeminiAdapter()`: maps Gemini thought parts into `thinking_delta`
114
+ - `createZenMuxAdapter()`: ZenMux chat adapter; keeps ZenMux-native `reasoningEffort`
115
+ - `createAihubmixAdapter()` / `createAihubmixResponsesAdapter()`: AIHubMix chat + responses adapters; `responses` keeps `previousResponseId`. If you omit `apiKey`, you must inject the real upstream authentication inside custom `fetch`.
116
+ - `createMoonshotAIAdapter()`: MoonshotAI language model adapter with thinking budget mapping
117
+ - `createDeepSeekAdapter()`: DeepSeek chat adapter with reasoning -> `thinking_delta`
118
+ - `createXaiAdapter()` / `createXaiResponsesAdapter()`: xAI chat + responses adapters; `responses` keeps `previousResponseId`
119
+ - Builtin providers are also available from public subpaths such as `@archships/dim-agent-sdk/providers/openai` and `@archships/dim-agent-sdk/providers/xai-responses`
120
+ - Other deep internal imports are not part of the public API, even though package-local tests use path aliases against `src/*`
121
+ - Custom providers can follow the same factory pattern via `@archships/dim-agent-sdk/providers/core`
122
+
123
+ ```ts
124
+ import { createProviderFactory } from '@archships/dim-agent-sdk/providers/core'
125
+ ```
114
126
 
115
127
  ## Demo
116
128
 
@@ -175,6 +187,7 @@ The provider smoke layer reuses:
175
187
 
176
188
  - `DIM_TEST_API_KEY`
177
189
  - `DIM_TEST_BASE_URL`
190
+ - `DIM_TEST_BASE_URL_ANTHROPIC` (optional; enables the Anthropic smoke lane)
178
191
  - `DIM_TEST_MODEL_ID` (optional)
179
192
 
180
193
  Smoke tests assert stable invariants such as tool calls, `plugin_event`, notifications, and on-disk side effects. They intentionally avoid exact natural-language output matching.
@@ -3,7 +3,7 @@ import type { CompactionOptions, Message, MessageContentInput, ModelClient, Tool
3
3
  import type { ContextManager } from '../context';
4
4
  import type { StateStore } from '../persistence/store';
5
5
  import type { PermissionSpec } from '../services';
6
- import type { ToolRegistry } from '../tools/ToolRegistry';
6
+ import type { ToolRegistry } from '../tools/tool-registry';
7
7
  import type { ApprovalHandler } from './approvals';
8
8
  export interface AgentOptions {
9
9
  model: ModelClient;
@@ -1,11 +1,11 @@
1
1
  import type { DimPlugin } from '@archships/dim-plugin-api';
2
2
  import type { SessionSnapshot } from '../contracts';
3
3
  import type { StateStore } from '../persistence/store';
4
- import { PluginHost } from '../plugin-host/PluginHost';
4
+ import { PluginHost } from '../plugin-host/plugin-host';
5
5
  import type { AgentServices, PermissionSpec } from '../services';
6
6
  import { ToolRegistry } from '../tools';
7
7
  import type { ApprovalHandler } from './approvals';
8
- import { Session } from './Session';
8
+ import { Session } from './session';
9
9
  import type { AgentOptions, CreateSessionOptions } from './agent-types';
10
10
  export declare class Agent {
11
11
  readonly id: string;
@@ -1,20 +1,20 @@
1
- export { Agent, createAgent } from './Agent';
1
+ export { Agent, createAgent } from './agent';
2
2
  export type { ApprovalContext, ApprovalHandler, ApprovalManager } from './approvals';
3
3
  export { DefaultCompactionService, applyCompactionUpdate, buildCompactionPromptSegments, calculateThresholdTokens, clearCompactionState, cloneCompactionState, createEmptyCompactionState, didCompactionStateChange, estimateCompactionBudget, isCompactionRequired, normalizeCompactionState, projectMessagesForRequest, } from './compaction';
4
4
  export { DefaultPluginStateService, clonePluginSessionStateEntry, clonePluginStateMap, normalizePluginStateMap, } from './plugin-state';
5
- export { createModel } from './createModel';
5
+ export { createModel } from './create-model';
6
6
  export { DefaultApprovalManager } from './approvals';
7
7
  export { DefaultNotificationBus } from './notifications';
8
- export { Session } from './Session';
8
+ export { Session } from './session';
9
9
  export { SessionExecutionError } from './errors';
10
10
  export type { AgentOptions, CreateSessionOptions } from './agent-types';
11
- export type { CreateAgentOptions } from './Agent';
12
- export type { LoopRunnerDependencies, LoopRunnerRunOptions } from './LoopRunner';
13
- export type { CreateAssistantMessageInput, MessageFactory } from './MessageFactory';
14
- export type { CollectModelTurnOptions, ModelTurnCollector, ModelTurnResult } from './ModelTurnCollector';
11
+ export type { CreateAgentOptions } from './agent';
12
+ export type { LoopRunnerDependencies, LoopRunnerRunOptions } from './loop-runner';
13
+ export type { CreateAssistantMessageInput, MessageFactory } from './message-factory';
14
+ export type { CollectModelTurnOptions, ModelTurnCollector, ModelTurnResult } from './model-turn-collector';
15
15
  export type { NotificationBus, NotificationContext } from './notifications';
16
16
  export type { RuntimeSessionState } from './session-state';
17
- export type { SessionOptions } from './Session';
17
+ export type { SessionOptions } from './session';
18
18
  export type { SubagentInvocation, SubagentResult, SubagentRuntime } from './subagent';
19
- export type { TerminationDecision, TerminationPolicy } from './TerminationPolicy';
20
- export type { ToolExecutor, ToolExecutorExecuteOptions, ToolExecutorOptions } from './ToolExecutor';
19
+ export type { TerminationDecision, TerminationPolicy } from './termination-policy';
20
+ export type { ToolExecutor, ToolExecutorExecuteOptions, ToolExecutorOptions } from './tool-executor';
@@ -1,12 +1,12 @@
1
1
  import type { AssistantMessage, MessageContentInput, SessionStreamEvent } from '../contracts';
2
2
  import type { ContextManager } from '../context';
3
- import type { PluginHost } from '../plugin-host/PluginHost';
4
- import type { MessageFactory } from './MessageFactory';
5
- import type { ModelTurnCollector } from './ModelTurnCollector';
3
+ import type { PluginHost } from '../plugin-host/plugin-host';
4
+ import type { MessageFactory } from './message-factory';
5
+ import type { ModelTurnCollector } from './model-turn-collector';
6
6
  import type { NotificationBus } from './notifications';
7
7
  import type { RuntimeSessionState } from './session-state';
8
- import type { TerminationPolicy } from './TerminationPolicy';
9
- import type { ToolExecutor } from './ToolExecutor';
8
+ import type { TerminationPolicy } from './termination-policy';
9
+ import type { ToolExecutor } from './tool-executor';
10
10
  export interface LoopRunnerDependencies {
11
11
  messageFactory: MessageFactory;
12
12
  turnCollector: ModelTurnCollector;
@@ -1,6 +1,6 @@
1
1
  import type { SessionStatus } from '../contracts';
2
2
  import type { NotificationPayload } from '@archships/dim-plugin-api';
3
- import type { PluginHost } from '../plugin-host/PluginHost';
3
+ import type { PluginHost } from '../plugin-host/plugin-host';
4
4
  import type { AgentServices } from '../services';
5
5
  export interface NotificationContext {
6
6
  sessionId?: string;
@@ -1,5 +1,5 @@
1
1
  import type { CompactionOptions, CompactionState, Message, ModelClient, ModelRef, PluginSessionStateEntry, Usage } from '../contracts';
2
- import type { ToolRegistry } from '../tools/ToolRegistry';
2
+ import type { ToolRegistry } from '../tools/tool-registry';
3
3
  export interface RuntimeSessionState {
4
4
  id: string;
5
5
  model: ModelClient;
@@ -1,9 +1,9 @@
1
1
  import type { AssistantMessage, CompactionOptions, CompactionState, CompactionUpdate, Message, MessageContentInput, ModelClient, ModelRef, PluginSessionStateEntry, SessionStatus, SessionSnapshot, SessionStreamEvent, Usage } from '../contracts';
2
2
  import type { ContextManager } from '../context';
3
3
  import type { StateStore } from '../persistence/store';
4
- import type { PluginHost } from '../plugin-host/PluginHost';
4
+ import type { PluginHost } from '../plugin-host/plugin-host';
5
5
  import type { AgentServices } from '../services';
6
- import type { ToolRegistry } from '../tools/ToolRegistry';
6
+ import type { ToolRegistry } from '../tools/tool-registry';
7
7
  import type { ApprovalManager } from './approvals';
8
8
  import { DefaultCompactionService } from './compaction';
9
9
  import { DefaultPluginStateService } from './plugin-state';
@@ -1,7 +1,7 @@
1
1
  import type { CallToolResult, SessionPluginEvent, SessionStatus, ToolCall } from '../contracts';
2
- import type { PluginHost } from '../plugin-host/PluginHost';
2
+ import type { PluginHost } from '../plugin-host/plugin-host';
3
3
  import type { AgentServices } from '../services';
4
- import type { ToolRegistry } from '../tools/ToolRegistry';
4
+ import type { ToolRegistry } from '../tools/tool-registry';
5
5
  import type { ApprovalManager } from './approvals';
6
6
  import type { NotificationBus } from './notifications';
7
7
  export interface ToolExecutorExecuteOptions {
@@ -1,4 +1,4 @@
1
- import type { PluginHost } from '../plugin-host/PluginHost';
1
+ import type { PluginHost } from '../plugin-host/plugin-host';
2
2
  import type { AgentServices } from '../services';
3
3
  import type { ContextItem, ContextManager, ContextResolveOptions } from './types';
4
4
  export interface AutoContextManagerOptions {
@@ -1,4 +1,4 @@
1
- export { AutoContextManager } from './AutoContextManager';
2
- export type { AutoContextManagerOptions } from './AutoContextManager';
1
+ export { AutoContextManager } from './auto-context-manager';
2
+ export type { AutoContextManagerOptions } from './auto-context-manager';
3
3
  export type { CompactionBudgetInfo, CompactionCheckpoint, CompactionEstimator, CompactionEstimatorInput, CompactionOptions, CompactionService, CompactionState, CompactionTriggerReason, CompactionUpdate, } from './compaction';
4
4
  export type { ContextItem, ContextManager, ContextResolveOptions } from './types';
@@ -1,16 +1,17 @@
1
1
  export type { CallToolResult, CompactionBudgetInfo, CompactionCheckpoint, CompactionEstimator, CompactionEstimatorInput, CompactionOptions, CompactionService, CompactionState, CompactionTriggerReason, CompactionUpdate, ContentBlock, Message, MessageContentInput, ModelAdapter, ModelClient, ModelRequest, ModelStreamEvent, ModelStopReason, ModelRef, PluginSessionStateEntry, PluginStateService, SessionStatus, SessionPluginEvent, SessionSnapshot, SessionStreamEvent, Tool, ToolCall, ToolDefinition, ToolExecutionContext, ToolExecutionPluginEvent, ToolInputSchema, Usage, } from './contracts';
2
2
  export { normalizeContent } from './contracts/content-normalize';
3
- export { Agent, createAgent } from './agent-core/Agent';
4
- export type { CreateAgentOptions } from './agent-core/Agent';
3
+ export { Agent, createAgent } from './agent-core/agent';
4
+ export type { CreateAgentOptions } from './agent-core/agent';
5
5
  export { DefaultCompactionService } from './agent-core/compaction';
6
- export { Session } from './agent-core/Session';
6
+ export { Session } from './agent-core/session';
7
7
  export { SessionExecutionError } from './agent-core/errors';
8
8
  export { FileStateStore, InMemoryStateStore } from './persistence';
9
9
  export { BaseTool, EditTool, ExecTool, ReadTool, ToolRegistry, WriteTool, } from './tools';
10
10
  export { appendToolCallArgsDelta, finalizeToolCall, startToolCall, } from './agent-core/tool-call';
11
11
  export { normalizeToolResult, normalizeToolSchema } from './contracts/tool-normalize';
12
- export { createAnthropicAdapter, createGeminiAdapter, createOpenAIAdapter, createOpenAIResponsesAdapter } from './providers';
13
- export { createModel } from './agent-core/createModel';
12
+ export { createAihubmixAdapter, createAihubmixResponsesAdapter, createAnthropicAdapter, createDeepSeekAdapter, createGeminiAdapter, createMoonshotAIAdapter, createOpenAIAdapter, createOpenAIResponsesAdapter, createXaiAdapter, createXaiResponsesAdapter, createZenMuxAdapter, } from './providers';
13
+ export type { AihubmixAdapterOptions, AihubmixResponsesAdapterOptions, AnthropicAdapterOptions, DeepSeekAdapterOptions, GeminiAdapterOptions, MoonshotAIAdapterOptions, OpenAIAdapterOptions, OpenAIResponsesAdapterOptions, XaiAdapterOptions, XaiResponsesAdapterOptions, ZenMuxAdapterOptions, } from './providers';
14
+ export { createModel } from './agent-core/create-model';
14
15
  export type { ContextItem, ContextManager, ContextResolveOptions, } from './context';
15
16
  export { AutoContextManager } from './context';
16
17
  export type { AgentServices, ExecGateway, ExecOptions, ExecResult, FileSystemGateway, FileSystemPermission, GitGateway, GlobOptions, GrepMatch, GrepOptions, ModelGateway, NetworkGateway, PermissionSpec, } from './services';
@@ -1,6 +1,6 @@
1
- export { FileStateStore } from './FileStateStore';
2
- export type { FileStateStoreOptions } from './FileStateStore';
3
- export { InMemoryStateStore } from './InMemoryStateStore';
4
- export { JsonSnapshotCodec, sessionSnapshotCodec } from './SnapshotCodec';
5
- export type { SnapshotCodec, SnapshotCodecInput } from './SnapshotCodec';
1
+ export { FileStateStore } from './file-state-store';
2
+ export type { FileStateStoreOptions } from './file-state-store';
3
+ export { InMemoryStateStore } from './in-memory-state-store';
4
+ export { JsonSnapshotCodec, sessionSnapshotCodec } from './snapshot-codec';
5
+ export type { SnapshotCodec, SnapshotCodecInput } from './snapshot-codec';
6
6
  export type { StateStore } from './store';
@@ -1,4 +1,4 @@
1
1
  export { allowToolCall, askToolCall, continueHook, continueNotification, continueRun, denyToolCall, finalizeRun, provideToolResult, replaceHook, replaceNotification, replaceToolCall, stopHook, suppressNotification, } from './helpers';
2
- export { HookPipeline } from './HookPipeline';
3
- export { PluginHost } from './PluginHost';
2
+ export { HookPipeline } from './hook-pipeline';
3
+ export { PluginHost } from './plugin-host';
4
4
  export type { AgentMode, AnyHookRegistrationEntry, ApprovalDecision, ApprovalRequest, AskApprovalInput, ContextCompactBeforePayload, ContextContributor, ContextContributorInput, ContextItem, DimPlugin, HookControlResult, HookDescriptor, HookHandler, HookMatcher, HookMiddleware, HookMiddlewareResult, HookMode, HookName, HookObserver, HookPayloadMap, HookRegistration, HookRegistrationEntry, InternalHookName, NotificationControlResult, NotificationHookPayload, NotificationPayload, PermissionSpec, PluginContext, PluginManifest, PluginRuntimeContext, PluginSessionControllerContext, PluginSessionControllerFactory, PluginSessionStateEntry, PluginStateService, PluginServices, PluginSetupResult, PromptContributor, PromptContributorInput, PublicHookName, RunEndPayload, RunLoopDecision, RunStartPayload, RunStopControlResult, RunStopPayload, SessionStatus, SessionErrorHookPayload, SubagentStopPayload, ToolBeforeExecuteControlResult, } from './types';
@@ -3,7 +3,7 @@ import type { SessionStatus } from '../contracts';
3
3
  import { PermissionGateway } from '../services';
4
4
  import type { ActivityTracker, AgentServices } from '../services';
5
5
  import type { Tool } from '../contracts';
6
- import { HookPipeline } from './HookPipeline';
6
+ import { HookPipeline } from './hook-pipeline';
7
7
  import type { ContextContributorInput, DimPlugin, HookName, HookPayloadMap, PluginRuntimeContext, PromptContributorInput, RunStopPayload, ToolBeforeExecutePayload } from './types';
8
8
  type SpecialHookName = 'notify.message' | 'run.stop' | 'tool.beforeExecute';
9
9
  type StandardHookName = Exclude<HookName, SpecialHookName>;
@@ -41,13 +41,13 @@ export declare class PluginHost {
41
41
  }): Promise<HookPayloadMap[N]>;
42
42
  runToolBeforeExecute(payload: ToolBeforeExecutePayload, context?: Omit<PluginRuntimeContext, 'agentId' | 'services'> & {
43
43
  services?: AgentServices;
44
- }): Promise<import("./HookPipeline").ToolBeforeExecuteHookResult>;
44
+ }): Promise<import("./hook-pipeline").ToolBeforeExecuteHookResult>;
45
45
  runNotifyMessage(payload: HookPayloadMap['notify.message'], context?: Omit<PluginRuntimeContext, 'agentId' | 'services'> & {
46
46
  services?: AgentServices;
47
- }): Promise<import("./HookPipeline").NotifyMessageHookResult>;
47
+ }): Promise<import("./hook-pipeline").NotifyMessageHookResult>;
48
48
  runRunStop(payload: RunStopPayload, context?: Omit<PluginRuntimeContext, 'agentId' | 'services'> & {
49
49
  services?: AgentServices;
50
- }): Promise<import("./HookPipeline").RunStopHookResult>;
50
+ }): Promise<import("./hook-pipeline").RunStopHookResult>;
51
51
  runObservers<N extends HookName>(name: N, payload: HookPayloadMap[N], context?: Omit<PluginRuntimeContext, 'agentId' | 'services'> & {
52
52
  services?: AgentServices;
53
53
  }): Promise<void>;
@@ -0,0 +1,17 @@
1
+ import type { ConfiguredModelAdapter } from '../../contracts';
2
+ import { type ProviderFactoryOptionsBase } from '../core/create-provider-factory';
3
+ type FetchLike = (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>;
4
+ export interface AihubmixAdapterOptions extends ProviderFactoryOptionsBase {
5
+ /**
6
+ * AIHubMix API key. When omitted, your custom fetch must attach the real
7
+ * upstream credentials before the request is sent.
8
+ */
9
+ apiKey?: string;
10
+ fetch?: FetchLike;
11
+ /**
12
+ * Compatibility mode forwarded to the AIHubMix provider package.
13
+ */
14
+ compatibility?: 'strict' | 'compatible';
15
+ }
16
+ export declare const createAihubmixAdapter: (options: AihubmixAdapterOptions) => ConfiguredModelAdapter;
17
+ export {};
@@ -0,0 +1,3 @@
1
+ import type { ProviderDriver } from '../core/create-provider-factory';
2
+ import type { AihubmixAdapterOptions } from './adapter';
3
+ export declare const aihubmixDriver: ProviderDriver<AihubmixAdapterOptions>;
@@ -0,0 +1,2 @@
1
+ export { createAihubmixAdapter } from './adapter';
2
+ export type { AihubmixAdapterOptions } from './adapter';
@@ -0,0 +1,17 @@
1
+ import type { ConfiguredModelAdapter } from '../../contracts';
2
+ import { type ProviderFactoryOptionsBase } from '../core/create-provider-factory';
3
+ type FetchLike = (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>;
4
+ export interface AihubmixResponsesAdapterOptions extends ProviderFactoryOptionsBase {
5
+ /**
6
+ * AIHubMix API key. When omitted, your custom fetch must attach the real
7
+ * upstream credentials before the request is sent.
8
+ */
9
+ apiKey?: string;
10
+ fetch?: FetchLike;
11
+ /**
12
+ * Compatibility mode forwarded to the AIHubMix provider package.
13
+ */
14
+ compatibility?: 'strict' | 'compatible';
15
+ }
16
+ export declare const createAihubmixResponsesAdapter: (options: AihubmixResponsesAdapterOptions) => ConfiguredModelAdapter;
17
+ export {};
@@ -0,0 +1,12 @@
1
+ import type { ProviderDriver } from '../core/create-provider-factory';
2
+ import type { AihubmixResponsesAdapterOptions } from './adapter';
3
+ export declare const aihubmixResponsesDriver: ProviderDriver<AihubmixResponsesAdapterOptions>;
4
+ export declare function createReasoningAwareResponsesFetch(input: {
5
+ fetch?: (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>;
6
+ stripAuthorization: boolean;
7
+ requestReasoning: {
8
+ effort?: string;
9
+ summary?: string;
10
+ } | undefined;
11
+ }): typeof fetch;
12
+ export declare function parseJsonBody(body: BodyInit): unknown;
@@ -0,0 +1,2 @@
1
+ export { createAihubmixResponsesAdapter } from './adapter';
2
+ export type { AihubmixResponsesAdapterOptions } from './adapter';
@@ -0,0 +1,7 @@
1
+ import type { LanguageModelV3GenerateResult } from '@ai-sdk/provider';
2
+ import type { Message } from '../../contracts';
3
+ export declare function sliceMessagesForAihubmixResponses(messages: Message[]): {
4
+ messages: Message[];
5
+ previousResponseId?: string;
6
+ };
7
+ export declare function createAihubmixResponsesAssistantMetadata(result: LanguageModelV3GenerateResult): Record<string, unknown> | undefined;
@@ -1,13 +1,24 @@
1
1
  import type { ConfiguredModelAdapter } from '../../contracts';
2
+ import { type ProviderFactoryOptionsBase } from '../core/create-provider-factory';
2
3
  type FetchLike = (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>;
3
- export interface AnthropicAdapterOptions {
4
+ export interface AnthropicAdapterOptions extends ProviderFactoryOptionsBase {
5
+ /**
6
+ * Anthropic API key. When omitted, you must inject real upstream auth through
7
+ * custom fetch or explicit auth headers.
8
+ */
4
9
  apiKey?: string;
10
+ /**
11
+ * Custom Anthropic base URL prefix.
12
+ * When the value does not end with `/v1`, the adapter appends `/v1`
13
+ * before handing it to the Anthropic AI SDK.
14
+ */
5
15
  baseUrl?: string;
6
- defaultModel: string;
7
- provider?: string;
8
16
  fetch?: FetchLike;
17
+ /**
18
+ * Custom headers sent to the Anthropic AI SDK request layer.
19
+ */
9
20
  headers?: Record<string, string>;
10
21
  anthropicVersion?: string;
11
22
  }
12
- export declare function createAnthropicAdapter(options: AnthropicAdapterOptions): ConfiguredModelAdapter;
23
+ export declare const createAnthropicAdapter: (options: AnthropicAdapterOptions) => ConfiguredModelAdapter;
13
24
  export {};
@@ -0,0 +1,3 @@
1
+ import type { ProviderDriver } from '../core/create-provider-factory';
2
+ import type { AnthropicAdapterOptions } from './adapter';
3
+ export declare const anthropicDriver: ProviderDriver<AnthropicAdapterOptions>;
@@ -0,0 +1,2 @@
1
+ export { createAnthropicAdapter } from './adapter';
2
+ export type { AnthropicAdapterOptions } from './adapter';
@@ -0,0 +1,6 @@
1
+ import type { LanguageModelV3GenerateResult } from '@ai-sdk/provider';
2
+ import type { AssistantMessage } from '../../contracts';
3
+ import type { AssistantPromptPart } from '../shared/prompt';
4
+ export declare function anthropicAssistantPrefixParts(message: AssistantMessage): AssistantPromptPart[];
5
+ export declare function hasAnthropicThinkingState(message: AssistantMessage): boolean;
6
+ export declare function createAnthropicAssistantMetadata(result: LanguageModelV3GenerateResult): Record<string, unknown> | undefined;
@@ -0,0 +1,39 @@
1
+ import type { ConfiguredModelAdapter, ModelErrorPayload, ModelRef, ModelRequest, ModelStopReason, Usage } from '../../contracts';
2
+ export interface ProviderFactoryOptionsBase {
3
+ defaultModel: string;
4
+ provider?: string;
5
+ }
6
+ export type ProviderDriverContentSegment = {
7
+ type: 'text';
8
+ text: string;
9
+ } | {
10
+ type: 'thinking';
11
+ text: string;
12
+ } | {
13
+ type: 'tool_call';
14
+ callId: string;
15
+ toolName: string;
16
+ argsText: string;
17
+ };
18
+ export interface ProviderDriverResult {
19
+ content: ProviderDriverContentSegment[];
20
+ stopReason: ModelStopReason;
21
+ usage?: Usage;
22
+ assistantMetadata?: Record<string, unknown>;
23
+ }
24
+ export interface ProviderDriverContext<Options extends ProviderFactoryOptionsBase = ProviderFactoryOptionsBase> {
25
+ options: Readonly<Options>;
26
+ provider: string;
27
+ defaultModel: ModelRef;
28
+ request: ModelRequest;
29
+ }
30
+ export interface ProviderDriver<Options extends ProviderFactoryOptionsBase = ProviderFactoryOptionsBase> {
31
+ generate(context: ProviderDriverContext<Options>): Promise<ProviderDriverResult>;
32
+ normalizeError?(error: unknown, context: ProviderDriverContext<Options>): Promise<ModelErrorPayload> | ModelErrorPayload;
33
+ }
34
+ interface ProviderFactoryDefinition<Options extends ProviderFactoryOptionsBase> {
35
+ defaultProvider: string;
36
+ driver: ProviderDriver<Options>;
37
+ }
38
+ export declare function createProviderFactory<Options extends ProviderFactoryOptionsBase>(definition: ProviderFactoryDefinition<Options>): (options: Options) => ConfiguredModelAdapter;
39
+ export {};
@@ -0,0 +1,2 @@
1
+ export { createProviderFactory } from './create-provider-factory';
2
+ export type { ProviderDriver, ProviderFactoryOptionsBase } from './create-provider-factory';
@@ -0,0 +1,11 @@
1
+ import type { ConfiguredModelAdapter } from '../../contracts';
2
+ import { type ProviderFactoryOptionsBase } from '../core/create-provider-factory';
3
+ type FetchLike = (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>;
4
+ export interface DeepSeekAdapterOptions extends ProviderFactoryOptionsBase {
5
+ apiKey?: string;
6
+ baseUrl?: string;
7
+ fetch?: FetchLike;
8
+ headers?: Record<string, string>;
9
+ }
10
+ export declare const createDeepSeekAdapter: (options: DeepSeekAdapterOptions) => ConfiguredModelAdapter;
11
+ export {};
@@ -0,0 +1,3 @@
1
+ import type { ProviderDriver } from '../core/create-provider-factory';
2
+ import type { DeepSeekAdapterOptions } from './adapter';
3
+ export declare const deepSeekDriver: ProviderDriver<DeepSeekAdapterOptions>;
@@ -0,0 +1,2 @@
1
+ export { createDeepSeekAdapter } from './adapter';
2
+ export type { DeepSeekAdapterOptions } from './adapter';
@@ -1,12 +1,11 @@
1
1
  import type { ConfiguredModelAdapter } from '../../contracts';
2
+ import { type ProviderFactoryOptionsBase } from '../core/create-provider-factory';
2
3
  type FetchLike = (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>;
3
- export interface GeminiAdapterOptions {
4
+ export interface GeminiAdapterOptions extends ProviderFactoryOptionsBase {
4
5
  apiKey?: string;
5
6
  baseUrl?: string;
6
- defaultModel: string;
7
- provider?: string;
8
7
  fetch?: FetchLike;
9
8
  headers?: Record<string, string>;
10
9
  }
11
- export declare function createGeminiAdapter(options: GeminiAdapterOptions): ConfiguredModelAdapter;
10
+ export declare const createGeminiAdapter: (options: GeminiAdapterOptions) => ConfiguredModelAdapter;
12
11
  export {};
@@ -0,0 +1,3 @@
1
+ import type { ProviderDriver } from '../core/create-provider-factory';
2
+ import type { GeminiAdapterOptions } from './adapter';
3
+ export declare const geminiDriver: ProviderDriver<GeminiAdapterOptions>;
@@ -0,0 +1,2 @@
1
+ export { createGeminiAdapter } from './adapter';
2
+ export type { GeminiAdapterOptions } from './adapter';
@@ -0,0 +1,5 @@
1
+ import type { LanguageModelV3GenerateResult } from '@ai-sdk/provider';
2
+ import type { AssistantMessage } from '../../contracts';
3
+ import type { AssistantPromptPart } from '../shared/prompt';
4
+ export declare function geminiAssistantPrefixParts(message: AssistantMessage): AssistantPromptPart[];
5
+ export declare function createGeminiAssistantMetadata(result: LanguageModelV3GenerateResult): Record<string, unknown> | undefined;
@@ -1,8 +1,22 @@
1
- export { createAnthropicAdapter } from './anthropic/adapter';
2
- export type { AnthropicAdapterOptions } from './anthropic/adapter';
3
- export { createGeminiAdapter } from './gemini/adapter';
4
- export type { GeminiAdapterOptions } from './gemini/adapter';
5
- export { createOpenAIAdapter } from './openai/adapter';
6
- export type { OpenAIAdapterOptions } from './openai/adapter';
7
- export { createOpenAIResponsesAdapter } from './openai-responses/adapter';
8
- export type { OpenAIResponsesAdapterOptions } from './openai-responses/adapter';
1
+ export { createAihubmixAdapter } from './aihubmix';
2
+ export type { AihubmixAdapterOptions } from './aihubmix';
3
+ export { createAihubmixResponsesAdapter } from './aihubmix-responses';
4
+ export type { AihubmixResponsesAdapterOptions } from './aihubmix-responses';
5
+ export { createAnthropicAdapter } from './anthropic';
6
+ export type { AnthropicAdapterOptions } from './anthropic';
7
+ export { createDeepSeekAdapter } from './deepseek';
8
+ export type { DeepSeekAdapterOptions } from './deepseek';
9
+ export { createGeminiAdapter } from './gemini';
10
+ export type { GeminiAdapterOptions } from './gemini';
11
+ export { createMoonshotAIAdapter } from './moonshotai';
12
+ export type { MoonshotAIAdapterOptions } from './moonshotai';
13
+ export { createOpenAIAdapter } from './openai';
14
+ export type { OpenAIAdapterOptions } from './openai';
15
+ export { createOpenAIResponsesAdapter } from './openai-responses';
16
+ export type { OpenAIResponsesAdapterOptions } from './openai-responses';
17
+ export { createXaiAdapter } from './xai';
18
+ export type { XaiAdapterOptions } from './xai';
19
+ export { createXaiResponsesAdapter } from './xai-responses';
20
+ export type { XaiResponsesAdapterOptions } from './xai-responses';
21
+ export { createZenMuxAdapter } from './zenmux';
22
+ export type { ZenMuxAdapterOptions } from './zenmux';
@@ -0,0 +1,11 @@
1
+ import type { ConfiguredModelAdapter } from '../../contracts';
2
+ import { type ProviderFactoryOptionsBase } from '../core/create-provider-factory';
3
+ type FetchLike = (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>;
4
+ export interface MoonshotAIAdapterOptions extends ProviderFactoryOptionsBase {
5
+ apiKey?: string;
6
+ baseUrl?: string;
7
+ fetch?: FetchLike;
8
+ headers?: Record<string, string>;
9
+ }
10
+ export declare const createMoonshotAIAdapter: (options: MoonshotAIAdapterOptions) => ConfiguredModelAdapter;
11
+ export {};
@@ -0,0 +1,3 @@
1
+ import type { ProviderDriver } from '../core/create-provider-factory';
2
+ import type { MoonshotAIAdapterOptions } from './adapter';
3
+ export declare const moonshotAIDriver: ProviderDriver<MoonshotAIAdapterOptions>;
@@ -0,0 +1,2 @@
1
+ export { createMoonshotAIAdapter } from './adapter';
2
+ export type { MoonshotAIAdapterOptions } from './adapter';
@@ -1,12 +1,11 @@
1
1
  import type { ConfiguredModelAdapter } from '../../contracts';
2
+ import { type ProviderFactoryOptionsBase } from '../core/create-provider-factory';
2
3
  type FetchLike = (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>;
3
- export interface OpenAIAdapterOptions {
4
+ export interface OpenAIAdapterOptions extends ProviderFactoryOptionsBase {
4
5
  apiKey?: string;
5
6
  baseUrl?: string;
6
- defaultModel: string;
7
- provider?: string;
8
7
  fetch?: FetchLike;
9
8
  headers?: Record<string, string>;
10
9
  }
11
- export declare function createOpenAIAdapter(options: OpenAIAdapterOptions): ConfiguredModelAdapter;
10
+ export declare const createOpenAIAdapter: (options: OpenAIAdapterOptions) => ConfiguredModelAdapter;
12
11
  export {};
@@ -0,0 +1,3 @@
1
+ import type { ProviderDriver } from '../core/create-provider-factory';
2
+ import type { OpenAIAdapterOptions } from './adapter';
3
+ export declare const openAIDriver: ProviderDriver<OpenAIAdapterOptions>;
@@ -0,0 +1,2 @@
1
+ export { createOpenAIAdapter } from './adapter';
2
+ export type { OpenAIAdapterOptions } from './adapter';
@@ -1,12 +1,11 @@
1
1
  import type { ConfiguredModelAdapter } from '../../contracts';
2
+ import { type ProviderFactoryOptionsBase } from '../core/create-provider-factory';
2
3
  type FetchLike = (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>;
3
- export interface OpenAIResponsesAdapterOptions {
4
+ export interface OpenAIResponsesAdapterOptions extends ProviderFactoryOptionsBase {
4
5
  apiKey?: string;
5
6
  baseUrl?: string;
6
- defaultModel: string;
7
- provider?: string;
8
7
  fetch?: FetchLike;
9
8
  headers?: Record<string, string>;
10
9
  }
11
- export declare function createOpenAIResponsesAdapter(options: OpenAIResponsesAdapterOptions): ConfiguredModelAdapter;
10
+ export declare const createOpenAIResponsesAdapter: (options: OpenAIResponsesAdapterOptions) => ConfiguredModelAdapter;
12
11
  export {};
@@ -0,0 +1,3 @@
1
+ import type { ProviderDriver } from '../core/create-provider-factory';
2
+ import type { OpenAIResponsesAdapterOptions } from './adapter';
3
+ export declare const openAIResponsesDriver: ProviderDriver<OpenAIResponsesAdapterOptions>;
@@ -0,0 +1,2 @@
1
+ export { createOpenAIResponsesAdapter } from './adapter';
2
+ export type { OpenAIResponsesAdapterOptions } from './adapter';
@@ -0,0 +1,7 @@
1
+ import type { LanguageModelV3GenerateResult } from '@ai-sdk/provider';
2
+ import type { Message } from '../../contracts';
3
+ export declare function sliceMessagesForOpenAIResponses(messages: Message[]): {
4
+ messages: Message[];
5
+ previousResponseId?: string;
6
+ };
7
+ export declare function createOpenAIResponsesAssistantMetadata(result: LanguageModelV3GenerateResult): Record<string, unknown> | undefined;
@@ -0,0 +1,7 @@
1
+ import type { LanguageModelV3, LanguageModelV3CallOptions, LanguageModelV3GenerateResult } from '@ai-sdk/provider';
2
+ import type { ProviderDriverResult } from '../core/create-provider-factory';
3
+ export declare function generateWithAiSdk(input: {
4
+ model: LanguageModelV3;
5
+ callOptions: LanguageModelV3CallOptions;
6
+ createAssistantMetadata?(result: LanguageModelV3GenerateResult): Record<string, unknown> | undefined;
7
+ }): Promise<ProviderDriverResult>;
@@ -0,0 +1,6 @@
1
+ export declare function warnIfPlaceholderApiKey(input: {
2
+ provider: string;
3
+ shouldWarn: boolean;
4
+ hint?: string;
5
+ }): void;
6
+ export declare function resetPlaceholderApiKeyWarningsForTest(): void;