[{"data":1,"prerenderedAt":2712},["ShallowReactive",2],{"navigation_docs_en":3,"-en-reference-extensions-cli":445,"-en-reference-extensions-cli-surround":2707},[4,30,72,132,260,436],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":6},"Getting Started",false,"\u002Fen\u002Fgetting-started","en\u002F1.getting-started",[10,15,20,25],{"title":11,"path":12,"stem":13,"icon":14},"Introduction","\u002Fen\u002Fgetting-started\u002Fintroduction","en\u002F1.getting-started\u002F2.introduction","i-lucide-house",{"title":16,"path":17,"stem":18,"icon":19},"Quickstart","\u002Fen\u002Fgetting-started\u002Finstallation","en\u002F1.getting-started\u002F3.installation","i-lucide-download",{"title":21,"path":22,"stem":23,"icon":24},"Use Cases","\u002Fen\u002Fgetting-started\u002Fuse-cases","en\u002F1.getting-started\u002F4.use-cases","i-lucide-layers",{"title":26,"path":27,"stem":28,"icon":29},"Concepts","\u002Fen\u002Fgetting-started\u002Fconcepts","en\u002F1.getting-started\u002F5.concepts","i-lucide-book",{"title":26,"path":31,"stem":32,"children":33,"page":6},"\u002Fen\u002Fconcepts","en\u002F2.concepts",[34,38,43,48,53,58,63,68],{"title":35,"path":36,"stem":37,"icon":14},"Organization","\u002Fen\u002Fconcepts\u002Forganization","en\u002F2.concepts\u002F1.organization",{"title":39,"path":40,"stem":41,"icon":42},"Data Model","\u002Fen\u002Fconcepts\u002Fdata-model","en\u002F2.concepts\u002F2.data-model","i-lucide-database",{"title":44,"path":45,"stem":46,"icon":47},"Access Control","\u002Fen\u002Fconcepts\u002Faccess-permissions","en\u002F2.concepts\u002F3.access-permissions","i-lucide-user-key",{"title":49,"path":50,"stem":51,"icon":52},"Audit Logs","\u002Fen\u002Fconcepts\u002Faudit-logs","en\u002F2.concepts\u002F4.audit-logs","i-lucide-scroll-text",{"title":54,"path":55,"stem":56,"icon":57},"Introspection","\u002Fen\u002Fconcepts\u002Fintrospection","en\u002F2.concepts\u002F6.introspection","i-lucide-database-search",{"title":59,"path":60,"stem":61,"icon":62},"Query Engine","\u002Fen\u002Fconcepts\u002Fquery-engine","en\u002F2.concepts\u002F7.query-engine","i-lucide-workflow",{"title":64,"path":65,"stem":66,"icon":67},"AI","\u002Fen\u002Fconcepts\u002Fai","en\u002F2.concepts\u002F8.ai","i-lucide-sparkles",{"title":69,"path":70,"stem":71,"icon":42},"Caching","\u002Fen\u002Fconcepts\u002Fcaching","en\u002F2.concepts\u002F9.caching",{"title":73,"path":74,"stem":75,"children":76,"page":6},"Guides","\u002Fen\u002Fguides","en\u002F4.guides",[77,82,87,92,97,102,107,112],{"title":78,"path":79,"stem":80,"icon":81},"REST API Quickstart","\u002Fen\u002Fguides\u002Frest-api","en\u002F4.guides\u002F1.rest-api","i-lucide-plug",{"title":83,"path":84,"stem":85,"icon":86},"SDK Quickstart","\u002Fen\u002Fguides\u002Fsdk","en\u002F4.guides\u002F2.sdk","i-lucide-terminal",{"title":88,"path":89,"stem":90,"icon":91},"Configure SSO","\u002Fen\u002Fguides\u002Fconfigure-sso","en\u002F4.guides\u002F3.configure-sso","i-lucide-key-round",{"title":93,"path":94,"stem":95,"icon":96},"Configure MCP","\u002Fen\u002Fguides\u002Fmcp","en\u002F4.guides\u002F4.mcp","i-lucide-brain-cog",{"title":98,"path":99,"stem":100,"icon":101},"Customize Content Space","\u002Fen\u002Fguides\u002Fcustomize-content-space","en\u002F4.guides\u002F5.customize-content-space","i-lucide-columns-3-cog",{"title":103,"path":104,"stem":105,"icon":106},"Build an Application with AI Assistance","\u002Fen\u002Fguides\u002Fbuild-an-application","en\u002F4.guides\u002F6.build-an-application","i-lucide-route",{"title":108,"path":109,"stem":110,"icon":111},"Horizontal Scaling","\u002Fen\u002Fguides\u002Fhorizontal-scaling","en\u002F4.guides\u002F7.horizontal-scaling","i-lucide-network",{"title":113,"icon":114,"path":115,"stem":116,"children":117,"page":6},"Data Connectors","i-lucide-cable","\u002Fen\u002Fguides\u002Fdata-connectors","en\u002F4.guides\u002F8.data-connectors",[118,122,127],{"title":16,"path":119,"stem":120,"icon":121},"\u002Fen\u002Fguides\u002Fdata-connectors\u002Fquickstart","en\u002F4.guides\u002F8.data-connectors\u002F1.quickstart","i-lucide-rocket",{"title":123,"path":124,"stem":125,"icon":126},"Build a Stripe Connector","\u002Fen\u002Fguides\u002Fdata-connectors\u002Fstripe","en\u002F4.guides\u002F8.data-connectors\u002F2.stripe","i-lucide-hammer",{"title":128,"path":129,"stem":130,"icon":131},"Build with AI Agents","\u002Fen\u002Fguides\u002Fdata-connectors\u002Fai-agents","en\u002F4.guides\u002F8.data-connectors\u002F3.ai-agents","i-lucide-bot",{"title":133,"path":134,"stem":135,"children":136,"page":6},"Developer","\u002Fen\u002Fdeveloper","en\u002F5.developer",[137,191,215,220],{"title":138,"path":139,"stem":140,"children":141,"page":6},"Data Access","\u002Fen\u002Fdeveloper\u002Fapi","en\u002F5.developer\u002F1.api",[142,147,152,157,162,167,172,177,182,186],{"title":143,"path":144,"stem":145,"icon":146},"Overview","\u002Fen\u002Fdeveloper\u002Fapi\u002Foverview","en\u002F5.developer\u002F1.api\u002F1.overview","i-lucide-globe",{"title":148,"path":149,"stem":150,"icon":151},"Errors","\u002Fen\u002Fdeveloper\u002Fapi\u002Ferrors","en\u002F5.developer\u002F1.api\u002F10.errors","i-lucide-alert-triangle",{"title":153,"path":154,"stem":155,"icon":156},"Authentication","\u002Fen\u002Fdeveloper\u002Fapi\u002Fauthentication","en\u002F5.developer\u002F1.api\u002F2.authentication","i-lucide-lock",{"title":158,"path":159,"stem":160,"icon":161},"Reading Data","\u002Fen\u002Fdeveloper\u002Fapi\u002Freading-data","en\u002F5.developer\u002F1.api\u002F3.reading-data","i-lucide-book-open",{"title":163,"path":164,"stem":165,"icon":166},"Writing Data","\u002Fen\u002Fdeveloper\u002Fapi\u002Fwriting-data","en\u002F5.developer\u002F1.api\u002F4.writing-data","i-lucide-pencil",{"title":168,"path":169,"stem":170,"icon":171},"Filtering","\u002Fen\u002Fdeveloper\u002Fapi\u002Ffiltering","en\u002F5.developer\u002F1.api\u002F5.filtering","i-lucide-filter",{"title":173,"path":174,"stem":175,"icon":176},"Field Selection","\u002Fen\u002Fdeveloper\u002Fapi\u002Ffield-selection","en\u002F5.developer\u002F1.api\u002F6.field-selection","i-lucide-list-checks",{"title":178,"path":179,"stem":180,"icon":181},"Sorting & Pagination","\u002Fen\u002Fdeveloper\u002Fapi\u002Fsorting-pagination","en\u002F5.developer\u002F1.api\u002F7.sorting-pagination","i-lucide-arrow-up-down",{"title":183,"path":184,"stem":185,"icon":111},"Relational Data","\u002Fen\u002Fdeveloper\u002Fapi\u002Frelational-data","en\u002F5.developer\u002F1.api\u002F8.relational-data",{"title":187,"path":188,"stem":189,"icon":190},"Files & Assets","\u002Fen\u002Fdeveloper\u002Fapi\u002Ffiles","en\u002F5.developer\u002F1.api\u002F9.files","i-lucide-file-up",{"title":192,"path":193,"stem":194,"children":195,"page":6},"Client SDK","\u002Fen\u002Fdeveloper\u002Fsdk","en\u002F5.developer\u002F2.sdk",[196,200,205,210],{"title":197,"path":198,"stem":199,"icon":19},"Installation","\u002Fen\u002Fdeveloper\u002Fsdk\u002Finstallation","en\u002F5.developer\u002F2.sdk\u002F1.installation",{"title":201,"path":202,"stem":203,"icon":204},"Client Setup","\u002Fen\u002Fdeveloper\u002Fsdk\u002Fclient-setup","en\u002F5.developer\u002F2.sdk\u002F2.client-setup","i-lucide-settings",{"title":206,"path":207,"stem":208,"icon":209},"Type System","\u002Fen\u002Fdeveloper\u002Fsdk\u002Ftype-system","en\u002F5.developer\u002F2.sdk\u002F3.type-system","i-lucide-braces",{"title":211,"path":212,"stem":213,"icon":214},"Advanced","\u002Fen\u002Fdeveloper\u002Fsdk\u002Fadvanced","en\u002F5.developer\u002F2.sdk\u002F5.advanced","i-lucide-puzzle",{"title":216,"path":217,"stem":218,"icon":219},"Application Users","\u002Fen\u002Fdeveloper\u002Fapplication-users","en\u002F5.developer\u002F3.application-users","i-lucide-users",{"title":221,"path":222,"stem":223,"children":224,"icon":214},"Extensions","\u002Fen\u002Fdeveloper\u002Fextensions","en\u002F5.developer\u002F3.extensions\u002Findex",[225,226,231],{"title":143,"path":222,"stem":223,"icon":214},{"title":227,"path":228,"stem":229,"icon":230},"Install and Manage Extensions","\u002Fen\u002Fdeveloper\u002Fextensions\u002Finstall","en\u002F5.developer\u002F3.extensions\u002F1.install","i-lucide-package-plus",{"title":113,"path":232,"stem":233,"children":234,"icon":114},"\u002Fen\u002Fdeveloper\u002Fextensions\u002Fdata-connectors","en\u002F5.developer\u002F3.extensions\u002F2.data-connectors\u002Findex",[235,236,241,245,250,255],{"title":143,"path":232,"stem":233,"icon":114},{"title":237,"path":238,"stem":239,"icon":240},"How Data Connectors Run","\u002Fen\u002Fdeveloper\u002Fextensions\u002Fdata-connectors\u002Fruntime","en\u002F5.developer\u002F3.extensions\u002F2.data-connectors\u002F2.runtime","i-lucide-cpu",{"title":242,"path":243,"stem":244,"icon":42},"Data Sources","\u002Fen\u002Fdeveloper\u002Fextensions\u002Fdata-connectors\u002Fdata-sources","en\u002F5.developer\u002F3.extensions\u002F2.data-connectors\u002F3.data-sources",{"title":246,"path":247,"stem":248,"icon":249},"Map an External Data Source","\u002Fen\u002Fdeveloper\u002Fextensions\u002Fdata-connectors\u002Fdata-source-mapping","en\u002F5.developer\u002F3.extensions\u002F2.data-connectors\u002F4.data-source-mapping","i-lucide-map",{"title":251,"path":252,"stem":253,"icon":254},"Handle Errors","\u002Fen\u002Fdeveloper\u002Fextensions\u002Fdata-connectors\u002Ferrors","en\u002F5.developer\u002F3.extensions\u002F2.data-connectors\u002F5.errors","i-lucide-shield-alert",{"title":256,"path":257,"stem":258,"icon":259},"Test a Data Connector","\u002Fen\u002Fdeveloper\u002Fextensions\u002Fdata-connectors\u002Ftesting","en\u002F5.developer\u002F3.extensions\u002F2.data-connectors\u002F6.testing","i-lucide-flask-conical",{"title":261,"path":262,"stem":263,"children":264,"page":6},"Reference","\u002Fen\u002Freference","en\u002F6.reference",[265,269,274,279,295,299,304,340,369,374],{"title":266,"path":267,"stem":268,"icon":204},"Configuration","\u002Fen\u002Freference\u002Fenvironment-variables","en\u002F6.reference\u002F1.environment-variables",{"title":270,"path":271,"stem":272,"icon":273},"System Requirements","\u002Fen\u002Freference\u002Fsystem-requirements","en\u002F6.reference\u002F2.system-requirements","i-lucide-server",{"title":275,"path":276,"stem":277,"icon":278},"Licensing","\u002Fen\u002Freference\u002Flicensing","en\u002F6.reference\u002F3.licensing","i-lucide-gem",{"title":280,"path":281,"stem":282,"children":283,"icon":81},"Connectors","\u002Fen\u002Freference\u002Fconnectors","en\u002F6.reference\u002F4.connectors\u002Findex",[284,285,290],{"title":280,"path":281,"stem":282,"icon":81},{"title":286,"path":287,"stem":288,"icon":289},"PostgreSQL and Supabase","\u002Fen\u002Freference\u002Fconnectors\u002Fpostgresql-supabase","en\u002F6.reference\u002F4.connectors\u002F1.postgresql-supabase","i-simple-icons-postgresql",{"title":291,"path":292,"stem":293,"icon":294},"MySQL and MariaDB","\u002Fen\u002Freference\u002Fconnectors\u002Fmysql-mariadb","en\u002F6.reference\u002F4.connectors\u002F2.mysql-mariadb","i-simple-icons-mysql",{"title":296,"path":297,"stem":298,"icon":209},"Data Types Representation","\u002Fen\u002Freference\u002Fdata-types","en\u002F6.reference\u002F5.data-types",{"title":300,"path":301,"stem":302,"icon":303},"Permissions Reference","\u002Fen\u002Freference\u002Fpermissions","en\u002F6.reference\u002F6.permissions","i-lucide-shield",{"title":305,"path":306,"stem":307,"children":308,"page":6},"API Reference","\u002Fen\u002Freference\u002Fapi-reference","en\u002F6.reference\u002F7.api-reference",[309,313,318],{"title":310,"path":311,"stem":312,"icon":273},"System Endpoints","\u002Fen\u002Freference\u002Fapi-reference\u002Fsystem-endpoints","en\u002F6.reference\u002F7.api-reference\u002F1.system-endpoints",{"title":314,"path":315,"stem":316,"icon":317},"OpenAPI Spec","\u002Fen\u002Freference\u002Fapi-reference\u002Fopenapi-spec","en\u002F6.reference\u002F7.api-reference\u002F2.openapi-spec","i-lucide-file-code",{"title":319,"path":320,"stem":321,"children":322,"icon":324},"Schema Migration","\u002Fen\u002Freference\u002Fapi-reference\u002Fschema-migration","en\u002F6.reference\u002F7.api-reference\u002F3.schema-migration\u002Findex",[323,325,330,335],{"title":319,"path":320,"stem":321,"icon":324},"i-lucide-database-zap",{"title":326,"path":327,"stem":328,"icon":329},"Apply Migrations","\u002Fen\u002Freference\u002Fapi-reference\u002Fschema-migration\u002Fapply-migrations","en\u002F6.reference\u002F7.api-reference\u002F3.schema-migration\u002F1.apply-migrations","i-lucide-upload",{"title":331,"path":332,"stem":333,"icon":334},"Import Changes","\u002Fen\u002Freference\u002Fapi-reference\u002Fschema-migration\u002Fimport-changes","en\u002F6.reference\u002F7.api-reference\u002F3.schema-migration\u002F2.import-changes","i-lucide-refresh-cw",{"title":336,"path":337,"stem":338,"icon":339},"Operation Reference","\u002Fen\u002Freference\u002Fapi-reference\u002Fschema-migration\u002Foperation-reference","en\u002F6.reference\u002F7.api-reference\u002F3.schema-migration\u002F3.operation-reference","i-lucide-list-tree",{"title":341,"path":342,"stem":343,"children":344,"page":6},"Design Considerations","\u002Fen\u002Freference\u002Fdesign-considerations","en\u002F6.reference\u002F8.design-considerations",[345,349,354,359,364],{"title":143,"path":346,"stem":347,"icon":348},"\u002Fen\u002Freference\u002Fdesign-considerations\u002Foverview","en\u002F6.reference\u002F8.design-considerations\u002F1.overview","i-lucide-compass",{"title":350,"path":351,"stem":352,"icon":353},"Instance Configuration","\u002Fen\u002Freference\u002Fdesign-considerations\u002Finstance-configuration-related-problems","en\u002F6.reference\u002F8.design-considerations\u002F3.instance-configuration-related-problems","i-lucide-wrench",{"title":355,"path":356,"stem":357,"icon":358},"Overly Permissive Public Access","\u002Fen\u002Freference\u002Fdesign-considerations\u002Foverly-permissive","en\u002F6.reference\u002F8.design-considerations\u002F4.overly-permissive","i-lucide-shield-off",{"title":360,"path":361,"stem":362,"icon":363},"No Aggregates","\u002Fen\u002Freference\u002Fdesign-considerations\u002Fno-aggregates","en\u002F6.reference\u002F8.design-considerations\u002F5.no-aggregates","i-lucide-sigma",{"title":365,"path":366,"stem":367,"icon":368},"Cross-Data-Source Referential Integrity","\u002Fen\u002Freference\u002Fdesign-considerations\u002Fcross-data-source-referential-integrity","en\u002F6.reference\u002F8.design-considerations\u002F6.cross-data-source-referential-integrity","i-lucide-unlink",{"title":370,"path":371,"stem":372,"icon":373},"CLI","\u002Fen\u002Freference\u002Fcli","en\u002F6.reference\u002F9.cli","i-lucide-square-terminal",{"title":221,"path":375,"stem":376,"children":377,"page":6},"\u002Fen\u002Freference\u002Fextensions","en\u002F6.reference\u002F9.extensions",[378,383,386,405],{"title":379,"path":380,"stem":381,"icon":382},"Extension Config and Manifest","\u002Fen\u002Freference\u002Fextensions\u002Fmanifest","en\u002F6.reference\u002F9.extensions\u002F1.manifest","i-lucide-file-json",{"title":370,"path":384,"stem":385,"icon":86},"\u002Fen\u002Freference\u002Fextensions\u002Fcli","en\u002F6.reference\u002F9.extensions\u002F2.cli",{"title":387,"path":388,"stem":389,"children":390,"page":6},"Extension Kit","\u002Fen\u002Freference\u002Fextensions\u002Fextension-kit","en\u002F6.reference\u002F9.extensions\u002F3.extension-kit",[391,395,400],{"title":392,"path":393,"stem":394,"icon":81},"Data Connector","\u002Fen\u002Freference\u002Fextensions\u002Fextension-kit\u002Fdata-connector","en\u002F6.reference\u002F9.extensions\u002F3.extension-kit\u002F1.data-connector",{"title":396,"path":397,"stem":398,"icon":399},"Protocol","\u002Fen\u002Freference\u002Fextensions\u002Fextension-kit\u002Fprotocol","en\u002F6.reference\u002F9.extensions\u002F3.extension-kit\u002F2.protocol","i-lucide-arrow-left-right",{"title":401,"path":402,"stem":403,"icon":404},"Schema Helpers","\u002Fen\u002Freference\u002Fextensions\u002Fextension-kit\u002Fexperimental","en\u002F6.reference\u002F9.extensions\u002F3.extension-kit\u002F3.experimental","i-lucide-blocks",{"title":113,"path":406,"stem":407,"children":408,"page":6},"\u002Fen\u002Freference\u002Fextensions\u002Fdata-connectors","en\u002F6.reference\u002F9.extensions\u002F4.data-connectors",[409,413,417,421,426,431],{"title":410,"path":411,"stem":412,"icon":81},"Data Connector API","\u002Fen\u002Freference\u002Fextensions\u002Fdata-connectors\u002Fapi","en\u002F6.reference\u002F9.extensions\u002F4.data-connectors\u002F1.api",{"title":414,"path":415,"stem":416,"icon":176},"Operations and Operators","\u002Fen\u002Freference\u002Fextensions\u002Fdata-connectors\u002Foperations","en\u002F6.reference\u002F9.extensions\u002F4.data-connectors\u002F2.operations",{"title":148,"path":418,"stem":419,"icon":420},"\u002Fen\u002Freference\u002Fextensions\u002Fdata-connectors\u002Ferrors","en\u002F6.reference\u002F9.extensions\u002F4.data-connectors\u002F3.errors","i-lucide-triangle-alert",{"title":422,"path":423,"stem":424,"icon":425},"Runtime Limits","\u002Fen\u002Freference\u002Fextensions\u002Fdata-connectors\u002Flimits","en\u002F6.reference\u002F9.extensions\u002F4.data-connectors\u002F4.limits","i-lucide-gauge",{"title":427,"path":428,"stem":429,"icon":430},"Limitations","\u002Fen\u002Freference\u002Fextensions\u002Fdata-connectors\u002Flimitations","en\u002F6.reference\u002F9.extensions\u002F4.data-connectors\u002F5.limitations","i-lucide-ban",{"title":432,"path":433,"stem":434,"icon":435},"Network Permissions","\u002Fen\u002Freference\u002Fextensions\u002Fdata-connectors\u002Fpermissions","en\u002F6.reference\u002F9.extensions\u002F4.data-connectors\u002F6.permissions","i-lucide-shield-check",{"title":437,"icon":121,"path":438,"stem":439,"children":440,"page":6},"Release Notes","\u002Fen\u002Frelease-notes","en\u002F7.release-notes",[441],{"title":442,"path":443,"stem":444,"icon":121},"Changelog","\u002Fen\u002Frelease-notes\u002Fchangelog","en\u002F7.release-notes\u002F1.changelog",{"id":446,"title":370,"body":447,"description":2700,"extension":2701,"links":2702,"meta":2703,"navigation":2704,"path":384,"seo":2705,"stem":385,"__hash__":2706},"docs_en\u002Fen\u002F6.reference\u002F9.extensions\u002F2.cli.md",{"type":448,"value":449,"toc":2682},"minimark",[450,453,457,470,510,518,521,602,615,619,622,691,700,712,722,725,730,739,855,919,932,954,959,962,1184,1190,1199,1229,1232,1241,1263,1267,1279,1331,1378,1387,1391,1417,1422,1428,1431,1434,1475,1484,1488,1497,1504,1516,1520,1531,1603,1620,1686,1694,1700,1703,1712,1728,1732,1740,1817,1850,1859,1865,1868,1873,2028,2133,2138,2203,2223,2233,2237,2292,2314,2331,2335,2350,2650,2654,2678],[451,452],"preview",{},[454,455,143],"h2",{"id":456},"overview",[458,459,460,461,465,466,469],"p",{},"The ",[462,463,464],"code",{},"@monospace\u002Fcli"," package provides the ",[462,467,468],{},"monospace"," binary. Two commands work with extensions:",[471,472,473,486],"table",{},[474,475,476],"thead",{},[477,478,479,483],"tr",{},[480,481,482],"th",{},"Command",[480,484,485],{},"Does",[487,488,489,500],"tbody",{},[477,490,491,497],{},[492,493,494],"td",{},[462,495,496],{},"monospace extension create [directory]",[492,498,499],{},"Scaffolds an extension project from a template. The only template today scaffolds a data connector extension with one entry",[477,501,502,507],{},[492,503,504],{},[462,505,506],{},"monospace extension build",[492,508,509],{},"Builds the project into a manifest and one JavaScript file per entry, and optionally installs it",[458,511,512,513,517],{},"Neither command needs a login or a running ",[514,515,516],"strong",{},"instance"," (a Monospace deployment). Both run locally against your files. The CLI needs Node.js 22.12 or later.",[458,519,520],{},"Add the CLI to an extension project as a dev dependency:",[522,523,525,553,570,586],"code-group",{"sync":524},"pm",[526,527,533],"pre",{"className":528,"code":529,"filename":530,"language":531,"meta":532,"style":532},"language-bash shiki shiki-themes monospace-light monospace-light monospace-dark","npm install -D @monospace\u002Fcli\n","npm","bash","",[462,534,535],{"__ignoreMap":532},[536,537,540,543,547,550],"span",{"class":538,"line":539},"line",1,[536,541,530],{"class":542},"ssBNi",[536,544,546],{"class":545},"suKVh"," install",[536,548,549],{"class":542}," -D",[536,551,552],{"class":545}," @monospace\u002Fcli\n",[526,554,557],{"className":528,"code":555,"filename":556,"language":531,"meta":532,"style":532},"pnpm add -D @monospace\u002Fcli\n","pnpm",[462,558,559],{"__ignoreMap":532},[536,560,561,563,566,568],{"class":538,"line":539},[536,562,556],{"class":542},[536,564,565],{"class":545}," add",[536,567,549],{"class":542},[536,569,552],{"class":545},[526,571,574],{"className":528,"code":572,"filename":573,"language":531,"meta":532,"style":532},"yarn add -D @monospace\u002Fcli\n","yarn",[462,575,576],{"__ignoreMap":532},[536,577,578,580,582,584],{"class":538,"line":539},[536,579,573],{"class":542},[536,581,565],{"class":545},[536,583,549],{"class":542},[536,585,552],{"class":545},[526,587,590],{"className":528,"code":588,"filename":589,"language":531,"meta":532,"style":532},"bun add -D @monospace\u002Fcli\n","bun",[462,591,592],{"__ignoreMap":532},[536,593,594,596,598,600],{"class":538,"line":539},[536,595,589],{"class":542},[536,597,565],{"class":545},[536,599,549],{"class":542},[536,601,552],{"class":545},[458,603,604,605,608,609,614],{},"A project that ",[462,606,607],{},"monospace extension create"," writes already lists it. To create that project, run the CLI without installing it; see ",[610,611,613],"a",{"href":612},"#create-an-extension","Create an Extension",".",[454,616,618],{"id":617},"use-global-flags","Use Global Flags",[458,620,621],{},"These flags work with every command.",[471,623,624,634],{},[474,625,626],{},[477,627,628,631],{},[480,629,630],{},"Flag",[480,632,633],{},"Effect",[487,635,636,650,664,678],{},[477,637,638,643],{},[492,639,640],{},[462,641,642],{},"--json",[492,644,645,646],{},"Print one JSON result on stdout. See ",[610,647,649],{"href":648},"#read-json-output","Read JSON Output",[477,651,652,657],{},[492,653,654],{},[462,655,656],{},"--no-input",[492,658,659,660,663],{},"Never prompt. A question that would have been asked fails the command, unless it has an answer for unattended runs (e.g., ",[462,661,662],{},"create","'s directory)",[477,665,666,675],{},[492,667,668,671,672],{},[462,669,670],{},"-h",", ",[462,673,674],{},"--help",[492,676,677],{},"Show help for the command",[477,679,680,688],{},[492,681,682,671,685],{},[462,683,684],{},"-V",[462,686,687],{},"--version",[492,689,690],{},"Show the CLI version",[458,692,693,694,696,697,699],{},"Without ",[462,695,642],{},", results print to stdout, and prompts, warnings and errors go to stderr. With ",[462,698,642],{},", stdout carries only the JSON result.",[458,701,702,704,705,707,708,711],{},[462,703,642],{}," doesn't turn prompts off, so pass ",[462,706,656],{}," in scripts. Prompts are also off when stdin or stderr isn't a terminal, or when the ",[462,709,710],{},"CI"," environment variable is set.",[458,713,714,715,718,719,721],{},"The CLI reads a ",[462,716,717],{},".env"," file in the working directory. Variables already set in your environment take precedence over it, and a ",[462,720,710],{}," entry there also turns prompts off.",[454,723,613],{"id":724},"create-an-extension",[458,726,727,729],{},[462,728,607],{}," writes a new extension project. Its template contains one data connector entry, and it's the only template today.",[458,731,732,733,735,736,738],{},"The project doesn't exist yet, so run the CLI without installing it. Each package manager fetches ",[462,734,464],{}," and runs its ",[462,737,468],{}," binary:",[522,740,741,775,801,829],{"sync":524},[526,742,744],{"className":528,"code":743,"filename":530,"language":531,"meta":532,"style":532},"npx @monospace\u002Fcli@0.2 extension create .\u002Fartic --id example\u002Fartic --name \"Art Institute of Chicago\"\n",[462,745,746],{"__ignoreMap":532},[536,747,748,751,754,757,760,763,766,769,772],{"class":538,"line":539},[536,749,750],{"class":542},"npx",[536,752,753],{"class":545}," @monospace\u002Fcli@0.2",[536,755,756],{"class":545}," extension",[536,758,759],{"class":545}," create",[536,761,762],{"class":545}," .\u002Fartic",[536,764,765],{"class":542}," --id",[536,767,768],{"class":545}," example\u002Fartic",[536,770,771],{"class":542}," --name",[536,773,774],{"class":545}," \"Art Institute of Chicago\"\n",[526,776,778],{"className":528,"code":777,"filename":556,"language":531,"meta":532,"style":532},"pnpx @monospace\u002Fcli@0.2 extension create .\u002Fartic --id example\u002Fartic --name \"Art Institute of Chicago\"\n",[462,779,780],{"__ignoreMap":532},[536,781,782,785,787,789,791,793,795,797,799],{"class":538,"line":539},[536,783,784],{"class":542},"pnpx",[536,786,753],{"class":545},[536,788,756],{"class":545},[536,790,759],{"class":545},[536,792,762],{"class":545},[536,794,765],{"class":542},[536,796,768],{"class":545},[536,798,771],{"class":542},[536,800,774],{"class":545},[526,802,804],{"className":528,"code":803,"filename":573,"language":531,"meta":532,"style":532},"yarn dlx @monospace\u002Fcli@0.2 extension create .\u002Fartic --id example\u002Fartic --name \"Art Institute of Chicago\"\n",[462,805,806],{"__ignoreMap":532},[536,807,808,810,813,815,817,819,821,823,825,827],{"class":538,"line":539},[536,809,573],{"class":542},[536,811,812],{"class":545}," dlx",[536,814,753],{"class":545},[536,816,756],{"class":545},[536,818,759],{"class":545},[536,820,762],{"class":545},[536,822,765],{"class":542},[536,824,768],{"class":545},[536,826,771],{"class":542},[536,828,774],{"class":545},[526,830,832],{"className":528,"code":831,"filename":589,"language":531,"meta":532,"style":532},"bunx @monospace\u002Fcli@0.2 extension create .\u002Fartic --id example\u002Fartic --name \"Art Institute of Chicago\"\n",[462,833,834],{"__ignoreMap":532},[536,835,836,839,841,843,845,847,849,851,853],{"class":538,"line":539},[536,837,838],{"class":542},"bunx",[536,840,753],{"class":545},[536,842,756],{"class":545},[536,844,759],{"class":545},[536,846,762],{"class":545},[536,848,765],{"class":542},[536,850,768],{"class":545},[536,852,771],{"class":542},[536,854,774],{"class":545},[471,856,857,867],{},[474,858,859],{},[477,860,861,864],{},[480,862,863],{},"Argument or flag",[480,865,866],{},"Description",[487,868,869,883,901],{},[477,870,871,876],{},[492,872,873],{},[462,874,875],{},"directory",[492,877,878,879,882],{},"Directory to create the project in. It must not exist, or be empty apart from ",[462,880,881],{},".git",". When it has other files, the command asks for another directory",[477,884,885,890],{},[492,886,887],{},[462,888,889],{},"--id \u003Cid>",[492,891,892,893,896,897],{},"Extension id, as ",[462,894,895],{},"namespace\u002Fname",". Prompted for when omitted. See ",[610,898,900],{"href":899},"\u002Freference\u002Fextensions\u002Fmanifest#id-format","Id Format",[477,902,903,908],{},[492,904,905],{},[462,906,907],{},"--name \u003Cname>",[492,909,910,911,914,915,918],{},"Display name. Defaults to a name derived from the id (",[462,912,913],{},"example\u002Fartic"," gives ",[462,916,917],{},"Example Artic","). When omitted, the command asks for it with that name filled in; without prompts, it uses that name. Must contain a visible character and no control characters",[458,920,693,921,923,924,927,928,931],{},[462,922,875],{},", the command asks for one first, and offers the working directory when it's empty. Without prompts, it uses the working directory, which must then be empty. A directory you type at the prompt as ",[462,925,926],{},"~",", or starting with ",[462,929,930],{},"~\u002F",", expands to your home directory.",[458,933,934,935,671,937,940,941,944,945,947,948,950,951,614],{},"With a new or empty ",[462,936,875],{},[462,938,939],{},"--id"," and ",[462,942,943],{},"--name",", the command asks nothing. Without prompts, a missing ",[462,946,939],{},", or a ",[462,949,875],{}," with other files, fails the command with ",[462,952,953],{},"cli.confirmation_required",[955,956,958],"h3",{"id":957},"scaffolded-files","Scaffolded Files",[458,960,961],{},"The data connector template writes these files and nothing else:",[471,963,964,974],{},[474,965,966],{},[477,967,968,971],{},[480,969,970],{},"File",[480,972,973],{},"Contents",[487,975,976,1012,1056,1086,1120,1158,1168],{},[477,977,978,983],{},[492,979,980],{},[462,981,982],{},"extension.config.json",[492,984,460,985,989,990,993,994,997,998,1001,1002,1005,1006],{},[610,986,988],{"href":987},"\u002Freference\u002Fextensions\u002Fmanifest","extension config",", version ",[462,991,992],{},"0.1.0",", with an editor ",[462,995,996],{},"$schema"," and one data connector entry. The entry has no ",[462,999,1000],{},"icon",", no ",[462,1003,1004],{},"engine.permissions"," and no ",[610,1007,1009],{"href":1008},"\u002Freference\u002Fextensions\u002Fmanifest#capabilities",[462,1010,1011],{},"engine.capabilities",[477,1013,1014,1019],{},[492,1015,1016],{},[462,1017,1018],{},"package.json",[492,1020,1021,1022,1024,1025,1028,1029,1032,1033,1035,1036,1032,1039,1042,1043,1046,1047,671,1049,940,1052,1055],{},"A private ES module package named after the id (",[462,1023,913],{}," becomes ",[462,1026,1027],{},"example-artic","). Its ",[462,1030,1031],{},"build"," script runs ",[462,1034,506],{},", and its ",[462,1037,1038],{},"typecheck",[462,1040,1041],{},"tsc --noEmit",". It depends on ",[462,1044,1045],{},"@monospace\u002Fextension-kit",", with ",[462,1048,464],{},[462,1050,1051],{},"rolldown",[462,1053,1054],{},"typescript"," as dev dependencies",[477,1057,1058,1063],{},[492,1059,1060],{},[462,1061,1062],{},"tsconfig.json",[492,1064,1065,671,1068,940,1071,1074,1075,1078,1079,1082,1083],{},[462,1066,1067],{},"strict",[462,1069,1070],{},"noEmit",[462,1072,1073],{},"verbatimModuleSyntax",", with an ",[462,1076,1077],{},"ES2023"," target and ",[462,1080,1081],{},"bundler"," module resolution, covering ",[462,1084,1085],{},"src",[477,1087,1088,1093],{},[492,1089,1090],{},[462,1091,1092],{},"src\u002Fdata-connectors\u002F\u003Cnamespace>\u002Findex.ts",[492,1094,1095,1096,1099,1100,1103,1104,1107,1108,1112,1113,1116,1117],{},"The data connector entry's entrypoint. ",[462,1097,1098],{},"setup"," returns ",[462,1101,1102],{},"introspect",", a ",[462,1105,1106],{},"query"," that answers every read with two fixed ",[610,1109,1111],{"href":1110},"\u002Fconcepts\u002Fdata-model#collections","items"," (single data objects), and a ",[462,1114,1115],{},"testConnection"," that answers ",[462,1118,1119],{},"{ ok: true }",[477,1121,1122,1127],{},[492,1123,1124],{},[462,1125,1126],{},"src\u002Fdata-connectors\u002F\u003Cnamespace>\u002Fschema.ts",[492,1128,1129,1130,671,1133,1135,1136,1140,1141,940,1144,1147,1148,1150,1151,1154,1155],{},"The connector's schema: one ",[610,1131,1132],{"href":1110},"collection",[462,1134,1111],{},", with the string ",[610,1137,1139],{"href":1138},"\u002Fconcepts\u002Fdata-model#fields","fields"," ",[462,1142,1143],{},"id",[462,1145,1146],{},"name",", a primary index on ",[462,1149,1143],{},", and ",[462,1152,1153],{},"readMany"," with ",[462,1156,1157],{},"output: fields.all()",[477,1159,1160,1165],{},[492,1161,1162],{},[462,1163,1164],{},"README.md",[492,1166,1167],{},"Build, type-check and install instructions, including the install location and automatic reloading settings",[477,1169,1170,1175],{},[492,1171,1172],{},[462,1173,1174],{},".gitignore",[492,1176,1177,1178,940,1181],{},"Ignores ",[462,1179,1180],{},"dist",[462,1182,1183],{},"node_modules",[458,1185,1186,1187,1189],{},"The scaffold typechecks and builds as written. Installed and added as a data source, it serves the two items from its ",[462,1188,1111],{}," collection.",[458,1191,1192,1193,1195,1196,1198],{},"The scaffold declares only ",[462,1194,1153],{},", with no filter, sort or paging, and its ",[462,1197,1106],{}," ignores the request. Declare more only together with the code that answers it.",[458,1200,1201,1202,1205,1206,1209,1210,1212,1213,1216,1217,1220,1221,1225,1226,614],{},"The template's entry id is ",[462,1203,1204],{},"\u003Cnamespace>\u002Fdata-connector",", where ",[462,1207,1208],{},"\u003Cnamespace>"," is the first segment of ",[462,1211,939],{},". ",[462,1214,1215],{},"--id example\u002Fartic"," produces the entry ",[462,1218,1219],{},"example\u002Fdata-connector",". Two projects with the same namespace get the same entry id, so rename the entry before you install both. The ",[610,1222,1224],{"href":1223},"\u002Fguides\u002Fdata-connectors\u002Fquickstart","Data Connector Quickstart"," renames it to ",[462,1227,1228],{},"example\u002Fartic-connector",[458,1230,1231],{},"The command doesn't install dependencies. It prints what it created, the extension id, entry id, directory and file list, then the next two commands:",[526,1233,1239],{"className":1234,"code":1236,"filename":1237,"language":1238,"meta":532},[1235],"language-text","Created the Art Institute of Chicago extension\n\nExtension  example\u002Fartic\nEntry      example\u002Fdata-connector\nDirectory  \u002Fhome\u002Fyou\u002Fartic\n  - .gitignore\n  - README.md\n  - extension.config.json\n  - package.json\n  - src\u002Fdata-connectors\u002Fexample\u002Findex.ts\n  - src\u002Fdata-connectors\u002Fexample\u002Fschema.ts\n  - tsconfig.json\n\nNext steps\n  1. cd .\u002Fartic && npm i\n  2. npm run build\n","output","text",[462,1240,1236],{"__ignoreMap":532},[458,1242,1243,1244,1247,1248,1251,1252,1255,1256,1259,1260,1262],{},"The first step is written for a POSIX shell (",[462,1245,1246],{},"cd … && …",", with POSIX quoting), not for ",[462,1249,1250],{},"cmd.exe"," or PowerShell. The install and build commands match your package manager. The CLI looks in the working directory and its parents for a lockfile, or a ",[462,1253,1254],{},"packageManager"," or ",[462,1257,1258],{},"devEngines.packageManager"," field in ",[462,1261,1018],{},". Without one, it uses the package manager that launched it, and falls back to npm.",[454,1264,1266],{"id":1265},"build-an-extension","Build an Extension",[458,1268,1269,1271,1272,1274,1275,1278],{},[462,1270,506],{}," reads ",[462,1273,982],{}," from the working directory and writes the built extension to ",[462,1276,1277],{},".\u002Fdist",". Run it from the project root:",[522,1280,1281,1296,1307,1318],{"sync":524},[526,1282,1284],{"className":528,"code":1283,"filename":530,"language":531,"meta":532,"style":532},"npm run build\n",[462,1285,1286],{"__ignoreMap":532},[536,1287,1288,1290,1293],{"class":538,"line":539},[536,1289,530],{"class":542},[536,1291,1292],{"class":545}," run",[536,1294,1295],{"class":545}," build\n",[526,1297,1299],{"className":528,"code":1298,"filename":556,"language":531,"meta":532,"style":532},"pnpm build\n",[462,1300,1301],{"__ignoreMap":532},[536,1302,1303,1305],{"class":538,"line":539},[536,1304,556],{"class":542},[536,1306,1295],{"class":545},[526,1308,1310],{"className":528,"code":1309,"filename":573,"language":531,"meta":532,"style":532},"yarn build\n",[462,1311,1312],{"__ignoreMap":532},[536,1313,1314,1316],{"class":538,"line":539},[536,1315,573],{"class":542},[536,1317,1295],{"class":545},[526,1319,1321],{"className":528,"code":1320,"filename":589,"language":531,"meta":532,"style":532},"bun run build\n",[462,1322,1323],{"__ignoreMap":532},[536,1324,1325,1327,1329],{"class":538,"line":539},[536,1326,589],{"class":542},[536,1328,1292],{"class":545},[536,1330,1295],{"class":545},[471,1332,1333,1341],{},[474,1334,1335],{},[477,1336,1337,1339],{},[480,1338,630],{},[480,1340,866],{},[487,1342,1343,1355,1365],{},[477,1344,1345,1350],{},[492,1346,1347],{},[462,1348,1349],{},"--out-dir \u003Cpath>",[492,1351,1352,1353],{},"Write the build here instead of ",[462,1354,1277],{},[477,1356,1357,1362],{},[492,1358,1359],{},[462,1360,1361],{},"--install-to \u003Cpath>",[492,1363,1364],{},"After a successful build, copy it into this instance install directory",[477,1366,1367,1372],{},[492,1368,1369],{},[462,1370,1371],{},"--watch",[492,1373,1374,1375,1377],{},"Rebuild whenever a source file or ",[462,1376,982],{}," changes. Stop with Ctrl-C",[458,1379,1380,1381,1140,1383,1386],{},"The build requires ",[462,1382,1051],{},[462,1384,1385],{},"^1.2.0"," in the project's dependencies. The CLI uses the project's copy, not its own.",[955,1388,1390],{"id":1389},"build-steps","Build Steps",[1392,1393,1394,1401,1408,1414],"ol",{},[1395,1396,1397,1398,1400],"li",{},"Parse and validate ",[462,1399,982],{}," against the extension config schema.",[1395,1402,1403,1404,614],{},"Build each entry's code as its entry type defines. See ",[610,1405,1407],{"href":1406},"#data-connector-bundles","Data Connector Bundles",[1395,1409,1410,1411,614],{},"Write ",[462,1412,1413],{},"manifest.json",[1395,1415,1416],{},"Swap the new build in place of the old output directory.",[458,1418,693,1419,1421],{},[462,1420,1371],{},", every entry builds into a staging directory first, so a failed build leaves the previous output untouched.",[458,1423,1424,1425,1427],{},"The build doesn't type-check your TypeScript or run your entry code. A successful build or install can still fail to load. Run the scaffolded ",[462,1426,1038],{}," script for type errors.",[955,1429,1407],{"id":1430},"data-connector-bundles",[458,1432,1433],{},"For each data connector entry, the build:",[1392,1435,1436,1447,1469],{},[1395,1437,1438,1439,1442,1443,1446],{},"Bundles ",[462,1440,1441],{},"engine.entrypoint"," into one ES module: ",[462,1444,1445],{},"platform"," neutral, no code splitting, no minification, no source maps.",[1395,1448,1449,1450,671,1453,1456,1457,1460,1461,1464,1465,1468],{},"Checks the bundle: it must be a single JavaScript chunk, have a default export, and contain no ",[462,1451,1452],{},"import",[462,1454,1455],{},"export ... from",", dynamic ",[462,1458,1459],{},"import()"," or direct ",[462,1462,1463],{},"require(...)"," call. The check reads the code without running it and doesn't catch every form (e.g., ",[462,1466,1467],{},"require(...args)",").",[1395,1470,1471,1472,614],{},"Writes the bundle as ",[462,1473,1474],{},"\u003Centry id>.js",[458,1476,1477,1478,1480,1481,614],{},"The build checks that a default export exists, not that it has a ",[462,1479,1098],{}," function. To run a data connector, see ",[610,1482,256],{"href":1483},"\u002Fdeveloper\u002Fextensions\u002Fdata-connectors\u002Ftesting",[955,1485,1487],{"id":1486},"output-directory","Output Directory",[458,1489,1490,1491,1493,1494,1496],{},"A build of the ",[610,1492,1224],{"href":1223}," project, whose entry id is ",[462,1495,1228],{},", writes this layout:",[526,1498,1502],{"className":1499,"code":1500,"filename":1501,"language":1238,"meta":532},[1235],"dist\u002F\n├── .monospace-build\n├── manifest.json\n└── example\u002F\n    └── artic-connector.js\n","dist\u002F",[462,1503,1500],{"__ignoreMap":532},[458,1505,1506,1509,1510,1512,1513,1515],{},[462,1507,1508],{},".monospace-build"," marks the directory as owned by the extension. The CLI replaces an output directory only when it is missing, empty, or already holds the same extension id, read from its ",[462,1511,1413],{}," or, without a readable manifest, from ",[462,1514,1508],{},". It refuses a directory that contains the project, the working directory, any entrypoint source, or any other source file the bundler reports the entrypoints import.",[454,1517,1519],{"id":1518},"install-a-build","Install a Build",[458,1521,1522,1525,1526,1530],{},[462,1523,1524],{},"--install-to"," copies a successful build into an instance's install directory. See ",[610,1527,1529],{"href":1528},"\u002Fdeveloper\u002Fextensions\u002Finstall#choose-the-install-location","Choose the Install Location"," for where that directory is.",[522,1532,1533,1556,1571,1586],{"sync":524},[526,1534,1536],{"className":528,"code":1535,"filename":530,"language":531,"meta":532,"style":532},"npm run build -- --install-to ..\u002Fmonospace\u002Fextensions\n",[462,1537,1538],{"__ignoreMap":532},[536,1539,1540,1542,1544,1547,1550,1553],{"class":538,"line":539},[536,1541,530],{"class":542},[536,1543,1292],{"class":545},[536,1545,1546],{"class":545}," build",[536,1548,1549],{"class":542}," --",[536,1551,1552],{"class":542}," --install-to",[536,1554,1555],{"class":545}," ..\u002Fmonospace\u002Fextensions\n",[526,1557,1559],{"className":528,"code":1558,"filename":556,"language":531,"meta":532,"style":532},"pnpm build --install-to ..\u002Fmonospace\u002Fextensions\n",[462,1560,1561],{"__ignoreMap":532},[536,1562,1563,1565,1567,1569],{"class":538,"line":539},[536,1564,556],{"class":542},[536,1566,1546],{"class":545},[536,1568,1552],{"class":542},[536,1570,1555],{"class":545},[526,1572,1574],{"className":528,"code":1573,"filename":573,"language":531,"meta":532,"style":532},"yarn build --install-to ..\u002Fmonospace\u002Fextensions\n",[462,1575,1576],{"__ignoreMap":532},[536,1577,1578,1580,1582,1584],{"class":538,"line":539},[536,1579,573],{"class":542},[536,1581,1546],{"class":545},[536,1583,1552],{"class":542},[536,1585,1555],{"class":545},[526,1587,1589],{"className":528,"code":1588,"filename":589,"language":531,"meta":532,"style":532},"bun run build --install-to ..\u002Fmonospace\u002Fextensions\n",[462,1590,1591],{"__ignoreMap":532},[536,1592,1593,1595,1597,1599,1601],{"class":538,"line":539},[536,1594,589],{"class":542},[536,1596,1292],{"class":545},[536,1598,1546],{"class":545},[536,1600,1552],{"class":542},[536,1602,1555],{"class":545},[458,1604,1605,1606,1609,1610,1612,1613,1616,1617,1619],{},"The CLI writes the build to ",[462,1607,1608],{},"\u003Cinstall-to>\u002F\u003Cnamespace>__\u003Cname>\u002F",", named after the extension id. ",[462,1611,913],{}," installs to ",[462,1614,1615],{},"example__artic\u002F",". The ",[462,1618,1508],{}," marker isn't copied.",[471,1621,1622,1632],{},[474,1623,1624],{},[477,1625,1626,1629],{},[480,1627,1628],{},"Rule",[480,1630,1631],{},"Behavior",[487,1633,1634,1648,1662,1670,1678],{},[477,1635,1636,1642],{},[492,1637,1638,1639,1641],{},"Target holds another extension, or files but neither an extension manifest nor a ",[462,1640,1508],{}," marker",[492,1643,1644,1645],{},"Refused with ",[462,1646,1647],{},"extension.install_dir_not_ours",[477,1649,1650,1657],{},[492,1651,1652,1653,1656],{},"Target and ",[462,1654,1655],{},"--out-dir"," inside each other",[492,1658,1644,1659],{},[462,1660,1661],{},"extension.install_overlaps_artifact",[477,1663,1664,1667],{},[492,1665,1666],{},"Target is a symlink",[492,1668,1669],{},"The CLI updates the directory it points to. The instance doesn't load a symlinked extension directory, so install into a real directory",[477,1671,1672,1675],{},[492,1673,1674],{},"Existing install of the same extension",[492,1676,1677],{},"Replaced whole, never merged. Files you added there are deleted",[477,1679,1680,1683],{},[492,1681,1682],{},"Copy fails",[492,1684,1685],{},"The previous install stays in place",[458,1687,693,1688,1690,1691,1693],{},[462,1689,1371],{},", the CLI installs before it replaces the output directory. If replacing ",[462,1692,1655],{}," then fails, the command fails with the new build already installed.",[458,1695,1696,1697,1699],{},"After you rename the extension id, remove the old output directory or pass a new ",[462,1698,1655],{},". The build refuses an output directory that holds another extension id.",[458,1701,1702],{},"The renamed build installs to a new directory. The CLI never removes the old install, so delete it yourself.",[458,1704,1705,1706,1711],{},"A running instance picks up the install on its next start. With ",[1707,1708],"env-var",{"name":1709,"section":1710},"extensions__auto_reload","extensions"," on, it reloads the install automatically. Auto-reload is off by default, and the install directory must exist when the instance starts.",[458,1713,693,1714,1716,1717,1720,1721,1723,1724,1727],{},[462,1715,642],{},", the CLI prints ",[462,1718,1719],{},"Restart the engine to load it, unless it runs with MONOSPACE_EXTENSIONS__AUTO_RELOAD=true."," after a build that installed. A build without ",[462,1722,1524],{}," ends with ",[462,1725,1726],{},"To load it, build with --install-to pointing at an engine's extensions directory."," instead. In watch mode, it prints one of them once, when you stop a session whose last build succeeded.",[454,1729,1731],{"id":1730},"watch-for-changes","Watch for Changes",[458,1733,1734,1736,1737,1739],{},[462,1735,1371],{}," builds, then rebuilds when a source file or ",[462,1738,982],{}," changes:",[522,1741,1742,1764,1781,1798],{"sync":524},[526,1743,1745],{"className":528,"code":1744,"filename":530,"language":531,"meta":532,"style":532},"npm run build -- --watch --install-to ..\u002Fmonospace\u002Fextensions\n",[462,1746,1747],{"__ignoreMap":532},[536,1748,1749,1751,1753,1755,1757,1760,1762],{"class":538,"line":539},[536,1750,530],{"class":542},[536,1752,1292],{"class":545},[536,1754,1546],{"class":545},[536,1756,1549],{"class":542},[536,1758,1759],{"class":542}," --watch",[536,1761,1552],{"class":542},[536,1763,1555],{"class":545},[526,1765,1767],{"className":528,"code":1766,"filename":556,"language":531,"meta":532,"style":532},"pnpm build --watch --install-to ..\u002Fmonospace\u002Fextensions\n",[462,1768,1769],{"__ignoreMap":532},[536,1770,1771,1773,1775,1777,1779],{"class":538,"line":539},[536,1772,556],{"class":542},[536,1774,1546],{"class":545},[536,1776,1759],{"class":542},[536,1778,1552],{"class":542},[536,1780,1555],{"class":545},[526,1782,1784],{"className":528,"code":1783,"filename":573,"language":531,"meta":532,"style":532},"yarn build --watch --install-to ..\u002Fmonospace\u002Fextensions\n",[462,1785,1786],{"__ignoreMap":532},[536,1787,1788,1790,1792,1794,1796],{"class":538,"line":539},[536,1789,573],{"class":542},[536,1791,1546],{"class":545},[536,1793,1759],{"class":542},[536,1795,1552],{"class":542},[536,1797,1555],{"class":545},[526,1799,1801],{"className":528,"code":1800,"filename":589,"language":531,"meta":532,"style":532},"bun run build --watch --install-to ..\u002Fmonospace\u002Fextensions\n",[462,1802,1803],{"__ignoreMap":532},[536,1804,1805,1807,1809,1811,1813,1815],{"class":538,"line":539},[536,1806,589],{"class":542},[536,1808,1292],{"class":545},[536,1810,1546],{"class":545},[536,1812,1759],{"class":542},[536,1814,1552],{"class":542},[536,1816,1555],{"class":545},[1818,1819,1820,1833,1836,1842],"ul",{},[1395,1821,1822,1823,1825,1826,1255,1829,1832],{},"Each rebuild writes in place into the output directory. Without ",[462,1824,642],{},", a successful rebuild prints ",[462,1827,1828],{},"Built 1 entry.",[462,1830,1831],{},"Built 2 entries.",", and so on.",[1395,1834,1835],{},"A failed rebuild prints a warning and keeps the last good file for the failed entry.",[1395,1837,1838,1839,1841],{},"With ",[462,1840,1524],{},", the CLI installs only when every entry in the cycle built. A good entry never installs next to a broken one.",[1395,1843,1844,1845,671,1847,1849],{},"After each successful rebuild, the CLI deletes every file in the output directory except ",[462,1846,1413],{},[462,1848,1508],{}," and the current entry files.",[458,1851,1852,1853,1855,1856,1858],{},"When preparing a cycle fails (e.g., an invalid ",[462,1854,982],{}," or a missing Rolldown), watch retries only after the next change to ",[462,1857,982],{},". Installing a missing dependency doesn't trigger a retry: save the config again or restart the command.",[458,1860,1861,1862,1864],{},"Watch mode doesn't reload the instance. Combine it with ",[1707,1863],{"name":1709,"section":1710}," to see changes without a restart.",[454,1866,649],{"id":1867},"read-json-output",[458,1869,1838,1870,1872],{},[462,1871,642],{},", each command prints exactly one JSON object on stdout when it finishes, including on failure:",[526,1874,1879],{"className":1875,"code":1876,"filename":1877,"language":1878,"meta":532,"style":532},"language-json shiki shiki-themes monospace-light monospace-light monospace-dark","{\n  \"data\": {\n    \"artifactDir\": \"\u002Fhome\u002Fyou\u002Fartic\u002Fdist\",\n    \"builds\": 1,\n    \"entries\": [{ \"id\": \"example\u002Fartic-connector\", \"output\": \"example\u002Fartic-connector.js\" }],\n    \"installedTo\": null\n  },\n  \"effectState\": \"complete\",\n  \"error\": null,\n  \"outcome\": \"ok\",\n  \"schema\": \"monospace.extension.build\u002F1\"\n}\n","response.json","json",[462,1880,1881,1887,1897,1912,1925,1955,1966,1972,1985,1998,2011,2022],{"__ignoreMap":532},[536,1882,1883],{"class":538,"line":539},[536,1884,1886],{"class":1885},"sTMul","{\n",[536,1888,1890,1894],{"class":538,"line":1889},2,[536,1891,1893],{"class":1892},"snHjA","  \"data\"",[536,1895,1896],{"class":1885},": {\n",[536,1898,1900,1903,1906,1909],{"class":538,"line":1899},3,[536,1901,1902],{"class":1892},"    \"artifactDir\"",[536,1904,1905],{"class":1885},": ",[536,1907,1908],{"class":545},"\"\u002Fhome\u002Fyou\u002Fartic\u002Fdist\"",[536,1910,1911],{"class":1885},",\n",[536,1913,1915,1918,1920,1923],{"class":538,"line":1914},4,[536,1916,1917],{"class":1892},"    \"builds\"",[536,1919,1905],{"class":1885},[536,1921,1922],{"class":542},"1",[536,1924,1911],{"class":1885},[536,1926,1928,1931,1934,1937,1939,1942,1944,1947,1949,1952],{"class":538,"line":1927},5,[536,1929,1930],{"class":1892},"    \"entries\"",[536,1932,1933],{"class":1885},": [{ ",[536,1935,1936],{"class":1892},"\"id\"",[536,1938,1905],{"class":1885},[536,1940,1941],{"class":545},"\"example\u002Fartic-connector\"",[536,1943,671],{"class":1885},[536,1945,1946],{"class":1892},"\"output\"",[536,1948,1905],{"class":1885},[536,1950,1951],{"class":545},"\"example\u002Fartic-connector.js\"",[536,1953,1954],{"class":1885}," }],\n",[536,1956,1958,1961,1963],{"class":538,"line":1957},6,[536,1959,1960],{"class":1892},"    \"installedTo\"",[536,1962,1905],{"class":1885},[536,1964,1965],{"class":542},"null\n",[536,1967,1969],{"class":538,"line":1968},7,[536,1970,1971],{"class":1885},"  },\n",[536,1973,1975,1978,1980,1983],{"class":538,"line":1974},8,[536,1976,1977],{"class":1892},"  \"effectState\"",[536,1979,1905],{"class":1885},[536,1981,1982],{"class":545},"\"complete\"",[536,1984,1911],{"class":1885},[536,1986,1988,1991,1993,1996],{"class":538,"line":1987},9,[536,1989,1990],{"class":1892},"  \"error\"",[536,1992,1905],{"class":1885},[536,1994,1995],{"class":542},"null",[536,1997,1911],{"class":1885},[536,1999,2001,2004,2006,2009],{"class":538,"line":2000},10,[536,2002,2003],{"class":1892},"  \"outcome\"",[536,2005,1905],{"class":1885},[536,2007,2008],{"class":545},"\"ok\"",[536,2010,1911],{"class":1885},[536,2012,2014,2017,2019],{"class":538,"line":2013},11,[536,2015,2016],{"class":1892},"  \"schema\"",[536,2018,1905],{"class":1885},[536,2020,2021],{"class":545},"\"monospace.extension.build\u002F1\"\n",[536,2023,2025],{"class":538,"line":2024},12,[536,2026,2027],{"class":1885},"}\n",[471,2029,2030,2040],{},[474,2031,2032],{},[477,2033,2034,2037],{},[480,2035,2036],{},"Field",[480,2038,2039],{},"Values",[487,2041,2042,2061,2079,2102,2114],{},[477,2043,2044,2049],{},[492,2045,2046],{},[462,2047,2048],{},"schema",[492,2050,2051,1255,2054,1212,2057,2060],{},[462,2052,2053],{},"monospace.extension.create\u002F1",[462,2055,2056],{},"monospace.extension.build\u002F1",[462,2058,2059],{},"monospace.error\u002F1"," when the CLI fails before it identifies a command, or when a command stops before finishing",[477,2062,2063,2068],{},[492,2064,2065],{},[462,2066,2067],{},"outcome",[492,2069,2070,671,2073,1255,2076],{},[462,2071,2072],{},"ok",[462,2074,2075],{},"failed",[462,2077,2078],{},"cancelled",[477,2080,2081,2086],{},[492,2082,2083],{},[462,2084,2085],{},"effectState",[492,2087,2088,671,2091,2094,2095,2098,2099,2101],{},[462,2089,2090],{},"complete",[462,2092,2093],{},"none"," (the failing step changed nothing) or ",[462,2096,2097],{},"unknown"," (files may have been written). In watch mode, a failure can report ",[462,2100,2093],{}," even though earlier rebuilds wrote files",[477,2103,2104,2109],{},[492,2105,2106],{},[462,2107,2108],{},"data",[492,2110,2111,2112],{},"The command's result, or ",[462,2113,1995],{},[477,2115,2116,2121],{},[492,2117,2118],{},[462,2119,2120],{},"error",[492,2122,2123,2125,2126,1212,2129,2132],{},[462,2124,1995],{},", or ",[462,2127,2128],{},"{ category, code, message, fix? }",[462,2130,2131],{},"fix"," is present only when the CLI has a suggestion",[458,2134,460,2135,2137],{},[462,2136,2108],{}," fields depend on the command:",[471,2139,2140,2151],{},[474,2141,2142],{},[477,2143,2144,2146],{},[480,2145,482],{},[480,2147,2148,2150],{},[462,2149,2108],{}," fields",[487,2152,2153,2182],{},[477,2154,2155,2159],{},[492,2156,2157],{},[462,2158,662],{},[492,2160,2161,671,2163,671,2166,671,2168,671,2171,671,2174,2177,2178,2181],{},[462,2162,1143],{},[462,2164,2165],{},"entryId",[462,2167,1146],{},[462,2169,2170],{},"dir",[462,2172,2173],{},"files",[462,2175,2176],{},"agent"," (the detected package manager), ",[462,2179,2180],{},"next"," (the install and build commands)",[477,2183,2184,2188],{},[492,2185,2186],{},[462,2187,1031],{},[492,2189,2190,671,2193,671,2196,671,2199,2202],{},[462,2191,2192],{},"artifactDir",[462,2194,2195],{},"entries",[462,2197,2198],{},"installedTo",[462,2200,2201],{},"builds"," (the number of build cycles, failed ones included)",[458,2204,2205,2206,2208,2209,2211,2212,2214,2215,2217,2218,2220,2221,614],{},"Check ",[462,2207,2067],{},", not ",[462,2210,2108],{},", to detect failure. A failed watch session still reports the last successful build in ",[462,2213,2108],{},". Without any successful build, ",[462,2216,2195],{}," is empty and ",[462,2219,2198],{}," is ",[462,2222,1995],{},[458,2224,2225,940,2227,2229,2230,2232],{},[462,2226,674],{},[462,2228,687],{}," print to stderr under ",[462,2231,642],{},", so stdout stays empty.",[454,2234,2236],{"id":2235},"handle-exit-codes","Handle Exit Codes",[471,2238,2239,2249],{},[474,2240,2241],{},[477,2242,2243,2246],{},[480,2244,2245],{},"Exit code",[480,2247,2248],{},"When",[487,2250,2251,2264,2273],{},[477,2252,2253,2258],{},[492,2254,2255],{},[462,2256,2257],{},"0",[492,2259,2260,2261,2263],{},"Success; a command cancelled by SIGINT or SIGTERM (outcome ",[462,2262,2078],{},": effects may have occurred); or a watch session stopped with Ctrl-C after a cycle that built",[477,2265,2266,2270],{},[492,2267,2268],{},[462,2269,1922],{},[492,2271,2272],{},"Any error, including a watch session whose last cycle failed, and a second SIGINT or SIGTERM before the command finished",[477,2274,2275,2283],{},[492,2276,2277,671,2280],{},[462,2278,2279],{},"130",[462,2281,2282],{},"143",[492,2284,2285,2286,2288,2289,2291],{},"A second SIGINT (",[462,2287,2279],{},") or SIGTERM (",[462,2290,2282],{},") after the command finished but before the process exited",[458,2293,2294,2295,2297,2298,2300,2301,2303,2304,2307,2308,2310,2311,2313],{},"Exit code ",[462,2296,2257],{}," alone doesn't prove a build completed: check ",[462,2299,2067],{}," under ",[462,2302,642],{},". A second signal stops the command at once. If the command hadn't finished, it reports ",[462,2305,2306],{},"cli.unfinished","; under ",[462,2309,642],{},", that result uses the ",[462,2312,2059],{}," schema.",[458,2315,2316,2318,2319,2321,2322,2324,2325,2327,2328,2330],{},[462,2317,1371],{}," runs until you stop it, or until it can no longer watch the files. Stopped with Ctrl-C, it exits ",[462,2320,2257],{}," with outcome ",[462,2323,2078],{}," when the last cycle built, and ",[462,2326,1922],{}," with that cycle's error when it failed. When it loses the watch, it ends on its own and exits ",[462,2329,1922],{}," with that error.",[454,2332,2334],{"id":2333},"fix-common-errors","Fix Common Errors",[458,2336,2337,2338,2340,2341,2343,2344,2346,2347,2349],{},"Every error has a ",[462,2339,462],{},", shown in ",[462,2342,642],{}," output. Most errors also print a ",[462,2345,2131],{},". This table covers the config, bundle, output and ",[462,2348,662],{}," errors:",[471,2351,2352,2365],{},[474,2353,2354],{},[477,2355,2356,2359,2362],{},[480,2357,2358],{},"Code",[480,2360,2361],{},"Cause",[480,2363,2364],{},"Fix",[487,2366,2367,2383,2396,2409,2422,2435,2457,2475,2488,2504,2517,2530,2547,2568,2583,2598,2620,2638],{},[477,2368,2369,2374,2380],{},[492,2370,2371],{},[462,2372,2373],{},"extension.config_missing",[492,2375,2376,2377,2379],{},"No ",[462,2378,982],{}," in the working directory",[492,2381,2382],{},"Run the build from the project root",[477,2384,2385,2390,2393],{},[492,2386,2387],{},[462,2388,2389],{},"extension.config_invalid",[492,2391,2392],{},"The config breaks the schema: bad id or version, unknown field, missing field",[492,2394,2395],{},"Correct the field the message names",[477,2397,2398,2403,2406],{},[492,2399,2400],{},[462,2401,2402],{},"extension.config_unparseable",[492,2404,2405],{},"Invalid JSON, including comments and trailing commas",[492,2407,2408],{},"Fix the JSON syntax",[477,2410,2411,2416,2419],{},[492,2412,2413],{},[462,2414,2415],{},"extension.config_duplicate_key",[492,2417,2418],{},"A key appears twice in one object",[492,2420,2421],{},"Remove the repeated key",[477,2423,2424,2429,2432],{},[492,2425,2426],{},[462,2427,2428],{},"extension.entry_id_duplicated",[492,2430,2431],{},"Two entries share an id",[492,2433,2434],{},"Give each entry its own id",[477,2436,2437,2442,2450],{},[492,2438,2439],{},[462,2440,2441],{},"extension.rolldown_missing",[492,2443,2444,2446,2447,2449],{},[462,2445,1051],{}," isn't installed in the project. When ",[462,2448,1018],{}," declares it, the message reads \"This project declares rolldown, but its dependencies are not installed.\"",[492,2451,2452,2453,2456],{},"Install the project's dependencies, or add ",[462,2454,2455],{},"rolldown@^1.2.0"," as a dev dependency",[477,2458,2459,2464,2472],{},[492,2460,2461],{},[462,2462,2463],{},"extension.rolldown_unsupported",[492,2465,2466,2467,2469,2470],{},"The project's ",[462,2468,1051],{}," isn't ",[462,2471,1385],{},[492,2473,2474],{},"Install a supported version",[477,2476,2477,2482,2485],{},[492,2478,2479],{},[462,2480,2481],{},"extension.build_failed",[492,2483,2484],{},"Rolldown couldn't bundle the source. The message names the first error, with its file, line and column when Rolldown reports them. With several errors, it says how many more there are",[492,2486,2487],{},"Fix the source error it names",[477,2489,2490,2495,2501],{},[492,2491,2492],{},[462,2493,2494],{},"extension.built_not_self_contained",[492,2496,2497,2498],{},"A data connector bundle still imports a module, often a Node built-in such as ",[462,2499,2500],{},"node:fs",[492,2502,2503],{},"Import only code that bundles; Node built-ins aren't available",[477,2505,2506,2511,2514],{},[492,2507,2508],{},[462,2509,2510],{},"extension.built_without_default_export",[492,2512,2513],{},"A data connector entrypoint has no default export, or the output is CommonJS",[492,2515,2516],{},"Export the entry's code (e.g., the connector) as the module default",[477,2518,2519,2524,2527],{},[492,2520,2521],{},[462,2522,2523],{},"extension.built_split",[492,2525,2526],{},"A data connector bundle isn't exactly one JavaScript chunk",[492,2528,2529],{},"Remove code splitting or plugins that emit extra files",[477,2531,2532,2537,2544],{},[492,2533,2534],{},[462,2535,2536],{},"extension.artifact_dir_not_ours",[492,2538,2539,2541,2542,1641],{},[462,2540,1655],{}," holds another extension, or files but neither an extension manifest nor a ",[462,2543,1508],{},[492,2545,2546],{},"Choose a new or empty directory",[477,2548,2549,2554,2563],{},[492,2550,2551],{},[462,2552,2553],{},"extension.output_holds_sources",[492,2555,2556,2558,2559,2562],{},[462,2557,1655],{},", or the ",[462,2560,2561],{},"\u003Cinstall-to>\u002F\u003Cnamespace>__\u003Cname>"," directory, contains the project, the working directory, an entrypoint source, or a source file an entrypoint imports",[492,2564,2565,2566],{},"Choose a directory that contains none of them, such as ",[462,2567,1277],{},[477,2569,2570,2575,2580],{},[492,2571,2572],{},[462,2573,2574],{},"extension.create_dir_not_empty",[492,2576,460,2577,2579],{},[462,2578,662],{}," target gained files while the command asked its questions",[492,2581,2582],{},"Create the extension in a new directory",[477,2584,2585,2590,2595],{},[492,2586,2587],{},[462,2588,2589],{},"extension.create_dir_unusable",[492,2591,460,2592,2594],{},[462,2593,662],{}," target isn't a directory, can't be read, or a file can't be written into it",[492,2596,2597],{},"Point the command at a directory, or at a path that doesn't exist yet",[477,2599,2600,2605,2610],{},[492,2601,2602],{},[462,2603,2604],{},"extension.create_id_invalid",[492,2606,2607,2609],{},[462,2608,939],{}," isn't a valid extension id",[492,2611,2612,2613,2616,2617],{},"Pass an id in ",[610,2614,2615],{"href":899},"id format",", such as ",[462,2618,2619],{},"--id acme\u002Fstore",[477,2621,2622,2627,2632],{},[492,2623,2624],{},[462,2625,2626],{},"extension.create_name_invalid",[492,2628,2629,2631],{},[462,2630,943],{}," has no visible character, or contains a control character",[492,2633,2634,2635],{},"Pass visible text on one line, such as ",[462,2636,2637],{},"--name \"Acme Store\"",[477,2639,2640,2644,2647],{},[492,2641,2642],{},[462,2643,953],{},[492,2645,2646],{},"The command needed an answer and prompts are off",[492,2648,2649],{},"Pass the argument or flag the message names",[454,2651,2653],{"id":2652},"see-also","See Also",[1818,2655,2656,2661,2667,2673],{},[1395,2657,2658,2660],{},[610,2659,379],{"href":987},": every field the build validates",[1395,2662,2663,2666],{},[610,2664,227],{"href":2665},"\u002Fdeveloper\u002Fextensions\u002Finstall",": where installs go and how the instance reloads them",[1395,2668,2669,2672],{},[610,2670,422],{"href":2671},"\u002Freference\u002Fextensions\u002Fdata-connectors\u002Flimits",": why a data connector bundle must be one file with no imports",[1395,2674,2675,2677],{},[610,2676,1224],{"href":1223},": build and install a first data connector",[2679,2680,2681],"style",{},"html pre.shiki code .ssBNi, html code.shiki .ssBNi{--shiki-light:#1659E9;--shiki-default:#1659E9;--shiki-dark:#94B3F5}html pre.shiki code .suKVh, html code.shiki .suKVh{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#F8FAFC}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 .sTMul, html code.shiki .sTMul{--shiki-light:#1F2937;--shiki-default:#1F2937;--shiki-dark:#94A3B8}html pre.shiki code .snHjA, html code.shiki .snHjA{--shiki-light:#124BC4;--shiki-default:#124BC4;--shiki-dark:#5B8EF4}",{"title":532,"searchDepth":1889,"depth":1889,"links":2683},[2684,2685,2686,2689,2694,2695,2696,2697,2698,2699],{"id":456,"depth":1889,"text":143},{"id":617,"depth":1889,"text":618},{"id":724,"depth":1889,"text":613,"children":2687},[2688],{"id":957,"depth":1899,"text":958},{"id":1265,"depth":1889,"text":1266,"children":2690},[2691,2692,2693],{"id":1389,"depth":1899,"text":1390},{"id":1430,"depth":1899,"text":1407},{"id":1486,"depth":1899,"text":1487},{"id":1518,"depth":1889,"text":1519},{"id":1730,"depth":1889,"text":1731},{"id":1867,"depth":1889,"text":649},{"id":2235,"depth":1889,"text":2236},{"id":2333,"depth":1889,"text":2334},{"id":2652,"depth":1889,"text":2653},"Reference for the monospace extension create and monospace extension build commands, their flags, output and exit codes.","md",null,{},{"icon":86},{"title":370,"description":2700},"oGqP_rOow-dBKze5uKuVROfiX34VA_eYYUcs8V76GvA",[2708,2710],{"title":379,"path":380,"stem":381,"description":2709,"icon":382,"children":-1},"Reference for extension.config.json, the manifest.json the CLI builds from it, and the install directory layout.",{"title":392,"path":393,"stem":394,"description":2711,"icon":81,"children":-1},"Reference for every export of @monospace\u002Fextension-kit\u002Fdata-connector, the module a data connector extension's entrypoint imports.",1790840088909]