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
|
@@ -13,9 +13,7 @@ export const PAGE_ROUTE_EXPORTS: ReadonlySet<string> = new Set([
|
|
|
13
13
|
"default",
|
|
14
14
|
"pageConfig",
|
|
15
15
|
"head",
|
|
16
|
-
"metadata",
|
|
17
16
|
"generateHead",
|
|
18
|
-
"generateMetadata",
|
|
19
17
|
"Loading",
|
|
20
18
|
]);
|
|
21
19
|
export const LAYOUT_ROUTE_EXPORTS: ReadonlySet<string> = new Set([...PAGE_ROUTE_EXPORTS, "NotFound", "Error"]);
|
|
@@ -27,7 +25,6 @@ export const ROOT_LAYOUT_ROUTE_EXPORTS: ReadonlySet<string> = new Set([
|
|
|
27
25
|
"reconnect",
|
|
28
26
|
"wsConnect",
|
|
29
27
|
"layoutStyle",
|
|
30
|
-
"gaTrackingId",
|
|
31
28
|
]);
|
|
32
29
|
/** Root-layout exports that are plain config rather than components, so a PascalCase check cannot allow them. */
|
|
33
30
|
export const RESERVED_ROUTE_CONFIG_EXPORTS: ReadonlySet<string> = new Set(
|
|
@@ -61,22 +58,19 @@ export interface ValidatePageSourceFileOptions {
|
|
|
61
58
|
filePath?: string;
|
|
62
59
|
}
|
|
63
60
|
|
|
61
|
+
const toRouteKey = (filePath: string) =>
|
|
62
|
+
filePath.startsWith("./") ? filePath : `./${filePath.split(/[\\/]/).join("/")}`;
|
|
63
|
+
|
|
64
64
|
export function isRouteSourceFile(filePath: string): boolean {
|
|
65
65
|
if (!SOURCE_EXT_RE.test(filePath)) return false;
|
|
66
|
-
|
|
67
|
-
return tryParseRouteModuleKey(key) !== null;
|
|
66
|
+
return tryParseRouteModuleKey(toRouteKey(filePath)) !== null;
|
|
68
67
|
}
|
|
69
68
|
|
|
70
|
-
/**
|
|
71
|
-
* Why a `page/` file breaks the route convention, or null when it is fine. Null also covers a non-source
|
|
72
|
-
* asset, which `page/` tolerates. `akan sync <lib>` reports these alongside its other layout violations,
|
|
73
|
-
* so the rule stays in one place instead of being restated where it cannot afford to throw.
|
|
74
|
-
*/
|
|
69
|
+
/** `null` when the file is fine, including a non-source asset, which `page/` tolerates. */
|
|
75
70
|
export function getPageSourceFileViolation(filePath: string): string | null {
|
|
76
71
|
if (!SOURCE_EXT_RE.test(filePath)) return null;
|
|
77
72
|
|
|
78
|
-
const
|
|
79
|
-
const match = ROUTE_SOURCE_RE.exec(key);
|
|
73
|
+
const match = ROUTE_SOURCE_RE.exec(toRouteKey(filePath));
|
|
80
74
|
if (!match) return "invalid page source file";
|
|
81
75
|
|
|
82
76
|
const file = match[1] as string;
|
|
@@ -96,8 +90,7 @@ export function validatePageSourceFile(filePath: string, options: ValidatePageSo
|
|
|
96
90
|
|
|
97
91
|
const violation = getPageSourceFileViolation(filePath);
|
|
98
92
|
if (!violation) return true;
|
|
99
|
-
|
|
100
|
-
throw new Error(`[route-convention] ${violation}: ${options.filePath ?? key}`);
|
|
93
|
+
throw new Error(`[route-convention] ${violation}: ${options.filePath ?? toRouteKey(filePath)}`);
|
|
101
94
|
}
|
|
102
95
|
|
|
103
96
|
export function validateSubRoutePageKey(
|
|
@@ -222,6 +215,20 @@ export function matchRoutePattern(pattern: string, pathname: string): Record<str
|
|
|
222
215
|
return params;
|
|
223
216
|
}
|
|
224
217
|
|
|
218
|
+
export function matchRoutePrefix(pattern: string, pathname: string): Record<string, string> | null {
|
|
219
|
+
const patternParts = pattern.split("/").filter(Boolean);
|
|
220
|
+
const pathParts = pathname.split("/").filter(Boolean);
|
|
221
|
+
if (patternParts.length > pathParts.length) return null;
|
|
222
|
+
const params: Record<string, string> = {};
|
|
223
|
+
for (let i = 0; i < patternParts.length; i++) {
|
|
224
|
+
const pat = patternParts[i];
|
|
225
|
+
const val = pathParts[i];
|
|
226
|
+
if (pat.startsWith(":")) params[pat.slice(1)] = decodeURIComponent(val);
|
|
227
|
+
else if (pat !== val) return null;
|
|
228
|
+
}
|
|
229
|
+
return params;
|
|
230
|
+
}
|
|
231
|
+
|
|
225
232
|
export function assertUniqueRoutePatterns(entries: { key: string; pattern: string }[]): void {
|
|
226
233
|
const byPattern = new Map<string, string>();
|
|
227
234
|
for (const entry of entries) {
|
package/common/sleep.ts
CHANGED
|
@@ -1,8 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export const sleep = async (ms: number) => {
|
|
3
|
-
return new Promise((resolve) => {
|
|
4
|
-
setTimeout(() => {
|
|
5
|
-
resolve(true);
|
|
6
|
-
}, ms);
|
|
7
|
-
});
|
|
8
|
-
};
|
|
1
|
+
export const sleep = async (ms: number) => new Promise((resolve) => setTimeout(() => resolve(true), ms));
|
package/common/subRoute.ts
CHANGED
|
@@ -14,13 +14,11 @@ export const parseBasePaths = (value: string | string[] | Set<string> | undefine
|
|
|
14
14
|
|
|
15
15
|
const normalizeSubRouteHost = (host: string): string => host.trim().toLowerCase().replace(/:\d+$/, "");
|
|
16
16
|
|
|
17
|
-
/** A hostname never contains these; a fragment carrying one is a malformed entry, not a host we failed to match. */
|
|
18
17
|
const isSubRouteHost = (host: string): boolean => host.length > 0 && !/[\s/=]/.test(host);
|
|
19
18
|
|
|
20
19
|
/**
|
|
21
|
-
* `"soft=a.com,b.com;office=c.com"` -> `{ soft: ["a.com", "b.com"], office: ["c.com"] }`. A
|
|
22
|
-
*
|
|
23
|
-
* every pod that received it.
|
|
20
|
+
* `"soft=a.com,b.com;office=c.com"` -> `{ soft: ["a.com", "b.com"], office: ["c.com"] }`. A malformed entry is
|
|
21
|
+
* skipped, not thrown: a deployment platform renders this value, and one bad character must not CrashLoop pods.
|
|
24
22
|
*/
|
|
25
23
|
export const parseSubRouteHosts = (value: string | undefined | null): Record<string, string[]> => {
|
|
26
24
|
const hostsByBasePath: Record<string, string[]> = {};
|
|
@@ -44,9 +42,8 @@ export const parseSubRouteHosts = (value: string | undefined | null): Record<str
|
|
|
44
42
|
};
|
|
45
43
|
|
|
46
44
|
/**
|
|
47
|
-
* Unions the env mapping onto the
|
|
48
|
-
*
|
|
49
|
-
* build output, so accepting one would answer every request under it with a 404 and nothing to explain why.
|
|
45
|
+
* Unions the env mapping onto the build's own, never replacing it (dropping the env is the rollback path). A basePath
|
|
46
|
+
* the build does not serve is reported back, not honoured: the route tree is a build output.
|
|
50
47
|
*/
|
|
51
48
|
export const resolveSubRouteHosts = ({
|
|
52
49
|
subRoutes,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const toError = (reason: unknown): Error => (reason instanceof Error ? reason : new Error(String(reason)));
|
|
@@ -0,0 +1,263 @@
|
|
|
1
|
+
import { forwardedHeaders } from "./clientAddress";
|
|
2
|
+
|
|
3
|
+
/** `http` and `tcp` payloads are raw binary frames; a `websocket` one prefixes each with a `tunnelWsPayload` byte. */
|
|
4
|
+
export type TunnelStreamKind = "http" | "websocket" | "tcp";
|
|
5
|
+
|
|
6
|
+
export type TunnelResetCode =
|
|
7
|
+
| "originUnreachable"
|
|
8
|
+
| "originTimeout"
|
|
9
|
+
| "originRefused"
|
|
10
|
+
| "protocol"
|
|
11
|
+
| "canceled"
|
|
12
|
+
| "tooLarge"
|
|
13
|
+
| "internal";
|
|
14
|
+
|
|
15
|
+
/** Pairs, not a record: `set-cookie` repeats, and a record keyed by name keeps only the last one. */
|
|
16
|
+
export type TunnelHeaderList = [string, string][];
|
|
17
|
+
|
|
18
|
+
export interface TunnelAgentIdentity {
|
|
19
|
+
/** The operator's name for this share. */
|
|
20
|
+
name: string;
|
|
21
|
+
version: string;
|
|
22
|
+
platform: string;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export interface TunnelHelloFrame {
|
|
26
|
+
type: "hello";
|
|
27
|
+
version: number;
|
|
28
|
+
/** What the agent intends to serve; the gateway answers with what the token grants. */
|
|
29
|
+
hostnames: string[];
|
|
30
|
+
agent: TunnelAgentIdentity;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export interface TunnelReadyFrame {
|
|
34
|
+
type: "ready";
|
|
35
|
+
version: number;
|
|
36
|
+
sessionId: string;
|
|
37
|
+
/** Authoritative: the agent serves these and nothing else, whatever it asked for. */
|
|
38
|
+
hostnames: string[];
|
|
39
|
+
urls: string[];
|
|
40
|
+
/** Idle data sockets to hold; `maxSockets` is the ceiling the pool never grows past. */
|
|
41
|
+
idle: number;
|
|
42
|
+
maxSockets: number;
|
|
43
|
+
heartbeatMs: number;
|
|
44
|
+
/** Epoch ms, when the control plane put a TTL on this share. */
|
|
45
|
+
expiresAt?: number;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export interface TunnelPingFrame {
|
|
49
|
+
type: "ping";
|
|
50
|
+
at: number;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export interface TunnelPongFrame {
|
|
54
|
+
type: "pong";
|
|
55
|
+
at: number;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/** The gateway noticed the idle pool running short; the agent grows it to `idle`, capped by `maxSockets`. */
|
|
59
|
+
export interface TunnelDemandFrame {
|
|
60
|
+
type: "demand";
|
|
61
|
+
idle: number;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/** A graceful goodbye from either side, so the peer stops reconnecting instead of treating it as a drop. */
|
|
65
|
+
export interface TunnelByeFrame {
|
|
66
|
+
type: "bye";
|
|
67
|
+
reason?: string;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
export type TunnelControlFromAgent = TunnelHelloFrame | TunnelPingFrame | TunnelPongFrame | TunnelByeFrame;
|
|
71
|
+
export type TunnelControlFromGateway =
|
|
72
|
+
| TunnelReadyFrame
|
|
73
|
+
| TunnelPingFrame
|
|
74
|
+
| TunnelPongFrame
|
|
75
|
+
| TunnelDemandFrame
|
|
76
|
+
| TunnelByeFrame;
|
|
77
|
+
|
|
78
|
+
/** First frame on a data socket; the session id names the agent connection it belongs to. */
|
|
79
|
+
export interface TunnelAttachFrame {
|
|
80
|
+
type: "attach";
|
|
81
|
+
version: number;
|
|
82
|
+
sessionId: string;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/** The socket joined the idle pool; until this arrives the agent must not count it toward `idle`. */
|
|
86
|
+
export interface TunnelAttachedFrame {
|
|
87
|
+
type: "attached";
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
export interface TunnelOpenFrame {
|
|
91
|
+
type: "open";
|
|
92
|
+
streamId: string;
|
|
93
|
+
kind: TunnelStreamKind;
|
|
94
|
+
/** The tunnel host the public caller addressed. */
|
|
95
|
+
hostname: string;
|
|
96
|
+
/** `http` and `websocket`. */
|
|
97
|
+
method?: string;
|
|
98
|
+
/** `http` and `websocket`: path plus query, already percent-encoded. */
|
|
99
|
+
path?: string;
|
|
100
|
+
/**
|
|
101
|
+
* `http` and `websocket`, replayed verbatim: the gateway strips every `forwardedHeaderNames` entry the caller sent
|
|
102
|
+
* (else Host header injection) and writes `x-forwarded-host` as the tunnel hostname (else CSRF refuses mutations).
|
|
103
|
+
*/
|
|
104
|
+
headers?: TunnelHeaderList;
|
|
105
|
+
/** `tcp`: the port on the local origin to dial. */
|
|
106
|
+
port?: number;
|
|
107
|
+
/** Whether payload frames follow; absent or false means the request is complete as sent. */
|
|
108
|
+
body?: boolean;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
export interface TunnelHeadFrame {
|
|
112
|
+
type: "head";
|
|
113
|
+
streamId: string;
|
|
114
|
+
/** `101` accepts a `websocket` open and `200` a `tcp` one; any other status is the agent declining. */
|
|
115
|
+
status: number;
|
|
116
|
+
statusText?: string;
|
|
117
|
+
headers: TunnelHeaderList;
|
|
118
|
+
body?: boolean;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
/** No more payload in the direction this was sent; each direction ends independently. */
|
|
122
|
+
export interface TunnelEndFrame {
|
|
123
|
+
type: "end";
|
|
124
|
+
streamId: string;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
/** The stream failed; its socket is closed rather than returned to the pool. */
|
|
128
|
+
export interface TunnelResetFrame {
|
|
129
|
+
type: "reset";
|
|
130
|
+
streamId: string;
|
|
131
|
+
code: TunnelResetCode;
|
|
132
|
+
message?: string;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
/** Gateway → agent once both directions ended: the socket is idle again. Only `http` streams are released. */
|
|
136
|
+
export interface TunnelReleaseFrame {
|
|
137
|
+
type: "release";
|
|
138
|
+
streamId: string;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
export type TunnelDataFromAgent = TunnelAttachFrame | TunnelHeadFrame | TunnelEndFrame | TunnelResetFrame;
|
|
142
|
+
export type TunnelDataFromGateway =
|
|
143
|
+
| TunnelAttachedFrame
|
|
144
|
+
| TunnelOpenFrame
|
|
145
|
+
| TunnelEndFrame
|
|
146
|
+
| TunnelResetFrame
|
|
147
|
+
| TunnelReleaseFrame;
|
|
148
|
+
|
|
149
|
+
export type TunnelFrame =
|
|
150
|
+
| TunnelControlFromAgent
|
|
151
|
+
| TunnelControlFromGateway
|
|
152
|
+
| TunnelDataFromAgent
|
|
153
|
+
| TunnelDataFromGateway;
|
|
154
|
+
|
|
155
|
+
export const tunnelWsPayload = {
|
|
156
|
+
text: 0,
|
|
157
|
+
binary: 1,
|
|
158
|
+
/** Remainder is UTF-8 JSON `{ code, reason }` — the inner close, which is not the tunnel socket closing. */
|
|
159
|
+
close: 2,
|
|
160
|
+
} as const;
|
|
161
|
+
|
|
162
|
+
export type TunnelWsPayloadKind = (typeof tunnelWsPayload)[keyof typeof tunnelWsPayload];
|
|
163
|
+
|
|
164
|
+
/** Stripped by both ends independently, so neither has to trust the other to have done it. */
|
|
165
|
+
export const tunnelHopByHopHeaders = [
|
|
166
|
+
"connection",
|
|
167
|
+
"keep-alive",
|
|
168
|
+
"proxy-authenticate",
|
|
169
|
+
"proxy-authorization",
|
|
170
|
+
"proxy-connection",
|
|
171
|
+
"te",
|
|
172
|
+
"trailer",
|
|
173
|
+
"transfer-encoding",
|
|
174
|
+
"upgrade",
|
|
175
|
+
] as const;
|
|
176
|
+
|
|
177
|
+
/**
|
|
178
|
+
* The only way a refusal reaches the agent, which treats these as final and any other close as a drop to retry: a
|
|
179
|
+
* refused upgrade arrives as a bare `1006`. Accept the upgrade and close on a later tick, never inside `open`.
|
|
180
|
+
*/
|
|
181
|
+
export const tunnelCloseCode = {
|
|
182
|
+
unauthorized: 4001,
|
|
183
|
+
unsupportedVersion: 4002,
|
|
184
|
+
hostnameNotGranted: 4003,
|
|
185
|
+
unknownSession: 4004,
|
|
186
|
+
/** A newer session for the same tunnel took over; this one must not reconnect. */
|
|
187
|
+
superseded: 4005,
|
|
188
|
+
streamLimit: 4008,
|
|
189
|
+
goingAway: 4009,
|
|
190
|
+
} as const;
|
|
191
|
+
|
|
192
|
+
export type TunnelCloseCode = (typeof tunnelCloseCode)[keyof typeof tunnelCloseCode];
|
|
193
|
+
|
|
194
|
+
/** Includes `forwarded`, RFC 7239's single-header spelling of the same claim. */
|
|
195
|
+
export const tunnelForwardedHeaders = [...forwardedHeaders, "forwarded"] as const;
|
|
196
|
+
|
|
197
|
+
const hopByHop = new Set<string>(tunnelHopByHopHeaders);
|
|
198
|
+
|
|
199
|
+
export const tunnelWireContract = {
|
|
200
|
+
version: 1,
|
|
201
|
+
controlPath: "/_tunnel/control",
|
|
202
|
+
dataPath: "/_tunnel/data",
|
|
203
|
+
|
|
204
|
+
authScheme: "Bearer",
|
|
205
|
+
defaultIdleSockets: 4,
|
|
206
|
+
defaultMaxSockets: 128,
|
|
207
|
+
defaultHeartbeatMs: 30_000,
|
|
208
|
+
|
|
209
|
+
/** What a sender splits an `http` or `tcp` payload to. */
|
|
210
|
+
chunkBytes: 64 * 1024,
|
|
211
|
+
/** Floor of every tunnel socket's `maxPayloadLength`: an inner 16 MB message plus its prefix rides one frame. */
|
|
212
|
+
maxFrameBytes: 16 * 1024 * 1024 + 4096,
|
|
213
|
+
|
|
214
|
+
stripForwarded: (headers: Headers): Headers => {
|
|
215
|
+
for (const name of tunnelForwardedHeaders) headers.delete(name);
|
|
216
|
+
return headers;
|
|
217
|
+
},
|
|
218
|
+
|
|
219
|
+
forwardedHeaderNames: tunnelForwardedHeaders,
|
|
220
|
+
|
|
221
|
+
isHopByHop: (name: string): boolean => hopByHop.has(name.toLowerCase()),
|
|
222
|
+
|
|
223
|
+
headerList: (headers: Headers): TunnelHeaderList => {
|
|
224
|
+
const list: TunnelHeaderList = [];
|
|
225
|
+
headers.forEach((value, name) => {
|
|
226
|
+
if (!hopByHop.has(name.toLowerCase())) list.push([name, value]);
|
|
227
|
+
});
|
|
228
|
+
return list;
|
|
229
|
+
},
|
|
230
|
+
|
|
231
|
+
headersOf: (list: TunnelHeaderList): Headers => {
|
|
232
|
+
const headers = new Headers();
|
|
233
|
+
for (const [name, value] of list) {
|
|
234
|
+
if (!hopByHop.has(name.toLowerCase())) headers.append(name, value);
|
|
235
|
+
}
|
|
236
|
+
return headers;
|
|
237
|
+
},
|
|
238
|
+
|
|
239
|
+
encodeWsPayload: (kind: TunnelWsPayloadKind, data: Uint8Array): Uint8Array => {
|
|
240
|
+
const framed = new Uint8Array(data.byteLength + 1);
|
|
241
|
+
framed[0] = kind;
|
|
242
|
+
framed.set(data, 1);
|
|
243
|
+
return framed;
|
|
244
|
+
},
|
|
245
|
+
|
|
246
|
+
decodeWsPayload: (frame: Uint8Array): { kind: TunnelWsPayloadKind; data: Uint8Array } | null => {
|
|
247
|
+
if (!frame.byteLength) return null;
|
|
248
|
+
const kind = frame[0] as TunnelWsPayloadKind;
|
|
249
|
+
if (kind !== tunnelWsPayload.text && kind !== tunnelWsPayload.binary && kind !== tunnelWsPayload.close) return null;
|
|
250
|
+
return { kind, data: frame.subarray(1) };
|
|
251
|
+
},
|
|
252
|
+
|
|
253
|
+
parseFrame: (raw: string): TunnelFrame | null => {
|
|
254
|
+
try {
|
|
255
|
+
const frame = JSON.parse(raw) as TunnelFrame;
|
|
256
|
+
return frame && typeof frame === "object" && typeof (frame as { type?: unknown }).type === "string"
|
|
257
|
+
? frame
|
|
258
|
+
: null;
|
|
259
|
+
} catch {
|
|
260
|
+
return null;
|
|
261
|
+
}
|
|
262
|
+
},
|
|
263
|
+
} as const;
|
package/common/types.ts
CHANGED
|
@@ -5,13 +5,9 @@ export interface FetchPolicy<Returns = unknown> {
|
|
|
5
5
|
onError?: (error: string) => void;
|
|
6
6
|
token?: string;
|
|
7
7
|
partial?: string[];
|
|
8
|
-
timeout
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
*
|
|
12
|
-
* Whatever was published while the socket was down is gone, and a room cannot say which messages those were, so
|
|
13
|
-
* a subscriber that has to stay correct reloads here instead of carrying on from a gap it cannot see.
|
|
14
|
-
*/
|
|
8
|
+
/** Milliseconds, or `false` to wait as long as the runtime will; overrides the endpoint's declared `timeout`. */
|
|
9
|
+
timeout?: number | false;
|
|
10
|
+
/** `pubsub` only: called after a resubscribe, since whatever was published while the socket was down is gone. */
|
|
15
11
|
onResync?: () => void;
|
|
16
12
|
}
|
|
17
13
|
|
|
@@ -20,3 +16,6 @@ export type SnakeCaseObj<T> = {
|
|
|
20
16
|
[K in keyof T as SnakeCase<K & string>]: T[K] extends object ? SnakeCaseObj<T[K]> : T[K];
|
|
21
17
|
};
|
|
22
18
|
export type SnakeMsg<Msg> = SnakeCaseObj<Msg>;
|
|
19
|
+
|
|
20
|
+
/** Name-based dispatch over a generated surface: `as DynamicRecord` to index, then cast the read, never `as any`. */
|
|
21
|
+
export type DynamicRecord<Value = unknown> = { [key: string]: Value };
|
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
* https://semver.org/
|
|
5
|
-
* @params version `major.minor.patch` 형식으로 조합된 버전
|
|
6
|
-
*/
|
|
1
|
+
|
|
2
|
+
export const mergeVersion = (major: number, minor: number, patch: number) => `${major}.${minor}.${patch}`;
|
|
3
|
+
|
|
7
4
|
export const splitVersion = (version: string) => {
|
|
8
5
|
const [major, minor, patch] = version.split(".");
|
|
9
6
|
if (!major || !minor || !patch) throw new Error("Invalid version");
|
|
@@ -1,3 +1,46 @@
|
|
|
1
|
+
export interface WebsocketAuthRequest {
|
|
2
|
+
key: string;
|
|
3
|
+
data: [string | null];
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
export interface WebsocketAuthAckData {
|
|
7
|
+
type: "auth";
|
|
8
|
+
revokedRooms: string[];
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export const websocketAuthContract = {
|
|
12
|
+
key: "__auth",
|
|
13
|
+
makeRequest: (jwt: string | null): WebsocketAuthRequest => ({ key: "__auth", data: [jwt] }),
|
|
14
|
+
makeAck: (revokedRooms: string[]): WebsocketAuthAckData => ({ type: "auth", revokedRooms }),
|
|
15
|
+
readJwt: (data: unknown): string | null => {
|
|
16
|
+
const jwt = Array.isArray(data) ? data[0] : null;
|
|
17
|
+
return typeof jwt === "string" && jwt.length > 0 ? jwt : null;
|
|
18
|
+
},
|
|
19
|
+
} as const;
|
|
20
|
+
|
|
21
|
+
export interface WebsocketHeartbeatRequest {
|
|
22
|
+
key: string;
|
|
23
|
+
data: [];
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export interface WebsocketHeartbeatAckData {
|
|
27
|
+
type: "pong";
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export const websocketHeartbeatContract = {
|
|
31
|
+
key: "__ping",
|
|
32
|
+
/** Under the 60s idle timeout nginx and most CDNs ship with. */
|
|
33
|
+
intervalMs: 45_000,
|
|
34
|
+
/** Without any inbound frame this long, the socket is assumed half-open and reconnected. */
|
|
35
|
+
silenceMs: 45_000 * 3,
|
|
36
|
+
makeRequest: (): WebsocketHeartbeatRequest => ({ key: "__ping", data: [] }),
|
|
37
|
+
makeAck: (): WebsocketHeartbeatAckData => ({ type: "pong" }),
|
|
38
|
+
} as const;
|
|
39
|
+
|
|
40
|
+
export const websocketRoomContract = {
|
|
41
|
+
idOf: (key: string, args: unknown[]) => `${key}${args.length ? "-" : ""}${args.join("-")}`,
|
|
42
|
+
} as const;
|
|
43
|
+
|
|
1
44
|
export interface WebsocketBinaryFrame {
|
|
2
45
|
roomId: string;
|
|
3
46
|
payload: Uint8Array;
|
|
@@ -11,15 +54,6 @@ const MAX_ROOM_BYTES = 0xffff;
|
|
|
11
54
|
const encoder = new TextEncoder();
|
|
12
55
|
const decoder = new TextDecoder();
|
|
13
56
|
|
|
14
|
-
/**
|
|
15
|
-
* Framework-owned binary pubsub frame, shared by the publisher and the client dispatcher. A room whose whole
|
|
16
|
-
* return is `Binary` sends its bytes in a websocket binary frame instead of the JSON `{ type: "pub" }` envelope,
|
|
17
|
-
* because `Buffer.toJSON()` turns bytes into `{ type: "Buffer", data: number[] }` — 3.6x the wire and ~300x the
|
|
18
|
-
* encode cost on a 64 KB payload, and a shape `JSON.parse` never restores.
|
|
19
|
-
*
|
|
20
|
-
* Text and binary frames coexist on one socket, so this is additive: every JSON endpoint is untouched, and a
|
|
21
|
-
* federation gateway relays a binary frame unchanged with no code of its own.
|
|
22
|
-
*/
|
|
23
57
|
export const websocketBinaryFrameContract = {
|
|
24
58
|
encode: ({ roomId, payload }: WebsocketBinaryFrame): Uint8Array => {
|
|
25
59
|
const room = encoder.encode(roomId);
|
package/constant/cascadePaths.ts
CHANGED
|
@@ -3,11 +3,8 @@ import type { ConstantField, FieldObject } from "./fieldInfo";
|
|
|
3
3
|
import type { ConstantModelRef } from "./via";
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* read identically on a relation field, so the value has to name the direction — a mistake here is a data loss.
|
|
9
|
-
* `removeWithAny` is `removeWith` over an owner that is unknowable at build time, and it names the whole
|
|
10
|
-
* decision in one value so the widening cannot be declared apart from the direction it widens.
|
|
6
|
+
* `removeRef`: removing this document removes what the field points at. `removeWith`: removing what the field points
|
|
7
|
+
* at removes this document. `removeWithAny`: `removeWith` over an owner unknowable at build time.
|
|
11
8
|
*/
|
|
12
9
|
export const cascadeActions = ["removeRef", "removeWith", "removeWithAny"] as const;
|
|
13
10
|
export type CascadeAction = (typeof cascadeActions)[number];
|
|
@@ -46,7 +43,7 @@ export class CascadePaths {
|
|
|
46
43
|
}
|
|
47
44
|
|
|
48
45
|
#assertKnownAction(key: string, action: CascadeAction) {
|
|
49
|
-
|
|
46
|
+
|
|
50
47
|
if (!cascadeActions.includes(action)) {
|
|
51
48
|
throw new Error(`Cascade field "${key}" declares cascade: "${action}", which is not one of ${cascadeActions}`);
|
|
52
49
|
}
|
|
@@ -62,7 +59,7 @@ export class CascadePaths {
|
|
|
62
59
|
}
|
|
63
60
|
|
|
64
61
|
#readOwnerPath(key: string, field: ConstantField, fieldMap: FieldObject): CascadeWithPath {
|
|
65
|
-
|
|
62
|
+
|
|
66
63
|
if (field.arrDepth > 0) throw new Error(`Cascade field "${key}" is an array and names more than one owner`);
|
|
67
64
|
if (field.isMap) throw new Error(`Cascade field "${key}" is a Map and names no owner`);
|
|
68
65
|
const anyOwner = field.cascade === "removeWithAny";
|
|
@@ -94,7 +91,7 @@ export class CascadePaths {
|
|
|
94
91
|
const typeField = fieldMap[typeKey];
|
|
95
92
|
if (!typeField) throw new Error(`Cascade field "${key}" declares refPath: "${typeKey}", which is not a field`);
|
|
96
93
|
if (anyOwner) return this.#readAnyOwner(key, typeKey, typeField);
|
|
97
|
-
|
|
94
|
+
|
|
98
95
|
if (!typeField.enum) {
|
|
99
96
|
throw new Error(
|
|
100
97
|
`Cascade field "${key}" declares refPath: "${typeKey}", which must be an enumOf(...) naming the owner ` +
|
|
@@ -113,7 +110,7 @@ export class CascadePaths {
|
|
|
113
110
|
`already names its owners; use cascade: "removeWith"`,
|
|
114
111
|
);
|
|
115
112
|
}
|
|
116
|
-
|
|
113
|
+
|
|
117
114
|
if (this.#primitiveNameOf(typeField) !== "String") {
|
|
118
115
|
throw new Error(
|
|
119
116
|
`Cascade field "${key}" declares cascade: "removeWithAny", so refPath: "${typeKey}" must be a String ` +
|
|
@@ -18,7 +18,6 @@ import {
|
|
|
18
18
|
} from ".";
|
|
19
19
|
import type { ConstantType, DefaultOf, DocumentModel, QueryOf } from "./types";
|
|
20
20
|
|
|
21
|
-
/** Runtime registry for Akan constant model metadata, refs, enums, and generated model contracts. */
|
|
22
21
|
export class ConstantRegistry {
|
|
23
22
|
static database = new Map<string, ConstantModel>();
|
|
24
23
|
static scalar = new Map<string, ScalarConstantModel>();
|
|
@@ -124,38 +123,14 @@ export class ConstantRegistry {
|
|
|
124
123
|
lightRef: LightRef,
|
|
125
124
|
insightRef: InsightRef,
|
|
126
125
|
constExports: Record<string, unknown>,
|
|
127
|
-
)
|
|
128
|
-
T,
|
|
129
|
-
Input,
|
|
130
|
-
Obj,
|
|
131
|
-
Full,
|
|
132
|
-
Light,
|
|
133
|
-
Insight,
|
|
134
|
-
FullFieldObj,
|
|
135
|
-
Capitalize<T>,
|
|
136
|
-
DefaultOf<Full>,
|
|
137
|
-
DefaultOf<Input>,
|
|
138
|
-
GetStateObject<Full>,
|
|
139
|
-
GetStateObject<Input>,
|
|
140
|
-
DefaultOf<Insight>,
|
|
141
|
-
PurifiedModel<Input>,
|
|
142
|
-
DocumentModel<Full>,
|
|
143
|
-
DocumentModel<Input>,
|
|
144
|
-
QueryOf<DocumentModel<Full>>,
|
|
145
|
-
GetStateObject<Light>,
|
|
146
|
-
GetStateObject<Insight>
|
|
147
|
-
> {
|
|
126
|
+
) {
|
|
148
127
|
const modelRefSet = new Set([inputRef, objectRef, fullRef, lightRef, insightRef]);
|
|
149
|
-
modelRefSet.
|
|
150
|
-
ConstantRegistry.modelRefNameMap.set(modelRef, refName);
|
|
151
|
-
});
|
|
128
|
+
for (const modelRef of modelRefSet) ConstantRegistry.modelRefNameMap.set(modelRef, refName);
|
|
152
129
|
inputRef.modelType = "input";
|
|
153
130
|
objectRef.modelType = "object";
|
|
154
131
|
fullRef.modelType = "full";
|
|
155
132
|
lightRef.modelType = "light";
|
|
156
133
|
insightRef.modelType = "insight";
|
|
157
|
-
type Doc = DocumentModel<Full>;
|
|
158
|
-
type DocInput = DocumentModel<Input>;
|
|
159
134
|
const cnst: ConstantModel<
|
|
160
135
|
T,
|
|
161
136
|
Input,
|
|
@@ -171,8 +146,8 @@ export class ConstantRegistry {
|
|
|
171
146
|
GetStateObject<Input>,
|
|
172
147
|
DefaultOf<Insight>,
|
|
173
148
|
PurifiedModel<Input>,
|
|
174
|
-
|
|
175
|
-
|
|
149
|
+
DocumentModel<Full>,
|
|
150
|
+
DocumentModel<Input>,
|
|
176
151
|
QueryOf<any>,
|
|
177
152
|
GetStateObject<Light>,
|
|
178
153
|
GetStateObject<Insight>
|
|
@@ -202,12 +177,7 @@ export class ConstantRegistry {
|
|
|
202
177
|
_StateInsight: null as unknown as GetStateObject<Insight>,
|
|
203
178
|
};
|
|
204
179
|
ConstantRegistry.setDatabase(refName, cnst as unknown as ConstantModel);
|
|
205
|
-
|
|
206
|
-
if ((modelRefSet as Set<unknown>).has(value)) return;
|
|
207
|
-
else if (typeof value === "function" && isEnum(value as Cls))
|
|
208
|
-
ConstantRegistry.enum.set(lowerlize(key), value as EnumInstance);
|
|
209
|
-
else ConstantRegistry.value.set(key, value);
|
|
210
|
-
});
|
|
180
|
+
ConstantRegistry.#registerExports(constExports, modelRefSet);
|
|
211
181
|
return cnst;
|
|
212
182
|
}
|
|
213
183
|
static buildScalar<T extends string, Model>(
|
|
@@ -224,30 +194,26 @@ export class ConstantRegistry {
|
|
|
224
194
|
_PurifiedInput: null as unknown as PurifiedModel<Model>,
|
|
225
195
|
};
|
|
226
196
|
ConstantRegistry.setScalar(refName, cnst as unknown as ScalarConstantModel);
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
197
|
+
ConstantRegistry.#registerExports(constExports, new Set([Model]));
|
|
198
|
+
return cnst;
|
|
199
|
+
}
|
|
200
|
+
static #registerExports(constExports: Record<string, unknown>, modelRefs: Set<unknown>) {
|
|
201
|
+
for (const [key, value] of Object.entries(constExports)) {
|
|
202
|
+
if (modelRefs.has(value)) continue;
|
|
203
|
+
if (typeof value === "function" && isEnum(value as Cls))
|
|
230
204
|
ConstantRegistry.enum.set(lowerlize(key), value as EnumInstance);
|
|
231
205
|
else ConstantRegistry.value.set(key, value);
|
|
232
|
-
}
|
|
233
|
-
return cnst as unknown as ScalarConstantModel<
|
|
234
|
-
T,
|
|
235
|
-
Model,
|
|
236
|
-
DefaultOf<Model>,
|
|
237
|
-
DocumentModel<Model>,
|
|
238
|
-
PurifiedModel<Model>
|
|
239
|
-
>;
|
|
206
|
+
}
|
|
240
207
|
}
|
|
241
|
-
static serialize<Value>(modelRef: Cls | Cls[], value: Value, nullable: boolean = false): Value {
|
|
208
|
+
static serialize<Value>(modelRef: Cls | Cls[], value: Value, nullable: boolean = false, of?: Cls | Cls[]): Value {
|
|
242
209
|
if (Array.isArray(value) && Array.isArray(modelRef)) {
|
|
243
210
|
const singleModelRef = modelRef.at(0);
|
|
244
211
|
if (!singleModelRef) throw new Error("No model ref found");
|
|
245
212
|
return value.map((v: object) => ConstantRegistry.serialize(singleModelRef as Cls, v)) as unknown as Value;
|
|
246
213
|
} else if (modelRef === Map && value instanceof Map) {
|
|
214
|
+
if (!of) throw new Error("A Map needs its value type (of) to serialize");
|
|
247
215
|
return Object.fromEntries(
|
|
248
|
-
[...value.entries()].map(([key,
|
|
249
|
-
return [key, ConstantRegistry.serialize(value as Cls, value)];
|
|
250
|
-
}),
|
|
216
|
+
[...value.entries()].map(([key, entry]: [string, unknown]) => [key, ConstantRegistry.serialize(of, entry)]),
|
|
251
217
|
) as unknown as Value;
|
|
252
218
|
} else if (PrimitiveRegistry.has(modelRef as Cls)) {
|
|
253
219
|
return (modelRef as typeof PrimitiveScalar)._serialize(value as PrimitiveValue) as unknown as Value;
|
|
@@ -255,17 +221,15 @@ export class ConstantRegistry {
|
|
|
255
221
|
return serialize(modelRef as ConstantCls, 0, value, "object", { nullable }) as unknown as Value;
|
|
256
222
|
} else throw new Error(`No serialize function for modelRef: ${modelRef}`);
|
|
257
223
|
}
|
|
258
|
-
static deserialize<Value>(modelRef: Cls | Cls[], value: Value, nullable: boolean = false): Value {
|
|
224
|
+
static deserialize<Value>(modelRef: Cls | Cls[], value: Value, nullable: boolean = false, of?: Cls | Cls[]): Value {
|
|
259
225
|
if (Array.isArray(value) && Array.isArray(modelRef)) {
|
|
260
226
|
const singleModelRef = modelRef.at(0);
|
|
261
227
|
if (!singleModelRef) throw new Error("No model ref found");
|
|
262
228
|
return value.map((v: object) => ConstantRegistry.deserialize(singleModelRef as Cls, v)) as unknown as Value;
|
|
263
|
-
} else if (modelRef === Map && value
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
}),
|
|
268
|
-
) as unknown as Value;
|
|
229
|
+
} else if (modelRef === Map && value !== null && typeof value === "object") {
|
|
230
|
+
if (!of) throw new Error("A Map needs its value type (of) to deserialize");
|
|
231
|
+
const entries: [string, unknown][] = value instanceof Map ? [...value.entries()] : Object.entries(value);
|
|
232
|
+
return new Map(entries.map(([key, entry]) => [key, ConstantRegistry.deserialize(of, entry)])) as unknown as Value;
|
|
269
233
|
} else if (PrimitiveRegistry.has(modelRef as Cls)) {
|
|
270
234
|
return (modelRef as typeof PrimitiveScalar)._parse(value as PrimitiveValue) as unknown as Value;
|
|
271
235
|
} else if (ConstantRegistry.modelRefNameMap.has(modelRef as Cls)) {
|