mycoder
Version:
A command line tool using agent that can do arbitrary tasks, including coding tasks
78 lines • 2.75 kB
JavaScript
import { createRequire } from 'module';
import * as Sentry from '@sentry/node';
/**
* Initialize Sentry for error tracking
* @param dsn Optional custom DSN to use instead of the default
*/
export function initSentry(dsn) {
// Get package version using createRequire for ES modules
let packageVersion = 'unknown';
try {
const require = createRequire(import.meta.url);
packageVersion =
process.env.npm_package_version || require('../../package.json').version;
}
catch (error) {
console.warn('Could not determine package version for Sentry:', error);
}
// Initialize Sentry
Sentry.init({
// Default DSN from Sentry.io integration instructions
dsn: dsn ||
'https://2873d2518b60f645918b6a08ae5e69ae@o4508898407481344.ingest.us.sentry.io/4508898476687360',
// No profiling integration as requested
// Capture 100% of the transactions
tracesSampleRate: 1.0,
// Set environment based on NODE_ENV
environment: process.env.NODE_ENV || 'development',
// Add release version from package.json
release: `mycoder@${packageVersion}`,
// Don't capture errors in development mode unless explicitly enabled
enabled: process.env.NODE_ENV !== 'development' ||
process.env.ENABLE_SENTRY === 'true',
});
}
/**
* Capture an exception with Sentry
* @param error Error to capture
*/
export function captureException(error) {
Sentry.captureException(error);
}
/**
* Capture a message with Sentry
* @param message Message to capture
* @param level Optional severity level
*/
export function captureMessage(message, level) {
Sentry.captureMessage(message, level);
}
/**
* Test Sentry error reporting by throwing a test error
*/
export function testSentryErrorReporting() {
try {
// Get package version for the error message
let packageVersion = 'unknown';
try {
const require = createRequire(import.meta.url);
packageVersion =
process.env.npm_package_version ||
require('../../package.json').version;
}
catch (error) {
console.warn('Could not determine package version for test error:', error);
}
// Throw a test error with version information
throw new Error(`Test error for Sentry.io integration from mycoder@${packageVersion}`);
}
catch (error) {
// Capture the error with Sentry
Sentry.captureException(error);
// Log a message about the test
console.log('Test error sent to Sentry.io');
// Return the error for inspection
return error;
}
}
//# sourceMappingURL=index.js.map