veryfront 0.1.759 → 0.1.761
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/esm/cli/commands/init/catalog.d.ts.map +1 -1
- package/esm/cli/commands/init/catalog.js +116 -1
- package/esm/cli/shared/config.d.ts +0 -6
- package/esm/cli/shared/config.d.ts.map +1 -1
- package/esm/cli/shared/config.js +64 -8
- package/esm/cli/templates/integration-loader.d.ts.map +1 -1
- package/esm/cli/templates/integration-loader.js +2 -52
- package/esm/deno.d.ts +5 -16
- package/esm/deno.js +6 -17
- package/esm/src/agent/ag-ui/tool-shared.d.ts.map +1 -1
- package/esm/src/agent/ag-ui/tool-shared.js +7 -1
- package/esm/src/agent/child-run/invoke-agent-child-runs.d.ts +0 -1
- package/esm/src/agent/child-run/invoke-agent-child-runs.d.ts.map +1 -1
- package/esm/src/agent/child-run/invoke-agent-child-runs.js +0 -1
- package/esm/src/agent/conversation/bootstrap.d.ts +0 -1
- package/esm/src/agent/conversation/bootstrap.d.ts.map +1 -1
- package/esm/src/agent/conversation/bootstrap.js +0 -1
- package/esm/src/agent/conversation/durable.d.ts +0 -1
- package/esm/src/agent/conversation/durable.d.ts.map +1 -1
- package/esm/src/agent/conversation/durable.js +0 -1
- package/esm/src/agent/factory.d.ts.map +1 -1
- package/esm/src/agent/factory.js +7 -1
- package/esm/src/agent/hosted/chat-preparation.d.ts +1 -1
- package/esm/src/agent/hosted/chat-preparation.d.ts.map +1 -1
- package/esm/src/agent/hosted/chat-preparation.js +17 -3
- package/esm/src/agent/hosted/chat-runtime-contract.d.ts +2 -0
- package/esm/src/agent/hosted/chat-runtime-contract.d.ts.map +1 -1
- package/esm/src/agent/hosted/default-chat-runtime.d.ts +2 -0
- package/esm/src/agent/hosted/default-chat-runtime.d.ts.map +1 -1
- package/esm/src/agent/hosted/default-chat-runtime.js +1 -0
- package/esm/src/agent/hosted/default-project-steering-refresh.js +1 -1
- package/esm/src/agent/hosted/project-steering-adapter.d.ts +7 -0
- package/esm/src/agent/hosted/project-steering-adapter.d.ts.map +1 -1
- package/esm/src/agent/hosted/project-steering-adapter.js +12 -1
- package/esm/src/agent/hosted/veryfront-cloud-agent-service.d.ts +4 -0
- package/esm/src/agent/hosted/veryfront-cloud-agent-service.d.ts.map +1 -1
- package/esm/src/agent/hosted/veryfront-cloud-agent-service.js +14 -12
- package/esm/src/agent/index.d.ts +1 -0
- package/esm/src/agent/index.d.ts.map +1 -1
- package/esm/src/agent/index.js +1 -0
- package/esm/src/agent/project/context.d.ts +2 -0
- package/esm/src/agent/project/context.d.ts.map +1 -1
- package/esm/src/agent/project/context.js +1 -0
- package/esm/src/agent/project/steering-mutation.d.ts.map +1 -1
- package/esm/src/agent/project/steering-mutation.js +7 -1
- package/esm/src/agent/runtime/agent-definition.d.ts +6 -0
- package/esm/src/agent/runtime/agent-definition.d.ts.map +1 -1
- package/esm/src/agent/runtime/agent-definition.js +46 -0
- package/esm/src/agent/runtime/agent-delegation-names.d.ts +5 -0
- package/esm/src/agent/runtime/agent-delegation-names.d.ts.map +1 -0
- package/esm/src/agent/runtime/agent-delegation-names.js +8 -0
- package/esm/src/agent/runtime/agent-delegation.d.ts +32 -0
- package/esm/src/agent/runtime/agent-delegation.d.ts.map +1 -0
- package/esm/src/agent/runtime/agent-delegation.js +57 -0
- package/esm/src/agent/runtime/agent-markdown-adapter.d.ts.map +1 -1
- package/esm/src/agent/runtime/agent-markdown-adapter.js +24 -0
- package/esm/src/agent/runtime/index.d.ts.map +1 -1
- package/esm/src/agent/runtime/index.js +8 -0
- package/esm/src/agent/runtime/local-tool.d.ts +6 -0
- package/esm/src/agent/runtime/local-tool.d.ts.map +1 -0
- package/esm/src/agent/runtime/local-tool.js +15 -0
- package/esm/src/agent/runtime/project-skill-catalog.d.ts.map +1 -1
- package/esm/src/agent/runtime/project-skill-catalog.js +67 -0
- package/esm/src/agent/runtime/project-skill-loader.d.ts +9 -0
- package/esm/src/agent/runtime/project-skill-loader.d.ts.map +1 -1
- package/esm/src/agent/runtime/project-skill-loader.js +44 -6
- package/esm/src/agent/runtime/skill-metadata.d.ts +23 -0
- package/esm/src/agent/runtime/skill-metadata.d.ts.map +1 -1
- package/esm/src/agent/runtime/skill-metadata.js +11 -0
- package/esm/src/agent/runtime/tool-helpers.d.ts +3 -1
- package/esm/src/agent/runtime/tool-helpers.d.ts.map +1 -1
- package/esm/src/agent/runtime/tool-helpers.js +45 -11
- package/esm/src/agent/service/request-auth-cache.d.ts +0 -1
- package/esm/src/agent/service/request-auth-cache.d.ts.map +1 -1
- package/esm/src/agent/service/request-auth-cache.js +0 -1
- package/esm/src/channels/control-plane.d.ts +1 -0
- package/esm/src/channels/control-plane.d.ts.map +1 -1
- package/esm/src/channels/control-plane.js +4 -2
- package/esm/src/chat/ag-ui.d.ts.map +1 -1
- package/esm/src/chat/conversation.d.ts.map +1 -1
- package/esm/src/chat/final-step-fallback.d.ts.map +1 -1
- package/esm/src/chat/protocol.d.ts.map +1 -1
- package/esm/src/chat/protocol.js +1 -0
- package/esm/src/chat/provider-errors.d.ts.map +1 -1
- package/esm/src/chat/provider-errors.js +0 -1
- package/esm/src/chat/stream-watchdog.d.ts +0 -1
- package/esm/src/chat/stream-watchdog.d.ts.map +1 -1
- package/esm/src/chat/stream-watchdog.js +0 -1
- package/esm/src/config/environment-config.d.ts +1 -0
- package/esm/src/config/environment-config.d.ts.map +1 -1
- package/esm/src/config/environment-config.js +4 -0
- package/esm/src/discovery/agent-scoped-capabilities.d.ts +54 -0
- package/esm/src/discovery/agent-scoped-capabilities.d.ts.map +1 -0
- package/esm/src/discovery/agent-scoped-capabilities.js +228 -0
- package/esm/src/discovery/discovery-engine.d.ts.map +1 -1
- package/esm/src/discovery/discovery-engine.js +19 -15
- package/esm/src/discovery/file-discovery.d.ts +10 -0
- package/esm/src/discovery/file-discovery.d.ts.map +1 -1
- package/esm/src/discovery/file-discovery.js +46 -0
- package/esm/src/discovery/handlers/runtime-agent-markdown-handler.d.ts +12 -0
- package/esm/src/discovery/handlers/runtime-agent-markdown-handler.d.ts.map +1 -1
- package/esm/src/discovery/handlers/runtime-agent-markdown-handler.js +99 -22
- package/esm/src/errors/error-registry/agent.d.ts +2 -0
- package/esm/src/errors/error-registry/agent.d.ts.map +1 -1
- package/esm/src/errors/error-registry/agent.js +8 -0
- package/esm/src/errors/error-registry.d.ts +1 -0
- package/esm/src/errors/error-registry.d.ts.map +1 -1
- package/esm/src/extensions/errors.d.ts +2 -0
- package/esm/src/extensions/errors.d.ts.map +1 -1
- package/esm/src/extensions/errors.js +8 -0
- package/esm/src/extensions/loader.d.ts +9 -6
- package/esm/src/extensions/loader.d.ts.map +1 -1
- package/esm/src/extensions/loader.js +39 -4
- package/esm/src/extensions/orchestrate.d.ts +3 -0
- package/esm/src/extensions/orchestrate.d.ts.map +1 -1
- package/esm/src/extensions/orchestrate.js +3 -1
- package/esm/src/integrations/_data.d.ts.map +1 -1
- package/esm/src/integrations/_data.js +31348 -7873
- package/esm/src/integrations/_tool_summaries.d.ts.map +1 -1
- package/esm/src/integrations/_tool_summaries.js +1737 -11
- package/esm/src/integrations/feature-flags.d.ts +1 -1
- package/esm/src/integrations/feature-flags.d.ts.map +1 -1
- package/esm/src/integrations/feature-flags.js +83 -0
- package/esm/src/integrations/schema.d.ts +129 -4
- package/esm/src/integrations/schema.d.ts.map +1 -1
- package/esm/src/integrations/schema.js +126 -1
- package/esm/src/internal-agents/run-stream.d.ts +4 -0
- package/esm/src/internal-agents/run-stream.d.ts.map +1 -1
- package/esm/src/internal-agents/run-stream.js +18 -5
- package/esm/src/mcp/server.d.ts.map +1 -1
- package/esm/src/mcp/server.js +5 -0
- package/esm/src/platform/adapters/base.d.ts +7 -0
- package/esm/src/platform/adapters/base.d.ts.map +1 -1
- package/esm/src/platform/adapters/runtime/deno/adapter.d.ts.map +1 -1
- package/esm/src/platform/adapters/runtime/deno/adapter.js +7 -2
- package/esm/src/registry/project-scoped-registry-manager.d.ts +7 -0
- package/esm/src/registry/project-scoped-registry-manager.d.ts.map +1 -1
- package/esm/src/registry/project-scoped-registry-manager.js +10 -0
- package/esm/src/registry/scoped-registry-facade.d.ts +2 -0
- package/esm/src/registry/scoped-registry-facade.d.ts.map +1 -1
- package/esm/src/registry/scoped-registry-facade.js +4 -0
- package/esm/src/rendering/layouts/utils/component-loader.d.ts +1 -1
- package/esm/src/rendering/layouts/utils/component-loader.d.ts.map +1 -1
- package/esm/src/rendering/layouts/utils/component-loader.js +82 -3
- package/esm/src/rendering/orchestrator/css-cache.d.ts +3 -0
- package/esm/src/rendering/orchestrator/css-cache.d.ts.map +1 -1
- package/esm/src/rendering/orchestrator/css-cache.js +16 -8
- package/esm/src/rendering/orchestrator/mdx.d.ts.map +1 -1
- package/esm/src/rendering/orchestrator/mdx.js +12 -1
- package/esm/src/server/bootstrap.d.ts.map +1 -1
- package/esm/src/server/bootstrap.js +3 -0
- package/esm/src/server/handlers/dev/dashboard/api.js +6 -3
- package/esm/src/server/handlers/request/agent-stream.handler.d.ts.map +1 -1
- package/esm/src/server/handlers/request/agent-stream.handler.js +10 -0
- package/esm/src/server/handlers/request/channel-invoke.handler.d.ts.map +1 -1
- package/esm/src/server/handlers/request/channel-invoke.handler.js +8 -0
- package/esm/src/server/handlers/request/runtime-shutdown-response.d.ts +13 -0
- package/esm/src/server/handlers/request/runtime-shutdown-response.d.ts.map +1 -0
- package/esm/src/server/handlers/request/runtime-shutdown-response.js +16 -0
- package/esm/src/server/production-server.d.ts.map +1 -1
- package/esm/src/server/production-server.js +7 -1
- package/esm/src/server/services/rsc/endpoints/rsc-bundles.generated.d.ts.map +1 -1
- package/esm/src/server/services/rsc/endpoints/rsc-bundles.generated.js +2 -2
- package/esm/src/server/shutdown-state.d.ts +16 -0
- package/esm/src/server/shutdown-state.d.ts.map +1 -0
- package/esm/src/server/shutdown-state.js +22 -0
- package/esm/src/skill/index.d.ts +1 -1
- package/esm/src/skill/index.d.ts.map +1 -1
- package/esm/src/skill/index.js +1 -1
- package/esm/src/skill/registry.d.ts +29 -3
- package/esm/src/skill/registry.d.ts.map +1 -1
- package/esm/src/skill/registry.js +57 -8
- package/esm/src/skill/tools.d.ts.map +1 -1
- package/esm/src/skill/tools.js +27 -25
- package/esm/src/skill/types.d.ts +8 -0
- package/esm/src/skill/types.d.ts.map +1 -1
- package/esm/src/tool/executor.d.ts +7 -1
- package/esm/src/tool/executor.d.ts.map +1 -1
- package/esm/src/tool/executor.js +12 -1
- package/esm/src/tool/index.d.ts +1 -1
- package/esm/src/tool/index.d.ts.map +1 -1
- package/esm/src/tool/index.js +1 -1
- package/esm/src/tool/registry.d.ts +1 -0
- package/esm/src/tool/registry.d.ts.map +1 -1
- package/esm/src/tool/registry.js +25 -0
- package/esm/src/tool/types.d.ts +9 -0
- package/esm/src/tool/types.d.ts.map +1 -1
- package/esm/src/utils/constants/cache.d.ts +8 -0
- package/esm/src/utils/constants/cache.d.ts.map +1 -1
- package/esm/src/utils/constants/cache.js +8 -0
- package/esm/src/utils/constants/index.d.ts +1 -1
- package/esm/src/utils/constants/index.d.ts.map +1 -1
- package/esm/src/utils/constants/index.js +1 -1
- package/esm/src/utils/index.d.ts +1 -1
- package/esm/src/utils/index.d.ts.map +1 -1
- package/esm/src/utils/index.js +1 -1
- package/esm/src/utils/lru-wrapper.d.ts +2 -0
- package/esm/src/utils/lru-wrapper.d.ts.map +1 -1
- package/esm/src/utils/lru-wrapper.js +1 -0
- package/esm/src/utils/version-constant.d.ts +1 -1
- package/esm/src/utils/version-constant.js +1 -1
- package/package.json +1 -45
- package/esm/src/chat/compat.d.ts +0 -782
- package/esm/src/chat/compat.d.ts.map +0 -1
- package/esm/src/chat/compat.js +0 -113
|
@@ -7,7 +7,7 @@ import { createAgentServiceSandboxTools } from "../sandbox/index.js";
|
|
|
7
7
|
import { tryResolve } from "../extensions/contracts.js";
|
|
8
8
|
import { SandboxShellToolsProviderName, } from "../extensions/sandbox/index.js";
|
|
9
9
|
import { SKILL_TOOL_IDS } from "../skill/types.js";
|
|
10
|
-
import { toolRegistry } from "../tool/index.js";
|
|
10
|
+
import { isToolVisibleTo, toolRegistry } from "../tool/index.js";
|
|
11
11
|
import { defineSchema, lazySchema } from "../schemas/index.js";
|
|
12
12
|
import { createStreamTransformState, finalizeRunEvents, formatAgUiEvent, mapRuntimeEventToAgUi, parseSseJsonEvents, } from "./ag-ui-sse.js";
|
|
13
13
|
import { AgentRunCancelledError } from "./session-manager.js";
|
|
@@ -56,7 +56,7 @@ function createInjectedStudioTool(runId, toolName, description, parameters, sess
|
|
|
56
56
|
},
|
|
57
57
|
};
|
|
58
58
|
}
|
|
59
|
-
function buildMergedTools(agent, input, sessionManager, availableForwardedToolNames, availableLocalTools) {
|
|
59
|
+
export function buildMergedTools(agent, input, sessionManager, availableForwardedToolNames, availableLocalTools) {
|
|
60
60
|
const serverResolvedProjectToolNames = getServerResolvedProjectToolNames(input.forwardedProps);
|
|
61
61
|
const concreteSourceToolNames = agent.config.tools && agent.config.tools !== true
|
|
62
62
|
? new Set(Object.entries(agent.config.tools)
|
|
@@ -76,10 +76,15 @@ function buildMergedTools(agent, input, sessionManager, availableForwardedToolNa
|
|
|
76
76
|
const sourceAllowedRemoteToolNames = getAgentAllowedRemoteToolNames(agent);
|
|
77
77
|
if (agent.config.tools === true) {
|
|
78
78
|
const merged = {};
|
|
79
|
-
for (const [toolId] of toolRegistry.getAll()) {
|
|
79
|
+
for (const [toolId, registryTool] of toolRegistry.getAll()) {
|
|
80
80
|
if (!agent.config.skills && SKILL_TOOL_IDS.has(toolId)) {
|
|
81
81
|
continue;
|
|
82
82
|
}
|
|
83
|
+
// Owner-aware: another agent's owned tool never enters this agent's
|
|
84
|
+
// model tool definitions.
|
|
85
|
+
if (!isToolVisibleTo(registryTool, { agentId: agent.id })) {
|
|
86
|
+
continue;
|
|
87
|
+
}
|
|
83
88
|
merged[toolId] = true;
|
|
84
89
|
}
|
|
85
90
|
for (const toolName of sourceAllowedRemoteToolNames) {
|
|
@@ -90,11 +95,19 @@ function buildMergedTools(agent, input, sessionManager, availableForwardedToolNa
|
|
|
90
95
|
const merged = {};
|
|
91
96
|
for (const [toolName, entry] of Object.entries(agent.config.tools)) {
|
|
92
97
|
if (entry === true) {
|
|
98
|
+
// Registry lookups are owner-aware: another agent's owned tool behaves
|
|
99
|
+
// as if it does not exist for this agent.
|
|
100
|
+
const visibleRegistryTool = (() => {
|
|
101
|
+
const registryTool = toolRegistry.get(toolName);
|
|
102
|
+
return registryTool && isToolVisibleTo(registryTool, { agentId: agent.id })
|
|
103
|
+
? registryTool
|
|
104
|
+
: undefined;
|
|
105
|
+
})();
|
|
93
106
|
const serverResolvedProjectTool = serverResolvedProjectToolNames.has(toolName)
|
|
94
|
-
?
|
|
107
|
+
? visibleRegistryTool
|
|
95
108
|
: undefined;
|
|
96
109
|
if (serverResolvedProjectTool ||
|
|
97
|
-
|
|
110
|
+
visibleRegistryTool ||
|
|
98
111
|
availableLocalTools?.[toolName] ||
|
|
99
112
|
availableForwardedToolNames?.includes(toolName) ||
|
|
100
113
|
sourceAllowedRemoteToolNames.includes(toolName)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/src/mcp/server.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAI7D,OAAO,KAAK,EAAE,eAAe,EAAiB,MAAM,YAAY,CAAC;AAIjE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAUzE,KAAK,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,EAAE,CAAC;AA2CzD,UAAU,cAAc;IACtB,OAAO,EAAE,KAAK,CAAC;IACf,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB;AAED,UAAU,eAAe;IACvB,OAAO,EAAE,KAAK,CAAC;IACf,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,OAAO,CAAC;KAChB,CAAC;CACH;AAWD,gDAAgD;AAChD,MAAM,WAAW,uBAAuB;IACtC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,wBAAwB,GAAG,SAAS,CAAC,CAAC;IACnE,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAID,2BAA2B;AAC3B,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAC,UAAU,CASd;IACX,OAAO,CAAC,QAAQ,CAAkD;IAClE,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,iBAAiB,CAAC,CAA0B;IACpD,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,cAAc,CAAwB;IAC9C,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,YAAY,CAAqC;IACzD,OAAO,CAAC,8BAA8B,CAAsC;IAC5E,OAAO,CAAC,kBAAkB,CAA+B;IACzD,OAAO,CAAC,mBAAmB,CAA8C;IAEzE,2EAA2E;IAC3E,cAAc,CAAC,EAAE,CAAC,YAAY,EAAE;QAAE,OAAO,EAAE,KAAK,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;gBAElF,MAAM,EAAE,eAAe;IAWnC;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAyCjC,kBAAkB,IAAI,IAAI;IAI1B,sBAAsB,IAAI,IAAI;IAI9B,oBAAoB,IAAI,IAAI;IAI5B;;OAEG;IACH,oBAAoB,CAAC,MAAM,EAAE,uBAAuB,GAAG,IAAI;IAK3D,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO;IAY5E,aAAa,CACX,OAAO,EAAE,cAAc,EACvB,OAAO,CAAC,EAAE,oBAAoB,EAC9B,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,eAAe,CAAC;IAyB3B,OAAO,CAAC,QAAQ;IAkDhB,OAAO,CAAC,UAAU;YAgCJ,SAAS;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/src/mcp/server.ts"],"names":[],"mappings":"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"}
|
package/esm/src/mcp/server.js
CHANGED
|
@@ -251,6 +251,11 @@ export class MCPServer {
|
|
|
251
251
|
for (const [id, tool] of registry.tools.entries()) {
|
|
252
252
|
if (tool.mcp?.enabled === false)
|
|
253
253
|
continue;
|
|
254
|
+
// Agent-owned tools are never listed to MCP clients: external callers
|
|
255
|
+
// have no agent identity, so owned capabilities are invisible here
|
|
256
|
+
// (and rejected at execution time by the registry executor).
|
|
257
|
+
if (tool.ownerAgentId !== undefined)
|
|
258
|
+
continue;
|
|
254
259
|
const entry = {
|
|
255
260
|
name: id,
|
|
256
261
|
description: tool.description,
|
|
@@ -150,6 +150,13 @@ export interface FileChangeEvent {
|
|
|
150
150
|
}
|
|
151
151
|
export interface FileWatcher extends AsyncIterable<FileChangeEvent> {
|
|
152
152
|
close(): void;
|
|
153
|
+
/**
|
|
154
|
+
* Resolves once the watcher's internal loop has fully stopped, including
|
|
155
|
+
* any in-flight filesystem operations. close() only signals shutdown;
|
|
156
|
+
* await this to guarantee no pending async ops remain (e.g. before test
|
|
157
|
+
* sanitizer checks or process exit).
|
|
158
|
+
*/
|
|
159
|
+
done?: Promise<void>;
|
|
153
160
|
}
|
|
154
161
|
export interface ShellAdapter {
|
|
155
162
|
statSync(path: string): {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../src/src/platform/adapters/base.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../src/src/platform/adapters/base.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../../../../src/src/platform/adapters/runtime/deno/adapter.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,QAAQ,EACR,kBAAkB,EAElB,QAAQ,EACR,iBAAiB,EACjB,WAAW,EACX,cAAc,EACd,YAAY,EACZ,MAAM,EACN,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,gBAAgB,EACjB,MAAM,eAAe,CAAC;AA8HvB,cAAM,qBAAsB,YAAW,iBAAiB;IAChD,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKvC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAKhD,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKvD,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAWrC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC;IAY/C,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAYrC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAKrE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAKtE,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKlD,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,WAAW;
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../../../../src/src/platform/adapters/runtime/deno/adapter.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,QAAQ,EACR,kBAAkB,EAElB,QAAQ,EACR,iBAAiB,EACjB,WAAW,EACX,cAAc,EACd,YAAY,EACZ,MAAM,EACN,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,gBAAgB,EACjB,MAAM,eAAe,CAAC;AA8HvB,cAAM,qBAAsB,YAAW,iBAAiB;IAChD,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKvC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAKhD,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKvD,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAWrC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC;IAY/C,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAYrC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAKrE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAKtE,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKlD,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,WAAW;CA4ErE;AAED,cAAM,sBAAuB,YAAW,kBAAkB;IACxD,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIpC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAIrC,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;CAGnC;AAED,cAAM,iBAAkB,YAAW,aAAa;IAC9C,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,gBAAgB;CAYrD;AAED,cAAM,gBAAiB,YAAW,YAAY;IAC5C,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,WAAW,EAAE,OAAO,CAAA;KAAE;IAejE,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;CAanC;AAwBD,qBAAa,WAAY,YAAW,cAAc;IAChD,QAAQ,CAAC,EAAE,EAAG,MAAM,CAAU;IAC9B,QAAQ,CAAC,IAAI,UAAU;IACvB,QAAQ,CAAC,EAAE,wBAA+B;IAC1C,QAAQ,CAAC,GAAG,yBAAgC;IAC5C,QAAQ,CAAC,MAAM,oBAA2B;IAC1C,QAAQ,CAAC,KAAK,mBAA0B;IAExC,QAAQ,CAAC,YAAY;;;;;;;;;;MAUnB;IAEF,OAAO,CAAC,YAAY,CAA2B;IAE/C,KAAK,CACH,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,EAC3D,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,MAAM,CAAC;IA4DZ,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAGhC;AAED,eAAO,MAAM,WAAW,aAAoB,CAAC"}
|
|
@@ -196,8 +196,13 @@ class DenoFileSystemAdapter {
|
|
|
196
196
|
}
|
|
197
197
|
};
|
|
198
198
|
signal?.addEventListener("abort", cleanup, { once: true });
|
|
199
|
-
|
|
200
|
-
|
|
199
|
+
// Keep the loop promise so callers can await full termination: close()
|
|
200
|
+
// only flips the flag, while an in-flight snapshot (Deno.readDir) keeps
|
|
201
|
+
// running and would otherwise trip test op-sanitizers or delay shutdown.
|
|
202
|
+
const done = pollLoop();
|
|
203
|
+
const watcher = createFileWatcher(iterator, cleanup);
|
|
204
|
+
watcher.done = done;
|
|
205
|
+
return watcher;
|
|
201
206
|
}
|
|
202
207
|
}
|
|
203
208
|
class DenoEnvironmentAdapter {
|
|
@@ -55,6 +55,13 @@ export declare class ProjectScopedRegistryManager<T> {
|
|
|
55
55
|
* Falls back to shared registry for items not found in project registry.
|
|
56
56
|
*/
|
|
57
57
|
get(id: string): T | undefined;
|
|
58
|
+
/**
|
|
59
|
+
* Get item registered in the current project's own scope, without falling
|
|
60
|
+
* back to the shared registry. Use this to distinguish a project-local
|
|
61
|
+
* registration (which may legitimately shadow a shared item) from a true
|
|
62
|
+
* same-scope duplicate.
|
|
63
|
+
*/
|
|
64
|
+
getOwn(id: string): T | undefined;
|
|
58
65
|
/**
|
|
59
66
|
* Check if item exists for the current project.
|
|
60
67
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-scoped-registry-manager.d.ts","sourceRoot":"","sources":["../../../src/src/registry/project-scoped-registry-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAgBH;;;;GAIG;AACH,qBAAa,4BAA4B,CAAC,CAAC;IAI7B,OAAO,CAAC,YAAY;IAHhC,OAAO,CAAC,iBAAiB,CAAqC;IAC9D,OAAO,CAAC,cAAc,CAAwB;gBAE1B,YAAY,EAAE,MAAM;IAExC;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAIzB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IASxB;;OAEG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI;IAcnC;;;OAGG;IACH,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI;IASzC;;;OAGG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAK9B;;OAEG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAMxB;;OAEG;IACH,SAAS,IAAI,MAAM,EAAE;IAOrB;;OAEG;IACH,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IAUxB;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAU3B;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAcrC;;OAEG;IACH,QAAQ,IAAI,IAAI;IAMhB;;OAEG;IACH,QAAQ,IAAI;QACV,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC;QACnB,mBAAmB,EAAE,MAAM,CAAC;KAC7B;CAeF"}
|
|
1
|
+
{"version":3,"file":"project-scoped-registry-manager.d.ts","sourceRoot":"","sources":["../../../src/src/registry/project-scoped-registry-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAgBH;;;;GAIG;AACH,qBAAa,4BAA4B,CAAC,CAAC;IAI7B,OAAO,CAAC,YAAY;IAHhC,OAAO,CAAC,iBAAiB,CAAqC;IAC9D,OAAO,CAAC,cAAc,CAAwB;gBAE1B,YAAY,EAAE,MAAM;IAExC;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAIzB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IASxB;;OAEG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI;IAcnC;;;OAGG;IACH,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI;IASzC;;;OAGG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAK9B;;;;;OAKG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAKjC;;OAEG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAMxB;;OAEG;IACH,SAAS,IAAI,MAAM,EAAE;IAOrB;;OAEG;IACH,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IAUxB;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAU3B;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAcrC;;OAEG;IACH,QAAQ,IAAI,IAAI;IAMhB;;OAEG;IACH,QAAQ,IAAI;QACV,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC;QACnB,mBAAmB,EAAE,MAAM,CAAC;KAC7B;CAeF"}
|
|
@@ -93,6 +93,16 @@ export class ProjectScopedRegistryManager {
|
|
|
93
93
|
const scopeId = this.getCurrentScopeId();
|
|
94
94
|
return this.registriesByScope.get(scopeId)?.get(id) ?? this.sharedRegistry.get(id);
|
|
95
95
|
}
|
|
96
|
+
/**
|
|
97
|
+
* Get item registered in the current project's own scope, without falling
|
|
98
|
+
* back to the shared registry. Use this to distinguish a project-local
|
|
99
|
+
* registration (which may legitimately shadow a shared item) from a true
|
|
100
|
+
* same-scope duplicate.
|
|
101
|
+
*/
|
|
102
|
+
getOwn(id) {
|
|
103
|
+
const scopeId = this.getCurrentScopeId();
|
|
104
|
+
return this.registriesByScope.get(scopeId)?.get(id);
|
|
105
|
+
}
|
|
96
106
|
/**
|
|
97
107
|
* Check if item exists for the current project.
|
|
98
108
|
*/
|
|
@@ -8,6 +8,8 @@ export declare class ScopedRegistryFacade<T> {
|
|
|
8
8
|
*/
|
|
9
9
|
registerShared(id: string, item: T): void;
|
|
10
10
|
get(id: string): T | undefined;
|
|
11
|
+
/** Get item from the current scope only, without shared-registry fallback. */
|
|
12
|
+
getOwn(id: string): T | undefined;
|
|
11
13
|
has(id: string): boolean;
|
|
12
14
|
getAllIds(): string[];
|
|
13
15
|
getAll(): Map<string, T>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scoped-registry-facade.d.ts","sourceRoot":"","sources":["../../../src/src/registry/scoped-registry-facade.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AAEpF,qBAAa,oBAAoB,CAAC,CAAC;IACrB,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,4BAA4B,CAAC,CAAC,CAAC;gBAAxC,OAAO,EAAE,4BAA4B,CAAC,CAAC,CAAC;IAEvE,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI;IAInC;;OAEG;IACH,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI;IAIzC,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAI9B,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAIxB,SAAS,IAAI,MAAM,EAAE;IAIrB,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IAIxB,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAI3B,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,QAAQ,IAAI,IAAI;IAIhB,QAAQ,IAAI,UAAU,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;CAGpE"}
|
|
1
|
+
{"version":3,"file":"scoped-registry-facade.d.ts","sourceRoot":"","sources":["../../../src/src/registry/scoped-registry-facade.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AAEpF,qBAAa,oBAAoB,CAAC,CAAC;IACrB,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,4BAA4B,CAAC,CAAC,CAAC;gBAAxC,OAAO,EAAE,4BAA4B,CAAC,CAAC,CAAC;IAEvE,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI;IAInC;;OAEG;IACH,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI;IAIzC,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAI9B,8EAA8E;IAC9E,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAIjC,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAIxB,SAAS,IAAI,MAAM,EAAE;IAIrB,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IAIxB,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAI3B,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,QAAQ,IAAI,IAAI;IAIhB,QAAQ,IAAI,UAAU,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;CAGpE"}
|
|
@@ -15,6 +15,10 @@ export class ScopedRegistryFacade {
|
|
|
15
15
|
get(id) {
|
|
16
16
|
return this.manager.get(id);
|
|
17
17
|
}
|
|
18
|
+
/** Get item from the current scope only, without shared-registry fallback. */
|
|
19
|
+
getOwn(id) {
|
|
20
|
+
return this.manager.getOwn(id);
|
|
21
|
+
}
|
|
18
22
|
has(id) {
|
|
19
23
|
return this.manager.has(id);
|
|
20
24
|
}
|
|
@@ -12,7 +12,7 @@ export interface LayoutComponentCache {
|
|
|
12
12
|
clear(): void;
|
|
13
13
|
clearForProject?(projectId: string): void;
|
|
14
14
|
}
|
|
15
|
-
export declare function createLayoutComponentCache(maxEntries?: number): LayoutComponentCache;
|
|
15
|
+
export declare function createLayoutComponentCache(maxEntries?: number, perProjectMaxEntries?: number): LayoutComponentCache;
|
|
16
16
|
export declare function shouldUnwrapAppRouterDocumentLayout(componentPath: string | undefined, projectDir: string): boolean;
|
|
17
17
|
export declare function unwrapAppRouterDocumentLayout(React: typeof BundledReact, LayoutComponent: AppRouterDocumentLayoutFunction): BundledReact.FunctionComponent<{
|
|
18
18
|
children?: BundledReact.ReactNode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component-loader.d.ts","sourceRoot":"","sources":["../../../../../src/src/rendering/layouts/utils/component-loader.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"component-loader.d.ts","sourceRoot":"","sources":["../../../../../src/src/rendering/layouts/utils/component-loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { computeHash, rendererLogger as logger, TSX_LAYOUT_MAX_ENTRIES } from "../../../utils/index.js";
|
|
1
|
+
import { computeHash, rendererLogger as logger, TSX_LAYOUT_MAX_ENTRIES, TSX_LAYOUT_PER_PROJECT_MAX_ENTRIES, } from "../../../utils/index.js";
|
|
2
2
|
import { createError, toError } from "../../../errors/veryfront-error.js";
|
|
3
3
|
import { withSpan } from "../../../observability/tracing/otlp-setup.js";
|
|
4
4
|
import { SpanNames } from "../../../observability/tracing/span-names.js";
|
|
@@ -39,6 +39,9 @@ class InMemoryLayoutComponentCache {
|
|
|
39
39
|
}
|
|
40
40
|
this.entries.set(key, value);
|
|
41
41
|
}
|
|
42
|
+
get size() {
|
|
43
|
+
return this.entries.size;
|
|
44
|
+
}
|
|
42
45
|
delete(key) {
|
|
43
46
|
this.entries.delete(key);
|
|
44
47
|
}
|
|
@@ -54,8 +57,84 @@ class InMemoryLayoutComponentCache {
|
|
|
54
57
|
}
|
|
55
58
|
}
|
|
56
59
|
}
|
|
57
|
-
|
|
58
|
-
|
|
60
|
+
/**
|
|
61
|
+
* Per-project layout component cache.
|
|
62
|
+
*
|
|
63
|
+
* Wraps a Map of per-project LRU sub-caches so that one noisy project cannot
|
|
64
|
+
* evict another project's cached layouts. Two limits apply:
|
|
65
|
+
*
|
|
66
|
+
* 1. **Per-project cap** (`perProjectMaxEntries`): each project's sub-cache is
|
|
67
|
+
* bounded independently. Configurable via `TSX_LAYOUT_PER_PROJECT_MAX_ENTRIES`.
|
|
68
|
+
* 2. **Global project-count cap** (`maxProjects`): the number of distinct
|
|
69
|
+
* projects that can have a sub-cache is bounded. When the cap is reached the
|
|
70
|
+
* project whose sub-cache has the fewest entries (i.e. least active) is
|
|
71
|
+
* evicted first to make room. This keeps total memory bounded even when many
|
|
72
|
+
* projects exist. Defaults to `floor(maxEntries / perProjectMaxEntries)`.
|
|
73
|
+
*
|
|
74
|
+
* Cache keys are expected to start with `layout:{projectId}:` (the format
|
|
75
|
+
* produced by `buildLayoutComponentCacheKey`). The projectId is extracted from
|
|
76
|
+
* the key so no extra argument is needed for `get`/`set`.
|
|
77
|
+
*/
|
|
78
|
+
class PerProjectLayoutComponentCache {
|
|
79
|
+
perProjectMaxEntries;
|
|
80
|
+
maxProjects;
|
|
81
|
+
projects = new Map();
|
|
82
|
+
constructor(perProjectMaxEntries, maxProjects) {
|
|
83
|
+
this.perProjectMaxEntries = perProjectMaxEntries;
|
|
84
|
+
this.maxProjects = maxProjects;
|
|
85
|
+
}
|
|
86
|
+
/** Extract projectId from a `layout:{projectId}:…` cache key. */
|
|
87
|
+
projectIdFromKey(key) {
|
|
88
|
+
const second = key.indexOf(":", key.indexOf(":") + 1);
|
|
89
|
+
return second === -1 ? key : key.slice(key.indexOf(":") + 1, second);
|
|
90
|
+
}
|
|
91
|
+
getOrCreateBucket(projectId) {
|
|
92
|
+
let bucket = this.projects.get(projectId);
|
|
93
|
+
if (bucket)
|
|
94
|
+
return bucket;
|
|
95
|
+
// Evict the least-active project when the project-count cap is reached.
|
|
96
|
+
if (this.projects.size >= this.maxProjects) {
|
|
97
|
+
let smallestId;
|
|
98
|
+
let smallestSize = Infinity;
|
|
99
|
+
for (const [id, b] of this.projects) {
|
|
100
|
+
if (b.size < smallestSize) {
|
|
101
|
+
smallestSize = b.size;
|
|
102
|
+
smallestId = id;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
if (smallestId !== undefined)
|
|
106
|
+
this.projects.delete(smallestId);
|
|
107
|
+
}
|
|
108
|
+
bucket = new InMemoryLayoutComponentCache(this.perProjectMaxEntries);
|
|
109
|
+
this.projects.set(projectId, bucket);
|
|
110
|
+
return bucket;
|
|
111
|
+
}
|
|
112
|
+
get(key) {
|
|
113
|
+
const projectId = this.projectIdFromKey(key);
|
|
114
|
+
return this.projects.get(projectId)?.get(key);
|
|
115
|
+
}
|
|
116
|
+
set(key, value) {
|
|
117
|
+
const projectId = this.projectIdFromKey(key);
|
|
118
|
+
this.getOrCreateBucket(projectId).set(key, value);
|
|
119
|
+
}
|
|
120
|
+
delete(key) {
|
|
121
|
+
const projectId = this.projectIdFromKey(key);
|
|
122
|
+
this.projects.get(projectId)?.delete(key);
|
|
123
|
+
}
|
|
124
|
+
clear() {
|
|
125
|
+
this.projects.clear();
|
|
126
|
+
}
|
|
127
|
+
clearForProject(projectId) {
|
|
128
|
+
this.projects.delete(projectId);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
export function createLayoutComponentCache(maxEntries = TSX_LAYOUT_MAX_ENTRIES, perProjectMaxEntries = TSX_LAYOUT_PER_PROJECT_MAX_ENTRIES) {
|
|
132
|
+
// A single bucket may never exceed the caller's total budget: with a small
|
|
133
|
+
// custom maxEntries (e.g. tests passing 2), the env-derived per-project
|
|
134
|
+
// default would otherwise let one project hold more than the whole cache.
|
|
135
|
+
const perProject = Math.max(1, Math.min(perProjectMaxEntries, maxEntries));
|
|
136
|
+
const maxProjects = Math.max(1, Math.floor(maxEntries / perProject));
|
|
137
|
+
return new PerProjectLayoutComponentCache(perProject, maxProjects);
|
|
59
138
|
}
|
|
60
139
|
export function shouldUnwrapAppRouterDocumentLayout(componentPath, projectDir) {
|
|
61
140
|
if (!componentPath)
|
|
@@ -7,10 +7,13 @@
|
|
|
7
7
|
* @module rendering/orchestrator/css-cache
|
|
8
8
|
*/
|
|
9
9
|
import type { CacheRepository } from "../../repositories/types.js";
|
|
10
|
+
import { LRUCache } from "../../utils/lru-wrapper.js";
|
|
10
11
|
/** Timeout for CSS generation SSR (shorter than full SSR since it's optional) */
|
|
11
12
|
export declare const CSS_SSR_TIMEOUT_MS = 5000;
|
|
12
13
|
/** Maximum number of entries in the CSS cache */
|
|
13
14
|
export declare const PAGE_CSS_CACHE_MAX_SIZE = 200;
|
|
15
|
+
/** Exposed for testing only — do not use in production code */
|
|
16
|
+
export declare const __pageCssCacheForTests: LRUCache<string, string>;
|
|
14
17
|
/**
|
|
15
18
|
* Inject a CacheRepository for CSS cache testing.
|
|
16
19
|
* Call with null to restore default Map-based caching.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"css-cache.d.ts","sourceRoot":"","sources":["../../../../src/src/rendering/orchestrator/css-cache.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"css-cache.d.ts","sourceRoot":"","sources":["../../../../src/src/rendering/orchestrator/css-cache.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAGtD,iFAAiF;AACjF,eAAO,MAAM,kBAAkB,OAAQ,CAAC;AAExC,iDAAiD;AACjD,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAmB3C,+DAA+D;AAC/D,eAAO,MAAM,sBAAsB,0BAAe,CAAC;AAKnD;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,eAAe,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,IAAI,CAExF;AAED,sCAAsC;AACtC,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,IAAI,EAAE,MAAM,EACZ,gBAAgB,EAAE,MAAM,GAAG,SAAS,GACnC,MAAM,CAIR;AAOD,iFAAiF;AACjF,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAIrE;AAWD,6DAA6D;AAC7D,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAOhE"}
|
|
@@ -6,16 +6,29 @@
|
|
|
6
6
|
*
|
|
7
7
|
* @module rendering/orchestrator/css-cache
|
|
8
8
|
*/
|
|
9
|
+
import { LRUCache } from "../../utils/lru-wrapper.js";
|
|
10
|
+
import { registerLRUCache } from "../../cache/index.js";
|
|
9
11
|
/** Timeout for CSS generation SSR (shorter than full SSR since it's optional) */
|
|
10
12
|
export const CSS_SSR_TIMEOUT_MS = 5_000;
|
|
13
|
+
/** Maximum number of entries in the CSS cache */
|
|
14
|
+
export const PAGE_CSS_CACHE_MAX_SIZE = 200;
|
|
11
15
|
/**
|
|
12
16
|
* Per-page CSS cache to avoid redundant SSR for CSS generation.
|
|
13
17
|
* Key: projectId:environment:slug:contentVersion
|
|
14
18
|
* Value: Generated CSS string
|
|
19
|
+
* Uses LRU eviction so frequently-used pages' CSS is retained under cache pressure.
|
|
15
20
|
*/
|
|
16
|
-
const pageCssCache = new
|
|
17
|
-
|
|
18
|
-
|
|
21
|
+
const pageCssCache = new LRUCache({
|
|
22
|
+
maxEntries: PAGE_CSS_CACHE_MAX_SIZE,
|
|
23
|
+
// The previous plain-Map cache was bounded by entry count only. Disable the
|
|
24
|
+
// adapter's default 50 MiB byte cap so large CSS payloads aren't evicted
|
|
25
|
+
// (or rejected) on insert; only the entry-count bound applies.
|
|
26
|
+
maxSizeBytes: Number.MAX_SAFE_INTEGER,
|
|
27
|
+
});
|
|
28
|
+
// Register cache for monitoring
|
|
29
|
+
registerLRUCache("page-css-cache", pageCssCache);
|
|
30
|
+
/** Exposed for testing only — do not use in production code */
|
|
31
|
+
export const __pageCssCacheForTests = pageCssCache;
|
|
19
32
|
/** Injected cache repository for testing */
|
|
20
33
|
let injectedCssCacheRepo = null;
|
|
21
34
|
/**
|
|
@@ -31,11 +44,6 @@ export function getPageCssCacheKey(projectId, environment, slug, projectUpdatedA
|
|
|
31
44
|
}
|
|
32
45
|
/** Cache CSS for a page - internal implementation */
|
|
33
46
|
function cachePageCssInternal(cacheKey, css) {
|
|
34
|
-
if (pageCssCache.size >= PAGE_CSS_CACHE_MAX_SIZE && !pageCssCache.has(cacheKey)) {
|
|
35
|
-
const firstKey = pageCssCache.keys().next().value;
|
|
36
|
-
if (firstKey)
|
|
37
|
-
pageCssCache.delete(firstKey);
|
|
38
|
-
}
|
|
39
47
|
pageCssCache.set(cacheKey, css);
|
|
40
48
|
}
|
|
41
49
|
/** Get cached CSS for a page (if available) - sync for backward compatibility */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mdx.d.ts","sourceRoot":"","sources":["../../../../src/src/rendering/orchestrator/mdx.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"mdx.d.ts","sourceRoot":"","sources":["../../../../src/src/rendering/orchestrator/mdx.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAKrE,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,aAAa,GAAG,YAAY,CAAC;IACnC,eAAe,EAAE,eAAe,CAAC;IACjC,0DAA0D;IAC1D,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,KAAK,gBAAgB,GAAG,SAAS,GAAG;IAClC,QAAQ,CAAC,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC9D,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC,CAAC;AAOF,qBAAa,WAAW;IACV,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,iBAAiB;IAE7C,UAAU,CACR,OAAO,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,gBAAgB,CAAC;YAmCd,eAAe;CA4B9B"}
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import { wrapWithContext } from "../../errors/index.js";
|
|
2
2
|
import { withSpan } from "../../observability/tracing/otlp-setup.js";
|
|
3
3
|
import { SpanNames } from "../../observability/tracing/span-names.js";
|
|
4
|
+
import { Singleflight } from "../../utils/singleflight.js";
|
|
5
|
+
// Module-level so dedup spans compiler instances: the renderer creates an
|
|
6
|
+
// MDXCompiler per render context, and the bundle cache key (mdx:<mode>:<hash>)
|
|
7
|
+
// is already global, so the flight map can be too.
|
|
8
|
+
const compileFlight = new Singleflight();
|
|
4
9
|
export class MDXCompiler {
|
|
5
10
|
config;
|
|
6
11
|
constructor(config) {
|
|
@@ -15,7 +20,13 @@ export class MDXCompiler {
|
|
|
15
20
|
const cachedBundle = await withSpan(SpanNames.MDX_CACHE_GET, () => this.config.mdxCacheAdapter.getCachedBundle(content, frontmatter, filePath), spanAttrs);
|
|
16
21
|
if (cachedBundle)
|
|
17
22
|
return cachedBundle;
|
|
18
|
-
|
|
23
|
+
// Key includes projectDir and filePath because relative imports are
|
|
24
|
+
// resolved against the file's location: identical source in two
|
|
25
|
+
// places can compile to different modules, so only compiles of the
|
|
26
|
+
// same file may share an in-flight promise.
|
|
27
|
+
const contentHash = await this.config.mdxCacheAdapter.computeHash(content);
|
|
28
|
+
const flightKey = `mdx:${this.config.projectDir}:${this.config.mode}:${contentHash}:${filePath ?? "inline"}`;
|
|
29
|
+
return compileFlight.do(flightKey, () => this.compileAndCache(content, frontmatter, filePath));
|
|
19
30
|
}, { ...spanAttrs, "mdx.mode": this.config.mode });
|
|
20
31
|
}
|
|
21
32
|
async compileAndCache(content, frontmatter, filePath) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../../src/src/server/bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAM1D,OAAO,EAAE,KAAK,eAAe,EAAqC,MAAM,wBAAwB,CAAC;AAqDjG,MAAM,WAAW,eAAe;IAC9B,8DAA8D;IAC9D,OAAO,EAAE,cAAc,CAAC;IAExB,2BAA2B;IAC3B,MAAM,EAAE,eAAe,CAAC;IAExB,wCAAwC;IACxC,cAAc,EAAE,OAAO,CAAC;IAExB,+BAA+B;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;;OAIG;IACH,eAAe,EAAE,eAAe,CAAC;IAEjC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtC;AAgHD;;;;;;;;GAQG;AACH,wBAAsB,sBAAsB,CAC1C,WAAW,EAAE,MAAM,OAAO,CAAC,eAAe,CAAC,EAC3C,SAAS,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,GAClC,OAAO,CAAC,eAAe,CAAC,CAO1B;AAkDD,wBAAsB,SAAS,CAC7B,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,eAAe,CAAC,
|
|
1
|
+
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../../src/src/server/bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAM1D,OAAO,EAAE,KAAK,eAAe,EAAqC,MAAM,wBAAwB,CAAC;AAqDjG,MAAM,WAAW,eAAe;IAC9B,8DAA8D;IAC9D,OAAO,EAAE,cAAc,CAAC;IAExB,2BAA2B;IAC3B,MAAM,EAAE,eAAe,CAAC;IAExB,wCAAwC;IACxC,cAAc,EAAE,OAAO,CAAC;IAExB,+BAA+B;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;;OAIG;IACH,eAAe,EAAE,eAAe,CAAC;IAEjC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtC;AAgHD;;;;;;;;GAQG;AACH,wBAAsB,sBAAsB,CAC1C,WAAW,EAAE,MAAM,OAAO,CAAC,eAAe,CAAC,EAC3C,SAAS,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,GAClC,OAAO,CAAC,eAAe,CAAC,CAO1B;AAkDD,wBAAsB,SAAS,CAC7B,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,eAAe,CAAC,CA8K1B;AAED,wBAAsB,YAAY,CAChC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,eAAe,CAAC,CAa1B;AAED,wBAAsB,aAAa,CACjC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,eAAe,CAAC,CAyB1B"}
|
|
@@ -196,6 +196,7 @@ export async function bootstrap(projectDir, adapter) {
|
|
|
196
196
|
logger: bootstrapLog,
|
|
197
197
|
primeContracts: { [LLMProviderRegistryName]: createLLMProviderRegistry() },
|
|
198
198
|
builtinExtensions: createBuiltinExtensions(),
|
|
199
|
+
setupTimeoutMs: getEnvironmentConfig().extensionSetupTimeoutMs,
|
|
199
200
|
});
|
|
200
201
|
wireTracingShim();
|
|
201
202
|
assertRequiredContracts();
|
|
@@ -237,6 +238,7 @@ export async function bootstrap(projectDir, adapter) {
|
|
|
237
238
|
logger: bootstrapLog,
|
|
238
239
|
primeContracts: { [LLMProviderRegistryName]: createLLMProviderRegistry() },
|
|
239
240
|
builtinExtensions: createBuiltinExtensions(),
|
|
241
|
+
setupTimeoutMs: getEnvironmentConfig().extensionSetupTimeoutMs,
|
|
240
242
|
});
|
|
241
243
|
wireTracingShim();
|
|
242
244
|
assertRequiredContracts();
|
|
@@ -300,6 +302,7 @@ export async function bootstrap(projectDir, adapter) {
|
|
|
300
302
|
logger: bootstrapLog,
|
|
301
303
|
primeContracts: { [LLMProviderRegistryName]: createLLMProviderRegistry() },
|
|
302
304
|
builtinExtensions: createBuiltinExtensions(),
|
|
305
|
+
setupTimeoutMs: getEnvironmentConfig().extensionSetupTimeoutMs,
|
|
303
306
|
}), fsDispose);
|
|
304
307
|
wireTracingShim();
|
|
305
308
|
assertRequiredContracts();
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as dntShim from "../../../../../_dnt.shims.js";
|
|
2
2
|
import { getMCPRegistry, getMCPStats } from "../../../../mcp/index.js";
|
|
3
3
|
import { REQUEST_ERROR } from "../../../../errors/index.js";
|
|
4
|
-
import { executeTool, toolRegistry } from "../../../../tool/index.js";
|
|
4
|
+
import { executeTool, isToolVisibleTo, toolRegistry } from "../../../../tool/index.js";
|
|
5
5
|
import { resourceRegistry } from "../../../../resource/index.js";
|
|
6
6
|
import { promptRegistry } from "../../../../prompt/index.js";
|
|
7
7
|
import { agentRegistry } from "../../../../agent/composition/index.js";
|
|
@@ -166,7 +166,7 @@ function handleListPrompts() {
|
|
|
166
166
|
return jsonResponse({ prompts: list, count: list.length });
|
|
167
167
|
}
|
|
168
168
|
function handleListAgents() {
|
|
169
|
-
const
|
|
169
|
+
const allTools = Array.from(toolRegistry.getAll().entries());
|
|
170
170
|
const list = Array.from(agentRegistry.getAll().entries()).map(([id, agent]) => {
|
|
171
171
|
const cfg = agent.config;
|
|
172
172
|
let system = null;
|
|
@@ -176,7 +176,10 @@ function handleListAgents() {
|
|
|
176
176
|
system = "(dynamic)";
|
|
177
177
|
let tools = {};
|
|
178
178
|
if (cfg.tools === true) {
|
|
179
|
-
tools
|
|
179
|
+
// Owner-aware: list only tools this agent can actually resolve.
|
|
180
|
+
tools = Object.fromEntries(allTools
|
|
181
|
+
.filter(([, registryTool]) => isToolVisibleTo(registryTool, { agentId: id }))
|
|
182
|
+
.map(([tid]) => [tid, true]));
|
|
180
183
|
}
|
|
181
184
|
else if (typeof cfg.tools === "object" && cfg.tools !== null) {
|
|
182
185
|
tools = cfg.tools;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-stream.handler.d.ts","sourceRoot":"","sources":["../../../../../src/src/server/handlers/request/agent-stream.handler.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AACpF,OAAO,EAEL,KAAK,+BAA+B,EACrC,MAAM,wCAAwC,CAAC;AAEhD,OAAO,EACL,4BAA4B,EAE7B,MAAM,2CAA2C,CAAC;AAwBnD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAmB,aAAa,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-stream.handler.d.ts","sourceRoot":"","sources":["../../../../../src/src/server/handlers/request/agent-stream.handler.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AACpF,OAAO,EAEL,KAAK,+BAA+B,EACrC,MAAM,wCAAwC,CAAC;AAEhD,OAAO,EACL,4BAA4B,EAE7B,MAAM,2CAA2C,CAAC;AAwBnD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAmB,aAAa,EAAE,MAAM,aAAa,CAAC;AAYnG,MAAM,WAAW,sBACf,SAAQ,yBAAyB,EAAE,+BAA+B;IAClE,4BAA4B,CAAC,EAAE,OAAO,4BAA4B,CAAC;CACpE;AA2SD,qBAAa,kBAAmB,SAAQ,WAAW;IASrC,OAAO,CAAC,QAAQ,CAAC,IAAI;IARjC,QAAQ,EAAE,eAAe,CAMvB;gBAE2B,IAAI,GAAE,sBAAoC;IAIvE,OAAO,CAAC,sBAAsB;IAwBxB,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;CA4KxE"}
|
|
@@ -9,6 +9,8 @@ import { buildRuntimeAgentControlPlaneStreamRequestFromInvocation, RuntimeAgentR
|
|
|
9
9
|
import { getInternalAgentStreamRequestSchema, toRuntimeRunAgentInput, } from "../../../internal-agents/schema.js";
|
|
10
10
|
import { BaseHandler } from "../response/base.js";
|
|
11
11
|
import { PRIORITY_MEDIUM_API } from "../../../utils/constants/index.js";
|
|
12
|
+
import { buildRuntimeShuttingDownResponse } from "./runtime-shutdown-response.js";
|
|
13
|
+
import { isServerShuttingDown } from "../../shutdown-state.js";
|
|
12
14
|
import { getHostEnv } from "../../../platform/compat/process.js";
|
|
13
15
|
import { serverLogger } from "../../../utils/index.js";
|
|
14
16
|
import { EnvironmentVariableCache, fetchProjectEnvVars, runWithProjectEnv, } from "../../project-env/index.js";
|
|
@@ -252,6 +254,14 @@ export class AgentStreamHandler extends BaseHandler {
|
|
|
252
254
|
if (!this.shouldHandle(req, ctx)) {
|
|
253
255
|
return this.continue();
|
|
254
256
|
}
|
|
257
|
+
// Lame-duck: reject NEW agent streams during graceful shutdown before any
|
|
258
|
+
// control-plane verification, discovery, or runtime-owner resolution, so the
|
|
259
|
+
// API gets a clean pre-side-effect failure (without the runtime-owner header
|
|
260
|
+
// that would otherwise re-pin the run to this terminating pod) and can retry
|
|
261
|
+
// against another instance. In-flight streams are unaffected.
|
|
262
|
+
if (isServerShuttingDown()) {
|
|
263
|
+
return this.respond(buildRuntimeShuttingDownResponse(this.createResponseBuilder(ctx)));
|
|
264
|
+
}
|
|
255
265
|
return this.withProxyContext(ctx, async () => {
|
|
256
266
|
const builder = this.createResponseBuilder(ctx)
|
|
257
267
|
.withCORS(req, ctx.securityConfig?.cors)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channel-invoke.handler.d.ts","sourceRoot":"","sources":["../../../../../src/src/server/handlers/request/channel-invoke.handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAmB,aAAa,EAAE,MAAM,aAAa,CAAC;AACnG,OAAO,EACL,KAAK,iBAAiB,EAIvB,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"channel-invoke.handler.d.ts","sourceRoot":"","sources":["../../../../../src/src/server/handlers/request/channel-invoke.handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAmB,aAAa,EAAE,MAAM,aAAa,CAAC;AACnG,OAAO,EACL,KAAK,iBAAiB,EAIvB,MAAM,6BAA6B,CAAC;AAMrC,qBAAa,oBAAqB,SAAQ,WAAW;IAOvC,OAAO,CAAC,QAAQ,CAAC,IAAI;IANjC,QAAQ,EAAE,eAAe,CAIvB;gBAE2B,IAAI,GAAE,iBAA4C;IAIzE,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;CAiCxE"}
|
|
@@ -2,6 +2,8 @@ import { BaseHandler } from "../response/base.js";
|
|
|
2
2
|
import { ChannelInvokeRequestSchema, defaultChannelInvokeDeps, executeChannelInvoke, } from "../../../channels/invoke.js";
|
|
3
3
|
import { PRIORITY_MEDIUM_API } from "../../../utils/constants/index.js";
|
|
4
4
|
import { readSignedChannelDispatchRequest } from "./channel-dispatch-request.js";
|
|
5
|
+
import { buildRuntimeShuttingDownResponse } from "./runtime-shutdown-response.js";
|
|
6
|
+
import { isServerShuttingDown } from "../../shutdown-state.js";
|
|
5
7
|
export class ChannelInvokeHandler extends BaseHandler {
|
|
6
8
|
deps;
|
|
7
9
|
metadata = {
|
|
@@ -17,6 +19,12 @@ export class ChannelInvokeHandler extends BaseHandler {
|
|
|
17
19
|
if (!this.shouldHandle(req, ctx)) {
|
|
18
20
|
return this.continue();
|
|
19
21
|
}
|
|
22
|
+
// Lame-duck: reject NEW agent work during graceful shutdown before any
|
|
23
|
+
// dispatch verification or agent execution, so the API gets a clean
|
|
24
|
+
// pre-side-effect failure it can retry against another instance.
|
|
25
|
+
if (isServerShuttingDown()) {
|
|
26
|
+
return this.respond(buildRuntimeShuttingDownResponse(this.createResponseBuilder(ctx)));
|
|
27
|
+
}
|
|
20
28
|
return this.withProxyContext(ctx, async () => {
|
|
21
29
|
const builder = this.createResponseBuilder(ctx)
|
|
22
30
|
.withCORS(req, ctx.securityConfig?.cors)
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ResponseBuilder } from "../../../security/index.js";
|
|
2
|
+
/** Stable error code returned when the renderer is in lame-duck shutdown mode. */
|
|
3
|
+
export declare const RUNTIME_SHUTTING_DOWN_CODE = "RUNTIME_SHUTTING_DOWN";
|
|
4
|
+
/** Human-readable message paired with {@link RUNTIME_SHUTTING_DOWN_CODE}. */
|
|
5
|
+
export declare const RUNTIME_SHUTTING_DOWN_MESSAGE = "Runtime is shutting down; retry against another instance";
|
|
6
|
+
/**
|
|
7
|
+
* Builds the 503 response used to reject new agent-work requests while the
|
|
8
|
+
* renderer is draining. Sends `Connection: close` so the API drops the keep-alive
|
|
9
|
+
* connection to this terminating pod, and deliberately omits the runtime-owner
|
|
10
|
+
* invoke URL header so the API does not re-pin the run to this pod's IP.
|
|
11
|
+
*/
|
|
12
|
+
export declare function buildRuntimeShuttingDownResponse(builder: ResponseBuilder): Response;
|
|
13
|
+
//# sourceMappingURL=runtime-shutdown-response.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-shutdown-response.d.ts","sourceRoot":"","sources":["../../../../../src/src/server/handlers/request/runtime-shutdown-response.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAGlE,kFAAkF;AAClF,eAAO,MAAM,0BAA0B,0BAA0B,CAAC;AAElE,6EAA6E;AAC7E,eAAO,MAAM,6BAA6B,6DACkB,CAAC;AAE7D;;;;;GAKG;AACH,wBAAgB,gCAAgC,CAAC,OAAO,EAAE,eAAe,GAAG,QAAQ,CAOnF"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { HTTP_UNAVAILABLE } from "../../../utils/constants/index.js";
|
|
2
|
+
/** Stable error code returned when the renderer is in lame-duck shutdown mode. */
|
|
3
|
+
export const RUNTIME_SHUTTING_DOWN_CODE = "RUNTIME_SHUTTING_DOWN";
|
|
4
|
+
/** Human-readable message paired with {@link RUNTIME_SHUTTING_DOWN_CODE}. */
|
|
5
|
+
export const RUNTIME_SHUTTING_DOWN_MESSAGE = "Runtime is shutting down; retry against another instance";
|
|
6
|
+
/**
|
|
7
|
+
* Builds the 503 response used to reject new agent-work requests while the
|
|
8
|
+
* renderer is draining. Sends `Connection: close` so the API drops the keep-alive
|
|
9
|
+
* connection to this terminating pod, and deliberately omits the runtime-owner
|
|
10
|
+
* invoke URL header so the API does not re-pin the run to this pod's IP.
|
|
11
|
+
*/
|
|
12
|
+
export function buildRuntimeShuttingDownResponse(builder) {
|
|
13
|
+
return builder
|
|
14
|
+
.withHeaders({ Connection: "close" })
|
|
15
|
+
.json({ code: RUNTIME_SHUTTING_DOWN_CODE, message: RUNTIME_SHUTTING_DOWN_MESSAGE }, HTTP_UNAVAILABLE);
|
|
16
|
+
}
|