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
|
@@ -26,7 +26,7 @@ import {
|
|
|
26
26
|
type RouteModuleSource,
|
|
27
27
|
resolveRouteModule,
|
|
28
28
|
} from "../client/route/resolveRouteModule";
|
|
29
|
-
import {
|
|
29
|
+
import { matchRoutePrefix } from "../common/routeConvention";
|
|
30
30
|
|
|
31
31
|
type RouteModuleKindWithOverrides = "page" | "layout" | "overrides";
|
|
32
32
|
|
|
@@ -116,7 +116,7 @@ export class RouteTreeBuilder {
|
|
|
116
116
|
const candidates = fallbackRoutes
|
|
117
117
|
.map((fallbackRoute) => ({
|
|
118
118
|
fallbackRoute,
|
|
119
|
-
params:
|
|
119
|
+
params: matchRoutePrefix(fallbackRoute.path, pathname),
|
|
120
120
|
}))
|
|
121
121
|
.filter((entry): entry is { fallbackRoute: LayoutFallbackRoute; params: Record<string, string> } =>
|
|
122
122
|
Boolean(entry.params),
|
|
@@ -153,7 +153,6 @@ export class RouteTreeBuilder {
|
|
|
153
153
|
if (!children) throw new Error("No children");
|
|
154
154
|
return children;
|
|
155
155
|
}, this.#routeMap);
|
|
156
|
-
if (!targetRouteMap) return;
|
|
157
156
|
|
|
158
157
|
const targetPath = pathSegments[pathSegments.length - 1];
|
|
159
158
|
if (!targetPath) return;
|
|
@@ -261,10 +260,6 @@ export class RouteTreeBuilder {
|
|
|
261
260
|
};
|
|
262
261
|
}
|
|
263
262
|
|
|
264
|
-
/**
|
|
265
|
-
* A `page()` / `layout()` chain is unfolded into the named-export shape the rest of this file reads. The legacy
|
|
266
|
-
* shape still loads, and is named once per module so an app finds every file the migration guide covers.
|
|
267
|
-
*/
|
|
268
263
|
static #resolveModule(key: string, kind: RouteModuleKindWithOverrides, mod: RouteModuleSource): ResolvedRouteModule {
|
|
269
264
|
if (kind === "overrides") return { module: mod as RouteModule };
|
|
270
265
|
const parsed = parseRouteModuleKey(key);
|
|
@@ -280,7 +275,6 @@ export class RouteTreeBuilder {
|
|
|
280
275
|
|
|
281
276
|
static #validateRouteModuleExports(key: string, kind: RouteModuleKindWithOverrides, mod: RouteModule) {
|
|
282
277
|
if (kind === "overrides") {
|
|
283
|
-
|
|
284
278
|
if (!mod.default) throw new Error(`[route-convention] ${key} generated override wrapper has no default export`);
|
|
285
279
|
return;
|
|
286
280
|
}
|
|
@@ -295,22 +289,25 @@ export class RouteTreeBuilder {
|
|
|
295
289
|
if ("head" in mod && "generateHead" in mod) {
|
|
296
290
|
throw new Error(`[route-convention] head and generateHead cannot both be exported in ${key}`);
|
|
297
291
|
}
|
|
298
|
-
if (
|
|
299
|
-
!parsed.isInternalRootLayout &&
|
|
300
|
-
("head" in mod || "generateHead" in mod) &&
|
|
301
|
-
("metadata" in mod || "generateMetadata" in mod)
|
|
302
|
-
) {
|
|
303
|
-
throw new Error(
|
|
304
|
-
`[route-convention] head/generateHead and metadata/generateMetadata cannot both be exported in ${key}`,
|
|
305
|
-
);
|
|
306
|
-
}
|
|
307
|
-
if ("metadata" in mod && "generateMetadata" in mod) {
|
|
308
|
-
throw new Error(`[route-convention] metadata and generateMetadata cannot both be exported in ${key}`);
|
|
309
|
-
}
|
|
310
292
|
}
|
|
311
293
|
|
|
312
294
|
static #makeRouteRender(key: string, kind: "page" | "layout", loader: () => Promise<RouteModuleSource>): RouteRender {
|
|
313
295
|
const loadModule = RouteTreeBuilder.#makeLazyModule(key, kind, loader);
|
|
296
|
+
const syncFallbacks = (mod: LayoutModule) => {
|
|
297
|
+
routeRender.NotFound = mod.NotFound;
|
|
298
|
+
routeRender.Error = mod.Error;
|
|
299
|
+
return mod;
|
|
300
|
+
};
|
|
301
|
+
const loadSynced = async () => {
|
|
302
|
+
const { module: mod } = await loadModule();
|
|
303
|
+
routeRender.Loading = mod.Loading as never;
|
|
304
|
+
if (kind === "layout") syncFallbacks(mod as LayoutModule);
|
|
305
|
+
return mod;
|
|
306
|
+
};
|
|
307
|
+
const pageConfigOf = async () => {
|
|
308
|
+
const { module: mod } = await loadModule();
|
|
309
|
+
return "pageConfig" in mod ? mod.pageConfig : undefined;
|
|
310
|
+
};
|
|
314
311
|
const routeRender: RouteRender = {
|
|
315
312
|
isAsync: true,
|
|
316
313
|
resolveLoading: async () => {
|
|
@@ -318,60 +315,22 @@ export class RouteTreeBuilder {
|
|
|
318
315
|
routeRender.Loading = mod.Loading as never;
|
|
319
316
|
},
|
|
320
317
|
render: async (props: LayoutProps | PageProps) => {
|
|
321
|
-
const
|
|
322
|
-
routeRender.Loading = mod.Loading as never;
|
|
323
|
-
if (kind === "layout") {
|
|
324
|
-
const layoutMod = mod as LayoutModule;
|
|
325
|
-
routeRender.NotFound = layoutMod.NotFound;
|
|
326
|
-
routeRender.Error = layoutMod.Error;
|
|
327
|
-
}
|
|
318
|
+
const mod = await loadSynced();
|
|
328
319
|
if (!mod.default) throw new Error(`[route-convention] ${key} has no default export`);
|
|
329
320
|
return mod.default(props as never);
|
|
330
321
|
},
|
|
331
322
|
resolveHead: async (props: PageProps) => {
|
|
332
|
-
const
|
|
333
|
-
|
|
334
|
-
if (kind === "layout") {
|
|
335
|
-
const layoutMod = mod as LayoutModule;
|
|
336
|
-
routeRender.NotFound = layoutMod.NotFound;
|
|
337
|
-
routeRender.Error = layoutMod.Error;
|
|
338
|
-
}
|
|
339
|
-
if (mod.generateHead) {
|
|
340
|
-
const head = await mod.generateHead(props);
|
|
341
|
-
if (head !== null && head !== undefined) return resolveHeadExport(head, { includeHeadSnapshot: false });
|
|
342
|
-
}
|
|
343
|
-
if (mod.generateMetadata) {
|
|
344
|
-
const metadata = await mod.generateMetadata(props);
|
|
345
|
-
return metadata === null || metadata === undefined ? metadata : resolveMetadataHead(metadata);
|
|
346
|
-
}
|
|
347
|
-
if (mod.head !== undefined)
|
|
348
|
-
return mod.head === null ? null : resolveHeadExport(mod.head, { includeHeadSnapshot: false });
|
|
349
|
-
return mod.metadata === undefined ? undefined : resolveMetadataHead(mod.metadata);
|
|
323
|
+
const mod = await loadSynced();
|
|
324
|
+
return mod.generateHead ? await mod.generateHead(props) : mod.head;
|
|
350
325
|
},
|
|
351
326
|
};
|
|
352
327
|
if (kind === "page") {
|
|
353
|
-
routeRender.getPageConfig =
|
|
354
|
-
const { module: mod } = await loadModule();
|
|
355
|
-
return "pageConfig" in mod ? mod.pageConfig : undefined;
|
|
356
|
-
};
|
|
328
|
+
routeRender.getPageConfig = pageConfigOf;
|
|
357
329
|
routeRender.getRouteDefinition = async () => (await loadModule()).definition;
|
|
358
330
|
} else {
|
|
359
|
-
routeRender.getLayoutPageConfig =
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
};
|
|
363
|
-
routeRender.resolveNotFound = async () => {
|
|
364
|
-
const mod = (await loadModule()).module as LayoutModule;
|
|
365
|
-
routeRender.NotFound = mod.NotFound;
|
|
366
|
-
routeRender.Error = mod.Error;
|
|
367
|
-
return mod.NotFound;
|
|
368
|
-
};
|
|
369
|
-
routeRender.resolveError = async () => {
|
|
370
|
-
const mod = (await loadModule()).module as LayoutModule;
|
|
371
|
-
routeRender.NotFound = mod.NotFound;
|
|
372
|
-
routeRender.Error = mod.Error;
|
|
373
|
-
return mod.Error;
|
|
374
|
-
};
|
|
331
|
+
routeRender.getLayoutPageConfig = pageConfigOf;
|
|
332
|
+
routeRender.resolveNotFound = async () => syncFallbacks((await loadModule()).module as LayoutModule).NotFound;
|
|
333
|
+
routeRender.resolveError = async () => syncFallbacks((await loadModule()).module as LayoutModule).Error;
|
|
375
334
|
}
|
|
376
335
|
return routeRender;
|
|
377
336
|
}
|
|
@@ -399,22 +358,4 @@ export class RouteTreeBuilder {
|
|
|
399
358
|
return undefined;
|
|
400
359
|
};
|
|
401
360
|
}
|
|
402
|
-
|
|
403
|
-
static #matchRoutePrefix(pattern: string, pathname: string): Record<string, string> | null {
|
|
404
|
-
const patternParts = pattern.split("/").filter(Boolean);
|
|
405
|
-
const pathParts = pathname.split("/").filter(Boolean);
|
|
406
|
-
if (patternParts.length > pathParts.length) return null;
|
|
407
|
-
const params: Record<string, string> = {};
|
|
408
|
-
for (let index = 0; index < patternParts.length; index++) {
|
|
409
|
-
const patternPart = patternParts[index];
|
|
410
|
-
const pathPart = pathParts[index];
|
|
411
|
-
if (!patternPart || !pathPart) return null;
|
|
412
|
-
if (patternPart.startsWith(":")) {
|
|
413
|
-
params[patternPart.slice(1)] = decodeURIComponent(pathPart);
|
|
414
|
-
continue;
|
|
415
|
-
}
|
|
416
|
-
if (patternPart !== pathPart) return null;
|
|
417
|
-
}
|
|
418
|
-
return params;
|
|
419
|
-
}
|
|
420
361
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { dayjs } from "akanjs/base";
|
|
2
|
-
import { type Logger, websocketAuthContract } from "akanjs/common";
|
|
2
|
+
import { type Logger, websocketAuthContract, websocketHeartbeatContract } from "akanjs/common";
|
|
3
3
|
import type { InjectRegistry, LiveRegistry } from "akanjs/service";
|
|
4
4
|
import { isExceptionLike, SignalContext, SignalFailure, type WebsocketReqData } from "akanjs/signal";
|
|
5
5
|
import { compressResponse } from "../contentEncoding";
|
|
@@ -9,12 +9,6 @@ import { SignalResolver } from "../resolver";
|
|
|
9
9
|
import type { HttpRoutes, SignalRouteOptions, WebsocketRoutes } from "../types";
|
|
10
10
|
import { AppWsData } from "./appWsData";
|
|
11
11
|
|
|
12
|
-
/**
|
|
13
|
-
* Minimal render-state view the HMR WS hello message needs.
|
|
14
|
-
* `LazyHmrController` exposes this shape via `state.buildId` / `state.cssAssets`,
|
|
15
|
-
* so the ws handler can greet freshly-connected clients
|
|
16
|
-
* without reaching into the full controller.
|
|
17
|
-
*/
|
|
18
12
|
export interface HmrStateSource {
|
|
19
13
|
readonly state: {
|
|
20
14
|
buildId: number;
|
|
@@ -31,7 +25,6 @@ export interface ApiRouteInputs {
|
|
|
31
25
|
builtinRoutes?: HttpRoutes;
|
|
32
26
|
routeOptions?: Record<string, SignalRouteOptions>;
|
|
33
27
|
renderEnvRoutes: HttpRoutes;
|
|
34
|
-
/** Upgrades the incoming request into an app-signal WebSocket. */
|
|
35
28
|
upgradeAppWs: (req: Request, data: AppWsData) => boolean;
|
|
36
29
|
webProxyRunner?: WebProxyRunner | null;
|
|
37
30
|
}
|
|
@@ -42,7 +35,6 @@ type RouteHandler = (req: Request) => Response | Promise<Response | undefined> |
|
|
|
42
35
|
export interface WebsocketHandlersInputs {
|
|
43
36
|
wsRoutes: WebsocketRoutes;
|
|
44
37
|
registry: InjectRegistry;
|
|
45
|
-
/** Only live rooms need it — a room is released from the routing table when its last socket goes. */
|
|
46
38
|
live?: LiveRegistry;
|
|
47
39
|
hmrHub: HmrWsHub | null;
|
|
48
40
|
hmrState: HmrStateSource | null;
|
|
@@ -53,12 +45,7 @@ export interface WebsocketHandlersInputs {
|
|
|
53
45
|
type WsTaggedData = { kind?: string };
|
|
54
46
|
|
|
55
47
|
export class ApiRouter {
|
|
56
|
-
|
|
57
|
-
* Builds the full route table served by `Bun.serve`. Responsibilities:
|
|
58
|
-
* 1. Expose the WS upgrade endpoint at `<prefix><websocketPrefix>`.
|
|
59
|
-
* 2. Prefix every endpoint-generated route with `prefix`.
|
|
60
|
-
* 3. Merge render-env routes (CSR/SSR) last so they can catch-all `/*`.
|
|
61
|
-
*/
|
|
48
|
+
|
|
62
49
|
static buildRoutes({
|
|
63
50
|
prefix,
|
|
64
51
|
websocketPrefix,
|
|
@@ -71,7 +58,7 @@ export class ApiRouter {
|
|
|
71
58
|
}: ApiRouteInputs): NonNullHttpRoutes {
|
|
72
59
|
const endpointEntries = Object.entries(routes ?? {}).map(
|
|
73
60
|
([p, handler]) =>
|
|
74
|
-
[ApiRouter
|
|
61
|
+
[ApiRouter.applyGlobalPrefix(prefix, p, routeOptions?.[p]), ApiRouter.#compressRoute(handler)] as const,
|
|
75
62
|
);
|
|
76
63
|
const builtinEntries = Object.entries(builtinRoutes ?? {}).map(
|
|
77
64
|
([path, handler]) => [path, ApiRouter.#compressRoute(handler)] as const,
|
|
@@ -92,12 +79,6 @@ export class ApiRouter {
|
|
|
92
79
|
: routeTable;
|
|
93
80
|
}
|
|
94
81
|
|
|
95
|
-
/**
|
|
96
|
-
* Builds the `websocket` handler config for `Bun.serve`. Multiplexes two
|
|
97
|
-
* logical channels on the same upgrade port:
|
|
98
|
-
* - `kind === "akan-hmr"` — dev HMR, delegated to `HmrWsHub`.
|
|
99
|
-
* - everything else — app signal channel, dispatched via `wsRoutes`.
|
|
100
|
-
*/
|
|
101
82
|
static buildWebsocketHandlers({
|
|
102
83
|
wsRoutes,
|
|
103
84
|
registry,
|
|
@@ -111,7 +92,7 @@ export class ApiRouter {
|
|
|
111
92
|
|
|
112
93
|
drain: () => onDrain?.(),
|
|
113
94
|
open: (ws) => {
|
|
114
|
-
|
|
95
|
+
|
|
115
96
|
const data = ws.data as WsTaggedData | undefined;
|
|
116
97
|
if (data?.kind === "akan-hmr" && hmrHub && hmrState) {
|
|
117
98
|
hmrHub.attach(ws as unknown as Bun.ServerWebSocket<HmrWsData>);
|
|
@@ -137,12 +118,16 @@ export class ApiRouter {
|
|
|
137
118
|
const msg = JSON.parse(message) as WebsocketReqData;
|
|
138
119
|
if (!msg.key) throw new Error("Message key is required");
|
|
139
120
|
if (msg.key === websocketAuthContract.key) {
|
|
140
|
-
|
|
121
|
+
|
|
141
122
|
AppWsData.applyCredential(AppWsData.of(ws), websocketAuthContract.readJwt(msg.data));
|
|
142
123
|
const revokedRooms = await SignalResolver.revalidateWsRooms(ws, registry, live);
|
|
143
124
|
ws.send(JSON.stringify(websocketAuthContract.makeAck(revokedRooms)));
|
|
144
125
|
return;
|
|
145
126
|
}
|
|
127
|
+
if (msg.key === websocketHeartbeatContract.key) {
|
|
128
|
+
ws.send(JSON.stringify(websocketHeartbeatContract.makeAck()));
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
146
131
|
const wsRoute = wsRoutes[msg.key];
|
|
147
132
|
if (!wsRoute) throw new Error(`WebSocket route "${msg.key}" is not registered`);
|
|
148
133
|
const eventType =
|
|
@@ -173,12 +158,12 @@ export class ApiRouter {
|
|
|
173
158
|
};
|
|
174
159
|
}
|
|
175
160
|
|
|
176
|
-
static
|
|
161
|
+
static applyGlobalPrefix(prefix: string, path: string, options?: SignalRouteOptions): string {
|
|
177
162
|
if (options?.globalPrefix === false) return ApiRouter.#normalizeRoutePath(path);
|
|
178
|
-
return ApiRouter
|
|
163
|
+
return ApiRouter.joinRoutePath(prefix, path);
|
|
179
164
|
}
|
|
180
165
|
|
|
181
|
-
static
|
|
166
|
+
static joinRoutePath(prefix: string, path: string): string {
|
|
182
167
|
const normalizedPrefix = ApiRouter.#normalizeRoutePath(prefix).replace(/\/$/, "");
|
|
183
168
|
const normalizedPath = ApiRouter.#normalizeRoutePath(path);
|
|
184
169
|
if (normalizedPrefix === "/") return normalizedPath;
|
|
@@ -203,7 +188,11 @@ export class ApiRouter {
|
|
|
203
188
|
path,
|
|
204
189
|
endpointPaths.has(path) || ApiRouter.#isApiRoute(path, apiPrefix) || ApiRouter.#isInternalRenderRoute(path)
|
|
205
190
|
? route
|
|
206
|
-
: ApiRouter.#
|
|
191
|
+
: ApiRouter.#mapRoute(route, (handler) => async (req) => {
|
|
192
|
+
const result = await runner.run(req);
|
|
193
|
+
if (result.response) return result.response;
|
|
194
|
+
return await handler(copyBunRequestFields(result.request, req));
|
|
195
|
+
}),
|
|
207
196
|
]),
|
|
208
197
|
) as NonNullHttpRoutes;
|
|
209
198
|
}
|
|
@@ -217,27 +206,6 @@ export class ApiRouter {
|
|
|
217
206
|
return path === "/__csr" || path === "/__rsc" || path.startsWith("/__rsc/") || path.startsWith("/_akan/");
|
|
218
207
|
}
|
|
219
208
|
|
|
220
|
-
static #wrapRoute(route: RouteValue, runner: WebProxyRunner): RouteValue {
|
|
221
|
-
return ApiRouter.#mapRoute(route, (handler) => ApiRouter.#wrapHandler(handler, runner));
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
static #wrapHandler(handler: RouteHandler, runner: WebProxyRunner): RouteHandler {
|
|
225
|
-
return async (req) => {
|
|
226
|
-
const result = await runner.run(req);
|
|
227
|
-
if (result.response) return result.response;
|
|
228
|
-
return await handler(copyBunRequestFields(result.request, req));
|
|
229
|
-
};
|
|
230
|
-
}
|
|
231
|
-
|
|
232
|
-
/**
|
|
233
|
-
* Signal endpoints answer with a fully-built JSON body, so this is the one place every model response passes
|
|
234
|
-
* through with the request still in hand. The web routes are deliberately left out: their bodies stream, and
|
|
235
|
-
* `compressResponse` buffers.
|
|
236
|
-
*
|
|
237
|
-
* Behind the gateway this finds `Accept-Encoding: identity` and does nothing — the gateway asks for an
|
|
238
|
-
* identity body because Bun's `fetch` decodes any `Content-Encoding` it is handed, so a child that
|
|
239
|
-
* compressed here would only be paying to have the gateway undo it. The gateway compresses instead.
|
|
240
|
-
*/
|
|
241
209
|
static #compressRoute(route: RouteValue): RouteValue {
|
|
242
210
|
return ApiRouter.#mapRoute(route, (handler) => async (req) => {
|
|
243
211
|
const response = await handler(req);
|
|
@@ -8,16 +8,10 @@ import {
|
|
|
8
8
|
|
|
9
9
|
const CREDENTIAL_HEADERS = ["authorization", "cookie", "user-agent"] as const;
|
|
10
10
|
|
|
11
|
-
/**
|
|
12
|
-
* Credential snapshot taken at the websocket handshake and carried on `ws.data` for the life of the
|
|
13
|
-
* socket, so auth middleware and guards can read the caller the same way they read an HTTP request.
|
|
14
|
-
* Only the credential headers are copied — retaining the whole `Request` would pin it for as long
|
|
15
|
-
* as the socket stays open.
|
|
16
|
-
*/
|
|
17
11
|
export class AppWsData {
|
|
18
12
|
static fromRequest(req: Request): AppWsData {
|
|
19
13
|
const headers = new Headers();
|
|
20
|
-
|
|
14
|
+
|
|
21
15
|
for (const key of [...CREDENTIAL_HEADERS, ...forwardedHeaders]) {
|
|
22
16
|
const value = req.headers.get(key);
|
|
23
17
|
if (value) headers.set(key, value);
|
|
@@ -27,16 +21,11 @@ export class AppWsData {
|
|
|
27
21
|
static of(ws: Bun.ServerWebSocket<unknown>): AppWsData {
|
|
28
22
|
return ws.data as AppWsData;
|
|
29
23
|
}
|
|
30
|
-
/**
|
|
31
|
-
* Swaps the credential the socket authenticates with. Callers must run this synchronously on the
|
|
32
|
-
* auth frame: frames arrive in order, so a subscribe sent right after the credential must not be
|
|
33
|
-
* able to observe the previous one.
|
|
34
|
-
*/
|
|
35
24
|
static applyCredential(data: AppWsData, jwt: string | null) {
|
|
36
25
|
if (jwt) data.headers.set("authorization", `Bearer ${jwt}`);
|
|
37
26
|
else {
|
|
38
27
|
data.headers.delete("authorization");
|
|
39
|
-
|
|
28
|
+
|
|
40
29
|
for (const name of [...data.cookies].map(([name]) => name)) {
|
|
41
30
|
if (isAuthTokenKey(name)) data.cookies.delete(name);
|
|
42
31
|
}
|
|
@@ -50,28 +39,15 @@ export class AppWsData {
|
|
|
50
39
|
headers: Headers;
|
|
51
40
|
cookies: Bun.CookieMap;
|
|
52
41
|
account?: unknown;
|
|
53
|
-
|
|
54
|
-
* Identity of this connection, minted here so every app socket carries one from its first frame and
|
|
55
|
-
* adaptors and endpoints only ever read it. Per-connection and process-local — a reconnect gets a new
|
|
56
|
-
* one, and the federation gateway's own socket is a different one — so it is never a caller identity.
|
|
57
|
-
* It outlives a credential swap on purpose: the socket is still the same socket.
|
|
58
|
-
*/
|
|
42
|
+
|
|
59
43
|
socketId: string;
|
|
60
|
-
|
|
61
|
-
* The caller's address as the nearest proxy recorded it, or null when nothing did.
|
|
62
|
-
*
|
|
63
|
-
* The handshake headers alone cannot say whether a proxy wrote them or the client did, so this trusts them —
|
|
64
|
-
* a socket that reached a child came through the gateway, which already resolved the question. `ipOf` is what
|
|
65
|
-
* an endpoint should read: it has the peer, so it can decide.
|
|
66
|
-
*/
|
|
44
|
+
|
|
67
45
|
get ip(): string | null {
|
|
68
46
|
return clientAddressFromHeaders(this.headers);
|
|
69
47
|
}
|
|
70
|
-
/** The caller's source port as the nearest proxy recorded it, or null when nothing did. */
|
|
71
48
|
get port(): number | null {
|
|
72
49
|
return clientPortFromHeaders(this.headers);
|
|
73
50
|
}
|
|
74
|
-
/** The address to answer on: what a proxy recorded, else this socket's own peer. */
|
|
75
51
|
ipOf(ws: Bun.ServerWebSocket<unknown>): string | null {
|
|
76
52
|
return TrustedProxy.clientAddress(this.headers, ws.remoteAddress);
|
|
77
53
|
}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import type { AkanChildRole, AkanMetricsReport } from "akanjs/service";
|
|
2
|
+
import { AppInfo } from "../ops/appInfo";
|
|
3
|
+
import type { OpsRoute } from "../ops/opsRoute";
|
|
2
4
|
import type { HttpRoutes } from "../types";
|
|
3
5
|
|
|
4
6
|
export interface SoloAppStatus {
|
|
@@ -9,14 +11,10 @@ export interface SoloAppStatus {
|
|
|
9
11
|
metrics: AkanMetricsReport;
|
|
10
12
|
}
|
|
11
13
|
|
|
12
|
-
/**
|
|
13
|
-
* The gateway's `/_akan/app/*` surface, answered by a process nothing is proxying. The payload keeps the
|
|
14
|
-
* gateway's own shape — a `children` array with this process as its only entry — so a probe, a k8s check and
|
|
15
|
-
* `akan` tooling read one contract whether or not a gateway is in front.
|
|
16
|
-
*/
|
|
17
14
|
export const createSoloAppRoutes = (
|
|
18
15
|
read: () => SoloAppStatus,
|
|
19
16
|
logStream: { handle(req: Request): Response } | null = null,
|
|
17
|
+
ops: OpsRoute | null = null,
|
|
20
18
|
): HttpRoutes => {
|
|
21
19
|
const child = () => {
|
|
22
20
|
const { role, running, status, port } = read();
|
|
@@ -44,7 +42,9 @@ export const createSoloAppRoutes = (
|
|
|
44
42
|
children: [{ ...child(), metrics: read().metrics }],
|
|
45
43
|
}),
|
|
46
44
|
},
|
|
45
|
+
[AppInfo.publicPath]: { GET: () => AppInfo.handlePublic() },
|
|
47
46
|
"/_akan/bench/ping": { GET: () => new Response("ok") },
|
|
48
47
|
...(logStream ? { "/_akan/app/logs": { GET: (req: Request) => logStream.handle(req) } } : {}),
|
|
48
|
+
...(ops ? { "/_akan/ops/*": (req: Request) => ops.handle(req) } : {}),
|
|
49
49
|
};
|
|
50
50
|
};
|
package/server/rscClient.tsx
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { createElement, type ReactNode, startTransition, type Usable, use, useLayoutEffect, useState } from "react";
|
|
2
2
|
import { hydrateRoot } from "react-dom/client";
|
|
3
3
|
import { createFromReadableStream } from "react-server-dom-webpack/client.browser";
|
|
4
|
+
import type {} from "../client/rscNavigation";
|
|
4
5
|
import {
|
|
5
6
|
type AkanHeadSnapshotV1,
|
|
6
7
|
type AkanRouterStateV1,
|
|
7
8
|
type AkanRscPatchMetadata,
|
|
8
9
|
decodeAkanRouterState,
|
|
10
|
+
isAkanRscPartialCommitEnabled,
|
|
9
11
|
readAkanRouterStateResponseHeader,
|
|
10
12
|
} from "./routeState";
|
|
11
13
|
import { fetchRscNavigationResponse } from "./rscClientFetch";
|
|
@@ -28,10 +30,8 @@ import {
|
|
|
28
30
|
type RscNavigationCacheNode,
|
|
29
31
|
type RscPatchNavigationCacheNode,
|
|
30
32
|
rememberRscCacheNode,
|
|
31
|
-
rememberRscPatchCacheNode,
|
|
32
33
|
resolveCachedRscPatchNavigation,
|
|
33
34
|
} from "./rscNavigationState";
|
|
34
|
-
import { isAkanRscPartialCommitEnabled } from "./rscPartialCommit";
|
|
35
35
|
import { commitAkanSegmentOutletPatch, resetAkanSegmentOutletPatches } from "./rscSegmentOutlet";
|
|
36
36
|
|
|
37
37
|
type InlineRscChunk = [1, string] | [3, string];
|
|
@@ -42,29 +42,17 @@ declare global {
|
|
|
42
42
|
var __RSC_PUSH__: ((type: InlineRscChunk[0], data: string) => void) | undefined;
|
|
43
43
|
var __RSC_CLOSE__: (() => void) | undefined;
|
|
44
44
|
var __AKAN_RSC_INITIAL_STATE__: string | undefined;
|
|
45
|
-
var __AKAN_RSC_NAVIGATE__:
|
|
46
|
-
| ((href: string, options?: { replace?: boolean; scrollToTop?: boolean }) => Promise<void>)
|
|
47
|
-
| undefined;
|
|
48
45
|
var __AKAN_RSC_REFRESH__: ((options?: { buildId?: number }) => Promise<void>) | undefined;
|
|
49
|
-
var __AKAN_RSC_CLEAR_CACHE__: (() => void) | undefined;
|
|
50
|
-
var __AKAN_RSC_IS_FROM_CACHE__: (() => boolean) | undefined;
|
|
51
|
-
var __AKAN_DEV_SYNC_NAVIGATION__: ((href: string, kind: "push" | "replace" | "back" | "pop") => void) | undefined;
|
|
52
|
-
var __AKAN_DEV_SYNC_NAVIGATION_APPLYING__: boolean | undefined;
|
|
53
|
-
var __AKAN_GET_SYNC_ROUTE_HREF__: ((href: string) => string) | undefined;
|
|
54
46
|
}
|
|
55
47
|
|
|
56
|
-
function
|
|
57
|
-
|
|
48
|
+
function decodeInlineRscChunk([type, data]: InlineRscChunk): Uint8Array {
|
|
49
|
+
if (type === 1) return new TextEncoder().encode(data);
|
|
50
|
+
const binary = atob(data);
|
|
58
51
|
const bytes = new Uint8Array(binary.length);
|
|
59
52
|
for (let i = 0; i < binary.length; i++) bytes[i] = binary.charCodeAt(i);
|
|
60
53
|
return bytes;
|
|
61
54
|
}
|
|
62
55
|
|
|
63
|
-
function decodeInlineRscChunk([type, data]: InlineRscChunk): Uint8Array {
|
|
64
|
-
if (type === 1) return new TextEncoder().encode(data);
|
|
65
|
-
return decodeBase64(data);
|
|
66
|
-
}
|
|
67
|
-
|
|
68
56
|
type RscThenable = Promise<ReactNode> & {
|
|
69
57
|
status?: "pending" | "fulfilled" | "rejected";
|
|
70
58
|
value?: ReactNode;
|
|
@@ -82,6 +70,7 @@ type RscFetchResult =
|
|
|
82
70
|
outletKey: string;
|
|
83
71
|
headSnapshot: AkanHeadSnapshotV1;
|
|
84
72
|
}
|
|
73
|
+
| { type: "not-found" }
|
|
85
74
|
| { type: "redirected"; status?: number };
|
|
86
75
|
const MAX_RSC_CACHE_ENTRIES = 32;
|
|
87
76
|
let documentNavigationFallbackInFlight = false;
|
|
@@ -93,6 +82,13 @@ class RscRedirectNavigationStarted extends Error {
|
|
|
93
82
|
}
|
|
94
83
|
}
|
|
95
84
|
|
|
85
|
+
class RscRouteNotFound extends Error {
|
|
86
|
+
constructor(readonly href: string) {
|
|
87
|
+
super(`[rscClient] no route at ${href}`);
|
|
88
|
+
this.name = "RscRouteNotFound";
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
96
92
|
function createInitialRscStream(): ReadableStream<Uint8Array> {
|
|
97
93
|
return new ReadableStream<Uint8Array>({
|
|
98
94
|
start(controller) {
|
|
@@ -115,17 +111,6 @@ function normalizeHref(href: string): string {
|
|
|
115
111
|
return new URL(href, window.location.origin).href;
|
|
116
112
|
}
|
|
117
113
|
|
|
118
|
-
/**
|
|
119
|
-
* Mirror React's thenable protocol (status/value/reason) onto the Flight thenable.
|
|
120
|
-
*
|
|
121
|
-
* Without this, `use(thenable)` cannot tell an already-resolved native Promise apart
|
|
122
|
-
* from a pending one: it suspends the root transition once and relies on React's
|
|
123
|
-
* ping -> retry -> re-commit path. That path intermittently lost the re-commit when
|
|
124
|
-
* sync store updates raced the suspended transition, leaving the previous page DOM
|
|
125
|
-
* visible even though the navigation pipeline completed. With the status tracked,
|
|
126
|
-
* `use()` returns the fulfilled payload synchronously and the committed transition
|
|
127
|
-
* renders the new tree in a single pass.
|
|
128
|
-
*/
|
|
129
114
|
function trackRscThenable(thenable: RscThenable): RscThenable {
|
|
130
115
|
if (thenable.status !== undefined) return thenable;
|
|
131
116
|
thenable.status = "pending";
|
|
@@ -189,9 +174,7 @@ function commitRscPatchNavigation({
|
|
|
189
174
|
startTransition(() => {
|
|
190
175
|
try {
|
|
191
176
|
headApplied = commitPreparedAkanHeadSnapshotPatch(preparedHeadPatch);
|
|
192
|
-
if (!headApplied)
|
|
193
|
-
return;
|
|
194
|
-
}
|
|
177
|
+
if (!headApplied) return;
|
|
195
178
|
outletCommitted = commitAkanSegmentOutletPatch(patch.outletKey, patchThenable);
|
|
196
179
|
if (!outletCommitted) {
|
|
197
180
|
rollbackPreparedAkanHeadSnapshotPatch(preparedHeadPatch);
|
|
@@ -228,7 +211,7 @@ async function fetchRsc(
|
|
|
228
211
|
sendRouterState: options.sendRouterState,
|
|
229
212
|
shouldApplyNavigation,
|
|
230
213
|
});
|
|
231
|
-
if (responseResult.type === "redirected") return responseResult;
|
|
214
|
+
if (responseResult.type === "redirected" || responseResult.type === "not-found") return responseResult;
|
|
232
215
|
if (responseResult.type === "patch") {
|
|
233
216
|
const patchResult = await validateRscPatchForGuardedCommit({
|
|
234
217
|
partialCommitEnabled: isAkanRscPartialCommitEnabled(),
|
|
@@ -364,6 +347,10 @@ function Root(): ReactNode {
|
|
|
364
347
|
shouldApplyNavigation: () => navId === navigationSeq,
|
|
365
348
|
});
|
|
366
349
|
if (next.type === "redirected") return;
|
|
350
|
+
if (next.type === "not-found") {
|
|
351
|
+
console.warn(`[rscClient] refresh target ${target} no longer resolves; keeping the current page`);
|
|
352
|
+
return;
|
|
353
|
+
}
|
|
367
354
|
if (next.type === "patched") return;
|
|
368
355
|
observeRscNavigationNode({
|
|
369
356
|
cache: rscCache,
|
|
@@ -373,7 +360,7 @@ function Root(): ReactNode {
|
|
|
373
360
|
isExpectedNavigationError: (error) => error instanceof RscRedirectNavigationStarted,
|
|
374
361
|
onLatestError: (error) => hardNavigateAfterRscFailure(target, true, error),
|
|
375
362
|
});
|
|
376
|
-
|
|
363
|
+
|
|
377
364
|
await next.node.thenable;
|
|
378
365
|
const committed = commitLatestRscNavigation({
|
|
379
366
|
cache: rscCache,
|
|
@@ -433,7 +420,7 @@ function Root(): ReactNode {
|
|
|
433
420
|
) {
|
|
434
421
|
currentCommitFromCache = true;
|
|
435
422
|
rememberPatchedRouteState(patchResult.tree, patchResult.patchedNode);
|
|
436
|
-
|
|
423
|
+
rememberRscCacheNode(rscPatchCache, cachedPatch, MAX_RSC_CACHE_ENTRIES);
|
|
437
424
|
return;
|
|
438
425
|
}
|
|
439
426
|
}
|
|
@@ -445,6 +432,7 @@ function Root(): ReactNode {
|
|
|
445
432
|
shouldApplyNavigation: () => navId === navigationSeq,
|
|
446
433
|
});
|
|
447
434
|
if (fetched.type === "redirected") return;
|
|
435
|
+
if (fetched.type === "not-found") throw new RscRouteNotFound(target);
|
|
448
436
|
if (fetched.type === "patched") {
|
|
449
437
|
if (navId !== navigationSeq) return;
|
|
450
438
|
if (
|
|
@@ -465,7 +453,7 @@ function Root(): ReactNode {
|
|
|
465
453
|
outletKey: fetched.outletKey,
|
|
466
454
|
headSnapshot: fetched.headSnapshot,
|
|
467
455
|
});
|
|
468
|
-
if (patchCacheNode)
|
|
456
|
+
if (patchCacheNode) rememberRscCacheNode(rscPatchCache, patchCacheNode, MAX_RSC_CACHE_ENTRIES);
|
|
469
457
|
return;
|
|
470
458
|
}
|
|
471
459
|
rscPatchCache.delete(target);
|
|
@@ -476,6 +464,7 @@ function Root(): ReactNode {
|
|
|
476
464
|
shouldApplyNavigation: () => navId === navigationSeq,
|
|
477
465
|
});
|
|
478
466
|
if (fallback.type === "redirected") return;
|
|
467
|
+
if (fallback.type === "not-found") throw new RscRouteNotFound(target);
|
|
479
468
|
if (fallback.type === "patched") throw new Error("[rscClient] full fallback unexpectedly returned a patch");
|
|
480
469
|
nextNode = fallback.node;
|
|
481
470
|
} else {
|
|
@@ -492,7 +481,7 @@ function Root(): ReactNode {
|
|
|
492
481
|
isExpectedNavigationError: (error) => error instanceof RscRedirectNavigationStarted,
|
|
493
482
|
onLatestError: (error) => hardNavigateAfterRscFailure(target, options.replace, error),
|
|
494
483
|
});
|
|
495
|
-
|
|
484
|
+
|
|
496
485
|
await nextNode.thenable;
|
|
497
486
|
const committed = commitLatestRscNavigation({
|
|
498
487
|
cache: rscCache,
|
|
@@ -517,6 +506,8 @@ function Root(): ReactNode {
|
|
|
517
506
|
if (committed) rememberCommittedRouteState(nextNode);
|
|
518
507
|
} catch (error) {
|
|
519
508
|
if (error instanceof RscRedirectNavigationStarted) return;
|
|
509
|
+
|
|
510
|
+
if (error instanceof RscRouteNotFound) throw error;
|
|
520
511
|
if (navId === navigationSeq) hardNavigateAfterRscFailure(target, options.replace, error);
|
|
521
512
|
}
|
|
522
513
|
};
|
|
@@ -525,7 +516,10 @@ function Root(): ReactNode {
|
|
|
525
516
|
}
|
|
526
517
|
|
|
527
518
|
window.addEventListener("popstate", () => {
|
|
528
|
-
|
|
519
|
+
|
|
520
|
+
void globalThis
|
|
521
|
+
.__AKAN_RSC_NAVIGATE__?.(window.location.href, { replace: true, scrollToTop: false })
|
|
522
|
+
?.catch((error: unknown) => hardNavigateAfterRscFailure(window.location.href, true, error));
|
|
529
523
|
window.setTimeout(() => {
|
|
530
524
|
if (globalThis.__AKAN_DEV_SYNC_NAVIGATION_APPLYING__) return;
|
|
531
525
|
const href = globalThis.__AKAN_GET_SYNC_ROUTE_HREF__?.(window.location.href) ?? window.location.href;
|
package/server/rscClientFetch.ts
CHANGED
|
@@ -5,11 +5,10 @@ import {
|
|
|
5
5
|
readAkanRscPatchMetadataResponseHeaders,
|
|
6
6
|
} from "./routeState";
|
|
7
7
|
|
|
8
|
-
type RscNavigate = (href: string, options?: { replace?: boolean; scrollToTop?: boolean }) => Promise<void> | void;
|
|
9
|
-
|
|
10
8
|
export type RscClientFetchResponseResult =
|
|
11
9
|
| { type: "response"; response: Response }
|
|
12
10
|
| { type: "patch"; response: Response; patch: AkanRscPatchMetadata }
|
|
11
|
+
| { type: "not-found" }
|
|
13
12
|
| { type: "redirected"; status?: number };
|
|
14
13
|
|
|
15
14
|
export async function fetchRscNavigationResponse(
|
|
@@ -17,7 +16,7 @@ export async function fetchRscNavigationResponse(
|
|
|
17
16
|
options: {
|
|
18
17
|
buildId?: number;
|
|
19
18
|
currentRouterState: AkanRouterStateV1 | null;
|
|
20
|
-
navigate?:
|
|
19
|
+
navigate?: (href: string, options?: { replace?: boolean; scrollToTop?: boolean }) => Promise<void> | void;
|
|
21
20
|
sendRouterState?: boolean;
|
|
22
21
|
shouldApplyNavigation?: () => boolean;
|
|
23
22
|
},
|
|
@@ -41,6 +40,11 @@ export async function fetchRscNavigationResponse(
|
|
|
41
40
|
if (shouldApplyNavigation()) await options.navigate?.(redirect, { replace: method !== "push", scrollToTop: true });
|
|
42
41
|
return { type: "redirected", status };
|
|
43
42
|
}
|
|
43
|
+
|
|
44
|
+
if (response.status === 404) {
|
|
45
|
+
await response.body?.cancel();
|
|
46
|
+
return { type: "not-found" };
|
|
47
|
+
}
|
|
44
48
|
if (response.headers.get("X-Akan-Rsc-Partial") === "patch") {
|
|
45
49
|
const patch = readAkanRscPatchMetadataResponseHeaders(response.headers);
|
|
46
50
|
if (options.sendRouterState === false) throw new Error("[rscClient] RSC full fallback returned a patch response");
|