@ai-setting/roy-agent-core 1.3.10 → 1.3.11
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/index.js +1647 -0
- package/dist/index.js +12579 -89691
- package/package.json +19 -56
- package/src/config/config-component.test.ts +0 -627
- package/src/config/config-component.ts +0 -906
- package/src/config/config-parser.test.ts +0 -319
- package/src/config/config-parser.ts +0 -203
- package/src/config/decentralized-config.test.ts +0 -740
- package/src/config/env-key.ts +0 -210
- package/src/config/env-source.test.ts +0 -252
- package/src/config/env-source.ts +0 -301
- package/src/config/file-source.test.ts +0 -357
- package/src/config/file-source.ts +0 -421
- package/src/config/index.ts +0 -24
- package/src/config/protocol-resolver.test.ts +0 -217
- package/src/config/protocol-resolver.ts +0 -228
- package/src/env/agent/agent-component.abort.test.ts +0 -511
- package/src/env/agent/agent-component.record-session.test.ts +0 -349
- package/src/env/agent/agent-component.test.ts +0 -1389
- package/src/env/agent/agent-component.tool-error.test.ts +0 -327
- package/src/env/agent/agent-component.ts +0 -1711
- package/src/env/agent/agent-config-registration.test.ts +0 -226
- package/src/env/agent/agent-config-registration.ts +0 -46
- package/src/env/agent/agent-reminder-plugin.integration.test.ts +0 -243
- package/src/env/agent/index.ts +0 -10
- package/src/env/agent/summary-agent.parse-hint.test.ts +0 -360
- package/src/env/agent/summary-agent.ts +0 -508
- package/src/env/agent/types.ts +0 -536
- package/src/env/commands/commands-component.test.ts +0 -364
- package/src/env/commands/commands-component.ts +0 -604
- package/src/env/commands/commands-config-registration.test.ts +0 -198
- package/src/env/commands/commands-config-registration.ts +0 -38
- package/src/env/commands/index.ts +0 -21
- package/src/env/commands/parser.test.ts +0 -203
- package/src/env/commands/parser.ts +0 -115
- package/src/env/commands/types.ts +0 -184
- package/src/env/commands-prompt-integration.test.ts +0 -243
- package/src/env/component-env.test.ts +0 -119
- package/src/env/component.ts +0 -335
- package/src/env/constants.test.ts +0 -72
- package/src/env/constants.ts +0 -123
- package/src/env/debug/debug-component.test.ts +0 -114
- package/src/env/debug/debug-component.ts +0 -547
- package/src/env/debug/formatters/index.ts +0 -9
- package/src/env/debug/formatters/repl-formatter.test.ts +0 -139
- package/src/env/debug/formatters/repl-formatter.ts +0 -358
- package/src/env/debug/formatters/trace-formatter.test.ts +0 -119
- package/src/env/debug/formatters/trace-formatter.ts +0 -191
- package/src/env/debug/formatters/tree-formatter.test.ts +0 -107
- package/src/env/debug/formatters/tree-formatter.ts +0 -325
- package/src/env/debug/index.ts +0 -38
- package/src/env/debug/parser/regex-parser.test.ts +0 -201
- package/src/env/debug/parser/regex-parser.ts +0 -196
- package/src/env/debug/parser/span-builder.test.ts +0 -241
- package/src/env/debug/parser/span-builder.ts +0 -386
- package/src/env/debug/reader/log-reader.test.ts +0 -170
- package/src/env/debug/reader/log-reader.ts +0 -186
- package/src/env/debug/reader/span-db-reader.test.ts +0 -118
- package/src/env/debug/reader/span-db-reader.ts +0 -201
- package/src/env/debug/types.test.ts +0 -187
- package/src/env/debug/types.ts +0 -171
- package/src/env/environment-init.test.ts +0 -183
- package/src/env/environment-lifecycle.test.ts +0 -516
- package/src/env/environment-service.test.ts +0 -332
- package/src/env/environment.handle-query.test.ts +0 -96
- package/src/env/environment.test.ts +0 -232
- package/src/env/environment.ts +0 -708
- package/src/env/errors.test.ts +0 -165
- package/src/env/errors.ts +0 -157
- package/src/env/event-source/event-source-agent-handler.test.ts +0 -193
- package/src/env/event-source/event-source-agent-handler.ts +0 -111
- package/src/env/event-source/event-source-component.process-cleanup.test.ts +0 -236
- package/src/env/event-source/event-source-component.stop.test.ts +0 -346
- package/src/env/event-source/event-source-component.test.ts +0 -1207
- package/src/env/event-source/event-source-component.ts +0 -1379
- package/src/env/event-source/event-source-config-registration.test.ts +0 -242
- package/src/env/event-source/event-source-config-registration.ts +0 -37
- package/src/env/event-source/event-source-integration.test.ts +0 -320
- package/src/env/event-source/event-source-platform.test.ts +0 -630
- package/src/env/event-source/types.ts +0 -298
- package/src/env/hook/global-hook-manager.ts +0 -162
- package/src/env/hook/hook-manager.test.ts +0 -374
- package/src/env/hook/hook-manager.ts +0 -309
- package/src/env/hook/index.ts +0 -38
- package/src/env/hook/types.ts +0 -138
- package/src/env/index.ts +0 -144
- package/src/env/interface.ts +0 -203
- package/src/env/llm/hooks.test.ts +0 -293
- package/src/env/llm/hooks.ts +0 -316
- package/src/env/llm/index.ts +0 -61
- package/src/env/llm/invoke-threshold-check.test.ts +0 -88
- package/src/env/llm/invoke-timeout.test.ts +0 -54
- package/src/env/llm/invoke.test.ts +0 -71
- package/src/env/llm/invoke.ts +0 -1039
- package/src/env/llm/llm-config.test.ts +0 -523
- package/src/env/llm/llm.test.ts +0 -233
- package/src/env/llm/llm.ts +0 -568
- package/src/env/llm/provider.test.ts +0 -182
- package/src/env/llm/provider.ts +0 -108
- package/src/env/llm/transform.test.ts +0 -251
- package/src/env/llm/transform.ts +0 -286
- package/src/env/llm/types.test.ts +0 -580
- package/src/env/llm/types.ts +0 -424
- package/src/env/log-trace/decorator-otel.test.ts +0 -182
- package/src/env/log-trace/decorator.ts +0 -230
- package/src/env/log-trace/index.ts +0 -79
- package/src/env/log-trace/log-trace-component.test.ts +0 -242
- package/src/env/log-trace/log-trace-component.ts +0 -497
- package/src/env/log-trace/log-trace-config-registration.test.ts +0 -348
- package/src/env/log-trace/log-trace-config-registration.ts +0 -45
- package/src/env/log-trace/logger.test.ts +0 -149
- package/src/env/log-trace/logger.ts +0 -522
- package/src/env/log-trace/opentelemetry/cli-propagation.test.ts +0 -147
- package/src/env/log-trace/opentelemetry/cli-propagation.ts +0 -194
- package/src/env/log-trace/opentelemetry/integration.test.ts +0 -668
- package/src/env/log-trace/opentelemetry/mod.ts +0 -25
- package/src/env/log-trace/opentelemetry/propagation-env.test.ts +0 -181
- package/src/env/log-trace/opentelemetry/propagation-env.ts +0 -136
- package/src/env/log-trace/opentelemetry/propagation.test.ts +0 -259
- package/src/env/log-trace/opentelemetry/propagation.ts +0 -215
- package/src/env/log-trace/opentelemetry/tracer-provider-context.test.ts +0 -166
- package/src/env/log-trace/opentelemetry/tracer-provider.test.ts +0 -379
- package/src/env/log-trace/opentelemetry/tracer-provider.ts +0 -612
- package/src/env/log-trace/span-storage.test.ts +0 -145
- package/src/env/log-trace/span-storage.ts +0 -230
- package/src/env/log-trace/trace-context.test.ts +0 -187
- package/src/env/log-trace/trace-context.ts +0 -162
- package/src/env/log-trace/types.test.ts +0 -63
- package/src/env/log-trace/types.ts +0 -172
- package/src/env/mcp/README.md +0 -244
- package/src/env/mcp/__integration__/mcp-component.integration.test.ts +0 -373
- package/src/env/mcp/config.test.ts +0 -74
- package/src/env/mcp/config.ts +0 -116
- package/src/env/mcp/index.ts +0 -41
- package/src/env/mcp/loader.test.ts +0 -161
- package/src/env/mcp/loader.ts +0 -209
- package/src/env/mcp/mcp-component.test.ts +0 -111
- package/src/env/mcp/mcp-component.ts +0 -358
- package/src/env/mcp/mcp-config-registration.test.ts +0 -304
- package/src/env/mcp/mcp-config-registration.ts +0 -50
- package/src/env/mcp/scanner.test.ts +0 -170
- package/src/env/mcp/scanner.ts +0 -246
- package/src/env/mcp/tool/adapter.test.ts +0 -520
- package/src/env/mcp/tool/adapter.ts +0 -521
- package/src/env/mcp/tool/index.ts +0 -5
- package/src/env/mcp/types.test.ts +0 -171
- package/src/env/mcp/types.ts +0 -79
- package/src/env/memory/README.md +0 -177
- package/src/env/memory/built-in/index.ts +0 -59
- package/src/env/memory/built-in/recall-memory.ts +0 -103
- package/src/env/memory/built-in/record-memory.ts +0 -148
- package/src/env/memory/index.ts +0 -20
- package/src/env/memory/memory-component.test.ts +0 -239
- package/src/env/memory/memory-component.ts +0 -503
- package/src/env/memory/memory-config-registration.test.ts +0 -67
- package/src/env/memory/memory-config-registration.ts +0 -48
- package/src/env/memory/memory-config.ts +0 -45
- package/src/env/memory/memory-file.test.ts +0 -268
- package/src/env/memory/plugin/index.ts +0 -48
- package/src/env/memory/plugin/memory-agent.test.ts +0 -249
- package/src/env/memory/plugin/memory-agent.ts +0 -365
- package/src/env/memory/plugin/memory-manager.ts +0 -198
- package/src/env/memory/plugin/memory-plugin-agent.test.ts +0 -145
- package/src/env/memory/plugin/memory-plugin.ts +0 -210
- package/src/env/memory/plugin/plugin-simplified.test.ts +0 -51
- package/src/env/memory/plugin/recall-memory.test.ts +0 -106
- package/src/env/memory/plugin/recall-memory.ts +0 -53
- package/src/env/memory/plugin/types.ts +0 -101
- package/src/env/memory/tools/memory-agent-tools.ts +0 -228
- package/src/env/memory/types.ts +0 -85
- package/src/env/paths.ts +0 -118
- package/src/env/prompt/index.ts +0 -18
- package/src/env/prompt/memory-prompts.test.ts +0 -91
- package/src/env/prompt/prompt-component.test.ts +0 -491
- package/src/env/prompt/prompt-component.ts +0 -619
- package/src/env/prompt/prompt-config-registration.test.ts +0 -213
- package/src/env/prompt/prompt-config-registration.ts +0 -39
- package/src/env/prompt/prompts-index.ts +0 -504
- package/src/env/prompt/renderer.ts +0 -67
- package/src/env/prompt/types.ts +0 -136
- package/src/env/session/hooks.ts +0 -18
- package/src/env/session/index.ts +0 -37
- package/src/env/session/search-query-parser.test.ts +0 -425
- package/src/env/session/search-query-parser.ts +0 -171
- package/src/env/session/session-checkpoint.test.ts +0 -523
- package/src/env/session/session-component.extract-recent-messages.test.ts +0 -209
- package/src/env/session/session-component.test.ts +0 -132
- package/src/env/session/session-component.ts +0 -1249
- package/src/env/session/session-config-registration.test.ts +0 -138
- package/src/env/session/session-config-registration.ts +0 -52
- package/src/env/session/session-message-converter.test.ts +0 -763
- package/src/env/session/session-message-converter.ts +0 -415
- package/src/env/session/session-message-e2e.test.ts +0 -448
- package/src/env/session/session-search.test.ts +0 -391
- package/src/env/session/session-store.test.ts +0 -362
- package/src/env/session/session-store.ts +0 -141
- package/src/env/session/storage/index.ts +0 -6
- package/src/env/session/storage/memory.ts +0 -502
- package/src/env/session/storage/sqlite.ts +0 -794
- package/src/env/session/types.ts +0 -742
- package/src/env/skill/config.ts +0 -39
- package/src/env/skill/index.ts +0 -6
- package/src/env/skill/parser.test.ts +0 -116
- package/src/env/skill/parser.ts +0 -77
- package/src/env/skill/scanner.test.ts +0 -211
- package/src/env/skill/scanner.ts +0 -119
- package/src/env/skill/skill-component.test.ts +0 -234
- package/src/env/skill/skill-component.ts +0 -352
- package/src/env/skill/skill-config-registration.test.ts +0 -60
- package/src/env/skill/skill-config-registration.ts +0 -43
- package/src/env/skill/tool/index.ts +0 -1
- package/src/env/skill/tool/skill-tool.test.ts +0 -100
- package/src/env/skill/tool/skill-tool.ts +0 -72
- package/src/env/skill/types.ts +0 -64
- package/src/env/task/delegate/delegate-tool.test.ts +0 -498
- package/src/env/task/delegate/delegate-tool.ts +0 -1014
- package/src/env/task/delegate/index.ts +0 -18
- package/src/env/task/delegate/stop-tool.test.ts +0 -140
- package/src/env/task/delegate/stop-tool.ts +0 -119
- package/src/env/task/delegate/task-events.test.ts +0 -178
- package/src/env/task/delegate/task-events.ts +0 -143
- package/src/env/task/hooks/contexts.test.ts +0 -92
- package/src/env/task/hooks/contexts.ts +0 -192
- package/src/env/task/hooks/index.ts +0 -23
- package/src/env/task/hooks/task-hook-points.test.ts +0 -32
- package/src/env/task/hooks/task-hook-points.ts +0 -54
- package/src/env/task/index.ts +0 -7
- package/src/env/task/plugins/index.ts +0 -13
- package/src/env/task/plugins/task-plugin.test.ts +0 -74
- package/src/env/task/plugins/task-plugin.ts +0 -89
- package/src/env/task/plugins/task-tag-plugin.test.ts +0 -377
- package/src/env/task/plugins/task-tag-plugin.ts +0 -319
- package/src/env/task/plugins/task-workflow-extractor.integration.test.ts +0 -226
- package/src/env/task/plugins/workflow-extractor-agent.test.ts +0 -107
- package/src/env/task/plugins/workflow-extractor-agent.ts +0 -225
- package/src/env/task/storage/index.ts +0 -6
- package/src/env/task/storage/sqlite-task-store.test.ts +0 -283
- package/src/env/task/storage/sqlite-task-store.ts +0 -903
- package/src/env/task/storage/task-search.test.ts +0 -291
- package/src/env/task/tag-service.test.ts +0 -198
- package/src/env/task/tag-service.ts +0 -264
- package/src/env/task/task-component.test.ts +0 -193
- package/src/env/task/task-component.ts +0 -658
- package/src/env/task/task-config-registration.test.ts +0 -57
- package/src/env/task/task-config-registration.ts +0 -37
- package/src/env/task/task-types.test.ts +0 -137
- package/src/env/task/tools/complete-tool.ts +0 -44
- package/src/env/task/tools/create-tool.ts +0 -49
- package/src/env/task/tools/delete-tool.ts +0 -43
- package/src/env/task/tools/get-tool.ts +0 -59
- package/src/env/task/tools/index.ts +0 -10
- package/src/env/task/tools/list-tool.ts +0 -40
- package/src/env/task/tools/operation/create-tool.ts +0 -48
- package/src/env/task/tools/operation/delete-tool.ts +0 -43
- package/src/env/task/tools/operation/get-tool.ts +0 -43
- package/src/env/task/tools/operation/index.ts +0 -9
- package/src/env/task/tools/operation/list-tool.ts +0 -40
- package/src/env/task/tools/operation/operation-tools.test.ts +0 -274
- package/src/env/task/tools/operation/operation-types.ts +0 -75
- package/src/env/task/tools/operation/update-tool.ts +0 -47
- package/src/env/task/tools/task-tools.test.ts +0 -203
- package/src/env/task/tools/task-types.test.ts +0 -75
- package/src/env/task/tools/task-types.ts +0 -68
- package/src/env/task/tools/update-tool.ts +0 -70
- package/src/env/task/types.ts +0 -160
- package/src/env/tool/built-in/bash.ts +0 -201
- package/src/env/tool/built-in/echo.ts +0 -29
- package/src/env/tool/built-in/edit-file.test.ts +0 -136
- package/src/env/tool/built-in/edit-file.ts +0 -92
- package/src/env/tool/built-in/glob.test.ts +0 -94
- package/src/env/tool/built-in/glob.ts +0 -65
- package/src/env/tool/built-in/grep.test.ts +0 -122
- package/src/env/tool/built-in/grep.ts +0 -108
- package/src/env/tool/built-in/index.ts +0 -44
- package/src/env/tool/built-in/read-file.test.ts +0 -84
- package/src/env/tool/built-in/read-file.ts +0 -75
- package/src/env/tool/built-in/write-file.test.ts +0 -119
- package/src/env/tool/built-in/write-file.ts +0 -68
- package/src/env/tool/index.ts +0 -24
- package/src/env/tool/registry.test.ts +0 -257
- package/src/env/tool/registry.ts +0 -167
- package/src/env/tool/tool-component.test.ts +0 -559
- package/src/env/tool/tool-component.ts +0 -563
- package/src/env/tool/tool-config-registration.test.ts +0 -249
- package/src/env/tool/tool-config-registration.ts +0 -46
- package/src/env/tool/types.ts +0 -267
- package/src/env/tool/validator.test.ts +0 -143
- package/src/env/tool/validator.ts +0 -44
- package/src/env/types.ts +0 -180
- package/src/env/workflow/ask-user-tool-registration.test.ts +0 -216
- package/src/env/workflow/complex-workflow.integration.test.ts +0 -1900
- package/src/env/workflow/decorators/decorator-node.ts +0 -229
- package/src/env/workflow/decorators/decorator.test.ts +0 -196
- package/src/env/workflow/decorators/edge.ts +0 -82
- package/src/env/workflow/decorators/index.ts +0 -31
- package/src/env/workflow/decorators/node-as.ts +0 -98
- package/src/env/workflow/decorators/workflow.ts +0 -54
- package/src/env/workflow/engine/dag-manager.test.ts +0 -570
- package/src/env/workflow/engine/dag-manager.ts +0 -594
- package/src/env/workflow/engine/engine.ts +0 -1422
- package/src/env/workflow/engine/event-bus.test.ts +0 -359
- package/src/env/workflow/engine/event-bus.ts +0 -156
- package/src/env/workflow/engine/executor-agent-session.test.ts +0 -84
- package/src/env/workflow/engine/executor.test.ts +0 -619
- package/src/env/workflow/engine/executor.ts +0 -593
- package/src/env/workflow/engine/index.ts +0 -24
- package/src/env/workflow/engine/node-registry.test.ts +0 -560
- package/src/env/workflow/engine/node-registry.ts +0 -289
- package/src/env/workflow/engine/resume-removed.test.ts +0 -22
- package/src/env/workflow/engine/scheduler.test.ts +0 -715
- package/src/env/workflow/engine/scheduler.ts +0 -318
- package/src/env/workflow/engine/workflow-engine.test.ts +0 -815
- package/src/env/workflow/extractor/workflow-converter.ts +0 -306
- package/src/env/workflow/fixtures.ts +0 -380
- package/src/env/workflow/index.ts +0 -38
- package/src/env/workflow/integration/run-resume-unified.test.ts +0 -186
- package/src/env/workflow/integration/service-integration.test.ts +0 -267
- package/src/env/workflow/metadata/keys.ts +0 -12
- package/src/env/workflow/nodes/agent-component-adapter.test.ts +0 -318
- package/src/env/workflow/nodes/agent-component-adapter.ts +0 -448
- package/src/env/workflow/nodes/agent-node.test.ts +0 -371
- package/src/env/workflow/nodes/agent-node.ts +0 -598
- package/src/env/workflow/nodes/ask-user-node.ts +0 -113
- package/src/env/workflow/nodes/condition-node.ts +0 -200
- package/src/env/workflow/nodes/index.ts +0 -9
- package/src/env/workflow/nodes/merge-node.ts +0 -141
- package/src/env/workflow/nodes/skill-node.test.ts +0 -253
- package/src/env/workflow/nodes/skill-node.ts +0 -393
- package/src/env/workflow/nodes/tool-node.test.ts +0 -251
- package/src/env/workflow/nodes/tool-node.ts +0 -493
- package/src/env/workflow/nodes/workflow-llm-history.test.ts +0 -455
- package/src/env/workflow/nodes/workflow-node.test.ts +0 -315
- package/src/env/workflow/nodes/workflow-node.ts +0 -311
- package/src/env/workflow/service/index.ts +0 -27
- package/src/env/workflow/service/registry.test.ts +0 -133
- package/src/env/workflow/service/registry.ts +0 -71
- package/src/env/workflow/service/workflow-service.test.ts +0 -310
- package/src/env/workflow/service/workflow-service.ts +0 -393
- package/src/env/workflow/storage/index.ts +0 -28
- package/src/env/workflow/storage/mock-repositories.ts +0 -385
- package/src/env/workflow/storage/sqlite.test.ts +0 -179
- package/src/env/workflow/storage/sqlite.ts +0 -163
- package/src/env/workflow/storage/workflow-repo.test.ts +0 -780
- package/src/env/workflow/storage/workflow-repo.ts +0 -342
- package/src/env/workflow/tools/ask-user-tool.ts +0 -82
- package/src/env/workflow/tools/index.ts +0 -26
- package/src/env/workflow/tools/run-workflow.test.ts +0 -352
- package/src/env/workflow/tools/run-workflow.ts +0 -214
- package/src/env/workflow/types/context.ts +0 -18
- package/src/env/workflow/types/decorators-types.ts +0 -198
- package/src/env/workflow/types/event.test.ts +0 -515
- package/src/env/workflow/types/event.ts +0 -193
- package/src/env/workflow/types/index.ts +0 -49
- package/src/env/workflow/types/run.test.ts +0 -437
- package/src/env/workflow/types/run.ts +0 -173
- package/src/env/workflow/types/workflow-hil.ts +0 -114
- package/src/env/workflow/types/workflow-message.test.ts +0 -138
- package/src/env/workflow/types/workflow-message.ts +0 -196
- package/src/env/workflow/types/workflow-session.test.ts +0 -95
- package/src/env/workflow/types/workflow-session.ts +0 -59
- package/src/env/workflow/types/workflow.test.ts +0 -495
- package/src/env/workflow/types/workflow.ts +0 -195
- package/src/env/workflow/types_compat.ts +0 -51
- package/src/env/workflow/utils/create-workflow.ts +0 -47
- package/src/env/workflow/utils/execution-state.ts +0 -245
- package/src/env/workflow/utils/index.ts +0 -18
- package/src/env/workflow/utils/node-registry-helper.ts +0 -58
- package/src/env/workflow/utils/recovery-validator.test.ts +0 -460
- package/src/env/workflow/utils/recovery-validator.ts +0 -377
- package/src/env/workflow/utils/session-parser.test.ts +0 -111
- package/src/env/workflow/utils/session-parser.ts +0 -94
- package/src/env/workflow/utils/session-recovery.test.ts +0 -334
- package/src/env/workflow/utils/session-recovery.ts +0 -188
- package/src/env/workflow/utils/template-resolver.test.ts +0 -258
- package/src/env/workflow/utils/template-resolver.ts +0 -436
- package/src/env/workflow/utils/validation-rules.ts +0 -149
- package/src/env/workflow/workflow-component.ts +0 -544
- package/src/index.ts +0 -422
- package/src/utils/id.ts +0 -21
|
@@ -1,342 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview Workflow Repository
|
|
3
|
-
*
|
|
4
|
-
* SQLite-based repository for workflow CRUD operations.
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
import { randomUUID } from 'crypto';
|
|
8
|
-
import type { Workflow, WorkflowDefinition, WorkflowMetadata, WorkflowConfig } from '../types';
|
|
9
|
-
import { getDatabase } from './sqlite';
|
|
10
|
-
|
|
11
|
-
// Row interface matching database schema
|
|
12
|
-
export interface WorkflowRow {
|
|
13
|
-
id: string;
|
|
14
|
-
name: string;
|
|
15
|
-
version: string;
|
|
16
|
-
description: string | null;
|
|
17
|
-
definition: string;
|
|
18
|
-
config: string;
|
|
19
|
-
metadata: string;
|
|
20
|
-
tags: string;
|
|
21
|
-
task_id: number | null;
|
|
22
|
-
created_at: string;
|
|
23
|
-
updated_at: string;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
// Query options for listing workflows
|
|
27
|
-
export interface ListWorkflowsOptions {
|
|
28
|
-
limit?: number;
|
|
29
|
-
offset?: number;
|
|
30
|
-
orderBy?: 'name' | 'created_at' | 'updated_at';
|
|
31
|
-
order?: 'asc' | 'desc';
|
|
32
|
-
tag?: string;
|
|
33
|
-
taskId?: number; // 新增:按任务 ID 精确过滤
|
|
34
|
-
search?: string; // 新增:搜索 description + tags
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
// Update options
|
|
38
|
-
export interface UpdateWorkflowOptions {
|
|
39
|
-
name?: string;
|
|
40
|
-
version?: string;
|
|
41
|
-
description?: string;
|
|
42
|
-
definition?: WorkflowDefinition;
|
|
43
|
-
config?: WorkflowConfig;
|
|
44
|
-
metadata?: WorkflowMetadata;
|
|
45
|
-
tags?: string[];
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* Row to Workflow conversion helper
|
|
50
|
-
*/
|
|
51
|
-
export function rowToWorkflow(row: WorkflowRow): Workflow {
|
|
52
|
-
const metadata = JSON.parse(row.metadata) as WorkflowMetadata;
|
|
53
|
-
// Merge task_id from column into metadata
|
|
54
|
-
if (row.task_id !== null) {
|
|
55
|
-
metadata.taskId = row.task_id;
|
|
56
|
-
}
|
|
57
|
-
return {
|
|
58
|
-
id: row.id,
|
|
59
|
-
name: row.name,
|
|
60
|
-
version: row.version,
|
|
61
|
-
description: row.description || undefined,
|
|
62
|
-
definition: JSON.parse(row.definition) as WorkflowDefinition,
|
|
63
|
-
config: JSON.parse(row.config) as WorkflowConfig,
|
|
64
|
-
metadata,
|
|
65
|
-
tags: JSON.parse(row.tags) as string[],
|
|
66
|
-
createdAt: new Date(row.created_at),
|
|
67
|
-
updatedAt: new Date(row.updated_at),
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
/**
|
|
72
|
-
* WorkflowRepository class
|
|
73
|
-
*
|
|
74
|
-
* Provides CRUD operations for workflows in SQLite.
|
|
75
|
-
*/
|
|
76
|
-
export class WorkflowRepository {
|
|
77
|
-
private db: ReturnType<typeof getDatabase>;
|
|
78
|
-
|
|
79
|
-
constructor(db?: ReturnType<typeof getDatabase>) {
|
|
80
|
-
this.db = db || getDatabase();
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
/**
|
|
84
|
-
* Create a new workflow
|
|
85
|
-
*/
|
|
86
|
-
create(workflow: Omit<Workflow, 'id' | 'createdAt' | 'updatedAt'>): Workflow {
|
|
87
|
-
const id = randomUUID();
|
|
88
|
-
const now = new Date().toISOString();
|
|
89
|
-
|
|
90
|
-
const stmt = this.db.prepare(`
|
|
91
|
-
INSERT INTO workflows (id, name, version, description, definition, config, metadata, tags, task_id, created_at, updated_at)
|
|
92
|
-
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
93
|
-
`);
|
|
94
|
-
|
|
95
|
-
stmt.run(
|
|
96
|
-
id,
|
|
97
|
-
workflow.name,
|
|
98
|
-
workflow.version,
|
|
99
|
-
workflow.description || null,
|
|
100
|
-
JSON.stringify(workflow.definition),
|
|
101
|
-
JSON.stringify(workflow.config),
|
|
102
|
-
JSON.stringify(workflow.metadata),
|
|
103
|
-
JSON.stringify(workflow.tags),
|
|
104
|
-
workflow.metadata?.taskId || null, // 新增
|
|
105
|
-
now,
|
|
106
|
-
now
|
|
107
|
-
);
|
|
108
|
-
|
|
109
|
-
return {
|
|
110
|
-
...workflow,
|
|
111
|
-
id,
|
|
112
|
-
createdAt: new Date(now),
|
|
113
|
-
updatedAt: new Date(now),
|
|
114
|
-
};
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
/**
|
|
118
|
-
* Create a workflow from definition only
|
|
119
|
-
*/
|
|
120
|
-
createFromDefinition(definition: WorkflowDefinition, options?: {
|
|
121
|
-
config?: WorkflowConfig;
|
|
122
|
-
metadata?: WorkflowMetadata;
|
|
123
|
-
tags?: string[];
|
|
124
|
-
}): Workflow {
|
|
125
|
-
const workflow: Omit<Workflow, 'id' | 'createdAt' | 'updatedAt'> = {
|
|
126
|
-
name: definition.name,
|
|
127
|
-
version: definition.version,
|
|
128
|
-
description: definition.description,
|
|
129
|
-
definition,
|
|
130
|
-
config: options?.config || definition.config || {},
|
|
131
|
-
metadata: options?.metadata || definition.metadata || {},
|
|
132
|
-
tags: options?.tags || definition.metadata?.tags || [],
|
|
133
|
-
};
|
|
134
|
-
|
|
135
|
-
return this.create(workflow);
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
/**
|
|
139
|
-
* Get a workflow by ID
|
|
140
|
-
*/
|
|
141
|
-
getById(id: string): Workflow | undefined {
|
|
142
|
-
const row = this.db.prepare('SELECT * FROM workflows WHERE id = ?').get(id) as WorkflowRow | undefined;
|
|
143
|
-
if (!row) return undefined;
|
|
144
|
-
return rowToWorkflow(row);
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
/**
|
|
148
|
-
* Get a workflow by name (returns latest version)
|
|
149
|
-
*/
|
|
150
|
-
getByName(name: string): Workflow | undefined {
|
|
151
|
-
const row = this.db.prepare(
|
|
152
|
-
'SELECT * FROM workflows WHERE name = ? ORDER BY updated_at DESC LIMIT 1'
|
|
153
|
-
).get(name) as WorkflowRow | undefined;
|
|
154
|
-
if (!row) return undefined;
|
|
155
|
-
return rowToWorkflow(row);
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
/**
|
|
159
|
-
* Get a specific version of a workflow by name
|
|
160
|
-
*/
|
|
161
|
-
getByNameAndVersion(name: string, version: string): Workflow | undefined {
|
|
162
|
-
const row = this.db.prepare(
|
|
163
|
-
'SELECT * FROM workflows WHERE name = ? AND version = ?'
|
|
164
|
-
).get(name, version) as WorkflowRow | undefined;
|
|
165
|
-
if (!row) return undefined;
|
|
166
|
-
return rowToWorkflow(row);
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
/**
|
|
170
|
-
* List workflows with optional filtering and pagination
|
|
171
|
-
*/
|
|
172
|
-
list(options?: ListWorkflowsOptions): Workflow[] {
|
|
173
|
-
let sql = 'SELECT * FROM workflows';
|
|
174
|
-
const params: any[] = [];
|
|
175
|
-
const conditions: string[] = [];
|
|
176
|
-
|
|
177
|
-
// Filter by tag
|
|
178
|
-
if (options?.tag) {
|
|
179
|
-
conditions.push('tags LIKE ?');
|
|
180
|
-
params.push(`%${options.tag}%`);
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
// Filter by taskId - SQLite INTEGER comparison
|
|
184
|
-
if (options?.taskId !== undefined) {
|
|
185
|
-
conditions.push('task_id = ?');
|
|
186
|
-
params.push(options.taskId);
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
// Apply WHERE clause
|
|
190
|
-
if (conditions.length > 0) {
|
|
191
|
-
sql += ' WHERE ' + conditions.join(' AND ');
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
// Order by
|
|
195
|
-
const orderBy = options?.orderBy || 'updated_at';
|
|
196
|
-
const order = options?.order || 'desc';
|
|
197
|
-
sql += ` ORDER BY ${orderBy} ${order.toUpperCase()}`;
|
|
198
|
-
|
|
199
|
-
// Pagination
|
|
200
|
-
if (options?.limit !== undefined) {
|
|
201
|
-
sql += ' LIMIT ?';
|
|
202
|
-
params.push(options.limit);
|
|
203
|
-
}
|
|
204
|
-
if (options?.offset !== undefined) {
|
|
205
|
-
sql += ' OFFSET ?';
|
|
206
|
-
params.push(options.offset);
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
const rows = this.db.prepare(sql).all(...params) as WorkflowRow[];
|
|
210
|
-
let workflows = rows.map(rowToWorkflow);
|
|
211
|
-
|
|
212
|
-
// Apply search filter in-memory (description + tags)
|
|
213
|
-
if (options?.search) {
|
|
214
|
-
// Lazy import to avoid circular dependency
|
|
215
|
-
const { parseSearchQuery, matchesQuery } = require('../../session/search-query-parser');
|
|
216
|
-
const query = parseSearchQuery(options.search);
|
|
217
|
-
workflows = workflows.filter(w => {
|
|
218
|
-
// Search in description
|
|
219
|
-
const descMatch = w.description ? matchesQuery(w.description, query) : false;
|
|
220
|
-
// Search in tags
|
|
221
|
-
const tagsMatch = w.tags.some(tag => matchesQuery(tag, query));
|
|
222
|
-
// Match if description OR any tag matches
|
|
223
|
-
return descMatch || tagsMatch;
|
|
224
|
-
});
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
return workflows;
|
|
228
|
-
}
|
|
229
|
-
|
|
230
|
-
/**
|
|
231
|
-
* List all versions of a workflow by name
|
|
232
|
-
*/
|
|
233
|
-
listVersions(name: string): Workflow[] {
|
|
234
|
-
const rows = this.db.prepare(
|
|
235
|
-
'SELECT * FROM workflows WHERE name = ? ORDER BY version DESC'
|
|
236
|
-
).all(name) as WorkflowRow[];
|
|
237
|
-
return rows.map(rowToWorkflow);
|
|
238
|
-
}
|
|
239
|
-
|
|
240
|
-
/**
|
|
241
|
-
* Update a workflow
|
|
242
|
-
*/
|
|
243
|
-
update(id: string, updates: UpdateWorkflowOptions): Workflow | undefined {
|
|
244
|
-
const existing = this.getById(id);
|
|
245
|
-
if (!existing) return undefined;
|
|
246
|
-
|
|
247
|
-
const now = new Date().toISOString();
|
|
248
|
-
const setClauses: string[] = ['updated_at = ?'];
|
|
249
|
-
const params: any[] = [now];
|
|
250
|
-
|
|
251
|
-
if (updates.name !== undefined) {
|
|
252
|
-
setClauses.push('name = ?');
|
|
253
|
-
params.push(updates.name);
|
|
254
|
-
}
|
|
255
|
-
if (updates.version !== undefined) {
|
|
256
|
-
setClauses.push('version = ?');
|
|
257
|
-
params.push(updates.version);
|
|
258
|
-
}
|
|
259
|
-
if (updates.description !== undefined) {
|
|
260
|
-
setClauses.push('description = ?');
|
|
261
|
-
params.push(updates.description);
|
|
262
|
-
}
|
|
263
|
-
if (updates.definition !== undefined) {
|
|
264
|
-
setClauses.push('definition = ?');
|
|
265
|
-
params.push(JSON.stringify(updates.definition));
|
|
266
|
-
}
|
|
267
|
-
if (updates.config !== undefined) {
|
|
268
|
-
setClauses.push('config = ?');
|
|
269
|
-
params.push(JSON.stringify(updates.config));
|
|
270
|
-
}
|
|
271
|
-
if (updates.metadata !== undefined) {
|
|
272
|
-
setClauses.push('metadata = ?');
|
|
273
|
-
params.push(JSON.stringify(updates.metadata));
|
|
274
|
-
// Update task_id column if taskId is present in metadata
|
|
275
|
-
if (updates.metadata.taskId !== undefined) {
|
|
276
|
-
setClauses.push('task_id = ?');
|
|
277
|
-
params.push(updates.metadata.taskId);
|
|
278
|
-
}
|
|
279
|
-
}
|
|
280
|
-
if (updates.tags !== undefined) {
|
|
281
|
-
setClauses.push('tags = ?');
|
|
282
|
-
params.push(JSON.stringify(updates.tags));
|
|
283
|
-
}
|
|
284
|
-
|
|
285
|
-
params.push(id);
|
|
286
|
-
|
|
287
|
-
this.db.prepare(`UPDATE workflows SET ${setClauses.join(', ')} WHERE id = ?`).run(...params);
|
|
288
|
-
|
|
289
|
-
return this.getById(id);
|
|
290
|
-
}
|
|
291
|
-
|
|
292
|
-
/**
|
|
293
|
-
* Delete a workflow
|
|
294
|
-
*/
|
|
295
|
-
delete(id: string): boolean {
|
|
296
|
-
const existing = this.getById(id);
|
|
297
|
-
if (!existing) return false;
|
|
298
|
-
|
|
299
|
-
this.db.prepare('DELETE FROM workflows WHERE id = ?').run(id);
|
|
300
|
-
return true;
|
|
301
|
-
}
|
|
302
|
-
|
|
303
|
-
/**
|
|
304
|
-
* Check if a workflow exists
|
|
305
|
-
*/
|
|
306
|
-
exists(id: string): boolean {
|
|
307
|
-
const result = this.db.prepare('SELECT 1 FROM workflows WHERE id = ?').get(id);
|
|
308
|
-
return result !== undefined;
|
|
309
|
-
}
|
|
310
|
-
|
|
311
|
-
/**
|
|
312
|
-
* Check if a workflow with name and version exists
|
|
313
|
-
*/
|
|
314
|
-
existsByNameAndVersion(name: string, version: string): boolean {
|
|
315
|
-
const result = this.db.prepare('SELECT 1 FROM workflows WHERE name = ? AND version = ?').get(name, version);
|
|
316
|
-
return result !== undefined;
|
|
317
|
-
}
|
|
318
|
-
|
|
319
|
-
/**
|
|
320
|
-
* Get total count of workflows
|
|
321
|
-
*/
|
|
322
|
-
count(): number {
|
|
323
|
-
const result = this.db.prepare('SELECT COUNT(*) as count FROM workflows').get() as { count: number };
|
|
324
|
-
return result.count;
|
|
325
|
-
}
|
|
326
|
-
|
|
327
|
-
/**
|
|
328
|
-
* Search workflows by name (partial match)
|
|
329
|
-
*/
|
|
330
|
-
search(query: string, limit?: number): Workflow[] {
|
|
331
|
-
let sql = 'SELECT * FROM workflows WHERE name LIKE ? ORDER BY updated_at DESC';
|
|
332
|
-
const params: any[] = [`%${query}%`];
|
|
333
|
-
|
|
334
|
-
if (limit !== undefined) {
|
|
335
|
-
sql += ' LIMIT ?';
|
|
336
|
-
params.push(limit);
|
|
337
|
-
}
|
|
338
|
-
|
|
339
|
-
const rows = this.db.prepare(sql).all(...params) as WorkflowRow[];
|
|
340
|
-
return rows.map(rowToWorkflow);
|
|
341
|
-
}
|
|
342
|
-
}
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview AskUserTool - Tool for requesting user input in workflow
|
|
3
|
-
*
|
|
4
|
-
* When an AgentNode calls this tool, it throws AskUserError to interrupt
|
|
5
|
-
* the workflow, allowing the workflow to pause and wait for user response.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
import { z } from 'zod';
|
|
9
|
-
import type { ToolInfo, ToolContext } from '../../tool/types';
|
|
10
|
-
import { AskUserError } from '../types/workflow-hil';
|
|
11
|
-
|
|
12
|
-
// ==================== Input Schema ====================
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* AskUserTool input schema
|
|
16
|
-
*/
|
|
17
|
-
export const AskUserInputSchema = z.object({
|
|
18
|
-
query: z.string().describe('The question or request to ask the user'),
|
|
19
|
-
options: z.array(z.string()).optional().describe('Optional choices for the user'),
|
|
20
|
-
required_confirm: z.boolean().optional().describe('If true, user must explicitly confirm'),
|
|
21
|
-
});
|
|
22
|
-
|
|
23
|
-
export type AskUserInput = z.infer<typeof AskUserInputSchema>;
|
|
24
|
-
|
|
25
|
-
// ==================== Tool Definition ====================
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* AskUserTool
|
|
29
|
-
*
|
|
30
|
-
* A special tool that can be called by Agent to request user input.
|
|
31
|
-
* Calling this tool will throw AskUserError, which the Executor will
|
|
32
|
-
* catch and convert to a workflow pause event.
|
|
33
|
-
*/
|
|
34
|
-
export type AskUserTool = ToolInfo<typeof AskUserInputSchema>;
|
|
35
|
-
|
|
36
|
-
export const askUserTool: AskUserTool = {
|
|
37
|
-
name: 'ask_user',
|
|
38
|
-
description: 'Ask user for input or confirmation. Use this tool when you need user input or validation to continue the workflow.',
|
|
39
|
-
|
|
40
|
-
parameters: AskUserInputSchema,
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* Execute the tool
|
|
44
|
-
*
|
|
45
|
-
* @param args - Tool arguments including query
|
|
46
|
-
* @param context - Tool context
|
|
47
|
-
* @throws AskUserError - Always throws to interrupt workflow
|
|
48
|
-
*/
|
|
49
|
-
async execute(
|
|
50
|
-
args: AskUserInput,
|
|
51
|
-
context: ToolContext
|
|
52
|
-
): Promise<{ success: boolean; output: string }> {
|
|
53
|
-
// Extract context info from metadata with fallbacks
|
|
54
|
-
const runId = (context.metadata?.runId as string) || 'unknown';
|
|
55
|
-
const sessionId = (context.metadata?.sessionId as string) || `workflow_${runId}`;
|
|
56
|
-
const nodeId = (context.metadata?.nodeId as string) || 'unknown';
|
|
57
|
-
|
|
58
|
-
// Build query with options if provided
|
|
59
|
-
let fullQuery = args.query;
|
|
60
|
-
if (args.options && args.options.length > 0) {
|
|
61
|
-
fullQuery = `${args.query} (选项: ${args.options.join(', ')})`;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
// Throw AskUserError to interrupt workflow
|
|
65
|
-
throw new AskUserError(
|
|
66
|
-
runId,
|
|
67
|
-
sessionId,
|
|
68
|
-
nodeId,
|
|
69
|
-
'agent',
|
|
70
|
-
fullQuery
|
|
71
|
-
);
|
|
72
|
-
},
|
|
73
|
-
|
|
74
|
-
metadata: {
|
|
75
|
-
category: 'workflow',
|
|
76
|
-
tags: ['human-in-loop', 'user-input'],
|
|
77
|
-
version: '1.0.0',
|
|
78
|
-
},
|
|
79
|
-
};
|
|
80
|
-
|
|
81
|
-
// Export singleton instance (alias)
|
|
82
|
-
export const askUserToolInstance = askUserTool;
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Workflow Tools - Phase 7
|
|
3
|
-
*
|
|
4
|
-
* Export all workflow-related tools
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
// Run Workflow Tool
|
|
8
|
-
export {
|
|
9
|
-
createRunWorkflowTool,
|
|
10
|
-
initRunWorkflowTool,
|
|
11
|
-
getRunWorkflowTool,
|
|
12
|
-
resetRunWorkflowTool,
|
|
13
|
-
RunWorkflowInputSchema,
|
|
14
|
-
type RunWorkflowInput,
|
|
15
|
-
type RunWorkflowTool,
|
|
16
|
-
type RunWorkflowToolInterface,
|
|
17
|
-
} from "./run-workflow";
|
|
18
|
-
|
|
19
|
-
// Ask User Tool
|
|
20
|
-
export {
|
|
21
|
-
askUserTool,
|
|
22
|
-
askUserToolInstance,
|
|
23
|
-
AskUserInputSchema,
|
|
24
|
-
type AskUserTool,
|
|
25
|
-
type AskUserInput,
|
|
26
|
-
} from "./ask-user-tool";
|