@zhijiewang/openharness 2.0.0 → 2.3.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 (235) hide show
  1. package/README.md +4 -4
  2. package/dist/DeferredTool.js +3 -1
  3. package/dist/Tool.d.ts +1 -1
  4. package/dist/agents/roles.js +58 -62
  5. package/dist/commands/cybergotchi.d.ts +1 -1
  6. package/dist/commands/cybergotchi.js +30 -30
  7. package/dist/commands/index.js +360 -122
  8. package/dist/components/App.d.ts +1 -1
  9. package/dist/components/App.js +6 -6
  10. package/dist/components/CompanionFooter.d.ts +1 -1
  11. package/dist/components/CompanionFooter.js +6 -8
  12. package/dist/components/CybergotchiBubble.js +5 -5
  13. package/dist/components/CybergotchiPanel.d.ts +1 -1
  14. package/dist/components/CybergotchiPanel.js +7 -7
  15. package/dist/components/CybergotchiPanelConnected.js +2 -2
  16. package/dist/components/CybergotchiSetup.js +26 -24
  17. package/dist/components/CybergotchiSprite.d.ts +1 -1
  18. package/dist/components/CybergotchiSprite.js +8 -12
  19. package/dist/components/DiffView.d.ts +1 -1
  20. package/dist/components/DiffView.js +10 -10
  21. package/dist/components/ErrorBoundary.d.ts +1 -1
  22. package/dist/components/ErrorBoundary.js +1 -1
  23. package/dist/components/InitWizard.js +65 -33
  24. package/dist/components/Markdown.js +2 -4
  25. package/dist/components/Messages.js +4 -4
  26. package/dist/components/PermissionPrompt.d.ts +1 -1
  27. package/dist/components/PermissionPrompt.js +15 -17
  28. package/dist/components/REPL.d.ts +1 -1
  29. package/dist/components/REPL.js +74 -49
  30. package/dist/components/Spinner.js +2 -2
  31. package/dist/components/TextInput.js +35 -29
  32. package/dist/components/ToolCallDisplay.js +3 -5
  33. package/dist/cybergotchi/bones.d.ts +1 -1
  34. package/dist/cybergotchi/bones.js +8 -8
  35. package/dist/cybergotchi/config.d.ts +2 -2
  36. package/dist/cybergotchi/config.js +13 -13
  37. package/dist/cybergotchi/events.d.ts +5 -5
  38. package/dist/cybergotchi/events.js +7 -7
  39. package/dist/cybergotchi/needs.d.ts +2 -2
  40. package/dist/cybergotchi/needs.js +7 -9
  41. package/dist/cybergotchi/personality.d.ts +2 -2
  42. package/dist/cybergotchi/personality.js +2 -2
  43. package/dist/cybergotchi/species.d.ts +1 -1
  44. package/dist/cybergotchi/species.js +145 -217
  45. package/dist/cybergotchi/speech.d.ts +2 -2
  46. package/dist/cybergotchi/speech.js +43 -43
  47. package/dist/cybergotchi/types.d.ts +4 -4
  48. package/dist/cybergotchi/types.js +26 -26
  49. package/dist/cybergotchi/useCybergotchi.d.ts +1 -1
  50. package/dist/cybergotchi/useCybergotchi.js +29 -25
  51. package/dist/git/index.js +11 -9
  52. package/dist/harness/checkpoints.js +29 -21
  53. package/dist/harness/config.d.ts +12 -2
  54. package/dist/harness/config.js +15 -9
  55. package/dist/harness/context-warning.d.ts +1 -1
  56. package/dist/harness/context-warning.js +1 -1
  57. package/dist/harness/cost.js +1 -1
  58. package/dist/harness/credentials.js +13 -13
  59. package/dist/harness/hooks.js +7 -5
  60. package/dist/harness/keybindings.js +20 -18
  61. package/dist/harness/marketplace.d.ts +3 -3
  62. package/dist/harness/marketplace.js +55 -42
  63. package/dist/harness/memory.d.ts +23 -5
  64. package/dist/harness/memory.js +142 -41
  65. package/dist/harness/onboarding.js +30 -10
  66. package/dist/harness/plugins.d.ts +9 -1
  67. package/dist/harness/plugins.js +54 -30
  68. package/dist/harness/rules.js +12 -7
  69. package/dist/harness/sandbox.d.ts +34 -0
  70. package/dist/harness/sandbox.js +104 -0
  71. package/dist/harness/session-db.d.ts +55 -0
  72. package/dist/harness/session-db.js +165 -0
  73. package/dist/harness/session.d.ts +1 -1
  74. package/dist/harness/session.js +34 -15
  75. package/dist/harness/store.d.ts +3 -3
  76. package/dist/harness/store.js +6 -4
  77. package/dist/harness/submit-handler.d.ts +4 -4
  78. package/dist/harness/submit-handler.js +57 -21
  79. package/dist/harness/telemetry.d.ts +1 -1
  80. package/dist/harness/telemetry.js +23 -19
  81. package/dist/harness/traces.d.ts +2 -2
  82. package/dist/harness/traces.js +44 -33
  83. package/dist/harness/verification.d.ts +1 -1
  84. package/dist/harness/verification.js +50 -44
  85. package/dist/lsp/client.js +44 -40
  86. package/dist/main.js +100 -59
  87. package/dist/mcp/DeferredMcpTool.d.ts +4 -4
  88. package/dist/mcp/DeferredMcpTool.js +9 -5
  89. package/dist/mcp/McpTool.d.ts +4 -4
  90. package/dist/mcp/McpTool.js +8 -4
  91. package/dist/mcp/client.d.ts +2 -2
  92. package/dist/mcp/client.js +21 -21
  93. package/dist/mcp/loader.d.ts +1 -1
  94. package/dist/mcp/loader.js +17 -12
  95. package/dist/mcp/registry.d.ts +3 -3
  96. package/dist/mcp/registry.js +97 -97
  97. package/dist/mcp/schema.d.ts +1 -1
  98. package/dist/mcp/schema.js +16 -16
  99. package/dist/mcp/server.d.ts +1 -1
  100. package/dist/mcp/server.js +21 -21
  101. package/dist/mcp/types.d.ts +3 -3
  102. package/dist/providers/anthropic.d.ts +2 -2
  103. package/dist/providers/anthropic.js +10 -9
  104. package/dist/providers/base.d.ts +1 -1
  105. package/dist/providers/index.js +10 -3
  106. package/dist/providers/llamacpp.d.ts +2 -2
  107. package/dist/providers/llamacpp.js +1 -3
  108. package/dist/providers/ollama.d.ts +2 -2
  109. package/dist/providers/ollama.js +3 -4
  110. package/dist/providers/openai.d.ts +2 -2
  111. package/dist/providers/openai.js +3 -5
  112. package/dist/providers/openrouter.d.ts +2 -2
  113. package/dist/providers/router.d.ts +1 -1
  114. package/dist/providers/router.js +7 -7
  115. package/dist/query/compress.d.ts +2 -2
  116. package/dist/query/compress.js +22 -21
  117. package/dist/query/context-manager.d.ts +2 -2
  118. package/dist/query/context-manager.js +8 -11
  119. package/dist/query/errors.js +1 -1
  120. package/dist/query/index.d.ts +1 -1
  121. package/dist/query/index.js +30 -22
  122. package/dist/query/tools.js +15 -12
  123. package/dist/query/types.d.ts +1 -1
  124. package/dist/query.d.ts +1 -1
  125. package/dist/query.js +1 -1
  126. package/dist/remote/auth.d.ts +2 -2
  127. package/dist/remote/auth.js +8 -8
  128. package/dist/remote/server.d.ts +3 -3
  129. package/dist/remote/server.js +60 -60
  130. package/dist/renderer/cells.js +9 -9
  131. package/dist/renderer/colors.js +24 -6
  132. package/dist/renderer/diff.d.ts +2 -2
  133. package/dist/renderer/diff.js +27 -19
  134. package/dist/renderer/differ.d.ts +1 -1
  135. package/dist/renderer/differ.js +9 -9
  136. package/dist/renderer/image.js +19 -19
  137. package/dist/renderer/index.d.ts +6 -6
  138. package/dist/renderer/index.js +163 -93
  139. package/dist/renderer/input.js +66 -48
  140. package/dist/renderer/layout.d.ts +6 -6
  141. package/dist/renderer/layout.js +163 -124
  142. package/dist/renderer/markdown.d.ts +2 -2
  143. package/dist/renderer/markdown.js +173 -54
  144. package/dist/renderer/session-browser.d.ts +2 -2
  145. package/dist/renderer/session-browser.js +19 -21
  146. package/dist/repl.d.ts +5 -5
  147. package/dist/repl.js +300 -198
  148. package/dist/sdk/index.d.ts +8 -7
  149. package/dist/sdk/index.js +59 -42
  150. package/dist/services/AgentDispatcher.d.ts +3 -3
  151. package/dist/services/AgentDispatcher.js +33 -29
  152. package/dist/services/CronExecutor.d.ts +4 -4
  153. package/dist/services/CronExecutor.js +12 -8
  154. package/dist/services/EvaluatorLoop.d.ts +3 -3
  155. package/dist/services/EvaluatorLoop.js +29 -21
  156. package/dist/services/MetaHarness.d.ts +1 -1
  157. package/dist/services/MetaHarness.js +41 -33
  158. package/dist/services/PipelineExecutor.d.ts +1 -1
  159. package/dist/services/PipelineExecutor.js +23 -25
  160. package/dist/services/SkillExtractor.d.ts +43 -0
  161. package/dist/services/SkillExtractor.js +143 -0
  162. package/dist/services/StreamingToolExecutor.d.ts +2 -2
  163. package/dist/services/StreamingToolExecutor.js +11 -7
  164. package/dist/services/a2a.d.ts +8 -8
  165. package/dist/services/a2a.js +44 -34
  166. package/dist/services/agent-messaging.d.ts +33 -15
  167. package/dist/services/agent-messaging.js +65 -13
  168. package/dist/services/cron.js +16 -16
  169. package/dist/tools/AgentTool/index.d.ts +5 -2
  170. package/dist/tools/AgentTool/index.js +35 -15
  171. package/dist/tools/AskUserTool/index.js +1 -1
  172. package/dist/tools/BashTool/index.d.ts +2 -2
  173. package/dist/tools/BashTool/index.js +18 -10
  174. package/dist/tools/CronTool/index.d.ts +2 -2
  175. package/dist/tools/CronTool/index.js +30 -12
  176. package/dist/tools/DiagnosticsTool/index.js +28 -22
  177. package/dist/tools/EnterPlanModeTool/index.js +93 -14
  178. package/dist/tools/EnterWorktreeTool/index.js +7 -3
  179. package/dist/tools/ExitPlanModeTool/index.d.ts +22 -1
  180. package/dist/tools/ExitPlanModeTool/index.js +20 -5
  181. package/dist/tools/ExitWorktreeTool/index.js +11 -4
  182. package/dist/tools/FileEditTool/index.js +3 -5
  183. package/dist/tools/FileReadTool/index.js +16 -10
  184. package/dist/tools/FileWriteTool/index.js +2 -2
  185. package/dist/tools/GlobTool/index.js +5 -9
  186. package/dist/tools/GrepTool/index.d.ts +2 -2
  187. package/dist/tools/GrepTool/index.js +14 -9
  188. package/dist/tools/ImageReadTool/index.js +2 -2
  189. package/dist/tools/KillProcessTool/index.js +11 -7
  190. package/dist/tools/LSTool/index.js +3 -3
  191. package/dist/tools/MemoryTool/index.d.ts +11 -11
  192. package/dist/tools/MemoryTool/index.js +28 -14
  193. package/dist/tools/MonitorTool/index.d.ts +2 -2
  194. package/dist/tools/MonitorTool/index.js +24 -19
  195. package/dist/tools/MultiEditTool/index.js +9 -5
  196. package/dist/tools/NotebookEditTool/index.js +3 -3
  197. package/dist/tools/ParallelAgentTool/index.d.ts +4 -4
  198. package/dist/tools/ParallelAgentTool/index.js +12 -6
  199. package/dist/tools/PipelineTool/index.d.ts +4 -4
  200. package/dist/tools/PipelineTool/index.js +3 -3
  201. package/dist/tools/PowerShellTool/index.js +10 -6
  202. package/dist/tools/RemoteTriggerTool/index.js +8 -4
  203. package/dist/tools/ScheduleWakeupTool/index.d.ts +42 -0
  204. package/dist/tools/ScheduleWakeupTool/index.js +115 -0
  205. package/dist/tools/SendMessageTool/index.js +25 -7
  206. package/dist/tools/SessionSearchTool/index.d.ts +15 -0
  207. package/dist/tools/SessionSearchTool/index.js +36 -0
  208. package/dist/tools/SkillTool/index.d.ts +3 -0
  209. package/dist/tools/SkillTool/index.js +39 -9
  210. package/dist/tools/TaskCreateTool/index.d.ts +2 -2
  211. package/dist/tools/TaskCreateTool/index.js +2 -2
  212. package/dist/tools/TaskGetTool/index.js +2 -2
  213. package/dist/tools/TaskListTool/index.js +3 -5
  214. package/dist/tools/TaskOutputTool/index.js +2 -2
  215. package/dist/tools/TaskStopTool/index.js +3 -3
  216. package/dist/tools/TaskUpdateTool/index.d.ts +4 -4
  217. package/dist/tools/TaskUpdateTool/index.js +2 -2
  218. package/dist/tools/ToolSearchTool/index.js +9 -6
  219. package/dist/tools/WebFetchTool/index.js +1 -1
  220. package/dist/tools/WebSearchTool/index.js +2 -6
  221. package/dist/tools.js +31 -30
  222. package/dist/types/permissions.js +15 -9
  223. package/dist/utils/bash-safety.d.ts +1 -1
  224. package/dist/utils/bash-safety.js +64 -54
  225. package/dist/utils/diff-algorithm.d.ts +3 -3
  226. package/dist/utils/diff-algorithm.js +7 -7
  227. package/dist/utils/fs.js +3 -3
  228. package/dist/utils/safe-env.js +1 -1
  229. package/dist/utils/theme-data.d.ts +1 -1
  230. package/dist/utils/theme-data.js +1 -1
  231. package/dist/utils/theme.d.ts +1 -1
  232. package/dist/utils/theme.js +1 -1
  233. package/dist/utils/tool-summary.d.ts +1 -1
  234. package/dist/utils/tool-summary.js +27 -9
  235. package/package.json +10 -3
@@ -2,7 +2,7 @@
2
2
  function p(s) {
3
3
  if (s.length >= 12)
4
4
  return s.slice(0, 12);
5
- return s + ' '.repeat(12 - s.length);
5
+ return s + " ".repeat(12 - s.length);
6
6
  }
7
7
  // Build a frame: 5 lines of 12 chars
8
8
  function f(...lines) {
@@ -10,344 +10,272 @@ function f(...lines) {
10
10
  }
11
11
  // ─── Duck ───────────────────────────────────────
12
12
  const duck = {
13
- name: 'duck',
14
- label: 'Duck',
15
- traitHint: 'Curious and quacky. Gets things done.',
13
+ name: "duck",
14
+ label: "Duck",
15
+ traitHint: "Curious and quacky. Gets things done.",
16
16
  frames: {
17
17
  idle: [
18
- f(' .__. ', ' ( {E} ) ', ' \\ V / ', ' /|~~~|\\ ', ' /_| |_\\ '),
19
- f(' .__. ', ' ( {E} ) ', ' \\ V / ', ' /|~~~|\\ ', ' \\_| |_/ '),
20
- f(' .__. ', ' ( {E} ) ', ' \\ v / ', ' /|~~~|\\ ', ' /_| |_\\ '),
21
- ],
22
- happy: [
23
- f(' .__. ', ' ( {E} ) ', ' \\ ^ / ', ' /|~~~|\\ ', ' /_| |_\\ '),
24
- ],
25
- alarm: [
26
- f(' .!!. ', ' ( {E} ) ', ' \\ O / ', ' /|~~~|\\ ', ' /_| |_\\ '),
18
+ f(" .__. ", " ( {E} ) ", " \\ V / ", " /|~~~|\\ ", " /_| |_\\ "),
19
+ f(" .__. ", " ( {E} ) ", " \\ V / ", " /|~~~|\\ ", " \\_| |_/ "),
20
+ f(" .__. ", " ( {E} ) ", " \\ v / ", " /|~~~|\\ ", " /_| |_\\ "),
27
21
  ],
22
+ happy: [f(" .__. ", " ( {E} ) ", " \\ ^ / ", " /|~~~|\\ ", " /_| |_\\ ")],
23
+ alarm: [f(" .!!. ", " ( {E} ) ", " \\ O / ", " /|~~~|\\ ", " /_| |_\\ ")],
28
24
  },
29
25
  };
30
26
  // ─── Goose ──────────────────────────────────────
31
27
  const goose = {
32
- name: 'goose',
33
- label: 'Goose',
34
- traitHint: 'Chaotic energy. Honks at bugs.',
28
+ name: "goose",
29
+ label: "Goose",
30
+ traitHint: "Chaotic energy. Honks at bugs.",
35
31
  frames: {
36
32
  idle: [
37
- f(' _/~ ', ' / {E} ) ', ' | <> | ', ' | ~~ | ', ' \\_||_/ '),
38
- f(' _/~ ', ' / {E} ) ', ' | <> | ', ' | ~~ | ', ' \\_||_/ ~ '),
39
- f(' _/~~ ', ' / {E} ) ', ' | <> | ', ' | ~~ | ', ' \\_||_/ '),
40
- ],
41
- happy: [
42
- f(' _/~ ! ', ' / {E} ) ', ' | ^> | ', ' | ~~ | ', ' \\_||_/ '),
43
- ],
44
- alarm: [
45
- f(' !_/~! ', ' / {E} ) ', ' | OO | ', ' | ~~ | ', ' \\_||_/ '),
33
+ f(" _/~ ", " / {E} ) ", " | <> | ", " | ~~ | ", " \\_||_/ "),
34
+ f(" _/~ ", " / {E} ) ", " | <> | ", " | ~~ | ", " \\_||_/ ~ "),
35
+ f(" _/~~ ", " / {E} ) ", " | <> | ", " | ~~ | ", " \\_||_/ "),
46
36
  ],
37
+ happy: [f(" _/~ ! ", " / {E} ) ", " | ^> | ", " | ~~ | ", " \\_||_/ ")],
38
+ alarm: [f(" !_/~! ", " / {E} ) ", " | OO | ", " | ~~ | ", " \\_||_/ ")],
47
39
  },
48
40
  };
49
41
  // ─── Cat ────────────────────────────────────────
50
42
  const cat = {
51
- name: 'cat',
52
- label: 'Cat',
53
- traitHint: 'Independent. Judges your code silently.',
43
+ name: "cat",
44
+ label: "Cat",
45
+ traitHint: "Independent. Judges your code silently.",
54
46
  frames: {
55
47
  idle: [
56
- f(' /\\ /\\ ', '( {E} ) ', ' \\ ^ / ', ' |~| ', ' _/ \\_ '),
57
- f(' /\\ /\\ ', '( {E} ) ', ' \\ ^ / ', ' |~| ~ ', ' _/ \\_ / '),
58
- f(' /\\ /\\ ', '( {E} ) ', ' \\ . / ', ' |~| ', ' _/ \\_ '),
59
- ],
60
- happy: [
61
- f(' /\\ /\\ ', '( {E} ) ', ' \\ w / ', ' |~| ', ' _/ \\_ '),
62
- ],
63
- alarm: [
64
- f(' /! !\\ ', '( {E} ) ', ' \\ ! / ', ' |~| ', ' _/ \\_ '),
48
+ f(" /\\ /\\ ", "( {E} ) ", " \\ ^ / ", " |~| ", " _/ \\_ "),
49
+ f(" /\\ /\\ ", "( {E} ) ", " \\ ^ / ", " |~| ~ ", " _/ \\_ / "),
50
+ f(" /\\ /\\ ", "( {E} ) ", " \\ . / ", " |~| ", " _/ \\_ "),
65
51
  ],
52
+ happy: [f(" /\\ /\\ ", "( {E} ) ", " \\ w / ", " |~| ", " _/ \\_ ")],
53
+ alarm: [f(" /! !\\ ", "( {E} ) ", " \\ ! / ", " |~| ", " _/ \\_ ")],
66
54
  },
67
55
  };
68
56
  // ─── Rabbit ─────────────────────────────────────
69
57
  const rabbit = {
70
- name: 'rabbit',
71
- label: 'Rabbit',
72
- traitHint: 'Fast learner. Hops between tasks.',
58
+ name: "rabbit",
59
+ label: "Rabbit",
60
+ traitHint: "Fast learner. Hops between tasks.",
73
61
  frames: {
74
62
  idle: [
75
- f(' (\\ /) ', ' ( {E} ) ', ' ( > ) ', ' /| |\\ ', ' d_ _b '),
76
- f(' (\\ /) ', ' ( {E} ) ', ' ( > ) ', ' /| |\\ ', ' d_ _b '),
77
- f(' (\\ /) ', ' ( {E} ) ', ' ( . ) ', ' /| |\\ ', ' d_ _b '),
78
- ],
79
- happy: [
80
- f(' (\\ /) ', ' ( {E} ) ', ' ( ^ ) ', ' /| |\\ ', ' d_ _b '),
81
- ],
82
- alarm: [
83
- f(' (! !) ', ' ( {E} ) ', ' ( O ) ', ' /| |\\ ', ' d_ _b '),
63
+ f(" (\\ /) ", " ( {E} ) ", " ( > ) ", " /| |\\ ", " d_ _b "),
64
+ f(" (\\ /) ", " ( {E} ) ", " ( > ) ", " /| |\\ ", " d_ _b "),
65
+ f(" (\\ /) ", " ( {E} ) ", " ( . ) ", " /| |\\ ", " d_ _b "),
84
66
  ],
67
+ happy: [f(" (\\ /) ", " ( {E} ) ", " ( ^ ) ", " /| |\\ ", " d_ _b ")],
68
+ alarm: [f(" (! !) ", " ( {E} ) ", " ( O ) ", " /| |\\ ", " d_ _b ")],
85
69
  },
86
70
  };
87
71
  // ─── Owl ────────────────────────────────────────
88
72
  const owl = {
89
- name: 'owl',
90
- label: 'Owl',
91
- traitHint: 'Wise and watchful. Knows all the patterns.',
73
+ name: "owl",
74
+ label: "Owl",
75
+ traitHint: "Wise and watchful. Knows all the patterns.",
92
76
  frames: {
93
77
  idle: [
94
- f(' /\\__/\\ ', ' ( {E} ) ', ' (/\\/) ', ' |__| ', ' _/\\_ '),
95
- f(' /\\__/\\ ', ' ( {E} ) ', ' (/\\/) ', ' |__| ', ' _/ \\_ '),
96
- f(' /\\__/\\ ', ' ( {E} ) ', ' ( \\/) ', ' |__| ', ' _/\\_ '),
97
- ],
98
- happy: [
99
- f(' /\\__/\\ ', ' ( {E} ) ', ' (^^\\/^) ', ' |__| ', ' _/\\_ '),
100
- ],
101
- alarm: [
102
- f(' /!__!\\ ', ' ( {E} ) ', ' (/!!\\) ', ' |__| ', ' _/\\_ '),
78
+ f(" /\\__/\\ ", " ( {E} ) ", " (/\\/) ", " |__| ", " _/\\_ "),
79
+ f(" /\\__/\\ ", " ( {E} ) ", " (/\\/) ", " |__| ", " _/ \\_ "),
80
+ f(" /\\__/\\ ", " ( {E} ) ", " ( \\/) ", " |__| ", " _/\\_ "),
103
81
  ],
82
+ happy: [f(" /\\__/\\ ", " ( {E} ) ", " (^^\\/^) ", " |__| ", " _/\\_ ")],
83
+ alarm: [f(" /!__!\\ ", " ( {E} ) ", " (/!!\\) ", " |__| ", " _/\\_ ")],
104
84
  },
105
85
  };
106
86
  // ─── Penguin ────────────────────────────────────
107
87
  const penguin = {
108
- name: 'penguin',
109
- label: 'Penguin',
110
- traitHint: 'Formal but playful. Loves clean code.',
88
+ name: "penguin",
89
+ label: "Penguin",
90
+ traitHint: "Formal but playful. Loves clean code.",
111
91
  frames: {
112
92
  idle: [
113
- f(' .~~. ', ' / {E} \\ ', ' | \\__/ | ', ' \\| |/ ', ' L L '),
114
- f(' .~~. ', ' / {E} \\ ', ' | \\__/ | ', ' \\| |/ ', ' L J '),
115
- f(' .~~. ', ' / {E} \\ ', ' | \\../ | ', ' \\| |/ ', ' L L '),
116
- ],
117
- happy: [
118
- f(' .~~. ', ' / {E} \\ ', ' | \\^^/ | ', ' \\| |/ ', ' L L '),
119
- ],
120
- alarm: [
121
- f(' .!!. ', ' / {E} \\ ', ' | \\OO/ | ', ' \\| |/ ', ' L L '),
93
+ f(" .~~. ", " / {E} \\ ", " | \\__/ | ", " \\| |/ ", " L L "),
94
+ f(" .~~. ", " / {E} \\ ", " | \\__/ | ", " \\| |/ ", " L J "),
95
+ f(" .~~. ", " / {E} \\ ", " | \\../ | ", " \\| |/ ", " L L "),
122
96
  ],
97
+ happy: [f(" .~~. ", " / {E} \\ ", " | \\^^/ | ", " \\| |/ ", " L L ")],
98
+ alarm: [f(" .!!. ", " / {E} \\ ", " | \\OO/ | ", " \\| |/ ", " L L ")],
123
99
  },
124
100
  };
125
101
  // ─── Turtle ─────────────────────────────────────
126
102
  const turtle = {
127
- name: 'turtle',
128
- label: 'Turtle',
129
- traitHint: 'Slow and steady. Rock-solid reliability.',
103
+ name: "turtle",
104
+ label: "Turtle",
105
+ traitHint: "Slow and steady. Rock-solid reliability.",
130
106
  frames: {
131
107
  idle: [
132
- f(' ', ' _{E}_ ', ' /=====\\ ', ' |~~~~~~~| ', ' d_/ \\_b '),
133
- f(' ', ' _{E}_ ', ' /=====\\ ', ' |~~~~~~~| ', ' d__/ \\__b '),
134
- f(' ', ' _{E}_ ', ' /=====\\ ', ' |~.~.~.~| ', ' d_/ \\_b '),
135
- ],
136
- happy: [
137
- f(' ', ' _{E}_ ', ' /=====\\ ', ' |~~^^^~~| ', ' d_/ \\_b '),
138
- ],
139
- alarm: [
140
- f(' !! ', ' _{E}_ ', ' /=====\\ ', ' |~!!!!!~| ', ' d_/ \\_b '),
108
+ f(" ", " _{E}_ ", " /=====\\ ", " |~~~~~~~| ", " d_/ \\_b "),
109
+ f(" ", " _{E}_ ", " /=====\\ ", " |~~~~~~~| ", " d__/ \\__b "),
110
+ f(" ", " _{E}_ ", " /=====\\ ", " |~.~.~.~| ", " d_/ \\_b "),
141
111
  ],
112
+ happy: [f(" ", " _{E}_ ", " /=====\\ ", " |~~^^^~~| ", " d_/ \\_b ")],
113
+ alarm: [f(" !! ", " _{E}_ ", " /=====\\ ", " |~!!!!!~| ", " d_/ \\_b ")],
142
114
  },
143
115
  };
144
116
  // ─── Snail ──────────────────────────────────────
145
117
  const snail = {
146
- name: 'snail',
147
- label: 'Snail',
148
- traitHint: 'Patient. Leaves a trail of documentation.',
118
+ name: "snail",
119
+ label: "Snail",
120
+ traitHint: "Patient. Leaves a trail of documentation.",
149
121
  frames: {
150
122
  idle: [
151
- f(' \\ \\ ', ' ( {E} ) ', ' /@@@\\ ', ' |_____| ', ' ~~~~~~~~~~'),
152
- f(' | | ', ' ( {E} ) ', ' /@@@\\ ', ' |_____| ', ' ~~~~~~~~~~'),
153
- f(' \\ \\ ', ' ( {E} ) ', ' /@@@\\ ', ' |_____| ', ' ~~~~~~~~~'),
154
- ],
155
- happy: [
156
- f(' \\ \\ ', ' ( {E} ) ', ' /@@@\\ ', ' |__^__| ', ' ~~~~~~~~~~'),
157
- ],
158
- alarm: [
159
- f(' ! ! ', ' ( {E} ) ', ' /@@@\\ ', ' |__!__| ', ' ~~~~~~~~~~'),
123
+ f(" \\ \\ ", " ( {E} ) ", " /@@@\\ ", " |_____| ", " ~~~~~~~~~~"),
124
+ f(" | | ", " ( {E} ) ", " /@@@\\ ", " |_____| ", " ~~~~~~~~~~"),
125
+ f(" \\ \\ ", " ( {E} ) ", " /@@@\\ ", " |_____| ", " ~~~~~~~~~"),
160
126
  ],
127
+ happy: [f(" \\ \\ ", " ( {E} ) ", " /@@@\\ ", " |__^__| ", " ~~~~~~~~~~")],
128
+ alarm: [f(" ! ! ", " ( {E} ) ", " /@@@\\ ", " |__!__| ", " ~~~~~~~~~~")],
161
129
  },
162
130
  };
163
131
  // ─── Dragon ─────────────────────────────────────
164
132
  const dragon = {
165
- name: 'dragon',
166
- label: 'Dragon',
167
- traitHint: 'Fierce protector of clean architecture.',
133
+ name: "dragon",
134
+ label: "Dragon",
135
+ traitHint: "Fierce protector of clean architecture.",
168
136
  frames: {
169
137
  idle: [
170
- f(' /\\/\\ ', '( {E} )> ', ' \\~~~/ ', ' |/\\| ', ' d b '),
171
- f(' /\\/\\ ', '( {E} )> ', ' \\~~~/ ', ' |/\\| ~ ', ' d b/ '),
172
- f(' /\\/\\ * ', '( {E} )> ', ' \\~~~/ ', ' |/\\| ', ' d b '),
173
- ],
174
- happy: [
175
- f(' /\\/\\ *~ ', '( {E} )> ', ' \\^^^/ ', ' |/\\| ', ' d b '),
176
- ],
177
- alarm: [
178
- f(' /\\/\\ *~*~ ', '( {E} )> ', ' \\!!!/ ', ' |/\\| ', ' d b '),
138
+ f(" /\\/\\ ", "( {E} )> ", " \\~~~/ ", " |/\\| ", " d b "),
139
+ f(" /\\/\\ ", "( {E} )> ", " \\~~~/ ", " |/\\| ~ ", " d b/ "),
140
+ f(" /\\/\\ * ", "( {E} )> ", " \\~~~/ ", " |/\\| ", " d b "),
179
141
  ],
142
+ happy: [f(" /\\/\\ *~ ", "( {E} )> ", " \\^^^/ ", " |/\\| ", " d b ")],
143
+ alarm: [f(" /\\/\\ *~*~ ", "( {E} )> ", " \\!!!/ ", " |/\\| ", " d b ")],
180
144
  },
181
145
  };
182
146
  // ─── Octopus ────────────────────────────────────
183
147
  const octopus = {
184
- name: 'octopus',
185
- label: 'Octopus',
186
- traitHint: 'Multi-tasker. Eight arms, eight PRs.',
148
+ name: "octopus",
149
+ label: "Octopus",
150
+ traitHint: "Multi-tasker. Eight arms, eight PRs.",
187
151
  frames: {
188
152
  idle: [
189
- f(' .---. ', ' ( {E} ) ', ' \\~~/ ', ' /|/\\|\\ ', ' ~ | | ~ '),
190
- f(' .---. ', ' ( {E} ) ', ' \\~~/ ', ' \\|/\\|/ ', ' ~| |~ '),
191
- f(' .---. ', ' ( {E} ) ', ' \\../ ', ' /|/\\|\\ ', ' ~ | | ~ '),
192
- ],
193
- happy: [
194
- f(' .---. ', ' ( {E} ) ', ' \\^^/ ', ' \\|/\\|/ ', ' ~| |~ '),
195
- ],
196
- alarm: [
197
- f(' .!!-. ', ' ( {E} ) ', ' \\!!/ ', ' /|/\\|\\ ', ' ~!| |!~ '),
153
+ f(" .---. ", " ( {E} ) ", " \\~~/ ", " /|/\\|\\ ", " ~ | | ~ "),
154
+ f(" .---. ", " ( {E} ) ", " \\~~/ ", " \\|/\\|/ ", " ~| |~ "),
155
+ f(" .---. ", " ( {E} ) ", " \\../ ", " /|/\\|\\ ", " ~ | | ~ "),
198
156
  ],
157
+ happy: [f(" .---. ", " ( {E} ) ", " \\^^/ ", " \\|/\\|/ ", " ~| |~ ")],
158
+ alarm: [f(" .!!-. ", " ( {E} ) ", " \\!!/ ", " /|/\\|\\ ", " ~!| |!~ ")],
199
159
  },
200
160
  };
201
161
  // ─── Axolotl ────────────────────────────────────
202
162
  const axolotl = {
203
- name: 'axolotl',
204
- label: 'Axolotl',
205
- traitHint: 'Regenerates from any failure. Adorable.',
163
+ name: "axolotl",
164
+ label: "Axolotl",
165
+ traitHint: "Regenerates from any failure. Adorable.",
206
166
  frames: {
207
167
  idle: [
208
- f(' \\\\( )// ', ' ( {E} ) ', ' \\ / ', ' ~|~~|~ ', ' d b '),
209
- f(' \\\\( )// ', ' ( {E} ) ', ' \\ / ~ ', ' ~|~~|~ ', ' d b '),
210
- f(' \\( )/ ', ' ( {E} ) ', ' \\ / ', ' ~|~~|~ ', ' d b '),
211
- ],
212
- happy: [
213
- f(' \\\\( )// ', ' ( {E} ) ', ' \\ ^/ ', ' ~|~~|~ ', ' d b '),
214
- ],
215
- alarm: [
216
- f(' !\\( )/! ', ' ( {E} ) ', ' \\!!/ ', ' ~|~~|~ ', ' d b '),
168
+ f(" \\\\( )// ", " ( {E} ) ", " \\ / ", " ~|~~|~ ", " d b "),
169
+ f(" \\\\( )// ", " ( {E} ) ", " \\ / ~ ", " ~|~~|~ ", " d b "),
170
+ f(" \\( )/ ", " ( {E} ) ", " \\ / ", " ~|~~|~ ", " d b "),
217
171
  ],
172
+ happy: [f(" \\\\( )// ", " ( {E} ) ", " \\ ^/ ", " ~|~~|~ ", " d b ")],
173
+ alarm: [f(" !\\( )/! ", " ( {E} ) ", " \\!!/ ", " ~|~~|~ ", " d b ")],
218
174
  },
219
175
  };
220
176
  // ─── Ghost ──────────────────────────────────────
221
177
  const ghost = {
222
- name: 'ghost',
223
- label: 'Ghost',
224
- traitHint: 'Haunts dead code. Spooky refactorer.',
178
+ name: "ghost",
179
+ label: "Ghost",
180
+ traitHint: "Haunts dead code. Spooky refactorer.",
225
181
  frames: {
226
182
  idle: [
227
- f(' .---. ', ' ( {E} ) ', ' | o | ', ' | | ', ' /\\/\\/\\ '),
228
- f(' .---. ', ' ( {E} ) ', ' | o | ', ' | | ', ' \\/\\/\\/ '),
229
- f(' .---. ', ' ( {E} ) ', ' | o | ', ' | | ', ' /\\/\\/\\ '),
230
- ],
231
- happy: [
232
- f(' .---. ', ' ( {E} ) ', ' | ^^^ | ', ' | | ', ' /\\/\\/\\ '),
233
- ],
234
- alarm: [
235
- f(' .!!!. ', ' ( {E} ) ', ' | !!! | ', ' | | ', ' /\\/\\/\\ '),
183
+ f(" .---. ", " ( {E} ) ", " | o | ", " | | ", " /\\/\\/\\ "),
184
+ f(" .---. ", " ( {E} ) ", " | o | ", " | | ", " \\/\\/\\/ "),
185
+ f(" .---. ", " ( {E} ) ", " | o | ", " | | ", " /\\/\\/\\ "),
236
186
  ],
187
+ happy: [f(" .---. ", " ( {E} ) ", " | ^^^ | ", " | | ", " /\\/\\/\\ ")],
188
+ alarm: [f(" .!!!. ", " ( {E} ) ", " | !!! | ", " | | ", " /\\/\\/\\ ")],
237
189
  },
238
190
  };
239
191
  // ─── Robot ──────────────────────────────────────
240
192
  const robot = {
241
- name: 'robot',
242
- label: 'Robot',
243
- traitHint: 'Logical and precise. Beep boop.',
193
+ name: "robot",
194
+ label: "Robot",
195
+ traitHint: "Logical and precise. Beep boop.",
244
196
  frames: {
245
197
  idle: [
246
- f(' [=====] ', ' | {E} | ', ' |[___]| ', ' -| |- ', ' _| |_ '),
247
- f(' [=====] ', ' | {E} | ', ' |[___]| ', ' -| |- ', ' _| _|_ '),
248
- f(' [=====] ', ' | {E} | ', ' |[_._]| ', ' -| |- ', ' _| |_ '),
249
- ],
250
- happy: [
251
- f(' [=====] ', ' | {E} | ', ' |[^^^]| ', ' -| |- ', ' _| |_ '),
252
- ],
253
- alarm: [
254
- f(' [!!!!!] ', ' | {E} | ', ' |[!!!]| ', ' -| |- ', ' _| |_ '),
198
+ f(" [=====] ", " | {E} | ", " |[___]| ", " -| |- ", " _| |_ "),
199
+ f(" [=====] ", " | {E} | ", " |[___]| ", " -| |- ", " _| _|_ "),
200
+ f(" [=====] ", " | {E} | ", " |[_._]| ", " -| |- ", " _| |_ "),
255
201
  ],
202
+ happy: [f(" [=====] ", " | {E} | ", " |[^^^]| ", " -| |- ", " _| |_ ")],
203
+ alarm: [f(" [!!!!!] ", " | {E} | ", " |[!!!]| ", " -| |- ", " _| |_ ")],
256
204
  },
257
205
  };
258
206
  // ─── Blob ───────────────────────────────────────
259
207
  const blob = {
260
- name: 'blob',
261
- label: 'Blob',
262
- traitHint: 'Amorphous and adaptable. Goes with the flow.',
208
+ name: "blob",
209
+ label: "Blob",
210
+ traitHint: "Amorphous and adaptable. Goes with the flow.",
263
211
  frames: {
264
212
  idle: [
265
- f(' ', ' .~~. ', ' ({E} ) ', ' ( ) ', ' `~~~~` '),
266
- f(' ', ' .~~. ', ' ( {E}) ', ' ( ) ', ' `~~~~` '),
267
- f(' ', ' .~~. ', ' ({E} ) ', ' ( ) ', ' `~~~` '),
268
- ],
269
- happy: [
270
- f(' ', ' .~~. * ', ' ({E} ) ', ' ( ^^ ) ', ' `~~~~` '),
271
- ],
272
- alarm: [
273
- f(' !! ', ' .~~. ', ' ({E} ) ', ' ( !! ) ', ' `~~~~` '),
213
+ f(" ", " .~~. ", " ({E} ) ", " ( ) ", " `~~~~` "),
214
+ f(" ", " .~~. ", " ( {E}) ", " ( ) ", " `~~~~` "),
215
+ f(" ", " .~~. ", " ({E} ) ", " ( ) ", " `~~~` "),
274
216
  ],
217
+ happy: [f(" ", " .~~. * ", " ({E} ) ", " ( ^^ ) ", " `~~~~` ")],
218
+ alarm: [f(" !! ", " .~~. ", " ({E} ) ", " ( !! ) ", " `~~~~` ")],
275
219
  },
276
220
  };
277
221
  // ─── Cactus ─────────────────────────────────────
278
222
  const cactus = {
279
- name: 'cactus',
280
- label: 'Cactus',
281
- traitHint: 'Prickly on the outside. Warm on the inside.',
223
+ name: "cactus",
224
+ label: "Cactus",
225
+ traitHint: "Prickly on the outside. Warm on the inside.",
282
226
  frames: {
283
227
  idle: [
284
- f(' |\\ ', ' .-|-. ', ' |({E})| ', ' | ~ | ', ' |_____| '),
285
- f(' |\\ ', ' .-|-. ', ' |({E})| ', ' | ~ | ', ' |___| '),
286
- f(' |\\ ', ' .-|-. ', ' |({E})| ', ' | . | ', ' |_____| '),
287
- ],
288
- happy: [
289
- f(' *|\\* ', ' .-|-. ', ' |({E})| ', ' | ^ | ', ' |_____| '),
290
- ],
291
- alarm: [
292
- f(' !|\\! ', ' .-|-. ', ' |({E})| ', ' | !!! | ', ' |_____| '),
228
+ f(" |\\ ", " .-|-. ", " |({E})| ", " | ~ | ", " |_____| "),
229
+ f(" |\\ ", " .-|-. ", " |({E})| ", " | ~ | ", " |___| "),
230
+ f(" |\\ ", " .-|-. ", " |({E})| ", " | . | ", " |_____| "),
293
231
  ],
232
+ happy: [f(" *|\\* ", " .-|-. ", " |({E})| ", " | ^ | ", " |_____| ")],
233
+ alarm: [f(" !|\\! ", " .-|-. ", " |({E})| ", " | !!! | ", " |_____| ")],
294
234
  },
295
235
  };
296
236
  // ─── Mushroom ───────────────────────────────────
297
237
  const mushroom = {
298
- name: 'mushroom',
299
- label: 'Mushroom',
300
- traitHint: 'Grows in the dark. Thrives under pressure.',
238
+ name: "mushroom",
239
+ label: "Mushroom",
240
+ traitHint: "Grows in the dark. Thrives under pressure.",
301
241
  frames: {
302
242
  idle: [
303
- f(' .o.O.o. ', ' /~~~~~~~\\ ', ' ({E}) ', ' |~| ', ' _/ \\_ '),
304
- f(' .O.o.O. ', ' /~~~~~~~\\ ', ' ({E}) ', ' |~| ', ' _/ \\_ '),
305
- f(' .o.O.o. ', ' /~~~~~~~\\ ', ' ({E}) ', ' |.| ', ' _/ \\_ '),
306
- ],
307
- happy: [
308
- f(' .o.O.o. ', ' /~~~~~~~\\ ', ' ({E}) ', ' |^| ', ' _/ \\_ '),
309
- ],
310
- alarm: [
311
- f(' .!.!.!. ', ' /~~~~~~~\\ ', ' ({E}) ', ' |!| ', ' _/ \\_ '),
243
+ f(" .o.O.o. ", " /~~~~~~~\\ ", " ({E}) ", " |~| ", " _/ \\_ "),
244
+ f(" .O.o.O. ", " /~~~~~~~\\ ", " ({E}) ", " |~| ", " _/ \\_ "),
245
+ f(" .o.O.o. ", " /~~~~~~~\\ ", " ({E}) ", " |.| ", " _/ \\_ "),
312
246
  ],
247
+ happy: [f(" .o.O.o. ", " /~~~~~~~\\ ", " ({E}) ", " |^| ", " _/ \\_ ")],
248
+ alarm: [f(" .!.!.!. ", " /~~~~~~~\\ ", " ({E}) ", " |!| ", " _/ \\_ ")],
313
249
  },
314
250
  };
315
251
  // ─── Chonk ──────────────────────────────────────
316
252
  const chonk = {
317
- name: 'chonk',
318
- label: 'Chonk',
319
- traitHint: 'Round and mighty. Maximum comfort.',
253
+ name: "chonk",
254
+ label: "Chonk",
255
+ traitHint: "Round and mighty. Maximum comfort.",
320
256
  frames: {
321
257
  idle: [
322
- f(' .------. ', ' / {E} \\ ', '| ~~~~ | ', '| | ', ' \\______/ '),
323
- f(' .------. ', ' / {E} \\ ', '| ~~~~ | ', '| | ', ' \\______/ '),
324
- f(' .------. ', ' / {E} \\ ', '| ~..~ | ', '| | ', ' \\______/ '),
325
- ],
326
- happy: [
327
- f(' .------. ', ' / {E} \\ ', '| ^^^^ | ', '| | ', ' \\______/ '),
328
- ],
329
- alarm: [
330
- f(' .!!!!!-. ', ' / {E} \\ ', '| !!!! | ', '| | ', ' \\______/ '),
258
+ f(" .------. ", " / {E} \\ ", "| ~~~~ | ", "| | ", " \\______/ "),
259
+ f(" .------. ", " / {E} \\ ", "| ~~~~ | ", "| | ", " \\______/ "),
260
+ f(" .------. ", " / {E} \\ ", "| ~..~ | ", "| | ", " \\______/ "),
331
261
  ],
262
+ happy: [f(" .------. ", " / {E} \\ ", "| ^^^^ | ", "| | ", " \\______/ ")],
263
+ alarm: [f(" .!!!!!-. ", " / {E} \\ ", "| !!!! | ", "| | ", " \\______/ ")],
332
264
  },
333
265
  };
334
266
  // ─── Capybara ───────────────────────────────────
335
267
  const capybara = {
336
- name: 'capybara',
337
- label: 'Capybara',
338
- traitHint: 'Chill vibes. Everyone gets along with capybara.',
268
+ name: "capybara",
269
+ label: "Capybara",
270
+ traitHint: "Chill vibes. Everyone gets along with capybara.",
339
271
  frames: {
340
272
  idle: [
341
- f(' .---. ', ' / {E} \\ ', ' | \\_/ | ', ' |~~~~~| ', ' d___b '),
342
- f(' .---. ', ' / {E} \\ ', ' | \\_/ | ', ' |~~~~~| ~ ', ' d___b / '),
343
- f(' .---. ', ' / {E} \\ ', ' | \\./ | ', ' |~~~~~| ', ' d___b '),
344
- ],
345
- happy: [
346
- f(' .---. ', ' / {E} \\ ', ' | \\^/ | ', ' |~~~~~| ', ' d___b '),
347
- ],
348
- alarm: [
349
- f(' .!!!. ', ' / {E} \\ ', ' | \\!/ | ', ' |~~~~~| ', ' d___b '),
273
+ f(" .---. ", " / {E} \\ ", " | \\_/ | ", " |~~~~~| ", " d___b "),
274
+ f(" .---. ", " / {E} \\ ", " | \\_/ | ", " |~~~~~| ~ ", " d___b / "),
275
+ f(" .---. ", " / {E} \\ ", " | \\./ | ", " |~~~~~| ", " d___b "),
350
276
  ],
277
+ happy: [f(" .---. ", " / {E} \\ ", " | \\^/ | ", " |~~~~~| ", " d___b ")],
278
+ alarm: [f(" .!!!. ", " / {E} \\ ", " | \\!/ | ", " |~~~~~| ", " d___b ")],
351
279
  },
352
280
  };
353
281
  // ─────────────────────────────────────────────────
@@ -1,4 +1,4 @@
1
- import type { Stat } from './types.js';
2
- import type { CybergotchiEventType } from './events.js';
1
+ import type { CybergotchiEventType } from "./events.js";
2
+ import type { Stat } from "./types.js";
3
3
  export declare function getSpeech(eventType: CybergotchiEventType, stats: Record<Stat, number>, toolName?: string): string;
4
4
  //# sourceMappingURL=speech.d.ts.map