takt 0.3.9 → 0.4.0
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/README.md +364 -325
- package/dist/agents/index.d.ts +1 -1
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +1 -1
- package/dist/agents/index.js.map +1 -1
- package/dist/agents/runner.d.ts +0 -1
- package/dist/agents/runner.d.ts.map +1 -1
- package/dist/agents/runner.js +6 -5
- package/dist/agents/runner.js.map +1 -1
- package/dist/agents/types.d.ts +3 -1
- package/dist/agents/types.d.ts.map +1 -1
- package/dist/app/cli/commands.d.ts +1 -1
- package/dist/app/cli/commands.js +9 -1
- package/dist/app/cli/commands.js.map +1 -1
- package/dist/app/cli/routing.js +1 -0
- package/dist/app/cli/routing.js.map +1 -1
- package/dist/core/models/index.d.ts +1 -1
- package/dist/core/models/index.d.ts.map +1 -1
- package/dist/core/models/schemas.d.ts +8 -6
- package/dist/core/models/schemas.d.ts.map +1 -1
- package/dist/core/models/schemas.js +16 -15
- package/dist/core/models/schemas.js.map +1 -1
- package/dist/core/models/types.d.ts +1 -1
- package/dist/core/models/types.d.ts.map +1 -1
- package/dist/core/models/workflow-types.d.ts +26 -24
- package/dist/core/models/workflow-types.d.ts.map +1 -1
- package/dist/core/workflow/constants.d.ts +7 -7
- package/dist/core/workflow/constants.d.ts.map +1 -1
- package/dist/core/workflow/constants.js +7 -7
- package/dist/core/workflow/constants.js.map +1 -1
- package/dist/core/workflow/engine/MovementExecutor.d.ts +59 -0
- package/dist/core/workflow/engine/MovementExecutor.d.ts.map +1 -0
- package/dist/core/workflow/engine/{StepExecutor.js → MovementExecutor.js} +30 -25
- package/dist/core/workflow/engine/MovementExecutor.js.map +1 -0
- package/dist/core/workflow/engine/OptionsBuilder.d.ts +6 -6
- package/dist/core/workflow/engine/OptionsBuilder.d.ts.map +1 -1
- package/dist/core/workflow/engine/OptionsBuilder.js +8 -3
- package/dist/core/workflow/engine/OptionsBuilder.js.map +1 -1
- package/dist/core/workflow/engine/ParallelRunner.d.ts +12 -10
- package/dist/core/workflow/engine/ParallelRunner.d.ts.map +1 -1
- package/dist/core/workflow/engine/ParallelRunner.js +46 -41
- package/dist/core/workflow/engine/ParallelRunner.js.map +1 -1
- package/dist/core/workflow/engine/WorkflowEngine.d.ts +16 -16
- package/dist/core/workflow/engine/WorkflowEngine.d.ts.map +1 -1
- package/dist/core/workflow/engine/WorkflowEngine.js +105 -92
- package/dist/core/workflow/engine/WorkflowEngine.js.map +1 -1
- package/dist/core/workflow/engine/blocked-handler.d.ts +3 -3
- package/dist/core/workflow/engine/blocked-handler.d.ts.map +1 -1
- package/dist/core/workflow/engine/blocked-handler.js +2 -2
- package/dist/core/workflow/engine/blocked-handler.js.map +1 -1
- package/dist/core/workflow/engine/index.d.ts +2 -1
- package/dist/core/workflow/engine/index.d.ts.map +1 -1
- package/dist/core/workflow/engine/index.js +1 -1
- package/dist/core/workflow/engine/index.js.map +1 -1
- package/dist/core/workflow/engine/loop-detector.d.ts +5 -5
- package/dist/core/workflow/engine/loop-detector.d.ts.map +1 -1
- package/dist/core/workflow/engine/loop-detector.js +8 -8
- package/dist/core/workflow/engine/loop-detector.js.map +1 -1
- package/dist/core/workflow/engine/parallel-logger.d.ts +15 -15
- package/dist/core/workflow/engine/parallel-logger.d.ts.map +1 -1
- package/dist/core/workflow/engine/parallel-logger.js +22 -21
- package/dist/core/workflow/engine/parallel-logger.js.map +1 -1
- package/dist/core/workflow/engine/state-manager.d.ts +6 -6
- package/dist/core/workflow/engine/state-manager.d.ts.map +1 -1
- package/dist/core/workflow/engine/state-manager.js +15 -16
- package/dist/core/workflow/engine/state-manager.js.map +1 -1
- package/dist/core/workflow/engine/transitions.d.ts +5 -5
- package/dist/core/workflow/engine/transitions.d.ts.map +1 -1
- package/dist/core/workflow/engine/transitions.js +4 -4
- package/dist/core/workflow/engine/transitions.js.map +1 -1
- package/dist/core/workflow/evaluation/AggregateEvaluator.d.ts +15 -15
- package/dist/core/workflow/evaluation/AggregateEvaluator.d.ts.map +1 -1
- package/dist/core/workflow/evaluation/AggregateEvaluator.js +35 -33
- package/dist/core/workflow/evaluation/AggregateEvaluator.js.map +1 -1
- package/dist/core/workflow/evaluation/RuleEvaluator.d.ts +8 -8
- package/dist/core/workflow/evaluation/RuleEvaluator.d.ts.map +1 -1
- package/dist/core/workflow/evaluation/RuleEvaluator.js +18 -14
- package/dist/core/workflow/evaluation/RuleEvaluator.js.map +1 -1
- package/dist/core/workflow/evaluation/index.d.ts +4 -4
- package/dist/core/workflow/evaluation/index.d.ts.map +1 -1
- package/dist/core/workflow/evaluation/index.js +1 -1
- package/dist/core/workflow/evaluation/index.js.map +1 -1
- package/dist/core/workflow/evaluation/rule-utils.d.ts +4 -4
- package/dist/core/workflow/evaluation/rule-utils.d.ts.map +1 -1
- package/dist/core/workflow/evaluation/rule-utils.js +2 -2
- package/dist/core/workflow/evaluation/rule-utils.js.map +1 -1
- package/dist/core/workflow/index.d.ts +6 -6
- package/dist/core/workflow/index.d.ts.map +1 -1
- package/dist/core/workflow/index.js +5 -5
- package/dist/core/workflow/index.js.map +1 -1
- package/dist/core/workflow/instruction/InstructionBuilder.d.ts +17 -15
- package/dist/core/workflow/instruction/InstructionBuilder.d.ts.map +1 -1
- package/dist/core/workflow/instruction/InstructionBuilder.js +105 -120
- package/dist/core/workflow/instruction/InstructionBuilder.js.map +1 -1
- package/dist/core/workflow/instruction/ReportInstructionBuilder.d.ts +10 -11
- package/dist/core/workflow/instruction/ReportInstructionBuilder.d.ts.map +1 -1
- package/dist/core/workflow/instruction/ReportInstructionBuilder.js +38 -84
- package/dist/core/workflow/instruction/ReportInstructionBuilder.js.map +1 -1
- package/dist/core/workflow/instruction/StatusJudgmentBuilder.d.ts +6 -5
- package/dist/core/workflow/instruction/StatusJudgmentBuilder.d.ts.map +1 -1
- package/dist/core/workflow/instruction/StatusJudgmentBuilder.js +14 -22
- package/dist/core/workflow/instruction/StatusJudgmentBuilder.js.map +1 -1
- package/dist/core/workflow/instruction/escape.d.ts +3 -3
- package/dist/core/workflow/instruction/escape.d.ts.map +1 -1
- package/dist/core/workflow/instruction/escape.js +3 -3
- package/dist/core/workflow/instruction/escape.js.map +1 -1
- package/dist/core/workflow/instruction/instruction-context.d.ts +16 -49
- package/dist/core/workflow/instruction/instruction-context.d.ts.map +1 -1
- package/dist/core/workflow/instruction/instruction-context.js +17 -62
- package/dist/core/workflow/instruction/instruction-context.js.map +1 -1
- package/dist/core/workflow/instruction/status-rules.d.ts +19 -14
- package/dist/core/workflow/instruction/status-rules.d.ts.map +1 -1
- package/dist/core/workflow/instruction/status-rules.js +47 -66
- package/dist/core/workflow/instruction/status-rules.js.map +1 -1
- package/dist/core/workflow/phase-runner.d.ts +14 -8
- package/dist/core/workflow/phase-runner.d.ts.map +1 -1
- package/dist/core/workflow/phase-runner.js +75 -78
- package/dist/core/workflow/phase-runner.js.map +1 -1
- package/dist/core/workflow/types.d.ts +15 -12
- package/dist/core/workflow/types.d.ts.map +1 -1
- package/dist/features/config/ejectBuiltin.js +3 -3
- package/dist/features/config/ejectBuiltin.js.map +1 -1
- package/dist/features/interactive/interactive.d.ts.map +1 -1
- package/dist/features/interactive/interactive.js +38 -169
- package/dist/features/interactive/interactive.js.map +1 -1
- package/dist/features/prompt/index.d.ts +5 -0
- package/dist/features/prompt/index.d.ts.map +1 -0
- package/dist/features/prompt/index.js +5 -0
- package/dist/features/prompt/index.js.map +1 -0
- package/dist/features/prompt/preview.d.ts +14 -0
- package/dist/features/prompt/preview.d.ts.map +1 -0
- package/dist/features/prompt/preview.js +74 -0
- package/dist/features/prompt/preview.js.map +1 -0
- package/dist/features/tasks/add/index.d.ts +6 -9
- package/dist/features/tasks/add/index.d.ts.map +1 -1
- package/dist/features/tasks/add/index.js +23 -55
- package/dist/features/tasks/add/index.js.map +1 -1
- package/dist/features/tasks/execute/selectAndExecute.d.ts.map +1 -1
- package/dist/features/tasks/execute/selectAndExecute.js +1 -0
- package/dist/features/tasks/execute/selectAndExecute.js.map +1 -1
- package/dist/features/tasks/execute/taskExecution.d.ts.map +1 -1
- package/dist/features/tasks/execute/taskExecution.js +4 -3
- package/dist/features/tasks/execute/taskExecution.js.map +1 -1
- package/dist/features/tasks/execute/types.d.ts +13 -0
- package/dist/features/tasks/execute/types.d.ts.map +1 -1
- package/dist/features/tasks/execute/workflowExecution.d.ts.map +1 -1
- package/dist/features/tasks/execute/workflowExecution.js +63 -18
- package/dist/features/tasks/execute/workflowExecution.js.map +1 -1
- package/dist/features/tasks/index.d.ts +1 -1
- package/dist/features/tasks/index.d.ts.map +1 -1
- package/dist/features/tasks/index.js +1 -1
- package/dist/features/tasks/index.js.map +1 -1
- package/dist/features/tasks/list/index.d.ts.map +1 -1
- package/dist/features/tasks/list/index.js +0 -1
- package/dist/features/tasks/list/index.js.map +1 -1
- package/dist/features/tasks/list/taskActions.d.ts +1 -0
- package/dist/features/tasks/list/taskActions.d.ts.map +1 -1
- package/dist/features/tasks/list/taskActions.js +24 -1
- package/dist/features/tasks/list/taskActions.js.map +1 -1
- package/dist/features/workflowSelection/index.js +1 -1
- package/dist/features/workflowSelection/index.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/infra/claude/client.d.ts +1 -1
- package/dist/infra/claude/client.d.ts.map +1 -1
- package/dist/infra/claude/client.js +6 -24
- package/dist/infra/claude/client.js.map +1 -1
- package/dist/infra/claude/executor.d.ts +0 -1
- package/dist/infra/claude/executor.d.ts.map +1 -1
- package/dist/infra/claude/executor.js +0 -2
- package/dist/infra/claude/executor.js.map +1 -1
- package/dist/infra/claude/index.js +2 -2
- package/dist/infra/claude/index.js.map +1 -1
- package/dist/infra/claude/options-builder.js +4 -4
- package/dist/infra/claude/options-builder.js.map +1 -1
- package/dist/infra/claude/process.d.ts +1 -1
- package/dist/infra/claude/process.d.ts.map +1 -1
- package/dist/infra/claude/process.js +1 -1
- package/dist/infra/claude/process.js.map +1 -1
- package/dist/infra/claude/query-manager.d.ts +1 -1
- package/dist/infra/claude/query-manager.d.ts.map +1 -1
- package/dist/infra/claude/query-manager.js +1 -2
- package/dist/infra/claude/query-manager.js.map +1 -1
- package/dist/infra/claude/stream-converter.d.ts +2 -2
- package/dist/infra/claude/stream-converter.js +2 -2
- package/dist/infra/claude/types.d.ts +1 -1
- package/dist/infra/claude/types.d.ts.map +1 -1
- package/dist/infra/codex/client.d.ts.map +1 -1
- package/dist/infra/codex/client.js +0 -1
- package/dist/infra/codex/client.js.map +1 -1
- package/dist/infra/config/global/globalConfig.d.ts.map +1 -1
- package/dist/infra/config/global/globalConfig.js +0 -1
- package/dist/infra/config/global/globalConfig.js.map +1 -1
- package/dist/infra/config/loaders/agentLoader.d.ts +1 -1
- package/dist/infra/config/loaders/agentLoader.d.ts.map +1 -1
- package/dist/infra/config/loaders/agentLoader.js +6 -5
- package/dist/infra/config/loaders/agentLoader.js.map +1 -1
- package/dist/infra/config/loaders/loader.d.ts +1 -1
- package/dist/infra/config/loaders/loader.js +1 -1
- package/dist/infra/config/loaders/workflowParser.d.ts.map +1 -1
- package/dist/infra/config/loaders/workflowParser.js +9 -5
- package/dist/infra/config/loaders/workflowParser.js.map +1 -1
- package/dist/infra/config/loaders/workflowResolver.d.ts +4 -4
- package/dist/infra/config/loaders/workflowResolver.js +11 -11
- package/dist/infra/config/loaders/workflowResolver.js.map +1 -1
- package/dist/infra/config/paths.d.ts +4 -4
- package/dist/infra/config/paths.d.ts.map +1 -1
- package/dist/infra/config/paths.js +7 -7
- package/dist/infra/config/paths.js.map +1 -1
- package/dist/infra/config/project/index.d.ts +1 -1
- package/dist/infra/config/project/index.d.ts.map +1 -1
- package/dist/infra/config/project/index.js.map +1 -1
- package/dist/infra/config/project/projectConfig.d.ts +2 -2
- package/dist/infra/config/project/projectConfig.d.ts.map +1 -1
- package/dist/infra/config/types.d.ts +0 -2
- package/dist/infra/config/types.d.ts.map +1 -1
- package/dist/infra/fs/index.d.ts +1 -1
- package/dist/infra/fs/index.d.ts.map +1 -1
- package/dist/infra/fs/index.js.map +1 -1
- package/dist/infra/fs/session.d.ts +1 -1
- package/dist/infra/fs/session.d.ts.map +1 -1
- package/dist/infra/fs/session.js +0 -1
- package/dist/infra/fs/session.js.map +1 -1
- package/dist/infra/providers/index.d.ts.map +1 -1
- package/dist/infra/providers/index.js +0 -1
- package/dist/infra/providers/index.js.map +1 -1
- package/dist/infra/task/autoCommit.js +1 -1
- package/dist/infra/task/autoCommit.js.map +1 -1
- package/dist/infra/task/branchList.d.ts +4 -2
- package/dist/infra/task/branchList.d.ts.map +1 -1
- package/dist/infra/task/branchList.js +87 -9
- package/dist/infra/task/branchList.js.map +1 -1
- package/dist/infra/task/clone.js +1 -1
- package/dist/infra/task/clone.js.map +1 -1
- package/dist/infra/task/parser.d.ts +1 -1
- package/dist/infra/task/parser.js +1 -1
- package/dist/infra/task/summarize.d.ts.map +1 -1
- package/dist/infra/task/summarize.js +3 -15
- package/dist/infra/task/summarize.js.map +1 -1
- package/dist/infra/task/types.d.ts +1 -0
- package/dist/infra/task/types.d.ts.map +1 -1
- package/dist/shared/context.d.ts.map +1 -1
- package/dist/shared/context.js +0 -1
- package/dist/shared/context.js.map +1 -1
- package/dist/shared/i18n/index.d.ts +31 -0
- package/dist/shared/i18n/index.d.ts.map +1 -0
- package/dist/shared/i18n/index.js +97 -0
- package/dist/shared/i18n/index.js.map +1 -0
- package/dist/shared/i18n/labels_en.yaml +37 -0
- package/dist/shared/i18n/labels_ja.yaml +37 -0
- package/dist/shared/prompt/select.d.ts +0 -3
- package/dist/shared/prompt/select.d.ts.map +1 -1
- package/dist/shared/prompt/select.js +5 -20
- package/dist/shared/prompt/select.js.map +1 -1
- package/dist/shared/prompts/en/perform_agent_system_prompt.md +7 -0
- package/dist/shared/prompts/en/perform_builtin_agent_system_prompt.md +7 -0
- package/dist/shared/prompts/en/perform_judge_message.md +24 -0
- package/dist/shared/prompts/en/perform_phase1_message.md +45 -0
- package/dist/shared/prompts/en/perform_phase2_message.md +31 -0
- package/dist/shared/prompts/en/perform_phase3_message.md +19 -0
- package/dist/shared/prompts/en/score_interactive_system_prompt.md +53 -0
- package/dist/shared/prompts/en/score_slug_system_prompt.md +19 -0
- package/dist/shared/prompts/en/score_summary_system_prompt.md +25 -0
- package/dist/shared/prompts/index.d.ts +27 -0
- package/dist/shared/prompts/index.d.ts.map +1 -0
- package/dist/shared/prompts/index.js +111 -0
- package/dist/shared/prompts/index.js.map +1 -0
- package/dist/shared/prompts/ja/perform_agent_system_prompt.md +7 -0
- package/dist/shared/prompts/ja/perform_builtin_agent_system_prompt.md +7 -0
- package/dist/shared/prompts/ja/perform_judge_message.md +24 -0
- package/dist/shared/prompts/ja/perform_phase1_message.md +44 -0
- package/dist/shared/prompts/ja/perform_phase2_message.md +30 -0
- package/dist/shared/prompts/ja/perform_phase3_message.md +19 -0
- package/dist/shared/prompts/ja/score_interactive_system_prompt.md +59 -0
- package/dist/shared/prompts/ja/score_slug_system_prompt.md +19 -0
- package/dist/shared/prompts/ja/score_summary_system_prompt.md +32 -0
- package/dist/shared/ui/LogManager.d.ts +1 -1
- package/dist/shared/ui/LogManager.d.ts.map +1 -1
- package/dist/shared/ui/LogManager.js +1 -2
- package/dist/shared/ui/LogManager.js.map +1 -1
- package/dist/shared/utils/debug.js +1 -1
- package/dist/shared/utils/debug.js.map +1 -1
- package/dist/shared/utils/types.d.ts +29 -1
- package/dist/shared/utils/types.d.ts.map +1 -1
- package/package.json +2 -2
- package/resources/global/en/{workflows → pieces}/default.yaml +16 -16
- package/resources/global/en/{workflows → pieces}/expert-cqrs.yaml +17 -17
- package/resources/global/en/{workflows → pieces}/expert.yaml +20 -20
- package/resources/global/en/{workflows → pieces}/magi.yaml +4 -4
- package/resources/global/en/{workflows → pieces}/minimal.yaml +7 -7
- package/resources/global/en/{workflows → pieces}/research.yaml +11 -11
- package/resources/global/en/{workflows → pieces}/review-fix-minimal.yaml +8 -8
- package/resources/global/en/{workflows → pieces}/review-only.yaml +7 -7
- package/resources/global/ja/agents/default/architecture-reviewer.md +3 -3
- package/resources/global/ja/agents/default/supervisor.md +1 -1
- package/resources/global/ja/agents/templates/planner.md +1 -1
- package/resources/global/ja/{workflows → pieces}/default.yaml +12 -12
- package/resources/global/ja/{workflows → pieces}/expert-cqrs.yaml +18 -18
- package/resources/global/ja/{workflows → pieces}/expert.yaml +15 -15
- package/resources/global/ja/{workflows → pieces}/magi.yaml +4 -4
- package/resources/global/ja/{workflows → pieces}/minimal.yaml +8 -8
- package/resources/global/ja/{workflows → pieces}/research.yaml +11 -11
- package/resources/global/ja/{workflows → pieces}/review-fix-minimal.yaml +8 -8
- package/resources/global/ja/{workflows → pieces}/review-only.yaml +7 -7
- package/dist/core/workflow/engine/StepExecutor.d.ts +0 -52
- package/dist/core/workflow/engine/StepExecutor.d.ts.map +0 -1
- package/dist/core/workflow/engine/StepExecutor.js.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Loop detection for workflow execution
|
|
3
3
|
*
|
|
4
|
-
* Detects when a workflow
|
|
4
|
+
* Detects when a workflow movement is executed repeatedly without progress,
|
|
5
5
|
* which may indicate an infinite loop.
|
|
6
6
|
*/
|
|
7
7
|
/** Default loop detection settings */
|
|
@@ -10,10 +10,10 @@ const DEFAULT_LOOP_DETECTION = {
|
|
|
10
10
|
action: 'warn',
|
|
11
11
|
};
|
|
12
12
|
/**
|
|
13
|
-
* Loop detector for tracking consecutive same-
|
|
13
|
+
* Loop detector for tracking consecutive same-movement executions.
|
|
14
14
|
*/
|
|
15
15
|
export class LoopDetector {
|
|
16
|
-
|
|
16
|
+
lastMovementName = null;
|
|
17
17
|
consecutiveCount = 0;
|
|
18
18
|
config;
|
|
19
19
|
constructor(config) {
|
|
@@ -23,16 +23,16 @@ export class LoopDetector {
|
|
|
23
23
|
};
|
|
24
24
|
}
|
|
25
25
|
/**
|
|
26
|
-
* Check if the given
|
|
26
|
+
* Check if the given movement execution would be a loop.
|
|
27
27
|
* Updates internal tracking state.
|
|
28
28
|
*/
|
|
29
|
-
check(
|
|
30
|
-
if (this.
|
|
29
|
+
check(movementName) {
|
|
30
|
+
if (this.lastMovementName === movementName) {
|
|
31
31
|
this.consecutiveCount++;
|
|
32
32
|
}
|
|
33
33
|
else {
|
|
34
34
|
this.consecutiveCount = 1;
|
|
35
|
-
this.
|
|
35
|
+
this.lastMovementName = movementName;
|
|
36
36
|
}
|
|
37
37
|
const isLoop = this.consecutiveCount > this.config.maxConsecutiveSameStep;
|
|
38
38
|
const shouldAbort = isLoop && this.config.action === 'abort';
|
|
@@ -48,7 +48,7 @@ export class LoopDetector {
|
|
|
48
48
|
* Reset the detector state.
|
|
49
49
|
*/
|
|
50
50
|
reset() {
|
|
51
|
-
this.
|
|
51
|
+
this.lastMovementName = null;
|
|
52
52
|
this.consecutiveCount = 0;
|
|
53
53
|
}
|
|
54
54
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loop-detector.js","sourceRoot":"","sources":["../../../../src/core/workflow/engine/loop-detector.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,sCAAsC;AACtC,MAAM,sBAAsB,GAAkC;IAC5D,sBAAsB,EAAE,EAAE;IAC1B,MAAM,EAAE,MAAM;CACf,CAAC;AAEF;;GAEG;AACH,MAAM,OAAO,YAAY;IACf,
|
|
1
|
+
{"version":3,"file":"loop-detector.js","sourceRoot":"","sources":["../../../../src/core/workflow/engine/loop-detector.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,sCAAsC;AACtC,MAAM,sBAAsB,GAAkC;IAC5D,sBAAsB,EAAE,EAAE;IAC1B,MAAM,EAAE,MAAM;CACf,CAAC;AAEF;;GAEG;AACH,MAAM,OAAO,YAAY;IACf,gBAAgB,GAAkB,IAAI,CAAC;IACvC,gBAAgB,GAAG,CAAC,CAAC;IACrB,MAAM,CAAgC;IAE9C,YAAY,MAA4B;QACtC,IAAI,CAAC,MAAM,GAAG;YACZ,GAAG,sBAAsB;YACzB,GAAG,MAAM;SACV,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,YAAoB;QACxB,IAAI,IAAI,CAAC,gBAAgB,KAAK,YAAY,EAAE,CAAC;YAC3C,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;YAC1B,IAAI,CAAC,gBAAgB,GAAG,YAAY,CAAC;QACvC,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC;QAC1E,MAAM,WAAW,GAAG,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,OAAO,CAAC;QAC7D,MAAM,UAAU,GAAG,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC;QAE7D,OAAO;YACL,MAAM;YACN,KAAK,EAAE,IAAI,CAAC,gBAAgB;YAC5B,WAAW;YACX,UAAU;SACX,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,mBAAmB;QACjB,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;CACF"}
|
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Parallel
|
|
2
|
+
* Parallel movement log display
|
|
3
3
|
*
|
|
4
|
-
* Provides prefixed, color-coded interleaved output for parallel sub-
|
|
5
|
-
* Each sub-
|
|
6
|
-
* aligned to the longest sub-
|
|
4
|
+
* Provides prefixed, color-coded interleaved output for parallel sub-movements.
|
|
5
|
+
* Each sub-movement's stream output gets a `[name]` prefix with right-padding
|
|
6
|
+
* aligned to the longest sub-movement name.
|
|
7
7
|
*/
|
|
8
8
|
import type { StreamCallback } from '../types.js';
|
|
9
9
|
export interface ParallelLoggerOptions {
|
|
10
|
-
/** Sub-
|
|
11
|
-
|
|
10
|
+
/** Sub-movement names (used to calculate prefix width) */
|
|
11
|
+
subMovementNames: string[];
|
|
12
12
|
/** Parent onStream callback to delegate non-prefixed events */
|
|
13
13
|
parentOnStream?: StreamCallback;
|
|
14
14
|
/** Override process.stdout.write for testing */
|
|
15
15
|
writeFn?: (text: string) => void;
|
|
16
16
|
}
|
|
17
17
|
/**
|
|
18
|
-
* Logger for parallel
|
|
18
|
+
* Logger for parallel movement execution.
|
|
19
19
|
*
|
|
20
|
-
* Creates per-sub-
|
|
20
|
+
* Creates per-sub-movement StreamCallback wrappers that:
|
|
21
21
|
* - Buffer partial lines until newline
|
|
22
22
|
* - Prepend colored `[name]` prefix to each complete line
|
|
23
23
|
* - Delegate init/result/error events to the parent callback
|
|
@@ -29,18 +29,18 @@ export declare class ParallelLogger {
|
|
|
29
29
|
private readonly writeFn;
|
|
30
30
|
constructor(options: ParallelLoggerOptions);
|
|
31
31
|
/**
|
|
32
|
-
* Build the colored prefix string for a sub-
|
|
32
|
+
* Build the colored prefix string for a sub-movement.
|
|
33
33
|
* Format: `\x1b[COLORm[name]\x1b[0m` + padding spaces
|
|
34
34
|
*/
|
|
35
35
|
buildPrefix(name: string, index: number): string;
|
|
36
36
|
/**
|
|
37
|
-
* Create a StreamCallback wrapper for a specific sub-
|
|
37
|
+
* Create a StreamCallback wrapper for a specific sub-movement.
|
|
38
38
|
*
|
|
39
39
|
* - `text`: buffered line-by-line with prefix
|
|
40
40
|
* - `tool_use`, `tool_result`, `tool_output`, `thinking`: prefixed per-line, no buffering
|
|
41
41
|
* - `init`, `result`, `error`: delegated to parent callback (no prefix)
|
|
42
42
|
*/
|
|
43
|
-
createStreamHandler(
|
|
43
|
+
createStreamHandler(subMovementName: string, index: number): StreamCallback;
|
|
44
44
|
/**
|
|
45
45
|
* Handle text event with line buffering.
|
|
46
46
|
* Buffer until newline, then output prefixed complete lines.
|
|
@@ -53,12 +53,12 @@ export declare class ParallelLogger {
|
|
|
53
53
|
*/
|
|
54
54
|
private handleBlockEvent;
|
|
55
55
|
/**
|
|
56
|
-
* Flush remaining line buffers for all sub-
|
|
57
|
-
* Call after all sub-
|
|
56
|
+
* Flush remaining line buffers for all sub-movements.
|
|
57
|
+
* Call after all sub-movements complete to output any trailing partial lines.
|
|
58
58
|
*/
|
|
59
59
|
flush(): void;
|
|
60
60
|
/**
|
|
61
|
-
* Print completion summary after all sub-
|
|
61
|
+
* Print completion summary after all sub-movements finish.
|
|
62
62
|
*
|
|
63
63
|
* Format:
|
|
64
64
|
* ```
|
|
@@ -68,7 +68,7 @@ export declare class ParallelLogger {
|
|
|
68
68
|
* ──────────────────────────────
|
|
69
69
|
* ```
|
|
70
70
|
*/
|
|
71
|
-
printSummary(
|
|
71
|
+
printSummary(parentMovementName: string, results: Array<{
|
|
72
72
|
name: string;
|
|
73
73
|
condition: string | undefined;
|
|
74
74
|
}>): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parallel-logger.d.ts","sourceRoot":"","sources":["../../../../src/core/workflow/engine/parallel-logger.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAe,MAAM,aAAa,CAAC;AAM/D,MAAM,WAAW,qBAAqB;IACpC,
|
|
1
|
+
{"version":3,"file":"parallel-logger.d.ts","sourceRoot":"","sources":["../../../../src/core/workflow/engine/parallel-logger.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAe,MAAM,aAAa,CAAC;AAM/D,MAAM,WAAW,qBAAqB;IACpC,0DAA0D;IAC1D,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,+DAA+D;IAC/D,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,gDAAgD;IAChD,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAClC;AAED;;;;;;;GAOG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAkC;IAC9D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAiB;IACjD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyB;gBAErC,OAAO,EAAE,qBAAqB;IAU1C;;;OAGG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAMhD;;;;;;OAMG;IACH,mBAAmB,CAAC,eAAe,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,cAAc;IA0B3E;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAmBvB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IA4BxB;;;OAGG;IACH,KAAK,IAAI,IAAI;IAeb;;;;;;;;;;OAUG;IACH,YAAY,CACV,kBAAkB,EAAE,MAAM,EAC1B,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC,GAC9D,IAAI;CA2BR"}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Parallel
|
|
2
|
+
* Parallel movement log display
|
|
3
3
|
*
|
|
4
|
-
* Provides prefixed, color-coded interleaved output for parallel sub-
|
|
5
|
-
* Each sub-
|
|
6
|
-
* aligned to the longest sub-
|
|
4
|
+
* Provides prefixed, color-coded interleaved output for parallel sub-movements.
|
|
5
|
+
* Each sub-movement's stream output gets a `[name]` prefix with right-padding
|
|
6
|
+
* aligned to the longest sub-movement name.
|
|
7
7
|
*/
|
|
8
|
-
/** ANSI color codes for sub-
|
|
8
|
+
/** ANSI color codes for sub-movement prefixes (cycled in order) */
|
|
9
9
|
const COLORS = ['\x1b[36m', '\x1b[33m', '\x1b[35m', '\x1b[32m']; // cyan, yellow, magenta, green
|
|
10
10
|
const RESET = '\x1b[0m';
|
|
11
11
|
/**
|
|
12
|
-
* Logger for parallel
|
|
12
|
+
* Logger for parallel movement execution.
|
|
13
13
|
*
|
|
14
|
-
* Creates per-sub-
|
|
14
|
+
* Creates per-sub-movement StreamCallback wrappers that:
|
|
15
15
|
* - Buffer partial lines until newline
|
|
16
16
|
* - Prepend colored `[name]` prefix to each complete line
|
|
17
17
|
* - Delegate init/result/error events to the parent callback
|
|
@@ -22,15 +22,15 @@ export class ParallelLogger {
|
|
|
22
22
|
parentOnStream;
|
|
23
23
|
writeFn;
|
|
24
24
|
constructor(options) {
|
|
25
|
-
this.maxNameLength = Math.max(...options.
|
|
25
|
+
this.maxNameLength = Math.max(...options.subMovementNames.map((n) => n.length));
|
|
26
26
|
this.parentOnStream = options.parentOnStream;
|
|
27
27
|
this.writeFn = options.writeFn ?? ((text) => process.stdout.write(text));
|
|
28
|
-
for (const name of options.
|
|
28
|
+
for (const name of options.subMovementNames) {
|
|
29
29
|
this.lineBuffers.set(name, '');
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
/**
|
|
33
|
-
* Build the colored prefix string for a sub-
|
|
33
|
+
* Build the colored prefix string for a sub-movement.
|
|
34
34
|
* Format: `\x1b[COLORm[name]\x1b[0m` + padding spaces
|
|
35
35
|
*/
|
|
36
36
|
buildPrefix(name, index) {
|
|
@@ -39,18 +39,18 @@ export class ParallelLogger {
|
|
|
39
39
|
return `${color}[${name}]${RESET}${padding} `;
|
|
40
40
|
}
|
|
41
41
|
/**
|
|
42
|
-
* Create a StreamCallback wrapper for a specific sub-
|
|
42
|
+
* Create a StreamCallback wrapper for a specific sub-movement.
|
|
43
43
|
*
|
|
44
44
|
* - `text`: buffered line-by-line with prefix
|
|
45
45
|
* - `tool_use`, `tool_result`, `tool_output`, `thinking`: prefixed per-line, no buffering
|
|
46
46
|
* - `init`, `result`, `error`: delegated to parent callback (no prefix)
|
|
47
47
|
*/
|
|
48
|
-
createStreamHandler(
|
|
49
|
-
const prefix = this.buildPrefix(
|
|
48
|
+
createStreamHandler(subMovementName, index) {
|
|
49
|
+
const prefix = this.buildPrefix(subMovementName, index);
|
|
50
50
|
return (event) => {
|
|
51
51
|
switch (event.type) {
|
|
52
52
|
case 'text':
|
|
53
|
-
this.handleTextEvent(
|
|
53
|
+
this.handleTextEvent(subMovementName, prefix, event.data.text);
|
|
54
54
|
break;
|
|
55
55
|
case 'tool_use':
|
|
56
56
|
case 'tool_result':
|
|
@@ -77,7 +77,8 @@ export class ParallelLogger {
|
|
|
77
77
|
const combined = buffer + text;
|
|
78
78
|
const parts = combined.split('\n');
|
|
79
79
|
// Last part is incomplete (no trailing newline) — keep in buffer
|
|
80
|
-
|
|
80
|
+
const remainder = parts.pop() ?? '';
|
|
81
|
+
this.lineBuffers.set(name, remainder);
|
|
81
82
|
// Output all complete lines
|
|
82
83
|
for (const line of parts) {
|
|
83
84
|
if (line === '') {
|
|
@@ -120,13 +121,13 @@ export class ParallelLogger {
|
|
|
120
121
|
}
|
|
121
122
|
}
|
|
122
123
|
/**
|
|
123
|
-
* Flush remaining line buffers for all sub-
|
|
124
|
-
* Call after all sub-
|
|
124
|
+
* Flush remaining line buffers for all sub-movements.
|
|
125
|
+
* Call after all sub-movements complete to output any trailing partial lines.
|
|
125
126
|
*/
|
|
126
127
|
flush() {
|
|
127
128
|
// Build prefixes for flush — need index mapping
|
|
128
129
|
// Since we don't store index, iterate lineBuffers in insertion order
|
|
129
|
-
// (Map preserves insertion order, matching
|
|
130
|
+
// (Map preserves insertion order, matching subMovementNames order)
|
|
130
131
|
let index = 0;
|
|
131
132
|
for (const [name, buffer] of this.lineBuffers) {
|
|
132
133
|
if (buffer !== '') {
|
|
@@ -138,7 +139,7 @@ export class ParallelLogger {
|
|
|
138
139
|
}
|
|
139
140
|
}
|
|
140
141
|
/**
|
|
141
|
-
* Print completion summary after all sub-
|
|
142
|
+
* Print completion summary after all sub-movements finish.
|
|
142
143
|
*
|
|
143
144
|
* Format:
|
|
144
145
|
* ```
|
|
@@ -148,7 +149,7 @@ export class ParallelLogger {
|
|
|
148
149
|
* ──────────────────────────────
|
|
149
150
|
* ```
|
|
150
151
|
*/
|
|
151
|
-
printSummary(
|
|
152
|
+
printSummary(parentMovementName, results) {
|
|
152
153
|
this.flush();
|
|
153
154
|
const maxResultNameLength = Math.max(...results.map((r) => r.name.length));
|
|
154
155
|
const resultLines = results.map((r) => {
|
|
@@ -157,7 +158,7 @@ export class ParallelLogger {
|
|
|
157
158
|
return ` ${r.name}:${padding} ${condition}`;
|
|
158
159
|
});
|
|
159
160
|
// Header line: ── name results ──
|
|
160
|
-
const headerText = ` ${
|
|
161
|
+
const headerText = ` ${parentMovementName} results `;
|
|
161
162
|
const maxLineLength = Math.max(headerText.length + 4, // 4 for "── " + " ──"
|
|
162
163
|
...resultLines.map((l) => l.length));
|
|
163
164
|
const sideWidth = Math.max(1, Math.floor((maxLineLength - headerText.length) / 2));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parallel-logger.js","sourceRoot":"","sources":["../../../../src/core/workflow/engine/parallel-logger.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH
|
|
1
|
+
{"version":3,"file":"parallel-logger.js","sourceRoot":"","sources":["../../../../src/core/workflow/engine/parallel-logger.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,15 +15,15 @@ export declare class StateManager {
|
|
|
15
15
|
readonly state: WorkflowState;
|
|
16
16
|
constructor(config: WorkflowConfig, options: WorkflowEngineOptions);
|
|
17
17
|
/**
|
|
18
|
-
* Increment the iteration counter for a
|
|
18
|
+
* Increment the iteration counter for a movement and return the new value.
|
|
19
19
|
*/
|
|
20
|
-
|
|
20
|
+
incrementMovementIteration(movementName: string): number;
|
|
21
21
|
/**
|
|
22
22
|
* Add user input to state with truncation and limit handling.
|
|
23
23
|
*/
|
|
24
24
|
addUserInput(input: string): void;
|
|
25
25
|
/**
|
|
26
|
-
* Get the most recent
|
|
26
|
+
* Get the most recent movement output.
|
|
27
27
|
*/
|
|
28
28
|
getPreviousOutput(): AgentResponse | undefined;
|
|
29
29
|
}
|
|
@@ -32,15 +32,15 @@ export declare class StateManager {
|
|
|
32
32
|
*/
|
|
33
33
|
export declare function createInitialState(config: WorkflowConfig, options: WorkflowEngineOptions): WorkflowState;
|
|
34
34
|
/**
|
|
35
|
-
* Increment the iteration counter for a
|
|
35
|
+
* Increment the iteration counter for a movement and return the new value.
|
|
36
36
|
*/
|
|
37
|
-
export declare function
|
|
37
|
+
export declare function incrementMovementIteration(state: WorkflowState, movementName: string): number;
|
|
38
38
|
/**
|
|
39
39
|
* Add user input to state with truncation and limit handling.
|
|
40
40
|
*/
|
|
41
41
|
export declare function addUserInput(state: WorkflowState, input: string): void;
|
|
42
42
|
/**
|
|
43
|
-
* Get the most recent
|
|
43
|
+
* Get the most recent movement output.
|
|
44
44
|
*/
|
|
45
45
|
export declare function getPreviousOutput(state: WorkflowState): AgentResponse | undefined;
|
|
46
46
|
//# sourceMappingURL=state-manager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state-manager.d.ts","sourceRoot":"","sources":["../../../../src/core/workflow/engine/state-manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAK1F,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEzD;;;;GAIG;AACH,qBAAa,YAAY;IACvB,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;gBAElB,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,qBAAqB;IA0BlE;;OAEG;IACH,
|
|
1
|
+
{"version":3,"file":"state-manager.d.ts","sourceRoot":"","sources":["../../../../src/core/workflow/engine/state-manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAK1F,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEzD;;;;GAIG;AACH,qBAAa,YAAY;IACvB,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;gBAElB,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,qBAAqB;IA0BlE;;OAEG;IACH,0BAA0B,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;IAOxD;;OAEG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAQjC;;OAEG;IACH,iBAAiB,IAAI,aAAa,GAAG,SAAS;CAI/C;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,qBAAqB,GAC7B,aAAa,CAEf;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAK7F;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAMtE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,aAAa,GAAG,aAAa,GAAG,SAAS,CAGjF"}
|
|
@@ -26,22 +26,22 @@ export class StateManager {
|
|
|
26
26
|
: [];
|
|
27
27
|
this.state = {
|
|
28
28
|
workflowName: config.name,
|
|
29
|
-
|
|
29
|
+
currentMovement: config.initialMovement,
|
|
30
30
|
iteration: 0,
|
|
31
|
-
|
|
31
|
+
movementOutputs: new Map(),
|
|
32
32
|
userInputs,
|
|
33
33
|
agentSessions,
|
|
34
|
-
|
|
34
|
+
movementIterations: new Map(),
|
|
35
35
|
status: 'running',
|
|
36
36
|
};
|
|
37
37
|
}
|
|
38
38
|
/**
|
|
39
|
-
* Increment the iteration counter for a
|
|
39
|
+
* Increment the iteration counter for a movement and return the new value.
|
|
40
40
|
*/
|
|
41
|
-
|
|
42
|
-
const current = this.state.
|
|
41
|
+
incrementMovementIteration(movementName) {
|
|
42
|
+
const current = this.state.movementIterations.get(movementName) ?? 0;
|
|
43
43
|
const next = current + 1;
|
|
44
|
-
this.state.
|
|
44
|
+
this.state.movementIterations.set(movementName, next);
|
|
45
45
|
return next;
|
|
46
46
|
}
|
|
47
47
|
/**
|
|
@@ -55,14 +55,13 @@ export class StateManager {
|
|
|
55
55
|
this.state.userInputs.push(truncated);
|
|
56
56
|
}
|
|
57
57
|
/**
|
|
58
|
-
* Get the most recent
|
|
58
|
+
* Get the most recent movement output.
|
|
59
59
|
*/
|
|
60
60
|
getPreviousOutput() {
|
|
61
|
-
const outputs = Array.from(this.state.
|
|
61
|
+
const outputs = Array.from(this.state.movementOutputs.values());
|
|
62
62
|
return outputs[outputs.length - 1];
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
|
-
// --- Backward-compatible function facades ---
|
|
66
65
|
/**
|
|
67
66
|
* Create initial workflow state from config and options.
|
|
68
67
|
*/
|
|
@@ -70,12 +69,12 @@ export function createInitialState(config, options) {
|
|
|
70
69
|
return new StateManager(config, options).state;
|
|
71
70
|
}
|
|
72
71
|
/**
|
|
73
|
-
* Increment the iteration counter for a
|
|
72
|
+
* Increment the iteration counter for a movement and return the new value.
|
|
74
73
|
*/
|
|
75
|
-
export function
|
|
76
|
-
const current = state.
|
|
74
|
+
export function incrementMovementIteration(state, movementName) {
|
|
75
|
+
const current = state.movementIterations.get(movementName) ?? 0;
|
|
77
76
|
const next = current + 1;
|
|
78
|
-
state.
|
|
77
|
+
state.movementIterations.set(movementName, next);
|
|
79
78
|
return next;
|
|
80
79
|
}
|
|
81
80
|
/**
|
|
@@ -89,10 +88,10 @@ export function addUserInput(state, input) {
|
|
|
89
88
|
state.userInputs.push(truncated);
|
|
90
89
|
}
|
|
91
90
|
/**
|
|
92
|
-
* Get the most recent
|
|
91
|
+
* Get the most recent movement output.
|
|
93
92
|
*/
|
|
94
93
|
export function getPreviousOutput(state) {
|
|
95
|
-
const outputs = Array.from(state.
|
|
94
|
+
const outputs = Array.from(state.movementOutputs.values());
|
|
96
95
|
return outputs[outputs.length - 1];
|
|
97
96
|
}
|
|
98
97
|
//# sourceMappingURL=state-manager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state-manager.js","sourceRoot":"","sources":["../../../../src/core/workflow/engine/state-manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,eAAe,EACf,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AAGzB;;;;GAIG;AACH,MAAM,OAAO,YAAY;IACd,KAAK,CAAgB;IAE9B,YAAY,MAAsB,EAAE,OAA8B;QAChE,kDAAkD;QAClD,MAAM,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;QAChD,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;YAC5B,KAAK,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;gBACzE,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;QAED,kDAAkD;QAClD,MAAM,UAAU,GAAG,OAAO,CAAC,iBAAiB;YAC1C,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC;YAChC,CAAC,CAAC,EAAE,CAAC;QAEP,IAAI,CAAC,KAAK,GAAG;YACX,YAAY,EAAE,MAAM,CAAC,IAAI;YACzB,
|
|
1
|
+
{"version":3,"file":"state-manager.js","sourceRoot":"","sources":["../../../../src/core/workflow/engine/state-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Workflow state transition logic
|
|
3
3
|
*
|
|
4
|
-
* Handles determining the next
|
|
4
|
+
* Handles determining the next movement based on rules-based routing.
|
|
5
5
|
*/
|
|
6
|
-
import type {
|
|
6
|
+
import type { WorkflowMovement } from '../../models/types.js';
|
|
7
7
|
/**
|
|
8
|
-
* Determine next
|
|
9
|
-
* Returns the next
|
|
8
|
+
* Determine next movement using rules-based detection.
|
|
9
|
+
* Returns the next movement name from the matched rule, or null if no rule matched.
|
|
10
10
|
*/
|
|
11
|
-
export declare function
|
|
11
|
+
export declare function determineNextMovementByRules(step: WorkflowMovement, ruleIndex: number): string | null;
|
|
12
12
|
/**
|
|
13
13
|
* Extract user-facing prompt from blocked response.
|
|
14
14
|
* Looks for common patterns like "必要な情報:", "質問:", etc.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transitions.d.ts","sourceRoot":"","sources":["../../../../src/core/workflow/engine/transitions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,
|
|
1
|
+
{"version":3,"file":"transitions.d.ts","sourceRoot":"","sources":["../../../../src/core/workflow/engine/transitions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,gBAAgB,EACjB,MAAM,uBAAuB,CAAC;AAE/B;;;GAGG;AACH,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,gBAAgB,EACtB,SAAS,EAAE,MAAM,GAChB,MAAM,GAAG,IAAI,CAMf;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAkB5D"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Workflow state transition logic
|
|
3
3
|
*
|
|
4
|
-
* Handles determining the next
|
|
4
|
+
* Handles determining the next movement based on rules-based routing.
|
|
5
5
|
*/
|
|
6
6
|
/**
|
|
7
|
-
* Determine next
|
|
8
|
-
* Returns the next
|
|
7
|
+
* Determine next movement using rules-based detection.
|
|
8
|
+
* Returns the next movement name from the matched rule, or null if no rule matched.
|
|
9
9
|
*/
|
|
10
|
-
export function
|
|
10
|
+
export function determineNextMovementByRules(step, ruleIndex) {
|
|
11
11
|
const rule = step.rules?.[ruleIndex];
|
|
12
12
|
if (!rule) {
|
|
13
13
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transitions.js","sourceRoot":"","sources":["../../../../src/core/workflow/engine/transitions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH;;;GAGG;AACH,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"transitions.js","sourceRoot":"","sources":["../../../../src/core/workflow/engine/transitions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH;;;GAGG;AACH,MAAM,UAAU,4BAA4B,CAC1C,IAAsB,EACtB,SAAiB;IAEjB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,SAAS,CAAC,CAAC;IACrC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC;AAC3B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAe;IAClD,+CAA+C;IAC/C,MAAM,QAAQ,GAAG;QACf,4BAA4B;QAC5B,yBAAyB;QACzB,yBAAyB;QACzB,yBAAyB;KAC1B,CAAC;IAEF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACrC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACf,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACzB,CAAC;IACH,CAAC;IAED,uDAAuD;IACvD,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -1,31 +1,31 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Aggregate condition evaluator for parallel workflow
|
|
2
|
+
* Aggregate condition evaluator for parallel workflow movements
|
|
3
3
|
*
|
|
4
|
-
* Evaluates all()/any() aggregate conditions against sub-
|
|
4
|
+
* Evaluates all()/any() aggregate conditions against sub-movement results.
|
|
5
5
|
*/
|
|
6
|
-
import type {
|
|
6
|
+
import type { WorkflowMovement, WorkflowState } from '../../models/types.js';
|
|
7
7
|
/**
|
|
8
|
-
* Evaluates aggregate conditions (all()/any()) for parallel parent
|
|
8
|
+
* Evaluates aggregate conditions (all()/any()) for parallel parent movements.
|
|
9
9
|
*
|
|
10
|
-
* For each aggregate rule, checks the matched condition text of sub-
|
|
11
|
-
* - all("X"): true when ALL sub-
|
|
12
|
-
* - all("A", "B"): true when 1st sub-
|
|
13
|
-
* - any("X"): true when at least ONE sub-
|
|
14
|
-
* - any("A", "B"): true when at least ONE sub-
|
|
10
|
+
* For each aggregate rule, checks the matched condition text of sub-movements:
|
|
11
|
+
* - all("X"): true when ALL sub-movements have matched condition === X
|
|
12
|
+
* - all("A", "B"): true when 1st sub-movement matches "A" AND 2nd sub-movement matches "B" (order-based)
|
|
13
|
+
* - any("X"): true when at least ONE sub-movement has matched condition === X
|
|
14
|
+
* - any("A", "B"): true when at least ONE sub-movement matches "A" OR "B"
|
|
15
15
|
*
|
|
16
16
|
* Edge cases per spec:
|
|
17
|
-
* - Sub-
|
|
18
|
-
* - No sub-
|
|
19
|
-
* - Non-parallel
|
|
20
|
-
* - all("A", "B") with wrong number of sub-
|
|
17
|
+
* - Sub-movement with no matched rule: all() → false, any() → skip that sub-movement
|
|
18
|
+
* - No sub-movements (0 件): both → false
|
|
19
|
+
* - Non-parallel movement: both → false
|
|
20
|
+
* - all("A", "B") with wrong number of sub-movements: false (logged as error)
|
|
21
21
|
*/
|
|
22
22
|
export declare class AggregateEvaluator {
|
|
23
23
|
private readonly step;
|
|
24
24
|
private readonly state;
|
|
25
|
-
constructor(step:
|
|
25
|
+
constructor(step: WorkflowMovement, state: WorkflowState);
|
|
26
26
|
/**
|
|
27
27
|
* Evaluate aggregate conditions.
|
|
28
|
-
* Returns the 0-based rule index in the
|
|
28
|
+
* Returns the 0-based rule index in the movement's rules array, or -1 if no match.
|
|
29
29
|
*/
|
|
30
30
|
evaluate(): number;
|
|
31
31
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AggregateEvaluator.d.ts","sourceRoot":"","sources":["../../../../src/core/workflow/evaluation/AggregateEvaluator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"AggregateEvaluator.d.ts","sourceRoot":"","sources":["../../../../src/core/workflow/evaluation/AggregateEvaluator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAK7E;;;;;;;;;;;;;;GAcG;AACH,qBAAa,kBAAkB;IAE3B,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,KAAK;gBADL,IAAI,EAAE,gBAAgB,EACtB,KAAK,EAAE,aAAa;IAGvC;;;OAGG;IACH,QAAQ,IAAI,MAAM;CAiFnB"}
|