@tduyng/pi-opencode-z 0.0.1 → 0.0.2

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tduyng/pi-opencode-z",
3
- "version": "0.0.1",
3
+ "version": "0.0.2",
4
4
  "description": "Use opencode's Zen models from Pi, including the free ones, by driving the local opencode server and bridging Pi tools over MCP.",
5
5
  "keywords": [
6
6
  "pi",
package/src/client.ts CHANGED
@@ -128,9 +128,11 @@ export async function api<T = unknown>(
128
128
  try {
129
129
  return await request<T>(info, method, path, body, signal)
130
130
  } catch (error) {
131
- // A cached url or password goes stale when the server restarts. Both failures happen
132
- // before the app sees the request, so re-resolving cannot duplicate it.
133
- const stale = error instanceof TypeError || (error instanceof Error && /failed \(401\)/.test(error.message))
131
+ // A cached url or password goes stale when the server restarts. Retry a read, or a write
132
+ // the server rejected outright with 401; a POST that drops mid-flight may already have run.
133
+ const stale =
134
+ (error instanceof Error && error.message.includes('(401)')) ||
135
+ ((method === 'GET' || method === 'DELETE') && error instanceof TypeError)
134
136
  if (signal?.aborted || !stale) throw error
135
137
  service = undefined
136
138
  return request<T>(await resolveService(), method, path, body, signal)
package/src/config.ts CHANGED
@@ -88,7 +88,7 @@ export function resolveBin(envRaw: string | undefined, fileBin: string | undefin
88
88
  }
89
89
 
90
90
  export function bridgeBin(): string {
91
- return resolveBin(process.env['OPENCODE_Z_BIN'], loadBridgeFile().bin)
91
+ return resolveBin(process.env['OPENCODE_Z_BIN'], readBridgeFile(configPath()).bin)
92
92
  }
93
93
 
94
94
  export function bridgeModelsRaw(): string | undefined {
package/src/index.ts CHANGED
@@ -51,10 +51,12 @@ export default async function opencodeBridge(pi: ExtensionAPI): Promise<void> {
51
51
 
52
52
  async function start(): Promise<void> {
53
53
  await resolveService()
54
- mcpServer = await startMcpServer()
55
- attachMcpServer(runtime, mcpServer)
54
+ const models = await loadModels()
55
+ const server = await startMcpServer()
56
+ mcpServer = server
57
+ attachMcpServer(runtime, server)
56
58
  events = startEventStream((event) => routeEvent(runtime, event))
57
- register(await loadModels())
59
+ register(models)
58
60
  startupError = undefined
59
61
  }
60
62