{"_id":"@anarock/genie-sdk","_rev":"6-ef71a6ade5feffb8b514f69162e13d7a","name":"@anarock/genie-sdk","dist-tags":{"latest":"0.0.3"},"versions":{"0.0.1":{"name":"@anarock/genie-sdk","version":"0.0.1","_id":"@anarock/genie-sdk@0.0.1","maintainers":[{"name":"developer_anarock","email":"developer@anarock.com"},{"name":"pranjal-jain","email":"pranjal.bitspilani@gmail.com"},{"name":"zhirzh","email":"zibbu.shirsh@gmail.com"},{"name":"appy9","email":"apoorva9191@gmail.com"}],"dist":{"shasum":"dcadc0587c8bde54a37097de22ffd5bd42cb4d42","tarball":"https://registry.npmjs.org/@anarock/genie-sdk/-/genie-sdk-0.0.1.tgz","fileCount":328,"integrity":"sha512-hNIJg8oxofqeINzppiAQRlwVh12x00uyD7AXrGaiqEePxT9P3czdEP82VfbOBynZtzvj0N+ItnrEhqeHCzXZsg==","signatures":[{"sig":"MEUCIQDnigiypY2oeOhZzzB7uYKP28PYEzOd9xT0xl8iwBkA6AIgEwl7DhVodcIAt11kRLNPaorwTx6t1e0LBV/bDRa5Hmg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11538842},"main":"lib/index.js","types":"lib/index.d.ts","scripts":{"dev":"nodemon","build":"bash scripts/build.sh","release":"bash scripts/build.sh release"},"_npmUser":{"name":"zhirzh","email":"zibbu.shirsh@gmail.com"},"repository":{"url":"git@github.com:anarock/anarock.genie-sdk.git","type":"git"},"description":"## Installation","directories":{},"dependencies":{"marked":"^4.0.0"},"react-native":"src/index.ts","_hasShrinkwrap":false,"devDependencies":{"react":"^17.0.0","nodemon":"^3.1.4","gh-pages":"^6.1.1","react-dom":"^17.0.0","typescript":"^4.0.0","@types/react":"^17.0.0","react-native":"^0.67.0","@types/marked":"^4.0.0","react-native-fs":"^2.20.0","@types/react-dom":"^17.0.0","react-native-sse":"^1.2.1","react-native-web":"^0.18.0","react-native-sound":"^0.11.2","@types/react-native":"^0.67.0","@react-native-community/blur":"^4.4.0","react-native-linear-gradient":"^2.8.3","react-native-live-audio-stream":"^1.1.1","@react-native-masked-view/masked-view":"^0.3.1"},"peerDependencies":{"react":"^17.0.0","react-dom":"^17.0.0","react-native":"^0.67.0","react-native-fs":"^2.20.0","react-native-sse":"^1.2.1","react-native-web":"^0.18.0","react-native-sound":"^0.11.2","@react-native-community/blur":"^4.4.0","react-native-linear-gradient":"^2.8.3","react-native-live-audio-stream":"^1.1.1","@react-native-masked-view/masked-view":"^0.3.1"},"_npmOperationalInternal":{"tmp":"tmp/genie-sdk_0.0.1_1738942993453_0.8323308956719544","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@anarock/genie-sdk","version":"0.0.2","_id":"@anarock/genie-sdk@0.0.2","maintainers":[{"name":"developer_anarock","email":"developer@anarock.com"},{"name":"pranjal-jain","email":"pranjal.bitspilani@gmail.com"},{"name":"zhirzh","email":"zibbu.shirsh@gmail.com"},{"name":"appy9","email":"apoorva9191@gmail.com"}],"dist":{"shasum":"935e39a98aa8d7dc569b2ee962abf46d877c03e6","tarball":"https://registry.npmjs.org/@anarock/genie-sdk/-/genie-sdk-0.0.2.tgz","fileCount":471,"integrity":"sha512-M5/tvN3cnQoHkBlg2Qtx3v4+U/WqZ4Toie4auw9mNrICQEDQtcX8EFXa78ytuymNxFyJgNJ6VXDXqTtIgOzbtA==","signatures":[{"sig":"MEUCIQD2X6gdj4ZBxg99G3ie3UbvBzGPqmCsrpmfgNjaI+88XwIgdmIbJfjuetj4vy9vFuJU4v3f2uoGz/GB/NlbliG0RtU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9347268},"main":"lib/index.js","types":"lib/index.d.ts","scripts":{"dev":"nodemon","build":"bash scripts/build.sh","release":"bash scripts/build.sh release","_prepublishOnly":"yarn build"},"_npmUser":{"name":"zhirzh","email":"zibbu.shirsh@gmail.com"},"repository":{"url":"git@github.com:anarock/anarock.genie-sdk.git","type":"git"},"description":"## Installation","directories":{},"dependencies":{"marked":"^4.0.0"},"react-native":"src/index.ts","_hasShrinkwrap":false,"devDependencies":{"react":"^17.0.0","nodemon":"^3.1.4","gh-pages":"^6.1.1","react-dom":"^17.0.0","typescript":"^4.0.0","@types/react":"^17.0.0","react-native":"^0.67.0","@types/marked":"^4.0.0","react-native-fs":"^2.20.0","@types/react-dom":"^17.0.0","react-native-sse":"^1.2.1","react-native-web":"^0.18.0","react-native-sound":"^0.11.2","@types/react-native":"^0.67.0","@react-native-community/blur":"^4.4.0","react-native-linear-gradient":"^2.8.3","react-native-live-audio-stream":"^1.1.1","@react-native-masked-view/masked-view":"^0.3.1"},"peerDependencies":{"react":"^17.0.0","react-dom":"^17.0.0","react-native":"^0.67.0","react-native-fs":"^2.20.0","react-native-sse":"^1.2.1","react-native-web":"^0.18.0","react-native-sound":"^0.11.2","@react-native-community/blur":"^4.4.0","react-native-linear-gradient":"^2.8.3","react-native-live-audio-stream":"^1.1.1","@react-native-masked-view/masked-view":"^0.3.1"},"_npmOperationalInternal":{"tmp":"tmp/genie-sdk_0.0.2_1738943170094_0.3049369653848695","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@anarock/genie-sdk","version":"0.0.3","_id":"@anarock/genie-sdk@0.0.3","maintainers":[{"name":"developer_anarock","email":"developer@anarock.com"},{"name":"pranjal-jain","email":"pranjal.bitspilani@gmail.com"},{"name":"zhirzh","email":"zibbu.shirsh@gmail.com"},{"name":"appy9","email":"apoorva9191@gmail.com"}],"homepage":"https://github.com/anarock/anarock.genie-sdk#readme","bugs":{"url":"https://github.com/anarock/anarock.genie-sdk/issues"},"dist":{"shasum":"c73d0b7589abae5c1cec96e331f19c0c32b02889","tarball":"https://registry.npmjs.org/@anarock/genie-sdk/-/genie-sdk-0.0.3.tgz","fileCount":414,"integrity":"sha512-ie27Nhq6GbtW3kpP7cv5LHM5aSZr64/y/1ysBLaomd1AyLNDSHcXJPOe8Z1qz8v406ghlkSzYbXGi177qUXVIw==","signatures":[{"sig":"MEQCIEZlLA8riyb7CJgmFzCpea6E1umMzBu3uNeZLeXx6ri4AiBEvw96dX5YerAboK3P6c7wr2bZpI7+A0DqQbRgskaUpA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9095679},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"4cbc09c212554b1aed01dec33ecd608dd22daeee","scripts":{"dev":"nodemon","build":"bash scripts/build.sh","release":"bash scripts/build.sh release","prepublishOnly":"yarn build"},"_npmUser":{"name":"zhirzh","email":"zibbu.shirsh@gmail.com"},"repository":{"url":"git+ssh://git@github.com/anarock/anarock.genie-sdk.git","type":"git"},"_npmVersion":"10.5.0","description":"## Installation","directories":{},"_nodeVersion":"18.20.2","dependencies":{"marked":"^4.0.0"},"react-native":"src/index.ts","_hasShrinkwrap":false,"devDependencies":{"react":"^17.0.0","nodemon":"^3.1.4","gh-pages":"^6.1.1","react-dom":"^17.0.0","typescript":"^4.0.0","@types/react":"^17.0.0","react-native":"^0.67.0","@types/marked":"^4.0.0","react-native-fs":"^2.20.0","@types/react-dom":"^17.0.0","react-native-sse":"^1.2.1","react-native-web":"^0.18.0","react-native-sound":"^0.11.2","@types/react-native":"^0.67.0","@react-native-community/blur":"^4.4.0","react-native-linear-gradient":"^2.8.3","react-native-live-audio-stream":"^1.1.1","@react-native-masked-view/masked-view":"^0.3.1"},"peerDependencies":{"react":"^17.0.0","react-dom":"^17.0.0","react-native":"^0.67.0","react-native-fs":"^2.20.0","react-native-sse":"^1.2.1","react-native-web":"^0.18.0","react-native-sound":"^0.11.2","@react-native-community/blur":"^4.4.0","react-native-linear-gradient":"^2.8.3","react-native-live-audio-stream":"^1.1.1","@react-native-masked-view/masked-view":"^0.3.1"},"_npmOperationalInternal":{"tmp":"tmp/genie-sdk_0.0.3_1741265814666_0.752651765906097","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2025-02-07T15:43:13.365Z","modified":"2026-02-14T15:44:30.333Z","0.0.1":"2025-02-07T15:43:13.820Z","0.0.2":"2025-02-07T15:46:10.372Z","0.0.3":"2025-03-06T12:56:54.987Z"},"bugs":{"url":"https://github.com/anarock/anarock.genie-sdk/issues"},"homepage":"https://github.com/anarock/anarock.genie-sdk#readme","repository":{"url":"git+ssh://git@github.com/anarock/anarock.genie-sdk.git","type":"git"},"description":"## Installation","maintainers":[{"email":"developer@anarock.com","name":"developer_anarock"},{"email":"zibbu.shirsh@gmail.com","name":"zhirzh"},{"email":"venkat.bennabhaktula@anarock.com","name":"venky-0710"}],"readme":"# anarock.genie-sdk\n\n## Installation\n\n```sh\nyarn add ssh://git@github.com/anarock/anarock.genie-sdk#build\n```\n\n### NextJS\n\n#### Install peer dependencies\n\n```sh\nyarn add react-native-web@^0.18.0\nyarn add -D next-transpile-modules@^7.0.0\n```\n\n#### Copy assets\n\n```sh\ncp -r node_modules/genie-sdk/lib/assets/fonts/. public/fonts\ncp -r node_modules/genie-sdk/lib/assets/audio/. public/audio\n```\n\n### React Native\n\n#### Install peer dependencies\n\n```sh\nyarn add \\\n  @react-native-community/blur \\\n  @react-native-masked-view/masked-view \\\n  react-native-fs \\\n  react-native-linear-gradient \\\n  react-native-live-audio-stream \\\n  react-native-sound \\\n  react-native-sse\n```\n\n#### Install iOS dependencies\n\n```sh\n(cd ios/ ; bundle ; bundle exec pod install)\n```\n\n#### Copy assets\n\n##### Autolinking\n\nadd assets in react-native.config.js\n\n```js\nmodule.exports = {\n  ...\n  assets: [\n    ...\n    \"node_modules/genie-sdk/lib/assets/native/fonts\",\n    \"node_modules/genie-sdk/lib/assets/native/audio\",\n  ],\n};\n```\n\nrun `react-native-asset` to copy files into android and ios folders\n\n```sh\nnpx react-native-asset\n```\n\n##### Manually\n\n###### Android\n\n```sh\ncp -r node_modules/genie-sdk/lib/assets/native/fonts/. android/app/src/main/assets/fonts/\ncp -r node_modules/genie-sdk/lib/assets/native/audio/. android/app/src/main/res/raw/\n```\n\n###### iOS\n\n## Setup\n\n### NextJS\n\n#### load fonts\n\n```js\nexport default class MyDocument extends Document {\n  ...\n  render() {\n    return (\n      <Html lang=\"en-us\">\n        <Head>\n          ...\n          <link rel=\"stylesheet\" href=\"/fonts/style.css\" />\n          <link\n            rel=\"preload\"\n            as=\"font\"\n            href=\"/fonts/InterVariable.woff2\"\n            crossOrigin=\"\"\n          />\n          <link\n            rel=\"preload\"\n            as=\"font\"\n            href=\"/fonts/InterVariable-Italic.woff2\"\n            crossOrigin=\"\"\n          />\n        </Head>\n        ...\n      </Html>\n    );\n  }\n}\n\n```\n\n#### configure node_modules\n\n```js\n// 1. add `genie-sdk` to the list of modules to transpile\nconst withTM = require(\"next-transpile-modules\")([\"genie-sdk\"]);\n\nmodule.exports = withTM({\n  ...\n  webpack(config) {\n    ...\n\n    // 2. resolve `react-native` imports to `react-native-web`\n    config.resolve.alias[\"react-native$\"] = require.resolve(\"react-native-web\");\n  },\n});\n```\n\n#### Optional\n\n- if `assetPrefix` is set conditionally, set it to empty string instead of `undefined` or `null`\n\n```diff\n module.exports = {\n   ...\n-  assetPrefix: production ? ASSET_PREFIX : undefined,  ❌\n+  assetPrefix: production ? ASSET_PREFIX : \"\",         ✅\n }\n```\n\n- exclude `genie-sdk` from loaders for font and images\n\n```diff\n module.exports = {\n   ...\n   webpack(config) {\n     ...\n     config.module.rules.push({\n       test: /\\.(ttf|woff|woff2|jpg|png|svg|gif)$/,\n+      exclude: /genie-sdk/,\n       use: { ... }\n     });\n   }\n }\n```\n\n### React Native\n\n#### Android\n\nadd `RECORD_AUDIO` permission to `AndroidManifest.xml`\n\n```xml\n<manifest ...>\n  ...\n  <uses-permission android:name=\"android.permission.RECORD_AUDIO\" />\n</manifest>\n```\n\n#### iOS\n\nadd `NSMicrophoneUsageDescription` to `Info.plist`\n\n```xml\n<plist version=\"1.0\">\n<dict>\n  ...\n  <key>NSMicrophoneUsageDescription</key>\n  <string>Need microphone access for voice chat</string>\n</dict>\n</plist>\n```\n\n## Usage\n\n```jsx\n<GenieSdk\n  sdkConfig={{\n    api_url: \"https://api.staging.anarockgenie.com/backend-api\",\n    llm_url: \"wss://llm.staging.anarockgenie.com\",\n    agent_id: \"3\", // genie llm agent id\n    session_type: \"DEFAULT\",\n    source: \"WEB\",\n\n    // use employee service auth token for anarock users\n    auth_token: \"djshwey8urt9...\",\n    anarock_id: 123,\n\n    // and use phone number for public users\n    phone_number: \"9760288023\",\n    country_code: \"+91\",\n  }}\n/>\n```\n\n## Development\n\n### Install dependencies\n\n```bash\nyarn\n(cd examples/my-web ; yarn)\n(cd examples/MyApp ; yarn)\n(cd examples/MyApp/ios ; bundle ; bundle exec pod install)\n```\n\n### Run dev script\n\n```bash\nyarn dev\n```\n\n### Start dev servers\n\n#### Web\n\n```bash\n(cd examples/my-web ; yarn dev)\n```\n\n#### Native\n\n```bash\n(cd examples/MyApp ; yarn android ; yarn start)\n(cd examples/MyApp ; yarn ios ; yarn start)\n```\n\n### Fonts\n\n#### Variable font\n\nNative platforms (android, ios) do not support dynamic weights with variable fonts.\n\nWe use [Slice](https://github.com/source-foundry/Slice) to generate \"static\" fonts for each weight used in design.\nGenerated fonts are saved with sliced axes names and values added in filename.\nFor example: `Inter_italic_opsz14_wght500.ttf` is generated from `InterVariable-Italic.ttf` with sliced axes `opsz` and `wght` with values `14` and `500`.\n\n#### Font family\n\nEach platform (web, android, ios) has its own way to map `fontFamily` style property to actual font file.\n\n- web - `font-family` property in `@font-face` rule\n- android - filename in `app/src/main/assets/fonts` folder\n- ios - PostScript name declared in each font file\n\nWe use [TTFEdit](https://sourceforge.net/projects/ttfedit/) to edit PostScript name and set it to filename.\nBy doing so, we can use same `fontFamily` style property on native platforms (android, ios).\n\n### Audio\n\nWe use audio assets from Android Leanback to provide feedback for voice input.\n\n- https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:leanback/leanback/src/main/res/raw/\n- https://android.googlesource.com/platform/frameworks/support/+/refs/heads/androidx-main/leanback/leanback/src/main/res/raw/\n\n### Autolinking\n\nUse autolinking to copy font files by adding genie dependency in `examples/MyApp/package.json`\n\n```json\n{\n    ...\n    \"dependencies\": {\n        ...\n        \"genie-sdk\": \"0.0.0\"\n    }\n}\n```\n\nand running autolinking command\n\n```sh\nyarn react-native link genie-sdk\n```\n","readmeFilename":"README.md"}