[{"data":1,"prerenderedAt":3114},["ShallowReactive",2],{"navigation_docs":3,"-reference-automation-tools":172,"-reference-automation-tools-surround":3109},[4,30,100,134],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":29},"Getting started","i-lucide-rocket","\u002Fgetting-started","1.getting-started",[10,14,18,21,25],{"title":11,"path":12,"stem":13},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction",{"title":15,"path":16,"stem":17},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation",{"title":5,"path":19,"stem":20},"\u002Fgetting-started\u002Fquick-start","1.getting-started\u002F3.quick-start",{"title":22,"path":23,"stem":24},"Build from source","\u002Fgetting-started\u002Fbuild-from-source","1.getting-started\u002F4.build-from-source",{"title":26,"path":27,"stem":28},"Troubleshooting","\u002Fgetting-started\u002Ftroubleshooting","1.getting-started\u002F5.troubleshooting",false,{"title":31,"icon":32,"path":33,"stem":34,"children":35,"page":29},"Guide","i-lucide-book-open","\u002Fguide","2.guide",[36,40,44,48,52,56,60,64,68,72,76,80,84,88,92,96],{"title":37,"path":38,"stem":39},"Interface","\u002Fguide\u002Finterface","2.guide\u002F01.interface",{"title":41,"path":42,"stem":43},"Workspace","\u002Fguide\u002Fworkspace","2.guide\u002F02.workspace",{"title":45,"path":46,"stem":47},"Collections","\u002Fguide\u002Fcollections","2.guide\u002F03.collections",{"title":49,"path":50,"stem":51},"HTTP requests","\u002Fguide\u002Fhttp-requests","2.guide\u002F04.http-requests",{"title":53,"path":54,"stem":55},"Variables","\u002Fguide\u002Fvariables","2.guide\u002F05.variables",{"title":57,"path":58,"stem":59},"Authorization","\u002Fguide\u002Fauthorization","2.guide\u002F06.authorization",{"title":61,"path":62,"stem":63},"Scripts and tests","\u002Fguide\u002Fscripts-and-tests","2.guide\u002F07.scripts-and-tests",{"title":65,"path":66,"stem":67},"Collection runner","\u002Fguide\u002Fcollection-runner","2.guide\u002F08.collection-runner",{"title":69,"path":70,"stem":71},"Import and export","\u002Fguide\u002Fimport-export","2.guide\u002F09.import-export",{"title":73,"path":74,"stem":75},"Code snippets","\u002Fguide\u002Fcode-snippets","2.guide\u002F10.code-snippets",{"title":77,"path":78,"stem":79},"gRPC","\u002Fguide\u002Fgrpc","2.guide\u002F11.grpc",{"title":81,"path":82,"stem":83},"WebSocket","\u002Fguide\u002Fwebsocket","2.guide\u002F12.websocket",{"title":85,"path":86,"stem":87},"Cookies, proxy and certificates","\u002Fguide\u002Fcookies-proxy-certificates","2.guide\u002F13.cookies-proxy-certificates",{"title":89,"path":90,"stem":91},"Settings","\u002Fguide\u002Fsettings","2.guide\u002F14.settings",{"title":93,"path":94,"stem":95},"Keyboard shortcuts","\u002Fguide\u002Fkeyboard-shortcuts","2.guide\u002F15.keyboard-shortcuts",{"title":97,"path":98,"stem":99},"Privacy and security","\u002Fguide\u002Fprivacy-and-security","2.guide\u002F16.privacy-and-security",{"title":101,"icon":102,"path":103,"stem":104,"children":105,"page":29},"Reference","i-lucide-square-terminal","\u002Freference","3.reference",[106,110,114,118,122,126,130],{"title":107,"path":108,"stem":109},"Command line","\u002Freference\u002Fcli","3.reference\u002F1.cli",{"title":111,"path":112,"stem":113},"Automation tools","\u002Freference\u002Fautomation-tools","3.reference\u002F2.automation-tools",{"title":115,"path":116,"stem":117},"Scripting API","\u002Freference\u002Fscripting-api","3.reference\u002F3.scripting-api",{"title":119,"path":120,"stem":121},"Dynamic variables","\u002Freference\u002Fdynamic-variables","3.reference\u002F4.dynamic-variables",{"title":123,"path":124,"stem":125},"UI control channel","\u002Freference\u002Fui-control-channel","3.reference\u002F5.ui-control-channel",{"title":127,"path":128,"stem":129},"Workspace format","\u002Freference\u002Fworkspace-format","3.reference\u002F6.workspace-format",{"title":131,"path":132,"stem":133},"Feature status","\u002Freference\u002Ffeature-status","3.reference\u002F7.feature-status",{"title":135,"icon":136,"path":137,"stem":138,"children":139,"page":29},"Contributing","i-lucide-git-pull-request","\u002Fcontributing","4.contributing",[140,144,148,152,156,160,164,168],{"title":141,"path":142,"stem":143},"Contributing overview","\u002Fcontributing\u002Foverview","4.contributing\u002F1.overview",{"title":145,"path":146,"stem":147},"Development","\u002Fcontributing\u002Fdevelopment","4.contributing\u002F2.development",{"title":149,"path":150,"stem":151},"Architecture","\u002Fcontributing\u002Farchitecture","4.contributing\u002F3.architecture",{"title":153,"path":154,"stem":155},"Known gaps","\u002Fcontributing\u002Fgaps","4.contributing\u002F4.gaps",{"title":157,"path":158,"stem":159},"Adding a feature","\u002Fcontributing\u002Fadding-a-feature","4.contributing\u002F5.adding-a-feature",{"title":161,"path":162,"stem":163},"Assets and clean-room","\u002Fcontributing\u002Fassets-and-clean-room","4.contributing\u002F6.assets-and-clean-room",{"title":165,"path":166,"stem":167},"Releasing","\u002Fcontributing\u002Freleasing","4.contributing\u002F7.releasing",{"title":169,"path":170,"stem":171},"Writing the documentation","\u002Fcontributing\u002Fdocumentation","4.contributing\u002F8.documentation",{"id":173,"title":111,"body":174,"description":3102,"extension":3103,"links":3104,"meta":3105,"navigation":3106,"path":112,"seo":3107,"stem":113,"__hash__":3108},"docs\u002F3.reference\u002F2.automation-tools.md",{"type":175,"value":176,"toc":3083},"minimark",[177,191,230,238,243,433,437,459,462,494,501,519,676,690,693,897,901,919,922,1023,1027,1240,1244,1523,1527,1880,1884,2204,2207,2374,2378,2532,2536,2694,2698,2945,2948,3033,3037,3051,3054,3068,3079],[178,179,180,181,185,186,190],"p",{},"Every action the app can do to a workspace is a JSON tool. All frontends share the same tool table: the CLI today, an MCP server later. This page lists all ",[182,183,184],"strong",{},"71"," tools. It comes from the output of ",[187,188,189],"code",{},"postguy-cli tools --json",", which is the source of truth. Run it to get the schemas in machine-readable form.",[192,193,198],"pre",{"className":194,"code":195,"language":196,"meta":197,"style":197},"language-sh shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","postguy-cli tools            # name, safety and title, one line per tool\npostguy-cli tools --json     # {\"tools\":[{name,title,description,inputSchema,readOnly,destructive}]}\n","sh","",[187,199,200,217],{"__ignoreMap":197},[201,202,205,209,213],"span",{"class":203,"line":204},"line",1,[201,206,208],{"class":207},"sBMFI","postguy-cli",[201,210,212],{"class":211},"sfazB"," tools",[201,214,216],{"class":215},"sHwdD","            # name, safety and title, one line per tool\n",[201,218,220,222,224,227],{"class":203,"line":219},2,[201,221,208],{"class":207},[201,223,212],{"class":211},[201,225,226],{"class":211}," --json",[201,228,229],{"class":215},"     # {\"tools\":[{name,title,description,inputSchema,readOnly,destructive}]}\n",[178,231,232,233,237],{},"See the ",[234,235,236],"a",{"href":108},"CLI reference"," for the commands that run the tools.",[239,240,242],"h2",{"id":241},"how-calls-work","How calls work",[244,245,246,269,283,296,326,343,370,396,416],"ul",{},[247,248,249,252,253,256,257,260,261,264,265,268],"li",{},[182,250,251],{},"Arguments are one JSON object."," ",[187,254,255],{},"null"," or no ",[187,258,259],{},"--json"," means ",[187,262,263],{},"{}",". Any other JSON type is refused with \"argument ",[187,266,267],{},"(arguments)"," must be a JSON object\".",[247,270,271,274,275,278,279,282],{},[182,272,273],{},"Unknown arguments are refused."," The error lists what is allowed: ",[187,276,277],{},"tool: unknown argument `x`; allowed: a, b",". Every schema has ",[187,280,281],{},"additionalProperties: false",".",[247,284,285,252,288,291,292,295],{},[182,286,287],{},"Missing required arguments are refused:",[187,289,290],{},"tool: missing required argument `x` ",". Types are not checked up front. A wrong type fails inside the tool with a message like \"argument ",[187,293,294],{},"x"," must be ..., got ...\".",[247,297,298,301,302],{},[182,299,300],{},"Error strings"," say what was wrong and what is allowed. The ones you will meet most:\n",[244,303,304,309,314,320],{},[247,305,306],{},[187,307,308],{},"unknown tool `x`; run `postguy-cli tools` ",[247,310,311],{},[187,312,313],{},"no workspace is open; call workspace_open first",[247,315,316,319],{},[187,317,318],{},"collection `ID` not found in the workspace"," (the same shape for every entity kind)",[247,321,322,325],{},[187,323,324],{},"PATH is outside the allowed directory ROOT",": the same text whether or not the path exists.",[247,327,328,331,332,335,336,335,339,342],{},[182,329,330],{},"Ids"," are opaque strings. Get them from the list tools (",[187,333,334],{},"collection_list",", ",[187,337,338],{},"env_list",[187,340,341],{},"run_list",", ...) or from the result of a create tool. Postguy generates UUIDs. Ids from imported files can be shorter.",[247,344,345,348,349,352,353,356,357,335,360,363,364,367,368,282],{},[182,346,347],{},"Deletes go to the workspace trash."," Destructive tools are flagged ",[187,350,351],{},"destructive"," and move data to ",[187,354,355],{},".trash\u002F"," instead of erasing it. ",[187,358,359],{},"history_clear",[187,361,362],{},"console_clear"," and ",[187,365,366],{},"cookies_*"," clear their own stores. See ",[234,369,127],{"href":128},[247,371,372,375,376,335,379,335,382,335,385,388,389,392,393,395],{},[182,373,374],{},"Paths"," in arguments (",[187,377,378],{},"path",[187,380,381],{},"out",[187,383,384],{},"data",[187,386,387],{},"paths",") go through ",[187,390,391],{},"--root"," confinement when a root is set. Relative paths resolve against the root, and a path outside it is refused. Without ",[187,394,391],{},", nothing is confined and relative paths resolve against the current directory.",[247,397,398,401,402,335,405,335,408,411,412,415],{},[182,399,400],{},"Response bodies are capped at 1 MiB"," in tool results (",[187,403,404],{},"request_send",[187,406,407],{},"response_get",[187,409,410],{},"response_render_body","). Use ",[187,413,414],{},"response_save"," to get the full decoded body.",[247,417,418,252,421,335,423,363,426,429,430,432],{},[182,419,420],{},"Cancelling:",[187,422,404],{},[187,424,425],{},"request_cancel",[187,427,428],{},"collection_run"," do not hold the session lock while they run. So ",[187,431,425],{}," can stop an in-flight send from another thread. The CLI runs steps one after another, so this only matters for embedders.",[239,434,436],{"id":435},"one-call-is-one-process","One call is one process",[178,438,439,440,443,444,447,448,451,452,454,455,458],{},"Every ",[187,441,442],{},"postguy-cli call"," starts a new process with ",[182,445,446],{},"no workspace open",". Any tool other than ",[187,449,450],{},"workspace_open"," fails with ",[187,453,313],{},". For more than one step, use ",[187,456,457],{},"run --script",". It runs a list of steps in one process and one session.",[178,460,461],{},"A script file cannot pass one step's result to the next step, because arguments are static JSON. Tools take ids, not names. For name-based flows, pick one of these:",[244,463,464,481,484],{},[247,465,466,467,470,471,474,475,477,478,480],{},"Import something, then read the ids back with a list tool (",[187,468,469],{},"import_text"," or ",[187,472,473],{},"import_file",", then ",[187,476,334],{},"). Do this in a second ",[187,479,457],{}," call, or read the printed result lines.",[247,482,483],{},"Let an agent read each step's output and generate the next script.",[247,485,486,487,490,491,493],{},"Use ",[187,488,489],{},"run --collection NAME --workspace DIR",", which resolves names for you (see the ",[234,492,236],{"href":108},").",[495,496,498,500],"h3",{"id":497},"run-script-step-format",[187,499,457],{}," step format",[178,502,503,504,507,508,511,512,515,516,518],{},"A script is a JSON array of steps, or an object with a ",[187,505,506],{},"steps"," array. Each step is ",[187,509,510],{},"{\"tool\": \"\u003Cname>\", \"args\": {...}}","; ",[187,513,514],{},"args"," is optional. Steps run in order. The first step must be ",[187,517,450],{},", unless the tools you call need no workspace.",[192,520,524],{"className":521,"code":522,"language":523,"meta":197,"style":197},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","[\n  {\"tool\": \"workspace_open\", \"args\": {\"path\": \"work\"}},\n  {\"tool\": \"collection_create\", \"args\": {\"name\": \"Smoke\"}},\n  {\"tool\": \"collection_list\", \"args\": {}}\n]\n","json",[187,525,526,532,588,638,670],{"__ignoreMap":197},[201,527,528],{"class":203,"line":204},[201,529,531],{"class":530},"sMK4o","[\n",[201,533,534,537,540,544,546,549,552,554,556,559,561,563,565,567,570,572,574,576,578,580,583,585],{"class":203,"line":219},[201,535,536],{"class":530},"  {",[201,538,539],{"class":530},"\"",[201,541,543],{"class":542},"spNyl","tool",[201,545,539],{"class":530},[201,547,548],{"class":530},":",[201,550,551],{"class":530}," \"",[201,553,450],{"class":211},[201,555,539],{"class":530},[201,557,558],{"class":530},",",[201,560,551],{"class":530},[201,562,514],{"class":542},[201,564,539],{"class":530},[201,566,548],{"class":530},[201,568,569],{"class":530}," {",[201,571,539],{"class":530},[201,573,378],{"class":207},[201,575,539],{"class":530},[201,577,548],{"class":530},[201,579,551],{"class":530},[201,581,582],{"class":211},"work",[201,584,539],{"class":530},[201,586,587],{"class":530},"}},\n",[201,589,591,593,595,597,599,601,603,606,608,610,612,614,616,618,620,622,625,627,629,631,634,636],{"class":203,"line":590},3,[201,592,536],{"class":530},[201,594,539],{"class":530},[201,596,543],{"class":542},[201,598,539],{"class":530},[201,600,548],{"class":530},[201,602,551],{"class":530},[201,604,605],{"class":211},"collection_create",[201,607,539],{"class":530},[201,609,558],{"class":530},[201,611,551],{"class":530},[201,613,514],{"class":542},[201,615,539],{"class":530},[201,617,548],{"class":530},[201,619,569],{"class":530},[201,621,539],{"class":530},[201,623,624],{"class":207},"name",[201,626,539],{"class":530},[201,628,548],{"class":530},[201,630,551],{"class":530},[201,632,633],{"class":211},"Smoke",[201,635,539],{"class":530},[201,637,587],{"class":530},[201,639,641,643,645,647,649,651,653,655,657,659,661,663,665,667],{"class":203,"line":640},4,[201,642,536],{"class":530},[201,644,539],{"class":530},[201,646,543],{"class":542},[201,648,539],{"class":530},[201,650,548],{"class":530},[201,652,551],{"class":530},[201,654,334],{"class":211},[201,656,539],{"class":530},[201,658,558],{"class":530},[201,660,551],{"class":530},[201,662,514],{"class":542},[201,664,539],{"class":530},[201,666,548],{"class":530},[201,668,669],{"class":530}," {}}\n",[201,671,673],{"class":203,"line":672},5,[201,674,675],{"class":530},"]\n",[178,677,678,679,474,682,685,686,689],{},"Output is one line per step on stdout, ",[187,680,681],{},"{\"step\":0,\"tool\":\"workspace_open\",\"ok\":true,\"result\":{...}}",[187,683,684],{},"{\"ok\":true,\"steps\":3}",". A failing step prints ",[187,687,688],{},"{\"step\":1,\"tool\":\"...\",\"ok\":false,\"error\":\"...\"}"," on stderr, stops the run and exits 1.",[178,691,692],{},"This send flow fits in one script. The collection and request must already exist; use their real ids:",[192,694,696],{"className":521,"code":695,"language":523,"meta":197,"style":197},"[\n  {\"tool\": \"workspace_open\", \"args\": {\"path\": \"work\"}},\n  {\"tool\": \"request_send\", \"args\": {\"collection\": \"COLLECTION_ID\", \"request\": \"REQUEST_ID\"}},\n  {\"tool\": \"response_get\", \"args\": {}},\n  {\"tool\": \"history_list\", \"args\": {\"limit\": 5}}\n]\n",[187,697,698,702,748,814,845,892],{"__ignoreMap":197},[201,699,700],{"class":203,"line":204},[201,701,531],{"class":530},[201,703,704,706,708,710,712,714,716,718,720,722,724,726,728,730,732,734,736,738,740,742,744,746],{"class":203,"line":219},[201,705,536],{"class":530},[201,707,539],{"class":530},[201,709,543],{"class":542},[201,711,539],{"class":530},[201,713,548],{"class":530},[201,715,551],{"class":530},[201,717,450],{"class":211},[201,719,539],{"class":530},[201,721,558],{"class":530},[201,723,551],{"class":530},[201,725,514],{"class":542},[201,727,539],{"class":530},[201,729,548],{"class":530},[201,731,569],{"class":530},[201,733,539],{"class":530},[201,735,378],{"class":207},[201,737,539],{"class":530},[201,739,548],{"class":530},[201,741,551],{"class":530},[201,743,582],{"class":211},[201,745,539],{"class":530},[201,747,587],{"class":530},[201,749,750,752,754,756,758,760,762,764,766,768,770,772,774,776,778,780,783,785,787,789,792,794,796,798,801,803,805,807,810,812],{"class":203,"line":590},[201,751,536],{"class":530},[201,753,539],{"class":530},[201,755,543],{"class":542},[201,757,539],{"class":530},[201,759,548],{"class":530},[201,761,551],{"class":530},[201,763,404],{"class":211},[201,765,539],{"class":530},[201,767,558],{"class":530},[201,769,551],{"class":530},[201,771,514],{"class":542},[201,773,539],{"class":530},[201,775,548],{"class":530},[201,777,569],{"class":530},[201,779,539],{"class":530},[201,781,782],{"class":207},"collection",[201,784,539],{"class":530},[201,786,548],{"class":530},[201,788,551],{"class":530},[201,790,791],{"class":211},"COLLECTION_ID",[201,793,539],{"class":530},[201,795,558],{"class":530},[201,797,551],{"class":530},[201,799,800],{"class":207},"request",[201,802,539],{"class":530},[201,804,548],{"class":530},[201,806,551],{"class":530},[201,808,809],{"class":211},"REQUEST_ID",[201,811,539],{"class":530},[201,813,587],{"class":530},[201,815,816,818,820,822,824,826,828,830,832,834,836,838,840,842],{"class":203,"line":640},[201,817,536],{"class":530},[201,819,539],{"class":530},[201,821,543],{"class":542},[201,823,539],{"class":530},[201,825,548],{"class":530},[201,827,551],{"class":530},[201,829,407],{"class":211},[201,831,539],{"class":530},[201,833,558],{"class":530},[201,835,551],{"class":530},[201,837,514],{"class":542},[201,839,539],{"class":530},[201,841,548],{"class":530},[201,843,844],{"class":530}," {}},\n",[201,846,847,849,851,853,855,857,859,862,864,866,868,870,872,874,876,878,881,883,885,889],{"class":203,"line":672},[201,848,536],{"class":530},[201,850,539],{"class":530},[201,852,543],{"class":542},[201,854,539],{"class":530},[201,856,548],{"class":530},[201,858,551],{"class":530},[201,860,861],{"class":211},"history_list",[201,863,539],{"class":530},[201,865,558],{"class":530},[201,867,551],{"class":530},[201,869,514],{"class":542},[201,871,539],{"class":530},[201,873,548],{"class":530},[201,875,569],{"class":530},[201,877,539],{"class":530},[201,879,880],{"class":207},"limit",[201,882,539],{"class":530},[201,884,548],{"class":530},[201,886,888],{"class":887},"sbssI"," 5",[201,890,891],{"class":530},"}}\n",[201,893,895],{"class":203,"line":894},6,[201,896,675],{"class":530},[239,898,900],{"id":899},"tool-reference","Tool reference",[178,902,903,904,907,908,911,912,915,916,918],{},"In the tables, an argument in ",[182,905,906],{},"bold"," is required. Safety is ",[187,909,910],{},"read-only"," (changes nothing), ",[187,913,914],{},"write",", or ",[187,917,351],{}," (deletes or clears data).",[495,920,41],{"id":921},"workspace",[923,924,925,944],"table",{},[926,927,928],"thead",{},[929,930,931,935,938,941],"tr",{},[932,933,934],"th",{},"Tool",[932,936,937],{},"Safety",[932,939,940],{},"Purpose",[932,942,943],{},"Arguments",[945,946,947,966,981,1000],"tbody",{},[929,948,949,954,956,959],{},[950,951,952],"td",{},[187,953,450],{},[950,955,914],{},[950,957,958],{},"Create the folder if needed and open it; takes the workspace lock. Paths stay inside --root when one is set.",[950,960,961,965],{},[182,962,963],{},[187,964,378],{}," — workspace folder",[929,967,968,973,975,978],{},[950,969,970],{},[187,971,972],{},"workspace_info",[950,974,910],{},[950,976,977],{},"Path, counts and the active environment id of the open workspace.",[950,979,980],{},"none",[929,982,983,988,990,993],{},[950,984,985],{},[187,986,987],{},"workspace_export_zip",[950,989,914],{},[950,991,992],{},"Zip the workspace documents (not .postguy secrets\u002Fcookies\u002Fcache and not .trash); path resolves inside --root.",[950,994,995,999],{},[182,996,997],{},[187,998,381],{}," — zip file path",[929,1001,1002,1007,1009,1012],{},[950,1003,1004],{},[187,1005,1006],{},"import_zip",[950,1008,914],{},[950,1010,1011],{},"Reads .json entries (collection\u002Fenvironment\u002Fglobals) from a zip through the normal importers; unsafe paths are refused, arbitrary entries are skipped.",[950,1013,1014,1018,1019,1022],{},[182,1015,1016],{},[187,1017,378],{}," — zip file path; ",[187,1020,1021],{},"replace"," (boolean) — replace same-id documents instead of suffixing",[495,1024,1026],{"id":1025},"collections-and-folders","Collections and folders",[923,1028,1029,1041],{},[926,1030,1031],{},[929,1032,1033,1035,1037,1039],{},[932,1034,934],{},[932,1036,937],{},[932,1038,940],{},[932,1040,943],{},[945,1042,1043,1056,1075,1093,1117,1142,1160,1187,1214],{},[929,1044,1045,1049,1051,1054],{},[950,1046,1047],{},[187,1048,334],{},[950,1050,910],{},[950,1052,1053],{},"Collections in sidebar order with id, name and counts.",[950,1055,980],{},[929,1057,1058,1063,1065,1068],{},[950,1059,1060],{},[187,1061,1062],{},"collection_get",[950,1064,910],{},[950,1066,1067],{},"The full collection JSON.",[950,1069,1070,1074],{},[182,1071,1072],{},[187,1073,782],{}," — collection id",[929,1076,1077,1081,1083,1086],{},[950,1078,1079],{},[187,1080,605],{},[950,1082,914],{},[950,1084,1085],{},"A new empty collection with a generated id.",[950,1087,1088,1092],{},[182,1089,1090],{},[187,1091,624],{}," — collection name",[929,1094,1095,1100,1102,1105],{},[950,1096,1097],{},[187,1098,1099],{},"collection_rename",[950,1101,914],{},[950,1103,1104],{},"New name; empty names are refused.",[950,1106,1107,1111,1112,1116],{},[182,1108,1109],{},[187,1110,782],{}," — collection id; ",[182,1113,1114],{},[187,1115,624],{}," — new name",[929,1118,1119,1124,1126,1129],{},[950,1120,1121],{},[187,1122,1123],{},"collection_duplicate",[950,1125,914],{},[950,1127,1128],{},"Deep copy with fresh ids for every item.",[950,1130,1131,1111,1135,1137,1138,1141],{},[182,1132,1133],{},[187,1134,782],{},[187,1136,624],{}," — name for the copy (default: ",[187,1139,1140],{},"\u003Cname> Copy",")",[929,1143,1144,1149,1151,1154],{},[950,1145,1146],{},[187,1147,1148],{},"collection_delete",[950,1150,351],{},[950,1152,1153],{},"Moves the collection file to the workspace trash and drops its secrets.",[950,1155,1156,1074],{},[182,1157,1158],{},[187,1159,782],{},[929,1161,1162,1167,1169,1172],{},[950,1163,1164],{},[187,1165,1166],{},"folder_create",[950,1168,914],{},[950,1170,1171],{},"Inside the collection root or another folder.",[950,1173,1174,1111,1178,1181,1182,1186],{},[182,1175,1176],{},[187,1177,782],{},[187,1179,1180],{},"parent"," — parent folder id (omit for the collection root); ",[182,1183,1184],{},[187,1185,624],{}," — folder name",[929,1188,1189,1194,1196,1198],{},[950,1190,1191],{},[187,1192,1193],{},"folder_rename",[950,1195,914],{},[950,1197,1104],{},[950,1199,1200,1111,1204,1209,1210,1116],{},[182,1201,1202],{},[187,1203,782],{},[182,1205,1206],{},[187,1207,1208],{},"folder"," — folder id; ",[182,1211,1212],{},[187,1213,624],{},[929,1215,1216,1221,1223,1229],{},[950,1217,1218],{},[187,1219,1220],{},"folder_delete",[950,1222,351],{},[950,1224,1225,1226,282],{},"Deletes the folder and its contents; the subtree JSON is parked under ",[187,1227,1228],{},".trash\u002Fitem-\u003Ctime>.json",[950,1230,1231,1111,1235,1239],{},[182,1232,1233],{},[187,1234,782],{},[182,1236,1237],{},[187,1238,1208],{}," — folder id",[495,1241,1243],{"id":1242},"requests","Requests",[923,1245,1246,1258],{},[926,1247,1248],{},[929,1249,1250,1252,1254,1256],{},[932,1251,934],{},[932,1253,937],{},[932,1255,940],{},[932,1257,943],{},[945,1259,1260,1293,1316,1356,1384,1410,1434,1459,1489],{},[929,1261,1262,1267,1269,1272],{},[950,1263,1264],{},[187,1265,1266],{},"request_create",[950,1268,914],{},[950,1270,1271],{},"HTTP, gRPC or WebSocket; the protocol is fixed for the request's life.",[950,1273,1274,1111,1278,1280,1281,1286,1287,1289,1290,1141],{},[182,1275,1276],{},[187,1277,782],{},[187,1279,1208],{}," — folder id (omit for the collection root); ",[182,1282,1283],{},[187,1284,1285],{},"kind"," — http | grpc | websocket; ",[187,1288,624],{}," — request name (default ",[187,1291,1292],{},"New Request",[929,1294,1295,1300,1302,1305],{},[950,1296,1297],{},[187,1298,1299],{},"request_get",[950,1301,910],{},[950,1303,1304],{},"The request JSON including its kind-specific body.",[950,1306,1307,1111,1311,1315],{},[182,1308,1309],{},[187,1310,782],{},[182,1312,1313],{},[187,1314,800],{}," — request id",[929,1317,1318,1323,1325,1332],{},[950,1319,1320],{},[187,1321,1322],{},"request_update",[950,1324,914],{},[950,1326,1327,1328,1331],{},"Replaces name, description and\u002For the kind-specific ",[187,1329,1330],{},"definition"," (the serialized RequestKind object).",[950,1333,1334,1111,1338,1342,1343,1345,1346,1349,1350,1352,1353,1141],{},[182,1335,1336],{},[187,1337,782],{},[182,1339,1340],{},[187,1341,800],{}," — request id; ",[187,1344,624],{}," — new name; ",[187,1347,1348],{},"description"," — new description; ",[187,1351,1330],{}," (object) — serialized RequestKind (",[187,1354,1355],{},"{\"type\":\"http\",...}",[929,1357,1358,1363,1365,1371],{},[950,1359,1360],{},[187,1361,1362],{},"request_move",[950,1364,914],{},[950,1366,1367,1368,1370],{},"Into a folder, or the collection root when ",[187,1369,1208],{}," is omitted.",[950,1372,1373,1111,1377,1342,1381,1383],{},[182,1374,1375],{},[187,1376,782],{},[182,1378,1379],{},[187,1380,800],{},[187,1382,1208],{}," — target folder id (omit for the collection root)",[929,1385,1386,1391,1393,1396],{},[950,1387,1388],{},[187,1389,1390],{},"request_duplicate",[950,1392,914],{},[950,1394,1395],{},"Deep copy into the same parent with fresh ids.",[950,1397,1398,1111,1402,1342,1406,1137,1408,1141],{},[182,1399,1400],{},[187,1401,782],{},[182,1403,1404],{},[187,1405,800],{},[187,1407,624],{},[187,1409,1140],{},[929,1411,1412,1417,1419,1424],{},[950,1413,1414],{},[187,1415,1416],{},"request_delete",[950,1418,351],{},[950,1420,1421,1422,282],{},"Removes it from the collection; the JSON is parked under ",[187,1423,1228],{},[950,1425,1426,1111,1430,1315],{},[182,1427,1428],{},[187,1429,782],{},[182,1431,1432],{},[187,1433,800],{},[929,1435,1436,1440,1442,1445],{},[950,1437,1438],{},[187,1439,404],{},[950,1441,914],{},[950,1443,1444],{},"Runs the full send pipeline (variables, inherited auth, cookies, proxy, redirects, decompression) and records History, Console and the response cache.",[950,1446,1447,1111,1451,1342,1455,1458],{},[182,1448,1449],{},[187,1450,782],{},[182,1452,1453],{},[187,1454,800],{},[187,1456,1457],{},"environment"," — environment id (default: the workspace's active environment)",[929,1460,1461,1465,1467,1477],{},[950,1462,1463],{},[187,1464,425],{},[950,1466,914],{},[950,1468,1469,1470,1473,1474,493],{},"Cancels the send started by request_send for that request id, or the most recent send (",[187,1471,1472],{},"last","), or a collection run (",[187,1475,1476],{},"run:\u003Ccollection id>",[950,1478,1479,1484,1485,915,1487],{},[182,1480,1481],{},[187,1482,1483],{},"sendId"," — request id passed to request_send, ",[187,1486,1472],{},[187,1488,1476],{},[929,1490,1491,1496,1498,1501],{},[950,1492,1493],{},[187,1494,1495],{},"snippet_generate",[950,1497,910],{},[950,1499,1500],{},"One HTTP request as cURL, raw HTTP, fetch, Python requests, Go, Rust reqwest, PowerShell or Node axios; variables stay unresolved. gRPC\u002FWS snippets are not implemented yet.",[950,1502,1503,1111,1507,1342,1511,1514,1515,1518,1519,1522],{},[182,1504,1505],{},[187,1506,782],{},[182,1508,1509],{},[187,1510,800],{},[187,1512,1513],{},"language"," — curl (default), raw-http, fetch, python, go, rust, powershell or node-axios; ",[187,1516,1517],{},"indent"," (integer, min 0) — spaces per level; 0 means a tab (default 2); ",[187,1520,1521],{},"include_boilerplate"," (boolean) — wrap the request in imports\u002Fmain (default true)",[495,1524,1526],{"id":1525},"grpc-websocket-and-oauth","gRPC, WebSocket and OAuth",[923,1528,1529,1541],{},[926,1530,1531],{},[929,1532,1533,1535,1537,1539],{},[932,1534,934],{},[932,1536,937],{},[932,1538,940],{},[932,1540,943],{},[945,1542,1543,1565,1587,1613,1638,1663,1688,1714,1745,1767,1795,1820,1845],{},[929,1544,1545,1550,1552,1555],{},[950,1546,1547],{},[187,1548,1549],{},"grpc_describe",[950,1551,910],{},[950,1553,1554],{},"Loads the request's service definition (proto set, inline files, or server reflection listing every service) and returns services, methods with streaming flags, and every reachable message's fields and types.",[950,1556,1557,1111,1561,1315],{},[182,1558,1559],{},[187,1560,782],{},[182,1562,1563],{},[187,1564,800],{},[929,1566,1567,1572,1574,1577],{},[950,1568,1569],{},[187,1570,1571],{},"grpc_example_message",[950,1573,910],{},[950,1575,1576],{},"A default JSON object for the request method's input type.",[950,1578,1579,1111,1583,1315],{},[182,1580,1581],{},[187,1582,782],{},[182,1584,1585],{},[187,1586,800],{},[929,1588,1589,1594,1596,1599],{},[950,1590,1591],{},[187,1592,1593],{},"grpc_invoke",[950,1595,914],{},[950,1597,1598],{},"Calls one unary method with JSON input (defaults to the request's stored message); returns the response JSON and metadata. Streaming methods use grpc_stream; grpc_send runs scripts and tests.",[950,1600,1601,1111,1605,1342,1609,1612],{},[182,1602,1603],{},[187,1604,782],{},[182,1606,1607],{},[187,1608,800],{},[187,1610,1611],{},"message"," (object) — request message JSON (defaults to the stored message)",[929,1614,1615,1620,1622,1625],{},[950,1616,1617],{},[187,1618,1619],{},"grpc_send",[950,1621,914],{},[950,1623,1624],{},"Invokes a saved gRPC request through the full pipeline: pre-invoke script, variables, inherited auth as metadata, the call (unary or streaming, chosen from the method), on-message and post-response scripts and the Test tab. A non-OK gRPC status is a result, not an error.",[950,1626,1627,1111,1631,1342,1635,1637],{},[182,1628,1629],{},[187,1630,782],{},[182,1632,1633],{},[187,1634,800],{},[187,1636,1457],{}," — environment id (default: the active environment)",[929,1639,1640,1645,1647,1650],{},[950,1641,1642],{},[187,1643,1644],{},"grpc_check_message",[950,1646,910],{},[950,1648,1649],{},"Lists the JSON keys of a request message that the method's input type does not define, with their byte ranges. Defaults to the stored message.",[950,1651,1652,1111,1656,1342,1660,1662],{},[182,1653,1654],{},[187,1655,782],{},[182,1657,1658],{},[187,1659,800],{},[187,1661,1611],{}," — request message JSON text (default: the stored message)",[929,1664,1665,1670,1672,1675],{},[950,1666,1667],{},[187,1668,1669],{},"grpc_set_proto",[950,1671,914],{},[950,1673,1674],{},"Copies the .proto files (and the imports they pull in) into a workspace proto set, compiles it, and stores it as the request's service definition. Creates no collection. Paths resolve inside --root.",[950,1676,1677,1111,1681,1342,1685,1687],{},[182,1678,1679],{},[187,1680,782],{},[182,1682,1683],{},[187,1684,800],{},[187,1686,387],{}," (array) — the .proto files, together in one folder tree",[929,1689,1690,1695,1697,1700],{},[950,1691,1692],{},[187,1693,1694],{},"grpc_stream",[950,1696,914],{},[950,1698,1699],{},"Calls a server-, client- or bidi-streaming method with an array of JSON messages and returns every response message in arrival order (cap 10,000). Unary methods use grpc_invoke.",[950,1701,1702,1111,1706,1342,1710,1713],{},[182,1703,1704],{},[187,1705,782],{},[182,1707,1708],{},[187,1709,800],{},[187,1711,1712],{},"messages"," (array) — request messages in order (server streaming uses the first)",[929,1715,1716,1721,1723,1734],{},[950,1717,1718],{},[187,1719,1720],{},"proto_import",[950,1722,914],{},[950,1724,1725,1726,1729,1730,1733],{},"Copies the .proto files (and the imports they pull in) into a workspace proto set under ",[187,1727,1728],{},"protos\u002F\u003Cname>\u002F",", compiles it, and creates a collection with one gRPC request per service method (url ",[187,1731,1732],{},"{{grpcUrl}}","). Compile errors name file:line:column. Paths resolve inside --root.",[950,1735,1736,1738,1739,1741,1742,1744],{},[187,1737,387],{}," (array) — the .proto files to import, together in one folder tree; ",[187,1740,624],{}," — proto set and collection name (default: the first file's name); ",[187,1743,1021],{}," (boolean) — move an existing set of the same name to the trash instead of suffixing the new one",[929,1746,1747,1752,1754,1757],{},[950,1748,1749],{},[187,1750,1751],{},"ws_connect",[950,1753,914],{},[950,1755,1756],{},"Connects a saved WebSocket request (variables resolved at connect), returns a session id. Events are read with ws_messages.",[950,1758,1759,1111,1763,1315],{},[182,1760,1761],{},[187,1762,782],{},[182,1764,1765],{},[187,1766,800],{},[929,1768,1769,1774,1776,1779],{},[950,1770,1771],{},[187,1772,1773],{},"ws_send",[950,1775,914],{},[950,1777,1778],{},"Send text or base64 binary to an open session; the echo\u002Fevent log records it.",[950,1780,1781,1786,1787,1790,1791,1794],{},[182,1782,1783],{},[187,1784,1785],{},"session"," — session id; ",[187,1788,1789],{},"text"," — text message; ",[187,1792,1793],{},"binary_base64"," — base64 binary message",[929,1796,1797,1802,1804,1811],{},[950,1798,1799],{},[187,1800,1801],{},"ws_messages",[950,1803,910],{},[950,1805,1806,1807,1810],{},"Events after ",[187,1808,1809],{},"since"," (default 0) with sequence, direction, kind, text, bytes and close\u002Fdetail; includes sent, received and network rows.",[950,1812,1813,1786,1817,1819],{},[182,1814,1815],{},[187,1816,1785],{},[187,1818,1809],{}," (number) — last sequence number already read",[929,1821,1822,1827,1829,1832],{},[950,1823,1824],{},[187,1825,1826],{},"ws_disconnect",[950,1828,914],{},[950,1830,1831],{},"Send a close frame and end the session.",[950,1833,1834,1786,1838,1840,1841,1844],{},[182,1835,1836],{},[187,1837,1785],{},[187,1839,187],{}," (number) — close code (default 1000); ",[187,1842,1843],{},"reason"," — close reason",[929,1846,1847,1852,1854,1857],{},[950,1848,1849],{},[187,1850,1851],{},"oauth2_token",[950,1853,914],{},[950,1855,1856],{},"Runs client_credentials\u002Fpassword\u002Fauthorization_code (with optional PKCE verifier) against the request's OAuth 2.0 auth, or refreshes it; stores the tokens in the secrets file and updates the request auth.",[950,1858,1859,1111,1863,1342,1867,1872,1873,1875,1876,1879],{},[182,1860,1861],{},[187,1862,782],{},[182,1864,1865],{},[187,1866,800],{},[182,1868,1869],{},[187,1870,1871],{},"mode"," — grant | refresh | code; ",[187,1874,187],{}," — authorization code for mode=code; ",[187,1877,1878],{},"verifier"," — PKCE verifier for mode=code with PKCE",[495,1881,1883],{"id":1882},"environments-and-globals","Environments and globals",[923,1885,1886,1898],{},[926,1887,1888],{},[929,1889,1890,1892,1894,1896],{},[932,1891,934],{},[932,1893,937],{},[932,1895,940],{},[932,1897,943],{},[945,1899,1900,1913,1932,1954,1975,1994,2014,2032,2077,2100,2114,2142,2171],{},[929,1901,1902,1906,1908,1911],{},[950,1903,1904],{},[187,1905,338],{},[950,1907,910],{},[950,1909,1910],{},"Id and name in order-file order, plus which one is active.",[950,1912,980],{},[929,1914,1915,1920,1922,1925],{},[950,1916,1917],{},[187,1918,1919],{},"env_create",[950,1921,914],{},[950,1923,1924],{},"An empty environment with a generated id.",[950,1926,1927,1931],{},[182,1928,1929],{},[187,1930,624],{}," — environment name",[929,1933,1934,1939,1941,1943],{},[950,1935,1936],{},[187,1937,1938],{},"env_rename",[950,1940,914],{},[950,1942,1104],{},[950,1944,1945,1949,1950,1116],{},[182,1946,1947],{},[187,1948,1457],{}," — environment id; ",[182,1951,1952],{},[187,1953,624],{},[929,1955,1956,1961,1963,1966],{},[950,1957,1958],{},[187,1959,1960],{},"env_duplicate",[950,1962,914],{},[950,1964,1965],{},"Deep copy with a fresh id; secret values copy too.",[950,1967,1968,1949,1972,1974],{},[182,1969,1970],{},[187,1971,1457],{},[187,1973,624],{}," — name for the copy",[929,1976,1977,1982,1984,1987],{},[950,1978,1979],{},[187,1980,1981],{},"env_delete",[950,1983,351],{},[950,1985,1986],{},"Trashes the file, clears its secrets, and clears the active id when it pointed here.",[950,1988,1989,1993],{},[182,1990,1991],{},[187,1992,1457],{}," — environment id",[929,1995,1996,2001,2003,2009],{},[950,1997,1998],{},[187,1999,2000],{},"env_set_active",[950,2002,914],{},[950,2004,2005,2008],{},[187,2006,2007],{},"environment: null"," clears it.",[950,2010,2011,2013],{},[187,2012,1457],{}," — environment id or null",[929,2015,2016,2021,2023,2026],{},[950,2017,2018],{},[187,2019,2020],{},"env_get",[950,2022,910],{},[950,2024,2025],{},"The environment JSON with secret values rehydrated for the caller.",[950,2027,2028,1993],{},[182,2029,2030],{},[187,2031,1457],{},[929,2033,2034,2039,2041,2048],{},[950,2035,2036],{},[187,2037,2038],{},"env_set_var",[950,2040,914],{},[950,2042,2043,2044,2047],{},"Creates the row or updates it; ",[187,2045,2046],{},"secret: true"," stores the value outside the environment file.",[950,2049,2050,1949,2054,2059,2060,2065,2066,2069,2070,2073,2074,2076],{},[182,2051,2052],{},[187,2053,1457],{},[182,2055,2056],{},[187,2057,2058],{},"key"," — variable name; ",[182,2061,2062],{},[187,2063,2064],{},"value"," — value (empty clears it); ",[187,2067,2068],{},"secret"," (boolean) — store the value in the secrets file; ",[187,2071,2072],{},"enabled"," (boolean) — row participates (default true); ",[187,2075,1348],{}," — row description",[929,2078,2079,2084,2086,2089],{},[950,2080,2081],{},[187,2082,2083],{},"env_unset_var",[950,2085,351],{},[950,2087,2088],{},"Removes the row and its stored secret.",[950,2090,2091,1949,2095,2099],{},[182,2092,2093],{},[187,2094,1457],{},[182,2096,2097],{},[187,2098,2058],{}," — variable name",[929,2101,2102,2107,2109,2112],{},[950,2103,2104],{},[187,2105,2106],{},"globals_get",[950,2108,910],{},[950,2110,2111],{},"The globals file with secret values rehydrated.",[950,2113,980],{},[929,2115,2116,2121,2123,2126],{},[950,2117,2118],{},[187,2119,2120],{},"globals_set_var",[950,2122,914],{},[950,2124,2125],{},"Creates or updates one globals row (secret values split out).",[950,2127,2128,2059,2132,2065,2136,2069,2138,2073,2140,2076],{},[182,2129,2130],{},[187,2131,2058],{},[182,2133,2134],{},[187,2135,2064],{},[187,2137,2068],{},[187,2139,2072],{},[187,2141,1348],{},[929,2143,2144,2149,2151,2158],{},[950,2145,2146],{},[187,2147,2148],{},"variables_resolve",[950,2150,910],{},[950,2152,2153,2154,2157],{},"Resolves ",[187,2155,2156],{},"{{variables}}"," and reports each hit's source scope, secret flag and unresolved state.",[950,2159,2160,2164,2165,2167,2168,2170],{},[182,2161,2162],{},[187,2163,1789],{}," — template text; ",[187,2166,782],{}," — collection id for collection variables; ",[187,2169,1457],{}," — environment id (default: active)",[929,2172,2173,2178,2180,2195],{},[950,2174,2175],{},[187,2176,2177],{},"runtime_variables",[950,2179,914],{},[950,2181,2182,2183,2186,2187,2190,2191,2194],{},"The runtime variables scripts set with ",[187,2184,2185],{},"pg.setVar","\u002F",[187,2188,2189],{},"bru.setVar"," for a collection (session-lived, never saved). Returns them as an object; with ",[187,2192,2193],{},"clear"," they are dropped afterwards.",[950,2196,2197,1111,2201,2203],{},[182,2198,2199],{},[187,2200,782],{},[187,2202,2193],{}," (boolean) — drop the variables after reading them",[495,2205,69],{"id":2206},"import-and-export",[923,2208,2209,2221],{},[926,2210,2211],{},[929,2212,2213,2215,2217,2219],{},[932,2214,934],{},[932,2216,937],{},[932,2218,940],{},[932,2220,943],{},[945,2222,2223,2255,2278,2300,2327,2354],{},[929,2224,2225,2229,2231,2237],{},[950,2226,2227],{},[187,2228,469],{},[950,2230,914],{},[950,2232,2233,2234,2236],{},"Postman collection (v2.0\u002Fv2.1), environment or globals JSON, OpenAPI 3 \u002F Swagger 2 (JSON or YAML), HAR 1.2, or cURL commands; auto-detected, name clashes get a suffix unless ",[187,2235,1021],{}," is set; returns the ImportReport.",[950,2238,2239,2243,2244,2247,2248,2250,2251,2254],{},[182,2240,2241],{},[187,2242,1789],{}," — the JSON\u002FYAML document or cURL command text; ",[187,2245,2246],{},"format"," — \"auto\" (default): the format is detected; ",[187,2249,1021],{}," (boolean) — replace a same-id collection\u002Fenvironment or the existing globals instead of suffixing\u002Frefusing; ",[187,2252,2253],{},"folders"," — OpenAPI folder layout: \"tags\" (default) or \"paths\"",[929,2256,2257,2261,2263,2266],{},[950,2258,2259],{},[187,2260,473],{},[950,2262,914],{},[950,2264,2265],{},"Size-capped (100 MB) read, then the same mapping as import_text; the path resolves inside --root.",[950,2267,2268,2272,2273,2275,2276,2254],{},[182,2269,2270],{},[187,2271,378],{}," — file path; ",[187,2274,1021],{}," (boolean) — replace instead of suffixing; ",[187,2277,2253],{},[929,2279,2280,2285,2287,2290],{},[950,2281,2282],{},[187,2283,2284],{},"import_bruno",[950,2286,914],{},[950,2288,2289],{},"Imports a Bruno collection folder (it must contain bruno.json): requests become a collection, environments\u002F*.bru become environments (secret values go to the secrets store), and every other file (scripts, images) is copied into the collection's Assets keeping its relative path. Returns the collection, environments and assets outcome. The path resolves inside --root.",[950,2291,2292,2296,2297,2299],{},[182,2293,2294],{},[187,2295,378],{}," — the Bruno collection folder; ",[187,2298,1021],{}," (boolean) — replace instead of suffixing",[929,2301,2302,2307,2309,2315],{},[950,2303,2304],{},[187,2305,2306],{},"export_collection",[950,2308,914],{},[950,2310,2311,2312,2314],{},"Postman v2.1 JSON or the Postguy native file; writes ",[187,2313,381],{}," or returns the JSON.",[950,2316,2317,1111,2321,2323,2324,2326],{},[182,2318,2319],{},[187,2320,782],{},[187,2322,2246],{}," — \"postman\" (default) or \"native\"; ",[187,2325,381],{}," — file path to write (inside --root)",[929,2328,2329,2334,2336,2341],{},[950,2330,2331],{},[187,2332,2333],{},"export_environment",[950,2335,914],{},[950,2337,2338,2339,2314],{},"Postman environment shape; secret values are omitted unless include_secrets is set. Writes ",[187,2340,381],{},[950,2342,2343,1949,2347,2349,2350,2353],{},[182,2344,2345],{},[187,2346,1457],{},[187,2348,381],{}," — file path to write; ",[187,2351,2352],{},"include_secrets"," (boolean) — include secret values",[929,2355,2356,2361,2363,2368],{},[950,2357,2358],{},[187,2359,2360],{},"export_globals",[950,2362,914],{},[950,2364,2365,2366,2314],{},"Postman globals shape; secret values are omitted unless include_secrets is set. Writes ",[187,2367,381],{},[950,2369,2370,2349,2372,2353],{},[187,2371,381],{},[187,2373,2352],{},[495,2375,2377],{"id":2376},"assets","Assets",[923,2379,2380,2392],{},[926,2381,2382],{},[929,2383,2384,2386,2388,2390],{},[932,2385,934],{},[932,2387,937],{},[932,2389,940],{},[932,2391,943],{},[945,2393,2394,2434,2479,2502],{},[929,2395,2396,2401,2403,2428],{},[950,2397,2398],{},[187,2399,2400],{},"asset_list",[950,2402,910],{},[950,2404,2405,2406,335,2408,335,2411,2414,2415,2186,2418,2186,2421,2424,2425,282],{},"The files of a collection's Assets tab (",[187,2407,378],{},[187,2409,2410],{},"size",[187,2412,2413],{},"modifiedMs","), sorted by path. Scripts read them through ",[187,2416,2417],{},"pg.assets",[187,2419,2420],{},"require",[187,2422,2423],{},"fs",", and bodies through ",[187,2426,2427],{},"{{% base64(file('path')) %}}",[950,2429,2430,1074],{},[182,2431,2432],{},[187,2433,782],{},[929,2435,2436,2441,2443,2464],{},[950,2437,2438],{},[187,2439,2440],{},"asset_import",[950,2442,914],{},[950,2444,2445,2446,2449,2450,363,2453,2456,2457,2460,2461,2463],{},"Copies files and folders (kept with their structure) into the collection's assets under ",[187,2447,2448],{},"dir","; returns ",[187,2451,2452],{},"imported",[187,2454,2455],{},"skipped"," (with reasons). Name clashes get a ",[187,2458,2459],{}," (2)"," suffix unless ",[187,2462,1021],{}," is set. Paths resolve inside --root.",[950,2465,2466,1111,2470,2472,2473,2475,2476,2478],{},[182,2467,2468],{},[187,2469,782],{},[187,2471,387],{}," (array) — files and folders to import; ",[187,2474,2448],{}," — destination folder inside the assets (default: the root); ",[187,2477,1021],{}," (boolean) — overwrite same-named assets instead of suffixing",[929,2480,2481,2486,2488,2491],{},[950,2482,2483],{},[187,2484,2485],{},"asset_delete",[950,2487,351],{},[950,2489,2490],{},"Removes one asset file (a .bak copy stays beside it) and any folders left empty.",[950,2492,2493,1111,2497,2501],{},[182,2494,2495],{},[187,2496,782],{},[182,2498,2499],{},[187,2500,378],{}," — asset path, e.g. images\u002Fa.jpg",[929,2503,2504,2509,2511,2514],{},[950,2505,2506],{},[187,2507,2508],{},"asset_rename",[950,2510,914],{},[950,2512,2513],{},"Renames an asset path; refuses when the target already exists. Returns the new AssetInfo.",[950,2515,2516,1111,2520,2525,2526,2531],{},[182,2517,2518],{},[187,2519,782],{},[182,2521,2522],{},[187,2523,2524],{},"from"," — current asset path; ",[182,2527,2528],{},[187,2529,2530],{},"to"," — new asset path",[495,2533,2535],{"id":2534},"runner","Runner",[923,2537,2538,2550],{},[926,2539,2540],{},[929,2541,2542,2544,2546,2548],{},[932,2543,934],{},[932,2545,937],{},[932,2547,940],{},[932,2549,943],{},[945,2551,2552,2595,2612,2636],{},[929,2553,2554,2558,2560,2565],{},[950,2555,2556],{},[187,2557,428],{},[950,2559,914],{},[950,2561,2562,2563,282],{},"Runs the collection (or one folder, or an ordered subset of requests) sequentially: scripts, tests, iterations and CSV\u002FJSON data rows, delay, stop on error. gRPC and WebSocket requests are skipped. The result is stored (newest 20 per collection) and returned; cancel it with request_cancel ",[187,2564,1476],{},[950,2566,2567,1111,2571,2573,2574,2576,2577,2580,2581,2584,2585,2587,2588,2591,2592,2594],{},[182,2568,2569],{},[187,2570,782],{},[187,2572,1208],{}," — folder id: run only this folder; ",[187,2575,1457],{}," — environment id (default: the workspace's active environment); ",[187,2578,2579],{},"iterations"," (integer, min 1) — iteration count (default: one per data row, or 1; at most 10000); ",[187,2582,2583],{},"delay_ms"," (integer, min 0) — pause between requests in ms (at most 600000); ",[187,2586,384],{}," — path of a CSV (header row) or JSON (array of objects) data file, inside --root; ",[187,2589,2590],{},"stop_on_error"," (boolean) — stop after the first request error, script failure or failed test; ",[187,2593,1242],{}," (array) — request ids to run, in this order (default: every request in tree order)",[929,2596,2597,2601,2603,2606],{},[950,2598,2599],{},[187,2600,341],{},[950,2602,910],{},[950,2604,2605],{},"The collection's stored runs, newest first, with totals and pass\u002Ffail.",[950,2607,2608,1074],{},[182,2609,2610],{},[187,2611,782],{},[929,2613,2614,2619,2621,2624],{},[950,2615,2616],{},[187,2617,2618],{},"run_get",[950,2620,910],{},[950,2622,2623],{},"The full result of a stored run: iterations, requests, tests and failures.",[950,2625,2626,1111,2630,2635],{},[182,2627,2628],{},[187,2629,782],{},[182,2631,2632],{},[187,2633,2634],{},"run"," — run id from run_list",[929,2637,2638,2643,2645,2673],{},[950,2639,2640],{},[187,2641,2642],{},"run_export",[950,2644,914],{},[950,2646,2647,2648,335,2650,2653,2654,2657,2658,2661,2662,2665,2666,2669,2670,2672],{},"Renders a stored run as ",[187,2649,523],{},[187,2651,2652],{},"junit"," (XML), ",[187,2655,2656],{},"html"," (one self-contained file), ",[187,2659,2660],{},"csv"," (requests table), ",[187,2663,2664],{},"xlsx"," (Summary, Requests and Tests sheets) or ",[187,2667,2668],{},"pdf"," and writes it to ",[187,2671,381],{}," (inside --root). Datetimes use the local time zone.",[950,2674,2675,1111,2679,2683,2684,2688,2689,2693],{},[182,2676,2677],{},[187,2678,782],{},[182,2680,2681],{},[187,2682,2634],{}," — run id from run_list; ",[182,2685,2686],{},[187,2687,2246],{}," — json, junit, html, csv, xlsx or pdf; ",[182,2690,2691],{},[187,2692,381],{}," — file path to write",[495,2695,2697],{"id":2696},"responses-cookies-history-and-console","Responses, cookies, history and console",[923,2699,2700,2712],{},[926,2701,2702],{},[929,2703,2704,2706,2708,2710],{},[932,2705,934],{},[932,2707,937],{},[932,2709,940],{},[932,2711,943],{},[945,2713,2714,2734,2758,2776,2790,2816,2846,2860,2876,2895,2908,2932],{},[929,2715,2716,2720,2722,2729],{},[950,2717,2718],{},[187,2719,407],{},[950,2721,910],{},[950,2723,2724,2725,2728],{},"The newest (or ",[187,2726,2727],{},"id",") cached response: status, headers, body (base64 plus text when UTF-8, capped at 1 MiB), size and timings.",[950,2730,2731,2733],{},[187,2732,2727],{}," — history id (omit for the newest response)",[929,2735,2736,2740,2742,2748],{},[950,2737,2738],{},[187,2739,414],{},[950,2741,914],{},[950,2743,2744,2745,2747],{},"Writes the DECODED body atomically to ",[187,2746,378],{}," inside --root.",[950,2749,2750,2752,2753,2757],{},[187,2751,2727],{}," — history id (omit for the newest response); ",[182,2754,2755],{},[187,2756,378],{}," — file path",[929,2759,2760,2764,2766,2769],{},[950,2761,2762],{},[187,2763,410],{},[950,2765,910],{},[950,2767,2768],{},"Returns the body as UTF-8 text (with replacement markers when invalid) or base64, capped at 1 MiB.",[950,2770,2771,2752,2773,2775],{},[187,2772,2727],{},[187,2774,2246],{}," — \"text\" (default) or \"base64\"",[929,2777,2778,2783,2785,2788],{},[950,2779,2780],{},[187,2781,2782],{},"cookies_list",[950,2784,910],{},[950,2786,2787],{},"Every jar cookie with domain, path, flags and expiry, plus the script allowlist.",[950,2789,980],{},[929,2791,2792,2797,2799,2802],{},[950,2793,2794],{},[187,2795,2796],{},"cookies_set",[950,2798,914],{},[950,2800,2801],{},"Stores one raw Set-Cookie value for a URL (domain\u002Fpath\u002Fsecure\u002Fexpiry rules apply) and persists the jar.",[950,2803,2804,2809,2810,2815],{},[182,2805,2806],{},[187,2807,2808],{},"url"," — the URL the cookie belongs to; ",[182,2811,2812],{},[187,2813,2814],{},"setCookie"," — one Set-Cookie header value",[929,2817,2818,2823,2825,2828],{},[950,2819,2820],{},[187,2821,2822],{},"cookies_delete",[950,2824,351],{},[950,2826,2827],{},"Deletes by (domain, path, name) and persists the jar.",[950,2829,2830,2835,2836,2840,2841,2845],{},[182,2831,2832],{},[187,2833,2834],{},"domain"," — cookie domain; ",[182,2837,2838],{},[187,2839,378],{}," — cookie path; ",[182,2842,2843],{},[187,2844,624],{}," — cookie name",[929,2847,2848,2853,2855,2858],{},[950,2849,2850],{},[187,2851,2852],{},"cookies_clear",[950,2854,351],{},[950,2856,2857],{},"Deletes every cookie and persists the empty jar.",[950,2859,980],{},[929,2861,2862,2866,2868,2871],{},[950,2863,2864],{},[187,2865,861],{},[950,2867,910],{},[950,2869,2870],{},"The newest sends, newest last (default 50).",[950,2872,2873,2875],{},[187,2874,880],{}," (integer, min 1)",[929,2877,2878,2883,2885,2888],{},[950,2879,2880],{},[187,2881,2882],{},"history_open",[950,2884,910],{},[950,2886,2887],{},"One entry by id, including the as-sent request snapshot.",[950,2889,2890,2894],{},[182,2891,2892],{},[187,2893,2727],{}," — history id",[929,2896,2897,2901,2903,2906],{},[950,2898,2899],{},[187,2900,359],{},[950,2902,351],{},[950,2904,2905],{},"Empties history.jsonl atomically.",[950,2907,980],{},[929,2909,2910,2915,2917,2920],{},[950,2911,2912],{},[187,2913,2914],{},"console_get",[950,2916,910],{},[950,2918,2919],{},"Newest-last console entries, optionally filtered by level or kind (default 100).",[950,2921,2922,2924,2925,2928,2929,2931],{},[187,2923,880],{}," (integer, min 1); ",[187,2926,2927],{},"level"," — \"info\" | \"warning\" | \"error\"; ",[187,2930,1285],{}," — \"request\" | \"log\" | \"warning\" | \"error\"",[929,2933,2934,2938,2940,2943],{},[950,2935,2936],{},[187,2937,362],{},[950,2939,351],{},[950,2941,2942],{},"Drops every retained console entry (the history file is untouched).",[950,2944,980],{},[178,2946,2947],{},"Notes on some arguments:",[244,2949,2950,2965,2974,2990,3023],{},[247,2951,2952,252,2954,363,2956,252,2958,2960,2961,2964],{},[187,2953,1801],{},[187,2955,1809],{},[187,2957,1826],{},[187,2959,187],{}," are declared as strings in the schema, but the implementation reads JSON numbers (",[187,2962,2963],{},"\"since\": 12","). A string value is ignored and the default is used.",[247,2966,2967,2969,2970,2973],{},[187,2968,2000],{}," takes ",[187,2971,2972],{},"{\"environment\": null}"," to clear the active environment; the schema declares the argument as a string.",[247,2975,2976,2978,2979,2981,2982,915,2984,2987,2988,282],{},[187,2977,425],{}," takes the request id given to ",[187,2980,404],{},", the word ",[187,2983,1472],{},[187,2985,2986],{},"run:"," followed by a collection id to cancel a ",[187,2989,428],{},[247,2991,2992,2994,2995,2998,2999,335,3002,335,3005,335,3008,335,3011,335,3014,335,3017,3020,3021,282],{},[187,2993,1495],{}," languages: ",[187,2996,2997],{},"curl"," (default), ",[187,3000,3001],{},"raw-http",[187,3003,3004],{},"fetch",[187,3006,3007],{},"python",[187,3009,3010],{},"go",[187,3012,3013],{},"rust",[187,3015,3016],{},"powershell",[187,3018,3019],{},"node-axios",". Variables stay unresolved in the output. See ",[234,3022,73],{"href":74},[247,3024,3025,3027,3028,3030,3031,282],{},[187,3026,428],{}," with ",[187,3029,2579],{}," omitted runs once per data row, or once without data. See ",[234,3032,65],{"href":66},[239,3034,3036],{"id":3035},"mcp-server-planned","MCP server (planned)",[3038,3039,3040,3041,3044,3045,3048,3049,282],"note",{},"There is no MCP server today. ",[187,3042,3043],{},"postguy-cli mcp"," is not a subcommand: the CLI prints its usage and exits with code 2. The feature is tracked as ",[187,3046,3047],{},"planned"," in ",[234,3050,131],{"href":132},[178,3052,3053],{},"The plan, from the project rules:",[244,3055,3056,3062,3065],{},[247,3057,3058,3059,3061],{},"It is a stdio server started as ",[187,3060,3043],{},", over the same tool table as above.",[247,3063,3064],{},"It is opt-in: the app, the CLI and the installers never start it or register it with any client. The Windows installer explicitly registers no MCP server.",[247,3066,3067],{},"Any future network transport would be off by default, bound to loopback and token-authenticated.",[178,3069,3070,3071,3073,3074,470,3076,3078],{},"Until it ships, an agent can run ",[187,3072,189],{}," to learn the schemas, and ",[187,3075,442],{},[187,3077,457],{}," to run them.",[3080,3081,3082],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}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);}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":197,"searchDepth":219,"depth":219,"links":3084},[3085,3086,3090,3101],{"id":241,"depth":219,"text":242},{"id":435,"depth":219,"text":436,"children":3087},[3088],{"id":497,"depth":590,"text":3089},"run --script step format",{"id":899,"depth":219,"text":900,"children":3091},[3092,3093,3094,3095,3096,3097,3098,3099,3100],{"id":921,"depth":590,"text":41},{"id":1025,"depth":590,"text":1026},{"id":1242,"depth":590,"text":1243},{"id":1525,"depth":590,"text":1526},{"id":1882,"depth":590,"text":1883},{"id":2206,"depth":590,"text":69},{"id":2376,"depth":590,"text":2377},{"id":2534,"depth":590,"text":2535},{"id":2696,"depth":590,"text":2697},{"id":3035,"depth":219,"text":3036},"The JSON tool table behind postguy-cli: call rules, the run --script step format, and all 71 tools with their arguments and safety flags.","md",null,{},true,{"title":111,"description":3102},"sEGxm5SX7fNw5H85xzSgmo_dCvhzMyuwteHFBXHWyDc",[3110,3112],{"title":107,"path":108,"stem":109,"description":3111,"children":-1},"Every flag of the postguy app and every postguy-cli command: tools, call, run, ui, flags, output and exit codes.",{"title":115,"path":116,"stem":117,"description":3113,"children":-1},"Reference for the script globals (pm, pg, bru, req, res, test, expect), the assertion library, the Node-style shims and the sandbox limits.",1793179614187]