akanjs 3.0.0-beta.2 → 3.0.0-beta.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/base/base.ts +6 -11
- package/base/baseEnv.ts +17 -11
- package/base/databaseModes.ts +75 -0
- package/base/index.ts +1 -0
- package/base/primitiveRegistry.ts +38 -47
- package/base/symbols.ts +1 -1
- package/base/types.ts +1 -1
- package/base/utils.ts +3 -6
- package/capacitor.base.config.ts +2 -3
- package/client/capacitor.ts +18 -63
- package/client/cn.ts +3 -13
- package/client/cookie.ts +6 -15
- package/client/createFont.ts +0 -2
- package/client/csrTypes.ts +6 -59
- package/client/decorators.ts +1 -1
- package/client/device.ts +52 -44
- package/client/frameConfig.ts +15 -26
- package/client/index.ts +0 -1
- package/client/makePageProto.tsx +3 -4
- package/client/route/RootLayoutDefinition.ts +0 -6
- package/client/route/RouteDefinition.ts +5 -30
- package/client/route/resolveRouteModule.ts +1 -5
- package/client/router.ts +35 -39
- package/client/rscNavigation.ts +4 -5
- package/client/sharedContext.ts +2 -19
- package/client/storage.ts +29 -38
- package/client/translator.ts +5 -6
- package/client/types.ts +0 -3
- package/common/CodeAgentClient.ts +91 -0
- package/common/CodeTranscript.ts +325 -0
- package/common/Logger.ts +9 -34
- package/common/TrustedProxy.ts +6 -34
- package/common/applyMixins.ts +13 -2
- package/common/authToken.ts +0 -11
- package/common/capitalize.ts +3 -4
- package/common/clamp.ts +0 -1
- package/common/clientAddress.ts +1 -15
- package/common/codeAgentProfile.ts +181 -0
- package/common/codeAgentWire.ts +305 -0
- package/{server/routing → common}/eventStream.ts +1 -6
- package/common/fileUpload.ts +1 -12
- package/common/formatNumber.ts +3 -12
- package/common/index.ts +104 -19
- package/common/interpolateTranslation.ts +1 -6
- package/common/isEmail.ts +0 -1
- package/common/isRecord.ts +2 -0
- package/common/isThenable.ts +1 -8
- package/common/isValidDate.ts +3 -5
- package/common/logContext.ts +1 -1
- package/{ui/Agent → common}/markdownBlocks.ts +0 -3
- package/common/markdownSpans.ts +47 -0
- package/{ui/Agent → common}/markdownTable.ts +1 -5
- package/common/mcpExposure.ts +4 -27
- package/common/objectPath.ts +67 -0
- package/common/objectify.ts +52 -0
- package/common/{isPhoneNumber.ts → phone.ts} +7 -1
- package/common/randomPick.ts +13 -0
- package/common/requestOrigin.ts +0 -17
- package/common/restClient.ts +8 -13
- package/common/round.ts +4 -0
- package/common/routeConvention.ts +21 -14
- package/common/sleep.ts +1 -8
- package/common/subRoute.ts +4 -7
- package/common/toError.ts +1 -0
- package/common/tunnelWire.ts +263 -0
- package/common/types.ts +6 -7
- package/common/{splitVersion.ts → version.ts} +3 -6
- package/common/{websocketBinaryFrame.ts → websocketContract.ts} +43 -9
- package/constant/cascadePaths.ts +6 -9
- package/constant/constantRegistry.ts +21 -57
- package/constant/crystalize.ts +2 -12
- package/constant/dateSlot.ts +0 -15
- package/constant/fieldInfo.ts +30 -109
- package/constant/fieldQueryMeta.ts +2 -10
- package/constant/getDefault.ts +16 -8
- package/constant/hydrationPlan.ts +1 -9
- package/constant/index.ts +0 -1
- package/constant/labelOf.ts +1 -6
- package/constant/mask.ts +36 -38
- package/constant/purify.ts +6 -14
- package/constant/serialize.ts +82 -5
- package/constant/textFieldPaths.ts +2 -3
- package/constant/types.ts +2 -6
- package/constant/via.ts +20 -60
- package/dictionary/DictionaryLookup.ts +1 -7
- package/dictionary/agent.dictionary.ts +43 -11
- package/dictionary/base.dictionary.ts +11 -0
- package/dictionary/dictInfo.ts +145 -626
- package/dictionary/dictShape.ts +54 -0
- package/dictionary/dictionary.ts +1 -2
- package/dictionary/dictionaryRegistry.ts +7 -28
- package/dictionary/locale.ts +24 -116
- package/dictionary/trans.ts +18 -56
- package/document/dataLoader.ts +77 -78
- package/document/database.ts +52 -56
- package/document/documentQuery.ts +32 -32
- package/document/documentSchema.ts +21 -26
- package/document/filterMeta.ts +11 -31
- package/document/index.ts +0 -1
- package/document/into.ts +8 -18
- package/document/loaderInfo.ts +28 -7
- package/document/noDocumentError.ts +2 -7
- package/document/queryEvaluator.ts +21 -43
- package/document/types.ts +0 -1
- package/fetch/client/fetchClient.ts +66 -105
- package/fetch/client/fetchHandle.ts +4 -12
- package/fetch/client/httpClient.ts +35 -68
- package/fetch/client/remoteError.ts +2 -8
- package/fetch/client/sliceInitHandle.ts +3 -6
- package/fetch/client/sliceQueryArgs.ts +11 -0
- package/fetch/client/wsClient.ts +75 -64
- package/fetch/fetchType/appliedReturn.type.ts +5 -24
- package/fetch/fetchType/buildFetch.type.ts +28 -1
- package/fetch/fetchType/index.ts +0 -1
- package/fetch/requestStorage.ts +7 -28
- package/fetch/types.ts +0 -1
- package/index.ts +31 -64
- package/package.json +19 -5
- package/server/akanApp.ts +138 -289
- package/server/akanAppHeaders.ts +2 -3
- package/server/akanOption.ts +25 -27
- package/server/akanServer.ts +98 -219
- package/server/animatedImage.ts +2 -11
- package/server/artifact/builderRpc.ts +24 -64
- package/server/artifact/index.ts +0 -1
- package/server/artifact/ipcTypes.ts +27 -30
- package/server/artifact/routeClientCache.ts +18 -37
- package/server/artifact/routeSeedIndexStore.ts +2 -35
- package/server/artifact/routesManifestStore.ts +13 -38
- package/server/binaryPubsub.ts +0 -9
- package/server/cachePolicy.ts +10 -44
- package/server/console.ts +12 -16
- package/server/consoleSession.ts +55 -12
- package/server/contentEncoding.ts +42 -27
- package/server/decorators.ts +4 -70
- package/server/devtools/constantSerializer.ts +2 -14
- package/server/devtools/depsSerializer.ts +14 -46
- package/server/devtools/devtoolsJson.ts +6 -18
- package/server/devtools/devtoolsRouter.ts +2 -12
- package/server/devtools/signalSerializer.ts +5 -44
- package/server/devtools/types.ts +0 -12
- package/server/di/diLifecycle.ts +141 -221
- package/server/di/predefinedAdaptor.ts +11 -5
- package/server/di/resolveHierarchy.ts +114 -5
- package/server/di/utils.ts +13 -29
- package/server/head.tsx +53 -0
- package/server/hmr/clientScript.ts +2 -8
- package/server/hmr/devHmrController.ts +28 -32
- package/server/hmr/wsHub.ts +9 -7
- package/server/imageOptimizer.ts +5 -26
- package/server/index.ts +1 -1
- package/server/lifecycle/portInUse.ts +1 -4
- package/server/lifecycle/runtimeDir.ts +0 -4
- package/server/lifecycle/shutdownManager.ts +4 -29
- package/server/logging/childOutputReader.ts +0 -12
- package/server/logging/hubFileSink.ts +10 -6
- package/server/logging/logControlSocket.ts +13 -7
- package/server/logging/logForwarder.ts +19 -22
- package/server/logging/logHub.ts +0 -0
- package/server/logging/logQuery.ts +4 -7
- package/server/logging/logStdoutWriter.ts +1 -11
- package/server/logging/logStreamRoute.ts +4 -21
- package/server/logging/logTailClient.ts +1 -8
- package/server/logging/rotatingLogWriter.ts +4 -6
- package/server/mcp/McpAuth.ts +5 -79
- package/server/mcp/McpDispatcher.ts +13 -90
- package/server/mcp/McpEventStream.ts +2 -12
- package/server/mcp/McpExecutionContext.ts +1 -42
- package/server/mcp/McpRateLimiter.ts +61 -30
- package/server/mcp/McpRouter.ts +49 -208
- package/server/mcp/PagePromptComposer.ts +7 -29
- package/server/memoryLimit.ts +1 -13
- package/server/oauth/OAuthAuthorize.ts +3 -7
- package/server/oauth/OAuthClientIdMetadata.ts +2 -27
- package/server/oauth/OAuthErrors.ts +0 -13
- package/server/oauth/OAuthMetadata.ts +1 -7
- package/server/oauth/OAuthPkce.ts +0 -2
- package/server/oauth/OAuthRedirect.ts +0 -9
- package/server/oauth/OAuthRegistration.ts +0 -2
- package/server/oauth/OAuthRevocation.ts +1 -11
- package/server/oauth/OAuthToken.ts +3 -14
- package/server/oauth/oauthTypes.ts +1 -2
- package/server/ops/ageEncryption.ts +317 -0
- package/server/ops/appInfo.ts +92 -0
- package/server/ops/opsCommand.ts +116 -0
- package/server/ops/opsRoute.ts +151 -0
- package/server/ops/opsToken.ts +93 -0
- package/server/ops/snapshotJobs.ts +133 -0
- package/server/ops/snapshotRestore.ts +118 -0
- package/server/ops/snapshotTypes.ts +52 -0
- package/server/ops/sqliteFiles.ts +20 -0
- package/server/ops/sqliteSnapshot.ts +149 -0
- package/server/processMetricsCollector.ts +12 -14
- package/server/proxy/hostBasePathWebProxy.ts +20 -13
- package/server/proxy/index.ts +2 -3
- package/server/proxy/localeWebProxy.ts +3 -17
- package/server/proxy/types.ts +14 -0
- package/server/proxy/webProxyRunner.ts +13 -1
- package/server/resolver/CascadeRunner.ts +7 -23
- package/server/resolver/database.resolver.ts +57 -123
- package/server/resolver/service.resolver.ts +9 -161
- package/server/resolver/signal.resolver.ts +73 -98
- package/server/routeElementComposer.tsx +23 -52
- package/server/routeState.ts +15 -34
- package/server/routeTreeBuilder.ts +24 -83
- package/server/routing/apiRouter.ts +17 -49
- package/server/routing/appWsData.ts +4 -28
- package/server/routing/soloAppRoutes.ts +5 -5
- package/server/rscClient.tsx +31 -37
- package/server/rscClientFetch.ts +7 -3
- package/server/rscClientPatch.ts +4 -25
- package/server/rscHttp.ts +1 -1
- package/server/rscNavigationState.ts +10 -25
- package/server/rscPagePrompts.ts +4 -24
- package/server/rscSegmentOutlet.tsx +1 -5
- package/server/rscWorker.tsx +146 -285
- package/server/rscWorkerCache.ts +74 -8
- package/server/rscWorkerHost.ts +45 -192
- package/server/semaphore.ts +1 -1
- package/server/sitemap.ts +1 -3
- package/server/ssrFromRscRenderer.tsx +31 -124
- package/server/ssrTypes.ts +3 -29
- package/server/staticPath.ts +0 -16
- package/server/systemPageDocument.tsx +65 -2
- package/server/systemPages.tsx +4 -2
- package/server/tunnel/TunnelAgent.ts +237 -0
- package/server/tunnel/TunnelDataSocket.ts +146 -0
- package/server/tunnel/TunnelHttpStream.ts +86 -0
- package/server/tunnel/TunnelTcpStream.ts +96 -0
- package/server/tunnel/TunnelWebsocketStream.ts +110 -0
- package/server/tunnel/index.ts +6 -0
- package/server/tunnel/tunnelStream.ts +32 -0
- package/server/types.tsx +2 -9
- package/server/webRouter.ts +88 -306
- package/service/agent.service.ts +66 -35
- package/service/injectInfo.ts +106 -75
- package/service/ipcTypes.ts +4 -1
- package/service/liveSyncHub.ts +4 -34
- package/service/predefinedAdaptor/anthropicLlm.ts +65 -75
- package/service/predefinedAdaptor/cache.adaptor.ts +257 -75
- package/service/predefinedAdaptor/database.adaptor.ts +366 -108
- package/service/predefinedAdaptor/documentTransfer.ts +89 -0
- package/service/predefinedAdaptor/index.ts +2 -1
- package/service/predefinedAdaptor/insightQuery.ts +89 -79
- package/service/predefinedAdaptor/llm.adaptor.ts +64 -54
- package/service/predefinedAdaptor/llmOverflow.ts +63 -0
- package/service/predefinedAdaptor/openaiDialect.ts +56 -64
- package/service/predefinedAdaptor/openaiLlm.ts +24 -27
- package/service/predefinedAdaptor/queue.adaptor.ts +41 -22
- package/service/predefinedAdaptor/schedule.adaptor.ts +69 -9
- package/service/predefinedAdaptor/searchIndex.ts +76 -325
- package/service/predefinedAdaptor/solidCache.adaptor.ts +135 -12
- package/service/predefinedAdaptor/solidPubsub.adaptor.ts +28 -16
- package/service/predefinedAdaptor/solidQueue.adaptor.ts +61 -10
- package/service/predefinedAdaptor/solidSqlite.ts +10 -16
- package/service/predefinedAdaptor/sql/PendingStoreEnsures.ts +1 -0
- package/service/predefinedAdaptor/sql/PostgresInsightSession.ts +113 -0
- package/service/predefinedAdaptor/sql/QueryCompiler.ts +50 -30
- package/service/predefinedAdaptor/sql/SqlDocumentStore.ts +290 -138
- package/service/predefinedAdaptor/sql/SqliteInsightSession.ts +85 -0
- package/service/predefinedAdaptor/sql/UpdateCompiler.ts +1 -7
- package/service/predefinedAdaptor/sql/dialect/postgres.ts +138 -53
- package/service/predefinedAdaptor/sql/dialect/sqlite.ts +18 -15
- package/service/predefinedAdaptor/sql/driver/bunSqlite.ts +31 -4
- package/service/predefinedAdaptor/sql/driver/libsql.ts +20 -12
- package/service/predefinedAdaptor/sql/driver/postgres.ts +13 -7
- package/service/predefinedAdaptor/sql/search/fts5.ts +249 -0
- package/service/predefinedAdaptor/sql/search/mirror.ts +76 -0
- package/service/predefinedAdaptor/sql/search/postgres.ts +453 -0
- package/service/predefinedAdaptor/sql/search/types.ts +50 -0
- package/service/predefinedAdaptor/sql/types.ts +76 -17
- package/service/predefinedAdaptor/sql/values.ts +40 -2
- package/service/predefinedAdaptor/sqlitePath.ts +12 -0
- package/service/predefinedAdaptor/sseData.ts +23 -0
- package/service/predefinedAdaptor/storage.adaptor.ts +19 -7
- package/service/predefinedAdaptor/websocket.adaptor.ts +154 -184
- package/service/serve.ts +1 -2
- package/service/serviceModule.ts +52 -70
- package/service/toolNames.ts +5 -22
- package/service/types.ts +3 -9
- package/signal/CrossSiteGuard.ts +5 -40
- package/signal/SignalFailure.ts +2 -15
- package/signal/agent/AgentCatalogue.ts +9 -55
- package/signal/agent.signal.ts +9 -6
- package/signal/agentMeter.ts +45 -0
- package/signal/agentTurnStream.ts +48 -46
- package/signal/endpoint.ts +12 -2
- package/signal/endpointCache.ts +59 -0
- package/signal/endpointInfo.ts +13 -27
- package/signal/exception.ts +3 -34
- package/signal/guard.ts +4 -21
- package/signal/guards.ts +2 -10
- package/signal/index.ts +1 -0
- package/signal/internal.ts +3 -7
- package/signal/internalArg.ts +10 -13
- package/signal/internalInfo.ts +1 -1
- package/signal/mcp/McpDocument.ts +21 -90
- package/signal/mcp/McpProgress.ts +6 -19
- package/signal/mcp/McpUriTemplate.ts +1 -27
- package/signal/mcp/Msg.ts +13 -122
- package/signal/mcp/mcpProtocol.ts +3 -26
- package/signal/mcp/pagePrompt.ts +3 -9
- package/signal/middleware.ts +15 -65
- package/signal/openapi/openapi.ts +0 -4
- package/signal/schema/JsonSchemaBuilder.ts +32 -46
- package/signal/serializer/fetch.serializer.ts +37 -43
- package/signal/serverSignal.ts +6 -8
- package/signal/signalContext.ts +70 -161
- package/signal/signalRegistry.ts +11 -17
- package/signal/slice.ts +6 -12
- package/signal/sliceInfo.ts +5 -30
- package/signal/trace.ts +11 -84
- package/signal/types.ts +27 -57
- package/store/SliceRequest.ts +1 -11
- package/store/action.ts +153 -395
- package/store/actionTag.ts +1 -10
- package/store/agent/AgentBridge.ts +3 -25
- package/store/agent/AgentContext.ts +2 -9
- package/store/agent/AgentCursor.ts +160 -0
- package/store/agent/AgentPrompts.ts +0 -15
- package/store/agent/AgentVisual.ts +152 -0
- package/store/agent/ScreenFlash.ts +67 -0
- package/store/agent/ScreenReader.ts +3 -52
- package/store/agent/ScreenSettle.ts +1 -13
- package/store/agent/ScreenTarget.ts +15 -32
- package/store/agent/StoreCatalogue.ts +12 -24
- package/store/agent/StoreSurfaceSource.ts +35 -65
- package/store/agent/index.ts +4 -4
- package/store/agentic/AgentValue.ts +9 -26
- package/store/agentic/StExposeBuilder.ts +3 -12
- package/store/agentic/StExposeDraft.ts +0 -6
- package/store/agentic/StStateBuilder.ts +3 -11
- package/store/agentic/StStateDraft.ts +0 -5
- package/store/agentic/StToolBuilder.ts +48 -41
- package/store/agentic/StToolDraft.ts +0 -7
- package/store/agentic/attachAgentic.ts +2 -10
- package/store/agentic/formFields.ts +8 -42
- package/store/agentic/index.ts +1 -1
- package/store/agentic/useAgentReference.ts +31 -0
- package/store/agentic/useFieldTool.ts +176 -58
- package/store/agentic/useFormTools.ts +4 -21
- package/store/agentic/useRelationFieldTool.ts +2 -15
- package/store/databaseStateNames.ts +0 -9
- package/store/draftStore.ts +4 -54
- package/store/formSetterNames.ts +2 -19
- package/store/hooks.ts +1 -1
- package/store/liveInsert.ts +1 -30
- package/store/sliceKeys.ts +37 -0
- package/store/sliceRole.ts +1 -10
- package/store/state.ts +4 -50
- package/store/stateBuilder.ts +1 -23
- package/store/storeInstance.ts +21 -114
- package/store/storeRegistry.ts +1 -8
- package/store/types.ts +1 -1
- package/test/conformance.ts +299 -0
- package/test/index.ts +2 -2
- package/test/sampleOf.ts +52 -28
- package/test/signalTestRuntime.ts +6 -10
- package/test/testServer.ts +66 -31
- package/types/base/base.d.ts +2 -3
- package/types/base/baseEnv.d.ts +7 -10
- package/types/base/databaseModes.d.ts +28 -0
- package/types/base/index.d.ts +1 -0
- package/types/base/primitiveRegistry.d.ts +23 -10
- package/types/base/symbols.d.ts +1 -1
- package/types/capacitor.base.config.d.ts +1 -1
- package/types/client/cn.d.ts +3 -13
- package/types/client/cookie.d.ts +3 -12
- package/types/client/csrTypes.d.ts +6 -57
- package/types/client/decorators.d.ts +1 -1
- package/types/client/device.d.ts +2 -1
- package/types/client/index.d.ts +0 -1
- package/types/client/route/RootLayoutDefinition.d.ts +0 -1
- package/types/client/route/RouteDefinition.d.ts +4 -16
- package/types/client/route/resolveRouteModule.d.ts +1 -5
- package/types/client/router.d.ts +8 -4
- package/types/client/rscNavigation.d.ts +4 -5
- package/types/client/sharedContext.d.ts +2 -19
- package/types/client/storage.d.ts +1 -1
- package/types/client/types.d.ts +0 -3
- package/types/common/CodeAgentClient.d.ts +20 -0
- package/types/common/CodeTranscript.d.ts +72 -0
- package/types/common/Logger.d.ts +4 -20
- package/types/common/TrustedProxy.d.ts +2 -28
- package/types/common/applyMixins.d.ts +3 -0
- package/types/common/authToken.d.ts +0 -11
- package/types/common/capitalize.d.ts +1 -1
- package/types/common/clamp.d.ts +0 -1
- package/types/common/clientAddress.d.ts +1 -15
- package/types/common/codeAgentProfile.d.ts +115 -0
- package/types/common/codeAgentWire.d.ts +279 -0
- package/types/{server/routing → common}/eventStream.d.ts +0 -5
- package/types/common/fileUpload.d.ts +6 -11
- package/types/common/index.d.ts +20 -19
- package/types/common/interpolateTranslation.d.ts +1 -6
- package/types/common/isEmail.d.ts +0 -1
- package/types/common/isRecord.d.ts +1 -0
- package/types/common/isThenable.d.ts +0 -8
- package/types/common/logContext.d.ts +1 -1
- package/types/{ui/Agent → common}/markdownBlocks.d.ts +0 -3
- package/types/common/markdownSpans.d.ts +30 -0
- package/types/{ui/Agent → common}/markdownTable.d.ts +0 -2
- package/types/common/mcpExposure.d.ts +3 -23
- package/types/common/objectPath.d.ts +10 -0
- package/types/common/objectify.d.ts +7 -0
- package/types/common/phone.d.ts +2 -0
- package/types/common/randomPick.d.ts +1 -0
- package/types/common/requestOrigin.d.ts +0 -17
- package/types/common/restClient.d.ts +0 -7
- package/types/common/round.d.ts +1 -0
- package/types/common/routeConvention.d.ts +2 -5
- package/types/common/sleep.d.ts +0 -1
- package/types/common/subRoute.d.ts +4 -6
- package/types/common/toError.d.ts +1 -0
- package/types/common/tunnelWire.d.ts +161 -0
- package/types/common/types.d.ts +7 -7
- package/types/common/version.d.ts +6 -0
- package/types/common/websocketContract.d.ts +41 -0
- package/types/constant/cascadePaths.d.ts +2 -5
- package/types/constant/constantRegistry.d.ts +4 -4
- package/types/constant/dateSlot.d.ts +0 -5
- package/types/constant/fieldInfo.d.ts +2 -21
- package/types/constant/fieldQueryMeta.d.ts +2 -10
- package/types/constant/getDefault.d.ts +5 -7
- package/types/constant/hydrationPlan.d.ts +0 -8
- package/types/constant/index.d.ts +0 -1
- package/types/constant/labelOf.d.ts +1 -6
- package/types/constant/mask.d.ts +11 -36
- package/types/constant/serialize.d.ts +10 -2
- package/types/constant/types.d.ts +2 -6
- package/types/constant/via.d.ts +0 -1
- package/types/dictionary/DictionaryLookup.d.ts +1 -7
- package/types/dictionary/agent.dictionary.d.ts +2 -1
- package/types/dictionary/base.dictionary.d.ts +1 -1
- package/types/dictionary/dictInfo.d.ts +25 -92
- package/types/dictionary/dictShape.d.ts +26 -0
- package/types/dictionary/dictionary.d.ts +9 -9
- package/types/dictionary/dictionaryRegistry.d.ts +1 -15
- package/types/dictionary/locale.d.ts +9 -28
- package/types/dictionary/trans.d.ts +5 -14
- package/types/document/dataLoader.d.ts +2 -2
- package/types/document/database.d.ts +21 -14
- package/types/document/documentQuery.d.ts +6 -1
- package/types/document/documentSchema.d.ts +3 -7
- package/types/document/filterMeta.d.ts +3 -8
- package/types/document/index.d.ts +0 -1
- package/types/document/into.d.ts +3 -2
- package/types/document/loaderInfo.d.ts +9 -4
- package/types/document/noDocumentError.d.ts +2 -7
- package/types/document/queryEvaluator.d.ts +7 -24
- package/types/document/types.d.ts +0 -1
- package/types/fetch/client/fetchClient.d.ts +6 -9
- package/types/fetch/client/fetchHandle.d.ts +3 -11
- package/types/fetch/client/httpClient.d.ts +5 -1
- package/types/fetch/client/remoteError.d.ts +2 -8
- package/types/fetch/client/sliceInitHandle.d.ts +2 -5
- package/types/fetch/client/sliceQueryArgs.d.ts +3 -0
- package/types/fetch/client/wsClient.d.ts +10 -15
- package/types/fetch/fetchType/appliedReturn.type.d.ts +5 -23
- package/types/fetch/fetchType/buildFetch.type.d.ts +15 -1
- package/types/fetch/fetchType/index.d.ts +0 -1
- package/types/fetch/requestStorage.d.ts +3 -16
- package/types/fetch/types.d.ts +0 -1
- package/types/index.d.ts +30 -64
- package/types/server/akanApp.d.ts +5 -28
- package/types/server/akanAppHeaders.d.ts +0 -1
- package/types/server/akanOption.d.ts +12 -24
- package/types/server/akanServer.d.ts +16 -56
- package/types/server/animatedImage.d.ts +0 -6
- package/types/server/artifact/builderRpc.d.ts +7 -30
- package/types/server/artifact/index.d.ts +0 -1
- package/types/server/artifact/ipcTypes.d.ts +22 -29
- package/types/server/artifact/routeClientCache.d.ts +3 -11
- package/types/server/artifact/routeSeedIndexStore.d.ts +0 -16
- package/types/server/artifact/routesManifestStore.d.ts +1 -1
- package/types/server/binaryPubsub.d.ts +0 -8
- package/types/server/cachePolicy.d.ts +2 -21
- package/types/server/console.d.ts +3 -6
- package/types/server/consoleSession.d.ts +2 -2
- package/types/server/contentEncoding.d.ts +6 -14
- package/types/server/decorators.d.ts +0 -12
- package/types/server/devtools/constantSerializer.d.ts +1 -6
- package/types/server/devtools/depsSerializer.d.ts +1 -7
- package/types/server/devtools/devtoolsJson.d.ts +1 -7
- package/types/server/devtools/devtoolsRouter.d.ts +2 -11
- package/types/server/devtools/signalSerializer.d.ts +1 -9
- package/types/server/devtools/types.d.ts +0 -11
- package/types/server/di/diLifecycle.d.ts +0 -36
- package/types/server/di/predefinedAdaptor.d.ts +3 -2
- package/types/server/di/resolveHierarchy.d.ts +22 -5
- package/types/server/di/utils.d.ts +4 -17
- package/types/server/head.d.ts +9 -0
- package/types/server/hmr/devHmrController.d.ts +0 -2
- package/types/server/hmr/wsHub.d.ts +6 -1
- package/types/server/index.d.ts +1 -1
- package/types/server/lifecycle/portInUse.d.ts +1 -4
- package/types/server/lifecycle/runtimeDir.d.ts +0 -4
- package/types/server/lifecycle/shutdownManager.d.ts +0 -9
- package/types/server/logging/childOutputReader.d.ts +0 -12
- package/types/server/logging/hubFileSink.d.ts +1 -5
- package/types/server/logging/logControlSocket.d.ts +2 -7
- package/types/server/logging/logForwarder.d.ts +3 -15
- package/types/server/logging/logHub.d.ts +1 -15
- package/types/server/logging/logQuery.d.ts +3 -6
- package/types/server/logging/logStdoutWriter.d.ts +0 -6
- package/types/server/logging/logStreamRoute.d.ts +0 -9
- package/types/server/logging/logTailClient.d.ts +0 -5
- package/types/server/mcp/McpAuth.d.ts +3 -71
- package/types/server/mcp/McpDispatcher.d.ts +0 -23
- package/types/server/mcp/McpEventStream.d.ts +1 -12
- package/types/server/mcp/McpExecutionContext.d.ts +0 -33
- package/types/server/mcp/McpRateLimiter.d.ts +10 -13
- package/types/server/mcp/McpRouter.d.ts +1 -47
- package/types/server/mcp/PagePromptComposer.d.ts +1 -13
- package/types/server/memoryLimit.d.ts +1 -13
- package/types/server/oauth/OAuthAuthorize.d.ts +1 -6
- package/types/server/oauth/OAuthClientIdMetadata.d.ts +2 -26
- package/types/server/oauth/OAuthErrors.d.ts +0 -13
- package/types/server/oauth/OAuthMetadata.d.ts +1 -7
- package/types/server/oauth/OAuthPkce.d.ts +0 -1
- package/types/server/oauth/OAuthRedirect.d.ts +0 -9
- package/types/server/oauth/OAuthRegistration.d.ts +0 -1
- package/types/server/oauth/OAuthRevocation.d.ts +1 -11
- package/types/server/oauth/OAuthToken.d.ts +1 -13
- package/types/server/oauth/oauthTypes.d.ts +1 -2
- package/types/server/ops/ageEncryption.d.ts +19 -0
- package/types/server/ops/appInfo.d.ts +36 -0
- package/types/server/ops/opsCommand.d.ts +5 -0
- package/types/server/ops/opsRoute.d.ts +24 -0
- package/types/server/ops/opsToken.d.ts +26 -0
- package/types/server/ops/snapshotJobs.d.ts +24 -0
- package/types/server/ops/snapshotRestore.d.ts +24 -0
- package/types/server/ops/snapshotTypes.d.ts +45 -0
- package/types/server/ops/sqliteFiles.d.ts +5 -0
- package/types/server/ops/sqliteSnapshot.d.ts +32 -0
- package/types/server/processMetricsCollector.d.ts +3 -1
- package/types/server/proxy/hostBasePathWebProxy.d.ts +7 -1
- package/types/server/proxy/index.d.ts +2 -3
- package/types/server/proxy/localeWebProxy.d.ts +1 -1
- package/types/server/proxy/types.d.ts +5 -0
- package/types/server/proxy/webProxyRunner.d.ts +1 -0
- package/types/server/resolver/CascadeRunner.d.ts +0 -4
- package/types/server/resolver/database.resolver.d.ts +1 -1
- package/types/server/resolver/service.resolver.d.ts +2 -2
- package/types/server/resolver/signal.resolver.d.ts +1 -15
- package/types/server/routeElementComposer.d.ts +2 -8
- package/types/server/routeState.d.ts +1 -1
- package/types/server/routing/apiRouter.d.ts +2 -20
- package/types/server/routing/appWsData.d.ts +0 -26
- package/types/server/routing/soloAppRoutes.d.ts +2 -6
- package/types/server/rscClient.d.ts +0 -9
- package/types/server/rscClientFetch.d.ts +6 -6
- package/types/server/rscClientPatch.d.ts +1 -1
- package/types/server/rscHttp.d.ts +1 -0
- package/types/server/rscNavigationState.d.ts +3 -2
- package/types/server/rscPagePrompts.d.ts +0 -9
- package/types/server/rscWorkerCache.d.ts +41 -3
- package/types/server/rscWorkerHost.d.ts +5 -61
- package/types/server/ssrFromRscRenderer.d.ts +0 -12
- package/types/server/ssrTypes.d.ts +2 -29
- package/types/server/staticPath.d.ts +0 -16
- package/types/server/systemPageDocument.d.ts +8 -0
- package/types/server/systemPages.d.ts +2 -3
- package/types/server/tunnel/TunnelAgent.d.ts +29 -0
- package/types/server/tunnel/TunnelDataSocket.d.ts +22 -0
- package/types/server/tunnel/TunnelHttpStream.d.ts +10 -0
- package/types/server/tunnel/TunnelTcpStream.d.ts +11 -0
- package/types/server/tunnel/TunnelWebsocketStream.d.ts +10 -0
- package/types/server/tunnel/index.d.ts +6 -0
- package/types/server/tunnel/tunnelStream.d.ts +19 -0
- package/types/server/tunnel.d.ts +1 -0
- package/types/server/types.d.ts +2 -9
- package/types/server/webRouter.d.ts +2 -19
- package/types/service/agent.service.d.ts +16 -29
- package/types/service/injectInfo.d.ts +26 -15
- package/types/service/ipcTypes.d.ts +6 -0
- package/types/service/liveSyncHub.d.ts +4 -22
- package/types/service/predefinedAdaptor/anthropicLlm.d.ts +20 -29
- package/types/service/predefinedAdaptor/cache.adaptor.d.ts +42 -12
- package/types/service/predefinedAdaptor/database.adaptor.d.ts +20 -16
- package/types/service/predefinedAdaptor/documentTransfer.d.ts +15 -0
- package/types/service/predefinedAdaptor/index.d.ts +2 -1
- package/types/service/predefinedAdaptor/insightQuery.d.ts +7 -30
- package/types/service/predefinedAdaptor/llm.adaptor.d.ts +54 -54
- package/types/service/predefinedAdaptor/llmOverflow.d.ts +16 -0
- package/types/service/predefinedAdaptor/openaiDialect.d.ts +19 -29
- package/types/service/predefinedAdaptor/openaiLlm.d.ts +9 -14
- package/types/service/predefinedAdaptor/queue.adaptor.d.ts +12 -7
- package/types/service/predefinedAdaptor/schedule.adaptor.d.ts +7 -2
- package/types/service/predefinedAdaptor/searchIndex.d.ts +17 -47
- package/types/service/predefinedAdaptor/solidCache.adaptor.d.ts +15 -6
- package/types/service/predefinedAdaptor/solidPubsub.adaptor.d.ts +6 -4
- package/types/service/predefinedAdaptor/solidSqlite.d.ts +2 -1
- package/types/service/predefinedAdaptor/sql/PostgresInsightSession.d.ts +20 -0
- package/types/service/predefinedAdaptor/sql/QueryCompiler.d.ts +9 -11
- package/types/service/predefinedAdaptor/sql/SqlDocumentStore.d.ts +11 -25
- package/types/service/predefinedAdaptor/sql/SqliteInsightSession.d.ts +15 -0
- package/types/service/predefinedAdaptor/sql/UpdateCompiler.d.ts +0 -4
- package/types/service/predefinedAdaptor/sql/dialect/postgres.d.ts +18 -10
- package/types/service/predefinedAdaptor/sql/dialect/sqlite.d.ts +5 -2
- package/types/service/predefinedAdaptor/sql/driver/bunSqlite.d.ts +9 -3
- package/types/service/predefinedAdaptor/sql/driver/libsql.d.ts +8 -5
- package/types/service/predefinedAdaptor/sql/driver/postgres.d.ts +4 -4
- package/types/service/predefinedAdaptor/sql/search/fts5.d.ts +28 -0
- package/types/service/predefinedAdaptor/sql/search/mirror.d.ts +20 -0
- package/types/service/predefinedAdaptor/sql/search/postgres.d.ts +53 -0
- package/types/service/predefinedAdaptor/sql/search/types.d.ts +45 -0
- package/types/service/predefinedAdaptor/sql/types.d.ts +69 -15
- package/types/service/predefinedAdaptor/sql/values.d.ts +8 -0
- package/types/service/predefinedAdaptor/sqlitePath.d.ts +1 -0
- package/types/service/predefinedAdaptor/sseData.d.ts +1 -0
- package/types/service/predefinedAdaptor/storage.adaptor.d.ts +3 -2
- package/types/service/predefinedAdaptor/websocket.adaptor.d.ts +26 -26
- package/types/service/serviceModule.d.ts +7 -7
- package/types/service/toolNames.d.ts +4 -21
- package/types/service/types.d.ts +3 -3
- package/types/signal/CrossSiteGuard.d.ts +3 -28
- package/types/signal/SignalFailure.d.ts +1 -15
- package/types/signal/agent/AgentCatalogue.d.ts +8 -54
- package/types/signal/agent.signal.d.ts +4 -1
- package/types/signal/agentMeter.d.ts +24 -0
- package/types/signal/agentTurnStream.d.ts +10 -11
- package/types/signal/endpoint.d.ts +0 -1
- package/types/signal/endpointCache.d.ts +5 -0
- package/types/signal/endpointInfo.d.ts +1 -9
- package/types/signal/exception.d.ts +1 -34
- package/types/signal/guard.d.ts +4 -15
- package/types/signal/guards.d.ts +2 -10
- package/types/signal/index.d.ts +1 -0
- package/types/signal/internal.d.ts +1 -5
- package/types/signal/internalArg.d.ts +7 -13
- package/types/signal/mcp/McpDocument.d.ts +5 -45
- package/types/signal/mcp/McpProgress.d.ts +6 -19
- package/types/signal/mcp/McpUriTemplate.d.ts +1 -19
- package/types/signal/mcp/Msg.d.ts +13 -70
- package/types/signal/mcp/mcpProtocol.d.ts +1 -26
- package/types/signal/mcp/pagePrompt.d.ts +3 -9
- package/types/signal/middleware.d.ts +0 -18
- package/types/signal/schema/JsonSchemaBuilder.d.ts +15 -43
- package/types/signal/serializer/fetch.serializer.d.ts +1 -6
- package/types/signal/serverSignal.d.ts +0 -1
- package/types/signal/signalContext.d.ts +14 -61
- package/types/signal/signalRegistry.d.ts +0 -1
- package/types/signal/slice.d.ts +3 -9
- package/types/signal/sliceInfo.d.ts +5 -30
- package/types/signal/trace.d.ts +2 -30
- package/types/signal/types.d.ts +27 -57
- package/types/store/SliceRequest.d.ts +1 -11
- package/types/store/action.d.ts +2 -6
- package/types/store/actionTag.d.ts +1 -10
- package/types/store/agent/AgentBridge.d.ts +3 -22
- package/types/store/agent/AgentContext.d.ts +1 -7
- package/types/store/agent/AgentCursor.d.ts +24 -0
- package/types/store/agent/AgentPrompts.d.ts +0 -5
- package/types/store/agent/AgentVisual.d.ts +25 -0
- package/types/store/agent/ScreenFlash.d.ts +23 -0
- package/types/store/agent/ScreenReader.d.ts +3 -26
- package/types/store/agent/ScreenSettle.d.ts +1 -12
- package/types/store/agent/ScreenTarget.d.ts +3 -23
- package/types/store/agent/StoreCatalogue.d.ts +12 -16
- package/types/store/agent/StoreSurfaceSource.d.ts +11 -23
- package/types/store/agent/index.d.ts +4 -3
- package/types/store/agentic/AgentValue.d.ts +3 -23
- package/types/store/agentic/StExposeBuilder.d.ts +2 -11
- package/types/store/agentic/StExposeDraft.d.ts +0 -6
- package/types/store/agentic/StStateBuilder.d.ts +1 -7
- package/types/store/agentic/StStateDraft.d.ts +0 -5
- package/types/store/agentic/StToolBuilder.d.ts +14 -37
- package/types/store/agentic/StToolDraft.d.ts +0 -7
- package/types/store/agentic/attachAgentic.d.ts +2 -10
- package/types/store/agentic/formFields.d.ts +5 -41
- package/types/store/agentic/index.d.ts +1 -1
- package/types/store/agentic/useAgentReference.d.ts +14 -0
- package/types/store/agentic/useFieldTool.d.ts +19 -16
- package/types/store/agentic/useFormTools.d.ts +1 -18
- package/types/store/agentic/useRelationFieldTool.d.ts +1 -14
- package/types/store/baseSt.d.ts +2 -2
- package/types/store/databaseStateNames.d.ts +0 -9
- package/types/store/draftStore.d.ts +4 -30
- package/types/store/formSetterNames.d.ts +0 -19
- package/types/store/hooks.d.ts +1 -1
- package/types/store/liveInsert.d.ts +0 -23
- package/types/store/sliceKeys.d.ts +31 -0
- package/types/store/sliceRole.d.ts +1 -10
- package/types/store/state.d.ts +2 -9
- package/types/store/stateBuilder.d.ts +0 -14
- package/types/store/storeInstance.d.ts +6 -20
- package/types/store/storeRegistry.d.ts +0 -2
- package/types/test/conformance.d.ts +73 -0
- package/types/test/index.d.ts +2 -2
- package/types/test/sampleOf.d.ts +17 -2
- package/types/test/signalTestRuntime.d.ts +1 -1
- package/types/test/testServer.d.ts +4 -3
- package/types/ui/Agent/Attach.d.ts +2 -2
- package/types/ui/Agent/Bubble.d.ts +3 -14
- package/types/ui/Agent/Chat.d.ts +31 -64
- package/types/ui/Agent/ChatCommands.d.ts +4 -14
- package/types/ui/Agent/Composer.d.ts +18 -5
- package/types/ui/Agent/Dock.d.ts +38 -10
- package/types/ui/Agent/Guide.d.ts +1 -5
- package/types/ui/Agent/History.d.ts +1 -18
- package/types/ui/Agent/Launcher.d.ts +2 -2
- package/types/ui/Agent/Markdown.d.ts +2 -6
- package/types/ui/Agent/MentionNode.d.ts +18 -0
- package/types/ui/Agent/Menu.d.ts +4 -4
- package/types/ui/Agent/Question.d.ts +1 -6
- package/types/ui/Agent/Queued.d.ts +1 -6
- package/types/ui/Agent/Refer.d.ts +9 -0
- package/types/ui/Agent/RichInput.d.ts +14 -0
- package/types/ui/Agent/Skip.d.ts +3 -15
- package/types/ui/Agent/Steps.d.ts +17 -0
- package/types/ui/Agent/ToolCard.d.ts +9 -0
- package/types/ui/Agent/Zone.d.ts +13 -30
- package/types/ui/Agent/agentSessionOf.d.ts +20 -16
- package/types/ui/Agent/attachment.d.ts +4 -38
- package/types/ui/Agent/fetchRunner.d.ts +1 -8
- package/types/ui/Agent/index.d.ts +2 -6
- package/types/ui/Agent/mentionDraft.d.ts +9 -0
- package/types/ui/Agent/tokenCount.d.ts +1 -5
- package/types/ui/Agent/useChatAttachments.d.ts +0 -5
- package/types/ui/Agent/useChatQueue.d.ts +3 -14
- package/types/ui/Agent/useChatReferences.d.ts +15 -0
- package/types/ui/Agent/useChatVoice.d.ts +0 -12
- package/types/ui/Agent/useDraftRecall.d.ts +0 -8
- package/types/ui/Agent/useKeyboardInset.d.ts +0 -7
- package/types/ui/Agent/useReferenceMenu.d.ts +35 -0
- package/types/ui/Agent/useSlashMenu.d.ts +0 -2
- package/types/ui/Agent/voice.d.ts +8 -42
- package/types/ui/Badge.d.ts +0 -1
- package/types/ui/BottomSheet.d.ts +2 -5
- package/types/ui/Button.d.ts +6 -23
- package/types/ui/ClientSide.d.ts +0 -2
- package/types/ui/Constant/schemaGraph.d.ts +0 -4
- package/types/ui/Copy.d.ts +2 -3
- package/types/ui/CsrImage.d.ts +2 -1
- package/types/ui/Data/Dashboard.d.ts +1 -4
- package/types/ui/Data/Item.d.ts +1 -1
- package/types/ui/Data/ListContainer.d.ts +1 -10
- package/types/ui/Data/Pagination.d.ts +0 -2
- package/types/ui/Data/QueryMaker.d.ts +0 -7
- package/types/ui/Data/RefPicker.d.ts +0 -7
- package/types/ui/DatePicker.d.ts +0 -11
- package/types/ui/Dialog/LegacyModal.d.ts +1 -4
- package/types/ui/Dialog/Provider.d.ts +37 -4
- package/types/ui/Dialog/index.d.ts +4 -4
- package/types/ui/Dropdown.d.ts +1 -9
- package/types/ui/Empty.d.ts +3 -10
- package/types/ui/Field/Collection.d.ts +1 -16
- package/types/ui/Field/Relation.d.ts +10 -37
- package/types/ui/Field/Text.d.ts +9 -66
- package/types/ui/Field/index.d.ts +0 -9
- package/types/ui/Field/lightRefCache.d.ts +11 -0
- package/types/ui/Field/useRelationOptions.d.ts +28 -0
- package/types/ui/Image.d.ts +8 -12
- package/types/ui/InfiniteScroll.d.ts +2 -6
- package/types/ui/Input.d.ts +8 -15
- package/types/ui/Layout/Role.d.ts +23 -0
- package/types/ui/Layout/Sider.d.ts +21 -0
- package/types/ui/Layout/TopInset.d.ts +5 -0
- package/types/ui/Layout/index.d.ts +7 -7
- package/types/ui/LegacyModal.d.ts +1 -12
- package/types/ui/Link/Action.d.ts +11 -0
- package/types/ui/Link/Anchor.d.ts +20 -0
- package/types/ui/Link/index.d.ts +4 -7
- package/types/ui/Load/Edit_Client.d.ts +1 -1
- package/types/ui/Load/Page.d.ts +3 -5
- package/types/ui/Load/Stream.d.ts +0 -12
- package/types/ui/Load/Units.d.ts +1 -1
- package/types/ui/Load/View.d.ts +2 -7
- package/types/ui/Loading/ProgressBar.d.ts +0 -4
- package/types/ui/Loading/Skeleton.d.ts +2 -0
- package/types/ui/Loading/Spin.d.ts +12 -2
- package/types/ui/Loading/index.d.ts +3 -8
- package/types/ui/Loading/index_.d.ts +3 -10
- package/types/ui/Menu.d.ts +0 -5
- package/types/ui/Modal.d.ts +0 -17
- package/types/ui/Model/AdminPanel.d.ts +1 -4
- package/types/ui/Model/DraftBar.d.ts +2 -7
- package/types/ui/Model/EditModal.d.ts +7 -22
- package/types/ui/Model/LoadStore.d.ts +18 -0
- package/types/ui/Model/Remove.d.ts +0 -2
- package/types/ui/Model/SureToRemove.d.ts +0 -3
- package/types/ui/Model/ViewEditModal.d.ts +0 -2
- package/types/ui/Model/draftScope.d.ts +0 -7
- package/types/ui/Model/index.d.ts +2 -2
- package/types/ui/Model/index_.d.ts +2 -2
- package/types/ui/Pagination.d.ts +4 -12
- package/types/ui/Popconfirm.d.ts +3 -17
- package/types/ui/Radio.d.ts +0 -4
- package/types/ui/RecentTime.d.ts +5 -9
- package/types/ui/Reference/Panel.d.ts +44 -6
- package/types/ui/Reference/Segmented.d.ts +0 -3
- package/types/ui/Reference/{style.d.ts → docUi.d.ts} +6 -2
- package/types/ui/Reference/index.d.ts +3 -7
- package/types/ui/Refresh.d.ts +1 -1
- package/types/ui/ScreenNavigator.d.ts +2 -2
- package/types/ui/Select.d.ts +4 -19
- package/types/ui/Signal/Endpoint.d.ts +43 -0
- package/types/ui/Signal/WebSocket.d.ts +23 -0
- package/types/ui/Signal/endpointEntries.d.ts +2 -4
- package/types/ui/Signal/index.d.ts +1 -3
- package/types/ui/Signal/style.d.ts +1 -2
- package/types/ui/Switch.d.ts +1 -5
- package/types/ui/System/CSR.d.ts +2 -2
- package/types/ui/System/Client.d.ts +2 -6
- package/types/ui/System/Common.d.ts +11 -22
- package/types/ui/System/Root.d.ts +1 -4
- package/types/ui/System/SSR.d.ts +2 -2
- package/types/ui/System/ThemeToggle.d.ts +1 -0
- package/types/ui/System/index.d.ts +1 -0
- package/types/ui/Tab/Provider.d.ts +24 -4
- package/types/ui/Tab/index.d.ts +3 -3
- package/types/ui/Table.d.ts +7 -23
- package/types/ui/Toast.d.ts +9 -16
- package/types/ui/ToggleSelect.d.ts +0 -5
- package/types/ui/Tooltip.d.ts +1 -2
- package/types/ui/UiOverride/{context.d.ts → UiOverride.d.ts} +24 -40
- package/types/ui/UiOverride/index.d.ts +2 -5
- package/types/ui/UiOverride/override.d.ts +2 -18
- package/types/ui/Unauthorized.d.ts +0 -6
- package/types/ui/agentAttrs.d.ts +4 -11
- package/types/ui/index.d.ts +9 -5
- package/types/ui/overlayLayer.d.ts +4 -24
- package/types/ui/overlayPosition.d.ts +0 -12
- package/types/ui/recipe/badgeRecipe.d.ts +2 -2
- package/types/ui/recipe/buttonRecipe.d.ts +2 -2
- package/types/ui/recipe/factory.d.ts +1 -21
- package/types/ui/recipe/index.d.ts +0 -14
- package/types/ui/recipe/inputRecipe.d.ts +3 -3
- package/types/ui/sliceNamesOf.d.ts +78 -0
- package/types/ui/triggerSlot.d.ts +2 -12
- package/types/vendor/use-agentic/AgentProgress.d.ts +12 -0
- package/types/vendor/use-agentic/AgentSession.d.ts +94 -2
- package/types/vendor/use-agentic/Compaction.d.ts +42 -5
- package/types/vendor/use-agentic/Reference.d.ts +56 -0
- package/types/vendor/use-agentic/ToolRunner.d.ts +31 -1
- package/types/vendor/use-agentic/Transcript.d.ts +4 -1
- package/types/vendor/use-agentic/index.d.ts +1 -0
- package/types/vendor/use-agentic/types.d.ts +109 -7
- package/types/webkit/RenderLayer.d.ts +11 -0
- package/types/webkit/index.d.ts +1 -2
- package/types/webkit/lazy.d.ts +3 -12
- package/types/webkit/{createRobotPage.d.ts → seoPages.d.ts} +4 -0
- package/types/webkit/useBodyScrollLock.d.ts +0 -1
- package/types/webkit/useCamera.d.ts +1 -1
- package/types/webkit/useContact.d.ts +1 -1
- package/types/webkit/useDebounce.d.ts +0 -1
- package/types/webkit/useEscapeKey.d.ts +1 -4
- package/types/webkit/useFetch.d.ts +1 -6
- package/types/webkit/useFrameRuntime.d.ts +1 -1
- package/types/webkit/useGeoLocation.d.ts +1 -1
- package/types/webkit/usePageTool.d.ts +2 -9
- package/types/webkit/usePurchase.d.ts +1 -4
- package/types/webkit/useScreenScope.d.ts +2 -13
- package/ui/Agent/Attach.tsx +5 -4
- package/ui/Agent/Bubble.tsx +51 -31
- package/ui/Agent/Chat.tsx +114 -102
- package/ui/Agent/ChatCommands.ts +5 -21
- package/ui/Agent/Composer.tsx +110 -28
- package/ui/Agent/Dock.tsx +176 -16
- package/ui/Agent/Guide.tsx +1 -5
- package/ui/Agent/History.tsx +1 -18
- package/ui/Agent/Launcher.tsx +2 -2
- package/ui/Agent/Markdown.tsx +40 -14
- package/ui/Agent/MentionNode.ts +54 -0
- package/ui/Agent/Menu.tsx +8 -5
- package/ui/Agent/Question.tsx +1 -6
- package/ui/Agent/Queued.tsx +3 -6
- package/ui/Agent/Refer.tsx +40 -0
- package/ui/Agent/RichInput.tsx +146 -0
- package/ui/Agent/Skip.tsx +3 -15
- package/ui/Agent/Steps.tsx +33 -0
- package/ui/Agent/ToolCard.tsx +32 -0
- package/ui/Agent/Zone.tsx +15 -31
- package/ui/Agent/agentSessionOf.ts +115 -15
- package/ui/Agent/attachment.ts +5 -42
- package/ui/Agent/fetchRunner.ts +3 -15
- package/ui/Agent/index.ts +1 -6
- package/ui/Agent/mentionDraft.ts +91 -0
- package/ui/Agent/tokenCount.ts +1 -5
- package/ui/Agent/useChatAttachments.ts +2 -9
- package/ui/Agent/useChatQueue.ts +12 -14
- package/ui/Agent/useChatReferences.ts +51 -0
- package/ui/Agent/useChatVoice.ts +2 -23
- package/ui/Agent/useDraftRecall.ts +0 -9
- package/ui/Agent/useKeyboardInset.ts +0 -7
- package/ui/Agent/useReferenceMenu.ts +93 -0
- package/ui/Agent/useSlashMenu.ts +0 -3
- package/ui/Agent/voice.ts +8 -43
- package/ui/Badge.tsx +0 -2
- package/ui/BottomSheet.tsx +2 -5
- package/ui/Button.tsx +9 -45
- package/ui/ClientSide.tsx +0 -2
- package/ui/Clipboard.tsx +0 -1
- package/ui/Constant/Doc.tsx +274 -265
- package/ui/Constant/Graph.tsx +11 -3
- package/ui/Constant/schemaGraph.ts +0 -9
- package/ui/Copy.tsx +2 -3
- package/ui/CsrImage.tsx +9 -9
- package/ui/Data/CardList.tsx +2 -17
- package/ui/Data/Dashboard.tsx +2 -5
- package/ui/Data/Item.tsx +2 -3
- package/ui/Data/ListContainer.tsx +15 -61
- package/ui/Data/Pagination.tsx +3 -22
- package/ui/Data/QueryMaker.tsx +1 -8
- package/ui/Data/RefPicker.tsx +1 -8
- package/ui/Data/TableList.tsx +2 -15
- package/ui/DatePicker.tsx +1 -12
- package/ui/Dialog/LegacyModal.tsx +3 -7
- package/ui/Dialog/Modal.tsx +3 -4
- package/ui/Dialog/Provider.tsx +85 -7
- package/ui/Dialog/index.tsx +1 -5
- package/ui/DraggableList.tsx +1 -4
- package/ui/Dropdown.tsx +4 -17
- package/ui/Empty.tsx +4 -12
- package/ui/Field/Choice.tsx +1 -1
- package/ui/Field/Collection.tsx +7 -29
- package/ui/Field/DateField.tsx +2 -7
- package/ui/Field/Label.tsx +0 -1
- package/ui/Field/NumberField.tsx +0 -1
- package/ui/Field/Relation.tsx +79 -199
- package/ui/Field/Text.tsx +25 -86
- package/ui/Field/index.tsx +0 -9
- package/ui/Field/lightRefCache.ts +61 -0
- package/ui/Field/useRelationOptions.ts +97 -0
- package/ui/Image.tsx +35 -65
- package/ui/InfiniteScroll.tsx +3 -21
- package/ui/Input.tsx +82 -174
- package/ui/Layout/Role.tsx +42 -0
- package/ui/Layout/Sider.tsx +82 -1
- package/ui/Layout/TopInset.tsx +23 -1
- package/ui/Layout/index.ts +3 -9
- package/ui/LegacyModal.tsx +1 -12
- package/ui/Link/Action.tsx +29 -0
- package/ui/Link/Anchor.tsx +118 -0
- package/ui/Link/index.tsx +7 -8
- package/ui/Load/Edit_Client.tsx +2 -37
- package/ui/Load/Page.tsx +3 -6
- package/ui/Load/Pagination.tsx +4 -19
- package/ui/Load/Stream.tsx +0 -12
- package/ui/Load/Units.tsx +13 -86
- package/ui/Load/View.tsx +4 -21
- package/ui/Loading/ProgressBar.tsx +0 -4
- package/ui/Loading/Skeleton.tsx +14 -0
- package/ui/Loading/Spin.tsx +34 -5
- package/ui/Loading/index.ts +0 -5
- package/ui/Loading/index_.tsx +2 -12
- package/ui/Menu.tsx +3 -21
- package/ui/Modal.tsx +0 -17
- package/ui/Model/AdminPanel.tsx +2 -5
- package/ui/Model/DraftBar.tsx +3 -14
- package/ui/Model/EditModal.tsx +11 -48
- package/ui/Model/EditWrapper.tsx +2 -3
- package/ui/Model/LoadStore.tsx +18 -0
- package/ui/Model/NewWrapper_Client.tsx +1 -1
- package/ui/Model/Remove.tsx +4 -12
- package/ui/Model/RemoveWrapper.tsx +2 -3
- package/ui/Model/SureToRemove.tsx +4 -13
- package/ui/Model/ViewEditModal.tsx +0 -6
- package/ui/Model/ViewModal.tsx +1 -5
- package/ui/Model/ViewWrapper.tsx +1 -2
- package/ui/Model/draftScope.ts +0 -7
- package/ui/Model/index_.tsx +2 -22
- package/ui/Pagination.tsx +4 -12
- package/ui/Popconfirm.tsx +3 -18
- package/ui/Portal.tsx +2 -3
- package/ui/Radio.tsx +1 -5
- package/ui/RecentTime.tsx +19 -31
- package/ui/Reference/Panel.tsx +102 -6
- package/ui/Reference/Segmented.tsx +5 -11
- package/ui/Reference/{style.ts → docUi.ts} +10 -2
- package/ui/Reference/index.ts +3 -7
- package/ui/Refresh.tsx +79 -13
- package/ui/ScreenNavigator.tsx +8 -13
- package/ui/Select.tsx +29 -37
- package/ui/Signal/Endpoint.tsx +154 -0
- package/ui/Signal/Listener.tsx +1 -4
- package/ui/Signal/Object.tsx +67 -73
- package/ui/Signal/RestApi.tsx +30 -76
- package/ui/Signal/WebSocket.tsx +253 -2
- package/ui/Signal/endpointEntries.ts +3 -5
- package/ui/Signal/index.ts +1 -3
- package/ui/Signal/style.ts +1 -2
- package/ui/Switch.tsx +1 -5
- package/ui/System/CSR.tsx +29 -109
- package/ui/System/Client.tsx +15 -19
- package/ui/System/Common.tsx +31 -22
- package/ui/System/Messages.tsx +2 -2
- package/ui/System/Reconnect.tsx +1 -6
- package/ui/System/Root.tsx +1 -4
- package/ui/System/SSR.tsx +10 -16
- package/ui/System/ThemeToggle.tsx +15 -0
- package/ui/System/index.tsx +2 -2
- package/ui/Tab/Provider.tsx +115 -7
- package/ui/Tab/index.tsx +1 -4
- package/ui/Table.tsx +7 -23
- package/ui/Toast.tsx +9 -16
- package/ui/ToggleSelect.tsx +10 -24
- package/ui/Tooltip.tsx +2 -8
- package/ui/UiOverride/{context.ts → UiOverride.tsx} +54 -42
- package/ui/UiOverride/index.ts +9 -6
- package/ui/UiOverride/override.ts +2 -18
- package/ui/Unauthorized.tsx +1 -8
- package/ui/agentAttrs.ts +9 -12
- package/ui/index.ts +20 -5
- package/ui/overlayLayer.ts +4 -25
- package/ui/overlayPosition.ts +2 -14
- package/ui/recipe/badgeRecipe.ts +1 -1
- package/ui/recipe/buttonRecipe.ts +4 -4
- package/ui/recipe/factory.ts +1 -22
- package/ui/recipe/index.ts +1 -14
- package/ui/recipe/inputRecipe.ts +2 -2
- package/ui/sliceNamesOf.ts +26 -0
- package/ui/styles.css +195 -1
- package/ui/triggerSlot.tsx +2 -12
- package/vendor/use-agentic/AgentProgress.ts +13 -1
- package/vendor/use-agentic/AgentSession.ts +313 -29
- package/vendor/use-agentic/AgenticSurface.ts +2 -0
- package/vendor/use-agentic/Compaction.ts +91 -9
- package/vendor/use-agentic/Reference.ts +99 -0
- package/vendor/use-agentic/ToolRunner.ts +77 -2
- package/vendor/use-agentic/Transcript.ts +15 -4
- package/vendor/use-agentic/WIRE.md +16 -2
- package/vendor/use-agentic/httpRunner.ts +19 -4
- package/vendor/use-agentic/index.ts +1 -1
- package/vendor/use-agentic/types.ts +121 -10
- package/webkit/RenderLayer.tsx +45 -0
- package/webkit/bootCsr.tsx +4 -57
- package/webkit/index.ts +1 -2
- package/webkit/lazy.tsx +3 -13
- package/webkit/{createRobotPage.ts → seoPages.ts} +5 -0
- package/webkit/useBodyScrollLock.tsx +0 -6
- package/webkit/useCamera.tsx +10 -28
- package/webkit/useCodepush.tsx +8 -31
- package/webkit/useContact.tsx +1 -8
- package/webkit/useCsrValues.ts +203 -428
- package/webkit/useDebounce.ts +0 -3
- package/webkit/useEscapeKey.tsx +1 -12
- package/webkit/useFetch.ts +7 -13
- package/webkit/useFrameRuntime.ts +5 -43
- package/webkit/useGeoLocation.tsx +1 -1
- package/webkit/useLocation.ts +5 -8
- package/webkit/usePageTool.tsx +2 -9
- package/webkit/usePurchase.tsx +17 -33
- package/webkit/useScreenScope.tsx +2 -13
- package/client/fetch.ts +0 -1
- package/client/frameDebug.ts +0 -29
- package/common/deepObjectify.ts +0 -42
- package/common/dynamicRecord.ts +0 -12
- package/common/formatPhone.ts +0 -7
- package/common/getAllPropertyDescriptors.ts +0 -13
- package/common/lowerlize.ts +0 -4
- package/common/mergeVersion.ts +0 -10
- package/common/pathGet.ts +0 -13
- package/common/pathGetLoose.ts +0 -31
- package/common/pathSet.ts +0 -28
- package/common/plainFieldsOf.ts +0 -13
- package/common/randomPicks.ts +0 -12
- package/common/websocketAuth.ts +0 -24
- package/constant/deserialize.ts +0 -98
- package/dictionary/agentTurn.dictionary.ts +0 -33
- package/document/schema.ts +0 -24
- package/fetch/fetchType/clientSignal.type.ts +0 -22
- package/local/apps/akan/akan-local.db +0 -0
- package/local/apps/akan/akan-local.db-shm +0 -0
- package/local/apps/akan/akan-local.db-wal +0 -0
- package/local/apps/akan/akan-local_solid.db +0 -0
- package/local/apps/akan/akan-local_solid.db-shm +0 -0
- package/local/apps/akan/akan-local_solid.db-wal +0 -0
- package/local/apps/serverLifecycle/serverLifecycle-local.db +0 -0
- package/local/apps/serverLifecycle/serverLifecycle-local.db-shm +0 -0
- package/local/apps/serverLifecycle/serverLifecycle-local.db-wal +0 -0
- package/local/apps/serverLifecycle/serverLifecycle-local_solid.db +0 -0
- package/local/apps/serverLifecycle/serverLifecycle-local_solid.db-shm +0 -0
- package/local/apps/serverLifecycle/serverLifecycle-local_solid.db-wal +0 -0
- package/server/artifact/manifestTypes.ts +0 -19
- package/server/assetEncoding.ts +0 -27
- package/server/consoleEvaluator.ts +0 -51
- package/server/di/index.ts +0 -4
- package/server/di/resolveAdaptorHierarchy.ts +0 -91
- package/server/di/resolveServiceHierarchy.ts +0 -47
- package/server/hmr/changeBatch.ts +0 -14
- package/server/hmr/index.ts +0 -4
- package/server/metadata.tsx +0 -198
- package/server/proxy/akanResponse.ts +0 -16
- package/server/proxy/bunRequestFields.ts +0 -12
- package/server/rscPartialCommit.ts +0 -3
- package/server/rscPatchSafety.ts +0 -57
- package/server/rscWorkerReplay.ts +0 -49
- package/server/subRouteIndexDocument.tsx +0 -61
- package/service/predefinedAdaptor/deepseekLlm.ts +0 -82
- package/service/predefinedAdaptor/sqlDescriptor.ts +0 -25
- package/store/agent/storeSurface.ts +0 -28
- package/store/agent/types.ts +0 -16
- package/store/agentic/useFileFieldTool.ts +0 -221
- package/store/stateInfo.ts +0 -66
- package/test/playwright.config.base.ts +0 -48
- package/test/playwright.pageAgent.ts +0 -41
- package/test/sample.ts +0 -19
- package/types/client/fetch.d.ts +0 -1
- package/types/client/frameDebug.d.ts +0 -3
- package/types/common/deepObjectify.d.ts +0 -6
- package/types/common/dynamicRecord.d.ts +0 -14
- package/types/common/formatPhone.d.ts +0 -2
- package/types/common/getAllPropertyDescriptors.d.ts +0 -5
- package/types/common/isPhoneNumber.d.ts +0 -2
- package/types/common/lowerlize.d.ts +0 -2
- package/types/common/mergeVersion.d.ts +0 -10
- package/types/common/pathGet.d.ts +0 -1
- package/types/common/pathGetLoose.d.ts +0 -8
- package/types/common/pathSet.d.ts +0 -3
- package/types/common/plainFieldsOf.d.ts +0 -6
- package/types/common/randomPicks.d.ts +0 -1
- package/types/common/splitVersion.d.ts +0 -11
- package/types/common/websocketAuth.d.ts +0 -19
- package/types/common/websocketBinaryFrame.d.ts +0 -17
- package/types/constant/deserialize.d.ts +0 -10
- package/types/dictionary/agentTurn.dictionary.d.ts +0 -1
- package/types/document/schema.d.ts +0 -5
- package/types/fetch/fetchType/clientSignal.type.d.ts +0 -16
- package/types/server/artifact/manifestTypes.d.ts +0 -16
- package/types/server/assetEncoding.d.ts +0 -7
- package/types/server/consoleEvaluator.d.ts +0 -2
- package/types/server/di/index.d.ts +0 -4
- package/types/server/di/resolveAdaptorHierarchy.d.ts +0 -21
- package/types/server/di/resolveServiceHierarchy.d.ts +0 -13
- package/types/server/di.d.ts +0 -1
- package/types/server/hmr/changeBatch.d.ts +0 -13
- package/types/server/hmr/index.d.ts +0 -4
- package/types/server/hmr.d.ts +0 -1
- package/types/server/metadata.d.ts +0 -22
- package/types/server/proxy/akanResponse.d.ts +0 -7
- package/types/server/proxy/bunRequestFields.d.ts +0 -1
- package/types/server/rscPartialCommit.d.ts +0 -1
- package/types/server/rscPatchSafety.d.ts +0 -8
- package/types/server/rscWorkerReplay.d.ts +0 -32
- package/types/server/subRouteIndexDocument.d.ts +0 -8
- package/types/service/predefinedAdaptor/deepseekLlm.d.ts +0 -19
- package/types/service/predefinedAdaptor/sqlDescriptor.d.ts +0 -5
- package/types/store/agent/storeSurface.d.ts +0 -14
- package/types/store/agent/types.d.ts +0 -15
- package/types/store/agentic/useFileFieldTool.d.ts +0 -41
- package/types/store/stateInfo.d.ts +0 -23
- package/types/test/playwright.config.base.d.ts +0 -9
- package/types/test/playwright.pageAgent.d.ts +0 -12
- package/types/test/sample.d.ts +0 -15
- package/types/ui/Agent/Context.d.ts +0 -13
- package/types/ui/Agent/Mic.d.ts +0 -8
- package/types/ui/Agent/Section.d.ts +0 -10
- package/types/ui/Agent/StateKey.d.ts +0 -16
- package/types/ui/Agent/Tool.d.ts +0 -15
- package/types/ui/Agent/Transcript.d.ts +0 -13
- package/types/ui/Agent/markdownSpans.d.ts +0 -2
- package/types/ui/Agent/sessionHistory.d.ts +0 -14
- package/types/ui/Agent/sessionView.d.ts +0 -15
- package/types/ui/Dialog/Action.d.ts +0 -5
- package/types/ui/Dialog/Close.d.ts +0 -6
- package/types/ui/Dialog/Content.d.ts +0 -6
- package/types/ui/Dialog/Title.d.ts +0 -5
- package/types/ui/Dialog/Trigger.d.ts +0 -6
- package/types/ui/Dialog/context.d.ts +0 -18
- package/types/ui/Layout/LeftSider.d.ts +0 -11
- package/types/ui/Layout/RightSider.d.ts +0 -12
- package/types/ui/Layout/Template.d.ts +0 -7
- package/types/ui/Layout/TopLeftAction.d.ts +0 -6
- package/types/ui/Layout/Unit.d.ts +0 -9
- package/types/ui/Layout/View.d.ts +0 -8
- package/types/ui/Layout/Zone.d.ts +0 -6
- package/types/ui/Link/Back.d.ts +0 -7
- package/types/ui/Link/Close.d.ts +0 -7
- package/types/ui/Link/CsrLink.d.ts +0 -2
- package/types/ui/Link/Lang.d.ts +0 -8
- package/types/ui/Link/SsrLink.d.ts +0 -2
- package/types/ui/Link/types.d.ts +0 -50
- package/types/ui/Loading/Area.d.ts +0 -9
- package/types/ui/Loading/Button.d.ts +0 -7
- package/types/ui/Loading/Input.d.ts +0 -7
- package/types/ui/Model/LoadInit.d.ts +0 -10
- package/types/ui/Model/LoadView.d.ts +0 -10
- package/types/ui/Reference/Collapse.d.ts +0 -11
- package/types/ui/Reference/Summary.d.ts +0 -13
- package/types/ui/Reference/Toolbar.d.ts +0 -21
- package/types/ui/Reference/dictText.d.ts +0 -6
- package/types/ui/Signal/Message.d.ts +0 -23
- package/types/ui/Signal/PubSub.d.ts +0 -24
- package/types/ui/Signal/Request.d.ts +0 -8
- package/types/ui/System/DevModeToggle.d.ts +0 -1
- package/types/ui/System/Gtag.d.ts +0 -4
- package/types/ui/System/frameCssVars.d.ts +0 -5
- package/types/ui/Tab/Menu.d.ts +0 -12
- package/types/ui/Tab/Menus.d.ts +0 -6
- package/types/ui/Tab/Panel.d.ts +0 -8
- package/types/ui/Tab/context.d.ts +0 -11
- package/types/ui/UiOverride/Provider.d.ts +0 -15
- package/types/ui/UiOverride/createOverridable.d.ts +0 -9
- package/types/ui/UiOverride/useUiOverride.d.ts +0 -7
- package/types/ui/UiOverride/useUiRecipe.d.ts +0 -8
- package/types/webkit/createSitemapPage.d.ts +0 -4
- package/ui/Agent/Context.tsx +0 -49
- package/ui/Agent/Mic.tsx +0 -27
- package/ui/Agent/Section.tsx +0 -24
- package/ui/Agent/StateKey.tsx +0 -46
- package/ui/Agent/Tool.tsx +0 -59
- package/ui/Agent/Transcript.tsx +0 -33
- package/ui/Agent/markdownSpans.tsx +0 -49
- package/ui/Agent/sessionHistory.ts +0 -62
- package/ui/Agent/sessionView.ts +0 -38
- package/ui/Dialog/Action.tsx +0 -15
- package/ui/Dialog/Close.tsx +0 -18
- package/ui/Dialog/Content.tsx +0 -11
- package/ui/Dialog/Title.tsx +0 -15
- package/ui/Dialog/Trigger.tsx +0 -18
- package/ui/Dialog/context.ts +0 -32
- package/ui/Layout/LeftSider.tsx +0 -43
- package/ui/Layout/RightSider.tsx +0 -47
- package/ui/Layout/Template.tsx +0 -11
- package/ui/Layout/TopLeftAction.tsx +0 -28
- package/ui/Layout/Unit.tsx +0 -19
- package/ui/Layout/View.tsx +0 -12
- package/ui/Layout/Zone.tsx +0 -10
- package/ui/Link/Back.tsx +0 -15
- package/ui/Link/Close.tsx +0 -20
- package/ui/Link/CsrLink.tsx +0 -46
- package/ui/Link/Lang.tsx +0 -16
- package/ui/Link/SsrLink.tsx +0 -72
- package/ui/Link/types.ts +0 -55
- package/ui/Loading/Area.tsx +0 -27
- package/ui/Loading/Button.tsx +0 -15
- package/ui/Loading/Input.tsx +0 -15
- package/ui/Model/LoadInit.tsx +0 -11
- package/ui/Model/LoadView.tsx +0 -11
- package/ui/Reference/Collapse.tsx +0 -26
- package/ui/Reference/Summary.tsx +0 -25
- package/ui/Reference/Toolbar.tsx +0 -44
- package/ui/Reference/dictText.ts +0 -9
- package/ui/Signal/Message.tsx +0 -215
- package/ui/Signal/PubSub.tsx +0 -201
- package/ui/Signal/Request.tsx +0 -11
- package/ui/System/DevModeToggle.tsx +0 -19
- package/ui/System/Gtag.tsx +0 -69
- package/ui/System/frameCssVars.ts +0 -25
- package/ui/Tab/Menu.tsx +0 -70
- package/ui/Tab/Menus.tsx +0 -13
- package/ui/Tab/Panel.tsx +0 -25
- package/ui/Tab/context.ts +0 -20
- package/ui/UiOverride/Provider.tsx +0 -26
- package/ui/UiOverride/createOverridable.tsx +0 -25
- package/ui/UiOverride/useUiOverride.ts +0 -15
- package/ui/UiOverride/useUiRecipe.ts +0 -15
- package/webkit/createSitemapPage.ts +0 -4
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import type { MessageReference } from "./types";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* The ceiling on what one reference may add to the transcript, and the identity two of them are the same by.
|
|
5
|
+
*
|
|
6
|
+
* A reference is bulkier than it looks and lasts longer than a tool result. The host hands over whatever the
|
|
7
|
+
* screen was already holding — a document with an array of rows in it is tens of kilobytes — and unlike a tool
|
|
8
|
+
* result, which answers one turn's question, a reference is part of a *user* message: it rides the wire on this
|
|
9
|
+
* turn and on every turn after it, and it is the last thing compaction folds, because folding the thing the user
|
|
10
|
+
* pointed at is folding the question.
|
|
11
|
+
*
|
|
12
|
+
* So the value is bounded where it is staged, before it ever enters a message. Clipped rather than dropped, and
|
|
13
|
+
* the note says which: a model shown a value it cannot see the end of asks a narrower question, where one shown
|
|
14
|
+
* nothing answers from the field names.
|
|
15
|
+
*/
|
|
16
|
+
export class Reference {
|
|
17
|
+
/**
|
|
18
|
+
* Characters. The same number as `ToolOutput.limit` and for the same reason — far below any provider's window,
|
|
19
|
+
* comfortably above what one record needs — but its own constant, because the two bound different things and a
|
|
20
|
+
* host that finds one too generous has no reason to have found the other so.
|
|
21
|
+
*/
|
|
22
|
+
static readonly limit = 20_000;
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* What the token in the message text spells, so the text is the index into the values and neither can drift
|
|
26
|
+
* from the other. A path is part of the identity: two fields of one document are two references.
|
|
27
|
+
*/
|
|
28
|
+
static keyOf({ refName, refId, path }: MessageReference): string {
|
|
29
|
+
return `${refName}/${refId}${path ? `#${path}` : ""}`;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
static same(one: MessageReference, other: MessageReference): boolean {
|
|
33
|
+
return Reference.keyOf(one) === Reference.keyOf(other);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* The token a reference reads as in the message the user is writing: `@[label](mention:refName/id#path)`.
|
|
38
|
+
*
|
|
39
|
+
* The text is the source of truth for which references a message carries — deleting the token is how somebody
|
|
40
|
+
* takes one back — so the token has to say everything the pointer does. The value is looked up beside it by key.
|
|
41
|
+
*/
|
|
42
|
+
static token(reference: MessageReference): string {
|
|
43
|
+
return `@[${reference.label}](mention:${Reference.keyOf(reference)})`;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/** Greedy on the label alone: a label may hold anything but `]`, and every other part is a name or an id. */
|
|
47
|
+
static readonly pattern = /@\[([^\]]*)\]\(mention:([^/)]+)\/([^#)]+)(?:#([^)]*))?\)/g;
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* The pointers a draft names, in the order it names them. Pointers only — the value lives in `staged` and is
|
|
51
|
+
* joined on by key, so reading the text can never resurrect a value somebody deleted the token for.
|
|
52
|
+
*/
|
|
53
|
+
static parse(text: string): MessageReference[] {
|
|
54
|
+
return [...text.matchAll(Reference.pattern)].map(([, label, refName, refId, path]) => ({
|
|
55
|
+
refName,
|
|
56
|
+
refId,
|
|
57
|
+
label,
|
|
58
|
+
...(path ? { path } : {}),
|
|
59
|
+
}));
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* A value past the ceiling becomes the JSON text up to it. That leaves `value` a string holding a fragment of a
|
|
64
|
+
* structure, which is exactly what it is — and a reader renders a string value as itself, so the model sees the
|
|
65
|
+
* fragment rather than an escaped quotation of one.
|
|
66
|
+
*/
|
|
67
|
+
static clipped(reference: MessageReference): MessageReference {
|
|
68
|
+
if (reference.value === undefined) return reference;
|
|
69
|
+
const json = JSON.stringify(reference.value) ?? "";
|
|
70
|
+
if (json.length <= Reference.limit) return reference;
|
|
71
|
+
return { ...reference, value: `${json.slice(0, Reference.limit)}…`, note: Reference.#note(json.length) };
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* The text with every token naming `key` taken out, and the gap it leaves closed up. Deleting the chip and
|
|
76
|
+
* deleting the token have to be the same act, because the text is what decides which references a turn carries.
|
|
77
|
+
*/
|
|
78
|
+
static without(text: string, key: string): string {
|
|
79
|
+
return text
|
|
80
|
+
.replace(new RegExp(Reference.pattern.source, "g"), (match, label, refName, refId, path) =>
|
|
81
|
+
Reference.keyOf({ refName, refId, label, path }) === key ? "" : match,
|
|
82
|
+
)
|
|
83
|
+
.replace(/[^\S\n]{2,}/g, " ")
|
|
84
|
+
.replace(/[^\S\n]+$/gm, "");
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
/** What a pasted token resolves to: the pointer is in the text, and no value was ever staged beside it. */
|
|
88
|
+
static readonly unstagedNote =
|
|
89
|
+
"the value was not captured with this reference, so read it again with a tool before answering about it";
|
|
90
|
+
|
|
91
|
+
static #note(chars: number): string {
|
|
92
|
+
return (
|
|
93
|
+
`The value is ${chars} characters (~${Math.ceil(chars / 4)} tokens), past the ${Reference.limit}-character ` +
|
|
94
|
+
`ceiling one reference may add to this conversation, so only the first ${Reference.limit} are shown and the ` +
|
|
95
|
+
`JSON is cut mid-structure. Read a narrower part of it with a tool — one row, one field — rather than asking ` +
|
|
96
|
+
`for the whole value, and tell the user if you cannot answer from what you can see.`
|
|
97
|
+
);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
@@ -1,7 +1,15 @@
|
|
|
1
1
|
import { AgentAbort } from "./AgentAbort";
|
|
2
2
|
import { AgentProgress, type AgentProgressReport } from "./AgentProgress";
|
|
3
3
|
import { ToolOutput } from "./ToolOutput";
|
|
4
|
-
import type {
|
|
4
|
+
import type {
|
|
5
|
+
SurfaceView,
|
|
6
|
+
ToolActivity,
|
|
7
|
+
ToolCallRequest,
|
|
8
|
+
ToolCallResult,
|
|
9
|
+
ToolCard,
|
|
10
|
+
ToolCardEntry,
|
|
11
|
+
ToolEntry,
|
|
12
|
+
} from "./types";
|
|
5
13
|
|
|
6
14
|
export interface ToolApprovalRequest {
|
|
7
15
|
callId: string;
|
|
@@ -11,6 +19,17 @@ export interface ToolApprovalRequest {
|
|
|
11
19
|
message: string;
|
|
12
20
|
}
|
|
13
21
|
|
|
22
|
+
/** A call whose answer the user writes, handed to the host with the component its declaration named. */
|
|
23
|
+
export interface ToolCardRequest {
|
|
24
|
+
callId: string;
|
|
25
|
+
name: string;
|
|
26
|
+
args: Record<string, unknown>;
|
|
27
|
+
render: ToolCard;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/** What the card settled on: the value the model reads back, or why there is none. */
|
|
31
|
+
export type ToolCardAnswer = { result: unknown } | { error: string };
|
|
32
|
+
|
|
14
33
|
/** `report` is `null` once the call is over, carrying the id so a host can ignore a clear that is not its own. */
|
|
15
34
|
export interface ToolProgress {
|
|
16
35
|
callId: string;
|
|
@@ -30,6 +49,13 @@ export interface ToolRunnerHost {
|
|
|
30
49
|
* a host that may not perform the action, and the refusal says so rather than silently downgrading the gate.
|
|
31
50
|
*/
|
|
32
51
|
approve?: (request: ToolApprovalRequest, signal: AbortSignal) => Promise<true | string>;
|
|
52
|
+
/**
|
|
53
|
+
* Parks the call until the user fills in the card its declaration named, and answers with what they submitted.
|
|
54
|
+
*
|
|
55
|
+
* Omitting it refuses those calls rather than running something in their place: a card tool has no function to
|
|
56
|
+
* fall back to — the user *is* the implementation — so a host with nowhere to render one may not answer it.
|
|
57
|
+
*/
|
|
58
|
+
card?: (request: ToolCardRequest, signal: AbortSignal) => Promise<ToolCardAnswer>;
|
|
33
59
|
/**
|
|
34
60
|
* Awaited after a tool that changed something and before its change report is taken. A surface is read
|
|
35
61
|
* synchronously and a screen does not settle synchronously, so without this the report describes the moment
|
|
@@ -37,6 +63,16 @@ export interface ToolRunnerHost {
|
|
|
37
63
|
*/
|
|
38
64
|
settle?: () => Promise<void> | void;
|
|
39
65
|
progress?: (progress: ToolProgress) => void;
|
|
66
|
+
/**
|
|
67
|
+
* That a call is running, for a host drawing it on the page rather than in a transcript. Separate from
|
|
68
|
+
* `progress`, which only ever fires for a tool that chose to report: a call the user has to be told about is
|
|
69
|
+
* every call, and one that says nothing about itself is exactly the one whose effect arrives unexplained.
|
|
70
|
+
*
|
|
71
|
+
* **The `start` is awaited**, so a host may draw something that has to land before the call does — a pointer
|
|
72
|
+
* pressing the link a `navigate` is about to follow is drawing on an element the router would otherwise have
|
|
73
|
+
* replaced first. The host owns the deadline: a decoration that takes its time makes the agent take its time.
|
|
74
|
+
*/
|
|
75
|
+
activity?: (event: ToolActivity) => void | Promise<void>;
|
|
40
76
|
/**
|
|
41
77
|
* Answers a name the surface does not carry — where a consumer puts a built-in of its own. Reached only after
|
|
42
78
|
* the surface came up empty, so a registered tool of the same name shadows it.
|
|
@@ -88,6 +124,7 @@ export class ToolRunner {
|
|
|
88
124
|
const fallback = this.#host.fallback;
|
|
89
125
|
return fallback ? await fallback(call, signal) : { ...base, error: `Unknown tool: ${call.name}` };
|
|
90
126
|
}
|
|
127
|
+
if (entry.card) return await this.#carded(call, entry, signal);
|
|
91
128
|
const message = ToolRunner.confirmMessage(call.name, entry, call.args);
|
|
92
129
|
if (message) {
|
|
93
130
|
const approve = this.#host.approve;
|
|
@@ -99,9 +136,39 @@ export class ToolRunner {
|
|
|
99
136
|
return await ToolRunner.#serialized(() => this.#execute(call, entry, signal));
|
|
100
137
|
}
|
|
101
138
|
|
|
139
|
+
/**
|
|
140
|
+
* A call the user answers. It waits **outside** the serialization queue, for the reason an approval does: a card
|
|
141
|
+
* parked in front of somebody is not work, and holding the lock across it would let one agent's unanswered form
|
|
142
|
+
* freeze every other agent on the page.
|
|
143
|
+
*
|
|
144
|
+
* The screen is still snapshotted around the wait, because a card that writes what it collected into a store is
|
|
145
|
+
* the ordinary case and the model has to be told what moved. Nothing is drawn through `activity` — that draws a
|
|
146
|
+
* call landing *on* the page, and this one lands in the chat.
|
|
147
|
+
*/
|
|
148
|
+
async #carded(call: ToolCallRequest, entry: ToolCardEntry, signal: AbortSignal): Promise<ToolCallResult> {
|
|
149
|
+
const base = { id: call.id, name: call.name };
|
|
150
|
+
const verdict = entry.guard?.(call.args) ?? true;
|
|
151
|
+
if (verdict !== true) return { ...base, error: verdict };
|
|
152
|
+
const ask = this.#host.card;
|
|
153
|
+
if (!ask) return { ...base, error: `${call.name} is answered by the user, and nothing here can ask them.` };
|
|
154
|
+
const before = this.#surface.snapshot();
|
|
155
|
+
const answered = await ask({ callId: call.id, name: call.name, args: call.args, render: entry.card }, signal);
|
|
156
|
+
if ("error" in answered) return { ...base, error: answered.error };
|
|
157
|
+
if (entry.settle !== false) await this.#host.settle?.();
|
|
158
|
+
const changes = this.#surface.diffSince(before);
|
|
159
|
+
return {
|
|
160
|
+
...base,
|
|
161
|
+
...(answered.result !== undefined ? { result: answered.result } : {}),
|
|
162
|
+
...(changes.length ? { changes } : {}),
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
|
|
102
166
|
async #execute(call: ToolCallRequest, entry: ToolEntry, signal: AbortSignal): Promise<ToolCallResult> {
|
|
103
167
|
const base = { id: call.id, name: call.name };
|
|
104
168
|
const before = this.#surface.snapshot();
|
|
169
|
+
|
|
170
|
+
await this.#host.activity?.({ callId: call.id, name: call.name, args: call.args, phase: "start" });
|
|
171
|
+
let failed: string | undefined;
|
|
105
172
|
try {
|
|
106
173
|
const result = await AgentAbort.run(signal, () =>
|
|
107
174
|
AgentProgress.run(
|
|
@@ -118,9 +185,17 @@ export class ToolRunner {
|
|
|
118
185
|
...(changes.length ? { changes } : {}),
|
|
119
186
|
};
|
|
120
187
|
} catch (error) {
|
|
121
|
-
|
|
188
|
+
failed = error instanceof Error ? error.message : String(error);
|
|
189
|
+
return { ...base, error: failed };
|
|
122
190
|
} finally {
|
|
123
191
|
this.#host.progress?.({ callId: call.id, report: null });
|
|
192
|
+
this.#host.activity?.({
|
|
193
|
+
callId: call.id,
|
|
194
|
+
name: call.name,
|
|
195
|
+
args: call.args,
|
|
196
|
+
phase: "end",
|
|
197
|
+
...(failed ? { error: failed } : {}),
|
|
198
|
+
});
|
|
124
199
|
}
|
|
125
200
|
}
|
|
126
201
|
|
|
@@ -15,7 +15,12 @@ export class Transcript {
|
|
|
15
15
|
|
|
16
16
|
/** What one turn posts: no host-only message, no unanswered call, no result answering a call nobody sees. */
|
|
17
17
|
static wire(messages: readonly ChatMessage[]): ChatMessage[] {
|
|
18
|
-
return Transcript.sanitize(messages.filter((message) => !message.local));
|
|
18
|
+
return Transcript.sanitize(messages.filter((message) => !message.local).map(Transcript.unmeasured));
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/** A message without the provider's count for its turn — what the wire carries and what a compaction keeps. */
|
|
22
|
+
static unmeasured(message: ChatMessage): ChatMessage {
|
|
23
|
+
return message.usage ? { ...message, usage: undefined } : message;
|
|
19
24
|
}
|
|
20
25
|
|
|
21
26
|
static sanitize(messages: readonly ChatMessage[]): ChatMessage[] {
|
|
@@ -28,7 +33,7 @@ export class Transcript {
|
|
|
28
33
|
if (results.length) kept.push({ ...message, toolResults: results });
|
|
29
34
|
continue;
|
|
30
35
|
}
|
|
31
|
-
if (message.role === "assistant" && !Transcript
|
|
36
|
+
if (message.role === "assistant" && !Transcript.carries(message)) continue;
|
|
32
37
|
kept.push(message);
|
|
33
38
|
const calls = message.toolCalls ?? [];
|
|
34
39
|
for (const call of calls) called.add(call.id);
|
|
@@ -44,7 +49,13 @@ export class Transcript {
|
|
|
44
49
|
}
|
|
45
50
|
|
|
46
51
|
/** An empty assistant message is a draft a reload or an abort caught before it said anything. */
|
|
47
|
-
static
|
|
48
|
-
return
|
|
52
|
+
static carries(message: ChatMessage) {
|
|
53
|
+
return (
|
|
54
|
+
!!message.text ||
|
|
55
|
+
!!message.error ||
|
|
56
|
+
!!message.toolCalls?.length ||
|
|
57
|
+
!!message.attachments?.length ||
|
|
58
|
+
!!message.references?.length
|
|
59
|
+
);
|
|
49
60
|
}
|
|
50
61
|
}
|
|
@@ -72,20 +72,34 @@ Nothing here is stored: the wire carries the bytes for exactly one turn's reques
|
|
|
72
72
|
{
|
|
73
73
|
"text": "Trimmed. Anything else?", // optional
|
|
74
74
|
"toolCalls": [{ "id": "c2", "name": "renderProject", "args": {} }], // optional
|
|
75
|
-
"stop": "end"
|
|
75
|
+
"stop": "end", // "end" | "toolUse"; defaults from toolCalls
|
|
76
|
+
"usage": { "input": 18230, "output": 41 }, // optional
|
|
77
|
+
"limits": { "window": 128000, "output": 8192 } // optional
|
|
76
78
|
}
|
|
77
79
|
```
|
|
78
80
|
|
|
81
|
+
`usage` is what the provider counted for this turn — `input` the whole prompt, cached part included. `limits` is
|
|
82
|
+
what the backend knows about its model: `window` the context window, `output` the answer ceiling it requests. Send
|
|
83
|
+
each only when it is known; a guessed window is worse than none. With them the session compacts before the prompt
|
|
84
|
+
outgrows the window, measured by the provider's own count rather than by a character estimate; without them it
|
|
85
|
+
falls back to its transcript ceiling alone.
|
|
86
|
+
|
|
79
87
|
Any non-2xx status is surfaced to the session as one error event and ends the turn; a string `message` or
|
|
80
88
|
`error` field in a JSON body becomes that event's message verbatim, and any other body is not interpreted. A
|
|
81
89
|
message that is a code rather than a sentence may be accompanied by a flat `data` object of strings and numbers —
|
|
82
90
|
the values whoever resolves the code interpolates into its text; a host that does not know the code shows the
|
|
83
91
|
message as it stands.
|
|
84
92
|
|
|
93
|
+
**A refusal because the prompt no longer fits the window carries `"overflow": { "limit": 128000 }`** (`limit` only
|
|
94
|
+
when the provider named it). It is the one refusal a session can answer by itself: it summarizes the transcript and
|
|
95
|
+
asks again, once, and remembers the window for the rest of the conversation. Flag nothing else with it — a rate
|
|
96
|
+
limit flagged as overflow compacts a conversation that fit.
|
|
97
|
+
|
|
85
98
|
## Streaming
|
|
86
99
|
|
|
87
100
|
The same endpoint may answer `text/event-stream` instead when the request's `accept` names it: one `RunnerEvent`
|
|
88
101
|
(`types.ts`) JSON object per SSE `data:` line, ending with the `done` event. A failure after the stream opened
|
|
89
|
-
travels as one `error` event — the status line is already gone by then. `
|
|
102
|
+
travels as one `error` event — the status line is already gone by then. `usage` and `limits` ride the `done` event
|
|
103
|
+
and `overflow` the `error` event, in the same shapes as above. `httpRunner` sends
|
|
90
104
|
`accept: text/event-stream, application/json` and branches on the response's content type, so a server that never
|
|
91
105
|
streams keeps answering the single JSON object above unchanged.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AgentRunner, RunnerEvent, ToolCallRequest } from "./types";
|
|
1
|
+
import type { AgentRunner, RunnerEvent, ToolCallRequest, TurnLimits, TurnUsage } from "./types";
|
|
2
2
|
|
|
3
3
|
export interface HttpRunnerOptions {
|
|
4
4
|
url: string;
|
|
@@ -11,6 +11,8 @@ interface TurnAnswer {
|
|
|
11
11
|
text?: string;
|
|
12
12
|
toolCalls?: ToolCallRequest[];
|
|
13
13
|
stop?: "end" | "toolUse" | "length";
|
|
14
|
+
usage?: TurnUsage;
|
|
15
|
+
limits?: TurnLimits;
|
|
14
16
|
}
|
|
15
17
|
|
|
16
18
|
const eventTypes = new Set(["text", "toolCall", "done", "error"]);
|
|
@@ -73,6 +75,13 @@ const interpolations = (value: unknown): Record<string, string | number> | undef
|
|
|
73
75
|
return entries.length ? Object.fromEntries(entries) : undefined;
|
|
74
76
|
};
|
|
75
77
|
|
|
78
|
+
const overflowOf = (value: unknown): { limit?: number } | undefined => {
|
|
79
|
+
if (!value) return undefined;
|
|
80
|
+
if (typeof value !== "object") return {};
|
|
81
|
+
const { limit } = value as { limit?: unknown };
|
|
82
|
+
return typeof limit === "number" ? { limit } : {};
|
|
83
|
+
};
|
|
84
|
+
|
|
76
85
|
/**
|
|
77
86
|
* The server's own message travels verbatim — it was written for whoever is reading the chat, and a prefix in
|
|
78
87
|
* front of it both reads as two sentences and hides a coded message from the host that would have resolved it.
|
|
@@ -81,11 +90,12 @@ const interpolations = (value: unknown): Record<string, string | number> | undef
|
|
|
81
90
|
const turnError = async (response: Response): Promise<RunnerEvent> => {
|
|
82
91
|
const fallback = { type: "error", message: `Agent turn failed: ${response.status}` } as const;
|
|
83
92
|
try {
|
|
84
|
-
const body = (await response.json()) as { message?: unknown; error?: unknown; data?: unknown };
|
|
93
|
+
const body = (await response.json()) as { message?: unknown; error?: unknown; data?: unknown; overflow?: unknown };
|
|
85
94
|
const message = typeof body.message === "string" ? body.message : typeof body.error === "string" ? body.error : "";
|
|
86
95
|
if (!message) return fallback;
|
|
87
96
|
const data = interpolations(body.data);
|
|
88
|
-
|
|
97
|
+
const overflow = overflowOf(body.overflow);
|
|
98
|
+
return { type: "error", message, ...(data ? { data } : {}), ...(overflow ? { overflow } : {}) };
|
|
89
99
|
} catch {
|
|
90
100
|
return fallback;
|
|
91
101
|
}
|
|
@@ -126,6 +136,11 @@ export const httpRunner = ({ url, headers, fetcher }: HttpRunnerOptions): AgentR
|
|
|
126
136
|
const turn = (await response.json()) as TurnAnswer;
|
|
127
137
|
if (turn.text) yield { type: "text", delta: turn.text };
|
|
128
138
|
for (const call of turn.toolCalls ?? []) yield { type: "toolCall", id: call.id, name: call.name, args: call.args };
|
|
129
|
-
yield {
|
|
139
|
+
yield {
|
|
140
|
+
type: "done",
|
|
141
|
+
stop: turn.stop ?? (turn.toolCalls?.length ? "toolUse" : "end"),
|
|
142
|
+
...(turn.usage ? { usage: turn.usage } : {}),
|
|
143
|
+
...(turn.limits ? { limits: turn.limits } : {}),
|
|
144
|
+
};
|
|
130
145
|
},
|
|
131
146
|
});
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use client";
|
|
2
1
|
export * from "./AgentAbort";
|
|
3
2
|
export * from "./Agentic";
|
|
4
3
|
export * from "./AgenticSurface";
|
|
@@ -8,6 +7,7 @@ export * from "./AgentScope";
|
|
|
8
7
|
export * from "./AgentSession";
|
|
9
8
|
export * from "./Compaction";
|
|
10
9
|
export * from "./httpRunner";
|
|
10
|
+
export * from "./Reference";
|
|
11
11
|
export * from "./sharedContext";
|
|
12
12
|
export * from "./surfaceContext";
|
|
13
13
|
export * from "./ToolOutput";
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
|
|
1
3
|
export type JsonSchema = Record<string, unknown>;
|
|
2
4
|
|
|
3
5
|
/** `true` asks with a default message, a string is the message, a function decides from the arguments. */
|
|
@@ -6,7 +8,24 @@ export type ToolConfirm = boolean | string | ((args: Record<string, unknown>) =>
|
|
|
6
8
|
/** Re-checked at the moment of execution; a string is the refusal reason the agent reads. */
|
|
7
9
|
export type ToolGuard = (args: Record<string, unknown>) => true | string;
|
|
8
10
|
|
|
9
|
-
|
|
11
|
+
/**
|
|
12
|
+
* What a card tool renders while its call waits, and the two ways the user ends that wait. `submit` is the call's
|
|
13
|
+
* result, `cancel` is its refusal; whichever comes first settles the call and takes the card off the screen, so a
|
|
14
|
+
* second call of either does nothing.
|
|
15
|
+
*/
|
|
16
|
+
export interface ToolCardControl {
|
|
17
|
+
args: Record<string, unknown>;
|
|
18
|
+
submit: (value: unknown) => void;
|
|
19
|
+
cancel: (reason?: string) => void;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Called, not mounted — the host invokes it inside its own render, so the returned tree keeps no state of its
|
|
24
|
+
* own between renders. Put anything stateful in a component the function returns.
|
|
25
|
+
*/
|
|
26
|
+
export type ToolCard = (control: ToolCardControl) => ReactNode;
|
|
27
|
+
|
|
28
|
+
interface ToolEntryBase {
|
|
10
29
|
name: string;
|
|
11
30
|
description?: string;
|
|
12
31
|
parameters?: JsonSchema;
|
|
@@ -17,7 +36,37 @@ export interface ToolEntry {
|
|
|
17
36
|
settle?: boolean;
|
|
18
37
|
confirm?: ToolConfirm;
|
|
19
38
|
guard?: ToolGuard;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export interface ToolActionEntry extends ToolEntryBase {
|
|
20
42
|
run: (args: Record<string, unknown>) => unknown;
|
|
43
|
+
card?: never;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* A call the **user** answers rather than the screen: the host parks the call, renders `card`, and what the card
|
|
48
|
+
* submits is what the model reads back. `confirm` is not read for one — the card in front of the user is already
|
|
49
|
+
* the asking, and a gate before it would ask them twice for one thing.
|
|
50
|
+
*/
|
|
51
|
+
export interface ToolCardEntry extends ToolEntryBase {
|
|
52
|
+
card: ToolCard;
|
|
53
|
+
run?: never;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
export type ToolEntry = ToolActionEntry | ToolCardEntry;
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* That a call is happening, for a host drawing it on the screen rather than in a transcript.
|
|
60
|
+
*
|
|
61
|
+
* Emitted around the execution alone — after the approval card settled, and never for a call a guard or an
|
|
62
|
+
* approval refused before it ran, so a host may treat `start` as "this is being done to the page right now".
|
|
63
|
+
*/
|
|
64
|
+
export interface ToolActivity {
|
|
65
|
+
callId: string;
|
|
66
|
+
name: string;
|
|
67
|
+
args: Record<string, unknown>;
|
|
68
|
+
phase: "start" | "end";
|
|
69
|
+
error?: string;
|
|
21
70
|
}
|
|
22
71
|
|
|
23
72
|
/** One call an agent made through the surface, in the order it made them. */
|
|
@@ -118,6 +167,30 @@ export interface ToolCallResult {
|
|
|
118
167
|
error?: string;
|
|
119
168
|
}
|
|
120
169
|
|
|
170
|
+
/**
|
|
171
|
+
* Why an assistant turn ended. `length` is the provider's own ceiling rather than the model's choice, so the turn
|
|
172
|
+
* is incomplete — a truncated answer and a turn cut off before its tool call finished both arrive this way, and
|
|
173
|
+
* neither is distinguishable from `end` without it.
|
|
174
|
+
*/
|
|
175
|
+
export type TurnStop = "end" | "toolUse" | "length";
|
|
176
|
+
|
|
177
|
+
/** What the provider counted for one turn. `input` is the whole prompt, cached part included — what the window held. */
|
|
178
|
+
export interface TurnUsage {
|
|
179
|
+
input: number;
|
|
180
|
+
output: number;
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
/**
|
|
184
|
+
* What the backend knows about the model it relays to, each only when it was told: a window it guesses is worse
|
|
185
|
+
* than none, because a guard placed on a wrong number fires at the wrong time and nothing says so.
|
|
186
|
+
*/
|
|
187
|
+
export interface TurnLimits {
|
|
188
|
+
/** The model's context window, prompt and answer together. */
|
|
189
|
+
window?: number;
|
|
190
|
+
/** The answer ceiling the backend actually requests. */
|
|
191
|
+
output?: number;
|
|
192
|
+
}
|
|
193
|
+
|
|
121
194
|
/**
|
|
122
195
|
* A file the user handed the conversation rather than the screen — which is why it rides a message instead of a
|
|
123
196
|
* tool, the same reason `askUser` belongs to the session and not to the surface.
|
|
@@ -131,13 +204,6 @@ export interface ToolCallResult {
|
|
|
131
204
|
* model cannot read and says so in the transcript, because a silently dropped file is one the model then
|
|
132
205
|
* hallucinates about.
|
|
133
206
|
*/
|
|
134
|
-
/**
|
|
135
|
-
* Why an assistant turn ended. `length` is the provider's own ceiling rather than the model's choice, so the turn
|
|
136
|
-
* is incomplete — a truncated answer and a turn cut off before its tool call finished both arrive this way, and
|
|
137
|
-
* neither is distinguishable from `end` without it.
|
|
138
|
-
*/
|
|
139
|
-
export type TurnStop = "end" | "toolUse" | "length";
|
|
140
|
-
|
|
141
207
|
export interface MessageAttachment {
|
|
142
208
|
name: string;
|
|
143
209
|
mimeType: string;
|
|
@@ -154,11 +220,42 @@ export interface MessageAttachment {
|
|
|
154
220
|
ref?: string;
|
|
155
221
|
}
|
|
156
222
|
|
|
223
|
+
/**
|
|
224
|
+
* Data the user pointed at while they were talking, rather than a file they handed over — a record, or one field
|
|
225
|
+
* of one, named in the message the way they named it. It rides a message for the same reason an attachment does:
|
|
226
|
+
* what somebody referred to while asking is part of the asking, and the turn context is rebuilt from the screen
|
|
227
|
+
* every turn, so a screen-shaped carrier forgets what was pointed at three turns ago.
|
|
228
|
+
*
|
|
229
|
+
* **`value` is a snapshot, deliberately.** It is what the data was when the user sent the message, and it is never
|
|
230
|
+
* re-read on a later turn. Re-reading would be wrong twice over: it rewrites what the person was looking at when
|
|
231
|
+
* they spoke, and the common case is an agent that then *edits* the very field it was pointed at, which would
|
|
232
|
+
* leave the reference showing the result and no record of what was being changed from. `refName`, `refId` and
|
|
233
|
+
* `path` are the way back to the current value — a tool re-reads it when the answer needs it.
|
|
234
|
+
*
|
|
235
|
+
* **`value` arrives masked, and nothing downstream can mask it again.** Masking needs the model class
|
|
236
|
+
* (`mask(model, value)`), which no wire carries, so whichever model the host names when it stages the reference is
|
|
237
|
+
* the whole of the decision about what leaves the browser.
|
|
238
|
+
*/
|
|
239
|
+
export interface MessageReference {
|
|
240
|
+
/** The host's own `refName`, unchanged — the vocabulary its published tools already speak. */
|
|
241
|
+
refName: string;
|
|
242
|
+
refId: string;
|
|
243
|
+
/** What the chip draws and what the token in the text spells, so the two can never disagree. */
|
|
244
|
+
label: string;
|
|
245
|
+
/** A dotted path into the document, in `pathSet`'s vocabulary. Absent means the whole of it. */
|
|
246
|
+
path?: string;
|
|
247
|
+
value?: unknown;
|
|
248
|
+
/** Read by the model in place of a value there is none of — clipped, unreadable, or gone from a restored chat. */
|
|
249
|
+
note?: string;
|
|
250
|
+
}
|
|
251
|
+
|
|
157
252
|
export interface ChatMessage {
|
|
158
253
|
role: ChatRole;
|
|
159
254
|
text?: string;
|
|
160
255
|
/** Files the message carries. Content, not instructions — a backend frames them the way it frames context. */
|
|
161
256
|
attachments?: MessageAttachment[];
|
|
257
|
+
/** Data the message points at. Content, framed like attachments and for the same reason. */
|
|
258
|
+
references?: MessageReference[];
|
|
162
259
|
toolCalls?: ToolCallRequest[];
|
|
163
260
|
toolResults?: ToolCallResult[];
|
|
164
261
|
/** A failed or capped turn, recorded in the transcript rather than thrown past it. */
|
|
@@ -174,6 +271,12 @@ export interface ChatMessage {
|
|
|
174
271
|
* a host renders it as one.
|
|
175
272
|
*/
|
|
176
273
|
summary?: boolean;
|
|
274
|
+
/**
|
|
275
|
+
* What the provider counted for the turn that wrote this assistant message. Kept on the message so it moves,
|
|
276
|
+
* persists and is summarized away with it; never sent, and dropped from what a compaction keeps, since it
|
|
277
|
+
* measured a prompt that no longer exists.
|
|
278
|
+
*/
|
|
279
|
+
usage?: TurnUsage;
|
|
177
280
|
}
|
|
178
281
|
|
|
179
282
|
/** One block of screen context the host assembles per turn. `kind` is the host's vocabulary; the wire forwards it verbatim. */
|
|
@@ -185,12 +288,20 @@ export interface ContextBlock {
|
|
|
185
288
|
export type RunnerEvent =
|
|
186
289
|
| { type: "text"; delta: string }
|
|
187
290
|
| { type: "toolCall"; id: string; name: string; args: Record<string, unknown> }
|
|
188
|
-
| { type: "done"; stop: TurnStop }
|
|
291
|
+
| { type: "done"; stop: TurnStop; usage?: TurnUsage; limits?: TurnLimits }
|
|
189
292
|
/**
|
|
190
293
|
* `data` accompanies a message that is a code rather than a sentence — the values whoever resolves the code
|
|
191
294
|
* interpolates into its text. A host that does not know the code shows the message as it stands.
|
|
295
|
+
*
|
|
296
|
+
* `overflow` marks the provider refusing a prompt too long for its window — the one refusal a session can undo
|
|
297
|
+
* on its own, by compacting and asking again. `limit` is the window when the refusal named it.
|
|
192
298
|
*/
|
|
193
|
-
| {
|
|
299
|
+
| {
|
|
300
|
+
type: "error";
|
|
301
|
+
message: string;
|
|
302
|
+
data?: Record<string, string | number>;
|
|
303
|
+
overflow?: { limit?: number };
|
|
304
|
+
};
|
|
194
305
|
|
|
195
306
|
export interface RunnerRequest {
|
|
196
307
|
messages: ChatMessage[];
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import type { RouteRender } from "akanjs/client";
|
|
3
|
+
import { createElement, memo, type ReactNode, useRef } from "react";
|
|
4
|
+
import { useFetch } from "./useFetch";
|
|
5
|
+
|
|
6
|
+
interface RenderLayerProps {
|
|
7
|
+
renders: RouteRender[];
|
|
8
|
+
index: number;
|
|
9
|
+
params: Record<string, string>;
|
|
10
|
+
searchParams: Record<string, string | string[]>;
|
|
11
|
+
leaf?: ReactNode;
|
|
12
|
+
}
|
|
13
|
+
export const RenderLayer = memo(({ renders, index, params, searchParams, leaf = null }: RenderLayerProps) => {
|
|
14
|
+
const isLast = index >= renders.length - 1;
|
|
15
|
+
const children = isLast ? (
|
|
16
|
+
leaf
|
|
17
|
+
) : (
|
|
18
|
+
<RenderLayer renders={renders} index={index + 1} params={params} searchParams={searchParams} leaf={leaf} />
|
|
19
|
+
);
|
|
20
|
+
const routeRender = renders[index];
|
|
21
|
+
const isAsyncRender = isAsyncRouteRender(routeRender);
|
|
22
|
+
const resultRef = useRef<ReactNode | Promise<ReactNode> | null>(null);
|
|
23
|
+
if (isAsyncRender && resultRef.current === null) {
|
|
24
|
+
resultRef.current = routeRender?.render({ children, params, searchParams } as never) ?? null;
|
|
25
|
+
}
|
|
26
|
+
const { fulfilled, value } = useFetch(resultRef.current);
|
|
27
|
+
if (!routeRender) return null;
|
|
28
|
+
if (!isAsyncRender) return createElement(routeRender.render as never, { children, params, searchParams } as never);
|
|
29
|
+
if (!fulfilled || !value) return <>{composeLoadingFallback(renders.slice(index), params)}</>;
|
|
30
|
+
return value;
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
function isAsyncRouteRender(routeRender?: RouteRender): boolean {
|
|
34
|
+
return Boolean(routeRender?.isAsync || routeRender?.render.constructor.name === "AsyncFunction");
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
function composeLoadingFallback(renders: RouteRender[], params: Record<string, string>): ReactNode {
|
|
38
|
+
let element: ReactNode = null;
|
|
39
|
+
for (let i = renders.length - 1; i >= 0; i--) {
|
|
40
|
+
const Loading = renders[i]?.Loading;
|
|
41
|
+
if (!Loading) continue;
|
|
42
|
+
element = Loading({ params, children: element } as never) as ReactNode;
|
|
43
|
+
}
|
|
44
|
+
return element;
|
|
45
|
+
}
|