feat(gpt-runner-shared): move common utils and types to shared package
This commit is contained in:
4
alias.ts
4
alias.ts
@@ -10,5 +10,7 @@ export const alias: Record<string, string> = {
|
||||
'@nicepkg/gpt-runner-config': r('./packages/gpt-runner-config/src/'),
|
||||
'@nicepkg/gpt-runner-web/client': r('./packages/gpt-runner-web/client/src/'),
|
||||
'@nicepkg/gpt-runner-web/server': r('./packages/gpt-runner-web/server/src/'),
|
||||
'@nicepkg/gpt-runner-shared': r('./packages/gpt-runner-shared/src/'),
|
||||
'@nicepkg/gpt-runner-shared/browser': r('./packages/gpt-runner-shared/src/browser'),
|
||||
'@nicepkg/gpt-runner-shared/common': r('./packages/gpt-runner-shared/src/common'),
|
||||
'@nicepkg/gpt-runner-shared/node': r('./packages/gpt-runner-shared/src/node'),
|
||||
}
|
||||
|
||||
@@ -47,6 +47,7 @@
|
||||
"@rollup/pluginutils": "^5.0.2",
|
||||
"@nicepkg/gpt-runner-config": "workspace:*",
|
||||
"@nicepkg/gpt-runner-core": "workspace:*",
|
||||
"@nicepkg/gpt-runner-shared": "workspace:*",
|
||||
"cac": "^6.7.14",
|
||||
"chokidar": "^3.5.3",
|
||||
"colorette": "^2.0.20",
|
||||
@@ -56,4 +57,4 @@
|
||||
"pathe": "^1.1.0",
|
||||
"perfect-debounce": "^1.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -38,6 +38,7 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@nicepkg/gpt-runner": "workspace:*",
|
||||
"@nicepkg/gpt-runner-shared": "workspace:*",
|
||||
"unconfig": "^0.3.7"
|
||||
}
|
||||
}
|
||||
@@ -40,6 +40,7 @@
|
||||
"stub": "unbuild --stub"
|
||||
},
|
||||
"dependencies": {
|
||||
"@nicepkg/gpt-runner-shared": "workspace:*",
|
||||
"ignore": "^5.2.4",
|
||||
"langchain": "^0.0.84",
|
||||
"unconfig": "^0.3.9"
|
||||
|
||||
@@ -14,12 +14,8 @@ import {
|
||||
MessagesPlaceholder,
|
||||
SystemMessagePromptTemplate,
|
||||
} from 'langchain/prompts'
|
||||
import { ChatRole } from '../core/types'
|
||||
|
||||
export interface ChatMessage {
|
||||
name: ChatRole
|
||||
text: string
|
||||
}
|
||||
import type { ChatMessage } from '@nicepkg/gpt-runner-shared/common'
|
||||
import { ChatRole } from '@nicepkg/gpt-runner-shared/common'
|
||||
|
||||
function mapStoredMessagesToChatMessages(
|
||||
messages: ChatMessage[],
|
||||
|
||||
1
packages/gpt-runner-shared/browser.cjs
Normal file
1
packages/gpt-runner-shared/browser.cjs
Normal file
@@ -0,0 +1 @@
|
||||
module.exports = require('./dist/browser.cjs')
|
||||
1
packages/gpt-runner-shared/browser.d.ts
vendored
Normal file
1
packages/gpt-runner-shared/browser.d.ts
vendored
Normal file
@@ -0,0 +1 @@
|
||||
export * from './dist/browser'
|
||||
1
packages/gpt-runner-shared/browser.mjs
Normal file
1
packages/gpt-runner-shared/browser.mjs
Normal file
@@ -0,0 +1 @@
|
||||
export * from './dist/browser'
|
||||
19
packages/gpt-runner-shared/build.config.ts
Normal file
19
packages/gpt-runner-shared/build.config.ts
Normal file
@@ -0,0 +1,19 @@
|
||||
import { defineBuildConfig } from 'unbuild'
|
||||
|
||||
export default defineBuildConfig({
|
||||
entries: [
|
||||
'src/browser',
|
||||
'src/common',
|
||||
'src/node',
|
||||
],
|
||||
clean: true,
|
||||
declaration: true,
|
||||
externals: [
|
||||
'unconfig',
|
||||
'express',
|
||||
],
|
||||
rollup: {
|
||||
emitCJS: true,
|
||||
inlineDependencies: true,
|
||||
},
|
||||
})
|
||||
1
packages/gpt-runner-shared/common.cjs
Normal file
1
packages/gpt-runner-shared/common.cjs
Normal file
@@ -0,0 +1 @@
|
||||
module.exports = require('./dist/common.cjs')
|
||||
1
packages/gpt-runner-shared/common.d.ts
vendored
Normal file
1
packages/gpt-runner-shared/common.d.ts
vendored
Normal file
@@ -0,0 +1 @@
|
||||
export * from './dist/common'
|
||||
1
packages/gpt-runner-shared/common.mjs
Normal file
1
packages/gpt-runner-shared/common.mjs
Normal file
@@ -0,0 +1 @@
|
||||
export * from './dist/common'
|
||||
1
packages/gpt-runner-shared/node.cjs
Normal file
1
packages/gpt-runner-shared/node.cjs
Normal file
@@ -0,0 +1 @@
|
||||
module.exports = require('./dist/node.cjs')
|
||||
1
packages/gpt-runner-shared/node.d.ts
vendored
Normal file
1
packages/gpt-runner-shared/node.d.ts
vendored
Normal file
@@ -0,0 +1 @@
|
||||
export * from './dist/node'
|
||||
1
packages/gpt-runner-shared/node.mjs
Normal file
1
packages/gpt-runner-shared/node.mjs
Normal file
@@ -0,0 +1 @@
|
||||
export * from './dist/node'
|
||||
@@ -1,8 +1,62 @@
|
||||
{
|
||||
"name": "@nicepkg/gpt-runner-shared",
|
||||
"version": "0.0.1",
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"@nicepkg/gpt-runner-core": "workspace:*"
|
||||
"description": "",
|
||||
"author": "Jinming Yang <2214962083@qq.com>",
|
||||
"license": "MIT",
|
||||
"funding": "https://github.com/sponsors/2214962083",
|
||||
"homepage": "https://github.com/nicepkg/gpt-runner/tree/main/packages/gpt-runner-shared#readme",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/nicepkg/gpt-runner",
|
||||
"directory": "packages/gpt-runner-shared"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/nicepkg/gpt-runner/issues"
|
||||
},
|
||||
"keywords": [
|
||||
"gpt-runner",
|
||||
"chatgpt",
|
||||
"prompt",
|
||||
"langchain",
|
||||
"ai"
|
||||
],
|
||||
"sideEffects": false,
|
||||
"exports": {
|
||||
".": {
|
||||
"types": "./dist/common.d.ts",
|
||||
"require": "./dist/common.cjs",
|
||||
"import": "./dist/common.mjs"
|
||||
},
|
||||
"./*": "./*",
|
||||
"./browser": {
|
||||
"types": "./dist/browser.d.ts",
|
||||
"require": "./dist/browser.cjs",
|
||||
"import": "./dist/browser.mjs"
|
||||
},
|
||||
"./common": {
|
||||
"types": "./dist/common.d.ts",
|
||||
"require": "./dist/common.cjs",
|
||||
"import": "./dist/common.mjs"
|
||||
},
|
||||
"./node": {
|
||||
"types": "./dist/node.d.ts",
|
||||
"require": "./dist/node.cjs",
|
||||
"import": "./dist/node.mjs"
|
||||
}
|
||||
},
|
||||
"main": "dist/common.cjs",
|
||||
"module": "dist/common.mjs",
|
||||
"types": "dist/common.d.ts",
|
||||
"files": [
|
||||
"dist"
|
||||
],
|
||||
"scripts": {
|
||||
"build": "unbuild",
|
||||
"stub": "unbuild --stub"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/express": "^4.17.17",
|
||||
"express": "^4.18.2"
|
||||
}
|
||||
}
|
||||
}
|
||||
40
packages/gpt-runner-shared/src/browser/helpers/common.ts
Normal file
40
packages/gpt-runner-shared/src/browser/helpers/common.ts
Normal file
@@ -0,0 +1,40 @@
|
||||
export function getErrorMsg(error: any) {
|
||||
const errorMessage = String(
|
||||
(error as Error)?.message || error || '',
|
||||
)
|
||||
return errorMessage
|
||||
}
|
||||
|
||||
export function getSearchParams(val: string, url?: string): string {
|
||||
const defaultUrl = typeof window !== 'undefined' ? window.location.href : ''
|
||||
const finalUrl = url || defaultUrl || ''
|
||||
const searchParams = finalUrl.split('?')?.[1] || ''
|
||||
const params = new URLSearchParams(searchParams)
|
||||
return params.get(val) || ''
|
||||
}
|
||||
|
||||
export function addSearchParams(urlLike: string,
|
||||
searchParams: Record<string, any>) {
|
||||
const [urlBase = '', urlSearch = ''] = urlLike.split('?')
|
||||
const params = new URLSearchParams(urlSearch)
|
||||
Object.keys(searchParams).forEach((key) => {
|
||||
params.set(key, searchParams[key])
|
||||
})
|
||||
const urlSearchParams = params.toString()
|
||||
if (!urlSearchParams)
|
||||
return urlBase
|
||||
return `${urlBase}?${urlSearchParams}`
|
||||
}
|
||||
|
||||
export function removeSearchParams(urlLike: string,
|
||||
searchParamKeys: string[]) {
|
||||
const [urlBase = '', urlSearch = ''] = urlLike.split('?')
|
||||
const params = new URLSearchParams(urlSearch)
|
||||
searchParamKeys.forEach((key) => {
|
||||
params.delete(key)
|
||||
})
|
||||
const urlSearchParams = params.toString()
|
||||
if (!urlSearchParams)
|
||||
return urlBase
|
||||
return `${urlBase}?${urlSearchParams}`
|
||||
}
|
||||
1
packages/gpt-runner-shared/src/browser/helpers/index.ts
Normal file
1
packages/gpt-runner-shared/src/browser/helpers/index.ts
Normal file
@@ -0,0 +1 @@
|
||||
export * from './common'
|
||||
1
packages/gpt-runner-shared/src/browser/index.ts
Normal file
1
packages/gpt-runner-shared/src/browser/index.ts
Normal file
@@ -0,0 +1 @@
|
||||
export * from './helpers'
|
||||
54
packages/gpt-runner-shared/src/common/helpers/common.ts
Normal file
54
packages/gpt-runner-shared/src/common/helpers/common.ts
Normal file
@@ -0,0 +1,54 @@
|
||||
export function sleep(ms: number) {
|
||||
return new Promise(resolve => setTimeout(resolve, ms))
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if an object has its own property with the specified name.
|
||||
*
|
||||
* @param obj - The object to check.
|
||||
* @param prop - The name of the property to check for.
|
||||
* @returns True if the object has its own property with the specified name, false otherwise.
|
||||
*/
|
||||
export function hasOwn<T extends object, K extends keyof T>(
|
||||
obj: T,
|
||||
prop: K,
|
||||
): boolean {
|
||||
return Object.prototype.hasOwnProperty.call(obj, prop)
|
||||
}
|
||||
|
||||
export function formatSourceValue<T = any>(value: any): T {
|
||||
let result
|
||||
if (value === 'true') {
|
||||
result = true
|
||||
}
|
||||
else if (value === 'false') {
|
||||
result = false
|
||||
}
|
||||
else if (/^-?\d*\.?\d+$/.test(value)) {
|
||||
// regex pattern for matching float numbers
|
||||
result = parseFloat(value)
|
||||
}
|
||||
else if (/^-?\d+$/.test(value)) {
|
||||
// regex pattern for matching integer numbers
|
||||
result = parseInt(value, 10)
|
||||
}
|
||||
else {
|
||||
result = value
|
||||
}
|
||||
|
||||
return result as T
|
||||
}
|
||||
|
||||
export type TreeItem<T> = T & { children?: TreeItem<T>[] }
|
||||
export function travelTree<T extends TreeItem<Record<string, any>>, R extends TreeItem<Record<string, any>> = TreeItem<Record<string, any>> >(tree: T[], callback: (item: T, parent?: T) => void | R): R[] {
|
||||
const travel = (tree: T[], parent?: T) => {
|
||||
return tree.map((item) => {
|
||||
const finalItem = callback(item, parent) || item
|
||||
if (item.children)
|
||||
finalItem.children = travel(item.children as T[], item)
|
||||
|
||||
return finalItem
|
||||
})
|
||||
}
|
||||
return travel(tree) as R[]
|
||||
}
|
||||
@@ -1,3 +1,5 @@
|
||||
/* eslint-disable @typescript-eslint/prefer-ts-expect-error */
|
||||
/* eslint-disable @typescript-eslint/ban-ts-comment */
|
||||
import debug from 'debug'
|
||||
|
||||
export class Debug {
|
||||
@@ -9,6 +11,8 @@ export class Debug {
|
||||
this.label = `gpt-runner:${label}`
|
||||
debug.enable(this.label)
|
||||
this.debugger = debug(this.label)
|
||||
|
||||
// @ts-ignore
|
||||
this.debugger.useColors = true
|
||||
this.debugger.color = String(debug.selectColor(this.label))
|
||||
}
|
||||
4
packages/gpt-runner-shared/src/common/helpers/index.ts
Normal file
4
packages/gpt-runner-shared/src/common/helpers/index.ts
Normal file
@@ -0,0 +1,4 @@
|
||||
export * from './common'
|
||||
export * from './debug'
|
||||
export * from './env-config'
|
||||
export * from './is'
|
||||
2
packages/gpt-runner-shared/src/common/index.ts
Normal file
2
packages/gpt-runner-shared/src/common/index.ts
Normal file
@@ -0,0 +1,2 @@
|
||||
export * from './helpers'
|
||||
export * from './types'
|
||||
12
packages/gpt-runner-shared/src/common/types/client.ts
Normal file
12
packages/gpt-runner-shared/src/common/types/client.ts
Normal file
@@ -0,0 +1,12 @@
|
||||
import type { SingleChatMessage } from './config'
|
||||
import type { ChatMessageStatus } from './enum'
|
||||
|
||||
export interface SingleChat {
|
||||
id: string
|
||||
title: string
|
||||
inputtingPrompt: string
|
||||
systemPrompt: string
|
||||
temperature: number
|
||||
messages: SingleChatMessage[]
|
||||
status: ChatMessageStatus
|
||||
}
|
||||
1
packages/gpt-runner-shared/src/common/types/common.ts
Normal file
1
packages/gpt-runner-shared/src/common/types/common.ts
Normal file
@@ -0,0 +1 @@
|
||||
export type Rule = string | RegExp | ((filePath: string) => boolean)
|
||||
87
packages/gpt-runner-shared/src/common/types/config.ts
Normal file
87
packages/gpt-runner-shared/src/common/types/config.ts
Normal file
@@ -0,0 +1,87 @@
|
||||
import type { Rule } from './common'
|
||||
import type { ChatRole } from './enum'
|
||||
|
||||
export interface OpenaiConfig {
|
||||
openaiKey: string
|
||||
model?: string
|
||||
temperature?: number
|
||||
maxTokens?: number
|
||||
topP?: number
|
||||
topK?: number
|
||||
frequencyPenalty?: number
|
||||
presencePenalty?: number
|
||||
}
|
||||
|
||||
export interface UserConfig {
|
||||
mode?: 'openai'
|
||||
|
||||
openai?: {
|
||||
openaiKey: string
|
||||
model?: string
|
||||
temperature?: number
|
||||
maxTokens?: number
|
||||
topP?: number
|
||||
topK?: number
|
||||
frequencyPenalty?: number
|
||||
presencePenalty?: number
|
||||
}
|
||||
|
||||
rootPath?: string
|
||||
includes?: Rule[]
|
||||
excludes?: Rule[]
|
||||
exts?: string[]
|
||||
respectGitignore?: boolean
|
||||
}
|
||||
|
||||
export interface SingleChatMessage {
|
||||
name: ChatRole
|
||||
text: string
|
||||
}
|
||||
|
||||
export interface SingleFileConfig {
|
||||
mode?: 'openai'
|
||||
openai?: Partial<OpenaiConfig>
|
||||
title?: string
|
||||
userPrompt?: string
|
||||
systemPrompt?: string
|
||||
messages?: SingleChatMessage[]
|
||||
forms?: Record<string, FormItemConfig & {
|
||||
name: string
|
||||
}>
|
||||
}
|
||||
|
||||
export interface FormOption {
|
||||
label?: string
|
||||
value: string
|
||||
}
|
||||
|
||||
export interface FormInputConfig {
|
||||
type: 'input'
|
||||
defaultValue?: string
|
||||
}
|
||||
|
||||
export interface FormTextareaConfig {
|
||||
type: 'textarea'
|
||||
defaultValue?: string
|
||||
row?: number
|
||||
}
|
||||
|
||||
export interface FormSelectConfig {
|
||||
type: 'select'
|
||||
defaultValue?: string
|
||||
options: FormOption[]
|
||||
}
|
||||
|
||||
export interface FormCheckboxGroupConfig {
|
||||
type: 'checkbox-group'
|
||||
defaultValue?: string[]
|
||||
options: FormOption[]
|
||||
}
|
||||
|
||||
export interface FormRadioGroupConfig {
|
||||
type: 'radio-group'
|
||||
defaultValue?: string
|
||||
options: FormOption[]
|
||||
}
|
||||
|
||||
export type FormItemConfig = FormInputConfig | FormTextareaConfig | FormSelectConfig | FormCheckboxGroupConfig | FormRadioGroupConfig
|
||||
16
packages/gpt-runner-shared/src/common/types/enum.ts
Normal file
16
packages/gpt-runner-shared/src/common/types/enum.ts
Normal file
@@ -0,0 +1,16 @@
|
||||
export enum ChatRole {
|
||||
User = 'user',
|
||||
ASSISTANT = 'assistant',
|
||||
SYSTEM = 'system',
|
||||
}
|
||||
|
||||
export enum ChatMessageStatus {
|
||||
Idle = 'idle',
|
||||
Pending = 'pending',
|
||||
Success = 'success',
|
||||
Error = 'error',
|
||||
}
|
||||
|
||||
export const enum ClientEventName {
|
||||
AddMessageAction = 'add-message-action',
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
import type { ClientEventName } from './enum'
|
||||
|
||||
export interface ClientEventData {
|
||||
[ClientEventName.AddMessageAction]: void
|
||||
}
|
||||
6
packages/gpt-runner-shared/src/common/types/index.ts
Normal file
6
packages/gpt-runner-shared/src/common/types/index.ts
Normal file
@@ -0,0 +1,6 @@
|
||||
export * from './client'
|
||||
export * from './common'
|
||||
export * from './config'
|
||||
export * from './enum'
|
||||
export * from './eventemitter'
|
||||
export * from './server'
|
||||
24
packages/gpt-runner-shared/src/common/types/server.ts
Normal file
24
packages/gpt-runner-shared/src/common/types/server.ts
Normal file
@@ -0,0 +1,24 @@
|
||||
import type { ChatRole } from './enum'
|
||||
|
||||
export interface BaseResponse<T = any> {
|
||||
type: 'Success' | 'Fail'
|
||||
status?: number
|
||||
message?: string
|
||||
data?: T
|
||||
}
|
||||
|
||||
export type SuccessResponse<T = any> = Omit<BaseResponse<T>, 'type'> & { type: 'Success' }
|
||||
export type FailResponse<T = any> = Omit<BaseResponse<T>, 'type'> & { type: 'Fail' }
|
||||
|
||||
export interface ChatMessage {
|
||||
name: ChatRole
|
||||
text: string
|
||||
}
|
||||
|
||||
export interface ChatStreamReqParams {
|
||||
messages: ChatMessage[]
|
||||
prompt: string
|
||||
openaiKey?: string
|
||||
systemPrompt?: string
|
||||
temperature?: number
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
export const pkg = 'shared'
|
||||
1
packages/gpt-runner-shared/src/node/helpers/index.ts
Normal file
1
packages/gpt-runner-shared/src/node/helpers/index.ts
Normal file
@@ -0,0 +1 @@
|
||||
export * from './request'
|
||||
1
packages/gpt-runner-shared/src/node/index.ts
Normal file
1
packages/gpt-runner-shared/src/node/index.ts
Normal file
@@ -0,0 +1 @@
|
||||
export * from './helpers'
|
||||
20
packages/gpt-runner-shared/tsconfig.json
Normal file
20
packages/gpt-runner-shared/tsconfig.json
Normal file
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"extends": "../../tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"target": "ESNext",
|
||||
"useDefineForClassFields": true,
|
||||
"lib": ["DOM", "DOM.Iterable", "ESNext"],
|
||||
"allowJs": false,
|
||||
"skipLibCheck": false,
|
||||
"esModuleInterop": false,
|
||||
"allowSyntheticDefaultImports": true,
|
||||
"strict": true,
|
||||
"forceConsistentCasingInFileNames": true,
|
||||
"module": "ESNext",
|
||||
"moduleResolution": "Node",
|
||||
"resolveJsonModule": true,
|
||||
"isolatedModules": true,
|
||||
"noEmit": true,
|
||||
"jsx": "react-jsx"
|
||||
}
|
||||
}
|
||||
@@ -69,10 +69,11 @@
|
||||
"devDependencies": {
|
||||
"@types/vscode": "^1.71.0",
|
||||
"@nicepkg/gpt-runner": "workspace:*",
|
||||
"@nicepkg/gpt-runner-shared": "workspace:*",
|
||||
"esno": "^0.16.3",
|
||||
"jiti": "^1.18.2",
|
||||
"prettier": "^2.8.8",
|
||||
"tsup": "^6.7.0",
|
||||
"unconfig": "^0.3.7"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,9 +1,10 @@
|
||||
import type { FC } from 'react'
|
||||
import { useCallback } from 'react'
|
||||
import clsx from 'clsx'
|
||||
import type { SingleChatMessage } from '@nicepkg/gpt-runner-shared/common'
|
||||
import { ChatMessageStatus } from '@nicepkg/gpt-runner-shared/common'
|
||||
import { ChatRole } from '@nicepkg/gpt-runner-shared'
|
||||
import { MessageTextView } from '../chat-message-text-view'
|
||||
import type { SingleChatMessage } from '../../store/zustand/global/chat.slice'
|
||||
import { ChatMessageStatus, ChatRole } from '../../store/zustand/global/chat.slice'
|
||||
import { Icon } from '../icon'
|
||||
import { IconButton } from '../icon-button'
|
||||
import { useHover } from '../../hooks/use-hover.hook'
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import type { ParsedUrlQuery } from 'node:querystring'
|
||||
import { formatSourceValue } from '@nicepkg/gpt-runner-shared/common'
|
||||
import type { MutableRefObject, Ref } from 'react'
|
||||
|
||||
export function createEl<T extends keyof HTMLElementTagNameMap>(tag: T,
|
||||
@@ -10,10 +11,6 @@ export function createEl<T extends keyof HTMLElementTagNameMap>(tag: T,
|
||||
return el
|
||||
}
|
||||
|
||||
export function sleep(ms: number) {
|
||||
return new Promise(resolve => setTimeout(resolve, ms))
|
||||
}
|
||||
|
||||
export function mergeRefs<T>(...refs: (Ref<T> | undefined)[]) {
|
||||
return (value: T) => {
|
||||
refs.forEach((ref) => {
|
||||
@@ -25,43 +22,6 @@ export function mergeRefs<T>(...refs: (Ref<T> | undefined)[]) {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if an object has its own property with the specified name.
|
||||
*
|
||||
* @param obj - The object to check.
|
||||
* @param prop - The name of the property to check for.
|
||||
* @returns True if the object has its own property with the specified name, false otherwise.
|
||||
*/
|
||||
export function hasOwn<T extends object, K extends keyof T>(
|
||||
obj: T,
|
||||
prop: K,
|
||||
): boolean {
|
||||
return Object.prototype.hasOwnProperty.call(obj, prop)
|
||||
}
|
||||
|
||||
export function formatSourceValue<T = any>(value: any): T {
|
||||
let result
|
||||
if (value === 'true') {
|
||||
result = true
|
||||
}
|
||||
else if (value === 'false') {
|
||||
result = false
|
||||
}
|
||||
else if (/^-?\d*\.?\d+$/.test(value)) {
|
||||
// regex pattern for matching float numbers
|
||||
result = parseFloat(value)
|
||||
}
|
||||
else if (/^-?\d+$/.test(value)) {
|
||||
// regex pattern for matching integer numbers
|
||||
result = parseInt(value, 10)
|
||||
}
|
||||
else {
|
||||
result = value
|
||||
}
|
||||
|
||||
return result as T
|
||||
}
|
||||
|
||||
export function formatRouteQuery<T extends object>(query?: ParsedUrlQuery): Partial<T> {
|
||||
if (!query)
|
||||
return {} as Partial<T>
|
||||
@@ -85,51 +45,3 @@ export function getErrorMsg(error: any) {
|
||||
)
|
||||
return errorMessage
|
||||
}
|
||||
|
||||
export function getSearchParams(val: string, url?: string): string {
|
||||
const defaultUrl = typeof window !== 'undefined' ? window.location.href : ''
|
||||
const finalUrl = url || defaultUrl || ''
|
||||
const searchParams = finalUrl.split('?')?.[1] || ''
|
||||
const params = new URLSearchParams(searchParams)
|
||||
return params.get(val) || ''
|
||||
}
|
||||
|
||||
export function addSearchParams(urlLike: string,
|
||||
searchParams: Record<string, any>) {
|
||||
const [urlBase = '', urlSearch = ''] = urlLike.split('?')
|
||||
const params = new URLSearchParams(urlSearch)
|
||||
Object.keys(searchParams).forEach((key) => {
|
||||
params.set(key, searchParams[key])
|
||||
})
|
||||
const urlSearchParams = params.toString()
|
||||
if (!urlSearchParams)
|
||||
return urlBase
|
||||
return `${urlBase}?${urlSearchParams}`
|
||||
}
|
||||
|
||||
export function removeSearchParams(urlLike: string,
|
||||
searchParamKeys: string[]) {
|
||||
const [urlBase = '', urlSearch = ''] = urlLike.split('?')
|
||||
const params = new URLSearchParams(urlSearch)
|
||||
searchParamKeys.forEach((key) => {
|
||||
params.delete(key)
|
||||
})
|
||||
const urlSearchParams = params.toString()
|
||||
if (!urlSearchParams)
|
||||
return urlBase
|
||||
return `${urlBase}?${urlSearchParams}`
|
||||
}
|
||||
|
||||
type TreeItem<T> = T & { children?: TreeItem<T>[] }
|
||||
export function travelTree<T extends TreeItem<Record<string, any>>, R extends TreeItem<Record<string, any>> = TreeItem<Record<string, any>> >(tree: T[], callback: (item: T, parent?: T) => void | R): R[] {
|
||||
const travel = (tree: T[], parent?: T) => {
|
||||
return tree.map((item) => {
|
||||
const finalItem = callback(item, parent) || item
|
||||
if (item.children)
|
||||
finalItem.children = travel(item.children as T[], item)
|
||||
|
||||
return finalItem
|
||||
})
|
||||
}
|
||||
return travel(tree) as R[]
|
||||
}
|
||||
|
||||
@@ -1,10 +1,6 @@
|
||||
import type { ClientEventData, ClientEventName } from '@nicepkg/gpt-runner-shared/common'
|
||||
import { EventEmitter } from 'eventemitter3'
|
||||
import { useEffect, useRef } from 'react'
|
||||
import type { ClientEventName } from '../../../index'
|
||||
|
||||
export interface ClientEventData {
|
||||
[ClientEventName.AddMessageAction]: void
|
||||
}
|
||||
|
||||
if (!window.__emitter__)
|
||||
window.__emitter__ = new EventEmitter()
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import type { EventSourceMessage } from '@microsoft/fetch-event-source'
|
||||
import { fetchEventSource } from '@microsoft/fetch-event-source'
|
||||
import type { ChatStreamReqParams } from '../../../server/src/controllers/chatgpt.controller'
|
||||
import { EnvConfig } from '../../../env-config'
|
||||
import type { ChatStreamReqParams } from '@nicepkg/gpt-runner-shared/common'
|
||||
import { EnvConfig } from '@nicepkg/gpt-runner-shared/common'
|
||||
|
||||
export interface fetchChatStreamReqParams extends ChatStreamReqParams {
|
||||
namespace?: string
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import type { GptFilesInfoToTree } from '@nicepkg/gpt-runner-core'
|
||||
import { EnvConfig } from '../../../env-config'
|
||||
import type { BaseResponse } from '../types/common'
|
||||
import type { BaseResponse } from '@nicepkg/gpt-runner-shared/common'
|
||||
import { EnvConfig } from '@nicepkg/gpt-runner-shared/common'
|
||||
|
||||
export interface FetchGptFilesTreeParams {
|
||||
rootPath: string
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import type { FC } from 'react'
|
||||
import { useEffect, useState } from 'react'
|
||||
import { useQuery } from '@tanstack/react-query'
|
||||
import { travelTree } from '@nicepkg/gpt-runner-shared/common'
|
||||
import type { SidebarProps } from '../../components/sidebar'
|
||||
import { Sidebar } from '../../components/sidebar'
|
||||
import { fetchGptFilesTree } from '../../networks/gpt-files'
|
||||
import type { TreeItemProps } from '../../components/tree-item'
|
||||
import { travelTree } from '../../helpers/utils'
|
||||
|
||||
export interface ChatSidebarProps {
|
||||
rootPath: string
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
import type { CSSProperties, FC } from 'react'
|
||||
import { useCallback, useEffect, useState } from 'react'
|
||||
import { VSCodePanelTab, VSCodePanelView } from '@vscode/webview-ui-toolkit/react'
|
||||
import type { SingleChat } from '@nicepkg/gpt-runner-shared/common'
|
||||
import { ChatMessageStatus, ChatRole } from '@nicepkg/gpt-runner-shared/common'
|
||||
import { useIsMobile } from '../../hooks/use-is-mobile.hook'
|
||||
import type { ChatMessagePanelProps } from '../../components/chat-message-panel'
|
||||
import { ChatMessagePanel } from '../../components/chat-message-panel'
|
||||
import { FlexRow } from '../../styles/global.styles'
|
||||
import { ChatMessageInput } from '../../components/chat-message-input'
|
||||
import { useGlobalStore } from '../../store/zustand/global'
|
||||
import type { SingleChat } from '../../store/zustand/global/chat.slice'
|
||||
import { ChatMessageStatus, ChatRole } from '../../store/zustand/global/chat.slice'
|
||||
import { useScrollDown } from '../../hooks/use-scroll-down.hook'
|
||||
import { IconButton } from '../../components/icon-button'
|
||||
import { ChatPanelWrapper, SidebarWrapper, StyledVSCodePanels } from './chat.styles'
|
||||
|
||||
@@ -1,35 +1,9 @@
|
||||
import type { BaseChatMessage } from 'langchain/schema'
|
||||
import type { StateCreator } from 'zustand'
|
||||
import type { SingleChat } from '@nicepkg/gpt-runner-shared/common'
|
||||
import { ChatMessageStatus, ChatRole } from '@nicepkg/gpt-runner-shared/common'
|
||||
import type { GetState } from '../types'
|
||||
import { fetchChatgptStream } from '../../../networks/chatgpt'
|
||||
|
||||
export enum ChatMessageStatus {
|
||||
Idle = 'idle',
|
||||
Pending = 'pending',
|
||||
Success = 'success',
|
||||
Error = 'error',
|
||||
}
|
||||
|
||||
export enum ChatRole {
|
||||
User = 'user',
|
||||
ASSISTANT = 'assistant',
|
||||
SYSTEM = 'system',
|
||||
}
|
||||
|
||||
export type SingleChatMessage = Pick<BaseChatMessage, 'name' | 'text'> & {
|
||||
name: ChatRole
|
||||
}
|
||||
|
||||
export interface SingleChat {
|
||||
id: string
|
||||
title: string
|
||||
inputtingPrompt: string
|
||||
systemPrompt: string
|
||||
temperature: number
|
||||
messages: SingleChatMessage[]
|
||||
status: ChatMessageStatus
|
||||
}
|
||||
|
||||
export interface ChatSlice {
|
||||
openaiKey: string
|
||||
chatInstances: SingleChat[]
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { create } from 'zustand'
|
||||
import { devtools } from 'zustand/middleware'
|
||||
import cloneDeep from 'lodash-es/cloneDeep'
|
||||
import { EnvConfig } from '../../../../env-config'
|
||||
import { EnvConfig } from '@nicepkg/gpt-runner-shared'
|
||||
|
||||
/**
|
||||
* The resetStateQueue is an array that holds callbacks to reset all stores.
|
||||
|
||||
@@ -1,10 +1,3 @@
|
||||
import type { Component } from 'react'
|
||||
|
||||
export type GetComponentProps<T> = T extends Component<infer P> ? P : never
|
||||
|
||||
export interface BaseResponse<T = any> {
|
||||
type: 'Success' | 'Fail'
|
||||
status?: number
|
||||
message?: string
|
||||
data?: T
|
||||
}
|
||||
|
||||
@@ -1,5 +1 @@
|
||||
export const enum ClientEventName {
|
||||
AddMessageAction = 'add-message-action',
|
||||
}
|
||||
|
||||
export * from './env-config'
|
||||
export const pkg = 'gpt-runner-web'
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/nicepkg/gpt-runner",
|
||||
"directory": "packages/core"
|
||||
"directory": "packages/gpt-runner-web"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/nicepkg/gpt-runner/issues"
|
||||
@@ -45,6 +45,7 @@
|
||||
"dependencies": {
|
||||
"@microsoft/fetch-event-source": "^2.0.1",
|
||||
"@nicepkg/gpt-runner-core": "workspace:*",
|
||||
"@nicepkg/gpt-runner-shared": "workspace:*",
|
||||
"@tanstack/react-query": "^4.29.11",
|
||||
"@vscode/webview-ui-toolkit": "^1.2.2",
|
||||
"clsx": "^1.2.1",
|
||||
|
||||
@@ -1,19 +1,11 @@
|
||||
import type { Request, Response } from 'express'
|
||||
import type { ChatMessage } from '../services'
|
||||
import type { ChatStreamReqParams } from '@nicepkg/gpt-runner-shared/common'
|
||||
import { EnvConfig } from '@nicepkg/gpt-runner-shared/common'
|
||||
import type { FailResponse, SuccessResponse } from '@nicepkg/gpt-runner-shared/node'
|
||||
import { buildFailResponse, buildSuccessResponse, sendSuccessResponse } from '@nicepkg/gpt-runner-shared/node'
|
||||
import { chatgptChain } from '../services'
|
||||
import type { FailResponse, SuccessResponse } from '../utils/request'
|
||||
import { buildFailResponse, buildSuccessResponse, sendSuccessResponse } from '../utils/request'
|
||||
import { EnvConfig } from '../../../env-config'
|
||||
import type { ControllerConfig } from './../types'
|
||||
|
||||
export interface ChatStreamReqParams {
|
||||
messages: ChatMessage[]
|
||||
prompt: string
|
||||
openaiKey?: string
|
||||
systemPrompt?: string
|
||||
temperature?: number
|
||||
}
|
||||
|
||||
export const chatgptControllers: ControllerConfig = {
|
||||
namespacePath: '/chatgpt',
|
||||
controllers: [
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { sendSuccessResponse } from '@nicepkg/gpt-runner-shared/node'
|
||||
import pkg from '../../../package.json'
|
||||
import type { ControllerConfig } from '../types'
|
||||
import { sendSuccessResponse } from '../utils/request'
|
||||
|
||||
export const configControllers: ControllerConfig = {
|
||||
namespacePath: '/config',
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import fs from 'node:fs'
|
||||
import path from 'node:path'
|
||||
import { getGptFiles, getGptFilesInfo, gptFilesInfoToTree, loadUserConfig } from '@nicepkg/gpt-runner-core'
|
||||
import { sendFailResponse, sendSuccessResponse } from '@nicepkg/gpt-runner-shared/node'
|
||||
import type { ControllerConfig } from '../types'
|
||||
import { sendFailResponse, sendSuccessResponse } from '../utils/request'
|
||||
|
||||
export const gptFilesControllers: ControllerConfig = {
|
||||
namespacePath: '/gpt-files',
|
||||
|
||||
@@ -1,29 +1,5 @@
|
||||
import type { Request, Response } from 'express'
|
||||
|
||||
export interface RequestProps {
|
||||
prompt: string
|
||||
options?: ChatContext
|
||||
systemMessage: string
|
||||
temperature?: number
|
||||
top_p?: number
|
||||
}
|
||||
|
||||
export interface ChatContext {
|
||||
conversationId?: string
|
||||
parentMessageId?: string
|
||||
}
|
||||
|
||||
export interface ModelConfig {
|
||||
apiModel?: ApiModel
|
||||
reverseProxy?: string
|
||||
timeoutMs?: number
|
||||
socksProxy?: string
|
||||
httpsProxy?: string
|
||||
usage?: string
|
||||
}
|
||||
|
||||
export type ApiModel = 'ChatGPTAPI' | undefined
|
||||
|
||||
export interface ControllerConfig {
|
||||
namespacePath: string
|
||||
controllers: Controller[]
|
||||
|
||||
@@ -45,6 +45,7 @@
|
||||
"stub": "unbuild --stub"
|
||||
},
|
||||
"dependencies": {
|
||||
"@nicepkg/gpt-runner-core": "workspace:*"
|
||||
"@nicepkg/gpt-runner-core": "workspace:*",
|
||||
"@nicepkg/gpt-runner-shared": "workspace:*"
|
||||
}
|
||||
}
|
||||
}
|
||||
70
pnpm-lock.yaml
generated
70
pnpm-lock.yaml
generated
@@ -124,6 +124,9 @@ importers:
|
||||
'@nicepkg/gpt-runner-core':
|
||||
specifier: workspace:*
|
||||
version: link:../gpt-runner-core
|
||||
'@nicepkg/gpt-runner-shared':
|
||||
specifier: workspace:*
|
||||
version: link:../gpt-runner-shared
|
||||
|
||||
packages/gpt-runner-cli:
|
||||
dependencies:
|
||||
@@ -136,6 +139,9 @@ importers:
|
||||
'@nicepkg/gpt-runner-core':
|
||||
specifier: workspace:*
|
||||
version: link:../gpt-runner-core
|
||||
'@nicepkg/gpt-runner-shared':
|
||||
specifier: workspace:*
|
||||
version: link:../gpt-runner-shared
|
||||
'@rollup/pluginutils':
|
||||
specifier: ^5.0.2
|
||||
version: 5.0.2(rollup@3.21.7)
|
||||
@@ -169,12 +175,18 @@ importers:
|
||||
'@nicepkg/gpt-runner':
|
||||
specifier: workspace:*
|
||||
version: link:../gpt-runner
|
||||
'@nicepkg/gpt-runner-shared':
|
||||
specifier: workspace:*
|
||||
version: link:../gpt-runner-shared
|
||||
unconfig:
|
||||
specifier: ^0.3.7
|
||||
version: 0.3.7
|
||||
|
||||
packages/gpt-runner-core:
|
||||
dependencies:
|
||||
'@nicepkg/gpt-runner-shared':
|
||||
specifier: workspace:*
|
||||
version: link:../gpt-runner-shared
|
||||
ignore:
|
||||
specifier: ^5.2.4
|
||||
version: 5.2.4
|
||||
@@ -186,16 +198,22 @@ importers:
|
||||
version: 0.3.9
|
||||
|
||||
packages/gpt-runner-shared:
|
||||
dependencies:
|
||||
'@nicepkg/gpt-runner-core':
|
||||
specifier: workspace:*
|
||||
version: link:../gpt-runner-core
|
||||
devDependencies:
|
||||
'@types/express':
|
||||
specifier: ^4.17.17
|
||||
version: 4.17.17
|
||||
express:
|
||||
specifier: ^4.18.2
|
||||
version: 4.18.2
|
||||
|
||||
packages/gpt-runner-vscode:
|
||||
devDependencies:
|
||||
'@nicepkg/gpt-runner':
|
||||
specifier: workspace:*
|
||||
version: link:../gpt-runner
|
||||
'@nicepkg/gpt-runner-shared':
|
||||
specifier: workspace:*
|
||||
version: link:../gpt-runner-shared
|
||||
'@types/vscode':
|
||||
specifier: ^1.71.0
|
||||
version: 1.78.0
|
||||
@@ -223,6 +241,9 @@ importers:
|
||||
'@nicepkg/gpt-runner-core':
|
||||
specifier: workspace:*
|
||||
version: link:../gpt-runner-core
|
||||
'@nicepkg/gpt-runner-shared':
|
||||
specifier: workspace:*
|
||||
version: link:../gpt-runner-shared
|
||||
'@tanstack/react-query':
|
||||
specifier: ^4.29.11
|
||||
version: 4.29.11(react-dom@18.2.0)(react@18.2.0)
|
||||
@@ -2868,7 +2889,6 @@ packages:
|
||||
dependencies:
|
||||
mime-types: 2.1.35
|
||||
negotiator: 0.6.3
|
||||
dev: false
|
||||
|
||||
/acorn-jsx@5.3.2(acorn@8.8.2):
|
||||
resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
|
||||
@@ -3001,7 +3021,6 @@ packages:
|
||||
|
||||
/array-flatten@1.1.1:
|
||||
resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==}
|
||||
dev: false
|
||||
|
||||
/array-includes@3.1.6:
|
||||
resolution: {integrity: sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==}
|
||||
@@ -3145,7 +3164,6 @@ packages:
|
||||
unpipe: 1.0.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/boolbase@1.0.0:
|
||||
resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==}
|
||||
@@ -3240,7 +3258,6 @@ packages:
|
||||
/bytes@3.1.2:
|
||||
resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==}
|
||||
engines: {node: '>= 0.8'}
|
||||
dev: false
|
||||
|
||||
/c12@1.4.1:
|
||||
resolution: {integrity: sha512-0x7pWfLZpZsgtyotXtuepJc0rZYE0Aw8PwNAXs0jSG9zq6Sl5xmbWnFqfmRY01ieZLHNbvneSFm9/x88CvzAuw==}
|
||||
@@ -3573,19 +3590,16 @@ packages:
|
||||
engines: {node: '>= 0.6'}
|
||||
dependencies:
|
||||
safe-buffer: 5.2.1
|
||||
dev: false
|
||||
|
||||
/content-type@1.0.5:
|
||||
resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==}
|
||||
engines: {node: '>= 0.6'}
|
||||
dev: false
|
||||
|
||||
/convert-source-map@1.9.0:
|
||||
resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==}
|
||||
|
||||
/cookie-signature@1.0.6:
|
||||
resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==}
|
||||
dev: false
|
||||
|
||||
/cookie@0.4.2:
|
||||
resolution: {integrity: sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==}
|
||||
@@ -3595,7 +3609,6 @@ packages:
|
||||
/cookie@0.5.0:
|
||||
resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==}
|
||||
engines: {node: '>= 0.6'}
|
||||
dev: false
|
||||
|
||||
/copy-to-clipboard@3.3.3:
|
||||
resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==}
|
||||
@@ -3706,7 +3719,6 @@ packages:
|
||||
optional: true
|
||||
dependencies:
|
||||
ms: 2.0.0
|
||||
dev: false
|
||||
|
||||
/debug@3.2.7:
|
||||
resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
|
||||
@@ -3819,7 +3831,6 @@ packages:
|
||||
/destroy@1.2.0:
|
||||
resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==}
|
||||
engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
|
||||
dev: false
|
||||
|
||||
/detect-indent@7.0.1:
|
||||
resolution: {integrity: sha512-Mc7QhQ8s+cLrnUfU/Ji94vG/r8M26m8f++vyres4ZoojaRDpZ1eSIh/EpzLNwlWuvzSZ3UbDFspjFvTDXe6e/g==}
|
||||
@@ -3901,7 +3912,6 @@ packages:
|
||||
|
||||
/ee-first@1.1.1:
|
||||
resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
|
||||
dev: false
|
||||
|
||||
/electron-to-chromium@1.4.394:
|
||||
resolution: {integrity: sha512-0IbC2cfr8w5LxTz+nmn2cJTGafsK9iauV2r5A5scfzyovqLrxuLoxOHE5OBobP3oVIggJT+0JfKnw9sm87c8Hw==}
|
||||
@@ -3917,7 +3927,6 @@ packages:
|
||||
/encodeurl@1.0.2:
|
||||
resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==}
|
||||
engines: {node: '>= 0.8'}
|
||||
dev: false
|
||||
|
||||
/encoding@0.1.13:
|
||||
resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==}
|
||||
@@ -4494,7 +4503,6 @@ packages:
|
||||
|
||||
/escape-html@1.0.3:
|
||||
resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==}
|
||||
dev: false
|
||||
|
||||
/escape-string-regexp@1.0.5:
|
||||
resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
|
||||
@@ -4937,7 +4945,6 @@ packages:
|
||||
/etag@1.8.1:
|
||||
resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==}
|
||||
engines: {node: '>= 0.6'}
|
||||
dev: false
|
||||
|
||||
/eventemitter3@4.0.7:
|
||||
resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==}
|
||||
@@ -5027,7 +5034,6 @@ packages:
|
||||
vary: 1.1.2
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/extend@3.0.2:
|
||||
resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==}
|
||||
@@ -5135,7 +5141,6 @@ packages:
|
||||
unpipe: 1.0.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/find-up@4.1.0:
|
||||
resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==}
|
||||
@@ -5209,7 +5214,6 @@ packages:
|
||||
/forwarded@0.2.0:
|
||||
resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==}
|
||||
engines: {node: '>= 0.6'}
|
||||
dev: false
|
||||
|
||||
/framer-motion@10.12.16(react-dom@18.2.0)(react@18.2.0):
|
||||
resolution: {integrity: sha512-w/SfWEIWJkYSgRHYBmln7EhcNo31ao8Xexol8lGXf1pR/tlnBtf1HcxoUmEiEh6pacB4/geku5ami53AAQWHMQ==}
|
||||
@@ -5232,7 +5236,6 @@ packages:
|
||||
/fresh@0.5.2:
|
||||
resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==}
|
||||
engines: {node: '>= 0.6'}
|
||||
dev: false
|
||||
|
||||
/fs-extra@10.1.0:
|
||||
resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==}
|
||||
@@ -5605,7 +5608,6 @@ packages:
|
||||
setprototypeof: 1.2.0
|
||||
statuses: 2.0.1
|
||||
toidentifier: 1.0.1
|
||||
dev: false
|
||||
|
||||
/http-proxy-agent@5.0.0:
|
||||
resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==}
|
||||
@@ -5760,7 +5762,6 @@ packages:
|
||||
/ipaddr.js@1.9.1:
|
||||
resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==}
|
||||
engines: {node: '>= 0.10'}
|
||||
dev: false
|
||||
|
||||
/is-alphabetical@1.0.4:
|
||||
resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==}
|
||||
@@ -6653,11 +6654,9 @@ packages:
|
||||
/media-typer@0.3.0:
|
||||
resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==}
|
||||
engines: {node: '>= 0.6'}
|
||||
dev: false
|
||||
|
||||
/merge-descriptors@1.0.1:
|
||||
resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==}
|
||||
dev: false
|
||||
|
||||
/merge-stream@2.0.0:
|
||||
resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
|
||||
@@ -6670,7 +6669,6 @@ packages:
|
||||
/methods@1.1.2:
|
||||
resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==}
|
||||
engines: {node: '>= 0.6'}
|
||||
dev: false
|
||||
|
||||
/micromark-core-commonmark@1.0.6:
|
||||
resolution: {integrity: sha512-K+PkJTxqjFfSNkfAhp4GB+cZPfQd6dxtTXnf+RjZOV7T4EEXnvgzOcnp+eSTmpGk9d1S9sL6/lqrgSNn/s0HZA==}
|
||||
@@ -6878,7 +6876,6 @@ packages:
|
||||
resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==}
|
||||
engines: {node: '>=4'}
|
||||
hasBin: true
|
||||
dev: false
|
||||
|
||||
/mimic-fn@2.1.0:
|
||||
resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
|
||||
@@ -7080,7 +7077,6 @@ packages:
|
||||
|
||||
/ms@2.0.0:
|
||||
resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==}
|
||||
dev: false
|
||||
|
||||
/ms@2.1.2:
|
||||
resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
|
||||
@@ -7413,7 +7409,6 @@ packages:
|
||||
engines: {node: '>= 0.8'}
|
||||
dependencies:
|
||||
ee-first: 1.1.1
|
||||
dev: false
|
||||
|
||||
/once@1.4.0:
|
||||
resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
|
||||
@@ -7623,7 +7618,6 @@ packages:
|
||||
/parseurl@1.3.3:
|
||||
resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==}
|
||||
engines: {node: '>= 0.8'}
|
||||
dev: false
|
||||
|
||||
/path-exists@4.0.0:
|
||||
resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
|
||||
@@ -7657,7 +7651,6 @@ packages:
|
||||
|
||||
/path-to-regexp@0.1.7:
|
||||
resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==}
|
||||
dev: false
|
||||
|
||||
/path-to-regexp@6.2.1:
|
||||
resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==}
|
||||
@@ -7866,7 +7859,6 @@ packages:
|
||||
dependencies:
|
||||
forwarded: 0.2.0
|
||||
ipaddr.js: 1.9.1
|
||||
dev: false
|
||||
|
||||
/psl@1.9.0:
|
||||
resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==}
|
||||
@@ -7882,7 +7874,6 @@ packages:
|
||||
engines: {node: '>=0.6'}
|
||||
dependencies:
|
||||
side-channel: 1.0.4
|
||||
dev: false
|
||||
|
||||
/querystringify@2.2.0:
|
||||
resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==}
|
||||
@@ -7894,7 +7885,6 @@ packages:
|
||||
/range-parser@1.2.1:
|
||||
resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==}
|
||||
engines: {node: '>= 0.6'}
|
||||
dev: false
|
||||
|
||||
/raw-body@2.5.1:
|
||||
resolution: {integrity: sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==}
|
||||
@@ -7904,7 +7894,6 @@ packages:
|
||||
http-errors: 2.0.0
|
||||
iconv-lite: 0.4.24
|
||||
unpipe: 1.0.0
|
||||
dev: false
|
||||
|
||||
/rc9@2.1.0:
|
||||
resolution: {integrity: sha512-ROO9bv8PPqngWKoiUZU3JDQ4sugpdRs9DfwHnzDSxK25XtQn6BEHL6EOd/OtKuDT2qodrtNR+0WkPT6l0jxH5Q==}
|
||||
@@ -8425,7 +8414,6 @@ packages:
|
||||
statuses: 2.0.1
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/serialize-error@7.0.1:
|
||||
resolution: {integrity: sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==}
|
||||
@@ -8444,7 +8432,6 @@ packages:
|
||||
send: 0.18.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/set-blocking@2.0.0:
|
||||
resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==}
|
||||
@@ -8461,7 +8448,6 @@ packages:
|
||||
|
||||
/setprototypeof@1.2.0:
|
||||
resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==}
|
||||
dev: false
|
||||
|
||||
/shallowequal@1.1.0:
|
||||
resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==}
|
||||
@@ -8707,7 +8693,6 @@ packages:
|
||||
/statuses@2.0.1:
|
||||
resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==}
|
||||
engines: {node: '>= 0.8'}
|
||||
dev: false
|
||||
|
||||
/std-env@3.3.3:
|
||||
resolution: {integrity: sha512-Rz6yejtVyWnVjC1RFvNmYL10kgjC49EOghxWn0RFqlCHGFpQx+Xe7yW3I4ceK1SGrWIGMjD5Kbue8W/udkbMJg==}
|
||||
@@ -9031,7 +9016,6 @@ packages:
|
||||
/toidentifier@1.0.1:
|
||||
resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==}
|
||||
engines: {node: '>=0.6'}
|
||||
dev: false
|
||||
|
||||
/totalist@3.0.1:
|
||||
resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==}
|
||||
@@ -9216,7 +9200,6 @@ packages:
|
||||
dependencies:
|
||||
media-typer: 0.3.0
|
||||
mime-types: 2.1.35
|
||||
dev: false
|
||||
|
||||
/typed-array-length@1.0.4:
|
||||
resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==}
|
||||
@@ -9441,7 +9424,6 @@ packages:
|
||||
/unpipe@1.0.0:
|
||||
resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==}
|
||||
engines: {node: '>= 0.8'}
|
||||
dev: false
|
||||
|
||||
/unplugin-auto-import@0.15.3(rollup@3.21.7):
|
||||
resolution: {integrity: sha512-RLT8SqbPn4bT7yBshZId0uPSofKWnwr66RyDaxWaFb/+f7OTDOWAsVNz+hOQLBWSjvbekr2xZY9ccS8TDHJbCQ==}
|
||||
@@ -9534,7 +9516,6 @@ packages:
|
||||
/utils-merge@1.0.1:
|
||||
resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==}
|
||||
engines: {node: '>= 0.4.0'}
|
||||
dev: false
|
||||
|
||||
/uuid@9.0.0:
|
||||
resolution: {integrity: sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==}
|
||||
@@ -9569,7 +9550,6 @@ packages:
|
||||
/vary@1.1.2:
|
||||
resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
|
||||
engines: {node: '>= 0.8'}
|
||||
dev: false
|
||||
|
||||
/vfile-message@3.1.4:
|
||||
resolution: {integrity: sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==}
|
||||
|
||||
@@ -22,7 +22,9 @@
|
||||
"@nicepkg/gpt-runner-core": ["./packages/gpt-runner-core/src/index.ts"],
|
||||
"@nicepkg/gpt-runner-web/client": ["./packages/gpt-runner-web/client/src/index"],
|
||||
"@nicepkg/gpt-runner-web/server": ["./packages/gpt-runner-web/server/src/index"],
|
||||
"@nicepkg/gpt-runner-shared": ["./packages/gpt-runner-shared/src/index.ts"],
|
||||
"@nicepkg/gpt-runner-shared/browser": ["./packages/gpt-runner-shared/src/browser/index.ts"],
|
||||
"@nicepkg/gpt-runner-shared/common": ["./packages/gpt-runner-shared/src/common/index.ts"],
|
||||
"@nicepkg/gpt-runner-shared/node": ["./packages/gpt-runner-shared/src/node/index.ts"],
|
||||
}
|
||||
},
|
||||
"exclude": [
|
||||
|
||||
Reference in New Issue
Block a user