@serviceme/devtools-cli 0.1.6 → 0.1.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.
Files changed (3) hide show
  1. package/dist/bridgeServer.js +533 -426
  2. package/dist/cli.js +968 -882
  3. package/package.json +6 -4
package/dist/cli.js CHANGED
@@ -1,54 +1,15 @@
1
1
  #!/usr/bin/env node
2
- 'use strict';
3
-
4
- var fs12 = require('fs/promises');
5
- var path11 = require('path');
6
- var child_process = require('child_process');
7
- var fs9 = require('fs');
8
- var crypto = require('crypto');
9
- var os = require('os');
10
- var readline = require('readline');
11
-
12
- function _interopNamespace(e) {
13
- if (e && e.__esModule) return e;
14
- var n = Object.create(null);
15
- if (e) {
16
- Object.keys(e).forEach(function (k) {
17
- if (k !== 'default') {
18
- var d = Object.getOwnPropertyDescriptor(e, k);
19
- Object.defineProperty(n, k, d.get ? d : {
20
- enumerable: true,
21
- get: function () { return e[k]; }
22
- });
23
- }
24
- });
25
- }
26
- n.default = e;
27
- return Object.freeze(n);
28
- }
29
-
30
- var fs12__namespace = /*#__PURE__*/_interopNamespace(fs12);
31
- var path11__namespace = /*#__PURE__*/_interopNamespace(path11);
32
- var fs9__namespace = /*#__PURE__*/_interopNamespace(fs9);
33
- var os__namespace = /*#__PURE__*/_interopNamespace(os);
34
- var readline__namespace = /*#__PURE__*/_interopNamespace(readline);
35
-
2
+ "use strict";
36
3
  var __create = Object.create;
37
4
  var __defProp = Object.defineProperty;
38
5
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
39
6
  var __getOwnPropNames = Object.getOwnPropertyNames;
40
7
  var __getProtoOf = Object.getPrototypeOf;
41
8
  var __hasOwnProp = Object.prototype.hasOwnProperty;
42
- var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
43
- get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
44
- }) : x)(function(x) {
45
- if (typeof require !== "undefined") return require.apply(this, arguments);
46
- throw Error('Dynamic require of "' + x + '" is not supported');
47
- });
48
9
  var __esm = (fn, res) => function __init() {
49
10
  return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
50
11
  };
51
- var __commonJS = (cb, mod) => function __require2() {
12
+ var __commonJS = (cb, mod) => function __require() {
52
13
  return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
53
14
  };
54
15
  var __export = (target, all) => {
@@ -68,25 +29,28 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
68
29
  // file that has been converted to a CommonJS file using a Babel-
69
30
  // compatible transform (i.e. "__esModule" has not been set), then set
70
31
  // "default" to the CommonJS "module.exports" for node compatibility.
71
- !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
32
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
72
33
  mod
73
34
  ));
74
35
 
75
36
  // ../../packages/serviceme-protocol/src/agent.ts
76
37
  var init_agent = __esm({
77
38
  "../../packages/serviceme-protocol/src/agent.ts"() {
39
+ "use strict";
78
40
  }
79
41
  });
80
42
 
81
43
  // ../../packages/serviceme-protocol/src/scheduled-tasks.ts
82
44
  var init_scheduled_tasks = __esm({
83
45
  "../../packages/serviceme-protocol/src/scheduled-tasks.ts"() {
46
+ "use strict";
84
47
  }
85
48
  });
86
49
 
87
50
  // ../../packages/serviceme-protocol/src/skill.ts
88
51
  var init_skill = __esm({
89
52
  "../../packages/serviceme-protocol/src/skill.ts"() {
53
+ "use strict";
90
54
  }
91
55
  });
92
56
 
@@ -109,6 +73,7 @@ function isBridgeRequest(value) {
109
73
  var SERVICEME_PROTOCOL_VERSION, BRIDGE_METHODS;
110
74
  var init_bridge = __esm({
111
75
  "../../packages/serviceme-protocol/src/bridge.ts"() {
76
+ "use strict";
112
77
  init_agent();
113
78
  init_scheduled_tasks();
114
79
  init_skill();
@@ -149,6 +114,7 @@ function createCliFailure(error) {
149
114
  var SERVICEME_CLI_SCHEMA_VERSION;
150
115
  var init_cli = __esm({
151
116
  "../../packages/serviceme-protocol/src/cli.ts"() {
117
+ "use strict";
152
118
  SERVICEME_CLI_SCHEMA_VERSION = 1;
153
119
  }
154
120
  });
@@ -157,6 +123,7 @@ var init_cli = __esm({
157
123
  var COPILOT_ERROR_CODES;
158
124
  var init_copilot = __esm({
159
125
  "../../packages/serviceme-protocol/src/copilot.ts"() {
126
+ "use strict";
160
127
  COPILOT_ERROR_CODES = {
161
128
  NOT_INSTALLED: "copilot_not_installed",
162
129
  AUTH_REQUIRED: "copilot_auth_required",
@@ -173,6 +140,7 @@ function isKnownEnvironmentTool(value) {
173
140
  var KNOWN_ENVIRONMENT_TOOLS;
174
141
  var init_env = __esm({
175
142
  "../../packages/serviceme-protocol/src/env.ts"() {
143
+ "use strict";
176
144
  KNOWN_ENVIRONMENT_TOOLS = [
177
145
  "git",
178
146
  "node",
@@ -244,6 +212,7 @@ function normalizeServicemeError(error, fallbackCode = "internal_error") {
244
212
  var SERVICEME_ERROR_CODES, RETRYABLE_ERROR_CODES, ServicemeProtocolError;
245
213
  var init_errors = __esm({
246
214
  "../../packages/serviceme-protocol/src/errors.ts"() {
215
+ "use strict";
247
216
  SERVICEME_ERROR_CODES = [
248
217
  "protocol_mismatch",
249
218
  "cli_not_found",
@@ -272,6 +241,7 @@ var init_errors = __esm({
272
241
  "executor_timeout",
273
242
  "executor_error",
274
243
  "task_already_running",
244
+ "not_found",
275
245
  "internal_error"
276
246
  ];
277
247
  RETRYABLE_ERROR_CODES = /* @__PURE__ */ new Set([
@@ -308,6 +278,7 @@ var init_errors = __esm({
308
278
  // ../../packages/serviceme-protocol/src/image.ts
309
279
  var init_image = __esm({
310
280
  "../../packages/serviceme-protocol/src/image.ts"() {
281
+ "use strict";
311
282
  }
312
283
  });
313
284
 
@@ -315,6 +286,7 @@ var init_image = __esm({
315
286
  var DEFAULT_JSON_SORT_OPTIONS;
316
287
  var init_json = __esm({
317
288
  "../../packages/serviceme-protocol/src/json.ts"() {
289
+ "use strict";
318
290
  DEFAULT_JSON_SORT_OPTIONS = {
319
291
  sortOrder: "asc",
320
292
  sortAlgo: "default"
@@ -322,17 +294,27 @@ var init_json = __esm({
322
294
  }
323
295
  });
324
296
 
297
+ // ../../packages/serviceme-protocol/src/marketplace.ts
298
+ var init_marketplace = __esm({
299
+ "../../packages/serviceme-protocol/src/marketplace.ts"() {
300
+ "use strict";
301
+ }
302
+ });
303
+
325
304
  // ../../packages/serviceme-protocol/src/metadata.ts
326
305
  var SERVICEME_CLI_CAPABILITIES;
327
306
  var init_metadata = __esm({
328
307
  "../../packages/serviceme-protocol/src/metadata.ts"() {
308
+ "use strict";
329
309
  SERVICEME_CLI_CAPABILITIES = {
330
310
  bridge: true,
331
311
  tasks: 1,
332
312
  json: 1,
333
313
  env: 1,
334
314
  image: 1,
335
- project: 1
315
+ project: 1,
316
+ skills: 1,
317
+ agents: 1
336
318
  };
337
319
  }
338
320
  });
@@ -340,12 +322,14 @@ var init_metadata = __esm({
340
322
  // ../../packages/serviceme-protocol/src/project.ts
341
323
  var init_project = __esm({
342
324
  "../../packages/serviceme-protocol/src/project.ts"() {
325
+ "use strict";
343
326
  }
344
327
  });
345
328
 
346
329
  // ../../packages/serviceme-protocol/src/index.ts
347
330
  var init_src = __esm({
348
331
  "../../packages/serviceme-protocol/src/index.ts"() {
332
+ "use strict";
349
333
  init_agent();
350
334
  init_bridge();
351
335
  init_cli();
@@ -354,6 +338,7 @@ var init_src = __esm({
354
338
  init_errors();
355
339
  init_image();
356
340
  init_json();
341
+ init_marketplace();
357
342
  init_metadata();
358
343
  init_project();
359
344
  init_scheduled_tasks();
@@ -365,6 +350,8 @@ var init_src = __esm({
365
350
  var AgentCatalogClient;
366
351
  var init_AgentCatalogClient = __esm({
367
352
  "../../packages/serviceme-core/src/agents/AgentCatalogClient.ts"() {
353
+ "use strict";
354
+ init_src();
368
355
  AgentCatalogClient = class {
369
356
  constructor(options2 = {}) {
370
357
  this.fetchImpl = options2.fetchImpl ?? fetch;
@@ -372,10 +359,10 @@ var init_AgentCatalogClient = __esm({
372
359
  }
373
360
  async getCatalog() {
374
361
  if (!this.baseUrl) {
375
- return {
376
- agents: [],
377
- fetchedAt: (/* @__PURE__ */ new Date()).toISOString()
378
- };
362
+ throw createServicemeError(
363
+ "workspace_not_found",
364
+ "Agent catalog baseUrl is not configured."
365
+ );
379
366
  }
380
367
  const response = await this.fetchImpl(
381
368
  `${this.baseUrl}/api/v1/marketplace/agents`
@@ -389,6 +376,30 @@ var init_AgentCatalogClient = __esm({
389
376
  fetchedAt: (/* @__PURE__ */ new Date()).toISOString()
390
377
  };
391
378
  }
379
+ async downloadAgent(remoteId) {
380
+ if (!this.baseUrl) {
381
+ throw createServicemeError(
382
+ "workspace_not_found",
383
+ "Agent catalog baseUrl is not configured."
384
+ );
385
+ }
386
+ const response = await this.fetchImpl(
387
+ `${this.baseUrl}/api/v1/marketplace/agents/download/${remoteId}`
388
+ );
389
+ if (!response.ok) {
390
+ if (response.status === 404) {
391
+ throw createServicemeError(
392
+ "not_found",
393
+ `Agent '${remoteId}' not found`
394
+ );
395
+ }
396
+ throw new Error(
397
+ `Failed to download agent ${remoteId}: ${response.status}`
398
+ );
399
+ }
400
+ const payload = await response.json();
401
+ return payload.data?.files ?? [];
402
+ }
392
403
  };
393
404
  }
394
405
  });
@@ -426,6 +437,7 @@ function parseAgentToolPermissions(content) {
426
437
  var TOOL_RISK_MAP, FRONTMATTER_REGEX, TOOLS_LINE_REGEX, TOOLS_INLINE_REGEX, LIST_ITEM_REGEX;
427
438
  var init_agent_permissions = __esm({
428
439
  "../../packages/serviceme-core/src/permissions/agent-permissions.ts"() {
440
+ "use strict";
429
441
  TOOL_RISK_MAP = {
430
442
  shell: "high",
431
443
  terminal: "high",
@@ -454,6 +466,7 @@ var init_agent_permissions = __esm({
454
466
  // ../../packages/serviceme-core/src/permissions/index.ts
455
467
  var init_permissions = __esm({
456
468
  "../../packages/serviceme-core/src/permissions/index.ts"() {
469
+ "use strict";
457
470
  init_agent_permissions();
458
471
  }
459
472
  });
@@ -462,6 +475,7 @@ var init_permissions = __esm({
462
475
  var AgentReconciler;
463
476
  var init_AgentReconciler = __esm({
464
477
  "../../packages/serviceme-core/src/agents/AgentReconciler.ts"() {
478
+ "use strict";
465
479
  init_permissions();
466
480
  AgentReconciler = class {
467
481
  constructor(deps) {
@@ -527,15 +541,20 @@ var init_AgentReconciler = __esm({
527
541
  };
528
542
  }
529
543
  });
544
+
545
+ // ../../packages/serviceme-core/src/agents/AgentStore.ts
530
546
  function assertSafeLocalAgentId(agentId) {
531
547
  if (typeof agentId !== "string" || agentId.length === 0 || agentId === "." || agentId === ".." || agentId.includes("/") || agentId.includes("\\") || !SAFE_LOCAL_ID_PATTERN.test(agentId)) {
532
548
  throw new Error(`Invalid agent id: ${agentId}`);
533
549
  }
534
550
  return agentId;
535
551
  }
536
- var WORKSPACE_AGENTS_ROOT_RELATIVE, WORKSPACE_AGENTS_STATE_RELATIVE, SAFE_LOCAL_ID_PATTERN, AgentStore;
552
+ var fs, path, WORKSPACE_AGENTS_ROOT_RELATIVE, WORKSPACE_AGENTS_STATE_RELATIVE, SAFE_LOCAL_ID_PATTERN, AgentStore;
537
553
  var init_AgentStore = __esm({
538
554
  "../../packages/serviceme-core/src/agents/AgentStore.ts"() {
555
+ "use strict";
556
+ fs = __toESM(require("fs/promises"));
557
+ path = __toESM(require("path"));
539
558
  WORKSPACE_AGENTS_ROOT_RELATIVE = ".github/agents";
540
559
  WORKSPACE_AGENTS_STATE_RELATIVE = ".github/.ms-devtools-agents.yml";
541
560
  SAFE_LOCAL_ID_PATTERN = /^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$/;
@@ -543,7 +562,7 @@ var init_AgentStore = __esm({
543
562
  constructor(options2) {
544
563
  this.workspacePath = options2.workspacePath;
545
564
  this.userAgentsRoot = options2.userAgentsRoot;
546
- this.fileSystem = options2.fileSystem ?? fs12__namespace;
565
+ this.fileSystem = options2.fileSystem ?? fs;
547
566
  this.schemaVersion = options2.schemaVersion ?? 1;
548
567
  }
549
568
  normalizeRemoteAgentId(remoteId) {
@@ -567,7 +586,7 @@ var init_AgentStore = __esm({
567
586
  }
568
587
  async listWorkspaceAgentIds() {
569
588
  return this.listAgentIds(
570
- path11__namespace.join(this.workspacePath, WORKSPACE_AGENTS_ROOT_RELATIVE)
589
+ path.join(this.workspacePath, WORKSPACE_AGENTS_ROOT_RELATIVE)
571
590
  );
572
591
  }
573
592
  async listUserAgentIds() {
@@ -576,7 +595,7 @@ var init_AgentStore = __esm({
576
595
  async readState() {
577
596
  try {
578
597
  const raw = await this.fileSystem.readFile(
579
- path11__namespace.join(this.workspacePath, WORKSPACE_AGENTS_STATE_RELATIVE),
598
+ path.join(this.workspacePath, WORKSPACE_AGENTS_STATE_RELATIVE),
580
599
  "utf-8"
581
600
  );
582
601
  const parsed = JSON.parse(raw);
@@ -589,11 +608,11 @@ var init_AgentStore = __esm({
589
608
  }
590
609
  }
591
610
  async writeState(state) {
592
- const statePath = path11__namespace.join(
611
+ const statePath = path.join(
593
612
  this.workspacePath,
594
613
  WORKSPACE_AGENTS_STATE_RELATIVE
595
614
  );
596
- await this.fileSystem.mkdir(path11__namespace.dirname(statePath), { recursive: true });
615
+ await this.fileSystem.mkdir(path.dirname(statePath), { recursive: true });
597
616
  await this.fileSystem.writeFile(
598
617
  statePath,
599
618
  JSON.stringify(state, null, 2),
@@ -622,14 +641,14 @@ var init_AgentStore = __esm({
622
641
  await this.writeState(state);
623
642
  }
624
643
  async writeAgentFiles(agentId, scope, files) {
625
- const root2 = scope === "workspace" ? path11__namespace.join(this.workspacePath, WORKSPACE_AGENTS_ROOT_RELATIVE) : this.userAgentsRoot;
644
+ const root2 = scope === "workspace" ? path.join(this.workspacePath, WORKSPACE_AGENTS_ROOT_RELATIVE) : this.userAgentsRoot;
626
645
  const firstFile = files[0];
627
646
  const isSingleFlatFile = files.length === 1 && firstFile !== void 0 && firstFile.path === `${agentId}.agent.md` && !firstFile.path.includes("/");
628
- const targetDir = isSingleFlatFile ? root2 : path11__namespace.join(root2, agentId);
647
+ const targetDir = isSingleFlatFile ? root2 : path.join(root2, agentId);
629
648
  await this.fileSystem.mkdir(targetDir, { recursive: true });
630
649
  for (const file of files) {
631
- const filePath = path11__namespace.join(targetDir, file.path);
632
- await this.fileSystem.mkdir(path11__namespace.dirname(filePath), { recursive: true });
650
+ const filePath = path.join(targetDir, file.path);
651
+ await this.fileSystem.mkdir(path.dirname(filePath), { recursive: true });
633
652
  await this.fileSystem.writeFile(filePath, file.content, "utf-8");
634
653
  if (file.executable) {
635
654
  try {
@@ -669,24 +688,28 @@ var init_AgentStore = __esm({
669
688
  // ../../packages/serviceme-core/src/agents/types.ts
670
689
  var init_types = __esm({
671
690
  "../../packages/serviceme-core/src/agents/types.ts"() {
691
+ "use strict";
672
692
  }
673
693
  });
674
694
 
675
695
  // ../../packages/serviceme-core/src/agents/index.ts
676
696
  var init_agents = __esm({
677
697
  "../../packages/serviceme-core/src/agents/index.ts"() {
698
+ "use strict";
678
699
  init_AgentCatalogClient();
679
700
  init_AgentReconciler();
680
701
  init_AgentStore();
681
702
  init_types();
682
703
  }
683
704
  });
705
+
706
+ // ../../packages/serviceme-core/src/process/runCommand.ts
684
707
  function terminateCommandProcess(child) {
685
708
  if (child.killed) {
686
709
  return;
687
710
  }
688
711
  if (process.platform === "win32" && child.pid) {
689
- const killProcess = child_process.spawn(
712
+ const killProcess = (0, import_node_child_process.spawn)(
690
713
  "taskkill",
691
714
  ["/pid", String(child.pid), "/T", "/F"],
692
715
  {
@@ -703,7 +726,7 @@ function terminateCommandProcess(child) {
703
726
  }
704
727
  async function runCommand(command, options2 = {}) {
705
728
  return new Promise((resolve, reject) => {
706
- const child = child_process.spawn(command, options2.args ?? [], {
729
+ const child = (0, import_node_child_process.spawn)(command, options2.args ?? [], {
707
730
  cwd: options2.cwd,
708
731
  env: options2.env,
709
732
  shell: options2.shell,
@@ -787,8 +810,11 @@ async function commandExists(command) {
787
810
  return false;
788
811
  }
789
812
  }
813
+ var import_node_child_process;
790
814
  var init_runCommand = __esm({
791
815
  "../../packages/serviceme-core/src/process/runCommand.ts"() {
816
+ "use strict";
817
+ import_node_child_process = require("child_process");
792
818
  }
793
819
  });
794
820
 
@@ -837,6 +863,7 @@ function createCopilotAuthRequiredError() {
837
863
  var COPILOT_COMMAND, GH_COMMAND;
838
864
  var init_doctor = __esm({
839
865
  "../../packages/serviceme-core/src/copilot/doctor.ts"() {
866
+ "use strict";
840
867
  init_src();
841
868
  init_runCommand();
842
869
  COPILOT_COMMAND = "copilot";
@@ -884,6 +911,9 @@ async function copilotPrompt(options2) {
884
911
  }
885
912
  return { output, exitCode: 0 };
886
913
  } catch (error) {
914
+ if (error instanceof ServicemeProtocolError) {
915
+ throw error;
916
+ }
887
917
  const err = error;
888
918
  if (err.code === "ETIMEDOUT") {
889
919
  throw createServicemeError(
@@ -914,6 +944,7 @@ async function copilotPrompt(options2) {
914
944
  var COPILOT_COMMAND2, DEFAULT_TIMEOUT_MS;
915
945
  var init_prompt = __esm({
916
946
  "../../packages/serviceme-core/src/copilot/prompt.ts"() {
947
+ "use strict";
917
948
  init_src();
918
949
  init_runCommand();
919
950
  COPILOT_COMMAND2 = "copilot";
@@ -924,6 +955,7 @@ var init_prompt = __esm({
924
955
  // ../../packages/serviceme-core/src/copilot/index.ts
925
956
  var init_copilot2 = __esm({
926
957
  "../../packages/serviceme-core/src/copilot/index.ts"() {
958
+ "use strict";
927
959
  init_doctor();
928
960
  init_prompt();
929
961
  }
@@ -933,6 +965,7 @@ var init_copilot2 = __esm({
933
965
  var DEFAULT_TOOL_CHECK_TIMEOUT_MS, TOOL_CHECK_TIMEOUT_MS, ERROR_CODE_NOT_FOUND, ERROR_CODE_TIMEOUT, EnvironmentInspector;
934
966
  var init_environmentInspector = __esm({
935
967
  "../../packages/serviceme-core/src/env/environmentInspector.ts"() {
968
+ "use strict";
936
969
  init_src();
937
970
  init_runCommand();
938
971
  DEFAULT_TOOL_CHECK_TIMEOUT_MS = 5e3;
@@ -950,11 +983,13 @@ var init_environmentInspector = __esm({
950
983
  ERROR_CODE_NOT_FOUND = 127;
951
984
  ERROR_CODE_TIMEOUT = "ETIMEDOUT";
952
985
  EnvironmentInspector = class {
986
+ constructor(options2 = {}) {
987
+ this.runCommandFn = options2.runCommand ?? runCommand;
988
+ this.platform = options2.platform ?? process.platform;
989
+ }
953
990
  async checkEnvironment() {
954
991
  const results = await Promise.all(
955
- KNOWN_ENVIRONMENT_TOOLS.map(
956
- async (tool) => [tool, await this.checkTool(tool)]
957
- )
992
+ KNOWN_ENVIRONMENT_TOOLS.map(async (tool) => [tool, await this.checkTool(tool)])
958
993
  );
959
994
  return Object.fromEntries(results);
960
995
  }
@@ -982,8 +1017,8 @@ var init_environmentInspector = __esm({
982
1017
  }
983
1018
  async getToolPath(toolName) {
984
1019
  try {
985
- const isWindows = process.platform === "win32";
986
- const result = await runCommand(isWindows ? "where" : "which", {
1020
+ const isWindows = this.platform === "win32";
1021
+ const result = await this.runCommandFn(isWindows ? "where" : "which", {
987
1022
  args: [toolName],
988
1023
  timeoutMs: this.getToolTimeout(toolName)
989
1024
  });
@@ -1000,14 +1035,12 @@ var init_environmentInspector = __esm({
1000
1035
  */
1001
1036
  async getToolShimPath(toolName) {
1002
1037
  try {
1003
- const result = await runCommand("where", {
1038
+ const result = await this.runCommandFn("where", {
1004
1039
  args: [toolName],
1005
1040
  timeoutMs: this.getToolTimeout(toolName)
1006
1041
  });
1007
1042
  const candidates = result.stdout.split(/\r?\n/).map((line2) => line2.trim()).filter((line2) => line2.length > 0);
1008
- const cmdShim = candidates.find(
1009
- (line2) => line2.toLowerCase().endsWith(".cmd")
1010
- );
1043
+ const cmdShim = candidates.find((line2) => line2.toLowerCase().endsWith(".cmd"));
1011
1044
  return cmdShim ?? candidates[0];
1012
1045
  } catch {
1013
1046
  return void 0;
@@ -1015,16 +1048,16 @@ var init_environmentInspector = __esm({
1015
1048
  }
1016
1049
  async getToolVersion(toolName) {
1017
1050
  const invocation = await this.getVersionInvocation(toolName);
1018
- const result = await runCommand(invocation.command, {
1051
+ const result = await this.runCommandFn(invocation.command, {
1019
1052
  args: invocation.args,
1020
1053
  timeoutMs: this.getToolTimeout(toolName)
1021
1054
  });
1022
1055
  return this.parseVersion(toolName, result.stdout || result.stderr);
1023
1056
  }
1024
1057
  async checkNvm() {
1025
- if (process.platform === "win32") {
1058
+ if (this.platform === "win32") {
1026
1059
  try {
1027
- const result = await runCommand("cmd.exe", {
1060
+ const result = await this.runCommandFn("cmd.exe", {
1028
1061
  args: ["/c", "nvm version"],
1029
1062
  timeoutMs: this.getToolTimeout("nvm")
1030
1063
  });
@@ -1041,7 +1074,7 @@ var init_environmentInspector = __esm({
1041
1074
  }
1042
1075
  }
1043
1076
  try {
1044
- const result = await runCommand("/bin/bash", {
1077
+ const result = await this.runCommandFn("/bin/bash", {
1045
1078
  args: [
1046
1079
  "-lc",
1047
1080
  'export NVM_DIR="$HOME/.nvm"; [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"; nvm --version'
@@ -1069,7 +1102,7 @@ var init_environmentInspector = __esm({
1069
1102
  };
1070
1103
  }
1071
1104
  try {
1072
- const result = await runCommand("dotnet", {
1105
+ const result = await this.runCommandFn("dotnet", {
1073
1106
  args: ["nuget", "list", "source"],
1074
1107
  timeoutMs: this.getToolTimeout("nuget")
1075
1108
  });
@@ -1090,7 +1123,7 @@ var init_environmentInspector = __esm({
1090
1123
  }
1091
1124
  }
1092
1125
  async getVersionInvocation(toolName) {
1093
- const isWindows = process.platform === "win32";
1126
+ const isWindows = this.platform === "win32";
1094
1127
  if (isWindows && ["npm", "pnpm", "nrm"].includes(toolName)) {
1095
1128
  const shim = await this.getToolShimPath(toolName);
1096
1129
  if (shim) {
@@ -1144,7 +1177,7 @@ var init_environmentInspector = __esm({
1144
1177
  const execError = error;
1145
1178
  const message = execError.message || String(error);
1146
1179
  const code = execError.code;
1147
- const isNotFound = message.includes("command not found") || message.includes("not recognized") || message.includes("ENOENT") || code === "ENOENT" || code === ERROR_CODE_NOT_FOUND;
1180
+ const isNotFound = message.includes("command not found") || message.includes("not recognized") || message.includes("ENOENT") || message.includes("EACCES") || code === "ENOENT" || code === "EACCES" || code === ERROR_CODE_NOT_FOUND;
1148
1181
  const isTimeout = code === ERROR_CODE_TIMEOUT || message.toLowerCase().includes("timed out");
1149
1182
  return {
1150
1183
  installed: false,
@@ -1154,12 +1187,17 @@ var init_environmentInspector = __esm({
1154
1187
  };
1155
1188
  }
1156
1189
  });
1190
+
1191
+ // ../../packages/serviceme-core/src/image/imageTools.ts
1157
1192
  function createImageTools() {
1158
1193
  return new ImageTools();
1159
1194
  }
1160
- var SUPPORTED_FORMATS, DEFAULT_MINIMUM_COMPRESSION_RATIO, ImageTools;
1195
+ var fs2, path2, SUPPORTED_FORMATS, DEFAULT_MINIMUM_COMPRESSION_RATIO, ImageTools;
1161
1196
  var init_imageTools = __esm({
1162
1197
  "../../packages/serviceme-core/src/image/imageTools.ts"() {
1198
+ "use strict";
1199
+ fs2 = __toESM(require("fs/promises"));
1200
+ path2 = __toESM(require("path"));
1163
1201
  init_src();
1164
1202
  SUPPORTED_FORMATS = [
1165
1203
  ".jpg",
@@ -1180,7 +1218,7 @@ var init_imageTools = __esm({
1180
1218
  if (!await this.pathExists(filePath)) {
1181
1219
  return { valid: false };
1182
1220
  }
1183
- if (!SUPPORTED_FORMATS.includes(path11__namespace.extname(filePath).toLowerCase())) {
1221
+ if (!SUPPORTED_FORMATS.includes(path2.extname(filePath).toLowerCase())) {
1184
1222
  return { valid: false };
1185
1223
  }
1186
1224
  await this.getInfo(filePath, sharpModulePath);
@@ -1192,7 +1230,7 @@ var init_imageTools = __esm({
1192
1230
  async getInfo(imagePath, sharpModulePath) {
1193
1231
  const sharp = this.loadSharp(sharpModulePath);
1194
1232
  const metadata = await sharp(imagePath).metadata();
1195
- const stats = await fs12__namespace.stat(imagePath);
1233
+ const stats = await fs2.stat(imagePath);
1196
1234
  return {
1197
1235
  width: metadata.width ?? 0,
1198
1236
  height: metadata.height ?? 0,
@@ -1209,7 +1247,7 @@ var init_imageTools = __esm({
1209
1247
  `Invalid image file: ${imagePath}`
1210
1248
  );
1211
1249
  }
1212
- const originalStats = await fs12__namespace.stat(imagePath);
1250
+ const originalStats = await fs2.stat(imagePath);
1213
1251
  const originalSize = originalStats.size;
1214
1252
  const outputPath = this.getOutputPath(imagePath, options2);
1215
1253
  const compressedBuffer = await this.compressWithSharp(imagePath, options2);
@@ -1224,7 +1262,7 @@ var init_imageTools = __esm({
1224
1262
  outputPath: imagePath
1225
1263
  };
1226
1264
  }
1227
- await fs12__namespace.writeFile(outputPath, compressedBuffer);
1265
+ await fs2.writeFile(outputPath, compressedBuffer);
1228
1266
  return {
1229
1267
  originalSize,
1230
1268
  compressedSize,
@@ -1235,7 +1273,7 @@ var init_imageTools = __esm({
1235
1273
  async compressWithSharp(imagePath, options2) {
1236
1274
  const sharp = this.loadSharp(options2.sharpModulePath);
1237
1275
  let pipeline = sharp(imagePath);
1238
- switch (options2.format ?? path11__namespace.extname(imagePath).toLowerCase().slice(1)) {
1276
+ switch (options2.format ?? path2.extname(imagePath).toLowerCase().slice(1)) {
1239
1277
  case "jpg":
1240
1278
  case "jpeg":
1241
1279
  pipeline = pipeline.jpeg({ quality: options2.quality });
@@ -1261,14 +1299,14 @@ var init_imageTools = __esm({
1261
1299
  if (options2.replaceOriginImage) {
1262
1300
  return inputPath;
1263
1301
  }
1264
- const dir = path11__namespace.dirname(inputPath);
1265
- const ext = path11__namespace.extname(inputPath);
1266
- const name = path11__namespace.basename(inputPath, ext);
1267
- return path11__namespace.join(dir, `${name}_compressed${ext}`);
1302
+ const dir = path2.dirname(inputPath);
1303
+ const ext = path2.extname(inputPath);
1304
+ const name = path2.basename(inputPath, ext);
1305
+ return path2.join(dir, `${name}_compressed${ext}`);
1268
1306
  }
1269
1307
  async pathExists(targetPath) {
1270
1308
  try {
1271
- await fs12__namespace.access(targetPath);
1309
+ await fs2.access(targetPath);
1272
1310
  return true;
1273
1311
  } catch {
1274
1312
  return false;
@@ -1276,7 +1314,7 @@ var init_imageTools = __esm({
1276
1314
  }
1277
1315
  loadSharp(sharpModulePath) {
1278
1316
  try {
1279
- return sharpModulePath ? __require(sharpModulePath) : __require("sharp");
1317
+ return sharpModulePath ? require(sharpModulePath) : require("sharp");
1280
1318
  } catch (error) {
1281
1319
  throw createServicemeError(
1282
1320
  "internal_error",
@@ -1290,17 +1328,18 @@ var init_imageTools = __esm({
1290
1328
 
1291
1329
  // ../../node_modules/.pnpm/esprima@4.0.1/node_modules/esprima/dist/esprima.js
1292
1330
  var require_esprima = __commonJS({
1293
- "../../node_modules/.pnpm/esprima@4.0.1/node_modules/esprima/dist/esprima.js"(exports$1, module) {
1331
+ "../../node_modules/.pnpm/esprima@4.0.1/node_modules/esprima/dist/esprima.js"(exports2, module2) {
1332
+ "use strict";
1294
1333
  (function webpackUniversalModuleDefinition(root2, factory) {
1295
- if (typeof exports$1 === "object" && typeof module === "object")
1296
- module.exports = factory();
1334
+ if (typeof exports2 === "object" && typeof module2 === "object")
1335
+ module2.exports = factory();
1297
1336
  else if (typeof define === "function" && define.amd)
1298
1337
  define([], factory);
1299
- else if (typeof exports$1 === "object")
1300
- exports$1["esprima"] = factory();
1338
+ else if (typeof exports2 === "object")
1339
+ exports2["esprima"] = factory();
1301
1340
  else
1302
1341
  root2["esprima"] = factory();
1303
- })(exports$1, function() {
1342
+ })(exports2, function() {
1304
1343
  return (
1305
1344
  /******/
1306
1345
  (function(modules) {
@@ -1308,7 +1347,7 @@ var require_esprima = __commonJS({
1308
1347
  function __webpack_require__(moduleId) {
1309
1348
  if (installedModules[moduleId])
1310
1349
  return installedModules[moduleId].exports;
1311
- var module2 = installedModules[moduleId] = {
1350
+ var module3 = installedModules[moduleId] = {
1312
1351
  /******/
1313
1352
  exports: {},
1314
1353
  /******/
@@ -1317,9 +1356,9 @@ var require_esprima = __commonJS({
1317
1356
  loaded: false
1318
1357
  /******/
1319
1358
  };
1320
- modules[moduleId].call(module2.exports, module2, module2.exports, __webpack_require__);
1321
- module2.loaded = true;
1322
- return module2.exports;
1359
+ modules[moduleId].call(module3.exports, module3, module3.exports, __webpack_require__);
1360
+ module3.loaded = true;
1361
+ return module3.exports;
1323
1362
  }
1324
1363
  __webpack_require__.m = modules;
1325
1364
  __webpack_require__.c = installedModules;
@@ -1328,8 +1367,9 @@ var require_esprima = __commonJS({
1328
1367
  })([
1329
1368
  /* 0 */
1330
1369
  /***/
1331
- function(module2, exports2, __webpack_require__) {
1332
- Object.defineProperty(exports2, "__esModule", { value: true });
1370
+ function(module3, exports3, __webpack_require__) {
1371
+ "use strict";
1372
+ Object.defineProperty(exports3, "__esModule", { value: true });
1333
1373
  var comment_handler_1 = __webpack_require__(1);
1334
1374
  var jsx_parser_1 = __webpack_require__(3);
1335
1375
  var parser_1 = __webpack_require__(8);
@@ -1379,19 +1419,19 @@ var require_esprima = __commonJS({
1379
1419
  }
1380
1420
  return ast;
1381
1421
  }
1382
- exports2.parse = parse3;
1422
+ exports3.parse = parse3;
1383
1423
  function parseModule(code, options2, delegate) {
1384
1424
  var parsingOptions = options2 || {};
1385
1425
  parsingOptions.sourceType = "module";
1386
1426
  return parse3(code, parsingOptions, delegate);
1387
1427
  }
1388
- exports2.parseModule = parseModule;
1428
+ exports3.parseModule = parseModule;
1389
1429
  function parseScript(code, options2, delegate) {
1390
1430
  var parsingOptions = options2 || {};
1391
1431
  parsingOptions.sourceType = "script";
1392
1432
  return parse3(code, parsingOptions, delegate);
1393
1433
  }
1394
- exports2.parseScript = parseScript;
1434
+ exports3.parseScript = parseScript;
1395
1435
  function tokenize(code, options2, delegate) {
1396
1436
  var tokenizer = new tokenizer_1.Tokenizer(code, options2);
1397
1437
  var tokens;
@@ -1415,15 +1455,16 @@ var require_esprima = __commonJS({
1415
1455
  }
1416
1456
  return tokens;
1417
1457
  }
1418
- exports2.tokenize = tokenize;
1458
+ exports3.tokenize = tokenize;
1419
1459
  var syntax_1 = __webpack_require__(2);
1420
- exports2.Syntax = syntax_1.Syntax;
1421
- exports2.version = "4.0.1";
1460
+ exports3.Syntax = syntax_1.Syntax;
1461
+ exports3.version = "4.0.1";
1422
1462
  },
1423
1463
  /* 1 */
1424
1464
  /***/
1425
- function(module2, exports2, __webpack_require__) {
1426
- Object.defineProperty(exports2, "__esModule", { value: true });
1465
+ function(module3, exports3, __webpack_require__) {
1466
+ "use strict";
1467
+ Object.defineProperty(exports3, "__esModule", { value: true });
1427
1468
  var syntax_1 = __webpack_require__(2);
1428
1469
  var CommentHandler = (function() {
1429
1470
  function CommentHandler2() {
@@ -1565,13 +1606,14 @@ var require_esprima = __commonJS({
1565
1606
  };
1566
1607
  return CommentHandler2;
1567
1608
  })();
1568
- exports2.CommentHandler = CommentHandler;
1609
+ exports3.CommentHandler = CommentHandler;
1569
1610
  },
1570
1611
  /* 2 */
1571
1612
  /***/
1572
- function(module2, exports2) {
1573
- Object.defineProperty(exports2, "__esModule", { value: true });
1574
- exports2.Syntax = {
1613
+ function(module3, exports3) {
1614
+ "use strict";
1615
+ Object.defineProperty(exports3, "__esModule", { value: true });
1616
+ exports3.Syntax = {
1575
1617
  AssignmentExpression: "AssignmentExpression",
1576
1618
  AssignmentPattern: "AssignmentPattern",
1577
1619
  ArrayExpression: "ArrayExpression",
@@ -1642,7 +1684,8 @@ var require_esprima = __commonJS({
1642
1684
  },
1643
1685
  /* 3 */
1644
1686
  /***/
1645
- function(module2, exports2, __webpack_require__) {
1687
+ function(module3, exports3, __webpack_require__) {
1688
+ "use strict";
1646
1689
  var __extends = this && this.__extends || (function() {
1647
1690
  var extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d, b) {
1648
1691
  d.__proto__ = b;
@@ -1657,7 +1700,7 @@ var require_esprima = __commonJS({
1657
1700
  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
1658
1701
  };
1659
1702
  })();
1660
- Object.defineProperty(exports2, "__esModule", { value: true });
1703
+ Object.defineProperty(exports3, "__esModule", { value: true });
1661
1704
  var character_1 = __webpack_require__(4);
1662
1705
  var JSXNode = __webpack_require__(5);
1663
1706
  var jsx_syntax_1 = __webpack_require__(6);
@@ -1688,6 +1731,9 @@ var require_esprima = __commonJS({
1688
1731
  var expr = elementName;
1689
1732
  qualifiedName = getQualifiedElementName(expr.object) + "." + getQualifiedElementName(expr.property);
1690
1733
  break;
1734
+ /* istanbul ignore next */
1735
+ default:
1736
+ break;
1691
1737
  }
1692
1738
  return qualifiedName;
1693
1739
  }
@@ -2150,19 +2196,20 @@ var require_esprima = __commonJS({
2150
2196
  };
2151
2197
  return JSXParser2;
2152
2198
  })(parser_1.Parser);
2153
- exports2.JSXParser = JSXParser;
2199
+ exports3.JSXParser = JSXParser;
2154
2200
  },
2155
2201
  /* 4 */
2156
2202
  /***/
2157
- function(module2, exports2) {
2158
- Object.defineProperty(exports2, "__esModule", { value: true });
2203
+ function(module3, exports3) {
2204
+ "use strict";
2205
+ Object.defineProperty(exports3, "__esModule", { value: true });
2159
2206
  var Regex = {
2160
2207
  // Unicode v8.0.0 NonAsciiIdentifierStart:
2161
2208
  NonAsciiIdentifierStart: /[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]/,
2162
2209
  // Unicode v8.0.0 NonAsciiIdentifierPart:
2163
2210
  NonAsciiIdentifierPart: /[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/
2164
2211
  };
2165
- exports2.Character = {
2212
+ exports3.Character = {
2166
2213
  /* tslint:disable:no-bitwise */
2167
2214
  fromCodePoint: function(cp5) {
2168
2215
  return cp5 < 65536 ? String.fromCharCode(cp5) : String.fromCharCode(55296 + (cp5 - 65536 >> 10)) + String.fromCharCode(56320 + (cp5 - 65536 & 1023));
@@ -2177,10 +2224,10 @@ var require_esprima = __commonJS({
2177
2224
  },
2178
2225
  // https://tc39.github.io/ecma262/#sec-names-and-keywords
2179
2226
  isIdentifierStart: function(cp5) {
2180
- return cp5 === 36 || cp5 === 95 || cp5 >= 65 && cp5 <= 90 || cp5 >= 97 && cp5 <= 122 || cp5 === 92 || cp5 >= 128 && Regex.NonAsciiIdentifierStart.test(exports2.Character.fromCodePoint(cp5));
2227
+ return cp5 === 36 || cp5 === 95 || cp5 >= 65 && cp5 <= 90 || cp5 >= 97 && cp5 <= 122 || cp5 === 92 || cp5 >= 128 && Regex.NonAsciiIdentifierStart.test(exports3.Character.fromCodePoint(cp5));
2181
2228
  },
2182
2229
  isIdentifierPart: function(cp5) {
2183
- return cp5 === 36 || cp5 === 95 || cp5 >= 65 && cp5 <= 90 || cp5 >= 97 && cp5 <= 122 || cp5 >= 48 && cp5 <= 57 || cp5 === 92 || cp5 >= 128 && Regex.NonAsciiIdentifierPart.test(exports2.Character.fromCodePoint(cp5));
2230
+ return cp5 === 36 || cp5 === 95 || cp5 >= 65 && cp5 <= 90 || cp5 >= 97 && cp5 <= 122 || cp5 >= 48 && cp5 <= 57 || cp5 === 92 || cp5 >= 128 && Regex.NonAsciiIdentifierPart.test(exports3.Character.fromCodePoint(cp5));
2184
2231
  },
2185
2232
  // https://tc39.github.io/ecma262/#sec-literals-numeric-literals
2186
2233
  isDecimalDigit: function(cp5) {
@@ -2196,8 +2243,9 @@ var require_esprima = __commonJS({
2196
2243
  },
2197
2244
  /* 5 */
2198
2245
  /***/
2199
- function(module2, exports2, __webpack_require__) {
2200
- Object.defineProperty(exports2, "__esModule", { value: true });
2246
+ function(module3, exports3, __webpack_require__) {
2247
+ "use strict";
2248
+ Object.defineProperty(exports3, "__esModule", { value: true });
2201
2249
  var jsx_syntax_1 = __webpack_require__(6);
2202
2250
  var JSXClosingElement = /* @__PURE__ */ (function() {
2203
2251
  function JSXClosingElement2(name) {
@@ -2206,7 +2254,7 @@ var require_esprima = __commonJS({
2206
2254
  }
2207
2255
  return JSXClosingElement2;
2208
2256
  })();
2209
- exports2.JSXClosingElement = JSXClosingElement;
2257
+ exports3.JSXClosingElement = JSXClosingElement;
2210
2258
  var JSXElement = /* @__PURE__ */ (function() {
2211
2259
  function JSXElement2(openingElement, children, closingElement) {
2212
2260
  this.type = jsx_syntax_1.JSXSyntax.JSXElement;
@@ -2216,14 +2264,14 @@ var require_esprima = __commonJS({
2216
2264
  }
2217
2265
  return JSXElement2;
2218
2266
  })();
2219
- exports2.JSXElement = JSXElement;
2267
+ exports3.JSXElement = JSXElement;
2220
2268
  var JSXEmptyExpression = /* @__PURE__ */ (function() {
2221
2269
  function JSXEmptyExpression2() {
2222
2270
  this.type = jsx_syntax_1.JSXSyntax.JSXEmptyExpression;
2223
2271
  }
2224
2272
  return JSXEmptyExpression2;
2225
2273
  })();
2226
- exports2.JSXEmptyExpression = JSXEmptyExpression;
2274
+ exports3.JSXEmptyExpression = JSXEmptyExpression;
2227
2275
  var JSXExpressionContainer = /* @__PURE__ */ (function() {
2228
2276
  function JSXExpressionContainer2(expression) {
2229
2277
  this.type = jsx_syntax_1.JSXSyntax.JSXExpressionContainer;
@@ -2231,7 +2279,7 @@ var require_esprima = __commonJS({
2231
2279
  }
2232
2280
  return JSXExpressionContainer2;
2233
2281
  })();
2234
- exports2.JSXExpressionContainer = JSXExpressionContainer;
2282
+ exports3.JSXExpressionContainer = JSXExpressionContainer;
2235
2283
  var JSXIdentifier = /* @__PURE__ */ (function() {
2236
2284
  function JSXIdentifier2(name) {
2237
2285
  this.type = jsx_syntax_1.JSXSyntax.JSXIdentifier;
@@ -2239,7 +2287,7 @@ var require_esprima = __commonJS({
2239
2287
  }
2240
2288
  return JSXIdentifier2;
2241
2289
  })();
2242
- exports2.JSXIdentifier = JSXIdentifier;
2290
+ exports3.JSXIdentifier = JSXIdentifier;
2243
2291
  var JSXMemberExpression = /* @__PURE__ */ (function() {
2244
2292
  function JSXMemberExpression2(object, property) {
2245
2293
  this.type = jsx_syntax_1.JSXSyntax.JSXMemberExpression;
@@ -2248,7 +2296,7 @@ var require_esprima = __commonJS({
2248
2296
  }
2249
2297
  return JSXMemberExpression2;
2250
2298
  })();
2251
- exports2.JSXMemberExpression = JSXMemberExpression;
2299
+ exports3.JSXMemberExpression = JSXMemberExpression;
2252
2300
  var JSXAttribute = /* @__PURE__ */ (function() {
2253
2301
  function JSXAttribute2(name, value) {
2254
2302
  this.type = jsx_syntax_1.JSXSyntax.JSXAttribute;
@@ -2257,7 +2305,7 @@ var require_esprima = __commonJS({
2257
2305
  }
2258
2306
  return JSXAttribute2;
2259
2307
  })();
2260
- exports2.JSXAttribute = JSXAttribute;
2308
+ exports3.JSXAttribute = JSXAttribute;
2261
2309
  var JSXNamespacedName = /* @__PURE__ */ (function() {
2262
2310
  function JSXNamespacedName2(namespace, name) {
2263
2311
  this.type = jsx_syntax_1.JSXSyntax.JSXNamespacedName;
@@ -2266,7 +2314,7 @@ var require_esprima = __commonJS({
2266
2314
  }
2267
2315
  return JSXNamespacedName2;
2268
2316
  })();
2269
- exports2.JSXNamespacedName = JSXNamespacedName;
2317
+ exports3.JSXNamespacedName = JSXNamespacedName;
2270
2318
  var JSXOpeningElement = /* @__PURE__ */ (function() {
2271
2319
  function JSXOpeningElement2(name, selfClosing, attributes) {
2272
2320
  this.type = jsx_syntax_1.JSXSyntax.JSXOpeningElement;
@@ -2276,7 +2324,7 @@ var require_esprima = __commonJS({
2276
2324
  }
2277
2325
  return JSXOpeningElement2;
2278
2326
  })();
2279
- exports2.JSXOpeningElement = JSXOpeningElement;
2327
+ exports3.JSXOpeningElement = JSXOpeningElement;
2280
2328
  var JSXSpreadAttribute = /* @__PURE__ */ (function() {
2281
2329
  function JSXSpreadAttribute2(argument) {
2282
2330
  this.type = jsx_syntax_1.JSXSyntax.JSXSpreadAttribute;
@@ -2284,7 +2332,7 @@ var require_esprima = __commonJS({
2284
2332
  }
2285
2333
  return JSXSpreadAttribute2;
2286
2334
  })();
2287
- exports2.JSXSpreadAttribute = JSXSpreadAttribute;
2335
+ exports3.JSXSpreadAttribute = JSXSpreadAttribute;
2288
2336
  var JSXText = /* @__PURE__ */ (function() {
2289
2337
  function JSXText2(value, raw) {
2290
2338
  this.type = jsx_syntax_1.JSXSyntax.JSXText;
@@ -2293,13 +2341,14 @@ var require_esprima = __commonJS({
2293
2341
  }
2294
2342
  return JSXText2;
2295
2343
  })();
2296
- exports2.JSXText = JSXText;
2344
+ exports3.JSXText = JSXText;
2297
2345
  },
2298
2346
  /* 6 */
2299
2347
  /***/
2300
- function(module2, exports2) {
2301
- Object.defineProperty(exports2, "__esModule", { value: true });
2302
- exports2.JSXSyntax = {
2348
+ function(module3, exports3) {
2349
+ "use strict";
2350
+ Object.defineProperty(exports3, "__esModule", { value: true });
2351
+ exports3.JSXSyntax = {
2303
2352
  JSXAttribute: "JSXAttribute",
2304
2353
  JSXClosingElement: "JSXClosingElement",
2305
2354
  JSXElement: "JSXElement",
@@ -2315,8 +2364,9 @@ var require_esprima = __commonJS({
2315
2364
  },
2316
2365
  /* 7 */
2317
2366
  /***/
2318
- function(module2, exports2, __webpack_require__) {
2319
- Object.defineProperty(exports2, "__esModule", { value: true });
2367
+ function(module3, exports3, __webpack_require__) {
2368
+ "use strict";
2369
+ Object.defineProperty(exports3, "__esModule", { value: true });
2320
2370
  var syntax_1 = __webpack_require__(2);
2321
2371
  var ArrayExpression = /* @__PURE__ */ (function() {
2322
2372
  function ArrayExpression2(elements) {
@@ -2325,7 +2375,7 @@ var require_esprima = __commonJS({
2325
2375
  }
2326
2376
  return ArrayExpression2;
2327
2377
  })();
2328
- exports2.ArrayExpression = ArrayExpression;
2378
+ exports3.ArrayExpression = ArrayExpression;
2329
2379
  var ArrayPattern = /* @__PURE__ */ (function() {
2330
2380
  function ArrayPattern2(elements) {
2331
2381
  this.type = syntax_1.Syntax.ArrayPattern;
@@ -2333,7 +2383,7 @@ var require_esprima = __commonJS({
2333
2383
  }
2334
2384
  return ArrayPattern2;
2335
2385
  })();
2336
- exports2.ArrayPattern = ArrayPattern;
2386
+ exports3.ArrayPattern = ArrayPattern;
2337
2387
  var ArrowFunctionExpression = /* @__PURE__ */ (function() {
2338
2388
  function ArrowFunctionExpression2(params, body, expression) {
2339
2389
  this.type = syntax_1.Syntax.ArrowFunctionExpression;
@@ -2346,7 +2396,7 @@ var require_esprima = __commonJS({
2346
2396
  }
2347
2397
  return ArrowFunctionExpression2;
2348
2398
  })();
2349
- exports2.ArrowFunctionExpression = ArrowFunctionExpression;
2399
+ exports3.ArrowFunctionExpression = ArrowFunctionExpression;
2350
2400
  var AssignmentExpression = /* @__PURE__ */ (function() {
2351
2401
  function AssignmentExpression2(operator, left, right) {
2352
2402
  this.type = syntax_1.Syntax.AssignmentExpression;
@@ -2356,7 +2406,7 @@ var require_esprima = __commonJS({
2356
2406
  }
2357
2407
  return AssignmentExpression2;
2358
2408
  })();
2359
- exports2.AssignmentExpression = AssignmentExpression;
2409
+ exports3.AssignmentExpression = AssignmentExpression;
2360
2410
  var AssignmentPattern = /* @__PURE__ */ (function() {
2361
2411
  function AssignmentPattern2(left, right) {
2362
2412
  this.type = syntax_1.Syntax.AssignmentPattern;
@@ -2365,7 +2415,7 @@ var require_esprima = __commonJS({
2365
2415
  }
2366
2416
  return AssignmentPattern2;
2367
2417
  })();
2368
- exports2.AssignmentPattern = AssignmentPattern;
2418
+ exports3.AssignmentPattern = AssignmentPattern;
2369
2419
  var AsyncArrowFunctionExpression = /* @__PURE__ */ (function() {
2370
2420
  function AsyncArrowFunctionExpression2(params, body, expression) {
2371
2421
  this.type = syntax_1.Syntax.ArrowFunctionExpression;
@@ -2378,7 +2428,7 @@ var require_esprima = __commonJS({
2378
2428
  }
2379
2429
  return AsyncArrowFunctionExpression2;
2380
2430
  })();
2381
- exports2.AsyncArrowFunctionExpression = AsyncArrowFunctionExpression;
2431
+ exports3.AsyncArrowFunctionExpression = AsyncArrowFunctionExpression;
2382
2432
  var AsyncFunctionDeclaration = /* @__PURE__ */ (function() {
2383
2433
  function AsyncFunctionDeclaration2(id, params, body) {
2384
2434
  this.type = syntax_1.Syntax.FunctionDeclaration;
@@ -2391,7 +2441,7 @@ var require_esprima = __commonJS({
2391
2441
  }
2392
2442
  return AsyncFunctionDeclaration2;
2393
2443
  })();
2394
- exports2.AsyncFunctionDeclaration = AsyncFunctionDeclaration;
2444
+ exports3.AsyncFunctionDeclaration = AsyncFunctionDeclaration;
2395
2445
  var AsyncFunctionExpression = /* @__PURE__ */ (function() {
2396
2446
  function AsyncFunctionExpression2(id, params, body) {
2397
2447
  this.type = syntax_1.Syntax.FunctionExpression;
@@ -2404,7 +2454,7 @@ var require_esprima = __commonJS({
2404
2454
  }
2405
2455
  return AsyncFunctionExpression2;
2406
2456
  })();
2407
- exports2.AsyncFunctionExpression = AsyncFunctionExpression;
2457
+ exports3.AsyncFunctionExpression = AsyncFunctionExpression;
2408
2458
  var AwaitExpression = /* @__PURE__ */ (function() {
2409
2459
  function AwaitExpression2(argument) {
2410
2460
  this.type = syntax_1.Syntax.AwaitExpression;
@@ -2412,7 +2462,7 @@ var require_esprima = __commonJS({
2412
2462
  }
2413
2463
  return AwaitExpression2;
2414
2464
  })();
2415
- exports2.AwaitExpression = AwaitExpression;
2465
+ exports3.AwaitExpression = AwaitExpression;
2416
2466
  var BinaryExpression = /* @__PURE__ */ (function() {
2417
2467
  function BinaryExpression2(operator, left, right) {
2418
2468
  var logical = operator === "||" || operator === "&&";
@@ -2423,7 +2473,7 @@ var require_esprima = __commonJS({
2423
2473
  }
2424
2474
  return BinaryExpression2;
2425
2475
  })();
2426
- exports2.BinaryExpression = BinaryExpression;
2476
+ exports3.BinaryExpression = BinaryExpression;
2427
2477
  var BlockStatement = /* @__PURE__ */ (function() {
2428
2478
  function BlockStatement2(body) {
2429
2479
  this.type = syntax_1.Syntax.BlockStatement;
@@ -2431,7 +2481,7 @@ var require_esprima = __commonJS({
2431
2481
  }
2432
2482
  return BlockStatement2;
2433
2483
  })();
2434
- exports2.BlockStatement = BlockStatement;
2484
+ exports3.BlockStatement = BlockStatement;
2435
2485
  var BreakStatement = /* @__PURE__ */ (function() {
2436
2486
  function BreakStatement2(label) {
2437
2487
  this.type = syntax_1.Syntax.BreakStatement;
@@ -2439,7 +2489,7 @@ var require_esprima = __commonJS({
2439
2489
  }
2440
2490
  return BreakStatement2;
2441
2491
  })();
2442
- exports2.BreakStatement = BreakStatement;
2492
+ exports3.BreakStatement = BreakStatement;
2443
2493
  var CallExpression = /* @__PURE__ */ (function() {
2444
2494
  function CallExpression2(callee, args) {
2445
2495
  this.type = syntax_1.Syntax.CallExpression;
@@ -2448,7 +2498,7 @@ var require_esprima = __commonJS({
2448
2498
  }
2449
2499
  return CallExpression2;
2450
2500
  })();
2451
- exports2.CallExpression = CallExpression;
2501
+ exports3.CallExpression = CallExpression;
2452
2502
  var CatchClause = /* @__PURE__ */ (function() {
2453
2503
  function CatchClause2(param, body) {
2454
2504
  this.type = syntax_1.Syntax.CatchClause;
@@ -2457,7 +2507,7 @@ var require_esprima = __commonJS({
2457
2507
  }
2458
2508
  return CatchClause2;
2459
2509
  })();
2460
- exports2.CatchClause = CatchClause;
2510
+ exports3.CatchClause = CatchClause;
2461
2511
  var ClassBody = /* @__PURE__ */ (function() {
2462
2512
  function ClassBody2(body) {
2463
2513
  this.type = syntax_1.Syntax.ClassBody;
@@ -2465,7 +2515,7 @@ var require_esprima = __commonJS({
2465
2515
  }
2466
2516
  return ClassBody2;
2467
2517
  })();
2468
- exports2.ClassBody = ClassBody;
2518
+ exports3.ClassBody = ClassBody;
2469
2519
  var ClassDeclaration = /* @__PURE__ */ (function() {
2470
2520
  function ClassDeclaration2(id, superClass, body) {
2471
2521
  this.type = syntax_1.Syntax.ClassDeclaration;
@@ -2475,7 +2525,7 @@ var require_esprima = __commonJS({
2475
2525
  }
2476
2526
  return ClassDeclaration2;
2477
2527
  })();
2478
- exports2.ClassDeclaration = ClassDeclaration;
2528
+ exports3.ClassDeclaration = ClassDeclaration;
2479
2529
  var ClassExpression = /* @__PURE__ */ (function() {
2480
2530
  function ClassExpression2(id, superClass, body) {
2481
2531
  this.type = syntax_1.Syntax.ClassExpression;
@@ -2485,7 +2535,7 @@ var require_esprima = __commonJS({
2485
2535
  }
2486
2536
  return ClassExpression2;
2487
2537
  })();
2488
- exports2.ClassExpression = ClassExpression;
2538
+ exports3.ClassExpression = ClassExpression;
2489
2539
  var ComputedMemberExpression = /* @__PURE__ */ (function() {
2490
2540
  function ComputedMemberExpression2(object, property) {
2491
2541
  this.type = syntax_1.Syntax.MemberExpression;
@@ -2495,7 +2545,7 @@ var require_esprima = __commonJS({
2495
2545
  }
2496
2546
  return ComputedMemberExpression2;
2497
2547
  })();
2498
- exports2.ComputedMemberExpression = ComputedMemberExpression;
2548
+ exports3.ComputedMemberExpression = ComputedMemberExpression;
2499
2549
  var ConditionalExpression = /* @__PURE__ */ (function() {
2500
2550
  function ConditionalExpression2(test, consequent, alternate) {
2501
2551
  this.type = syntax_1.Syntax.ConditionalExpression;
@@ -2505,7 +2555,7 @@ var require_esprima = __commonJS({
2505
2555
  }
2506
2556
  return ConditionalExpression2;
2507
2557
  })();
2508
- exports2.ConditionalExpression = ConditionalExpression;
2558
+ exports3.ConditionalExpression = ConditionalExpression;
2509
2559
  var ContinueStatement = /* @__PURE__ */ (function() {
2510
2560
  function ContinueStatement2(label) {
2511
2561
  this.type = syntax_1.Syntax.ContinueStatement;
@@ -2513,14 +2563,14 @@ var require_esprima = __commonJS({
2513
2563
  }
2514
2564
  return ContinueStatement2;
2515
2565
  })();
2516
- exports2.ContinueStatement = ContinueStatement;
2566
+ exports3.ContinueStatement = ContinueStatement;
2517
2567
  var DebuggerStatement = /* @__PURE__ */ (function() {
2518
2568
  function DebuggerStatement2() {
2519
2569
  this.type = syntax_1.Syntax.DebuggerStatement;
2520
2570
  }
2521
2571
  return DebuggerStatement2;
2522
2572
  })();
2523
- exports2.DebuggerStatement = DebuggerStatement;
2573
+ exports3.DebuggerStatement = DebuggerStatement;
2524
2574
  var Directive = /* @__PURE__ */ (function() {
2525
2575
  function Directive2(expression, directive) {
2526
2576
  this.type = syntax_1.Syntax.ExpressionStatement;
@@ -2529,7 +2579,7 @@ var require_esprima = __commonJS({
2529
2579
  }
2530
2580
  return Directive2;
2531
2581
  })();
2532
- exports2.Directive = Directive;
2582
+ exports3.Directive = Directive;
2533
2583
  var DoWhileStatement = /* @__PURE__ */ (function() {
2534
2584
  function DoWhileStatement2(body, test) {
2535
2585
  this.type = syntax_1.Syntax.DoWhileStatement;
@@ -2538,14 +2588,14 @@ var require_esprima = __commonJS({
2538
2588
  }
2539
2589
  return DoWhileStatement2;
2540
2590
  })();
2541
- exports2.DoWhileStatement = DoWhileStatement;
2591
+ exports3.DoWhileStatement = DoWhileStatement;
2542
2592
  var EmptyStatement = /* @__PURE__ */ (function() {
2543
2593
  function EmptyStatement2() {
2544
2594
  this.type = syntax_1.Syntax.EmptyStatement;
2545
2595
  }
2546
2596
  return EmptyStatement2;
2547
2597
  })();
2548
- exports2.EmptyStatement = EmptyStatement;
2598
+ exports3.EmptyStatement = EmptyStatement;
2549
2599
  var ExportAllDeclaration = /* @__PURE__ */ (function() {
2550
2600
  function ExportAllDeclaration2(source2) {
2551
2601
  this.type = syntax_1.Syntax.ExportAllDeclaration;
@@ -2553,7 +2603,7 @@ var require_esprima = __commonJS({
2553
2603
  }
2554
2604
  return ExportAllDeclaration2;
2555
2605
  })();
2556
- exports2.ExportAllDeclaration = ExportAllDeclaration;
2606
+ exports3.ExportAllDeclaration = ExportAllDeclaration;
2557
2607
  var ExportDefaultDeclaration = /* @__PURE__ */ (function() {
2558
2608
  function ExportDefaultDeclaration2(declaration) {
2559
2609
  this.type = syntax_1.Syntax.ExportDefaultDeclaration;
@@ -2561,7 +2611,7 @@ var require_esprima = __commonJS({
2561
2611
  }
2562
2612
  return ExportDefaultDeclaration2;
2563
2613
  })();
2564
- exports2.ExportDefaultDeclaration = ExportDefaultDeclaration;
2614
+ exports3.ExportDefaultDeclaration = ExportDefaultDeclaration;
2565
2615
  var ExportNamedDeclaration = /* @__PURE__ */ (function() {
2566
2616
  function ExportNamedDeclaration2(declaration, specifiers, source2) {
2567
2617
  this.type = syntax_1.Syntax.ExportNamedDeclaration;
@@ -2571,7 +2621,7 @@ var require_esprima = __commonJS({
2571
2621
  }
2572
2622
  return ExportNamedDeclaration2;
2573
2623
  })();
2574
- exports2.ExportNamedDeclaration = ExportNamedDeclaration;
2624
+ exports3.ExportNamedDeclaration = ExportNamedDeclaration;
2575
2625
  var ExportSpecifier = /* @__PURE__ */ (function() {
2576
2626
  function ExportSpecifier2(local, exported) {
2577
2627
  this.type = syntax_1.Syntax.ExportSpecifier;
@@ -2580,7 +2630,7 @@ var require_esprima = __commonJS({
2580
2630
  }
2581
2631
  return ExportSpecifier2;
2582
2632
  })();
2583
- exports2.ExportSpecifier = ExportSpecifier;
2633
+ exports3.ExportSpecifier = ExportSpecifier;
2584
2634
  var ExpressionStatement = /* @__PURE__ */ (function() {
2585
2635
  function ExpressionStatement2(expression) {
2586
2636
  this.type = syntax_1.Syntax.ExpressionStatement;
@@ -2588,7 +2638,7 @@ var require_esprima = __commonJS({
2588
2638
  }
2589
2639
  return ExpressionStatement2;
2590
2640
  })();
2591
- exports2.ExpressionStatement = ExpressionStatement;
2641
+ exports3.ExpressionStatement = ExpressionStatement;
2592
2642
  var ForInStatement = /* @__PURE__ */ (function() {
2593
2643
  function ForInStatement2(left, right, body) {
2594
2644
  this.type = syntax_1.Syntax.ForInStatement;
@@ -2599,7 +2649,7 @@ var require_esprima = __commonJS({
2599
2649
  }
2600
2650
  return ForInStatement2;
2601
2651
  })();
2602
- exports2.ForInStatement = ForInStatement;
2652
+ exports3.ForInStatement = ForInStatement;
2603
2653
  var ForOfStatement = /* @__PURE__ */ (function() {
2604
2654
  function ForOfStatement2(left, right, body) {
2605
2655
  this.type = syntax_1.Syntax.ForOfStatement;
@@ -2609,7 +2659,7 @@ var require_esprima = __commonJS({
2609
2659
  }
2610
2660
  return ForOfStatement2;
2611
2661
  })();
2612
- exports2.ForOfStatement = ForOfStatement;
2662
+ exports3.ForOfStatement = ForOfStatement;
2613
2663
  var ForStatement = /* @__PURE__ */ (function() {
2614
2664
  function ForStatement2(init, test, update, body) {
2615
2665
  this.type = syntax_1.Syntax.ForStatement;
@@ -2620,7 +2670,7 @@ var require_esprima = __commonJS({
2620
2670
  }
2621
2671
  return ForStatement2;
2622
2672
  })();
2623
- exports2.ForStatement = ForStatement;
2673
+ exports3.ForStatement = ForStatement;
2624
2674
  var FunctionDeclaration = /* @__PURE__ */ (function() {
2625
2675
  function FunctionDeclaration2(id, params, body, generator) {
2626
2676
  this.type = syntax_1.Syntax.FunctionDeclaration;
@@ -2633,7 +2683,7 @@ var require_esprima = __commonJS({
2633
2683
  }
2634
2684
  return FunctionDeclaration2;
2635
2685
  })();
2636
- exports2.FunctionDeclaration = FunctionDeclaration;
2686
+ exports3.FunctionDeclaration = FunctionDeclaration;
2637
2687
  var FunctionExpression = /* @__PURE__ */ (function() {
2638
2688
  function FunctionExpression2(id, params, body, generator) {
2639
2689
  this.type = syntax_1.Syntax.FunctionExpression;
@@ -2646,7 +2696,7 @@ var require_esprima = __commonJS({
2646
2696
  }
2647
2697
  return FunctionExpression2;
2648
2698
  })();
2649
- exports2.FunctionExpression = FunctionExpression;
2699
+ exports3.FunctionExpression = FunctionExpression;
2650
2700
  var Identifier = /* @__PURE__ */ (function() {
2651
2701
  function Identifier2(name) {
2652
2702
  this.type = syntax_1.Syntax.Identifier;
@@ -2654,7 +2704,7 @@ var require_esprima = __commonJS({
2654
2704
  }
2655
2705
  return Identifier2;
2656
2706
  })();
2657
- exports2.Identifier = Identifier;
2707
+ exports3.Identifier = Identifier;
2658
2708
  var IfStatement = /* @__PURE__ */ (function() {
2659
2709
  function IfStatement2(test, consequent, alternate) {
2660
2710
  this.type = syntax_1.Syntax.IfStatement;
@@ -2664,7 +2714,7 @@ var require_esprima = __commonJS({
2664
2714
  }
2665
2715
  return IfStatement2;
2666
2716
  })();
2667
- exports2.IfStatement = IfStatement;
2717
+ exports3.IfStatement = IfStatement;
2668
2718
  var ImportDeclaration = /* @__PURE__ */ (function() {
2669
2719
  function ImportDeclaration2(specifiers, source2) {
2670
2720
  this.type = syntax_1.Syntax.ImportDeclaration;
@@ -2673,7 +2723,7 @@ var require_esprima = __commonJS({
2673
2723
  }
2674
2724
  return ImportDeclaration2;
2675
2725
  })();
2676
- exports2.ImportDeclaration = ImportDeclaration;
2726
+ exports3.ImportDeclaration = ImportDeclaration;
2677
2727
  var ImportDefaultSpecifier = /* @__PURE__ */ (function() {
2678
2728
  function ImportDefaultSpecifier2(local) {
2679
2729
  this.type = syntax_1.Syntax.ImportDefaultSpecifier;
@@ -2681,7 +2731,7 @@ var require_esprima = __commonJS({
2681
2731
  }
2682
2732
  return ImportDefaultSpecifier2;
2683
2733
  })();
2684
- exports2.ImportDefaultSpecifier = ImportDefaultSpecifier;
2734
+ exports3.ImportDefaultSpecifier = ImportDefaultSpecifier;
2685
2735
  var ImportNamespaceSpecifier = /* @__PURE__ */ (function() {
2686
2736
  function ImportNamespaceSpecifier2(local) {
2687
2737
  this.type = syntax_1.Syntax.ImportNamespaceSpecifier;
@@ -2689,7 +2739,7 @@ var require_esprima = __commonJS({
2689
2739
  }
2690
2740
  return ImportNamespaceSpecifier2;
2691
2741
  })();
2692
- exports2.ImportNamespaceSpecifier = ImportNamespaceSpecifier;
2742
+ exports3.ImportNamespaceSpecifier = ImportNamespaceSpecifier;
2693
2743
  var ImportSpecifier = /* @__PURE__ */ (function() {
2694
2744
  function ImportSpecifier2(local, imported) {
2695
2745
  this.type = syntax_1.Syntax.ImportSpecifier;
@@ -2698,7 +2748,7 @@ var require_esprima = __commonJS({
2698
2748
  }
2699
2749
  return ImportSpecifier2;
2700
2750
  })();
2701
- exports2.ImportSpecifier = ImportSpecifier;
2751
+ exports3.ImportSpecifier = ImportSpecifier;
2702
2752
  var LabeledStatement = /* @__PURE__ */ (function() {
2703
2753
  function LabeledStatement2(label, body) {
2704
2754
  this.type = syntax_1.Syntax.LabeledStatement;
@@ -2707,7 +2757,7 @@ var require_esprima = __commonJS({
2707
2757
  }
2708
2758
  return LabeledStatement2;
2709
2759
  })();
2710
- exports2.LabeledStatement = LabeledStatement;
2760
+ exports3.LabeledStatement = LabeledStatement;
2711
2761
  var Literal = /* @__PURE__ */ (function() {
2712
2762
  function Literal2(value, raw) {
2713
2763
  this.type = syntax_1.Syntax.Literal;
@@ -2716,7 +2766,7 @@ var require_esprima = __commonJS({
2716
2766
  }
2717
2767
  return Literal2;
2718
2768
  })();
2719
- exports2.Literal = Literal;
2769
+ exports3.Literal = Literal;
2720
2770
  var MetaProperty = /* @__PURE__ */ (function() {
2721
2771
  function MetaProperty2(meta, property) {
2722
2772
  this.type = syntax_1.Syntax.MetaProperty;
@@ -2725,7 +2775,7 @@ var require_esprima = __commonJS({
2725
2775
  }
2726
2776
  return MetaProperty2;
2727
2777
  })();
2728
- exports2.MetaProperty = MetaProperty;
2778
+ exports3.MetaProperty = MetaProperty;
2729
2779
  var MethodDefinition = /* @__PURE__ */ (function() {
2730
2780
  function MethodDefinition2(key2, computed, value, kind, isStatic) {
2731
2781
  this.type = syntax_1.Syntax.MethodDefinition;
@@ -2737,7 +2787,7 @@ var require_esprima = __commonJS({
2737
2787
  }
2738
2788
  return MethodDefinition2;
2739
2789
  })();
2740
- exports2.MethodDefinition = MethodDefinition;
2790
+ exports3.MethodDefinition = MethodDefinition;
2741
2791
  var Module = /* @__PURE__ */ (function() {
2742
2792
  function Module2(body) {
2743
2793
  this.type = syntax_1.Syntax.Program;
@@ -2746,7 +2796,7 @@ var require_esprima = __commonJS({
2746
2796
  }
2747
2797
  return Module2;
2748
2798
  })();
2749
- exports2.Module = Module;
2799
+ exports3.Module = Module;
2750
2800
  var NewExpression = /* @__PURE__ */ (function() {
2751
2801
  function NewExpression2(callee, args) {
2752
2802
  this.type = syntax_1.Syntax.NewExpression;
@@ -2755,7 +2805,7 @@ var require_esprima = __commonJS({
2755
2805
  }
2756
2806
  return NewExpression2;
2757
2807
  })();
2758
- exports2.NewExpression = NewExpression;
2808
+ exports3.NewExpression = NewExpression;
2759
2809
  var ObjectExpression = /* @__PURE__ */ (function() {
2760
2810
  function ObjectExpression2(properties) {
2761
2811
  this.type = syntax_1.Syntax.ObjectExpression;
@@ -2763,7 +2813,7 @@ var require_esprima = __commonJS({
2763
2813
  }
2764
2814
  return ObjectExpression2;
2765
2815
  })();
2766
- exports2.ObjectExpression = ObjectExpression;
2816
+ exports3.ObjectExpression = ObjectExpression;
2767
2817
  var ObjectPattern = /* @__PURE__ */ (function() {
2768
2818
  function ObjectPattern2(properties) {
2769
2819
  this.type = syntax_1.Syntax.ObjectPattern;
@@ -2771,7 +2821,7 @@ var require_esprima = __commonJS({
2771
2821
  }
2772
2822
  return ObjectPattern2;
2773
2823
  })();
2774
- exports2.ObjectPattern = ObjectPattern;
2824
+ exports3.ObjectPattern = ObjectPattern;
2775
2825
  var Property = /* @__PURE__ */ (function() {
2776
2826
  function Property2(kind, key2, computed, value, method, shorthand) {
2777
2827
  this.type = syntax_1.Syntax.Property;
@@ -2784,7 +2834,7 @@ var require_esprima = __commonJS({
2784
2834
  }
2785
2835
  return Property2;
2786
2836
  })();
2787
- exports2.Property = Property;
2837
+ exports3.Property = Property;
2788
2838
  var RegexLiteral = /* @__PURE__ */ (function() {
2789
2839
  function RegexLiteral2(value, raw, pattern, flags) {
2790
2840
  this.type = syntax_1.Syntax.Literal;
@@ -2794,7 +2844,7 @@ var require_esprima = __commonJS({
2794
2844
  }
2795
2845
  return RegexLiteral2;
2796
2846
  })();
2797
- exports2.RegexLiteral = RegexLiteral;
2847
+ exports3.RegexLiteral = RegexLiteral;
2798
2848
  var RestElement = /* @__PURE__ */ (function() {
2799
2849
  function RestElement2(argument) {
2800
2850
  this.type = syntax_1.Syntax.RestElement;
@@ -2802,7 +2852,7 @@ var require_esprima = __commonJS({
2802
2852
  }
2803
2853
  return RestElement2;
2804
2854
  })();
2805
- exports2.RestElement = RestElement;
2855
+ exports3.RestElement = RestElement;
2806
2856
  var ReturnStatement = /* @__PURE__ */ (function() {
2807
2857
  function ReturnStatement2(argument) {
2808
2858
  this.type = syntax_1.Syntax.ReturnStatement;
@@ -2810,7 +2860,7 @@ var require_esprima = __commonJS({
2810
2860
  }
2811
2861
  return ReturnStatement2;
2812
2862
  })();
2813
- exports2.ReturnStatement = ReturnStatement;
2863
+ exports3.ReturnStatement = ReturnStatement;
2814
2864
  var Script = /* @__PURE__ */ (function() {
2815
2865
  function Script2(body) {
2816
2866
  this.type = syntax_1.Syntax.Program;
@@ -2819,7 +2869,7 @@ var require_esprima = __commonJS({
2819
2869
  }
2820
2870
  return Script2;
2821
2871
  })();
2822
- exports2.Script = Script;
2872
+ exports3.Script = Script;
2823
2873
  var SequenceExpression = /* @__PURE__ */ (function() {
2824
2874
  function SequenceExpression2(expressions) {
2825
2875
  this.type = syntax_1.Syntax.SequenceExpression;
@@ -2827,7 +2877,7 @@ var require_esprima = __commonJS({
2827
2877
  }
2828
2878
  return SequenceExpression2;
2829
2879
  })();
2830
- exports2.SequenceExpression = SequenceExpression;
2880
+ exports3.SequenceExpression = SequenceExpression;
2831
2881
  var SpreadElement = /* @__PURE__ */ (function() {
2832
2882
  function SpreadElement2(argument) {
2833
2883
  this.type = syntax_1.Syntax.SpreadElement;
@@ -2835,7 +2885,7 @@ var require_esprima = __commonJS({
2835
2885
  }
2836
2886
  return SpreadElement2;
2837
2887
  })();
2838
- exports2.SpreadElement = SpreadElement;
2888
+ exports3.SpreadElement = SpreadElement;
2839
2889
  var StaticMemberExpression = /* @__PURE__ */ (function() {
2840
2890
  function StaticMemberExpression2(object, property) {
2841
2891
  this.type = syntax_1.Syntax.MemberExpression;
@@ -2845,14 +2895,14 @@ var require_esprima = __commonJS({
2845
2895
  }
2846
2896
  return StaticMemberExpression2;
2847
2897
  })();
2848
- exports2.StaticMemberExpression = StaticMemberExpression;
2898
+ exports3.StaticMemberExpression = StaticMemberExpression;
2849
2899
  var Super = /* @__PURE__ */ (function() {
2850
2900
  function Super2() {
2851
2901
  this.type = syntax_1.Syntax.Super;
2852
2902
  }
2853
2903
  return Super2;
2854
2904
  })();
2855
- exports2.Super = Super;
2905
+ exports3.Super = Super;
2856
2906
  var SwitchCase = /* @__PURE__ */ (function() {
2857
2907
  function SwitchCase2(test, consequent) {
2858
2908
  this.type = syntax_1.Syntax.SwitchCase;
@@ -2861,7 +2911,7 @@ var require_esprima = __commonJS({
2861
2911
  }
2862
2912
  return SwitchCase2;
2863
2913
  })();
2864
- exports2.SwitchCase = SwitchCase;
2914
+ exports3.SwitchCase = SwitchCase;
2865
2915
  var SwitchStatement = /* @__PURE__ */ (function() {
2866
2916
  function SwitchStatement2(discriminant, cases) {
2867
2917
  this.type = syntax_1.Syntax.SwitchStatement;
@@ -2870,7 +2920,7 @@ var require_esprima = __commonJS({
2870
2920
  }
2871
2921
  return SwitchStatement2;
2872
2922
  })();
2873
- exports2.SwitchStatement = SwitchStatement;
2923
+ exports3.SwitchStatement = SwitchStatement;
2874
2924
  var TaggedTemplateExpression = /* @__PURE__ */ (function() {
2875
2925
  function TaggedTemplateExpression2(tag, quasi) {
2876
2926
  this.type = syntax_1.Syntax.TaggedTemplateExpression;
@@ -2879,7 +2929,7 @@ var require_esprima = __commonJS({
2879
2929
  }
2880
2930
  return TaggedTemplateExpression2;
2881
2931
  })();
2882
- exports2.TaggedTemplateExpression = TaggedTemplateExpression;
2932
+ exports3.TaggedTemplateExpression = TaggedTemplateExpression;
2883
2933
  var TemplateElement = /* @__PURE__ */ (function() {
2884
2934
  function TemplateElement2(value, tail) {
2885
2935
  this.type = syntax_1.Syntax.TemplateElement;
@@ -2888,7 +2938,7 @@ var require_esprima = __commonJS({
2888
2938
  }
2889
2939
  return TemplateElement2;
2890
2940
  })();
2891
- exports2.TemplateElement = TemplateElement;
2941
+ exports3.TemplateElement = TemplateElement;
2892
2942
  var TemplateLiteral = /* @__PURE__ */ (function() {
2893
2943
  function TemplateLiteral2(quasis, expressions) {
2894
2944
  this.type = syntax_1.Syntax.TemplateLiteral;
@@ -2897,14 +2947,14 @@ var require_esprima = __commonJS({
2897
2947
  }
2898
2948
  return TemplateLiteral2;
2899
2949
  })();
2900
- exports2.TemplateLiteral = TemplateLiteral;
2950
+ exports3.TemplateLiteral = TemplateLiteral;
2901
2951
  var ThisExpression = /* @__PURE__ */ (function() {
2902
2952
  function ThisExpression2() {
2903
2953
  this.type = syntax_1.Syntax.ThisExpression;
2904
2954
  }
2905
2955
  return ThisExpression2;
2906
2956
  })();
2907
- exports2.ThisExpression = ThisExpression;
2957
+ exports3.ThisExpression = ThisExpression;
2908
2958
  var ThrowStatement = /* @__PURE__ */ (function() {
2909
2959
  function ThrowStatement2(argument) {
2910
2960
  this.type = syntax_1.Syntax.ThrowStatement;
@@ -2912,7 +2962,7 @@ var require_esprima = __commonJS({
2912
2962
  }
2913
2963
  return ThrowStatement2;
2914
2964
  })();
2915
- exports2.ThrowStatement = ThrowStatement;
2965
+ exports3.ThrowStatement = ThrowStatement;
2916
2966
  var TryStatement = /* @__PURE__ */ (function() {
2917
2967
  function TryStatement2(block, handler, finalizer) {
2918
2968
  this.type = syntax_1.Syntax.TryStatement;
@@ -2922,7 +2972,7 @@ var require_esprima = __commonJS({
2922
2972
  }
2923
2973
  return TryStatement2;
2924
2974
  })();
2925
- exports2.TryStatement = TryStatement;
2975
+ exports3.TryStatement = TryStatement;
2926
2976
  var UnaryExpression = /* @__PURE__ */ (function() {
2927
2977
  function UnaryExpression2(operator, argument) {
2928
2978
  this.type = syntax_1.Syntax.UnaryExpression;
@@ -2932,7 +2982,7 @@ var require_esprima = __commonJS({
2932
2982
  }
2933
2983
  return UnaryExpression2;
2934
2984
  })();
2935
- exports2.UnaryExpression = UnaryExpression;
2985
+ exports3.UnaryExpression = UnaryExpression;
2936
2986
  var UpdateExpression = /* @__PURE__ */ (function() {
2937
2987
  function UpdateExpression2(operator, argument, prefix) {
2938
2988
  this.type = syntax_1.Syntax.UpdateExpression;
@@ -2942,7 +2992,7 @@ var require_esprima = __commonJS({
2942
2992
  }
2943
2993
  return UpdateExpression2;
2944
2994
  })();
2945
- exports2.UpdateExpression = UpdateExpression;
2995
+ exports3.UpdateExpression = UpdateExpression;
2946
2996
  var VariableDeclaration = /* @__PURE__ */ (function() {
2947
2997
  function VariableDeclaration2(declarations, kind) {
2948
2998
  this.type = syntax_1.Syntax.VariableDeclaration;
@@ -2951,7 +3001,7 @@ var require_esprima = __commonJS({
2951
3001
  }
2952
3002
  return VariableDeclaration2;
2953
3003
  })();
2954
- exports2.VariableDeclaration = VariableDeclaration;
3004
+ exports3.VariableDeclaration = VariableDeclaration;
2955
3005
  var VariableDeclarator = /* @__PURE__ */ (function() {
2956
3006
  function VariableDeclarator2(id, init) {
2957
3007
  this.type = syntax_1.Syntax.VariableDeclarator;
@@ -2960,7 +3010,7 @@ var require_esprima = __commonJS({
2960
3010
  }
2961
3011
  return VariableDeclarator2;
2962
3012
  })();
2963
- exports2.VariableDeclarator = VariableDeclarator;
3013
+ exports3.VariableDeclarator = VariableDeclarator;
2964
3014
  var WhileStatement = /* @__PURE__ */ (function() {
2965
3015
  function WhileStatement2(test, body) {
2966
3016
  this.type = syntax_1.Syntax.WhileStatement;
@@ -2969,7 +3019,7 @@ var require_esprima = __commonJS({
2969
3019
  }
2970
3020
  return WhileStatement2;
2971
3021
  })();
2972
- exports2.WhileStatement = WhileStatement;
3022
+ exports3.WhileStatement = WhileStatement;
2973
3023
  var WithStatement = /* @__PURE__ */ (function() {
2974
3024
  function WithStatement2(object, body) {
2975
3025
  this.type = syntax_1.Syntax.WithStatement;
@@ -2978,7 +3028,7 @@ var require_esprima = __commonJS({
2978
3028
  }
2979
3029
  return WithStatement2;
2980
3030
  })();
2981
- exports2.WithStatement = WithStatement;
3031
+ exports3.WithStatement = WithStatement;
2982
3032
  var YieldExpression = /* @__PURE__ */ (function() {
2983
3033
  function YieldExpression2(argument, delegate) {
2984
3034
  this.type = syntax_1.Syntax.YieldExpression;
@@ -2987,12 +3037,13 @@ var require_esprima = __commonJS({
2987
3037
  }
2988
3038
  return YieldExpression2;
2989
3039
  })();
2990
- exports2.YieldExpression = YieldExpression;
3040
+ exports3.YieldExpression = YieldExpression;
2991
3041
  },
2992
3042
  /* 8 */
2993
3043
  /***/
2994
- function(module2, exports2, __webpack_require__) {
2995
- Object.defineProperty(exports2, "__esModule", { value: true });
3044
+ function(module3, exports3, __webpack_require__) {
3045
+ "use strict";
3046
+ Object.defineProperty(exports3, "__esModule", { value: true });
2996
3047
  var assert_1 = __webpack_require__(9);
2997
3048
  var error_handler_1 = __webpack_require__(10);
2998
3049
  var messages_1 = __webpack_require__(11);
@@ -3093,6 +3144,10 @@ var require_esprima = __commonJS({
3093
3144
  };
3094
3145
  }
3095
3146
  Parser2.prototype.throwError = function(messageFormat) {
3147
+ var values = [];
3148
+ for (var _i = 1; _i < arguments.length; _i++) {
3149
+ values[_i - 1] = arguments[_i];
3150
+ }
3096
3151
  var args = Array.prototype.slice.call(arguments, 1);
3097
3152
  var msg = messageFormat.replace(/%(\d)/g, function(whole, idx) {
3098
3153
  assert_1.assert(idx < args.length, "Message reference must be in range");
@@ -3104,6 +3159,10 @@ var require_esprima = __commonJS({
3104
3159
  throw this.errorHandler.createError(index, line2, column2, msg);
3105
3160
  };
3106
3161
  Parser2.prototype.tolerateError = function(messageFormat) {
3162
+ var values = [];
3163
+ for (var _i = 1; _i < arguments.length; _i++) {
3164
+ values[_i - 1] = arguments[_i];
3165
+ }
3107
3166
  var args = Array.prototype.slice.call(arguments, 1);
3108
3167
  var msg = messageFormat.replace(/%(\d)/g, function(whole, idx) {
3109
3168
  assert_1.assert(idx < args.length, "Message reference must be in range");
@@ -3741,6 +3800,8 @@ var require_esprima = __commonJS({
3741
3800
  delete expr.operator;
3742
3801
  this.reinterpretExpressionAsPattern(expr.left);
3743
3802
  break;
3803
+ default:
3804
+ break;
3744
3805
  }
3745
3806
  };
3746
3807
  Parser2.prototype.parseGroupExpression = function() {
@@ -4202,6 +4263,8 @@ var require_esprima = __commonJS({
4202
4263
  this.checkPatternParam(options2, param.properties[i].value);
4203
4264
  }
4204
4265
  break;
4266
+ default:
4267
+ break;
4205
4268
  }
4206
4269
  options2.simple = options2.simple && param instanceof Node.Identifier;
4207
4270
  };
@@ -5402,6 +5465,8 @@ var require_esprima = __commonJS({
5402
5465
  return true;
5403
5466
  case 7:
5404
5467
  return token2.value === "[";
5468
+ default:
5469
+ break;
5405
5470
  }
5406
5471
  return false;
5407
5472
  };
@@ -5454,6 +5519,8 @@ var require_esprima = __commonJS({
5454
5519
  case 4:
5455
5520
  start = value === "class" || value === "delete" || value === "function" || value === "let" || value === "new" || value === "super" || value === "this" || value === "typeof" || value === "void" || value === "yield";
5456
5521
  break;
5522
+ default:
5523
+ break;
5457
5524
  }
5458
5525
  return start;
5459
5526
  };
@@ -5825,23 +5892,25 @@ var require_esprima = __commonJS({
5825
5892
  };
5826
5893
  return Parser2;
5827
5894
  })();
5828
- exports2.Parser = Parser;
5895
+ exports3.Parser = Parser;
5829
5896
  },
5830
5897
  /* 9 */
5831
5898
  /***/
5832
- function(module2, exports2) {
5833
- Object.defineProperty(exports2, "__esModule", { value: true });
5899
+ function(module3, exports3) {
5900
+ "use strict";
5901
+ Object.defineProperty(exports3, "__esModule", { value: true });
5834
5902
  function assert(condition, message) {
5835
5903
  if (!condition) {
5836
5904
  throw new Error("ASSERT: " + message);
5837
5905
  }
5838
5906
  }
5839
- exports2.assert = assert;
5907
+ exports3.assert = assert;
5840
5908
  },
5841
5909
  /* 10 */
5842
5910
  /***/
5843
- function(module2, exports2) {
5844
- Object.defineProperty(exports2, "__esModule", { value: true });
5911
+ function(module3, exports3) {
5912
+ "use strict";
5913
+ Object.defineProperty(exports3, "__esModule", { value: true });
5845
5914
  var ErrorHandler = (function() {
5846
5915
  function ErrorHandler2() {
5847
5916
  this.errors = [];
@@ -5890,13 +5959,14 @@ var require_esprima = __commonJS({
5890
5959
  };
5891
5960
  return ErrorHandler2;
5892
5961
  })();
5893
- exports2.ErrorHandler = ErrorHandler;
5962
+ exports3.ErrorHandler = ErrorHandler;
5894
5963
  },
5895
5964
  /* 11 */
5896
5965
  /***/
5897
- function(module2, exports2) {
5898
- Object.defineProperty(exports2, "__esModule", { value: true });
5899
- exports2.Messages = {
5966
+ function(module3, exports3) {
5967
+ "use strict";
5968
+ Object.defineProperty(exports3, "__esModule", { value: true });
5969
+ exports3.Messages = {
5900
5970
  BadGetterArity: "Getter must not have any formal parameters",
5901
5971
  BadSetterArity: "Setter must have exactly one formal parameter",
5902
5972
  BadSetterRestParameter: "Setter function argument must not be a rest parameter",
@@ -5959,8 +6029,9 @@ var require_esprima = __commonJS({
5959
6029
  },
5960
6030
  /* 12 */
5961
6031
  /***/
5962
- function(module2, exports2, __webpack_require__) {
5963
- Object.defineProperty(exports2, "__esModule", { value: true });
6032
+ function(module3, exports3, __webpack_require__) {
6033
+ "use strict";
6034
+ Object.defineProperty(exports3, "__esModule", { value: true });
5964
6035
  var assert_1 = __webpack_require__(9);
5965
6036
  var character_1 = __webpack_require__(4);
5966
6037
  var messages_1 = __webpack_require__(11);
@@ -6985,59 +7056,61 @@ var require_esprima = __commonJS({
6985
7056
  };
6986
7057
  return Scanner2;
6987
7058
  })();
6988
- exports2.Scanner = Scanner;
7059
+ exports3.Scanner = Scanner;
6989
7060
  },
6990
7061
  /* 13 */
6991
7062
  /***/
6992
- function(module2, exports2) {
6993
- Object.defineProperty(exports2, "__esModule", { value: true });
6994
- exports2.TokenName = {};
6995
- exports2.TokenName[
7063
+ function(module3, exports3) {
7064
+ "use strict";
7065
+ Object.defineProperty(exports3, "__esModule", { value: true });
7066
+ exports3.TokenName = {};
7067
+ exports3.TokenName[
6996
7068
  1
6997
7069
  /* BooleanLiteral */
6998
7070
  ] = "Boolean";
6999
- exports2.TokenName[
7071
+ exports3.TokenName[
7000
7072
  2
7001
7073
  /* EOF */
7002
7074
  ] = "<end>";
7003
- exports2.TokenName[
7075
+ exports3.TokenName[
7004
7076
  3
7005
7077
  /* Identifier */
7006
7078
  ] = "Identifier";
7007
- exports2.TokenName[
7079
+ exports3.TokenName[
7008
7080
  4
7009
7081
  /* Keyword */
7010
7082
  ] = "Keyword";
7011
- exports2.TokenName[
7083
+ exports3.TokenName[
7012
7084
  5
7013
7085
  /* NullLiteral */
7014
7086
  ] = "Null";
7015
- exports2.TokenName[
7087
+ exports3.TokenName[
7016
7088
  6
7017
7089
  /* NumericLiteral */
7018
7090
  ] = "Numeric";
7019
- exports2.TokenName[
7091
+ exports3.TokenName[
7020
7092
  7
7021
7093
  /* Punctuator */
7022
7094
  ] = "Punctuator";
7023
- exports2.TokenName[
7095
+ exports3.TokenName[
7024
7096
  8
7025
7097
  /* StringLiteral */
7026
7098
  ] = "String";
7027
- exports2.TokenName[
7099
+ exports3.TokenName[
7028
7100
  9
7029
7101
  /* RegularExpression */
7030
7102
  ] = "RegularExpression";
7031
- exports2.TokenName[
7103
+ exports3.TokenName[
7032
7104
  10
7033
7105
  /* Template */
7034
7106
  ] = "Template";
7035
7107
  },
7036
7108
  /* 14 */
7037
7109
  /***/
7038
- function(module2, exports2) {
7039
- Object.defineProperty(exports2, "__esModule", { value: true });
7040
- exports2.XHTMLEntities = {
7110
+ function(module3, exports3) {
7111
+ "use strict";
7112
+ Object.defineProperty(exports3, "__esModule", { value: true });
7113
+ exports3.XHTMLEntities = {
7041
7114
  quot: '"',
7042
7115
  amp: "&",
7043
7116
  apos: "'",
@@ -7294,8 +7367,9 @@ var require_esprima = __commonJS({
7294
7367
  },
7295
7368
  /* 15 */
7296
7369
  /***/
7297
- function(module2, exports2, __webpack_require__) {
7298
- Object.defineProperty(exports2, "__esModule", { value: true });
7370
+ function(module3, exports3, __webpack_require__) {
7371
+ "use strict";
7372
+ Object.defineProperty(exports3, "__esModule", { value: true });
7299
7373
  var error_handler_1 = __webpack_require__(10);
7300
7374
  var scanner_1 = __webpack_require__(12);
7301
7375
  var token_1 = __webpack_require__(13);
@@ -7386,6 +7460,8 @@ var require_esprima = __commonJS({
7386
7460
  regex = check ? !this.beforeFunctionExpression(check) : true;
7387
7461
  }
7388
7462
  break;
7463
+ default:
7464
+ break;
7389
7465
  }
7390
7466
  return regex;
7391
7467
  };
@@ -7477,7 +7553,7 @@ var require_esprima = __commonJS({
7477
7553
  };
7478
7554
  return Tokenizer2;
7479
7555
  })();
7480
- exports2.Tokenizer = Tokenizer;
7556
+ exports3.Tokenizer = Tokenizer;
7481
7557
  }
7482
7558
  /******/
7483
7559
  ])
@@ -7488,68 +7564,69 @@ var require_esprima = __commonJS({
7488
7564
 
7489
7565
  // ../../node_modules/.pnpm/core-util-is@1.0.3/node_modules/core-util-is/lib/util.js
7490
7566
  var require_util = __commonJS({
7491
- "../../node_modules/.pnpm/core-util-is@1.0.3/node_modules/core-util-is/lib/util.js"(exports$1) {
7567
+ "../../node_modules/.pnpm/core-util-is@1.0.3/node_modules/core-util-is/lib/util.js"(exports2) {
7568
+ "use strict";
7492
7569
  function isArray(arg) {
7493
7570
  if (Array.isArray) {
7494
7571
  return Array.isArray(arg);
7495
7572
  }
7496
7573
  return objectToString(arg) === "[object Array]";
7497
7574
  }
7498
- exports$1.isArray = isArray;
7575
+ exports2.isArray = isArray;
7499
7576
  function isBoolean(arg) {
7500
7577
  return typeof arg === "boolean";
7501
7578
  }
7502
- exports$1.isBoolean = isBoolean;
7579
+ exports2.isBoolean = isBoolean;
7503
7580
  function isNull(arg) {
7504
7581
  return arg === null;
7505
7582
  }
7506
- exports$1.isNull = isNull;
7583
+ exports2.isNull = isNull;
7507
7584
  function isNullOrUndefined(arg) {
7508
7585
  return arg == null;
7509
7586
  }
7510
- exports$1.isNullOrUndefined = isNullOrUndefined;
7587
+ exports2.isNullOrUndefined = isNullOrUndefined;
7511
7588
  function isNumber(arg) {
7512
7589
  return typeof arg === "number";
7513
7590
  }
7514
- exports$1.isNumber = isNumber;
7591
+ exports2.isNumber = isNumber;
7515
7592
  function isString(arg) {
7516
7593
  return typeof arg === "string";
7517
7594
  }
7518
- exports$1.isString = isString;
7595
+ exports2.isString = isString;
7519
7596
  function isSymbol(arg) {
7520
7597
  return typeof arg === "symbol";
7521
7598
  }
7522
- exports$1.isSymbol = isSymbol;
7599
+ exports2.isSymbol = isSymbol;
7523
7600
  function isUndefined(arg) {
7524
7601
  return arg === void 0;
7525
7602
  }
7526
- exports$1.isUndefined = isUndefined;
7603
+ exports2.isUndefined = isUndefined;
7527
7604
  function isRegExp(re) {
7528
7605
  return objectToString(re) === "[object RegExp]";
7529
7606
  }
7530
- exports$1.isRegExp = isRegExp;
7607
+ exports2.isRegExp = isRegExp;
7531
7608
  function isObject(arg) {
7532
7609
  return typeof arg === "object" && arg !== null;
7533
7610
  }
7534
- exports$1.isObject = isObject;
7611
+ exports2.isObject = isObject;
7535
7612
  function isDate(d) {
7536
7613
  return objectToString(d) === "[object Date]";
7537
7614
  }
7538
- exports$1.isDate = isDate;
7615
+ exports2.isDate = isDate;
7539
7616
  function isError(e) {
7540
7617
  return objectToString(e) === "[object Error]" || e instanceof Error;
7541
7618
  }
7542
- exports$1.isError = isError;
7619
+ exports2.isError = isError;
7543
7620
  function isFunction(arg) {
7544
7621
  return typeof arg === "function";
7545
7622
  }
7546
- exports$1.isFunction = isFunction;
7623
+ exports2.isFunction = isFunction;
7547
7624
  function isPrimitive(arg) {
7548
7625
  return arg === null || typeof arg === "boolean" || typeof arg === "number" || typeof arg === "string" || typeof arg === "symbol" || // ES6 symbol
7549
7626
  typeof arg === "undefined";
7550
7627
  }
7551
- exports$1.isPrimitive = isPrimitive;
7552
- exports$1.isBuffer = __require("buffer").Buffer.isBuffer;
7628
+ exports2.isPrimitive = isPrimitive;
7629
+ exports2.isBuffer = require("buffer").Buffer.isBuffer;
7553
7630
  function objectToString(o) {
7554
7631
  return Object.prototype.toString.call(o);
7555
7632
  }
@@ -7558,7 +7635,8 @@ var require_util = __commonJS({
7558
7635
 
7559
7636
  // ../../node_modules/.pnpm/array-timsort@1.0.3/node_modules/array-timsort/src/index.js
7560
7637
  var require_src = __commonJS({
7561
- "../../node_modules/.pnpm/array-timsort@1.0.3/node_modules/array-timsort/src/index.js"(exports$1, module) {
7638
+ "../../node_modules/.pnpm/array-timsort@1.0.3/node_modules/array-timsort/src/index.js"(exports2, module2) {
7639
+ "use strict";
7562
7640
  var DEFAULT_MIN_MERGE = 32;
7563
7641
  var DEFAULT_MIN_GALLOPING = 7;
7564
7642
  var DEFAULT_TMP_STORAGE_LENGTH = 256;
@@ -8265,7 +8343,7 @@ var require_src = __commonJS({
8265
8343
  ts.forceMergeRuns();
8266
8344
  return results;
8267
8345
  }
8268
- module.exports = {
8346
+ module2.exports = {
8269
8347
  sort
8270
8348
  };
8271
8349
  }
@@ -8273,7 +8351,8 @@ var require_src = __commonJS({
8273
8351
 
8274
8352
  // ../../node_modules/.pnpm/comment-json@4.5.1/node_modules/comment-json/src/common.js
8275
8353
  var require_common = __commonJS({
8276
- "../../node_modules/.pnpm/comment-json@4.5.1/node_modules/comment-json/src/common.js"(exports$1, module) {
8354
+ "../../node_modules/.pnpm/comment-json@4.5.1/node_modules/comment-json/src/common.js"(exports2, module2) {
8355
+ "use strict";
8277
8356
  var {
8278
8357
  isObject,
8279
8358
  isArray,
@@ -8392,7 +8471,7 @@ var require_common = __commonJS({
8392
8471
  return target;
8393
8472
  };
8394
8473
  var is_raw_json = isFunction(JSON.isRawJSON) ? JSON.isRawJSON : () => false;
8395
- module.exports = {
8474
+ module2.exports = {
8396
8475
  PROP_SYMBOL_PREFIXES,
8397
8476
  PREFIX_BEFORE,
8398
8477
  PREFIX_AFTER_PROP,
@@ -8573,7 +8652,8 @@ var require_common = __commonJS({
8573
8652
 
8574
8653
  // ../../node_modules/.pnpm/comment-json@4.5.1/node_modules/comment-json/src/array.js
8575
8654
  var require_array = __commonJS({
8576
- "../../node_modules/.pnpm/comment-json@4.5.1/node_modules/comment-json/src/array.js"(exports$1, module) {
8655
+ "../../node_modules/.pnpm/comment-json@4.5.1/node_modules/comment-json/src/array.js"(exports2, module2) {
8656
+ "use strict";
8577
8657
  var { isArray } = require_util();
8578
8658
  var { sort } = require_src();
8579
8659
  var {
@@ -8749,7 +8829,7 @@ var require_array = __commonJS({
8749
8829
  return this;
8750
8830
  }
8751
8831
  };
8752
- module.exports = {
8832
+ module2.exports = {
8753
8833
  CommentArray
8754
8834
  };
8755
8835
  }
@@ -8757,7 +8837,8 @@ var require_array = __commonJS({
8757
8837
 
8758
8838
  // ../../node_modules/.pnpm/comment-json@4.5.1/node_modules/comment-json/src/parse.js
8759
8839
  var require_parse = __commonJS({
8760
- "../../node_modules/.pnpm/comment-json@4.5.1/node_modules/comment-json/src/parse.js"(exports$1, module) {
8840
+ "../../node_modules/.pnpm/comment-json@4.5.1/node_modules/comment-json/src/parse.js"(exports2, module2) {
8841
+ "use strict";
8761
8842
  var esprima = require_esprima();
8762
8843
  var {
8763
8844
  CommentArray
@@ -9066,7 +9147,7 @@ var require_parse = __commonJS({
9066
9147
  free();
9067
9148
  return result;
9068
9149
  };
9069
- module.exports = {
9150
+ module2.exports = {
9070
9151
  parse: parse3,
9071
9152
  tokenize
9072
9153
  };
@@ -9075,7 +9156,8 @@ var require_parse = __commonJS({
9075
9156
 
9076
9157
  // ../../node_modules/.pnpm/comment-json@4.5.1/node_modules/comment-json/src/stringify.js
9077
9158
  var require_stringify = __commonJS({
9078
- "../../node_modules/.pnpm/comment-json@4.5.1/node_modules/comment-json/src/stringify.js"(exports$1, module) {
9159
+ "../../node_modules/.pnpm/comment-json@4.5.1/node_modules/comment-json/src/stringify.js"(exports2, module2) {
9160
+ "use strict";
9079
9161
  var {
9080
9162
  isArray,
9081
9163
  isObject,
@@ -9243,6 +9325,8 @@ var require_stringify = __commonJS({
9243
9325
  return value.rawJSON;
9244
9326
  }
9245
9327
  return isArray(value) ? array_stringify(value, gap) : object_stringify(value, gap);
9328
+ // undefined
9329
+ default:
9246
9330
  }
9247
9331
  }
9248
9332
  var get_indent = (space) => isString(space) ? space : isNumber(space) ? SPACE.repeat(space) : EMPTY;
@@ -9259,7 +9343,7 @@ var require_stringify = __commonJS({
9259
9343
  const str = toString.call(subject);
9260
9344
  return PRIMITIVE_OBJECT_TYPES.includes(str);
9261
9345
  };
9262
- module.exports = (value, replacer_, space) => {
9346
+ module2.exports = (value, replacer_, space) => {
9263
9347
  const indent_ = get_indent(space);
9264
9348
  if (!indent_) {
9265
9349
  return JSON.stringify(value, replacer_);
@@ -9278,7 +9362,8 @@ var require_stringify = __commonJS({
9278
9362
 
9279
9363
  // ../../node_modules/.pnpm/comment-json@4.5.1/node_modules/comment-json/src/index.js
9280
9364
  var require_src2 = __commonJS({
9281
- "../../node_modules/.pnpm/comment-json@4.5.1/node_modules/comment-json/src/index.js"(exports$1, module) {
9365
+ "../../node_modules/.pnpm/comment-json@4.5.1/node_modules/comment-json/src/index.js"(exports2, module2) {
9366
+ "use strict";
9282
9367
  var { parse: parse3, tokenize } = require_parse();
9283
9368
  var stringify3 = require_stringify();
9284
9369
  var { CommentArray } = require_array();
@@ -9294,7 +9379,7 @@ var require_src2 = __commonJS({
9294
9379
  moveComments,
9295
9380
  removeComments
9296
9381
  } = require_common();
9297
- module.exports = {
9382
+ module2.exports = {
9298
9383
  PREFIX_BEFORE,
9299
9384
  PREFIX_AFTER_PROP,
9300
9385
  PREFIX_AFTER_COLON,
@@ -9598,6 +9683,7 @@ function syntaxError(message) {
9598
9683
  var Space_Separator, ID_Start, ID_Continue, unicode, util, source, parseState, stack, pos, line, column, token, key, root, parse, lexState, buffer, doubleQuote, sign, c, lexStates, parseStates, stringify, JSON5, lib, dist_default;
9599
9684
  var init_dist = __esm({
9600
9685
  "../../node_modules/.pnpm/json5@2.2.3/node_modules/json5/dist/index.mjs"() {
9686
+ "use strict";
9601
9687
  Space_Separator = /[\u1680\u2000-\u200A\u202F\u205F\u3000]/;
9602
9688
  ID_Start = /[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]/;
9603
9689
  ID_Continue = /[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u09FC\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9-\u0AFF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D00-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF9\u1D00-\u1DF9\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDE00-\uDE3E\uDE47\uDE50-\uDE83\uDE86-\uDE99\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD50-\uDD59]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/;
@@ -10238,7 +10324,7 @@ var init_dist = __esm({
10238
10324
  return "false";
10239
10325
  }
10240
10326
  if (typeof value2 === "string") {
10241
- return quoteString(value2);
10327
+ return quoteString(value2, false);
10242
10328
  }
10243
10329
  if (typeof value2 === "number") {
10244
10330
  return String(value2);
@@ -10337,15 +10423,15 @@ var init_dist = __esm({
10337
10423
  }
10338
10424
  function serializeKey(key2) {
10339
10425
  if (key2.length === 0) {
10340
- return quoteString(key2);
10426
+ return quoteString(key2, true);
10341
10427
  }
10342
10428
  const firstChar = String.fromCodePoint(key2.codePointAt(0));
10343
10429
  if (!util.isIdStartChar(firstChar)) {
10344
- return quoteString(key2);
10430
+ return quoteString(key2, true);
10345
10431
  }
10346
10432
  for (let i = firstChar.length; i < key2.length; i++) {
10347
10433
  if (!util.isIdContinueChar(String.fromCodePoint(key2.codePointAt(i)))) {
10348
- return quoteString(key2);
10434
+ return quoteString(key2, true);
10349
10435
  }
10350
10436
  }
10351
10437
  return key2;
@@ -10474,6 +10560,7 @@ function detectIndent(text) {
10474
10560
  var import_comment_json;
10475
10561
  var init_jsonTools = __esm({
10476
10562
  "../../packages/serviceme-core/src/json/jsonTools.ts"() {
10563
+ "use strict";
10477
10564
  init_src();
10478
10565
  import_comment_json = __toESM(require_src2());
10479
10566
  init_dist();
@@ -10520,6 +10607,7 @@ function createConsoleLogger(prefix = "serviceme") {
10520
10607
  var noopLogger;
10521
10608
  var init_logger = __esm({
10522
10609
  "../../packages/serviceme-core/src/logger.ts"() {
10610
+ "use strict";
10523
10611
  noopLogger = {
10524
10612
  debug() {
10525
10613
  },
@@ -10535,8 +10623,9 @@ var init_logger = __esm({
10535
10623
 
10536
10624
  // ../../node_modules/.pnpm/pend@1.2.0/node_modules/pend/index.js
10537
10625
  var require_pend = __commonJS({
10538
- "../../node_modules/.pnpm/pend@1.2.0/node_modules/pend/index.js"(exports$1, module) {
10539
- module.exports = Pend;
10626
+ "../../node_modules/.pnpm/pend@1.2.0/node_modules/pend/index.js"(exports2, module2) {
10627
+ "use strict";
10628
+ module2.exports = Pend;
10540
10629
  function Pend() {
10541
10630
  this.pending = 0;
10542
10631
  this.max = Infinity;
@@ -10590,19 +10679,20 @@ var require_pend = __commonJS({
10590
10679
 
10591
10680
  // ../../node_modules/.pnpm/yauzl@3.2.0/node_modules/yauzl/fd-slicer.js
10592
10681
  var require_fd_slicer = __commonJS({
10593
- "../../node_modules/.pnpm/yauzl@3.2.0/node_modules/yauzl/fd-slicer.js"(exports$1) {
10594
- var fs19 = __require("fs");
10595
- var util2 = __require("util");
10596
- var stream = __require("stream");
10682
+ "../../node_modules/.pnpm/yauzl@3.2.0/node_modules/yauzl/fd-slicer.js"(exports2) {
10683
+ "use strict";
10684
+ var fs19 = require("fs");
10685
+ var util2 = require("util");
10686
+ var stream = require("stream");
10597
10687
  var Readable = stream.Readable;
10598
10688
  var Writable = stream.Writable;
10599
10689
  var PassThrough = stream.PassThrough;
10600
10690
  var Pend = require_pend();
10601
- var EventEmitter = __require("events").EventEmitter;
10602
- exports$1.createFromBuffer = createFromBuffer;
10603
- exports$1.createFromFd = createFromFd;
10604
- exports$1.BufferSlicer = BufferSlicer;
10605
- exports$1.FdSlicer = FdSlicer;
10691
+ var EventEmitter = require("events").EventEmitter;
10692
+ exports2.createFromBuffer = createFromBuffer;
10693
+ exports2.createFromFd = createFromFd;
10694
+ exports2.BufferSlicer = BufferSlicer;
10695
+ exports2.FdSlicer = FdSlicer;
10606
10696
  util2.inherits(FdSlicer, EventEmitter);
10607
10697
  function FdSlicer(fd, options2) {
10608
10698
  options2 = options2 || {};
@@ -10860,8 +10950,9 @@ var require_fd_slicer = __commonJS({
10860
10950
 
10861
10951
  // ../../node_modules/.pnpm/buffer-crc32@0.2.13/node_modules/buffer-crc32/index.js
10862
10952
  var require_buffer_crc32 = __commonJS({
10863
- "../../node_modules/.pnpm/buffer-crc32@0.2.13/node_modules/buffer-crc32/index.js"(exports$1, module) {
10864
- var Buffer2 = __require("buffer").Buffer;
10953
+ "../../node_modules/.pnpm/buffer-crc32@0.2.13/node_modules/buffer-crc32/index.js"(exports2, module2) {
10954
+ "use strict";
10955
+ var Buffer2 = require("buffer").Buffer;
10865
10956
  var CRC_TABLE = [
10866
10957
  0,
10867
10958
  1996959894,
@@ -11161,35 +11252,36 @@ var require_buffer_crc32 = __commonJS({
11161
11252
  crc32.unsigned = function() {
11162
11253
  return _crc32.apply(null, arguments) >>> 0;
11163
11254
  };
11164
- module.exports = crc32;
11255
+ module2.exports = crc32;
11165
11256
  }
11166
11257
  });
11167
11258
 
11168
11259
  // ../../node_modules/.pnpm/yauzl@3.2.0/node_modules/yauzl/index.js
11169
11260
  var require_yauzl = __commonJS({
11170
- "../../node_modules/.pnpm/yauzl@3.2.0/node_modules/yauzl/index.js"(exports$1) {
11171
- var fs19 = __require("fs");
11172
- var zlib = __require("zlib");
11261
+ "../../node_modules/.pnpm/yauzl@3.2.0/node_modules/yauzl/index.js"(exports2) {
11262
+ "use strict";
11263
+ var fs19 = require("fs");
11264
+ var zlib = require("zlib");
11173
11265
  var fd_slicer = require_fd_slicer();
11174
11266
  var crc32 = require_buffer_crc32();
11175
- var util2 = __require("util");
11176
- var EventEmitter = __require("events").EventEmitter;
11177
- var Transform = __require("stream").Transform;
11178
- var PassThrough = __require("stream").PassThrough;
11179
- var Writable = __require("stream").Writable;
11180
- exports$1.open = open2;
11181
- exports$1.fromFd = fromFd;
11182
- exports$1.fromBuffer = fromBuffer;
11183
- exports$1.fromRandomAccessReader = fromRandomAccessReader;
11184
- exports$1.dosDateTimeToDate = dosDateTimeToDate;
11185
- exports$1.getFileNameLowLevel = getFileNameLowLevel;
11186
- exports$1.validateFileName = validateFileName;
11187
- exports$1.parseExtraFields = parseExtraFields;
11188
- exports$1.ZipFile = ZipFile;
11189
- exports$1.Entry = Entry;
11190
- exports$1.LocalFileHeader = LocalFileHeader;
11191
- exports$1.RandomAccessReader = RandomAccessReader;
11192
- function open2(path15, options2, callback) {
11267
+ var util2 = require("util");
11268
+ var EventEmitter = require("events").EventEmitter;
11269
+ var Transform = require("stream").Transform;
11270
+ var PassThrough = require("stream").PassThrough;
11271
+ var Writable = require("stream").Writable;
11272
+ exports2.open = open;
11273
+ exports2.fromFd = fromFd;
11274
+ exports2.fromBuffer = fromBuffer;
11275
+ exports2.fromRandomAccessReader = fromRandomAccessReader;
11276
+ exports2.dosDateTimeToDate = dosDateTimeToDate;
11277
+ exports2.getFileNameLowLevel = getFileNameLowLevel;
11278
+ exports2.validateFileName = validateFileName;
11279
+ exports2.parseExtraFields = parseExtraFields;
11280
+ exports2.ZipFile = ZipFile;
11281
+ exports2.Entry = Entry;
11282
+ exports2.LocalFileHeader = LocalFileHeader;
11283
+ exports2.RandomAccessReader = RandomAccessReader;
11284
+ function open(path15, options2, callback) {
11193
11285
  if (typeof options2 === "function") {
11194
11286
  callback = options2;
11195
11287
  options2 = null;
@@ -11527,6 +11619,7 @@ var require_yauzl = __commonJS({
11527
11619
  };
11528
11620
  ZipFile.prototype.openReadStreamLowLevel = function(fileDataStart, compressedSize, relativeStart, relativeEnd, decompress, uncompressedSize, callback) {
11529
11621
  var self = this;
11622
+ var fileDataEnd = fileDataStart + compressedSize;
11530
11623
  var readStream = self.reader.createReadStream({
11531
11624
  start: fileDataStart + relativeStart,
11532
11625
  end: fileDataStart + relativeEnd
@@ -11904,111 +11997,106 @@ var require_yauzl = __commonJS({
11904
11997
  }
11905
11998
  }
11906
11999
  });
11907
- var import_yauzl, unzipFile, tryLstat, mergeEntry, moveFiles;
12000
+
12001
+ // ../../packages/serviceme-core/src/utils/fileUtils.ts
12002
+ var import_node_fs, import_promises, import_node_path, import_yauzl, unzipFile, tryLstat, mergeEntry, moveFiles;
11908
12003
  var init_fileUtils = __esm({
11909
12004
  "../../packages/serviceme-core/src/utils/fileUtils.ts"() {
12005
+ "use strict";
12006
+ import_node_fs = require("fs");
12007
+ import_promises = require("fs/promises");
12008
+ import_node_path = require("path");
11910
12009
  import_yauzl = __toESM(require_yauzl());
11911
12010
  unzipFile = (zipPath, dest) => {
11912
12011
  return new Promise((resolve, reject) => {
11913
- (0, import_yauzl.open)(
11914
- zipPath,
11915
- { lazyEntries: true },
11916
- (err, zipfile) => {
11917
- if (err) return reject(err);
11918
- if (!zipfile) return reject(new Error("Failed to open zip file."));
11919
- zipfile.readEntry();
11920
- zipfile.on("entry", (entry) => {
11921
- if (/\/$/.test(entry.fileName)) {
11922
- void fs12.mkdir(path11.join(dest, entry.fileName), { recursive: true }).then(() => {
11923
- zipfile.readEntry();
11924
- }).catch(reject);
11925
- } else {
11926
- const outputPath = path11.join(dest, entry.fileName);
11927
- void fs12.mkdir(path11.dirname(outputPath), { recursive: true }).then(() => {
11928
- zipfile.openReadStream(
11929
- entry,
11930
- (streamError, readStream) => {
11931
- if (streamError) return reject(streamError);
11932
- if (!readStream)
11933
- return reject(
11934
- new Error("Failed to open zip entry stream.")
11935
- );
11936
- const writeStream = fs9.createWriteStream(outputPath);
11937
- readStream.on("error", reject);
11938
- writeStream.on("error", reject);
11939
- writeStream.on("close", () => {
11940
- zipfile.readEntry();
11941
- });
11942
- readStream.pipe(writeStream);
11943
- }
11944
- );
11945
- }).catch(reject);
11946
- }
11947
- });
11948
- zipfile.on("end", () => {
11949
- resolve();
11950
- });
11951
- zipfile.on("error", (zipError) => {
11952
- reject(zipError);
11953
- });
11954
- }
11955
- );
12012
+ import_yauzl.default.open(zipPath, { lazyEntries: true }, (err, zipfile) => {
12013
+ if (err) return reject(err);
12014
+ if (!zipfile) return reject(new Error("Failed to open zip file."));
12015
+ zipfile.readEntry();
12016
+ zipfile.on("entry", (entry) => {
12017
+ if (/\/$/.test(entry.fileName)) {
12018
+ void (0, import_promises.mkdir)((0, import_node_path.join)(dest, entry.fileName), { recursive: true }).then(() => {
12019
+ zipfile.readEntry();
12020
+ }).catch(reject);
12021
+ } else {
12022
+ const outputPath = (0, import_node_path.join)(dest, entry.fileName);
12023
+ void (0, import_promises.mkdir)((0, import_node_path.dirname)(outputPath), { recursive: true }).then(() => {
12024
+ zipfile.openReadStream(
12025
+ entry,
12026
+ (streamError, readStream) => {
12027
+ if (streamError) return reject(streamError);
12028
+ if (!readStream) return reject(new Error("Failed to open zip entry stream."));
12029
+ const writeStream = (0, import_node_fs.createWriteStream)(outputPath);
12030
+ readStream.on("error", reject);
12031
+ writeStream.on("error", reject);
12032
+ writeStream.on("close", () => {
12033
+ zipfile.readEntry();
12034
+ });
12035
+ readStream.pipe(writeStream);
12036
+ }
12037
+ );
12038
+ }).catch(reject);
12039
+ }
12040
+ });
12041
+ zipfile.on("end", () => {
12042
+ resolve();
12043
+ });
12044
+ zipfile.on("error", (zipError) => {
12045
+ reject(zipError);
12046
+ });
12047
+ });
11956
12048
  });
11957
12049
  };
11958
12050
  tryLstat = async (targetPath) => {
11959
12051
  try {
11960
- return await fs12.lstat(targetPath);
12052
+ return await (0, import_promises.lstat)(targetPath);
11961
12053
  } catch {
11962
12054
  return null;
11963
12055
  }
11964
12056
  };
11965
12057
  mergeEntry = async (sourcePath, destPath, overwrite) => {
11966
- const sourceStat = await fs12.lstat(sourcePath);
12058
+ const sourceStat = await (0, import_promises.lstat)(sourcePath);
11967
12059
  const destStat = await tryLstat(destPath);
11968
12060
  if (sourceStat.isDirectory()) {
11969
12061
  if (destStat && !destStat.isDirectory()) {
11970
12062
  if (!overwrite) {
11971
- await fs12.rm(sourcePath, { recursive: true, force: true });
12063
+ await (0, import_promises.rm)(sourcePath, { recursive: true, force: true });
11972
12064
  return;
11973
12065
  }
11974
- await fs12.rm(destPath, { recursive: true, force: true });
12066
+ await (0, import_promises.rm)(destPath, { recursive: true, force: true });
11975
12067
  }
11976
- await fs12.mkdir(destPath, { recursive: true });
11977
- const children = await fs12.readdir(sourcePath);
12068
+ await (0, import_promises.mkdir)(destPath, { recursive: true });
12069
+ const children = await (0, import_promises.readdir)(sourcePath);
11978
12070
  for (const child of children) {
11979
- await mergeEntry(
11980
- path11.join(sourcePath, child),
11981
- path11.join(destPath, child),
11982
- overwrite
11983
- );
12071
+ await mergeEntry((0, import_node_path.join)(sourcePath, child), (0, import_node_path.join)(destPath, child), overwrite);
11984
12072
  }
11985
- await fs12.rm(sourcePath, { recursive: true, force: true });
12073
+ await (0, import_promises.rm)(sourcePath, { recursive: true, force: true });
11986
12074
  return;
11987
12075
  }
11988
12076
  if (destStat) {
11989
12077
  if (!overwrite) {
11990
- await fs12.rm(sourcePath, { recursive: true, force: true });
12078
+ await (0, import_promises.rm)(sourcePath, { recursive: true, force: true });
11991
12079
  return;
11992
12080
  }
11993
- await fs12.rm(destPath, { recursive: true, force: true });
12081
+ await (0, import_promises.rm)(destPath, { recursive: true, force: true });
11994
12082
  }
11995
12083
  try {
11996
- await fs12.rename(sourcePath, destPath);
12084
+ await (0, import_promises.rename)(sourcePath, destPath);
11997
12085
  } catch {
11998
- await fs12.copyFile(sourcePath, destPath);
11999
- await fs12.rm(sourcePath, { recursive: true, force: true });
12086
+ await (0, import_promises.copyFile)(sourcePath, destPath);
12087
+ await (0, import_promises.rm)(sourcePath, { recursive: true, force: true });
12000
12088
  }
12001
12089
  };
12002
12090
  moveFiles = async (sourceDir, destDir, overwrite = false) => {
12003
- await fs12.mkdir(destDir, { recursive: true });
12004
- const files = await fs12.readdir(sourceDir);
12091
+ await (0, import_promises.mkdir)(destDir, { recursive: true });
12092
+ const files = await (0, import_promises.readdir)(sourceDir);
12005
12093
  for (const file of files) {
12006
- const sourceFile = path11.join(sourceDir, file);
12007
- const destFile = path11.join(destDir, file);
12094
+ const sourceFile = (0, import_node_path.join)(sourceDir, file);
12095
+ const destFile = (0, import_node_path.join)(destDir, file);
12008
12096
  if (!overwrite) {
12009
12097
  try {
12010
- await fs12.access(destFile, fs9.constants.F_OK);
12011
- await fs12.rm(sourceFile, { recursive: true, force: true });
12098
+ await (0, import_promises.access)(destFile, import_node_fs.constants.F_OK);
12099
+ await (0, import_promises.rm)(sourceFile, { recursive: true, force: true });
12012
12100
  continue;
12013
12101
  } catch {
12014
12102
  }
@@ -12018,22 +12106,27 @@ var init_fileUtils = __esm({
12018
12106
  };
12019
12107
  }
12020
12108
  });
12109
+
12110
+ // ../../packages/serviceme-core/src/project/projectTools.ts
12021
12111
  function createProjectTools() {
12022
12112
  return new ProjectTools();
12023
12113
  }
12024
- var ProjectTools;
12114
+ var fs3, path3, ProjectTools;
12025
12115
  var init_projectTools = __esm({
12026
12116
  "../../packages/serviceme-core/src/project/projectTools.ts"() {
12117
+ "use strict";
12118
+ fs3 = __toESM(require("fs/promises"));
12119
+ path3 = __toESM(require("path"));
12027
12120
  init_src();
12028
12121
  init_runCommand();
12029
12122
  init_fileUtils();
12030
12123
  ProjectTools = class {
12031
12124
  async extractTemplate(zipPath, workspacePath, tempExtractDir, input) {
12032
12125
  await unzipFile(zipPath, tempExtractDir);
12033
- let sourceDir = path11__namespace.join(tempExtractDir, input.extractedDirName);
12126
+ let sourceDir = path3.join(tempExtractDir, input.extractedDirName);
12034
12127
  let actualDirName = input.extractedDirName;
12035
12128
  if (!await this.pathExists(sourceDir)) {
12036
- const entries = await fs12__namespace.readdir(tempExtractDir, { withFileTypes: true });
12129
+ const entries = await fs3.readdir(tempExtractDir, { withFileTypes: true });
12037
12130
  const directories = entries.filter(
12038
12131
  (entry) => entry.isDirectory() && !entry.name.startsWith(".")
12039
12132
  );
@@ -12045,7 +12138,7 @@ var init_projectTools = __esm({
12045
12138
  );
12046
12139
  if (selectedDirectory) {
12047
12140
  actualDirName = selectedDirectory;
12048
- sourceDir = path11__namespace.join(tempExtractDir, actualDirName);
12141
+ sourceDir = path3.join(tempExtractDir, actualDirName);
12049
12142
  } else if (directories.length === 0) {
12050
12143
  throw new Error(
12051
12144
  `No directory found after extraction. Expected directory: ${input.extractedDirName}`
@@ -12079,23 +12172,15 @@ var init_projectTools = __esm({
12079
12172
  }
12080
12173
  async makeScriptsExecutable(workspacePath) {
12081
12174
  const isWindows = process.platform === "win32";
12082
- const scripts = await this.findScripts(
12083
- workspacePath,
12084
- isWindows ? [".ps1", ".bat"] : [".sh"]
12085
- );
12175
+ const scripts = await this.findScripts(workspacePath, isWindows ? [".ps1", ".bat"] : [".sh"]);
12086
12176
  let updatedCount = 0;
12087
12177
  if (isWindows) {
12088
- for (const scriptPath of scripts.filter(
12089
- (script) => script.endsWith(".ps1")
12090
- )) {
12178
+ for (const scriptPath of scripts.filter((script) => script.endsWith(".ps1"))) {
12091
12179
  try {
12092
- await runCommand(
12093
- `powershell -Command "Unblock-File -Path '${scriptPath}'"`,
12094
- {
12095
- cwd: workspacePath,
12096
- shell: true
12097
- }
12098
- );
12180
+ await runCommand(`powershell -Command "Unblock-File -Path '${scriptPath}'"`, {
12181
+ cwd: workspacePath,
12182
+ shell: true
12183
+ });
12099
12184
  updatedCount += 1;
12100
12185
  } catch {
12101
12186
  }
@@ -12103,7 +12188,7 @@ var init_projectTools = __esm({
12103
12188
  } else {
12104
12189
  for (const scriptPath of scripts) {
12105
12190
  try {
12106
- await fs12__namespace.chmod(scriptPath, 493);
12191
+ await fs3.chmod(scriptPath, 493);
12107
12192
  updatedCount += 1;
12108
12193
  } catch {
12109
12194
  }
@@ -12131,11 +12216,14 @@ var init_projectTools = __esm({
12131
12216
  if (!preset) {
12132
12217
  throw createServicemeError("invalid_params", "Expected scaffold preset.");
12133
12218
  }
12134
- const commands = [
12135
- `pnpm run scaffold:prune -- --preset ${preset} --project-root .`,
12136
- `pnpm run scaffold:init-metadata -- --preset ${preset} --project-root . --force`
12137
- ];
12219
+ await this.ensurePresetManifest(workspacePath, preset);
12220
+ const pruneCommand = `pnpm run scaffold:prune -- --preset ${preset} --project-root .`;
12221
+ const initMetadataCommand = `pnpm run scaffold:init-metadata -- --preset ${preset} --project-root . --force`;
12222
+ const commands = [pruneCommand, initMetadataCommand];
12138
12223
  for (const command of commands) {
12224
+ if (command === initMetadataCommand) {
12225
+ await this.ensurePresetManifest(workspacePath, preset);
12226
+ }
12139
12227
  await runCommand(command, {
12140
12228
  cwd: workspacePath,
12141
12229
  shell: true
@@ -12147,16 +12235,50 @@ var init_projectTools = __esm({
12147
12235
  commands
12148
12236
  };
12149
12237
  }
12238
+ async ensurePresetManifest(workspacePath, preset) {
12239
+ const presetManifestPath = path3.join(
12240
+ workspacePath,
12241
+ ".ms-scaffold",
12242
+ "presets",
12243
+ `${preset}.json`
12244
+ );
12245
+ if (await this.pathExists(presetManifestPath)) {
12246
+ return;
12247
+ }
12248
+ const projectModePath = path3.join(workspacePath, ".ms-scaffold", "project-mode.json");
12249
+ if (!await this.pathExists(projectModePath)) {
12250
+ return;
12251
+ }
12252
+ const projectModeRaw = await fs3.readFile(projectModePath, "utf8");
12253
+ const projectMode = JSON.parse(projectModeRaw);
12254
+ const synthesizedPreset = {
12255
+ preset,
12256
+ selectedModules: Array.isArray(projectMode.selectedModules) ? projectMode.selectedModules : [],
12257
+ prunedModules: Array.isArray(projectMode.prunedModules) ? projectMode.prunedModules : [],
12258
+ exclude: [],
12259
+ recommendedFollowUps: [],
12260
+ managedFiles: [],
12261
+ mergeManagedFiles: [],
12262
+ userOwnedPaths: []
12263
+ };
12264
+ await fs3.mkdir(path3.dirname(presetManifestPath), { recursive: true });
12265
+ await fs3.writeFile(
12266
+ presetManifestPath,
12267
+ `${JSON.stringify(synthesizedPreset, null, 2)}
12268
+ `,
12269
+ "utf8"
12270
+ );
12271
+ }
12150
12272
  async findScripts(dir, extensions) {
12151
12273
  const results = [];
12152
12274
  let entries;
12153
12275
  try {
12154
- entries = await fs12__namespace.readdir(dir, { withFileTypes: true });
12276
+ entries = await fs3.readdir(dir, { withFileTypes: true });
12155
12277
  } catch {
12156
12278
  return results;
12157
12279
  }
12158
12280
  for (const entry of entries) {
12159
- const fullPath = path11__namespace.join(dir, entry.name);
12281
+ const fullPath = path3.join(dir, entry.name);
12160
12282
  if (entry.isDirectory() && entry.name !== "node_modules" && !entry.name.startsWith(".")) {
12161
12283
  results.push(...await this.findScripts(fullPath, extensions));
12162
12284
  } else if (entry.isFile() && extensions.some((ext) => entry.name.endsWith(ext))) {
@@ -12167,7 +12289,7 @@ var init_projectTools = __esm({
12167
12289
  }
12168
12290
  async pathExists(targetPath) {
12169
12291
  try {
12170
- await fs12__namespace.access(targetPath);
12292
+ await fs3.access(targetPath);
12171
12293
  return true;
12172
12294
  } catch {
12173
12295
  return false;
@@ -12177,16 +12299,14 @@ var init_projectTools = __esm({
12177
12299
  if (directoryNames.length === 1) {
12178
12300
  return directoryNames[0] ?? null;
12179
12301
  }
12180
- const exactMatch = directoryNames.find(
12181
- (directoryName) => directoryName === expectedDirName
12182
- );
12302
+ const exactMatch = directoryNames.find((directoryName) => directoryName === expectedDirName);
12183
12303
  if (exactMatch) {
12184
12304
  return exactMatch;
12185
12305
  }
12186
12306
  const matches = [];
12187
12307
  for (const directoryName of directoryNames) {
12188
12308
  if (await this.directoryMatchesProjectPattern(
12189
- path11__namespace.join(tempExtractDir, directoryName),
12309
+ path3.join(tempExtractDir, directoryName),
12190
12310
  projectFilePattern
12191
12311
  )) {
12192
12312
  matches.push(directoryName);
@@ -12198,7 +12318,7 @@ var init_projectTools = __esm({
12198
12318
  return null;
12199
12319
  }
12200
12320
  async directoryMatchesProjectPattern(directoryPath, projectFilePattern) {
12201
- const entries = await fs12__namespace.readdir(directoryPath);
12321
+ const entries = await fs3.readdir(directoryPath);
12202
12322
  if (projectFilePattern.includes("*")) {
12203
12323
  const regex = new RegExp(`^${projectFilePattern.replace("*", ".*")}$`);
12204
12324
  return entries.some((entry) => regex.test(entry));
@@ -12208,18 +12328,23 @@ var init_projectTools = __esm({
12208
12328
  };
12209
12329
  }
12210
12330
  });
12211
- var CONFIG_DIR, LOG_FILE, MAX_LOG_SIZE, DaemonLogger;
12331
+
12332
+ // ../../packages/serviceme-core/src/scheduled-tasks/daemon/DaemonLogger.ts
12333
+ var fs4, path4, CONFIG_DIR, LOG_FILE, MAX_LOG_SIZE, DaemonLogger;
12212
12334
  var init_DaemonLogger = __esm({
12213
12335
  "../../packages/serviceme-core/src/scheduled-tasks/daemon/DaemonLogger.ts"() {
12336
+ "use strict";
12337
+ fs4 = __toESM(require("fs"));
12338
+ path4 = __toESM(require("path"));
12214
12339
  CONFIG_DIR = ".serviceme";
12215
12340
  LOG_FILE = "scheduler.log";
12216
12341
  MAX_LOG_SIZE = 1024 * 1024;
12217
12342
  DaemonLogger = class {
12218
12343
  constructor(workspacePath) {
12219
- this.logPath = path11__namespace.join(workspacePath, CONFIG_DIR, LOG_FILE);
12220
- const dir = path11__namespace.dirname(this.logPath);
12221
- if (!fs9__namespace.existsSync(dir)) {
12222
- fs9__namespace.mkdirSync(dir, { recursive: true });
12344
+ this.logPath = path4.join(workspacePath, CONFIG_DIR, LOG_FILE);
12345
+ const dir = path4.dirname(this.logPath);
12346
+ if (!fs4.existsSync(dir)) {
12347
+ fs4.mkdirSync(dir, { recursive: true });
12223
12348
  }
12224
12349
  }
12225
12350
  getLogPath() {
@@ -12230,16 +12355,16 @@ var init_DaemonLogger = __esm({
12230
12355
  const line2 = `[${ts}] [${level.toUpperCase()}] ${message}
12231
12356
  `;
12232
12357
  this.rotateIfNeeded();
12233
- fs9__namespace.appendFileSync(this.logPath, line2, "utf-8");
12358
+ fs4.appendFileSync(this.logPath, line2, "utf-8");
12234
12359
  }
12235
12360
  rotateIfNeeded() {
12236
12361
  try {
12237
- const stats = fs9__namespace.statSync(this.logPath);
12362
+ const stats = fs4.statSync(this.logPath);
12238
12363
  if (stats.size > MAX_LOG_SIZE) {
12239
- const content = fs9__namespace.readFileSync(this.logPath, "utf-8");
12364
+ const content = fs4.readFileSync(this.logPath, "utf-8");
12240
12365
  const halfIdx = content.indexOf("\n", Math.floor(content.length / 2));
12241
12366
  if (halfIdx > 0) {
12242
- fs9__namespace.writeFileSync(this.logPath, content.slice(halfIdx + 1), "utf-8");
12367
+ fs4.writeFileSync(this.logPath, content.slice(halfIdx + 1), "utf-8");
12243
12368
  }
12244
12369
  }
12245
12370
  } catch {
@@ -12248,34 +12373,39 @@ var init_DaemonLogger = __esm({
12248
12373
  };
12249
12374
  }
12250
12375
  });
12251
- var CONFIG_DIR2, PID_FILE, PidManager;
12376
+
12377
+ // ../../packages/serviceme-core/src/scheduled-tasks/daemon/PidManager.ts
12378
+ var fs5, path5, CONFIG_DIR2, PID_FILE, PidManager;
12252
12379
  var init_PidManager = __esm({
12253
12380
  "../../packages/serviceme-core/src/scheduled-tasks/daemon/PidManager.ts"() {
12381
+ "use strict";
12382
+ fs5 = __toESM(require("fs"));
12383
+ path5 = __toESM(require("path"));
12254
12384
  CONFIG_DIR2 = ".serviceme";
12255
12385
  PID_FILE = "scheduler.pid";
12256
12386
  PidManager = class {
12257
12387
  constructor(workspacePath) {
12258
- this.pidPath = path11__namespace.join(workspacePath, CONFIG_DIR2, PID_FILE);
12388
+ this.pidPath = path5.join(workspacePath, CONFIG_DIR2, PID_FILE);
12259
12389
  }
12260
12390
  getPidPath() {
12261
12391
  return this.pidPath;
12262
12392
  }
12263
12393
  writePid(pid) {
12264
- const dir = path11__namespace.dirname(this.pidPath);
12265
- if (!fs9__namespace.existsSync(dir)) {
12266
- fs9__namespace.mkdirSync(dir, { recursive: true });
12394
+ const dir = path5.dirname(this.pidPath);
12395
+ if (!fs5.existsSync(dir)) {
12396
+ fs5.mkdirSync(dir, { recursive: true });
12267
12397
  }
12268
- fs9__namespace.writeFileSync(this.pidPath, String(pid), "utf-8");
12398
+ fs5.writeFileSync(this.pidPath, String(pid), "utf-8");
12269
12399
  }
12270
12400
  readPid() {
12271
- if (!fs9__namespace.existsSync(this.pidPath)) return null;
12272
- const raw = fs9__namespace.readFileSync(this.pidPath, "utf-8").trim();
12401
+ if (!fs5.existsSync(this.pidPath)) return null;
12402
+ const raw = fs5.readFileSync(this.pidPath, "utf-8").trim();
12273
12403
  const pid = Number.parseInt(raw, 10);
12274
12404
  return Number.isNaN(pid) ? null : pid;
12275
12405
  }
12276
12406
  removePid() {
12277
- if (fs9__namespace.existsSync(this.pidPath)) {
12278
- fs9__namespace.unlinkSync(this.pidPath);
12407
+ if (fs5.existsSync(this.pidPath)) {
12408
+ fs5.unlinkSync(this.pidPath);
12279
12409
  }
12280
12410
  }
12281
12411
  isProcessRunning(pid) {
@@ -12309,8 +12439,11 @@ function resolveConfiguredTimeoutMs(timeoutSeconds, defaultTimeoutMs) {
12309
12439
  }
12310
12440
  var init_timeout = __esm({
12311
12441
  "../../packages/serviceme-core/src/scheduled-tasks/executors/timeout.ts"() {
12442
+ "use strict";
12312
12443
  }
12313
12444
  });
12445
+
12446
+ // ../../packages/serviceme-core/src/scheduled-tasks/executors/GithubCopilotCliExecutor.ts
12314
12447
  function redactArgs(args) {
12315
12448
  const redacted = [];
12316
12449
  let redactNext = false;
@@ -12330,7 +12463,7 @@ function redactArgs(args) {
12330
12463
  function writeDiagnostic(message) {
12331
12464
  const logPath = process.env.SERVICEME_SCHEDULER_LOG_PATH;
12332
12465
  if (logPath) {
12333
- fs9__namespace.appendFileSync(logPath, message);
12466
+ fs6.appendFileSync(logPath, message);
12334
12467
  return;
12335
12468
  }
12336
12469
  process.stderr.write(message);
@@ -12359,9 +12492,12 @@ function resolveGithubCopilotCliExecution(payload) {
12359
12492
  promptLen: payload.prompt.length
12360
12493
  };
12361
12494
  }
12362
- var MAX_OUTPUT_BYTES, DEFAULT_TIMEOUT_MS2, GithubCopilotCliExecutor;
12495
+ var import_node_child_process2, fs6, MAX_OUTPUT_BYTES, DEFAULT_TIMEOUT_MS2, GithubCopilotCliExecutor;
12363
12496
  var init_GithubCopilotCliExecutor = __esm({
12364
12497
  "../../packages/serviceme-core/src/scheduled-tasks/executors/GithubCopilotCliExecutor.ts"() {
12498
+ "use strict";
12499
+ import_node_child_process2 = require("child_process");
12500
+ fs6 = __toESM(require("fs"));
12365
12501
  init_doctor();
12366
12502
  init_timeout();
12367
12503
  MAX_OUTPUT_BYTES = 2 * 1024 * 1024;
@@ -12414,16 +12550,14 @@ var init_GithubCopilotCliExecutor = __esm({
12414
12550
  `[GithubCopilotCliExecutor] spawn: command=${execution.command}, args=${JSON.stringify(execution.diagnosticArgs)}, promptLen=${execution.promptLen}, cwd=${execution.cwd ?? "(default)"}, platform=${process.platform}, windowsHide=true, pid=${process.pid}
12415
12551
  `
12416
12552
  );
12417
- const child = child_process.spawn(execution.command, execution.args, {
12553
+ const child = (0, import_node_child_process2.spawn)(execution.command, execution.args, {
12418
12554
  cwd: execution.cwd,
12419
12555
  stdio: ["ignore", "pipe", "pipe"],
12420
12556
  windowsHide: true
12421
12557
  });
12422
12558
  if (child.pid) {
12423
- writeDiagnostic(
12424
- `[GithubCopilotCliExecutor] spawned child PID=${child.pid}
12425
- `
12426
- );
12559
+ writeDiagnostic(`[GithubCopilotCliExecutor] spawned child PID=${child.pid}
12560
+ `);
12427
12561
  }
12428
12562
  const timeoutMs = execution.timeoutMs;
12429
12563
  const timer = timeoutMs != null ? setTimeout(() => {
@@ -12441,15 +12575,13 @@ var init_GithubCopilotCliExecutor = __esm({
12441
12575
  child.stdout.on("data", (chunk) => {
12442
12576
  const data = chunk.toString();
12443
12577
  stdoutBuf += data;
12444
- if (stdoutBuf.length > MAX_OUTPUT_BYTES)
12445
- stdoutBuf = stdoutBuf.slice(-MAX_OUTPUT_BYTES);
12578
+ if (stdoutBuf.length > MAX_OUTPUT_BYTES) stdoutBuf = stdoutBuf.slice(-MAX_OUTPUT_BYTES);
12446
12579
  onOutput("stdout", data);
12447
12580
  });
12448
12581
  child.stderr.on("data", (chunk) => {
12449
12582
  const data = chunk.toString();
12450
12583
  stderrBuf += data;
12451
- if (stderrBuf.length > MAX_OUTPUT_BYTES)
12452
- stderrBuf = stderrBuf.slice(-MAX_OUTPUT_BYTES);
12584
+ if (stderrBuf.length > MAX_OUTPUT_BYTES) stderrBuf = stderrBuf.slice(-MAX_OUTPUT_BYTES);
12453
12585
  onOutput("stderr", data);
12454
12586
  });
12455
12587
  child.on("close", (code) => {
@@ -12484,6 +12616,7 @@ var init_GithubCopilotCliExecutor = __esm({
12484
12616
  var DEFAULT_TIMEOUT_MS3, HttpRequestExecutor;
12485
12617
  var init_HttpRequestExecutor = __esm({
12486
12618
  "../../packages/serviceme-core/src/scheduled-tasks/executors/HttpRequestExecutor.ts"() {
12619
+ "use strict";
12487
12620
  init_timeout();
12488
12621
  DEFAULT_TIMEOUT_MS3 = 3e4;
12489
12622
  HttpRequestExecutor = class {
@@ -12552,10 +12685,12 @@ ${body}`.trim()
12552
12685
  };
12553
12686
  }
12554
12687
  });
12688
+
12689
+ // ../../packages/serviceme-core/src/scheduled-tasks/executors/ShellExecutor.ts
12555
12690
  function resolveShellExecution(script, options2 = {}) {
12556
12691
  const platform = options2.platform ?? process.platform;
12557
12692
  const env = options2.env ?? process.env;
12558
- const fileExists = options2.fileExists ?? fs9__namespace.existsSync;
12693
+ const fileExists = options2.fileExists ?? fs7.existsSync;
12559
12694
  if (platform === "win32") {
12560
12695
  const posixShell = usesPosixShellSyntax(script) ? findWindowsPosixShell(env, fileExists) : null;
12561
12696
  if (posixShell) {
@@ -12600,10 +12735,10 @@ function findWindowsPosixShell(env, fileExists) {
12600
12735
  if (fileExists(candidate)) return candidate;
12601
12736
  }
12602
12737
  const pathValue = env.Path ?? env.PATH ?? "";
12603
- for (const dir of pathValue.split(path11__namespace.win32.delimiter)) {
12738
+ for (const dir of pathValue.split(path6.win32.delimiter)) {
12604
12739
  if (!dir) continue;
12605
12740
  for (const executable of POSIX_SHELL_CANDIDATES) {
12606
- const candidate = path11__namespace.win32.join(dir, executable);
12741
+ const candidate = path6.win32.join(dir, executable);
12607
12742
  if (fileExists(candidate) && !isWindowsWslLauncher(candidate)) {
12608
12743
  return candidate;
12609
12744
  }
@@ -12612,20 +12747,24 @@ function findWindowsPosixShell(env, fileExists) {
12612
12747
  return null;
12613
12748
  }
12614
12749
  function isWindowsWslLauncher(candidate) {
12615
- const normalized = path11__namespace.win32.normalize(candidate).toLowerCase();
12750
+ const normalized = path6.win32.normalize(candidate).toLowerCase();
12616
12751
  return normalized.endsWith("\\windows\\system32\\bash.exe") || normalized.endsWith("\\windows\\syswow64\\bash.exe");
12617
12752
  }
12618
12753
  function writeDiagnostic2(message) {
12619
12754
  const logPath = process.env.SERVICEME_SCHEDULER_LOG_PATH;
12620
12755
  if (logPath) {
12621
- fs9__namespace.appendFileSync(logPath, message);
12756
+ fs7.appendFileSync(logPath, message);
12622
12757
  return;
12623
12758
  }
12624
12759
  process.stderr.write(message);
12625
12760
  }
12626
- var MAX_OUTPUT_BYTES2, DEFAULT_TIMEOUT_MS4, POSIX_SHELL_CANDIDATES, ShellExecutor;
12761
+ var import_node_child_process3, fs7, path6, MAX_OUTPUT_BYTES2, DEFAULT_TIMEOUT_MS4, POSIX_SHELL_CANDIDATES, ShellExecutor;
12627
12762
  var init_ShellExecutor = __esm({
12628
12763
  "../../packages/serviceme-core/src/scheduled-tasks/executors/ShellExecutor.ts"() {
12764
+ "use strict";
12765
+ import_node_child_process3 = require("child_process");
12766
+ fs7 = __toESM(require("fs"));
12767
+ path6 = __toESM(require("path"));
12629
12768
  init_timeout();
12630
12769
  MAX_OUTPUT_BYTES2 = 1024 * 1024;
12631
12770
  DEFAULT_TIMEOUT_MS4 = 6e4;
@@ -12687,7 +12826,7 @@ var init_ShellExecutor = __esm({
12687
12826
  daemonPid=${process.pid}
12688
12827
  `
12689
12828
  );
12690
- const child = child_process.spawn(shellExecution.command, shellExecution.args, spawnOpts);
12829
+ const child = (0, import_node_child_process3.spawn)(shellExecution.command, shellExecution.args, spawnOpts);
12691
12830
  if (shellExecution.stdinScript && child.stdin) {
12692
12831
  child.stdin.end(shellExecution.stdinScript);
12693
12832
  }
@@ -12759,6 +12898,7 @@ function isStreamingTaskExecutor(executor) {
12759
12898
  }
12760
12899
  var init_types2 = __esm({
12761
12900
  "../../packages/serviceme-core/src/scheduled-tasks/executors/types.ts"() {
12901
+ "use strict";
12762
12902
  }
12763
12903
  });
12764
12904
 
@@ -12773,6 +12913,7 @@ function getExecutor(taskType) {
12773
12913
  var executors;
12774
12914
  var init_executors = __esm({
12775
12915
  "../../packages/serviceme-core/src/scheduled-tasks/executors/index.ts"() {
12916
+ "use strict";
12776
12917
  init_GithubCopilotCliExecutor();
12777
12918
  init_HttpRequestExecutor();
12778
12919
  init_ShellExecutor();
@@ -12784,6 +12925,8 @@ var init_executors = __esm({
12784
12925
  };
12785
12926
  }
12786
12927
  });
12928
+
12929
+ // ../../packages/serviceme-core/src/scheduled-tasks/TaskConfigManager.ts
12787
12930
  function emptyConfig() {
12788
12931
  return { version: 1, tasks: [] };
12789
12932
  }
@@ -12792,10 +12935,7 @@ function isRecord3(value) {
12792
12935
  }
12793
12936
  function requireNonEmptyString(payload, field, taskType) {
12794
12937
  if (!isRecord3(payload) || typeof payload[field] !== "string" || !payload[field].trim()) {
12795
- throw createServicemeError(
12796
- "invalid_payload",
12797
- `${taskType} payload ${field} is required`
12798
- );
12938
+ throw createServicemeError("invalid_payload", `${taskType} payload ${field} is required`);
12799
12939
  }
12800
12940
  }
12801
12941
  function validateTaskPayload(taskType, payload) {
@@ -12815,35 +12955,39 @@ function validateTaskPayload(taskType, payload) {
12815
12955
  return;
12816
12956
  }
12817
12957
  }
12818
- var CONFIG_DIR3, CONFIG_FILE, TaskConfigManager;
12958
+ var import_node_crypto, fs8, path7, CONFIG_DIR3, CONFIG_FILE, TaskConfigManager;
12819
12959
  var init_TaskConfigManager = __esm({
12820
12960
  "../../packages/serviceme-core/src/scheduled-tasks/TaskConfigManager.ts"() {
12961
+ "use strict";
12962
+ import_node_crypto = require("crypto");
12963
+ fs8 = __toESM(require("fs"));
12964
+ path7 = __toESM(require("path"));
12821
12965
  init_src();
12822
12966
  CONFIG_DIR3 = ".serviceme";
12823
12967
  CONFIG_FILE = "scheduled-tasks.json";
12824
12968
  TaskConfigManager = class {
12825
12969
  constructor(workspacePath) {
12826
- this.configPath = path11__namespace.join(workspacePath, CONFIG_DIR3, CONFIG_FILE);
12970
+ this.configPath = path7.join(workspacePath, CONFIG_DIR3, CONFIG_FILE);
12827
12971
  }
12828
12972
  getConfigPath() {
12829
12973
  return this.configPath;
12830
12974
  }
12831
12975
  readConfig() {
12832
- if (!fs9__namespace.existsSync(this.configPath)) {
12976
+ if (!fs8.existsSync(this.configPath)) {
12833
12977
  return emptyConfig();
12834
12978
  }
12835
- const raw = fs9__namespace.readFileSync(this.configPath, "utf-8");
12979
+ const raw = fs8.readFileSync(this.configPath, "utf-8");
12836
12980
  const parsed = JSON.parse(raw);
12837
12981
  return parsed;
12838
12982
  }
12839
12983
  writeConfig(config) {
12840
- const dir = path11__namespace.dirname(this.configPath);
12841
- if (!fs9__namespace.existsSync(dir)) {
12842
- fs9__namespace.mkdirSync(dir, { recursive: true });
12984
+ const dir = path7.dirname(this.configPath);
12985
+ if (!fs8.existsSync(dir)) {
12986
+ fs8.mkdirSync(dir, { recursive: true });
12843
12987
  }
12844
12988
  const tmp = `${this.configPath}.tmp`;
12845
- fs9__namespace.writeFileSync(tmp, JSON.stringify(config, null, " "), "utf-8");
12846
- fs9__namespace.renameSync(tmp, this.configPath);
12989
+ fs8.writeFileSync(tmp, JSON.stringify(config, null, " "), "utf-8");
12990
+ fs8.renameSync(tmp, this.configPath);
12847
12991
  }
12848
12992
  listTasks() {
12849
12993
  return this.readConfig().tasks;
@@ -12859,7 +13003,7 @@ var init_TaskConfigManager = __esm({
12859
13003
  const config = this.readConfig();
12860
13004
  const now = (/* @__PURE__ */ new Date()).toISOString();
12861
13005
  const task = {
12862
- id: crypto.randomUUID(),
13006
+ id: (0, import_node_crypto.randomUUID)(),
12863
13007
  name: input.name,
12864
13008
  description: input.description,
12865
13009
  enabled: input.enabled ?? true,
@@ -12954,6 +13098,7 @@ function resolveTaskExecutionPayload(taskType, payload, workspacePath) {
12954
13098
  var TaskExecutionEngine;
12955
13099
  var init_TaskExecutionEngine = __esm({
12956
13100
  "../../packages/serviceme-core/src/scheduled-tasks/TaskExecutionEngine.ts"() {
13101
+ "use strict";
12957
13102
  init_types2();
12958
13103
  init_TaskConfigManager();
12959
13104
  TaskExecutionEngine = class {
@@ -12971,9 +13116,7 @@ var init_TaskExecutionEngine = __esm({
12971
13116
  if (policy === "reject") {
12972
13117
  const existingIds = this.taskExecutions.get(snapshot.taskId);
12973
13118
  if (existingIds && existingIds.size > 0) {
12974
- throw new Error(
12975
- `TASK_ALREADY_RUNNING: Task ${snapshot.taskId} is already running`
12976
- );
13119
+ throw new Error(`TASK_ALREADY_RUNNING: Task ${snapshot.taskId} is already running`);
12977
13120
  }
12978
13121
  }
12979
13122
  const startedAt = (/* @__PURE__ */ new Date()).toISOString();
@@ -13120,6 +13263,8 @@ var init_TaskExecutionEngine = __esm({
13120
13263
  };
13121
13264
  }
13122
13265
  });
13266
+
13267
+ // ../../packages/serviceme-core/src/scheduled-tasks/TaskLogManager.ts
13123
13268
  function emptyLogFile() {
13124
13269
  return { logs: [] };
13125
13270
  }
@@ -13139,25 +13284,29 @@ function validateAndRepairLogFile(raw) {
13139
13284
  const validLogs = file.logs.filter(isValidLogEntry);
13140
13285
  return { logs: validLogs };
13141
13286
  }
13142
- var CONFIG_DIR4, LOG_FILE2, MAX_LOGS, TaskLogManager;
13287
+ var import_node_crypto2, fs9, path8, CONFIG_DIR4, LOG_FILE2, MAX_LOGS, TaskLogManager;
13143
13288
  var init_TaskLogManager = __esm({
13144
13289
  "../../packages/serviceme-core/src/scheduled-tasks/TaskLogManager.ts"() {
13290
+ "use strict";
13291
+ import_node_crypto2 = require("crypto");
13292
+ fs9 = __toESM(require("fs"));
13293
+ path8 = __toESM(require("path"));
13145
13294
  CONFIG_DIR4 = ".serviceme";
13146
13295
  LOG_FILE2 = "scheduled-tasks-log.json";
13147
13296
  MAX_LOGS = 200;
13148
13297
  TaskLogManager = class {
13149
13298
  constructor(workspacePath) {
13150
- this.logPath = path11__namespace.join(workspacePath, CONFIG_DIR4, LOG_FILE2);
13299
+ this.logPath = path8.join(workspacePath, CONFIG_DIR4, LOG_FILE2);
13151
13300
  }
13152
13301
  getLogPath() {
13153
13302
  return this.logPath;
13154
13303
  }
13155
13304
  readLogFile() {
13156
- if (!fs9__namespace.existsSync(this.logPath)) {
13305
+ if (!fs9.existsSync(this.logPath)) {
13157
13306
  return emptyLogFile();
13158
13307
  }
13159
13308
  try {
13160
- const raw = fs9__namespace.readFileSync(this.logPath, "utf-8");
13309
+ const raw = fs9.readFileSync(this.logPath, "utf-8");
13161
13310
  const parsed = JSON.parse(raw);
13162
13311
  const file = validateAndRepairLogFile(parsed);
13163
13312
  if (!parsed || typeof parsed !== "object" || !Array.isArray(parsed.logs) || parsed.logs.length !== file.logs.length) {
@@ -13173,26 +13322,26 @@ var init_TaskLogManager = __esm({
13173
13322
  }
13174
13323
  backupCorruptedFile() {
13175
13324
  try {
13176
- if (fs9__namespace.existsSync(this.logPath)) {
13325
+ if (fs9.existsSync(this.logPath)) {
13177
13326
  const backupPath = `${this.logPath}.corrupted.${Date.now()}`;
13178
- fs9__namespace.copyFileSync(this.logPath, backupPath);
13327
+ fs9.copyFileSync(this.logPath, backupPath);
13179
13328
  }
13180
13329
  } catch {
13181
13330
  }
13182
13331
  }
13183
13332
  writeLogFile(file) {
13184
- const dir = path11__namespace.dirname(this.logPath);
13185
- if (!fs9__namespace.existsSync(dir)) {
13186
- fs9__namespace.mkdirSync(dir, { recursive: true });
13333
+ const dir = path8.dirname(this.logPath);
13334
+ if (!fs9.existsSync(dir)) {
13335
+ fs9.mkdirSync(dir, { recursive: true });
13187
13336
  }
13188
13337
  const tmp = `${this.logPath}.tmp`;
13189
- fs9__namespace.writeFileSync(tmp, JSON.stringify(file, null, " "), "utf-8");
13190
- fs9__namespace.renameSync(tmp, this.logPath);
13338
+ fs9.writeFileSync(tmp, JSON.stringify(file, null, " "), "utf-8");
13339
+ fs9.renameSync(tmp, this.logPath);
13191
13340
  }
13192
13341
  appendLog(input) {
13193
13342
  const file = this.readLogFile();
13194
13343
  const log = {
13195
- id: crypto.randomUUID(),
13344
+ id: (0, import_node_crypto2.randomUUID)(),
13196
13345
  taskId: input.taskId,
13197
13346
  taskName: input.taskName,
13198
13347
  startedAt: input.startedAt,
@@ -13235,6 +13384,8 @@ var init_TaskLogManager = __esm({
13235
13384
  };
13236
13385
  }
13237
13386
  });
13387
+
13388
+ // ../../packages/serviceme-core/src/scheduled-tasks/daemon/SchedulerDaemon.ts
13238
13389
  function parseIntervalMs(schedule) {
13239
13390
  const match = /^every\s+(\d+)\s*(s|sec|m|min|h|hr|d|day)s?$/i.exec(schedule);
13240
13391
  if (!match) return 0;
@@ -13274,9 +13425,12 @@ function matchCronField(field, value) {
13274
13425
  const values = field.split(",");
13275
13426
  return values.some((v) => Number.parseInt(v, 10) === value);
13276
13427
  }
13277
- var TICK_INTERVAL, MIN_SCHEDULE_INTERVAL, SchedulerDaemon;
13428
+ var fs10, os, TICK_INTERVAL, MIN_SCHEDULE_INTERVAL, SchedulerDaemon;
13278
13429
  var init_SchedulerDaemon = __esm({
13279
13430
  "../../packages/serviceme-core/src/scheduled-tasks/daemon/SchedulerDaemon.ts"() {
13431
+ "use strict";
13432
+ fs10 = __toESM(require("fs"));
13433
+ os = __toESM(require("os"));
13280
13434
  init_executors();
13281
13435
  init_TaskConfigManager();
13282
13436
  init_TaskExecutionEngine();
@@ -13286,7 +13440,7 @@ var init_SchedulerDaemon = __esm({
13286
13440
  TICK_INTERVAL = 1e3;
13287
13441
  MIN_SCHEDULE_INTERVAL = 1e3;
13288
13442
  SchedulerDaemon = class {
13289
- constructor(workspacePath) {
13443
+ constructor(workspacePath, options2 = {}) {
13290
13444
  this.tickTimer = null;
13291
13445
  this.watcher = null;
13292
13446
  this.running = false;
@@ -13299,6 +13453,7 @@ var init_SchedulerDaemon = __esm({
13299
13453
  this.logManager = new TaskLogManager(workspacePath);
13300
13454
  this.pidManager = new PidManager(workspacePath);
13301
13455
  this.logger = new DaemonLogger(workspacePath);
13456
+ this.getExecutor = options2.getExecutor ?? getExecutor;
13302
13457
  }
13303
13458
  start() {
13304
13459
  if (this.running) return;
@@ -13313,10 +13468,10 @@ var init_SchedulerDaemon = __esm({
13313
13468
  `Scheduler daemon started
13314
13469
  PID: ${process.pid}
13315
13470
  Node: ${process.version}
13316
- OS: ${os__namespace.type()} ${os__namespace.release()} (${process.arch})
13471
+ OS: ${os.type()} ${os.release()} (${process.arch})
13317
13472
  Platform: ${process.platform}
13318
- Hostname: ${os__namespace.hostname()}
13319
- User: ${os__namespace.userInfo().username}
13473
+ Hostname: ${os.hostname()}
13474
+ User: ${os.userInfo().username}
13320
13475
  Workspace: ${this.workspacePath}
13321
13476
  Config: ${configPath}
13322
13477
  LogPath: ${logPath}
@@ -13346,8 +13501,8 @@ var init_SchedulerDaemon = __esm({
13346
13501
  const configPath = this.configManager.getConfigPath();
13347
13502
  const dir = configPath.substring(0, configPath.lastIndexOf("/"));
13348
13503
  try {
13349
- if (fs9__namespace.existsSync(dir)) {
13350
- this.watcher = fs9__namespace.watch(dir, (_eventType, filename) => {
13504
+ if (fs10.existsSync(dir)) {
13505
+ this.watcher = fs10.watch(dir, (_eventType, filename) => {
13351
13506
  if (filename === "scheduled-tasks.json") {
13352
13507
  this.logger.log("info", "Config file changed, reconciling...");
13353
13508
  }
@@ -13404,7 +13559,7 @@ var init_SchedulerDaemon = __esm({
13404
13559
  this.workspacePath
13405
13560
  );
13406
13561
  validateTaskPayload(task.taskType, executionPayload);
13407
- const executor = getExecutor(task.taskType);
13562
+ const executor = this.getExecutor(task.taskType);
13408
13563
  const result = await executor.execute(executionPayload);
13409
13564
  const finishedAt = (/* @__PURE__ */ new Date()).toISOString();
13410
13565
  const durationMs = Date.now() - startMs;
@@ -13466,6 +13621,7 @@ var init_SchedulerDaemon = __esm({
13466
13621
  // ../../packages/serviceme-core/src/scheduled-tasks/daemon/index.ts
13467
13622
  var init_daemon = __esm({
13468
13623
  "../../packages/serviceme-core/src/scheduled-tasks/daemon/index.ts"() {
13624
+ "use strict";
13469
13625
  init_DaemonLogger();
13470
13626
  init_PidManager();
13471
13627
  init_SchedulerDaemon();
@@ -13475,6 +13631,7 @@ var init_daemon = __esm({
13475
13631
  // ../../packages/serviceme-core/src/scheduled-tasks/index.ts
13476
13632
  var init_scheduled_tasks2 = __esm({
13477
13633
  "../../packages/serviceme-core/src/scheduled-tasks/index.ts"() {
13634
+ "use strict";
13478
13635
  init_daemon();
13479
13636
  init_executors();
13480
13637
  init_TaskConfigManager();
@@ -13487,6 +13644,8 @@ var init_scheduled_tasks2 = __esm({
13487
13644
  var SkillCatalogClient;
13488
13645
  var init_SkillCatalogClient = __esm({
13489
13646
  "../../packages/serviceme-core/src/skills/SkillCatalogClient.ts"() {
13647
+ "use strict";
13648
+ init_src();
13490
13649
  SkillCatalogClient = class {
13491
13650
  constructor(options2 = {}) {
13492
13651
  this.fetchImpl = options2.fetchImpl ?? fetch;
@@ -13494,10 +13653,10 @@ var init_SkillCatalogClient = __esm({
13494
13653
  }
13495
13654
  async getCatalog() {
13496
13655
  if (!this.baseUrl) {
13497
- return {
13498
- skills: [],
13499
- fetchedAt: (/* @__PURE__ */ new Date()).toISOString()
13500
- };
13656
+ throw createServicemeError(
13657
+ "workspace_not_found",
13658
+ "Skill catalog baseUrl is not configured."
13659
+ );
13501
13660
  }
13502
13661
  const response = await this.fetchImpl(
13503
13662
  `${this.baseUrl}/api/v1/marketplace/skills`
@@ -13511,6 +13670,30 @@ var init_SkillCatalogClient = __esm({
13511
13670
  fetchedAt: (/* @__PURE__ */ new Date()).toISOString()
13512
13671
  };
13513
13672
  }
13673
+ async downloadSkill(remoteId) {
13674
+ if (!this.baseUrl) {
13675
+ throw createServicemeError(
13676
+ "workspace_not_found",
13677
+ "Skill catalog baseUrl is not configured."
13678
+ );
13679
+ }
13680
+ const response = await this.fetchImpl(
13681
+ `${this.baseUrl}/api/v1/marketplace/skills/download/${remoteId}`
13682
+ );
13683
+ if (!response.ok) {
13684
+ if (response.status === 404) {
13685
+ throw createServicemeError(
13686
+ "not_found",
13687
+ `Skill '${remoteId}' not found`
13688
+ );
13689
+ }
13690
+ throw new Error(
13691
+ `Failed to download skill ${remoteId}: ${response.status}`
13692
+ );
13693
+ }
13694
+ const payload = await response.json();
13695
+ return payload.data?.files ?? [];
13696
+ }
13514
13697
  };
13515
13698
  }
13516
13699
  });
@@ -13519,6 +13702,7 @@ var init_SkillCatalogClient = __esm({
13519
13702
  var SkillReconciler;
13520
13703
  var init_SkillReconciler = __esm({
13521
13704
  "../../packages/serviceme-core/src/skills/SkillReconciler.ts"() {
13705
+ "use strict";
13522
13706
  SkillReconciler = class {
13523
13707
  constructor(deps) {
13524
13708
  this.deps = deps;
@@ -13570,15 +13754,20 @@ var init_SkillReconciler = __esm({
13570
13754
  };
13571
13755
  }
13572
13756
  });
13757
+
13758
+ // ../../packages/serviceme-core/src/skills/SkillStore.ts
13573
13759
  function assertSafeLocalSkillId(skillId) {
13574
13760
  if (typeof skillId !== "string" || skillId.length === 0 || skillId === "." || skillId === ".." || skillId.includes("/") || skillId.includes("\\") || !SAFE_LOCAL_ID_PATTERN2.test(skillId)) {
13575
13761
  throw new Error(`Invalid skill id: ${skillId}`);
13576
13762
  }
13577
13763
  return skillId;
13578
13764
  }
13579
- var USER_SKILL_MARKER_FILE, WORKSPACE_SKILLS_ROOT_RELATIVE, WORKSPACE_SKILLS_MARKER_RELATIVE, SAFE_LOCAL_ID_PATTERN2, SkillStore;
13765
+ var fs11, path9, USER_SKILL_MARKER_FILE, WORKSPACE_SKILLS_ROOT_RELATIVE, WORKSPACE_SKILLS_MARKER_RELATIVE, SAFE_LOCAL_ID_PATTERN2, SkillStore;
13580
13766
  var init_SkillStore = __esm({
13581
13767
  "../../packages/serviceme-core/src/skills/SkillStore.ts"() {
13768
+ "use strict";
13769
+ fs11 = __toESM(require("fs/promises"));
13770
+ path9 = __toESM(require("path"));
13582
13771
  USER_SKILL_MARKER_FILE = ".ms-devtools-skill.json";
13583
13772
  WORKSPACE_SKILLS_ROOT_RELATIVE = ".github/skills";
13584
13773
  WORKSPACE_SKILLS_MARKER_RELATIVE = ".github/.ms-devtools-skills.yml";
@@ -13587,7 +13776,7 @@ var init_SkillStore = __esm({
13587
13776
  constructor(options2) {
13588
13777
  this.workspacePath = options2.workspacePath;
13589
13778
  this.userSkillsRoot = options2.userSkillsRoot;
13590
- this.fileSystem = options2.fileSystem ?? fs12__namespace;
13779
+ this.fileSystem = options2.fileSystem ?? fs11;
13591
13780
  }
13592
13781
  normalizeRemoteSkillId(remoteId) {
13593
13782
  if (remoteId.startsWith("official/")) {
@@ -13606,10 +13795,10 @@ var init_SkillStore = __esm({
13606
13795
  return WORKSPACE_SKILLS_MARKER_RELATIVE;
13607
13796
  }
13608
13797
  getUserSkillPath(skillId) {
13609
- return path11__namespace.join(this.userSkillsRoot, skillId);
13798
+ return path9.join(this.userSkillsRoot, skillId);
13610
13799
  }
13611
13800
  async listWorkspaceSkillIds() {
13612
- const skillsRootPath = path11__namespace.join(
13801
+ const skillsRootPath = path9.join(
13613
13802
  this.workspacePath,
13614
13803
  WORKSPACE_SKILLS_ROOT_RELATIVE
13615
13804
  );
@@ -13636,7 +13825,7 @@ var init_SkillStore = __esm({
13636
13825
  const targetDir = this.getUserSkillPath(skillId);
13637
13826
  await this.fileSystem.mkdir(targetDir, { recursive: true });
13638
13827
  await this.fileSystem.writeFile(
13639
- path11__namespace.join(targetDir, USER_SKILL_MARKER_FILE),
13828
+ path9.join(targetDir, USER_SKILL_MARKER_FILE),
13640
13829
  JSON.stringify({ skillId, installedBy: "ms-devtools" }, null, 2),
13641
13830
  "utf-8"
13642
13831
  );
@@ -13644,7 +13833,7 @@ var init_SkillStore = __esm({
13644
13833
  async isManagedUserSkill(skillId) {
13645
13834
  try {
13646
13835
  const marker = await this.fileSystem.readFile(
13647
- path11__namespace.join(this.getUserSkillPath(skillId), USER_SKILL_MARKER_FILE),
13836
+ path9.join(this.getUserSkillPath(skillId), USER_SKILL_MARKER_FILE),
13648
13837
  "utf-8"
13649
13838
  );
13650
13839
  const parsed = JSON.parse(marker);
@@ -13653,6 +13842,22 @@ var init_SkillStore = __esm({
13653
13842
  return false;
13654
13843
  }
13655
13844
  }
13845
+ async writeSkillFiles(skillId, scope, files) {
13846
+ const root2 = scope === "workspace" ? path9.join(this.workspacePath, WORKSPACE_SKILLS_ROOT_RELATIVE) : this.userSkillsRoot;
13847
+ const targetDir = path9.join(root2, skillId);
13848
+ await this.fileSystem.mkdir(targetDir, { recursive: true });
13849
+ for (const file of files) {
13850
+ const filePath = path9.join(targetDir, file.path);
13851
+ await this.fileSystem.mkdir(path9.dirname(filePath), { recursive: true });
13852
+ await this.fileSystem.writeFile(filePath, file.content, "utf-8");
13853
+ if (file.executable) {
13854
+ try {
13855
+ await this.fileSystem.chmod(filePath, 493);
13856
+ } catch {
13857
+ }
13858
+ }
13859
+ }
13860
+ }
13656
13861
  };
13657
13862
  }
13658
13863
  });
@@ -13660,12 +13865,14 @@ var init_SkillStore = __esm({
13660
13865
  // ../../packages/serviceme-core/src/skills/types.ts
13661
13866
  var init_types3 = __esm({
13662
13867
  "../../packages/serviceme-core/src/skills/types.ts"() {
13868
+ "use strict";
13663
13869
  }
13664
13870
  });
13665
13871
 
13666
13872
  // ../../packages/serviceme-core/src/skills/index.ts
13667
13873
  var init_skills = __esm({
13668
13874
  "../../packages/serviceme-core/src/skills/index.ts"() {
13875
+ "use strict";
13669
13876
  init_SkillCatalogClient();
13670
13877
  init_SkillReconciler();
13671
13878
  init_SkillStore();
@@ -13717,6 +13924,7 @@ __export(src_exports, {
13717
13924
  });
13718
13925
  var init_src2 = __esm({
13719
13926
  "../../packages/serviceme-core/src/index.ts"() {
13927
+ "use strict";
13720
13928
  init_agents();
13721
13929
  init_copilot2();
13722
13930
  init_environmentInspector();
@@ -13750,10 +13958,7 @@ function parseArgs(argv) {
13750
13958
  const withoutPrefix = token2.slice(2);
13751
13959
  const eqIndex = withoutPrefix.indexOf("=");
13752
13960
  if (eqIndex >= 0) {
13753
- flags.set(
13754
- withoutPrefix.slice(0, eqIndex),
13755
- withoutPrefix.slice(eqIndex + 1)
13756
- );
13961
+ flags.set(withoutPrefix.slice(0, eqIndex), withoutPrefix.slice(eqIndex + 1));
13757
13962
  continue;
13758
13963
  }
13759
13964
  const next = argv[index + 1];
@@ -13778,6 +13983,9 @@ function getStringFlag(parsed, name) {
13778
13983
  }
13779
13984
 
13780
13985
  // src/commands/agent.ts
13986
+ var fs12 = __toESM(require("fs/promises"));
13987
+ var os2 = __toESM(require("os"));
13988
+ var path10 = __toESM(require("path"));
13781
13989
  init_src2();
13782
13990
  init_src();
13783
13991
 
@@ -13806,14 +14014,11 @@ async function runAgentCommand(parsed) {
13806
14014
  const action = parsed.positionals[1];
13807
14015
  const workspacePath = getStringFlag(parsed, "workspacePath");
13808
14016
  if (!workspacePath) {
13809
- throw createServicemeError(
13810
- "invalid_params",
13811
- "Expected --workspacePath <path>."
13812
- );
14017
+ throw createServicemeError("invalid_params", "Expected --workspacePath <path>.");
13813
14018
  }
13814
14019
  const store = new AgentStore({
13815
14020
  workspacePath,
13816
- userAgentsRoot: path11__namespace.join(os__namespace.homedir(), ".copilot", "agents")
14021
+ userAgentsRoot: path10.join(os2.homedir(), ".copilot", "agents")
13817
14022
  });
13818
14023
  const catalogClient = new AgentCatalogClient({
13819
14024
  baseUrl: getStringFlag(parsed, "baseUrl")
@@ -13827,7 +14032,7 @@ async function runAgentCommand(parsed) {
13827
14032
  writeSuccess(await handleList(store));
13828
14033
  return;
13829
14034
  case "install":
13830
- writeSuccess(await handleInstall(store, parsed));
14035
+ writeSuccess(await handleInstall(store, parsed, catalogClient));
13831
14036
  return;
13832
14037
  case "uninstall":
13833
14038
  writeSuccess(await handleUninstall(store, workspacePath, parsed));
@@ -13839,9 +14044,7 @@ async function runAgentCommand(parsed) {
13839
14044
  writeSuccess(await handleMarketplace(store, catalogClient));
13840
14045
  return;
13841
14046
  case "permissions":
13842
- writeSuccess(
13843
- await handlePermissions(store, reconciler, workspacePath, parsed)
13844
- );
14047
+ writeSuccess(await handlePermissions(store, reconciler, workspacePath, parsed));
13845
14048
  return;
13846
14049
  default:
13847
14050
  throw new Error(
@@ -13859,13 +14062,10 @@ async function handleList(store) {
13859
14062
  ]
13860
14063
  };
13861
14064
  }
13862
- async function handleInstall(store, parsed) {
14065
+ async function handleInstall(store, parsed, catalogClient) {
13863
14066
  const remoteId = getStringFlag(parsed, "id");
13864
14067
  if (!remoteId) {
13865
- throw createServicemeError(
13866
- "invalid_params",
13867
- "Expected --id <remoteAgentId>."
13868
- );
14068
+ throw createServicemeError("invalid_params", "Expected --id <remoteAgentId>.");
13869
14069
  }
13870
14070
  const agentId = normalizeAgentIdOrThrow(store, remoteId);
13871
14071
  if (!getBooleanFlag(parsed, "confirmed")) {
@@ -13877,27 +14077,48 @@ async function handleInstall(store, parsed) {
13877
14077
  message: "Install requires --confirmed."
13878
14078
  };
13879
14079
  }
13880
- const content = `---
13881
- name: ${agentId}
13882
- tools:
13883
- - run_in_terminal
13884
- - read_file
13885
- ---
13886
-
13887
- # ${agentId}
13888
- `;
13889
- await store.writeAgentFiles(agentId, "workspace", [
13890
- {
13891
- path: `${agentId}.agent.md`,
13892
- content
13893
- }
13894
- ]);
13895
- await store.addInstalledAgent({
13896
- id: remoteId,
13897
- name: agentId,
13898
- scope: "workspace",
13899
- installedAt: (/* @__PURE__ */ new Date()).toISOString()
13900
- });
14080
+ let files;
14081
+ try {
14082
+ files = await catalogClient.downloadAgent(remoteId);
14083
+ } catch (error) {
14084
+ const errCode = error?.code;
14085
+ const errMessage = error instanceof Error ? error.message : String(error);
14086
+ const isNotFound = errCode === "not_found" || /not found/i.test(errMessage);
14087
+ return {
14088
+ changed: false,
14089
+ scope: "workspace",
14090
+ agentId,
14091
+ status: "failed",
14092
+ message: isNotFound ? `Agent '${agentId}' not found in catalog.` : `Failed to download agent: ${errMessage}`
14093
+ };
14094
+ }
14095
+ if (files.length === 0) {
14096
+ return {
14097
+ changed: false,
14098
+ scope: "workspace",
14099
+ agentId,
14100
+ status: "failed",
14101
+ message: "Catalog returned no files for agent."
14102
+ };
14103
+ }
14104
+ try {
14105
+ await store.writeAgentFiles(agentId, "workspace", files);
14106
+ await store.addInstalledAgent({
14107
+ id: remoteId,
14108
+ name: agentId,
14109
+ scope: "workspace",
14110
+ installedAt: (/* @__PURE__ */ new Date()).toISOString()
14111
+ });
14112
+ } catch (error) {
14113
+ const errMessage = error instanceof Error ? error.message : String(error);
14114
+ return {
14115
+ changed: false,
14116
+ scope: "workspace",
14117
+ agentId,
14118
+ status: "failed",
14119
+ message: `Failed to write agent files: ${errMessage}`
14120
+ };
14121
+ }
13901
14122
  return {
13902
14123
  changed: true,
13903
14124
  scope: "workspace",
@@ -13908,28 +14129,22 @@ tools:
13908
14129
  async function handleUninstall(store, workspacePath, parsed) {
13909
14130
  const remoteId = getStringFlag(parsed, "id");
13910
14131
  if (!remoteId) {
13911
- throw createServicemeError(
13912
- "invalid_params",
13913
- "Expected --id <remoteAgentId>."
13914
- );
14132
+ throw createServicemeError("invalid_params", "Expected --id <remoteAgentId>.");
13915
14133
  }
13916
14134
  const agentId = normalizeAgentIdOrThrow(store, remoteId);
13917
- await fs12__namespace.rm(
13918
- path11__namespace.join(workspacePath, ".github", "agents", `${agentId}.agent.md`),
13919
- {
13920
- recursive: true,
13921
- force: true
13922
- }
13923
- );
13924
- await fs12__namespace.rm(path11__namespace.join(workspacePath, ".github", "agents", agentId), {
14135
+ await fs12.rm(path10.join(workspacePath, ".github", "agents", `${agentId}.agent.md`), {
14136
+ recursive: true,
14137
+ force: true
14138
+ });
14139
+ await fs12.rm(path10.join(workspacePath, ".github", "agents", agentId), {
13925
14140
  recursive: true,
13926
14141
  force: true
13927
14142
  });
13928
- await fs12__namespace.rm(path11__namespace.join(store.getUserAgentsRootPath(), `${agentId}.agent.md`), {
14143
+ await fs12.rm(path10.join(store.getUserAgentsRootPath(), `${agentId}.agent.md`), {
13929
14144
  recursive: true,
13930
14145
  force: true
13931
14146
  });
13932
- await fs12__namespace.rm(path11__namespace.join(store.getUserAgentsRootPath(), agentId), {
14147
+ await fs12.rm(path10.join(store.getUserAgentsRootPath(), agentId), {
13933
14148
  recursive: true,
13934
14149
  force: true
13935
14150
  });
@@ -13949,22 +14164,11 @@ async function handleMove(store, workspacePath, parsed) {
13949
14164
  );
13950
14165
  }
13951
14166
  if (to !== "workspace" && to !== "user") {
13952
- throw createServicemeError(
13953
- "invalid_params",
13954
- "Expected --to value to be workspace or user."
13955
- );
14167
+ throw createServicemeError("invalid_params", "Expected --to value to be workspace or user.");
13956
14168
  }
13957
14169
  const agentId = normalizeAgentIdOrThrow(store, remoteId);
13958
- const workspaceFlatPath = path11__namespace.join(
13959
- workspacePath,
13960
- ".github",
13961
- "agents",
13962
- `${agentId}.agent.md`
13963
- );
13964
- const userFlatPath = path11__namespace.join(
13965
- store.getUserAgentsRootPath(),
13966
- `${agentId}.agent.md`
13967
- );
14170
+ const workspaceFlatPath = path10.join(workspacePath, ".github", "agents", `${agentId}.agent.md`);
14171
+ const userFlatPath = path10.join(store.getUserAgentsRootPath(), `${agentId}.agent.md`);
13968
14172
  if (to === "user") {
13969
14173
  await moveEntry(workspaceFlatPath, userFlatPath);
13970
14174
  return {
@@ -14032,16 +14236,10 @@ async function handlePermissions(store, reconciler, workspacePath, parsed) {
14032
14236
  const remoteId = getStringFlag(parsed, "id");
14033
14237
  const scopeFlag = getStringFlag(parsed, "scope");
14034
14238
  if (!remoteId) {
14035
- throw createServicemeError(
14036
- "invalid_params",
14037
- "Expected --id <remoteAgentId>."
14038
- );
14239
+ throw createServicemeError("invalid_params", "Expected --id <remoteAgentId>.");
14039
14240
  }
14040
14241
  if (scopeFlag !== void 0 && scopeFlag !== "workspace" && scopeFlag !== "user") {
14041
- throw createServicemeError(
14042
- "invalid_params",
14043
- "Expected --scope value to be workspace or user."
14044
- );
14242
+ throw createServicemeError("invalid_params", "Expected --scope value to be workspace or user.");
14045
14243
  }
14046
14244
  const agentId = normalizeAgentIdOrThrow(store, remoteId);
14047
14245
  const requestedScope = scopeFlag ?? "workspace";
@@ -14055,45 +14253,58 @@ async function handlePermissions(store, reconciler, workspacePath, parsed) {
14055
14253
  };
14056
14254
  }
14057
14255
  async function moveEntry(fromPath, toPath) {
14058
- await fs12__namespace.mkdir(path11__namespace.dirname(toPath), { recursive: true });
14256
+ await fs12.mkdir(path10.dirname(toPath), { recursive: true });
14059
14257
  try {
14060
- await fs12__namespace.rename(fromPath, toPath);
14258
+ await fs12.rename(fromPath, toPath);
14061
14259
  } catch {
14062
- await fs12__namespace.cp(fromPath, toPath, { recursive: true });
14063
- await fs12__namespace.rm(fromPath, { recursive: true, force: true });
14260
+ await fs12.cp(fromPath, toPath, { recursive: true });
14261
+ await fs12.rm(fromPath, { recursive: true, force: true });
14064
14262
  }
14065
14263
  }
14066
14264
  async function readAgentContent(store, workspacePath, agentId, scope) {
14067
- const root2 = scope === "workspace" ? path11__namespace.join(workspacePath, store.getWorkspaceAgentsRootPath()) : store.getUserAgentsRootPath();
14265
+ const root2 = scope === "workspace" ? path10.join(workspacePath, store.getWorkspaceAgentsRootPath()) : store.getUserAgentsRootPath();
14068
14266
  const candidates = [
14069
- path11__namespace.join(root2, `${agentId}.agent.md`),
14070
- path11__namespace.join(root2, agentId, `${agentId}.agent.md`)
14267
+ path10.join(root2, `${agentId}.agent.md`),
14268
+ path10.join(root2, agentId, `${agentId}.agent.md`)
14071
14269
  ];
14072
14270
  for (const candidate of candidates) {
14073
14271
  try {
14074
- return await fs12__namespace.readFile(candidate, "utf8");
14272
+ return await fs12.readFile(candidate, "utf8");
14075
14273
  } catch {
14076
14274
  }
14077
14275
  }
14078
- throw createServicemeError(
14079
- "not_found",
14080
- `Agent file not found for ${agentId} in ${scope} scope.`
14081
- );
14276
+ throw createServicemeError("not_found", `Agent file not found for ${agentId} in ${scope} scope.`);
14082
14277
  }
14083
14278
 
14084
14279
  // src/commands/bridge.ts
14085
14280
  init_src2();
14086
14281
 
14087
14282
  // src/bridge/BridgeServer.ts
14283
+ var readline = __toESM(require("readline"));
14088
14284
  init_src();
14089
14285
 
14090
14286
  // src/version.ts
14091
14287
  var SERVICEME_CLI_NAME = "serviceme";
14092
- var SERVICEME_CLI_VERSION = "0.1.6";
14288
+ var SERVICEME_CLI_VERSION = "0.1.8";
14093
14289
 
14094
14290
  // src/bridge/AgentBridgeHandler.ts
14291
+ var fs13 = __toESM(require("fs/promises"));
14292
+ var os3 = __toESM(require("os"));
14293
+ var path11 = __toESM(require("path"));
14095
14294
  init_src2();
14096
14295
  init_src();
14296
+
14297
+ // src/bridge/marketplaceEnv.ts
14298
+ var SERVICEME_MARKETPLACE_BASE_URL_ENV = "SERVICEME_MARKETPLACE_BASE_URL";
14299
+ function readMarketplaceBaseUrl() {
14300
+ const raw = process.env[SERVICEME_MARKETPLACE_BASE_URL_ENV];
14301
+ if (typeof raw !== "string" || raw.length === 0) {
14302
+ return void 0;
14303
+ }
14304
+ return raw;
14305
+ }
14306
+
14307
+ // src/bridge/AgentBridgeHandler.ts
14097
14308
  function normalizeAgentIdOrThrow2(store, remoteId) {
14098
14309
  try {
14099
14310
  return store.normalizeRemoteAgentId(remoteId);
@@ -14132,19 +14343,16 @@ var AgentBridgeHandler = class {
14132
14343
  hasConflict: agent.hasConflict,
14133
14344
  tools: agent.tools,
14134
14345
  source: agent.source,
14135
- localAgentPath: workspaceInstalled || userInstalled ? workspaceInstalled ? path11__namespace.join(
14346
+ localAgentPath: workspaceInstalled || userInstalled ? workspaceInstalled ? path11.join(
14136
14347
  context.workspacePath,
14137
14348
  context.store.getWorkspaceAgentsRootPath(),
14138
14349
  `${agentId}.agent.md`
14139
- ) : path11__namespace.join(
14140
- context.store.getUserAgentsRootPath(),
14141
- `${agentId}.agent.md`
14142
- ) : void 0,
14350
+ ) : path11.join(context.store.getUserAgentsRootPath(), `${agentId}.agent.md`) : void 0,
14143
14351
  canPublish: agent.canPublish,
14144
14352
  workspaceState: this.makeScopeState(
14145
14353
  "workspace",
14146
14354
  workspaceInstalled,
14147
- path11__namespace.join(
14355
+ path11.join(
14148
14356
  context.workspacePath,
14149
14357
  context.store.getWorkspaceAgentsRootPath(),
14150
14358
  `${agentId}.agent.md`
@@ -14153,10 +14361,7 @@ var AgentBridgeHandler = class {
14153
14361
  userState: this.makeScopeState(
14154
14362
  "user",
14155
14363
  userInstalled,
14156
- path11__namespace.join(
14157
- context.store.getUserAgentsRootPath(),
14158
- `${agentId}.agent.md`
14159
- )
14364
+ path11.join(context.store.getUserAgentsRootPath(), `${agentId}.agent.md`)
14160
14365
  )
14161
14366
  });
14162
14367
  }
@@ -14176,7 +14381,7 @@ var AgentBridgeHandler = class {
14176
14381
  hasConflict: false,
14177
14382
  tools: [],
14178
14383
  source: "local",
14179
- localAgentPath: path11__namespace.join(
14384
+ localAgentPath: path11.join(
14180
14385
  context.workspacePath,
14181
14386
  context.store.getWorkspaceAgentsRootPath(),
14182
14387
  `${agentId}.agent.md`
@@ -14184,7 +14389,7 @@ var AgentBridgeHandler = class {
14184
14389
  workspaceState: this.makeScopeState(
14185
14390
  "workspace",
14186
14391
  true,
14187
- path11__namespace.join(
14392
+ path11.join(
14188
14393
  context.workspacePath,
14189
14394
  context.store.getWorkspaceAgentsRootPath(),
14190
14395
  `${agentId}.agent.md`
@@ -14193,10 +14398,7 @@ var AgentBridgeHandler = class {
14193
14398
  userState: this.makeScopeState(
14194
14399
  "user",
14195
14400
  userSet.has(agentId),
14196
- path11__namespace.join(
14197
- context.store.getUserAgentsRootPath(),
14198
- `${agentId}.agent.md`
14199
- )
14401
+ path11.join(context.store.getUserAgentsRootPath(), `${agentId}.agent.md`)
14200
14402
  )
14201
14403
  });
14202
14404
  }
@@ -14216,14 +14418,11 @@ var AgentBridgeHandler = class {
14216
14418
  hasConflict: false,
14217
14419
  tools: [],
14218
14420
  source: "local",
14219
- localAgentPath: path11__namespace.join(
14220
- context.store.getUserAgentsRootPath(),
14221
- `${agentId}.agent.md`
14222
- ),
14421
+ localAgentPath: path11.join(context.store.getUserAgentsRootPath(), `${agentId}.agent.md`),
14223
14422
  workspaceState: this.makeScopeState(
14224
14423
  "workspace",
14225
14424
  workspaceSet.has(agentId),
14226
- path11__namespace.join(
14425
+ path11.join(
14227
14426
  context.workspacePath,
14228
14427
  context.store.getWorkspaceAgentsRootPath(),
14229
14428
  `${agentId}.agent.md`
@@ -14232,18 +14431,12 @@ var AgentBridgeHandler = class {
14232
14431
  userState: this.makeScopeState(
14233
14432
  "user",
14234
14433
  true,
14235
- path11__namespace.join(
14236
- context.store.getUserAgentsRootPath(),
14237
- `${agentId}.agent.md`
14238
- )
14434
+ path11.join(context.store.getUserAgentsRootPath(), `${agentId}.agent.md`)
14239
14435
  )
14240
14436
  });
14241
14437
  }
14242
14438
  return {
14243
- configPath: path11__namespace.join(
14244
- context.workspacePath,
14245
- context.store.getWorkspaceStateFilePath()
14246
- ),
14439
+ configPath: path11.join(context.workspacePath, context.store.getWorkspaceStateFilePath()),
14247
14440
  userAgentsPath: context.userAgentsRoot,
14248
14441
  agents: [...byId.values()].sort((a, b) => a.id.localeCompare(b.id)),
14249
14442
  installedAgentIds: [.../* @__PURE__ */ new Set([...workspaceAgentIds, ...userAgentIds])],
@@ -14285,12 +14478,15 @@ var AgentBridgeHandler = class {
14285
14478
  }
14286
14479
  createContext(workspacePath) {
14287
14480
  const resolvedWorkspacePath = workspacePath ?? process.cwd();
14288
- const userAgentsRoot = path11__namespace.join(os__namespace.homedir(), ".copilot", "agents");
14481
+ const userAgentsRoot = path11.join(os3.homedir(), ".copilot", "agents");
14289
14482
  const store = new AgentStore({
14290
14483
  workspacePath: resolvedWorkspacePath,
14291
14484
  userAgentsRoot
14292
14485
  });
14293
- const catalogClient = new AgentCatalogClient();
14486
+ const marketplaceBaseUrl = readMarketplaceBaseUrl();
14487
+ const catalogClient = new AgentCatalogClient(
14488
+ marketplaceBaseUrl ? { baseUrl: marketplaceBaseUrl } : {}
14489
+ );
14294
14490
  const reconciler = new AgentReconciler({
14295
14491
  agentStore: store,
14296
14492
  catalogClient
@@ -14327,12 +14523,12 @@ var AgentBridgeHandler = class {
14327
14523
  };
14328
14524
  }
14329
14525
  async applyMutationSideEffect(context, request) {
14330
- const workspaceFlatPath = path11__namespace.join(
14526
+ const workspaceFlatPath = path11.join(
14331
14527
  context.workspacePath,
14332
14528
  context.store.getWorkspaceAgentsRootPath(),
14333
14529
  `${request.agentId}.agent.md`
14334
14530
  );
14335
- const userFlatPath = path11__namespace.join(
14531
+ const userFlatPath = path11.join(
14336
14532
  context.store.getUserAgentsRootPath(),
14337
14533
  `${request.agentId}.agent.md`
14338
14534
  );
@@ -14346,9 +14542,9 @@ var AgentBridgeHandler = class {
14346
14542
  return;
14347
14543
  case "uninstall":
14348
14544
  if (request.targetScope === "workspace") {
14349
- await fs12__namespace.rm(workspaceFlatPath, { recursive: true, force: true });
14545
+ await fs13.rm(workspaceFlatPath, { recursive: true, force: true });
14350
14546
  } else {
14351
- await fs12__namespace.rm(userFlatPath, { recursive: true, force: true });
14547
+ await fs13.rm(userFlatPath, { recursive: true, force: true });
14352
14548
  }
14353
14549
  return;
14354
14550
  case "move":
@@ -14363,17 +14559,17 @@ var AgentBridgeHandler = class {
14363
14559
  }
14364
14560
  }
14365
14561
  async moveEntry(fromPath, toPath) {
14366
- await fs12__namespace.mkdir(path11__namespace.dirname(toPath), { recursive: true });
14562
+ await fs13.mkdir(path11.dirname(toPath), { recursive: true });
14367
14563
  try {
14368
- await fs12__namespace.rename(fromPath, toPath);
14564
+ await fs13.rename(fromPath, toPath);
14369
14565
  } catch {
14370
- await fs12__namespace.cp(fromPath, toPath, { recursive: true });
14371
- await fs12__namespace.rm(fromPath, { recursive: true, force: true });
14566
+ await fs13.cp(fromPath, toPath, { recursive: true });
14567
+ await fs13.rm(fromPath, { recursive: true, force: true });
14372
14568
  }
14373
14569
  }
14374
14570
  async writeDefaultAgentFile(targetPath, agentId) {
14375
- await fs12__namespace.mkdir(path11__namespace.dirname(targetPath), { recursive: true });
14376
- await fs12__namespace.writeFile(
14571
+ await fs13.mkdir(path11.dirname(targetPath), { recursive: true });
14572
+ await fs13.writeFile(
14377
14573
  targetPath,
14378
14574
  `---
14379
14575
  name: ${agentId}
@@ -14388,17 +14584,14 @@ tools:
14388
14584
  );
14389
14585
  }
14390
14586
  async readAgentContent(context, agentId, scope) {
14391
- const root2 = scope === "workspace" ? path11__namespace.join(
14392
- context.workspacePath,
14393
- context.store.getWorkspaceAgentsRootPath()
14394
- ) : context.store.getUserAgentsRootPath();
14587
+ const root2 = scope === "workspace" ? path11.join(context.workspacePath, context.store.getWorkspaceAgentsRootPath()) : context.store.getUserAgentsRootPath();
14395
14588
  const candidates = [
14396
- path11__namespace.join(root2, `${agentId}.agent.md`),
14397
- path11__namespace.join(root2, agentId, `${agentId}.agent.md`)
14589
+ path11.join(root2, `${agentId}.agent.md`),
14590
+ path11.join(root2, agentId, `${agentId}.agent.md`)
14398
14591
  ];
14399
14592
  for (const candidate of candidates) {
14400
14593
  try {
14401
- return await fs12__namespace.readFile(candidate, "utf8");
14594
+ return await fs13.readFile(candidate, "utf8");
14402
14595
  } catch {
14403
14596
  }
14404
14597
  }
@@ -14416,6 +14609,9 @@ function writeBridgeMessage(message) {
14416
14609
  }
14417
14610
 
14418
14611
  // src/bridge/SkillBridgeHandler.ts
14612
+ var fs14 = __toESM(require("fs/promises"));
14613
+ var os4 = __toESM(require("os"));
14614
+ var path12 = __toESM(require("path"));
14419
14615
  init_src2();
14420
14616
  init_src();
14421
14617
  function normalizeSkillIdOrThrow(store, remoteId) {
@@ -14461,18 +14657,12 @@ var SkillBridgeHandler = class {
14461
14657
  hasScripts: skill.hasScripts,
14462
14658
  hasHooks: skill.hasHooks,
14463
14659
  source: skill.source,
14464
- localSkillPath: workspaceInstalled || userInstalled ? workspaceInstalled ? path11__namespace.join(
14465
- context.workspacePath,
14466
- context.store.getWorkspaceSkillPath(skillId)
14467
- ) : context.store.getUserSkillPath(skillId) : void 0,
14660
+ localSkillPath: workspaceInstalled || userInstalled ? workspaceInstalled ? path12.join(context.workspacePath, context.store.getWorkspaceSkillPath(skillId)) : context.store.getUserSkillPath(skillId) : void 0,
14468
14661
  canPublish: skill.canPublish,
14469
14662
  workspaceState: this.makeScopeState(
14470
14663
  "workspace",
14471
14664
  workspaceInstalled,
14472
- path11__namespace.join(
14473
- context.workspacePath,
14474
- context.store.getWorkspaceSkillPath(skillId)
14475
- )
14665
+ path12.join(context.workspacePath, context.store.getWorkspaceSkillPath(skillId))
14476
14666
  ),
14477
14667
  userState: this.makeScopeState(
14478
14668
  "user",
@@ -14496,17 +14686,14 @@ var SkillBridgeHandler = class {
14496
14686
  installCount: 0,
14497
14687
  hasConflict: false,
14498
14688
  source: "local",
14499
- localSkillPath: path11__namespace.join(
14689
+ localSkillPath: path12.join(
14500
14690
  context.workspacePath,
14501
14691
  context.store.getWorkspaceSkillPath(skillId)
14502
14692
  ),
14503
14693
  workspaceState: this.makeScopeState(
14504
14694
  "workspace",
14505
14695
  true,
14506
- path11__namespace.join(
14507
- context.workspacePath,
14508
- context.store.getWorkspaceSkillPath(skillId)
14509
- )
14696
+ path12.join(context.workspacePath, context.store.getWorkspaceSkillPath(skillId))
14510
14697
  ),
14511
14698
  userState: this.makeScopeState(
14512
14699
  "user",
@@ -14534,23 +14721,13 @@ var SkillBridgeHandler = class {
14534
14721
  workspaceState: this.makeScopeState(
14535
14722
  "workspace",
14536
14723
  workspaceSet.has(skillId),
14537
- path11__namespace.join(
14538
- context.workspacePath,
14539
- context.store.getWorkspaceSkillPath(skillId)
14540
- )
14724
+ path12.join(context.workspacePath, context.store.getWorkspaceSkillPath(skillId))
14541
14725
  ),
14542
- userState: this.makeScopeState(
14543
- "user",
14544
- true,
14545
- context.store.getUserSkillPath(skillId)
14546
- )
14726
+ userState: this.makeScopeState("user", true, context.store.getUserSkillPath(skillId))
14547
14727
  });
14548
14728
  }
14549
14729
  return {
14550
- configPath: path11__namespace.join(
14551
- context.workspacePath,
14552
- context.store.getWorkspaceMarkerPath()
14553
- ),
14730
+ configPath: path12.join(context.workspacePath, context.store.getWorkspaceMarkerPath()),
14554
14731
  userSkillsPath: context.userSkillsRoot,
14555
14732
  skills: [...byId.values()].sort((a, b) => a.id.localeCompare(b.id)),
14556
14733
  enabledSkillIds: [],
@@ -14604,21 +14781,21 @@ var SkillBridgeHandler = class {
14604
14781
  skills: workspaceSkillIds.map((skillId) => ({
14605
14782
  id: skillId,
14606
14783
  displayName: skillId,
14607
- path: path11__namespace.join(
14608
- context.workspacePath,
14609
- context.store.getWorkspaceSkillPath(skillId)
14610
- )
14784
+ path: path12.join(context.workspacePath, context.store.getWorkspaceSkillPath(skillId))
14611
14785
  }))
14612
14786
  };
14613
14787
  }
14614
14788
  createContext(workspacePath) {
14615
14789
  const resolvedWorkspacePath = workspacePath ?? process.cwd();
14616
- const userSkillsRoot = path11__namespace.join(os__namespace.homedir(), ".agents", "skills");
14790
+ const userSkillsRoot = path12.join(os4.homedir(), ".agents", "skills");
14617
14791
  const store = new SkillStore({
14618
14792
  workspacePath: resolvedWorkspacePath,
14619
14793
  userSkillsRoot
14620
14794
  });
14621
- const catalogClient = new SkillCatalogClient();
14795
+ const marketplaceBaseUrl = readMarketplaceBaseUrl();
14796
+ const catalogClient = new SkillCatalogClient(
14797
+ marketplaceBaseUrl ? { baseUrl: marketplaceBaseUrl } : {}
14798
+ );
14622
14799
  const reconciler = new SkillReconciler({
14623
14800
  skillStore: store,
14624
14801
  catalogClient
@@ -14655,7 +14832,7 @@ var SkillBridgeHandler = class {
14655
14832
  };
14656
14833
  }
14657
14834
  async applyMutationSideEffect(context, request) {
14658
- const workspaceSkillPath = path11__namespace.join(
14835
+ const workspaceSkillPath = path12.join(
14659
14836
  context.workspacePath,
14660
14837
  context.store.getWorkspaceSkillPath(request.skillId)
14661
14838
  );
@@ -14663,17 +14840,17 @@ var SkillBridgeHandler = class {
14663
14840
  switch (request.action) {
14664
14841
  case "install":
14665
14842
  if (request.targetScope === "workspace") {
14666
- await fs12__namespace.mkdir(workspaceSkillPath, { recursive: true });
14843
+ await fs14.mkdir(workspaceSkillPath, { recursive: true });
14667
14844
  } else {
14668
- await fs12__namespace.mkdir(userSkillPath, { recursive: true });
14845
+ await fs14.mkdir(userSkillPath, { recursive: true });
14669
14846
  await context.store.writeManagedUserSkillMarker(request.skillId);
14670
14847
  }
14671
14848
  return;
14672
14849
  case "uninstall":
14673
14850
  if (request.targetScope === "workspace") {
14674
- await fs12__namespace.rm(workspaceSkillPath, { recursive: true, force: true });
14851
+ await fs14.rm(workspaceSkillPath, { recursive: true, force: true });
14675
14852
  } else {
14676
- await fs12__namespace.rm(userSkillPath, { recursive: true, force: true });
14853
+ await fs14.rm(userSkillPath, { recursive: true, force: true });
14677
14854
  }
14678
14855
  return;
14679
14856
  case "move":
@@ -14689,12 +14866,12 @@ var SkillBridgeHandler = class {
14689
14866
  }
14690
14867
  }
14691
14868
  async moveDirectory(fromPath, toPath) {
14692
- await fs12__namespace.mkdir(path11__namespace.dirname(toPath), { recursive: true });
14869
+ await fs14.mkdir(path12.dirname(toPath), { recursive: true });
14693
14870
  try {
14694
- await fs12__namespace.rename(fromPath, toPath);
14871
+ await fs14.rename(fromPath, toPath);
14695
14872
  } catch {
14696
- await fs12__namespace.cp(fromPath, toPath, { recursive: true });
14697
- await fs12__namespace.rm(fromPath, { recursive: true, force: true });
14873
+ await fs14.cp(fromPath, toPath, { recursive: true });
14874
+ await fs14.rm(fromPath, { recursive: true, force: true });
14698
14875
  }
14699
14876
  }
14700
14877
  };
@@ -14705,9 +14882,7 @@ var TaskBridgeHandler = class {
14705
14882
  constructor(logger, emitEvent) {
14706
14883
  this.logger = logger;
14707
14884
  this.emitEvent = emitEvent;
14708
- this.engine = new TaskExecutionEngine(
14709
- (taskType) => getExecutor(taskType)
14710
- );
14885
+ this.engine = new TaskExecutionEngine((taskType) => getExecutor(taskType));
14711
14886
  this.engine.setListener({
14712
14887
  onStarted: (params) => this.emitEvent("task.started", params),
14713
14888
  onOutput: (params) => this.emitEvent("task.output", params),
@@ -14762,7 +14937,7 @@ var BridgeServer = class {
14762
14937
  this.agentHandler = new AgentBridgeHandler();
14763
14938
  }
14764
14939
  async run() {
14765
- const reader = readline__namespace.createInterface({
14940
+ const reader = readline.createInterface({
14766
14941
  input: process.stdin,
14767
14942
  crlfDelay: Number.POSITIVE_INFINITY
14768
14943
  });
@@ -14844,10 +15019,7 @@ var BridgeServer = class {
14844
15019
  } catch (err) {
14845
15020
  const message = err instanceof Error ? err.message : String(err);
14846
15021
  if (message.includes("TASK_ALREADY_RUNNING")) {
14847
- this.writeError(
14848
- request.id,
14849
- createServicemeError("task_already_running", message)
14850
- );
15022
+ this.writeError(request.id, createServicemeError("task_already_running", message));
14851
15023
  } else {
14852
15024
  this.writeError(request.id, err);
14853
15025
  }
@@ -14867,9 +15039,7 @@ var BridgeServer = class {
14867
15039
  }
14868
15040
  case "skill.marketplace-state": {
14869
15041
  const skillRequest = request;
14870
- const result = await this.skillHandler.getMarketplaceState(
14871
- skillRequest.params
14872
- );
15042
+ const result = await this.skillHandler.getMarketplaceState(skillRequest.params);
14873
15043
  this.writeSuccess(request.id, result);
14874
15044
  return;
14875
15045
  }
@@ -14887,17 +15057,13 @@ var BridgeServer = class {
14887
15057
  }
14888
15058
  case "skill.publishable": {
14889
15059
  const skillRequest = request;
14890
- const result = await this.skillHandler.publishable(
14891
- skillRequest.params
14892
- );
15060
+ const result = await this.skillHandler.publishable(skillRequest.params);
14893
15061
  this.writeSuccess(request.id, result);
14894
15062
  return;
14895
15063
  }
14896
15064
  case "agent.marketplace-state": {
14897
15065
  const agentRequest = request;
14898
- const result = await this.agentHandler.getMarketplaceState(
14899
- agentRequest.params
14900
- );
15066
+ const result = await this.agentHandler.getMarketplaceState(agentRequest.params);
14901
15067
  this.writeSuccess(request.id, result);
14902
15068
  return;
14903
15069
  }
@@ -14909,19 +15075,14 @@ var BridgeServer = class {
14909
15075
  }
14910
15076
  case "agent.permissions": {
14911
15077
  const agentRequest = request;
14912
- const result = await this.agentHandler.permissions(
14913
- agentRequest.params
14914
- );
15078
+ const result = await this.agentHandler.permissions(agentRequest.params);
14915
15079
  this.writeSuccess(request.id, result);
14916
15080
  return;
14917
15081
  }
14918
15082
  default:
14919
15083
  this.writeError(
14920
15084
  request.id,
14921
- createServicemeError(
14922
- "invalid_params",
14923
- "Unsupported bridge method."
14924
- )
15085
+ createServicemeError("invalid_params", "Unsupported bridge method.")
14925
15086
  );
14926
15087
  }
14927
15088
  } catch (error) {
@@ -15024,10 +15185,7 @@ async function runEnvCommand(parsed) {
15024
15185
  const tool = getStringFlag(parsed, "tool");
15025
15186
  if (tool) {
15026
15187
  if (!isKnownEnvironmentTool(tool)) {
15027
- throw createServicemeError(
15028
- "invalid_params",
15029
- `Unsupported environment tool: ${tool}`
15030
- );
15188
+ throw createServicemeError("invalid_params", `Unsupported environment tool: ${tool}`);
15031
15189
  }
15032
15190
  writeSuccess(await inspector.checkTool(tool));
15033
15191
  return;
@@ -15057,10 +15215,7 @@ async function runImageCommand(parsed) {
15057
15215
  case "compress": {
15058
15216
  const format = getStringFlag(parsed, "format");
15059
15217
  if (format && !IMAGE_FORMATS.has(format)) {
15060
- throw createServicemeError(
15061
- "invalid_params",
15062
- `Unsupported image format: ${format}`
15063
- );
15218
+ throw createServicemeError("invalid_params", `Unsupported image format: ${format}`);
15064
15219
  }
15065
15220
  const options2 = {
15066
15221
  quality: Number(getStringFlag(parsed, "quality") ?? "75"),
@@ -15073,17 +15228,18 @@ async function runImageCommand(parsed) {
15073
15228
  return;
15074
15229
  }
15075
15230
  default:
15076
- throw new Error(
15077
- "Unsupported image command. Use validate, info, or compress."
15078
- );
15231
+ throw new Error("Unsupported image command. Use validate, info, or compress.");
15079
15232
  }
15080
15233
  }
15081
15234
 
15082
15235
  // src/commands/json.ts
15083
15236
  init_src2();
15237
+
15238
+ // src/input.ts
15239
+ var fs15 = __toESM(require("fs/promises"));
15084
15240
  async function readCommandInput(options2) {
15085
15241
  if (options2.filePath) {
15086
- return fs12__namespace.readFile(options2.filePath, "utf8");
15242
+ return fs15.readFile(options2.filePath, "utf8");
15087
15243
  }
15088
15244
  if (options2.stdin) {
15089
15245
  return readStdin();
@@ -15119,10 +15275,7 @@ async function runJsonCommand(parsed) {
15119
15275
  }
15120
15276
  case "format":
15121
15277
  writeSuccess({
15122
- output: jsonTools.format(
15123
- input,
15124
- Number(getStringFlag(parsed, "indent") ?? "2")
15125
- )
15278
+ output: jsonTools.format(input, Number(getStringFlag(parsed, "indent") ?? "2"))
15126
15279
  });
15127
15280
  return;
15128
15281
  case "minify":
@@ -15134,9 +15287,7 @@ async function runJsonCommand(parsed) {
15134
15287
  writeSuccess(jsonTools.validate(input));
15135
15288
  return;
15136
15289
  default:
15137
- throw new Error(
15138
- "Unsupported json command. Use sort, format, minify, or validate."
15139
- );
15290
+ throw new Error("Unsupported json command. Use sort, format, minify, or validate.");
15140
15291
  }
15141
15292
  }
15142
15293
 
@@ -15148,10 +15299,7 @@ async function runProjectCommand(parsed) {
15148
15299
  const action = parsed.positionals[1];
15149
15300
  const workspacePath = getStringFlag(parsed, "workspacePath");
15150
15301
  if (!workspacePath) {
15151
- throw createServicemeError(
15152
- "invalid_params",
15153
- "Expected --workspacePath <path>."
15154
- );
15302
+ throw createServicemeError("invalid_params", "Expected --workspacePath <path>.");
15155
15303
  }
15156
15304
  switch (action) {
15157
15305
  case "extract-template": {
@@ -15170,21 +15318,13 @@ async function runProjectCommand(parsed) {
15170
15318
  projectFilePattern
15171
15319
  };
15172
15320
  writeSuccess(
15173
- await projectTools.extractTemplate(
15174
- zipPath,
15175
- workspacePath,
15176
- tempExtractDir,
15177
- input
15178
- )
15321
+ await projectTools.extractTemplate(zipPath, workspacePath, tempExtractDir, input)
15179
15322
  );
15180
15323
  return;
15181
15324
  }
15182
15325
  case "install-deps":
15183
15326
  writeSuccess(
15184
- await projectTools.installDependencies(
15185
- workspacePath,
15186
- getStringFlag(parsed, "command")
15187
- )
15327
+ await projectTools.installDependencies(workspacePath, getStringFlag(parsed, "command"))
15188
15328
  );
15189
15329
  return;
15190
15330
  case "make-scripts-executable":
@@ -15195,10 +15335,7 @@ async function runProjectCommand(parsed) {
15195
15335
  return;
15196
15336
  case "scaffold-prune":
15197
15337
  writeSuccess(
15198
- await projectTools.runScaffoldPrune(
15199
- workspacePath,
15200
- getStringFlag(parsed, "preset")
15201
- )
15338
+ await projectTools.runScaffoldPrune(workspacePath, getStringFlag(parsed, "preset"))
15202
15339
  );
15203
15340
  return;
15204
15341
  default:
@@ -15209,6 +15346,7 @@ async function runProjectCommand(parsed) {
15209
15346
  }
15210
15347
 
15211
15348
  // src/commands/schedule.ts
15349
+ var fs16 = __toESM(require("fs"));
15212
15350
  init_src2();
15213
15351
  init_src();
15214
15352
  async function runScheduleCommand(parsed) {
@@ -15252,26 +15390,17 @@ async function runScheduleCommand(parsed) {
15252
15390
  function requireWorkspace(parsed) {
15253
15391
  const wp = getStringFlag(parsed, "workspacePath");
15254
15392
  if (!wp) {
15255
- throw createServicemeError(
15256
- "invalid_params",
15257
- "Missing required flag: --workspacePath"
15258
- );
15393
+ throw createServicemeError("invalid_params", "Missing required flag: --workspacePath");
15259
15394
  }
15260
- if (!fs9__namespace.existsSync(wp)) {
15261
- throw createServicemeError(
15262
- "workspace_not_found",
15263
- `Workspace path does not exist: ${wp}`
15264
- );
15395
+ if (!fs16.existsSync(wp)) {
15396
+ throw createServicemeError("workspace_not_found", `Workspace path does not exist: ${wp}`);
15265
15397
  }
15266
15398
  return wp;
15267
15399
  }
15268
15400
  function requireId(parsed) {
15269
15401
  const id = getStringFlag(parsed, "id");
15270
15402
  if (!id) {
15271
- throw createServicemeError(
15272
- "invalid_params",
15273
- "Missing required flag: --id <task-id>"
15274
- );
15403
+ throw createServicemeError("invalid_params", "Missing required flag: --id <task-id>");
15275
15404
  }
15276
15405
  return id;
15277
15406
  }
@@ -15292,10 +15421,7 @@ function parsePayload(parsed, taskType) {
15292
15421
  try {
15293
15422
  return JSON.parse(payloadJson);
15294
15423
  } catch {
15295
- throw createServicemeError(
15296
- "invalid_payload",
15297
- "Invalid --payload-json: must be valid JSON"
15298
- );
15424
+ throw createServicemeError("invalid_payload", "Invalid --payload-json: must be valid JSON");
15299
15425
  }
15300
15426
  }
15301
15427
  switch (taskType) {
@@ -15344,10 +15470,7 @@ function parsePayload(parsed, taskType) {
15344
15470
  };
15345
15471
  }
15346
15472
  default:
15347
- throw createServicemeError(
15348
- "invalid_payload",
15349
- `Unknown task type: ${taskType}`
15350
- );
15473
+ throw createServicemeError("invalid_payload", `Unknown task type: ${taskType}`);
15351
15474
  }
15352
15475
  }
15353
15476
  function parseScheduleType(schedule) {
@@ -15357,9 +15480,7 @@ function parseScheduleType(schedule) {
15357
15480
  function validateSchedule(schedule) {
15358
15481
  const scheduleType = parseScheduleType(schedule);
15359
15482
  if (scheduleType === "interval") {
15360
- const match = /^every\s+(\d+)\s*(s|sec|m|min|h|hr|d|day)s?$/i.exec(
15361
- schedule
15362
- );
15483
+ const match = /^every\s+(\d+)\s*(s|sec|m|min|h|hr|d|day)s?$/i.exec(schedule);
15363
15484
  if (!match) {
15364
15485
  throw createServicemeError(
15365
15486
  "invalid_schedule",
@@ -15390,11 +15511,7 @@ function filterFields(obj, fields) {
15390
15511
  async function handleCreate(parsed) {
15391
15512
  const wp = requireWorkspace(parsed);
15392
15513
  const name = getStringFlag(parsed, "name");
15393
- if (!name)
15394
- throw createServicemeError(
15395
- "invalid_params",
15396
- "Missing required flag: --name"
15397
- );
15514
+ if (!name) throw createServicemeError("invalid_params", "Missing required flag: --name");
15398
15515
  const typeStr = getStringFlag(parsed, "type");
15399
15516
  if (!typeStr)
15400
15517
  throw createServicemeError(
@@ -15409,11 +15526,7 @@ async function handleCreate(parsed) {
15409
15526
  );
15410
15527
  }
15411
15528
  const schedule = getStringFlag(parsed, "schedule");
15412
- if (!schedule)
15413
- throw createServicemeError(
15414
- "invalid_params",
15415
- "Missing required flag: --schedule"
15416
- );
15529
+ if (!schedule) throw createServicemeError("invalid_params", "Missing required flag: --schedule");
15417
15530
  validateSchedule(schedule);
15418
15531
  const payload = parsePayload(parsed, taskType);
15419
15532
  const description = getStringFlag(parsed, "description");
@@ -15475,16 +15588,10 @@ function handleGet(parsed) {
15475
15588
  const mgr = new TaskConfigManager(wp);
15476
15589
  const task = mgr.getTask(id);
15477
15590
  if (!task) {
15478
- throw createServicemeError(
15479
- "task_not_found",
15480
- `Task '${id}' does not exist in this workspace`
15481
- );
15591
+ throw createServicemeError("task_not_found", `Task '${id}' does not exist in this workspace`);
15482
15592
  }
15483
15593
  const fields = getStringFlag(parsed, "fields");
15484
- const result = filterFields(
15485
- task,
15486
- fields
15487
- );
15594
+ const result = filterFields(task, fields);
15488
15595
  writeSuccess({ task: result });
15489
15596
  }
15490
15597
  async function handleEdit(parsed) {
@@ -15493,10 +15600,7 @@ async function handleEdit(parsed) {
15493
15600
  const mgr = new TaskConfigManager(wp);
15494
15601
  const existing = mgr.getTask(id);
15495
15602
  if (!existing) {
15496
- throw createServicemeError(
15497
- "task_not_found",
15498
- `Task '${id}' does not exist in this workspace`
15499
- );
15603
+ throw createServicemeError("task_not_found", `Task '${id}' does not exist in this workspace`);
15500
15604
  }
15501
15605
  const input = {};
15502
15606
  const name = getStringFlag(parsed, "name");
@@ -15518,10 +15622,7 @@ async function handleEdit(parsed) {
15518
15622
  try {
15519
15623
  input.payload = JSON.parse(payloadJson);
15520
15624
  } catch {
15521
- throw createServicemeError(
15522
- "invalid_payload",
15523
- "Invalid --payload-json: must be valid JSON"
15524
- );
15625
+ throw createServicemeError("invalid_payload", "Invalid --payload-json: must be valid JSON");
15525
15626
  }
15526
15627
  }
15527
15628
  if (getBooleanFlag(parsed, "dry-run")) {
@@ -15544,10 +15645,7 @@ function handleDelete(parsed) {
15544
15645
  const mgr = new TaskConfigManager(wp);
15545
15646
  const existing = mgr.getTask(id);
15546
15647
  if (!existing) {
15547
- throw createServicemeError(
15548
- "task_not_found",
15549
- `Task '${id}' does not exist in this workspace`
15550
- );
15648
+ throw createServicemeError("task_not_found", `Task '${id}' does not exist in this workspace`);
15551
15649
  }
15552
15650
  if (getBooleanFlag(parsed, "dry-run")) {
15553
15651
  writeSuccess({ action: "delete", task: existing });
@@ -15561,19 +15659,13 @@ function handleToggle(parsed) {
15561
15659
  const id = requireId(parsed);
15562
15660
  const enabledStr = getStringFlag(parsed, "enabled");
15563
15661
  if (enabledStr === void 0) {
15564
- throw createServicemeError(
15565
- "invalid_params",
15566
- "Missing required flag: --enabled <true|false>"
15567
- );
15662
+ throw createServicemeError("invalid_params", "Missing required flag: --enabled <true|false>");
15568
15663
  }
15569
15664
  const enabled = enabledStr !== "false";
15570
15665
  const mgr = new TaskConfigManager(wp);
15571
15666
  const existing = mgr.getTask(id);
15572
15667
  if (!existing) {
15573
- throw createServicemeError(
15574
- "task_not_found",
15575
- `Task '${id}' does not exist in this workspace`
15576
- );
15668
+ throw createServicemeError("task_not_found", `Task '${id}' does not exist in this workspace`);
15577
15669
  }
15578
15670
  const task = mgr.toggleTask(id, enabled);
15579
15671
  writeSuccess({ task });
@@ -15584,17 +15676,10 @@ async function handleTrigger(parsed) {
15584
15676
  const mgr = new TaskConfigManager(wp);
15585
15677
  const task = mgr.getTask(id);
15586
15678
  if (!task) {
15587
- throw createServicemeError(
15588
- "task_not_found",
15589
- `Task '${id}' does not exist in this workspace`
15590
- );
15679
+ throw createServicemeError("task_not_found", `Task '${id}' does not exist in this workspace`);
15591
15680
  }
15592
15681
  const startedAt = (/* @__PURE__ */ new Date()).toISOString();
15593
- const executionPayload = resolveTaskExecutionPayload(
15594
- task.taskType,
15595
- task.payload,
15596
- wp
15597
- );
15682
+ const executionPayload = resolveTaskExecutionPayload(task.taskType, task.payload, wp);
15598
15683
  validateTaskPayload(task.taskType, executionPayload);
15599
15684
  const executor = getExecutor(task.taskType);
15600
15685
  const result = await executor.execute(executionPayload);
@@ -15605,7 +15690,7 @@ async function handleTrigger(parsed) {
15605
15690
  taskName: task.name,
15606
15691
  startedAt,
15607
15692
  finishedAt,
15608
- status: result.status,
15693
+ status: result.status === "running" ? "failure" : result.status,
15609
15694
  output: result.output,
15610
15695
  error: result.error
15611
15696
  });
@@ -15619,9 +15704,7 @@ function handleLogs(parsed) {
15619
15704
  const fields = getStringFlag(parsed, "fields");
15620
15705
  const logMgr = new TaskLogManager(wp);
15621
15706
  const { logs, total } = logMgr.getLogs({ taskId, limit });
15622
- const result = logs.map(
15623
- (l) => filterFields(l, fields)
15624
- );
15707
+ const result = logs.map((l) => filterFields(l, fields));
15625
15708
  writeSuccess({ logs: result, total });
15626
15709
  }
15627
15710
  function writeDescribe(action) {
@@ -15790,6 +15873,9 @@ function writeDescribe(action) {
15790
15873
  }
15791
15874
 
15792
15875
  // src/commands/scheduler.ts
15876
+ var import_node_child_process4 = require("child_process");
15877
+ var fs17 = __toESM(require("fs"));
15878
+ var path13 = __toESM(require("path"));
15793
15879
  init_src2();
15794
15880
  init_src();
15795
15881
  async function runSchedulerCommand(parsed) {
@@ -15821,16 +15907,10 @@ async function runSchedulerCommand(parsed) {
15821
15907
  function requireWorkspace2(parsed) {
15822
15908
  const wp = getStringFlag(parsed, "workspacePath");
15823
15909
  if (!wp) {
15824
- throw createServicemeError(
15825
- "invalid_params",
15826
- "Missing required flag: --workspacePath"
15827
- );
15910
+ throw createServicemeError("invalid_params", "Missing required flag: --workspacePath");
15828
15911
  }
15829
- if (!fs9__namespace.existsSync(wp)) {
15830
- throw createServicemeError(
15831
- "workspace_not_found",
15832
- `Workspace path does not exist: ${wp}`
15833
- );
15912
+ if (!fs17.existsSync(wp)) {
15913
+ throw createServicemeError("workspace_not_found", `Workspace path does not exist: ${wp}`);
15834
15914
  }
15835
15915
  return wp;
15836
15916
  }
@@ -15848,28 +15928,17 @@ function handleStart(parsed) {
15848
15928
  }
15849
15929
  const cliPath = process.argv[1];
15850
15930
  if (!cliPath) {
15851
- throw createServicemeError(
15852
- "internal_error",
15853
- "Cannot determine CLI path for daemon spawn"
15854
- );
15931
+ throw createServicemeError("internal_error", "Cannot determine CLI path for daemon spawn");
15855
15932
  }
15856
- const logPath = path11__namespace.join(wp, ".serviceme", "scheduler.log");
15857
- const logDir = path11__namespace.dirname(logPath);
15858
- if (!fs9__namespace.existsSync(logDir)) {
15859
- fs9__namespace.mkdirSync(logDir, { recursive: true });
15933
+ const logPath = path13.join(wp, ".serviceme", "scheduler.log");
15934
+ const logDir = path13.dirname(logPath);
15935
+ if (!fs17.existsSync(logDir)) {
15936
+ fs17.mkdirSync(logDir, { recursive: true });
15860
15937
  }
15861
15938
  const spawnCmd = process.execPath;
15862
- const spawnArgs = [
15863
- cliPath,
15864
- "scheduler",
15865
- "__daemon",
15866
- "--workspacePath",
15867
- wp,
15868
- "--logPath",
15869
- logPath
15870
- ];
15939
+ const spawnArgs = [cliPath, "scheduler", "__daemon", "--workspacePath", wp, "--logPath", logPath];
15871
15940
  if (process.platform === "win32") {
15872
- fs9__namespace.appendFileSync(
15941
+ fs17.appendFileSync(
15873
15942
  logPath,
15874
15943
  `[scheduler:start] spawning daemon via hidden PowerShell Start-Process: cmd=${spawnCmd}, args=${JSON.stringify(spawnArgs)}, platform=${process.platform}, windowsHide=true
15875
15944
  `
@@ -15879,14 +15948,14 @@ function handleStart(parsed) {
15879
15948
  writeSuccess({ pid: pid2, status: "started", workspacePath: wp });
15880
15949
  return;
15881
15950
  }
15882
- const out = fs9__namespace.openSync(logPath, "a");
15883
- const err = fs9__namespace.openSync(logPath, "a");
15884
- fs9__namespace.appendFileSync(
15951
+ const out = fs17.openSync(logPath, "a");
15952
+ const err = fs17.openSync(logPath, "a");
15953
+ fs17.appendFileSync(
15885
15954
  logPath,
15886
15955
  `[scheduler:start] spawning daemon: cmd=${spawnCmd}, args=${JSON.stringify(spawnArgs)}, platform=${process.platform}, detached=true, windowsHide=true
15887
15956
  `
15888
15957
  );
15889
- const child = child_process.spawn(spawnCmd, spawnArgs, {
15958
+ const child = (0, import_node_child_process4.spawn)(spawnCmd, spawnArgs, {
15890
15959
  detached: true,
15891
15960
  stdio: ["ignore", out, err],
15892
15961
  env: { ...process.env },
@@ -15895,10 +15964,7 @@ function handleStart(parsed) {
15895
15964
  child.unref();
15896
15965
  const pid = child.pid;
15897
15966
  if (pid === void 0) {
15898
- throw createServicemeError(
15899
- "internal_error",
15900
- "Failed to spawn daemon process"
15901
- );
15967
+ throw createServicemeError("internal_error", "Failed to spawn daemon process");
15902
15968
  }
15903
15969
  pidMgr.writePid(pid);
15904
15970
  writeSuccess({ pid, status: "started", workspacePath: wp });
@@ -15911,7 +15977,7 @@ function startWindowsDaemon(command, args) {
15911
15977
  "Write-Output $process.Id"
15912
15978
  ].join("; ");
15913
15979
  const encodedCommand = Buffer.from(script, "utf16le").toString("base64");
15914
- const result = child_process.spawnSync(
15980
+ const result = (0, import_node_child_process4.spawnSync)(
15915
15981
  "powershell.exe",
15916
15982
  [
15917
15983
  "-NoProfile",
@@ -15992,7 +16058,7 @@ function handleStatus(parsed) {
15992
16058
  let uptimeSeconds = null;
15993
16059
  if (pid !== null) {
15994
16060
  try {
15995
- const stat2 = fs9__namespace.statSync(pidMgr.getPidPath());
16061
+ const stat2 = fs17.statSync(pidMgr.getPidPath());
15996
16062
  uptimeSeconds = Math.floor((Date.now() - stat2.mtimeMs) / 1e3);
15997
16063
  } catch {
15998
16064
  uptimeSeconds = null;
@@ -16064,6 +16130,9 @@ function writeDescribe2(action) {
16064
16130
  }
16065
16131
 
16066
16132
  // src/commands/skill.ts
16133
+ var fs18 = __toESM(require("fs/promises"));
16134
+ var os5 = __toESM(require("os"));
16135
+ var path14 = __toESM(require("path"));
16067
16136
  init_src2();
16068
16137
  init_src();
16069
16138
  function normalizeSkillIdOrThrow2(store, remoteId) {
@@ -16077,14 +16146,11 @@ async function runSkillCommand(parsed) {
16077
16146
  const action = parsed.positionals[1];
16078
16147
  const workspacePath = getStringFlag(parsed, "workspacePath");
16079
16148
  if (!workspacePath) {
16080
- throw createServicemeError(
16081
- "invalid_params",
16082
- "Expected --workspacePath <path>."
16083
- );
16149
+ throw createServicemeError("invalid_params", "Expected --workspacePath <path>.");
16084
16150
  }
16085
16151
  const store = new SkillStore({
16086
16152
  workspacePath,
16087
- userSkillsRoot: path11__namespace.join(os__namespace.homedir(), ".agents", "skills")
16153
+ userSkillsRoot: path14.join(os5.homedir(), ".agents", "skills")
16088
16154
  });
16089
16155
  const catalogClient = new SkillCatalogClient({
16090
16156
  baseUrl: getStringFlag(parsed, "baseUrl")
@@ -16098,7 +16164,7 @@ async function runSkillCommand(parsed) {
16098
16164
  writeSuccess(await handleList3(store));
16099
16165
  return;
16100
16166
  case "install":
16101
- writeSuccess(await handleInstall2(store, workspacePath, parsed));
16167
+ writeSuccess(await handleInstall2(store, workspacePath, parsed, catalogClient));
16102
16168
  return;
16103
16169
  case "uninstall":
16104
16170
  writeSuccess(await handleUninstall2(store, workspacePath, parsed));
@@ -16134,13 +16200,10 @@ async function handleList3(store) {
16134
16200
  ]
16135
16201
  };
16136
16202
  }
16137
- async function handleInstall2(store, workspacePath, parsed) {
16203
+ async function handleInstall2(store, _workspacePath, parsed, catalogClient) {
16138
16204
  const remoteId = getStringFlag(parsed, "id");
16139
16205
  if (!remoteId) {
16140
- throw createServicemeError(
16141
- "invalid_params",
16142
- "Expected --id <remoteSkillId>."
16143
- );
16206
+ throw createServicemeError("invalid_params", "Expected --id <remoteSkillId>.");
16144
16207
  }
16145
16208
  const skillId = normalizeSkillIdOrThrow2(store, remoteId);
16146
16209
  if (!getBooleanFlag(parsed, "confirmed")) {
@@ -16152,11 +16215,42 @@ async function handleInstall2(store, workspacePath, parsed) {
16152
16215
  message: "Install requires --confirmed."
16153
16216
  };
16154
16217
  }
16155
- const workspaceSkillDir = path11__namespace.join(
16156
- workspacePath,
16157
- store.getWorkspaceSkillPath(skillId)
16158
- );
16159
- await fs12__namespace.mkdir(workspaceSkillDir, { recursive: true });
16218
+ let files;
16219
+ try {
16220
+ files = await catalogClient.downloadSkill(remoteId);
16221
+ } catch (error) {
16222
+ const errCode = error?.code;
16223
+ const errMessage = error instanceof Error ? error.message : String(error);
16224
+ const isNotFound = errCode === "not_found" || /not found/i.test(errMessage);
16225
+ return {
16226
+ changed: false,
16227
+ scope: "workspace",
16228
+ skillId,
16229
+ status: "failed",
16230
+ message: isNotFound ? `Skill '${skillId}' not found in catalog.` : `Failed to download skill: ${errMessage}`
16231
+ };
16232
+ }
16233
+ if (files.length === 0) {
16234
+ return {
16235
+ changed: false,
16236
+ scope: "workspace",
16237
+ skillId,
16238
+ status: "failed",
16239
+ message: "Catalog returned no files for skill."
16240
+ };
16241
+ }
16242
+ try {
16243
+ await store.writeSkillFiles(skillId, "workspace", files);
16244
+ } catch (error) {
16245
+ const errMessage = error instanceof Error ? error.message : String(error);
16246
+ return {
16247
+ changed: false,
16248
+ scope: "workspace",
16249
+ skillId,
16250
+ status: "failed",
16251
+ message: `Failed to write skill files: ${errMessage}`
16252
+ };
16253
+ }
16160
16254
  return {
16161
16255
  changed: true,
16162
16256
  scope: "workspace",
@@ -16167,17 +16261,14 @@ async function handleInstall2(store, workspacePath, parsed) {
16167
16261
  async function handleUninstall2(store, workspacePath, parsed) {
16168
16262
  const remoteId = getStringFlag(parsed, "id");
16169
16263
  if (!remoteId) {
16170
- throw createServicemeError(
16171
- "invalid_params",
16172
- "Expected --id <remoteSkillId>."
16173
- );
16264
+ throw createServicemeError("invalid_params", "Expected --id <remoteSkillId>.");
16174
16265
  }
16175
16266
  const skillId = normalizeSkillIdOrThrow2(store, remoteId);
16176
- await fs12__namespace.rm(path11__namespace.join(workspacePath, store.getWorkspaceSkillPath(skillId)), {
16267
+ await fs18.rm(path14.join(workspacePath, store.getWorkspaceSkillPath(skillId)), {
16177
16268
  recursive: true,
16178
16269
  force: true
16179
16270
  });
16180
- await fs12__namespace.rm(store.getUserSkillPath(skillId), {
16271
+ await fs18.rm(store.getUserSkillPath(skillId), {
16181
16272
  recursive: true,
16182
16273
  force: true
16183
16274
  });
@@ -16196,16 +16287,10 @@ async function handleMove2(store, workspacePath, parsed) {
16196
16287
  );
16197
16288
  }
16198
16289
  if (to !== "workspace" && to !== "user") {
16199
- throw createServicemeError(
16200
- "invalid_params",
16201
- "Expected --to value to be workspace or user."
16202
- );
16290
+ throw createServicemeError("invalid_params", "Expected --to value to be workspace or user.");
16203
16291
  }
16204
16292
  const skillId = normalizeSkillIdOrThrow2(store, remoteId);
16205
- const workspacePathForSkill = path11__namespace.join(
16206
- workspacePath,
16207
- store.getWorkspaceSkillPath(skillId)
16208
- );
16293
+ const workspacePathForSkill = path14.join(workspacePath, store.getWorkspaceSkillPath(skillId));
16209
16294
  const userPathForSkill = store.getUserSkillPath(skillId);
16210
16295
  if (to === "user") {
16211
16296
  await moveDirectory(workspacePathForSkill, userPathForSkill);
@@ -16226,12 +16311,12 @@ async function handleMove2(store, workspacePath, parsed) {
16226
16311
  };
16227
16312
  }
16228
16313
  async function moveDirectory(fromPath, toPath) {
16229
- await fs12__namespace.mkdir(path11__namespace.dirname(toPath), { recursive: true });
16314
+ await fs18.mkdir(path14.dirname(toPath), { recursive: true });
16230
16315
  try {
16231
- await fs12__namespace.rename(fromPath, toPath);
16316
+ await fs18.rename(fromPath, toPath);
16232
16317
  } catch {
16233
- await fs12__namespace.cp(fromPath, toPath, { recursive: true });
16234
- await fs12__namespace.rm(fromPath, { recursive: true, force: true });
16318
+ await fs18.cp(fromPath, toPath, { recursive: true });
16319
+ await fs18.rm(fromPath, { recursive: true, force: true });
16235
16320
  }
16236
16321
  }
16237
16322
  async function handleMarketplace2(store, catalogClient) {
@@ -16283,10 +16368,7 @@ async function handleMarketplace2(store, catalogClient) {
16283
16368
  async function handleFind(store, catalogClient, parsed) {
16284
16369
  const query = getStringFlag(parsed, "query") ?? getStringFlag(parsed, "q");
16285
16370
  if (!query) {
16286
- throw createServicemeError(
16287
- "invalid_params",
16288
- "Expected --query <text> or --q <text>."
16289
- );
16371
+ throw createServicemeError("invalid_params", "Expected --query <text> or --q <text>.");
16290
16372
  }
16291
16373
  const marketplace = await handleMarketplace2(store, catalogClient);
16292
16374
  const loweredQuery = query.toLowerCase();
@@ -16312,8 +16394,12 @@ async function handleReconcile(store, reconciler) {
16312
16394
  installGate: "open"
16313
16395
  };
16314
16396
  }
16397
+ const firstWorkspaceSkillId = workspaceSkillIds[0];
16398
+ if (!firstWorkspaceSkillId) {
16399
+ throw createServicemeError("not_found", "No workspace skill id available for gate check.");
16400
+ }
16315
16401
  const gateCheck = await reconciler.mutate({
16316
- skillId: workspaceSkillIds[0],
16402
+ skillId: firstWorkspaceSkillId,
16317
16403
  targetScope: "workspace",
16318
16404
  action: "install",
16319
16405
  confirmed: false
@@ -16331,7 +16417,7 @@ async function handlePublishable(store, workspacePath) {
16331
16417
  skills: workspaceSkillIds.map((skillId) => ({
16332
16418
  id: skillId,
16333
16419
  displayName: skillId,
16334
- path: path11__namespace.join(workspacePath, store.getWorkspaceSkillPath(skillId))
16420
+ path: path14.join(workspacePath, store.getWorkspaceSkillPath(skillId))
16335
16421
  }))
16336
16422
  };
16337
16423
  }