odai-dsh-agent 0.2.16 → 0.2.18

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/LICENSE +21 -21
  2. package/README.md +155 -155
  3. package/build/bin/odai-dsh-agent.mjs +36 -29
  4. package/build/bin/odai-dsh-agent.mjs.map +1 -1
  5. package/build/src/control-center-installer.d.mts +7 -2
  6. package/build/src/control-center-installer.d.mts.map +1 -1
  7. package/build/src/control-center-installer.mjs +251 -31
  8. package/build/src/control-center-installer.mjs.map +1 -1
  9. package/build/src/control-center-prompt.d.mts +1 -1
  10. package/build/src/control-center-prompt.d.mts.map +1 -1
  11. package/build/src/control-center-prompt.mjs +14 -2
  12. package/build/src/control-center-prompt.mjs.map +1 -1
  13. package/client/client.js +125 -32
  14. package/control-center.cordis.patch.yml +3 -3
  15. package/package.json +89 -89
  16. package/preset/odai/agent.cordis.yml +266 -266
  17. package/preset/odai/preset.yml +3 -3
  18. package/preset/odai/runtime/control-center-runtime.d.mts +2 -0
  19. package/preset/odai/runtime/control-center-runtime.d.mts.map +1 -1
  20. package/preset/odai/runtime/control-center-runtime.mjs +18 -9
  21. package/preset/odai/runtime/control-center-runtime.mjs.map +1 -1
  22. package/preset/odai/runtime/role-overlays.mjs +8 -8
  23. package/preset/odai/runtime/session-evidence.d.mts +1 -0
  24. package/preset/odai/runtime/session-evidence.d.mts.map +1 -1
  25. package/preset/odai/runtime/session-evidence.mjs +14 -0
  26. package/preset/odai/runtime/session-evidence.mjs.map +1 -1
  27. package/preset/odai/skills/odai/SKILL.md +68 -68
  28. package/preset/odai/skills/odai/agents/openai.yaml +4 -4
  29. package/preset/odai/skills/odai/assets/claude-agents/agent.md +11 -11
  30. package/preset/odai/skills/odai/assets/codex-agents/config.toml +11 -11
  31. package/preset/odai/skills/odai/assets/codex-agents/role.toml +5 -5
  32. package/preset/odai/skills/odai/assets/copilot-agents/agent.md +13 -13
  33. package/preset/odai/skills/odai/assets/hooks-policy.example.json +24 -24
  34. package/preset/odai/skills/odai/assets/routing-roles/controller.md +15 -15
  35. package/preset/odai/skills/odai/assets/routing-roles/frontend.md +7 -7
  36. package/preset/odai/skills/odai/assets/routing-roles/planner.md +28 -28
  37. package/preset/odai/skills/odai/assets/routing-roles/researcher.md +6 -6
  38. package/preset/odai/skills/odai/assets/routing-roles/reviewer.md +11 -11
  39. package/preset/odai/skills/odai/assets/task-state.md +14 -14
  40. package/preset/odai/skills/odai/manifest.json +52 -52
  41. package/preset/odai/skills/odai/references/craft.md +54 -54
  42. package/preset/odai/skills/odai/references/dao.md +31 -31
  43. package/preset/odai/skills/odai/references/leverage.md +50 -50
  44. package/preset/odai/skills/odai/references/planning.md +83 -83
  45. package/preset/odai/skills/odai/references/support.md +30 -30
  46. package/preset/odai/skills/odai/references/verification.md +24 -24
  47. package/preset/odai/skills/odai/scripts/build-hooks.mjs +273 -273
  48. package/preset/odai/skills/odai/scripts/build-routing.mjs +315 -315
  49. package/preset/odai/skills/odai/scripts/install-routing.mjs +393 -393
  50. package/preset/odai/skills/odai/scripts/odai-hook.mjs +457 -457
  51. package/preset/odai/skills/odai/scripts/run-role.mjs +285 -285
  52. package/preset/odai/skills/odai/scripts/verify-routing.mjs +103 -103
@@ -1,7 +1,9 @@
1
1
  import { execFileSync } from "node:child_process";
2
- import { readFile } from "node:fs/promises";
2
+ import { randomUUID } from "node:crypto";
3
+ import { mkdir, readFile, realpath, rm, writeFile } from "node:fs/promises";
3
4
  import { dirname, resolve, sep } from "node:path";
4
5
  import { fileURLToPath } from "node:url";
6
+ import { parse as parseYaml } from "yaml";
5
7
  import { resolveDshHome } from "./installer.mjs";
6
8
  const moduleDirectory = dirname(fileURLToPath(import.meta.url));
7
9
  const packageRoot = resolve(moduleDirectory, moduleDirectory.endsWith(`${sep}build${sep}src`) ? "../.." : "..");
@@ -10,26 +12,38 @@ if (!isRecord(parsedMetadata) || typeof parsedMetadata.name !== "string" || type
10
12
  throw new Error("odai-dsh-agent package metadata is invalid for Control Center management");
11
13
  }
12
14
  const packageMetadata = { name: parsedMetadata.name, version: parsedMetadata.version };
15
+ const PROFILE_STATE_FILES = Object.freeze(["package.json", "pnpm-lock.yaml", "pnpm-workspace.yaml"]);
16
+ const EXACT_VERSION_PATTERN = /^(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)(?:-[0-9A-Za-z.-]+)?$/u;
13
17
  function isRecord(value) {
14
18
  return typeof value === "object" && value !== null && !Array.isArray(value);
15
19
  }
20
+ function errorMessage(error) {
21
+ return error instanceof Error ? error.message : String(error);
22
+ }
23
+ function errorCode(error) {
24
+ return isRecord(error) && typeof error.code === "string" ? error.code : undefined;
25
+ }
16
26
  function assertProfile(value) {
17
27
  if (!/^[A-Za-z0-9][A-Za-z0-9._-]*$/u.test(value)) {
18
28
  throw new TypeError("profile must contain only letters, digits, dots, underscores, or hyphens");
19
29
  }
20
30
  return value;
21
31
  }
22
- async function profileMetadata(path) {
23
- let source;
32
+ async function optionalFile(path) {
24
33
  try {
25
- source = await readFile(path, "utf8");
34
+ return await readFile(path);
26
35
  }
27
36
  catch (error) {
28
- if (isRecord(error) && error.code === "ENOENT")
37
+ if (errorCode(error) === "ENOENT")
29
38
  return undefined;
30
39
  throw error;
31
40
  }
32
- const parsed = JSON.parse(source);
41
+ }
42
+ async function profileMetadata(path) {
43
+ const source = await optionalFile(path);
44
+ if (!source)
45
+ return undefined;
46
+ const parsed = JSON.parse(source.toString("utf8"));
33
47
  if (!isRecord(parsed))
34
48
  throw new TypeError(`DSH profile package metadata ${path} must be an object`);
35
49
  const dependencies = isRecord(parsed.dependencies)
@@ -42,30 +56,162 @@ async function profileMetadata(path) {
42
56
  : undefined;
43
57
  return { dependencies, dsh };
44
58
  }
59
+ async function lockDependencyIssues(target, dependency) {
60
+ const source = await optionalFile(resolve(target, "pnpm-lock.yaml"));
61
+ if (!source)
62
+ return [];
63
+ let parsed;
64
+ try {
65
+ parsed = parseYaml(source.toString("utf8"));
66
+ }
67
+ catch (error) {
68
+ return [`profile lockfile is invalid YAML: ${errorMessage(error)}`];
69
+ }
70
+ if (!isRecord(parsed) || !isRecord(parsed.importers) || !isRecord(parsed.importers["."])) {
71
+ return ["profile lockfile is missing the root importer"];
72
+ }
73
+ const importer = parsed.importers["."];
74
+ const dependencies = isRecord(importer.dependencies) ? importer.dependencies : undefined;
75
+ const entry = dependencies?.[packageMetadata.name];
76
+ if (!isRecord(entry))
77
+ return [`profile lockfile is missing ${packageMetadata.name}`];
78
+ const specifier = typeof entry.specifier === "string" ? entry.specifier : undefined;
79
+ const version = typeof entry.version === "string" ? entry.version : undefined;
80
+ const issues = [];
81
+ if (specifier !== dependency)
82
+ issues.push(`lockfile specifier ${specifier ?? "<missing>"} does not match dependency ${dependency}`);
83
+ if (!version || !version.startsWith(dependency)) {
84
+ issues.push(`lockfile version ${version ?? "<missing>"} does not resolve dependency ${dependency}`);
85
+ }
86
+ return issues;
87
+ }
88
+ function localDependency(dependency) {
89
+ return /^(?:file|link|workspace):/iu.test(dependency)
90
+ || /^\.{0,2}[/\\]/u.test(dependency)
91
+ || /^[A-Za-z]:[/\\]/u.test(dependency)
92
+ || dependency.endsWith(".tgz");
93
+ }
94
+ function exactRegistryVersion(dependency) {
95
+ return EXACT_VERSION_PATTERN.test(dependency) ? dependency : undefined;
96
+ }
97
+ function compareVersions(left, right) {
98
+ const parse = (value) => {
99
+ const match = /^(\d+)\.(\d+)\.(\d+)(?:-([0-9A-Za-z.-]+))?$/u.exec(value);
100
+ if (!match)
101
+ throw new TypeError(`invalid exact package version ${value}`);
102
+ return [Number(match[1]), Number(match[2]), Number(match[3]), match[4]];
103
+ };
104
+ const a = parse(left);
105
+ const b = parse(right);
106
+ for (let index = 0; index < 3; index += 1) {
107
+ const difference = a[index] - b[index];
108
+ if (difference !== 0)
109
+ return difference;
110
+ }
111
+ if (a[3] === b[3])
112
+ return 0;
113
+ if (a[3] === undefined)
114
+ return 1;
115
+ if (b[3] === undefined)
116
+ return -1;
117
+ return a[3].localeCompare(b[3]);
118
+ }
119
+ async function resolvedPackage(target) {
120
+ const manifestPath = resolve(target, "node_modules", packageMetadata.name, "package.json");
121
+ const source = await optionalFile(manifestPath);
122
+ if (!source)
123
+ return undefined;
124
+ const issues = [];
125
+ let parsed;
126
+ try {
127
+ parsed = JSON.parse(source.toString("utf8"));
128
+ }
129
+ catch (error) {
130
+ return { complete: false, issues: [`resolved package metadata is invalid JSON: ${errorMessage(error)}`] };
131
+ }
132
+ if (!isRecord(parsed) || parsed.name !== packageMetadata.name || typeof parsed.version !== "string") {
133
+ return { complete: false, issues: ["resolved package metadata has the wrong name or version"] };
134
+ }
135
+ let root;
136
+ try {
137
+ root = await realpath(dirname(manifestPath));
138
+ }
139
+ catch (error) {
140
+ issues.push(`cannot resolve installed package root: ${errorMessage(error)}`);
141
+ }
142
+ for (const relativePath of [
143
+ "build/src/installer.mjs",
144
+ "preset/odai/runtime/control-center-host.mjs",
145
+ "preset/odai/runtime/control-center-runtime.mjs",
146
+ "client/client.js",
147
+ ]) {
148
+ if (!await optionalFile(resolve(dirname(manifestPath), relativePath))) {
149
+ issues.push(`resolved package is missing ${relativePath}`);
150
+ }
151
+ }
152
+ return {
153
+ ...(root ? { root } : {}),
154
+ version: parsed.version,
155
+ complete: issues.length === 0,
156
+ issues,
157
+ };
158
+ }
45
159
  export async function inspectAgentControlCenter(options = {}) {
46
160
  const dshHome = resolveDshHome(options.dshHome);
47
161
  const profile = assertProfile(options.profile ?? "web");
48
162
  const target = resolve(dshHome, "profiles", profile);
49
163
  const metadata = await profileMetadata(resolve(target, "package.json"));
50
- if (!metadata)
51
- return { status: "absent", issues: [], dshHome, profile, target };
52
- const dependency = metadata.dependencies?.[packageMetadata.name];
53
- const bundled = metadata.dsh?.profile?.bundles?.includes(packageMetadata.name) === true;
54
- if (!dependency && !bundled)
55
- return { status: "absent", issues: [], dshHome, profile, target };
164
+ const dependency = metadata?.dependencies?.[packageMetadata.name];
165
+ const bundleCount = metadata?.dsh?.profile?.bundles?.filter((entry) => entry === packageMetadata.name).length ?? 0;
166
+ const base = { dshHome, profile, target, targetVersion: packageMetadata.version };
167
+ if (!dependency && bundleCount === 0)
168
+ return { status: "absent", issues: [], ...base };
56
169
  const issues = [];
57
170
  if (!dependency)
58
171
  issues.push(`missing ${packageMetadata.name} profile dependency`);
59
- if (!bundled)
172
+ if (bundleCount === 0)
60
173
  issues.push(`missing ${packageMetadata.name} profile bundle entry`);
61
- return {
62
- status: issues.length === 0 ? "installed" : "drifted",
63
- issues,
64
- dshHome,
65
- profile,
66
- target,
174
+ if (bundleCount > 1)
175
+ issues.push(`duplicate ${packageMetadata.name} profile bundle entries`);
176
+ const installed = await resolvedPackage(target);
177
+ if (!installed)
178
+ issues.push(`resolved ${packageMetadata.name} package is missing from the profile install tree`);
179
+ else
180
+ issues.push(...installed.issues);
181
+ const detail = {
182
+ ...base,
67
183
  ...(dependency ? { dependency } : {}),
184
+ ...(installed?.version ? { installedVersion: installed.version } : {}),
185
+ ...(installed?.root ? { resolvedRoot: installed.root } : {}),
68
186
  };
187
+ if (!dependency || bundleCount !== 1)
188
+ return { status: "partial-drift", issues, ...detail };
189
+ if (localDependency(dependency)) {
190
+ issues.unshift(`profile dependency uses local source ${dependency}`);
191
+ return { status: "local-link", issues, ...detail };
192
+ }
193
+ const declaredVersion = exactRegistryVersion(dependency);
194
+ if (!declaredVersion) {
195
+ issues.unshift(`profile dependency is not an exact registry version: ${dependency}`);
196
+ return { status: "unknown-source", issues, ...detail };
197
+ }
198
+ const lockIssues = await lockDependencyIssues(target, dependency);
199
+ if (lockIssues.length > 0)
200
+ return { status: "partial-drift", issues: [...lockIssues, ...issues], ...detail };
201
+ if (!installed?.version || !installed.complete)
202
+ return { status: "partial-drift", issues, ...detail };
203
+ if (installed.version !== declaredVersion) {
204
+ issues.unshift(`resolved package version ${installed.version} does not match dependency ${declaredVersion}`);
205
+ return { status: "partial-drift", issues, ...detail };
206
+ }
207
+ const order = compareVersions(installed.version, packageMetadata.version);
208
+ if (order < 0)
209
+ return { status: "registry-upgrade", issues, ...detail };
210
+ if (order > 0) {
211
+ issues.unshift(`installed registry version ${installed.version} is newer than this installer ${packageMetadata.version}`);
212
+ return { status: "newer", issues, ...detail };
213
+ }
214
+ return { status: "current", issues: [], ...detail };
69
215
  }
70
216
  function runPluginCommand(action, operand, options) {
71
217
  const dsh = options.dshBin ?? process.env.DSH_BIN ?? "dsh";
@@ -77,30 +223,104 @@ function runPluginCommand(action, operand, options) {
77
223
  env: { ...process.env, DSH_HOME: resolveDshHome(options.dshHome) },
78
224
  ...(platform === "win32" ? { shell: true } : {}),
79
225
  };
80
- execute(command, ["plugin", "--profile", assertProfile(options.profile ?? "web"), action, operand], processOptions);
226
+ const args = ["plugin", "--profile", assertProfile(options.profile ?? "web"), action, operand];
227
+ if (action === "add")
228
+ args.push("--save-exact");
229
+ execute(command, args, processOptions);
230
+ }
231
+ async function captureProfile(target) {
232
+ return Promise.all(PROFILE_STATE_FILES.map(async (relativePath) => ({
233
+ path: resolve(target, relativePath),
234
+ content: await optionalFile(resolve(target, relativePath)),
235
+ })));
236
+ }
237
+ async function restoreProfile(snapshot) {
238
+ for (const file of snapshot) {
239
+ if (file.content === undefined)
240
+ await rm(file.path, { force: true });
241
+ else {
242
+ await mkdir(dirname(file.path), { recursive: true });
243
+ await writeFile(file.path, file.content);
244
+ }
245
+ }
246
+ }
247
+ function previousOperand(inspection) {
248
+ const dependency = inspection.dependency;
249
+ if (!dependency)
250
+ return undefined;
251
+ return localDependency(dependency) ? dependency : `${packageMetadata.name}@${dependency}`;
252
+ }
253
+ async function retainRollbackEvidence(dshHome, snapshot, failure) {
254
+ const root = resolve(dshHome, "odai", "control-center-backups", `${Date.now()}-${randomUUID()}`);
255
+ await mkdir(root, { recursive: true });
256
+ for (const file of snapshot) {
257
+ if (file.content !== undefined)
258
+ await writeFile(resolve(root, file.path.split(/[\\/]/u).at(-1) ?? "state"), file.content);
259
+ }
260
+ await writeFile(resolve(root, "failure.txt"), `${failure}\n`, "utf8");
261
+ return root;
262
+ }
263
+ async function rollbackProfile(before, snapshot, options) {
264
+ const operand = previousOperand(before);
265
+ if (operand)
266
+ runPluginCommand("add", operand, options);
267
+ else
268
+ runPluginCommand("remove", packageMetadata.name, options);
269
+ await restoreProfile(snapshot);
81
270
  }
82
271
  export async function installAgentControlCenter(options = {}) {
83
272
  const current = await inspectAgentControlCenter(options);
84
- if (current.status === "drifted") {
85
- throw new Error(`refusing to replace drifted Control Center profile state at ${current.target}: ${current.issues.join("; ")}`);
273
+ if (current.status === "current") {
274
+ return Object.freeze({
275
+ operation: "unchanged",
276
+ target: current.target,
277
+ profile: current.profile,
278
+ dependency: current.dependency ?? "",
279
+ previousStatus: current.status,
280
+ });
86
281
  }
87
- if (current.status === "installed") {
88
- return Object.freeze({ operation: "unchanged", target: current.target, profile: current.profile, dependency: current.dependency ?? "" });
282
+ if (current.status === "newer") {
283
+ throw new Error(`refusing to downgrade Agent Control Center at ${current.target}: ${current.issues.join("; ")}`);
89
284
  }
285
+ const snapshot = await captureProfile(current.target);
90
286
  const packageSpec = options.packageSpec ?? `${packageMetadata.name}@${packageMetadata.version}`;
91
- runPluginCommand("add", packageSpec, options);
92
- const installed = await inspectAgentControlCenter(options);
93
- if (installed.status !== "installed" || !installed.dependency) {
94
- throw new Error(`DSH plugin manager did not install the Agent Control Center completely: ${installed.issues.join("; ") || installed.status}`);
287
+ try {
288
+ runPluginCommand("add", packageSpec, options);
289
+ const installed = await inspectAgentControlCenter(options);
290
+ if (installed.status !== "current" || !installed.dependency) {
291
+ throw new Error(`DSH plugin manager did not install the exact Agent Control Center package: ${installed.issues.join("; ") || installed.status}`);
292
+ }
293
+ const operation = current.status === "absent"
294
+ ? "installed"
295
+ : current.status === "registry-upgrade"
296
+ ? "updated"
297
+ : "repaired";
298
+ return Object.freeze({
299
+ operation,
300
+ target: installed.target,
301
+ profile: installed.profile,
302
+ dependency: installed.dependency,
303
+ previousStatus: current.status,
304
+ });
305
+ }
306
+ catch (error) {
307
+ try {
308
+ await rollbackProfile(current, snapshot, options);
309
+ }
310
+ catch (rollbackError) {
311
+ const detail = `install failed: ${errorMessage(error)}\nrollback failed: ${errorMessage(rollbackError)}`;
312
+ const backupPath = await retainRollbackEvidence(current.dshHome, snapshot, detail);
313
+ throw new Error(`${detail}\nprofile recovery evidence retained at ${backupPath}`);
314
+ }
315
+ throw new Error(`${errorMessage(error)}; previous Control Center profile state was restored`);
95
316
  }
96
- return Object.freeze({ operation: "installed", target: installed.target, profile: installed.profile, dependency: installed.dependency });
97
317
  }
98
318
  export async function uninstallAgentControlCenter(options = {}) {
99
319
  const current = await inspectAgentControlCenter(options);
100
320
  if (current.status === "absent")
101
321
  return Object.freeze({ operation: "absent", target: current.target, profile: current.profile });
102
- if (current.status === "drifted") {
103
- throw new Error(`refusing to remove drifted Control Center profile state at ${current.target}: ${current.issues.join("; ")}`);
322
+ if (current.status === "partial-drift") {
323
+ throw new Error(`refusing to remove partially owned Control Center profile state at ${current.target}: ${current.issues.join("; ")}`);
104
324
  }
105
325
  runPluginCommand("remove", packageMetadata.name, options);
106
326
  const removed = await inspectAgentControlCenter(options);
@@ -1 +1 @@
1
- {"version":3,"file":"control-center-installer.mjs","sourceRoot":"","sources":["../../src/control-center-installer.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAoCjD,MAAM,eAAe,GAAG,OAAO,CAAC,aAAa,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAChE,MAAM,WAAW,GAAG,OAAO,CAAC,eAAe,EAAE,eAAe,CAAC,QAAQ,CAAC,GAAG,GAAG,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAChH,MAAM,cAAc,GAAY,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AACzG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,OAAO,cAAc,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,cAAc,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;IACvH,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC;AAC9F,CAAC;AACD,MAAM,eAAe,GAAoB,EAAE,IAAI,EAAE,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,cAAc,CAAC,OAAO,EAAE,CAAC;AAExG,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,aAAa,CAAC,KAAa;IAClC,IAAI,CAAC,+BAA+B,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,MAAM,IAAI,SAAS,CAAC,0EAA0E,CAAC,CAAC;IAClG,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,IAAY;IACzC,IAAI,MAAc,CAAC;IACnB,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACxC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAC;QACjE,MAAM,KAAK,CAAC;IACd,CAAC;IACD,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC3C,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,MAAM,IAAI,SAAS,CAAC,gCAAgC,IAAI,oBAAoB,CAAC,CAAC;IACrG,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC;QAChD,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAA6B,EAAE,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC;QACpI,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC;QAC9D,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC;oBAC7D,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC;oBAC1F,CAAC,CAAC,SAAS,EAAE,EAAE;QACnB,CAAC,CAAC,SAAS,CAAC;IACd,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC;AAC/B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,OAAO,GAA8B,EAAE;IAEvC,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,OAAO,IAAI,KAAK,CAAC,CAAC;IACxD,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC;IACxE,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IACjF,MAAM,UAAU,GAAG,QAAQ,CAAC,YAAY,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IACjE,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;IACxF,IAAI,CAAC,UAAU,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAC/F,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,CAAC,UAAU;QAAE,MAAM,CAAC,IAAI,CAAC,WAAW,eAAe,CAAC,IAAI,qBAAqB,CAAC,CAAC;IACnF,IAAI,CAAC,OAAO;QAAE,MAAM,CAAC,IAAI,CAAC,WAAW,eAAe,CAAC,IAAI,uBAAuB,CAAC,CAAC;IAClF,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;QACrD,MAAM;QACN,OAAO;QACP,OAAO;QACP,MAAM;QACN,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACtC,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CACvB,MAAwB,EACxB,OAAe,EACf,OAAkC;IAElC,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,KAAK,CAAC;IAC3D,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC;IACtD,MAAM,OAAO,GAAG,QAAQ,KAAK,OAAO,IAAI,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC;IACxE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,YAAY,CAAC;IAChD,MAAM,cAAc,GAA0C;QAC5D,QAAQ,EAAE,MAAM;QAChB,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QAClE,GAAG,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACjD,CAAC;IACF,OAAO,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,aAAa,CAAC,OAAO,CAAC,OAAO,IAAI,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,CAAC,CAAC;AACtH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,OAAO,GAA8B,EAAE;IAEvC,MAAM,OAAO,GAAG,MAAM,yBAAyB,CAAC,OAAO,CAAC,CAAC;IACzD,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,+DAA+D,OAAO,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjI,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;QACnC,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,EAAE,EAAE,CAAC,CAAC;IAC3I,CAAC;IACD,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,GAAG,eAAe,CAAC,IAAI,IAAI,eAAe,CAAC,OAAO,EAAE,CAAC;IAChG,gBAAgB,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;IAC9C,MAAM,SAAS,GAAG,MAAM,yBAAyB,CAAC,OAAO,CAAC,CAAC;IAC3D,IAAI,SAAS,CAAC,MAAM,KAAK,WAAW,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;QAC9D,MAAM,IAAI,KAAK,CAAC,2EAA2E,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;IAChJ,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;AAC3I,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,OAAO,GAA8B,EAAE;IAEvC,MAAM,OAAO,GAAG,MAAM,yBAAyB,CAAC,OAAO,CAAC,CAAC;IACzD,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IACjI,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,8DAA8D,OAAO,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChI,CAAC;IACD,gBAAgB,CAAC,QAAQ,EAAE,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC1D,MAAM,OAAO,GAAG,MAAM,yBAAyB,CAAC,OAAO,CAAC,CAAC;IACzD,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,0EAA0E,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC3I,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;AACvG,CAAC"}
1
+ {"version":3,"file":"control-center-installer.mjs","sourceRoot":"","sources":["../../src/control-center-installer.mts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  import type { Readable, Writable } from "node:stream";
2
2
  export declare function acceptsControlCenterInstall(answer: string): boolean;
3
- export declare function promptForControlCenterInstall(input?: Readable, output?: Writable, profile?: string): Promise<boolean>;
3
+ export declare function promptForControlCenterInstall(input?: Readable, output?: Writable, profile?: string, action?: string): Promise<boolean>;
4
4
  //# sourceMappingURL=control-center-prompt.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"control-center-prompt.d.mts","sourceRoot":"","sources":["../../src/control-center-prompt.mts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEtD,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEnE;AAED,wBAAsB,6BAA6B,CACjD,KAAK,GAAE,QAAwB,EAC/B,MAAM,GAAE,QAAyB,EACjC,OAAO,SAAQ,GACd,OAAO,CAAC,OAAO,CAAC,CAQlB"}
1
+ {"version":3,"file":"control-center-prompt.d.mts","sourceRoot":"","sources":["../../src/control-center-prompt.mts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEtD,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEnE;AAED,wBAAsB,6BAA6B,CACjD,KAAK,GAAE,QAAwB,EAC/B,MAAM,GAAE,QAAyB,EACjC,OAAO,SAAQ,EACf,MAAM,SAA4C,GACjD,OAAO,CAAC,OAAO,CAAC,CAgBlB"}
@@ -1,13 +1,25 @@
1
+ import { once } from "node:events";
1
2
  import { createInterface } from "node:readline/promises";
2
3
  export function acceptsControlCenterInstall(answer) {
3
4
  return /^(?:|y|yes)$/iu.test(answer.trim());
4
5
  }
5
- export async function promptForControlCenterInstall(input = process.stdin, output = process.stdout, profile = "web") {
6
+ export async function promptForControlCenterInstall(input = process.stdin, output = process.stdout, profile = "web", action = `把 Odai 控制中心安装到 DSH profile “${profile}”`) {
7
+ if (input.readableEnded)
8
+ return false;
6
9
  const readline = createInterface({ input, output });
10
+ const eof = Symbol("control-center-prompt-eof");
7
11
  try {
8
- const answer = await readline.question(`同时把 Odai 控制中心安装到 DSH profile “${profile}”?[Y/n] `);
12
+ const answer = await Promise.race([
13
+ readline.question(`${action}?回车或 y/yes 确认,n/no 取消 [Y/n] `),
14
+ once(input, "end").then(() => eof),
15
+ ]);
16
+ if (typeof answer !== "string")
17
+ return false;
9
18
  return acceptsControlCenterInstall(answer);
10
19
  }
20
+ catch {
21
+ return false;
22
+ }
11
23
  finally {
12
24
  readline.close();
13
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"control-center-prompt.mjs","sourceRoot":"","sources":["../../src/control-center-prompt.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAGzD,MAAM,UAAU,2BAA2B,CAAC,MAAc;IACxD,OAAO,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,6BAA6B,CACjD,KAAK,GAAa,OAAO,CAAC,KAAK,EAC/B,MAAM,GAAa,OAAO,CAAC,MAAM,EACjC,OAAO,GAAG,KAAK;IAEf,MAAM,QAAQ,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IACpD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,iCAAiC,OAAO,UAAU,CAAC,CAAC;QAC3F,OAAO,2BAA2B,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;YAAS,CAAC;QACT,QAAQ,CAAC,KAAK,EAAE,CAAC;IACnB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"control-center-prompt.mjs","sourceRoot":"","sources":["../../src/control-center-prompt.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAGzD,MAAM,UAAU,2BAA2B,CAAC,MAAc;IACxD,OAAO,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,6BAA6B,CACjD,KAAK,GAAa,OAAO,CAAC,KAAK,EAC/B,MAAM,GAAa,OAAO,CAAC,MAAM,EACjC,OAAO,GAAG,KAAK,EACf,MAAM,GAAG,+BAA+B,OAAO,GAAG;IAElD,IAAI,KAAK,CAAC,aAAa;QAAE,OAAO,KAAK,CAAC;IACtC,MAAM,QAAQ,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IACpD,MAAM,GAAG,GAAG,MAAM,CAAC,2BAA2B,CAAC,CAAC;IAChD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;YAChC,QAAQ,CAAC,QAAQ,CAAC,GAAG,MAAM,8BAA8B,CAAC;YAC1D,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC;SACnC,CAAC,CAAC;QACH,IAAI,OAAO,MAAM,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QAC7C,OAAO,2BAA2B,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;YAAS,CAAC;QACT,QAAQ,CAAC,KAAK,EAAE,CAAC;IACnB,CAAC;AACH,CAAC"}