@bjorntech/key-ferry 0.1.8 → 0.1.10

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 (52) hide show
  1. package/README.md +79 -13
  2. package/SECURITY.md +20 -0
  3. package/dist/contracts.d.ts +23 -0
  4. package/dist/contracts.d.ts.map +1 -1
  5. package/dist/contracts.js.map +1 -1
  6. package/dist/options.d.ts +7 -0
  7. package/dist/options.d.ts.map +1 -1
  8. package/dist/options.js +28 -2
  9. package/dist/options.js.map +1 -1
  10. package/dist/plugin.d.ts +4 -0
  11. package/dist/plugin.d.ts.map +1 -1
  12. package/dist/plugin.js +53 -170
  13. package/dist/plugin.js.map +1 -1
  14. package/dist/project-config.d.ts +3 -0
  15. package/dist/project-config.d.ts.map +1 -0
  16. package/dist/project-config.js +3 -0
  17. package/dist/project-config.js.map +1 -0
  18. package/dist/rpc.d.ts +141 -6
  19. package/dist/rpc.d.ts.map +1 -1
  20. package/dist/rpc.js +117 -35
  21. package/dist/rpc.js.map +1 -1
  22. package/dist/scoped-config.d.ts +35 -0
  23. package/dist/scoped-config.d.ts.map +1 -0
  24. package/dist/scoped-config.js +224 -0
  25. package/dist/scoped-config.js.map +1 -0
  26. package/dist/scoped-controller.d.ts +40 -0
  27. package/dist/scoped-controller.d.ts.map +1 -0
  28. package/dist/scoped-controller.js +468 -0
  29. package/dist/scoped-controller.js.map +1 -0
  30. package/dist/scopes/controller-helpers.d.ts +47 -0
  31. package/dist/scopes/controller-helpers.d.ts.map +1 -0
  32. package/dist/scopes/controller-helpers.js +268 -0
  33. package/dist/scopes/controller-helpers.js.map +1 -0
  34. package/dist/scopes/controller-types.d.ts +22 -0
  35. package/dist/scopes/controller-types.d.ts.map +1 -0
  36. package/dist/scopes/controller-types.js +2 -0
  37. package/dist/scopes/controller-types.js.map +1 -0
  38. package/dist/tui.d.ts +31 -33
  39. package/dist/tui.d.ts.map +1 -1
  40. package/dist/tui.js +111 -35
  41. package/dist/tui.js.map +1 -1
  42. package/docs/architecture.md +27 -1
  43. package/docs/troubleshooting.md +26 -1
  44. package/examples/README.md +47 -0
  45. package/examples/global/.env.schema +6 -0
  46. package/examples/global/opencode.json +31 -0
  47. package/examples/project/.env.schema +6 -0
  48. package/examples/project/.opencode/key-ferry.jsonc +10 -0
  49. package/examples/project/opencode.json +11 -0
  50. package/examples/{opencode.jsonc → single-project/opencode.json} +17 -16
  51. package/package.json +4 -1
  52. /package/examples/{.env.schema → single-project/.env.schema} +0 -0
package/dist/plugin.js CHANGED
@@ -1,9 +1,11 @@
1
1
  import { Mcp, Plugin } from "@opencode/plugin/effect";
2
- import { Effect, Scope, Stream, Types } from "effect";
2
+ import { Deferred, Effect, Types } from "effect";
3
3
  import { brokerRegistry } from "./broker-registry.js";
4
- import { managerOptions, parseOptions, } from "./options.js";
4
+ import { parseOptions } from "./options.js";
5
5
  import { makeRemoteRelayCoordinator, RELAY_AUTH_HEADER, safeForwardHeaders, isRemoteProtection, } from "./remote.js";
6
6
  import { KeyFerryRpc, publicMessage, rpcError, sanitizeStatus } from "./rpc.js";
7
+ import { loadScopedConfiguration } from "./scoped-config.js";
8
+ import { makeScopedController } from "./scoped-controller.js";
7
9
  function preserveDisabled(name, server, state) {
8
10
  return state.explicitlyDisabled?.has(name) ?? server.disabled === true;
9
11
  }
@@ -76,24 +78,6 @@ export function applyProtection(editor, options, state) {
76
78
  applyLocalProtection(editor, name, server, mapping, state);
77
79
  }
78
80
  }
79
- function snapshotServers(editor) {
80
- const result = new Map();
81
- for (const [name, config] of editor.list()) {
82
- if (config.type !== "remote")
83
- continue;
84
- result.set(name, {
85
- type: "remote",
86
- url: config.url,
87
- ...(config.headers === undefined ? {} : { headers: { ...config.headers } }),
88
- ...(config.oauth === undefined ? {} : { oauth: config.oauth }),
89
- ...(config.disabled === undefined ? {} : { disabled: config.disabled }),
90
- ...(config.codemode === undefined ? {} : { codemode: config.codemode }),
91
- ...(config.timeout === undefined ? {} : { timeout: config.timeout }),
92
- ...(config.protocol === undefined ? {} : { protocol: config.protocol }),
93
- });
94
- }
95
- return result;
96
- }
97
81
  function unavailableHealthDecision(ready, remoteHandleCount) {
98
82
  if (ready)
99
83
  return "clear";
@@ -133,164 +117,63 @@ export function makePlugin(factory, relayFactory, registry = brokerRegistry) {
133
117
  return Effect.void;
134
118
  const program = Effect.gen(function* () {
135
119
  const pluginScope = yield* Effect.scope;
136
- const brokerOptions = managerOptions(parsed, ctx.location.project.directory);
137
- const lease = yield* registry.acquire(factory, brokerOptions);
138
- yield* Effect.addFinalizer(() => lease.release);
139
- let state = { ready: false, environment: {} };
140
- let observedGeneration = -1;
141
- let remoteDiagnostics = [];
142
- let serverSnapshots = new Map();
143
- let explicitlyDisabled = new Set();
144
- let capturedDisabled = false;
145
- const remote = makeRemoteRelayCoordinator(relayFactory, parsed.adapter.allowPrivateNetwork);
146
- const setState = (next) => {
147
- state = { ...next, explicitlyDisabled };
148
- };
149
- const publicStatus = (status) => sanitizeStatus({
150
- ...status,
151
- ...(remoteDiagnostics.length === 0 ? {} : { diagnostics: remoteDiagnostics }),
120
+ const controllerReady = yield* Deferred.make();
121
+ const configuration = yield* Effect.promise(() => loadScopedConfiguration(ctx.options, { project: ctx.location.project }));
122
+ let controller;
123
+ let callbackObserved = false;
124
+ let rpcRegistered = false;
125
+ let bootstrapping = true;
126
+ const registerRpc = (activeController) => ctx.rpc.register(KeyFerryRpc, {
127
+ status: (input) => activeController.statusSelected(input).pipe(Effect.map((status) => bootstrapping && status.phase === "stopped"
128
+ ? { ...status, phase: "starting" }
129
+ : status), Effect.map(sanitizeStatus)),
130
+ refresh: (input, context) => activeController.operation("refresh", input).pipe(Effect.map(sanitizeStatus), Effect.catch((error) => Effect.fail(context.error("unavailable", publicMessage(error), rpcError(error))))),
131
+ doctor: (input, context) => activeController.operation("doctor", input).pipe(Effect.map(sanitizeStatus), Effect.catch((error) => Effect.fail(context.error("unavailable", publicMessage(error), rpcError(error))))),
132
+ activateProject: (_, context) => activeController.activateProject.pipe(Effect.map(sanitizeStatus), Effect.catch((error) => Effect.fail(context.error("unavailable", publicMessage(error), rpcError(error))))),
152
133
  });
153
- const reconcileRemote = (status, environment) => Effect.gen(function* () {
154
- // A health failure may have stopped and removed the current handles.
155
- // Reconcile from the manager capability again during doctor, rather
156
- // than treating doctor as a metadata-only operation.
157
- if (status.phase === "ready") {
158
- if (!(yield* remote.health))
159
- yield* remote.stopAll;
160
- yield* Effect.provideService(remote.reconcile(serverSnapshots, parsed.adapter.servers, environment, status.generation), Scope.Scope, pluginScope);
134
+ yield* ctx.mcp.transform((next) => {
135
+ callbackObserved = true;
136
+ if (controller) {
137
+ controller.setEditor(next);
138
+ controller.apply(next);
161
139
  }
162
140
  else {
163
- yield* remote.stopAll;
164
- }
165
- remoteDiagnostics = remote.diagnostics;
166
- const next = {
167
- ready: status.phase === "ready",
168
- environment,
169
- remoteHandles: remote.handles,
170
- };
171
- setState(next);
172
- return next;
173
- });
174
- yield* ctx.mcp.transform((editor) => {
175
- if (!capturedDisabled) {
176
- explicitlyDisabled = new Set(editor
177
- .list()
178
- .filter(([, config]) => config.disabled === true)
179
- .map(([name]) => name));
180
- capturedDisabled = true;
141
+ controller = makeScopedController({
142
+ configuration,
143
+ factory,
144
+ relayFactory,
145
+ registry,
146
+ scope: pluginScope,
147
+ reload: ctx.mcp.reload,
148
+ editor: next,
149
+ startEmptyGlobal: !parsed.projectConfig.enabled,
150
+ });
151
+ controller.capture(next);
152
+ controller.apply(next);
153
+ Deferred.doneUnsafe(controllerReady, Effect.succeed(undefined));
181
154
  }
182
- serverSnapshots = snapshotServers(editor);
183
- applyProtection(editor, parsed.adapter, {
184
- ...state,
185
- explicitlyDisabled,
186
- remoteHandles: remote.handles,
187
- });
188
- });
189
- const failClosed = Effect.gen(function* () {
190
- setState({ ready: false, environment: {}, remoteHandles: remote.handles });
191
- yield* remote.stopAll;
192
- yield* ctx.mcp.reload();
193
155
  });
194
- const observeReady = lease.ensureReady.pipe(Effect.flatMap((result) => Effect.gen(function* () {
195
- if (result.status.generation <= observedGeneration)
156
+ yield* Effect.addFinalizer(() => (controller ? controller.dispose : Effect.void));
157
+ if (callbackObserved && controller && !rpcRegistered) {
158
+ yield* registerRpc(controller);
159
+ rpcRegistered = true;
160
+ }
161
+ yield* Effect.forkIn(Effect.gen(function* () {
162
+ yield* Deferred.await(controllerReady);
163
+ const activeController = controller;
164
+ if (!activeController)
196
165
  return;
197
- yield* reconcileRemote(result.status, result.environment);
198
- observedGeneration = result.status.generation;
166
+ yield* activeController.start.pipe(Effect.catch(() => Effect.void));
167
+ bootstrapping = false;
168
+ if (parsed.projectConfig.enabled)
169
+ yield* activeController.watch(() => loadScopedConfiguration(ctx.options, { project: ctx.location.project }));
199
170
  yield* ctx.mcp.reload();
200
- })), Effect.catch(() => failClosed));
201
- const observeChanges = Effect.gen(function* () {
202
- const subscription = yield* lease.subscribe;
203
- yield* Stream.runForEach(subscription.changes, (status) => status.phase === "ready"
204
- ? lease.environment.pipe(Effect.flatMap((environment) => status.generation > observedGeneration
205
- ? Effect.gen(function* () {
206
- yield* reconcileRemote(status, environment);
207
- observedGeneration = status.generation;
208
- yield* ctx.mcp.reload();
209
- })
210
- : Effect.void))
211
- : failClosed);
212
- });
213
- yield* Effect.forkScoped(observeReady);
214
- yield* Effect.forkScoped(observeChanges.pipe(Effect.catch(() => Effect.void)));
215
- yield* ctx.mcp.reload();
216
- const explicitRecovery = (operation) => Effect.gen(function* () {
217
- const status = yield* lease.status;
218
- if (status.phase === "failed") {
219
- yield* failClosed;
220
- return yield* registry.retry(factory, brokerOptions);
171
+ if (!rpcRegistered) {
172
+ yield* registerRpc(activeController);
173
+ rpcRegistered = true;
221
174
  }
222
- if (status.phase === "starting")
223
- return yield* lease.ensureReady;
224
- return yield* operation === "refresh" ? lease.refreshReady : lease.ensureReady;
225
- });
226
- yield* ctx.rpc.register(KeyFerryRpc, {
227
- status: () => lease.status.pipe(Effect.map(publicStatus)),
228
- refresh: (_, context) => Effect.gen(function* () {
229
- setState({ ready: false, environment: {}, remoteHandles: remote.handles });
230
- yield* remote.stopAll;
231
- yield* ctx.mcp.reload();
232
- const next = yield* explicitRecovery("refresh");
233
- yield* reconcileRemote(next.status, next.environment);
234
- yield* ctx.mcp.reload();
235
- return publicStatus(next.status);
236
- }).pipe(Effect.catch((error) => Effect.sync(() => {
237
- remoteDiagnostics = remote.diagnostics;
238
- setState({ ready: false, environment: {}, remoteHandles: remote.handles });
239
- }).pipe(Effect.andThen(ctx.mcp.reload()), Effect.andThen(Effect.fail(context.error("unavailable", publicMessage(error), rpcError(error))))))),
240
- doctor: (_, context) => Effect.gen(function* () {
241
- const next = yield* explicitRecovery("doctor").pipe(Effect.map(({ status, environment }) => ({
242
- status: sanitizeStatus(status),
243
- environment,
244
- })), Effect.catch((error) => lease.status.pipe(Effect.map((status) => ({
245
- status: sanitizeStatus({ ...status, error }),
246
- environment: {},
247
- })))));
248
- yield* reconcileRemote(next.status, next.environment);
249
- yield* ctx.mcp.reload();
250
- return publicStatus(next.status);
251
- }).pipe(Effect.catch((error) => Effect.fail(context.error("unavailable", publicMessage(error), rpcError(error))))),
252
- });
253
- const clearProtection = Effect.gen(function* () {
254
- setState({ ready: false, environment: {}, remoteHandles: remote.handles });
255
- yield* remote.stopAll;
256
- yield* ctx.mcp.reload();
257
- });
258
- const reconcileGeneration = (status) => Effect.gen(function* () {
259
- yield* remote.stopAll;
260
- const next = yield* lease.ensureReady.pipe(Effect.map(({ status, environment }) => ({
261
- status: sanitizeStatus(status),
262
- environment,
263
- })));
264
- observedGeneration = next.status.generation;
265
- if (next.status.phase === "ready") {
266
- yield* Effect.provideService(remote.reconcile(serverSnapshots, parsed.adapter.servers, next.environment, next.status.generation), Scope.Scope, pluginScope);
267
- remoteDiagnostics = remote.diagnostics;
268
- }
269
- setState({
270
- ready: next.status.phase === "ready",
271
- environment: next.environment,
272
- remoteHandles: remote.handles,
273
- });
274
- yield* ctx.mcp.reload();
275
- });
276
- // The manager owns process health. Poll only safe metadata and disable
277
- // protected servers immediately if the owned process dies. A changed
278
- // generation gets a fresh, allowlisted environment before reconnecting.
279
- yield* Effect.forkScoped(Effect.forever(Effect.gen(function* () {
280
- yield* Effect.sleep("30 seconds");
281
- const status = yield* lease.status;
282
- const relayHealthy = yield* status.phase !== "ready"
283
- ? Effect.succeed(false)
284
- : remote.health;
285
- const decision = healthPollDecision(status.phase, state.ready, remote.handles.size, relayHealthy, status.generation, observedGeneration);
286
- const action = {
287
- noop: Effect.void,
288
- clear: clearProtection,
289
- reconcile: reconcileGeneration(status).pipe(Effect.catch(() => Effect.void)),
290
- };
291
- yield* action[decision];
292
- })).pipe(Effect.catch(() => Effect.void)));
293
- yield* Effect.addFinalizer(() => remote.stopAll);
175
+ }).pipe(Effect.catch(() => Effect.void)), pluginScope);
176
+ // Native hosts defer RPC registration until the callback-owned child starts.
294
177
  });
295
178
  return program.pipe(Effect.catch(() => Effect.void));
296
179
  },
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ /** Public project configuration loader contract. */
2
+ export { loadScopedConfiguration, type ScopedConfiguration, type ScopedConfigurationFileSystem, type ScopedConfigurationLocation, type ScopedGroup, type ScopedProjectError, } from "./scoped-config.js";
3
+ //# sourceMappingURL=project-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-config.d.ts","sourceRoot":"","sources":["../src/project-config.ts"],"names":[],"mappings":"AAAA,oDAAoD;AACpD,OAAO,EACL,uBAAuB,EACvB,KAAK,mBAAmB,EACxB,KAAK,6BAA6B,EAClC,KAAK,2BAA2B,EAChC,KAAK,WAAW,EAChB,KAAK,kBAAkB,GACxB,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,3 @@
1
+ /** Public project configuration loader contract. */
2
+ export { loadScopedConfiguration, } from "./scoped-config.js";
3
+ //# sourceMappingURL=project-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-config.js","sourceRoot":"","sources":["../src/project-config.ts"],"names":[],"mappings":"AAAA,oDAAoD;AACpD,OAAO,EACL,uBAAuB,GAMxB,MAAM,oBAAoB,CAAC"}
package/dist/rpc.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { Schema } from "effect";
2
2
  import { VarlockError, type SafeStatus } from "./contracts.js";
3
3
  export declare const SafeStatusSchema: Schema.Struct<{
4
- readonly phase: Schema.String;
4
+ readonly phase: Schema.Literals<readonly ["stopped", "starting", "ready", "degraded", "failed", "stopping"]>;
5
5
  readonly projectDirectory: Schema.String;
6
6
  readonly generation: Schema.Number;
7
7
  readonly pid: Schema.optional<Schema.Number>;
@@ -17,14 +17,37 @@ export declare const SafeStatusSchema: Schema.Struct<{
17
17
  readonly server: Schema.String;
18
18
  readonly message: Schema.String;
19
19
  }>>>;
20
+ readonly scopes: Schema.optional<Schema.$Array<Schema.Struct<{
21
+ readonly scope: Schema.Literals<readonly ["global", "project"]>;
22
+ readonly projectDirectory: Schema.String;
23
+ readonly phase: Schema.Literals<readonly ["stopped", "starting", "ready", "degraded", "failed", "stopping"]>;
24
+ readonly generation: Schema.Number;
25
+ readonly pid: Schema.optional<Schema.Number>;
26
+ readonly lastRefreshAt: Schema.optional<Schema.String>;
27
+ readonly error: Schema.optional<Schema.Struct<{
28
+ readonly code: Schema.String;
29
+ readonly message: Schema.String;
30
+ readonly retryable: Schema.Boolean;
31
+ }>>;
32
+ readonly diagnostics: Schema.optional<Schema.$Array<Schema.Struct<{
33
+ readonly code: Schema.String;
34
+ readonly server: Schema.String;
35
+ readonly message: Schema.String;
36
+ }>>>;
37
+ readonly activation: Schema.optional<Schema.Literals<readonly ["auto", "manual", "awaiting_activation"]>>;
38
+ }>>>;
39
+ readonly bindings: Schema.optional<Schema.$Record<Schema.String, Schema.Literals<readonly ["global", "project"]>>>;
20
40
  }>;
21
41
  export declare const KeyFerryRpc: {
22
42
  readonly id: "key-ferry";
23
43
  readonly methods: {
24
44
  readonly status: {
25
- readonly input: Schema.Struct<{}>;
45
+ readonly input: Schema.Struct<{
46
+ readonly scope: Schema.optional<Schema.Literals<readonly ["global", "project"]>>;
47
+ readonly server: Schema.optional<Schema.NonEmptyString>;
48
+ }>;
26
49
  readonly output: Schema.Struct<{
27
- readonly phase: Schema.String;
50
+ readonly phase: Schema.Literals<readonly ["stopped", "starting", "ready", "degraded", "failed", "stopping"]>;
28
51
  readonly projectDirectory: Schema.String;
29
52
  readonly generation: Schema.Number;
30
53
  readonly pid: Schema.optional<Schema.Number>;
@@ -40,6 +63,26 @@ export declare const KeyFerryRpc: {
40
63
  readonly server: Schema.String;
41
64
  readonly message: Schema.String;
42
65
  }>>>;
66
+ readonly scopes: Schema.optional<Schema.$Array<Schema.Struct<{
67
+ readonly scope: Schema.Literals<readonly ["global", "project"]>;
68
+ readonly projectDirectory: Schema.String;
69
+ readonly phase: Schema.Literals<readonly ["stopped", "starting", "ready", "degraded", "failed", "stopping"]>;
70
+ readonly generation: Schema.Number;
71
+ readonly pid: Schema.optional<Schema.Number>;
72
+ readonly lastRefreshAt: Schema.optional<Schema.String>;
73
+ readonly error: Schema.optional<Schema.Struct<{
74
+ readonly code: Schema.String;
75
+ readonly message: Schema.String;
76
+ readonly retryable: Schema.Boolean;
77
+ }>>;
78
+ readonly diagnostics: Schema.optional<Schema.$Array<Schema.Struct<{
79
+ readonly code: Schema.String;
80
+ readonly server: Schema.String;
81
+ readonly message: Schema.String;
82
+ }>>>;
83
+ readonly activation: Schema.optional<Schema.Literals<readonly ["auto", "manual", "awaiting_activation"]>>;
84
+ }>>>;
85
+ readonly bindings: Schema.optional<Schema.$Record<Schema.String, Schema.Literals<readonly ["global", "project"]>>>;
43
86
  }>;
44
87
  readonly errors: {
45
88
  readonly unavailable: Schema.Struct<{
@@ -48,9 +91,12 @@ export declare const KeyFerryRpc: {
48
91
  };
49
92
  };
50
93
  readonly refresh: {
51
- readonly input: Schema.Struct<{}>;
94
+ readonly input: Schema.Struct<{
95
+ readonly scope: Schema.optional<Schema.Literals<readonly ["global", "project"]>>;
96
+ readonly server: Schema.optional<Schema.NonEmptyString>;
97
+ }>;
52
98
  readonly output: Schema.Struct<{
53
- readonly phase: Schema.String;
99
+ readonly phase: Schema.Literals<readonly ["stopped", "starting", "ready", "degraded", "failed", "stopping"]>;
54
100
  readonly projectDirectory: Schema.String;
55
101
  readonly generation: Schema.Number;
56
102
  readonly pid: Schema.optional<Schema.Number>;
@@ -66,6 +112,26 @@ export declare const KeyFerryRpc: {
66
112
  readonly server: Schema.String;
67
113
  readonly message: Schema.String;
68
114
  }>>>;
115
+ readonly scopes: Schema.optional<Schema.$Array<Schema.Struct<{
116
+ readonly scope: Schema.Literals<readonly ["global", "project"]>;
117
+ readonly projectDirectory: Schema.String;
118
+ readonly phase: Schema.Literals<readonly ["stopped", "starting", "ready", "degraded", "failed", "stopping"]>;
119
+ readonly generation: Schema.Number;
120
+ readonly pid: Schema.optional<Schema.Number>;
121
+ readonly lastRefreshAt: Schema.optional<Schema.String>;
122
+ readonly error: Schema.optional<Schema.Struct<{
123
+ readonly code: Schema.String;
124
+ readonly message: Schema.String;
125
+ readonly retryable: Schema.Boolean;
126
+ }>>;
127
+ readonly diagnostics: Schema.optional<Schema.$Array<Schema.Struct<{
128
+ readonly code: Schema.String;
129
+ readonly server: Schema.String;
130
+ readonly message: Schema.String;
131
+ }>>>;
132
+ readonly activation: Schema.optional<Schema.Literals<readonly ["auto", "manual", "awaiting_activation"]>>;
133
+ }>>>;
134
+ readonly bindings: Schema.optional<Schema.$Record<Schema.String, Schema.Literals<readonly ["global", "project"]>>>;
69
135
  }>;
70
136
  readonly errors: {
71
137
  readonly unavailable: Schema.Struct<{
@@ -74,9 +140,58 @@ export declare const KeyFerryRpc: {
74
140
  };
75
141
  };
76
142
  readonly doctor: {
143
+ readonly input: Schema.Struct<{
144
+ readonly scope: Schema.optional<Schema.Literals<readonly ["global", "project"]>>;
145
+ readonly server: Schema.optional<Schema.NonEmptyString>;
146
+ }>;
147
+ readonly output: Schema.Struct<{
148
+ readonly phase: Schema.Literals<readonly ["stopped", "starting", "ready", "degraded", "failed", "stopping"]>;
149
+ readonly projectDirectory: Schema.String;
150
+ readonly generation: Schema.Number;
151
+ readonly pid: Schema.optional<Schema.Number>;
152
+ readonly endpoint: Schema.optional<Schema.String>;
153
+ readonly lastRefreshAt: Schema.optional<Schema.String>;
154
+ readonly error: Schema.optional<Schema.Struct<{
155
+ readonly code: Schema.String;
156
+ readonly message: Schema.String;
157
+ readonly retryable: Schema.Boolean;
158
+ }>>;
159
+ readonly diagnostics: Schema.optional<Schema.$Array<Schema.Struct<{
160
+ readonly code: Schema.String;
161
+ readonly server: Schema.String;
162
+ readonly message: Schema.String;
163
+ }>>>;
164
+ readonly scopes: Schema.optional<Schema.$Array<Schema.Struct<{
165
+ readonly scope: Schema.Literals<readonly ["global", "project"]>;
166
+ readonly projectDirectory: Schema.String;
167
+ readonly phase: Schema.Literals<readonly ["stopped", "starting", "ready", "degraded", "failed", "stopping"]>;
168
+ readonly generation: Schema.Number;
169
+ readonly pid: Schema.optional<Schema.Number>;
170
+ readonly lastRefreshAt: Schema.optional<Schema.String>;
171
+ readonly error: Schema.optional<Schema.Struct<{
172
+ readonly code: Schema.String;
173
+ readonly message: Schema.String;
174
+ readonly retryable: Schema.Boolean;
175
+ }>>;
176
+ readonly diagnostics: Schema.optional<Schema.$Array<Schema.Struct<{
177
+ readonly code: Schema.String;
178
+ readonly server: Schema.String;
179
+ readonly message: Schema.String;
180
+ }>>>;
181
+ readonly activation: Schema.optional<Schema.Literals<readonly ["auto", "manual", "awaiting_activation"]>>;
182
+ }>>>;
183
+ readonly bindings: Schema.optional<Schema.$Record<Schema.String, Schema.Literals<readonly ["global", "project"]>>>;
184
+ }>;
185
+ readonly errors: {
186
+ readonly unavailable: Schema.Struct<{
187
+ readonly code: Schema.String;
188
+ }>;
189
+ };
190
+ };
191
+ readonly activateProject: {
77
192
  readonly input: Schema.Struct<{}>;
78
193
  readonly output: Schema.Struct<{
79
- readonly phase: Schema.String;
194
+ readonly phase: Schema.Literals<readonly ["stopped", "starting", "ready", "degraded", "failed", "stopping"]>;
80
195
  readonly projectDirectory: Schema.String;
81
196
  readonly generation: Schema.Number;
82
197
  readonly pid: Schema.optional<Schema.Number>;
@@ -92,6 +207,26 @@ export declare const KeyFerryRpc: {
92
207
  readonly server: Schema.String;
93
208
  readonly message: Schema.String;
94
209
  }>>>;
210
+ readonly scopes: Schema.optional<Schema.$Array<Schema.Struct<{
211
+ readonly scope: Schema.Literals<readonly ["global", "project"]>;
212
+ readonly projectDirectory: Schema.String;
213
+ readonly phase: Schema.Literals<readonly ["stopped", "starting", "ready", "degraded", "failed", "stopping"]>;
214
+ readonly generation: Schema.Number;
215
+ readonly pid: Schema.optional<Schema.Number>;
216
+ readonly lastRefreshAt: Schema.optional<Schema.String>;
217
+ readonly error: Schema.optional<Schema.Struct<{
218
+ readonly code: Schema.String;
219
+ readonly message: Schema.String;
220
+ readonly retryable: Schema.Boolean;
221
+ }>>;
222
+ readonly diagnostics: Schema.optional<Schema.$Array<Schema.Struct<{
223
+ readonly code: Schema.String;
224
+ readonly server: Schema.String;
225
+ readonly message: Schema.String;
226
+ }>>>;
227
+ readonly activation: Schema.optional<Schema.Literals<readonly ["auto", "manual", "awaiting_activation"]>>;
228
+ }>>>;
229
+ readonly bindings: Schema.optional<Schema.$Record<Schema.String, Schema.Literals<readonly ["global", "project"]>>>;
95
230
  }>;
96
231
  readonly errors: {
97
232
  readonly unavailable: Schema.Struct<{
package/dist/rpc.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"rpc.d.ts","sourceRoot":"","sources":["../src/rpc.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAQ/D,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;EAiB3B,CAAC;AAcH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0BtB,CAAC;AAEH,QAAA,MAAM,aAAa,GAAI,OAAO,YAAY,0PAmBzC,CAAC;AAEF,uEAAuE;AACvE,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAkC7D;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,YAAY;;EAE3C;AAED,OAAO,EAAE,aAAa,EAAE,CAAC"}
1
+ {"version":3,"file":"rpc.d.ts","sourceRoot":"","sources":["../src/rpc.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EACL,YAAY,EAGZ,KAAK,UAAU,EAEhB,MAAM,gBAAgB,CAAC;AAkCxB,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAW3B,CAAC;AAkBH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiCtB,CAAC;AAEH,QAAA,MAAM,aAAa,GAAI,OAAO,YAAY,0PAmBzC,CAAC;AAEF,uEAAuE;AACvE,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAQ7D;AAsFD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,YAAY;;EAE3C;AAED,OAAO,EAAE,aAAa,EAAE,CAAC"}