@axiom-lattice/protocols 2.1.39 → 2.1.41

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.
@@ -1,5 +1,5 @@
1
1
 
2
- > @axiom-lattice/protocols@2.1.39 build /home/runner/work/agentic/agentic/packages/protocols
2
+ > @axiom-lattice/protocols@2.1.41 build /home/runner/work/agentic/agentic/packages/protocols
3
3
  > tsup src/index.ts --format cjs,esm --dts --sourcemap
4
4
 
5
5
  CLI Building entry: src/index.ts
@@ -8,13 +8,13 @@
8
8
  CLI Target: es2020
9
9
  CJS Build start
10
10
  ESM Build start
11
- ESM dist/index.mjs 4.12 KB
12
- ESM dist/index.mjs.map 35.65 KB
13
- ESM ⚡️ Build success in 132ms
14
- CJS dist/index.js 5.75 KB
15
- CJS dist/index.js.map 37.16 KB
16
- CJS ⚡️ Build success in 133ms
11
+ ESM dist/index.mjs 4.63 KB
12
+ ESM dist/index.mjs.map 41.44 KB
13
+ ESM ⚡️ Build success in 163ms
14
+ CJS dist/index.js 6.48 KB
15
+ CJS dist/index.js.map 43.04 KB
16
+ CJS ⚡️ Build success in 164ms
17
17
  DTS Build start
18
- DTS ⚡️ Build success in 9189ms
19
- DTS dist/index.d.ts 92.21 KB
20
- DTS dist/index.d.mts 92.21 KB
18
+ DTS ⚡️ Build success in 12042ms
19
+ DTS dist/index.d.ts 99.35 KB
20
+ DTS dist/index.d.mts 99.35 KB
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @axiom-lattice/protocols
2
2
 
3
+ ## 2.1.41
4
+
5
+ ### Patch Changes
6
+
7
+ - ec290af: sqlit store
8
+
9
+ ## 2.1.40
10
+
11
+ ### Patch Changes
12
+
13
+ - b7cd409: enhance more features a2a, cli
14
+
3
15
  ## 2.1.39
4
16
 
5
17
  ### Patch Changes
package/dist/index.d.mts CHANGED
@@ -127,7 +127,9 @@ declare enum AgentType {
127
127
  REACT = "react",
128
128
  DEEP_AGENT = "deep_agent",
129
129
  TEAM = "team",
130
- PROCESSING = "processing"
130
+ PROCESSING = "processing",
131
+ /** Remote A2A agent — delegates to an external A2A-compatible server */
132
+ A2A_REMOTE = "a2a_remote"
131
133
  }
132
134
  /**
133
135
  * Runtime configuration that will be injected into LangGraphRunnableConfig.configurable
@@ -291,15 +293,45 @@ interface TeamAgentConfig extends BaseAgentConfig {
291
293
  * Type guard to check if config is TeamAgentConfig
292
294
  */
293
295
  declare function isTeamAgentConfig(config: AgentConfig): config is TeamAgentConfig;
296
+ /**
297
+ * A2A_REMOTE agent configuration — delegates to an external A2A server.
298
+ *
299
+ * This agent type wraps a remote A2A endpoint so orchestrators can treat
300
+ * external agents the same as local LangGraph agents.
301
+ */
302
+ interface A2ARemoteAgentConfig extends BaseAgentConfig {
303
+ type: AgentType.A2A_REMOTE;
304
+ /**
305
+ * URL of the remote agent's agent card (e.g. http://host:3000/.well-known/agent-card.json).
306
+ * The builder fetches this card to discover the JSON-RPC endpoint.
307
+ */
308
+ agentCardUrl: string;
309
+ /**
310
+ * Optional API key sent as Bearer token or X-API-Key header.
311
+ */
312
+ apiKey?: string;
313
+ /**
314
+ * HTTP timeout in milliseconds (default: 300_000 = 5 min).
315
+ */
316
+ timeout?: number;
317
+ /**
318
+ * Optional tool keys (not used by the builder, but included for type compatibility).
319
+ */
320
+ tools?: string[];
321
+ }
322
+ /**
323
+ * Type guard to check if config is A2ARemoteAgentConfig
324
+ */
325
+ declare function isA2ARemoteAgentConfig(config: AgentConfig): config is A2ARemoteAgentConfig;
294
326
  /**
295
327
  * Agent configuration union type
296
328
  * Different agent types have different configuration options
297
329
  */
298
- type AgentConfig = ReactAgentConfig | DeepAgentConfig | TeamAgentConfig | ProcessingAgentConfig;
330
+ type AgentConfig = ReactAgentConfig | DeepAgentConfig | TeamAgentConfig | ProcessingAgentConfig | A2ARemoteAgentConfig;
299
331
  /**
300
332
  * Agent configuration with tools property
301
333
  */
302
- type AgentConfigWithTools = ReactAgentConfig | DeepAgentConfig | TeamAgentConfig | ProcessingAgentConfig;
334
+ type AgentConfigWithTools = ReactAgentConfig | DeepAgentConfig | TeamAgentConfig | ProcessingAgentConfig | A2ARemoteAgentConfig;
303
335
  /**
304
336
  * Type guard to check if config has tools property
305
337
  */
@@ -1772,6 +1804,8 @@ interface Project {
1772
1804
  workspaceId: string;
1773
1805
  name: string;
1774
1806
  description?: string;
1807
+ /** Application-specific configuration stored as JSON */
1808
+ config?: Record<string, unknown>;
1775
1809
  createdAt: Date;
1776
1810
  updatedAt: Date;
1777
1811
  }
@@ -1781,13 +1815,21 @@ interface Project {
1781
1815
  interface CreateProjectRequest {
1782
1816
  name: string;
1783
1817
  description?: string;
1818
+ /** Application-specific configuration stored as JSON (optional) */
1819
+ config?: Record<string, unknown>;
1784
1820
  }
1785
1821
  /**
1786
1822
  * Update project request type
1823
+ *
1824
+ * @remarks
1825
+ * - The `config` field uses **replace** semantics: if provided, it completely
1826
+ * overwrites the existing config. To preserve the current config, omit this field.
1787
1827
  */
1788
1828
  interface UpdateProjectRequest {
1789
1829
  name?: string;
1790
1830
  description?: string;
1831
+ /** Application-specific configuration stored as JSON (replaces existing if provided) */
1832
+ config?: Record<string, unknown>;
1791
1833
  }
1792
1834
  /**
1793
1835
  * ProjectStore interface
@@ -3142,6 +3184,201 @@ interface ChannelAdapter<TConfig = unknown> {
3142
3184
  sendReply(replyTarget: ReplyTarget, message: OutboundMessage, installation: ChannelInstallation): Promise<void>;
3143
3185
  }
3144
3186
 
3187
+ /**
3188
+ * A2AProtocol - Google Agent-to-Agent Protocol type definitions
3189
+ *
3190
+ * Based on the A2A open protocol spec for AI agent interoperability.
3191
+ * @see https://github.com/google/A2A
3192
+ */
3193
+ interface A2ASkill {
3194
+ id: string;
3195
+ name: string;
3196
+ description: string;
3197
+ tags: string[];
3198
+ examples: string[];
3199
+ }
3200
+ interface A2ACapabilities {
3201
+ streaming: boolean;
3202
+ pushNotifications: boolean;
3203
+ stateTransitionHistory: boolean;
3204
+ }
3205
+ interface A2AProvider {
3206
+ organization: string;
3207
+ url?: string;
3208
+ }
3209
+ interface AgentCard {
3210
+ name: string;
3211
+ description: string;
3212
+ url: string;
3213
+ provider: A2AProvider;
3214
+ version: string;
3215
+ documentationUrl?: string;
3216
+ capabilities: A2ACapabilities;
3217
+ defaultInputModes: string[];
3218
+ defaultOutputModes: string[];
3219
+ skills: A2ASkill[];
3220
+ }
3221
+ interface A2ATextPart {
3222
+ type: "text";
3223
+ text: string;
3224
+ }
3225
+ interface A2AFilePart {
3226
+ type: "file";
3227
+ file: {
3228
+ name: string;
3229
+ mimeType: string;
3230
+ bytes?: string;
3231
+ uri?: string;
3232
+ };
3233
+ }
3234
+ interface A2ADataPart {
3235
+ type: "data";
3236
+ data: Record<string, unknown>;
3237
+ }
3238
+ type A2APart = A2ATextPart | A2AFilePart | A2ADataPart;
3239
+ interface A2AMessage {
3240
+ role: "user" | "agent";
3241
+ parts: A2APart[];
3242
+ metadata?: Record<string, unknown>;
3243
+ }
3244
+ type A2ATaskState = "working" | "input-required" | "completed" | "failed" | "canceled" | "rejected";
3245
+ interface A2ATaskStatus {
3246
+ state: A2ATaskState;
3247
+ message?: A2AMessage;
3248
+ timestamp: string;
3249
+ }
3250
+ interface A2AArtifact {
3251
+ name?: string;
3252
+ description?: string;
3253
+ parts: A2APart[];
3254
+ metadata?: Record<string, unknown>;
3255
+ }
3256
+ interface A2ATask {
3257
+ id: string;
3258
+ sessionId?: string;
3259
+ status: A2ATaskStatus;
3260
+ artifacts: A2AArtifact[];
3261
+ history?: A2AMessage[];
3262
+ metadata?: Record<string, unknown>;
3263
+ }
3264
+ interface A2ATaskSendRequest {
3265
+ id?: string;
3266
+ sessionId?: string;
3267
+ message: A2AMessage;
3268
+ pushNotification?: A2APushNotification;
3269
+ historyLength?: number;
3270
+ metadata?: Record<string, unknown>;
3271
+ }
3272
+ interface A2APushNotification {
3273
+ url: string;
3274
+ token?: string;
3275
+ }
3276
+ interface A2ATaskUpdatePayload {
3277
+ id: string;
3278
+ sessionId?: string;
3279
+ status: A2ATaskStatus;
3280
+ final?: boolean;
3281
+ metadata?: Record<string, unknown>;
3282
+ }
3283
+ interface A2ATaskArtifactUpdatePayload {
3284
+ id: string;
3285
+ sessionId?: string;
3286
+ artifact: A2AArtifact;
3287
+ final?: boolean;
3288
+ metadata?: Record<string, unknown>;
3289
+ }
3290
+ type A2ASSEEvent = {
3291
+ event: "task";
3292
+ data: A2ATaskUpdatePayload;
3293
+ } | {
3294
+ event: "status-update";
3295
+ data: A2ATaskUpdatePayload;
3296
+ } | {
3297
+ event: "artifact-update";
3298
+ data: A2ATaskArtifactUpdatePayload;
3299
+ } | {
3300
+ event: "error";
3301
+ data: {
3302
+ code: string;
3303
+ message: string;
3304
+ };
3305
+ };
3306
+ interface A2AConfig {
3307
+ agentName: string;
3308
+ agentDescription: string;
3309
+ agentUrl: string;
3310
+ organization: string;
3311
+ version?: string;
3312
+ capabilities?: Partial<A2ACapabilities>;
3313
+ defaultInputModes?: string[];
3314
+ defaultOutputModes?: string[];
3315
+ skills?: A2ASkill[];
3316
+ apiKeyMap: Map<string, A2AApiKeyEntry>;
3317
+ }
3318
+ interface A2AApiKeyEntry {
3319
+ key: string;
3320
+ tenantId?: string;
3321
+ projectId?: string;
3322
+ workspaceId?: string;
3323
+ }
3324
+ declare const A2A_DEFAULT_CAPABILITIES: A2ACapabilities;
3325
+ declare const A2A_DEFAULT_INPUT_MODES: string[];
3326
+ declare const A2A_DEFAULT_OUTPUT_MODES: string[];
3327
+ interface A2AAuthContext {
3328
+ authenticated: boolean;
3329
+ apiKey?: string;
3330
+ tenantId?: string;
3331
+ projectId?: string;
3332
+ workspaceId?: string;
3333
+ source?: "bearer" | "x-api-key";
3334
+ }
3335
+
3336
+ /**
3337
+ * A2AApiKeyStoreProtocol
3338
+ *
3339
+ * Persistence interface for A2A API keys with tenant/project/workspace scoping.
3340
+ */
3341
+
3342
+ interface A2AApiKeyRecord {
3343
+ id: string;
3344
+ key: string;
3345
+ tenantId: string;
3346
+ projectId?: string;
3347
+ workspaceId?: string;
3348
+ label?: string;
3349
+ enabled: boolean;
3350
+ createdAt: Date;
3351
+ updatedAt: Date;
3352
+ }
3353
+ interface CreateA2AApiKeyInput {
3354
+ tenantId: string;
3355
+ projectId?: string;
3356
+ workspaceId?: string;
3357
+ label?: string;
3358
+ }
3359
+ interface A2AApiKeyStore {
3360
+ /** Look up a key record by its bearer token value (for auth). */
3361
+ findByKey(key: string): Promise<A2AApiKeyRecord | null>;
3362
+ /** List all keys, optionally filtered by tenant. */
3363
+ list(params: {
3364
+ tenantId?: string;
3365
+ limit?: number;
3366
+ offset?: number;
3367
+ }): Promise<A2AApiKeyRecord[]>;
3368
+ /** Create a new key. The store is responsible for generating the key value. */
3369
+ create(input: CreateA2AApiKeyInput): Promise<A2AApiKeyRecord>;
3370
+ /** Disable a key (soft delete — never hard-delete to preserve audit trail). */
3371
+ disable(id: string): Promise<A2AApiKeyRecord>;
3372
+ /** Enable a previously disabled key. */
3373
+ enable(id: string): Promise<A2AApiKeyRecord>;
3374
+ /** Rotate a key: generate new value, return new record. */
3375
+ rotate(id: string): Promise<A2AApiKeyRecord>;
3376
+ /** Delete a key permanently. */
3377
+ delete(id: string): Promise<void>;
3378
+ /** Bulk load all active keys into a lookup Map (used at startup). */
3379
+ loadIntoMap(): Promise<Map<string, A2AApiKeyEntry>>;
3380
+ }
3381
+
3145
3382
  /**
3146
3383
  * 通用类型定义
3147
3384
  *
@@ -3205,4 +3442,4 @@ type Timestamp = number;
3205
3442
  */
3206
3443
  type Callback<T = any, R = void> = (data: T) => R | Promise<R>;
3207
3444
 
3208
- export { type AgentClient, type AgentConfig, type AgentConfigWithTools, type AgentLatticeProtocol, type AgentMiddlewareConfig, type AgentRunConfig, AgentType, type Assistant, type AssistantMessage, type AssistantStore, type Attachment, type AvailableModule, type BaseLatticeProtocol, type BaseMessage, type Binding, type BindingRegistry, type BootstrapFilesConfig, type BrowserMiddlewareConfig, type Callback, type ChannelAdapter, type ChannelInstallation, type ChannelInstallationStore, type ChannelInstallationType, type ClawMiddlewareConfig, type CodeEvalMiddlewareConfig, type CreateAssistantRequest, type CreateBindingInput, type CreateChannelInstallationRequest, type CreateDatabaseConfigRequest, type CreateEvalCaseRequest, type CreateEvalProjectRequest, type CreateEvalRunRequest, type CreateEvalSuiteRequest, type CreateMcpServerConfigRequest, type CreateMetricsServerConfigRequest, type CreateProjectRequest, type CreateRunStepRequest, type CreateSkillRequest, type CreateTenantRequest, type CreateThreadRequest, type CreateUserRequest, type CreateUserTenantLinkRequest, type CreateWorkflowRunRequest, type CreateWorkspaceRequest, type DataSource, type DatabaseConfig, type DatabaseConfigEntry, type DatabaseConfigStore, type DatabaseType, type DeepAgentConfig, type DeveloperMessage, type DispatchResult, type EmbeddingsConfig, type EmbeddingsLatticeProtocol, type EvalCase, type EvalProject, type EvalProjectReport, type EvalRun, type EvalRunResult, type EvalStore, type EvalSuite, type ExecuteSqlQueryRequest, type ExecuteSqlQueryResponse, type FilterCondition, type GraphBuildOptions, type ID, type InboundMessage, type InterruptMessage, type LLMConfig, type LarkChannelInstallationConfig, type LatticeError, type LatticeEventBus, type LatticeMessage, type LoggerClient, type LoggerConfig, type LoggerContext, type LoggerLatticeProtocol, LoggerType, type McpClient, type McpClientOptions, type McpConnectionStatus, type McpLatticeMessage, type McpLatticeProtocol, McpMessageType, type McpServerConfig, type McpServerConfigEntry, type McpServerConfigStore, type McpStats, type McpTool, type McpToolResult, type McpTransportType, type MemoryClient, type MemoryConfig, type MemoryLatticeProtocol, MemoryType, type Message, type MessageChunk, type MessageChunkType, MessageChunkTypes, type MessageContext, type MessageMiddleware, type MetricColumn, type MetricDataPoint, type MetricMeta, type MetricQueryResult, type MetricsMiddlewareConfig, type MetricsServerConfig, type MetricsServerConfigEntry, type MetricsServerConfigStore, type MetricsServerType, type MiddlewareType, type ModelLatticeProtocol, type OutboundMessage, type PaginatedResult, type PaginationParams, type PinoFileOptions, type ProcessingAgentConfig, type Project, type ProjectStore, type QueryParams, type QueryResultFormat, type QueueClient, type QueueConfig, type QueueLatticeProtocol, type QueueResult, QueueType, type ReactAgentConfig, type ReplyTarget, type Result, type RunStep, type SandboxMiddlewareConfig, type ScheduleClient, type ScheduleConfig, type ScheduleCronOptions, ScheduleExecutionType, type ScheduleLatticeProtocol, type ScheduleOnceOptions, type ScheduleStorage, ScheduleType, type ScheduledTaskDefinition, ScheduledTaskStatus, type SchedulerMiddlewareConfig, type SemanticMetricsFilter, type SemanticMetricsQueryRequest, type SemanticMetricsQueryResponse, type SemanticMetricsServerConfig, type Skill, type SkillClient, type SkillClientType, type SkillConfig, type SkillLatticeProtocol, type SkillStore, type SkillStoreContext, type SqlMiddlewareConfig, type StepStatus, type StepType, type StorageType, type SystemMessage, type TableQueryRequest, type TableQueryResponse, type TaskHandler, type TeamAgentConfig, type TeamTeammateConfig, type Tenant, type TenantStatus, type TenantStore, type TestMcpServerToolsResponse, type Thread, type ThreadStore, type Timestamp, type ToolCall, type ToolConfig, type ToolExecutor, type ToolLatticeProtocol, type ToolMessage, type TopologyEdge, type UIComponent, UIComponentType, type UIConfig, type UILatticeProtocol, type UpdateChannelInstallationRequest, type UpdateDatabaseConfigRequest, type UpdateMcpServerConfigRequest, type UpdateMetricsServerConfigRequest, type UpdateProjectRequest, type UpdateRunStepRequest, type UpdateTenantRequest, type UpdateUserRequest, type UpdateUserTenantLinkRequest, type UpdateWorkflowRunRequest, type UpdateWorkspaceRequest, type User, type UserMessage, type UserStatus, type UserStore, type UserTenantLink, type UserTenantLinkStore, type UserTenantRole, type VectorStoreConfig, type VectorStoreLatticeProtocol, type WorkflowRun, type WorkflowRunStatus, type WorkflowTrackingStore, type Workspace, type WorkspaceStore, getSubAgentsFromConfig, getToolsFromConfig, hasTools, isDeepAgentConfig, isProcessingAgentConfig, isTeamAgentConfig };
3445
+ export { type A2AApiKeyEntry, type A2AApiKeyRecord, type A2AApiKeyStore, type A2AArtifact, type A2AAuthContext, type A2ACapabilities, type A2AConfig, type A2ADataPart, type A2AFilePart, type A2AMessage, type A2APart, type A2AProvider, type A2APushNotification, type A2ARemoteAgentConfig, type A2ASSEEvent, type A2ASkill, type A2ATask, type A2ATaskArtifactUpdatePayload, type A2ATaskSendRequest, type A2ATaskState, type A2ATaskStatus, type A2ATaskUpdatePayload, type A2ATextPart, A2A_DEFAULT_CAPABILITIES, A2A_DEFAULT_INPUT_MODES, A2A_DEFAULT_OUTPUT_MODES, type AgentCard, type AgentClient, type AgentConfig, type AgentConfigWithTools, type AgentLatticeProtocol, type AgentMiddlewareConfig, type AgentRunConfig, AgentType, type Assistant, type AssistantMessage, type AssistantStore, type Attachment, type AvailableModule, type BaseLatticeProtocol, type BaseMessage, type Binding, type BindingRegistry, type BootstrapFilesConfig, type BrowserMiddlewareConfig, type Callback, type ChannelAdapter, type ChannelInstallation, type ChannelInstallationStore, type ChannelInstallationType, type ClawMiddlewareConfig, type CodeEvalMiddlewareConfig, type CreateA2AApiKeyInput, type CreateAssistantRequest, type CreateBindingInput, type CreateChannelInstallationRequest, type CreateDatabaseConfigRequest, type CreateEvalCaseRequest, type CreateEvalProjectRequest, type CreateEvalRunRequest, type CreateEvalSuiteRequest, type CreateMcpServerConfigRequest, type CreateMetricsServerConfigRequest, type CreateProjectRequest, type CreateRunStepRequest, type CreateSkillRequest, type CreateTenantRequest, type CreateThreadRequest, type CreateUserRequest, type CreateUserTenantLinkRequest, type CreateWorkflowRunRequest, type CreateWorkspaceRequest, type DataSource, type DatabaseConfig, type DatabaseConfigEntry, type DatabaseConfigStore, type DatabaseType, type DeepAgentConfig, type DeveloperMessage, type DispatchResult, type EmbeddingsConfig, type EmbeddingsLatticeProtocol, type EvalCase, type EvalProject, type EvalProjectReport, type EvalRun, type EvalRunResult, type EvalStore, type EvalSuite, type ExecuteSqlQueryRequest, type ExecuteSqlQueryResponse, type FilterCondition, type GraphBuildOptions, type ID, type InboundMessage, type InterruptMessage, type LLMConfig, type LarkChannelInstallationConfig, type LatticeError, type LatticeEventBus, type LatticeMessage, type LoggerClient, type LoggerConfig, type LoggerContext, type LoggerLatticeProtocol, LoggerType, type McpClient, type McpClientOptions, type McpConnectionStatus, type McpLatticeMessage, type McpLatticeProtocol, McpMessageType, type McpServerConfig, type McpServerConfigEntry, type McpServerConfigStore, type McpStats, type McpTool, type McpToolResult, type McpTransportType, type MemoryClient, type MemoryConfig, type MemoryLatticeProtocol, MemoryType, type Message, type MessageChunk, type MessageChunkType, MessageChunkTypes, type MessageContext, type MessageMiddleware, type MetricColumn, type MetricDataPoint, type MetricMeta, type MetricQueryResult, type MetricsMiddlewareConfig, type MetricsServerConfig, type MetricsServerConfigEntry, type MetricsServerConfigStore, type MetricsServerType, type MiddlewareType, type ModelLatticeProtocol, type OutboundMessage, type PaginatedResult, type PaginationParams, type PinoFileOptions, type ProcessingAgentConfig, type Project, type ProjectStore, type QueryParams, type QueryResultFormat, type QueueClient, type QueueConfig, type QueueLatticeProtocol, type QueueResult, QueueType, type ReactAgentConfig, type ReplyTarget, type Result, type RunStep, type SandboxMiddlewareConfig, type ScheduleClient, type ScheduleConfig, type ScheduleCronOptions, ScheduleExecutionType, type ScheduleLatticeProtocol, type ScheduleOnceOptions, type ScheduleStorage, ScheduleType, type ScheduledTaskDefinition, ScheduledTaskStatus, type SchedulerMiddlewareConfig, type SemanticMetricsFilter, type SemanticMetricsQueryRequest, type SemanticMetricsQueryResponse, type SemanticMetricsServerConfig, type Skill, type SkillClient, type SkillClientType, type SkillConfig, type SkillLatticeProtocol, type SkillStore, type SkillStoreContext, type SqlMiddlewareConfig, type StepStatus, type StepType, type StorageType, type SystemMessage, type TableQueryRequest, type TableQueryResponse, type TaskHandler, type TeamAgentConfig, type TeamTeammateConfig, type Tenant, type TenantStatus, type TenantStore, type TestMcpServerToolsResponse, type Thread, type ThreadStore, type Timestamp, type ToolCall, type ToolConfig, type ToolExecutor, type ToolLatticeProtocol, type ToolMessage, type TopologyEdge, type UIComponent, UIComponentType, type UIConfig, type UILatticeProtocol, type UpdateChannelInstallationRequest, type UpdateDatabaseConfigRequest, type UpdateMcpServerConfigRequest, type UpdateMetricsServerConfigRequest, type UpdateProjectRequest, type UpdateRunStepRequest, type UpdateTenantRequest, type UpdateUserRequest, type UpdateUserTenantLinkRequest, type UpdateWorkflowRunRequest, type UpdateWorkspaceRequest, type User, type UserMessage, type UserStatus, type UserStore, type UserTenantLink, type UserTenantLinkStore, type UserTenantRole, type VectorStoreConfig, type VectorStoreLatticeProtocol, type WorkflowRun, type WorkflowRunStatus, type WorkflowTrackingStore, type Workspace, type WorkspaceStore, getSubAgentsFromConfig, getToolsFromConfig, hasTools, isA2ARemoteAgentConfig, isDeepAgentConfig, isProcessingAgentConfig, isTeamAgentConfig };
package/dist/index.d.ts CHANGED
@@ -127,7 +127,9 @@ declare enum AgentType {
127
127
  REACT = "react",
128
128
  DEEP_AGENT = "deep_agent",
129
129
  TEAM = "team",
130
- PROCESSING = "processing"
130
+ PROCESSING = "processing",
131
+ /** Remote A2A agent — delegates to an external A2A-compatible server */
132
+ A2A_REMOTE = "a2a_remote"
131
133
  }
132
134
  /**
133
135
  * Runtime configuration that will be injected into LangGraphRunnableConfig.configurable
@@ -291,15 +293,45 @@ interface TeamAgentConfig extends BaseAgentConfig {
291
293
  * Type guard to check if config is TeamAgentConfig
292
294
  */
293
295
  declare function isTeamAgentConfig(config: AgentConfig): config is TeamAgentConfig;
296
+ /**
297
+ * A2A_REMOTE agent configuration — delegates to an external A2A server.
298
+ *
299
+ * This agent type wraps a remote A2A endpoint so orchestrators can treat
300
+ * external agents the same as local LangGraph agents.
301
+ */
302
+ interface A2ARemoteAgentConfig extends BaseAgentConfig {
303
+ type: AgentType.A2A_REMOTE;
304
+ /**
305
+ * URL of the remote agent's agent card (e.g. http://host:3000/.well-known/agent-card.json).
306
+ * The builder fetches this card to discover the JSON-RPC endpoint.
307
+ */
308
+ agentCardUrl: string;
309
+ /**
310
+ * Optional API key sent as Bearer token or X-API-Key header.
311
+ */
312
+ apiKey?: string;
313
+ /**
314
+ * HTTP timeout in milliseconds (default: 300_000 = 5 min).
315
+ */
316
+ timeout?: number;
317
+ /**
318
+ * Optional tool keys (not used by the builder, but included for type compatibility).
319
+ */
320
+ tools?: string[];
321
+ }
322
+ /**
323
+ * Type guard to check if config is A2ARemoteAgentConfig
324
+ */
325
+ declare function isA2ARemoteAgentConfig(config: AgentConfig): config is A2ARemoteAgentConfig;
294
326
  /**
295
327
  * Agent configuration union type
296
328
  * Different agent types have different configuration options
297
329
  */
298
- type AgentConfig = ReactAgentConfig | DeepAgentConfig | TeamAgentConfig | ProcessingAgentConfig;
330
+ type AgentConfig = ReactAgentConfig | DeepAgentConfig | TeamAgentConfig | ProcessingAgentConfig | A2ARemoteAgentConfig;
299
331
  /**
300
332
  * Agent configuration with tools property
301
333
  */
302
- type AgentConfigWithTools = ReactAgentConfig | DeepAgentConfig | TeamAgentConfig | ProcessingAgentConfig;
334
+ type AgentConfigWithTools = ReactAgentConfig | DeepAgentConfig | TeamAgentConfig | ProcessingAgentConfig | A2ARemoteAgentConfig;
303
335
  /**
304
336
  * Type guard to check if config has tools property
305
337
  */
@@ -1772,6 +1804,8 @@ interface Project {
1772
1804
  workspaceId: string;
1773
1805
  name: string;
1774
1806
  description?: string;
1807
+ /** Application-specific configuration stored as JSON */
1808
+ config?: Record<string, unknown>;
1775
1809
  createdAt: Date;
1776
1810
  updatedAt: Date;
1777
1811
  }
@@ -1781,13 +1815,21 @@ interface Project {
1781
1815
  interface CreateProjectRequest {
1782
1816
  name: string;
1783
1817
  description?: string;
1818
+ /** Application-specific configuration stored as JSON (optional) */
1819
+ config?: Record<string, unknown>;
1784
1820
  }
1785
1821
  /**
1786
1822
  * Update project request type
1823
+ *
1824
+ * @remarks
1825
+ * - The `config` field uses **replace** semantics: if provided, it completely
1826
+ * overwrites the existing config. To preserve the current config, omit this field.
1787
1827
  */
1788
1828
  interface UpdateProjectRequest {
1789
1829
  name?: string;
1790
1830
  description?: string;
1831
+ /** Application-specific configuration stored as JSON (replaces existing if provided) */
1832
+ config?: Record<string, unknown>;
1791
1833
  }
1792
1834
  /**
1793
1835
  * ProjectStore interface
@@ -3142,6 +3184,201 @@ interface ChannelAdapter<TConfig = unknown> {
3142
3184
  sendReply(replyTarget: ReplyTarget, message: OutboundMessage, installation: ChannelInstallation): Promise<void>;
3143
3185
  }
3144
3186
 
3187
+ /**
3188
+ * A2AProtocol - Google Agent-to-Agent Protocol type definitions
3189
+ *
3190
+ * Based on the A2A open protocol spec for AI agent interoperability.
3191
+ * @see https://github.com/google/A2A
3192
+ */
3193
+ interface A2ASkill {
3194
+ id: string;
3195
+ name: string;
3196
+ description: string;
3197
+ tags: string[];
3198
+ examples: string[];
3199
+ }
3200
+ interface A2ACapabilities {
3201
+ streaming: boolean;
3202
+ pushNotifications: boolean;
3203
+ stateTransitionHistory: boolean;
3204
+ }
3205
+ interface A2AProvider {
3206
+ organization: string;
3207
+ url?: string;
3208
+ }
3209
+ interface AgentCard {
3210
+ name: string;
3211
+ description: string;
3212
+ url: string;
3213
+ provider: A2AProvider;
3214
+ version: string;
3215
+ documentationUrl?: string;
3216
+ capabilities: A2ACapabilities;
3217
+ defaultInputModes: string[];
3218
+ defaultOutputModes: string[];
3219
+ skills: A2ASkill[];
3220
+ }
3221
+ interface A2ATextPart {
3222
+ type: "text";
3223
+ text: string;
3224
+ }
3225
+ interface A2AFilePart {
3226
+ type: "file";
3227
+ file: {
3228
+ name: string;
3229
+ mimeType: string;
3230
+ bytes?: string;
3231
+ uri?: string;
3232
+ };
3233
+ }
3234
+ interface A2ADataPart {
3235
+ type: "data";
3236
+ data: Record<string, unknown>;
3237
+ }
3238
+ type A2APart = A2ATextPart | A2AFilePart | A2ADataPart;
3239
+ interface A2AMessage {
3240
+ role: "user" | "agent";
3241
+ parts: A2APart[];
3242
+ metadata?: Record<string, unknown>;
3243
+ }
3244
+ type A2ATaskState = "working" | "input-required" | "completed" | "failed" | "canceled" | "rejected";
3245
+ interface A2ATaskStatus {
3246
+ state: A2ATaskState;
3247
+ message?: A2AMessage;
3248
+ timestamp: string;
3249
+ }
3250
+ interface A2AArtifact {
3251
+ name?: string;
3252
+ description?: string;
3253
+ parts: A2APart[];
3254
+ metadata?: Record<string, unknown>;
3255
+ }
3256
+ interface A2ATask {
3257
+ id: string;
3258
+ sessionId?: string;
3259
+ status: A2ATaskStatus;
3260
+ artifacts: A2AArtifact[];
3261
+ history?: A2AMessage[];
3262
+ metadata?: Record<string, unknown>;
3263
+ }
3264
+ interface A2ATaskSendRequest {
3265
+ id?: string;
3266
+ sessionId?: string;
3267
+ message: A2AMessage;
3268
+ pushNotification?: A2APushNotification;
3269
+ historyLength?: number;
3270
+ metadata?: Record<string, unknown>;
3271
+ }
3272
+ interface A2APushNotification {
3273
+ url: string;
3274
+ token?: string;
3275
+ }
3276
+ interface A2ATaskUpdatePayload {
3277
+ id: string;
3278
+ sessionId?: string;
3279
+ status: A2ATaskStatus;
3280
+ final?: boolean;
3281
+ metadata?: Record<string, unknown>;
3282
+ }
3283
+ interface A2ATaskArtifactUpdatePayload {
3284
+ id: string;
3285
+ sessionId?: string;
3286
+ artifact: A2AArtifact;
3287
+ final?: boolean;
3288
+ metadata?: Record<string, unknown>;
3289
+ }
3290
+ type A2ASSEEvent = {
3291
+ event: "task";
3292
+ data: A2ATaskUpdatePayload;
3293
+ } | {
3294
+ event: "status-update";
3295
+ data: A2ATaskUpdatePayload;
3296
+ } | {
3297
+ event: "artifact-update";
3298
+ data: A2ATaskArtifactUpdatePayload;
3299
+ } | {
3300
+ event: "error";
3301
+ data: {
3302
+ code: string;
3303
+ message: string;
3304
+ };
3305
+ };
3306
+ interface A2AConfig {
3307
+ agentName: string;
3308
+ agentDescription: string;
3309
+ agentUrl: string;
3310
+ organization: string;
3311
+ version?: string;
3312
+ capabilities?: Partial<A2ACapabilities>;
3313
+ defaultInputModes?: string[];
3314
+ defaultOutputModes?: string[];
3315
+ skills?: A2ASkill[];
3316
+ apiKeyMap: Map<string, A2AApiKeyEntry>;
3317
+ }
3318
+ interface A2AApiKeyEntry {
3319
+ key: string;
3320
+ tenantId?: string;
3321
+ projectId?: string;
3322
+ workspaceId?: string;
3323
+ }
3324
+ declare const A2A_DEFAULT_CAPABILITIES: A2ACapabilities;
3325
+ declare const A2A_DEFAULT_INPUT_MODES: string[];
3326
+ declare const A2A_DEFAULT_OUTPUT_MODES: string[];
3327
+ interface A2AAuthContext {
3328
+ authenticated: boolean;
3329
+ apiKey?: string;
3330
+ tenantId?: string;
3331
+ projectId?: string;
3332
+ workspaceId?: string;
3333
+ source?: "bearer" | "x-api-key";
3334
+ }
3335
+
3336
+ /**
3337
+ * A2AApiKeyStoreProtocol
3338
+ *
3339
+ * Persistence interface for A2A API keys with tenant/project/workspace scoping.
3340
+ */
3341
+
3342
+ interface A2AApiKeyRecord {
3343
+ id: string;
3344
+ key: string;
3345
+ tenantId: string;
3346
+ projectId?: string;
3347
+ workspaceId?: string;
3348
+ label?: string;
3349
+ enabled: boolean;
3350
+ createdAt: Date;
3351
+ updatedAt: Date;
3352
+ }
3353
+ interface CreateA2AApiKeyInput {
3354
+ tenantId: string;
3355
+ projectId?: string;
3356
+ workspaceId?: string;
3357
+ label?: string;
3358
+ }
3359
+ interface A2AApiKeyStore {
3360
+ /** Look up a key record by its bearer token value (for auth). */
3361
+ findByKey(key: string): Promise<A2AApiKeyRecord | null>;
3362
+ /** List all keys, optionally filtered by tenant. */
3363
+ list(params: {
3364
+ tenantId?: string;
3365
+ limit?: number;
3366
+ offset?: number;
3367
+ }): Promise<A2AApiKeyRecord[]>;
3368
+ /** Create a new key. The store is responsible for generating the key value. */
3369
+ create(input: CreateA2AApiKeyInput): Promise<A2AApiKeyRecord>;
3370
+ /** Disable a key (soft delete — never hard-delete to preserve audit trail). */
3371
+ disable(id: string): Promise<A2AApiKeyRecord>;
3372
+ /** Enable a previously disabled key. */
3373
+ enable(id: string): Promise<A2AApiKeyRecord>;
3374
+ /** Rotate a key: generate new value, return new record. */
3375
+ rotate(id: string): Promise<A2AApiKeyRecord>;
3376
+ /** Delete a key permanently. */
3377
+ delete(id: string): Promise<void>;
3378
+ /** Bulk load all active keys into a lookup Map (used at startup). */
3379
+ loadIntoMap(): Promise<Map<string, A2AApiKeyEntry>>;
3380
+ }
3381
+
3145
3382
  /**
3146
3383
  * 通用类型定义
3147
3384
  *
@@ -3205,4 +3442,4 @@ type Timestamp = number;
3205
3442
  */
3206
3443
  type Callback<T = any, R = void> = (data: T) => R | Promise<R>;
3207
3444
 
3208
- export { type AgentClient, type AgentConfig, type AgentConfigWithTools, type AgentLatticeProtocol, type AgentMiddlewareConfig, type AgentRunConfig, AgentType, type Assistant, type AssistantMessage, type AssistantStore, type Attachment, type AvailableModule, type BaseLatticeProtocol, type BaseMessage, type Binding, type BindingRegistry, type BootstrapFilesConfig, type BrowserMiddlewareConfig, type Callback, type ChannelAdapter, type ChannelInstallation, type ChannelInstallationStore, type ChannelInstallationType, type ClawMiddlewareConfig, type CodeEvalMiddlewareConfig, type CreateAssistantRequest, type CreateBindingInput, type CreateChannelInstallationRequest, type CreateDatabaseConfigRequest, type CreateEvalCaseRequest, type CreateEvalProjectRequest, type CreateEvalRunRequest, type CreateEvalSuiteRequest, type CreateMcpServerConfigRequest, type CreateMetricsServerConfigRequest, type CreateProjectRequest, type CreateRunStepRequest, type CreateSkillRequest, type CreateTenantRequest, type CreateThreadRequest, type CreateUserRequest, type CreateUserTenantLinkRequest, type CreateWorkflowRunRequest, type CreateWorkspaceRequest, type DataSource, type DatabaseConfig, type DatabaseConfigEntry, type DatabaseConfigStore, type DatabaseType, type DeepAgentConfig, type DeveloperMessage, type DispatchResult, type EmbeddingsConfig, type EmbeddingsLatticeProtocol, type EvalCase, type EvalProject, type EvalProjectReport, type EvalRun, type EvalRunResult, type EvalStore, type EvalSuite, type ExecuteSqlQueryRequest, type ExecuteSqlQueryResponse, type FilterCondition, type GraphBuildOptions, type ID, type InboundMessage, type InterruptMessage, type LLMConfig, type LarkChannelInstallationConfig, type LatticeError, type LatticeEventBus, type LatticeMessage, type LoggerClient, type LoggerConfig, type LoggerContext, type LoggerLatticeProtocol, LoggerType, type McpClient, type McpClientOptions, type McpConnectionStatus, type McpLatticeMessage, type McpLatticeProtocol, McpMessageType, type McpServerConfig, type McpServerConfigEntry, type McpServerConfigStore, type McpStats, type McpTool, type McpToolResult, type McpTransportType, type MemoryClient, type MemoryConfig, type MemoryLatticeProtocol, MemoryType, type Message, type MessageChunk, type MessageChunkType, MessageChunkTypes, type MessageContext, type MessageMiddleware, type MetricColumn, type MetricDataPoint, type MetricMeta, type MetricQueryResult, type MetricsMiddlewareConfig, type MetricsServerConfig, type MetricsServerConfigEntry, type MetricsServerConfigStore, type MetricsServerType, type MiddlewareType, type ModelLatticeProtocol, type OutboundMessage, type PaginatedResult, type PaginationParams, type PinoFileOptions, type ProcessingAgentConfig, type Project, type ProjectStore, type QueryParams, type QueryResultFormat, type QueueClient, type QueueConfig, type QueueLatticeProtocol, type QueueResult, QueueType, type ReactAgentConfig, type ReplyTarget, type Result, type RunStep, type SandboxMiddlewareConfig, type ScheduleClient, type ScheduleConfig, type ScheduleCronOptions, ScheduleExecutionType, type ScheduleLatticeProtocol, type ScheduleOnceOptions, type ScheduleStorage, ScheduleType, type ScheduledTaskDefinition, ScheduledTaskStatus, type SchedulerMiddlewareConfig, type SemanticMetricsFilter, type SemanticMetricsQueryRequest, type SemanticMetricsQueryResponse, type SemanticMetricsServerConfig, type Skill, type SkillClient, type SkillClientType, type SkillConfig, type SkillLatticeProtocol, type SkillStore, type SkillStoreContext, type SqlMiddlewareConfig, type StepStatus, type StepType, type StorageType, type SystemMessage, type TableQueryRequest, type TableQueryResponse, type TaskHandler, type TeamAgentConfig, type TeamTeammateConfig, type Tenant, type TenantStatus, type TenantStore, type TestMcpServerToolsResponse, type Thread, type ThreadStore, type Timestamp, type ToolCall, type ToolConfig, type ToolExecutor, type ToolLatticeProtocol, type ToolMessage, type TopologyEdge, type UIComponent, UIComponentType, type UIConfig, type UILatticeProtocol, type UpdateChannelInstallationRequest, type UpdateDatabaseConfigRequest, type UpdateMcpServerConfigRequest, type UpdateMetricsServerConfigRequest, type UpdateProjectRequest, type UpdateRunStepRequest, type UpdateTenantRequest, type UpdateUserRequest, type UpdateUserTenantLinkRequest, type UpdateWorkflowRunRequest, type UpdateWorkspaceRequest, type User, type UserMessage, type UserStatus, type UserStore, type UserTenantLink, type UserTenantLinkStore, type UserTenantRole, type VectorStoreConfig, type VectorStoreLatticeProtocol, type WorkflowRun, type WorkflowRunStatus, type WorkflowTrackingStore, type Workspace, type WorkspaceStore, getSubAgentsFromConfig, getToolsFromConfig, hasTools, isDeepAgentConfig, isProcessingAgentConfig, isTeamAgentConfig };
3445
+ export { type A2AApiKeyEntry, type A2AApiKeyRecord, type A2AApiKeyStore, type A2AArtifact, type A2AAuthContext, type A2ACapabilities, type A2AConfig, type A2ADataPart, type A2AFilePart, type A2AMessage, type A2APart, type A2AProvider, type A2APushNotification, type A2ARemoteAgentConfig, type A2ASSEEvent, type A2ASkill, type A2ATask, type A2ATaskArtifactUpdatePayload, type A2ATaskSendRequest, type A2ATaskState, type A2ATaskStatus, type A2ATaskUpdatePayload, type A2ATextPart, A2A_DEFAULT_CAPABILITIES, A2A_DEFAULT_INPUT_MODES, A2A_DEFAULT_OUTPUT_MODES, type AgentCard, type AgentClient, type AgentConfig, type AgentConfigWithTools, type AgentLatticeProtocol, type AgentMiddlewareConfig, type AgentRunConfig, AgentType, type Assistant, type AssistantMessage, type AssistantStore, type Attachment, type AvailableModule, type BaseLatticeProtocol, type BaseMessage, type Binding, type BindingRegistry, type BootstrapFilesConfig, type BrowserMiddlewareConfig, type Callback, type ChannelAdapter, type ChannelInstallation, type ChannelInstallationStore, type ChannelInstallationType, type ClawMiddlewareConfig, type CodeEvalMiddlewareConfig, type CreateA2AApiKeyInput, type CreateAssistantRequest, type CreateBindingInput, type CreateChannelInstallationRequest, type CreateDatabaseConfigRequest, type CreateEvalCaseRequest, type CreateEvalProjectRequest, type CreateEvalRunRequest, type CreateEvalSuiteRequest, type CreateMcpServerConfigRequest, type CreateMetricsServerConfigRequest, type CreateProjectRequest, type CreateRunStepRequest, type CreateSkillRequest, type CreateTenantRequest, type CreateThreadRequest, type CreateUserRequest, type CreateUserTenantLinkRequest, type CreateWorkflowRunRequest, type CreateWorkspaceRequest, type DataSource, type DatabaseConfig, type DatabaseConfigEntry, type DatabaseConfigStore, type DatabaseType, type DeepAgentConfig, type DeveloperMessage, type DispatchResult, type EmbeddingsConfig, type EmbeddingsLatticeProtocol, type EvalCase, type EvalProject, type EvalProjectReport, type EvalRun, type EvalRunResult, type EvalStore, type EvalSuite, type ExecuteSqlQueryRequest, type ExecuteSqlQueryResponse, type FilterCondition, type GraphBuildOptions, type ID, type InboundMessage, type InterruptMessage, type LLMConfig, type LarkChannelInstallationConfig, type LatticeError, type LatticeEventBus, type LatticeMessage, type LoggerClient, type LoggerConfig, type LoggerContext, type LoggerLatticeProtocol, LoggerType, type McpClient, type McpClientOptions, type McpConnectionStatus, type McpLatticeMessage, type McpLatticeProtocol, McpMessageType, type McpServerConfig, type McpServerConfigEntry, type McpServerConfigStore, type McpStats, type McpTool, type McpToolResult, type McpTransportType, type MemoryClient, type MemoryConfig, type MemoryLatticeProtocol, MemoryType, type Message, type MessageChunk, type MessageChunkType, MessageChunkTypes, type MessageContext, type MessageMiddleware, type MetricColumn, type MetricDataPoint, type MetricMeta, type MetricQueryResult, type MetricsMiddlewareConfig, type MetricsServerConfig, type MetricsServerConfigEntry, type MetricsServerConfigStore, type MetricsServerType, type MiddlewareType, type ModelLatticeProtocol, type OutboundMessage, type PaginatedResult, type PaginationParams, type PinoFileOptions, type ProcessingAgentConfig, type Project, type ProjectStore, type QueryParams, type QueryResultFormat, type QueueClient, type QueueConfig, type QueueLatticeProtocol, type QueueResult, QueueType, type ReactAgentConfig, type ReplyTarget, type Result, type RunStep, type SandboxMiddlewareConfig, type ScheduleClient, type ScheduleConfig, type ScheduleCronOptions, ScheduleExecutionType, type ScheduleLatticeProtocol, type ScheduleOnceOptions, type ScheduleStorage, ScheduleType, type ScheduledTaskDefinition, ScheduledTaskStatus, type SchedulerMiddlewareConfig, type SemanticMetricsFilter, type SemanticMetricsQueryRequest, type SemanticMetricsQueryResponse, type SemanticMetricsServerConfig, type Skill, type SkillClient, type SkillClientType, type SkillConfig, type SkillLatticeProtocol, type SkillStore, type SkillStoreContext, type SqlMiddlewareConfig, type StepStatus, type StepType, type StorageType, type SystemMessage, type TableQueryRequest, type TableQueryResponse, type TaskHandler, type TeamAgentConfig, type TeamTeammateConfig, type Tenant, type TenantStatus, type TenantStore, type TestMcpServerToolsResponse, type Thread, type ThreadStore, type Timestamp, type ToolCall, type ToolConfig, type ToolExecutor, type ToolLatticeProtocol, type ToolMessage, type TopologyEdge, type UIComponent, UIComponentType, type UIConfig, type UILatticeProtocol, type UpdateChannelInstallationRequest, type UpdateDatabaseConfigRequest, type UpdateMcpServerConfigRequest, type UpdateMetricsServerConfigRequest, type UpdateProjectRequest, type UpdateRunStepRequest, type UpdateTenantRequest, type UpdateUserRequest, type UpdateUserTenantLinkRequest, type UpdateWorkflowRunRequest, type UpdateWorkspaceRequest, type User, type UserMessage, type UserStatus, type UserStore, type UserTenantLink, type UserTenantLinkStore, type UserTenantRole, type VectorStoreConfig, type VectorStoreLatticeProtocol, type WorkflowRun, type WorkflowRunStatus, type WorkflowTrackingStore, type Workspace, type WorkspaceStore, getSubAgentsFromConfig, getToolsFromConfig, hasTools, isA2ARemoteAgentConfig, isDeepAgentConfig, isProcessingAgentConfig, isTeamAgentConfig };