@paperclipai/plugin-sdk 2026.3.17-canary.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +888 -0
  3. package/dist/bundlers.d.ts +57 -0
  4. package/dist/bundlers.d.ts.map +1 -0
  5. package/dist/bundlers.js +105 -0
  6. package/dist/bundlers.js.map +1 -0
  7. package/dist/define-plugin.d.ts +218 -0
  8. package/dist/define-plugin.d.ts.map +1 -0
  9. package/dist/define-plugin.js +85 -0
  10. package/dist/define-plugin.js.map +1 -0
  11. package/dist/dev-cli.d.ts +3 -0
  12. package/dist/dev-cli.d.ts.map +1 -0
  13. package/dist/dev-cli.js +49 -0
  14. package/dist/dev-cli.js.map +1 -0
  15. package/dist/dev-server.d.ts +34 -0
  16. package/dist/dev-server.d.ts.map +1 -0
  17. package/dist/dev-server.js +194 -0
  18. package/dist/dev-server.js.map +1 -0
  19. package/dist/host-client-factory.d.ts +229 -0
  20. package/dist/host-client-factory.d.ts.map +1 -0
  21. package/dist/host-client-factory.js +353 -0
  22. package/dist/host-client-factory.js.map +1 -0
  23. package/dist/index.d.ts +84 -0
  24. package/dist/index.d.ts.map +1 -0
  25. package/dist/index.js +84 -0
  26. package/dist/index.js.map +1 -0
  27. package/dist/protocol.d.ts +881 -0
  28. package/dist/protocol.d.ts.map +1 -0
  29. package/dist/protocol.js +297 -0
  30. package/dist/protocol.js.map +1 -0
  31. package/dist/testing.d.ts +63 -0
  32. package/dist/testing.d.ts.map +1 -0
  33. package/dist/testing.js +700 -0
  34. package/dist/testing.js.map +1 -0
  35. package/dist/types.d.ts +982 -0
  36. package/dist/types.d.ts.map +1 -0
  37. package/dist/types.js +12 -0
  38. package/dist/types.js.map +1 -0
  39. package/dist/ui/components.d.ts +257 -0
  40. package/dist/ui/components.d.ts.map +1 -0
  41. package/dist/ui/components.js +97 -0
  42. package/dist/ui/components.js.map +1 -0
  43. package/dist/ui/hooks.d.ts +120 -0
  44. package/dist/ui/hooks.d.ts.map +1 -0
  45. package/dist/ui/hooks.js +148 -0
  46. package/dist/ui/hooks.js.map +1 -0
  47. package/dist/ui/index.d.ts +50 -0
  48. package/dist/ui/index.d.ts.map +1 -0
  49. package/dist/ui/index.js +48 -0
  50. package/dist/ui/index.js.map +1 -0
  51. package/dist/ui/runtime.d.ts +3 -0
  52. package/dist/ui/runtime.d.ts.map +1 -0
  53. package/dist/ui/runtime.js +30 -0
  54. package/dist/ui/runtime.js.map +1 -0
  55. package/dist/ui/types.d.ts +308 -0
  56. package/dist/ui/types.d.ts.map +1 -0
  57. package/dist/ui/types.js +17 -0
  58. package/dist/ui/types.js.map +1 -0
  59. package/dist/worker-rpc-host.d.ts +127 -0
  60. package/dist/worker-rpc-host.d.ts.map +1 -0
  61. package/dist/worker-rpc-host.js +941 -0
  62. package/dist/worker-rpc-host.js.map +1 -0
  63. package/package.json +88 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,297 @@
1
+ /**
2
+ * JSON-RPC 2.0 message types and protocol helpers for the host ↔ worker IPC
3
+ * channel.
4
+ *
5
+ * The Paperclip plugin runtime uses JSON-RPC 2.0 over stdio to communicate
6
+ * between the host process and each plugin worker process. This module defines:
7
+ *
8
+ * - Core JSON-RPC 2.0 envelope types (request, response, notification, error)
9
+ * - Standard and plugin-specific error codes
10
+ * - Typed method maps for host→worker and worker→host calls
11
+ * - Helper functions for creating well-formed messages
12
+ *
13
+ * @see PLUGIN_SPEC.md §12.1 — Process Model
14
+ * @see PLUGIN_SPEC.md §13 — Host-Worker Protocol
15
+ * @see https://www.jsonrpc.org/specification
16
+ */
17
+ // ---------------------------------------------------------------------------
18
+ // JSON-RPC 2.0 — Core Protocol Types
19
+ // ---------------------------------------------------------------------------
20
+ /** The JSON-RPC protocol version. Always `"2.0"`. */
21
+ export const JSONRPC_VERSION = "2.0";
22
+ // ---------------------------------------------------------------------------
23
+ // Error Codes
24
+ // ---------------------------------------------------------------------------
25
+ /**
26
+ * Standard JSON-RPC 2.0 error codes.
27
+ *
28
+ * @see https://www.jsonrpc.org/specification#error_object
29
+ */
30
+ export const JSONRPC_ERROR_CODES = {
31
+ /** Invalid JSON was received by the server. */
32
+ PARSE_ERROR: -32700,
33
+ /** The JSON sent is not a valid Request object. */
34
+ INVALID_REQUEST: -32600,
35
+ /** The method does not exist or is not available. */
36
+ METHOD_NOT_FOUND: -32601,
37
+ /** Invalid method parameter(s). */
38
+ INVALID_PARAMS: -32602,
39
+ /** Internal JSON-RPC error. */
40
+ INTERNAL_ERROR: -32603,
41
+ };
42
+ /**
43
+ * Paperclip plugin-specific error codes.
44
+ *
45
+ * These live in the JSON-RPC "server error" reserved range (-32000 to -32099)
46
+ * as specified by JSON-RPC 2.0 for implementation-defined server errors.
47
+ *
48
+ * @see PLUGIN_SPEC.md §19.7 — Error Propagation Through The Bridge
49
+ */
50
+ export const PLUGIN_RPC_ERROR_CODES = {
51
+ /** The worker process is not running or not reachable. */
52
+ WORKER_UNAVAILABLE: -32000,
53
+ /** The plugin does not have the required capability for this operation. */
54
+ CAPABILITY_DENIED: -32001,
55
+ /** The worker reported an unhandled error during method execution. */
56
+ WORKER_ERROR: -32002,
57
+ /** The method call timed out waiting for the worker response. */
58
+ TIMEOUT: -32003,
59
+ /** The worker does not implement the requested optional method. */
60
+ METHOD_NOT_IMPLEMENTED: -32004,
61
+ /** A catch-all for errors that do not fit other categories. */
62
+ UNKNOWN: -32099,
63
+ };
64
+ /** Required methods the worker MUST implement. */
65
+ export const HOST_TO_WORKER_REQUIRED_METHODS = [
66
+ "initialize",
67
+ "health",
68
+ "shutdown",
69
+ ];
70
+ /** Optional methods the worker MAY implement. */
71
+ export const HOST_TO_WORKER_OPTIONAL_METHODS = [
72
+ "validateConfig",
73
+ "configChanged",
74
+ "onEvent",
75
+ "runJob",
76
+ "handleWebhook",
77
+ "getData",
78
+ "performAction",
79
+ "executeTool",
80
+ ];
81
+ // ---------------------------------------------------------------------------
82
+ // Message Factory Functions
83
+ // ---------------------------------------------------------------------------
84
+ /** Counter for generating unique request IDs when no explicit ID is provided. */
85
+ let _nextId = 1;
86
+ /** Wrap around before reaching Number.MAX_SAFE_INTEGER to prevent precision loss. */
87
+ const MAX_SAFE_RPC_ID = Number.MAX_SAFE_INTEGER - 1;
88
+ /**
89
+ * Create a JSON-RPC 2.0 request message.
90
+ *
91
+ * @param method - The RPC method name
92
+ * @param params - Structured parameters
93
+ * @param id - Optional explicit request ID (auto-generated if omitted)
94
+ */
95
+ export function createRequest(method, params, id) {
96
+ if (_nextId >= MAX_SAFE_RPC_ID) {
97
+ _nextId = 1;
98
+ }
99
+ return {
100
+ jsonrpc: JSONRPC_VERSION,
101
+ id: id ?? _nextId++,
102
+ method,
103
+ params,
104
+ };
105
+ }
106
+ /**
107
+ * Create a JSON-RPC 2.0 success response.
108
+ *
109
+ * @param id - The request ID being responded to
110
+ * @param result - The result value
111
+ */
112
+ export function createSuccessResponse(id, result) {
113
+ return {
114
+ jsonrpc: JSONRPC_VERSION,
115
+ id,
116
+ result,
117
+ };
118
+ }
119
+ /**
120
+ * Create a JSON-RPC 2.0 error response.
121
+ *
122
+ * @param id - The request ID being responded to (null if the request ID could not be determined)
123
+ * @param code - Machine-readable error code
124
+ * @param message - Human-readable error message
125
+ * @param data - Optional structured error data
126
+ */
127
+ export function createErrorResponse(id, code, message, data) {
128
+ const response = {
129
+ jsonrpc: JSONRPC_VERSION,
130
+ id,
131
+ error: data !== undefined
132
+ ? { code, message, data }
133
+ : { code, message },
134
+ };
135
+ return response;
136
+ }
137
+ /**
138
+ * Create a JSON-RPC 2.0 notification (fire-and-forget, no response expected).
139
+ *
140
+ * @param method - The notification method name
141
+ * @param params - Structured parameters
142
+ */
143
+ export function createNotification(method, params) {
144
+ return {
145
+ jsonrpc: JSONRPC_VERSION,
146
+ method,
147
+ params,
148
+ };
149
+ }
150
+ // ---------------------------------------------------------------------------
151
+ // Type Guards
152
+ // ---------------------------------------------------------------------------
153
+ /**
154
+ * Check whether a value is a well-formed JSON-RPC 2.0 request.
155
+ *
156
+ * A request has `jsonrpc: "2.0"`, a string `method`, and an `id`.
157
+ */
158
+ export function isJsonRpcRequest(value) {
159
+ if (typeof value !== "object" || value === null)
160
+ return false;
161
+ const obj = value;
162
+ return (obj.jsonrpc === JSONRPC_VERSION &&
163
+ typeof obj.method === "string" &&
164
+ "id" in obj &&
165
+ obj.id !== undefined &&
166
+ obj.id !== null);
167
+ }
168
+ /**
169
+ * Check whether a value is a well-formed JSON-RPC 2.0 notification.
170
+ *
171
+ * A notification has `jsonrpc: "2.0"`, a string `method`, but no `id`.
172
+ */
173
+ export function isJsonRpcNotification(value) {
174
+ if (typeof value !== "object" || value === null)
175
+ return false;
176
+ const obj = value;
177
+ return (obj.jsonrpc === JSONRPC_VERSION &&
178
+ typeof obj.method === "string" &&
179
+ !("id" in obj));
180
+ }
181
+ /**
182
+ * Check whether a value is a well-formed JSON-RPC 2.0 response (success or error).
183
+ */
184
+ export function isJsonRpcResponse(value) {
185
+ if (typeof value !== "object" || value === null)
186
+ return false;
187
+ const obj = value;
188
+ return (obj.jsonrpc === JSONRPC_VERSION &&
189
+ "id" in obj &&
190
+ ("result" in obj || "error" in obj));
191
+ }
192
+ /**
193
+ * Check whether a JSON-RPC response is a success response.
194
+ */
195
+ export function isJsonRpcSuccessResponse(response) {
196
+ return "result" in response && !("error" in response && response.error !== undefined);
197
+ }
198
+ /**
199
+ * Check whether a JSON-RPC response is an error response.
200
+ */
201
+ export function isJsonRpcErrorResponse(response) {
202
+ return "error" in response && response.error !== undefined;
203
+ }
204
+ // ---------------------------------------------------------------------------
205
+ // Serialization Helpers
206
+ // ---------------------------------------------------------------------------
207
+ /**
208
+ * Line delimiter for JSON-RPC messages over stdio.
209
+ *
210
+ * Each message is a single line of JSON terminated by a newline character.
211
+ * This follows the newline-delimited JSON (NDJSON) convention.
212
+ */
213
+ export const MESSAGE_DELIMITER = "\n";
214
+ /**
215
+ * Serialize a JSON-RPC message to a newline-delimited string for transmission
216
+ * over stdio.
217
+ *
218
+ * @param message - Any JSON-RPC message (request, response, or notification)
219
+ * @returns The JSON string terminated with a newline
220
+ */
221
+ export function serializeMessage(message) {
222
+ return JSON.stringify(message) + MESSAGE_DELIMITER;
223
+ }
224
+ /**
225
+ * Parse a JSON string into a JSON-RPC message.
226
+ *
227
+ * Returns the parsed message or throws a `JsonRpcParseError` if the input
228
+ * is not valid JSON or does not conform to the JSON-RPC 2.0 structure.
229
+ *
230
+ * @param line - A single line of JSON text (with or without trailing newline)
231
+ * @returns The parsed JSON-RPC message
232
+ * @throws {JsonRpcParseError} If parsing fails
233
+ */
234
+ export function parseMessage(line) {
235
+ const trimmed = line.trim();
236
+ if (trimmed.length === 0) {
237
+ throw new JsonRpcParseError("Empty message");
238
+ }
239
+ let parsed;
240
+ try {
241
+ parsed = JSON.parse(trimmed);
242
+ }
243
+ catch {
244
+ throw new JsonRpcParseError(`Invalid JSON: ${trimmed.slice(0, 200)}`);
245
+ }
246
+ if (typeof parsed !== "object" || parsed === null) {
247
+ throw new JsonRpcParseError("Message must be a JSON object");
248
+ }
249
+ const obj = parsed;
250
+ if (obj.jsonrpc !== JSONRPC_VERSION) {
251
+ throw new JsonRpcParseError(`Invalid or missing jsonrpc version (expected "${JSONRPC_VERSION}", got ${JSON.stringify(obj.jsonrpc)})`);
252
+ }
253
+ // It's a valid JSON-RPC 2.0 envelope — return as-is and let the caller
254
+ // use the type guards for more specific classification.
255
+ return parsed;
256
+ }
257
+ // ---------------------------------------------------------------------------
258
+ // Error Classes
259
+ // ---------------------------------------------------------------------------
260
+ /**
261
+ * Error thrown when a JSON-RPC message cannot be parsed.
262
+ */
263
+ export class JsonRpcParseError extends Error {
264
+ name = "JsonRpcParseError";
265
+ constructor(message) {
266
+ super(message);
267
+ }
268
+ }
269
+ /**
270
+ * Error thrown when a JSON-RPC call fails with a structured error response.
271
+ *
272
+ * Captures the full `JsonRpcError` so callers can inspect the code and data.
273
+ */
274
+ export class JsonRpcCallError extends Error {
275
+ name = "JsonRpcCallError";
276
+ /** The JSON-RPC error code. */
277
+ code;
278
+ /** Optional structured error data from the response. */
279
+ data;
280
+ constructor(error) {
281
+ super(error.message);
282
+ this.code = error.code;
283
+ this.data = error.data;
284
+ }
285
+ }
286
+ // ---------------------------------------------------------------------------
287
+ // Reset helper (testing only)
288
+ // ---------------------------------------------------------------------------
289
+ /**
290
+ * Reset the internal request ID counter. **For testing only.**
291
+ *
292
+ * @internal
293
+ */
294
+ export function _resetIdCounter() {
295
+ _nextId = 1;
296
+ }
297
+ //# sourceMappingURL=protocol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ import type { PaperclipPluginManifestV1, PluginCapability, PluginEventType, Company, Project, Issue, IssueComment, Agent, Goal } from "@paperclipai/shared";
2
+ import type { PluginContext, PluginJobContext, PluginEvent, ScopeKey, ToolResult, ToolRunContext, AgentSessionEvent } from "./types.js";
3
+ export interface TestHarnessOptions {
4
+ /** Plugin manifest used to seed capability checks and metadata. */
5
+ manifest: PaperclipPluginManifestV1;
6
+ /** Optional capability override. Defaults to `manifest.capabilities`. */
7
+ capabilities?: PluginCapability[];
8
+ /** Initial config returned by `ctx.config.get()`. */
9
+ config?: Record<string, unknown>;
10
+ }
11
+ export interface TestHarnessLogEntry {
12
+ level: "info" | "warn" | "error" | "debug";
13
+ message: string;
14
+ meta?: Record<string, unknown>;
15
+ }
16
+ export interface TestHarness {
17
+ /** Fully-typed in-memory plugin context passed to `plugin.setup(ctx)`. */
18
+ ctx: PluginContext;
19
+ /** Seed host entities for `ctx.companies/projects/issues/agents/goals` reads. */
20
+ seed(input: {
21
+ companies?: Company[];
22
+ projects?: Project[];
23
+ issues?: Issue[];
24
+ issueComments?: IssueComment[];
25
+ agents?: Agent[];
26
+ goals?: Goal[];
27
+ }): void;
28
+ setConfig(config: Record<string, unknown>): void;
29
+ /** Dispatch a host or plugin event to registered handlers. */
30
+ emit(eventType: PluginEventType | `plugin.${string}`, payload: unknown, base?: Partial<PluginEvent>): Promise<void>;
31
+ /** Execute a previously-registered scheduled job handler. */
32
+ runJob(jobKey: string, partial?: Partial<PluginJobContext>): Promise<void>;
33
+ /** Invoke a `ctx.data.register(...)` handler by key. */
34
+ getData<T = unknown>(key: string, params?: Record<string, unknown>): Promise<T>;
35
+ /** Invoke a `ctx.actions.register(...)` handler by key. */
36
+ performAction<T = unknown>(key: string, params?: Record<string, unknown>): Promise<T>;
37
+ /** Execute a registered tool handler via `ctx.tools.execute(...)`. */
38
+ executeTool<T = ToolResult>(name: string, params: unknown, runCtx?: Partial<ToolRunContext>): Promise<T>;
39
+ /** Read raw in-memory state for assertions. */
40
+ getState(input: ScopeKey): unknown;
41
+ /** Simulate a streaming event arriving for an active session. */
42
+ simulateSessionEvent(sessionId: string, event: Omit<AgentSessionEvent, "sessionId">): void;
43
+ logs: TestHarnessLogEntry[];
44
+ activity: Array<{
45
+ message: string;
46
+ entityType?: string;
47
+ entityId?: string;
48
+ metadata?: Record<string, unknown>;
49
+ }>;
50
+ metrics: Array<{
51
+ name: string;
52
+ value: number;
53
+ tags?: Record<string, string>;
54
+ }>;
55
+ }
56
+ /**
57
+ * Create an in-memory host harness for plugin worker tests.
58
+ *
59
+ * The harness enforces declared capabilities and simulates host APIs, so tests
60
+ * can validate plugin behavior without spinning up the Paperclip server runtime.
61
+ */
62
+ export declare function createTestHarness(options: TestHarnessOptions): TestHarness;
63
+ //# sourceMappingURL=testing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"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"}