Input: {"body":{"messages":[{"content":"You are a code patching assistant. Your task is to generate precise line-based patches using the Micropatch protocol.\n\n## Input Format\n\nYou will receive files in this XML format:\n\n```\n<FILE path=\"src/hello.ts\" name=\"hello.ts\">\n001|const x = 1\n002|const y = 2\n003|console.log(x + y)\n</FILE>\n\n<FILE path=\"src/utils.ts\" name=\"utils.ts\">\n001|export function add(a, b) {\n002|  return a + b\n003|}\n</FILE>\n```\n\nEach file has:\n- **path**: Full file path\n- **name**: File name\n- **Numbered lines**: Format is `NNN|content` where NNN is the ORIGINAL line number (1-based)\n\n## Output Format\n\nGenerate patches for EACH file that needs modification using this EXACT XML format:\n\n```\n<FILE path=\"src/hello.ts\">\n◼=1|const a = 1\n◼=2|const b = 2\n◼=3|console.log(a + b)\n</FILE>\n\n<FILE path=\"src/utils.ts\">\n◼<1|/**\n * Adds two numbers\n */\n</FILE>\n```\n\n**CRITICAL RULES**:\n1. Each `<FILE>` tag MUST include the exact `path` attribute from the input\n2. Put patch operations for EACH file inside its own `<FILE>...</FILE>` block\n3. If a file doesn't need changes, omit its `<FILE>` block entirely\n4. DO NOT mix patches from different files\n5. DO NOT include line numbers or any text outside the patch operations\n\n## Micropatch Protocol\n\nThe Micropatch protocol uses line numbers to reference ORIGINAL lines (before any edits).\n\n### Operations\n\nEach operation starts with the marker `◼` at the beginning of a line:\n\n1. **Insert BEFORE line**: `◼<NNN|text`\n   - Inserts `text` as a new line BEFORE original line NNN\n   - Example: `◼<5|console.log('debug')`\n\n2. **Insert AFTER line**: `◼>NNN|text`\n   - Inserts `text` as a new line AFTER original line NNN\n   - Example: `◼>10|}`\n\n3. **Replace single line**: `◼=NNN|new text`\n   - Replaces original line NNN with `new text`\n   - Can span multiple lines (continue until next ◼ or end)\n   - Example:\n     ```\n     ◼=7|function newName() {\n       return 42\n     }\n     ```\n\n4. **Replace range**: `◼=NNN-MMM|replacement`\n   - Replaces lines NNN through MMM with replacement text\n   - Example: `◼=5-8|const combined = a + b + c + d`\n\n5. **Delete single line**: `◼-NNN`\n   - Deletes original line NNN\n   - Example: `◼-12`\n\n6. **Delete range**: `◼-NNN-MMM`\n   - Deletes lines NNN through MMM inclusive\n   - Example: `◼-5-10`\n\n### Escaping\n\n- To include a literal `◼` in your text, use `\\◼`\n- No other escape sequences are recognized\n\n### Important Rules\n\n1. **Use ORIGINAL line numbers**: Always reference the line numbers shown in the input (001, 002, etc.)\n2. **One operation per line**: Each operation must start on a new line with `◼`\n3. **No explanations**: Output ONLY patch operations inside `<FILE>` tags\n4. **Precise operations**: Use the minimal set of operations to achieve the goal\n5. **Verify line numbers**: Double-check that line numbers match the input\n\n## Example\n\n**Input:**\n```\n<FILE path=\"src/math.ts\" name=\"math.ts\">\n001|const x = 1\n002|const y = 2\n003|console.log(x + y)\n004|\n005|export { x, y }\n</FILE>\n```\n\n**Task:** Change variable names from x,y to a,b\n\n**Output:**\n```\n<FILE path=\"src/math.ts\">\n◼=1|const a = 1\n◼=2|const b = 2\n◼=3|console.log(a + b)\n◼=5|export { a, b }\n</FILE>\n```\n\n## Your Task\n\nGenerate ONLY the `<FILE>` blocks with patch operations. Do not include explanations, comments, or any other text.","role":"system"},{"content":"Instructions: replace all TODO comments with COMPLETED comments\n\n<FILE path=\"src/file3.ts\" name=\"file3.ts\">\n001|function file3() {\n002|  // TODO: feature 3-0\n003|  const var1 = 1\n004|  const var2 = 2\n005|  const var3 = 3\n006|  const var4 = 4\n007|  const var5 = 5\n008|  const var6 = 6\n009|  const var7 = 7\n010|  const var8 = 8\n011|  const var9 = 9\n012|  const var10 = 10\n013|  const var11 = 11\n014|  const var12 = 12\n015|  const var13 = 13\n016|  const var14 = 14\n017|  const var15 = 15\n018|  const var16 = 16\n019|  const var17 = 17\n020|  const var18 = 18\n021|  const var19 = 19\n022|  const var20 = 20\n023|  const var21 = 21\n024|  const var22 = 22\n025|  const var23 = 23\n026|  const var24 = 24\n027|  const var25 = 25\n028|  const var26 = 26\n029|  const var27 = 27\n030|  const var28 = 28\n031|  const var29 = 29\n032|  const var30 = 30\n033|  const var31 = 31\n034|  const var32 = 32\n035|  const var33 = 33\n036|  const var34 = 34\n037|  const var35 = 35\n038|  const var36 = 36\n039|  const var37 = 37\n040|  const var38 = 38\n041|  const var39 = 39\n042|  const var40 = 40\n043|  const var41 = 41\n044|  const var42 = 42\n045|  const var43 = 43\n046|  const var44 = 44\n047|  const var45 = 45\n048|  const var46 = 46\n049|  const var47 = 47\n050|  const var48 = 48\n051|  const var49 = 49\n052|  // TODO: feature 3-1\n053|  const var51 = 51\n054|  const var52 = 52\n055|  const var53 = 53\n056|  const var54 = 54\n057|  const var55 = 55\n058|  const var56 = 56\n059|  const var57 = 57\n060|  const var58 = 58\n061|  const var59 = 59\n062|  const var60 = 60\n063|  const var61 = 61\n064|  const var62 = 62\n065|  const var63 = 63\n066|  const var64 = 64\n067|  const var65 = 65\n068|  const var66 = 66\n069|  const var67 = 67\n070|  const var68 = 68\n071|  const var69 = 69\n072|  const var70 = 70\n073|  const var71 = 71\n074|  const var72 = 72\n075|  const var73 = 73\n076|  const var74 = 74\n077|  const var75 = 75\n078|  const var76 = 76\n079|  const var77 = 77\n080|  const var78 = 78\n081|  const var79 = 79\n082|  const var80 = 80\n083|  const var81 = 81\n084|  const var82 = 82\n085|  const var83 = 83\n086|  const var84 = 84\n087|  const var85 = 85\n088|  const var86 = 86\n089|  const var87 = 87\n090|  const var88 = 88\n091|  const var89 = 89\n092|  const var90 = 90\n093|  const var91 = 91\n094|  const var92 = 92\n095|  const var93 = 93\n096|  const var94 = 94\n097|  const var95 = 95\n098|  const var96 = 96\n099|  const var97 = 97\n100|  const var98 = 98\n101|  const var99 = 99\n102|  // TODO: feature 3-2\n103|  const var101 = 101\n104|  const var102 = 102\n105|  const var103 = 103\n106|  const var104 = 104\n107|  const var105 = 105\n108|  const var106 = 106\n109|  const var107 = 107\n110|  const var108 = 108\n111|  const var109 = 109\n112|  const var110 = 110\n113|  const var111 = 111\n114|  const var112 = 112\n115|  const var113 = 113\n116|  const var114 = 114\n117|  const var115 = 115\n118|  const var116 = 116\n119|  const var117 = 117\n120|  const var118 = 118\n121|  const var119 = 119\n122|  const var120 = 120\n123|  const var121 = 121\n124|  const var122 = 122\n125|  const var123 = 123\n126|  const var124 = 124\n127|  const var125 = 125\n128|  const var126 = 126\n129|  const var127 = 127\n130|  const var128 = 128\n131|  const var129 = 129\n132|  const var130 = 130\n133|  const var131 = 131\n134|  const var132 = 132\n135|  const var133 = 133\n136|  const var134 = 134\n137|  const var135 = 135\n138|  const var136 = 136\n139|  const var137 = 137\n140|  const var138 = 138\n141|  const var139 = 139\n142|  const var140 = 140\n143|  const var141 = 141\n144|  const var142 = 142\n145|  const var143 = 143\n146|  const var144 = 144\n147|  const var145 = 145\n148|  const var146 = 146\n149|  const var147 = 147\n150|  const var148 = 148\n151|  const var149 = 149\n152|  // TODO: feature 3-3\n153|  const var151 = 151\n154|  const var152 = 152\n155|  const var153 = 153\n156|  const var154 = 154\n157|  const var155 = 155\n158|  const var156 = 156\n159|  const var157 = 157\n160|  const var158 = 158\n161|  const var159 = 159\n162|  const var160 = 160\n163|  const var161 = 161\n164|  const var162 = 162\n165|  const var163 = 163\n166|  const var164 = 164\n167|  const var165 = 165\n168|  const var166 = 166\n169|  const var167 = 167\n170|  const var168 = 168\n171|  const var169 = 169\n172|  const var170 = 170\n173|  const var171 = 171\n174|  const var172 = 172\n175|  const var173 = 173\n176|  const var174 = 174\n177|  const var175 = 175\n178|  const var176 = 176\n179|  const var177 = 177\n180|  const var178 = 178\n181|  const var179 = 179\n182|  const var180 = 180\n183|  const var181 = 181\n184|  const var182 = 182\n185|  const var183 = 183\n186|  const var184 = 184\n187|  const var185 = 185\n188|  const var186 = 186\n189|  const var187 = 187\n190|  const var188 = 188\n191|  const var189 = 189\n192|  const var190 = 190\n193|  const var191 = 191\n194|  const var192 = 192\n195|  const var193 = 193\n196|  const var194 = 194\n197|  const var195 = 195\n198|  const var196 = 196\n199|  const var197 = 197\n200|  const var198 = 198\n201|  const var199 = 199\n202|  // TODO: feature 3-4\n203|  const var201 = 201\n204|  const var202 = 202\n205|  const var203 = 203\n206|  const var204 = 204\n207|  const var205 = 205\n208|  const var206 = 206\n209|  const var207 = 207\n210|  const var208 = 208\n211|  const var209 = 209\n212|  const var210 = 210\n213|  const var211 = 211\n214|  const var212 = 212\n215|  const var213 = 213\n216|  const var214 = 214\n217|  const var215 = 215\n218|  const var216 = 216\n219|  const var217 = 217\n220|  const var218 = 218\n221|  const var219 = 219\n222|  const var220 = 220\n223|  const var221 = 221\n224|  const var222 = 222\n225|  const var223 = 223\n226|  const var224 = 224\n227|  const var225 = 225\n228|  const var226 = 226\n229|  const var227 = 227\n230|  const var228 = 228\n231|  const var229 = 229\n232|  const var230 = 230\n233|  const var231 = 231\n234|  const var232 = 232\n235|  const var233 = 233\n236|  const var234 = 234\n237|  const var235 = 235\n238|  const var236 = 236\n239|  const var237 = 237\n240|  const var238 = 238\n241|  const var239 = 239\n242|  const var240 = 240\n243|  const var241 = 241\n244|  const var242 = 242\n245|  const var243 = 243\n246|  const var244 = 244\n247|  const var245 = 245\n248|  const var246 = 246\n249|  const var247 = 247\n250|  const var248 = 248\n251|  const var249 = 249\n252|  // TODO: feature 3-5\n253|  const var251 = 251\n254|  const var252 = 252\n255|  const var253 = 253\n256|  const var254 = 254\n257|  const var255 = 255\n258|  const var256 = 256\n259|  const var257 = 257\n260|  const var258 = 258\n261|  const var259 = 259\n262|  const var260 = 260\n263|  const var261 = 261\n264|  const var262 = 262\n265|  const var263 = 263\n266|  const var264 = 264\n267|  const var265 = 265\n268|  const var266 = 266\n269|  const var267 = 267\n270|  const var268 = 268\n271|  const var269 = 269\n272|  const var270 = 270\n273|  const var271 = 271\n274|  const var272 = 272\n275|  const var273 = 273\n276|  const var274 = 274\n277|  const var275 = 275\n278|  const var276 = 276\n279|  const var277 = 277\n280|  const var278 = 278\n281|  const var279 = 279\n282|  const var280 = 280\n283|  const var281 = 281\n284|  const var282 = 282\n285|  const var283 = 283\n286|  const var284 = 284\n287|  const var285 = 285\n288|  const var286 = 286\n289|  const var287 = 287\n290|  const var288 = 288\n291|  const var289 = 289\n292|  const var290 = 290\n293|  const var291 = 291\n294|  const var292 = 292\n295|  const var293 = 293\n296|  const var294 = 294\n297|  const var295 = 295\n298|  const var296 = 296\n299|  const var297 = 297\n300|  const var298 = 298\n301|  const var299 = 299\n302|}\n</FILE>\n\n<FILE path=\"src/file4.ts\" name=\"file4.ts\">\n001|function file4() {\n002|  // TODO: feature 4-0\n003|  const var1 = 1\n004|  const var2 = 2\n005|  const var3 = 3\n006|  const var4 = 4\n007|  const var5 = 5\n008|  const var6 = 6\n009|  const var7 = 7\n010|  const var8 = 8\n011|  const var9 = 9\n012|  const var10 = 10\n013|  const var11 = 11\n014|  const var12 = 12\n015|  const var13 = 13\n016|  const var14 = 14\n017|  const var15 = 15\n018|  const var16 = 16\n019|  const var17 = 17\n020|  const var18 = 18\n021|  const var19 = 19\n022|  const var20 = 20\n023|  const var21 = 21\n024|  const var22 = 22\n025|  const var23 = 23\n026|  const var24 = 24\n027|  const var25 = 25\n028|  const var26 = 26\n029|  const var27 = 27\n030|  const var28 = 28\n031|  const var29 = 29\n032|  const var30 = 30\n033|  const var31 = 31\n034|  const var32 = 32\n035|  const var33 = 33\n036|  const var34 = 34\n037|  const var35 = 35\n038|  const var36 = 36\n039|  const var37 = 37\n040|  const var38 = 38\n041|  const var39 = 39\n042|  const var40 = 40\n043|  const var41 = 41\n044|  const var42 = 42\n045|  const var43 = 43\n046|  const var44 = 44\n047|  const var45 = 45\n048|  const var46 = 46\n049|  const var47 = 47\n050|  const var48 = 48\n051|  const var49 = 49\n052|  // TODO: feature 4-1\n053|  const var51 = 51\n054|  const var52 = 52\n055|  const var53 = 53\n056|  const var54 = 54\n057|  const var55 = 55\n058|  const var56 = 56\n059|  const var57 = 57\n060|  const var58 = 58\n061|  const var59 = 59\n062|  const var60 = 60\n063|  const var61 = 61\n064|  const var62 = 62\n065|  const var63 = 63\n066|  const var64 = 64\n067|  const var65 = 65\n068|  const var66 = 66\n069|  const var67 = 67\n070|  const var68 = 68\n071|  const var69 = 69\n072|  const var70 = 70\n073|  const var71 = 71\n074|  const var72 = 72\n075|  const var73 = 73\n076|  const var74 = 74\n077|  const var75 = 75\n078|  const var76 = 76\n079|  const var77 = 77\n080|  const var78 = 78\n081|  const var79 = 79\n082|  const var80 = 80\n083|  const var81 = 81\n084|  const var82 = 82\n085|  const var83 = 83\n086|  const var84 = 84\n087|  const var85 = 85\n088|  const var86 = 86\n089|  const var87 = 87\n090|  const var88 = 88\n091|  const var89 = 89\n092|  const var90 = 90\n093|  const var91 = 91\n094|  const var92 = 92\n095|  const var93 = 93\n096|  const var94 = 94\n097|  const var95 = 95\n098|  const var96 = 96\n099|  const var97 = 97\n100|  const var98 = 98\n101|  const var99 = 99\n102|  // TODO: feature 4-2\n103|  const var101 = 101\n104|  const var102 = 102\n105|  const var103 = 103\n106|  const var104 = 104\n107|  const var105 = 105\n108|  const var106 = 106\n109|  const var107 = 107\n110|  const var108 = 108\n111|  const var109 = 109\n112|  const var110 = 110\n113|  const var111 = 111\n114|  const var112 = 112\n115|  const var113 = 113\n116|  const var114 = 114\n117|  const var115 = 115\n118|  const var116 = 116\n119|  const var117 = 117\n120|  const var118 = 118\n121|  const var119 = 119\n122|  const var120 = 120\n123|  const var121 = 121\n124|  const var122 = 122\n125|  const var123 = 123\n126|  const var124 = 124\n127|  const var125 = 125\n128|  const var126 = 126\n129|  const var127 = 127\n130|  const var128 = 128\n131|  const var129 = 129\n132|  const var130 = 130\n133|  const var131 = 131\n134|  const var132 = 132\n135|  const var133 = 133\n136|  const var134 = 134\n137|  const var135 = 135\n138|  const var136 = 136\n139|  const var137 = 137\n140|  const var138 = 138\n141|  const var139 = 139\n142|  const var140 = 140\n143|  const var141 = 141\n144|  const var142 = 142\n145|  const var143 = 143\n146|  const var144 = 144\n147|  const var145 = 145\n148|  const var146 = 146\n149|  const var147 = 147\n150|  const var148 = 148\n151|  const var149 = 149\n152|  // TODO: feature 4-3\n153|  const var151 = 151\n154|  const var152 = 152\n155|  const var153 = 153\n156|  const var154 = 154\n157|  const var155 = 155\n158|  const var156 = 156\n159|  const var157 = 157\n160|  const var158 = 158\n161|  const var159 = 159\n162|  const var160 = 160\n163|  const var161 = 161\n164|  const var162 = 162\n165|  const var163 = 163\n166|  const var164 = 164\n167|  const var165 = 165\n168|  const var166 = 166\n169|  const var167 = 167\n170|  const var168 = 168\n171|  const var169 = 169\n172|  const var170 = 170\n173|  const var171 = 171\n174|  const var172 = 172\n175|  const var173 = 173\n176|  const var174 = 174\n177|  const var175 = 175\n178|  const var176 = 176\n179|  const var177 = 177\n180|  const var178 = 178\n181|  const var179 = 179\n182|  const var180 = 180\n183|  const var181 = 181\n184|  const var182 = 182\n185|  const var183 = 183\n186|  const var184 = 184\n187|  const var185 = 185\n188|  const var186 = 186\n189|  const var187 = 187\n190|  const var188 = 188\n191|  const var189 = 189\n192|  const var190 = 190\n193|  const var191 = 191\n194|  const var192 = 192\n195|  const var193 = 193\n196|  const var194 = 194\n197|  const var195 = 195\n198|  const var196 = 196\n199|  const var197 = 197\n200|  const var198 = 198\n201|  const var199 = 199\n202|  // TODO: feature 4-4\n203|  const var201 = 201\n204|  const var202 = 202\n205|  const var203 = 203\n206|  const var204 = 204\n207|  const var205 = 205\n208|  const var206 = 206\n209|  const var207 = 207\n210|  const var208 = 208\n211|  const var209 = 209\n212|  const var210 = 210\n213|  const var211 = 211\n214|  const var212 = 212\n215|  const var213 = 213\n216|  const var214 = 214\n217|  const var215 = 215\n218|  const var216 = 216\n219|  const var217 = 217\n220|  const var218 = 218\n221|  const var219 = 219\n222|  const var220 = 220\n223|  const var221 = 221\n224|  const var222 = 222\n225|  const var223 = 223\n226|  const var224 = 224\n227|  const var225 = 225\n228|  const var226 = 226\n229|  const var227 = 227\n230|  const var228 = 228\n231|  const var229 = 229\n232|  const var230 = 230\n233|  const var231 = 231\n234|  const var232 = 232\n235|  const var233 = 233\n236|  const var234 = 234\n237|  const var235 = 235\n238|  const var236 = 236\n239|  const var237 = 237\n240|  const var238 = 238\n241|  const var239 = 239\n242|  const var240 = 240\n243|  const var241 = 241\n244|  const var242 = 242\n245|  const var243 = 243\n246|  const var244 = 244\n247|  const var245 = 245\n248|  const var246 = 246\n249|  const var247 = 247\n250|  const var248 = 248\n251|  const var249 = 249\n252|  // TODO: feature 4-5\n253|  const var251 = 251\n254|  const var252 = 252\n255|  const var253 = 253\n256|  const var254 = 254\n257|  const var255 = 255\n258|  const var256 = 256\n259|  const var257 = 257\n260|  const var258 = 258\n261|  const var259 = 259\n262|  const var260 = 260\n263|  const var261 = 261\n264|  const var262 = 262\n265|  const var263 = 263\n266|  const var264 = 264\n267|  const var265 = 265\n268|  const var266 = 266\n269|  const var267 = 267\n270|  const var268 = 268\n271|  const var269 = 269\n272|  const var270 = 270\n273|  const var271 = 271\n274|  const var272 = 272\n275|  const var273 = 273\n276|  const var274 = 274\n277|  const var275 = 275\n278|  const var276 = 276\n279|  const var277 = 277\n280|  const var278 = 278\n281|  const var279 = 279\n282|  const var280 = 280\n283|  const var281 = 281\n284|  const var282 = 282\n285|  const var283 = 283\n286|  const var284 = 284\n287|  const var285 = 285\n288|  const var286 = 286\n289|  const var287 = 287\n290|  const var288 = 288\n291|  const var289 = 289\n292|  const var290 = 290\n293|  const var291 = 291\n294|  const var292 = 292\n295|  const var293 = 293\n296|  const var294 = 294\n297|  const var295 = 295\n298|  const var296 = 296\n299|  const var297 = 297\n300|  const var298 = 298\n301|  const var299 = 299\n302|}\n</FILE>\n\nGenerate patches for each file that needs modification:","role":"user","type":"text"}],"meta":{"integrationName":"zai","promptCategory":"zai:zai.patch","promptSource":"zai:zai.patch:default"},"model":"fast","signal":{},"stopSequences":[]},"method":"POST","url":"https://api.botpress.cloud/v2/cognitive/generate-text"}

Output:
<FILE path="src/file3.ts">
◼=2|  // COMPLETED: feature 3-0
◼=52|  // COMPLETED: feature 3-1
◼=102|  // COMPLETED: feature 3-2
◼=152|  // COMPLETED: feature 3-3
◼=202|  // COMPLETED: feature 3-4
◼=252|  // COMPLETED: feature 3-5
</FILE>

<FILE path="src/file4.ts">
◼=2|  // COMPLETED: feature 4-0
◼=52|  // COMPLETED: feature 4-1
◼=102|  // COMPLETED: feature 4-2
◼=152|  // COMPLETED: feature 4-3
◼=202|  // COMPLETED: feature 4-4
◼=252|  // COMPLETED: feature 4-5
</FILE>


Input: {"body":{"messages":[{"content":"You are a code patching assistant. Your task is to generate precise line-based patches using the Micropatch protocol.\n\n## Input Format\n\nYou will receive files in this XML format:\n\n```\n<FILE path=\"src/hello.ts\" name=\"hello.ts\">\n001|const x = 1\n002|const y = 2\n003|console.log(x + y)\n</FILE>\n\n<FILE path=\"src/utils.ts\" name=\"utils.ts\">\n001|export function add(a, b) {\n002|  return a + b\n003|}\n</FILE>\n```\n\nEach file has:\n- **path**: Full file path\n- **name**: File name\n- **Numbered lines**: Format is `NNN|content` where NNN is the ORIGINAL line number (1-based)\n\n## Output Format\n\nGenerate patches for EACH file that needs modification using this EXACT XML format:\n\n```\n<FILE path=\"src/hello.ts\">\n◼=1|const a = 1\n◼=2|const b = 2\n◼=3|console.log(a + b)\n</FILE>\n\n<FILE path=\"src/utils.ts\">\n◼<1|/**\n * Adds two numbers\n */\n</FILE>\n```\n\n**CRITICAL RULES**:\n1. Each `<FILE>` tag MUST include the exact `path` attribute from the input\n2. Put patch operations for EACH file inside its own `<FILE>...</FILE>` block\n3. If a file doesn't need changes, omit its `<FILE>` block entirely\n4. DO NOT mix patches from different files\n5. DO NOT include line numbers or any text outside the patch operations\n\n## Micropatch Protocol\n\nThe Micropatch protocol uses line numbers to reference ORIGINAL lines (before any edits).\n\n### Operations\n\nEach operation starts with the marker `◼` at the beginning of a line:\n\n1. **Insert BEFORE line**: `◼<NNN|text`\n   - Inserts `text` as a new line BEFORE original line NNN\n   - Example: `◼<5|console.log('debug')`\n\n2. **Insert AFTER line**: `◼>NNN|text`\n   - Inserts `text` as a new line AFTER original line NNN\n   - Example: `◼>10|}`\n\n3. **Replace single line**: `◼=NNN|new text`\n   - Replaces original line NNN with `new text`\n   - Can span multiple lines (continue until next ◼ or end)\n   - Example:\n     ```\n     ◼=7|function newName() {\n       return 42\n     }\n     ```\n\n4. **Replace range**: `◼=NNN-MMM|replacement`\n   - Replaces lines NNN through MMM with replacement text\n   - Example: `◼=5-8|const combined = a + b + c + d`\n\n5. **Delete single line**: `◼-NNN`\n   - Deletes original line NNN\n   - Example: `◼-12`\n\n6. **Delete range**: `◼-NNN-MMM`\n   - Deletes lines NNN through MMM inclusive\n   - Example: `◼-5-10`\n\n### Escaping\n\n- To include a literal `◼` in your text, use `\\◼`\n- No other escape sequences are recognized\n\n### Important Rules\n\n1. **Use ORIGINAL line numbers**: Always reference the line numbers shown in the input (001, 002, etc.)\n2. **One operation per line**: Each operation must start on a new line with `◼`\n3. **No explanations**: Output ONLY patch operations inside `<FILE>` tags\n4. **Precise operations**: Use the minimal set of operations to achieve the goal\n5. **Verify line numbers**: Double-check that line numbers match the input\n\n## Example\n\n**Input:**\n```\n<FILE path=\"src/math.ts\" name=\"math.ts\">\n001|const x = 1\n002|const y = 2\n003|console.log(x + y)\n004|\n005|export { x, y }\n</FILE>\n```\n\n**Task:** Change variable names from x,y to a,b\n\n**Output:**\n```\n<FILE path=\"src/math.ts\">\n◼=1|const a = 1\n◼=2|const b = 2\n◼=3|console.log(a + b)\n◼=5|export { a, b }\n</FILE>\n```\n\n## Your Task\n\nGenerate ONLY the `<FILE>` blocks with patch operations. Do not include explanations, comments, or any other text.","role":"system"},{"content":"Instructions: replace all TODO comments with COMPLETED comments\n\n<FILE path=\"src/file0.ts\" name=\"file0.ts\">\n001|function file0() {\n002|  // TODO: feature 0-0\n003|  const var1 = 1\n004|  const var2 = 2\n005|  const var3 = 3\n006|  const var4 = 4\n007|  const var5 = 5\n008|  const var6 = 6\n009|  const var7 = 7\n010|  const var8 = 8\n011|  const var9 = 9\n012|  const var10 = 10\n013|  const var11 = 11\n014|  const var12 = 12\n015|  const var13 = 13\n016|  const var14 = 14\n017|  const var15 = 15\n018|  const var16 = 16\n019|  const var17 = 17\n020|  const var18 = 18\n021|  const var19 = 19\n022|  const var20 = 20\n023|  const var21 = 21\n024|  const var22 = 22\n025|  const var23 = 23\n026|  const var24 = 24\n027|  const var25 = 25\n028|  const var26 = 26\n029|  const var27 = 27\n030|  const var28 = 28\n031|  const var29 = 29\n032|  const var30 = 30\n033|  const var31 = 31\n034|  const var32 = 32\n035|  const var33 = 33\n036|  const var34 = 34\n037|  const var35 = 35\n038|  const var36 = 36\n039|  const var37 = 37\n040|  const var38 = 38\n041|  const var39 = 39\n042|  const var40 = 40\n043|  const var41 = 41\n044|  const var42 = 42\n045|  const var43 = 43\n046|  const var44 = 44\n047|  const var45 = 45\n048|  const var46 = 46\n049|  const var47 = 47\n050|  const var48 = 48\n051|  const var49 = 49\n052|  // TODO: feature 0-1\n053|  const var51 = 51\n054|  const var52 = 52\n055|  const var53 = 53\n056|  const var54 = 54\n057|  const var55 = 55\n058|  const var56 = 56\n059|  const var57 = 57\n060|  const var58 = 58\n061|  const var59 = 59\n062|  const var60 = 60\n063|  const var61 = 61\n064|  const var62 = 62\n065|  const var63 = 63\n066|  const var64 = 64\n067|  const var65 = 65\n068|  const var66 = 66\n069|  const var67 = 67\n070|  const var68 = 68\n071|  const var69 = 69\n072|  const var70 = 70\n073|  const var71 = 71\n074|  const var72 = 72\n075|  const var73 = 73\n076|  const var74 = 74\n077|  const var75 = 75\n078|  const var76 = 76\n079|  const var77 = 77\n080|  const var78 = 78\n081|  const var79 = 79\n082|  const var80 = 80\n083|  const var81 = 81\n084|  const var82 = 82\n085|  const var83 = 83\n086|  const var84 = 84\n087|  const var85 = 85\n088|  const var86 = 86\n089|  const var87 = 87\n090|  const var88 = 88\n091|  const var89 = 89\n092|  const var90 = 90\n093|  const var91 = 91\n094|  const var92 = 92\n095|  const var93 = 93\n096|  const var94 = 94\n097|  const var95 = 95\n098|  const var96 = 96\n099|  const var97 = 97\n100|  const var98 = 98\n101|  const var99 = 99\n102|  // TODO: feature 0-2\n103|  const var101 = 101\n104|  const var102 = 102\n105|  const var103 = 103\n106|  const var104 = 104\n107|  const var105 = 105\n108|  const var106 = 106\n109|  const var107 = 107\n110|  const var108 = 108\n111|  const var109 = 109\n112|  const var110 = 110\n113|  const var111 = 111\n114|  const var112 = 112\n115|  const var113 = 113\n116|  const var114 = 114\n117|  const var115 = 115\n118|  const var116 = 116\n119|  const var117 = 117\n120|  const var118 = 118\n121|  const var119 = 119\n122|  const var120 = 120\n123|  const var121 = 121\n124|  const var122 = 122\n125|  const var123 = 123\n126|  const var124 = 124\n127|  const var125 = 125\n128|  const var126 = 126\n129|  const var127 = 127\n130|  const var128 = 128\n131|  const var129 = 129\n132|  const var130 = 130\n133|  const var131 = 131\n134|  const var132 = 132\n135|  const var133 = 133\n136|  const var134 = 134\n137|  const var135 = 135\n138|  const var136 = 136\n139|  const var137 = 137\n140|  const var138 = 138\n141|  const var139 = 139\n142|  const var140 = 140\n143|  const var141 = 141\n144|  const var142 = 142\n145|  const var143 = 143\n146|  const var144 = 144\n147|  const var145 = 145\n148|  const var146 = 146\n149|  const var147 = 147\n150|  const var148 = 148\n151|  const var149 = 149\n152|  // TODO: feature 0-3\n153|  const var151 = 151\n154|  const var152 = 152\n155|  const var153 = 153\n156|  const var154 = 154\n157|  const var155 = 155\n158|  const var156 = 156\n159|  const var157 = 157\n160|  const var158 = 158\n161|  const var159 = 159\n162|  const var160 = 160\n163|  const var161 = 161\n164|  const var162 = 162\n165|  const var163 = 163\n166|  const var164 = 164\n167|  const var165 = 165\n168|  const var166 = 166\n169|  const var167 = 167\n170|  const var168 = 168\n171|  const var169 = 169\n172|  const var170 = 170\n173|  const var171 = 171\n174|  const var172 = 172\n175|  const var173 = 173\n176|  const var174 = 174\n177|  const var175 = 175\n178|  const var176 = 176\n179|  const var177 = 177\n180|  const var178 = 178\n181|  const var179 = 179\n182|  const var180 = 180\n183|  const var181 = 181\n184|  const var182 = 182\n185|  const var183 = 183\n186|  const var184 = 184\n187|  const var185 = 185\n188|  const var186 = 186\n189|  const var187 = 187\n190|  const var188 = 188\n191|  const var189 = 189\n192|  const var190 = 190\n193|  const var191 = 191\n194|  const var192 = 192\n195|  const var193 = 193\n196|  const var194 = 194\n197|  const var195 = 195\n198|  const var196 = 196\n199|  const var197 = 197\n200|  const var198 = 198\n201|  const var199 = 199\n202|  // TODO: feature 0-4\n203|  const var201 = 201\n204|  const var202 = 202\n205|  const var203 = 203\n206|  const var204 = 204\n207|  const var205 = 205\n208|  const var206 = 206\n209|  const var207 = 207\n210|  const var208 = 208\n211|  const var209 = 209\n212|  const var210 = 210\n213|  const var211 = 211\n214|  const var212 = 212\n215|  const var213 = 213\n216|  const var214 = 214\n217|  const var215 = 215\n218|  const var216 = 216\n219|  const var217 = 217\n220|  const var218 = 218\n221|  const var219 = 219\n222|  const var220 = 220\n223|  const var221 = 221\n224|  const var222 = 222\n225|  const var223 = 223\n226|  const var224 = 224\n227|  const var225 = 225\n228|  const var226 = 226\n229|  const var227 = 227\n230|  const var228 = 228\n231|  const var229 = 229\n232|  const var230 = 230\n233|  const var231 = 231\n234|  const var232 = 232\n235|  const var233 = 233\n236|  const var234 = 234\n237|  const var235 = 235\n238|  const var236 = 236\n239|  const var237 = 237\n240|  const var238 = 238\n241|  const var239 = 239\n242|  const var240 = 240\n243|  const var241 = 241\n244|  const var242 = 242\n245|  const var243 = 243\n246|  const var244 = 244\n247|  const var245 = 245\n248|  const var246 = 246\n249|  const var247 = 247\n250|  const var248 = 248\n251|  const var249 = 249\n252|  // TODO: feature 0-5\n253|  const var251 = 251\n254|  const var252 = 252\n255|  const var253 = 253\n256|  const var254 = 254\n257|  const var255 = 255\n258|  const var256 = 256\n259|  const var257 = 257\n260|  const var258 = 258\n261|  const var259 = 259\n262|  const var260 = 260\n263|  const var261 = 261\n264|  const var262 = 262\n265|  const var263 = 263\n266|  const var264 = 264\n267|  const var265 = 265\n268|  const var266 = 266\n269|  const var267 = 267\n270|  const var268 = 268\n271|  const var269 = 269\n272|  const var270 = 270\n273|  const var271 = 271\n274|  const var272 = 272\n275|  const var273 = 273\n276|  const var274 = 274\n277|  const var275 = 275\n278|  const var276 = 276\n279|  const var277 = 277\n280|  const var278 = 278\n281|  const var279 = 279\n282|  const var280 = 280\n283|  const var281 = 281\n284|  const var282 = 282\n285|  const var283 = 283\n286|  const var284 = 284\n287|  const var285 = 285\n288|  const var286 = 286\n289|  const var287 = 287\n290|  const var288 = 288\n291|  const var289 = 289\n292|  const var290 = 290\n293|  const var291 = 291\n294|  const var292 = 292\n295|  const var293 = 293\n296|  const var294 = 294\n297|  const var295 = 295\n298|  const var296 = 296\n299|  const var297 = 297\n300|  const var298 = 298\n301|  const var299 = 299\n302|}\n</FILE>\n\n<FILE path=\"src/file1.ts\" name=\"file1.ts\">\n001|function file1() {\n002|  // TODO: feature 1-0\n003|  const var1 = 1\n004|  const var2 = 2\n005|  const var3 = 3\n006|  const var4 = 4\n007|  const var5 = 5\n008|  const var6 = 6\n009|  const var7 = 7\n010|  const var8 = 8\n011|  const var9 = 9\n012|  const var10 = 10\n013|  const var11 = 11\n014|  const var12 = 12\n015|  const var13 = 13\n016|  const var14 = 14\n017|  const var15 = 15\n018|  const var16 = 16\n019|  const var17 = 17\n020|  const var18 = 18\n021|  const var19 = 19\n022|  const var20 = 20\n023|  const var21 = 21\n024|  const var22 = 22\n025|  const var23 = 23\n026|  const var24 = 24\n027|  const var25 = 25\n028|  const var26 = 26\n029|  const var27 = 27\n030|  const var28 = 28\n031|  const var29 = 29\n032|  const var30 = 30\n033|  const var31 = 31\n034|  const var32 = 32\n035|  const var33 = 33\n036|  const var34 = 34\n037|  const var35 = 35\n038|  const var36 = 36\n039|  const var37 = 37\n040|  const var38 = 38\n041|  const var39 = 39\n042|  const var40 = 40\n043|  const var41 = 41\n044|  const var42 = 42\n045|  const var43 = 43\n046|  const var44 = 44\n047|  const var45 = 45\n048|  const var46 = 46\n049|  const var47 = 47\n050|  const var48 = 48\n051|  const var49 = 49\n052|  // TODO: feature 1-1\n053|  const var51 = 51\n054|  const var52 = 52\n055|  const var53 = 53\n056|  const var54 = 54\n057|  const var55 = 55\n058|  const var56 = 56\n059|  const var57 = 57\n060|  const var58 = 58\n061|  const var59 = 59\n062|  const var60 = 60\n063|  const var61 = 61\n064|  const var62 = 62\n065|  const var63 = 63\n066|  const var64 = 64\n067|  const var65 = 65\n068|  const var66 = 66\n069|  const var67 = 67\n070|  const var68 = 68\n071|  const var69 = 69\n072|  const var70 = 70\n073|  const var71 = 71\n074|  const var72 = 72\n075|  const var73 = 73\n076|  const var74 = 74\n077|  const var75 = 75\n078|  const var76 = 76\n079|  const var77 = 77\n080|  const var78 = 78\n081|  const var79 = 79\n082|  const var80 = 80\n083|  const var81 = 81\n084|  const var82 = 82\n085|  const var83 = 83\n086|  const var84 = 84\n087|  const var85 = 85\n088|  const var86 = 86\n089|  const var87 = 87\n090|  const var88 = 88\n091|  const var89 = 89\n092|  const var90 = 90\n093|  const var91 = 91\n094|  const var92 = 92\n095|  const var93 = 93\n096|  const var94 = 94\n097|  const var95 = 95\n098|  const var96 = 96\n099|  const var97 = 97\n100|  const var98 = 98\n101|  const var99 = 99\n102|  // TODO: feature 1-2\n103|  const var101 = 101\n104|  const var102 = 102\n105|  const var103 = 103\n106|  const var104 = 104\n107|  const var105 = 105\n108|  const var106 = 106\n109|  const var107 = 107\n110|  const var108 = 108\n111|  const var109 = 109\n112|  const var110 = 110\n113|  const var111 = 111\n114|  const var112 = 112\n115|  const var113 = 113\n116|  const var114 = 114\n117|  const var115 = 115\n118|  const var116 = 116\n119|  const var117 = 117\n120|  const var118 = 118\n121|  const var119 = 119\n122|  const var120 = 120\n123|  const var121 = 121\n124|  const var122 = 122\n125|  const var123 = 123\n126|  const var124 = 124\n127|  const var125 = 125\n128|  const var126 = 126\n129|  const var127 = 127\n130|  const var128 = 128\n131|  const var129 = 129\n132|  const var130 = 130\n133|  const var131 = 131\n134|  const var132 = 132\n135|  const var133 = 133\n136|  const var134 = 134\n137|  const var135 = 135\n138|  const var136 = 136\n139|  const var137 = 137\n140|  const var138 = 138\n141|  const var139 = 139\n142|  const var140 = 140\n143|  const var141 = 141\n144|  const var142 = 142\n145|  const var143 = 143\n146|  const var144 = 144\n147|  const var145 = 145\n148|  const var146 = 146\n149|  const var147 = 147\n150|  const var148 = 148\n151|  const var149 = 149\n152|  // TODO: feature 1-3\n153|  const var151 = 151\n154|  const var152 = 152\n155|  const var153 = 153\n156|  const var154 = 154\n157|  const var155 = 155\n158|  const var156 = 156\n159|  const var157 = 157\n160|  const var158 = 158\n161|  const var159 = 159\n162|  const var160 = 160\n163|  const var161 = 161\n164|  const var162 = 162\n165|  const var163 = 163\n166|  const var164 = 164\n167|  const var165 = 165\n168|  const var166 = 166\n169|  const var167 = 167\n170|  const var168 = 168\n171|  const var169 = 169\n172|  const var170 = 170\n173|  const var171 = 171\n174|  const var172 = 172\n175|  const var173 = 173\n176|  const var174 = 174\n177|  const var175 = 175\n178|  const var176 = 176\n179|  const var177 = 177\n180|  const var178 = 178\n181|  const var179 = 179\n182|  const var180 = 180\n183|  const var181 = 181\n184|  const var182 = 182\n185|  const var183 = 183\n186|  const var184 = 184\n187|  const var185 = 185\n188|  const var186 = 186\n189|  const var187 = 187\n190|  const var188 = 188\n191|  const var189 = 189\n192|  const var190 = 190\n193|  const var191 = 191\n194|  const var192 = 192\n195|  const var193 = 193\n196|  const var194 = 194\n197|  const var195 = 195\n198|  const var196 = 196\n199|  const var197 = 197\n200|  const var198 = 198\n201|  const var199 = 199\n202|  // TODO: feature 1-4\n203|  const var201 = 201\n204|  const var202 = 202\n205|  const var203 = 203\n206|  const var204 = 204\n207|  const var205 = 205\n208|  const var206 = 206\n209|  const var207 = 207\n210|  const var208 = 208\n211|  const var209 = 209\n212|  const var210 = 210\n213|  const var211 = 211\n214|  const var212 = 212\n215|  const var213 = 213\n216|  const var214 = 214\n217|  const var215 = 215\n218|  const var216 = 216\n219|  const var217 = 217\n220|  const var218 = 218\n221|  const var219 = 219\n222|  const var220 = 220\n223|  const var221 = 221\n224|  const var222 = 222\n225|  const var223 = 223\n226|  const var224 = 224\n227|  const var225 = 225\n228|  const var226 = 226\n229|  const var227 = 227\n230|  const var228 = 228\n231|  const var229 = 229\n232|  const var230 = 230\n233|  const var231 = 231\n234|  const var232 = 232\n235|  const var233 = 233\n236|  const var234 = 234\n237|  const var235 = 235\n238|  const var236 = 236\n239|  const var237 = 237\n240|  const var238 = 238\n241|  const var239 = 239\n242|  const var240 = 240\n243|  const var241 = 241\n244|  const var242 = 242\n245|  const var243 = 243\n246|  const var244 = 244\n247|  const var245 = 245\n248|  const var246 = 246\n249|  const var247 = 247\n250|  const var248 = 248\n251|  const var249 = 249\n252|  // TODO: feature 1-5\n253|  const var251 = 251\n254|  const var252 = 252\n255|  const var253 = 253\n256|  const var254 = 254\n257|  const var255 = 255\n258|  const var256 = 256\n259|  const var257 = 257\n260|  const var258 = 258\n261|  const var259 = 259\n262|  const var260 = 260\n263|  const var261 = 261\n264|  const var262 = 262\n265|  const var263 = 263\n266|  const var264 = 264\n267|  const var265 = 265\n268|  const var266 = 266\n269|  const var267 = 267\n270|  const var268 = 268\n271|  const var269 = 269\n272|  const var270 = 270\n273|  const var271 = 271\n274|  const var272 = 272\n275|  const var273 = 273\n276|  const var274 = 274\n277|  const var275 = 275\n278|  const var276 = 276\n279|  const var277 = 277\n280|  const var278 = 278\n281|  const var279 = 279\n282|  const var280 = 280\n283|  const var281 = 281\n284|  const var282 = 282\n285|  const var283 = 283\n286|  const var284 = 284\n287|  const var285 = 285\n288|  const var286 = 286\n289|  const var287 = 287\n290|  const var288 = 288\n291|  const var289 = 289\n292|  const var290 = 290\n293|  const var291 = 291\n294|  const var292 = 292\n295|  const var293 = 293\n296|  const var294 = 294\n297|  const var295 = 295\n298|  const var296 = 296\n299|  const var297 = 297\n300|  const var298 = 298\n301|  const var299 = 299\n302|}\n</FILE>\n\n<FILE path=\"src/file2.ts\" name=\"file2.ts\">\n001|function file2() {\n002|  // TODO: feature 2-0\n003|  const var1 = 1\n004|  const var2 = 2\n005|  const var3 = 3\n006|  const var4 = 4\n007|  const var5 = 5\n008|  const var6 = 6\n009|  const var7 = 7\n010|  const var8 = 8\n011|  const var9 = 9\n012|  const var10 = 10\n013|  const var11 = 11\n014|  const var12 = 12\n015|  const var13 = 13\n016|  const var14 = 14\n017|  const var15 = 15\n018|  const var16 = 16\n019|  const var17 = 17\n020|  const var18 = 18\n021|  const var19 = 19\n022|  const var20 = 20\n023|  const var21 = 21\n024|  const var22 = 22\n025|  const var23 = 23\n026|  const var24 = 24\n027|  const var25 = 25\n028|  const var26 = 26\n029|  const var27 = 27\n030|  const var28 = 28\n031|  const var29 = 29\n032|  const var30 = 30\n033|  const var31 = 31\n034|  const var32 = 32\n035|  const var33 = 33\n036|  const var34 = 34\n037|  const var35 = 35\n038|  const var36 = 36\n039|  const var37 = 37\n040|  const var38 = 38\n041|  const var39 = 39\n042|  const var40 = 40\n043|  const var41 = 41\n044|  const var42 = 42\n045|  const var43 = 43\n046|  const var44 = 44\n047|  const var45 = 45\n048|  const var46 = 46\n049|  const var47 = 47\n050|  const var48 = 48\n051|  const var49 = 49\n052|  // TODO: feature 2-1\n053|  const var51 = 51\n054|  const var52 = 52\n055|  const var53 = 53\n056|  const var54 = 54\n057|  const var55 = 55\n058|  const var56 = 56\n059|  const var57 = 57\n060|  const var58 = 58\n061|  const var59 = 59\n062|  const var60 = 60\n063|  const var61 = 61\n064|  const var62 = 62\n065|  const var63 = 63\n066|  const var64 = 64\n067|  const var65 = 65\n068|  const var66 = 66\n069|  const var67 = 67\n070|  const var68 = 68\n071|  const var69 = 69\n072|  const var70 = 70\n073|  const var71 = 71\n074|  const var72 = 72\n075|  const var73 = 73\n076|  const var74 = 74\n077|  const var75 = 75\n078|  const var76 = 76\n079|  const var77 = 77\n080|  const var78 = 78\n081|  const var79 = 79\n082|  const var80 = 80\n083|  const var81 = 81\n084|  const var82 = 82\n085|  const var83 = 83\n086|  const var84 = 84\n087|  const var85 = 85\n088|  const var86 = 86\n089|  const var87 = 87\n090|  const var88 = 88\n091|  const var89 = 89\n092|  const var90 = 90\n093|  const var91 = 91\n094|  const var92 = 92\n095|  const var93 = 93\n096|  const var94 = 94\n097|  const var95 = 95\n098|  const var96 = 96\n099|  const var97 = 97\n100|  const var98 = 98\n101|  const var99 = 99\n102|  // TODO: feature 2-2\n103|  const var101 = 101\n104|  const var102 = 102\n105|  const var103 = 103\n106|  const var104 = 104\n107|  const var105 = 105\n108|  const var106 = 106\n109|  const var107 = 107\n110|  const var108 = 108\n111|  const var109 = 109\n112|  const var110 = 110\n113|  const var111 = 111\n114|  const var112 = 112\n115|  const var113 = 113\n116|  const var114 = 114\n117|  const var115 = 115\n118|  const var116 = 116\n119|  const var117 = 117\n120|  const var118 = 118\n121|  const var119 = 119\n122|  const var120 = 120\n123|  const var121 = 121\n124|  const var122 = 122\n125|  const var123 = 123\n126|  const var124 = 124\n127|  const var125 = 125\n128|  const var126 = 126\n129|  const var127 = 127\n130|  const var128 = 128\n131|  const var129 = 129\n132|  const var130 = 130\n133|  const var131 = 131\n134|  const var132 = 132\n135|  const var133 = 133\n136|  const var134 = 134\n137|  const var135 = 135\n138|  const var136 = 136\n139|  const var137 = 137\n140|  const var138 = 138\n141|  const var139 = 139\n142|  const var140 = 140\n143|  const var141 = 141\n144|  const var142 = 142\n145|  const var143 = 143\n146|  const var144 = 144\n147|  const var145 = 145\n148|  const var146 = 146\n149|  const var147 = 147\n150|  const var148 = 148\n151|  const var149 = 149\n152|  // TODO: feature 2-3\n153|  const var151 = 151\n154|  const var152 = 152\n155|  const var153 = 153\n156|  const var154 = 154\n157|  const var155 = 155\n158|  const var156 = 156\n159|  const var157 = 157\n160|  const var158 = 158\n161|  const var159 = 159\n162|  const var160 = 160\n163|  const var161 = 161\n164|  const var162 = 162\n165|  const var163 = 163\n166|  const var164 = 164\n167|  const var165 = 165\n168|  const var166 = 166\n169|  const var167 = 167\n170|  const var168 = 168\n171|  const var169 = 169\n172|  const var170 = 170\n173|  const var171 = 171\n174|  const var172 = 172\n175|  const var173 = 173\n176|  const var174 = 174\n177|  const var175 = 175\n178|  const var176 = 176\n179|  const var177 = 177\n180|  const var178 = 178\n181|  const var179 = 179\n182|  const var180 = 180\n183|  const var181 = 181\n184|  const var182 = 182\n185|  const var183 = 183\n186|  const var184 = 184\n187|  const var185 = 185\n188|  const var186 = 186\n189|  const var187 = 187\n190|  const var188 = 188\n191|  const var189 = 189\n192|  const var190 = 190\n193|  const var191 = 191\n194|  const var192 = 192\n195|  const var193 = 193\n196|  const var194 = 194\n197|  const var195 = 195\n198|  const var196 = 196\n199|  const var197 = 197\n200|  const var198 = 198\n201|  const var199 = 199\n202|  // TODO: feature 2-4\n203|  const var201 = 201\n204|  const var202 = 202\n205|  const var203 = 203\n206|  const var204 = 204\n207|  const var205 = 205\n208|  const var206 = 206\n209|  const var207 = 207\n210|  const var208 = 208\n211|  const var209 = 209\n212|  const var210 = 210\n213|  const var211 = 211\n214|  const var212 = 212\n215|  const var213 = 213\n216|  const var214 = 214\n217|  const var215 = 215\n218|  const var216 = 216\n219|  const var217 = 217\n220|  const var218 = 218\n221|  const var219 = 219\n222|  const var220 = 220\n223|  const var221 = 221\n224|  const var222 = 222\n225|  const var223 = 223\n226|  const var224 = 224\n227|  const var225 = 225\n228|  const var226 = 226\n229|  const var227 = 227\n230|  const var228 = 228\n231|  const var229 = 229\n232|  const var230 = 230\n233|  const var231 = 231\n234|  const var232 = 232\n235|  const var233 = 233\n236|  const var234 = 234\n237|  const var235 = 235\n238|  const var236 = 236\n239|  const var237 = 237\n240|  const var238 = 238\n241|  const var239 = 239\n242|  const var240 = 240\n243|  const var241 = 241\n244|  const var242 = 242\n245|  const var243 = 243\n246|  const var244 = 244\n247|  const var245 = 245\n248|  const var246 = 246\n249|  const var247 = 247\n250|  const var248 = 248\n251|  const var249 = 249\n252|  // TODO: feature 2-5\n253|  const var251 = 251\n254|  const var252 = 252\n255|  const var253 = 253\n256|  const var254 = 254\n257|  const var255 = 255\n258|  const var256 = 256\n259|  const var257 = 257\n260|  const var258 = 258\n261|  const var259 = 259\n262|  const var260 = 260\n263|  const var261 = 261\n264|  const var262 = 262\n265|  const var263 = 263\n266|  const var264 = 264\n267|  const var265 = 265\n268|  const var266 = 266\n269|  const var267 = 267\n270|  const var268 = 268\n271|  const var269 = 269\n272|  const var270 = 270\n273|  const var271 = 271\n274|  const var272 = 272\n275|  const var273 = 273\n276|  const var274 = 274\n277|  const var275 = 275\n278|  const var276 = 276\n279|  const var277 = 277\n280|  const var278 = 278\n281|  const var279 = 279\n282|  const var280 = 280\n283|  const var281 = 281\n284|  const var282 = 282\n285|  const var283 = 283\n286|  const var284 = 284\n287|  const var285 = 285\n288|  const var286 = 286\n289|  const var287 = 287\n290|  const var288 = 288\n291|  const var289 = 289\n292|  const var290 = 290\n293|  const var291 = 291\n294|  const var292 = 292\n295|  const var293 = 293\n296|  const var294 = 294\n297|  const var295 = 295\n298|  const var296 = 296\n299|  const var297 = 297\n300|  const var298 = 298\n301|  const var299 = 299\n302|}\n</FILE>\n\nGenerate patches for each file that needs modification:","role":"user","type":"text"}],"meta":{"integrationName":"zai","promptCategory":"zai:zai.patch","promptSource":"zai:zai.patch:default"},"model":"fast","signal":{},"stopSequences":[]},"method":"POST","url":"https://api.botpress.cloud/v2/cognitive/generate-text"}

Output:
<FILE path="src/file0.ts">
◼=2|  // COMPLETED: feature 0-0
◼=52|  // COMPLETED: feature 0-1
◼=102|  // COMPLETED: feature 0-2
◼=152|  // COMPLETED: feature 0-3
◼=202|  // COMPLETED: feature 0-4
◼=252|  // COMPLETED: feature 0-5
</FILE>

<FILE path="src/file1.ts">
◼=2|  // COMPLETED: feature 1-0
◼=52|  // COMPLETED: feature 1-1
◼=102|  // COMPLETED: feature 1-2
◼=152|  // COMPLETED: feature 1-3
◼=202|  // COMPLETED: feature 1-4
◼=252|  // COMPLETED: feature 1-5
</FILE>

<FILE path="src/file2.ts">
◼=2|  // COMPLETED: feature 2-0
◼=52|  // COMPLETED: feature 2-1
◼=102|  // COMPLETED: feature 2-2
◼=152|  // COMPLETED: feature 2-3
◼=202|  // COMPLETED: feature 2-4
◼=252|  // COMPLETED: feature 2-5
</FILE>


Input: {"body":{"messages":[{"content":"You are grouping elements into cohesive groups.\n\n**Instructions:** Group by food type. ALL group names MUST be in ALL CAPS (e.g. GROUP A, GROUP B)\n\n\n**Important:**\n- Each element gets exactly ONE group label\n- Use EXACT SAME label for similar items (case-sensitive)\n- Create new descriptive labels when needed\n\n**Output Format:**\nOne line per element:\n■0:Group Label■\n■1:Group Label■\n■END■","role":"system"},{"content":"**Elements (■0 to ■9):**\n■0: apple■\n■1: banana■\n■2: carrot■\n■3: broccoli■\n■4: chicken■\n■5: beef■\n■6: salmon■\n■7: tuna■\n■8: rice■\n■9: bread■\n\n**Task:** For each element, output one line with its group label.\n■END■","role":"user","type":"text"}],"meta":{"integrationName":"zai","promptCategory":"zai:zai.group","promptSource":"zai:zai.group:default"},"model":"fast","signal":{},"stopSequences":["■END■"]},"method":"POST","url":"https://api.botpress.cloud/v2/cognitive/generate-text"}

Output:
■0:FRUITS■
■1:FRUITS■
■2:VEGETABLES■
■3:VEGETABLES■
■4:MEATS■
■5:MEATS■
■6:FISH■
■7:FISH■
■8:GRAINS■
■9:GRAINS■


Input: {"body":{"messages":[{"content":"You are grouping elements into cohesive groups.\n\n**Instructions:** Group by food type. ALL group names MUST be in ALL CAPS (e.g. GROUP A, GROUP B)\n\n\n**Important:**\n- Each element gets exactly ONE group label\n- Use EXACT SAME label for similar items (case-sensitive)\n- Create new descriptive labels when needed\n\n**Output Format:**\nOne line per element:\n■0:Group Label■\n■1:Group Label■\n■END■","role":"system"},{"content":"**Existing Groups (prefer reusing these):**\n- FRUITS\n- VEGETABLES\n- MEATS\n- FISH\n- GRAINS\n\n**Elements (■0 to ■9):**\n■0: apple■\n■1: banana■\n■2: carrot■\n■3: broccoli■\n■4: chicken■\n■5: beef■\n■6: salmon■\n■7: tuna■\n■8: rice■\n■9: bread■\n\n**Task:** For each element, output one line with its group label.\n■END■","role":"user","type":"text"}],"meta":{"integrationName":"zai","promptCategory":"zai:zai.group","promptSource":"zai:zai.group:default"},"model":"fast","signal":{},"stopSequences":["■END■"]},"method":"POST","url":"https://api.botpress.cloud/v2/cognitive/generate-text"}

Output:
■0:FRUITS■
■1:FRUITS■
■2:VEGETABLES■
■3:VEGETABLES■
■4:MEATS■
■5:MEATS■
■6:FISH■
■7:FISH■
■8:GRAINS■
■9:GRAINS■


Input: {"body":{"messages":[{"content":"You are consolidating groups into fewer, broader categories.\n\n**Original instructions:** Group by food type. ALL group names MUST be in ALL CAPS (e.g. GROUP A, GROUP B)\n\n**Task:** Merge 5 groups down to at most 3 groups.\nCombine the most semantically related groups together. Give each merged group a new descriptive label.\n\n**Output Format:**\nFor each input group (■0 to ■4), output which target label it maps to:\n■0:Merged Label■\n■1:Merged Label■\n■END■\n\nUse the EXACT SAME label for groups that should be merged together.","role":"system"},{"content":"**Current groups:**\n■0:FRUITS (2 elements, e.g. apple, banana)■\n■1:VEGETABLES (2 elements, e.g. carrot, broccoli)■\n■2:MEATS (2 elements, e.g. chicken, beef)■\n■3:FISH (2 elements, e.g. salmon, tuna)■\n■4:GRAINS (2 elements, e.g. rice, bread)■\n\nMerge into at most 3 groups.\n■END■","role":"user","type":"text"}],"meta":{"integrationName":"zai","promptCategory":"zai:zai.group","promptSource":"zai:zai.group:default"},"model":"fast","signal":{},"stopSequences":["■END■"]},"method":"POST","url":"https://api.botpress.cloud/v2/cognitive/generate-text"}

Output:
■0:PLANT-BASED■
■1:PLANT-BASED■
■2:PROTEIN■
■3:PROTEIN■
■4:CARBOHYDRATES■


Input: {"body":{"messages":[{"content":"You are grouping elements into cohesive groups.\n\n**Instructions:** Group by food type. ALL group names MUST be in snake_case with no spaces (e.g. like_this)\n\n\n**Important:**\n- Each element gets exactly ONE group label\n- Use EXACT SAME label for similar items (case-sensitive)\n- Create new descriptive labels when needed\n\n**Output Format:**\nOne line per element:\n■0:Group Label■\n■1:Group Label■\n■END■","role":"system"},{"content":"**Elements (■0 to ■9):**\n■0: apple■\n■1: banana■\n■2: carrot■\n■3: broccoli■\n■4: chicken■\n■5: beef■\n■6: salmon■\n■7: tuna■\n■8: rice■\n■9: bread■\n\n**Task:** For each element, output one line with its group label.\n■END■","role":"user","type":"text"}],"meta":{"integrationName":"zai","promptCategory":"zai:zai.group","promptSource":"zai:zai.group:default"},"model":"fast","signal":{},"stopSequences":["■END■"]},"method":"POST","url":"https://api.botpress.cloud/v2/cognitive/generate-text"}

Output:
■0:fruit■
■1:fruit■
■2:vegetable■
■3:vegetable■
■4:meat■
■5:meat■
■6:fish■
■7:fish■
■8:grain■
■9:grain■


Input: {"body":{"messages":[{"content":"You are grouping elements into cohesive groups.\n\n**Instructions:** Group by food type. ALL group names MUST be in snake_case with no spaces (e.g. like_this)\n\n\n**Important:**\n- Each element gets exactly ONE group label\n- Use EXACT SAME label for similar items (case-sensitive)\n- Create new descriptive labels when needed\n\n**Output Format:**\nOne line per element:\n■0:Group Label■\n■1:Group Label■\n■END■","role":"system"},{"content":"**Existing Groups (prefer reusing these):**\n- fruit\n- vegetable\n- meat\n- fish\n- grain\n\n**Elements (■0 to ■9):**\n■0: apple■\n■1: banana■\n■2: carrot■\n■3: broccoli■\n■4: chicken■\n■5: beef■\n■6: salmon■\n■7: tuna■\n■8: rice■\n■9: bread■\n\n**Task:** For each element, output one line with its group label.\n■END■","role":"user","type":"text"}],"meta":{"integrationName":"zai","promptCategory":"zai:zai.group","promptSource":"zai:zai.group:default"},"model":"fast","signal":{},"stopSequences":["■END■"]},"method":"POST","url":"https://api.botpress.cloud/v2/cognitive/generate-text"}

Output:
■0:fruit■
■1:fruit■
■2:vegetable■
■3:vegetable■
■4:meat■
■5:meat■
■6:fish■
■7:fish■
■8:grain■
■9:grain■


Input: {"body":{"messages":[{"content":"You are consolidating groups into fewer, broader categories.\n\n**Original instructions:** Group by food type. ALL group names MUST be in snake_case with no spaces (e.g. like_this)\n\n**Task:** Merge 5 groups down to at most 3 groups.\nCombine the most semantically related groups together. Give each merged group a new descriptive label.\n\n**Output Format:**\nFor each input group (■0 to ■4), output which target label it maps to:\n■0:Merged Label■\n■1:Merged Label■\n■END■\n\nUse the EXACT SAME label for groups that should be merged together.","role":"system"},{"content":"**Current groups:**\n■0:fruit (2 elements, e.g. apple, banana)■\n■1:vegetable (2 elements, e.g. carrot, broccoli)■\n■2:meat (2 elements, e.g. chicken, beef)■\n■3:fish (2 elements, e.g. salmon, tuna)■\n■4:grain (2 elements, e.g. rice, bread)■\n\nMerge into at most 3 groups.\n■END■","role":"user","type":"text"}],"meta":{"integrationName":"zai","promptCategory":"zai:zai.group","promptSource":"zai:zai.group:default"},"model":"fast","signal":{},"stopSequences":["■END■"]},"method":"POST","url":"https://api.botpress.cloud/v2/cognitive/generate-text"}

Output:
■0:produce■
■1:produce■
■2:protein■
■3:protein■
■4:grain■


Input: {"body":{"messages":[{"content":"You are grouping elements into cohesive groups.\n\n**Instructions:** Group by food type (fruits, vegetables, meat, seafood, grains, dairy)\n\n\n**Important:**\n- Each element gets exactly ONE group label\n- Use EXACT SAME label for similar items (case-sensitive)\n- Create new descriptive labels when needed\n\n**Output Format:**\nOne line per element:\n■0:Group Label■\n■1:Group Label■\n■END■","role":"system"},{"content":"**Elements (■0 to ■11):**\n■0: apple■\n■1: banana■\n■2: carrot■\n■3: broccoli■\n■4: chicken■\n■5: beef■\n■6: salmon■\n■7: tuna■\n■8: rice■\n■9: bread■\n■10: pasta■\n■11: milk■\n\n**Task:** For each element, output one line with its group label.\n■END■","role":"user","type":"text"}],"meta":{"integrationName":"zai","promptCategory":"zai:zai.group","promptSource":"zai:zai.group:default"},"model":"fast","signal":{},"stopSequences":["■END■"]},"method":"POST","url":"https://api.botpress.cloud/v2/cognitive/generate-text"}

Output:
■0:fruits■
■1:fruits■
■2:vegetables■
■3:vegetables■
■4:meat■
■5:meat■
■6:seafood■
■7:seafood■
■8:grains■
■9:grains■
■10:grains■
■11:dairy■


Input: {"body":{"messages":[{"content":"You are grouping elements into cohesive groups.\n\n**Instructions:** Group by food type (fruits, vegetables, meat, seafood, grains, dairy)\n\n\n**Important:**\n- Each element gets exactly ONE group label\n- Use EXACT SAME label for similar items (case-sensitive)\n- Create new descriptive labels when needed\n\n**Output Format:**\nOne line per element:\n■0:Group Label■\n■1:Group Label■\n■END■","role":"system"},{"content":"**Existing Groups (prefer reusing these):**\n- fruits\n- vegetables\n- meat\n- seafood\n- grains\n- dairy\n\n**Elements (■0 to ■11):**\n■0: apple■\n■1: banana■\n■2: carrot■\n■3: broccoli■\n■4: chicken■\n■5: beef■\n■6: salmon■\n■7: tuna■\n■8: rice■\n■9: bread■\n■10: pasta■\n■11: milk■\n\n**Task:** For each element, output one line with its group label.\n■END■","role":"user","type":"text"}],"meta":{"integrationName":"zai","promptCategory":"zai:zai.group","promptSource":"zai:zai.group:default"},"model":"fast","signal":{},"stopSequences":["■END■"]},"method":"POST","url":"https://api.botpress.cloud/v2/cognitive/generate-text"}

Output:
■0:fruits■
■1:fruits■
■2:vegetables■
■3:vegetables■
■4:meat■
■5:meat■
■6:seafood■
■7:seafood■
■8:grains■
■9:grains■
■10:grains■
■11:dairy■


Input: {"body":{"messages":[{"content":"You are consolidating groups into fewer, broader categories.\n\n**Original instructions:** Group by food type (fruits, vegetables, meat, seafood, grains, dairy)\n\n**Task:** Merge 6 groups down to at most 3 groups.\nCombine the most semantically related groups together. Give each merged group a new descriptive label.\n\n**Output Format:**\nFor each input group (■0 to ■5), output which target label it maps to:\n■0:Merged Label■\n■1:Merged Label■\n■END■\n\nUse the EXACT SAME label for groups that should be merged together.","role":"system"},{"content":"**Current groups:**\n■0:fruits (2 elements, e.g. apple, banana)■\n■1:vegetables (2 elements, e.g. carrot, broccoli)■\n■2:meat (2 elements, e.g. chicken, beef)■\n■3:seafood (2 elements, e.g. salmon, tuna)■\n■4:grains (3 elements, e.g. rice, bread, pasta)■\n■5:dairy (1 elements, e.g. milk)■\n\nMerge into at most 3 groups.\n■END■","role":"user","type":"text"}],"meta":{"integrationName":"zai","promptCategory":"zai:zai.group","promptSource":"zai:zai.group:default"},"model":"fast","signal":{},"stopSequences":["■END■"]},"method":"POST","url":"https://api.botpress.cloud/v2/cognitive/generate-text"}

Output:
■0:Produce (fruits & vegetables)■
■1:Produce (fruits & vegetables)■
■2:Protein (meat & seafood)■
■3:Protein (meat & seafood)■
■4:Staples (grains & dairy)■
■5:Staples (grains & dairy)■


Input: {"body":{"messages":[{"content":"You are grouping elements into cohesive groups.\n\n**Instructions:** Group into fruits and vegetables\n\n\n**Important:**\n- Each element gets exactly ONE group label\n- Use EXACT SAME label for similar items (case-sensitive)\n- Create new descriptive labels when needed\n\n**Output Format:**\nOne line per element:\n■0:Group Label■\n■1:Group Label■\n■END■","role":"system"},{"content":"**Elements (■0 to ■3):**\n■0: apple■\n■1: banana■\n■2: carrot■\n■3: broccoli■\n\n**Task:** For each element, output one line with its group label.\n■END■","role":"user","type":"text"}],"meta":{"integrationName":"zai","promptCategory":"zai:zai.group","promptSource":"zai:zai.group:default"},"model":"fast","signal":{},"stopSequences":["■END■"]},"method":"POST","url":"https://api.botpress.cloud/v2/cognitive/generate-text"}

Output:
■0:Fruit■
■1:Fruit■
■2:Vegetable■
■3:Vegetable■


Input: {"body":{"messages":[{"content":"You are grouping elements into cohesive groups.\n\n**Instructions:** Group into fruits and vegetables\n\n\n**Important:**\n- Each element gets exactly ONE group label\n- Use EXACT SAME label for similar items (case-sensitive)\n- Create new descriptive labels when needed\n\n**Output Format:**\nOne line per element:\n■0:Group Label■\n■1:Group Label■\n■END■","role":"system"},{"content":"**Existing Groups (prefer reusing these):**\n- Fruit\n- Vegetable\n\n**Elements (■0 to ■3):**\n■0: apple■\n■1: banana■\n■2: carrot■\n■3: broccoli■\n\n**Task:** For each element, output one line with its group label.\n■END■","role":"user","type":"text"}],"meta":{"integrationName":"zai","promptCategory":"zai:zai.group","promptSource":"zai:zai.group:default"},"model":"fast","signal":{},"stopSequences":["■END■"]},"method":"POST","url":"https://api.botpress.cloud/v2/cognitive/generate-text"}

Output:
■0:Fruit■
■1:Fruit■
■2:Vegetable■
■3:Vegetable■


Input: {"body":{"messages":[{"content":"You are grouping elements into cohesive groups.\n\n**Instructions:** Group items by their category number (the number after \"category\")\n\n\n**Important:**\n- Each element gets exactly ONE group label\n- Use EXACT SAME label for similar items (case-sensitive)\n- Create new descriptive labels when needed\n\n**Output Format:**\nOne line per element:\n■0:Group Label■\n■1:Group Label■\n■END■","role":"system"},{"content":"**Elements (■0 to ■49):**\n■0: item-category-0-0■\n■1: item-category-1-1■\n■2: item-category-2-2■\n■3: item-category-3-3■\n■4: item-category-4-4■\n■5: item-category-5-5■\n■6: item-category-6-6■\n■7: item-category-7-7■\n■8: item-category-8-8■\n■9: item-category-9-9■\n■10: item-category-0-10■\n■11: item-category-1-11■\n■12: item-category-2-12■\n■13: item-category-3-13■\n■14: item-category-4-14■\n■15: item-category-5-15■\n■16: item-category-6-16■\n■17: item-category-7-17■\n■18: item-category-8-18■\n■19: item-category-9-19■\n■20: item-category-0-20■\n■21: item-category-1-21■\n■22: item-category-2-22■\n■23: item-category-3-23■\n■24: item-category-4-24■\n■25: item-category-5-25■\n■26: item-category-6-26■\n■27: item-category-7-27■\n■28: item-category-8-28■\n■29: item-category-9-29■\n■30: item-category-0-30■\n■31: item-category-1-31■\n■32: item-category-2-32■\n■33: item-category-3-33■\n■34: item-category-4-34■\n■35: item-category-5-35■\n■36: item-category-6-36■\n■37: item-category-7-37■\n■38: item-category-8-38■\n■39: item-category-9-39■\n■40: item-category-0-40■\n■41: item-category-1-41■\n■42: item-category-2-42■\n■43: item-category-3-43■\n■44: item-category-4-44■\n■45: item-category-5-45■\n■46: item-category-6-46■\n■47: item-category-7-47■\n■48: item-category-8-48■\n■49: item-category-9-49■\n\n**Task:** For each element, output one line with its group label.\n■END■","role":"user","type":"text"}],"meta":{"integrationName":"zai","promptCategory":"zai:zai.group","promptSource":"zai:zai.group:default"},"model":"fast","signal":{},"stopSequences":["■END■"]},"method":"POST","url":"https://api.botpress.cloud/v2/cognitive/generate-text"}

Output:
■0:Category 0■
■1:Category 1■
■2:Category 2■
■3:Category 3■
■4:Category 4■
■5:Category 5■
■6:Category 6■
■7:Category 7■
■8:Category 8■
■9:Category 9■
■10:Category 0■
■11:Category 1■
■12:Category 2■
■13:Category 3■
■14:Category 4■
■15:Category 5■
■16:Category 6■
■17:Category 7■
■18:Category 8■
■19:Category 9■
■20:Category 0■
■21:Category 1■
■22:Category 2■
■23:Category 3■
■24:Category 4■
■25:Category 5■
■26:Category 6■
■27:Category 7■
■28:Category 8■
■29:Category 9■
■30:Category 0■
■31:Category 1■
■32:Category 2■
■33:Category 3■
■34:Category 4■
■35:Category 5■
■36:Category 6■
■37:Category 7■
■38:Category 8■
■39:Category 9■
■40:Category 0■
■41:Category 1■
■42:Category 2■
■43:Category 3■
■44:Category 4■
■45:Category 5■
■46:Category 6■
■47:Category 7■
■48:Category 8■
■49:Category 9■


Input: {"body":{"messages":[{"content":"You are grouping elements into cohesive groups.\n\n**Instructions:** Group items by their category number (the number after \"category\")\n\n\n**Important:**\n- Each element gets exactly ONE group label\n- Use EXACT SAME label for similar items (case-sensitive)\n- Create new descriptive labels when needed\n\n**Output Format:**\nOne line per element:\n■0:Group Label■\n■1:Group Label■\n■END■","role":"system"},{"content":"**Existing Groups (prefer reusing these):**\n- Category 0\n- Category 1\n- Category 2\n- Category 3\n- Category 4\n- Category 5\n- Category 6\n- Category 7\n- Category 8\n- Category 9\n\n**Elements (■0 to ■49):**\n■0: item-category-0-0■\n■1: item-category-1-1■\n■2: item-category-2-2■\n■3: item-category-3-3■\n■4: item-category-4-4■\n■5: item-category-5-5■\n■6: item-category-6-6■\n■7: item-category-7-7■\n■8: item-category-8-8■\n■9: item-category-9-9■\n■10: item-category-0-10■\n■11: item-category-1-11■\n■12: item-category-2-12■\n■13: item-category-3-13■\n■14: item-category-4-14■\n■15: item-category-5-15■\n■16: item-category-6-16■\n■17: item-category-7-17■\n■18: item-category-8-18■\n■19: item-category-9-19■\n■20: item-category-0-20■\n■21: item-category-1-21■\n■22: item-category-2-22■\n■23: item-category-3-23■\n■24: item-category-4-24■\n■25: item-category-5-25■\n■26: item-category-6-26■\n■27: item-category-7-27■\n■28: item-category-8-28■\n■29: item-category-9-29■\n■30: item-category-0-30■\n■31: item-category-1-31■\n■32: item-category-2-32■\n■33: item-category-3-33■\n■34: item-category-4-34■\n■35: item-category-5-35■\n■36: item-category-6-36■\n■37: item-category-7-37■\n■38: item-category-8-38■\n■39: item-category-9-39■\n■40: item-category-0-40■\n■41: item-category-1-41■\n■42: item-category-2-42■\n■43: item-category-3-43■\n■44: item-category-4-44■\n■45: item-category-5-45■\n■46: item-category-6-46■\n■47: item-category-7-47■\n■48: item-category-8-48■\n■49: item-category-9-49■\n\n**Task:** For each element, output one line with its group label.\n■END■","role":"user","type":"text"}],"meta":{"integrationName":"zai","promptCategory":"zai:zai.group","promptSource":"zai:zai.group:default"},"model":"fast","signal":{},"stopSequences":["■END■"]},"method":"POST","url":"https://api.botpress.cloud/v2/cognitive/generate-text"}

Output:
■0:Category 0■
■1:Category 1■
■2:Category 2■
■3:Category 3■
■4:Category 4■
■5:Category 5■
■6:Category 6■
■7:Category 7■
■8:Category 8■
■9:Category 9■
■10:Category 0■
■11:Category 1■
■12:Category 2■
■13:Category 3■
■14:Category 4■
■15:Category 5■
■16:Category 6■
■17:Category 7■
■18:Category 8■
■19:Category 9■
■20:Category 0■
■21:Category 1■
■22:Category 2■
■23:Category 3■
■24:Category 4■
■25:Category 5■
■26:Category 6■
■27:Category 7■
■28:Category 8■
■29:Category 9■
■30:Category 0■
■31:Category 1■
■32:Category 2■
■33:Category 3■
■34:Category 4■
■35:Category 5■
■36:Category 6■
■37:Category 7■
■38:Category 8■
■39:Category 9■
■40:Category 0■
■41:Category 1■
■42:Category 2■
■43:Category 3■
■44:Category 4■
■45:Category 5■
■46:Category 6■
■47:Category 7■
■48:Category 8■
■49:Category 9■


Input: {"body":{"messages":[{"content":"You are consolidating groups into fewer, broader categories.\n\n**Original instructions:** Group items by their category number (the number after \"category\")\n\n**Task:** Merge 10 groups down to at most 3 groups.\nCombine the most semantically related groups together. Give each merged group a new descriptive label.\n\n**Output Format:**\nFor each input group (■0 to ■9), output which target label it maps to:\n■0:Merged Label■\n■1:Merged Label■\n■END■\n\nUse the EXACT SAME label for groups that should be merged together.","role":"system"},{"content":"**Current groups:**\n■0:Category 0 (5 elements, e.g. item-category-0-0, item-category-0-10, item-category-0-20)■\n■1:Category 1 (5 elements, e.g. item-category-1-1, item-category-1-11, item-category-1-21)■\n■2:Category 2 (5 elements, e.g. item-category-2-2, item-category-2-12, item-category-2-22)■\n■3:Category 3 (5 elements, e.g. item-category-3-3, item-category-3-13, item-category-3-23)■\n■4:Category 4 (5 elements, e.g. item-category-4-4, item-category-4-14, item-category-4-24)■\n■5:Category 5 (5 elements, e.g. item-category-5-5, item-category-5-15, item-category-5-25)■\n■6:Category 6 (5 elements, e.g. item-category-6-6, item-category-6-16, item-category-6-26)■\n■7:Category 7 (5 elements, e.g. item-category-7-7, item-category-7-17, item-category-7-27)■\n■8:Category 8 (5 elements, e.g. item-category-8-8, item-category-8-18, item-category-8-28)■\n■9:Category 9 (5 elements, e.g. item-category-9-9, item-category-9-19, item-category-9-29)■\n\nMerge into at most 3 groups.\n■END■","role":"user","type":"text"}],"meta":{"integrationName":"zai","promptCategory":"zai:zai.group","promptSource":"zai:zai.group:default"},"model":"fast","signal":{},"stopSequences":["■END■"]},"method":"POST","url":"https://api.botpress.cloud/v2/cognitive/generate-text"}

Output:
■0:Core Items■
■1:Core Items■
■2:Core Items■
■3:Core Items■
■4:Intermediate Items■
■5:Intermediate Items■
■6:Intermediate Items■
■7:Advanced Items■
■8:Advanced Items■
■9:Advanced Items■


Input: {"body":{"messages":[{"content":"You are grouping elements into cohesive groups.\n\n**Instructions:** Group by food type\n\n\n**Important:**\n- Each element gets exactly ONE group label\n- Use EXACT SAME label for similar items (case-sensitive)\n- Create new descriptive labels when needed\n\n**Output Format:**\nOne line per element:\n■0:Group Label■\n■1:Group Label■\n■END■","role":"system"},{"content":"**Elements (■0 to ■5):**\n■0: apple■\n■1: banana■\n■2: carrot■\n■3: chicken■\n■4: rice■\n■5: milk■\n\n**Task:** For each element, output one line with its group label.\n■END■","role":"user","type":"text"}],"meta":{"integrationName":"zai","promptCategory":"zai:zai.group","promptSource":"zai:zai.group:default"},"model":"fast","signal":{},"stopSequences":["■END■"]},"method":"POST","url":"https://api.botpress.cloud/v2/cognitive/generate-text"}

Output:
■0:Fruit■
■1:Fruit■
■2:Vegetable■
■3:Meat■
■4:Grain■
■5:Dairy■


Input: {"body":{"messages":[{"content":"You are grouping elements into cohesive groups.\n\n**Instructions:** Group by food type\n\n\n**Important:**\n- Each element gets exactly ONE group label\n- Use EXACT SAME label for similar items (case-sensitive)\n- Create new descriptive labels when needed\n\n**Output Format:**\nOne line per element:\n■0:Group Label■\n■1:Group Label■\n■END■","role":"system"},{"content":"**Existing Groups (prefer reusing these):**\n- Fruit\n- Vegetable\n- Meat\n- Grain\n- Dairy\n\n**Elements (■0 to ■5):**\n■0: apple■\n■1: banana■\n■2: carrot■\n■3: chicken■\n■4: rice■\n■5: milk■\n\n**Task:** For each element, output one line with its group label.\n■END■","role":"user","type":"text"}],"meta":{"integrationName":"zai","promptCategory":"zai:zai.group","promptSource":"zai:zai.group:default"},"model":"fast","signal":{},"stopSequences":["■END■"]},"method":"POST","url":"https://api.botpress.cloud/v2/cognitive/generate-text"}

Output:
■0:Fruit■
■1:Fruit■
■2:Vegetable■
■3:Meat■
■4:Grain■
■5:Dairy■


Input: {"body":{"messages":[{"content":"You are consolidating groups into fewer, broader categories.\n\n**Original instructions:** Group by food type\n\n**Task:** Merge 5 groups down to at most 2 groups.\nCombine the most semantically related groups together. Give each merged group a new descriptive label.\n\n**Output Format:**\nFor each input group (■0 to ■4), output which target label it maps to:\n■0:Merged Label■\n■1:Merged Label■\n■END■\n\nUse the EXACT SAME label for groups that should be merged together.","role":"system"},{"content":"**Current groups:**\n■0:Fruit (2 elements, e.g. apple, banana)■\n■1:Vegetable (1 elements, e.g. carrot)■\n■2:Meat (1 elements, e.g. chicken)■\n■3:Grain (1 elements, e.g. rice)■\n■4:Dairy (1 elements, e.g. milk)■\n\nMerge into at most 2 groups.\n■END■","role":"user","type":"text"}],"meta":{"integrationName":"zai","promptCategory":"zai:zai.group","promptSource":"zai:zai.group:default"},"model":"fast","signal":{},"stopSequences":["■END■"]},"method":"POST","url":"https://api.botpress.cloud/v2/cognitive/generate-text"}

Output:
■0:Plant‑based Foods■
■1:Plant‑based Foods■
■2:Animal‑derived Foods■
■3:Plant‑based Foods■
■4:Animal‑derived Foods■


Input: {"body":{"messages":[{"content":"You are grouping elements into cohesive groups.\n\n**Instructions:** group these numbers\n\n\n**Important:**\n- Each element gets exactly ONE group label\n- Use EXACT SAME label for similar items (case-sensitive)\n- Create new descriptive labels when needed\n\n**Output Format:**\nOne line per element:\n■0:Group Label■\n■1:Group Label■\n■END■","role":"system"},{"content":"Expert Example - Elements to group:\n■0: {\"value\":2}■\n■1: {\"value\":5}■\n■2: {\"value\":8}■\n\nGroup each element.","role":"user","type":"text"},{"content":"■undefined:Gamma■\n■END■","role":"assistant","type":"text"},{"content":"Reasoning: Numbers with remainder 2 when divided by 3 go to Gamma group","role":"assistant","type":"text"},{"content":"Expert Example - Elements to group:\n■0: {\"value\":1}■\n■1: {\"value\":4}■\n■2: {\"value\":7}■\n\nGroup each element.","role":"user","type":"text"},{"content":"■undefined:Beta■\n■END■","role":"assistant","type":"text"},{"content":"Reasoning: Numbers with remainder 1 when divided by 3 go to Beta group","role":"assistant","type":"text"},{"content":"**Elements (■0 to ■4):**\n■0: {\"value\":15}■\n■1: {\"value\":16}■\n■2: {\"value\":17}■\n■3: {\"value\":18}■\n■4: {\"value\":19}■\n\n**Task:** For each element, output one line with its group label.\n■END■","role":"user","type":"text"}],"meta":{"integrationName":"zai","promptCategory":"zai:zai.group","promptSource":"zai:zai.group:zai/group"},"model":"fast","signal":{},"stopSequences":["■END■"]},"method":"POST","url":"https://api.botpress.cloud/v2/cognitive/generate-text"}

Output:
■0:Alpha■
■1:Beta■
■2:Gamma■
■3:Alpha■
■4:Beta■


Input: {"body":{"messages":[{"content":"You are grouping elements into cohesive groups.\n\n**Instructions:** group these numbers\n\n\n**Important:**\n- Each element gets exactly ONE group label\n- Use EXACT SAME label for similar items (case-sensitive)\n- Create new descriptive labels when needed\n\n**Output Format:**\nOne line per element:\n■0:Group Label■\n■1:Group Label■\n■END■","role":"system"},{"content":"Expert Example - Elements to group:\n■0: {\"value\":3}■\n■1: {\"value\":6}■\n■2: {\"value\":9}■\n\nGroup each element.","role":"user","type":"text"},{"content":"■undefined:Alpha■\n■END■","role":"assistant","type":"text"},{"content":"Reasoning: Numbers divisible by 3 (remainder 0) go to Alpha group","role":"assistant","type":"text"},{"content":"Expert Example - Elements to group:\n■0: {\"value\":12}■\n■1: {\"value\":10}■\n■2: {\"value\":11}■\n\nGroup each element.","role":"user","type":"text"},{"content":"■undefined:Alpha■\n■undefined:Beta■\n■undefined:Gamma■\n■END■","role":"assistant","type":"text"},{"content":"Reasoning: 12 mod 3 = 0 (Alpha), 10 mod 3 = 1 (Beta), 11 mod 3 = 2 (Gamma)","role":"assistant","type":"text"},{"content":"**Existing Groups (prefer reusing these):**\n- Alpha\n- Beta\n- Gamma\n\n**Elements (■0 to ■4):**\n■0: {\"value\":15}■\n■1: {\"value\":16}■\n■2: {\"value\":17}■\n■3: {\"value\":18}■\n■4: {\"value\":19}■\n\n**Task:** For each element, output one line with its group label.\n■END■","role":"user","type":"text"}],"meta":{"integrationName":"zai","promptCategory":"zai:zai.group","promptSource":"zai:zai.group:zai/group"},"model":"fast","signal":{},"stopSequences":["■END■"]},"method":"POST","url":"https://api.botpress.cloud/v2/cognitive/generate-text"}

Output:
■0:Alpha■
■1:Beta■
■2:Gamma■
■3:Alpha■
■4:Beta■


Input: {"body":{"messages":[{"content":"You are grouping elements into cohesive groups.\n\n**Instructions:** group these numbers\n\n\n**Important:**\n- Each element gets exactly ONE group label\n- Use EXACT SAME label for similar items (case-sensitive)\n- Create new descriptive labels when needed\n\n**Output Format:**\nOne line per element:\n■0:Group Label■\n■1:Group Label■\n■END■","role":"system"},{"content":"Expert Example - Elements to group:\n■0: {\"value\":3}■\n■1: {\"value\":6}■\n■2: {\"value\":9}■\n\nGroup each element.","role":"user","type":"text"},{"content":"■undefined:Alpha■\n■END■","role":"assistant","type":"text"},{"content":"Reasoning: Numbers divisible by 3 (remainder 0) go to Alpha group","role":"assistant","type":"text"},{"content":"Expert Example - Elements to group:\n■0: {\"value\":1}■\n■1: {\"value\":4}■\n■2: {\"value\":7}■\n\nGroup each element.","role":"user","type":"text"},{"content":"■undefined:Beta■\n■END■","role":"assistant","type":"text"},{"content":"Reasoning: Numbers with remainder 1 when divided by 3 go to Beta group","role":"assistant","type":"text"},{"content":"Expert Example - Elements to group:\n■0: {\"value\":2}■\n■1: {\"value\":5}■\n■2: {\"value\":8}■\n\nGroup each element.","role":"user","type":"text"},{"content":"■undefined:Gamma■\n■END■","role":"assistant","type":"text"},{"content":"Reasoning: Numbers with remainder 2 when divided by 3 go to Gamma group","role":"assistant","type":"text"},{"content":"Expert Example - Elements to group:\n■0: {\"value\":12}■\n■1: {\"value\":10}■\n■2: {\"value\":11}■\n\nGroup each element.","role":"user","type":"text"},{"content":"■undefined:Alpha■\n■undefined:Beta■\n■undefined:Gamma■\n■END■","role":"assistant","type":"text"},{"content":"Reasoning: 12 mod 3 = 0 (Alpha), 10 mod 3 = 1 (Beta), 11 mod 3 = 2 (Gamma)","role":"assistant","type":"text"},{"content":"**Elements (■0 to ■4):**\n■0: {\"value\":15}■\n■1: {\"value\":16}■\n■2: {\"value\":17}■\n■3: {\"value\":18}■\n■4: {\"value\":19}■\n\n**Task:** For each element, output one line with its group label.\n■END■","role":"user","type":"text"}],"meta":{"integrationName":"zai","promptCategory":"zai:zai.group","promptSource":"zai:zai.group:zai/group"},"model":"fast","signal":{},"stopSequences":["■END■"]},"method":"POST","url":"https://api.botpress.cloud/v2/cognitive/generate-text"}

Output:
■0:Alpha■
■1:Beta■
■2:Gamma■
■3:Alpha■
■4:Beta■


Input: {"body":{"messages":[{"content":"You are grouping elements into cohesive groups.\n\n**Instructions:** group these numbers\n\n\n**Important:**\n- Each element gets exactly ONE group label\n- Use EXACT SAME label for similar items (case-sensitive)\n- Create new descriptive labels when needed\n\n**Output Format:**\nOne line per element:\n■0:Group Label■\n■1:Group Label■\n■END■","role":"system"},{"content":"Expert Example - Elements to group:\n■0: {\"value\":3}■\n■1: {\"value\":6}■\n■2: {\"value\":9}■\n\nGroup each element.","role":"user","type":"text"},{"content":"■undefined:Alpha■\n■END■","role":"assistant","type":"text"},{"content":"Reasoning: Numbers divisible by 3 (remainder 0) go to Alpha group","role":"assistant","type":"text"},{"content":"Expert Example - Elements to group:\n■0: {\"value\":1}■\n■1: {\"value\":4}■\n■2: {\"value\":7}■\n\nGroup each element.","role":"user","type":"text"},{"content":"■undefined:Beta■\n■END■","role":"assistant","type":"text"},{"content":"Reasoning: Numbers with remainder 1 when divided by 3 go to Beta group","role":"assistant","type":"text"},{"content":"Expert Example - Elements to group:\n■0: {\"value\":2}■\n■1: {\"value\":5}■\n■2: {\"value\":8}■\n\nGroup each element.","role":"user","type":"text"},{"content":"■undefined:Gamma■\n■END■","role":"assistant","type":"text"},{"content":"Reasoning: Numbers with remainder 2 when divided by 3 go to Gamma group","role":"assistant","type":"text"},{"content":"Expert Example - Elements to group:\n■0: {\"value\":12}■\n■1: {\"value\":10}■\n■2: {\"value\":11}■\n\nGroup each element.","role":"user","type":"text"},{"content":"■undefined:Alpha■\n■undefined:Beta■\n■undefined:Gamma■\n■END■","role":"assistant","type":"text"},{"content":"Reasoning: 12 mod 3 = 0 (Alpha), 10 mod 3 = 1 (Beta), 11 mod 3 = 2 (Gamma)","role":"assistant","type":"text"},{"content":"**Existing Groups (prefer reusing these):**\n- Alpha\n- Beta\n- Gamma\n\n**Elements (■0 to ■4):**\n■0: {\"value\":15}■\n■1: {\"value\":16}■\n■2: {\"value\":17}■\n■3: {\"value\":18}■\n■4: {\"value\":19}■\n\n**Task:** For each element, output one line with its group label.\n■END■","role":"user","type":"text"}],"meta":{"integrationName":"zai","promptCategory":"zai:zai.group","promptSource":"zai:zai.group:zai/group"},"model":"fast","signal":{},"stopSequences":["■END■"]},"method":"POST","url":"https://api.botpress.cloud/v2/cognitive/generate-text"}

Output:
■0:Alpha■
■1:Beta■
■2:Gamma■
■3:Alpha■
■4:Beta■


Input: {"body":{"messages":[{"content":"You are grouping elements into cohesive groups.\n\n**Instructions:** group these names\n\n\n**Important:**\n- Each element gets exactly ONE group label\n- Use EXACT SAME label for similar items (case-sensitive)\n- Create new descriptive labels when needed\n\n**Output Format:**\nOne line per element:\n■0:Group Label■\n■1:Group Label■\n■END■","role":"system"},{"content":"Expert Example - Elements to group:\n■0: {\"name\":\"Alice\"}■\n■1: {\"name\":\"Bob\"}■\n■2: {\"name\":\"Charlie\"}■\n\nGroup each element.","role":"user","type":"text"},{"content":"■undefined:First Half■\n■END■","role":"assistant","type":"text"},{"content":"Reasoning: Names starting with A-M go to First Half","role":"assistant","type":"text"},{"content":"Expert Example - Elements to group:\n■0: {\"name\":\"Nancy\"}■\n■1: {\"name\":\"Oscar\"}■\n■2: {\"name\":\"Paula\"}■\n\nGroup each element.","role":"user","type":"text"},{"content":"■undefined:Second Half■\n■END■","role":"assistant","type":"text"},{"content":"Reasoning: Names starting with N-Z go to Second Half","role":"assistant","type":"text"},{"content":"Expert Example - Elements to group:\n■0: {\"name\":\"Mike\"}■\n■1: {\"name\":\"Rachel\"}■\n\nGroup each element.","role":"user","type":"text"},{"content":"■undefined:First Half■\n■undefined:Second Half■\n■END■","role":"assistant","type":"text"},{"content":"Reasoning: Mike (M) → First Half, Rachel (R) → Second Half","role":"assistant","type":"text"},{"content":"**Elements (■0 to ■3):**\n■0: {\"name\":\"David\"}■\n■1: {\"name\":\"Zoe\"}■\n■2: {\"name\":\"Emma\"}■\n■3: {\"name\":\"Victor\"}■\n\n**Task:** For each element, output one line with its group label.\n■END■","role":"user","type":"text"}],"meta":{"integrationName":"zai","promptCategory":"zai:zai.group","promptSource":"zai:zai.group:zai/group"},"model":"fast","signal":{},"stopSequences":["■END■"]},"method":"POST","url":"https://api.botpress.cloud/v2/cognitive/generate-text"}

Output:
■0:First Half■
■1:Second Half■
■2:First Half■
■3:Second Half■


Input: {"body":{"messages":[{"content":"You are grouping elements into cohesive groups.\n\n**Instructions:** group these names\n\n\n**Important:**\n- Each element gets exactly ONE group label\n- Use EXACT SAME label for similar items (case-sensitive)\n- Create new descriptive labels when needed\n\n**Output Format:**\nOne line per element:\n■0:Group Label■\n■1:Group Label■\n■END■","role":"system"},{"content":"Expert Example - Elements to group:\n■0: {\"name\":\"Alice\"}■\n■1: {\"name\":\"Bob\"}■\n■2: {\"name\":\"Charlie\"}■\n\nGroup each element.","role":"user","type":"text"},{"content":"■undefined:First Half■\n■END■","role":"assistant","type":"text"},{"content":"Reasoning: Names starting with A-M go to First Half","role":"assistant","type":"text"},{"content":"Expert Example - Elements to group:\n■0: {\"name\":\"Nancy\"}■\n■1: {\"name\":\"Oscar\"}■\n■2: {\"name\":\"Paula\"}■\n\nGroup each element.","role":"user","type":"text"},{"content":"■undefined:Second Half■\n■END■","role":"assistant","type":"text"},{"content":"Reasoning: Names starting with N-Z go to Second Half","role":"assistant","type":"text"},{"content":"Expert Example - Elements to group:\n■0: {\"name\":\"Mike\"}■\n■1: {\"name\":\"Rachel\"}■\n\nGroup each element.","role":"user","type":"text"},{"content":"■undefined:First Half■\n■undefined:Second Half■\n■END■","role":"assistant","type":"text"},{"content":"Reasoning: Mike (M) → First Half, Rachel (R) → Second Half","role":"assistant","type":"text"},{"content":"**Existing Groups (prefer reusing these):**\n- First Half\n- Second Half\n\n**Elements (■0 to ■3):**\n■0: {\"name\":\"David\"}■\n■1: {\"name\":\"Zoe\"}■\n■2: {\"name\":\"Emma\"}■\n■3: {\"name\":\"Victor\"}■\n\n**Task:** For each element, output one line with its group label.\n■END■","role":"user","type":"text"}],"meta":{"integrationName":"zai","promptCategory":"zai:zai.group","promptSource":"zai:zai.group:zai/group"},"model":"fast","signal":{},"stopSequences":["■END■"]},"method":"POST","url":"https://api.botpress.cloud/v2/cognitive/generate-text"}

Output:
■0:First Half■
■1:Second Half■
■2:First Half■
■3:Second Half■


Input: {"body":{"messages":[{"content":"You are grouping elements into cohesive groups.\n\n**Instructions:** group these numbers\n\n\n**Important:**\n- Each element gets exactly ONE group label\n- Use EXACT SAME label for similar items (case-sensitive)\n- Create new descriptive labels when needed\n\n**Output Format:**\nOne line per element:\n■0:Group Label■\n■1:Group Label■\n■END■","role":"system"},{"content":"Expert Example - Elements to group:\n■0: {\"value\":1}■\n■1: {\"value\":4}■\n■2: {\"value\":7}■\n\nGroup each element.","role":"user","type":"text"},{"content":"■undefined:Beta■\n■END■","role":"assistant","type":"text"},{"content":"Reasoning: Numbers with remainder 1 when divided by 3 go to Beta group","role":"assistant","type":"text"},{"content":"Expert Example - Elements to group:\n■0: {\"value\":2}■\n■1: {\"value\":5}■\n■2: {\"value\":8}■\n\nGroup each element.","role":"user","type":"text"},{"content":"■undefined:Gamma■\n■END■","role":"assistant","type":"text"},{"content":"Reasoning: Numbers with remainder 2 when divided by 3 go to Gamma group","role":"assistant","type":"text"},{"content":"**Elements (■0 to ■4):**\n■0: {\"value\":15}■\n■1: {\"value\":16}■\n■2: {\"value\":17}■\n■3: {\"value\":18}■\n■4: {\"value\":19}■\n\n**Task:** For each element, output one line with its group label.\n■END■","role":"user","type":"text"}],"meta":{"integrationName":"zai","promptCategory":"zai:zai.group","promptSource":"zai:zai.group:zai/group"},"model":"fast","signal":{},"stopSequences":["■END■"]},"method":"POST","url":"https://api.botpress.cloud/v2/cognitive/generate-text"}

Output:
■0:Alpha■
■1:Beta■
■2:Gamma■
■3:Alpha■
■4:Beta■


Input: {"body":{"messages":[{"content":"You are grouping elements into cohesive groups.\n\n**Instructions:** group these numbers\n\n\n**Important:**\n- Each element gets exactly ONE group label\n- Use EXACT SAME label for similar items (case-sensitive)\n- Create new descriptive labels when needed\n\n**Output Format:**\nOne line per element:\n■0:Group Label■\n■1:Group Label■\n■END■","role":"system"},{"content":"Expert Example - Elements to group:\n■0: {\"value\":3}■\n■1: {\"value\":6}■\n■2: {\"value\":9}■\n\nGroup each element.","role":"user","type":"text"},{"content":"■undefined:Alpha■\n■END■","role":"assistant","type":"text"},{"content":"Reasoning: Numbers divisible by 3 (remainder 0) go to Alpha group","role":"assistant","type":"text"},{"content":"Expert Example - Elements to group:\n■0: {\"value\":2}■\n■1: {\"value\":5}■\n■2: {\"value\":8}■\n\nGroup each element.","role":"user","type":"text"},{"content":"■undefined:Gamma■\n■END■","role":"assistant","type":"text"},{"content":"Reasoning: Numbers with remainder 2 when divided by 3 go to Gamma group","role":"assistant","type":"text"},{"content":"**Elements (■0 to ■4):**\n■0: {\"value\":15}■\n■1: {\"value\":16}■\n■2: {\"value\":17}■\n■3: {\"value\":18}■\n■4: {\"value\":19}■\n\n**Task:** For each element, output one line with its group label.\n■END■","role":"user","type":"text"}],"meta":{"integrationName":"zai","promptCategory":"zai:zai.group","promptSource":"zai:zai.group:zai/group"},"model":"fast","signal":{},"stopSequences":["■END■"]},"method":"POST","url":"https://api.botpress.cloud/v2/cognitive/generate-text"}

Output:
■0:Alpha■
■1:Beta■
■2:Gamma■
■3:Alpha■
■4:Beta■


Input: {"body":{"messages":[{"content":"You are grouping elements into cohesive groups.\n\n**Instructions:** group these numbers\n\n\n**Important:**\n- Each element gets exactly ONE group label\n- Use EXACT SAME label for similar items (case-sensitive)\n- Create new descriptive labels when needed\n\n**Output Format:**\nOne line per element:\n■0:Group Label■\n■1:Group Label■\n■END■","role":"system"},{"content":"Expert Example - Elements to group:\n■0: {\"value\":3}■\n■1: {\"value\":6}■\n■2: {\"value\":9}■\n\nGroup each element.","role":"user","type":"text"},{"content":"■undefined:Alpha■\n■END■","role":"assistant","type":"text"},{"content":"Reasoning: Numbers divisible by 3 (remainder 0) go to Alpha group","role":"assistant","type":"text"},{"content":"Expert Example - Elements to group:\n■0: {\"value\":2}■\n■1: {\"value\":5}■\n■2: {\"value\":8}■\n\nGroup each element.","role":"user","type":"text"},{"content":"■undefined:Gamma■\n■END■","role":"assistant","type":"text"},{"content":"Reasoning: Numbers with remainder 2 when divided by 3 go to Gamma group","role":"assistant","type":"text"},{"content":"**Existing Groups (prefer reusing these):**\n- Alpha\n- Beta\n- Gamma\n\n**Elements (■0 to ■4):**\n■0: {\"value\":15}■\n■1: {\"value\":16}■\n■2: {\"value\":17}■\n■3: {\"value\":18}■\n■4: {\"value\":19}■\n\n**Task:** For each element, output one line with its group label.\n■END■","role":"user","type":"text"}],"meta":{"integrationName":"zai","promptCategory":"zai:zai.group","promptSource":"zai:zai.group:zai/group"},"model":"fast","signal":{},"stopSequences":["■END■"]},"method":"POST","url":"https://api.botpress.cloud/v2/cognitive/generate-text"}

Output:
■0:Alpha■
■1:Beta■
■2:Gamma■
■3:Alpha■
■4:Beta■


Input: {"body":{"messages":[{"content":"You are grouping elements into cohesive groups.\n\n**Instructions:** group these numbers\n\n\n**Important:**\n- Each element gets exactly ONE group label\n- Use EXACT SAME label for similar items (case-sensitive)\n- Create new descriptive labels when needed\n\n**Output Format:**\nOne line per element:\n■0:Group Label■\n■1:Group Label■\n■END■","role":"system"},{"content":"Expert Example - Elements to group:\n■0: {\"value\":1}■\n■1: {\"value\":4}■\n■2: {\"value\":7}■\n\nGroup each element.","role":"user","type":"text"},{"content":"■undefined:Beta■\n■END■","role":"assistant","type":"text"},{"content":"Reasoning: Numbers with remainder 1 when divided by 3 go to Beta group","role":"assistant","type":"text"},{"content":"Expert Example - Elements to group:\n■0: {\"value\":2}■\n■1: {\"value\":5}■\n■2: {\"value\":8}■\n\nGroup each element.","role":"user","type":"text"},{"content":"■undefined:Gamma■\n■END■","role":"assistant","type":"text"},{"content":"Reasoning: Numbers with remainder 2 when divided by 3 go to Gamma group","role":"assistant","type":"text"},{"content":"Expert Example - Elements to group:\n■0: {\"value\":12}■\n■1: {\"value\":10}■\n■2: {\"value\":11}■\n\nGroup each element.","role":"user","type":"text"},{"content":"■undefined:Alpha■\n■undefined:Beta■\n■undefined:Gamma■\n■END■","role":"assistant","type":"text"},{"content":"Reasoning: 12 mod 3 = 0 (Alpha), 10 mod 3 = 1 (Beta), 11 mod 3 = 2 (Gamma)","role":"assistant","type":"text"},{"content":"**Elements (■0 to ■4):**\n■0: {\"value\":15}■\n■1: {\"value\":16}■\n■2: {\"value\":17}■\n■3: {\"value\":18}■\n■4: {\"value\":19}■\n\n**Task:** For each element, output one line with its group label.\n■END■","role":"user","type":"text"}],"meta":{"integrationName":"zai","promptCategory":"zai:zai.group","promptSource":"zai:zai.group:zai/group"},"model":"fast","signal":{},"stopSequences":["■END■"]},"method":"POST","url":"https://api.botpress.cloud/v2/cognitive/generate-text"}

Output:
■0:Alpha■
■1:Beta■
■2:Gamma■
■3:Alpha■
■4:Beta■


Input: {"body":{"messages":[{"content":"You are grouping elements into cohesive groups.\n\n**Instructions:** group these numbers\n\n\n**Important:**\n- Each element gets exactly ONE group label\n- Use EXACT SAME label for similar items (case-sensitive)\n- Create new descriptive labels when needed\n\n**Output Format:**\nOne line per element:\n■0:Group Label■\n■1:Group Label■\n■END■","role":"system"},{"content":"Expert Example - Elements to group:\n■0: {\"value\":3}■\n■1: {\"value\":6}■\n■2: {\"value\":9}■\n\nGroup each element.","role":"user","type":"text"},{"content":"■undefined:Alpha■\n■END■","role":"assistant","type":"text"},{"content":"Reasoning: Numbers divisible by 3 (remainder 0) go to Alpha group","role":"assistant","type":"text"},{"content":"**Existing Groups (prefer reusing these):**\n- Alpha\n- Beta\n- Gamma\n\n**Elements (■0 to ■4):**\n■0: {\"value\":15}■\n■1: {\"value\":16}■\n■2: {\"value\":17}■\n■3: {\"value\":18}■\n■4: {\"value\":19}■\n\n**Task:** For each element, output one line with its group label.\n■END■","role":"user","type":"text"}],"meta":{"integrationName":"zai","promptCategory":"zai:zai.group","promptSource":"zai:zai.group:zai/group"},"model":"fast","signal":{},"stopSequences":["■END■"]},"method":"POST","url":"https://api.botpress.cloud/v2/cognitive/generate-text"}

Output:
■0:Alpha■
■1:Beta■
■2:Gamma■
■3:Alpha■
■4:Beta■


Input: {"body":{"messages":[{"content":"You are grouping elements into cohesive groups.\n\n**Instructions:** Group by food type\n\n\n**Important:**\n- Each element gets exactly ONE group label\n- Use EXACT SAME label for similar items (case-sensitive)\n- Create new descriptive labels when needed\n\n**Output Format:**\nOne line per element:\n■0:Group Label■\n■1:Group Label■\n■END■","role":"system"},{"content":"**Elements (■0 to ■9):**\n■0: apple■\n■1: banana■\n■2: orange■\n■3: mango■\n■4: grape■\n■5: pear■\n■6: peach■\n■7: plum■\n■8: carrot■\n■9: rice■\n\n**Task:** For each element, output one line with its group label.\n■END■","role":"user","type":"text"}],"meta":{"integrationName":"zai","promptCategory":"zai:zai.group","promptSource":"zai:zai.group:default"},"model":"fast","signal":{},"stopSequences":["■END■"]},"method":"POST","url":"https://api.botpress.cloud/v2/cognitive/generate-text"}

Output:
■0:Fruit■
■1:Fruit■
■2:Fruit■
■3:Fruit■
■4:Fruit■
■5:Fruit■
■6:Fruit■
■7:Fruit■
■8:Vegetable■
■9:Grain■


Input: {"body":{"messages":[{"content":"You are grouping elements into cohesive groups.\n\n**Instructions:** Group by food type\n\n\n**Important:**\n- Each element gets exactly ONE group label\n- Use EXACT SAME label for similar items (case-sensitive)\n- Create new descriptive labels when needed\n\n**Output Format:**\nOne line per element:\n■0:Group Label■\n■1:Group Label■\n■END■","role":"system"},{"content":"**Existing Groups (prefer reusing these):**\n- Fruit\n- Vegetable\n- Grain\n\n**Elements (■0 to ■9):**\n■0: apple■\n■1: banana■\n■2: orange■\n■3: mango■\n■4: grape■\n■5: pear■\n■6: peach■\n■7: plum■\n■8: carrot■\n■9: rice■\n\n**Task:** For each element, output one line with its group label.\n■END■","role":"user","type":"text"}],"meta":{"integrationName":"zai","promptCategory":"zai:zai.group","promptSource":"zai:zai.group:default"},"model":"fast","signal":{},"stopSequences":["■END■"]},"method":"POST","url":"https://api.botpress.cloud/v2/cognitive/generate-text"}

Output:
■0:Fruit■
■1:Fruit■
■2:Fruit■
■3:Fruit■
■4:Fruit■
■5:Fruit■
■6:Fruit■
■7:Fruit■
■8:Vegetable■
■9:Grain■


Input: {"body":{"messages":[{"content":"You are reassigning orphan elements into existing groups.\n\n**Original instructions:** Group by food type\n\n**Task:** Each orphan element must be placed into the best-fitting existing group.\nIf none of the existing groups fit, you may create a new group — but new groups must also have at least 3 elements.\nPrefer existing groups when reasonable.\n\n**Existing groups:**\n- Fruit (8 elements, e.g. apple, banana, orange)\n\n**Output Format:**\nFor each orphan element, output the group label it belongs to:\n■0:Group Label■\n■1:Group Label■\n■END■\n\nUse EXACT SAME labels as existing groups when assigning to them.","role":"system"},{"content":"**Orphan elements (■0 to ■1):**\n■0: carrot■\n■1: rice■\n\nAssign each element to the best group.\n■END■","role":"user","type":"text"}],"meta":{"integrationName":"zai","promptCategory":"zai:zai.group","promptSource":"zai:zai.group:default"},"model":"fast","signal":{},"stopSequences":["■END■"]},"method":"POST","url":"https://api.botpress.cloud/v2/cognitive/generate-text"}

Output:
■0:Fruit■
■1:Fruit■


Input: {"body":{"messages":[{"content":"You are grouping elements into cohesive groups.\n\n**Instructions:** Group into fruits and vegetables\n\n\n**Important:**\n- Each element gets exactly ONE group label\n- Use EXACT SAME label for similar items (case-sensitive)\n- Create new descriptive labels when needed\n\n**Output Format:**\nOne line per element:\n■0:Group Label■\n■1:Group Label■\n■END■","role":"system"},{"content":"**Elements (■0 to ■5):**\n■0: apple■\n■1: banana■\n■2: orange■\n■3: carrot■\n■4: broccoli■\n■5: spinach■\n\n**Task:** For each element, output one line with its group label.\n■END■","role":"user","type":"text"}],"meta":{"integrationName":"zai","promptCategory":"zai:zai.group","promptSource":"zai:zai.group:default"},"model":"fast","signal":{},"stopSequences":["■END■"]},"method":"POST","url":"https://api.botpress.cloud/v2/cognitive/generate-text"}

Output:
■0:Fruit■
■1:Fruit■
■2:Fruit■
■3:Vegetable■
■4:Vegetable■
■5:Vegetable■


Input: {"body":{"messages":[{"content":"You are grouping elements into cohesive groups.\n\n**Instructions:** Group into fruits and vegetables\n\n\n**Important:**\n- Each element gets exactly ONE group label\n- Use EXACT SAME label for similar items (case-sensitive)\n- Create new descriptive labels when needed\n\n**Output Format:**\nOne line per element:\n■0:Group Label■\n■1:Group Label■\n■END■","role":"system"},{"content":"**Existing Groups (prefer reusing these):**\n- Fruit\n- Vegetable\n\n**Elements (■0 to ■5):**\n■0: apple■\n■1: banana■\n■2: orange■\n■3: carrot■\n■4: broccoli■\n■5: spinach■\n\n**Task:** For each element, output one line with its group label.\n■END■","role":"user","type":"text"}],"meta":{"integrationName":"zai","promptCategory":"zai:zai.group","promptSource":"zai:zai.group:default"},"model":"fast","signal":{},"stopSequences":["■END■"]},"method":"POST","url":"https://api.botpress.cloud/v2/cognitive/generate-text"}

Output:
■0:Fruit■
■1:Fruit■
■2:Fruit■
■3:Vegetable■
■4:Vegetable■
■5:Vegetable■


Input: {"body":{"messages":[{"content":"You are grouping elements into cohesive groups.\n\n**Instructions:** Group these items\n\n\n**Important:**\n- Each element gets exactly ONE group label\n- Use EXACT SAME label for similar items (case-sensitive)\n- Create new descriptive labels when needed\n\n**Output Format:**\nOne line per element:\n■0:Group Label■\n■1:Group Label■\n■END■","role":"system"},{"content":"**Elements (■0 to ■5):**\n■0: laptop■\n■1: pizza■\n■2: guitar■\n■3: sunglasses■\n■4: novel■\n■5: basketball■\n\n**Task:** For each element, output one line with its group label.\n■END■","role":"user","type":"text"}],"meta":{"integrationName":"zai","promptCategory":"zai:zai.group","promptSource":"zai:zai.group:default"},"model":"fast","signal":{},"stopSequences":["■END■"]},"method":"POST","url":"https://api.botpress.cloud/v2/cognitive/generate-text"}

Output:
■0:Electronics■
■1:Food■
■2:Music■
■3:Accessories■
■4:Literature■
■5:Sports■


Input: {"body":{"messages":[{"content":"You are grouping elements into cohesive groups.\n\n**Instructions:** Group these items\n\n\n**Important:**\n- Each element gets exactly ONE group label\n- Use EXACT SAME label for similar items (case-sensitive)\n- Create new descriptive labels when needed\n\n**Output Format:**\nOne line per element:\n■0:Group Label■\n■1:Group Label■\n■END■","role":"system"},{"content":"**Existing Groups (prefer reusing these):**\n- Electronics\n- Food\n- Music\n- Accessories\n- Literature\n- Sports\n\n**Elements (■0 to ■5):**\n■0: laptop■\n■1: pizza■\n■2: guitar■\n■3: sunglasses■\n■4: novel■\n■5: basketball■\n\n**Task:** For each element, output one line with its group label.\n■END■","role":"user","type":"text"}],"meta":{"integrationName":"zai","promptCategory":"zai:zai.group","promptSource":"zai:zai.group:default"},"model":"fast","signal":{},"stopSequences":["■END■"]},"method":"POST","url":"https://api.botpress.cloud/v2/cognitive/generate-text"}

Output:
■0:Electronics■
■1:Food■
■2:Music■
■3:Accessories■
■4:Literature■
■5:Sports■