@meetopenbot/plugin-sdk 0.5.1 → 1.0.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.
package/README.md CHANGED
@@ -12,41 +12,33 @@ OpenBot plugins **must** be **ESM** (ECMAScript modules): `import` / `export` in
12
12
 
13
13
  ## How it Works
14
14
 
15
- OpenBot plugins operate as the **agent runtime** on an event-driven architecture powered by [Melony](https://github.com/meetopenbot/melony).
15
+ OpenBot plugins are modules the host loads per agent. There is no event bus.
16
16
 
17
- 1. **Registration**: The host loads your plugin and calls the `factory` function with a `PluginContext`.
18
- 2. **Subscription**: Your `factory` function uses the `PluginBuilder` to subscribe to the full event surface (e.g., `agent:invoke`).
19
- 3. **Processing**: When a user sends a message, `agent:invoke` is dispatched. Your plugin runs its loop, performs logic, interacts with `storage`, or calls external APIs.
20
- 4. **Communication**: Your plugin emits events back to the bus (e.g., `agent:output` or `client:ui:widget`) to communicate with the user or the parent agent.
17
+ 1. **Registration**: The host loads your plugin and merges `tools`.
18
+ 2. **Turn**: On `POST .../messages`, the host calls `run` (or the default OpenBot loop) with a `PluginContext`.
19
+ 3. **Tools**: `tools.<name>.execute` runs in-process. Approval and widgets can `await context.host.awaitWidgetResponse`.
20
+ 4. **Timeline**: Persist `agent:output`, `client:ui:widget`, and `action:<tool>` / `:result`. Stream `agent:output:delta` over SSE only.
21
21
 
22
22
  ## Core Concepts
23
23
 
24
24
  ### Plugin
25
25
 
26
- A plugin is defined by the `Plugin` or `PluginModule` interface. Use `definePlugin` to get full OpenBot typing.
26
+ A plugin is defined by the `Plugin` or `PluginModule` interface. Use `definePlugin`, `defineAgentPlugin`, or `defineMcpAgent`. Do not set `id` — the host assigns it from the npm package name.
27
27
 
28
28
  ```typescript
29
- import { definePlugin } from "@meetopenbot/plugin-sdk";
29
+ import { defineAgentPlugin } from "@meetopenbot/plugin-sdk";
30
30
 
31
- export default definePlugin({
32
- id: "my-agent",
31
+ const plugin = await defineAgentPlugin({
33
32
  name: "My Agent",
34
33
  description: "A custom AI agent",
35
- configSchema: {
36
- type: "object",
37
- properties: {
38
- model: {
39
- type: "string",
40
- description: "Model id",
41
- },
42
- },
43
- },
44
- factory: (context) => (builder) => {
45
- builder.on("agent:invoke", async function* (event) {
46
- // Handle agent logic here
47
- });
34
+ models: { providers: ["openai"], default: "openai/gpt-4o-mini" },
35
+ async run({ prompt }) {
36
+ return `You said: ${prompt}`;
48
37
  },
49
38
  });
39
+
40
+ export { plugin };
41
+ export default plugin;
50
42
  ```
51
43
 
52
44
  ### Events
@@ -71,7 +63,7 @@ The OpenBot host exposes `POST /api/webhooks/:provider` for third-party integrat
71
63
  1. Preserves the **raw request body** (base64 in the event) for HMAC signature checks.
72
64
  2. Dispatches `action:webhook` to the `system` agent on the `general` channel.
73
65
  3. **Awaits** the plugin run and uses the first `action:webhook:http-response` yield as the HTTP reply (defaults to `200 {}`).
74
- 4. Fans out subsequent events (`agent:invoke`, etc.) over SSE like `/api/publish`.
66
+ 4. Fans out subsequent events (`agent:invoke`, etc.) over SSE like a chat turn.
75
67
 
76
68
  **Plugin responsibilities:**
77
69
 
@@ -86,7 +78,6 @@ import {
86
78
  decodeWebhookRawBody,
87
79
  getWebhookHeader,
88
80
  webhookHttpResponse,
89
- type WebhookEvent,
90
81
  } from "@meetopenbot/plugin-sdk";
91
82
 
92
83
  export default definePlugin({
@@ -101,33 +92,27 @@ export default definePlugin({
101
92
  },
102
93
  },
103
94
  },
104
- factory:
105
- ({ storage }) =>
106
- (builder) => {
107
- builder.on("action:webhook", async function* (event) {
108
- const webhook = event as WebhookEvent;
109
- if (webhook.data.provider !== "slack") return;
110
-
111
- const rawBody = decodeWebhookRawBody(webhook);
112
- const payload = JSON.parse(rawBody.toString("utf8"));
113
-
114
- if (payload.type === "url_verification") {
115
- yield webhookHttpResponse({
116
- status: 200,
117
- body: { challenge: payload.challenge },
118
- });
119
- return;
120
- }
121
-
122
- // verify signature, then ack + transform...
123
- yield webhookHttpResponse({ status: 200, body: {} });
124
- yield {
125
- type: "agent:invoke",
126
- data: { role: "user", content: payload.event?.text ?? "" },
127
- meta: { threadId: payload.event?.thread_ts ?? payload.event?.ts },
128
- };
95
+ async *onWebhook({ event }) {
96
+ if (event.data.provider !== "slack") return;
97
+
98
+ const rawBody = decodeWebhookRawBody(event);
99
+ const payload = JSON.parse(rawBody.toString("utf8"));
100
+
101
+ if (payload.type === "url_verification") {
102
+ yield webhookHttpResponse({
103
+ status: 200,
104
+ body: { challenge: payload.challenge },
129
105
  });
130
- },
106
+ return;
107
+ }
108
+
109
+ yield webhookHttpResponse({ status: 200, body: {} });
110
+ yield {
111
+ type: "agent:invoke",
112
+ data: { role: "user", content: payload.event?.text ?? "" },
113
+ meta: { threadId: payload.event?.thread_ts ?? payload.event?.ts },
114
+ };
115
+ },
131
116
  });
132
117
  ```
133
118
 
@@ -1,4 +1,5 @@
1
- import type { AgentInvokeEvent, OpenBotEvent, UIWidgetResponseEvent } from './events.js';
1
+ import type { AgentInvokeEvent, OpenBotEvent, OpenBotState, UIWidgetResponseEvent } from './events.js';
2
+ import { shouldHandleInvoke } from './helpers.js';
2
3
  import { type PluginContext, type PluginModule } from './plugin.js';
3
4
  import type { PluginHandlerContext } from './runtime.js';
4
5
  import type { RenderUIWidgetData } from './ui.js';
@@ -15,12 +16,16 @@ export type AgentTurnArgs = {
15
16
  event: AgentInvokeEvent;
16
17
  handlerCtx: PluginHandlerContext;
17
18
  context: PluginContext;
19
+ state: OpenBotState;
20
+ emit: (event: OpenBotEvent) => Promise<void>;
18
21
  };
19
22
  export type AgentTurnResult = string | void | AsyncIterable<AgentTurnYield | OpenBotEvent>;
20
23
  export type AgentWidgetResponseArgs = {
21
24
  event: UIWidgetResponseEvent;
22
25
  handlerCtx: PluginHandlerContext;
23
26
  context: PluginContext;
27
+ state: OpenBotState;
28
+ emit: (event: OpenBotEvent) => Promise<void>;
24
29
  };
25
30
  /** Catalog slice shown in the shared model dropdown. */
26
31
  export type AgentModelsSpec = {
@@ -32,7 +37,7 @@ export type AgentModelsSpec = {
32
37
  description?: string;
33
38
  }>;
34
39
  };
35
- export type AgentPluginDefinition = Omit<PluginModule, 'factory'> & {
40
+ export type AgentPluginDefinition = Omit<PluginModule, 'run' | 'onWidgetResponse' | 'mapError'> & {
36
41
  /** Registry providers for the model picker. Stamps `configSchema.properties.model`. */
37
42
  models?: AgentModelsSpec;
38
43
  /** Shown when invoke content is empty. When omitted, empty prompts are ignored. */
@@ -40,16 +45,16 @@ export type AgentPluginDefinition = Omit<PluginModule, 'factory'> & {
40
45
  run: (args: AgentTurnArgs) => AgentTurnResult | Promise<AgentTurnResult>;
41
46
  onWidgetResponse?: (args: AgentWidgetResponseArgs) => AsyncIterable<AgentTurnYield | OpenBotEvent>;
42
47
  mapError?: (error: unknown, args: AgentTurnArgs) => AgentTurnYield | AgentTurnYield[] | OpenBotEvent | undefined;
43
- /** Extra bus handlers (webhooks, tools). Invoked after the standard subscriptions. */
44
- setup?: PluginModule['factory'];
45
48
  };
46
49
  export declare function toAgentTurnEvents(item: AgentTurnYield | OpenBotEvent, agentId: string, threadId: string | undefined, meta?: AgentInvokeEvent['meta']): OpenBotEvent[];
50
+ export declare function emitTurn(items: AsyncIterable<AgentTurnYield | OpenBotEvent>, agentId: string, threadId: string | undefined, meta?: AgentInvokeEvent['meta']): AsyncGenerator<OpenBotEvent>;
51
+ export { shouldHandleInvoke };
47
52
  /**
48
53
  * Define an agent plugin with a standard invoke loop.
49
54
  *
50
- * Handles `shouldHandleInvoke`, thread id, empty prompts, and a default catch.
51
- * `run` may return a string, or yield `{ kind: 'reply', content }` and
52
- * `{ kind: 'widget' }` tool traces as the vendor stream lands (see `emitTextReplies`).
55
+ * The host calls `run` directly. `run` may return a string, or yield
56
+ * `{ kind: 'reply', content }` and `{ kind: 'widget' }` tool traces.
53
57
  */
54
58
  export declare function defineAgentPlugin(definition: AgentPluginDefinition): Promise<PluginModule>;
59
+ export declare function runAgentTurn(plugin: PluginModule, args: AgentTurnArgs): Promise<AsyncIterable<OpenBotEvent>>;
55
60
  //# sourceMappingURL=agent-plugin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent-plugin.d.ts","sourceRoot":"","sources":["../src/agent-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,YAAY,EACZ,qBAAqB,EACtB,MAAM,aAAa,CAAC;AAIrB,OAAO,EAAgB,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAClF,OAAO,KAAK,EAAiB,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACxE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElD,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC7C;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,kBAAkB,CAAA;CAAE,CAAC;AAEnD,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,KAAK,EAAE,gBAAgB,CAAC;IACxB,UAAU,EAAE,oBAAoB,CAAC;IACjC,OAAO,EAAE,aAAa,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,IAAI,GAAG,aAAa,CAAC,cAAc,GAAG,YAAY,CAAC,CAAC;AAE3F,MAAM,MAAM,uBAAuB,GAAG;IACpC,KAAK,EAAE,qBAAqB,CAAC;IAC7B,UAAU,EAAE,oBAAoB,CAAC;IACjC,OAAO,EAAE,aAAa,CAAC;CACxB,CAAC;AAEF,wDAAwD;AACxD,MAAM,MAAM,eAAe,GAAG;IAC5B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC9E,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,GAAG;IAClE,uFAAuF;IACvF,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,mFAAmF;IACnF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IACzE,gBAAgB,CAAC,EAAE,CACjB,IAAI,EAAE,uBAAuB,KAC1B,aAAa,CAAC,cAAc,GAAG,YAAY,CAAC,CAAC;IAClD,QAAQ,CAAC,EAAE,CACT,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,aAAa,KAChB,cAAc,GAAG,cAAc,EAAE,GAAG,YAAY,GAAG,SAAS,CAAC;IAClE,sFAAsF;IACtF,KAAK,CAAC,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;CACjC,CAAC;AAYF,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,cAAc,GAAG,YAAY,EACnC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,IAAI,CAAC,EAAE,gBAAgB,CAAC,MAAM,CAAC,GAC9B,YAAY,EAAE,CAQhB;AAiBD;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,qBAAqB,GAChC,OAAO,CAAC,YAAY,CAAC,CA+FvB"}
1
+ {"version":3,"file":"agent-plugin.d.ts","sourceRoot":"","sources":["../src/agent-plugin.ts"],"names":[],"mappings":"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"}
@@ -17,7 +17,7 @@ export function toAgentTurnEvents(item, agentId, threadId, meta) {
17
17
  }
18
18
  return [agentOutput({ agentId, threadId, content: item.content, meta })];
19
19
  }
20
- async function* emitTurn(items, agentId, threadId, meta) {
20
+ export async function* emitTurn(items, agentId, threadId, meta) {
21
21
  for await (const item of items) {
22
22
  yield* toAgentTurnEvents(item, agentId, threadId, meta);
23
23
  }
@@ -25,15 +25,15 @@ async function* emitTurn(items, agentId, threadId, meta) {
25
25
  function errorText(error) {
26
26
  return error instanceof Error ? error.message : String(error);
27
27
  }
28
+ export { shouldHandleInvoke };
28
29
  /**
29
30
  * Define an agent plugin with a standard invoke loop.
30
31
  *
31
- * Handles `shouldHandleInvoke`, thread id, empty prompts, and a default catch.
32
- * `run` may return a string, or yield `{ kind: 'reply', content }` and
33
- * `{ kind: 'widget' }` tool traces as the vendor stream lands (see `emitTextReplies`).
32
+ * The host calls `run` directly. `run` may return a string, or yield
33
+ * `{ kind: 'reply', content }` and `{ kind: 'widget' }` tool traces.
34
34
  */
35
35
  export async function defineAgentPlugin(definition) {
36
- const { emptyPrompt, run, onWidgetResponse, mapError, setup, models, configSchema, ...plugin } = definition;
36
+ const { emptyPrompt, run, onWidgetResponse, mapError, models, configSchema, ...plugin } = definition;
37
37
  const properties = { ...(configSchema?.properties ?? {}) };
38
38
  if (models?.providers.length) {
39
39
  properties.model = await modelConfigField({
@@ -49,70 +49,73 @@ export async function defineAgentPlugin(definition) {
49
49
  return definePlugin({
50
50
  ...plugin,
51
51
  ...(schema ? { configSchema: schema } : {}),
52
- factory: (context) => (builder) => {
53
- builder.on('agent:invoke', async function* (event, handlerCtx) {
54
- if (!shouldHandleInvoke(event, context.agentId))
55
- return;
56
- if (event.meta?.threadId) {
57
- handlerCtx.state.threadId = event.meta.threadId;
58
- }
59
- const threadId = event.meta?.threadId ?? handlerCtx.state.threadId;
60
- const prompt = (event.data.content ?? '').trim();
61
- if (!prompt) {
62
- if (emptyPrompt) {
63
- yield agentOutput({
64
- agentId: context.agentId,
65
- content: emptyPrompt,
66
- threadId,
67
- meta: event.meta,
68
- });
69
- }
70
- return;
71
- }
72
- const args = { prompt, threadId, event, handlerCtx, context };
73
- try {
74
- const result = await run(args);
75
- if (result == null || result === '')
76
- return;
77
- if (typeof result === 'string') {
78
- yield agentOutput({
79
- agentId: context.agentId,
80
- content: result,
81
- threadId,
82
- meta: event.meta,
83
- });
84
- return;
85
- }
86
- if (isAsyncIterable(result)) {
87
- yield* emitTurn(result, context.agentId, threadId, event.meta);
88
- }
89
- }
90
- catch (error) {
91
- const mapped = mapError?.(error, args);
92
- if (mapped) {
93
- const items = Array.isArray(mapped) ? mapped : [mapped];
94
- for (const item of items) {
95
- yield* toAgentTurnEvents(item, context.agentId, threadId, event.meta);
96
- }
97
- return;
98
- }
99
- const message = errorText(error);
100
- yield agentOutput({
101
- agentId: context.agentId,
102
- content: creditsErrorMessage(message, { agentName: plugin.name }) ??
103
- (message || 'Agent failed for an unknown reason. Please try again.'),
104
- threadId,
105
- meta: event.meta,
106
- });
52
+ emptyPrompt,
53
+ run,
54
+ onWidgetResponse,
55
+ mapError,
56
+ });
57
+ }
58
+ export async function runAgentTurn(plugin, args) {
59
+ const { context, event } = args;
60
+ const threadId = args.threadId ?? event.meta?.threadId;
61
+ const prompt = (event.data.content ?? '').trim();
62
+ async function* empty() { }
63
+ if (!plugin.run)
64
+ return empty();
65
+ if (!shouldHandleInvoke(event, context.agentId))
66
+ return empty();
67
+ if (!prompt) {
68
+ if (plugin.emptyPrompt) {
69
+ return (async function* () {
70
+ yield agentOutput({
71
+ agentId: context.agentId,
72
+ content: plugin.emptyPrompt,
73
+ threadId,
74
+ meta: event.meta,
75
+ });
76
+ })();
77
+ }
78
+ return empty();
79
+ }
80
+ try {
81
+ const result = await plugin.run(args);
82
+ if (result == null || result === '')
83
+ return empty();
84
+ if (typeof result === 'string') {
85
+ return (async function* () {
86
+ yield agentOutput({
87
+ agentId: context.agentId,
88
+ content: result,
89
+ threadId,
90
+ meta: event.meta,
91
+ });
92
+ })();
93
+ }
94
+ if (isAsyncIterable(result)) {
95
+ return emitTurn(result, context.agentId, threadId, event.meta);
96
+ }
97
+ }
98
+ catch (error) {
99
+ const mapped = plugin.mapError?.(error, args);
100
+ if (mapped) {
101
+ const items = Array.isArray(mapped) ? mapped : [mapped];
102
+ return (async function* () {
103
+ for (const item of items) {
104
+ yield* toAgentTurnEvents(item, context.agentId, threadId, event.meta);
107
105
  }
106
+ })();
107
+ }
108
+ const message = errorText(error);
109
+ return (async function* () {
110
+ yield agentOutput({
111
+ agentId: context.agentId,
112
+ content: creditsErrorMessage(message, { agentName: plugin.name }) ??
113
+ (message || 'Agent failed for an unknown reason. Please try again.'),
114
+ threadId,
115
+ meta: event.meta,
108
116
  });
109
- if (onWidgetResponse) {
110
- builder.on('client:ui:widget:response', async function* (event, handlerCtx) {
111
- yield* emitTurn(onWidgetResponse({ event, handlerCtx, context }), context.agentId, event.meta?.threadId ?? handlerCtx.state.threadId, event.meta);
112
- });
113
- }
114
- setup?.(context)(builder);
115
- },
116
- });
117
+ })();
118
+ }
119
+ return empty();
117
120
  }
118
121
  //# sourceMappingURL=agent-plugin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent-plugin.js","sourceRoot":"","sources":["../src/agent-plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-plugin.js","sourceRoot":"","sources":["../src/agent-plugin.ts"],"names":[],"mappings":"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"}
package/dist/events.d.ts CHANGED
@@ -17,6 +17,12 @@ export type AgentInvokeEvent = BaseEvent & {
17
17
  role?: "user" | "assistant" | "system" | "agent";
18
18
  content: string;
19
19
  agentId?: string;
20
+ /** Per-run config overrides: flat fields or nested by plugin id. */
21
+ config?: Record<string, unknown>;
22
+ /** Agents the human @mentioned; the orchestrator should ask them. */
23
+ mentionedAgentIds?: string[];
24
+ /** Space this ask was forwarded from (`start_work`). */
25
+ forwardedFromSpaceId?: string;
20
26
  };
21
27
  };
22
28
  /** One thinking block to round-trip to the next model call. */
@@ -25,6 +31,16 @@ export type ReasoningPartData = {
25
31
  /** AI SDK provider options (Anthropic signature, OpenAI itemId, …). */
26
32
  providerOptions?: Record<string, Record<string, unknown>>;
27
33
  };
34
+ export type AgentOutputDeltaEvent = BaseEvent & {
35
+ type: "agent:output:delta";
36
+ data: {
37
+ content?: string;
38
+ reasoning?: string;
39
+ };
40
+ meta: EventMeta & {
41
+ agentId: string;
42
+ };
43
+ };
28
44
  export type AgentOutputEvent = BaseEvent & {
29
45
  type: "agent:output";
30
46
  data: {
@@ -71,6 +87,7 @@ export type WebhookEvent = BaseEvent & {
71
87
  type: "action:webhook";
72
88
  data: {
73
89
  provider: string;
90
+ method?: string;
74
91
  /** Request body encoded as base64 so plugins can verify HMACs on the raw bytes. */
75
92
  rawBody: string;
76
93
  headers: Record<string, string | string[] | undefined>;
@@ -89,11 +106,73 @@ export type WebhookHttpResponseEvent = BaseEvent & {
89
106
  headers?: Record<string, string>;
90
107
  };
91
108
  };
109
+ export type AgentRunStartEvent = BaseEvent & {
110
+ type: "agent:run:start";
111
+ data: {
112
+ runId: string;
113
+ agentId: string;
114
+ channelId?: string;
115
+ threadId?: string;
116
+ };
117
+ };
118
+ export type AgentRunEndEvent = BaseEvent & {
119
+ type: "agent:run:end";
120
+ data: {
121
+ runId: string;
122
+ agentId: string;
123
+ channelId?: string;
124
+ threadId?: string;
125
+ error?: string;
126
+ };
127
+ };
128
+ export type AgentRunStoppedEvent = BaseEvent & {
129
+ type: "agent:run:stopped";
130
+ data: {
131
+ runId: string;
132
+ agentId: string;
133
+ channelId: string;
134
+ threadId?: string;
135
+ reason?: string;
136
+ };
137
+ };
138
+ export type ActiveRunsSnapshotEvent = BaseEvent & {
139
+ type: "agent:active-runs:snapshot";
140
+ data: {
141
+ channels: Array<{
142
+ channelId: string;
143
+ threadId?: string;
144
+ activeCount: number;
145
+ agentIds: string[];
146
+ /** First-line snippet of in-flight agent text for list UIs. */
147
+ latestAgentOutput?: string;
148
+ latestAgentOutputAgentId?: string;
149
+ }>;
150
+ };
151
+ };
152
+ /** Throttled live output for thread lists (workspace `/api/stream`, not persisted). */
153
+ export type AgentThreadPreviewEvent = BaseEvent & {
154
+ type: "agent:thread:preview";
155
+ data: {
156
+ channelId: string;
157
+ threadId?: string;
158
+ latestAgentOutput: string;
159
+ latestAgentOutputAgentId?: string;
160
+ };
161
+ };
162
+ export type AgentUsageEvent = BaseEvent & {
163
+ type: "agent:usage";
164
+ data: {
165
+ inputTokens?: number;
166
+ outputTokens?: number;
167
+ totalTokens?: number;
168
+ [key: string]: unknown;
169
+ };
170
+ };
92
171
  /**
93
- * Narrow event union for common plugin authoring paths.
94
- * The host bus accepts additional event types at runtime.
172
+ * Timeline, webhook, and tool events. CRUD is REST, not this union.
173
+ * The host also accepts additional event types at runtime.
95
174
  */
96
- export type PluginEvent = AgentInvokeEvent | AgentOutputEvent | UIWidgetEvent | UIWidgetResponseEvent | ToolActionEvent | ToolResultEvent | WebhookEvent | WebhookHttpResponseEvent;
175
+ export type PluginEvent = AgentInvokeEvent | AgentOutputEvent | AgentOutputDeltaEvent | UIWidgetEvent | UIWidgetResponseEvent | ToolActionEvent | ToolResultEvent | WebhookEvent | WebhookHttpResponseEvent | AgentRunStartEvent | AgentRunEndEvent | AgentRunStoppedEvent | ActiveRunsSnapshotEvent | AgentThreadPreviewEvent | AgentUsageEvent;
97
176
  export type OpenBotEvent = PluginEvent | (BaseEvent & {
98
177
  data?: unknown;
99
178
  });
@@ -113,16 +192,23 @@ export type ShortTermMessage = {
113
192
  toolCallId: string;
114
193
  toolName: string;
115
194
  };
116
- /** Runtime state available on Melony handler contexts. */
195
+ /** Runtime state for an agent turn. */
117
196
  export interface OpenBotState {
118
197
  agentId: string;
119
198
  runId: string;
120
- channelId: string;
199
+ channelId?: string;
121
200
  threadId?: string;
122
201
  agentDetails?: AgentDetails;
123
202
  channelDetails?: ChannelDetails;
124
203
  threadDetails?: ThreadDetails;
125
204
  triggerEvent?: OpenBotEvent;
126
205
  shortTermMessages?: ShortTermMessage[];
206
+ currentUser?: {
207
+ userName?: string;
208
+ };
209
+ /** Active model string (e.g. `openai/gpt-4o-mini`). */
210
+ model?: string;
211
+ /** Persisted tool call IDs waiting for results. */
212
+ pendingToolCallIds?: string[];
127
213
  }
128
214
  //# sourceMappingURL=events.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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"}
package/dist/plugin.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import type { AgentDetails } from './storage.js';
2
2
  import type { Storage } from './storage.js';
3
- import type { PluginFactory } from './runtime.js';
3
+ import type { AgentInvokeEvent, OpenBotEvent, OpenBotState, UIWidgetResponseEvent, WebhookEvent } from './events.js';
4
4
  /** Plugin reference from AGENT.md frontmatter. */
5
5
  export interface PluginRef {
6
6
  id: string;
@@ -20,16 +20,13 @@ export type ConfigSchemaProperty = {
20
20
  minimum?: number;
21
21
  maximum?: number;
22
22
  format?: 'password' | 'url' | 'email';
23
- /** When true, the field may be overridden per `agent:invoke` from the composer. */
24
23
  override?: boolean;
25
- /** Labeled select options (preferred over bare `enum` when present). */
26
24
  options?: Array<{
27
25
  label: string;
28
26
  value: string;
29
27
  description?: string;
30
28
  }>;
31
29
  };
32
- /** JSON-schema-like description of per-plugin config in AGENT.md. */
33
30
  export type ConfigSchema = {
34
31
  type: 'object';
35
32
  properties: {
@@ -37,22 +34,93 @@ export type ConfigSchema = {
37
34
  };
38
35
  required?: string[];
39
36
  };
40
- /** Tool metadata merged across plugins and exposed to runtime plugins. */
37
+ export type ToolExecuteResult = {
38
+ output: string;
39
+ success?: boolean;
40
+ [key: string]: unknown;
41
+ };
42
+ export type ToolExecuteContext = {
43
+ agentId: string;
44
+ channelId?: string;
45
+ threadId?: string;
46
+ runId?: string;
47
+ toolCallId?: string;
48
+ abortSignal?: AbortSignal;
49
+ storage: Storage;
50
+ host: PluginHost;
51
+ publicBaseUrl: string;
52
+ config: Record<string, unknown>;
53
+ state: OpenBotState;
54
+ emit: (event: OpenBotEvent) => Promise<void>;
55
+ };
41
56
  export interface ToolDefinition {
42
57
  description: string;
43
58
  inputSchema: unknown;
59
+ execute?: (args: unknown, ctx: ToolExecuteContext) => Promise<ToolExecuteResult | string> | ToolExecuteResult | string;
60
+ }
61
+ export interface RunAgentHostOptions {
62
+ runId: string;
63
+ agentId: string;
64
+ event: OpenBotEvent;
65
+ persistEvents?: boolean;
66
+ publicBaseUrl?: string;
67
+ onEvent: (event: OpenBotEvent, state?: OpenBotState) => Promise<void>;
68
+ }
69
+ export interface PluginHost {
70
+ runAgent: (options: RunAgentHostOptions) => Promise<void>;
71
+ isCloudSystemAgent: (agentId: string) => boolean;
72
+ isCloudMode: () => boolean;
73
+ parseOpenbotAuthMode: (value: unknown) => 'credits' | 'byok';
74
+ saveConfig: (patch: Record<string, unknown>) => void;
75
+ getBaseDir: () => string;
76
+ resolvePath: (p: string) => string;
77
+ orchestratorAgentId: string;
78
+ openbotPluginId: string;
79
+ defaultCloudAuthMode: 'credits' | 'byok';
80
+ awaitWidgetResponse: (widgetId: string, abortSignal?: AbortSignal) => Promise<{
81
+ actionId: string;
82
+ values?: Record<string, unknown>;
83
+ metadata?: Record<string, unknown>;
84
+ }>;
44
85
  }
45
- /** Context passed to `factory` when the host wires a plugin onto the bus. */
46
86
  export interface PluginContext {
47
87
  agentId: string;
48
88
  agentDetails: AgentDetails;
49
89
  config: Record<string, unknown>;
50
90
  storage: Storage;
51
91
  tools: Record<string, ToolDefinition>;
92
+ publicBaseUrl: string;
93
+ abortSignal?: AbortSignal;
94
+ host: PluginHost;
52
95
  }
96
+ export type WebhookHandlerArgs = {
97
+ event: WebhookEvent;
98
+ context: PluginContext;
99
+ state: OpenBotState;
100
+ };
101
+ export type PluginRunArgs = {
102
+ prompt: string;
103
+ threadId: string | undefined;
104
+ event: AgentInvokeEvent;
105
+ handlerCtx: {
106
+ state: OpenBotState;
107
+ };
108
+ context: PluginContext;
109
+ state: OpenBotState;
110
+ emit: (event: OpenBotEvent) => Promise<void>;
111
+ };
112
+ export type PluginWidgetResponseArgs = {
113
+ event: UIWidgetResponseEvent;
114
+ handlerCtx: {
115
+ state: OpenBotState;
116
+ };
117
+ context: PluginContext;
118
+ state: OpenBotState;
119
+ emit: (event: OpenBotEvent) => Promise<void>;
120
+ };
53
121
  /**
54
122
  * Plugin contract expected by the OpenBot host.
55
- * Roles (runtime, tool, middleware) are defined by which events `factory` handles.
123
+ * A plugin owns `run` (harness / LLM loop), `tools` with `execute`, and/or webhook hooks.
56
124
  */
57
125
  export interface Plugin {
58
126
  id: string;
@@ -60,12 +128,17 @@ export interface Plugin {
60
128
  description: string;
61
129
  image?: string;
62
130
  configSchema?: ConfigSchema;
131
+ /** @deprecated Use `tools`. */
63
132
  toolDefinitions?: Record<string, ToolDefinition>;
64
- factory: (context: PluginContext) => PluginFactory;
133
+ tools?: Record<string, ToolDefinition>;
134
+ run?: (args: PluginRunArgs) => unknown;
135
+ emptyPrompt?: string;
136
+ onWebhook?: (args: WebhookHandlerArgs) => unknown;
137
+ onEvent?: (event: OpenBotEvent, context: PluginContext) => unknown;
138
+ onWidgetResponse?: (args: PluginWidgetResponseArgs) => unknown;
139
+ mapError?: (error: unknown, args: PluginRunArgs) => unknown;
65
140
  }
66
- /** Community plugin module export. The host assigns `id` from the npm package name. */
67
141
  export type PluginModule = Omit<Plugin, 'id'>;
68
- /** Define a plugin with full OpenBot typing. */
69
142
  export declare function definePlugin<T extends PluginModule>(definition: T): T;
70
143
  export declare function definePlugin<T extends Plugin>(definition: T): T;
71
144
  //# sourceMappingURL=plugin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD,kDAAkD;AAClD,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,qEAAqE;AACrE,MAAM,MAAM,sBAAsB,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;AAEjF,6DAA6D;AAC7D,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,sBAAsB,GAAG,OAAO,GAAG,QAAQ,CAAC;IAClD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,sBAAsB,CAAC;KAC9B,CAAC;IACF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,UAAU,GAAG,KAAK,GAAG,OAAO,CAAC;IACtC,mFAAmF;IACnF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,wEAAwE;IACxE,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACzE,CAAC;AAEF,qEAAqE;AACrE,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,EAAE;QACV,CAAC,GAAG,EAAE,MAAM,GAAG,oBAAoB,CAAC;KACrC,CAAC;IACF,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB,CAAC;AAEF,0EAA0E;AAC1E,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,6EAA6E;AAC7E,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,YAAY,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CACvC;AAED;;;GAGG;AACH,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACjD,OAAO,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,aAAa,CAAC;CACpD;AAED,uFAAuF;AACvF,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAE9C,gDAAgD;AAChD,wBAAgB,YAAY,CAAC,CAAC,SAAS,YAAY,EAAE,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC;AACvE,wBAAgB,YAAY,CAAC,CAAC,SAAS,MAAM,EAAE,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AA2EA,MAAM,UAAU,YAAY,CAAkC,UAAa;IACzE,OAAO,UAAU,CAAC;AACpB,CAAC"}
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAmKA,MAAM,UAAU,YAAY,CAAkC,UAAa;IACzE,OAAO,UAAU,CAAC;AACpB,CAAC"}
package/dist/runtime.d.ts CHANGED
@@ -1,9 +1,13 @@
1
- import type { MelonyBuilder, MelonyPlugin, RuntimeContext } from 'melony';
2
1
  import type { OpenBotEvent, OpenBotState } from './events.js';
3
- /** Context passed to plugin event handlers. */
4
- export type PluginHandlerContext = RuntimeContext<OpenBotState, OpenBotEvent>;
5
- /** Fluent builder surface exposed to plugin factories. */
6
- export type PluginBuilder = MelonyBuilder<OpenBotState, OpenBotEvent>;
7
- /** Function returned from `Plugin.factory` to register handlers on the bus. */
8
- export type PluginFactory = MelonyPlugin<OpenBotState, OpenBotEvent>;
2
+ /** Context passed to plugin `run` / widget handlers. `state` is the current agent turn. */
3
+ export type PluginHandlerContext = {
4
+ state: OpenBotState;
5
+ };
6
+ /** @deprecated Host no longer uses a Melony builder. Kept as a no-op alias. */
7
+ export type PluginBuilder = {
8
+ on: (...args: never[]) => void;
9
+ };
10
+ /** @deprecated Plugins no longer return a Melony registrar. */
11
+ export type PluginFactory = (builder: PluginBuilder) => void;
12
+ export type { OpenBotEvent, OpenBotState };
9
13
  //# sourceMappingURL=runtime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAC1E,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE9D,+CAA+C;AAC/C,MAAM,MAAM,oBAAoB,GAAG,cAAc,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;AAE9E,0DAA0D;AAC1D,MAAM,MAAM,aAAa,GAAG,aAAa,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;AAEtE,+EAA+E;AAC/E,MAAM,MAAM,aAAa,GAAG,YAAY,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE9D,2FAA2F;AAC3F,MAAM,MAAM,oBAAoB,GAAG;IACjC,KAAK,EAAE,YAAY,CAAC;CACrB,CAAC;AAEF,+EAA+E;AAC/E,MAAM,MAAM,aAAa,GAAG;IAC1B,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,IAAI,CAAC;CAChC,CAAC;AAEF,+DAA+D;AAC/D,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI,CAAC;AAE7D,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@meetopenbot/plugin-sdk",
3
- "version": "0.5.1",
4
- "description": "Types and helpers for building OpenBot plugins on the event bus.",
3
+ "version": "1.0.0",
4
+ "description": "Types and helpers for building OpenBot plugins.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "types": "./dist/index.d.ts",
@@ -19,7 +19,6 @@
19
19
  "access": "public"
20
20
  },
21
21
  "peerDependencies": {
22
- "melony": "^0.3.7",
23
22
  "zod": "^4.3.5"
24
23
  },
25
24
  "dependencies": {
@@ -28,7 +27,6 @@
28
27
  "ai": "^7.0.29"
29
28
  },
30
29
  "devDependencies": {
31
- "melony": "^0.3.7",
32
30
  "typescript": "^5.0.0",
33
31
  "zod": "^4.3.5",
34
32
  "@types/node": "^20.0.0"