@noodleseed/one 0.129.2 → 0.131.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/bin.js +0 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +3 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/intents-ops.d.ts +3 -0
- package/dist/commands/intents-ops.d.ts.map +1 -0
- package/dist/commands/intents-ops.js +147 -0
- package/dist/commands/intents-ops.js.map +1 -0
- package/node_modules/@noodle-borg/agent-kit/dist/curated/command-groups.d.ts.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/curated/command-groups.js +4 -0
- package/node_modules/@noodle-borg/agent-kit/dist/curated/command-groups.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/curated/error-fixes.js +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/curated/error-fixes.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/generated/example-files.js +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/generated/example-files.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.d.ts.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.js +1 -0
- package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/skill-content.d.ts.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/skill-content.js +1 -0
- package/node_modules/@noodle-borg/agent-kit/dist/skill-content.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/skill-embedded-assistant-ref.js +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/skill-embedded-assistant-ref.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/package.json +1 -1
- package/node_modules/@noodle-borg/assistant-gateway/dist/assistant-store.d.ts +21 -0
- package/node_modules/@noodle-borg/assistant-gateway/dist/assistant-store.d.ts.map +1 -1
- package/node_modules/@noodle-borg/assistant-gateway/dist/assistant-store.js +10 -0
- package/node_modules/@noodle-borg/assistant-gateway/dist/assistant-store.js.map +1 -1
- package/node_modules/@noodle-borg/assistant-gateway/dist/elevation.d.ts +7 -1
- package/node_modules/@noodle-borg/assistant-gateway/dist/elevation.d.ts.map +1 -1
- package/node_modules/@noodle-borg/assistant-gateway/dist/elevation.js +5 -0
- package/node_modules/@noodle-borg/assistant-gateway/dist/elevation.js.map +1 -1
- package/node_modules/@noodle-borg/assistant-gateway/dist/embed-store.d.ts +5 -1
- package/node_modules/@noodle-borg/assistant-gateway/dist/embed-store.d.ts.map +1 -1
- package/node_modules/@noodle-borg/assistant-gateway/dist/embed-store.js.map +1 -1
- package/node_modules/@noodle-borg/assistant-gateway/dist/index.d.ts +1 -0
- package/node_modules/@noodle-borg/assistant-gateway/dist/index.d.ts.map +1 -1
- package/node_modules/@noodle-borg/assistant-gateway/dist/index.js +1 -0
- package/node_modules/@noodle-borg/assistant-gateway/dist/index.js.map +1 -1
- package/node_modules/@noodle-borg/assistant-gateway/dist/postgres-assistant.d.ts +8 -1
- package/node_modules/@noodle-borg/assistant-gateway/dist/postgres-assistant.d.ts.map +1 -1
- package/node_modules/@noodle-borg/assistant-gateway/dist/postgres-assistant.js +24 -1
- package/node_modules/@noodle-borg/assistant-gateway/dist/postgres-assistant.js.map +1 -1
- package/node_modules/@noodle-borg/assistant-gateway/dist/session-resume.d.ts +22 -0
- package/node_modules/@noodle-borg/assistant-gateway/dist/session-resume.d.ts.map +1 -0
- package/node_modules/@noodle-borg/assistant-gateway/dist/session-resume.js +28 -0
- package/node_modules/@noodle-borg/assistant-gateway/dist/session-resume.js.map +1 -0
- package/node_modules/@noodle-borg/assistant-gateway/package.json +1 -1
- package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-hosted-observability.d.ts.map +1 -1
- package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-hosted-observability.js +66 -1
- package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-hosted-observability.js.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/compile.d.ts.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/compile.js +9 -0
- package/node_modules/@noodle-borg/compiler/dist/compile.js.map +1 -1
- package/node_modules/@noodle-borg/knowledge/dist/fusion.d.ts +2 -1
- package/node_modules/@noodle-borg/knowledge/dist/fusion.d.ts.map +1 -1
- package/node_modules/@noodle-borg/knowledge/dist/fusion.js +3 -2
- package/node_modules/@noodle-borg/knowledge/dist/fusion.js.map +1 -1
- package/node_modules/@noodle-borg/knowledge-operations/dist/crawl-lifecycle.d.ts.map +1 -1
- package/node_modules/@noodle-borg/knowledge-operations/dist/crawl-lifecycle.js +7 -2
- package/node_modules/@noodle-borg/knowledge-operations/dist/crawl-lifecycle.js.map +1 -1
- package/node_modules/@noodle-borg/module/dist/index.d.ts +1 -0
- package/node_modules/@noodle-borg/module/dist/index.d.ts.map +1 -1
- package/node_modules/@noodle-borg/module/dist/index.js +1 -0
- package/node_modules/@noodle-borg/module/dist/index.js.map +1 -1
- package/node_modules/@noodle-borg/module/dist/intent.d.ts +54 -0
- package/node_modules/@noodle-borg/module/dist/intent.d.ts.map +1 -0
- package/node_modules/@noodle-borg/module/dist/intent.js +11 -0
- package/node_modules/@noodle-borg/module/dist/intent.js.map +1 -0
- package/node_modules/@noodle-borg/observability/dist/index.d.ts +6 -0
- package/node_modules/@noodle-borg/observability/dist/index.d.ts.map +1 -0
- package/node_modules/@noodle-borg/observability/dist/index.js +6 -0
- package/node_modules/@noodle-borg/observability/dist/index.js.map +1 -0
- package/node_modules/@noodle-borg/observability/dist/intent-capture.d.ts +65 -0
- package/node_modules/@noodle-borg/observability/dist/intent-capture.d.ts.map +1 -0
- package/node_modules/@noodle-borg/observability/dist/intent-capture.js +327 -0
- package/node_modules/@noodle-borg/observability/dist/intent-capture.js.map +1 -0
- package/node_modules/@noodle-borg/observability/dist/request-event-buffer.d.ts.map +1 -0
- package/node_modules/@noodle-borg/observability/dist/request-event-buffer.js.map +1 -0
- package/node_modules/@noodle-borg/observability/dist/request-events-postgres.d.ts.map +1 -0
- package/node_modules/@noodle-borg/observability/dist/request-events-postgres.js.map +1 -0
- package/node_modules/@noodle-borg/observability/dist/request-events.d.ts.map +1 -0
- package/node_modules/@noodle-borg/observability/dist/request-events.js.map +1 -0
- package/node_modules/@noodle-borg/observability/dist/runtime.d.ts +11 -0
- package/node_modules/@noodle-borg/observability/dist/runtime.d.ts.map +1 -0
- package/node_modules/@noodle-borg/observability/dist/runtime.js +29 -0
- package/node_modules/@noodle-borg/observability/dist/runtime.js.map +1 -0
- package/node_modules/@noodle-borg/observability/package.json +32 -0
- package/node_modules/@noodle-borg/protocol/dist/handlers/tools.d.ts.map +1 -1
- package/node_modules/@noodle-borg/protocol/dist/handlers/tools.js +22 -3
- package/node_modules/@noodle-borg/protocol/dist/handlers/tools.js.map +1 -1
- package/node_modules/@noodle-borg/protocol/dist/index.d.ts +1 -0
- package/node_modules/@noodle-borg/protocol/dist/index.d.ts.map +1 -1
- package/node_modules/@noodle-borg/protocol/dist/index.js +1 -0
- package/node_modules/@noodle-borg/protocol/dist/index.js.map +1 -1
- package/node_modules/@noodle-borg/protocol/dist/intent-capture.d.ts +47 -0
- package/node_modules/@noodle-borg/protocol/dist/intent-capture.d.ts.map +1 -0
- package/node_modules/@noodle-borg/protocol/dist/intent-capture.js +101 -0
- package/node_modules/@noodle-borg/protocol/dist/intent-capture.js.map +1 -0
- package/node_modules/@noodle-borg/protocol/dist/mapping.d.ts +5 -2
- package/node_modules/@noodle-borg/protocol/dist/mapping.d.ts.map +1 -1
- package/node_modules/@noodle-borg/protocol/dist/mapping.js +9 -7
- package/node_modules/@noodle-borg/protocol/dist/mapping.js.map +1 -1
- package/node_modules/@noodle-borg/protocol/dist/observation.d.ts +3 -0
- package/node_modules/@noodle-borg/protocol/dist/observation.d.ts.map +1 -1
- package/node_modules/@noodle-borg/protocol/dist/observation.js.map +1 -1
- package/node_modules/@noodle-borg/protocol/dist/sdk-server.d.ts +4 -0
- package/node_modules/@noodle-borg/protocol/dist/sdk-server.d.ts.map +1 -1
- package/node_modules/@noodle-borg/protocol/dist/sdk-server.js.map +1 -1
- package/node_modules/@noodle-borg/protocol/dist/v2/server.d.ts.map +1 -1
- package/node_modules/@noodle-borg/protocol/dist/v2/server.js +23 -4
- package/node_modules/@noodle-borg/protocol/dist/v2/server.js.map +1 -1
- package/node_modules/@noodle-borg/protocol/package.json +1 -0
- package/node_modules/@noodle-borg/service/dist/archive-preflight.d.ts +5 -0
- package/node_modules/@noodle-borg/service/dist/archive-preflight.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/archive-preflight.js +19 -0
- package/node_modules/@noodle-borg/service/dist/archive-preflight.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/index.d.ts +1 -3
- package/node_modules/@noodle-borg/service/dist/index.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/index.js +1 -3
- package/node_modules/@noodle-borg/service/dist/index.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/main.js +2 -0
- package/node_modules/@noodle-borg/service/dist/main.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/observability-runtime.d.ts +25 -0
- package/node_modules/@noodle-borg/service/dist/observability-runtime.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/observability-runtime.js +61 -0
- package/node_modules/@noodle-borg/service/dist/observability-runtime.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/options.d.ts +10 -1
- package/node_modules/@noodle-borg/service/dist/options.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/assistant-elevation.d.ts +2 -0
- package/node_modules/@noodle-borg/service/dist/routes/assistant-elevation.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/assistant-elevation.js +3 -0
- package/node_modules/@noodle-borg/service/dist/routes/assistant-elevation.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/assistant-embeds.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/assistant-embeds.js +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/assistant-embeds.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/assistant.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/assistant.js +70 -30
- package/node_modules/@noodle-borg/service/dist/routes/assistant.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/intent-capture-dispatch.d.ts +11 -0
- package/node_modules/@noodle-borg/service/dist/routes/intent-capture-dispatch.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/routes/intent-capture-dispatch.js +22 -0
- package/node_modules/@noodle-borg/service/dist/routes/intent-capture-dispatch.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/routes/intent-capture.d.ts +20 -0
- package/node_modules/@noodle-borg/service/dist/routes/intent-capture.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/routes/intent-capture.js +158 -0
- package/node_modules/@noodle-borg/service/dist/routes/intent-capture.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/routes/paths.d.ts +3 -1
- package/node_modules/@noodle-borg/service/dist/routes/paths.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/paths.js +6 -0
- package/node_modules/@noodle-borg/service/dist/routes/paths.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/serve.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/serve.js +16 -16
- package/node_modules/@noodle-borg/service/dist/serve.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/service-resource-cleanup.d.ts +2 -0
- package/node_modules/@noodle-borg/service/dist/service-resource-cleanup.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/service-resource-cleanup.js +3 -0
- package/node_modules/@noodle-borg/service/dist/service-resource-cleanup.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/service.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/service.js +25 -32
- package/node_modules/@noodle-borg/service/dist/service.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres-schema.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres-schema.js +1 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres-schema.js.map +1 -1
- package/node_modules/@noodle-borg/service/package.json +2 -1
- package/node_modules/@noodle-borg/transport-http/dist/handler.d.ts +6 -1
- package/node_modules/@noodle-borg/transport-http/dist/handler.d.ts.map +1 -1
- package/node_modules/@noodle-borg/transport-http/dist/handler.js +4 -0
- package/node_modules/@noodle-borg/transport-http/dist/handler.js.map +1 -1
- package/node_modules/@noodle-borg/transport-http/dist/request-capture.d.ts +15 -1
- package/node_modules/@noodle-borg/transport-http/dist/request-capture.d.ts.map +1 -1
- package/node_modules/@noodle-borg/transport-http/dist/request-capture.js +51 -3
- package/node_modules/@noodle-borg/transport-http/dist/request-capture.js.map +1 -1
- package/node_modules/@noodle-borg/transport-http/dist/serve-request.d.ts +3 -1
- package/node_modules/@noodle-borg/transport-http/dist/serve-request.d.ts.map +1 -1
- package/node_modules/@noodle-borg/transport-http/dist/serve-request.js +21 -5
- package/node_modules/@noodle-borg/transport-http/dist/serve-request.js.map +1 -1
- package/node_modules/@noodle-borg/wire-contracts/dist/assistant.d.ts +40 -2
- package/node_modules/@noodle-borg/wire-contracts/dist/assistant.d.ts.map +1 -1
- package/node_modules/@noodle-borg/wire-contracts/dist/assistant.js +26 -2
- package/node_modules/@noodle-borg/wire-contracts/dist/assistant.js.map +1 -1
- package/node_modules/@noodleseed/assistant/README.md +23 -1
- package/node_modules/@noodleseed/assistant/dist/{chunk-DLUINP4W.js → chunk-LEKEIHJV.js} +61 -33
- package/node_modules/@noodleseed/assistant/dist/{chunk-DLUINP4W.js.map → chunk-LEKEIHJV.js.map} +1 -1
- package/node_modules/@noodleseed/assistant/dist/{chunk-52XT7BLR.js → chunk-ZPZHPXIQ.js} +129 -82
- package/node_modules/@noodleseed/assistant/dist/chunk-ZPZHPXIQ.js.map +1 -0
- package/node_modules/@noodleseed/assistant/dist/{client-7o7n2nqw.d.cts → client-BZ7xPwfW.d.cts} +14 -5
- package/node_modules/@noodleseed/assistant/dist/{client-CysBQBdd.d.ts → client-BkJlpN5N.d.ts} +14 -5
- package/node_modules/@noodleseed/assistant/dist/client.cjs +127 -80
- package/node_modules/@noodleseed/assistant/dist/client.cjs.map +1 -1
- package/node_modules/@noodleseed/assistant/dist/client.d.cts +1 -1
- package/node_modules/@noodleseed/assistant/dist/client.d.ts +1 -1
- package/node_modules/@noodleseed/assistant/dist/client.js +1 -1
- package/node_modules/@noodleseed/assistant/dist/embed.global.js +65 -65
- package/node_modules/@noodleseed/assistant/dist/index.cjs +186 -111
- package/node_modules/@noodleseed/assistant/dist/index.cjs.map +1 -1
- package/node_modules/@noodleseed/assistant/dist/index.d.cts +2 -2
- package/node_modules/@noodleseed/assistant/dist/index.d.ts +2 -2
- package/node_modules/@noodleseed/assistant/dist/index.js +2 -2
- package/node_modules/@noodleseed/assistant/dist/react/client.cjs +127 -80
- package/node_modules/@noodleseed/assistant/dist/react/client.cjs.map +1 -1
- package/node_modules/@noodleseed/assistant/dist/react/client.d.cts +1 -1
- package/node_modules/@noodleseed/assistant/dist/react/client.d.ts +1 -1
- package/node_modules/@noodleseed/assistant/dist/react/client.js +1 -1
- package/node_modules/@noodleseed/assistant/dist/react.cjs +187 -111
- package/node_modules/@noodleseed/assistant/dist/react.cjs.map +1 -1
- package/node_modules/@noodleseed/assistant/dist/react.d.cts +8 -1
- package/node_modules/@noodleseed/assistant/dist/react.d.ts +8 -1
- package/node_modules/@noodleseed/assistant/dist/react.js +3 -2
- package/node_modules/@noodleseed/assistant/dist/react.js.map +1 -1
- package/node_modules/@noodleseed/assistant/dist/server.cjs +1 -0
- package/node_modules/@noodleseed/assistant/dist/server.cjs.map +1 -1
- package/node_modules/@noodleseed/assistant/dist/server.d.cts +15 -0
- package/node_modules/@noodleseed/assistant/dist/server.d.ts +15 -0
- package/node_modules/@noodleseed/assistant/dist/server.js +1 -0
- package/node_modules/@noodleseed/assistant/dist/server.js.map +1 -1
- package/node_modules/@noodleseed/assistant/package.json +1 -1
- package/package.json +3 -2
- package/node_modules/@noodle-borg/service/dist/store/request-event-buffer.d.ts.map +0 -1
- package/node_modules/@noodle-borg/service/dist/store/request-event-buffer.js.map +0 -1
- package/node_modules/@noodle-borg/service/dist/store/request-events-postgres.d.ts.map +0 -1
- package/node_modules/@noodle-borg/service/dist/store/request-events-postgres.js.map +0 -1
- package/node_modules/@noodle-borg/service/dist/store/request-events.d.ts.map +0 -1
- package/node_modules/@noodle-borg/service/dist/store/request-events.js.map +0 -1
- package/node_modules/@noodleseed/assistant/dist/chunk-52XT7BLR.js.map +0 -1
- /package/node_modules/@noodle-borg/{service/dist/store → observability/dist}/request-event-buffer.d.ts +0 -0
- /package/node_modules/@noodle-borg/{service/dist/store → observability/dist}/request-event-buffer.js +0 -0
- /package/node_modules/@noodle-borg/{service/dist/store → observability/dist}/request-events-postgres.d.ts +0 -0
- /package/node_modules/@noodle-borg/{service/dist/store → observability/dist}/request-events-postgres.js +0 -0
- /package/node_modules/@noodle-borg/{service/dist/store → observability/dist}/request-events.d.ts +0 -0
- /package/node_modules/@noodle-borg/{service/dist/store → observability/dist}/request-events.js +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as AssistantPageContext, a as AssistantContext, C as CreateAssistantClientOptions, b as AssistantChatState, c as AssistantClient } from '../client-
|
|
1
|
+
import { A as AssistantPageContext, a as AssistantContext, C as CreateAssistantClientOptions, b as AssistantChatState, c as AssistantClient } from '../client-BZ7xPwfW.cjs';
|
|
2
2
|
import '../appearance-Cc-eqSbp.cjs';
|
|
3
3
|
import 'ai';
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as AssistantPageContext, a as AssistantContext, C as CreateAssistantClientOptions, b as AssistantChatState, c as AssistantClient } from '../client-
|
|
1
|
+
import { A as AssistantPageContext, a as AssistantContext, C as CreateAssistantClientOptions, b as AssistantChatState, c as AssistantClient } from '../client-BkJlpN5N.js';
|
|
2
2
|
import '../appearance-Cc-eqSbp.js';
|
|
3
3
|
import 'ai';
|
|
4
4
|
|
|
@@ -27033,6 +27033,12 @@ var AssistantChatStateStore = class {
|
|
|
27033
27033
|
case "interaction_started":
|
|
27034
27034
|
this.#beginInteraction(event.data.id);
|
|
27035
27035
|
return;
|
|
27036
|
+
case "resume_started":
|
|
27037
|
+
this.#status = "submitted";
|
|
27038
|
+
this.#error = void 0;
|
|
27039
|
+
this.#startOperation();
|
|
27040
|
+
this.#notify();
|
|
27041
|
+
return;
|
|
27036
27042
|
case "content":
|
|
27037
27043
|
this.#writeText(event.data.delta);
|
|
27038
27044
|
return;
|
|
@@ -27288,6 +27294,78 @@ function isRecord(value) {
|
|
|
27288
27294
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
27289
27295
|
}
|
|
27290
27296
|
|
|
27297
|
+
// src/client-errors.ts
|
|
27298
|
+
async function refusalCode(response) {
|
|
27299
|
+
try {
|
|
27300
|
+
const body = await response.clone().json();
|
|
27301
|
+
const code = body.code;
|
|
27302
|
+
return typeof code === "string" ? code : void 0;
|
|
27303
|
+
} catch {
|
|
27304
|
+
return void 0;
|
|
27305
|
+
}
|
|
27306
|
+
}
|
|
27307
|
+
var UNRETRYABLE_SERVICE_CODES = /* @__PURE__ */ new Set([
|
|
27308
|
+
"daily_turn_budget_exhausted",
|
|
27309
|
+
"daily_session_budget_exhausted"
|
|
27310
|
+
]);
|
|
27311
|
+
var AssistantClientError = class extends Error {
|
|
27312
|
+
detail;
|
|
27313
|
+
constructor(detail, message, options) {
|
|
27314
|
+
super(message, options);
|
|
27315
|
+
this.name = "AssistantClientError";
|
|
27316
|
+
this.detail = detail;
|
|
27317
|
+
}
|
|
27318
|
+
};
|
|
27319
|
+
function parseSession(value) {
|
|
27320
|
+
if (!isRecord2(value) || !isRecord2(value.endpoints)) {
|
|
27321
|
+
throw clientError("session_failed", "Assistant session response is invalid", true);
|
|
27322
|
+
}
|
|
27323
|
+
const interactions = value.endpoints.interactions;
|
|
27324
|
+
const apps = value.endpoints.apps;
|
|
27325
|
+
const sandbox = value.endpoints.sandbox;
|
|
27326
|
+
if (typeof value.token !== "string" || typeof value.expiresAt !== "string" || typeof value.endpoints.turns !== "string" || typeof value.endpoints.toolConfirmations !== "string" || interactions !== void 0 && typeof interactions !== "string" || apps !== void 0 && typeof apps !== "string" || sandbox !== void 0 && typeof sandbox !== "string") {
|
|
27327
|
+
throw clientError("session_failed", "Assistant session response is invalid", true);
|
|
27328
|
+
}
|
|
27329
|
+
return {
|
|
27330
|
+
token: value.token,
|
|
27331
|
+
expiresAt: value.expiresAt,
|
|
27332
|
+
endpoints: {
|
|
27333
|
+
turns: value.endpoints.turns,
|
|
27334
|
+
toolConfirmations: value.endpoints.toolConfirmations,
|
|
27335
|
+
...typeof interactions === "string" ? { interactions } : {},
|
|
27336
|
+
...typeof apps === "string" ? { apps } : {},
|
|
27337
|
+
...typeof sandbox === "string" ? { sandbox } : {}
|
|
27338
|
+
},
|
|
27339
|
+
...isRecord2(value.configuration) ? { configuration: value.configuration } : {},
|
|
27340
|
+
...isRecord2(value.resume) && typeof value.resume.tool === "string" ? { resume: { tool: value.resume.tool } } : {}
|
|
27341
|
+
};
|
|
27342
|
+
}
|
|
27343
|
+
function isRecord2(value) {
|
|
27344
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
27345
|
+
}
|
|
27346
|
+
async function readStableErrorCode(response) {
|
|
27347
|
+
let value;
|
|
27348
|
+
try {
|
|
27349
|
+
value = await response.json();
|
|
27350
|
+
} catch {
|
|
27351
|
+
return void 0;
|
|
27352
|
+
}
|
|
27353
|
+
if (!isRecord2(value) || typeof value.code !== "string") return void 0;
|
|
27354
|
+
return /^[A-Za-z0-9_.-]{1,64}$/.test(value.code) ? value.code : void 0;
|
|
27355
|
+
}
|
|
27356
|
+
function clientError(code, message, retryable, status, options, serviceCode) {
|
|
27357
|
+
return new AssistantClientError(
|
|
27358
|
+
{
|
|
27359
|
+
code,
|
|
27360
|
+
...status === void 0 ? {} : { status },
|
|
27361
|
+
retryable,
|
|
27362
|
+
...serviceCode === void 0 ? {} : { serviceCode }
|
|
27363
|
+
},
|
|
27364
|
+
message,
|
|
27365
|
+
options
|
|
27366
|
+
);
|
|
27367
|
+
}
|
|
27368
|
+
|
|
27291
27369
|
// src/events.ts
|
|
27292
27370
|
function toAssistantClientEvent(event) {
|
|
27293
27371
|
const value = event.data;
|
|
@@ -27303,12 +27381,12 @@ function toAssistantClientEvent(event) {
|
|
|
27303
27381
|
}
|
|
27304
27382
|
break;
|
|
27305
27383
|
case "tool_proposed":
|
|
27306
|
-
if (hasString(value, "id") && hasString(value, "tool") && hasOptionalString(value.title) && hasOptionalString(value.description) && hasOptionalJson(value.arguments) && (value.reviewSchema === void 0 ||
|
|
27384
|
+
if (hasString(value, "id") && hasString(value, "tool") && hasOptionalString(value.title) && hasOptionalString(value.description) && hasOptionalJson(value.arguments) && (value.reviewSchema === void 0 || isRecord3(value.reviewSchema)) && hasOptionalString(value.expiresAt) && (value.requiresConfirmation === void 0 || value.requiresConfirmation === true) && hasOptionalTurnId(value)) {
|
|
27307
27385
|
return event;
|
|
27308
27386
|
}
|
|
27309
27387
|
break;
|
|
27310
27388
|
case "input_requested":
|
|
27311
|
-
if (hasString(value, "id") && hasString(value, "message") &&
|
|
27389
|
+
if (hasString(value, "id") && hasString(value, "message") && isRecord3(value.requestedSchema) && hasString(value, "expiresAt") && hasOptionalTurnId(value)) {
|
|
27312
27390
|
return event;
|
|
27313
27391
|
}
|
|
27314
27392
|
break;
|
|
@@ -27352,7 +27430,7 @@ function toAssistantClientEvent(event) {
|
|
|
27352
27430
|
return { event: "unrecognized", data: { name: event.event, payload: value } };
|
|
27353
27431
|
}
|
|
27354
27432
|
function isViewAvailableDetail(value) {
|
|
27355
|
-
return hasString(value, "id") && hasString(value, "tool") && typeof value.resourceUri === "string" && value.resourceUri.startsWith("ui://") && hasOptionalString(value.title) && (value.replayed === void 0 || value.replayed === true) && isJsonValue(value.result, 0) && hasOptionalJson(value.arguments) && hasOptionalString(value.html) && (value.resourceMeta === void 0 ||
|
|
27433
|
+
return hasString(value, "id") && hasString(value, "tool") && typeof value.resourceUri === "string" && value.resourceUri.startsWith("ui://") && hasOptionalString(value.title) && (value.replayed === void 0 || value.replayed === true) && isJsonValue(value.result, 0) && hasOptionalJson(value.arguments) && hasOptionalString(value.html) && (value.resourceMeta === void 0 || isRecord3(value.resourceMeta)) && (value.allowedOpenDomains === void 0 || Array.isArray(value.allowedOpenDomains) && value.allowedOpenDomains.every(isHttpsUrl)) && hasOptionalTurnId(value);
|
|
27356
27434
|
}
|
|
27357
27435
|
function isHttpsUrl(value) {
|
|
27358
27436
|
if (typeof value !== "string") return false;
|
|
@@ -27385,11 +27463,11 @@ function isJsonValue(value, depth) {
|
|
|
27385
27463
|
if (Array.isArray(value)) {
|
|
27386
27464
|
return value.length <= 256 && value.every((entry) => isJsonValue(entry, depth + 1));
|
|
27387
27465
|
}
|
|
27388
|
-
if (!
|
|
27466
|
+
if (!isRecord3(value)) return false;
|
|
27389
27467
|
const entries2 = Object.entries(value);
|
|
27390
27468
|
return entries2.length <= 256 && entries2.every(([, entry]) => isJsonValue(entry, depth + 1));
|
|
27391
27469
|
}
|
|
27392
|
-
function
|
|
27470
|
+
function isRecord3(value) {
|
|
27393
27471
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
27394
27472
|
}
|
|
27395
27473
|
|
|
@@ -27519,15 +27597,15 @@ function parseFrame(frame) {
|
|
|
27519
27597
|
if (event === "done" && !isValidDonePayload(parsed)) {
|
|
27520
27598
|
throw invalidStream("assistant event stream contained an invalid done event");
|
|
27521
27599
|
}
|
|
27522
|
-
return { event, data:
|
|
27600
|
+
return { event, data: isRecord4(parsed) ? parsed : { value: parsed } };
|
|
27523
27601
|
}
|
|
27524
27602
|
function normalizeLineEndings(input) {
|
|
27525
27603
|
return input.replaceAll("\r\n", "\n").replaceAll("\r", "\n");
|
|
27526
27604
|
}
|
|
27527
27605
|
function isValidDonePayload(value) {
|
|
27528
|
-
return
|
|
27606
|
+
return isRecord4(value) && (value.turnId === void 0 || typeof value.turnId === "string" && value.turnId.length > 0);
|
|
27529
27607
|
}
|
|
27530
|
-
function
|
|
27608
|
+
function isRecord4(value) {
|
|
27531
27609
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
27532
27610
|
}
|
|
27533
27611
|
function invalidStream(message, cause) {
|
|
@@ -27538,27 +27616,6 @@ function isAbortError2(error51) {
|
|
|
27538
27616
|
}
|
|
27539
27617
|
|
|
27540
27618
|
// src/client.ts
|
|
27541
|
-
async function refusalCode(response) {
|
|
27542
|
-
try {
|
|
27543
|
-
const body = await response.clone().json();
|
|
27544
|
-
const code = body.code;
|
|
27545
|
-
return typeof code === "string" ? code : void 0;
|
|
27546
|
-
} catch {
|
|
27547
|
-
return void 0;
|
|
27548
|
-
}
|
|
27549
|
-
}
|
|
27550
|
-
var UNRETRYABLE_SERVICE_CODES = /* @__PURE__ */ new Set([
|
|
27551
|
-
"daily_turn_budget_exhausted",
|
|
27552
|
-
"daily_session_budget_exhausted"
|
|
27553
|
-
]);
|
|
27554
|
-
var AssistantClientError = class extends Error {
|
|
27555
|
-
detail;
|
|
27556
|
-
constructor(detail, message, options) {
|
|
27557
|
-
super(message, options);
|
|
27558
|
-
this.name = "AssistantClientError";
|
|
27559
|
-
this.detail = detail;
|
|
27560
|
-
}
|
|
27561
|
-
};
|
|
27562
27619
|
var DefaultAssistantClient = class {
|
|
27563
27620
|
#source;
|
|
27564
27621
|
#fetch;
|
|
@@ -27593,12 +27650,50 @@ var DefaultAssistantClient = class {
|
|
|
27593
27650
|
hasSession() {
|
|
27594
27651
|
return this.#session !== void 0;
|
|
27595
27652
|
}
|
|
27653
|
+
/** Whether a request holds the single-flight slot, so callers can refuse before mutating UI. */
|
|
27654
|
+
isBusy() {
|
|
27655
|
+
return this.#active !== void 0;
|
|
27656
|
+
}
|
|
27596
27657
|
async connect() {
|
|
27597
27658
|
if (this.#session) return;
|
|
27598
27659
|
await this.#singleFlight(async (signal) => {
|
|
27599
|
-
if (
|
|
27660
|
+
if (this.#session) return;
|
|
27661
|
+
const session = await this.#createSession(signal);
|
|
27662
|
+
if (session.resume) {
|
|
27663
|
+
try {
|
|
27664
|
+
await this.#runChatOperation(signal, () => this.#resumeTurn(session, signal));
|
|
27665
|
+
} catch {
|
|
27666
|
+
}
|
|
27667
|
+
}
|
|
27600
27668
|
});
|
|
27601
27669
|
}
|
|
27670
|
+
/** POST the one-shot resume trigger; a 409 means nothing was pending, which renders as silence. */
|
|
27671
|
+
async #resumeTurn(session, signal) {
|
|
27672
|
+
const response = await this.#request(
|
|
27673
|
+
session.endpoints.turns,
|
|
27674
|
+
{
|
|
27675
|
+
method: "POST",
|
|
27676
|
+
headers: authorizedHeaders(session.token, "text/event-stream"),
|
|
27677
|
+
body: JSON.stringify({ resume: true }),
|
|
27678
|
+
signal
|
|
27679
|
+
},
|
|
27680
|
+
"turn_failed"
|
|
27681
|
+
);
|
|
27682
|
+
if (response.status === 409) return;
|
|
27683
|
+
if (!response.ok) {
|
|
27684
|
+
throw clientError(
|
|
27685
|
+
"turn_failed",
|
|
27686
|
+
`Assistant turn failed (${response.status})`,
|
|
27687
|
+
false,
|
|
27688
|
+
response.status,
|
|
27689
|
+
void 0,
|
|
27690
|
+
await refusalCode(response)
|
|
27691
|
+
);
|
|
27692
|
+
}
|
|
27693
|
+
this.#emit({ event: "resume_started", data: { tool: session.resume?.tool ?? "" } });
|
|
27694
|
+
await this.#consume(response);
|
|
27695
|
+
this.#emit({ event: "message_completed", data: {} });
|
|
27696
|
+
}
|
|
27602
27697
|
async sendMessage(text3) {
|
|
27603
27698
|
const message = text3.trim();
|
|
27604
27699
|
if (!message) return;
|
|
@@ -28003,10 +28098,10 @@ function authorizedHeaders(token, accept) {
|
|
|
28003
28098
|
};
|
|
28004
28099
|
}
|
|
28005
28100
|
function parseAppInteraction(value) {
|
|
28006
|
-
if (!
|
|
28101
|
+
if (!isRecord2(value) || !isRecord2(value.interaction)) return void 0;
|
|
28007
28102
|
const event = value.interaction.event;
|
|
28008
28103
|
const data = value.interaction.data;
|
|
28009
|
-
if (event !== "tool_proposed" && event !== "input_requested" || !
|
|
28104
|
+
if (event !== "tool_proposed" && event !== "input_requested" || !isRecord2(data)) {
|
|
28010
28105
|
return void 0;
|
|
28011
28106
|
}
|
|
28012
28107
|
const parsed = toAssistantClientEvent({ event, data });
|
|
@@ -28026,54 +28121,6 @@ function appInteractionStopped(action) {
|
|
|
28026
28121
|
isError: true
|
|
28027
28122
|
};
|
|
28028
28123
|
}
|
|
28029
|
-
function parseSession(value) {
|
|
28030
|
-
if (!isRecord4(value) || !isRecord4(value.endpoints)) {
|
|
28031
|
-
throw clientError("session_failed", "Assistant session response is invalid", true);
|
|
28032
|
-
}
|
|
28033
|
-
const interactions = value.endpoints.interactions;
|
|
28034
|
-
const apps = value.endpoints.apps;
|
|
28035
|
-
const sandbox = value.endpoints.sandbox;
|
|
28036
|
-
if (typeof value.token !== "string" || typeof value.expiresAt !== "string" || typeof value.endpoints.turns !== "string" || typeof value.endpoints.toolConfirmations !== "string" || interactions !== void 0 && typeof interactions !== "string" || apps !== void 0 && typeof apps !== "string" || sandbox !== void 0 && typeof sandbox !== "string") {
|
|
28037
|
-
throw clientError("session_failed", "Assistant session response is invalid", true);
|
|
28038
|
-
}
|
|
28039
|
-
return {
|
|
28040
|
-
token: value.token,
|
|
28041
|
-
expiresAt: value.expiresAt,
|
|
28042
|
-
endpoints: {
|
|
28043
|
-
turns: value.endpoints.turns,
|
|
28044
|
-
toolConfirmations: value.endpoints.toolConfirmations,
|
|
28045
|
-
...typeof interactions === "string" ? { interactions } : {},
|
|
28046
|
-
...typeof apps === "string" ? { apps } : {},
|
|
28047
|
-
...typeof sandbox === "string" ? { sandbox } : {}
|
|
28048
|
-
},
|
|
28049
|
-
...isRecord4(value.configuration) ? { configuration: value.configuration } : {}
|
|
28050
|
-
};
|
|
28051
|
-
}
|
|
28052
|
-
function isRecord4(value) {
|
|
28053
|
-
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
28054
|
-
}
|
|
28055
|
-
async function readStableErrorCode(response) {
|
|
28056
|
-
let value;
|
|
28057
|
-
try {
|
|
28058
|
-
value = await response.json();
|
|
28059
|
-
} catch {
|
|
28060
|
-
return void 0;
|
|
28061
|
-
}
|
|
28062
|
-
if (!isRecord4(value) || typeof value.code !== "string") return void 0;
|
|
28063
|
-
return /^[A-Za-z0-9_.-]{1,64}$/.test(value.code) ? value.code : void 0;
|
|
28064
|
-
}
|
|
28065
|
-
function clientError(code, message, retryable, status, options, serviceCode) {
|
|
28066
|
-
return new AssistantClientError(
|
|
28067
|
-
{
|
|
28068
|
-
code,
|
|
28069
|
-
...status === void 0 ? {} : { status },
|
|
28070
|
-
retryable,
|
|
28071
|
-
...serviceCode === void 0 ? {} : { serviceCode }
|
|
28072
|
-
},
|
|
28073
|
-
message,
|
|
28074
|
-
options
|
|
28075
|
-
);
|
|
28076
|
-
}
|
|
28077
28124
|
|
|
28078
28125
|
// src/input-request-card.ts
|
|
28079
28126
|
function createInputRequestCard(options) {
|
|
@@ -31258,6 +31305,11 @@ var AssistantElementEventController = class {
|
|
|
31258
31305
|
this.#completedTool = void 0;
|
|
31259
31306
|
return;
|
|
31260
31307
|
}
|
|
31308
|
+
if (name21 === "resume_started") {
|
|
31309
|
+
this.#startStream("message");
|
|
31310
|
+
this.#host.element.dispatchEvent(new CustomEvent("assistant-message-started"));
|
|
31311
|
+
return;
|
|
31312
|
+
}
|
|
31261
31313
|
if (name21 === "interaction_completed") {
|
|
31262
31314
|
if (this.#streamKind !== "interaction") return;
|
|
31263
31315
|
this.#finishInteraction(String(data.id ?? ""), String(data.action ?? "accept"));
|
|
@@ -31476,6 +31528,36 @@ function queryRequired(root, selector) {
|
|
|
31476
31528
|
if (!element) throw new Error(`assistant renderer is missing ${selector}`);
|
|
31477
31529
|
return element;
|
|
31478
31530
|
}
|
|
31531
|
+
function assistantElementMarkup(appearance, open, styles) {
|
|
31532
|
+
return `${styles}
|
|
31533
|
+
<button class="launcher" type="button" aria-label="${escapeAttribute(appearance.labels.open)}" aria-controls="assistant-panel" aria-expanded="${String(open)}"><slot name="launcher-icon"></slot><span class="visually-hidden" data-session-status aria-live="polite" hidden></span></button>
|
|
31534
|
+
<section class="panel" id="assistant-panel" role="dialog" aria-label="${escapeAttribute(appearance.brand.name)}">
|
|
31535
|
+
<header><slot name="header-leading"></slot><img class="brand-logo" alt=""><strong></strong><slot name="header-actions"></slot><button class="close" type="button" aria-label="${escapeAttribute(appearance.labels.close)}"></button></header>
|
|
31536
|
+
<div class="welcome"><slot name="empty-state"></slot></div>
|
|
31537
|
+
<div class="suggested-prompts"></div>
|
|
31538
|
+
<div class="messages-region">
|
|
31539
|
+
<div class="messages" aria-live="polite"></div>
|
|
31540
|
+
<button class="new-messages" type="button" aria-label="${escapeAttribute(appearance.labels.newMessages)}" hidden></button>
|
|
31541
|
+
</div>
|
|
31542
|
+
<form><slot name="composer-leading"></slot><textarea rows="1"></textarea><button class="send" type="submit"></button><slot name="composer-trailing"></slot></form>
|
|
31543
|
+
<nav class="legal" aria-label="Legal"></nav>
|
|
31544
|
+
<slot name="conversation-footer"></slot>
|
|
31545
|
+
</section>`;
|
|
31546
|
+
}
|
|
31547
|
+
function appendLegalLinks(legal, appearance) {
|
|
31548
|
+
for (const [label, href] of [
|
|
31549
|
+
["Privacy", appearance.privacyUrl],
|
|
31550
|
+
["Terms", appearance.termsUrl]
|
|
31551
|
+
]) {
|
|
31552
|
+
if (!href) continue;
|
|
31553
|
+
const link = document.createElement("a");
|
|
31554
|
+
link.href = href;
|
|
31555
|
+
link.target = "_blank";
|
|
31556
|
+
link.rel = "noopener noreferrer";
|
|
31557
|
+
link.textContent = label;
|
|
31558
|
+
legal.append(link);
|
|
31559
|
+
}
|
|
31560
|
+
}
|
|
31479
31561
|
|
|
31480
31562
|
// src/element-page-context-controller.ts
|
|
31481
31563
|
var AssistantElementPageContextController = class {
|
|
@@ -32263,6 +32345,8 @@ var NoodleAssistantElement = class extends HTMLElementBase {
|
|
|
32263
32345
|
#pendingUserEcho;
|
|
32264
32346
|
#sessionState = "idle";
|
|
32265
32347
|
#startOpenApplied = false;
|
|
32348
|
+
#readyDispatched = false;
|
|
32349
|
+
#turnInFlight = false;
|
|
32266
32350
|
#hostAppearance;
|
|
32267
32351
|
#appearanceWarningKeys = /* @__PURE__ */ new Set();
|
|
32268
32352
|
#appearanceStyleSnapshot = /* @__PURE__ */ new Map();
|
|
@@ -32334,7 +32418,10 @@ var NoodleAssistantElement = class extends HTMLElementBase {
|
|
|
32334
32418
|
document.addEventListener("pointerdown", this.#handleDocumentPointerDown);
|
|
32335
32419
|
if (this.#appearance.behavior.startOpen) this.#applyStartOpenPolicy();
|
|
32336
32420
|
this.#render();
|
|
32337
|
-
|
|
32421
|
+
if (!this.#readyDispatched) {
|
|
32422
|
+
this.#readyDispatched = true;
|
|
32423
|
+
this.dispatchEvent(new CustomEvent("assistant-ready"));
|
|
32424
|
+
}
|
|
32338
32425
|
if (this.hasAttribute("start-open")) {
|
|
32339
32426
|
this.setAttribute("open", "");
|
|
32340
32427
|
this.#startOpenApplied = true;
|
|
@@ -32448,7 +32535,14 @@ var NoodleAssistantElement = class extends HTMLElementBase {
|
|
|
32448
32535
|
async sendMessage(text3) {
|
|
32449
32536
|
const message = text3.trim();
|
|
32450
32537
|
if (!message) return;
|
|
32538
|
+
if (this.#turnInFlight) {
|
|
32539
|
+
throw new AssistantClientError(
|
|
32540
|
+
{ code: "request_in_progress", retryable: true },
|
|
32541
|
+
"an assistant request is already in progress"
|
|
32542
|
+
);
|
|
32543
|
+
}
|
|
32451
32544
|
const generation = this.#conversationGeneration;
|
|
32545
|
+
this.#turnInFlight = true;
|
|
32452
32546
|
this.#pendingUserEcho = message;
|
|
32453
32547
|
this.#appendMessage("user", message);
|
|
32454
32548
|
this.#setBusy(true);
|
|
@@ -32465,6 +32559,7 @@ var NoodleAssistantElement = class extends HTMLElementBase {
|
|
|
32465
32559
|
this.#dispatchClientError(error51, "turn_failed");
|
|
32466
32560
|
throw error51;
|
|
32467
32561
|
} finally {
|
|
32562
|
+
this.#turnInFlight = false;
|
|
32468
32563
|
if (this.#pendingUserEcho === message) this.#pendingUserEcho = void 0;
|
|
32469
32564
|
if (generation === this.#conversationGeneration) this.#setBusy(false);
|
|
32470
32565
|
}
|
|
@@ -32533,6 +32628,7 @@ var NoodleAssistantElement = class extends HTMLElementBase {
|
|
|
32533
32628
|
#primeSession() {
|
|
32534
32629
|
if (!this.sessionEndpoint && !this.embedId) return;
|
|
32535
32630
|
if (this.#sessionBootstrap || this.#client?.hasSession()) return;
|
|
32631
|
+
if (this.#client?.isBusy?.() === true) return;
|
|
32536
32632
|
if (this.embedId && !this.#pageContext) void this.#automaticPageContext.refresh();
|
|
32537
32633
|
const client = this.#ensureClient();
|
|
32538
32634
|
const generation = this.#conversationGeneration;
|
|
@@ -32562,6 +32658,8 @@ var NoodleAssistantElement = class extends HTMLElementBase {
|
|
|
32562
32658
|
if (event.event === "content" || event.event === "message_completed" || event.event === "interaction_completed" || event.event === "error") {
|
|
32563
32659
|
this.#removeThinking();
|
|
32564
32660
|
}
|
|
32661
|
+
if (event.event === "resume_started") this.#setBusy(true);
|
|
32662
|
+
if (event.event === "message_completed" || event.event === "error") this.#setBusy(false);
|
|
32565
32663
|
}
|
|
32566
32664
|
#setBusy(busy) {
|
|
32567
32665
|
this.toggleAttribute("busy", busy);
|
|
@@ -32770,7 +32868,7 @@ var NoodleAssistantElement = class extends HTMLElementBase {
|
|
|
32770
32868
|
queryRequired(this.shadowRoot, "header").hidden = !appearance.behavior.showHeader;
|
|
32771
32869
|
const legal = queryRequired(this.shadowRoot, ".legal");
|
|
32772
32870
|
legal.replaceChildren();
|
|
32773
|
-
|
|
32871
|
+
appendLegalLinks(legal, this.#appearance);
|
|
32774
32872
|
this.#applyTheme();
|
|
32775
32873
|
}
|
|
32776
32874
|
#render() {
|
|
@@ -32786,20 +32884,11 @@ var NoodleAssistantElement = class extends HTMLElementBase {
|
|
|
32786
32884
|
this.dataset.position = appearance.layout.position;
|
|
32787
32885
|
this.dataset.density = appearance.layout.density;
|
|
32788
32886
|
this.toggleAttribute("mobile-fullscreen", appearance.layout.mobileFullscreen);
|
|
32789
|
-
this.shadowRoot.innerHTML =
|
|
32790
|
-
|
|
32791
|
-
|
|
32792
|
-
|
|
32793
|
-
|
|
32794
|
-
<div class="suggested-prompts"></div>
|
|
32795
|
-
<div class="messages-region">
|
|
32796
|
-
<div class="messages" aria-live="polite"></div>
|
|
32797
|
-
<button class="new-messages" type="button" aria-label="${escapeAttribute(appearance.labels.newMessages)}" hidden></button>
|
|
32798
|
-
</div>
|
|
32799
|
-
<form><slot name="composer-leading"></slot><textarea rows="1"></textarea><button class="send" type="submit"></button><slot name="composer-trailing"></slot></form>
|
|
32800
|
-
<nav class="legal" aria-label="Legal"></nav>
|
|
32801
|
-
<slot name="conversation-footer"></slot>
|
|
32802
|
-
</section>`;
|
|
32887
|
+
this.shadowRoot.innerHTML = assistantElementMarkup(
|
|
32888
|
+
appearance,
|
|
32889
|
+
this.hasAttribute("open"),
|
|
32890
|
+
`${ASSISTANT_ELEMENT_STYLES}${presentationStyles}`
|
|
32891
|
+
);
|
|
32803
32892
|
queryRequired(this.shadowRoot, "strong").textContent = appearance.brand.name;
|
|
32804
32893
|
const logo = queryRequired(this.shadowRoot, ".brand-logo");
|
|
32805
32894
|
const logoUrl = appearance.brand.logo[this.#resolvedMode()];
|
|
@@ -32826,7 +32915,7 @@ var NoodleAssistantElement = class extends HTMLElementBase {
|
|
|
32826
32915
|
if (!appearance.behavior.showHeader)
|
|
32827
32916
|
queryRequired(this.shadowRoot, "header").hidden = true;
|
|
32828
32917
|
const legal = queryRequired(this.shadowRoot, ".legal");
|
|
32829
|
-
|
|
32918
|
+
appendLegalLinks(legal, this.#appearance);
|
|
32830
32919
|
this.#messages = this.shadowRoot.querySelector(".messages") ?? void 0;
|
|
32831
32920
|
this.#messages?.append(...conversation);
|
|
32832
32921
|
this.#thinking = this.#messages?.querySelector(".thinking") ?? void 0;
|
|
@@ -32865,20 +32954,6 @@ var NoodleAssistantElement = class extends HTMLElementBase {
|
|
|
32865
32954
|
});
|
|
32866
32955
|
this.#applyTheme();
|
|
32867
32956
|
}
|
|
32868
|
-
#appendLegalLinks(legal) {
|
|
32869
|
-
for (const [label, href] of [
|
|
32870
|
-
["Privacy", this.#appearance.privacyUrl],
|
|
32871
|
-
["Terms", this.#appearance.termsUrl]
|
|
32872
|
-
]) {
|
|
32873
|
-
if (!href) continue;
|
|
32874
|
-
const link = document.createElement("a");
|
|
32875
|
-
link.href = href;
|
|
32876
|
-
link.target = "_blank";
|
|
32877
|
-
link.rel = "noopener noreferrer";
|
|
32878
|
-
link.textContent = label;
|
|
32879
|
-
legal.append(link);
|
|
32880
|
-
}
|
|
32881
|
-
}
|
|
32882
32957
|
};
|
|
32883
32958
|
function registerNoodleAssistant() {
|
|
32884
32959
|
if (globalThis.customElements && !customElements.get(ASSISTANT_TAG_NAME)) {
|
|
@@ -32948,6 +33023,7 @@ var NoodleAssistantWithRef = (0, import_react2.forwardRef)(
|
|
|
32948
33023
|
const ready = () => {
|
|
32949
33024
|
if (readyNotified.current) return;
|
|
32950
33025
|
readyNotified.current = true;
|
|
33026
|
+
console.debug("[noodle-assistant] ready");
|
|
32951
33027
|
props.onReady?.();
|
|
32952
33028
|
};
|
|
32953
33029
|
const error51 = (event) => props.onError?.(event.detail);
|