+ {candidates.map((candidate) => (
+ /* TODO(seefeld/ben): Implement picker that updates `result` */
+
+
+
+ ))}
+
+ ),
+ };
+ },
+);
diff --git a/packages/runner/src/builtins/wish.ts b/packages/runner/src/builtins/wish.ts
index 1c0716fd83..a16d5d842b 100644
--- a/packages/runner/src/builtins/wish.ts
+++ b/packages/runner/src/builtins/wish.ts
@@ -5,6 +5,7 @@ import {
type WishTag,
} from "@commontools/api";
import { h } from "@commontools/html";
+import { HttpProgramResolver } from "@commontools/js-compiler";
import { type Cell } from "../cell.ts";
import { type Action } from "../scheduler.ts";
import type { IRuntime } from "../runtime.ts";
@@ -14,7 +15,7 @@ import type {
} from "../storage/interface.ts";
import type { EntityId } from "../create-ref.ts";
import { ALL_CHARMS_ID } from "./well-known.ts";
-import { type JSONSchema, UI } from "../builder/types.ts";
+import { type JSONSchema, type Recipe, UI } from "../builder/types.ts";
// Define locally to avoid circular dependency with @commontools/charm
const favoriteEntrySchema = {
@@ -30,14 +31,9 @@ const favoriteListSchema = {
type: "array",
items: favoriteEntrySchema,
} as const satisfies JSONSchema;
+import { getRecipeEnvironment } from "../env.ts";
-function errorUI(message: string): VNode {
- return h("span", { style: "color: red" }, `⚠️ ${message}`);
-}
-
-function cellLinkUI(cell: Cell