From 59c0189ecdfc55ee2f03e286c567bd9db4d5fa6c Mon Sep 17 00:00:00 2001 From: Travis Fischer Date: Wed, 28 Jun 2023 20:01:45 -0700 Subject: [PATCH] feat: remove logging.ts and uuid --- legacy/package.json | 2 - legacy/pnpm-lock.yaml | 17 +---- legacy/src/logging.ts | 142 ------------------------------------------ 3 files changed, 1 insertion(+), 160 deletions(-) delete mode 100644 legacy/src/logging.ts diff --git a/legacy/package.json b/legacy/package.json index af35811e..a8045a6d 100644 --- a/legacy/package.json +++ b/legacy/package.json @@ -65,7 +65,6 @@ "quick-lru": "^6.1.1", "replicate": "^0.12.3", "ts-dedent": "^2.2.0", - "uuid": "^9.0.0", "zod": "^3.21.4", "zod-to-json-schema": "^3.21.2", "zod-validation-error": "^1.3.1" @@ -76,7 +75,6 @@ "@types/debug": "^4.1.8", "@types/node": "^20.3.2", "@types/sinon": "^10.0.15", - "@types/uuid": "^9.0.2", "@typescript-eslint/eslint-plugin": "^5.60.1", "@typescript-eslint/parser": "^5.60.1", "ava": "^5.3.1", diff --git a/legacy/pnpm-lock.yaml b/legacy/pnpm-lock.yaml index 97c892a7..9e4534b8 100644 --- a/legacy/pnpm-lock.yaml +++ b/legacy/pnpm-lock.yaml @@ -1,4 +1,4 @@ -lockfileVersion: '6.1' +lockfileVersion: '6.0' settings: autoInstallPeers: true @@ -83,9 +83,6 @@ dependencies: ts-dedent: specifier: ^2.2.0 version: 2.2.0 - uuid: - specifier: ^9.0.0 - version: 9.0.0 zod: specifier: ^3.21.4 version: 3.21.4 @@ -112,9 +109,6 @@ devDependencies: '@types/sinon': specifier: ^10.0.15 version: 10.0.15 - '@types/uuid': - specifier: ^9.0.2 - version: 9.0.2 '@typescript-eslint/eslint-plugin': specifier: ^5.60.1 version: 5.60.1(@typescript-eslint/parser@5.60.1)(eslint@8.43.0)(typescript@5.1.3) @@ -1058,10 +1052,6 @@ packages: resolution: {integrity: sha512-9GcLXF0/v3t80caGs5p2rRfkB+a8VBGLJZVih6CNFkx8IZ994wiKKLSRs9nuFwk1HevWs/1mnUmkApGrSGsShA==} dev: true - /@types/uuid@9.0.2: - resolution: {integrity: sha512-kNnC1GFBLuhImSnV7w4njQkUiJi0ZXUycu1rUaouPqiKlXkh77JKgdRnTAp1x5eBwcIwbtI+3otwzuIDEuDoxQ==} - dev: true - /@typescript-eslint/eslint-plugin@5.60.1(@typescript-eslint/parser@5.60.1)(eslint@8.43.0)(typescript@5.1.3): resolution: {integrity: sha512-KSWsVvsJsLJv3c4e73y/Bzt7OpqMCADUO846bHcuWYSYM19bldbAeDv7dYyV0jwkbMfJ2XdlzwjhXtuD7OY6bw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -4457,11 +4447,6 @@ packages: punycode: 2.3.0 dev: true - /uuid@9.0.0: - resolution: {integrity: sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==} - hasBin: true - dev: false - /v8-to-istanbul@9.1.0: resolution: {integrity: sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==} engines: {node: '>=10.12.0'} diff --git a/legacy/src/logging.ts b/legacy/src/logging.ts deleted file mode 100644 index e38b5727..00000000 --- a/legacy/src/logging.ts +++ /dev/null @@ -1,142 +0,0 @@ -import logger from 'debug' -import { v4 as uuidv4 } from 'uuid' - -import { getEnv } from './env' - -/** - * List of events that can occur within the library. - */ -export const Events = { - LLM_CALL: 'LLM_CALL', - LLM_COMPLETION: 'LLM_COMPLETION' -} as const -export type EventType = (typeof Events)[keyof typeof Events] - -/** - * Severity levels of an event. - */ -export const Severity = { - DEBUG: 0, - INFO: 1, - WARNING: 2, - ERROR: 3, - CRITICAL: 4 -} as const -type SeverityType = (typeof Severity)[keyof typeof Severity] - -/* - * Define minimum LOG_LEVEL, defaulting to Severity.INFO if not provided or if an invalid value is provided. Any events below that level won't be logged to the console. - */ -let LOG_LEVEL: SeverityType = Severity.INFO -const logLevelEnv = getEnv('DEBUG_LOG_LEVEL') - -if (logLevelEnv && Severity[logLevelEnv.toUpperCase()] !== undefined) { - LOG_LEVEL = Severity[logLevelEnv.toUpperCase()] -} else if (logLevelEnv) { - throw new Error(`Invalid value for LOG_LEVEL: ${logLevelEnv}`) -} - -/** - * Define loggers for each severity level such that logs can be filtered by severity. - */ -const LOGGERS: Record> = { - [Severity.CRITICAL]: logger('agentic:events:critical'), - [Severity.ERROR]: logger('agentic:events:error'), - [Severity.WARNING]: logger('agentic:events:warning'), - [Severity.INFO]: logger('agentic:events:info'), - [Severity.DEBUG]: logger('agentic:events:debug') -} - -/** - * Payload of an event. - */ -interface EventPayload { - [key: string]: unknown -} - -/** - * Data required to create a new Event object. - */ -interface EventData { - parentId?: string - id?: string - timestamp?: Date - payload?: EventPayload - severity?: SeverityType - version?: number -} - -/** - * Events that occur within the library (should be treated as immutable). - */ -export class Event { - public readonly type: EventType - public readonly parentId?: string - public readonly id: string - public readonly timestamp: Date - public readonly payload?: EventPayload - public readonly severity: SeverityType - public readonly version: number - - constructor(type: EventType, data: EventData = {}) { - this.type = type - this.parentId = data.parentId - this.id = data.id ?? uuidv4() - this.timestamp = data.timestamp ?? new Date() - this.payload = data.payload ? { ...data.payload } : {} // Only doing a shallow instead of a deep copy for performance reasons.. - this.severity = data.severity ?? Severity.INFO - this.version = data.version ?? 1 // Default to version 1 if not provided... - } - - /** - * Converts a JSON string representation of an event back into an Event object. - */ - static fromJSON(json: string): Event { - const { type, ...data } = JSON.parse(json) - - // Convert the timestamp back into a Date object, since `JSON.parse()` will have turned it into a string: - data.timestamp = new Date(data.timestamp) - const event = new Event(type, data) - return event - } - - /** - * Converts the event to a JSON string representation. - * - * @returns JSON representation - */ - toJSON(): string { - return JSON.stringify({ - type: this.type, - parentId: this.parentId, - id: this.id, - timestamp: this.timestamp.toISOString(), - payload: this.payload, - severity: this.severity, - version: this.version - }) - } - - /** - * Converts the event to a human-readable string representation suitable for logging. - * - * @returns string representation - */ - toString(): string { - return `Event { type: ${this.type}, parentId: ${this.parentId}, id: ${ - this.id - }, timestamp: ${this.timestamp.toISOString()}, payload: ${JSON.stringify( - this.payload - )}, severity: ${this.severity} }` - } - - /** - * Logs the event to the console. - */ - log(): void { - if (this.severity >= LOG_LEVEL) { - const logger = LOGGERS[this.severity] - logger(this.toString()) - } - } -}