contextual-agent-sdk
Version:
SDK for building AI agents with seamless voice-text context switching
123 lines (122 loc) ⢠4.51 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.getAttribution = getAttribution;
exports.getHTMLAttribution = getHTMLAttribution;
exports.getMarkdownAttribution = getMarkdownAttribution;
exports.getTextAttribution = getTextAttribution;
exports.getJSONAttribution = getJSONAttribution;
exports.reportUsage = reportUsage;
exports.logAttribution = logAttribution;
exports.validateAttribution = validateAttribution;
exports.getAttributionBadge = getAttributionBadge;
function getAttribution() {
return {
library: "Contextual Agent SDK",
version: "1.0.0",
author: "simcoder technologies a subsidiary of SCS Group",
company: "SCS Group",
innovation: "Seamless Voice-Text Context Switching Technology",
url: "https://github.com/simcoder/contextual-agent-sdk",
repository: "https://github.com/simcoder/contextual-agent-sdk",
license: "MIT"
};
}
function getHTMLAttribution() {
const info = getAttribution();
return `Powered by <a href="${info.url}">${info.library}</a> by simcoder technologies`;
}
function getMarkdownAttribution() {
const info = getAttribution();
return `Uses [${info.library}](${info.url}) by simcoder technologies for ${info.innovation.toLowerCase()}`;
}
function getTextAttribution() {
const info = getAttribution();
return `Powered by ${info.library} by simcoder technologies - ${info.url}`;
}
function getJSONAttribution() {
const info = getAttribution();
return {
"contextual-agent-sdk": {
author: info.author,
company: info.company,
innovation: info.innovation,
url: info.url,
license: info.license
}
};
}
async function reportUsage(options) {
if (options?.disableTelemetry !== false || process.env.NODE_ENV !== 'production') {
return;
}
try {
const telemetryEndpoint = 'https://api.simcoder.tech/sdk/usage';
const payload = {
sdk: 'contextual-agent-sdk',
version: getAttribution().version,
timestamp: new Date().toISOString(),
environment: options?.environment || 'unknown',
features: options?.features || [],
instanceId: generateAnonymousId(),
projectName: options?.projectName,
userAgent: options?.userAgent
};
await fetch(telemetryEndpoint, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'User-Agent': `contextual-agent-sdk/${payload.version}`
},
body: JSON.stringify(payload)
}).catch(() => {
});
}
catch (error) {
}
}
function generateAnonymousId() {
const nodeVersion = process.version;
const platform = process.platform;
const arch = process.arch;
const envHash = Buffer.from(`${nodeVersion}-${platform}-${arch}`).toString('base64');
return envHash.substring(0, 16);
}
function logAttribution() {
const info = getAttribution();
console.log(`
š¤ ${info.library} v${info.version}
š¢ Created by: ${info.author}
š Innovation: ${info.innovation}
š Repository: ${info.repository}
š License: ${info.license}
Thank you for using Contextual Agent SDK!
Please include attribution in your project.
`);
}
function validateAttribution(packageJson) {
const suggestions = [];
let isValid = true;
if (!packageJson.author || typeof packageJson.author === 'string' && packageJson.author === '') {
suggestions.push("Add author information to package.json");
}
if (!packageJson.credits || !packageJson.credits['contextual-agent-sdk']) {
suggestions.push("Add credits section with contextual-agent-sdk attribution");
isValid = false;
}
if (!packageJson.repository || !packageJson.repository.url) {
suggestions.push("Add repository URL to package.json");
}
return { isValid, suggestions };
}
function getAttributionBadge(style = 'markdown') {
const info = getAttribution();
const badgeUrl = `https://img.shields.io/badge/Powered%20by-Contextual%20Agent%20SDK-blue`;
if (style === 'html') {
return `<a href="${info.url}"><img src="${badgeUrl}" alt="Powered by Contextual Agent SDK" /></a>`;
}
return `[](${info.url})`;
}
if (process.env.NODE_ENV === 'development') {
logAttribution();
}
//# sourceMappingURL=attribution.js.map
;