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
package/signal/signalContext.ts
CHANGED
|
@@ -19,10 +19,10 @@ import {
|
|
|
19
19
|
import type { Adaptor, AdaptorCls, DatabaseService, InjectRegistry, LiveRegistry } from "akanjs/service";
|
|
20
20
|
import type { Internal, InternalCls, InternalInfo, MiddlewareCls } from ".";
|
|
21
21
|
import { CrossSiteGuard } from "./CrossSiteGuard";
|
|
22
|
-
import
|
|
22
|
+
import { EndpointCache } from "./endpointCache";
|
|
23
|
+
import type { ArgInfo, EndpointInfo, EndpointType } from "./endpointInfo";
|
|
23
24
|
import { Exception, isExceptionLike } from "./exception";
|
|
24
25
|
import { type GuardCls, guardOf } from "./guard";
|
|
25
|
-
|
|
26
26
|
import { SignalFailure } from "./SignalFailure";
|
|
27
27
|
import { getCurrentTrace, runTraced, SignalTrace, type TraceOrigin, traceSpan } from "./trace";
|
|
28
28
|
|
|
@@ -33,6 +33,9 @@ export type HttpPeerResolver = (req: Request) => { address: string; port: number
|
|
|
33
33
|
|
|
34
34
|
const httpEndpointTypes = new Set<EndpointType>(["query", "mutation"]);
|
|
35
35
|
|
|
36
|
+
const deserializeArg = (arg: ArgInfo, value: unknown) =>
|
|
37
|
+
deserialize(arg.argRef, arg.arrDepth, value, { key: arg.name, nullable: arg.option?.nullable, enum: arg.enum });
|
|
38
|
+
|
|
36
39
|
interface WebSocketRequest {
|
|
37
40
|
ws: Bun.ServerWebSocket<unknown>;
|
|
38
41
|
data: unknown[];
|
|
@@ -40,10 +43,7 @@ interface WebSocketRequest {
|
|
|
40
43
|
}
|
|
41
44
|
type RuntimeRecord = Record<string, unknown>;
|
|
42
45
|
type MiddlewareHandler = (context: SignalContext, next: () => Promise<unknown>) => PromiseOrObject<unknown>;
|
|
43
|
-
/**
|
|
44
|
-
* Every relation subtree one response has resolved, by model class and then document id. Request-scoped: the
|
|
45
|
-
* outermost `resolveReturn` starts it and every recursion threads it down, so nothing survives the response.
|
|
46
|
-
*/
|
|
46
|
+
/** Request-scoped: the outermost `resolveReturn` starts one and every recursion threads it down. */
|
|
47
47
|
type ResolveCache = Map<ConstantFieldTypeInput, Map<string, Promise<unknown>>>;
|
|
48
48
|
|
|
49
49
|
export class SignalContext<
|
|
@@ -55,11 +55,7 @@ export class SignalContext<
|
|
|
55
55
|
ctx: Ctx;
|
|
56
56
|
endpointInfo: EndpointInfo;
|
|
57
57
|
adaptor: Adaptor;
|
|
58
|
-
/**
|
|
59
|
-
* Which surface the call came in on. The transport for a plain request, `mcp` for one an agent made through the
|
|
60
|
-
* MCP endpoint. Held on the context rather than read off the trace: `SignalTrace.create` may answer `null`, and a
|
|
61
|
-
* guard that asked the trace whether a model is driving the call would fail open exactly there.
|
|
62
|
-
*/
|
|
58
|
+
/** `mcp` for a call through the MCP endpoint. Held here, not on the trace: a null trace would let a guard fail open. */
|
|
63
59
|
readonly origin: TraceOrigin;
|
|
64
60
|
args: unknown[] = [];
|
|
65
61
|
internalArgs: unknown[] = [];
|
|
@@ -88,13 +84,9 @@ export class SignalContext<
|
|
|
88
84
|
env: Env;
|
|
89
85
|
live: LiveRegistry;
|
|
90
86
|
middleware: Map<string, MiddlewareCls>;
|
|
91
|
-
/**
|
|
92
|
-
* Runs the endpoint against a caller-built context instead of one derived from the request. MCP needs it:
|
|
93
|
-
* its arguments arrive as one named object rather than in a URL, but every guard, middleware and
|
|
94
|
-
* internalArg reads the request through this context, so the transport has to stay the same one.
|
|
95
|
-
*/
|
|
87
|
+
/** A caller-built context: MCP's arguments arrive as one named object, not in a URL. */
|
|
96
88
|
ctx?: Ctx;
|
|
97
|
-
/**
|
|
89
|
+
/** Defaults to the transport. */
|
|
98
90
|
origin?: TraceOrigin;
|
|
99
91
|
},
|
|
100
92
|
) {
|
|
@@ -110,7 +102,7 @@ export class SignalContext<
|
|
|
110
102
|
this.#env = env;
|
|
111
103
|
this.#live = live;
|
|
112
104
|
this.#middleware = middleware;
|
|
113
|
-
|
|
105
|
+
|
|
114
106
|
this.trace = getCurrentTrace() ?? SignalTrace.create(key, endpointInfo.type, origin ?? this.transport);
|
|
115
107
|
if (this.trace && this.transport === "http")
|
|
116
108
|
this.trace.applyDebugHeader((reqOrWsReq as { headers?: Headers }).headers?.get?.("x-akan-debug"));
|
|
@@ -134,31 +126,19 @@ export class SignalContext<
|
|
|
134
126
|
const httpCtx = this.getHttpContext();
|
|
135
127
|
CrossSiteGuard.assertOrigin(httpCtx.req, httpCtx.url, this.key);
|
|
136
128
|
}
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
this.trace.recordSpan("argParse", performance.now() - start);
|
|
141
|
-
} else {
|
|
142
|
-
this.args = await this.ctx.getArgs(this.endpointInfo);
|
|
143
|
-
}
|
|
129
|
+
const start = this.trace ? performance.now() : 0;
|
|
130
|
+
this.args = await this.ctx.getArgs(this.endpointInfo);
|
|
131
|
+
this.trace?.recordSpan("argParse", performance.now() - start);
|
|
144
132
|
return this;
|
|
145
133
|
}
|
|
146
|
-
|
|
147
|
-
* In declaration order, not in parallel. Every guard has to pass either way, so the only thing concurrency
|
|
148
|
-
* bought was that a call refused by two of them named whichever lost the race — a log line that changed
|
|
149
|
-
* between identical requests. Sequential also stops at the first refusal instead of running the rest.
|
|
150
|
-
*/
|
|
134
|
+
|
|
151
135
|
async #checkGuards() {
|
|
152
136
|
for (const GuardCls of this.endpointInfo.signalOption.guards ?? []) {
|
|
153
137
|
if (!(await guardOf(GuardCls).canPass(this)))
|
|
154
138
|
throw new Exception.Forbidden(`Access denied by guard: ${GuardCls.name}`);
|
|
155
139
|
}
|
|
156
140
|
}
|
|
157
|
-
/**
|
|
158
|
-
* Re-checks this context's guards outside of a request, for a websocket room that is already
|
|
159
|
-
* subscribed. Only global middlewares run: they carry the account resolution this depends on,
|
|
160
|
-
* while endpoint middlewares (cache/timeout/retry) would observe a call that never executes.
|
|
161
|
-
*/
|
|
141
|
+
/** Re-checks the guards of a subscribed room outside a request; only global middlewares (account resolution) run. */
|
|
162
142
|
async authorize(): Promise<boolean> {
|
|
163
143
|
try {
|
|
164
144
|
await this.#withMiddleware(async () => await this.#checkGuards(), { endpointMiddlewares: false })();
|
|
@@ -168,18 +148,14 @@ export class SignalContext<
|
|
|
168
148
|
}
|
|
169
149
|
}
|
|
170
150
|
/**
|
|
171
|
-
* Evaluates only
|
|
172
|
-
*
|
|
173
|
-
*
|
|
174
|
-
* **Never an access gate.** An endpoint whose guards are all resource-scoped passes here and is stopped later
|
|
175
|
-
* by `#checkGuards` with the arguments those guards need. Erring visible is deliberate: a resource guard fails
|
|
176
|
-
* closed with no arguments, so evaluating one here would delete every legitimate entry from the listing.
|
|
151
|
+
* Evaluates only `scope = "account"` guards, to hide listing entries. Never an access gate: a resource guard fails
|
|
152
|
+
* closed without arguments, so it is left to `#checkGuards` at call time.
|
|
177
153
|
*/
|
|
178
154
|
async canListForAccount(): Promise<boolean> {
|
|
179
155
|
const guards = (this.endpointInfo.signalOption.guards ?? []).filter((GuardCls) => GuardCls.scope === "account");
|
|
180
156
|
if (guards.length === 0) return true;
|
|
181
157
|
try {
|
|
182
|
-
|
|
158
|
+
|
|
183
159
|
await this.#withMiddleware(
|
|
184
160
|
async () => {
|
|
185
161
|
for (const GuardCls of guards) {
|
|
@@ -194,11 +170,7 @@ export class SignalContext<
|
|
|
194
170
|
return false;
|
|
195
171
|
}
|
|
196
172
|
}
|
|
197
|
-
|
|
198
|
-
* An account guard has no arguments here, so one that throws anything but a refusal reached for them anyway —
|
|
199
|
-
* a resource guard mismarked. The entry stays hidden (fail-closed), but the guard is named once per endpoint,
|
|
200
|
-
* because otherwise the only trace is a tool that is missing for everyone.
|
|
201
|
-
*/
|
|
173
|
+
|
|
202
174
|
async #canListWith(GuardCls: GuardCls): Promise<boolean> {
|
|
203
175
|
try {
|
|
204
176
|
return await guardOf(GuardCls).canPass(this);
|
|
@@ -236,21 +208,12 @@ export class SignalContext<
|
|
|
236
208
|
}
|
|
237
209
|
return next;
|
|
238
210
|
}
|
|
239
|
-
/**
|
|
240
|
-
* `use(env)` takes no context, so the instance and the handler it returns are a function of `(class, env)` and
|
|
241
|
-
* hold for the life of the process. Building both per request cost an instance, a handler and a closure on every
|
|
242
|
-
* call for every registered middleware — and `Logging` is registered by default.
|
|
243
|
-
*/
|
|
244
211
|
static #httpPeer: HttpPeerResolver | null = null;
|
|
245
|
-
/**
|
|
246
|
-
* Lets the http branch of `getClientIp` reach the socket the way the websocket branch already reaches
|
|
247
|
-
* `ws.remoteAddress`. Registered by whichever `Bun.serve` is listening, because only the server can answer
|
|
248
|
-
* `requestIP`. Behind the federation gateway this never fires — the gateway always writes `x-real-ip` —
|
|
249
|
-
* so it is the answer for a process nothing is proxying.
|
|
250
|
-
*/
|
|
212
|
+
/** Registered by the listening `Bun.serve`, the only thing that can answer `requestIP`; unused behind the gateway. */
|
|
251
213
|
static setHttpPeerResolver(resolve: HttpPeerResolver | null) {
|
|
252
214
|
SignalContext.#httpPeer = resolve;
|
|
253
215
|
}
|
|
216
|
+
|
|
254
217
|
static #middlewareHandlers = new WeakMap<MiddlewareCls, WeakMap<object, Promise<MiddlewareHandler>>>();
|
|
255
218
|
static #getMiddlewareHandler(MiddlewareCls: MiddlewareCls, env: BackendEnv): Promise<MiddlewareHandler> {
|
|
256
219
|
const byEnv =
|
|
@@ -258,7 +221,7 @@ export class SignalContext<
|
|
|
258
221
|
SignalContext.#middlewareHandlers.set(MiddlewareCls, byEnv);
|
|
259
222
|
const cached = byEnv.get(env);
|
|
260
223
|
if (cached) return cached;
|
|
261
|
-
|
|
224
|
+
|
|
262
225
|
const handler = Promise.resolve(new MiddlewareCls().use(env) as PromiseOrObject<MiddlewareHandler>).catch(
|
|
263
226
|
(error: unknown) => {
|
|
264
227
|
byEnv.delete(env);
|
|
@@ -291,46 +254,44 @@ export class SignalContext<
|
|
|
291
254
|
}),
|
|
292
255
|
);
|
|
293
256
|
}
|
|
294
|
-
|
|
295
|
-
return await traceSpan(
|
|
296
|
-
"handler",
|
|
297
|
-
async () => await this.endpointInfo.execFn?.call(this.adaptor, ...this.args, ...this.internalArgs),
|
|
298
|
-
);
|
|
257
|
+
const handle = async () => await this.endpointInfo.execFn?.call(this.adaptor, ...this.args, ...this.internalArgs);
|
|
258
|
+
return await EndpointCache.through(this, this.trace ? () => traceSpan("handler", handle) : handle);
|
|
299
259
|
};
|
|
300
260
|
const next = this.#withMiddleware(coreExec);
|
|
301
261
|
const result = this.trace ? await traceSpan("execChain", () => next()) : await next();
|
|
302
|
-
|
|
262
|
+
|
|
303
263
|
if (this.endpointInfo.type === "pubsub") return result;
|
|
304
264
|
if (result instanceof Response) return result;
|
|
265
|
+
const resolveOption = {
|
|
266
|
+
signalContext: this,
|
|
267
|
+
returnRef: this.endpointInfo.returns.returnRef,
|
|
268
|
+
arrDepth: this.endpointInfo.returns.arrDepth,
|
|
269
|
+
registry: this.#registry,
|
|
270
|
+
live: this.#live,
|
|
271
|
+
};
|
|
305
272
|
if (!this.trace) {
|
|
306
|
-
const resolved = await SignalContext.resolveReturn(result,
|
|
307
|
-
|
|
308
|
-
returnRef: this.endpointInfo.returns.returnRef,
|
|
309
|
-
arrDepth: this.endpointInfo.returns.arrDepth,
|
|
310
|
-
registry: this.#registry,
|
|
311
|
-
live: this.#live,
|
|
312
|
-
});
|
|
313
|
-
return this.ctx.makeResponse(resolved, this.endpointInfo);
|
|
273
|
+
const resolved = await SignalContext.resolveReturn(result, resolveOption);
|
|
274
|
+
return this.ctx.makeResponse(this.#settleUndefined(resolved), this.endpointInfo);
|
|
314
275
|
}
|
|
315
|
-
const resolved = await traceSpan("resolveReturn", () =>
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
276
|
+
const resolved = await traceSpan("resolveReturn", () => SignalContext.resolveReturn(result, resolveOption));
|
|
277
|
+
return await traceSpan("serialize", async () =>
|
|
278
|
+
this.ctx.makeResponse(this.#settleUndefined(resolved), this.endpointInfo),
|
|
279
|
+
);
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
#settleUndefined(resolved: unknown) {
|
|
283
|
+
if (resolved !== undefined) return resolved;
|
|
284
|
+
const { nullable, returnRef } = this.endpointInfo.returns;
|
|
285
|
+
if (nullable || returnRef === Any) return null;
|
|
286
|
+
throw new Error(
|
|
287
|
+
`${this.endpointInfo.type} ${this.key} returned undefined, but its return is not nullable: return a value, or declare { nullable: true } and return null`,
|
|
323
288
|
);
|
|
324
|
-
return await traceSpan("serialize", async () => this.ctx.makeResponse(resolved, this.endpointInfo));
|
|
325
289
|
}
|
|
326
290
|
/** Whether `run` already logged this failure, so a transport's catch does not log it a second time. */
|
|
327
291
|
static wasReported(error: unknown) {
|
|
328
292
|
return typeof error === "object" && error !== null && SignalContext.#reported.has(error);
|
|
329
293
|
}
|
|
330
|
-
/**
|
|
331
|
-
* Runs `fn` as one traced call of `key`, so every log it writes — the 500 log included, which is why the
|
|
332
|
-
* catch is in here and not in the transport — carries the same traceId. Rethrows after logging.
|
|
333
|
-
*/
|
|
294
|
+
/** The 500 log is written in here, not in the transport, so it carries the call's traceId; rethrows after. */
|
|
334
295
|
static async run<T>(
|
|
335
296
|
endpoint: Adaptor,
|
|
336
297
|
endpointInfo: EndpointInfo,
|
|
@@ -392,7 +353,6 @@ export class SignalContext<
|
|
|
392
353
|
arrDepth: number;
|
|
393
354
|
registry: InjectRegistry;
|
|
394
355
|
live: LiveRegistry;
|
|
395
|
-
/** Omitted by the outermost call, which starts an empty one; every recursion threads it down. */
|
|
396
356
|
cache?: ResolveCache;
|
|
397
357
|
},
|
|
398
358
|
): Promise<unknown> {
|
|
@@ -406,7 +366,7 @@ export class SignalContext<
|
|
|
406
366
|
);
|
|
407
367
|
const valueRecord = value as RuntimeRecord;
|
|
408
368
|
const resolvedValue = {} as RuntimeRecord;
|
|
409
|
-
|
|
369
|
+
|
|
410
370
|
const pending: Promise<void>[] = [];
|
|
411
371
|
const assign = (key: string, resolved: Promise<unknown>) =>
|
|
412
372
|
pending.push(
|
|
@@ -536,7 +496,7 @@ export class SignalContext<
|
|
|
536
496
|
const refName = ConstantRegistry.getRefName(modelRef as ConstantCls);
|
|
537
497
|
const service = live.service.get(refName) as unknown as DatabaseService;
|
|
538
498
|
if (!service) throw new Error(`Service ${refName} is not registered`);
|
|
539
|
-
|
|
499
|
+
|
|
540
500
|
const resolved =
|
|
541
501
|
value === null || value === undefined
|
|
542
502
|
? null
|
|
@@ -554,13 +514,7 @@ export class SignalContext<
|
|
|
554
514
|
if (resolved === null && !nullable) throw new Error(`Document ${value} is not found`);
|
|
555
515
|
return resolved;
|
|
556
516
|
}
|
|
557
|
-
|
|
558
|
-
* The resolved subtree for one document, computed once per response.
|
|
559
|
-
*
|
|
560
|
-
* A listing whose rows share a relation — twenty users with the same avatar — otherwise loads, `toJSON`s and
|
|
561
|
-
* walks that document once per row, and every copy is identical by construction. The promise is what is
|
|
562
|
-
* stored, not the value, so rows that ask together coalesce onto the first load instead of racing it.
|
|
563
|
-
*/
|
|
517
|
+
|
|
564
518
|
static #resolveOnce(
|
|
565
519
|
cache: ResolveCache,
|
|
566
520
|
modelRef: ConstantFieldTypeInput,
|
|
@@ -586,27 +540,22 @@ export class SignalContext<
|
|
|
586
540
|
}
|
|
587
541
|
if (arrDepth > 0 && Array.isArray(value) && value.length === 0) return [];
|
|
588
542
|
if (arrDepth === 0)
|
|
589
|
-
return await service.__load(String(value)).then((doc) =>
|
|
590
|
-
if (doc === null) {
|
|
591
|
-
if (nullable) return null;
|
|
592
|
-
else throw new Error(`Document ${value} is not found`);
|
|
593
|
-
} else return doc.toJSON();
|
|
594
|
-
});
|
|
543
|
+
return await service.__load(String(value)).then((doc) => SignalContext.#loadedJson(doc, value, nullable));
|
|
595
544
|
if (arrDepth === 1)
|
|
596
|
-
return await service
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
if (nullable) return null;
|
|
600
|
-
else throw new Error(`Document ${value} is not found`);
|
|
601
|
-
} else return doc.toJSON();
|
|
602
|
-
}),
|
|
603
|
-
);
|
|
545
|
+
return await service
|
|
546
|
+
.__loadMany(value as string[])
|
|
547
|
+
.then((docs) => docs.map((doc) => SignalContext.#loadedJson(doc, value, nullable)));
|
|
604
548
|
return await Promise.all(
|
|
605
549
|
(value as unknown[]).map(
|
|
606
550
|
async (v) => await SignalContext.loadNested(v, service, { arrDepth: arrDepth - 1, nullable }),
|
|
607
551
|
),
|
|
608
552
|
);
|
|
609
553
|
}
|
|
554
|
+
static #loadedJson(doc: { toJSON: () => unknown } | null, value: unknown, nullable: boolean) {
|
|
555
|
+
if (doc !== null) return doc.toJSON();
|
|
556
|
+
if (nullable) return null;
|
|
557
|
+
throw new Error(`Document ${value} is not found`);
|
|
558
|
+
}
|
|
610
559
|
getHttpContext<Appended = unknown>() {
|
|
611
560
|
if (this.transport !== "http") throw new Error("Transport is not http");
|
|
612
561
|
return this.ctx as HttpExecutionContext<Appended>;
|
|
@@ -620,18 +569,13 @@ export class SignalContext<
|
|
|
620
569
|
return this.getWebSocketContext<{ [key: string]: T }>().ws.data[key] ?? null;
|
|
621
570
|
}
|
|
622
571
|
/**
|
|
623
|
-
*
|
|
624
|
-
*
|
|
625
|
-
* alone names the wrong machine — which is why nothing here reads it first. IPv4 arrives unwrapped from its
|
|
626
|
-
* `::ffff:` form, so it can be used as a destination as well as an identity.
|
|
627
|
-
*
|
|
628
|
-
* `null` means no proxy recorded one and the transport has no peer to fall back on — never a placeholder,
|
|
629
|
-
* because a loopback-looking address for an unknown caller is the failure this replaced.
|
|
572
|
+
* What a proxy recorded before the socket peer (behind the gateway every peer is the gateway), IPv4 unwrapped from
|
|
573
|
+
* `::ffff:`; `null`, never a placeholder, when neither is known.
|
|
630
574
|
*/
|
|
631
575
|
getClientIp(): string | null {
|
|
632
576
|
if (this.transport === "http") {
|
|
633
577
|
const { req } = this.getHttpContext();
|
|
634
|
-
|
|
578
|
+
|
|
635
579
|
const peer = SignalContext.#httpPeer?.(req);
|
|
636
580
|
return TrustedProxy.clientAddress(req.headers, peer === undefined ? undefined : (peer?.address ?? null));
|
|
637
581
|
}
|
|
@@ -654,16 +598,8 @@ export class SignalContext<
|
|
|
654
598
|
return `${key}${this.args.length ? "-" : ""}${this.args.join("-")}`;
|
|
655
599
|
}
|
|
656
600
|
/**
|
|
657
|
-
*
|
|
658
|
-
*
|
|
659
|
-
* Without them every subscriber of an `inSelf` slice shares one room and receives each other's rows. It cannot
|
|
660
|
-
* be done for pubsub in general: an ordinary room's publisher computes the same id from the arguments it
|
|
661
|
-
* publishes with and has no access to a subscriber's `Self`, so widening the id there would put subscriber and
|
|
662
|
-
* publisher in different rooms. A live room's only publisher is the router, which holds this id already.
|
|
663
|
-
*
|
|
664
|
-
* The token is the argument's own id where it has one — that is what `Self` yields, and a room name never
|
|
665
|
-
* leaves the server — and a digest otherwise, so a credential handed in as an internal argument is not spelled
|
|
666
|
-
* out in a room name that gets logged.
|
|
601
|
+
* Appends the caller's internal arguments so subscribers of an `inSelf` slice do not share a room — only for live
|
|
602
|
+
* rooms, whose sole publisher holds this id. A non-id token is digested so no credential is spelled out in a log.
|
|
667
603
|
*/
|
|
668
604
|
getLiveRoomId(key: string) {
|
|
669
605
|
const base = this.getRoomId(key);
|
|
@@ -689,13 +625,7 @@ export class SignalContext<
|
|
|
689
625
|
}
|
|
690
626
|
return hash.toString(36);
|
|
691
627
|
}
|
|
692
|
-
/**
|
|
693
|
-
* Resolves the declared internal arguments without running guards or the handler.
|
|
694
|
-
*
|
|
695
|
-
* An unsubscribe has to name the same room the subscribe joined, and that id depends on these — but there is
|
|
696
|
-
* nothing to authorize about leaving a room, and re-running the handler to compute a name would issue the
|
|
697
|
-
* slice's query again for nothing.
|
|
698
|
-
*/
|
|
628
|
+
/** Without guards or the handler: an unsubscribe needs the room id, and leaving a room authorizes nothing. */
|
|
699
629
|
async resolveInternalArgs() {
|
|
700
630
|
if (this.internalArgs.length || !this.endpointInfo.internalArgs.length) return this.internalArgs;
|
|
701
631
|
this.internalArgs = await Promise.all(
|
|
@@ -767,26 +697,14 @@ export class HttpExecutionContext<Appended = unknown> {
|
|
|
767
697
|
const args = endpointInfo.args.map((arg) => {
|
|
768
698
|
switch (arg.type) {
|
|
769
699
|
case "param":
|
|
770
|
-
return
|
|
771
|
-
key: arg.name,
|
|
772
|
-
nullable: arg.option?.nullable,
|
|
773
|
-
enum: arg.enum,
|
|
774
|
-
});
|
|
700
|
+
return deserializeArg(arg, this.params[arg.name]);
|
|
775
701
|
case "body":
|
|
776
702
|
if (arg.argRef === Upload) return this.body[arg.name];
|
|
777
|
-
return
|
|
778
|
-
key: arg.name,
|
|
779
|
-
nullable: arg.option?.nullable,
|
|
780
|
-
enum: arg.enum,
|
|
781
|
-
});
|
|
703
|
+
return deserializeArg(arg, this.body[arg.name]);
|
|
782
704
|
case "search": {
|
|
783
705
|
const raw = arg.arrDepth ? this.url.searchParams.getAll(arg.name) : this.url.searchParams.get(arg.name);
|
|
784
706
|
const value = arg.argRef === Any ? HttpExecutionContext.#parseAny(arg.name, raw) : raw;
|
|
785
|
-
const result =
|
|
786
|
-
key: arg.name,
|
|
787
|
-
nullable: arg.option?.nullable,
|
|
788
|
-
enum: arg.enum,
|
|
789
|
-
});
|
|
707
|
+
const result = deserializeArg(arg, value);
|
|
790
708
|
this.searchParams[arg.name] = result;
|
|
791
709
|
return result;
|
|
792
710
|
}
|
|
@@ -825,17 +743,8 @@ export class WebSocketExecutionContext<Appended = unknown> {
|
|
|
825
743
|
const args = endpointInfo.args.map((arg, idx) => {
|
|
826
744
|
switch (arg.type) {
|
|
827
745
|
case "msg":
|
|
828
|
-
return deserialize(arg.argRef, arg.arrDepth, this.data[idx], {
|
|
829
|
-
key: arg.name,
|
|
830
|
-
nullable: arg.option?.nullable,
|
|
831
|
-
enum: arg.enum,
|
|
832
|
-
});
|
|
833
746
|
case "room":
|
|
834
|
-
return
|
|
835
|
-
key: arg.name,
|
|
836
|
-
nullable: arg.option?.nullable,
|
|
837
|
-
enum: arg.enum,
|
|
838
|
-
});
|
|
747
|
+
return deserializeArg(arg, this.data[idx]);
|
|
839
748
|
default:
|
|
840
749
|
return undefined;
|
|
841
750
|
}
|
|
@@ -847,7 +756,7 @@ export class WebSocketExecutionContext<Appended = unknown> {
|
|
|
847
756
|
nullable: endpointInfo.returns.nullable,
|
|
848
757
|
}) as unknown as Response;
|
|
849
758
|
}
|
|
850
|
-
|
|
759
|
+
|
|
851
760
|
on = (event: "disconnect" | "unsubscribe", handler: () => PromiseOrObject<void>) => {
|
|
852
761
|
if (event === "disconnect") this.onDisconnect.add(handler);
|
|
853
762
|
else this.onUnsubscribe.add(handler);
|
package/signal/signalRegistry.ts
CHANGED
|
@@ -23,17 +23,14 @@ export class DatabaseSignal<
|
|
|
23
23
|
SlceCls extends SliceCls = SliceCls,
|
|
24
24
|
SrvrCls extends ServerSignalCls = ServerSignalCls,
|
|
25
25
|
> {
|
|
26
|
-
internal: IntlCls;
|
|
27
|
-
endpoint: EndpCls;
|
|
28
|
-
slice: SlceCls;
|
|
29
|
-
server: SrvrCls;
|
|
30
26
|
serializedSignal: SerializedSignal;
|
|
31
27
|
|
|
32
|
-
constructor(
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
28
|
+
constructor(
|
|
29
|
+
public internal: IntlCls,
|
|
30
|
+
public endpoint: EndpCls,
|
|
31
|
+
public slice: SlceCls,
|
|
32
|
+
public server: SrvrCls,
|
|
33
|
+
) {
|
|
37
34
|
this.serializedSignal = FetchSerializer.serializeDatabaseSignal(slice, endpoint);
|
|
38
35
|
}
|
|
39
36
|
}
|
|
@@ -43,20 +40,17 @@ export class ServiceSignal<
|
|
|
43
40
|
EndpCls extends EndpointCls = EndpointCls,
|
|
44
41
|
SrvrCls extends ServerSignalCls = ServerSignalCls,
|
|
45
42
|
> {
|
|
46
|
-
internal: IntlCls;
|
|
47
|
-
endpoint: EndpCls;
|
|
48
|
-
server: SrvrCls;
|
|
49
43
|
serializedSignal: SerializedSignal;
|
|
50
44
|
|
|
51
|
-
constructor(
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
45
|
+
constructor(
|
|
46
|
+
public internal: IntlCls,
|
|
47
|
+
public endpoint: EndpCls,
|
|
48
|
+
public server: SrvrCls,
|
|
49
|
+
) {
|
|
55
50
|
this.serializedSignal = FetchSerializer.serializeServiceSignal(endpoint);
|
|
56
51
|
}
|
|
57
52
|
}
|
|
58
53
|
|
|
59
|
-
/** Registry for database and service signals used by routing and fetch serialization. */
|
|
60
54
|
export class SignalRegistry {
|
|
61
55
|
static readonly #database = new Map<string, DatabaseSignal<InternalCls, EndpointCls, SliceCls, ServerSignalCls>>();
|
|
62
56
|
static readonly #service = new Map<string, ServiceSignal<InternalCls, EndpointCls, ServerSignalCls>>();
|
package/signal/slice.ts
CHANGED
|
@@ -41,7 +41,7 @@ export type SliceCls<
|
|
|
41
41
|
mcp: ResolvedSliceMcp;
|
|
42
42
|
};
|
|
43
43
|
|
|
44
|
-
/**
|
|
44
|
+
/** `root` is absent: it rides on the root slice itself. */
|
|
45
45
|
export interface ResolvedSliceMcp {
|
|
46
46
|
get: boolean;
|
|
47
47
|
create: boolean;
|
|
@@ -59,13 +59,8 @@ interface RootSliceOption {
|
|
|
59
59
|
remove?: GuardCls | GuardCls[];
|
|
60
60
|
};
|
|
61
61
|
/**
|
|
62
|
-
*
|
|
63
|
-
*
|
|
64
|
-
* catalogue and nothing else. `create`/`update`/`remove` fall back to `cru` the same way their guards do, and
|
|
65
|
-
* the bare `false` is every key at once.
|
|
66
|
-
*
|
|
67
|
-
* A named slice and a custom endpoint declare their own `mcp` in their own signal option, exactly as they
|
|
68
|
-
* declare their own guards. This is curation, not authorization: HTTP is unchanged.
|
|
62
|
+
* Keyed like `guards`, for the root slice and generated CRUD only; `create`/`update`/`remove` fall back to `cru`
|
|
63
|
+
* and a bare boolean sets every key. Curation, not authorization: HTTP is unchanged.
|
|
69
64
|
*/
|
|
70
65
|
mcp?:
|
|
71
66
|
| boolean
|
|
@@ -102,7 +97,6 @@ type ExtendSliceInfoObj<
|
|
|
102
97
|
: never;
|
|
103
98
|
};
|
|
104
99
|
|
|
105
|
-
/** Builds database-backed slice APIs for list, insight, init, view, edit, create, update, and remove flows. */
|
|
106
100
|
export function slice<
|
|
107
101
|
SrvModule extends ServiceModel,
|
|
108
102
|
BuildSlice extends SliceBuilder<SrvModule>,
|
|
@@ -148,7 +142,7 @@ export function slice<
|
|
|
148
142
|
const rootGuards = toGuards(option.guards?.root);
|
|
149
143
|
const getGuards = toGuards(option.guards?.get);
|
|
150
144
|
const cruGuards = toGuards(option.guards?.cru);
|
|
151
|
-
|
|
145
|
+
|
|
152
146
|
const createGuards = option.guards?.create ? toGuards(option.guards.create) : cruGuards;
|
|
153
147
|
const updateGuards = option.guards?.update ? toGuards(option.guards.update) : cruGuards;
|
|
154
148
|
const removeGuards = option.guards?.remove ? toGuards(option.guards.remove) : cruGuards;
|
|
@@ -177,7 +171,7 @@ export function slice<
|
|
|
177
171
|
static mcp = mcp;
|
|
178
172
|
static [SLICE_META] = Object.assign(
|
|
179
173
|
{
|
|
180
|
-
|
|
174
|
+
|
|
181
175
|
[""]: init({ guards: rootGuards, ...(mcpOption?.root === false ? { mcp: false } : {}) })
|
|
182
176
|
.search<"queryKey", string>("queryKey", String)
|
|
183
177
|
.search<"args", unknown[]>("args", Any)
|
|
@@ -185,7 +179,7 @@ export function slice<
|
|
|
185
179
|
try {
|
|
186
180
|
return resolveFilterQuery(filterRef, queryKey, args);
|
|
187
181
|
} catch (error) {
|
|
188
|
-
|
|
182
|
+
|
|
189
183
|
if (error instanceof FilterQueryError) throw new Exception.BadRequest(error.message);
|
|
190
184
|
throw error;
|
|
191
185
|
}
|
package/signal/sliceInfo.ts
CHANGED
|
@@ -23,42 +23,17 @@ import {
|
|
|
23
23
|
import type { InternalArgCls } from "./internalArg";
|
|
24
24
|
import type { CnstFull, CnstInput, CnstInsight, CnstLight, DbFilter, SignalOption, SrvMap, SrvRefName } from "./types";
|
|
25
25
|
|
|
26
|
-
/**
|
|
27
|
-
* What a slice declares when it opts into live sync. Nothing here is required — `.live()` on its own is the whole
|
|
28
|
-
* opt-in, and every default below is the conservative reading.
|
|
29
|
-
*/
|
|
30
26
|
export interface LiveSliceOption<ArgName extends string = string> {
|
|
31
27
|
/**
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
* `latest` is `{ createdAt: -1 }` on a real column, which a client compares identically. A key that sorts on a
|
|
36
|
-
* field inside `_doc` is checked at boot and warned about: SQLite orders those by SQL value and Postgres by
|
|
37
|
-
* jsonb type, so the two servers do not even agree with each other.
|
|
28
|
+
* Keys a client may place a new row under itself (default `["latest"]`); any other sort refetches. A key on a
|
|
29
|
+
* `_doc` field is warned about at boot: SQLite orders it by SQL value and Postgres by jsonb type.
|
|
38
30
|
*/
|
|
39
31
|
sort?: string[];
|
|
40
|
-
/**
|
|
41
|
-
* Downgrades this slice to invalidation only: subscribers are told their list moved and refetch, and no
|
|
42
|
-
* membership is evaluated. Required for a query holding `q.raw()`, `q.search()`, or `exists`/`missing` on a
|
|
43
|
-
* `_doc` field, none of which can be answered without the database.
|
|
44
|
-
*/
|
|
32
|
+
/** Invalidation only: subscribers refetch. Required for `q.raw()`, `q.search()` or `exists`/`missing` on `_doc`. */
|
|
45
33
|
fallback?: "invalidate";
|
|
46
34
|
/** `light` sends the row and costs nothing to apply; `id` sends the id alone for a room where the row is bulky. */
|
|
47
35
|
payload?: "light" | "id";
|
|
48
|
-
/**
|
|
49
|
-
* The arguments that switch live sync off for as long as they carry a value, named for this slice.
|
|
50
|
-
*
|
|
51
|
-
* A filter often builds a different query shape depending on what it was handed — `search ? q.search(text) : {}`
|
|
52
|
-
* is the common one — so the same slice is routable blank and unroutable with text in the box. Naming the
|
|
53
|
-
* argument makes that explicit: the client opens no room while it is filled and the window updates by
|
|
54
|
-
* refetching, which is what a slice with no `.live()` at all does. Clearing it opens the room again.
|
|
55
|
-
*
|
|
56
|
-
* Only a nullable argument can be named, which in practice means a `search`: a `param` is always present, so
|
|
57
|
-
* naming one would switch live off for good. That is refused at boot rather than left to be discovered.
|
|
58
|
-
*
|
|
59
|
-
* This is not `fallback`. `fallback: "invalidate"` keeps the room and gives up precision — every write on the
|
|
60
|
-
* model tells the room to refetch. `pauseOn` gives up the room and keeps precision everywhere else.
|
|
61
|
-
*/
|
|
36
|
+
/** Nullable arguments that close the room while they carry a value (the list refetches); a `param` is refused. */
|
|
62
37
|
pauseOn?: ArgName[];
|
|
63
38
|
}
|
|
64
39
|
|
|
@@ -136,6 +111,7 @@ export class SliceInfo<
|
|
|
136
111
|
[...ServerArgs, arg: _ServerArg]
|
|
137
112
|
>;
|
|
138
113
|
}
|
|
114
|
+
/** @deprecated Slices are GET queries, which carry no body: `fetch` never sends this argument. Use `.search`. */
|
|
139
115
|
body<
|
|
140
116
|
ArgName extends string,
|
|
141
117
|
ExplicitType = unknown,
|
|
@@ -208,7 +184,6 @@ export class SliceInfo<
|
|
|
208
184
|
ServerArgs
|
|
209
185
|
>;
|
|
210
186
|
}
|
|
211
|
-
/** Opts this slice into live sync. Declaring nothing at all is what keeps a slice out of it entirely. */
|
|
212
187
|
live(option: LiveSliceOption<ArgNames[number]> = {}) {
|
|
213
188
|
if (this.execFn) throw new Error("Query function is already set");
|
|
214
189
|
if (this.liveOption) throw new Error("Live option is already set");
|