@nocobase/app-plugin-agents 1.0.0-beta.20 → 1.0.0-beta.22
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 +46 -0
- package/README.md +72 -12
- package/dist/cli/runner-token.js +1 -1
- package/dist/cli/runner-token.js.map +1 -1
- package/dist/client/chat/agent-mode.d.ts +47 -0
- package/dist/client/chat/agent-mode.d.ts.map +1 -0
- package/dist/client/chat/agent-mode.js +78 -0
- package/dist/client/chat/agent-mode.js.map +1 -0
- package/dist/client/chat/api.d.ts +2 -1
- package/dist/client/chat/api.d.ts.map +1 -1
- package/dist/client/chat/api.js +21 -5
- package/dist/client/chat/api.js.map +1 -1
- package/dist/client/chat/controller.d.ts +26 -0
- package/dist/client/chat/controller.d.ts.map +1 -1
- package/dist/client/chat/controller.js +328 -7
- package/dist/client/chat/controller.js.map +1 -1
- package/dist/client/chat/message-model.d.ts +10 -3
- package/dist/client/chat/message-model.d.ts.map +1 -1
- package/dist/client/chat/message-model.js +32 -4
- package/dist/client/chat/message-model.js.map +1 -1
- package/dist/client/chat/panel-state.d.ts +3 -0
- package/dist/client/chat/panel-state.d.ts.map +1 -1
- package/dist/client/chat/panel-state.js +4 -6
- package/dist/client/chat/panel-state.js.map +1 -1
- package/dist/client/chat/provider.d.ts +13 -2
- package/dist/client/chat/provider.d.ts.map +1 -1
- package/dist/client/chat/provider.js +25 -2
- package/dist/client/chat/provider.js.map +1 -1
- package/dist/client/chat/use-chat.d.ts +8 -1
- package/dist/client/chat/use-chat.d.ts.map +1 -1
- package/dist/client/chat/use-chat.js +28 -4
- package/dist/client/chat/use-chat.js.map +1 -1
- package/dist/client/chat/use-conversation-model.d.ts +4 -1
- package/dist/client/chat/use-conversation-model.d.ts.map +1 -1
- package/dist/client/chat/use-conversation-model.js +4 -3
- package/dist/client/chat/use-conversation-model.js.map +1 -1
- package/dist/client/chat.d.ts +6 -0
- package/dist/client/chat.d.ts.map +1 -1
- package/dist/client/chat.js +2 -0
- package/dist/client/chat.js.map +1 -1
- package/dist/client/components/command-line.d.ts +2 -1
- package/dist/client/components/command-line.d.ts.map +1 -1
- package/dist/client/components/command-line.js +2 -2
- package/dist/client/components/command-line.js.map +1 -1
- package/dist/client/components/variables/variable-dialogs.js +2 -2
- package/dist/client/components/variables/variable-dialogs.js.map +1 -1
- package/dist/client/lib/install.d.ts +3 -3
- package/dist/client/lib/install.d.ts.map +1 -1
- package/dist/client/lib/install.js +3 -5
- package/dist/client/lib/install.js.map +1 -1
- package/dist/client/lib/runner-tools.d.ts +4 -0
- package/dist/client/lib/runner-tools.d.ts.map +1 -0
- package/dist/client/lib/runner-tools.js +5 -0
- package/dist/client/lib/runner-tools.js.map +1 -0
- package/dist/client/locales/chat.en-US.d.ts +17 -0
- package/dist/client/locales/chat.en-US.d.ts.map +1 -1
- package/dist/client/locales/chat.en-US.js +17 -0
- 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 +17 -0
- package/dist/client/locales/chat.zh-CN.js.map +1 -1
- package/dist/client/locales/de-DE.d.ts.map +1 -1
- package/dist/client/locales/de-DE.js +8 -1
- package/dist/client/locales/de-DE.js.map +1 -1
- package/dist/client/locales/en-US.js +9 -9
- package/dist/client/locales/en-US.js.map +1 -1
- package/dist/client/locales/es-ES.d.ts.map +1 -1
- package/dist/client/locales/es-ES.js +8 -1
- package/dist/client/locales/es-ES.js.map +1 -1
- package/dist/client/locales/fr-FR.d.ts.map +1 -1
- package/dist/client/locales/fr-FR.js +8 -1
- package/dist/client/locales/fr-FR.js.map +1 -1
- package/dist/client/locales/id-ID.d.ts.map +1 -1
- package/dist/client/locales/id-ID.js +8 -1
- package/dist/client/locales/id-ID.js.map +1 -1
- package/dist/client/locales/ja-JP.d.ts.map +1 -1
- package/dist/client/locales/ja-JP.js +8 -1
- package/dist/client/locales/ja-JP.js.map +1 -1
- package/dist/client/locales/pt-BR.d.ts.map +1 -1
- package/dist/client/locales/pt-BR.js +8 -1
- package/dist/client/locales/pt-BR.js.map +1 -1
- package/dist/client/locales/runWait.en-US.js +1 -1
- package/dist/client/locales/runWait.en-US.js.map +1 -1
- package/dist/client/locales/runWait.zh-CN.js +1 -1
- package/dist/client/locales/runtimes.en-US.d.ts +10 -1
- package/dist/client/locales/runtimes.en-US.d.ts.map +1 -1
- package/dist/client/locales/runtimes.en-US.js +18 -9
- 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 +18 -9
- package/dist/client/locales/runtimes.zh-CN.js.map +1 -1
- package/dist/client/locales/vi-VN.d.ts.map +1 -1
- package/dist/client/locales/vi-VN.js +8 -1
- package/dist/client/locales/vi-VN.js.map +1 -1
- package/dist/client/locales/zh-CN.js +9 -9
- package/dist/client/locales/zh-CN.js.map +1 -1
- package/dist/client/locales/zh-TW.d.ts.map +1 -1
- package/dist/client/locales/zh-TW.js +8 -1
- package/dist/client/locales/zh-TW.js.map +1 -1
- package/dist/client/online/service-editor.js +6 -1
- package/dist/client/online/service-editor.js.map +1 -1
- package/dist/client/pages/runtimes/connect.js +18 -8
- package/dist/client/pages/runtimes/connect.js.map +1 -1
- package/dist/client/pages/runtimes/index.js +1 -1
- package/dist/client/pages/runtimes/runner-overview.d.ts.map +1 -1
- package/dist/client/pages/runtimes/runner-overview.js +3 -2
- package/dist/client/pages/runtimes/runner-overview.js.map +1 -1
- package/dist/client/pages/usage/prices/model.d.ts +1 -1
- package/dist/client/pages/usage/prices/model.js +1 -1
- package/dist/client/plugin.js +1 -1
- package/dist/client/plugin.js.map +1 -1
- package/dist/client/routes.d.ts +1 -1
- package/dist/database/migrations/.manifest.json +4 -0
- package/dist/database/migrations/202610290001_ag_repair_runner_agents.d.ts +5 -0
- package/dist/database/migrations/202610290001_ag_repair_runner_agents.d.ts.map +1 -0
- package/dist/database/migrations/202610290001_ag_repair_runner_agents.js +72 -0
- package/dist/database/migrations/202610290001_ag_repair_runner_agents.js.map +1 -0
- package/dist/package.json +18 -1
- package/dist/server/composition.d.ts +2 -0
- package/dist/server/composition.d.ts.map +1 -1
- package/dist/server/composition.js +13 -3
- package/dist/server/composition.js.map +1 -1
- package/dist/server/core/agents/agent.store.d.ts +5 -3
- package/dist/server/core/agents/agent.store.d.ts.map +1 -1
- package/dist/server/core/agents/agent.store.js +25 -6
- package/dist/server/core/agents/agent.store.js.map +1 -1
- package/dist/server/core/conversations/attachments.d.ts +1 -1
- package/dist/server/core/conversations/attachments.d.ts.map +1 -1
- package/dist/server/core/conversations/attachments.js +2 -2
- package/dist/server/core/conversations/attachments.js.map +1 -1
- package/dist/server/core/conversations/availability.d.ts +1 -1
- package/dist/server/core/conversations/conversation.service.d.ts.map +1 -1
- package/dist/server/core/conversations/conversation.service.js +7 -0
- package/dist/server/core/conversations/conversation.service.js.map +1 -1
- package/dist/server/core/runs/claim.js +6 -6
- package/dist/server/core/runs/claim.js.map +1 -1
- package/dist/server/core/runs/eligibility.d.ts +3 -3
- package/dist/server/core/runs/eligibility.d.ts.map +1 -1
- package/dist/server/core/runs/run-requests.js +1 -1
- package/dist/server/core/runs/run-requests.js.map +1 -1
- package/dist/server/core/runs/run.service.d.ts +1 -1
- package/dist/server/core/runs/run.store.d.ts +1 -1
- package/dist/server/core/runs/run.store.d.ts.map +1 -1
- package/dist/server/core/runs/workload.js +1 -1
- package/dist/server/core/runs/workload.js.map +1 -1
- package/dist/server/core/variables/variable.service.d.ts +2 -2
- package/dist/server/core/variables/variable.service.js +1 -1
- package/dist/server/core/variables/variable.service.js.map +1 -1
- package/dist/server/index.d.ts +3 -0
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +1 -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.js +1 -1
- package/dist/server/jobs/spec.d.ts +1 -1
- package/dist/server/jobs/spec.d.ts.map +1 -1
- package/dist/server/jobs/spec.js +2 -2
- package/dist/server/jobs/spec.js.map +1 -1
- package/dist/server/kernel/events.d.ts +9 -0
- package/dist/server/kernel/events.d.ts.map +1 -1
- package/dist/server/kernel/events.js.map +1 -1
- package/dist/server/online/agent/configuration.d.ts +2 -0
- package/dist/server/online/agent/configuration.d.ts.map +1 -1
- package/dist/server/online/agent/configuration.js +21 -2
- package/dist/server/online/agent/configuration.js.map +1 -1
- package/dist/server/online/agent/contracts.d.ts +5 -3
- package/dist/server/online/agent/contracts.d.ts.map +1 -1
- package/dist/server/online/agent/index.d.ts +1 -0
- package/dist/server/online/agent/index.d.ts.map +1 -1
- package/dist/server/online/agent/index.js.map +1 -1
- package/dist/server/online/agent/messages/projection.d.ts.map +1 -1
- package/dist/server/online/agent/messages/projection.js +3 -0
- package/dist/server/online/agent/messages/projection.js.map +1 -1
- package/dist/server/online/agent/messages/resend.d.ts +7 -0
- package/dist/server/online/agent/messages/resend.d.ts.map +1 -0
- package/dist/server/online/agent/messages/resend.js +58 -0
- package/dist/server/online/agent/messages/resend.js.map +1 -0
- package/dist/server/online/agent/native/backend.d.ts +6 -0
- package/dist/server/online/agent/native/backend.d.ts.map +1 -1
- package/dist/server/online/agent/native/backend.js +17 -24
- package/dist/server/online/agent/native/backend.js.map +1 -1
- package/dist/server/online/agent/native/execution.d.ts +8 -12
- package/dist/server/online/agent/native/execution.d.ts.map +1 -1
- package/dist/server/online/agent/native/execution.js +89 -17
- package/dist/server/online/agent/native/execution.js.map +1 -1
- package/dist/server/online/agent/native/session.d.ts +2 -0
- package/dist/server/online/agent/native/session.d.ts.map +1 -1
- package/dist/server/online/agent/native/session.js +11 -0
- package/dist/server/online/agent/native/session.js.map +1 -1
- package/dist/server/online/agent/native/types.d.ts +20 -0
- package/dist/server/online/agent/native/types.d.ts.map +1 -1
- package/dist/server/online/agent/persistence/manager.d.ts +1 -2
- package/dist/server/online/agent/persistence/manager.d.ts.map +1 -1
- package/dist/server/online/agent/persistence/manager.js +0 -7
- package/dist/server/online/agent/persistence/manager.js.map +1 -1
- package/dist/server/online/agent/persistence/store.d.ts +25 -7
- package/dist/server/online/agent/persistence/store.d.ts.map +1 -1
- package/dist/server/online/agent/persistence/store.js +165 -47
- package/dist/server/online/agent/persistence/store.js.map +1 -1
- package/dist/server/online/agent/runner/backend.d.ts +1 -0
- package/dist/server/online/agent/runner/backend.d.ts.map +1 -1
- package/dist/server/online/agent/runner/backend.js +3 -0
- package/dist/server/online/agent/runner/backend.js.map +1 -1
- package/dist/server/online/agent/service.d.ts +4 -0
- package/dist/server/online/agent/service.d.ts.map +1 -1
- package/dist/server/online/agent/service.js +2 -0
- package/dist/server/online/agent/service.js.map +1 -1
- package/dist/server/online/agent/types.d.ts +5 -0
- package/dist/server/online/agent/types.d.ts.map +1 -1
- package/dist/server/online/agent/web-search.d.ts +13 -0
- package/dist/server/online/agent/web-search.d.ts.map +1 -0
- package/dist/server/online/agent/web-search.js +65 -0
- package/dist/server/online/agent/web-search.js.map +1 -0
- package/dist/server/online/files/cache.d.ts +19 -0
- package/dist/server/online/files/cache.d.ts.map +1 -0
- package/dist/server/online/files/cache.js +52 -0
- package/dist/server/online/files/cache.js.map +1 -0
- package/dist/server/online/files/errors.d.ts +8 -0
- package/dist/server/online/files/errors.d.ts.map +1 -0
- package/dist/server/online/files/errors.js +14 -0
- package/dist/server/online/files/errors.js.map +1 -0
- package/dist/server/online/files/input.d.ts +23 -0
- package/dist/server/online/files/input.d.ts.map +1 -0
- package/dist/server/online/files/input.js +129 -0
- package/dist/server/online/files/input.js.map +1 -0
- package/dist/server/online/files/kimi.d.ts +11 -0
- package/dist/server/online/files/kimi.d.ts.map +1 -0
- package/dist/server/online/files/kimi.js +177 -0
- package/dist/server/online/files/kimi.js.map +1 -0
- package/dist/server/online/files/profiles.d.ts +13 -0
- package/dist/server/online/files/profiles.d.ts.map +1 -0
- package/dist/server/online/files/profiles.js +124 -0
- package/dist/server/online/files/profiles.js.map +1 -0
- package/dist/server/online/files/service.d.ts +35 -0
- package/dist/server/online/files/service.d.ts.map +1 -0
- package/dist/server/online/files/service.js +174 -0
- package/dist/server/online/files/service.js.map +1 -0
- package/dist/server/online/files/types.d.ts +32 -0
- package/dist/server/online/files/types.d.ts.map +1 -0
- package/dist/server/online/files/types.js +2 -0
- package/dist/server/online/files/types.js.map +1 -0
- package/dist/server/online/gateway.d.ts +13 -0
- package/dist/server/online/gateway.d.ts.map +1 -1
- package/dist/server/online/gateway.js +116 -2
- package/dist/server/online/gateway.js.map +1 -1
- package/dist/server/online/index.d.ts +1 -1
- package/dist/server/online/index.d.ts.map +1 -1
- package/dist/server/online/index.js.map +1 -1
- package/dist/server/online/providers.d.ts +6 -0
- package/dist/server/online/providers.d.ts.map +1 -1
- package/dist/server/online/providers.js +29 -1
- package/dist/server/online/providers.js.map +1 -1
- package/dist/server/online/search/alibaba.d.ts +10 -0
- package/dist/server/online/search/alibaba.d.ts.map +1 -0
- package/dist/server/online/search/alibaba.js +34 -0
- package/dist/server/online/search/alibaba.js.map +1 -0
- package/dist/server/online/search/anthropic.d.ts +12 -0
- package/dist/server/online/search/anthropic.d.ts.map +1 -0
- package/dist/server/online/search/anthropic.js +62 -0
- package/dist/server/online/search/anthropic.js.map +1 -0
- package/dist/server/online/search/budget.d.ts +13 -0
- package/dist/server/online/search/budget.d.ts.map +1 -0
- package/dist/server/online/search/budget.js +63 -0
- package/dist/server/online/search/budget.js.map +1 -0
- package/dist/server/online/search/capabilities.d.ts +7 -0
- package/dist/server/online/search/capabilities.d.ts.map +1 -0
- package/dist/server/online/search/capabilities.js +90 -0
- package/dist/server/online/search/capabilities.js.map +1 -0
- package/dist/server/online/search/contracts.d.ts +20 -0
- package/dist/server/online/search/contracts.d.ts.map +1 -0
- package/dist/server/online/search/contracts.js +2 -0
- package/dist/server/online/search/contracts.js.map +1 -0
- package/dist/server/online/search/google.d.ts +12 -0
- package/dist/server/online/search/google.d.ts.map +1 -0
- package/dist/server/online/search/google.js +51 -0
- package/dist/server/online/search/google.js.map +1 -0
- package/dist/server/online/search/openai.d.ts +18 -0
- package/dist/server/online/search/openai.d.ts.map +1 -0
- package/dist/server/online/search/openai.js +51 -0
- package/dist/server/online/search/openai.js.map +1 -0
- package/dist/server/online/search/prompts.d.ts +5 -0
- package/dist/server/online/search/prompts.d.ts.map +1 -0
- package/dist/server/online/search/prompts.js +28 -0
- package/dist/server/online/search/prompts.js.map +1 -0
- package/dist/server/online/search/results.d.ts +2 -0
- package/dist/server/online/search/results.d.ts.map +1 -0
- package/dist/server/online/search/results.js +2 -0
- package/dist/server/online/search/results.js.map +1 -0
- package/dist/server/online/services.d.ts +2 -0
- package/dist/server/online/services.d.ts.map +1 -1
- package/dist/server/online/services.js +17 -2
- package/dist/server/online/services.js.map +1 -1
- package/dist/server/providers/agents.d.ts +1 -0
- package/dist/server/providers/agents.d.ts.map +1 -1
- package/dist/server/providers/agents.js +12 -0
- package/dist/server/providers/agents.js.map +1 -1
- package/dist/server/providers/authorization.d.ts +2 -2
- package/dist/server/providers/authorization.js +2 -2
- package/dist/server/routes/admin.js +3 -3
- 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 +34 -1
- package/dist/server/routes/chat.js.map +1 -1
- package/dist/server/routes/run-requests.js +1 -1
- package/dist/server/routes/run-requests.js.map +1 -1
- package/dist/server/routes/runners/admin.js +6 -6
- package/dist/server/routes/runners/admin.js.map +1 -1
- package/dist/server/routes/runners/install.js +1 -1
- package/dist/server/routes/schemas.d.ts +3 -0
- package/dist/server/routes/schemas.d.ts.map +1 -1
- package/dist/server/routes/schemas.js +25 -6
- package/dist/server/routes/schemas.js.map +1 -1
- package/dist/server/runners/runner.service.js +1 -1
- package/dist/server/vendor/just-bash.js +117 -117
- package/dist/shared/access.d.ts +2 -2
- package/dist/shared/access.js +2 -2
- package/dist/shared/agents.d.ts +2 -2
- package/dist/shared/agents.d.ts.map +1 -1
- package/dist/shared/conversations.d.ts +13 -1
- package/dist/shared/conversations.d.ts.map +1 -1
- package/dist/shared/conversations.js.map +1 -1
- package/dist/shared/file-input-failures.d.ts +5 -0
- package/dist/shared/file-input-failures.d.ts.map +1 -0
- package/dist/shared/file-input-failures.js +20 -0
- package/dist/shared/file-input-failures.js.map +1 -0
- package/dist/shared/locales/access.en-US.js +3 -3
- package/dist/shared/locales/access.en-US.js.map +1 -1
- package/dist/shared/locales/access.zh-CN.js +3 -3
- package/dist/shared/locales/access.zh-CN.js.map +1 -1
- package/dist/shared/models.d.ts +11 -0
- package/dist/shared/models.d.ts.map +1 -1
- package/dist/shared/models.js.map +1 -1
- package/dist/shared/resend.d.ts +10 -0
- package/dist/shared/resend.d.ts.map +1 -0
- package/dist/shared/resend.js +2 -0
- package/dist/shared/resend.js.map +1 -0
- package/dist/shared/runners.d.ts +4 -4
- package/dist/shared/runners.d.ts.map +1 -1
- package/dist/shared/runners.js +2 -2
- package/dist/shared/runs.d.ts +5 -5
- package/dist/shared/runs.d.ts.map +1 -1
- package/dist/shared/runs.js +1 -1
- package/dist/shared/variables.d.ts +3 -3
- package/dist/shared/variables.d.ts.map +1 -1
- package/dist/shared/variables.js +1 -1
- package/dist/shared/web-search-results.d.ts +16 -0
- package/dist/shared/web-search-results.d.ts.map +1 -0
- package/dist/shared/web-search-results.js +103 -0
- package/dist/shared/web-search-results.js.map +1 -0
- package/dist/shared/web-search.d.ts +40 -0
- package/dist/shared/web-search.d.ts.map +1 -0
- package/dist/shared/web-search.js +15 -0
- package/dist/shared/web-search.js.map +1 -0
- package/docs/execution-history.md +1 -1
- package/docs/message-resend.md +39 -0
- package/docs/native-web-search.md +76 -0
- package/docs/runner-agents.md +3 -3
- package/docs/ui-message-clients.md +7 -1
- package/package.json +11 -2
- package/skills/nocobase-app-plugin-agents/SKILL.md +9 -2
- package/skills/nocobase-app-plugin-agents/references/extension-points.md +1 -1
- package/skills/nocobase-app-plugin-agents/references/online-agent.md +9 -1
- package/skills/nocobase-app-plugin-agents/references/runners.md +7 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runs.d.ts","sourceRoot":"","sources":["../../shared/runs.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runs.d.ts","sourceRoot":"","sources":["../../shared/runs.ts"],"names":[],"mappings":"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"}
|
package/dist/shared/runs.js
CHANGED
|
@@ -36,7 +36,7 @@ export function consecutivePreStartInterruptions(executions) {
|
|
|
36
36
|
* signed in.
|
|
37
37
|
* - `noSharedRunner`: only personal runners could take it, and none belongs to the person who woke the agent.
|
|
38
38
|
* - `missingFeatures`: the runners that could take it lack what it needs (`missing`).
|
|
39
|
-
* - `secretsNotAllowed`: some of its variables are for
|
|
39
|
+
* - `secretsNotAllowed`: some of its variables are for shared runners only (`variables` names them), and the runners
|
|
40
40
|
* that could take it are personal ones.
|
|
41
41
|
* - `sameWorkActive`: the agent is already working on the same subject and thread; this run follows.
|
|
42
42
|
* - `concurrencyFull`: the agent has as many runs held as it may have at once.
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
*
|
|
10
10
|
* A run's variables go to whichever runner takes it, including a personal runner of whoever may use the agent: sharing
|
|
11
11
|
* an agent shares the tokens it works with. A variable marked `teamRunnersOnly` keeps a run that gets it off personal
|
|
12
|
-
* runners: only a
|
|
12
|
+
* runners: only a shared runner takes such a run.
|
|
13
13
|
*
|
|
14
14
|
* A variable taken from the runner (`fromRunner`) is a name only: the runner that takes the run provides its value from
|
|
15
15
|
* its own configuration, and the value never reaches the application. It merges with the others by name, a later
|
|
@@ -21,7 +21,7 @@ export declare const CORE_VARIABLE_SCOPES: readonly ["agent", "workdir"];
|
|
|
21
21
|
export type VariableScope = string;
|
|
22
22
|
export interface Variable {
|
|
23
23
|
readonly name: string;
|
|
24
|
-
/** Only
|
|
24
|
+
/** Only shared runners receive it: a run that gets it waits for one (`secretsNotAllowed`); absent means false. */
|
|
25
25
|
readonly teamRunnersOnly?: boolean;
|
|
26
26
|
/**
|
|
27
27
|
* Taken from the runner: the variable has no value here, and the runner that takes the run provides it from its own
|
|
@@ -33,7 +33,7 @@ export interface Variable {
|
|
|
33
33
|
readonly updatedById: string | null;
|
|
34
34
|
readonly updatedByName: string | null;
|
|
35
35
|
}
|
|
36
|
-
/** A variable named by where it is kept, such as one that asks for a
|
|
36
|
+
/** A variable named by where it is kept, such as one that asks for a shared runner. */
|
|
37
37
|
export interface VariableRef {
|
|
38
38
|
readonly scope: VariableScope;
|
|
39
39
|
readonly scopeId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"variables.d.ts","sourceRoot":"","sources":["../../shared/variables.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,+GAA+G;AAC/G,eAAO,MAAM,oBAAoB,+BAAgC,CAAC;AAElE,oEAAoE;AACpE,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC;AAEnC,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,
|
|
1
|
+
{"version":3,"file":"variables.d.ts","sourceRoot":"","sources":["../../shared/variables.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,+GAA+G;AAC/G,eAAO,MAAM,oBAAoB,+BAAgC,CAAC;AAElE,oEAAoE;AACpE,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC;AAEnC,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,kHAAkH;IAClH,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IACnC;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CACvC;AAED,uFAAuF;AACvF,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,sBAAsB,iDAKzB,CAAC;AAEX,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1E,sGAAsG;AACtG,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;IACrC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC;AAED,6EAA6E;AAC7E,eAAO,MAAM,qBAAqB,EAAE,MAAoC,CAAC;AAEzE,4CAA4C;AAC5C,eAAO,MAAM,wBAAwB,EAAE,MAAiB,CAAC;AAEzD,yHAAyH;AACzH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAMtE;AAED,MAAM,MAAM,mBAAmB,GAC7B,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,WAAW,CAAC;AAEpD,qEAAqE;AACrE,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,QAAQ,GAAE,SAAS,MAAM,EAAO,EAChC,GAAG,CAAC,EAAE,MAAM,GACX,mBAAmB,GAAG,IAAI,CAM5B"}
|
package/dist/shared/variables.js
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
*
|
|
10
10
|
* A run's variables go to whichever runner takes it, including a personal runner of whoever may use the agent: sharing
|
|
11
11
|
* an agent shares the tokens it works with. A variable marked `teamRunnersOnly` keeps a run that gets it off personal
|
|
12
|
-
* runners: only a
|
|
12
|
+
* runners: only a shared runner takes such a run.
|
|
13
13
|
*
|
|
14
14
|
* A variable taken from the runner (`fromRunner`) is a name only: the runner that takes the run provides its value from
|
|
15
15
|
* its own configuration, and the value never reaches the application. It merges with the others by name, a later
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import type { WebSearchInput, WebSearchItem, WebSearchResult, WebSearchSource } from './web-search.js';
|
|
3
|
+
export declare const WebSearchInputSchema: z.ZodType<WebSearchInput>;
|
|
4
|
+
export declare function safeSearchSource(value: {
|
|
5
|
+
title?: string;
|
|
6
|
+
url: string;
|
|
7
|
+
}): WebSearchSource | null;
|
|
8
|
+
export declare function searchItem(query: string, text: string, sources: readonly {
|
|
9
|
+
title?: string;
|
|
10
|
+
url: string;
|
|
11
|
+
}[], executed: boolean): WebSearchItem;
|
|
12
|
+
/** Alibaba may return useful text without proving that its search switch was acted on. */
|
|
13
|
+
export declare function unverifiedSearchItem(query: string, text: string): WebSearchItem;
|
|
14
|
+
/** Public/history/model projections reconstruct only known safe evidence, never the raw provider body. */
|
|
15
|
+
export declare function publicSearchResult(value: unknown): WebSearchResult;
|
|
16
|
+
//# sourceMappingURL=web-search-results.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web-search-results.d.ts","sourceRoot":"","sources":["../../shared/web-search-results.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACb,eAAe,EACf,eAAe,EAChB,MAAM,iBAAiB,CAAC;AAOzB,eAAO,MAAM,oBAAoB,EAAE,CAAC,CAAC,OAAO,CAAC,cAAc,CAezD,CAAC;AAEH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;CACb,GAAG,eAAe,GAAG,IAAI,CAqBzB;AAED,wBAAgB,UAAU,CACxB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,SAAS;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,EAAE,EACnD,QAAQ,EAAE,OAAO,GAChB,aAAa,CAoBf;AAED,0FAA0F;AAC1F,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,GACX,aAAa,CAKf;AA2BD,0GAA0G;AAC1G,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,eAAe,CAuBlE"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { WEB_SEARCH_LIMITS } from './web-search.js';
|
|
3
|
+
const characters = (value) => [...value].length;
|
|
4
|
+
const limited = (value, max) => [...value].slice(0, max).join('');
|
|
5
|
+
export const WebSearchInputSchema = z.strictObject({
|
|
6
|
+
queries: z
|
|
7
|
+
.array(z
|
|
8
|
+
.string()
|
|
9
|
+
.trim()
|
|
10
|
+
.refine((value) => characters(value) >= 1 &&
|
|
11
|
+
characters(value) <= WEB_SEARCH_LIMITS.queryCharacters))
|
|
12
|
+
.min(1)
|
|
13
|
+
.max(WEB_SEARCH_LIMITS.queriesPerCall)
|
|
14
|
+
.transform((queries) => [...new Set(queries)]),
|
|
15
|
+
});
|
|
16
|
+
export function safeSearchSource(value) {
|
|
17
|
+
if (characters(value.url) > WEB_SEARCH_LIMITS.urlCharacters)
|
|
18
|
+
return null;
|
|
19
|
+
try {
|
|
20
|
+
const url = new URL(value.url);
|
|
21
|
+
if (characters(url.href) > WEB_SEARCH_LIMITS.urlCharacters)
|
|
22
|
+
return null;
|
|
23
|
+
if (!['https:', 'http:'].includes(url.protocol) ||
|
|
24
|
+
url.username ||
|
|
25
|
+
url.password)
|
|
26
|
+
return null;
|
|
27
|
+
return {
|
|
28
|
+
title: limited(value.title?.trim() || url.hostname, WEB_SEARCH_LIMITS.titleCharacters),
|
|
29
|
+
url: url.href,
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
catch {
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
export function searchItem(query, text, sources, executed) {
|
|
37
|
+
const safe = [];
|
|
38
|
+
const seen = new Set();
|
|
39
|
+
for (const value of sources) {
|
|
40
|
+
const source = safeSearchSource(value);
|
|
41
|
+
if (!source || seen.has(source.url))
|
|
42
|
+
continue;
|
|
43
|
+
safe.push(source);
|
|
44
|
+
seen.add(source.url);
|
|
45
|
+
if (safe.length === WEB_SEARCH_LIMITS.sources)
|
|
46
|
+
break;
|
|
47
|
+
}
|
|
48
|
+
if (!executed || !safe.length)
|
|
49
|
+
return { query, status: 'failed', reason: 'noEvidence' };
|
|
50
|
+
return {
|
|
51
|
+
query,
|
|
52
|
+
status: 'success',
|
|
53
|
+
findings: limited(text.trim(), WEB_SEARCH_LIMITS.findingsCharacters) ||
|
|
54
|
+
'Sources were retrieved; no summary was returned.',
|
|
55
|
+
sources: safe,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
/** Alibaba may return useful text without proving that its search switch was acted on. */
|
|
59
|
+
export function unverifiedSearchItem(query, text) {
|
|
60
|
+
const findings = limited(text.trim(), WEB_SEARCH_LIMITS.findingsCharacters);
|
|
61
|
+
return findings
|
|
62
|
+
? { query, status: 'unverified', findings, sources: [] }
|
|
63
|
+
: { query, status: 'failed', reason: 'noEvidence' };
|
|
64
|
+
}
|
|
65
|
+
const ResultSchema = z.object({
|
|
66
|
+
results: z
|
|
67
|
+
.array(z.discriminatedUnion('status', [
|
|
68
|
+
z.object({
|
|
69
|
+
query: z.string(),
|
|
70
|
+
status: z.literal('success'),
|
|
71
|
+
findings: z.string(),
|
|
72
|
+
sources: z.array(z.object({ title: z.string(), url: z.string() })),
|
|
73
|
+
}),
|
|
74
|
+
z.object({
|
|
75
|
+
query: z.string(),
|
|
76
|
+
status: z.literal('unverified'),
|
|
77
|
+
findings: z.string(),
|
|
78
|
+
sources: z.tuple([]),
|
|
79
|
+
}),
|
|
80
|
+
z.object({
|
|
81
|
+
query: z.string(),
|
|
82
|
+
status: z.literal('failed'),
|
|
83
|
+
reason: z.enum(['timeout', 'unavailable', 'noEvidence']),
|
|
84
|
+
}),
|
|
85
|
+
]))
|
|
86
|
+
.max(WEB_SEARCH_LIMITS.queriesPerCall),
|
|
87
|
+
});
|
|
88
|
+
/** Public/history/model projections reconstruct only known safe evidence, never the raw provider body. */
|
|
89
|
+
export function publicSearchResult(value) {
|
|
90
|
+
const parsed = ResultSchema.parse(value);
|
|
91
|
+
return {
|
|
92
|
+
results: parsed.results.map((item) => item.status === 'success'
|
|
93
|
+
? searchItem(limited(item.query, WEB_SEARCH_LIMITS.queryCharacters), item.findings, item.sources, true)
|
|
94
|
+
: item.status === 'unverified'
|
|
95
|
+
? unverifiedSearchItem(limited(item.query, WEB_SEARCH_LIMITS.queryCharacters), item.findings)
|
|
96
|
+
: {
|
|
97
|
+
query: limited(item.query, WEB_SEARCH_LIMITS.queryCharacters),
|
|
98
|
+
status: item.status,
|
|
99
|
+
reason: item.reason,
|
|
100
|
+
}),
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=web-search-results.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web-search-results.js","sourceRoot":"","sources":["../../shared/web-search-results.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/** The ordinary Native OnlineAgent tool; provider-hosted tools stay internal. */
|
|
2
|
+
export declare const WEB_SEARCH_TOOL = "webSearch";
|
|
3
|
+
export declare const WEB_SEARCH_LIMITS: Readonly<{
|
|
4
|
+
queriesPerCall: number;
|
|
5
|
+
queriesPerExecution: number;
|
|
6
|
+
concurrency: number;
|
|
7
|
+
totalTimeoutMs: number;
|
|
8
|
+
queryTimeoutMs: number;
|
|
9
|
+
queryCharacters: number;
|
|
10
|
+
findingsCharacters: number;
|
|
11
|
+
sources: number;
|
|
12
|
+
titleCharacters: number;
|
|
13
|
+
urlCharacters: number;
|
|
14
|
+
}>;
|
|
15
|
+
export type WebSearchInput = {
|
|
16
|
+
queries: string[];
|
|
17
|
+
};
|
|
18
|
+
export type WebSearchSource = {
|
|
19
|
+
title: string;
|
|
20
|
+
url: string;
|
|
21
|
+
};
|
|
22
|
+
export type WebSearchItem = {
|
|
23
|
+
query: string;
|
|
24
|
+
status: 'success';
|
|
25
|
+
findings: string;
|
|
26
|
+
sources: WebSearchSource[];
|
|
27
|
+
} | {
|
|
28
|
+
query: string;
|
|
29
|
+
status: 'unverified';
|
|
30
|
+
findings: string;
|
|
31
|
+
sources: [];
|
|
32
|
+
} | {
|
|
33
|
+
query: string;
|
|
34
|
+
status: 'failed';
|
|
35
|
+
reason: 'timeout' | 'unavailable' | 'noEvidence';
|
|
36
|
+
};
|
|
37
|
+
export type WebSearchResult = {
|
|
38
|
+
results: WebSearchItem[];
|
|
39
|
+
};
|
|
40
|
+
//# sourceMappingURL=web-search.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web-search.d.ts","sourceRoot":"","sources":["../../shared/web-search.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,eAAO,MAAM,eAAe,cAAc,CAAC;AAE3C,eAAO,MAAM,iBAAiB,EAAE,QAAQ,CAAC;IACvC,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;CACvB,CAWA,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAAE,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AACnD,MAAM,MAAM,eAAe,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAC7D,MAAM,MAAM,aAAa,GACrB;IACE,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,SAAS,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,eAAe,EAAE,CAAC;CAC5B,GACD;IACE,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,YAAY,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,EAAE,CAAC;CACb,GACD;IACE,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,QAAQ,CAAC;IACjB,MAAM,EAAE,SAAS,GAAG,aAAa,GAAG,YAAY,CAAC;CAClD,CAAC;AACN,MAAM,MAAM,eAAe,GAAG;IAAE,OAAO,EAAE,aAAa,EAAE,CAAA;CAAE,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/** The ordinary Native OnlineAgent tool; provider-hosted tools stay internal. */
|
|
2
|
+
export const WEB_SEARCH_TOOL = 'webSearch';
|
|
3
|
+
export const WEB_SEARCH_LIMITS = {
|
|
4
|
+
queriesPerCall: 4,
|
|
5
|
+
queriesPerExecution: 8,
|
|
6
|
+
concurrency: 2,
|
|
7
|
+
totalTimeoutMs: 60_000,
|
|
8
|
+
queryTimeoutMs: 30_000,
|
|
9
|
+
queryCharacters: 1000,
|
|
10
|
+
findingsCharacters: 6000,
|
|
11
|
+
sources: 10,
|
|
12
|
+
titleCharacters: 300,
|
|
13
|
+
urlCharacters: 4096,
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=web-search.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web-search.js","sourceRoot":"","sources":["../../shared/web-search.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,MAAM,CAAC,MAAM,eAAe,GAAG,WAAW,CAAC;AAE3C,MAAM,CAAC,MAAM,iBAAiB,GAWzB;IACH,cAAc,EAAE,CAAC;IACjB,mBAAmB,EAAE,CAAC;IACtB,WAAW,EAAE,CAAC;IACd,cAAc,EAAE,MAAM;IACtB,cAAc,EAAE,MAAM;IACtB,eAAe,EAAE,IAAI;IACrB,kBAAkB,EAAE,IAAI;IACxB,OAAO,EAAE,EAAE;IACX,eAAe,EAAE,GAAG;IACpB,aAAa,EAAE,IAAI;CACpB,CAAC"}
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
|
|
11
11
|
The Codex adapter reports the value returned by `thread/start` or `thread/resume`. A per-turn effort override has no resolved effort in the `turn/start` response, so that adapter explicitly reports null with source `codex.turn/start`; the requested effort remains visible. Other adapters/providers without a resolved report leave the actual value unknown. This contract needs the updated runner as well as the updated plugin.
|
|
12
12
|
|
|
13
|
-
Stored snapshots are internal facts. The agents HTTP routes apply `runForViewer`/`executionForViewer` with the same machine rights as runner routes: the snapshot's owner, runner managers, or readers of all runners who may invoke an agent. Others receive null `runnerName`, `runnerOwnerName` and `runnerTrust`, with `machineHidden: true`; the UI displays a generic
|
|
13
|
+
Stored snapshots are internal facts. The agents HTTP routes apply `runForViewer`/`executionForViewer` with the same machine rights as runner routes: the snapshot's owner, runner managers, or readers of all runners who may invoke an agent. Others receive null `runnerName`, `runnerOwnerName` and `runnerTrust`, with `machineHidden: true`; the UI displays a generic shared runtime and never falls back to its id. The projects viewer defaults to owner-only machine visibility; its host can supply `Viewer.seesExecutionMachine` after checking these same rights. Activities, thread pages, issue detail and comment mutations apply that projection; internal comment reads with no viewer deny machine visibility. Custom application run/CLI/workload outputs must apply the agents projection too, and action enrichment must reapply it after lookup.
|
|
14
14
|
|
|
15
15
|
Older runs have no execution snapshots. Their primary-tool usage still supplies `actualModels`, but these models cannot reliably be assigned to individual historical attempts. Do not construct historical machine names or tool versions from a runner's current configuration. The migration does not manufacture snapshots or attempt boundaries.
|
|
16
16
|
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Resend and edit a native user message
|
|
2
|
+
|
|
3
|
+
Native realtime sessions expose `RealtimeOnlineAgent.resend(options?: OnlineAgentResendOptions): Promise<number>`. The options type is exported from the public server and client chat entries. Runner sessions refuse resend, and background sessions do not expose it.
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
await chat.resend(); // Resend the latest saved user message.
|
|
7
|
+
await chat.resend({ messageId: userMessageId });
|
|
8
|
+
await chat.resend({
|
|
9
|
+
messageId: userMessageId,
|
|
10
|
+
input: { text: 'Revised request' },
|
|
11
|
+
});
|
|
12
|
+
const output = await chat.receive();
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
The target is always a user message. Omitting `messageId` selects the latest user at admission, even when an assistant reply follows it. The return value is the conversation's admitted sequence watermark, not proof that the answer has completed. Consume the existing SDK stream and reconcile business execution state as for an ordinary send.
|
|
16
|
+
|
|
17
|
+
## Irreversible history replacement
|
|
18
|
+
|
|
19
|
+
One locked admission transaction checks ownership, configuration and idle state, updates the target in place, physically deletes every later message and registers the new execution. The target retains its ID, sequence, creation time, attachment bindings and saved page/UI context; its revision and execution association change. The conversation watermark never decreases, so replacement output receives a sequence above the deleted suffix.
|
|
20
|
+
|
|
21
|
+
`input` may contain only `text`. Omitting it preserves the original parts. Supplying it replaces the original text parts with one part, preserves non-text parts and remaps private file indices. Text is limited to 50,000 Unicode code points. Whitespace-only text requires an original attachment. Current resource and attachment permissions are checked for the retained prefix before destructive writes; the deleted suffix is not prepared as model input.
|
|
22
|
+
|
|
23
|
+
There is no fork, historical version, undo or expected-history/CAS parameter. An idle request from an old tab may delete newer messages it has not seen. Deleting messages does not reverse completed tool or business effects. Regeneration may execute those operations again, and a new approval belongs to the new execution. Deleted messages' physical files are not automatically cleaned up by resend; existing retention and ownership rules remain in force.
|
|
24
|
+
|
|
25
|
+
A rejected admission leaves saved history unchanged. Once admitted, the edited input and deletion remain effective even if generation fails, stops or cannot finalize immediately. Stop, approval and finalization use the existing execution lifecycle, not a second executor.
|
|
26
|
+
|
|
27
|
+
## HTTP and browser clients
|
|
28
|
+
|
|
29
|
+
`POST /api/agents/conversations/:conversationId/resend` accepts the options object directly and returns the standard AI SDK UI message SSE response. The schema rejects complete browser history, attachment/context replacements, tool output and unknown fields. The route is declared in OpenAPI but deliberately excluded from generated CLI commands.
|
|
30
|
+
|
|
31
|
+
Use `useResendMessage(conversationId)` under the existing identity-keyed `ChatProvider`. UI operations pass an explicit user ID; assistant refresh uses only `metadata.sourceUserMessageId`, including an authorized ID read when that user is outside the current page. Missing linkage hides refresh instead of guessing the nearest user.
|
|
32
|
+
|
|
33
|
+
The coordinator uses the official SDK flows: original resend uses `regenerate({ messageId, body })`, and editing uses `sendMessage({ ...message, messageId, parts }, { body })`. The SDK may truncate its local working array before the POST. Do not substitute approval continuation with `sendMessage(undefined)`, stage another response stream, or use GET stream recovery to start a resend.
|
|
34
|
+
|
|
35
|
+
The hook resolves to `accepted`, `rejected` or `unknown`. A successful POST followed by a failed canonical read remains `accepted` with `needsSync`. Definitive rejection may restore the prior local display and preserve the edit. Unknown admission only rereads authoritative history; it never restores a stale suffix or automatically repeats the POST.
|
|
36
|
+
|
|
37
|
+
`conversation.historyReplaced` announces the accepted target, revision, execution and monotonic watermark. Shared views invalidate older reads, remove the suffix and retain only matching live output. Reconnects, manual synchronization and durable polling also reconcile known message IDs in bounded batches; deletion is inferred only when all requested batches succeed. Subscriber cancellation never invokes business Stop.
|
|
38
|
+
|
|
39
|
+
The installed Registry source supplies public-text copy, inline editing, direct edit/resend submission without a confirmation dialog, independent composer drafts and native/Runner visibility rules. Upgrade that source together with the plugin; an npm package update does not update an application's copied components.
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# Native OnlineAgent web search
|
|
2
|
+
|
|
3
|
+
Native web search is an opt-in `webSearch` tool for OnlineAgent. It does not enable search for Runner Agents or add an external search service. A search uses the main execution's frozen model-service/model selection and the existing provider connection settings, including its service key and session identity. It never switches model, protocol or provider to make an unsupported request work.
|
|
4
|
+
|
|
5
|
+
## Enable and configure
|
|
6
|
+
|
|
7
|
+
Search is off by default. Select a configured chat model on an admitted provider in the native chat composer before enabling **Search the web**. A new conversation sends its selected model and `config.webSearch` in the first-create snapshot. For an existing conversation, the control uses the original idle `PATCH /api/agents/conversations/{conversationId}/config` endpoint; the response, not an optimistic local preference, is authoritative. Running, approval, pending configuration and unknown-write reconciliation disable configuration changes. An unknown configuration write is reconciled by reading, never automatically repeating it.
|
|
8
|
+
|
|
9
|
+
Application providers can also include `webSearch: true` in their normal OnlineAgent configuration layers or explicit session options. The internal `effectiveTools(config)` helper includes the versioned built-in only when enabled; applications must not register another tool named `webSearch`. Effective configuration snapshots and public tools use this same selection. Scopes, business tools, variables and permissions keep their existing contracts.
|
|
10
|
+
|
|
11
|
+
The public model catalog exposes derived `capabilities.webSearch`. This field is code-owned and is not an editable model-service setting. Both admission and actual execution check the provider admission policy, model kind and current official endpoint without a model-name allowlist. Explicitly enabling an unsupported selection fails without partially changing the configuration. Switching an already-enabled conversation to a model on an unsupported provider or endpoint clears the inherited flag; it does not remove unrelated business tools or configuration.
|
|
12
|
+
|
|
13
|
+
## Admission and evidence policy
|
|
14
|
+
|
|
15
|
+
OpenAI, Anthropic, Google and Alibaba use provider-level admission for all configured chat models, without model-name allowlists. Admission makes the control available; it does not establish model compatibility or actual search execution. Official endpoint checks reject embedded credentials, query strings, fragments, proxy paths and custom/compatible hosts. Alibaba additionally admits the documented Beijing, Singapore and Hong Kong legacy and workspace-specific official hosts on `/compatible-mode/v1`. The common SDK is `ai@7.0.128`; the versions below are the locked versions tested, not promises about vendor availability.
|
|
16
|
+
|
|
17
|
+
| Provider / model policy | Official endpoint | Locked SDK / native tool | Requested search-only reasoning options | Required execution and source evidence |
|
|
18
|
+
| ------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
19
|
+
| OpenAI / all configured chat models | `https://api.openai.com/v1` | `@ai-sdk/openai@4.0.84`; Responses `tools.webSearch({ externalWebAccess: true })`; forced `web_search`, `maxToolCalls: 1`, `includeWebSearchSources: true` | `reasoningEffort: 'none'` | A completed `web_search_call` with `action.type === 'search'`; URL sources in `action.sources` and the SDK's structured sources. Text or citations without completed search do not qualify. |
|
|
20
|
+
| Anthropic / all configured chat models | `https://api.anthropic.com/v1` | `@ai-sdk/anthropic@4.0.72`; `tools.webSearch_20250305({ maxUses: 1 })`; forced `web_search`, `disableParallelToolUse: true` | `thinking: { type: 'disabled' }` | Matching `server_tool_use` and `web_search_tool_result` with a result array; URLs from `web_search_result`. Unrelated text citations do not qualify. |
|
|
21
|
+
| Google / all configured chat models | `https://generativelanguage.googleapis.com/v1beta` | `@ai-sdk/google@4.0.88`; `tools.googleSearch({})`, automatic tool choice | `thinkingConfig: { thinkingBudget: 0, includeThoughts: false }` | Nonempty `groundingMetadata.webSearchQueries` and safe `groundingChunks[].web.uri` sources. Grounding chunks without executed queries do not qualify. Google may choose not to search; that returns `noEvidence`, not fabricated success. |
|
|
22
|
+
| Alibaba / all configured chat models | Official DashScope regional/workspace `/compatible-mode/v1` endpoints | `@ai-sdk/alibaba@2.0.61`; Chat Completions with instance-scoped fetch adding `enable_search: true` and `search_options.forced_search: true` | `enableThinking: false`, `preserveThinking: false` | An answer without search evidence returns `status: 'unverified'`, findings and `sources: []`. This is not verified search execution or freshness. An empty answer returns `noEvidence`. |
|
|
23
|
+
| DeepSeek, Moonshot, Cohere, Ollama, OpenAI-compatible, OpenCode, custom endpoints and providers without a search adapter | Not admitted | No search adapter | Not applicable | Always `webSearch: false`; ordinary model calls remain available under their existing rules. |
|
|
24
|
+
|
|
25
|
+
OpenAI's native search uses Responses even when ordinary main generation uses Chat Completions. This is an explicit provider adapter for the same exact model and service, not a fallback. Search-only options do not modify global `reasoningOf` or the main conversation's reasoning configuration. All adapters use `maxRetries: 0`.
|
|
26
|
+
|
|
27
|
+
Provider-level admission without model restrictions was explicitly requested by the user. The original three adapters retain their executed-search and safe-source requirement. Alibaba alone permits source-free text under the explicitly approved `unverified` policy, because compatible Chat Completions does not return independently verifiable search evidence. The instance-scoped fetch sets only the SDK request's `enable_search` and `search_options.forced_search` options, preserves headers and cancellation, and never rewrites the endpoint, selected model, credential or protocol. Ordinary Alibaba generation remains unchanged. All incompatible model/options responses fail safely without fallback. The locked OpenAI SDK can warn and omit reasoningEffort for IDs it classifies as unknown/non-reasoning; this is not a vendor capability statement. Alibaba uses its own SDK-typed thinking-off options rather than the OpenAI codec.
|
|
28
|
+
|
|
29
|
+
### Official references and verification boundary
|
|
30
|
+
|
|
31
|
+
- OpenAI: [Web search](https://developers.openai.com/api/docs/guides/tools-web-search) and [GPT-5.4](https://developers.openai.com/api/docs/models/gpt-5.4). The guide describes lower search quality with GPT-5.4's `none` reasoning setting; the implementation does not substitute a different reasoning level.
|
|
32
|
+
- Anthropic: [Web search tool](https://platform.claude.com/docs/en/agents-and-tools/tool-use/web-search-tool), [extended thinking](https://platform.claude.com/docs/en/build-with-claude/extended-thinking), and [Claude Sonnet 4.6](https://platform.claude.com/docs/en/about-claude/models/whats-new-claude-4-6).
|
|
33
|
+
- Google: [Grounding with Google Search](https://ai.google.dev/gemini-api/docs/google-search) and [thinking configuration](https://docs.cloud.google.com/vertex-ai/generative-ai/docs/thinking). Gemini 2.5 Flash permits a zero thinking budget; that conclusion must not be generalized to Gemini 2.5 Pro.
|
|
34
|
+
- Alibaba: [Web search](https://www.alibabacloud.com/help/en/model-studio/web-search) and [forced web search](https://help.aliyun.com/zh/model-studio/web-search#6f83c89f7dw0v). The compatible Chat Completions surface supports `enable_search` and `search_options.forced_search` but does not provide search sources. `enable_search` alone allows the model to decide whether to search; the isolated child also sets `forced_search: true`. Sending both options is still not independent proof of vendor search execution or freshness, so source-free answers remain unverified.
|
|
35
|
+
|
|
36
|
+
When an Alibaba service leaves its base URL empty, requests explicitly use the application catalog's Beijing endpoint (`https://dashscope.aliyuncs.com/compatible-mode/v1`), matching the editor rather than the SDK's implicit Singapore default. An explicitly configured regional/workspace endpoint is preserved. Use a credential valid for that region; an authentication failure in the main model call occurs before the search tool and is not a source-evidence failure.
|
|
37
|
+
|
|
38
|
+
Verification consists of official documentation, locked SDK types, compilation, and actual SDK serialization/parsing against loopback HTTP fixtures. No real provider key or paid model call was used. This does not establish vendor-account availability, regional availability, production attribution/display compliance, live cancellation settlement, billing, response quality or successful live search. Before enabling a real service, review its current account, model, search, attribution and display requirements, then run a separately authorized minimal live acceptance case. Do not describe fixture success as vendor acceptance.
|
|
39
|
+
|
|
40
|
+
## Isolation and result safety
|
|
41
|
+
|
|
42
|
+
Each query creates an isolated model call containing only the query and fixed retrieval instructions. Main system prompts, history, attachments, page/UI context, business tools, sandbox, knowledge, entry credentials and business results are not copied into that call. The model may deliberately include information in its query; this is not a data-loss-prevention boundary, and users must not submit sensitive queries to an external provider.
|
|
43
|
+
|
|
44
|
+
### Retrieval prompts and query planning
|
|
45
|
+
|
|
46
|
+
All four providers share `WEB_SEARCH_RETRIEVAL_INSTRUCTIONS` in `server/online/search/prompts.ts`. The child is a retrieval assistant for another model, not the final user-facing author: return 1–6 concise factual bullets, prefer relevant authoritative evidence, distinguish forecast/event dates from publication dates, and name specific gaps without generic website recommendations or unsupported real-time claims. It does not generate a separate Sources section; structured sources still come from provider evidence, never from parsing model-authored URLs. Native citations may be preserved, but prompt wording cannot establish search execution or freshness.
|
|
47
|
+
|
|
48
|
+
`WEB_SEARCH_TOOL_DESCRIPTION` separately guides the main model to batch specific, non-overlapping queries within the four-query call limit and avoid similar repeated searches unless a critical fact remains missing. It retains the untrusted-output and unverified-result warnings. Reference time and location are used only when explicitly available; this change does not inject a date, timezone, location or additional parent context. Provider activation, evidence classification, budgets, retries and cancellation remain unchanged.
|
|
49
|
+
|
|
50
|
+
A result contains `results[]`: verified `{ query, status: 'success', findings, sources: [{ title, url }] }`, Alibaba-only `{ query, status: 'unverified', findings, sources: [] }`, or `{ query, status: 'failed', reason }`. Public reasons are `timeout`, `unavailable` and `noEvidence`. Generated text alone never counts as verified retrieval. Unverified text is retained for the main model with an explicit instruction to disclose that search execution, freshness and sources are unconfirmed; the card omits the visible warning and shows no source list, without changing the model-facing warning. Empty answers fail. Raw response bodies, provider metadata, HTML and exception text do not enter public results/history. Findings are untrusted text, not instructions or executable HTML. Verified sources remain bounded, deduplicated HTTP(S) URLs without credentials, with external links using `noopener noreferrer`. Public normalization preserves the unverified discriminator and rejects invented sources attached to it.
|
|
51
|
+
|
|
52
|
+
| Limit | Value |
|
|
53
|
+
| -------------------------------------- | ------------------------------------ |
|
|
54
|
+
| Queries per tool call / main execution | 4 / 8 |
|
|
55
|
+
| Shared concurrent queries | 2 |
|
|
56
|
+
| Tool deadline / per-query deadline | 60 / 30 seconds |
|
|
57
|
+
| Query / findings | 1,000 / 6,000 Unicode code points |
|
|
58
|
+
| Sources per query / title / URL | 10 / 300 / 4,096 Unicode code points |
|
|
59
|
+
|
|
60
|
+
Reservations occur synchronously before asynchronous work. Genuine approval continuations restore the original call identity and queries, so approving or denying an unrelated business tool does not reset the eight-query budget or repeat completed searches. A changed or duplicate restored search call is rejected. Main cancellation reaches active SDK HTTP requests and prevents queued requests from starting; workers settle before execution cleanup. Query timeout retains other successes. Authentication/configuration failures stop later queued work instead of retrying it. Text usage is recorded through `ModelUsageRecorder` with source `agents.webSearch`; a recording failure does not resend a completed model request. Provider-native search charges may not be represented in text-token usage.
|
|
61
|
+
|
|
62
|
+
## Chat UI and installed source
|
|
63
|
+
|
|
64
|
+
The Registry and Examples default card render the original `tool-webSearch` part once as a full-width segmented list. Each query owns a four-line fixed-height findings preview with native ellipsis and independent Expand/Collapse controls; collapsed previews fold whitespace to avoid an ellipsis on an empty line, expansion restores the original paragraph breaks, and short findings keep the preview height without a redundant button, and safe source links remain visible. Only an actively streaming unfinished search displays a gentle pulse on the existing globe icon before the card title, with no additional loading icon, distinct from the conversation's spinning indicator. Pending findings use four thicker skeleton bars (100% / 95% / 100% / 90%) distributed across the same four-line preview height, with a 2.2-second themed sweep. The card supplies a React-deduplicated, scoped stylesheet; it does not modify the shared Skeleton primitive or require consumer CSS configuration. Reduced-motion preferences disable the sweep and globe animation. Verification badges and the source-free disclaimer are omitted from the card, while the persisted evidence discriminator and model-output warning remain unchanged. Historical unfinished parts are not shown as busy, and expanding or reloading history never executes tools. An application renderer named `webSearch` takes precedence over the default; inherited renderers, approval cards and application form proposals keep their existing behavior. Do not replace the SDK message owner, add a parallel message store or reconstruct synthetic search messages.
|
|
65
|
+
|
|
66
|
+
The new source imports `@nocobase/app-plugin-agents/shared/web-search` and `@nocobase/app-plugin-agents/shared/web-search-results`; both must exist in source and published `dist` export maps. Registry deployment must wait for the matching Agents release. The Registry floor in this change is `^1.0.0-beta.21`, the next planned feature-bearing prerelease after the rebased beta.20 baseline; verify the actual release contains these exports before publishing the Registry, and adjust that floor if release sequencing changes. Local acceptance uses the current unversioned feature tarball, not a claim that this future package is already published. Do not upgrade every unrelated dependency when raising this floor.
|
|
67
|
+
|
|
68
|
+
When upgrading installed source, merge only the toggle, card, translations, imports and registration changes. Preserve application-owned renderers, form proposals, conversation actions, input availability, creation recovery, retry gating, history refresh, pending presentation and locale customizations. Examples installs the chat; Default does not, so Default needs no chat-source copy. Neither template gains a new global layout or default search policy.
|
|
69
|
+
|
|
70
|
+
## Offline regression and optional live acceptance
|
|
71
|
+
|
|
72
|
+
Focused backend coverage is in `tests/web-search.test.ts`, `tests/web-search-alibaba.test.ts`, `tests/web-search-providers.test.ts`, `tests/search-budget.test.ts`, `tests/search-capabilities.test.ts` and `tests/web-search-package.test.ts`. It covers real SDK serialization, source requirements and the Alibaba exception, ordinary-chat isolation, unknown model admission, safe errors, active/queued cancellation, concurrency, deadlines, budget restoration, usage and Native model/history replay. Registry and Examples component tests verify bilingual source-free rendering without warning labels or fabricated links, independent expansion, overflow-only controls, resize handling and observer cleanup. Existing chat, configuration, business-tool and approval suites remain required.
|
|
73
|
+
|
|
74
|
+
Examples' `tests/fixtures/web-search-browser-server.ts` starts the existing compiled production-acceptance server with a synthetic loopback transport. Its fixture reroutes the configured official provider URL only in the test process and blocks nonlocal network destinations; production endpoint admission is unchanged. `tests/playwright/web-search.test.ts` uses `APP_URL`, `WEBSEARCH_FIXTURE_URL`, `E2E_USERNAME`, `E2E_PASSWORD` and optional `E2E_BROWSER_PATH`/`E2E_SCREENSHOT_DIR`. Run it only against that disposable fixture. It covers desktop/mobile default-off behavior, first-send model snapshot, configuration PATCH, safe expandable results, partial failure, history without another search, and Stop closing active connections without a permanent spinner.
|
|
75
|
+
|
|
76
|
+
For optional live acceptance, obtain explicit permission for the selected provider and spending first. Use one non-sensitive public query on one exact admitted model, capture only safe request settings and source results, confirm no business context leaves the isolated search call, and verify reasoning configuration and cancellation independently. A live request can incur search and token charges even if later cancelled; do not run it automatically or retry an unknown outcome.
|
package/docs/runner-agents.md
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
# Agents discovered from runners
|
|
2
2
|
|
|
3
|
-
Each runner reports the coding tools it has, and for each tool whether it is signed in and the models its account lists (`tools[].models`). In the transaction of that report, `AgentService.syncRunner` keeps one agent for each tool and model the runner reports for a tool it has enabled, installed and signed in (`reportedModels` in `shared/runners.ts`): a combination no agent exists for yet becomes a new agent, `pending`, and the agents the runner still reports get their `lastReportedAt` refreshed, at most every ten minutes. The agent's id is `runnerAgentId(tool, model)`, so two runners reporting the same combination keep one agent.
|
|
3
|
+
Each runner reports the coding tools it has, and for each tool whether it is signed in and the models its account lists (`tools[].models`). In the transaction of that report, `AgentService.syncRunner` keeps one agent for each tool and model the runner reports for a tool it has enabled, installed and signed in (`reportedModels` in `shared/runners.ts`): a combination no agent exists for yet becomes a new agent, `pending`, and the agents the runner still reports get their `lastReportedAt` refreshed, at most every ten minutes. The agent's id is `runnerAgentId(tool, model)`, so two runners reporting the same combination keep one agent. Reports do not restore marked records or fill missing model entries. Runner agents are listed according to their status; their model entry is derived from their own tool and model when read, preserving a stored reasoning effort when present.
|
|
4
4
|
|
|
5
5
|
Models are normalized before they are compared (`normalizeModel` in `shared/model-catalog.ts`): a known alias such as Claude Code's `opus` becomes the catalog's id, a release suffix (a date or `-latest`) is dropped, and OpenCode and Pi keep their `provider/` prefix with the model after it normalized the same way. The catalog names each agent (`agentNameOf`, such as "Claude · Opus 5.5") and suggests, in English and Chinese, what it is good at; a model it does not know is named after its id with nothing suggested. Keep the catalog to the models the tools offer today, checked against `TOOL_MODEL_SUGGESTIONS` in `@nocobase/agent-protocol`; removing a model from it only loses its label and suggestion, never the agent.
|
|
6
6
|
|
|
7
7
|
A pending agent is offered no work. Someone who manages agents (`agents.agents` manage) enables it on the Agent page or with `PATCH /api/agents/:agentId` (`agent update` on the CLI), writing what it is good at (required: `GOOD_AT_REQUIRED` otherwise) and, optionally, its default reasoning effort among those its tool takes (`EFFORT_UNSUPPORTED` otherwise; `medium` by default when the tool takes it). Every change names the revision it was made against and is refused with `REVISION_CONFLICT` when the agent changed since. Disabling an agent withdraws its queued runs and announces `agent.removed` with `reason` `disabled`; its conversations report it as not enabled until it is enabled again.
|
|
8
8
|
|
|
9
|
-
Where an agent can run is worked out per caller (`GET /api/agents`, `AgentView`): the online
|
|
9
|
+
Where an agent can run is worked out per caller (`GET /api/agents`, `AgentView`): the online shared runners and personal runners whose tool is enabled, installed and signed in with the agent's model, not marked unavailable there, and whose owner's policy takes the agent. `personalOnly` says only personal runners have it, which take their owners' work only. `unusable` says why the caller's work cannot start now: `pending`, `disabled`, `unreported` (no runner reported it for 14 days, `AGENT_UNREPORTED_AFTER_MS`), `notConfigured` (an application's own agent with no tool and model yet), `noRunner` or `othersPersonal` (only other people's personal runners have it). The roster a project manager picks from (`GET /api/agents/available`, `Agents.roster`) lists the enabled agents reported recently, each with whether a runner would take the caller's work now.
|
|
10
10
|
|
|
11
11
|
A run fails `modelUnavailable` when the tool's account cannot use the model after all. The claim's runner then marks that tool and model unavailable (`Runner.unavailableModels`, with the models it reported at the time), and no claim offers the model there until the runner reports the tool's models differently, such as after its account changed. Other runners are unaffected.
|
|
12
12
|
|
|
13
13
|
An application keeps agents of its own with `ensureSystem` (`source` `system`), such as a project manager: their name, description, instructions, business actions and tools and models are what the application writes, and people do not change them (`AGENT_MANAGED`). Every discovered agent gets the application's instructions and business actions through `setDefaults(provider)`; `applyDefaults()` writes them to every agent that differs, so a change in the application reaches agents discovered before it. An application updating only its compatibility action catalog can use `applyDefaults({ preserveInstructions: true })` to retain existing instructions.
|
|
14
14
|
|
|
15
|
-
Upgrading removes every agent an earlier version kept, online agents included (`202610240020_ag_runner_agents`): their rows stay
|
|
15
|
+
Upgrading from before runner agents were introduced removes every agent an earlier version kept, online agents included (`202610240020_ag_runner_agents`): their rows stay marked `deletedAt` and disabled, so runs, comments and conversations that name them still show their names; their queued runs are cancelled, pending run requests withdrawn, and default chat agents that named them cleared. Those legacy records remain removed. A repair migration clears stale deletion and archive markers on runner agents and fills an empty model entry from the stored tool and model, using the tool's initial reasoning effort. It keeps each agent's status unchanged, and rolling back leaves the repaired data in place. Reads already show runner agents by status and derive a missing model entry, so an enabled agent can keep taking work before the migration runs. Older hand-configured and application-owned agents keep their existing removal behavior. The model services stay and keep serving the application's own model calls.
|
|
16
16
|
|
|
17
17
|
## Discovery management
|
|
18
18
|
|
|
@@ -14,6 +14,12 @@ Pre-send model/Agent changes and first-send ID promotion use `selectConversation
|
|
|
14
14
|
|
|
15
15
|
A fresh composer also clears carried work context: pinned business objects, registered page-object chips, filters, selected page text and checked UI sources. Page/form registrations remain available for subsequent explicit selection; cleared sources are not read or included in the next message. Closing and reopening the same chat, changing the executor and promoting a newly created conversation ID preserve its carried context. Business launchers attach only the intended context atomically with `openChat({ conversationId, draft, pin, uiSources: [{ kind: 'form', id: 'example-request' }] })`; do not call `selectUI` before opening a different conversation because the reset discards the old selection. UI values are still read only when sending, never when opening the chat. A normal new chat may retain its current route identifier, but carries no old object/filter/selection/UI snapshot.
|
|
16
16
|
|
|
17
|
+
## Resend and inline text edits
|
|
18
|
+
|
|
19
|
+
`useResendMessage(conversationId)` shares destructive admission across all views of the existing controller. Pass `{ messageId }` for original resend or `{ messageId, input: { text } }` for editing. Only a native user message may be targeted; assistant refresh passes its exact `metadata.sourceUserMessageId`, not a positional guess. The controller reads an unloaded source by ID before using the official SDK `regenerate` or `sendMessage` edit entry. Background and Runner do not gain regeneration.
|
|
20
|
+
|
|
21
|
+
SDK local truncation before POST is intentional. Durable replacement remains atomic and authoritative: rejection preserves the edit, acceptance closes it even when canonical synchronization fails, and unknown admission never retries POST or restores a stale suffix. `conversation.historyReplaced` invalidates late pages/ID reads; reconnect, manual refresh and the shared durable poll reconcile existing IDs in bounded batches so a missed deletion event cannot resurrect history. Keep the inline editor independent of the bottom composer draft. Edit Send and assistant Regenerate execute directly without a confirmation dialog. Keep pending-state disabling and a synchronous duplicate-submit guard; permanent suffix deletion and possible repeated business effects still apply. See [the full contract](./message-resend.md).
|
|
22
|
+
|
|
17
23
|
## Input, admission and recovery
|
|
18
24
|
|
|
19
25
|
The SDK transport uses the host's authenticated `ApiClient.stream`. A POST contains only the current `message: { id, role: "user", parts: [{ type: "text", text }] }`, authorized attachment IDs and optional page context. It never sends the SDK's complete browser history, assistant parts or tool output as input. Uploaded files remain the existing attachment service's responsibility.
|
|
@@ -60,7 +66,7 @@ Tool approval buttons use genuine SDK approval parts, binding `messageId`, `exec
|
|
|
60
66
|
|
|
61
67
|
A visible conversation has one shared durable-history poll, regardless of surfaces: every 5 seconds while running, every 30 seconds while idle, and none while the document is hidden or after the last surface unmounts. This provides independent-notification catch-up when instance-local announcements are missed. Running conversation detail retains the existing 5-second React Query polling; shared keys deduplicate in-flight reads, while staggered observers can each refetch. The SDK stream removes the old one-second text-growth polling.
|
|
62
68
|
|
|
63
|
-
A forward history poll makes one GET plus each bounded `nextAfter` continuation. Recovery of an interrupted pending tool can add one ID GET before its GET stream. A revision announcement makes one batched ID GET; duplicate revision announcements from multiple surfaces are coalesced. Successful input admission adds history reconciliation and a detail GET; SDK completion/recovery adds detail, forward history and an ID reread for a revisable assistant. A stalled subscription may require a second completion reconciliation after its SDK reader stops.
|
|
69
|
+
A forward history poll makes one GET plus each bounded `nextAfter` continuation. An authoritative refresh additionally rereads the loaded durable message IDs in batches of at most 100; it applies absence only after every batch succeeds. Recovery of an interrupted pending tool can add one ID GET before its GET stream. A revision announcement makes one batched ID GET; duplicate revision announcements from multiple surfaces are coalesced. Successful input admission adds history reconciliation and a detail GET; SDK completion/recovery adds detail, forward history and an ID reread for a revisable assistant. A stalled subscription may require a second completion reconciliation after its SDK reader stops. These synchronization reads create no SQL writes, locks or transactions. Resend itself is an explicit destructive admission transaction and is never an automatic poll or recovery write.
|
|
64
70
|
|
|
65
71
|
Measured warm read requests, excluding the host's authentication and authorization queries, are shown below. The native fixture has one completed reply; the Runner fixture has two saved source blocks and an interleaved notification. These counts describe the extra requests a client makes, not new SQL added inside an existing endpoint. Every sample has zero writes, transactions and explicit locks.
|
|
66
72
|
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@nocobase/app-plugin-agents",
|
|
3
3
|
"displayName": "Agents",
|
|
4
4
|
"description": "Agents for NocoBase applications: agents, the model services online agents call, their runs and conversations, and the runners people connect to run them (registration, the long-poll claim, slots, the sweeper, build jobs, and the runner and CLI tarballs the application serves).",
|
|
5
|
-
"version": "1.0.0-beta.
|
|
5
|
+
"version": "1.0.0-beta.22",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"prettier": "@nocobase/dev-config/prettier",
|
|
8
8
|
"engines": {
|
|
@@ -78,6 +78,14 @@
|
|
|
78
78
|
"types": "./dist/shared/models.d.ts",
|
|
79
79
|
"import": "./dist/shared/models.js"
|
|
80
80
|
},
|
|
81
|
+
"./shared/web-search": {
|
|
82
|
+
"types": "./dist/shared/web-search.d.ts",
|
|
83
|
+
"import": "./dist/shared/web-search.js"
|
|
84
|
+
},
|
|
85
|
+
"./shared/web-search-results": {
|
|
86
|
+
"types": "./dist/shared/web-search-results.d.ts",
|
|
87
|
+
"import": "./dist/shared/web-search-results.js"
|
|
88
|
+
},
|
|
81
89
|
"./shared/i18n": {
|
|
82
90
|
"types": "./dist/shared/i18n.d.ts",
|
|
83
91
|
"import": "./dist/shared/i18n.js"
|
|
@@ -158,6 +166,7 @@
|
|
|
158
166
|
"sqlite-vec": "^0.1.9",
|
|
159
167
|
"yaml": "^2.9.0",
|
|
160
168
|
"zod": "^4.6.5",
|
|
169
|
+
"@nocobase/document-extractor": "^0.1.0-beta.0",
|
|
161
170
|
"@nocobase/agent-protocol": "^0.1.0-beta.14",
|
|
162
171
|
"@nocobase/app-cli-client": "^0.1.0-beta.15",
|
|
163
172
|
"@nocobase/cli-envelope": "^0.1.0-beta.1",
|
|
@@ -203,7 +212,7 @@
|
|
|
203
212
|
"react-dom": "^19.2.8",
|
|
204
213
|
"typescript": "^6.0.3",
|
|
205
214
|
"vitest": "^4.1.10",
|
|
206
|
-
"@nocobase/agent-runner": "0.1.0-beta.
|
|
215
|
+
"@nocobase/agent-runner": "0.1.0-beta.18",
|
|
207
216
|
"@nocobase/app-testing": "0.1.0-beta.6",
|
|
208
217
|
"@nocobase/db-postgres": "0.1.0-beta.5",
|
|
209
218
|
"@nocobase/db-sqlite": "0.1.0-beta.6",
|