@rkat/web 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/events.d.ts +20 -0
- package/dist/events.d.ts.map +1 -0
- package/dist/events.js +33 -0
- package/dist/events.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/dist/mob.d.ts +67 -0
- package/dist/mob.d.ts.map +1 -0
- package/dist/mob.js +89 -0
- package/dist/mob.js.map +1 -0
- package/dist/runtime.d.ts +107 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +171 -0
- package/dist/runtime.js.map +1 -0
- package/dist/session.d.ts +29 -0
- package/dist/session.d.ts.map +1 -0
- package/dist/session.js +56 -0
- package/dist/session.js.map +1 -0
- package/dist/types.d.ts +278 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +11 -0
- package/dist/types.js.map +1 -0
- package/package.json +36 -0
- package/proxy/cli.mjs +52 -0
- package/proxy/index.mjs +253 -0
package/dist/events.d.ts
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { EventEnvelope } from './types.js';
|
|
2
|
+
type PollSubscriptionFn = (handle: number) => string;
|
|
3
|
+
type CloseSubscriptionFn = (handle: number) => void;
|
|
4
|
+
/** Wraps a WASM subscription handle with typed polling. */
|
|
5
|
+
export declare class EventSubscription {
|
|
6
|
+
private handle;
|
|
7
|
+
private closed;
|
|
8
|
+
private pollFn;
|
|
9
|
+
private closeFn;
|
|
10
|
+
/** @internal — use Mob.subscribe() or Mob.subscribeAll() instead. */
|
|
11
|
+
constructor(handle: number, pollFn: PollSubscriptionFn, closeFn: CloseSubscriptionFn);
|
|
12
|
+
/** Poll for new events. Returns an empty array when no events are available. */
|
|
13
|
+
poll(): EventEnvelope[];
|
|
14
|
+
/** Close the subscription and release the handle. */
|
|
15
|
+
close(): void;
|
|
16
|
+
/** Whether this subscription has been closed. */
|
|
17
|
+
get isClosed(): boolean;
|
|
18
|
+
}
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGhD,KAAK,kBAAkB,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;AACrD,KAAK,mBAAmB,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;AAEpD,2DAA2D;AAC3D,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,OAAO,CAAsB;IAErC,qEAAqE;gBAEnE,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,kBAAkB,EAC1B,OAAO,EAAE,mBAAmB;IAO9B,gFAAgF;IAChF,IAAI,IAAI,aAAa,EAAE;IAOvB,qDAAqD;IACrD,KAAK,IAAI,IAAI;IAMb,iDAAiD;IACjD,IAAI,QAAQ,IAAI,OAAO,CAEtB;CACF"}
|
package/dist/events.js
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/** Wraps a WASM subscription handle with typed polling. */
|
|
2
|
+
export class EventSubscription {
|
|
3
|
+
handle;
|
|
4
|
+
closed = false;
|
|
5
|
+
pollFn;
|
|
6
|
+
closeFn;
|
|
7
|
+
/** @internal — use Mob.subscribe() or Mob.subscribeAll() instead. */
|
|
8
|
+
constructor(handle, pollFn, closeFn) {
|
|
9
|
+
this.handle = handle;
|
|
10
|
+
this.pollFn = pollFn;
|
|
11
|
+
this.closeFn = closeFn;
|
|
12
|
+
}
|
|
13
|
+
/** Poll for new events. Returns an empty array when no events are available. */
|
|
14
|
+
poll() {
|
|
15
|
+
if (this.closed)
|
|
16
|
+
return [];
|
|
17
|
+
const json = this.pollFn(this.handle);
|
|
18
|
+
const parsed = JSON.parse(json);
|
|
19
|
+
return Array.isArray(parsed) ? parsed : [];
|
|
20
|
+
}
|
|
21
|
+
/** Close the subscription and release the handle. */
|
|
22
|
+
close() {
|
|
23
|
+
if (this.closed)
|
|
24
|
+
return;
|
|
25
|
+
this.closed = true;
|
|
26
|
+
this.closeFn(this.handle);
|
|
27
|
+
}
|
|
28
|
+
/** Whether this subscription has been closed. */
|
|
29
|
+
get isClosed() {
|
|
30
|
+
return this.closed;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAMA,2DAA2D;AAC3D,MAAM,OAAO,iBAAiB;IACpB,MAAM,CAAS;IACf,MAAM,GAAG,KAAK,CAAC;IACf,MAAM,CAAqB;IAC3B,OAAO,CAAsB;IAErC,qEAAqE;IACrE,YACE,MAAc,EACd,MAA0B,EAC1B,OAA4B;QAE5B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,gFAAgF;IAChF,IAAI;QACF,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtC,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzC,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAE,MAA0B,CAAC,CAAC,CAAC,EAAE,CAAC;IAClE,CAAC;IAED,qDAAqD;IACrD,KAAK;QACH,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO;QACxB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAED,iDAAiD;IACjD,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;CACF"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { MeerkatRuntime } from './runtime.js';
|
|
2
|
+
export type { WasmModule } from './runtime.js';
|
|
3
|
+
export { Mob } from './mob.js';
|
|
4
|
+
export { Session } from './session.js';
|
|
5
|
+
export { EventSubscription } from './events.js';
|
|
6
|
+
export { isKnownEvent } from './types.js';
|
|
7
|
+
export type { RuntimeConfig, InitResult, SessionConfig, TurnOptions, TurnResult, Usage, MobDefinition, Profile, ToolConfig, WiringRules, RoleWiringRule, SpawnSpec, SpawnResult, MobMember, MobStatus, MobLifecycleAction, EventEnvelope, AgentEvent, TextDeltaEvent, TextCompleteEvent, ToolCallRequestedEvent, ToolResultReceivedEvent, TurnStartedEvent, TurnCompletedEvent, RunCompletedEvent, RunFailedEvent, ToolExecutionStartedEvent, ToolExecutionCompletedEvent, ReasoningDeltaEvent, ReasoningCompleteEvent, JsonSchema, ToolCallbackResult, ToolCallback, FlowStatus, } from './types.js';
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,YAAY,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,YAAY,EACV,aAAa,EACb,UAAU,EACV,aAAa,EACb,WAAW,EACX,UAAU,EACV,KAAK,EACL,aAAa,EACb,OAAO,EACP,UAAU,EACV,WAAW,EACX,cAAc,EACd,SAAS,EACT,WAAW,EACX,SAAS,EACT,SAAS,EACT,kBAAkB,EAClB,aAAa,EACb,UAAU,EACV,cAAc,EACd,iBAAiB,EACjB,sBAAsB,EACtB,uBAAuB,EACvB,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,yBAAyB,EACzB,2BAA2B,EAC3B,mBAAmB,EACnB,sBAAsB,EACtB,UAAU,EACV,kBAAkB,EAClB,YAAY,EACZ,UAAU,GACX,MAAM,YAAY,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/mob.d.ts
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { EventSubscription } from './events.js';
|
|
2
|
+
import type { SpawnSpec, SpawnResult, MobMember, MobStatus, MobLifecycleAction, FlowStatus, EventEnvelope } from './types.js';
|
|
3
|
+
interface MobWasmBindings {
|
|
4
|
+
mob_spawn: (mobId: string, specs: string) => Promise<string>;
|
|
5
|
+
mob_retire: (mobId: string, meerkatId: string) => Promise<void>;
|
|
6
|
+
mob_wire: (mobId: string, a: string, b: string) => Promise<void>;
|
|
7
|
+
mob_unwire: (mobId: string, a: string, b: string) => Promise<void>;
|
|
8
|
+
mob_list_members: (mobId: string) => Promise<string>;
|
|
9
|
+
mob_send_message: (mobId: string, meerkatId: string, message: string) => Promise<void>;
|
|
10
|
+
mob_respawn: (mobId: string, meerkatId: string, initialMessage?: string) => Promise<void>;
|
|
11
|
+
mob_status: (mobId: string) => Promise<string>;
|
|
12
|
+
mob_lifecycle: (mobId: string, action: string) => Promise<void>;
|
|
13
|
+
mob_events: (mobId: string, afterCursor: string, limit: number) => Promise<string>;
|
|
14
|
+
mob_run_flow: (mobId: string, flowId: string, params: string) => Promise<string>;
|
|
15
|
+
mob_flow_status: (mobId: string, runId: string) => Promise<string>;
|
|
16
|
+
mob_cancel_flow: (mobId: string, runId: string) => Promise<void>;
|
|
17
|
+
mob_member_subscribe: (mobId: string, meerkatId: string) => number;
|
|
18
|
+
mob_subscribe_events: (mobId: string) => number;
|
|
19
|
+
mob_inject_and_subscribe: (mobId: string, meerkatId: string, message: string) => Promise<string>;
|
|
20
|
+
poll_subscription: (handle: number) => string;
|
|
21
|
+
close_subscription: (handle: number) => void;
|
|
22
|
+
}
|
|
23
|
+
/** A mob instance — a group of agents with shared orchestration. */
|
|
24
|
+
export declare class Mob {
|
|
25
|
+
/** The mob's unique identifier. */
|
|
26
|
+
readonly mobId: string;
|
|
27
|
+
private bindings;
|
|
28
|
+
/** @internal — use MeerkatRuntime.createMob() instead. */
|
|
29
|
+
constructor(mobId: string, bindings: MobWasmBindings);
|
|
30
|
+
/** Spawn one or more agents into the mob. */
|
|
31
|
+
spawn(specs: SpawnSpec[]): Promise<SpawnResult[]>;
|
|
32
|
+
/** Retire an agent from the mob. */
|
|
33
|
+
retire(meerkatId: string): Promise<void>;
|
|
34
|
+
/** Wire two agents for comms trust. */
|
|
35
|
+
wire(a: string, b: string): Promise<void>;
|
|
36
|
+
/** Remove comms trust between two agents. */
|
|
37
|
+
unwire(a: string, b: string): Promise<void>;
|
|
38
|
+
/** List all members in the mob. */
|
|
39
|
+
listMembers(): Promise<MobMember[]>;
|
|
40
|
+
/** Send a message to a specific agent. */
|
|
41
|
+
sendMessage(meerkatId: string, message: string): Promise<void>;
|
|
42
|
+
/** Retire and re-spawn an agent with the same profile. */
|
|
43
|
+
respawn(meerkatId: string, initialMessage?: string): Promise<void>;
|
|
44
|
+
/** Get mob status. */
|
|
45
|
+
status(): Promise<MobStatus>;
|
|
46
|
+
/** Perform a lifecycle action (stop, resume, complete, destroy). */
|
|
47
|
+
lifecycle(action: MobLifecycleAction): Promise<void>;
|
|
48
|
+
/** Get mob events after a cursor. */
|
|
49
|
+
events(afterCursor?: string, limit?: number): Promise<EventEnvelope[]>;
|
|
50
|
+
/** Run a flow. Returns the run ID. */
|
|
51
|
+
runFlow(flowId: string, params?: Record<string, unknown>): Promise<string>;
|
|
52
|
+
/** Get flow status. */
|
|
53
|
+
flowStatus(runId: string): Promise<FlowStatus>;
|
|
54
|
+
/** Cancel a running flow. */
|
|
55
|
+
cancelFlow(runId: string): Promise<void>;
|
|
56
|
+
/** Subscribe to events for a specific member. */
|
|
57
|
+
subscribe(meerkatId: string): EventSubscription;
|
|
58
|
+
/** Subscribe to all mob-wide events. */
|
|
59
|
+
subscribeAll(): EventSubscription;
|
|
60
|
+
/** Send a message and subscribe to the interaction. Returns the interaction ID. */
|
|
61
|
+
injectAndSubscribe(meerkatId: string, message: string): Promise<{
|
|
62
|
+
interactionId: string;
|
|
63
|
+
subscription: EventSubscription;
|
|
64
|
+
}>;
|
|
65
|
+
}
|
|
66
|
+
export {};
|
|
67
|
+
//# sourceMappingURL=mob.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mob.d.ts","sourceRoot":"","sources":["../src/mob.ts"],"names":[],"mappings":"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"}
|
package/dist/mob.js
ADDED
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { EventSubscription } from './events.js';
|
|
2
|
+
/** A mob instance — a group of agents with shared orchestration. */
|
|
3
|
+
export class Mob {
|
|
4
|
+
/** The mob's unique identifier. */
|
|
5
|
+
mobId;
|
|
6
|
+
bindings;
|
|
7
|
+
/** @internal — use MeerkatRuntime.createMob() instead. */
|
|
8
|
+
constructor(mobId, bindings) {
|
|
9
|
+
this.mobId = mobId;
|
|
10
|
+
this.bindings = bindings;
|
|
11
|
+
}
|
|
12
|
+
/** Spawn one or more agents into the mob. */
|
|
13
|
+
async spawn(specs) {
|
|
14
|
+
const json = await this.bindings.mob_spawn(this.mobId, JSON.stringify(specs));
|
|
15
|
+
return JSON.parse(json);
|
|
16
|
+
}
|
|
17
|
+
/** Retire an agent from the mob. */
|
|
18
|
+
async retire(meerkatId) {
|
|
19
|
+
await this.bindings.mob_retire(this.mobId, meerkatId);
|
|
20
|
+
}
|
|
21
|
+
/** Wire two agents for comms trust. */
|
|
22
|
+
async wire(a, b) {
|
|
23
|
+
await this.bindings.mob_wire(this.mobId, a, b);
|
|
24
|
+
}
|
|
25
|
+
/** Remove comms trust between two agents. */
|
|
26
|
+
async unwire(a, b) {
|
|
27
|
+
await this.bindings.mob_unwire(this.mobId, a, b);
|
|
28
|
+
}
|
|
29
|
+
/** List all members in the mob. */
|
|
30
|
+
async listMembers() {
|
|
31
|
+
const json = await this.bindings.mob_list_members(this.mobId);
|
|
32
|
+
return JSON.parse(json);
|
|
33
|
+
}
|
|
34
|
+
/** Send a message to a specific agent. */
|
|
35
|
+
async sendMessage(meerkatId, message) {
|
|
36
|
+
await this.bindings.mob_send_message(this.mobId, meerkatId, message);
|
|
37
|
+
}
|
|
38
|
+
/** Retire and re-spawn an agent with the same profile. */
|
|
39
|
+
async respawn(meerkatId, initialMessage) {
|
|
40
|
+
await this.bindings.mob_respawn(this.mobId, meerkatId, initialMessage);
|
|
41
|
+
}
|
|
42
|
+
/** Get mob status. */
|
|
43
|
+
async status() {
|
|
44
|
+
const json = await this.bindings.mob_status(this.mobId);
|
|
45
|
+
return JSON.parse(json);
|
|
46
|
+
}
|
|
47
|
+
/** Perform a lifecycle action (stop, resume, complete, destroy). */
|
|
48
|
+
async lifecycle(action) {
|
|
49
|
+
await this.bindings.mob_lifecycle(this.mobId, action);
|
|
50
|
+
}
|
|
51
|
+
/** Get mob events after a cursor. */
|
|
52
|
+
async events(afterCursor = '', limit = 100) {
|
|
53
|
+
const json = await this.bindings.mob_events(this.mobId, afterCursor, limit);
|
|
54
|
+
return JSON.parse(json);
|
|
55
|
+
}
|
|
56
|
+
/** Run a flow. Returns the run ID. */
|
|
57
|
+
async runFlow(flowId, params = {}) {
|
|
58
|
+
const json = await this.bindings.mob_run_flow(this.mobId, flowId, JSON.stringify(params));
|
|
59
|
+
return JSON.parse(json);
|
|
60
|
+
}
|
|
61
|
+
/** Get flow status. */
|
|
62
|
+
async flowStatus(runId) {
|
|
63
|
+
const json = await this.bindings.mob_flow_status(this.mobId, runId);
|
|
64
|
+
return JSON.parse(json);
|
|
65
|
+
}
|
|
66
|
+
/** Cancel a running flow. */
|
|
67
|
+
async cancelFlow(runId) {
|
|
68
|
+
await this.bindings.mob_cancel_flow(this.mobId, runId);
|
|
69
|
+
}
|
|
70
|
+
/** Subscribe to events for a specific member. */
|
|
71
|
+
subscribe(meerkatId) {
|
|
72
|
+
const handle = this.bindings.mob_member_subscribe(this.mobId, meerkatId);
|
|
73
|
+
return new EventSubscription(handle, this.bindings.poll_subscription, this.bindings.close_subscription);
|
|
74
|
+
}
|
|
75
|
+
/** Subscribe to all mob-wide events. */
|
|
76
|
+
subscribeAll() {
|
|
77
|
+
const handle = this.bindings.mob_subscribe_events(this.mobId);
|
|
78
|
+
return new EventSubscription(handle, this.bindings.poll_subscription, this.bindings.close_subscription);
|
|
79
|
+
}
|
|
80
|
+
/** Send a message and subscribe to the interaction. Returns the interaction ID. */
|
|
81
|
+
async injectAndSubscribe(meerkatId, message) {
|
|
82
|
+
const json = await this.bindings.mob_inject_and_subscribe(this.mobId, meerkatId, message);
|
|
83
|
+
const interactionId = JSON.parse(json);
|
|
84
|
+
// Subscribe to the member's events to follow the interaction
|
|
85
|
+
const subscription = this.subscribe(meerkatId);
|
|
86
|
+
return { interactionId, subscription };
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=mob.js.map
|
package/dist/mob.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mob.js","sourceRoot":"","sources":["../src/mob.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { Mob } from './mob.js';
|
|
2
|
+
import { Session } from './session.js';
|
|
3
|
+
import type { RuntimeConfig, SessionConfig, MobDefinition, JsonSchema, ToolCallback, MobStatus } from './types.js';
|
|
4
|
+
/**
|
|
5
|
+
* The wasm-bindgen module type.
|
|
6
|
+
*
|
|
7
|
+
* This mirrors the exports from `meerkat_web_runtime.js` generated by wasm-pack.
|
|
8
|
+
* We use a structural type so the wrapper compiles without the actual WASM build
|
|
9
|
+
* artifacts present.
|
|
10
|
+
*/
|
|
11
|
+
export interface WasmModule {
|
|
12
|
+
default: () => Promise<unknown>;
|
|
13
|
+
runtime_version: () => string;
|
|
14
|
+
init_runtime: (mobpackBytes: Uint8Array, credentialsJson: string) => string;
|
|
15
|
+
init_runtime_from_config: (configJson: string) => string;
|
|
16
|
+
register_tool_callback: (name: string, description: string, schemaJson: string, callback: (args: string) => Promise<string>) => void;
|
|
17
|
+
clear_tool_callbacks: () => void;
|
|
18
|
+
create_session_simple: (configJson: string) => number;
|
|
19
|
+
create_session: (mobpackBytes: Uint8Array, configJson: string) => number;
|
|
20
|
+
start_turn: (handle: number, prompt: string, optionsJson: string) => Promise<string>;
|
|
21
|
+
get_session_state: (handle: number) => string;
|
|
22
|
+
destroy_session: (handle: number) => void;
|
|
23
|
+
poll_events: (handle: number) => string;
|
|
24
|
+
inspect_mobpack: (mobpackBytes: Uint8Array) => string;
|
|
25
|
+
mob_create: (definitionJson: string) => Promise<string>;
|
|
26
|
+
mob_status: (mobId: string) => Promise<string>;
|
|
27
|
+
mob_list: () => Promise<string>;
|
|
28
|
+
mob_lifecycle: (mobId: string, action: string) => Promise<void>;
|
|
29
|
+
mob_events: (mobId: string, afterCursor: string, limit: number) => Promise<string>;
|
|
30
|
+
mob_spawn: (mobId: string, specsJson: string) => Promise<string>;
|
|
31
|
+
mob_retire: (mobId: string, meerkatId: string) => Promise<void>;
|
|
32
|
+
mob_wire: (mobId: string, a: string, b: string) => Promise<void>;
|
|
33
|
+
mob_unwire: (mobId: string, a: string, b: string) => Promise<void>;
|
|
34
|
+
mob_list_members: (mobId: string) => Promise<string>;
|
|
35
|
+
mob_send_message: (mobId: string, meerkatId: string, message: string) => Promise<void>;
|
|
36
|
+
mob_respawn: (mobId: string, meerkatId: string, initialMessage?: string) => Promise<void>;
|
|
37
|
+
mob_inject_and_subscribe: (mobId: string, meerkatId: string, message: string) => Promise<string>;
|
|
38
|
+
mob_run_flow: (mobId: string, flowId: string, paramsJson: string) => Promise<string>;
|
|
39
|
+
mob_flow_status: (mobId: string, runId: string) => Promise<string>;
|
|
40
|
+
mob_cancel_flow: (mobId: string, runId: string) => Promise<void>;
|
|
41
|
+
mob_member_subscribe: (mobId: string, meerkatId: string) => number;
|
|
42
|
+
mob_subscribe_events: (mobId: string) => number;
|
|
43
|
+
poll_subscription: (handle: number) => string;
|
|
44
|
+
close_subscription: (handle: number) => void;
|
|
45
|
+
wire_cross_mob: (mobA: string, meerkatA: string, mobB: string, meerkatB: string) => Promise<void>;
|
|
46
|
+
comms_peers: (sessionId: string) => Promise<string>;
|
|
47
|
+
comms_send: (sessionId: string, paramsJson: string) => Promise<string>;
|
|
48
|
+
}
|
|
49
|
+
/** Entry point for the Meerkat WASM runtime in the browser. */
|
|
50
|
+
export declare class MeerkatRuntime {
|
|
51
|
+
private wasm;
|
|
52
|
+
private constructor();
|
|
53
|
+
/**
|
|
54
|
+
* Initialize the WASM runtime with the given configuration.
|
|
55
|
+
*
|
|
56
|
+
* @param wasm - The WASM module (import from the wasm-pack output).
|
|
57
|
+
* @param config - Runtime configuration including API keys and provider URLs.
|
|
58
|
+
* @returns An initialized {@link MeerkatRuntime} instance.
|
|
59
|
+
*
|
|
60
|
+
* @example
|
|
61
|
+
* ```typescript
|
|
62
|
+
* import * as wasm from '@rkat/web/wasm/meerkat_web_runtime.js';
|
|
63
|
+
*
|
|
64
|
+
* const runtime = await MeerkatRuntime.init(wasm, {
|
|
65
|
+
* anthropicApiKey: 'sk-...',
|
|
66
|
+
* model: 'claude-sonnet-4-5',
|
|
67
|
+
* });
|
|
68
|
+
* ```
|
|
69
|
+
*/
|
|
70
|
+
static init(wasm: WasmModule, config: RuntimeConfig): Promise<MeerkatRuntime>;
|
|
71
|
+
/**
|
|
72
|
+
* Initialize from a mobpack archive.
|
|
73
|
+
*
|
|
74
|
+
* @param wasm - The WASM module.
|
|
75
|
+
* @param mobpackBytes - The tar.gz mobpack archive bytes.
|
|
76
|
+
* @param config - Credentials and optional overrides.
|
|
77
|
+
*/
|
|
78
|
+
static initFromMobpack(wasm: WasmModule, mobpackBytes: Uint8Array, config: RuntimeConfig): Promise<MeerkatRuntime>;
|
|
79
|
+
/**
|
|
80
|
+
* Register a tool callback on the WASM module.
|
|
81
|
+
*
|
|
82
|
+
* **Must be called before {@link init} or {@link initFromMobpack}** because
|
|
83
|
+
* the tool dispatcher is built during initialization.
|
|
84
|
+
*
|
|
85
|
+
* @param wasm - The WASM module (same one passed to init).
|
|
86
|
+
* @param name - Tool name.
|
|
87
|
+
* @param description - Human-readable tool description.
|
|
88
|
+
* @param schema - JSON Schema for tool input.
|
|
89
|
+
* @param callback - Receives tool arguments as JSON string, returns result.
|
|
90
|
+
*/
|
|
91
|
+
static registerTool(wasm: WasmModule, name: string, description: string, schema: JsonSchema, callback: ToolCallback): void;
|
|
92
|
+
/** Clear all registered tool callbacks on the WASM module. */
|
|
93
|
+
static clearTools(wasm: WasmModule): void;
|
|
94
|
+
/** Create a mob from a definition. */
|
|
95
|
+
createMob(definition: MobDefinition): Promise<Mob>;
|
|
96
|
+
/** List all active mobs. */
|
|
97
|
+
listMobs(): Promise<MobStatus[]>;
|
|
98
|
+
/** Wire two agents across different mobs for cross-mob comms. */
|
|
99
|
+
wireCrossMob(mobA: string, meerkatA: string, mobB: string, meerkatB: string): Promise<void>;
|
|
100
|
+
/** Create a direct (non-mob) session. */
|
|
101
|
+
createSession(config: SessionConfig): Session;
|
|
102
|
+
/** Inspect a mobpack archive without loading it. */
|
|
103
|
+
inspectMobpack(mobpackBytes: Uint8Array): unknown;
|
|
104
|
+
/** Get the WASM runtime version string. */
|
|
105
|
+
get version(): string;
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=runtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime.js
ADDED
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import { Mob } from './mob.js';
|
|
2
|
+
import { Session } from './session.js';
|
|
3
|
+
/** Expected WASM runtime version — must match the compiled binary. */
|
|
4
|
+
const EXPECTED_VERSION = '0.4.1';
|
|
5
|
+
/**
|
|
6
|
+
* Convert a camelCase config object to the snake_case expected by WASM.
|
|
7
|
+
*
|
|
8
|
+
* Only converts known top-level keys to avoid mangling nested data.
|
|
9
|
+
*/
|
|
10
|
+
function toWasmConfig(config) {
|
|
11
|
+
return {
|
|
12
|
+
api_key: config.apiKey,
|
|
13
|
+
anthropic_api_key: config.anthropicApiKey,
|
|
14
|
+
openai_api_key: config.openaiApiKey,
|
|
15
|
+
gemini_api_key: config.geminiApiKey,
|
|
16
|
+
model: config.model,
|
|
17
|
+
max_sessions: config.maxSessions,
|
|
18
|
+
base_url: config.baseUrl,
|
|
19
|
+
anthropic_base_url: config.anthropicBaseUrl,
|
|
20
|
+
openai_base_url: config.openaiBaseUrl,
|
|
21
|
+
gemini_base_url: config.geminiBaseUrl,
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
function sessionToWasm(config) {
|
|
25
|
+
return {
|
|
26
|
+
model: config.model,
|
|
27
|
+
api_key: config.apiKey,
|
|
28
|
+
system_prompt: config.systemPrompt,
|
|
29
|
+
max_tokens: config.maxTokens,
|
|
30
|
+
base_url: config.baseUrl,
|
|
31
|
+
anthropic_base_url: config.anthropicBaseUrl,
|
|
32
|
+
openai_base_url: config.openaiBaseUrl,
|
|
33
|
+
gemini_base_url: config.geminiBaseUrl,
|
|
34
|
+
comms_name: config.commsName,
|
|
35
|
+
host_mode: config.hostMode,
|
|
36
|
+
labels: config.labels,
|
|
37
|
+
additional_instructions: config.additionalInstructions,
|
|
38
|
+
app_context: config.appContext,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
/** Entry point for the Meerkat WASM runtime in the browser. */
|
|
42
|
+
export class MeerkatRuntime {
|
|
43
|
+
wasm;
|
|
44
|
+
constructor(wasm) {
|
|
45
|
+
this.wasm = wasm;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Initialize the WASM runtime with the given configuration.
|
|
49
|
+
*
|
|
50
|
+
* @param wasm - The WASM module (import from the wasm-pack output).
|
|
51
|
+
* @param config - Runtime configuration including API keys and provider URLs.
|
|
52
|
+
* @returns An initialized {@link MeerkatRuntime} instance.
|
|
53
|
+
*
|
|
54
|
+
* @example
|
|
55
|
+
* ```typescript
|
|
56
|
+
* import * as wasm from '@rkat/web/wasm/meerkat_web_runtime.js';
|
|
57
|
+
*
|
|
58
|
+
* const runtime = await MeerkatRuntime.init(wasm, {
|
|
59
|
+
* anthropicApiKey: 'sk-...',
|
|
60
|
+
* model: 'claude-sonnet-4-5',
|
|
61
|
+
* });
|
|
62
|
+
* ```
|
|
63
|
+
*/
|
|
64
|
+
static async init(wasm, config) {
|
|
65
|
+
// Initialize the WASM module (loads the .wasm binary)
|
|
66
|
+
await wasm.default();
|
|
67
|
+
// Version check: ensure JS wrapper and WASM binary are from the same build
|
|
68
|
+
const wasmVersion = wasm.runtime_version();
|
|
69
|
+
if (wasmVersion !== EXPECTED_VERSION) {
|
|
70
|
+
throw new Error(`WASM runtime version mismatch: expected ${EXPECTED_VERSION}, got ${wasmVersion}. ` +
|
|
71
|
+
'Clear browser cache or rebuild the WASM runtime.');
|
|
72
|
+
}
|
|
73
|
+
const configJson = JSON.stringify(toWasmConfig(config));
|
|
74
|
+
const resultJson = wasm.init_runtime_from_config(configJson);
|
|
75
|
+
const result = JSON.parse(resultJson);
|
|
76
|
+
if (result.status !== 'initialized') {
|
|
77
|
+
throw new Error(`Runtime initialization failed: ${resultJson}`);
|
|
78
|
+
}
|
|
79
|
+
return new MeerkatRuntime(wasm);
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Initialize from a mobpack archive.
|
|
83
|
+
*
|
|
84
|
+
* @param wasm - The WASM module.
|
|
85
|
+
* @param mobpackBytes - The tar.gz mobpack archive bytes.
|
|
86
|
+
* @param config - Credentials and optional overrides.
|
|
87
|
+
*/
|
|
88
|
+
static async initFromMobpack(wasm, mobpackBytes, config) {
|
|
89
|
+
await wasm.default();
|
|
90
|
+
const wasmVersion = wasm.runtime_version();
|
|
91
|
+
if (wasmVersion !== EXPECTED_VERSION) {
|
|
92
|
+
throw new Error(`WASM runtime version mismatch: expected ${EXPECTED_VERSION}, got ${wasmVersion}. ` +
|
|
93
|
+
'Clear browser cache or rebuild the WASM runtime.');
|
|
94
|
+
}
|
|
95
|
+
const credentialsJson = JSON.stringify(toWasmConfig(config));
|
|
96
|
+
const resultJson = wasm.init_runtime(mobpackBytes, credentialsJson);
|
|
97
|
+
const result = JSON.parse(resultJson);
|
|
98
|
+
if (result.status !== 'initialized') {
|
|
99
|
+
throw new Error(`Runtime initialization failed: ${resultJson}`);
|
|
100
|
+
}
|
|
101
|
+
return new MeerkatRuntime(wasm);
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Register a tool callback on the WASM module.
|
|
105
|
+
*
|
|
106
|
+
* **Must be called before {@link init} or {@link initFromMobpack}** because
|
|
107
|
+
* the tool dispatcher is built during initialization.
|
|
108
|
+
*
|
|
109
|
+
* @param wasm - The WASM module (same one passed to init).
|
|
110
|
+
* @param name - Tool name.
|
|
111
|
+
* @param description - Human-readable tool description.
|
|
112
|
+
* @param schema - JSON Schema for tool input.
|
|
113
|
+
* @param callback - Receives tool arguments as JSON string, returns result.
|
|
114
|
+
*/
|
|
115
|
+
static registerTool(wasm, name, description, schema, callback) {
|
|
116
|
+
wasm.register_tool_callback(name, description, JSON.stringify(schema), async (args) => JSON.stringify(await callback(args)));
|
|
117
|
+
}
|
|
118
|
+
/** Clear all registered tool callbacks on the WASM module. */
|
|
119
|
+
static clearTools(wasm) {
|
|
120
|
+
wasm.clear_tool_callbacks();
|
|
121
|
+
}
|
|
122
|
+
/** Create a mob from a definition. */
|
|
123
|
+
async createMob(definition) {
|
|
124
|
+
const json = await this.wasm.mob_create(JSON.stringify(definition));
|
|
125
|
+
const mobId = JSON.parse(json);
|
|
126
|
+
return new Mob(mobId, {
|
|
127
|
+
mob_spawn: this.wasm.mob_spawn,
|
|
128
|
+
mob_retire: this.wasm.mob_retire,
|
|
129
|
+
mob_wire: this.wasm.mob_wire,
|
|
130
|
+
mob_unwire: this.wasm.mob_unwire,
|
|
131
|
+
mob_list_members: this.wasm.mob_list_members,
|
|
132
|
+
mob_send_message: this.wasm.mob_send_message,
|
|
133
|
+
mob_respawn: this.wasm.mob_respawn,
|
|
134
|
+
mob_status: this.wasm.mob_status,
|
|
135
|
+
mob_lifecycle: this.wasm.mob_lifecycle,
|
|
136
|
+
mob_events: this.wasm.mob_events,
|
|
137
|
+
mob_run_flow: this.wasm.mob_run_flow,
|
|
138
|
+
mob_flow_status: this.wasm.mob_flow_status,
|
|
139
|
+
mob_cancel_flow: this.wasm.mob_cancel_flow,
|
|
140
|
+
mob_member_subscribe: this.wasm.mob_member_subscribe,
|
|
141
|
+
mob_subscribe_events: this.wasm.mob_subscribe_events,
|
|
142
|
+
mob_inject_and_subscribe: this.wasm.mob_inject_and_subscribe,
|
|
143
|
+
poll_subscription: this.wasm.poll_subscription,
|
|
144
|
+
close_subscription: this.wasm.close_subscription,
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
/** List all active mobs. */
|
|
148
|
+
async listMobs() {
|
|
149
|
+
const json = await this.wasm.mob_list();
|
|
150
|
+
return JSON.parse(json);
|
|
151
|
+
}
|
|
152
|
+
/** Wire two agents across different mobs for cross-mob comms. */
|
|
153
|
+
async wireCrossMob(mobA, meerkatA, mobB, meerkatB) {
|
|
154
|
+
await this.wasm.wire_cross_mob(mobA, meerkatA, mobB, meerkatB);
|
|
155
|
+
}
|
|
156
|
+
/** Create a direct (non-mob) session. */
|
|
157
|
+
createSession(config) {
|
|
158
|
+
const handle = this.wasm.create_session_simple(JSON.stringify(sessionToWasm(config)));
|
|
159
|
+
return new Session(handle, this.wasm.start_turn, this.wasm.get_session_state, this.wasm.destroy_session, this.wasm.poll_events);
|
|
160
|
+
}
|
|
161
|
+
/** Inspect a mobpack archive without loading it. */
|
|
162
|
+
inspectMobpack(mobpackBytes) {
|
|
163
|
+
const json = this.wasm.inspect_mobpack(mobpackBytes);
|
|
164
|
+
return JSON.parse(json);
|
|
165
|
+
}
|
|
166
|
+
/** Get the WASM runtime version string. */
|
|
167
|
+
get version() {
|
|
168
|
+
return this.wasm.runtime_version();
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
//# sourceMappingURL=runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { TurnOptions, TurnResult, EventEnvelope } from './types.js';
|
|
2
|
+
type StartTurnFn = (handle: number, prompt: string, options_json: string) => Promise<string>;
|
|
3
|
+
type GetSessionStateFn = (handle: number) => string;
|
|
4
|
+
type DestroySessionFn = (handle: number) => void;
|
|
5
|
+
type PollEventsFn = (handle: number) => string;
|
|
6
|
+
/** A direct (non-mob) agent session. */
|
|
7
|
+
export declare class Session {
|
|
8
|
+
/** @internal — WASM session handle. */
|
|
9
|
+
readonly handle: number;
|
|
10
|
+
private startTurnFn;
|
|
11
|
+
private getStateFn;
|
|
12
|
+
private destroyFn;
|
|
13
|
+
private pollFn;
|
|
14
|
+
private destroyed;
|
|
15
|
+
/** @internal — use MeerkatRuntime.createSession() instead. */
|
|
16
|
+
constructor(handle: number, startTurnFn: StartTurnFn, getStateFn: GetSessionStateFn, destroyFn: DestroySessionFn, pollFn: PollEventsFn);
|
|
17
|
+
/** Run a turn through the agent loop. */
|
|
18
|
+
turn(prompt: string, options?: TurnOptions): Promise<TurnResult>;
|
|
19
|
+
/** Get the current session state. */
|
|
20
|
+
getState(): unknown;
|
|
21
|
+
/** Poll buffered agent events from the last turn. */
|
|
22
|
+
pollEvents(): EventEnvelope[];
|
|
23
|
+
/** Destroy the session and release resources. */
|
|
24
|
+
destroy(): void;
|
|
25
|
+
/** Whether this session has been destroyed. */
|
|
26
|
+
get isDestroyed(): boolean;
|
|
27
|
+
}
|
|
28
|
+
export {};
|
|
29
|
+
//# sourceMappingURL=session.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGzE,KAAK,WAAW,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAC7F,KAAK,iBAAiB,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;AACpD,KAAK,gBAAgB,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;AACjD,KAAK,YAAY,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;AAE/C,wCAAwC;AACxC,qBAAa,OAAO;IAClB,uCAAuC;IACvC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,UAAU,CAAoB;IACtC,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,SAAS,CAAS;IAE1B,8DAA8D;gBAE5D,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,iBAAiB,EAC7B,SAAS,EAAE,gBAAgB,EAC3B,MAAM,EAAE,YAAY;IAStB,yCAAyC;IACnC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IAWtE,qCAAqC;IACrC,QAAQ,IAAI,OAAO;IAKnB,qDAAqD;IACrD,UAAU,IAAI,aAAa,EAAE;IAO7B,iDAAiD;IACjD,OAAO,IAAI,IAAI;IAMf,+CAA+C;IAC/C,IAAI,WAAW,IAAI,OAAO,CAEzB;CACF"}
|