[{"data":1,"prerenderedAt":543},["ShallowReactive",2],{"navigation_docs":3,"-tools-image-manager":139,"-tools-image-manager-surround":538},[4,8,12,16,20,24,28,32,59,63,117,121,135],{"title":5,"path":6,"stem":7},"Introduction","\u002Fintroduction","1.introduction",{"title":9,"path":10,"stem":11},"Memory","\u002Fmemory","10.memory",{"title":13,"path":14,"stem":15},"Customization","\u002Fcustomization","11.customization",{"title":17,"path":18,"stem":19},"Deployment","\u002Fdeployment","12.deployment",{"title":21,"path":22,"stem":23},"Reference","\u002Freference","13.reference",{"title":25,"path":26,"stem":27},"Quickstart","\u002Fquickstart","2.quickstart",{"title":29,"path":30,"stem":31},"Installation","\u002Finstallation","3.installation",{"title":33,"icon":34,"path":35,"stem":36,"children":37,"page":58},"Connectors","i-lucide-cable","\u002Fconnectors","4.connectors",[38,42,46,50,54],{"title":39,"path":40,"stem":41},"Telegram","\u002Fconnectors\u002Ftelegram","4.connectors\u002F1.telegram",{"title":43,"path":44,"stem":45},"Slack","\u002Fconnectors\u002Fslack","4.connectors\u002F2.slack",{"title":47,"path":48,"stem":49},"Email","\u002Fconnectors\u002Femail","4.connectors\u002F3.email",{"title":51,"path":52,"stem":53},"API","\u002Fconnectors\u002Fapi","4.connectors\u002F4.api",{"title":55,"path":56,"stem":57},"Terminal","\u002Fconnectors\u002Fterminal","4.connectors\u002F5.terminal",false,{"title":60,"path":61,"stem":62},"Attachments","\u002Fattachments","5.attachments",{"title":64,"icon":65,"path":66,"stem":67,"children":68,"page":58},"Tools","i-lucide-wrench","\u002Ftools","6.tools",[69,73,77,81,85,89,93,97,101,105,109,113],{"title":70,"path":71,"stem":72},"File Manager","\u002Ftools\u002Ffile-manager","6.tools\u002F1.file-manager",{"title":74,"path":75,"stem":76},"Text-to-Speech","\u002Ftools\u002Ftext-to-speech","6.tools\u002F10.text-to-speech",{"title":78,"path":79,"stem":80},"Confirmations","\u002Ftools\u002Fconfirmations","6.tools\u002F11.confirmations",{"title":82,"path":83,"stem":84},"Adding Custom Tools","\u002Ftools\u002Fadding-custom-tools","6.tools\u002F12.adding-custom-tools",{"title":86,"path":87,"stem":88},"Image Manager","\u002Ftools\u002Fimage-manager","6.tools\u002F2.image-manager",{"title":90,"path":91,"stem":92},"Web Request","\u002Ftools\u002Fweb-request","6.tools\u002F3.web-request",{"title":94,"path":95,"stem":96},"Reminders","\u002Ftools\u002Freminders","6.tools\u002F4.reminders",{"title":98,"path":99,"stem":100},"Heartbeats","\u002Ftools\u002Fheartbeats","6.tools\u002F5.heartbeats",{"title":102,"path":103,"stem":104},"Email Manager","\u002Ftools\u002Femail-manager","6.tools\u002F6.email-manager",{"title":106,"path":107,"stem":108},"Calendar","\u002Ftools\u002Fcalendar","6.tools\u002F7.calendar",{"title":110,"path":111,"stem":112},"Read Database","\u002Ftools\u002Fread-database","6.tools\u002F8.read-database",{"title":114,"path":115,"stem":116},"Headless Browser","\u002Ftools\u002Fbrowser","6.tools\u002F9.browser",{"title":118,"path":119,"stem":120},"Tinker","\u002Ftinker","7.tinker",{"title":122,"icon":123,"path":124,"stem":125,"children":126,"page":58},"Skills","i-lucide-sparkles","\u002Fskills","8.skills",[127,131],{"title":128,"path":129,"stem":130},"Overview","\u002Fskills\u002Foverview","8.skills\u002F1.overview",{"title":132,"path":133,"stem":134},"Adding Custom Skills","\u002Fskills\u002Fadding-custom-skills","8.skills\u002F2.adding-custom-skills",{"title":136,"path":137,"stem":138},"Personas","\u002Fpersonas","9.personas",{"id":140,"title":86,"body":141,"description":531,"extension":532,"links":533,"meta":534,"navigation":535,"path":87,"seo":536,"stem":88,"__hash__":537},"docs\u002F6.tools\u002F2.image-manager.md",{"type":142,"value":143,"toc":520},"minimark",[144,148,160,163,167,184,198,202,209,249,253,314,325,329,335,384,387,391,397,435,439,445,498,502,516],[145,146,5],"h2",{"id":147},"introduction",[149,150,151,152,159],"p",{},"The Image Manager tool inspects and transforms images stored on any allowed disk. It uses ",[153,154,158],"a",{"href":155,"rel":156},"https:\u002F\u002Fgithub.com\u002Fspatie\u002Fimage",[157],"nofollow","Spatie Image",", which can run on either Imagick or GD.",[149,161,162],{},"After any transformation, the resulting image is automatically attached to the agent's reply.",[145,164,166],{"id":165},"drivers","Drivers",[168,169,174],"pre",{"className":170,"code":171,"language":172,"meta":173,"style":173},"language-env shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","LARACLAW_IMAGE_DRIVER=imagick\n","env","",[175,176,177],"code",{"__ignoreMap":173},[178,179,182],"span",{"class":180,"line":181},"line",1,[178,183,171],{},[149,185,186,187,190,191,194,195,197],{},"Valid values are ",[175,188,189],{},"imagick"," (default) and ",[175,192,193],{},"gd",". Imagick supports more formats and produces higher quality output, but requires the ",[175,196,189],{}," PHP extension.",[145,199,201],{"id":200},"inspecting-an-image","Inspecting an Image",[149,203,204,205,208],{},"The ",[175,206,207],{},"info"," operation returns the image's width, height, MIME type, and file size:",[210,211,212,225],"table",{},[213,214,215],"thead",{},[216,217,218,222],"tr",{},[219,220,221],"th",{},"Parameter",[219,223,224],{},"Description",[226,227,228,239],"tbody",{},[216,229,230,236],{},[231,232,233],"td",{},[175,234,235],{},"disk",[231,237,238],{},"Storage disk",[216,240,241,246],{},[231,242,243],{},[175,244,245],{},"path",[231,247,248],{},"Image file path",[145,250,252],{"id":251},"resizing-and-cropping","Resizing and Cropping",[210,254,255,268],{},[213,256,257],{},[216,258,259,262,265],{},[219,260,261],{},"Operation",[219,263,264],{},"Parameters",[219,266,267],{},"Notes",[226,269,270,294],{},[216,271,272,277,291],{},[231,273,274],{},[175,275,276],{},"resize",[231,278,279,281,282,281,284,287,288],{},[175,280,235],{},", ",[175,283,245],{},[175,285,286],{},"width"," and\u002For ",[175,289,290],{},"height",[231,292,293],{},"Aspect ratio is preserved when only one dimension is given",[216,295,296,301,311],{},[231,297,298],{},[175,299,300],{},"crop",[231,302,303,281,305,281,307,281,309],{},[175,304,235],{},[175,306,245],{},[175,308,286],{},[175,310,290],{},[231,312,313],{},"Crops to exact dimensions from the center",[149,315,316,317,320,321,324],{},"The output is saved alongside the source with a ",[175,318,319],{},"_resized"," or ",[175,322,323],{},"_cropped"," suffix, and attached to the reply.",[145,326,328],{"id":327},"format-conversion","Format Conversion",[149,330,204,331,334],{},[175,332,333],{},"convert"," operation changes the image format:",[210,336,337,345],{},[213,338,339],{},[216,340,341,343],{},[219,342,221],{},[219,344,224],{},[226,346,347,355,364],{},[216,348,349,353],{},[231,350,351],{},[175,352,235],{},[231,354,238],{},[216,356,357,361],{},[231,358,359],{},[175,360,245],{},[231,362,363],{},"Source image path",[216,365,366,371],{},[231,367,368],{},[175,369,370],{},"format",[231,372,373,374,281,377,380,381],{},"Target format: ",[175,375,376],{},"jpg",[175,378,379],{},"png",", or ",[175,382,383],{},"webp",[149,385,386],{},"The converted file is saved next to the original with the new extension.",[145,388,390],{"id":389},"optimization","Optimization",[149,392,204,393,396],{},[175,394,395],{},"optimize"," operation re-saves the image at a chosen quality level to reduce file size:",[210,398,399,407],{},[213,400,401],{},[216,402,403,405],{},[219,404,221],{},[219,406,224],{},[226,408,409,417,425],{},[216,410,411,415],{},[231,412,413],{},[175,414,235],{},[231,416,238],{},[216,418,419,423],{},[231,420,421],{},[175,422,245],{},[231,424,363],{},[216,426,427,432],{},[231,428,429],{},[175,430,431],{},"quality",[231,433,434],{},"Integer from 1 to 100",[145,436,438],{"id":437},"rotating-and-flipping","Rotating and Flipping",[149,440,204,441,444],{},[175,442,443],{},"orient"," operation rotates or flips the image:",[210,446,447,455],{},[213,448,449],{},[216,450,451,453],{},[219,452,221],{},[219,454,224],{},[226,456,457,465,473],{},[216,458,459,463],{},[231,460,461],{},[175,462,235],{},[231,464,238],{},[216,466,467,471],{},[231,468,469],{},[175,470,245],{},[231,472,363],{},[216,474,475,480],{},[231,476,477],{},[175,478,479],{},"orientation",[231,481,482,483,281,486,281,489,281,492,281,495],{},"One of: ",[175,484,485],{},"rotate_90",[175,487,488],{},"rotate_180",[175,490,491],{},"rotate_270",[175,493,494],{},"flip_horizontal",[175,496,497],{},"flip_vertical",[145,499,501],{"id":500},"returning-images-in-a-reply","Returning Images in a Reply",[149,503,504,505,281,507,281,509,281,511,281,513,515],{},"Every write operation (",[175,506,276],{},[175,508,300],{},[175,510,443],{},[175,512,333],{},[175,514,395],{},") automatically queues the resulting file for the connector to attach to the reply. The agent does not need a separate step.",[517,518,519],"style",{},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":173,"searchDepth":521,"depth":521,"links":522},2,[523,524,525,526,527,528,529,530],{"id":147,"depth":521,"text":5},{"id":165,"depth":521,"text":166},{"id":200,"depth":521,"text":201},{"id":251,"depth":521,"text":252},{"id":327,"depth":521,"text":328},{"id":389,"depth":521,"text":390},{"id":437,"depth":521,"text":438},{"id":500,"depth":521,"text":501},"Read image metadata and perform transformations like resize, crop, convert, and optimize.","md",null,{},true,{"title":86,"description":531},"xKtZgex6-A1nneNGOUElOGh5qMDl2YWIKu4zKw5kltI",[539,541],{"title":82,"path":83,"stem":84,"description":540,"children":-1},"Build your own tools and register them with the agent.",{"title":90,"path":91,"stem":92,"description":542,"children":-1},"Make outbound HTTP requests from the agent, with private network protection.",1786661906119]