@nocobase/app-plugin-agents 0.1.0-beta.9 → 1.0.0-beta.15
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/CHANGELOG.md +293 -0
- package/README.md +94 -51
- package/dist/client/api/client.d.ts +25 -19
- package/dist/client/api/client.d.ts.map +1 -1
- package/dist/client/api/client.js +23 -24
- package/dist/client/api/client.js.map +1 -1
- package/dist/client/api/keys.d.ts +4 -1
- package/dist/client/api/keys.d.ts.map +1 -1
- package/dist/client/api/keys.js +4 -1
- package/dist/client/api/keys.js.map +1 -1
- package/dist/client/api/runners.d.ts +8 -4
- package/dist/client/api/runners.d.ts.map +1 -1
- package/dist/client/api/runners.js +9 -0
- package/dist/client/api/runners.js.map +1 -1
- package/dist/client/chat/ai-form.d.ts +13 -0
- package/dist/client/chat/ai-form.d.ts.map +1 -0
- package/dist/client/chat/ai-form.js +57 -0
- package/dist/client/chat/ai-form.js.map +1 -0
- package/dist/client/chat/api.d.ts +16 -14
- package/dist/client/chat/api.d.ts.map +1 -1
- package/dist/client/chat/api.js +85 -18
- package/dist/client/chat/api.js.map +1 -1
- package/dist/client/chat/client-id.d.ts +3 -0
- package/dist/client/chat/client-id.d.ts.map +1 -0
- package/dist/client/chat/client-id.js +17 -0
- package/dist/client/chat/client-id.js.map +1 -0
- package/dist/client/chat/consultation-identity.d.ts +7 -0
- package/dist/client/chat/consultation-identity.d.ts.map +1 -0
- package/dist/client/chat/consultation-identity.js +39 -0
- package/dist/client/chat/consultation-identity.js.map +1 -0
- package/dist/client/chat/context-model.d.ts +21 -3
- package/dist/client/chat/context-model.d.ts.map +1 -1
- package/dist/client/chat/context-model.js +33 -4
- package/dist/client/chat/context-model.js.map +1 -1
- package/dist/client/chat/controller.d.ts +83 -0
- package/dist/client/chat/controller.d.ts.map +1 -0
- package/dist/client/chat/controller.js +767 -0
- package/dist/client/chat/controller.js.map +1 -0
- package/dist/client/chat/extensions.d.ts +8 -3
- package/dist/client/chat/extensions.d.ts.map +1 -1
- package/dist/client/chat/extensions.js.map +1 -1
- package/dist/client/chat/feedback.d.ts +18 -0
- package/dist/client/chat/feedback.d.ts.map +1 -0
- package/dist/client/chat/feedback.js +38 -0
- package/dist/client/chat/feedback.js.map +1 -0
- package/dist/client/chat/form-registry.d.ts +95 -0
- package/dist/client/chat/form-registry.d.ts.map +1 -0
- package/dist/client/chat/form-registry.js +384 -0
- package/dist/client/chat/form-registry.js.map +1 -0
- package/dist/client/chat/keys.d.ts +1 -0
- package/dist/client/chat/keys.d.ts.map +1 -1
- package/dist/client/chat/keys.js +3 -1
- package/dist/client/chat/keys.js.map +1 -1
- package/dist/client/chat/message-model.d.ts +38 -44
- package/dist/client/chat/message-model.d.ts.map +1 -1
- package/dist/client/chat/message-model.js +138 -56
- package/dist/client/chat/message-model.js.map +1 -1
- package/dist/client/chat/provider.d.ts +12 -2
- package/dist/client/chat/provider.d.ts.map +1 -1
- package/dist/client/chat/provider.js +130 -4
- package/dist/client/chat/provider.js.map +1 -1
- package/dist/client/chat/submissions.d.ts +67 -0
- package/dist/client/chat/submissions.d.ts.map +1 -0
- package/dist/client/chat/submissions.js +241 -0
- package/dist/client/chat/submissions.js.map +1 -0
- package/dist/client/chat/tool-renderer.d.ts +39 -0
- package/dist/client/chat/tool-renderer.d.ts.map +1 -0
- package/dist/client/chat/tool-renderer.js +27 -0
- package/dist/client/chat/tool-renderer.js.map +1 -0
- package/dist/client/chat/use-chat-scroll.d.ts +4 -0
- package/dist/client/chat/use-chat-scroll.d.ts.map +1 -0
- package/dist/client/chat/use-chat-scroll.js +73 -0
- package/dist/client/chat/use-chat-scroll.js.map +1 -0
- package/dist/client/chat/use-chat.d.ts +13 -24
- package/dist/client/chat/use-chat.d.ts.map +1 -1
- package/dist/client/chat/use-chat.js +250 -235
- package/dist/client/chat/use-chat.js.map +1 -1
- package/dist/client/chat.d.ts +20 -8
- package/dist/client/chat.d.ts.map +1 -1
- package/dist/client/chat.js +16 -4
- package/dist/client/chat.js.map +1 -1
- package/dist/client/components/agent-picker.d.ts +6 -23
- package/dist/client/components/agent-picker.d.ts.map +1 -1
- package/dist/client/components/agent-picker.js +20 -39
- package/dist/client/components/agent-picker.js.map +1 -1
- package/dist/client/components/quota-status.d.ts +16 -0
- package/dist/client/components/quota-status.d.ts.map +1 -0
- package/dist/client/components/quota-status.js +39 -0
- package/dist/client/components/quota-status.js.map +1 -0
- package/dist/client/components/runners-refresh.d.ts.map +1 -1
- package/dist/client/components/runners-refresh.js +1 -0
- package/dist/client/components/runners-refresh.js.map +1 -1
- package/dist/client/components/variables/variable-dialogs.d.ts.map +1 -1
- package/dist/client/components/variables/variable-dialogs.js +7 -7
- package/dist/client/components/variables/variable-dialogs.js.map +1 -1
- package/dist/client/config.d.ts +2 -0
- package/dist/client/config.d.ts.map +1 -1
- package/dist/client/config.js +2 -0
- package/dist/client/config.js.map +1 -1
- package/dist/client/hooks/use-agent-picker-labels.d.ts.map +1 -1
- package/dist/client/hooks/use-agent-picker-labels.js +4 -12
- package/dist/client/hooks/use-agent-picker-labels.js.map +1 -1
- package/dist/client/hooks/use-quota-expiry.d.ts +7 -0
- package/dist/client/hooks/use-quota-expiry.d.ts.map +1 -0
- package/dist/client/hooks/use-quota-expiry.js +92 -0
- package/dist/client/hooks/use-quota-expiry.js.map +1 -0
- package/dist/client/hooks/use-realtime-topic.d.ts +1 -4
- package/dist/client/hooks/use-realtime-topic.d.ts.map +1 -1
- package/dist/client/hooks/use-realtime-topic.js +7 -11
- package/dist/client/hooks/use-realtime-topic.js.map +1 -1
- package/dist/client/kit.d.ts +14 -12
- package/dist/client/kit.d.ts.map +1 -1
- package/dist/client/kit.js +37 -14
- package/dist/client/kit.js.map +1 -1
- package/dist/client/lib/agents.d.ts +5 -18
- package/dist/client/lib/agents.d.ts.map +1 -1
- package/dist/client/lib/agents.js +18 -55
- package/dist/client/lib/agents.js.map +1 -1
- package/dist/client/lib/format.d.ts +3 -1
- package/dist/client/lib/format.d.ts.map +1 -1
- package/dist/client/lib/format.js +25 -0
- package/dist/client/lib/format.js.map +1 -1
- package/dist/client/lib/skill-settings-context.d.ts +9 -0
- package/dist/client/lib/skill-settings-context.d.ts.map +1 -0
- package/dist/client/lib/skill-settings-context.js +4 -0
- package/dist/client/lib/skill-settings-context.js.map +1 -0
- package/dist/client/lib/skill-settings.d.ts +12 -0
- package/dist/client/lib/skill-settings.d.ts.map +1 -0
- package/dist/client/lib/skill-settings.js +37 -0
- package/dist/client/lib/skill-settings.js.map +1 -0
- package/dist/client/locales/chat.en-US.d.ts +8 -27
- package/dist/client/locales/chat.en-US.d.ts.map +1 -1
- package/dist/client/locales/chat.en-US.js +12 -30
- package/dist/client/locales/chat.en-US.js.map +1 -1
- package/dist/client/locales/chat.zh-CN.d.ts.map +1 -1
- package/dist/client/locales/chat.zh-CN.js +9 -27
- package/dist/client/locales/chat.zh-CN.js.map +1 -1
- package/dist/client/locales/en-US.d.ts +87 -217
- package/dist/client/locales/en-US.d.ts.map +1 -1
- package/dist/client/locales/en-US.js +92 -218
- package/dist/client/locales/en-US.js.map +1 -1
- package/dist/client/locales/runWait.en-US.d.ts +7 -0
- package/dist/client/locales/runWait.en-US.d.ts.map +1 -1
- package/dist/client/locales/runWait.en-US.js +10 -3
- package/dist/client/locales/runWait.en-US.js.map +1 -1
- package/dist/client/locales/runWait.zh-CN.d.ts +1 -1
- package/dist/client/locales/runWait.zh-CN.d.ts.map +1 -1
- package/dist/client/locales/runWait.zh-CN.js +11 -4
- package/dist/client/locales/runWait.zh-CN.js.map +1 -1
- package/dist/client/locales/runtimes.en-US.d.ts +83 -0
- package/dist/client/locales/runtimes.en-US.d.ts.map +1 -1
- package/dist/client/locales/runtimes.en-US.js +84 -1
- package/dist/client/locales/runtimes.en-US.js.map +1 -1
- package/dist/client/locales/runtimes.zh-CN.d.ts.map +1 -1
- package/dist/client/locales/runtimes.zh-CN.js +83 -0
- package/dist/client/locales/runtimes.zh-CN.js.map +1 -1
- package/dist/client/locales/skills.en-US.d.ts +7 -0
- package/dist/client/locales/skills.en-US.d.ts.map +1 -1
- package/dist/client/locales/skills.en-US.js +8 -1
- package/dist/client/locales/skills.en-US.js.map +1 -1
- package/dist/client/locales/skills.zh-CN.d.ts.map +1 -1
- package/dist/client/locales/skills.zh-CN.js +8 -1
- package/dist/client/locales/skills.zh-CN.js.map +1 -1
- package/dist/client/locales/zh-CN.d.ts.map +1 -1
- package/dist/client/locales/zh-CN.js +94 -220
- package/dist/client/locales/zh-CN.js.map +1 -1
- package/dist/client/online/services.d.ts.map +1 -1
- package/dist/client/online/services.js +5 -6
- package/dist/client/online/services.js.map +1 -1
- package/dist/client/pages/agents/agent-dialog.d.ts +9 -0
- package/dist/client/pages/agents/agent-dialog.d.ts.map +1 -0
- package/dist/client/pages/agents/agent-dialog.js +106 -0
- package/dist/client/pages/agents/agent-dialog.js.map +1 -0
- package/dist/client/pages/agents/agent-state.d.ts +11 -0
- package/dist/client/pages/agents/agent-state.d.ts.map +1 -0
- package/dist/client/pages/agents/agent-state.js +28 -0
- package/dist/client/pages/agents/agent-state.js.map +1 -0
- package/dist/client/pages/agents/index.d.ts +1 -1
- package/dist/client/pages/agents/index.d.ts.map +1 -1
- package/dist/client/pages/agents/index.js +7 -101
- package/dist/client/pages/agents/index.js.map +1 -1
- package/dist/client/pages/agents/runner-agents.d.ts +3 -0
- package/dist/client/pages/agents/runner-agents.d.ts.map +1 -0
- package/dist/client/pages/agents/runner-agents.js +185 -0
- package/dist/client/pages/agents/runner-agents.js.map +1 -0
- package/dist/client/pages/runtimes/connect.js.map +1 -1
- package/dist/client/pages/runtimes/index.d.ts.map +1 -1
- package/dist/client/pages/runtimes/index.js +1 -1
- package/dist/client/pages/runtimes/index.js.map +1 -1
- package/dist/client/pages/runtimes/quota-targets.d.ts +4 -0
- package/dist/client/pages/runtimes/quota-targets.d.ts.map +1 -0
- package/dist/client/pages/runtimes/quota-targets.js +18 -0
- package/dist/client/pages/runtimes/quota-targets.js.map +1 -0
- package/dist/client/pages/runtimes/quota.d.ts +17 -0
- package/dist/client/pages/runtimes/quota.d.ts.map +1 -0
- package/dist/client/pages/runtimes/quota.js +50 -0
- package/dist/client/pages/runtimes/quota.js.map +1 -0
- package/dist/client/pages/runtimes/runner-cells.d.ts +11 -4
- package/dist/client/pages/runtimes/runner-cells.d.ts.map +1 -1
- package/dist/client/pages/runtimes/runner-cells.js +6 -3
- package/dist/client/pages/runtimes/runner-cells.js.map +1 -1
- package/dist/client/pages/runtimes/runner-overview.d.ts +9 -0
- package/dist/client/pages/runtimes/runner-overview.d.ts.map +1 -0
- package/dist/client/pages/runtimes/runner-overview.js +109 -0
- package/dist/client/pages/runtimes/runner-overview.js.map +1 -0
- package/dist/client/pages/runtimes/runner-runs.d.ts +5 -0
- package/dist/client/pages/runtimes/runner-runs.d.ts.map +1 -0
- package/dist/client/pages/runtimes/runner-runs.js +35 -0
- package/dist/client/pages/runtimes/runner-runs.js.map +1 -0
- package/dist/client/pages/runtimes/runner-sheet.d.ts +2 -3
- package/dist/client/pages/runtimes/runner-sheet.d.ts.map +1 -1
- package/dist/client/pages/runtimes/runner-sheet.js +43 -171
- package/dist/client/pages/runtimes/runner-sheet.js.map +1 -1
- package/dist/client/pages/runtimes/runner-tools.d.ts +17 -0
- package/dist/client/pages/runtimes/runner-tools.d.ts.map +1 -0
- package/dist/client/pages/runtimes/runner-tools.js +75 -0
- package/dist/client/pages/runtimes/runner-tools.js.map +1 -0
- package/dist/client/pages/runtimes/runner-workspaces.d.ts +6 -0
- package/dist/client/pages/runtimes/runner-workspaces.d.ts.map +1 -0
- package/dist/client/pages/runtimes/runner-workspaces.js +37 -0
- package/dist/client/pages/runtimes/runner-workspaces.js.map +1 -0
- package/dist/client/pages/runtimes/tool-slots-fields.js +1 -1
- package/dist/client/pages/runtimes/tool-slots-fields.js.map +1 -1
- package/dist/client/pages/runtimes/workspace-diagnostics.d.ts +6 -4
- package/dist/client/pages/runtimes/workspace-diagnostics.d.ts.map +1 -1
- package/dist/client/pages/runtimes/workspace-diagnostics.js +67 -33
- package/dist/client/pages/runtimes/workspace-diagnostics.js.map +1 -1
- package/dist/client/pages/skills/detail/index.d.ts.map +1 -1
- package/dist/client/pages/skills/detail/index.js +11 -15
- package/dist/client/pages/skills/detail/index.js.map +1 -1
- package/dist/client/pages/skills/index.d.ts.map +1 -1
- package/dist/client/pages/skills/index.js +2 -2
- package/dist/client/pages/skills/index.js.map +1 -1
- package/dist/client/pages/usage/index.js +2 -2
- package/dist/client/pages/usage/index.js.map +1 -1
- package/dist/client/profile/default-agent.d.ts.map +1 -1
- package/dist/client/profile/default-agent.js +2 -4
- package/dist/client/profile/default-agent.js.map +1 -1
- package/dist/client/routes.d.ts +1 -1
- package/dist/client/routes.d.ts.map +1 -1
- package/dist/client/routes.js +1 -13
- package/dist/client/routes.js.map +1 -1
- package/dist/client/runs/format-wait.d.ts.map +1 -1
- package/dist/client/runs/format-wait.js +15 -1
- package/dist/client/runs/format-wait.js.map +1 -1
- package/dist/client/runs/subject-runs.d.ts +5 -0
- package/dist/client/runs/subject-runs.d.ts.map +1 -1
- package/dist/client/runs/subject-runs.js +24 -9
- package/dist/client/runs/subject-runs.js.map +1 -1
- package/dist/client/runs/use-run-events.d.ts +1 -1
- package/dist/client/runs/use-run-events.d.ts.map +1 -1
- package/dist/client/runs/use-run-events.js +5 -2
- package/dist/client/runs/use-run-events.js.map +1 -1
- package/dist/client/runs.d.ts +1 -1
- package/dist/client/runs.d.ts.map +1 -1
- package/dist/client/runs.js +1 -1
- package/dist/client/runs.js.map +1 -1
- package/dist/database/migrations/.manifest.json +38 -2
- package/dist/database/migrations/202610020003_ag_create_runs.d.ts.map +1 -1
- package/dist/database/migrations/202610020003_ag_create_runs.js +0 -1
- package/dist/database/migrations/202610020003_ag_create_runs.js.map +1 -1
- package/dist/database/migrations/202610120002_ag_add_queue_entered_at.d.ts +4 -0
- package/dist/database/migrations/202610120002_ag_add_queue_entered_at.d.ts.map +1 -0
- package/dist/database/migrations/202610120002_ag_add_queue_entered_at.js +50 -0
- package/dist/database/migrations/202610120002_ag_add_queue_entered_at.js.map +1 -0
- package/dist/database/migrations/202610170001_ag_runner_quota.d.ts +4 -0
- package/dist/database/migrations/202610170001_ag_runner_quota.d.ts.map +1 -0
- package/dist/database/migrations/202610170001_ag_runner_quota.js +19 -0
- package/dist/database/migrations/202610170001_ag_runner_quota.js.map +1 -0
- package/dist/database/migrations/202610240020_ag_runner_agents.d.ts +4 -0
- package/dist/database/migrations/202610240020_ag_runner_agents.d.ts.map +1 -0
- package/dist/database/migrations/202610240020_ag_runner_agents.js +115 -0
- package/dist/database/migrations/202610240020_ag_runner_agents.js.map +1 -0
- package/dist/database/migrations/202610240040_ag_discovery_preferences.d.ts +4 -0
- package/dist/database/migrations/202610240040_ag_discovery_preferences.d.ts.map +1 -0
- package/dist/database/migrations/202610240040_ag_discovery_preferences.js +18 -0
- package/dist/database/migrations/202610240040_ag_discovery_preferences.js.map +1 -0
- package/dist/database/migrations/202610250001_ag_comment_runner_consent.d.ts +4 -0
- package/dist/database/migrations/202610250001_ag_comment_runner_consent.d.ts.map +1 -0
- package/dist/database/migrations/202610250001_ag_comment_runner_consent.js +41 -0
- package/dist/database/migrations/202610250001_ag_comment_runner_consent.js.map +1 -0
- package/dist/database/migrations/202610260001_ag_drop_directory_index.d.ts +4 -0
- package/dist/database/migrations/202610260001_ag_drop_directory_index.d.ts.map +1 -0
- package/dist/database/migrations/202610260001_ag_drop_directory_index.js +24 -0
- package/dist/database/migrations/202610260001_ag_drop_directory_index.js.map +1 -0
- package/dist/database/migrations/202610260001_ag_run_revision.d.ts +4 -0
- package/dist/database/migrations/202610260001_ag_run_revision.d.ts.map +1 -0
- package/dist/database/migrations/202610260001_ag_run_revision.js +19 -0
- package/dist/database/migrations/202610260001_ag_run_revision.js.map +1 -0
- package/dist/database/migrations/202610270001_ag_online_agent.d.ts +4 -0
- package/dist/database/migrations/202610270001_ag_online_agent.d.ts.map +1 -0
- package/dist/database/migrations/202610270001_ag_online_agent.js +43 -0
- package/dist/database/migrations/202610270001_ag_online_agent.js.map +1 -0
- package/dist/database/migrations/202610270002_ag_chat_list_visibility.d.ts +4 -0
- package/dist/database/migrations/202610270002_ag_chat_list_visibility.d.ts.map +1 -0
- package/dist/database/migrations/202610270002_ag_chat_list_visibility.js +17 -0
- package/dist/database/migrations/202610270002_ag_chat_list_visibility.js.map +1 -0
- package/dist/package.json +34 -12
- package/dist/server/cli/run-credential.js +1 -1
- package/dist/server/cli/surface.d.ts.map +1 -1
- package/dist/server/cli/surface.js +4 -1
- package/dist/server/cli/surface.js.map +1 -1
- package/dist/server/composition.d.ts +36 -35
- package/dist/server/composition.d.ts.map +1 -1
- package/dist/server/composition.js +99 -66
- package/dist/server/composition.js.map +1 -1
- package/dist/server/core/agents/agent.service.d.ts +51 -43
- package/dist/server/core/agents/agent.service.d.ts.map +1 -1
- package/dist/server/core/agents/agent.service.js +347 -321
- package/dist/server/core/agents/agent.service.js.map +1 -1
- package/dist/server/core/agents/agent.store.d.ts +26 -12
- package/dist/server/core/agents/agent.store.d.ts.map +1 -1
- package/dist/server/core/agents/agent.store.js +74 -66
- package/dist/server/core/agents/agent.store.js.map +1 -1
- package/dist/server/core/agents/agent.views.d.ts +29 -0
- package/dist/server/core/agents/agent.views.d.ts.map +1 -0
- package/dist/server/core/agents/agent.views.js +88 -0
- package/dist/server/core/agents/agent.views.js.map +1 -0
- package/dist/server/core/agents/discovery.d.ts +12 -0
- package/dist/server/core/agents/discovery.d.ts.map +1 -0
- package/dist/server/core/agents/discovery.js +39 -0
- package/dist/server/core/agents/discovery.js.map +1 -0
- package/dist/server/core/agents/index.d.ts +3 -2
- package/dist/server/core/agents/index.d.ts.map +1 -1
- package/dist/server/core/agents/index.js +3 -2
- package/dist/server/core/agents/index.js.map +1 -1
- package/dist/server/core/brief/brief.js +3 -3
- package/dist/server/core/brief/brief.js.map +1 -1
- package/dist/server/core/callers/index.d.ts +10 -1
- package/dist/server/core/callers/index.d.ts.map +1 -1
- package/dist/server/core/callers/index.js +15 -0
- package/dist/server/core/callers/index.js.map +1 -1
- package/dist/server/core/conversations/attachments.d.ts.map +1 -1
- package/dist/server/core/conversations/attachments.js +6 -1
- package/dist/server/core/conversations/attachments.js.map +1 -1
- package/dist/server/core/conversations/availability.d.ts +6 -11
- package/dist/server/core/conversations/availability.d.ts.map +1 -1
- package/dist/server/core/conversations/availability.js +11 -15
- package/dist/server/core/conversations/availability.js.map +1 -1
- package/dist/server/core/conversations/chat-settings.d.ts +2 -2
- package/dist/server/core/conversations/chat-settings.d.ts.map +1 -1
- package/dist/server/core/conversations/chat-settings.js +17 -22
- package/dist/server/core/conversations/chat-settings.js.map +1 -1
- package/dist/server/core/conversations/conversation.service.d.ts +13 -8
- package/dist/server/core/conversations/conversation.service.d.ts.map +1 -1
- package/dist/server/core/conversations/conversation.service.js +397 -383
- package/dist/server/core/conversations/conversation.service.js.map +1 -1
- package/dist/server/core/conversations/conversation.store.d.ts +3 -0
- package/dist/server/core/conversations/conversation.store.d.ts.map +1 -1
- package/dist/server/core/conversations/conversation.store.js +2 -1
- package/dist/server/core/conversations/conversation.store.js.map +1 -1
- package/dist/server/core/conversations/page-context.d.ts +8 -2
- package/dist/server/core/conversations/page-context.d.ts.map +1 -1
- package/dist/server/core/conversations/page-context.js +61 -2
- package/dist/server/core/conversations/page-context.js.map +1 -1
- package/dist/server/core/conversations/ports.d.ts +18 -20
- package/dist/server/core/conversations/ports.d.ts.map +1 -1
- package/dist/server/core/reports/model-usage.d.ts.map +1 -1
- package/dist/server/core/reports/model-usage.js +42 -44
- package/dist/server/core/reports/model-usage.js.map +1 -1
- package/dist/server/core/reports/prices.d.ts.map +1 -1
- package/dist/server/core/reports/prices.js +29 -5
- package/dist/server/core/reports/prices.js.map +1 -1
- package/dist/server/core/reports/report.service.d.ts +4 -2
- package/dist/server/core/reports/report.service.d.ts.map +1 -1
- package/dist/server/core/reports/report.service.js +148 -66
- package/dist/server/core/reports/report.service.js.map +1 -1
- package/dist/server/core/runs/access.d.ts +5 -0
- package/dist/server/core/runs/access.d.ts.map +1 -0
- package/dist/server/core/runs/access.js +10 -0
- package/dist/server/core/runs/access.js.map +1 -0
- package/dist/server/core/runs/availability.d.ts +18 -6
- package/dist/server/core/runs/availability.d.ts.map +1 -1
- package/dist/server/core/runs/availability.js +40 -34
- package/dist/server/core/runs/availability.js.map +1 -1
- package/dist/server/core/runs/claim.d.ts +30 -106
- package/dist/server/core/runs/claim.d.ts.map +1 -1
- package/dist/server/core/runs/claim.js +630 -323
- package/dist/server/core/runs/claim.js.map +1 -1
- package/dist/server/core/runs/comment-consent.d.ts +24 -0
- package/dist/server/core/runs/comment-consent.d.ts.map +1 -0
- package/dist/server/core/runs/comment-consent.js +116 -0
- package/dist/server/core/runs/comment-consent.js.map +1 -0
- package/dist/server/core/runs/eligibility.d.ts +13 -1
- package/dist/server/core/runs/eligibility.d.ts.map +1 -1
- package/dist/server/core/runs/eligibility.js +41 -10
- package/dist/server/core/runs/eligibility.js.map +1 -1
- package/dist/server/core/runs/execution-view.d.ts +8 -0
- package/dist/server/core/runs/execution-view.d.ts.map +1 -1
- package/dist/server/core/runs/execution-view.js +9 -0
- package/dist/server/core/runs/execution-view.js.map +1 -1
- package/dist/server/core/runs/execution.d.ts +1 -1
- package/dist/server/core/runs/execution.d.ts.map +1 -1
- package/dist/server/core/runs/execution.js +8 -2
- package/dist/server/core/runs/execution.js.map +1 -1
- package/dist/server/core/runs/identity.d.ts +9 -0
- package/dist/server/core/runs/identity.d.ts.map +1 -0
- package/dist/server/core/runs/identity.js +75 -0
- package/dist/server/core/runs/identity.js.map +1 -0
- package/dist/server/core/runs/index.d.ts +6 -6
- package/dist/server/core/runs/index.d.ts.map +1 -1
- package/dist/server/core/runs/index.js +6 -6
- package/dist/server/core/runs/index.js.map +1 -1
- package/dist/server/core/runs/input-gate.d.ts +1 -1
- package/dist/server/core/runs/input-gate.d.ts.map +1 -1
- package/dist/server/core/runs/input-gate.js +4 -2
- package/dist/server/core/runs/input-gate.js.map +1 -1
- package/dist/server/core/runs/lifecycle.d.ts +16 -18
- package/dist/server/core/runs/lifecycle.d.ts.map +1 -1
- package/dist/server/core/runs/lifecycle.js +146 -60
- package/dist/server/core/runs/lifecycle.js.map +1 -1
- package/dist/server/core/runs/policy.d.ts +9 -2
- package/dist/server/core/runs/policy.d.ts.map +1 -1
- package/dist/server/core/runs/policy.js +17 -8
- package/dist/server/core/runs/policy.js.map +1 -1
- package/dist/server/core/runs/ports.d.ts +41 -31
- package/dist/server/core/runs/ports.d.ts.map +1 -1
- package/dist/server/core/runs/ports.js +2 -13
- package/dist/server/core/runs/ports.js.map +1 -1
- package/dist/server/core/runs/preview.d.ts.map +1 -1
- package/dist/server/core/runs/preview.js +1 -3
- package/dist/server/core/runs/preview.js.map +1 -1
- package/dist/server/core/runs/run-data-purge.d.ts +15 -0
- package/dist/server/core/runs/run-data-purge.d.ts.map +1 -0
- package/dist/server/core/runs/run-data-purge.js +82 -0
- package/dist/server/core/runs/run-data-purge.js.map +1 -0
- package/dist/server/core/runs/run-requests.d.ts +25 -0
- package/dist/server/core/runs/run-requests.d.ts.map +1 -1
- package/dist/server/core/runs/run-requests.js +131 -64
- package/dist/server/core/runs/run-requests.js.map +1 -1
- package/dist/server/core/runs/run.service.d.ts +31 -2
- package/dist/server/core/runs/run.service.d.ts.map +1 -1
- package/dist/server/core/runs/run.service.js +638 -74
- package/dist/server/core/runs/run.service.js.map +1 -1
- package/dist/server/core/runs/run.store.d.ts +11 -0
- package/dist/server/core/runs/run.store.d.ts.map +1 -1
- package/dist/server/core/runs/run.store.js +39 -11
- package/dist/server/core/runs/run.store.js.map +1 -1
- package/dist/server/core/runs/runner-view.d.ts +12 -2
- package/dist/server/core/runs/runner-view.d.ts.map +1 -1
- package/dist/server/core/runs/runner-view.js +55 -13
- package/dist/server/core/runs/runner-view.js.map +1 -1
- package/dist/server/core/runs/selection.d.ts +13 -0
- package/dist/server/core/runs/selection.d.ts.map +1 -0
- package/dist/server/core/runs/selection.js +21 -0
- package/dist/server/core/runs/selection.js.map +1 -0
- package/dist/server/core/runs/sweeper.d.ts +1 -0
- package/dist/server/core/runs/sweeper.d.ts.map +1 -1
- package/dist/server/core/runs/sweeper.js +66 -17
- package/dist/server/core/runs/sweeper.js.map +1 -1
- package/dist/server/core/runs/transitions.d.ts +6 -2
- package/dist/server/core/runs/transitions.d.ts.map +1 -1
- package/dist/server/core/runs/transitions.js +73 -19
- package/dist/server/core/runs/transitions.js.map +1 -1
- package/dist/server/core/runs/workload.d.ts +17 -5
- package/dist/server/core/runs/workload.d.ts.map +1 -1
- package/dist/server/core/runs/workload.js +203 -68
- package/dist/server/core/runs/workload.js.map +1 -1
- package/dist/server/core/skills/skill.service.d.ts +6 -2
- package/dist/server/core/skills/skill.service.d.ts.map +1 -1
- package/dist/server/core/skills/skill.service.js +87 -66
- package/dist/server/core/skills/skill.service.js.map +1 -1
- package/dist/server/core/skills/skill.store.d.ts +14 -0
- package/dist/server/core/skills/skill.store.d.ts.map +1 -1
- package/dist/server/core/skills/skill.store.js +30 -0
- package/dist/server/core/skills/skill.store.js.map +1 -1
- package/dist/server/core/transaction-read.d.ts +4 -0
- package/dist/server/core/transaction-read.d.ts.map +1 -0
- package/dist/server/core/transaction-read.js +30 -0
- package/dist/server/core/transaction-read.js.map +1 -0
- package/dist/server/core/variables/index.d.ts +1 -1
- package/dist/server/core/variables/index.d.ts.map +1 -1
- package/dist/server/core/variables/index.js.map +1 -1
- package/dist/server/core/variables/variable.service.d.ts +18 -0
- package/dist/server/core/variables/variable.service.d.ts.map +1 -1
- package/dist/server/core/variables/variable.service.js +95 -20
- package/dist/server/core/variables/variable.service.js.map +1 -1
- package/dist/server/index.d.ts +4 -0
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +3 -0
- package/dist/server/index.js.map +1 -1
- package/dist/server/jobs/job.service.d.ts +1 -1
- package/dist/server/jobs/job.service.d.ts.map +1 -1
- package/dist/server/jobs/job.service.js +8 -2
- package/dist/server/jobs/job.service.js.map +1 -1
- package/dist/server/kernel/events.d.ts +7 -3
- package/dist/server/kernel/events.d.ts.map +1 -1
- package/dist/server/kernel/events.js.map +1 -1
- package/dist/server/kernel/scopes.d.ts +6 -0
- package/dist/server/kernel/scopes.d.ts.map +1 -1
- package/dist/server/kernel/scopes.js +3 -1
- package/dist/server/kernel/scopes.js.map +1 -1
- package/dist/server/online/agent/configuration.d.ts +26 -0
- package/dist/server/online/agent/configuration.d.ts.map +1 -0
- package/dist/server/online/agent/configuration.js +261 -0
- package/dist/server/online/agent/configuration.js.map +1 -0
- package/dist/server/online/agent/contracts.d.ts +87 -0
- package/dist/server/online/agent/contracts.d.ts.map +1 -0
- package/dist/server/online/agent/contracts.js +2 -0
- package/dist/server/online/agent/contracts.js.map +1 -0
- package/dist/server/online/agent/errors.d.ts +11 -0
- package/dist/server/online/agent/errors.d.ts.map +1 -0
- package/dist/server/online/agent/errors.js +21 -0
- package/dist/server/online/agent/errors.js.map +1 -0
- package/dist/server/online/agent/index.d.ts +11 -0
- package/dist/server/online/agent/index.d.ts.map +1 -0
- package/dist/server/online/agent/index.js +9 -0
- package/dist/server/online/agent/index.js.map +1 -0
- package/dist/server/online/agent/messages/json.d.ts +5 -0
- package/dist/server/online/agent/messages/json.d.ts.map +1 -0
- package/dist/server/online/agent/messages/json.js +88 -0
- package/dist/server/online/agent/messages/json.js.map +1 -0
- package/dist/server/online/agent/messages/projection.d.ts +20 -0
- package/dist/server/online/agent/messages/projection.d.ts.map +1 -0
- package/dist/server/online/agent/messages/projection.js +495 -0
- package/dist/server/online/agent/messages/projection.js.map +1 -0
- package/dist/server/online/agent/messages/validation.d.ts +7 -0
- package/dist/server/online/agent/messages/validation.d.ts.map +1 -0
- package/dist/server/online/agent/messages/validation.js +159 -0
- package/dist/server/online/agent/messages/validation.js.map +1 -0
- package/dist/server/online/agent/native/backend.d.ts +60 -0
- package/dist/server/online/agent/native/backend.d.ts.map +1 -0
- package/dist/server/online/agent/native/backend.js +411 -0
- package/dist/server/online/agent/native/backend.js.map +1 -0
- package/dist/server/online/agent/native/execution.d.ts +41 -0
- package/dist/server/online/agent/native/execution.d.ts.map +1 -0
- package/dist/server/online/agent/native/execution.js +430 -0
- package/dist/server/online/agent/native/execution.js.map +1 -0
- package/dist/server/online/agent/native/session.d.ts +40 -0
- package/dist/server/online/agent/native/session.d.ts.map +1 -0
- package/dist/server/online/agent/native/session.js +104 -0
- package/dist/server/online/agent/native/session.js.map +1 -0
- package/dist/server/online/agent/native/types.d.ts +32 -0
- package/dist/server/online/agent/native/types.d.ts.map +1 -0
- package/dist/server/online/agent/native/types.js +2 -0
- package/dist/server/online/agent/native/types.js.map +1 -0
- package/dist/server/online/agent/persistence/manager.d.ts +16 -0
- package/dist/server/online/agent/persistence/manager.d.ts.map +1 -0
- package/dist/server/online/agent/persistence/manager.js +209 -0
- package/dist/server/online/agent/persistence/manager.js.map +1 -0
- package/dist/server/online/agent/persistence/state.d.ts +11 -0
- package/dist/server/online/agent/persistence/state.d.ts.map +1 -0
- package/dist/server/online/agent/persistence/state.js +45 -0
- package/dist/server/online/agent/persistence/state.js.map +1 -0
- package/dist/server/online/agent/persistence/store.d.ts +58 -0
- package/dist/server/online/agent/persistence/store.d.ts.map +1 -0
- package/dist/server/online/agent/persistence/store.js +634 -0
- package/dist/server/online/agent/persistence/store.js.map +1 -0
- package/dist/server/online/agent/persistence/types.d.ts +44 -0
- package/dist/server/online/agent/persistence/types.d.ts.map +1 -0
- package/dist/server/online/agent/persistence/types.js +2 -0
- package/dist/server/online/agent/persistence/types.js.map +1 -0
- package/dist/server/online/agent/runner/backend.d.ts +57 -0
- package/dist/server/online/agent/runner/backend.d.ts.map +1 -0
- package/dist/server/online/agent/runner/backend.js +501 -0
- package/dist/server/online/agent/runner/backend.js.map +1 -0
- package/dist/server/online/agent/runner/projection.d.ts +10 -0
- package/dist/server/online/agent/runner/projection.d.ts.map +1 -0
- package/dist/server/online/agent/runner/projection.js +171 -0
- package/dist/server/online/agent/runner/projection.js.map +1 -0
- package/dist/server/online/agent/runner/types.d.ts +44 -0
- package/dist/server/online/agent/runner/types.d.ts.map +1 -0
- package/dist/server/online/agent/runner/types.js +2 -0
- package/dist/server/online/agent/runner/types.js.map +1 -0
- package/dist/server/online/agent/service.d.ts +47 -0
- package/dist/server/online/agent/service.d.ts.map +1 -0
- package/dist/server/online/agent/service.js +111 -0
- package/dist/server/online/agent/service.js.map +1 -0
- package/dist/server/online/agent/transport/streams.d.ts +54 -0
- package/dist/server/online/agent/transport/streams.d.ts.map +1 -0
- package/dist/server/online/agent/transport/streams.js +440 -0
- package/dist/server/online/agent/transport/streams.js.map +1 -0
- package/dist/server/online/agent/types.d.ts +155 -0
- package/dist/server/online/agent/types.d.ts.map +1 -0
- package/dist/server/online/agent/types.js +2 -0
- package/dist/server/online/agent/types.js.map +1 -0
- package/dist/server/online/index.d.ts +0 -5
- package/dist/server/online/index.d.ts.map +1 -1
- package/dist/server/online/index.js +0 -5
- package/dist/server/online/index.js.map +1 -1
- package/dist/server/online/providers.d.ts.map +1 -1
- package/dist/server/online/providers.js +26 -2
- package/dist/server/online/providers.js.map +1 -1
- package/dist/server/online/routes.d.ts.map +1 -1
- package/dist/server/online/routes.js +6 -35
- package/dist/server/online/routes.js.map +1 -1
- package/dist/server/online/services.d.ts.map +1 -1
- package/dist/server/online/services.js +101 -24
- package/dist/server/online/services.js.map +1 -1
- package/dist/server/providers/agents.d.ts +18 -25
- package/dist/server/providers/agents.d.ts.map +1 -1
- package/dist/server/providers/agents.js +72 -101
- package/dist/server/providers/agents.js.map +1 -1
- package/dist/server/providers/runners.d.ts +3 -1
- package/dist/server/providers/runners.d.ts.map +1 -1
- package/dist/server/providers/runners.js +38 -9
- package/dist/server/providers/runners.js.map +1 -1
- package/dist/server/routes/admin.d.ts +4 -0
- package/dist/server/routes/admin.d.ts.map +1 -1
- package/dist/server/routes/admin.js +131 -209
- package/dist/server/routes/admin.js.map +1 -1
- package/dist/server/routes/chat.d.ts.map +1 -1
- package/dist/server/routes/chat.js +313 -164
- package/dist/server/routes/chat.js.map +1 -1
- package/dist/server/routes/index.d.ts.map +1 -1
- package/dist/server/routes/index.js +8 -0
- package/dist/server/routes/index.js.map +1 -1
- package/dist/server/routes/roster.d.ts.map +1 -1
- package/dist/server/routes/roster.js +6 -22
- package/dist/server/routes/roster.js.map +1 -1
- package/dist/server/routes/run-requests.js +3 -3
- package/dist/server/routes/run-requests.js.map +1 -1
- package/dist/server/routes/runners/admin.d.ts.map +1 -1
- package/dist/server/routes/runners/admin.js +219 -25
- package/dist/server/routes/runners/admin.js.map +1 -1
- package/dist/server/routes/runners/install.d.ts.map +1 -1
- package/dist/server/routes/runners/install.js +7 -2
- package/dist/server/routes/runners/install.js.map +1 -1
- package/dist/server/routes/runners/runner.d.ts.map +1 -1
- package/dist/server/routes/runners/runner.js +2 -0
- package/dist/server/routes/runners/runner.js.map +1 -1
- package/dist/server/routes/schemas.d.ts +18 -10
- package/dist/server/routes/schemas.d.ts.map +1 -1
- package/dist/server/routes/schemas.js +497 -153
- package/dist/server/routes/schemas.js.map +1 -1
- package/dist/server/runners/runner.service.d.ts +47 -4
- package/dist/server/runners/runner.service.d.ts.map +1 -1
- package/dist/server/runners/runner.service.js +423 -79
- package/dist/server/runners/runner.service.js.map +1 -1
- package/dist/server/runners/runner.store.d.ts +8 -3
- package/dist/server/runners/runner.store.d.ts.map +1 -1
- package/dist/server/runners/runner.store.js +63 -6
- package/dist/server/runners/runner.store.js.map +1 -1
- package/dist/server/runners/slots.d.ts +5 -2
- package/dist/server/runners/slots.d.ts.map +1 -1
- package/dist/server/runners/slots.js +3 -4
- package/dist/server/runners/slots.js.map +1 -1
- package/dist/server/runners/workspaces.d.ts.map +1 -1
- package/dist/server/runners/workspaces.js +18 -2
- package/dist/server/runners/workspaces.js.map +1 -1
- package/dist/server/testing.d.ts +0 -2
- package/dist/server/testing.d.ts.map +1 -1
- package/dist/server/testing.js +1 -4
- package/dist/server/testing.js.map +1 -1
- package/dist/server/tokens.d.ts +8 -7
- package/dist/server/tokens.d.ts.map +1 -1
- package/dist/server/tokens.js +4 -2
- package/dist/server/tokens.js.map +1 -1
- package/dist/shared/access.d.ts +2 -6
- package/dist/shared/access.d.ts.map +1 -1
- package/dist/shared/access.js +2 -6
- package/dist/shared/access.js.map +1 -1
- package/dist/shared/agents.d.ts +131 -169
- package/dist/shared/agents.d.ts.map +1 -1
- package/dist/shared/agents.js +36 -102
- package/dist/shared/agents.js.map +1 -1
- package/dist/shared/conversations.d.ts +93 -170
- package/dist/shared/conversations.d.ts.map +1 -1
- package/dist/shared/conversations.js +8 -30
- package/dist/shared/conversations.js.map +1 -1
- package/dist/shared/model-catalog.d.ts +53 -0
- package/dist/shared/model-catalog.d.ts.map +1 -0
- package/dist/shared/model-catalog.js +182 -0
- package/dist/shared/model-catalog.js.map +1 -0
- package/dist/shared/online-agent.d.ts +3 -0
- package/dist/shared/online-agent.d.ts.map +1 -0
- package/dist/shared/online-agent.js +3 -0
- package/dist/shared/online-agent.js.map +1 -0
- package/dist/shared/page-ui-context.d.ts +26 -0
- package/dist/shared/page-ui-context.d.ts.map +1 -0
- package/dist/shared/page-ui-context.js +129 -0
- package/dist/shared/page-ui-context.js.map +1 -0
- package/dist/shared/quota.d.ts +15 -0
- package/dist/shared/quota.d.ts.map +1 -0
- package/dist/shared/quota.js +2 -0
- package/dist/shared/quota.js.map +1 -0
- package/dist/shared/runners.d.ts +132 -14
- package/dist/shared/runners.d.ts.map +1 -1
- package/dist/shared/runners.js +171 -11
- package/dist/shared/runners.js.map +1 -1
- package/dist/shared/runs.d.ts +57 -1
- package/dist/shared/runs.d.ts.map +1 -1
- package/dist/shared/runs.js +28 -0
- package/dist/shared/runs.js.map +1 -1
- package/dist/shared/skills.d.ts +11 -5
- package/dist/shared/skills.d.ts.map +1 -1
- package/dist/shared/skills.js +7 -2
- package/dist/shared/skills.js.map +1 -1
- package/dist/shared/ui-message.d.ts +80 -0
- package/dist/shared/ui-message.d.ts.map +1 -0
- package/dist/shared/ui-message.js +153 -0
- package/dist/shared/ui-message.js.map +1 -0
- package/dist/shared/variables.js +1 -1
- package/dist/shared/variables.js.map +1 -1
- package/docs/ai-forms.md +346 -0
- package/docs/execution-history.md +19 -0
- package/docs/mysql-installation-upgrade.md +7 -0
- package/docs/runner-agents.md +27 -0
- package/docs/ui-message-clients.md +80 -0
- package/docs/ui-messages.md +209 -0
- package/docs/workspace-cleanup.md +13 -0
- package/package.json +41 -27
- package/skills/nocobase-app-plugin-agents/SKILL.md +16 -13
- package/skills/nocobase-app-plugin-agents/references/agents.md +30 -0
- package/skills/nocobase-app-plugin-agents/references/extension-points.md +21 -21
- package/skills/nocobase-app-plugin-agents/references/model-services.md +17 -0
- package/skills/nocobase-app-plugin-agents/references/online-agent.md +216 -0
- package/skills/nocobase-app-plugin-agents/references/runners.md +12 -0
- package/skills/nocobase-app-plugin-agents/references/setup-and-config.md +6 -7
- package/skills/nocobase-app-plugin-agents/references/variables-skills-usage.md +6 -4
- package/skills/nocobase-app-plugin-agents/references/verification-and-troubleshooting.md +29 -32
- package/dist/client/chat/settings-section.d.ts +0 -5
- package/dist/client/chat/settings-section.d.ts.map +0 -1
- package/dist/client/chat/settings-section.js +0 -86
- package/dist/client/chat/settings-section.js.map +0 -1
- package/dist/client/components/agent-fields.d.ts +0 -45
- package/dist/client/components/agent-fields.d.ts.map +0 -1
- package/dist/client/components/agent-fields.js +0 -83
- package/dist/client/components/agent-fields.js.map +0 -1
- package/dist/client/components/agent-type.d.ts +0 -32
- package/dist/client/components/agent-type.d.ts.map +0 -1
- package/dist/client/components/agent-type.js +0 -80
- package/dist/client/components/agent-type.js.map +0 -1
- package/dist/client/components/model-entries.d.ts +0 -44
- package/dist/client/components/model-entries.d.ts.map +0 -1
- package/dist/client/components/model-entries.js +0 -104
- package/dist/client/components/model-entries.js.map +0 -1
- package/dist/client/hooks/use-agent-save.d.ts +0 -9
- package/dist/client/hooks/use-agent-save.d.ts.map +0 -1
- package/dist/client/hooks/use-agent-save.js +0 -40
- package/dist/client/hooks/use-agent-save.js.map +0 -1
- package/dist/client/hooks/use-model-catalog.d.ts +0 -9
- package/dist/client/hooks/use-model-catalog.d.ts.map +0 -1
- package/dist/client/hooks/use-model-catalog.js +0 -27
- package/dist/client/hooks/use-model-catalog.js.map +0 -1
- package/dist/client/lib/model-suggestions.d.ts +0 -28
- package/dist/client/lib/model-suggestions.d.ts.map +0 -1
- package/dist/client/lib/model-suggestions.js +0 -44
- package/dist/client/lib/model-suggestions.js.map +0 -1
- package/dist/client/lib/tool-policy.d.ts +0 -3
- package/dist/client/lib/tool-policy.d.ts.map +0 -1
- package/dist/client/lib/tool-policy.js +0 -5
- package/dist/client/lib/tool-policy.js.map +0 -1
- package/dist/client/online/default-model.d.ts +0 -5
- package/dist/client/online/default-model.d.ts.map +0 -1
- package/dist/client/online/default-model.js +0 -65
- package/dist/client/online/default-model.js.map +0 -1
- package/dist/client/pages/agents/agent-model.d.ts +0 -69
- package/dist/client/pages/agents/agent-model.d.ts.map +0 -1
- package/dist/client/pages/agents/agent-model.js +0 -153
- package/dist/client/pages/agents/agent-model.js.map +0 -1
- package/dist/client/pages/agents/detail/brief-preview.d.ts +0 -7
- package/dist/client/pages/agents/detail/brief-preview.d.ts.map +0 -1
- package/dist/client/pages/agents/detail/brief-preview.js +0 -43
- package/dist/client/pages/agents/detail/brief-preview.js.map +0 -1
- package/dist/client/pages/agents/detail/history.d.ts +0 -11
- package/dist/client/pages/agents/detail/history.d.ts.map +0 -1
- package/dist/client/pages/agents/detail/history.js +0 -149
- package/dist/client/pages/agents/detail/history.js.map +0 -1
- package/dist/client/pages/agents/detail/index.d.ts +0 -3
- package/dist/client/pages/agents/detail/index.d.ts.map +0 -1
- package/dist/client/pages/agents/detail/index.js +0 -241
- package/dist/client/pages/agents/detail/index.js.map +0 -1
- package/dist/client/pages/agents/detail/sections.d.ts +0 -21
- package/dist/client/pages/agents/detail/sections.d.ts.map +0 -1
- package/dist/client/pages/agents/detail/sections.js +0 -280
- package/dist/client/pages/agents/detail/sections.js.map +0 -1
- package/dist/client/pages/agents/detail/tab-draft.d.ts +0 -43
- package/dist/client/pages/agents/detail/tab-draft.d.ts.map +0 -1
- package/dist/client/pages/agents/detail/tab-draft.js +0 -115
- package/dist/client/pages/agents/detail/tab-draft.js.map +0 -1
- package/dist/client/pages/agents/detail/unsaved-bar.d.ts +0 -13
- package/dist/client/pages/agents/detail/unsaved-bar.d.ts.map +0 -1
- package/dist/client/pages/agents/detail/unsaved-bar.js +0 -21
- package/dist/client/pages/agents/detail/unsaved-bar.js.map +0 -1
- package/dist/client/pages/agents/new.d.ts +0 -3
- package/dist/client/pages/agents/new.d.ts.map +0 -1
- package/dist/client/pages/agents/new.js +0 -149
- package/dist/client/pages/agents/new.js.map +0 -1
- package/dist/client/pages/agents/preset-picker.d.ts +0 -8
- package/dist/client/pages/agents/preset-picker.d.ts.map +0 -1
- package/dist/client/pages/agents/preset-picker.js +0 -41
- package/dist/client/pages/agents/preset-picker.js.map +0 -1
- package/dist/server/core/consultations/consultation.service.d.ts +0 -59
- package/dist/server/core/consultations/consultation.service.d.ts.map +0 -1
- package/dist/server/core/consultations/consultation.service.js +0 -198
- package/dist/server/core/consultations/consultation.service.js.map +0 -1
- package/dist/server/core/consultations/index.d.ts +0 -3
- package/dist/server/core/consultations/index.d.ts.map +0 -1
- package/dist/server/core/consultations/index.js +0 -3
- package/dist/server/core/consultations/index.js.map +0 -1
- package/dist/server/core/consultations/prompt.d.ts +0 -41
- package/dist/server/core/consultations/prompt.d.ts.map +0 -1
- package/dist/server/core/consultations/prompt.js +0 -64
- package/dist/server/core/consultations/prompt.js.map +0 -1
- package/dist/server/core/presets/index.d.ts +0 -19
- package/dist/server/core/presets/index.d.ts.map +0 -1
- package/dist/server/core/presets/index.js +0 -28
- package/dist/server/core/presets/index.js.map +0 -1
- package/dist/server/online/cli-command.d.ts +0 -20
- package/dist/server/online/cli-command.d.ts.map +0 -1
- package/dist/server/online/cli-command.js +0 -345
- package/dist/server/online/cli-command.js.map +0 -1
- package/dist/server/online/consult-tool.d.ts +0 -54
- package/dist/server/online/consult-tool.d.ts.map +0 -1
- package/dist/server/online/consult-tool.js +0 -177
- package/dist/server/online/consult-tool.js.map +0 -1
- package/dist/server/online/executor.d.ts +0 -83
- package/dist/server/online/executor.d.ts.map +0 -1
- package/dist/server/online/executor.js +0 -714
- package/dist/server/online/executor.js.map +0 -1
- package/dist/server/online/sandbox.d.ts +0 -32
- package/dist/server/online/sandbox.d.ts.map +0 -1
- package/dist/server/online/sandbox.js +0 -246
- package/dist/server/online/sandbox.js.map +0 -1
- package/dist/server/online/scripted.d.ts +0 -12
- package/dist/server/online/scripted.d.ts.map +0 -1
- package/dist/server/online/scripted.js +0 -176
- package/dist/server/online/scripted.js.map +0 -1
- package/dist/server/online/tools.d.ts +0 -17
- package/dist/server/online/tools.d.ts.map +0 -1
- package/dist/server/online/tools.js +0 -31
- package/dist/server/online/tools.js.map +0 -1
- package/dist/server/vendor/THIRD_PARTY_LICENSES.txt +0 -782
- package/dist/server/vendor/just-bash.d.ts +0 -83
- package/dist/server/vendor/just-bash.js +0 -2102
- package/dist/shared/presets.d.ts +0 -30
- package/dist/shared/presets.d.ts.map +0 -1
- package/dist/shared/presets.js +0 -2
- package/dist/shared/presets.js.map +0 -1
- package/skills/nocobase-app-plugin-agents/references/online-agents.md +0 -31
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The chat API, mounted at `/api/agents` (`CHAT_ROUTES` in `shared/conversations`)
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* team's default chat agent needs `agents.agents` manage; reading presets needs `agents.agents` read.
|
|
2
|
+
* The chat API, mounted at `/api/agents` (`CHAT_ROUTES` in `shared/conversations`). Every route is behind the guard (a
|
|
3
|
+
* signed-in person and their authorization context). A conversation is its owner's alone: the service answers 404 to
|
|
4
|
+
* anyone else, whatever they may manage. Changing the team's default chat agent needs `agents.agents` manage.
|
|
6
5
|
*/
|
|
7
6
|
import { apiErrorResponse, apiErrorResponses, apiValidator, cliRoute, dataResponse, describeRoute, emptyResponse, listResponse, } from '@nocobase/app-server/router';
|
|
7
|
+
import { createUIMessageStreamResponse } from 'ai';
|
|
8
|
+
import { appUIMessageMetadataSchema, appUIToolApprovalInputSchema, } from '../../shared/online-agent.js';
|
|
9
|
+
import { cleanTitle } from '../core/conversations/titles.js';
|
|
10
|
+
import { jsonSafe } from '../online/agent/messages/json.js';
|
|
8
11
|
import { bodyLimit } from 'hono/body-limit';
|
|
9
12
|
import { z } from 'zod';
|
|
10
13
|
import { CHAT_ATTACHMENT_SIZE_MAX, CHAT_ATTACHMENTS_PER_MESSAGE_MAX, CONVERSATION_SOURCE_PATTERN, CONVERSATION_TITLE_MAX, MESSAGE_CONTENT_MAX, } from '../../shared/conversations.js';
|
|
@@ -14,59 +17,100 @@ import { fileTooLarge } from '../core/conversations/attachments.js';
|
|
|
14
17
|
import { forbidden, invalid } from '../kernel/errors.js';
|
|
15
18
|
import { decodePageToken, domainRouter, encodePageToken, } from '../kernel/http.js';
|
|
16
19
|
import { personOrRunSecurity, tags } from './openapi.js';
|
|
17
|
-
import {
|
|
20
|
+
import { ChatAgentSchema, ChatSettingsSchema, ChatAttachmentContentQuery, ChatAttachmentParams, ChatDefaultAgentSchema, ConversationDetailSchema, ConversationListQuerySchema, ConversationParams, ConversationSummarySchema, MessageAttachmentSchema, MessageListQuerySchema, PageTokenMetaSchema, SeqPageMetaSchema, } from './schemas.js';
|
|
18
21
|
const noConversation = apiErrorResponse(404, "The conversation does not exist or is not the caller's (`CONVERSATION_NOT_FOUND`).");
|
|
19
22
|
const conversationConflict = (when) => apiErrorResponse(400, `${when} (\`CONVERSATION_CONFLICT\`).`);
|
|
20
23
|
const MessagePosition = z.object({ before: z.number().int().min(1) });
|
|
21
|
-
const
|
|
24
|
+
const ConfigInput = z.strictObject({
|
|
22
25
|
agentId: z.string().min(1).max(64).optional(),
|
|
26
|
+
scope: z.array(z.string()).optional(),
|
|
27
|
+
thinking: z.string().optional(),
|
|
28
|
+
context: z
|
|
29
|
+
.strictObject({
|
|
30
|
+
variable: z.json().optional(),
|
|
31
|
+
})
|
|
32
|
+
.optional(),
|
|
33
|
+
});
|
|
34
|
+
const ConfigOutput = z.object({
|
|
35
|
+
agentId: z.string().optional(),
|
|
36
|
+
selectedModel: z
|
|
37
|
+
.object({ modelService: z.string(), model: z.string() })
|
|
38
|
+
.nullable(),
|
|
39
|
+
scope: z.array(z.string()),
|
|
40
|
+
model: z.array(z.string()),
|
|
41
|
+
thinking: z.string().optional(),
|
|
42
|
+
tool: z.array(z.string()),
|
|
43
|
+
toolVersions: z.record(z.string(), z.string()),
|
|
44
|
+
systemPrompt: z.string(),
|
|
45
|
+
variable: z.json().optional(),
|
|
46
|
+
});
|
|
47
|
+
const SelectedModel = z.strictObject({
|
|
48
|
+
modelService: z.string().min(1),
|
|
49
|
+
model: z.string().min(1),
|
|
50
|
+
});
|
|
51
|
+
const CreateSchema = z.strictObject({
|
|
52
|
+
agentId: z
|
|
53
|
+
.string()
|
|
54
|
+
.min(1)
|
|
55
|
+
.max(64)
|
|
56
|
+
.optional()
|
|
57
|
+
.describe('The agent to start the conversation with.'),
|
|
23
58
|
title: z
|
|
24
59
|
.string()
|
|
25
60
|
.max(CONVERSATION_TITLE_MAX * 2)
|
|
26
|
-
.optional(),
|
|
27
|
-
source: z.string().regex(CONVERSATION_SOURCE_PATTERN).optional(),
|
|
28
|
-
model: z
|
|
29
|
-
.strictObject({
|
|
30
|
-
modelService: z.string().min(1).max(100),
|
|
31
|
-
model: z.string().min(1).max(200),
|
|
32
|
-
})
|
|
33
|
-
.nullable()
|
|
34
61
|
.optional()
|
|
35
|
-
.
|
|
36
|
-
|
|
37
|
-
|
|
62
|
+
.describe('The conversation title.'),
|
|
63
|
+
source: z
|
|
64
|
+
.string()
|
|
65
|
+
.regex(CONVERSATION_SOURCE_PATTERN)
|
|
66
|
+
.optional()
|
|
67
|
+
.describe('The source context associated with this conversation.'),
|
|
68
|
+
showInChatList: z
|
|
69
|
+
.boolean()
|
|
70
|
+
.optional()
|
|
71
|
+
.describe('Include this conversation in the default chat list (default true).'),
|
|
72
|
+
config: ConfigInput.optional().describe('Explicit ordinary OnlineAgent configuration overrides for the new conversation.'),
|
|
73
|
+
selectedModel: SelectedModel.optional().describe('Native model selection as modelService and model; omit for a Runner agent.'),
|
|
38
74
|
});
|
|
39
75
|
const PatchSchema = z.strictObject({
|
|
40
76
|
title: z
|
|
41
77
|
.string()
|
|
42
78
|
.max(CONVERSATION_TITLE_MAX * 2)
|
|
43
|
-
.optional()
|
|
44
|
-
|
|
45
|
-
|
|
79
|
+
.optional()
|
|
80
|
+
.describe('The conversation title.'),
|
|
81
|
+
archived: z
|
|
82
|
+
.boolean()
|
|
83
|
+
.optional()
|
|
84
|
+
.describe('Whether to archive the conversation.'),
|
|
85
|
+
});
|
|
86
|
+
const NativeSendSchema = z.strictObject({
|
|
87
|
+
message: z
|
|
46
88
|
.strictObject({
|
|
47
|
-
|
|
48
|
-
|
|
89
|
+
id: z.string().min(1).max(64),
|
|
90
|
+
role: z.literal('user'),
|
|
91
|
+
parts: z
|
|
92
|
+
.array(z.strictObject({
|
|
93
|
+
type: z.literal('text'),
|
|
94
|
+
text: z.string().max(MESSAGE_CONTENT_MAX * 2),
|
|
95
|
+
}))
|
|
96
|
+
.max(20),
|
|
49
97
|
})
|
|
50
|
-
.
|
|
51
|
-
.optional(),
|
|
52
|
-
});
|
|
53
|
-
const SendSchema = z.strictObject({
|
|
54
|
-
content: z
|
|
55
|
-
.string()
|
|
56
|
-
.max(MESSAGE_CONTENT_MAX * 2)
|
|
57
|
-
.meta({
|
|
58
|
-
description: 'Markdown; empty only when files are sent.',
|
|
59
|
-
}),
|
|
60
|
-
context: PageContextSchema.optional(),
|
|
61
|
-
clientId: z.string().min(1).max(100).optional(),
|
|
98
|
+
.describe('The current SDK user message with id, role user and text parts.'),
|
|
62
99
|
attachmentIds: z
|
|
63
100
|
.array(z.string().min(1).max(64))
|
|
64
101
|
.max(CHAT_ATTACHMENTS_PER_MESSAGE_MAX)
|
|
65
|
-
.optional()
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
}),
|
|
102
|
+
.optional(),
|
|
103
|
+
context: PageContextSchema.optional(),
|
|
104
|
+
selectedModel: SelectedModel.optional(),
|
|
69
105
|
});
|
|
106
|
+
const SendSchema = NativeSendSchema;
|
|
107
|
+
const NativeMessageSchema = z.object({
|
|
108
|
+
id: z.string(),
|
|
109
|
+
role: z.enum(['user', 'assistant', 'system']),
|
|
110
|
+
metadata: appUIMessageMetadataSchema,
|
|
111
|
+
parts: z.array(z.json()),
|
|
112
|
+
});
|
|
113
|
+
const ApprovalSchema = appUIToolApprovalInputSchema;
|
|
70
114
|
/** A multipart body of one file, as `file`. */
|
|
71
115
|
const singleFileBody = {
|
|
72
116
|
required: true,
|
|
@@ -75,7 +119,13 @@ const singleFileBody = {
|
|
|
75
119
|
schema: {
|
|
76
120
|
type: 'object',
|
|
77
121
|
required: ['file'],
|
|
78
|
-
properties: {
|
|
122
|
+
properties: {
|
|
123
|
+
file: {
|
|
124
|
+
type: 'string',
|
|
125
|
+
format: 'binary',
|
|
126
|
+
description: 'The file to upload for the conversation.',
|
|
127
|
+
},
|
|
128
|
+
},
|
|
79
129
|
},
|
|
80
130
|
},
|
|
81
131
|
},
|
|
@@ -103,24 +153,6 @@ function contentHeaders(attachment, download) {
|
|
|
103
153
|
};
|
|
104
154
|
}
|
|
105
155
|
const noAttachment = apiErrorResponse(404, 'The file does not exist, or the caller may not read it (`NOT_FOUND`).');
|
|
106
|
-
const StartSchema = z.strictObject({
|
|
107
|
-
source: z.string().regex(CONVERSATION_SOURCE_PATTERN),
|
|
108
|
-
text: z
|
|
109
|
-
.string()
|
|
110
|
-
.min(1)
|
|
111
|
-
.max(MESSAGE_CONTENT_MAX * 2),
|
|
112
|
-
agentId: z.string().min(1).max(64).optional(),
|
|
113
|
-
title: z
|
|
114
|
-
.string()
|
|
115
|
-
.max(CONVERSATION_TITLE_MAX * 2)
|
|
116
|
-
.optional(),
|
|
117
|
-
context: PageContextSchema.optional(),
|
|
118
|
-
clientId: z.string().min(1).max(100).optional(),
|
|
119
|
-
});
|
|
120
|
-
const CopySchema = z.strictObject({
|
|
121
|
-
name: z.string().max(400).optional(),
|
|
122
|
-
makeDefault: z.boolean().optional(),
|
|
123
|
-
});
|
|
124
156
|
/**
|
|
125
157
|
* `guard` authenticates the request and sets `caller`; the route contribution passes the real one, tests a fake.
|
|
126
158
|
* `personOrRun` also takes a run token (setting `caller.run`), for reading a conversation's files; `guard` by default.
|
|
@@ -129,6 +161,12 @@ export function createChatRoutes(services, guard, personOrRun = guard) {
|
|
|
129
161
|
const router = domainRouter();
|
|
130
162
|
const { conversations, chat } = services;
|
|
131
163
|
const me = (context) => context.get('caller').userId;
|
|
164
|
+
const trusted = (context) => {
|
|
165
|
+
const value = context.get('caller').onlineContext;
|
|
166
|
+
if (!value)
|
|
167
|
+
throw forbidden('Trusted entry credentials are required.');
|
|
168
|
+
return value;
|
|
169
|
+
};
|
|
132
170
|
const conversationParam = apiValidator('param', ConversationParams);
|
|
133
171
|
const conversationId = (context) => context.req.param('conversationId') ?? '';
|
|
134
172
|
router.get('/conversations', guard, describeRoute({
|
|
@@ -170,9 +208,12 @@ export function createChatRoutes(services, guard, personOrRun = guard) {
|
|
|
170
208
|
operationId: 'agentsCreateConversation',
|
|
171
209
|
...cliRoute({
|
|
172
210
|
command: 'conversation create',
|
|
173
|
-
flags: {
|
|
211
|
+
flags: {
|
|
212
|
+
agentId: { name: 'agent' },
|
|
213
|
+
showInChatList: { name: 'show-in-chat-list' },
|
|
214
|
+
},
|
|
174
215
|
}),
|
|
175
|
-
description:
|
|
216
|
+
description: 'Creates an OnlineAgent session without sending input. Configuration defaults are resolved once; original model columns remain authoritative.',
|
|
176
217
|
responses: {
|
|
177
218
|
201: dataResponse(ConversationDetailSchema, 'Created.'),
|
|
178
219
|
400: conversationConflict('No chat agent is available'),
|
|
@@ -180,24 +221,28 @@ export function createChatRoutes(services, guard, personOrRun = guard) {
|
|
|
180
221
|
...apiErrorResponses,
|
|
181
222
|
},
|
|
182
223
|
}), apiValidator('json', CreateSchema), async (context) => context.json({
|
|
183
|
-
data: await
|
|
224
|
+
data: await (async () => {
|
|
225
|
+
const request = context.req.valid('json');
|
|
226
|
+
const title = request.title === undefined
|
|
227
|
+
? undefined
|
|
228
|
+
: cleanTitle(request.title);
|
|
229
|
+
if (title && title.length > CONVERSATION_TITLE_MAX)
|
|
230
|
+
throw invalid('The conversation title is too long.');
|
|
231
|
+
if (request.source &&
|
|
232
|
+
request.source !== 'panel' &&
|
|
233
|
+
!conversations.sources.has(request.source))
|
|
234
|
+
throw invalid('Unknown conversation source.');
|
|
235
|
+
const agent = await services.onlineAgent.realtime(trusted(context), {
|
|
236
|
+
...request.config,
|
|
237
|
+
...(request.agentId ? { agentId: request.agentId } : {}),
|
|
238
|
+
selectedModel: request.selectedModel,
|
|
239
|
+
source: request.source ?? 'panel',
|
|
240
|
+
title: title?.text || undefined,
|
|
241
|
+
showInChatList: request.showInChatList,
|
|
242
|
+
}, 'http');
|
|
243
|
+
return conversations.get(me(context), agent.sessionId);
|
|
244
|
+
})(),
|
|
184
245
|
}, 201));
|
|
185
|
-
router.post('/conversations/start', guard, describeRoute({
|
|
186
|
-
tags,
|
|
187
|
-
summary: 'Start a conversation with its first message',
|
|
188
|
-
operationId: 'agentsStartConversation',
|
|
189
|
-
// UI-only: the pages' buttons, with page context; `conversation create` and `conversation message send` do it from the command line.
|
|
190
|
-
...cliRoute(false),
|
|
191
|
-
description: "A new conversation from a place the application registered (`source`), with its first message, which wakes the agent. What the application's buttons call.",
|
|
192
|
-
responses: {
|
|
193
|
-
200: dataResponse(SendMessageResultSchema),
|
|
194
|
-
400: conversationConflict('No chat agent is available'),
|
|
195
|
-
404: apiErrorResponse(404, 'The agent does not exist (`AGENT_NOT_FOUND`).'),
|
|
196
|
-
...apiErrorResponses,
|
|
197
|
-
},
|
|
198
|
-
}), apiValidator('json', StartSchema), async (context) => context.json({
|
|
199
|
-
data: await conversations.start(me(context), context.req.valid('json')),
|
|
200
|
-
}));
|
|
201
246
|
router.get('/conversations/:conversationId', guard, describeRoute({
|
|
202
247
|
tags,
|
|
203
248
|
summary: 'Get a conversation',
|
|
@@ -217,9 +262,8 @@ export function createChatRoutes(services, guard, personOrRun = guard) {
|
|
|
217
262
|
}));
|
|
218
263
|
router.patch('/conversations/:conversationId', guard, describeRoute({
|
|
219
264
|
tags,
|
|
220
|
-
summary: 'Rename
|
|
265
|
+
summary: 'Rename or archive a conversation',
|
|
221
266
|
operationId: 'agentsUpdateConversation',
|
|
222
|
-
description: "`model` picks one of the online conversation's `models` for its next runs (null: the agent's default); 400 `INVALID_REQUEST` with `reason: MODEL_NOT_LISTED` when the agent does not list it.",
|
|
223
267
|
...cliRoute({
|
|
224
268
|
command: 'conversation update',
|
|
225
269
|
args: ['conversationId'],
|
|
@@ -244,31 +288,45 @@ export function createChatRoutes(services, guard, personOrRun = guard) {
|
|
|
244
288
|
conversationId: { name: 'conversation' },
|
|
245
289
|
pageSize: { name: 'limit' },
|
|
246
290
|
},
|
|
247
|
-
columns: ['seq', 'role', '
|
|
291
|
+
columns: ['metadata.seq', 'role', 'parts', 'metadata.createdAt'],
|
|
248
292
|
}),
|
|
249
|
-
description: 'Newest page first, each page in order;
|
|
293
|
+
description: 'Newest page first, each page in order; after reads newly inserted sequences and pageToken reads older pages. Native ids rereads current messages after revision notifications, including updates at unchanged sequences.',
|
|
250
294
|
responses: {
|
|
251
|
-
200: listResponse(
|
|
295
|
+
200: listResponse(NativeMessageSchema, SeqPageMetaSchema),
|
|
252
296
|
404: noConversation,
|
|
253
297
|
...apiErrorResponses,
|
|
254
298
|
},
|
|
255
299
|
}), conversationParam, apiValidator('query', MessageListQuerySchema), async (context) => {
|
|
256
|
-
const { after, pageSize, pageToken } = context.req.valid('query');
|
|
300
|
+
const { after, pageSize, pageToken, ids } = context.req.valid('query');
|
|
257
301
|
const before = pageToken === undefined
|
|
258
302
|
? undefined
|
|
259
303
|
: decodePageToken(pageToken, MessagePosition).before;
|
|
260
|
-
const
|
|
261
|
-
|
|
262
|
-
|
|
304
|
+
const agent = await services.onlineAgent.realtime(trusted(context), {
|
|
305
|
+
sessionId: conversationId(context),
|
|
306
|
+
});
|
|
307
|
+
const wanted = ids?.split(',');
|
|
308
|
+
if (wanted &&
|
|
309
|
+
(wanted.length > 100 || wanted.some((id) => !id || id.length > 100)))
|
|
310
|
+
throw invalid('Select at most 100 valid message IDs.');
|
|
311
|
+
const page = await agent.messages({
|
|
312
|
+
ids: wanted,
|
|
313
|
+
before,
|
|
314
|
+
after: before === undefined ? after : undefined,
|
|
263
315
|
limit: pageSize,
|
|
264
316
|
});
|
|
265
|
-
const first = page.items[0];
|
|
266
317
|
return context.json({
|
|
267
318
|
data: page.items,
|
|
268
319
|
meta: {
|
|
269
320
|
lastSeq: page.lastSeq,
|
|
270
|
-
...(page.
|
|
271
|
-
? {
|
|
321
|
+
...(page.nextAfter !== undefined
|
|
322
|
+
? { nextAfter: page.nextAfter }
|
|
323
|
+
: {}),
|
|
324
|
+
...(page.hasMore && after === undefined && page.items[0]
|
|
325
|
+
? {
|
|
326
|
+
nextPageToken: encodePageToken({
|
|
327
|
+
before: page.items[0].metadata.seq,
|
|
328
|
+
}),
|
|
329
|
+
}
|
|
272
330
|
: {}),
|
|
273
331
|
},
|
|
274
332
|
});
|
|
@@ -279,12 +337,13 @@ export function createChatRoutes(services, guard, personOrRun = guard) {
|
|
|
279
337
|
operationId: 'agentsSendConversationMessage',
|
|
280
338
|
...cliRoute({
|
|
281
339
|
command: 'conversation message send',
|
|
340
|
+
bodyFile: 'file',
|
|
282
341
|
args: ['conversationId'],
|
|
283
342
|
flags: {
|
|
284
343
|
conversationId: { name: 'conversation' },
|
|
285
|
-
|
|
344
|
+
message: { alias: 'm' },
|
|
286
345
|
context: { hidden: true },
|
|
287
|
-
|
|
346
|
+
selectedModel: { hidden: true },
|
|
288
347
|
},
|
|
289
348
|
uploads: {
|
|
290
349
|
attach: {
|
|
@@ -296,19 +355,100 @@ export function createChatRoutes(services, guard, personOrRun = guard) {
|
|
|
296
355
|
},
|
|
297
356
|
},
|
|
298
357
|
examples: [
|
|
299
|
-
'conversation message send <conversation>
|
|
300
|
-
'conversation message send <conversation> -
|
|
358
|
+
'conversation message send <conversation> --file current-user-message.json',
|
|
359
|
+
'conversation message send <conversation> --file current-user-message.json --attach build.log',
|
|
301
360
|
],
|
|
302
361
|
}),
|
|
303
|
-
description:
|
|
362
|
+
description: 'Native input accepts only the current SDK user message with text parts and authorized attachmentIds, returning a standard UI message stream. Server metadata, history, tools and config are not writable here. Runner uses the same input and standard stream; only saved source records are projected. Busy input is refused. A timeout means outcome unknown: reconcile history and execution, never automatically resend.',
|
|
304
363
|
responses: {
|
|
305
|
-
|
|
364
|
+
200: {
|
|
365
|
+
description: 'Native AI SDK UI message stream. Finish closes this response; query execution for durable business state.',
|
|
366
|
+
content: { 'text/event-stream': { schema: { type: 'string' } } },
|
|
367
|
+
},
|
|
306
368
|
404: noConversation,
|
|
307
369
|
...apiErrorResponses,
|
|
308
370
|
},
|
|
309
|
-
}), conversationParam, apiValidator('json', SendSchema), async (context) =>
|
|
310
|
-
|
|
311
|
-
|
|
371
|
+
}), conversationParam, apiValidator('json', SendSchema), async (context) => {
|
|
372
|
+
const id = context.req.valid('param').conversationId;
|
|
373
|
+
const request = context.req.valid('json');
|
|
374
|
+
const text = request.message.parts.map((part) => part.text).join('\n');
|
|
375
|
+
if ([...text].length > MESSAGE_CONTENT_MAX)
|
|
376
|
+
throw invalid('The message is too long.');
|
|
377
|
+
if (!text.trim() && !request.attachmentIds?.length)
|
|
378
|
+
throw invalid('A message or attachment is required.');
|
|
379
|
+
const workContext = request.context
|
|
380
|
+
? await conversations.contextKinds.resolve(services.tx.read(), me(context), request.context)
|
|
381
|
+
: undefined;
|
|
382
|
+
const actor = trusted(context);
|
|
383
|
+
const agent = await services.onlineAgent.realtime({
|
|
384
|
+
...actor,
|
|
385
|
+
...(workContext ? { business: jsonSafe(workContext) } : {}),
|
|
386
|
+
}, { sessionId: id });
|
|
387
|
+
const parts = request.message.parts;
|
|
388
|
+
await agent.send([{ role: 'user', content: parts }], {
|
|
389
|
+
attachmentIds: [[...(request.attachmentIds ?? [])]],
|
|
390
|
+
clientId: request.message.id,
|
|
391
|
+
messageId: request.message.id,
|
|
392
|
+
selectedModel: request.selectedModel,
|
|
393
|
+
workContext,
|
|
394
|
+
});
|
|
395
|
+
const stream = await agent.receive();
|
|
396
|
+
if (!stream)
|
|
397
|
+
throw invalid('The accepted response requires history reconciliation.');
|
|
398
|
+
return createUIMessageStreamResponse({
|
|
399
|
+
stream,
|
|
400
|
+
headers: {
|
|
401
|
+
'Cache-Control': 'private, no-store',
|
|
402
|
+
'x-online-agent-recovery': services.onlineAgent.recovery,
|
|
403
|
+
},
|
|
404
|
+
});
|
|
405
|
+
});
|
|
406
|
+
router.post('/conversations/:conversationId/approval', guard, describeRoute({
|
|
407
|
+
tags,
|
|
408
|
+
summary: 'Respond to a native SDK tool approval',
|
|
409
|
+
operationId: 'agentsRespondConversationApproval',
|
|
410
|
+
...cliRoute(false),
|
|
411
|
+
description: 'Only the SDK approval response is accepted. The server binds it to the owner, execution, message and real pending tool call. Duplicate, expired and concurrent responses are rejected without executing tools again.',
|
|
412
|
+
responses: {
|
|
413
|
+
200: {
|
|
414
|
+
description: 'Standard SDK UI message continuation stream.',
|
|
415
|
+
content: { 'text/event-stream': { schema: { type: 'string' } } },
|
|
416
|
+
},
|
|
417
|
+
...apiErrorResponses,
|
|
418
|
+
},
|
|
419
|
+
}), conversationParam, apiValidator('json', ApprovalSchema), async (context) => {
|
|
420
|
+
const agent = await services.onlineAgent.realtime(trusted(context), {
|
|
421
|
+
sessionId: conversationId(context),
|
|
422
|
+
});
|
|
423
|
+
await agent.approve(context.req.valid('json'));
|
|
424
|
+
const stream = await agent.receive();
|
|
425
|
+
if (!stream)
|
|
426
|
+
throw invalid('The accepted continuation requires history reconciliation.');
|
|
427
|
+
return createUIMessageStreamResponse({
|
|
428
|
+
stream,
|
|
429
|
+
headers: {
|
|
430
|
+
'Cache-Control': 'private, no-store',
|
|
431
|
+
'x-online-agent-recovery': services.onlineAgent.recovery,
|
|
432
|
+
},
|
|
433
|
+
});
|
|
434
|
+
});
|
|
435
|
+
router.post('/conversations/:conversationId/finalize', guard, describeRoute({
|
|
436
|
+
tags,
|
|
437
|
+
summary: 'Retry response persistence without executing again',
|
|
438
|
+
operationId: 'agentsFinalizeConversation',
|
|
439
|
+
...cliRoute(false),
|
|
440
|
+
responses: {
|
|
441
|
+
200: dataResponse(ConversationDetailSchema),
|
|
442
|
+
...apiErrorResponses,
|
|
443
|
+
},
|
|
444
|
+
}), conversationParam, apiValidator('json', z.strictObject({})), async (context) => {
|
|
445
|
+
const id = conversationId(context);
|
|
446
|
+
const agent = await services.onlineAgent.realtime(trusted(context), {
|
|
447
|
+
sessionId: id,
|
|
448
|
+
});
|
|
449
|
+
await agent.retryFinalization();
|
|
450
|
+
return context.json({ data: await conversations.get(me(context), id) });
|
|
451
|
+
});
|
|
312
452
|
const acts = {
|
|
313
453
|
markRead: {
|
|
314
454
|
act: (userId, id) => conversations.markRead(userId, id),
|
|
@@ -319,7 +459,9 @@ export function createChatRoutes(services, guard, personOrRun = guard) {
|
|
|
319
459
|
description: "Marks the conversation's messages read for the caller.",
|
|
320
460
|
},
|
|
321
461
|
stop: {
|
|
322
|
-
act: (
|
|
462
|
+
act: async () => {
|
|
463
|
+
throw invalid('Use the authenticated OnlineAgent stop handler.');
|
|
464
|
+
},
|
|
323
465
|
operationId: 'agentsStopConversation',
|
|
324
466
|
cli: {
|
|
325
467
|
command: 'conversation stop',
|
|
@@ -327,31 +469,7 @@ export function createChatRoutes(services, guard, personOrRun = guard) {
|
|
|
327
469
|
flags: { conversationId: { name: 'conversation' } },
|
|
328
470
|
},
|
|
329
471
|
summary: "Stop a conversation's agent",
|
|
330
|
-
description: '
|
|
331
|
-
},
|
|
332
|
-
fallback: {
|
|
333
|
-
act: (userId, id) => conversations.fallback(userId, id),
|
|
334
|
-
operationId: 'agentsFallbackConversation',
|
|
335
|
-
cli: {
|
|
336
|
-
command: 'conversation fallback',
|
|
337
|
-
args: ['conversationId'],
|
|
338
|
-
flags: { conversationId: { name: 'conversation' } },
|
|
339
|
-
},
|
|
340
|
-
summary: 'Switch a conversation to the default agent',
|
|
341
|
-
description: 'Continues the conversation with the default chat agent while its own agent cannot answer; a runner conversation whose default is not a runner agent continues with the online fallback agent.',
|
|
342
|
-
conflict: 'The conversation cannot fall back',
|
|
343
|
-
},
|
|
344
|
-
restore: {
|
|
345
|
-
act: (userId, id) => conversations.restore(userId, id),
|
|
346
|
-
operationId: 'agentsRestoreConversation',
|
|
347
|
-
cli: {
|
|
348
|
-
command: 'conversation restore',
|
|
349
|
-
args: ['conversationId'],
|
|
350
|
-
flags: { conversationId: { name: 'conversation' } },
|
|
351
|
-
},
|
|
352
|
-
summary: 'Switch a conversation back to its agent',
|
|
353
|
-
description: 'Gives the conversation back to the agent it fell back from.',
|
|
354
|
-
conflict: 'The conversation has nothing to switch back to',
|
|
472
|
+
description: 'Processes a cancellation request. The returned execution may remain running until actual termination and canonical history synchronization; request success does not mean the agent has stopped.',
|
|
355
473
|
},
|
|
356
474
|
};
|
|
357
475
|
for (const [verb, item] of Object.entries(acts))
|
|
@@ -370,8 +488,77 @@ export function createChatRoutes(services, guard, personOrRun = guard) {
|
|
|
370
488
|
...apiErrorResponses,
|
|
371
489
|
},
|
|
372
490
|
}), conversationParam, async (context) => context.json({
|
|
373
|
-
data:
|
|
491
|
+
data: verb === 'stop'
|
|
492
|
+
? await (async () => {
|
|
493
|
+
const id = conversationId(context);
|
|
494
|
+
const detail = await conversations.get(me(context), id);
|
|
495
|
+
if (!detail.execution)
|
|
496
|
+
return conversations.stop(me(context), id);
|
|
497
|
+
const agent = await services.onlineAgent.realtime(trusted(context), { sessionId: id });
|
|
498
|
+
await agent.abort();
|
|
499
|
+
return conversations.get(me(context), id);
|
|
500
|
+
})()
|
|
501
|
+
: await item.act(me(context), conversationId(context)),
|
|
374
502
|
}));
|
|
503
|
+
router.get('/conversations/:conversationId/events', guard, describeRoute({
|
|
504
|
+
tags,
|
|
505
|
+
summary: 'Resume the current OnlineAgent UI stream',
|
|
506
|
+
operationId: 'agentsConversationEvents',
|
|
507
|
+
...cliRoute(false),
|
|
508
|
+
description: 'Returns a full standard SDK replay and subsequent chunks when optional shared Redis recovery is configured. Without it, only an unclaimed local live response is available. Execution is never restarted. Missing streams return 204, which does not mean idle or successful: reconcile execution and persisted history. Disconnect never invokes Stop.',
|
|
509
|
+
responses: {
|
|
510
|
+
200: {
|
|
511
|
+
description: 'Standard SDK UI message stream for Native and Runner.',
|
|
512
|
+
content: { 'text/event-stream': { schema: { type: 'string' } } },
|
|
513
|
+
},
|
|
514
|
+
204: { description: 'No current stream; read saved history.' },
|
|
515
|
+
...apiErrorResponses,
|
|
516
|
+
},
|
|
517
|
+
}), conversationParam, async (context) => {
|
|
518
|
+
const agent = await services.onlineAgent.realtime(trusted(context), {
|
|
519
|
+
sessionId: conversationId(context),
|
|
520
|
+
});
|
|
521
|
+
context.header('Cache-Control', 'private, no-store');
|
|
522
|
+
context.header('x-online-agent-recovery', services.onlineAgent.recovery);
|
|
523
|
+
const events = await agent.receive();
|
|
524
|
+
if (!events)
|
|
525
|
+
return context.body(null, 204);
|
|
526
|
+
return createUIMessageStreamResponse({
|
|
527
|
+
stream: events,
|
|
528
|
+
headers: {
|
|
529
|
+
'Cache-Control': 'private, no-store',
|
|
530
|
+
'x-online-agent-recovery': services.onlineAgent.recovery,
|
|
531
|
+
},
|
|
532
|
+
});
|
|
533
|
+
});
|
|
534
|
+
router.get('/conversations/:conversationId/config', guard, describeRoute({
|
|
535
|
+
tags,
|
|
536
|
+
summary: 'Read the saved OnlineAgent configuration',
|
|
537
|
+
operationId: 'agentsGetConversationConfig',
|
|
538
|
+
...cliRoute(false),
|
|
539
|
+
responses: {
|
|
540
|
+
200: dataResponse(ConfigOutput),
|
|
541
|
+
...apiErrorResponses,
|
|
542
|
+
},
|
|
543
|
+
}), conversationParam, async (context) => {
|
|
544
|
+
const config = await services.onlineAgent.configuration(trusted(context), conversationId(context));
|
|
545
|
+
return context.json({ data: config });
|
|
546
|
+
});
|
|
547
|
+
router.patch('/conversations/:conversationId/config', guard, describeRoute({
|
|
548
|
+
tags,
|
|
549
|
+
summary: 'Update idle OnlineAgent configuration',
|
|
550
|
+
operationId: 'agentsUpdateConversationConfig',
|
|
551
|
+
...cliRoute(false),
|
|
552
|
+
description: 'Explicit overrides only; running configuration is frozen. The selected model and snapshot update atomically.',
|
|
553
|
+
responses: { 200: dataResponse(ConfigOutput), ...apiErrorResponses },
|
|
554
|
+
}), conversationParam, apiValidator('json', z.strictObject({
|
|
555
|
+
config: ConfigInput,
|
|
556
|
+
selectedModel: SelectedModel.optional(),
|
|
557
|
+
})), async (context) => {
|
|
558
|
+
const input = context.req.valid('json');
|
|
559
|
+
const config = await services.onlineAgent.configure(trusted(context), conversationId(context), input.config, input.selectedModel, 'http');
|
|
560
|
+
return context.json({ data: config });
|
|
561
|
+
});
|
|
375
562
|
router.get('/chatAgents', guard, describeRoute({
|
|
376
563
|
tags,
|
|
377
564
|
summary: 'List the agents the caller may chat with',
|
|
@@ -384,27 +571,9 @@ export function createChatRoutes(services, guard, personOrRun = guard) {
|
|
|
384
571
|
...apiErrorResponses,
|
|
385
572
|
},
|
|
386
573
|
}), async (context) => {
|
|
387
|
-
const data = await conversations.chatAgents(me(context));
|
|
574
|
+
const data = await services.conversations.chatAgents(me(context));
|
|
388
575
|
return context.json({ data, meta: { total: data.length } });
|
|
389
576
|
});
|
|
390
|
-
router.post('/:agentId/copy', guard, describeRoute({
|
|
391
|
-
tags,
|
|
392
|
-
summary: 'Copy an agent for oneself',
|
|
393
|
-
operationId: 'agentsCopyAgent',
|
|
394
|
-
...cliRoute({
|
|
395
|
-
command: 'agent copy',
|
|
396
|
-
args: ['agentId'],
|
|
397
|
-
flags: { agentId: { name: 'agent' } },
|
|
398
|
-
}),
|
|
399
|
-
description: "A private copy of an agent the caller may wake, owned and usable only by them; `makeDefault` makes it the caller's default chat agent.",
|
|
400
|
-
responses: {
|
|
401
|
-
200: dataResponse(AgentSchema),
|
|
402
|
-
404: apiErrorResponse(404, 'The agent does not exist, or the caller may not wake it.'),
|
|
403
|
-
...apiErrorResponses,
|
|
404
|
-
},
|
|
405
|
-
}), apiValidator('param', AgentParams), apiValidator('json', CopySchema), async (context) => context.json({
|
|
406
|
-
data: await conversations.copyAgent(me(context), context.req.valid('param').agentId, context.req.valid('json')),
|
|
407
|
-
}));
|
|
408
577
|
router.get('/chatPreferences', guard, describeRoute({
|
|
409
578
|
tags,
|
|
410
579
|
summary: "Get the caller's chat preferences",
|
|
@@ -453,10 +622,9 @@ export function createChatRoutes(services, guard, personOrRun = guard) {
|
|
|
453
622
|
command: 'conversation settings update',
|
|
454
623
|
flags: {
|
|
455
624
|
defaultAgentId: { name: 'default-agent' },
|
|
456
|
-
onlineFallbackAgentId: { name: 'online-fallback-agent' },
|
|
457
625
|
},
|
|
458
626
|
}),
|
|
459
|
-
description: "Sets the team's default chat agent
|
|
627
|
+
description: "Sets the team's default chat agent, an enabled agent. Needs `agents.agents` manage.",
|
|
460
628
|
responses: {
|
|
461
629
|
200: dataResponse(ChatSettingsSchema),
|
|
462
630
|
...apiErrorResponses,
|
|
@@ -549,25 +717,6 @@ export function createChatRoutes(services, guard, personOrRun = guard) {
|
|
|
549
717
|
headers: contentHeaders(attachment, context.req.valid('query').download),
|
|
550
718
|
});
|
|
551
719
|
});
|
|
552
|
-
router.get('/presets', guard, describeRoute({
|
|
553
|
-
tags,
|
|
554
|
-
summary: 'List agent presets',
|
|
555
|
-
operationId: 'agentsListPresets',
|
|
556
|
-
...cliRoute({
|
|
557
|
-
command: 'agent preset list',
|
|
558
|
-
columns: ['key', 'name', 'type', 'description'],
|
|
559
|
-
}),
|
|
560
|
-
description: 'The roles the application registered that a new agent can start from. Needs `agents.agents` read.',
|
|
561
|
-
responses: {
|
|
562
|
-
200: listResponse(AgentPresetSchema),
|
|
563
|
-
...apiErrorResponses,
|
|
564
|
-
},
|
|
565
|
-
}), async (context) => {
|
|
566
|
-
if (!(await context.get('caller').can('agents.agents', 'read')))
|
|
567
|
-
throw forbidden('This needs agents.agents read permission.');
|
|
568
|
-
const data = services.presets.list();
|
|
569
|
-
return context.json({ data, meta: { total: data.length } });
|
|
570
|
-
});
|
|
571
720
|
return router;
|
|
572
721
|
}
|
|
573
722
|
//# sourceMappingURL=chat.js.map
|