{"id":"8e0ed3b2-2fff-415c-97cd-8c66a6bbd9d5","shortId":"pwdeNa","kind":"skill","title":"azure-cosmos-ts","tagline":"Azure Cosmos DB JavaScript/TypeScript SDK (@azure/cosmos) for data plane operations. Use for CRUD operations on documents, queries, bulk operations, and container management.","description":"# @azure/cosmos (TypeScript/JavaScript)\n\nData plane SDK for Azure Cosmos DB NoSQL API operations — CRUD on documents, queries, bulk operations.\n\n> **⚠️ Data vs Management Plane**\n> - **This SDK (@azure/cosmos)**: CRUD operations on documents, queries, stored procedures\n> - **Management SDK (@azure/arm-cosmosdb)**: Create accounts, databases, containers via ARM\n\n## Installation\n\n```bash\nnpm install @azure/cosmos @azure/identity\n```\n\n**Current Version**: 4.9.0  \n**Node.js**: >= 20.0.0\n\n## Environment Variables\n\n```bash\nCOSMOS_ENDPOINT=https://<account>.documents.azure.com:443/\nCOSMOS_DATABASE=<database-name>\nCOSMOS_CONTAINER=<container-name>\n# For key-based auth only (prefer AAD)\nCOSMOS_KEY=<account-key>\n```\n\n## Authentication\n\n### AAD with DefaultAzureCredential (Recommended)\n\n```typescript\nimport { CosmosClient } from \"@azure/cosmos\";\nimport { DefaultAzureCredential } from \"@azure/identity\";\n\nconst client = new CosmosClient({\n  endpoint: process.env.COSMOS_ENDPOINT!,\n  aadCredentials: new DefaultAzureCredential(),\n});\n```\n\n### Key-Based Authentication\n\n```typescript\nimport { CosmosClient } from \"@azure/cosmos\";\n\n// Option 1: Endpoint + Key\nconst client = new CosmosClient({\n  endpoint: process.env.COSMOS_ENDPOINT!,\n  key: process.env.COSMOS_KEY!,\n});\n\n// Option 2: Connection String\nconst client = new CosmosClient(process.env.COSMOS_CONNECTION_STRING!);\n```\n\n## Resource Hierarchy\n\n```\nCosmosClient\n└── Database\n    └── Container\n        ├── Items (documents)\n        ├── Scripts (stored procedures, triggers, UDFs)\n        └── Conflicts\n```\n\n## Core Operations\n\n### Database & Container Setup\n\n```typescript\nconst { database } = await client.databases.createIfNotExists({\n  id: \"my-database\",\n});\n\nconst { container } = await database.containers.createIfNotExists({\n  id: \"my-container\",\n  partitionKey: { paths: [\"/partitionKey\"] },\n});\n```\n\n### Create Document\n\n```typescript\ninterface Product {\n  id: string;\n  partitionKey: string;\n  name: string;\n  price: number;\n}\n\nconst item: Product = {\n  id: \"product-1\",\n  partitionKey: \"electronics\",\n  name: \"Laptop\",\n  price: 999.99,\n};\n\nconst { resource } = await container.items.create<Product>(item);\n```\n\n### Read Document\n\n```typescript\nconst { resource } = await container\n  .item(\"product-1\", \"electronics\") // id, partitionKey\n  .read<Product>();\n\nif (resource) {\n  console.log(resource.name);\n}\n```\n\n### Update Document (Replace)\n\n```typescript\nconst { resource: existing } = await container\n  .item(\"product-1\", \"electronics\")\n  .read<Product>();\n\nif (existing) {\n  existing.price = 899.99;\n  const { resource: updated } = await container\n    .item(\"product-1\", \"electronics\")\n    .replace<Product>(existing);\n}\n```\n\n### Upsert Document\n\n```typescript\nconst item: Product = {\n  id: \"product-1\",\n  partitionKey: \"electronics\",\n  name: \"Laptop Pro\",\n  price: 1299.99,\n};\n\nconst { resource } = await container.items.upsert<Product>(item);\n```\n\n### Delete Document\n\n```typescript\nawait container.item(\"product-1\", \"electronics\").delete();\n```\n\n### Patch Document (Partial Update)\n\n```typescript\nimport { PatchOperation } from \"@azure/cosmos\";\n\nconst operations: PatchOperation[] = [\n  { op: \"replace\", path: \"/price\", value: 799.99 },\n  { op: \"add\", path: \"/discount\", value: true },\n  { op: \"remove\", path: \"/oldField\" },\n];\n\nconst { resource } = await container\n  .item(\"product-1\", \"electronics\")\n  .patch<Product>(operations);\n```\n\n## Queries\n\n### Simple Query\n\n```typescript\nconst { resources } = await container.items\n  .query<Product>(\"SELECT * FROM c WHERE c.price < 1000\")\n  .fetchAll();\n```\n\n### Parameterized Query (Recommended)\n\n```typescript\nimport { SqlQuerySpec } from \"@azure/cosmos\";\n\nconst querySpec: SqlQuerySpec = {\n  query: \"SELECT * FROM c WHERE c.partitionKey = @category AND c.price < @maxPrice\",\n  parameters: [\n    { name: \"@category\", value: \"electronics\" },\n    { name: \"@maxPrice\", value: 1000 },\n  ],\n};\n\nconst { resources } = await container.items\n  .query<Product>(querySpec)\n  .fetchAll();\n```\n\n### Query with Pagination\n\n```typescript\nconst queryIterator = container.items.query<Product>(querySpec, {\n  maxItemCount: 10, // Items per page\n});\n\nwhile (queryIterator.hasMoreResults()) {\n  const { resources, continuationToken } = await queryIterator.fetchNext();\n  console.log(`Page with ${resources?.length} items`);\n  // Use continuationToken for next page if needed\n}\n```\n\n### Cross-Partition Query\n\n```typescript\nconst { resources } = await container.items\n  .query<Product>(\n    \"SELECT * FROM c WHERE c.price > 500\",\n    { enableCrossPartitionQuery: true }\n  )\n  .fetchAll();\n```\n\n## Bulk Operations\n\n### Execute Bulk Operations\n\n```typescript\nimport { BulkOperationType, OperationInput } from \"@azure/cosmos\";\n\nconst operations: OperationInput[] = [\n  {\n    operationType: BulkOperationType.Create,\n    resourceBody: { id: \"1\", partitionKey: \"cat-a\", name: \"Item 1\" },\n  },\n  {\n    operationType: BulkOperationType.Upsert,\n    resourceBody: { id: \"2\", partitionKey: \"cat-a\", name: \"Item 2\" },\n  },\n  {\n    operationType: BulkOperationType.Read,\n    id: \"3\",\n    partitionKey: \"cat-b\",\n  },\n  {\n    operationType: BulkOperationType.Replace,\n    id: \"4\",\n    partitionKey: \"cat-b\",\n    resourceBody: { id: \"4\", partitionKey: \"cat-b\", name: \"Updated\" },\n  },\n  {\n    operationType: BulkOperationType.Delete,\n    id: \"5\",\n    partitionKey: \"cat-c\",\n  },\n  {\n    operationType: BulkOperationType.Patch,\n    id: \"6\",\n    partitionKey: \"cat-c\",\n    resourceBody: {\n      operations: [{ op: \"replace\", path: \"/name\", value: \"Patched\" }],\n    },\n  },\n];\n\nconst response = await container.items.executeBulkOperations(operations);\n\nresponse.forEach((result, index) => {\n  if (result.statusCode >= 200 && result.statusCode < 300) {\n    console.log(`Operation ${index} succeeded`);\n  } else {\n    console.error(`Operation ${index} failed: ${result.statusCode}`);\n  }\n});\n```\n\n## Partition Keys\n\n### Simple Partition Key\n\n```typescript\nconst { container } = await database.containers.createIfNotExists({\n  id: \"products\",\n  partitionKey: { paths: [\"/category\"] },\n});\n```\n\n### Hierarchical Partition Key (MultiHash)\n\n```typescript\nimport { PartitionKeyDefinitionVersion, PartitionKeyKind } from \"@azure/cosmos\";\n\nconst { container } = await database.containers.createIfNotExists({\n  id: \"orders\",\n  partitionKey: {\n    paths: [\"/tenantId\", \"/userId\", \"/sessionId\"],\n    version: PartitionKeyDefinitionVersion.V2,\n    kind: PartitionKeyKind.MultiHash,\n  },\n});\n\n// Operations require array of partition key values\nconst { resource } = await container.items.create({\n  id: \"order-1\",\n  tenantId: \"tenant-a\",\n  userId: \"user-123\",\n  sessionId: \"session-xyz\",\n  total: 99.99,\n});\n\n// Read with hierarchical partition key\nconst { resource: order } = await container\n  .item(\"order-1\", [\"tenant-a\", \"user-123\", \"session-xyz\"])\n  .read();\n```\n\n## Error Handling\n\n```typescript\nimport { ErrorResponse } from \"@azure/cosmos\";\n\ntry {\n  const { resource } = await container.item(\"missing\", \"pk\").read();\n} catch (error) {\n  if (error instanceof ErrorResponse) {\n    switch (error.code) {\n      case 404:\n        console.log(\"Document not found\");\n        break;\n      case 409:\n        console.log(\"Conflict - document already exists\");\n        break;\n      case 412:\n        console.log(\"Precondition failed (ETag mismatch)\");\n        break;\n      case 429:\n        console.log(\"Rate limited - retry after:\", error.retryAfterInMs);\n        break;\n      default:\n        console.error(`Cosmos error ${error.code}: ${error.message}`);\n    }\n  }\n  throw error;\n}\n```\n\n## Optimistic Concurrency (ETags)\n\n```typescript\n// Read with ETag\nconst { resource, etag } = await container\n  .item(\"product-1\", \"electronics\")\n  .read<Product>();\n\nif (resource && etag) {\n  resource.price = 899.99;\n  \n  try {\n    // Replace only if ETag matches\n    await container.item(\"product-1\", \"electronics\").replace(resource, {\n      accessCondition: { type: \"IfMatch\", condition: etag },\n    });\n  } catch (error) {\n    if (error instanceof ErrorResponse && error.code === 412) {\n      console.log(\"Document was modified by another process\");\n    }\n  }\n}\n```\n\n## TypeScript Types Reference\n\n```typescript\nimport {\n  // Client & Resources\n  CosmosClient,\n  Database,\n  Container,\n  Item,\n  Items,\n  \n  // Operations\n  OperationInput,\n  BulkOperationType,\n  PatchOperation,\n  \n  // Queries\n  SqlQuerySpec,\n  SqlParameter,\n  FeedOptions,\n  \n  // Partition Keys\n  PartitionKeyDefinition,\n  PartitionKeyDefinitionVersion,\n  PartitionKeyKind,\n  \n  // Responses\n  ItemResponse,\n  FeedResponse,\n  ResourceResponse,\n  \n  // Errors\n  ErrorResponse,\n} from \"@azure/cosmos\";\n```\n\n## Best Practices\n\n1. **Use AAD authentication** — Prefer `DefaultAzureCredential` over keys\n2. **Always use parameterized queries** — Prevents injection, improves plan caching\n3. **Specify partition key** — Avoid cross-partition queries when possible\n4. **Use bulk operations** — For multiple writes, use `executeBulkOperations`\n5. **Handle 429 errors** — Implement retry logic with exponential backoff\n6. **Use ETags for concurrency** — Prevent lost updates in concurrent scenarios\n7. **Close client on shutdown** — Call `client.dispose()` in cleanup\n\n## Common Patterns\n\n### Service Layer Pattern\n\n```typescript\nexport class ProductService {\n  private container: Container;\n\n  constructor(client: CosmosClient) {\n    this.container = client\n      .database(process.env.COSMOS_DATABASE!)\n      .container(process.env.COSMOS_CONTAINER!);\n  }\n\n  async getById(id: string, category: string): Promise<Product | null> {\n    try {\n      const { resource } = await this.container\n        .item(id, category)\n        .read<Product>();\n      return resource ?? null;\n    } catch (error) {\n      if (error instanceof ErrorResponse && error.code === 404) {\n        return null;\n      }\n      throw error;\n    }\n  }\n\n  async create(product: Omit<Product, \"id\">): Promise<Product> {\n    const item = { ...product, id: crypto.randomUUID() };\n    const { resource } = await this.container.items.create<Product>(item);\n    return resource!;\n  }\n\n  async findByCategory(category: string): Promise<Product[]> {\n    const querySpec: SqlQuerySpec = {\n      query: \"SELECT * FROM c WHERE c.partitionKey = @category\",\n      parameters: [{ name: \"@category\", value: category }],\n    };\n    const { resources } = await this.container.items\n      .query<Product>(querySpec)\n      .fetchAll();\n    return resources;\n  }\n}\n```\n\n## Related SDKs\n\n| SDK | Purpose | Install |\n|-----|---------|---------|\n| `@azure/cosmos` | Data plane (this SDK) | `npm install @azure/cosmos` |\n| `@azure/arm-cosmosdb` | Management plane (ARM) | `npm install @azure/arm-cosmosdb` |\n| `@azure/identity` | Authentication | `npm install @azure/identity` |\n\n## When to Use\nThis skill is applicable to execute the workflow or actions described in the overview.\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.","tags":["azure","cosmos","antigravity","awesome","skills","sickn33","agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows"],"capabilities":["skill","source-sickn33","skill-azure-cosmos-ts","topic-agent-skills","topic-agentic-skills","topic-ai-agent-skills","topic-ai-agents","topic-ai-coding","topic-ai-workflows","topic-antigravity","topic-antigravity-skills","topic-claude-code","topic-claude-code-skills","topic-codex-cli","topic-codex-skills"],"categories":["antigravity-awesome-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/sickn33/antigravity-awesome-skills/azure-cosmos-ts","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add sickn33/antigravity-awesome-skills","source_repo":"https://github.com/sickn33/antigravity-awesome-skills","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 34928 github stars · SKILL.md body (11,162 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-24T18:50:30.028Z","embedding":null,"createdAt":"2026-04-18T21:32:20.139Z","updatedAt":"2026-04-24T18:50:30.028Z","lastSeenAt":"2026-04-24T18:50:30.028Z","tsv":"'-1':213,234,254,268,280,299,336,608,634,721,738 '-123':615,639 '/category':569 '/discount':323 '/name':529 '/oldfield':329 '/partitionkey':194 '/price':317 '/sessionid':590 '/tenantid':588 '/userid':589 '1':133,463,470,797 '10':402 '1000':354,385 '1299.99':287 '2':147,475,482,805 '20.0.0':78 '200':542 '3':486,815 '300':544 '4':494,501,826 '4.9.0':76 '404':668,916 '409':675 '412':683,754 '429':691,837 '5':511,835 '500':441 '6':519,845 '7':856 '799.99':319 '899.99':260,728 '99.99':621 '999.99':219 'aad':96,100,799 'aadcredenti':120 'accesscondit':742 'account':63 'action':1007 'add':321 'alreadi':679 'alway':806 'anoth':760 'api':37 'applic':1001 'arm':67,986 'array':597 'ask':1045 'async':888,921,940 'auth':93 'authent':99,126,800,991 'avoid':819 'await':178,186,222,230,250,264,290,296,332,346,388,411,433,534,563,582,604,630,654,717,735,900,935,963 'azur':2,5,33 'azure-cosmos-t':1 'azure/arm-cosmosdb':61,983,989 'azure/cosmos':10,27,51,72,108,131,310,363,455,579,650,794,975,982 'azure/identity':73,112,990,994 'b':490,498,505 'backoff':844 'base':92,125 'bash':69,81 'best':795 'boundari':1053 'break':673,681,689,698 'bulk':22,43,445,448,828 'bulkoperationtyp':452,776 'bulkoperationtype.create':460 'bulkoperationtype.delete':509 'bulkoperationtype.patch':517 'bulkoperationtype.read':484 'bulkoperationtype.replace':492 'bulkoperationtype.upsert':472 'c':351,370,438,515,523,952 'c.partitionkey':372,954 'c.price':353,375,440 'cach':814 'call':861 'case':667,674,682,690 'cat':466,478,489,497,504,514,522 'cat-a':465,477 'cat-b':488,496,503 'cat-c':513,521 'catch':659,747,909 'categori':373,379,892,904,942,955,958,960 'clarif':1047 'class':872 'cleanup':864 'clear':1020 'client':114,137,151,767,858,878,881 'client.databases.createifnotexists':179 'client.dispose':862 'close':857 'common':865 'concurr':708,849,854 'condit':745 'conflict':169,677 'connect':148,155 'console.error':550,700 'console.log':241,413,545,669,676,684,692,755 'const':113,136,150,176,184,208,220,228,247,261,275,288,311,330,344,364,386,397,408,431,456,532,561,580,602,627,652,714,898,928,933,946,961 'constructor':877 'contain':25,65,88,161,173,185,191,231,251,265,333,562,581,631,718,771,875,876,885,887 'container.item':297,655,736 'container.items':347,389,434 'container.items.create':223,605 'container.items.executebulkoperations':535 'container.items.query':399 'container.items.upsert':291 'continuationtoken':410,420 'core':170 'cosmos':3,6,34,82,85,87,97,701 'cosmoscli':106,116,129,139,153,159,769,879 'creat':62,195,922 'criteria':1056 'cross':427,821 'cross-partit':426,820 'crud':17,39,52 'crypto.randomuuid':932 'current':74 'data':12,29,45,976 'databas':64,86,160,172,177,183,770,882,884 'database.containers.createifnotexists':187,564,583 'db':7,35 'default':699 'defaultazurecredenti':102,110,122,802 'delet':293,301 'describ':1008,1024 'document':20,41,55,163,196,226,244,273,294,303,670,678,756 'documents.azure.com:443':84 'electron':215,235,255,269,282,300,337,381,722,739 'els':549 'enablecrosspartitionqueri':442 'endpoint':83,117,119,134,140,142 'environ':79,1036 'environment-specif':1035 'error':644,660,662,702,706,748,750,791,838,910,912,920 'error.code':666,703,753,915 'error.message':704 'error.retryafterinms':697 'errorrespons':648,664,752,792,914 'etag':687,709,713,716,726,733,746,847 'execut':447,1003 'executebulkoper':834 'exist':249,258,271,680 'existing.price':259 'expert':1041 'exponenti':843 'export':871 'fail':553,686 'feedopt':781 'feedrespons':789 'fetchal':355,392,444,967 'findbycategori':941 'found':672 'getbyid':889 'handl':645,836 'hierarch':570,624 'hierarchi':158 'id':180,188,200,211,236,278,462,474,485,493,500,510,518,565,584,606,890,903,926,931 'ifmatch':744 'implement':839 'import':105,109,128,307,360,451,575,647,766 'improv':812 'index':539,547,552 'inject':811 'input':1050 'instal':68,71,974,981,988,993 'instanceof':663,751,913 'interfac':198 'item':162,209,224,232,252,266,276,292,334,403,418,469,481,632,719,772,773,902,929,937 'itemrespons':788 'javascript/typescript':8 'key':91,98,124,135,143,145,556,559,572,600,626,783,804,818 'key-bas':90,123 'kind':593 'laptop':217,284 'layer':868 'length':417 'limit':694,1012 'logic':841 'lost':851 'manag':26,47,59,984 'match':734,1021 'maxitemcount':401 'maxpric':376,383 'mismatch':688 'miss':656,1058 'modifi':758 'multihash':573 'multipl':831 'my-contain':189 'my-databas':181 'name':204,216,283,378,382,468,480,506,957 'need':425 'new':115,121,138,152 'next':422 'node.js':77 'nosql':36 'npm':70,980,987,992 'null':896,908,918 'number':207 'omit':924 'op':314,320,326,526 'oper':14,18,23,38,44,53,171,312,339,446,449,457,525,536,546,551,595,774,829 'operationinput':453,458,775 'operationtyp':459,471,483,491,508,516 'optimist':707 'option':132,146 'order':585,607,629,633 'output':1030 'overview':1011 'page':405,414,423 'pagin':395 'paramet':377,956 'parameter':356,808 'partial':304 'partit':428,555,558,571,599,625,782,817,822 'partitionkey':192,202,214,237,281,464,476,487,495,502,512,520,567,586 'partitionkeydefinit':784 'partitionkeydefinitionvers':576,785 'partitionkeydefinitionversion.v2':592 'partitionkeykind':577,786 'partitionkeykind.multihash':594 'patch':302,338,531 'patchoper':308,313,777 'path':193,316,322,328,528,568,587 'pattern':866,869 'per':404 'permiss':1051 'pk':657 'plan':813 'plane':13,30,48,977,985 'possibl':825 'practic':796 'precondit':685 'prefer':95,801 'prevent':810,850 'price':206,218,286 'privat':874 'pro':285 'procedur':58,166 'process':761 'process.env.cosmos':118,141,144,154,883,886 'product':199,210,212,233,253,267,277,279,298,335,566,720,737,895,923,925,930,945 'productservic':873 'promis':894,927,944 'purpos':973 'queri':21,42,56,340,342,348,357,367,390,393,429,435,778,809,823,949,965 'queryiter':398 'queryiterator.fetchnext':412 'queryiterator.hasmoreresults':407 'queryspec':365,391,400,947,966 'rate':693 'read':225,238,256,622,643,658,711,723,905 'recommend':103,358 'refer':764 'relat':970 'remov':327 'replac':245,270,315,527,730,740 'requir':596,1049 'resourc':157,221,229,240,248,262,289,331,345,387,409,416,432,603,628,653,715,725,741,768,899,907,934,939,962,969 'resource.name':242 'resource.price':727 'resourcebodi':461,473,499,524 'resourcerespons':790 'respons':533,787 'response.foreach':537 'result':538 'result.statuscode':541,543,554 'retri':695,840 'return':906,917,938,968 'review':1042 'safeti':1052 'scenario':855 'scope':1023 'script':164 'sdk':9,31,50,60,972,979 'sdks':971 'select':349,368,436,950 'servic':867 'session':618,641 'session-xyz':617,640 'sessionid':616 'setup':174 'shutdown':860 'simpl':341,557 'skill':999,1015 'skill-azure-cosmos-ts' 'source-sickn33' 'specif':1037 'specifi':816 'sqlparamet':780 'sqlqueryspec':361,366,779,948 'stop':1043 'store':57,165 'string':149,156,201,203,205,891,893,943 'substitut':1033 'succeed':548 'success':1055 'switch':665 'task':1019 'tenant':611,636 'tenant-a':610,635 'tenantid':609 'test':1039 'this.container':880,901 'this.container.items':964 'this.container.items.create':936 'throw':705,919 'topic-agent-skills' 'topic-agentic-skills' 'topic-ai-agent-skills' 'topic-ai-agents' 'topic-ai-coding' 'topic-ai-workflows' 'topic-antigravity' 'topic-antigravity-skills' 'topic-claude-code' 'topic-claude-code-skills' 'topic-codex-cli' 'topic-codex-skills' 'total':620 'treat':1028 'tri':651,729,897 'trigger':167 'true':325,443 'ts':4 'type':743,763 'typescript':104,127,175,197,227,246,274,295,306,343,359,396,430,450,560,574,646,710,762,765,870 'typescript/javascript':28 'udf':168 'updat':243,263,305,507,852 'upsert':272 'use':15,419,798,807,827,833,846,997,1013 'user':614,638 'userid':613 'valid':1038 'valu':318,324,380,384,530,601,959 'variabl':80 'version':75,591 'via':66 'vs':46 'workflow':1005 'write':832 'xyz':619,642","prices":[{"id":"1df5b4ca-679f-4df5-b959-9e31ec954663","listingId":"8e0ed3b2-2fff-415c-97cd-8c66a6bbd9d5","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"sickn33","category":"antigravity-awesome-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T21:32:20.139Z"}],"sources":[{"listingId":"8e0ed3b2-2fff-415c-97cd-8c66a6bbd9d5","source":"github","sourceId":"sickn33/antigravity-awesome-skills/azure-cosmos-ts","sourceUrl":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/azure-cosmos-ts","isPrimary":false,"firstSeenAt":"2026-04-18T21:32:20.139Z","lastSeenAt":"2026-04-24T18:50:30.028Z"}],"details":{"listingId":"8e0ed3b2-2fff-415c-97cd-8c66a6bbd9d5","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"sickn33","slug":"azure-cosmos-ts","github":{"repo":"sickn33/antigravity-awesome-skills","stars":34928,"topics":["agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows","antigravity","antigravity-skills","claude-code","claude-code-skills","codex-cli","codex-skills","cursor","cursor-skills","developer-tools","gemini-cli","gemini-skills","kiro","mcp","skill-library"],"license":"mit","html_url":"https://github.com/sickn33/antigravity-awesome-skills","pushed_at":"2026-04-24T06:41:17Z","description":"Installable GitHub library of 1,400+ agentic skills for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and more. Includes installer CLI, bundles, workflows, and official/community skill collections.","skill_md_sha":"46c5a52700ea977ae3a4daff2db7d77b91b42037","skill_md_path":"skills/azure-cosmos-ts/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/azure-cosmos-ts"},"layout":"multi","source":"github","category":"antigravity-awesome-skills","frontmatter":{"name":"azure-cosmos-ts","description":"Azure Cosmos DB JavaScript/TypeScript SDK (@azure/cosmos) for data plane operations. Use for CRUD operations on documents, queries, bulk operations, and container management."},"skills_sh_url":"https://skills.sh/sickn33/antigravity-awesome-skills/azure-cosmos-ts"},"updatedAt":"2026-04-24T18:50:30.028Z"}}