[{"data":1,"prerenderedAt":3869},["ShallowReactive",2],{"navigation_docs_en":3,"-en-reference-cli":445,"-en-reference-cli-surround":3864},[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":3857,"extension":3858,"links":3859,"meta":3860,"navigation":3861,"path":371,"seo":3862,"stem":372,"__hash__":3863},"docs_en\u002Fen\u002F6.reference\u002F9.cli.md",{"type":448,"value":449,"toc":3834},"minimark",[450,454,478,592,595,599,602,683,690,756,759,774,776,780,783,856,862,865,880,885,982,989,991,994,1001,1035,1049,1066,1088,1091,1120,1122,1125,1128,1146,1153,1163,1173,1182,1184,1188,1193,1272,1304,1312,1315,1336,1339,1342,1383,1391,1393,1397,1402,1479,1500,1503,1506,1513,1515,1519,1524,1580,1631,1638,1648,1659,1661,1665,1673,1743,1809,1821,1942,1955,2056,2066,2068,2072,2085,2154,2203,2217,2313,2335,2358,2367,2369,2373,2378,2410,2460,2466,2469,2598,2612,2615,2617,2621,2633,2684,2731,2747,2773,2779,2788,2795,2799,2819,2891,2897,2911,2918,2922,2930,3007,3017,3023,3026,3031,3129,3132,3240,3260,3262,3265,3270,3401,3499,3505,3710,3726,3728,3732,3770,3789,3797,3799,3803,3830],[451,452,143],"h2",{"id":453},"overview",[455,456,457,458,462,463,466,467,471,472,477],"p",{},"The ",[459,460,461],"code",{},"@monospace\u002Fcli"," package provides the ",[459,464,465],{},"monospace"," command. It signs in to a Monospace ",[468,469,470],"strong",{},"instance"," (a running Monospace deployment), generates TypeScript types for the ",[473,474,476],"a",{"href":475},"\u002Fdeveloper\u002Fsdk\u002Finstallation","SDK",", and scaffolds and builds data connector extensions.",[479,480,481,494],"table",{},[482,483,484],"thead",{},[485,486,487,491],"tr",{},[488,489,490],"th",{},"Command",[488,492,493],{},"Description",[495,496,497,511,524,537,553,566,579],"tbody",{},[485,498,499,508],{},[500,501,502],"td",{},[473,503,505],{"href":504},"#sign-in",[459,506,507],{},"monospace login",[500,509,510],{},"Store a credential for an instance",[485,512,513,521],{},[500,514,515],{},[473,516,518],{"href":517},"#sign-out",[459,519,520],{},"monospace logout",[500,522,523],{},"Remove a stored credential",[485,525,526,534],{},[500,527,528],{},[473,529,531],{"href":530},"#check-the-target-and-credential",[459,532,533],{},"monospace whoami",[500,535,536],{},"Show the targeted instance and workspace, and which credential answers for it",[485,538,539,547],{},[500,540,541],{},[473,542,544],{"href":543},"#create-an-sdk-config",[459,545,546],{},"monospace sdk init",[500,548,549,550],{},"Create a ",[459,551,552],{},"monospace.config.ts",[485,554,555,563],{},[500,556,557],{},[473,558,560],{"href":559},"#generate-sdk-types",[459,561,562],{},"monospace sdk generate",[500,564,565],{},"Generate TypeScript types from a workspace schema",[485,567,568,576],{},[500,569,570],{},[473,571,573],{"href":572},"#scaffold-a-data-connector",[459,574,575],{},"monospace extension create",[500,577,578],{},"Scaffold a data connector project",[485,580,581,589],{},[500,582,583],{},[473,584,586],{"href":585},"#build-an-extension",[459,587,588],{},"monospace extension build",[500,590,591],{},"Bundle an extension and optionally install it",[593,594],"hr",{},[451,596,598],{"id":597},"install-the-cli","Install the CLI",[455,600,601],{},"Add the CLI to your project as a development dependency:",[603,604,606,634,651,667],"code-group",{"sync":605},"pm",[607,608,614],"pre",{"className":609,"code":610,"filename":611,"language":612,"meta":613,"style":613},"language-bash shiki shiki-themes monospace-light monospace-light monospace-dark","npm install -D @monospace\u002Fcli\n","npm","bash","",[459,615,616],{"__ignoreMap":613},[617,618,621,624,628,631],"span",{"class":619,"line":620},"line",1,[617,622,611],{"class":623},"ssBNi",[617,625,627],{"class":626},"suKVh"," install",[617,629,630],{"class":623}," -D",[617,632,633],{"class":626}," @monospace\u002Fcli\n",[607,635,638],{"className":609,"code":636,"filename":637,"language":612,"meta":613,"style":613},"pnpm add -D @monospace\u002Fcli\n","pnpm",[459,639,640],{"__ignoreMap":613},[617,641,642,644,647,649],{"class":619,"line":620},[617,643,637],{"class":623},[617,645,646],{"class":626}," add",[617,648,630],{"class":623},[617,650,633],{"class":626},[607,652,655],{"className":609,"code":653,"filename":654,"language":612,"meta":613,"style":613},"yarn add -D @monospace\u002Fcli\n","yarn",[459,656,657],{"__ignoreMap":613},[617,658,659,661,663,665],{"class":619,"line":620},[617,660,654],{"class":623},[617,662,646],{"class":626},[617,664,630],{"class":623},[617,666,633],{"class":626},[607,668,671],{"className":609,"code":669,"filename":670,"language":612,"meta":613,"style":613},"bun add -D @monospace\u002Fcli\n","bun",[459,672,673],{"__ignoreMap":613},[617,674,675,677,679,681],{"class":619,"line":620},[617,676,670],{"class":623},[617,678,646],{"class":626},[617,680,630],{"class":623},[617,682,633],{"class":626},[455,684,685,686,689],{},"Run it through your package manager or from a ",[459,687,688],{},"package.json"," script:",[603,691,692,708,725,741],{"sync":605},[607,693,695],{"className":609,"code":694,"filename":611,"language":612,"meta":613,"style":613},"npx @monospace\u002Fcli whoami\n",[459,696,697],{"__ignoreMap":613},[617,698,699,702,705],{"class":619,"line":620},[617,700,701],{"class":623},"npx",[617,703,704],{"class":626}," @monospace\u002Fcli",[617,706,707],{"class":626}," whoami\n",[607,709,711],{"className":609,"code":710,"filename":637,"language":612,"meta":613,"style":613},"pnpm exec monospace whoami\n",[459,712,713],{"__ignoreMap":613},[617,714,715,717,720,723],{"class":619,"line":620},[617,716,637],{"class":623},[617,718,719],{"class":626}," exec",[617,721,722],{"class":626}," monospace",[617,724,707],{"class":626},[607,726,728],{"className":609,"code":727,"filename":654,"language":612,"meta":613,"style":613},"yarn run monospace whoami\n",[459,729,730],{"__ignoreMap":613},[617,731,732,734,737,739],{"class":619,"line":620},[617,733,654],{"class":623},[617,735,736],{"class":626}," run",[617,738,722],{"class":626},[617,740,707],{"class":626},[607,742,744],{"className":609,"code":743,"filename":670,"language":612,"meta":613,"style":613},"bun run monospace whoami\n",[459,745,746],{"__ignoreMap":613},[617,747,748,750,752,754],{"class":619,"line":620},[617,749,670],{"class":623},[617,751,736],{"class":626},[617,753,722],{"class":626},[617,755,707],{"class":626},[455,757,758],{},"The CLI requires Node.js 22.12 or later.",[760,761,762,763,766,767,769,770,773],"warning",{},"Do not run ",[459,764,765],{},"npx monospace",". ",[459,768,465],{}," is an unrelated package on the npm registry, and npx fetches it when the CLI is not installed locally. Use ",[459,771,772],{},"npx @monospace\u002Fcli",".",[593,775],{},[451,777,779],{"id":778},"use-global-flags","Use Global Flags",[455,781,782],{},"Every command accepts these flags:",[479,784,785,795],{},[482,786,787],{},[485,788,789,792],{},[488,790,791],{},"Flag",[488,793,794],{},"Effect",[495,796,797,811,829,843],{},[485,798,799,804],{},[500,800,801],{},[459,802,803],{},"--json",[500,805,806,807],{},"Print one JSON result on stdout. See ",[473,808,810],{"href":809},"#read-json-output","Read JSON Output",[485,812,813,818],{},[500,814,815],{},[459,816,817],{},"--no-input",[500,819,820,821,824,825,828],{},"Never prompt. A question the command needs answered fails it with ",[459,822,823],{},"cli.confirmation_required",", naming the flag that answers it. Questions with a default for unattended runs, such as the directory and display name in ",[459,826,827],{},"extension create",", take that default",[485,830,831,840],{},[500,832,833,836,837],{},[459,834,835],{},"-h",", ",[459,838,839],{},"--help",[500,841,842],{},"Show help for the command, with examples",[485,844,845,853],{},[500,846,847,836,850],{},[459,848,849],{},"-V",[459,851,852],{},"--version",[500,854,855],{},"Print the CLI version",[455,857,858,859,773],{},"The CLI rejects unknown flags and extra arguments with ",[459,860,861],{},"cli.parse_failed",[455,863,864],{},"Results print to stdout. Prompts, notes, warnings, and errors print to stderr, so you can redirect a command's result without losing its questions.",[455,866,867,868,871,872,875,876,879],{},"Prompts are also off when stdin or stderr is not a terminal, or when the ",[459,869,870],{},"CI"," environment variable is set to anything other than an empty value, ",[459,873,874],{},"0",", or ",[459,877,878],{},"false"," in any letter case.",[881,882,884],"h3",{"id":883},"environment-variables","Environment Variables",[479,886,887,896],{},[482,888,889],{},[485,890,891,894],{},[488,892,893],{},"Variable",[488,895,794],{},[495,897,898,912,924,938,947,961],{},[485,899,900,905],{},[500,901,902],{},[459,903,904],{},"MONOSPACE_URL",[500,906,907,908],{},"Instance URL. See ",[473,909,911],{"href":910},"#resolve-the-target","Resolve the Target",[485,913,914,919],{},[500,915,916],{},[459,917,918],{},"MONOSPACE_WORKSPACE",[500,920,921,922],{},"Workspace name. See ",[473,923,911],{"href":910},[485,925,926,931],{},[500,927,928],{},[459,929,930],{},"MONOSPACE_API_KEY",[500,932,933,934],{},"API key for this invocation. See ",[473,935,937],{"href":936},"#resolve-credentials","Resolve Credentials",[485,939,940,944],{},[500,941,942],{},[459,943,870],{},[500,945,946],{},"Turns prompts off",[485,948,949,954],{},[500,950,951],{},[459,952,953],{},"NO_COLOR",[500,955,956,957,960],{},"A non-empty value turns color off. ",[459,958,959],{},"TERM=dumb"," does the same",[485,962,963,968],{},[500,964,965],{},[459,966,967],{},"FORCE_COLOR",[500,969,970,971,973,974,766,976,978,979,981],{},"Turns color on, unless set to ",[459,972,874],{}," or ",[459,975,878],{},[459,977,953],{}," and ",[459,980,959],{}," take precedence",[455,983,984,985,988],{},"The CLI reads a ",[459,986,987],{},".env"," file in the working directory before it runs. Variables already set in the environment take precedence over the file. An empty flag or variable counts as unset.",[593,990],{},[451,992,911],{"id":993},"resolve-the-target",[455,995,996,997,1000],{},"Commands that contact an instance resolve its URL and, for commands that take ",[459,998,999],{},"--workspace",", the workspace. Each value comes from the first of:",[1002,1003,1004,1013,1020],"ol",{},[1005,1006,457,1007,973,1010,1012],"li",{},[459,1008,1009],{},"--url",[459,1011,999],{}," flag",[1005,1014,457,1015,973,1017,1019],{},[459,1016,904],{},[459,1018,918],{}," environment variable",[1005,1021,1022,973,1025,1028,1029,875,1031,1034],{},[459,1023,1024],{},"url",[459,1026,1027],{},"workspace"," in ",[459,1030,552],{},[459,1032,1033],{},"monospace.config.js",", in the working directory",[455,1036,1037,1038,836,1041,1044,1045,1048],{},"The CLI looks for the config file in the working directory only, not in its parents. ",[459,1039,1040],{},"login",[459,1042,1043],{},"logout",", and ",[459,1046,1047],{},"whoami"," skip the config file when flags and environment variables supply every value they need.",[455,1050,1051,1052,1055,1056,973,1059,1062,1063,773],{},"An instance URL is the base URL of the instance, such as ",[459,1053,1054],{},"https:\u002F\u002Fexample.monospace.io",". It must use ",[459,1057,1058],{},"http",[459,1060,1061],{},"https",", and cannot contain a user name, password, query, or fragment. The CLI does not follow redirects; a redirected request fails with ",[459,1064,1065],{},"cli.request_redirected",[455,1067,1068,1069,973,1071,1074,1075,836,1078,836,1081,836,1084,1087],{},"A workspace name becomes one segment of a request path, so it cannot be ",[459,1070,773],{},[459,1072,1073],{},"..",", or contain ",[459,1076,1077],{},"\u002F",[459,1079,1080],{},"\\",[459,1082,1083],{},"?",[459,1085,1086],{},"#",", whitespace, or control characters.",[455,1089,1090],{},"Requests to an instance time out after 10 seconds.",[1092,1093,1094,1095,1098,1099,836,1102,836,1105,836,1108,875,1111,1114,1115,973,1117,1119],"note",{},"The config file is executed when the CLI loads it. It is rejected with ",[459,1096,1097],{},"cli.config_carries_credential"," when it sets ",[459,1100,1101],{},"apiKey",[459,1103,1104],{},"api_key",[459,1106,1107],{},"password",[459,1109,1110],{},"secret",[459,1112,1113],{},"token",". Store credentials with ",[459,1116,507],{},[459,1118,930],{}," instead.",[593,1121],{},[451,1123,937],{"id":1124},"resolve-credentials",[455,1126,1127],{},"Commands that call an instance use the first credential they find:",[1002,1129,1130,1136,1140],{},[1005,1131,457,1132,1135],{},[459,1133,1134],{},"--api-key"," flag, on commands that accept it",[1005,1137,457,1138,1019],{},[459,1139,930],{},[1005,1141,1142,1143,1145],{},"The credential ",[459,1144,507],{}," stored for the instance",[455,1147,1148,1149,1152],{},"Stored credentials live in the operating system's keyring under the service name ",[459,1150,1151],{},"monospace-cli",", one per instance URL. Instances at different paths on the same host keep separate credentials.",[455,1154,1155,1156,973,1159,1162],{},"A stored credential is either an API key or a session from an email and password sign-in. When the instance answers a session's request with ",[459,1157,1158],{},"401",[459,1160,1161],{},"403",", the CLI refreshes the session once, stores the new tokens, and retries. When the instance rejects the refresh, the CLI removes the stored session; sign in again. A refresh that fails for any other reason leaves the session stored.",[455,1164,1165,1166,1169,1170,773],{},"A command that needs a credential and finds none fails with ",[459,1167,1168],{},"cli.not_authenticated",". An API key must be visible ASCII characters with no spaces; otherwise the command fails with ",[459,1171,1172],{},"cli.api_key_invalid",[455,1174,1175,1176,1179,1180,1119],{},"Where the keyring is unavailable, such as on a server without a secret service, commands that need it fail with ",[459,1177,1178],{},"cli.credential_store_unavailable",". Set ",[459,1181,930],{},[593,1183],{},[451,1185,1187],{"id":1186},"sign-in","Sign In",[455,1189,1190,1192],{},[459,1191,507],{}," stores a credential for an instance:",[603,1194,1195,1215,1234,1253],{"sync":605},[607,1196,1198],{"className":609,"code":1197,"filename":611,"language":612,"meta":613,"style":613},"npx @monospace\u002Fcli login --url https:\u002F\u002Fexample.monospace.io\n",[459,1199,1200],{"__ignoreMap":613},[617,1201,1202,1204,1206,1209,1212],{"class":619,"line":620},[617,1203,701],{"class":623},[617,1205,704],{"class":626},[617,1207,1208],{"class":626}," login",[617,1210,1211],{"class":623}," --url",[617,1213,1214],{"class":626}," https:\u002F\u002Fexample.monospace.io\n",[607,1216,1218],{"className":609,"code":1217,"filename":637,"language":612,"meta":613,"style":613},"pnpm exec monospace login --url https:\u002F\u002Fexample.monospace.io\n",[459,1219,1220],{"__ignoreMap":613},[617,1221,1222,1224,1226,1228,1230,1232],{"class":619,"line":620},[617,1223,637],{"class":623},[617,1225,719],{"class":626},[617,1227,722],{"class":626},[617,1229,1208],{"class":626},[617,1231,1211],{"class":623},[617,1233,1214],{"class":626},[607,1235,1237],{"className":609,"code":1236,"filename":654,"language":612,"meta":613,"style":613},"yarn run monospace login --url https:\u002F\u002Fexample.monospace.io\n",[459,1238,1239],{"__ignoreMap":613},[617,1240,1241,1243,1245,1247,1249,1251],{"class":619,"line":620},[617,1242,654],{"class":623},[617,1244,736],{"class":626},[617,1246,722],{"class":626},[617,1248,1208],{"class":626},[617,1250,1211],{"class":623},[617,1252,1214],{"class":626},[607,1254,1256],{"className":609,"code":1255,"filename":670,"language":612,"meta":613,"style":613},"bun run monospace login --url https:\u002F\u002Fexample.monospace.io\n",[459,1257,1258],{"__ignoreMap":613},[617,1259,1260,1262,1264,1266,1268,1270],{"class":619,"line":620},[617,1261,670],{"class":623},[617,1263,736],{"class":626},[617,1265,722],{"class":626},[617,1267,1208],{"class":626},[617,1269,1211],{"class":623},[617,1271,1214],{"class":626},[479,1273,1274,1282],{},[482,1275,1276],{},[485,1277,1278,1280],{},[488,1279,791],{},[488,1281,493],{},[495,1283,1284,1294],{},[485,1285,1286,1291],{},[500,1287,1288],{},[459,1289,1290],{},"--url \u003Curl>",[500,1292,1293],{},"Instance to sign in to",[485,1295,1296,1301],{},[500,1297,1298],{},[459,1299,1300],{},"--api-key-stdin",[500,1302,1303],{},"Read an API key from standard input instead of prompting",[455,1305,1306,1307,836,1309,1311],{},"The command resolves the instance from ",[459,1308,1009],{},[459,1310,904],{},", or the config file. Without one, it prompts for the URL.",[455,1313,1314],{},"It then asks whether to sign in with an API key or with an email and password:",[1316,1317,1318,1327],"ul",{},[1005,1319,1320,1323,1324,1326],{},[468,1321,1322],{},"API key"," -- stores the key. The CLI does not contact the instance, so run ",[459,1325,533],{}," to check the key.",[1005,1328,1329,1332,1333,773],{},[468,1330,1331],{},"Email and password"," -- signs in and stores the resulting session. A rejected email or password fails with ",[459,1334,1335],{},"cli.login_rejected",[455,1337,1338],{},"Signing in again replaces the credential stored for that instance.",[455,1340,1341],{},"To sign in without a terminal, pipe an API key in:",[607,1343,1346],{"className":609,"code":1344,"filename":1345,"language":612,"meta":613,"style":613},"echo \"$KEY\" | npx @monospace\u002Fcli login --url https:\u002F\u002Fexample.monospace.io --api-key-stdin\n","terminal",[459,1347,1348],{"__ignoreMap":613},[617,1349,1350,1354,1357,1361,1364,1368,1371,1373,1375,1377,1380],{"class":619,"line":620},[617,1351,1353],{"class":1352},"snHjA","echo",[617,1355,1356],{"class":626}," \"",[617,1358,1360],{"class":1359},"sNJ9c","$KEY",[617,1362,1363],{"class":626},"\"",[617,1365,1367],{"class":1366},"sLVBU"," |",[617,1369,1370],{"class":623}," npx",[617,1372,704],{"class":626},[617,1374,1208],{"class":626},[617,1376,1211],{"class":623},[617,1378,1379],{"class":626}," https:\u002F\u002Fexample.monospace.io",[617,1381,1382],{"class":623}," --api-key-stdin\n",[455,1384,1385,1387,1388,1390],{},[459,1386,1040],{}," warns when ",[459,1389,930],{}," is set, because that variable takes precedence over the credential it stores.",[593,1392],{},[451,1394,1396],{"id":1395},"sign-out","Sign Out",[455,1398,1399,1401],{},[459,1400,520],{}," removes the credential stored for the targeted instance:",[603,1403,1404,1422,1441,1460],{"sync":605},[607,1405,1407],{"className":609,"code":1406,"filename":611,"language":612,"meta":613,"style":613},"npx @monospace\u002Fcli logout --url https:\u002F\u002Fexample.monospace.io\n",[459,1408,1409],{"__ignoreMap":613},[617,1410,1411,1413,1415,1418,1420],{"class":619,"line":620},[617,1412,701],{"class":623},[617,1414,704],{"class":626},[617,1416,1417],{"class":626}," logout",[617,1419,1211],{"class":623},[617,1421,1214],{"class":626},[607,1423,1425],{"className":609,"code":1424,"filename":637,"language":612,"meta":613,"style":613},"pnpm exec monospace logout --url https:\u002F\u002Fexample.monospace.io\n",[459,1426,1427],{"__ignoreMap":613},[617,1428,1429,1431,1433,1435,1437,1439],{"class":619,"line":620},[617,1430,637],{"class":623},[617,1432,719],{"class":626},[617,1434,722],{"class":626},[617,1436,1417],{"class":626},[617,1438,1211],{"class":623},[617,1440,1214],{"class":626},[607,1442,1444],{"className":609,"code":1443,"filename":654,"language":612,"meta":613,"style":613},"yarn run monospace logout --url https:\u002F\u002Fexample.monospace.io\n",[459,1445,1446],{"__ignoreMap":613},[617,1447,1448,1450,1452,1454,1456,1458],{"class":619,"line":620},[617,1449,654],{"class":623},[617,1451,736],{"class":626},[617,1453,722],{"class":626},[617,1455,1417],{"class":626},[617,1457,1211],{"class":623},[617,1459,1214],{"class":626},[607,1461,1463],{"className":609,"code":1462,"filename":670,"language":612,"meta":613,"style":613},"bun run monospace logout --url https:\u002F\u002Fexample.monospace.io\n",[459,1464,1465],{"__ignoreMap":613},[617,1466,1467,1469,1471,1473,1475,1477],{"class":619,"line":620},[617,1468,670],{"class":623},[617,1470,736],{"class":626},[617,1472,722],{"class":626},[617,1474,1417],{"class":626},[617,1476,1211],{"class":623},[617,1478,1214],{"class":626},[479,1480,1481,1489],{},[482,1482,1483],{},[485,1484,1485,1487],{},[488,1486,791],{},[488,1488,493],{},[495,1490,1491],{},[485,1492,1493,1497],{},[500,1494,1495],{},[459,1496,1290],{},[500,1498,1499],{},"Instance to sign out of",[455,1501,1502],{},"For a session, the CLI first asks the instance to revoke it. When the instance does not confirm the revocation, the CLI removes the local credential anyway and warns that the refresh token stays valid until it expires.",[455,1504,1505],{},"For an API key, the CLI removes only the local copy. The key keeps working until you revoke it in the instance.",[455,1507,1508,1509,1512],{},"When nothing is stored for the instance, the command prints ",[459,1510,1511],{},"Nothing to remove."," and succeeds.",[593,1514],{},[451,1516,1518],{"id":1517},"check-the-target-and-credential","Check the Target and Credential",[455,1520,1521,1523],{},[459,1522,533],{}," shows which instance and workspace the working directory targets, where each value came from, and which credential the CLI uses:",[603,1525,1526,1538,1552,1566],{"sync":605},[607,1527,1528],{"className":609,"code":694,"filename":611,"language":612,"meta":613,"style":613},[459,1529,1530],{"__ignoreMap":613},[617,1531,1532,1534,1536],{"class":619,"line":620},[617,1533,701],{"class":623},[617,1535,704],{"class":626},[617,1537,707],{"class":626},[607,1539,1540],{"className":609,"code":710,"filename":637,"language":612,"meta":613,"style":613},[459,1541,1542],{"__ignoreMap":613},[617,1543,1544,1546,1548,1550],{"class":619,"line":620},[617,1545,637],{"class":623},[617,1547,719],{"class":626},[617,1549,722],{"class":626},[617,1551,707],{"class":626},[607,1553,1554],{"className":609,"code":727,"filename":654,"language":612,"meta":613,"style":613},[459,1555,1556],{"__ignoreMap":613},[617,1557,1558,1560,1562,1564],{"class":619,"line":620},[617,1559,654],{"class":623},[617,1561,736],{"class":626},[617,1563,722],{"class":626},[617,1565,707],{"class":626},[607,1567,1568],{"className":609,"code":743,"filename":670,"language":612,"meta":613,"style":613},[459,1569,1570],{"__ignoreMap":613},[617,1571,1572,1574,1576,1578],{"class":619,"line":620},[617,1573,670],{"class":623},[617,1575,736],{"class":626},[617,1577,722],{"class":626},[617,1579,707],{"class":626},[479,1581,1582,1590],{},[482,1583,1584],{},[485,1585,1586,1588],{},[488,1587,791],{},[488,1589,493],{},[495,1591,1592,1601,1611,1621],{},[485,1593,1594,1598],{},[500,1595,1596],{},[459,1597,1290],{},[500,1599,1600],{},"Instance to target",[485,1602,1603,1608],{},[500,1604,1605],{},[459,1606,1607],{},"--workspace \u003Cname>",[500,1609,1610],{},"Workspace to target",[485,1612,1613,1618],{},[500,1614,1615],{},[459,1616,1617],{},"--api-key \u003Ckey>",[500,1619,1620],{},"API key to use for this invocation",[485,1622,1623,1628],{},[500,1624,1625],{},[459,1626,1627],{},"--local",[500,1629,1630],{},"Report the target and credential without contacting the instance",[455,1632,1633,1634,1637],{},"The command needs an instance URL; without one, it fails with ",[459,1635,1636],{},"cli.target_missing",". The workspace is optional.",[455,1639,1640,1641,1644,1645,1647],{},"When a credential is found, the command reads the signed-in user from the instance and reports its email address, or its ID when it has no email address. A rejected API key fails the command with ",[459,1642,1643],{},"cli.credential_rejected",". With ",[459,1646,1627],{},", it makes no request.",[455,1649,1650,1651,1654,1655,1658],{},"Without a credential, or when the keyring is unavailable, the command still succeeds and reports what it found. In JSON output, ",[459,1652,1653],{},"authenticated"," means a credential was found and ",[459,1656,1657],{},"verified"," means the instance was asked about it.",[593,1660],{},[451,1662,1664],{"id":1663},"create-an-sdk-config","Create an SDK Config",[455,1666,1667,1669,1670,1672],{},[459,1668,546],{}," writes a ",[459,1671,552],{}," for type generation:",[603,1674,1675,1692,1709,1726],{"sync":605},[607,1676,1678],{"className":609,"code":1677,"filename":611,"language":612,"meta":613,"style":613},"npx @monospace\u002Fcli sdk init\n",[459,1679,1680],{"__ignoreMap":613},[617,1681,1682,1684,1686,1689],{"class":619,"line":620},[617,1683,701],{"class":623},[617,1685,704],{"class":626},[617,1687,1688],{"class":626}," sdk",[617,1690,1691],{"class":626}," init\n",[607,1693,1695],{"className":609,"code":1694,"filename":637,"language":612,"meta":613,"style":613},"pnpm exec monospace sdk init\n",[459,1696,1697],{"__ignoreMap":613},[617,1698,1699,1701,1703,1705,1707],{"class":619,"line":620},[617,1700,637],{"class":623},[617,1702,719],{"class":626},[617,1704,722],{"class":626},[617,1706,1688],{"class":626},[617,1708,1691],{"class":626},[607,1710,1712],{"className":609,"code":1711,"filename":654,"language":612,"meta":613,"style":613},"yarn run monospace sdk init\n",[459,1713,1714],{"__ignoreMap":613},[617,1715,1716,1718,1720,1722,1724],{"class":619,"line":620},[617,1717,654],{"class":623},[617,1719,736],{"class":626},[617,1721,722],{"class":626},[617,1723,1688],{"class":626},[617,1725,1691],{"class":626},[607,1727,1729],{"className":609,"code":1728,"filename":670,"language":612,"meta":613,"style":613},"bun run monospace sdk init\n",[459,1730,1731],{"__ignoreMap":613},[617,1732,1733,1735,1737,1739,1741],{"class":619,"line":620},[617,1734,670],{"class":623},[617,1736,736],{"class":626},[617,1738,722],{"class":626},[617,1740,1688],{"class":626},[617,1742,1691],{"class":626},[479,1744,1745,1753],{},[482,1746,1747],{},[485,1748,1749,1751],{},[488,1750,791],{},[488,1752,493],{},[495,1754,1755,1764,1773,1783,1799],{},[485,1756,1757,1761],{},[500,1758,1759],{},[459,1760,1290],{},[500,1762,1763],{},"Instance URL to write into the config",[485,1765,1766,1770],{},[500,1767,1768],{},[459,1769,1607],{},[500,1771,1772],{},"Workspace to write into the config",[485,1774,1775,1780],{},[500,1776,1777],{},[459,1778,1779],{},"--dir \u003Cdir>",[500,1781,1782],{},"Output directory for the generated types",[485,1784,1785,1793],{},[500,1786,1787,836,1790],{},[459,1788,1789],{},"-c",[459,1791,1792],{},"--config \u003Cpath>",[500,1794,1795,1796],{},"Config file to create, instead of ",[459,1797,1798],{},".\u002Fmonospace.config.ts",[485,1800,1801,1806],{},[500,1802,1803],{},[459,1804,1805],{},"--yes",[500,1807,1808],{},"Replace an existing config file without asking",[455,1810,1811,1812,978,1814,1816,1817,1820],{},"The command prompts for each value you don't supply. The URL and workspace also resolve from ",[459,1813,904],{},[459,1815,918],{},". The output directory prompt suggests ",[459,1818,1819],{},".\u002Fsrc\u002Fgenerated\u002Fmonospace",". Without a terminal, pass all three values:",[603,1822,1823,1855,1884,1913],{"sync":605},[607,1824,1826],{"className":609,"code":1825,"filename":611,"language":612,"meta":613,"style":613},"npx @monospace\u002Fcli sdk init --url https:\u002F\u002Fexample.monospace.io --workspace blog --dir .\u002Fsrc\u002Fgenerated\u002Fmonospace\n",[459,1827,1828],{"__ignoreMap":613},[617,1829,1830,1832,1834,1836,1839,1841,1843,1846,1849,1852],{"class":619,"line":620},[617,1831,701],{"class":623},[617,1833,704],{"class":626},[617,1835,1688],{"class":626},[617,1837,1838],{"class":626}," init",[617,1840,1211],{"class":623},[617,1842,1379],{"class":626},[617,1844,1845],{"class":623}," --workspace",[617,1847,1848],{"class":626}," blog",[617,1850,1851],{"class":623}," --dir",[617,1853,1854],{"class":626}," .\u002Fsrc\u002Fgenerated\u002Fmonospace\n",[607,1856,1858],{"className":609,"code":1857,"filename":637,"language":612,"meta":613,"style":613},"pnpm exec monospace sdk init --url https:\u002F\u002Fexample.monospace.io --workspace blog --dir .\u002Fsrc\u002Fgenerated\u002Fmonospace\n",[459,1859,1860],{"__ignoreMap":613},[617,1861,1862,1864,1866,1868,1870,1872,1874,1876,1878,1880,1882],{"class":619,"line":620},[617,1863,637],{"class":623},[617,1865,719],{"class":626},[617,1867,722],{"class":626},[617,1869,1688],{"class":626},[617,1871,1838],{"class":626},[617,1873,1211],{"class":623},[617,1875,1379],{"class":626},[617,1877,1845],{"class":623},[617,1879,1848],{"class":626},[617,1881,1851],{"class":623},[617,1883,1854],{"class":626},[607,1885,1887],{"className":609,"code":1886,"filename":654,"language":612,"meta":613,"style":613},"yarn run monospace sdk init --url https:\u002F\u002Fexample.monospace.io --workspace blog --dir .\u002Fsrc\u002Fgenerated\u002Fmonospace\n",[459,1888,1889],{"__ignoreMap":613},[617,1890,1891,1893,1895,1897,1899,1901,1903,1905,1907,1909,1911],{"class":619,"line":620},[617,1892,654],{"class":623},[617,1894,736],{"class":626},[617,1896,722],{"class":626},[617,1898,1688],{"class":626},[617,1900,1838],{"class":626},[617,1902,1211],{"class":623},[617,1904,1379],{"class":626},[617,1906,1845],{"class":623},[617,1908,1848],{"class":626},[617,1910,1851],{"class":623},[617,1912,1854],{"class":626},[607,1914,1916],{"className":609,"code":1915,"filename":670,"language":612,"meta":613,"style":613},"bun run monospace sdk init --url https:\u002F\u002Fexample.monospace.io --workspace blog --dir .\u002Fsrc\u002Fgenerated\u002Fmonospace\n",[459,1917,1918],{"__ignoreMap":613},[617,1919,1920,1922,1924,1926,1928,1930,1932,1934,1936,1938,1940],{"class":619,"line":620},[617,1921,670],{"class":623},[617,1923,736],{"class":626},[617,1925,722],{"class":626},[617,1927,1688],{"class":626},[617,1929,1838],{"class":626},[617,1931,1211],{"class":623},[617,1933,1379],{"class":626},[617,1935,1845],{"class":623},[617,1937,1848],{"class":626},[617,1939,1851],{"class":623},[617,1941,1854],{"class":626},[455,1943,1944,1945,836,1948,875,1951,1954],{},"A config path ending in ",[459,1946,1947],{},".ts",[459,1949,1950],{},".mts",[459,1952,1953],{},".cts"," gets a TypeScript file. Any other path gets a JavaScript file typed with a JSDoc comment:",[607,1956,1960],{"className":1957,"code":1958,"filename":552,"language":1959,"meta":613,"style":613},"language-typescript shiki shiki-themes monospace-light monospace-light monospace-dark","import type { MonospaceConfig } from '@monospace\u002Fsdk\u002Fconfig';\n\nexport default {\n    url: \"https:\u002F\u002Fexample.monospace.io\",\n    workspace: \"blog\",\n    output: \".\u002Fsrc\u002Fgenerated\u002Fmonospace\",\n} satisfies MonospaceConfig;\n","typescript",[459,1961,1962,1989,1996,2008,2020,2031,2042],{"__ignoreMap":613},[617,1963,1964,1967,1970,1974,1977,1980,1983,1986],{"class":619,"line":620},[617,1965,1966],{"class":1366},"import",[617,1968,1969],{"class":1366}," type",[617,1971,1973],{"class":1972},"sTMul"," { ",[617,1975,1976],{"class":1359},"MonospaceConfig",[617,1978,1979],{"class":1972}," } ",[617,1981,1982],{"class":1366},"from",[617,1984,1985],{"class":626}," '@monospace\u002Fsdk\u002Fconfig'",[617,1987,1988],{"class":1972},";\n",[617,1990,1992],{"class":619,"line":1991},2,[617,1993,1995],{"emptyLinePlaceholder":1994},true,"\n",[617,1997,1999,2002,2005],{"class":619,"line":1998},3,[617,2000,2001],{"class":1366},"export",[617,2003,2004],{"class":1366}," default",[617,2006,2007],{"class":1972}," {\n",[617,2009,2011,2014,2017],{"class":619,"line":2010},4,[617,2012,2013],{"class":1972},"    url: ",[617,2015,2016],{"class":626},"\"https:\u002F\u002Fexample.monospace.io\"",[617,2018,2019],{"class":1972},",\n",[617,2021,2023,2026,2029],{"class":619,"line":2022},5,[617,2024,2025],{"class":1972},"    workspace: ",[617,2027,2028],{"class":626},"\"blog\"",[617,2030,2019],{"class":1972},[617,2032,2034,2037,2040],{"class":619,"line":2033},6,[617,2035,2036],{"class":1972},"    output: ",[617,2038,2039],{"class":626},"\".\u002Fsrc\u002Fgenerated\u002Fmonospace\"",[617,2041,2019],{"class":1972},[617,2043,2045,2048,2051,2054],{"class":619,"line":2044},7,[617,2046,2047],{"class":1972},"} ",[617,2049,2050],{"class":1366},"satisfies",[617,2052,2053],{"class":623}," MonospaceConfig",[617,2055,1988],{"class":1972},[455,2057,2058,2059,2061,2062,2065],{},"When the config file already exists, the command asks before replacing it; without a terminal, pass ",[459,2060,1805],{},". Declining leaves the file unchanged and ends the command with outcome ",[459,2063,2064],{},"cancelled",". The new file keeps the existing URL and workspace unless flags or environment variables supply others, and drops every other option the old file set.",[593,2067],{},[451,2069,2071],{"id":2070},"generate-sdk-types","Generate SDK Types",[455,2073,2074,2076,2077,2080,2081,2084],{},[459,2075,562],{}," reads a workspace schema and writes the generated client to ",[459,2078,2079],{},"index.ts"," in the config's ",[459,2082,2083],{},"output"," directory:",[603,2086,2087,2103,2120,2137],{"sync":605},[607,2088,2090],{"className":609,"code":2089,"filename":611,"language":612,"meta":613,"style":613},"npx @monospace\u002Fcli sdk generate\n",[459,2091,2092],{"__ignoreMap":613},[617,2093,2094,2096,2098,2100],{"class":619,"line":620},[617,2095,701],{"class":623},[617,2097,704],{"class":626},[617,2099,1688],{"class":626},[617,2101,2102],{"class":626}," generate\n",[607,2104,2106],{"className":609,"code":2105,"filename":637,"language":612,"meta":613,"style":613},"pnpm exec monospace sdk generate\n",[459,2107,2108],{"__ignoreMap":613},[617,2109,2110,2112,2114,2116,2118],{"class":619,"line":620},[617,2111,637],{"class":623},[617,2113,719],{"class":626},[617,2115,722],{"class":626},[617,2117,1688],{"class":626},[617,2119,2102],{"class":626},[607,2121,2123],{"className":609,"code":2122,"filename":654,"language":612,"meta":613,"style":613},"yarn run monospace sdk generate\n",[459,2124,2125],{"__ignoreMap":613},[617,2126,2127,2129,2131,2133,2135],{"class":619,"line":620},[617,2128,654],{"class":623},[617,2130,736],{"class":626},[617,2132,722],{"class":626},[617,2134,1688],{"class":626},[617,2136,2102],{"class":626},[607,2138,2140],{"className":609,"code":2139,"filename":670,"language":612,"meta":613,"style":613},"bun run monospace sdk generate\n",[459,2141,2142],{"__ignoreMap":613},[617,2143,2144,2146,2148,2150,2152],{"class":619,"line":620},[617,2145,670],{"class":623},[617,2147,736],{"class":626},[617,2149,722],{"class":626},[617,2151,1688],{"class":626},[617,2153,2102],{"class":626},[479,2155,2156,2164],{},[482,2157,2158],{},[485,2159,2160,2162],{},[488,2161,791],{},[488,2163,493],{},[495,2165,2166,2175,2184,2192],{},[485,2167,2168,2172],{},[500,2169,2170],{},[459,2171,1290],{},[500,2173,2174],{},"Instance to read the schema from, overriding the config",[485,2176,2177,2181],{},[500,2178,2179],{},[459,2180,1607],{},[500,2182,2183],{},"Workspace to read the schema from, overriding the config",[485,2185,2186,2190],{},[500,2187,2188],{},[459,2189,1617],{},[500,2191,1620],{},[485,2193,2194,2200],{},[500,2195,2196,836,2198],{},[459,2197,1789],{},[459,2199,1792],{},[500,2201,2202],{},"Config file to use, instead of searching the working directory",[455,2204,2205,2206,2209,2210,2212,2213,2216],{},"The command requires a config file; without one, it fails with ",[459,2207,2208],{},"sdk.config_not_found",". The config needs ",[459,2211,2083],{},", plus either ",[459,2214,2215],{},"input",", or an instance URL and workspace from the config, flags, or environment variables:",[479,2218,2219,2231],{},[482,2220,2221],{},[485,2222,2223,2226,2229],{},[488,2224,2225],{},"Option",[488,2227,2228],{},"Type",[488,2230,493],{},[495,2232,2233,2247,2264,2281,2294],{},[485,2234,2235,2239,2244],{},[500,2236,2237],{},[459,2238,2083],{},[500,2240,2241],{},[459,2242,2243],{},"string",[500,2245,2246],{},"Output directory for the generated types. Required",[485,2248,2249,2253,2257],{},[500,2250,2251],{},[459,2252,1024],{},[500,2254,2255],{},[459,2256,2243],{},[500,2258,2259,2260,978,2262,981],{},"Instance URL. ",[459,2261,1009],{},[459,2263,904],{},[485,2265,2266,2270,2274],{},[500,2267,2268],{},[459,2269,1027],{},[500,2271,2272],{},[459,2273,2243],{},[500,2275,2276,2277,978,2279,981],{},"Workspace whose schema to read. ",[459,2278,999],{},[459,2280,918],{},[485,2282,2283,2287,2291],{},[500,2284,2285],{},[459,2286,2215],{},[500,2288,2289],{},[459,2290,2243],{},[500,2292,2293],{},"Path to a local OpenAPI document in JSON",[485,2295,2296,2301,2306],{},[500,2297,2298],{},[459,2299,2300],{},"outputOptions",[500,2302,2303],{},[459,2304,2305],{},"object",[500,2307,2308,2309],{},"Options for the generated output. See ",[473,2310,2312],{"href":2311},"\u002Fdeveloper\u002Fsdk\u002Finstallation#config-reference","Config Reference",[455,2314,2315,2316,2318,2319,2322,2323,2326,2327,2331,2332,773],{},"Without ",[459,2317,2215],{},", the command reads ",[459,2320,2321],{},"\u002Fapi\u002F{workspace}\u002Fopenapi"," with the resolved credential. The credential needs the ",[459,2324,2325],{},"openApiSchema:read"," entitlement; see ",[473,2328,2330],{"href":2329},"\u002Freference\u002Fapi-reference\u002Fopenapi-spec","OpenAPI Specification",". A missing workspace fails the command with ",[459,2333,2334],{},"sdk.workspace_missing",[455,2336,2337,2338,2340,2341,2343,2344,978,2346,2348,2349,2352,2353,978,2355,2357],{},"With ",[459,2339,2215],{},", the command reads the local file, needs no credential, and warns that any URL or workspace from flags or environment variables is ignored. ",[459,2342,2215],{}," takes precedence when the config also sets ",[459,2345,1024],{},[459,2347,1027],{},". The file must be a JSON document with an ",[459,2350,2351],{},"openapi"," field. Relative ",[459,2354,2215],{},[459,2356,2083],{}," paths resolve against the working directory.",[455,2359,2360,2361,2363,2364,2366],{},"The command overwrites ",[459,2362,2079],{}," on every run. It refuses to write when ",[459,2365,2079],{}," is a symbolic link.",[593,2368],{},[451,2370,2372],{"id":2371},"scaffold-a-data-connector","Scaffold a Data Connector",[455,2374,2375,2377],{},[459,2376,575],{}," creates a data connector extension project. It needs no instance and no sign-in. Run it with npx before the project exists:",[607,2379,2381],{"className":609,"code":2380,"filename":1345,"language":612,"meta":613,"style":613},"npx @monospace\u002Fcli extension create .\u002Facme-store --id acme\u002Fstore --name \"Acme Store\"\n",[459,2382,2383],{"__ignoreMap":613},[617,2384,2385,2387,2389,2392,2395,2398,2401,2404,2407],{"class":619,"line":620},[617,2386,701],{"class":623},[617,2388,704],{"class":626},[617,2390,2391],{"class":626}," extension",[617,2393,2394],{"class":626}," create",[617,2396,2397],{"class":626}," .\u002Facme-store",[617,2399,2400],{"class":623}," --id",[617,2402,2403],{"class":626}," acme\u002Fstore",[617,2405,2406],{"class":623}," --name",[617,2408,2409],{"class":626}," \"Acme Store\"\n",[479,2411,2412,2421],{},[482,2413,2414],{},[485,2415,2416,2419],{},[488,2417,2418],{},"Argument or flag",[488,2420,493],{},[495,2422,2423,2436,2450],{},[485,2424,2425,2430],{},[500,2426,2427],{},[459,2428,2429],{},"[directory]",[500,2431,2432,2433],{},"Directory to create the project in. It must not exist yet, or be empty apart from ",[459,2434,2435],{},".git",[485,2437,2438,2443],{},[500,2439,2440],{},[459,2441,2442],{},"--id \u003Cid>",[500,2444,2445,2446,2449],{},"Extension id, as ",[459,2447,2448],{},"namespace\u002Fname",". Each part is lowercase letters and digits, optionally joined by single hyphens",[485,2451,2452,2457],{},[500,2453,2454],{},[459,2455,2456],{},"--name \u003Cname>",[500,2458,2459],{},"Display name shown in Studio. Defaults to one derived from the id",[455,2461,2462,2463,2465],{},"The command prompts for each value you don't supply. Without a directory, it asks for one. When prompts are off, it uses the working directory, which must then be empty apart from ",[459,2464,2435],{},". A named directory that has files makes the command ask for another.",[455,2467,2468],{},"The project contains these files:",[479,2470,2471,2481],{},[482,2472,2473],{},[485,2474,2475,2478],{},[488,2476,2477],{},"File",[488,2479,2480],{},"Contents",[495,2482,2483,2497,2524,2537,2547,2572,2582],{},[485,2484,2485,2490],{},[500,2486,2487],{},[459,2488,2489],{},"extension.config.json",[500,2491,2492,2493],{},"The extension config, with one data connector entry. See ",[473,2494,2496],{"href":2495},"#extension-config","Extension Config",[485,2498,2499,2503],{},[500,2500,2501],{},[459,2502,688],{},[500,2504,2505,978,2508,2511,2512,2515,2516,836,2518,1044,2521,2523],{},[459,2506,2507],{},"build",[459,2509,2510],{},"typecheck"," scripts, ",[459,2513,2514],{},"@monospace\u002Fextension-kit"," as a dependency, and ",[459,2517,461],{},[459,2519,2520],{},"rolldown",[459,2522,1959],{}," as development dependencies",[485,2525,2526,2531],{},[500,2527,2528],{},[459,2529,2530],{},"tsconfig.json",[500,2532,2533,2534],{},"Strict TypeScript settings for ",[459,2535,2536],{},"src",[485,2538,2539,2544],{},[500,2540,2541],{},[459,2542,2543],{},"src\u002Fdata-connectors\u002F\u003Cnamespace>\u002Findex.ts",[500,2545,2546],{},"The connector. It returns two sample items from every read and ignores the query",[485,2548,2549,2554],{},[500,2550,2551],{},[459,2552,2553],{},"src\u002Fdata-connectors\u002F\u003Cnamespace>\u002Fschema.ts",[500,2555,2556,2557,2560,2561,978,2564,2567,2568,2571],{},"The connector's schema: one collection, ",[459,2558,2559],{},"items",", with ",[459,2562,2563],{},"id",[459,2565,2566],{},"name"," fields and only an unfiltered ",[459,2569,2570],{},"readMany"," operation",[485,2573,2574,2579],{},[500,2575,2576],{},[459,2577,2578],{},"README.md",[500,2580,2581],{},"Build and install instructions",[485,2583,2584,2589],{},[500,2585,2586],{},[459,2587,2588],{},".gitignore",[500,2590,2591,2592,978,2595],{},"Ignores ",[459,2593,2594],{},"dist",[459,2596,2597],{},"node_modules",[455,2599,2600,2601,2604,2605,2608,2609,773],{},"The entry id is ",[459,2602,2603],{},"\u003Cnamespace>\u002Fdata-connector",", where ",[459,2606,2607],{},"\u003Cnamespace>"," is the first part of ",[459,2610,2611],{},"--id",[455,2613,2614],{},"The command does not install dependencies. It prints the install and build commands for the package manager it detects, falling back to npm.",[593,2616],{},[451,2618,2620],{"id":2619},"build-an-extension","Build an Extension",[455,2622,2623,2625,2626,2628,2629,2632],{},[459,2624,588],{}," reads ",[459,2627,2489],{}," from the working directory and writes the built extension to ",[459,2630,2631],{},".\u002Fdist",". Run it from the project root:",[603,2634,2635,2649,2660,2671],{"sync":605},[607,2636,2638],{"className":609,"code":2637,"filename":611,"language":612,"meta":613,"style":613},"npm run build\n",[459,2639,2640],{"__ignoreMap":613},[617,2641,2642,2644,2646],{"class":619,"line":620},[617,2643,611],{"class":623},[617,2645,736],{"class":626},[617,2647,2648],{"class":626}," build\n",[607,2650,2652],{"className":609,"code":2651,"filename":637,"language":612,"meta":613,"style":613},"pnpm build\n",[459,2653,2654],{"__ignoreMap":613},[617,2655,2656,2658],{"class":619,"line":620},[617,2657,637],{"class":623},[617,2659,2648],{"class":626},[607,2661,2663],{"className":609,"code":2662,"filename":654,"language":612,"meta":613,"style":613},"yarn build\n",[459,2664,2665],{"__ignoreMap":613},[617,2666,2667,2669],{"class":619,"line":620},[617,2668,654],{"class":623},[617,2670,2648],{"class":626},[607,2672,2674],{"className":609,"code":2673,"filename":670,"language":612,"meta":613,"style":613},"bun run build\n",[459,2675,2676],{"__ignoreMap":613},[617,2677,2678,2680,2682],{"class":619,"line":620},[617,2679,670],{"class":623},[617,2681,736],{"class":626},[617,2683,2648],{"class":626},[479,2685,2686,2694],{},[482,2687,2688],{},[485,2689,2690,2692],{},[488,2691,791],{},[488,2693,493],{},[495,2695,2696,2708,2718],{},[485,2697,2698,2703],{},[500,2699,2700],{},[459,2701,2702],{},"--out-dir \u003Cpath>",[500,2704,2705,2706],{},"Write the build here instead of ",[459,2707,2631],{},[485,2709,2710,2715],{},[500,2711,2712],{},[459,2713,2714],{},"--install-to \u003Cpath>",[500,2716,2717],{},"Copy the build into this extension install directory",[485,2719,2720,2725],{},[500,2721,2722],{},[459,2723,2724],{},"--watch",[500,2726,2727,2728,2730],{},"Rebuild whenever a source file or ",[459,2729,2489],{}," changes, until you stop it with Ctrl-C",[455,2732,2733,2734,2736,2737,2740,2741,973,2744,773],{},"The build requires ",[459,2735,2520],{}," ",[459,2738,2739],{},"^1.2.0"," installed in the project, and uses the project's copy. A scaffolded project already declares it; otherwise the build fails with ",[459,2742,2743],{},"extension.rolldown_missing",[459,2745,2746],{},"extension.rolldown_unsupported",[455,2748,2749,2750,2753,2754,2757,2758,2761,2762,2765,2766,2769,2770,773],{},"The output directory holds ",[459,2751,2752],{},"manifest.json",", one ",[459,2755,2756],{},"\u003Centry id>.js"," file per entry, and a ",[459,2759,2760],{},".monospace-build"," marker that records which extension owns the directory. Each file bundles the entry's code and its dependencies into a single ES module with a default export. A bundle that still imports a module fails with ",[459,2763,2764],{},"extension.built_not_self_contained","; Node.js built-ins such as ",[459,2767,2768],{},"node:fs"," are not available to extensions. A bundle without a default export fails with ",[459,2771,2772],{},"extension.built_without_default_export",[455,2774,2775,2776,2778],{},"The build does not type-check your code. Run the project's ",[459,2777,2510],{}," script for that.",[455,2780,2315,2781,2783,2784,2787],{},[459,2782,2724],{},", the build writes to a staging directory and swaps it in only when every entry has built, so a build that fails to bundle or validate leaves the previous output in place. With ",[459,2785,2786],{},"--install-to",", the install happens before the swap.",[455,2789,2790,2791,2794],{},"The CLI replaces an output directory only when it is missing, empty, or already holds a build of the same extension. Otherwise the build fails with ",[459,2792,2793],{},"extension.artifact_dir_not_ours",". The output and install directories cannot contain the project or its sources, or each other.",[881,2796,2798],{"id":2797},"install-into-an-instance","Install into an Instance",[455,2800,2801,2803,2804,2806,2807,2810,2811,2814,2815,2818],{},[459,2802,2786],{}," names an instance's extension install directory. The CLI copies the build into a subdirectory named after the extension id, with ",[459,2805,1077],{}," replaced by ",[459,2808,2809],{},"__",", so ",[459,2812,2813],{},"acme\u002Fstore"," installs to ",[459,2816,2817],{},"acme__store",":",[603,2820,2821,2844,2859,2874],{"sync":605},[607,2822,2824],{"className":609,"code":2823,"filename":611,"language":612,"meta":613,"style":613},"npm run build -- --install-to ..\u002Fmonospace\u002Fextensions\n",[459,2825,2826],{"__ignoreMap":613},[617,2827,2828,2830,2832,2835,2838,2841],{"class":619,"line":620},[617,2829,611],{"class":623},[617,2831,736],{"class":626},[617,2833,2834],{"class":626}," build",[617,2836,2837],{"class":623}," --",[617,2839,2840],{"class":623}," --install-to",[617,2842,2843],{"class":626}," ..\u002Fmonospace\u002Fextensions\n",[607,2845,2847],{"className":609,"code":2846,"filename":637,"language":612,"meta":613,"style":613},"pnpm build --install-to ..\u002Fmonospace\u002Fextensions\n",[459,2848,2849],{"__ignoreMap":613},[617,2850,2851,2853,2855,2857],{"class":619,"line":620},[617,2852,637],{"class":623},[617,2854,2834],{"class":626},[617,2856,2840],{"class":623},[617,2858,2843],{"class":626},[607,2860,2862],{"className":609,"code":2861,"filename":654,"language":612,"meta":613,"style":613},"yarn build --install-to ..\u002Fmonospace\u002Fextensions\n",[459,2863,2864],{"__ignoreMap":613},[617,2865,2866,2868,2870,2872],{"class":619,"line":620},[617,2867,654],{"class":623},[617,2869,2834],{"class":626},[617,2871,2840],{"class":623},[617,2873,2843],{"class":626},[607,2875,2877],{"className":609,"code":2876,"filename":670,"language":612,"meta":613,"style":613},"bun run build --install-to ..\u002Fmonospace\u002Fextensions\n",[459,2878,2879],{"__ignoreMap":613},[617,2880,2881,2883,2885,2887,2889],{"class":619,"line":620},[617,2882,670],{"class":623},[617,2884,736],{"class":626},[617,2886,2834],{"class":626},[617,2888,2840],{"class":623},[617,2890,2843],{"class":626},[455,2892,2893,2894,773],{},"Each install replaces the previous one whole, so files you added to that subdirectory are deleted. The CLI refuses a subdirectory that holds a different extension, with ",[459,2895,2896],{},"extension.install_dir_not_ours",[455,2898,2899,2900,2903,2904,2907,2908,773],{},"An instance's install directory is set by ",[459,2901,2902],{},"MONOSPACE_EXTENSIONS__INSTALL_LOCATION"," and defaults to ",[459,2905,2906],{},".\u002Fextensions",", relative to the instance's working directory. In the Docker image, the default resolves to ",[459,2909,2910],{},"\u002Fmonospace\u002Fextensions",[455,2912,2913,2914,2917],{},"An instance loads extensions when it starts. With ",[459,2915,2916],{},"MONOSPACE_EXTENSIONS__AUTO_RELOAD=true",", it also reloads an extension when an install replaces it.",[881,2919,2921],{"id":2920},"watch-for-changes","Watch for Changes",[455,2923,2924,2926,2927,2929],{},[459,2925,2724],{}," builds, then rebuilds whenever a source file or ",[459,2928,2489],{}," changes:",[603,2931,2932,2954,2971,2988],{"sync":605},[607,2933,2935],{"className":609,"code":2934,"filename":611,"language":612,"meta":613,"style":613},"npm run build -- --watch --install-to ..\u002Fmonospace\u002Fextensions\n",[459,2936,2937],{"__ignoreMap":613},[617,2938,2939,2941,2943,2945,2947,2950,2952],{"class":619,"line":620},[617,2940,611],{"class":623},[617,2942,736],{"class":626},[617,2944,2834],{"class":626},[617,2946,2837],{"class":623},[617,2948,2949],{"class":623}," --watch",[617,2951,2840],{"class":623},[617,2953,2843],{"class":626},[607,2955,2957],{"className":609,"code":2956,"filename":637,"language":612,"meta":613,"style":613},"pnpm build --watch --install-to ..\u002Fmonospace\u002Fextensions\n",[459,2958,2959],{"__ignoreMap":613},[617,2960,2961,2963,2965,2967,2969],{"class":619,"line":620},[617,2962,637],{"class":623},[617,2964,2834],{"class":626},[617,2966,2949],{"class":623},[617,2968,2840],{"class":623},[617,2970,2843],{"class":626},[607,2972,2974],{"className":609,"code":2973,"filename":654,"language":612,"meta":613,"style":613},"yarn build --watch --install-to ..\u002Fmonospace\u002Fextensions\n",[459,2975,2976],{"__ignoreMap":613},[617,2977,2978,2980,2982,2984,2986],{"class":619,"line":620},[617,2979,654],{"class":623},[617,2981,2834],{"class":626},[617,2983,2949],{"class":623},[617,2985,2840],{"class":623},[617,2987,2843],{"class":626},[607,2989,2991],{"className":609,"code":2990,"filename":670,"language":612,"meta":613,"style":613},"bun run build --watch --install-to ..\u002Fmonospace\u002Fextensions\n",[459,2992,2993],{"__ignoreMap":613},[617,2994,2995,2997,2999,3001,3003,3005],{"class":619,"line":620},[617,2996,670],{"class":623},[617,2998,736],{"class":626},[617,3000,2834],{"class":626},[617,3002,2949],{"class":623},[617,3004,2840],{"class":623},[617,3006,2843],{"class":626},[455,3008,3009,3010,3012,3013,3016],{},"Watch mode writes into the output directory in place. A failed rebuild prints a warning and keeps watching. With ",[459,3011,2786],{},", the CLI installs only after a rebuild in which every entry built. The JSON result prints once, when watching stops, and its ",[459,3014,3015],{},"builds"," field counts every rebuild, failed ones included.",[455,3018,3019,3020,3022],{},"Stopping with Ctrl-C ends the command with outcome ",[459,3021,2064],{}," when the last rebuild succeeded, and fails it with that rebuild's error when it did not.",[881,3024,2496],{"id":3025},"extension-config",[455,3027,3028,3030],{},[459,3029,2489],{}," describes the extension and its entries. It is strict JSON: comments, trailing commas, and repeated keys are rejected. The build also rejects unknown fields.",[479,3032,3033,3045],{},[482,3034,3035],{},[485,3036,3037,3040,3043],{},[488,3038,3039],{},"Field",[488,3041,3042],{},"Required",[488,3044,493],{},[495,3046,3047,3060,3075,3086,3098,3117],{},[485,3048,3049,3053,3056],{},[500,3050,3051],{},[459,3052,2563],{},[500,3054,3055],{},"Yes",[500,3057,2445,3058],{},[459,3059,2448],{},[485,3061,3062,3067,3069],{},[500,3063,3064],{},[459,3065,3066],{},"version",[500,3068,3055],{},[500,3070,3071,3072],{},"Exact SemVer version, such as ",[459,3073,3074],{},"0.1.0",[485,3076,3077,3081,3083],{},[500,3078,3079],{},[459,3080,2566],{},[500,3082,3055],{},[500,3084,3085],{},"Display name",[485,3087,3088,3093,3095],{},[500,3089,3090],{},[459,3091,3092],{},"entries",[500,3094,3055],{},[500,3096,3097],{},"At least one entry",[485,3099,3100,3111,3114],{},[500,3101,3102,836,3105,836,3108],{},[459,3103,3104],{},"description",[459,3106,3107],{},"icon",[459,3109,3110],{},"iconColor",[500,3112,3113],{},"No",[500,3115,3116],{},"Optional metadata",[485,3118,3119,3124,3126],{},[500,3120,3121],{},[459,3122,3123],{},"$schema",[500,3125,3113],{},[500,3127,3128],{},"Editor schema location. Left out of the built manifest",[455,3130,3131],{},"Each entry takes these fields:",[479,3133,3134,3144],{},[482,3135,3136],{},[485,3137,3138,3140,3142],{},[488,3139,3039],{},[488,3141,3042],{},[488,3143,493],{},[495,3145,3146,3160,3174,3185,3195,3207,3226],{},[485,3147,3148,3153,3155],{},[500,3149,3150],{},[459,3151,3152],{},"type",[500,3154,3055],{},[500,3156,3157],{},[459,3158,3159],{},"dataConnector",[485,3161,3162,3166,3168],{},[500,3163,3164],{},[459,3165,2563],{},[500,3167,3055],{},[500,3169,3170,3171,3173],{},"Entry id, as ",[459,3172,2448],{},". Unique within the extension; it names the built file",[485,3175,3176,3180,3182],{},[500,3177,3178],{},[459,3179,3066],{},[500,3181,3055],{},[500,3183,3184],{},"Exact SemVer version",[485,3186,3187,3191,3193],{},[500,3188,3189],{},[459,3190,2566],{},[500,3192,3055],{},[500,3194,3085],{},[485,3196,3197,3202,3204],{},[500,3198,3199],{},[459,3200,3201],{},"engine.entrypoint",[500,3203,3055],{},[500,3205,3206],{},"Path to the entry's source file, relative to the project directory",[485,3208,3209,3214,3216],{},[500,3210,3211],{},[459,3212,3213],{},"engine.permissions",[500,3215,3113],{},[500,3217,3218,3219,766,3222,3225],{},"Network hosts the entry needs, each as ",[459,3220,3221],{},"{ \"permission\": \"net:\u003Chost>[:\u003Cport>]\", \"reason\": \"...\" }",[459,3223,3224],{},"reason"," is required and shown to whoever approves the data source",[485,3227,3228,3236,3238],{},[500,3229,3230,836,3232,836,3234],{},[459,3231,3104],{},[459,3233,3107],{},[459,3235,3110],{},[500,3237,3113],{},[500,3239,3116],{},[455,3241,3242,3243,3246,3247,3250,3251,836,3254,836,3257,773],{},"A ",[459,3244,3245],{},"net:"," permission names a host name, optionally with a ",[459,3248,3249],{},"*."," subdomain wildcard, an IPv4 address or CIDR range, or a bracketed IPv6 address, each with an optional port. For example: ",[459,3252,3253],{},"net:api.example.com:443",[459,3255,3256],{},"net:*.example.com",[459,3258,3259],{},"net:10.0.0.0\u002F8",[593,3261],{},[451,3263,810],{"id":3264},"read-json-output",[455,3266,2337,3267,3269],{},[459,3268,803],{},", a command prints exactly one JSON object on stdout when it finishes, including when it fails:",[607,3271,3276],{"className":3272,"code":3273,"filename":3274,"language":3275,"meta":613,"style":613},"language-json shiki shiki-themes monospace-light monospace-light monospace-dark","{\n  \"schema\": \"monospace.sdk.generate\u002F1\",\n  \"outcome\": \"failed\",\n  \"effectState\": \"none\",\n  \"data\": null,\n  \"error\": {\n    \"category\": \"configuration\",\n    \"code\": \"sdk.config_not_found\",\n    \"message\": \"Config file not found. Searched: monospace.config.ts, monospace.config.js\",\n    \"fix\": \"Run `monospace sdk init` to create one.\"\n  }\n}\n","response.json","json",[459,3277,3278,3283,3296,3308,3320,3332,3340,3352,3365,3378,3389,3395],{"__ignoreMap":613},[617,3279,3280],{"class":619,"line":620},[617,3281,3282],{"class":1972},"{\n",[617,3284,3285,3288,3291,3294],{"class":619,"line":1991},[617,3286,3287],{"class":1352},"  \"schema\"",[617,3289,3290],{"class":1972},": ",[617,3292,3293],{"class":626},"\"monospace.sdk.generate\u002F1\"",[617,3295,2019],{"class":1972},[617,3297,3298,3301,3303,3306],{"class":619,"line":1998},[617,3299,3300],{"class":1352},"  \"outcome\"",[617,3302,3290],{"class":1972},[617,3304,3305],{"class":626},"\"failed\"",[617,3307,2019],{"class":1972},[617,3309,3310,3313,3315,3318],{"class":619,"line":2010},[617,3311,3312],{"class":1352},"  \"effectState\"",[617,3314,3290],{"class":1972},[617,3316,3317],{"class":626},"\"none\"",[617,3319,2019],{"class":1972},[617,3321,3322,3325,3327,3330],{"class":619,"line":2022},[617,3323,3324],{"class":1352},"  \"data\"",[617,3326,3290],{"class":1972},[617,3328,3329],{"class":623},"null",[617,3331,2019],{"class":1972},[617,3333,3334,3337],{"class":619,"line":2033},[617,3335,3336],{"class":1352},"  \"error\"",[617,3338,3339],{"class":1972},": {\n",[617,3341,3342,3345,3347,3350],{"class":619,"line":2044},[617,3343,3344],{"class":1352},"    \"category\"",[617,3346,3290],{"class":1972},[617,3348,3349],{"class":626},"\"configuration\"",[617,3351,2019],{"class":1972},[617,3353,3355,3358,3360,3363],{"class":619,"line":3354},8,[617,3356,3357],{"class":1352},"    \"code\"",[617,3359,3290],{"class":1972},[617,3361,3362],{"class":626},"\"sdk.config_not_found\"",[617,3364,2019],{"class":1972},[617,3366,3368,3371,3373,3376],{"class":619,"line":3367},9,[617,3369,3370],{"class":1352},"    \"message\"",[617,3372,3290],{"class":1972},[617,3374,3375],{"class":626},"\"Config file not found. Searched: monospace.config.ts, monospace.config.js\"",[617,3377,2019],{"class":1972},[617,3379,3381,3384,3386],{"class":619,"line":3380},10,[617,3382,3383],{"class":1352},"    \"fix\"",[617,3385,3290],{"class":1972},[617,3387,3388],{"class":626},"\"Run `monospace sdk init` to create one.\"\n",[617,3390,3392],{"class":619,"line":3391},11,[617,3393,3394],{"class":1972},"  }\n",[617,3396,3398],{"class":619,"line":3397},12,[617,3399,3400],{"class":1972},"}\n",[479,3402,3403,3411],{},[482,3404,3405],{},[485,3406,3407,3409],{},[488,3408,3039],{},[488,3410,493],{},[495,3412,3413,3427,3444,3463,3475],{},[485,3414,3415,3420],{},[500,3416,3417],{},[459,3418,3419],{},"schema",[500,3421,3422,3423,3426],{},"Versioned name of the result shape. ",[459,3424,3425],{},"monospace.error\u002F1"," when the CLI cannot attribute a failure to a command",[485,3428,3429,3434],{},[500,3430,3431],{},[459,3432,3433],{},"outcome",[500,3435,3436,836,3439,875,3442],{},[459,3437,3438],{},"ok",[459,3440,3441],{},"failed",[459,3443,2064],{},[485,3445,3446,3451],{},[500,3447,3448],{},[459,3449,3450],{},"effectState",[500,3452,3453,3454,836,3457,875,3460],{},"Whether the command changed anything: ",[459,3455,3456],{},"complete",[459,3458,3459],{},"none",[459,3461,3462],{},"unknown",[485,3464,3465,3470],{},[500,3466,3467],{},[459,3468,3469],{},"data",[500,3471,3472,3473],{},"The command's result, or ",[459,3474,3329],{},[485,3476,3477,3482],{},[500,3478,3479],{},[459,3480,3481],{},"error",[500,3483,3484,3486,3487,836,3490,836,3492,3495,3496],{},[459,3485,3329],{},", or an object with ",[459,3488,3489],{},"category",[459,3491,459],{},[459,3493,3494],{},"message",", and, when the CLI has a suggestion, ",[459,3497,3498],{},"fix",[455,3500,3501,3502,3504],{},"Check ",[459,3503,3433],{},", not the exit code, to tell a completed command from a cancelled one.",[479,3506,3507,3522],{},[482,3508,3509],{},[485,3510,3511,3513,3517],{},[488,3512,490],{},[488,3514,3515],{},[459,3516,3419],{},[488,3518,3519,3521],{},[459,3520,3469],{}," fields",[495,3523,3524,3555,3580,3609,3633,3655,3686],{},[485,3525,3526,3530,3535],{},[500,3527,3528],{},[459,3529,1040],{},[500,3531,3532],{},[459,3533,3534],{},"monospace.login\u002F1",[500,3536,3537,836,3539,3542,3543,973,3546,3549,3550,836,3553],{},[459,3538,470],{},[459,3540,3541],{},"kind"," (",[459,3544,3545],{},"api-key",[459,3547,3548],{},"session","), ",[459,3551,3552],{},"store",[459,3554,1024],{},[485,3556,3557,3561,3566],{},[500,3558,3559],{},[459,3560,1043],{},[500,3562,3563],{},[459,3564,3565],{},"monospace.logout\u002F1",[500,3567,3568,3290,3571,875,3573,836,3575,1044,3577],{},[459,3569,3570],{},"removed",[459,3572,3329],{},[459,3574,470],{},[459,3576,3541],{},[459,3578,3579],{},"revoked",[485,3581,3582,3586,3591],{},[500,3583,3584],{},[459,3585,1047],{},[500,3587,3588],{},[459,3589,3590],{},"monospace.whoami\u002F2",[500,3592,3593,836,3595,836,3597,836,3599,836,3602,836,3605,836,3607],{},[459,3594,470],{},[459,3596,1027],{},[459,3598,1653],{},[459,3600,3601],{},"credential",[459,3603,3604],{},"identity",[459,3606,3552],{},[459,3608,1657],{},[485,3610,3611,3616,3621],{},[500,3612,3613],{},[459,3614,3615],{},"sdk init",[500,3617,3618],{},[459,3619,3620],{},"monospace.sdk.init\u002F1",[500,3622,3623,836,3626,836,3628,836,3630],{},[459,3624,3625],{},"path",[459,3627,1024],{},[459,3629,1027],{},[459,3631,3632],{},"dir",[485,3634,3635,3640,3645],{},[500,3636,3637],{},[459,3638,3639],{},"sdk generate",[500,3641,3642],{},[459,3643,3644],{},"monospace.sdk.generate\u002F1",[500,3646,3647,836,3649,836,3652],{},[459,3648,2083],{},[459,3650,3651],{},"source",[459,3653,3654],{},"bytes",[485,3656,3657,3661,3666],{},[500,3658,3659],{},[459,3660,827],{},[500,3662,3663],{},[459,3664,3665],{},"monospace.extension.create\u002F1",[500,3667,3668,836,3670,836,3673,836,3675,836,3677,836,3680,836,3683],{},[459,3669,2563],{},[459,3671,3672],{},"entryId",[459,3674,2566],{},[459,3676,3632],{},[459,3678,3679],{},"files",[459,3681,3682],{},"agent",[459,3684,3685],{},"next",[485,3687,3688,3693,3698],{},[500,3689,3690],{},[459,3691,3692],{},"extension build",[500,3694,3695],{},[459,3696,3697],{},"monospace.extension.build\u002F1",[500,3699,3700,836,3703,836,3705,836,3708],{},[459,3701,3702],{},"artifactDir",[459,3704,3092],{},[459,3706,3707],{},"installedTo",[459,3709,3015],{},[455,3711,3712,3714,3715,3717,3718,978,3720,3722,3723,3725],{},[459,3713,803],{}," does not turn prompts off; pass ",[459,3716,817],{}," in scripts. ",[459,3719,839],{},[459,3721,852],{}," print to stderr under ",[459,3724,803],{},", so stdout stays empty.",[593,3727],{},[451,3729,3731],{"id":3730},"handle-exit-codes","Handle Exit Codes",[479,3733,3734,3744],{},[482,3735,3736],{},[485,3737,3738,3741],{},[488,3739,3740],{},"Exit code",[488,3742,3743],{},"Meaning",[495,3745,3746,3759],{},[485,3747,3748,3752],{},[500,3749,3750],{},[459,3751,874],{},[500,3753,3754,3755,973,3757],{},"Outcome ",[459,3756,3438],{},[459,3758,2064],{},[485,3760,3761,3766],{},[500,3762,3763],{},[459,3764,3765],{},"1",[500,3767,3754,3768],{},[459,3769,3441],{},[455,3771,3772,3773,3776,3777,3779,3780,3782,3783,3785,3786,3788],{},"The first Ctrl-C, or ",[459,3774,3775],{},"SIGTERM",", asks the running command to stop. The command ends with outcome ",[459,3778,2064],{},", except a watch session whose last rebuild failed, which ends with outcome ",[459,3781,3441],{},". Cancelling does not undo changes, so check ",[459,3784,3450],{},". A second Ctrl-C or ",[459,3787,3775],{}," stops the CLI immediately with a non-zero exit code.",[455,3790,3791,3792,3794,3795,773],{},"Running ",[459,3793,465],{}," without a command prints help and exits ",[459,3796,874],{},[593,3798],{},[451,3800,3802],{"id":3801},"see-also","See Also",[1316,3804,3805,3811,3817,3824],{},[1005,3806,3807,3810],{},[473,3808,3809],{"href":475},"SDK Installation"," — install the SDK and generate a typed client",[1005,3812,3813,3816],{},[473,3814,83],{"href":3815},"\u002Fguides\u002Fsdk"," — generate types and query your data end to end",[1005,3818,3819,3823],{},[473,3820,3822],{"href":3821},"\u002Freference\u002Fpermissions","Permissions"," — the entitlements a CLI credential needs",[1005,3825,3826,3829],{},[473,3827,884],{"href":3828},"\u002Freference\u002Fenvironment-variables"," — configure the instance itself",[3831,3832,3833],"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 .snHjA, html code.shiki .snHjA{--shiki-light:#124BC4;--shiki-default:#124BC4;--shiki-dark:#5B8EF4}html pre.shiki code .sNJ9c, html code.shiki .sNJ9c{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E2E8F0}html pre.shiki code .sLVBU, html code.shiki .sLVBU{--shiki-light:#0891B2;--shiki-default:#0891B2;--shiki-dark:#22D3EE}html pre.shiki code .sTMul, html code.shiki .sTMul{--shiki-light:#1F2937;--shiki-default:#1F2937;--shiki-dark:#94A3B8}",{"title":613,"searchDepth":1991,"depth":1991,"links":3835},[3836,3837,3838,3841,3842,3843,3844,3845,3846,3847,3848,3849,3854,3855,3856],{"id":453,"depth":1991,"text":143},{"id":597,"depth":1991,"text":598},{"id":778,"depth":1991,"text":779,"children":3839},[3840],{"id":883,"depth":1998,"text":884},{"id":993,"depth":1991,"text":911},{"id":1124,"depth":1991,"text":937},{"id":1186,"depth":1991,"text":1187},{"id":1395,"depth":1991,"text":1396},{"id":1517,"depth":1991,"text":1518},{"id":1663,"depth":1991,"text":1664},{"id":2070,"depth":1991,"text":2071},{"id":2371,"depth":1991,"text":2372},{"id":2619,"depth":1991,"text":2620,"children":3850},[3851,3852,3853],{"id":2797,"depth":1998,"text":2798},{"id":2920,"depth":1998,"text":2921},{"id":3025,"depth":1998,"text":2496},{"id":3264,"depth":1991,"text":810},{"id":3730,"depth":1991,"text":3731},{"id":3801,"depth":1991,"text":3802},"Reference for the Monospace CLI — its commands, flags, target and credential resolution, JSON output, and exit codes.","md",null,{},{"icon":373},{"title":370,"description":3857},"eOtY9WOlO6mErxZZMRMc5gdvTAnUTYNRDwe6Qp1gESY",[3865,3867],{"title":365,"path":366,"stem":367,"description":3866,"icon":368,"children":-1},"Relations that span two data sources are resolved at query time and are never enforced.",{"title":379,"path":380,"stem":381,"description":3868,"icon":382,"children":-1},"Reference for extension.config.json, the manifest.json the CLI builds from it, and the install directory layout.",1790861081457]