@rudderhq/server 0.7.2-canary.0 → 0.7.3
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/agent-runtimes/codex-models.d.ts +11 -0
- package/dist/agent-runtimes/codex-models.d.ts.map +1 -1
- package/dist/agent-runtimes/codex-models.js +155 -2
- package/dist/agent-runtimes/codex-models.js.map +1 -1
- package/dist/agent-runtimes/cursor-models.d.ts.map +1 -1
- package/dist/agent-runtimes/cursor-models.js +31 -9
- package/dist/agent-runtimes/cursor-models.js.map +1 -1
- package/dist/agent-runtimes/index.d.ts +1 -1
- package/dist/agent-runtimes/index.d.ts.map +1 -1
- package/dist/agent-runtimes/index.js +1 -1
- package/dist/agent-runtimes/index.js.map +1 -1
- package/dist/agent-runtimes/registry.d.ts +11 -4
- package/dist/agent-runtimes/registry.d.ts.map +1 -1
- package/dist/agent-runtimes/registry.js +52 -3
- package/dist/agent-runtimes/registry.js.map +1 -1
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +1 -5
- package/dist/app.js.map +1 -1
- package/dist/bootstrap/create-http-app.d.ts +1 -2
- package/dist/bootstrap/create-http-app.d.ts.map +1 -1
- package/dist/bootstrap/create-http-app.js +13 -12
- package/dist/bootstrap/create-http-app.js.map +1 -1
- package/dist/bootstrap/register-api-routes.d.ts +1 -2
- package/dist/bootstrap/register-api-routes.d.ts.map +1 -1
- package/dist/bootstrap/register-api-routes.js +20 -4
- package/dist/bootstrap/register-api-routes.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +86 -30
- package/dist/index.js.map +1 -1
- package/dist/middleware/logger.js +2 -2
- package/dist/middleware/logger.js.map +1 -1
- package/dist/middleware/logger.test.js +26 -10
- package/dist/middleware/logger.test.js.map +1 -1
- package/dist/redaction.d.ts +1 -0
- package/dist/redaction.d.ts.map +1 -1
- package/dist/redaction.js +13 -0
- package/dist/redaction.js.map +1 -1
- package/dist/routes/access.helpers.d.ts +1 -1
- package/dist/routes/agent-issue-creation.d.ts +25 -0
- package/dist/routes/agent-issue-creation.d.ts.map +1 -0
- package/dist/routes/agent-issue-creation.js +201 -0
- package/dist/routes/agent-issue-creation.js.map +1 -0
- package/dist/routes/agents.d.ts.map +1 -1
- package/dist/routes/agents.js +20 -6
- package/dist/routes/agents.js.map +1 -1
- package/dist/routes/agents.management-routes.d.ts.map +1 -1
- package/dist/routes/agents.management-routes.js +13 -10
- package/dist/routes/agents.management-routes.js.map +1 -1
- package/dist/routes/app-builder.d.ts +3 -1
- package/dist/routes/app-builder.d.ts.map +1 -1
- package/dist/routes/app-builder.js +31 -11
- package/dist/routes/app-builder.js.map +1 -1
- package/dist/routes/approvals.d.ts.map +1 -1
- package/dist/routes/approvals.js +77 -1
- package/dist/routes/approvals.js.map +1 -1
- package/dist/routes/chats.d.ts.map +1 -1
- package/dist/routes/chats.js +1 -0
- package/dist/routes/chats.js.map +1 -1
- package/dist/routes/chats.stream-routes.d.ts.map +1 -1
- package/dist/routes/chats.stream-routes.js +4 -0
- package/dist/routes/chats.stream-routes.js.map +1 -1
- package/dist/routes/computer.d.ts +30 -0
- package/dist/routes/computer.d.ts.map +1 -0
- package/dist/routes/computer.js +231 -0
- package/dist/routes/computer.js.map +1 -0
- package/dist/routes/goals.d.ts.map +1 -1
- package/dist/routes/goals.js +349 -23
- package/dist/routes/goals.js.map +1 -1
- package/dist/routes/health.d.ts.map +1 -1
- package/dist/routes/health.js +3 -0
- package/dist/routes/health.js.map +1 -1
- package/dist/routes/instance-settings.d.ts.map +1 -1
- package/dist/routes/instance-settings.js +3 -0
- package/dist/routes/instance-settings.js.map +1 -1
- package/dist/routes/issues.comments-attachments.d.ts.map +1 -1
- package/dist/routes/issues.comments-attachments.js +90 -8
- package/dist/routes/issues.comments-attachments.js.map +1 -1
- package/dist/routes/issues.d.ts.map +1 -1
- package/dist/routes/issues.js +12 -1
- package/dist/routes/issues.js.map +1 -1
- package/dist/routes/issues.mutations.d.ts.map +1 -1
- package/dist/routes/issues.mutations.js +85 -33
- package/dist/routes/issues.mutations.js.map +1 -1
- package/dist/routes/managed-mcp-connections.d.ts.map +1 -1
- package/dist/routes/managed-mcp-connections.js +46 -7
- package/dist/routes/managed-mcp-connections.js.map +1 -1
- package/dist/routes/managed-mcp-runtime.d.ts.map +1 -1
- package/dist/routes/managed-mcp-runtime.js +109 -7
- package/dist/routes/managed-mcp-runtime.js.map +1 -1
- package/dist/routes/product-analytics-collector-report.d.ts +29 -0
- package/dist/routes/product-analytics-collector-report.d.ts.map +1 -1
- package/dist/routes/product-analytics-collector-report.js +57 -1
- package/dist/routes/product-analytics-collector-report.js.map +1 -1
- package/dist/routes/product-analytics-collector-report.test.d.ts +2 -0
- package/dist/routes/product-analytics-collector-report.test.d.ts.map +1 -0
- package/dist/routes/product-analytics-collector-report.test.js +50 -0
- package/dist/routes/product-analytics-collector-report.test.js.map +1 -0
- package/dist/routes/rudder-plugins.d.ts +4 -0
- package/dist/routes/rudder-plugins.d.ts.map +1 -0
- package/dist/routes/rudder-plugins.js +213 -0
- package/dist/routes/rudder-plugins.js.map +1 -0
- package/dist/services/activity-log.d.ts +0 -3
- package/dist/services/activity-log.d.ts.map +1 -1
- package/dist/services/activity-log.js +0 -33
- package/dist/services/activity-log.js.map +1 -1
- package/dist/services/activity.d.ts +3 -3
- package/dist/services/agent-issue-creation.d.ts +344 -0
- package/dist/services/agent-issue-creation.d.ts.map +1 -0
- package/dist/services/agent-issue-creation.js +675 -0
- package/dist/services/agent-issue-creation.js.map +1 -0
- package/dist/services/agent-run-context.d.ts.map +1 -1
- package/dist/services/agent-run-context.js +13 -2
- package/dist/services/agent-run-context.js.map +1 -1
- package/dist/services/app-builder.d.ts.map +1 -1
- package/dist/services/app-builder.js +24 -3
- package/dist/services/app-builder.js.map +1 -1
- package/dist/services/automation-chat-output.d.ts +1 -1
- package/dist/services/automation-chat-output.d.ts.map +1 -1
- package/dist/services/automation-chat-output.js +24 -14
- package/dist/services/automation-chat-output.js.map +1 -1
- package/dist/services/chat-annotation-copy-lineage.d.ts +1 -1
- package/dist/services/chat-assistant.d.ts.map +1 -1
- package/dist/services/chat-assistant.helpers.d.ts +4 -4
- package/dist/services/chat-assistant.helpers.d.ts.map +1 -1
- package/dist/services/chat-assistant.helpers.js.map +1 -1
- package/dist/services/chat-assistant.js +45 -13
- package/dist/services/chat-assistant.js.map +1 -1
- package/dist/services/chat-assistant.runtime-overrides.d.ts +2 -1
- package/dist/services/chat-assistant.runtime-overrides.d.ts.map +1 -1
- package/dist/services/chat-assistant.runtime-overrides.js +47 -18
- package/dist/services/chat-assistant.runtime-overrides.js.map +1 -1
- package/dist/services/chat-assistant.runtime-overrides.test.d.ts +2 -0
- package/dist/services/chat-assistant.runtime-overrides.test.d.ts.map +1 -0
- package/dist/services/chat-assistant.runtime-overrides.test.js +37 -0
- package/dist/services/chat-assistant.runtime-overrides.test.js.map +1 -0
- package/dist/services/chat-generation-protocol.d.ts.map +1 -1
- package/dist/services/chat-generation-protocol.js +1 -12
- package/dist/services/chat-generation-protocol.js.map +1 -1
- package/dist/services/chat-generation-protocol.test.js +16 -25
- package/dist/services/chat-generation-protocol.test.js.map +1 -1
- package/dist/services/chat-generation-provenance.d.ts.map +1 -1
- package/dist/services/chat-generation-provenance.js +4 -2
- package/dist/services/chat-generation-provenance.js.map +1 -1
- package/dist/services/chat-queued-message-materialization.d.ts.map +1 -1
- package/dist/services/chat-queued-message-materialization.js +12 -2
- package/dist/services/chat-queued-message-materialization.js.map +1 -1
- package/dist/services/chat-transcript-persistence.d.ts +49 -0
- package/dist/services/chat-transcript-persistence.d.ts.map +1 -0
- package/dist/services/chat-transcript-persistence.js +238 -0
- package/dist/services/chat-transcript-persistence.js.map +1 -0
- package/dist/services/chat-transcript-persistence.test.d.ts +2 -0
- package/dist/services/chat-transcript-persistence.test.d.ts.map +1 -0
- package/dist/services/chat-transcript-persistence.test.js +23 -0
- package/dist/services/chat-transcript-persistence.test.js.map +1 -0
- package/dist/services/chat-work-manifest.d.ts.map +1 -1
- package/dist/services/chat-work-manifest.js +36 -10
- package/dist/services/chat-work-manifest.js.map +1 -1
- package/dist/services/chats.annotation-persistence.d.ts.map +1 -1
- package/dist/services/chats.annotation-persistence.js +25 -6
- package/dist/services/chats.annotation-persistence.js.map +1 -1
- package/dist/services/chats.create.d.ts.map +1 -1
- package/dist/services/chats.create.js +49 -4
- package/dist/services/chats.create.js.map +1 -1
- package/dist/services/chats.d.ts +10 -10
- package/dist/services/chats.d.ts.map +1 -1
- package/dist/services/chats.inline-visual-persistence.d.ts +2 -1
- package/dist/services/chats.inline-visual-persistence.d.ts.map +1 -1
- package/dist/services/chats.inline-visual-persistence.js +19 -2
- package/dist/services/chats.inline-visual-persistence.js.map +1 -1
- package/dist/services/chats.js +177 -95
- package/dist/services/chats.js.map +1 -1
- package/dist/services/computer-broker.d.ts +35 -0
- package/dist/services/computer-broker.d.ts.map +1 -0
- package/dist/services/computer-broker.js +211 -0
- package/dist/services/computer-broker.js.map +1 -0
- package/dist/services/computer-broker.test.d.ts +2 -0
- package/dist/services/computer-broker.test.d.ts.map +1 -0
- package/dist/services/computer-broker.test.js +70 -0
- package/dist/services/computer-broker.test.js.map +1 -0
- package/dist/services/computer-capability.d.ts +13 -0
- package/dist/services/computer-capability.d.ts.map +1 -0
- package/dist/services/computer-capability.js +11 -0
- package/dist/services/computer-capability.js.map +1 -0
- package/dist/services/computer-capability.test.d.ts +2 -0
- package/dist/services/computer-capability.test.d.ts.map +1 -0
- package/dist/services/computer-capability.test.js +27 -0
- package/dist/services/computer-capability.test.js.map +1 -0
- package/dist/services/finance.d.ts +2 -2
- package/dist/services/goals.d.ts +2041 -126
- package/dist/services/goals.d.ts.map +1 -1
- package/dist/services/goals.js +1533 -176
- package/dist/services/goals.js.map +1 -1
- package/dist/services/index.d.ts +2 -0
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +2 -0
- package/dist/services/index.js.map +1 -1
- package/dist/services/instance-settings.d.ts.map +1 -1
- package/dist/services/instance-settings.js +17 -2
- package/dist/services/instance-settings.js.map +1 -1
- package/dist/services/integrations/agent-integrations.d.ts +1 -1
- package/dist/services/issues.d.ts +86 -1
- package/dist/services/issues.d.ts.map +1 -1
- package/dist/services/issues.helpers.d.ts +4 -0
- package/dist/services/issues.helpers.d.ts.map +1 -1
- package/dist/services/issues.helpers.js +28 -6
- package/dist/services/issues.helpers.js.map +1 -1
- package/dist/services/issues.js +208 -109
- package/dist/services/issues.js.map +1 -1
- package/dist/services/knowledge-portability/organization-portability.files.d.ts +1 -1
- package/dist/services/knowledge-portability/organization-skills.catalog.d.ts +7 -1
- package/dist/services/knowledge-portability/organization-skills.catalog.d.ts.map +1 -1
- package/dist/services/knowledge-portability/organization-skills.catalog.js +10 -0
- package/dist/services/knowledge-portability/organization-skills.catalog.js.map +1 -1
- package/dist/services/knowledge-portability/organization-skills.d.ts +1 -0
- package/dist/services/knowledge-portability/organization-skills.d.ts.map +1 -1
- package/dist/services/knowledge-portability/organization-skills.js +36 -3
- package/dist/services/knowledge-portability/organization-skills.js.map +1 -1
- package/dist/services/mcp/managed-bindings.d.ts +3 -1
- package/dist/services/mcp/managed-bindings.d.ts.map +1 -1
- package/dist/services/mcp/managed-bindings.js +31 -7
- package/dist/services/mcp/managed-bindings.js.map +1 -1
- package/dist/services/mcp/managed-client.d.ts +15 -0
- package/dist/services/mcp/managed-client.d.ts.map +1 -1
- package/dist/services/mcp/managed-client.js +23 -1
- package/dist/services/mcp/managed-client.js.map +1 -1
- package/dist/services/mcp/managed-client.test.js +73 -9
- package/dist/services/mcp/managed-client.test.js.map +1 -1
- package/dist/services/mcp/managed-connections.d.ts +19 -1
- package/dist/services/mcp/managed-connections.d.ts.map +1 -1
- package/dist/services/mcp/managed-connections.js +211 -37
- package/dist/services/mcp/managed-connections.js.map +1 -1
- package/dist/services/mcp/managed-runtime.js +1 -1
- package/dist/services/mcp/managed-runtime.js.map +1 -1
- package/dist/services/mcp/oauth.d.ts.map +1 -1
- package/dist/services/mcp/oauth.js +3 -0
- package/dist/services/mcp/oauth.js.map +1 -1
- package/dist/services/mcp/provider-registry.d.ts +24 -1
- package/dist/services/mcp/provider-registry.d.ts.map +1 -1
- package/dist/services/mcp/provider-registry.js +26 -0
- package/dist/services/mcp/provider-registry.js.map +1 -1
- package/dist/services/mcp/provider-registry.test.js +26 -0
- package/dist/services/mcp/provider-registry.test.js.map +1 -1
- package/dist/services/messenger-saved-views.d.ts.map +1 -1
- package/dist/services/messenger-saved-views.js +1 -0
- package/dist/services/messenger-saved-views.js.map +1 -1
- package/dist/services/messenger.d.ts +2 -2
- package/dist/services/messenger.d.ts.map +1 -1
- package/dist/services/messenger.js +142 -51
- package/dist/services/messenger.js.map +1 -1
- package/dist/services/product-analytics.d.ts +21 -5
- package/dist/services/product-analytics.d.ts.map +1 -1
- package/dist/services/product-analytics.js +47 -0
- package/dist/services/product-analytics.js.map +1 -1
- package/dist/services/product-analytics.test.js +63 -1
- package/dist/services/product-analytics.test.js.map +1 -1
- package/dist/services/rudder-plugins.d.ts +107 -0
- package/dist/services/rudder-plugins.d.ts.map +1 -0
- package/dist/services/rudder-plugins.js +1746 -0
- package/dist/services/rudder-plugins.js.map +1 -0
- package/dist/services/rudder-plugins.test.d.ts +2 -0
- package/dist/services/rudder-plugins.test.d.ts.map +1 -0
- package/dist/services/rudder-plugins.test.js +191 -0
- package/dist/services/rudder-plugins.test.js.map +1 -0
- package/dist/services/run-events.d.ts +1 -1
- package/dist/services/runtime-kernel/heartbeat.core.d.ts +1 -0
- package/dist/services/runtime-kernel/heartbeat.core.d.ts.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.core.js +1 -1
- package/dist/services/runtime-kernel/heartbeat.core.js.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.d.ts +57 -0
- package/dist/services/runtime-kernel/heartbeat.d.ts.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.execute.d.ts.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.execute.js +51 -3
- package/dist/services/runtime-kernel/heartbeat.execute.js.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.js +400 -102
- package/dist/services/runtime-kernel/heartbeat.js.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.recovery.d.ts.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.recovery.js +23 -2
- package/dist/services/runtime-kernel/heartbeat.recovery.js.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.terminal.d.ts +17 -2
- package/dist/services/runtime-kernel/heartbeat.terminal.d.ts.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.terminal.js +33 -1
- package/dist/services/runtime-kernel/heartbeat.terminal.js.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.wakeup.d.ts.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.wakeup.js +35 -3
- package/dist/services/runtime-kernel/heartbeat.wakeup.js.map +1 -1
- package/dist/services/side-chats.d.ts.map +1 -1
- package/dist/services/side-chats.js +12 -0
- package/dist/services/side-chats.js.map +1 -1
- package/dist/services/workspace-runtime.services.d.ts +1 -1
- package/package.json +19 -17
- package/resources/bundled-skills/app-builder/SKILL.md +39 -9
- package/resources/bundled-skills/app-builder/assets/scaffold/app/globals.css +109 -16
- package/resources/bundled-skills/app-builder/assets/scaffold/components/contacts-workspace.tsx +176 -152
- package/resources/bundled-skills/app-builder/assets/scaffold/components/ui/alert.tsx +12 -0
- package/resources/bundled-skills/app-builder/assets/scaffold/components/ui/badge.tsx +27 -0
- package/resources/bundled-skills/app-builder/assets/scaffold/components/ui/button.tsx +9 -7
- package/resources/bundled-skills/app-builder/assets/scaffold/components/ui/card.tsx +15 -3
- package/resources/bundled-skills/app-builder/assets/scaffold/components/ui/empty.tsx +18 -0
- package/resources/bundled-skills/app-builder/assets/scaffold/components/ui/field.tsx +23 -0
- package/resources/bundled-skills/app-builder/assets/scaffold/components/ui/input.tsx +1 -1
- package/resources/bundled-skills/app-builder/assets/scaffold/components/ui/label.tsx +1 -1
- package/resources/bundled-skills/app-builder/assets/scaffold/components/ui/separator.tsx +6 -0
- package/resources/bundled-skills/app-builder/assets/scaffold/components/ui/skeleton.tsx +6 -0
- package/resources/bundled-skills/app-builder/assets/scaffold/components/ui/table.tsx +30 -0
- package/resources/bundled-skills/app-builder/assets/scaffold/components.json +20 -0
- package/resources/bundled-skills/app-builder/assets/scaffold/next-env.d.ts +1 -1
- package/resources/bundled-skills/app-builder/assets/scaffold/next.config.ts +19 -0
- package/resources/bundled-skills/app-builder/assets/scaffold/package.json +2 -1
- package/resources/bundled-skills/app-builder/assets/scaffold/rudder.app.json +1 -1
- package/resources/bundled-skills/app-builder/assets/scaffold/rudder.ui.json +13 -0
- package/resources/bundled-skills/app-builder/assets/scaffold/scripts/validate-rudder-ui.mjs +50 -0
- package/resources/bundled-skills/app-builder/assets/scaffold/tests/e2e/app.spec.ts +35 -1
- package/resources/bundled-skills/app-builder/evals/evals.json +2 -1
- package/resources/bundled-skills/app-builder/references/design-guidelines.md +19 -2
- package/resources/bundled-skills/app-builder/references/rudder-ui-preset.md +73 -0
- package/resources/bundled-skills/app-builder/references/scaffold-contract.md +12 -0
- package/resources/bundled-skills/app-builder/references/verification.md +6 -0
- package/resources/bundled-skills/app-builder/scripts/report-build-status.mjs +83 -0
- package/resources/bundled-skills/browser/SKILL.md +11 -4
- package/resources/bundled-skills/browser/agents/openai.yaml +2 -2
- package/resources/bundled-skills/browser/evals/trigger-evals.json +22 -0
- package/resources/bundled-skills/rudder-docs/SKILL.md +2 -2
- package/resources/bundled-skills/rudder-docs/evals/retrieval-authority-evals.json +40 -0
- package/resources/bundled-skills/rudder-docs/evals/trigger-evals.json +2 -2
- package/resources/bundled-skills/rudder-docs/references/api-reference.md +0 -2
- package/resources/bundled-skills/rudder-docs/references/plugin-authoring.md +38 -114
- package/resources/bundled-skills/rudder-docs/references/source-map.md +2 -0
- package/skills/app-builder/SKILL.md +39 -9
- package/skills/app-builder/assets/scaffold/app/globals.css +109 -16
- package/skills/app-builder/assets/scaffold/components/contacts-workspace.tsx +176 -152
- package/skills/app-builder/assets/scaffold/components/ui/alert.tsx +12 -0
- package/skills/app-builder/assets/scaffold/components/ui/badge.tsx +27 -0
- package/skills/app-builder/assets/scaffold/components/ui/button.tsx +9 -7
- package/skills/app-builder/assets/scaffold/components/ui/card.tsx +15 -3
- package/skills/app-builder/assets/scaffold/components/ui/empty.tsx +18 -0
- package/skills/app-builder/assets/scaffold/components/ui/field.tsx +23 -0
- package/skills/app-builder/assets/scaffold/components/ui/input.tsx +1 -1
- package/skills/app-builder/assets/scaffold/components/ui/label.tsx +1 -1
- package/skills/app-builder/assets/scaffold/components/ui/separator.tsx +6 -0
- package/skills/app-builder/assets/scaffold/components/ui/skeleton.tsx +6 -0
- package/skills/app-builder/assets/scaffold/components/ui/table.tsx +30 -0
- package/skills/app-builder/assets/scaffold/components.json +20 -0
- package/skills/app-builder/assets/scaffold/next-env.d.ts +1 -1
- package/skills/app-builder/assets/scaffold/next.config.ts +19 -0
- package/skills/app-builder/assets/scaffold/package.json +2 -1
- package/skills/app-builder/assets/scaffold/rudder.app.json +1 -1
- package/skills/app-builder/assets/scaffold/rudder.ui.json +13 -0
- package/skills/app-builder/assets/scaffold/scripts/validate-rudder-ui.mjs +50 -0
- package/skills/app-builder/assets/scaffold/tests/e2e/app.spec.ts +35 -1
- package/skills/app-builder/evals/evals.json +2 -1
- package/skills/app-builder/references/design-guidelines.md +19 -2
- package/skills/app-builder/references/rudder-ui-preset.md +73 -0
- package/skills/app-builder/references/scaffold-contract.md +12 -0
- package/skills/app-builder/references/verification.md +6 -0
- package/skills/app-builder/scripts/report-build-status.mjs +83 -0
- package/skills/browser/SKILL.md +11 -4
- package/skills/browser/agents/openai.yaml +2 -2
- package/skills/browser/evals/trigger-evals.json +22 -0
- package/skills/rudder-docs/SKILL.md +2 -2
- package/skills/rudder-docs/evals/retrieval-authority-evals.json +40 -0
- package/skills/rudder-docs/evals/trigger-evals.json +2 -2
- package/skills/rudder-docs/references/api-reference.md +0 -2
- package/skills/rudder-docs/references/plugin-authoring.md +38 -114
- package/skills/rudder-docs/references/source-map.md +2 -0
- package/ui-dist/assets/{LibraryLiveSurface-CcsYG18H.js → LibraryLiveSurface-CoGcDfo0.js} +1 -1
- package/ui-dist/assets/{abnfDiagram-VRR7QNED-C34K70lu.js → abnfDiagram-VRR7QNED-BnPHHNfu.js} +1 -1
- package/ui-dist/assets/{arc-BYztEqom.js → arc-CAvqQQR_.js} +1 -1
- package/ui-dist/assets/{architectureDiagram-ZJ3FMSHR-BQKKX-d7.js → architectureDiagram-ZJ3FMSHR-DDa31YAK.js} +1 -1
- package/ui-dist/assets/{blockDiagram-677ZJIJ3-DPfaIbqb.js → blockDiagram-677ZJIJ3-DDXLU9Ej.js} +1 -1
- package/ui-dist/assets/{c4Diagram-LMCZKHZV-BnwCM567.js → c4Diagram-LMCZKHZV-zEm0rHCp.js} +1 -1
- package/ui-dist/assets/channel-M_3GhwHQ.js +1 -0
- package/ui-dist/assets/{chunk-2Q5K7J3B-CFviCRuZ.js → chunk-2Q5K7J3B-y1Rw45sz.js} +1 -1
- package/ui-dist/assets/{chunk-32BRIVSS-FoIxWB1d.js → chunk-32BRIVSS-Cq8cQBba.js} +1 -1
- package/ui-dist/assets/{chunk-5VM5RSS4-EbAfuwwN.js → chunk-5VM5RSS4-CjQA6jGI.js} +1 -1
- package/ui-dist/assets/{chunk-EX3LRPZG-CsStqjdd.js → chunk-EX3LRPZG-VVYt7jh3.js} +1 -1
- package/ui-dist/assets/{chunk-JWPE2WC7-Dw5KEviU.js → chunk-JWPE2WC7-BJC3ISop.js} +1 -1
- package/ui-dist/assets/{chunk-MOJQB5TN-BlHlEWfj.js → chunk-MOJQB5TN-ClZgTqQk.js} +1 -1
- package/ui-dist/assets/{chunk-RYQCIY6F-BWw7BE01.js → chunk-RYQCIY6F-DRei3pn2.js} +1 -1
- package/ui-dist/assets/{chunk-V7JOEXUC-CxRvHZbj.js → chunk-V7JOEXUC-BGWrQfpZ.js} +1 -1
- package/ui-dist/assets/{chunk-VR4S4FIN-DZa_KwY9.js → chunk-VR4S4FIN-BBYT57Lt.js} +1 -1
- package/ui-dist/assets/{chunk-XXDRQBXY-Cnimf5j2.js → chunk-XXDRQBXY-D7P4SoZB.js} +1 -1
- package/ui-dist/assets/classDiagram-OUVF2IWQ-G44FJFnB.js +1 -0
- package/ui-dist/assets/classDiagram-v2-EOCWNBFH-G44FJFnB.js +1 -0
- package/ui-dist/assets/{cose-bilkent-JH36ORCC-COCPT6B8.js → cose-bilkent-JH36ORCC-mJXY7GQo.js} +1 -1
- package/ui-dist/assets/{cynefin-VYW2F7L2-C5CybQ7c.js → cynefin-VYW2F7L2-C-I_lPmH.js} +1 -1
- package/ui-dist/assets/{cynefinDiagram-TSTJHNR4-BDrPLGpv.js → cynefinDiagram-TSTJHNR4-Bm1S_w7H.js} +1 -1
- package/ui-dist/assets/{dagre-VKFMJZFB-DXxPiE9D.js → dagre-VKFMJZFB-BuPIm1AB.js} +1 -1
- package/ui-dist/assets/{diagram-FQU43EPY-CdC2pj_S.js → diagram-FQU43EPY-DTBCuV0W.js} +1 -1
- package/ui-dist/assets/{diagram-G47NLZAW-sEOwPe0_.js → diagram-G47NLZAW-B4CK8uR2.js} +1 -1
- package/ui-dist/assets/{diagram-NH7WQ7WH-CwoTfWmv.js → diagram-NH7WQ7WH-BkbS0GkL.js} +1 -1
- package/ui-dist/assets/{diagram-OA4YK3LP-Cksc-JQa.js → diagram-OA4YK3LP-C_mkRe0c.js} +1 -1
- package/ui-dist/assets/{diagram-WEI45ONY-1lHRkCse.js → diagram-WEI45ONY-CHUb3TIJ.js} +1 -1
- package/ui-dist/assets/{ebnfDiagram-CCIWWBDH-BJ6dNjJ2.js → ebnfDiagram-CCIWWBDH-D_lN4ZOY.js} +1 -1
- package/ui-dist/assets/{erDiagram-Q63AITRT-DVTmCmE1.js → erDiagram-Q63AITRT-CRnDqcsy.js} +1 -1
- package/ui-dist/assets/{flowDiagram-23GEKE2U-B2A6w103.js → flowDiagram-23GEKE2U-ChELY-8y.js} +1 -1
- package/ui-dist/assets/{ganttDiagram-NO4QXBWP-BoqdQOBD.js → ganttDiagram-NO4QXBWP-QIML25-M.js} +1 -1
- package/ui-dist/assets/{gitGraphDiagram-IHSO6WYX-BPWVpzXj.js → gitGraphDiagram-IHSO6WYX-TB_AKH8l.js} +1 -1
- package/ui-dist/assets/{graph-W8QGT1XQ.js → graph-HKPvyYQ1.js} +1 -1
- package/ui-dist/assets/{index-DTqh4VW9.js → index-Ar0zIwom.js} +1 -1
- package/ui-dist/assets/{index-UkFXcg--.js → index-BeNxgoKd.js} +1 -1
- package/ui-dist/assets/{index-CRe48ije.js → index-CB-UdrKN.js} +1 -1
- package/ui-dist/assets/{index-C8VKPswh.js → index-CfpFS1Tl.js} +573 -588
- package/ui-dist/assets/{index-BYt_CWxk.js → index-CjIeIR2m.js} +1 -1
- package/ui-dist/assets/{index-DFhr5xg9.js → index-DCgbySwf.js} +1 -1
- package/ui-dist/assets/{index-BT3SfQnV.js → index-DDMaBNLI.js} +1 -1
- package/ui-dist/assets/{index-96_7QHQ5.js → index-DSZmO4bA.js} +1 -1
- package/ui-dist/assets/{index-D5okPECv.js → index-DfzFi2fx.js} +1 -1
- package/ui-dist/assets/{index-CG59QbM3.js → index-DmEf_U5I.js} +1 -1
- package/ui-dist/assets/{index-CaNgMg06.js → index-OfGDMJiA.js} +1 -1
- package/ui-dist/assets/{index-CrOrmmHY.js → index-ZzX8P4M5.js} +1 -1
- package/ui-dist/assets/{index-9ogi82-q.js → index-fDtlbG8Y.js} +1 -1
- package/ui-dist/assets/{index-Cjq0R1QI.js → index-gdvFtffQ.js} +1 -1
- package/ui-dist/assets/index-noipz8bE.css +1 -0
- package/ui-dist/assets/{index-CjRwrGKt.js → index-rnOTiIXd.js} +1 -1
- package/ui-dist/assets/{infoDiagram-FWYZ7A6U-CGKM1qd0.js → infoDiagram-FWYZ7A6U-DUR3sDTd.js} +1 -1
- package/ui-dist/assets/{ishikawaDiagram-FXEZZL3T-BMINXmgJ.js → ishikawaDiagram-FXEZZL3T-CcnYT0s0.js} +1 -1
- package/ui-dist/assets/{journeyDiagram-5HDEW3XC-lLpvO5ye.js → journeyDiagram-5HDEW3XC-CqfbG8T1.js} +1 -1
- package/ui-dist/assets/{kanban-definition-HUTT4EX6-B1o_jb4m.js → kanban-definition-HUTT4EX6-CYwQM9eR.js} +1 -1
- package/ui-dist/assets/{layout-CfhTVz4J.js → layout-B2IlJgLE.js} +1 -1
- package/ui-dist/assets/{linear-Cyfw5mer.js → linear-CcEPcfbO.js} +1 -1
- package/ui-dist/assets/{map-BJC9PnTS.js → map-Bmhfvlpu.js} +1 -1
- package/ui-dist/assets/{mermaid.core-FscMPm7s.js → mermaid.core-T9Q0CuQx.js} +4 -4
- package/ui-dist/assets/{mindmap-definition-LN4V7U3C-DRgxKOO8.js → mindmap-definition-LN4V7U3C-CRjQlwN4.js} +1 -1
- package/ui-dist/assets/{pegDiagram-2B236MQR-Dvz4qHu-.js → pegDiagram-2B236MQR-DenccdY8.js} +1 -1
- package/ui-dist/assets/{pieDiagram-ENE6RG2P-Dk2JI7ZR.js → pieDiagram-ENE6RG2P-CPiTrJcY.js} +1 -1
- package/ui-dist/assets/{quadrantDiagram-ABIIQ3AL-rDcmmQtb.js → quadrantDiagram-ABIIQ3AL-fKbvGl_-.js} +1 -1
- package/ui-dist/assets/{railroadDiagram-RFXS5EU6-DuGw7Ver.js → railroadDiagram-RFXS5EU6-D6uOjEmA.js} +1 -1
- package/ui-dist/assets/{requirementDiagram-TGXJPOKE-B9FO6PRO.js → requirementDiagram-TGXJPOKE-CQIQ387O.js} +1 -1
- package/ui-dist/assets/{sankeyDiagram-HTMAVEWB-Dvy9IKWr.js → sankeyDiagram-HTMAVEWB-CKrnONJL.js} +1 -1
- package/ui-dist/assets/{sequenceDiagram-DBY2YBRQ-BMNm3icE.js → sequenceDiagram-DBY2YBRQ-C3vaOiZO.js} +1 -1
- package/ui-dist/assets/{sizeCapture-X5ZJPWSS-D9g2vtWC.js → sizeCapture-X5ZJPWSS-F39EvxY0.js} +1 -1
- package/ui-dist/assets/{stateDiagram-2N3HPSRC-kQ3-sJWr.js → stateDiagram-2N3HPSRC-Bq2sVFQq.js} +1 -1
- package/ui-dist/assets/stateDiagram-v2-6OUMAXLB-B94IPtHC.js +1 -0
- package/ui-dist/assets/{swimlanes-5IMT3BWC-Cx_ksQRH.js → swimlanes-5IMT3BWC-CSrygB7m.js} +2 -2
- package/ui-dist/assets/swimlanesDiagram-G3AALYLV-9WQr2_E9.js +8 -0
- package/ui-dist/assets/{timeline-definition-FHXFAJF6-CyArjIWu.js → timeline-definition-FHXFAJF6-DSMMlntv.js} +1 -1
- package/ui-dist/assets/{vennDiagram-L72KCM5P-Bjdg_skC.js → vennDiagram-L72KCM5P-D5XH96zV.js} +1 -1
- package/ui-dist/assets/{wardleyDiagram-EHGQE667-BLV-S7cE.js → wardleyDiagram-EHGQE667-BXX2RFsU.js} +1 -1
- package/ui-dist/assets/{xychartDiagram-FW5EYKEG-BTtly2sn.js → xychartDiagram-FW5EYKEG-awBW2lwG.js} +1 -1
- package/ui-dist/index.html +2 -2
- package/dist/bootstrap/plugin-host-runtime.d.ts +0 -116
- package/dist/bootstrap/plugin-host-runtime.d.ts.map +0 -1
- package/dist/bootstrap/plugin-host-runtime.js +0 -179
- package/dist/bootstrap/plugin-host-runtime.js.map +0 -1
- package/dist/bundled-plugins/plugin-linear/README.md +0 -22
- package/dist/bundled-plugins/plugin-linear/dist/manifest.js +0 -183
- package/dist/bundled-plugins/plugin-linear/dist/manifest.js.map +0 -7
- package/dist/bundled-plugins/plugin-linear/dist/ui/index.js +0 -1285
- package/dist/bundled-plugins/plugin-linear/dist/ui/index.js.map +0 -7
- package/dist/bundled-plugins/plugin-linear/dist/worker.js +0 -10430
- package/dist/bundled-plugins/plugin-linear/dist/worker.js.map +0 -7
- package/dist/bundled-plugins/plugin-linear/package.json +0 -42
- package/dist/routes/plugin-ui-static.d.ts +0 -70
- package/dist/routes/plugin-ui-static.d.ts.map +0 -1
- package/dist/routes/plugin-ui-static.js +0 -375
- package/dist/routes/plugin-ui-static.js.map +0 -1
- package/dist/routes/plugins.d.ts +0 -120
- package/dist/routes/plugins.d.ts.map +0 -1
- package/dist/routes/plugins.js +0 -1125
- package/dist/routes/plugins.js.map +0 -1
- package/dist/routes/plugins.operations-routes.d.ts +0 -28
- package/dist/routes/plugins.operations-routes.d.ts.map +0 -1
- package/dist/routes/plugins.operations-routes.js +0 -720
- package/dist/routes/plugins.operations-routes.js.map +0 -1
- package/dist/services/issue-goal-fallback.d.ts +0 -15
- package/dist/services/issue-goal-fallback.d.ts.map +0 -1
- package/dist/services/issue-goal-fallback.js +0 -27
- package/dist/services/issue-goal-fallback.js.map +0 -1
- package/dist/services/plugin-capability-validator.d.ts +0 -108
- package/dist/services/plugin-capability-validator.d.ts.map +0 -1
- package/dist/services/plugin-capability-validator.js +0 -268
- package/dist/services/plugin-capability-validator.js.map +0 -1
- package/dist/services/plugin-config-validator.d.ts +0 -26
- package/dist/services/plugin-config-validator.d.ts.map +0 -1
- package/dist/services/plugin-config-validator.js +0 -41
- package/dist/services/plugin-config-validator.js.map +0 -1
- package/dist/services/plugin-dev-watcher.d.ts +0 -47
- package/dist/services/plugin-dev-watcher.d.ts.map +0 -1
- package/dist/services/plugin-dev-watcher.js +0 -275
- package/dist/services/plugin-dev-watcher.js.map +0 -1
- package/dist/services/plugin-event-bus.d.ts +0 -149
- package/dist/services/plugin-event-bus.d.ts.map +0 -1
- package/dist/services/plugin-event-bus.js +0 -258
- package/dist/services/plugin-event-bus.js.map +0 -1
- package/dist/services/plugin-host-service-cleanup.d.ts +0 -14
- package/dist/services/plugin-host-service-cleanup.d.ts.map +0 -1
- package/dist/services/plugin-host-service-cleanup.js +0 -37
- package/dist/services/plugin-host-service-cleanup.js.map +0 -1
- package/dist/services/plugin-host-services.d.ts +0 -13
- package/dist/services/plugin-host-services.d.ts.map +0 -1
- package/dist/services/plugin-host-services.js +0 -935
- package/dist/services/plugin-host-services.js.map +0 -1
- package/dist/services/plugin-job-coordinator.d.ts +0 -81
- package/dist/services/plugin-job-coordinator.d.ts.map +0 -1
- package/dist/services/plugin-job-coordinator.js +0 -172
- package/dist/services/plugin-job-coordinator.js.map +0 -1
- package/dist/services/plugin-job-scheduler.d.ts +0 -163
- package/dist/services/plugin-job-scheduler.d.ts.map +0 -1
- package/dist/services/plugin-job-scheduler.js +0 -452
- package/dist/services/plugin-job-scheduler.js.map +0 -1
- package/dist/services/plugin-job-store.d.ts +0 -208
- package/dist/services/plugin-job-store.d.ts.map +0 -1
- package/dist/services/plugin-job-store.js +0 -350
- package/dist/services/plugin-job-store.js.map +0 -1
- package/dist/services/plugin-lifecycle.d.ts +0 -240
- package/dist/services/plugin-lifecycle.d.ts.map +0 -1
- package/dist/services/plugin-lifecycle.js +0 -439
- package/dist/services/plugin-lifecycle.js.map +0 -1
- package/dist/services/plugin-loader.core.d.ts +0 -40
- package/dist/services/plugin-loader.core.d.ts.map +0 -1
- package/dist/services/plugin-loader.core.js +0 -879
- package/dist/services/plugin-loader.core.js.map +0 -1
- package/dist/services/plugin-loader.d.ts +0 -30
- package/dist/services/plugin-loader.d.ts.map +0 -1
- package/dist/services/plugin-loader.helpers.d.ts +0 -495
- package/dist/services/plugin-loader.helpers.d.ts.map +0 -1
- package/dist/services/plugin-loader.helpers.js +0 -238
- package/dist/services/plugin-loader.helpers.js.map +0 -1
- package/dist/services/plugin-loader.js +0 -30
- package/dist/services/plugin-loader.js.map +0 -1
- package/dist/services/plugin-loader.worker-paths.d.ts +0 -37
- package/dist/services/plugin-loader.worker-paths.d.ts.map +0 -1
- package/dist/services/plugin-loader.worker-paths.js +0 -62
- package/dist/services/plugin-loader.worker-paths.js.map +0 -1
- package/dist/services/plugin-log-retention.d.ts +0 -20
- package/dist/services/plugin-log-retention.d.ts.map +0 -1
- package/dist/services/plugin-log-retention.js +0 -63
- package/dist/services/plugin-log-retention.js.map +0 -1
- package/dist/services/plugin-manifest-validator.d.ts +0 -90
- package/dist/services/plugin-manifest-validator.d.ts.map +0 -1
- package/dist/services/plugin-manifest-validator.js +0 -72
- package/dist/services/plugin-manifest-validator.js.map +0 -1
- package/dist/services/plugin-registry.d.ts +0 -2542
- package/dist/services/plugin-registry.d.ts.map +0 -1
- package/dist/services/plugin-registry.js +0 -536
- package/dist/services/plugin-registry.js.map +0 -1
- package/dist/services/plugin-runtime-sandbox.d.ts +0 -40
- package/dist/services/plugin-runtime-sandbox.d.ts.map +0 -1
- package/dist/services/plugin-runtime-sandbox.js +0 -154
- package/dist/services/plugin-runtime-sandbox.js.map +0 -1
- package/dist/services/plugin-secrets-handler.d.ts +0 -81
- package/dist/services/plugin-secrets-handler.d.ts.map +0 -1
- package/dist/services/plugin-secrets-handler.js +0 -275
- package/dist/services/plugin-secrets-handler.js.map +0 -1
- package/dist/services/plugin-state-store.d.ts +0 -92
- package/dist/services/plugin-state-store.d.ts.map +0 -1
- package/dist/services/plugin-state-store.js +0 -190
- package/dist/services/plugin-state-store.js.map +0 -1
- package/dist/services/plugin-stream-bus.d.ts +0 -29
- package/dist/services/plugin-stream-bus.d.ts.map +0 -1
- package/dist/services/plugin-stream-bus.js +0 -48
- package/dist/services/plugin-stream-bus.js.map +0 -1
- package/dist/services/plugin-tool-dispatcher.d.ts +0 -180
- package/dist/services/plugin-tool-dispatcher.d.ts.map +0 -1
- package/dist/services/plugin-tool-dispatcher.js +0 -224
- package/dist/services/plugin-tool-dispatcher.js.map +0 -1
- package/dist/services/plugin-tool-registry.d.ts +0 -192
- package/dist/services/plugin-tool-registry.d.ts.map +0 -1
- package/dist/services/plugin-tool-registry.js +0 -224
- package/dist/services/plugin-tool-registry.js.map +0 -1
- package/dist/services/plugin-worker-manager.d.ts +0 -260
- package/dist/services/plugin-worker-manager.d.ts.map +0 -1
- package/dist/services/plugin-worker-manager.js +0 -836
- package/dist/services/plugin-worker-manager.js.map +0 -1
- package/ui-dist/assets/channel-Bmzlyjow.js +0 -1
- package/ui-dist/assets/classDiagram-OUVF2IWQ-VR7MKiEz.js +0 -1
- package/ui-dist/assets/classDiagram-v2-EOCWNBFH-VR7MKiEz.js +0 -1
- package/ui-dist/assets/index-CxPYXL3t.css +0 -1
- package/ui-dist/assets/stateDiagram-v2-6OUMAXLB-BYK8scZh.js +0 -1
- package/ui-dist/assets/swimlanesDiagram-G3AALYLV-irU0aSS8.js +0 -8
package/dist/services/chats.js
CHANGED
|
@@ -12,12 +12,13 @@ import { chatGenerationProtocolService } from "./chat-generation-protocol.js";
|
|
|
12
12
|
import { validateCanonicalChatInlineAnnotations } from "./chat-inline-annotation-validation.js";
|
|
13
13
|
import { selectedChatMessageBranchCondition } from "./chat-message-branch.js";
|
|
14
14
|
import { hydrateQueuedMessage, materializeQueuedUserMessage, normalizeQueuedMessagePayload, QUEUED_ANNOTATION_ASSETS_KEY, queuedAnnotationAssetState, queuedMessageMutationFingerprint, withQueuedAnnotationAssetState, } from "./chat-queued-message-materialization.js";
|
|
15
|
+
import { compareChatGenerationSelection, listChatGenerationTranscripts, listDetachedChatTranscripts, listDetachedChatTranscriptSummaries, loadChatTranscripts, replaceDetachedChatTranscript, selectChatTranscript, transcriptSummaryFromSources, } from "./chat-transcript-persistence.js";
|
|
15
16
|
import { createChatAnnotationMessagePersistence } from "./chats.annotation-persistence.js";
|
|
16
17
|
import { listActiveChatGenerationIds, listPendingChatProposalConversationIds, } from "./chats.attention-order.js";
|
|
17
18
|
import { ACTIVE_CHAT_GENERATION_STATUSES, CHAT_GENERATION_CONTROL_LEASE_MS, NATIVE_STEER_GENERATION_STATUSES, SERVER_QUEUE_RUNNING_STATUSES, } from "./chats.constants.js";
|
|
18
19
|
import { createChatConversation, createChatWithInitialMessage } from "./chats.create.js";
|
|
19
20
|
import { conversationMutability, nextForkTitle } from "./chats.fork-helpers.js";
|
|
20
|
-
import { buildSearchSnippet, CHAT_TRANSCRIPT_KEY, chatTranscriptFromPayload,
|
|
21
|
+
import { buildSearchSnippet, CHAT_TRANSCRIPT_KEY, chatTranscriptFromPayload, contentPath, escapeLikePattern, incomingMessagePreviewSql, issueProposalFromPayload, isVisibleIncomingChatMessage, listContextLinksForConversationIds, listPrimaryIssues, operationProposalDecisionStatusFromPayload, operationProposalFromPayload, resolveContextEntities, safeTrim, stripChatMetadataFromPayload, textContains, truncatePreview, visibleIncomingMessageSql, withOperationProposalDecisionState, } from "./chats.helpers.js";
|
|
21
22
|
import { copyForkChatMessages, listRecentUserChatMessages, updateTrustedInlineVisualMappings, } from "./chats.inline-visual-persistence.js";
|
|
22
23
|
import { createQueuedMessageWithStagedAttachments as createQueuedMessageWithStagedAttachmentsInDb } from "./chats.queued-message-create.js";
|
|
23
24
|
import { findQueuedMessageReplay, updateChatAgentRuntimeInvariant, } from "./chats.runtime-controls.js";
|
|
@@ -27,7 +28,7 @@ import { normalizeLocalLibraryPathMarkdown } from "./library-path-markdown.js";
|
|
|
27
28
|
import { removeMessengerCustomGroupEntriesForItem } from "./messenger-saved-views.js";
|
|
28
29
|
import { organizationService } from "./orgs.js";
|
|
29
30
|
import { sanitizePostgresJsonValue } from "./postgres-json.js";
|
|
30
|
-
import { completeProductAnalyticsWorkCycle } from "./product-analytics.js";
|
|
31
|
+
import { completeProductAnalyticsWorkCycle, recordProductAnalyticsChatCreated, } from "./product-analytics.js";
|
|
31
32
|
const CHAT_TITLE_MAX_LENGTH = 200;
|
|
32
33
|
class InvalidQueueDeliveryActionLinkError extends Error {
|
|
33
34
|
}
|
|
@@ -2316,7 +2317,7 @@ export function chatService(db) {
|
|
|
2316
2317
|
const nativeSteerMessageIds = rows
|
|
2317
2318
|
.filter((row) => row.role === "user" && row.structuredPayload?.source === "steer")
|
|
2318
2319
|
.map((row) => row.id);
|
|
2319
|
-
const [attachmentsByMessageId, approvalsById, generationMessageRows, linkedSteerQueueRows] = await Promise.all([
|
|
2320
|
+
const [attachmentsByMessageId, approvalsById, generationMessageRows, linkedSteerQueueRows, detachedTranscriptByMessageId] = await Promise.all([
|
|
2320
2321
|
listAttachmentsForMessageIds(rows.map((row) => row.id)),
|
|
2321
2322
|
listApprovalsForMessages(rows),
|
|
2322
2323
|
assistantMessageIds.length > 0
|
|
@@ -2326,11 +2327,12 @@ export function chatService(db) {
|
|
|
2326
2327
|
generationId: chatGenerationEvents.generationId,
|
|
2327
2328
|
generationCreatedAt: chatGenerations.createdAt,
|
|
2328
2329
|
eventRecordedAt: chatGenerationEvents.recordedAt,
|
|
2330
|
+
generationSeq: chatGenerationEvents.generationSeq,
|
|
2329
2331
|
})
|
|
2330
2332
|
.from(chatGenerationEvents)
|
|
2331
2333
|
.innerJoin(chatGenerations, eq(chatGenerations.id, chatGenerationEvents.generationId))
|
|
2332
2334
|
.where(and(inArray(chatGenerationEvents.assistantMessageId, assistantMessageIds), inArray(chatGenerationEvents.orgId, [...new Set(rows.map((row) => row.orgId))])))
|
|
2333
|
-
.orderBy(desc(chatGenerations.createdAt), desc(chatGenerationEvents.recordedAt), desc(chatGenerationEvents.generationSeq))
|
|
2335
|
+
.orderBy(desc(chatGenerations.createdAt), desc(chatGenerationEvents.recordedAt), desc(chatGenerationEvents.generationSeq), desc(chatGenerationEvents.generationId))
|
|
2334
2336
|
: Promise.resolve([]),
|
|
2335
2337
|
nativeSteerMessageIds.length > 0
|
|
2336
2338
|
? db
|
|
@@ -2344,6 +2346,9 @@ export function chatService(db) {
|
|
|
2344
2346
|
.from(chatQueuedMessages)
|
|
2345
2347
|
.where(or(inArray(chatQueuedMessages.sourceMessageId, nativeSteerMessageIds), inArray(chatQueuedMessages.continuationMessageId, nativeSteerMessageIds)))
|
|
2346
2348
|
: Promise.resolve([]),
|
|
2349
|
+
includeTranscript
|
|
2350
|
+
? listDetachedChatTranscripts(db, rows)
|
|
2351
|
+
: Promise.resolve(new Map()),
|
|
2347
2352
|
]);
|
|
2348
2353
|
const generationIds = [...new Set(generationMessageRows.map((row) => row.generationId))];
|
|
2349
2354
|
const generationsById = generationIds.length === 0
|
|
@@ -2360,9 +2365,10 @@ export function chatService(db) {
|
|
|
2360
2365
|
.map((generation) => [generation.id, generation]));
|
|
2361
2366
|
const messageById = new Map(rows.map((row) => [row.id, row]));
|
|
2362
2367
|
const generationIdByAssistantMessageId = new Map();
|
|
2368
|
+
const generationSelectionByAssistantMessageId = new Map();
|
|
2363
2369
|
for (const generationMessageRow of generationMessageRows) {
|
|
2364
2370
|
const assistantMessageId = generationMessageRow.assistantMessageId;
|
|
2365
|
-
if (!assistantMessageId
|
|
2371
|
+
if (!assistantMessageId)
|
|
2366
2372
|
continue;
|
|
2367
2373
|
const message = messageById.get(assistantMessageId);
|
|
2368
2374
|
const generation = generationsById.get(generationMessageRow.generationId);
|
|
@@ -2370,6 +2376,16 @@ export function chatService(db) {
|
|
|
2370
2376
|
continue;
|
|
2371
2377
|
if (generation.orgId !== message.orgId || generation.conversationId !== message.conversationId)
|
|
2372
2378
|
continue;
|
|
2379
|
+
const candidate = {
|
|
2380
|
+
generationId: generationMessageRow.generationId,
|
|
2381
|
+
generationCreatedAt: generationMessageRow.generationCreatedAt,
|
|
2382
|
+
eventRecordedAt: generationMessageRow.eventRecordedAt,
|
|
2383
|
+
generationSeq: generationMessageRow.generationSeq,
|
|
2384
|
+
};
|
|
2385
|
+
const current = generationSelectionByAssistantMessageId.get(assistantMessageId);
|
|
2386
|
+
if (current && compareChatGenerationSelection(candidate, current) <= 0)
|
|
2387
|
+
continue;
|
|
2388
|
+
generationSelectionByAssistantMessageId.set(assistantMessageId, candidate);
|
|
2373
2389
|
generationIdByAssistantMessageId.set(assistantMessageId, generationMessageRow.generationId);
|
|
2374
2390
|
}
|
|
2375
2391
|
const steerDispositionByMessageId = new Map();
|
|
@@ -2418,6 +2434,11 @@ export function chatService(db) {
|
|
|
2418
2434
|
const generationId = generationIdByAssistantMessageId.get(messageId);
|
|
2419
2435
|
return Boolean(generationId && nativeSteerTargetGenerationIds.has(generationId));
|
|
2420
2436
|
});
|
|
2437
|
+
const hydratedDetachedTranscriptByMessageId = includeTranscript
|
|
2438
|
+
? detachedTranscriptByMessageId
|
|
2439
|
+
: nativeSteerAssistantMessageIds.length > 0
|
|
2440
|
+
? await listDetachedChatTranscripts(db, rows)
|
|
2441
|
+
: detachedTranscriptByMessageId;
|
|
2421
2442
|
const assistantGenerationIds = [
|
|
2422
2443
|
...new Set(generationIdByAssistantMessageId.values()),
|
|
2423
2444
|
];
|
|
@@ -2484,6 +2505,9 @@ export function chatService(db) {
|
|
|
2484
2505
|
});
|
|
2485
2506
|
}
|
|
2486
2507
|
}
|
|
2508
|
+
const detachedTranscriptSummaryByMessageId = includeTranscript
|
|
2509
|
+
? new Map()
|
|
2510
|
+
: await listDetachedChatTranscriptSummaries(db, rows);
|
|
2487
2511
|
const nativeSteerTranscriptPayloadByMessageId = new Map();
|
|
2488
2512
|
if (nativeSteerAssistantMessageIds.length > 0) {
|
|
2489
2513
|
const transcriptPayloadRows = await db
|
|
@@ -2504,13 +2528,22 @@ export function chatService(db) {
|
|
|
2504
2528
|
const transcriptPayload = nativeSteerTranscriptPayloadByMessageId.get(row.id) ?? row.structuredPayload;
|
|
2505
2529
|
const ledgerTranscript = transcriptByAssistantMessageId.get(row.id);
|
|
2506
2530
|
const transcript = includeRowTranscript
|
|
2507
|
-
?
|
|
2508
|
-
|
|
2509
|
-
:
|
|
2531
|
+
? selectChatTranscript({
|
|
2532
|
+
ledger: ledgerTranscript,
|
|
2533
|
+
detached: hydratedDetachedTranscriptByMessageId.get(row.id),
|
|
2534
|
+
legacyPayload: transcriptPayload,
|
|
2535
|
+
})
|
|
2510
2536
|
: [];
|
|
2511
2537
|
const transcriptSummary = includeRowTranscript
|
|
2512
|
-
?
|
|
2513
|
-
|
|
2538
|
+
? transcriptSummaryFromSources({
|
|
2539
|
+
ledger: ledgerTranscript,
|
|
2540
|
+
detached: hydratedDetachedTranscriptByMessageId.get(row.id),
|
|
2541
|
+
legacyPayload: transcriptPayload,
|
|
2542
|
+
})
|
|
2543
|
+
: transcriptSummaryByAssistantMessageId.get(row.id)
|
|
2544
|
+
?? detachedTranscriptSummaryByMessageId.get(row.id)
|
|
2545
|
+
?? row.transcriptSummary
|
|
2546
|
+
?? null;
|
|
2514
2547
|
const structuredPayload = effectiveStructuredPayload(row);
|
|
2515
2548
|
return {
|
|
2516
2549
|
...row,
|
|
@@ -2763,6 +2796,17 @@ export function chatService(db) {
|
|
|
2763
2796
|
.returning();
|
|
2764
2797
|
if (!child)
|
|
2765
2798
|
throw new Error("Failed to create forked chat conversation");
|
|
2799
|
+
await recordProductAnalyticsChatCreated(tx, {
|
|
2800
|
+
orgId: input.orgId,
|
|
2801
|
+
conversationId: child.id,
|
|
2802
|
+
createdAt: child.createdAt,
|
|
2803
|
+
createdByUserId: input.createdByUserId,
|
|
2804
|
+
actorType: "human",
|
|
2805
|
+
actorId: input.userId,
|
|
2806
|
+
creationPath: "fork",
|
|
2807
|
+
planMode: child.planMode,
|
|
2808
|
+
initialRole: "system",
|
|
2809
|
+
});
|
|
2766
2810
|
const contextLinks = await tx
|
|
2767
2811
|
.select()
|
|
2768
2812
|
.from(chatContextLinks)
|
|
@@ -2799,6 +2843,7 @@ export function chatService(db) {
|
|
|
2799
2843
|
sourceConversation: source,
|
|
2800
2844
|
targetConversationId: child.id,
|
|
2801
2845
|
orgId: input.orgId,
|
|
2846
|
+
transcriptBySourceMessageId: await loadChatTranscripts(tx, forkMessages),
|
|
2802
2847
|
});
|
|
2803
2848
|
const [systemEvent] = await tx
|
|
2804
2849
|
.insert(chatMessages)
|
|
@@ -3102,6 +3147,9 @@ export function chatService(db) {
|
|
|
3102
3147
|
const row = await db
|
|
3103
3148
|
.select({
|
|
3104
3149
|
id: chatMessages.id,
|
|
3150
|
+
orgId: chatMessages.orgId,
|
|
3151
|
+
conversationId: chatMessages.conversationId,
|
|
3152
|
+
role: chatMessages.role,
|
|
3105
3153
|
structuredPayload: chatMessages.structuredPayload,
|
|
3106
3154
|
})
|
|
3107
3155
|
.from(chatMessages)
|
|
@@ -3109,44 +3157,17 @@ export function chatService(db) {
|
|
|
3109
3157
|
.then((rows) => rows[0] ?? null);
|
|
3110
3158
|
if (!row)
|
|
3111
3159
|
return null;
|
|
3112
|
-
const generation = await
|
|
3113
|
-
|
|
3114
|
-
|
|
3115
|
-
|
|
3116
|
-
})
|
|
3117
|
-
.from(chatGenerationEvents)
|
|
3118
|
-
.innerJoin(chatGenerations, eq(chatGenerations.id, chatGenerationEvents.generationId))
|
|
3119
|
-
.where(eq(chatGenerationEvents.assistantMessageId, messageId))
|
|
3120
|
-
.orderBy(desc(chatGenerations.createdAt), desc(chatGenerationEvents.recordedAt), desc(chatGenerationEvents.generationSeq))
|
|
3121
|
-
.limit(1)
|
|
3122
|
-
.then((rows) => rows[0] ?? null);
|
|
3123
|
-
const transcript = generation
|
|
3124
|
-
? await db
|
|
3125
|
-
.select({
|
|
3126
|
-
generationId: chatGenerationEvents.generationId,
|
|
3127
|
-
generationSeq: chatGenerationEvents.generationSeq,
|
|
3128
|
-
payload: chatGenerationEvents.payload,
|
|
3129
|
-
})
|
|
3130
|
-
.from(chatGenerationEvents)
|
|
3131
|
-
.where(and(eq(chatGenerationEvents.generationId, generation.generationId), eq(chatGenerationEvents.assistantMessageId, messageId), eq(chatGenerationEvents.eventKind, "transcript"), generation.acceptedThroughSeq === null
|
|
3132
|
-
? undefined
|
|
3133
|
-
: lte(chatGenerationEvents.generationSeq, generation.acceptedThroughSeq)))
|
|
3134
|
-
.orderBy(asc(chatGenerationEvents.generationSeq))
|
|
3135
|
-
.then((events) => events.flatMap((event) => {
|
|
3136
|
-
const entry = event.payload.entry;
|
|
3137
|
-
return entry && typeof entry === "object" && !Array.isArray(entry)
|
|
3138
|
-
? [withChatTranscriptGenerationProvenance(entry, {
|
|
3139
|
-
generationId: event.generationId,
|
|
3140
|
-
generationSeq: event.generationSeq,
|
|
3141
|
-
})]
|
|
3142
|
-
: [];
|
|
3143
|
-
}))
|
|
3144
|
-
: [];
|
|
3160
|
+
const [generation, detached] = await Promise.all([
|
|
3161
|
+
listChatGenerationTranscripts(db, [row]),
|
|
3162
|
+
listDetachedChatTranscripts(db, [row]),
|
|
3163
|
+
]);
|
|
3145
3164
|
return {
|
|
3146
3165
|
messageId: row.id,
|
|
3147
|
-
transcript:
|
|
3148
|
-
|
|
3149
|
-
:
|
|
3166
|
+
transcript: selectChatTranscript({
|
|
3167
|
+
ledger: generation.transcriptByMessageId.get(row.id),
|
|
3168
|
+
detached: detached.get(row.id),
|
|
3169
|
+
legacyPayload: row.structuredPayload,
|
|
3170
|
+
}),
|
|
3150
3171
|
};
|
|
3151
3172
|
}
|
|
3152
3173
|
async function getMessage(conversationId, messageId) {
|
|
@@ -3160,27 +3181,59 @@ export function chatService(db) {
|
|
|
3160
3181
|
const [hydrated] = await hydrateMessages([row]);
|
|
3161
3182
|
return hydrated ? hydrated : null;
|
|
3162
3183
|
}
|
|
3184
|
+
async function transcriptSnapshotForWrite(database, message, requestedTranscript) {
|
|
3185
|
+
// Generation events are the canonical live source. Never duplicate their
|
|
3186
|
+
// transcript into the detached snapshot table during a metadata update.
|
|
3187
|
+
if (message.role === "assistant") {
|
|
3188
|
+
const generation = await listChatGenerationTranscripts(database, [message]);
|
|
3189
|
+
if ((generation.transcriptByMessageId.get(message.id)?.length ?? 0) > 0)
|
|
3190
|
+
return [];
|
|
3191
|
+
}
|
|
3192
|
+
if (requestedTranscript !== undefined)
|
|
3193
|
+
return requestedTranscript;
|
|
3194
|
+
const detached = await listDetachedChatTranscripts(database, [message]);
|
|
3195
|
+
return selectChatTranscript({
|
|
3196
|
+
ledger: undefined,
|
|
3197
|
+
detached: detached.get(message.id),
|
|
3198
|
+
legacyPayload: message.structuredPayload,
|
|
3199
|
+
});
|
|
3200
|
+
}
|
|
3163
3201
|
async function addMessage(conversationId, input) {
|
|
3164
3202
|
const durableBody = input.role === "user"
|
|
3165
3203
|
? input.body
|
|
3166
3204
|
: await normalizeLocalLibraryPathMarkdown(input.body, input.orgId);
|
|
3167
|
-
const
|
|
3168
|
-
|
|
3169
|
-
|
|
3170
|
-
|
|
3171
|
-
|
|
3172
|
-
|
|
3173
|
-
|
|
3174
|
-
|
|
3175
|
-
|
|
3176
|
-
|
|
3177
|
-
|
|
3178
|
-
|
|
3179
|
-
|
|
3180
|
-
|
|
3181
|
-
|
|
3182
|
-
|
|
3183
|
-
|
|
3205
|
+
const sanitizedPayload = sanitizeChatStructuredPayload(input.structuredPayload ?? null);
|
|
3206
|
+
const transcriptFromPayload = chatTranscriptFromPayload(sanitizedPayload);
|
|
3207
|
+
const transcript = input.transcript ?? transcriptFromPayload;
|
|
3208
|
+
const { message } = await db.transaction(async (tx) => {
|
|
3209
|
+
const [inserted] = await tx
|
|
3210
|
+
.insert(chatMessages)
|
|
3211
|
+
.values({
|
|
3212
|
+
orgId: input.orgId,
|
|
3213
|
+
conversationId,
|
|
3214
|
+
role: input.role,
|
|
3215
|
+
kind: input.kind,
|
|
3216
|
+
status: input.status ?? "completed",
|
|
3217
|
+
body: durableBody,
|
|
3218
|
+
structuredPayload: stripChatMetadataFromPayload(sanitizedPayload),
|
|
3219
|
+
approvalId: input.approvalId ?? null,
|
|
3220
|
+
runId: input.runId ?? null,
|
|
3221
|
+
replyingAgentId: input.replyingAgentId ?? null,
|
|
3222
|
+
chatTurnId: input.chatTurnId ?? null,
|
|
3223
|
+
turnVariant: input.turnVariant ?? 0,
|
|
3224
|
+
})
|
|
3225
|
+
.returning();
|
|
3226
|
+
if (!inserted)
|
|
3227
|
+
throw new Error("Failed to create chat message");
|
|
3228
|
+
if (transcript.length > 0) {
|
|
3229
|
+
await replaceDetachedChatTranscript(tx, {
|
|
3230
|
+
orgId: input.orgId,
|
|
3231
|
+
messageId: inserted.id,
|
|
3232
|
+
entries: transcript,
|
|
3233
|
+
});
|
|
3234
|
+
}
|
|
3235
|
+
return { message: inserted };
|
|
3236
|
+
});
|
|
3184
3237
|
if (!message)
|
|
3185
3238
|
throw new Error("Failed to create chat message");
|
|
3186
3239
|
if (input.role === "user" || isVisibleIncomingChatMessage(message)) {
|
|
@@ -3213,29 +3266,43 @@ export function chatService(db) {
|
|
|
3213
3266
|
const visibleContentChanged = (durableInputBody !== undefined && safeTrim(durableInputBody) !== safeTrim(existing.body)) ||
|
|
3214
3267
|
(input.kind !== undefined && input.kind !== existing.kind) ||
|
|
3215
3268
|
(input.approvalId !== undefined && input.approvalId !== existing.approvalId);
|
|
3216
|
-
const
|
|
3217
|
-
|
|
3218
|
-
.
|
|
3219
|
-
|
|
3220
|
-
|
|
3221
|
-
|
|
3222
|
-
|
|
3223
|
-
|
|
3224
|
-
|
|
3225
|
-
|
|
3226
|
-
|
|
3227
|
-
|
|
3228
|
-
|
|
3229
|
-
|
|
3230
|
-
|
|
3231
|
-
|
|
3232
|
-
|
|
3233
|
-
|
|
3234
|
-
|
|
3235
|
-
|
|
3236
|
-
|
|
3237
|
-
|
|
3238
|
-
|
|
3269
|
+
const hasPayloadUpdate = input.structuredPayload !== undefined || input.transcript !== undefined;
|
|
3270
|
+
const sanitizedPayload = input.structuredPayload !== undefined
|
|
3271
|
+
? sanitizeChatStructuredPayload(input.structuredPayload)
|
|
3272
|
+
: sanitizeChatStructuredPayload(stripChatMetadataFromPayload(existing.structuredPayload));
|
|
3273
|
+
const requestedTranscript = input.transcript !== undefined
|
|
3274
|
+
? input.transcript
|
|
3275
|
+
: input.structuredPayload !== undefined && Object.hasOwn(sanitizedPayload ?? {}, CHAT_TRANSCRIPT_KEY)
|
|
3276
|
+
? chatTranscriptFromPayload(sanitizedPayload)
|
|
3277
|
+
: undefined;
|
|
3278
|
+
const { updated } = await db.transaction(async (tx) => {
|
|
3279
|
+
const transcript = hasPayloadUpdate
|
|
3280
|
+
? await transcriptSnapshotForWrite(tx, existing, requestedTranscript)
|
|
3281
|
+
: null;
|
|
3282
|
+
const [next] = await tx
|
|
3283
|
+
.update(chatMessages)
|
|
3284
|
+
.set({
|
|
3285
|
+
...(becameVisibleIncoming ? { createdAt: now } : {}),
|
|
3286
|
+
...(input.kind !== undefined ? { kind: input.kind } : {}),
|
|
3287
|
+
...(input.status !== undefined ? { status: input.status } : {}),
|
|
3288
|
+
...(durableInputBody !== undefined ? { body: durableInputBody } : {}),
|
|
3289
|
+
...(hasPayloadUpdate ? { structuredPayload: stripChatMetadataFromPayload(sanitizedPayload) } : {}),
|
|
3290
|
+
...(input.approvalId !== undefined ? { approvalId: input.approvalId } : {}),
|
|
3291
|
+
...(input.runId !== undefined ? { runId: input.runId } : {}),
|
|
3292
|
+
...(input.replyingAgentId !== undefined ? { replyingAgentId: input.replyingAgentId } : {}),
|
|
3293
|
+
updatedAt: now,
|
|
3294
|
+
})
|
|
3295
|
+
.where(and(eq(chatMessages.conversationId, conversationId), eq(chatMessages.id, messageId)))
|
|
3296
|
+
.returning();
|
|
3297
|
+
if (next && transcript !== null) {
|
|
3298
|
+
await replaceDetachedChatTranscript(tx, {
|
|
3299
|
+
orgId: existing.orgId,
|
|
3300
|
+
messageId: existing.id,
|
|
3301
|
+
entries: transcript,
|
|
3302
|
+
});
|
|
3303
|
+
}
|
|
3304
|
+
return { updated: next };
|
|
3305
|
+
});
|
|
3239
3306
|
if (!updated)
|
|
3240
3307
|
return null;
|
|
3241
3308
|
if ((existing.role === "user" && input.body !== undefined) ||
|
|
@@ -3281,15 +3348,30 @@ export function chatService(db) {
|
|
|
3281
3348
|
.then((rows) => rows[0] ?? null);
|
|
3282
3349
|
if (!existing)
|
|
3283
3350
|
return null;
|
|
3284
|
-
const
|
|
3285
|
-
|
|
3286
|
-
|
|
3287
|
-
|
|
3288
|
-
|
|
3289
|
-
|
|
3290
|
-
|
|
3291
|
-
|
|
3292
|
-
|
|
3351
|
+
const sanitizedPayload = sanitizeChatStructuredPayload(structuredPayload);
|
|
3352
|
+
const requestedTranscript = Object.hasOwn(sanitizedPayload ?? {}, CHAT_TRANSCRIPT_KEY)
|
|
3353
|
+
? chatTranscriptFromPayload(sanitizedPayload)
|
|
3354
|
+
: undefined;
|
|
3355
|
+
const { updated } = await db.transaction(async (tx) => {
|
|
3356
|
+
const transcript = await transcriptSnapshotForWrite(tx, existing, requestedTranscript);
|
|
3357
|
+
const [next] = await tx
|
|
3358
|
+
.update(chatMessages)
|
|
3359
|
+
.set({
|
|
3360
|
+
structuredPayload: stripChatMetadataFromPayload(sanitizedPayload),
|
|
3361
|
+
updatedAt: new Date(),
|
|
3362
|
+
})
|
|
3363
|
+
.where(and(eq(chatMessages.conversationId, conversationId), eq(chatMessages.id, messageId)))
|
|
3364
|
+
.returning();
|
|
3365
|
+
if (next) {
|
|
3366
|
+
await replaceDetachedChatTranscript(tx, {
|
|
3367
|
+
orgId: existing.orgId,
|
|
3368
|
+
messageId: existing.id,
|
|
3369
|
+
entries: transcript,
|
|
3370
|
+
});
|
|
3371
|
+
}
|
|
3372
|
+
return { updated: next };
|
|
3373
|
+
});
|
|
3374
|
+
const [hydrated] = await hydrateMessages(updated ? [updated] : []);
|
|
3293
3375
|
return hydrated ?? null;
|
|
3294
3376
|
}
|
|
3295
3377
|
async function addContextLink(conversationId, orgId, input) {
|