@skelm/opencode 0.3.4 → 0.3.5

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.
@@ -1 +1 @@
1
- {"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../src/backend.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAOV,YAAY,EACb,MAAM,aAAa,CAAA;AAOpB,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAA;AAExD;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,sBAAsB,GAAG,YAAY,CAiFnF;AA2BD;;GAEG;AACH,qBAAa,0BAA2B,SAAQ,KAAK;gBACvC,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,qBAAsB,SAAQ,KAAK;gBAClC,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,mBAAoB,SAAQ,KAAK;gBAChC,OAAO,EAAE,MAAM;CAI5B;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE;IAChD,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACxB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;IACvB,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,GAAG,YAAY,CA+Bf"}
1
+ {"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../src/backend.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAOV,YAAY,EACb,MAAM,aAAa,CAAA;AAOpB,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAA;AAExD;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,sBAAsB,GAAG,YAAY,CAgFnF;AAuCD;;GAEG;AACH,qBAAa,0BAA2B,SAAQ,KAAK;gBACvC,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,qBAAsB,SAAQ,KAAK;gBAClC,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,mBAAoB,SAAQ,KAAK;gBAChC,OAAO,EAAE,MAAM;CAI5B;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE;IAChD,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACxB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;IACvB,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,GAAG,YAAY,CA+Bf"}
package/dist/backend.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { formatSkillBlock } from '@skelm/core';
1
2
  import { OpencodeClientWrapper } from './client.js';
2
3
  import { buildPermissionAuditEntry, mapSkelmPermissionsToOpencode, validatePermissions, } from './permission-mapper.js';
3
4
  /**
@@ -48,11 +49,12 @@ export function createOpencodeBackend(options) {
48
49
  console.warn('Permission denied:', JSON.stringify(auditEntry, null, 2));
49
50
  throw new Error(`Permission denied: ${permissionResult.denied.join(', ')}`);
50
51
  }
51
- // Use the shared client (server started on first call, kept alive)
52
- const onAbort = () => client.cancel();
53
- context.signal.addEventListener('abort', onAbort, { once: true });
52
+ // Load skills and inject into system prompt before forwarding
53
+ const enrichedRequest = await injectSkills(request, context);
54
+ // Signal and timeout are threaded directly into prompt(); no separate
55
+ // cancel() listener needed — the SSE loop handles abort internally.
54
56
  try {
55
- const result = await client.prompt(request, {});
57
+ const result = await client.prompt(enrichedRequest, context.signal, options.timeout, policy);
56
58
  return result;
57
59
  }
58
60
  catch (error) {
@@ -63,16 +65,13 @@ export function createOpencodeBackend(options) {
63
65
  if (error.message.includes('Rate limit')) {
64
66
  throw new BackendRateLimitError(`Opencode rate limit exceeded: ${error.message}`);
65
67
  }
66
- if (error.message.includes('Timeout')) {
67
- throw new BackendTimeoutError(`Opencode request timeout: ${error.message}`);
68
+ if (error.message.includes('timed out')) {
69
+ throw new BackendTimeoutError(error.message);
68
70
  }
69
71
  }
70
72
  throw error;
71
73
  }
72
- finally {
73
- context.signal.removeEventListener('abort', onAbort);
74
- // Do NOT dispose — server stays alive for subsequent calls
75
- }
74
+ // Do NOT dispose — server stays alive for subsequent calls
76
75
  },
77
76
  async dispose() {
78
77
  await client.dispose();
@@ -80,6 +79,20 @@ export function createOpencodeBackend(options) {
80
79
  };
81
80
  return backend;
82
81
  }
82
+ async function injectSkills(req, ctx) {
83
+ if (!req.skills || req.skills.length === 0 || !ctx.loadSkill)
84
+ return req;
85
+ const skillParts = [];
86
+ for (const skillId of req.skills) {
87
+ const skill = await ctx.loadSkill(skillId);
88
+ if (skill !== null)
89
+ skillParts.push(formatSkillBlock(skill));
90
+ }
91
+ if (skillParts.length === 0)
92
+ return req;
93
+ const systemParts = req.system !== undefined ? [req.system, ...skillParts] : skillParts;
94
+ return { ...req, system: systemParts.join('\n\n---\n\n') };
95
+ }
83
96
  /**
84
97
  * Create an empty policy for when no permissions are specified
85
98
  */
@@ -1 +1 @@
1
- {"version":3,"file":"backend.js","sourceRoot":"","sources":["../src/backend.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"backend.js","sourceRoot":"","sources":["../src/backend.ts"],"names":[],"mappings":"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"}
package/dist/client.d.ts CHANGED
@@ -1,27 +1,19 @@
1
- import type { AgentRequest, AgentResponse } from '@skelm/core';
1
+ import type { AgentRequest, AgentResponse, ResolvedPolicy } from '@skelm/core';
2
2
  import type { OpencodeBackendOptions } from './types.js';
3
3
  export declare class OpencodeClientWrapper {
4
4
  private proc;
5
5
  private client;
6
- private baseUrl;
7
- private currentSessionId;
8
6
  private startPromise;
9
- private _cancelled;
10
7
  private readonly options;
11
8
  constructor(options: OpencodeBackendOptions);
12
- /**
13
- * Ensure the opencode server is running. Safe to call concurrently —
14
- * subsequent callers await the same start promise.
15
- */
9
+ /** Ensure the opencode server is running. Safe to call concurrently. */
16
10
  ensureStarted(): Promise<void>;
11
+ /** Alias kept for callers that start the server explicitly before first use. */
12
+ start(): Promise<void>;
17
13
  private _start;
18
14
  private _handleExit;
19
- /** For backward-compat with backend.ts which calls start() explicitly. */
20
- start(): Promise<void>;
21
- prompt(request: AgentRequest, _permissions: unknown): Promise<AgentResponse>;
22
- cancel(): Promise<void>;
23
- /** Stop the opencode server and clean up. Called when the backend is no longer needed. */
15
+ prompt(request: AgentRequest, signal: AbortSignal, timeoutMs?: number, resolvedPolicy?: ResolvedPolicy): Promise<AgentResponse>;
16
+ private _collectFromStream;
24
17
  dispose(): Promise<void>;
25
- getSessionId(): string | null;
26
18
  }
27
19
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC9D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAA;AAIxD,qBAAa,qBAAqB;IAChC,OAAO,CAAC,IAAI,CAA4B;IACxC,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,gBAAgB,CAAsB;IAC9C,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwB;gBAEpC,OAAO,EAAE,sBAAsB;IAI3C;;;OAGG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;YAOtB,MAAM;IA0CpB,OAAO,CAAC,WAAW;IAOnB,0EAA0E;IACpE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,MAAM,CAAC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC;IAwD5E,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAW7B,0FAA0F;IACpF,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAS9B,YAAY,IAAI,MAAM,GAAG,IAAI;CAG9B"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC9E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAA;AAgBxD,qBAAa,qBAAqB;IAChC,OAAO,CAAC,IAAI,CAA4B;IACxC,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwB;gBAEpC,OAAO,EAAE,sBAAsB;IAI3C,wEAAwE;IAClE,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAOpC,gFAAgF;IAC1E,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAId,MAAM;IAqDpB,OAAO,CAAC,WAAW;IAMb,MAAM,CACV,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,WAAW,EACnB,SAAS,SAAU,EACnB,cAAc,CAAC,EAAE,cAAc,GAC9B,OAAO,CAAC,aAAa,CAAC;YAsDX,kBAAkB;IAkE1B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAM/B"}
package/dist/client.js CHANGED
@@ -1,24 +1,22 @@
1
1
  // Opencode HTTP client — spawns `opencode serve --port 0` once per backend
2
- // instance and reuses the process across multiple prompt() calls (session
3
- // per call, server kept alive). Disposed via dispose() when the backend
4
- // is done.
2
+ // instance and reuses the process across multiple prompt() calls (one session
3
+ // per call, server kept alive). Disposed via dispose() when the backend is done.
4
+ //
5
+ // Improvements over the original:
6
+ // #1 — Cleaner spawn: OPENCODE_CONFIG_CONTENT + no dead cancel()/getSessionId()
7
+ // #2 — Model/logLevel injected via OPENCODE_CONFIG_CONTENT at server startup
8
+ // #3 — Non-blocking promptAsync + SSE stream instead of blocking session.prompt()
5
9
  import { spawn } from 'node:child_process'; // @subprocess-ok: spawns opencode serve for HTTP backend
6
10
  import { createOpencodeClient } from '@opencode-ai/sdk';
7
11
  export class OpencodeClientWrapper {
8
12
  proc = null;
9
13
  client = null;
10
- baseUrl = null;
11
- currentSessionId = null;
12
14
  startPromise = null;
13
- _cancelled = false;
14
15
  options;
15
16
  constructor(options) {
16
17
  this.options = options;
17
18
  }
18
- /**
19
- * Ensure the opencode server is running. Safe to call concurrently —
20
- * subsequent callers await the same start promise.
21
- */
19
+ /** Ensure the opencode server is running. Safe to call concurrently. */
22
20
  async ensureStarted() {
23
21
  if (this.client !== null)
24
22
  return;
@@ -27,11 +25,28 @@ export class OpencodeClientWrapper {
27
25
  this.startPromise = this._start();
28
26
  await this.startPromise;
29
27
  }
28
+ /** Alias kept for callers that start the server explicitly before first use. */
29
+ async start() {
30
+ return this.ensureStarted();
31
+ }
30
32
  async _start() {
31
33
  const command = this.options.command ?? 'opencode';
34
+ // (#2) Inject model and logLevel via OPENCODE_CONFIG_CONTENT so opencode
35
+ // uses them as its defaults for every session, without needing per-session
36
+ // body overrides.
37
+ const serverConfig = {};
38
+ if (this.options.model)
39
+ serverConfig.model = this.options.model;
40
+ if (this.options.logLevel && this.options.logLevel !== 'off') {
41
+ const logLevelMap = { debug: 'DEBUG', info: 'INFO', warn: 'WARN', error: 'ERROR' };
42
+ serverConfig.logLevel = logLevelMap[this.options.logLevel];
43
+ }
44
+ if (this.options.serverPermissions) {
45
+ serverConfig.permission = this.options.serverPermissions;
46
+ }
32
47
  return new Promise((resolve, reject) => {
33
48
  const proc = spawn(command, ['serve', '--port', '0'], {
34
- env: { ...process.env },
49
+ env: { ...process.env, OPENCODE_CONFIG_CONTENT: JSON.stringify(serverConfig) },
35
50
  stdio: ['ignore', 'pipe', 'pipe'],
36
51
  });
37
52
  this.proc = proc;
@@ -41,12 +56,10 @@ export class OpencodeClientWrapper {
41
56
  if (resolved)
42
57
  return;
43
58
  buf += chunk.toString();
44
- // stdout: "opencode server listening on http://127.0.0.1:PORT"
45
59
  const m = buf.match(/listening on (https?:\/\/[^\s]+)/);
46
60
  if (m?.[1]) {
47
61
  resolved = true;
48
- this.baseUrl = m[1].trim();
49
- this.client = createOpencodeClient({ baseUrl: this.baseUrl });
62
+ this.client = createOpencodeClient({ baseUrl: m[1].trim() });
50
63
  resolve();
51
64
  }
52
65
  };
@@ -71,82 +84,122 @@ export class OpencodeClientWrapper {
71
84
  });
72
85
  }
73
86
  _handleExit() {
74
- // Server died unexpectedly — reset so next call restarts it
75
87
  this.proc = null;
76
88
  this.client = null;
77
89
  this.startPromise = null;
78
90
  }
79
- /** For backward-compat with backend.ts which calls start() explicitly. */
80
- async start() {
81
- return this.ensureStarted();
82
- }
83
- async prompt(request, _permissions) {
91
+ async prompt(request, signal, timeoutMs = 300_000, resolvedPolicy) {
84
92
  await this.ensureStarted();
85
93
  if (!this.client)
86
94
  throw new Error('opencode serve not ready');
87
95
  const cwd = request.cwd ?? process.cwd();
88
- // Create a new session for this call (sessions are per-conversation)
89
96
  const sessResult = await this.client.session.create({ query: { directory: cwd } });
90
97
  if (!sessResult.data) {
91
98
  throw new Error(`session.create failed: ${JSON.stringify(sessResult.error)}`);
92
99
  }
93
- this.currentSessionId = sessResult.data.id;
94
- const sessionId = this.currentSessionId;
95
- // Build model spec: split "providerID/modelID"
96
- let modelBody = {};
97
- if (this.options.model) {
98
- const slashIdx = this.options.model.indexOf('/');
99
- if (slashIdx > 0) {
100
- modelBody = {
101
- model: {
102
- providerID: this.options.model.slice(0, slashIdx),
103
- modelID: this.options.model.slice(slashIdx + 1),
104
- },
105
- };
100
+ const sessionId = sessResult.data.id;
101
+ // (#3) Subscribe to the global SSE stream BEFORE calling promptAsync so
102
+ // we don't miss events that fire immediately after the session starts.
103
+ const sseAbort = new AbortController();
104
+ const timeoutId = setTimeout(() => sseAbort.abort(new Error(`opencode timed out after ${timeoutMs}ms`)), timeoutMs);
105
+ const onSignalAbort = () => sseAbort.abort(new Error('opencode aborted'));
106
+ signal.addEventListener('abort', onSignalAbort, { once: true });
107
+ try {
108
+ const { stream } = await this.client.event.subscribe({ signal: sseAbort.signal });
109
+ // (#3) Fire promptAsync — returns immediately; response arrives over SSE.
110
+ // Model is already set via OPENCODE_CONFIG_CONTENT (#2), so no per-request body needed.
111
+ const promptResult = await this.client.session.promptAsync({
112
+ path: { id: sessionId },
113
+ body: {
114
+ parts: [{ type: 'text', text: request.prompt }],
115
+ ...(request.system !== undefined && { system: request.system }),
116
+ ...(resolvedPolicy !== undefined && {
117
+ tools: buildOpencodeToolsFromPolicy(resolvedPolicy),
118
+ }),
119
+ },
120
+ });
121
+ if (!promptResult.data) {
122
+ throw new Error(`session.promptAsync failed: ${JSON.stringify(promptResult.error)}`);
106
123
  }
124
+ return await this._collectFromStream(stream, sessionId, signal);
107
125
  }
108
- // session.prompt() returns the full AssistantMessage synchronously
109
- const result = await this.client.session.prompt({
110
- path: { id: sessionId },
111
- body: {
112
- ...modelBody,
113
- parts: [{ type: 'text', text: request.prompt }],
114
- },
115
- });
116
- if (!result.data) {
117
- throw new Error(`session.prompt failed: ${JSON.stringify(result.error)}`);
118
- }
119
- // Extract text parts (skip synthetic/tool parts)
120
- let text = '';
121
- for (const part of result.data.parts) {
122
- if (part.type === 'text' && !part.synthetic && part.text) {
123
- text += part.text;
126
+ finally {
127
+ clearTimeout(timeoutId);
128
+ signal.removeEventListener('abort', onSignalAbort);
129
+ sseAbort.abort(); // close SSE connection
130
+ // Best-effort abort of the session if we're bailing out early
131
+ if (signal.aborted) {
132
+ this.client?.session.abort({ path: { id: sessionId } }).catch(() => { });
124
133
  }
125
134
  }
126
- return { text: text.trim(), stopReason: 'end_turn' };
127
135
  }
128
- async cancel() {
129
- this._cancelled = true;
130
- if (this.client && this.currentSessionId) {
131
- try {
132
- await this.client.session.abort({ path: { id: this.currentSessionId } });
136
+ // (#3) Collect text from SSE events for one session until it goes idle.
137
+ async _collectFromStream(stream, sessionId, signal) {
138
+ // Only collect text parts from assistant messages; track which message IDs are assistant.
139
+ const assistantMessageIds = new Set();
140
+ // Each TextPart is updated incrementally; track the latest full text per part id.
141
+ const textParts = new Map();
142
+ for await (const raw of stream) {
143
+ if (signal.aborted)
144
+ break;
145
+ const event = raw;
146
+ if (event.type === 'session.error') {
147
+ const props = event.properties;
148
+ if (!props.sessionID || props.sessionID === sessionId) {
149
+ throw new Error(`opencode session error: ${JSON.stringify(props.error)}`);
150
+ }
151
+ }
152
+ if (event.type === 'message.updated') {
153
+ const props = event.properties;
154
+ if (props.info.sessionID === sessionId && props.info.role === 'assistant') {
155
+ assistantMessageIds.add(props.info.id);
156
+ }
133
157
  }
134
- catch {
135
- /* best effort */
158
+ if (event.type === 'message.part.updated') {
159
+ const props = event.properties;
160
+ const { part } = props;
161
+ if (part.sessionID === sessionId &&
162
+ assistantMessageIds.has(part.messageID) &&
163
+ part.type === 'text' &&
164
+ !part.synthetic &&
165
+ part.text) {
166
+ textParts.set(part.id, part.text);
167
+ }
168
+ }
169
+ if (event.type === 'session.idle') {
170
+ const props = event.properties;
171
+ if (props.sessionID === sessionId)
172
+ break;
136
173
  }
137
174
  }
175
+ if (signal.aborted)
176
+ throw new Error('opencode agent aborted');
177
+ const text = [...textParts.values()].join('');
178
+ return { text: text.trim(), stopReason: 'end_turn' };
138
179
  }
139
- /** Stop the opencode server and clean up. Called when the backend is no longer needed. */
140
180
  async dispose() {
141
- this._cancelled = true;
142
181
  this.proc?.kill('SIGTERM');
143
182
  this.proc = null;
144
183
  this.client = null;
145
184
  this.startPromise = null;
146
- this.currentSessionId = null;
147
- }
148
- getSessionId() {
149
- return this.currentSessionId;
150
185
  }
151
186
  }
187
+ // Map a skelm ResolvedPolicy to opencode's per-prompt tool allow/deny map.
188
+ // opencode tool names: bash, read, edit, glob, grep, list, webSearch.
189
+ function buildOpencodeToolsFromPolicy(policy) {
190
+ // star = all tools allowed; return empty map to let opencode use its defaults.
191
+ if (policy.allowedTools.star)
192
+ return {};
193
+ const allow = (name) => policy.allowedTools.exact.has(name) ||
194
+ policy.allowedTools.prefixes.some((p) => name.startsWith(p));
195
+ return {
196
+ bash: policy.allowedExecutables.size > 0 || allow('bash'),
197
+ read: policy.fsRead.size > 0 || allow('read'),
198
+ edit: policy.fsWrite.size > 0 || allow('edit'),
199
+ glob: policy.fsRead.size > 0 || allow('glob'),
200
+ grep: policy.fsRead.size > 0 || allow('grep'),
201
+ list: policy.fsRead.size > 0 || allow('list'),
202
+ webSearch: policy.networkEgress !== 'deny' || allow('webSearch'),
203
+ };
204
+ }
152
205
  //# sourceMappingURL=client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -6,6 +6,7 @@
6
6
  */
7
7
  export { createOpencodeBackend, createOpencodeAcpBackend } from './backend.js';
8
8
  export { createOpencodeBackendFromConfig } from './factory.js';
9
+ export type { OpencodeBackendConfig } from './factory.js';
9
10
  export { OpencodeProvider, createOpencodeProvider } from './provider.js';
10
11
  export { OpencodeClientWrapper } from './client.js';
11
12
  export { mapSkelmPermissionsToOpencode, mapOpencodePermissionsToSkelm, validatePermissions, buildPermissionAuditEntry, } from './permission-mapper.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAA;AAC9E,OAAO,EAAE,+BAA+B,EAAE,MAAM,cAAc,CAAA;AAC9D,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AACnD,OAAO,EACL,6BAA6B,EAC7B,6BAA6B,EAC7B,mBAAmB,EACnB,yBAAyB,GAC1B,MAAM,wBAAwB,CAAA;AAE/B,YAAY,EACV,sBAAsB,EACtB,wBAAwB,EACxB,iBAAiB,GAClB,MAAM,YAAY,CAAA;AAEnB,YAAY,EACV,0BAA0B,EAC1B,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,cAAc,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAA;AAC9E,OAAO,EAAE,+BAA+B,EAAE,MAAM,cAAc,CAAA;AAC9D,YAAY,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AACzD,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AACnD,OAAO,EACL,6BAA6B,EAC7B,6BAA6B,EAC7B,mBAAmB,EACnB,yBAAyB,GAC1B,MAAM,wBAAwB,CAAA;AAE/B,YAAY,EACV,sBAAsB,EACtB,wBAAwB,EACxB,iBAAiB,GAClB,MAAM,YAAY,CAAA;AAEnB,YAAY,EACV,0BAA0B,EAC1B,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,cAAc,CAAA"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAA;AAC9E,OAAO,EAAE,+BAA+B,EAAE,MAAM,cAAc,CAAA;AAC9D,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AACnD,OAAO,EACL,6BAA6B,EAC7B,6BAA6B,EAC7B,mBAAmB,EACnB,yBAAyB,GAC1B,MAAM,wBAAwB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAA;AAC9E,OAAO,EAAE,+BAA+B,EAAE,MAAM,cAAc,CAAA;AAE9D,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AACnD,OAAO,EACL,6BAA6B,EAC7B,6BAA6B,EAC7B,mBAAmB,EACnB,yBAAyB,GAC1B,MAAM,wBAAwB,CAAA"}
package/dist/provider.js CHANGED
@@ -93,9 +93,10 @@ export class OpencodeProvider extends ProviderPluginBase {
93
93
  if (!this.initialized) {
94
94
  throw new Error('Provider must be initialized before creating backends');
95
95
  }
96
- const config = {
97
- apiKey: this.config.apiKey ?? process.env.OPENCODE_API_KEY,
98
- };
96
+ const config = {};
97
+ const apiKey = this.config.apiKey ?? process.env.OPENCODE_API_KEY;
98
+ if (apiKey !== undefined)
99
+ config.apiKey = apiKey;
99
100
  if (this.config.apiUrl !== undefined) {
100
101
  config.apiUrl = this.config.apiUrl;
101
102
  }
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -28,6 +28,16 @@ export interface OpencodeBackendOptions {
28
28
  maxRetries?: number;
29
29
  /** Log level */
30
30
  logLevel?: 'debug' | 'info' | 'warn' | 'error' | 'off';
31
+ /**
32
+ * Server-level permission defaults injected via OPENCODE_CONFIG_CONTENT at
33
+ * server startup. These apply to every session on this backend instance.
34
+ * For per-request tool blocking, use the skelm permission layer instead.
35
+ */
36
+ serverPermissions?: {
37
+ bash?: 'allow' | 'ask' | 'deny';
38
+ edit?: 'allow' | 'ask' | 'deny';
39
+ webfetch?: 'allow' | 'ask' | 'deny';
40
+ };
31
41
  }
32
42
  /**
33
43
  * Permission configuration matching opencode's permission system
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,uFAAuF;IACvF,EAAE,CAAC,EAAE,MAAM,CAAA;IAEX,4CAA4C;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd,wEAAwE;IACxE,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf,4DAA4D;IAC5D,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf,6DAA6D;IAC7D,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd,gEAAgE;IAChE,WAAW,CAAC,EAAE,wBAAwB,CAAA;IAEtC,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,CAAA;IAEhB,sCAAsC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd,gCAAgC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB,sCAAsC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAA;IAEhB,6BAA6B;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB,gBAAgB;IAChB,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,CAAA;CACvD;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,IAAI,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,CAAA;IAC/B,IAAI,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,CAAA;IAC/B,IAAI,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,CAAA;IAC/B,IAAI,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,CAAA;IAC/B,IAAI,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,CAAA;IAC/B,IAAI,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,CAAA;IAC/B,IAAI,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,CAAC,CAAA;IAC1E,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,CAAC,CAAA;CACpD;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC7B,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC5B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;CACnB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,uFAAuF;IACvF,EAAE,CAAC,EAAE,MAAM,CAAA;IAEX,4CAA4C;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd,wEAAwE;IACxE,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf,4DAA4D;IAC5D,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf,6DAA6D;IAC7D,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd,gEAAgE;IAChE,WAAW,CAAC,EAAE,wBAAwB,CAAA;IAEtC,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,CAAA;IAEhB,sCAAsC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd,gCAAgC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB,sCAAsC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAA;IAEhB,6BAA6B;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB,gBAAgB;IAChB,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,CAAA;IACtD;;;;OAIG;IACH,iBAAiB,CAAC,EAAE;QAClB,IAAI,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,CAAA;QAC/B,IAAI,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,CAAA;QAC/B,QAAQ,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,CAAA;KACpC,CAAA;CACF;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,IAAI,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,CAAA;IAC/B,IAAI,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,CAAA;IAC/B,IAAI,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,CAAA;IAC/B,IAAI,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,CAAA;IAC/B,IAAI,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,CAAA;IAC/B,IAAI,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,CAAA;IAC/B,IAAI,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,CAAC,CAAA;IAC1E,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,CAAC,CAAA;CACpD;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC7B,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC5B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;CACnB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skelm/opencode",
3
- "version": "0.3.4",
3
+ "version": "0.3.5",
4
4
  "description": "Opencode.ai backend for skelm with full permission enforcement",
5
5
  "license": "MIT",
6
6
  "author": "Scott Glover <scottgl@gmail.com>",
@@ -48,10 +48,10 @@
48
48
  "@opencode-ai/sdk": "^1.14.33"
49
49
  },
50
50
  "peerDependencies": {
51
- "@skelm/core": "^0.3.4"
51
+ "@skelm/core": "^0.3.5"
52
52
  },
53
53
  "devDependencies": {
54
- "@skelm/core": "^0.3.4",
54
+ "@skelm/core": "^0.3.5",
55
55
  "@types/node": "^20.10.0",
56
56
  "typescript": "^5.3.0",
57
57
  "vitest": "^1.0.0"