@rkat/mobkit-sdk 0.4.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/dist/agent-builder.d.ts +44 -0
  2. package/dist/agent-builder.d.ts.map +1 -0
  3. package/dist/agent-builder.js +111 -0
  4. package/dist/agent-builder.js.map +1 -0
  5. package/dist/builder.d.ts +74 -0
  6. package/dist/builder.d.ts.map +1 -0
  7. package/dist/builder.js +145 -0
  8. package/dist/builder.js.map +1 -0
  9. package/dist/cjs/agent-builder.cjs +114 -0
  10. package/dist/cjs/builder.cjs +182 -0
  11. package/dist/cjs/client.cjs +182 -0
  12. package/dist/cjs/config/auth.cjs +44 -0
  13. package/dist/cjs/config/index.cjs +51 -0
  14. package/dist/cjs/config/memory.cjs +28 -0
  15. package/dist/cjs/config/session-store.cjs +41 -0
  16. package/dist/cjs/errors.cjs +82 -0
  17. package/dist/cjs/events.cjs +176 -0
  18. package/dist/cjs/helpers.cjs +72 -0
  19. package/dist/cjs/index.cjs +130 -0
  20. package/dist/cjs/models.cjs +124 -0
  21. package/dist/cjs/runtime.cjs +476 -0
  22. package/dist/cjs/sse.cjs +79 -0
  23. package/dist/cjs/transport.cjs +282 -0
  24. package/dist/cjs/types.cjs +376 -0
  25. package/dist/client.d.ts +79 -0
  26. package/dist/client.d.ts.map +1 -0
  27. package/dist/client.js +178 -0
  28. package/dist/client.js.map +1 -0
  29. package/dist/config/auth.d.ts +28 -0
  30. package/dist/config/auth.d.ts.map +1 -0
  31. package/dist/config/auth.js +39 -0
  32. package/dist/config/auth.js.map +1 -0
  33. package/dist/config/index.d.ts +16 -0
  34. package/dist/config/index.d.ts.map +1 -0
  35. package/dist/config/index.js +16 -0
  36. package/dist/config/index.js.map +1 -0
  37. package/dist/config/memory.d.ts +16 -0
  38. package/dist/config/memory.d.ts.map +1 -0
  39. package/dist/config/memory.js +25 -0
  40. package/dist/config/memory.js.map +1 -0
  41. package/dist/config/session-store.d.ts +23 -0
  42. package/dist/config/session-store.d.ts.map +1 -0
  43. package/dist/config/session-store.js +36 -0
  44. package/dist/config/session-store.js.map +1 -0
  45. package/dist/errors.d.ts +48 -0
  46. package/dist/errors.d.ts.map +1 -0
  47. package/dist/errors.js +74 -0
  48. package/dist/errors.js.map +1 -0
  49. package/dist/events.d.ts +126 -0
  50. package/dist/events.d.ts.map +1 -0
  51. package/dist/events.js +164 -0
  52. package/dist/events.js.map +1 -0
  53. package/dist/helpers.d.ts +58 -0
  54. package/dist/helpers.d.ts.map +1 -0
  55. package/dist/helpers.js +62 -0
  56. package/dist/helpers.js.map +1 -0
  57. package/dist/index.cjs +2 -0
  58. package/dist/index.d.ts +48 -0
  59. package/dist/index.d.ts.map +1 -0
  60. package/dist/index.js +49 -0
  61. package/dist/index.js.map +1 -0
  62. package/dist/models.d.ts +61 -0
  63. package/dist/models.d.ts.map +1 -0
  64. package/dist/models.js +118 -0
  65. package/dist/models.js.map +1 -0
  66. package/dist/runtime.d.ts +131 -0
  67. package/dist/runtime.d.ts.map +1 -0
  68. package/dist/runtime.js +470 -0
  69. package/dist/runtime.js.map +1 -0
  70. package/dist/sse.d.ts +21 -0
  71. package/dist/sse.d.ts.map +1 -0
  72. package/dist/sse.js +76 -0
  73. package/dist/sse.js.map +1 -0
  74. package/dist/transport.d.ts +84 -0
  75. package/dist/transport.d.ts.map +1 -0
  76. package/dist/transport.js +275 -0
  77. package/dist/transport.js.map +1 -0
  78. package/dist/types.d.ts +209 -0
  79. package/dist/types.d.ts.map +1 -0
  80. package/dist/types.js +348 -0
  81. package/dist/types.js.map +1 -0
  82. package/package.json +34 -0
@@ -0,0 +1,126 @@
1
+ /**
2
+ * Typed event hierarchy for MobKit SDK streaming.
3
+ *
4
+ * Events form a discriminated union on the `type` field (snake_case to match
5
+ * the wire protocol). All other fields use idiomatic camelCase.
6
+ *
7
+ * @example
8
+ * ```ts
9
+ * for await (const event of handle.subscribeAgent("agent-1")) {
10
+ * switch (event.event.type) {
11
+ * case "text_delta":
12
+ * process.stdout.write(event.event.delta);
13
+ * break;
14
+ * case "run_completed":
15
+ * console.log(`Done: ${event.event.result}`);
16
+ * break;
17
+ * }
18
+ * }
19
+ * ```
20
+ */
21
+ import type { SseEvent } from "./sse.js";
22
+ export interface RunStartedEvent {
23
+ readonly type: "run_started";
24
+ readonly sessionId: string;
25
+ readonly prompt: string;
26
+ }
27
+ export interface RunCompletedEvent {
28
+ readonly type: "run_completed";
29
+ readonly sessionId: string;
30
+ readonly result: string;
31
+ }
32
+ export interface RunFailedEvent {
33
+ readonly type: "run_failed";
34
+ readonly sessionId: string;
35
+ readonly error: string;
36
+ }
37
+ export interface TurnStartedEvent {
38
+ readonly type: "turn_started";
39
+ readonly turnNumber: number;
40
+ }
41
+ export interface TextDeltaEvent {
42
+ readonly type: "text_delta";
43
+ readonly delta: string;
44
+ }
45
+ export interface TextCompleteEvent {
46
+ readonly type: "text_complete";
47
+ readonly content: string;
48
+ }
49
+ export interface ToolCallRequestedEvent {
50
+ readonly type: "tool_call_requested";
51
+ readonly id: string;
52
+ readonly name: string;
53
+ readonly args: unknown;
54
+ }
55
+ export interface ToolResultReceivedEvent {
56
+ readonly type: "tool_result_received";
57
+ readonly id: string;
58
+ readonly name: string;
59
+ readonly isError: boolean;
60
+ }
61
+ export interface TurnCompletedEvent {
62
+ readonly type: "turn_completed";
63
+ readonly stopReason: string;
64
+ }
65
+ export interface ToolExecutionStartedEvent {
66
+ readonly type: "tool_execution_started";
67
+ readonly id: string;
68
+ readonly name: string;
69
+ }
70
+ export interface ToolExecutionCompletedEvent {
71
+ readonly type: "tool_execution_completed";
72
+ readonly id: string;
73
+ readonly name: string;
74
+ readonly result: string;
75
+ readonly isError: boolean;
76
+ readonly durationMs: number;
77
+ }
78
+ export interface UnknownEvent {
79
+ readonly type: string;
80
+ readonly data: Record<string, unknown>;
81
+ }
82
+ export type AgentEvent = RunStartedEvent | RunCompletedEvent | RunFailedEvent | TurnStartedEvent | TextDeltaEvent | TextCompleteEvent | ToolCallRequestedEvent | ToolResultReceivedEvent | TurnCompletedEvent | ToolExecutionStartedEvent | ToolExecutionCompletedEvent | UnknownEvent;
83
+ /**
84
+ * Parse a raw event dict into a typed {@link AgentEvent}.
85
+ *
86
+ * Unknown event types are returned as {@link UnknownEvent} for
87
+ * forward-compatibility with newer server versions.
88
+ */
89
+ export declare function parseAgentEvent(raw: Record<string, unknown>): AgentEvent;
90
+ /**
91
+ * A mob-level attributed event from the runtime.
92
+ *
93
+ * Wraps an {@link AgentEvent} with the `memberId` of the agent that produced it.
94
+ */
95
+ export interface MobEventEnvelope {
96
+ readonly memberId: string;
97
+ readonly event: AgentEvent;
98
+ readonly timestampMs: number;
99
+ }
100
+ export declare function parseMobEventFromSse(sse: SseEvent): MobEventEnvelope;
101
+ /**
102
+ * A per-agent event from the runtime.
103
+ *
104
+ * The `event` field contains the typed {@link AgentEvent} subtype.
105
+ */
106
+ export interface AgentEventEnvelope {
107
+ readonly eventType: string;
108
+ readonly event: AgentEvent;
109
+ }
110
+ export declare function parseAgentEventFromSse(sse: SseEvent): AgentEventEnvelope;
111
+ export declare function isTextDelta(event: AgentEvent): event is TextDeltaEvent;
112
+ export declare function isTextComplete(event: AgentEvent): event is TextCompleteEvent;
113
+ export declare function isRunCompleted(event: AgentEvent): event is RunCompletedEvent;
114
+ export declare function isRunFailed(event: AgentEvent): event is RunFailedEvent;
115
+ export declare function isTurnCompleted(event: AgentEvent): event is TurnCompletedEvent;
116
+ export declare function isToolCallRequested(event: AgentEvent): event is ToolCallRequestedEvent;
117
+ /**
118
+ * Typed async iterator wrapping raw SSE events into domain events.
119
+ */
120
+ export declare class EventStream<T> implements AsyncIterable<T> {
121
+ private readonly _source;
122
+ private readonly _parse;
123
+ constructor(_source: AsyncIterable<SseEvent>, _parse: (sse: SseEvent) => T);
124
+ [Symbol.asyncIterator](): AsyncGenerator<T, void, undefined>;
125
+ }
126
+ //# sourceMappingURL=events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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"}
package/dist/events.js ADDED
@@ -0,0 +1,164 @@
1
+ /**
2
+ * Typed event hierarchy for MobKit SDK streaming.
3
+ *
4
+ * Events form a discriminated union on the `type` field (snake_case to match
5
+ * the wire protocol). All other fields use idiomatic camelCase.
6
+ *
7
+ * @example
8
+ * ```ts
9
+ * for await (const event of handle.subscribeAgent("agent-1")) {
10
+ * switch (event.event.type) {
11
+ * case "text_delta":
12
+ * process.stdout.write(event.event.delta);
13
+ * break;
14
+ * case "run_completed":
15
+ * console.log(`Done: ${event.event.result}`);
16
+ * break;
17
+ * }
18
+ * }
19
+ * ```
20
+ */
21
+ const EVENT_MAP = {
22
+ run_started: (raw) => ({
23
+ type: "run_started",
24
+ sessionId: String(raw.session_id ?? ""),
25
+ prompt: String(raw.prompt ?? ""),
26
+ }),
27
+ run_completed: (raw) => ({
28
+ type: "run_completed",
29
+ sessionId: String(raw.session_id ?? ""),
30
+ result: String(raw.result ?? ""),
31
+ }),
32
+ run_failed: (raw) => ({
33
+ type: "run_failed",
34
+ sessionId: String(raw.session_id ?? ""),
35
+ error: String(raw.error ?? ""),
36
+ }),
37
+ turn_started: (raw) => ({
38
+ type: "turn_started",
39
+ turnNumber: Number(raw.turn_number ?? 0),
40
+ }),
41
+ text_delta: (raw) => ({
42
+ type: "text_delta",
43
+ delta: String(raw.delta ?? ""),
44
+ }),
45
+ text_complete: (raw) => ({
46
+ type: "text_complete",
47
+ content: String(raw.content ?? ""),
48
+ }),
49
+ tool_call_requested: (raw) => ({
50
+ type: "tool_call_requested",
51
+ id: String(raw.id ?? ""),
52
+ name: String(raw.name ?? ""),
53
+ args: raw.args ?? null,
54
+ }),
55
+ tool_result_received: (raw) => ({
56
+ type: "tool_result_received",
57
+ id: String(raw.id ?? ""),
58
+ name: String(raw.name ?? ""),
59
+ isError: Boolean(raw.is_error),
60
+ }),
61
+ turn_completed: (raw) => ({
62
+ type: "turn_completed",
63
+ stopReason: String(raw.stop_reason ?? ""),
64
+ }),
65
+ tool_execution_started: (raw) => ({
66
+ type: "tool_execution_started",
67
+ id: String(raw.id ?? ""),
68
+ name: String(raw.name ?? ""),
69
+ }),
70
+ tool_execution_completed: (raw) => ({
71
+ type: "tool_execution_completed",
72
+ id: String(raw.id ?? ""),
73
+ name: String(raw.name ?? ""),
74
+ result: String(raw.result ?? ""),
75
+ isError: Boolean(raw.is_error),
76
+ durationMs: Number(raw.duration_ms ?? 0),
77
+ }),
78
+ };
79
+ /**
80
+ * Parse a raw event dict into a typed {@link AgentEvent}.
81
+ *
82
+ * Unknown event types are returned as {@link UnknownEvent} for
83
+ * forward-compatibility with newer server versions.
84
+ */
85
+ export function parseAgentEvent(raw) {
86
+ const eventType = String(raw.type ?? "");
87
+ const factory = EVENT_MAP[eventType];
88
+ if (factory) {
89
+ return factory(raw);
90
+ }
91
+ return { type: eventType, data: raw };
92
+ }
93
+ export function parseMobEventFromSse(sse) {
94
+ let raw;
95
+ try {
96
+ raw = JSON.parse(sse.data);
97
+ }
98
+ catch {
99
+ raw = {};
100
+ }
101
+ const memberId = String(raw.member_id ?? raw.source ?? "");
102
+ const payload = (typeof raw.payload === "object" && raw.payload !== null
103
+ ? raw.payload
104
+ : raw);
105
+ return {
106
+ memberId,
107
+ event: parseAgentEvent(payload),
108
+ timestampMs: Number(raw.timestamp_ms ?? 0),
109
+ };
110
+ }
111
+ export function parseAgentEventFromSse(sse) {
112
+ let raw;
113
+ try {
114
+ raw = JSON.parse(sse.data);
115
+ }
116
+ catch {
117
+ raw = {};
118
+ }
119
+ return {
120
+ eventType: sse.event,
121
+ event: parseAgentEvent(raw),
122
+ };
123
+ }
124
+ // ---------------------------------------------------------------------------
125
+ // Type guards
126
+ // ---------------------------------------------------------------------------
127
+ export function isTextDelta(event) {
128
+ return event.type === "text_delta";
129
+ }
130
+ export function isTextComplete(event) {
131
+ return event.type === "text_complete";
132
+ }
133
+ export function isRunCompleted(event) {
134
+ return event.type === "run_completed";
135
+ }
136
+ export function isRunFailed(event) {
137
+ return event.type === "run_failed";
138
+ }
139
+ export function isTurnCompleted(event) {
140
+ return event.type === "turn_completed";
141
+ }
142
+ export function isToolCallRequested(event) {
143
+ return event.type === "tool_call_requested";
144
+ }
145
+ // ---------------------------------------------------------------------------
146
+ // EventStream (typed async iterator wrapping SSE → domain events)
147
+ // ---------------------------------------------------------------------------
148
+ /**
149
+ * Typed async iterator wrapping raw SSE events into domain events.
150
+ */
151
+ export class EventStream {
152
+ _source;
153
+ _parse;
154
+ constructor(_source, _parse) {
155
+ this._source = _source;
156
+ this._parse = _parse;
157
+ }
158
+ async *[Symbol.asyncIterator]() {
159
+ for await (const sse of this._source) {
160
+ yield this._parse(sse);
161
+ }
162
+ }
163
+ }
164
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Module authoring helpers and console route builders.
3
+ *
4
+ * These are public utilities for defining MobKit modules, tools, and
5
+ * admin console routes. Matches the Python SDK's `meerkat_mobkit.helpers`.
6
+ */
7
+ export type RestartPolicy = "never" | "always" | "on_failure";
8
+ export interface ModuleSpec {
9
+ readonly id: string;
10
+ readonly command: string;
11
+ readonly args: readonly string[];
12
+ readonly restart_policy: RestartPolicy;
13
+ }
14
+ export type ModuleSpecDecorator = (spec: ModuleSpec) => ModuleSpec;
15
+ export interface ModuleToolContext {
16
+ readonly moduleId: string;
17
+ readonly requestId: string;
18
+ }
19
+ export type ModuleToolHandler<TInput = unknown, TOutput = unknown> = (input: TInput, context: ModuleToolContext) => Promise<TOutput> | TOutput;
20
+ export type ModuleToolDecorator<TInput = unknown, TOutput = unknown> = (next: ModuleToolHandler<TInput, TOutput>) => ModuleToolHandler<TInput, TOutput>;
21
+ export interface ModuleToolDefinition<TInput = unknown, TOutput = unknown> {
22
+ readonly name: string;
23
+ readonly description?: string;
24
+ readonly handler: ModuleToolHandler<TInput, TOutput>;
25
+ }
26
+ export interface ModuleDefinition {
27
+ readonly spec: ModuleSpec;
28
+ readonly description?: string;
29
+ readonly tools: readonly ModuleToolDefinition[];
30
+ }
31
+ export interface ConsoleRoutes {
32
+ readonly modules: string;
33
+ readonly experience: string;
34
+ }
35
+ export declare function defineModuleSpec(input: {
36
+ id: string;
37
+ command: string;
38
+ args?: string[];
39
+ restartPolicy?: RestartPolicy;
40
+ }): ModuleSpec;
41
+ export declare function decorateModuleSpec(spec: ModuleSpec, ...decorators: ModuleSpecDecorator[]): ModuleSpec;
42
+ export declare function decorateModuleTool<TInput = unknown, TOutput = unknown>(handler: ModuleToolHandler<TInput, TOutput>, ...decorators: ModuleToolDecorator<TInput, TOutput>[]): ModuleToolHandler<TInput, TOutput>;
43
+ export declare function defineModuleTool<TInput = unknown, TOutput = unknown>(input: {
44
+ name: string;
45
+ handler: ModuleToolHandler<TInput, TOutput>;
46
+ description?: string;
47
+ decorators?: ModuleToolDecorator<TInput, TOutput>[];
48
+ }): ModuleToolDefinition<TInput, TOutput>;
49
+ export declare function defineModule(input: {
50
+ spec: ModuleSpec;
51
+ description?: string;
52
+ tools?: ModuleToolDefinition[];
53
+ }): ModuleDefinition;
54
+ export declare function buildConsoleRoute(path: "/console/modules" | "/console/experience", authToken?: string): string;
55
+ export declare function buildConsoleModulesRoute(authToken?: string): string;
56
+ export declare function buildConsoleExperienceRoute(authToken?: string): string;
57
+ export declare function buildConsoleRoutes(authToken?: string): ConsoleRoutes;
58
+ //# sourceMappingURL=helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Module authoring helpers and console route builders.
3
+ *
4
+ * These are public utilities for defining MobKit modules, tools, and
5
+ * admin console routes. Matches the Python SDK's `meerkat_mobkit.helpers`.
6
+ */
7
+ // -- Module spec helpers --------------------------------------------------
8
+ export function defineModuleSpec(input) {
9
+ return {
10
+ id: input.id,
11
+ command: input.command,
12
+ args: input.args ?? [],
13
+ restart_policy: input.restartPolicy ?? "never",
14
+ };
15
+ }
16
+ export function decorateModuleSpec(spec, ...decorators) {
17
+ const base = { ...spec, args: [...spec.args] };
18
+ return decorators.reduce((current, decorate) => decorate(current), base);
19
+ }
20
+ // -- Module tool helpers --------------------------------------------------
21
+ export function decorateModuleTool(handler, ...decorators) {
22
+ return decorators.reduceRight((next, decorate) => decorate(next), handler);
23
+ }
24
+ export function defineModuleTool(input) {
25
+ return {
26
+ name: input.name,
27
+ description: input.description,
28
+ handler: decorateModuleTool(input.handler, ...(input.decorators ?? [])),
29
+ };
30
+ }
31
+ // -- Module definition ----------------------------------------------------
32
+ export function defineModule(input) {
33
+ return {
34
+ spec: { ...input.spec, args: [...input.spec.args] },
35
+ description: input.description,
36
+ tools: [...(input.tools ?? [])],
37
+ };
38
+ }
39
+ // -- Console route helpers ------------------------------------------------
40
+ function appendAuthToken(path, authToken) {
41
+ if (!authToken) {
42
+ return path;
43
+ }
44
+ const joiner = path.includes("?") ? "&" : "?";
45
+ return `${path}${joiner}auth_token=${encodeURIComponent(authToken)}`;
46
+ }
47
+ export function buildConsoleRoute(path, authToken) {
48
+ return appendAuthToken(path, authToken);
49
+ }
50
+ export function buildConsoleModulesRoute(authToken) {
51
+ return buildConsoleRoute("/console/modules", authToken);
52
+ }
53
+ export function buildConsoleExperienceRoute(authToken) {
54
+ return buildConsoleRoute("/console/experience", authToken);
55
+ }
56
+ export function buildConsoleRoutes(authToken) {
57
+ return {
58
+ modules: buildConsoleModulesRoute(authToken),
59
+ experience: buildConsoleExperienceRoute(authToken),
60
+ };
61
+ }
62
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA8CH,4EAA4E;AAE5E,MAAM,UAAU,gBAAgB,CAAC,KAKhC;IACC,OAAO;QACL,EAAE,EAAE,KAAK,CAAC,EAAE;QACZ,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE;QACtB,cAAc,EAAE,KAAK,CAAC,aAAa,IAAI,OAAO;KAC/C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,IAAgB,EAChB,GAAG,UAAiC;IAEpC,MAAM,IAAI,GAAe,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAC3D,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC;AAC3E,CAAC;AAED,4EAA4E;AAE5E,MAAM,UAAU,kBAAkB,CAChC,OAA2C,EAC3C,GAAG,UAAkD;IAErD,OAAO,UAAU,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;AAC7E,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAsC,KAKrE;IACC,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,OAAO,EAAE,kBAAkB,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;KACxE,CAAC;AACJ,CAAC;AAED,4EAA4E;AAE5E,MAAM,UAAU,YAAY,CAAC,KAI5B;IACC,OAAO;QACL,IAAI,EAAE,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QACnD,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,KAAK,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;KAChC,CAAC;AACJ,CAAC;AAED,4EAA4E;AAE5E,SAAS,eAAe,CAAC,IAAY,EAAE,SAAkB;IACvD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IAC9C,OAAO,GAAG,IAAI,GAAG,MAAM,cAAc,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC;AACvE,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,IAAgD,EAChD,SAAkB;IAElB,OAAO,eAAe,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,SAAkB;IACzD,OAAO,iBAAiB,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,SAAkB;IAC5D,OAAO,iBAAiB,CAAC,qBAAqB,EAAE,SAAS,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,SAAkB;IACnD,OAAO;QACL,OAAO,EAAE,wBAAwB,CAAC,SAAS,CAAC;QAC5C,UAAU,EAAE,2BAA2B,CAAC,SAAS,CAAC;KACnD,CAAC;AACJ,CAAC"}
package/dist/index.cjs ADDED
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ module.exports = require("./cjs/index.cjs");
@@ -0,0 +1,48 @@
1
+ /**
2
+ * MobKit TypeScript SDK — companion orchestration for the Meerkat runtime.
3
+ *
4
+ * @example
5
+ * ```ts
6
+ * import { MobKit } from "@rkat/mobkit-sdk";
7
+ *
8
+ * const rt = await MobKit.builder()
9
+ * .mob("config/mob.toml")
10
+ * .gateway("./target/release/phase0b_rpc_gateway")
11
+ * .build();
12
+ *
13
+ * const handle = rt.mobHandle();
14
+ * const status = await handle.status();
15
+ * console.log(status.contractVersion, status.loadedModules);
16
+ *
17
+ * for await (const event of handle.subscribeAgent("agent-1")) {
18
+ * if (event.event.type === "text_delta") {
19
+ * process.stdout.write(event.event.delta);
20
+ * }
21
+ * }
22
+ *
23
+ * await rt.shutdown();
24
+ * ```
25
+ */
26
+ export { MobKit, MobKitBuilder } from "./builder.js";
27
+ export type { MobKitBuilderConfig } from "./builder.js";
28
+ export { MobKitRuntime, MobHandle, ToolCaller, SseBridge } from "./runtime.js";
29
+ export { SessionBuildOptions } from "./models.js";
30
+ export type { DiscoverySpec, PreSpawnData, SessionQuery, ToolHandler, } from "./models.js";
31
+ export { discoverySpecToDict, preSpawnDataToDict, sessionQueryToDict, } from "./models.js";
32
+ export type { SessionAgentBuilder, ErrorCallback } from "./agent-builder.js";
33
+ export { CallbackDispatcher } from "./agent-builder.js";
34
+ export { MobKitError, TransportError, RpcError, CapabilityUnavailableError, ContractMismatchError, NotConnectedError, MobkitRpcError, } from "./errors.js";
35
+ export { MEMBER_STATE_ACTIVE, MEMBER_STATE_RETIRING, ErrorCategory, parseStatusResult, parseCapabilitiesResult, parseReconcileResult, parseSpawnResult, parseKeepAliveConfig, parseEventEnvelope, parseSubscribeResult, parseSendMessageResult, parseRoutingResolution, parseDeliveryResult, parseDeliveryHistoryResult, parseMemoryQueryResult, parseMemoryStoreInfo, parseMemoryIndexResult, parseCallToolResult, parseMemberSnapshot, parseRuntimeRouteResult, parseGatingEvaluateResult, parseGatingDecisionResult, parseGatingAuditEntry, parseGatingPendingEntry, parseRediscoverReport, parseReconcileEdgesReport, parsePersistedEvent, parseErrorEvent, eventQueryToDict, } from "./types.js";
36
+ export type { StatusResult, CapabilitiesResult, ReconcileResult, SpawnResult, SpawnMemberResult, KeepAliveConfig, EventEnvelope, SubscribeResult, SendMessageResult, RoutingResolution, DeliveryResult, DeliveryHistoryResult, MemoryQueryResult, MemoryStoreInfo, MemoryIndexResult, CallToolResult, MemberSnapshot, RuntimeRouteResult, GatingEvaluateResult, GatingDecisionResult, GatingAuditEntry, GatingPendingEntry, RediscoverReport, ReconcileEdgesReport, UnifiedAgentEvent, UnifiedModuleEvent, UnifiedEvent, PersistedEvent, EventQuery, ErrorEvent, ErrorCategoryValue, } from "./types.js";
37
+ export { parseAgentEvent, parseMobEventFromSse, parseAgentEventFromSse, isTextDelta, isTextComplete, isRunCompleted, isRunFailed, isTurnCompleted, isToolCallRequested, EventStream, } from "./events.js";
38
+ export type { AgentEvent, RunStartedEvent, RunCompletedEvent, RunFailedEvent, TurnStartedEvent, TextDeltaEvent, TextCompleteEvent, ToolCallRequestedEvent, ToolResultReceivedEvent, TurnCompletedEvent, ToolExecutionStartedEvent, ToolExecutionCompletedEvent, UnknownEvent, MobEventEnvelope, AgentEventEnvelope, } from "./events.js";
39
+ export { auth, memory, sessionStore } from "./config/index.js";
40
+ export { defineModuleSpec, decorateModuleSpec, decorateModuleTool, defineModuleTool, defineModule, buildConsoleRoute, buildConsoleModulesRoute, buildConsoleExperienceRoute, buildConsoleRoutes, } from "./helpers.js";
41
+ export type { RestartPolicy, ModuleSpec, ModuleSpecDecorator, ModuleToolContext, ModuleToolHandler, ModuleToolDecorator, ModuleToolDefinition, ModuleDefinition, ConsoleRoutes, } from "./helpers.js";
42
+ export { PersistentTransport, buildJsonRpcRequest, createGatewaySyncTransport, createGatewayAsyncTransport, createJsonRpcHttpTransport, } from "./transport.js";
43
+ export type { JsonRpcRequest, JsonRpcResponse, JsonRpcSuccess, JsonRpcErrorResponse, JsonRpcErrorBody, JsonRpcTransport, JsonRpcSyncTransport, CallbackHandler, FetchLike, FetchLikeResponse, } from "./transport.js";
44
+ export { parseSseStream, encodeSseEvent } from "./sse.js";
45
+ export type { SseEvent } from "./sse.js";
46
+ export { MobkitTypedClient, MobkitAsyncClient, } from "./client.js";
47
+ export type { MobkitStatusResult, MobkitCapabilitiesResult, MobkitReconcileResult, MobkitSpawnMemberResult, MobkitSubscribeScope, MobkitSubscribeParams, MobkitSubscribeKeepAlive, MobkitEventEnvelope, MobkitSubscribeResult, } from "./client.js";
48
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js ADDED
@@ -0,0 +1,49 @@
1
+ /**
2
+ * MobKit TypeScript SDK — companion orchestration for the Meerkat runtime.
3
+ *
4
+ * @example
5
+ * ```ts
6
+ * import { MobKit } from "@rkat/mobkit-sdk";
7
+ *
8
+ * const rt = await MobKit.builder()
9
+ * .mob("config/mob.toml")
10
+ * .gateway("./target/release/phase0b_rpc_gateway")
11
+ * .build();
12
+ *
13
+ * const handle = rt.mobHandle();
14
+ * const status = await handle.status();
15
+ * console.log(status.contractVersion, status.loadedModules);
16
+ *
17
+ * for await (const event of handle.subscribeAgent("agent-1")) {
18
+ * if (event.event.type === "text_delta") {
19
+ * process.stdout.write(event.event.delta);
20
+ * }
21
+ * }
22
+ *
23
+ * await rt.shutdown();
24
+ * ```
25
+ */
26
+ // -- Builder + Runtime ----------------------------------------------------
27
+ export { MobKit, MobKitBuilder } from "./builder.js";
28
+ export { MobKitRuntime, MobHandle, ToolCaller, SseBridge } from "./runtime.js";
29
+ // -- Data models ----------------------------------------------------------
30
+ export { SessionBuildOptions } from "./models.js";
31
+ export { discoverySpecToDict, preSpawnDataToDict, sessionQueryToDict, } from "./models.js";
32
+ export { CallbackDispatcher } from "./agent-builder.js";
33
+ // -- Errors ---------------------------------------------------------------
34
+ export { MobKitError, TransportError, RpcError, CapabilityUnavailableError, ContractMismatchError, NotConnectedError, MobkitRpcError, } from "./errors.js";
35
+ // -- Typed return models --------------------------------------------------
36
+ export { MEMBER_STATE_ACTIVE, MEMBER_STATE_RETIRING, ErrorCategory, parseStatusResult, parseCapabilitiesResult, parseReconcileResult, parseSpawnResult, parseKeepAliveConfig, parseEventEnvelope, parseSubscribeResult, parseSendMessageResult, parseRoutingResolution, parseDeliveryResult, parseDeliveryHistoryResult, parseMemoryQueryResult, parseMemoryStoreInfo, parseMemoryIndexResult, parseCallToolResult, parseMemberSnapshot, parseRuntimeRouteResult, parseGatingEvaluateResult, parseGatingDecisionResult, parseGatingAuditEntry, parseGatingPendingEntry, parseRediscoverReport, parseReconcileEdgesReport, parsePersistedEvent, parseErrorEvent, eventQueryToDict, } from "./types.js";
37
+ // -- Typed events ---------------------------------------------------------
38
+ export { parseAgentEvent, parseMobEventFromSse, parseAgentEventFromSse, isTextDelta, isTextComplete, isRunCompleted, isRunFailed, isTurnCompleted, isToolCallRequested, EventStream, } from "./events.js";
39
+ // -- Config modules -------------------------------------------------------
40
+ export { auth, memory, sessionStore } from "./config/index.js";
41
+ // -- Module authoring helpers ---------------------------------------------
42
+ export { defineModuleSpec, decorateModuleSpec, decorateModuleTool, defineModuleTool, defineModule, buildConsoleRoute, buildConsoleModulesRoute, buildConsoleExperienceRoute, buildConsoleRoutes, } from "./helpers.js";
43
+ // -- Transport (advanced usage) -------------------------------------------
44
+ export { PersistentTransport, buildJsonRpcRequest, createGatewaySyncTransport, createGatewayAsyncTransport, createJsonRpcHttpTransport, } from "./transport.js";
45
+ // -- SSE (advanced usage) -------------------------------------------------
46
+ export { parseSseStream, encodeSseEvent } from "./sse.js";
47
+ // -- Low-level clients (backward compat) ----------------------------------
48
+ export { MobkitTypedClient, MobkitAsyncClient, } from "./client.js";
49
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,4EAA4E;AAE5E,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAErD,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE/E,4EAA4E;AAE5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAOlD,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AAKrB,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAExD,4EAA4E;AAE5E,OAAO,EACL,WAAW,EACX,cAAc,EACd,QAAQ,EACR,0BAA0B,EAC1B,qBAAqB,EACrB,iBAAiB,EACjB,cAAc,GACf,MAAM,aAAa,CAAC;AAErB,4EAA4E;AAE5E,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,aAAa,EACb,iBAAiB,EACjB,uBAAuB,EACvB,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,EACnB,0BAA0B,EAC1B,sBAAsB,EACtB,oBAAoB,EACpB,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,EACnB,uBAAuB,EACvB,yBAAyB,EACzB,yBAAyB,EACzB,qBAAqB,EACrB,uBAAuB,EACvB,qBAAqB,EACrB,yBAAyB,EACzB,mBAAmB,EACnB,eAAe,EACf,gBAAgB,GACjB,MAAM,YAAY,CAAC;AAoCpB,4EAA4E;AAE5E,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,sBAAsB,EACtB,WAAW,EACX,cAAc,EACd,cAAc,EACd,WAAW,EACX,eAAe,EACf,mBAAmB,EACnB,WAAW,GACZ,MAAM,aAAa,CAAC;AAoBrB,4EAA4E;AAE5E,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAE/D,4EAA4E;AAE5E,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EACjB,wBAAwB,EACxB,2BAA2B,EAC3B,kBAAkB,GACnB,MAAM,cAAc,CAAC;AActB,4EAA4E;AAE5E,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,0BAA0B,EAC1B,2BAA2B,EAC3B,0BAA0B,GAC3B,MAAM,gBAAgB,CAAC;AAexB,4EAA4E;AAE5E,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAG1D,4EAA4E;AAE5E,OAAO,EACL,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,aAAa,CAAC"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Typed data models for MobKit SDK — input/config objects sent to the runtime.
3
+ */
4
+ export interface DiscoverySpec {
5
+ readonly profile: string;
6
+ readonly meerkatId: string;
7
+ readonly labels?: Readonly<Record<string, string>>;
8
+ readonly appContext?: unknown;
9
+ readonly additionalInstructions?: readonly string[];
10
+ readonly resumeSessionId?: string;
11
+ }
12
+ export declare function discoverySpecToDict(spec: DiscoverySpec): Record<string, unknown>;
13
+ export interface PreSpawnData {
14
+ readonly resumeMap?: Readonly<Record<string, string>>;
15
+ readonly moduleId?: string;
16
+ readonly env?: Readonly<Record<string, string>>;
17
+ }
18
+ export declare function preSpawnDataToDict(data: PreSpawnData): Record<string, unknown>;
19
+ export interface SessionQuery {
20
+ readonly agentType?: string;
21
+ readonly ownerId?: string;
22
+ readonly labels?: Readonly<Record<string, string>>;
23
+ readonly includeDeleted?: boolean;
24
+ readonly limit?: number;
25
+ }
26
+ export declare function sessionQueryToDict(query: SessionQuery): Record<string, unknown>;
27
+ /** Callback tool handler: receives arguments dict, returns JSON-serializable result. */
28
+ export type ToolHandler = (args: Record<string, unknown>) => unknown | Promise<unknown>;
29
+ /**
30
+ * Mutable options passed to {@link SessionAgentBuilder.buildAgent}.
31
+ *
32
+ * The builder mutates fields during agent construction — sets profileName,
33
+ * calls {@link addTools} or {@link registerTool}.
34
+ *
35
+ * @example
36
+ * ```ts
37
+ * const builder: SessionAgentBuilder = {
38
+ * async buildAgent(opts) {
39
+ * opts.profileName = "assistant";
40
+ * opts.registerTool("search", searchHandler);
41
+ * },
42
+ * };
43
+ * ```
44
+ */
45
+ export declare class SessionBuildOptions {
46
+ appContext: unknown;
47
+ additionalInstructions: string[];
48
+ sessionId: string | null;
49
+ labels: Record<string, string>;
50
+ profileName: string | null;
51
+ private _tools;
52
+ private _toolHandlers;
53
+ /** Declare tool names the agent can use. */
54
+ addTools(tools: string[]): void;
55
+ /** Register a callable tool with the agent. */
56
+ registerTool(name: string, handler: ToolHandler): void;
57
+ get tools(): string[];
58
+ get toolHandlers(): ReadonlyMap<string, ToolHandler>;
59
+ toDict(): Record<string, unknown>;
60
+ }
61
+ //# sourceMappingURL=models.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACnD,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,sBAAsB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACpD,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;CACnC;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,aAAa,GAClB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAkBzB;AAID,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACtD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACjD;AAED,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,YAAY,GACjB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAYzB;AAID,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACnD,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,YAAY,GAClB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAUzB;AAID,wFAAwF;AACxF,MAAM,MAAM,WAAW,GAAG,CACxB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC1B,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAEhC;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,mBAAmB;IAC9B,UAAU,EAAE,OAAO,CAAa;IAChC,sBAAsB,EAAE,MAAM,EAAE,CAAM;IACtC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;IAChC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM;IACpC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAQ;IAElC,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,aAAa,CAAuC;IAE5D,4CAA4C;IAC5C,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI;IAW/B,+CAA+C;IAC/C,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,IAAI;IAetD,IAAI,KAAK,IAAI,MAAM,EAAE,CAEpB;IAED,IAAI,YAAY,IAAI,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,CAEnD;IAED,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAclC"}