1"use strict";(self.webpackChunkforge_docs=self.webpackChunkforge_docs||[]).push([[1276],{82873:(e,t,r)=>{r.d(t,{A:()=>E});var n=r(96540),i=r(20053);const c="svgOverlay_RAaU";var a,s=r(57083);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},o.apply(this,arguments)}const l=e=>{let{title:t,titleId:r,...i}=e;return n.createElement("svg",o({width:480,height:400,viewBox:"0 0 480 400",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":r},i),t?n.createElement("title",{id:r},t):null,a||(a=n.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M80 36.417C80 16.304 96.304 0 116.417 0h247.166C383.696 0 400 16.304 400 36.417v7.166C400 63.696 383.696 80 363.583 80H116.417C96.304 80 80 63.696 80 43.583v-7.166ZM110 160h253.583C383.696 160 400 176.304 400 196.417v7.166C400 223.696 383.696 240 363.583 240H116.417C96.304 240 80 223.696 80 203.583v-14.215c-.004.21-.007.421-.007.632 0-16.564-13.427-29.993-29.993-30H40c-22.091 0-40-17.909-40-40s17.909-40 40-40 40 17.909 40 40v10.632c.336 16.267 13.623 29.352 29.969 29.368H110Zm330 80c-22.091 0-40 17.909-40 40v10.631c-.004-.21-.007-.42-.007-.631 0 16.553-13.409 29.976-29.961 30H76.417C56.304 320 40 336.304 40 356.417v7.166C40 383.696 56.304 400 76.417 400h287.166C383.696 400 400 383.696 400 363.583v-14.214c.336-16.277 13.639-29.369 30-29.369h10c22.091 0 40-17.909 40-40s-17.909-40-40-40Z",fill:"#000"})))};var d;function h(){return h=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},h.apply(this,arguments)}const u=e=>{let{title:t,titleId:r,...i}=e;return n.createElement("svg",h({width:800,height:800,viewBox:"0 0 32 32",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":r},i),t?n.createElement("title",{id:r},t):null,d||(d=n.createElement("path",{fill:"#444",d:"M13.275 15.88h5.417c1.508 0 2.712-1.241 2.712-2.756V7.96c0-1.47-1.24-2.574-2.712-2.819-.932-.155-1.898-.226-2.825-.221s-1.813.083-2.592.221c-2.295.405-2.712 1.254-2.712 2.819v2.067h5.423v.689H8.527c-1.576 0-2.956.947-3.388 2.75-.498 2.066-.52 3.355 0 5.512.385 1.606 1.306 2.75 2.882 2.75h1.865V19.25c0-1.79 1.549-3.369 3.388-3.369zm-.342-7.231a1.024 1.024 0 0 1-1.018-1.03c0-.572.455-1.037 1.018-1.037.56 0 1.018.465 1.018 1.037 0 .57-.457 1.03-1.018 1.03zm13.893 4.816c-.389-1.569-1.133-2.75-2.712-2.75h-2.035v2.408c0 1.867-1.583 3.439-3.388 3.439h-5.417c-1.484 0-2.712 1.27-2.712 2.756v5.164c0 1.47 1.278 2.334 2.712 2.756 1.717.505 3.363.596 5.417 0 1.365-.395 2.712-1.191 2.712-2.756v-2.067h-5.417v-.689h8.129c1.576 0 2.163-1.099 2.712-2.75.566-1.699.542-3.332 0-5.512zm-7.793 10.329c.562 0 1.018.461 1.018 1.03 0 .572-.456 1.037-1.018 1.037a1.03 1.03 0 0 1-1.018-1.037c0-.57.457-1.03 1.018-1.03z"})))};var f;function p(){return p=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},p.apply(this,arguments)}const m=e=>{let{title:t,titleId:r,...i}=e;return n.createElement("svg",p({width:800,height:800,viewBox:"0 0 32 32",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":r},i),void 0===t?n.createElement("title",{id:r},"file_type_typescript"):t?n.createElement("title",{id:r},t):null,f||(f=n.createElement("path",{d:"M23.827 8.243a4.424 4.424 0 0 1 2.223 1.281 5.853 5.853 0 0 1 .852 1.143c.011.045-1.534 1.083-2.471 1.662-.034.023-.169-.124-.322-.35a2.014 2.014 0 0 0-1.67-1c-1.077-.074-1.771.49-1.766 1.433a1.3 1.3 0 0 0 .153.666c.237.49.677.784 2.059 1.383 2.544 1.095 3.636 1.817 4.31 2.843a5.158 5.158 0 0 1 .416 4.333 4.764 4.764 0 0 1-3.932 2.815 10.9 10.9 0 0 1-2.708-.028 6.531 6.531 0 0 1-3.616-1.884 6.278 6.278 0 0 1-.926-1.371 2.655 2.655 0 0 1 .327-.208c.158-.09.756-.434 1.32-.761l1.024-.6.214.312a4.771 4.771 0 0 0 1.35 1.292 3.3 3.3 0 0 0 3.458-.175 1.545 1.545 0 0 0 .2-1.974c-.276-.395-.84-.727-2.443-1.422a8.8 8.8 0 0 1-3.349-2.055 4.687 4.687 0 0 1-.976-1.777 7.116 7.116 0 0 1-.062-2.268 4.332 4.332 0 0 1 3.644-3.374 9 9 0 0 1 2.691.084Zm-8.343 1.483.011 1.454h-4.63v13.148H7.6V11.183H2.97V9.755a13.986 13.986 0 0 1 .04-1.466c.017-.023 2.832-.034 6.245-.028l6.211.017Z",fill:"#007acc"})))};var v,g,x;function b(){return b=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];
1for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},b.apply(this,arguments)}const y=e=>{let{title:t,titleId:r,...i}=e;return n.createElement("svg",b({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 300 300",shapeRendering:"geometricPrecision",textRendering:"geometricPrecision","aria-labelledby":r},i),t?n.createElement("title",{id:r},t):null,v||(v=n.createElement("path",{transform:"matrix(1.15254 0 0 -1.19048 84.856 188.686)",fill:"none",stroke:"#000",strokeWidth:30,strokeLinecap:"round",d:"m-30.681-32.761 61.362 65.522"})),g||(g=n.createElement("path",{transform:"matrix(.76304 -.86379 .89222 .78815 208.645 227.488)",fill:"none",stroke:"#000",strokeWidth:30,strokeLinecap:"round",d:"m-30.681-32.761 61.362 65.522"})),x||(x=n.createElement("path",{transform:"matrix(1.15254 0 0 1.19048 84.856 110.123)",fill:"none",stroke:"#000",strokeWidth:30,strokeLinecap:"round",d:"m-30.681-32.761 61.362 65.522"})))};var w=r(74848);function j(e){return e.href?(0,w.jsx)(s.default,{...e}):(0,w.jsx)(w.Fragment,{children:e.children})}function k(e){switch(e){case"Python SDK":return(0,w.jsx)(u,{className:(0,i.default)(c)});case"TypeScript SDK":return(0,w.jsx)(m,{className:(0,i.default)(c)});case"Sindri CLI":return(0,w.jsx)(y,{className:(0,i.default)(c)});default:return(0,w.jsx)(l,{className:(0,i.default)(c)})}}function C(e){switch(e){case"Python SDK":return"/docs/reference/sdk/python";case"TypeScript SDK":return"/docs/reference/sdk/ts";case"Sindri CLI":return"/docs/reference/cli";default:return"/docs/reference/api"}}const E=e=>{let{toolkit:t,version:r}=e;return(0,w.jsxs)("div",{className:(0,i.default)("avatar margin-bottom--sm"),children:[k(t),(0,w.jsxs)("div",{className:"avatar__intro",children:[(0,w.jsx)("div",{className:"avatar__name",children:(0,w.jsx)(j,{href:C(t),children:(0,w.jsx)("span",{children:t})})}),(0,w.jsx)("small",{className:"avatar__subtitle",children:r})]})]})}},97811:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>u,frontMatter:()=>a,metadata:()=>o,toc:()=>d});var n=r(74848),i=r(28453),c=r(82873);const a={},s="A Unified Sindri + Circomspect CLI DevEx",o={permalink:"/changelog/2024/02/24/cli-sindri-x-circomspect",source:"@site/changelog/2024-02-24-cli-sindri-x-circomspect.mdx",title:"A Unified Sindri + Circomspect CLI DevEx",description:"This is the first of a number of enhancements to the CLI intended to ease frustration while writing circuits via the incorporation of key open-source libraries.",date:"2024-02-24T00:00:00.000Z",tags:[],hasTruncateMarker:!1,authors:[],frontMatter:{},unlisted:!1,prevItem:{title:"A Unified Sindri + Nargo CLI DevEx",permalink:"/changelog/2024/02/26/cli-sindri-x-nargo"},nextItem:{title:"Non-Blocking Option for Python Methods",permalink:"/changelog/2024/02/22/python-nonblocking"}},l={authorsImageUrls:[]},d=[];function h(e){const t={a:"a",code:"code",p:"p",...(0,i.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(c.A,{toolkit:"Sindri CLI",version:"v0.0.1-alpha.32"}),"\n",(0,n.jsxs)(t.p,{children:["This is the first of a number of enhancements to the CLI intended to ease frustration while writing circuits via the incorporation of key open-source libraries.\nOur initial integration builds in the ",(0,n.jsx)(t.a,{href:"https://www.trailofbits.com/",children:"Trail of Bits"}),"' Circom analysis tool: ",(0,n.jsx)(t.a,{href:"https://github.com/trailofbits/circomspect",children:"Circomspect"}),".\nPreviously, you could use ",(0,n.jsx)(t.code,{children:"sindri init"})," to create a handful of circuits in different frameworks that are built from scratch via templates.\nThat functionality allows you to quickly get started writing Circom circuits by filling in the essentials.\nWith this new integration, you can use ",(0,n.jsx)(t.code,{children:"sindri x circomspect"})," to analyze your circuit while its under development."]}),"\n",(0,n.jsxs)(t.p,{children:["See the corresponding ",(0,n.jsx)(t.a,{href:"/blog/2024/02/26/sindri-trailofbits/",children:"blog post"})," for an in-depth description and a demo!\nFor the full set of commands available, check out the ",(0,n.jsx)(t.a,{href:"/docs/reference/cli/exec/circomspect",children:"reference docs"}),"."]})]})}function u(e={}){const{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(h,{...e})}):h(e)}},20053:(e,t,r)=>{function n(e){var t,r,i="";if("string"==typeof e||"number"==typeof e)i+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(r=n(e[t]))&&(i&&(i+=" "),i+=r);else for(t in e)e[t]&&(i&&(i+=" "),i+=t);return i}function i(){for(var e,t,r=0,i="";r<arguments.length;)(e=arguments[r++])&&(t=n(e))&&(i&&(i+=" "),i+=t);return i}r.r(t),r.d(t,{clsx:()=>i,default:()=>c});const c=i},28453:(e,t,r)=>{r.d(t,{R:()=>a,x:()=>s});var n=r(96540);const i={},c=n.createContext(i);function a(e){const t=n.useContext(c);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),n.createElement(c.Provider,{value:t},e.children)}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.