@skelm/opencode 0.3.6 → 0.3.8

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
@@ -18,36 +18,58 @@ You also need an Opencode runtime — the package speaks to a running Opencode s
18
18
 
19
19
  ## Quick Start
20
20
 
21
- ```ts
22
- import { agent, pipeline } from 'skelm'
23
- import { createOpencodeBackend } from '@skelm/opencode'
21
+ Register the backend in `skelm.config.ts`:
24
22
 
25
- const opencode = createOpencodeBackend({
26
- serverUrl: 'http://127.0.0.1:4096',
27
- // model, system prompt, tool allowlist, etc.
23
+ ```ts
24
+ // skelm.config.ts
25
+ import { defineConfig } from 'skelm'
26
+ import { createOpencodeBackendFromConfig } from '@skelm/opencode'
27
+
28
+ export default defineConfig({
29
+ backends: { agent: 'opencode' },
30
+ instances: [
31
+ createOpencodeBackendFromConfig({
32
+ id: 'opencode',
33
+ agent: 'build', // 'build', 'plan', or a custom opencode agent id
34
+ apiKey: { secret: 'OPENCODE_API_KEY' },
35
+ }),
36
+ ],
28
37
  })
38
+ ```
39
+
40
+ A workflow that applies a fix to a codebase:
41
+
42
+ ```ts
43
+ // workflows/fix-bug.workflow.ts
44
+ import { agent, pipeline } from 'skelm'
45
+ import { z } from 'zod'
29
46
 
30
47
  export default pipeline({
31
48
  id: 'fix-bug',
49
+ input: z.object({ description: z.string() }),
50
+ output: z.object({ summary: z.string() }),
32
51
  steps: [
33
52
  agent({
34
53
  id: 'patch',
35
- backend: opencode,
36
- agentDef: './agents/coder',
54
+ backend: 'opencode',
55
+ prompt: (ctx) => `Fix the following bug and return a JSON summary {summary}:\n${ctx.input.description}`,
37
56
  permissions: {
38
- allowedTools: ['edit', 'bash'],
39
- fsRead: ['./src'],
40
- fsWrite: ['./src'],
41
- execAllowlist: ['npm', 'pnpm', 'tsc'],
42
- networkEgress: { allowHosts: ['registry.npmjs.org'] },
57
+ allowedTools: [],
58
+ allowedExecutables: ['npm', 'pnpm', 'tsc'],
59
+ allowedMcpServers: [],
60
+ allowedSkills: [],
61
+ fsRead: ['./src'],
62
+ fsWrite: ['./src'],
63
+ networkEgress: { allowHosts: ['registry.npmjs.org'] },
43
64
  },
65
+ output: z.object({ summary: z.string() }),
44
66
  maxTurns: 12,
45
67
  }),
46
68
  ],
47
69
  })
48
70
  ```
49
71
 
50
- For the gateway-managed flavor that supervises a long-running Opencode server, use `createOpencodeBackendFromConfig` and let `@skelm/gateway` own the lifecycle.
72
+ `createOpencodeBackendFromConfig` lets `@skelm/gateway` supervise the Opencode server lifecycle. For a short-lived instance, use `createOpencodeBackend` and pass your own server URL.
51
73
 
52
74
  ## What's exported
53
75
 
@@ -1 +1 @@
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"}
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,CAsFnF;AAwCD;;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,4 +1,4 @@
1
- import { formatSkillBlock } from '@skelm/core';
1
+ import { loadSkillBodies } from '@skelm/core';
2
2
  import { OpencodeClientWrapper } from './client.js';
3
3
  import { buildPermissionAuditEntry, mapSkelmPermissionsToOpencode, validatePermissions, } from './permission-mapper.js';
4
4
  /**
@@ -54,7 +54,7 @@ export function createOpencodeBackend(options) {
54
54
  // Signal and timeout are threaded directly into prompt(); no separate
55
55
  // cancel() listener needed — the SSE loop handles abort internally.
56
56
  try {
57
- const result = await client.prompt(enrichedRequest, context.signal, options.timeout, policy);
57
+ const result = await client.prompt(enrichedRequest, context.signal, options.timeout, policy, context.onPartial);
58
58
  return result;
59
59
  }
60
60
  catch (error) {
@@ -80,17 +80,18 @@ export function createOpencodeBackend(options) {
80
80
  return backend;
81
81
  }
82
82
  async function injectSkills(req, ctx) {
83
- if (!req.skills || req.skills.length === 0 || !ctx.loadSkill)
83
+ const prefixParts = [];
84
+ if (req.agentDef?.soul !== undefined)
85
+ prefixParts.push(req.agentDef.soul);
86
+ if (req.agentDef !== undefined)
87
+ prefixParts.push(req.agentDef.instructions);
88
+ const skillParts = await loadSkillBodies(req, ctx);
89
+ if (prefixParts.length === 0 && skillParts.length === 0)
84
90
  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;
91
+ const systemParts = [...prefixParts];
92
+ if (req.system !== undefined)
93
+ systemParts.push(req.system);
94
+ systemParts.push(...skillParts);
94
95
  return { ...req, system: systemParts.join('\n\n---\n\n') };
95
96
  }
96
97
  /**
@@ -111,6 +112,7 @@ function createEmptyPolicy() {
111
112
  allowedExecutables: new Set(),
112
113
  allowedMcpServers: new Set(),
113
114
  allowedSkills: new Set(),
115
+ allowedSecrets: new Set(),
114
116
  networkEgress: 'deny',
115
117
  fsRead: new Set(),
116
118
  fsWrite: new Set(),
@@ -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":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAU7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AACnD,OAAO,EACL,yBAAyB,EACzB,6BAA6B,EAC7B,mBAAmB,GACpB,MAAM,wBAAwB,CAAA;AAG/B;;;;;;;;;GASG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAA+B;IACnE,MAAM,YAAY,GAAwB;QACxC,MAAM,EAAE,IAAI;QACZ,SAAS,EAAE,IAAI;QACf,gBAAgB,EAAE,IAAI;QACtB,GAAG,EAAE,IAAI;QACT,MAAM,EAAE,IAAI;QACZ,cAAc,EAAE,OAAO,CAAC,KAAK,KAAK,SAAS;QAC3C,eAAe,EAAE,QAAQ;KAC1B,CAAA;IAED,wEAAwE;IACxE,iEAAiE;IACjE,MAAM,MAAM,GAAG,IAAI,qBAAqB,CAAC,OAAO,CAAC,CAAA;IAEjD,MAAM,OAAO,GAAiB;QAC5B,EAAE,EAAE,OAAO,CAAC,EAAE,IAAI,UAAU;QAC5B,YAAY;QACZ,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;QAE5D,KAAK,CAAC,GAAG,CAAC,OAAqB,EAAE,OAAuB;YACtD,oEAAoE;YACpE,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,WAAW,IAAI,iBAAiB,EAAE,CAAA;YAEhF,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,MAAM,EAAE;gBACnD,iEAAiE;gBACjE,iDAAiD;gBACjD,WAAW,EAAE,EAAE;gBACf,GAAG,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS,IAAI;oBACtC,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAChD,CAAC;aACH,CAAC,CAAA;YAEF,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;gBAC9B,yCAAyC;gBACzC,MAAM,UAAU,GAAG,yBAAyB,CAC1C,SAAS,EAAE,wCAAwC;gBACnD,SAAS,EAAE,uCAAuC;gBAClD,MAAM,EACN,gBAAgB,CACjB,CAAA;gBAED,wDAAwD;gBACxD,6BAA6B;gBAC7B,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;gBAEvE,MAAM,IAAI,KAAK,CAAC,sBAAsB,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YAC7E,CAAC;YAED,8DAA8D;YAC9D,MAAM,eAAe,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;YAE5D,sEAAsE;YACtE,oEAAoE;YACpE,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAChC,eAAe,EACf,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,OAAO,EACf,MAAM,EACN,OAAO,CAAC,SAAS,CAClB,CAAA;gBACD,OAAO,MAAM,CAAA;YACf,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;oBAC3B,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;wBAC7C,MAAM,IAAI,0BAA0B,CAAC,mCAAmC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;oBAC1F,CAAC;oBACD,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;wBACzC,MAAM,IAAI,qBAAqB,CAAC,iCAAiC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;oBACnF,CAAC;oBACD,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;wBACxC,MAAM,IAAI,mBAAmB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;oBAC9C,CAAC;gBACH,CAAC;gBACD,MAAM,KAAK,CAAA;YACb,CAAC;YACD,2DAA2D;QAC7D,CAAC;QAED,KAAK,CAAC,OAAO;YACX,MAAM,MAAM,CAAC,OAAO,EAAE,CAAA;QACxB,CAAC;KACF,CAAA;IAED,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,GAAiB,EAAE,GAAmB;IAChE,MAAM,WAAW,GAAa,EAAE,CAAA;IAChC,IAAI,GAAG,CAAC,QAAQ,EAAE,IAAI,KAAK,SAAS;QAAE,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IACzE,IAAI,GAAG,CAAC,QAAQ,KAAK,SAAS;QAAE,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAA;IAC3E,MAAM,UAAU,GAAG,MAAM,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IAClD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,GAAG,CAAA;IACnE,MAAM,WAAW,GAAa,CAAC,GAAG,WAAW,CAAC,CAAA;IAC9C,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS;QAAE,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IAC1D,WAAW,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAA;IAC/B,OAAO,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAA;AAC5D,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB;IACxB,OAAO;QACL,YAAY,EAAE;YACZ,KAAK,EAAE,IAAI,GAAG,EAAE;YAChB,QAAQ,EAAE,EAAE;YACZ,IAAI,EAAE,KAAK;SACZ;QACD,WAAW,EAAE;YACX,KAAK,EAAE,IAAI,GAAG,EAAE;YAChB,QAAQ,EAAE,EAAE;YACZ,IAAI,EAAE,KAAK;SACZ;QACD,kBAAkB,EAAE,IAAI,GAAG,EAAE;QAC7B,iBAAiB,EAAE,IAAI,GAAG,EAAE;QAC5B,aAAa,EAAE,IAAI,GAAG,EAAE;QACxB,cAAc,EAAE,IAAI,GAAG,EAAE;QACzB,aAAa,EAAE,MAAM;QACrB,MAAM,EAAE,IAAI,GAAG,EAAE;QACjB,OAAO,EAAE,IAAI,GAAG,EAAE;QAClB,QAAQ,EAAE,IAAI;KACf,CAAA;AACH,CAAC;AAED;;GAEG;AACH,MAAM,OAAO,0BAA2B,SAAQ,KAAK;IACnD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,4BAA4B,CAAA;IAC1C,CAAC;CACF;AAED,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAC9C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAA;IACrC,CAAC;CACF;AAED,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAC5C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAA;IACnC,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CAAC,OAOxC;IACC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,UAAU,CAAA;IAC7C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAA;IAEpC,MAAM,YAAY,GAAwB;QACxC,MAAM,EAAE,IAAI;QACZ,SAAS,EAAE,IAAI;QACf,gBAAgB,EAAE,IAAI;QACtB,GAAG,EAAE,IAAI;QACT,MAAM,EAAE,KAAK,EAAE,qCAAqC;QACpD,cAAc,EAAE,KAAK;QACrB,eAAe,EAAE,aAAa,EAAE,4CAA4C;KAC7E,CAAA;IAED,MAAM,OAAO,GAAiB;QAC5B,EAAE,EAAE,OAAO,CAAC,EAAE,IAAI,cAAc;QAChC,YAAY;QACZ,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;QAE5D,KAAK,CAAC,GAAG,CAAC,OAAqB,EAAE,OAAuB;YACtD,0CAA0C;YAC1C,4CAA4C;YAC5C,0EAA0E;YAE1E,MAAM,IAAI,KAAK,CACb,kFAAkF,CACnF,CAAA;QACH,CAAC;KACF,CAAA;IAED,OAAO,OAAO,CAAA;AAChB,CAAC"}
package/dist/client.d.ts CHANGED
@@ -5,6 +5,7 @@ export declare class OpencodeClientWrapper {
5
5
  private client;
6
6
  private startPromise;
7
7
  private readonly options;
8
+ private readonly attachedMcp;
8
9
  constructor(options: OpencodeBackendOptions);
9
10
  /** Ensure the opencode server is running. Safe to call concurrently. */
10
11
  ensureStarted(): Promise<void>;
@@ -12,8 +13,19 @@ export declare class OpencodeClientWrapper {
12
13
  start(): Promise<void>;
13
14
  private _start;
14
15
  private _handleExit;
15
- prompt(request: AgentRequest, signal: AbortSignal, timeoutMs?: number, resolvedPolicy?: ResolvedPolicy): Promise<AgentResponse>;
16
+ prompt(request: AgentRequest, signal: AbortSignal, timeoutMs?: number, resolvedPolicy?: ResolvedPolicy, onPartial?: (delta: string) => void): Promise<AgentResponse>;
16
17
  private _collectFromStream;
18
+ private _attachMcpServers;
19
+ private _decidePermission;
17
20
  dispose(): Promise<void>;
18
21
  }
22
+ /**
23
+ * Encode an egress token into the credential field of a proxy URL so that
24
+ * standard HTTP clients automatically send `Proxy-Authorization: Basic
25
+ * <base64(token:<egressToken>)>`. The token (and the literal "token"
26
+ * username) are URL-encoded for safety.
27
+ *
28
+ * Exported for testing.
29
+ */
30
+ export declare function encodeProxyUrlWithToken(proxyUrl: string, token: string | undefined): string;
19
31
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAmB,cAAc,EAAE,MAAM,aAAa,CAAA;AAE/F,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAA;AAwCxD,qBAAa,qBAAqB;IAChC,OAAO,CAAC,IAAI,CAA4B;IACxC,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwB;IAIhD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAoB;gBAEpC,OAAO,EAAE,sBAAsB;IAI3C,wEAAwE;IAClE,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAOpC,gFAAgF;IAC1E,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAId,MAAM;IA+EpB,OAAO,CAAC,WAAW;IAQb,MAAM,CACV,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,WAAW,EACnB,SAAS,SAAU,EACnB,cAAc,CAAC,EAAE,cAAc,EAC/B,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAClC,OAAO,CAAC,aAAa,CAAC;YA8DX,kBAAkB;YA6GlB,iBAAiB;IAkC/B,OAAO,CAAC,iBAAiB;IAenB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAI/B;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAU3F"}
package/dist/client.js CHANGED
@@ -8,11 +8,41 @@
8
8
  // #3 — Non-blocking promptAsync + SSE stream instead of blocking session.prompt()
9
9
  import { spawn } from 'node:child_process'; // @subprocess-ok: spawns opencode serve for HTTP backend
10
10
  import { createOpencodeClient } from '@opencode-ai/sdk';
11
+ import { TrustEnforcer } from '@skelm/core';
12
+ // Module-singleton process-exit hook. Without this, every OpencodeClientWrapper
13
+ // that called process.once('SIGTERM', …) would add a fresh listener, tripping
14
+ // Node's MaxListeners=10 warning under any non-trivial backend churn. Wrappers
15
+ // register their child process here on spawn and unregister in dispose; the
16
+ // hook iterates the live set on signal and SIGTERMs each child.
17
+ const liveChildren = new Set();
18
+ let signalHookInstalled = false;
19
+ function ensureSignalHook() {
20
+ if (signalHookInstalled)
21
+ return;
22
+ signalHookInstalled = true;
23
+ const cleanup = () => {
24
+ for (const proc of liveChildren) {
25
+ try {
26
+ proc.kill('SIGTERM');
27
+ }
28
+ catch {
29
+ /* best-effort */
30
+ }
31
+ }
32
+ };
33
+ process.on('SIGTERM', cleanup);
34
+ process.on('SIGINT', cleanup);
35
+ process.on('exit', cleanup);
36
+ }
11
37
  export class OpencodeClientWrapper {
12
38
  proc = null;
13
39
  client = null;
14
40
  startPromise = null;
15
41
  options;
42
+ // Track per-server-instance MCP attachments so we add() each one only once
43
+ // even when the same skelm process drives many sessions through the same
44
+ // opencode subprocess. Keyed by McpServerConfig.id.
45
+ attachedMcp = new Set();
16
46
  constructor(options) {
17
47
  this.options = options;
18
48
  }
@@ -31,6 +61,23 @@ export class OpencodeClientWrapper {
31
61
  }
32
62
  async _start() {
33
63
  const command = this.options.command ?? 'opencode';
64
+ // Inject egress proxy environment variables. Two sources, in priority:
65
+ // 1. options.proxyEnv — per-spawn env from the runtime, with the
66
+ // egress token already encoded as the URL credential of HTTP_PROXY
67
+ // (the canonical path used by the gateway).
68
+ // 2. options.egressProxyUrl + options.egressToken — legacy fields
69
+ // retained for back-compat. The token is URL-encoded here.
70
+ const proxyEnv = {};
71
+ if (this.options.proxyEnv !== undefined) {
72
+ Object.assign(proxyEnv, this.options.proxyEnv);
73
+ }
74
+ else if (this.options.egressProxyUrl !== undefined) {
75
+ proxyEnv.HTTP_PROXY = encodeProxyUrlWithToken(this.options.egressProxyUrl, this.options.egressToken);
76
+ proxyEnv.HTTPS_PROXY = proxyEnv.HTTP_PROXY;
77
+ if (this.options.egressToken !== undefined) {
78
+ proxyEnv.SKELM_EGRESS_TOKEN = this.options.egressToken;
79
+ }
80
+ }
34
81
  // (#2) Inject model and logLevel via OPENCODE_CONFIG_CONTENT so opencode
35
82
  // uses them as its defaults for every session, without needing per-session
36
83
  // body overrides.
@@ -46,10 +93,16 @@ export class OpencodeClientWrapper {
46
93
  }
47
94
  return new Promise((resolve, reject) => {
48
95
  const proc = spawn(command, ['serve', '--port', '0'], {
49
- env: { ...process.env, OPENCODE_CONFIG_CONTENT: JSON.stringify(serverConfig) },
96
+ env: { ...process.env, ...proxyEnv, OPENCODE_CONFIG_CONTENT: JSON.stringify(serverConfig) },
50
97
  stdio: ['ignore', 'pipe', 'pipe'],
51
98
  });
52
99
  this.proc = proc;
100
+ // Register against the module-singleton SIGTERM/SIGINT/exit hook so the
101
+ // opencode child gets killed when the node parent is signalled (CLI
102
+ // timeout, Ctrl-C, gateway shutdown). Without this, the child is
103
+ // reparented to PID 1 and lingers as an orphan.
104
+ liveChildren.add(proc);
105
+ ensureSignalHook();
53
106
  let resolved = false;
54
107
  let buf = '';
55
108
  const tryParse = (chunk) => {
@@ -84,15 +137,25 @@ export class OpencodeClientWrapper {
84
137
  });
85
138
  }
86
139
  _handleExit() {
140
+ if (this.proc !== null)
141
+ liveChildren.delete(this.proc);
87
142
  this.proc = null;
88
143
  this.client = null;
89
144
  this.startPromise = null;
145
+ this.attachedMcp.clear();
90
146
  }
91
- async prompt(request, signal, timeoutMs = 300_000, resolvedPolicy) {
147
+ async prompt(request, signal, timeoutMs = 300_000, resolvedPolicy, onPartial) {
92
148
  await this.ensureStarted();
93
149
  if (!this.client)
94
150
  throw new Error('opencode serve not ready');
95
151
  const cwd = request.cwd ?? process.cwd();
152
+ // Forward each per-step McpServerConfig to opencode so its model sees the
153
+ // namespaced tools. The opencode subprocess persists across calls, so the
154
+ // mcp.add() endpoint is idempotent per (serverId, this wrapper) — we only
155
+ // call it once per ID per opencode subprocess.
156
+ if (request.mcpServers !== undefined && request.mcpServers.length > 0) {
157
+ await this._attachMcpServers(request.mcpServers);
158
+ }
96
159
  const sessResult = await this.client.session.create({ query: { directory: cwd } });
97
160
  if (!sessResult.data) {
98
161
  throw new Error(`session.create failed: ${JSON.stringify(sessResult.error)}`);
@@ -121,7 +184,7 @@ export class OpencodeClientWrapper {
121
184
  if (!promptResult.data) {
122
185
  throw new Error(`session.promptAsync failed: ${JSON.stringify(promptResult.error)}`);
123
186
  }
124
- return await this._collectFromStream(stream, sessionId, signal);
187
+ return await this._collectFromStream(stream, sessionId, signal, onPartial, resolvedPolicy);
125
188
  }
126
189
  finally {
127
190
  clearTimeout(timeoutId);
@@ -134,7 +197,7 @@ export class OpencodeClientWrapper {
134
197
  }
135
198
  }
136
199
  // (#3) Collect text from SSE events for one session until it goes idle.
137
- async _collectFromStream(stream, sessionId, signal) {
200
+ async _collectFromStream(stream, sessionId, signal, onPartial, resolvedPolicy) {
138
201
  // Only collect text parts from assistant messages; track which message IDs are assistant.
139
202
  const assistantMessageIds = new Set();
140
203
  // Each TextPart is updated incrementally; track the latest full text per part id.
@@ -149,6 +212,24 @@ export class OpencodeClientWrapper {
149
212
  throw new Error(`opencode session error: ${JSON.stringify(props.error)}`);
150
213
  }
151
214
  }
215
+ // Opencode pauses the session and emits permission.asked when a tool
216
+ // wants to escalate (external_directory read/write, bash, etc.). The
217
+ // session stays paused until we POST a response — without this handler
218
+ // _collectFromStream blocks forever waiting for session.idle.
219
+ if (event.type === 'permission.asked') {
220
+ const props = event.properties;
221
+ if (props.sessionID === sessionId && typeof props.id === 'string') {
222
+ const response = this._decidePermission(props.permission ?? '', props.metadata?.filepath, props.patterns, resolvedPolicy);
223
+ await this.client
224
+ ?.postSessionIdPermissionsPermissionId({
225
+ path: { id: sessionId, permissionID: props.id },
226
+ body: { response },
227
+ })
228
+ .catch(() => {
229
+ /* opencode will give up on its own; we'll exit on session.idle/error */
230
+ });
231
+ }
232
+ }
152
233
  if (event.type === 'message.updated') {
153
234
  const props = event.properties;
154
235
  if (props.info.sessionID === sessionId && props.info.role === 'assistant') {
@@ -163,7 +244,13 @@ export class OpencodeClientWrapper {
163
244
  part.type === 'text' &&
164
245
  !part.synthetic &&
165
246
  part.text) {
166
- textParts.set(part.id, part.text);
247
+ const prev = textParts.get(part.id) ?? '';
248
+ const next = part.text;
249
+ // Emit the delta (new characters since last update for this part)
250
+ if (onPartial !== undefined && next.length > prev.length) {
251
+ onPartial(next.slice(prev.length));
252
+ }
253
+ textParts.set(part.id, next);
167
254
  }
168
255
  }
169
256
  if (event.type === 'session.idle') {
@@ -177,11 +264,80 @@ export class OpencodeClientWrapper {
177
264
  const text = [...textParts.values()].join('');
178
265
  return { text: text.trim(), stopReason: 'end_turn' };
179
266
  }
267
+ // Map a skelm McpServerConfig (stdio variant) to opencode's local MCP config
268
+ // and POST it to /mcp. Remote (http/sse) transports are not yet supported by
269
+ // this bridge — opencode's McpRemoteConfig has a different shape and isn't
270
+ // exercised by the §21 fixtures; we surface a clear error rather than a
271
+ // silent drop so a future fixture catches it.
272
+ async _attachMcpServers(servers) {
273
+ if (this.client === null)
274
+ return;
275
+ for (const server of servers) {
276
+ if (this.attachedMcp.has(server.id))
277
+ continue;
278
+ if (server.transport !== 'stdio') {
279
+ throw new Error(`opencode backend currently only forwards stdio MCP servers; "${server.id}" uses ${server.transport}`);
280
+ }
281
+ const command = [server.command, ...(server.args ?? [])];
282
+ const result = await this.client.mcp.add({
283
+ body: {
284
+ name: server.id,
285
+ config: {
286
+ type: 'local',
287
+ command,
288
+ enabled: true,
289
+ ...(server.env !== undefined && { environment: { ...server.env } }),
290
+ },
291
+ },
292
+ });
293
+ if (result.error !== undefined) {
294
+ throw new Error(`opencode mcp.add(${server.id}) failed: ${JSON.stringify(result.error)}`);
295
+ }
296
+ this.attachedMcp.add(server.id);
297
+ }
298
+ }
299
+ // Translate an opencode permission.asked into a once/reject decision using
300
+ // the step's ResolvedPolicy. "external_directory" is the common case (the
301
+ // model wants to read/write outside the session's directory); we accept if
302
+ // the path falls within fsRead or fsWrite. Everything else defaults to
303
+ // reject — opencode's prompt that asked will report the denial back to the
304
+ // model and the loop continues.
305
+ _decidePermission(permission, filepath, _patterns, policy) {
306
+ if (policy === undefined)
307
+ return 'reject';
308
+ if (permission === 'external_directory' && filepath !== undefined) {
309
+ const enf = new TrustEnforcer(policy);
310
+ if (enf.canRead(filepath).allow)
311
+ return 'once';
312
+ if (enf.canWrite(filepath).allow)
313
+ return 'once';
314
+ }
315
+ return 'reject';
316
+ }
180
317
  async dispose() {
181
318
  this.proc?.kill('SIGTERM');
182
- this.proc = null;
183
- this.client = null;
184
- this.startPromise = null;
319
+ this._handleExit();
320
+ }
321
+ }
322
+ /**
323
+ * Encode an egress token into the credential field of a proxy URL so that
324
+ * standard HTTP clients automatically send `Proxy-Authorization: Basic
325
+ * <base64(token:<egressToken>)>`. The token (and the literal "token"
326
+ * username) are URL-encoded for safety.
327
+ *
328
+ * Exported for testing.
329
+ */
330
+ export function encodeProxyUrlWithToken(proxyUrl, token) {
331
+ if (token === undefined || token === '')
332
+ return proxyUrl;
333
+ try {
334
+ const url = new URL(proxyUrl);
335
+ url.username = 'token';
336
+ url.password = token;
337
+ return url.toString();
338
+ }
339
+ catch {
340
+ return proxyUrl;
185
341
  }
186
342
  }
187
343
  // Map a skelm ResolvedPolicy to opencode's per-prompt tool allow/deny 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/types.d.ts CHANGED
@@ -28,6 +28,21 @@ export interface OpencodeBackendOptions {
28
28
  maxRetries?: number;
29
29
  /** Log level */
30
30
  logLevel?: 'debug' | 'info' | 'warn' | 'error' | 'off';
31
+ /** Egress proxy URL for outbound HTTP requests (e.g., 'http://127.0.0.1:14739'). */
32
+ egressProxyUrl?: string;
33
+ /** Egress token for proxy authentication (injected into subprocesses). */
34
+ egressToken?: string;
35
+ /**
36
+ * Pre-encoded proxy env from the runtime (takes precedence over the legacy
37
+ * egressProxyUrl + egressToken fields). Set by the gateway per-step so
38
+ * HTTP_PROXY already contains the token as URL credentials.
39
+ */
40
+ proxyEnv?: Record<string, string>;
41
+ /**
42
+ * Optional partial output callback. Called with each text delta as the
43
+ * opencode server streams the response. Maps to BackendContext.onPartial.
44
+ */
45
+ onPartial?: (delta: string) => void;
31
46
  /**
32
47
  * Server-level permission defaults injected via OPENCODE_CONFIG_CONTENT at
33
48
  * server startup. These apply to every session on this backend instance.
@@ -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;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"}
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,oFAAoF;IACpF,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,0EAA0E;IAC1E,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACjC;;;OAGG;IACH,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACnC;;;;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,10 +1,10 @@
1
1
  {
2
2
  "name": "@skelm/opencode",
3
- "version": "0.3.6",
3
+ "version": "0.3.8",
4
4
  "description": "Opencode.ai backend for skelm with full permission enforcement",
5
5
  "license": "MIT",
6
6
  "author": "Scott Glover <scottgl@gmail.com>",
7
- "homepage": "https://github.com/scottgl9/skelm#readme",
7
+ "homepage": "https://skelm.dev/",
8
8
  "repository": {
9
9
  "type": "git",
10
10
  "url": "git+https://github.com/scottgl9/skelm.git",
@@ -42,16 +42,16 @@
42
42
  "build": "tsc -p tsconfig.json",
43
43
  "test": "vitest run",
44
44
  "test:watch": "vitest",
45
- "clean": "rm -rf dist"
45
+ "clean": "rm -rf dist tsconfig.tsbuildinfo"
46
46
  },
47
47
  "dependencies": {
48
48
  "@opencode-ai/sdk": "^1.14.33"
49
49
  },
50
50
  "peerDependencies": {
51
- "@skelm/core": "^0.3.6"
51
+ "@skelm/core": "^0.3.8"
52
52
  },
53
53
  "devDependencies": {
54
- "@skelm/core": "^0.3.6",
54
+ "@skelm/core": "^0.3.8",
55
55
  "@types/node": "^20.10.0",
56
56
  "typescript": "^5.3.0",
57
57
  "vitest": "^1.0.0"