@parlor/agent-ui 0.1.0 → 0.2.0
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/dist/client/agent-ui-client.js.map +1 -1
- package/dist/client/confirmations.js.map +1 -1
- package/dist/client/environment.js.map +1 -1
- package/dist/client/highlight.js.map +1 -1
- package/dist/client/index.js.map +1 -1
- package/dist/client/json-equal.js.map +1 -1
- package/dist/client/registry.js.map +1 -1
- package/dist/client/screen.js.map +1 -1
- package/dist/client/write.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/manifest.js.map +1 -1
- package/dist/pages.d.ts +11 -0
- package/dist/pages.d.ts.map +1 -0
- package/dist/pages.js +42 -0
- package/dist/pages.js.map +1 -0
- package/dist/protocol.js.map +1 -1
- package/dist/server/agent-ui.js.map +1 -1
- package/dist/server/audience.js.map +1 -1
- package/dist/server/broker.js.map +1 -1
- package/dist/server/confirmations.js.map +1 -1
- package/dist/server/directory.js.map +1 -1
- package/dist/server/index.js.map +1 -1
- package/dist/server/manifest-source.js.map +1 -1
- package/dist/server/routes.js.map +1 -1
- package/dist/server/schemas.js.map +1 -1
- package/dist/server/tools.js.map +1 -1
- package/dist/view.js.map +1 -1
- package/dist/vite/index.d.ts +1 -1
- package/dist/vite/index.d.ts.map +1 -1
- package/dist/vite/index.js.map +1 -1
- package/dist/vite/manifest.js.map +1 -1
- package/dist/vite/plugin.d.ts +8 -2
- package/dist/vite/plugin.d.ts.map +1 -1
- package/dist/vite/plugin.js +61 -12
- package/dist/vite/plugin.js.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-ui.js","sourceRoot":"","sources":["../../src/server/agent-ui.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agent-ui.js","sourceRoot":"","sources":["../../src/server/agent-ui.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ServerChannel } from \"@parlor/sync\";\n\nimport type { UiManifest } from \"../manifest.js\";\nimport { type AgentOrigin, type ClientMessage, UI_CHANNEL } from \"../protocol.js\";\nimport { UiBroker, type UiReceipt } from \"./broker.js\";\nimport {\n ConfirmationBoard,\n type ConfirmationOutcome,\n type ConfirmationRequest,\n DEFAULT_CONFIRM_TIMEOUT_MS,\n} from \"./confirmations.js\";\nimport { ClientDirectory } from \"./directory.js\";\nimport {\n normalizeManifest,\n type UiManifestInput,\n type UiManifestSource,\n} from \"./manifest-source.js\";\nimport {\n type AgentTool,\n type AgentToolContext,\n createUiTools,\n uiInstructions,\n} from \"./tools.js\";\n\nexport type ExternalUiPolicy = boolean | \"read-only\";\n\nexport interface AgentUiOptions {\n readonly external?: ExternalUiPolicy | undefined;\n readonly timeoutMs?: number | undefined;\n readonly confirmTimeoutMs?: number | undefined;\n}\n\nexport interface AgentUiDependencies {\n readonly audience: (request: Request) => string | Promise<string>;\n readonly webOrigin?: string | undefined;\n}\n\nexport interface AgentUi {\n readonly channel: ServerChannel;\n touch(clientId: string | undefined, audience: string): void;\n receive(clientId: string, audience: string, message: ClientMessage): UiReceipt;\n tools(surface: \"mcp\" | \"agent\"): readonly AgentTool[];\n /** `chat` binds an inline agent's `ui_*` calls to the client its turn's prompt came from. */\n contextFor(\n request: Request | undefined,\n origin: AgentOrigin,\n signal?: AbortSignal,\n chat?: { readonly clientId: string },\n ): Promise<AgentToolContext>;\n instructions(surface: \"mcp\" | \"agent\"): string | undefined;\n confirm(request: ConfirmationRequest): Promise<ConfirmationOutcome>;\n manifest(): UiManifest | undefined;\n install(source: UiManifestSource): void;\n close(): void;\n}\n\nexport const DEFAULT_UI_TIMEOUT_MS = 10_000;\n\nexport function webOriginFromEnv(\n value: string | undefined = process.env.PARLOR_WEB_ORIGIN,\n): string | undefined {\n return value && /^https?:\\/\\//.test(value) ? value : undefined;\n}\n\nexport function createAgentUi(options: AgentUiOptions & AgentUiDependencies): AgentUi {\n const external = options.external ?? true;\n const webOrigin = \"webOrigin\" in options ? options.webOrigin : webOriginFromEnv();\n const directory = new ClientDirectory();\n const confirmations = new ConfirmationBoard({\n directory,\n timeoutMs: options.confirmTimeoutMs ?? DEFAULT_CONFIRM_TIMEOUT_MS,\n });\n const broker = new UiBroker({ timeoutMs: options.timeoutMs ?? DEFAULT_UI_TIMEOUT_MS });\n const toolsFor = createUiTools({ directory, broker });\n let source: UiManifestSource = () => undefined;\n let normalized: { input: UiManifestInput; manifest: UiManifest } | undefined;\n const manifest = (): UiManifest | undefined => {\n const input = source();\n if (!input) return undefined;\n if (normalized?.input !== input) {\n normalized = { input, manifest: normalizeManifest(input) };\n }\n return normalized.manifest;\n };\n\n const tools = (surface: \"mcp\" | \"agent\") => {\n const allTools = toolsFor(manifest());\n if (surface === \"agent\" || external === true) return allTools;\n if (external === \"read-only\") return allTools.filter((tool) => tool.readOnly);\n return [];\n };\n\n return {\n channel: {\n event: UI_CHANNEL,\n connect: (connection) => directory.connect(connection),\n },\n touch: (clientId, audience) => directory.touch(clientId, audience),\n receive(clientId, audience, message) {\n switch (message.type) {\n case \"presence\": {\n const outcome = directory.presence(clientId, audience, message);\n const target = directory.target(clientId);\n if (outcome === \"registered\" && target) broker.reconnected(target);\n return { accepted: outcome !== \"rejected\" };\n }\n case \"leave\": {\n const left = directory.leave(clientId, audience);\n if (left) broker.abandon(clientId);\n return { accepted: left };\n }\n case \"reply\":\n return broker.reply(clientId, message);\n case \"answer\":\n return { accepted: confirmations.answer(clientId, audience, message) };\n }\n },\n tools,\n async contextFor(request, origin, signal, chat) {\n return {\n scope: request ? await options.audience(request) : \"default\",\n ...(chat ? { clientId: chat.clientId } : {}),\n origin,\n signal,\n webOrigin: webOrigin ?? (request ? new URL(request.url).origin : undefined),\n };\n },\n instructions: (surface) => (tools(surface).length > 0 ? uiInstructions() : undefined),\n confirm: (request) => confirmations.ask(request),\n manifest,\n install(next) {\n source = next;\n },\n close: () => {\n broker.close();\n confirmations.close();\n },\n };\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audience.js","sourceRoot":"","sources":["../../src/server/audience.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAA+B,MAAM,EAAE,MAAM,cAAc,CAAC;AAEhF;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,KAAa,EAAE,SAAgC;IACxE,OAAO,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;AAChD,CAAC;AAED,+FAA+F;AAC/F,MAAM,UAAU,YAAY,CAAC,KAAa,EAAE,MAA0B;IACpE,OAAO,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,WAAW;QACnD,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,GAAG,KAAK,SAAS,MAAM,EAAE,CAAC;AAChC,CAAC"}
|
|
1
|
+
{"version":3,"file":"audience.js","sourceRoot":"","sources":["../../src/server/audience.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAA+B,MAAM,EAAE,MAAM,cAAc,CAAC;AAEhF;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,KAAa,EAAE,SAAgC;IACxE,OAAO,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;AAChD,CAAC;AAED,+FAA+F;AAC/F,MAAM,UAAU,YAAY,CAAC,KAAa,EAAE,MAA0B;IACpE,OAAO,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,WAAW;QACnD,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,GAAG,KAAK,SAAS,MAAM,EAAE,CAAC;AAChC,CAAC","sourcesContent":["import { DEV_USER_ID, type Principal, type UserId, userOf } from \"@parlor/core\";\n\n/**\n * Whose screens a request may see and drive: its scope and, once signed in, its user.\n * Without auth, or as the dev user, it is the scope itself.\n */\nexport function audienceOf(scope: string, principal: Principal | undefined): string {\n return userAudience(scope, userOf(principal));\n}\n\n/** `audienceOf` for a known user: the sync stream only that user's tabs and computers hear. */\nexport function userAudience(scope: string, userId: UserId | undefined): string {\n return userId === undefined || userId === DEV_USER_ID\n ? scope\n : `${scope}\\u001f${userId}`;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"broker.js","sourceRoot":"","sources":["../../src/server/broker.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"broker.js","sourceRoot":"","sources":["../../src/server/broker.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n type AgentOrigin,\n type UiError,\n type UiOp,\n type UiOpInput,\n type UiOpResults,\n uiOpReadOnly,\n type UiReply,\n} from \"../protocol.js\";\nimport type { ClientTarget } from \"./directory.js\";\n\nexport class UiFailure extends Error {\n constructor(readonly error: UiError) {\n super(error.message);\n }\n}\n\nexport interface BrokerOptions {\n readonly timeoutMs: number;\n readonly maxPendingPerClient?: number | undefined;\n readonly maxPending?: number | undefined;\n readonly newId?: (() => string) | undefined;\n readonly now?: (() => number) | undefined;\n readonly setTimeout?: typeof globalThis.setTimeout | undefined;\n readonly clearTimeout?: typeof globalThis.clearTimeout | undefined;\n}\n\ninterface Pending {\n readonly id: string;\n readonly clientId: string;\n readonly frame: string;\n readonly readOnly: boolean;\n readonly deadline: number;\n dispatched: boolean;\n settle(outcome: UiReply | UiError): void;\n}\n\ninterface Lane {\n target: ClientTarget;\n readonly queue: Pending[];\n}\n\nexport interface UiReceipt {\n readonly accepted: boolean;\n readonly next?: string | undefined;\n}\n\nfunction unanswered(pending: Pending, reason: string): UiError {\n if (!pending.dispatched) {\n return { code: \"timeout\", message: `${reason} The app did not receive it.` };\n }\n if (pending.readOnly) {\n return {\n code: \"timeout\",\n message: `${reason} Nothing on screen changed; retrying is safe.`,\n };\n }\n return {\n code: \"outcome_unknown\",\n message: `${reason} The app may still have applied it; read the screen before retrying.`,\n };\n}\n\nconst DEFAULT_MAX_PENDING_PER_CLIENT = 8;\nconst DEFAULT_MAX_PENDING = 256;\n\nexport class UiBroker {\n readonly #timeoutMs: number;\n readonly #maxPendingPerClient: number;\n readonly #maxPending: number;\n readonly #newId: () => string;\n readonly #now: () => number;\n readonly #setTimeout: (fn: () => void, ms: number) => ReturnType<typeof setTimeout>;\n readonly #clearTimeout: (id: ReturnType<typeof setTimeout>) => void;\n readonly #pending = new Map<string, Pending>();\n readonly #lanes = new Map<string, Lane>();\n\n constructor(options: BrokerOptions) {\n this.#timeoutMs = options.timeoutMs;\n this.#maxPendingPerClient =\n options.maxPendingPerClient ?? DEFAULT_MAX_PENDING_PER_CLIENT;\n this.#maxPending = options.maxPending ?? DEFAULT_MAX_PENDING;\n this.#newId = options.newId ?? (() => crypto.randomUUID());\n this.#now = options.now ?? (() => Date.now());\n this.#setTimeout = options.setTimeout ?? ((fn, ms) => globalThis.setTimeout(fn, ms));\n this.#clearTimeout = options.clearTimeout ?? ((id) => globalThis.clearTimeout(id));\n }\n\n request<O extends UiOp>(\n target: ClientTarget,\n op: O,\n input: UiOpInput<O>,\n origin: AgentOrigin,\n signal?: AbortSignal,\n ): Promise<UiOpResults[O]> {\n const clientId = target.client.id;\n if (\n this.#pending.size >= this.#maxPending ||\n (this.#lanes.get(clientId)?.queue.length ?? 0) >= this.#maxPendingPerClient\n ) {\n return Promise.reject(\n new UiFailure({\n code: \"busy\",\n message: \"Too many UI requests are waiting for this app; try again shortly.\",\n }),\n );\n }\n const id = this.#newId();\n const frame = JSON.stringify({ id, op, input, origin, timeoutMs: this.#timeoutMs });\n\n return new Promise<UiOpResults[O]>((resolve, reject) => {\n const giveUp = (reason: string) => this.#giveUp(pending, reason);\n const onAbort = () => giveUp(\"The UI request was cancelled.\");\n const timer = this.#setTimeout(\n () => giveUp(`The app did not answer within ${this.#timeoutMs} ms.`),\n this.#timeoutMs,\n );\n const pending: Pending = {\n id,\n clientId,\n frame,\n readOnly: uiOpReadOnly[op],\n deadline: this.#now() + this.#timeoutMs,\n dispatched: false,\n settle: (outcome) => {\n this.#clearTimeout(timer);\n signal?.removeEventListener(\"abort\", onAbort);\n if (!(\"type\" in outcome)) reject(new UiFailure(outcome));\n else if (outcome.ok) resolve(outcome.result as UiOpResults[O]);\n else reject(new UiFailure(outcome.error));\n },\n };\n this.#pending.set(id, pending);\n const lane = this.#lanes.get(clientId) ?? { target, queue: [] };\n lane.target = target;\n lane.queue.push(pending);\n this.#lanes.set(clientId, lane);\n signal?.addEventListener(\"abort\", onAbort, { once: true });\n if (lane.queue[0] === pending) pending.dispatched = target.send(frame);\n if (signal?.aborted) onAbort();\n });\n }\n\n reply(clientId: string, reply: UiReply): UiReceipt {\n const pending = this.#pending.get(reply.id);\n if (!pending || pending.clientId !== clientId) return { accepted: false };\n this.#finish(pending, reply);\n return { accepted: true, next: this.#handOver(clientId) };\n }\n\n reconnected(target: ClientTarget): void {\n const lane = this.#lanes.get(target.client.id);\n if (!lane) return;\n lane.target = target;\n const head = lane.queue[0];\n if (head && target.send(head.frame)) head.dispatched = true;\n }\n\n abandon(clientId: string): void {\n for (const pending of [...(this.#lanes.get(clientId)?.queue ?? [])]) {\n this.#finish(\n pending,\n unanswered(pending, \"The app client closed before it answered.\"),\n );\n }\n }\n\n close(): void {\n for (const pending of [...this.#pending.values()]) {\n this.#finish(pending, {\n code: \"internal\",\n message: \"The server is shutting down.\",\n });\n }\n }\n\n #giveUp(pending: Pending, reason: string): void {\n if (!this.#finish(pending, unanswered(pending, reason))) return;\n const lane = this.#lanes.get(pending.clientId);\n const next = this.#waiting(pending.clientId);\n if (lane && next) next.dispatched = lane.target.send(next.frame);\n }\n\n #handOver(clientId: string): string | undefined {\n const next = this.#waiting(clientId);\n if (!next) return undefined;\n next.dispatched = true;\n return next.frame;\n }\n\n #waiting(clientId: string): Pending | undefined {\n const head = this.#lanes.get(clientId)?.queue[0];\n return head && !head.dispatched && head.deadline > this.#now() ? head : undefined;\n }\n\n #finish(pending: Pending, outcome: UiReply | UiError): boolean {\n if (!this.#pending.delete(pending.id)) return false;\n const lane = this.#lanes.get(pending.clientId);\n if (lane) {\n lane.queue.splice(lane.queue.indexOf(pending), 1);\n if (lane.queue.length === 0) this.#lanes.delete(pending.clientId);\n }\n pending.settle(outcome);\n return true;\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"confirmations.js","sourceRoot":"","sources":["../../src/server/confirmations.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"confirmations.js","sourceRoot":"","sources":["../../src/server/confirmations.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n AgentOrigin,\n ConfirmationAnswer,\n ConfirmationPrompt,\n ConfirmationsFrame,\n} from \"../protocol.js\";\nimport type { ClientDirectory, DirectoryListener } from \"./directory.js\";\n\n/** The 60 s the user gets, less 1 s so a client on MCP's default 60 s timeout hears our code. */\nexport const DEFAULT_CONFIRM_TIMEOUT_MS = 59_000;\n\nexport const ORPHAN_GRACE_MS = 5_000;\n\nexport const MAX_PENDING_PER_SCOPE = 8;\n\nexport interface ConfirmationRequest {\n readonly scope: string;\n readonly clientId?: string | undefined;\n /**\n * Set when an inline agent asks inside a chat turn: the audience is then every client\n * watching the thread plus `clientId`, not the presence selection.\n */\n readonly thread?: ConfirmationThread | undefined;\n readonly action: string;\n readonly description: string;\n readonly input: unknown;\n readonly origin: AgentOrigin;\n readonly signal?: AbortSignal | undefined;\n}\n\nexport interface ConfirmationThread {\n readonly threadId: string;\n readonly turnId: string;\n}\n\nexport type ConfirmationOutcome =\n | \"approved\"\n | \"declined\"\n | \"timeout\"\n | \"unavailable\"\n | \"cancelled\"\n | \"shutdown\";\n\nexport interface ConfirmationBoardOptions {\n readonly directory: ClientDirectory;\n readonly timeoutMs: number;\n readonly orphanGraceMs?: number | undefined;\n readonly maxPendingPerScope?: number | undefined;\n readonly newId?: (() => string) | undefined;\n}\n\ntype Timer = ReturnType<typeof setTimeout>;\n\nclass Pending {\n readonly audience = new Set<string>();\n orphanTimer: Timer | undefined;\n #deadlineTimer: Timer | undefined;\n #settled = false;\n\n constructor(\n readonly id: string,\n readonly request: ConfirmationRequest,\n readonly deadline: number,\n private readonly finish: (outcome: ConfirmationOutcome) => void,\n private readonly cleanup: () => void,\n ) {}\n\n armDeadline(timeoutMs: number): void {\n this.#deadlineTimer = setTimeout(() => this.settle(\"timeout\"), timeoutMs);\n }\n\n settle(outcome: ConfirmationOutcome): void {\n if (this.#settled) return;\n this.#settled = true;\n clearTimeout(this.#deadlineTimer);\n clearTimeout(this.orphanTimer);\n this.cleanup();\n this.finish(outcome);\n }\n}\n\nconst EMPTY_LIST = \"[]\";\n\nfunction jsonOf(value: unknown): string {\n const seen = new WeakSet<object>();\n return JSON.stringify(value, (_key, item: unknown) => {\n if (typeof item === \"bigint\") return item.toString();\n if (typeof item === \"object\" && item !== null) {\n if (seen.has(item)) return \"[circular]\";\n seen.add(item);\n }\n return item;\n });\n}\n\nexport class ConfirmationBoard {\n readonly #directory: ClientDirectory;\n readonly #timeoutMs: number;\n readonly #graceMs: number;\n readonly #maxPerScope: number;\n readonly #newId: () => string;\n readonly #pending = new Map<string, Pending>();\n readonly #byScope = new Map<string, Set<Pending>>();\n readonly #sent = new Map<string, { readonly scope: string; signature: string }>();\n readonly #forgetting = new Map<string, Timer>();\n #closed = false;\n\n constructor(options: ConfirmationBoardOptions) {\n this.#directory = options.directory;\n this.#timeoutMs = options.timeoutMs;\n this.#graceMs = options.orphanGraceMs ?? ORPHAN_GRACE_MS;\n this.#maxPerScope = options.maxPendingPerScope ?? MAX_PENDING_PER_SCOPE;\n let ids = 0;\n this.#newId = options.newId ?? (() => `${Date.now().toString(36)}-${++ids}`);\n options.directory.subscribe(this.#changed);\n }\n\n ask(request: ConfirmationRequest): Promise<ConfirmationOutcome> {\n const { scope, signal } = request;\n if (this.#closed) return Promise.resolve(\"shutdown\");\n if (signal?.aborted) return Promise.resolve(\"cancelled\");\n if ((this.#byScope.get(scope)?.size ?? 0) >= this.#maxPerScope) {\n return Promise.resolve(\"unavailable\");\n }\n const audience = this.#selected(request);\n if (audience.length === 0) return Promise.resolve(\"unavailable\");\n\n return new Promise((resolve) => {\n const onAbort = () => pending.settle(\"cancelled\");\n const pending = new Pending(\n this.#newId(),\n request,\n Date.now() + this.#timeoutMs,\n resolve,\n () => {\n signal?.removeEventListener(\"abort\", onAbort);\n this.#pending.delete(pending.id);\n const peers = this.#byScope.get(scope);\n peers?.delete(pending);\n if (peers?.size === 0) this.#byScope.delete(scope);\n this.#refresh(scope);\n },\n );\n for (const id of audience) pending.audience.add(id);\n this.#pending.set(pending.id, pending);\n let peers = this.#byScope.get(scope);\n if (!peers) this.#byScope.set(scope, (peers = new Set()));\n peers.add(pending);\n pending.armDeadline(this.#timeoutMs);\n signal?.addEventListener(\"abort\", onAbort, { once: true });\n this.#refresh(scope);\n });\n }\n\n answer(clientId: string, scope: string, answer: ConfirmationAnswer): boolean {\n const pending = this.#pending.get(answer.id);\n if (!pending || pending.request.scope !== scope || !pending.audience.has(clientId)) {\n return false;\n }\n pending.settle(answer.approve ? \"approved\" : \"declined\");\n return true;\n }\n\n close(): void {\n this.#closed = true;\n for (const pending of [...this.#pending.values()]) pending.settle(\"shutdown\");\n for (const timer of this.#forgetting.values()) clearTimeout(timer);\n this.#forgetting.clear();\n }\n\n readonly #changed: DirectoryListener = (scope, clientId, change) => {\n const peers = this.#byScope.get(scope);\n if (change === \"left\") {\n for (const pending of peers ?? []) pending.audience.delete(clientId);\n this.#forgetLater(clientId);\n }\n if (change === \"joined\") {\n this.#stopForgetting(clientId);\n if (this.#sent.has(clientId)) {\n this.#sent.set(clientId, { scope, signature: \"stale\" });\n }\n }\n this.#refresh(scope);\n };\n\n #forgetLater(clientId: string): void {\n this.#stopForgetting(clientId);\n if (!this.#sent.has(clientId)) return;\n const timer = setTimeout(() => {\n this.#forgetting.delete(clientId);\n this.#sent.delete(clientId);\n }, this.#timeoutMs);\n timer.unref();\n this.#forgetting.set(clientId, timer);\n }\n\n #stopForgetting(clientId: string): void {\n clearTimeout(this.#forgetting.get(clientId));\n this.#forgetting.delete(clientId);\n }\n\n #selected(request: ConfirmationRequest): string[] {\n if (request.thread) return this.#watchers(request, request.thread);\n const selection = this.#directory.select(request.scope, request.clientId);\n if (!selection) return [];\n return [selection.target.client, ...selection.tied]\n .filter((client) => client.canConfirm)\n .map((client) => client.id);\n }\n\n #watchers(request: ConfirmationRequest, thread: ConfirmationThread): string[] {\n return this.#directory\n .targets(request.scope)\n .map(({ client }) => client)\n .filter(\n (client) =>\n client.canConfirm &&\n (client.id === request.clientId || client.watching.includes(thread.threadId)),\n )\n .map((client) => client.id);\n }\n\n #canShow(clientId: string): boolean {\n return this.#directory.target(clientId)?.client.canConfirm ?? false;\n }\n\n #refresh(scope: string): void {\n const peers = this.#byScope.get(scope);\n if (!peers && ![...this.#sent.values()].some((sent) => sent.scope === scope)) return;\n for (const pending of peers ?? []) {\n const selected = this.#selected(pending.request);\n if (pending.request.thread) pending.audience.clear();\n for (const id of selected) pending.audience.add(id);\n }\n for (const target of this.#directory.targets(scope)) {\n this.#deliver(target, [...(peers ?? [])]);\n }\n for (const pending of peers ?? []) this.#watchOrphan(pending);\n }\n\n #deliver(\n target: ReturnType<ClientDirectory[\"targets\"]>[number],\n peers: readonly Pending[],\n ): void {\n const { id, scope, canConfirm } = target.client;\n const mine = canConfirm ? peers.filter((pending) => pending.audience.has(id)) : [];\n const now = Date.now();\n const prompts = mine.map((pending) => this.#prompt(pending, now));\n const signature =\n prompts.length === 0\n ? EMPTY_LIST\n : jsonOf(prompts.map(({ expiresInMs: _expires, ...rest }) => rest));\n const previous = this.#sent.get(id)?.signature;\n if (previous === signature || (previous === undefined && prompts.length === 0))\n return;\n const frame: ConfirmationsFrame = { type: \"confirmations\", items: prompts };\n if (!target.send(jsonOf(frame))) return;\n if (prompts.length === 0) this.#sent.delete(id);\n else this.#sent.set(id, { scope, signature });\n }\n\n #prompt(pending: Pending, now: number): ConfirmationPrompt {\n const { id, request, deadline } = pending;\n return {\n id,\n action: request.action,\n description: request.description,\n input: request.input ?? null,\n origin: request.origin,\n expiresInMs: Math.max(0, deadline - now),\n ...(request.thread ? { threadId: request.thread.threadId } : {}),\n };\n }\n\n #watchOrphan(pending: Pending): void {\n const shown = [...pending.audience].some((id) => this.#canShow(id));\n if (shown) {\n clearTimeout(pending.orphanTimer);\n pending.orphanTimer = undefined;\n } else if (pending.orphanTimer === undefined) {\n pending.orphanTimer = setTimeout(\n () => pending.settle(\"unavailable\"),\n this.#graceMs,\n );\n }\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"directory.js","sourceRoot":"","sources":["../../src/server/directory.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"directory.js","sourceRoot":"","sources":["../../src/server/directory.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ChannelConnection } from \"@parlor/sync\";\n\nimport {\n type ClientSummary,\n isUiOp,\n LEGACY_UI_OPS,\n type PresenceUpdate,\n type UiOp,\n} from \"../protocol.js\";\nimport { audienceOf } from \"./audience.js\";\n\nexport interface ConnectedClient {\n readonly id: string;\n readonly scope: string;\n readonly platform: string;\n readonly buildId: string | undefined;\n readonly focused: boolean;\n readonly visible: boolean;\n readonly ops: readonly UiOp[];\n readonly canConfirm: boolean;\n readonly watching: readonly string[];\n readonly seenAt: number;\n}\n\nexport interface ClientTarget {\n readonly client: ConnectedClient;\n send(data: string): boolean;\n}\n\nexport interface Selection {\n readonly target: ClientTarget;\n readonly tied: readonly ConnectedClient[];\n}\n\nexport type PresenceOutcome = \"rejected\" | \"updated\" | \"registered\";\n\nexport type DirectoryChange = \"joined\" | \"updated\" | \"left\";\n\nexport type DirectoryListener = (\n scope: string,\n clientId: string,\n change: DirectoryChange,\n) => void;\n\ninterface Entry {\n client: ConnectedClient;\n readonly connections: ChannelConnection[];\n}\n\nexport class ClientDirectory {\n readonly #now: () => number;\n readonly #byId = new Map<string, Entry>();\n readonly #byScope = new Map<string, Set<Entry>>();\n readonly #unannounced = new Map<string, ChannelConnection[]>();\n\n readonly #listeners = new Set<DirectoryListener>();\n\n constructor(now: () => number = Date.now) {\n this.#now = now;\n }\n\n subscribe(listener: DirectoryListener): () => void {\n this.#listeners.add(listener);\n return () => this.#listeners.delete(listener);\n }\n\n connect(stream: ChannelConnection): () => void {\n const { clientId } = stream;\n if (clientId === undefined) return () => {};\n const connection: ChannelConnection = {\n ...stream,\n scope: audienceOf(stream.scope, stream.principal),\n };\n this.#keepUnannounced(clientId, [\n ...(this.#unannounced.get(clientId) ?? []),\n connection,\n ]);\n return () => this.#disconnect(clientId, connection);\n }\n\n touch(clientId: string | undefined, scope: string): void {\n if (clientId === undefined) return;\n const entry = this.#byId.get(clientId);\n if (!entry || entry.client.scope !== scope) return;\n entry.client = { ...entry.client, seenAt: this.#now() };\n this.#notify(entry.client, \"updated\");\n }\n\n presence(clientId: string, scope: string, update: PresenceUpdate): PresenceOutcome {\n const announcing = this.#takeUnannounced(clientId, scope);\n let entry = this.#byId.get(clientId);\n if (entry && entry.client.scope !== scope) {\n if (announcing.length === 0) return \"rejected\";\n this.#forget(entry);\n entry = undefined;\n }\n if (!entry && announcing.length === 0) return \"rejected\";\n const client: ConnectedClient = {\n id: clientId,\n scope,\n platform: update.platform,\n buildId: update.buildId,\n focused: update.focused,\n visible: update.visible,\n ops: update.ops ? update.ops.filter(isUiOp) : LEGACY_UI_OPS,\n canConfirm: update.canConfirm ?? false,\n watching: update.watching ?? [],\n seenAt: this.#now(),\n };\n if (entry) {\n entry.client = client;\n } else {\n entry = { client, connections: [] };\n this.#byId.set(clientId, entry);\n this.#scopeSet(scope).add(entry);\n }\n entry.connections.push(...announcing);\n const outcome = announcing.length > 0 ? \"registered\" : \"updated\";\n this.#notify(client, outcome === \"registered\" ? \"joined\" : \"updated\");\n return outcome;\n }\n\n leave(clientId: string, scope: string): boolean {\n const entry = this.#byId.get(clientId);\n if (!entry || entry.client.scope !== scope) return false;\n const released = entry.connections.splice(0);\n this.#forget(entry);\n this.#keepUnannounced(clientId, [\n ...(this.#unannounced.get(clientId) ?? []),\n ...released,\n ]);\n return true;\n }\n\n connected(scope: string, clientId: string): boolean {\n return this.#byId.get(clientId)?.client.scope === scope;\n }\n\n targets(scope: string): readonly ClientTarget[] {\n return [...(this.#byScope.get(scope) ?? [])].map((entry) => this.#targetOf(entry));\n }\n\n target(clientId: string): ClientTarget | undefined {\n const entry = this.#byId.get(clientId);\n return entry && this.#targetOf(entry);\n }\n\n select(scope: string, clientId?: string): Selection | undefined {\n const entries = [...(this.#byScope.get(scope) ?? [])];\n if (entries.length === 0) return undefined;\n const explicit = clientId === undefined ? undefined : this.#byId.get(clientId);\n if (explicit && explicit.client.scope === scope) {\n return { target: this.#targetOf(explicit), tied: [] };\n }\n const focused = entries.filter((e) => e.client.focused);\n if (focused.length > 0) return this.#mostRecent(focused, () => true);\n const visible = entries.filter((e) => e.client.visible);\n const pool = visible.length > 0 ? visible : entries;\n return this.#mostRecent(pool, (a, b) => a.client.seenAt === b.client.seenAt);\n }\n\n summaries(scope: string): ClientSummary[] {\n return [...(this.#byScope.get(scope) ?? [])].map((entry) =>\n this.summary(entry.client),\n );\n }\n\n summary(client: ConnectedClient): ClientSummary {\n return {\n id: client.id,\n platform: client.platform,\n ...(client.buildId === undefined ? {} : { buildId: client.buildId }),\n focused: client.focused,\n visible: client.visible,\n seenAgoMs: Math.max(0, this.#now() - client.seenAt),\n };\n }\n\n #mostRecent(pool: Entry[], ties: (a: Entry, b: Entry) => boolean): Selection {\n let best = pool[0]!;\n for (const entry of pool) if (entry.client.seenAt >= best.client.seenAt) best = entry;\n const tied = pool.filter((entry) => entry !== best && ties(entry, best));\n return { target: this.#targetOf(best), tied: tied.map((entry) => entry.client) };\n }\n\n #targetOf(entry: Entry): ClientTarget {\n return {\n client: entry.client,\n send: (data) => {\n const connection = entry.connections.at(-1);\n if (!connection) return false;\n connection.send(data);\n return true;\n },\n };\n }\n\n #takeUnannounced(clientId: string, scope: string): ChannelConnection[] {\n const waiting = this.#unannounced.get(clientId) ?? [];\n this.#keepUnannounced(\n clientId,\n waiting.filter((connection) => connection.scope !== scope),\n );\n return waiting.filter((connection) => connection.scope === scope);\n }\n\n #keepUnannounced(clientId: string, connections: ChannelConnection[]): void {\n if (connections.length > 0) this.#unannounced.set(clientId, connections);\n else this.#unannounced.delete(clientId);\n }\n\n #disconnect(clientId: string, connection: ChannelConnection): void {\n const waiting = this.#unannounced.get(clientId);\n if (waiting?.includes(connection)) {\n this.#keepUnannounced(\n clientId,\n waiting.filter((candidate) => candidate !== connection),\n );\n return;\n }\n const entry = this.#byId.get(clientId);\n const index = entry?.connections.indexOf(connection) ?? -1;\n if (!entry || index === -1) return;\n entry.connections.splice(index, 1);\n if (entry.connections.length === 0) this.#forget(entry);\n }\n\n #forget(entry: Entry): void {\n if (this.#byId.get(entry.client.id) !== entry) return;\n this.#byId.delete(entry.client.id);\n const peers = this.#byScope.get(entry.client.scope);\n peers?.delete(entry);\n if (peers?.size === 0) this.#byScope.delete(entry.client.scope);\n this.#notify(entry.client, \"left\");\n }\n\n #notify(client: ConnectedClient, change: DirectoryChange): void {\n for (const listener of this.#listeners) listener(client.scope, client.id, change);\n }\n\n #scopeSet(scope: string): Set<Entry> {\n let set = this.#byScope.get(scope);\n if (!set) {\n set = new Set();\n this.#byScope.set(scope, set);\n }\n return set;\n }\n}\n"]}
|
package/dist/server/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,aAAa,EACb,qBAAqB,EAErB,gBAAgB,GACjB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAIL,0BAA0B,GAC3B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,kBAAkB,GAGnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAsB,QAAQ,EAAE,SAAS,EAAkB,MAAM,aAAa,CAAC;AACtF,OAAO,EACL,eAAe,GAKhB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAEL,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAOL,oBAAoB,EACpB,QAAQ,GAGT,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,aAAa,EACb,qBAAqB,EAErB,gBAAgB,GACjB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAIL,0BAA0B,GAC3B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,kBAAkB,GAGnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAsB,QAAQ,EAAE,SAAS,EAAkB,MAAM,aAAa,CAAC;AACtF,OAAO,EACL,eAAe,GAKhB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAEL,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAOL,oBAAoB,EACpB,QAAQ,GAGT,MAAM,YAAY,CAAC","sourcesContent":["export {\n type AgentUi,\n type AgentUiDependencies,\n type AgentUiOptions,\n createAgentUi,\n DEFAULT_UI_TIMEOUT_MS,\n type ExternalUiPolicy,\n webOriginFromEnv,\n} from \"./agent-ui.js\";\nexport { audienceOf, userAudience } from \"./audience.js\";\nexport {\n type ConfirmationOutcome,\n type ConfirmationRequest,\n type ConfirmationThread,\n DEFAULT_CONFIRM_TIMEOUT_MS,\n} from \"./confirmations.js\";\nexport {\n fileManifestSource,\n type UiManifestInput,\n type UiManifestSource,\n} from \"./manifest-source.js\";\nexport { type BrokerOptions, UiBroker, UiFailure, type UiReceipt } from \"./broker.js\";\nexport {\n ClientDirectory,\n type ClientTarget,\n type ConnectedClient,\n type PresenceOutcome,\n type Selection,\n} from \"./directory.js\";\nexport {\n type AgentUiRouteOptions,\n MAX_CLIENT_MESSAGE_BYTES,\n registerAgentUiRoutes,\n} from \"./routes.js\";\nexport { parseClientMessage, uiOpInputs } from \"./schemas.js\";\nexport {\n type AgentTool,\n type AgentToolContext,\n type HighlightToolResult,\n type NavigateToolResult,\n type ScreenToolResult,\n type SetToolResult,\n UI_MANIFEST_RESOURCE,\n UI_TOOLS,\n type UiToolName,\n type UnreachableResult,\n} from \"./tools.js\";\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest-source.js","sourceRoot":"","sources":["../../src/server/manifest-source.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAYjD,MAAM,UAAU,iBAAiB,CAAC,QAAyB;IACzD,OAAO;QACL,GAAG,QAAQ;QACX,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC,CAAC;KAClF,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,IAAY;IAChC,OAAO,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAoB,CAAC,CAAC;AACtF,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,IAAI,OAA2B,CAAC;IAChC,IAAI,QAAgC,CAAC;IACrC,OAAO,GAAG,EAAE;QACV,IAAI,IAAI,CAAC;QACT,IAAI,CAAC;YACH,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,GAAG,SAAS,CAAC;YACpB,QAAQ,GAAG,SAAS,CAAC;YACrB,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO;YAAE,OAAO,QAAQ,CAAC;QAC9C,IAAI,CAAC;YACH,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;YAC9B,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QACzB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"manifest-source.js","sourceRoot":"","sources":["../../src/server/manifest-source.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAYjD,MAAM,UAAU,iBAAiB,CAAC,QAAyB;IACzD,OAAO;QACL,GAAG,QAAQ;QACX,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC,CAAC;KAClF,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,IAAY;IAChC,OAAO,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAoB,CAAC,CAAC;AACtF,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,IAAI,OAA2B,CAAC;IAChC,IAAI,QAAgC,CAAC;IACrC,OAAO,GAAG,EAAE;QACV,IAAI,IAAI,CAAC;QACT,IAAI,CAAC;YACH,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,GAAG,SAAS,CAAC;YACpB,QAAQ,GAAG,SAAS,CAAC;YACrB,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO;YAAE,OAAO,QAAQ,CAAC;QAC9C,IAAI,CAAC;YACH,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;YAC9B,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QACzB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import { readFileSync, statSync } from \"node:fs\";\n\nimport type { UiManifest, ViewEntry } from \"../manifest.js\";\n\nexport type UiManifestInput = Omit<UiManifest, \"views\"> & {\n readonly views: readonly (Omit<ViewEntry, \"writable\"> & {\n readonly writable?: readonly string[] | undefined;\n })[];\n};\n\nexport type UiManifestSource = () => UiManifestInput | undefined;\n\nexport function normalizeManifest(manifest: UiManifestInput): UiManifest {\n return {\n ...manifest,\n views: manifest.views.map((view) => ({ ...view, writable: view.writable ?? [] })),\n };\n}\n\nfunction readManifest(path: string): UiManifest {\n return normalizeManifest(JSON.parse(readFileSync(path, \"utf8\")) as UiManifestInput);\n}\n\nexport function fileManifestSource(path: string): UiManifestSource {\n let mtimeMs: number | undefined;\n let manifest: UiManifest | undefined;\n return () => {\n let stat;\n try {\n stat = statSync(path);\n } catch {\n mtimeMs = undefined;\n manifest = undefined;\n return undefined;\n }\n if (stat.mtimeMs === mtimeMs) return manifest;\n try {\n manifest = readManifest(path);\n mtimeMs = stat.mtimeMs;\n } catch {\n return manifest;\n }\n return manifest;\n };\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/server/routes.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAElD,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,GAAG,IAAI,CAAC;AASnD,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AAEtE,MAAM,UAAU,qBAAqB,CAAC,GAAO,EAAE,OAA4B;IACzE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAE1D,GAAG,CAAC,IAAI,CAAC,GAAG,QAAQ,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QACzC,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC;QAC1B,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,GAAG,wBAAwB,EAAE,CAAC;YAClF,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;QAClC,IAAI,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,GAAG,wBAAwB,EAAE,CAAC;YACzE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC;QACD,MAAM,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC7B,IAAI,CAAC,EAAE;YAAE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,IAAa,CAAC;QAClB,IAAI,CAAC;YACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC;QACD,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,OAAO;YAAE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;QACjC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;QACtE,IAAI,CAAC,OAAO,CAAC,QAAQ;YAAE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;YAAE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;QACnD,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE;YAChC,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;SAChD,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
1
|
+
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/server/routes.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAElD,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,GAAG,IAAI,CAAC;AASnD,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AAEtE,MAAM,UAAU,qBAAqB,CAAC,GAAO,EAAE,OAA4B;IACzE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAE1D,GAAG,CAAC,IAAI,CAAC,GAAG,QAAQ,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QACzC,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC;QAC1B,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,GAAG,wBAAwB,EAAE,CAAC;YAClF,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;QAClC,IAAI,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,GAAG,wBAAwB,EAAE,CAAC;YACzE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC;QACD,MAAM,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC7B,IAAI,CAAC,EAAE;YAAE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,IAAa,CAAC;QAClB,IAAI,CAAC;YACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC;QACD,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,OAAO;YAAE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;QACjC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;QACtE,IAAI,CAAC,OAAO,CAAC,QAAQ;YAAE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;YAAE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;QACnD,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE;YAChC,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;SAChD,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC","sourcesContent":["import type { H3 } from \"h3\";\n\nimport type { AgentUi } from \"./agent-ui.js\";\nimport { parseClientMessage } from \"./schemas.js\";\n\nexport const MAX_CLIENT_MESSAGE_BYTES = 256 * 1024;\n\nexport interface AgentUiRouteOptions {\n readonly basePath: string;\n readonly agentUi: AgentUi;\n readonly audience: (request: Request) => string | Promise<string>;\n readonly clientId: (request: Request) => string | undefined;\n}\n\nconst status = (code: number) => new Response(null, { status: code });\n\nexport function registerAgentUiRoutes(app: H3, options: AgentUiRouteOptions): void {\n const { basePath, agentUi, audience, clientId } = options;\n\n app.post(`${basePath}/ui`, async (event) => {\n const request = event.req;\n if (Number(request.headers.get(\"content-length\") ?? 0) > MAX_CLIENT_MESSAGE_BYTES) {\n return status(413);\n }\n const body = await request.text();\n if (new TextEncoder().encode(body).byteLength > MAX_CLIENT_MESSAGE_BYTES) {\n return status(413);\n }\n const id = clientId(request);\n if (!id) return status(400);\n let json: unknown;\n try {\n json = JSON.parse(body);\n } catch {\n return status(400);\n }\n const message = parseClientMessage(json);\n if (!message) return status(400);\n const receipt = agentUi.receive(id, await audience(request), message);\n if (!receipt.accepted) return status(404);\n if (receipt.next === undefined) return status(204);\n return new Response(receipt.next, {\n headers: { \"content-type\": \"application/json\" },\n });\n });\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/server/schemas.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/server/schemas.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from \"zod\";\n\nimport { type ClientMessage, MAX_WATCHED_THREADS, UI_ERROR_CODES } from \"../protocol.js\";\n\nexport const uiOpInputs = {\n screen: z.object({}),\n navigate: z.object({\n to: z.string(),\n params: z\n .record(z.string(), z.string())\n .optional()\n .describe('Values for the $params in the path, e.g. { \"taskId\": \"...\" }.'),\n search: z\n .record(z.string(), z.unknown())\n .optional()\n .describe(\"Search params for the page, as its entry in the list names them.\"),\n replace: z\n .boolean()\n .optional()\n .describe(\"Replace the current history entry instead of pushing one.\"),\n }),\n set: z.object({\n view: z.string().describe(\"A writable view's name, as listed.\"),\n key: z.string().optional().describe(\"The item's key, for a keyed view.\"),\n value: z\n .record(z.string(), z.unknown())\n .describe(\"The fields to write; others keep their current value.\"),\n }),\n highlight: z.object({\n view: z.string().describe(\"A view's name, as ui_screen reports it.\"),\n key: z.string().optional().describe(\"The item's key, for a keyed view.\"),\n field: z\n .string()\n .optional()\n .describe(\"A field inside the view to focus, by its input name.\"),\n }),\n};\n\nconst errorSchema = z.object({\n code: z.enum(UI_ERROR_CODES),\n message: z.string(),\n issues: z.array(z.object({ path: z.string(), message: z.string() })).optional(),\n});\n\nconst watchingSchema = z\n .array(z.unknown())\n .transform((ids) =>\n ids\n .filter((id): id is string => typeof id === \"string\" && id !== \"\")\n .slice(0, MAX_WATCHED_THREADS),\n )\n .optional()\n .catch(undefined);\n\nexport const clientMessageSchema = z.union([\n z.object({\n type: z.literal(\"reply\"),\n id: z.string().min(1),\n ok: z.literal(true),\n result: z.unknown(),\n }),\n z.object({\n type: z.literal(\"reply\"),\n id: z.string().min(1),\n ok: z.literal(false),\n error: errorSchema,\n }),\n z.object({\n type: z.literal(\"presence\"),\n focused: z.boolean(),\n visible: z.boolean(),\n platform: z.string(),\n buildId: z.string().optional(),\n ops: z.array(z.string()).optional(),\n canConfirm: z.boolean().optional(),\n watching: watchingSchema,\n }),\n z.object({ type: z.literal(\"leave\") }),\n z.object({ type: z.literal(\"answer\"), id: z.string().min(1), approve: z.boolean() }),\n]);\n\nexport function parseClientMessage(body: unknown): ClientMessage | undefined {\n const parsed = clientMessageSchema.safeParse(body);\n return parsed.success ? parsed.data : undefined;\n}\n"]}
|
package/dist/server/tools.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/server/tools.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/server/tools.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from \"zod\";\n\nimport {\n type JsonSchema,\n routeHref,\n type RouteEntry,\n type UiManifest,\n} from \"../manifest.js\";\nimport {\n type AgentOrigin,\n type ClientSummary,\n type ScreenSnapshot,\n UI_OPS,\n type UiOp,\n type UiOpResults,\n uiOpReadOnly,\n} from \"../protocol.js\";\nimport { type UiBroker, UiFailure } from \"./broker.js\";\nimport type { ClientDirectory, Selection } from \"./directory.js\";\nimport { uiOpInputs } from \"./schemas.js\";\n\nexport type UiToolName = `ui_${UiOp}`;\n\nconst toolName = <O extends UiOp>(op: O): `ui_${O}` => `ui_${op}`;\n\nexport const UI_TOOLS: readonly UiToolName[] = UI_OPS.map(toolName);\n\nexport const UI_MANIFEST_RESOURCE = \"parlor://manifest\";\n\nexport interface AgentToolContext {\n readonly scope: string;\n readonly clientId?: string | undefined;\n readonly origin: AgentOrigin;\n readonly signal?: AbortSignal | undefined;\n readonly webOrigin?: string | undefined;\n}\n\nexport interface AgentTool<I extends z.ZodObject = z.ZodObject> {\n readonly name: UiToolName;\n readonly description: string;\n readonly input: I;\n readonly readOnly: boolean;\n run(input: z.output<I>, ctx: AgentToolContext): Promise<unknown>;\n}\n\nexport interface ScreenToolResult extends ScreenSnapshot {\n readonly client: ClientSummary;\n readonly otherClients: readonly ClientSummary[];\n readonly tiedWith?: readonly string[] | undefined;\n}\n\nexport interface NavigateToolResult {\n readonly client: ClientSummary;\n readonly screen: ScreenSnapshot;\n}\n\nexport type SetToolResult = UiOpResults[\"set\"] & { readonly client: ClientSummary };\n\nexport type HighlightToolResult = UiOpResults[\"highlight\"] & {\n readonly client: ClientSummary;\n};\n\nexport interface UnreachableResult {\n readonly reachable: false;\n readonly reason: \"no_client\";\n readonly href?: string | undefined;\n}\n\nexport interface UiToolDeps {\n readonly directory: ClientDirectory;\n readonly broker: UiBroker;\n}\n\nconst clientIdInput = z\n .string()\n .optional()\n .describe(\n \"Target a specific app client by id, as listed in client or otherClients of a ui_screen result. Omit to use the one the user is looking at.\",\n );\n\nconst UNREACHABLE: UnreachableResult = { reachable: false, reason: \"no_client\" };\n\nfunction sentence(text: string): string {\n const trimmed = text.trim();\n return /[.!?]$/.test(trimmed) ? trimmed : `${trimmed}.`;\n}\n\nfunction viewCatalog(manifest: UiManifest | undefined): string {\n if (!manifest || manifest.views.length === 0) return \"\";\n const lines = manifest.views.map(\n (view) =>\n `- ${view.name}${view.keyed ? \" (keyed)\" : \"\"}: ${sentence(view.description)}`,\n );\n return `\\n\\nViews this app can show:\\n${lines.join(\"\\n\")}`;\n}\n\nfunction typeOf(schema: JsonSchema | undefined): string {\n if (!schema) return \"value\";\n if (Array.isArray(schema.enum))\n return schema.enum.map((value) => JSON.stringify(value)).join(\" | \");\n if (\"const\" in schema) return JSON.stringify(schema.const);\n const union = (schema.anyOf ?? schema.oneOf) as JsonSchema[] | undefined;\n if (Array.isArray(union)) return union.map(typeOf).join(\" | \");\n if (schema.type === \"array\")\n return `${typeOf(schema.items as JsonSchema | undefined)}[]`;\n return typeof schema.type === \"string\" ? schema.type : \"value\";\n}\n\n/** `filter?: \"all\" | \"done\", page?: number`: what a page's search params take. */\nfunction searchOf(search: JsonSchema | undefined): string | undefined {\n const properties = search?.properties as Record<string, JsonSchema> | undefined;\n if (!properties || Object.keys(properties).length === 0) return undefined;\n const required = new Set(Array.isArray(search?.required) ? search.required : []);\n return Object.entries(properties)\n .map(([name, schema]) => `${name}${required.has(name) ? \"\" : \"?\"}: ${typeOf(schema)}`)\n .join(\", \");\n}\n\nfunction routeCatalog(manifest: UiManifest | undefined): string {\n if (!manifest || manifest.routes.length === 0) return \"\";\n const lines = manifest.routes.map((route) => {\n const parts = [`- ${route.path}`];\n if (route.description) parts.push(` - ${sentence(route.description)}`);\n const search = searchOf(route.search);\n if (search) parts.push(` Search: ${search}.`);\n if (route.views.length > 0) parts.push(` Views: ${route.views.join(\", \")}.`);\n return parts.join(\"\");\n });\n return `\\n\\nPages:\\n${lines.join(\"\\n\")}`;\n}\n\nfunction screenDescription(manifest: UiManifest | undefined): string {\n return (\n [\n \"Read what the user currently sees in the app: the route, the actions feeding the screen (name and input, never data), the views on screen with their values, and attention.\",\n \"route is the page the url matched, with notFound: false, its path pattern, params, search and url; when the url matches no page and the app shows its not-found screen, route is notFound: true with only the url.\",\n \"attention holds focus (the focused element), selection (the text the user selected and the view holding it; null unless the selection lies inside one view), lastInteracted (the view the user last clicked or focused), lastEntered (the view the user last scrolled into view; null until the user scrolls, since items already on screen when the page renders never count), and focal (the view nearest the middle of the viewport).\",\n \"Keyed views list only the items inside the viewport, in screen order, plus an offscreen count.\",\n \"The result names the app client it came from and every other open client.\",\n \"Returns reachable: false when the app is not open anywhere.\",\n ].join(\" \") + viewCatalog(manifest)\n );\n}\n\nfunction navigateDescription(manifest: UiManifest | undefined): string {\n return (\n [\n \"Take the user's app to a page, filling $params in the path from params.\",\n \"Waits for the page's data to load (up to 1.5 s) and returns the new screen in ui_screen's shape, so its route shows the page the app landed on.\",\n \"Returns reachable: false with an href to hand the user when the app is not open.\",\n ].join(\" \") + routeCatalog(manifest)\n );\n}\n\nfunction writableCatalog(manifest: UiManifest | undefined): string {\n const lines = (manifest?.views ?? [])\n .filter((view) => view.writable.length > 0)\n .map(\n (view) =>\n `- ${view.name}${view.keyed ? \" (keyed)\" : \"\"}: ${sentence(view.description)} Fields: ${view.writable.join(\", \")}.`,\n );\n return lines.length === 0 ? \"\" : `\\n\\nForms you can fill:\\n${lines.join(\"\\n\")}`;\n}\n\nfunction setDescription(manifest: UiManifest | undefined): string {\n return (\n [\n \"Fill fields of a form the user sees, as a proposal: the user reviews it and submits it themselves. Call the matching action instead only when the user explicitly asks you to submit.\",\n \"value is merged into the view's current value field by field; fields you omit keep what the user typed.\",\n \"Returns the view's value read back from the screen and agentFields, the fields that still hold what you wrote; a field missing from agentFields was changed by the user.\",\n \"Refuses with not_mounted, not_writable, user_editing (the user is typing in that field: wait or ask), invalid_value (issues name the fields), or ambiguous_client.\",\n \"Returns reachable: false when the app is not open.\",\n ].join(\" \") + writableCatalog(manifest)\n );\n}\n\nfunction highlightDescription(): string {\n return [\n \"Point at something on the user's screen: scrolls a view (a keyed item by key) or one field inside it into the middle of the screen, focuses the field (not on a touch screen, where that opens the keyboard), and marks it for two seconds.\",\n \"Use it to show the user what you mean or to ask which one they meant.\",\n \"Returns shown, the visible fraction after scrolling, or not_mounted when it is not on screen, or reachable: false when the app is not open.\",\n \"Refuses with user_editing when the user is typing in another field: wait or ask, and it moves nothing.\",\n ].join(\" \");\n}\n\nfunction routeEnum(manifest: UiManifest | undefined) {\n const paths = manifest?.routes.map((route) => route.path) ?? [];\n const [first, ...rest] = paths;\n return first === undefined ? z.string() : z.enum([first, ...rest]);\n}\n\nfunction defineTool<I extends z.ZodObject>(tool: AgentTool<I>): AgentTool {\n return tool as unknown as AgentTool;\n}\n\nfunction withClients(\n directory: ClientDirectory,\n scope: string,\n selection: Selection,\n snapshot: ScreenSnapshot,\n): ScreenToolResult {\n const chosen = selection.target.client;\n return {\n client: directory.summary(chosen),\n otherClients: directory.summaries(scope).filter((c) => c.id !== chosen.id),\n ...(selection.tied.length > 0 ? { tiedWith: selection.tied.map((c) => c.id) } : {}),\n ...snapshot,\n };\n}\n\nfunction missingParams(\n route: RouteEntry,\n params: Readonly<Record<string, string>> | undefined,\n): void {\n const missing = route.params.filter((name) => !params?.[name]);\n if (missing.length === 0) return;\n throw new UiFailure({\n code: \"unknown_route\",\n message: `${route.path} needs params: ${missing.join(\", \")}.`,\n issues: missing.map((name) => ({ path: `params.${name}`, message: \"Required\" })),\n });\n}\n\nfunction hrefFor(href: string, webOrigin: string | undefined): string {\n return webOrigin ? new URL(href, webOrigin).href : href;\n}\n\nexport function createUiTools(\n deps: UiToolDeps,\n): (manifest: UiManifest | undefined) => readonly AgentTool[] {\n const { directory, broker } = deps;\n const refuseTie = (selection: Selection) => {\n if (selection.tied.length === 0) return;\n const candidates = [selection.target.client, ...selection.tied];\n throw new UiFailure({\n code: \"ambiguous_client\",\n message:\n \"The user has several app clients open and none stands out. Ask which one, then retry with clientId.\",\n issues: candidates.map((client) => {\n const summary = directory.summary(client);\n return {\n path: \"clientId\",\n message: `${summary.id} (${summary.platform}, ${summary.focused ? \"focused\" : \"not focused\"}, ${summary.visible ? \"visible\" : \"hidden\"}, seen ${summary.seenAgoMs} ms ago)`,\n };\n }),\n });\n };\n const requireOp = (selection: Selection, op: UiOp) => {\n const { client } = selection.target;\n if (client.ops.includes(op)) return;\n throw new UiFailure({\n code: \"unsupported_op\",\n message: `The app client ${client.id} (${client.platform}${client.buildId ? `, build ${client.buildId}` : \"\"}) is too old for ui_${op}. Ask the user to update the app; ui_screen and ui_navigate still work.`,\n });\n };\n const select = (ctx: AgentToolContext, clientId: string | undefined) => {\n if (ctx.clientId !== undefined) return selectBound(ctx, ctx.clientId, clientId);\n if (clientId !== undefined && !directory.connected(ctx.scope, clientId)) {\n const connected = directory.summaries(ctx.scope).map((client) => client.id);\n throw new UiFailure({\n code: \"unknown_client\",\n message: `No app client ${clientId} is connected. Connected clients: ${connected.join(\", \") || \"none\"}.`,\n issues: connected.map((id) => ({ path: \"clientId\", message: id })),\n });\n }\n return directory.select(ctx.scope, clientId);\n };\n const selectBound = (\n ctx: AgentToolContext,\n bound: string,\n requested: string | undefined,\n ) => {\n if (requested !== undefined && requested !== bound) {\n throw new UiFailure({\n code: \"unknown_client\",\n message: `This chat acts on the app client its prompt came from, not on ${requested}.`,\n });\n }\n if (!directory.connected(ctx.scope, bound)) {\n throw new UiFailure({\n code: \"unknown_client\",\n message: \"The app client this chat was sent from is no longer connected.\",\n });\n }\n return directory.select(ctx.scope, bound);\n };\n\n const build = (manifest: UiManifest | undefined): readonly AgentTool[] => {\n const screen = defineTool({\n name: \"ui_screen\",\n description: screenDescription(manifest),\n input: uiOpInputs.screen.extend({ clientId: clientIdInput }),\n readOnly: uiOpReadOnly.screen,\n async run({ clientId }, ctx) {\n const selection = select(ctx, clientId);\n if (!selection) return UNREACHABLE;\n const snapshot = await broker.request(\n selection.target,\n \"screen\",\n {},\n ctx.origin,\n ctx.signal,\n );\n return withClients(directory, ctx.scope, selection, snapshot);\n },\n });\n\n const navigate = defineTool({\n name: \"ui_navigate\",\n description: navigateDescription(manifest),\n input: uiOpInputs.navigate.extend({\n to: routeEnum(manifest).describe(\"The page's route path, exactly as listed.\"),\n clientId: clientIdInput,\n }),\n readOnly: uiOpReadOnly.navigate,\n async run({ to, params, search, replace, clientId }, ctx) {\n const selection = select(ctx, clientId);\n const route = manifest?.routes.find((entry) => entry.path === to);\n if (manifest && manifest.routes.length > 0 && !route) {\n throw new UiFailure({ code: \"unknown_route\", message: `No page at ${to}.` });\n }\n if (route) missingParams(route, params);\n if (!selection) {\n const href = routeHref(\n route ?? { path: to, params: [], views: [] },\n params,\n search,\n );\n return { ...UNREACHABLE, href: hrefFor(href, ctx.webOrigin) };\n }\n refuseTie(selection);\n const input = {\n to,\n ...(params ? { params } : {}),\n ...(search ? { search } : {}),\n ...(replace === undefined ? {} : { replace }),\n };\n const result = await broker.request(\n selection.target,\n \"navigate\",\n input,\n ctx.origin,\n ctx.signal,\n );\n const navigated: NavigateToolResult = {\n client: directory.summary(selection.target.client),\n screen: result.screen,\n };\n return navigated;\n },\n });\n\n const set = defineTool({\n name: toolName(\"set\"),\n description: setDescription(manifest),\n input: uiOpInputs.set.extend({ clientId: clientIdInput }),\n readOnly: uiOpReadOnly.set,\n async run({ view, key, value, clientId }, ctx) {\n const selection = select(ctx, clientId);\n if (!selection) return UNREACHABLE;\n refuseTie(selection);\n requireOp(selection, \"set\");\n const result = await broker.request(\n selection.target,\n \"set\",\n { view, ...(key === undefined ? {} : { key }), value },\n ctx.origin,\n ctx.signal,\n );\n const written: SetToolResult = {\n client: directory.summary(selection.target.client),\n ...result,\n };\n return written;\n },\n });\n\n const highlight = defineTool({\n name: toolName(\"highlight\"),\n description: highlightDescription(),\n input: uiOpInputs.highlight.extend({ clientId: clientIdInput }),\n readOnly: uiOpReadOnly.highlight,\n async run({ view, key, field, clientId }, ctx) {\n const selection = select(ctx, clientId);\n if (!selection) return UNREACHABLE;\n refuseTie(selection);\n requireOp(selection, \"highlight\");\n const result = await broker.request(\n selection.target,\n \"highlight\",\n {\n view,\n ...(key === undefined ? {} : { key }),\n ...(field === undefined ? {} : { field }),\n },\n ctx.origin,\n ctx.signal,\n );\n const pointed: HighlightToolResult = {\n client: directory.summary(selection.target.client),\n ...result,\n };\n return pointed;\n },\n });\n\n const byOp: { readonly [O in UiOp]: AgentTool } = {\n screen,\n navigate,\n set,\n highlight,\n };\n return UI_OPS.map((op) => byOp[op]);\n };\n\n let cachedFor: UiManifest | undefined;\n let cached = build(undefined);\n return (manifest) => {\n if (manifest !== cachedFor) {\n cached = build(manifest);\n cachedFor = manifest;\n }\n return cached;\n };\n}\n\nexport function uiInstructions(): string {\n return [\n \"This app's screen is visible to you through the ui_ tools, next to the app's actions.\",\n 'Call ui_screen to see what the user is looking at before acting on words like \"this\", \"that\" or \"here\".',\n \"Resolve them from attention in this order: focus, selection, lastInteracted, focal.\",\n \"A keyed view's key is the entity id that the app's actions take, so pass it straight to the action.\",\n \"Do the work through actions; the screen updates by itself.\",\n \"To show the user a page, call ui_navigate with a path from its list.\",\n \"You fill forms and the user submits them: use ui_set to fill a form, and call the action that submits it only when the user explicitly asks you to.\",\n \"Some actions ask the user to approve them in the app before they run: call them as usual and wait. If one fails with declined, do not retry unless the user asks again; if it fails with confirmation_unavailable, ask the user to do it in the app themselves.\",\n \"Use ui_highlight to point at what you mean, or at candidates when you need the user to pick one.\",\n \"If a ui_ tool returns reachable: false, the app is not open: tell the user, and for navigation hand them the href.\",\n ].join(\"\\n\");\n}\n"]}
|
package/dist/view.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"view.js","sourceRoot":"","sources":["../src/view.ts"],"names":[],"mappings":"AAuBA,MAAM,KAAK,GAAkB,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;AAuB5D,MAAM,UAAU,eAAe,CAK7B,MAAmC;IACnC,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,KAAK,EAAE,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK,CAAM;QACnC,QAAQ,EAAE,CAAC,MAAM,CAAC,QAAQ,IAAI,KAAK,CAAM;QACzC,CAAC,KAAK,CAAC,EAAE,IAAI;KACd,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,IAAI,KAAK,CAAC;AACvE,CAAC"}
|
|
1
|
+
{"version":3,"file":"view.js","sourceRoot":"","sources":["../src/view.ts"],"names":[],"mappings":"AAuBA,MAAM,KAAK,GAAkB,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;AAuB5D,MAAM,UAAU,eAAe,CAK7B,MAAmC;IACnC,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,KAAK,EAAE,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK,CAAM;QACnC,QAAQ,EAAE,CAAC,MAAM,CAAC,QAAQ,IAAI,KAAK,CAAM;QACzC,CAAC,KAAK,CAAC,EAAE,IAAI;KACd,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,IAAI,KAAK,CAAC;AACvE,CAAC","sourcesContent":["import type { StandardSchemaV1 } from \"@standard-schema/spec\";\n\nexport type ViewSchema = StandardSchemaV1<unknown, Readonly<Record<string, unknown>>>;\n\nexport type ViewField<S extends ViewSchema> = keyof StandardSchemaV1.InferOutput<S> &\n string;\n\nexport type ViewWritable<S extends ViewSchema> = boolean | readonly ViewField<S>[];\n\nexport interface AgentViewConfig<\n N extends string,\n S extends ViewSchema,\n K extends boolean,\n W extends ViewWritable<S>,\n> {\n readonly name: N;\n readonly description: string;\n readonly schema: S;\n readonly keyed?: K | undefined;\n /** `true` opens every top-level field to `ui_set`, a list opens only those. Default `false`. */\n readonly writable?: W | undefined;\n}\n\nconst kView: unique symbol = Symbol.for(\"parlor.agentView\");\n\nexport interface AgentViewDefinition<\n N extends string = string,\n S extends ViewSchema = ViewSchema,\n K extends boolean = boolean,\n W extends boolean | readonly string[] = boolean | readonly string[],\n> {\n readonly [kView]: true;\n readonly name: N;\n readonly description: string;\n readonly schema: S;\n readonly keyed: K;\n readonly writable: W;\n}\n\nexport type AnyAgentView = AgentViewDefinition<\n string,\n ViewSchema,\n boolean,\n boolean | readonly string[]\n>;\n\nexport function defineAgentView<\n const N extends string,\n S extends ViewSchema,\n const K extends boolean = false,\n const W extends ViewWritable<S> = false,\n>(config: AgentViewConfig<N, S, K, W>): AgentViewDefinition<N, S, K, W> {\n return {\n name: config.name,\n description: config.description,\n schema: config.schema,\n keyed: (config.keyed ?? false) as K,\n writable: (config.writable ?? false) as W,\n [kView]: true,\n };\n}\n\nexport function isAgentView(value: unknown): value is AnyAgentView {\n return typeof value === \"object\" && value !== null && kView in value;\n}\n\nexport type ViewValue<D extends AnyAgentView> = StandardSchemaV1.InferOutput<D[\"schema\"]>;\n\ntype FieldsOf<W, D extends AnyAgentView> = W extends true\n ? ViewField<D[\"schema\"]>\n : W extends readonly (infer F)[]\n ? F\n : never;\n\nexport type WritableField<D extends AnyAgentView> = FieldsOf<D[\"writable\"], D>;\n\nexport type IsWritable<D extends AnyAgentView> = [WritableField<D>] extends [never]\n ? false\n : true;\n\ntype KeyBinding<D extends AnyAgentView> = D[\"keyed\"] extends true\n ? { readonly key: string }\n : { readonly key?: undefined };\n\n/**\n * Applies an agent's write. `next` is the whole value, already validated by the view's\n * schema; `changed` lists the fields the agent sent. Contract: once `set` returns (or its\n * promise resolves), `get()` reflects the write. `useAgentView` keeps it for React state by\n * running `set` inside `flushSync`.\n */\nexport type ViewSetter<D extends AnyAgentView> = (\n next: ViewValue<D>,\n changed: readonly WritableField<D>[],\n) => void | Promise<void>;\n\ntype SetBinding<D extends AnyAgentView> =\n IsWritable<D> extends true\n ? { readonly set: ViewSetter<D> }\n : { readonly set?: undefined };\n\nexport type AgentViewBinding<D extends AnyAgentView> = {\n readonly get: () => ViewValue<D>;\n} & KeyBinding<D> &\n SetBinding<D>;\n\nexport interface ViewRef {\n readonly view: string;\n readonly key?: string | undefined;\n}\n"]}
|
package/dist/vite/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { agentManifest, type AgentManifestOptions, DEFAULT_ROUTE_TREE, manifestFromModule, } from "./plugin.js";
|
|
1
|
+
export { agentManifest, type AgentManifestApi, type AgentManifestOptions, DEFAULT_ROUTE_TREE, manifestFromModule, } from "./plugin.js";
|
|
2
2
|
export { buildUiManifest, describeView } from "./manifest.js";
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/vite/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/vite/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,KAAK,oBAAoB,EACzB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/vite/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC"}
|
package/dist/vite/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/vite/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/vite/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAGb,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC","sourcesContent":["export {\n agentManifest,\n type AgentManifestApi,\n type AgentManifestOptions,\n DEFAULT_ROUTE_TREE,\n manifestFromModule,\n} from \"./plugin.js\";\nexport { buildUiManifest, describeView } from \"./manifest.js\";\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/vite/manifest.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/vite/manifest.ts"],"names":[],"mappings":"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","sourcesContent":["import type { StandardJSONSchemaV1 } from \"@standard-schema/spec\";\nimport { $ZodType, toJSONSchema } from \"zod/v4/core\";\n\nimport type {\n JsonSchema,\n ManifestBuild,\n RouteEntry,\n UiAppInfo,\n ViewEntry,\n} from \"../manifest.js\";\nimport { type AnyAgentView, isAgentView } from \"../view.js\";\n\ninterface RouteLike {\n readonly isRoot?: boolean | undefined;\n readonly options?:\n | {\n readonly path?: string | undefined;\n readonly staticData?:\n | { readonly description?: unknown; readonly views?: unknown }\n | undefined;\n readonly validateSearch?: unknown;\n }\n | undefined;\n readonly children?: unknown;\n}\n\nfunction childrenOf(route: RouteLike): RouteLike[] {\n const { children } = route;\n if (!children || typeof children !== \"object\") return [];\n return (Array.isArray(children) ? children : Object.values(children)) as RouteLike[];\n}\n\nfunction joinPath(parent: string, path: string | undefined): string {\n const segments = [...parent.split(\"/\"), ...(path ?? \"\").split(\"/\")].filter(Boolean);\n return `/${segments.join(\"/\")}`;\n}\n\nfunction paramsOf(path: string): string[] {\n return path\n .split(\"/\")\n .filter((segment) => segment.startsWith(\"$\"))\n .map((segment) => (segment === \"$\" ? \"_splat\" : segment.slice(1)));\n}\n\nfunction jsonSchemaOf(schema: unknown, io: \"input\" | \"output\"): JsonSchema | undefined {\n if (schema instanceof $ZodType) return toJSONSchema(schema, { io }) as JsonSchema;\n const converter = (schema as Partial<StandardJSONSchemaV1> | undefined)?.[\"~standard\"]\n ?.jsonSchema;\n if (!converter) return undefined;\n try {\n return converter[io]({ target: \"draft-2020-12\" });\n } catch {\n return undefined;\n }\n}\n\nfunction writableFields(view: AnyAgentView, schema: JsonSchema | undefined): string[] {\n if (view.writable === true) {\n const properties = schema?.properties;\n return typeof properties === \"object\" && properties !== null\n ? Object.keys(properties)\n : [];\n }\n return view.writable === false ? [] : [...view.writable];\n}\n\nexport function describeView(view: AnyAgentView): ViewEntry {\n const schema = jsonSchemaOf(view.schema, \"output\");\n return {\n name: view.name,\n description: view.description,\n keyed: view.keyed,\n ...(schema ? { schema } : {}),\n writable: writableFields(view, schema),\n };\n}\n\nexport function buildUiManifest(app: UiAppInfo, routeTree: unknown): ManifestBuild {\n const warnings: string[] = [];\n const routes: RouteEntry[] = [];\n const views = new Map<string, AnyAgentView>();\n\n const viewsOf = (route: RouteLike): AnyAgentView[] => {\n const listed = route.options?.staticData?.views;\n if (!Array.isArray(listed)) return [];\n const found = listed.filter(isAgentView);\n for (const view of found) {\n const known = views.get(view.name);\n if (known && known !== view) {\n throw new Error(`Two different agent views are named \"${view.name}\".`);\n }\n views.set(view.name, view);\n }\n return found;\n };\n\n const walk = (route: RouteLike, parentPath: string, inherited: readonly string[]) => {\n const names = [...new Set([...inherited, ...viewsOf(route).map((v) => v.name)])];\n const path = route.isRoot ? \"/\" : joinPath(parentPath, route.options?.path);\n const children = childrenOf(route);\n if (children.length > 0 || route.isRoot) {\n for (const child of children) walk(child, path, names);\n return;\n }\n if (routes.some((entry) => entry.path === path)) return;\n const description = route.options?.staticData?.description;\n if (typeof description !== \"string\" || description === \"\") {\n warnings.push(`Route \"${path}\" has no staticData.description.`);\n }\n const search = jsonSchemaOf(route.options?.validateSearch, \"input\");\n routes.push({\n path,\n ...(typeof description === \"string\" && description !== \"\" ? { description } : {}),\n params: paramsOf(path),\n ...(search ? { search } : {}),\n views: names,\n });\n };\n\n if (routeTree && typeof routeTree === \"object\") walk(routeTree as RouteLike, \"/\", []);\n\n const entries = [...views.values()].map(describeView);\n for (const entry of entries) {\n if (entry.schema) continue;\n warnings.push(\n `View \"${entry.name}\" has a schema that cannot be converted to JSON Schema, so the manifest lists it without one.`,\n );\n }\n\n return {\n manifest: { protocol: 1, app, routes, views: entries },\n warnings,\n };\n}\n"]}
|
package/dist/vite/plugin.d.ts
CHANGED
|
@@ -1,10 +1,16 @@
|
|
|
1
1
|
import { type Plugin } from "vite";
|
|
2
|
-
import { type ManifestBuild, type UiAppInfo } from "../manifest.js";
|
|
2
|
+
import { type ManifestBuild, type UiAppInfo, type UiManifest } from "../manifest.js";
|
|
3
3
|
export declare const DEFAULT_ROUTE_TREE = "src/routeTree.gen.ts";
|
|
4
4
|
export interface AgentManifestOptions {
|
|
5
5
|
readonly app: UiAppInfo;
|
|
6
6
|
readonly routeTree?: string | undefined;
|
|
7
|
+
/** Where the manifest is written, absolute or relative to the root. Defaults to `.parlor`. */
|
|
8
|
+
readonly generatedDir?: string | undefined;
|
|
7
9
|
}
|
|
8
10
|
export declare function manifestFromModule(app: UiAppInfo, module: unknown): ManifestBuild;
|
|
9
|
-
export
|
|
11
|
+
export interface AgentManifestApi {
|
|
12
|
+
/** The manifest last generated, until the route tree fails to load. */
|
|
13
|
+
manifest(): UiManifest | undefined;
|
|
14
|
+
}
|
|
15
|
+
export declare function agentManifest(options: AgentManifestOptions): Plugin<AgentManifestApi>;
|
|
10
16
|
//# sourceMappingURL=plugin.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/vite/plugin.ts"],"names":[],"mappings":"AAIA,OAAO,
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/vite/plugin.ts"],"names":[],"mappings":"AAIA,OAAO,EAKL,KAAK,MAAM,EAIZ,MAAM,MAAM,CAAC;AAEd,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,SAAS,EAEd,KAAK,UAAU,EAChB,MAAM,gBAAgB,CAAC;AAGxB,eAAO,MAAM,kBAAkB,yBAAyB,CAAC;AAIzD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,8FAA8F;IAC9F,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5C;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,GAAG,aAAa,CAEjF;AAiFD,MAAM,WAAW,gBAAgB;IAC/B,uEAAuE;IACvE,QAAQ,IAAI,UAAU,GAAG,SAAS,CAAC;CACpC;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,MAAM,CAAC,gBAAgB,CAAC,CA8HrF"}
|