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/akanServer.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { AkanWebConfig, AkanWebOption } from "akanjs";
|
|
2
2
|
import { type BackendEnv, type BaseEnv, getApiPrefix, getEnv, getWsPrefix, normalizeRoutePrefix } from "akanjs/base";
|
|
3
|
-
import { Logger,
|
|
3
|
+
import { Logger, parseBasePaths, websocketBinaryFrameContract } from "akanjs/common";
|
|
4
4
|
import { DictionaryLookup, DictionaryRegistry } from "akanjs/dictionary";
|
|
5
5
|
import type {
|
|
6
6
|
Adaptor,
|
|
@@ -13,13 +13,13 @@ import type {
|
|
|
13
13
|
SolidConfig,
|
|
14
14
|
} from "akanjs/service";
|
|
15
15
|
import type { ServerSignal, ServerSignalCls, WebsocketPublishData } from "akanjs/signal";
|
|
16
|
+
import { AgentMeter } from "../signal/agentMeter";
|
|
16
17
|
import { CrossSiteGuard } from "../signal/CrossSiteGuard";
|
|
17
18
|
import { AgentRelayAccess } from "../signal/guards";
|
|
18
19
|
import { createOpenApiDocument } from "../signal/openapi";
|
|
19
20
|
import { FetchSerializer } from "../signal/serializer";
|
|
20
21
|
import { SignalContext } from "../signal/signalContext";
|
|
21
22
|
import type { AkanLib, AkanLibProps } from "./akanLib";
|
|
22
|
-
import type { BuilderRpc } from "./artifact";
|
|
23
23
|
import { BinaryPubsub } from "./binaryPubsub";
|
|
24
24
|
import { DevtoolsRouter } from "./devtools";
|
|
25
25
|
import { DiLifecycle } from "./di/diLifecycle";
|
|
@@ -34,10 +34,13 @@ import { LogHub } from "./logging/logHub";
|
|
|
34
34
|
import { LogStreamRoute } from "./logging/logStreamRoute";
|
|
35
35
|
import { RotatingLogWriter } from "./logging/rotatingLogWriter";
|
|
36
36
|
import { type McpAuthOption, type McpRateLimitOption, McpRouter } from "./mcp";
|
|
37
|
+
import { AppInfo } from "./ops/appInfo";
|
|
38
|
+
import { OpsRoute } from "./ops/opsRoute";
|
|
39
|
+
import { SqliteFiles } from "./ops/sqliteFiles";
|
|
37
40
|
import { ProcessMetricsCollector } from "./processMetricsCollector";
|
|
38
41
|
import { WebProxyRunner } from "./proxy";
|
|
39
42
|
import { SignalResolver } from "./resolver";
|
|
40
|
-
import { ApiRouter } from "./routing/apiRouter";
|
|
43
|
+
import { type ApiRouteInputs, ApiRouter } from "./routing/apiRouter";
|
|
41
44
|
import type { AppWsData } from "./routing/appWsData";
|
|
42
45
|
import { createSoloAppRoutes } from "./routing/soloAppRoutes";
|
|
43
46
|
import {
|
|
@@ -60,83 +63,43 @@ export interface AkanServerOptions {
|
|
|
60
63
|
openapi?: boolean;
|
|
61
64
|
/** `/mcp` is mounted by default; `false` takes it off, and the object form carries the rest of its settings. */
|
|
62
65
|
mcp?: boolean | McpServerOption;
|
|
63
|
-
/**
|
|
64
|
-
* Boot only these modules and the ones they reach; every other module stays out of the container, so its
|
|
65
|
-
* services, signals, routes and schedules do not exist. Omitted or empty mounts every enabled module.
|
|
66
|
-
*/
|
|
66
|
+
/** Boot only these modules and what they reach; omitted or empty mounts every enabled module. */
|
|
67
67
|
modules?: string[];
|
|
68
|
-
/**
|
|
69
|
-
* The inverse of `modules`: mount everything except these and whatever reaches them. Written for a lib the
|
|
70
|
-
* app depends on but does not serve — `server.ts` is generated from the dependency graph, so a lib cannot be
|
|
71
|
-
* dropped by editing it. Applied after `modules`, so a module named by both stays out.
|
|
72
|
-
*/
|
|
68
|
+
/** Mount all but these and whatever reaches them; applied after `modules`, so one named by both stays out. */
|
|
73
69
|
disableModules?: string[];
|
|
74
|
-
/**
|
|
75
|
-
* The same, by owning lib: every module the named libs registered stays out, along with everything that
|
|
76
|
-
* reaches one. This is the spelling for a lib the app depends on but does not serve — it does not drift as
|
|
77
|
-
* the lib gains modules.
|
|
78
|
-
*/
|
|
70
|
+
/** Like `disableModules`, by owning lib, so it does not drift as the lib gains modules. */
|
|
79
71
|
disableLibs?: string[];
|
|
80
72
|
}
|
|
81
73
|
|
|
82
74
|
export interface McpServerOption {
|
|
83
75
|
enabled?: boolean;
|
|
84
|
-
/**
|
|
85
|
-
* Drops every mutation from the catalogue whatever its guards allow — for a deployment that must not be able to
|
|
86
|
-
* write, such as a read replica or a demo. Off by default, and reported per endpoint in the boot log, because a
|
|
87
|
-
* switch that silently unlists a published endpoint cannot tell its author why it vanished.
|
|
88
|
-
*/
|
|
76
|
+
/** Drops every mutation from the catalogue whatever its guards allow; off by default, reported per endpoint. */
|
|
89
77
|
readOnly?: boolean;
|
|
90
|
-
/**
|
|
91
|
-
* Mount path, `/mcp` by default. The published OAuth resource identifier follows it, so changing it changes
|
|
92
|
-
* the `aud` a token has to carry.
|
|
93
|
-
*/
|
|
78
|
+
/** Mount path, `/mcp` by default; the OAuth resource id (the `aud` a token must carry) follows it. */
|
|
94
79
|
path?: string;
|
|
95
|
-
/** Reported as `serverInfo.version
|
|
80
|
+
/** Reported as `serverInfo.version`; `0.0.0` by default. */
|
|
96
81
|
version?: string;
|
|
97
|
-
/**
|
|
98
|
-
* Free-text usage guidance handed to the model alongside the tool list — the one place to say what this app
|
|
99
|
-
* is for and which tool to reach for first. Defaults to a bare one-liner naming the app.
|
|
100
|
-
*/
|
|
82
|
+
/** Guidance handed to the model with the tool list; defaults to a one-liner naming the app. */
|
|
101
83
|
instructions?: string;
|
|
102
|
-
/**
|
|
103
|
-
* Extra origins allowed past the DNS-rebinding check, beyond the server's own host. Needed only for a
|
|
104
|
-
* browser-hosted MCP client; native ones send no `Origin` at all.
|
|
105
|
-
*/
|
|
84
|
+
/** Origins let past the DNS-rebinding check beyond the server's own host (only browser-hosted clients send one). */
|
|
106
85
|
allowedOrigins?: string[];
|
|
107
|
-
/** Entries per catalogue page. A client that wants the whole list follows `nextCursor` until it stops. */
|
|
108
86
|
pageSize?: number;
|
|
109
|
-
/**
|
|
110
|
-
* The one language the catalogue and its error text are written in, `en` by default. Server-wide on purpose:
|
|
111
|
-
* the document is built once at boot and cached by clients, and it is read by a model rather than by a person.
|
|
112
|
-
*/
|
|
87
|
+
/** Language of the catalogue and its error text, `en` by default; server-wide because clients cache the document. */
|
|
113
88
|
language?: string;
|
|
114
|
-
/**
|
|
115
|
-
* Whether a structured result also ships as serialized JSON in the text block, `true` by default because that
|
|
116
|
-
* is what the spec asks of a server for clients that predate `structuredContent`. It is also a flat doubling:
|
|
117
|
-
* every model-returning tool sends its whole payload twice, so a deployment whose clients read the structured
|
|
118
|
-
* half turns this off and halves what each of those calls costs the model. `AKAN_MCP_LEGACY_TEXT=false`.
|
|
119
|
-
*/
|
|
89
|
+
/** Repeat structured results as JSON in the text block, per spec; `true` by default. `AKAN_MCP_LEGACY_TEXT`. */
|
|
120
90
|
legacyTextBlock?: boolean;
|
|
121
91
|
/**
|
|
122
|
-
*
|
|
123
|
-
*
|
|
124
|
-
* listing is re-sent to every agent that connects, and the nested closures were most of it. `AKAN_MCP_OUTPUT_SCHEMA`.
|
|
92
|
+
* `shallow` (default) names nested models, `full` inlines the whole closure, `none` publishes no `outputSchema` and
|
|
93
|
+
* keeps the text block on. `AKAN_MCP_OUTPUT_SCHEMA`.
|
|
125
94
|
*/
|
|
126
95
|
outputSchema?: "full" | "shallow" | "none";
|
|
127
|
-
/** OAuth resource-server identity: which issuers a client may authenticate with, and the scopes to demand. */
|
|
128
96
|
auth?: McpAuthOption;
|
|
129
97
|
/**
|
|
130
|
-
* Per-caller budget for
|
|
131
|
-
*
|
|
132
|
-
* `off` to disable) and `AKAN_MCP_CONCURRENT`.
|
|
98
|
+
* Per-caller budget for tools/call, resources/read and prompts/get: 120/min and 8 in flight per process by default;
|
|
99
|
+
* `false` disables. `AKAN_MCP_RATE_LIMIT` (`<calls>[/<seconds>]` or `off`), `AKAN_MCP_CONCURRENT`.
|
|
133
100
|
*/
|
|
134
101
|
rateLimit?: McpRateLimitOption | false;
|
|
135
|
-
/**
|
|
136
|
-
* Characters of screen data one page prompt may attach before its lists are cut, 60,000 by default. A page's
|
|
137
|
-
* `{ limit: 0 }` is right for a screen and wrong for a model's window, so the cap is the server's, not the
|
|
138
|
-
* page's. `AKAN_MCP_PROMPT_BUDGET`.
|
|
139
|
-
*/
|
|
102
|
+
/** Characters a page prompt may attach before its lists are cut; 60,000 by default. `AKAN_MCP_PROMPT_BUDGET`. */
|
|
140
103
|
promptBudget?: number;
|
|
141
104
|
}
|
|
142
105
|
|
|
@@ -147,7 +110,6 @@ interface AkanAppPrepared {
|
|
|
147
110
|
builtinRoutes: HttpRoutes;
|
|
148
111
|
renderEnvRoutes: HttpRoutes;
|
|
149
112
|
hmrHub: HmrWsHub | null;
|
|
150
|
-
builderRpc: BuilderRpc | null;
|
|
151
113
|
webRouter: WebRouter | null;
|
|
152
114
|
webProxyRunner: WebProxyRunner | null;
|
|
153
115
|
}
|
|
@@ -167,7 +129,6 @@ export interface AkanServerConsoleInfo {
|
|
|
167
129
|
|
|
168
130
|
export class AkanServer {
|
|
169
131
|
status: "stopped" | "initializing" | "initialized" | "starting" | "running" | "stopping" = "stopped";
|
|
170
|
-
|
|
171
132
|
#server: Bun.Server<AppWsData | HmrWsData> | null = null;
|
|
172
133
|
#wsServer: Bun.Server<AppWsData | HmrWsData> | null = null;
|
|
173
134
|
#prepared: AkanAppPrepared | null = null;
|
|
@@ -177,8 +138,9 @@ export class AkanServer {
|
|
|
177
138
|
readonly env: BackendEnv;
|
|
178
139
|
prefix = getApiPrefix();
|
|
179
140
|
websocketPrefix = getWsPrefix();
|
|
180
|
-
openapi = AkanServer.#
|
|
181
|
-
|
|
141
|
+
openapi = AkanServer.#isEnvEnabled("AKAN_OPENAPI", "AKAN_PUBLIC_OPENAPI");
|
|
142
|
+
|
|
143
|
+
mcp = !AkanServer.#isEnvOff("AKAN_MCP", "AKAN_PUBLIC_MCP");
|
|
182
144
|
mcpReadOnly = AkanServer.#isEnvEnabled("AKAN_MCP_READONLY", "AKAN_PUBLIC_MCP_READONLY");
|
|
183
145
|
mcpAuth: McpAuthOption = AkanServer.#mcpAuthFromEnv();
|
|
184
146
|
mcpOption: Omit<McpServerOption, "enabled" | "readOnly" | "auth"> = AkanServer.#mcpOptionFromEnv();
|
|
@@ -194,21 +156,17 @@ export class AkanServer {
|
|
|
194
156
|
#localPublish: LocalPublish | null = null;
|
|
195
157
|
readonly #binaryPubsub = new BinaryPubsub();
|
|
196
158
|
#metricsTimer: Timer | null = null;
|
|
197
|
-
|
|
198
|
-
* No gateway socket means nothing is proxying this process, so it owns the whole surface: the
|
|
199
|
-
* `/_akan/app/*` observability routes the gateway would have answered, and the rotating log file the
|
|
200
|
-
* gateway would have written. Derived rather than declared — a spawned child always carries the socket,
|
|
201
|
-
* so the two modes cannot disagree about which one this is.
|
|
202
|
-
*/
|
|
159
|
+
|
|
203
160
|
readonly #solo = !process.env.AKAN_CHILD_SOCKET;
|
|
204
161
|
#logWriter: RotatingLogWriter | null = null;
|
|
205
|
-
#
|
|
162
|
+
#detachFileLog: (() => void) | null = null;
|
|
206
163
|
#logHub: LogHub | null = null;
|
|
207
164
|
#logControl: LogControlSocket | null = null;
|
|
208
165
|
#logForwarder: LogForwarder | null = null;
|
|
209
|
-
#hubFileSink: HubFileSink | null = null;
|
|
210
166
|
#logStream: LogStreamRoute | null = null;
|
|
167
|
+
#ops: OpsRoute | null | undefined;
|
|
211
168
|
#lastMetrics: AkanMetricsReport = {};
|
|
169
|
+
#stopping: Promise<void> | null = null;
|
|
212
170
|
constructor(
|
|
213
171
|
name = "AkanServer",
|
|
214
172
|
env: BackendEnv = {},
|
|
@@ -231,6 +189,8 @@ export class AkanServer {
|
|
|
231
189
|
if (mcp !== undefined) this.setMcp(mcp);
|
|
232
190
|
const agentAccess = lib.option.getAgentAccess();
|
|
233
191
|
if (agentAccess !== undefined) AgentRelayAccess.use(agentAccess);
|
|
192
|
+
const [usage, quota] = [lib.option.getAgentUsage(), lib.option.getAgentQuota()];
|
|
193
|
+
if (usage !== undefined || quota !== undefined) AgentMeter.use({ usage, quota });
|
|
234
194
|
const crossSite = lib.option.getCrossSite();
|
|
235
195
|
if (crossSite !== undefined) CrossSiteGuard.configure(crossSite);
|
|
236
196
|
});
|
|
@@ -260,7 +220,7 @@ export class AkanServer {
|
|
|
260
220
|
this.openapi = openapi;
|
|
261
221
|
return this;
|
|
262
222
|
}
|
|
263
|
-
/** Narrows the web surface
|
|
223
|
+
/** Narrows the web surface; never widens it past what the build produced. */
|
|
264
224
|
setWeb(web: AkanWebOption = true) {
|
|
265
225
|
if (this.status !== "stopped") throw new Error("Web config must be set before app initialization.");
|
|
266
226
|
this.web = AkanServer.#narrowWeb(this.web, web);
|
|
@@ -268,7 +228,9 @@ export class AkanServer {
|
|
|
268
228
|
}
|
|
269
229
|
setMcp(mcp: boolean | McpServerOption = true) {
|
|
270
230
|
if (this.status !== "stopped") throw new Error("MCP config must be set before app initialization.");
|
|
271
|
-
|
|
231
|
+
|
|
232
|
+
const requested = typeof mcp === "boolean" ? mcp : (mcp.enabled ?? this.mcp);
|
|
233
|
+
this.mcp = requested && !AkanServer.#isEnvOff("AKAN_MCP", "AKAN_PUBLIC_MCP");
|
|
272
234
|
if (typeof mcp === "boolean") return this;
|
|
273
235
|
const { enabled: _enabled, readOnly, auth, ...rest } = mcp;
|
|
274
236
|
if (readOnly !== undefined) this.mcpReadOnly = readOnly;
|
|
@@ -357,7 +319,6 @@ export class AkanServer {
|
|
|
357
319
|
builtinRoutes: this.#createBuiltinRoutes(null),
|
|
358
320
|
renderEnvRoutes: {},
|
|
359
321
|
hmrHub: null,
|
|
360
|
-
builderRpc: null,
|
|
361
322
|
webRouter: null,
|
|
362
323
|
webProxyRunner: null,
|
|
363
324
|
};
|
|
@@ -374,7 +335,7 @@ export class AkanServer {
|
|
|
374
335
|
web: requestedWeb,
|
|
375
336
|
upgradeHmrWs: (req, data) => this.#server?.upgrade(req, { data }) ?? false,
|
|
376
337
|
});
|
|
377
|
-
|
|
338
|
+
|
|
378
339
|
if (!webRouter) {
|
|
379
340
|
this.web = { ssr: false, csr: false };
|
|
380
341
|
this.logger.warn("web off: no build artifact under .akan/artifact; serving api only");
|
|
@@ -382,7 +343,7 @@ export class AkanServer {
|
|
|
382
343
|
}
|
|
383
344
|
this.web = webRouter.web;
|
|
384
345
|
this.logger.verbose(`web on: ssr=${this.web.ssr} csr=${this.web.csr}`);
|
|
385
|
-
const { renderEnvRoutes, hmrHub
|
|
346
|
+
const { renderEnvRoutes, hmrHub } = await webRouter.initializeRoute();
|
|
386
347
|
const webProxyRunner = WebProxyRunner.create(this.#di.webProxies);
|
|
387
348
|
this.#prepared = {
|
|
388
349
|
routes,
|
|
@@ -391,7 +352,6 @@ export class AkanServer {
|
|
|
391
352
|
builtinRoutes: this.#createBuiltinRoutes(webRouter),
|
|
392
353
|
renderEnvRoutes,
|
|
393
354
|
hmrHub,
|
|
394
|
-
builderRpc,
|
|
395
355
|
webRouter,
|
|
396
356
|
webProxyRunner,
|
|
397
357
|
};
|
|
@@ -424,23 +384,23 @@ export class AkanServer {
|
|
|
424
384
|
logger: this.logger,
|
|
425
385
|
onDrain: () => this.#binaryPubsub.flush(),
|
|
426
386
|
}),
|
|
427
|
-
|
|
428
387
|
data: {},
|
|
429
388
|
} as Bun.WebSocketHandler<AppWsData | HmrWsData>;
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
idleTimeout: 0,
|
|
433
|
-
...(unix ? { unix } : { port }),
|
|
434
|
-
routes: ApiRouter.buildRoutes({
|
|
389
|
+
const buildRoutes = (upgradeAppWs: ApiRouteInputs["upgradeAppWs"]) =>
|
|
390
|
+
ApiRouter.buildRoutes({
|
|
435
391
|
prefix: this.prefix,
|
|
436
392
|
websocketPrefix: this.websocketPrefix,
|
|
437
393
|
routes,
|
|
438
394
|
builtinRoutes,
|
|
439
395
|
routeOptions,
|
|
440
396
|
renderEnvRoutes,
|
|
441
|
-
upgradeAppWs
|
|
397
|
+
upgradeAppWs,
|
|
442
398
|
webProxyRunner,
|
|
443
|
-
})
|
|
399
|
+
});
|
|
400
|
+
this.#server = Bun.serve({
|
|
401
|
+
idleTimeout: 0,
|
|
402
|
+
...(unix ? { unix } : { port }),
|
|
403
|
+
routes: buildRoutes((req, data) => this.#server?.upgrade(req, { data }) ?? false),
|
|
444
404
|
websocket: websocketHandlers,
|
|
445
405
|
} as Parameters<typeof Bun.serve>[0]);
|
|
446
406
|
if (unix && process.env.AKAN_CHILD_WS_PORT) {
|
|
@@ -448,23 +408,14 @@ export class AkanServer {
|
|
|
448
408
|
const wsServeOptions = (port: number) => ({
|
|
449
409
|
idleTimeout: 0,
|
|
450
410
|
port,
|
|
451
|
-
routes:
|
|
452
|
-
prefix: this.prefix,
|
|
453
|
-
websocketPrefix: this.websocketPrefix,
|
|
454
|
-
routes,
|
|
455
|
-
builtinRoutes,
|
|
456
|
-
routeOptions,
|
|
457
|
-
renderEnvRoutes,
|
|
458
|
-
upgradeAppWs: (req: Request, data: AppWsData) => this.#wsServer?.upgrade(req, { data }) ?? false,
|
|
459
|
-
webProxyRunner,
|
|
460
|
-
}),
|
|
411
|
+
routes: buildRoutes((req, data) => this.#wsServer?.upgrade(req, { data }) ?? false),
|
|
461
412
|
websocket: websocketHandlers,
|
|
462
413
|
});
|
|
463
414
|
try {
|
|
464
415
|
this.#wsServer = Bun.serve(wsServeOptions(preferredWsPort));
|
|
465
416
|
} catch (error) {
|
|
466
417
|
if (!isPortInUseError(error)) throw error;
|
|
467
|
-
|
|
418
|
+
|
|
468
419
|
this.logger.warn(`ws port ${preferredWsPort} is in use; falling back to an ephemeral port`);
|
|
469
420
|
this.#wsServer = Bun.serve(wsServeOptions(0));
|
|
470
421
|
}
|
|
@@ -473,7 +424,7 @@ export class AkanServer {
|
|
|
473
424
|
|
|
474
425
|
const server = this.#server;
|
|
475
426
|
const wsServer = this.#wsServer;
|
|
476
|
-
|
|
427
|
+
|
|
477
428
|
SignalContext.setHttpPeerResolver((req) => server?.requestIP(req as Bun.BunRequest) ?? null);
|
|
478
429
|
hmrHub?.setPublisher((topic, payload) => {
|
|
479
430
|
server?.publish(topic, payload);
|
|
@@ -498,7 +449,7 @@ export class AkanServer {
|
|
|
498
449
|
this.#localPublish = localPublish;
|
|
499
450
|
|
|
500
451
|
this.status = "running";
|
|
501
|
-
this.#
|
|
452
|
+
this.#metricsTimer ??= ProcessMetricsCollector.startReporting(() => this.#reportMetrics());
|
|
502
453
|
this.#di.registerSchedule(this.serverMode);
|
|
503
454
|
this.logger.verbose(`🚀 ${this.name} is running on ${unix ? `unix://${unix}` : `port ${port}`}`);
|
|
504
455
|
const wsPort = this.#wsServer?.port;
|
|
@@ -527,7 +478,7 @@ export class AkanServer {
|
|
|
527
478
|
this.status = "running";
|
|
528
479
|
if (!isNoListenCommand) {
|
|
529
480
|
Logger.role = this.serverMode;
|
|
530
|
-
this.#
|
|
481
|
+
this.#metricsTimer ??= ProcessMetricsCollector.startReporting(() => this.#reportMetrics());
|
|
531
482
|
this.#di.registerSchedule(this.serverMode);
|
|
532
483
|
this.#registerParentIpc();
|
|
533
484
|
await this.#startLogTransport();
|
|
@@ -545,8 +496,15 @@ export class AkanServer {
|
|
|
545
496
|
this.#registerParentIpc();
|
|
546
497
|
return this.listen();
|
|
547
498
|
}
|
|
548
|
-
|
|
549
|
-
|
|
499
|
+
stop(): Promise<void> {
|
|
500
|
+
this.#stopping ??= this.#stop().finally(() => {
|
|
501
|
+
this.#stopping = null;
|
|
502
|
+
});
|
|
503
|
+
return this.#stopping;
|
|
504
|
+
}
|
|
505
|
+
|
|
506
|
+
async #stop() {
|
|
507
|
+
if (this.status !== "running" && this.status !== "initialized") {
|
|
550
508
|
this.logger.warn("AkanServer is not running. Cannot stop.");
|
|
551
509
|
return;
|
|
552
510
|
}
|
|
@@ -555,7 +513,8 @@ export class AkanServer {
|
|
|
555
513
|
const now = Date.now();
|
|
556
514
|
this.logger.info("Shutting down gracefully...");
|
|
557
515
|
this.status = "stopping";
|
|
558
|
-
this.#
|
|
516
|
+
if (this.#metricsTimer) clearInterval(this.#metricsTimer);
|
|
517
|
+
this.#metricsTimer = null;
|
|
559
518
|
this.#di.getWebsocketAdaptor()?.clearEventHandler();
|
|
560
519
|
this.#server?.stop(true);
|
|
561
520
|
this.#wsServer?.stop(true);
|
|
@@ -583,10 +542,6 @@ export class AkanServer {
|
|
|
583
542
|
process.on("disconnect", () => this.#handleParentDisconnect());
|
|
584
543
|
}
|
|
585
544
|
|
|
586
|
-
/**
|
|
587
|
-
* The IPC channel closes when the parent gateway dies (including SIGKILL). Exiting here keeps a
|
|
588
|
-
* killed dev/gateway run from stranding replicas that would hold ports and break the next boot.
|
|
589
|
-
*/
|
|
590
545
|
#handleParentDisconnect() {
|
|
591
546
|
this.logger.warn("Parent IPC channel closed; shutting down to avoid an orphaned replica");
|
|
592
547
|
setTimeout(() => process.exit(1), this.shutdownTimeoutMs + 1_000);
|
|
@@ -597,9 +552,7 @@ export class AkanServer {
|
|
|
597
552
|
|
|
598
553
|
#handleIpcMessage(message: AkanIpcMessage) {
|
|
599
554
|
if (!message || typeof message !== "object") return;
|
|
600
|
-
if (message.type === "
|
|
601
|
-
this.#localPublish?.(message.roomId, message.data as object | object[] | Uint8Array);
|
|
602
|
-
else if (message.type === "health.ping")
|
|
555
|
+
if (message.type === "health.ping")
|
|
603
556
|
process.send?.({
|
|
604
557
|
type: "health.pong",
|
|
605
558
|
nonce: message.nonce,
|
|
@@ -616,15 +569,6 @@ export class AkanServer {
|
|
|
616
569
|
}
|
|
617
570
|
}
|
|
618
571
|
|
|
619
|
-
#startMetricsReporting() {
|
|
620
|
-
if (this.#metricsTimer) return;
|
|
621
|
-
const report = () => {
|
|
622
|
-
void this.#reportMetrics();
|
|
623
|
-
};
|
|
624
|
-
report();
|
|
625
|
-
this.#metricsTimer = setInterval(report, ProcessMetricsCollector.parseMemoryLogIntervalMs());
|
|
626
|
-
}
|
|
627
|
-
|
|
628
572
|
async #reportMetrics() {
|
|
629
573
|
const metrics = await ProcessMetricsCollector.collect({
|
|
630
574
|
role: this.serverMode,
|
|
@@ -638,12 +582,6 @@ export class AkanServer {
|
|
|
638
582
|
}
|
|
639
583
|
}
|
|
640
584
|
|
|
641
|
-
#stopMetricsReporting() {
|
|
642
|
-
if (!this.#metricsTimer) return;
|
|
643
|
-
clearInterval(this.#metricsTimer);
|
|
644
|
-
this.#metricsTimer = null;
|
|
645
|
-
}
|
|
646
|
-
|
|
647
585
|
#assertCanGet(type = "Dependency", refName?: string) {
|
|
648
586
|
if (this.status === "initialized" || this.status === "running") return;
|
|
649
587
|
const target = refName ? `${type} "${refName}"` : type;
|
|
@@ -653,14 +591,6 @@ export class AkanServer {
|
|
|
653
591
|
);
|
|
654
592
|
}
|
|
655
593
|
|
|
656
|
-
/**
|
|
657
|
-
* Names, once at boot, every configured locale the dictionaries never wrote.
|
|
658
|
-
*
|
|
659
|
-
* A dictionary declares its own locale tuple and a lib ships that tuple to every app that mounts it, so an app
|
|
660
|
-
* that configures a third locale cannot widen it from the outside — the framework's own `base.*` keys included.
|
|
661
|
-
* Those keys then resolve through the default-locale fallback, which is a readable screen and therefore a
|
|
662
|
-
* silent one: the only other symptom is text that never turned into the new language.
|
|
663
|
-
*/
|
|
664
594
|
#reportLocaleCoverage() {
|
|
665
595
|
for (const { locale, missing, total } of DictionaryRegistry.getLocaleGaps()) {
|
|
666
596
|
const listed = missing.slice(0, 10).join(", ");
|
|
@@ -671,11 +601,6 @@ export class AkanServer {
|
|
|
671
601
|
}
|
|
672
602
|
}
|
|
673
603
|
|
|
674
|
-
/**
|
|
675
|
-
* Takes the web router as an argument rather than reading `this.#prepared`: this runs while the `#prepared`
|
|
676
|
-
* literal is still being built, so the field is `null` here on every first boot — which is how page prompts
|
|
677
|
-
* shipped unadvertised once.
|
|
678
|
-
*/
|
|
679
604
|
#createBuiltinRoutes(webRouter: WebRouter | null): HttpRoutes {
|
|
680
605
|
const { appName } = getEnv();
|
|
681
606
|
const openapiRoutes: HttpRoutes = this.openapi
|
|
@@ -693,7 +618,7 @@ export class AkanServer {
|
|
|
693
618
|
},
|
|
694
619
|
}
|
|
695
620
|
: {};
|
|
696
|
-
|
|
621
|
+
|
|
697
622
|
const mcpRouter =
|
|
698
623
|
this.mcp && this.serverMode !== "batch"
|
|
699
624
|
? new McpRouter({
|
|
@@ -720,12 +645,13 @@ export class AkanServer {
|
|
|
720
645
|
metrics: this.#lastMetrics,
|
|
721
646
|
}),
|
|
722
647
|
this.#logStream,
|
|
648
|
+
this.#opsRoute(),
|
|
723
649
|
)
|
|
724
650
|
: {};
|
|
725
|
-
|
|
651
|
+
|
|
726
652
|
mcpRouter?.report();
|
|
727
653
|
this.#reportLocaleCoverage();
|
|
728
|
-
|
|
654
|
+
|
|
729
655
|
const devtoolsRoutes = new DevtoolsRouter({
|
|
730
656
|
di: this.#di,
|
|
731
657
|
env: getEnv(),
|
|
@@ -739,36 +665,46 @@ export class AkanServer {
|
|
|
739
665
|
return { ...openapiRoutes, ...mcpRoutes, ...devtoolsRoutes, ...soloRoutes };
|
|
740
666
|
}
|
|
741
667
|
|
|
668
|
+
#opsRoute() {
|
|
669
|
+
if (this.#ops !== undefined) return this.#ops;
|
|
670
|
+
this.#ops = OpsRoute.fromEnv({
|
|
671
|
+
detail: () => AppInfo.detail({ serverMode: this.serverMode, solo: true, replicaIdx: 0 }),
|
|
672
|
+
sources: () => this.#sqliteSources(),
|
|
673
|
+
});
|
|
674
|
+
return this.#ops;
|
|
675
|
+
}
|
|
676
|
+
|
|
677
|
+
#sqliteSources() {
|
|
678
|
+
const fromEnv = SqliteFiles.fromEnv();
|
|
679
|
+
const filePathOf = (refName: string) => {
|
|
680
|
+
try {
|
|
681
|
+
return (this.#di.getAdaptor(refName) as { config?: { filePath?: unknown } }).config?.filePath;
|
|
682
|
+
} catch {
|
|
683
|
+
return undefined;
|
|
684
|
+
}
|
|
685
|
+
};
|
|
686
|
+
const main = filePathOf("sqliteDatabase");
|
|
687
|
+
const solid = filePathOf("solidQueue") ?? filePathOf("solidCache");
|
|
688
|
+
return {
|
|
689
|
+
main: typeof main === "string" ? main : fromEnv.main,
|
|
690
|
+
solid: fromEnv.solid && typeof solid === "string" ? solid : fromEnv.solid,
|
|
691
|
+
};
|
|
692
|
+
}
|
|
693
|
+
|
|
742
694
|
#startFileLogging() {
|
|
743
695
|
if (!this.#solo || this.#logWriter) return;
|
|
744
696
|
this.#logWriter = RotatingLogWriter.fromRuntimeDir(resolveRuntimeDir());
|
|
745
|
-
if (
|
|
746
|
-
if (this.#logHub && Logger.isNdjson) {
|
|
747
|
-
this.#hubFileSink = new HubFileSink(this.#logHub, this.#logWriter, {
|
|
748
|
-
minSev: logSeverity[Logger.fileLevel],
|
|
749
|
-
json: Logger.format === "ndjson-only",
|
|
750
|
-
});
|
|
751
|
-
return;
|
|
752
|
-
}
|
|
753
|
-
this.#removeLogSink = Logger.addSink((entry) => {
|
|
754
|
-
this.#logWriter?.write(this.serverMode, entry.plainMessage);
|
|
755
|
-
});
|
|
697
|
+
if (this.#logWriter) this.#detachFileLog = HubFileSink.attach(this.#logWriter, this.#logHub, this.serverMode);
|
|
756
698
|
}
|
|
757
699
|
|
|
758
700
|
async #stopFileLogging() {
|
|
759
|
-
this.#
|
|
760
|
-
this.#
|
|
761
|
-
this.#hubFileSink?.close();
|
|
762
|
-
this.#hubFileSink = null;
|
|
701
|
+
this.#detachFileLog?.();
|
|
702
|
+
this.#detachFileLog = null;
|
|
763
703
|
const writer = this.#logWriter;
|
|
764
704
|
this.#logWriter = null;
|
|
765
705
|
await writer?.close();
|
|
766
706
|
}
|
|
767
707
|
|
|
768
|
-
/**
|
|
769
|
-
* Solo owns the hub and the control socket the gateway would have owned; a spawned child forwards its own
|
|
770
|
-
* records — and the RSC worker's, which reach it over the worker IPC — up to the gateway instead.
|
|
771
|
-
*/
|
|
772
708
|
async #startLogTransport() {
|
|
773
709
|
if (this.#logHub || this.#logForwarder) return;
|
|
774
710
|
const webRouter = this.#prepared?.webRouter ?? null;
|
|
@@ -780,20 +716,12 @@ export class AkanServer {
|
|
|
780
716
|
hub.ingestMany(records);
|
|
781
717
|
if (dropped) this.logger.warn(`RSC worker dropped ${dropped} log records (ipc backpressure)`);
|
|
782
718
|
});
|
|
783
|
-
|
|
784
|
-
try {
|
|
785
|
-
await control.start();
|
|
786
|
-
this.#logControl = control;
|
|
787
|
-
} catch (error) {
|
|
788
|
-
this.logger.warn(
|
|
789
|
-
`Log control socket unavailable at ${control.path}: ${error instanceof Error ? error.message : String(error)}`,
|
|
790
|
-
);
|
|
791
|
-
}
|
|
719
|
+
this.#logControl = await LogControlSocket.open(hub, resolveRuntimeDir(), this.logger);
|
|
792
720
|
return;
|
|
793
721
|
}
|
|
794
|
-
|
|
722
|
+
|
|
795
723
|
if (Logger.isNdjson) Logger.consoleOutput = false;
|
|
796
|
-
const forwarder = new LogForwarder((message) => process.send?.(message));
|
|
724
|
+
const forwarder = new LogForwarder((message, onSent) => process.send?.(message, undefined, undefined, onSent));
|
|
797
725
|
this.#logForwarder = forwarder;
|
|
798
726
|
webRouter?.onLogRecords((records) => forwarder.pushMany(records));
|
|
799
727
|
}
|
|
@@ -803,15 +731,10 @@ export class AkanServer {
|
|
|
803
731
|
this.#logControl = null;
|
|
804
732
|
this.#logHub?.close();
|
|
805
733
|
this.#logHub = null;
|
|
806
|
-
this.#logForwarder?.close();
|
|
734
|
+
await this.#logForwarder?.close();
|
|
807
735
|
this.#logForwarder = null;
|
|
808
736
|
}
|
|
809
737
|
|
|
810
|
-
/**
|
|
811
|
-
* Rebuilt per request rather than cached on the instance: libs register their dictionaries at module-evaluation
|
|
812
|
-
* time, and the document itself is already re-serialized per request, so a stale snapshot would be the only
|
|
813
|
-
* thing here that could disagree with the rest of the response.
|
|
814
|
-
*/
|
|
815
738
|
static #createDescriptionResolver() {
|
|
816
739
|
const lookup = new DictionaryLookup();
|
|
817
740
|
return (key: string) => lookup.text(key);
|
|
@@ -830,11 +753,6 @@ export class AkanServer {
|
|
|
830
753
|
return normalized;
|
|
831
754
|
}
|
|
832
755
|
|
|
833
|
-
/**
|
|
834
|
-
* A basePath is a whole route subtree served by the SSR catch-all, so a signal prefix that shadows one — or that
|
|
835
|
-
* a basePath shadows — silently loses every route on the losing side rather than failing anywhere a reader
|
|
836
|
-
* would look.
|
|
837
|
-
*/
|
|
838
756
|
#assertPrefixClearsBasePaths() {
|
|
839
757
|
const basePaths = parseBasePaths(process.env.AKAN_PUBLIC_BASE_PATHS);
|
|
840
758
|
const first = this.prefix.split("/")[1];
|
|
@@ -864,38 +782,20 @@ export class AkanServer {
|
|
|
864
782
|
);
|
|
865
783
|
}
|
|
866
784
|
|
|
867
|
-
static #isOpenApiEnvEnabled() {
|
|
868
|
-
return AkanServer.#isEnvEnabled("AKAN_OPENAPI", "AKAN_PUBLIC_OPENAPI");
|
|
869
|
-
}
|
|
870
|
-
|
|
871
785
|
static #isEnvEnabled(...names: string[]) {
|
|
872
786
|
return names.some((name) => process.env[name] === "true" || process.env[name] === "1");
|
|
873
787
|
}
|
|
874
788
|
|
|
875
|
-
/**
|
|
876
|
-
* On unless the env says otherwise, which is the opposite of `#isEnvEnabled`.
|
|
877
|
-
*
|
|
878
|
-
* MCP exposure follows an endpoint's guards rather than an opt-in, so there is nothing an app has to declare for
|
|
879
|
-
* its catalogue to be right — and a switch that must be found before anything works is a switch most deployments
|
|
880
|
-
* never find. `AKAN_MCP=false` is the way off.
|
|
881
|
-
*/
|
|
882
|
-
static #isEnvOn(...names: string[]) {
|
|
883
|
-
return !names.some((name) => process.env[name] === "false" || process.env[name] === "0");
|
|
884
|
-
}
|
|
885
|
-
|
|
886
|
-
/** Narrows only — a surface the build or the env left out cannot be switched back on here. */
|
|
887
789
|
static #narrowWeb(current: AkanWebConfig, web: AkanWebOption | undefined): AkanWebConfig {
|
|
888
790
|
if (web === undefined || web === true) return current;
|
|
889
791
|
if (web === false) return { ssr: false, csr: false };
|
|
890
792
|
return { ssr: current.ssr, csr: web.csr && current.csr };
|
|
891
793
|
}
|
|
892
794
|
|
|
893
|
-
/** Named rather than defaulted: an absent env must leave the option unset so a value written in code still wins. */
|
|
894
795
|
static #isEnvOff(...names: string[]) {
|
|
895
796
|
return names.some((name) => process.env[name] === "false" || process.env[name] === "0");
|
|
896
797
|
}
|
|
897
798
|
|
|
898
|
-
/** Both differ per environment, so they belong in env rather than in the app's source alongside the switch. */
|
|
899
799
|
static #mcpAuthFromEnv(): McpAuthOption {
|
|
900
800
|
const authorizationServers = AkanServer.#envList("AKAN_MCP_AUTH_SERVERS");
|
|
901
801
|
const scopes = AkanServer.#envList("AKAN_MCP_SCOPES");
|
|
@@ -906,16 +806,6 @@ export class AkanServer {
|
|
|
906
806
|
};
|
|
907
807
|
}
|
|
908
808
|
|
|
909
|
-
/**
|
|
910
|
-
* The rest of `McpServerOption`, spelled as environment — the channel a deployment configures what the source
|
|
911
|
-
* does not through, and the only one a child of the gateway is handed. An app writes these in its `option.ts`,
|
|
912
|
-
* which merges over this: a value written in code wins over the env of the same name.
|
|
913
|
-
*/
|
|
914
|
-
/**
|
|
915
|
-
* Keys whose value is `undefined` are dropped before the merge. "An option written in code wins over the env of
|
|
916
|
-
* the same name" is the contract, and a spread reads an explicitly-`undefined` property as a value — so
|
|
917
|
-
* `{ path: undefined }` from a caller assembling options conditionally erased what the environment supplied.
|
|
918
|
-
*/
|
|
919
809
|
static #defined<T extends object>(source: T): Partial<T> {
|
|
920
810
|
return Object.fromEntries(Object.entries(source).filter(([, value]) => value !== undefined)) as Partial<T>;
|
|
921
811
|
}
|
|
@@ -938,7 +828,6 @@ export class AkanServer {
|
|
|
938
828
|
};
|
|
939
829
|
}
|
|
940
830
|
|
|
941
|
-
/** `AKAN_MCP_RATE_LIMIT=off` disables; `120` is per minute, `120/30` per thirty seconds; `AKAN_MCP_CONCURRENT` caps in-flight calls. */
|
|
942
831
|
static #mcpRateLimitFromEnv(): Pick<McpServerOption, "rateLimit"> {
|
|
943
832
|
const raw = process.env.AKAN_MCP_RATE_LIMIT?.trim().toLowerCase();
|
|
944
833
|
if (raw === "off" || raw === "false" || raw === "0") return { rateLimit: false };
|
|
@@ -958,12 +847,6 @@ export class AkanServer {
|
|
|
958
847
|
return value === "full" || value === "shallow" || value === "none" ? { outputSchema: value } : {};
|
|
959
848
|
}
|
|
960
849
|
|
|
961
|
-
/**
|
|
962
|
-
* Both consumers build their path by concatenation — the route key, and the RFC 9728 metadata path the resource
|
|
963
|
-
* identifier is inserted into — so `AKAN_MCP_PATH=mcp` served a route named `mcp` and published its metadata at
|
|
964
|
-
* `/.well-known/oauth-protected-resourcemcp`, which no client would ever look for. Normalized rather than
|
|
965
|
-
* rejected: the intent is unambiguous, and a server that refuses to boot over a missing slash is worse.
|
|
966
|
-
*/
|
|
967
850
|
static #mcpPathFromEnv() {
|
|
968
851
|
const path = process.env.AKAN_MCP_PATH?.trim();
|
|
969
852
|
if (!path) return {};
|
|
@@ -977,10 +860,6 @@ export class AkanServer {
|
|
|
977
860
|
.filter(Boolean);
|
|
978
861
|
}
|
|
979
862
|
|
|
980
|
-
/**
|
|
981
|
-
* Shutdown must finish inside the gateway's child-wait budget or the layer above SIGKILLs this
|
|
982
|
-
* process and strands its resources; dev (`akan start`) keeps it short so edit-restarts stay snappy.
|
|
983
|
-
*/
|
|
984
863
|
static #defaultShutdownTimeoutMs() {
|
|
985
864
|
const configured = Number(process.env.AKAN_SHUTDOWN_TIMEOUT_MS);
|
|
986
865
|
if (Number.isFinite(configured) && configured > 0) return configured;
|