{"_id":"@aceint/ai-interviews","_rev":"5-b857a204fe80ecb61fe133bebde529c8","name":"@aceint/ai-interviews","dist-tags":{"latest":"1.0.4"},"versions":{"1.0.0":{"name":"@aceint/ai-interviews","version":"1.0.0","keywords":["aceint","ai-interviews","interview","session","sdk","typescript"],"license":"MIT","_id":"@aceint/ai-interviews@1.0.0","maintainers":[{"name":"aceint","email":"sdk.aceint@gmail.com"}],"dist":{"shasum":"c7da5c18dd6f9722916d1f5182e11b96555fefb7","tarball":"https://registry.npmjs.org/@aceint/ai-interviews/-/ai-interviews-1.0.0.tgz","fileCount":8,"integrity":"sha512-pAr5bfNwXECus85JIV2UZ06we2tCAu1qwQf+W0ZSVe9Ux7fGOrxi38nkpsxv/hLPzLBrjYrP9+EgWeBsdoYzrQ==","signatures":[{"sig":"MEYCIQDaqmjXHYnRRrdsBrLGCZnDmaQl5TDCgUQjAtufoaEIRAIhAI745yqIas7imqALos3oYMTj8eXBMEUQKnhsbYPjwWWW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":86022},"main":"dist/index.cjs","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup"},"_npmUser":{"name":"aceint","email":"sdk.aceint@gmail.com"},"_npmVersion":"11.5.1","description":"Backend TypeScript SDK for Aceint AI interview session APIs with built-in auth lifecycle management.","directories":{},"sideEffects":false,"_nodeVersion":"24.6.0","dependencies":{"@aceint/auth":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","vitest":"^3.2.4","typescript":"^5.9.3","@types/node":"^24.6.1"},"_npmOperationalInternal":{"tmp":"tmp/ai-interviews_1.0.0_1775131457508_0.2818853539132822","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@aceint/ai-interviews","version":"1.0.1","keywords":["aceint","ai-interviews","interview","session","sdk","typescript"],"license":"MIT","_id":"@aceint/ai-interviews@1.0.1","maintainers":[{"name":"aceint","email":"sdk.aceint@gmail.com"}],"dist":{"shasum":"83ecf07bf08d7bdd13fe7c8d946404bafe570e10","tarball":"https://registry.npmjs.org/@aceint/ai-interviews/-/ai-interviews-1.0.1.tgz","fileCount":8,"integrity":"sha512-SIxeWry0VzScSOoSs4h+5t5NdFP/5TEC4p1XRvByU+0n/41C7fRi1QJXEfwq+PCKaUWIgsOOPGwce98+Y6FTqg==","signatures":[{"sig":"MEQCIEhIrkNMmgkYXNu0wRQVyC+ArDBJksx6juBCvxhbzvpgAiBGdjG9m21fLcH26L38lb86cHyzH+TMqdFQRo7ypTI0pw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":92253},"main":"dist/index.cjs","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup"},"_npmUser":{"name":"aceint","email":"sdk.aceint@gmail.com"},"_npmVersion":"11.5.1","description":"Backend TypeScript SDK for Aceint AI interview session APIs with built-in auth lifecycle management.","directories":{},"sideEffects":false,"_nodeVersion":"24.6.0","dependencies":{"@aceint/auth":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","vitest":"^3.2.4","typescript":"^5.9.3","@types/node":"^24.6.1"},"_npmOperationalInternal":{"tmp":"tmp/ai-interviews_1.0.1_1775154217594_0.4929435618358007","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@aceint/ai-interviews","version":"1.0.2","keywords":["aceint","ai-interviews","interview","session","sdk","typescript"],"license":"MIT","_id":"@aceint/ai-interviews@1.0.2","maintainers":[{"name":"aceint","email":"sdk.aceint@gmail.com"}],"dist":{"shasum":"bcd4e9550de768bb7796500af57ac187387b8f4e","tarball":"https://registry.npmjs.org/@aceint/ai-interviews/-/ai-interviews-1.0.2.tgz","fileCount":8,"integrity":"sha512-xNHqkP/bLAMDdzqxNpmW7Rh6FihSLsqsYLUx2tHY/9k4liflzImIXETIKlSctVfxXIS4kG74o4G25aSDQ5kBiQ==","signatures":[{"sig":"MEUCIQDroVauefgNo5vJjlh3LLxs668tB++d9wdlNd/e+ePLsgIgRPr0qvFYkaJ4XdjkA1WbNeJFx+x0TIBF6FLXG22tO2k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":92648},"main":"dist/index.cjs","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup"},"_npmUser":{"name":"aceint","email":"sdk.aceint@gmail.com"},"_npmVersion":"11.5.1","description":"Backend TypeScript SDK for Aceint AI interview session APIs with built-in auth lifecycle management.","directories":{},"sideEffects":false,"_nodeVersion":"24.6.0","dependencies":{"@aceint/auth":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","vitest":"^3.2.4","typescript":"^5.9.3","@types/node":"^24.6.1"},"_npmOperationalInternal":{"tmp":"tmp/ai-interviews_1.0.2_1775155284071_0.06302248813071265","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@aceint/ai-interviews","version":"1.0.3","keywords":["aceint","ai-interviews","interview","session","sdk","typescript"],"license":"MIT","_id":"@aceint/ai-interviews@1.0.3","maintainers":[{"name":"aceint","email":"sdk.aceint@gmail.com"}],"dist":{"shasum":"a3b9a9168deb5aa56f9f250ece460615bdb7ab64","tarball":"https://registry.npmjs.org/@aceint/ai-interviews/-/ai-interviews-1.0.3.tgz","fileCount":8,"integrity":"sha512-t/kiefCzMBm6r0RQcfSYGs2IzOSpjpYobUR+mGU6/dgj+ZLI5zaBTO/tegqTclGsfuPujFwdTceGxBTuNnD6RQ==","signatures":[{"sig":"MEUCIGsz36ANdugkpN6BNmA9W2me9GIlu+0bxWK0a6hFOBOwAiEAlBdjkK2uLOxbrT55dD6hv8fjLfNeoG9gKVSx65kQfWE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":92668},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup"},"_npmUser":{"name":"aceint","email":"sdk.aceint@gmail.com"},"_npmVersion":"11.5.1","description":"Backend TypeScript SDK for Aceint AI interview session APIs with built-in auth lifecycle management.","directories":{},"sideEffects":false,"_nodeVersion":"24.6.0","dependencies":{"@aceint/auth":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","vitest":"^3.2.4","typescript":"^5.9.3","@types/node":"^24.6.1"},"_npmOperationalInternal":{"tmp":"tmp/ai-interviews_1.0.3_1775161694759_0.542518431380212","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@aceint/ai-interviews","version":"1.0.4","description":"Backend TypeScript SDK for Aceint AI interview session APIs with built-in auth lifecycle management.","license":"MIT","type":"module","main":"dist/index.cjs","module":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"sideEffects":false,"engines":{"node":">=18"},"publishConfig":{"access":"public"},"scripts":{"build":"tsup","dev":"tsup --watch","test":"vitest run"},"keywords":["aceint","ai-interviews","interview","session","sdk","typescript"],"dependencies":{"@aceint/auth":"^1.0.0"},"devDependencies":{"@types/node":"^24.6.1","tsup":"^8.5.0","typescript":"^5.9.3","vitest":"^3.2.4"},"_id":"@aceint/ai-interviews@1.0.4","_nodeVersion":"24.6.0","_npmVersion":"11.5.1","dist":{"integrity":"sha512-cM4NcZEQMqpN9843qiBVUD/LFfga6tTcAJWkgT89Nn1NkQR6FqhyAh9+jvnCK3c4XGfP71whEhydG7VJvNH34A==","shasum":"e0db65b34ce1a778b882589395d7a46b6fa8933c","tarball":"https://registry.npmjs.org/@aceint/ai-interviews/-/ai-interviews-1.0.4.tgz","fileCount":8,"unpackedSize":92688,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIHmvv0VoTNsZcx2Ajym7NpnFdsRbtRyzvnVMW7DnnfalAiEA4P9JScjsF4FZgS9qpxIIs9GhbFrOMNhz7f+yTg/RMsI="}]},"_npmUser":{"name":"aceint","email":"sdk.aceint@gmail.com"},"directories":{},"maintainers":[{"name":"aceint","email":"sdk.aceint@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ai-interviews_1.0.4_1775163648837_0.9508756629725919"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-02T12:04:17.430Z","modified":"2026-04-02T21:00:49.111Z","1.0.0":"2026-04-02T12:04:17.656Z","1.0.1":"2026-04-02T18:23:37.736Z","1.0.2":"2026-04-02T18:41:24.219Z","1.0.3":"2026-04-02T20:28:14.920Z","1.0.4":"2026-04-02T21:00:48.980Z"},"license":"MIT","keywords":["aceint","ai-interviews","interview","session","sdk","typescript"],"description":"Backend TypeScript SDK for Aceint AI interview session APIs with built-in auth lifecycle management.","maintainers":[{"name":"aceint","email":"sdk.aceint@gmail.com"}],"readme":"# `@aceint/ai-interviews`\n\nBackend TypeScript SDK for Aceint AI interview session APIs.\n\nThis package is the higher-level SDK for clients who want to create Aceint-hosted interview sessions from their backend without manually managing Aceint access tokens for every request.\n\n## What This Package Handles\n\n- issues the first Aceint access token internally\n- reuses active tokens in memory by default\n- refreshes tokens when needed\n- retries one protected request after a `401`\n- calls Aceint session APIs from your backend\n\nThis package is intended for backend or server environments.\n\nDo not install it in a browser-only frontend application.\n\n## Requirements\n\n- Node.js `>=18`\n- Aceint client credentials from the Aceint `Credentials` tab\n\n## Installation\n\n```bash\nnpm install @aceint/ai-interviews\n```\n\n## Public Modes\n\n- `dev` -> `https://dev.aceint.ai/backend/api/v1`\n- `prod` -> `https://interview.aceint.ai/backend/api/v1`\n\nUse `dev` for development, QA, and integration testing.\n\nUse `prod` for live production traffic.\n\n## Quick Start\n\n```ts\nimport { SessionClient } from '@aceint/ai-interviews';\n\nconst interviews = new SessionClient({\n  mode: 'dev',\n  clientPublicId: process.env.ACEINT_CLIENT_PUBLIC_ID!,\n  apiKey: process.env.ACEINT_API_KEY!,\n  apiSecret: process.env.ACEINT_API_SECRET!,\n  accessTtl: '15m',\n});\n\nconst session = await interviews.createSession({\n  userId: '62704ecf-9ef2-4915-ae04-bb79ef2b25a5',\n  taskId: 'e8d9ba6c-6a9c-44e2-a3e9-257d7389a95f',\n  sessionId: '3bcd6789-c679-4ff3-bdb1-e1730f3cb46b',\n  fullName: 'Sample Candidate',\n  jobRole: 'Java Developer',\n  interviewCategory: 'Technical',\n  interviewDomain: 'Product-based',\n  duration: 30,\n  interviewMode: 'BY_CLIENT',\n  experience: '0-2',\n  interviewDifficulty: 'Medium',\n  sessionStatus: 'New',\n  createdBy: 'Example Recruiter',\n  topics: [\n    {\n      id: 'topic-1',\n      name: 'JavaScript Fundamentals',\n      weightage: 25,\n      allocated_time: 3,\n      knowledge_depth: 3,\n      subtopics: [\n        {\n          id: 'subtopic-1',\n          name: 'Variable Scoping and Hoisting',\n          concepts: ['Function Scope', 'Temporal Dead Zone'],\n        },\n      ],\n    },\n  ],\n});\n\nconsole.log(session.sessionId);\nconsole.log(session.iframeUrl);\n```\n\n`createSession()` is the primary session creation method and accepts the real session payload shape used by client backends.\n\n## Recommended Architecture\n\nUse this package from your backend, then return only the values your frontend needs.\n\nRecommended flow:\n\n`frontend -> your backend -> SessionClient -> Aceint`\n\nFor Aceint-hosted interview embeds, your backend should create the session and return `iframeUrl` to the frontend for rendering.\n\n## API\n\n### `new SessionClient(options)`\n\nCreates a backend client that manages Aceint auth internally for AI interview session APIs.\n\n### `client.createSession(input)`\n\nCreates a session with the main Aceint session payload and returns normalized session data including:\n\n- `sessionId`\n- `status`\n- `token`\n- `livekitUrl`\n- `iframeUrl`\n\n### `client.createSessionRaw(payload)`\n\nLower-level passthrough API kept for advanced compatibility cases.\n\n### `client.getSession(sessionId)`\n\nFetches the stored Aceint interview session data for a session ID.\n\n### `client.getSessionRecord(sessionId)`\n\nFetches normalized session record data including:\n\n- `sessionId`\n- `videoLink`\n- `audioLink`\n- `transcript`\n- `category`\n- `subCategory`\n\n## Token Management\n\nThis package uses `@aceint/auth` internally.\n\nBy default it keeps tokens in memory per `SessionClient` instance.\n\nIf you run multiple backend instances or want shared token state, provide a custom `tokenStore`.\n\n## When To Use `@aceint/auth` Instead\n\nUse `@aceint/auth` directly when you only want low-level token issuance, refresh, and revoke control.\n\nUse `@aceint/ai-interviews` when you want the Aceint AI interview session APIs and do not want to manually handle the token lifecycle in your backend code.\n","readmeFilename":"README.md"}