@codebolt/codeboltjs 2.0.2 → 2.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Readme.md +47 -0
- package/{modules → dist}/agentlib/agent.js +63 -54
- package/{modules → dist}/agentlib/usermessage.js +3 -3
- package/{index.d.ts → dist/index.d.ts} +3 -0
- package/{index.js → dist/index.js} +2 -0
- package/dist/utils/editFile.d.ts +4 -0
- package/dist/utils/editFile.js +30 -0
- package/dist/utils.d.ts +5 -0
- package/{utils.js → dist/utils.js} +4 -4
- package/package.json +17 -8
- package/.codebolt/chat.json +0 -1
- package/.codebolt/debug.json +0 -1
- package/.codebolt/projectState.json +0 -127
- package/.codebolt/tasks.json +0 -1
- package/.codeboltconfig.yaml +0 -0
- package/.github/workflows/publish-to-npm.yml +0 -20
- package/bkp/toolBox.bkp.ts +0 -1162
- package/docs/.nojekyll +0 -1
- package/docs/assets/highlight.css +0 -127
- package/docs/assets/icons.js +0 -15
- package/docs/assets/icons.svg +0 -1
- package/docs/assets/main.js +0 -59
- package/docs/assets/navigation.js +0 -1
- package/docs/assets/search.js +0 -1
- package/docs/assets/style.css +0 -1412
- package/docs/classes/_internal_.Agent.html +0 -318
- package/docs/classes/_internal_.AsyncResource.html +0 -44
- package/docs/classes/_internal_.Blob.html +0 -33
- package/docs/classes/_internal_.ClientRequest.html +0 -506
- package/docs/classes/_internal_.Codebolt.html +0 -315
- package/docs/classes/_internal_.CustomEventEmitter-1.html +0 -248
- package/docs/classes/_internal_.CustomEventEmitter.html +0 -248
- package/docs/classes/_internal_.Duplex.html +0 -690
- package/docs/classes/_internal_.EventEmitter-1.html +0 -254
- package/docs/classes/_internal_.EventEmitter.EventEmitterAsyncResource.html +0 -268
- package/docs/classes/_internal_.IncomingMessage.html +0 -661
- package/docs/classes/_internal_.KeyObject.html +0 -76
- package/docs/classes/_internal_.OutgoingMessage.html +0 -491
- package/docs/classes/_internal_.Readable.html +0 -551
- package/docs/classes/_internal_.ReadableBase.html +0 -551
- package/docs/classes/_internal_.Server-1.html +0 -416
- package/docs/classes/_internal_.Server-2.html +0 -326
- package/docs/classes/_internal_.Server-3.html +0 -353
- package/docs/classes/_internal_.Server.html +0 -390
- package/docs/classes/_internal_.ServerResponse.html +0 -569
- package/docs/classes/_internal_.Socket.html +0 -791
- package/docs/classes/_internal_.Stream.html +0 -256
- package/docs/classes/_internal_.TLSSocket.html +0 -947
- package/docs/classes/_internal_.URL.html +0 -140
- package/docs/classes/_internal_.URLSearchParams.html +0 -68
- package/docs/classes/_internal_.WebSocket-1.html +0 -297
- package/docs/classes/_internal_.WebSocket.Server.html +0 -261
- package/docs/classes/_internal_.Writable.html +0 -394
- package/docs/classes/_internal_.WritableBase.html +0 -394
- package/docs/classes/_internal_.X509Certificate.html +0 -144
- package/docs/classes/_internal_.internal-1.html +0 -256
- package/docs/classes/_internal_.internal.PassThrough.html +0 -686
- package/docs/classes/_internal_.internal.Transform.html +0 -693
- package/docs/enums/_internal_.logType.html +0 -4
- package/docs/functions/_internal_.WebSocket.createWebSocketStream.html +0 -1
- package/docs/functions/_internal_._node_stream_consumers_.arrayBuffer.html +0 -1
- package/docs/functions/_internal_._node_stream_consumers_.blob.html +0 -1
- package/docs/functions/_internal_._node_stream_consumers_.buffer.html +0 -1
- package/docs/functions/_internal_._node_stream_consumers_.json.html +0 -1
- package/docs/functions/_internal_._node_stream_consumers_.text.html +0 -1
- package/docs/functions/_internal_._node_stream_promises_.finished.html +0 -1
- package/docs/functions/_internal_._node_stream_promises_.pipeline.html +0 -1
- package/docs/functions/_internal_.internal.addAbortSignal.html +0 -17
- package/docs/functions/_internal_.internal.finished-1.html +0 -20
- package/docs/functions/_internal_.internal.finished.__promisify__.html +0 -1
- package/docs/functions/_internal_.internal.getDefaultHighWaterMark.html +0 -4
- package/docs/functions/_internal_.internal.isErrored.html +0 -3
- package/docs/functions/_internal_.internal.isReadable.html +0 -3
- package/docs/functions/_internal_.internal.pipeline-1.html +0 -24
- package/docs/functions/_internal_.internal.pipeline.__promisify__.html +0 -1
- package/docs/functions/_internal_.internal.setDefaultHighWaterMark.html +0 -4
- package/docs/hierarchy.html +0 -1
- package/docs/index.html +0 -12
- package/docs/interfaces/_internal_.AddToAgentStateResponse.html +0 -3
- package/docs/interfaces/_internal_.AddTokenResponse.html +0 -3
- package/docs/interfaces/_internal_.AddVectorItemResponse.html +0 -3
- package/docs/interfaces/_internal_.AddressInfo.html +0 -4
- package/docs/interfaces/_internal_.AgentOptions.html +0 -35
- package/docs/interfaces/_internal_.ApplicationState.html +0 -4
- package/docs/interfaces/_internal_.ArrayBufferView.html +0 -7
- package/docs/interfaces/_internal_.ArrayLike.html +0 -2
- package/docs/interfaces/_internal_.ArrayOptions.html +0 -7
- package/docs/interfaces/_internal_.AsymmetricKeyDetails.html +0 -15
- package/docs/interfaces/_internal_.AsyncGenerator.html +0 -5
- package/docs/interfaces/_internal_.AsyncGeneratorFunction.html +0 -12
- package/docs/interfaces/_internal_.AsyncIterable.html +0 -2
- package/docs/interfaces/_internal_.AsyncIterableIterator.html +0 -5
- package/docs/interfaces/_internal_.AsyncIterator.html +0 -4
- package/docs/interfaces/_internal_.AsyncResourceOptions.html +0 -12
- package/docs/interfaces/_internal_.BlobOptions.html +0 -8
- package/docs/interfaces/_internal_.Buffer.html +0 -760
- package/docs/interfaces/_internal_.BufferConstructor.html +0 -165
- package/docs/interfaces/_internal_.Certificate.html +0 -13
- package/docs/interfaces/_internal_.ChatMessage.html +0 -3
- package/docs/interfaces/_internal_.Choice.html +0 -5
- package/docs/interfaces/_internal_.CipherNameAndProtocol.html +0 -7
- package/docs/interfaces/_internal_.ClientRequestArgs.html +0 -28
- package/docs/interfaces/_internal_.CommandError.html +0 -3
- package/docs/interfaces/_internal_.CommonConnectionOptions.html +0 -29
- package/docs/interfaces/_internal_.ConnectOpts.html +0 -5
- package/docs/interfaces/_internal_.CreateFileResponse.html +0 -6
- package/docs/interfaces/_internal_.CreateFolderResponse.html +0 -6
- package/docs/interfaces/_internal_.CryptoKey.html +0 -26
- package/docs/interfaces/_internal_.DebugAddLogResponse.html +0 -4
- package/docs/interfaces/_internal_.DeleteFileResponse.html +0 -6
- package/docs/interfaces/_internal_.DeleteFolderResponse.html +0 -6
- package/docs/interfaces/_internal_.DetailedPeerCertificate.html +0 -53
- package/docs/interfaces/_internal_.Dict.html +0 -1
- package/docs/interfaces/_internal_.Disposable.html +0 -2
- package/docs/interfaces/_internal_.DropArgument.html +0 -7
- package/docs/interfaces/_internal_.DuplexOptions.html +0 -22
- package/docs/interfaces/_internal_.EphemeralKeyInfo.html +0 -7
- package/docs/interfaces/_internal_.ErrnoException.html +0 -8
- package/docs/interfaces/_internal_.Error.html +0 -4
- package/docs/interfaces/_internal_.EventEmitter-2.html +0 -130
- package/docs/interfaces/_internal_.EventEmitter.Abortable.html +0 -3
- package/docs/interfaces/_internal_.EventEmitter.EventEmitterAsyncResourceOptions.html +0 -19
- package/docs/interfaces/_internal_.EventEmitter.EventEmitterReferencingAsyncResource.html +0 -32
- package/docs/interfaces/_internal_.EventEmitterOptions.html +0 -3
- package/docs/interfaces/_internal_.ExtractTextResponse.html +0 -3
- package/docs/interfaces/_internal_.GetAgentStateResponse.html +0 -3
- package/docs/interfaces/_internal_.GetContentResponse.html +0 -3
- package/docs/interfaces/_internal_.GetMarkdownResponse.html +0 -3
- package/docs/interfaces/_internal_.GetMatcherListTreeResponse.html +0 -3
- package/docs/interfaces/_internal_.GetProjectPathResponse.html +0 -5
- package/docs/interfaces/_internal_.GetTokenResponse.html +0 -3
- package/docs/interfaces/_internal_.GetVectorResponse.html +0 -3
- package/docs/interfaces/_internal_.GoToPageResponse.html +0 -3
- package/docs/interfaces/_internal_.HtmlReceived.html +0 -3
- package/docs/interfaces/_internal_.IncomingHttpHeaders.html +0 -64
- package/docs/interfaces/_internal_.InformationEvent.html +0 -8
- package/docs/interfaces/_internal_.IpcSocketConnectOpts.html +0 -6
- package/docs/interfaces/_internal_.Iterable.html +0 -2
- package/docs/interfaces/_internal_.IterableIterator.html +0 -5
- package/docs/interfaces/_internal_.Iterator.html +0 -4
- package/docs/interfaces/_internal_.IteratorReturnResult.html +0 -3
- package/docs/interfaces/_internal_.IteratorYieldResult.html +0 -3
- package/docs/interfaces/_internal_.JsonWebKey.html +0 -14
- package/docs/interfaces/_internal_.JwkKeyExportOptions.html +0 -2
- package/docs/interfaces/_internal_.KeyAlgorithm.html +0 -2
- package/docs/interfaces/_internal_.KeyExportOptions.html +0 -5
- package/docs/interfaces/_internal_.KeyObject-1.html +0 -5
- package/docs/interfaces/_internal_.LLMResponse.html +0 -4
- package/docs/interfaces/_internal_.ListenOptions.html +0 -13
- package/docs/interfaces/_internal_.LookupAddress.html +0 -6
- package/docs/interfaces/_internal_.LookupOptions.html +0 -27
- package/docs/interfaces/_internal_.MatchProblemResponse.html +0 -3
- package/docs/interfaces/_internal_.MemoryGetResponse.html +0 -5
- package/docs/interfaces/_internal_.MemorySetResponse.html +0 -5
- package/docs/interfaces/_internal_.Message.html +0 -8
- package/docs/interfaces/_internal_.MessageContent.html +0 -3
- package/docs/interfaces/_internal_.Object.html +0 -18
- package/docs/interfaces/_internal_.OnReadOpts.html +0 -6
- package/docs/interfaces/_internal_.OpenDebugBrowserResponse.html +0 -4
- package/docs/interfaces/_internal_.OutgoingHttpHeaders.html +0 -80
- package/docs/interfaces/_internal_.PeerCertificate.html +0 -50
- package/docs/interfaces/_internal_.PromiseLike.html +0 -6
- package/docs/interfaces/_internal_.PxfObject.html +0 -5
- package/docs/interfaces/_internal_.QueryVectorItemResponse.html +0 -3
- package/docs/interfaces/_internal_.QueuingStrategy.html +0 -3
- package/docs/interfaces/_internal_.QueuingStrategySize.html +0 -1
- package/docs/interfaces/_internal_.ReadFileResponse.html +0 -7
- package/docs/interfaces/_internal_.ReadOnlyDict.html +0 -1
- package/docs/interfaces/_internal_.ReadWriteStream.html +0 -144
- package/docs/interfaces/_internal_.ReadableByteStreamController.html +0 -6
- package/docs/interfaces/_internal_.ReadableByteStreamControllerCallback.html +0 -1
- package/docs/interfaces/_internal_.ReadableOptions.html +0 -11
- package/docs/interfaces/_internal_.ReadableStream-1.html +0 -141
- package/docs/interfaces/_internal_.ReadableStream.html +0 -10
- package/docs/interfaces/_internal_.ReadableStreamBYOBReader.html +0 -5
- package/docs/interfaces/_internal_.ReadableStreamDefaultController.html +0 -5
- package/docs/interfaces/_internal_.ReadableStreamDefaultReadDoneResult.html +0 -3
- package/docs/interfaces/_internal_.ReadableStreamDefaultReadValueResult.html +0 -3
- package/docs/interfaces/_internal_.ReadableStreamDefaultReader.html +0 -5
- package/docs/interfaces/_internal_.ReadableStreamErrorCallback.html +0 -1
- package/docs/interfaces/_internal_.ReadableStreamGenericReader.html +0 -3
- package/docs/interfaces/_internal_.ReadableStreamReadDoneResult.html +0 -3
- package/docs/interfaces/_internal_.ReadableStreamReadValueResult.html +0 -3
- package/docs/interfaces/_internal_.ReadableWritablePair.html +0 -9
- package/docs/interfaces/_internal_.SecureContext.html +0 -2
- package/docs/interfaces/_internal_.SecureContextOptions.html +0 -121
- package/docs/interfaces/_internal_.Selection.html +0 -6
- package/docs/interfaces/_internal_.ServerOptions.html +0 -64
- package/docs/interfaces/_internal_.ServerOpts.html +0 -25
- package/docs/interfaces/_internal_.SharedArrayBuffer.html +0 -7
- package/docs/interfaces/_internal_.SharedArrayBufferConstructor.html +0 -3
- package/docs/interfaces/_internal_.SocketConstructorOpts.html +0 -6
- package/docs/interfaces/_internal_.StaticEventEmitterOptions.html +0 -15
- package/docs/interfaces/_internal_.StreamOptions.html +0 -9
- package/docs/interfaces/_internal_.StreamPipeOptions.html +0 -37
- package/docs/interfaces/_internal_.TLSSocketOptions.html +0 -160
- package/docs/interfaces/_internal_.TcpSocketConnectOpts.html +0 -19
- package/docs/interfaces/_internal_.TerminalInterruptResponse.html +0 -3
- package/docs/interfaces/_internal_.TlsOptions.html +0 -197
- package/docs/interfaces/_internal_.UnderlyingByteSource.html +0 -6
- package/docs/interfaces/_internal_.UnderlyingSink.html +0 -6
- package/docs/interfaces/_internal_.UnderlyingSinkAbortCallback.html +0 -1
- package/docs/interfaces/_internal_.UnderlyingSinkCloseCallback.html +0 -1
- package/docs/interfaces/_internal_.UnderlyingSinkStartCallback.html +0 -1
- package/docs/interfaces/_internal_.UnderlyingSinkWriteCallback.html +0 -1
- package/docs/interfaces/_internal_.UnderlyingSource.html +0 -5
- package/docs/interfaces/_internal_.UnderlyingSourceCancelCallback.html +0 -1
- package/docs/interfaces/_internal_.UnderlyingSourcePullCallback.html +0 -1
- package/docs/interfaces/_internal_.UnderlyingSourceStartCallback.html +0 -1
- package/docs/interfaces/_internal_.UpdateFileResponse.html +0 -6
- package/docs/interfaces/_internal_.UrlResponse.html +0 -3
- package/docs/interfaces/_internal_.Usage-1.html +0 -4
- package/docs/interfaces/_internal_.Usage.html +0 -4
- package/docs/interfaces/_internal_.UserMessage.html +0 -3
- package/docs/interfaces/_internal_.UserRequest.html +0 -7
- package/docs/interfaces/_internal_.WebSocket.AddressInfo.html +0 -4
- package/docs/interfaces/_internal_.WebSocket.ClientOptions.html +0 -138
- package/docs/interfaces/_internal_.WebSocket.CloseEvent.html +0 -6
- package/docs/interfaces/_internal_.WebSocket.ErrorEvent.html +0 -5
- package/docs/interfaces/_internal_.WebSocket.Event.html +0 -3
- package/docs/interfaces/_internal_.WebSocket.EventListenerOptions.html +0 -2
- package/docs/interfaces/_internal_.WebSocket.MessageEvent.html +0 -4
- package/docs/interfaces/_internal_.WebSocket.PerMessageDeflateOptions.html +0 -9
- package/docs/interfaces/_internal_.WebSocket.ServerOptions.html +0 -14
- package/docs/interfaces/_internal_.WebSocket.WebSocket.html +0 -172
- package/docs/interfaces/_internal_.WebSocket.WebSocketServer.html +0 -144
- package/docs/interfaces/_internal_.WebSocketAlias.html +0 -172
- package/docs/interfaces/_internal_.WritableOptions.html +0 -14
- package/docs/interfaces/_internal_.WritableStream-1.html +0 -8
- package/docs/interfaces/_internal_.WritableStream.html +0 -133
- package/docs/interfaces/_internal_.WritableStreamDefaultController.html +0 -6
- package/docs/interfaces/_internal_.WritableStreamDefaultWriter.html +0 -12
- package/docs/interfaces/_internal_.X509CheckOptions.html +0 -16
- package/docs/interfaces/_internal_.ZlibOptions.html +0 -21
- package/docs/interfaces/_internal_.getMatchDetail.html +0 -3
- package/docs/interfaces/_internal_.internal.FinishedOptions.html +0 -6
- package/docs/interfaces/_internal_.internal.Pipe.html +0 -5
- package/docs/interfaces/_internal_.internal.PipelineOptions.html +0 -3
- package/docs/interfaces/_internal_.internal.TransformOptions.html +0 -24
- package/docs/modules/_internal_.EventEmitter.html +0 -6
- package/docs/modules/_internal_.WebSocket.html +0 -21
- package/docs/modules/_internal_._node_stream_consumers_.html +0 -6
- package/docs/modules/_internal_._node_stream_promises_.html +0 -3
- package/docs/modules/_internal_.html +0 -228
- package/docs/modules/_internal_.internal.finished.html +0 -2
- package/docs/modules/_internal_.internal.html +0 -36
- package/docs/modules/_internal_.internal.pipeline.html +0 -2
- package/docs/modules.html +0 -3
- package/docs/types/_internal_.AnyRest.html +0 -1
- package/docs/types/_internal_.Args.html +0 -1
- package/docs/types/_internal_.ArrayBufferLike.html +0 -1
- package/docs/types/_internal_.ArrayBufferView-1.html +0 -1
- package/docs/types/_internal_.BinaryLike.html +0 -1
- package/docs/types/_internal_.BufferEncoding.html +0 -1
- package/docs/types/_internal_.BufferLike.html +0 -1
- package/docs/types/_internal_.ComposeFnParam.html +0 -1
- package/docs/types/_internal_.DefaultEventMap.html +0 -1
- package/docs/types/_internal_.EventMap.html +0 -1
- package/docs/types/_internal_.InstanceType.html +0 -2
- package/docs/types/_internal_.IteratorResult.html +0 -1
- package/docs/types/_internal_.Key.html +0 -1
- package/docs/types/_internal_.Key2.html +0 -1
- package/docs/types/_internal_.KeyFormat.html +0 -1
- package/docs/types/_internal_.KeyObjectType.html +0 -1
- package/docs/types/_internal_.KeyType-1.html +0 -1
- package/docs/types/_internal_.KeyType.html +0 -1
- package/docs/types/_internal_.KeyUsage.html +0 -1
- package/docs/types/_internal_.Listener.html +0 -1
- package/docs/types/_internal_.LookupFunction.html +0 -1
- package/docs/types/_internal_.OutgoingHttpHeader.html +0 -1
- package/docs/types/_internal_.Partial.html +0 -2
- package/docs/types/_internal_.Pick.html +0 -2
- package/docs/types/_internal_.PropertyKey.html +0 -1
- package/docs/types/_internal_.ReadableStreamController.html +0 -1
- package/docs/types/_internal_.ReadableStreamDefaultReadResult.html +0 -1
- package/docs/types/_internal_.ReadableStreamReadResult.html +0 -1
- package/docs/types/_internal_.Record.html +0 -2
- package/docs/types/_internal_.RequestListener.html +0 -1
- package/docs/types/_internal_.SecureVersion.html +0 -1
- package/docs/types/_internal_.ServerOptions-1.html +0 -1
- package/docs/types/_internal_.SocketConnectOpts.html +0 -1
- package/docs/types/_internal_.SocketReadyState.html +0 -1
- package/docs/types/_internal_.TypedArray.html +0 -1
- package/docs/types/_internal_.WebSocket.CertMeta.html +0 -2
- package/docs/types/_internal_.WebSocket.Data.html +0 -2
- package/docs/types/_internal_.WebSocket.RawData.html +0 -2
- package/docs/types/_internal_.WebSocket.VerifyClientCallbackAsync.html +0 -4
- package/docs/types/_internal_.WebSocket.VerifyClientCallbackSync.html +0 -4
- package/docs/types/_internal_.WithImplicitCoercion.html +0 -1
- package/docs/types/_internal_.internal.PipelineCallback.html +0 -1
- package/docs/types/_internal_.internal.PipelineDestination.html +0 -1
- package/docs/types/_internal_.internal.PipelineDestinationIterableFunction.html +0 -1
- package/docs/types/_internal_.internal.PipelineDestinationPromiseFunction.html +0 -1
- package/docs/types/_internal_.internal.PipelinePromise.html +0 -1
- package/docs/types/_internal_.internal.PipelineSource.html +0 -1
- package/docs/types/_internal_.internal.PipelineSourceFunction.html +0 -1
- package/docs/types/_internal_.internal.PipelineTransform.html +0 -1
- package/docs/types/_internal_.internal.PipelineTransformSource.html +0 -1
- package/docs/types/_internal_.internal.TransformCallback.html +0 -1
- package/docs/variables/_internal_.Buffer-1.html +0 -1
- package/docs/variables/_internal_.Error-1.html +0 -1
- package/docs/variables/_internal_.Object-1.html +0 -2
- package/docs/variables/_internal_.ReadableByteStreamController-1.html +0 -1
- package/docs/variables/_internal_.ReadableStream-2.html +0 -1
- package/docs/variables/_internal_.ReadableStreamBYOBReader-1.html +0 -1
- package/docs/variables/_internal_.ReadableStreamDefaultController-1.html +0 -1
- package/docs/variables/_internal_.ReadableStreamDefaultReader-1.html +0 -1
- package/docs/variables/_internal_.SharedArrayBuffer-1.html +0 -1
- package/docs/variables/_internal_.WebSocket.WebSocket-1.html +0 -1
- package/docs/variables/_internal_.WebSocket.WebSocketServer-1.html +0 -1
- package/docs/variables/_internal_.WebSocketAlias-1.html +0 -1
- package/docs/variables/_internal_.WritableStream-2.html +0 -1
- package/docs/variables/_internal_.WritableStreamDefaultController-1.html +0 -1
- package/docs/variables/_internal_.WritableStreamDefaultWriter-1.html +0 -1
- package/docs/variables/_internal_.internal.consumers.html +0 -1
- package/docs/variables/_internal_.internal.promises.html +0 -1
- package/docs/variables/default.html +0 -1
- package/script/gen.js +0 -27
- package/src/index.ts +0 -107
- package/src/modules/agent.ts +0 -120
- package/src/modules/agentlib/agent.ts +0 -406
- package/src/modules/agentlib/systemprompt.ts +0 -55
- package/src/modules/agentlib/taskInstruction.ts +0 -105
- package/src/modules/agentlib/usermessage.ts +0 -188
- package/src/modules/browser.ts +0 -352
- package/src/modules/chat.ts +0 -229
- package/src/modules/codeparsers.ts +0 -28
- package/src/modules/codeutils.ts +0 -182
- package/src/modules/crawler.ts +0 -121
- package/src/modules/dbmemory.ts +0 -52
- package/src/modules/debug.ts +0 -68
- package/src/modules/docutils.ts +0 -18
- package/src/modules/fs.ts +0 -263
- package/src/modules/git.ts +0 -237
- package/src/modules/history.ts +0 -82
- package/src/modules/knowledge.ts +0 -5
- package/src/modules/llm.ts +0 -36
- package/src/modules/outputparsers.ts +0 -30
- package/src/modules/project.ts +0 -68
- package/src/modules/rag.ts +0 -27
- package/src/modules/search.ts +0 -32
- package/src/modules/state.ts +0 -115
- package/src/modules/task.ts +0 -73
- package/src/modules/terminal.ts +0 -113
- package/src/modules/tokenizer.ts +0 -56
- package/src/modules/toolBox.ts +0 -1384
- package/src/modules/tools.ts +0 -254
- package/src/modules/vectordb.ts +0 -102
- package/src/modules/websocket.ts +0 -97
- package/src/utils.ts +0 -5
- package/tests/chat.test.js +0 -0
- package/tests/fs.test.js +0 -89
- package/tests/index.test.js +0 -4
- package/tsconfig.json +0 -122
- package/utils.d.ts +0 -5
- package/webpack.config.js +0 -25
- /package/{modules → dist}/agentlib/agent.d.ts +0 -0
- /package/{modules → dist}/agentlib/systemprompt.d.ts +0 -0
- /package/{modules → dist}/agentlib/systemprompt.js +0 -0
- /package/{modules → dist}/agentlib/taskInstruction.d.ts +0 -0
- /package/{modules → dist}/agentlib/taskInstruction.js +0 -0
- /package/{modules → dist}/agentlib/usermessage.d.ts +0 -0
- /package/{modules → dist/modules}/agent.d.ts +0 -0
- /package/{modules → dist/modules}/agent.js +0 -0
- /package/{modules → dist/modules}/browser.d.ts +0 -0
- /package/{modules → dist/modules}/browser.js +0 -0
- /package/{modules → dist/modules}/chat.d.ts +0 -0
- /package/{modules → dist/modules}/chat.js +0 -0
- /package/{modules → dist/modules}/codeparsers.d.ts +0 -0
- /package/{modules → dist/modules}/codeparsers.js +0 -0
- /package/{modules → dist/modules}/codeutils.d.ts +0 -0
- /package/{modules → dist/modules}/codeutils.js +0 -0
- /package/{modules → dist/modules}/crawler.d.ts +0 -0
- /package/{modules → dist/modules}/crawler.js +0 -0
- /package/{modules → dist/modules}/dbmemory.d.ts +0 -0
- /package/{modules → dist/modules}/dbmemory.js +0 -0
- /package/{modules → dist/modules}/debug.d.ts +0 -0
- /package/{modules → dist/modules}/debug.js +0 -0
- /package/{modules → dist/modules}/docutils.d.ts +0 -0
- /package/{modules → dist/modules}/docutils.js +0 -0
- /package/{modules → dist/modules}/fs.d.ts +0 -0
- /package/{modules → dist/modules}/fs.js +0 -0
- /package/{modules → dist/modules}/git.d.ts +0 -0
- /package/{modules → dist/modules}/git.js +0 -0
- /package/{modules → dist/modules}/history.d.ts +0 -0
- /package/{modules → dist/modules}/history.js +0 -0
- /package/{modules → dist/modules}/knowledge.d.ts +0 -0
- /package/{modules → dist/modules}/knowledge.js +0 -0
- /package/{modules → dist/modules}/llm.d.ts +0 -0
- /package/{modules → dist/modules}/llm.js +0 -0
- /package/{modules → dist/modules}/outputparsers.d.ts +0 -0
- /package/{modules → dist/modules}/outputparsers.js +0 -0
- /package/{modules → dist/modules}/project.d.ts +0 -0
- /package/{modules → dist/modules}/project.js +0 -0
- /package/{modules → dist/modules}/rag.d.ts +0 -0
- /package/{modules → dist/modules}/rag.js +0 -0
- /package/{modules → dist/modules}/search.d.ts +0 -0
- /package/{modules → dist/modules}/search.js +0 -0
- /package/{modules → dist/modules}/state.d.ts +0 -0
- /package/{modules → dist/modules}/state.js +0 -0
- /package/{modules → dist/modules}/task.d.ts +0 -0
- /package/{modules → dist/modules}/task.js +0 -0
- /package/{modules → dist/modules}/terminal.d.ts +0 -0
- /package/{modules → dist/modules}/terminal.js +0 -0
- /package/{modules → dist/modules}/tokenizer.d.ts +0 -0
- /package/{modules → dist/modules}/tokenizer.js +0 -0
- /package/{modules → dist/modules}/toolBox.d.ts +0 -0
- /package/{modules → dist/modules}/toolBox.js +0 -0
- /package/{modules → dist/modules}/tools.d.ts +0 -0
- /package/{modules → dist/modules}/tools.js +0 -0
- /package/{modules → dist/modules}/vectordb.d.ts +0 -0
- /package/{modules → dist/modules}/vectordb.js +0 -0
- /package/{modules → dist/modules}/websocket.d.ts +0 -0
- /package/{modules → dist/modules}/websocket.js +0 -0
package/src/modules/agent.ts
DELETED
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
import { GetAgentStateResponse } from '@codebolt/types';
|
|
2
|
-
import cbws from './websocket';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
export enum AgentLocation {
|
|
6
|
-
ALL = 'all',
|
|
7
|
-
LOCAL_ONLY = 'local_only',
|
|
8
|
-
REMOTE_ONLY = 'remote_only',
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
export enum Agents {
|
|
13
|
-
LOCAL = 'local',
|
|
14
|
-
ALL = 'all',
|
|
15
|
-
DOWNLOADED = 'downloaded',
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
export enum FilterUsing {
|
|
19
|
-
USE_AI = 'use_ai',
|
|
20
|
-
USE_VECTOR_DB = 'use_vector_db',
|
|
21
|
-
USE_BOTH = 'use_both',
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
const codeboltAgent = {
|
|
27
|
-
/**
|
|
28
|
-
* Retrieves an agent based on the specified task.
|
|
29
|
-
* @param {string} task - The task for which an agent is needed.
|
|
30
|
-
* @returns {Promise<AgentResponse>} A promise that resolves with the agent details.
|
|
31
|
-
*/
|
|
32
|
-
findAgent: (task: string, maxResult = 1, agents = [], agentLocaltion: AgentLocation = AgentLocation.ALL, getFrom: FilterUsing.USE_VECTOR_DB): Promise<any> => {
|
|
33
|
-
return new Promise((resolve, reject) => {
|
|
34
|
-
cbws.getWebsocket.send(JSON.stringify({
|
|
35
|
-
"type": "agentEvent",
|
|
36
|
-
"action": "findAgent",
|
|
37
|
-
"task": task,
|
|
38
|
-
"agents": agents,// for filter in vector db
|
|
39
|
-
"maxResult": maxResult,
|
|
40
|
-
"location": agentLocaltion,
|
|
41
|
-
"getFrom": getFrom
|
|
42
|
-
}));
|
|
43
|
-
cbws.getWebsocket.on('message', (data: string) => {
|
|
44
|
-
const response = JSON.parse(data);
|
|
45
|
-
if (response.type === "findAgentByTaskResponse") {
|
|
46
|
-
resolve(response); // Resolve the Promise with the agent details
|
|
47
|
-
}
|
|
48
|
-
});
|
|
49
|
-
});
|
|
50
|
-
},
|
|
51
|
-
|
|
52
|
-
/**
|
|
53
|
-
* Starts an agent for the specified task.
|
|
54
|
-
* @param {string} task - The task for which the agent should be started.
|
|
55
|
-
* @returns {Promise<void>} A promise that resolves when the agent has been successfully started.
|
|
56
|
-
*/
|
|
57
|
-
startAgent: (agentId: string, task: string): Promise<any> => {
|
|
58
|
-
return new Promise((resolve, reject) => {
|
|
59
|
-
cbws.getWebsocket.send(JSON.stringify({
|
|
60
|
-
"type": "agentEvent",
|
|
61
|
-
"action": "startAgent",
|
|
62
|
-
"agentId": agentId,
|
|
63
|
-
"task": task
|
|
64
|
-
}));
|
|
65
|
-
cbws.getWebsocket.on('message', (data: string) => {
|
|
66
|
-
const response = JSON.parse(data);
|
|
67
|
-
if (response.type === "taskCompletionResponse" && response.agentId === agentId) {
|
|
68
|
-
resolve(response); // Resolve the Promise when the agent has been successfully started
|
|
69
|
-
}
|
|
70
|
-
});
|
|
71
|
-
});
|
|
72
|
-
},
|
|
73
|
-
|
|
74
|
-
/**
|
|
75
|
-
* Lists all available agents.
|
|
76
|
-
* @returns {Promise<any>} A promise that resolves with the list of agents.
|
|
77
|
-
*/
|
|
78
|
-
getAgentsList: (type: Agents = Agents.DOWNLOADED): Promise<any> => {
|
|
79
|
-
return new Promise((resolve, reject) => {
|
|
80
|
-
cbws.getWebsocket.send(JSON.stringify({
|
|
81
|
-
"type": "agentEvent",
|
|
82
|
-
"action": "listAgents",
|
|
83
|
-
"agentType": type,
|
|
84
|
-
|
|
85
|
-
}));
|
|
86
|
-
cbws.getWebsocket.on('message', (data: string) => {
|
|
87
|
-
const response = JSON.parse(data);
|
|
88
|
-
if (response.type === "listAgentsResponse") {
|
|
89
|
-
resolve(response); // Resolve the Promise with the list of agents
|
|
90
|
-
}
|
|
91
|
-
});
|
|
92
|
-
});
|
|
93
|
-
},
|
|
94
|
-
/**
|
|
95
|
-
* Lists all available agents.
|
|
96
|
-
* @returns {Promise<any>} A promise that resolves with the list of agents.
|
|
97
|
-
*/
|
|
98
|
-
getAgentsDetail: (agentList = []): Promise<any> => {
|
|
99
|
-
return new Promise((resolve, reject) => {
|
|
100
|
-
cbws.getWebsocket.send(JSON.stringify({
|
|
101
|
-
"type": "agentEvent",
|
|
102
|
-
"action": "agentsDetail",
|
|
103
|
-
"agentList": agentList
|
|
104
|
-
}));
|
|
105
|
-
cbws.getWebsocket.on('message', (data: string) => {
|
|
106
|
-
const response = JSON.parse(data);
|
|
107
|
-
if (response.type === "listAgentsResponse") {
|
|
108
|
-
resolve(response); // Resolve the Promise with the list of agents
|
|
109
|
-
}
|
|
110
|
-
});
|
|
111
|
-
});
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
export default codeboltAgent;
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
@@ -1,406 +0,0 @@
|
|
|
1
|
-
import chatlib from "./../chat"
|
|
2
|
-
import tools from "./../tools"
|
|
3
|
-
import llm from "./../llm"
|
|
4
|
-
import codeboltAgent from "./../agent"
|
|
5
|
-
import { SystemPrompt } from "./systemprompt";
|
|
6
|
-
import { TaskInstruction } from "./taskInstruction";
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Represents a message in the conversation with roles and content.
|
|
10
|
-
*/
|
|
11
|
-
interface Message {
|
|
12
|
-
/** The role of the message sender: user, assistant, tool, or system */
|
|
13
|
-
role: 'user' | 'assistant' | 'tool' | 'system';
|
|
14
|
-
/** The content of the message, can be an array of content blocks or a string */
|
|
15
|
-
content: any[] | string;
|
|
16
|
-
/** Optional ID for tool calls */
|
|
17
|
-
tool_call_id?: string;
|
|
18
|
-
/** Additional properties that might be present */
|
|
19
|
-
[key: string]: any;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* Represents the result from a tool execution.
|
|
24
|
-
*/
|
|
25
|
-
interface ToolResult {
|
|
26
|
-
/** Always 'tool' for tool execution results */
|
|
27
|
-
role: 'tool';
|
|
28
|
-
/** ID that links this result to the original tool call */
|
|
29
|
-
tool_call_id: string;
|
|
30
|
-
/** The content returned by the tool */
|
|
31
|
-
content: any;
|
|
32
|
-
/** Optional user message to be added after tool execution */
|
|
33
|
-
userMessage?: any;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* Details about a tool to be executed.
|
|
38
|
-
*/
|
|
39
|
-
interface ToolDetails {
|
|
40
|
-
/** The name of the tool to execute */
|
|
41
|
-
toolName: string;
|
|
42
|
-
/** Input parameters for the tool */
|
|
43
|
-
toolInput: any;
|
|
44
|
-
/** Unique ID for this tool use instance */
|
|
45
|
-
toolUseId: string;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* Agent class that manages conversations with LLMs and tool executions.
|
|
50
|
-
* Handles the conversation flow, tool calls, and task completions.
|
|
51
|
-
*/
|
|
52
|
-
class Agent {
|
|
53
|
-
/** Available tools for the agent to use */
|
|
54
|
-
private tools: any[];
|
|
55
|
-
/** Full conversation history for API calls */
|
|
56
|
-
private apiConversationHistory: Message[];
|
|
57
|
-
/** Maximum number of conversation turns (0 means unlimited) */
|
|
58
|
-
private maxRun: number;
|
|
59
|
-
/** System prompt that provides instructions to the model */
|
|
60
|
-
private systemPrompt: SystemPrompt;
|
|
61
|
-
/** Messages from the user */
|
|
62
|
-
private userMessage: Message[];
|
|
63
|
-
/** The next user message to be added to the conversation */
|
|
64
|
-
private nextUserMessage:any;
|
|
65
|
-
|
|
66
|
-
/**
|
|
67
|
-
* Creates a new Agent instance.
|
|
68
|
-
*
|
|
69
|
-
* @param tools - The tools available to the agent
|
|
70
|
-
* @param systemPrompt - The system prompt providing instructions to the LLM
|
|
71
|
-
* @param maxRun - Maximum number of conversation turns (0 means unlimited)
|
|
72
|
-
*/
|
|
73
|
-
constructor(tools: any = [], systemPrompt: SystemPrompt, maxRun: number = 0) {
|
|
74
|
-
this.tools = tools;
|
|
75
|
-
this.userMessage = [];
|
|
76
|
-
this.apiConversationHistory = [];
|
|
77
|
-
this.maxRun = maxRun;
|
|
78
|
-
this.systemPrompt = systemPrompt;
|
|
79
|
-
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
/**
|
|
83
|
-
* Runs the agent on a specific task until completion or max runs reached.
|
|
84
|
-
*
|
|
85
|
-
* @param task - The task instruction to be executed
|
|
86
|
-
* @param successCondition - Optional function to determine if the task is successful
|
|
87
|
-
* @returns Promise with success status, error (if any), and the last assistant message
|
|
88
|
-
*/
|
|
89
|
-
async run(task: TaskInstruction, successCondition: () => boolean = () => true): Promise<{ success: boolean; error: string | null, message: string | null }> {
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
let mentaionedMCPSTool: any[] = await task.userMessage.getMentionedMcpsTools();
|
|
93
|
-
|
|
94
|
-
this.tools = [
|
|
95
|
-
...this.tools,
|
|
96
|
-
...mentaionedMCPSTool,
|
|
97
|
-
|
|
98
|
-
]
|
|
99
|
-
let mentionedAgents = await task.userMessage.getMentionedAgents();
|
|
100
|
-
|
|
101
|
-
// Transform agents into tool format
|
|
102
|
-
const agentTools = mentionedAgents.map(agent => {
|
|
103
|
-
return {
|
|
104
|
-
type: "function",
|
|
105
|
-
function: {
|
|
106
|
-
name: `subagent--${agent.unique_id}`,
|
|
107
|
-
description: agent.longDescription || agent.description,
|
|
108
|
-
parameters: {
|
|
109
|
-
type: "object",
|
|
110
|
-
properties: {
|
|
111
|
-
task: {
|
|
112
|
-
type: "string",
|
|
113
|
-
description: "The task to be executed by the tool."
|
|
114
|
-
}
|
|
115
|
-
},
|
|
116
|
-
required: ["task"]
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
};
|
|
120
|
-
});
|
|
121
|
-
|
|
122
|
-
this.tools = this.tools.concat(agentTools);
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
let completed = false;
|
|
126
|
-
let userMessages = await task.toPrompt();
|
|
127
|
-
this.apiConversationHistory.push({ role: "user", content: userMessages });
|
|
128
|
-
let runcomplete = 0;
|
|
129
|
-
while (!completed && (runcomplete <= this.maxRun || this.maxRun === 0)) {
|
|
130
|
-
try {
|
|
131
|
-
runcomplete++;
|
|
132
|
-
const response = await this.attemptLlmRequest(this.apiConversationHistory, this.tools);
|
|
133
|
-
let isMessagePresentinReply = false;
|
|
134
|
-
|
|
135
|
-
for (const contentBlock of response.choices) {
|
|
136
|
-
if (contentBlock.message) {
|
|
137
|
-
isMessagePresentinReply = true;
|
|
138
|
-
this.apiConversationHistory.push(contentBlock.message);
|
|
139
|
-
|
|
140
|
-
if (contentBlock.message.content != null) {
|
|
141
|
-
await chatlib.sendMessage(contentBlock.message.content, {});
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
if (!isMessagePresentinReply) {
|
|
147
|
-
this.apiConversationHistory.push({
|
|
148
|
-
role: "assistant",
|
|
149
|
-
content: [{ type: "text", text: "Failure: I did not provide a response." }],
|
|
150
|
-
});
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
try {
|
|
154
|
-
let toolResults: ToolResult[] = [];
|
|
155
|
-
let taskCompletedBlock: any;
|
|
156
|
-
let userRejectedToolUse = false;
|
|
157
|
-
const contentBlock = response.choices[0];
|
|
158
|
-
|
|
159
|
-
if (contentBlock.message?.tool_calls) {
|
|
160
|
-
for (const tool of contentBlock.message.tool_calls) {
|
|
161
|
-
const { toolInput, toolName, toolUseId } = this.getToolDetail(tool);
|
|
162
|
-
|
|
163
|
-
if (!userRejectedToolUse) {
|
|
164
|
-
if (toolName.includes("attempt_completion")) {
|
|
165
|
-
taskCompletedBlock = tool;
|
|
166
|
-
} else {
|
|
167
|
-
|
|
168
|
-
let [serverName] = toolName.replace('--', ':').split(':');
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
if (serverName == 'subagent') {
|
|
172
|
-
|
|
173
|
-
const agentResponse = await codeboltAgent.startAgent(toolName.replace("subagent--", ''), toolInput.task);
|
|
174
|
-
const [didUserReject, result] = [false, "tool result is successful"];
|
|
175
|
-
let toolResult = this.getToolResult(toolUseId, result)
|
|
176
|
-
toolResults.push({
|
|
177
|
-
role: "tool",
|
|
178
|
-
tool_call_id: toolResult.tool_call_id,
|
|
179
|
-
content: toolResult.content,
|
|
180
|
-
|
|
181
|
-
});
|
|
182
|
-
if (toolResult.userMessage) {
|
|
183
|
-
this.nextUserMessage = {
|
|
184
|
-
role: "user",
|
|
185
|
-
content: toolResult.userMessage
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
if (didUserReject) {
|
|
189
|
-
userRejectedToolUse = true;
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
}
|
|
193
|
-
else {
|
|
194
|
-
const [didUserReject, result] = await this.executeTool(toolName, toolInput);
|
|
195
|
-
// toolResults.push(this.getToolResult(toolUseId, result));
|
|
196
|
-
let toolResult = this.getToolResult(toolUseId, result)
|
|
197
|
-
toolResults.push({
|
|
198
|
-
role: "tool",
|
|
199
|
-
tool_call_id: toolResult.tool_call_id,
|
|
200
|
-
content: toolResult.content,
|
|
201
|
-
|
|
202
|
-
});
|
|
203
|
-
if (toolResult.userMessage) {
|
|
204
|
-
this.nextUserMessage = {
|
|
205
|
-
role: "user",
|
|
206
|
-
content: toolResult.userMessage
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
if (didUserReject) {
|
|
210
|
-
userRejectedToolUse = true;
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
}
|
|
215
|
-
} else {
|
|
216
|
-
let toolResult = this.getToolResult(toolUseId, "Skipping tool execution due to previous tool user rejection.")
|
|
217
|
-
|
|
218
|
-
toolResults.push({
|
|
219
|
-
role: "tool",
|
|
220
|
-
tool_call_id: toolResult.tool_call_id,
|
|
221
|
-
content: toolResult.content,
|
|
222
|
-
|
|
223
|
-
});
|
|
224
|
-
if (toolResult.userMessage) {
|
|
225
|
-
this.nextUserMessage = {
|
|
226
|
-
role: "user",
|
|
227
|
-
content: toolResult.userMessage
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
if (taskCompletedBlock) {
|
|
236
|
-
let [_, result] = await this.executeTool(
|
|
237
|
-
taskCompletedBlock.function.name,
|
|
238
|
-
JSON.parse(taskCompletedBlock.function.arguments || "{}")
|
|
239
|
-
);
|
|
240
|
-
|
|
241
|
-
if (result === "") {
|
|
242
|
-
completed = true;
|
|
243
|
-
result = "The user is satisfied with the result.";
|
|
244
|
-
}
|
|
245
|
-
let toolResult = this.getToolResult(taskCompletedBlock.id, result)
|
|
246
|
-
toolResults.push({
|
|
247
|
-
role: "tool",
|
|
248
|
-
tool_call_id: toolResult.tool_call_id,
|
|
249
|
-
content: toolResult.content,
|
|
250
|
-
|
|
251
|
-
});
|
|
252
|
-
if (toolResult.userMessage) {
|
|
253
|
-
this.nextUserMessage = {
|
|
254
|
-
role: "user",
|
|
255
|
-
content: toolResult.userMessage
|
|
256
|
-
}
|
|
257
|
-
}
|
|
258
|
-
|
|
259
|
-
}
|
|
260
|
-
|
|
261
|
-
this.apiConversationHistory.push(...toolResults);
|
|
262
|
-
if (this.nextUserMessage) {
|
|
263
|
-
this.apiConversationHistory.push(this.nextUserMessage);
|
|
264
|
-
}
|
|
265
|
-
let nextUserMessage: Message[] = toolResults;
|
|
266
|
-
|
|
267
|
-
if (toolResults.length === 0) {
|
|
268
|
-
nextUserMessage = [{
|
|
269
|
-
role: "user",
|
|
270
|
-
content: [{
|
|
271
|
-
type: "text",
|
|
272
|
-
text: "If you have completed the user's task, use the attempt_completion tool. If you require additional information from the user, use the ask_followup_question tool. Otherwise, if you have not completed the task and do not need additional information, then proceed with the next step of the task. (This is an automated message, so do not respond to it conversationally.)"
|
|
273
|
-
}]
|
|
274
|
-
}];
|
|
275
|
-
|
|
276
|
-
if (nextUserMessage) {
|
|
277
|
-
this.apiConversationHistory.push(nextUserMessage[0]);
|
|
278
|
-
}
|
|
279
|
-
}
|
|
280
|
-
} catch (error) {
|
|
281
|
-
console.error("Error in agent tool call:", error);
|
|
282
|
-
return { success: false, error: error instanceof Error ? error.message : String(error), message: null };
|
|
283
|
-
}
|
|
284
|
-
} catch (error) {
|
|
285
|
-
console.error("Error in agent tool call:", error);
|
|
286
|
-
return { success: false, error: error instanceof Error ? error.message : String(error), message: null };
|
|
287
|
-
}
|
|
288
|
-
}
|
|
289
|
-
|
|
290
|
-
return {
|
|
291
|
-
success: completed,
|
|
292
|
-
error: null,
|
|
293
|
-
message: this.apiConversationHistory
|
|
294
|
-
.filter(msg => msg.role === 'assistant')
|
|
295
|
-
.pop()?.content as string || ''
|
|
296
|
-
};
|
|
297
|
-
}
|
|
298
|
-
|
|
299
|
-
/**
|
|
300
|
-
* Attempts to make a request to the LLM with conversation history and tools.
|
|
301
|
-
*
|
|
302
|
-
* @param apiConversationHistory - The current conversation history
|
|
303
|
-
* @param tools - The tools available to the LLM
|
|
304
|
-
* @returns Promise with the LLM response
|
|
305
|
-
*/
|
|
306
|
-
private async attemptLlmRequest(apiConversationHistory: Message[], tools: Record<string, any>): Promise<any> {
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
try {
|
|
310
|
-
let systemPrompt = await this.systemPrompt.toPromptText();
|
|
311
|
-
const aiMessages: Message[] = [
|
|
312
|
-
{ role: "system", content: systemPrompt },
|
|
313
|
-
...apiConversationHistory,
|
|
314
|
-
];
|
|
315
|
-
|
|
316
|
-
const createParams = {
|
|
317
|
-
full: true,
|
|
318
|
-
messages: aiMessages,
|
|
319
|
-
tools: tools,
|
|
320
|
-
tool_choice: "auto",
|
|
321
|
-
};
|
|
322
|
-
//@ts-ignore
|
|
323
|
-
const { completion } = await llm.inference(createParams);
|
|
324
|
-
return completion;
|
|
325
|
-
} catch (error) {
|
|
326
|
-
return this.attemptApiRequest();
|
|
327
|
-
}
|
|
328
|
-
}
|
|
329
|
-
|
|
330
|
-
/**
|
|
331
|
-
* Executes a tool with given name and input.
|
|
332
|
-
*
|
|
333
|
-
* @param toolName - The name of the tool to execute
|
|
334
|
-
* @param toolInput - The input parameters for the tool
|
|
335
|
-
* @returns Promise with tuple [userRejected, result]
|
|
336
|
-
*/
|
|
337
|
-
private async executeTool(toolName: string, toolInput: any): Promise<[boolean, any]> {
|
|
338
|
-
//codebolttools--readfile
|
|
339
|
-
const [toolboxName, actualToolName] = toolName.split('--');
|
|
340
|
-
return tools.executeTool(toolboxName, actualToolName, toolInput);
|
|
341
|
-
}
|
|
342
|
-
|
|
343
|
-
/**
|
|
344
|
-
* Starts a sub-agent to handle a specific task.
|
|
345
|
-
*
|
|
346
|
-
* @param agentName - The name of the sub-agent to start
|
|
347
|
-
* @param params - Parameters for the sub-agent
|
|
348
|
-
* @returns Promise with tuple [userRejected, result]
|
|
349
|
-
*/
|
|
350
|
-
private async startSubAgent(agentName: string, params: any): Promise<[boolean, any]> {
|
|
351
|
-
return codeboltAgent.startAgent(agentName, params.task);
|
|
352
|
-
}
|
|
353
|
-
|
|
354
|
-
/**
|
|
355
|
-
* Extracts tool details from a tool call object.
|
|
356
|
-
*
|
|
357
|
-
* @param tool - The tool call object from the LLM response
|
|
358
|
-
* @returns ToolDetails object with name, input, and ID
|
|
359
|
-
*/
|
|
360
|
-
private getToolDetail(tool: any): ToolDetails {
|
|
361
|
-
return {
|
|
362
|
-
toolName: tool.function.name,
|
|
363
|
-
toolInput: JSON.parse(tool.function.arguments || "{}"),
|
|
364
|
-
toolUseId: tool.id
|
|
365
|
-
};
|
|
366
|
-
}
|
|
367
|
-
|
|
368
|
-
/**
|
|
369
|
-
* Creates a tool result object from the tool execution response.
|
|
370
|
-
*
|
|
371
|
-
* @param tool_call_id - The ID of the tool call
|
|
372
|
-
* @param content - The content returned by the tool
|
|
373
|
-
* @returns ToolResult object
|
|
374
|
-
*/
|
|
375
|
-
private getToolResult(tool_call_id: string, content: string): ToolResult {
|
|
376
|
-
let userMessage=undefined
|
|
377
|
-
try {
|
|
378
|
-
let parsed = JSON.parse(content);
|
|
379
|
-
|
|
380
|
-
if (parsed.payload && parsed.payload.content) {
|
|
381
|
-
content = `The browser action has been executed. The screenshot have been captured for your analysis. The tool response is provided in the next user message`
|
|
382
|
-
// this.apiConversationHistory.push()
|
|
383
|
-
userMessage = parsed.payload.content
|
|
384
|
-
}
|
|
385
|
-
} catch (error) {
|
|
386
|
-
|
|
387
|
-
}
|
|
388
|
-
return {
|
|
389
|
-
role: "tool",
|
|
390
|
-
tool_call_id,
|
|
391
|
-
content,
|
|
392
|
-
userMessage
|
|
393
|
-
};
|
|
394
|
-
}
|
|
395
|
-
|
|
396
|
-
/**
|
|
397
|
-
* Fallback method for API requests in case of failures.
|
|
398
|
-
*
|
|
399
|
-
* @throws Error API request fallback not implemented
|
|
400
|
-
*/
|
|
401
|
-
private attemptApiRequest(): any {
|
|
402
|
-
throw new Error("API request fallback not implemented");
|
|
403
|
-
}
|
|
404
|
-
}
|
|
405
|
-
|
|
406
|
-
export { Agent };
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import yaml from 'js-yaml';
|
|
2
|
-
import fs from 'fs';
|
|
3
|
-
import path from 'path';
|
|
4
|
-
|
|
5
|
-
interface PromptData {
|
|
6
|
-
[key: string]: {
|
|
7
|
-
prompt: string;
|
|
8
|
-
};
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* SystemPrompt class for loading and managing system prompts from YAML files
|
|
13
|
-
*/
|
|
14
|
-
class SystemPrompt {
|
|
15
|
-
private filepath: string;
|
|
16
|
-
private key: string;
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Creates a SystemPrompt instance
|
|
20
|
-
* @param {string} filepath - Path to the YAML file containing prompts
|
|
21
|
-
* @param {string} key - Key identifier for the specific prompt
|
|
22
|
-
*/
|
|
23
|
-
constructor(filepath: string = "", key: string = "") {
|
|
24
|
-
this.filepath = filepath;
|
|
25
|
-
this.key = key;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* Loads and returns the prompt text
|
|
30
|
-
* @returns {string} The prompt text
|
|
31
|
-
* @throws {Error} If file cannot be read or parsed
|
|
32
|
-
*/
|
|
33
|
-
toPromptText(): string {
|
|
34
|
-
try {
|
|
35
|
-
const absolutePath = path.resolve(this.filepath);
|
|
36
|
-
const fileContents = fs.readFileSync(absolutePath, 'utf8');
|
|
37
|
-
const data = yaml.load(fileContents) as PromptData;
|
|
38
|
-
|
|
39
|
-
if (!data || typeof data !== 'object') {
|
|
40
|
-
throw new Error('Invalid YAML structure');
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
if (!data[this.key]?.prompt) {
|
|
44
|
-
throw new Error(`Prompt not found for key: ${this.key}`);
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
return data[this.key].prompt;
|
|
48
|
-
} catch (error) {
|
|
49
|
-
console.error(`SystemPrompt Error: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
50
|
-
throw error; // Re-throw to allow caller handling
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
export { SystemPrompt };
|
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
import { UserMessage, UserMessageContent } from "./usermessage";
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Encapsulates task instructions and their related metadata.
|
|
5
|
-
* Handles loading and processing of task instructions from YAML files.
|
|
6
|
-
*/
|
|
7
|
-
const yaml = require('js-yaml');
|
|
8
|
-
const fs = require('fs');
|
|
9
|
-
const path = require('path');
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Interface for tools that can be used within tasks.
|
|
13
|
-
* Each tool has a description and usage example.
|
|
14
|
-
*/
|
|
15
|
-
interface Tools {
|
|
16
|
-
[key: string]: {
|
|
17
|
-
/** Description of what the tool does */
|
|
18
|
-
description: string;
|
|
19
|
-
/** How to use the tool correctly */
|
|
20
|
-
usage: string;
|
|
21
|
-
/** Optional example demonstrating tool usage */
|
|
22
|
-
example?: string;
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* Interface for task data structure as loaded from YAML.
|
|
28
|
-
* Contains task descriptions and expected outputs.
|
|
29
|
-
*/
|
|
30
|
-
interface TaskData {
|
|
31
|
-
[key: string]: {
|
|
32
|
-
/** Description of what the task should accomplish */
|
|
33
|
-
description: string;
|
|
34
|
-
/** Expected output format or content */
|
|
35
|
-
expected_output: string;
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
* Interface for user message structure.
|
|
41
|
-
* Contains message type and text content.
|
|
42
|
-
*/
|
|
43
|
-
interface UserMessages {
|
|
44
|
-
/** The type of user message */
|
|
45
|
-
type: string;
|
|
46
|
-
/** The text content of the message */
|
|
47
|
-
text: string;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
/**
|
|
51
|
-
* Class representing a task instruction.
|
|
52
|
-
* Handles loading task data and converting it to prompts.
|
|
53
|
-
*/
|
|
54
|
-
class TaskInstruction {
|
|
55
|
-
/** Available tools for the task */
|
|
56
|
-
tools: Tools;
|
|
57
|
-
/** Messages from the user for this task */
|
|
58
|
-
userMessages: UserMessageContent[]=[];
|
|
59
|
-
/** The user message object containing input */
|
|
60
|
-
userMessage: UserMessage
|
|
61
|
-
/** Path to the YAML file with task instructions */
|
|
62
|
-
filepath: string;
|
|
63
|
-
/** The section reference within the YAML file */
|
|
64
|
-
refsection: string;
|
|
65
|
-
|
|
66
|
-
/**
|
|
67
|
-
* Creates a new TaskInstruction instance.
|
|
68
|
-
*
|
|
69
|
-
* @param tools - Tools available for this task
|
|
70
|
-
* @param userMessage - User message containing task instructions
|
|
71
|
-
* @param filepath - Path to the YAML file with task data
|
|
72
|
-
* @param refsection - Section name within the YAML file
|
|
73
|
-
*/
|
|
74
|
-
constructor(tools: Tools = {}, userMessage: UserMessage , filepath: string = "", refsection: string = "") {
|
|
75
|
-
this.tools = tools;
|
|
76
|
-
this.userMessage = userMessage;
|
|
77
|
-
this.filepath = filepath;
|
|
78
|
-
this.refsection = refsection;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
/**
|
|
82
|
-
* Converts the task instruction to a prompt format.
|
|
83
|
-
* Loads data from YAML file and combines with user message.
|
|
84
|
-
*
|
|
85
|
-
* @returns Promise with an array of user message content blocks
|
|
86
|
-
* @throws Error if there's an issue processing the task instruction
|
|
87
|
-
*/
|
|
88
|
-
async toPrompt(): Promise<UserMessages[]> {
|
|
89
|
-
try {
|
|
90
|
-
this.userMessages = await this.userMessage.toPrompt();
|
|
91
|
-
const fileContents = fs.readFileSync(path.resolve(this.filepath), 'utf8');
|
|
92
|
-
const data = yaml.load(fileContents) as TaskData;
|
|
93
|
-
const task = data[this.refsection];
|
|
94
|
-
this.userMessages.push({
|
|
95
|
-
type: "text",
|
|
96
|
-
text: `Task Description: ${task.description}\nExpected Output: ${task.expected_output}`
|
|
97
|
-
});
|
|
98
|
-
return this.userMessages;
|
|
99
|
-
} catch (error) {
|
|
100
|
-
console.error(`Error processing task instruction: ${error}`);
|
|
101
|
-
throw error;
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
export { TaskInstruction };
|