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,68 +0,0 @@
|
|
|
1
|
-
// XHS-specific sensitive value redaction.
|
|
2
|
-
// Follows patterns from x-reader/redaction.ts but adds XHS-specific token fields.
|
|
3
|
-
|
|
4
|
-
const XHS_SENSITIVE_KEY_PATTERN =
|
|
5
|
-
/^(xsecToken|xsec_token|cookie|web_session|a1|webId|galaxy_sessionid|customerClientId|authorization|access_token|refresh_token|secret|token)$/i;
|
|
6
|
-
|
|
7
|
-
const XHS_COOKIE_PATTERN = /\b(a1|web_session|webId|galaxy_sessionid|customerClientId)=[^;\s]*/gi;
|
|
8
|
-
|
|
9
|
-
const XHS_URL_TOKEN_PATTERN = /([?&])xsec_token=[^&#]*/gi;
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Recursively redact XHS-sensitive values from any JSON-serializable object.
|
|
13
|
-
* Redacts:
|
|
14
|
-
* - Object keys matching XHS_SENSITIVE_KEY_PATTERN (value becomes "[REDACTED]")
|
|
15
|
-
* - Cookie-like substrings within string values
|
|
16
|
-
* - xsec_token URL params within string values
|
|
17
|
-
*/
|
|
18
|
-
export function redactXhsSensitiveValue(value: unknown): unknown {
|
|
19
|
-
if (Array.isArray(value)) {
|
|
20
|
-
return value.map((item) => redactXhsSensitiveValue(item));
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
if (value && typeof value === "object") {
|
|
24
|
-
const redacted: Record<string, unknown> = {};
|
|
25
|
-
for (const [key, child] of Object.entries(value as Record<string, unknown>)) {
|
|
26
|
-
if (XHS_SENSITIVE_KEY_PATTERN.test(key)) {
|
|
27
|
-
redacted[key] = "[REDACTED]";
|
|
28
|
-
} else {
|
|
29
|
-
redacted[key] = redactXhsSensitiveValue(child);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
return redacted;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
if (typeof value === "string") {
|
|
36
|
-
let result = value;
|
|
37
|
-
// Redact cookie-like patterns
|
|
38
|
-
result = result.replace(XHS_COOKIE_PATTERN, (match) => {
|
|
39
|
-
const eqIdx = match.indexOf("=");
|
|
40
|
-
return eqIdx >= 0 ? `${match.slice(0, eqIdx + 1)}[REDACTED]` : "[REDACTED]";
|
|
41
|
-
});
|
|
42
|
-
// Redact xsec_token in URLs
|
|
43
|
-
result = result.replace(XHS_URL_TOKEN_PATTERN, "$1xsec_token=[REDACTED]");
|
|
44
|
-
return result;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
return value;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
/**
|
|
51
|
-
* Check if a string contains any XHS-sensitive patterns.
|
|
52
|
-
* Useful for assertions in tests.
|
|
53
|
-
*/
|
|
54
|
-
export function containsSensitiveValue(text: string): boolean {
|
|
55
|
-
if (XHS_COOKIE_PATTERN.test(text)) {
|
|
56
|
-
// Reset regex state for subsequent calls
|
|
57
|
-
XHS_COOKIE_PATTERN.lastIndex = 0;
|
|
58
|
-
return true;
|
|
59
|
-
}
|
|
60
|
-
if (XHS_URL_TOKEN_PATTERN.test(text)) {
|
|
61
|
-
XHS_URL_TOKEN_PATTERN.lastIndex = 0;
|
|
62
|
-
return true;
|
|
63
|
-
}
|
|
64
|
-
// Check for raw xsecToken-looking values
|
|
65
|
-
if (/xsecToken['":\s]*[:=]/i.test(text)) return true;
|
|
66
|
-
if (/xsec_token['":\s]*[:=]/i.test(text)) return true;
|
|
67
|
-
return false;
|
|
68
|
-
}
|
|
@@ -1,277 +0,0 @@
|
|
|
1
|
-
// XHS Desktop Connector - Read-only types
|
|
2
|
-
|
|
3
|
-
export type XhsFailureCode =
|
|
4
|
-
| "not_logged_in"
|
|
5
|
-
| "login_required"
|
|
6
|
-
| "blocked"
|
|
7
|
-
| "empty_profile_state"
|
|
8
|
-
| "profile_not_found"
|
|
9
|
-
| "note_not_found"
|
|
10
|
-
| "rate_limited"
|
|
11
|
-
| "network_error"
|
|
12
|
-
| "parse_error"
|
|
13
|
-
| "comment_disabled"
|
|
14
|
-
| "unknown";
|
|
15
|
-
|
|
16
|
-
export type XhsReadFailure = {
|
|
17
|
-
ok: false;
|
|
18
|
-
code: XhsFailureCode;
|
|
19
|
-
message: string;
|
|
20
|
-
diagnostic?: XhsCollectorDiagnostic;
|
|
21
|
-
fetchedAt: string;
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
export type XhsReadSuccess<T> = {
|
|
25
|
-
ok: true;
|
|
26
|
-
data: T;
|
|
27
|
-
fetchedAt: string;
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
export type XhsReadResult<T> = XhsReadSuccess<T> | XhsReadFailure;
|
|
31
|
-
|
|
32
|
-
// --- Collector diagnostics (redacted, no secrets) ---
|
|
33
|
-
|
|
34
|
-
export type XhsCollectorDiagnostic = {
|
|
35
|
-
/** Why the collector returned empty or failed data. */
|
|
36
|
-
code: XhsFailureCode;
|
|
37
|
-
/** Human-readable explanation. */
|
|
38
|
-
message: string;
|
|
39
|
-
/** Page title at the time of collection (may be empty). */
|
|
40
|
-
pageTitle?: string;
|
|
41
|
-
/** Final page URL after navigation (may differ if redirected). */
|
|
42
|
-
finalUrl?: string;
|
|
43
|
-
/** Whether a login wall / prompt was detected on the page. */
|
|
44
|
-
loginDetected?: boolean;
|
|
45
|
-
/** Whether a visible login prompt close button was clicked before declaring the page blocked. */
|
|
46
|
-
loginPromptDismissed?: boolean;
|
|
47
|
-
/** Whether a captcha / verification wall was detected. */
|
|
48
|
-
captchaDetected?: boolean;
|
|
49
|
-
/** Whether __INITIAL_STATE__ was present and non-empty. */
|
|
50
|
-
initialStatePresent?: boolean;
|
|
51
|
-
/** Number of note-like keys found inside __INITIAL_STATE__. */
|
|
52
|
-
initialStateNoteCount?: number;
|
|
53
|
-
/** Number of user_posted API responses captured. */
|
|
54
|
-
capturedApiResponseCount?: number;
|
|
55
|
-
/** HTTP status of the first captured user_posted response (if any). */
|
|
56
|
-
firstApiResponseStatus?: number;
|
|
57
|
-
/** Whether the page URL after navigation looks like a redirect to login. */
|
|
58
|
-
redirectedToLogin?: boolean;
|
|
59
|
-
/** Length of visible body text sampled for diagnostics. */
|
|
60
|
-
bodyTextLength?: number;
|
|
61
|
-
/** Number of visible login close/dismiss candidates found on the page. */
|
|
62
|
-
visibleCloseCandidateCount?: number;
|
|
63
|
-
/** Number of visible XHS note links found on the page. */
|
|
64
|
-
visibleNoteLinkCount?: number;
|
|
65
|
-
};
|
|
66
|
-
|
|
67
|
-
// --- Profile ---
|
|
68
|
-
|
|
69
|
-
export type XhsProfile = {
|
|
70
|
-
userId: string;
|
|
71
|
-
nickname: string;
|
|
72
|
-
redId?: string;
|
|
73
|
-
avatarUrl?: string;
|
|
74
|
-
desc?: string;
|
|
75
|
-
ipLocation?: string;
|
|
76
|
-
gender?: string; // "male" | "female" | "0" (unknown)
|
|
77
|
-
interactionCounts?: {
|
|
78
|
-
follows?: number;
|
|
79
|
-
fans?: number;
|
|
80
|
-
likesAndCollects?: number;
|
|
81
|
-
};
|
|
82
|
-
};
|
|
83
|
-
|
|
84
|
-
export type XhsNoteSummary = {
|
|
85
|
-
noteId: string;
|
|
86
|
-
title?: string;
|
|
87
|
-
coverUrl?: string;
|
|
88
|
-
type?: "normal" | "video";
|
|
89
|
-
likedCount?: number;
|
|
90
|
-
// kept from initial state / user_posted page
|
|
91
|
-
xsecToken?: string; // internal use only - must not appear in public exports
|
|
92
|
-
xsecSource?: string; // internal navigation hint only - must not appear in public exports
|
|
93
|
-
};
|
|
94
|
-
|
|
95
|
-
// --- Note Detail ---
|
|
96
|
-
|
|
97
|
-
export type XhsNoteDetail = {
|
|
98
|
-
noteId: string;
|
|
99
|
-
title: string;
|
|
100
|
-
desc: string;
|
|
101
|
-
type: "normal" | "video";
|
|
102
|
-
userId: string;
|
|
103
|
-
nickname: string;
|
|
104
|
-
avatarUrl?: string;
|
|
105
|
-
imageUrls?: string[];
|
|
106
|
-
videoUrl?: string;
|
|
107
|
-
tagList?: string[];
|
|
108
|
-
ipLocation?: string;
|
|
109
|
-
metrics: {
|
|
110
|
-
likedCount: number;
|
|
111
|
-
collectedCount: number;
|
|
112
|
-
commentCount: number;
|
|
113
|
-
shareCount: number;
|
|
114
|
-
};
|
|
115
|
-
createdAt?: string;
|
|
116
|
-
lastUpdateTime?: string;
|
|
117
|
-
};
|
|
118
|
-
|
|
119
|
-
// --- Comments ---
|
|
120
|
-
|
|
121
|
-
export type XhsComment = {
|
|
122
|
-
commentId: string;
|
|
123
|
-
userId: string;
|
|
124
|
-
nickname: string;
|
|
125
|
-
avatarUrl?: string;
|
|
126
|
-
content: string;
|
|
127
|
-
likeCount: number;
|
|
128
|
-
subCommentCount: number;
|
|
129
|
-
subComments?: XhsComment[]; // embedded samples only
|
|
130
|
-
ipLocation?: string;
|
|
131
|
-
createdAt?: string;
|
|
132
|
-
};
|
|
133
|
-
|
|
134
|
-
export type XhsCommentPage = {
|
|
135
|
-
comments: XhsComment[];
|
|
136
|
-
hasMore: boolean;
|
|
137
|
-
cursor?: string;
|
|
138
|
-
};
|
|
139
|
-
|
|
140
|
-
// --- Analyzed Result ---
|
|
141
|
-
|
|
142
|
-
export type XhsTopNote = {
|
|
143
|
-
noteId: string;
|
|
144
|
-
title?: string;
|
|
145
|
-
count: number;
|
|
146
|
-
};
|
|
147
|
-
|
|
148
|
-
export type XhsCommentBucket = {
|
|
149
|
-
label: string;
|
|
150
|
-
count: number;
|
|
151
|
-
sampleCommentIds: string[];
|
|
152
|
-
};
|
|
153
|
-
|
|
154
|
-
export type XhsProfileAnalysis = {
|
|
155
|
-
totalNotes: number;
|
|
156
|
-
highestLikedNote: XhsTopNote | null;
|
|
157
|
-
highestCommentedNote: XhsTopNote | null;
|
|
158
|
-
highestCollectedNote: XhsTopNote | null;
|
|
159
|
-
highestSharedNote: XhsTopNote | null;
|
|
160
|
-
commentBuckets: XhsCommentBucket[];
|
|
161
|
-
topLikedComments: XhsComment[];
|
|
162
|
-
};
|
|
163
|
-
|
|
164
|
-
// --- Collection Status (assisted mode) ---
|
|
165
|
-
|
|
166
|
-
export type XhsCollectionMode = "conservative" | "assisted";
|
|
167
|
-
export type XhsAssistedAction =
|
|
168
|
-
| "snapshot"
|
|
169
|
-
| "read_more_notes"
|
|
170
|
-
| "read_visible_details"
|
|
171
|
-
| "discover_indexed_notes";
|
|
172
|
-
|
|
173
|
-
export type XhsNextSuggestedAction = {
|
|
174
|
-
action:
|
|
175
|
-
| "read_more_notes"
|
|
176
|
-
| "read_visible_details"
|
|
177
|
-
| "discover_indexed_notes"
|
|
178
|
-
| "save_to_table"
|
|
179
|
-
| "stop_anonymous_unavailable";
|
|
180
|
-
label: string;
|
|
181
|
-
reason: string;
|
|
182
|
-
};
|
|
183
|
-
|
|
184
|
-
export type XhsCollectionStatus = {
|
|
185
|
-
mode: XhsCollectionMode;
|
|
186
|
-
action: XhsAssistedAction;
|
|
187
|
-
extendedCollectionConsent: boolean;
|
|
188
|
-
assistedStepCount: number;
|
|
189
|
-
limits: {
|
|
190
|
-
maxAssistedSteps: number;
|
|
191
|
-
maxScrollPages: number;
|
|
192
|
-
maxCommentPagesPerNote: number;
|
|
193
|
-
includeComments: boolean;
|
|
194
|
-
};
|
|
195
|
-
nextSuggestedAction?: XhsNextSuggestedAction;
|
|
196
|
-
};
|
|
197
|
-
|
|
198
|
-
// --- Full collection result ---
|
|
199
|
-
|
|
200
|
-
export type XhsProfileCollection = {
|
|
201
|
-
profile: XhsProfile;
|
|
202
|
-
notes: XhsNoteSummary[];
|
|
203
|
-
noteDetails: XhsNoteDetail[];
|
|
204
|
-
commentsByNote: Record<string, XhsComment[]>;
|
|
205
|
-
analysis: XhsProfileAnalysis;
|
|
206
|
-
indexedDiscovery?: {
|
|
207
|
-
source: "external_index";
|
|
208
|
-
requestedNoteUrls: string[];
|
|
209
|
-
acceptedNoteUrls: string[];
|
|
210
|
-
verifiedNoteUrls: string[];
|
|
211
|
-
};
|
|
212
|
-
/** Present only when the collector detected an issue. Never contains secrets. */
|
|
213
|
-
diagnostic?: XhsCollectorDiagnostic;
|
|
214
|
-
/** Collection status for assisted automation mode. */
|
|
215
|
-
collectionStatus?: XhsCollectionStatus;
|
|
216
|
-
};
|
|
217
|
-
|
|
218
|
-
// --- URL parsing result ---
|
|
219
|
-
|
|
220
|
-
export type XhsParsedProfileUrl = {
|
|
221
|
-
userId: string;
|
|
222
|
-
canonicalUrl: string;
|
|
223
|
-
navigationUrl: string;
|
|
224
|
-
xsecToken?: string; // preserved internally only
|
|
225
|
-
xsecSource?: string; // preserved internally only
|
|
226
|
-
};
|
|
227
|
-
|
|
228
|
-
export type XhsParsedNoteUrl = {
|
|
229
|
-
noteId: string;
|
|
230
|
-
canonicalUrl: string;
|
|
231
|
-
xsecToken?: string; // preserved internally only
|
|
232
|
-
xsecSource?: string; // preserved internally only
|
|
233
|
-
};
|
|
234
|
-
|
|
235
|
-
// --- Redaction ---
|
|
236
|
-
|
|
237
|
-
export type XhsConnectorOptions = {
|
|
238
|
-
profileUrl: string;
|
|
239
|
-
maxScrollPages?: number; // default 0
|
|
240
|
-
enrichDetails?: boolean; // default false
|
|
241
|
-
includeComments?: boolean; // default false
|
|
242
|
-
maxCommentPagesPerNote?: number; // default 1
|
|
243
|
-
headless?: boolean; // default false
|
|
244
|
-
cookieDir?: string;
|
|
245
|
-
fetchImpl?: typeof fetch;
|
|
246
|
-
/** Assisted mode: "conservative" (default) or "assisted" */
|
|
247
|
-
collectionMode?: XhsCollectionMode;
|
|
248
|
-
/** Which action to perform in assisted mode */
|
|
249
|
-
assistedAction?: XhsAssistedAction;
|
|
250
|
-
/** Max assisted steps (1..3), bounds scroll/comment pages */
|
|
251
|
-
maxAssistedSteps?: number;
|
|
252
|
-
/** Public note URLs discovered from an external search index. */
|
|
253
|
-
indexedNoteUrls?: string[];
|
|
254
|
-
};
|
|
255
|
-
|
|
256
|
-
// Helper to create failure
|
|
257
|
-
export function createXhsFailure(args: {
|
|
258
|
-
code: XhsFailureCode;
|
|
259
|
-
message: string;
|
|
260
|
-
diagnostic?: XhsCollectorDiagnostic;
|
|
261
|
-
}): XhsReadFailure {
|
|
262
|
-
return {
|
|
263
|
-
ok: false,
|
|
264
|
-
code: args.code,
|
|
265
|
-
message: args.message,
|
|
266
|
-
...(args.diagnostic ? { diagnostic: args.diagnostic } : {}),
|
|
267
|
-
fetchedAt: new Date().toISOString(),
|
|
268
|
-
};
|
|
269
|
-
}
|
|
270
|
-
|
|
271
|
-
export function createXhsSuccess<T>(data: T): XhsReadSuccess<T> {
|
|
272
|
-
return {
|
|
273
|
-
ok: true,
|
|
274
|
-
data,
|
|
275
|
-
fetchedAt: new Date().toISOString(),
|
|
276
|
-
};
|
|
277
|
-
}
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
import type { XhsParsedProfileUrl, XhsParsedNoteUrl } from "./types";
|
|
2
|
-
|
|
3
|
-
const PROFILE_RE =
|
|
4
|
-
/(?:(?:https?:\/\/)?(?:www\.)?xiaohongshu\.com)?\/user\/profile\/([a-f0-9]{24})(?:\?[^#]*)?/i;
|
|
5
|
-
|
|
6
|
-
const NOTE_RE =
|
|
7
|
-
/(?:(?:https?:\/\/)?(?:www\.)?xiaohongshu\.com)?\/(?:explore|discovery\/item)\/([a-f0-9]{24})(?:\?[^#]*)?/i;
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Parse a XHS profile URL and return userId + canonical URL.
|
|
11
|
-
* Accepts full URLs and path-only forms.
|
|
12
|
-
* The xsecToken query param is preserved in the result for internal navigation only.
|
|
13
|
-
*/
|
|
14
|
-
export function parseXhsProfileUrl(input: string): XhsParsedProfileUrl {
|
|
15
|
-
const match = input.match(PROFILE_RE);
|
|
16
|
-
if (!match) {
|
|
17
|
-
throw new Error(`Invalid XHS profile URL: ${input}`);
|
|
18
|
-
}
|
|
19
|
-
const userId = match[1];
|
|
20
|
-
const canonicalUrl = `https://www.xiaohongshu.com/user/profile/${userId}`;
|
|
21
|
-
|
|
22
|
-
let xsecToken: string | undefined;
|
|
23
|
-
let xsecSource: string | undefined;
|
|
24
|
-
try {
|
|
25
|
-
const urlObj = new URL(input.startsWith("http") ? input : `https://www.xiaohongshu.com${input}`);
|
|
26
|
-
xsecToken = urlObj.searchParams.get("xsec_token") ?? undefined;
|
|
27
|
-
xsecSource = urlObj.searchParams.get("xsec_source") ?? undefined;
|
|
28
|
-
} catch {
|
|
29
|
-
// The regex validation above already accepted path-like input; keep canonical navigation.
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
const navigationUrl = new URL(canonicalUrl);
|
|
33
|
-
if (xsecToken) navigationUrl.searchParams.set("xsec_token", xsecToken);
|
|
34
|
-
if (xsecSource) navigationUrl.searchParams.set("xsec_source", xsecSource);
|
|
35
|
-
|
|
36
|
-
return {
|
|
37
|
-
userId,
|
|
38
|
-
canonicalUrl,
|
|
39
|
-
navigationUrl: navigationUrl.toString(),
|
|
40
|
-
xsecToken,
|
|
41
|
-
xsecSource,
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* Parse a XHS note URL and return noteId + canonical URL.
|
|
47
|
-
* The xsecToken query param is preserved in the result for internal use only.
|
|
48
|
-
*/
|
|
49
|
-
export function parseXhsNoteUrl(input: string): XhsParsedNoteUrl {
|
|
50
|
-
const match = input.match(NOTE_RE);
|
|
51
|
-
if (!match) {
|
|
52
|
-
throw new Error(`Invalid XHS note URL: ${input}`);
|
|
53
|
-
}
|
|
54
|
-
const noteId = match[1];
|
|
55
|
-
|
|
56
|
-
// Extract xsec_token if present (internal use only)
|
|
57
|
-
let xsecToken: string | undefined;
|
|
58
|
-
let xsecSource: string | undefined;
|
|
59
|
-
try {
|
|
60
|
-
const urlObj = new URL(input.startsWith("http") ? input : `https://www.xiaohongshu.com${input}`);
|
|
61
|
-
xsecToken = urlObj.searchParams.get("xsec_token") ?? undefined;
|
|
62
|
-
xsecSource = urlObj.searchParams.get("xsec_source") ?? undefined;
|
|
63
|
-
} catch {
|
|
64
|
-
// ignore parse errors
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
return {
|
|
68
|
-
noteId,
|
|
69
|
-
canonicalUrl: `https://www.xiaohongshu.com/explore/${noteId}`,
|
|
70
|
-
xsecToken,
|
|
71
|
-
xsecSource,
|
|
72
|
-
};
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
/**
|
|
76
|
-
* Validate that a string looks like a valid XHS note ID (24 hex chars).
|
|
77
|
-
*/
|
|
78
|
-
export function isValidXhsId(id: string): boolean {
|
|
79
|
-
return /^[a-f0-9]{24}$/i.test(id);
|
|
80
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { getAgentInternalCommandEntries } from "./agentInternalCommandEntries";
|
|
2
|
-
import { getDialogInternalCommandEntries } from "./dialogInternalCommandEntries";
|
|
3
|
-
import { getDocInternalCommandEntries } from "./docInternalCommandEntries";
|
|
4
|
-
import type { CommandEntry } from "./cliCommandTypes";
|
|
5
|
-
import { getMemoryInternalCommandEntries } from "./memoryInternalCommandEntries";
|
|
6
|
-
import { getSystemInternalCommandEntries } from "./systemInternalCommandEntries";
|
|
7
|
-
import { getWorkflowInternalCommandEntries } from "./workflowInternalCommandEntries";
|
|
8
|
-
|
|
9
|
-
export function getInternalCommandEntries(renderHelpText: () => string): CommandEntry[] {
|
|
10
|
-
return [
|
|
11
|
-
...getAgentInternalCommandEntries(),
|
|
12
|
-
...getDialogInternalCommandEntries(),
|
|
13
|
-
...getDocInternalCommandEntries(),
|
|
14
|
-
...getMemoryInternalCommandEntries(),
|
|
15
|
-
...getWorkflowInternalCommandEntries(),
|
|
16
|
-
...getSystemInternalCommandEntries(renderHelpText),
|
|
17
|
-
];
|
|
18
|
-
}
|
package/localRuntimeAuthority.ts
DELETED
|
@@ -1,182 +0,0 @@
|
|
|
1
|
-
import fs from "node:fs";
|
|
2
|
-
import path from "node:path";
|
|
3
|
-
|
|
4
|
-
import {
|
|
5
|
-
createCliAuthorityBrokerClient,
|
|
6
|
-
createCliAuthorityBrokerSocketInvoker,
|
|
7
|
-
isCliAuthorityBrokerUnavailableError,
|
|
8
|
-
} from "./database/server/cliAuthorityBrokerClient";
|
|
9
|
-
import type { CliAuthorityBrokerClientOptions } from "./database/server/cliAuthorityBrokerClient";
|
|
10
|
-
import {
|
|
11
|
-
getOrCreateCliAuthorityBrokerServer,
|
|
12
|
-
} from "./database/server/cliAuthorityBrokerServer";
|
|
13
|
-
import type { CliAuthorityBrokerServerOptions } from "./database/server/cliAuthorityBrokerServer";
|
|
14
|
-
import {
|
|
15
|
-
resolveCliAuthorityBrokerEndpoint,
|
|
16
|
-
resolveCliAuthorityBrokerHealthPath,
|
|
17
|
-
resolveCliAuthorityBrokerMetadataPath,
|
|
18
|
-
} from "./database/server/cliAuthorityStoreDriver";
|
|
19
|
-
import { resolveNoloHome } from "./database/server/dbPath";
|
|
20
|
-
import type { AuthorityStore } from "./database/server/authorityStoreTypes";
|
|
21
|
-
import { createLevelAuthorityStore } from "./database/server/levelAuthorityStore";
|
|
22
|
-
import { createLegacyServerDb } from "./database/server/legacyServerDb";
|
|
23
|
-
|
|
24
|
-
type EnvLike = Record<string, string | undefined>;
|
|
25
|
-
|
|
26
|
-
type ResolveCliLocalRuntimeAuthorityOptions = {
|
|
27
|
-
env?: EnvLike;
|
|
28
|
-
homeDir?: string;
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
function ensureDbParentDir(dbPath: string) {
|
|
32
|
-
fs.mkdirSync(path.dirname(dbPath), { recursive: true });
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
function isCliAuthorityLockError(error: unknown) {
|
|
36
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
37
|
-
return /LEVEL_LOCKED|Resource temporarily unavailable|\/LOCK|LOCK:|Database failed to open|EADDRINUSE|Failed to listen/i.test(message);
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
async function sleep(ms: number) {
|
|
41
|
-
await new Promise((resolve) => setTimeout(resolve, ms));
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
function resolveCliLocalRuntimeDbPath(options: ResolveCliLocalRuntimeAuthorityOptions = {}) {
|
|
45
|
-
return path.join(
|
|
46
|
-
resolveNoloHome({
|
|
47
|
-
env: options.env,
|
|
48
|
-
homeDir: options.homeDir,
|
|
49
|
-
}),
|
|
50
|
-
"data",
|
|
51
|
-
"leveldb"
|
|
52
|
-
);
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
type CliAuthorityBrokerConnectDeps = {
|
|
56
|
-
createClient: (options: CliAuthorityBrokerClientOptions) => AuthorityStore;
|
|
57
|
-
startBroker: (options: CliAuthorityBrokerServerOptions) => Promise<unknown>;
|
|
58
|
-
sleep: (ms: number) => Promise<void>;
|
|
59
|
-
};
|
|
60
|
-
|
|
61
|
-
const defaultCliAuthorityBrokerConnectDeps: CliAuthorityBrokerConnectDeps = {
|
|
62
|
-
createClient: (options) => createCliAuthorityBrokerClient(options),
|
|
63
|
-
startBroker: (options) => getOrCreateCliAuthorityBrokerServer(options),
|
|
64
|
-
sleep,
|
|
65
|
-
};
|
|
66
|
-
|
|
67
|
-
export async function connectCliAuthorityBroker(args: {
|
|
68
|
-
endpoint: string;
|
|
69
|
-
metadataPath: string;
|
|
70
|
-
healthPath: string;
|
|
71
|
-
dbPath: string;
|
|
72
|
-
deps?: Partial<CliAuthorityBrokerConnectDeps>;
|
|
73
|
-
}) {
|
|
74
|
-
const deps: CliAuthorityBrokerConnectDeps = {
|
|
75
|
-
...defaultCliAuthorityBrokerConnectDeps,
|
|
76
|
-
...args.deps,
|
|
77
|
-
};
|
|
78
|
-
const client = deps.createClient({
|
|
79
|
-
endpoint: args.endpoint,
|
|
80
|
-
invoke: createCliAuthorityBrokerSocketInvoker({ endpoint: args.endpoint }),
|
|
81
|
-
});
|
|
82
|
-
|
|
83
|
-
async function attachToExistingBroker(attempts: number) {
|
|
84
|
-
for (let attempt = 0; attempt < attempts; attempt += 1) {
|
|
85
|
-
await deps.sleep(100);
|
|
86
|
-
try {
|
|
87
|
-
await client.open();
|
|
88
|
-
return true;
|
|
89
|
-
} catch (error) {
|
|
90
|
-
if (!isCliAuthorityBrokerUnavailableError(error)) throw error;
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
return false;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
try {
|
|
97
|
-
await deps.startBroker({
|
|
98
|
-
endpoint: args.endpoint,
|
|
99
|
-
metadataPath: args.metadataPath,
|
|
100
|
-
healthPath: args.healthPath,
|
|
101
|
-
createStore: () => createLevelAuthorityStore(args.dbPath),
|
|
102
|
-
});
|
|
103
|
-
await client.open();
|
|
104
|
-
return client;
|
|
105
|
-
} catch (error) {
|
|
106
|
-
if (!isCliAuthorityLockError(error)) throw error;
|
|
107
|
-
|
|
108
|
-
if (await attachToExistingBroker(5)) {
|
|
109
|
-
return client;
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
let lastError: unknown = error;
|
|
113
|
-
for (let attempt = 0; attempt < 5; attempt += 1) {
|
|
114
|
-
await deps.sleep(100);
|
|
115
|
-
try {
|
|
116
|
-
await deps.startBroker({
|
|
117
|
-
endpoint: args.endpoint,
|
|
118
|
-
metadataPath: args.metadataPath,
|
|
119
|
-
healthPath: args.healthPath,
|
|
120
|
-
createStore: () => createLevelAuthorityStore(args.dbPath),
|
|
121
|
-
});
|
|
122
|
-
await client.open();
|
|
123
|
-
return client;
|
|
124
|
-
} catch (retryError) {
|
|
125
|
-
lastError = retryError;
|
|
126
|
-
if (isCliAuthorityLockError(retryError)) {
|
|
127
|
-
if (await attachToExistingBroker(2)) {
|
|
128
|
-
return client;
|
|
129
|
-
}
|
|
130
|
-
continue;
|
|
131
|
-
}
|
|
132
|
-
if (isCliAuthorityBrokerUnavailableError(retryError)) {
|
|
133
|
-
continue;
|
|
134
|
-
}
|
|
135
|
-
throw retryError;
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
throw new Error(`CLI authority broker could not attach or take ownership for ${args.endpoint}`, {
|
|
139
|
-
cause: lastError,
|
|
140
|
-
});
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
export async function getDefaultCliLocalRuntimeAuthority(
|
|
146
|
-
options: ResolveCliLocalRuntimeAuthorityOptions = {}
|
|
147
|
-
) {
|
|
148
|
-
const env = options.env ?? process.env;
|
|
149
|
-
const dbPath = resolveCliLocalRuntimeDbPath({
|
|
150
|
-
env,
|
|
151
|
-
homeDir: options.homeDir,
|
|
152
|
-
});
|
|
153
|
-
ensureDbParentDir(dbPath);
|
|
154
|
-
const endpoint = resolveCliAuthorityBrokerEndpoint({
|
|
155
|
-
transport: "tcp",
|
|
156
|
-
env,
|
|
157
|
-
homeDir: options.homeDir,
|
|
158
|
-
});
|
|
159
|
-
const metadataPath = resolveCliAuthorityBrokerMetadataPath({
|
|
160
|
-
transport: "tcp",
|
|
161
|
-
env,
|
|
162
|
-
homeDir: options.homeDir,
|
|
163
|
-
});
|
|
164
|
-
const healthPath = resolveCliAuthorityBrokerHealthPath({
|
|
165
|
-
transport: "tcp",
|
|
166
|
-
env,
|
|
167
|
-
homeDir: options.homeDir,
|
|
168
|
-
});
|
|
169
|
-
return connectCliAuthorityBroker({
|
|
170
|
-
endpoint,
|
|
171
|
-
metadataPath,
|
|
172
|
-
healthPath,
|
|
173
|
-
dbPath,
|
|
174
|
-
});
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
export async function getDefaultCliLocalRuntimeDb(
|
|
178
|
-
options: ResolveCliLocalRuntimeAuthorityOptions = {}
|
|
179
|
-
) {
|
|
180
|
-
const authorityStore = await getDefaultCliLocalRuntimeAuthority(options);
|
|
181
|
-
return createLegacyServerDb(authorityStore);
|
|
182
|
-
}
|
package/localRuntimeDb.ts
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import type { CliLocalRuntimeDb } from "./client/localRuntimeAdapter";
|
|
2
|
-
import path from "node:path";
|
|
3
|
-
import { resolveNoloHome } from "./database/server/dbPath";
|
|
4
|
-
|
|
5
|
-
type EnvLike = Record<string, string | undefined>;
|
|
6
|
-
|
|
7
|
-
type CliLocalRuntimeDbPathOptions = {
|
|
8
|
-
env?: EnvLike;
|
|
9
|
-
homeDir?: string;
|
|
10
|
-
};
|
|
11
|
-
|
|
12
|
-
export function resolveCliLocalRuntimeDbPath(options: CliLocalRuntimeDbPathOptions = {}) {
|
|
13
|
-
return path.join(resolveNoloHome(options), "data", "leveldb");
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
export function buildCliLocalRuntimeDbEnv(env: EnvLike = process.env) {
|
|
17
|
-
return {
|
|
18
|
-
...env,
|
|
19
|
-
NOLO_SERVER_DB_PATH: env.NOLO_SERVER_DB_PATH?.trim() || resolveCliLocalRuntimeDbPath({ env }),
|
|
20
|
-
};
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
export async function getDefaultCliLocalRuntimeDb(): Promise<CliLocalRuntimeDb> {
|
|
24
|
-
const { getDefaultCliLocalRuntimeDb: getAuthorityBackedDb } = await import("./localRuntimeAuthority");
|
|
25
|
-
return getAuthorityBackedDb();
|
|
26
|
-
}
|