akanjs 3.0.0-beta.2 → 3.0.0-beta.20
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/base/base.ts +6 -11
- package/base/baseEnv.ts +17 -11
- package/base/databaseModes.ts +75 -0
- package/base/index.ts +1 -0
- package/base/primitiveRegistry.ts +38 -47
- package/base/symbols.ts +1 -1
- package/base/types.ts +1 -1
- package/base/utils.ts +3 -6
- package/capacitor.base.config.ts +2 -3
- package/client/capacitor.ts +18 -63
- package/client/cn.ts +3 -13
- package/client/cookie.ts +6 -15
- package/client/createFont.ts +0 -2
- package/client/csrTypes.ts +6 -59
- package/client/decorators.ts +1 -1
- package/client/device.ts +52 -44
- package/client/frameConfig.ts +15 -26
- package/client/index.ts +0 -1
- package/client/makePageProto.tsx +3 -4
- package/client/route/RootLayoutDefinition.ts +0 -6
- package/client/route/RouteDefinition.ts +5 -30
- package/client/route/resolveRouteModule.ts +1 -5
- package/client/router.ts +35 -39
- package/client/rscNavigation.ts +4 -5
- package/client/sharedContext.ts +2 -19
- package/client/storage.ts +29 -38
- package/client/translator.ts +5 -6
- package/client/types.ts +0 -3
- package/common/CodeAgentClient.ts +91 -0
- package/common/CodeTranscript.ts +325 -0
- package/common/Logger.ts +9 -34
- package/common/TrustedProxy.ts +6 -34
- package/common/applyMixins.ts +13 -2
- package/common/authToken.ts +0 -11
- package/common/capitalize.ts +3 -4
- package/common/clamp.ts +0 -1
- package/common/clientAddress.ts +1 -15
- package/common/codeAgentProfile.ts +181 -0
- package/common/codeAgentWire.ts +305 -0
- package/{server/routing → common}/eventStream.ts +1 -6
- package/common/fileUpload.ts +1 -12
- package/common/formatNumber.ts +3 -12
- package/common/index.ts +104 -19
- package/common/interpolateTranslation.ts +1 -6
- package/common/isEmail.ts +0 -1
- package/common/isRecord.ts +2 -0
- package/common/isThenable.ts +1 -8
- package/common/isValidDate.ts +3 -5
- package/common/logContext.ts +1 -1
- package/{ui/Agent → common}/markdownBlocks.ts +0 -3
- package/common/markdownSpans.ts +47 -0
- package/{ui/Agent → common}/markdownTable.ts +1 -5
- package/common/mcpExposure.ts +4 -27
- package/common/objectPath.ts +67 -0
- package/common/objectify.ts +52 -0
- package/common/{isPhoneNumber.ts → phone.ts} +7 -1
- package/common/randomPick.ts +13 -0
- package/common/requestOrigin.ts +0 -17
- package/common/restClient.ts +8 -13
- package/common/round.ts +4 -0
- package/common/routeConvention.ts +21 -14
- package/common/sleep.ts +1 -8
- package/common/subRoute.ts +4 -7
- package/common/toError.ts +1 -0
- package/common/tunnelWire.ts +263 -0
- package/common/types.ts +6 -7
- package/common/{splitVersion.ts → version.ts} +3 -6
- package/common/{websocketBinaryFrame.ts → websocketContract.ts} +43 -9
- package/constant/cascadePaths.ts +6 -9
- package/constant/constantRegistry.ts +21 -57
- package/constant/crystalize.ts +2 -12
- package/constant/dateSlot.ts +0 -15
- package/constant/fieldInfo.ts +30 -109
- package/constant/fieldQueryMeta.ts +2 -10
- package/constant/getDefault.ts +16 -8
- package/constant/hydrationPlan.ts +1 -9
- package/constant/index.ts +0 -1
- package/constant/labelOf.ts +1 -6
- package/constant/mask.ts +36 -38
- package/constant/purify.ts +6 -14
- package/constant/serialize.ts +82 -5
- package/constant/textFieldPaths.ts +2 -3
- package/constant/types.ts +2 -6
- package/constant/via.ts +20 -60
- package/dictionary/DictionaryLookup.ts +1 -7
- package/dictionary/agent.dictionary.ts +43 -11
- package/dictionary/base.dictionary.ts +11 -0
- package/dictionary/dictInfo.ts +145 -626
- package/dictionary/dictShape.ts +54 -0
- package/dictionary/dictionary.ts +1 -2
- package/dictionary/dictionaryRegistry.ts +7 -28
- package/dictionary/locale.ts +24 -116
- package/dictionary/trans.ts +18 -56
- package/document/dataLoader.ts +77 -78
- package/document/database.ts +52 -56
- package/document/documentQuery.ts +32 -32
- package/document/documentSchema.ts +21 -26
- package/document/filterMeta.ts +11 -31
- package/document/index.ts +0 -1
- package/document/into.ts +8 -18
- package/document/loaderInfo.ts +28 -7
- package/document/noDocumentError.ts +2 -7
- package/document/queryEvaluator.ts +21 -43
- package/document/types.ts +0 -1
- package/fetch/client/fetchClient.ts +66 -105
- package/fetch/client/fetchHandle.ts +4 -12
- package/fetch/client/httpClient.ts +35 -68
- package/fetch/client/remoteError.ts +2 -8
- package/fetch/client/sliceInitHandle.ts +3 -6
- package/fetch/client/sliceQueryArgs.ts +11 -0
- package/fetch/client/wsClient.ts +75 -64
- package/fetch/fetchType/appliedReturn.type.ts +5 -24
- package/fetch/fetchType/buildFetch.type.ts +28 -1
- package/fetch/fetchType/index.ts +0 -1
- package/fetch/requestStorage.ts +7 -28
- package/fetch/types.ts +0 -1
- package/index.ts +31 -64
- package/package.json +19 -5
- package/server/akanApp.ts +138 -289
- package/server/akanAppHeaders.ts +2 -3
- package/server/akanOption.ts +25 -27
- package/server/akanServer.ts +98 -219
- package/server/animatedImage.ts +2 -11
- package/server/artifact/builderRpc.ts +24 -64
- package/server/artifact/index.ts +0 -1
- package/server/artifact/ipcTypes.ts +27 -30
- package/server/artifact/routeClientCache.ts +18 -37
- package/server/artifact/routeSeedIndexStore.ts +2 -35
- package/server/artifact/routesManifestStore.ts +13 -38
- package/server/binaryPubsub.ts +0 -9
- package/server/cachePolicy.ts +10 -44
- package/server/console.ts +12 -16
- package/server/consoleSession.ts +55 -12
- package/server/contentEncoding.ts +42 -27
- package/server/decorators.ts +4 -70
- package/server/devtools/constantSerializer.ts +2 -14
- package/server/devtools/depsSerializer.ts +14 -46
- package/server/devtools/devtoolsJson.ts +6 -18
- package/server/devtools/devtoolsRouter.ts +2 -12
- package/server/devtools/signalSerializer.ts +5 -44
- package/server/devtools/types.ts +0 -12
- package/server/di/diLifecycle.ts +141 -221
- package/server/di/predefinedAdaptor.ts +11 -5
- package/server/di/resolveHierarchy.ts +114 -5
- package/server/di/utils.ts +13 -29
- package/server/head.tsx +53 -0
- package/server/hmr/clientScript.ts +2 -8
- package/server/hmr/devHmrController.ts +28 -32
- package/server/hmr/wsHub.ts +9 -7
- package/server/imageOptimizer.ts +5 -26
- package/server/index.ts +1 -1
- package/server/lifecycle/portInUse.ts +1 -4
- package/server/lifecycle/runtimeDir.ts +0 -4
- package/server/lifecycle/shutdownManager.ts +4 -29
- package/server/logging/childOutputReader.ts +0 -12
- package/server/logging/hubFileSink.ts +10 -6
- package/server/logging/logControlSocket.ts +13 -7
- package/server/logging/logForwarder.ts +19 -22
- package/server/logging/logHub.ts +0 -0
- package/server/logging/logQuery.ts +4 -7
- package/server/logging/logStdoutWriter.ts +1 -11
- package/server/logging/logStreamRoute.ts +4 -21
- package/server/logging/logTailClient.ts +1 -8
- package/server/logging/rotatingLogWriter.ts +4 -6
- package/server/mcp/McpAuth.ts +5 -79
- package/server/mcp/McpDispatcher.ts +13 -90
- package/server/mcp/McpEventStream.ts +2 -12
- package/server/mcp/McpExecutionContext.ts +1 -42
- package/server/mcp/McpRateLimiter.ts +61 -30
- package/server/mcp/McpRouter.ts +49 -208
- package/server/mcp/PagePromptComposer.ts +7 -29
- package/server/memoryLimit.ts +1 -13
- package/server/oauth/OAuthAuthorize.ts +3 -7
- package/server/oauth/OAuthClientIdMetadata.ts +2 -27
- package/server/oauth/OAuthErrors.ts +0 -13
- package/server/oauth/OAuthMetadata.ts +1 -7
- package/server/oauth/OAuthPkce.ts +0 -2
- package/server/oauth/OAuthRedirect.ts +0 -9
- package/server/oauth/OAuthRegistration.ts +0 -2
- package/server/oauth/OAuthRevocation.ts +1 -11
- package/server/oauth/OAuthToken.ts +3 -14
- package/server/oauth/oauthTypes.ts +1 -2
- package/server/ops/ageEncryption.ts +317 -0
- package/server/ops/appInfo.ts +92 -0
- package/server/ops/opsCommand.ts +116 -0
- package/server/ops/opsRoute.ts +151 -0
- package/server/ops/opsToken.ts +93 -0
- package/server/ops/snapshotJobs.ts +133 -0
- package/server/ops/snapshotRestore.ts +118 -0
- package/server/ops/snapshotTypes.ts +52 -0
- package/server/ops/sqliteFiles.ts +20 -0
- package/server/ops/sqliteSnapshot.ts +149 -0
- package/server/processMetricsCollector.ts +12 -14
- package/server/proxy/hostBasePathWebProxy.ts +20 -13
- package/server/proxy/index.ts +2 -3
- package/server/proxy/localeWebProxy.ts +3 -17
- package/server/proxy/types.ts +14 -0
- package/server/proxy/webProxyRunner.ts +13 -1
- package/server/resolver/CascadeRunner.ts +7 -23
- package/server/resolver/database.resolver.ts +57 -123
- package/server/resolver/service.resolver.ts +9 -161
- package/server/resolver/signal.resolver.ts +73 -98
- package/server/routeElementComposer.tsx +23 -52
- package/server/routeState.ts +15 -34
- package/server/routeTreeBuilder.ts +24 -83
- package/server/routing/apiRouter.ts +17 -49
- package/server/routing/appWsData.ts +4 -28
- package/server/routing/soloAppRoutes.ts +5 -5
- package/server/rscClient.tsx +31 -37
- package/server/rscClientFetch.ts +7 -3
- package/server/rscClientPatch.ts +4 -25
- package/server/rscHttp.ts +1 -1
- package/server/rscNavigationState.ts +10 -25
- package/server/rscPagePrompts.ts +4 -24
- package/server/rscSegmentOutlet.tsx +1 -5
- package/server/rscWorker.tsx +146 -285
- package/server/rscWorkerCache.ts +74 -8
- package/server/rscWorkerHost.ts +45 -192
- package/server/semaphore.ts +1 -1
- package/server/sitemap.ts +1 -3
- package/server/ssrFromRscRenderer.tsx +31 -124
- package/server/ssrTypes.ts +3 -29
- package/server/staticPath.ts +0 -16
- package/server/systemPageDocument.tsx +65 -2
- package/server/systemPages.tsx +4 -2
- package/server/tunnel/TunnelAgent.ts +237 -0
- package/server/tunnel/TunnelDataSocket.ts +146 -0
- package/server/tunnel/TunnelHttpStream.ts +86 -0
- package/server/tunnel/TunnelTcpStream.ts +96 -0
- package/server/tunnel/TunnelWebsocketStream.ts +110 -0
- package/server/tunnel/index.ts +6 -0
- package/server/tunnel/tunnelStream.ts +32 -0
- package/server/types.tsx +2 -9
- package/server/webRouter.ts +88 -306
- package/service/agent.service.ts +66 -35
- package/service/injectInfo.ts +106 -75
- package/service/ipcTypes.ts +4 -1
- package/service/liveSyncHub.ts +4 -34
- package/service/predefinedAdaptor/anthropicLlm.ts +65 -75
- package/service/predefinedAdaptor/cache.adaptor.ts +257 -75
- package/service/predefinedAdaptor/database.adaptor.ts +366 -108
- package/service/predefinedAdaptor/documentTransfer.ts +89 -0
- package/service/predefinedAdaptor/index.ts +2 -1
- package/service/predefinedAdaptor/insightQuery.ts +89 -79
- package/service/predefinedAdaptor/llm.adaptor.ts +64 -54
- package/service/predefinedAdaptor/llmOverflow.ts +63 -0
- package/service/predefinedAdaptor/openaiDialect.ts +56 -64
- package/service/predefinedAdaptor/openaiLlm.ts +24 -27
- package/service/predefinedAdaptor/queue.adaptor.ts +41 -22
- package/service/predefinedAdaptor/schedule.adaptor.ts +69 -9
- package/service/predefinedAdaptor/searchIndex.ts +76 -325
- package/service/predefinedAdaptor/solidCache.adaptor.ts +135 -12
- package/service/predefinedAdaptor/solidPubsub.adaptor.ts +28 -16
- package/service/predefinedAdaptor/solidQueue.adaptor.ts +61 -10
- package/service/predefinedAdaptor/solidSqlite.ts +10 -16
- package/service/predefinedAdaptor/sql/PendingStoreEnsures.ts +1 -0
- package/service/predefinedAdaptor/sql/PostgresInsightSession.ts +113 -0
- package/service/predefinedAdaptor/sql/QueryCompiler.ts +50 -30
- package/service/predefinedAdaptor/sql/SqlDocumentStore.ts +290 -138
- package/service/predefinedAdaptor/sql/SqliteInsightSession.ts +85 -0
- package/service/predefinedAdaptor/sql/UpdateCompiler.ts +1 -7
- package/service/predefinedAdaptor/sql/dialect/postgres.ts +138 -53
- package/service/predefinedAdaptor/sql/dialect/sqlite.ts +18 -15
- package/service/predefinedAdaptor/sql/driver/bunSqlite.ts +31 -4
- package/service/predefinedAdaptor/sql/driver/libsql.ts +20 -12
- package/service/predefinedAdaptor/sql/driver/postgres.ts +13 -7
- package/service/predefinedAdaptor/sql/search/fts5.ts +249 -0
- package/service/predefinedAdaptor/sql/search/mirror.ts +76 -0
- package/service/predefinedAdaptor/sql/search/postgres.ts +453 -0
- package/service/predefinedAdaptor/sql/search/types.ts +50 -0
- package/service/predefinedAdaptor/sql/types.ts +76 -17
- package/service/predefinedAdaptor/sql/values.ts +40 -2
- package/service/predefinedAdaptor/sqlitePath.ts +12 -0
- package/service/predefinedAdaptor/sseData.ts +23 -0
- package/service/predefinedAdaptor/storage.adaptor.ts +19 -7
- package/service/predefinedAdaptor/websocket.adaptor.ts +154 -184
- package/service/serve.ts +1 -2
- package/service/serviceModule.ts +52 -70
- package/service/toolNames.ts +5 -22
- package/service/types.ts +3 -9
- package/signal/CrossSiteGuard.ts +5 -40
- package/signal/SignalFailure.ts +2 -15
- package/signal/agent/AgentCatalogue.ts +9 -55
- package/signal/agent.signal.ts +9 -6
- package/signal/agentMeter.ts +45 -0
- package/signal/agentTurnStream.ts +48 -46
- package/signal/endpoint.ts +12 -2
- package/signal/endpointCache.ts +59 -0
- package/signal/endpointInfo.ts +13 -27
- package/signal/exception.ts +3 -34
- package/signal/guard.ts +4 -21
- package/signal/guards.ts +2 -10
- package/signal/index.ts +1 -0
- package/signal/internal.ts +3 -7
- package/signal/internalArg.ts +10 -13
- package/signal/internalInfo.ts +1 -1
- package/signal/mcp/McpDocument.ts +21 -90
- package/signal/mcp/McpProgress.ts +6 -19
- package/signal/mcp/McpUriTemplate.ts +1 -27
- package/signal/mcp/Msg.ts +13 -122
- package/signal/mcp/mcpProtocol.ts +3 -26
- package/signal/mcp/pagePrompt.ts +3 -9
- package/signal/middleware.ts +15 -65
- package/signal/openapi/openapi.ts +0 -4
- package/signal/schema/JsonSchemaBuilder.ts +32 -46
- package/signal/serializer/fetch.serializer.ts +37 -43
- package/signal/serverSignal.ts +6 -8
- package/signal/signalContext.ts +70 -161
- package/signal/signalRegistry.ts +11 -17
- package/signal/slice.ts +6 -12
- package/signal/sliceInfo.ts +5 -30
- package/signal/trace.ts +11 -84
- package/signal/types.ts +27 -57
- package/store/SliceRequest.ts +1 -11
- package/store/action.ts +153 -395
- package/store/actionTag.ts +1 -10
- package/store/agent/AgentBridge.ts +3 -25
- package/store/agent/AgentContext.ts +2 -9
- package/store/agent/AgentCursor.ts +160 -0
- package/store/agent/AgentPrompts.ts +0 -15
- package/store/agent/AgentVisual.ts +152 -0
- package/store/agent/ScreenFlash.ts +67 -0
- package/store/agent/ScreenReader.ts +3 -52
- package/store/agent/ScreenSettle.ts +1 -13
- package/store/agent/ScreenTarget.ts +15 -32
- package/store/agent/StoreCatalogue.ts +12 -24
- package/store/agent/StoreSurfaceSource.ts +35 -65
- package/store/agent/index.ts +4 -4
- package/store/agentic/AgentValue.ts +9 -26
- package/store/agentic/StExposeBuilder.ts +3 -12
- package/store/agentic/StExposeDraft.ts +0 -6
- package/store/agentic/StStateBuilder.ts +3 -11
- package/store/agentic/StStateDraft.ts +0 -5
- package/store/agentic/StToolBuilder.ts +48 -41
- package/store/agentic/StToolDraft.ts +0 -7
- package/store/agentic/attachAgentic.ts +2 -10
- package/store/agentic/formFields.ts +8 -42
- package/store/agentic/index.ts +1 -1
- package/store/agentic/useAgentReference.ts +31 -0
- package/store/agentic/useFieldTool.ts +176 -58
- package/store/agentic/useFormTools.ts +4 -21
- package/store/agentic/useRelationFieldTool.ts +2 -15
- package/store/databaseStateNames.ts +0 -9
- package/store/draftStore.ts +4 -54
- package/store/formSetterNames.ts +2 -19
- package/store/hooks.ts +1 -1
- package/store/liveInsert.ts +1 -30
- package/store/sliceKeys.ts +37 -0
- package/store/sliceRole.ts +1 -10
- package/store/state.ts +4 -50
- package/store/stateBuilder.ts +1 -23
- package/store/storeInstance.ts +21 -114
- package/store/storeRegistry.ts +1 -8
- package/store/types.ts +1 -1
- package/test/conformance.ts +299 -0
- package/test/index.ts +2 -2
- package/test/sampleOf.ts +52 -28
- package/test/signalTestRuntime.ts +6 -10
- package/test/testServer.ts +66 -31
- package/types/base/base.d.ts +2 -3
- package/types/base/baseEnv.d.ts +7 -10
- package/types/base/databaseModes.d.ts +28 -0
- package/types/base/index.d.ts +1 -0
- package/types/base/primitiveRegistry.d.ts +23 -10
- package/types/base/symbols.d.ts +1 -1
- package/types/capacitor.base.config.d.ts +1 -1
- package/types/client/cn.d.ts +3 -13
- package/types/client/cookie.d.ts +3 -12
- package/types/client/csrTypes.d.ts +6 -57
- package/types/client/decorators.d.ts +1 -1
- package/types/client/device.d.ts +2 -1
- package/types/client/index.d.ts +0 -1
- package/types/client/route/RootLayoutDefinition.d.ts +0 -1
- package/types/client/route/RouteDefinition.d.ts +4 -16
- package/types/client/route/resolveRouteModule.d.ts +1 -5
- package/types/client/router.d.ts +8 -4
- package/types/client/rscNavigation.d.ts +4 -5
- package/types/client/sharedContext.d.ts +2 -19
- package/types/client/storage.d.ts +1 -1
- package/types/client/types.d.ts +0 -3
- package/types/common/CodeAgentClient.d.ts +20 -0
- package/types/common/CodeTranscript.d.ts +72 -0
- package/types/common/Logger.d.ts +4 -20
- package/types/common/TrustedProxy.d.ts +2 -28
- package/types/common/applyMixins.d.ts +3 -0
- package/types/common/authToken.d.ts +0 -11
- package/types/common/capitalize.d.ts +1 -1
- package/types/common/clamp.d.ts +0 -1
- package/types/common/clientAddress.d.ts +1 -15
- package/types/common/codeAgentProfile.d.ts +115 -0
- package/types/common/codeAgentWire.d.ts +279 -0
- package/types/{server/routing → common}/eventStream.d.ts +0 -5
- package/types/common/fileUpload.d.ts +6 -11
- package/types/common/index.d.ts +20 -19
- package/types/common/interpolateTranslation.d.ts +1 -6
- package/types/common/isEmail.d.ts +0 -1
- package/types/common/isRecord.d.ts +1 -0
- package/types/common/isThenable.d.ts +0 -8
- package/types/common/logContext.d.ts +1 -1
- package/types/{ui/Agent → common}/markdownBlocks.d.ts +0 -3
- package/types/common/markdownSpans.d.ts +30 -0
- package/types/{ui/Agent → common}/markdownTable.d.ts +0 -2
- package/types/common/mcpExposure.d.ts +3 -23
- package/types/common/objectPath.d.ts +10 -0
- package/types/common/objectify.d.ts +7 -0
- package/types/common/phone.d.ts +2 -0
- package/types/common/randomPick.d.ts +1 -0
- package/types/common/requestOrigin.d.ts +0 -17
- package/types/common/restClient.d.ts +0 -7
- package/types/common/round.d.ts +1 -0
- package/types/common/routeConvention.d.ts +2 -5
- package/types/common/sleep.d.ts +0 -1
- package/types/common/subRoute.d.ts +4 -6
- package/types/common/toError.d.ts +1 -0
- package/types/common/tunnelWire.d.ts +161 -0
- package/types/common/types.d.ts +7 -7
- package/types/common/version.d.ts +6 -0
- package/types/common/websocketContract.d.ts +41 -0
- package/types/constant/cascadePaths.d.ts +2 -5
- package/types/constant/constantRegistry.d.ts +4 -4
- package/types/constant/dateSlot.d.ts +0 -5
- package/types/constant/fieldInfo.d.ts +2 -21
- package/types/constant/fieldQueryMeta.d.ts +2 -10
- package/types/constant/getDefault.d.ts +5 -7
- package/types/constant/hydrationPlan.d.ts +0 -8
- package/types/constant/index.d.ts +0 -1
- package/types/constant/labelOf.d.ts +1 -6
- package/types/constant/mask.d.ts +11 -36
- package/types/constant/serialize.d.ts +10 -2
- package/types/constant/types.d.ts +2 -6
- package/types/constant/via.d.ts +0 -1
- package/types/dictionary/DictionaryLookup.d.ts +1 -7
- package/types/dictionary/agent.dictionary.d.ts +2 -1
- package/types/dictionary/base.dictionary.d.ts +1 -1
- package/types/dictionary/dictInfo.d.ts +25 -92
- package/types/dictionary/dictShape.d.ts +26 -0
- package/types/dictionary/dictionary.d.ts +9 -9
- package/types/dictionary/dictionaryRegistry.d.ts +1 -15
- package/types/dictionary/locale.d.ts +9 -28
- package/types/dictionary/trans.d.ts +5 -14
- package/types/document/dataLoader.d.ts +2 -2
- package/types/document/database.d.ts +21 -14
- package/types/document/documentQuery.d.ts +6 -1
- package/types/document/documentSchema.d.ts +3 -7
- package/types/document/filterMeta.d.ts +3 -8
- package/types/document/index.d.ts +0 -1
- package/types/document/into.d.ts +3 -2
- package/types/document/loaderInfo.d.ts +9 -4
- package/types/document/noDocumentError.d.ts +2 -7
- package/types/document/queryEvaluator.d.ts +7 -24
- package/types/document/types.d.ts +0 -1
- package/types/fetch/client/fetchClient.d.ts +6 -9
- package/types/fetch/client/fetchHandle.d.ts +3 -11
- package/types/fetch/client/httpClient.d.ts +5 -1
- package/types/fetch/client/remoteError.d.ts +2 -8
- package/types/fetch/client/sliceInitHandle.d.ts +2 -5
- package/types/fetch/client/sliceQueryArgs.d.ts +3 -0
- package/types/fetch/client/wsClient.d.ts +10 -15
- package/types/fetch/fetchType/appliedReturn.type.d.ts +5 -23
- package/types/fetch/fetchType/buildFetch.type.d.ts +15 -1
- package/types/fetch/fetchType/index.d.ts +0 -1
- package/types/fetch/requestStorage.d.ts +3 -16
- package/types/fetch/types.d.ts +0 -1
- package/types/index.d.ts +30 -64
- package/types/server/akanApp.d.ts +5 -28
- package/types/server/akanAppHeaders.d.ts +0 -1
- package/types/server/akanOption.d.ts +12 -24
- package/types/server/akanServer.d.ts +16 -56
- package/types/server/animatedImage.d.ts +0 -6
- package/types/server/artifact/builderRpc.d.ts +7 -30
- package/types/server/artifact/index.d.ts +0 -1
- package/types/server/artifact/ipcTypes.d.ts +22 -29
- package/types/server/artifact/routeClientCache.d.ts +3 -11
- package/types/server/artifact/routeSeedIndexStore.d.ts +0 -16
- package/types/server/artifact/routesManifestStore.d.ts +1 -1
- package/types/server/binaryPubsub.d.ts +0 -8
- package/types/server/cachePolicy.d.ts +2 -21
- package/types/server/console.d.ts +3 -6
- package/types/server/consoleSession.d.ts +2 -2
- package/types/server/contentEncoding.d.ts +6 -14
- package/types/server/decorators.d.ts +0 -12
- package/types/server/devtools/constantSerializer.d.ts +1 -6
- package/types/server/devtools/depsSerializer.d.ts +1 -7
- package/types/server/devtools/devtoolsJson.d.ts +1 -7
- package/types/server/devtools/devtoolsRouter.d.ts +2 -11
- package/types/server/devtools/signalSerializer.d.ts +1 -9
- package/types/server/devtools/types.d.ts +0 -11
- package/types/server/di/diLifecycle.d.ts +0 -36
- package/types/server/di/predefinedAdaptor.d.ts +3 -2
- package/types/server/di/resolveHierarchy.d.ts +22 -5
- package/types/server/di/utils.d.ts +4 -17
- package/types/server/head.d.ts +9 -0
- package/types/server/hmr/devHmrController.d.ts +0 -2
- package/types/server/hmr/wsHub.d.ts +6 -1
- package/types/server/index.d.ts +1 -1
- package/types/server/lifecycle/portInUse.d.ts +1 -4
- package/types/server/lifecycle/runtimeDir.d.ts +0 -4
- package/types/server/lifecycle/shutdownManager.d.ts +0 -9
- package/types/server/logging/childOutputReader.d.ts +0 -12
- package/types/server/logging/hubFileSink.d.ts +1 -5
- package/types/server/logging/logControlSocket.d.ts +2 -7
- package/types/server/logging/logForwarder.d.ts +3 -15
- package/types/server/logging/logHub.d.ts +1 -15
- package/types/server/logging/logQuery.d.ts +3 -6
- package/types/server/logging/logStdoutWriter.d.ts +0 -6
- package/types/server/logging/logStreamRoute.d.ts +0 -9
- package/types/server/logging/logTailClient.d.ts +0 -5
- package/types/server/mcp/McpAuth.d.ts +3 -71
- package/types/server/mcp/McpDispatcher.d.ts +0 -23
- package/types/server/mcp/McpEventStream.d.ts +1 -12
- package/types/server/mcp/McpExecutionContext.d.ts +0 -33
- package/types/server/mcp/McpRateLimiter.d.ts +10 -13
- package/types/server/mcp/McpRouter.d.ts +1 -47
- package/types/server/mcp/PagePromptComposer.d.ts +1 -13
- package/types/server/memoryLimit.d.ts +1 -13
- package/types/server/oauth/OAuthAuthorize.d.ts +1 -6
- package/types/server/oauth/OAuthClientIdMetadata.d.ts +2 -26
- package/types/server/oauth/OAuthErrors.d.ts +0 -13
- package/types/server/oauth/OAuthMetadata.d.ts +1 -7
- package/types/server/oauth/OAuthPkce.d.ts +0 -1
- package/types/server/oauth/OAuthRedirect.d.ts +0 -9
- package/types/server/oauth/OAuthRegistration.d.ts +0 -1
- package/types/server/oauth/OAuthRevocation.d.ts +1 -11
- package/types/server/oauth/OAuthToken.d.ts +1 -13
- package/types/server/oauth/oauthTypes.d.ts +1 -2
- package/types/server/ops/ageEncryption.d.ts +19 -0
- package/types/server/ops/appInfo.d.ts +36 -0
- package/types/server/ops/opsCommand.d.ts +5 -0
- package/types/server/ops/opsRoute.d.ts +24 -0
- package/types/server/ops/opsToken.d.ts +26 -0
- package/types/server/ops/snapshotJobs.d.ts +24 -0
- package/types/server/ops/snapshotRestore.d.ts +24 -0
- package/types/server/ops/snapshotTypes.d.ts +45 -0
- package/types/server/ops/sqliteFiles.d.ts +5 -0
- package/types/server/ops/sqliteSnapshot.d.ts +32 -0
- package/types/server/processMetricsCollector.d.ts +3 -1
- package/types/server/proxy/hostBasePathWebProxy.d.ts +7 -1
- package/types/server/proxy/index.d.ts +2 -3
- package/types/server/proxy/localeWebProxy.d.ts +1 -1
- package/types/server/proxy/types.d.ts +5 -0
- package/types/server/proxy/webProxyRunner.d.ts +1 -0
- package/types/server/resolver/CascadeRunner.d.ts +0 -4
- package/types/server/resolver/database.resolver.d.ts +1 -1
- package/types/server/resolver/service.resolver.d.ts +2 -2
- package/types/server/resolver/signal.resolver.d.ts +1 -15
- package/types/server/routeElementComposer.d.ts +2 -8
- package/types/server/routeState.d.ts +1 -1
- package/types/server/routing/apiRouter.d.ts +2 -20
- package/types/server/routing/appWsData.d.ts +0 -26
- package/types/server/routing/soloAppRoutes.d.ts +2 -6
- package/types/server/rscClient.d.ts +0 -9
- package/types/server/rscClientFetch.d.ts +6 -6
- package/types/server/rscClientPatch.d.ts +1 -1
- package/types/server/rscHttp.d.ts +1 -0
- package/types/server/rscNavigationState.d.ts +3 -2
- package/types/server/rscPagePrompts.d.ts +0 -9
- package/types/server/rscWorkerCache.d.ts +41 -3
- package/types/server/rscWorkerHost.d.ts +5 -61
- package/types/server/ssrFromRscRenderer.d.ts +0 -12
- package/types/server/ssrTypes.d.ts +2 -29
- package/types/server/staticPath.d.ts +0 -16
- package/types/server/systemPageDocument.d.ts +8 -0
- package/types/server/systemPages.d.ts +2 -3
- package/types/server/tunnel/TunnelAgent.d.ts +29 -0
- package/types/server/tunnel/TunnelDataSocket.d.ts +22 -0
- package/types/server/tunnel/TunnelHttpStream.d.ts +10 -0
- package/types/server/tunnel/TunnelTcpStream.d.ts +11 -0
- package/types/server/tunnel/TunnelWebsocketStream.d.ts +10 -0
- package/types/server/tunnel/index.d.ts +6 -0
- package/types/server/tunnel/tunnelStream.d.ts +19 -0
- package/types/server/tunnel.d.ts +1 -0
- package/types/server/types.d.ts +2 -9
- package/types/server/webRouter.d.ts +2 -19
- package/types/service/agent.service.d.ts +16 -29
- package/types/service/injectInfo.d.ts +26 -15
- package/types/service/ipcTypes.d.ts +6 -0
- package/types/service/liveSyncHub.d.ts +4 -22
- package/types/service/predefinedAdaptor/anthropicLlm.d.ts +20 -29
- package/types/service/predefinedAdaptor/cache.adaptor.d.ts +42 -12
- package/types/service/predefinedAdaptor/database.adaptor.d.ts +20 -16
- package/types/service/predefinedAdaptor/documentTransfer.d.ts +15 -0
- package/types/service/predefinedAdaptor/index.d.ts +2 -1
- package/types/service/predefinedAdaptor/insightQuery.d.ts +7 -30
- package/types/service/predefinedAdaptor/llm.adaptor.d.ts +54 -54
- package/types/service/predefinedAdaptor/llmOverflow.d.ts +16 -0
- package/types/service/predefinedAdaptor/openaiDialect.d.ts +19 -29
- package/types/service/predefinedAdaptor/openaiLlm.d.ts +9 -14
- package/types/service/predefinedAdaptor/queue.adaptor.d.ts +12 -7
- package/types/service/predefinedAdaptor/schedule.adaptor.d.ts +7 -2
- package/types/service/predefinedAdaptor/searchIndex.d.ts +17 -47
- package/types/service/predefinedAdaptor/solidCache.adaptor.d.ts +15 -6
- package/types/service/predefinedAdaptor/solidPubsub.adaptor.d.ts +6 -4
- package/types/service/predefinedAdaptor/solidSqlite.d.ts +2 -1
- package/types/service/predefinedAdaptor/sql/PostgresInsightSession.d.ts +20 -0
- package/types/service/predefinedAdaptor/sql/QueryCompiler.d.ts +9 -11
- package/types/service/predefinedAdaptor/sql/SqlDocumentStore.d.ts +11 -25
- package/types/service/predefinedAdaptor/sql/SqliteInsightSession.d.ts +15 -0
- package/types/service/predefinedAdaptor/sql/UpdateCompiler.d.ts +0 -4
- package/types/service/predefinedAdaptor/sql/dialect/postgres.d.ts +18 -10
- package/types/service/predefinedAdaptor/sql/dialect/sqlite.d.ts +5 -2
- package/types/service/predefinedAdaptor/sql/driver/bunSqlite.d.ts +9 -3
- package/types/service/predefinedAdaptor/sql/driver/libsql.d.ts +8 -5
- package/types/service/predefinedAdaptor/sql/driver/postgres.d.ts +4 -4
- package/types/service/predefinedAdaptor/sql/search/fts5.d.ts +28 -0
- package/types/service/predefinedAdaptor/sql/search/mirror.d.ts +20 -0
- package/types/service/predefinedAdaptor/sql/search/postgres.d.ts +53 -0
- package/types/service/predefinedAdaptor/sql/search/types.d.ts +45 -0
- package/types/service/predefinedAdaptor/sql/types.d.ts +69 -15
- package/types/service/predefinedAdaptor/sql/values.d.ts +8 -0
- package/types/service/predefinedAdaptor/sqlitePath.d.ts +1 -0
- package/types/service/predefinedAdaptor/sseData.d.ts +1 -0
- package/types/service/predefinedAdaptor/storage.adaptor.d.ts +3 -2
- package/types/service/predefinedAdaptor/websocket.adaptor.d.ts +26 -26
- package/types/service/serviceModule.d.ts +7 -7
- package/types/service/toolNames.d.ts +4 -21
- package/types/service/types.d.ts +3 -3
- package/types/signal/CrossSiteGuard.d.ts +3 -28
- package/types/signal/SignalFailure.d.ts +1 -15
- package/types/signal/agent/AgentCatalogue.d.ts +8 -54
- package/types/signal/agent.signal.d.ts +4 -1
- package/types/signal/agentMeter.d.ts +24 -0
- package/types/signal/agentTurnStream.d.ts +10 -11
- package/types/signal/endpoint.d.ts +0 -1
- package/types/signal/endpointCache.d.ts +5 -0
- package/types/signal/endpointInfo.d.ts +1 -9
- package/types/signal/exception.d.ts +1 -34
- package/types/signal/guard.d.ts +4 -15
- package/types/signal/guards.d.ts +2 -10
- package/types/signal/index.d.ts +1 -0
- package/types/signal/internal.d.ts +1 -5
- package/types/signal/internalArg.d.ts +7 -13
- package/types/signal/mcp/McpDocument.d.ts +5 -45
- package/types/signal/mcp/McpProgress.d.ts +6 -19
- package/types/signal/mcp/McpUriTemplate.d.ts +1 -19
- package/types/signal/mcp/Msg.d.ts +13 -70
- package/types/signal/mcp/mcpProtocol.d.ts +1 -26
- package/types/signal/mcp/pagePrompt.d.ts +3 -9
- package/types/signal/middleware.d.ts +0 -18
- package/types/signal/schema/JsonSchemaBuilder.d.ts +15 -43
- package/types/signal/serializer/fetch.serializer.d.ts +1 -6
- package/types/signal/serverSignal.d.ts +0 -1
- package/types/signal/signalContext.d.ts +14 -61
- package/types/signal/signalRegistry.d.ts +0 -1
- package/types/signal/slice.d.ts +3 -9
- package/types/signal/sliceInfo.d.ts +5 -30
- package/types/signal/trace.d.ts +2 -30
- package/types/signal/types.d.ts +27 -57
- package/types/store/SliceRequest.d.ts +1 -11
- package/types/store/action.d.ts +2 -6
- package/types/store/actionTag.d.ts +1 -10
- package/types/store/agent/AgentBridge.d.ts +3 -22
- package/types/store/agent/AgentContext.d.ts +1 -7
- package/types/store/agent/AgentCursor.d.ts +24 -0
- package/types/store/agent/AgentPrompts.d.ts +0 -5
- package/types/store/agent/AgentVisual.d.ts +25 -0
- package/types/store/agent/ScreenFlash.d.ts +23 -0
- package/types/store/agent/ScreenReader.d.ts +3 -26
- package/types/store/agent/ScreenSettle.d.ts +1 -12
- package/types/store/agent/ScreenTarget.d.ts +3 -23
- package/types/store/agent/StoreCatalogue.d.ts +12 -16
- package/types/store/agent/StoreSurfaceSource.d.ts +11 -23
- package/types/store/agent/index.d.ts +4 -3
- package/types/store/agentic/AgentValue.d.ts +3 -23
- package/types/store/agentic/StExposeBuilder.d.ts +2 -11
- package/types/store/agentic/StExposeDraft.d.ts +0 -6
- package/types/store/agentic/StStateBuilder.d.ts +1 -7
- package/types/store/agentic/StStateDraft.d.ts +0 -5
- package/types/store/agentic/StToolBuilder.d.ts +14 -37
- package/types/store/agentic/StToolDraft.d.ts +0 -7
- package/types/store/agentic/attachAgentic.d.ts +2 -10
- package/types/store/agentic/formFields.d.ts +5 -41
- package/types/store/agentic/index.d.ts +1 -1
- package/types/store/agentic/useAgentReference.d.ts +14 -0
- package/types/store/agentic/useFieldTool.d.ts +19 -16
- package/types/store/agentic/useFormTools.d.ts +1 -18
- package/types/store/agentic/useRelationFieldTool.d.ts +1 -14
- package/types/store/baseSt.d.ts +2 -2
- package/types/store/databaseStateNames.d.ts +0 -9
- package/types/store/draftStore.d.ts +4 -30
- package/types/store/formSetterNames.d.ts +0 -19
- package/types/store/hooks.d.ts +1 -1
- package/types/store/liveInsert.d.ts +0 -23
- package/types/store/sliceKeys.d.ts +31 -0
- package/types/store/sliceRole.d.ts +1 -10
- package/types/store/state.d.ts +2 -9
- package/types/store/stateBuilder.d.ts +0 -14
- package/types/store/storeInstance.d.ts +6 -20
- package/types/store/storeRegistry.d.ts +0 -2
- package/types/test/conformance.d.ts +73 -0
- package/types/test/index.d.ts +2 -2
- package/types/test/sampleOf.d.ts +17 -2
- package/types/test/signalTestRuntime.d.ts +1 -1
- package/types/test/testServer.d.ts +4 -3
- package/types/ui/Agent/Attach.d.ts +2 -2
- package/types/ui/Agent/Bubble.d.ts +3 -14
- package/types/ui/Agent/Chat.d.ts +31 -64
- package/types/ui/Agent/ChatCommands.d.ts +4 -14
- package/types/ui/Agent/Composer.d.ts +18 -5
- package/types/ui/Agent/Dock.d.ts +38 -10
- package/types/ui/Agent/Guide.d.ts +1 -5
- package/types/ui/Agent/History.d.ts +1 -18
- package/types/ui/Agent/Launcher.d.ts +2 -2
- package/types/ui/Agent/Markdown.d.ts +2 -6
- package/types/ui/Agent/MentionNode.d.ts +18 -0
- package/types/ui/Agent/Menu.d.ts +4 -4
- package/types/ui/Agent/Question.d.ts +1 -6
- package/types/ui/Agent/Queued.d.ts +1 -6
- package/types/ui/Agent/Refer.d.ts +9 -0
- package/types/ui/Agent/RichInput.d.ts +14 -0
- package/types/ui/Agent/Skip.d.ts +3 -15
- package/types/ui/Agent/Steps.d.ts +17 -0
- package/types/ui/Agent/ToolCard.d.ts +9 -0
- package/types/ui/Agent/Zone.d.ts +13 -30
- package/types/ui/Agent/agentSessionOf.d.ts +20 -16
- package/types/ui/Agent/attachment.d.ts +4 -38
- package/types/ui/Agent/fetchRunner.d.ts +1 -8
- package/types/ui/Agent/index.d.ts +2 -6
- package/types/ui/Agent/mentionDraft.d.ts +9 -0
- package/types/ui/Agent/tokenCount.d.ts +1 -5
- package/types/ui/Agent/useChatAttachments.d.ts +0 -5
- package/types/ui/Agent/useChatQueue.d.ts +3 -14
- package/types/ui/Agent/useChatReferences.d.ts +15 -0
- package/types/ui/Agent/useChatVoice.d.ts +0 -12
- package/types/ui/Agent/useDraftRecall.d.ts +0 -8
- package/types/ui/Agent/useKeyboardInset.d.ts +0 -7
- package/types/ui/Agent/useReferenceMenu.d.ts +35 -0
- package/types/ui/Agent/useSlashMenu.d.ts +0 -2
- package/types/ui/Agent/voice.d.ts +8 -42
- package/types/ui/Badge.d.ts +0 -1
- package/types/ui/BottomSheet.d.ts +2 -5
- package/types/ui/Button.d.ts +6 -23
- package/types/ui/ClientSide.d.ts +0 -2
- package/types/ui/Constant/schemaGraph.d.ts +0 -4
- package/types/ui/Copy.d.ts +2 -3
- package/types/ui/CsrImage.d.ts +2 -1
- package/types/ui/Data/Dashboard.d.ts +1 -4
- package/types/ui/Data/Item.d.ts +1 -1
- package/types/ui/Data/ListContainer.d.ts +1 -10
- package/types/ui/Data/Pagination.d.ts +0 -2
- package/types/ui/Data/QueryMaker.d.ts +0 -7
- package/types/ui/Data/RefPicker.d.ts +0 -7
- package/types/ui/DatePicker.d.ts +0 -11
- package/types/ui/Dialog/LegacyModal.d.ts +1 -4
- package/types/ui/Dialog/Provider.d.ts +37 -4
- package/types/ui/Dialog/index.d.ts +4 -4
- package/types/ui/Dropdown.d.ts +1 -9
- package/types/ui/Empty.d.ts +3 -10
- package/types/ui/Field/Collection.d.ts +1 -16
- package/types/ui/Field/Relation.d.ts +10 -37
- package/types/ui/Field/Text.d.ts +9 -66
- package/types/ui/Field/index.d.ts +0 -9
- package/types/ui/Field/lightRefCache.d.ts +11 -0
- package/types/ui/Field/useRelationOptions.d.ts +28 -0
- package/types/ui/Image.d.ts +8 -12
- package/types/ui/InfiniteScroll.d.ts +2 -6
- package/types/ui/Input.d.ts +8 -15
- package/types/ui/Layout/Role.d.ts +23 -0
- package/types/ui/Layout/Sider.d.ts +21 -0
- package/types/ui/Layout/TopInset.d.ts +5 -0
- package/types/ui/Layout/index.d.ts +7 -7
- package/types/ui/LegacyModal.d.ts +1 -12
- package/types/ui/Link/Action.d.ts +11 -0
- package/types/ui/Link/Anchor.d.ts +20 -0
- package/types/ui/Link/index.d.ts +4 -7
- package/types/ui/Load/Edit_Client.d.ts +1 -1
- package/types/ui/Load/Page.d.ts +3 -5
- package/types/ui/Load/Stream.d.ts +0 -12
- package/types/ui/Load/Units.d.ts +1 -1
- package/types/ui/Load/View.d.ts +2 -7
- package/types/ui/Loading/ProgressBar.d.ts +0 -4
- package/types/ui/Loading/Skeleton.d.ts +2 -0
- package/types/ui/Loading/Spin.d.ts +12 -2
- package/types/ui/Loading/index.d.ts +3 -8
- package/types/ui/Loading/index_.d.ts +3 -10
- package/types/ui/Menu.d.ts +0 -5
- package/types/ui/Modal.d.ts +0 -17
- package/types/ui/Model/AdminPanel.d.ts +1 -4
- package/types/ui/Model/DraftBar.d.ts +2 -7
- package/types/ui/Model/EditModal.d.ts +7 -22
- package/types/ui/Model/LoadStore.d.ts +18 -0
- package/types/ui/Model/Remove.d.ts +0 -2
- package/types/ui/Model/SureToRemove.d.ts +0 -3
- package/types/ui/Model/ViewEditModal.d.ts +0 -2
- package/types/ui/Model/draftScope.d.ts +0 -7
- package/types/ui/Model/index.d.ts +2 -2
- package/types/ui/Model/index_.d.ts +2 -2
- package/types/ui/Pagination.d.ts +4 -12
- package/types/ui/Popconfirm.d.ts +3 -17
- package/types/ui/Radio.d.ts +0 -4
- package/types/ui/RecentTime.d.ts +5 -9
- package/types/ui/Reference/Panel.d.ts +44 -6
- package/types/ui/Reference/Segmented.d.ts +0 -3
- package/types/ui/Reference/{style.d.ts → docUi.d.ts} +6 -2
- package/types/ui/Reference/index.d.ts +3 -7
- package/types/ui/Refresh.d.ts +1 -1
- package/types/ui/ScreenNavigator.d.ts +2 -2
- package/types/ui/Select.d.ts +4 -19
- package/types/ui/Signal/Endpoint.d.ts +43 -0
- package/types/ui/Signal/WebSocket.d.ts +23 -0
- package/types/ui/Signal/endpointEntries.d.ts +2 -4
- package/types/ui/Signal/index.d.ts +1 -3
- package/types/ui/Signal/style.d.ts +1 -2
- package/types/ui/Switch.d.ts +1 -5
- package/types/ui/System/CSR.d.ts +2 -2
- package/types/ui/System/Client.d.ts +2 -6
- package/types/ui/System/Common.d.ts +11 -22
- package/types/ui/System/Root.d.ts +1 -4
- package/types/ui/System/SSR.d.ts +2 -2
- package/types/ui/System/ThemeToggle.d.ts +1 -0
- package/types/ui/System/index.d.ts +1 -0
- package/types/ui/Tab/Provider.d.ts +24 -4
- package/types/ui/Tab/index.d.ts +3 -3
- package/types/ui/Table.d.ts +7 -23
- package/types/ui/Toast.d.ts +9 -16
- package/types/ui/ToggleSelect.d.ts +0 -5
- package/types/ui/Tooltip.d.ts +1 -2
- package/types/ui/UiOverride/{context.d.ts → UiOverride.d.ts} +24 -40
- package/types/ui/UiOverride/index.d.ts +2 -5
- package/types/ui/UiOverride/override.d.ts +2 -18
- package/types/ui/Unauthorized.d.ts +0 -6
- package/types/ui/agentAttrs.d.ts +4 -11
- package/types/ui/index.d.ts +9 -5
- package/types/ui/overlayLayer.d.ts +4 -24
- package/types/ui/overlayPosition.d.ts +0 -12
- package/types/ui/recipe/badgeRecipe.d.ts +2 -2
- package/types/ui/recipe/buttonRecipe.d.ts +2 -2
- package/types/ui/recipe/factory.d.ts +1 -21
- package/types/ui/recipe/index.d.ts +0 -14
- package/types/ui/recipe/inputRecipe.d.ts +3 -3
- package/types/ui/sliceNamesOf.d.ts +78 -0
- package/types/ui/triggerSlot.d.ts +2 -12
- package/types/vendor/use-agentic/AgentProgress.d.ts +12 -0
- package/types/vendor/use-agentic/AgentSession.d.ts +94 -2
- package/types/vendor/use-agentic/Compaction.d.ts +42 -5
- package/types/vendor/use-agentic/Reference.d.ts +56 -0
- package/types/vendor/use-agentic/ToolRunner.d.ts +31 -1
- package/types/vendor/use-agentic/Transcript.d.ts +4 -1
- package/types/vendor/use-agentic/index.d.ts +1 -0
- package/types/vendor/use-agentic/types.d.ts +109 -7
- package/types/webkit/RenderLayer.d.ts +11 -0
- package/types/webkit/index.d.ts +1 -2
- package/types/webkit/lazy.d.ts +3 -12
- package/types/webkit/{createRobotPage.d.ts → seoPages.d.ts} +4 -0
- package/types/webkit/useBodyScrollLock.d.ts +0 -1
- package/types/webkit/useCamera.d.ts +1 -1
- package/types/webkit/useContact.d.ts +1 -1
- package/types/webkit/useDebounce.d.ts +0 -1
- package/types/webkit/useEscapeKey.d.ts +1 -4
- package/types/webkit/useFetch.d.ts +1 -6
- package/types/webkit/useFrameRuntime.d.ts +1 -1
- package/types/webkit/useGeoLocation.d.ts +1 -1
- package/types/webkit/usePageTool.d.ts +2 -9
- package/types/webkit/usePurchase.d.ts +1 -4
- package/types/webkit/useScreenScope.d.ts +2 -13
- package/ui/Agent/Attach.tsx +5 -4
- package/ui/Agent/Bubble.tsx +51 -31
- package/ui/Agent/Chat.tsx +114 -102
- package/ui/Agent/ChatCommands.ts +5 -21
- package/ui/Agent/Composer.tsx +110 -28
- package/ui/Agent/Dock.tsx +176 -16
- package/ui/Agent/Guide.tsx +1 -5
- package/ui/Agent/History.tsx +1 -18
- package/ui/Agent/Launcher.tsx +2 -2
- package/ui/Agent/Markdown.tsx +40 -14
- package/ui/Agent/MentionNode.ts +54 -0
- package/ui/Agent/Menu.tsx +8 -5
- package/ui/Agent/Question.tsx +1 -6
- package/ui/Agent/Queued.tsx +3 -6
- package/ui/Agent/Refer.tsx +40 -0
- package/ui/Agent/RichInput.tsx +146 -0
- package/ui/Agent/Skip.tsx +3 -15
- package/ui/Agent/Steps.tsx +33 -0
- package/ui/Agent/ToolCard.tsx +32 -0
- package/ui/Agent/Zone.tsx +15 -31
- package/ui/Agent/agentSessionOf.ts +115 -15
- package/ui/Agent/attachment.ts +5 -42
- package/ui/Agent/fetchRunner.ts +3 -15
- package/ui/Agent/index.ts +1 -6
- package/ui/Agent/mentionDraft.ts +91 -0
- package/ui/Agent/tokenCount.ts +1 -5
- package/ui/Agent/useChatAttachments.ts +2 -9
- package/ui/Agent/useChatQueue.ts +12 -14
- package/ui/Agent/useChatReferences.ts +51 -0
- package/ui/Agent/useChatVoice.ts +2 -23
- package/ui/Agent/useDraftRecall.ts +0 -9
- package/ui/Agent/useKeyboardInset.ts +0 -7
- package/ui/Agent/useReferenceMenu.ts +93 -0
- package/ui/Agent/useSlashMenu.ts +0 -3
- package/ui/Agent/voice.ts +8 -43
- package/ui/Badge.tsx +0 -2
- package/ui/BottomSheet.tsx +2 -5
- package/ui/Button.tsx +9 -45
- package/ui/ClientSide.tsx +0 -2
- package/ui/Clipboard.tsx +0 -1
- package/ui/Constant/Doc.tsx +274 -265
- package/ui/Constant/Graph.tsx +11 -3
- package/ui/Constant/schemaGraph.ts +0 -9
- package/ui/Copy.tsx +2 -3
- package/ui/CsrImage.tsx +9 -9
- package/ui/Data/CardList.tsx +2 -17
- package/ui/Data/Dashboard.tsx +2 -5
- package/ui/Data/Item.tsx +2 -3
- package/ui/Data/ListContainer.tsx +15 -61
- package/ui/Data/Pagination.tsx +3 -22
- package/ui/Data/QueryMaker.tsx +1 -8
- package/ui/Data/RefPicker.tsx +1 -8
- package/ui/Data/TableList.tsx +2 -15
- package/ui/DatePicker.tsx +1 -12
- package/ui/Dialog/LegacyModal.tsx +3 -7
- package/ui/Dialog/Modal.tsx +3 -4
- package/ui/Dialog/Provider.tsx +85 -7
- package/ui/Dialog/index.tsx +1 -5
- package/ui/DraggableList.tsx +1 -4
- package/ui/Dropdown.tsx +4 -17
- package/ui/Empty.tsx +4 -12
- package/ui/Field/Choice.tsx +1 -1
- package/ui/Field/Collection.tsx +7 -29
- package/ui/Field/DateField.tsx +2 -7
- package/ui/Field/Label.tsx +0 -1
- package/ui/Field/NumberField.tsx +0 -1
- package/ui/Field/Relation.tsx +79 -199
- package/ui/Field/Text.tsx +25 -86
- package/ui/Field/index.tsx +0 -9
- package/ui/Field/lightRefCache.ts +61 -0
- package/ui/Field/useRelationOptions.ts +97 -0
- package/ui/Image.tsx +35 -65
- package/ui/InfiniteScroll.tsx +3 -21
- package/ui/Input.tsx +82 -174
- package/ui/Layout/Role.tsx +42 -0
- package/ui/Layout/Sider.tsx +82 -1
- package/ui/Layout/TopInset.tsx +23 -1
- package/ui/Layout/index.ts +3 -9
- package/ui/LegacyModal.tsx +1 -12
- package/ui/Link/Action.tsx +29 -0
- package/ui/Link/Anchor.tsx +118 -0
- package/ui/Link/index.tsx +7 -8
- package/ui/Load/Edit_Client.tsx +2 -37
- package/ui/Load/Page.tsx +3 -6
- package/ui/Load/Pagination.tsx +4 -19
- package/ui/Load/Stream.tsx +0 -12
- package/ui/Load/Units.tsx +13 -86
- package/ui/Load/View.tsx +4 -21
- package/ui/Loading/ProgressBar.tsx +0 -4
- package/ui/Loading/Skeleton.tsx +14 -0
- package/ui/Loading/Spin.tsx +34 -5
- package/ui/Loading/index.ts +0 -5
- package/ui/Loading/index_.tsx +2 -12
- package/ui/Menu.tsx +3 -21
- package/ui/Modal.tsx +0 -17
- package/ui/Model/AdminPanel.tsx +2 -5
- package/ui/Model/DraftBar.tsx +3 -14
- package/ui/Model/EditModal.tsx +11 -48
- package/ui/Model/EditWrapper.tsx +2 -3
- package/ui/Model/LoadStore.tsx +18 -0
- package/ui/Model/NewWrapper_Client.tsx +1 -1
- package/ui/Model/Remove.tsx +4 -12
- package/ui/Model/RemoveWrapper.tsx +2 -3
- package/ui/Model/SureToRemove.tsx +4 -13
- package/ui/Model/ViewEditModal.tsx +0 -6
- package/ui/Model/ViewModal.tsx +1 -5
- package/ui/Model/ViewWrapper.tsx +1 -2
- package/ui/Model/draftScope.ts +0 -7
- package/ui/Model/index_.tsx +2 -22
- package/ui/Pagination.tsx +4 -12
- package/ui/Popconfirm.tsx +3 -18
- package/ui/Portal.tsx +2 -3
- package/ui/Radio.tsx +1 -5
- package/ui/RecentTime.tsx +19 -31
- package/ui/Reference/Panel.tsx +102 -6
- package/ui/Reference/Segmented.tsx +5 -11
- package/ui/Reference/{style.ts → docUi.ts} +10 -2
- package/ui/Reference/index.ts +3 -7
- package/ui/Refresh.tsx +79 -13
- package/ui/ScreenNavigator.tsx +8 -13
- package/ui/Select.tsx +29 -37
- package/ui/Signal/Endpoint.tsx +154 -0
- package/ui/Signal/Listener.tsx +1 -4
- package/ui/Signal/Object.tsx +67 -73
- package/ui/Signal/RestApi.tsx +30 -76
- package/ui/Signal/WebSocket.tsx +253 -2
- package/ui/Signal/endpointEntries.ts +3 -5
- package/ui/Signal/index.ts +1 -3
- package/ui/Signal/style.ts +1 -2
- package/ui/Switch.tsx +1 -5
- package/ui/System/CSR.tsx +29 -109
- package/ui/System/Client.tsx +15 -19
- package/ui/System/Common.tsx +31 -22
- package/ui/System/Messages.tsx +2 -2
- package/ui/System/Reconnect.tsx +1 -6
- package/ui/System/Root.tsx +1 -4
- package/ui/System/SSR.tsx +10 -16
- package/ui/System/ThemeToggle.tsx +15 -0
- package/ui/System/index.tsx +2 -2
- package/ui/Tab/Provider.tsx +115 -7
- package/ui/Tab/index.tsx +1 -4
- package/ui/Table.tsx +7 -23
- package/ui/Toast.tsx +9 -16
- package/ui/ToggleSelect.tsx +10 -24
- package/ui/Tooltip.tsx +2 -8
- package/ui/UiOverride/{context.ts → UiOverride.tsx} +54 -42
- package/ui/UiOverride/index.ts +9 -6
- package/ui/UiOverride/override.ts +2 -18
- package/ui/Unauthorized.tsx +1 -8
- package/ui/agentAttrs.ts +9 -12
- package/ui/index.ts +20 -5
- package/ui/overlayLayer.ts +4 -25
- package/ui/overlayPosition.ts +2 -14
- package/ui/recipe/badgeRecipe.ts +1 -1
- package/ui/recipe/buttonRecipe.ts +4 -4
- package/ui/recipe/factory.ts +1 -22
- package/ui/recipe/index.ts +1 -14
- package/ui/recipe/inputRecipe.ts +2 -2
- package/ui/sliceNamesOf.ts +26 -0
- package/ui/styles.css +195 -1
- package/ui/triggerSlot.tsx +2 -12
- package/vendor/use-agentic/AgentProgress.ts +13 -1
- package/vendor/use-agentic/AgentSession.ts +313 -29
- package/vendor/use-agentic/AgenticSurface.ts +2 -0
- package/vendor/use-agentic/Compaction.ts +91 -9
- package/vendor/use-agentic/Reference.ts +99 -0
- package/vendor/use-agentic/ToolRunner.ts +77 -2
- package/vendor/use-agentic/Transcript.ts +15 -4
- package/vendor/use-agentic/WIRE.md +16 -2
- package/vendor/use-agentic/httpRunner.ts +19 -4
- package/vendor/use-agentic/index.ts +1 -1
- package/vendor/use-agentic/types.ts +121 -10
- package/webkit/RenderLayer.tsx +45 -0
- package/webkit/bootCsr.tsx +4 -57
- package/webkit/index.ts +1 -2
- package/webkit/lazy.tsx +3 -13
- package/webkit/{createRobotPage.ts → seoPages.ts} +5 -0
- package/webkit/useBodyScrollLock.tsx +0 -6
- package/webkit/useCamera.tsx +10 -28
- package/webkit/useCodepush.tsx +8 -31
- package/webkit/useContact.tsx +1 -8
- package/webkit/useCsrValues.ts +203 -428
- package/webkit/useDebounce.ts +0 -3
- package/webkit/useEscapeKey.tsx +1 -12
- package/webkit/useFetch.ts +7 -13
- package/webkit/useFrameRuntime.ts +5 -43
- package/webkit/useGeoLocation.tsx +1 -1
- package/webkit/useLocation.ts +5 -8
- package/webkit/usePageTool.tsx +2 -9
- package/webkit/usePurchase.tsx +17 -33
- package/webkit/useScreenScope.tsx +2 -13
- package/client/fetch.ts +0 -1
- package/client/frameDebug.ts +0 -29
- package/common/deepObjectify.ts +0 -42
- package/common/dynamicRecord.ts +0 -12
- package/common/formatPhone.ts +0 -7
- package/common/getAllPropertyDescriptors.ts +0 -13
- package/common/lowerlize.ts +0 -4
- package/common/mergeVersion.ts +0 -10
- package/common/pathGet.ts +0 -13
- package/common/pathGetLoose.ts +0 -31
- package/common/pathSet.ts +0 -28
- package/common/plainFieldsOf.ts +0 -13
- package/common/randomPicks.ts +0 -12
- package/common/websocketAuth.ts +0 -24
- package/constant/deserialize.ts +0 -98
- package/dictionary/agentTurn.dictionary.ts +0 -33
- package/document/schema.ts +0 -24
- package/fetch/fetchType/clientSignal.type.ts +0 -22
- package/local/apps/akan/akan-local.db +0 -0
- package/local/apps/akan/akan-local.db-shm +0 -0
- package/local/apps/akan/akan-local.db-wal +0 -0
- package/local/apps/akan/akan-local_solid.db +0 -0
- package/local/apps/akan/akan-local_solid.db-shm +0 -0
- package/local/apps/akan/akan-local_solid.db-wal +0 -0
- package/local/apps/serverLifecycle/serverLifecycle-local.db +0 -0
- package/local/apps/serverLifecycle/serverLifecycle-local.db-shm +0 -0
- package/local/apps/serverLifecycle/serverLifecycle-local.db-wal +0 -0
- package/local/apps/serverLifecycle/serverLifecycle-local_solid.db +0 -0
- package/local/apps/serverLifecycle/serverLifecycle-local_solid.db-shm +0 -0
- package/local/apps/serverLifecycle/serverLifecycle-local_solid.db-wal +0 -0
- package/server/artifact/manifestTypes.ts +0 -19
- package/server/assetEncoding.ts +0 -27
- package/server/consoleEvaluator.ts +0 -51
- package/server/di/index.ts +0 -4
- package/server/di/resolveAdaptorHierarchy.ts +0 -91
- package/server/di/resolveServiceHierarchy.ts +0 -47
- package/server/hmr/changeBatch.ts +0 -14
- package/server/hmr/index.ts +0 -4
- package/server/metadata.tsx +0 -198
- package/server/proxy/akanResponse.ts +0 -16
- package/server/proxy/bunRequestFields.ts +0 -12
- package/server/rscPartialCommit.ts +0 -3
- package/server/rscPatchSafety.ts +0 -57
- package/server/rscWorkerReplay.ts +0 -49
- package/server/subRouteIndexDocument.tsx +0 -61
- package/service/predefinedAdaptor/deepseekLlm.ts +0 -82
- package/service/predefinedAdaptor/sqlDescriptor.ts +0 -25
- package/store/agent/storeSurface.ts +0 -28
- package/store/agent/types.ts +0 -16
- package/store/agentic/useFileFieldTool.ts +0 -221
- package/store/stateInfo.ts +0 -66
- package/test/playwright.config.base.ts +0 -48
- package/test/playwright.pageAgent.ts +0 -41
- package/test/sample.ts +0 -19
- package/types/client/fetch.d.ts +0 -1
- package/types/client/frameDebug.d.ts +0 -3
- package/types/common/deepObjectify.d.ts +0 -6
- package/types/common/dynamicRecord.d.ts +0 -14
- package/types/common/formatPhone.d.ts +0 -2
- package/types/common/getAllPropertyDescriptors.d.ts +0 -5
- package/types/common/isPhoneNumber.d.ts +0 -2
- package/types/common/lowerlize.d.ts +0 -2
- package/types/common/mergeVersion.d.ts +0 -10
- package/types/common/pathGet.d.ts +0 -1
- package/types/common/pathGetLoose.d.ts +0 -8
- package/types/common/pathSet.d.ts +0 -3
- package/types/common/plainFieldsOf.d.ts +0 -6
- package/types/common/randomPicks.d.ts +0 -1
- package/types/common/splitVersion.d.ts +0 -11
- package/types/common/websocketAuth.d.ts +0 -19
- package/types/common/websocketBinaryFrame.d.ts +0 -17
- package/types/constant/deserialize.d.ts +0 -10
- package/types/dictionary/agentTurn.dictionary.d.ts +0 -1
- package/types/document/schema.d.ts +0 -5
- package/types/fetch/fetchType/clientSignal.type.d.ts +0 -16
- package/types/server/artifact/manifestTypes.d.ts +0 -16
- package/types/server/assetEncoding.d.ts +0 -7
- package/types/server/consoleEvaluator.d.ts +0 -2
- package/types/server/di/index.d.ts +0 -4
- package/types/server/di/resolveAdaptorHierarchy.d.ts +0 -21
- package/types/server/di/resolveServiceHierarchy.d.ts +0 -13
- package/types/server/di.d.ts +0 -1
- package/types/server/hmr/changeBatch.d.ts +0 -13
- package/types/server/hmr/index.d.ts +0 -4
- package/types/server/hmr.d.ts +0 -1
- package/types/server/metadata.d.ts +0 -22
- package/types/server/proxy/akanResponse.d.ts +0 -7
- package/types/server/proxy/bunRequestFields.d.ts +0 -1
- package/types/server/rscPartialCommit.d.ts +0 -1
- package/types/server/rscPatchSafety.d.ts +0 -8
- package/types/server/rscWorkerReplay.d.ts +0 -32
- package/types/server/subRouteIndexDocument.d.ts +0 -8
- package/types/service/predefinedAdaptor/deepseekLlm.d.ts +0 -19
- package/types/service/predefinedAdaptor/sqlDescriptor.d.ts +0 -5
- package/types/store/agent/storeSurface.d.ts +0 -14
- package/types/store/agent/types.d.ts +0 -15
- package/types/store/agentic/useFileFieldTool.d.ts +0 -41
- package/types/store/stateInfo.d.ts +0 -23
- package/types/test/playwright.config.base.d.ts +0 -9
- package/types/test/playwright.pageAgent.d.ts +0 -12
- package/types/test/sample.d.ts +0 -15
- package/types/ui/Agent/Context.d.ts +0 -13
- package/types/ui/Agent/Mic.d.ts +0 -8
- package/types/ui/Agent/Section.d.ts +0 -10
- package/types/ui/Agent/StateKey.d.ts +0 -16
- package/types/ui/Agent/Tool.d.ts +0 -15
- package/types/ui/Agent/Transcript.d.ts +0 -13
- package/types/ui/Agent/markdownSpans.d.ts +0 -2
- package/types/ui/Agent/sessionHistory.d.ts +0 -14
- package/types/ui/Agent/sessionView.d.ts +0 -15
- package/types/ui/Dialog/Action.d.ts +0 -5
- package/types/ui/Dialog/Close.d.ts +0 -6
- package/types/ui/Dialog/Content.d.ts +0 -6
- package/types/ui/Dialog/Title.d.ts +0 -5
- package/types/ui/Dialog/Trigger.d.ts +0 -6
- package/types/ui/Dialog/context.d.ts +0 -18
- package/types/ui/Layout/LeftSider.d.ts +0 -11
- package/types/ui/Layout/RightSider.d.ts +0 -12
- package/types/ui/Layout/Template.d.ts +0 -7
- package/types/ui/Layout/TopLeftAction.d.ts +0 -6
- package/types/ui/Layout/Unit.d.ts +0 -9
- package/types/ui/Layout/View.d.ts +0 -8
- package/types/ui/Layout/Zone.d.ts +0 -6
- package/types/ui/Link/Back.d.ts +0 -7
- package/types/ui/Link/Close.d.ts +0 -7
- package/types/ui/Link/CsrLink.d.ts +0 -2
- package/types/ui/Link/Lang.d.ts +0 -8
- package/types/ui/Link/SsrLink.d.ts +0 -2
- package/types/ui/Link/types.d.ts +0 -50
- package/types/ui/Loading/Area.d.ts +0 -9
- package/types/ui/Loading/Button.d.ts +0 -7
- package/types/ui/Loading/Input.d.ts +0 -7
- package/types/ui/Model/LoadInit.d.ts +0 -10
- package/types/ui/Model/LoadView.d.ts +0 -10
- package/types/ui/Reference/Collapse.d.ts +0 -11
- package/types/ui/Reference/Summary.d.ts +0 -13
- package/types/ui/Reference/Toolbar.d.ts +0 -21
- package/types/ui/Reference/dictText.d.ts +0 -6
- package/types/ui/Signal/Message.d.ts +0 -23
- package/types/ui/Signal/PubSub.d.ts +0 -24
- package/types/ui/Signal/Request.d.ts +0 -8
- package/types/ui/System/DevModeToggle.d.ts +0 -1
- package/types/ui/System/Gtag.d.ts +0 -4
- package/types/ui/System/frameCssVars.d.ts +0 -5
- package/types/ui/Tab/Menu.d.ts +0 -12
- package/types/ui/Tab/Menus.d.ts +0 -6
- package/types/ui/Tab/Panel.d.ts +0 -8
- package/types/ui/Tab/context.d.ts +0 -11
- package/types/ui/UiOverride/Provider.d.ts +0 -15
- package/types/ui/UiOverride/createOverridable.d.ts +0 -9
- package/types/ui/UiOverride/useUiOverride.d.ts +0 -7
- package/types/ui/UiOverride/useUiRecipe.d.ts +0 -8
- package/types/webkit/createSitemapPage.d.ts +0 -4
- package/ui/Agent/Context.tsx +0 -49
- package/ui/Agent/Mic.tsx +0 -27
- package/ui/Agent/Section.tsx +0 -24
- package/ui/Agent/StateKey.tsx +0 -46
- package/ui/Agent/Tool.tsx +0 -59
- package/ui/Agent/Transcript.tsx +0 -33
- package/ui/Agent/markdownSpans.tsx +0 -49
- package/ui/Agent/sessionHistory.ts +0 -62
- package/ui/Agent/sessionView.ts +0 -38
- package/ui/Dialog/Action.tsx +0 -15
- package/ui/Dialog/Close.tsx +0 -18
- package/ui/Dialog/Content.tsx +0 -11
- package/ui/Dialog/Title.tsx +0 -15
- package/ui/Dialog/Trigger.tsx +0 -18
- package/ui/Dialog/context.ts +0 -32
- package/ui/Layout/LeftSider.tsx +0 -43
- package/ui/Layout/RightSider.tsx +0 -47
- package/ui/Layout/Template.tsx +0 -11
- package/ui/Layout/TopLeftAction.tsx +0 -28
- package/ui/Layout/Unit.tsx +0 -19
- package/ui/Layout/View.tsx +0 -12
- package/ui/Layout/Zone.tsx +0 -10
- package/ui/Link/Back.tsx +0 -15
- package/ui/Link/Close.tsx +0 -20
- package/ui/Link/CsrLink.tsx +0 -46
- package/ui/Link/Lang.tsx +0 -16
- package/ui/Link/SsrLink.tsx +0 -72
- package/ui/Link/types.ts +0 -55
- package/ui/Loading/Area.tsx +0 -27
- package/ui/Loading/Button.tsx +0 -15
- package/ui/Loading/Input.tsx +0 -15
- package/ui/Model/LoadInit.tsx +0 -11
- package/ui/Model/LoadView.tsx +0 -11
- package/ui/Reference/Collapse.tsx +0 -26
- package/ui/Reference/Summary.tsx +0 -25
- package/ui/Reference/Toolbar.tsx +0 -44
- package/ui/Reference/dictText.ts +0 -9
- package/ui/Signal/Message.tsx +0 -215
- package/ui/Signal/PubSub.tsx +0 -201
- package/ui/Signal/Request.tsx +0 -11
- package/ui/System/DevModeToggle.tsx +0 -19
- package/ui/System/Gtag.tsx +0 -69
- package/ui/System/frameCssVars.ts +0 -25
- package/ui/Tab/Menu.tsx +0 -70
- package/ui/Tab/Menus.tsx +0 -13
- package/ui/Tab/Panel.tsx +0 -25
- package/ui/Tab/context.ts +0 -20
- package/ui/UiOverride/Provider.tsx +0 -26
- package/ui/UiOverride/createOverridable.tsx +0 -25
- package/ui/UiOverride/useUiOverride.ts +0 -15
- package/ui/UiOverride/useUiRecipe.ts +0 -15
- package/webkit/createSitemapPage.ts +0 -4
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { mkdir, readdir } from "node:fs/promises";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { Logger } from "akanjs/common";
|
|
4
|
+
import type { DatabaseAdaptor, TransferRow } from "./sql/types";
|
|
5
|
+
|
|
6
|
+
export interface TransferReport {
|
|
7
|
+
table: string;
|
|
8
|
+
rows: number;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Model tables to one NDJSON file each and back, rows as stored. `_akan_meta`, the search mirror, the cache and the
|
|
13
|
+
* queue stay behind: the target writes its own meta and rebuilds the mirror; sessions and pending jobs do not move.
|
|
14
|
+
*/
|
|
15
|
+
export class DocumentTransfer {
|
|
16
|
+
static readonly #chunk = 1000;
|
|
17
|
+
readonly #database: DatabaseAdaptor;
|
|
18
|
+
readonly #logger = new Logger("DocumentTransfer");
|
|
19
|
+
|
|
20
|
+
constructor(database: DatabaseAdaptor) {
|
|
21
|
+
this.#database = database;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
async exportTo(dir: string): Promise<TransferReport[]> {
|
|
25
|
+
await mkdir(dir, { recursive: true });
|
|
26
|
+
const reports: TransferReport[] = [];
|
|
27
|
+
for (const store of this.#stores()) {
|
|
28
|
+
const writer = Bun.file(path.join(dir, `${store.table}.ndjson`)).writer();
|
|
29
|
+
let rows = 0;
|
|
30
|
+
let after = "";
|
|
31
|
+
for (;;) {
|
|
32
|
+
const chunk = await store.exportRows(after, DocumentTransfer.#chunk);
|
|
33
|
+
for (const row of chunk) writer.write(`${JSON.stringify(row)}\n`);
|
|
34
|
+
rows += chunk.length;
|
|
35
|
+
const last = chunk.at(-1);
|
|
36
|
+
if (!last || chunk.length < DocumentTransfer.#chunk) break;
|
|
37
|
+
after = last.id;
|
|
38
|
+
}
|
|
39
|
+
await writer.end();
|
|
40
|
+
reports.push({ table: store.table, rows });
|
|
41
|
+
}
|
|
42
|
+
return reports;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
async importFrom(dir: string): Promise<TransferReport[]> {
|
|
46
|
+
const files = new Set((await readdir(dir)).filter((file) => file.endsWith(".ndjson")));
|
|
47
|
+
const search = this.#database.getSearchIndex();
|
|
48
|
+
const reports: TransferReport[] = [];
|
|
49
|
+
for (const store of this.#stores()) {
|
|
50
|
+
const file = `${store.table}.ndjson`;
|
|
51
|
+
if (!files.delete(file)) continue;
|
|
52
|
+
|
|
53
|
+
await search?.suspend(store.database);
|
|
54
|
+
let rows = 0;
|
|
55
|
+
let chunk: TransferRow[] = [];
|
|
56
|
+
for await (const line of DocumentTransfer.#lines(path.join(dir, file))) {
|
|
57
|
+
chunk.push(JSON.parse(line) as TransferRow);
|
|
58
|
+
if (chunk.length < DocumentTransfer.#chunk) continue;
|
|
59
|
+
await store.importRows(chunk);
|
|
60
|
+
rows += chunk.length;
|
|
61
|
+
chunk = [];
|
|
62
|
+
}
|
|
63
|
+
if (chunk.length) await store.importRows(chunk);
|
|
64
|
+
rows += chunk.length;
|
|
65
|
+
if (search && !(await search.resume(store.constant, store.database)))
|
|
66
|
+
this.#logger.warn(`Another process holds the search rebuild of ${store.table}; it catches up once that ends`);
|
|
67
|
+
reports.push({ table: store.table, rows });
|
|
68
|
+
}
|
|
69
|
+
for (const file of files) this.#logger.warn(`${file} matches no model of this app; skipped`);
|
|
70
|
+
return reports;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
#stores() {
|
|
74
|
+
const stores = this.#database.stores?.();
|
|
75
|
+
if (!stores) throw new Error("This database adaptor keeps no model stores to transfer.");
|
|
76
|
+
return stores;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
static async *#lines(file: string) {
|
|
80
|
+
let buffered = "";
|
|
81
|
+
for await (const chunk of Bun.file(file).stream().pipeThrough(new TextDecoderStream())) {
|
|
82
|
+
buffered += chunk;
|
|
83
|
+
const lines = buffered.split("\n");
|
|
84
|
+
buffered = lines.pop() ?? "";
|
|
85
|
+
for (const line of lines) if (line.trim()) yield line;
|
|
86
|
+
}
|
|
87
|
+
if (buffered.trim()) yield buffered;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
@@ -2,9 +2,10 @@ export * from "./anthropicLlm";
|
|
|
2
2
|
export * from "./cache.adaptor";
|
|
3
3
|
export * from "./compress.adaptor";
|
|
4
4
|
export * from "./database.adaptor";
|
|
5
|
-
export * from "./
|
|
5
|
+
export * from "./documentTransfer";
|
|
6
6
|
export * from "./insightQuery";
|
|
7
7
|
export * from "./llm.adaptor";
|
|
8
|
+
export * from "./llmOverflow";
|
|
8
9
|
export * from "./logging.adaptor";
|
|
9
10
|
export * from "./openaiDialect";
|
|
10
11
|
export * from "./openaiLlm";
|
|
@@ -1,75 +1,54 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { DatabaseAdaptor } from "./database.adaptor";
|
|
2
|
+
import { PostgresAkanClient } from "./sql/driver/postgres";
|
|
2
3
|
|
|
3
4
|
export interface InsightQueryOptions {
|
|
4
|
-
/**
|
|
5
|
+
/** Clamped to `InsightQuery.maxRows`, which no caller can raise. */
|
|
5
6
|
limit?: number;
|
|
6
|
-
/**
|
|
7
|
+
/** In ms. Only Postgres stops the query (`statement_timeout`); a synchronous `bun:sqlite` read runs to the end. */
|
|
7
8
|
timeoutMs?: number;
|
|
8
9
|
}
|
|
9
10
|
|
|
10
11
|
export interface InsightQueryResult {
|
|
11
12
|
columns: string[];
|
|
12
13
|
rows: Record<string, unknown>[];
|
|
13
|
-
/** The ceiling cut the answer short, so the caller knows not to read it as complete. */
|
|
14
14
|
truncated: boolean;
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
/**
|
|
18
|
-
* One read-only
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
* cascade, `_postRemove`, and the `hidden`/`secret` masking every other response path performs. So it is read-only
|
|
22
|
-
* by construction rather than by convention, and it is deliberately *not* wired to an endpoint here: the framework
|
|
23
|
-
* owns no guard strong enough to sit in front of it. An app that wants it writes the endpoint with its own
|
|
24
|
-
* `SuperAdmin`, the same way guards ship with the library that owns the model.
|
|
25
|
-
*
|
|
26
|
-
* Three things enforce read-only, and only the third is ours:
|
|
27
|
-
*
|
|
28
|
-
* 1. The statement is wrapped as a derived table — `SELECT * FROM (<sql>) AS "akanInsight" LIMIT ?`. Nothing but a
|
|
29
|
-
* query is legal in that position, in either dialect, so a write is a syntax error from the engine rather than a
|
|
30
|
-
* pattern this code had to recognise. A second statement smuggled behind `;` is a syntax error for the same
|
|
31
|
-
* reason, and the row ceiling rides along on the same wrapper.
|
|
32
|
-
* 2. A rejection before execution, so the caller reads why rather than a syntax error. It runs on the statement with
|
|
33
|
-
* comments and string literals removed, because that is what makes `-- ` and `'…'` unable to hide anything.
|
|
34
|
-
* 3. **`_doc` never crosses the boundary.** Every non-base field lives in that one JSON column, which is where the
|
|
35
|
-
* plan's "re-apply schema-based masking" runs into the fact that an arbitrary SELECT has no model to mask by. So
|
|
36
|
-
* the enforceable rule is the column itself: unnameable in the statement, dropped from the rows, and any cell
|
|
37
|
-
* that still arrives holding a JSON object or array is refused. An insight is made of scalars; a value that is
|
|
38
|
-
* not one is either a document or indistinguishable from it.
|
|
39
|
-
*
|
|
40
|
-
* What that costs is real and worth saying: this answers "how many, since when, grouped how" over base columns and
|
|
41
|
-
* the search mirror, and it cannot read a domain field. Field-level reads go through the domain tools, which mask.
|
|
18
|
+
* One read-only statement that bypasses guards, soft delete and `hidden`/`secret` masking, so no endpoint is wired
|
|
19
|
+
* here: an app fronts it with its own `SuperAdmin`. `_doc` is withheld by the engine — `openInsight()` opens a
|
|
20
|
+
* read-only connection lacking the column, since no text check catches `*`, whole-row values or quoted names.
|
|
42
21
|
*/
|
|
43
22
|
export class InsightQuery {
|
|
44
|
-
/** Not an option. A caller asking for more gets this, because the point is that no caller sets the ceiling. */
|
|
45
23
|
static readonly maxRows = 1000;
|
|
46
24
|
static readonly #allowedFirstKeywords = new Set(["select", "with"]);
|
|
47
|
-
|
|
48
|
-
* Words that cannot appear anywhere in a read, checked so read-only does not rest on a dialect's own rule.
|
|
49
|
-
*
|
|
50
|
-
* `WITH` has to be allowed as a first keyword — a CTE is how a real question gets asked — and Postgres lets a CTE
|
|
51
|
-
* modify data. That it is illegal *inside* the derived table this wraps the statement in is true and is what would
|
|
52
|
-
* stop it, but it is one sentence of another project's documentation away from not being true. This does not
|
|
53
|
-
* depend on it. Word-boundary matched on the comment- and literal-stripped statement, so `deleted_at` is fine and
|
|
54
|
-
* a column that is genuinely named `update` is refused — the wrong answer in the safe direction.
|
|
55
|
-
*/
|
|
25
|
+
|
|
56
26
|
static readonly #forbidden =
|
|
57
27
|
/\b(insert|update|delete|drop|alter|create|truncate|replace|grant|revoke|attach|detach|vacuum|reindex|pragma)\b/i;
|
|
58
|
-
/** The column every document's non-base fields live in. See the class note. */
|
|
59
28
|
static readonly #documentColumn = "_doc";
|
|
29
|
+
static readonly #identifierChar = /[\p{L}\p{N}_$]/u;
|
|
30
|
+
static readonly #dollarQuote = /^\$(?:[\p{L}_][\p{L}\p{N}_]*)?\$/u;
|
|
60
31
|
|
|
61
|
-
readonly #
|
|
32
|
+
readonly #database: DatabaseAdaptor;
|
|
62
33
|
|
|
63
|
-
constructor(
|
|
64
|
-
this.#
|
|
34
|
+
constructor(database: DatabaseAdaptor) {
|
|
35
|
+
this.#database = database;
|
|
65
36
|
}
|
|
66
37
|
|
|
67
38
|
async run(sql: string, { limit = InsightQuery.maxRows, timeoutMs = 10_000 }: InsightQueryOptions = {}) {
|
|
68
|
-
const statement = InsightQuery.#assertReadable(sql);
|
|
39
|
+
const statement = InsightQuery.#assertReadable(sql, this.#database.getConnection() instanceof PostgresAkanClient);
|
|
69
40
|
const rows = Math.max(1, Math.min(limit, InsightQuery.maxRows));
|
|
70
41
|
|
|
71
|
-
const wrapped = `SELECT * FROM (${statement}) AS "akanInsight" LIMIT ${rows + 1}`;
|
|
72
|
-
|
|
42
|
+
const wrapped = `SELECT * FROM (${statement}\n) AS "akanInsight" LIMIT ${rows + 1}`;
|
|
43
|
+
if (!this.#database.openInsight)
|
|
44
|
+
throw new Error("This database adaptor opens no insight connection, so it cannot run an insight query.");
|
|
45
|
+
const session = await this.#database.openInsight();
|
|
46
|
+
let found: Record<string, unknown>[];
|
|
47
|
+
try {
|
|
48
|
+
found = await InsightQuery.#raced(session.read(wrapped, timeoutMs), timeoutMs);
|
|
49
|
+
} finally {
|
|
50
|
+
await session.close();
|
|
51
|
+
}
|
|
73
52
|
const truncated = found.length > rows;
|
|
74
53
|
const kept = truncated ? found.slice(0, rows) : found;
|
|
75
54
|
return {
|
|
@@ -79,14 +58,6 @@ export class InsightQuery {
|
|
|
79
58
|
} satisfies InsightQueryResult;
|
|
80
59
|
}
|
|
81
60
|
|
|
82
|
-
/**
|
|
83
|
-
* Stops waiting; does not stop the query.
|
|
84
|
-
*
|
|
85
|
-
* With libsql or Postgres the driver call is genuinely asynchronous, so the caller is freed and the connection
|
|
86
|
-
* finishes on its own. With `bun:sqlite` it is synchronous and holds the event loop, so this timer cannot fire
|
|
87
|
-
* until the query is already done — the ceiling is what limits that case, not the clock. Do not read the timeout
|
|
88
|
-
* as protection against an expensive statement.
|
|
89
|
-
*/
|
|
90
61
|
static async #raced<T>(work: Promise<T[]>, timeoutMs: number): Promise<T[]> {
|
|
91
62
|
let timer: ReturnType<typeof setTimeout> | undefined;
|
|
92
63
|
const expiry = new Promise<never>((_, reject) => {
|
|
@@ -99,11 +70,10 @@ export class InsightQuery {
|
|
|
99
70
|
}
|
|
100
71
|
}
|
|
101
72
|
|
|
102
|
-
|
|
103
|
-
static #assertReadable(sql: string) {
|
|
73
|
+
static #assertReadable(sql: string, postgres: boolean) {
|
|
104
74
|
const statement = sql.trim().replace(/;\s*$/, "");
|
|
105
75
|
if (!statement) throw new Error("An insight query needs a statement.");
|
|
106
|
-
const bare = InsightQuery.#stripLiterals(statement);
|
|
76
|
+
const bare = InsightQuery.#stripLiterals(statement, postgres);
|
|
107
77
|
if (bare.includes(";")) throw new Error("An insight query is one statement. Remove the `;`.");
|
|
108
78
|
const first = /[a-z]+/.exec(bare.toLowerCase())?.[0];
|
|
109
79
|
if (!first || !InsightQuery.#allowedFirstKeywords.has(first))
|
|
@@ -120,23 +90,70 @@ export class InsightQuery {
|
|
|
120
90
|
}
|
|
121
91
|
|
|
122
92
|
/**
|
|
123
|
-
*
|
|
124
|
-
*
|
|
125
|
-
*
|
|
126
|
-
*
|
|
127
|
-
* that begins with SELECT or WITH has nowhere legal to put one.
|
|
128
|
-
*
|
|
129
|
-
* A double-quoted span is **unquoted, not blanked**. It is an identifier in both dialects, not a literal, so
|
|
130
|
-
* blanking it was what let `SELECT "_doc"` through the column check while `SELECT _doc` was refused. Keeping the
|
|
131
|
-
* contents means SQLite's fallback — a double-quoted string, where no such column exists — is read as an
|
|
132
|
-
* identifier too, which errs toward refusing a statement rather than toward reading the column.
|
|
93
|
+
* One left-to-right pass, since a literal can hold a comment opener and a comment a quote; blanked with spaces so no
|
|
94
|
+
* two tokens merge. A quoted identifier is unquoted, not blanked, or `"_doc"` would pass the column check. Postgres
|
|
95
|
+
* `$tag$`, `E'…'` and backslash strings are refused — their end would be a guess — and a block comment ends at the
|
|
96
|
+
* first `*\/` (Postgres nests), which at worst refuses a statement.
|
|
133
97
|
*/
|
|
134
|
-
static #stripLiterals(sql: string) {
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
.
|
|
139
|
-
|
|
98
|
+
static #stripLiterals(sql: string, postgres: boolean) {
|
|
99
|
+
const bare: string[] = [];
|
|
100
|
+
let at = 0;
|
|
101
|
+
const blankTo = (end: number) => {
|
|
102
|
+
bare.push(" ".repeat(end - at));
|
|
103
|
+
at = end;
|
|
104
|
+
};
|
|
105
|
+
const unquoteTo = (end: number) => {
|
|
106
|
+
bare.push(` ${sql.slice(at + 1, end - 1)} `);
|
|
107
|
+
at = end;
|
|
108
|
+
};
|
|
109
|
+
while (at < sql.length) {
|
|
110
|
+
const char = sql[at];
|
|
111
|
+
const next = sql[at + 1];
|
|
112
|
+
const joined = at > 0 && InsightQuery.#identifierChar.test(sql[at - 1]);
|
|
113
|
+
if (char === "-" && next === "-") {
|
|
114
|
+
const end = sql.indexOf("\n", at);
|
|
115
|
+
blankTo(end === -1 ? sql.length : end);
|
|
116
|
+
} else if (char === "/" && next === "*") {
|
|
117
|
+
const end = sql.indexOf("*/", at + 2);
|
|
118
|
+
blankTo(end === -1 ? sql.length : end + 2);
|
|
119
|
+
} else if (char === "'") {
|
|
120
|
+
const end = InsightQuery.#closing(sql, at, "'");
|
|
121
|
+
if (postgres && InsightQuery.#escapeStringPrefix(sql, at))
|
|
122
|
+
throw new Error("An insight query takes plain '…' strings: E'…' is refused.");
|
|
123
|
+
if (postgres && sql.slice(at, end).includes("\\"))
|
|
124
|
+
throw new Error("An insight query takes no backslash inside a string literal.");
|
|
125
|
+
blankTo(end);
|
|
126
|
+
} else if (char === '"') {
|
|
127
|
+
unquoteTo(InsightQuery.#closing(sql, at, '"'));
|
|
128
|
+
} else if (!postgres && char === "`") {
|
|
129
|
+
unquoteTo(InsightQuery.#closing(sql, at, "`"));
|
|
130
|
+
} else if (!postgres && char === "[") {
|
|
131
|
+
const end = sql.indexOf("]", at + 1);
|
|
132
|
+
unquoteTo(end === -1 ? sql.length : end + 1);
|
|
133
|
+
} else if (postgres && char === "$" && !joined && InsightQuery.#dollarQuote.test(sql.slice(at))) {
|
|
134
|
+
throw new Error("An insight query takes plain '…' strings: a $$-quoted string is refused.");
|
|
135
|
+
} else {
|
|
136
|
+
bare.push(char);
|
|
137
|
+
at += 1;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
return bare.join("");
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
/** A doubled quote escapes itself in both dialects; returns the index past the closing quote. */
|
|
144
|
+
static #closing(sql: string, open: number, quote: string) {
|
|
145
|
+
for (let at = open + 1; at < sql.length; at += 1) {
|
|
146
|
+
if (sql[at] !== quote) continue;
|
|
147
|
+
if (sql[at + 1] !== quote) return at + 1;
|
|
148
|
+
at += 1;
|
|
149
|
+
}
|
|
150
|
+
return sql.length;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
static #escapeStringPrefix(sql: string, quote: number) {
|
|
154
|
+
const prefix = sql[quote - 1];
|
|
155
|
+
if (prefix !== "E" && prefix !== "e") return false;
|
|
156
|
+
return quote < 2 || !InsightQuery.#identifierChar.test(sql[quote - 2]);
|
|
140
157
|
}
|
|
141
158
|
|
|
142
159
|
static #columnsOf(rows: Record<string, unknown>[]) {
|
|
@@ -146,13 +163,6 @@ export class InsightQuery {
|
|
|
146
163
|
return [...columns];
|
|
147
164
|
}
|
|
148
165
|
|
|
149
|
-
/**
|
|
150
|
-
* Drops the document column and refuses anything else shaped like one.
|
|
151
|
-
*
|
|
152
|
-
* The column has to be dropped here as well as rejected in the statement, because `SELECT * FROM "user"` returns
|
|
153
|
-
* it without ever naming it. The JSON check is for the ways a dialect can hand back a whole row under another
|
|
154
|
-
* name — `row_to_json(u)` — which no list of forbidden function names would keep up with.
|
|
155
|
-
*/
|
|
156
166
|
static #readable(row: Record<string, unknown>) {
|
|
157
167
|
const readable: Record<string, unknown> = {};
|
|
158
168
|
for (const [key, value] of Object.entries(row)) {
|
|
@@ -12,11 +12,7 @@ export interface AgentWireToolResult {
|
|
|
12
12
|
error?: string;
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
/**
|
|
16
|
-
* A file the caller attached to one message. Exactly one carrier reaches the model — `data` as inlined bytes, `url`
|
|
17
|
-
* as something the provider fetches, `text` as content already extracted — and which of them a given provider can
|
|
18
|
-
* read is what `LlmAccepts` answers.
|
|
19
|
-
*/
|
|
15
|
+
/** Exactly one carrier reaches the model: `data` (inlined bytes), `url` (fetched by the provider) or `text`. */
|
|
20
16
|
export interface AgentWireAttachment {
|
|
21
17
|
name: string;
|
|
22
18
|
mimeType: string;
|
|
@@ -24,25 +20,34 @@ export interface AgentWireAttachment {
|
|
|
24
20
|
data?: string;
|
|
25
21
|
url?: string;
|
|
26
22
|
text?: string;
|
|
27
|
-
/** The host's own handle on this file,
|
|
23
|
+
/** The host's own handle on this file, for a relay; a provider mapping ignores it. */
|
|
28
24
|
ref?: string;
|
|
29
25
|
}
|
|
30
26
|
|
|
31
27
|
/**
|
|
32
|
-
*
|
|
33
|
-
*
|
|
28
|
+
* `value` is a send-time snapshot the host already masked — the server has no model class to mask it with — and
|
|
29
|
+
* `refName`/`refId`/`path` lead back to the current value.
|
|
34
30
|
*/
|
|
31
|
+
export interface AgentWireReference {
|
|
32
|
+
refName: string;
|
|
33
|
+
refId: string;
|
|
34
|
+
label: string;
|
|
35
|
+
path?: string;
|
|
36
|
+
value?: unknown;
|
|
37
|
+
/** Read by the model in place of a value there is none of — clipped, unreadable, or gone from a restored chat. */
|
|
38
|
+
note?: string;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/** `use-agentic`'s WIRE.md, typed at both ends independently so the server never imports the client package. */
|
|
35
42
|
export interface AgentWireMessage {
|
|
36
43
|
role: "user" | "assistant" | "tool";
|
|
37
44
|
text?: string;
|
|
38
45
|
attachments?: AgentWireAttachment[];
|
|
46
|
+
references?: AgentWireReference[];
|
|
39
47
|
toolCalls?: AgentWireToolCall[];
|
|
40
48
|
toolResults?: AgentWireToolResult[];
|
|
41
49
|
error?: string;
|
|
42
|
-
/**
|
|
43
|
-
* Stands in for the messages the client's own compaction replaced. It arrives with the user's role because the
|
|
44
|
-
* wire has no other, but it is history rather than an ask, so a provider mapping frames it as one.
|
|
45
|
-
*/
|
|
50
|
+
/** A compaction summary: it arrives with the user's role but is history, not an ask, and a provider frames it so. */
|
|
46
51
|
summary?: boolean;
|
|
47
52
|
}
|
|
48
53
|
|
|
@@ -68,74 +73,79 @@ export interface LlmTurnRequest {
|
|
|
68
73
|
export interface LlmTurnAnswer {
|
|
69
74
|
text?: string;
|
|
70
75
|
toolCalls?: AgentWireToolCall[];
|
|
71
|
-
/**
|
|
72
|
-
* Why the turn ended. `"length"` is the provider's ceiling — `finish_reason: "length"`, `stop_reason:
|
|
73
|
-
* "max_tokens"` — and it is distinguished from `"end"` because the two are indistinguishable downstream
|
|
74
|
-
* otherwise: a truncated answer reads as a complete one, and a turn cut off mid tool call carries no complete
|
|
75
|
-
* call at all, so it would end the loop looking exactly like a model that chose to stop.
|
|
76
|
-
*/
|
|
76
|
+
/** `"length"` is the provider's ceiling; a turn cut off mid tool call must not read as a model that chose to stop. */
|
|
77
77
|
stop: "end" | "toolUse" | "length";
|
|
78
|
+
/** Absent when the provider reported nothing. */
|
|
79
|
+
usage?: LlmUsage;
|
|
80
|
+
/** The model that answered, as the adaptor named it to the provider. */
|
|
81
|
+
model?: string;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/** `inputTokens` is the whole prompt, cached part included; `cachedTokens` is the share billed at the cache rate. */
|
|
85
|
+
export interface LlmUsage {
|
|
86
|
+
inputTokens: number;
|
|
87
|
+
outputTokens: number;
|
|
88
|
+
cachedTokens: number;
|
|
78
89
|
}
|
|
79
90
|
|
|
80
91
|
/**
|
|
81
|
-
* The provider seam for one stateless agent turn
|
|
82
|
-
*
|
|
83
|
-
* implementation is an `adapt()` class in a lib's `srvkit/`.
|
|
84
|
-
*
|
|
85
|
-
* `null` means this provider is not configured, and the caller turns it into the one sentence that says so. A
|
|
86
|
-
* failure the provider explained is logged and **thrown** instead, as an `Err` whose text the chat prints: a
|
|
87
|
-
* refused turn and an unconfigured app are different things to be told, and collapsing both into `null` left a
|
|
88
|
-
* user reading "no model is configured" about a conversation that had merely outgrown the context window.
|
|
92
|
+
* The provider seam for one stateless agent turn; the server relays and never executes a client tool. `chat`
|
|
93
|
+
* resolves `null` only when unconfigured — a refusal the provider explained is thrown as an `Err` the chat prints.
|
|
89
94
|
*/
|
|
90
95
|
export interface LlmAdaptor {
|
|
91
|
-
/**
|
|
92
|
-
* `onDelta` opts into streaming: the adapter reports assistant text as it arrives and still resolves the full
|
|
93
|
-
* answer. An adapter may ignore it — the caller treats zero reported deltas as "answered whole".
|
|
94
|
-
*/
|
|
96
|
+
/** `onDelta` opts into streaming and the full answer still resolves; an adaptor may ignore it. */
|
|
95
97
|
chat(request: LlmTurnRequest, onDelta?: (delta: string) => void): Promise<LlmTurnAnswer | null>;
|
|
96
|
-
/**
|
|
98
|
+
/** Omitted means text only. */
|
|
97
99
|
readonly accepts?: LlmAccepts;
|
|
100
|
+
/** Omitted means nothing is known. */
|
|
101
|
+
readonly limits?: LlmLimits;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/** Relayed to the browser on every turn, so the chat compacts its transcript before the provider refuses it. */
|
|
105
|
+
export interface LlmLimits {
|
|
106
|
+
/** The model's context window, prompt and answer together. */
|
|
107
|
+
window?: number;
|
|
108
|
+
/** The answer ceiling the adaptor actually requests; left out when it sends none. */
|
|
109
|
+
output?: number;
|
|
98
110
|
}
|
|
99
111
|
|
|
100
112
|
/**
|
|
101
|
-
*
|
|
102
|
-
*
|
|
103
|
-
* turn or accepts it having seen nothing, and the model then answers confidently about a file it never read.
|
|
104
|
-
* `AgentService` degrades what is not accepted into a note the model can repeat back, so a text-only provider
|
|
105
|
-
* needs no attachment code at all — which is every provider until somebody swaps one in for vision.
|
|
113
|
+
* Declared, never defaulted to true: a provider handed bytes it cannot decode refuses the turn or answers about a
|
|
114
|
+
* file it never read. `AgentService` degrades what is not accepted into a note.
|
|
106
115
|
*/
|
|
107
116
|
export interface LlmAccepts {
|
|
108
|
-
/** Inlined or linked image bytes. */
|
|
109
117
|
image?: boolean;
|
|
110
118
|
/** Non-image bytes handed over whole — a PDF the model parses itself. */
|
|
111
119
|
document?: boolean;
|
|
112
120
|
}
|
|
113
121
|
|
|
114
122
|
/**
|
|
115
|
-
*
|
|
116
|
-
*
|
|
117
|
-
* class re-reads the same three fields under that provider's own defaults.
|
|
123
|
+
* Registered with `option.setLlm(...)` for whichever adaptor fills `LlmAdaptorRole`. `setLlm` keeps extra fields, so
|
|
124
|
+
* a custom adaptor extends this interface and reads it with `use<MyLlmOption>()`.
|
|
118
125
|
*/
|
|
119
126
|
export interface LlmOption {
|
|
120
127
|
apiKey?: string;
|
|
121
128
|
model?: string;
|
|
122
129
|
host?: string;
|
|
123
|
-
/**
|
|
124
|
-
* What the *configured* model reads beyond text, overriding what the adaptor claims for its provider. It rides
|
|
125
|
-
* beside `model` because that is what capability belongs to: an adaptor answers for an API, and one API serves
|
|
126
|
-
* models that differ. Declared here rather than as a table the framework keeps, because a table is a claim about
|
|
127
|
-
* models that ship after it and goes quietly wrong — and getting this wrong is the worst failure available, a
|
|
128
|
-
* provider handed bytes it cannot decode either refusing the turn or accepting it having seen nothing.
|
|
129
|
-
*/
|
|
130
|
+
/** Overrides what the adaptor claims for its provider: one API serves models that read different things. */
|
|
130
131
|
accepts?: LlmAccepts;
|
|
131
132
|
/**
|
|
132
|
-
* The answer ceiling, for an API that requires one.
|
|
133
|
-
*
|
|
134
|
-
* model refusing rather than as a number being too small.
|
|
135
|
-
*
|
|
136
|
-
* Sampling knobs are deliberately absent from this option. They are the one place a per-model difference is a
|
|
137
|
-
* hard failure rather than a nuance — `temperature` is a 400 on some models rather than an ignored field — so
|
|
138
|
-
* the role carries nothing it would have to guess the legality of per model.
|
|
133
|
+
* The answer ceiling, for an API that requires one. Sampling knobs are absent on purpose: `temperature` is a 400
|
|
134
|
+
* on some models.
|
|
139
135
|
*/
|
|
140
136
|
maxTokens?: number;
|
|
137
|
+
/** In tokens. Left out, the chat learns it from the first refusal that names it. */
|
|
138
|
+
contextWindow?: number;
|
|
141
139
|
}
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* The refusing party printed on `agent.error.llmRequestFailed`: the host, not the adaptor's name, since one dialect
|
|
143
|
+
* class serves many hosts. A host that is not a URL is printed as written.
|
|
144
|
+
*/
|
|
145
|
+
export const llmProviderOf = (host: string): string => {
|
|
146
|
+
try {
|
|
147
|
+
return new URL(host).hostname;
|
|
148
|
+
} catch {
|
|
149
|
+
return host;
|
|
150
|
+
}
|
|
151
|
+
};
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { Err } from "akanjs/dictionary";
|
|
2
|
+
import { llmProviderOf } from "./llm.adaptor";
|
|
3
|
+
|
|
4
|
+
/** Each field is present only when the refusal named it. */
|
|
5
|
+
export interface LlmOverflowFacts {
|
|
6
|
+
limit?: number;
|
|
7
|
+
requested?: number;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
/** Matches each provider's own too-long-prompt sentence; a status code cannot tell it from any other bad request. */
|
|
11
|
+
export class LlmOverflow {
|
|
12
|
+
static readonly patterns = [
|
|
13
|
+
/prompt (?:is )?too long/i, // Anthropic: "prompt is too long: 213462 tokens > 200000 maximum"
|
|
14
|
+
/request_too_large/i, // Anthropic, past the request byte ceiling
|
|
15
|
+
/context[_ ]length[_ ]exceeded/i, // OpenAI's error code
|
|
16
|
+
/exceeds the context window/i, // OpenAI
|
|
17
|
+
/maximum context length/i, // the OpenAI dialect: DeepSeek, OpenRouter, vLLM, LiteLLM
|
|
18
|
+
/input token count.*exceeds the maximum/i, // Gemini
|
|
19
|
+
/maximum prompt length is \d+/i, // xAI
|
|
20
|
+
/reduce the length of the messages/i, // Groq
|
|
21
|
+
/is longer than the model'?s context length/i, // Together
|
|
22
|
+
/too large for model with \d+ maximum context length/i, // Mistral
|
|
23
|
+
];
|
|
24
|
+
|
|
25
|
+
/** A quota borrows the same words, and compacting a conversation that fit loses detail for nothing. */
|
|
26
|
+
static readonly quotas = [/rate limit/i, /too many requests/i, /per minute/i];
|
|
27
|
+
|
|
28
|
+
static readonly measured = [
|
|
29
|
+
/(?<requested>[\d,]+) tokens > (?<limit>[\d,]+) maximum/i,
|
|
30
|
+
/maximum context length is (?<limit>[\d,]+) tokens(?:.*?requested (?:about )?(?<requested>[\d,]+))?/i,
|
|
31
|
+
/input length \((?<requested>[\d,]+)\) exceeds model'?s maximum context length \((?<limit>[\d,]+)\)/i,
|
|
32
|
+
/maximum context length of (?<limit>[\d,]+)/i,
|
|
33
|
+
/input token count \((?<requested>[\d,]+)\) exceeds the maximum number of tokens allowed \((?<limit>[\d,]+)\)/i,
|
|
34
|
+
/maximum prompt length is (?<limit>[\d,]+) but the request contains (?<requested>[\d,]+)/i,
|
|
35
|
+
/input \((?<requested>[\d,]+) tokens\) is longer than the model'?s context length \((?<limit>[\d,]+) tokens\)/i,
|
|
36
|
+
];
|
|
37
|
+
|
|
38
|
+
static match(reason: string): LlmOverflowFacts | null {
|
|
39
|
+
if (LlmOverflow.quotas.some((pattern) => pattern.test(reason))) return null;
|
|
40
|
+
if (!LlmOverflow.patterns.some((pattern) => pattern.test(reason))) return null;
|
|
41
|
+
for (const pattern of LlmOverflow.measured) {
|
|
42
|
+
const groups = pattern.exec(reason)?.groups;
|
|
43
|
+
if (!groups) continue;
|
|
44
|
+
const limit = LlmOverflow.#count(groups.limit);
|
|
45
|
+
const requested = LlmOverflow.#count(groups.requested);
|
|
46
|
+
return { ...(limit ? { limit } : {}), ...(requested ? { requested } : {}) };
|
|
47
|
+
}
|
|
48
|
+
return {};
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/** `contextOverflow` when the prompt did not fit (the chat compacts and asks again), else `llmRequestFailed`. */
|
|
52
|
+
static refusal(host: string, status: number, reason: string): Error {
|
|
53
|
+
const provider = llmProviderOf(host);
|
|
54
|
+
const overflow = LlmOverflow.match(reason);
|
|
55
|
+
if (overflow) return new Err("agent.error.contextOverflow", { provider, ...overflow });
|
|
56
|
+
return new Err("agent.error.llmRequestFailed", { provider, status: String(status), reason });
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
static #count(text: string | undefined): number | undefined {
|
|
60
|
+
const count = text ? Number(text.replace(/,/g, "")) : Number.NaN;
|
|
61
|
+
return Number.isFinite(count) && count > 0 ? count : undefined;
|
|
62
|
+
}
|
|
63
|
+
}
|