Skip to content

Commit

Permalink
feat: register hook supports
Browse files Browse the repository at this point in the history
  • Loading branch information
snowyu committed Jun 28, 2024
1 parent 26494c9 commit c8c12da
Show file tree
Hide file tree
Showing 7 changed files with 21 additions and 9 deletions.
3 changes: 3 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,9 @@
"dirname": "ai",
"commands": "./dist/oclif/commands",
"helpClass": "./dist/oclif/lib/help",
"hooks": {
"init_tools": "./dist/oclif/hooks/init-tools"
},
"plugins": [
"@oclif/plugin-help",
"@oclif/plugin-plugins",
Expand Down
4 changes: 2 additions & 2 deletions src/lib/run-script.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import { ConfigFile, getMultiLevelExtname, parseJsJson, wait } from '@isdk/ai-to
import { AIScriptServer, LogLevel, LogLevelMap } from '@isdk/ai-tool-agent'
import { detectTextLanguage as detectLang } from '@isdk/detect-text-language'
import { prompt, setHistoryStore, HistoryStore } from './prompt.js'
import { initTools } from './init-tools.js'
// import { initTools } from './init-tools.js'
import { ux } from '@oclif/core'

class AIScriptEx extends AIScriptServer {
Expand Down Expand Up @@ -74,7 +74,7 @@ function renameOldFile(filename: string) {
}
}
export async function runScript(filename: string, options: IRunScriptOptions) {
initTools(options)
// initTools(options)

const { logLevel: level, interactive, stream } = options

Expand Down
3 changes: 1 addition & 2 deletions src/oclif/commands/brain/download.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import path from 'path'
import enquier from 'enquirer'
import { Args, Flags } from '@oclif/core'
import { initTools } from '../../../lib/init-tools.js'
import { AICommand } from '../../lib/ai-command.js'
import { showBanner } from '../../lib/help.js'
import { downloadBrain, getQuantsFromBrain, listBrains } from '../../../lib/brain.js'
Expand Down Expand Up @@ -55,7 +54,7 @@ export default class DownloadBrainCommand extends AICommand {
const isJson = this.jsonEnabled()
const {args, flags} = opts
const userConfig = this.loadConfig(flags.config, opts)
initTools(userConfig)
this.config.runHook('init_tools', {id: 'brain:download', userConfig})

process.on('SIGINT', ()=>{
process.exit(0)
Expand Down
4 changes: 2 additions & 2 deletions src/oclif/commands/brain/index.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import { Args, Flags } from '@oclif/core'
import { initTools } from '../../../lib/init-tools.js'
import { AICommand } from '../../lib/ai-command.js'
import { showBanner } from '../../lib/help.js'
import { parseJsJson } from '@isdk/ai-tool'
Expand Down Expand Up @@ -53,7 +52,8 @@ export default class Brain extends AICommand {
const isJson = this.jsonEnabled()
const {args, flags} = opts
const userConfig = this.loadConfig(flags.config, opts)
initTools(userConfig)
this.config.runHook('init_tools', {id: 'brain', userConfig})

if (flags.refresh) {
upgradeBrains()
}
Expand Down
3 changes: 1 addition & 2 deletions src/oclif/commands/brain/list.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
// import util from 'util'
import { parseJsJson } from '@isdk/ai-tool'
import { listBrains, printBrains, upgradeBrains } from '../../../lib/brain.js'
import { initTools } from '../../../lib/init-tools.js'
import { AICommand } from '../../lib/ai-command.js'
import { showBanner } from '../../lib/help.js'
import { Args, Flags } from '@oclif/core'
Expand Down Expand Up @@ -58,7 +57,7 @@ export default class AIBrainListCommand extends AICommand {
const isJson = this.jsonEnabled()
const {args, flags} = opts
const userConfig = this.loadConfig(flags.config, opts)
initTools(userConfig)
this.config.runHook('init_tools', {id: 'brain', userConfig})

if (flags.refresh) {
upgradeBrains()
Expand Down
3 changes: 2 additions & 1 deletion src/oclif/commands/run/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ export default class RunScript extends AICommand {
static description = 'Execute ai-agent script file and return result. with `-i` to interactive.'

static examples = [
`<%= config.bin %> <%= command.id %> -f ./script.yaml "{content: 'hello world'}"
`<%= config.bin %> <%= command.id %> -f ./script.yaml "{content: 'hello world'}" -l info
┌────────────────────
│[info]:Start Script: ...
`,
Expand Down Expand Up @@ -65,6 +65,7 @@ export default class RunScript extends AICommand {
}

try {
this.config.runHook('init_tools', {id: 'run', userConfig})
let result = await runScript(script, userConfig)
if (LogLevelMap[userConfig.logLevel] >= LogLevelMap.info && result?.content) {
result = result.content
Expand Down
10 changes: 10 additions & 0 deletions src/oclif/hooks/init-tools.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import type { Hook, Config } from '@oclif/core'

import { initTools as _initTools } from '../../lib/init-tools.js'

export async function init_tools(this: Hook.Context, options: {userConfig: any, config: Config}) {
_initTools(options.userConfig)
this.config.runHook('register', {...options})
}

export default init_tools

0 comments on commit c8c12da

Please sign in to comment.