@ai-setting/roy-agent-core 1.7.51 → 1.7.53
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/config/config-component.d.ts +346 -0
- package/dist/config/config-parser.d.ts +45 -0
- package/dist/config/env-key.d.ts +97 -0
- package/dist/config/env-source.d.ts +113 -0
- package/dist/config/file-source.d.ts +90 -0
- package/dist/config/index.d.ts +4 -0
- package/dist/config/protocol-resolver.d.ts +94 -0
- package/dist/env/agent/agent-component.d.ts +646 -0
- package/dist/env/agent/agent-config-registration.d.ts +18 -0
- package/dist/env/agent/agent-registry.d.ts +500 -0
- package/dist/env/agent/index.d.ts +9 -0
- package/dist/env/agent/summary-agent.d.ts +44 -0
- package/dist/env/agent/types.d.ts +503 -0
- package/dist/env/commands/commands-component.d.ts +97 -0
- package/dist/env/commands/commands-config-registration.d.ts +19 -0
- package/dist/env/commands/index.d.ts +7 -0
- package/dist/env/commands/parser.d.ts +18 -0
- package/dist/env/commands/types.d.ts +133 -0
- package/dist/env/component.d.ts +186 -0
- package/dist/env/constants.d.ts +112 -0
- package/dist/env/context/env-context.d.ts +420 -0
- package/dist/env/context/env-event.d.ts +144 -0
- package/dist/env/context/index.d.ts +13 -0
- package/dist/env/debug/debug-component.d.ts +160 -0
- package/dist/env/debug/formatters/index.d.ts +8 -0
- package/dist/env/debug/formatters/repl-formatter.d.ts +80 -0
- package/dist/env/debug/formatters/trace-formatter.d.ts +43 -0
- package/dist/env/debug/formatters/tree-formatter.d.ts +72 -0
- package/dist/env/debug/index.d.ts +15 -0
- package/dist/env/debug/index.js +1 -1
- package/dist/env/debug/parser/regex-parser.d.ts +49 -0
- package/dist/env/debug/parser/span-builder.d.ts +79 -0
- package/dist/env/debug/reader/log-reader.d.ts +55 -0
- package/dist/env/debug/reader/span-db-reader.d.ts +70 -0
- package/dist/env/debug/types.d.ts +145 -0
- package/dist/env/environment.d.ts +185 -0
- package/dist/env/errors.d.ts +120 -0
- package/dist/env/event-source/bounty-cli-handler.d.ts +42 -0
- package/dist/env/event-source/bounty-im-handler.d.ts +232 -0
- package/dist/env/event-source/event-source-component.d.ts +177 -0
- package/dist/env/event-source/event-source-config-registration.d.ts +18 -0
- package/dist/env/event-source/event-source-handlers.d.ts +486 -0
- package/dist/env/event-source/event-store.d.ts +110 -0
- package/dist/env/event-source/idempotency-key.d.ts +19 -0
- package/dist/env/event-source/index.d.ts +15 -0
- package/dist/env/event-source/index.js +4 -4
- package/dist/env/event-source/timer-handler.d.ts +74 -0
- package/dist/env/event-source/types.d.ts +803 -0
- package/dist/env/hook/global-hook-manager.d.ts +73 -0
- package/dist/env/hook/hook-manager.d.ts +139 -0
- package/dist/env/hook/index.d.ts +9 -0
- package/dist/env/hook/types.d.ts +107 -0
- package/dist/env/index.d.ts +24 -0
- package/dist/env/index.js +6 -6
- package/dist/env/interface.d.ts +156 -0
- package/dist/env/lark-mention-utils.d.ts +59 -0
- package/dist/env/llm/adapter-ai-sdk.d.ts +10 -0
- package/dist/env/llm/adapter-pi-ai.d.ts +39 -0
- package/dist/env/llm/adapter.d.ts +80 -0
- package/dist/env/llm/factory.d.ts +13 -0
- package/dist/env/llm/hooks.d.ts +150 -0
- package/dist/env/llm/index.d.ts +16 -0
- package/dist/env/llm/invoke.d.ts +264 -0
- package/dist/env/llm/llm-cache.d.ts +38 -0
- package/dist/env/llm/llm.d.ts +238 -0
- package/dist/env/llm/opencode-session.d.ts +79 -0
- package/dist/env/llm/provider.d.ts +40 -0
- package/dist/env/llm/tool-args-parser.d.ts +77 -0
- package/dist/env/llm/tool-schema.d.ts +54 -0
- package/dist/env/llm/transform.d.ts +57 -0
- package/dist/env/llm/types.d.ts +818 -0
- package/dist/env/log-trace/decorator.d.ts +88 -0
- package/dist/env/log-trace/index.d.ts +14 -0
- package/dist/env/log-trace/log-trace-component.d.ts +268 -0
- package/dist/env/log-trace/log-trace-config-registration.d.ts +25 -0
- package/dist/env/log-trace/logger.d.ts +83 -0
- package/dist/env/log-trace/opentelemetry/cli-propagation.d.ts +105 -0
- package/dist/env/log-trace/opentelemetry/mod.d.ts +24 -0
- package/dist/env/log-trace/opentelemetry/propagation-env.d.ts +81 -0
- package/dist/env/log-trace/opentelemetry/propagation.d.ts +79 -0
- package/dist/env/log-trace/opentelemetry/tracer-provider.d.ts +157 -0
- package/dist/env/log-trace/span-storage.d.ts +37 -0
- package/dist/env/log-trace/trace-context.d.ts +28 -0
- package/dist/env/log-trace/types.d.ts +127 -0
- package/dist/env/mcp/command-resolver.d.ts +12 -0
- package/dist/env/mcp/config.d.ts +103 -0
- package/dist/env/mcp/index.d.ts +13 -0
- package/dist/env/mcp/loader.d.ts +78 -0
- package/dist/env/mcp/mcp-component.d.ts +54 -0
- package/dist/env/mcp/mcp-config-registration.d.ts +19 -0
- package/dist/env/mcp/npm-prefix/index.d.ts +17 -0
- package/dist/env/mcp/scanner.d.ts +38 -0
- package/dist/env/mcp/tool/adapter.d.ts +32 -0
- package/dist/env/mcp/tool/index.d.ts +4 -0
- package/dist/env/mcp/types.d.ts +131 -0
- package/dist/env/memory/built-in/index.d.ts +41 -0
- package/dist/env/memory/built-in/recall-memory.d.ts +29 -0
- package/dist/env/memory/built-in/record-memory.d.ts +44 -0
- package/dist/env/memory/index.d.ts +10 -0
- package/dist/env/memory/memory-component.d.ts +114 -0
- package/dist/env/memory/memory-config-registration.d.ts +18 -0
- package/dist/env/memory/memory-config.d.ts +18 -0
- package/dist/env/memory/plugin/index.d.ts +16 -0
- package/dist/env/memory/plugin/memory-agent.d.ts +126 -0
- package/dist/env/memory/plugin/memory-manager.d.ts +71 -0
- package/dist/env/memory/plugin/memory-plugin.d.ts +103 -0
- package/dist/env/memory/plugin/recall-memory.d.ts +16 -0
- package/dist/env/memory/plugin/types.d.ts +75 -0
- package/dist/env/memory/tools/memory-agent-tools.d.ts +109 -0
- package/dist/env/memory/types.d.ts +80 -0
- package/dist/env/paths.d.ts +46 -0
- package/dist/env/plugin/bounty-cli-notification-channel.d.ts +60 -0
- package/dist/env/plugin/event-bus-notification-channel.d.ts +50 -0
- package/dist/env/plugin/index.d.ts +13 -0
- package/dist/env/plugin/lark-cli-notification-channel.d.ts +61 -0
- package/dist/env/plugin/notification-channel.d.ts +143 -0
- package/dist/env/plugin/plugin-component.d.ts +232 -0
- package/dist/env/plugin/types.d.ts +146 -0
- package/dist/env/prompt/index.d.ts +7 -0
- package/dist/env/prompt/prompt-component.d.ts +194 -0
- package/dist/env/prompt/prompt-config-registration.d.ts +18 -0
- package/dist/env/prompt/prompt-store.d.ts +26 -0
- package/dist/env/prompt/prompts-index.d.ts +146 -0
- package/dist/env/prompt/renderer.d.ts +21 -0
- package/dist/env/prompt/types.d.ts +176 -0
- package/dist/env/session/hooks.d.ts +14 -0
- package/dist/env/session/index.d.ts +19 -0
- package/dist/env/session/search-query-parser.d.ts +41 -0
- package/dist/env/session/session-component.d.ts +464 -0
- package/dist/env/session/session-config-registration.d.ts +18 -0
- package/dist/env/session/session-id.d.ts +26 -0
- package/dist/env/session/session-message-converter.d.ts +142 -0
- package/dist/env/session/session-store.d.ts +188 -0
- package/dist/env/session/storage/index.d.ts +5 -0
- package/dist/env/session/storage/memory.d.ts +119 -0
- package/dist/env/session/storage/sqlite.d.ts +108 -0
- package/dist/env/session/types.d.ts +705 -0
- package/dist/env/session-tree-stopper.d.ts +79 -0
- package/dist/env/skill/config.d.ts +13 -0
- package/dist/env/skill/index.d.ts +6 -0
- package/dist/env/skill/parser.d.ts +9 -0
- package/dist/env/skill/scanner.d.ts +25 -0
- package/dist/env/skill/skill-component.d.ts +89 -0
- package/dist/env/skill/skill-config-registration.d.ts +18 -0
- package/dist/env/skill/tool/index.d.ts +1 -0
- package/dist/env/skill/tool/skill-tool.d.ts +15 -0
- package/dist/env/skill/types.d.ts +61 -0
- package/dist/env/task/backend/index.d.ts +24 -0
- package/dist/env/task/backend/index.js +704 -0
- package/dist/env/task/backend/roy-sidecar-task-port.d.ts +148 -0
- package/dist/env/task/backend/sqlite-task-port.d.ts +28 -0
- package/dist/env/task/backend/task-store-backend.d.ts +107 -0
- package/dist/env/task/backend/types.d.ts +293 -0
- package/dist/env/task/delegate/bg-task-id-storage.d.ts +9 -0
- package/dist/env/task/delegate/delegate-tool.d.ts +681 -0
- package/dist/env/task/delegate/index.d.ts +8 -0
- package/dist/env/task/delegate/process-registry.d.ts +58 -0
- package/dist/env/task/delegate/stop-tool.d.ts +12 -0
- package/dist/env/task/delegate/subagent-resolver.d.ts +25 -0
- package/dist/env/task/events/index.d.ts +7 -0
- package/dist/env/task/events/task-event-payloads.d.ts +101 -0
- package/dist/env/task/events/task-event-types.d.ts +23 -0
- package/dist/env/task/hooks/contexts.d.ts +191 -0
- package/dist/env/task/hooks/index.d.ts +7 -0
- package/dist/env/task/hooks/task-hook-points.d.ts +42 -0
- package/dist/env/task/index.d.ts +7 -0
- package/dist/env/task/plugins/auto-task-plugin.d.ts +38 -0
- package/dist/env/task/plugins/card-chat-routing.d.ts +135 -0
- package/dist/env/task/plugins/fake-user-message-helper.d.ts +90 -0
- package/dist/env/task/plugins/index.d.ts +8 -0
- package/dist/env/task/plugins/index.js +2 -2
- package/dist/env/task/plugins/lark-card-action-handler.d.ts +166 -0
- package/dist/env/task/plugins/lark-card-patch-notifier.d.ts +651 -0
- package/dist/env/task/plugins/lark-cli-task-notify-plugin.d.ts +248 -0
- package/dist/env/task/plugins/max-iteration-reminder-plugin.d.ts +112 -0
- package/dist/env/task/plugins/per-task-group-chat-plugin.d.ts +561 -0
- package/dist/env/task/plugins/task-tag-plugin.d.ts +70 -0
- package/dist/env/task/plugins/workflow-extractor-agent.d.ts +43 -0
- package/dist/env/task/registry-hook-installer.d.ts +43 -0
- package/dist/env/task/storage/index.d.ts +5 -0
- package/dist/env/task/storage/migrations/001_add_project_path_context.d.ts +14 -0
- package/dist/env/task/storage/migrations/002_add_task_type.d.ts +14 -0
- package/dist/env/task/storage/migrations/003_add_process_description.d.ts +20 -0
- package/dist/env/task/storage/migrations/004_rename_action_to_milestone.d.ts +37 -0
- package/dist/env/task/storage/migrations/005_convert_blob_description_to_text.d.ts +51 -0
- package/dist/env/task/storage/sqlite-task-store.d.ts +241 -0
- package/dist/env/task/tag-service.d.ts +138 -0
- package/dist/env/task/task-child-context.d.ts +70 -0
- package/dist/env/task/task-component.d.ts +270 -0
- package/dist/env/task/task-config-registration.d.ts +19 -0
- package/dist/env/task/task-creation-registry.d.ts +181 -0
- package/dist/env/task/task-reuse-context.d.ts +52 -0
- package/dist/env/task/task-reuse-registry.d.ts +31 -0
- package/dist/env/task/tools/batch-archive-tool.d.ts +9 -0
- package/dist/env/task/tools/batch-delete-tool.d.ts +9 -0
- package/dist/env/task/tools/complete-tool.d.ts +12 -0
- package/dist/env/task/tools/create-tool.d.ts +6 -0
- package/dist/env/task/tools/delete-tool.d.ts +6 -0
- package/dist/env/task/tools/get-tool.d.ts +6 -0
- package/dist/env/task/tools/index.d.ts +13 -0
- package/dist/env/task/tools/list-tool.d.ts +6 -0
- package/dist/env/task/tools/operation/create-tool.d.ts +12 -0
- package/dist/env/task/tools/operation/delete-tool.d.ts +6 -0
- package/dist/env/task/tools/operation/get-tool.d.ts +6 -0
- package/dist/env/task/tools/operation/index.d.ts +8 -0
- package/dist/env/task/tools/operation/list-tool.d.ts +6 -0
- package/dist/env/task/tools/operation/operation-types.d.ts +225 -0
- package/dist/env/task/tools/operation/update-tool.d.ts +6 -0
- package/dist/env/task/tools/search-tool.d.ts +9 -0
- package/dist/env/task/tools/task-tree-tool.d.ts +65 -0
- package/dist/env/task/tools/task-types.d.ts +255 -0
- package/dist/env/task/tools/update-tool.d.ts +6 -0
- package/dist/env/task/types.d.ts +290 -0
- package/dist/env/tool/built-in/bash-effect.d.ts +36 -0
- package/dist/env/tool/built-in/bash.d.ts +16 -0
- package/dist/env/tool/built-in/echo.d.ts +7 -0
- package/dist/env/tool/built-in/edit-file.d.ts +6 -0
- package/dist/env/tool/built-in/glob.d.ts +6 -0
- package/dist/env/tool/built-in/grep.d.ts +6 -0
- package/dist/env/tool/built-in/index.d.ts +39 -0
- package/dist/env/tool/built-in/query-background-process-tool.d.ts +113 -0
- package/dist/env/tool/built-in/read-file.d.ts +5 -0
- package/dist/env/tool/built-in/understand-image.d.ts +59 -0
- package/dist/env/tool/built-in/write-file.d.ts +5 -0
- package/dist/env/tool/index.d.ts +16 -0
- package/dist/env/tool/registry.d.ts +61 -0
- package/dist/env/tool/tool-component.d.ts +242 -0
- package/dist/env/tool/tool-config-registration.d.ts +18 -0
- package/dist/env/tool/types.d.ts +274 -0
- package/dist/env/tool/validator.d.ts +14 -0
- package/dist/env/types.d.ts +184 -0
- package/dist/env/workflow/decorators/decorator-node.d.ts +76 -0
- package/dist/env/workflow/decorators/edge.d.ts +42 -0
- package/dist/env/workflow/decorators/index.d.ts +13 -0
- package/dist/env/workflow/decorators/node-as.d.ts +40 -0
- package/dist/env/workflow/decorators/workflow.d.ts +30 -0
- package/dist/env/workflow/engine/dag-manager.d.ts +176 -0
- package/dist/env/workflow/engine/engine.d.ts +375 -0
- package/dist/env/workflow/engine/event-bus.d.ts +54 -0
- package/dist/env/workflow/engine/executor.d.ts +122 -0
- package/dist/env/workflow/engine/index.d.ts +15 -0
- package/dist/env/workflow/engine/node-registry.d.ts +159 -0
- package/dist/env/workflow/engine/scheduler.d.ts +164 -0
- package/dist/env/workflow/extractor/workflow-converter.d.ts +55 -0
- package/dist/env/workflow/fixtures.d.ts +401 -0
- package/dist/env/workflow/hooks/index.d.ts +4 -0
- package/dist/env/workflow/hooks/workflow-hook-points.d.ts +161 -0
- package/dist/env/workflow/index.d.ts +30 -0
- package/dist/env/workflow/index.js +1 -1
- package/dist/env/workflow/metadata/keys.d.ts +6 -0
- package/dist/env/workflow/nodes/agent-component-adapter.d.ts +175 -0
- package/dist/env/workflow/nodes/agent-node.d.ts +206 -0
- package/dist/env/workflow/nodes/ask-user-node.d.ts +66 -0
- package/dist/env/workflow/nodes/condition-node.d.ts +39 -0
- package/dist/env/workflow/nodes/index.d.ts +8 -0
- package/dist/env/workflow/nodes/merge-node.d.ts +40 -0
- package/dist/env/workflow/nodes/python-call-node.d.ts +95 -0
- package/dist/env/workflow/nodes/skill-node.d.ts +29 -0
- package/dist/env/workflow/nodes/tool-node.d.ts +58 -0
- package/dist/env/workflow/nodes/workflow-node.d.ts +118 -0
- package/dist/env/workflow/plugins/index.d.ts +6 -0
- package/dist/env/workflow/plugins/index.js +2 -2
- package/dist/env/workflow/plugins/lark-cli-workflow-notify-plugin.d.ts +107 -0
- package/dist/env/workflow/plugins/workflow-json-output-plugin.d.ts +166 -0
- package/dist/env/workflow/runtime/runtime-cancellation-scope.d.ts +121 -0
- package/dist/env/workflow/service/index.d.ts +9 -0
- package/dist/env/workflow/service/registry.d.ts +37 -0
- package/dist/env/workflow/service/workflow-service.d.ts +422 -0
- package/dist/env/workflow/storage/index.d.ts +11 -0
- package/dist/env/workflow/storage/mock-repositories.d.ts +106 -0
- package/dist/env/workflow/storage/safe-json.d.ts +62 -0
- package/dist/env/workflow/storage/sqlite.d.ts +57 -0
- package/dist/env/workflow/storage/tag-repo.d.ts +65 -0
- package/dist/env/workflow/storage/workflow-repo.d.ts +161 -0
- package/dist/env/workflow/tools/ask-user-tool.d.ts +35 -0
- package/dist/env/workflow/tools/index.d.ts +16 -0
- package/dist/env/workflow/tools/run-workflow.d.ts +130 -0
- package/dist/env/workflow/tools/submit-json-output-tool.d.ts +38 -0
- package/dist/env/workflow/tools/workflow-add-tool.d.ts +47 -0
- package/dist/env/workflow/tools/workflow-get-tool.d.ts +29 -0
- package/dist/env/workflow/tools/workflow-list-tool.d.ts +55 -0
- package/dist/env/workflow/tools/workflow-run-status-tool.d.ts +26 -0
- package/dist/env/workflow/tools/workflow-run-stop-tool.d.ts +29 -0
- package/dist/env/workflow/tools/workflow-search-tool.d.ts +33 -0
- package/dist/env/workflow/tools/workflow-tag-list-tool.d.ts +59 -0
- package/dist/env/workflow/tools/workflow-validate-tool.d.ts +60 -0
- package/dist/env/workflow/types/context.d.ts +17 -0
- package/dist/env/workflow/types/decorators-types.d.ts +182 -0
- package/dist/env/workflow/types/edge.d.ts +33 -0
- package/dist/env/workflow/types/event.d.ts +869 -0
- package/dist/env/workflow/types/index.d.ts +16 -0
- package/dist/env/workflow/types/run.d.ts +235 -0
- package/dist/env/workflow/types/workflow-error.d.ts +79 -0
- package/dist/env/workflow/types/workflow-hil.d.ts +57 -0
- package/dist/env/workflow/types/workflow-message.d.ts +193 -0
- package/dist/env/workflow/types/workflow-session.d.ts +17 -0
- package/dist/env/workflow/types/workflow.d.ts +654 -0
- package/dist/env/workflow/types_compat.d.ts +10 -0
- package/dist/env/workflow/utils/agent-session-metadata.d.ts +35 -0
- package/dist/env/workflow/utils/build-agent-node-output.d.ts +11 -0
- package/dist/env/workflow/utils/create-workflow.d.ts +35 -0
- package/dist/env/workflow/utils/dependency-prescan.d.ts +67 -0
- package/dist/env/workflow/utils/execution-state.d.ts +46 -0
- package/dist/env/workflow/utils/extract-agent-json-output.d.ts +6 -0
- package/dist/env/workflow/utils/index.d.ts +14 -0
- package/dist/env/workflow/utils/json-schema-to-zod.d.ts +23 -0
- package/dist/env/workflow/utils/node-id-utils.d.ts +20 -0
- package/dist/env/workflow/utils/node-output-contracts.d.ts +137 -0
- package/dist/env/workflow/utils/node-registry-helper.d.ts +36 -0
- package/dist/env/workflow/utils/output-schema-hint.d.ts +7 -0
- package/dist/env/workflow/utils/parse-agent-output-config.d.ts +9 -0
- package/dist/env/workflow/utils/recovery-validator.d.ts +30 -0
- package/dist/env/workflow/utils/sensitive-redact.d.ts +37 -0
- package/dist/env/workflow/utils/session-parser.d.ts +23 -0
- package/dist/env/workflow/utils/session-recovery.d.ts +122 -0
- package/dist/env/workflow/utils/template-contract-validator.d.ts +87 -0
- package/dist/env/workflow/utils/template-resolver.d.ts +285 -0
- package/dist/env/workflow/utils/validate-workflow-definition.d.ts +57 -0
- package/dist/env/workflow/utils/validation-rules.d.ts +103 -0
- package/dist/env/workflow/utils/workflow-message-metadata.d.ts +20 -0
- package/dist/env/workflow/utils/workflow-sanitize.d.ts +51 -0
- package/dist/env/workflow/workflow-component.d.ts +138 -0
- package/dist/index.d.ts +59 -0
- package/dist/index.js +7 -7
- package/dist/shared/@ai-setting/{roy-agent-core-9faekt5n.js → roy-agent-core-4sx6sdb2.js} +1 -1
- package/dist/shared/@ai-setting/{roy-agent-core-wxsgay02.js → roy-agent-core-brwzs8wf.js} +1 -1
- package/dist/shared/@ai-setting/{roy-agent-core-kyasfzeh.js → roy-agent-core-hch2geta.js} +45 -14
- package/dist/shared/@ai-setting/{roy-agent-core-zd077w51.js → roy-agent-core-j8e92gj8.js} +43 -1
- package/dist/shared/@ai-setting/{roy-agent-core-wwytg8rv.js → roy-agent-core-ph5qbqcx.js} +566 -78
- package/dist/util/process/process-tree-killer.d.ts +67 -0
- package/dist/utils/id.d.ts +11 -0
- package/dist/utils/loose-json.d.ts +30 -0
- package/dist/utils/media.d.ts +70 -0
- package/dist/utils/temp-file-manager/index.d.ts +99 -0
- package/package.json +4 -2
- /package/dist/shared/@ai-setting/{roy-agent-core-s214vmmd.js → roy-agent-core-4vpk40ss.js} +0 -0
- /package/dist/shared/@ai-setting/{roy-agent-core-0cfaqnz9.js → roy-agent-core-k25gv86p.js} +0 -0
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview WorkflowComponent
|
|
3
|
+
*
|
|
4
|
+
* Workflow 组件入口,提供工作流管理和执行能力。
|
|
5
|
+
*
|
|
6
|
+
* 功能:
|
|
7
|
+
* - 工作流 CRUD 操作(通过 WorkflowService)
|
|
8
|
+
* - 工作流执行(通过 WorkflowEngine)
|
|
9
|
+
* - Decorator 节点注册
|
|
10
|
+
*
|
|
11
|
+
* Note: After session-based refactoring, workflow runs are managed via SessionComponent.
|
|
12
|
+
* The Session.metadata stores workflow run state (status, input, agentSessions).
|
|
13
|
+
* Node execution messages are stored in Session.messages with workflow.node.* roles.
|
|
14
|
+
*/
|
|
15
|
+
import 'reflect-metadata';
|
|
16
|
+
import { BaseComponent, type ComponentConfig } from '../component';
|
|
17
|
+
import type { WorkflowDefinition, RunOptions, RunResult } from './types';
|
|
18
|
+
import { WorkflowService } from './service';
|
|
19
|
+
import type { ToolComponent } from '../tool/tool-component';
|
|
20
|
+
import type { LogTraceComponent } from '../log-trace/log-trace-component';
|
|
21
|
+
import type { Environment } from '../interface';
|
|
22
|
+
import type { AgentRunner } from './nodes/agent-node';
|
|
23
|
+
export { EventBus, DAGManager, Scheduler, Executor, WorkflowEngine, } from './engine';
|
|
24
|
+
export type { NodeExecutionContext, RunOptions, RunResult, RunStatus, NodeStatus, DAGAnalysis, SchedulerOptions, SchedulerState, ExecutorOptions, WorkflowEngineConfig, NodeContext, NodeFactory, } from './engine';
|
|
25
|
+
export type { NodeDefinition, RetryConfig, TemplateResolver, } from './types';
|
|
26
|
+
export type { WorkflowDefinition, } from './types/workflow';
|
|
27
|
+
export { WorkflowService, WorkflowServiceRegistry, } from './service';
|
|
28
|
+
export type { WorkflowOptions, NodeAsOptions, EdgeOptions, WorkflowMetadata, NodeMetadata, EdgeMetadata, ValidationResult, ConvertedWorkflowDefinition, ConvertedNodeDefinition, } from './types/decorators-types';
|
|
29
|
+
export { Workflow, NodeAs, Edge, WorkflowEdges, getWorkflowMetadata, getNodeMetadatas, getEdgeMetadatas, DecoratorNode, } from './decorators';
|
|
30
|
+
export type { DecoratorNodeConfig, } from './decorators/decorator-node';
|
|
31
|
+
export { WorkflowConverter, } from './extractor/workflow-converter';
|
|
32
|
+
export { createWorkflowFromClass } from './utils/create-workflow';
|
|
33
|
+
export { registerDecoratorNodeType } from './utils/node-registry-helper';
|
|
34
|
+
export interface WorkflowComponentConfig extends ComponentConfig {
|
|
35
|
+
/** 自动注册 decorator 节点类型 */
|
|
36
|
+
autoRegisterDecorators?: boolean;
|
|
37
|
+
}
|
|
38
|
+
export interface WorkflowComponentOptions {
|
|
39
|
+
/** Tool 组件(可选) */
|
|
40
|
+
toolComponent?: ToolComponent;
|
|
41
|
+
/** Log Trace 组件(可选) */
|
|
42
|
+
logTraceComponent?: LogTraceComponent;
|
|
43
|
+
/** Environment(包含 AgentComponent 等) */
|
|
44
|
+
env?: Environment;
|
|
45
|
+
/** Skill registry(可选) */
|
|
46
|
+
skillRegistry?: {
|
|
47
|
+
getSkill(name: string): any;
|
|
48
|
+
hasSkill(name: string): boolean;
|
|
49
|
+
};
|
|
50
|
+
/** Agent runner(可选,用于 agent 节点) */
|
|
51
|
+
agentRunner?: AgentRunner;
|
|
52
|
+
}
|
|
53
|
+
export declare class WorkflowComponent extends BaseComponent {
|
|
54
|
+
readonly name = "workflow";
|
|
55
|
+
readonly version = "1.0.0";
|
|
56
|
+
workflowService: WorkflowService | null;
|
|
57
|
+
sessionComponent: any;
|
|
58
|
+
private nodeRegistry;
|
|
59
|
+
private decoratorsRegistered;
|
|
60
|
+
/**
|
|
61
|
+
* 获取 WorkflowService 实例
|
|
62
|
+
*/
|
|
63
|
+
getService(): WorkflowService | null;
|
|
64
|
+
private toolComponent?;
|
|
65
|
+
private logTraceComponent?;
|
|
66
|
+
private _workflowEnv?;
|
|
67
|
+
private skillRegistry?;
|
|
68
|
+
private agentRunner?;
|
|
69
|
+
/**
|
|
70
|
+
* 初始化 WorkflowComponent
|
|
71
|
+
*/
|
|
72
|
+
init(options: any): Promise<void>;
|
|
73
|
+
/**
|
|
74
|
+
* 注册 decorator 节点类型
|
|
75
|
+
*/
|
|
76
|
+
private registerDecorators;
|
|
77
|
+
/**
|
|
78
|
+
* Note: After session-based refactoring, runRepository is no longer needed.
|
|
79
|
+
* Workflow runs are managed via SessionComponent.
|
|
80
|
+
*/
|
|
81
|
+
createService(options: {
|
|
82
|
+
workflowRepository: any;
|
|
83
|
+
toolComponent?: ToolComponent;
|
|
84
|
+
env?: Environment;
|
|
85
|
+
skillRegistry?: {
|
|
86
|
+
getSkill(name: string): any;
|
|
87
|
+
hasSkill(name: string): boolean;
|
|
88
|
+
};
|
|
89
|
+
sessionComponent?: any;
|
|
90
|
+
tagRepository?: any;
|
|
91
|
+
}): WorkflowService;
|
|
92
|
+
/**
|
|
93
|
+
* 运行工作流定义
|
|
94
|
+
*/
|
|
95
|
+
runWorkflow(definition: WorkflowDefinition, input?: Record<string, any>, options?: RunOptions): Promise<RunResult>;
|
|
96
|
+
/**
|
|
97
|
+
* 停止组件并清理资源
|
|
98
|
+
*
|
|
99
|
+
* 遵循 Component 接口契约,通过 onStop 钩子实现
|
|
100
|
+
*/
|
|
101
|
+
protected onStop(): Promise<void>;
|
|
102
|
+
/**
|
|
103
|
+
* 启动组件 - 初始化持久化的 SQLite WorkflowService
|
|
104
|
+
*/
|
|
105
|
+
start(): Promise<void>;
|
|
106
|
+
/**
|
|
107
|
+
* 注册 ask_user 工具到 ToolComponent
|
|
108
|
+
*
|
|
109
|
+
* 这样 Workflow 中的 AgentNode 执行时,Agent 能够找到并调用 ask_user 工具。
|
|
110
|
+
* ask_user 工具会抛出 AskUserError,触发 workflow pause。
|
|
111
|
+
*/
|
|
112
|
+
private registerAskUserTool;
|
|
113
|
+
/**
|
|
114
|
+
* 注册 workflow tools 到 ToolComponent
|
|
115
|
+
*
|
|
116
|
+
* 注册 5 个 workflow 工具:workflow_get, workflow_list, workflow_run,
|
|
117
|
+
* workflow_run_status, workflow_run_stop。
|
|
118
|
+
*
|
|
119
|
+
* 注意:这些工具不自动加入 defaultTools,只通过 ToolComponent 的注册表可见。
|
|
120
|
+
* 只有通过 allowedTools 明确引用的 agent(如 workflow-runner)才能使用。
|
|
121
|
+
*/
|
|
122
|
+
private registerWorkflowTools;
|
|
123
|
+
/**
|
|
124
|
+
* 初始化 SQLite 持久化的 WorkflowService
|
|
125
|
+
*
|
|
126
|
+
* Note: After session-based refactoring, runRepository is no longer needed.
|
|
127
|
+
* Workflow runs are managed via SessionComponent.
|
|
128
|
+
*/
|
|
129
|
+
private initSqliteService;
|
|
130
|
+
/**
|
|
131
|
+
* 创建内存中的 WorkflowService(用于快速运行或降级)
|
|
132
|
+
*/
|
|
133
|
+
private createInMemoryService;
|
|
134
|
+
/**
|
|
135
|
+
* 停止组件
|
|
136
|
+
*/
|
|
137
|
+
stop(): Promise<void>;
|
|
138
|
+
}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @roy-agent/core - Core SDK
|
|
3
|
+
*/
|
|
4
|
+
export { generateId, generateDescendingId } from "./utils/id";
|
|
5
|
+
export { ATTACH_FILE_MAX_BYTES, sniffMimeType, isMediaType, parseImageInput, } from "./utils/media";
|
|
6
|
+
export { type Environment, BaseEnvironment, } from "./env";
|
|
7
|
+
export type { EnvironmentConfig, BaseEnvironmentConfig, EnvEvent, EnvEventMetadata, EnvEventHandler, Action, Context, } from "./env";
|
|
8
|
+
export { type Component, type ComponentConfig, type ComponentSchema, type ComponentPaths, type ComponentStatus, type ComponentConfigChangeEvent, type ComponentWatchCallback, BaseComponent, } from "./env/component";
|
|
9
|
+
export { globalHookManager, type HookPhase, type HookMeta, type BaseHookContext, // 通用 HookContext
|
|
10
|
+
type BaseHook, // 通用 Hook
|
|
11
|
+
type BaseHookFn, // 通用 HookFn
|
|
12
|
+
type HookManagerOptions, type HookAction, type HookResult, type HookActionType, createHook, createPriorityHook, HookManager, } from "./env/hook";
|
|
13
|
+
export { type XDGPaths, type XDGDirType, XDG_PATHS, getXDGPaths, getXDGPath, } from "./env/paths";
|
|
14
|
+
export { type ConfigSource, type ConfigSourceType, type ConfigChangeEvent, type ComponentRegistration, ConfigComponent, } from "./config/config-component";
|
|
15
|
+
export { LLMComponent, type LLMComponentOptions, type ContentPart, type LLMMessage, type LLMOutput, type UsageInfo, type ToolCall, type LLMConfig, type LLMProvider, type ProviderConfig, type ProviderType, type LLMInvokeRequest, type LLMInvokeResult, type StreamEvent, invoke, invokeNonStream, parseModelString, createInvokeConfig, type InvokeConfig, type InvokeOptions, type LLMToolContext, type ConvertedUsageInfo, LLMConfigSchema, ProviderConfigSchema, ProviderCapabilitiesSchema, ModelLimitsSchema, LLMDefaultConfigSchema, isOpencodeProvider, isOpencodeEndpoint, buildOpencodeHeaders, } from "./env/llm";
|
|
16
|
+
export { ToolComponent, type ToolComponentConfig, type Tool, type ToolInfo, type ToolResult, type ToolResultMetadata, type ToolMetadata, type SandboxConfig, type ValidationResult, ToolRegistry, ToolValidator, getAllBuiltInTools, getBuiltInTool, bashTool, globTool, readFileTool, writeFileTool, editFileTool, grepTool, understandImageTool, setUnderstandImageLLMProvider, getUnderstandImageLLMProvider, resetUnderstandImageLLMProvider, type UnderstandImageLLMProvider, } from "./env/tool";
|
|
17
|
+
export type { ToolContext } from "./env/tool/types";
|
|
18
|
+
export type { ToolHookContext } from "./env/tool/tool-component";
|
|
19
|
+
export { AgentComponent, type AgentComponentConfig, type AgentContext, AgentComponentConfigSchema, type Plugin, type HookPoint, type HookContext, } from "./env/agent";
|
|
20
|
+
export { AgentRegistry, type AgentDefinition, type AgentType, type AgentConfig, type ExportOptions, } from "./env/agent/agent-registry";
|
|
21
|
+
export { LogTraceComponent, type LogTraceConfig, type LogTraceComponentOptions, LogTraceConfigSchema, Traced, TracedAs, TracedLightweight, wrapFunction, type TracedOptions, createLogger, getLogDir, setLogDirOverride, setQuietMode, isQuietMode, getLogLevels, getLogLevel, setLoggerConfigComponent, SQLiteSpanStorage, type SpanContext, type SpanAttributes, type Span, type TraceInfo, type SpanStorage, type LogLevel, type LoggerConfig, type ILogger, SpanKind, SpanStatus, OTelTracerProvider, getTracerProvider, resetTracerProvider, type OTelTracer, type OTelSpan, type SpanOptions, propagation, } from "./env/log-trace";
|
|
22
|
+
export { DebugComponent, TraceFormatter, TreeFormatter, ReplFormatter, type TraceDataSource, type TraceParserOptions, } from "./env/debug";
|
|
23
|
+
export type { TraceEntry, TraceTreeNode, ParserOptions, LogDiscoveryOptions, TraceIdInfo, TraceSummary, TraceAction, LogLevel as DebugLogLevel, FormatOptions, } from "./env/debug";
|
|
24
|
+
export { PromptComponent, type PromptComponentOptions, } from "./env/prompt/prompt-component";
|
|
25
|
+
export { PromptStore } from "./env/prompt/prompt-store";
|
|
26
|
+
export { closeDatabase } from "./env/workflow/storage/sqlite";
|
|
27
|
+
export type { PromptConfig, PromptPath, PromptEntry, PromptSource, PromptHook, RenderHookContext, PromptHookMap, } from "./env/prompt/types";
|
|
28
|
+
export { SessionComponent, MemorySessionStore, } from "./env/session";
|
|
29
|
+
export type { Session, SessionMessage, SessionConfig, CreateSessionOptions, UpdateSessionOptions, ListSessionsOptions, AddMessageOptions, SessionCheckpoint, CompactOptions, CompactResult, CompactPreview, GetContextOptions, GetContextResult, CheckpointType, SearchMessagesOptions, MessageMatch, SearchResult, } from "./env/session/types";
|
|
30
|
+
export { cascadeStopSessionTree, type CascadeStopOptions, type CascadeStopResult, } from "./env/session-tree-stopper";
|
|
31
|
+
export { createMemoryAgentTools, } from "./env/memory/tools/memory-agent-tools";
|
|
32
|
+
export type { SearchSessionsParams, GetSessionParams, WriteMemoryParams, } from "./env/memory/tools/memory-agent-tools";
|
|
33
|
+
export { getBuiltInPrompt, getBuiltInPromptNames, } from "./env/prompt/prompts-index";
|
|
34
|
+
export { TaskComponent, SQLiteTaskStore, getDefaultTaskDbPath, } from "./env/task";
|
|
35
|
+
export type { Task, TaskOperation, TaskStatus, TaskPriority, ActionType, CreateTaskOptions, UpdateTaskOptions, ListTasksOptions, CreateOperationOptions, ListOperationsOptions, TaskConfig, } from "./env/task/types";
|
|
36
|
+
export { TaskTagPlugin, createAutoTaskPlugin, type AutoTaskPluginConfig, } from "./env/task/plugins";
|
|
37
|
+
export { TaskHookPoints, type TaskHookPoint, } from "./env/task/hooks";
|
|
38
|
+
export { SkillComponent, } from "./env/skill";
|
|
39
|
+
export type { SkillEntry, SkillListItem, SkillConfig, SkillPath, SkillSource, SkillToolParams, } from "./env/skill/types";
|
|
40
|
+
export { McpComponent, } from "./env/mcp";
|
|
41
|
+
export type { McpComponentConfig, McpComponentOptions, McpPath, McpServerConfig, McpServerLocalConfig, McpServerRemoteConfig, McpServerStatus, DiscoveredMcpServer, } from "./env/mcp";
|
|
42
|
+
export { MemoryComponent, } from "./env/memory";
|
|
43
|
+
export type { MemoryConfig, MemoryPath, MemorySource, RecordMemoryParams, RecallMemoryParams, RecordMemoryMode, RecordMemoryResult, } from "./env/memory/types";
|
|
44
|
+
export type { MemoryComponentOptions } from "./env/memory";
|
|
45
|
+
export { MemoryPlugin, createMemoryPlugin, } from "./env/memory/plugin";
|
|
46
|
+
export type { MemoryPluginConfig, } from "./env/memory/plugin/types";
|
|
47
|
+
export { CommandsComponent, } from "./env/commands";
|
|
48
|
+
export type { CommandsComponentConfig, CommandIndex, ScanResult, ExecutionResult, DiscoverOptions, AddCommandOptions, RemoveCommandOptions, CommandSource, CommandsComponentOptions, } from "./env/commands";
|
|
49
|
+
export * from "./env/event-source";
|
|
50
|
+
export { ErrorCodes, RoyError, AgentError, ToolError, LLMError, ComponentError, ContextError, isRoyError, getErrorCode, } from "./env/errors";
|
|
51
|
+
export type { ErrorCode } from "./env/errors";
|
|
52
|
+
export { WorkflowComponent, type WorkflowComponentConfig, } from "./env/workflow/workflow-component";
|
|
53
|
+
export { AskUserError, type NodeInterruptEvent, type WorkflowAskUserEvent, } from "./env/workflow/types/workflow-hil";
|
|
54
|
+
export { Workflow, WorkflowEdges, NodeAs, Edge, } from "./env/workflow/decorators";
|
|
55
|
+
export type { WorkflowOptions, NodeAsOptions, EdgeMetadata, } from "./env/workflow/types/decorators-types";
|
|
56
|
+
export { createWorkflowFromClass, } from "./env/workflow/utils/create-workflow";
|
|
57
|
+
export { registerDecoratorNodeType, } from "./env/workflow/utils/node-registry-helper";
|
|
58
|
+
export { PluginComponent, type PluginComponentOptions, } from "./env/plugin/plugin-component";
|
|
59
|
+
export { BasePlugin, type PluginEnv, type HookDefinition, type HookHandler, type AgentInstanceConfig, type ToolDefinition, type HookResult as PluginHookResult, type HookContext as PluginHookContext, } from "./env/plugin/types";
|
package/dist/index.js
CHANGED
|
@@ -47,7 +47,7 @@ import {
|
|
|
47
47
|
} from "./shared/@ai-setting/roy-agent-core-j5c3chtn.js";
|
|
48
48
|
import {
|
|
49
49
|
DebugComponent
|
|
50
|
-
} from "./shared/@ai-setting/roy-agent-core-
|
|
50
|
+
} from "./shared/@ai-setting/roy-agent-core-k25gv86p.js";
|
|
51
51
|
import {
|
|
52
52
|
ReplFormatter,
|
|
53
53
|
TraceFormatter,
|
|
@@ -66,7 +66,7 @@ import {
|
|
|
66
66
|
BaseEnvironment,
|
|
67
67
|
generateDescendingId,
|
|
68
68
|
generateId
|
|
69
|
-
} from "./shared/@ai-setting/roy-agent-core-
|
|
69
|
+
} from "./shared/@ai-setting/roy-agent-core-4sx6sdb2.js";
|
|
70
70
|
import {
|
|
71
71
|
TaskComponent
|
|
72
72
|
} from "./shared/@ai-setting/roy-agent-core-39xejr39.js";
|
|
@@ -92,7 +92,7 @@ import {
|
|
|
92
92
|
larkCliHandler,
|
|
93
93
|
resolveBountyIMSystemPrompt,
|
|
94
94
|
timerHandler
|
|
95
|
-
} from "./shared/@ai-setting/roy-agent-core-
|
|
95
|
+
} from "./shared/@ai-setting/roy-agent-core-ph5qbqcx.js";
|
|
96
96
|
import {
|
|
97
97
|
BUILT_IN_EVENT_SOURCE_TYPES,
|
|
98
98
|
BUILT_IN_EVENT_SOURCE_TYPE_LIST,
|
|
@@ -109,7 +109,7 @@ import {
|
|
|
109
109
|
import {
|
|
110
110
|
TaskTagPlugin,
|
|
111
111
|
createAutoTaskPlugin
|
|
112
|
-
} from "./shared/@ai-setting/roy-agent-core-
|
|
112
|
+
} from "./shared/@ai-setting/roy-agent-core-hch2geta.js";
|
|
113
113
|
import {
|
|
114
114
|
EventStoreImpl,
|
|
115
115
|
getSharedEventStore,
|
|
@@ -123,11 +123,11 @@ import {
|
|
|
123
123
|
getBuiltInPrompt,
|
|
124
124
|
getBuiltInPromptNames
|
|
125
125
|
} from "./shared/@ai-setting/roy-agent-core-gdsqp6j8.js";
|
|
126
|
-
import"./shared/@ai-setting/roy-agent-core-
|
|
127
|
-
import"./shared/@ai-setting/roy-agent-core-
|
|
126
|
+
import"./shared/@ai-setting/roy-agent-core-brwzs8wf.js";
|
|
127
|
+
import"./shared/@ai-setting/roy-agent-core-j8e92gj8.js";
|
|
128
128
|
import {
|
|
129
129
|
WorkflowComponent
|
|
130
|
-
} from "./shared/@ai-setting/roy-agent-core-
|
|
130
|
+
} from "./shared/@ai-setting/roy-agent-core-4vpk40ss.js";
|
|
131
131
|
import {
|
|
132
132
|
init_node_registry_helper,
|
|
133
133
|
registerDecoratorNodeType
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
import {
|
|
11
11
|
LarkCardPatchNotifier,
|
|
12
12
|
humanizeValue
|
|
13
|
-
} from "./roy-agent-core-
|
|
13
|
+
} from "./roy-agent-core-j8e92gj8.js";
|
|
14
14
|
import {
|
|
15
15
|
validateWorkflowDefinition
|
|
16
16
|
} from "./roy-agent-core-na73mym1.js";
|
|
@@ -393,6 +393,17 @@ function extractPerTaskChatId(contextStr) {
|
|
|
393
393
|
return;
|
|
394
394
|
}
|
|
395
395
|
}
|
|
396
|
+
function extractPerTaskChatName(contextStr) {
|
|
397
|
+
if (!contextStr)
|
|
398
|
+
return;
|
|
399
|
+
try {
|
|
400
|
+
const obj = JSON.parse(contextStr);
|
|
401
|
+
const v = obj?.["larkPerTaskChatName"];
|
|
402
|
+
return typeof v === "string" && v.length > 0 ? v : undefined;
|
|
403
|
+
} catch {
|
|
404
|
+
return;
|
|
405
|
+
}
|
|
406
|
+
}
|
|
396
407
|
function extractPerTaskChatProfile(contextStr) {
|
|
397
408
|
if (!contextStr)
|
|
398
409
|
return;
|
|
@@ -507,7 +518,8 @@ function decideCardChatTarget(input) {
|
|
|
507
518
|
lineageChat,
|
|
508
519
|
triggerChatId,
|
|
509
520
|
triggerProfile,
|
|
510
|
-
triggerOwnership
|
|
521
|
+
triggerOwnership,
|
|
522
|
+
allowNewGroup
|
|
511
523
|
} = input;
|
|
512
524
|
const foreign = !!triggerChatId && !!triggerOwnership?.dedicated && triggerOwnership.ownerTaskIds.length > 0 && !triggerOwnership.ownerTaskIds.some((id) => lineageIds.includes(id));
|
|
513
525
|
if (triggerChatId && !foreign) {
|
|
@@ -538,16 +550,25 @@ function decideCardChatTarget(input) {
|
|
|
538
550
|
reason: "既没有触发群也没有 lineage 群(无法决定投递目标)"
|
|
539
551
|
};
|
|
540
552
|
}
|
|
553
|
+
if (allowNewGroup === true) {
|
|
554
|
+
return {
|
|
555
|
+
chatId: undefined,
|
|
556
|
+
source: "new-group",
|
|
557
|
+
profile: triggerProfile,
|
|
558
|
+
reroutedFrom: foreign ? {
|
|
559
|
+
chatId: triggerChatId,
|
|
560
|
+
ownerTaskIds: triggerOwnership.ownerTaskIds,
|
|
561
|
+
sources: triggerOwnership.sources
|
|
562
|
+
} : undefined,
|
|
563
|
+
reason: foreign ? `触发群 ${triggerChatId} 是 task ${triggerOwnership.ownerTaskIds.join(",")} 的专属群,且本 task 无群 → 需要新建(allowNewGroup=true)` : "无触发群且本 task 无群 → 需要新建(allowNewGroup=true)"
|
|
564
|
+
};
|
|
565
|
+
}
|
|
541
566
|
return {
|
|
542
|
-
chatId:
|
|
543
|
-
source: "new-group",
|
|
567
|
+
chatId: triggerChatId,
|
|
544
568
|
profile: triggerProfile,
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
sources: triggerOwnership.sources
|
|
549
|
-
} : undefined,
|
|
550
|
-
reason: foreign ? `触发群 ${triggerChatId} 是 task ${triggerOwnership.ownerTaskIds.join(",")} 的专属群,且本 task 无群 → 需要新建` : "无触发群且本 task 无群 → 需要新建"
|
|
569
|
+
source: "fallback-to-trigger",
|
|
570
|
+
reroutedFrom: undefined,
|
|
571
|
+
reason: foreign ? `触发群 ${triggerChatId} 是 task ${triggerOwnership.ownerTaskIds.join(",")} 的专属群,但默认不建群 → 退回触发群 ${triggerChatId}` : `默认不建群 → 退回触发群 ${triggerChatId}`
|
|
551
572
|
};
|
|
552
573
|
}
|
|
553
574
|
|
|
@@ -777,7 +798,8 @@ class LarkCliTaskNotifyHook {
|
|
|
777
798
|
lineageChat,
|
|
778
799
|
triggerChatId,
|
|
779
800
|
triggerProfile,
|
|
780
|
-
triggerOwnership
|
|
801
|
+
triggerOwnership,
|
|
802
|
+
allowNewGroup: this.config.allowNewGroup === true
|
|
781
803
|
});
|
|
782
804
|
if (decision.source === "new-group") {
|
|
783
805
|
if (this.cardRoutingPorts?.ensureTaskGroupChat) {
|
|
@@ -987,6 +1009,8 @@ class LarkCliTaskNotifyHook {
|
|
|
987
1009
|
return;
|
|
988
1010
|
}
|
|
989
1011
|
buildTaskMeta(task) {
|
|
1012
|
+
const recordedNames = extractRecordedChatNames(task.context);
|
|
1013
|
+
const matchedName = recordedNames.find((n) => new RegExp(`(?:Task\\s*#?\\s*|#)(?<![\\d])(?<!\\d)${task.id}(?!\\d)(?![\\d])`, "i").test(n));
|
|
990
1014
|
return {
|
|
991
1015
|
id: task.id,
|
|
992
1016
|
title: task.title,
|
|
@@ -997,7 +1021,9 @@ class LarkCliTaskNotifyHook {
|
|
|
997
1021
|
type: task.type,
|
|
998
1022
|
projectPath: task.project_path,
|
|
999
1023
|
context: task.context,
|
|
1000
|
-
currentStatus: task.current_status
|
|
1024
|
+
currentStatus: task.current_status,
|
|
1025
|
+
perTaskChatId: extractPerTaskChatId(task.context),
|
|
1026
|
+
perTaskChatName: matchedName
|
|
1001
1027
|
};
|
|
1002
1028
|
}
|
|
1003
1029
|
deriveTimelineFromOperation(operation) {
|
|
@@ -1119,6 +1145,7 @@ class PerTaskGroupChatPlugin {
|
|
|
1119
1145
|
sendWelcomeMessage: config.sendWelcomeMessage ?? true,
|
|
1120
1146
|
resolveToTriggerChatFallback: config.resolveToTriggerChatFallback ?? false,
|
|
1121
1147
|
cardInitialMessage: config.cardInitialMessage !== false,
|
|
1148
|
+
autoCreateGroup: config.autoCreateGroup === true,
|
|
1122
1149
|
cardNotifier: config.cardNotifier ?? new LarkCardPatchNotifier
|
|
1123
1150
|
};
|
|
1124
1151
|
this.cardNotifier = this.config.cardNotifier;
|
|
@@ -1263,7 +1290,11 @@ class PerTaskGroupChatPlugin {
|
|
|
1263
1290
|
console.error(`[DEBUG per-task-group-chat.onAfterCreate] env.messageId=${env.messageId}`);
|
|
1264
1291
|
console.error(`[DEBUG per-task-group-chat.onAfterCreate] env.sourceId=${env.sourceId}`);
|
|
1265
1292
|
}
|
|
1266
|
-
logger4.debug(`onAfterCreate[${this.pluginName}]: enter task=${task.id} "${task.title}" ` + `parent_task_id=${task.parent_task_id ?? "none"} ` + `requireReplyChannel=${this.config.requireReplyChannel} ` + `disableSubTaskSkip=${this.config.disableSubTaskSkip} ` + `sendWelcomeMessage=${this.config.sendWelcomeMessage}`);
|
|
1293
|
+
logger4.debug(`onAfterCreate[${this.pluginName}]: enter task=${task.id} "${task.title}" ` + `parent_task_id=${task.parent_task_id ?? "none"} ` + `requireReplyChannel=${this.config.requireReplyChannel} ` + `disableSubTaskSkip=${this.config.disableSubTaskSkip} ` + `sendWelcomeMessage=${this.config.sendWelcomeMessage} ` + `autoCreateGroup=${this.config.autoCreateGroup}`);
|
|
1294
|
+
if (!this.config.autoCreateGroup) {
|
|
1295
|
+
logger4.debug(`onAfterCreate[${this.pluginName}]: task #${task.id} autoCreateGroup=false ` + `→ skip group chat creation(按需建群:用户在卡片顶部按钮触发)`);
|
|
1296
|
+
return;
|
|
1297
|
+
}
|
|
1267
1298
|
const replyChannel = this.getReplyChannelFromCtx(ctx);
|
|
1268
1299
|
if (!replyChannel?.chatId && this.config.requireReplyChannel) {
|
|
1269
1300
|
logger4.debug(`onAfterCreate[${this.pluginName}]: no replyChannel.chatId for task #${task.id}, skip. ` + `修复:eventsource 收到 im.message.receive_v1 事件时 replyChannel 应有值;` + `或在 plugin config 设 requireReplyChannel=false 强制创建群聊(profile 降级到 fallbackProfile/无)`);
|
|
@@ -1714,4 +1745,4 @@ __legacyDecorateClassTS([
|
|
|
1714
1745
|
function createPerTaskGroupChatPlugin(config = {}) {
|
|
1715
1746
|
return new PerTaskGroupChatPlugin(config);
|
|
1716
1747
|
}
|
|
1717
|
-
export { createAutoTaskPlugin, WORKFLOW_EXTRACTOR_PROMPT, formatExtractorInput, formatExtractorInputFromDescription, parseExtractorOutput, TaskTagPlugin, mergeChatOwnership, NotifyType, LarkCliTaskNotifyHook, createLarkCliTaskNotifyHook, PerTaskGroupChatPlugin, createPerTaskGroupChatPlugin };
|
|
1748
|
+
export { createAutoTaskPlugin, WORKFLOW_EXTRACTOR_PROMPT, formatExtractorInput, formatExtractorInputFromDescription, parseExtractorOutput, TaskTagPlugin, extractPerTaskChatId, extractPerTaskChatName, mergeChatOwnership, NotifyType, LarkCliTaskNotifyHook, createLarkCliTaskNotifyHook, PerTaskGroupChatPlugin, createPerTaskGroupChatPlugin };
|
|
@@ -229,6 +229,29 @@ function buildTaskCard(opts) {
|
|
|
229
229
|
const updateCount = opts.updateCount ?? 0;
|
|
230
230
|
const spinner = opts.spinner ?? "";
|
|
231
231
|
const elements = [];
|
|
232
|
+
const hasGroup = !!(opts.meta.perTaskChatId && opts.meta.perTaskChatId.length > 0);
|
|
233
|
+
const taskIdForButton = opts.meta.id !== undefined ? String(opts.meta.id) : "";
|
|
234
|
+
elements.push({
|
|
235
|
+
tag: "button",
|
|
236
|
+
text: {
|
|
237
|
+
tag: "plain_text",
|
|
238
|
+
content: hasGroup ? "解散该群" : "为这个任务建群"
|
|
239
|
+
},
|
|
240
|
+
type: hasGroup ? "danger" : "primary",
|
|
241
|
+
value: {
|
|
242
|
+
action: hasGroup ? "disband_group" : "create_group",
|
|
243
|
+
taskId: taskIdForButton
|
|
244
|
+
}
|
|
245
|
+
});
|
|
246
|
+
if (hasGroup) {
|
|
247
|
+
const link = buildChatAppLink(opts.meta.perTaskChatId);
|
|
248
|
+
const label = opts.meta.perTaskChatName ? `\uD83D\uDCE8 进入专属群:${sanitizeInlineText(opts.meta.perTaskChatName, 60)}` : "\uD83D\uDCE8 进入专属群";
|
|
249
|
+
elements.push({
|
|
250
|
+
tag: "markdown",
|
|
251
|
+
content: `[${label}](${link})`
|
|
252
|
+
});
|
|
253
|
+
elements.push({ tag: "hr" });
|
|
254
|
+
}
|
|
232
255
|
const infoLines = renderTaskInfoLines(opts.meta);
|
|
233
256
|
if (infoLines.length > 0) {
|
|
234
257
|
elements.push({ tag: "markdown", content: infoLines.join(`
|
|
@@ -595,6 +618,25 @@ class LarkCardPatchNotifier {
|
|
|
595
618
|
this.states.delete(opts.messageId);
|
|
596
619
|
this.mutexes.delete(opts.messageId);
|
|
597
620
|
}
|
|
621
|
+
updateMetaAndBuildCard(messageId, meta, opts = {}) {
|
|
622
|
+
const state = this.states.get(messageId);
|
|
623
|
+
if (!state)
|
|
624
|
+
return;
|
|
625
|
+
state.meta = mergeTaskMeta(state.meta, meta);
|
|
626
|
+
if (opts.clearPerTaskChat) {
|
|
627
|
+
delete state.meta.perTaskChatId;
|
|
628
|
+
delete state.meta.perTaskChatName;
|
|
629
|
+
}
|
|
630
|
+
return buildTaskCard({
|
|
631
|
+
status: "running",
|
|
632
|
+
meta: state.meta,
|
|
633
|
+
milestones: state.milestones,
|
|
634
|
+
processSteps: state.processSteps,
|
|
635
|
+
progress: state.progress,
|
|
636
|
+
updateCount: state.updateCount,
|
|
637
|
+
spinner: SPINNER_EMOJIS[state.spinnerIndex] ?? SPINNER_EMOJIS[0]
|
|
638
|
+
});
|
|
639
|
+
}
|
|
598
640
|
trackedCardCount() {
|
|
599
641
|
return this.states.size;
|
|
600
642
|
}
|
|
@@ -1034,4 +1076,4 @@ function sanitize(text) {
|
|
|
1034
1076
|
return `${trimmed.slice(0, 500)}…`;
|
|
1035
1077
|
}
|
|
1036
1078
|
|
|
1037
|
-
export { humanizeValue, formatDurationMs, LarkCardPatchNotifier };
|
|
1079
|
+
export { humanizeValue, buildTaskCard, formatDurationMs, LarkCardPatchNotifier };
|