import { CNBCore, CNBCoreOptions } from "./cnb-core.ts"; import { Workspace } from "./workspace.ts"; import { KnowledgeBase } from "./knowledge/index.ts"; import { Repo } from "./repo/index.ts"; import { User } from "./user/index.ts"; import { Build } from "./build/index.ts"; import { Issue } from "./issue/index.ts"; import { Mission } from "./mission/index.ts"; import { AiBase } from "./ai/index.ts"; type CNBOptions = CNBCoreOptions<{ group?: string; }>; export class CNB extends CNBCore { workspace!: Workspace; knowledgeBase!: KnowledgeBase; repo!: Repo; user!: User; build!: Build; issue!: Issue; mission!: Mission; ai!: AiBase; group!: string; constructor(options: CNBOptions) { super({ token: options.token, cookie: options.cookie, cnb: options.cnb }); this.init(options); } init(cnbOptions?: CNBOptions) { const token = this.token; const cookie = this.cookie; const options = { token, cookie }; this.workspace = new Workspace(options.token); const group = cnbOptions?.group || ''; this.knowledgeBase = new KnowledgeBase({ token: options.token, cookie: options.cookie }); this.repo = new Repo({ token: options.token, cookie: options.cookie }); this.user = new User({ token: options.token, cookie: options.cookie }); this.build = new Build({ token: options.token, cookie: options.cookie }); this.issue = new Issue({ token: options.token, cookie: options.cookie }); this.mission = new Mission({ token: options.token, cookie: options.cookie }); this.ai = new AiBase({ token: options.token, cookie: options.cookie }); this.group = group; } setGroup(group: string) { this.group = group; } setToken(token: string) { this.token = token; this.knowledgeBase.token = token; this.repo.token = token; this.user.token = token; this.build.token = token; this.issue.token = token; this.mission.token = token; } setCookie(cookie: string) { this.cookie = cookie; this.knowledgeBase.cookie = cookie; this.repo.cookie = cookie; this.user.cookie = cookie; this.build.cookie = cookie; this.issue.cookie = cookie; this.mission.cookie = cookie; } } export * from './workspace.ts' export * from './cnb-core.ts' export * from './knowledge/index.ts' export * from './repo/index.ts' export * from './user/index.ts' export * from './build/index.ts' export * from './issue/index.ts' export * from './mission/index.ts' export * from './ai/index.ts'