veryfront 0.1.809 → 0.1.811

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.
Files changed (81) hide show
  1. package/esm/deno.d.ts +3 -0
  2. package/esm/deno.js +5 -2
  3. package/esm/src/agent/factory.d.ts.map +1 -1
  4. package/esm/src/agent/factory.js +18 -6
  5. package/esm/src/agent/hosted/veryfront-cloud-agent-service.d.ts.map +1 -1
  6. package/esm/src/agent/hosted/veryfront-cloud-agent-service.js +1 -0
  7. package/esm/src/agent/types.d.ts +8 -0
  8. package/esm/src/agent/types.d.ts.map +1 -1
  9. package/esm/src/build/production-build/build/build-executor.d.ts +2 -0
  10. package/esm/src/build/production-build/build/build-executor.d.ts.map +1 -1
  11. package/esm/src/build/production-build/build/build-orchestrator.d.ts.map +1 -1
  12. package/esm/src/build/production-build/build/build-orchestrator.js +9 -0
  13. package/esm/src/build/production-build/build/output-generator.d.ts +2 -0
  14. package/esm/src/build/production-build/build/output-generator.d.ts.map +1 -1
  15. package/esm/src/build/production-build/build/output-generator.js +9 -7
  16. package/esm/src/build/production-build/local-release-assets.d.ts +2 -1
  17. package/esm/src/build/production-build/local-release-assets.d.ts.map +1 -1
  18. package/esm/src/build/production-build/local-release-assets.js +14 -4
  19. package/esm/src/build/production-build/static-generation.d.ts +2 -0
  20. package/esm/src/build/production-build/static-generation.d.ts.map +1 -1
  21. package/esm/src/build/production-build/static-generation.js +29 -5
  22. package/esm/src/config/schemas/config.schema.d.ts +12 -0
  23. package/esm/src/config/schemas/config.schema.d.ts.map +1 -1
  24. package/esm/src/config/schemas/config.schema.js +12 -0
  25. package/esm/src/discovery/discovery-engine.d.ts.map +1 -1
  26. package/esm/src/discovery/discovery-engine.js +6 -1
  27. package/esm/src/discovery/handlers/index.d.ts +1 -0
  28. package/esm/src/discovery/handlers/index.d.ts.map +1 -1
  29. package/esm/src/discovery/handlers/index.js +1 -0
  30. package/esm/src/discovery/handlers/work-handler.d.ts +7 -0
  31. package/esm/src/discovery/handlers/work-handler.d.ts.map +1 -0
  32. package/esm/src/discovery/handlers/work-handler.js +19 -0
  33. package/esm/src/discovery/import-rewriter.d.ts +1 -1
  34. package/esm/src/discovery/import-rewriter.d.ts.map +1 -1
  35. package/esm/src/discovery/import-rewriter.js +1 -0
  36. package/esm/src/discovery/project-discovery-config.d.ts +2 -0
  37. package/esm/src/discovery/project-discovery-config.d.ts.map +1 -1
  38. package/esm/src/discovery/project-discovery-config.js +2 -0
  39. package/esm/src/discovery/transpiler.d.ts.map +1 -1
  40. package/esm/src/discovery/transpiler.js +2 -0
  41. package/esm/src/discovery/types.d.ts +3 -0
  42. package/esm/src/discovery/types.d.ts.map +1 -1
  43. package/esm/src/html/utils.d.ts.map +1 -1
  44. package/esm/src/html/utils.js +8 -8
  45. package/esm/src/observability/request-profiler.d.ts +1 -0
  46. package/esm/src/observability/request-profiler.d.ts.map +1 -1
  47. package/esm/src/observability/request-profiler.js +6 -0
  48. package/esm/src/release-assets/build-executor.d.ts +14 -0
  49. package/esm/src/release-assets/build-executor.d.ts.map +1 -1
  50. package/esm/src/release-assets/build-executor.js +158 -20
  51. package/esm/src/rendering/cache/cache-coordinator.d.ts +3 -0
  52. package/esm/src/rendering/cache/cache-coordinator.d.ts.map +1 -1
  53. package/esm/src/rendering/cache/cache-coordinator.js +26 -2
  54. package/esm/src/rendering/renderer.d.ts.map +1 -1
  55. package/esm/src/rendering/renderer.js +3 -1
  56. package/esm/src/rendering/shared/context-aware-cache.d.ts +3 -0
  57. package/esm/src/rendering/shared/context-aware-cache.d.ts.map +1 -1
  58. package/esm/src/rendering/shared/context-aware-cache.js +24 -2
  59. package/esm/src/server/build-app-route-renderer.d.ts +2 -0
  60. package/esm/src/server/build-app-route-renderer.d.ts.map +1 -1
  61. package/esm/src/server/build-app-route-renderer.js +3 -2
  62. package/esm/src/server/dev-server/server.d.ts.map +1 -1
  63. package/esm/src/server/dev-server/server.js +4 -1
  64. package/esm/src/utils/version-constant.d.ts +1 -1
  65. package/esm/src/utils/version-constant.js +1 -1
  66. package/esm/src/work/factory.d.ts +4 -0
  67. package/esm/src/work/factory.d.ts.map +1 -0
  68. package/esm/src/work/factory.js +51 -0
  69. package/esm/src/work/index.d.ts +27 -0
  70. package/esm/src/work/index.d.ts.map +1 -0
  71. package/esm/src/work/index.js +25 -0
  72. package/esm/src/work/prompt-augmentation.d.ts +6 -0
  73. package/esm/src/work/prompt-augmentation.d.ts.map +1 -0
  74. package/esm/src/work/prompt-augmentation.js +30 -0
  75. package/esm/src/work/registry.d.ts +10 -0
  76. package/esm/src/work/registry.d.ts.map +1 -0
  77. package/esm/src/work/registry.js +23 -0
  78. package/esm/src/work/types.d.ts +30 -0
  79. package/esm/src/work/types.d.ts.map +1 -0
  80. package/esm/src/work/types.js +1 -0
  81. package/package.json +5 -1
@@ -8,5 +8,6 @@ export { agentHandler } from "./agent-handler.js";
8
8
  export { resourceHandler } from "./resource-handler.js";
9
9
  export { promptHandler } from "./prompt-handler.js";
10
10
  export { workflowHandler } from "./workflow-handler.js";
11
+ export { workHandler } from "./work-handler.js";
11
12
  export { taskHandler } from "./task-handler.js";
12
13
  export { discoverSkills } from "./skill-handler.js";
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Work Discovery Handler
3
+ */
4
+ import type { WorkDefinition } from "../../work/index.js";
5
+ import type { DiscoveryHandler } from "../types.js";
6
+ export declare const workHandler: DiscoveryHandler<WorkDefinition>;
7
+ //# sourceMappingURL=work-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"work-handler.d.ts","sourceRoot":"","sources":["../../../../src/src/discovery/handlers/work-handler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,eAAO,MAAM,WAAW,EAAE,gBAAgB,CAAC,cAAc,CAexD,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Work Discovery Handler
3
+ */
4
+ import { workRegistry } from "../../work/index.js";
5
+ export const workHandler = {
6
+ typeName: "work",
7
+ validate: (item) => item !== null &&
8
+ typeof item === "object" &&
9
+ typeof item.id === "string" &&
10
+ typeof item.outcome === "string" &&
11
+ Array.isArray(item.acceptanceCriteria),
12
+ getId: (definition) => definition.id,
13
+ register: (id, definition) => {
14
+ const definitionWithId = definition.id === id ? definition : { ...definition, id };
15
+ workRegistry.register(id, definitionWithId);
16
+ return definitionWithId;
17
+ },
18
+ getResultMap: (result) => result.works,
19
+ };
@@ -5,7 +5,7 @@
5
5
  * (Deno, Node.js) and handles veryfront package resolution.
6
6
  */
7
7
  import { createFileSystem } from "../platform/compat/fs.js";
8
- export declare const DISCOVERY_GLOBAL_VERYFRONT_MODULES: readonly ["veryfront/agent", "veryfront/tool", "veryfront/platform", "veryfront/prompt", "veryfront/resource", "veryfront/embedding", "veryfront/workflow", "veryfront/schemas"];
8
+ export declare const DISCOVERY_GLOBAL_VERYFRONT_MODULES: readonly ["veryfront/agent", "veryfront/tool", "veryfront/platform", "veryfront/prompt", "veryfront/resource", "veryfront/embedding", "veryfront/workflow", "veryfront/work", "veryfront/schemas"];
9
9
  interface DenoRewriteOptions {
10
10
  compiled?: boolean;
11
11
  resolveSpecifier?: (specifier: string) => string;
@@ -1 +1 @@
1
- {"version":3,"file":"import-rewriter.d.ts","sourceRoot":"","sources":["../../../src/src/discovery/import-rewriter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAI5D,eAAO,MAAM,kCAAkC,kLASrC,CAAC;AAEX,UAAU,kBAAkB;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gBAAgB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC;CAClD;AAkHD;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,kBAAuB,GAC/B,MAAM,CA2BR;AAqFD;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,EAAE,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,EACvC,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC,CA2PjB"}
1
+ {"version":3,"file":"import-rewriter.d.ts","sourceRoot":"","sources":["../../../src/src/discovery/import-rewriter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAI5D,eAAO,MAAM,kCAAkC,oMAUrC,CAAC;AAEX,UAAU,kBAAkB;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gBAAgB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC;CAClD;AAkHD;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,kBAAuB,GAC/B,MAAM,CA2BR;AAqFD;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,EAAE,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,EACvC,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC,CA2PjB"}
@@ -15,6 +15,7 @@ export const DISCOVERY_GLOBAL_VERYFRONT_MODULES = [
15
15
  "veryfront/resource",
16
16
  "veryfront/embedding",
17
17
  "veryfront/workflow",
18
+ "veryfront/work",
18
19
  "veryfront/schemas",
19
20
  ];
20
21
  function escapeRegExp(value) {
@@ -8,6 +8,7 @@ export declare const DEFAULT_PROJECT_DISCOVERY_DIRS: {
8
8
  resourceDirs: string[];
9
9
  promptDirs: string[];
10
10
  workflowDirs: string[];
11
+ workDirs: string[];
11
12
  taskDirs: string[];
12
13
  };
13
14
  type ProjectDiscoveryConfigInput = {
@@ -23,6 +24,7 @@ export type ProjectDiscoveryConfig = DiscoveryConfig & {
23
24
  resourceDirs: string[];
24
25
  promptDirs: string[];
25
26
  workflowDirs: string[];
27
+ workDirs: string[];
26
28
  taskDirs: string[];
27
29
  };
28
30
  export declare function createProjectDiscoveryConfig(input: ProjectDiscoveryConfigInput): ProjectDiscoveryConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"project-discovery-config.d.ts","sourceRoot":"","sources":["../../../src/src/discovery/project-discovery-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,eAAO,MAAM,8BAA8B;;;;;;;;CAQ1C,CAAC;AAOF,KAAK,2BAA2B,GAAG;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IAChC,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,eAAe,GAAG;IACrD,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAgBF,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,2BAA2B,GACjC,sBAAsB,CAoCxB"}
1
+ {"version":3,"file":"project-discovery-config.d.ts","sourceRoot":"","sources":["../../../src/src/discovery/project-discovery-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,eAAO,MAAM,8BAA8B;;;;;;;;;CAS1C,CAAC;AAOF,KAAK,2BAA2B,GAAG;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IAChC,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,eAAe,GAAG;IACrD,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAgBF,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,2BAA2B,GACjC,sBAAsB,CAwCxB"}
@@ -5,6 +5,7 @@ export const DEFAULT_PROJECT_DISCOVERY_DIRS = {
5
5
  resourceDirs: ["resources"],
6
6
  promptDirs: ["prompts"],
7
7
  workflowDirs: ["workflows"],
8
+ workDirs: ["work"],
8
9
  taskDirs: ["tasks"],
9
10
  };
10
11
  function isDiscoveryEnabled(discovery) {
@@ -26,6 +27,7 @@ export function createProjectDiscoveryConfig(input) {
26
27
  resourceDirs: resolveDiscoveryPaths(aiConfig?.resources?.discovery, DEFAULT_PROJECT_DISCOVERY_DIRS.resourceDirs),
27
28
  promptDirs: resolveDiscoveryPaths(aiConfig?.prompts?.discovery, DEFAULT_PROJECT_DISCOVERY_DIRS.promptDirs),
28
29
  workflowDirs: resolveDiscoveryPaths(aiConfig?.workflows?.discovery, DEFAULT_PROJECT_DISCOVERY_DIRS.workflowDirs),
30
+ workDirs: resolveDiscoveryPaths(aiConfig?.work?.discovery, DEFAULT_PROJECT_DISCOVERY_DIRS.workDirs),
29
31
  taskDirs: resolveDiscoveryPaths(aiConfig?.tasks?.discovery, DEFAULT_PROJECT_DISCOVERY_DIRS.taskDirs),
30
32
  fsAdapter: input.fsAdapter,
31
33
  verbose: input.verbose ?? false,
@@ -1 +1 @@
1
- {"version":3,"file":"transpiler.d.ts","sourceRoot":"","sources":["../../../src/src/discovery/transpiler.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAmIvD;;GAEG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,OAAO,CAAC,CAkGlB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C"}
1
+ {"version":3,"file":"transpiler.d.ts","sourceRoot":"","sources":["../../../src/src/discovery/transpiler.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAqIvD;;GAEG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,OAAO,CAAC,CAkGlB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C"}
@@ -20,6 +20,7 @@ import * as promptMod from "../prompt/index.js";
20
20
  import * as resourceMod from "../resource/index.js";
21
21
  import * as embeddingMod from "../embedding/index.js";
22
22
  import * as workflowMod from "../workflow/index.js";
23
+ import * as workMod from "../work/index.js";
23
24
  import * as schemasMod from "../schemas/index.js";
24
25
  const transpileCache = new Map();
25
26
  // Setup veryfront modules as globals for compiled binary support
@@ -38,6 +39,7 @@ async function ensureVeryfrontGlobals() {
38
39
  "veryfront/resource": resourceMod,
39
40
  "veryfront/embedding": embeddingMod,
40
41
  "veryfront/workflow": workflowMod,
42
+ "veryfront/work": workMod,
41
43
  "veryfront/schemas": schemasMod,
42
44
  };
43
45
  dntShim.dntGlobalThis.__VERYFRONT_MODULES__ = modules;
@@ -8,6 +8,7 @@ import type { Prompt } from "../prompt/types.js";
8
8
  import type { Resource } from "../resource/types.js";
9
9
  import type { Skill } from "../skill/types.js";
10
10
  import type { Tool } from "../tool/types.js";
11
+ import type { WorkDefinition } from "../work/index.js";
11
12
  import type { Workflow } from "../workflow/types.js";
12
13
  import type { TaskDefinition } from "../task/types.js";
13
14
  import type { Platform } from "../platform/core-platform.js";
@@ -35,6 +36,7 @@ export interface DiscoveryConfig {
35
36
  resourceDirs?: string[];
36
37
  promptDirs?: string[];
37
38
  workflowDirs?: string[];
39
+ workDirs?: string[];
38
40
  taskDirs?: string[];
39
41
  verbose?: boolean;
40
42
  fsAdapter?: FileSystemAdapter;
@@ -49,6 +51,7 @@ export interface DiscoveryResult {
49
51
  resources: Map<string, Resource>;
50
52
  prompts: Map<string, Prompt>;
51
53
  workflows: Map<string, Workflow>;
54
+ works: Map<string, WorkDefinition>;
52
55
  tasks: Map<string, TaskDefinition>;
53
56
  errors: Array<{
54
57
  file: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/src/discovery/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEtE;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,QAAQ,CAAC;IACnB,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B,QAAQ,CAAC,EAAE;QACT,EAAE,EAAE,cAAc,SAAS,CAAC,CAAC;QAC7B,IAAI,EAAE,cAAc,WAAW,CAAC,CAAC;KAClC,CAAC;IACF,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,iBAAiB,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACzB,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC3B,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC3B,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACjC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACjC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACnC,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,CAAC,CAAC;CAC/C;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB,CAAC,CAAC;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,IAAI,CAAC,CAAC;IACvC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;IACtD,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC,CAAC;IAChE,YAAY,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;CAC3D"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/src/discovery/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/src/html/utils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAK1D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAejF,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,OAAO,EACjB,OAAO,CAAC,EAAE,MAAM,GACf,MAAM,CAQR;AAaD,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC;CACd;AA4DD,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAGrD,CAAC;AA6JF,UAAU,qBAAqB;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,oBAAoB,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;CACpD;AAiFD,wBAAsB,cAAc,CAClC,OAAO,CAAC,EAAE,qBAAqB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACvD,OAAO,CAAC,cAAc,CAAC,CA+DzB;AAED,wBAAsB,kBAAkB,CACtC,OAAO,CAAC,EAAE,qBAAqB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACvD,OAAO,CAAC,MAAM,CAAC,CAEjB;AAED,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C;AAED,wBAAgB,mBAAmB,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAElF"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/src/html/utils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAK1D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAejF,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,OAAO,EACjB,OAAO,CAAC,EAAE,MAAM,GACf,MAAM,CAQR;AAaD,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC;CACd;AA4DD,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAGrD,CAAC;AA6JF,UAAU,qBAAqB;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,oBAAoB,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;CACpD;AAgFD,wBAAsB,cAAc,CAClC,OAAO,CAAC,EAAE,qBAAqB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACvD,OAAO,CAAC,cAAc,CAAC,CA+DzB;AAED,wBAAsB,kBAAkB,CACtC,OAAO,CAAC,EAAE,qBAAqB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACvD,OAAO,CAAC,MAAM,CAAC,CAEjB;AAED,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C;AAED,wBAAgB,mBAAmB,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAElF"}
@@ -226,14 +226,14 @@ function applyManifestDependencies(imports, manifest) {
226
226
  dependencyAssets.set(canonicalDependencyUrl(specifier), assetUrl);
227
227
  }
228
228
  return Object.fromEntries(Object.entries(imports).map(([specifier, url]) => {
229
- if (!url.startsWith("http://") && !url.startsWith("https://")) {
230
- return [specifier, url];
231
- }
232
- return [
233
- specifier,
234
- dependencyAssets.get(specifier) ?? dependencyAssets.get(url) ??
235
- dependencyAssets.get(canonicalDependencyUrl(url)) ?? url,
236
- ];
229
+ const directAsset = dependencyAssets.get(specifier);
230
+ if (directAsset)
231
+ return [specifier, directAsset];
232
+ const urlAsset = dependencyAssets.get(url) ??
233
+ dependencyAssets.get(canonicalDependencyUrl(url));
234
+ if (urlAsset)
235
+ return [specifier, urlAsset];
236
+ return [specifier, url];
237
237
  }));
238
238
  }
239
239
  function isImportMapOnlyOptions(options) {
@@ -24,6 +24,7 @@ export declare function runWithRequestProfiling<T>(options: {
24
24
  requestMode?: string;
25
25
  }, fn: () => Promise<T>): Promise<T>;
26
26
  export declare function profilePhase<T>(name: string, fn: () => Promise<T>): Promise<T>;
27
+ export declare function markRequestProfilePhase(name: string, durationMs?: number): void;
27
28
  export declare function profileSyncPhase<T>(name: string, fn: () => T): T;
28
29
  export declare function updateRequestProfileContext(update: RequestProfileContextUpdate): void;
29
30
  export declare function finalizeRequestProfiling(status?: number): RequestProfileRecord | null;
@@ -1 +1 @@
1
- {"version":3,"file":"request-profiler.d.ts","sourceRoot":"","sources":["../../../src/src/observability/request-profiler.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,2BAA2B;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AA0CD,wBAAgB,yBAAyB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAIpE;AAED,wBAAsB,uBAAuB,CAAC,CAAC,EAC7C,OAAO,EAAE;IACP,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,EACD,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACnB,OAAO,CAAC,CAAC,CAAC,CAYZ;AAED,wBAAsB,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAWpF;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAWhE;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,2BAA2B,GAAG,IAAI,CAMrF;AAED,wBAAgB,wBAAwB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,oBAAoB,GAAG,IAAI,CAsBrF;AAUD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,oBAAoB,GAAG,MAAM,CAQ5E;AAED,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,oBAAoB,GAAG,IAAI,GAClC,QAAQ,CAiBV;AAED,wBAAgB,uBAAuB,IAAI;IACzC,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,oBAAoB,EAAE,CAAC;CACjC,CAMA;AAED,wBAAgB,oBAAoB,IAAI,IAAI,CAG3C"}
1
+ {"version":3,"file":"request-profiler.d.ts","sourceRoot":"","sources":["../../../src/src/observability/request-profiler.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,2BAA2B;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AA0CD,wBAAgB,yBAAyB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAIpE;AAED,wBAAsB,uBAAuB,CAAC,CAAC,EAC7C,OAAO,EAAE;IACP,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,EACD,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACnB,OAAO,CAAC,CAAC,CAAC,CAYZ;AAED,wBAAsB,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAWpF;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,SAAI,GAAG,IAAI,CAK1E;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAWhE;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,2BAA2B,GAAG,IAAI,CAMrF;AAED,wBAAgB,wBAAwB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,oBAAoB,GAAG,IAAI,CAsBrF;AAUD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,oBAAoB,GAAG,MAAM,CAQ5E;AAED,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,oBAAoB,GAAG,IAAI,GAClC,QAAQ,CAiBV;AAED,wBAAgB,uBAAuB,IAAI;IACzC,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,oBAAoB,EAAE,CAAC;CACjC,CAMA;AAED,wBAAgB,oBAAoB,IAAI,IAAI,CAG3C"}
@@ -55,6 +55,12 @@ export async function profilePhase(name, fn) {
55
55
  session.phases.set(name, roundMs((session.phases.get(name) ?? 0) + duration));
56
56
  }
57
57
  }
58
+ export function markRequestProfilePhase(name, durationMs = 0) {
59
+ const session = storage.getStore();
60
+ if (!session)
61
+ return;
62
+ session.phases.set(name, roundMs((session.phases.get(name) ?? 0) + durationMs));
63
+ }
58
64
  export function profileSyncPhase(name, fn) {
59
65
  const session = storage.getStore();
60
66
  if (!session)
@@ -125,6 +125,8 @@ interface PreparedAsset {
125
125
  export interface PreparedReleaseAsset extends PreparedAsset {
126
126
  bytes: Uint8Array;
127
127
  }
128
+ export declare function releaseAssetDependencyUrlForSpecifier(dependencyUrls: Map<string, string>, specifier: string): string | null;
129
+ export declare function buildReleaseAssetDependencyUrlMap(dependencies: Record<string, PreparedAsset>): Map<string, string>;
128
130
  export declare function buildReactImportMapDependencyAssets(options: {
129
131
  tempDir: string;
130
132
  reactVersion?: string;
@@ -141,6 +143,18 @@ export declare function buildCachedHttpDependencyAssets(options: {
141
143
  assets: PreparedReleaseAsset[];
142
144
  gaps: string[];
143
145
  }>;
146
+ export declare function buildFrameworkDependencyAssets(options: {
147
+ tempDir: string;
148
+ adapter: any;
149
+ reactVersion?: string;
150
+ projectId?: string;
151
+ transform?: ReleaseAssetTransform;
152
+ dependencyUrls: Map<string, string>;
153
+ }): Promise<{
154
+ dependencies: Record<string, PreparedAsset>;
155
+ assets: PreparedReleaseAsset[];
156
+ gaps: string[];
157
+ }>;
144
158
  /**
145
159
  * Execute a release asset build. Pure orchestration over the injected client
146
160
  * and a runtime-provided temp dir + react version.
@@ -1 +1 @@
1
- {"version":3,"file":"build-executor.d.ts","sourceRoot":"","sources":["../../../src/src/release-assets/build-executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build-executor.d.ts","sourceRoot":"","sources":["../../../src/src/release-assets/build-executor.ts"],"names":[],"mappings":"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"}
@@ -19,7 +19,7 @@ import { VERSION } from "../utils/version.js";
19
19
  import { createFileSystem } from "../platform/compat/fs.js";
20
20
  import { getHostEnv } from "../platform/compat/process.js";
21
21
  import { dirname, join, normalize } from "../platform/compat/path/index.js";
22
- import { resolveFrameworkSourcePath } from "../platform/compat/framework-source-resolver.js";
22
+ import { FRAMEWORK_EMBEDDED_SRC_DIR, FRAMEWORK_SRC_DIR, resolveFrameworkSourcePath, resolveRelativeFrameworkSourceImport, } from "../platform/compat/framework-source-resolver.js";
23
23
  import { transformToESM } from "../transforms/esm-transform.js";
24
24
  import { cacheHttpImportsToLocal, normalizeHttpUrl } from "../transforms/esm/http-cache.js";
25
25
  import { extractSourceUrl } from "../transforms/esm/source-url-embed.js";
@@ -54,6 +54,20 @@ function frameworkModuleUrlToSourceKey(moduleUrl) {
54
54
  .slice(FRAMEWORK_MODULE_URL_PREFIX.length)
55
55
  .replace(/\.(mjs|cjs|js|jsx|ts|tsx)$/, "");
56
56
  }
57
+ function frameworkSourceKeyToModuleUrl(sourceKey) {
58
+ return `${FRAMEWORK_MODULE_URL_PREFIX}${sourceKey}.js`;
59
+ }
60
+ function frameworkSourcePathToSourceKey(sourcePath, lookupDirs) {
61
+ for (const lookupDir of lookupDirs) {
62
+ if (!sourcePath.startsWith(`${lookupDir}/`))
63
+ continue;
64
+ const relativePath = sourcePath.slice(lookupDir.length + 1)
65
+ .replace(/\.src$/, "")
66
+ .replace(/\.(tsx?|jsx?|mjs|mdx?|js)$/, "");
67
+ return normalizeLogicalPath(relativePath);
68
+ }
69
+ return null;
70
+ }
57
71
  /** Sanitize an error for state reporting (no internal paths / stack traces). */
58
72
  function sanitizeError(error) {
59
73
  const message = error instanceof Error ? error.message : String(error);
@@ -205,11 +219,11 @@ async function collectProjectModuleImports(code, logicalPath, knownPaths) {
205
219
  }
206
220
  async function rewriteProjectModuleImports(code, logicalPath, moduleAssets, knownPaths, dependencyUrls) {
207
221
  function rewriteSpecifier(specifier) {
208
- const dependencyUrl = dependencyUrls.get(specifier.replace(/[?#].*$/, ""));
222
+ const dependencyUrl = dependencyUrlForSpecifier(dependencyUrls, specifier);
209
223
  if (dependencyUrl)
210
224
  return dependencyUrl;
211
225
  if (specifier.startsWith("/_vf_modules/")) {
212
- const dependencyUrl = dependencyUrls.get(specifier.replace(/[?#].*$/, ""));
226
+ const dependencyUrl = dependencyUrlForSpecifier(dependencyUrls, specifier);
213
227
  if (dependencyUrl)
214
228
  return dependencyUrl;
215
229
  }
@@ -219,21 +233,51 @@ async function rewriteProjectModuleImports(code, logicalPath, moduleAssets, know
219
233
  }
220
234
  return await replaceSpecifiers(code, (specifier) => rewriteSpecifier(specifier));
221
235
  }
236
+ function dependencyUrlForSpecifier(dependencyUrls, specifier) {
237
+ const direct = dependencyUrls.get(specifier) ??
238
+ dependencyUrls.get(normalizeDependencySpecifier(specifier));
239
+ if (direct)
240
+ return direct;
241
+ if (specifier.startsWith("http://") || specifier.startsWith("https://")) {
242
+ const normalized = normalizeHttpUrl(specifier);
243
+ return dependencyUrls.get(normalized) ??
244
+ dependencyUrls.get(normalizeDependencySpecifier(normalized)) ?? null;
245
+ }
246
+ return null;
247
+ }
248
+ export function releaseAssetDependencyUrlForSpecifier(dependencyUrls, specifier) {
249
+ return dependencyUrlForSpecifier(dependencyUrls, specifier);
250
+ }
222
251
  function buildDependencyUrlMap(dependencies, dependencyModules) {
223
252
  const urls = new Map();
224
253
  for (const [manifestKey, entry] of Object.entries(dependencies)) {
225
254
  const dependency = dependencyModules?.get(manifestKey);
226
- if (!dependency)
227
- continue;
228
255
  const url = releaseAssetUrl(entry.contentHash, "js");
229
256
  urls.set(manifestKey, url);
257
+ urls.set(normalizeDependencySpecifier(manifestKey), url);
258
+ if (manifestKey.startsWith("http://") || manifestKey.startsWith("https://")) {
259
+ const normalized = normalizeHttpUrl(manifestKey);
260
+ urls.set(normalized, url);
261
+ urls.set(normalizeDependencySpecifier(normalized), url);
262
+ }
263
+ if (!dependency)
264
+ continue;
230
265
  urls.set(entry.logicalPath, url);
231
266
  for (const specifier of dependency.specifiers) {
267
+ urls.set(specifier, url);
232
268
  urls.set(normalizeDependencySpecifier(specifier), url);
269
+ if (specifier.startsWith("http://") || specifier.startsWith("https://")) {
270
+ const normalized = normalizeHttpUrl(specifier);
271
+ urls.set(normalized, url);
272
+ urls.set(normalizeDependencySpecifier(normalized), url);
273
+ }
233
274
  }
234
275
  }
235
276
  return urls;
236
277
  }
278
+ export function buildReleaseAssetDependencyUrlMap(dependencies) {
279
+ return buildDependencyUrlMap(dependencies);
280
+ }
237
281
  function exposeDependencySpecifierAliases(assets, dependencyModules) {
238
282
  const aliased = { ...assets };
239
283
  for (const dependency of dependencyModules.values()) {
@@ -761,20 +805,38 @@ async function addPreparedJavaScriptAsset(logicalPath, code, uploadQueue, pendin
761
805
  }
762
806
  return entry;
763
807
  }
764
- async function buildFrameworkDependencies(input, tempDir, transform, uploadQueue, pendingBytes, gaps) {
808
+ async function buildFrameworkDependencies(input, tempDir, transform, dependencyUrls, uploadQueue, pendingBytes, gaps) {
765
809
  const fs = createFileSystem();
766
810
  const dependencies = {};
767
- for (const [specifier, moduleUrl] of Object.entries(PLATFORM_UTILITIES)) {
768
- const sourceKey = frameworkModuleUrlToSourceKey(moduleUrl);
769
- if (!sourceKey)
770
- continue;
811
+ const lookupDirs = [FRAMEWORK_SRC_DIR, FRAMEWORK_EMBEDDED_SRC_DIR, join(tempDir, "src")];
812
+ const moduleAssets = new Map();
813
+ const visiting = new Set();
814
+ async function resolveFrameworkImport(specifier, fromSourcePath) {
815
+ if (specifier.startsWith("./") || specifier.startsWith("../")) {
816
+ const resolvedPath = await resolveRelativeFrameworkSourceImport(specifier, fromSourcePath);
817
+ return resolvedPath ? frameworkSourcePathToSourceKey(resolvedPath, lookupDirs) : null;
818
+ }
819
+ if (specifier.startsWith(FRAMEWORK_MODULE_URL_PREFIX)) {
820
+ return frameworkModuleUrlToSourceKey(specifier);
821
+ }
822
+ return null;
823
+ }
824
+ async function processFrameworkModule(sourceKey, publicSpecifier) {
825
+ const existing = moduleAssets.get(sourceKey);
826
+ if (existing)
827
+ return existing;
828
+ if (visiting.has(sourceKey)) {
829
+ gaps.push(`dependency-cycle:${publicSpecifier}:${sourceKey}`);
830
+ return null;
831
+ }
771
832
  const frameworkSource = await resolveFrameworkSourcePath(sourceKey, {
772
833
  extraLookupDirs: [join(tempDir, "src")],
773
834
  });
774
835
  if (!frameworkSource) {
775
- gaps.push(`dependency-missing:${specifier}`);
776
- continue;
836
+ gaps.push(`dependency-missing:${publicSpecifier}:${sourceKey}`);
837
+ return null;
777
838
  }
839
+ visiting.add(sourceKey);
778
840
  let code;
779
841
  try {
780
842
  const source = await fs.readTextFile(frameworkSource.path);
@@ -784,24 +846,98 @@ async function buildFrameworkDependencies(input, tempDir, transform, uploadQueue
784
846
  ssr: false,
785
847
  reactVersion: input.reactVersion,
786
848
  });
849
+ const frameworkImportUrls = new Map();
850
+ let hasUnresolvedFrameworkImport = false;
851
+ for (const imp of await parseImports(code)) {
852
+ if (!imp.n)
853
+ continue;
854
+ const importedSourceKey = await resolveFrameworkImport(imp.n, frameworkSource.path);
855
+ if (!importedSourceKey)
856
+ continue;
857
+ const importedAsset = await processFrameworkModule(importedSourceKey, publicSpecifier);
858
+ if (!importedAsset) {
859
+ hasUnresolvedFrameworkImport = true;
860
+ break;
861
+ }
862
+ frameworkImportUrls.set(imp.n, releaseAssetUrl(importedAsset.contentHash, "js"));
863
+ }
864
+ if (hasUnresolvedFrameworkImport) {
865
+ visiting.delete(sourceKey);
866
+ return null;
867
+ }
868
+ code = await replaceSpecifiers(code, (specifier) => frameworkImportUrls.get(specifier) ??
869
+ dependencyUrlForSpecifier(dependencyUrls, specifier));
787
870
  }
788
871
  catch (error) {
789
- gaps.push(`dependency-transform-failed:${specifier}`);
872
+ gaps.push(`dependency-transform-failed:${publicSpecifier}:${sourceKey}`);
790
873
  logger.warn("Framework dependency transform failed during release asset build", {
791
- specifier,
874
+ specifier: publicSpecifier,
875
+ sourceKey,
792
876
  error: sanitizeError(error),
793
877
  });
794
- continue;
878
+ visiting.delete(sourceKey);
879
+ return null;
795
880
  }
796
- const entry = await addPreparedJavaScriptAsset(`__dependencies__/${specifier}`, code, uploadQueue, pendingBytes);
881
+ visiting.delete(sourceKey);
882
+ const entry = await addPreparedJavaScriptAsset(`__dependencies__/${frameworkSourceKeyToModuleUrl(sourceKey)}`, code, uploadQueue, pendingBytes);
883
+ if (!entry) {
884
+ gaps.push(`dependency-oversized:${publicSpecifier}:${sourceKey}`);
885
+ return null;
886
+ }
887
+ moduleAssets.set(sourceKey, entry);
888
+ return entry;
889
+ }
890
+ for (const [specifier, moduleUrl] of Object.entries(PLATFORM_UTILITIES)) {
891
+ const sourceKey = frameworkModuleUrlToSourceKey(moduleUrl);
892
+ if (!sourceKey)
893
+ continue;
894
+ const entry = await processFrameworkModule(sourceKey, specifier);
797
895
  if (!entry) {
798
- gaps.push(`dependency-oversized:${specifier}`);
799
896
  continue;
800
897
  }
801
898
  dependencies[specifier] = entry;
802
899
  }
803
900
  return dependencies;
804
901
  }
902
+ export async function buildFrameworkDependencyAssets(options) {
903
+ const uploadQueue = [];
904
+ const pendingBytes = new Map();
905
+ const gaps = [];
906
+ const transform = options.transform ?? transformToESM;
907
+ const dependencies = await buildFrameworkDependencies({
908
+ projectReference: options.projectId ?? "local",
909
+ projectId: options.projectId ?? "local",
910
+ releaseId: "local",
911
+ releaseVersion: 0,
912
+ releaseVersionRef: "local",
913
+ reactVersion: options.reactVersion,
914
+ client: undefined,
915
+ adapter: options.adapter,
916
+ transform,
917
+ }, options.tempDir, transform, options.dependencyUrls, uploadQueue, pendingBytes, gaps);
918
+ return {
919
+ dependencies,
920
+ assets: uploadQueue.flatMap((asset) => {
921
+ const stored = pendingBytes.get(asset.contentHash);
922
+ if (!stored)
923
+ return [];
924
+ return [{
925
+ ...asset,
926
+ bytes: stored.bytes,
927
+ }];
928
+ }),
929
+ gaps,
930
+ };
931
+ }
932
+ function addFrameworkDependencyUrlAliases(urls, dependencies) {
933
+ for (const [specifier, entry] of Object.entries(dependencies)) {
934
+ const url = releaseAssetUrl(entry.contentHash, "js");
935
+ urls.set(specifier, url);
936
+ const moduleUrl = PLATFORM_UTILITIES[specifier];
937
+ if (moduleUrl)
938
+ urls.set(moduleUrl, url);
939
+ }
940
+ }
805
941
  /**
806
942
  * Walk the static import graph from a set of entry points using BFS.
807
943
  * Returns all reachable logical paths (entries included).
@@ -986,7 +1122,6 @@ async function runBuildInner(input, tempDir, client, transform) {
986
1122
  };
987
1123
  }
988
1124
  }
989
- const frameworkDependencies = await buildFrameworkDependencies(input, tempDir, transform, uploadQueue, pendingBytes, gaps);
990
1125
  let httpDependencies;
991
1126
  let httpDependencyFallbackUrls;
992
1127
  try {
@@ -1011,11 +1146,14 @@ async function runBuildInner(input, tempDir, client, transform) {
1011
1146
  };
1012
1147
  }
1013
1148
  httpDependencies = exposeDependencySpecifierAliases(httpDependencies, dependencyModules);
1014
- const dependencies = { ...frameworkDependencies, ...httpDependencies };
1015
- const dependencyUrls = buildDependencyUrlMap(dependencies, dependencyModules);
1149
+ const dependencyUrls = buildDependencyUrlMap(httpDependencies, dependencyModules);
1016
1150
  for (const [specifier, url] of httpDependencyFallbackUrls) {
1017
1151
  dependencyUrls.set(specifier, url);
1018
1152
  }
1153
+ const frameworkDependencies = await buildFrameworkDependencies(input, tempDir, transform, dependencyUrls, uploadQueue, pendingBytes, gaps);
1154
+ if (vendorDependencies)
1155
+ addFrameworkDependencyUrlAliases(dependencyUrls, frameworkDependencies);
1156
+ const dependencies = { ...frameworkDependencies, ...httpDependencies };
1019
1157
  const { modules, skippedModules } = await finalizeProjectModules(transformedModules, knownPaths, dependencyUrls, uploadQueue, pendingBytes, gaps);
1020
1158
  for (const logicalPath of transformedModules.keys()) {
1021
1159
  if (modules[logicalPath])
@@ -23,11 +23,14 @@ export interface CacheCoordinatorOptions {
23
23
  */
24
24
  contentSourceId?: string;
25
25
  }
26
+ export type CacheLookupStatus = "hit" | "miss" | "expired";
26
27
  export interface CacheLookupResult {
27
28
  cachedResult?: RenderResult;
28
29
  depAwareSlug: string;
29
30
  moduleCacheKey: string;
30
31
  cachedModule?: RenderResult["pageModule"];
32
+ cacheStatus: CacheLookupStatus;
33
+ lookupDurationMs: number;
31
34
  }
32
35
  export declare class CacheCoordinator {
33
36
  private store;
@@ -1 +1 @@
1
- {"version":3,"file":"cache-coordinator.d.ts","sourceRoot":"","sources":["../../../../src/src/rendering/cache/cache-coordinator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAgB,UAAU,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,EAAoB,KAAK,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAMnF,MAAM,WAAW,uBAAuB;IACtC,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,MAAM,CAAC,EAAE,uBAAuB,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;;;;;OAUG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAiB;IAChC,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,YAAY,CAAC,YAAY,CAAC,CAAC;CAC3C;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAwB;IACrD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqB;IAC/C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAqB;IACrD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;gBAEzB,OAAO,GAAE,uBAA4B;IAyBjD;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAKrB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA4BvE,aAAa,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA+B7E,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAIzB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAU5C;;;OAGG;IACG,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAShC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAI9B,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,aAAa;CAkBtB"}
1
+ {"version":3,"file":"cache-coordinator.d.ts","sourceRoot":"","sources":["../../../../src/src/rendering/cache/cache-coordinator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAgB,UAAU,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,EAAoB,KAAK,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAQnF,MAAM,WAAW,uBAAuB;IACtC,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,MAAM,CAAC,EAAE,uBAAuB,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;;;;;OAUG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,MAAM,iBAAiB,GAAG,KAAK,GAAG,MAAM,GAAG,SAAS,CAAC;AAE3D,MAAM,WAAW,iBAAiB;IAChC,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,YAAY,CAAC,YAAY,CAAC,CAAC;IAC1C,WAAW,EAAE,iBAAiB,CAAC;IAC/B,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAwB;IACrD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqB;IAC/C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAqB;IACrD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;gBAEzB,OAAO,GAAE,uBAA4B;IAyBjD;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAKrB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA0CvE,aAAa,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA+B7E,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAIzB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAU5C;;;OAGG;IACG,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAShC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAI9B,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,aAAa;CAkBtB"}
@@ -1,6 +1,8 @@
1
1
  import { rendererLogger as logger } from "../../utils/index.js";
2
2
  import { MemoryCacheStore } from "./stores/index.js";
3
3
  import { withSpan } from "../../observability/tracing/otlp-setup.js";
4
+ import { markRequestProfilePhase } from "../../observability/request-profiler.js";
5
+ import { metrics } from "../../observability/simple-metrics/index.js";
4
6
  /** Default TTL for cache entries (5 minutes) */
5
7
  const DEFAULT_CACHE_TTL_MS = 5 * 60 * 1_000;
6
8
  export class CacheCoordinator {
@@ -41,19 +43,33 @@ export class CacheCoordinator {
41
43
  checkCache(slug, cacheKey) {
42
44
  const key = this.buildCacheKey(slug, cacheKey);
43
45
  return withSpan("cache.checkCache", async () => {
46
+ const lookupStart = performance.now();
44
47
  const cached = await this.store.get(key);
45
48
  if (!cached) {
46
- return { depAwareSlug: slug, moduleCacheKey: key };
49
+ const lookupDurationMs = roundDurationMs(performance.now() - lookupStart);
50
+ recordCacheLookup("miss", lookupDurationMs);
51
+ return { depAwareSlug: slug, moduleCacheKey: key, cacheStatus: "miss", lookupDurationMs };
47
52
  }
48
53
  if (this.isExpired(cached)) {
49
54
  await this.store.delete(key);
50
- return { depAwareSlug: slug, moduleCacheKey: key };
55
+ const lookupDurationMs = roundDurationMs(performance.now() - lookupStart);
56
+ recordCacheLookup("expired", lookupDurationMs);
57
+ return {
58
+ depAwareSlug: slug,
59
+ moduleCacheKey: key,
60
+ cacheStatus: "expired",
61
+ lookupDurationMs,
62
+ };
51
63
  }
64
+ const lookupDurationMs = roundDurationMs(performance.now() - lookupStart);
65
+ recordCacheLookup("hit", lookupDurationMs);
52
66
  return {
53
67
  cachedResult: this.hydrateResult(cached),
54
68
  depAwareSlug: slug,
55
69
  moduleCacheKey: key,
56
70
  cachedModule: cached.result.pageModule,
71
+ cacheStatus: "hit",
72
+ lookupDurationMs,
57
73
  };
58
74
  }, { "cache.slug": slug, "cache.key": key, "cache.projectId": this.projectId ?? "unknown" });
59
75
  }
@@ -128,3 +144,11 @@ export class CacheCoordinator {
128
144
  };
129
145
  }
130
146
  }
147
+ function roundDurationMs(value) {
148
+ return Math.round(value * 100) / 100;
149
+ }
150
+ function recordCacheLookup(status, durationMs) {
151
+ markRequestProfilePhase("render.cache_lookup", durationMs);
152
+ markRequestProfilePhase(`render.cache_${status}`);
153
+ metrics.recordCacheGet(status === "hit");
154
+ }