nolo-cli 0.1.45 → 0.1.46
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 +272 -118
- package/index.js +73433 -0
- package/package.json +10 -635
- package/LICENSE +0 -21
- package/agent-runtime/agentConfigOptions.ts +0 -12
- package/agent-runtime/agentRecordConfig.ts +0 -101
- package/agent-runtime/agentRecordKeys.ts +0 -14
- package/agent-runtime/agentThread.ts +0 -222
- package/agent-runtime/agentThreadAdmission.ts +0 -74
- package/agent-runtime/dialogMessageRecord.ts +0 -16
- package/agent-runtime/dialogWritePlan.ts +0 -211
- package/agent-runtime/hostAdapter.ts +0 -81
- package/agent-runtime/hybridRecordStore.ts +0 -170
- package/agent-runtime/index.ts +0 -184
- package/agent-runtime/localDialogRead.ts +0 -23
- package/agent-runtime/localLoop.ts +0 -334
- package/agent-runtime/localToolPolicy.ts +0 -179
- package/agent-runtime/localWorkspaceTools.ts +0 -2310
- package/agent-runtime/noloWorkspaceTools.ts +0 -390
- package/agent-runtime/openAiCompatibleProvider.ts +0 -74
- package/agent-runtime/openAiCompatibleProviderConfig.ts +0 -27
- package/agent-runtime/platformChatProvider.ts +0 -229
- package/agent-runtime/providerResolution.ts +0 -302
- package/agent-runtime/runtimeDecision.ts +0 -70
- package/agent-runtime/runtimeFacts.ts +0 -40
- package/agent-runtime/runtimeToolPolicy.ts +0 -191
- package/agent-runtime/runtimeToolSurface.ts +0 -199
- package/agent-runtime/shellCommandPolicy.ts +0 -120
- package/agent-runtime/types.ts +0 -137
- package/agentAliases.ts +0 -40
- package/agentCommandSupport.ts +0 -81
- package/agentInternalCommandEntries.ts +0 -44
- package/agentListCommands.ts +0 -185
- package/agentListHelpers.ts +0 -242
- package/agentMachineCommands.ts +0 -426
- package/agentNameResolver.ts +0 -164
- package/agentPullCommand.ts +0 -142
- package/agentRecordCommands.ts +0 -224
- package/agentRecordHelpers.ts +0 -592
- package/agentRunCommand.ts +0 -568
- package/agentRuntimeCommands.ts +0 -7
- package/agentRuntimeLocal.ts +0 -45
- package/ai/agent/_executeModel.ts +0 -146
- package/ai/agent/agentSlice.ts +0 -557
- package/ai/agent/appWorkingMemory.ts +0 -126
- package/ai/agent/buildEditingContext.ts +0 -378
- package/ai/agent/buildSystemPrompt.ts +0 -599
- package/ai/agent/canvasEditingContext.ts +0 -49
- package/ai/agent/cleanAgentMessages.ts +0 -140
- package/ai/agent/cliChatClient.ts +0 -153
- package/ai/agent/cliExecutor.ts +0 -1465
- package/ai/agent/cliPrompt.ts +0 -10
- package/ai/agent/contextCompiler.ts +0 -107
- package/ai/agent/contextLayerContract.ts +0 -44
- package/ai/agent/createAgentSchema.ts +0 -272
- package/ai/agent/currentTimeContext.ts +0 -65
- package/ai/agent/executeToolCall.ts +0 -58
- package/ai/agent/fetchAgentContexts.ts +0 -42
- package/ai/agent/generatePrompt.ts +0 -3
- package/ai/agent/getFullChatContextKeys.ts +0 -168
- package/ai/agent/guidedCreation/capabilities.ts +0 -84
- package/ai/agent/guidedCreation/types.ts +0 -38
- package/ai/agent/isLiveAudioOnlyAgent.ts +0 -26
- package/ai/agent/liveAudioModel.ts +0 -2
- package/ai/agent/machineRunPermissions.ts +0 -113
- package/ai/agent/pageBuilderHandoffRules.ts +0 -75
- package/ai/agent/persistMessageWithFixedId.ts +0 -37
- package/ai/agent/planSlice.ts +0 -259
- package/ai/agent/referenceUtils.ts +0 -229
- package/ai/agent/runAgentBackground.ts +0 -310
- package/ai/agent/runAgentClientLoop.ts +0 -164
- package/ai/agent/runtimeGuidance.ts +0 -116
- package/ai/agent/serverOrigin.ts +0 -7
- package/ai/agent/startParallelAgentStreams.ts +0 -424
- package/ai/agent/startupProtocol.ts +0 -53
- package/ai/agent/streamAgentChatTurn.ts +0 -2135
- package/ai/agent/streamAgentChatTurnUtils.ts +0 -923
- package/ai/agent/toolFailureGuard.ts +0 -99
- package/ai/agent/types.ts +0 -73
- package/ai/agent/utils/imageOutput.ts +0 -37
- package/ai/agent/utils/publicImageAgentMode.ts +0 -26
- package/ai/agent.ts +0 -2
- package/ai/ai.locale.ts +0 -1165
- package/ai/chat/accumulateToolCallChunks.ts +0 -126
- package/ai/chat/fetchUtils.ts +0 -143
- package/ai/chat/inlineImageUrlsForCustomProvider.ts +0 -122
- package/ai/chat/parseApiError.ts +0 -67
- package/ai/chat/parseMultilineSSE.ts +0 -95
- package/ai/chat/sendOpenAICompletionsRequest.ts +0 -921
- package/ai/chat/sendOpenAIResponseRequest.ts +0 -720
- package/ai/chat/serverProxyRetry.ts +0 -102
- package/ai/chat/shouldUseServerProxy.ts +0 -18
- package/ai/chat/streamRetry.ts +0 -46
- package/ai/chat/updateTotalUsage.ts +0 -89
- package/ai/context/buildReferenceContext.ts +0 -437
- package/ai/context/retention.ts +0 -165
- package/ai/context/tokenUtils.ts +0 -78
- package/ai/index.ts +0 -1
- package/ai/llm/agentCapabilities.ts +0 -74
- package/ai/llm/deepinfra.ts +0 -79
- package/ai/llm/fireworks.ts +0 -68
- package/ai/llm/generateRequestBody.ts +0 -165
- package/ai/llm/getModelContextWindow.ts +0 -93
- package/ai/llm/getPricing.ts +0 -252
- package/ai/llm/imagePricing.ts +0 -66
- package/ai/llm/isResponseAPIModel.ts +0 -13
- package/ai/llm/kimi.ts +0 -22
- package/ai/llm/mimo.ts +0 -99
- package/ai/llm/mistral.ts +0 -21
- package/ai/llm/models.ts +0 -45
- package/ai/llm/openrouterModels.ts +0 -31
- package/ai/llm/providers.ts +0 -313
- package/ai/llm/reasoningModels.ts +0 -27
- package/ai/llm/types.ts +0 -82
- package/ai/llm/usageRequestOptions.ts +0 -59
- package/ai/memory/policy.ts +0 -49
- package/ai/memory/queryShared.ts +0 -167
- package/ai/memory/recentRelationshipRecap.ts +0 -251
- package/ai/memory/remember.ts +0 -111
- package/ai/memory/scope.ts +0 -74
- package/ai/memory/store.ts +0 -20
- package/ai/memory/storeShared.ts +0 -76
- package/ai/memory/types.ts +0 -52
- package/ai/memory/understanding.ts +0 -341
- package/ai/memory/understandingGreeting.ts +0 -264
- package/ai/policy/personalizationDialog.ts +0 -333
- package/ai/policy/runtimePolicy.ts +0 -526
- package/ai/policy/selfUpdateFields.ts +0 -48
- package/ai/policy/types.ts +0 -64
- package/ai/skills/referenceRuntime.ts +0 -274
- package/ai/skills/skillDiagnostics.ts +0 -251
- package/ai/skills/skillDocBuilder.ts +0 -139
- package/ai/skills/skillDocProtocol.ts +0 -526
- package/ai/skills/skillSummaryMarker.ts +0 -26
- package/ai/token/calculatePrice.ts +0 -576
- package/ai/token/missingUsageEstimate.ts +0 -42
- package/ai/token/normalizeUsage.ts +0 -124
- package/ai/token/openaiImageGenerationUsage.ts +0 -56
- package/ai/token/prepareTokenUsageData.ts +0 -93
- package/ai/token/resolveBillingTarget.ts +0 -52
- package/ai/token/saveTokenRecord.ts +0 -53
- package/ai/token/types.ts +0 -103
- package/ai/tools/agent/agentTools.ts +0 -214
- package/ai/tools/agent/agentUpdateShared.ts +0 -311
- package/ai/tools/agent/callAgentTool.ts +0 -139
- package/ai/tools/agent/createAgentTool.ts +0 -512
- package/ai/tools/agent/createDialogTool.ts +0 -69
- package/ai/tools/agent/createSkillAgentTool.ts +0 -62
- package/ai/tools/agent/parallelBudget.ts +0 -221
- package/ai/tools/agent/prepareAgentDraftTool.ts +0 -159
- package/ai/tools/agent/presets/appBuilderPreset.ts +0 -154
- package/ai/tools/agent/runLlmTool.ts +0 -96
- package/ai/tools/agent/runStreamingAgentTool.ts +0 -73
- package/ai/tools/agent/skillAgentArgs.ts +0 -106
- package/ai/tools/agent/startAgentDialogTool.ts +0 -54
- package/ai/tools/agent/streamParallelAgentsTool.ts +0 -123
- package/ai/tools/agent/updateAgentTool.ts +0 -96
- package/ai/tools/agent/updateSelfTool.ts +0 -113
- package/ai/tools/amazonProductScraperTool.ts +0 -86
- package/ai/tools/apifyActorClient.ts +0 -45
- package/ai/tools/appEditGuard.ts +0 -372
- package/ai/tools/appReadSnapshot.ts +0 -153
- package/ai/tools/appTools.ts +0 -1549
- package/ai/tools/applyEditTool.ts +0 -259
- package/ai/tools/applyLineEditsTool.ts +0 -315
- package/ai/tools/browserTools/click.ts +0 -33
- package/ai/tools/browserTools/closeSession.ts +0 -29
- package/ai/tools/browserTools/common.ts +0 -27
- package/ai/tools/browserTools/openSession.ts +0 -48
- package/ai/tools/browserTools/readContent.ts +0 -38
- package/ai/tools/browserTools/selectOption.ts +0 -46
- package/ai/tools/browserTools/typeText.ts +0 -42
- package/ai/tools/category/createCategoryTool.ts +0 -66
- package/ai/tools/category/queryContentsByCategoryTool.ts +0 -69
- package/ai/tools/category/updateContentCategoryTool.ts +0 -75
- package/ai/tools/cfBrowserTools.ts +0 -319
- package/ai/tools/cfSpeechToTextTool.ts +0 -49
- package/ai/tools/checkEnvTool.ts +0 -102
- package/ai/tools/cloudflareCrawlTool.ts +0 -289
- package/ai/tools/codeSearchTool.ts +0 -123
- package/ai/tools/codeTools.ts +0 -101
- package/ai/tools/convertMarxistsBookTool.ts +0 -103
- package/ai/tools/createDocTool.ts +0 -132
- package/ai/tools/createSkillDocTool.ts +0 -155
- package/ai/tools/createWorkflowTool.ts +0 -154
- package/ai/tools/delayTool.ts +0 -31
- package/ai/tools/deleteSpacesTool.ts +0 -325
- package/ai/tools/deleteSpacesToolModel.ts +0 -159
- package/ai/tools/devReloadUtils.ts +0 -29
- package/ai/tools/dialogMessageSearch.ts +0 -137
- package/ai/tools/doctorSkillTool.ts +0 -72
- package/ai/tools/ecommerceScraperTool.ts +0 -86
- package/ai/tools/emailTools.ts +0 -549
- package/ai/tools/evalSkillTool.ts +0 -92
- package/ai/tools/exaSearchTool.ts +0 -63
- package/ai/tools/execShellTool.ts +0 -266
- package/ai/tools/executeSqlTool.ts +0 -192
- package/ai/tools/fetchWebpageSupport.ts +0 -333
- package/ai/tools/fetchWebpageTool.ts +0 -97
- package/ai/tools/geminiImagePreviewTool.ts +0 -386
- package/ai/tools/generateDocxTool.ts +0 -215
- package/ai/tools/googleSearchScraperTool.ts +0 -106
- package/ai/tools/importDataTool.ts +0 -133
- package/ai/tools/importSkillTool.ts +0 -162
- package/ai/tools/index.ts +0 -2290
- package/ai/tools/jdProductScraperTool.ts +0 -821
- package/ai/tools/listUserSpacesTool.ts +0 -113
- package/ai/tools/localFilesTool.ts +0 -276
- package/ai/tools/marxistsOfflineBook.ts +0 -253
- package/ai/tools/modelUsageTools.ts +0 -206
- package/ai/tools/noloWorkspaceReadTools.ts +0 -467
- package/ai/tools/olmOcrTool.ts +0 -33
- package/ai/tools/openaiImageTool.ts +0 -267
- package/ai/tools/prepareTools.ts +0 -193
- package/ai/tools/readDocTool.ts +0 -88
- package/ai/tools/readFileTool.ts +0 -214
- package/ai/tools/readTool.ts +0 -194
- package/ai/tools/readXPostTool.ts +0 -229
- package/ai/tools/readXhsProfileTool.ts +0 -638
- package/ai/tools/rememberMemoryTool.ts +0 -84
- package/ai/tools/remotionVideoTool.ts +0 -151
- package/ai/tools/searchDialogMessagesTool.ts +0 -222
- package/ai/tools/searchWorkspaceTool.ts +0 -259
- package/ai/tools/skillFollowup.ts +0 -86
- package/ai/tools/surfWeatherTool.ts +0 -169
- package/ai/tools/table/addTableRowTool.ts +0 -217
- package/ai/tools/table/createTableTool.ts +0 -326
- package/ai/tools/table/rowTools.ts +0 -386
- package/ai/tools/table/schemaTools.ts +0 -244
- package/ai/tools/table/shareTableTool.ts +0 -148
- package/ai/tools/table/toolShared.ts +0 -129
- package/ai/tools/taobaoTmallProductScraperTool.ts +0 -49
- package/ai/tools/toolApiClient.ts +0 -279
- package/ai/tools/toolNameAliases.ts +0 -70
- package/ai/tools/toolPacks.ts +0 -19
- package/ai/tools/toolResultError.ts +0 -42
- package/ai/tools/toolRunSlice.ts +0 -303
- package/ai/tools/toolSchemaCompatibility.ts +0 -53
- package/ai/tools/uiAskChoiceTool.ts +0 -104
- package/ai/tools/updateContentTitleTool.ts +0 -84
- package/ai/tools/updateDocTool.ts +0 -105
- package/ai/tools/updateUserPreferenceProfileTool.ts +0 -153
- package/ai/tools/wereadGatewayTool.ts +0 -152
- package/ai/tools/whisperTool.ts +0 -76
- package/ai/tools/writeFileTool.ts +0 -213
- package/ai/tools/youtubeScraperTool.ts +0 -116
- package/ai/tools/ziweiChartTool.ts +0 -678
- package/ai/types.ts +0 -58
- package/ai/workflow/workflowExecutor.ts +0 -323
- package/ai/workflow/workflowSlice.ts +0 -73
- package/ai/workflow/workflowTypes.ts +0 -106
- package/app/actions/syncAppRecord.ts +0 -73
- package/app/constants/animationSets.ts +0 -21
- package/app/constants/appEditor.ts +0 -99
- package/app/favorite/deletedFavoriteProjection.ts +0 -31
- package/app/favorite/favoriteSlice.ts +0 -690
- package/app/favorite/type.ts +0 -43
- package/app/hooks/deleteDbKey.ts +0 -254
- package/app/i18n/client.ts +0 -13
- package/app/i18n/i18n.base.ts +0 -14
- package/app/i18n/i18n.config.ts +0 -77
- package/app/i18n/index.ts +0 -15
- package/app/i18n/mapLanguage.ts +0 -11
- package/app/i18n/translations/appBuilder.locale.ts +0 -453
- package/app/i18n/translations/error.locale.ts +0 -246
- package/app/i18n/translations/interface.locale.ts +0 -2206
- package/app/i18n/translations/pricing.locale.ts +0 -397
- package/app/i18n/translations/privacy.locale.ts +0 -168
- package/app/i18n/translations/seo.locale.ts +0 -129
- package/app/i18n/translations/terms.locale.ts +0 -124
- package/app/i18n/types.ts +0 -6
- package/app/notifications/model.ts +0 -77
- package/app/notifications/notificationSlice.ts +0 -141
- package/app/reducer.ts +0 -36
- package/app/settings/dbActionThunks.ts +0 -34
- package/app/settings/defaultSpacePreference.ts +0 -87
- package/app/settings/settingSlice.tsx +0 -1212
- package/app/settings/settingsRecord.ts +0 -8
- package/app/stateViews/runtime.ts +0 -90
- package/app/store.ts +0 -55
- package/app/theme/colors.ts +0 -280
- package/app/theme/fontPreference.ts +0 -77
- package/app/theme/theme.config.ts +0 -120
- package/app/theme/themeModeBootstrap.ts +0 -123
- package/app/types/appSummary.ts +0 -118
- package/app/types.ts +0 -358
- package/app/utils/appKeys.ts +0 -55
- package/app/utils/async.ts +0 -28
- package/app/utils/desktopAgentRuntimeTurnClient.ts +0 -75
- package/app/utils/env.ts +0 -17
- package/app/utils/fileUtils.ts +0 -229
- package/app/utils/imageUtils.ts +0 -274
- package/app/utils/myContentItems.ts +0 -317
- package/app/utils/retryAfter.ts +0 -36
- package/app/utils/retryFetch.ts +0 -61
- package/app/utils/toast.ts +0 -3
- package/auth/action/signUpAction.ts +0 -227
- package/auth/adminPermissions.ts +0 -78
- package/auth/authSlice.ts +0 -531
- package/auth/client/loginRequest.ts +0 -14
- package/auth/resetAuthScopedClientState.ts +0 -27
- package/auth/routes.ts +0 -183
- package/auth/token.ts +0 -63
- package/auth/types.ts +0 -40
- package/authCommands.ts +0 -230
- package/chat/chat.locale.ts +0 -817
- package/chat/dialog/actions/addCybotAction.ts +0 -52
- package/chat/dialog/actions/addReferenceKeysAction.ts +0 -62
- package/chat/dialog/actions/builtinDialogLlm.ts +0 -35
- package/chat/dialog/actions/cleanupCliSession.ts +0 -40
- package/chat/dialog/actions/createDialogAction.ts +0 -379
- package/chat/dialog/actions/createScheduledTaskAction.ts +0 -78
- package/chat/dialog/actions/handleSendMessageAction.ts +0 -202
- package/chat/dialog/actions/handleSendMessageResolver.ts +0 -27
- package/chat/dialog/actions/removeCybotAction.ts +0 -6
- package/chat/dialog/actions/removeDialogAgentAction.ts +0 -44
- package/chat/dialog/actions/replacePrimaryCybotAction.ts +0 -6
- package/chat/dialog/actions/setPrimaryDialogAgentAction.ts +0 -52
- package/chat/dialog/actions/updateDialogSummaryAction.ts +0 -430
- package/chat/dialog/actions/updateDialogTitleAction.ts +0 -151
- package/chat/dialog/actions/updateDialogTitlePolicy.ts +0 -30
- package/chat/dialog/actions/updateTokensAction.ts +0 -233
- package/chat/dialog/dialogAgents.ts +0 -72
- package/chat/dialog/dialogAttachmentCleanup.ts +0 -135
- package/chat/dialog/dialogSlice.ts +0 -985
- package/chat/dialog/dialogTitle.ts +0 -81
- package/chat/dialog/dialogTokenStats.ts +0 -12
- package/chat/dialog/dialogUrl.ts +0 -6
- package/chat/dialog/goal.ts +0 -108
- package/chat/dialog/objectAssistantRegistry.ts +0 -286
- package/chat/dialog/schedule.ts +0 -17
- package/chat/messages/activityCompletion.ts +0 -97
- package/chat/messages/fetchAndCacheMessages.ts +0 -119
- package/chat/messages/fetchConvMsgs.ts +0 -51
- package/chat/messages/fetchMessages.ts +0 -84
- package/chat/messages/fileUrl.ts +0 -13
- package/chat/messages/imagePayloadPersistence.ts +0 -22
- package/chat/messages/messageAgent.ts +0 -8
- package/chat/messages/messageContent.ts +0 -203
- package/chat/messages/messageContract.ts +0 -88
- package/chat/messages/messageSlice.ts +0 -1386
- package/chat/messages/toolThunks.ts +0 -646
- package/chat/messages/types.ts +0 -192
- package/chat/messages/web/toolDisplayName.ts +0 -686
- package/cli/agentAliases.ts +0 -40
- package/cli/agentCommandSupport.ts +0 -81
- package/cli/agentInternalCommandEntries.ts +0 -44
- package/cli/agentListCommands.ts +0 -185
- package/cli/agentListHelpers.ts +0 -242
- package/cli/agentMachineCommands.ts +0 -426
- package/cli/agentNameResolver.ts +0 -164
- package/cli/agentPullCommand.ts +0 -142
- package/cli/agentRecordCommands.ts +0 -224
- package/cli/agentRecordHelpers.ts +0 -592
- package/cli/agentRunCommand.ts +0 -568
- package/cli/agentRuntimeLocal.ts +0 -45
- package/cli/authCommands.ts +0 -230
- package/cli/cliCommandAdapters.ts +0 -28
- package/cli/cliCommandDispatch.ts +0 -66
- package/cli/cliCommandFactories.ts +0 -66
- package/cli/cliCommandTypes.ts +0 -49
- package/cli/cliEnvHelpers.ts +0 -116
- package/cli/cliSpaceHelpers.ts +0 -39
- package/cli/client/agentConfigResolver.ts +0 -1
- package/cli/client/agentRun.ts +0 -735
- package/cli/client/compactDialog.ts +0 -222
- package/cli/client/hybridRecordStore.ts +0 -52
- package/cli/client/localAgentRecords.ts +0 -7
- package/cli/client/localDialogRecords.ts +0 -30
- package/cli/client/localProviderResolver.ts +0 -1
- package/cli/client/localRuntimeAdapter.ts +0 -1098
- package/cli/client/localToolPolicy.ts +0 -8
- package/cli/client/profileConfig.ts +0 -101
- package/cli/client/streamingOutput.ts +0 -38
- package/cli/commandRegistry.ts +0 -98
- package/cli/connectorRunArtifact.ts +0 -120
- package/cli/connectorWebSocketTarget.ts +0 -112
- package/cli/defaultServer.ts +0 -1
- package/cli/dialogAttachmentCleanup.ts +0 -151
- package/cli/dialogCommands.ts +0 -1120
- package/cli/dialogInternalCommandEntries.ts +0 -17
- package/cli/docCreateCommands.ts +0 -345
- package/cli/docInternalCommandEntries.ts +0 -11
- package/cli/docPageHelpers.ts +0 -80
- package/cli/docSkillHelpers.ts +0 -67
- package/cli/docSpaceHelpers.ts +0 -46
- package/cli/globalRecordOperations.ts +0 -258
- package/cli/internalCommandEntries.ts +0 -18
- package/cli/localRuntimeAuthority.ts +0 -182
- package/cli/localRuntimeDb.ts +0 -26
- package/cli/machineCommands.ts +0 -312
- package/cli/machineDaemonCommands.ts +0 -185
- package/cli/machineHeartbeatCommands.ts +0 -30
- package/cli/machineStatusCommands.ts +0 -95
- package/cli/machineWatchCommands.ts +0 -41
- package/cli/machineWsPromptMaterialization.ts +0 -89
- package/cli/machineWsRunDispatch.ts +0 -695
- package/cli/machineWsSession.ts +0 -213
- package/cli/memoryCommands.ts +0 -253
- package/cli/memoryInternalCommandEntries.ts +0 -9
- package/cli/offlineMarxistsAgentCommand.ts +0 -315
- package/cli/qoderUsageProbe.ts +0 -252
- package/cli/runtimeDoctorCommands.ts +0 -174
- package/cli/runtimeModeArgs.ts +0 -33
- package/cli/scriptCommandEntries.ts +0 -66
- package/cli/secretScan.ts +0 -31
- package/cli/systemInternalCommandEntries.ts +0 -65
- package/cli/tableCommands.ts +0 -453
- package/cli/tui/readlineWorkspace.ts +0 -210
- package/cli/tui/session.ts +0 -554
- package/cli/updateCommands.ts +0 -134
- package/cli/workflowInternalCommandEntries.ts +0 -10
- package/cliCommandAdapters.ts +0 -28
- package/cliCommandDispatch.ts +0 -66
- package/cliCommandFactories.ts +0 -66
- package/cliCommandTypes.ts +0 -49
- package/cliEnvHelpers.ts +0 -116
- package/cliSpaceHelpers.ts +0 -39
- package/client/agentConfigResolver.test.ts +0 -69
- package/client/agentConfigResolver.ts +0 -1
- package/client/agentRun.test.ts +0 -1346
- package/client/agentRun.ts +0 -735
- package/client/compactDialog.test.ts +0 -238
- package/client/compactDialog.ts +0 -222
- package/client/hybridRecordStore.test.ts +0 -157
- package/client/hybridRecordStore.ts +0 -52
- package/client/localAgentRecords.test.ts +0 -27
- package/client/localAgentRecords.ts +0 -7
- package/client/localDialogRecords.test.ts +0 -124
- package/client/localDialogRecords.ts +0 -30
- package/client/localProviderResolver.test.ts +0 -102
- package/client/localProviderResolver.ts +0 -1
- package/client/localRuntimeAdapter.test.ts +0 -2809
- package/client/localRuntimeAdapter.ts +0 -1098
- package/client/localRuntimeDryRun.test.ts +0 -135
- package/client/localToolPolicy.test.ts +0 -48
- package/client/localToolPolicy.ts +0 -8
- package/client/profileConfig.test.ts +0 -106
- package/client/profileConfig.ts +0 -101
- package/client/streamingOutput.test.ts +0 -22
- package/client/streamingOutput.ts +0 -38
- package/commandRegistry.ts +0 -98
- package/connector-experimental/capabilities.ts +0 -75
- package/connector-experimental/codexBinary.ts +0 -41
- package/connector-experimental/heartbeatLoop.ts +0 -22
- package/connector-experimental/machineInfo.ts +0 -46
- package/connector-experimental/protocol.ts +0 -54
- package/connectorRunArtifact.ts +0 -120
- package/connectorWebSocketTarget.ts +0 -112
- package/core/builtinAgents.ts +0 -209
- package/core/config.ts +0 -15
- package/core/crypto.ts +0 -51
- package/core/generateKeyPairFromSeedV1.ts +0 -15
- package/core/generateMainKey.ts +0 -22
- package/core/init.ts +0 -41
- package/core/localOrigins.ts +0 -8
- package/core/password.ts +0 -13
- package/core/prefix.ts +0 -23
- package/create/editor/transforms/fromMarkdown/index.ts +0 -260
- package/create/editor/transforms/fromMarkdown/inline.ts +0 -285
- package/create/editor/transforms/fromMarkdown/table.ts +0 -130
- package/create/editor/transforms/markdownToSlate.ts +0 -24
- package/create/editor/transforms/slateToRenderMarkdown.ts +0 -218
- package/create/editor/transforms/slateToSimplifiedMarkdown.ts +0 -224
- package/create/editor/transforms/slateToText.ts +0 -33
- package/create/editor/utils/slateUtils.ts +0 -233
- package/create/space/addSpaceAction.ts +0 -193
- package/create/space/category/categoryActions.ts +0 -427
- package/create/space/changeSpaceAction.ts +0 -36
- package/create/space/constants.ts +0 -8
- package/create/space/content/addContentAction.ts +0 -116
- package/create/space/content/contentThunks.ts +0 -90
- package/create/space/content/deleteContentFromSpaceAction.ts +0 -187
- package/create/space/content/deleteMultipleContentAction.ts +0 -112
- package/create/space/content/moveContentAction.ts +0 -285
- package/create/space/content/updateContentCategoryAction.ts +0 -154
- package/create/space/content/updateContentTitleAction.ts +0 -151
- package/create/space/content/uploadAndAddFileToSpaceAction.ts +0 -98
- package/create/space/contentKeyUtils.ts +0 -117
- package/create/space/deleteSpaceAction.ts +0 -276
- package/create/space/fetchSpaceAction.ts +0 -70
- package/create/space/fetchSpaceSidebarStateAction.ts +0 -26
- package/create/space/loadDefaultSpaceAction.ts +0 -57
- package/create/space/member/addMemberAction.ts +0 -79
- package/create/space/member/fetchUserSpaceMembershipsAction.ts +0 -386
- package/create/space/member/memberThunks.ts +0 -47
- package/create/space/member/removeMemberAction.ts +0 -67
- package/create/space/resolvePreferredSpaceId.ts +0 -113
- package/create/space/sidebarVisibleTypes.ts +0 -260
- package/create/space/space.locale.ts +0 -1087
- package/create/space/spaceAccess.ts +0 -182
- package/create/space/spaceCollapsedState.ts +0 -54
- package/create/space/spaceKeys.ts +0 -65
- package/create/space/spaceSlice.ts +0 -328
- package/create/space/spaceThunks.ts +0 -410
- package/create/space/types.ts +0 -27
- package/create/space/updateSpaceAction.ts +0 -107
- package/create/space/utils/permissions.ts +0 -47
- package/create/types.ts +0 -21
- package/database/actions/agentReadResolution.ts +0 -33
- package/database/actions/common.ts +0 -243
- package/database/actions/deleteFile.ts +0 -40
- package/database/actions/fileContent.ts +0 -125
- package/database/actions/patch.ts +0 -155
- package/database/actions/read.ts +0 -358
- package/database/actions/readAndWait.ts +0 -260
- package/database/actions/readRequestManager.ts +0 -120
- package/database/actions/readResolution.ts +0 -125
- package/database/actions/remove.ts +0 -94
- package/database/actions/replication.ts +0 -477
- package/database/actions/upload.ts +0 -186
- package/database/actions/upsert.ts +0 -56
- package/database/actions/write.ts +0 -146
- package/database/authority/ownerKey.ts +0 -80
- package/database/authority/recordAuthority.ts +0 -67
- package/database/authority/userAuthorityRegistry.ts +0 -54
- package/database/client/fetchUserData.ts +0 -61
- package/database/config.ts +0 -40
- package/database/dbActionThunks.ts +0 -1
- package/database/dbSlice.ts +0 -149
- package/database/fileRing.ts +0 -51
- package/database/fileStorage.ts +0 -232
- package/database/fileUrl.ts +0 -34
- package/database/keys.ts +0 -767
- package/database/queryPrefixes.ts +0 -14
- package/database/requests.ts +0 -443
- package/database/runtimeServerContext.ts +0 -54
- package/database/server/authorityStoreTypes.ts +0 -31
- package/database/server/cliAuthorityBrokerClient.ts +0 -227
- package/database/server/cliAuthorityBrokerServer.ts +0 -283
- package/database/server/cliAuthorityBrokerTypes.ts +0 -43
- package/database/server/cliAuthorityStoreDriver.ts +0 -98
- package/database/server/db.ts +0 -99
- package/database/server/dbPath.ts +0 -20
- package/database/server/ensureDbOpen.ts +0 -12
- package/database/server/legacyServerDb.ts +0 -58
- package/database/server/levelAuthorityStore.ts +0 -114
- package/database/server/memoryAuthorityStore.ts +0 -133
- package/database/server/serverStoreFactory.ts +0 -118
- package/database/tenantPlacement.ts +0 -57
- package/database/tombstones.ts +0 -52
- package/database/userDataMerge.ts +0 -95
- package/database/userPreferenceRegister.ts +0 -131
- package/database/utils/ulid.ts +0 -1
- package/defaultServer.ts +0 -1
- package/dialogAttachmentCleanup.ts +0 -151
- package/dialogCommands.ts +0 -1120
- package/dialogInternalCommandEntries.ts +0 -17
- package/docCreateCommands.ts +0 -345
- package/docInternalCommandEntries.ts +0 -11
- package/docPageHelpers.ts +0 -80
- package/docSkillHelpers.ts +0 -67
- package/docSpaceHelpers.ts +0 -46
- package/globalRecordOperations.ts +0 -258
- package/index.ts +0 -78
- package/integrations/anthropic/anthropicModels.ts +0 -47
- package/integrations/deepseek/models.ts +0 -37
- package/integrations/google/models.ts +0 -341
- package/integrations/openai/chatCompletionStreamMode.ts +0 -10
- package/integrations/openai/filterAndCleanMessages.ts +0 -284
- package/integrations/openai/flexTier.ts +0 -102
- package/integrations/openai/generateOpenAIRequestBody.ts +0 -271
- package/integrations/openai/generateResponseRequestBody.ts +0 -77
- package/integrations/openai/models.ts +0 -271
- package/integrations/openai/providerBodyCompatibility.ts +0 -23
- package/integrations/openai/responsesHelpers.ts +0 -297
- package/integrations/x-reader/types.ts +0 -109
- package/integrations/xai/models.ts +0 -13
- package/integrations/xhs-reader/redaction.ts +0 -68
- package/integrations/xhs-reader/types.ts +0 -277
- package/integrations/xhs-reader/url.ts +0 -80
- package/internalCommandEntries.ts +0 -18
- package/localRuntimeAuthority.ts +0 -182
- package/localRuntimeDb.ts +0 -26
- package/machineCommands.ts +0 -312
- package/machineDaemonCommands.ts +0 -185
- package/machineHeartbeatCommands.ts +0 -30
- package/machineStatusCommands.ts +0 -95
- package/machineWatchCommands.ts +0 -41
- package/machineWsPromptMaterialization.ts +0 -89
- package/machineWsRunDispatch.ts +0 -695
- package/machineWsSession.ts +0 -213
- package/memoryCommands.ts +0 -253
- package/memoryInternalCommandEntries.ts +0 -9
- package/offlineMarxistsAgentCommand.ts +0 -315
- package/qoderUsageProbe.ts +0 -252
- package/render/contentIcon/types.ts +0 -167
- package/render/page/createPageAction.ts +0 -183
- package/render/page/docSlice.ts +0 -495
- package/render/page/types.ts +0 -19
- package/render/table/activityColumns.ts +0 -6
- package/render/table/createTableAction.ts +0 -274
- package/render/table/deleteTableAction.ts +0 -193
- package/render/table/fetchAndCacheTableRows.ts +0 -174
- package/render/table/tableSlice.ts +0 -1167
- package/render/table/toolValueUtils.ts +0 -363
- package/render/table/types.ts +0 -262
- package/render/table/utils/tableSerialization.ts +0 -50
- package/runtimeDoctorCommands.ts +0 -174
- package/runtimeModeArgs.ts +0 -33
- package/scriptCommandEntries.ts +0 -66
- package/secretScan.ts +0 -31
- package/server/handlers/agentRun/types.ts +0 -105
- package/share/action.ts +0 -225
- package/share/helpers.ts +0 -302
- package/share/keys.ts +0 -243
- package/share/publicSharePolicy.ts +0 -27
- package/share/shareSlice.ts +0 -53
- package/share/types.ts +0 -100
- package/systemInternalCommandEntries.ts +0 -65
- package/tableCommands.ts +0 -453
- package/tui/readlineWorkspace.ts +0 -210
- package/tui/session.ts +0 -554
- package/updateCommands.ts +0 -134
- package/workflowInternalCommandEntries.ts +0 -10
|
@@ -1,221 +0,0 @@
|
|
|
1
|
-
import { prepareTokenUsageData } from "../../token/prepareTokenUsageData";
|
|
2
|
-
import type { RawUsage } from "../../token/types";
|
|
3
|
-
|
|
4
|
-
const roundCredits = (value: number) => Number(value.toFixed(6));
|
|
5
|
-
const toRoundedFiniteNumber = (value: unknown): number | null =>
|
|
6
|
-
typeof value === "number" && Number.isFinite(value) ? roundCredits(value) : null;
|
|
7
|
-
const getUsageCost = (usage: unknown): number | null => {
|
|
8
|
-
if (!usage || typeof usage !== "object") {
|
|
9
|
-
return null;
|
|
10
|
-
}
|
|
11
|
-
const cost = (usage as { cost?: unknown }).cost;
|
|
12
|
-
return typeof cost === "number" && Number.isFinite(cost) && cost >= 0
|
|
13
|
-
? roundCredits(cost)
|
|
14
|
-
: null;
|
|
15
|
-
};
|
|
16
|
-
const getUsageBillingServiceTier = (usage: unknown): string | null => {
|
|
17
|
-
if (!usage || typeof usage !== "object") {
|
|
18
|
-
return null;
|
|
19
|
-
}
|
|
20
|
-
const serviceTier = (usage as { billing_service_tier?: unknown }).billing_service_tier;
|
|
21
|
-
return typeof serviceTier === "string" && serviceTier.trim()
|
|
22
|
-
? serviceTier.trim()
|
|
23
|
-
: null;
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
const normalizePositiveNumber = (value: unknown): number | undefined => {
|
|
27
|
-
if (typeof value !== "number" || !Number.isFinite(value) || value <= 0) {
|
|
28
|
-
return undefined;
|
|
29
|
-
}
|
|
30
|
-
return roundCredits(value);
|
|
31
|
-
};
|
|
32
|
-
|
|
33
|
-
export const normalizeBudgetCredits = (value: unknown): number | undefined =>
|
|
34
|
-
normalizePositiveNumber(value);
|
|
35
|
-
|
|
36
|
-
export interface ParallelBranchPricingInput {
|
|
37
|
-
usage?: unknown;
|
|
38
|
-
agentKey: string;
|
|
39
|
-
dialogId?: string | null;
|
|
40
|
-
agentConfig: {
|
|
41
|
-
id?: string;
|
|
42
|
-
model?: string | null;
|
|
43
|
-
provider?: string | null;
|
|
44
|
-
inputPrice?: number | null;
|
|
45
|
-
outputPrice?: number | null;
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
export interface ParallelBranchPricingResult {
|
|
50
|
-
spentCredits: number | null;
|
|
51
|
-
billedModel: string | null;
|
|
52
|
-
billedProvider: string | null;
|
|
53
|
-
billingServiceTier: string | null;
|
|
54
|
-
pricingError: string | null;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
export const calculateParallelBranchPricing = (
|
|
58
|
-
input: ParallelBranchPricingInput
|
|
59
|
-
): ParallelBranchPricingResult => {
|
|
60
|
-
if (!input.usage || typeof input.usage !== "object") {
|
|
61
|
-
return {
|
|
62
|
-
spentCredits: null,
|
|
63
|
-
billedModel: null,
|
|
64
|
-
billedProvider: null,
|
|
65
|
-
billingServiceTier: null,
|
|
66
|
-
pricingError: "missing usage",
|
|
67
|
-
};
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
const model =
|
|
71
|
-
typeof input.agentConfig.model === "string" && input.agentConfig.model.trim()
|
|
72
|
-
? input.agentConfig.model.trim()
|
|
73
|
-
: null;
|
|
74
|
-
const provider =
|
|
75
|
-
typeof input.agentConfig.provider === "string" && input.agentConfig.provider.trim()
|
|
76
|
-
? input.agentConfig.provider.trim()
|
|
77
|
-
: null;
|
|
78
|
-
const fallbackUsageCost = getUsageCost(input.usage);
|
|
79
|
-
const fallbackBillingServiceTier = getUsageBillingServiceTier(input.usage);
|
|
80
|
-
if (!model) {
|
|
81
|
-
return {
|
|
82
|
-
spentCredits: null,
|
|
83
|
-
billedModel: null,
|
|
84
|
-
billedProvider: null,
|
|
85
|
-
billingServiceTier: null,
|
|
86
|
-
pricingError: "missing model",
|
|
87
|
-
};
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
try {
|
|
91
|
-
const prepared = prepareTokenUsageData({
|
|
92
|
-
rawUsage: input.usage as RawUsage,
|
|
93
|
-
agentConfig: {
|
|
94
|
-
id: input.agentConfig.id ?? input.agentKey,
|
|
95
|
-
model,
|
|
96
|
-
...(typeof input.agentConfig.provider === "string" &&
|
|
97
|
-
input.agentConfig.provider.trim()
|
|
98
|
-
? { provider: input.agentConfig.provider.trim() }
|
|
99
|
-
: {}),
|
|
100
|
-
...(typeof input.agentConfig.inputPrice === "number" &&
|
|
101
|
-
Number.isFinite(input.agentConfig.inputPrice)
|
|
102
|
-
? { inputPrice: input.agentConfig.inputPrice }
|
|
103
|
-
: {}),
|
|
104
|
-
...(typeof input.agentConfig.outputPrice === "number" &&
|
|
105
|
-
Number.isFinite(input.agentConfig.outputPrice)
|
|
106
|
-
? { outputPrice: input.agentConfig.outputPrice }
|
|
107
|
-
: {}),
|
|
108
|
-
},
|
|
109
|
-
cybotId: input.agentKey,
|
|
110
|
-
dialogId: input.dialogId ?? `parallel-${input.agentKey}`,
|
|
111
|
-
});
|
|
112
|
-
const preparedCost = toRoundedFiniteNumber(prepared.tokenData.cost);
|
|
113
|
-
if (preparedCost != null) {
|
|
114
|
-
return {
|
|
115
|
-
spentCredits: preparedCost,
|
|
116
|
-
billedModel: prepared.billedModel,
|
|
117
|
-
billedProvider: prepared.recordProvider,
|
|
118
|
-
billingServiceTier: prepared.billedServiceTier ?? null,
|
|
119
|
-
pricingError: null,
|
|
120
|
-
};
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
if (fallbackUsageCost != null) {
|
|
124
|
-
return {
|
|
125
|
-
spentCredits: fallbackUsageCost,
|
|
126
|
-
billedModel: prepared.billedModel ?? model,
|
|
127
|
-
billedProvider: prepared.recordProvider ?? provider,
|
|
128
|
-
billingServiceTier:
|
|
129
|
-
prepared.billedServiceTier ?? fallbackBillingServiceTier ?? null,
|
|
130
|
-
pricingError: null,
|
|
131
|
-
};
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
return {
|
|
135
|
-
spentCredits: null,
|
|
136
|
-
billedModel: null,
|
|
137
|
-
billedProvider: null,
|
|
138
|
-
billingServiceTier: null,
|
|
139
|
-
pricingError: "invalid cost",
|
|
140
|
-
};
|
|
141
|
-
} catch (error: any) {
|
|
142
|
-
if (fallbackUsageCost != null) {
|
|
143
|
-
return {
|
|
144
|
-
spentCredits: fallbackUsageCost,
|
|
145
|
-
billedModel: model,
|
|
146
|
-
billedProvider: provider,
|
|
147
|
-
billingServiceTier: fallbackBillingServiceTier,
|
|
148
|
-
pricingError: null,
|
|
149
|
-
};
|
|
150
|
-
}
|
|
151
|
-
return {
|
|
152
|
-
spentCredits: null,
|
|
153
|
-
billedModel: null,
|
|
154
|
-
billedProvider: null,
|
|
155
|
-
billingServiceTier: null,
|
|
156
|
-
pricingError: error?.message || String(error),
|
|
157
|
-
};
|
|
158
|
-
}
|
|
159
|
-
};
|
|
160
|
-
|
|
161
|
-
export interface ParallelCostSummary {
|
|
162
|
-
spentCredits: number;
|
|
163
|
-
pricedBranches: number;
|
|
164
|
-
unpricedBranches: number;
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
export interface ParallelBudgetSummary extends ParallelCostSummary {
|
|
168
|
-
budgetCredits: number;
|
|
169
|
-
remainingCredits: number;
|
|
170
|
-
exhausted: boolean;
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
export const summarizeParallelCosts = (
|
|
174
|
-
results: Array<{ spentCredits?: number | null; ok?: boolean }>
|
|
175
|
-
): ParallelCostSummary => {
|
|
176
|
-
const spentCredits = roundCredits(
|
|
177
|
-
results.reduce(
|
|
178
|
-
(sum, item) =>
|
|
179
|
-
sum +
|
|
180
|
-
(typeof item.spentCredits === "number" && Number.isFinite(item.spentCredits)
|
|
181
|
-
? item.spentCredits
|
|
182
|
-
: 0),
|
|
183
|
-
0
|
|
184
|
-
)
|
|
185
|
-
);
|
|
186
|
-
|
|
187
|
-
return {
|
|
188
|
-
spentCredits,
|
|
189
|
-
pricedBranches: results.filter(
|
|
190
|
-
(item) => typeof item.spentCredits === "number" && Number.isFinite(item.spentCredits)
|
|
191
|
-
).length,
|
|
192
|
-
unpricedBranches: results.filter(
|
|
193
|
-
(item) =>
|
|
194
|
-
item.ok &&
|
|
195
|
-
(item.spentCredits == null ||
|
|
196
|
-
(typeof item.spentCredits === "number" && !Number.isFinite(item.spentCredits)))
|
|
197
|
-
).length,
|
|
198
|
-
};
|
|
199
|
-
};
|
|
200
|
-
|
|
201
|
-
export const summarizeParallelBudget = (input: {
|
|
202
|
-
budgetCredits?: number;
|
|
203
|
-
results: Array<{ spentCredits?: number | null; ok?: boolean }>;
|
|
204
|
-
}): ParallelBudgetSummary | null => {
|
|
205
|
-
const budgetCredits = normalizePositiveNumber(input.budgetCredits);
|
|
206
|
-
if (budgetCredits === undefined) {
|
|
207
|
-
return null;
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
const costSummary = summarizeParallelCosts(input.results);
|
|
211
|
-
const remainingCredits = roundCredits(
|
|
212
|
-
Math.max(0, budgetCredits - costSummary.spentCredits)
|
|
213
|
-
);
|
|
214
|
-
|
|
215
|
-
return {
|
|
216
|
-
...costSummary,
|
|
217
|
-
budgetCredits,
|
|
218
|
-
remainingCredits,
|
|
219
|
-
exhausted: remainingCredits <= 0,
|
|
220
|
-
};
|
|
221
|
-
};
|
|
@@ -1,159 +0,0 @@
|
|
|
1
|
-
import { DEFAULT_MODEL } from "../../llm/providers";
|
|
2
|
-
import {
|
|
3
|
-
GUIDED_AGENT_CAPABILITIES,
|
|
4
|
-
mapCapabilityIdsToToolIds,
|
|
5
|
-
} from "../../agent/guidedCreation/capabilities";
|
|
6
|
-
import type {
|
|
7
|
-
GuidedAgentCapabilityId,
|
|
8
|
-
GuidedAgentDraft,
|
|
9
|
-
GuidedAgentReferenceChoice,
|
|
10
|
-
} from "../../agent/guidedCreation/types";
|
|
11
|
-
|
|
12
|
-
export type PrepareAgentDraftToolArgs = Partial<GuidedAgentDraft>;
|
|
13
|
-
|
|
14
|
-
const capabilityIds = new Set(Object.keys(GUIDED_AGENT_CAPABILITIES));
|
|
15
|
-
|
|
16
|
-
const trim = (value: unknown) =>
|
|
17
|
-
typeof value === "string" ? value.trim() : "";
|
|
18
|
-
|
|
19
|
-
const stringArray = (value: unknown): string[] =>
|
|
20
|
-
Array.isArray(value)
|
|
21
|
-
? value.map((item) => trim(item)).filter(Boolean)
|
|
22
|
-
: [];
|
|
23
|
-
|
|
24
|
-
const guidedCapabilityArray = (value: unknown): GuidedAgentCapabilityId[] =>
|
|
25
|
-
stringArray(value).filter((id): id is GuidedAgentCapabilityId =>
|
|
26
|
-
capabilityIds.has(id)
|
|
27
|
-
);
|
|
28
|
-
|
|
29
|
-
const referencesArray = (value: unknown): GuidedAgentReferenceChoice[] =>
|
|
30
|
-
Array.isArray(value)
|
|
31
|
-
? value
|
|
32
|
-
.filter((item): item is Record<string, unknown> =>
|
|
33
|
-
!!item && typeof item === "object" && !Array.isArray(item)
|
|
34
|
-
)
|
|
35
|
-
.map((item) => ({
|
|
36
|
-
dbKey: trim(item.dbKey),
|
|
37
|
-
title: trim(item.title),
|
|
38
|
-
type: item.type === "instruction" ? "instruction" : "knowledge",
|
|
39
|
-
selected: item.selected === true,
|
|
40
|
-
...(trim(item.reason) ? { reason: trim(item.reason) } : {}),
|
|
41
|
-
}))
|
|
42
|
-
.filter((item) => item.dbKey)
|
|
43
|
-
: [];
|
|
44
|
-
|
|
45
|
-
const buildPrompt = (args: PrepareAgentDraftToolArgs) => {
|
|
46
|
-
const prompt = trim(args.prompt);
|
|
47
|
-
if (prompt) return prompt;
|
|
48
|
-
const name = trim(args.name) || "用户的专属 AI";
|
|
49
|
-
const summary = trim(args.promptSummary) || trim(args.introduction);
|
|
50
|
-
return [
|
|
51
|
-
`你是${name}。`,
|
|
52
|
-
summary || "你需要理解用户目标,并给出清晰、可执行、有边界的帮助。",
|
|
53
|
-
"如果信息不足,先提出必要澄清问题;不要编造用户没有确认的资料来源。",
|
|
54
|
-
].join("\n");
|
|
55
|
-
};
|
|
56
|
-
|
|
57
|
-
export const buildPreparedAgentDraft = (
|
|
58
|
-
args: PrepareAgentDraftToolArgs
|
|
59
|
-
): GuidedAgentDraft => {
|
|
60
|
-
const selectedCapabilities = guidedCapabilityArray(args.capabilityIds);
|
|
61
|
-
const providedToolIds = stringArray(args.toolIds);
|
|
62
|
-
const mappedToolIds = mapCapabilityIdsToToolIds(selectedCapabilities);
|
|
63
|
-
return {
|
|
64
|
-
name: trim(args.name),
|
|
65
|
-
introduction: trim(args.introduction),
|
|
66
|
-
prompt: buildPrompt(args),
|
|
67
|
-
promptSummary: trim(args.promptSummary),
|
|
68
|
-
provider: trim(args.provider) || DEFAULT_MODEL.provider,
|
|
69
|
-
model: trim(args.model) || DEFAULT_MODEL.name,
|
|
70
|
-
isPublic: args.isPublic === true,
|
|
71
|
-
capabilityIds: selectedCapabilities,
|
|
72
|
-
toolIds: Array.from(new Set([...providedToolIds, ...mappedToolIds])),
|
|
73
|
-
references: referencesArray(args.references),
|
|
74
|
-
tags: stringArray(args.tags),
|
|
75
|
-
unresolved: stringArray(args.unresolved),
|
|
76
|
-
};
|
|
77
|
-
};
|
|
78
|
-
|
|
79
|
-
export const prepareAgentDraftToolFunctionSchema = {
|
|
80
|
-
name: "prepareAgentDraft",
|
|
81
|
-
description:
|
|
82
|
-
"整理一个可预览的 Agent 创建草稿。只生成草稿,不创建真实 Agent 记录。",
|
|
83
|
-
parameters: {
|
|
84
|
-
type: "object",
|
|
85
|
-
properties: {
|
|
86
|
-
name: { type: "string", description: "建议的 Agent 名称。" },
|
|
87
|
-
introduction: { type: "string", description: "面向用户展示的简介。" },
|
|
88
|
-
prompt: { type: "string", description: "完整系统 prompt 草稿。" },
|
|
89
|
-
promptSummary: { type: "string", description: "prompt 的简短摘要。" },
|
|
90
|
-
provider: { type: "string", description: "建议 provider。" },
|
|
91
|
-
model: { type: "string", description: "建议模型名称。" },
|
|
92
|
-
isPublic: { type: "boolean", description: "是否建议公开。" },
|
|
93
|
-
capabilityIds: {
|
|
94
|
-
type: "array",
|
|
95
|
-
items: {
|
|
96
|
-
type: "string",
|
|
97
|
-
enum: Object.keys(GUIDED_AGENT_CAPABILITIES),
|
|
98
|
-
},
|
|
99
|
-
description: "已确认或高度确定的能力标签。",
|
|
100
|
-
},
|
|
101
|
-
toolIds: {
|
|
102
|
-
type: "array",
|
|
103
|
-
items: { type: "string" },
|
|
104
|
-
description: "可选的底层工具名;通常由 capabilityIds 推导。",
|
|
105
|
-
},
|
|
106
|
-
references: {
|
|
107
|
-
type: "array",
|
|
108
|
-
items: {
|
|
109
|
-
type: "object",
|
|
110
|
-
properties: {
|
|
111
|
-
dbKey: { type: "string" },
|
|
112
|
-
title: { type: "string" },
|
|
113
|
-
type: { type: "string", enum: ["knowledge", "instruction"] },
|
|
114
|
-
selected: { type: "boolean" },
|
|
115
|
-
reason: { type: "string" },
|
|
116
|
-
},
|
|
117
|
-
required: ["dbKey"],
|
|
118
|
-
},
|
|
119
|
-
description: "建议挂载的知识引用,默认等待用户确认。",
|
|
120
|
-
},
|
|
121
|
-
tags: {
|
|
122
|
-
type: "array",
|
|
123
|
-
items: { type: "string" },
|
|
124
|
-
},
|
|
125
|
-
unresolved: {
|
|
126
|
-
type: "array",
|
|
127
|
-
items: { type: "string" },
|
|
128
|
-
description: "仍需确认的字段或问题。",
|
|
129
|
-
},
|
|
130
|
-
},
|
|
131
|
-
required: ["name", "introduction", "promptSummary"],
|
|
132
|
-
},
|
|
133
|
-
};
|
|
134
|
-
|
|
135
|
-
export async function prepareAgentDraftToolFunc(
|
|
136
|
-
args: PrepareAgentDraftToolArgs
|
|
137
|
-
): Promise<{
|
|
138
|
-
rawData: { draft: GuidedAgentDraft; createUrl: string };
|
|
139
|
-
displayData: string;
|
|
140
|
-
}> {
|
|
141
|
-
const draft = buildPreparedAgentDraft(args);
|
|
142
|
-
const missing = draft.unresolved.length
|
|
143
|
-
? `\n- 待确认: ${draft.unresolved.join(", ")}`
|
|
144
|
-
: "";
|
|
145
|
-
return {
|
|
146
|
-
rawData: {
|
|
147
|
-
draft,
|
|
148
|
-
createUrl: "/create/agent",
|
|
149
|
-
},
|
|
150
|
-
displayData: [
|
|
151
|
-
`Agent 草稿: ${draft.name || "未命名 AI"}`,
|
|
152
|
-
draft.promptSummary ? `- 摘要: ${draft.promptSummary}` : "",
|
|
153
|
-
draft.capabilityIds.length
|
|
154
|
-
? `- 能力: ${draft.capabilityIds.join(", ")}`
|
|
155
|
-
: "",
|
|
156
|
-
missing,
|
|
157
|
-
].filter(Boolean).join("\n"),
|
|
158
|
-
};
|
|
159
|
-
}
|
|
@@ -1,154 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* App Builder 预设:面向非技术用户的网站型小应用构建助手配置
|
|
3
|
-
* 用途:在 AgentForm 中预填充,或通过 createAgent 工具一键创建
|
|
4
|
-
*
|
|
5
|
-
* Maintenance note:
|
|
6
|
-
* - The online App Builder agent record is the runtime source of truth.
|
|
7
|
-
* - Keep this preset as a creation/bootstrap template only.
|
|
8
|
-
* - To make App Builder fully online-truth-only, replace consumers of this
|
|
9
|
-
* preset with a read/pull of agent-pub-01APPBUILDER00000001YAII3I and leave
|
|
10
|
-
* only a tiny emergency placeholder here.
|
|
11
|
-
*/
|
|
12
|
-
import { FIREWORKS_KIMI_LATEST_MODEL } from "../../../llm/kimi";
|
|
13
|
-
|
|
14
|
-
export const APP_BUILDER_PRESET = {
|
|
15
|
-
name: "App Builder",
|
|
16
|
-
introduction: "帮你把想法变成真正可以访问的网站型小应用,无需任何编程知识",
|
|
17
|
-
model: FIREWORKS_KIMI_LATEST_MODEL,
|
|
18
|
-
provider: "fireworks",
|
|
19
|
-
inputPrice: 0.95 * 8,
|
|
20
|
-
outputPrice: 4 * 8,
|
|
21
|
-
useServerProxy: true,
|
|
22
|
-
greeting:
|
|
23
|
-
`你好!我是 App Builder 🚀
|
|
24
|
-
|
|
25
|
-
**如果你想改这个应用**,直接告诉我要改什么就行——
|
|
26
|
-
• "把首页改得更温柔一点"
|
|
27
|
-
• "加一个预约入口"
|
|
28
|
-
• "让博客页更适合手机阅读"
|
|
29
|
-
|
|
30
|
-
我会自动读取现有代码、修改并重新发布,你不需要动任何代码。
|
|
31
|
-
|
|
32
|
-
**如果你想新建一个应用**,直接描述你想做的网站或小应用,我来帮你构建并生成可访问的链接。
|
|
33
|
-
|
|
34
|
-
比如:个人品牌站、博客 + AI 分身、咨询预约页、作品集站、轻互动工具……`,
|
|
35
|
-
tools: [
|
|
36
|
-
"appPreflight",
|
|
37
|
-
"appDeploy",
|
|
38
|
-
"appList",
|
|
39
|
-
"appDelete",
|
|
40
|
-
"appRead",
|
|
41
|
-
"openAIGptImage",
|
|
42
|
-
"createTable",
|
|
43
|
-
"addTableRow",
|
|
44
|
-
"addTableRows",
|
|
45
|
-
"queryTableRows",
|
|
46
|
-
"updateTableRow",
|
|
47
|
-
"deleteTableRow",
|
|
48
|
-
],
|
|
49
|
-
prompt: `你是一个应用构建助手,专门帮助没有任何编程经验的用户创建和管理 Web 应用。
|
|
50
|
-
|
|
51
|
-
## 工作方式
|
|
52
|
-
|
|
53
|
-
1. **理解需求**:用简单的对话了解用户想要什么,最多问 1-2 个关键问题,不要追问太多技术细节
|
|
54
|
-
2. **自动构建**:根据用户描述,自动生成代码并调用部署工具,用户不需要看到任何代码
|
|
55
|
-
3. **给出结果**:部署成功后,立即告诉用户可以访问的链接
|
|
56
|
-
4. **持续迭代**:用户说"帮我加个功能"或"改一下样式",先用 appList 找到目标应用,再用 appRead 读取现有代码;一旦拿到 appId,后续修改和重发都必须复用这个 appId
|
|
57
|
-
5. **管理应用**:用户问"我有哪些应用",先调用 appList;用户说"删掉它"时,也先从 appList 确认目标 appId,再按 appId 删除,不要靠 name 兜底
|
|
58
|
-
6. **先预检再部署**:生成或修改完代码后,先调用 \`appPreflight\` 看问题;只有预检通过后再调用 \`appDeploy\`
|
|
59
|
-
7. **收到 repairPlan 就直接修**:如果 \`appPreflight\` 或 \`appDeploy\` 返回 \`repairPlan\` / \`issues\`,立即基于当前代码做定点修复并重新预检,不要先问用户要不要修,也不要整页重写
|
|
60
|
-
8. **遇到通道异常就止损**:如果工具返回 HTML / 非 JSON / transport failure / \`retryable=false\`,停止自动部署重试;这代表当前是平台接口异常,不是代码问题
|
|
61
|
-
9. **看到部署产物先止损**:如果 \`appRead\` 读出来的是 HTML 壳、importmap、压缩 bundle,或明显不像原始源码文件,说明当前拿到的更像部署产物而不是可维护源码。此时如果用户只是想“小改一处”,不要静默整站重写;必须先告诉用户“当前缺少原始源码快照,继续修改更像整体重建”,得到确认后再继续。
|
|
62
|
-
10. **视觉微调默认走设计系统**:用户说“字大一点”“颜色柔和一点”“卡片圆一点”这类小改动时,优先修改现有主题 token / design system;如果当前应用还没有,就先补一层最小共享 token(颜色、字号层级、间距、圆角、阴影),再基于 token 调整,不要顺手重做整页结构。
|
|
63
|
-
11. **项目素材直接出图**:如果用户要首页插画、海报、封面、功能配图、活动横幅、按钮图标草图等视觉素材,优先调用 \`openAIGptImage\` 生成或改图,再把产物接入当前应用;不要只给文案描述。
|
|
64
|
-
|
|
65
|
-
## 对话风格
|
|
66
|
-
|
|
67
|
-
- 语气轻松友好,避免所有技术术语(不说 Worker、JavaScript、API、部署等词)
|
|
68
|
-
- 部署成功后,用 1-2 句话说明应用能做什么、怎么使用
|
|
69
|
-
- 如果用户描述模糊,举例说明你能做什么,让用户选择或细化
|
|
70
|
-
- **绝不把代码展示给用户**,除非用户明确说"我想看代码"
|
|
71
|
-
- 优先把需求收敛成“内容驱动的网站型小应用”:个人品牌站、博客 + AI 助手、咨询/预约站、作品集、知识站、轻互动工具
|
|
72
|
-
|
|
73
|
-
## 技术规范(内部遵守,不暴露给用户)
|
|
74
|
-
|
|
75
|
-
简单应用可以直接生成 \`export default { fetch }\`。
|
|
76
|
-
复杂交互、图表、组件化界面优先使用 React SPA 模式:调用 \`appDeploy\` 时传 \`framework: "react-spa"\` 和 \`files\`,推荐至少包含 \`main.tsx\` 与 \`App.tsx\`。
|
|
77
|
-
严禁把 React 组件直接塞进 \`code\` 字段当单文件 Worker 部署;只要出现 \`import React\`、\`react-dom/client\`、\`createRoot\`、JSX 组件树,就必须走 \`framework: "react-spa"\` + \`files\`。
|
|
78
|
-
如果上游临时生成的是 \`pages\` 字段,可直接原样传给 \`appDeploy\`,系统会兼容成 \`files\`;但你在新回复里应优先自己使用 \`files\` 命名。
|
|
79
|
-
React SPA 当前优先支持这些内置依赖:\`react\`、\`react-dom/client\`、\`react-icons/lu\`、\`echarts\`、\`echarts-for-react\`、\`docx\`、\`@xyflow/react\`、\`three\`、\`@react-three/fiber\`、\`@react-three/drei\`、\`leaflet\`、\`react-leaflet\`、\`xlsx\`、\`d3\`、\`recharts\`、\`dayjs\`。
|
|
80
|
-
React SPA 暂不使用 CSS 文件 import;优先用内联样式、style 对象或组件内 style 标签。像 flow / three 这类库如果默认文档依赖外部 CSS,请直接在应用内补最小必要样式,不要写 \`import "./x.css"\`。leaflet 的 CSS 会由平台自动注入,无需手动 import。
|
|
81
|
-
|
|
82
|
-
**设计系统与小改动纪律**:
|
|
83
|
-
- 新建 React SPA 时,默认先建立一层轻量设计系统(如 \`theme\` / \`tokens\` / \`designSystem\` 对象),至少统一:\`colors\`、\`typography\`、\`spacing\`、\`radius\`、\`shadow\`。
|
|
84
|
-
- 如果现有应用已经有主题变量、token、共享样式常量或 design system,优先沿用和扩展,不要再平行创建第二套。
|
|
85
|
-
- 如果现有应用还是旧写法:样式值直接硬编码在多个组件 / 内联 style / 重复常量里,而用户需求又是字体、颜色、间距、圆角、阴影这类视觉微调,默认先做一次**最小设计系统迁移**:把这批视觉值抽到一层很薄的 \`tokens\` / \`theme\` 对象(必要时可新增 \`tokens.ts\`),再让当前页面消费它。除非用户明确要求“只改数字不要重构”,否则不要继续在旧代码上追加更多分散硬编码。
|
|
86
|
-
- 用户只要求调整字体大小、字重、颜色、圆角、阴影、间距等视觉参数时,优先改 token 或当前命中的局部组件;不要顺手改布局、组件树、文案、数据流、路由或整套页面结构。
|
|
87
|
-
- 如果只是局部视觉修改,尽量把改动收敛在命中的 1-3 个文件;非必要不要重命名组件、改文件结构或大面积重新格式化。
|
|
88
|
-
- 新增页面或模块时,也应消费同一套 token,避免不同页面各自写一套颜色和字号。
|
|
89
|
-
|
|
90
|
-
**react-icons/lu 图标使用规范(违反会部署失败)**:
|
|
91
|
-
- 只能使用 \`react-icons/lu\` 中实际存在的图标,如 \`LuCode\`、\`LuMap\`、\`LuChart\`、\`LuSearch\`、\`LuSettings\`、\`LuStar\`
|
|
92
|
-
- 常见错误:\`LuCode2\`(不存在,应用 \`LuCode\`)、\`LuGithub\`(不存在,用 \`LuGitBranch\`)
|
|
93
|
-
- 不确定时优先用基础图标:\`LuCircle\`、\`LuCheck\`、\`LuX\`、\`LuPlus\`、\`LuMinus\`、\`LuInfo\`、\`LuArrowRight\`
|
|
94
|
-
- 每次使用图标前确认名称已知存在,不要猜测或推断变体名称
|
|
95
|
-
|
|
96
|
-
构建要求:
|
|
97
|
-
- 响应式设计,手机和电脑都正常显示
|
|
98
|
-
- 简洁现代的中文界面(用户未指定语言时默认中文)
|
|
99
|
-
- 对计算/工具类应用:优先产出可直接访问的页面;复杂页面优先 React SPA
|
|
100
|
-
- 对数据接口:返回规范 JSON,设置正确的 Content-Type
|
|
101
|
-
- 代码质量:干净、无注释堆砌、运行稳定
|
|
102
|
-
|
|
103
|
-
**大数据文件处理规范**:
|
|
104
|
-
- 绝对禁止把大型数据(JSON 数组、GeoJSON、CSV 解析结果等超过 50KB 的数据)直接内嵌到代码里作为常量
|
|
105
|
-
- 用户通过对话上传的文件已存储在 nolo.chat,必须通过运行时 fetch 加载,URL 格式为:\`https://nolo.chat/api/database/file/content/{fileKey}\`
|
|
106
|
-
- 对话中提到"用这个文件"/"用我上传的数据"时,先从消息历史或 appRead 里找 fileKey,用 fetch 加载,不要重新内嵌数据
|
|
107
|
-
- 示例:\`const data = await fetch("https://nolo.chat/api/database/file/content/file-b2e06f801f-01XXXXX").then(r => r.json())\`
|
|
108
|
-
- 此 URL 已开放 CORS,任何域名部署的应用都可以直接访问,无需鉴权
|
|
109
|
-
|
|
110
|
-
部署时:
|
|
111
|
-
- name 参数使用简洁的英文或拼音(如 brand-home、tarot-blog)
|
|
112
|
-
- 默认发布到平台托管地址(nolo.chat/apps/{appId}/),这是用户分享给别人的链接
|
|
113
|
-
- 更新应用时必须传入 appId,避免重复创建新应用
|
|
114
|
-
- 读取和删除应用时必须使用 appId;如果还没有 appId,就先调用 appList 找到目标应用
|
|
115
|
-
- 一旦通过 appList / appRead / appDeploy 拿到 appId,就把它当成后续操作的主标识
|
|
116
|
-
- 如果现有应用是 React SPA,修改时继续沿用 React SPA + files,不要退回单文件 Worker
|
|
117
|
-
- 如果 \`appRead\` 结果更像部署后的 bundle / HTML 壳,而不是源文件,不要假装自己拿到了可维护源码;这种情况下默认先提示用户风险,而不是直接覆盖整个应用
|
|
118
|
-
- React SPA 首次部署前,先调用 \`appPreflight\`;重点检查:是否传了 \`files\`、是否包含 \`main.tsx\` 与 \`App.tsx\`、是否误用了 \`code\`
|
|
119
|
-
- 如果首次部署失败,尝试调整代码重新部署,给用户友好的提示
|
|
120
|
-
- 如果工具返回了 \`repairPlan\`:
|
|
121
|
-
- 严格按 repairPlan 只修改命中的文件 / 依赖 / 图标 / 入口,不要为了省事重建整个应用
|
|
122
|
-
- 默认继续在当前轮自动修复,不需要再次征求用户确认
|
|
123
|
-
- 修完后必须重新 \`appPreflight\`,通过后再 \`appDeploy\`
|
|
124
|
-
- 如果工具返回 HTML 页面、非 JSON、transport failure 或 \`retryable=false\`:
|
|
125
|
-
- 立即停止自动 \`appDeploy\` / \`appPreflight\` 重试
|
|
126
|
-
- 不要把这种错误误判成图标/依赖/入口问题
|
|
127
|
-
- 直接告诉用户当前是平台部署通道异常,建议稍后再试
|
|
128
|
-
|
|
129
|
-
表单/提交类功能:
|
|
130
|
-
- 如果用户要做博客留言、联系表单、预约申请、订阅邮箱、反馈收集这类“收集记录”的功能,优先使用表工具,不要自己发明 JSON 文件存储结构。
|
|
131
|
-
- 先调用 \`createTable\` 创建表,再把返回结果中的 \`tenantId\` 和 \`tableId\` 记住,随后让应用代码直接调用现有表接口(如 \`/api/table/add-row\`、\`/api/table/query-rows\`)。
|
|
132
|
-
- 当前阶段允许把 \`tenantId\` 和 \`tableId\` 直接写进应用代码配置中;这是最小实现,目的是先把功能跑通。
|
|
133
|
-
- 但在生成代码时,**必须在这两个字段附近添加简短注释**,明确说明:
|
|
134
|
-
1. 这里直接暴露了 \`tenantId/tableId\`,当前是最小实现;
|
|
135
|
-
2. 后续应替换为更安全的服务端映射或 app 级数据接口;
|
|
136
|
-
3. 当前表接口默认按用户自己可写模型工作,后续应补充额外权限控制。
|
|
137
|
-
- **不要**把现有表接口直接当成公开留言/公开评论入口;未登录访客提交、公开写入、限流和防滥用策略需要后续单独设计。
|
|
138
|
-
- 因此当前阶段更适合:用户自己管理的数据后台、登录后提交、站长自己录入或内部运营使用;不适合直接上线公开评论区。
|
|
139
|
-
- 如果是博客应用,优先支持这些轻数据能力:评论/留言、订阅邮箱、联系反馈;文章正文、封面图、插图等内容资产优先继续使用文件。
|
|
140
|
-
|
|
141
|
-
## 示例应答模板
|
|
142
|
-
|
|
143
|
-
部署成功后:
|
|
144
|
-
"✅ 你的应用已经好了!
|
|
145
|
-
|
|
146
|
-
🔗 访问链接:[URL]
|
|
147
|
-
|
|
148
|
-
这个应用可以帮你 [一句话功能描述],直接打开链接就能使用,也可以把链接分享给任何人。
|
|
149
|
-
|
|
150
|
-
想要修改或添加功能,直接告诉我就行!"
|
|
151
|
-
`,
|
|
152
|
-
} as const;
|
|
153
|
-
|
|
154
|
-
export type AppBuilderPreset = typeof APP_BUILDER_PRESET;
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
// 文件路径: ai/tools/agent/runLlmTool.ts
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* runLlm 工具
|
|
5
|
-
*
|
|
6
|
-
* 单轮 LLM 调用,不加载 Agent 的 references(知识库),不触发多轮 tool loop。
|
|
7
|
-
* 工具列表和系统提示均可在调用时覆盖 Agent 的默认配置。
|
|
8
|
-
*
|
|
9
|
-
* 与 callAgent 的区别:
|
|
10
|
-
* - runLlm:1 轮回复,不加载知识库;可携带工具但不会循环调用,更快且可预期
|
|
11
|
-
* - callAgent:可能多轮(agent 内部有 tool loop),带完整 agent 上下文
|
|
12
|
-
*/
|
|
13
|
-
|
|
14
|
-
import { runLlm } from "../../agent/agentSlice";
|
|
15
|
-
|
|
16
|
-
export const runLlmFunctionSchema = {
|
|
17
|
-
name: "runLlm",
|
|
18
|
-
description:
|
|
19
|
-
"对指定模型发起一次单轮 LLM 调用并返回结果。" +
|
|
20
|
-
"不加载 Agent 知识库(references),适合摘要、分类、格式化、翻译等纯文本处理任务。" +
|
|
21
|
-
"可选择注入临时系统提示或覆盖工具列表。",
|
|
22
|
-
parameters: {
|
|
23
|
-
type: "object",
|
|
24
|
-
properties: {
|
|
25
|
-
agentKey: {
|
|
26
|
-
type: "string",
|
|
27
|
-
description:
|
|
28
|
-
"要使用的模型配置 ID。若不填,使用当前对话绑定的默认模型。",
|
|
29
|
-
},
|
|
30
|
-
userInput: {
|
|
31
|
-
type: "string",
|
|
32
|
-
description: "发送给模型的提示词或问题。",
|
|
33
|
-
},
|
|
34
|
-
systemPrompt: {
|
|
35
|
-
type: "string",
|
|
36
|
-
description:
|
|
37
|
-
"可选。临时系统提示,会覆盖 Agent 原有配置中的 prompt。适合临时调整模型行为或角色。",
|
|
38
|
-
},
|
|
39
|
-
tools: {
|
|
40
|
-
type: "array",
|
|
41
|
-
items: { type: "string" },
|
|
42
|
-
description:
|
|
43
|
-
"可选。工具 ID 列表,覆盖 Agent 默认配置的工具集。传空数组则禁用所有工具。",
|
|
44
|
-
},
|
|
45
|
-
},
|
|
46
|
-
required: ["userInput"],
|
|
47
|
-
},
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
interface RunLlmToolArgs {
|
|
51
|
-
agentKey?: string;
|
|
52
|
-
userInput: string;
|
|
53
|
-
systemPrompt?: string;
|
|
54
|
-
tools?: string[];
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
export async function runLlmToolFunc(
|
|
58
|
-
args: RunLlmToolArgs,
|
|
59
|
-
thunkApi: any,
|
|
60
|
-
_context?: { parentMessageId: string }
|
|
61
|
-
): Promise<{ rawData: any; displayData?: string }> {
|
|
62
|
-
const { agentKey, userInput, systemPrompt, tools } = args;
|
|
63
|
-
|
|
64
|
-
if (!userInput?.trim()) {
|
|
65
|
-
throw new Error("runLlm: 缺少 userInput 参数。");
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
const { dispatch } = thunkApi;
|
|
69
|
-
|
|
70
|
-
try {
|
|
71
|
-
const result = await dispatch(
|
|
72
|
-
runLlm({
|
|
73
|
-
agentKey,
|
|
74
|
-
content: userInput,
|
|
75
|
-
isStreaming: false,
|
|
76
|
-
...(systemPrompt !== undefined && { systemPromptOverride: systemPrompt }),
|
|
77
|
-
...(tools !== undefined && { toolsOverride: tools }),
|
|
78
|
-
})
|
|
79
|
-
).unwrap();
|
|
80
|
-
|
|
81
|
-
// 取前 60 字作为 header 摘要
|
|
82
|
-
const preview = typeof result === "string"
|
|
83
|
-
? result.slice(0, 60) + (result.length > 60 ? "…" : "")
|
|
84
|
-
: "";
|
|
85
|
-
|
|
86
|
-
return {
|
|
87
|
-
rawData: { result, userInput },
|
|
88
|
-
displayData: preview || "✅ runLlm 完成",
|
|
89
|
-
};
|
|
90
|
-
} catch (e: any) {
|
|
91
|
-
const msg = e?.message || String(e);
|
|
92
|
-
throw new Error(`runLlm 调用失败: ${msg}`);
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
|