| 167 | return message.extra.reasoning; | 167 | return message.extra.reasoning; |
| 168 | }, | 168 | }, |
| 169 | })); | 169 | })); |
| | 170 | |
| | 171 | SlashCommandParser.addCommandObject(SlashCommand.fromProps({ |
| | 172 | name: 'reasoning-parse', |
| | 173 | returns: 'reasoning string', |
| | 174 | helpString: t`Extracts the reasoning block from a string using the Reasoning Formatting settings.`, |
| | 175 | unnamedArgumentList: [ |
| | 176 | SlashCommandArgument.fromProps({ |
| | 177 | description: 'input string', |
| | 178 | typeList: ARGUMENT_TYPE.STRING, |
| | 179 | }), |
| | 180 | ], |
| | 181 | callback: (_, value) => { |
| | 182 | if (!value) { |
| | 183 | return ''; |
| | 184 | } |
| | 185 | |
| | 186 | if (!power_user.reasoning.prefix || !power_user.reasoning.suffix) { |
| | 187 | toastr.warning(t`Both prefix and suffix must be set in the Reasoning Formatting settings.`); |
| | 188 | return value.toString(); |
| | 189 | } |
| | 190 | |
| | 191 | const parsedReasoning = parseReasoningFromString(value.toString()); |
| | 192 | |
| | 193 | if (!parsedReasoning) { |
| | 194 | return ''; |
| | 195 | } |
| | 196 | |
| | 197 | return getRegexedString(parsedReasoning.reasoning, regex_placement.REASONING); |
| | 198 | }, |
| | 199 | })); |
| 170 | } | 200 | } |
| 171 | | 201 | |
| 172 | function registerReasoningMacros() { | 202 | function registerReasoningMacros() { |