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/cachePolicy.ts
CHANGED
|
@@ -83,16 +83,6 @@ export function resolveAutoRouteCacheTtl(input: {
|
|
|
83
83
|
return normalizeRouteCacheTtl(input.ttl, input.defaultTtl ?? DEFAULT_ROUTE_CACHE_TTL_SECONDS);
|
|
84
84
|
}
|
|
85
85
|
|
|
86
|
-
export function combineMinRevalidate(...values: Array<number | false | null | undefined>): number | false | undefined {
|
|
87
|
-
let out: number | undefined;
|
|
88
|
-
for (const value of values) {
|
|
89
|
-
if (value === undefined || value === null) continue;
|
|
90
|
-
if (value === false) return false;
|
|
91
|
-
out = out === undefined ? value : Math.min(out, value);
|
|
92
|
-
}
|
|
93
|
-
return out;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
86
|
export function getClientFacingOrigin(request: Request, url = new URL(request.url)): string {
|
|
97
87
|
return originFromRequest(request.headers, url);
|
|
98
88
|
}
|
|
@@ -105,6 +95,9 @@ export function isPublicRouteCacheableRequest(request: Request): boolean {
|
|
|
105
95
|
return [...parseCookieHeader(cookie).keys()].every((name) => name === "theme");
|
|
106
96
|
}
|
|
107
97
|
|
|
98
|
+
const isAtOrUnder = (value: string, prefix: string) =>
|
|
99
|
+
value === prefix || value.startsWith(prefix.endsWith("/") ? prefix : `${prefix}/`);
|
|
100
|
+
|
|
108
101
|
export function isRouteCachePathAllowed(
|
|
109
102
|
pathname: string,
|
|
110
103
|
options: { allow?: string | null; deny?: string | null; defaultAllow?: boolean } = {},
|
|
@@ -115,9 +108,7 @@ export function isRouteCachePathAllowed(
|
|
|
115
108
|
.map((prefix) => prefix.trim())
|
|
116
109
|
.filter(Boolean);
|
|
117
110
|
if (prefixes.length === 0) return false;
|
|
118
|
-
return prefixes.some(
|
|
119
|
-
(prefix) => pathname === prefix || pathname.startsWith(prefix.endsWith("/") ? prefix : `${prefix}/`),
|
|
120
|
-
);
|
|
111
|
+
return prefixes.some((prefix) => isAtOrUnder(pathname, prefix));
|
|
121
112
|
};
|
|
122
113
|
if (matches(options.deny)) return false;
|
|
123
114
|
const allow = options.allow ?? "";
|
|
@@ -165,10 +156,6 @@ export function resolvePublicRouteCacheEntryDecision(input: PublicRouteCacheEntr
|
|
|
165
156
|
return { entry: createRouteCacheEntry({ request: input.request, url: input.url, theme: input.theme, ttl }) };
|
|
166
157
|
}
|
|
167
158
|
|
|
168
|
-
export function resolvePublicRouteCacheEntry(input: PublicRouteCacheEntryInput): RouteCacheEntry | null {
|
|
169
|
-
return resolvePublicRouteCacheEntryDecision(input).entry;
|
|
170
|
-
}
|
|
171
|
-
|
|
172
159
|
export function resolveRouteCacheStoreTtl(baseTtl: number, state: RouteCacheRenderState): number | null {
|
|
173
160
|
if (!state.cacheable || state.revalidate === false) return null;
|
|
174
161
|
if (typeof state.revalidate !== "number") return baseTtl;
|
|
@@ -185,7 +172,7 @@ export function shouldStoreRouteCache(input: {
|
|
|
185
172
|
const dynamicUsage = input.dynamicUsage ? { ...input.dynamicUsage } : undefined;
|
|
186
173
|
const routeId = input.policy?.routeId;
|
|
187
174
|
const tags = input.policy ? [...input.policy.tags] : undefined;
|
|
188
|
-
const revalidate =
|
|
175
|
+
const revalidate = input.policy?.revalidate;
|
|
189
176
|
if (input.renderControlType) {
|
|
190
177
|
const reason =
|
|
191
178
|
input.renderControlType === "redirect" && input.lateRedirect
|
|
@@ -215,10 +202,7 @@ export function shouldInvalidateRouteCacheEntry(
|
|
|
215
202
|
if (!path) return false;
|
|
216
203
|
const normalized = path.startsWith("/") ? path : `/${path}`;
|
|
217
204
|
return (
|
|
218
|
-
metadata.pathname
|
|
219
|
-
metadata.pathname.startsWith(normalized.endsWith("/") ? normalized : `${normalized}/`) ||
|
|
220
|
-
metadata.routeId === normalized ||
|
|
221
|
-
Boolean(metadata.routeId?.startsWith(normalized.endsWith("/") ? normalized : `${normalized}/`))
|
|
205
|
+
isAtOrUnder(metadata.pathname, normalized) || (!!metadata.routeId && isAtOrUnder(metadata.routeId, normalized))
|
|
222
206
|
);
|
|
223
207
|
});
|
|
224
208
|
}
|
|
@@ -226,22 +210,13 @@ export function shouldInvalidateRouteCacheEntry(
|
|
|
226
210
|
}
|
|
227
211
|
|
|
228
212
|
export interface LruTtlCacheOptions<T> {
|
|
229
|
-
/**
|
|
230
|
-
* Measures one entry's payload. Entry count alone says nothing about a cache whose entries span
|
|
231
|
-
* three orders of magnitude, and a byte ceiling needs a running total to enforce. The default
|
|
232
|
-
* reports 0 rather than guessing, so `byteSize` stays honest about not knowing.
|
|
233
|
-
*/
|
|
213
|
+
/** Defaults to reporting 0 rather than guessing, so `byteSize` stays honest about not knowing. */
|
|
234
214
|
sizeOf?: (value: T) => number;
|
|
235
215
|
/** Total payload ceiling. 0 leaves the cache bounded only by `maxEntries`. */
|
|
236
216
|
maxBytes?: number;
|
|
237
217
|
/** An entry over this is not stored at all, rather than evicting everything else to fit it. */
|
|
238
218
|
maxEntryBytes?: number;
|
|
239
|
-
/**
|
|
240
|
-
* Cadence of the idle sweep. Without one a filled cache never shrinks: an entry is dropped only
|
|
241
|
-
* when its own key is fetched after expiry or when a write evicts it, so a pod that stops
|
|
242
|
-
* serving holds its peak forever — measured at 100 entries / 21.4 MiB still resident 310s after
|
|
243
|
-
* the last request, with a 30s TTL. 0 disables it.
|
|
244
|
-
*/
|
|
219
|
+
/** Idle sweep cadence; without it a cache nobody reads or writes never releases expired entries. 0 disables it. */
|
|
245
220
|
sweepIntervalMs?: number;
|
|
246
221
|
}
|
|
247
222
|
|
|
@@ -288,7 +263,6 @@ export class LruTtlCache<T> {
|
|
|
288
263
|
return entry.value;
|
|
289
264
|
}
|
|
290
265
|
|
|
291
|
-
/** Returns whether the entry was stored; a payload over `maxEntryBytes` is rejected. */
|
|
292
266
|
set(key: string, value: T, ttlSeconds: number): boolean {
|
|
293
267
|
this.#remove(key);
|
|
294
268
|
const byteLength = LruTtlCache.#measure(this.#sizeOf, value);
|
|
@@ -306,12 +280,6 @@ export class LruTtlCache<T> {
|
|
|
306
280
|
return true;
|
|
307
281
|
}
|
|
308
282
|
|
|
309
|
-
/**
|
|
310
|
-
* Drops every expired entry. Deliberately a full scan rather than a walk from the oldest that
|
|
311
|
-
* stops at the first live entry: insertion order is *LRU* order because `get` reinserts, and TTLs
|
|
312
|
-
* differ per entry, so expiry is not monotonic in map order and an early break would leave
|
|
313
|
-
* expired entries behind. The map is bounded by `maxEntries`, so the scan is cheap.
|
|
314
|
-
*/
|
|
315
283
|
sweepExpired(now = Date.now()): number {
|
|
316
284
|
let removed = 0;
|
|
317
285
|
for (const [key, entry] of this.#entries) {
|
|
@@ -322,7 +290,6 @@ export class LruTtlCache<T> {
|
|
|
322
290
|
return removed;
|
|
323
291
|
}
|
|
324
292
|
|
|
325
|
-
/** Stops the idle sweep. The cache stays usable; only the timer goes away. */
|
|
326
293
|
dispose(): void {
|
|
327
294
|
if (!this.#sweepTimer) return;
|
|
328
295
|
clearInterval(this.#sweepTimer);
|
|
@@ -349,8 +316,7 @@ export class LruTtlCache<T> {
|
|
|
349
316
|
}
|
|
350
317
|
|
|
351
318
|
static parseByteCeiling(value: string | undefined | null, fallback = 0): number {
|
|
352
|
-
|
|
353
|
-
return Number.isFinite(parsed) && parsed > 0 ? parsed : fallback;
|
|
319
|
+
return parsePositiveInt(value) ?? fallback;
|
|
354
320
|
}
|
|
355
321
|
|
|
356
322
|
#remove(key: string): boolean {
|
|
@@ -363,7 +329,7 @@ export class LruTtlCache<T> {
|
|
|
363
329
|
|
|
364
330
|
#removeOldest(): boolean {
|
|
365
331
|
const oldest = this.#entries.keys().next().value;
|
|
366
|
-
if (
|
|
332
|
+
if (oldest === undefined) return false;
|
|
367
333
|
return this.#remove(oldest);
|
|
368
334
|
}
|
|
369
335
|
|
package/server/console.ts
CHANGED
|
@@ -7,7 +7,7 @@ import { type AkanConsoleCommand, AkanConsoleSession } from "./consoleSession";
|
|
|
7
7
|
import { resolveRuntimeDir } from "./lifecycle/runtimeDir";
|
|
8
8
|
import { LogControlUnavailableError, LogTailClient } from "./logging/logTailClient";
|
|
9
9
|
|
|
10
|
-
export
|
|
10
|
+
export { evaluateAkanConsoleInput, isAkanConsoleInputComplete } from "./consoleSession";
|
|
11
11
|
|
|
12
12
|
export interface AkanConsoleOptions {
|
|
13
13
|
prompt?: string;
|
|
@@ -28,10 +28,7 @@ export const parseAkanConsoleQuery = (args: string): Record<string, string> => {
|
|
|
28
28
|
return query;
|
|
29
29
|
};
|
|
30
30
|
|
|
31
|
-
/**
|
|
32
|
-
* `.tail` and `.trace` attach to the *running* server's control socket — the console booted its own
|
|
33
|
-
* `listen: false` server, whose logs are not the ones anybody is looking for.
|
|
34
|
-
*/
|
|
31
|
+
/** Attaches to the running server's control socket, not the console's own `listen: false` server. */
|
|
35
32
|
export const createAkanConsoleLogCommands = (
|
|
36
33
|
appName: string,
|
|
37
34
|
runtimeDir: string,
|
|
@@ -124,16 +121,16 @@ export interface AkanConsoleContext extends Record<string, unknown> {
|
|
|
124
121
|
debug: () => ReturnType<AkanServer["inspectConsole"]>;
|
|
125
122
|
}
|
|
126
123
|
|
|
127
|
-
export const assertAkanConsoleAllowed = (
|
|
128
|
-
env
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
)
|
|
124
|
+
export const assertAkanConsoleAllowed = (env: Partial<Pick<BaseEnv, "environment" | "operationMode">> = {}) => {
|
|
125
|
+
const environment = env.environment ?? ((process.env.AKAN_PUBLIC_ENV ?? "debug") as BaseEnv["environment"]);
|
|
126
|
+
const operationMode =
|
|
127
|
+
env.operationMode ??
|
|
128
|
+
((process.env.AKAN_PUBLIC_OPERATION_MODE ??
|
|
129
|
+
(environment === "local" ? "local" : "cloud")) as BaseEnv["operationMode"]);
|
|
133
130
|
const isProductionLike =
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
131
|
+
environment === "main" ||
|
|
132
|
+
operationMode === "cloud" ||
|
|
133
|
+
operationMode === "edge" ||
|
|
137
134
|
process.env.NODE_ENV === "production";
|
|
138
135
|
if (!isProductionLike || process.env.AKAN_CONSOLE === "1") return;
|
|
139
136
|
|
|
@@ -171,7 +168,7 @@ export const createAkanConsoleContext = (
|
|
|
171
168
|
server: AkanServer,
|
|
172
169
|
globals: Record<string, unknown> = {},
|
|
173
170
|
): AkanConsoleContext => {
|
|
174
|
-
|
|
171
|
+
return {
|
|
175
172
|
server,
|
|
176
173
|
env: server.env,
|
|
177
174
|
get: server.get.bind(server) as AkanServer["get"],
|
|
@@ -182,7 +179,6 @@ export const createAkanConsoleContext = (
|
|
|
182
179
|
debug: () => server.inspectConsole(),
|
|
183
180
|
...globals,
|
|
184
181
|
};
|
|
185
|
-
return context;
|
|
186
182
|
};
|
|
187
183
|
|
|
188
184
|
export const startAkanConsole = async (server: AkanServer, options: AkanConsoleOptions = {}) => {
|
package/server/consoleSession.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { clearLine, createInterface, cursorTo, type Interface } from "node:readline";
|
|
2
2
|
import { inspect } from "node:util";
|
|
3
|
-
import { evaluateAkanConsoleInput, isAkanConsoleInputComplete } from "./consoleEvaluator";
|
|
4
3
|
import { ConsolePasteFilter } from "./consolePasteFilter";
|
|
5
4
|
|
|
6
5
|
export interface AkanConsoleCommand {
|
|
@@ -18,6 +17,58 @@ export interface AkanConsoleSessionOptions {
|
|
|
18
17
|
commands?: Record<string, AkanConsoleCommand>;
|
|
19
18
|
}
|
|
20
19
|
|
|
20
|
+
type AsyncFunctionConstructor = new (...args: string[]) => (scope: object) => Promise<unknown>;
|
|
21
|
+
|
|
22
|
+
const AsyncFunction = Object.getPrototypeOf(async () => {}).constructor as AsyncFunctionConstructor;
|
|
23
|
+
|
|
24
|
+
const incompleteSyntaxMessages = [
|
|
25
|
+
"Unexpected end of script",
|
|
26
|
+
"Unexpected EOF",
|
|
27
|
+
"Unexpected token '}'",
|
|
28
|
+
"Multiline comment was not closed properly",
|
|
29
|
+
"Unexpected end of input",
|
|
30
|
+
"Unterminated",
|
|
31
|
+
] as const;
|
|
32
|
+
|
|
33
|
+
const createScope = (context: Record<string, unknown>) =>
|
|
34
|
+
new Proxy(context, {
|
|
35
|
+
has: () => true,
|
|
36
|
+
get(target, prop) {
|
|
37
|
+
if (prop === Symbol.unscopables) return undefined;
|
|
38
|
+
if (prop in target) return target[prop as keyof typeof target];
|
|
39
|
+
return (globalThis as Record<PropertyKey, unknown>)[prop];
|
|
40
|
+
},
|
|
41
|
+
set(target, prop, value) {
|
|
42
|
+
target[prop as keyof typeof target] = value;
|
|
43
|
+
return true;
|
|
44
|
+
},
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
export const isAkanConsoleInputComplete = (source: string) => {
|
|
48
|
+
const trimmed = source.trim();
|
|
49
|
+
if (!trimmed) return true;
|
|
50
|
+
try {
|
|
51
|
+
new AsyncFunction(trimmed);
|
|
52
|
+
return true;
|
|
53
|
+
} catch (error) {
|
|
54
|
+
if (!(error instanceof SyntaxError)) return true;
|
|
55
|
+
return !incompleteSyntaxMessages.some((message) => error.message.includes(message));
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
export const evaluateAkanConsoleInput = async (source: string, context: Record<string, unknown>) => {
|
|
60
|
+
const trimmed = source.trim();
|
|
61
|
+
if (!trimmed) return undefined;
|
|
62
|
+
const scope = createScope(context);
|
|
63
|
+
|
|
64
|
+
try {
|
|
65
|
+
return await new AsyncFunction("scope", `with (scope) { return await (${trimmed}); }`)(scope);
|
|
66
|
+
} catch (error) {
|
|
67
|
+
if (!(error instanceof SyntaxError)) throw error;
|
|
68
|
+
return await new AsyncFunction("scope", `with (scope) { return await (async () => {\n${trimmed}\n})(); }`)(scope);
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
|
|
21
72
|
const commandNames = new Set([".help", ".globals", ".clear", ".exit", ".quit"]);
|
|
22
73
|
|
|
23
74
|
export class AkanConsoleSession {
|
|
@@ -47,12 +98,10 @@ export class AkanConsoleSession {
|
|
|
47
98
|
this.#commands = options.commands ?? {};
|
|
48
99
|
}
|
|
49
100
|
|
|
50
|
-
/** Runs when the session closes; what a command that holds a connection uses to let go of it. */
|
|
51
101
|
onClose(dispose: () => void) {
|
|
52
102
|
this.#disposers.push(dispose);
|
|
53
103
|
}
|
|
54
104
|
|
|
55
|
-
/** Output that arrives between keystrokes: the prompt line is cleared, the text lands, the prompt redraws. */
|
|
56
105
|
write(text: string) {
|
|
57
106
|
if (this.#closed || !this.#interface) {
|
|
58
107
|
this.#output.write(text);
|
|
@@ -128,7 +177,7 @@ export class AkanConsoleSession {
|
|
|
128
177
|
return;
|
|
129
178
|
}
|
|
130
179
|
if (!force && !isAkanConsoleInputComplete(source)) {
|
|
131
|
-
this.#
|
|
180
|
+
this.#reprompt(this.#continuation);
|
|
132
181
|
return;
|
|
133
182
|
}
|
|
134
183
|
this.#lines = [];
|
|
@@ -212,15 +261,9 @@ export class AkanConsoleSession {
|
|
|
212
261
|
this.#output.write(`${error instanceof Error ? error.stack || error.message : String(error)}\n`);
|
|
213
262
|
}
|
|
214
263
|
|
|
215
|
-
#reprompt() {
|
|
216
|
-
if (this.#closed || !this.#interface) return;
|
|
217
|
-
this.#interface.setPrompt(this.#prompt);
|
|
218
|
-
this.#interface.prompt();
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
#promptContinuation() {
|
|
264
|
+
#reprompt(prompt = this.#prompt) {
|
|
222
265
|
if (this.#closed || !this.#interface) return;
|
|
223
|
-
this.#interface.setPrompt(
|
|
266
|
+
this.#interface.setPrompt(prompt);
|
|
224
267
|
this.#interface.prompt();
|
|
225
268
|
}
|
|
226
269
|
|
|
@@ -7,12 +7,6 @@ const COMPRESSIBLE_TYPES = new Set([
|
|
|
7
7
|
"image/svg+xml",
|
|
8
8
|
]);
|
|
9
9
|
|
|
10
|
-
/**
|
|
11
|
-
* br is tried first: it is ~15% smaller than gzip across the artifact and ~22% on the CSS bundle, and on a
|
|
12
|
-
* model listing it is half of gzip's size at the same cost. The gzip entry stays the fallback because browsers
|
|
13
|
-
* only advertise `br` on secure origins, so a plain-http dev server or an intermediary that rewrites
|
|
14
|
-
* Accept-Encoding still gets a compressed body.
|
|
15
|
-
*/
|
|
16
10
|
export const CONTENT_ENCODINGS = [
|
|
17
11
|
{ encoding: "br", ext: ".br", accept: /(?:^|,)\s*(?:br|\*)(?![\w-])\s*(?:;\s*q=([\d.]+))?/i },
|
|
18
12
|
{ encoding: "gzip", ext: ".gz", accept: /(?:^|,)\s*(?:gzip|\*)(?![\w-])\s*(?:;\s*q=([\d.]+))?/i },
|
|
@@ -28,15 +22,11 @@ export const acceptsEncoding = (acceptEncoding: string, accept: RegExp): boolean
|
|
|
28
22
|
|
|
29
23
|
export const isCompressibleContentType = (contentType: string): boolean => {
|
|
30
24
|
const type = contentType.split(";")[0]?.trim().toLowerCase() ?? "";
|
|
31
|
-
|
|
25
|
+
|
|
32
26
|
if (type === "text/event-stream") return false;
|
|
33
27
|
return type.startsWith("text/") || COMPRESSIBLE_TYPES.has(type);
|
|
34
28
|
};
|
|
35
29
|
|
|
36
|
-
/**
|
|
37
|
-
* Quality 4, not brotli's default 11: on a 132KB model listing q4 lands at 1.4KB in 0.10ms, where q11 spends
|
|
38
|
-
* tens of milliseconds to save a few hundred more bytes. gzip level 6 costs the same 0.10ms and lands at 2.7KB.
|
|
39
|
-
*/
|
|
40
30
|
const BROTLI_QUALITY = 4;
|
|
41
31
|
const GZIP_LEVEL = 6;
|
|
42
32
|
/** Under a KB the framing bytes and the call cost more than the repetition they remove. */
|
|
@@ -52,24 +42,12 @@ const compressBody = (bytes: Uint8Array, encoding: ContentEncoding) =>
|
|
|
52
42
|
})
|
|
53
43
|
: gzipSync(bytes, { level: GZIP_LEVEL });
|
|
54
44
|
|
|
55
|
-
export const negotiateContentEncoding = (req: Request): ContentEncoding | null => {
|
|
56
|
-
if (process.env.AKAN_HTTP_COMPRESS === "false" || process.env.AKAN_HTTP_COMPRESS === "0") return null;
|
|
57
|
-
const acceptEncoding = req.headers.get("accept-encoding") ?? "";
|
|
58
|
-
return CONTENT_ENCODINGS.find(({ accept }) => acceptsEncoding(acceptEncoding, accept))?.encoding ?? null;
|
|
59
|
-
};
|
|
60
|
-
|
|
61
|
-
/**
|
|
62
|
-
* Compresses a fully-materialized response the caller accepts an encoding for, or hands back the original.
|
|
63
|
-
*
|
|
64
|
-
* Buffers the body, so it is only ever applied where the body is already in memory — a signal endpoint's JSON.
|
|
65
|
-
* A streamed response (SSR HTML, an RSC flight payload, an event stream) must not reach this: buffering one
|
|
66
|
-
* would hold the whole render before the first byte, which is the opposite of what streaming it was for.
|
|
67
|
-
*/
|
|
68
45
|
export const compressResponse = async (req: Request, response: Response): Promise<Response> => {
|
|
69
46
|
if (response.headers.has("content-encoding") || !response.body) return response;
|
|
70
|
-
|
|
71
|
-
if (
|
|
72
|
-
const
|
|
47
|
+
if (!isCompressibleContentType(response.headers.get("content-type") ?? "")) return response;
|
|
48
|
+
if (process.env.AKAN_HTTP_COMPRESS === "false" || process.env.AKAN_HTTP_COMPRESS === "0") return response;
|
|
49
|
+
const acceptEncoding = req.headers.get("accept-encoding") ?? "";
|
|
50
|
+
const encoding = CONTENT_ENCODINGS.find(({ accept }) => acceptsEncoding(acceptEncoding, accept))?.encoding;
|
|
73
51
|
if (!encoding) return response;
|
|
74
52
|
const bytes = new Uint8Array(await response.arrayBuffer());
|
|
75
53
|
if (bytes.byteLength < MIN_COMPRESS_BYTES) return new Response(bytes, response);
|
|
@@ -81,3 +59,40 @@ export const compressResponse = async (req: Request, response: Response): Promis
|
|
|
81
59
|
headers.append("Vary", "Accept-Encoding");
|
|
82
60
|
return new Response(compressed, { status: response.status, statusText: response.statusText, headers });
|
|
83
61
|
};
|
|
62
|
+
|
|
63
|
+
export interface EncodedSidecar {
|
|
64
|
+
bytes: ArrayBuffer;
|
|
65
|
+
encoding: string;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
export const resolveEncodedSidecar = async (
|
|
69
|
+
req: Request,
|
|
70
|
+
filePath: string,
|
|
71
|
+
contentType: string,
|
|
72
|
+
): Promise<EncodedSidecar | null> => {
|
|
73
|
+
if (!isCompressibleContentType(contentType)) return null;
|
|
74
|
+
const acceptEncoding = req.headers.get("accept-encoding") ?? "";
|
|
75
|
+
for (const { encoding, ext, accept } of CONTENT_ENCODINGS) {
|
|
76
|
+
if (!acceptsEncoding(acceptEncoding, accept)) continue;
|
|
77
|
+
const file = Bun.file(`${filePath}${ext}`);
|
|
78
|
+
if (!(await file.exists())) continue;
|
|
79
|
+
const bytes = await file.bytes();
|
|
80
|
+
const buffer = bytes.buffer.slice(bytes.byteOffset, bytes.byteOffset + bytes.byteLength) as ArrayBuffer;
|
|
81
|
+
return { bytes: buffer, encoding };
|
|
82
|
+
}
|
|
83
|
+
return null;
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
export const encodedFileResponse = async (
|
|
87
|
+
req: Request,
|
|
88
|
+
filePath: string,
|
|
89
|
+
contentType: string,
|
|
90
|
+
headers: Headers,
|
|
91
|
+
): Promise<Response> => {
|
|
92
|
+
const sidecar = await resolveEncodedSidecar(req, filePath, contentType);
|
|
93
|
+
if (!sidecar) return new Response(Bun.file(filePath).stream(), { headers });
|
|
94
|
+
headers.set("Content-Encoding", sidecar.encoding);
|
|
95
|
+
headers.set("Content-Length", String(sidecar.bytes.byteLength));
|
|
96
|
+
headers.set("Vary", "Accept-Encoding");
|
|
97
|
+
return new Response(sidecar.bytes, { headers });
|
|
98
|
+
};
|
package/server/decorators.ts
CHANGED
|
@@ -1,27 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
* Method decorators for a server class: `@Transaction`, `@Try`, `@CacheMethod`. Kept because `libs/util`'s
|
|
3
|
-
* storage adaptors use `@Try` on their remote calls; new code follows the adaptor rule instead
|
|
4
|
-
* (`catch` → `logger.error` → `return null`).
|
|
5
|
-
*/
|
|
1
|
+
|
|
6
2
|
|
|
7
3
|
type DecoratedInstance = {
|
|
8
|
-
logger?: { warn?: (message: string) => void
|
|
4
|
+
logger?: { warn?: (message: string) => void };
|
|
9
5
|
__database?: { transaction?: <T>(fn: () => Promise<T>) => Promise<T> };
|
|
10
|
-
__databaseModel?: {
|
|
11
|
-
__database?: { transaction?: <T>(fn: () => Promise<T>) => Promise<T> };
|
|
12
|
-
__model?: { modelName: string };
|
|
13
|
-
__cache?: {
|
|
14
|
-
get: (key: string) => Promise<string | null>;
|
|
15
|
-
set: (key: string, value: string, option: unknown) => unknown;
|
|
16
|
-
};
|
|
17
|
-
};
|
|
6
|
+
__databaseModel?: { __database?: { transaction?: <T>(fn: () => Promise<T>) => Promise<T> } };
|
|
18
7
|
database?: { transaction?: <T>(fn: () => Promise<T>) => Promise<T> };
|
|
19
8
|
connection?: { transaction?: <T>(fn: () => Promise<T>) => Promise<T> };
|
|
20
|
-
__model?: { modelName: string };
|
|
21
|
-
__cache?: {
|
|
22
|
-
get: (key: string) => Promise<string | null>;
|
|
23
|
-
set: (key: string, value: string, option: unknown) => unknown;
|
|
24
|
-
};
|
|
25
9
|
};
|
|
26
10
|
|
|
27
11
|
/** Method decorator that catches errors and logs a warning instead of throwing. */
|
|
@@ -30,8 +14,7 @@ export const Try = () => {
|
|
|
30
14
|
const originMethod = descriptor.value as (this: unknown, ...args: unknown[]) => unknown;
|
|
31
15
|
descriptor.value = async function (...args: unknown[]) {
|
|
32
16
|
try {
|
|
33
|
-
|
|
34
|
-
return result;
|
|
17
|
+
return await originMethod.apply(this, args);
|
|
35
18
|
} catch (e) {
|
|
36
19
|
(this as DecoratedInstance).logger?.warn?.(`${key} action error return: ${e}`);
|
|
37
20
|
}
|
|
@@ -53,52 +36,3 @@ export const Transaction = (): MethodDecorator => {
|
|
|
53
36
|
return descriptor;
|
|
54
37
|
}) as MethodDecorator;
|
|
55
38
|
};
|
|
56
|
-
|
|
57
|
-
/**
|
|
58
|
-
* Method decorator that caches method results for the given timeout in milliseconds.
|
|
59
|
-
*
|
|
60
|
-
* Not `Cache` — `akanjs/signal` exports a `Cache` **middleware class**, and an app importing both barrels got
|
|
61
|
-
* one name meaning two things.
|
|
62
|
-
*/
|
|
63
|
-
export const CacheMethod = (timeout = 1000, getCacheKey?: (...args: unknown[]) => string): MethodDecorator => {
|
|
64
|
-
return ((_target: unknown, key: string, descriptor: PropertyDescriptor) => {
|
|
65
|
-
const originMethod = descriptor.value as (this: unknown, ...args: unknown[]) => unknown;
|
|
66
|
-
const cacheMap = new Map<string, unknown>();
|
|
67
|
-
const timerMap = new Map<string, NodeJS.Timeout>();
|
|
68
|
-
descriptor.value = async function (...args: unknown[]) {
|
|
69
|
-
const instance = this as DecoratedInstance;
|
|
70
|
-
const classType = instance.__model ? "doc" : instance.__databaseModel ? "service" : "class";
|
|
71
|
-
const model = instance.__model ?? instance.__databaseModel?.__model;
|
|
72
|
-
const cache = instance.__cache ?? instance.__databaseModel?.__cache;
|
|
73
|
-
const cacheKeyValue = getCacheKey ? getCacheKey(...args) : JSON.stringify(args);
|
|
74
|
-
const cacheKey = `${classType}:${model?.modelName ?? "unknown"}:${key}:${cacheKeyValue}`;
|
|
75
|
-
const getCache = async (cacheKey: string) => {
|
|
76
|
-
if (classType === "class") return cacheMap.get(cacheKey);
|
|
77
|
-
const cached = (await cache?.get(cacheKey)) as string | null;
|
|
78
|
-
if (cached) return JSON.parse(cached);
|
|
79
|
-
return null;
|
|
80
|
-
};
|
|
81
|
-
const setCache = async (cacheKey: string, value: unknown) => {
|
|
82
|
-
if (classType === "class") {
|
|
83
|
-
const existingTimer = timerMap.get(cacheKey);
|
|
84
|
-
if (existingTimer) clearTimeout(existingTimer);
|
|
85
|
-
cacheMap.set(cacheKey, value);
|
|
86
|
-
const timer = setTimeout(() => {
|
|
87
|
-
cacheMap.delete(cacheKey);
|
|
88
|
-
timerMap.delete(cacheKey);
|
|
89
|
-
}, timeout);
|
|
90
|
-
timerMap.set(cacheKey, timer);
|
|
91
|
-
} else await cache?.set(cacheKey, JSON.stringify(value), { PX: timeout });
|
|
92
|
-
};
|
|
93
|
-
const cachedData = await getCache(cacheKey);
|
|
94
|
-
if (cachedData) {
|
|
95
|
-
instance.logger?.trace?.(`${model?.modelName ?? "unknown"} cache hit: ${cacheKey}`);
|
|
96
|
-
return cachedData;
|
|
97
|
-
}
|
|
98
|
-
const result = await originMethod.apply(this, args);
|
|
99
|
-
await setCache(cacheKey, result);
|
|
100
|
-
instance.logger?.trace?.(`${model?.modelName ?? "unknown"} cache set: ${cacheKey}`);
|
|
101
|
-
return result;
|
|
102
|
-
};
|
|
103
|
-
}) as MethodDecorator;
|
|
104
|
-
};
|
|
@@ -24,12 +24,7 @@ import type {
|
|
|
24
24
|
|
|
25
25
|
const modelViewKeys = ["input", "object", "full", "light", "insight"] as const;
|
|
26
26
|
|
|
27
|
-
/**
|
|
28
|
-
* Walks `ConstantRegistry` into the `/_akan/constant` payload.
|
|
29
|
-
*
|
|
30
|
-
* Model references are emitted by name only, never inlined, so a cyclic schema still produces a finite
|
|
31
|
-
* document. Anything the registry holds that JSON cannot express goes through {@link DevtoolsJson}.
|
|
32
|
-
*/
|
|
27
|
+
/** Model references are emitted by name, never inlined, so a cyclic schema still yields a finite document. */
|
|
33
28
|
export class ConstantSerializer {
|
|
34
29
|
static serialize(): ConstantData {
|
|
35
30
|
const models: Record<string, ConstantModelNode> = {};
|
|
@@ -94,7 +89,7 @@ export class ConstantSerializer {
|
|
|
94
89
|
const fieldKind = props.fieldType ?? "property";
|
|
95
90
|
|
|
96
91
|
const redacted = fieldKind === "secret";
|
|
97
|
-
const defaultKind =
|
|
92
|
+
const defaultKind = typeof props.default === "function" ? "function" : props.default == null ? "none" : "value";
|
|
98
93
|
return {
|
|
99
94
|
name,
|
|
100
95
|
fieldKind,
|
|
@@ -125,13 +120,6 @@ export class ConstantSerializer {
|
|
|
125
120
|
};
|
|
126
121
|
}
|
|
127
122
|
|
|
128
|
-
/** `default: () => dayjs()` is idiomatic here — report the factory without ever invoking it. */
|
|
129
|
-
static #resolveDefaultKind(value: unknown): ConstantFieldNode["defaultKind"] {
|
|
130
|
-
if (typeof value === "function") return "function";
|
|
131
|
-
if (value === null || value === undefined) return "none";
|
|
132
|
-
return "value";
|
|
133
|
-
}
|
|
134
|
-
|
|
135
123
|
static #resolveFieldType(props: ReturnType<ConstantField["getProps"]>): FieldType {
|
|
136
124
|
if (props.enum) return ConstantSerializer.#enumType(props.enum);
|
|
137
125
|
if (props.isMap) {
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { type BaseEnv, INJECT_META } from "akanjs/base";
|
|
2
2
|
import type { AdaptorCls, InjectInfo, ServiceCls } from "akanjs/service";
|
|
3
3
|
import type { DiLifecycle } from "../di/diLifecycle";
|
|
4
|
-
import { DevtoolsJson } from "./devtoolsJson";
|
|
5
4
|
import type { DepEdge, DepEdgeKind, DepNode, DepNodeKind, DepsData } from "./types";
|
|
6
5
|
|
|
7
6
|
export interface DepsSerializerContext {
|
|
@@ -17,13 +16,7 @@ export interface DepsSerializerContext {
|
|
|
17
16
|
|
|
18
17
|
type InjectableCls = { [INJECT_META]?: Record<string, InjectInfo>; refName: string };
|
|
19
18
|
|
|
20
|
-
/**
|
|
21
|
-
* Turns the DI container into a plain node/edge graph for the `/_akan/deps` visualiser.
|
|
22
|
-
*
|
|
23
|
-
* Edge derivation mirrors `InjectInfo.resolveInjection` field-for-field, so the drawn graph is the one that
|
|
24
|
-
* actually resolves at boot rather than a plausible reconstruction of it. Only classes and refNames are
|
|
25
|
-
* emitted — never a live instance, which for `uses` routinely closes over credentials.
|
|
26
|
-
*/
|
|
19
|
+
/** Edges mirror `InjectInfo.resolveInjection` field-for-field, so the graph is the one that resolves at boot. */
|
|
27
20
|
export class DepsSerializer {
|
|
28
21
|
readonly #context: DepsSerializerContext;
|
|
29
22
|
readonly #nodes = new Map<string, DepNode>();
|
|
@@ -57,10 +50,7 @@ export class DepsSerializer {
|
|
|
57
50
|
const { di } = this.#context;
|
|
58
51
|
const serviceStageOf = DepsSerializer.#stageIndex(di.hierarchy.serviceStages);
|
|
59
52
|
const adaptorStageOf = DepsSerializer.#stageIndex(di.hierarchy.adaptorStages);
|
|
60
|
-
const roleOf = new Map
|
|
61
|
-
di.registry.adaptorRole.forEach((impl, role) => {
|
|
62
|
-
roleOf.set(impl.refName, role.refName);
|
|
63
|
-
});
|
|
53
|
+
const roleOf = new Map([...di.registry.adaptorRole].map(([role, impl]) => [impl.refName, role.refName] as const));
|
|
64
54
|
|
|
65
55
|
di.registry.serviceCls.forEach((cls, refName) => {
|
|
66
56
|
this.#node("service", refName, {
|
|
@@ -112,24 +102,16 @@ export class DepsSerializer {
|
|
|
112
102
|
|
|
113
103
|
#collectEdges() {
|
|
114
104
|
const { di } = this.#context;
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
this.#edgesFrom(this.#node("internal", refName), cls as unknown as InjectableCls);
|
|
126
|
-
});
|
|
127
|
-
di.registry.endpointCls.forEach((cls, refName) => {
|
|
128
|
-
this.#edgesFrom(this.#node("endpoint", refName), cls as unknown as InjectableCls);
|
|
129
|
-
});
|
|
130
|
-
di.live.sliceCls.forEach((cls, refName) => {
|
|
131
|
-
this.#edgesFrom(this.#node("slice", refName), cls as unknown as InjectableCls);
|
|
132
|
-
});
|
|
105
|
+
const sources: [DepNodeKind, Map<string, unknown>][] = [
|
|
106
|
+
["service", di.registry.serviceCls],
|
|
107
|
+
["adaptor", di.registry.adaptorCls],
|
|
108
|
+
["serverSignal", di.registry.serverSignalCls],
|
|
109
|
+
["internal", di.registry.internalCls],
|
|
110
|
+
["endpoint", di.registry.endpointCls],
|
|
111
|
+
["slice", di.live.sliceCls],
|
|
112
|
+
];
|
|
113
|
+
for (const [kind, classes] of sources)
|
|
114
|
+
for (const [refName, cls] of classes) this.#edgesFrom(this.#node(kind, refName), cls as InjectableCls);
|
|
133
115
|
}
|
|
134
116
|
|
|
135
117
|
#edgesFrom(from: string, cls: InjectableCls) {
|
|
@@ -193,9 +175,7 @@ export class DepsSerializer {
|
|
|
193
175
|
detail: {
|
|
194
176
|
local: Boolean(injectInfo.local),
|
|
195
177
|
isMap: Boolean(injectInfo.isMap),
|
|
196
|
-
...(injectInfo.
|
|
197
|
-
? { expireAt: DevtoolsJson.toSafe(injectInfo.cacheOption.expireAt) }
|
|
198
|
-
: {}),
|
|
178
|
+
...(injectInfo.ttl !== undefined ? { ttl: injectInfo.ttl } : {}),
|
|
199
179
|
},
|
|
200
180
|
};
|
|
201
181
|
}
|
|
@@ -210,18 +190,12 @@ export class DepsSerializer {
|
|
|
210
190
|
);
|
|
211
191
|
}
|
|
212
192
|
|
|
213
|
-
/**
|
|
214
|
-
* An `env` inject only knows its keys by running its factory, and factories construct SDK clients and open
|
|
215
|
-
* sockets — so scan the source for `env.KEY` / `env["KEY"]` instead of invoking it. Slightly over-inclusive,
|
|
216
|
-
* which is fine: this is a local-dev endpoint reading unminified source, and it exposes names, never values.
|
|
217
|
-
*/
|
|
218
193
|
static #extractEnvKeys(fn: (options: never) => unknown): string[] {
|
|
219
194
|
const source = Function.prototype.toString.call(fn);
|
|
220
195
|
const matches = [...source.matchAll(/\.\s*([A-Za-z_$][\w$]*)|\[\s*["'`]([^"'`]+)["'`]\s*\]/g)];
|
|
221
196
|
return [...new Set(matches.map((match) => match[1] ?? match[2]).filter((key): key is string => Boolean(key)))];
|
|
222
197
|
}
|
|
223
198
|
|
|
224
|
-
/** Values only for `AKAN_PUBLIC_*`; every other key contributes its name and nothing else. */
|
|
225
199
|
static #serializeEnv(env: BaseEnv): DepsData["env"] {
|
|
226
200
|
const publicEnv: Record<string, string> = {};
|
|
227
201
|
Object.entries(process.env).forEach(([key, value]) => {
|
|
@@ -232,13 +206,7 @@ export class DepsSerializer {
|
|
|
232
206
|
}
|
|
233
207
|
|
|
234
208
|
static #stageIndex(stages: string[][]): Map<string, number> {
|
|
235
|
-
|
|
236
|
-
stages.forEach((stage, stageIdx) => {
|
|
237
|
-
stage.forEach((refName) => {
|
|
238
|
-
index.set(refName, stageIdx);
|
|
239
|
-
});
|
|
240
|
-
});
|
|
241
|
-
return index;
|
|
209
|
+
return new Map(stages.flatMap((stage, stageIdx) => stage.map((refName) => [refName, stageIdx] as const)));
|
|
242
210
|
}
|
|
243
211
|
|
|
244
212
|
static #classNameOf(value: unknown): string {
|