@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,248 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview LarkCliTaskNotifyHook - LarkCli 任务通知 Hook(Task #4230 重写)
|
|
3
|
+
*
|
|
4
|
+
* 在任务生命周期事件上,把「任务进展」渲染成**一张可更新 + 置顶的飞书卡片**:
|
|
5
|
+
*
|
|
6
|
+
* - `task:after.create` → notifier.startTask(发卡片 + pin)
|
|
7
|
+
* - `task:after.update` → notifier.updateTask(patch 同一卡片)
|
|
8
|
+
* - `task:after.complete` → notifier.finishTask(终态 patch + unpin)
|
|
9
|
+
* - `task:operation:after.create` → notifier.updateTask(把 operation 追加进时间线)
|
|
10
|
+
*
|
|
11
|
+
* ★ Task #4230:**旧逻辑(普通 text/post 消息通知)已全部删除**。
|
|
12
|
+
* 本 Hook 只做卡片,不再有任何 `sendLarkMessage` / `sendNotify` 路径,
|
|
13
|
+
* 也不再有 `buildReplyArgs` / 文本模板(`formatTaskCreated` /
|
|
14
|
+
* `formatTaskUpdate` / `formatOperationCreated` 等)等死代码。
|
|
15
|
+
*
|
|
16
|
+
* 卡片的样式 / lark-cli 参数契约 / 状态自持(时间线累积 + spinner 轮换)
|
|
17
|
+
* 全部由 `LarkCardPatchNotifier` 负责,见 lark-card-patch-notifier.ts。
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```typescript
|
|
21
|
+
* import { createLarkCliTaskNotifyHook } from "./lark-cli-task-notify-plugin";
|
|
22
|
+
* globalHookManager.register("task:after.create", createLarkCliTaskNotifyHook({...}));
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
import type { Hook, HookContext } from "../../hook/types";
|
|
26
|
+
import type { Task } from "../types";
|
|
27
|
+
import { getEnvContextOrEmpty } from "../../context";
|
|
28
|
+
import { LarkCardPatchNotifier } from "./lark-card-patch-notifier";
|
|
29
|
+
import { type ChatOwnership } from "./card-chat-routing";
|
|
30
|
+
/**
|
|
31
|
+
* 从 EnvContext 提取 lark 专属字段
|
|
32
|
+
*
|
|
33
|
+
* - 优先从 EventEnvelope (event 字段) 提取
|
|
34
|
+
* - Fallback 到 replyChannel
|
|
35
|
+
* - 非 lark source 事件 (github/jira/...) 返回 isLark=false,plugin 跳过
|
|
36
|
+
*/
|
|
37
|
+
export declare function extractLarkFields(env: ReturnType<typeof getEnvContextOrEmpty>): {
|
|
38
|
+
messageId?: string;
|
|
39
|
+
chatId?: string;
|
|
40
|
+
userId?: string;
|
|
41
|
+
source?: string;
|
|
42
|
+
isLark: boolean;
|
|
43
|
+
};
|
|
44
|
+
/** 通知类型(保留给配置/测试;实际只有卡片一种渲染形态) */
|
|
45
|
+
export declare enum NotifyType {
|
|
46
|
+
TASK_CREATED = "task_created",
|
|
47
|
+
TASK_COMPLETED = "task_completed",
|
|
48
|
+
TASK_UPDATED = "task_updated",
|
|
49
|
+
TASK_FAILED = "task_failed",
|
|
50
|
+
/** 操作记录新增(task:operation:after.create 触发) */
|
|
51
|
+
OPERATION_CREATED = "operation_created"
|
|
52
|
+
}
|
|
53
|
+
export interface TaskNotifyConfig {
|
|
54
|
+
/** 是否启用 */
|
|
55
|
+
enabled?: boolean;
|
|
56
|
+
/** 优先级 */
|
|
57
|
+
priority?: number;
|
|
58
|
+
/** 通知类型(用户可覆盖;空数组 = 全开) */
|
|
59
|
+
notifyTypes?: NotifyType[];
|
|
60
|
+
/** 插件名称(用于 pluginEnabled 检查) */
|
|
61
|
+
pluginName?: string;
|
|
62
|
+
/** 事件源 ID(用于 pluginEnabled 检查) */
|
|
63
|
+
sourceId?: string;
|
|
64
|
+
/**
|
|
65
|
+
* 操作记录通知节流间隔(毫秒)
|
|
66
|
+
*
|
|
67
|
+
* operation 事件在 agent 执行过程中高频触发,不加节流会频繁 patch 卡片。
|
|
68
|
+
* 默认 5000ms;设为 0 表示不节流。
|
|
69
|
+
*/
|
|
70
|
+
operationThrottleMs?: number;
|
|
71
|
+
/**
|
|
72
|
+
* 是否启用卡片模式(Task #4192 / #4196 默认 true)
|
|
73
|
+
*
|
|
74
|
+
* ★ Task #4230:卡片是本 Hook 的**唯一**渲染形态。
|
|
75
|
+
* `cardMode: false` 只是"静默 skip"的 legacy opt-out(旧 sendNotify 已删除),
|
|
76
|
+
* 不会再退化成普通文本消息。
|
|
77
|
+
*/
|
|
78
|
+
cardMode?: boolean;
|
|
79
|
+
/**
|
|
80
|
+
* LarkCardPatchNotifier 实例
|
|
81
|
+
*
|
|
82
|
+
* 不传 → plugin 自己 new 一个(messageId 由 plugin 的 Map 跟踪)。
|
|
83
|
+
*/
|
|
84
|
+
cardNotifier?: LarkCardPatchNotifier;
|
|
85
|
+
/**
|
|
86
|
+
* ★ Task #4331:是否允许路由决策走"new-group"路径(建专属群)
|
|
87
|
+
*
|
|
88
|
+
* 默认 false:触发群是别人的群 + 本 task 无群时,**不**建专属群,退回触发群
|
|
89
|
+
* 适用:默认行为(用户新要求:默认不建群)
|
|
90
|
+
*
|
|
91
|
+
* 设为 true:保留 #4230 老行为(建专属群并改投)
|
|
92
|
+
* 适用:显式开启(向后兼容)
|
|
93
|
+
*/
|
|
94
|
+
allowNewGroup?: boolean;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* 卡片路由端口(Task #4230 follow-up)
|
|
98
|
+
*
|
|
99
|
+
* 由 EventSource handler 注入(那里才有 task store / session component /
|
|
100
|
+
* lark-cli)—— 让"卡片该发哪个群"的判定与 IO 解耦,纯逻辑可单测。
|
|
101
|
+
*/
|
|
102
|
+
export interface CardRoutingPorts {
|
|
103
|
+
/**
|
|
104
|
+
* 反查「该群是否是某个 task 的专属群」(多重信号)
|
|
105
|
+
*
|
|
106
|
+
* 实现建议(见 event-source-handlers.ts):
|
|
107
|
+
* - session 的 chat↔task 绑定
|
|
108
|
+
* - task.context.larkPerTaskChatId / *followup_chat_id
|
|
109
|
+
* - 群名 "Task 3999" / "#3999"(DB 记录的群名,必要时实时查)
|
|
110
|
+
*/
|
|
111
|
+
lookupChatOwnership?: (chatId: string) => Promise<ChatOwnership | undefined>;
|
|
112
|
+
/** task 查询(lineage 上溯) */
|
|
113
|
+
getTask?: (id: number) => Promise<{
|
|
114
|
+
context?: string;
|
|
115
|
+
parent_task_id?: number | null;
|
|
116
|
+
} | undefined>;
|
|
117
|
+
/** 为 task 建/取专属群(lineage 无群且触发群是别人的群时用) */
|
|
118
|
+
ensureTaskGroupChat?: (task: Task) => Promise<{
|
|
119
|
+
chatId: string;
|
|
120
|
+
profile?: string;
|
|
121
|
+
name?: string;
|
|
122
|
+
} | undefined>;
|
|
123
|
+
}
|
|
124
|
+
export declare class LarkCliTaskNotifyHook implements Hook {
|
|
125
|
+
readonly name: string;
|
|
126
|
+
readonly priority: number;
|
|
127
|
+
readonly description?: string;
|
|
128
|
+
readonly pluginName?: string;
|
|
129
|
+
readonly sourceId?: string;
|
|
130
|
+
private readonly config;
|
|
131
|
+
/** 卡片模式 notifier 实例 */
|
|
132
|
+
private cardNotifier?;
|
|
133
|
+
/**
|
|
134
|
+
* 卡片 messageId 跟踪(key: taskId)
|
|
135
|
+
*
|
|
136
|
+
* 同一 task 的 create → update → complete 必须复用同一 messageId
|
|
137
|
+
* (单卡片语义:不刷屏)。不同 task 的卡片互不干扰。
|
|
138
|
+
*/
|
|
139
|
+
private cardMessageIds;
|
|
140
|
+
/**
|
|
141
|
+
* 操作记录节流状态
|
|
142
|
+
* key: `op:${taskId}`,value: 上次 patch 时间戳
|
|
143
|
+
*/
|
|
144
|
+
private lastNotifyTimestamps;
|
|
145
|
+
/** 卡片路由端口(由 EventSource handler 注入) */
|
|
146
|
+
private cardRoutingPorts?;
|
|
147
|
+
/**
|
|
148
|
+
* 卡片启动失败的哨兵值
|
|
149
|
+
*
|
|
150
|
+
* startTask 失败(如 chatId/profile 解析不到、lark-cli 报错)时写入,
|
|
151
|
+
* 让后续 update 直接 skip,避免"失败 → 重试 → 再失败"的风暴。
|
|
152
|
+
*/
|
|
153
|
+
private static readonly CARD_START_FAILED_SENTINEL;
|
|
154
|
+
/**
|
|
155
|
+
* ★ Task #4237 修复:首卡「进行中」哨兵
|
|
156
|
+
*
|
|
157
|
+
* 根因:`sendCardStart` 里 `ensureTaskGroupChat` 会写 task.context → 同步触发
|
|
158
|
+
* `task:after.update` → 本 hook 重入 `sendCardUpdate`;此时首卡 messageId 还没写进
|
|
159
|
+
* `cardMessageIds` → 触发 fallback 补一张卡 + 再发一张改投卡片(同一 task 3 张卡、
|
|
160
|
+
* 触发群 2 张改投卡片)。
|
|
161
|
+
*
|
|
162
|
+
* 修法:进入 `sendCardStart` 前先占位;重入的 update 看到哨兵直接跳过。
|
|
163
|
+
*/
|
|
164
|
+
private static readonly CARD_START_INFLIGHT_SENTINEL;
|
|
165
|
+
constructor(config?: TaskNotifyConfig);
|
|
166
|
+
/**
|
|
167
|
+
* 注入卡片路由端口(Task #4230 follow-up)
|
|
168
|
+
*
|
|
169
|
+
* 未注入时退化为旧行为(触发群优先,不做"别 task 专属群"判定)。
|
|
170
|
+
*/
|
|
171
|
+
setCardRoutingPorts(ports: CardRoutingPorts): void;
|
|
172
|
+
/** 诊断:端口是否注入 */
|
|
173
|
+
hasCardRoutingPorts(): boolean;
|
|
174
|
+
execute(ctx: HookContext<unknown>): Promise<void>;
|
|
175
|
+
/** 任务创建:发初始卡片(+ pin) */
|
|
176
|
+
private onAfterCreate;
|
|
177
|
+
/** 任务更新:patch 卡片(进度/当前步骤/状态) */
|
|
178
|
+
private onAfterUpdate;
|
|
179
|
+
/** 任务终态:patch 终态 + unpin */
|
|
180
|
+
private onAfterComplete;
|
|
181
|
+
/**
|
|
182
|
+
* 操作记录创建:把 operation 追加进卡片时间线
|
|
183
|
+
*
|
|
184
|
+
* ★ Task #4230:只在卡片已存在时 patch。
|
|
185
|
+
* 旧实现会 fallback `startTask`(凭空多发一张卡)——已删除。
|
|
186
|
+
*/
|
|
187
|
+
private onAfterOperationCreate;
|
|
188
|
+
private isCardModeEnabled;
|
|
189
|
+
/**
|
|
190
|
+
* 解析「卡片该发到哪个群」(Task #4230 follow-up)
|
|
191
|
+
*
|
|
192
|
+
* 规则见 card-chat-routing.ts:触发群优先,但跳过"别的 task 的专属群";
|
|
193
|
+
* 若是别人的群 → 用本 task(或祖先)的专属群;都没有 → 新建一个。
|
|
194
|
+
*
|
|
195
|
+
* @returns decision + 最终可用的 chatId/profile + 是否需要回补链接卡片
|
|
196
|
+
*/
|
|
197
|
+
private resolveCardTarget;
|
|
198
|
+
/**
|
|
199
|
+
* 收集 task 的 lineage(自己 → 父 → 祖父…,最多 10 层)
|
|
200
|
+
*
|
|
201
|
+
* 用于:(a) 找最近的专属群;(b) 判断"某个群属于谁"时确认是否在自己 lineage 上。
|
|
202
|
+
*/
|
|
203
|
+
private collectLineage;
|
|
204
|
+
/** 发初始卡片(+ pin)并缓存 messageId */
|
|
205
|
+
private sendCardStart;
|
|
206
|
+
/**
|
|
207
|
+
* patch 卡片(进度 / 当前步骤 / 状态)
|
|
208
|
+
*
|
|
209
|
+
* 若该 task 还没有卡片(AFTER_CREATE 未成功,例如 replyChannel 缺失),
|
|
210
|
+
* 降级补发一次 startTask —— 只发生一次,失败则打 sentinel 不再重试。
|
|
211
|
+
*/
|
|
212
|
+
private sendCardUpdate;
|
|
213
|
+
/** 终态:patch final status + unpin,并清理 messageId 缓存 */
|
|
214
|
+
private sendCardFinish;
|
|
215
|
+
/**
|
|
216
|
+
* 解析 chatId(优先级:replyChannel > task.context)
|
|
217
|
+
*
|
|
218
|
+
* Task #4220: user 触发的群优先 → 用户在**原群**里就能看到卡片与进展;
|
|
219
|
+
* per-task 群只作为 fallback(replyChannel 缺失时)。
|
|
220
|
+
*/
|
|
221
|
+
private resolveChatId;
|
|
222
|
+
/** 解析 profile(优先级:replyChannel > task.context) */
|
|
223
|
+
private resolveProfile;
|
|
224
|
+
/**
|
|
225
|
+
* task → 卡片"任务栏位"元信息(id/标题/描述/目标/父任务/优先级/context…)
|
|
226
|
+
*
|
|
227
|
+
* context 原样透传(JSON 字符串);渲染成可读 bullet 的活由
|
|
228
|
+
* LarkCardPatchNotifier.renderContextAsLines 负责(卡片里绝不出现 JSON)。
|
|
229
|
+
*/
|
|
230
|
+
private buildTaskMeta;
|
|
231
|
+
/**
|
|
232
|
+
* operation → 卡片时间线条目(里程碑 + 过程步骤 + 当前步骤)
|
|
233
|
+
*
|
|
234
|
+
* 兼容旧字段名(actionTitle/actionDescription)以及只带 description/type 的
|
|
235
|
+
* 历史 payload —— 不要因为字段名差异就静默丢掉事件。
|
|
236
|
+
*/
|
|
237
|
+
private deriveTimelineFromOperation;
|
|
238
|
+
/**
|
|
239
|
+
* 操作记录 patch 节流
|
|
240
|
+
*
|
|
241
|
+
* 同一 Task 在 operationThrottleMs(默认 5s)窗口内只 patch 一次,
|
|
242
|
+
* 避免 agent 每次 tool call 都刷屏 patch 卡片。
|
|
243
|
+
*/
|
|
244
|
+
private shouldThrottleOperation;
|
|
245
|
+
/** 检查是否应该发送通知 */
|
|
246
|
+
private shouldNotify;
|
|
247
|
+
}
|
|
248
|
+
export declare function createLarkCliTaskNotifyHook(config?: TaskNotifyConfig): LarkCliTaskNotifyHook;
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview MaxIterationReminderPlugin — Task #2580 (round 2)
|
|
3
|
+
*
|
|
4
|
+
* ReAct 循环的最大迭代收尾提醒(all-agents scope),与 AutoTaskPlugin
|
|
5
|
+
* 使用**完全相同**的 meta-protocol:在 `agent:after.tool` hook 中通过共享
|
|
6
|
+
* helper `enqueueToAddFakeUserMessage` 设置
|
|
7
|
+
* `ctx.toolResult.result.metadata.toAddFakeUserMessage`。AgentComponent
|
|
8
|
+
* 现有 meta-protocol 消费逻辑(`consumeMetaProtocolUserMessage` +
|
|
9
|
+
* for-loop 结束后 `flushPendingFakeUserMessage`)会按既定时机 flush。
|
|
10
|
+
*
|
|
11
|
+
* ## 为什么 round 2 不用 side-channel
|
|
12
|
+
*
|
|
13
|
+
* - 旧实现(commit f7fd5287):plugin 直接 push ctx.messages
|
|
14
|
+
* - round 1 旧实现(commit 07945d35):引入 HookContext.pendingFakeUserMessage +
|
|
15
|
+
* AgentComponent.flushPendingFakeUserMessageBeforeLlm 新 side-channel
|
|
16
|
+
* - round 2 新实现(本文件):与 AutoTaskPlugin 完全相同的实现方式,复用
|
|
17
|
+
* `toolResult.result.metadata.toAddFakeUserMessage` 同一字段、同一个
|
|
18
|
+
* AgentComponent 消费路径
|
|
19
|
+
*
|
|
20
|
+
* ## Off-by-one 精确处理
|
|
21
|
+
*
|
|
22
|
+
* 目标:让最后一次允许的 LLM iteration (iter === maxIterations) 看到提醒。
|
|
23
|
+
* 因此在 `iteration === maxIterations - 1` 的 `agent:after.tool` 触发——
|
|
24
|
+
* 此时 LLM 已返回 tool_call,工具已执行,after.tool hook 写 metadata;
|
|
25
|
+
* 下一个 iteration === maxIterations 是最后一次 LLM 调用,for-loop 结束后
|
|
26
|
+
* AgentComponent flush metadata → push user(reminder) → 下次 invokeLLM 看到。
|
|
27
|
+
*
|
|
28
|
+
* maxIterations === 1 时 iter === 0 === maxIter-1 = 0 触发,但 iter=1 之前
|
|
29
|
+
* 没有"上一轮",loop 也不进入 iter=0 的 after.tool(因为 iter=0 时 loop
|
|
30
|
+
* 条件 `iteration < 1` 失败,loop 不执行)。因此 maxIterations <= 1 时
|
|
31
|
+
* **防御性跳过**——不伪造 toolResult,不凭空写入 metadata。
|
|
32
|
+
*
|
|
33
|
+
* ## 与 AutoTaskPlugin v5.2 的关系(共享 helper + 确定性合并)
|
|
34
|
+
*
|
|
35
|
+
* | 维度 | AutoTaskPlugin v5.2 | MaxIterationReminderPlugin (本文件) |
|
|
36
|
+
* | ---------------- | ---------------------------------- | ---------------------------------- |
|
|
37
|
+
* | Hook | `agent:after.tool` | `agent:after.tool` |
|
|
38
|
+
* | 触发条件 | `iteration === threshold` (默认 20) | `iteration === maxIterations - 1` |
|
|
39
|
+
* | 适用范围 | 仅 `agent.name === "default"` | 所有 agent(default + sub-agents) |
|
|
40
|
+
* | Meta-protocol 字段 | `ctx.toolResult.result.metadata.toAddFakeUserMessage` | 同左(共享) |
|
|
41
|
+
* | 文案意图 | 建议调 delegate_task 到 roy | 要求立即总结、不要工具、然后结束 |
|
|
42
|
+
* | 注册方式 | `environment.ts:334` 显式注册 | 通过 `registerAgent()` 自动注册 |
|
|
43
|
+
*
|
|
44
|
+
* 当 `threshold === maxIter-1` 时同轮触发,共享 helper 确定性合并:
|
|
45
|
+
* 最终 user message 顺序为 `[delegate reminder..., max-iter reminder...]`,
|
|
46
|
+
* max-iter "不要再调用任何工具、直接总结" 永远在末尾作为最终指令。
|
|
47
|
+
*
|
|
48
|
+
* ## AI SDK 邻接约束
|
|
49
|
+
*
|
|
50
|
+
* 与 AutoTaskPlugin 完全相同的 flush 时机:for-loop 结束后立即 push user
|
|
51
|
+
* message 到 `messages`,保证 `[assistant(tool_calls), tool(A), tool(B), tool(C), user(reminder)]` 顺序。
|
|
52
|
+
* 不在 tool_results 之间插入 user message,AI SDK v6 邻接天然满足。
|
|
53
|
+
*/
|
|
54
|
+
import type { Plugin, HookContext, HookResult } from "../../agent/types";
|
|
55
|
+
export interface MaxIterationReminderPluginConfig {
|
|
56
|
+
/** 自定义提醒消息模板(可选)。支持 `{maxIterations}` 占位符。 */
|
|
57
|
+
messageTemplate?: string;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* MaxIterationReminderPlugin
|
|
61
|
+
*
|
|
62
|
+
* 在 agent:after.tool hook 中检测 `iteration === maxIterations - 1`,
|
|
63
|
+
* 通过共享 helper `enqueueToAddFakeUserMessage` 设置
|
|
64
|
+
* `ctx.toolResult.result.metadata.toAddFakeUserMessage`(kind="max-iter")。
|
|
65
|
+
* AgentComponent 现有 meta-protocol 消费路径会在 for-loop 结束后 flush。
|
|
66
|
+
*
|
|
67
|
+
* 适用范围:所有 agent(无 agentName 过滤)。
|
|
68
|
+
* 由 `AgentComponent.registerAgent()` 在每个 agent 创建时自动注册。
|
|
69
|
+
*
|
|
70
|
+
* 限制:`maxIterations <= 1` 时无"上一轮 after.tool → 最后一轮 LLM"边界,
|
|
71
|
+
* 防御性跳过(不伪造 toolResult,不凭空写入 metadata)。
|
|
72
|
+
*
|
|
73
|
+
* 注意(2026-10-16):compact / compact-hint 已从 `maxIterations=1` 改为 3
|
|
74
|
+
* (给「首轮没调对 tool」留一次真正重试),因此它们**会**走本插件:
|
|
75
|
+
* 提醒落在 iteration 2、压制 iteration 3。取 3 而非 2 正是为了让 iteration 2
|
|
76
|
+
* 保持干净(值为 2 时提醒会在 iteration 1 就掐死唯一的重试机会)。
|
|
77
|
+
* 详见 AgentRegistry.registerCompactAgent() 的注释。
|
|
78
|
+
*/
|
|
79
|
+
export declare class MaxIterationReminderPlugin {
|
|
80
|
+
readonly name = "MaxIterationReminderPlugin";
|
|
81
|
+
readonly version = "3.0.0";
|
|
82
|
+
readonly description = "\u5728 iteration === maxIterations - 1 \u65F6\u901A\u8FC7\u5171\u4EAB meta-protocol helper \u6CE8\u5165 fake user \u6D88\u606F\uFF1BAgentComponent \u73B0\u6709 for-loop \u540E flush\uFF1B\u9002\u7528\u4E8E\u6240\u6709 agent\u3002maxIterations<=1 \u9632\u5FA1\u6027\u8DF3\u8FC7\u3002";
|
|
83
|
+
readonly priority = 50;
|
|
84
|
+
private readonly messageTemplate;
|
|
85
|
+
/** per-query (traceId) 去重,确保一次 query 内只声明一次 */
|
|
86
|
+
private readonly injectedTraceIds;
|
|
87
|
+
constructor(config?: MaxIterationReminderPluginConfig);
|
|
88
|
+
/**
|
|
89
|
+
* Hook handler — 在 agent:after.tool 时调用。
|
|
90
|
+
*
|
|
91
|
+
* 注入条件(必须同时满足):
|
|
92
|
+
* 1. agent 当前 maxIterations > 1(防御性:单轮 agent 无前置迭代可触发)
|
|
93
|
+
* 2. `iteration === maxIterations - 1`(让 iter === maxIterations 的最后
|
|
94
|
+
* LLM 调用看到此 reminder)
|
|
95
|
+
* 3. 该 traceId 下尚未声明过(幂等保证)
|
|
96
|
+
*
|
|
97
|
+
* 行为:通过共享 helper 写入 `ctx.toolResult.result.metadata.toAddFakeUserMessage`。
|
|
98
|
+
* **不直接 push 到 ctx.messages**(meta-protocol 契约)。
|
|
99
|
+
*
|
|
100
|
+
* Trace span: `plugin.max-iter-reminder.evaluate`
|
|
101
|
+
* - attributes.params: not recorded (HookContext is too large)
|
|
102
|
+
* - log: true (captures logger.info lines for decision + metadata enqueue)
|
|
103
|
+
* - resultFilter: exposes iteration, maxIterations, willSet, kind
|
|
104
|
+
*
|
|
105
|
+
* @returns HookResult `{ continue: true }`,不中断执行
|
|
106
|
+
*/
|
|
107
|
+
execute(ctx: HookContext): Promise<HookResult>;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* 创建 MaxIterationReminderPlugin 实例
|
|
111
|
+
*/
|
|
112
|
+
export declare function createMaxIterationReminderPlugin(config?: MaxIterationReminderPluginConfig): Plugin;
|