poe-code 2.0.3 → 2.0.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.
Files changed (100) hide show
  1. package/README.md +17 -30
  2. package/dist/cli/command-runner.d.ts +1 -1
  3. package/dist/cli/commands/configure.d.ts +0 -2
  4. package/dist/cli/commands/configure.js +99 -34
  5. package/dist/cli/commands/configure.js.map +1 -1
  6. package/dist/cli/commands/doctor.d.ts +4 -0
  7. package/dist/cli/commands/doctor.js +73 -0
  8. package/dist/cli/commands/doctor.js.map +1 -0
  9. package/dist/cli/commands/remove.d.ts +1 -0
  10. package/dist/cli/commands/remove.js +41 -28
  11. package/dist/cli/commands/remove.js.map +1 -1
  12. package/dist/cli/commands/shared.d.ts +9 -12
  13. package/dist/cli/commands/shared.js +26 -24
  14. package/dist/cli/commands/shared.js.map +1 -1
  15. package/dist/cli/commands/spawn.d.ts +1 -0
  16. package/dist/cli/commands/spawn.js +14 -5
  17. package/dist/cli/commands/spawn.js.map +1 -1
  18. package/dist/cli/commands/test.d.ts +4 -0
  19. package/dist/cli/commands/test.js +36 -0
  20. package/dist/cli/commands/test.js.map +1 -0
  21. package/dist/cli/constants.d.ts +12 -9
  22. package/dist/cli/constants.js +15 -9
  23. package/dist/cli/constants.js.map +1 -1
  24. package/dist/cli/container.d.ts +3 -3
  25. package/dist/cli/context.d.ts +4 -13
  26. package/dist/cli/context.js +19 -149
  27. package/dist/cli/context.js.map +1 -1
  28. package/dist/cli/error-logger.js +1 -1
  29. package/dist/cli/error-logger.js.map +1 -1
  30. package/dist/cli/errors.d.ts +0 -10
  31. package/dist/cli/errors.js +0 -12
  32. package/dist/cli/errors.js.map +1 -1
  33. package/dist/cli/logger.js +9 -11
  34. package/dist/cli/logger.js.map +1 -1
  35. package/dist/cli/options.d.ts +13 -4
  36. package/dist/cli/options.js +12 -11
  37. package/dist/cli/options.js.map +1 -1
  38. package/dist/cli/program.js +5 -2
  39. package/dist/cli/program.js.map +1 -1
  40. package/dist/cli/prompts.d.ts +14 -4
  41. package/dist/cli/prompts.js +12 -24
  42. package/dist/cli/prompts.js.map +1 -1
  43. package/dist/cli/service-registry.d.ts +37 -15
  44. package/dist/cli/service-registry.js.map +1 -1
  45. package/dist/cli/telemetry.d.ts +1 -1
  46. package/dist/cli/ui/service-menu.d.ts +2 -2
  47. package/dist/cli/ui/theme.js +6 -6
  48. package/dist/cli/ui/theme.js.map +1 -1
  49. package/dist/providers/claude-code.d.ts +10 -46
  50. package/dist/providers/claude-code.js +94 -224
  51. package/dist/providers/claude-code.js.map +1 -1
  52. package/dist/providers/codex.d.ts +14 -40
  53. package/dist/providers/codex.js +74 -177
  54. package/dist/providers/codex.js.map +1 -1
  55. package/dist/providers/create-provider.d.ts +26 -0
  56. package/dist/providers/create-provider.js +120 -0
  57. package/dist/providers/create-provider.js.map +1 -0
  58. package/dist/providers/index.d.ts +2 -2
  59. package/dist/providers/index.js +4 -10
  60. package/dist/providers/index.js.map +1 -1
  61. package/dist/providers/opencode.d.ts +3 -43
  62. package/dist/providers/opencode.js +112 -173
  63. package/dist/providers/opencode.js.map +1 -1
  64. package/dist/providers/provider-helpers.d.ts +10 -0
  65. package/dist/providers/provider-helpers.js +62 -0
  66. package/dist/providers/provider-helpers.js.map +1 -0
  67. package/dist/providers/versioned-provider.d.ts +3 -0
  68. package/dist/providers/versioned-provider.js +9 -0
  69. package/dist/providers/versioned-provider.js.map +1 -0
  70. package/dist/services/credentials.d.ts +14 -0
  71. package/dist/services/credentials.js +123 -22
  72. package/dist/services/credentials.js.map +1 -1
  73. package/dist/services/model-strategy.d.ts +1 -1
  74. package/dist/services/model-strategy.js +20 -15
  75. package/dist/services/model-strategy.js.map +1 -1
  76. package/dist/services/mutation-events.d.ts +4 -0
  77. package/dist/services/mutation-events.js +56 -0
  78. package/dist/services/mutation-events.js.map +1 -0
  79. package/dist/services/service-install.d.ts +3 -4
  80. package/dist/services/service-install.js +30 -12
  81. package/dist/services/service-install.js.map +1 -1
  82. package/dist/services/service-manifest.d.ts +49 -21
  83. package/dist/services/service-manifest.js +261 -64
  84. package/dist/services/service-manifest.js.map +1 -1
  85. package/dist/tools/label-generator.d.ts +2 -2
  86. package/dist/tools/label-generator.js +1 -1
  87. package/dist/tools/label-generator.js.map +1 -1
  88. package/dist/utils/binary-version.d.ts +6 -0
  89. package/dist/utils/binary-version.js +35 -0
  90. package/dist/utils/binary-version.js.map +1 -0
  91. package/dist/utils/command-checks.d.ts +39 -0
  92. package/dist/utils/command-checks.js +116 -0
  93. package/dist/utils/command-checks.js.map +1 -0
  94. package/package.json +6 -8
  95. package/dist/providers/roo-code.d.ts +0 -41
  96. package/dist/providers/roo-code.js +0 -201
  97. package/dist/providers/roo-code.js.map +0 -1
  98. package/dist/utils/prerequisites.d.ts +0 -41
  99. package/dist/utils/prerequisites.js +0 -92
  100. package/dist/utils/prerequisites.js.map +0 -1
@@ -1,92 +1,24 @@
1
- import path from "node:path";
2
- import { createBinaryExistsCheck, formatCommandRunnerResult } from "../utils/prerequisites.js";
3
- import { ensureDirectory, jsonMergeMutation, jsonPruneMutation, removeFileMutation, runServiceConfigure, runServiceRemove } from "../services/service-manifest.js";
4
- import { runServiceInstall } from "../services/service-install.js";
5
- const OPEN_CODE_CONFIG_TEMPLATE = {
6
- $schema: "https://opencode.ai/config.json",
7
- provider: {
8
- poe: {
9
- npm: "@ai-sdk/openai-compatible",
10
- name: "poe.com",
11
- options: {
12
- baseURL: "https://api.poe.com/v1"
13
- },
14
- models: {
15
- "Claude-Sonnet-4.5": {
16
- name: "Claude Sonnet 4.5"
17
- },
18
- "GPT-5.1-Codex": {
19
- name: "GPT-5.1-Codex"
20
- }
21
- }
22
- }
23
- }
24
- };
25
- const OPEN_CODE_CONFIG_SHAPE = {
26
- provider: {
27
- poe: true
28
- }
29
- };
30
- const OPEN_CODE_AUTH_SHAPE = {
31
- poe: true
32
- };
33
- const OPEN_CODE_MANIFEST = {
34
- id: "opencode",
35
- summary: "Configure OpenCode CLI to use the Poe API.",
36
- prerequisites: {
37
- after: ["opencode-cli-health"]
38
- },
39
- configure: [
40
- ensureDirectory({
41
- path: ({ options }) => path.dirname(options.configPath),
42
- label: "Ensure OpenCode config directory"
43
- }),
44
- ensureDirectory({
45
- path: ({ options }) => path.dirname(options.authPath),
46
- label: "Ensure OpenCode auth directory"
47
- }),
48
- jsonMergeMutation({
49
- target: ({ options }) => options.configPath,
50
- label: "Merge OpenCode config",
51
- value: () => OPEN_CODE_CONFIG_TEMPLATE
52
- }),
53
- jsonMergeMutation({
54
- target: ({ options }) => options.authPath,
55
- label: "Merge OpenCode auth",
56
- value: ({ options }) => ({
57
- poe: {
58
- type: "api",
59
- key: options.apiKey
60
- }
61
- })
62
- })
63
- ],
64
- remove: [
65
- jsonPruneMutation({
66
- target: ({ options }) => options.configPath,
67
- label: "Prune OpenCode config",
68
- shape: () => OPEN_CODE_CONFIG_SHAPE
69
- }),
70
- jsonPruneMutation({
71
- target: ({ options }) => options.authPath,
72
- label: "Prune OpenCode auth",
73
- shape: () => OPEN_CODE_AUTH_SHAPE
74
- }),
75
- removeFileMutation({
76
- target: ({ options }) => options.authPath,
77
- label: "Delete OpenCode auth when empty",
78
- whenEmpty: true
79
- })
80
- ]
81
- };
82
- const OPEN_CODE_INSTALL_DEFINITION = {
1
+ import { DEFAULT_FRONTIER_MODEL, FRONTIER_MODELS, PROVIDER_NAME } from "../cli/constants.js";
2
+ import { createBinaryExistsCheck, createCommandExpectationCheck } from "../utils/command-checks.js";
3
+ import { ensureDirectory, jsonMergeMutation, jsonPruneMutation } from "../services/service-manifest.js";
4
+ import { createProvider } from "./create-provider.js";
5
+ import { createBinaryVersionResolver } from "./versioned-provider.js";
6
+ function providerModel(model) {
7
+ const value = model ?? DEFAULT_FRONTIER_MODEL;
8
+ const prefix = `${PROVIDER_NAME}/`;
9
+ return value.startsWith(prefix) ? value : `${prefix}${value}`;
10
+ }
11
+ const FRONTIER_MODEL_RECORD = FRONTIER_MODELS.reduce((acc, id) => {
12
+ acc[id] = { name: id };
13
+ return acc;
14
+ }, {});
15
+ export const OPEN_CODE_INSTALL_DEFINITION = {
83
16
  id: "opencode",
84
17
  summary: "OpenCode CLI",
85
- check: createOpenCodeBinaryCheck(),
18
+ check: createBinaryExistsCheck("opencode", "opencode-cli-binary", "OpenCode CLI binary must exist"),
86
19
  steps: [
87
20
  {
88
21
  id: "install-opencode-cli-npm",
89
- description: "Install OpenCode CLI via npm",
90
22
  command: "npm",
91
23
  args: ["install", "-g", "opencode-ai"]
92
24
  }
@@ -94,35 +26,9 @@ const OPEN_CODE_INSTALL_DEFINITION = {
94
26
  postChecks: [createOpenCodeVersionCheck()],
95
27
  successMessage: "Installed OpenCode CLI via npm."
96
28
  };
97
- export async function configureOpenCode(options, runOptions) {
98
- await runServiceConfigure(OPEN_CODE_MANIFEST, {
99
- fs: options.fs,
100
- options
101
- }, runOptions);
102
- }
103
- export async function spawnOpenCode(options) {
104
- const args = ["run", options.prompt, ...(options.args ?? [])];
105
- return options.runCommand("opencode", args);
106
- }
107
- export async function removeOpenCode(options, runOptions) {
108
- return runServiceRemove(OPEN_CODE_MANIFEST, {
109
- fs: options.fs,
110
- options
111
- }, runOptions);
112
- }
113
- export async function installOpenCode(context) {
114
- return runServiceInstall(OPEN_CODE_INSTALL_DEFINITION, context);
115
- }
116
- export function registerOpenCodePrerequisites(prerequisites) {
117
- prerequisites.registerAfter(createOpenCodeHealthCheck());
118
- }
119
- function createOpenCodeBinaryCheck() {
120
- return createBinaryExistsCheck("opencode", "opencode-cli-binary", "OpenCode CLI binary must exist");
121
- }
122
29
  function createOpenCodeVersionCheck() {
123
30
  return {
124
31
  id: "opencode-cli-version",
125
- description: "OpenCode CLI responds to --version",
126
32
  async run({ runCommand }) {
127
33
  const result = await runCommand("opencode", ["--version"]);
128
34
  if (result.exitCode !== 0) {
@@ -131,80 +37,113 @@ function createOpenCodeVersionCheck() {
131
37
  }
132
38
  };
133
39
  }
134
- function createOpenCodeHealthCheck() {
135
- return {
136
- id: "opencode-cli-health",
137
- description: "OpenCode CLI health check must succeed",
138
- async run({ runCommand }) {
139
- const result = await spawnOpenCode({
140
- prompt: "Output exactly: OPEN_CODE_OK",
141
- runCommand
142
- });
143
- if (result.exitCode !== 0) {
144
- const detail = formatCommandRunnerResult(result);
145
- throw new Error([
146
- `OpenCode CLI health check failed with exit code ${result.exitCode}.`,
147
- detail
148
- ].join("\n"));
149
- }
150
- const output = result.stdout.trim();
151
- if (output !== "OPEN_CODE_OK") {
152
- const detail = formatCommandRunnerResult(result);
153
- throw new Error([
154
- `OpenCode CLI health check failed: expected "OPEN_CODE_OK" but received "${output}".`,
155
- detail
156
- ].join("\n"));
157
- }
158
- }
159
- };
40
+ function getModelArgs(model) {
41
+ return ["--model", providerModel(model)];
160
42
  }
161
- export const openCodeAdapter = {
43
+ export const openCodeService = createProvider({
162
44
  name: "opencode",
163
45
  label: "OpenCode CLI",
46
+ id: "opencode",
47
+ summary: "Configure OpenCode CLI to use the Poe API.",
164
48
  branding: {
165
49
  colors: {
166
50
  dark: "#4A4F55",
167
51
  light: "#2F3338"
168
52
  }
169
53
  },
170
- supportsSpawn: true,
171
- resolvePaths(env) {
172
- return {
173
- configPath: env.resolveHomePath(".config", "opencode", "config.json"),
174
- authPath: env.resolveHomePath(".local", "share", "opencode", "auth.json")
175
- };
176
- },
177
- registerPrerequisites(manager) {
178
- registerOpenCodePrerequisites(manager);
179
- },
180
- async install(context) {
181
- await installOpenCode({
182
- isDryRun: context.logger.context.dryRun,
183
- runCommand: context.command.runCommand,
184
- logger: (message) => context.logger.info(message)
185
- });
54
+ configurePrompts: {
55
+ model: {
56
+ label: "OpenCode model",
57
+ defaultValue: DEFAULT_FRONTIER_MODEL,
58
+ choices: FRONTIER_MODELS.map((id) => ({
59
+ title: id,
60
+ value: id
61
+ }))
62
+ }
186
63
  },
187
- async configure(context, options) {
188
- await configureOpenCode({
189
- fs: context.command.fs,
190
- configPath: context.paths.configPath,
191
- authPath: context.paths.authPath,
192
- apiKey: options.apiKey
193
- }, options.mutationHooks ? { hooks: options.mutationHooks } : undefined);
64
+ manifest: {
65
+ "*": {
66
+ configure: [
67
+ ensureDirectory({
68
+ path: "~/.config/opencode"
69
+ }),
70
+ ensureDirectory({
71
+ path: "~/.local/share/opencode"
72
+ }),
73
+ jsonMergeMutation({
74
+ target: "~/.config/opencode/config.json",
75
+ value: ({ options }) => {
76
+ const { model } = (options ?? {});
77
+ return {
78
+ $schema: "https://opencode.ai/config.json",
79
+ model: providerModel(model),
80
+ provider: {
81
+ [PROVIDER_NAME]: {
82
+ npm: "@ai-sdk/openai-compatible",
83
+ name: "poe.com",
84
+ options: {
85
+ baseURL: "https://api.poe.com/v1"
86
+ },
87
+ models: FRONTIER_MODEL_RECORD
88
+ }
89
+ }
90
+ };
91
+ }
92
+ }),
93
+ jsonMergeMutation({
94
+ target: "~/.local/share/opencode/auth.json",
95
+ value: ({ options }) => {
96
+ const { apiKey } = (options ?? {});
97
+ return {
98
+ [PROVIDER_NAME]: {
99
+ type: "api",
100
+ key: apiKey ?? ""
101
+ }
102
+ };
103
+ }
104
+ })
105
+ ],
106
+ remove: [
107
+ jsonPruneMutation({
108
+ target: "~/.config/opencode/config.json",
109
+ shape: () => ({
110
+ provider: {
111
+ [PROVIDER_NAME]: true
112
+ }
113
+ })
114
+ }),
115
+ jsonPruneMutation({
116
+ target: "~/.local/share/opencode/auth.json",
117
+ shape: () => ({
118
+ [PROVIDER_NAME]: true
119
+ })
120
+ })
121
+ ]
122
+ }
194
123
  },
195
- async remove(context, options) {
196
- return await removeOpenCode({
197
- fs: context.command.fs,
198
- configPath: context.paths.configPath,
199
- authPath: context.paths.authPath
200
- }, options.mutationHooks ? { hooks: options.mutationHooks } : undefined);
124
+ versionResolver: createBinaryVersionResolver("opencode"),
125
+ install: OPEN_CODE_INSTALL_DEFINITION,
126
+ test(context) {
127
+ return context.runCheck(createCommandExpectationCheck({
128
+ id: "opencode-cli-health",
129
+ command: "opencode",
130
+ args: [
131
+ ...getModelArgs(DEFAULT_FRONTIER_MODEL),
132
+ "run",
133
+ "Output exactly: OPEN_CODE_OK"
134
+ ],
135
+ expectedOutput: "OPEN_CODE_OK"
136
+ }));
201
137
  },
202
- async spawn(context, options) {
203
- return await spawnOpenCode({
204
- prompt: options.prompt,
205
- args: options.args,
206
- runCommand: context.command.runCommand
207
- });
138
+ spawn(context, options) {
139
+ const opts = (options ?? {});
140
+ const args = [
141
+ ...getModelArgs(opts.model),
142
+ "run",
143
+ opts.prompt,
144
+ ...(opts.args ?? [])
145
+ ];
146
+ return context.command.runCommand("opencode", args);
208
147
  }
209
- };
148
+ });
210
149
  //# sourceMappingURL=opencode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"opencode.js","sourceRoot":"","sources":["../../src/providers/opencode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"opencode.js","sourceRoot":"","sources":["../../src/providers/opencode.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { ServiceMutation } from "../services/service-manifest.js";
2
+ type TargetResolver<Options> = string | ((context: {
3
+ options: Options;
4
+ }) => string);
5
+ export declare function makeExecutableMutation<Options>(config: {
6
+ target: TargetResolver<Options>;
7
+ mode?: number;
8
+ }): ServiceMutation<Options>;
9
+ export declare function quoteSinglePath(targetPath: string): string;
10
+ export {};
@@ -0,0 +1,62 @@
1
+ import path from "node:path";
2
+ export function makeExecutableMutation(config) {
3
+ const mode = config.mode ?? 0o700;
4
+ const resolver = toResolver(config.target);
5
+ return {
6
+ kind: "transformFile",
7
+ target: resolver,
8
+ label: (context) => `Make file executable ${resolveTargetPath(resolver, context)}`,
9
+ async transform({ content, context }) {
10
+ if (typeof context.fs.chmod === "function" && content != null) {
11
+ const targetPath = resolveTargetPath(resolver, context);
12
+ await context.fs.chmod(targetPath, mode);
13
+ }
14
+ return { content, changed: false };
15
+ }
16
+ };
17
+ }
18
+ export function quoteSinglePath(targetPath) {
19
+ const escaped = targetPath.replace(/'/g, `'\\''`);
20
+ return `'${escaped}'`;
21
+ }
22
+ function toResolver(input) {
23
+ if (typeof input === "function") {
24
+ return input;
25
+ }
26
+ return () => input;
27
+ }
28
+ function resolveTargetPath(resolver, context) {
29
+ const raw = resolver(context);
30
+ if (!raw.startsWith("~")) {
31
+ return raw;
32
+ }
33
+ let targetPath = raw;
34
+ if (targetPath.startsWith("~./")) {
35
+ targetPath = `~/.${targetPath.slice(3)}`;
36
+ }
37
+ const homeDir = context.env?.homeDir ??
38
+ context.options.env?.homeDir ??
39
+ process.env.HOME ??
40
+ process.env.USERPROFILE;
41
+ if (!homeDir) {
42
+ return targetPath;
43
+ }
44
+ let remainder = targetPath.slice(1);
45
+ if (remainder.startsWith("/")) {
46
+ remainder = remainder.slice(1);
47
+ }
48
+ else if (remainder.startsWith("\\")) {
49
+ remainder = remainder.slice(1);
50
+ }
51
+ else if (remainder.startsWith(".")) {
52
+ remainder = remainder.slice(1);
53
+ if (remainder.startsWith("/")) {
54
+ remainder = remainder.slice(1);
55
+ }
56
+ else if (remainder.startsWith("\\")) {
57
+ remainder = remainder.slice(1);
58
+ }
59
+ }
60
+ return remainder.length === 0 ? homeDir : path.join(homeDir, remainder);
61
+ }
62
+ //# sourceMappingURL=provider-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-helpers.js","sourceRoot":"","sources":["../../src/providers/provider-helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ProviderContext } from "../cli/service-registry.js";
2
+ export type ProviderVersionResolver<TPaths extends Record<string, unknown>> = (context: ProviderContext<TPaths>) => Promise<string | null>;
3
+ export declare function createBinaryVersionResolver(binaryName: string): ProviderVersionResolver<Record<string, string>>;
@@ -0,0 +1,9 @@
1
+ import { detectBinaryVersion } from "../utils/binary-version.js";
2
+ export function createBinaryVersionResolver(binaryName) {
3
+ return async (context) => {
4
+ const result = await detectBinaryVersion(context.command.runCommand, binaryName);
5
+ context.logger.verbose(`Detected ${binaryName} version ${result.version} (raw output: ${result.rawOutput})`);
6
+ return result.version;
7
+ };
8
+ }
9
+ //# sourceMappingURL=versioned-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"versioned-provider.js","sourceRoot":"","sources":["../../src/providers/versioned-provider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAMjE,MAAM,UAAU,2BAA2B,CACzC,UAAkB;IAElB,OAAO,KAAK,EAAE,OAAO,EAAE,EAAE;QACvB,MAAM,MAAM,GAAG,MAAM,mBAAmB,CACtC,OAAO,CAAC,OAAO,CAAC,UAAU,EAC1B,UAAU,CACX,CAAC;QACF,OAAO,CAAC,MAAM,CAAC,OAAO,CACpB,YAAY,UAAU,YAAY,MAAM,CAAC,OAAO,iBAAiB,MAAM,CAAC,SAAS,GAAG,CACrF,CAAC;QACF,OAAO,MAAM,CAAC,OAAO,CAAC;IACxB,CAAC,CAAC;AACJ,CAAC"}
@@ -6,6 +6,20 @@ export interface CredentialsStoreOptions {
6
6
  export interface SaveCredentialsOptions extends CredentialsStoreOptions {
7
7
  apiKey: string;
8
8
  }
9
+ export interface ConfiguredServiceMetadata {
10
+ version: string | null;
11
+ files: string[];
12
+ }
13
+ export interface SaveConfiguredServiceOptions extends CredentialsStoreOptions {
14
+ service: string;
15
+ metadata: ConfiguredServiceMetadata;
16
+ }
17
+ export interface RemoveConfiguredServiceOptions extends CredentialsStoreOptions {
18
+ service: string;
19
+ }
9
20
  export declare function saveCredentials(options: SaveCredentialsOptions): Promise<void>;
10
21
  export declare function loadCredentials(options: CredentialsStoreOptions): Promise<string | null>;
11
22
  export declare function deleteCredentials(options: CredentialsStoreOptions): Promise<boolean>;
23
+ export declare function loadConfiguredServices(options: CredentialsStoreOptions): Promise<Record<string, ConfiguredServiceMetadata>>;
24
+ export declare function saveConfiguredService(options: SaveConfiguredServiceOptions): Promise<void>;
25
+ export declare function removeConfiguredService(options: RemoveConfiguredServiceOptions): Promise<boolean>;