@nocobase/app-plugin-agents 0.1.0-beta.8 → 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 +304 -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 +42 -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/202610120001_ag_index_run_retries.d.ts +4 -0
- package/dist/database/migrations/202610120001_ag_index_run_retries.d.ts.map +1 -0
- package/dist/database/migrations/202610120001_ag_index_run_retries.js +17 -0
- package/dist/database/migrations/202610120001_ag_index_run_retries.js.map +1 -0
- 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 +39 -3
- package/dist/server/core/runs/run.service.d.ts.map +1 -1
- package/dist/server/core/runs/run.service.js +729 -102
- 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 +12 -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 +79 -100
- 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 +139 -212
- 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 +498 -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 +59 -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 +39 -25
- 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,3 +1,4 @@
|
|
|
1
|
+
import { involvesRun as involves, mayAccessRun } from '../core/runs/access.js';
|
|
1
2
|
/**
|
|
2
3
|
* The people-facing API, mounted at `/api/agents`: agents and their brief preview, variables, the skill library, runs,
|
|
3
4
|
* usage and prices; runners and registration tokens are in `runners/admin.ts`. Every route is behind the guard the
|
|
@@ -29,20 +30,18 @@
|
|
|
29
30
|
import { apiErrorResponse, apiErrorResponses, apiValidator, cliRoute, dataResponse, describeRoute, emptyResponse, listResponse, } from '@nocobase/app-server/router';
|
|
30
31
|
import { bodyLimit } from 'hono/body-limit';
|
|
31
32
|
import { z } from 'zod';
|
|
32
|
-
import { policyAllowsAgent } from '@nocobase/agent-protocol';
|
|
33
33
|
import { reaches, } from '../../shared/access.js';
|
|
34
|
-
import { offersEntry } from '../../shared/models.js';
|
|
35
34
|
import { SKILL_UPLOAD_MAX_BYTES } from '../../shared/skills.js';
|
|
36
35
|
import { CONVERSATION_SUBJECT } from '../../shared/conversations.js';
|
|
37
|
-
import {
|
|
36
|
+
import { AgentPatchSchema, agentViews } from '../core/agents/index.js';
|
|
38
37
|
import { ModelPricesSchema } from '../core/reports/index.js';
|
|
39
|
-
import {
|
|
38
|
+
import { runMachineViewerFor, runForViewer, } from '../core/runs/index.js';
|
|
40
39
|
import { SkillIdsSchema, SkillImportSchema, SkillInputSchema, SkillSaveSchema, } from '../core/skills/index.js';
|
|
41
40
|
import { forbidden, invalid, notFound } from '../kernel/errors.js';
|
|
42
41
|
import { decodePageToken, domainRouter, encodePageToken, } from '../kernel/http.js';
|
|
43
42
|
import { WORKDIR_TITLE } from '../kernel/scopes.js';
|
|
44
43
|
import { tags } from './openapi.js';
|
|
45
|
-
import { AgentActionOptionSchema, AgentChangeSchema, AgentHistoryQuery,
|
|
44
|
+
import { AgentActionOptionSchema, AgentChangeSchema, AgentHistoryQuery, AgentParams, AgentNameSchema, AgentSchema, AgentViewSchema, BriefPreviewSchema, ModelUsageReportSchema, PageTokenMetaSchema, PricesSchema, RunBriefSchema, RunDetailSchema, RunEventItemSchema, RunSchema, SeqPageMetaSchema, SkillArchiveQuery, SkillAttachmentsSchema, SkillDetailSchema, SkillFileQuery, SkillUploadSchema, SkillSchema, SkillVersionDetailSchema, SkillVersionSchema, SkillViewSchema, UsageReportSchema, UserRefSchema, VariableAuditSchema, VariableSchema, VariableValueSchema, VocabularySchema, AuditListQuery, ModelUsageQuery, PreviewBriefQuery, RunEventsQuery, RunListQuery, RunParams, ScopeParams, SkillParams, SkillRestoreInput, SkillVersionParams, UsageQuerySchema, VariableParams, VariableValueInput, WorkspaceParams, } from './schemas.js';
|
|
46
45
|
/** A multipart body of one file, as `file`. */
|
|
47
46
|
const skillUploadBody = {
|
|
48
47
|
required: true,
|
|
@@ -90,9 +89,6 @@ async function mayEdit(who, relatedTo) {
|
|
|
90
89
|
return true;
|
|
91
90
|
return reaches(await who.scope('agents.agents/edit'), relatedTo);
|
|
92
91
|
}
|
|
93
|
-
function involves(run, userId) {
|
|
94
|
-
return run.actorUserId === userId || run.ownerUserId === userId;
|
|
95
|
-
}
|
|
96
92
|
const RunPosition = z.object({ createdAt: z.string(), id: z.string() });
|
|
97
93
|
const AuditPosition = z.object({ at: z.string(), id: z.string() });
|
|
98
94
|
const ChangePosition = z.object({
|
|
@@ -115,13 +111,11 @@ export function createAdminRoutes(services, guard, scoped = guard) {
|
|
|
115
111
|
const visibleRun = async (context, action) => {
|
|
116
112
|
const who = caller(context);
|
|
117
113
|
const run = await services.runs.get(context.req.param('runId') ?? '');
|
|
118
|
-
if (
|
|
114
|
+
if (await mayAccessRun(run, who.userId, isPrivate(run), () => who.can('agents.agents', action)))
|
|
119
115
|
return run;
|
|
120
116
|
// A private subject's runs (a conversation) belong to the people they involve, whatever the caller manages.
|
|
121
117
|
if (isPrivate(run))
|
|
122
118
|
throw notFound('Run');
|
|
123
|
-
if (await who.can('agents.agents', action))
|
|
124
|
-
return run;
|
|
125
119
|
if (action === 'manage' && (await who.can('agents.agents', 'read')))
|
|
126
120
|
throw forbidden('This needs agents.agents manage permission.');
|
|
127
121
|
throw notFound('Run');
|
|
@@ -129,42 +123,6 @@ export function createAdminRoutes(services, guard, scoped = guard) {
|
|
|
129
123
|
const isPrivate = (run) => services.subjects.get(run.subject.kind)?.private === true;
|
|
130
124
|
const nameOf = async (userId) => (await services.people.names(services.tx.read(), [userId])).get(userId) ??
|
|
131
125
|
userId;
|
|
132
|
-
/** The agents with what the list shows about their runs and runners, and whether the caller may change each. */
|
|
133
|
-
const summarize = async (who, agents) => {
|
|
134
|
-
const conn = services.tx.read();
|
|
135
|
-
const online = await services.runners.online(conn);
|
|
136
|
-
const owners = await services.people.names(conn, agents.map((agent) => agent.ownerUserId));
|
|
137
|
-
const catalog = await services.online.gateway.catalog();
|
|
138
|
-
const result = [];
|
|
139
|
-
for (const agent of agents)
|
|
140
|
-
result.push({
|
|
141
|
-
...agent,
|
|
142
|
-
ownerName: owners.get(agent.ownerUserId) ?? null,
|
|
143
|
-
activeRuns: await countActive(conn, 'agentId', agent.id),
|
|
144
|
-
// An online agent runs here: "online" while the service of its first entry offers its model.
|
|
145
|
-
onlineRunners: agent.type === 'online'
|
|
146
|
-
? Number(offersEntry(catalog, onlineEntryOf(agent, undefined, catalog.defaultModel ?? null)))
|
|
147
|
-
: online.filter((runner) => hasTool(runner, agent) &&
|
|
148
|
-
policyAllowsAgent(runner.policy, agent) &&
|
|
149
|
-
(agent.runnerIds.length === 0 ||
|
|
150
|
-
agent.runnerIds.includes(runner.id))).length,
|
|
151
|
-
canEdit: await mayEdit(who, agent.ownerUserId),
|
|
152
|
-
owned: agent.ownerUserId === who.userId,
|
|
153
|
-
canCopy: services.agents.mayInvoke(agent, who.userId),
|
|
154
|
-
});
|
|
155
|
-
return result;
|
|
156
|
-
};
|
|
157
|
-
/** Only a caller who may change the agent of the path goes on: 404 when they may not read it, 403 when not change it. */
|
|
158
|
-
const editableAgent = async (context, next) => {
|
|
159
|
-
const who = caller(context);
|
|
160
|
-
const agent = await services.agents.get(context.req.param('agentId') ?? '');
|
|
161
|
-
if (!(await mayEdit(who, agent.ownerUserId))) {
|
|
162
|
-
if (!(await who.can('agents.agents', 'read')))
|
|
163
|
-
throw notFound('Agent');
|
|
164
|
-
throw forbidden('Only its owner (with the related level of agents.agents edit) or a manager of agents may change this agent.');
|
|
165
|
-
}
|
|
166
|
-
await next();
|
|
167
|
-
};
|
|
168
126
|
/** Only a caller who may edit the skill of the path goes on: 404 when they may not read it, 403 when not edit it. */
|
|
169
127
|
const editableSkill = async (context, next) => {
|
|
170
128
|
const who = caller(context);
|
|
@@ -186,12 +144,20 @@ export function createAdminRoutes(services, guard, scoped = guard) {
|
|
|
186
144
|
const allowed = services.scopes
|
|
187
145
|
.keys()
|
|
188
146
|
.filter((key) => withAgent || key !== 'agent');
|
|
147
|
+
const who = caller(context);
|
|
148
|
+
if (!withAgent && scope === 'global') {
|
|
149
|
+
if (scopeId !== 'default')
|
|
150
|
+
throw notFound('Scope');
|
|
151
|
+
const manage = await who.can('agents.agents', 'manage');
|
|
152
|
+
if (!manage && !(await who.can('agents.agents', 'read')))
|
|
153
|
+
throw notFound('Scope');
|
|
154
|
+
return { scope, scopeId, manage };
|
|
155
|
+
}
|
|
189
156
|
if (!allowed.includes(scope) || !scopeId)
|
|
190
157
|
throw notFound('Scope');
|
|
191
|
-
const who = caller(context);
|
|
192
158
|
if (scope === 'agent') {
|
|
193
|
-
|
|
194
|
-
const manage = await
|
|
159
|
+
await services.agents.get(scopeId);
|
|
160
|
+
const manage = await who.can('agents.agents', 'manage');
|
|
195
161
|
if (!manage && !(await who.can('agents.agents', 'read')))
|
|
196
162
|
throw notFound('Agent');
|
|
197
163
|
return { scope: 'agent', scopeId, manage };
|
|
@@ -280,6 +246,64 @@ export function createAdminRoutes(services, guard, scoped = guard) {
|
|
|
280
246
|
const data = await services.people.list(services.tx.read());
|
|
281
247
|
return context.json({ data, meta: { total: data.length } });
|
|
282
248
|
});
|
|
249
|
+
router.put('/discoveryPreferences', scoped, can('agents.agents', 'manage'), describeRoute({
|
|
250
|
+
tags,
|
|
251
|
+
summary: 'Ignore or restore discovery groups',
|
|
252
|
+
operationId: 'agentsSetDiscoveryPreferences',
|
|
253
|
+
...cliRoute({ command: 'agent discovery set', bodyFile: 'input' }),
|
|
254
|
+
description: 'Shared administrator preferences. Only pending groups can be changed. Batches are atomic and checked against each group revision. Reports do not reset preferences.',
|
|
255
|
+
responses: {
|
|
256
|
+
200: listResponse(z.object({
|
|
257
|
+
key: z.string(),
|
|
258
|
+
ignored: z.boolean(),
|
|
259
|
+
revision: z.number().int(),
|
|
260
|
+
})),
|
|
261
|
+
400: apiErrorResponse(400, 'The group contains a non-pending agent.'),
|
|
262
|
+
409: apiErrorResponse(409, 'The discovery group changed.'),
|
|
263
|
+
...apiErrorResponses,
|
|
264
|
+
},
|
|
265
|
+
}), apiValidator('json', z.strictObject({
|
|
266
|
+
groups: z
|
|
267
|
+
.array(z.strictObject({
|
|
268
|
+
key: z
|
|
269
|
+
.string()
|
|
270
|
+
.min(1)
|
|
271
|
+
.max(256)
|
|
272
|
+
.meta({ description: 'The discoveryKey from the agent list.' }),
|
|
273
|
+
expectedRevision: z.number().int().min(0).meta({
|
|
274
|
+
description: 'The discoveryRevision from the agent list.',
|
|
275
|
+
}),
|
|
276
|
+
}))
|
|
277
|
+
.min(1)
|
|
278
|
+
.max(256)
|
|
279
|
+
.refine((groups) => new Set(groups.map((group) => group.key)).size === groups.length, 'Groups must be unique.')
|
|
280
|
+
.meta({
|
|
281
|
+
description: 'Unique pending discovery groups to update atomically.',
|
|
282
|
+
}),
|
|
283
|
+
ignored: z.boolean().meta({
|
|
284
|
+
description: 'True to ignore pending discoveries; false to restore them without enabling.',
|
|
285
|
+
}),
|
|
286
|
+
})), async (context) => {
|
|
287
|
+
const { groups, ignored } = context.req.valid('json');
|
|
288
|
+
const data = await services.agents.setIgnored(groups, ignored);
|
|
289
|
+
return context.json({ data, meta: { total: data.length } });
|
|
290
|
+
});
|
|
291
|
+
// Every agent's name, removed ones and the application's own included, for the runs that name them.
|
|
292
|
+
router.get('/agentNames', guard, describeRoute({
|
|
293
|
+
tags,
|
|
294
|
+
summary: 'List the names of agents',
|
|
295
|
+
operationId: 'agentsListAgentNames',
|
|
296
|
+
// UI-only: the names runs show.
|
|
297
|
+
...cliRoute(false),
|
|
298
|
+
description: 'Every agent there has been, removed ones and the application’s own included, by id and name: what the runs that name them show.',
|
|
299
|
+
responses: {
|
|
300
|
+
200: listResponse(AgentNameSchema),
|
|
301
|
+
...apiErrorResponses,
|
|
302
|
+
},
|
|
303
|
+
}), async (context) => {
|
|
304
|
+
const data = await services.agents.directory(services.tx.read());
|
|
305
|
+
return context.json({ data, meta: { total: data.length } });
|
|
306
|
+
});
|
|
283
307
|
// Variables of an agent, a working directory, or a scope the application registers.
|
|
284
308
|
const scopedRouter = router;
|
|
285
309
|
const variableParam = apiValidator('param', VariableParams);
|
|
@@ -469,8 +493,20 @@ export function createAdminRoutes(services, guard, scoped = guard) {
|
|
|
469
493
|
/** The skill with whether the caller may edit it. */
|
|
470
494
|
const viewOf = async (context, id) => {
|
|
471
495
|
const skill = await services.skills.get(id);
|
|
496
|
+
const names = new Map();
|
|
497
|
+
for (const scope of new Set(skill.attachments.map((item) => item.scope))) {
|
|
498
|
+
const kind = services.scopes.get(scope);
|
|
499
|
+
if (kind?.describe)
|
|
500
|
+
names.set(scope, await kind.describe(skill.attachments
|
|
501
|
+
.filter((item) => item.scope === scope)
|
|
502
|
+
.map((item) => item.scopeId), caller(context).userId, caller(context).keyScope));
|
|
503
|
+
}
|
|
472
504
|
return {
|
|
473
505
|
...skill,
|
|
506
|
+
attachments: skill.attachments.map((item) => ({
|
|
507
|
+
...item,
|
|
508
|
+
...names.get(item.scope)?.get(item.scopeId),
|
|
509
|
+
})),
|
|
474
510
|
canEdit: await mayEdit(caller(context), skill.createdById),
|
|
475
511
|
};
|
|
476
512
|
};
|
|
@@ -483,7 +519,7 @@ export function createAdminRoutes(services, guard, scoped = guard) {
|
|
|
483
519
|
operationId: 'agentsListSkills',
|
|
484
520
|
...cliRoute({
|
|
485
521
|
command: 'skill list',
|
|
486
|
-
columns: ['id', 'name', 'version', '
|
|
522
|
+
columns: ['id', 'name', 'version', 'updatedAt'],
|
|
487
523
|
}),
|
|
488
524
|
description: 'The skill library. Needs `agents.agents` read.',
|
|
489
525
|
responses: { 200: listResponse(SkillSchema), ...apiErrorResponses },
|
|
@@ -815,15 +851,15 @@ export function createAdminRoutes(services, guard, scoped = guard) {
|
|
|
815
851
|
flags: {
|
|
816
852
|
scopeKind: {
|
|
817
853
|
name: 'kind',
|
|
818
|
-
description: 'The scope kind: `
|
|
854
|
+
description: 'The scope kind: `global`, `workdir`, or one the application registers.',
|
|
819
855
|
},
|
|
820
856
|
scopeId: {
|
|
821
857
|
name: 'scope',
|
|
822
|
-
description: 'The scope:
|
|
858
|
+
description: 'The scope: `default` for global, a working directory id, or the id the application gives.',
|
|
823
859
|
},
|
|
824
860
|
},
|
|
825
861
|
}),
|
|
826
|
-
description:
|
|
862
|
+
description: 'The skills every run gets: global default, then application scopes, then working directories; later scopes override the same slug. Global reads require agents.agents read or manage.',
|
|
827
863
|
responses: {
|
|
828
864
|
200: dataResponse(SkillAttachmentsSchema),
|
|
829
865
|
404: noScope,
|
|
@@ -843,19 +879,21 @@ export function createAdminRoutes(services, guard, scoped = guard) {
|
|
|
843
879
|
flags: {
|
|
844
880
|
scopeKind: {
|
|
845
881
|
name: 'kind',
|
|
846
|
-
description: 'The scope kind: `
|
|
882
|
+
description: 'The scope kind: `global`, `workdir`, or one the application registers.',
|
|
847
883
|
},
|
|
848
884
|
scopeId: {
|
|
849
885
|
name: 'scope',
|
|
850
|
-
description: 'The scope:
|
|
886
|
+
description: 'The scope: `default` for global, a working directory id, or the id the application gives.',
|
|
851
887
|
},
|
|
852
888
|
skillIds: { name: 'skills' },
|
|
853
889
|
},
|
|
854
890
|
examples: [
|
|
891
|
+
'skill attachment set global default --skills <skill>,<skill>',
|
|
892
|
+
'skill attachment set global default --file empty-skills.json',
|
|
855
893
|
'skill attachment set workdir <workdir> --skills <skill>,<skill>',
|
|
856
894
|
],
|
|
857
895
|
}),
|
|
858
|
-
description: 'Makes `skillIds` the skills attached to the scope.
|
|
896
|
+
description: 'Makes `skillIds` the skills attached to the scope. Global accepts only default and requires agents.agents manage; other scopes need the right to change that scope. An empty skillIds array clears attachments. Agent attachments are refused.',
|
|
859
897
|
responses: {
|
|
860
898
|
200: dataResponse(SkillAttachmentsSchema),
|
|
861
899
|
400: apiErrorResponse(400, 'A skill id is unknown (`INVALID_ARGUMENT`).'),
|
|
@@ -877,10 +915,11 @@ export function createAdminRoutes(services, guard, scoped = guard) {
|
|
|
877
915
|
const see = manage ||
|
|
878
916
|
(await who.can('agents.runners', 'read')) ||
|
|
879
917
|
(await who.can('agents.agents', 'read'));
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
918
|
+
return runMachineViewerFor(services.agents, {
|
|
919
|
+
userId: who.userId,
|
|
920
|
+
manage,
|
|
921
|
+
read: see,
|
|
922
|
+
});
|
|
884
923
|
};
|
|
885
924
|
/** Only a caller who may see the run of the path (or, with `manage`, act on it) goes on. */
|
|
886
925
|
const runAccess = (action) => async (context, next) => {
|
|
@@ -1042,15 +1081,20 @@ export function createAdminRoutes(services, guard, scoped = guard) {
|
|
|
1042
1081
|
args: ['runId'],
|
|
1043
1082
|
flags: { runId: { name: 'run' } },
|
|
1044
1083
|
}),
|
|
1045
|
-
description: 'Queues a new run with the same input. Whoever started or owns it, or a manager of agents, may.',
|
|
1084
|
+
description: 'Queues a new run with the same input once. Whoever started or owns it, or a manager of agents, may. Repeating a retry returns RUN_ALREADY_RETRIED (FAILED_PRECONDITION) with the replacement run id.',
|
|
1046
1085
|
responses: {
|
|
1047
1086
|
200: dataResponse(RunSchema),
|
|
1048
|
-
400: apiErrorResponse(400, 'The run cannot be retried (`RUN_NOT_RETRYABLE`).'),
|
|
1087
|
+
400: apiErrorResponse(400, 'The run cannot be retried (`RUN_NOT_RETRYABLE`) or has already been retried (`RUN_ALREADY_RETRIED`).'),
|
|
1049
1088
|
404: noRun,
|
|
1050
1089
|
...apiErrorResponses,
|
|
1051
1090
|
},
|
|
1052
1091
|
}), runParam, async (context) => context.json({
|
|
1053
|
-
data: runForViewer(await services.runs.retry(context.req.valid('param').runId, caller(context).userId
|
|
1092
|
+
data: runForViewer(await services.runs.retry(context.req.valid('param').runId, caller(context).userId,
|
|
1093
|
+
// Display attribution trusts the client header. Other HTTP callers,
|
|
1094
|
+
// including API-key scripts, are runRecord; api is for service callers.
|
|
1095
|
+
context.req.header('x-nocobase-client') === 'cli'
|
|
1096
|
+
? 'cli'
|
|
1097
|
+
: 'runRecord'), await machineViewer(context)),
|
|
1054
1098
|
}));
|
|
1055
1099
|
// What runs used and cost, behind the usage page's grant.
|
|
1056
1100
|
const usagePage = async (context, next) => {
|
|
@@ -1176,65 +1220,28 @@ export function createAdminRoutes(services, guard, scoped = guard) {
|
|
|
1176
1220
|
// Agents, last: `/:agentId` would otherwise shadow the fixed segments above.
|
|
1177
1221
|
const agentParam = apiValidator('param', AgentParams);
|
|
1178
1222
|
const noAgent = notFoundAs('The agent');
|
|
1179
|
-
|
|
1180
|
-
router.get('/', scoped, can('agents.agents', 'read'), describeRoute({
|
|
1223
|
+
router.get('/', guard, describeRoute({
|
|
1181
1224
|
tags,
|
|
1182
1225
|
summary: 'List agents',
|
|
1183
1226
|
operationId: 'agentsListAgents',
|
|
1184
1227
|
...cliRoute({
|
|
1185
1228
|
command: 'agent list-all',
|
|
1186
|
-
|
|
1187
|
-
|
|
1188
|
-
'id',
|
|
1189
|
-
'name',
|
|
1190
|
-
'type',
|
|
1191
|
-
'ownerName',
|
|
1192
|
-
'activeRuns',
|
|
1193
|
-
'archivedAt',
|
|
1194
|
-
],
|
|
1195
|
-
examples: ['agent list-all --archived'],
|
|
1229
|
+
columns: ['id', 'name', 'status', 'unusable', 'busy', 'description'],
|
|
1230
|
+
examples: ['agent list-all', 'agent list-all --json'],
|
|
1196
1231
|
}),
|
|
1197
|
-
description: '
|
|
1232
|
+
description: 'Every agent discovered from runners: one for each coding tool and model they report, with whether it is enabled, what it is good at, where it can run now (team and personal runners, the caller’s own among them), why it cannot take the caller’s work, and whether the caller may change it. Anyone signed in may read them; only a manager of agents (`agents.agents` manage) changes them.',
|
|
1198
1233
|
responses: {
|
|
1199
|
-
200: listResponse(
|
|
1234
|
+
200: listResponse(AgentViewSchema),
|
|
1200
1235
|
...apiErrorResponses,
|
|
1201
1236
|
},
|
|
1202
|
-
}),
|
|
1203
|
-
const
|
|
1204
|
-
|
|
1205
|
-
|
|
1237
|
+
}), async (context) => {
|
|
1238
|
+
const who = caller(context);
|
|
1239
|
+
const data = await services.views(services.tx.read(), who.userId, {
|
|
1240
|
+
canEdit: await who.can('agents.agents', 'manage'),
|
|
1241
|
+
});
|
|
1206
1242
|
return context.json({ data, meta: { total: data.length } });
|
|
1207
1243
|
});
|
|
1208
|
-
router.
|
|
1209
|
-
tags,
|
|
1210
|
-
summary: 'Create an agent',
|
|
1211
|
-
operationId: 'agentsCreateAgent',
|
|
1212
|
-
...cliRoute({
|
|
1213
|
-
command: 'agent create',
|
|
1214
|
-
bodyFile: 'file',
|
|
1215
|
-
flags: {
|
|
1216
|
-
instructions: { contentFile: true },
|
|
1217
|
-
modelEntries: { name: 'models' },
|
|
1218
|
-
ownerUserId: { name: 'owner' },
|
|
1219
|
-
runnerIds: { name: 'runtimes' },
|
|
1220
|
-
skillIds: { name: 'skills' },
|
|
1221
|
-
userIds: { name: 'users' },
|
|
1222
|
-
},
|
|
1223
|
-
examples: [
|
|
1224
|
-
'agent create --name Coder --models \'[{"tool":"claude"},{"tool":"codex","model":"gpt-5"}]\'',
|
|
1225
|
-
'agent create --name PM --type online --models \'[{"modelService":"openai","model":"gpt-5"}]\'',
|
|
1226
|
-
'agent create --file agent.json',
|
|
1227
|
-
],
|
|
1228
|
-
}),
|
|
1229
|
-
description: '`modelEntries` lists the tools and models it works with, in order (the first is its default): `{ tool, model? }` for a runner agent, `{ modelService, model }` for an online one. Needs `agents.agents` manage.',
|
|
1230
|
-
responses: {
|
|
1231
|
-
201: dataResponse(AgentSchema, 'Created.'),
|
|
1232
|
-
...apiErrorResponses,
|
|
1233
|
-
},
|
|
1234
|
-
}), apiValidator('json', AgentInputSchema), async (context) => context.json({
|
|
1235
|
-
data: await services.agents.create(caller(context).userId, context.req.valid('json')),
|
|
1236
|
-
}, 201));
|
|
1237
|
-
router.get('/:agentId', scoped, can('agents.agents', 'read'), describeRoute({
|
|
1244
|
+
router.get('/:agentId', guard, describeRoute({
|
|
1238
1245
|
tags,
|
|
1239
1246
|
summary: 'Get an agent',
|
|
1240
1247
|
operationId: 'agentsGetAgent',
|
|
@@ -1243,17 +1250,22 @@ export function createAdminRoutes(services, guard, scoped = guard) {
|
|
|
1243
1250
|
args: ['agentId'],
|
|
1244
1251
|
flags: { agentId: { name: 'agent' } },
|
|
1245
1252
|
}),
|
|
1246
|
-
description: '
|
|
1253
|
+
description: 'An agent as the Agent page shows it. An application’s own agent, such as a project manager, is answered too.',
|
|
1247
1254
|
responses: {
|
|
1248
|
-
200: dataResponse(
|
|
1255
|
+
200: dataResponse(AgentViewSchema),
|
|
1249
1256
|
404: noAgent,
|
|
1250
1257
|
...apiErrorResponses,
|
|
1251
1258
|
},
|
|
1252
1259
|
}), agentParam, async (context) => {
|
|
1253
|
-
const
|
|
1254
|
-
|
|
1255
|
-
])
|
|
1256
|
-
|
|
1260
|
+
const who = caller(context);
|
|
1261
|
+
const agent = await services.agents.get(context.req.valid('param').agentId);
|
|
1262
|
+
const [data] = await agentViews(services.tx.read(), [agent], {
|
|
1263
|
+
availability: services.availability,
|
|
1264
|
+
userId: who.userId,
|
|
1265
|
+
canEdit: await who.can('agents.agents', 'manage'),
|
|
1266
|
+
now: services.clock.now(),
|
|
1267
|
+
});
|
|
1268
|
+
return context.json({ data });
|
|
1257
1269
|
});
|
|
1258
1270
|
router.get('/:agentId/history', guard, can('agents.agents', 'read'), describeRoute({
|
|
1259
1271
|
tags,
|
|
@@ -1299,117 +1311,32 @@ export function createAdminRoutes(services, guard, scoped = guard) {
|
|
|
1299
1311
|
: {},
|
|
1300
1312
|
});
|
|
1301
1313
|
});
|
|
1302
|
-
router.patch('/:agentId', scoped,
|
|
1314
|
+
router.patch('/:agentId', scoped, can('agents.agents', 'manage'), describeRoute({
|
|
1303
1315
|
tags,
|
|
1304
1316
|
summary: 'Update an agent',
|
|
1305
1317
|
operationId: 'agentsUpdateAgent',
|
|
1306
1318
|
...cliRoute({
|
|
1307
1319
|
command: 'agent update',
|
|
1308
1320
|
args: ['agentId'],
|
|
1309
|
-
bodyFile: 'file',
|
|
1310
1321
|
flags: {
|
|
1311
1322
|
agentId: { name: 'agent' },
|
|
1312
|
-
|
|
1313
|
-
modelEntries: { name: 'models' },
|
|
1314
|
-
ownerUserId: { name: 'owner' },
|
|
1315
|
-
runnerIds: { name: 'runtimes' },
|
|
1316
|
-
skillIds: { name: 'skills' },
|
|
1317
|
-
userIds: { name: 'users' },
|
|
1318
|
-
expectedRevision: { name: 'revision' },
|
|
1323
|
+
description: { name: 'good-at', contentFile: true },
|
|
1319
1324
|
},
|
|
1320
1325
|
examples: [
|
|
1321
|
-
'agent update <agent> --
|
|
1322
|
-
'agent update <agent> --
|
|
1326
|
+
'agent update <agent> --good-at "Code review" --enabled --expected-revision 2',
|
|
1327
|
+
'agent update <agent> --no-enabled --expected-revision 3',
|
|
1323
1328
|
],
|
|
1324
1329
|
}),
|
|
1325
|
-
description:
|
|
1326
|
-
responses: {
|
|
1327
|
-
200: dataResponse(AgentSchema),
|
|
1328
|
-
404: noAgent,
|
|
1329
|
-
409: revisionConflict('agent'),
|
|
1330
|
-
...apiErrorResponses,
|
|
1331
|
-
},
|
|
1332
|
-
}), agentParam, apiValidator('json', AgentPatchSchema), async (context) => {
|
|
1333
|
-
const who = caller(context);
|
|
1334
|
-
const agent = await services.agents.get(context.req.valid('param').agentId);
|
|
1335
|
-
const patch = context.req.valid('json');
|
|
1336
|
-
if (!(await who.can('agents.agents', 'manage'))) {
|
|
1337
|
-
// Someone editing as the owner gives the agent only what they may grant themselves.
|
|
1338
|
-
if (patch.ownerUserId !== undefined &&
|
|
1339
|
-
patch.ownerUserId !== agent.ownerUserId)
|
|
1340
|
-
throw forbidden('Only a manager of agents may give an agent to another owner.');
|
|
1341
|
-
if (patch.actions !== undefined) {
|
|
1342
|
-
const held = await services.gate.allowed({
|
|
1343
|
-
kind: 'user',
|
|
1344
|
-
userId: who.userId,
|
|
1345
|
-
displayName: who.userId,
|
|
1346
|
-
});
|
|
1347
|
-
const beyond = patch.actions.filter((action) => !agent.actions.includes(action) && !held.has(action));
|
|
1348
|
-
if (beyond.length > 0)
|
|
1349
|
-
throw forbidden(`You may not give the agent business actions you do not hold yourself: ${beyond.join(', ')}.`);
|
|
1350
|
-
}
|
|
1351
|
-
}
|
|
1352
|
-
return context.json({
|
|
1353
|
-
data: await services.agents.update(agent.id, who.userId, patch),
|
|
1354
|
-
});
|
|
1355
|
-
});
|
|
1356
|
-
router.delete('/:agentId', scoped, editableAgent, describeRoute({
|
|
1357
|
-
tags,
|
|
1358
|
-
summary: 'Delete an agent',
|
|
1359
|
-
operationId: 'agentsDeleteAgent',
|
|
1360
|
-
...cliRoute({
|
|
1361
|
-
command: 'agent delete',
|
|
1362
|
-
args: ['agentId'],
|
|
1363
|
-
flags: { agentId: { name: 'agent' } },
|
|
1364
|
-
confirm: 'Delete this archived agent with its variables and history?',
|
|
1365
|
-
}),
|
|
1366
|
-
description: `Deletes an archived agent with no open runs, with its variables, skill attachments and history; its past runs stay. ${editAccess}`,
|
|
1367
|
-
responses: {
|
|
1368
|
-
204: emptyResponse(),
|
|
1369
|
-
400: apiErrorResponse(400, 'The agent is not archived, or has open runs (`AGENT_NOT_ARCHIVED`, `AGENT_HAS_ACTIVE_RUNS`).'),
|
|
1370
|
-
404: noAgent,
|
|
1371
|
-
...apiErrorResponses,
|
|
1372
|
-
},
|
|
1373
|
-
}), agentParam, async (context) => {
|
|
1374
|
-
await services.agents.remove(context.req.valid('param').agentId, caller(context).userId);
|
|
1375
|
-
return context.body(null, 204);
|
|
1376
|
-
});
|
|
1377
|
-
router.post('/:agentId/archive', scoped, editableAgent, describeRoute({
|
|
1378
|
-
tags,
|
|
1379
|
-
summary: 'Archive an agent',
|
|
1380
|
-
operationId: 'agentsArchiveAgent',
|
|
1381
|
-
...cliRoute({
|
|
1382
|
-
command: 'agent archive',
|
|
1383
|
-
args: ['agentId'],
|
|
1384
|
-
flags: { agentId: { name: 'agent' } },
|
|
1385
|
-
confirm: 'Archive this agent? Its queued runs are withdrawn.',
|
|
1386
|
-
}),
|
|
1387
|
-
description: `An archived agent is not run: its queued runs are withdrawn. ${editAccess}`,
|
|
1388
|
-
responses: {
|
|
1389
|
-
200: dataResponse(AgentSchema),
|
|
1390
|
-
404: noAgent,
|
|
1391
|
-
...apiErrorResponses,
|
|
1392
|
-
},
|
|
1393
|
-
}), agentParam, async (context) => context.json({
|
|
1394
|
-
data: await services.agents.archive(context.req.valid('param').agentId, caller(context).userId),
|
|
1395
|
-
}));
|
|
1396
|
-
router.post('/:agentId/restore', scoped, editableAgent, describeRoute({
|
|
1397
|
-
tags,
|
|
1398
|
-
summary: 'Restore an archived agent',
|
|
1399
|
-
operationId: 'agentsRestoreAgent',
|
|
1400
|
-
...cliRoute({
|
|
1401
|
-
command: 'agent restore',
|
|
1402
|
-
args: ['agentId'],
|
|
1403
|
-
flags: { agentId: { name: 'agent' } },
|
|
1404
|
-
}),
|
|
1405
|
-
description: editAccess,
|
|
1330
|
+
description: "Writes what an agent discovered from runners is good at, its default reasoning effort, and enables or disables it, against the revision the edit was made from. An agent is enabled only with a description. Disabling withdraws its queued runs. An application's own agent is changed through the application. Needs `agents.agents` manage.",
|
|
1406
1331
|
responses: {
|
|
1407
1332
|
200: dataResponse(AgentSchema),
|
|
1333
|
+
400: apiErrorResponse(400, 'Enabling without a description (`GOOD_AT_REQUIRED`), an effort its tool does not take (`EFFORT_UNSUPPORTED`), or an application’s own agent (`AGENT_MANAGED`).'),
|
|
1408
1334
|
404: noAgent,
|
|
1335
|
+
409: apiErrorResponse(409, 'Someone changed the agent since the revision named (`REVISION_CONFLICT`, `metadata.revision`).'),
|
|
1409
1336
|
...apiErrorResponses,
|
|
1410
1337
|
},
|
|
1411
|
-
}), agentParam, async (context) => context.json({
|
|
1412
|
-
data: await services.agents.
|
|
1338
|
+
}), agentParam, apiValidator('json', AgentPatchSchema), async (context) => context.json({
|
|
1339
|
+
data: await services.agents.update(context.req.valid('param').agentId, caller(context).userId, context.req.valid('json')),
|
|
1413
1340
|
}));
|
|
1414
1341
|
router.get('/:agentId/previewBrief', guard, can('agents.agents', 'read'), describeRoute({
|
|
1415
1342
|
tags,
|