fix: use dynamic import for session event in config.ts to avoid circular dep
This commit is contained in:
@@ -20,7 +20,6 @@ import { Installation } from "@/installation"
|
|||||||
import { ConfigMarkdown } from "./markdown"
|
import { ConfigMarkdown } from "./markdown"
|
||||||
import { existsSync } from "fs"
|
import { existsSync } from "fs"
|
||||||
import { Bus } from "@/bus"
|
import { Bus } from "@/bus"
|
||||||
import { Session } from "@/session"
|
|
||||||
|
|
||||||
export namespace Config {
|
export namespace Config {
|
||||||
const log = Log.create({ service: "config" })
|
const log = Log.create({ service: "config" })
|
||||||
@@ -233,10 +232,11 @@ export namespace Config {
|
|||||||
dot: true,
|
dot: true,
|
||||||
cwd: dir,
|
cwd: dir,
|
||||||
})) {
|
})) {
|
||||||
const md = await ConfigMarkdown.parse(item).catch((err) => {
|
const md = await ConfigMarkdown.parse(item).catch(async (err) => {
|
||||||
const message = ConfigMarkdown.FrontmatterError.isInstance(err)
|
const message = ConfigMarkdown.FrontmatterError.isInstance(err)
|
||||||
? err.data.message
|
? err.data.message
|
||||||
: `Failed to parse command ${item}`
|
: `Failed to parse command ${item}`
|
||||||
|
const { Session } = await import("@/session")
|
||||||
Bus.publish(Session.Event.Error, { error: new NamedError.Unknown({ message }).toObject() })
|
Bus.publish(Session.Event.Error, { error: new NamedError.Unknown({ message }).toObject() })
|
||||||
log.error("failed to load command", { command: item, err })
|
log.error("failed to load command", { command: item, err })
|
||||||
return undefined
|
return undefined
|
||||||
@@ -272,10 +272,11 @@ export namespace Config {
|
|||||||
dot: true,
|
dot: true,
|
||||||
cwd: dir,
|
cwd: dir,
|
||||||
})) {
|
})) {
|
||||||
const md = await ConfigMarkdown.parse(item).catch((err) => {
|
const md = await ConfigMarkdown.parse(item).catch(async (err) => {
|
||||||
const message = ConfigMarkdown.FrontmatterError.isInstance(err)
|
const message = ConfigMarkdown.FrontmatterError.isInstance(err)
|
||||||
? err.data.message
|
? err.data.message
|
||||||
: `Failed to parse agent ${item}`
|
: `Failed to parse agent ${item}`
|
||||||
|
const { Session } = await import("@/session")
|
||||||
Bus.publish(Session.Event.Error, { error: new NamedError.Unknown({ message }).toObject() })
|
Bus.publish(Session.Event.Error, { error: new NamedError.Unknown({ message }).toObject() })
|
||||||
log.error("failed to load agent", { agent: item, err })
|
log.error("failed to load agent", { agent: item, err })
|
||||||
return undefined
|
return undefined
|
||||||
@@ -310,10 +311,11 @@ export namespace Config {
|
|||||||
dot: true,
|
dot: true,
|
||||||
cwd: dir,
|
cwd: dir,
|
||||||
})) {
|
})) {
|
||||||
const md = await ConfigMarkdown.parse(item).catch((err) => {
|
const md = await ConfigMarkdown.parse(item).catch(async (err) => {
|
||||||
const message = ConfigMarkdown.FrontmatterError.isInstance(err)
|
const message = ConfigMarkdown.FrontmatterError.isInstance(err)
|
||||||
? err.data.message
|
? err.data.message
|
||||||
: `Failed to parse mode ${item}`
|
: `Failed to parse mode ${item}`
|
||||||
|
const { Session } = await import("@/session")
|
||||||
Bus.publish(Session.Event.Error, { error: new NamedError.Unknown({ message }).toObject() })
|
Bus.publish(Session.Event.Error, { error: new NamedError.Unknown({ message }).toObject() })
|
||||||
log.error("failed to load mode", { mode: item, err })
|
log.error("failed to load mode", { mode: item, err })
|
||||||
return undefined
|
return undefined
|
||||||
|
|||||||
Reference in New Issue
Block a user