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
|
@@ -0,0 +1,325 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
CodeAgentApprovalRequest,
|
|
3
|
+
CodeAgentEvent,
|
|
4
|
+
CodeAgentQuestion,
|
|
5
|
+
CodeAgentSessionInfo,
|
|
6
|
+
CodeAgentStopReason,
|
|
7
|
+
CodeAgentSubagent,
|
|
8
|
+
CodeAgentToolOutcome,
|
|
9
|
+
CodeAgentToolSummary,
|
|
10
|
+
} from "akanjs/common";
|
|
11
|
+
|
|
12
|
+
export type CodeTranscriptPart =
|
|
13
|
+
| { kind: "user"; id: string; text: string; images?: number }
|
|
14
|
+
| { kind: "assistant"; id: string; text: string; streaming: boolean; truncated: boolean }
|
|
15
|
+
| { kind: "thinking"; id: string; text: string }
|
|
16
|
+
| {
|
|
17
|
+
kind: "tool";
|
|
18
|
+
id: string;
|
|
19
|
+
tool: CodeAgentToolSummary;
|
|
20
|
+
outcome?: CodeAgentToolOutcome;
|
|
21
|
+
output?: string;
|
|
22
|
+
progress?: string;
|
|
23
|
+
}
|
|
24
|
+
| { kind: "notice"; id: string; level: "info" | "warning" | "error"; text: string }
|
|
25
|
+
| { kind: "question"; id: string; question: CodeAgentQuestion; rendered?: string }
|
|
26
|
+
| { kind: "approval"; id: string; request: CodeAgentApprovalRequest; approved?: boolean }
|
|
27
|
+
| { kind: "host"; id: string; hostKind: string; text: string };
|
|
28
|
+
|
|
29
|
+
export class CodeTranscript {
|
|
30
|
+
readonly #parts: CodeTranscriptPart[] = [];
|
|
31
|
+
readonly #indexById = new Map<string, number>();
|
|
32
|
+
#info: CodeAgentSessionInfo | undefined;
|
|
33
|
+
#context: { used: number; max: number | undefined } | undefined;
|
|
34
|
+
#streaming = false;
|
|
35
|
+
#compacting = false;
|
|
36
|
+
#question: CodeAgentQuestion | undefined;
|
|
37
|
+
#approval: CodeAgentApprovalRequest | undefined;
|
|
38
|
+
#stopReason: CodeAgentStopReason | undefined;
|
|
39
|
+
#queue = { steering: 0, followUp: 0 };
|
|
40
|
+
#subagents: CodeAgentSubagent[] = [];
|
|
41
|
+
#openAssistant: string | undefined;
|
|
42
|
+
#openThinking: string | undefined;
|
|
43
|
+
#nextId = 0;
|
|
44
|
+
#revision = 0;
|
|
45
|
+
|
|
46
|
+
get parts(): readonly CodeTranscriptPart[] {
|
|
47
|
+
return this.#parts;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
get info() {
|
|
51
|
+
return this.#info;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
get headline() {
|
|
55
|
+
if (!this.#info) return "starting…";
|
|
56
|
+
return [
|
|
57
|
+
this.#info.model?.name ?? "no model",
|
|
58
|
+
this.#info.contextTokens ? `${Math.round(this.#info.contextTokens / 1000)}k ctx` : "unknown ctx",
|
|
59
|
+
this.#info.profile,
|
|
60
|
+
this.#info.sessionId.slice(0, 8),
|
|
61
|
+
].join(" · ");
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
get context() {
|
|
65
|
+
return this.#context;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
get streaming() {
|
|
69
|
+
return this.#streaming;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
get compacting() {
|
|
73
|
+
return this.#compacting;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
get question() {
|
|
77
|
+
return this.#question;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
get approval() {
|
|
81
|
+
return this.#approval;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
get stopReason() {
|
|
85
|
+
return this.#stopReason;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
get queue() {
|
|
89
|
+
return this.#queue;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
get subagents() {
|
|
93
|
+
return this.#subagents;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/** Bumped on every applied event. */
|
|
97
|
+
get revision() {
|
|
98
|
+
return this.#revision;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
/** Drops every row but keeps the session info; the model's own window is untouched. */
|
|
102
|
+
clear() {
|
|
103
|
+
this.#revision += 1;
|
|
104
|
+
this.#parts.length = 0;
|
|
105
|
+
this.#indexById.clear();
|
|
106
|
+
this.#openAssistant = undefined;
|
|
107
|
+
this.#openThinking = undefined;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/** A locally typed prompt, drawn before the engine echoes it back as a `message` matched by text. */
|
|
111
|
+
echo(text: string, images = 0) {
|
|
112
|
+
this.#revision += 1;
|
|
113
|
+
this.#push({ kind: "user", id: this.#id(), text, ...(images ? { images } : {}) });
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
note(level: "info" | "warning" | "error", text: string) {
|
|
117
|
+
this.#revision += 1;
|
|
118
|
+
this.#notice(level, text);
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
apply(event: CodeAgentEvent) {
|
|
122
|
+
this.#revision += 1;
|
|
123
|
+
switch (event.type) {
|
|
124
|
+
case "session":
|
|
125
|
+
this.#info = event.info;
|
|
126
|
+
return;
|
|
127
|
+
case "turn_start":
|
|
128
|
+
this.#streaming = true;
|
|
129
|
+
this.#stopReason = undefined;
|
|
130
|
+
return;
|
|
131
|
+
case "turn_end":
|
|
132
|
+
this.#streaming = false;
|
|
133
|
+
this.#stopReason = event.stopReason;
|
|
134
|
+
this.#closeStreams(event.stopReason === "truncated");
|
|
135
|
+
return;
|
|
136
|
+
case "text_delta":
|
|
137
|
+
return this.#appendAssistant(event.text);
|
|
138
|
+
case "thinking_delta":
|
|
139
|
+
return this.#appendThinking(event.text);
|
|
140
|
+
case "message":
|
|
141
|
+
return this.#message(event.role, event.text);
|
|
142
|
+
case "tool_start":
|
|
143
|
+
|
|
144
|
+
this.#closeStreams(false);
|
|
145
|
+
return this.#upsertTool(event.tool, {});
|
|
146
|
+
case "tool_progress":
|
|
147
|
+
return this.#progress(event.toolCallId, event.text);
|
|
148
|
+
case "tool_end":
|
|
149
|
+
return this.#upsertTool(event.tool, { outcome: event.outcome, output: event.output });
|
|
150
|
+
case "question":
|
|
151
|
+
this.#question = event.question;
|
|
152
|
+
return this.#push({ kind: "question", id: event.question.questionId, question: event.question });
|
|
153
|
+
case "question_skipped":
|
|
154
|
+
return this.#push({
|
|
155
|
+
kind: "question",
|
|
156
|
+
id: event.question.questionId,
|
|
157
|
+
question: event.question,
|
|
158
|
+
rendered: `(${event.reason})`,
|
|
159
|
+
});
|
|
160
|
+
case "question_resolved":
|
|
161
|
+
if (this.#question?.questionId === event.questionId) this.#question = undefined;
|
|
162
|
+
return this.#patch(event.questionId, (part) => {
|
|
163
|
+
if (part.kind === "question") part.rendered = event.rendered;
|
|
164
|
+
});
|
|
165
|
+
case "approval":
|
|
166
|
+
this.#approval = event.request;
|
|
167
|
+
return this.#push({ kind: "approval", id: event.request.approvalId, request: event.request });
|
|
168
|
+
case "approval_resolved":
|
|
169
|
+
if (this.#approval?.approvalId === event.approvalId) this.#approval = undefined;
|
|
170
|
+
return this.#patch(event.approvalId, (part) => {
|
|
171
|
+
if (part.kind === "approval") part.approved = event.approved;
|
|
172
|
+
});
|
|
173
|
+
case "context":
|
|
174
|
+
this.#context = { used: event.used, max: event.max };
|
|
175
|
+
return;
|
|
176
|
+
case "compaction":
|
|
177
|
+
this.#compacting = event.phase === "start";
|
|
178
|
+
if (event.phase === "start") return;
|
|
179
|
+
|
|
180
|
+
if ((event.error || event.aborted) && event.reason === "manual") return;
|
|
181
|
+
if (event.error) return this.#notice("warning", event.error);
|
|
182
|
+
if (event.aborted) return this.#notice("info", "Compaction cancelled.");
|
|
183
|
+
return this.#notice("info", `Compacted the conversation (${event.reason}).`);
|
|
184
|
+
case "retry":
|
|
185
|
+
return this.#notice(
|
|
186
|
+
"warning",
|
|
187
|
+
`Retrying (${event.attempt}/${event.maxAttempts}) in ${event.delayMs}ms — ${event.message}`,
|
|
188
|
+
);
|
|
189
|
+
case "queue":
|
|
190
|
+
this.#queue = { steering: event.steering.length, followUp: event.followUp.length };
|
|
191
|
+
return;
|
|
192
|
+
case "notice":
|
|
193
|
+
return this.#notice(event.level, event.message);
|
|
194
|
+
case "subagent":
|
|
195
|
+
this.#subagents = event.agents;
|
|
196
|
+
return;
|
|
197
|
+
case "error":
|
|
198
|
+
return this.#notice("error", event.message);
|
|
199
|
+
case "idle":
|
|
200
|
+
this.#streaming = false;
|
|
201
|
+
this.#queue = { steering: 0, followUp: 0 };
|
|
202
|
+
|
|
203
|
+
this.#subagents = [];
|
|
204
|
+
this.#closeStreams(false);
|
|
205
|
+
return;
|
|
206
|
+
case "host":
|
|
207
|
+
return this.#host(event.kind, event.id, event.payload);
|
|
208
|
+
default:
|
|
209
|
+
return;
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
#id() {
|
|
214
|
+
this.#nextId += 1;
|
|
215
|
+
return `p${this.#nextId}`;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
#push(part: CodeTranscriptPart) {
|
|
219
|
+
this.#indexById.set(part.id, this.#parts.length);
|
|
220
|
+
this.#parts.push(part);
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
#patch(id: string, mutate: (part: CodeTranscriptPart) => void) {
|
|
224
|
+
const index = this.#indexById.get(id);
|
|
225
|
+
if (index === undefined) return;
|
|
226
|
+
const part = this.#parts[index];
|
|
227
|
+
if (part) mutate(part);
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
#notice(level: "info" | "warning" | "error", text: string) {
|
|
231
|
+
this.#push({ kind: "notice", id: this.#id(), level, text });
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
#appendAssistant(text: string) {
|
|
235
|
+
if (this.#openAssistant === undefined) {
|
|
236
|
+
const id = this.#id();
|
|
237
|
+
this.#openAssistant = id;
|
|
238
|
+
this.#push({ kind: "assistant", id, text, streaming: true, truncated: false });
|
|
239
|
+
return;
|
|
240
|
+
}
|
|
241
|
+
this.#patch(this.#openAssistant, (part) => {
|
|
242
|
+
if (part.kind === "assistant") part.text += text;
|
|
243
|
+
});
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
#appendThinking(text: string) {
|
|
247
|
+
if (this.#openThinking === undefined) {
|
|
248
|
+
const id = this.#id();
|
|
249
|
+
this.#openThinking = id;
|
|
250
|
+
this.#push({ kind: "thinking", id, text });
|
|
251
|
+
return;
|
|
252
|
+
}
|
|
253
|
+
this.#patch(this.#openThinking, (part) => {
|
|
254
|
+
if (part.kind === "thinking") part.text += text;
|
|
255
|
+
});
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
#message(role: "user" | "assistant", text: string) {
|
|
259
|
+
if (role === "user") {
|
|
260
|
+
|
|
261
|
+
const last = this.#parts.at(-1);
|
|
262
|
+
if (last?.kind === "user" && last.text === text) return;
|
|
263
|
+
this.#push({ kind: "user", id: this.#id(), text });
|
|
264
|
+
return;
|
|
265
|
+
}
|
|
266
|
+
if (this.#openAssistant !== undefined) {
|
|
267
|
+
const open = this.#openAssistant;
|
|
268
|
+
this.#openAssistant = undefined;
|
|
269
|
+
this.#patch(open, (part) => {
|
|
270
|
+
if (part.kind !== "assistant") return;
|
|
271
|
+
part.text = text;
|
|
272
|
+
part.streaming = false;
|
|
273
|
+
});
|
|
274
|
+
return;
|
|
275
|
+
}
|
|
276
|
+
this.#push({ kind: "assistant", id: this.#id(), text, streaming: false, truncated: false });
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
#closeStreams(truncated: boolean) {
|
|
280
|
+
this.#openThinking = undefined;
|
|
281
|
+
const open = this.#openAssistant;
|
|
282
|
+
this.#openAssistant = undefined;
|
|
283
|
+
if (open === undefined) return;
|
|
284
|
+
this.#patch(open, (part) => {
|
|
285
|
+
if (part.kind !== "assistant") return;
|
|
286
|
+
part.streaming = false;
|
|
287
|
+
part.truncated = truncated;
|
|
288
|
+
});
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
#upsertTool(tool: CodeAgentToolSummary, result: { outcome?: CodeAgentToolOutcome; output?: string }) {
|
|
292
|
+
const index = this.#indexById.get(tool.toolCallId);
|
|
293
|
+
if (index === undefined) {
|
|
294
|
+
this.#push({ kind: "tool", id: tool.toolCallId, tool, ...result });
|
|
295
|
+
return;
|
|
296
|
+
}
|
|
297
|
+
const part = this.#parts[index];
|
|
298
|
+
if (part?.kind !== "tool") return;
|
|
299
|
+
|
|
300
|
+
part.tool = tool;
|
|
301
|
+
if (result.outcome) part.outcome = result.outcome;
|
|
302
|
+
if (result.output !== undefined) part.output = result.output;
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
#progress(toolCallId: string, text: string) {
|
|
306
|
+
this.#patch(toolCallId, (part) => {
|
|
307
|
+
if (part.kind === "tool") part.progress = text;
|
|
308
|
+
});
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
#host(hostKind: string, id: string | undefined, payload: unknown) {
|
|
312
|
+
const text = typeof payload === "string" ? payload : JSON.stringify(payload);
|
|
313
|
+
if (id === undefined) {
|
|
314
|
+
this.#push({ kind: "host", id: this.#id(), hostKind, text });
|
|
315
|
+
return;
|
|
316
|
+
}
|
|
317
|
+
const index = this.#indexById.get(id);
|
|
318
|
+
if (index === undefined) {
|
|
319
|
+
this.#push({ kind: "host", id, hostKind, text });
|
|
320
|
+
return;
|
|
321
|
+
}
|
|
322
|
+
const part = this.#parts[index];
|
|
323
|
+
if (part?.kind === "host") part.text = text;
|
|
324
|
+
}
|
|
325
|
+
}
|
package/common/Logger.ts
CHANGED
|
@@ -81,28 +81,18 @@ const ansiPattern = new RegExp(`${String.fromCharCode(27)}\\[[0-?]*[ -/]*[@-~]`,
|
|
|
81
81
|
|
|
82
82
|
const redactedAttrKey = /password|passwd|token|jwt|authorization|cookie|secret|api[-_]?key|private[-_]?key/i;
|
|
83
83
|
|
|
84
|
-
/**
|
|
85
|
-
* `process.env?.X` guards only `env` being absent, never `process` itself — an undeclared `process` is a
|
|
86
|
-
* ReferenceError, and at module scope that takes the whole client bundle with it. This is the most widely
|
|
87
|
-
* imported file in `common/`, and the unguarded form works today only because the browser build ships a shim.
|
|
88
|
-
*/
|
|
89
84
|
const envValue = (key: string): string | undefined => (typeof process === "undefined" ? undefined : process.env?.[key]);
|
|
90
85
|
|
|
91
|
-
/** Log-level aware logger used by Akan runtime, CLI, and application services. */
|
|
92
86
|
export class Logger {
|
|
93
|
-
/** `AKAN_LOG_STDOUT_LEVEL` names what the container's stdout carries; without it the console level is that. */
|
|
94
87
|
static level: LogLevel = Logger.#levelFromEnv(
|
|
95
88
|
envValue("AKAN_LOG_STDOUT_LEVEL"),
|
|
96
89
|
Logger.#levelFromEnv(envValue("AKAN_PUBLIC_LOG_LEVEL"), "info"),
|
|
97
90
|
);
|
|
98
91
|
static fileLevel: LogLevel = Logger.#levelFromEnv(envValue("AKAN_LOG_FILE_LEVEL"), "trace");
|
|
99
92
|
static format: LogFormat = Logger.#formatFromEnv(envValue("AKAN_LOG_FORMAT"));
|
|
100
|
-
/**
|
|
93
|
+
/** `gateway`, `all`, `batch` or `rsc-worker`; the owner sets it at boot. */
|
|
101
94
|
static role: string | null = envValue("SERVER_MODE") ?? null;
|
|
102
|
-
/**
|
|
103
|
-
* Whether this process writes its own lines to the terminal. Off in every server process of an ndjson
|
|
104
|
-
* deployment: the hub owner writes the one JSON stream, and a text line from anyone would corrupt it.
|
|
105
|
-
*/
|
|
95
|
+
/** Off in every server process of an ndjson deployment but the hub owner, whose JSON stream a text line corrupts. */
|
|
106
96
|
static consoleOutput = true;
|
|
107
97
|
/** Set by the trace layer when a flight recorder or a per-request debug floor can be active. */
|
|
108
98
|
static contextGate = false;
|
|
@@ -136,14 +126,12 @@ export class Logger {
|
|
|
136
126
|
static get isNdjson() {
|
|
137
127
|
return Logger.format !== "text";
|
|
138
128
|
}
|
|
139
|
-
/** For hot-path callers that would otherwise build a message the level is about to discard. */
|
|
140
129
|
static shouldLog(logLevel: LogLevelInput) {
|
|
141
130
|
return Logger.#shouldLog(Logger.normalizeLevel(logLevel));
|
|
142
131
|
}
|
|
143
132
|
static normalizeLevel(level: LogLevelInput): LogLevel {
|
|
144
133
|
return level === "log" ? "info" : level;
|
|
145
134
|
}
|
|
146
|
-
/** The lowest named level whose severity is at least `sev`. */
|
|
147
135
|
static levelAtOrAbove(sev: number): LogLevel {
|
|
148
136
|
return logLevels.find((level) => logSeverity[level] >= sev) ?? "error";
|
|
149
137
|
}
|
|
@@ -151,16 +139,15 @@ export class Logger {
|
|
|
151
139
|
const level = record.level;
|
|
152
140
|
if (level === null) return record.message;
|
|
153
141
|
const replicaMsg = record.replicaIdx === null ? "" : `#${record.replicaIdx} `;
|
|
154
|
-
const processMsg =
|
|
142
|
+
const processMsg = colorizeMap[level](`[${record.name}] ${replicaMsg}${record.pid ?? "window"} -`);
|
|
155
143
|
const timestampMsg = dayjs(record.at).format("MM/DD/YYYY, HH:mm:ss A");
|
|
156
|
-
const logLevelMsg =
|
|
144
|
+
const logLevelMsg = colorizeMap[level](level.toUpperCase().padStart(7, " "));
|
|
157
145
|
const contextMsg = record.context ? clc.yellow(`[${record.context}] `) : "";
|
|
158
|
-
const contentMsg =
|
|
146
|
+
const contentMsg = colorizeMap[level](record.message);
|
|
159
147
|
const attrsMsg = record.attrs ? Logger.formatAttrs(record.attrs) : "";
|
|
160
148
|
const timeDiffMsg = clc.yellow(`+${record.elapsedMs}ms`);
|
|
161
149
|
return `${processMsg} ${timestampMsg} ${logLevelMsg} ${contextMsg} ${contentMsg}${attrsMsg ? ` ${attrsMsg}` : ""} ${timeDiffMsg}\n`;
|
|
162
150
|
}
|
|
163
|
-
/** `key=value` pairs; a string with whitespace is quoted so the line stays splittable. */
|
|
164
151
|
static formatAttrs(attrs: LogAttrs): string {
|
|
165
152
|
return Object.entries(attrs)
|
|
166
153
|
.map(
|
|
@@ -169,10 +156,7 @@ export class Logger {
|
|
|
169
156
|
)
|
|
170
157
|
.join(" ");
|
|
171
158
|
}
|
|
172
|
-
/**
|
|
173
|
-
* A record somebody asked for below the level — a failed call's flight recorder, a request carrying
|
|
174
|
-
* `x-akan-debug` — passes every floor between here and the reader; the floors exist to drop what nobody asked for.
|
|
175
|
-
*/
|
|
159
|
+
/** A flight-recorder or `x-akan-debug` record passes every floor between here and the reader. */
|
|
176
160
|
static isPromoted(record: LogRecord) {
|
|
177
161
|
return record.attrs?.flight === true || record.attrs?.debug === true;
|
|
178
162
|
}
|
|
@@ -185,15 +169,10 @@ export class Logger {
|
|
|
185
169
|
}
|
|
186
170
|
return redacted ?? attrs;
|
|
187
171
|
}
|
|
188
|
-
/** A structured record from a caller that has more than a sentence to say — the canonical request line. */
|
|
189
172
|
static emit({ level, name, message, context = "", attrs }: LoggerEmitInput) {
|
|
190
173
|
if (Logger.#shouldLog(level)) Logger.#write(name, message, context, level, attrs);
|
|
191
174
|
}
|
|
192
|
-
/**
|
|
193
|
-
* Writes records that were captured below the gate and are now promoted — a failed request's flight
|
|
194
|
-
* recorder. They bypass the console level, since not showing them is what the recorder was for, and reach
|
|
195
|
-
* sinks under their own floors; each is marked `flight` so a reader knows why a trace line appears at info.
|
|
196
|
-
*/
|
|
175
|
+
/** Writes a failed request's flight-recorder records past the console level, each marked `flight`. */
|
|
197
176
|
static replay(records: LogRecord[], { evicted = 0 }: { evicted?: number } = {}) {
|
|
198
177
|
records.forEach((record, idx) => {
|
|
199
178
|
const attrs: LogAttrs = { ...record.attrs, flight: true };
|
|
@@ -231,7 +210,7 @@ export class Logger {
|
|
|
231
210
|
if (Logger.#shouldLog("error")) Logger.#write(name, msg, context, "error");
|
|
232
211
|
}
|
|
233
212
|
raw(msg: string, method?: "console" | "process") {
|
|
234
|
-
Logger.
|
|
213
|
+
Logger.raw(msg, method);
|
|
235
214
|
}
|
|
236
215
|
rawLog(msg: string, method?: "console" | "process") {
|
|
237
216
|
Logger.rawLog(msg, method);
|
|
@@ -270,9 +249,6 @@ export class Logger {
|
|
|
270
249
|
for (const minSev of Logger.#sinks.values()) floor = Math.min(floor, minSev ?? Logger.#fileSev);
|
|
271
250
|
Logger.#sinkFloorSev = floor;
|
|
272
251
|
}
|
|
273
|
-
static #colorize(msg: string, logLevel: LogLevel) {
|
|
274
|
-
return colorizeMap[logLevel](msg);
|
|
275
|
-
}
|
|
276
252
|
static stripAnsi(msg: string) {
|
|
277
253
|
return msg.replace(ansiPattern, "");
|
|
278
254
|
}
|
|
@@ -286,7 +262,6 @@ export class Logger {
|
|
|
286
262
|
static #shouldEmitSink(logLevel: LogLevel) {
|
|
287
263
|
return logSeverity[logLevel] >= Logger.#sinkFloorSev;
|
|
288
264
|
}
|
|
289
|
-
/** The lowest severity the ambient request wants captured or shown, or +∞ outside one. */
|
|
290
265
|
static #contextFloor(ctx: LogContextSnapshot | undefined) {
|
|
291
266
|
if (!ctx) return Number.POSITIVE_INFINITY;
|
|
292
267
|
return Math.min(ctx.flight?.minSev ?? Number.POSITIVE_INFINITY, ctx.debugSev ?? Number.POSITIVE_INFINITY);
|
|
@@ -364,7 +339,7 @@ export class Logger {
|
|
|
364
339
|
const ctx = readLogContext();
|
|
365
340
|
const sev = logSeverity[logLevel];
|
|
366
341
|
const debug = ctx?.debugSev !== undefined && ctx.debugSev !== null && sev >= ctx.debugSev;
|
|
367
|
-
|
|
342
|
+
|
|
368
343
|
const promoted = debug && sev < Logger.#consoleSev;
|
|
369
344
|
const record = Logger.#buildRecord(
|
|
370
345
|
name,
|
package/common/TrustedProxy.ts
CHANGED
|
@@ -1,18 +1,5 @@
|
|
|
1
|
-
import { normalizeIpAddress } from "./clientAddress";
|
|
1
|
+
import { clientAddressFromHeaders, normalizeIpAddress } from "./clientAddress";
|
|
2
2
|
|
|
3
|
-
/**
|
|
4
|
-
* Whether the hop that connected is allowed to name the caller.
|
|
5
|
-
*
|
|
6
|
-
* `x-real-ip` and `x-forwarded-for` are just request headers: anyone can send them. They are the truth only when
|
|
7
|
-
* the peer that sent them is a proxy we put there — otherwise a client forges its own address and walks past
|
|
8
|
-
* every `.with(Ip)` guard, rate limit and audit line at once.
|
|
9
|
-
*
|
|
10
|
-
* The default trusts a private, loopback or link-local peer and nothing else, because that is exactly the shape
|
|
11
|
-
* of a proxy on the same network: an ingress, a service mesh, the dev machine. A gateway reachable from the
|
|
12
|
-
* internet sees a public peer, so a header from there is dropped rather than believed. `AKAN_TRUSTED_PROXIES`
|
|
13
|
-
* takes a comma-separated CIDR list for the case the proxy is not private — and `*` for "the deployment
|
|
14
|
-
* guarantees nothing untrusted can reach this port", which is the old behaviour, written down.
|
|
15
|
-
*/
|
|
16
3
|
export class TrustedProxy {
|
|
17
4
|
static #cidrs: { bytes: Uint8Array; bits: number }[] | null = null;
|
|
18
5
|
static #trustAll: boolean | null = null;
|
|
@@ -48,31 +35,16 @@ export class TrustedProxy {
|
|
|
48
35
|
return (TrustedProxy.#cidrs ?? []).some((cidr) => TrustedProxy.#inRange(bytes, cidr));
|
|
49
36
|
}
|
|
50
37
|
|
|
51
|
-
/**
|
|
52
|
-
* The caller's address as recorded by a proxy, but only when the peer is one. Falls back to the peer itself,
|
|
53
|
-
* which is the right answer for a process nothing is proxying, and `null` when there is no peer either.
|
|
54
|
-
*
|
|
55
|
-
* `null` and `undefined` mean different things here. `null` is what `Server.requestIP` answers for a socket
|
|
56
|
-
* that has no address — a unix socket, which is how a gateway reaches its children — and only a process on
|
|
57
|
-
* this machine can open one, so the headers it wrote are a local proxy's and are believed. `undefined` is
|
|
58
|
-
* "nobody asked": no resolver was registered, and a header from an unknown peer is a header the client wrote.
|
|
59
|
-
*/
|
|
38
|
+
/** A `null` peer is a unix socket, which only a local proxy opens, so its headers count; `undefined` is not. */
|
|
60
39
|
static clientAddress(headers: Headers, peerAddress: string | null | undefined): string | null {
|
|
61
40
|
if (peerAddress === null || TrustedProxy.isTrusted(peerAddress)) {
|
|
62
|
-
const
|
|
63
|
-
if (
|
|
64
|
-
const forwarded = headers.get("x-forwarded-for")?.split(",")[0]?.trim();
|
|
65
|
-
if (forwarded) return normalizeIpAddress(forwarded);
|
|
41
|
+
const recorded = clientAddressFromHeaders(headers);
|
|
42
|
+
if (recorded) return recorded;
|
|
66
43
|
}
|
|
67
44
|
return peerAddress ? normalizeIpAddress(peerAddress) : null;
|
|
68
45
|
}
|
|
69
46
|
|
|
70
|
-
/**
|
|
71
|
-
* Whether an address is one no public name should resolve to: the local ranges `isTrusted` reads, plus the
|
|
72
|
-
* unspecified address, the carrier-grade NAT block `100.64/10`, multicast and the reserved top of IPv4. Used
|
|
73
|
-
* to refuse a fetch whose destination a caller chose by name, so it judges the address alone and never the
|
|
74
|
-
* configured proxy list — a trusted proxy is still not somewhere to send an outbound request.
|
|
75
|
-
*/
|
|
47
|
+
/** For refusing an outbound fetch to a caller-chosen name: judges the address alone, never the proxy list. */
|
|
76
48
|
static isPrivateAddress(address: string): boolean {
|
|
77
49
|
const bytes = TrustedProxy.#toBytes(normalizeIpAddress(address));
|
|
78
50
|
if (!bytes) return true;
|
|
@@ -134,7 +106,7 @@ export class TrustedProxy {
|
|
|
134
106
|
}
|
|
135
107
|
|
|
136
108
|
static #ipv6ToBytes(address: string): Uint8Array | null {
|
|
137
|
-
|
|
109
|
+
|
|
138
110
|
const bare = address.split("%")[0] ?? "";
|
|
139
111
|
const halves = bare.split("::");
|
|
140
112
|
if (halves.length > 2) return null;
|
package/common/applyMixins.ts
CHANGED
|
@@ -1,7 +1,18 @@
|
|
|
1
|
-
import { getAllPropertyDescriptors } from "./getAllPropertyDescriptors";
|
|
2
|
-
|
|
3
1
|
type Cls<T = unknown> = new (...args: never[]) => T;
|
|
4
2
|
|
|
3
|
+
export const getAllPropertyDescriptors = (objRef: Cls): { [key: string]: PropertyDescriptor } => {
|
|
4
|
+
const descriptors: Record<string, PropertyDescriptor> = {};
|
|
5
|
+
let current = objRef.prototype as object | null;
|
|
6
|
+
while (current) {
|
|
7
|
+
Object.getOwnPropertyNames(current).forEach((name) => {
|
|
8
|
+
const descriptor = Object.getOwnPropertyDescriptor(current, name);
|
|
9
|
+
if (descriptor) descriptors[name] ??= descriptor;
|
|
10
|
+
});
|
|
11
|
+
current = Object.getPrototypeOf(current) as Cls | object;
|
|
12
|
+
}
|
|
13
|
+
return descriptors;
|
|
14
|
+
};
|
|
15
|
+
|
|
5
16
|
export const applyMixins = (derivedCtor: Cls, constructors: (Cls | undefined)[], avoidKeys?: Set<string>) => {
|
|
6
17
|
constructors.forEach((baseCtor) => {
|
|
7
18
|
if (!baseCtor) return;
|
package/common/authToken.ts
CHANGED
|
@@ -4,11 +4,6 @@ import { decodeJwtPayload } from "./jwtDecode";
|
|
|
4
4
|
/** The pre-scoping key. Read as a fallback, never written; drop it once deployments have rotated past it. */
|
|
5
5
|
export const legacyAuthTokenKey = "jwt";
|
|
6
6
|
|
|
7
|
-
/**
|
|
8
|
-
* Cookies carry no port (RFC 6265), so every app served from one host shares a jar — which on localhost is
|
|
9
|
-
* every app in the workspace at once. Under a global `jwt` key each signin overwrites the neighbour's
|
|
10
|
-
* session, and the JWT's own `appName` check only turns the stolen cookie into a failing credential.
|
|
11
|
-
*/
|
|
12
7
|
export const authTokenKey = (): string => `${legacyAuthTokenKey}:${getEnv().appName}`;
|
|
13
8
|
|
|
14
9
|
/** Matches both spellings so a signout can sweep a jar written before and after the key was scoped. */
|
|
@@ -17,11 +12,9 @@ export const isAuthTokenKey = (key: string): boolean =>
|
|
|
17
12
|
|
|
18
13
|
const authCookiePattern = new RegExp(`(?:^|;\\s*)${legacyAuthTokenKey}(?::[^=\\s;]+)?=`);
|
|
19
14
|
|
|
20
|
-
/** Whether a raw `cookie` header carries an auth token under either spelling. */
|
|
21
15
|
export const cookieHeaderHasAuthToken = (cookieHeader: string | null | undefined): boolean =>
|
|
22
16
|
!!cookieHeader && authCookiePattern.test(cookieHeader);
|
|
23
17
|
|
|
24
|
-
/** Whether a token was minted for this app and environment — the same pair the server's account check makes. */
|
|
25
18
|
export const isOwnAuthToken = (jwt: string): boolean => {
|
|
26
19
|
const { appName, environment } = getEnv();
|
|
27
20
|
try {
|
|
@@ -32,10 +25,6 @@ export const isOwnAuthToken = (jwt: string): boolean => {
|
|
|
32
25
|
}
|
|
33
26
|
};
|
|
34
27
|
|
|
35
|
-
/**
|
|
36
|
-
* Reads the app-scoped token, falling back to a leftover global one only when its payload names this app —
|
|
37
|
-
* a neighbour's token would decode fine here and fail every guard, so adopting it is worse than none.
|
|
38
|
-
*/
|
|
39
28
|
export const readAuthToken = (read: (key: string) => string | null | undefined): string | undefined => {
|
|
40
29
|
const scoped = read(authTokenKey());
|
|
41
30
|
if (scoped) return scoped;
|
package/common/capitalize.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
1
|
+
export const capitalize = (str: string) => str.charAt(0).toUpperCase() + str.slice(1);
|
|
2
|
+
|
|
3
|
+
export const lowerlize = (str: string) => str.charAt(0).toLowerCase() + str.slice(1);
|
package/common/clamp.ts
CHANGED
package/common/clientAddress.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/** Headers a proxy hop writes so the next hop can still name the original caller. */
|
|
2
1
|
export const forwardedHeaders = [
|
|
3
2
|
"x-real-ip",
|
|
4
3
|
"x-forwarded-for",
|
|
@@ -7,25 +6,13 @@ export const forwardedHeaders = [
|
|
|
7
6
|
"x-forwarded-proto",
|
|
8
7
|
] as const;
|
|
9
8
|
|
|
10
|
-
/**
|
|
11
|
-
* An IPv4 client reaching a dual-stack listener is reported as `::ffff:203.0.113.10`. That form is not a
|
|
12
|
-
* valid destination for a `udp4` socket and does not compare equal to the same address written plainly, so
|
|
13
|
-
* it is unwrapped at every boundary rather than at each call site that happens to remember.
|
|
14
|
-
*/
|
|
15
9
|
export const normalizeIpAddress = (address: string): string => {
|
|
16
10
|
const trimmed = address.trim();
|
|
17
11
|
const mapped = /^::ffff:(\d{1,3}(?:\.\d{1,3}){3})$/i.exec(trimmed);
|
|
18
12
|
return mapped?.[1] ?? trimmed;
|
|
19
13
|
};
|
|
20
14
|
|
|
21
|
-
/**
|
|
22
|
-
* The caller's address as the nearest proxy recorded it. `x-real-ip` is one hop's word for who the client is
|
|
23
|
-
* and wins; `x-forwarded-for` is a chain appended left to right, so its *first* entry is the original client
|
|
24
|
-
* and everything after it is a proxy.
|
|
25
|
-
*
|
|
26
|
-
* Returns `null` rather than a placeholder. A socket peer behind a proxy is the proxy, so `127.0.0.1` here
|
|
27
|
-
* would be indistinguishable from a genuinely local caller — and that is the failure this exists to prevent.
|
|
28
|
-
*/
|
|
15
|
+
/** `x-real-ip`, else the first `x-forwarded-for` entry; `null`, never a placeholder, when neither is set. */
|
|
29
16
|
export const clientAddressFromHeaders = (headers: Headers): string | null => {
|
|
30
17
|
const realIp = headers.get("x-real-ip")?.trim();
|
|
31
18
|
if (realIp) return normalizeIpAddress(realIp);
|
|
@@ -33,7 +20,6 @@ export const clientAddressFromHeaders = (headers: Headers): string | null => {
|
|
|
33
20
|
return forwarded ? normalizeIpAddress(forwarded) : null;
|
|
34
21
|
};
|
|
35
22
|
|
|
36
|
-
/** The client port the nearest proxy recorded, for correlating a connection with a peer's own logs. */
|
|
37
23
|
export const clientPortFromHeaders = (headers: Headers): number | null => {
|
|
38
24
|
const port = Number(headers.get("x-forwarded-port"));
|
|
39
25
|
return Number.isInteger(port) && port > 0 && port <= 65535 ? port : null;
|