@agent-native/agentkit 0.1.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.
Files changed (88) hide show
  1. package/ARCHITECTURE.md +290 -0
  2. package/README.md +822 -0
  3. package/dist/adapters/http.d.ts +56 -0
  4. package/dist/adapters/http.d.ts.map +1 -0
  5. package/dist/adapters/http.js +950 -0
  6. package/dist/adapters/http.js.map +1 -0
  7. package/dist/adapters/index.d.ts +2 -0
  8. package/dist/adapters/index.d.ts.map +1 -0
  9. package/dist/adapters/index.js +2 -0
  10. package/dist/adapters/index.js.map +1 -0
  11. package/dist/client/client.d.ts +240 -0
  12. package/dist/client/client.d.ts.map +1 -0
  13. package/dist/client/client.js +1605 -0
  14. package/dist/client/client.js.map +1 -0
  15. package/dist/client/index.d.ts +3 -0
  16. package/dist/client/index.d.ts.map +1 -0
  17. package/dist/client/index.js +3 -0
  18. package/dist/client/index.js.map +1 -0
  19. package/dist/client/state.d.ts +72 -0
  20. package/dist/client/state.d.ts.map +1 -0
  21. package/dist/client/state.js +385 -0
  22. package/dist/client/state.js.map +1 -0
  23. package/dist/conformance/index.d.ts +41 -0
  24. package/dist/conformance/index.d.ts.map +1 -0
  25. package/dist/conformance/index.js +924 -0
  26. package/dist/conformance/index.js.map +1 -0
  27. package/dist/index.d.ts +3 -0
  28. package/dist/index.d.ts.map +1 -0
  29. package/dist/index.js +3 -0
  30. package/dist/index.js.map +1 -0
  31. package/dist/protocol/agui-codec.d.ts +28 -0
  32. package/dist/protocol/agui-codec.d.ts.map +1 -0
  33. package/dist/protocol/agui-codec.js +250 -0
  34. package/dist/protocol/agui-codec.js.map +1 -0
  35. package/dist/protocol/agui.d.ts +144 -0
  36. package/dist/protocol/agui.d.ts.map +1 -0
  37. package/dist/protocol/agui.js +253 -0
  38. package/dist/protocol/agui.js.map +1 -0
  39. package/dist/protocol/compatibility.d.ts +35 -0
  40. package/dist/protocol/compatibility.d.ts.map +1 -0
  41. package/dist/protocol/compatibility.js +160 -0
  42. package/dist/protocol/compatibility.js.map +1 -0
  43. package/dist/protocol/errors.d.ts +24 -0
  44. package/dist/protocol/errors.d.ts.map +1 -0
  45. package/dist/protocol/errors.js +77 -0
  46. package/dist/protocol/errors.js.map +1 -0
  47. package/dist/protocol/index.d.ts +982 -0
  48. package/dist/protocol/index.d.ts.map +1 -0
  49. package/dist/protocol/index.js +56 -0
  50. package/dist/protocol/index.js.map +1 -0
  51. package/dist/protocol/validation.d.ts +94 -0
  52. package/dist/protocol/validation.d.ts.map +1 -0
  53. package/dist/protocol/validation.js +1871 -0
  54. package/dist/protocol/validation.js.map +1 -0
  55. package/dist/protocol/version.d.ts +7 -0
  56. package/dist/protocol/version.d.ts.map +1 -0
  57. package/dist/protocol/version.js +9 -0
  58. package/dist/protocol/version.js.map +1 -0
  59. package/dist/react/chat.d.ts +34 -0
  60. package/dist/react/chat.d.ts.map +1 -0
  61. package/dist/react/chat.js +23 -0
  62. package/dist/react/chat.js.map +1 -0
  63. package/dist/react/components.d.ts +96 -0
  64. package/dist/react/components.d.ts.map +1 -0
  65. package/dist/react/components.js +1300 -0
  66. package/dist/react/components.js.map +1 -0
  67. package/dist/react/context.d.ts +259 -0
  68. package/dist/react/context.d.ts.map +1 -0
  69. package/dist/react/context.js +359 -0
  70. package/dist/react/context.js.map +1 -0
  71. package/dist/react/headless.d.ts +3 -0
  72. package/dist/react/headless.d.ts.map +1 -0
  73. package/dist/react/headless.js +3 -0
  74. package/dist/react/headless.js.map +1 -0
  75. package/dist/react/index.d.ts +6 -0
  76. package/dist/react/index.d.ts.map +1 -0
  77. package/dist/react/index.js +6 -0
  78. package/dist/react/index.js.map +1 -0
  79. package/dist/react/root.d.ts +58 -0
  80. package/dist/react/root.d.ts.map +1 -0
  81. package/dist/react/root.js +151 -0
  82. package/dist/react/root.js.map +1 -0
  83. package/dist/react/streaming-text.d.ts +19 -0
  84. package/dist/react/streaming-text.d.ts.map +1 -0
  85. package/dist/react/streaming-text.js +259 -0
  86. package/dist/react/streaming-text.js.map +1 -0
  87. package/dist/react/styles.css +1477 -0
  88. package/package.json +112 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export * from "./client.js";
2
+ export * from "./state.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from "./client.js";
2
+ export * from "./state.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,72 @@
1
+ import type { AgentActivity, AgentActionInvocation, AgentActionResult, AgentAnnotation, AgentApprovalRequest, AgentConnectionRequest, AgentArtifactReference, AgentCapabilities, AgentCapabilitiesDiscovery, AgentError, AgentEvent, AgentInteraction, AgentMessage, AgentParticipant, AgentQueuedMessage, AgentRunStatus, AgentSuggestion, AgentTask, AgentTaskGroup, AgentThread, AgentToolCall, AgentUsage, AgentUploadProgress, AgentWidget, RunId, ThreadId } from "../protocol/index.js";
2
+ export type AgentConnectionStatus = "idle" | "connecting" | "connected" | "reconnecting" | "offline" | "error";
3
+ export interface AgentRunState {
4
+ id: RunId;
5
+ status: AgentRunStatus;
6
+ lastSequence: number;
7
+ startedAt?: string;
8
+ completedAt?: string;
9
+ usage?: AgentUsage;
10
+ error?: AgentError;
11
+ }
12
+ export interface AgentThreadState {
13
+ id: ThreadId;
14
+ thread?: AgentThread;
15
+ messages: AgentMessage[];
16
+ queuedMessages: AgentQueuedMessage[];
17
+ runs: Record<RunId, AgentRunState>;
18
+ activeRunIds: RunId[];
19
+ events: AgentEvent[];
20
+ agents: Record<string, AgentParticipant>;
21
+ agentInteractions: AgentInteraction[];
22
+ activities: Record<string, AgentActivity>;
23
+ tasks: Record<string, AgentTask>;
24
+ taskGroups: Record<string, AgentTaskGroup>;
25
+ tools: Record<string, AgentToolCall>;
26
+ approvals: Record<string, AgentApprovalRequest>;
27
+ approvalRunIds: Record<string, RunId>;
28
+ connectionRequests: Record<string, AgentConnectionRequest>;
29
+ connectionRequestRunIds: Record<string, RunId>;
30
+ artifacts: AgentArtifactReference[];
31
+ widgets: Record<string, AgentWidget>;
32
+ widgetMessageIds: Record<string, string>;
33
+ annotations: Record<string, AgentAnnotation>;
34
+ annotationMessageIds: Record<string, string>;
35
+ suggestions: AgentSuggestion[];
36
+ actions: Record<string, {
37
+ invocation?: AgentActionInvocation;
38
+ result?: AgentActionResult;
39
+ }>;
40
+ uploads: Record<string, AgentUploadProgress>;
41
+ }
42
+ export interface AgentKitSnapshot {
43
+ connection: AgentConnectionStatus;
44
+ capabilities: AgentCapabilities;
45
+ capabilityDiscovery?: AgentCapabilitiesDiscovery;
46
+ capabilitiesStatus: "unknown" | "loading" | "ready" | "error";
47
+ threads: Record<ThreadId, AgentThreadState>;
48
+ error?: AgentError;
49
+ revision: number;
50
+ }
51
+ export declare function createAgentThreadState(threadId: ThreadId): AgentThreadState;
52
+ export declare function selectActiveAgentRoster(agents: AgentThreadState["agents"]): AgentParticipant[];
53
+ export type AgentEventAdmission = {
54
+ status: "foreign";
55
+ } | {
56
+ status: "accepted";
57
+ sequence: number;
58
+ } | {
59
+ status: "duplicate";
60
+ lastSequence: number;
61
+ } | {
62
+ status: "gap";
63
+ expectedSequence: number;
64
+ receivedSequence: number;
65
+ };
66
+ /**
67
+ * The one place the ordering rule lives, so a caller that needs to count a
68
+ * rejection cannot drift from the reducer that performs it.
69
+ */
70
+ export declare function classifyAgentEvent(thread: AgentThreadState, event: AgentEvent): AgentEventAdmission;
71
+ export declare function reduceAgentEvent(thread: AgentThreadState, event: AgentEvent): AgentThreadState;
72
+ //# sourceMappingURL=state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/client/state.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,385 @@
1
+ import { AgentProtocolValidationError } from "../protocol/index.js";
2
+ export function createAgentThreadState(threadId) {
3
+ return {
4
+ id: threadId,
5
+ messages: [],
6
+ queuedMessages: [],
7
+ runs: {},
8
+ activeRunIds: [],
9
+ events: [],
10
+ agents: {},
11
+ agentInteractions: [],
12
+ activities: {},
13
+ tasks: {},
14
+ taskGroups: {},
15
+ tools: {},
16
+ approvals: {},
17
+ approvalRunIds: {},
18
+ connectionRequests: {},
19
+ connectionRequestRunIds: {},
20
+ artifacts: [],
21
+ widgets: {},
22
+ widgetMessageIds: {},
23
+ annotations: {},
24
+ annotationMessageIds: {},
25
+ suggestions: [],
26
+ actions: {},
27
+ uploads: {},
28
+ };
29
+ }
30
+ export function selectActiveAgentRoster(agents) {
31
+ return Object.values(agents).filter((participant) => participant.status !== "closed");
32
+ }
33
+ function upsertMessage(messages, message) {
34
+ const index = messages.findIndex((candidate) => candidate.id === message.id);
35
+ if (index < 0)
36
+ return [...messages, message];
37
+ const next = [...messages];
38
+ next[index] = message;
39
+ return next;
40
+ }
41
+ function appendMessageText(messages, messageId, text, type, format) {
42
+ const index = messages.findIndex((message) => message.id === messageId);
43
+ const existing = index < 0 ? undefined : messages[index];
44
+ const message = existing ?? {
45
+ id: messageId,
46
+ role: "assistant",
47
+ parts: [],
48
+ status: "streaming",
49
+ };
50
+ const parts = [...message.parts];
51
+ const last = parts.at(-1);
52
+ if (last?.type === type) {
53
+ parts[parts.length - 1] = {
54
+ ...last,
55
+ text: last.text + text,
56
+ ...(type === "text" && format && last.type === "text" && !last.format
57
+ ? { format }
58
+ : {}),
59
+ };
60
+ }
61
+ else {
62
+ parts.push(type === "text"
63
+ ? { type: "text", text, ...(format ? { format } : {}) }
64
+ : { type: "reasoning", text, visibility: "summary" });
65
+ }
66
+ return upsertMessage(messages, { ...message, parts, status: "streaming" });
67
+ }
68
+ function updateRun(thread, runId, patch) {
69
+ const current = thread.runs[runId] ?? {
70
+ id: runId,
71
+ status: "queued",
72
+ lastSequence: 0,
73
+ };
74
+ return {
75
+ ...thread,
76
+ runs: { ...thread.runs, [runId]: { ...current, ...patch } },
77
+ };
78
+ }
79
+ function updateActiveRuns(thread, runId, active) {
80
+ return {
81
+ activeRunIds: active
82
+ ? Array.from(new Set([...thread.activeRunIds, runId]))
83
+ : thread.activeRunIds.filter((id) => id !== runId),
84
+ };
85
+ }
86
+ /**
87
+ * The one place the ordering rule lives, so a caller that needs to count a
88
+ * rejection cannot drift from the reducer that performs it.
89
+ */
90
+ export function classifyAgentEvent(thread, event) {
91
+ if (event.threadId !== thread.id)
92
+ return { status: "foreign" };
93
+ const lastSequence = thread.runs[event.runId]?.lastSequence ?? 0;
94
+ if (lastSequence >= event.sequence) {
95
+ return { status: "duplicate", lastSequence };
96
+ }
97
+ const expectedSequence = lastSequence + 1;
98
+ if (event.sequence !== expectedSequence) {
99
+ return {
100
+ status: "gap",
101
+ expectedSequence,
102
+ receivedSequence: event.sequence,
103
+ };
104
+ }
105
+ return { status: "accepted", sequence: event.sequence };
106
+ }
107
+ export function reduceAgentEvent(thread, event) {
108
+ const admission = classifyAgentEvent(thread, event);
109
+ if (admission.status === "foreign" || admission.status === "duplicate") {
110
+ return thread;
111
+ }
112
+ if (admission.status === "gap") {
113
+ throw new AgentProtocolValidationError("event.sequence", `must be contiguous; expected ${admission.expectedSequence} after ${admission.expectedSequence - 1}, received ${admission.receivedSequence}`);
114
+ }
115
+ let next = updateRun(thread, event.runId, {
116
+ lastSequence: event.sequence,
117
+ });
118
+ next = { ...next, events: [...next.events, event] };
119
+ switch (event.type) {
120
+ case "run.started":
121
+ return {
122
+ ...updateRun(next, event.runId, {
123
+ status: "running",
124
+ startedAt: event.occurredAt,
125
+ }),
126
+ ...updateActiveRuns(next, event.runId, true),
127
+ };
128
+ case "run.status": {
129
+ const active = !["completed", "failed", "cancelled"].includes(event.status);
130
+ return {
131
+ ...updateRun(next, event.runId, { status: event.status }),
132
+ ...updateActiveRuns(next, event.runId, active),
133
+ };
134
+ }
135
+ case "agent.registered":
136
+ case "agent.updated":
137
+ return {
138
+ ...next,
139
+ agents: { ...next.agents, [event.agent.id]: event.agent },
140
+ };
141
+ case "agent.unregistered":
142
+ return {
143
+ ...next,
144
+ // Keep the participant projection for durable attribution while
145
+ // making its live-roster state unambiguous for every consumer.
146
+ agents: {
147
+ ...next.agents,
148
+ [event.agent.id]: {
149
+ ...event.agent,
150
+ status: "closed",
151
+ completedAt: event.agent.completedAt ?? event.occurredAt,
152
+ },
153
+ },
154
+ };
155
+ case "agent.interaction":
156
+ if (next.agentInteractions.some((interaction) => interaction.id === event.interaction.id)) {
157
+ return next;
158
+ }
159
+ return {
160
+ ...next,
161
+ agentInteractions: [...next.agentInteractions, event.interaction],
162
+ };
163
+ case "run.completed":
164
+ return {
165
+ ...updateRun(next, event.runId, {
166
+ status: "completed",
167
+ completedAt: event.occurredAt,
168
+ usage: event.usage,
169
+ }),
170
+ ...updateActiveRuns(next, event.runId, false),
171
+ };
172
+ case "run.failed":
173
+ return {
174
+ ...updateRun(next, event.runId, {
175
+ status: "failed",
176
+ completedAt: event.occurredAt,
177
+ error: event.error,
178
+ }),
179
+ ...updateActiveRuns(next, event.runId, false),
180
+ };
181
+ case "run.cancelled":
182
+ return {
183
+ ...updateRun(next, event.runId, {
184
+ status: "cancelled",
185
+ completedAt: event.occurredAt,
186
+ }),
187
+ ...updateActiveRuns(next, event.runId, false),
188
+ };
189
+ case "message.created":
190
+ return {
191
+ ...next,
192
+ messages: upsertMessage(next.messages, event.message),
193
+ };
194
+ case "message.completed":
195
+ return {
196
+ ...next,
197
+ messages: upsertMessage(next.messages, {
198
+ ...event.message,
199
+ status: event.message.status ?? "complete",
200
+ }),
201
+ };
202
+ case "message.delta":
203
+ return {
204
+ ...next,
205
+ messages: appendMessageText(next.messages, event.messageId, event.text, "text", event.format),
206
+ };
207
+ case "reasoning.delta":
208
+ return {
209
+ ...next,
210
+ messages: appendMessageText(next.messages, event.messageId, event.text, "reasoning"),
211
+ };
212
+ case "tool.started":
213
+ case "tool.updated":
214
+ return {
215
+ ...next,
216
+ tools: { ...next.tools, [event.toolCall.id]: event.toolCall },
217
+ };
218
+ case "tool.delta": {
219
+ const current = next.tools[event.toolCallId];
220
+ if (!current)
221
+ return next;
222
+ const input = event.inputTextDelta === undefined
223
+ ? current.input
224
+ : `${typeof current.input === "string" ? current.input : ""}${event.inputTextDelta}`;
225
+ const output = event.outputTextDelta === undefined
226
+ ? current.output
227
+ : `${typeof current.output === "string" ? current.output : ""}${event.outputTextDelta}`;
228
+ return {
229
+ ...next,
230
+ tools: {
231
+ ...next.tools,
232
+ [event.toolCallId]: { ...current, input, output },
233
+ },
234
+ };
235
+ }
236
+ case "activity.started":
237
+ case "activity.updated":
238
+ case "activity.completed":
239
+ return {
240
+ ...next,
241
+ activities: {
242
+ ...next.activities,
243
+ [event.activity.id]: event.activity,
244
+ },
245
+ };
246
+ case "task.created":
247
+ case "task.updated":
248
+ case "task.completed":
249
+ return {
250
+ ...next,
251
+ tasks: {
252
+ ...next.tasks,
253
+ [event.task.id]: event.task,
254
+ },
255
+ };
256
+ case "task-group.created":
257
+ case "task-group.updated":
258
+ case "task-group.completed":
259
+ return {
260
+ ...next,
261
+ taskGroups: {
262
+ ...next.taskGroups,
263
+ [event.taskGroup.id]: event.taskGroup,
264
+ },
265
+ };
266
+ case "task-group.removed": {
267
+ const taskGroups = { ...next.taskGroups };
268
+ delete taskGroups[event.taskGroupId];
269
+ return { ...next, taskGroups };
270
+ }
271
+ case "approval.requested":
272
+ return {
273
+ ...updateRun(next, event.runId, { status: "awaiting_approval" }),
274
+ approvals: { ...next.approvals, [event.request.id]: event.request },
275
+ approvalRunIds: {
276
+ ...next.approvalRunIds,
277
+ [event.request.id]: event.runId,
278
+ },
279
+ };
280
+ case "approval.resolved": {
281
+ const approvals = { ...next.approvals };
282
+ const approvalRunIds = { ...next.approvalRunIds };
283
+ delete approvals[event.approvalId];
284
+ delete approvalRunIds[event.approvalId];
285
+ return { ...next, approvals, approvalRunIds };
286
+ }
287
+ case "connection.requested":
288
+ case "connection.updated":
289
+ return {
290
+ ...next,
291
+ connectionRequests: {
292
+ ...next.connectionRequests,
293
+ [event.request.id]: event.request,
294
+ },
295
+ connectionRequestRunIds: {
296
+ ...next.connectionRequestRunIds,
297
+ [event.request.id]: event.runId,
298
+ },
299
+ };
300
+ case "artifact.created":
301
+ return {
302
+ ...next,
303
+ artifacts: [
304
+ ...next.artifacts.filter((item) => item.id !== event.artifact.id),
305
+ event.artifact,
306
+ ],
307
+ };
308
+ case "widget.created":
309
+ case "widget.updated":
310
+ return {
311
+ ...next,
312
+ widgets: { ...next.widgets, [event.widget.id]: event.widget },
313
+ widgetMessageIds: {
314
+ ...next.widgetMessageIds,
315
+ ...(event.messageId ? { [event.widget.id]: event.messageId } : {}),
316
+ },
317
+ };
318
+ case "widget.removed": {
319
+ const widgets = { ...next.widgets };
320
+ const widgetMessageIds = { ...next.widgetMessageIds };
321
+ delete widgets[event.widgetId];
322
+ delete widgetMessageIds[event.widgetId];
323
+ return { ...next, widgets, widgetMessageIds };
324
+ }
325
+ case "annotation.created":
326
+ case "annotation.updated":
327
+ return {
328
+ ...next,
329
+ annotations: {
330
+ ...next.annotations,
331
+ [event.annotation.id]: event.annotation,
332
+ },
333
+ annotationMessageIds: {
334
+ ...next.annotationMessageIds,
335
+ ...(event.messageId
336
+ ? { [event.annotation.id]: event.messageId }
337
+ : {}),
338
+ },
339
+ };
340
+ case "annotation.removed": {
341
+ const annotations = { ...next.annotations };
342
+ const annotationMessageIds = { ...next.annotationMessageIds };
343
+ delete annotations[event.annotationId];
344
+ delete annotationMessageIds[event.annotationId];
345
+ return { ...next, annotations, annotationMessageIds };
346
+ }
347
+ case "suggestions.updated":
348
+ return { ...next, suggestions: event.suggestions };
349
+ case "action.started":
350
+ return {
351
+ ...next,
352
+ actions: {
353
+ ...next.actions,
354
+ [event.invocation.id]: { invocation: event.invocation },
355
+ },
356
+ };
357
+ case "action.completed":
358
+ case "action.failed":
359
+ return {
360
+ ...next,
361
+ actions: {
362
+ ...next.actions,
363
+ [event.result.invocationId]: {
364
+ ...next.actions[event.result.invocationId],
365
+ result: event.result,
366
+ },
367
+ },
368
+ };
369
+ case "upload.progress":
370
+ return {
371
+ ...next,
372
+ uploads: {
373
+ ...next.uploads,
374
+ [event.progress.uploadId]: event.progress,
375
+ },
376
+ };
377
+ case "thread.updated":
378
+ return { ...next, thread: event.thread };
379
+ case "queue.updated":
380
+ return { ...next, queuedMessages: event.messages };
381
+ default:
382
+ return next;
383
+ }
384
+ }
385
+ //# sourceMappingURL=state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/client/state.ts"],"names":[],"mappings":"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"}