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
|
@@ -1,18 +1,24 @@
|
|
|
1
1
|
import type { AgentProgressReport } from "./AgentProgress";
|
|
2
2
|
import { Compaction, type CompactOptions } from "./Compaction";
|
|
3
|
+
import { Reference } from "./Reference";
|
|
3
4
|
import { ToolOutput } from "./ToolOutput";
|
|
4
|
-
import { type ToolApprovalRequest, ToolRunner } from "./ToolRunner";
|
|
5
|
+
import { type ToolApprovalRequest, type ToolCardAnswer, type ToolCardRequest, ToolRunner } from "./ToolRunner";
|
|
5
6
|
import { Transcript } from "./Transcript";
|
|
6
7
|
import type {
|
|
7
8
|
AgentRunner,
|
|
8
9
|
ChatMessage,
|
|
9
10
|
ContextBlock,
|
|
11
|
+
MessageReference,
|
|
10
12
|
PublishedTool,
|
|
11
13
|
RunnerRequest,
|
|
12
14
|
SurfaceView,
|
|
15
|
+
ToolActivity,
|
|
13
16
|
ToolCallRequest,
|
|
14
17
|
ToolCallResult,
|
|
18
|
+
ToolCard,
|
|
19
|
+
TurnLimits,
|
|
15
20
|
TurnStop,
|
|
21
|
+
TurnUsage,
|
|
16
22
|
} from "./types";
|
|
17
23
|
|
|
18
24
|
export interface PendingApproval {
|
|
@@ -37,6 +43,20 @@ export interface PendingQuestion {
|
|
|
37
43
|
dismiss: (reason?: string) => void;
|
|
38
44
|
}
|
|
39
45
|
|
|
46
|
+
/**
|
|
47
|
+
* A call parked on a component the app declared with the tool — a form to fill in, a choice no list of strings
|
|
48
|
+
* could carry. The loop waits on it exactly as it waits on an approval, and `render` is the app's own, so the
|
|
49
|
+
* framework decides where the card sits and nothing about what it asks.
|
|
50
|
+
*/
|
|
51
|
+
export interface PendingCard {
|
|
52
|
+
callId: string;
|
|
53
|
+
name: string;
|
|
54
|
+
args: Record<string, unknown>;
|
|
55
|
+
render: ToolCard;
|
|
56
|
+
submit: (value: unknown) => void;
|
|
57
|
+
dismiss: (reason?: string) => void;
|
|
58
|
+
}
|
|
59
|
+
|
|
40
60
|
/**
|
|
41
61
|
* Where a session keeps its transcript across page loads. Storage-neutral: the host decides what backs it, so a
|
|
42
62
|
* server-side transcript is as legal as web storage — which is why every method may answer asynchronously. A
|
|
@@ -90,6 +110,21 @@ export interface AgentSessionOptions {
|
|
|
90
110
|
* duplicate, no error, just messages that never reach the server. Reset the mark here.
|
|
91
111
|
*/
|
|
92
112
|
onCompact?: (replaced: readonly ChatMessage[], summary: ChatMessage) => void;
|
|
113
|
+
/**
|
|
114
|
+
* Called as each tool call starts and ends — where a host draws what the agent is doing on the page itself.
|
|
115
|
+
* The session keeps none of it: nothing here is transcript, and holding it would mean a re-render per call for
|
|
116
|
+
* something no message renders.
|
|
117
|
+
*/
|
|
118
|
+
onActivity?: (event: ToolActivity) => void | Promise<void>;
|
|
119
|
+
/**
|
|
120
|
+
* Called when a turn starts and when it settles — the boundary a host draws the agent's own presence in. The
|
|
121
|
+
* calls of one turn arrive with model turns between them, seconds long, so anything measured in the gap
|
|
122
|
+
* between *calls* keeps ending and restarting inside a turn that never stopped.
|
|
123
|
+
*
|
|
124
|
+
* Only the conversation loop reports here. `compact` runs under the same flag and drives nothing on screen, so
|
|
125
|
+
* a host drawing the agent at work would draw it for a summary nobody asked to watch.
|
|
126
|
+
*/
|
|
127
|
+
onTurn?: (running: boolean) => void;
|
|
93
128
|
}
|
|
94
129
|
|
|
95
130
|
/**
|
|
@@ -132,6 +167,10 @@ export class AgentSession {
|
|
|
132
167
|
#running = false;
|
|
133
168
|
#pending: PendingApproval | null = null;
|
|
134
169
|
#question: PendingQuestion | null = null;
|
|
170
|
+
#card: PendingCard | null = null;
|
|
171
|
+
#staged: MessageReference[] = [];
|
|
172
|
+
#inserts: MessageReference[] = [];
|
|
173
|
+
#chats = 0;
|
|
135
174
|
#progress: (AgentProgressReport & { callId: string }) | null = null;
|
|
136
175
|
#controller: AbortController | null = null;
|
|
137
176
|
#active: Promise<void> | null = null;
|
|
@@ -144,8 +183,15 @@ export class AgentSession {
|
|
|
144
183
|
#history: SessionHistory | undefined;
|
|
145
184
|
#onCompact: AgentSessionOptions["onCompact"];
|
|
146
185
|
#compacting = false;
|
|
147
|
-
/**
|
|
148
|
-
|
|
186
|
+
/**
|
|
187
|
+
* Sizes below which auto-compaction stays out of the way, raised when a summary failed to shrink anything — one
|
|
188
|
+
* per trigger, since the ceiling reads the transcript and the guard the whole prompt.
|
|
189
|
+
*/
|
|
190
|
+
#compactFloor = { transcript: 0, prompt: 0 };
|
|
191
|
+
/** What the backend reported about its model, or what a refusal named — kept for the life of the session. */
|
|
192
|
+
#limits: TurnLimits = {};
|
|
193
|
+
/** What the tools, the screen context and the instructions cost the last request, for a host's gauge. */
|
|
194
|
+
#overhead = 0;
|
|
149
195
|
|
|
150
196
|
constructor(surface: SurfaceView, runner: AgentRunner, options: AgentSessionOptions = {}) {
|
|
151
197
|
this.#surface = surface;
|
|
@@ -153,7 +199,9 @@ export class AgentSession {
|
|
|
153
199
|
this.#options = options;
|
|
154
200
|
this.#tools = new ToolRunner(surface, {
|
|
155
201
|
approve: (request, signal) => this.#awaitApproval(request, signal),
|
|
202
|
+
card: (request, signal) => this.#awaitCard(request, signal),
|
|
156
203
|
settle: () => this.#options.settle?.(),
|
|
204
|
+
activity: (event) => this.#options.onActivity?.(event),
|
|
157
205
|
progress: ({ callId, report }) => {
|
|
158
206
|
if (report) this.#progress = { ...report, callId };
|
|
159
207
|
else if (this.#progress?.callId === callId) this.#progress = null;
|
|
@@ -212,6 +260,121 @@ export class AgentSession {
|
|
|
212
260
|
return this.#question;
|
|
213
261
|
}
|
|
214
262
|
|
|
263
|
+
get pendingCard(): PendingCard | null {
|
|
264
|
+
return this.#card;
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
/**
|
|
268
|
+
* What the user has pointed at and not yet sent.
|
|
269
|
+
*
|
|
270
|
+
* Held by the session rather than by the composer, which is where staged *files* live — and the difference is
|
|
271
|
+
* not an inconsistency. A file only ever arrives from the composer's own picker or drop zone, so composer-local
|
|
272
|
+
* state can reach every producer of one. A reference arrives from whichever component drew the data: a card
|
|
273
|
+
* partway down the page, reaching the session it is already inside. Composer state is unreachable from there,
|
|
274
|
+
* and a chat that replaces its composer has no state to reach anyway.
|
|
275
|
+
*
|
|
276
|
+
* A staging slot, not a tray. `send` empties it, so what somebody pointed at belongs to the message they were
|
|
277
|
+
* writing and never leaks into the next one.
|
|
278
|
+
*/
|
|
279
|
+
get staged(): readonly MessageReference[] {
|
|
280
|
+
return this.#staged;
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
/**
|
|
284
|
+
* Pointing at the same field twice replaces it: the newer value is the one they meant, and one chip is honest.
|
|
285
|
+
*
|
|
286
|
+
* Stages the value only. The caller is the composer's own `@` menu, which is already writing the token as the
|
|
287
|
+
* user picks — `refer` is the entry point for everything that is not the composer.
|
|
288
|
+
*/
|
|
289
|
+
stage = (reference: MessageReference) => {
|
|
290
|
+
this.#stage(Reference.clipped(reference));
|
|
291
|
+
this.#announce();
|
|
292
|
+
};
|
|
293
|
+
|
|
294
|
+
/**
|
|
295
|
+
* Points at something from a component that is not the composer — a card the user clicked beside the data.
|
|
296
|
+
*
|
|
297
|
+
* Two halves, because the composer owns one of them: the value is staged here, and the token the message needs
|
|
298
|
+
* is left for whichever chat is rendering this session's draft to write. That is why nothing is queued when no
|
|
299
|
+
* chat is: the value would sit staged with no token anywhere naming it, and the message text is what decides
|
|
300
|
+
* which references a turn carries — so the user would press a button and watch nothing happen, which is the
|
|
301
|
+
* failure this warns about instead.
|
|
302
|
+
*/
|
|
303
|
+
refer = (reference: MessageReference) => {
|
|
304
|
+
const clipped = Reference.clipped(reference);
|
|
305
|
+
this.#stage(clipped);
|
|
306
|
+
if (this.#chats) this.#inserts = [...this.#inserts.filter((one) => !Reference.same(one, clipped)), clipped];
|
|
307
|
+
else
|
|
308
|
+
console.warn(
|
|
309
|
+
`No chat is rendering this agent session, so "${clipped.label}" was staged with no token written for it. ` +
|
|
310
|
+
"The component calling this and an <Agent.Chat /> have to share one session — check which <Agent.Zone> " +
|
|
311
|
+
"each of them is inside.",
|
|
312
|
+
);
|
|
313
|
+
this.#announce();
|
|
314
|
+
};
|
|
315
|
+
|
|
316
|
+
/**
|
|
317
|
+
* Tokens a chat has not written into its draft yet. State rather than a queue somebody drains, for the reason
|
|
318
|
+
* `pendingApproval` is state: two chats may be mounted on one session — a responsive app renders a desktop and
|
|
319
|
+
* a mobile composer and hides one in CSS — and each holds its own draft, so each has to write the token. A
|
|
320
|
+
* destructive read would hand it to whichever rendered first and leave the other silently without it.
|
|
321
|
+
*/
|
|
322
|
+
get pendingInserts(): readonly MessageReference[] {
|
|
323
|
+
return this.#inserts;
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
/** Idempotent by key: the second chat to apply the same insert is acknowledging one that is already gone. */
|
|
327
|
+
insertApplied = (key: string) => {
|
|
328
|
+
const next = this.#inserts.filter((one) => Reference.keyOf(one) !== key);
|
|
329
|
+
if (next.length === this.#inserts.length) return;
|
|
330
|
+
this.#inserts = next;
|
|
331
|
+
this.#announce();
|
|
332
|
+
};
|
|
333
|
+
|
|
334
|
+
/**
|
|
335
|
+
* Stages references back from a message that was parked behind a running turn. What was pointed at since wins:
|
|
336
|
+
* the parked value is the older read of the same field, and letting it land would undo an edit made in between.
|
|
337
|
+
* No token is written — the parked text carries them already, and the composer is putting that text back.
|
|
338
|
+
*/
|
|
339
|
+
restoreStaged = (references: readonly MessageReference[]) => {
|
|
340
|
+
const fresh = references.filter((one) => !this.#staged.some((held) => Reference.same(held, one)));
|
|
341
|
+
if (!fresh.length) return;
|
|
342
|
+
this.#staged = [...fresh.map((one) => Reference.clipped(one)), ...this.#staged];
|
|
343
|
+
this.#announce();
|
|
344
|
+
};
|
|
345
|
+
|
|
346
|
+
/**
|
|
347
|
+
* Registered by a chat for as long as it is rendering this session's draft, so `refer` can tell the difference
|
|
348
|
+
* between a token nobody has written yet and one nobody ever will.
|
|
349
|
+
*/
|
|
350
|
+
attachChat = () => {
|
|
351
|
+
this.#chats += 1;
|
|
352
|
+
return () => {
|
|
353
|
+
this.#chats = Math.max(0, this.#chats - 1);
|
|
354
|
+
};
|
|
355
|
+
};
|
|
356
|
+
|
|
357
|
+
#stage(clipped: MessageReference) {
|
|
358
|
+
const at = this.#staged.findIndex((one) => Reference.same(one, clipped));
|
|
359
|
+
this.#staged =
|
|
360
|
+
at === -1 ? [...this.#staged, clipped] : this.#staged.map((one, idx) => (idx === at ? clipped : one));
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
/** By key, never by index: what orders the references of a message is its text, and that is not this list. */
|
|
364
|
+
unstage = (key: string) => {
|
|
365
|
+
const next = this.#staged.filter((one) => Reference.keyOf(one) !== key);
|
|
366
|
+
if (next.length === this.#staged.length) return;
|
|
367
|
+
this.#staged = next;
|
|
368
|
+
this.#announce();
|
|
369
|
+
};
|
|
370
|
+
|
|
371
|
+
clearStaged = () => {
|
|
372
|
+
if (!this.#staged.length && !this.#inserts.length) return;
|
|
373
|
+
this.#staged = [];
|
|
374
|
+
this.#inserts = [];
|
|
375
|
+
this.#announce();
|
|
376
|
+
};
|
|
377
|
+
|
|
215
378
|
/** What the tool running now last said about its own progress, for the row that is still spinning. */
|
|
216
379
|
get progress(): (AgentProgressReport & { callId: string }) | null {
|
|
217
380
|
return this.#progress;
|
|
@@ -241,11 +404,13 @@ export class AgentSession {
|
|
|
241
404
|
async #turn(input: string | ChatMessage[]) {
|
|
242
405
|
const controller = new AbortController();
|
|
243
406
|
this.#controller = controller;
|
|
407
|
+
this.#options.onTurn?.(true);
|
|
244
408
|
if (typeof input === "string") this.#append({ role: "user", text: input });
|
|
245
409
|
else for (const message of input) this.#append(message);
|
|
246
410
|
const maxTurns = this.#options.maxTurns ?? 12;
|
|
247
411
|
try {
|
|
248
412
|
let budget = maxTurns;
|
|
413
|
+
let recovered = false;
|
|
249
414
|
for (let turn = 0; ; turn += 1) {
|
|
250
415
|
if (controller.signal.aborted) return;
|
|
251
416
|
if (turn >= budget) {
|
|
@@ -259,12 +424,20 @@ export class AgentSession {
|
|
|
259
424
|
budget = turn + maxTurns;
|
|
260
425
|
}
|
|
261
426
|
await this.#autoCompact(controller.signal);
|
|
262
|
-
const { toolCalls, stop } = await this.#assistantTurn(controller.signal);
|
|
427
|
+
const { toolCalls, stop, overflow } = await this.#assistantTurn(controller.signal);
|
|
263
428
|
|
|
264
429
|
if (controller.signal.aborted) {
|
|
265
430
|
this.#unanswered(toolCalls);
|
|
266
431
|
return;
|
|
267
432
|
}
|
|
433
|
+
if (overflow) {
|
|
434
|
+
if (recovered || !(await this.#recover(overflow, controller.signal))) {
|
|
435
|
+
if (!controller.signal.aborted) this.#fail(overflow.message);
|
|
436
|
+
return;
|
|
437
|
+
}
|
|
438
|
+
recovered = true;
|
|
439
|
+
continue;
|
|
440
|
+
}
|
|
268
441
|
|
|
269
442
|
if (stop === "length") {
|
|
270
443
|
|
|
@@ -292,7 +465,12 @@ export class AgentSession {
|
|
|
292
465
|
this.#active = null;
|
|
293
466
|
this.#pending = null;
|
|
294
467
|
this.#question = null;
|
|
468
|
+
this.#card = null;
|
|
295
469
|
this.#progress = null;
|
|
470
|
+
|
|
471
|
+
const draft = this.#messages[this.#messages.length - 1];
|
|
472
|
+
if (draft?.role === "assistant" && !Transcript.carries(draft)) this.#messages = this.#messages.slice(0, -1);
|
|
473
|
+
this.#options.onTurn?.(false);
|
|
296
474
|
this.#notify();
|
|
297
475
|
}
|
|
298
476
|
}
|
|
@@ -312,7 +490,9 @@ export class AgentSession {
|
|
|
312
490
|
await this.#active;
|
|
313
491
|
}
|
|
314
492
|
this.#messages = [];
|
|
315
|
-
this.#
|
|
493
|
+
this.#staged = [];
|
|
494
|
+
this.#inserts = [];
|
|
495
|
+
this.#compactFloor = { transcript: 0, prompt: 0 };
|
|
316
496
|
|
|
317
497
|
if (this.#saveTimer) {
|
|
318
498
|
clearTimeout(this.#saveTimer);
|
|
@@ -411,11 +591,28 @@ export class AgentSession {
|
|
|
411
591
|
}
|
|
412
592
|
};
|
|
413
593
|
|
|
414
|
-
/** What the transcript is estimated to cost the next turn, in tokens — the number
|
|
594
|
+
/** What the transcript is estimated to cost the next turn, in tokens — the number the `at` ceiling watches. */
|
|
415
595
|
get tokens() {
|
|
416
596
|
return Compaction.tokensOf(this.#messages);
|
|
417
597
|
}
|
|
418
598
|
|
|
599
|
+
/**
|
|
600
|
+
* How close the conversation is to summarizing itself, measured against whichever trigger is nearer: the `at`
|
|
601
|
+
* ceiling over the transcript, or the window guard over the whole prompt once the backend has reported its
|
|
602
|
+
* window. Each pair is in its own unit, which is why only the nearer one is answered. No `compactAt` means
|
|
603
|
+
* nothing will compact it.
|
|
604
|
+
*/
|
|
605
|
+
get context(): { used: number; compactAt?: number } {
|
|
606
|
+
const { at, buffer } = this.#compactOptions;
|
|
607
|
+
const prompt = Compaction.promptTokensOf(this.#messages, () => this.#overhead);
|
|
608
|
+
if (!at) return { used: prompt };
|
|
609
|
+
const guard = Compaction.thresholdOf(this.#limits, buffer);
|
|
610
|
+
const ceiling = Number.isFinite(at) ? { used: Compaction.tokensOf(this.#messages), compactAt: at } : null;
|
|
611
|
+
const window = Number.isFinite(guard) ? { used: prompt, compactAt: guard } : null;
|
|
612
|
+
if (ceiling && window) return ceiling.used / ceiling.compactAt >= window.used / window.compactAt ? ceiling : window;
|
|
613
|
+
return ceiling ?? window ?? { used: prompt };
|
|
614
|
+
}
|
|
615
|
+
|
|
419
616
|
/** Records a host-side failure (a prompt fetch, an upload) in the transcript, where every other failure lands. */
|
|
420
617
|
report = (error: string) => {
|
|
421
618
|
this.#append({ role: "assistant", error });
|
|
@@ -436,7 +633,7 @@ export class AgentSession {
|
|
|
436
633
|
if (!summary || signal.aborted) return false;
|
|
437
634
|
const replaced = this.#messages.slice(0, at);
|
|
438
635
|
const message = Compaction.message(summary);
|
|
439
|
-
this.#messages = [message, ...this.#messages.slice(at)];
|
|
636
|
+
this.#messages = [message, ...this.#messages.slice(at).map(Transcript.unmeasured)];
|
|
440
637
|
try {
|
|
441
638
|
this.#onCompact?.(replaced, message);
|
|
442
639
|
} catch {
|
|
@@ -450,13 +647,21 @@ export class AgentSession {
|
|
|
450
647
|
|
|
451
648
|
/**
|
|
452
649
|
* Runs before the turn that would have overflowed rather than after it fails: the provider answers a request
|
|
453
|
-
* that is too long with a refusal, not with a shorter answer, so
|
|
454
|
-
* Best effort — a summary that cannot be produced leaves the transcript as it stands and the turn goes
|
|
455
|
-
* it would have, since it may well still fit.
|
|
650
|
+
* that is too long with a refusal, not with a shorter answer, so waiting for one costs a round trip that was
|
|
651
|
+
* refused. Best effort — a summary that cannot be produced leaves the transcript as it stands and the turn goes
|
|
652
|
+
* out as it would have, since it may well still fit.
|
|
456
653
|
*/
|
|
457
654
|
async #autoCompact(signal: AbortSignal) {
|
|
458
|
-
const { at
|
|
459
|
-
if (!at
|
|
655
|
+
const { at, keep, buffer } = this.#compactOptions;
|
|
656
|
+
if (!at) return;
|
|
657
|
+
const guard = Compaction.thresholdOf(this.#limits, buffer);
|
|
658
|
+
const measure = () => ({
|
|
659
|
+
transcript: Compaction.tokensOf(this.#messages),
|
|
660
|
+
prompt: Compaction.promptTokensOf(this.#messages, () => AgentSession.#tokensOfFrame(this.#frame())),
|
|
661
|
+
});
|
|
662
|
+
const before = measure();
|
|
663
|
+
const floor = this.#compactFloor;
|
|
664
|
+
if (before.transcript < Math.max(at, floor.transcript) && before.prompt <= Math.max(guard, floor.prompt)) return;
|
|
460
665
|
let compacted = false;
|
|
461
666
|
try {
|
|
462
667
|
compacted = await this.#compact(keep, signal);
|
|
@@ -465,9 +670,57 @@ export class AgentSession {
|
|
|
465
670
|
console.warn(`[use-agentic] compaction failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
466
671
|
return;
|
|
467
672
|
}
|
|
468
|
-
const after =
|
|
673
|
+
const after = measure();
|
|
469
674
|
|
|
470
|
-
this.#compactFloor =
|
|
675
|
+
this.#compactFloor = {
|
|
676
|
+
transcript: compacted && after.transcript >= at ? after.transcript + at : 0,
|
|
677
|
+
prompt: compacted && after.prompt > guard ? after.prompt + buffer : 0,
|
|
678
|
+
};
|
|
679
|
+
}
|
|
680
|
+
|
|
681
|
+
/**
|
|
682
|
+
* Answers a refusal for length the one way a session can: compact, and ask again. Once per send — a transcript
|
|
683
|
+
* refused again after its own summary is not one another summary will fit — and never where the host turned
|
|
684
|
+
* automatic compaction off, since that host keeps the window itself.
|
|
685
|
+
*/
|
|
686
|
+
async #recover(overflow: { limit?: number }, signal: AbortSignal): Promise<boolean> {
|
|
687
|
+
if (overflow.limit) this.#limits = { ...this.#limits, window: overflow.limit };
|
|
688
|
+
const { at, keep } = this.#compactOptions;
|
|
689
|
+
if (!at) return false;
|
|
690
|
+
const draft = this.#messages[this.#messages.length - 1];
|
|
691
|
+
if (draft?.role === "assistant" && !Transcript.carries(draft)) this.#messages = this.#messages.slice(0, -1);
|
|
692
|
+
try {
|
|
693
|
+
return await this.#compact(keep, signal);
|
|
694
|
+
} catch (error) {
|
|
695
|
+
console.warn(`[use-agentic] compaction failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
696
|
+
return false;
|
|
697
|
+
}
|
|
698
|
+
}
|
|
699
|
+
|
|
700
|
+
get #compactOptions() {
|
|
701
|
+
const {
|
|
702
|
+
at = Compaction.defaults.at,
|
|
703
|
+
keep = Compaction.defaults.keep,
|
|
704
|
+
buffer = Compaction.defaults.buffer,
|
|
705
|
+
} = this.#options.compact ?? {};
|
|
706
|
+
return { at, keep, buffer };
|
|
707
|
+
}
|
|
708
|
+
|
|
709
|
+
/** What rides every turn beside the transcript. Read per turn, because the screen it describes moves. */
|
|
710
|
+
#frame(): Omit<RunnerRequest, "messages" | "signal"> {
|
|
711
|
+
const { tools, guides } = this.#surface.snapshot();
|
|
712
|
+
const instructions = [this.#options.instructions, ...guides].filter(Boolean).join("\n\n");
|
|
713
|
+
return {
|
|
714
|
+
tools: tools.some((tool) => tool.name === AgentSession.askUserTool.name)
|
|
715
|
+
? tools
|
|
716
|
+
: [...tools, AgentSession.askUserTool],
|
|
717
|
+
context: this.#options.buildContext?.(this.#surface) ?? AgentSession.#defaultContext(this.#surface),
|
|
718
|
+
...(instructions ? { instructions } : {}),
|
|
719
|
+
};
|
|
720
|
+
}
|
|
721
|
+
|
|
722
|
+
static #tokensOfFrame(frame: Omit<RunnerRequest, "messages" | "signal">): number {
|
|
723
|
+
return Math.ceil(JSON.stringify(frame).length / 4);
|
|
471
724
|
}
|
|
472
725
|
|
|
473
726
|
/** No tools and no screen context: this turn summarizes the conversation, and must not act on it. */
|
|
@@ -488,32 +741,33 @@ export class AgentSession {
|
|
|
488
741
|
return text;
|
|
489
742
|
}
|
|
490
743
|
|
|
491
|
-
async #assistantTurn(
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
const
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
? tools
|
|
498
|
-
: [...tools, AgentSession.askUserTool],
|
|
499
|
-
context: this.#options.buildContext?.(this.#surface) ?? AgentSession.#defaultContext(this.#surface),
|
|
500
|
-
...(instructions ? { instructions } : {}),
|
|
501
|
-
signal,
|
|
502
|
-
};
|
|
744
|
+
async #assistantTurn(
|
|
745
|
+
signal: AbortSignal,
|
|
746
|
+
): Promise<{ toolCalls: ToolCallRequest[]; stop: TurnStop; overflow?: { message: string; limit?: number } }> {
|
|
747
|
+
const frame = this.#frame();
|
|
748
|
+
this.#overhead = AgentSession.#tokensOfFrame(frame);
|
|
749
|
+
const request: RunnerRequest = { messages: Transcript.wire(this.#messages), ...frame, signal };
|
|
503
750
|
this.#append({ role: "assistant" });
|
|
504
751
|
let text = "";
|
|
505
752
|
const toolCalls: ToolCallRequest[] = [];
|
|
506
753
|
let stop: TurnStop = "end";
|
|
754
|
+
let usage: TurnUsage | undefined;
|
|
507
755
|
for await (const event of this.#runner.run(request)) {
|
|
508
756
|
if (signal.aborted) break;
|
|
509
757
|
if (event.type === "text") {
|
|
510
758
|
text += event.delta;
|
|
511
759
|
this.#patchLast({ text });
|
|
512
760
|
} else if (event.type === "toolCall") toolCalls.push({ id: event.id, name: event.name, args: event.args });
|
|
513
|
-
else if (event.type === "done")
|
|
761
|
+
else if (event.type === "done") {
|
|
762
|
+
stop = event.stop;
|
|
763
|
+
usage = event.usage;
|
|
764
|
+
if (event.limits) this.#limits = { ...this.#limits, ...event.limits };
|
|
765
|
+
} else if (event.overflow)
|
|
766
|
+
return { toolCalls: [], stop: "end", overflow: { message: event.message, limit: event.overflow.limit } };
|
|
514
767
|
else throw new Error(event.message);
|
|
515
768
|
}
|
|
516
|
-
if (toolCalls.length
|
|
769
|
+
if (toolCalls.length || usage)
|
|
770
|
+
this.#patchLast({ ...(toolCalls.length ? { toolCalls } : {}), ...(usage ? { usage } : {}) });
|
|
517
771
|
return { toolCalls, stop };
|
|
518
772
|
}
|
|
519
773
|
|
|
@@ -572,6 +826,28 @@ export class AgentSession {
|
|
|
572
826
|
});
|
|
573
827
|
}
|
|
574
828
|
|
|
829
|
+
#awaitCard(request: ToolCardRequest, signal: AbortSignal): Promise<ToolCardAnswer> {
|
|
830
|
+
return new Promise((resolve) => {
|
|
831
|
+
const settle = (answer: ToolCardAnswer) => {
|
|
832
|
+
this.#card = null;
|
|
833
|
+
signal.removeEventListener("abort", onAbort);
|
|
834
|
+
this.#notify();
|
|
835
|
+
resolve(answer);
|
|
836
|
+
};
|
|
837
|
+
const onAbort = () => settle({ error: "The user aborted the turn." });
|
|
838
|
+
signal.addEventListener("abort", onAbort);
|
|
839
|
+
this.#card = {
|
|
840
|
+
callId: request.callId,
|
|
841
|
+
name: request.name,
|
|
842
|
+
args: request.args,
|
|
843
|
+
render: request.render,
|
|
844
|
+
submit: (value) => settle({ result: value }),
|
|
845
|
+
dismiss: (reason) => settle({ error: reason ?? "The user closed the card without filling it in." }),
|
|
846
|
+
};
|
|
847
|
+
this.#notify();
|
|
848
|
+
});
|
|
849
|
+
}
|
|
850
|
+
|
|
575
851
|
#awaitApproval(request: ToolApprovalRequest, signal: AbortSignal): Promise<true | string> {
|
|
576
852
|
return new Promise((resolve) => {
|
|
577
853
|
const settle = (value: true | string) => {
|
|
@@ -628,9 +904,17 @@ export class AgentSession {
|
|
|
628
904
|
}
|
|
629
905
|
|
|
630
906
|
#notify() {
|
|
907
|
+
this.#announce();
|
|
908
|
+
this.#schedulePersist();
|
|
909
|
+
}
|
|
910
|
+
|
|
911
|
+
/**
|
|
912
|
+
* A change that is not the transcript's. Staged references live beside the messages rather than in them, so
|
|
913
|
+
* announcing one has to redraw the composer without scheduling a save of messages nothing touched.
|
|
914
|
+
*/
|
|
915
|
+
#announce() {
|
|
631
916
|
this.#version += 1;
|
|
632
917
|
for (const listener of this.#listeners) listener();
|
|
633
|
-
this.#schedulePersist();
|
|
634
918
|
}
|
|
635
919
|
|
|
636
920
|
/** Debounced: streaming patches the last message on every delta, and a save per delta would thrash storage. */
|
|
@@ -183,6 +183,8 @@ export class AgenticSurface {
|
|
|
183
183
|
try {
|
|
184
184
|
const verdict = entry.guard?.(args) ?? true;
|
|
185
185
|
if (verdict !== true) throw new Error(verdict);
|
|
186
|
+
|
|
187
|
+
if (!entry.run) throw new Error(`${name} is answered by the user, and this caller cannot ask them.`);
|
|
186
188
|
return await entry.run(args);
|
|
187
189
|
} catch (error) {
|
|
188
190
|
record.error = error instanceof Error ? error.message : String(error);
|
|
@@ -1,10 +1,20 @@
|
|
|
1
|
-
import type { ChatMessage } from "./types";
|
|
1
|
+
import type { ChatMessage, MessageAttachment, TurnLimits } from "./types";
|
|
2
2
|
|
|
3
3
|
export interface CompactOptions {
|
|
4
|
-
/**
|
|
4
|
+
/**
|
|
5
|
+
* Estimated transcript tokens above which a turn summarizes its own history first — a ceiling on what each turn
|
|
6
|
+
* costs, apart from the window guard. `Infinity` leaves only the guard; `0` turns automatic compaction off
|
|
7
|
+
* altogether, the guard and the recovery from a refusal included.
|
|
8
|
+
*/
|
|
5
9
|
at?: number;
|
|
6
10
|
/** Messages left verbatim below the summary. The cut slides down to the first message that can safely open one. */
|
|
7
11
|
keep?: number;
|
|
12
|
+
/**
|
|
13
|
+
* Tokens held free below the model's window on top of its answer ceiling, once the backend has reported the
|
|
14
|
+
* window. It covers what the estimate cannot see: what arrived after the provider last counted, and a screen
|
|
15
|
+
* that changed since.
|
|
16
|
+
*/
|
|
17
|
+
buffer?: number;
|
|
8
18
|
/** Produces the summary from the digest. Default: one tool-less turn through the session's own runner. */
|
|
9
19
|
summarize?: (digest: string, signal: AbortSignal) => Promise<string>;
|
|
10
20
|
}
|
|
@@ -16,14 +26,27 @@ export interface CompactOptions {
|
|
|
16
26
|
*/
|
|
17
27
|
export class Compaction {
|
|
18
28
|
/**
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
29
|
+
* `at` is a ceiling on cost rather than on the window. The relay holds no session, so every turn resends the
|
|
30
|
+
* whole transcript and the app pays for each one — a chat left to fill a million-token window prefills most of
|
|
31
|
+
* a million tokens per answer. The window is guarded on its own once the backend reports it, and `buffer` is the
|
|
32
|
+
* margin that guard holds back: 13k, the one Claude Code leaves below its own threshold.
|
|
33
|
+
*/
|
|
34
|
+
static readonly defaults = { at: 24_000, keep: 6, buffer: 13_000 };
|
|
35
|
+
|
|
36
|
+
/** The answer ceiling assumed when the backend did not report one — the one most relays request when they do. */
|
|
37
|
+
static readonly answerTokens = 8_192;
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* What one inlined picture costs a turn. A provider bills a picture by its pixels after its own downscale, not by
|
|
41
|
+
* its bytes — Anthropic lands near 1,600 tokens and OpenAI's high-detail tiles under that — so counted as base64
|
|
42
|
+
* a 300KB screenshot reads as 100k tokens and compacts itself out of the very task it was attached to.
|
|
22
43
|
*/
|
|
23
|
-
static readonly
|
|
44
|
+
static readonly imageTokens = 1_600;
|
|
24
45
|
|
|
25
46
|
static readonly instruction =
|
|
26
47
|
"Summarize the conversation below so you can carry it on with the summary in place of the messages themselves. " +
|
|
48
|
+
"If it opens with a previous summary, carry forward everything in it that still matters: nothing else remembers " +
|
|
49
|
+
"what came before it. " +
|
|
27
50
|
"Keep what the user is trying to do, the decisions taken, the facts and tool results that still matter, and " +
|
|
28
51
|
"anything left unfinished. Drop pleasantries and anything already superseded. Write compact notes, not prose, " +
|
|
29
52
|
"and write nothing but the summary itself.";
|
|
@@ -35,10 +58,49 @@ export class Compaction {
|
|
|
35
58
|
*/
|
|
36
59
|
static tokensOf(messages: readonly ChatMessage[]): number {
|
|
37
60
|
let chars = 0;
|
|
38
|
-
for (const message of messages) if (!message.local) chars +=
|
|
61
|
+
for (const message of messages) if (!message.local) chars += Compaction.#charsOf(message);
|
|
39
62
|
return Math.ceil(chars / 4);
|
|
40
63
|
}
|
|
41
64
|
|
|
65
|
+
/**
|
|
66
|
+
* What the next request is estimated to cost, prompt and all: the provider's own count for the last turn that
|
|
67
|
+
* reported one, plus four characters a token for what the transcript gained since. The provider's number is the
|
|
68
|
+
* one that knows its tokenizer — Hangul sits nearer one character a token than four — so the rule only has to
|
|
69
|
+
* cover the tail. With no count to start from, `overhead` stands in for what rides every turn beside the
|
|
70
|
+
* transcript: the tools, the screen context and the instructions.
|
|
71
|
+
*/
|
|
72
|
+
static promptTokensOf(messages: readonly ChatMessage[], overhead: () => number): number {
|
|
73
|
+
for (let at = messages.length - 1; at >= 0; at -= 1) {
|
|
74
|
+
const { usage } = messages[at];
|
|
75
|
+
if (usage) return usage.input + usage.output + Compaction.tokensOf(messages.slice(at + 1));
|
|
76
|
+
}
|
|
77
|
+
return Compaction.tokensOf(messages) + overhead();
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* The prompt size past which a turn compacts first, or `Infinity` while the window is unknown. The answer shares
|
|
82
|
+
* the window with the prompt, so its ceiling is held back along with `buffer`.
|
|
83
|
+
*/
|
|
84
|
+
static thresholdOf(limits: TurnLimits, buffer: number): number {
|
|
85
|
+
if (!limits.window) return Number.POSITIVE_INFINITY;
|
|
86
|
+
return limits.window - (limits.output ?? Compaction.answerTokens) - buffer;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
static #charsOf(message: ChatMessage): number {
|
|
90
|
+
const posted = message.usage ? { ...message, usage: undefined } : message;
|
|
91
|
+
const images = message.attachments?.filter(Compaction.#isInlinedImage).length ?? 0;
|
|
92
|
+
if (!images) return JSON.stringify(posted).length;
|
|
93
|
+
const attachments = message.attachments?.map((attachment) =>
|
|
94
|
+
Compaction.#isInlinedImage(attachment) ? { ...attachment, data: "" } : attachment,
|
|
95
|
+
);
|
|
96
|
+
return JSON.stringify({ ...posted, attachments }).length + images * Compaction.imageTokens * 4;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
static #isInlinedImage(attachment: MessageAttachment): boolean {
|
|
100
|
+
|
|
101
|
+
return !!attachment.data && !!attachment.mimeType?.startsWith("image/");
|
|
102
|
+
}
|
|
103
|
+
|
|
42
104
|
/**
|
|
43
105
|
* Where the kept half starts, or `-1` when nothing can be cut. A user message is the boundary to prefer —
|
|
44
106
|
* everything above it is settled — but one assistant turn that ran ten tools leaves no user message anywhere
|
|
@@ -66,9 +128,21 @@ export class Compaction {
|
|
|
66
128
|
/**
|
|
67
129
|
* The messages as one bounded block of text. Bounded is the point: the transcript being summarized is the one
|
|
68
130
|
* that no longer fits, so feeding it back verbatim would fail exactly where compaction is needed most.
|
|
131
|
+
*
|
|
132
|
+
* A previous summary is the exception: carried whole, outside the bound and under its own label. It is the only
|
|
133
|
+
* record of everything compacted before it, so whatever is clipped from it here the next summary loses for good —
|
|
134
|
+
* and it wears the user's role on the wire without being anything the user said.
|
|
69
135
|
*/
|
|
70
136
|
static digest(messages: readonly ChatMessage[], budget = 12_000): string {
|
|
71
|
-
const
|
|
137
|
+
const sent = messages.filter((message) => !message.local);
|
|
138
|
+
const previous = sent
|
|
139
|
+
.filter((message) => message.summary)
|
|
140
|
+
.map((message) => `previous summary:\n${message.text ?? ""}`);
|
|
141
|
+
const lines = sent.filter((message) => !message.summary).map((message) => Compaction.#line(message));
|
|
142
|
+
return [...previous, Compaction.#fit(lines, budget)].filter(Boolean).join("\n");
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
static #fit(lines: readonly string[], budget: number): string {
|
|
72
146
|
if (lines.reduce((sum, line) => sum + line.length + 1, 0) <= budget) return lines.join("\n");
|
|
73
147
|
|
|
74
148
|
const head: string[] = [];
|
|
@@ -100,7 +174,15 @@ export class Compaction {
|
|
|
100
174
|
static #line(message: ChatMessage): string {
|
|
101
175
|
const parts: string[] = [];
|
|
102
176
|
if (message.text) parts.push(Compaction.#clip(message.text, 1200));
|
|
103
|
-
|
|
177
|
+
|
|
178
|
+
for (const attachment of message.attachments ?? [])
|
|
179
|
+
parts.push(`[attached ${attachment.name}, content not carried into this summary]`);
|
|
180
|
+
|
|
181
|
+
for (const reference of message.references ?? [])
|
|
182
|
+
parts.push(
|
|
183
|
+
`[referenced ${reference.refName}/${reference.refId}${reference.path ? `#${reference.path}` : ""}` +
|
|
184
|
+
` (${reference.label}), value not carried into this summary]`,
|
|
185
|
+
);
|
|
104
186
|
for (const call of message.toolCalls ?? [])
|
|
105
187
|
parts.push(`[called ${call.name} ${Compaction.#clip(JSON.stringify(call.args), 200)}]`);
|
|
106
188
|
for (const result of message.toolResults ?? [])
|