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
|
@@ -30,22 +30,13 @@ import { FetchHandle } from "./fetchHandle";
|
|
|
30
30
|
import { HttpClient } from "./httpClient";
|
|
31
31
|
import type { ErrorConstructor } from "./remoteError";
|
|
32
32
|
import { SliceInitHandle } from "./sliceInitHandle";
|
|
33
|
+
import { expandQueryArgs, normalizeQueryArgs } from "./sliceQueryArgs";
|
|
33
34
|
import { WsClient } from "./wsClient";
|
|
34
35
|
|
|
35
36
|
type FetchHandler = (...args: unknown[]) => PromiseOrObject<unknown>;
|
|
36
37
|
type FetchHandlerFactory = () => FetchHandler;
|
|
37
38
|
type UnknownRecord = Record<string, unknown>;
|
|
38
39
|
|
|
39
|
-
const isNullableArg = (arg: SerializedArg) => arg.nullable ?? arg.type === "search";
|
|
40
|
-
|
|
41
|
-
const normalizeQueryArgs = (queryArgs: unknown[], args: SerializedArg[]) => {
|
|
42
|
-
let length = Math.min(queryArgs.length, args.length);
|
|
43
|
-
while (length > 0 && isNullableArg(args[length - 1]) && queryArgs[length - 1] == null) length--;
|
|
44
|
-
return queryArgs.slice(0, length);
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
const expandQueryArgs = (queryArgs: unknown[], args: SerializedArg[]) => args.map((_, idx) => queryArgs[idx]);
|
|
48
|
-
|
|
49
40
|
export type FetchProxy<
|
|
50
41
|
FetchType = unknown,
|
|
51
42
|
SliceMetaObj extends Record<string, SliceMeta> = Record<never, never>,
|
|
@@ -84,7 +75,6 @@ type ClientSignalMap<SigType extends { fetch: any }> = {
|
|
|
84
75
|
: never;
|
|
85
76
|
};
|
|
86
77
|
|
|
87
|
-
/** Runtime fetch client that registers serialized Akan signals as HTTP/WebSocket methods. */
|
|
88
78
|
export class FetchClient {
|
|
89
79
|
static {
|
|
90
80
|
ConstantRegistry.setScalar(agentTurnConstant.refName, agentTurnConstant);
|
|
@@ -96,7 +86,6 @@ export class FetchClient {
|
|
|
96
86
|
readonly handler: Record<string, FetchHandler>;
|
|
97
87
|
readonly slice: Record<string, SliceMeta> = {};
|
|
98
88
|
readonly sortKeyMap = new Map<string, string[]>();
|
|
99
|
-
/** refName → sort key → the field map that key orders by. Read by live insertion, which has to place a row. */
|
|
100
89
|
readonly sortValueMap = new Map<string, { [key: string]: { [path: string]: 1 | -1 } }>();
|
|
101
90
|
readonly filterQueryMap = new Map<string, { [queryKey: string]: SerializedArg[] }>();
|
|
102
91
|
readonly #originWs = new Map<string, WsClient>();
|
|
@@ -119,12 +108,7 @@ export class FetchClient {
|
|
|
119
108
|
this.handler = this.#makeHandlerProxy();
|
|
120
109
|
this.applySignal(serializedSignal);
|
|
121
110
|
}
|
|
122
|
-
/**
|
|
123
|
-
* Every signal any client in this process has applied, which is the whole callable surface of the app.
|
|
124
|
-
*
|
|
125
|
-
* A copy, because this is the registry each client merges its own signals into and a reader that mutated it
|
|
126
|
-
* would change what the next client applies. Read by the agent catalogue, which needs the argument schemas.
|
|
127
|
-
*/
|
|
111
|
+
/** A copy of every signal any client in this process applied, so a reader cannot change what the next applies. */
|
|
128
112
|
static get sharedSerializedSignal(): { [key: string]: SerializedSignal } {
|
|
129
113
|
return { ...sharedSignalRegistry.signal };
|
|
130
114
|
}
|
|
@@ -173,6 +157,10 @@ export class FetchClient {
|
|
|
173
157
|
}
|
|
174
158
|
: signal;
|
|
175
159
|
}
|
|
160
|
+
/** For calls neither the caller nor the endpoint budgets; `false` waits as long as the runtime will (minutes). */
|
|
161
|
+
setTimeout(timeout?: number | false) {
|
|
162
|
+
this.http.setTimeout(timeout);
|
|
163
|
+
}
|
|
176
164
|
setErrorConstructor(ErrorCls?: ErrorConstructor) {
|
|
177
165
|
this.ErrorCls = ErrorCls;
|
|
178
166
|
this.http.setErrorConstructor(ErrorCls);
|
|
@@ -197,10 +185,11 @@ export class FetchClient {
|
|
|
197
185
|
this.#registerSlice(refName, suffix, slice, signal.prefix);
|
|
198
186
|
}
|
|
199
187
|
if (signal.filter) {
|
|
200
|
-
|
|
188
|
+
|
|
201
189
|
const filter = this.serializedSignal[refName]?.filter ?? signal.filter;
|
|
202
|
-
this
|
|
203
|
-
this
|
|
190
|
+
this.sortKeyMap.set(refName, filter.sortKeys);
|
|
191
|
+
if (filter.sorts) this.sortValueMap.set(refName, filter.sorts);
|
|
192
|
+
this.filterQueryMap.set(refName, filter.filter);
|
|
204
193
|
}
|
|
205
194
|
}
|
|
206
195
|
return this;
|
|
@@ -225,16 +214,10 @@ export class FetchClient {
|
|
|
225
214
|
#getOrCreateHandler(key: string): FetchHandler | undefined {
|
|
226
215
|
const current = this.#handlerStore[key];
|
|
227
216
|
if (current) return current;
|
|
217
|
+
if (!this.#handlerFactory.has(key)) this.#syncSharedRegistry();
|
|
228
218
|
const factory = this.#handlerFactory.get(key);
|
|
229
|
-
if (factory)
|
|
230
|
-
|
|
231
|
-
this.#handlerStore[key] = handler;
|
|
232
|
-
return handler;
|
|
233
|
-
}
|
|
234
|
-
this.#syncSharedRegistry();
|
|
235
|
-
const syncedFactory = this.#handlerFactory.get(key);
|
|
236
|
-
if (!syncedFactory) return undefined;
|
|
237
|
-
const handler = syncedFactory();
|
|
219
|
+
if (!factory) return undefined;
|
|
220
|
+
const handler = factory();
|
|
238
221
|
this.#handlerStore[key] = handler;
|
|
239
222
|
return handler;
|
|
240
223
|
}
|
|
@@ -269,7 +252,7 @@ export class FetchClient {
|
|
|
269
252
|
this.ws.setJwt(jwt);
|
|
270
253
|
for (const ws of this.#originWs.values()) ws.setJwt(jwt);
|
|
271
254
|
}
|
|
272
|
-
|
|
255
|
+
|
|
273
256
|
#resolveWs(origin?: string) {
|
|
274
257
|
if (!origin) return this.ws;
|
|
275
258
|
const target = origin.replace(/\/+$/, "");
|
|
@@ -295,29 +278,26 @@ export class FetchClient {
|
|
|
295
278
|
}
|
|
296
279
|
return this.jwt ? { Authorization: `Bearer ${this.jwt}` } : {};
|
|
297
280
|
}
|
|
298
|
-
#registerFilterSortKey(refName: string, sortKeys: string[], sorts?: { [key: string]: { [path: string]: 1 | -1 } }) {
|
|
299
|
-
this.sortKeyMap.set(refName, sortKeys);
|
|
300
|
-
if (sorts) this.sortValueMap.set(refName, sorts);
|
|
301
|
-
}
|
|
302
|
-
#registerFilterQuery(refName: string, filter: { [queryKey: string]: SerializedArg[] }) {
|
|
303
|
-
this.filterQueryMap.set(refName, filter);
|
|
304
|
-
}
|
|
305
281
|
#makeHttpFn(key: string, endpoint: SerializedEndpoint, prefix?: string) {
|
|
306
282
|
const argLength = endpoint.args.length;
|
|
307
283
|
const serializerMap = this.#makeArgSerializer(endpoint.args);
|
|
308
284
|
const parseReturn = this.#makeReturnParser(endpoint.returns);
|
|
309
285
|
const { bodyArgs, uploadArgs } = FetchClient.classifyHttpArgs(endpoint.args);
|
|
286
|
+
const requestOf = (argData: unknown[]) => {
|
|
287
|
+
const args = argData.slice(0, argLength);
|
|
288
|
+
const option = argData[argLength] as FetchPolicy | undefined;
|
|
289
|
+
const argMap = new Map(serializerMap.entries().map(([key, serializer], idx) => [key, serializer(args[idx])]));
|
|
290
|
+
return { option, argMap, url: FetchClient.makeHttpUrl(key, endpoint, prefix, argMap) };
|
|
291
|
+
};
|
|
310
292
|
switch (endpoint.type) {
|
|
311
|
-
case "query":
|
|
312
|
-
|
|
313
|
-
const
|
|
314
|
-
const option = argData[argLength] as FetchPolicy | undefined;
|
|
315
|
-
const argMap = new Map(serializerMap.entries().map(([key, serializer], idx) => [key, serializer(args[idx])]));
|
|
316
|
-
const url = FetchClient.makeHttpUrl(key, endpoint, prefix, argMap);
|
|
293
|
+
case "query":
|
|
294
|
+
return async (...argData: unknown[]) => {
|
|
295
|
+
const { option, argMap, url } = requestOf(argData);
|
|
317
296
|
const headers = this.#makeAuthHeaders(option);
|
|
318
297
|
const baseUrl = option?.origin;
|
|
319
|
-
|
|
320
|
-
|
|
298
|
+
const timeout = option?.timeout ?? endpoint.timeout;
|
|
299
|
+
|
|
300
|
+
const requestQuery = () => this.http.get(url, { headers, baseUrl, timeout });
|
|
321
301
|
|
|
322
302
|
const claim = baseUrl
|
|
323
303
|
? { value: requestQuery(), owned: true }
|
|
@@ -327,38 +307,27 @@ export class FetchClient {
|
|
|
327
307
|
const payload = claim.owned ? response : FetchClient.#deepCopy(response);
|
|
328
308
|
return parseReturn(payload, { crystalize: option?.crystalize ?? true });
|
|
329
309
|
};
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
const mutationFn = async (...argData: unknown[]) => {
|
|
334
|
-
const args = argData.slice(0, argLength);
|
|
335
|
-
const option = argData[argLength] as FetchPolicy | undefined;
|
|
336
|
-
const argMap = new Map(serializerMap.entries().map(([key, serializer], idx) => [key, serializer(args[idx])]));
|
|
337
|
-
const url = FetchClient.makeHttpUrl(key, endpoint, prefix, argMap);
|
|
310
|
+
case "mutation":
|
|
311
|
+
return async (...argData: unknown[]) => {
|
|
312
|
+
const { option, argMap, url } = requestOf(argData);
|
|
338
313
|
const body = HttpClient.makeBody(bodyArgs, uploadArgs, argMap);
|
|
339
314
|
const response = await this.http.send(endpoint.method ?? "POST", url, body, {
|
|
340
315
|
headers: this.#makeAuthHeaders(option),
|
|
341
316
|
baseUrl: option?.origin,
|
|
317
|
+
timeout: option?.timeout ?? endpoint.timeout,
|
|
342
318
|
});
|
|
343
|
-
|
|
344
|
-
return parsedReturn;
|
|
319
|
+
return parseReturn(response, { crystalize: option?.crystalize ?? true });
|
|
345
320
|
};
|
|
346
|
-
return mutationFn;
|
|
347
|
-
}
|
|
348
321
|
default:
|
|
349
322
|
throw new Error(`Unsupported endpoint type: ${endpoint.type}`);
|
|
350
323
|
}
|
|
351
324
|
}
|
|
352
325
|
#registerEndpoint(key: string, endpoint: SerializedEndpoint, prefix?: string) {
|
|
353
326
|
switch (endpoint.type) {
|
|
354
|
-
case "query":
|
|
355
|
-
|
|
356
|
-
return;
|
|
357
|
-
}
|
|
358
|
-
case "mutation": {
|
|
327
|
+
case "query":
|
|
328
|
+
case "mutation":
|
|
359
329
|
this.#setHandlerFactory(key, () => this.#makeHttpFn(key, endpoint, prefix));
|
|
360
330
|
return;
|
|
361
|
-
}
|
|
362
331
|
case "pubsub": {
|
|
363
332
|
this.#setHandlerFactory(`subscribe${capitalize(key)}`, () => {
|
|
364
333
|
const roomArgs = endpoint.args.filter((arg) => arg.type === "room");
|
|
@@ -454,11 +423,10 @@ export class FetchClient {
|
|
|
454
423
|
modelId: `${refName}Id`,
|
|
455
424
|
lightModel: `light${capRefName}`,
|
|
456
425
|
};
|
|
457
|
-
|
|
458
426
|
const createGuards = signal.createGuards ?? signal.cruGuards;
|
|
459
427
|
const updateGuards = signal.updateGuards ?? signal.cruGuards;
|
|
460
428
|
const removeGuards = signal.removeGuards ?? signal.cruGuards;
|
|
461
|
-
|
|
429
|
+
|
|
462
430
|
const mcp = (verb: keyof NonNullable<SerializedSignal["mcp"]>) => ({
|
|
463
431
|
...(signal.mcp?.[verb] === false ? { mcp: false as const } : {}),
|
|
464
432
|
...(signal.agents?.[verb] === false ? { agents: false as const } : {}),
|
|
@@ -515,12 +483,8 @@ export class FetchClient {
|
|
|
515
483
|
#registerModelBaseEndpoint(refName: string, signal: SerializedSignal) {
|
|
516
484
|
const capRefName = capitalize(refName);
|
|
517
485
|
const names = {
|
|
518
|
-
createModel: `create${capRefName}`,
|
|
519
486
|
updateModel: `update${capRefName}`,
|
|
520
|
-
removeModel: `remove${capRefName}`,
|
|
521
487
|
model: refName,
|
|
522
|
-
modelId: `${refName}Id`,
|
|
523
|
-
lightModel: `light${capRefName}`,
|
|
524
488
|
viewModel: `view${capRefName}`,
|
|
525
489
|
getModelView: `get${capRefName}View`,
|
|
526
490
|
editModel: `edit${capRefName}`,
|
|
@@ -535,42 +499,28 @@ export class FetchClient {
|
|
|
535
499
|
|
|
536
500
|
const anyCruGuards = signal.cruGuards ?? signal.createGuards ?? signal.updateGuards ?? signal.removeGuards;
|
|
537
501
|
const updateGuards = signal.updateGuards ?? signal.cruGuards;
|
|
538
|
-
if (
|
|
502
|
+
if (signal.getGuards) {
|
|
539
503
|
this.#setHandlerFactory(names.viewModel, () =>
|
|
540
504
|
this.#makeModelHandleFn(refName, names.model, names.viewModel, `${refName}View`),
|
|
541
505
|
);
|
|
542
|
-
this.#setHandlerFactory(
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
(async (id: string, option?: FetchPolicy) => {
|
|
546
|
-
const modelFn = this.#requireHandler(names.model, names.getModelView);
|
|
547
|
-
const modelObj = await modelFn(id, { ...option, crystalize: false });
|
|
548
|
-
return { refName, [`${refName}Obj`]: modelObj, [`${refName}ViewAt`]: new Date() };
|
|
549
|
-
}) as FetchHandler,
|
|
550
|
-
);
|
|
506
|
+
this.#setHandlerFactory(names.getModelView, () => this.#makeModelObjFn(refName, names.getModelView));
|
|
507
|
+
}
|
|
508
|
+
if (signal.getGuards && anyCruGuards) {
|
|
551
509
|
this.#setHandlerFactory(names.editModel, () =>
|
|
552
510
|
this.#makeModelHandleFn(refName, names.model, names.editModel, `${refName}Edit`),
|
|
553
511
|
);
|
|
512
|
+
this.#setHandlerFactory(names.getModelEdit, () => this.#makeModelObjFn(refName, names.getModelEdit));
|
|
513
|
+
}
|
|
514
|
+
if (updateGuards) {
|
|
554
515
|
this.#setHandlerFactory(
|
|
555
|
-
names.
|
|
516
|
+
names.mergeModel,
|
|
556
517
|
() =>
|
|
557
|
-
(async (id: string, option?: FetchPolicy) => {
|
|
558
|
-
const
|
|
559
|
-
const
|
|
560
|
-
return
|
|
518
|
+
(async (modelOrId: string | { id: string }, data: UnknownRecord, option?: FetchPolicy) => {
|
|
519
|
+
const id = typeof modelOrId === "string" ? modelOrId : modelOrId.id;
|
|
520
|
+
const updateFn = this.#requireHandler(names.updateModel, names.mergeModel);
|
|
521
|
+
return await updateFn(id, data, option);
|
|
561
522
|
}) as FetchHandler,
|
|
562
523
|
);
|
|
563
|
-
if (updateGuards) {
|
|
564
|
-
this.#setHandlerFactory(
|
|
565
|
-
names.mergeModel,
|
|
566
|
-
() =>
|
|
567
|
-
(async (modelOrId: string | { id: string }, data: UnknownRecord, option?: FetchPolicy) => {
|
|
568
|
-
const id = typeof modelOrId === "string" ? modelOrId : modelOrId.id;
|
|
569
|
-
const updateFn = this.#requireHandler(names.updateModel, names.mergeModel);
|
|
570
|
-
return await updateFn(id, data, option);
|
|
571
|
-
}) as FetchHandler,
|
|
572
|
-
);
|
|
573
|
-
}
|
|
574
524
|
}
|
|
575
525
|
|
|
576
526
|
this.#setHandlerFactory(
|
|
@@ -595,11 +545,13 @@ export class FetchClient {
|
|
|
595
545
|
);
|
|
596
546
|
}
|
|
597
547
|
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
548
|
+
#makeModelObjFn(refName: string, callerKey: string) {
|
|
549
|
+
return (async (id: string, option?: FetchPolicy) => {
|
|
550
|
+
const modelObj = await this.#requireHandler(refName, callerKey)(id, { ...option, crystalize: false });
|
|
551
|
+
return { refName, [`${refName}Obj`]: modelObj, [`${refName}ViewAt`]: new Date() };
|
|
552
|
+
}) as FetchHandler;
|
|
553
|
+
}
|
|
554
|
+
|
|
603
555
|
#makeModelHandleFn(refName: string, modelKey: string, callerKey: string, payloadKey: string) {
|
|
604
556
|
return ((id: string, option?: FetchPolicy) => {
|
|
605
557
|
const cnst = ConstantRegistry.getDatabase(refName);
|
|
@@ -635,7 +587,7 @@ export class FetchClient {
|
|
|
635
587
|
insight: `${refName}Insight${capSuffix}`,
|
|
636
588
|
live: `${refName}Live${capSuffix}`,
|
|
637
589
|
};
|
|
638
|
-
|
|
590
|
+
|
|
639
591
|
const mcp = {
|
|
640
592
|
...(slice.mcp === false ? { mcp: false as const } : {}),
|
|
641
593
|
...(slice.agents === false ? { agents: false as const } : {}),
|
|
@@ -679,7 +631,7 @@ export class FetchClient {
|
|
|
679
631
|
};
|
|
680
632
|
|
|
681
633
|
const endpoint = FetchClient.getEndpointFromSlice(refName, suffix, slice);
|
|
682
|
-
|
|
634
|
+
|
|
683
635
|
Object.entries(endpoint).forEach(([key, value]) => {
|
|
684
636
|
this.#registerEndpoint(key, value, prefix);
|
|
685
637
|
});
|
|
@@ -827,7 +779,15 @@ export class FetchClient {
|
|
|
827
779
|
connect = false,
|
|
828
780
|
base,
|
|
829
781
|
Err,
|
|
830
|
-
|
|
782
|
+
timeout,
|
|
783
|
+
}: {
|
|
784
|
+
origin?: string;
|
|
785
|
+
connect?: boolean;
|
|
786
|
+
base?: FetchProxy;
|
|
787
|
+
Err?: ErrorConstructor;
|
|
788
|
+
/** This app's own default request budget, for calls no endpoint and no caller gave one. */
|
|
789
|
+
timeout?: number | false;
|
|
790
|
+
} = {},
|
|
831
791
|
): {
|
|
832
792
|
sig: ClientSignalMap<SigType>;
|
|
833
793
|
fetch: SigType["fetch"];
|
|
@@ -838,6 +798,7 @@ export class FetchClient {
|
|
|
838
798
|
const proxy =
|
|
839
799
|
shared ??
|
|
840
800
|
FetchClient.#makeProxy<unknown, Record<string, SliceMeta>>(new FetchClient(origin, {}, serializedSignal, Err));
|
|
801
|
+
if (timeout !== undefined) proxy.instance.setTimeout(timeout);
|
|
841
802
|
if (connect) proxy.instance.connect();
|
|
842
803
|
const sig = {} as any;
|
|
843
804
|
Object.entries(serializedSignal).forEach(([refName, serializedSignal]) => {
|
|
@@ -865,7 +826,7 @@ export class FetchClient {
|
|
|
865
826
|
if (handler) return handler;
|
|
866
827
|
}
|
|
867
828
|
const value = (instance as unknown as Record<PropertyKey, unknown>)[prop];
|
|
868
|
-
|
|
829
|
+
|
|
869
830
|
return typeof value === "function" ? value.bind(instance) : value;
|
|
870
831
|
},
|
|
871
832
|
}) as FetchProxy<FetchType, SliceMetaObj>;
|
|
@@ -1,18 +1,10 @@
|
|
|
1
1
|
type FieldFactories<Handle> = { [Key in keyof Handle]: () => Handle[Key] };
|
|
2
2
|
|
|
3
|
-
/**
|
|
4
|
-
* A fetch result that is both awaitable and destructurable.
|
|
5
|
-
*
|
|
6
|
-
* `await` gives the object the helper has always given, so every existing call site reads unchanged. Reading a
|
|
7
|
-
* field off the un-awaited result gives that field's own promise instead, so a route can hand each one to the
|
|
8
|
-
* section that renders it and let the slowest arrive last rather than holding the whole page.
|
|
9
|
-
*/
|
|
3
|
+
/** Awaitable as the shape a helper always gave, and destructurable into one promise per field. */
|
|
10
4
|
export class FetchHandle {
|
|
11
5
|
/**
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
* @param settle builds the awaited shape — its own fields stay lazy, so awaiting costs nothing extra.
|
|
15
|
-
* @param fields one factory per field of the un-awaited shape, memoized on first read.
|
|
6
|
+
* Each of `requests` gets a swallowing handler, so a field nobody reads cannot surface as an unhandled rejection;
|
|
7
|
+
* `fields` factories are memoized on first read.
|
|
16
8
|
*/
|
|
17
9
|
static of<Awaited extends object, Handle extends object>(
|
|
18
10
|
requests: Promise<unknown>[],
|
|
@@ -39,7 +31,7 @@ export class FetchHandle {
|
|
|
39
31
|
},
|
|
40
32
|
});
|
|
41
33
|
}
|
|
42
|
-
|
|
34
|
+
|
|
43
35
|
return Object.defineProperties(handle, {
|
|
44
36
|
|
|
45
37
|
then: { value: (...args: unknown[]) => Reflect.apply(resolve().then, resolve(), args) },
|
|
@@ -24,14 +24,7 @@ const transportErrorKeyMap = {
|
|
|
24
24
|
const serverUnreachableKey = "base.error.serverUnreachable";
|
|
25
25
|
const unexpectedResponseKey = "base.error.unexpectedResponse";
|
|
26
26
|
const transportDetailLimit = 200;
|
|
27
|
-
|
|
28
|
-
* How long a call waits before giving up.
|
|
29
|
-
*
|
|
30
|
-
* Nothing else bounds it: a gateway answers a dead upstream with a 504, but a solo process has no gateway and a
|
|
31
|
-
* severed connection produces no response at all — the request then sits until the browser's own limit, which is
|
|
32
|
-
* minutes. The dictionary already has the wording for a slow server (`gatewayTimeout`), so this is the client
|
|
33
|
-
* side of an answer that only existed for one deployment shape.
|
|
34
|
-
*/
|
|
27
|
+
|
|
35
28
|
const DEFAULT_TIMEOUT_MS = 30_000;
|
|
36
29
|
|
|
37
30
|
export class HttpClient {
|
|
@@ -49,13 +42,14 @@ export class HttpClient {
|
|
|
49
42
|
setErrorConstructor(ErrorCls?: ErrorConstructor) {
|
|
50
43
|
this.ErrorCls = ErrorCls;
|
|
51
44
|
}
|
|
52
|
-
|
|
53
|
-
|
|
45
|
+
/** The budget every call that names none takes. `false` waits as long as the runtime will. */
|
|
46
|
+
setTimeout(timeout?: number | false) {
|
|
47
|
+
this.#timeout = timeout;
|
|
54
48
|
}
|
|
55
49
|
#resolveUrl(url: string, options: FetchOptions) {
|
|
56
|
-
return `${
|
|
50
|
+
return `${(options.baseUrl ?? this.baseUrl).replace(/\/$/, "")}${url}`;
|
|
57
51
|
}
|
|
58
|
-
|
|
52
|
+
|
|
59
53
|
#makeHeaders(headers: Record<string, string>, options: FetchOptions) {
|
|
60
54
|
return { Accept: "application/json", ...this.#headers, ...headers, ...options.headers };
|
|
61
55
|
}
|
|
@@ -67,7 +61,7 @@ export class HttpClient {
|
|
|
67
61
|
);
|
|
68
62
|
}
|
|
69
63
|
#makeReqContent(data: FormData | Record<string, unknown>): { body: BodyInit; headers: Record<string, string> } {
|
|
70
|
-
|
|
64
|
+
|
|
71
65
|
if (data instanceof FormData) return { body: data, headers: {} };
|
|
72
66
|
return { body: JSON.stringify(data), headers: { "Content-Type": "application/json" } };
|
|
73
67
|
}
|
|
@@ -108,30 +102,22 @@ export class HttpClient {
|
|
|
108
102
|
|
|
109
103
|
async #request<Returns>(url: string, init: RequestInit, options: FetchOptions = {}): Promise<Returns> {
|
|
110
104
|
const res = await this.#fetch(url, this.#withTimeout(init, options));
|
|
111
|
-
|
|
105
|
+
const body = await this.#readBody(res);
|
|
106
|
+
if (res.ok) return body as Returns;
|
|
107
|
+
throw this.#restoreError(body, res.status);
|
|
112
108
|
}
|
|
113
109
|
|
|
114
|
-
/**
|
|
115
|
-
* An upload gets no deadline of its own: a large file on a slow uplink is a long request that is working, and
|
|
116
|
-
* the request body is the only thing this side can tell that from. Everything else takes the default unless
|
|
117
|
-
* the caller named one.
|
|
118
|
-
*/
|
|
119
110
|
#withTimeout(init: RequestInit, options: FetchOptions): RequestInit {
|
|
120
111
|
const timeout = options.timeout ?? (init.body instanceof FormData ? false : (this.#timeout ?? DEFAULT_TIMEOUT_MS));
|
|
121
112
|
if (timeout === false || !Number.isFinite(timeout) || timeout <= 0) return init;
|
|
122
113
|
return { ...init, signal: AbortSignal.timeout(timeout) };
|
|
123
114
|
}
|
|
124
115
|
|
|
125
|
-
/**
|
|
126
|
-
* `fetch` rejects only when no response arrived at all — a refused connection, a DNS failure, a socket
|
|
127
|
-
* dropped mid-flight. That is the server being unreachable, not an error this API reported, so it is
|
|
128
|
-
* restored as one rather than surfacing the runtime's own `TypeError: Failed to fetch`.
|
|
129
|
-
*/
|
|
130
116
|
async #fetch(url: string, init: RequestInit) {
|
|
131
117
|
try {
|
|
132
118
|
return await fetch(url, init);
|
|
133
119
|
} catch (error) {
|
|
134
|
-
|
|
120
|
+
|
|
135
121
|
if (error instanceof Error && error.name === "TimeoutError")
|
|
136
122
|
throw this.#restoreError({ error: transportErrorKeyMap[408], data: { status: 408 } }, 408);
|
|
137
123
|
if (error instanceof Error && error.name === "AbortError") throw error;
|
|
@@ -139,17 +125,6 @@ export class HttpClient {
|
|
|
139
125
|
}
|
|
140
126
|
}
|
|
141
127
|
|
|
142
|
-
async #readJsonResponse<Returns>(res: Response): Promise<Returns> {
|
|
143
|
-
const body = await this.#readBody(res);
|
|
144
|
-
if (res.ok) return body as Returns;
|
|
145
|
-
throw this.#restoreError(body, res.status);
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
/**
|
|
149
|
-
* A proxy answers a restarting upstream with a page of its own — nginx's `504 Gateway Time-out` HTML,
|
|
150
|
-
* the federation gateway's plain-text 503. That body is not this API's, so parsing it would surface the
|
|
151
|
-
* parser's complaint (`Unexpected token '<'`) instead of the fact that the server is down.
|
|
152
|
-
*/
|
|
153
128
|
async #readBody(res: Response) {
|
|
154
129
|
if (jsonContentType.test(res.headers.get("content-type") ?? "")) {
|
|
155
130
|
try {
|
|
@@ -189,9 +164,9 @@ export class HttpClient {
|
|
|
189
164
|
searchArgs.forEach((arg) => {
|
|
190
165
|
const argValue = argMap.get(arg.name);
|
|
191
166
|
if (argValue === null || argValue === undefined) return;
|
|
192
|
-
|
|
167
|
+
|
|
193
168
|
if (arg.refName === "Any") {
|
|
194
|
-
|
|
169
|
+
|
|
195
170
|
const encoded = JSON.stringify(argValue);
|
|
196
171
|
if (encoded !== undefined) searchParams.set(arg.name, encoded);
|
|
197
172
|
} else if (arg.arrDepth && Array.isArray(argValue))
|
|
@@ -203,45 +178,37 @@ export class HttpClient {
|
|
|
203
178
|
const searchPath = searchParams.size > 0 ? `?${searchParams.toString()}` : "";
|
|
204
179
|
const paramedPath = path.replace(/:(\w+)/g, (match, p1) => {
|
|
205
180
|
const value = argMap.get(p1);
|
|
206
|
-
return value === null || value === undefined ? match : String(value);
|
|
181
|
+
return value === null || value === undefined ? match : encodeURIComponent(String(value));
|
|
207
182
|
});
|
|
208
183
|
return `${paramedPath}${searchPath}`;
|
|
209
184
|
}
|
|
210
|
-
|
|
185
|
+
|
|
211
186
|
static #toUploadValues(argValue: unknown): (Blob | string)[] {
|
|
212
187
|
if (Array.isArray(argValue)) return argValue as (Blob | string)[];
|
|
213
188
|
if (typeof FileList !== "undefined" && argValue instanceof FileList) return Array.from(argValue);
|
|
214
189
|
return [argValue as Blob | string];
|
|
215
190
|
}
|
|
216
191
|
static makeBody(bodyArgs: SerializedArg[], uploadArgs: SerializedArg[], argMap: Map<string, unknown>) {
|
|
217
|
-
|
|
218
|
-
const
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
if (arg.nullable && (argValue === null || argValue === undefined)) return;
|
|
231
|
-
if (!arg.nullable && (argValue === null || argValue === undefined))
|
|
232
|
-
throw new Error(`Argument ${arg.name} is required`);
|
|
233
|
-
formData.append(arg.name, typeof argValue === "string" ? argValue : JSON.stringify(argValue));
|
|
234
|
-
});
|
|
235
|
-
return formData;
|
|
236
|
-
} else {
|
|
237
|
-
const body: Record<string, unknown> = {};
|
|
238
|
-
bodyArgs.forEach((arg) => {
|
|
239
|
-
const argValue = argMap.get(arg.name);
|
|
240
|
-
if (!arg.nullable && (argValue === null || argValue === undefined))
|
|
241
|
-
throw new Error(`Argument ${arg.name} is required`);
|
|
242
|
-
body[arg.name] = argValue;
|
|
192
|
+
const valueOf = (arg: SerializedArg) => {
|
|
193
|
+
const argValue = argMap.get(arg.name);
|
|
194
|
+
if (!arg.nullable && (argValue === null || argValue === undefined))
|
|
195
|
+
throw new Error(`Argument ${arg.name} is required`);
|
|
196
|
+
return argValue;
|
|
197
|
+
};
|
|
198
|
+
if (!uploadArgs.length) return Object.fromEntries(bodyArgs.map((arg) => [arg.name, valueOf(arg)]));
|
|
199
|
+
const formData = new FormData();
|
|
200
|
+
uploadArgs.forEach((arg) => {
|
|
201
|
+
const argValue = valueOf(arg);
|
|
202
|
+
if (argValue === null || argValue === undefined) return;
|
|
203
|
+
HttpClient.#toUploadValues(argValue).forEach((value) => {
|
|
204
|
+
formData.append(arg.name, value);
|
|
243
205
|
});
|
|
244
|
-
|
|
245
|
-
|
|
206
|
+
});
|
|
207
|
+
bodyArgs.forEach((arg) => {
|
|
208
|
+
const argValue = valueOf(arg);
|
|
209
|
+
if (argValue === null || argValue === undefined) return;
|
|
210
|
+
formData.append(arg.name, typeof argValue === "string" ? argValue : JSON.stringify(argValue));
|
|
211
|
+
});
|
|
212
|
+
return formData;
|
|
246
213
|
}
|
|
247
214
|
}
|
|
@@ -22,14 +22,8 @@ export interface ErrorConstructor {
|
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
/**
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
* The `toJSON` is what makes the second case rethrowable. A server process that calls another with `{ origin }`
|
|
29
|
-
* and lets the failure propagate is answered by `SignalContext.try`, which forwards a payload only when the
|
|
30
|
-
* thrown value carries both `statusCode` and `toJSON`; anything else is this repo's own bug and is generalized
|
|
31
|
-
* to `Internal Server Error`. Without it the hop loses the dictionary key and its data, and the browser toasts
|
|
32
|
-
* the generalization instead of the sentence the remote endpoint chose.
|
|
25
|
+
* The caller's own `Err` when given one, else a duck-typed `Error` with the same payload, whose `toJSON` lets
|
|
26
|
+
* `SignalContext.try` forward the remote key and data rather than generalize to `Internal Server Error`.
|
|
33
27
|
*/
|
|
34
28
|
export const restoreRemoteError = (
|
|
35
29
|
body: unknown,
|
|
@@ -21,11 +21,8 @@ export interface SliceInitInput {
|
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
/**
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
* The list does not wait for the aggregate: `x<Slice>List` resolves as soon as the rows land, while
|
|
27
|
-
* `x<Slice>Init` — which carries `lastPageOf<Model>` and therefore needs the count — waits for both. Every
|
|
28
|
-
* derived value is memoized, so the awaited shape and the un-awaited handle hand out the same instances.
|
|
24
|
+
* `x<Slice>List` resolves when the rows land; `x<Slice>Init` needs the count (`lastPageOf<Model>`) and waits for
|
|
25
|
+
* both. Derived values are memoized, so the awaited shape and the handle share instances.
|
|
29
26
|
*/
|
|
30
27
|
export class SliceInitHandle {
|
|
31
28
|
readonly #input: SliceInitInput;
|
|
@@ -78,7 +75,7 @@ export class SliceInitHandle {
|
|
|
78
75
|
[`pageOf${capRefName}`]: page,
|
|
79
76
|
[`lastPageOf${capRefName}`]: lastPage,
|
|
80
77
|
[`limitOf${capRefName}`]: limit,
|
|
81
|
-
|
|
78
|
+
|
|
82
79
|
[`hasMoreOf${capRefName}`]: !!limit && modelObjList.length >= limit,
|
|
83
80
|
[`queryArgsOf${capRefName}`]: queryArgs,
|
|
84
81
|
[`sortOf${capRefName}`]: sort,
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { SerializedArg } from "akanjs/signal";
|
|
2
|
+
|
|
3
|
+
const isNullableArg = (arg: SerializedArg) => arg.nullable ?? arg.type === "search";
|
|
4
|
+
|
|
5
|
+
export const normalizeQueryArgs = (queryArgs: unknown[], args: SerializedArg[]) => {
|
|
6
|
+
let length = Math.min(queryArgs.length, args.length);
|
|
7
|
+
while (length > 0 && isNullableArg(args[length - 1]) && queryArgs[length - 1] == null) length--;
|
|
8
|
+
return queryArgs.slice(0, length);
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export const expandQueryArgs = (queryArgs: unknown[], args: SerializedArg[]) => args.map((_, idx) => queryArgs[idx]);
|