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,168 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
// packages/ai/agent/getFullChatContextKeys.ts
|
|
3
|
-
import { RootState } from "../../app/store";
|
|
4
|
-
import { selectAllMsgs } from "../../chat/messages/messageSlice";
|
|
5
|
-
import type { DialogConfig } from "../../app/types";
|
|
6
|
-
import { extractCustomId } from "../../core/prefix";
|
|
7
|
-
|
|
8
|
-
/** 简单的数组差集工具:返回 arrA 中不在 arrB 里的元素 */
|
|
9
|
-
const difference = <T>(arrA: T[], arrB: T[]): T[] => {
|
|
10
|
-
if (!arrA.length) return [];
|
|
11
|
-
if (!arrB.length) return [...arrA];
|
|
12
|
-
|
|
13
|
-
const exclude = new Set(arrB);
|
|
14
|
-
return arrA.filter((item) => !exclude.has(item));
|
|
15
|
-
};
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* Collect all possible reference keys for this chat turn:
|
|
19
|
-
* - botInstructionKeys: keys from agentConfig.references of type "instruction"
|
|
20
|
-
* - botKnowledgeKeys: keys from agentConfig.references (non-instruction)
|
|
21
|
-
* - currentInputKeys: keys referenced directly by the user's current input (array parts with pageKey)
|
|
22
|
-
* - historyKeys: keys from all previous messages' content parts
|
|
23
|
-
*/
|
|
24
|
-
export const getFullChatContextKeys = async (
|
|
25
|
-
state: RootState,
|
|
26
|
-
dispatch: any,
|
|
27
|
-
agentConfig: any,
|
|
28
|
-
userInput: string | any[],
|
|
29
|
-
dialogConfig?: DialogConfig
|
|
30
|
-
): Promise<Record<string, Set<string>>> => {
|
|
31
|
-
const msgs = selectAllMsgs(
|
|
32
|
-
state,
|
|
33
|
-
dialogConfig?.dbKey
|
|
34
|
-
? extractCustomId(dialogConfig.dbKey)
|
|
35
|
-
: dialogConfig?.id
|
|
36
|
-
);
|
|
37
|
-
|
|
38
|
-
const botInstructionKeys = new Set<string>();
|
|
39
|
-
const botKnowledgeKeys = new Set<string>();
|
|
40
|
-
|
|
41
|
-
if (Array.isArray(agentConfig.references)) {
|
|
42
|
-
for (const ref of agentConfig.references as Array<{
|
|
43
|
-
dbKey: string;
|
|
44
|
-
type: string;
|
|
45
|
-
}>) {
|
|
46
|
-
if (!ref?.dbKey) continue;
|
|
47
|
-
if (ref.type === "instruction") {
|
|
48
|
-
botInstructionKeys.add(ref.dbKey);
|
|
49
|
-
} else {
|
|
50
|
-
botKnowledgeKeys.add(ref.dbKey);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
const currentInputKeys = new Set<string>();
|
|
56
|
-
if (Array.isArray(userInput)) {
|
|
57
|
-
for (const part of userInput) {
|
|
58
|
-
if (part?.pageKey) currentInputKeys.add(part.pageKey);
|
|
59
|
-
if (part?.dialogKey) currentInputKeys.add(part.dialogKey);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
const historyKeys = new Set<string>();
|
|
64
|
-
|
|
65
|
-
// 1. 从 DialogConfig.referenceKeys 读取(这是主要的、持久化的引用来源)
|
|
66
|
-
// 即使消息被压缩,这里的 keys 也会保留
|
|
67
|
-
const savedKeys = dialogConfig?.referenceKeys;
|
|
68
|
-
if (Array.isArray(savedKeys)) {
|
|
69
|
-
savedKeys.forEach((k: string) => historyKeys.add(k));
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
// 2. 仅扫描尚未被压缩的近期消息
|
|
73
|
-
// 已压缩的消息(summarizedBeforeId 之前的部分,包含该条本身)的 keys
|
|
74
|
-
// 已在压缩时存入 dialogConfig.referenceKeys,步骤 1 已覆盖,无需重复扫描。
|
|
75
|
-
const scanContentParts = (msg: any) => {
|
|
76
|
-
if (!msg.content) return;
|
|
77
|
-
const contentParts = Array.isArray(msg.content) ? msg.content : [msg.content];
|
|
78
|
-
for (const part of contentParts) {
|
|
79
|
-
if (part && typeof part === 'object') {
|
|
80
|
-
if (part?.pageKey) historyKeys.add(part.pageKey);
|
|
81
|
-
if (part?.dialogKey) historyKeys.add(part.dialogKey);
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
};
|
|
85
|
-
|
|
86
|
-
if (msgs && msgs.length > 0) {
|
|
87
|
-
const summarizedBeforeId = dialogConfig?.summarizedBeforeId;
|
|
88
|
-
|
|
89
|
-
if (!summarizedBeforeId) {
|
|
90
|
-
// 无压缩记录,扫描全部消息
|
|
91
|
-
for (const msg of (msgs as any[])) scanContentParts(msg);
|
|
92
|
-
} else {
|
|
93
|
-
let foundMarker = false;
|
|
94
|
-
let startScan = false;
|
|
95
|
-
|
|
96
|
-
for (const msg of (msgs as any[])) {
|
|
97
|
-
if (!startScan) {
|
|
98
|
-
if (msg.id === summarizedBeforeId) {
|
|
99
|
-
foundMarker = true;
|
|
100
|
-
startScan = true;
|
|
101
|
-
// summarizedBeforeId 那条消息本身已被压缩,keys 在 referenceKeys 里,跳过
|
|
102
|
-
}
|
|
103
|
-
continue;
|
|
104
|
-
}
|
|
105
|
-
scanContentParts(msg);
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
// marker 找不到说明 Redux 中的消息都是新的,应该全扫
|
|
109
|
-
if (!foundMarker) {
|
|
110
|
-
console.warn(`[getFullChatContextKeys] marker ${summarizedBeforeId} not found, scanning all`);
|
|
111
|
-
for (const msg of (msgs as any[])) scanContentParts(msg);
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
return {
|
|
117
|
-
botInstructionKeys,
|
|
118
|
-
currentInputKeys,
|
|
119
|
-
historyKeys,
|
|
120
|
-
botKnowledgeKeys,
|
|
121
|
-
};
|
|
122
|
-
};
|
|
123
|
-
|
|
124
|
-
/**
|
|
125
|
-
* Deduplicate keys across priority levels.
|
|
126
|
-
* Priority order (high -> low):
|
|
127
|
-
* 1) botInstructionKeys
|
|
128
|
-
* 2) currentInputKeys
|
|
129
|
-
* 3) historyKeys
|
|
130
|
-
* 4) botKnowledgeKeys
|
|
131
|
-
*
|
|
132
|
-
* Return field names match context block identifiers expected downstream.
|
|
133
|
-
*/
|
|
134
|
-
export const deduplicateContextKeys = (
|
|
135
|
-
keys: Record<string, Set<string>>
|
|
136
|
-
): Record<string, string[]> => {
|
|
137
|
-
const {
|
|
138
|
-
botInstructionKeys,
|
|
139
|
-
currentInputKeys,
|
|
140
|
-
historyKeys,
|
|
141
|
-
botKnowledgeKeys,
|
|
142
|
-
} = keys;
|
|
143
|
-
|
|
144
|
-
const finalBotInstructionKeys = Array.from(botInstructionKeys);
|
|
145
|
-
|
|
146
|
-
const finalCurrentInputKeys = difference(
|
|
147
|
-
Array.from(currentInputKeys),
|
|
148
|
-
finalBotInstructionKeys
|
|
149
|
-
);
|
|
150
|
-
|
|
151
|
-
const finalHistoryKeys = difference(Array.from(historyKeys), [
|
|
152
|
-
...finalBotInstructionKeys,
|
|
153
|
-
...finalCurrentInputKeys,
|
|
154
|
-
]);
|
|
155
|
-
|
|
156
|
-
const finalBotKnowledgeKeys = difference(Array.from(botKnowledgeKeys), [
|
|
157
|
-
...finalBotInstructionKeys,
|
|
158
|
-
...finalCurrentInputKeys,
|
|
159
|
-
...finalHistoryKeys,
|
|
160
|
-
]);
|
|
161
|
-
|
|
162
|
-
return {
|
|
163
|
-
botInstructionsContext: finalBotInstructionKeys,
|
|
164
|
-
currentInputContext: finalCurrentInputKeys,
|
|
165
|
-
historyContext: finalHistoryKeys,
|
|
166
|
-
botKnowledgeContext: finalBotKnowledgeKeys,
|
|
167
|
-
};
|
|
168
|
-
};
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
import type { GuidedAgentCapabilityId } from "./types";
|
|
2
|
-
|
|
3
|
-
type CapabilityDefinition = {
|
|
4
|
-
id: GuidedAgentCapabilityId;
|
|
5
|
-
label: {
|
|
6
|
-
zhCN: string;
|
|
7
|
-
en: string;
|
|
8
|
-
};
|
|
9
|
-
description: {
|
|
10
|
-
zhCN: string;
|
|
11
|
-
en: string;
|
|
12
|
-
};
|
|
13
|
-
toolIds: string[];
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
export const GUIDED_AGENT_CAPABILITIES: Record<
|
|
17
|
-
GuidedAgentCapabilityId,
|
|
18
|
-
CapabilityDefinition
|
|
19
|
-
> = {
|
|
20
|
-
webSearch: {
|
|
21
|
-
id: "webSearch",
|
|
22
|
-
label: { zhCN: "联网搜索", en: "Search the web" },
|
|
23
|
-
description: {
|
|
24
|
-
zhCN: "需要获取外部网页、资料或最新信息时使用。",
|
|
25
|
-
en: "Use when the agent needs external webpages, research, or current information.",
|
|
26
|
-
},
|
|
27
|
-
toolIds: ["exa_search", "fetchWebpage"],
|
|
28
|
-
},
|
|
29
|
-
docs: {
|
|
30
|
-
id: "docs",
|
|
31
|
-
label: { zhCN: "读写文档", en: "Read and write docs" },
|
|
32
|
-
description: {
|
|
33
|
-
zhCN: "需要读取、创建或更新知识页和文档时使用。",
|
|
34
|
-
en: "Use when the agent should read, create, or update docs.",
|
|
35
|
-
},
|
|
36
|
-
toolIds: ["createDoc", "updateDoc", "read"],
|
|
37
|
-
},
|
|
38
|
-
tables: {
|
|
39
|
-
id: "tables",
|
|
40
|
-
label: { zhCN: "处理表格", en: "Work with tables" },
|
|
41
|
-
description: {
|
|
42
|
-
zhCN: "需要创建表、追加记录或整理结构化数据时使用。",
|
|
43
|
-
en: "Use when the agent should create tables or manage structured rows.",
|
|
44
|
-
},
|
|
45
|
-
toolIds: ["createTable", "addTableRow", "addTableRows", "read"],
|
|
46
|
-
},
|
|
47
|
-
agents: {
|
|
48
|
-
id: "agents",
|
|
49
|
-
label: { zhCN: "调用其他 AI", en: "Call other AI agents" },
|
|
50
|
-
description: {
|
|
51
|
-
zhCN: "需要多 Agent 协作、评审或分工时使用。",
|
|
52
|
-
en: "Use when the agent should collaborate with other agents.",
|
|
53
|
-
},
|
|
54
|
-
toolIds: ["callAgent", "startAgentDialog"],
|
|
55
|
-
},
|
|
56
|
-
apps: {
|
|
57
|
-
id: "apps",
|
|
58
|
-
label: { zhCN: "创建应用或代码", en: "Create apps or code" },
|
|
59
|
-
description: {
|
|
60
|
-
zhCN: "需要生成应用、代码或使用 App Builder 能力时使用。",
|
|
61
|
-
en: "Use when the agent should build apps, code, or App Builder outputs.",
|
|
62
|
-
},
|
|
63
|
-
toolIds: ["appDeploy", "appList", "appRead"],
|
|
64
|
-
},
|
|
65
|
-
};
|
|
66
|
-
|
|
67
|
-
export const mapCapabilityIdsToToolIds = (
|
|
68
|
-
capabilityIds: GuidedAgentCapabilityId[]
|
|
69
|
-
): string[] => {
|
|
70
|
-
const seen = new Set<string>();
|
|
71
|
-
const result: string[] = [];
|
|
72
|
-
|
|
73
|
-
for (const id of capabilityIds) {
|
|
74
|
-
const definition = GUIDED_AGENT_CAPABILITIES[id];
|
|
75
|
-
if (!definition) continue;
|
|
76
|
-
for (const toolId of definition.toolIds) {
|
|
77
|
-
if (seen.has(toolId)) continue;
|
|
78
|
-
seen.add(toolId);
|
|
79
|
-
result.push(toolId);
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
return result;
|
|
84
|
-
};
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import type { ReferenceItem } from "../../../app/types";
|
|
2
|
-
|
|
3
|
-
export type GuidedAgentCapabilityId =
|
|
4
|
-
| "webSearch"
|
|
5
|
-
| "docs"
|
|
6
|
-
| "tables"
|
|
7
|
-
| "agents"
|
|
8
|
-
| "apps";
|
|
9
|
-
|
|
10
|
-
export type GuidedAgentReferenceChoice = ReferenceItem & {
|
|
11
|
-
selected: boolean;
|
|
12
|
-
reason?: string;
|
|
13
|
-
};
|
|
14
|
-
|
|
15
|
-
export type GuidedAgentDraft = {
|
|
16
|
-
name: string;
|
|
17
|
-
introduction: string;
|
|
18
|
-
prompt: string;
|
|
19
|
-
promptSummary: string;
|
|
20
|
-
provider: string;
|
|
21
|
-
model: string;
|
|
22
|
-
isPublic: boolean;
|
|
23
|
-
capabilityIds: GuidedAgentCapabilityId[];
|
|
24
|
-
toolIds: string[];
|
|
25
|
-
references: GuidedAgentReferenceChoice[];
|
|
26
|
-
tags: string[];
|
|
27
|
-
unresolved: string[];
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
export type GuidedAgentAssistantMessage = {
|
|
31
|
-
id: string;
|
|
32
|
-
role: "user" | "assistant";
|
|
33
|
-
content: string;
|
|
34
|
-
};
|
|
35
|
-
|
|
36
|
-
export type GuidedAgentValidationResult =
|
|
37
|
-
| { ok: true }
|
|
38
|
-
| { ok: false; missing: string[] };
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Predicate: does this agent only support live audio mode and
|
|
3
|
-
* cannot be used through normal text chat completions?
|
|
4
|
-
*
|
|
5
|
-
* Returns `true` when the agent's model is a live-preview variant that
|
|
6
|
-
* will fail if sent through ordinary OpenAI-compatible text completions.
|
|
7
|
-
*/
|
|
8
|
-
export function isLiveAudioOnlyAgent(agent: {
|
|
9
|
-
defaultInteractionMode?: string;
|
|
10
|
-
provider?: string;
|
|
11
|
-
model?: string;
|
|
12
|
-
}): boolean {
|
|
13
|
-
if (agent.defaultInteractionMode !== "live_audio") return false;
|
|
14
|
-
|
|
15
|
-
const provider = String(agent.provider || "").toLowerCase();
|
|
16
|
-
const model = String(agent.model || "").toLowerCase();
|
|
17
|
-
|
|
18
|
-
// Google live-preview models are live-only
|
|
19
|
-
if (provider === "google" && model.includes("live")) return true;
|
|
20
|
-
|
|
21
|
-
// Gemini Live / native audio models are live-only.
|
|
22
|
-
if (model.includes("live-preview") || model.includes("live-001")) return true;
|
|
23
|
-
if (model.includes("native-audio")) return true;
|
|
24
|
-
|
|
25
|
-
return false;
|
|
26
|
-
}
|
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
export type MachineRunPermissionMode = "read_only" | "full_access";
|
|
2
|
-
|
|
3
|
-
export type MachineRunPermissionPolicy = {
|
|
4
|
-
mode: MachineRunPermissionMode;
|
|
5
|
-
allowFilesystemRead: boolean;
|
|
6
|
-
allowFilesystemWrite: boolean;
|
|
7
|
-
allowShell: boolean;
|
|
8
|
-
writableRoots: string[];
|
|
9
|
-
};
|
|
10
|
-
|
|
11
|
-
const DEFAULT_POLICY: MachineRunPermissionPolicy = {
|
|
12
|
-
mode: "read_only",
|
|
13
|
-
allowFilesystemRead: true,
|
|
14
|
-
allowFilesystemWrite: false,
|
|
15
|
-
allowShell: false,
|
|
16
|
-
writableRoots: [],
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
const WRITE_DENIED =
|
|
20
|
-
"Machine permission denied: this bound machine agent is read-only for filesystem writes. Enable machine write permission for this agent before asking it to modify files.";
|
|
21
|
-
|
|
22
|
-
const SHELL_DENIED =
|
|
23
|
-
"Machine permission denied: this bound machine agent cannot run arbitrary shell commands. Enable machine shell permission for this agent before asking it to execute commands.";
|
|
24
|
-
|
|
25
|
-
function asObject(value: unknown): Record<string, any> {
|
|
26
|
-
return value && typeof value === "object" && !Array.isArray(value) ? value as Record<string, any> : {};
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
function normalizeWritableRoots(value: unknown): string[] {
|
|
30
|
-
if (!Array.isArray(value)) return [];
|
|
31
|
-
return value
|
|
32
|
-
.filter((item): item is string => typeof item === "string")
|
|
33
|
-
.map((item) => item.trim())
|
|
34
|
-
.filter(Boolean);
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
export function resolveMachineRunPermissionPolicy(agentConfig: any): MachineRunPermissionPolicy {
|
|
38
|
-
const runtimeBinding = asObject(agentConfig?.runtimeBinding);
|
|
39
|
-
const raw = asObject(
|
|
40
|
-
agentConfig?.machinePermissions ??
|
|
41
|
-
runtimeBinding.permissions ??
|
|
42
|
-
runtimeBinding.machinePermissions ??
|
|
43
|
-
agentConfig?.boundRuntimeMachine?.permissions
|
|
44
|
-
);
|
|
45
|
-
|
|
46
|
-
const mode: MachineRunPermissionMode =
|
|
47
|
-
raw.mode === "full_access" || raw.allowFilesystemWrite === true || raw.allowShell === true
|
|
48
|
-
? "full_access"
|
|
49
|
-
: "read_only";
|
|
50
|
-
|
|
51
|
-
if (mode === "full_access") {
|
|
52
|
-
return {
|
|
53
|
-
mode,
|
|
54
|
-
allowFilesystemRead: raw.allowFilesystemRead !== false,
|
|
55
|
-
allowFilesystemWrite: true,
|
|
56
|
-
allowShell: raw.allowShell !== false,
|
|
57
|
-
writableRoots: normalizeWritableRoots(raw.writableRoots),
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
return {
|
|
62
|
-
...DEFAULT_POLICY,
|
|
63
|
-
allowFilesystemRead: raw.allowFilesystemRead !== false,
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
const WRITE_INTENT_RE =
|
|
68
|
-
/\b(write|overwrite|edit|modify|delete|remove|rename|move|create|save|patch|apply patch|mkdir|touch|rm|rmdir|del|erase|copy-item|move-item|remove-item|set-content|add-content|new-item)\b|(\u5199\u5165|\u5199\u6587\u4EF6|\u5220\u9664|\u79FB\u9664|\u91CD\u547D\u540D|\u79FB\u52A8|\u521B\u5EFA|\u65B0\u5EFA|\u4FDD\u5B58|\u4FEE\u6539|\u7F16\u8F91|\u6253\u8865\u4E01|\u5E94\u7528\u8865\u4E01)/i;
|
|
69
|
-
|
|
70
|
-
const SHELL_INTENT_RE =
|
|
71
|
-
/\b(run|execute|exec)\s+(?:a\s+)?(?:shell|command|terminal|powershell|pwsh|bash|zsh|cmd\.exe|npm|bun|node|python|git|curl|wget|ssh|scp|chmod|chown|sudo|tests?|test suite)\b|\b(open|start)\s+(?:a\s+)?(?:shell|terminal)\b|\b(powershell|pwsh|bash|zsh|cmd\.exe|ssh|sudo)\b|(\u8FD0\u884C\u547D\u4EE4|\u6267\u884C\u547D\u4EE4|\u547D\u4EE4\u884C|\u7EC8\u7AEF|\u63A7\u5236\u53F0)/i;
|
|
72
|
-
|
|
73
|
-
const NEGATION_RE =
|
|
74
|
-
/\b(do not|don't|dont|never|no need to|without|非目标|不要|不需要|禁止|无需)\b|[\u4E0D\u975E]/i;
|
|
75
|
-
|
|
76
|
-
function stripNegatedPolicySentences(task: string): string {
|
|
77
|
-
return task
|
|
78
|
-
.split(/([\n.;!?。;!?])/)
|
|
79
|
-
.reduce<string[]>((segments, part, index, parts) => {
|
|
80
|
-
if (index % 2 === 1) return segments;
|
|
81
|
-
const separator = parts[index + 1] ?? "";
|
|
82
|
-
const segment = `${part}${separator}`;
|
|
83
|
-
const mentionsRestrictedAction = WRITE_INTENT_RE.test(segment) || SHELL_INTENT_RE.test(segment);
|
|
84
|
-
if (mentionsRestrictedAction && NEGATION_RE.test(segment)) return segments;
|
|
85
|
-
segments.push(segment);
|
|
86
|
-
return segments;
|
|
87
|
-
}, [])
|
|
88
|
-
.join("");
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
export function assertMachineRunAllowed(userInput: string, policy: MachineRunPermissionPolicy) {
|
|
92
|
-
const task = stripNegatedPolicySentences(String(userInput || ""));
|
|
93
|
-
if (!policy.allowFilesystemWrite && WRITE_INTENT_RE.test(task)) {
|
|
94
|
-
throw new Error(WRITE_DENIED);
|
|
95
|
-
}
|
|
96
|
-
if (!policy.allowShell && SHELL_INTENT_RE.test(task)) {
|
|
97
|
-
throw new Error(SHELL_DENIED);
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
export function buildMachinePermissionPromptBlock(policy: MachineRunPermissionPolicy) {
|
|
102
|
-
return [
|
|
103
|
-
"--- Machine permission policy ---",
|
|
104
|
-
`Mode: ${policy.mode}`,
|
|
105
|
-
`Filesystem reads are ${policy.allowFilesystemRead ? "allowed" : "not allowed"}.`,
|
|
106
|
-
`File writes are ${policy.allowFilesystemWrite ? "allowed" : "not allowed"}.`,
|
|
107
|
-
`Arbitrary shell commands are ${policy.allowShell ? "allowed" : "not allowed"}.`,
|
|
108
|
-
policy.writableRoots.length
|
|
109
|
-
? `Writable roots: ${policy.writableRoots.join(", ")}`
|
|
110
|
-
: "Writable roots: none.",
|
|
111
|
-
"If the user asks for an operation outside this policy, refuse instead of attempting it.",
|
|
112
|
-
].join("\n");
|
|
113
|
-
}
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
export const PAGE_BUILDER_AGENT_PUBLIC_KEY =
|
|
2
|
-
"agent-pub-01PAGEBUILDR00000000FT7R9G";
|
|
3
|
-
|
|
4
|
-
export type PageBuilderScenario = {
|
|
5
|
-
id: string;
|
|
6
|
-
label: string;
|
|
7
|
-
userIntent: string;
|
|
8
|
-
prompt: string;
|
|
9
|
-
};
|
|
10
|
-
|
|
11
|
-
export const PAGE_BUILDER_SCENARIOS: PageBuilderScenario[] = [
|
|
12
|
-
{
|
|
13
|
-
id: "information-display",
|
|
14
|
-
label: "信息展示",
|
|
15
|
-
userIntent: "主页、产品介绍、服务介绍、作品集、活动页、报价页",
|
|
16
|
-
prompt:
|
|
17
|
-
"帮我做一个独立 AI 产品顾问的个人主页。要看起来专业,包含个人定位、能提供的服务卡片、代表成果卡片、可信背书和联系合作按钮。",
|
|
18
|
-
},
|
|
19
|
-
{
|
|
20
|
-
id: "data-analysis",
|
|
21
|
-
label: "数据分析",
|
|
22
|
-
userIntent: "日报、周报、经营看板、质检报告、销售漏斗、反馈分析",
|
|
23
|
-
prompt:
|
|
24
|
-
"帮我做一个 AI 客服质检日报,包含核心指标、近 7 天风险趋势、异常会话明细表,以及明天需要跟进的建议。",
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
id: "process-guide",
|
|
28
|
-
label: "流程说明",
|
|
29
|
-
userIntent: "教程、SOP、onboarding、操作指南、课程步骤、申请流程",
|
|
30
|
-
prompt:
|
|
31
|
-
"帮我做一个新员工使用 CRM 的交互教程页面,包含学习目标、操作步骤、示例练习、检查清单和下一步按钮。",
|
|
32
|
-
},
|
|
33
|
-
{
|
|
34
|
-
id: "decision-comparison",
|
|
35
|
-
label: "决策比较",
|
|
36
|
-
userIntent: "方案对比、产品选型、候选人对比、竞品分析、采购建议",
|
|
37
|
-
prompt:
|
|
38
|
-
"帮我做一个三款 CRM 方案对比页,包含对比维度表格、每个方案的优缺点卡片、评分、适合团队类型和最终推荐。",
|
|
39
|
-
},
|
|
40
|
-
{
|
|
41
|
-
id: "plan-roadmap",
|
|
42
|
-
label: "计划排布",
|
|
43
|
-
userIntent: "项目计划、学习计划、健身计划、内容日历、发布节奏",
|
|
44
|
-
prompt:
|
|
45
|
-
"帮我做一个 30 天内容发布计划页面,包含阶段目标、每周任务、优先级、里程碑卡片和风险提醒。",
|
|
46
|
-
},
|
|
47
|
-
{
|
|
48
|
-
id: "mixed-pitch",
|
|
49
|
-
label: "混合长尾",
|
|
50
|
-
userIntent: "汇报页、融资材料、复杂项目概览,混合展示、数据、计划、对比",
|
|
51
|
-
prompt:
|
|
52
|
-
"给一个早期 AI 客服创业项目做一页融资汇报页,包含市场机会、关键数据指标卡、增长趋势图、产品路线、竞品对比表、团队介绍和下一步计划。",
|
|
53
|
-
},
|
|
54
|
-
];
|
|
55
|
-
|
|
56
|
-
const scenarioLines = PAGE_BUILDER_SCENARIOS.map(
|
|
57
|
-
(scenario) => `- ${scenario.label}:${scenario.userIntent}`
|
|
58
|
-
).join("\n");
|
|
59
|
-
|
|
60
|
-
export const PAGE_BUILDER_HANDOFF_INSTRUCTIONS = `--- 页面生成助手 handoff ---
|
|
61
|
-
当用户需要把内容变成“可看的页面/报告/看板/教程/对比页/计划页”时,可以把本轮交给页面生成助手。
|
|
62
|
-
|
|
63
|
-
目标 Agent:
|
|
64
|
-
- agentKey: ${PAGE_BUILDER_AGENT_PUBLIC_KEY}
|
|
65
|
-
- 推荐工具: runStreamingAgent
|
|
66
|
-
|
|
67
|
-
适合 handoff 的视觉意图大类:
|
|
68
|
-
${scenarioLines}
|
|
69
|
-
|
|
70
|
-
调用边界:
|
|
71
|
-
- 用户明确要求“做成页面 / 看板 / 报告 / 教程 / 主页 / 对比页 / 计划表 / 可视化”时,可以直接 runStreamingAgent。
|
|
72
|
-
- 如果用户只是讨论内容,但你判断“文字回答不如可视化页面”,先询问用户:“这个更适合做成一页可视化页面,要我生成一个可交互版本吗?”
|
|
73
|
-
- 不要把普通问答、闲聊、代码解释、纯文本总结强行交给页面生成助手。
|
|
74
|
-
- handoff 时,把用户原始需求和你已确认的业务上下文一起放进 userInput,不要要求用户理解 React、HTML、代码块或运行时。
|
|
75
|
-
- 页面生成助手只负责生成和修改可交互页面;你仍负责判断、解释、澄清和后续协调。`;
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { DataType } from "../../create/types";
|
|
2
|
-
import { write } from "../../database/dbSlice";
|
|
3
|
-
import { addUserMessage } from "../../chat/messages/messageSlice";
|
|
4
|
-
import type { Message } from "../../chat/messages/types";
|
|
5
|
-
|
|
6
|
-
export async function persistMessageWithFixedId(
|
|
7
|
-
dispatch: any,
|
|
8
|
-
message: Message
|
|
9
|
-
): Promise<void> {
|
|
10
|
-
dispatch(addUserMessage(message));
|
|
11
|
-
|
|
12
|
-
const { controller, ...messageToWrite } = message;
|
|
13
|
-
|
|
14
|
-
try {
|
|
15
|
-
const writeRequest = dispatch(
|
|
16
|
-
write({
|
|
17
|
-
data: {
|
|
18
|
-
...messageToWrite,
|
|
19
|
-
type: DataType.MSG,
|
|
20
|
-
},
|
|
21
|
-
customKey: message.dbKey,
|
|
22
|
-
})
|
|
23
|
-
);
|
|
24
|
-
|
|
25
|
-
if (writeRequest && typeof writeRequest.unwrap === "function") {
|
|
26
|
-
await writeRequest.unwrap();
|
|
27
|
-
return;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
await writeRequest;
|
|
31
|
-
} catch (error) {
|
|
32
|
-
console.error(
|
|
33
|
-
"[persistMessageWithFixedId] Failed to persist fixed-id message:",
|
|
34
|
-
error
|
|
35
|
-
);
|
|
36
|
-
}
|
|
37
|
-
}
|