@clawplays/ospec-cli 0.1.1
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/.ospec/templates/hooks/post-merge +8 -0
- package/.ospec/templates/hooks/pre-commit +8 -0
- package/LICENSE +21 -0
- package/README.md +549 -0
- package/README.zh-CN.md +549 -0
- package/assets/for-ai/en-US/ai-guide.md +98 -0
- package/assets/for-ai/en-US/execution-protocol.md +64 -0
- package/assets/for-ai/zh-CN/ai-guide.md +102 -0
- package/assets/for-ai/zh-CN/execution-protocol.md +68 -0
- package/assets/git-hooks/post-merge +12 -0
- package/assets/git-hooks/pre-commit +12 -0
- package/assets/global-skills/claude/ospec-change/SKILL.md +116 -0
- package/assets/global-skills/codex/ospec-change/SKILL.md +117 -0
- package/assets/global-skills/codex/ospec-change/agents/openai.yaml +7 -0
- package/assets/global-skills/codex/ospec-change/skill.yaml +19 -0
- package/assets/project-conventions/en-US/development-guide.md +32 -0
- package/assets/project-conventions/en-US/naming-conventions.md +51 -0
- package/assets/project-conventions/en-US/skill-conventions.md +40 -0
- package/assets/project-conventions/en-US/workflow-conventions.md +70 -0
- package/assets/project-conventions/zh-CN/development-guide.md +32 -0
- package/assets/project-conventions/zh-CN/naming-conventions.md +51 -0
- package/assets/project-conventions/zh-CN/skill-conventions.md +40 -0
- package/assets/project-conventions/zh-CN/workflow-conventions.md +74 -0
- package/dist/adapters/codex-stitch-adapter.js +420 -0
- package/dist/adapters/gemini-stitch-adapter.js +408 -0
- package/dist/adapters/playwright-checkpoint-adapter.js +2260 -0
- package/dist/advanced/BatchOperations.d.ts +36 -0
- package/dist/advanced/BatchOperations.js +159 -0
- package/dist/advanced/CachingLayer.d.ts +66 -0
- package/dist/advanced/CachingLayer.js +136 -0
- package/dist/advanced/FeatureUpdater.d.ts +46 -0
- package/dist/advanced/FeatureUpdater.js +151 -0
- package/dist/advanced/PerformanceMonitor.d.ts +52 -0
- package/dist/advanced/PerformanceMonitor.js +129 -0
- package/dist/advanced/StatePersistence.d.ts +61 -0
- package/dist/advanced/StatePersistence.js +168 -0
- package/dist/advanced/index.d.ts +14 -0
- package/dist/advanced/index.js +22 -0
- package/dist/cli/commands/config.d.ts +5 -0
- package/dist/cli/commands/config.js +6 -0
- package/dist/cli/commands/feature.d.ts +5 -0
- package/dist/cli/commands/feature.js +6 -0
- package/dist/cli/commands/index.d.ts +5 -0
- package/dist/cli/commands/index.js +6 -0
- package/dist/cli/commands/project.d.ts +5 -0
- package/dist/cli/commands/project.js +6 -0
- package/dist/cli/commands/validate.d.ts +5 -0
- package/dist/cli/commands/validate.js +6 -0
- package/dist/cli/index.d.ts +5 -0
- package/dist/cli/index.js +6 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.js +1007 -0
- package/dist/commands/ArchiveCommand.d.ts +14 -0
- package/dist/commands/ArchiveCommand.js +241 -0
- package/dist/commands/BaseCommand.d.ts +33 -0
- package/dist/commands/BaseCommand.js +46 -0
- package/dist/commands/BatchCommand.d.ts +5 -0
- package/dist/commands/BatchCommand.js +42 -0
- package/dist/commands/ChangesCommand.d.ts +3 -0
- package/dist/commands/ChangesCommand.js +71 -0
- package/dist/commands/DocsCommand.d.ts +5 -0
- package/dist/commands/DocsCommand.js +118 -0
- package/dist/commands/FinalizeCommand.d.ts +3 -0
- package/dist/commands/FinalizeCommand.js +24 -0
- package/dist/commands/IndexCommand.d.ts +5 -0
- package/dist/commands/IndexCommand.js +57 -0
- package/dist/commands/InitCommand.d.ts +5 -0
- package/dist/commands/InitCommand.js +65 -0
- package/dist/commands/NewCommand.d.ts +11 -0
- package/dist/commands/NewCommand.js +262 -0
- package/dist/commands/PluginsCommand.d.ts +58 -0
- package/dist/commands/PluginsCommand.js +2491 -0
- package/dist/commands/ProgressCommand.d.ts +5 -0
- package/dist/commands/ProgressCommand.js +103 -0
- package/dist/commands/QueueCommand.d.ts +10 -0
- package/dist/commands/QueueCommand.js +147 -0
- package/dist/commands/RunCommand.d.ts +13 -0
- package/dist/commands/RunCommand.js +200 -0
- package/dist/commands/SkillCommand.d.ts +31 -0
- package/dist/commands/SkillCommand.js +1216 -0
- package/dist/commands/SkillsCommand.d.ts +5 -0
- package/dist/commands/SkillsCommand.js +68 -0
- package/dist/commands/StatusCommand.d.ts +6 -0
- package/dist/commands/StatusCommand.js +140 -0
- package/dist/commands/UpdateCommand.d.ts +8 -0
- package/dist/commands/UpdateCommand.js +251 -0
- package/dist/commands/VerifyCommand.d.ts +5 -0
- package/dist/commands/VerifyCommand.js +278 -0
- package/dist/commands/WorkflowCommand.d.ts +12 -0
- package/dist/commands/WorkflowCommand.js +150 -0
- package/dist/commands/index.d.ts +43 -0
- package/dist/commands/index.js +85 -0
- package/dist/core/constants.d.ts +41 -0
- package/dist/core/constants.js +73 -0
- package/dist/core/errors.d.ts +36 -0
- package/dist/core/errors.js +72 -0
- package/dist/core/index.d.ts +7 -0
- package/dist/core/index.js +23 -0
- package/dist/core/types.d.ts +369 -0
- package/dist/core/types.js +3 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.js +27 -0
- package/dist/presets/ProjectPresets.d.ts +41 -0
- package/dist/presets/ProjectPresets.js +190 -0
- package/dist/scaffolds/ProjectScaffoldPresets.d.ts +20 -0
- package/dist/scaffolds/ProjectScaffoldPresets.js +151 -0
- package/dist/services/ConfigManager.d.ts +14 -0
- package/dist/services/ConfigManager.js +386 -0
- package/dist/services/FeatureManager.d.ts +5 -0
- package/dist/services/FeatureManager.js +6 -0
- package/dist/services/FileService.d.ts +21 -0
- package/dist/services/FileService.js +152 -0
- package/dist/services/IndexBuilder.d.ts +12 -0
- package/dist/services/IndexBuilder.js +130 -0
- package/dist/services/Logger.d.ts +20 -0
- package/dist/services/Logger.js +48 -0
- package/dist/services/ProjectAssetRegistry.d.ts +12 -0
- package/dist/services/ProjectAssetRegistry.js +96 -0
- package/dist/services/ProjectAssetService.d.ts +49 -0
- package/dist/services/ProjectAssetService.js +223 -0
- package/dist/services/ProjectScaffoldCommandService.d.ts +73 -0
- package/dist/services/ProjectScaffoldCommandService.js +159 -0
- package/dist/services/ProjectScaffoldService.d.ts +44 -0
- package/dist/services/ProjectScaffoldService.js +507 -0
- package/dist/services/ProjectService.d.ts +209 -0
- package/dist/services/ProjectService.js +13239 -0
- package/dist/services/QueueService.d.ts +17 -0
- package/dist/services/QueueService.js +142 -0
- package/dist/services/RunService.d.ts +40 -0
- package/dist/services/RunService.js +420 -0
- package/dist/services/SkillParser.d.ts +30 -0
- package/dist/services/SkillParser.js +88 -0
- package/dist/services/StateManager.d.ts +16 -0
- package/dist/services/StateManager.js +127 -0
- package/dist/services/TemplateEngine.d.ts +43 -0
- package/dist/services/TemplateEngine.js +119 -0
- package/dist/services/TemplateGenerator.d.ts +40 -0
- package/dist/services/TemplateGenerator.js +273 -0
- package/dist/services/ValidationService.d.ts +19 -0
- package/dist/services/ValidationService.js +44 -0
- package/dist/services/Validator.d.ts +5 -0
- package/dist/services/Validator.js +6 -0
- package/dist/services/index.d.ts +52 -0
- package/dist/services/index.js +91 -0
- package/dist/services/templates/ExecutionTemplateBuilder.d.ts +12 -0
- package/dist/services/templates/ExecutionTemplateBuilder.js +300 -0
- package/dist/services/templates/ProjectTemplateBuilder.d.ts +38 -0
- package/dist/services/templates/ProjectTemplateBuilder.js +1897 -0
- package/dist/services/templates/TemplateBuilderBase.d.ts +19 -0
- package/dist/services/templates/TemplateBuilderBase.js +60 -0
- package/dist/services/templates/TemplateInputFactory.d.ts +16 -0
- package/dist/services/templates/TemplateInputFactory.js +298 -0
- package/dist/services/templates/templateTypes.d.ts +90 -0
- package/dist/services/templates/templateTypes.js +3 -0
- package/dist/tools/build-index.js +632 -0
- package/dist/utils/DateUtils.d.ts +18 -0
- package/dist/utils/DateUtils.js +40 -0
- package/dist/utils/PathUtils.d.ts +9 -0
- package/dist/utils/PathUtils.js +66 -0
- package/dist/utils/StringUtils.d.ts +26 -0
- package/dist/utils/StringUtils.js +47 -0
- package/dist/utils/helpers.d.ts +5 -0
- package/dist/utils/helpers.js +6 -0
- package/dist/utils/index.d.ts +7 -0
- package/dist/utils/index.js +23 -0
- package/dist/utils/logger.d.ts +5 -0
- package/dist/utils/logger.js +6 -0
- package/dist/utils/path.d.ts +5 -0
- package/dist/utils/path.js +6 -0
- package/dist/utils/subcommandHelp.d.ts +11 -0
- package/dist/utils/subcommandHelp.js +119 -0
- package/dist/workflow/ArchiveGate.d.ts +30 -0
- package/dist/workflow/ArchiveGate.js +93 -0
- package/dist/workflow/ConfigurableWorkflow.d.ts +89 -0
- package/dist/workflow/ConfigurableWorkflow.js +186 -0
- package/dist/workflow/HookSystem.d.ts +38 -0
- package/dist/workflow/HookSystem.js +66 -0
- package/dist/workflow/IndexRegenerator.d.ts +49 -0
- package/dist/workflow/IndexRegenerator.js +147 -0
- package/dist/workflow/PluginWorkflowComposer.d.ts +138 -0
- package/dist/workflow/PluginWorkflowComposer.js +239 -0
- package/dist/workflow/SkillUpdateEngine.d.ts +26 -0
- package/dist/workflow/SkillUpdateEngine.js +113 -0
- package/dist/workflow/VerificationSystem.d.ts +24 -0
- package/dist/workflow/VerificationSystem.js +116 -0
- package/dist/workflow/WorkflowEngine.d.ts +15 -0
- package/dist/workflow/WorkflowEngine.js +57 -0
- package/dist/workflow/index.d.ts +19 -0
- package/dist/workflow/index.js +32 -0
- package/package.json +78 -0
- package/scripts/postinstall.js +43 -0
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PluginWorkflowComposer = exports.DEFAULT_CHECKPOINT_PLUGIN_CONFIG = exports.DEFAULT_STITCH_PLUGIN_CONFIG = void 0;
|
|
4
|
+
const ConfigurableWorkflow_1 = require("./ConfigurableWorkflow");
|
|
5
|
+
exports.DEFAULT_STITCH_PLUGIN_CONFIG = {
|
|
6
|
+
enabled: false,
|
|
7
|
+
blocking: true,
|
|
8
|
+
project: {
|
|
9
|
+
project_id: '',
|
|
10
|
+
project_url: '',
|
|
11
|
+
save_on_first_run: true,
|
|
12
|
+
enforce_single_project: true,
|
|
13
|
+
},
|
|
14
|
+
gemini: {
|
|
15
|
+
model: 'gemini-3-flash-preview',
|
|
16
|
+
auto_switch_on_limit: true,
|
|
17
|
+
save_on_fallback: true,
|
|
18
|
+
},
|
|
19
|
+
codex: {
|
|
20
|
+
model: '',
|
|
21
|
+
mcp_server: 'stitch',
|
|
22
|
+
},
|
|
23
|
+
runner: {
|
|
24
|
+
mode: 'command',
|
|
25
|
+
command: 'node',
|
|
26
|
+
args: ['${ospec_package_path}/dist/adapters/gemini-stitch-adapter.js', '--change', '${change_path}', '--project', '${project_path}'],
|
|
27
|
+
cwd: '${project_path}',
|
|
28
|
+
timeout_ms: 900000,
|
|
29
|
+
token_env: '',
|
|
30
|
+
extra_env: {},
|
|
31
|
+
},
|
|
32
|
+
provider: 'gemini',
|
|
33
|
+
capabilities: {
|
|
34
|
+
page_design_review: {
|
|
35
|
+
enabled: false,
|
|
36
|
+
step: 'stitch_design_review',
|
|
37
|
+
activate_when_flags: ['ui_change', 'page_design', 'landing_page'],
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
exports.DEFAULT_CHECKPOINT_PLUGIN_CONFIG = {
|
|
42
|
+
enabled: false,
|
|
43
|
+
blocking: true,
|
|
44
|
+
runtime: {
|
|
45
|
+
base_url: '',
|
|
46
|
+
startup: {
|
|
47
|
+
command: '',
|
|
48
|
+
args: [],
|
|
49
|
+
cwd: '${project_path}',
|
|
50
|
+
timeout_ms: 600000,
|
|
51
|
+
},
|
|
52
|
+
readiness: {
|
|
53
|
+
type: 'url',
|
|
54
|
+
url: '',
|
|
55
|
+
timeout_ms: 180000,
|
|
56
|
+
},
|
|
57
|
+
auth: {
|
|
58
|
+
command: '',
|
|
59
|
+
args: [],
|
|
60
|
+
cwd: '${project_path}',
|
|
61
|
+
timeout_ms: 300000,
|
|
62
|
+
when: 'missing_storage_state',
|
|
63
|
+
},
|
|
64
|
+
shutdown: {
|
|
65
|
+
command: '',
|
|
66
|
+
args: [],
|
|
67
|
+
cwd: '${project_path}',
|
|
68
|
+
timeout_ms: 120000,
|
|
69
|
+
},
|
|
70
|
+
storage_state: '.ospec/plugins/checkpoint/auth/storage-state.json',
|
|
71
|
+
},
|
|
72
|
+
runner: {
|
|
73
|
+
mode: 'command',
|
|
74
|
+
command: 'node',
|
|
75
|
+
args: ['${ospec_package_path}/dist/adapters/playwright-checkpoint-adapter.js', '--change', '${change_path}', '--project', '${project_path}'],
|
|
76
|
+
cwd: '${project_path}',
|
|
77
|
+
timeout_ms: 900000,
|
|
78
|
+
token_env: '',
|
|
79
|
+
extra_env: {},
|
|
80
|
+
},
|
|
81
|
+
capabilities: {
|
|
82
|
+
ui_review: {
|
|
83
|
+
enabled: false,
|
|
84
|
+
step: 'checkpoint_ui_review',
|
|
85
|
+
activate_when_flags: ['ui_change', 'page_design', 'landing_page'],
|
|
86
|
+
},
|
|
87
|
+
flow_check: {
|
|
88
|
+
enabled: false,
|
|
89
|
+
step: 'checkpoint_flow_check',
|
|
90
|
+
activate_when_flags: ['feature_flow', 'api_change', 'backend_change', 'integration_change'],
|
|
91
|
+
},
|
|
92
|
+
},
|
|
93
|
+
stitch_integration: {
|
|
94
|
+
enabled: true,
|
|
95
|
+
auto_pass_stitch_review: true,
|
|
96
|
+
},
|
|
97
|
+
};
|
|
98
|
+
class PluginWorkflowComposer {
|
|
99
|
+
constructor(config) {
|
|
100
|
+
this.config = config;
|
|
101
|
+
}
|
|
102
|
+
getBaseConfig() {
|
|
103
|
+
return this.config.workflow || ConfigurableWorkflow_1.WORKFLOW_PRESETS[this.config.mode] || ConfigurableWorkflow_1.WORKFLOW_PRESETS.full;
|
|
104
|
+
}
|
|
105
|
+
getCoreSteps() {
|
|
106
|
+
return Array.isArray(this.getBaseConfig().core_required)
|
|
107
|
+
? [...this.getBaseConfig().core_required]
|
|
108
|
+
: [];
|
|
109
|
+
}
|
|
110
|
+
getBaseOptionalSteps() {
|
|
111
|
+
return this.getBaseConfig().optional_steps || {};
|
|
112
|
+
}
|
|
113
|
+
getActivatedBaseSteps(featureFlags) {
|
|
114
|
+
const activated = [];
|
|
115
|
+
for (const [stepName, stepConfig] of Object.entries(this.getBaseOptionalSteps())) {
|
|
116
|
+
if (!stepConfig?.enabled) {
|
|
117
|
+
continue;
|
|
118
|
+
}
|
|
119
|
+
if ((stepConfig.when || []).some(flag => featureFlags.includes(flag))) {
|
|
120
|
+
activated.push(stepName);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
return activated;
|
|
124
|
+
}
|
|
125
|
+
getEnabledPlugins() {
|
|
126
|
+
const plugins = [];
|
|
127
|
+
const stitchConfig = this.config.plugins?.stitch;
|
|
128
|
+
if (stitchConfig?.enabled) {
|
|
129
|
+
plugins.push({
|
|
130
|
+
name: 'stitch',
|
|
131
|
+
blocking: stitchConfig.blocking !== false,
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
const checkpointConfig = this.config.plugins?.checkpoint;
|
|
135
|
+
if (checkpointConfig?.enabled) {
|
|
136
|
+
plugins.push({
|
|
137
|
+
name: 'checkpoint',
|
|
138
|
+
blocking: checkpointConfig.blocking !== false,
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
return plugins;
|
|
142
|
+
}
|
|
143
|
+
getStitchCapabilities() {
|
|
144
|
+
return this.getPluginCapabilities().filter(item => item.plugin === 'stitch');
|
|
145
|
+
}
|
|
146
|
+
getCheckpointCapabilities() {
|
|
147
|
+
return this.getPluginCapabilities().filter(item => item.plugin === 'checkpoint');
|
|
148
|
+
}
|
|
149
|
+
getPluginCapabilities() {
|
|
150
|
+
const capabilities = [];
|
|
151
|
+
const stitchConfig = this.config.plugins?.stitch;
|
|
152
|
+
if (stitchConfig?.enabled) {
|
|
153
|
+
const pageDesignReview = stitchConfig.capabilities?.page_design_review;
|
|
154
|
+
if (pageDesignReview?.enabled) {
|
|
155
|
+
capabilities.push({
|
|
156
|
+
plugin: 'stitch',
|
|
157
|
+
capability: 'page_design_review',
|
|
158
|
+
step: pageDesignReview.step,
|
|
159
|
+
activateWhenFlags: [...pageDesignReview.activate_when_flags],
|
|
160
|
+
blocking: stitchConfig.blocking !== false,
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
const checkpointConfig = this.config.plugins?.checkpoint;
|
|
165
|
+
if (checkpointConfig?.enabled) {
|
|
166
|
+
const uiReview = checkpointConfig.capabilities?.ui_review;
|
|
167
|
+
if (uiReview?.enabled) {
|
|
168
|
+
capabilities.push({
|
|
169
|
+
plugin: 'checkpoint',
|
|
170
|
+
capability: 'ui_review',
|
|
171
|
+
step: uiReview.step,
|
|
172
|
+
activateWhenFlags: [...uiReview.activate_when_flags],
|
|
173
|
+
blocking: checkpointConfig.blocking !== false,
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
const flowCheck = checkpointConfig.capabilities?.flow_check;
|
|
177
|
+
if (flowCheck?.enabled) {
|
|
178
|
+
capabilities.push({
|
|
179
|
+
plugin: 'checkpoint',
|
|
180
|
+
capability: 'flow_check',
|
|
181
|
+
step: flowCheck.step,
|
|
182
|
+
activateWhenFlags: [...flowCheck.activate_when_flags],
|
|
183
|
+
blocking: checkpointConfig.blocking !== false,
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
return capabilities;
|
|
188
|
+
}
|
|
189
|
+
getPluginContributedSteps() {
|
|
190
|
+
return Array.from(new Set(this.getPluginCapabilities().map(item => item.step)));
|
|
191
|
+
}
|
|
192
|
+
getActivatedPluginSteps(featureFlags) {
|
|
193
|
+
return this.getPluginCapabilities()
|
|
194
|
+
.filter(item => item.activateWhenFlags.some(flag => featureFlags.includes(flag)))
|
|
195
|
+
.map(item => item.step);
|
|
196
|
+
}
|
|
197
|
+
getActivatedSteps(featureFlags) {
|
|
198
|
+
return Array.from(new Set([
|
|
199
|
+
...this.getActivatedBaseSteps(featureFlags),
|
|
200
|
+
...this.getActivatedPluginSteps(featureFlags),
|
|
201
|
+
]));
|
|
202
|
+
}
|
|
203
|
+
getSupportedFlags() {
|
|
204
|
+
const baseFlags = Array.isArray(this.getBaseConfig().feature_flags?.supported)
|
|
205
|
+
? this.getBaseConfig().feature_flags.supported
|
|
206
|
+
: [];
|
|
207
|
+
const pluginFlags = this.getPluginCapabilities()
|
|
208
|
+
.flatMap(item => item.activateWhenFlags);
|
|
209
|
+
return Array.from(new Set([...baseFlags, ...pluginFlags]));
|
|
210
|
+
}
|
|
211
|
+
getArchiveGate() {
|
|
212
|
+
return this.getBaseConfig().archive_gate;
|
|
213
|
+
}
|
|
214
|
+
validateFlags(flags) {
|
|
215
|
+
const supported = new Set(this.getSupportedFlags());
|
|
216
|
+
const unsupported = flags.filter(flag => !supported.has(flag));
|
|
217
|
+
return {
|
|
218
|
+
valid: unsupported.length === 0,
|
|
219
|
+
unsupported,
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
getSummary(featureFlags) {
|
|
223
|
+
const activatedSteps = this.getActivatedSteps(featureFlags);
|
|
224
|
+
const activatedPluginSteps = this.getActivatedPluginSteps(featureFlags);
|
|
225
|
+
const validation = this.validateFlags(featureFlags);
|
|
226
|
+
return {
|
|
227
|
+
mode: this.config.mode,
|
|
228
|
+
coreSteps: this.getCoreSteps().length,
|
|
229
|
+
optionalSteps: activatedSteps,
|
|
230
|
+
pluginSteps: activatedPluginSteps,
|
|
231
|
+
totalSteps: this.getCoreSteps().length + activatedSteps.length,
|
|
232
|
+
enabledPlugins: this.getEnabledPlugins().map(plugin => plugin.name),
|
|
233
|
+
flags: featureFlags,
|
|
234
|
+
unsupportedFlags: validation.unsupported,
|
|
235
|
+
};
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
exports.PluginWorkflowComposer = PluginWorkflowComposer;
|
|
239
|
+
//# sourceMappingURL=PluginWorkflowComposer.js.map
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { FeatureState } from '../core/types';
|
|
2
|
+
export interface SkillMetadata {
|
|
3
|
+
name: string;
|
|
4
|
+
version: string;
|
|
5
|
+
description?: string;
|
|
6
|
+
tags?: string[];
|
|
7
|
+
dependencies?: string[];
|
|
8
|
+
lastUpdated?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare class SkillUpdateEngine {
|
|
11
|
+
generateSkillIndex(featureDir: string): Promise<Record<string, SkillMetadata>>;
|
|
12
|
+
updateSkill(featureDir: string, skillName: string, content: string, metadata?: Partial<SkillMetadata>): Promise<void>;
|
|
13
|
+
getSkillHistory(featureDir: string, skillName: string): Promise<Array<{
|
|
14
|
+
version: string;
|
|
15
|
+
date: string;
|
|
16
|
+
changes: string[];
|
|
17
|
+
}>>;
|
|
18
|
+
validateSkillUpdate(featureState: FeatureState): Promise<{
|
|
19
|
+
valid: boolean;
|
|
20
|
+
errors: string[];
|
|
21
|
+
warnings: string[];
|
|
22
|
+
}>;
|
|
23
|
+
exportSkillPackage(featureDir: string): Promise<Buffer>;
|
|
24
|
+
}
|
|
25
|
+
export declare const skillUpdateEngine: SkillUpdateEngine;
|
|
26
|
+
//# sourceMappingURL=SkillUpdateEngine.d.ts.map
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.skillUpdateEngine = exports.SkillUpdateEngine = void 0;
|
|
37
|
+
const path = __importStar(require("path"));
|
|
38
|
+
const services_1 = require("../services");
|
|
39
|
+
class SkillUpdateEngine {
|
|
40
|
+
async generateSkillIndex(featureDir) {
|
|
41
|
+
const skillsDir = path.join(featureDir, 'skills');
|
|
42
|
+
try {
|
|
43
|
+
const files = await services_1.services.fileService.readDir(skillsDir);
|
|
44
|
+
const skillFiles = files.filter(file => file.endsWith('.md'));
|
|
45
|
+
const index = {};
|
|
46
|
+
for (const file of skillFiles) {
|
|
47
|
+
const filePath = path.join(skillsDir, file);
|
|
48
|
+
const content = await services_1.services.fileService.readFile(filePath);
|
|
49
|
+
const parsed = services_1.services.skillParser.parseSkillFile(content);
|
|
50
|
+
index[file] = {
|
|
51
|
+
name: parsed.frontmatter.name,
|
|
52
|
+
version: '1.0.0',
|
|
53
|
+
description: parsed.frontmatter.name,
|
|
54
|
+
tags: parsed.frontmatter.tags,
|
|
55
|
+
lastUpdated: new Date().toISOString(),
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
return index;
|
|
59
|
+
}
|
|
60
|
+
catch {
|
|
61
|
+
return {};
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
async updateSkill(featureDir, skillName, content, metadata) {
|
|
65
|
+
const skillPath = path.join(featureDir, 'skills', `${skillName}.md`);
|
|
66
|
+
const frontmatter = {
|
|
67
|
+
name: metadata?.name || skillName,
|
|
68
|
+
tags: metadata?.tags || [],
|
|
69
|
+
version: metadata?.version || '1.0.0',
|
|
70
|
+
};
|
|
71
|
+
const fmContent = `---
|
|
72
|
+
name: ${frontmatter.name}
|
|
73
|
+
version: ${frontmatter.version}
|
|
74
|
+
tags: ${JSON.stringify(frontmatter.tags)}
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
${content}`;
|
|
78
|
+
await services_1.services.fileService.writeFile(skillPath, fmContent);
|
|
79
|
+
}
|
|
80
|
+
async getSkillHistory(featureDir, skillName) {
|
|
81
|
+
void featureDir;
|
|
82
|
+
void skillName;
|
|
83
|
+
return [
|
|
84
|
+
{
|
|
85
|
+
version: '1.0.0',
|
|
86
|
+
date: new Date().toISOString(),
|
|
87
|
+
changes: ['Initial version'],
|
|
88
|
+
},
|
|
89
|
+
];
|
|
90
|
+
}
|
|
91
|
+
async validateSkillUpdate(featureState) {
|
|
92
|
+
const errors = [];
|
|
93
|
+
const warnings = [];
|
|
94
|
+
if (!featureState.completed.includes('skill_updated')) {
|
|
95
|
+
warnings.push('Skill documentation has not been marked as updated yet');
|
|
96
|
+
}
|
|
97
|
+
return {
|
|
98
|
+
valid: errors.length === 0,
|
|
99
|
+
errors,
|
|
100
|
+
warnings,
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
async exportSkillPackage(featureDir) {
|
|
104
|
+
const content = {
|
|
105
|
+
timestamp: new Date().toISOString(),
|
|
106
|
+
skills: await this.generateSkillIndex(featureDir),
|
|
107
|
+
};
|
|
108
|
+
return Buffer.from(JSON.stringify(content, null, 2));
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
exports.SkillUpdateEngine = SkillUpdateEngine;
|
|
112
|
+
exports.skillUpdateEngine = new SkillUpdateEngine();
|
|
113
|
+
//# sourceMappingURL=SkillUpdateEngine.js.map
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { FeatureState } from '../core/types';
|
|
2
|
+
export interface VerificationResult {
|
|
3
|
+
name: string;
|
|
4
|
+
status: 'pass' | 'fail' | 'warn';
|
|
5
|
+
message: string;
|
|
6
|
+
details?: unknown;
|
|
7
|
+
}
|
|
8
|
+
export declare class VerificationSystem {
|
|
9
|
+
verifyProposal(featureState: FeatureState): Promise<VerificationResult[]>;
|
|
10
|
+
verifyTasks(featureState: FeatureState): Promise<VerificationResult[]>;
|
|
11
|
+
verifyImplementation(featureState: FeatureState): Promise<VerificationResult[]>;
|
|
12
|
+
runFullVerification(featureState: FeatureState): Promise<{
|
|
13
|
+
passed: boolean;
|
|
14
|
+
results: VerificationResult[];
|
|
15
|
+
summary: string;
|
|
16
|
+
}>;
|
|
17
|
+
getVerificationChecklist(): Array<{
|
|
18
|
+
name: string;
|
|
19
|
+
description: string;
|
|
20
|
+
critical: boolean;
|
|
21
|
+
}>;
|
|
22
|
+
}
|
|
23
|
+
export declare const verificationSystem: VerificationSystem;
|
|
24
|
+
//# sourceMappingURL=VerificationSystem.d.ts.map
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.verificationSystem = exports.VerificationSystem = void 0;
|
|
4
|
+
class VerificationSystem {
|
|
5
|
+
async verifyProposal(featureState) {
|
|
6
|
+
const results = [];
|
|
7
|
+
if (!featureState.feature || featureState.feature.trim() === '') {
|
|
8
|
+
results.push({
|
|
9
|
+
name: 'Change Name',
|
|
10
|
+
status: 'fail',
|
|
11
|
+
message: 'Change name is required',
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
if (!featureState.affects || featureState.affects.length === 0) {
|
|
15
|
+
results.push({
|
|
16
|
+
name: 'Affected Modules',
|
|
17
|
+
status: 'warn',
|
|
18
|
+
message: 'No affected modules specified',
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
results.push({
|
|
22
|
+
name: 'Proposal Format',
|
|
23
|
+
status: 'pass',
|
|
24
|
+
message: 'Proposal format is valid',
|
|
25
|
+
});
|
|
26
|
+
return results;
|
|
27
|
+
}
|
|
28
|
+
async verifyTasks(featureState) {
|
|
29
|
+
const results = [];
|
|
30
|
+
if (featureState.pending.length === 0 && featureState.completed.length === 0) {
|
|
31
|
+
results.push({
|
|
32
|
+
name: 'Tasks Defined',
|
|
33
|
+
status: 'warn',
|
|
34
|
+
message: 'No tasks have been defined',
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
results.push({
|
|
38
|
+
name: 'Task Structure',
|
|
39
|
+
status: 'pass',
|
|
40
|
+
message: 'Task structure is valid',
|
|
41
|
+
});
|
|
42
|
+
return results;
|
|
43
|
+
}
|
|
44
|
+
async verifyImplementation(featureState) {
|
|
45
|
+
const results = [];
|
|
46
|
+
const coreSteps = ['proposal_complete', 'tasks_complete', 'implementation_complete'];
|
|
47
|
+
const completedCoreSteps = coreSteps.filter(step => featureState.completed.includes(step));
|
|
48
|
+
results.push({
|
|
49
|
+
name: 'Core Steps Completion',
|
|
50
|
+
status: completedCoreSteps.length === coreSteps.length ? 'pass' : 'warn',
|
|
51
|
+
message: `${completedCoreSteps.length}/${coreSteps.length} core steps completed`,
|
|
52
|
+
details: {
|
|
53
|
+
completed: completedCoreSteps,
|
|
54
|
+
remaining: coreSteps.filter(step => !completedCoreSteps.includes(step)),
|
|
55
|
+
},
|
|
56
|
+
});
|
|
57
|
+
return results;
|
|
58
|
+
}
|
|
59
|
+
async runFullVerification(featureState) {
|
|
60
|
+
const allResults = [
|
|
61
|
+
...(await this.verifyProposal(featureState)),
|
|
62
|
+
...(await this.verifyTasks(featureState)),
|
|
63
|
+
...(await this.verifyImplementation(featureState)),
|
|
64
|
+
];
|
|
65
|
+
const passed = allResults.every(result => result.status !== 'fail');
|
|
66
|
+
const failCount = allResults.filter(result => result.status === 'fail').length;
|
|
67
|
+
const warnCount = allResults.filter(result => result.status === 'warn').length;
|
|
68
|
+
const summary = failCount > 0
|
|
69
|
+
? `${failCount} verification(s) failed`
|
|
70
|
+
: warnCount > 0
|
|
71
|
+
? `${warnCount} warning(s) found`
|
|
72
|
+
: 'All verifications passed';
|
|
73
|
+
return {
|
|
74
|
+
passed,
|
|
75
|
+
results: allResults,
|
|
76
|
+
summary,
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
getVerificationChecklist() {
|
|
80
|
+
return [
|
|
81
|
+
{
|
|
82
|
+
name: 'Proposal Written',
|
|
83
|
+
description: 'Change proposal has been written',
|
|
84
|
+
critical: true,
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
name: 'Tasks Defined',
|
|
88
|
+
description: 'Implementation tasks have been defined',
|
|
89
|
+
critical: true,
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
name: 'Implementation Complete',
|
|
93
|
+
description: 'Change has been implemented',
|
|
94
|
+
critical: true,
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
name: 'Tests Pass',
|
|
98
|
+
description: 'All tests pass successfully',
|
|
99
|
+
critical: true,
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
name: 'Code Review',
|
|
103
|
+
description: 'Code has been reviewed',
|
|
104
|
+
critical: false,
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
name: 'Documentation Updated',
|
|
108
|
+
description: 'Documentation has been updated',
|
|
109
|
+
critical: false,
|
|
110
|
+
},
|
|
111
|
+
];
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
exports.VerificationSystem = VerificationSystem;
|
|
115
|
+
exports.verificationSystem = new VerificationSystem();
|
|
116
|
+
//# sourceMappingURL=VerificationSystem.js.map
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { FeatureState, FeatureStatus, WorkflowStep } from '../core/types';
|
|
2
|
+
export declare class WorkflowEngine {
|
|
3
|
+
canExecuteStep(featureState: FeatureState, step: WorkflowStep): Promise<boolean>;
|
|
4
|
+
executeStep(featureState: FeatureState, step: WorkflowStep): Promise<FeatureState>;
|
|
5
|
+
private getStepDependencies;
|
|
6
|
+
transitionStatus(currentStatus: FeatureStatus, targetStatus: FeatureStatus): Promise<void>;
|
|
7
|
+
getNextSteps(featureState: FeatureState): WorkflowStep[];
|
|
8
|
+
getProgress(featureState: FeatureState): {
|
|
9
|
+
completed: number;
|
|
10
|
+
total: number;
|
|
11
|
+
percentage: number;
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
export declare const workflowEngine: WorkflowEngine;
|
|
15
|
+
//# sourceMappingURL=WorkflowEngine.d.ts.map
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.workflowEngine = exports.WorkflowEngine = void 0;
|
|
4
|
+
const constants_1 = require("../core/constants");
|
|
5
|
+
const errors_1 = require("../core/errors");
|
|
6
|
+
class WorkflowEngine {
|
|
7
|
+
async canExecuteStep(featureState, step) {
|
|
8
|
+
const dependencies = this.getStepDependencies(step);
|
|
9
|
+
const completed = new Set(featureState.completed);
|
|
10
|
+
return dependencies.every(dep => completed.has(dep));
|
|
11
|
+
}
|
|
12
|
+
async executeStep(featureState, step) {
|
|
13
|
+
if (!(await this.canExecuteStep(featureState, step))) {
|
|
14
|
+
throw new errors_1.WorkflowError(`Cannot execute step ${step}. Dependencies not met.`);
|
|
15
|
+
}
|
|
16
|
+
featureState.current_step = step;
|
|
17
|
+
if (!featureState.completed.includes(step)) {
|
|
18
|
+
featureState.completed.push(step);
|
|
19
|
+
}
|
|
20
|
+
featureState.pending = featureState.pending.filter(pendingStep => pendingStep !== step);
|
|
21
|
+
featureState.last_updated = new Date().toISOString();
|
|
22
|
+
return featureState;
|
|
23
|
+
}
|
|
24
|
+
getStepDependencies(step) {
|
|
25
|
+
const dependencies = {
|
|
26
|
+
proposal_complete: [],
|
|
27
|
+
tasks_complete: ['proposal_complete'],
|
|
28
|
+
implementation_complete: ['tasks_complete'],
|
|
29
|
+
skill_updated: ['implementation_complete'],
|
|
30
|
+
index_regenerated: ['skill_updated'],
|
|
31
|
+
tests_passed: ['implementation_complete'],
|
|
32
|
+
verification_passed: ['tests_passed', 'index_regenerated'],
|
|
33
|
+
archived: ['verification_passed'],
|
|
34
|
+
};
|
|
35
|
+
return dependencies[step] || [];
|
|
36
|
+
}
|
|
37
|
+
async transitionStatus(currentStatus, targetStatus) {
|
|
38
|
+
if (!constants_1.STATE_TRANSITIONS[currentStatus]?.includes(targetStatus)) {
|
|
39
|
+
throw new errors_1.InvalidStateTransitionError(currentStatus, targetStatus);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
getNextSteps(featureState) {
|
|
43
|
+
return (featureState.pending || []);
|
|
44
|
+
}
|
|
45
|
+
getProgress(featureState) {
|
|
46
|
+
const total = featureState.completed.length + featureState.pending.length;
|
|
47
|
+
const completed = featureState.completed.length;
|
|
48
|
+
return {
|
|
49
|
+
completed,
|
|
50
|
+
total,
|
|
51
|
+
percentage: total === 0 ? 0 : Math.round((completed / total) * 100),
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
exports.WorkflowEngine = WorkflowEngine;
|
|
56
|
+
exports.workflowEngine = new WorkflowEngine();
|
|
57
|
+
//# sourceMappingURL=WorkflowEngine.js.map
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 工作流层导出
|
|
3
|
+
*/
|
|
4
|
+
export { WorkflowEngine, workflowEngine } from './WorkflowEngine';
|
|
5
|
+
export { VerificationSystem, verificationSystem } from './VerificationSystem';
|
|
6
|
+
export type { VerificationResult } from './VerificationSystem';
|
|
7
|
+
export { HookSystem, hookSystem } from './HookSystem';
|
|
8
|
+
export type { Hook, HookEvent } from './HookSystem';
|
|
9
|
+
export { SkillUpdateEngine, skillUpdateEngine } from './SkillUpdateEngine';
|
|
10
|
+
export type { SkillMetadata } from './SkillUpdateEngine';
|
|
11
|
+
export { IndexRegenerator, indexRegenerator } from './IndexRegenerator';
|
|
12
|
+
export type { IndexEntry, ProjectIndex } from './IndexRegenerator';
|
|
13
|
+
export { ArchiveGate, archiveGate } from './ArchiveGate';
|
|
14
|
+
export type { ArchiveGateConfig, ArchiveCheckResult } from './ArchiveGate';
|
|
15
|
+
export { ConfigurableWorkflow, WORKFLOW_PRESETS } from './ConfigurableWorkflow';
|
|
16
|
+
export type { CoreStep, OptionalStep, OptionalStepConfig, WorkflowConfigType } from './ConfigurableWorkflow';
|
|
17
|
+
export { PluginWorkflowComposer, DEFAULT_STITCH_PLUGIN_CONFIG, DEFAULT_CHECKPOINT_PLUGIN_CONFIG } from './PluginWorkflowComposer';
|
|
18
|
+
export type { EnabledPluginSummary, PluginCapabilitySummary } from './PluginWorkflowComposer';
|
|
19
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* 工作流层导出
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.PluginWorkflowComposer = exports.DEFAULT_CHECKPOINT_PLUGIN_CONFIG = exports.DEFAULT_STITCH_PLUGIN_CONFIG = exports.WORKFLOW_PRESETS = exports.ConfigurableWorkflow = exports.archiveGate = exports.ArchiveGate = exports.indexRegenerator = exports.IndexRegenerator = exports.skillUpdateEngine = exports.SkillUpdateEngine = exports.hookSystem = exports.HookSystem = exports.verificationSystem = exports.VerificationSystem = exports.workflowEngine = exports.WorkflowEngine = void 0;
|
|
7
|
+
var WorkflowEngine_1 = require("./WorkflowEngine");
|
|
8
|
+
Object.defineProperty(exports, "WorkflowEngine", { enumerable: true, get: function () { return WorkflowEngine_1.WorkflowEngine; } });
|
|
9
|
+
Object.defineProperty(exports, "workflowEngine", { enumerable: true, get: function () { return WorkflowEngine_1.workflowEngine; } });
|
|
10
|
+
var VerificationSystem_1 = require("./VerificationSystem");
|
|
11
|
+
Object.defineProperty(exports, "VerificationSystem", { enumerable: true, get: function () { return VerificationSystem_1.VerificationSystem; } });
|
|
12
|
+
Object.defineProperty(exports, "verificationSystem", { enumerable: true, get: function () { return VerificationSystem_1.verificationSystem; } });
|
|
13
|
+
var HookSystem_1 = require("./HookSystem");
|
|
14
|
+
Object.defineProperty(exports, "HookSystem", { enumerable: true, get: function () { return HookSystem_1.HookSystem; } });
|
|
15
|
+
Object.defineProperty(exports, "hookSystem", { enumerable: true, get: function () { return HookSystem_1.hookSystem; } });
|
|
16
|
+
var SkillUpdateEngine_1 = require("./SkillUpdateEngine");
|
|
17
|
+
Object.defineProperty(exports, "SkillUpdateEngine", { enumerable: true, get: function () { return SkillUpdateEngine_1.SkillUpdateEngine; } });
|
|
18
|
+
Object.defineProperty(exports, "skillUpdateEngine", { enumerable: true, get: function () { return SkillUpdateEngine_1.skillUpdateEngine; } });
|
|
19
|
+
var IndexRegenerator_1 = require("./IndexRegenerator");
|
|
20
|
+
Object.defineProperty(exports, "IndexRegenerator", { enumerable: true, get: function () { return IndexRegenerator_1.IndexRegenerator; } });
|
|
21
|
+
Object.defineProperty(exports, "indexRegenerator", { enumerable: true, get: function () { return IndexRegenerator_1.indexRegenerator; } });
|
|
22
|
+
var ArchiveGate_1 = require("./ArchiveGate");
|
|
23
|
+
Object.defineProperty(exports, "ArchiveGate", { enumerable: true, get: function () { return ArchiveGate_1.ArchiveGate; } });
|
|
24
|
+
Object.defineProperty(exports, "archiveGate", { enumerable: true, get: function () { return ArchiveGate_1.archiveGate; } });
|
|
25
|
+
var ConfigurableWorkflow_1 = require("./ConfigurableWorkflow");
|
|
26
|
+
Object.defineProperty(exports, "ConfigurableWorkflow", { enumerable: true, get: function () { return ConfigurableWorkflow_1.ConfigurableWorkflow; } });
|
|
27
|
+
Object.defineProperty(exports, "WORKFLOW_PRESETS", { enumerable: true, get: function () { return ConfigurableWorkflow_1.WORKFLOW_PRESETS; } });
|
|
28
|
+
var PluginWorkflowComposer_1 = require("./PluginWorkflowComposer");
|
|
29
|
+
Object.defineProperty(exports, "DEFAULT_STITCH_PLUGIN_CONFIG", { enumerable: true, get: function () { return PluginWorkflowComposer_1.DEFAULT_STITCH_PLUGIN_CONFIG; } });
|
|
30
|
+
Object.defineProperty(exports, "DEFAULT_CHECKPOINT_PLUGIN_CONFIG", { enumerable: true, get: function () { return PluginWorkflowComposer_1.DEFAULT_CHECKPOINT_PLUGIN_CONFIG; } });
|
|
31
|
+
Object.defineProperty(exports, "PluginWorkflowComposer", { enumerable: true, get: function () { return PluginWorkflowComposer_1.PluginWorkflowComposer; } });
|
|
32
|
+
//# sourceMappingURL=index.js.map
|