fix: usLogg from @guiiai/logg error
This commit is contained in:
@@ -4,7 +4,7 @@ import type { AuthenticatedPeer, Peer } from './types'
|
||||
|
||||
import { env } from 'node:process'
|
||||
|
||||
import { Format, LogLevel, setGlobalFormat, setGlobalLogLevel, useLogger } from '@guiiai/logg'
|
||||
import { Format, LogLevel, setGlobalFormat, setGlobalLogLevel, useLogg } from '@guiiai/logg'
|
||||
import { createApp, createRouter, defineWebSocketHandler } from 'h3'
|
||||
|
||||
setGlobalFormat(Format.Pretty)
|
||||
@@ -25,8 +25,8 @@ function send(peer: Peer, event: WebSocketEvent<Record<string, unknown>> | strin
|
||||
}
|
||||
|
||||
function main() {
|
||||
const appLogger = useLogger('App').useGlobalConfig()
|
||||
const websocketLogger = useLogger('WebSocket').useGlobalConfig()
|
||||
const appLogger = useLogg('App').useGlobalConfig()
|
||||
const websocketLogger = useLogg('WebSocket').useGlobalConfig()
|
||||
|
||||
const app = createApp({
|
||||
onError: error => appLogger.withError(error).error('an error occurred'),
|
||||
|
||||
@@ -26,7 +26,7 @@ import {
|
||||
StreamType,
|
||||
VoiceConnectionStatus,
|
||||
} from '@discordjs/voice'
|
||||
import { useLogger } from '@guiiai/logg'
|
||||
import { useLogg } from '@guiiai/logg'
|
||||
|
||||
import { DECODE_SAMPLE_RATE } from '../../../constants/audio'
|
||||
import { openaiTranscribe } from '../../../pipelines/tts'
|
||||
@@ -56,7 +56,7 @@ async function setSelfVoice(logger: Logg, me?: GuildMember | null) {
|
||||
// https://github.com/elizaOS/eliza/blob/develop/packages/client-discord/src/voice.ts
|
||||
|
||||
export class VoiceManager extends EventEmitter {
|
||||
private logger = useLogger('VoiceManager').useGlobalConfig()
|
||||
private logger = useLogg('VoiceManager').useGlobalConfig()
|
||||
private processingVoice: boolean = false
|
||||
private transcriptionTimeout: NodeJS.Timeout | null = null
|
||||
private userStates: Map<
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { env } from 'node:process'
|
||||
|
||||
import { Format, LogLevel, setGlobalFormat, setGlobalLogLevel, useLogger } from '@guiiai/logg'
|
||||
import { Format, LogLevel, setGlobalFormat, setGlobalLogLevel, useLogg } from '@guiiai/logg'
|
||||
import { Client as AiriClient } from '@proj-airi/server-sdk'
|
||||
import { Client, Events, GatewayIntentBits } from 'discord.js'
|
||||
|
||||
@@ -8,7 +8,7 @@ import { handlePing, registerCommands, VoiceManager } from './bots/discord/comma
|
||||
|
||||
setGlobalFormat(Format.Pretty)
|
||||
setGlobalLogLevel(LogLevel.Log)
|
||||
const log = useLogger('Bot').useGlobalConfig()
|
||||
const log = useLogg('Bot').useGlobalConfig()
|
||||
|
||||
// Create a new client instance
|
||||
async function main() {
|
||||
|
||||
@@ -6,7 +6,7 @@ import { env } from 'node:process'
|
||||
|
||||
import wavefile from 'wavefile'
|
||||
|
||||
import { useLogger } from '@guiiai/logg'
|
||||
import { useLogg } from '@guiiai/logg'
|
||||
import { pipeline } from '@huggingface/transformers'
|
||||
import { toWav } from '@proj-airi/audio'
|
||||
import { createOpenAI } from '@xsai-ext/providers-cloud'
|
||||
@@ -46,7 +46,7 @@ export function textFromResult(result: Array<{ text: string }> | { text: string
|
||||
}
|
||||
|
||||
export async function transcribe(pcmBuffer: Buffer) {
|
||||
const log = useLogger('Memory:Transcribe').useGlobalConfig()
|
||||
const log = useLogg('Memory:Transcribe').useGlobalConfig()
|
||||
|
||||
const pcmConvertedWav = toWav(pcmBuffer.buffer, 48000, 2)
|
||||
log.withFields({ from: pcmBuffer.byteLength, to: pcmConvertedWav.byteLength }).log('Audio data received')
|
||||
@@ -71,7 +71,7 @@ export async function transcribe(pcmBuffer: Buffer) {
|
||||
}
|
||||
|
||||
export async function openaiTranscribe(wavBuffer: Buffer) {
|
||||
const log = useLogger('Remote:Transcribe').useGlobalConfig()
|
||||
const log = useLogg('Remote:Transcribe').useGlobalConfig()
|
||||
|
||||
log.log('Transcribing audio...')
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@ import type { Readable } from 'node:stream'
|
||||
|
||||
import { Buffer } from 'node:buffer'
|
||||
|
||||
import { useLogger } from '@guiiai/logg'
|
||||
import { useLogg } from '@guiiai/logg'
|
||||
|
||||
// eliza/packages/client-discord/src/voice.ts at develop · elizaOS/eliza
|
||||
// https://github.com/elizaOS/eliza/blob/develop/packages/client-discord/src/voice.ts
|
||||
@@ -12,7 +12,7 @@ export class AudioMonitor {
|
||||
private maxSize: number
|
||||
private lastFlagged: number = -1
|
||||
private ended: boolean = false
|
||||
private logger = useLogger('AudioMonitor').useGlobalConfig()
|
||||
private logger = useLogg('AudioMonitor').useGlobalConfig()
|
||||
|
||||
constructor(
|
||||
readable: Readable,
|
||||
|
||||
@@ -8,11 +8,11 @@ import { agent } from 'neuri'
|
||||
import { system, user } from 'neuri/openai'
|
||||
|
||||
import { BaseLLMHandler } from '../../libs/llm-agent/handler'
|
||||
import { useLoggerer } from '../../utils/logger'
|
||||
import { useLogger } from '../../utils/logger'
|
||||
import { actionsList } from './tools'
|
||||
|
||||
export async function createActionNeuriAgent(mineflayer: Mineflayer): Promise<Agent> {
|
||||
const logger = useLoggerer()
|
||||
const logger = useLogger()
|
||||
logger.log('Initializing action agent')
|
||||
let actionAgent = agent('action')
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ import { z } from 'zod'
|
||||
import { collectBlock } from '../../skills/actions/collect-block'
|
||||
import { discard, equip, putInChest, takeFromChest, viewChest } from '../../skills/actions/inventory'
|
||||
import { activateNearestBlock, placeBlock } from '../../skills/actions/world-interactions'
|
||||
import { useLoggerer } from '../../utils/logger'
|
||||
import { useLogger } from '../../utils/logger'
|
||||
|
||||
import * as skills from '../../skills'
|
||||
import * as world from '../../skills/world'
|
||||
@@ -59,7 +59,7 @@ export const actionsList: Action[] = [
|
||||
schema: z.object({}),
|
||||
perform: mineflayer => (): string => {
|
||||
const blocks = world.getNearbyBlockTypes(mineflayer)
|
||||
useLoggerer().withFields({ blocks }).log('nearbyBlocks')
|
||||
useLogger().withFields({ blocks }).log('nearbyBlocks')
|
||||
return pad(`NEARBY_BLOCKS${blocks.map((b: string) => `\n- ${b}`).join('') || ': none'}`)
|
||||
},
|
||||
},
|
||||
|
||||
@@ -7,7 +7,7 @@ import { agent } from 'neuri'
|
||||
import { system, user } from 'neuri/openai'
|
||||
|
||||
import { config as appConfig } from '../../composables/config'
|
||||
import { useLoggerer } from '../../utils/logger'
|
||||
import { useLogger } from '../../utils/logger'
|
||||
import { generateChatAgentPrompt } from './adapter'
|
||||
|
||||
interface LLMChatConfig {
|
||||
@@ -30,7 +30,7 @@ export async function generateChatResponse(
|
||||
const systemPrompt = generateChatAgentPrompt()
|
||||
const chatHistory = formatChatHistory(history, config.maxContextLength ?? 10)
|
||||
const userPrompt = message
|
||||
const logger = useLoggerer()
|
||||
const logger = useLogger()
|
||||
|
||||
const messages = [
|
||||
system(systemPrompt),
|
||||
|
||||
@@ -5,7 +5,7 @@ import type { AgentConfig, MemoryAgent } from '../../libs/mineflayer/base-agent'
|
||||
import type { Logger } from '../../utils/logger'
|
||||
|
||||
import { Memory } from '../../libs/mineflayer/memory'
|
||||
import { useLoggerer } from '../../utils/logger'
|
||||
import { useLogger } from '../../utils/logger'
|
||||
|
||||
export class MemoryAgentImpl implements MemoryAgent {
|
||||
public readonly type = 'memory' as const
|
||||
@@ -20,7 +20,7 @@ export class MemoryAgentImpl implements MemoryAgent {
|
||||
this.memory = new Map()
|
||||
this.initialized = false
|
||||
this.memoryInstance = new Memory()
|
||||
this.logger = useLoggerer()
|
||||
this.logger = useLogger()
|
||||
}
|
||||
|
||||
async init(): Promise<void> {
|
||||
|
||||
@@ -2,9 +2,9 @@ import type { BotOptions } from 'mineflayer'
|
||||
|
||||
import { env } from 'node:process'
|
||||
|
||||
import { useLoggerer } from '../utils/logger'
|
||||
import { useLogger } from '../utils/logger'
|
||||
|
||||
const logger = useLoggerer()
|
||||
const logger = useLogger()
|
||||
|
||||
// Configuration interfaces
|
||||
interface OpenAIConfig {
|
||||
|
||||
@@ -7,14 +7,14 @@ import { neuri } from 'neuri'
|
||||
import { createActionNeuriAgent } from '../agents/action/adapter'
|
||||
import { createChatNeuriAgent } from '../agents/chat/llm'
|
||||
import { createPlanningNeuriAgent } from '../agents/planning/adapter'
|
||||
import { useLoggerer } from '../utils/logger'
|
||||
import { useLogger } from '../utils/logger'
|
||||
import { config } from './config'
|
||||
|
||||
let neuriAgent: Neuri | undefined
|
||||
const agents = new Set<Agent | Promise<Agent>>()
|
||||
|
||||
export async function createNeuriAgent(mineflayer: Mineflayer): Promise<Neuri> {
|
||||
useLoggerer().log('Initializing neuri agent')
|
||||
useLogger().log('Initializing neuri agent')
|
||||
let n = neuri()
|
||||
|
||||
agents.add(createPlanningNeuriAgent())
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
import type { Logg } from '@guiiai/logg'
|
||||
import type { Neuri } from 'neuri'
|
||||
|
||||
import type { Logger } from '../../utils/logger'
|
||||
|
||||
import { useLogger } from '@guiiai/logg'
|
||||
import { useLogg } from '@guiiai/logg'
|
||||
import { asClass, asFunction, createContainer, InjectionMode } from 'awilix'
|
||||
|
||||
import { ActionAgentImpl } from '../../agents/action'
|
||||
@@ -10,7 +9,7 @@ import { ChatAgentImpl } from '../../agents/chat'
|
||||
import { PlanningAgentImpl } from '../../agents/planning'
|
||||
|
||||
export interface ContainerServices {
|
||||
logger: Logger
|
||||
logger: Logg
|
||||
actionAgent: ActionAgentImpl
|
||||
planningAgent: PlanningAgentImpl
|
||||
chatAgent: ChatAgentImpl
|
||||
@@ -29,7 +28,7 @@ export function createAgentContainer(options: {
|
||||
// Register services
|
||||
container.register({
|
||||
// Create independent logger for each agent
|
||||
logger: asFunction(() => useLogger('agent').useGlobalConfig()).singleton(),
|
||||
logger: asFunction(() => useLogg('agent').useGlobalConfig()).singleton(),
|
||||
|
||||
// Register neuri client
|
||||
neuri: asFunction(() => options.neuri).singleton(),
|
||||
|
||||
@@ -7,13 +7,13 @@ import type { LLMConfig, LLMResponse } from './types'
|
||||
import { withRetry } from '@moeru/std'
|
||||
|
||||
import { config } from '../../composables/config'
|
||||
import { useLoggerer } from '../../utils/logger'
|
||||
import { useLogger } from '../../utils/logger'
|
||||
|
||||
export abstract class BaseLLMHandler {
|
||||
protected logger: Logger
|
||||
|
||||
constructor(protected config: LLMConfig) {
|
||||
this.logger = useLoggerer()
|
||||
this.logger = useLogger()
|
||||
}
|
||||
|
||||
protected async handleCompletion(
|
||||
|
||||
@@ -4,7 +4,7 @@ import type { LLMAgentOptions, MineflayerWithAgents } from './types'
|
||||
import { system } from 'neuri/openai'
|
||||
|
||||
import { config } from '../../composables/config'
|
||||
import { useLoggerer } from '../../utils/logger'
|
||||
import { useLogger } from '../../utils/logger'
|
||||
import { ChatMessageHandler } from '../mineflayer'
|
||||
import { handleChatMessage } from './chat'
|
||||
import { createAgentContainer } from './container'
|
||||
@@ -14,7 +14,7 @@ import { handleVoiceInput } from './voice'
|
||||
export function LLMAgent(options: LLMAgentOptions): MineflayerPlugin {
|
||||
return {
|
||||
async created(bot) {
|
||||
const logger = useLoggerer()
|
||||
const logger = useLogger()
|
||||
|
||||
// Create container and get required services
|
||||
const container = createAgentContainer({
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
import type { Logg } from '@guiiai/logg'
|
||||
|
||||
import type { PlanStep } from '../../agents/planning/adapter'
|
||||
import type { Logger } from '../../utils/logger'
|
||||
import type { Action } from './action'
|
||||
|
||||
import EventEmitter3 from 'eventemitter3'
|
||||
|
||||
import { useLogger } from '@guiiai/logg'
|
||||
import { useLogg } from '@guiiai/logg'
|
||||
|
||||
export type AgentType = 'action' | 'memory' | 'planning' | 'chat'
|
||||
|
||||
@@ -61,7 +62,7 @@ export abstract class AbstractAgent extends EventEmitter3 implements BaseAgent {
|
||||
public readonly name: string
|
||||
|
||||
protected initialized: boolean
|
||||
protected logger: Logger
|
||||
protected logger: Logg
|
||||
// protected actionManager: ReturnType<typeof useActionManager>
|
||||
// protected conversationStore: ReturnType<typeof useConversationStore>
|
||||
|
||||
@@ -71,7 +72,7 @@ export abstract class AbstractAgent extends EventEmitter3 implements BaseAgent {
|
||||
this.type = config.type
|
||||
this.name = `${this.type}-agent`
|
||||
this.initialized = false
|
||||
this.logger = useLogger(this.name).useGlobalConfig()
|
||||
this.logger = useLogg(this.name).useGlobalConfig()
|
||||
|
||||
// Initialize managers
|
||||
// this.actionManager = useActionManager(this)
|
||||
|
||||
@@ -2,14 +2,14 @@ import type { Logg } from '@guiiai/logg'
|
||||
|
||||
import type { Handler } from './types'
|
||||
|
||||
import { useLoggerer } from '../../utils/logger'
|
||||
import { useLogger } from '../../utils/logger'
|
||||
|
||||
export class Components {
|
||||
private components: Map<string, Handler> = new Map()
|
||||
private logger: Logg
|
||||
|
||||
constructor() {
|
||||
this.logger = useLoggerer()
|
||||
this.logger = useLogger()
|
||||
}
|
||||
|
||||
register(componentName: string, component: Handler) {
|
||||
|
||||
@@ -8,7 +8,7 @@ import type { EventHandlers, EventsHandler } from './types'
|
||||
import EventEmitter from 'eventemitter3'
|
||||
import mineflayer from 'mineflayer'
|
||||
|
||||
import { useLogger } from '@guiiai/logg'
|
||||
import { useLogg } from '@guiiai/logg'
|
||||
|
||||
import { parseCommand } from './command'
|
||||
import { Components } from './components'
|
||||
@@ -45,7 +45,7 @@ export class Mineflayer extends EventEmitter<EventHandlers> {
|
||||
this.options = options
|
||||
this.bot = mineflayer.createBot(options.botConfig)
|
||||
this.username = options.botConfig.username
|
||||
this.logger = useLogger(`Bot:${this.username}`).useGlobalConfig()
|
||||
this.logger = useLogg(`Bot:${this.username}`).useGlobalConfig()
|
||||
|
||||
this.on('interrupt', () => {
|
||||
this.logger.log('Interrupted')
|
||||
|
||||
@@ -14,7 +14,7 @@ import { config, initEnv } from './composables/config'
|
||||
import { createNeuriAgent } from './composables/neuri'
|
||||
import { LLMAgent } from './libs/llm-agent'
|
||||
import { wrapPlugin } from './libs/mineflayer'
|
||||
import { initLogger, useLoggerer } from './utils/logger'
|
||||
import { initLogger, useLogger } from './utils/logger'
|
||||
|
||||
async function main() {
|
||||
initLogger() // todo: save logs to file
|
||||
@@ -49,6 +49,6 @@ async function main() {
|
||||
}
|
||||
|
||||
main().catch((err: Error) => {
|
||||
useLoggerer().errorWithError('Fatal error', err)
|
||||
useLogger().errorWithError('Fatal error', err)
|
||||
exit(1)
|
||||
})
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import type { MineflayerPlugin } from '../libs/mineflayer/plugin'
|
||||
|
||||
import { ChatMessageHandler } from '../libs/mineflayer/message'
|
||||
import { useLoggerer } from '../utils/logger'
|
||||
import { useLogger } from '../utils/logger'
|
||||
|
||||
export function Echo(): MineflayerPlugin {
|
||||
const logger = useLoggerer()
|
||||
const logger = useLogger()
|
||||
|
||||
return {
|
||||
spawned(mineflayer) {
|
||||
|
||||
@@ -2,10 +2,10 @@ import type { MineflayerPlugin } from '../libs/mineflayer/plugin'
|
||||
|
||||
import pathfinderModel from 'mineflayer-pathfinder'
|
||||
|
||||
import { useLoggerer } from '../utils/logger'
|
||||
import { useLogger } from '../utils/logger'
|
||||
|
||||
export function FollowCommand(options?: { rangeGoal: number }): MineflayerPlugin {
|
||||
const logger = useLoggerer()
|
||||
const logger = useLogger()
|
||||
const { goals, Movements } = pathfinderModel
|
||||
|
||||
return {
|
||||
|
||||
@@ -3,14 +3,14 @@ import type { MineflayerPlugin } from '../libs/mineflayer/plugin'
|
||||
|
||||
import pathfinderModel from 'mineflayer-pathfinder'
|
||||
|
||||
import { useLoggerer } from '../utils/logger'
|
||||
import { useLogger } from '../utils/logger'
|
||||
|
||||
const { goals, Movements } = pathfinderModel
|
||||
|
||||
export function PathFinder(options?: { rangeGoal: number }): MineflayerPlugin {
|
||||
return {
|
||||
created(bot) {
|
||||
const logger = useLoggerer()
|
||||
const logger = useLogger()
|
||||
|
||||
let defaultMove: any
|
||||
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import type { MineflayerPlugin } from '../libs/mineflayer/plugin'
|
||||
|
||||
import { useLoggerer } from '../utils/logger'
|
||||
import { useLogger } from '../utils/logger'
|
||||
|
||||
export function Status(): MineflayerPlugin {
|
||||
return {
|
||||
created(bot) {
|
||||
const logger = useLoggerer()
|
||||
const logger = useLogger()
|
||||
logger.log('Loading status component')
|
||||
|
||||
bot.onCommand('status', () => {
|
||||
|
||||
@@ -4,13 +4,13 @@ import type { Mineflayer } from '../../libs/mineflayer'
|
||||
|
||||
import pathfinder from 'mineflayer-pathfinder'
|
||||
|
||||
import { useLoggerer } from '../../utils/logger'
|
||||
import { useLogger } from '../../utils/logger'
|
||||
import { breakBlockAt } from '../blocks'
|
||||
import { getNearestBlocks } from '../world'
|
||||
import { ensurePickaxe } from './ensure'
|
||||
import { pickupNearbyItems } from './world-interactions'
|
||||
|
||||
const logger = useLoggerer()
|
||||
const logger = useLogger()
|
||||
|
||||
function isMessagable(err: unknown): err is { message: string } {
|
||||
return (err instanceof Error || (typeof err === 'object' && !!err && 'message' in err && typeof err.message === 'string'))
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import type { Mineflayer } from '../../libs/mineflayer'
|
||||
|
||||
import { useLoggerer } from '../../utils/logger'
|
||||
import { useLogger } from '../../utils/logger'
|
||||
import { getItemId } from '../../utils/mcdata'
|
||||
import { craftRecipe } from '../crafting'
|
||||
import { moveAway } from '../movement'
|
||||
@@ -11,7 +11,7 @@ import { getItemCount } from './inventory'
|
||||
// Constants for crafting and gathering
|
||||
const PLANKS_PER_LOG = 4
|
||||
const STICKS_PER_PLANK = 2
|
||||
const logger = useLoggerer()
|
||||
const logger = useLogger()
|
||||
|
||||
// Helper function to ensure a crafting table
|
||||
export async function ensureCraftingTable(mineflayer: Mineflayer): Promise<boolean> {
|
||||
|
||||
@@ -2,13 +2,13 @@ import type { Mineflayer } from '../../libs/mineflayer'
|
||||
|
||||
import { sleep } from '@moeru/std'
|
||||
|
||||
import { useLoggerer } from '../../utils/logger'
|
||||
import { useLogger } from '../../utils/logger'
|
||||
import { breakBlockAt } from '../blocks'
|
||||
import { goToPosition, moveAway } from '../movement'
|
||||
import { getNearestBlocks } from '../world'
|
||||
import { pickupNearbyItems } from './world-interactions'
|
||||
|
||||
const logger = useLoggerer()
|
||||
const logger = useLogger()
|
||||
|
||||
/**
|
||||
* Gather wood blocks nearby to collect logs.
|
||||
|
||||
@@ -2,11 +2,11 @@ import type { Item } from 'prismarine-item'
|
||||
|
||||
import type { Mineflayer } from '../../libs/mineflayer'
|
||||
|
||||
import { useLoggerer } from '../../utils/logger'
|
||||
import { useLogger } from '../../utils/logger'
|
||||
import { goToPlayer, goToPosition } from '../movement'
|
||||
import { getNearestBlock } from '../world'
|
||||
|
||||
const logger = useLoggerer()
|
||||
const logger = useLogger()
|
||||
|
||||
/**
|
||||
* Equip an item from the bot's inventory.
|
||||
|
||||
@@ -8,11 +8,11 @@ import pathfinder from 'mineflayer-pathfinder'
|
||||
import { sleep } from '@moeru/std'
|
||||
import { Vec3 } from 'vec3'
|
||||
|
||||
import { useLoggerer } from '../../utils/logger'
|
||||
import { useLogger } from '../../utils/logger'
|
||||
import { getNearestBlock, makeItem } from '../../utils/mcdata'
|
||||
import { goToPosition } from '../movement'
|
||||
|
||||
const logger = useLoggerer()
|
||||
const logger = useLogger()
|
||||
|
||||
export async function placeBlock(
|
||||
mineflayer: Mineflayer,
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import type { Mineflayer } from '../libs/mineflayer'
|
||||
|
||||
import { useLoggerer } from '../utils/logger'
|
||||
import { useLogger } from '../utils/logger'
|
||||
|
||||
const logger = useLoggerer()
|
||||
const logger = useLogger()
|
||||
|
||||
/**
|
||||
* Log a message to the context's output buffer
|
||||
|
||||
@@ -4,14 +4,14 @@ import type { Recipe } from 'prismarine-recipe'
|
||||
|
||||
import type { Mineflayer } from '../libs/mineflayer'
|
||||
|
||||
import { useLoggerer } from '../utils/logger'
|
||||
import { useLogger } from '../utils/logger'
|
||||
import { getItemId, getItemName } from '../utils/mcdata'
|
||||
import { ensureCraftingTable } from './actions/ensure'
|
||||
import { collectBlock, placeBlock } from './blocks'
|
||||
import { goToNearestBlock, goToPosition, moveAway } from './movement'
|
||||
import { getInventoryCounts, getNearestBlock, getNearestFreeSpace } from './world'
|
||||
|
||||
const logger = useLoggerer()
|
||||
const logger = useLogger()
|
||||
|
||||
/*
|
||||
Possible Scenarios:
|
||||
|
||||
@@ -8,11 +8,11 @@ import { sleep } from '@moeru/std'
|
||||
import { randomInt } from 'es-toolkit'
|
||||
import { Vec3 } from 'vec3'
|
||||
|
||||
import { useLoggerer } from '../utils/logger'
|
||||
import { useLogger } from '../utils/logger'
|
||||
import { log } from './base'
|
||||
import { getNearestBlock, getNearestEntityWhere } from './world'
|
||||
|
||||
const logger = useLoggerer()
|
||||
const logger = useLogger()
|
||||
const { goals, Movements } = pathfinder
|
||||
|
||||
export async function goToPosition(
|
||||
|
||||
@@ -1,12 +1,10 @@
|
||||
import { Format, LogLevel, setGlobalFormat, setGlobalLogLevel, useLogger } from '@guiiai/logg'
|
||||
|
||||
export type Logger = ReturnType<typeof useLogger>
|
||||
import { Format, LogLevel, setGlobalFormat, setGlobalLogLevel, useLogg } from '@guiiai/logg'
|
||||
|
||||
export function initLogger() {
|
||||
setGlobalLogLevel(LogLevel.Debug)
|
||||
setGlobalFormat(Format.Pretty)
|
||||
|
||||
const logger = useLogger('logger').useGlobalConfig()
|
||||
const logger = useLogg('logger').useGlobalConfig()
|
||||
logger.log('Logger initialized')
|
||||
}
|
||||
|
||||
@@ -14,7 +12,7 @@ export function initLogger() {
|
||||
* Get logger instance with directory name and filename
|
||||
* @returns logger instance configured with "directoryName/filename"
|
||||
*/
|
||||
export function useLoggerer() {
|
||||
export function useLogger() {
|
||||
const stack = new Error('logger').stack
|
||||
const caller = stack?.split('\n')[2]
|
||||
|
||||
@@ -23,5 +21,5 @@ export function useLoggerer() {
|
||||
const dirName = match?.[1] || 'unknown'
|
||||
const fileName = match?.[2] || 'unknown'
|
||||
|
||||
return useLogger(`${dirName}/${fileName}`).useGlobalConfig()
|
||||
return useLogg(`${dirName}/${fileName}`).useGlobalConfig()
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@ import type { BotContext, ReadUnreadMessagesAction } from '../../../../types'
|
||||
|
||||
import { env } from 'node:process'
|
||||
|
||||
import { useLogger } from '@guiiai/logg'
|
||||
import { useLogg } from '@guiiai/logg'
|
||||
import { withRetry } from '@moeru/std'
|
||||
import { trace } from '@opentelemetry/api'
|
||||
import { embed } from '@xsai/embed'
|
||||
@@ -25,7 +25,7 @@ export async function readMessage(
|
||||
break?: boolean
|
||||
result: string
|
||||
}> {
|
||||
const logger = useLogger('readMessage').useGlobalConfig()
|
||||
const logger = useLogg('readMessage').useGlobalConfig()
|
||||
const tracer = trace.getTracer('airi.telegram.bot')
|
||||
|
||||
return await tracer.startActiveSpan('telegram.module.read_message', async (span) => {
|
||||
|
||||
@@ -5,7 +5,7 @@ import type { BotContext, ChatContext } from '../../../../types'
|
||||
|
||||
import { env } from 'node:process'
|
||||
|
||||
import { useLogger } from '@guiiai/logg'
|
||||
import { useLogg } from '@guiiai/logg'
|
||||
import { sleep } from '@moeru/std'
|
||||
import { generateText } from '@xsai/generate-text'
|
||||
import { message } from '@xsai/utils-chat'
|
||||
@@ -18,7 +18,7 @@ import { messageSplit } from '../../../../prompts'
|
||||
import { cancellable } from '../../../../utils/promise'
|
||||
|
||||
export function parseMayStructuredMessage(responseText: string) {
|
||||
const logger = useLogger('parseMayStructuredMessage').useGlobalConfig()
|
||||
const logger = useLogg('parseMayStructuredMessage').useGlobalConfig()
|
||||
|
||||
// eslint-disable-next-line regexp/no-super-linear-backtracking, regexp/optimal-quantifier-concatenation
|
||||
const result = /^\{(("?)*.*\s*)*\}$/mu.exec(responseText)
|
||||
@@ -41,7 +41,7 @@ export async function sendMessage(
|
||||
groupId: string,
|
||||
abortController: AbortController,
|
||||
) {
|
||||
const logger = useLogger('imagineAnAction').useGlobalConfig()
|
||||
const logger = useLogg('imagineAnAction').useGlobalConfig()
|
||||
|
||||
const chat = (await listJoinedChats()).find((chat) => {
|
||||
return chat.chat_id === groupId
|
||||
|
||||
@@ -5,7 +5,7 @@ import type { Action, BotContext, ChatContext, ExtendedContext } from '../../typ
|
||||
|
||||
import { env } from 'node:process'
|
||||
|
||||
import { useLogger } from '@guiiai/logg'
|
||||
import { useLogg } from '@guiiai/logg'
|
||||
import { sleep } from '@moeru/std'
|
||||
import { message } from '@xsai/utils-chat'
|
||||
import { Bot } from 'grammy'
|
||||
@@ -460,7 +460,7 @@ function ensureChatContext(botCtx: BotContext, chatId: string): ChatContext {
|
||||
}
|
||||
|
||||
export async function startTelegramBot() {
|
||||
const log = useLogger('Bot').useGlobalConfig()
|
||||
const log = useLogg('Bot').useGlobalConfig()
|
||||
|
||||
const telegramBot = new Bot<ExtendedContext>(env.TELEGRAM_BOT_TOKEN!)
|
||||
telegramBot.errorHandler = async err => log.withError(err).log('Error occurred')
|
||||
@@ -477,7 +477,7 @@ export async function startTelegramBot() {
|
||||
return
|
||||
}
|
||||
|
||||
const logger = useLogger('addStickerPack').useGlobalConfig()
|
||||
const logger = useLogg('addStickerPack').useGlobalConfig()
|
||||
|
||||
const repliedSticker = ctx.message.reply_to_message.sticker
|
||||
const stickerSet = await telegramBot.api.getStickerSet(repliedSticker.set_name)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import process, { env } from 'node:process'
|
||||
|
||||
import { Format, LogLevel, setGlobalFormat, setGlobalLogLevel, useLogger } from '@guiiai/logg'
|
||||
import { Format, LogLevel, setGlobalFormat, setGlobalLogLevel, useLogg } from '@guiiai/logg'
|
||||
import { OTLPMetricExporter } from '@opentelemetry/exporter-metrics-otlp-proto'
|
||||
import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-proto'
|
||||
import { resourceFromAttributes } from '@opentelemetry/resources'
|
||||
@@ -42,7 +42,7 @@ async function main() {
|
||||
}
|
||||
|
||||
process.on('unhandledRejection', (err) => {
|
||||
const log = useLogger('UnhandledRejection').useGlobalConfig()
|
||||
const log = useLogg('UnhandledRejection').useGlobalConfig()
|
||||
log
|
||||
.withError(err)
|
||||
.withField('cause', (err as any).cause)
|
||||
|
||||
@@ -6,7 +6,7 @@ import type { Action } from '../types'
|
||||
|
||||
import { env } from 'node:process'
|
||||
|
||||
import { Format, useLogger } from '@guiiai/logg'
|
||||
import { Format, useLogg } from '@guiiai/logg'
|
||||
import { trace } from '@opentelemetry/api'
|
||||
import { generateText } from '@xsai/generate-text'
|
||||
import { message } from '@xsai/utils-chat'
|
||||
@@ -25,7 +25,7 @@ export async function imagineAnAction(
|
||||
incomingMessages?: Message[]
|
||||
},
|
||||
): Promise<Action | undefined> {
|
||||
const logger = useLogger('imagineAnAction').useGlobalConfig()
|
||||
const logger = useLogg('imagineAnAction').useGlobalConfig()
|
||||
const tracer = trace.getTracer('airi.telegram.bot')
|
||||
|
||||
return await tracer.startActiveSpan('telegram.module.generate_agent_action.generate', async (s) => {
|
||||
|
||||
@@ -13,7 +13,7 @@ import ffmpegInstaller from '@ffmpeg-installer/ffmpeg'
|
||||
import ffmpeg from 'fluent-ffmpeg'
|
||||
import Sharp from 'sharp'
|
||||
|
||||
import { useLogger } from '@guiiai/logg'
|
||||
import { useLogg } from '@guiiai/logg'
|
||||
import { generateText } from '@xsai/generate-text'
|
||||
import { message } from '@xsai/utils-chat'
|
||||
|
||||
@@ -48,7 +48,7 @@ async function extractFrames(inputFilePath, outputDir, frameRate = 5) {
|
||||
}
|
||||
|
||||
export async function interpretAnimatedSticker(bot: Bot, msg: Message, sticker: Sticker) {
|
||||
const logger = useLogger('interpretAnimatedSticker')
|
||||
const logger = useLogg('interpretAnimatedSticker')
|
||||
.useGlobalConfig()
|
||||
.withField('sticker_id', sticker.file_id)
|
||||
.withField('sticker_emoji', sticker.emoji)
|
||||
|
||||
@@ -7,7 +7,7 @@ import { env } from 'node:process'
|
||||
|
||||
import Sharp from 'sharp'
|
||||
|
||||
import { useLogger } from '@guiiai/logg'
|
||||
import { useLogg } from '@guiiai/logg'
|
||||
import { embed } from '@xsai/embed'
|
||||
import { generateText } from '@xsai/generate-text'
|
||||
import { message } from '@xsai/utils-chat'
|
||||
@@ -17,7 +17,7 @@ import { div, span } from '../prompts/utils'
|
||||
import { interpretAnimatedSticker } from './animated-sticker'
|
||||
|
||||
export async function interpretSticker(bot: Bot, msg: Message, sticker: Sticker) {
|
||||
const logger = useLogger('interpretSticker').useGlobalConfig()
|
||||
const logger = useLogg('interpretSticker').useGlobalConfig()
|
||||
|
||||
if (sticker.is_animated || sticker.is_video) {
|
||||
logger
|
||||
|
||||
@@ -4,7 +4,7 @@ import type { Message, UserFromGetMe } from 'grammy/types'
|
||||
|
||||
import { env } from 'node:process'
|
||||
|
||||
import { useLogger } from '@guiiai/logg'
|
||||
import { useLogg } from '@guiiai/logg'
|
||||
import { embed } from '@xsai/embed'
|
||||
import { and, cosineDistance, desc, eq, gt, inArray, lt, ne, notInArray, sql } from 'drizzle-orm'
|
||||
|
||||
@@ -87,7 +87,7 @@ export async function findLastNMessages(chatId: string, n: number) {
|
||||
export async function findRelevantMessages(botId: string, chatId: string, unreadHistoryMessagesEmbedding: { embedding: number[] }[], excludeMessageIds: string[] = []) {
|
||||
const db = useDrizzle()
|
||||
const contextWindowSize = 5 // Number of messages to include before and after
|
||||
const logger = useLogger('findRelevantMessages').useGlobalConfig().withField('chatId', chatId)
|
||||
const logger = useLogg('findRelevantMessages').useGlobalConfig().withField('chatId', chatId)
|
||||
|
||||
logger.withField('context_window_size', contextWindowSize).log('Querying relevant chat messages...')
|
||||
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
import type { Logg } from '@guiiai/logg'
|
||||
|
||||
import path from 'node:path'
|
||||
|
||||
import { createLogg, Format, LogLevel, setGlobalFormat, setGlobalLogLevel } from '@guiiai/logg'
|
||||
import { Format, LogLevel, setGlobalFormat, setGlobalLogLevel, useLogg } from '@guiiai/logg'
|
||||
|
||||
import { useConfigManager } from '../config'
|
||||
|
||||
@@ -44,9 +46,9 @@ export function initLogger(): void {
|
||||
* Get logger instance with directory name and filename
|
||||
* @returns logger instance configured with "directoryName/filename"
|
||||
*/
|
||||
export function useLoggerer(name?: string): ReturnType<typeof createLogg> {
|
||||
export function useLogger(name?: string): Logg {
|
||||
if (name)
|
||||
return createLogg(name).useGlobalConfig()
|
||||
return useLogg(name).useGlobalConfig()
|
||||
|
||||
const stack = new Error('logger').stack
|
||||
const caller = stack?.split('\n')[2]
|
||||
@@ -57,17 +59,17 @@ export function useLoggerer(name?: string): ReturnType<typeof createLogg> {
|
||||
const fileName = match?.[2] || path.basename(__filename, '.ts')
|
||||
const lineNumber = match?.[3] || '?'
|
||||
|
||||
return createLogg(`${dirName}/${fileName}:${lineNumber}`).useGlobalConfig()
|
||||
return useLogg(`${dirName}/${fileName}:${lineNumber}`).useGlobalConfig()
|
||||
}
|
||||
|
||||
// Create pre-configured loggers for various services
|
||||
export const logger = {
|
||||
auth: useLoggerer('auth-service'),
|
||||
timeline: useLoggerer('timeline-service'),
|
||||
browser: useLoggerer('browser-adapter'),
|
||||
airi: useLoggerer('airi-adapter'),
|
||||
mcp: useLoggerer('mcp-adapter'),
|
||||
parser: useLoggerer('parser'),
|
||||
main: useLoggerer('twitter-service'),
|
||||
config: useLoggerer('config'),
|
||||
auth: useLogger('auth-service'),
|
||||
timeline: useLogger('timeline-service'),
|
||||
browser: useLogger('browser-adapter'),
|
||||
airi: useLogger('airi-adapter'),
|
||||
mcp: useLogger('mcp-adapter'),
|
||||
parser: useLogger('parser'),
|
||||
main: useLogger('twitter-service'),
|
||||
config: useLogger('config'),
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user