xiaotime 0.6.1 → 0.8.0

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 (47) hide show
  1. package/dist/background.d.ts +47 -0
  2. package/dist/background.d.ts.map +1 -0
  3. package/dist/background.js +110 -0
  4. package/dist/background.js.map +1 -0
  5. package/dist/index.d.ts +2 -0
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +70 -1
  8. package/dist/index.js.map +1 -1
  9. package/dist/ink/App.d.ts +1 -0
  10. package/dist/ink/App.d.ts.map +1 -1
  11. package/dist/ink/App.js +11 -3
  12. package/dist/ink/App.js.map +1 -1
  13. package/dist/ink/runSessionInk.d.ts.map +1 -1
  14. package/dist/ink/runSessionInk.js +50 -2
  15. package/dist/ink/runSessionInk.js.map +1 -1
  16. package/dist/ink/store.d.ts +11 -0
  17. package/dist/ink/store.d.ts.map +1 -1
  18. package/dist/ink/store.js +12 -0
  19. package/dist/ink/store.js.map +1 -1
  20. package/dist/mcp.d.ts +94 -0
  21. package/dist/mcp.d.ts.map +1 -0
  22. package/dist/mcp.js +282 -0
  23. package/dist/mcp.js.map +1 -0
  24. package/dist/room_agent.d.ts +7 -0
  25. package/dist/room_agent.d.ts.map +1 -0
  26. package/dist/room_agent.js +395 -0
  27. package/dist/room_agent.js.map +1 -0
  28. package/dist/settings.d.ts +9 -1
  29. package/dist/settings.d.ts.map +1 -1
  30. package/dist/settings.js +46 -4
  31. package/dist/settings.js.map +1 -1
  32. package/dist/skills.d.ts +14 -0
  33. package/dist/skills.d.ts.map +1 -0
  34. package/dist/skills.js +112 -0
  35. package/dist/skills.js.map +1 -0
  36. package/dist/todos.d.ts +26 -0
  37. package/dist/todos.d.ts.map +1 -0
  38. package/dist/todos.js +55 -0
  39. package/dist/todos.js.map +1 -0
  40. package/dist/tools.d.ts +26 -0
  41. package/dist/tools.d.ts.map +1 -1
  42. package/dist/tools.js +496 -1
  43. package/dist/tools.js.map +1 -1
  44. package/dist/ws.d.ts.map +1 -1
  45. package/dist/ws.js +34 -2
  46. package/dist/ws.js.map +1 -1
  47. package/package.json +2 -1
package/dist/tools.js CHANGED
@@ -20,7 +20,10 @@ import * as path from "path";
20
20
  import * as child_process from "child_process";
21
21
  import chalk from "chalk";
22
22
  import { printFileDiff, printApprovalPrompt } from "./display.js";
23
- import { loadAllowlist, matchAllowlist, appendAllowlist, derivePattern, } from "./settings.js";
23
+ import { loadAllowlist, matchAllowlist, appendAllowlist, derivePattern, _urlHost, } from "./settings.js";
24
+ import { backgroundRegistry } from "./background.js";
25
+ import { setTodos, renderTodos } from "./todos.js";
26
+ import { listSkills, loadSkill, renderSkillList } from "./skills.js";
24
27
  export const TOOL_MANIFEST = [
25
28
  {
26
29
  name: "read_file",
@@ -102,6 +105,137 @@ export const TOOL_MANIFEST = [
102
105
  required: ["message"],
103
106
  },
104
107
  },
108
+ {
109
+ name: "edit",
110
+ description: "Make a surgical edit to a file: replace an exact string with new text, leaving the rest untouched. Prefer this over write_file for changing part of a file. old_string must appear exactly once unless replace_all is set. Shows a diff + prompts for approval.",
111
+ input_schema: {
112
+ type: "object",
113
+ properties: {
114
+ path: { type: "string", description: "Absolute or session-cwd-relative path to the file to edit" },
115
+ old_string: { type: "string", description: "The exact text to replace (must match the file exactly, including whitespace)" },
116
+ new_string: { type: "string", description: "The text to replace it with (must differ from old_string)" },
117
+ replace_all: { type: "boolean", description: "Replace every occurrence instead of requiring old_string to be unique (default false)" },
118
+ },
119
+ required: ["path", "old_string", "new_string"],
120
+ },
121
+ },
122
+ {
123
+ name: "grep",
124
+ description: "Search file contents for a regular expression across a directory tree. Returns matching lines as path:line:text. Read-only, no approval needed.",
125
+ input_schema: {
126
+ type: "object",
127
+ properties: {
128
+ pattern: { type: "string", description: "Regular expression to search for (JavaScript regex syntax)" },
129
+ path: { type: "string", description: "Directory to search under (default: session cwd)" },
130
+ glob: { type: "string", description: "Optional file-name glob to limit which files are searched (e.g. *.ts, **/*.py)" },
131
+ ignore_case: { type: "boolean", description: "Case-insensitive match (default false)" },
132
+ max_results: { type: "integer", description: "Maximum matching lines to return (default 200)" },
133
+ },
134
+ required: ["pattern"],
135
+ },
136
+ },
137
+ {
138
+ name: "glob",
139
+ description: "Find files whose path matches a glob pattern across a directory tree, sorted by path. Returns paths relative to the search directory. Read-only, no approval needed.",
140
+ input_schema: {
141
+ type: "object",
142
+ properties: {
143
+ pattern: { type: "string", description: "Glob pattern (e.g. **/*.ts, src/**/index.*)" },
144
+ path: { type: "string", description: "Directory to search under (default: session cwd)" },
145
+ },
146
+ required: ["pattern"],
147
+ },
148
+ },
149
+ {
150
+ name: "web_fetch",
151
+ description: "Fetch a web page or API over http(s) and return its text content (HTML is reduced to readable text). Shows the URL + prompts for approval, since the request leaves the user's machine.",
152
+ input_schema: {
153
+ type: "object",
154
+ properties: {
155
+ url: { type: "string", description: "Absolute http(s) URL to fetch" },
156
+ max_chars: { type: "integer", description: "Maximum characters of body text to return (default 20000)" },
157
+ },
158
+ required: ["url"],
159
+ },
160
+ },
161
+ {
162
+ name: "run_background",
163
+ description: "Start a long-running shell command in the background (a build, dev server, or test watcher) without blocking. Returns a shell_id — poll it with background_output and stop it with kill_background. Shows the command + prompts for approval.",
164
+ input_schema: {
165
+ type: "object",
166
+ properties: {
167
+ command: { type: "string", description: "Shell command line to run in the background" },
168
+ cwd: { type: "string", description: "Optional working directory (default: session cwd)" },
169
+ },
170
+ required: ["command"],
171
+ },
172
+ },
173
+ {
174
+ name: "background_output",
175
+ description: "Read output produced by a background command since the last read, plus its running/exited status. Read-only, no approval needed.",
176
+ input_schema: {
177
+ type: "object",
178
+ properties: {
179
+ shell_id: { type: "string", description: "The shell_id returned by run_background" },
180
+ },
181
+ required: ["shell_id"],
182
+ },
183
+ },
184
+ {
185
+ name: "kill_background",
186
+ description: "Terminate a background command started with run_background. No approval needed (you are stopping your own process).",
187
+ input_schema: {
188
+ type: "object",
189
+ properties: {
190
+ shell_id: { type: "string", description: "The shell_id returned by run_background" },
191
+ },
192
+ required: ["shell_id"],
193
+ },
194
+ },
195
+ {
196
+ name: "todo_write",
197
+ description: "Record or update the task list for a multi-step job. Pass the ENTIRE list every time (it replaces the previous one), each item an object { content, status } where status is pending, in_progress, or completed. Keep exactly one task in_progress. Read-only to the filesystem; no approval needed.",
198
+ input_schema: {
199
+ type: "object",
200
+ properties: {
201
+ todos: {
202
+ type: "array",
203
+ description: "Full task list — array of { content: string, status: \"pending\"|\"in_progress\"|\"completed\" }",
204
+ },
205
+ },
206
+ required: ["todos"],
207
+ },
208
+ },
209
+ {
210
+ name: "present_plan",
211
+ description: "Present a plan for the user to approve BEFORE you make any changes. Use this once you've finished researching and are ready to act — lay out the steps, then wait. The user approves or rejects; only proceed on approval. Always prompts (never auto-approved).",
212
+ input_schema: {
213
+ type: "object",
214
+ properties: {
215
+ plan: { type: "string", description: "The plan to execute, in markdown — the concrete steps you intend to take" },
216
+ },
217
+ required: ["plan"],
218
+ },
219
+ },
220
+ {
221
+ name: "list_skills",
222
+ description: "List the skills available in this project (./.claude/skills) and the user's global skills (~/.xiaotime/skills) — name + one-line description. Load one with load_skill. Read-only, no approval needed.",
223
+ input_schema: {
224
+ type: "object",
225
+ properties: {},
226
+ },
227
+ },
228
+ {
229
+ name: "load_skill",
230
+ description: "Load a local skill's full instructions by name (discover names with list_skills), then follow them. Read-only, no approval needed.",
231
+ input_schema: {
232
+ type: "object",
233
+ properties: {
234
+ name: { type: "string", description: "The skill name from list_skills" },
235
+ },
236
+ required: ["name"],
237
+ },
238
+ },
105
239
  ];
106
240
  // Session cwd — set on connect
107
241
  let sessionCwd = process.cwd();
@@ -300,6 +434,252 @@ export async function executeTool(call, ui) {
300
434
  console.log(chalk.hex("#a6e3a1")(" ✓ Committed") + _approvedSuffix(gate));
301
435
  return { tool_use_id, content: out, is_error: false };
302
436
  }
437
+ case "edit": {
438
+ const filePath = resolvePath(input.path);
439
+ const oldString = input.old_string;
440
+ const newString = input.new_string;
441
+ const replaceAll = input.replace_all;
442
+ if (!fs.existsSync(filePath)) {
443
+ return { tool_use_id, content: `File not found: ${filePath}`, is_error: true };
444
+ }
445
+ if (oldString === newString) {
446
+ return {
447
+ tool_use_id,
448
+ content: "old_string and new_string are identical — nothing to change.",
449
+ is_error: true,
450
+ };
451
+ }
452
+ const oldContent = fs.readFileSync(filePath, "utf-8");
453
+ const occurrences = _countOccurrences(oldContent, oldString);
454
+ if (occurrences === 0) {
455
+ return {
456
+ tool_use_id,
457
+ content: "old_string not found in file. It must match exactly, including whitespace and indentation.",
458
+ is_error: true,
459
+ };
460
+ }
461
+ if (occurrences > 1 && !replaceAll) {
462
+ return {
463
+ tool_use_id,
464
+ content: `old_string is not unique (${occurrences} matches). Add surrounding context to make it unique, or set replace_all: true.`,
465
+ is_error: true,
466
+ };
467
+ }
468
+ const newContent = replaceAll
469
+ ? oldContent.split(oldString).join(newString)
470
+ : _replaceFirst(oldContent, oldString, newString);
471
+ const replaced = replaceAll ? occurrences : 1;
472
+ // Show styled diff box before the approval gate (same as write_file)
473
+ printFileDiff(filePath, oldContent, newContent);
474
+ const gate = await _gateApproval(ui, "edit", input, `edit ${filePath}`, `Replacing ${replaced} occurrence${replaced === 1 ? "" : "s"}`);
475
+ if (!gate.approved) {
476
+ const tail = gate.rejectReason ? `: ${gate.rejectReason}` : ".";
477
+ return { tool_use_id, content: `Rejected by user${tail}`, is_error: false };
478
+ }
479
+ fs.writeFileSync(filePath, newContent, "utf-8");
480
+ console.log(chalk.hex("#a6e3a1")(" ✓ Edited") + _approvedSuffix(gate));
481
+ return {
482
+ tool_use_id,
483
+ content: `File edited: ${filePath} (${replaced} replacement${replaced === 1 ? "" : "s"})`,
484
+ is_error: false,
485
+ };
486
+ }
487
+ case "grep": {
488
+ const searchDir = input.path ? resolvePath(input.path) : sessionCwd;
489
+ const flags = input.ignore_case ? "i" : "";
490
+ let regex;
491
+ try {
492
+ regex = new RegExp(input.pattern, flags);
493
+ }
494
+ catch (e) {
495
+ return {
496
+ tool_use_id,
497
+ content: `Invalid regular expression: ${e.message}`,
498
+ is_error: true,
499
+ };
500
+ }
501
+ const globPat = input.glob;
502
+ const max = input.max_results || 200;
503
+ const { matches, truncated } = grepTree(searchDir, regex, globPat, max);
504
+ console.log(chalk.dim(` [grep] ${input.pattern} in ${searchDir} (${matches.length} match${matches.length === 1 ? "" : "es"})`));
505
+ const marker = truncated
506
+ ? `\n... (truncated to ${max} matches — narrow the pattern or glob)`
507
+ : "";
508
+ return {
509
+ tool_use_id,
510
+ content: (matches.join("\n") || "(no matches)") + marker,
511
+ is_error: false,
512
+ };
513
+ }
514
+ case "glob": {
515
+ const searchDir = input.path ? resolvePath(input.path) : sessionCwd;
516
+ const cap = _listDirectoryMax();
517
+ let entries = listRecursive(searchDir, input.pattern, cap + 1);
518
+ entries.sort();
519
+ let truncated = false;
520
+ if (entries.length > cap) {
521
+ entries = entries.slice(0, cap);
522
+ truncated = true;
523
+ }
524
+ console.log(chalk.dim(` [glob] ${input.pattern} in ${searchDir} (${entries.length} file${entries.length === 1 ? "" : "s"})`));
525
+ const marker = truncated ? `\n... (truncated to ${cap})` : "";
526
+ return {
527
+ tool_use_id,
528
+ content: (entries.join("\n") || "(no matches)") + marker,
529
+ is_error: false,
530
+ };
531
+ }
532
+ case "web_fetch": {
533
+ const url = String(input.url ?? "").trim();
534
+ const host = _urlHost(url);
535
+ if (host === null) {
536
+ return {
537
+ tool_use_id,
538
+ content: "web_fetch requires an absolute http(s) URL.",
539
+ is_error: true,
540
+ };
541
+ }
542
+ const maxChars = input.max_chars || 20000;
543
+ const gate = await _gateApproval(ui, "web_fetch", input, `web_fetch ${host}`, url);
544
+ if (!gate.approved) {
545
+ const tail = gate.rejectReason ? `: ${gate.rejectReason}` : ".";
546
+ return { tool_use_id, content: `Rejected by user${tail}`, is_error: false };
547
+ }
548
+ let body;
549
+ try {
550
+ const controller = new AbortController();
551
+ const timer = setTimeout(() => controller.abort(), 30000);
552
+ const resp = await fetch(url, {
553
+ signal: controller.signal,
554
+ redirect: "follow",
555
+ headers: { "User-Agent": "xiaotime-cli" },
556
+ });
557
+ clearTimeout(timer);
558
+ if (!resp.ok) {
559
+ return {
560
+ tool_use_id,
561
+ content: `HTTP ${resp.status} ${resp.statusText} for ${url}`,
562
+ is_error: true,
563
+ };
564
+ }
565
+ const ctype = resp.headers.get("content-type") || "";
566
+ const raw = await resp.text();
567
+ body = /html/i.test(ctype) ? stripHtml(raw) : raw;
568
+ }
569
+ catch (e) {
570
+ return {
571
+ tool_use_id,
572
+ content: `Fetch failed: ${e.message}`,
573
+ is_error: true,
574
+ };
575
+ }
576
+ const truncated = body.length > maxChars;
577
+ console.log(chalk.hex("#a6e3a1")(" ✓ Fetched") +
578
+ _approvedSuffix(gate) +
579
+ chalk.dim(` (${body.length} chars)`));
580
+ return {
581
+ tool_use_id,
582
+ content: body.slice(0, maxChars) + (truncated ? `\n... (truncated to ${maxChars} chars)` : ""),
583
+ is_error: false,
584
+ };
585
+ }
586
+ case "run_background": {
587
+ const command = input.command;
588
+ const cwd = input.cwd ? resolvePath(input.cwd) : sessionCwd;
589
+ const gate = await _gateApproval(ui, "run_background", input, `run_background`, `${command}\ncwd: ${cwd}`);
590
+ if (!gate.approved) {
591
+ const tail = gate.rejectReason ? `: ${gate.rejectReason}` : ".";
592
+ return { tool_use_id, content: `Rejected by user${tail}`, is_error: false };
593
+ }
594
+ const proc = backgroundRegistry.start(command, cwd);
595
+ console.log(chalk.hex("#a6e3a1")(` ✓ Background started (${proc.id})`) + _approvedSuffix(gate));
596
+ return {
597
+ tool_use_id,
598
+ content: `Background command started: ${proc.id}. Poll output with background_output (shell_id "${proc.id}"); stop it with kill_background.`,
599
+ is_error: false,
600
+ };
601
+ }
602
+ case "background_output": {
603
+ const shellId = input.shell_id;
604
+ const read = backgroundRegistry.readNew(shellId);
605
+ if (read === null) {
606
+ return { tool_use_id, content: `No such background command: ${shellId}`, is_error: true };
607
+ }
608
+ console.log(chalk.dim(` [background_output] ${shellId} (${read.status})`));
609
+ const exitNote = read.status === "running"
610
+ ? ""
611
+ : `\n[${read.status}${read.exitCode !== null ? `, exit ${read.exitCode}` : ""}]`;
612
+ return {
613
+ tool_use_id,
614
+ content: (read.text || "(no new output)") + exitNote,
615
+ is_error: false,
616
+ };
617
+ }
618
+ case "kill_background": {
619
+ const shellId = input.shell_id;
620
+ const ok = backgroundRegistry.kill(shellId);
621
+ if (!ok) {
622
+ return { tool_use_id, content: `No such background command: ${shellId}`, is_error: true };
623
+ }
624
+ console.log(chalk.dim(` [kill_background] ${shellId}`));
625
+ return { tool_use_id, content: `Killed background command: ${shellId}`, is_error: false };
626
+ }
627
+ case "todo_write": {
628
+ let rendered;
629
+ try {
630
+ const list = setTodos(input.todos);
631
+ rendered = renderTodos(list);
632
+ }
633
+ catch (e) {
634
+ return { tool_use_id, content: e.message, is_error: true };
635
+ }
636
+ console.log(chalk.dim(` [todo_write]\n${rendered.split("\n").map((l) => " " + l).join("\n")}`));
637
+ return { tool_use_id, content: rendered, is_error: false };
638
+ }
639
+ case "present_plan": {
640
+ const plan = String(input.plan ?? "").trim();
641
+ if (!plan) {
642
+ return { tool_use_id, content: "present_plan requires a non-empty plan.", is_error: true };
643
+ }
644
+ // Always prompt — a plan is unique, so it is never allowlisted.
645
+ printApprovalPrompt("Plan — approve before I act?", plan);
646
+ const decision = await ui.promptApprovalMenu("");
647
+ if (!decision.approved) {
648
+ const tail = decision.rejectReason ? `: ${decision.rejectReason}` : ".";
649
+ return {
650
+ tool_use_id,
651
+ content: `Plan rejected by user${tail} Do not proceed — revise the plan and present again.`,
652
+ is_error: false,
653
+ };
654
+ }
655
+ console.log(chalk.hex("#a6e3a1")(" ✓ Plan approved"));
656
+ return {
657
+ tool_use_id,
658
+ content: "Plan approved by user. Proceed with the steps as presented.",
659
+ is_error: false,
660
+ };
661
+ }
662
+ case "list_skills": {
663
+ const skills = listSkills(sessionCwd);
664
+ console.log(chalk.dim(` [list_skills] ${skills.length} skill${skills.length === 1 ? "" : "s"}`));
665
+ return { tool_use_id, content: renderSkillList(skills), is_error: false };
666
+ }
667
+ case "load_skill": {
668
+ const skillName = String(input.name ?? "").trim();
669
+ if (!skillName) {
670
+ return { tool_use_id, content: "load_skill requires a skill name.", is_error: true };
671
+ }
672
+ const content = loadSkill(skillName, sessionCwd);
673
+ if (content === null) {
674
+ return {
675
+ tool_use_id,
676
+ content: `No local skill named "${skillName}". Use list_skills to see what's available.`,
677
+ is_error: true,
678
+ };
679
+ }
680
+ console.log(chalk.dim(` [load_skill] ${skillName}`));
681
+ return { tool_use_id, content, is_error: false };
682
+ }
303
683
  default:
304
684
  return {
305
685
  tool_use_id,
@@ -358,4 +738,119 @@ export function globToRegex(glob) {
358
738
  .replace(/\?/g, "[^/]");
359
739
  return new RegExp(escaped);
360
740
  }
741
+ /** Count non-overlapping occurrences of `needle` in `hay`. */
742
+ export function _countOccurrences(hay, needle) {
743
+ if (needle === "")
744
+ return 0;
745
+ let count = 0;
746
+ let i = 0;
747
+ while ((i = hay.indexOf(needle, i)) !== -1) {
748
+ count++;
749
+ i += needle.length;
750
+ }
751
+ return count;
752
+ }
753
+ /**
754
+ * Replace the first literal occurrence of `needle` with `repl`.
755
+ * Uses index-splicing (not String.replace) so `$&`/`$1` sequences in
756
+ * `repl` are inserted verbatim rather than interpreted as regex
757
+ * back-references (#14608 — the surgical-edit correctness trap).
758
+ */
759
+ export function _replaceFirst(hay, needle, repl) {
760
+ const i = hay.indexOf(needle);
761
+ if (i === -1)
762
+ return hay;
763
+ return hay.slice(0, i) + repl + hay.slice(i + needle.length);
764
+ }
765
+ /**
766
+ * Recursively grep a directory tree. Skips dotfiles, node_modules,
767
+ * binary files (any NUL byte), and files larger than 2 MB. Returns
768
+ * `relpath:lineno:linetext` matches, capped at `cap`. Directory entries
769
+ * are visited in sorted order for deterministic output.
770
+ */
771
+ export function grepTree(dir, regex, glob, cap = 200) {
772
+ const matches = [];
773
+ const globRe = glob ? globToRegex(glob) : null;
774
+ const MAX_FILE = 2 * 1024 * 1024;
775
+ let truncated = false;
776
+ function walk(current, rel) {
777
+ let entries;
778
+ try {
779
+ entries = fs.readdirSync(current);
780
+ }
781
+ catch {
782
+ return false;
783
+ }
784
+ entries.sort();
785
+ for (const entry of entries) {
786
+ if (entry.startsWith("."))
787
+ continue;
788
+ if (entry === "node_modules")
789
+ continue;
790
+ const full = path.join(current, entry);
791
+ const relPath = rel ? `${rel}/${entry}` : entry;
792
+ let stat;
793
+ try {
794
+ stat = fs.statSync(full);
795
+ }
796
+ catch {
797
+ continue;
798
+ }
799
+ if (stat.isDirectory()) {
800
+ if (walk(full, relPath))
801
+ return true;
802
+ }
803
+ else {
804
+ if (globRe && !globRe.test(relPath))
805
+ continue;
806
+ if (stat.size > MAX_FILE)
807
+ continue;
808
+ let content;
809
+ try {
810
+ content = fs.readFileSync(full, "utf-8");
811
+ }
812
+ catch {
813
+ continue;
814
+ }
815
+ if (/\u0000/.test(content))
816
+ continue; // binary (any NUL byte)
817
+ const lines = content.split("\n");
818
+ for (let i = 0; i < lines.length; i++) {
819
+ if (regex.test(lines[i])) {
820
+ matches.push(`${relPath}:${i + 1}:${lines[i]}`);
821
+ if (matches.length >= cap) {
822
+ truncated = true;
823
+ return true;
824
+ }
825
+ }
826
+ }
827
+ }
828
+ }
829
+ return false;
830
+ }
831
+ walk(dir, "");
832
+ return { matches, truncated };
833
+ }
834
+ /**
835
+ * Reduce an HTML document to readable text: drop script/style/comments
836
+ * and tags, decode the common named entities, and collapse whitespace.
837
+ * Intentionally minimal — enough to make a fetched page legible to the
838
+ * agent, not a full HTML parser.
839
+ */
840
+ export function stripHtml(html) {
841
+ return html
842
+ .replace(/<script[\s\S]*?<\/script>/gi, " ")
843
+ .replace(/<style[\s\S]*?<\/style>/gi, " ")
844
+ .replace(/<!--[\s\S]*?-->/g, " ")
845
+ .replace(/<[^>]+>/g, " ")
846
+ .replace(/&nbsp;/g, " ")
847
+ .replace(/&amp;/g, "&")
848
+ .replace(/&lt;/g, "<")
849
+ .replace(/&gt;/g, ">")
850
+ .replace(/&quot;/g, '"')
851
+ .replace(/&#39;/g, "'")
852
+ .replace(/[ \t]+/g, " ")
853
+ .replace(/\n\s*\n\s*\n+/g, "\n\n")
854
+ .trim();
855
+ }
361
856
  //# sourceMappingURL=tools.js.map
package/dist/tools.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
package/dist/ws.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ws.d.ts","sourceRoot":"","sources":["../src/ws.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAiGH,wBAAsB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA4CpE;AAkBD,wBAAsB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAsSjE"}
1
+ {"version":3,"file":"ws.d.ts","sourceRoot":"","sources":["../src/ws.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAmGH,wBAAsB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA4CpE;AAkBD,wBAAsB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA0UjE"}