akanjs 3.0.0-beta.2 → 3.0.0-beta.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/base/base.ts +6 -11
- package/base/baseEnv.ts +17 -11
- package/base/databaseModes.ts +75 -0
- package/base/index.ts +1 -0
- package/base/primitiveRegistry.ts +38 -47
- package/base/symbols.ts +1 -1
- package/base/types.ts +1 -1
- package/base/utils.ts +3 -6
- package/capacitor.base.config.ts +2 -3
- package/client/capacitor.ts +18 -63
- package/client/cn.ts +3 -13
- package/client/cookie.ts +6 -15
- package/client/createFont.ts +0 -2
- package/client/csrTypes.ts +6 -59
- package/client/decorators.ts +1 -1
- package/client/device.ts +52 -44
- package/client/frameConfig.ts +15 -26
- package/client/index.ts +0 -1
- package/client/makePageProto.tsx +3 -4
- package/client/route/RootLayoutDefinition.ts +0 -6
- package/client/route/RouteDefinition.ts +5 -30
- package/client/route/resolveRouteModule.ts +1 -5
- package/client/router.ts +35 -39
- package/client/rscNavigation.ts +4 -5
- package/client/sharedContext.ts +2 -19
- package/client/storage.ts +29 -38
- package/client/translator.ts +5 -6
- package/client/types.ts +0 -3
- package/common/CodeAgentClient.ts +91 -0
- package/common/CodeTranscript.ts +325 -0
- package/common/Logger.ts +9 -34
- package/common/TrustedProxy.ts +6 -34
- package/common/applyMixins.ts +13 -2
- package/common/authToken.ts +0 -11
- package/common/capitalize.ts +3 -4
- package/common/clamp.ts +0 -1
- package/common/clientAddress.ts +1 -15
- package/common/codeAgentProfile.ts +181 -0
- package/common/codeAgentWire.ts +305 -0
- package/{server/routing → common}/eventStream.ts +1 -6
- package/common/fileUpload.ts +1 -12
- package/common/formatNumber.ts +3 -12
- package/common/index.ts +104 -19
- package/common/interpolateTranslation.ts +1 -6
- package/common/isEmail.ts +0 -1
- package/common/isRecord.ts +2 -0
- package/common/isThenable.ts +1 -8
- package/common/isValidDate.ts +3 -5
- package/common/logContext.ts +1 -1
- package/{ui/Agent → common}/markdownBlocks.ts +0 -3
- package/common/markdownSpans.ts +47 -0
- package/{ui/Agent → common}/markdownTable.ts +1 -5
- package/common/mcpExposure.ts +4 -27
- package/common/objectPath.ts +67 -0
- package/common/objectify.ts +52 -0
- package/common/{isPhoneNumber.ts → phone.ts} +7 -1
- package/common/randomPick.ts +13 -0
- package/common/requestOrigin.ts +0 -17
- package/common/restClient.ts +8 -13
- package/common/round.ts +4 -0
- package/common/routeConvention.ts +21 -14
- package/common/sleep.ts +1 -8
- package/common/subRoute.ts +4 -7
- package/common/toError.ts +1 -0
- package/common/tunnelWire.ts +263 -0
- package/common/types.ts +6 -7
- package/common/{splitVersion.ts → version.ts} +3 -6
- package/common/{websocketBinaryFrame.ts → websocketContract.ts} +43 -9
- package/constant/cascadePaths.ts +6 -9
- package/constant/constantRegistry.ts +21 -57
- package/constant/crystalize.ts +2 -12
- package/constant/dateSlot.ts +0 -15
- package/constant/fieldInfo.ts +30 -109
- package/constant/fieldQueryMeta.ts +2 -10
- package/constant/getDefault.ts +16 -8
- package/constant/hydrationPlan.ts +1 -9
- package/constant/index.ts +0 -1
- package/constant/labelOf.ts +1 -6
- package/constant/mask.ts +36 -38
- package/constant/purify.ts +6 -14
- package/constant/serialize.ts +82 -5
- package/constant/textFieldPaths.ts +2 -3
- package/constant/types.ts +2 -6
- package/constant/via.ts +20 -60
- package/dictionary/DictionaryLookup.ts +1 -7
- package/dictionary/agent.dictionary.ts +43 -11
- package/dictionary/base.dictionary.ts +11 -0
- package/dictionary/dictInfo.ts +145 -626
- package/dictionary/dictShape.ts +54 -0
- package/dictionary/dictionary.ts +1 -2
- package/dictionary/dictionaryRegistry.ts +7 -28
- package/dictionary/locale.ts +24 -116
- package/dictionary/trans.ts +18 -56
- package/document/dataLoader.ts +77 -78
- package/document/database.ts +52 -56
- package/document/documentQuery.ts +32 -32
- package/document/documentSchema.ts +21 -26
- package/document/filterMeta.ts +11 -31
- package/document/index.ts +0 -1
- package/document/into.ts +8 -18
- package/document/loaderInfo.ts +28 -7
- package/document/noDocumentError.ts +2 -7
- package/document/queryEvaluator.ts +21 -43
- package/document/types.ts +0 -1
- package/fetch/client/fetchClient.ts +66 -105
- package/fetch/client/fetchHandle.ts +4 -12
- package/fetch/client/httpClient.ts +35 -68
- package/fetch/client/remoteError.ts +2 -8
- package/fetch/client/sliceInitHandle.ts +3 -6
- package/fetch/client/sliceQueryArgs.ts +11 -0
- package/fetch/client/wsClient.ts +75 -64
- package/fetch/fetchType/appliedReturn.type.ts +5 -24
- package/fetch/fetchType/buildFetch.type.ts +28 -1
- package/fetch/fetchType/index.ts +0 -1
- package/fetch/requestStorage.ts +7 -28
- package/fetch/types.ts +0 -1
- package/index.ts +31 -64
- package/package.json +19 -5
- package/server/akanApp.ts +138 -289
- package/server/akanAppHeaders.ts +2 -3
- package/server/akanOption.ts +25 -27
- package/server/akanServer.ts +98 -219
- package/server/animatedImage.ts +2 -11
- package/server/artifact/builderRpc.ts +24 -64
- package/server/artifact/index.ts +0 -1
- package/server/artifact/ipcTypes.ts +27 -30
- package/server/artifact/routeClientCache.ts +18 -37
- package/server/artifact/routeSeedIndexStore.ts +2 -35
- package/server/artifact/routesManifestStore.ts +13 -38
- package/server/binaryPubsub.ts +0 -9
- package/server/cachePolicy.ts +10 -44
- package/server/console.ts +12 -16
- package/server/consoleSession.ts +55 -12
- package/server/contentEncoding.ts +42 -27
- package/server/decorators.ts +4 -70
- package/server/devtools/constantSerializer.ts +2 -14
- package/server/devtools/depsSerializer.ts +14 -46
- package/server/devtools/devtoolsJson.ts +6 -18
- package/server/devtools/devtoolsRouter.ts +2 -12
- package/server/devtools/signalSerializer.ts +5 -44
- package/server/devtools/types.ts +0 -12
- package/server/di/diLifecycle.ts +141 -221
- package/server/di/predefinedAdaptor.ts +11 -5
- package/server/di/resolveHierarchy.ts +114 -5
- package/server/di/utils.ts +13 -29
- package/server/head.tsx +53 -0
- package/server/hmr/clientScript.ts +2 -8
- package/server/hmr/devHmrController.ts +28 -32
- package/server/hmr/wsHub.ts +9 -7
- package/server/imageOptimizer.ts +5 -26
- package/server/index.ts +1 -1
- package/server/lifecycle/portInUse.ts +1 -4
- package/server/lifecycle/runtimeDir.ts +0 -4
- package/server/lifecycle/shutdownManager.ts +4 -29
- package/server/logging/childOutputReader.ts +0 -12
- package/server/logging/hubFileSink.ts +10 -6
- package/server/logging/logControlSocket.ts +13 -7
- package/server/logging/logForwarder.ts +19 -22
- package/server/logging/logHub.ts +0 -0
- package/server/logging/logQuery.ts +4 -7
- package/server/logging/logStdoutWriter.ts +1 -11
- package/server/logging/logStreamRoute.ts +4 -21
- package/server/logging/logTailClient.ts +1 -8
- package/server/logging/rotatingLogWriter.ts +4 -6
- package/server/mcp/McpAuth.ts +5 -79
- package/server/mcp/McpDispatcher.ts +13 -90
- package/server/mcp/McpEventStream.ts +2 -12
- package/server/mcp/McpExecutionContext.ts +1 -42
- package/server/mcp/McpRateLimiter.ts +61 -30
- package/server/mcp/McpRouter.ts +49 -208
- package/server/mcp/PagePromptComposer.ts +7 -29
- package/server/memoryLimit.ts +1 -13
- package/server/oauth/OAuthAuthorize.ts +3 -7
- package/server/oauth/OAuthClientIdMetadata.ts +2 -27
- package/server/oauth/OAuthErrors.ts +0 -13
- package/server/oauth/OAuthMetadata.ts +1 -7
- package/server/oauth/OAuthPkce.ts +0 -2
- package/server/oauth/OAuthRedirect.ts +0 -9
- package/server/oauth/OAuthRegistration.ts +0 -2
- package/server/oauth/OAuthRevocation.ts +1 -11
- package/server/oauth/OAuthToken.ts +3 -14
- package/server/oauth/oauthTypes.ts +1 -2
- package/server/ops/ageEncryption.ts +317 -0
- package/server/ops/appInfo.ts +92 -0
- package/server/ops/opsCommand.ts +116 -0
- package/server/ops/opsRoute.ts +151 -0
- package/server/ops/opsToken.ts +93 -0
- package/server/ops/snapshotJobs.ts +133 -0
- package/server/ops/snapshotRestore.ts +118 -0
- package/server/ops/snapshotTypes.ts +52 -0
- package/server/ops/sqliteFiles.ts +20 -0
- package/server/ops/sqliteSnapshot.ts +149 -0
- package/server/processMetricsCollector.ts +12 -14
- package/server/proxy/hostBasePathWebProxy.ts +20 -13
- package/server/proxy/index.ts +2 -3
- package/server/proxy/localeWebProxy.ts +3 -17
- package/server/proxy/types.ts +14 -0
- package/server/proxy/webProxyRunner.ts +13 -1
- package/server/resolver/CascadeRunner.ts +7 -23
- package/server/resolver/database.resolver.ts +57 -123
- package/server/resolver/service.resolver.ts +9 -161
- package/server/resolver/signal.resolver.ts +73 -98
- package/server/routeElementComposer.tsx +23 -52
- package/server/routeState.ts +15 -34
- package/server/routeTreeBuilder.ts +24 -83
- package/server/routing/apiRouter.ts +17 -49
- package/server/routing/appWsData.ts +4 -28
- package/server/routing/soloAppRoutes.ts +5 -5
- package/server/rscClient.tsx +31 -37
- package/server/rscClientFetch.ts +7 -3
- package/server/rscClientPatch.ts +4 -25
- package/server/rscHttp.ts +1 -1
- package/server/rscNavigationState.ts +10 -25
- package/server/rscPagePrompts.ts +4 -24
- package/server/rscSegmentOutlet.tsx +1 -5
- package/server/rscWorker.tsx +146 -285
- package/server/rscWorkerCache.ts +74 -8
- package/server/rscWorkerHost.ts +45 -192
- package/server/semaphore.ts +1 -1
- package/server/sitemap.ts +1 -3
- package/server/ssrFromRscRenderer.tsx +31 -124
- package/server/ssrTypes.ts +3 -29
- package/server/staticPath.ts +0 -16
- package/server/systemPageDocument.tsx +65 -2
- package/server/systemPages.tsx +4 -2
- package/server/tunnel/TunnelAgent.ts +237 -0
- package/server/tunnel/TunnelDataSocket.ts +146 -0
- package/server/tunnel/TunnelHttpStream.ts +86 -0
- package/server/tunnel/TunnelTcpStream.ts +96 -0
- package/server/tunnel/TunnelWebsocketStream.ts +110 -0
- package/server/tunnel/index.ts +6 -0
- package/server/tunnel/tunnelStream.ts +32 -0
- package/server/types.tsx +2 -9
- package/server/webRouter.ts +88 -306
- package/service/agent.service.ts +66 -35
- package/service/injectInfo.ts +106 -75
- package/service/ipcTypes.ts +4 -1
- package/service/liveSyncHub.ts +4 -34
- package/service/predefinedAdaptor/anthropicLlm.ts +65 -75
- package/service/predefinedAdaptor/cache.adaptor.ts +257 -75
- package/service/predefinedAdaptor/database.adaptor.ts +366 -108
- package/service/predefinedAdaptor/documentTransfer.ts +89 -0
- package/service/predefinedAdaptor/index.ts +2 -1
- package/service/predefinedAdaptor/insightQuery.ts +89 -79
- package/service/predefinedAdaptor/llm.adaptor.ts +64 -54
- package/service/predefinedAdaptor/llmOverflow.ts +63 -0
- package/service/predefinedAdaptor/openaiDialect.ts +56 -64
- package/service/predefinedAdaptor/openaiLlm.ts +24 -27
- package/service/predefinedAdaptor/queue.adaptor.ts +41 -22
- package/service/predefinedAdaptor/schedule.adaptor.ts +69 -9
- package/service/predefinedAdaptor/searchIndex.ts +76 -325
- package/service/predefinedAdaptor/solidCache.adaptor.ts +135 -12
- package/service/predefinedAdaptor/solidPubsub.adaptor.ts +28 -16
- package/service/predefinedAdaptor/solidQueue.adaptor.ts +61 -10
- package/service/predefinedAdaptor/solidSqlite.ts +10 -16
- package/service/predefinedAdaptor/sql/PendingStoreEnsures.ts +1 -0
- package/service/predefinedAdaptor/sql/PostgresInsightSession.ts +113 -0
- package/service/predefinedAdaptor/sql/QueryCompiler.ts +50 -30
- package/service/predefinedAdaptor/sql/SqlDocumentStore.ts +290 -138
- package/service/predefinedAdaptor/sql/SqliteInsightSession.ts +85 -0
- package/service/predefinedAdaptor/sql/UpdateCompiler.ts +1 -7
- package/service/predefinedAdaptor/sql/dialect/postgres.ts +138 -53
- package/service/predefinedAdaptor/sql/dialect/sqlite.ts +18 -15
- package/service/predefinedAdaptor/sql/driver/bunSqlite.ts +31 -4
- package/service/predefinedAdaptor/sql/driver/libsql.ts +20 -12
- package/service/predefinedAdaptor/sql/driver/postgres.ts +13 -7
- package/service/predefinedAdaptor/sql/search/fts5.ts +249 -0
- package/service/predefinedAdaptor/sql/search/mirror.ts +76 -0
- package/service/predefinedAdaptor/sql/search/postgres.ts +453 -0
- package/service/predefinedAdaptor/sql/search/types.ts +50 -0
- package/service/predefinedAdaptor/sql/types.ts +76 -17
- package/service/predefinedAdaptor/sql/values.ts +40 -2
- package/service/predefinedAdaptor/sqlitePath.ts +12 -0
- package/service/predefinedAdaptor/sseData.ts +23 -0
- package/service/predefinedAdaptor/storage.adaptor.ts +19 -7
- package/service/predefinedAdaptor/websocket.adaptor.ts +154 -184
- package/service/serve.ts +1 -2
- package/service/serviceModule.ts +52 -70
- package/service/toolNames.ts +5 -22
- package/service/types.ts +3 -9
- package/signal/CrossSiteGuard.ts +5 -40
- package/signal/SignalFailure.ts +2 -15
- package/signal/agent/AgentCatalogue.ts +9 -55
- package/signal/agent.signal.ts +9 -6
- package/signal/agentMeter.ts +45 -0
- package/signal/agentTurnStream.ts +48 -46
- package/signal/endpoint.ts +12 -2
- package/signal/endpointCache.ts +59 -0
- package/signal/endpointInfo.ts +13 -27
- package/signal/exception.ts +3 -34
- package/signal/guard.ts +4 -21
- package/signal/guards.ts +2 -10
- package/signal/index.ts +1 -0
- package/signal/internal.ts +3 -7
- package/signal/internalArg.ts +10 -13
- package/signal/internalInfo.ts +1 -1
- package/signal/mcp/McpDocument.ts +21 -90
- package/signal/mcp/McpProgress.ts +6 -19
- package/signal/mcp/McpUriTemplate.ts +1 -27
- package/signal/mcp/Msg.ts +13 -122
- package/signal/mcp/mcpProtocol.ts +3 -26
- package/signal/mcp/pagePrompt.ts +3 -9
- package/signal/middleware.ts +15 -65
- package/signal/openapi/openapi.ts +0 -4
- package/signal/schema/JsonSchemaBuilder.ts +32 -46
- package/signal/serializer/fetch.serializer.ts +37 -43
- package/signal/serverSignal.ts +6 -8
- package/signal/signalContext.ts +70 -161
- package/signal/signalRegistry.ts +11 -17
- package/signal/slice.ts +6 -12
- package/signal/sliceInfo.ts +5 -30
- package/signal/trace.ts +11 -84
- package/signal/types.ts +27 -57
- package/store/SliceRequest.ts +1 -11
- package/store/action.ts +153 -395
- package/store/actionTag.ts +1 -10
- package/store/agent/AgentBridge.ts +3 -25
- package/store/agent/AgentContext.ts +2 -9
- package/store/agent/AgentCursor.ts +160 -0
- package/store/agent/AgentPrompts.ts +0 -15
- package/store/agent/AgentVisual.ts +152 -0
- package/store/agent/ScreenFlash.ts +67 -0
- package/store/agent/ScreenReader.ts +3 -52
- package/store/agent/ScreenSettle.ts +1 -13
- package/store/agent/ScreenTarget.ts +15 -32
- package/store/agent/StoreCatalogue.ts +12 -24
- package/store/agent/StoreSurfaceSource.ts +35 -65
- package/store/agent/index.ts +4 -4
- package/store/agentic/AgentValue.ts +9 -26
- package/store/agentic/StExposeBuilder.ts +3 -12
- package/store/agentic/StExposeDraft.ts +0 -6
- package/store/agentic/StStateBuilder.ts +3 -11
- package/store/agentic/StStateDraft.ts +0 -5
- package/store/agentic/StToolBuilder.ts +48 -41
- package/store/agentic/StToolDraft.ts +0 -7
- package/store/agentic/attachAgentic.ts +2 -10
- package/store/agentic/formFields.ts +8 -42
- package/store/agentic/index.ts +1 -1
- package/store/agentic/useAgentReference.ts +31 -0
- package/store/agentic/useFieldTool.ts +176 -58
- package/store/agentic/useFormTools.ts +4 -21
- package/store/agentic/useRelationFieldTool.ts +2 -15
- package/store/databaseStateNames.ts +0 -9
- package/store/draftStore.ts +4 -54
- package/store/formSetterNames.ts +2 -19
- package/store/hooks.ts +1 -1
- package/store/liveInsert.ts +1 -30
- package/store/sliceKeys.ts +37 -0
- package/store/sliceRole.ts +1 -10
- package/store/state.ts +4 -50
- package/store/stateBuilder.ts +1 -23
- package/store/storeInstance.ts +21 -114
- package/store/storeRegistry.ts +1 -8
- package/store/types.ts +1 -1
- package/test/conformance.ts +299 -0
- package/test/index.ts +2 -2
- package/test/sampleOf.ts +52 -28
- package/test/signalTestRuntime.ts +6 -10
- package/test/testServer.ts +66 -31
- package/types/base/base.d.ts +2 -3
- package/types/base/baseEnv.d.ts +7 -10
- package/types/base/databaseModes.d.ts +28 -0
- package/types/base/index.d.ts +1 -0
- package/types/base/primitiveRegistry.d.ts +23 -10
- package/types/base/symbols.d.ts +1 -1
- package/types/capacitor.base.config.d.ts +1 -1
- package/types/client/cn.d.ts +3 -13
- package/types/client/cookie.d.ts +3 -12
- package/types/client/csrTypes.d.ts +6 -57
- package/types/client/decorators.d.ts +1 -1
- package/types/client/device.d.ts +2 -1
- package/types/client/index.d.ts +0 -1
- package/types/client/route/RootLayoutDefinition.d.ts +0 -1
- package/types/client/route/RouteDefinition.d.ts +4 -16
- package/types/client/route/resolveRouteModule.d.ts +1 -5
- package/types/client/router.d.ts +8 -4
- package/types/client/rscNavigation.d.ts +4 -5
- package/types/client/sharedContext.d.ts +2 -19
- package/types/client/storage.d.ts +1 -1
- package/types/client/types.d.ts +0 -3
- package/types/common/CodeAgentClient.d.ts +20 -0
- package/types/common/CodeTranscript.d.ts +72 -0
- package/types/common/Logger.d.ts +4 -20
- package/types/common/TrustedProxy.d.ts +2 -28
- package/types/common/applyMixins.d.ts +3 -0
- package/types/common/authToken.d.ts +0 -11
- package/types/common/capitalize.d.ts +1 -1
- package/types/common/clamp.d.ts +0 -1
- package/types/common/clientAddress.d.ts +1 -15
- package/types/common/codeAgentProfile.d.ts +115 -0
- package/types/common/codeAgentWire.d.ts +279 -0
- package/types/{server/routing → common}/eventStream.d.ts +0 -5
- package/types/common/fileUpload.d.ts +6 -11
- package/types/common/index.d.ts +20 -19
- package/types/common/interpolateTranslation.d.ts +1 -6
- package/types/common/isEmail.d.ts +0 -1
- package/types/common/isRecord.d.ts +1 -0
- package/types/common/isThenable.d.ts +0 -8
- package/types/common/logContext.d.ts +1 -1
- package/types/{ui/Agent → common}/markdownBlocks.d.ts +0 -3
- package/types/common/markdownSpans.d.ts +30 -0
- package/types/{ui/Agent → common}/markdownTable.d.ts +0 -2
- package/types/common/mcpExposure.d.ts +3 -23
- package/types/common/objectPath.d.ts +10 -0
- package/types/common/objectify.d.ts +7 -0
- package/types/common/phone.d.ts +2 -0
- package/types/common/randomPick.d.ts +1 -0
- package/types/common/requestOrigin.d.ts +0 -17
- package/types/common/restClient.d.ts +0 -7
- package/types/common/round.d.ts +1 -0
- package/types/common/routeConvention.d.ts +2 -5
- package/types/common/sleep.d.ts +0 -1
- package/types/common/subRoute.d.ts +4 -6
- package/types/common/toError.d.ts +1 -0
- package/types/common/tunnelWire.d.ts +161 -0
- package/types/common/types.d.ts +7 -7
- package/types/common/version.d.ts +6 -0
- package/types/common/websocketContract.d.ts +41 -0
- package/types/constant/cascadePaths.d.ts +2 -5
- package/types/constant/constantRegistry.d.ts +4 -4
- package/types/constant/dateSlot.d.ts +0 -5
- package/types/constant/fieldInfo.d.ts +2 -21
- package/types/constant/fieldQueryMeta.d.ts +2 -10
- package/types/constant/getDefault.d.ts +5 -7
- package/types/constant/hydrationPlan.d.ts +0 -8
- package/types/constant/index.d.ts +0 -1
- package/types/constant/labelOf.d.ts +1 -6
- package/types/constant/mask.d.ts +11 -36
- package/types/constant/serialize.d.ts +10 -2
- package/types/constant/types.d.ts +2 -6
- package/types/constant/via.d.ts +0 -1
- package/types/dictionary/DictionaryLookup.d.ts +1 -7
- package/types/dictionary/agent.dictionary.d.ts +2 -1
- package/types/dictionary/base.dictionary.d.ts +1 -1
- package/types/dictionary/dictInfo.d.ts +25 -92
- package/types/dictionary/dictShape.d.ts +26 -0
- package/types/dictionary/dictionary.d.ts +9 -9
- package/types/dictionary/dictionaryRegistry.d.ts +1 -15
- package/types/dictionary/locale.d.ts +9 -28
- package/types/dictionary/trans.d.ts +5 -14
- package/types/document/dataLoader.d.ts +2 -2
- package/types/document/database.d.ts +21 -14
- package/types/document/documentQuery.d.ts +6 -1
- package/types/document/documentSchema.d.ts +3 -7
- package/types/document/filterMeta.d.ts +3 -8
- package/types/document/index.d.ts +0 -1
- package/types/document/into.d.ts +3 -2
- package/types/document/loaderInfo.d.ts +9 -4
- package/types/document/noDocumentError.d.ts +2 -7
- package/types/document/queryEvaluator.d.ts +7 -24
- package/types/document/types.d.ts +0 -1
- package/types/fetch/client/fetchClient.d.ts +6 -9
- package/types/fetch/client/fetchHandle.d.ts +3 -11
- package/types/fetch/client/httpClient.d.ts +5 -1
- package/types/fetch/client/remoteError.d.ts +2 -8
- package/types/fetch/client/sliceInitHandle.d.ts +2 -5
- package/types/fetch/client/sliceQueryArgs.d.ts +3 -0
- package/types/fetch/client/wsClient.d.ts +10 -15
- package/types/fetch/fetchType/appliedReturn.type.d.ts +5 -23
- package/types/fetch/fetchType/buildFetch.type.d.ts +15 -1
- package/types/fetch/fetchType/index.d.ts +0 -1
- package/types/fetch/requestStorage.d.ts +3 -16
- package/types/fetch/types.d.ts +0 -1
- package/types/index.d.ts +30 -64
- package/types/server/akanApp.d.ts +5 -28
- package/types/server/akanAppHeaders.d.ts +0 -1
- package/types/server/akanOption.d.ts +12 -24
- package/types/server/akanServer.d.ts +16 -56
- package/types/server/animatedImage.d.ts +0 -6
- package/types/server/artifact/builderRpc.d.ts +7 -30
- package/types/server/artifact/index.d.ts +0 -1
- package/types/server/artifact/ipcTypes.d.ts +22 -29
- package/types/server/artifact/routeClientCache.d.ts +3 -11
- package/types/server/artifact/routeSeedIndexStore.d.ts +0 -16
- package/types/server/artifact/routesManifestStore.d.ts +1 -1
- package/types/server/binaryPubsub.d.ts +0 -8
- package/types/server/cachePolicy.d.ts +2 -21
- package/types/server/console.d.ts +3 -6
- package/types/server/consoleSession.d.ts +2 -2
- package/types/server/contentEncoding.d.ts +6 -14
- package/types/server/decorators.d.ts +0 -12
- package/types/server/devtools/constantSerializer.d.ts +1 -6
- package/types/server/devtools/depsSerializer.d.ts +1 -7
- package/types/server/devtools/devtoolsJson.d.ts +1 -7
- package/types/server/devtools/devtoolsRouter.d.ts +2 -11
- package/types/server/devtools/signalSerializer.d.ts +1 -9
- package/types/server/devtools/types.d.ts +0 -11
- package/types/server/di/diLifecycle.d.ts +0 -36
- package/types/server/di/predefinedAdaptor.d.ts +3 -2
- package/types/server/di/resolveHierarchy.d.ts +22 -5
- package/types/server/di/utils.d.ts +4 -17
- package/types/server/head.d.ts +9 -0
- package/types/server/hmr/devHmrController.d.ts +0 -2
- package/types/server/hmr/wsHub.d.ts +6 -1
- package/types/server/index.d.ts +1 -1
- package/types/server/lifecycle/portInUse.d.ts +1 -4
- package/types/server/lifecycle/runtimeDir.d.ts +0 -4
- package/types/server/lifecycle/shutdownManager.d.ts +0 -9
- package/types/server/logging/childOutputReader.d.ts +0 -12
- package/types/server/logging/hubFileSink.d.ts +1 -5
- package/types/server/logging/logControlSocket.d.ts +2 -7
- package/types/server/logging/logForwarder.d.ts +3 -15
- package/types/server/logging/logHub.d.ts +1 -15
- package/types/server/logging/logQuery.d.ts +3 -6
- package/types/server/logging/logStdoutWriter.d.ts +0 -6
- package/types/server/logging/logStreamRoute.d.ts +0 -9
- package/types/server/logging/logTailClient.d.ts +0 -5
- package/types/server/mcp/McpAuth.d.ts +3 -71
- package/types/server/mcp/McpDispatcher.d.ts +0 -23
- package/types/server/mcp/McpEventStream.d.ts +1 -12
- package/types/server/mcp/McpExecutionContext.d.ts +0 -33
- package/types/server/mcp/McpRateLimiter.d.ts +10 -13
- package/types/server/mcp/McpRouter.d.ts +1 -47
- package/types/server/mcp/PagePromptComposer.d.ts +1 -13
- package/types/server/memoryLimit.d.ts +1 -13
- package/types/server/oauth/OAuthAuthorize.d.ts +1 -6
- package/types/server/oauth/OAuthClientIdMetadata.d.ts +2 -26
- package/types/server/oauth/OAuthErrors.d.ts +0 -13
- package/types/server/oauth/OAuthMetadata.d.ts +1 -7
- package/types/server/oauth/OAuthPkce.d.ts +0 -1
- package/types/server/oauth/OAuthRedirect.d.ts +0 -9
- package/types/server/oauth/OAuthRegistration.d.ts +0 -1
- package/types/server/oauth/OAuthRevocation.d.ts +1 -11
- package/types/server/oauth/OAuthToken.d.ts +1 -13
- package/types/server/oauth/oauthTypes.d.ts +1 -2
- package/types/server/ops/ageEncryption.d.ts +19 -0
- package/types/server/ops/appInfo.d.ts +36 -0
- package/types/server/ops/opsCommand.d.ts +5 -0
- package/types/server/ops/opsRoute.d.ts +24 -0
- package/types/server/ops/opsToken.d.ts +26 -0
- package/types/server/ops/snapshotJobs.d.ts +24 -0
- package/types/server/ops/snapshotRestore.d.ts +24 -0
- package/types/server/ops/snapshotTypes.d.ts +45 -0
- package/types/server/ops/sqliteFiles.d.ts +5 -0
- package/types/server/ops/sqliteSnapshot.d.ts +32 -0
- package/types/server/processMetricsCollector.d.ts +3 -1
- package/types/server/proxy/hostBasePathWebProxy.d.ts +7 -1
- package/types/server/proxy/index.d.ts +2 -3
- package/types/server/proxy/localeWebProxy.d.ts +1 -1
- package/types/server/proxy/types.d.ts +5 -0
- package/types/server/proxy/webProxyRunner.d.ts +1 -0
- package/types/server/resolver/CascadeRunner.d.ts +0 -4
- package/types/server/resolver/database.resolver.d.ts +1 -1
- package/types/server/resolver/service.resolver.d.ts +2 -2
- package/types/server/resolver/signal.resolver.d.ts +1 -15
- package/types/server/routeElementComposer.d.ts +2 -8
- package/types/server/routeState.d.ts +1 -1
- package/types/server/routing/apiRouter.d.ts +2 -20
- package/types/server/routing/appWsData.d.ts +0 -26
- package/types/server/routing/soloAppRoutes.d.ts +2 -6
- package/types/server/rscClient.d.ts +0 -9
- package/types/server/rscClientFetch.d.ts +6 -6
- package/types/server/rscClientPatch.d.ts +1 -1
- package/types/server/rscHttp.d.ts +1 -0
- package/types/server/rscNavigationState.d.ts +3 -2
- package/types/server/rscPagePrompts.d.ts +0 -9
- package/types/server/rscWorkerCache.d.ts +41 -3
- package/types/server/rscWorkerHost.d.ts +5 -61
- package/types/server/ssrFromRscRenderer.d.ts +0 -12
- package/types/server/ssrTypes.d.ts +2 -29
- package/types/server/staticPath.d.ts +0 -16
- package/types/server/systemPageDocument.d.ts +8 -0
- package/types/server/systemPages.d.ts +2 -3
- package/types/server/tunnel/TunnelAgent.d.ts +29 -0
- package/types/server/tunnel/TunnelDataSocket.d.ts +22 -0
- package/types/server/tunnel/TunnelHttpStream.d.ts +10 -0
- package/types/server/tunnel/TunnelTcpStream.d.ts +11 -0
- package/types/server/tunnel/TunnelWebsocketStream.d.ts +10 -0
- package/types/server/tunnel/index.d.ts +6 -0
- package/types/server/tunnel/tunnelStream.d.ts +19 -0
- package/types/server/tunnel.d.ts +1 -0
- package/types/server/types.d.ts +2 -9
- package/types/server/webRouter.d.ts +2 -19
- package/types/service/agent.service.d.ts +16 -29
- package/types/service/injectInfo.d.ts +26 -15
- package/types/service/ipcTypes.d.ts +6 -0
- package/types/service/liveSyncHub.d.ts +4 -22
- package/types/service/predefinedAdaptor/anthropicLlm.d.ts +20 -29
- package/types/service/predefinedAdaptor/cache.adaptor.d.ts +42 -12
- package/types/service/predefinedAdaptor/database.adaptor.d.ts +20 -16
- package/types/service/predefinedAdaptor/documentTransfer.d.ts +15 -0
- package/types/service/predefinedAdaptor/index.d.ts +2 -1
- package/types/service/predefinedAdaptor/insightQuery.d.ts +7 -30
- package/types/service/predefinedAdaptor/llm.adaptor.d.ts +54 -54
- package/types/service/predefinedAdaptor/llmOverflow.d.ts +16 -0
- package/types/service/predefinedAdaptor/openaiDialect.d.ts +19 -29
- package/types/service/predefinedAdaptor/openaiLlm.d.ts +9 -14
- package/types/service/predefinedAdaptor/queue.adaptor.d.ts +12 -7
- package/types/service/predefinedAdaptor/schedule.adaptor.d.ts +7 -2
- package/types/service/predefinedAdaptor/searchIndex.d.ts +17 -47
- package/types/service/predefinedAdaptor/solidCache.adaptor.d.ts +15 -6
- package/types/service/predefinedAdaptor/solidPubsub.adaptor.d.ts +6 -4
- package/types/service/predefinedAdaptor/solidSqlite.d.ts +2 -1
- package/types/service/predefinedAdaptor/sql/PostgresInsightSession.d.ts +20 -0
- package/types/service/predefinedAdaptor/sql/QueryCompiler.d.ts +9 -11
- package/types/service/predefinedAdaptor/sql/SqlDocumentStore.d.ts +11 -25
- package/types/service/predefinedAdaptor/sql/SqliteInsightSession.d.ts +15 -0
- package/types/service/predefinedAdaptor/sql/UpdateCompiler.d.ts +0 -4
- package/types/service/predefinedAdaptor/sql/dialect/postgres.d.ts +18 -10
- package/types/service/predefinedAdaptor/sql/dialect/sqlite.d.ts +5 -2
- package/types/service/predefinedAdaptor/sql/driver/bunSqlite.d.ts +9 -3
- package/types/service/predefinedAdaptor/sql/driver/libsql.d.ts +8 -5
- package/types/service/predefinedAdaptor/sql/driver/postgres.d.ts +4 -4
- package/types/service/predefinedAdaptor/sql/search/fts5.d.ts +28 -0
- package/types/service/predefinedAdaptor/sql/search/mirror.d.ts +20 -0
- package/types/service/predefinedAdaptor/sql/search/postgres.d.ts +53 -0
- package/types/service/predefinedAdaptor/sql/search/types.d.ts +45 -0
- package/types/service/predefinedAdaptor/sql/types.d.ts +69 -15
- package/types/service/predefinedAdaptor/sql/values.d.ts +8 -0
- package/types/service/predefinedAdaptor/sqlitePath.d.ts +1 -0
- package/types/service/predefinedAdaptor/sseData.d.ts +1 -0
- package/types/service/predefinedAdaptor/storage.adaptor.d.ts +3 -2
- package/types/service/predefinedAdaptor/websocket.adaptor.d.ts +26 -26
- package/types/service/serviceModule.d.ts +7 -7
- package/types/service/toolNames.d.ts +4 -21
- package/types/service/types.d.ts +3 -3
- package/types/signal/CrossSiteGuard.d.ts +3 -28
- package/types/signal/SignalFailure.d.ts +1 -15
- package/types/signal/agent/AgentCatalogue.d.ts +8 -54
- package/types/signal/agent.signal.d.ts +4 -1
- package/types/signal/agentMeter.d.ts +24 -0
- package/types/signal/agentTurnStream.d.ts +10 -11
- package/types/signal/endpoint.d.ts +0 -1
- package/types/signal/endpointCache.d.ts +5 -0
- package/types/signal/endpointInfo.d.ts +1 -9
- package/types/signal/exception.d.ts +1 -34
- package/types/signal/guard.d.ts +4 -15
- package/types/signal/guards.d.ts +2 -10
- package/types/signal/index.d.ts +1 -0
- package/types/signal/internal.d.ts +1 -5
- package/types/signal/internalArg.d.ts +7 -13
- package/types/signal/mcp/McpDocument.d.ts +5 -45
- package/types/signal/mcp/McpProgress.d.ts +6 -19
- package/types/signal/mcp/McpUriTemplate.d.ts +1 -19
- package/types/signal/mcp/Msg.d.ts +13 -70
- package/types/signal/mcp/mcpProtocol.d.ts +1 -26
- package/types/signal/mcp/pagePrompt.d.ts +3 -9
- package/types/signal/middleware.d.ts +0 -18
- package/types/signal/schema/JsonSchemaBuilder.d.ts +15 -43
- package/types/signal/serializer/fetch.serializer.d.ts +1 -6
- package/types/signal/serverSignal.d.ts +0 -1
- package/types/signal/signalContext.d.ts +14 -61
- package/types/signal/signalRegistry.d.ts +0 -1
- package/types/signal/slice.d.ts +3 -9
- package/types/signal/sliceInfo.d.ts +5 -30
- package/types/signal/trace.d.ts +2 -30
- package/types/signal/types.d.ts +27 -57
- package/types/store/SliceRequest.d.ts +1 -11
- package/types/store/action.d.ts +2 -6
- package/types/store/actionTag.d.ts +1 -10
- package/types/store/agent/AgentBridge.d.ts +3 -22
- package/types/store/agent/AgentContext.d.ts +1 -7
- package/types/store/agent/AgentCursor.d.ts +24 -0
- package/types/store/agent/AgentPrompts.d.ts +0 -5
- package/types/store/agent/AgentVisual.d.ts +25 -0
- package/types/store/agent/ScreenFlash.d.ts +23 -0
- package/types/store/agent/ScreenReader.d.ts +3 -26
- package/types/store/agent/ScreenSettle.d.ts +1 -12
- package/types/store/agent/ScreenTarget.d.ts +3 -23
- package/types/store/agent/StoreCatalogue.d.ts +12 -16
- package/types/store/agent/StoreSurfaceSource.d.ts +11 -23
- package/types/store/agent/index.d.ts +4 -3
- package/types/store/agentic/AgentValue.d.ts +3 -23
- package/types/store/agentic/StExposeBuilder.d.ts +2 -11
- package/types/store/agentic/StExposeDraft.d.ts +0 -6
- package/types/store/agentic/StStateBuilder.d.ts +1 -7
- package/types/store/agentic/StStateDraft.d.ts +0 -5
- package/types/store/agentic/StToolBuilder.d.ts +14 -37
- package/types/store/agentic/StToolDraft.d.ts +0 -7
- package/types/store/agentic/attachAgentic.d.ts +2 -10
- package/types/store/agentic/formFields.d.ts +5 -41
- package/types/store/agentic/index.d.ts +1 -1
- package/types/store/agentic/useAgentReference.d.ts +14 -0
- package/types/store/agentic/useFieldTool.d.ts +19 -16
- package/types/store/agentic/useFormTools.d.ts +1 -18
- package/types/store/agentic/useRelationFieldTool.d.ts +1 -14
- package/types/store/baseSt.d.ts +2 -2
- package/types/store/databaseStateNames.d.ts +0 -9
- package/types/store/draftStore.d.ts +4 -30
- package/types/store/formSetterNames.d.ts +0 -19
- package/types/store/hooks.d.ts +1 -1
- package/types/store/liveInsert.d.ts +0 -23
- package/types/store/sliceKeys.d.ts +31 -0
- package/types/store/sliceRole.d.ts +1 -10
- package/types/store/state.d.ts +2 -9
- package/types/store/stateBuilder.d.ts +0 -14
- package/types/store/storeInstance.d.ts +6 -20
- package/types/store/storeRegistry.d.ts +0 -2
- package/types/test/conformance.d.ts +73 -0
- package/types/test/index.d.ts +2 -2
- package/types/test/sampleOf.d.ts +17 -2
- package/types/test/signalTestRuntime.d.ts +1 -1
- package/types/test/testServer.d.ts +4 -3
- package/types/ui/Agent/Attach.d.ts +2 -2
- package/types/ui/Agent/Bubble.d.ts +3 -14
- package/types/ui/Agent/Chat.d.ts +31 -64
- package/types/ui/Agent/ChatCommands.d.ts +4 -14
- package/types/ui/Agent/Composer.d.ts +18 -5
- package/types/ui/Agent/Dock.d.ts +38 -10
- package/types/ui/Agent/Guide.d.ts +1 -5
- package/types/ui/Agent/History.d.ts +1 -18
- package/types/ui/Agent/Launcher.d.ts +2 -2
- package/types/ui/Agent/Markdown.d.ts +2 -6
- package/types/ui/Agent/MentionNode.d.ts +18 -0
- package/types/ui/Agent/Menu.d.ts +4 -4
- package/types/ui/Agent/Question.d.ts +1 -6
- package/types/ui/Agent/Queued.d.ts +1 -6
- package/types/ui/Agent/Refer.d.ts +9 -0
- package/types/ui/Agent/RichInput.d.ts +14 -0
- package/types/ui/Agent/Skip.d.ts +3 -15
- package/types/ui/Agent/Steps.d.ts +17 -0
- package/types/ui/Agent/ToolCard.d.ts +9 -0
- package/types/ui/Agent/Zone.d.ts +13 -30
- package/types/ui/Agent/agentSessionOf.d.ts +20 -16
- package/types/ui/Agent/attachment.d.ts +4 -38
- package/types/ui/Agent/fetchRunner.d.ts +1 -8
- package/types/ui/Agent/index.d.ts +2 -6
- package/types/ui/Agent/mentionDraft.d.ts +9 -0
- package/types/ui/Agent/tokenCount.d.ts +1 -5
- package/types/ui/Agent/useChatAttachments.d.ts +0 -5
- package/types/ui/Agent/useChatQueue.d.ts +3 -14
- package/types/ui/Agent/useChatReferences.d.ts +15 -0
- package/types/ui/Agent/useChatVoice.d.ts +0 -12
- package/types/ui/Agent/useDraftRecall.d.ts +0 -8
- package/types/ui/Agent/useKeyboardInset.d.ts +0 -7
- package/types/ui/Agent/useReferenceMenu.d.ts +35 -0
- package/types/ui/Agent/useSlashMenu.d.ts +0 -2
- package/types/ui/Agent/voice.d.ts +8 -42
- package/types/ui/Badge.d.ts +0 -1
- package/types/ui/BottomSheet.d.ts +2 -5
- package/types/ui/Button.d.ts +6 -23
- package/types/ui/ClientSide.d.ts +0 -2
- package/types/ui/Constant/schemaGraph.d.ts +0 -4
- package/types/ui/Copy.d.ts +2 -3
- package/types/ui/CsrImage.d.ts +2 -1
- package/types/ui/Data/Dashboard.d.ts +1 -4
- package/types/ui/Data/Item.d.ts +1 -1
- package/types/ui/Data/ListContainer.d.ts +1 -10
- package/types/ui/Data/Pagination.d.ts +0 -2
- package/types/ui/Data/QueryMaker.d.ts +0 -7
- package/types/ui/Data/RefPicker.d.ts +0 -7
- package/types/ui/DatePicker.d.ts +0 -11
- package/types/ui/Dialog/LegacyModal.d.ts +1 -4
- package/types/ui/Dialog/Provider.d.ts +37 -4
- package/types/ui/Dialog/index.d.ts +4 -4
- package/types/ui/Dropdown.d.ts +1 -9
- package/types/ui/Empty.d.ts +3 -10
- package/types/ui/Field/Collection.d.ts +1 -16
- package/types/ui/Field/Relation.d.ts +10 -37
- package/types/ui/Field/Text.d.ts +9 -66
- package/types/ui/Field/index.d.ts +0 -9
- package/types/ui/Field/lightRefCache.d.ts +11 -0
- package/types/ui/Field/useRelationOptions.d.ts +28 -0
- package/types/ui/Image.d.ts +8 -12
- package/types/ui/InfiniteScroll.d.ts +2 -6
- package/types/ui/Input.d.ts +8 -15
- package/types/ui/Layout/Role.d.ts +23 -0
- package/types/ui/Layout/Sider.d.ts +21 -0
- package/types/ui/Layout/TopInset.d.ts +5 -0
- package/types/ui/Layout/index.d.ts +7 -7
- package/types/ui/LegacyModal.d.ts +1 -12
- package/types/ui/Link/Action.d.ts +11 -0
- package/types/ui/Link/Anchor.d.ts +20 -0
- package/types/ui/Link/index.d.ts +4 -7
- package/types/ui/Load/Edit_Client.d.ts +1 -1
- package/types/ui/Load/Page.d.ts +3 -5
- package/types/ui/Load/Stream.d.ts +0 -12
- package/types/ui/Load/Units.d.ts +1 -1
- package/types/ui/Load/View.d.ts +2 -7
- package/types/ui/Loading/ProgressBar.d.ts +0 -4
- package/types/ui/Loading/Skeleton.d.ts +2 -0
- package/types/ui/Loading/Spin.d.ts +12 -2
- package/types/ui/Loading/index.d.ts +3 -8
- package/types/ui/Loading/index_.d.ts +3 -10
- package/types/ui/Menu.d.ts +0 -5
- package/types/ui/Modal.d.ts +0 -17
- package/types/ui/Model/AdminPanel.d.ts +1 -4
- package/types/ui/Model/DraftBar.d.ts +2 -7
- package/types/ui/Model/EditModal.d.ts +7 -22
- package/types/ui/Model/LoadStore.d.ts +18 -0
- package/types/ui/Model/Remove.d.ts +0 -2
- package/types/ui/Model/SureToRemove.d.ts +0 -3
- package/types/ui/Model/ViewEditModal.d.ts +0 -2
- package/types/ui/Model/draftScope.d.ts +0 -7
- package/types/ui/Model/index.d.ts +2 -2
- package/types/ui/Model/index_.d.ts +2 -2
- package/types/ui/Pagination.d.ts +4 -12
- package/types/ui/Popconfirm.d.ts +3 -17
- package/types/ui/Radio.d.ts +0 -4
- package/types/ui/RecentTime.d.ts +5 -9
- package/types/ui/Reference/Panel.d.ts +44 -6
- package/types/ui/Reference/Segmented.d.ts +0 -3
- package/types/ui/Reference/{style.d.ts → docUi.d.ts} +6 -2
- package/types/ui/Reference/index.d.ts +3 -7
- package/types/ui/Refresh.d.ts +1 -1
- package/types/ui/ScreenNavigator.d.ts +2 -2
- package/types/ui/Select.d.ts +4 -19
- package/types/ui/Signal/Endpoint.d.ts +43 -0
- package/types/ui/Signal/WebSocket.d.ts +23 -0
- package/types/ui/Signal/endpointEntries.d.ts +2 -4
- package/types/ui/Signal/index.d.ts +1 -3
- package/types/ui/Signal/style.d.ts +1 -2
- package/types/ui/Switch.d.ts +1 -5
- package/types/ui/System/CSR.d.ts +2 -2
- package/types/ui/System/Client.d.ts +2 -6
- package/types/ui/System/Common.d.ts +11 -22
- package/types/ui/System/Root.d.ts +1 -4
- package/types/ui/System/SSR.d.ts +2 -2
- package/types/ui/System/ThemeToggle.d.ts +1 -0
- package/types/ui/System/index.d.ts +1 -0
- package/types/ui/Tab/Provider.d.ts +24 -4
- package/types/ui/Tab/index.d.ts +3 -3
- package/types/ui/Table.d.ts +7 -23
- package/types/ui/Toast.d.ts +9 -16
- package/types/ui/ToggleSelect.d.ts +0 -5
- package/types/ui/Tooltip.d.ts +1 -2
- package/types/ui/UiOverride/{context.d.ts → UiOverride.d.ts} +24 -40
- package/types/ui/UiOverride/index.d.ts +2 -5
- package/types/ui/UiOverride/override.d.ts +2 -18
- package/types/ui/Unauthorized.d.ts +0 -6
- package/types/ui/agentAttrs.d.ts +4 -11
- package/types/ui/index.d.ts +9 -5
- package/types/ui/overlayLayer.d.ts +4 -24
- package/types/ui/overlayPosition.d.ts +0 -12
- package/types/ui/recipe/badgeRecipe.d.ts +2 -2
- package/types/ui/recipe/buttonRecipe.d.ts +2 -2
- package/types/ui/recipe/factory.d.ts +1 -21
- package/types/ui/recipe/index.d.ts +0 -14
- package/types/ui/recipe/inputRecipe.d.ts +3 -3
- package/types/ui/sliceNamesOf.d.ts +78 -0
- package/types/ui/triggerSlot.d.ts +2 -12
- package/types/vendor/use-agentic/AgentProgress.d.ts +12 -0
- package/types/vendor/use-agentic/AgentSession.d.ts +94 -2
- package/types/vendor/use-agentic/Compaction.d.ts +42 -5
- package/types/vendor/use-agentic/Reference.d.ts +56 -0
- package/types/vendor/use-agentic/ToolRunner.d.ts +31 -1
- package/types/vendor/use-agentic/Transcript.d.ts +4 -1
- package/types/vendor/use-agentic/index.d.ts +1 -0
- package/types/vendor/use-agentic/types.d.ts +109 -7
- package/types/webkit/RenderLayer.d.ts +11 -0
- package/types/webkit/index.d.ts +1 -2
- package/types/webkit/lazy.d.ts +3 -12
- package/types/webkit/{createRobotPage.d.ts → seoPages.d.ts} +4 -0
- package/types/webkit/useBodyScrollLock.d.ts +0 -1
- package/types/webkit/useCamera.d.ts +1 -1
- package/types/webkit/useContact.d.ts +1 -1
- package/types/webkit/useDebounce.d.ts +0 -1
- package/types/webkit/useEscapeKey.d.ts +1 -4
- package/types/webkit/useFetch.d.ts +1 -6
- package/types/webkit/useFrameRuntime.d.ts +1 -1
- package/types/webkit/useGeoLocation.d.ts +1 -1
- package/types/webkit/usePageTool.d.ts +2 -9
- package/types/webkit/usePurchase.d.ts +1 -4
- package/types/webkit/useScreenScope.d.ts +2 -13
- package/ui/Agent/Attach.tsx +5 -4
- package/ui/Agent/Bubble.tsx +51 -31
- package/ui/Agent/Chat.tsx +114 -102
- package/ui/Agent/ChatCommands.ts +5 -21
- package/ui/Agent/Composer.tsx +110 -28
- package/ui/Agent/Dock.tsx +176 -16
- package/ui/Agent/Guide.tsx +1 -5
- package/ui/Agent/History.tsx +1 -18
- package/ui/Agent/Launcher.tsx +2 -2
- package/ui/Agent/Markdown.tsx +40 -14
- package/ui/Agent/MentionNode.ts +54 -0
- package/ui/Agent/Menu.tsx +8 -5
- package/ui/Agent/Question.tsx +1 -6
- package/ui/Agent/Queued.tsx +3 -6
- package/ui/Agent/Refer.tsx +40 -0
- package/ui/Agent/RichInput.tsx +146 -0
- package/ui/Agent/Skip.tsx +3 -15
- package/ui/Agent/Steps.tsx +33 -0
- package/ui/Agent/ToolCard.tsx +32 -0
- package/ui/Agent/Zone.tsx +15 -31
- package/ui/Agent/agentSessionOf.ts +115 -15
- package/ui/Agent/attachment.ts +5 -42
- package/ui/Agent/fetchRunner.ts +3 -15
- package/ui/Agent/index.ts +1 -6
- package/ui/Agent/mentionDraft.ts +91 -0
- package/ui/Agent/tokenCount.ts +1 -5
- package/ui/Agent/useChatAttachments.ts +2 -9
- package/ui/Agent/useChatQueue.ts +12 -14
- package/ui/Agent/useChatReferences.ts +51 -0
- package/ui/Agent/useChatVoice.ts +2 -23
- package/ui/Agent/useDraftRecall.ts +0 -9
- package/ui/Agent/useKeyboardInset.ts +0 -7
- package/ui/Agent/useReferenceMenu.ts +93 -0
- package/ui/Agent/useSlashMenu.ts +0 -3
- package/ui/Agent/voice.ts +8 -43
- package/ui/Badge.tsx +0 -2
- package/ui/BottomSheet.tsx +2 -5
- package/ui/Button.tsx +9 -45
- package/ui/ClientSide.tsx +0 -2
- package/ui/Clipboard.tsx +0 -1
- package/ui/Constant/Doc.tsx +274 -265
- package/ui/Constant/Graph.tsx +11 -3
- package/ui/Constant/schemaGraph.ts +0 -9
- package/ui/Copy.tsx +2 -3
- package/ui/CsrImage.tsx +9 -9
- package/ui/Data/CardList.tsx +2 -17
- package/ui/Data/Dashboard.tsx +2 -5
- package/ui/Data/Item.tsx +2 -3
- package/ui/Data/ListContainer.tsx +15 -61
- package/ui/Data/Pagination.tsx +3 -22
- package/ui/Data/QueryMaker.tsx +1 -8
- package/ui/Data/RefPicker.tsx +1 -8
- package/ui/Data/TableList.tsx +2 -15
- package/ui/DatePicker.tsx +1 -12
- package/ui/Dialog/LegacyModal.tsx +3 -7
- package/ui/Dialog/Modal.tsx +3 -4
- package/ui/Dialog/Provider.tsx +85 -7
- package/ui/Dialog/index.tsx +1 -5
- package/ui/DraggableList.tsx +1 -4
- package/ui/Dropdown.tsx +4 -17
- package/ui/Empty.tsx +4 -12
- package/ui/Field/Choice.tsx +1 -1
- package/ui/Field/Collection.tsx +7 -29
- package/ui/Field/DateField.tsx +2 -7
- package/ui/Field/Label.tsx +0 -1
- package/ui/Field/NumberField.tsx +0 -1
- package/ui/Field/Relation.tsx +79 -199
- package/ui/Field/Text.tsx +25 -86
- package/ui/Field/index.tsx +0 -9
- package/ui/Field/lightRefCache.ts +61 -0
- package/ui/Field/useRelationOptions.ts +97 -0
- package/ui/Image.tsx +35 -65
- package/ui/InfiniteScroll.tsx +3 -21
- package/ui/Input.tsx +82 -174
- package/ui/Layout/Role.tsx +42 -0
- package/ui/Layout/Sider.tsx +82 -1
- package/ui/Layout/TopInset.tsx +23 -1
- package/ui/Layout/index.ts +3 -9
- package/ui/LegacyModal.tsx +1 -12
- package/ui/Link/Action.tsx +29 -0
- package/ui/Link/Anchor.tsx +118 -0
- package/ui/Link/index.tsx +7 -8
- package/ui/Load/Edit_Client.tsx +2 -37
- package/ui/Load/Page.tsx +3 -6
- package/ui/Load/Pagination.tsx +4 -19
- package/ui/Load/Stream.tsx +0 -12
- package/ui/Load/Units.tsx +13 -86
- package/ui/Load/View.tsx +4 -21
- package/ui/Loading/ProgressBar.tsx +0 -4
- package/ui/Loading/Skeleton.tsx +14 -0
- package/ui/Loading/Spin.tsx +34 -5
- package/ui/Loading/index.ts +0 -5
- package/ui/Loading/index_.tsx +2 -12
- package/ui/Menu.tsx +3 -21
- package/ui/Modal.tsx +0 -17
- package/ui/Model/AdminPanel.tsx +2 -5
- package/ui/Model/DraftBar.tsx +3 -14
- package/ui/Model/EditModal.tsx +11 -48
- package/ui/Model/EditWrapper.tsx +2 -3
- package/ui/Model/LoadStore.tsx +18 -0
- package/ui/Model/NewWrapper_Client.tsx +1 -1
- package/ui/Model/Remove.tsx +4 -12
- package/ui/Model/RemoveWrapper.tsx +2 -3
- package/ui/Model/SureToRemove.tsx +4 -13
- package/ui/Model/ViewEditModal.tsx +0 -6
- package/ui/Model/ViewModal.tsx +1 -5
- package/ui/Model/ViewWrapper.tsx +1 -2
- package/ui/Model/draftScope.ts +0 -7
- package/ui/Model/index_.tsx +2 -22
- package/ui/Pagination.tsx +4 -12
- package/ui/Popconfirm.tsx +3 -18
- package/ui/Portal.tsx +2 -3
- package/ui/Radio.tsx +1 -5
- package/ui/RecentTime.tsx +19 -31
- package/ui/Reference/Panel.tsx +102 -6
- package/ui/Reference/Segmented.tsx +5 -11
- package/ui/Reference/{style.ts → docUi.ts} +10 -2
- package/ui/Reference/index.ts +3 -7
- package/ui/Refresh.tsx +79 -13
- package/ui/ScreenNavigator.tsx +8 -13
- package/ui/Select.tsx +29 -37
- package/ui/Signal/Endpoint.tsx +154 -0
- package/ui/Signal/Listener.tsx +1 -4
- package/ui/Signal/Object.tsx +67 -73
- package/ui/Signal/RestApi.tsx +30 -76
- package/ui/Signal/WebSocket.tsx +253 -2
- package/ui/Signal/endpointEntries.ts +3 -5
- package/ui/Signal/index.ts +1 -3
- package/ui/Signal/style.ts +1 -2
- package/ui/Switch.tsx +1 -5
- package/ui/System/CSR.tsx +29 -109
- package/ui/System/Client.tsx +15 -19
- package/ui/System/Common.tsx +31 -22
- package/ui/System/Messages.tsx +2 -2
- package/ui/System/Reconnect.tsx +1 -6
- package/ui/System/Root.tsx +1 -4
- package/ui/System/SSR.tsx +10 -16
- package/ui/System/ThemeToggle.tsx +15 -0
- package/ui/System/index.tsx +2 -2
- package/ui/Tab/Provider.tsx +115 -7
- package/ui/Tab/index.tsx +1 -4
- package/ui/Table.tsx +7 -23
- package/ui/Toast.tsx +9 -16
- package/ui/ToggleSelect.tsx +10 -24
- package/ui/Tooltip.tsx +2 -8
- package/ui/UiOverride/{context.ts → UiOverride.tsx} +54 -42
- package/ui/UiOverride/index.ts +9 -6
- package/ui/UiOverride/override.ts +2 -18
- package/ui/Unauthorized.tsx +1 -8
- package/ui/agentAttrs.ts +9 -12
- package/ui/index.ts +20 -5
- package/ui/overlayLayer.ts +4 -25
- package/ui/overlayPosition.ts +2 -14
- package/ui/recipe/badgeRecipe.ts +1 -1
- package/ui/recipe/buttonRecipe.ts +4 -4
- package/ui/recipe/factory.ts +1 -22
- package/ui/recipe/index.ts +1 -14
- package/ui/recipe/inputRecipe.ts +2 -2
- package/ui/sliceNamesOf.ts +26 -0
- package/ui/styles.css +195 -1
- package/ui/triggerSlot.tsx +2 -12
- package/vendor/use-agentic/AgentProgress.ts +13 -1
- package/vendor/use-agentic/AgentSession.ts +313 -29
- package/vendor/use-agentic/AgenticSurface.ts +2 -0
- package/vendor/use-agentic/Compaction.ts +91 -9
- package/vendor/use-agentic/Reference.ts +99 -0
- package/vendor/use-agentic/ToolRunner.ts +77 -2
- package/vendor/use-agentic/Transcript.ts +15 -4
- package/vendor/use-agentic/WIRE.md +16 -2
- package/vendor/use-agentic/httpRunner.ts +19 -4
- package/vendor/use-agentic/index.ts +1 -1
- package/vendor/use-agentic/types.ts +121 -10
- package/webkit/RenderLayer.tsx +45 -0
- package/webkit/bootCsr.tsx +4 -57
- package/webkit/index.ts +1 -2
- package/webkit/lazy.tsx +3 -13
- package/webkit/{createRobotPage.ts → seoPages.ts} +5 -0
- package/webkit/useBodyScrollLock.tsx +0 -6
- package/webkit/useCamera.tsx +10 -28
- package/webkit/useCodepush.tsx +8 -31
- package/webkit/useContact.tsx +1 -8
- package/webkit/useCsrValues.ts +203 -428
- package/webkit/useDebounce.ts +0 -3
- package/webkit/useEscapeKey.tsx +1 -12
- package/webkit/useFetch.ts +7 -13
- package/webkit/useFrameRuntime.ts +5 -43
- package/webkit/useGeoLocation.tsx +1 -1
- package/webkit/useLocation.ts +5 -8
- package/webkit/usePageTool.tsx +2 -9
- package/webkit/usePurchase.tsx +17 -33
- package/webkit/useScreenScope.tsx +2 -13
- package/client/fetch.ts +0 -1
- package/client/frameDebug.ts +0 -29
- package/common/deepObjectify.ts +0 -42
- package/common/dynamicRecord.ts +0 -12
- package/common/formatPhone.ts +0 -7
- package/common/getAllPropertyDescriptors.ts +0 -13
- package/common/lowerlize.ts +0 -4
- package/common/mergeVersion.ts +0 -10
- package/common/pathGet.ts +0 -13
- package/common/pathGetLoose.ts +0 -31
- package/common/pathSet.ts +0 -28
- package/common/plainFieldsOf.ts +0 -13
- package/common/randomPicks.ts +0 -12
- package/common/websocketAuth.ts +0 -24
- package/constant/deserialize.ts +0 -98
- package/dictionary/agentTurn.dictionary.ts +0 -33
- package/document/schema.ts +0 -24
- package/fetch/fetchType/clientSignal.type.ts +0 -22
- package/local/apps/akan/akan-local.db +0 -0
- package/local/apps/akan/akan-local.db-shm +0 -0
- package/local/apps/akan/akan-local.db-wal +0 -0
- package/local/apps/akan/akan-local_solid.db +0 -0
- package/local/apps/akan/akan-local_solid.db-shm +0 -0
- package/local/apps/akan/akan-local_solid.db-wal +0 -0
- package/local/apps/serverLifecycle/serverLifecycle-local.db +0 -0
- package/local/apps/serverLifecycle/serverLifecycle-local.db-shm +0 -0
- package/local/apps/serverLifecycle/serverLifecycle-local.db-wal +0 -0
- package/local/apps/serverLifecycle/serverLifecycle-local_solid.db +0 -0
- package/local/apps/serverLifecycle/serverLifecycle-local_solid.db-shm +0 -0
- package/local/apps/serverLifecycle/serverLifecycle-local_solid.db-wal +0 -0
- package/server/artifact/manifestTypes.ts +0 -19
- package/server/assetEncoding.ts +0 -27
- package/server/consoleEvaluator.ts +0 -51
- package/server/di/index.ts +0 -4
- package/server/di/resolveAdaptorHierarchy.ts +0 -91
- package/server/di/resolveServiceHierarchy.ts +0 -47
- package/server/hmr/changeBatch.ts +0 -14
- package/server/hmr/index.ts +0 -4
- package/server/metadata.tsx +0 -198
- package/server/proxy/akanResponse.ts +0 -16
- package/server/proxy/bunRequestFields.ts +0 -12
- package/server/rscPartialCommit.ts +0 -3
- package/server/rscPatchSafety.ts +0 -57
- package/server/rscWorkerReplay.ts +0 -49
- package/server/subRouteIndexDocument.tsx +0 -61
- package/service/predefinedAdaptor/deepseekLlm.ts +0 -82
- package/service/predefinedAdaptor/sqlDescriptor.ts +0 -25
- package/store/agent/storeSurface.ts +0 -28
- package/store/agent/types.ts +0 -16
- package/store/agentic/useFileFieldTool.ts +0 -221
- package/store/stateInfo.ts +0 -66
- package/test/playwright.config.base.ts +0 -48
- package/test/playwright.pageAgent.ts +0 -41
- package/test/sample.ts +0 -19
- package/types/client/fetch.d.ts +0 -1
- package/types/client/frameDebug.d.ts +0 -3
- package/types/common/deepObjectify.d.ts +0 -6
- package/types/common/dynamicRecord.d.ts +0 -14
- package/types/common/formatPhone.d.ts +0 -2
- package/types/common/getAllPropertyDescriptors.d.ts +0 -5
- package/types/common/isPhoneNumber.d.ts +0 -2
- package/types/common/lowerlize.d.ts +0 -2
- package/types/common/mergeVersion.d.ts +0 -10
- package/types/common/pathGet.d.ts +0 -1
- package/types/common/pathGetLoose.d.ts +0 -8
- package/types/common/pathSet.d.ts +0 -3
- package/types/common/plainFieldsOf.d.ts +0 -6
- package/types/common/randomPicks.d.ts +0 -1
- package/types/common/splitVersion.d.ts +0 -11
- package/types/common/websocketAuth.d.ts +0 -19
- package/types/common/websocketBinaryFrame.d.ts +0 -17
- package/types/constant/deserialize.d.ts +0 -10
- package/types/dictionary/agentTurn.dictionary.d.ts +0 -1
- package/types/document/schema.d.ts +0 -5
- package/types/fetch/fetchType/clientSignal.type.d.ts +0 -16
- package/types/server/artifact/manifestTypes.d.ts +0 -16
- package/types/server/assetEncoding.d.ts +0 -7
- package/types/server/consoleEvaluator.d.ts +0 -2
- package/types/server/di/index.d.ts +0 -4
- package/types/server/di/resolveAdaptorHierarchy.d.ts +0 -21
- package/types/server/di/resolveServiceHierarchy.d.ts +0 -13
- package/types/server/di.d.ts +0 -1
- package/types/server/hmr/changeBatch.d.ts +0 -13
- package/types/server/hmr/index.d.ts +0 -4
- package/types/server/hmr.d.ts +0 -1
- package/types/server/metadata.d.ts +0 -22
- package/types/server/proxy/akanResponse.d.ts +0 -7
- package/types/server/proxy/bunRequestFields.d.ts +0 -1
- package/types/server/rscPartialCommit.d.ts +0 -1
- package/types/server/rscPatchSafety.d.ts +0 -8
- package/types/server/rscWorkerReplay.d.ts +0 -32
- package/types/server/subRouteIndexDocument.d.ts +0 -8
- package/types/service/predefinedAdaptor/deepseekLlm.d.ts +0 -19
- package/types/service/predefinedAdaptor/sqlDescriptor.d.ts +0 -5
- package/types/store/agent/storeSurface.d.ts +0 -14
- package/types/store/agent/types.d.ts +0 -15
- package/types/store/agentic/useFileFieldTool.d.ts +0 -41
- package/types/store/stateInfo.d.ts +0 -23
- package/types/test/playwright.config.base.d.ts +0 -9
- package/types/test/playwright.pageAgent.d.ts +0 -12
- package/types/test/sample.d.ts +0 -15
- package/types/ui/Agent/Context.d.ts +0 -13
- package/types/ui/Agent/Mic.d.ts +0 -8
- package/types/ui/Agent/Section.d.ts +0 -10
- package/types/ui/Agent/StateKey.d.ts +0 -16
- package/types/ui/Agent/Tool.d.ts +0 -15
- package/types/ui/Agent/Transcript.d.ts +0 -13
- package/types/ui/Agent/markdownSpans.d.ts +0 -2
- package/types/ui/Agent/sessionHistory.d.ts +0 -14
- package/types/ui/Agent/sessionView.d.ts +0 -15
- package/types/ui/Dialog/Action.d.ts +0 -5
- package/types/ui/Dialog/Close.d.ts +0 -6
- package/types/ui/Dialog/Content.d.ts +0 -6
- package/types/ui/Dialog/Title.d.ts +0 -5
- package/types/ui/Dialog/Trigger.d.ts +0 -6
- package/types/ui/Dialog/context.d.ts +0 -18
- package/types/ui/Layout/LeftSider.d.ts +0 -11
- package/types/ui/Layout/RightSider.d.ts +0 -12
- package/types/ui/Layout/Template.d.ts +0 -7
- package/types/ui/Layout/TopLeftAction.d.ts +0 -6
- package/types/ui/Layout/Unit.d.ts +0 -9
- package/types/ui/Layout/View.d.ts +0 -8
- package/types/ui/Layout/Zone.d.ts +0 -6
- package/types/ui/Link/Back.d.ts +0 -7
- package/types/ui/Link/Close.d.ts +0 -7
- package/types/ui/Link/CsrLink.d.ts +0 -2
- package/types/ui/Link/Lang.d.ts +0 -8
- package/types/ui/Link/SsrLink.d.ts +0 -2
- package/types/ui/Link/types.d.ts +0 -50
- package/types/ui/Loading/Area.d.ts +0 -9
- package/types/ui/Loading/Button.d.ts +0 -7
- package/types/ui/Loading/Input.d.ts +0 -7
- package/types/ui/Model/LoadInit.d.ts +0 -10
- package/types/ui/Model/LoadView.d.ts +0 -10
- package/types/ui/Reference/Collapse.d.ts +0 -11
- package/types/ui/Reference/Summary.d.ts +0 -13
- package/types/ui/Reference/Toolbar.d.ts +0 -21
- package/types/ui/Reference/dictText.d.ts +0 -6
- package/types/ui/Signal/Message.d.ts +0 -23
- package/types/ui/Signal/PubSub.d.ts +0 -24
- package/types/ui/Signal/Request.d.ts +0 -8
- package/types/ui/System/DevModeToggle.d.ts +0 -1
- package/types/ui/System/Gtag.d.ts +0 -4
- package/types/ui/System/frameCssVars.d.ts +0 -5
- package/types/ui/Tab/Menu.d.ts +0 -12
- package/types/ui/Tab/Menus.d.ts +0 -6
- package/types/ui/Tab/Panel.d.ts +0 -8
- package/types/ui/Tab/context.d.ts +0 -11
- package/types/ui/UiOverride/Provider.d.ts +0 -15
- package/types/ui/UiOverride/createOverridable.d.ts +0 -9
- package/types/ui/UiOverride/useUiOverride.d.ts +0 -7
- package/types/ui/UiOverride/useUiRecipe.d.ts +0 -8
- package/types/webkit/createSitemapPage.d.ts +0 -4
- package/ui/Agent/Context.tsx +0 -49
- package/ui/Agent/Mic.tsx +0 -27
- package/ui/Agent/Section.tsx +0 -24
- package/ui/Agent/StateKey.tsx +0 -46
- package/ui/Agent/Tool.tsx +0 -59
- package/ui/Agent/Transcript.tsx +0 -33
- package/ui/Agent/markdownSpans.tsx +0 -49
- package/ui/Agent/sessionHistory.ts +0 -62
- package/ui/Agent/sessionView.ts +0 -38
- package/ui/Dialog/Action.tsx +0 -15
- package/ui/Dialog/Close.tsx +0 -18
- package/ui/Dialog/Content.tsx +0 -11
- package/ui/Dialog/Title.tsx +0 -15
- package/ui/Dialog/Trigger.tsx +0 -18
- package/ui/Dialog/context.ts +0 -32
- package/ui/Layout/LeftSider.tsx +0 -43
- package/ui/Layout/RightSider.tsx +0 -47
- package/ui/Layout/Template.tsx +0 -11
- package/ui/Layout/TopLeftAction.tsx +0 -28
- package/ui/Layout/Unit.tsx +0 -19
- package/ui/Layout/View.tsx +0 -12
- package/ui/Layout/Zone.tsx +0 -10
- package/ui/Link/Back.tsx +0 -15
- package/ui/Link/Close.tsx +0 -20
- package/ui/Link/CsrLink.tsx +0 -46
- package/ui/Link/Lang.tsx +0 -16
- package/ui/Link/SsrLink.tsx +0 -72
- package/ui/Link/types.ts +0 -55
- package/ui/Loading/Area.tsx +0 -27
- package/ui/Loading/Button.tsx +0 -15
- package/ui/Loading/Input.tsx +0 -15
- package/ui/Model/LoadInit.tsx +0 -11
- package/ui/Model/LoadView.tsx +0 -11
- package/ui/Reference/Collapse.tsx +0 -26
- package/ui/Reference/Summary.tsx +0 -25
- package/ui/Reference/Toolbar.tsx +0 -44
- package/ui/Reference/dictText.ts +0 -9
- package/ui/Signal/Message.tsx +0 -215
- package/ui/Signal/PubSub.tsx +0 -201
- package/ui/Signal/Request.tsx +0 -11
- package/ui/System/DevModeToggle.tsx +0 -19
- package/ui/System/Gtag.tsx +0 -69
- package/ui/System/frameCssVars.ts +0 -25
- package/ui/Tab/Menu.tsx +0 -70
- package/ui/Tab/Menus.tsx +0 -13
- package/ui/Tab/Panel.tsx +0 -25
- package/ui/Tab/context.ts +0 -20
- package/ui/UiOverride/Provider.tsx +0 -26
- package/ui/UiOverride/createOverridable.tsx +0 -25
- package/ui/UiOverride/useUiOverride.ts +0 -15
- package/ui/UiOverride/useUiRecipe.ts +0 -15
- package/webkit/createSitemapPage.ts +0 -4
package/service/serviceModule.ts
CHANGED
|
@@ -1,15 +1,18 @@
|
|
|
1
|
-
import type { MergeAllKeyOfObjects,
|
|
1
|
+
import type { MergeAllKeyOfObjects, UnCls } from "akanjs/base";
|
|
2
2
|
import { capitalize, lowerlize } from "akanjs/common";
|
|
3
3
|
import type { ConstantModel, QueryOf } from "akanjs/constant";
|
|
4
|
-
import
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
4
|
+
import {
|
|
5
|
+
type DatabaseModel,
|
|
6
|
+
type DataInputOf,
|
|
7
|
+
type Doc,
|
|
8
|
+
documentQueryHelper,
|
|
9
|
+
type FilterInfo,
|
|
10
|
+
type FindQueryOption,
|
|
11
|
+
type ListQueryOption,
|
|
12
|
+
type SaveEventListener,
|
|
13
|
+
type SaveEventType,
|
|
14
|
+
splitFilterArgs,
|
|
15
|
+
type UpdateChain,
|
|
13
16
|
} from "akanjs/document";
|
|
14
17
|
import type { ServiceCls } from "./serve";
|
|
15
18
|
import type { DatabaseService } from "./types";
|
|
@@ -114,18 +117,10 @@ export class ServiceModel<
|
|
|
114
117
|
async _postRemove(this: DatabaseService, doc: Doc) {
|
|
115
118
|
return doc;
|
|
116
119
|
},
|
|
117
|
-
listenPre(
|
|
118
|
-
this: DatabaseService,
|
|
119
|
-
type: SaveEventType,
|
|
120
|
-
listener: (doc: Doc, type: CRUDEventType, previous?: Doc) => PromiseOrObject<void>,
|
|
121
|
-
) {
|
|
120
|
+
listenPre(this: DatabaseService, type: SaveEventType, listener: SaveEventListener<Doc>) {
|
|
122
121
|
return this.__databaseModel.listenPre(type, listener);
|
|
123
122
|
},
|
|
124
|
-
listenPost(
|
|
125
|
-
this: DatabaseService,
|
|
126
|
-
type: SaveEventType,
|
|
127
|
-
listener: (doc: Doc, type: CRUDEventType, previous?: Doc) => PromiseOrObject<void>,
|
|
128
|
-
) {
|
|
123
|
+
listenPost(this: DatabaseService, type: SaveEventType, listener: SaveEventListener<Doc>) {
|
|
129
124
|
return this.__databaseModel.listenPost(type, listener);
|
|
130
125
|
},
|
|
131
126
|
async __create(this: DatabaseService, data: DataInputOf) {
|
|
@@ -156,78 +151,65 @@ export class ServiceModel<
|
|
|
156
151
|
};
|
|
157
152
|
return dbServiceMethods;
|
|
158
153
|
}
|
|
159
|
-
static getFilterServiceMethods(queryKey: string,
|
|
160
|
-
const
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
typeof lastArg.skip === "number" ||
|
|
168
|
-
typeof lastArg.limit === "number" ||
|
|
169
|
-
typeof lastArg.sort === "string");
|
|
170
|
-
const query = queryFn(...(hasQueryOption ? args.slice(0, -1) : args));
|
|
171
|
-
const queryOption = hasQueryOption ? lastArg : {};
|
|
172
|
-
return { query, queryOption };
|
|
154
|
+
static getFilterServiceMethods(queryKey: string, filterInfo: FilterInfo) {
|
|
155
|
+
const queryFn = filterInfo.queryFn;
|
|
156
|
+
if (!queryFn) throw new Error(`No query function for key: ${queryKey}`);
|
|
157
|
+
const queryOf = (args: any): QueryOf<any> =>
|
|
158
|
+
queryFn(...splitFilterArgs(filterInfo, args).queryArgs, documentQueryHelper);
|
|
159
|
+
const dataOf = (args: any) => {
|
|
160
|
+
const { queryArgs, queryOption } = splitFilterArgs(filterInfo, args);
|
|
161
|
+
return { query: queryFn(...queryArgs, documentQueryHelper), queryOption };
|
|
173
162
|
};
|
|
174
|
-
const
|
|
175
|
-
|
|
176
|
-
|
|
163
|
+
const key = capitalize(queryKey);
|
|
164
|
+
return {
|
|
165
|
+
[`list${key}`]: async function (this: DatabaseService, ...args: any) {
|
|
166
|
+
const { query, queryOption } = dataOf(args);
|
|
177
167
|
return this.__list(query, queryOption);
|
|
178
168
|
},
|
|
179
|
-
[`listIds${
|
|
180
|
-
const { query, queryOption } =
|
|
169
|
+
[`listIds${key}`]: async function (this: DatabaseService, ...args: any) {
|
|
170
|
+
const { query, queryOption } = dataOf(args);
|
|
181
171
|
return this.__listIds(query, queryOption);
|
|
182
172
|
},
|
|
183
|
-
[`find${
|
|
184
|
-
const { query, queryOption } =
|
|
173
|
+
[`find${key}`]: async function (this: DatabaseService, ...args: any) {
|
|
174
|
+
const { query, queryOption } = dataOf(args);
|
|
185
175
|
return this.__find(query, queryOption);
|
|
186
176
|
},
|
|
187
|
-
[`findId${
|
|
188
|
-
const { query, queryOption } =
|
|
177
|
+
[`findId${key}`]: async function (this: DatabaseService, ...args: any) {
|
|
178
|
+
const { query, queryOption } = dataOf(args);
|
|
189
179
|
return this.__findId(query, queryOption);
|
|
190
180
|
},
|
|
191
|
-
[`pick${
|
|
192
|
-
const { query, queryOption } =
|
|
181
|
+
[`pick${key}`]: async function (this: DatabaseService, ...args: any) {
|
|
182
|
+
const { query, queryOption } = dataOf(args);
|
|
193
183
|
return this.__pick(query, queryOption);
|
|
194
184
|
},
|
|
195
|
-
[`pickId${
|
|
196
|
-
const { query, queryOption } =
|
|
185
|
+
[`pickId${key}`]: async function (this: DatabaseService, ...args: any) {
|
|
186
|
+
const { query, queryOption } = dataOf(args);
|
|
197
187
|
return this.__pickId(query, queryOption);
|
|
198
188
|
},
|
|
199
|
-
[`exists${
|
|
200
|
-
|
|
201
|
-
return this.__exists(query);
|
|
189
|
+
[`exists${key}`]: async function (this: DatabaseService, ...args: any) {
|
|
190
|
+
return this.__exists(queryOf(args));
|
|
202
191
|
},
|
|
203
|
-
[`count${
|
|
204
|
-
|
|
205
|
-
return this.__count(query);
|
|
192
|
+
[`count${key}`]: async function (this: DatabaseService, ...args: any) {
|
|
193
|
+
return this.__count(queryOf(args));
|
|
206
194
|
},
|
|
207
|
-
[`insight${
|
|
208
|
-
|
|
209
|
-
return this.__insight(query);
|
|
195
|
+
[`insight${key}`]: async function (this: DatabaseService, ...args: any) {
|
|
196
|
+
return this.__insight(queryOf(args));
|
|
210
197
|
},
|
|
211
|
-
[`query${
|
|
212
|
-
|
|
198
|
+
[`query${key}`]: (...args: any) => queryOf(args),
|
|
199
|
+
[`remove${key}`]: async function (this: DatabaseService, ...args: any) {
|
|
200
|
+
return this.__removeMany(queryOf(args));
|
|
213
201
|
},
|
|
214
|
-
[`
|
|
215
|
-
|
|
216
|
-
return this.__removeMany(query);
|
|
202
|
+
[`removeOne${key}`]: async function (this: DatabaseService, ...args: any) {
|
|
203
|
+
return this.__removeOne(queryOf(args));
|
|
217
204
|
},
|
|
218
|
-
[`
|
|
219
|
-
const
|
|
220
|
-
return this.__removeOne(query);
|
|
221
|
-
},
|
|
222
|
-
[`update${capitalizedQueryKey}`]: function (this: DatabaseService, ...args: any): UpdateChain {
|
|
223
|
-
const { query } = getQueryDataFromKey(queryKey, args);
|
|
205
|
+
[`update${key}`]: function (this: DatabaseService, ...args: any): UpdateChain {
|
|
206
|
+
const query = queryOf(args);
|
|
224
207
|
return { set: (update) => this.__updateMany(query, update) };
|
|
225
208
|
},
|
|
226
|
-
[`updateOne${
|
|
227
|
-
const
|
|
209
|
+
[`updateOne${key}`]: function (this: DatabaseService, ...args: any): UpdateChain {
|
|
210
|
+
const query = queryOf(args);
|
|
228
211
|
return { set: (update) => this.__updateOne(query, update) };
|
|
229
212
|
},
|
|
230
213
|
};
|
|
231
|
-
return filterServiceMethods;
|
|
232
214
|
}
|
|
233
215
|
}
|
package/service/toolNames.ts
CHANGED
|
@@ -3,30 +3,16 @@ import type { AgentWireMessage, AgentWireToolCall, LlmTurnRequest } from "./pred
|
|
|
3
3
|
const wireSafe = /^[A-Za-z0-9_-]+$/;
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* A zone publishes its tools scope-prefixed — `videoProjectDraft.createVideoProject` — which is legal for MCP,
|
|
9
|
-
* where `.` is an allowed character and the scope join. Every OpenAI-compatible and Anthropic function schema is
|
|
10
|
-
* narrower: `[A-Za-z0-9_-]`, at most 64 characters. A provider that validates answers 400; DeepSeek does not, and
|
|
11
|
-
* what happened instead was worse to debug — the model normalized the illegal name itself, called the bare
|
|
12
|
-
* `createVideoProject`, and the browser answered `Unknown tool`, spending a turn on a tool that was published all
|
|
13
|
-
* along.
|
|
14
|
-
*
|
|
15
|
-
* Renamed here rather than in each adaptor for the reason `AgentService.explained` gives: every adaptor would
|
|
16
|
-
* otherwise have to remember, and forgetting is silent. A name the wire already accepts is left alone, so the
|
|
17
|
-
* root agent's request is byte-for-byte what it was.
|
|
6
|
+
* OpenAI-dialect and Anthropic function names are `[A-Za-z0-9_-]{1,64}` while a zone scopes tools with `.`; DeepSeek
|
|
7
|
+
* does not refuse an illegal name but calls a normalized one that the browser does not know.
|
|
18
8
|
*/
|
|
19
9
|
export class ToolNames {
|
|
20
|
-
/** Both dialects reject a longer name, and neither says so in terms of the tool you wrote. */
|
|
21
10
|
static readonly limit = 64;
|
|
22
11
|
|
|
23
12
|
readonly #toWire = new Map<string, string>();
|
|
24
13
|
readonly #toSurface = new Map<string, string>();
|
|
25
14
|
|
|
26
|
-
/**
|
|
27
|
-
* Every name the request carries, not just the published ones: the transcript holds calls to tools that have
|
|
28
|
-
* since left the screen, and one of those reaching the wire unrenamed is the same failure a turn later.
|
|
29
|
-
*/
|
|
15
|
+
/** The transcript's names too: a call to a tool that has since left the screen still reaches the wire. */
|
|
30
16
|
static of(request: LlmTurnRequest): ToolNames {
|
|
31
17
|
return new ToolNames([
|
|
32
18
|
...request.tools.map((tool) => tool.name),
|
|
@@ -38,7 +24,7 @@ export class ToolNames {
|
|
|
38
24
|
const all = [...new Set(names)];
|
|
39
25
|
|
|
40
26
|
const taken = new Set(all.filter((name) => ToolNames.#fits(name)));
|
|
41
|
-
|
|
27
|
+
|
|
42
28
|
for (const name of all.filter((candidate) => !ToolNames.#fits(candidate)).sort((a, b) => (a < b ? -1 : 1))) {
|
|
43
29
|
const wire = ToolNames.#unique(ToolNames.#fold(name), taken);
|
|
44
30
|
taken.add(wire);
|
|
@@ -55,10 +41,7 @@ export class ToolNames {
|
|
|
55
41
|
return this.#toWire.get(name) ?? name;
|
|
56
42
|
}
|
|
57
43
|
|
|
58
|
-
/**
|
|
59
|
-
* Unknown stays as it came. A model that invented a name is answered by the surface's own `Unknown tool`, which
|
|
60
|
-
* lands in the transcript as a tool result it can correct from — guessing which tool it meant would run one.
|
|
61
|
-
*/
|
|
44
|
+
/** An invented name stays as it came for the surface's `Unknown tool`: guessing the intended tool would run one. */
|
|
62
45
|
surface(name: string) {
|
|
63
46
|
return this.#toSurface.get(name) ?? name;
|
|
64
47
|
}
|
package/service/types.ts
CHANGED
|
@@ -2,7 +2,6 @@ import type { Cls, MergeAllTypes, PromiseOrObject } from "akanjs/base";
|
|
|
2
2
|
import type { Logger } from "akanjs/common";
|
|
3
3
|
import type { QueryOf } from "akanjs/constant";
|
|
4
4
|
import type {
|
|
5
|
-
CRUDEventType,
|
|
6
5
|
DatabaseModel,
|
|
7
6
|
DataInputOf,
|
|
8
7
|
DocumentUpdateInput,
|
|
@@ -11,6 +10,7 @@ import type {
|
|
|
11
10
|
GetDocObject,
|
|
12
11
|
ListQueryOption,
|
|
13
12
|
QueryMethodPart,
|
|
13
|
+
SaveEventListener,
|
|
14
14
|
SaveEventType,
|
|
15
15
|
UpdateResult,
|
|
16
16
|
} from "akanjs/document";
|
|
@@ -128,14 +128,8 @@ export type DatabaseService<
|
|
|
128
128
|
__libsPostUpdate: (doc: Doc) => Promise<Doc>;
|
|
129
129
|
__libsPreRemove: (id: string) => Promise<void>;
|
|
130
130
|
__libsPostRemove: (doc: Doc) => Promise<Doc>;
|
|
131
|
-
listenPre: (
|
|
132
|
-
|
|
133
|
-
listener: (doc: Doc, type: CRUDEventType, previous?: Doc) => PromiseOrObject<void>,
|
|
134
|
-
) => () => void;
|
|
135
|
-
listenPost: (
|
|
136
|
-
type: SaveEventType,
|
|
137
|
-
listener: (doc: Doc, type: CRUDEventType, previous?: Doc) => PromiseOrObject<void>,
|
|
138
|
-
) => () => void;
|
|
131
|
+
listenPre: (type: SaveEventType, listener: SaveEventListener<Doc>) => () => void;
|
|
132
|
+
listenPost: (type: SaveEventType, listener: SaveEventListener<Doc>) => () => void;
|
|
139
133
|
} & { [key in `${T}Model`]: Model } & {
|
|
140
134
|
[K in `get${_CapitalizedRefName}`]: (id: string) => Promise<Doc>;
|
|
141
135
|
} & {
|
package/signal/CrossSiteGuard.ts
CHANGED
|
@@ -2,34 +2,12 @@ import { hostFromRequest, isJsonContentType, Logger } from "akanjs/common";
|
|
|
2
2
|
import { Exception } from "./exception";
|
|
3
3
|
|
|
4
4
|
export interface CrossSiteOption {
|
|
5
|
-
/**
|
|
6
|
-
* Origins allowed to drive a mutation besides the one serving the request. The native shells are here by
|
|
7
|
-
* default because a Capacitor webview is a real caller whose origin is never the serve domain.
|
|
8
|
-
*/
|
|
5
|
+
/** Besides the serving origin; the native shell origins are always allowed. */
|
|
9
6
|
allowedOrigins?: string[];
|
|
10
|
-
/**
|
|
7
|
+
/** `false` turns the gate off, for an API reached only by non-browser callers. */
|
|
11
8
|
enabled?: boolean;
|
|
12
9
|
}
|
|
13
10
|
|
|
14
|
-
/**
|
|
15
|
-
* Refuses a state-changing request a browser made from somewhere else.
|
|
16
|
-
*
|
|
17
|
-
* The framework authenticates with a `SameSite=None` cookie, which a browser attaches to **every** cross-site
|
|
18
|
-
* request, and `Request.json()` reads a body whatever content type it claims. Without this, any page on the
|
|
19
|
-
* internet could POST a form at a mutation and have it run as whoever was signed in — the response is unreadable
|
|
20
|
-
* without CORS headers, but the write already landed.
|
|
21
|
-
*
|
|
22
|
-
* Two independent gates, because neither covers the other:
|
|
23
|
-
*
|
|
24
|
-
* - **Content type.** Demanding `application/json` puts a CORS preflight in front of every JSON mutation, and
|
|
25
|
-
* the preflight fails because nothing here answers one. This is what closes the hole for the common case.
|
|
26
|
-
* - **Origin.** A file upload is `multipart/form-data`, which is preflight-free by spec and cannot be made to
|
|
27
|
-
* require JSON, so the only thing left to check is who sent it. Also covers a mutation with no body at all.
|
|
28
|
-
*
|
|
29
|
-
* A request with no `Origin` header is allowed: browsers set it on every POST, so its absence means a
|
|
30
|
-
* non-browser caller (a server, a CLI, a test), which has no ambient credential to be abused. A literal
|
|
31
|
-
* `Origin: null` is refused — that is the opaque origin a sandboxed frame or a `data:` document sends.
|
|
32
|
-
*/
|
|
33
11
|
export class CrossSiteGuard {
|
|
34
12
|
static readonly logger = new Logger("CrossSiteGuard");
|
|
35
13
|
/** iOS ships `capacitor://localhost`, Android `http://localhost`, older shells `ionic://localhost`. */
|
|
@@ -48,10 +26,7 @@ export class CrossSiteGuard {
|
|
|
48
26
|
CrossSiteGuard.#allowed = new Set(CrossSiteGuard.nativeOrigins);
|
|
49
27
|
}
|
|
50
28
|
|
|
51
|
-
/**
|
|
52
|
-
* The body gate. Called only where a JSON body is about to be read, so an upload mutation — whose content type
|
|
53
|
-
* is multipart by construction — reaches `assertOrigin` and nothing else.
|
|
54
|
-
*/
|
|
29
|
+
/** Call only where a JSON body is read: a multipart upload relies on `assertOrigin` alone. */
|
|
55
30
|
static assertJsonBody(contentType: string | null) {
|
|
56
31
|
if (!CrossSiteGuard.#enabled) return;
|
|
57
32
|
if (isJsonContentType(contentType)) return;
|
|
@@ -64,27 +39,17 @@ export class CrossSiteGuard {
|
|
|
64
39
|
if (origin === null) return;
|
|
65
40
|
if (origin !== "null" && (CrossSiteGuard.#isSameSite(origin, req, url) || CrossSiteGuard.#allowed.has(origin)))
|
|
66
41
|
return;
|
|
67
|
-
|
|
42
|
+
|
|
68
43
|
CrossSiteGuard.logger.warn(
|
|
69
44
|
`Refused "${key}" from cross-site origin ${origin} (request host ${hostFromRequest(req.headers, url)})`,
|
|
70
45
|
);
|
|
71
46
|
throw new Exception.Forbidden("This request was not permitted.");
|
|
72
47
|
}
|
|
73
48
|
|
|
74
|
-
/**
|
|
75
|
-
* Host, not full origin — the same comparison `McpRouter` makes, for the same reason.
|
|
76
|
-
*
|
|
77
|
-
* The host is what the browser wrote from the URL it was told to open, so a page on another site POSTing here
|
|
78
|
-
* still arrives with *our* host and its own `Origin`: comparing hosts refuses every cross-site caller. The
|
|
79
|
-
* scheme is the one part of the origin a proxy routinely loses — a TLS-terminating edge (a Cloudflare tunnel,
|
|
80
|
-
* an ingress without `x-forwarded-proto`) dials us over plain HTTP, so an `https://` caller would be measured
|
|
81
|
-
* against a computed `http://` self and refused on every mutation. What that costs is a page served over
|
|
82
|
-
* plaintext on our own host, which is an attacker who already holds the name.
|
|
83
|
-
*/
|
|
84
49
|
static #isSameSite(origin: string, req: Request, url: URL): boolean {
|
|
85
50
|
try {
|
|
86
51
|
const { protocol, host } = new URL(origin);
|
|
87
|
-
|
|
52
|
+
|
|
88
53
|
return host === new URL(`${protocol}//${hostFromRequest(req.headers, url)}`).host;
|
|
89
54
|
} catch {
|
|
90
55
|
return false;
|
package/signal/SignalFailure.ts
CHANGED
|
@@ -1,21 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
* The one shape an unexpected failure takes on the wire, for both transports.
|
|
3
|
-
*
|
|
4
|
-
* An `Exception` says what it means to say and travels as it is. Everything else — a SQL error, an adaptor
|
|
5
|
-
* throwing, a framework `throw new Error` — is an internal detail: a stack names server file paths and the
|
|
6
|
-
* framework's own structure, and a driver message quotes the statement and sometimes its values. That is the
|
|
7
|
-
* same reason a guard's refusal is generalized to `You are not permitted to perform this action.`, so a 500 is
|
|
8
|
-
* generalized for it too. `endpoint.logger.error` already recorded the stack, so nothing is lost.
|
|
9
|
-
*/
|
|
1
|
+
|
|
10
2
|
export class SignalFailure {
|
|
11
3
|
static readonly message = "Internal Server Error";
|
|
12
4
|
static #detailed: boolean | null = null;
|
|
13
5
|
|
|
14
|
-
/**
|
|
15
|
-
* Whether this process may describe its own failures. Production is the deployed build — the same test
|
|
16
|
-
* `WebRouter` applies, so `akan start` under `NODE_ENV=production` still says what broke. `AKAN_ERROR_DETAIL=1`
|
|
17
|
-
* puts the detail back for a deployed build somebody is debugging.
|
|
18
|
-
*/
|
|
6
|
+
/** Off in a deployed build (the `WebRouter` test) unless `AKAN_ERROR_DETAIL=1`. */
|
|
19
7
|
static get detailed(): boolean {
|
|
20
8
|
SignalFailure.#detailed ??=
|
|
21
9
|
process.env.AKAN_ERROR_DETAIL === "1" ||
|
|
@@ -27,7 +15,6 @@ export class SignalFailure {
|
|
|
27
15
|
SignalFailure.#detailed = null;
|
|
28
16
|
}
|
|
29
17
|
|
|
30
|
-
/** The 500 payload: the real message and stack in dev, one sentence in production. */
|
|
31
18
|
static body<Extra extends Record<string, unknown> = Record<string, never>>(
|
|
32
19
|
error: unknown,
|
|
33
20
|
extra: Extra = {} as Extra,
|
|
@@ -2,32 +2,27 @@ import { mcpBaseVerbOf } from "akanjs/common";
|
|
|
2
2
|
import { FetchClient } from "akanjs/fetch";
|
|
3
3
|
import type { SerializedEndpoint, SerializedSignal, SerializedSlice } from "../types";
|
|
4
4
|
|
|
5
|
-
/** Where an endpoint came from, which is what decides where an audience's opt-in for it can be written. */
|
|
6
5
|
export type AgentOrigin = "base" | "slice" | "endpoint";
|
|
7
6
|
|
|
8
|
-
/** Which generated CRUD verb a `base` candidate is. Its opt-in lives on the signal, not on the endpoint. */
|
|
9
7
|
export type AgentBaseVerb = NonNullable<ReturnType<typeof mcpBaseVerbOf>>;
|
|
10
8
|
|
|
11
|
-
/** One endpoint a signal registry holds, before any audience has decided anything about it. */
|
|
12
9
|
export interface AgentCandidate {
|
|
13
10
|
refName: string;
|
|
14
11
|
key: string;
|
|
15
12
|
endpoint: SerializedEndpoint;
|
|
16
13
|
origin: AgentOrigin;
|
|
17
|
-
/**
|
|
14
|
+
/** Where a generated verb's opt-in is written, since it carries no option of its own. */
|
|
18
15
|
signal: SerializedSignal;
|
|
19
|
-
/**
|
|
16
|
+
/** Where a `slice` candidate's opt-in is written. */
|
|
20
17
|
slice?: SerializedSlice;
|
|
21
18
|
baseVerb?: AgentBaseVerb;
|
|
22
19
|
}
|
|
23
20
|
|
|
24
|
-
/** An opt-in a catalogue did not honour, with the reason it did not. */
|
|
25
21
|
export interface AgentRefusal {
|
|
26
22
|
key: string;
|
|
27
23
|
reason: string;
|
|
28
24
|
}
|
|
29
25
|
|
|
30
|
-
/** A published entry carrying no description its author wrote, and what to write so that it does. */
|
|
31
26
|
export interface AgentUndescribed {
|
|
32
27
|
key: string;
|
|
33
28
|
reason: string;
|
|
@@ -38,24 +33,9 @@ export interface AgentCatalogueOptions {
|
|
|
38
33
|
excludeSignals?: string[];
|
|
39
34
|
}
|
|
40
35
|
|
|
41
|
-
/**
|
|
42
|
-
* The half of an agent catalogue that does not depend on who is asking.
|
|
43
|
-
*
|
|
44
|
-
* Enumerating what a signal registry holds, keeping that order stable, holding one name per entry, and resolving
|
|
45
|
-
* the words a module wrote in its dictionary are the same work for every audience — an external MCP client, an
|
|
46
|
-
* in-page agent driving the store, a transport that does not exist yet. What differs is only which option admits
|
|
47
|
-
* an endpoint and what shape it is published in, and both of those stay with the audience that decides them.
|
|
48
|
-
*
|
|
49
|
-
* Separated while exactly one audience existed. The cost then is moving code between two files; the cost later is
|
|
50
|
-
* telling two audiences apart inside one class that never expected a second.
|
|
51
|
-
*/
|
|
36
|
+
/** The audience-independent half of a catalogue: enumeration, stable order, one name per entry, dictionary text. */
|
|
52
37
|
export class AgentCatalogue {
|
|
53
|
-
/**
|
|
54
|
-
* Everything a registry holds, in an order that does not move between boots: clients cache a catalogue, and an
|
|
55
|
-
* LLM prompt cache keys on its exact text, so an order that depends on object iteration is a cache that misses.
|
|
56
|
-
*
|
|
57
|
-
* Every endpoint is listed, including ones no audience will take. Deciding is the caller's half.
|
|
58
|
-
*/
|
|
38
|
+
/** Sorted, because clients cache a catalogue and an LLM prompt cache keys on its exact text. */
|
|
59
39
|
static candidates(
|
|
60
40
|
serializedSignal: Record<string, SerializedSignal>,
|
|
61
41
|
{ excludeSignals = ["base"] }: { excludeSignals?: string[] } = {},
|
|
@@ -78,39 +58,22 @@ export class AgentCatalogue {
|
|
|
78
58
|
return candidates.sort((a, b) => a.refName.localeCompare(b.refName) || a.key.localeCompare(b.key));
|
|
79
59
|
}
|
|
80
60
|
|
|
81
|
-
/**
|
|
82
|
-
* What opted in and was refused anyway. Collected rather than merely dropped so a server can say so at boot:
|
|
83
|
-
* the rejections an audience makes are fail-closed by design, and an author whose deliberate opt-in vanished
|
|
84
|
-
* from the catalogue otherwise has nowhere to look but the framework source.
|
|
85
|
-
*/
|
|
86
61
|
readonly refusals: AgentRefusal[] = [];
|
|
87
62
|
|
|
88
63
|
readonly #options: AgentCatalogueOptions;
|
|
89
64
|
readonly #claimed = new Set<string>();
|
|
90
|
-
|
|
65
|
+
|
|
91
66
|
readonly #undescribedByKey = new Map<string, string>();
|
|
92
67
|
|
|
93
68
|
constructor(options: AgentCatalogueOptions = {}) {
|
|
94
69
|
this.#options = options;
|
|
95
70
|
}
|
|
96
71
|
|
|
97
|
-
/**
|
|
98
|
-
* What is published with no description of its own. Description is the one field a model picks an entry by, so
|
|
99
|
-
* one without it is a broken entry rather than an untidy one — and a source scanner cannot answer this: it
|
|
100
|
-
* reads files, where an opt-in is visible only as a literal in a builder call and where the model `.desc()`
|
|
101
|
-
* every generated entry borrows is not written as a description of the entry at all.
|
|
102
|
-
*/
|
|
103
72
|
get undescribed(): AgentUndescribed[] {
|
|
104
73
|
return [...this.#undescribedByKey].map(([key, reason]) => ({ key, reason }));
|
|
105
74
|
}
|
|
106
75
|
|
|
107
|
-
/**
|
|
108
|
-
* Takes the name for this entry, or refuses it because something else already holds it.
|
|
109
|
-
*
|
|
110
|
-
* A name must be unique within a catalogue, across every kind of entry it publishes. Keys are globally unique
|
|
111
|
-
* by construction, so a collision means two signals disagree — the first in candidate order keeps it, which is
|
|
112
|
-
* what makes the catalogue the same on the next boot either way.
|
|
113
|
-
*/
|
|
76
|
+
/** The first claimant in candidate order keeps a colliding name, so the catalogue is the same every boot. */
|
|
114
77
|
claim(key: string): boolean {
|
|
115
78
|
if (this.#claimed.has(key)) {
|
|
116
79
|
this.refuse(key, "another endpoint is already published under this name.");
|
|
@@ -131,18 +94,9 @@ export class AgentCatalogue {
|
|
|
131
94
|
}
|
|
132
95
|
|
|
133
96
|
/**
|
|
134
|
-
*
|
|
135
|
-
*
|
|
136
|
-
* `
|
|
137
|
-
* `<model>List` and `<model>Insight` publish as "Slice List - Universal" whatever the dictionary says. The five
|
|
138
|
-
* base CRUD entries are no better off: `getBaseSignalDictionary` writes "Get Banner" as both title and
|
|
139
|
-
* description, and both are assigned last, so a module author has nowhere to write over either one.
|
|
140
|
-
*
|
|
141
|
-
* That matters more here than anywhere else — description is the one field a model picks an entry by, and "Get
|
|
142
|
-
* Banner" says nothing about what a Banner is. So the model's `.desc()` is appended rather than substituted:
|
|
143
|
-
* on `removeBanner` a bare model description would read as if the tool returned one. And when the model has no
|
|
144
|
-
* `.desc()` either, the entry is recorded as undescribed — its only possible text is missing, and that is the
|
|
145
|
-
* one thing a source scanner cannot see.
|
|
97
|
+
* Generated entries borrow the model's words: the root slice's placeholder text and the base CRUD "Get X" are
|
|
98
|
+
* assigned last, where no author can write over them. On CRUD the model `.desc()` is appended, not substituted,
|
|
99
|
+
* so `removeX` does not read as returning one.
|
|
146
100
|
*/
|
|
147
101
|
entryTexts(refName: string, key: string) {
|
|
148
102
|
const borrowed = `its only text is the model's own, and \`${refName}\` has no \`.desc()\` to lend it.`;
|
package/signal/agent.signal.ts
CHANGED
|
@@ -1,26 +1,28 @@
|
|
|
1
1
|
import { Any } from "akanjs/base";
|
|
2
2
|
import type { AgentWireContext, AgentWireMessage, AgentWireTool, LlmTurnRequest } from "akanjs/service";
|
|
3
3
|
import { srv } from "akanjs/service";
|
|
4
|
+
import { AgentMeter } from "./agentMeter";
|
|
4
5
|
import { AgentTurn } from "./agentTurn";
|
|
5
6
|
import { AgentTurnStream } from "./agentTurnStream";
|
|
6
7
|
import { endpoint } from "./endpoint";
|
|
7
8
|
import { AgentRelayAccess } from "./guards";
|
|
8
9
|
import { internal } from "./internal";
|
|
9
|
-
import { Req } from "./internalArg";
|
|
10
|
+
import { CallerAccount, Req } from "./internalArg";
|
|
10
11
|
import { serverSignal } from "./serverSignal";
|
|
11
12
|
import { SignalRegistry } from "./signalRegistry";
|
|
12
13
|
|
|
13
14
|
export class AgentInternal extends internal(srv.agent, () => ({})) {}
|
|
14
15
|
|
|
15
16
|
export class AgentEndpoint extends endpoint(srv.agent, ({ mutation }) => ({
|
|
16
|
-
|
|
17
|
+
|
|
17
18
|
runAgentTurn: mutation(AgentTurn, { guards: [AgentRelayAccess] })
|
|
18
19
|
.body("messages", [Any])
|
|
19
20
|
.body("tools", [Any])
|
|
20
21
|
.body("context", [Any])
|
|
21
22
|
.body("instructions", String, { nullable: true })
|
|
22
23
|
.with(Req)
|
|
23
|
-
.
|
|
24
|
+
.with(CallerAccount, { nullable: true })
|
|
25
|
+
.exec(async function (messages, tools, context, instructions, request, account) {
|
|
24
26
|
const turn: LlmTurnRequest = {
|
|
25
27
|
messages: messages as unknown as AgentWireMessage[],
|
|
26
28
|
tools: tools as unknown as AgentWireTool[],
|
|
@@ -28,9 +30,10 @@ export class AgentEndpoint extends endpoint(srv.agent, ({ mutation }) => ({
|
|
|
28
30
|
...(instructions ? { instructions } : {}),
|
|
29
31
|
};
|
|
30
32
|
if (AgentTurnStream.wants(request as Bun.BunRequest))
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
33
|
+
return AgentTurnStream.response((onDelta) =>
|
|
34
|
+
AgentMeter.run(account, () => this.agentService.runTurn(turn, onDelta)),
|
|
35
|
+
) as unknown as AgentTurn;
|
|
36
|
+
return await AgentMeter.run(account, () => this.agentService.runTurn(turn));
|
|
34
37
|
}),
|
|
35
38
|
})) {}
|
|
36
39
|
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { PromiseOrObject } from "akanjs/base";
|
|
2
|
+
import { Logger } from "akanjs/common";
|
|
3
|
+
import { Err } from "akanjs/dictionary";
|
|
4
|
+
import type { LlmUsage } from "akanjs/service";
|
|
5
|
+
|
|
6
|
+
export interface AgentUsageReport {
|
|
7
|
+
account: unknown;
|
|
8
|
+
model: string | null;
|
|
9
|
+
usage: LlmUsage;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export interface AgentQuotaCheck {
|
|
13
|
+
account: unknown;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export type AgentUsageHook = (report: AgentUsageReport) => PromiseOrObject<void>;
|
|
17
|
+
export type AgentQuotaHook = (check: AgentQuotaCheck) => PromiseOrObject<boolean>;
|
|
18
|
+
|
|
19
|
+
/** `account` is whatever the app's account middleware put on the call; the framework has no account model. */
|
|
20
|
+
export class AgentMeter {
|
|
21
|
+
static #usage: AgentUsageHook | null = null;
|
|
22
|
+
static #quota: AgentQuotaHook | null = null;
|
|
23
|
+
static #logger = new Logger("AgentMeter");
|
|
24
|
+
|
|
25
|
+
static use({ usage, quota }: { usage?: AgentUsageHook | null; quota?: AgentQuotaHook | null }) {
|
|
26
|
+
if (usage !== undefined) AgentMeter.#usage = usage;
|
|
27
|
+
if (quota !== undefined) AgentMeter.#quota = quota;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
static async run<T extends { usage?: LlmUsage; model?: string }>(account: unknown, turn: () => Promise<T>) {
|
|
31
|
+
if (AgentMeter.#quota && !(await AgentMeter.#quota({ account }))) throw new Err("agent.error.quotaExceeded");
|
|
32
|
+
const result = await turn();
|
|
33
|
+
const hook = AgentMeter.#usage;
|
|
34
|
+
|
|
35
|
+
if (hook && result.usage)
|
|
36
|
+
void Promise.resolve()
|
|
37
|
+
.then(() => hook({ account, model: result.model ?? null, usage: result.usage as LlmUsage }))
|
|
38
|
+
.catch((error: unknown) =>
|
|
39
|
+
AgentMeter.#logger.error(
|
|
40
|
+
`agent usage hook failed: ${error instanceof Error ? error.message : String(error)}`,
|
|
41
|
+
),
|
|
42
|
+
);
|
|
43
|
+
return result;
|
|
44
|
+
}
|
|
45
|
+
}
|