{ "cwd": "ws", "memory_dir": "memory/generale", "files": [ { "path": "ws/a.txt", "content": "ligne 1\nligne 2\nligne 3\n", "age": 50 }, { "path": "ws/b.txt", "content": "alpha\nbeta\n", "age": 40 }, { "path": "ws/vide.txt", "content": "", "age": 30 }, { "path": "ws/long.txt", "content": "éééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééé\nfin\n", "age": 20 }, { "path": "ws/crlf.txt", "content": "un\r\ndeux\r\ntrois\r\n", "age": 10 }, { "path": "ws/bin.dat", "content": "PK\u0000\u0001binaire", "age": 60 }, { "path": "ws/src/main.go", "content": "package main\n\nfunc main() { x := 1 }\n", "age": 5 }, { "path": "ws/src/lib/util.go", "content": "package lib\n// x marque\n", "age": 3 }, { "path": "ws/src/lib/notes.md", "content": "x dans les notes\n", "age": 4 }, { "path": "ws/node_modules/dep/index.js", "content": "ligne cachée\n", "age": 70 }, { "path": "ws/beaucoup.txt", "content": "aiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\n", "age": 80 }, { "path": "dehors.txt", "content": "hors du dossier\n", "age": 90 } ], "cases": [ { "name": "lecture", "tool": "read", "args": { "file": "a.txt" }, "label": "a.txt", "result": "1: ligne 1\n2: ligne 2\n3: ligne 3" }, { "name": "lecture_fenetre", "tool": "read", "args": { "file": "a.txt", "limit": 1, "offset": 2 }, "label": "a.txt", "result": "2: ligne 2\n… (1 lignes restantes — relis avec offset=3)" }, { "name": "lecture_fenetre_decimale", "tool": "read", "args": { "file": "a.txt", "limit": "3", "offset": 2.7 }, "label": "a.txt", "result": "2: ligne 2\n3: ligne 3" }, { "name": "lecture_chemin_vide", "tool": "read", "args": { "file": " " }, "label": " ", "result": "[erreur] chemin vide" }, { "name": "lecture_absent", "tool": "read", "args": { "file": "absent.txt" }, "label": "absent.txt", "result": "[erreur] open {{ROOT}}/ws/absent.txt: no such file or directory" }, { "name": "lecture_dossier", "tool": "read", "args": { "file": "src" }, "label": "src", "result": "[erreur] read {{ROOT}}/ws/src: is a directory" }, { "name": "lecture_binaire", "tool": "read", "args": { "file": "bin.dat" }, "label": "bin.dat", "result": "[binaire] bin.dat (11 octets) — pas un fichier texte" }, { "name": "lecture_au_dela", "tool": "read", "args": { "file": "a.txt", "offset": 99 }, "label": "a.txt", "result": "[erreur] offset 99 > 3 lignes" }, { "name": "lecture_ligne_longue", "tool": "read", "args": { "file": "long.txt" }, "label": "long.txt", "result": "1: éééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééé…\n2: fin" }, { "name": "lecture_fichier_vide", "tool": "read", "args": { "file": "vide.txt" }, "label": "vide.txt", "result": "[erreur] offset 1 > 0 lignes" }, { "name": "lecture_absolue", "tool": "read", "args": { "file": "{{ROOT}}/dehors.txt" }, "label": "{{ROOT}}/dehors.txt", "result": "1: hors du dossier" }, { "name": "lecture_relative_sortante", "tool": "read", "args": { "file": "src/../../dehors.txt" }, "label": "src/../../dehors.txt", "result": "1: hors du dossier" }, { "name": "lecture_code_hors_dossier", "tool": "read", "args": { "file": "../dehors.txt" }, "code": true, "label": "../dehors.txt", "result": "[refusé] ../dehors.txt est hors du dossier de cette discussion. En mode code, tous les fichiers vivent dans le dossier de travail — utilise des chemins relatifs." }, { "name": "lecture_code", "tool": "read", "args": { "file": "b.txt" }, "code": true, "label": "b.txt", "result": "1: alpha\n2: beta" }, { "name": "grep", "tool": "grep", "args": { "pattern": "ligne [12]" }, "label": "ligne [12]", "result": "a.txt:1: ligne 1\na.txt:2: ligne 2" }, { "name": "grep_filtre", "tool": "grep", "args": { "glob": "*.go", "pattern": "x" }, "label": "x", "result": "src/lib/util.go:2: // x marque\nsrc/main.go:3: func main() { x := 1 }" }, { "name": "grep_filtre_classe", "tool": "grep", "args": { "glob": "[mn]*", "pattern": "x" }, "label": "x", "result": "src/lib/notes.md:1: x dans les notes\nsrc/main.go:3: func main() { x := 1 }" }, { "name": "grep_fichier", "tool": "grep", "args": { "path": "b.txt", "pattern": "beta" }, "label": "beta", "result": ".:2: beta" }, { "name": "grep_sous_dossier", "tool": "grep", "args": { "path": "src/lib", "pattern": "package" }, "label": "package", "result": "util.go:1: package lib" }, { "name": "grep_point", "tool": "grep", "args": { "path": ".", "pattern": "alpha" }, "label": "alpha", "result": "b.txt:1: alpha" }, { "name": "grep_aucun", "tool": "grep", "args": { "pattern": "zzz" }, "label": "zzz", "result": "[aucun résultat]" }, { "name": "grep_motif_vide", "tool": "grep", "args": { "pattern": " " }, "label": " ", "result": "[erreur] motif vide" }, { "name": "grep_plafond", "tool": "grep", "args": { "pattern": "aiguille" }, "label": "aiguille", "result": "beaucoup.txt:1: aiguille\nbeaucoup.txt:2: aiguille\nbeaucoup.txt:3: aiguille\nbeaucoup.txt:4: aiguille\nbeaucoup.txt:5: aiguille\nbeaucoup.txt:6: aiguille\nbeaucoup.txt:7: aiguille\nbeaucoup.txt:8: aiguille\nbeaucoup.txt:9: aiguille\nbeaucoup.txt:10: aiguille\nbeaucoup.txt:11: aiguille\nbeaucoup.txt:12: aiguille\nbeaucoup.txt:13: aiguille\nbeaucoup.txt:14: aiguille\nbeaucoup.txt:15: aiguille\nbeaucoup.txt:16: aiguille\nbeaucoup.txt:17: aiguille\nbeaucoup.txt:18: aiguille\nbeaucoup.txt:19: aiguille\nbeaucoup.txt:20: aiguille\nbeaucoup.txt:21: aiguille\nbeaucoup.txt:22: aiguille\nbeaucoup.txt:23: aiguille\nbeaucoup.txt:24: aiguille\nbeaucoup.txt:25: aiguille\nbeaucoup.txt:26: aiguille\nbeaucoup.txt:27: aiguille\nbeaucoup.txt:28: aiguille\nbeaucoup.txt:29: aiguille\nbeaucoup.txt:30: aiguille\nbeaucoup.txt:31: aiguille\nbeaucoup.txt:32: aiguille\nbeaucoup.txt:33: aiguille\nbeaucoup.txt:34: aiguille\nbeaucoup.txt:35: aiguille\nbeaucoup.txt:36: aiguille\nbeaucoup.txt:37: aiguille\nbeaucoup.txt:38: aiguille\nbeaucoup.txt:39: aiguille\nbeaucoup.txt:40: aiguille\nbeaucoup.txt:41: aiguille\nbeaucoup.txt:42: aiguille\nbeaucoup.txt:43: aiguille\nbeaucoup.txt:44: aiguille\nbeaucoup.txt:45: aiguille\nbeaucoup.txt:46: aiguille\nbeaucoup.txt:47: aiguille\nbeaucoup.txt:48: aiguille\nbeaucoup.txt:49: aiguille\nbeaucoup.txt:50: aiguille\nbeaucoup.txt:51: aiguille\nbeaucoup.txt:52: aiguille\nbeaucoup.txt:53: aiguille\nbeaucoup.txt:54: aiguille\nbeaucoup.txt:55: aiguille\nbeaucoup.txt:56: aiguille\nbeaucoup.txt:57: aiguille\nbeaucoup.txt:58: aiguille\nbeaucoup.txt:59: aiguille\nbeaucoup.txt:60: aiguille\n… (plafond de 60 résultats atteint — affine le motif)" }, { "name": "grep_absent", "tool": "grep", "args": { "path": "nulle-part", "pattern": "a" }, "label": "a", "result": "[aucun résultat]" }, { "name": "grep_code_hors_dossier", "tool": "grep", "args": { "path": "{{ROOT}}", "pattern": "a" }, "code": true, "label": "a", "result": "[refusé] {{ROOT}} est hors du dossier de cette discussion. En mode code, tous les fichiers vivent dans le dossier de travail — utilise des chemins relatifs." }, { "name": "glob_go", "tool": "glob", "args": { "pattern": "**/*.go" }, "label": "**/*.go", "result": "src/lib/util.go\nsrc/main.go" }, { "name": "glob_racine", "tool": "glob", "args": { "pattern": "*.txt" }, "label": "*.txt", "result": "crlf.txt\nlong.txt\nvide.txt\nb.txt\na.txt\nbeaucoup.txt" }, { "name": "glob_point", "tool": "glob", "args": { "pattern": "./src/*" }, "label": "./src/*", "result": "src/main.go" }, { "name": "glob_aucun", "tool": "glob", "args": { "pattern": "*.rs" }, "label": "*.rs", "result": "[aucun fichier]" }, { "name": "glob_vide", "tool": "glob", "args": { "pattern": "" }, "label": "", "result": "[erreur] motif vide" }, { "name": "question", "tool": "ask", "args": { "options": [ "a", " ", "b", "c", "d", "e" ], "question": "Lequel ?" }, "label": "Lequel ?", "result": "[question posée à l'utilisateur] Termine ton tour MAINTENANT sans appeler d'autre outil : sa réponse arrivera comme prochain message.", "ask": { "question": "Lequel ?", "options": [ "a", "b", "c", "d" ] } }, { "name": "question_vide", "tool": "ask", "args": { "question": "" }, "label": "", "result": "[erreur] question vide" }, { "name": "ecriture_neuve", "tool": "write", "args": { "content": "un\ndeux\n", "file": "neuf/n.txt" }, "label": "neuf/n.txt", "result": "[ok] {{ROOT}}/ws/neuf/n.txt créé (8 octets)", "diff": [ { "op": "+", "text": "un" }, { "op": "+", "text": "deux" } ], "added": 2 }, { "name": "ecriture_existant", "tool": "write", "args": { "content": "remplacé\n", "file": "b.txt" }, "label": "b.txt", "result": "[ok] {{ROOT}}/ws/b.txt réécrit (10 octets)", "diff": [ { "op": "+", "text": "remplacé" } ], "added": 1 }, { "name": "ecriture_memoire", "tool": "write", "args": { "content": "x\n", "file": "{{MEM}}/x.md" }, "label": "{{ROOT}}/memory/generale/x.md", "result": "[refusé] pas d'accès direct au dossier {{ROOT}}/memory/generale. Utilise les outils mem_* (mem_search/mem_read/mem_add/mem_edit/mem_delete).", "diff": [ { "op": "+", "text": "x" } ], "added": 1 }, { "name": "ecriture_chemin_vide", "tool": "write", "args": { "content": "x", "file": "" }, "label": "", "result": "[erreur] chemin vide" }, { "name": "ecriture_code_non_lu", "tool": "write", "args": { "content": "x\n", "file": "src/lib/notes.md" }, "code": true, "label": "src/lib/notes.md", "result": "[refusé] {{ROOT}}/ws/src/lib/notes.md existe mais tu ne l'as pas lu dans cette discussion. Lis-le d'abord (outil read), puis modifie-le." }, { "name": "ecriture_code_hors_dossier", "tool": "write", "args": { "content": "x\n", "file": "../evade.txt" }, "code": true, "label": "../evade.txt", "result": "[refusé] ../evade.txt est hors du dossier de cette discussion. En mode code, tous les fichiers vivent dans le dossier de travail — utilise des chemins relatifs." }, { "name": "ecriture_code_neuve", "tool": "write", "args": { "content": "c\n", "file": "code.txt" }, "code": true, "label": "code.txt", "result": "[ok] {{ROOT}}/ws/code.txt créé (2 octets)", "diff": [ { "op": "+", "text": "c" } ], "added": 1 }, { "name": "edition", "tool": "edit", "args": { "file": "a.txt", "new": "ligne deux", "old": "ligne 2" }, "label": "a.txt", "result": "[ok] {{ROOT}}/ws/a.txt modifié (1 remplacement)", "diff": [ { "op": "-", "text": "ligne 2" }, { "op": "+", "text": "ligne deux" } ], "added": 1, "removed": 1 }, { "name": "edition_deja_faite", "tool": "edit", "args": { "file": "a.txt", "new": "ligne deux", "old": "ligne 2" }, "label": "a.txt", "result": "[ok] déjà à jour — le fichier contient déjà cette modification", "diff": [ { "op": "-", "text": "ligne 2" }, { "op": "+", "text": "ligne deux" } ], "added": 1, "removed": 1 }, { "name": "edition_introuvable", "tool": "edit", "args": { "file": "a.txt", "new": "y", "old": "zzz" }, "label": "a.txt", "result": "[erreur] old introuvable dans le fichier" }, { "name": "edition_ambigue", "tool": "edit", "args": { "file": "a.txt", "new": "l", "old": "ligne" }, "label": "a.txt", "result": "[erreur] old apparaît 3 fois — ajoute du contexte pour le rendre unique" }, { "name": "edition_crlf", "tool": "edit", "args": { "file": "crlf.txt", "new": "2\n3", "old": "deux\ntrois" }, "label": "crlf.txt", "result": "[ok] {{ROOT}}/ws/crlf.txt modifié (1 remplacement)", "diff": [ { "op": "-", "text": "deux" }, { "op": "-", "text": "trois" }, { "op": "+", "text": "2" }, { "op": "+", "text": "3" } ], "added": 2, "removed": 2 }, { "name": "edition_old_vide", "tool": "edit", "args": { "file": "a.txt", "new": "y", "old": "" }, "label": "a.txt", "result": "[erreur] old vide" }, { "name": "edition_fichier_absent", "tool": "edit", "args": { "file": "absent.txt", "new": "b", "old": "a" }, "label": "absent.txt", "result": "[erreur] open {{ROOT}}/ws/absent.txt: no such file or directory" }, { "name": "edition_code_non_lu", "tool": "edit", "args": { "file": "src/main.go", "new": "x := 2", "old": "x := 1" }, "code": true, "label": "src/main.go", "result": "[refusé] {{ROOT}}/ws/src/main.go existe mais tu ne l'as pas lu dans cette discussion. Lis-le d'abord (outil read), puis modifie-le." }, { "name": "edition_code_apres_lecture", "tool": "edit", "args": { "file": "b.txt", "new": "rem", "old": "remplacé" }, "code": true, "label": "b.txt", "result": "[ok] {{ROOT}}/ws/b.txt modifié (1 remplacement)", "diff": [ { "op": "-", "text": "remplacé" }, { "op": "+", "text": "rem" } ], "added": 1, "removed": 1 }, { "name": "shell", "tool": "bash", "args": { "command": "echo bonjour" }, "unix": true, "label": "echo bonjour", "result": "exit: 0 · {{DUR}}\n\nstdout:\nbonjour\n" }, { "name": "shell_sortie_et_erreurs", "tool": "bash", "args": { "command": "echo out; echo err >&2; exit 3" }, "unix": true, "label": "echo out; echo err >&2; exit 3", "result": "exit: 3 · {{DUR}}\n\nstdout:\nout\n\n\nstderr:\nerr\n" }, { "name": "shell_tail", "tool": "bash", "args": { "command": "printf 'a\\nb\\nc\\n' | tail -2" }, "unix": true, "label": "printf 'a\\nb\\nc\\n' | tail -2", "result": "exit: 0 · {{DUR}}\n\nstdout:\nb\nc" }, { "name": "shell_ansi", "tool": "bash", "args": { "command": "printf '\\033[31mrouge\\033[0m\\n'" }, "unix": true, "label": "printf '\\033[31mrouge\\033[0m\\n'", "result": "exit: 0 · {{DUR}}\n\nstdout:\nrouge\n" }, { "name": "shell_dossier", "tool": "bash", "args": { "command": "ls src" }, "unix": true, "label": "ls src", "result": "exit: 0 · {{DUR}}\n\nstdout:\nlib\nmain.go\n" }, { "name": "shell_longue_sortie", "tool": "bash", "args": { "command": "seq 1 3000" }, "unix": true, "label": "seq 1 3000", "result": "exit: 0 · {{DUR}}\n\nstdout:\n[sortie tronquée : 13893 caractères au total, seuls les 8000 derniers sont gardés]\n1401\n1402\n1403\n1404\n1405\n1406\n1407\n1408\n1409\n1410\n1411\n1412\n1413\n1414\n1415\n1416\n1417\n1418\n1419\n1420\n1421\n1422\n1423\n1424\n1425\n1426\n1427\n1428\n1429\n1430\n1431\n1432\n1433\n1434\n1435\n1436\n1437\n1438\n1439\n1440\n1441\n1442\n1443\n1444\n1445\n1446\n1447\n1448\n1449\n1450\n1451\n1452\n1453\n1454\n1455\n1456\n1457\n1458\n1459\n1460\n1461\n1462\n1463\n1464\n1465\n1466\n1467\n1468\n1469\n1470\n1471\n1472\n1473\n1474\n1475\n1476\n1477\n1478\n1479\n1480\n1481\n1482\n1483\n1484\n1485\n1486\n1487\n1488\n1489\n1490\n1491\n1492\n1493\n1494\n1495\n1496\n1497\n1498\n1499\n1500\n1501\n1502\n1503\n1504\n1505\n1506\n1507\n1508\n1509\n1510\n1511\n1512\n1513\n1514\n1515\n1516\n1517\n1518\n1519\n1520\n1521\n1522\n1523\n1524\n1525\n1526\n1527\n1528\n1529\n1530\n1531\n1532\n1533\n1534\n1535\n1536\n1537\n1538\n1539\n1540\n1541\n1542\n1543\n1544\n1545\n1546\n1547\n1548\n1549\n1550\n1551\n1552\n1553\n1554\n1555\n1556\n1557\n1558\n1559\n1560\n1561\n1562\n1563\n1564\n1565\n1566\n1567\n1568\n1569\n1570\n1571\n1572\n1573\n1574\n1575\n1576\n1577\n1578\n1579\n1580\n1581\n1582\n1583\n1584\n1585\n1586\n1587\n1588\n1589\n1590\n1591\n1592\n1593\n1594\n1595\n1596\n1597\n1598\n1599\n1600\n1601\n1602\n1603\n1604\n1605\n1606\n1607\n1608\n1609\n1610\n1611\n1612\n1613\n1614\n1615\n1616\n1617\n1618\n1619\n1620\n1621\n1622\n1623\n1624\n1625\n1626\n1627\n1628\n1629\n1630\n1631\n1632\n1633\n1634\n1635\n1636\n1637\n1638\n1639\n1640\n1641\n1642\n1643\n1644\n1645\n1646\n1647\n1648\n1649\n1650\n1651\n1652\n1653\n1654\n1655\n1656\n1657\n1658\n1659\n1660\n1661\n1662\n1663\n1664\n1665\n1666\n1667\n1668\n1669\n1670\n1671\n1672\n1673\n1674\n1675\n1676\n1677\n1678\n1679\n1680\n1681\n1682\n1683\n1684\n1685\n1686\n1687\n1688\n1689\n1690\n1691\n1692\n1693\n1694\n1695\n1696\n1697\n1698\n1699\n1700\n1701\n1702\n1703\n1704\n1705\n1706\n1707\n1708\n1709\n1710\n1711\n1712\n1713\n1714\n1715\n1716\n1717\n1718\n1719\n1720\n1721\n1722\n1723\n1724\n1725\n1726\n1727\n1728\n1729\n1730\n1731\n1732\n1733\n1734\n1735\n1736\n1737\n1738\n1739\n1740\n1741\n1742\n1743\n1744\n1745\n1746\n1747\n1748\n1749\n1750\n1751\n1752\n1753\n1754\n1755\n1756\n1757\n1758\n1759\n1760\n1761\n1762\n1763\n1764\n1765\n1766\n1767\n1768\n1769\n1770\n1771\n1772\n1773\n1774\n1775\n1776\n1777\n1778\n1779\n1780\n1781\n1782\n1783\n1784\n1785\n1786\n1787\n1788\n1789\n1790\n1791\n1792\n1793\n1794\n1795\n1796\n1797\n1798\n1799\n1800\n1801\n1802\n1803\n1804\n1805\n1806\n1807\n1808\n1809\n1810\n1811\n1812\n1813\n1814\n1815\n1816\n1817\n1818\n1819\n1820\n1821\n1822\n1823\n1824\n1825\n1826\n1827\n1828\n1829\n1830\n1831\n1832\n1833\n1834\n1835\n1836\n1837\n1838\n1839\n1840\n1841\n1842\n1843\n1844\n1845\n1846\n1847\n1848\n1849\n1850\n1851\n1852\n1853\n1854\n1855\n1856\n1857\n1858\n1859\n1860\n1861\n1862\n1863\n1864\n1865\n1866\n1867\n1868\n1869\n1870\n1871\n1872\n1873\n1874\n1875\n1876\n1877\n1878\n1879\n1880\n1881\n1882\n1883\n1884\n1885\n1886\n1887\n1888\n1889\n1890\n1891\n1892\n1893\n1894\n1895\n1896\n1897\n1898\n1899\n1900\n1901\n1902\n1903\n1904\n1905\n1906\n1907\n1908\n1909\n1910\n1911\n1912\n1913\n1914\n1915\n1916\n1917\n1918\n1919\n1920\n1921\n1922\n1923\n1924\n1925\n1926\n1927\n1928\n1929\n1930\n1931\n1932\n1933\n1934\n1935\n1936\n1937\n1938\n1939\n1940\n1941\n1942\n1943\n1944\n1945\n1946\n1947\n1948\n1949\n1950\n1951\n1952\n1953\n1954\n1955\n1956\n1957\n1958\n1959\n1960\n1961\n1962\n1963\n1964\n1965\n1966\n1967\n1968\n1969\n1970\n1971\n1972\n1973\n1974\n1975\n1976\n1977\n1978\n1979\n1980\n1981\n1982\n1983\n1984\n1985\n1986\n1987\n1988\n1989\n1990\n1991\n1992\n1993\n1994\n1995\n1996\n1997\n1998\n1999\n2000\n2001\n2002\n2003\n2004\n2005\n2006\n2007\n2008\n2009\n2010\n2011\n2012\n2013\n2014\n2015\n2016\n2017\n2018\n2019\n2020\n2021\n2022\n2023\n2024\n2025\n2026\n2027\n2028\n2029\n2030\n2031\n2032\n2033\n2034\n2035\n2036\n2037\n2038\n2039\n2040\n2041\n2042\n2043\n2044\n2045\n2046\n2047\n2048\n2049\n2050\n2051\n2052\n2053\n2054\n2055\n2056\n2057\n2058\n2059\n2060\n2061\n2062\n2063\n2064\n2065\n2066\n2067\n2068\n2069\n2070\n2071\n2072\n2073\n2074\n2075\n2076\n2077\n2078\n2079\n2080\n2081\n2082\n2083\n2084\n2085\n2086\n2087\n2088\n2089\n2090\n2091\n2092\n2093\n2094\n2095\n2096\n2097\n2098\n2099\n2100\n2101\n2102\n2103\n2104\n2105\n2106\n2107\n2108\n2109\n2110\n2111\n2112\n2113\n2114\n2115\n2116\n2117\n2118\n2119\n2120\n2121\n2122\n2123\n2124\n2125\n2126\n2127\n2128\n2129\n2130\n2131\n2132\n2133\n2134\n2135\n2136\n2137\n2138\n2139\n2140\n2141\n2142\n2143\n2144\n2145\n2146\n2147\n2148\n2149\n2150\n2151\n2152\n2153\n2154\n2155\n2156\n2157\n2158\n2159\n2160\n2161\n2162\n2163\n2164\n2165\n2166\n2167\n2168\n2169\n2170\n2171\n2172\n2173\n2174\n2175\n2176\n2177\n2178\n2179\n2180\n2181\n2182\n2183\n2184\n2185\n2186\n2187\n2188\n2189\n2190\n2191\n2192\n2193\n2194\n2195\n2196\n2197\n2198\n2199\n2200\n2201\n2202\n2203\n2204\n2205\n2206\n2207\n2208\n2209\n2210\n2211\n2212\n2213\n2214\n2215\n2216\n2217\n2218\n2219\n2220\n2221\n2222\n2223\n2224\n2225\n2226\n2227\n2228\n2229\n2230\n2231\n2232\n2233\n2234\n2235\n2236\n2237\n2238\n2239\n2240\n2241\n2242\n2243\n2244\n2245\n2246\n2247\n2248\n2249\n2250\n2251\n2252\n2253\n2254\n2255\n2256\n2257\n2258\n2259\n2260\n2261\n2262\n2263\n2264\n2265\n2266\n2267\n2268\n2269\n2270\n2271\n2272\n2273\n2274\n2275\n2276\n2277\n2278\n2279\n2280\n2281\n2282\n2283\n2284\n2285\n2286\n2287\n2288\n2289\n2290\n2291\n2292\n2293\n2294\n2295\n2296\n2297\n2298\n2299\n2300\n2301\n2302\n2303\n2304\n2305\n2306\n2307\n2308\n2309\n2310\n2311\n2312\n2313\n2314\n2315\n2316\n2317\n2318\n2319\n2320\n2321\n2322\n2323\n2324\n2325\n2326\n2327\n2328\n2329\n2330\n2331\n2332\n2333\n2334\n2335\n2336\n2337\n2338\n2339\n2340\n2341\n2342\n2343\n2344\n2345\n2346\n2347\n2348\n2349\n2350\n2351\n2352\n2353\n2354\n2355\n2356\n2357\n2358\n2359\n2360\n2361\n2362\n2363\n2364\n2365\n2366\n2367\n2368\n2369\n2370\n2371\n2372\n2373\n2374\n2375\n2376\n2377\n2378\n2379\n2380\n2381\n2382\n2383\n2384\n2385\n2386\n2387\n2388\n2389\n2390\n2391\n2392\n2393\n2394\n2395\n2396\n2397\n2398\n2399\n2400\n2401\n2402\n2403\n2404\n2405\n2406\n2407\n2408\n2409\n2410\n2411\n2412\n2413\n2414\n2415\n2416\n2417\n2418\n2419\n2420\n2421\n2422\n2423\n2424\n2425\n2426\n2427\n2428\n2429\n2430\n2431\n2432\n2433\n2434\n2435\n2436\n2437\n2438\n2439\n2440\n2441\n2442\n2443\n2444\n2445\n2446\n2447\n2448\n2449\n2450\n2451\n2452\n2453\n2454\n2455\n2456\n2457\n2458\n2459\n2460\n2461\n2462\n2463\n2464\n2465\n2466\n2467\n2468\n2469\n2470\n2471\n2472\n2473\n2474\n2475\n2476\n2477\n2478\n2479\n2480\n2481\n2482\n2483\n2484\n2485\n2486\n2487\n2488\n2489\n2490\n2491\n2492\n2493\n2494\n2495\n2496\n2497\n2498\n2499\n2500\n2501\n2502\n2503\n2504\n2505\n2506\n2507\n2508\n2509\n2510\n2511\n2512\n2513\n2514\n2515\n2516\n2517\n2518\n2519\n2520\n2521\n2522\n2523\n2524\n2525\n2526\n2527\n2528\n2529\n2530\n2531\n2532\n2533\n2534\n2535\n2536\n2537\n2538\n2539\n2540\n2541\n2542\n2543\n2544\n2545\n2546\n2547\n2548\n2549\n2550\n2551\n2552\n2553\n2554\n2555\n2556\n2557\n2558\n2559\n2560\n2561\n2562\n2563\n2564\n2565\n2566\n2567\n2568\n2569\n2570\n2571\n2572\n2573\n2574\n2575\n2576\n2577\n2578\n2579\n2580\n2581\n2582\n2583\n2584\n2585\n2586\n2587\n2588\n2589\n2590\n2591\n2592\n2593\n2594\n2595\n2596\n2597\n2598\n2599\n2600\n2601\n2602\n2603\n2604\n2605\n2606\n2607\n2608\n2609\n2610\n2611\n2612\n2613\n2614\n2615\n2616\n2617\n2618\n2619\n2620\n2621\n2622\n2623\n2624\n2625\n2626\n2627\n2628\n2629\n2630\n2631\n2632\n2633\n2634\n2635\n2636\n2637\n2638\n2639\n2640\n2641\n2642\n2643\n2644\n2645\n2646\n2647\n2648\n2649\n2650\n2651\n2652\n2653\n2654\n2655\n2656\n2657\n2658\n2659\n2660\n2661\n2662\n2663\n2664\n2665\n2666\n2667\n2668\n2669\n2670\n2671\n2672\n2673\n2674\n2675\n2676\n2677\n2678\n2679\n2680\n2681\n2682\n2683\n2684\n2685\n2686\n2687\n2688\n2689\n2690\n2691\n2692\n2693\n2694\n2695\n2696\n2697\n2698\n2699\n2700\n2701\n2702\n2703\n2704\n2705\n2706\n2707\n2708\n2709\n2710\n2711\n2712\n2713\n2714\n2715\n2716\n2717\n2718\n2719\n2720\n2721\n2722\n2723\n2724\n2725\n2726\n2727\n2728\n2729\n2730\n2731\n2732\n2733\n2734\n2735\n2736\n2737\n2738\n2739\n2740\n2741\n2742\n2743\n2744\n2745\n2746\n2747\n2748\n2749\n2750\n2751\n2752\n2753\n2754\n2755\n2756\n2757\n2758\n2759\n2760\n2761\n2762\n2763\n2764\n2765\n2766\n2767\n2768\n2769\n2770\n2771\n2772\n2773\n2774\n2775\n2776\n2777\n2778\n2779\n2780\n2781\n2782\n2783\n2784\n2785\n2786\n2787\n2788\n2789\n2790\n2791\n2792\n2793\n2794\n2795\n2796\n2797\n2798\n2799\n2800\n2801\n2802\n2803\n2804\n2805\n2806\n2807\n2808\n2809\n2810\n2811\n2812\n2813\n2814\n2815\n2816\n2817\n2818\n2819\n2820\n2821\n2822\n2823\n2824\n2825\n2826\n2827\n2828\n2829\n2830\n2831\n2832\n2833\n2834\n2835\n2836\n2837\n2838\n2839\n2840\n2841\n2842\n2843\n2844\n2845\n2846\n2847\n2848\n2849\n2850\n2851\n2852\n2853\n2854\n2855\n2856\n2857\n2858\n2859\n2860\n2861\n2862\n2863\n2864\n2865\n2866\n2867\n2868\n2869\n2870\n2871\n2872\n2873\n2874\n2875\n2876\n2877\n2878\n2879\n2880\n2881\n2882\n2883\n2884\n2885\n2886\n2887\n2888\n2889\n2890\n2891\n2892\n2893\n2894\n2895\n2896\n2897\n2898\n2899\n2900\n2901\n2902\n2903\n2904\n2905\n2906\n2907\n2908\n2909\n2910\n2911\n2912\n2913\n2914\n2915\n2916\n2917\n2918\n2919\n2920\n2921\n2922\n2923\n2924\n2925\n2926\n2927\n2928\n2929\n2930\n2931\n2932\n2933\n2934\n2935\n2936\n2937\n2938\n2939\n2940\n2941\n2942\n2943\n2944\n2945\n2946\n2947\n2948\n2949\n2950\n2951\n2952\n2953\n2954\n2955\n2956\n2957\n2958\n2959\n2960\n2961\n2962\n2963\n2964\n2965\n2966\n2967\n2968\n2969\n2970\n2971\n2972\n2973\n2974\n2975\n2976\n2977\n2978\n2979\n2980\n2981\n2982\n2983\n2984\n2985\n2986\n2987\n2988\n2989\n2990\n2991\n2992\n2993\n2994\n2995\n2996\n2997\n2998\n2999\n3000\n" }, { "name": "shell_delai", "tool": "bash", "args": { "command": "echo avant; sleep 3", "timeout": 1 }, "unix": true, "label": "echo avant; sleep 3", "result": "[timeout après 1s — commande arrêtée ; pour un serveur ou une tâche longue, utilise bash_bg]\n\nstdout (partiel):\navant\n" }, { "name": "shell_dangereux", "tool": "bash", "args": { "command": "rm -rf /" }, "label": "rm -rf /", "result": "[refusé] Commande bloquée par la politique de sécurité : efface la racine du disque ou le home. Ne la réessaie pas, même reformulée. Si l'utilisateur la veut vraiment, dis-lui de la lancer lui-même dans un terminal." }, { "name": "shell_memoire", "tool": "bash", "args": { "command": "cat {{MEM}}/x.md" }, "unix": true, "label": "cat {{ROOT}}/memory/generale/x.md", "result": "[refusé] pas d'accès direct au dossier {{ROOT}}/memory/generale via le shell. Utilise les outils mem_* (mem_search/mem_read/mem_add/mem_edit/mem_delete)." }, { "name": "shell_code_arriere_plan", "tool": "bash", "args": { "command": "sleep 1 &" }, "code": true, "unix": true, "label": "sleep 1 &", "result": "[refusé] commande terminée par « & » : lance-la avec bash_bg (sortie consultable avec bash_tail), pas en arrière-plan dans bash." } ], "after": { "dehors.txt": "hors du dossier\n", "ws/a.txt": "ligne 1\nligne deux\nligne 3\n", "ws/b.txt": "rem\n", "ws/beaucoup.txt": "aiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\naiguille\n", "ws/bin.dat": "PK\u0000\u0001binaire", "ws/code.txt": "c\n", "ws/crlf.txt": "un\r\n2\r\n3\r\n", "ws/long.txt": "éééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééé\nfin\n", "ws/neuf/n.txt": "un\ndeux\n", "ws/node_modules/dep/index.js": "ligne cachée\n", "ws/src/lib/notes.md": "x dans les notes\n", "ws/src/lib/util.go": "package lib\n// x marque\n", "ws/src/main.go": "package main\n\nfunc main() { x := 1 }\n", "ws/vide.txt": "" } }