@getpaseo/server 0.9.2 → 0.10.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 (148) hide show
  1. package/dist/scripts/supervisor.js +51 -21
  2. package/dist/server/server/agent/agent-manager.js +22 -2
  3. package/dist/server/server/agent/agent-prompt.js +12 -0
  4. package/dist/server/server/agent/agent-sdk-types.d.ts +3 -0
  5. package/dist/server/server/agent/mcp-shared.d.ts +5 -1
  6. package/dist/server/server/agent/mcp-shared.js +2 -1
  7. package/dist/server/server/agent/provider-launch-config.d.ts +2 -2
  8. package/dist/server/server/agent/provider-launch-config.js +1 -1
  9. package/dist/server/server/agent/provider-registry.js +2 -2
  10. package/dist/server/server/agent/providers/acp-agent.js +20 -11
  11. package/dist/server/server/agent/providers/claude/agent.d.ts +1 -2
  12. package/dist/server/server/agent/providers/claude/agent.js +10 -9
  13. package/dist/server/server/agent/providers/claude/models.d.ts +1 -1
  14. package/dist/server/server/agent/providers/claude/models.js +1 -5
  15. package/dist/server/server/agent/providers/claude/project-dir.d.ts +1 -0
  16. package/dist/server/server/agent/providers/claude/project-dir.js +5 -1
  17. package/dist/server/server/agent/providers/codex-app-server-agent.d.ts +6 -1
  18. package/dist/server/server/agent/providers/codex-app-server-agent.js +10 -1
  19. package/dist/server/server/agent/providers/generic-acp-agent.js +3 -1
  20. package/dist/server/server/agent/providers/omp/agent.js +23 -6
  21. package/dist/server/server/agent/providers/omp/rpc-types.d.ts +1 -0
  22. package/dist/server/server/agent/providers/omp/rpc-types.js +1 -0
  23. package/dist/server/server/agent/providers/opencode/bridge.d.ts +5 -1
  24. package/dist/server/server/agent/providers/opencode/bridge.js +56 -5
  25. package/dist/server/server/agent/providers/opencode/http-error.d.ts +8 -0
  26. package/dist/server/server/agent/providers/opencode/http-error.js +13 -0
  27. package/dist/server/server/agent/providers/opencode/runtime-client.d.ts +38 -0
  28. package/dist/server/server/agent/providers/opencode/runtime-client.js +131 -0
  29. package/dist/server/server/agent/providers/opencode/runtime-notice.d.ts +3 -0
  30. package/dist/server/server/agent/providers/opencode/runtime-notice.js +47 -0
  31. package/dist/server/server/agent/providers/opencode/server-manager.js +19 -8
  32. package/dist/server/server/agent/providers/opencode/v2/agent.d.ts +36 -0
  33. package/dist/server/server/agent/providers/opencode/v2/agent.js +211 -0
  34. package/dist/server/server/agent/providers/opencode/v2/api.d.ts +18 -0
  35. package/dist/server/server/agent/providers/opencode/v2/api.js +2 -0
  36. package/dist/server/server/agent/providers/opencode/v2/bridge-plugin.bundle.mjs +6693 -0
  37. package/dist/server/server/agent/providers/opencode/v2/capabilities.d.ts +3 -0
  38. package/dist/server/server/agent/providers/opencode/v2/capabilities.js +13 -0
  39. package/dist/server/server/agent/providers/opencode/v2/children.d.ts +20 -0
  40. package/dist/server/server/agent/providers/opencode/v2/children.js +75 -0
  41. package/dist/server/server/agent/providers/opencode/v2/commands.d.ts +4 -0
  42. package/dist/server/server/agent/providers/opencode/v2/commands.js +36 -0
  43. package/dist/server/server/agent/providers/opencode/v2/configuration.d.ts +8 -0
  44. package/dist/server/server/agent/providers/opencode/v2/configuration.js +64 -0
  45. package/dist/server/server/agent/providers/opencode/v2/history.d.ts +4 -0
  46. package/dist/server/server/agent/providers/opencode/v2/history.js +15 -0
  47. package/dist/server/server/agent/providers/opencode/v2/mapping.d.ts +7 -0
  48. package/dist/server/server/agent/providers/opencode/v2/mapping.js +42 -0
  49. package/dist/server/server/agent/providers/opencode/v2/permissions.d.ts +18 -0
  50. package/dist/server/server/agent/providers/opencode/v2/permissions.js +157 -0
  51. package/dist/server/server/agent/providers/opencode/v2/readiness.d.ts +18 -0
  52. package/dist/server/server/agent/providers/opencode/v2/readiness.js +51 -0
  53. package/dist/server/server/agent/providers/opencode/v2/runtime.d.ts +36 -0
  54. package/dist/server/server/agent/providers/opencode/v2/runtime.js +230 -0
  55. package/dist/server/server/agent/providers/opencode/v2/session.d.ts +84 -0
  56. package/dist/server/server/agent/providers/opencode/v2/session.js +468 -0
  57. package/dist/server/server/agent/providers/opencode/v2/structured-output.d.ts +8 -0
  58. package/dist/server/server/agent/providers/opencode/v2/structured-output.js +32 -0
  59. package/dist/server/server/agent/providers/opencode/v2/timeline.d.ts +28 -0
  60. package/dist/server/server/agent/providers/opencode/v2/timeline.js +154 -0
  61. package/dist/server/server/agent/providers/opencode/v2/turns.d.ts +40 -0
  62. package/dist/server/server/agent/providers/opencode/v2/turns.js +226 -0
  63. package/dist/server/server/agent/providers/opencode-agent.d.ts +26 -7
  64. package/dist/server/server/agent/providers/opencode-agent.js +100 -40
  65. package/dist/server/server/agent/providers/pi/agent.d.ts +6 -6
  66. package/dist/server/server/agent/providers/pi/agent.js +114 -165
  67. package/dist/server/server/agent/providers/pi/extensions/child-session.d.ts +4 -0
  68. package/dist/server/server/agent/providers/pi/extensions/child-session.js +59 -0
  69. package/dist/server/server/agent/providers/pi/extensions/contract.d.ts +68 -0
  70. package/dist/server/server/agent/providers/pi/extensions/contract.js +2 -0
  71. package/dist/server/server/agent/providers/pi/extensions/gotgenes-pi-subagents/index.d.ts +3 -0
  72. package/dist/server/server/agent/providers/pi/extensions/gotgenes-pi-subagents/index.js +159 -0
  73. package/dist/server/server/agent/providers/pi/extensions/host.d.ts +28 -0
  74. package/dist/server/server/agent/providers/pi/extensions/host.js +94 -0
  75. package/dist/server/server/agent/providers/pi/extensions/index.d.ts +7 -0
  76. package/dist/server/server/agent/providers/pi/extensions/index.js +6 -0
  77. package/dist/server/server/agent/providers/pi/extensions/pi-ask-user/index.d.ts +3 -0
  78. package/dist/server/server/agent/providers/pi/extensions/pi-ask-user/index.js +138 -0
  79. package/dist/server/server/agent/providers/pi/extensions/pi-example-todo/index.d.ts +3 -0
  80. package/dist/server/server/agent/providers/pi/extensions/pi-example-todo/index.js +38 -0
  81. package/dist/server/server/agent/providers/pi/extensions/pi-goal-x/index.d.ts +3 -0
  82. package/dist/server/server/agent/providers/pi/extensions/pi-goal-x/index.js +63 -0
  83. package/dist/server/server/agent/providers/pi/extensions/pi-mcp-adapter/index.d.ts +3 -0
  84. package/dist/server/server/agent/providers/pi/extensions/pi-mcp-adapter/index.js +48 -0
  85. package/dist/server/server/agent/providers/pi/extensions/pi-subagents/index.d.ts +3 -0
  86. package/dist/server/server/agent/providers/pi/extensions/pi-subagents/index.js +131 -0
  87. package/dist/server/server/agent/providers/pi/extensions/registry.d.ts +2 -0
  88. package/dist/server/server/agent/providers/pi/extensions/registry.js +21 -0
  89. package/dist/server/server/agent/providers/pi/extensions/rpiv-ask-user-question/index.d.ts +3 -0
  90. package/dist/server/server/agent/providers/pi/extensions/rpiv-ask-user-question/index.js +180 -0
  91. package/dist/server/server/agent/providers/pi/extensions/rpiv-todo/index.d.ts +3 -0
  92. package/dist/server/server/agent/providers/pi/extensions/rpiv-todo/index.js +51 -0
  93. package/dist/server/server/agent/providers/pi/extensions/subagent-fixture-test.d.ts +22 -0
  94. package/dist/server/server/agent/providers/pi/extensions/subagent-fixture-test.js +66 -0
  95. package/dist/server/server/agent/providers/pi/extensions/task-fixture-test.d.ts +4 -0
  96. package/dist/server/server/agent/providers/pi/extensions/task-fixture-test.js +79 -0
  97. package/dist/server/server/agent/providers/pi/extensions/tintinweb-pi-subagents/index.d.ts +3 -0
  98. package/dist/server/server/agent/providers/pi/extensions/tintinweb-pi-subagents/index.js +149 -0
  99. package/dist/server/server/agent/providers/pi/history-mapper.d.ts +7 -2
  100. package/dist/server/server/agent/providers/pi/history-mapper.js +78 -35
  101. package/dist/server/server/agent/providers/pi/rpc-types.d.ts +3 -0
  102. package/dist/server/server/agent/providers/pi/test-utils/fake-pi.d.ts +170 -0
  103. package/dist/server/server/agent/providers/pi/test-utils/fake-pi.js +355 -0
  104. package/dist/server/server/agent/providers/pi/tool-call-mapper.d.ts +1 -6
  105. package/dist/server/server/agent/providers/pi/tool-call-mapper.js +1 -97
  106. package/dist/server/server/agent/tools/paseo-tools.js +22 -15
  107. package/dist/server/server/auth.d.ts +1 -2
  108. package/dist/server/server/auth.js +8 -14
  109. package/dist/server/server/bootstrap.js +10 -2
  110. package/dist/server/server/daemon-instance.d.ts +1 -0
  111. package/dist/server/server/daemon-instance.js +1 -0
  112. package/dist/server/server/exports.d.ts +1 -1
  113. package/dist/server/server/exports.js +1 -1
  114. package/dist/server/server/local-credential.d.ts +6 -0
  115. package/dist/server/server/local-credential.js +82 -0
  116. package/dist/server/server/session-admission-auth.d.ts +16 -0
  117. package/dist/server/server/session-admission-auth.js +26 -0
  118. package/dist/server/server/websocket-server.d.ts +6 -1
  119. package/dist/server/server/websocket-server.js +132 -55
  120. package/dist/server/web-ui/_expo/static/js/web/{desktop-attachment-bridge-f41bce08c3c4ac2de0652d20234d19e9.js → desktop-attachment-bridge-9da07adb97f5e0eb726f7762afee43f5.js} +1 -1
  121. package/dist/server/web-ui/_expo/static/js/web/{desktop-attachment-bridge-f41bce08c3c4ac2de0652d20234d19e9.js.br → desktop-attachment-bridge-9da07adb97f5e0eb726f7762afee43f5.js.br} +0 -0
  122. package/dist/server/web-ui/_expo/static/js/web/desktop-attachment-bridge-9da07adb97f5e0eb726f7762afee43f5.js.gz +0 -0
  123. package/dist/server/web-ui/_expo/static/js/web/{desktop-attachment-store-9e271e161480b0d1dd35e58616a37341.js → desktop-attachment-store-d5d3402a752965d3037191484127123b.js} +1 -1
  124. package/dist/server/web-ui/_expo/static/js/web/{desktop-attachment-store-9e271e161480b0d1dd35e58616a37341.js.br → desktop-attachment-store-d5d3402a752965d3037191484127123b.js.br} +0 -0
  125. package/dist/server/web-ui/_expo/static/js/web/desktop-attachment-store-d5d3402a752965d3037191484127123b.js.gz +0 -0
  126. package/dist/server/web-ui/_expo/static/js/web/{index-8868523fc6d311c5da524c067d1cd426.js → index-136fa41d4adb7ec5c6392839cc354136.js} +1580 -1576
  127. package/dist/server/web-ui/_expo/static/js/web/index-136fa41d4adb7ec5c6392839cc354136.js.br +0 -0
  128. package/dist/server/web-ui/_expo/static/js/web/index-136fa41d4adb7ec5c6392839cc354136.js.gz +0 -0
  129. package/dist/server/web-ui/_expo/static/js/web/{indexeddb-attachment-store-369cdb67f5856fd2c72d640df0b7b79e.js → indexeddb-attachment-store-3afc19e43c8152bd3c6d71b3ea8776dc.js} +1 -1
  130. package/dist/server/web-ui/_expo/static/js/web/{indexeddb-attachment-store-369cdb67f5856fd2c72d640df0b7b79e.js.br → indexeddb-attachment-store-3afc19e43c8152bd3c6d71b3ea8776dc.js.br} +0 -0
  131. package/dist/server/web-ui/_expo/static/js/web/indexeddb-attachment-store-3afc19e43c8152bd3c6d71b3ea8776dc.js.gz +0 -0
  132. package/dist/server/web-ui/_expo/static/js/web/{native-file-attachment-store-bcd89f6ce714279a8f4fa0e024f3a610.js → native-file-attachment-store-187a9d5c32188f357dbbf037a0f89073.js} +3 -3
  133. package/dist/server/web-ui/_expo/static/js/web/native-file-attachment-store-187a9d5c32188f357dbbf037a0f89073.js.br +0 -0
  134. package/dist/server/web-ui/_expo/static/js/web/native-file-attachment-store-187a9d5c32188f357dbbf037a0f89073.js.gz +0 -0
  135. package/dist/server/web-ui/index.html +1 -1
  136. package/dist/server/web-ui/index.html.br +0 -0
  137. package/dist/server/web-ui/index.html.gz +0 -0
  138. package/dist/src/server/agent/provider-launch-config.js +1 -1
  139. package/dist/src/server/daemon-instance.js +1 -0
  140. package/dist/src/server/local-credential.js +82 -0
  141. package/package.json +8 -7
  142. package/dist/server/web-ui/_expo/static/js/web/desktop-attachment-bridge-f41bce08c3c4ac2de0652d20234d19e9.js.gz +0 -0
  143. package/dist/server/web-ui/_expo/static/js/web/desktop-attachment-store-9e271e161480b0d1dd35e58616a37341.js.gz +0 -0
  144. package/dist/server/web-ui/_expo/static/js/web/index-8868523fc6d311c5da524c067d1cd426.js.br +0 -0
  145. package/dist/server/web-ui/_expo/static/js/web/index-8868523fc6d311c5da524c067d1cd426.js.gz +0 -0
  146. package/dist/server/web-ui/_expo/static/js/web/indexeddb-attachment-store-369cdb67f5856fd2c72d640df0b7b79e.js.gz +0 -0
  147. package/dist/server/web-ui/_expo/static/js/web/native-file-attachment-store-bcd89f6ce714279a8f4fa0e024f3a610.js.br +0 -0
  148. package/dist/server/web-ui/_expo/static/js/web/native-file-attachment-store-bcd89f6ce714279a8f4fa0e024f3a610.js.gz +0 -0
@@ -0,0 +1,211 @@
1
+ import { OpenCodeV2Session } from "./session.js";
2
+ import { V2_CAPABILITIES } from "./capabilities.js";
3
+ import { features, permissionRules, applyResumeOverrides, requiresDedicatedV2Server, } from "./configuration.js";
4
+ import { commands } from "./commands.js";
5
+ import { waitForLocationReady, awaitPaseoPlugin } from "./readiness.js";
6
+ import { createProviderEnv, } from "../../../provider-launch-config.js";
7
+ import { importSessionFromPersistence } from "../../../provider-session-import.js";
8
+ import { resolveOpenCodeHomeDir } from "../paths.js";
9
+ import { V2Runtime } from "./runtime.js";
10
+ import { modelRef, modesFromV2, modelsFromV2 } from "./mapping.js";
11
+ export class OpenCodeV2AgentClient {
12
+ constructor(options) {
13
+ this.options = options;
14
+ this.provider = "opencode";
15
+ this.connections = new Map();
16
+ this.capabilities = { ...V2_CAPABILITIES, supportsNativePaseoTools: Boolean(options.bridge) };
17
+ this.runtime =
18
+ options.runtime ??
19
+ new V2Runtime({
20
+ ...options,
21
+ decorateEnv: options.bridge ? (env) => options.bridge.decorateV2ServerEnv(env) : undefined,
22
+ });
23
+ }
24
+ async isAvailable() {
25
+ return true;
26
+ }
27
+ async shutdown() {
28
+ await this.runtime.shutdown();
29
+ }
30
+ async fetchCatalog(options, context) {
31
+ const connection = await this.runtime.acquire({
32
+ fresh: options.force,
33
+ signal: context?.signal,
34
+ });
35
+ const location = {
36
+ directory: options.scope === "workspace" ? options.cwd : resolveOpenCodeHomeDir(),
37
+ };
38
+ const request = { signal: context?.signal };
39
+ const activity = (name, operation) => context ? context.runActivity(name, operation) : operation();
40
+ try {
41
+ await activity("plugin.list", () => waitForLocationReady({ client: connection.client, location, signal: request.signal }));
42
+ const [models, agents, providers] = await Promise.all([
43
+ activity("model.list", () => connection.client.model.list({ location }, request)),
44
+ activity("agent.list", () => connection.client.agent.list({ location }, request)),
45
+ activity("provider.list", () => connection.client.provider.list({ location }, request)),
46
+ ]);
47
+ if (!providers.data.length)
48
+ throw new Error("OpenCode has no connected providers. Authenticate using opencode auth login.");
49
+ return { models: modelsFromV2(models.data), modes: modesFromV2(agents.data) };
50
+ }
51
+ finally {
52
+ await connection.release();
53
+ }
54
+ }
55
+ async createSession(config, launch, options) {
56
+ const connection = await this.runtime.acquire(requiresDedicatedV2Server(config, launch) ? { env: launch?.env, dedicated: true } : {});
57
+ try {
58
+ const info = await connection.client.session.create({
59
+ location: { directory: config.cwd },
60
+ title: config.title,
61
+ agent: config.modeId ?? "build",
62
+ model: config.model ? modelRef(config.model, config.thinkingOptionId) : undefined,
63
+ permissions: permissionRules(config),
64
+ });
65
+ return await this.attach(connection, info, config, launch, options?.persistSession !== false);
66
+ }
67
+ catch (error) {
68
+ await connection.release();
69
+ throw error;
70
+ }
71
+ }
72
+ async resumeSession(handle, overrides, launch) {
73
+ const cwd = overrides?.cwd ?? handle.metadata?.cwd;
74
+ if (typeof cwd !== "string")
75
+ throw new Error("OpenCode resume requires the original working directory");
76
+ const config = {
77
+ ...handle.metadata,
78
+ ...overrides,
79
+ provider: "opencode",
80
+ cwd,
81
+ };
82
+ const connection = this.connections.get(handle.nativeHandle ?? handle.sessionId)?.retain() ??
83
+ (await this.runtime.acquire(requiresDedicatedV2Server(config, launch) ? { env: launch?.env, dedicated: true } : {}));
84
+ try {
85
+ const info = await connection.client.session.get({
86
+ sessionID: handle.nativeHandle ?? handle.sessionId,
87
+ });
88
+ await applyResumeOverrides(connection.client, info, overrides);
89
+ return await this.attach(connection, info, config, launch, true);
90
+ }
91
+ catch (error) {
92
+ await connection.release();
93
+ throw error;
94
+ }
95
+ }
96
+ async attach(connection, info, config, launch, persist) {
97
+ const acquire = () => this.runtime.acquire(requiresDedicatedV2Server(config, launch) ? { env: launch?.env, dedicated: true } : {});
98
+ let ownedConnection = connection;
99
+ const unbind = this.options.bridge?.bindSession({
100
+ sessionId: info.id,
101
+ env: launch?.env ?? {},
102
+ tools: launch?.paseoTools,
103
+ });
104
+ const bound = new Map();
105
+ const bindChild = (childId) => {
106
+ this.connections.set(childId, ownedConnection);
107
+ if (bound.has(childId))
108
+ return;
109
+ const childUnbind = this.options.bridge?.bindSession({
110
+ sessionId: childId,
111
+ env: launch?.env ?? {},
112
+ tools: launch?.paseoTools,
113
+ });
114
+ if (childUnbind)
115
+ bound.set(childId, childUnbind);
116
+ };
117
+ this.connections.set(info.id, connection);
118
+ const releaseBindings = () => {
119
+ unbind?.();
120
+ for (const cleanup of bound.values())
121
+ cleanup();
122
+ for (const [id, owner] of this.connections)
123
+ if (owner === ownedConnection)
124
+ this.connections.delete(id);
125
+ };
126
+ const moved = (next) => {
127
+ for (const [id, owner] of this.connections)
128
+ if (owner === ownedConnection)
129
+ this.connections.set(id, next);
130
+ ownedConnection = next;
131
+ };
132
+ const session = new OpenCodeV2Session(connection, info, config, this.options.logger, persist, Boolean(this.options.bridge), releaseBindings, bindChild, acquire, moved);
133
+ try {
134
+ if (this.options.bridge) {
135
+ const location = { directory: config.cwd };
136
+ await awaitPaseoPlugin({ client: connection.client, location });
137
+ }
138
+ await session.initialize(launch?.env
139
+ ? createProviderEnv({ runtimeSettings: this.options.settings, overlays: [launch.env] })
140
+ : undefined);
141
+ return session;
142
+ }
143
+ catch (error) {
144
+ await session.close();
145
+ throw error;
146
+ }
147
+ }
148
+ async listFeatures(config) {
149
+ return features(config);
150
+ }
151
+ async listCommands(config) {
152
+ const connection = await this.runtime.acquire();
153
+ try {
154
+ return await commands(connection.client, config.cwd);
155
+ }
156
+ finally {
157
+ await connection.release();
158
+ }
159
+ }
160
+ async listImportableSessions(options = {}) {
161
+ const connection = await this.runtime.acquire();
162
+ try {
163
+ const sessions = [];
164
+ let cursor;
165
+ const scanLimit = Math.min(options.scanLimit ?? 100, 500);
166
+ do {
167
+ const page = await connection.client.session.list({
168
+ ...(cursor ? { cursor } : { directory: options.cwd, search: options.query }),
169
+ limit: Math.min(50, scanLimit - sessions.length),
170
+ });
171
+ sessions.push(...page.data);
172
+ cursor = page.cursor.next ?? undefined;
173
+ } while (cursor && sessions.length < scanLimit);
174
+ return sessions
175
+ .filter((info) => !info.parentID && !info.time.archived)
176
+ .slice(0, options.limit ?? 50)
177
+ .map((info) => ({
178
+ providerHandleId: info.id,
179
+ cwd: info.location.directory,
180
+ title: info.title ?? null,
181
+ firstPromptPreview: null,
182
+ lastPromptPreview: null,
183
+ lastActivityAt: new Date(info.time.updated),
184
+ }));
185
+ }
186
+ finally {
187
+ await connection.release();
188
+ }
189
+ }
190
+ async importSession(input, context) {
191
+ const connection = await this.runtime.acquire();
192
+ try {
193
+ const info = await connection.client.session.get({ sessionID: input.providerHandleId });
194
+ return await importSessionFromPersistence({
195
+ provider: "opencode",
196
+ request: input,
197
+ context,
198
+ resumeSession: this.resumeSession.bind(this),
199
+ config: {
200
+ title: info.title,
201
+ modeId: info.agent,
202
+ model: info.model ? `${info.model.providerID}/${info.model.id}` : undefined,
203
+ },
204
+ });
205
+ }
206
+ finally {
207
+ await connection.release();
208
+ }
209
+ }
210
+ }
211
+ //# sourceMappingURL=agent.js.map
@@ -0,0 +1,18 @@
1
+ import type { OpenCodeClient } from "@opencode/client";
2
+ export interface V2Api {
3
+ server: OpenCodeClient["server"];
4
+ session: Pick<OpenCodeClient["session"], "create" | "get" | "list" | "active" | "remove" | "switchAgent" | "switchModel" | "environment" | "instructions" | "prompt" | "command" | "compact" | "wait" | "interrupt" | "revert" | "log"> & {
5
+ form: Pick<OpenCodeClient["session"]["form"], "list" | "reply" | "cancel">;
6
+ };
7
+ plugin: Pick<OpenCodeClient["plugin"], "list">;
8
+ model: OpenCodeClient["model"];
9
+ provider: Pick<OpenCodeClient["provider"], "list">;
10
+ agent: Pick<OpenCodeClient["agent"], "list">;
11
+ command: OpenCodeClient["command"];
12
+ skill: OpenCodeClient["skill"];
13
+ message: OpenCodeClient["message"];
14
+ mcp: Pick<OpenCodeClient["mcp"], "add" | "list">;
15
+ permission: Pick<OpenCodeClient["permission"], "list" | "reply">;
16
+ event: OpenCodeClient["event"];
17
+ }
18
+ //# sourceMappingURL=api.d.ts.map
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=api.js.map