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/server/animatedImage.ts
CHANGED
|
@@ -1,9 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
* `Bun.Image.metadata()` reports only `{ width, height, format }` — there is no frame count — and an
|
|
3
|
-
* animated GIF decodes to its first frame without erroring. So an optimizer that re-encodes whatever
|
|
4
|
-
* decodes would silently drop the animation. These readers answer the question from the container bytes
|
|
5
|
-
* instead, so an animated source can be passed through untouched.
|
|
6
|
-
*/
|
|
1
|
+
|
|
7
2
|
|
|
8
3
|
/** Sub-blocks are a `[length][bytes]…[0]` chain, so a frame's payload cannot be skipped by size alone. */
|
|
9
4
|
const skipGifSubBlocks = (buffer: Buffer, start: number): number => {
|
|
@@ -19,10 +14,6 @@ const skipGifSubBlocks = (buffer: Buffer, start: number): number => {
|
|
|
19
14
|
|
|
20
15
|
const colorTableSize = (packed: number): number => ((packed & 0x80) === 0 ? 0 : 3 * 2 ** ((packed & 0x07) + 1));
|
|
21
16
|
|
|
22
|
-
/**
|
|
23
|
-
* Walks the GIF block stream to count image descriptors. Counting raw `0x2C` bytes would overcount —
|
|
24
|
-
* the byte occurs freely inside colour tables and LZW payloads — so every block has to be stepped over.
|
|
25
|
-
*/
|
|
26
17
|
const hasMultipleGifFrames = (buffer: Buffer): boolean => {
|
|
27
18
|
if (buffer.length < 13) return false;
|
|
28
19
|
let offset = 6;
|
|
@@ -77,7 +68,7 @@ export const isAnimatedImage = (buffer: Buffer, contentType: string): boolean =>
|
|
|
77
68
|
if (contentType === "image/png") return hasPngAnimationControl(buffer);
|
|
78
69
|
return false;
|
|
79
70
|
} catch {
|
|
80
|
-
|
|
71
|
+
|
|
81
72
|
return true;
|
|
82
73
|
}
|
|
83
74
|
};
|
|
@@ -6,57 +6,36 @@ import type {
|
|
|
6
6
|
BuilderMessage,
|
|
7
7
|
BuilderReq,
|
|
8
8
|
BuilderRes,
|
|
9
|
+
BuildRouteClientResult,
|
|
9
10
|
BuildRouteResultPayload,
|
|
10
11
|
CssPayload,
|
|
11
12
|
DevBuildStatus,
|
|
12
13
|
PagesBundlePayload,
|
|
13
14
|
} from "./ipcTypes";
|
|
14
|
-
import type { BuildRouteClientResult } from "./manifestTypes";
|
|
15
15
|
|
|
16
16
|
export interface BuilderRpcEventHandlers {
|
|
17
|
-
/**
|
|
18
|
-
* Filesystem batch invalidation from the builder's watcher. The backend
|
|
19
|
-
* should treat this as a hint to clear its route cache and broadcast a
|
|
20
|
-
* dev reload to connected HMR clients.
|
|
21
|
-
*/
|
|
17
|
+
/** A watcher batch changed files: clear the route cache and broadcast a dev reload. */
|
|
22
18
|
onInvalidate?: (event: { kinds: ("code" | "css" | "config")[]; files: string[]; generation?: number }) => void;
|
|
23
|
-
/** Builder proactively recompiled CSS; payload includes base64 bytes. */
|
|
24
19
|
onCssUpdated?: (css: CssPayload) => void;
|
|
25
|
-
/**
|
|
26
|
-
* Builder emitted a freshly bundled `pages-*.js`. Backend should
|
|
27
|
-
* re-import it (e.g. by calling `RscWorker.reload({ pagesBundlePath,
|
|
28
|
-
* buildId })`) so new user code takes effect without spawning a new
|
|
29
|
-
* worker subprocess.
|
|
30
|
-
*/
|
|
20
|
+
/** A fresh `pages-*.js` bundle: re-import it in the running worker (`RscWorker.reload`) rather than respawning. */
|
|
31
21
|
onPagesUpdated?: (bundle: PagesBundlePayload) => void;
|
|
32
|
-
/** Builder reported a dev build phase success/failure. */
|
|
33
22
|
onBuildStatus?: (status: DevBuildStatus) => void;
|
|
34
23
|
}
|
|
35
24
|
|
|
36
|
-
/**
|
|
37
|
-
* Typed RPC facade around the raw `BuilderTransport`. Handles the
|
|
38
|
-
* correlation-id bookkeeping (request promise + resolver map) and exposes
|
|
39
|
-
* a narrow surface matching the three builder operations.
|
|
40
|
-
*
|
|
41
|
-
* Only one `BuilderRpc` instance should exist per backend process. It
|
|
42
|
-
* subscribes to the transport at construction and unsubscribes on
|
|
43
|
-
* `dispose()`.
|
|
44
|
-
*/
|
|
25
|
+
/** One per backend process: subscribes to the IPC channel on construction and unsubscribes on `dispose()`. */
|
|
45
26
|
export class BuilderRpc {
|
|
46
27
|
readonly #logger = new Logger("BuilderRpc");
|
|
47
28
|
readonly #pending = new Map<number, { resolve: (v: unknown) => void; reject: (e: Error) => void }>();
|
|
48
29
|
readonly #offMessage: () => void;
|
|
49
|
-
readonly #proc = process;
|
|
50
30
|
readonly #send: (msg: BuilderReq | BuilderCsrReq) => void;
|
|
51
31
|
#nextId = 1;
|
|
52
32
|
#disposed = false;
|
|
53
33
|
|
|
54
34
|
constructor(handlers: BuilderRpcEventHandlers = {}) {
|
|
55
|
-
if (!
|
|
35
|
+
if (!process.send)
|
|
56
36
|
throw new Error("[builder] process.send unavailable — backend must be spawned by the CLI with ipc enabled");
|
|
57
|
-
this.#send =
|
|
37
|
+
this.#send = process.send.bind(process);
|
|
58
38
|
this.#offMessage = this.#listen((msg) => {
|
|
59
|
-
|
|
60
39
|
if (msg.type === "build-route-res" || msg.type === "build-csr-res") {
|
|
61
40
|
const res = msg as BuilderRes | BuilderCsrRes;
|
|
62
41
|
const waiter = this.#pending.get(res.id);
|
|
@@ -66,11 +45,10 @@ export class BuilderRpc {
|
|
|
66
45
|
else waiter.resolve(res.type === "build-route-res" ? res.data : undefined);
|
|
67
46
|
return;
|
|
68
47
|
}
|
|
69
|
-
|
|
70
48
|
const ev = msg as BuilderEvent;
|
|
71
49
|
switch (ev.type) {
|
|
72
50
|
case "builder-ready":
|
|
73
|
-
this.#logger.verbose(
|
|
51
|
+
this.#logger.verbose("[builder] builder ready");
|
|
74
52
|
return;
|
|
75
53
|
case "invalidate":
|
|
76
54
|
handlers.onInvalidate?.({ kinds: ev.kinds, files: ev.files, generation: ev.generation });
|
|
@@ -84,20 +62,21 @@ export class BuilderRpc {
|
|
|
84
62
|
case "build-status":
|
|
85
63
|
handlers.onBuildStatus?.(ev.data);
|
|
86
64
|
return;
|
|
87
|
-
default:
|
|
88
|
-
return;
|
|
89
65
|
}
|
|
90
66
|
});
|
|
91
67
|
}
|
|
92
68
|
|
|
93
69
|
async buildRoute(
|
|
94
70
|
routeId: string,
|
|
95
|
-
{
|
|
71
|
+
{
|
|
72
|
+
seeds,
|
|
73
|
+
graphSeeds,
|
|
74
|
+
knownEntries,
|
|
75
|
+
generation,
|
|
76
|
+
}: { seeds: string[]; graphSeeds?: string[]; knownEntries: Set<string>; generation?: number },
|
|
96
77
|
): Promise<BuildRouteClientResult> {
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
const payload = await this.#request<BuildRouteResultPayload>(id, `build-route ${routeId}`, () =>
|
|
100
|
-
this.#send({ type: "build-route", id, routeId, seeds, knownEntries: [...knownEntries], generation }),
|
|
78
|
+
const payload = await this.#request<BuildRouteResultPayload>(`build-route ${routeId}`, (id) =>
|
|
79
|
+
this.#send({ type: "build-route", id, routeId, seeds, graphSeeds, knownEntries: [...knownEntries], generation }),
|
|
101
80
|
);
|
|
102
81
|
return {
|
|
103
82
|
manifestDelta: payload.manifestDelta,
|
|
@@ -109,39 +88,20 @@ export class BuilderRpc {
|
|
|
109
88
|
};
|
|
110
89
|
}
|
|
111
90
|
|
|
112
|
-
/**
|
|
113
|
-
* Ask the builder to build the dev CSR artifact and keep it in sync from now on. The builder skips
|
|
114
|
-
* CSR by default (a full minified browser-target build of every page, ~350 MB per save), so the
|
|
115
|
-
* first `/__csr` or `?csr=true` request has nothing to serve until this resolves.
|
|
116
|
-
*/
|
|
91
|
+
/** Arms dev CSR, which the builder skips by default (a full browser build per save), and keeps it in sync after. */
|
|
117
92
|
async buildCsr(reason: string): Promise<void> {
|
|
118
|
-
|
|
119
|
-
const id = this.#nextId++;
|
|
120
|
-
await this.#request<void>(id, `build-csr (${reason})`, () => this.#send({ type: "build-csr", id, reason }));
|
|
93
|
+
await this.#request<void>(`build-csr (${reason})`, (id) => this.#send({ type: "build-csr", id, reason }));
|
|
121
94
|
}
|
|
122
95
|
|
|
123
|
-
/**
|
|
124
|
-
* How long to wait for the builder before failing a request. `AKAN_BUILDER_RPC_TIMEOUT_MS` overrides.
|
|
125
|
-
*
|
|
126
|
-
* Generous, because a cold CSR build of every page legitimately takes tens of seconds; the point is not
|
|
127
|
-
* to be tight but to be finite.
|
|
128
|
-
*/
|
|
129
96
|
static #timeoutMs(): number {
|
|
130
97
|
const configured = Number(process.env.AKAN_BUILDER_RPC_TIMEOUT_MS);
|
|
131
98
|
if (Number.isFinite(configured) && configured > 0) return configured;
|
|
132
99
|
return 120_000;
|
|
133
100
|
}
|
|
134
101
|
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
* Nothing answers a request whose builder exits after receiving it: the dev host replies `ok:false` only
|
|
139
|
-
* when the *send* fails, and it does not track in-flight ids. The builder exits routinely — it is recycled
|
|
140
|
-
* every few builds once its RSS passes the ceiling — so a page request that happens to be mid route-build
|
|
141
|
-
* left this promise pending forever, and the browser tab span with no error, no log and nothing to retry.
|
|
142
|
-
* Observed from the other side as a `fetch` that sat for 225s against a 60s budget.
|
|
143
|
-
*/
|
|
144
|
-
async #request<T>(id: number, label: string, send: () => void): Promise<T> {
|
|
102
|
+
async #request<T>(label: string, send: (id: number) => void): Promise<T> {
|
|
103
|
+
if (this.#disposed) throw new Error("[builder] rpc is disposed");
|
|
104
|
+
const id = this.#nextId++;
|
|
145
105
|
const timeoutMs = BuilderRpc.#timeoutMs();
|
|
146
106
|
return await new Promise<T>((resolve, reject) => {
|
|
147
107
|
const timer = setTimeout(() => {
|
|
@@ -164,7 +124,7 @@ export class BuilderRpc {
|
|
|
164
124
|
reject(error);
|
|
165
125
|
},
|
|
166
126
|
});
|
|
167
|
-
send();
|
|
127
|
+
send(id);
|
|
168
128
|
});
|
|
169
129
|
}
|
|
170
130
|
|
|
@@ -181,10 +141,10 @@ export class BuilderRpc {
|
|
|
181
141
|
if (!msg || typeof msg !== "object") return;
|
|
182
142
|
listener(msg as BuilderMessage);
|
|
183
143
|
};
|
|
184
|
-
|
|
144
|
+
process.on("message", handler);
|
|
185
145
|
return () => {
|
|
186
|
-
if (
|
|
187
|
-
else if (
|
|
146
|
+
if (process.off) process.off("message", handler);
|
|
147
|
+
else if (process.removeListener) process.removeListener("message", handler);
|
|
188
148
|
};
|
|
189
149
|
}
|
|
190
150
|
}
|
package/server/artifact/index.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import type { SsrManifest } from "../ssrTypes";
|
|
2
|
+
|
|
1
3
|
export interface BuildRouteResultPayload {
|
|
2
4
|
manifestDelta: Record<string, { id: string; chunks: string[]; name: string; async: boolean }>;
|
|
3
5
|
ssrManifestDelta: Record<string, Record<string, { id: string; chunks: string[]; name: string; async: boolean }>>;
|
|
@@ -9,13 +11,7 @@ export interface BuildRouteResultPayload {
|
|
|
9
11
|
generation?: number;
|
|
10
12
|
}
|
|
11
13
|
|
|
12
|
-
/**
|
|
13
|
-
* Marks a frontend payload that re-announces a freshly booted artifact rather than reporting an edit.
|
|
14
|
-
* A recycled builder rebuilds every artifact from scratch, but a running backend read
|
|
15
|
-
* `base-artifact.json` once at boot and never re-reads it, so the new state has to be pushed. The
|
|
16
|
-
* host drops such a payload when the hashed output did not actually move, which keeps a clean
|
|
17
|
-
* recycle invisible to connected browsers.
|
|
18
|
-
*/
|
|
14
|
+
/** Re-announces a recycled builder's artifact (not an edit); the host drops it when the hashed output did not move. */
|
|
19
15
|
export type BuilderStateReason = "builder-recycle";
|
|
20
16
|
|
|
21
17
|
export interface CssPayload {
|
|
@@ -61,6 +57,7 @@ export type BuilderReq = {
|
|
|
61
57
|
id: number;
|
|
62
58
|
routeId: string;
|
|
63
59
|
seeds: string[];
|
|
60
|
+
graphSeeds?: string[];
|
|
64
61
|
knownEntries: string[];
|
|
65
62
|
generation?: number;
|
|
66
63
|
};
|
|
@@ -69,24 +66,14 @@ export type BuilderRes =
|
|
|
69
66
|
| { type: "build-route-res"; id: number; ok: true; data: BuildRouteResultPayload }
|
|
70
67
|
| { type: "build-route-res"; id: number; ok: false; error: string };
|
|
71
68
|
|
|
72
|
-
/**
|
|
73
|
-
* Dev CSR artifacts are only reachable through the opt-in `/__csr` and `?csr=true` routes (mobile
|
|
74
|
-
* local dev points a device WebView at the latter), so the builder skips them until a request
|
|
75
|
-
* actually needs one. The first such request arms the builder through this pair and waits for the
|
|
76
|
-
* build, after which every save keeps CSR in sync.
|
|
77
|
-
*/
|
|
69
|
+
/** Sent by the first `/__csr` or `?csr=true` request (a device WebView in mobile dev) to arm the lazy dev CSR build. */
|
|
78
70
|
export type BuilderCsrReq = { type: "build-csr"; id: number; reason: string };
|
|
79
71
|
|
|
80
72
|
export type BuilderCsrRes =
|
|
81
73
|
| { type: "build-csr-res"; id: number; ok: true }
|
|
82
74
|
| { type: "build-csr-res"; id: number; ok: false; error: string };
|
|
83
75
|
|
|
84
|
-
/**
|
|
85
|
-
* Asks the builder to finish its queued work and exit, which is the only way bundler memory is
|
|
86
|
-
* returned to the OS (see `BuilderMetrics`). The host's existing restart path brings up a
|
|
87
|
-
* replacement, so a graceful drain — rather than a kill — keeps a rebuild in flight from being
|
|
88
|
-
* truncated.
|
|
89
|
-
*/
|
|
76
|
+
/** Drain and exit (the only way bundler memory returns to the OS); draining, not killing, keeps a rebuild whole. */
|
|
90
77
|
export type BuilderControl = { type: "builder-shutdown"; reason: string };
|
|
91
78
|
|
|
92
79
|
export interface PagesBundlePayload {
|
|
@@ -97,17 +84,9 @@ export interface PagesBundlePayload {
|
|
|
97
84
|
reason?: BuilderStateReason;
|
|
98
85
|
}
|
|
99
86
|
|
|
100
|
-
/**
|
|
101
|
-
* `Bun.build` retains native bundler arenas that `Bun.gc(true)` never reclaims — the JS heap stays flat
|
|
102
|
-
* while RSS climbs. **How much comes back without exiting is platform-specific**: measured on Bun
|
|
103
|
-
* 1.3.14, macOS returns none of it (0% after 60s idle) while Linux purges 46-59% after ~10-15s idle.
|
|
104
|
-
* The dev host recycles past a ceiling to bound the macOS case.
|
|
105
|
-
*
|
|
106
|
-
* Because this is only reported when the builder's queues drain, `rssBytes` is a *peak* sample. On
|
|
107
|
-
* Linux it goes stale within seconds, so the host re-reads the builder's RSS from the OS before acting
|
|
108
|
-
* on it. See `local/optimize-resource/09-linux-retention-measurement.md`.
|
|
109
|
-
*/
|
|
87
|
+
/** `Bun.build` keeps native arenas `Bun.gc(true)` never frees (macOS returns none when idle): hence recycling. */
|
|
110
88
|
export interface BuilderMetrics {
|
|
89
|
+
/** A peak sampled when the queues drain; stale within seconds on Linux, so the host re-reads RSS from the OS. */
|
|
111
90
|
rssBytes: number;
|
|
112
91
|
/** The builder's newest generation; 0 until it has processed a watch batch since spawning. */
|
|
113
92
|
generation: number;
|
|
@@ -116,7 +95,7 @@ export interface BuilderMetrics {
|
|
|
116
95
|
}
|
|
117
96
|
|
|
118
97
|
export type BuilderEvent =
|
|
119
|
-
|
|
98
|
+
|
|
120
99
|
| { type: "builder-ready"; buildId?: string }
|
|
121
100
|
| { type: "backend-ready"; pid: number }
|
|
122
101
|
| {
|
|
@@ -132,3 +111,21 @@ export type BuilderEvent =
|
|
|
132
111
|
| { type: "builder-metrics"; data: BuilderMetrics };
|
|
133
112
|
|
|
134
113
|
export type BuilderMessage = BuilderReq | BuilderRes | BuilderCsrReq | BuilderCsrRes | BuilderControl | BuilderEvent;
|
|
114
|
+
|
|
115
|
+
export interface ClientManifestEntry {
|
|
116
|
+
id: string;
|
|
117
|
+
chunks: string[];
|
|
118
|
+
name: string;
|
|
119
|
+
async?: boolean;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
export type ClientManifest = Record<string, ClientManifestEntry>;
|
|
123
|
+
|
|
124
|
+
export interface BuildRouteClientResult {
|
|
125
|
+
manifestDelta: ClientManifest;
|
|
126
|
+
ssrManifestDelta: SsrManifest;
|
|
127
|
+
newEntries: string[];
|
|
128
|
+
discoveredEntries?: string[];
|
|
129
|
+
clientDeps: string[];
|
|
130
|
+
clientDepsByEntry?: Record<string, string[]>;
|
|
131
|
+
}
|
|
@@ -1,13 +1,9 @@
|
|
|
1
1
|
import { Logger } from "akanjs/common";
|
|
2
2
|
import type { SsrManifest } from "../ssrTypes";
|
|
3
|
-
import type { BuildRouteClientResult, ClientManifest } from "./
|
|
3
|
+
import type { BuildRouteClientResult, ClientManifest } from "./ipcTypes";
|
|
4
4
|
import type { RoutesManifest } from "./routesManifestStore";
|
|
5
5
|
|
|
6
|
-
/**
|
|
7
|
-
* Snapshot of every per-route build's accumulated output for one HMR
|
|
8
|
-
* generation. Callers should take a `snapshot()` before rendering so an
|
|
9
|
-
* invalidate cannot mutate the manifest while a request is consuming it.
|
|
10
|
-
*/
|
|
6
|
+
/** One HMR generation's merged route builds; render from a `snapshot()`, which an invalidate cannot mutate. */
|
|
11
7
|
export interface MergedManifest {
|
|
12
8
|
generation: number;
|
|
13
9
|
clientManifest: ClientManifest;
|
|
@@ -40,12 +36,7 @@ export class RouteClientCache {
|
|
|
40
36
|
readonly #logger = new Logger("RouteClientCache");
|
|
41
37
|
readonly #built = new Map<string, BuildRouteClientResult>();
|
|
42
38
|
readonly #building = new Map<string, PendingBuild>();
|
|
43
|
-
merged: MergedManifest =
|
|
44
|
-
generation: 0,
|
|
45
|
-
clientManifest: {},
|
|
46
|
-
ssrManifest: { moduleLoading: null, moduleMap: {} },
|
|
47
|
-
knownEntries: new Set<string>(),
|
|
48
|
-
};
|
|
39
|
+
merged: MergedManifest = this.#getEmptyMerged(0);
|
|
49
40
|
readonly #buildRoute: RouteBuildFn;
|
|
50
41
|
readonly #onMerge?: OnMergeFn;
|
|
51
42
|
#revision = 0;
|
|
@@ -55,11 +46,7 @@ export class RouteClientCache {
|
|
|
55
46
|
this.#onMerge = onMerge;
|
|
56
47
|
}
|
|
57
48
|
|
|
58
|
-
/**
|
|
59
|
-
* Bumped on every mutation of `merged`, including a delta merge that leaves `generation` where it was. It lets a
|
|
60
|
-
* consumer memoize work derived from the manifest — merging the runtime manifest over it, say — without having to
|
|
61
|
-
* copy the manifest to find out whether anything changed. In production nothing after `seed` moves it at all.
|
|
62
|
-
*/
|
|
49
|
+
/** Bumped on every change to `merged`, even a delta merge that keeps `generation`: a memo key for derived work. */
|
|
63
50
|
get revision(): number {
|
|
64
51
|
return this.#revision;
|
|
65
52
|
}
|
|
@@ -132,7 +119,11 @@ export class RouteClientCache {
|
|
|
132
119
|
);
|
|
133
120
|
return delta;
|
|
134
121
|
}
|
|
135
|
-
for (const [key, row] of Object.entries(delta.manifestDelta))
|
|
122
|
+
for (const [key, row] of Object.entries(delta.manifestDelta)) {
|
|
123
|
+
const previous = this.merged.clientManifest[key];
|
|
124
|
+
if (previous && previous.id !== row.id) delete this.merged.ssrManifest.moduleMap[previous.id];
|
|
125
|
+
this.merged.clientManifest[key] = row;
|
|
126
|
+
}
|
|
136
127
|
for (const [url, byName] of Object.entries(delta.ssrManifestDelta.moduleMap))
|
|
137
128
|
this.merged.ssrManifest.moduleMap[url] = byName;
|
|
138
129
|
for (const entry of delta.newEntries) this.merged.knownEntries.add(entry);
|
|
@@ -145,14 +136,14 @@ export class RouteClientCache {
|
|
|
145
136
|
return delta;
|
|
146
137
|
}
|
|
147
138
|
|
|
139
|
+
#dropBuilt(predicate: (routeId: string) => boolean): string[] {
|
|
140
|
+
const dropped = [...this.#built.keys()].filter((routeId) => predicate(routeId));
|
|
141
|
+
for (const id of dropped) this.#built.delete(id);
|
|
142
|
+
return dropped;
|
|
143
|
+
}
|
|
144
|
+
|
|
148
145
|
invalidate(predicate: (routeId: string) => boolean): string[] {
|
|
149
|
-
const dropped
|
|
150
|
-
for (const id of [...this.#built.keys()]) {
|
|
151
|
-
if (predicate(id)) {
|
|
152
|
-
this.#built.delete(id);
|
|
153
|
-
dropped.push(id);
|
|
154
|
-
}
|
|
155
|
-
}
|
|
146
|
+
const dropped = this.#dropBuilt(predicate);
|
|
156
147
|
if (dropped.length > 0) {
|
|
157
148
|
this.#rebuildKnownEntriesPreservingManifest(this.merged.generation + 1);
|
|
158
149
|
this.#building.clear();
|
|
@@ -163,13 +154,7 @@ export class RouteClientCache {
|
|
|
163
154
|
|
|
164
155
|
invalidateClientEntries({ routePredicate, staleEntries }: InvalidateClientEntriesOptions): string[] {
|
|
165
156
|
const normalizedStaleEntries = new Set([...staleEntries].map((entry) => RouteClientCache.#normalizePath(entry)));
|
|
166
|
-
const dropped
|
|
167
|
-
for (const id of [...this.#built.keys()]) {
|
|
168
|
-
if (routePredicate(id)) {
|
|
169
|
-
this.#built.delete(id);
|
|
170
|
-
dropped.push(id);
|
|
171
|
-
}
|
|
172
|
-
}
|
|
157
|
+
const dropped = this.#dropBuilt(routePredicate);
|
|
173
158
|
if (dropped.length === 0 && normalizedStaleEntries.size === 0) return dropped;
|
|
174
159
|
|
|
175
160
|
this.#rebuildKnownEntriesPreservingManifest(this.merged.generation + 1, normalizedStaleEntries);
|
|
@@ -181,11 +166,7 @@ export class RouteClientCache {
|
|
|
181
166
|
}
|
|
182
167
|
|
|
183
168
|
clear(): string[] {
|
|
184
|
-
const dropped
|
|
185
|
-
for (const id of [...this.#built.keys()]) {
|
|
186
|
-
this.#built.delete(id);
|
|
187
|
-
dropped.push(id);
|
|
188
|
-
}
|
|
169
|
+
const dropped = this.#dropBuilt(() => true);
|
|
189
170
|
const nextGeneration = this.merged.generation + 1;
|
|
190
171
|
this.merged = this.#getEmptyMerged(nextGeneration);
|
|
191
172
|
this.#revision += 1;
|
|
@@ -1,17 +1,7 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
2
|
import { matchRoutePattern } from "akanjs/common";
|
|
3
|
+
import { matchRoutePrefix } from "../../common/routeConvention";
|
|
3
4
|
|
|
4
|
-
/**
|
|
5
|
-
* Runtime counterpart to `akanjs/devkit`'s `routeSeedIndex.ts`. The index
|
|
6
|
-
* itself is computed at build time by the CLI (which walks the `pages`
|
|
7
|
-
* registry and parses loader sources) and serialized to
|
|
8
|
-
* `route-seed-index.json`. The server only loads that JSON at boot and matches
|
|
9
|
-
* incoming pathnames against its route seed entries.
|
|
10
|
-
*
|
|
11
|
-
* Keeping this runtime-safe means `akanjs/server` never has to reach into
|
|
12
|
-
* `app/pages.ts` or Function.prototype.toString() — which is what made the
|
|
13
|
-
* previous in-process computation prone to drifting from the build pipeline.
|
|
14
|
-
*/
|
|
15
5
|
export interface RouteSeedEntry {
|
|
16
6
|
routeId: string;
|
|
17
7
|
pattern: string;
|
|
@@ -69,11 +59,6 @@ export class RouteSeedIndexStore {
|
|
|
69
59
|
};
|
|
70
60
|
}
|
|
71
61
|
|
|
72
|
-
/**
|
|
73
|
-
* Match `pathname` against every registered route pattern using the same
|
|
74
|
-
* `:param` semantics as route tree matching. Returns the first entry that
|
|
75
|
-
* matches, along with the extracted parameters.
|
|
76
|
-
*/
|
|
77
62
|
static match(pathname: string, entries: RouteSeedEntry[]): MatchedRoute | null {
|
|
78
63
|
for (const entry of entries) {
|
|
79
64
|
const params = matchRoutePattern(entry.pattern ?? entry.routeId, pathname);
|
|
@@ -86,7 +71,7 @@ export class RouteSeedIndexStore {
|
|
|
86
71
|
const candidates = entries
|
|
87
72
|
.map((entry) => ({
|
|
88
73
|
entry,
|
|
89
|
-
params:
|
|
74
|
+
params: matchRoutePrefix(entry.pattern ?? entry.routeId, pathname),
|
|
90
75
|
}))
|
|
91
76
|
.filter((entry): entry is { entry: RouteSeedEntry; params: Record<string, string> } => Boolean(entry.params))
|
|
92
77
|
.sort((a, b) => {
|
|
@@ -98,24 +83,6 @@ export class RouteSeedIndexStore {
|
|
|
98
83
|
return candidates[0] ?? null;
|
|
99
84
|
}
|
|
100
85
|
|
|
101
|
-
static #matchRoutePrefix(pattern: string, pathname: string): Record<string, string> | null {
|
|
102
|
-
const patternParts = pattern.split("/").filter(Boolean);
|
|
103
|
-
const pathParts = pathname.split("/").filter(Boolean);
|
|
104
|
-
if (patternParts.length > pathParts.length) return null;
|
|
105
|
-
const params: Record<string, string> = {};
|
|
106
|
-
for (let index = 0; index < patternParts.length; index++) {
|
|
107
|
-
const patternPart = patternParts[index];
|
|
108
|
-
const pathPart = pathParts[index];
|
|
109
|
-
if (!patternPart || !pathPart) return null;
|
|
110
|
-
if (patternPart.startsWith(":")) {
|
|
111
|
-
params[patternPart.slice(1)] = decodeURIComponent(pathPart);
|
|
112
|
-
continue;
|
|
113
|
-
}
|
|
114
|
-
if (patternPart !== pathPart) return null;
|
|
115
|
-
}
|
|
116
|
-
return params;
|
|
117
|
-
}
|
|
118
|
-
|
|
119
86
|
static #normalizeArtifactPath(artifactPath: string, artifactDir: string): string {
|
|
120
87
|
if (path.isAbsolute(artifactPath)) return artifactPath;
|
|
121
88
|
return path.resolve(artifactDir, artifactPath);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import fs from "node:fs";
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
import type { SsrManifest, SsrManifestEntry } from "../ssrTypes";
|
|
4
|
-
import type { ClientManifest } from "./
|
|
4
|
+
import type { ClientManifest } from "./ipcTypes";
|
|
5
5
|
|
|
6
6
|
export interface RoutesManifest {
|
|
7
7
|
routeIds: string[];
|
|
@@ -18,7 +18,9 @@ export class RoutesManifestStore {
|
|
|
18
18
|
return {
|
|
19
19
|
...manifest,
|
|
20
20
|
clientManifest: RoutesManifestStore.#serializeClientManifest(manifest.clientManifest, normalizedArtifactDir),
|
|
21
|
-
ssrManifest: RoutesManifestStore.#
|
|
21
|
+
ssrManifest: RoutesManifestStore.#mapSsrManifest(manifest.ssrManifest, (artifactPath) =>
|
|
22
|
+
RoutesManifestStore.#serializeArtifactPath(artifactPath, normalizedArtifactDir),
|
|
23
|
+
),
|
|
22
24
|
knownEntries: manifest.knownEntries.map((entry) =>
|
|
23
25
|
RoutesManifestStore.#serializeArtifactPath(entry, normalizedArtifactDir),
|
|
24
26
|
),
|
|
@@ -38,8 +40,10 @@ export class RoutesManifestStore {
|
|
|
38
40
|
static normalize(manifest: SerializedRoutesManifest, artifactDir: string): RoutesManifest {
|
|
39
41
|
return {
|
|
40
42
|
...manifest,
|
|
41
|
-
clientManifest:
|
|
42
|
-
ssrManifest: RoutesManifestStore.#
|
|
43
|
+
clientManifest: { ...manifest.clientManifest },
|
|
44
|
+
ssrManifest: RoutesManifestStore.#mapSsrManifest(manifest.ssrManifest, (artifactPath) =>
|
|
45
|
+
RoutesManifestStore.#normalizeArtifactPath(artifactPath, artifactDir),
|
|
46
|
+
),
|
|
43
47
|
knownEntries: (manifest.knownEntries ?? []).map((entry) =>
|
|
44
48
|
RoutesManifestStore.#normalizeStoredPath(entry, artifactDir),
|
|
45
49
|
),
|
|
@@ -54,42 +58,13 @@ export class RoutesManifestStore {
|
|
|
54
58
|
return serialized;
|
|
55
59
|
}
|
|
56
60
|
|
|
57
|
-
static #
|
|
58
|
-
const normalized: ClientManifest = {};
|
|
59
|
-
for (const [key, row] of Object.entries(clientManifest)) {
|
|
60
|
-
normalized[key] = row;
|
|
61
|
-
}
|
|
62
|
-
return normalized;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
static #serializeSsrManifest(ssrManifest: SsrManifest, artifactDir: string): SsrManifest {
|
|
66
|
-
const moduleMap: SsrManifest["moduleMap"] = {};
|
|
67
|
-
for (const [entryUrl, byName] of Object.entries(ssrManifest.moduleMap)) {
|
|
68
|
-
const serializedByName: Record<string, SsrManifestEntry> = {};
|
|
69
|
-
for (const [name, entry] of Object.entries(byName)) {
|
|
70
|
-
serializedByName[name] = {
|
|
71
|
-
...entry,
|
|
72
|
-
id: RoutesManifestStore.#serializeArtifactPath(entry.id, artifactDir),
|
|
73
|
-
chunks: entry.chunks.map((chunk) => RoutesManifestStore.#serializeArtifactPath(chunk, artifactDir)),
|
|
74
|
-
};
|
|
75
|
-
}
|
|
76
|
-
moduleMap[entryUrl] = serializedByName;
|
|
77
|
-
}
|
|
78
|
-
return { ...ssrManifest, moduleMap };
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
static #normalizeSsrManifest(ssrManifest: SsrManifest, artifactDir: string): SsrManifest {
|
|
61
|
+
static #mapSsrManifest(ssrManifest: SsrManifest, mapPath: (artifactPath: string) => string): SsrManifest {
|
|
82
62
|
const moduleMap: SsrManifest["moduleMap"] = {};
|
|
83
63
|
for (const [entryUrl, byName] of Object.entries(ssrManifest.moduleMap)) {
|
|
84
|
-
const
|
|
85
|
-
for (const [name, entry] of Object.entries(byName))
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
id: RoutesManifestStore.#normalizeArtifactPath(entry.id, artifactDir),
|
|
89
|
-
chunks: entry.chunks.map((chunk) => RoutesManifestStore.#normalizeArtifactPath(chunk, artifactDir)),
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
moduleMap[entryUrl] = normalizedByName;
|
|
64
|
+
const mappedByName: Record<string, SsrManifestEntry> = {};
|
|
65
|
+
for (const [name, entry] of Object.entries(byName))
|
|
66
|
+
mappedByName[name] = { ...entry, id: mapPath(entry.id), chunks: entry.chunks.map((chunk) => mapPath(chunk)) };
|
|
67
|
+
moduleMap[entryUrl] = mappedByName;
|
|
93
68
|
}
|
|
94
69
|
return { ...ssrManifest, moduleMap };
|
|
95
70
|
}
|
package/server/binaryPubsub.ts
CHANGED
|
@@ -1,12 +1,5 @@
|
|
|
1
1
|
import { Logger } from "akanjs/common";
|
|
2
2
|
|
|
3
|
-
/**
|
|
4
|
-
* Sends binary pubsub frames and absorbs a slow subscriber. `Server.publish` reports `-1` when the socket is
|
|
5
|
-
* backpressured, `0` when the room has no subscriber, and the byte count otherwise — so a room that cannot
|
|
6
|
-
* keep up parks its newest frame here and every earlier one is dropped, rather than queueing behind the
|
|
7
|
-
* slowest subscriber until the send buffer is the stream. Bun fires `drain` per socket when its buffer
|
|
8
|
-
* empties; that is what flushes the parked frames.
|
|
9
|
-
*/
|
|
10
3
|
export class BinaryPubsub {
|
|
11
4
|
readonly #logger = new Logger("BinaryPubsub");
|
|
12
5
|
readonly #pending = new Map<string, Uint8Array>();
|
|
@@ -27,7 +20,6 @@ export class BinaryPubsub {
|
|
|
27
20
|
this.#pending.set(roomId, frame);
|
|
28
21
|
}
|
|
29
22
|
|
|
30
|
-
/** Retries every parked room. A room still backpressured re-parks itself and waits for the next drain. */
|
|
31
23
|
flush() {
|
|
32
24
|
if (!this.#pending.size) return;
|
|
33
25
|
for (const [roomId, frame] of [...this.#pending]) {
|
|
@@ -40,7 +32,6 @@ export class BinaryPubsub {
|
|
|
40
32
|
this.#pending.clear();
|
|
41
33
|
}
|
|
42
34
|
|
|
43
|
-
/** True when at least one server refused the frame for backpressure, which is the only case worth parking. */
|
|
44
35
|
#send(roomId: string, frame: Uint8Array): boolean {
|
|
45
36
|
let backpressured = false;
|
|
46
37
|
for (const server of this.#servers) {
|