scene-capability-engine 3.3.5 → 3.3.10
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/CHANGELOG.md +130 -78
- package/README.md +6 -6
- package/README.zh.md +6 -6
- package/bin/scene-capability-engine.js +129 -7
- package/docs/331-poc-adaptation-roadmap.md +3 -3
- package/docs/331-poc-dual-track-integration-guide.md +8 -8
- package/docs/331-poc-weekly-delivery-checklist.md +6 -6
- package/docs/README.md +4 -0
- package/docs/adopt-migration-guide.md +13 -13
- package/docs/adoption-guide.md +28 -28
- package/docs/agent-hooks-analysis.md +10 -10
- package/docs/architecture.md +13 -13
- package/docs/articles/ai-driven-development-philosophy-and-practice.en.md +3 -3
- package/docs/articles/ai-driven-development-philosophy-and-practice.md +3 -3
- package/docs/autonomous-control-guide.md +35 -35
- package/docs/command-reference.md +192 -153
- package/docs/cross-tool-guide.md +7 -7
- package/docs/developer-guide.md +8 -8
- package/docs/document-governance.md +15 -15
- package/docs/environment-management-guide.md +6 -6
- package/docs/examples/add-export-command/design.md +1 -1
- package/docs/faq.md +13 -13
- package/docs/handoff-profile-integration-guide.md +3 -3
- package/docs/handoffs/evidence/ontology/moqui-template-baseline-2026-02-17-232922.json +7 -7
- package/docs/handoffs/evidence/ontology/moqui-template-baseline-2026-02-17-232922.md +1 -1
- package/docs/integration-modes.md +12 -12
- package/docs/integration-philosophy.md +11 -11
- package/docs/interactive-customization/331-poc-sce-integration-checklist.md +24 -24
- package/docs/interactive-customization/README.md +43 -43
- package/docs/interactive-customization/business-mode-policy-baseline.json +33 -0
- package/docs/interactive-customization/dual-ui-mode-integration-guide.md +1 -1
- package/docs/interactive-customization/moqui-adapter-interface.md +2 -2
- package/docs/interactive-customization/moqui-copilot-integration-guide.md +1 -1
- package/docs/interactive-customization/moqui-interactive-template-playbook.md +4 -4
- package/docs/interactive-customization/phase-acceptance-evidence.md +2 -2
- package/docs/knowledge-management-guide.md +6 -6
- package/docs/manual-workflows-guide.md +4 -4
- package/docs/moqui-capability-matrix.md +3 -3
- package/docs/moqui-standard-rebuild-guide.md +8 -8
- package/docs/moqui-template-core-library-playbook.md +27 -27
- package/docs/multi-agent-coordination-guide.md +19 -19
- package/docs/multi-repo-management-guide.md +17 -17
- package/docs/quick-start-with-ai-tools.md +7 -7
- package/docs/quick-start.md +2 -2
- package/docs/release-checklist.md +4 -4
- package/docs/sce-business-mode-map.md +103 -0
- package/docs/security-governance-default-baseline.md +12 -12
- package/docs/spec-collaboration-guide.md +3 -3
- package/docs/spec-locking-guide.md +2 -2
- package/docs/spec-workflow.md +3 -3
- package/docs/starter-kit/README.md +4 -4
- package/docs/starter-kit/handoff-manifest.starter.json +2 -2
- package/docs/starter-kit/release.workflow.sample.yml +1 -1
- package/docs/steering-strategy-guide.md +15 -15
- package/docs/team-collaboration-guide.md +69 -69
- package/docs/testing-strategy.md +2 -2
- package/docs/tools/claude-guide.md +14 -4
- package/docs/tools/cursor-guide.md +14 -14
- package/docs/tools/generic-guide.md +9 -9
- package/docs/tools/kiro-guide.md +4 -4
- package/docs/tools/vscode-guide.md +13 -13
- package/docs/tools/windsurf-guide.md +6 -6
- package/docs/troubleshooting.md +22 -22
- package/docs/upgrade-guide.md +8 -8
- package/docs/value-observability-guide.md +3 -3
- package/docs/zh/README.md +6 -0
- package/docs/zh/quick-start.md +15 -15
- package/docs/zh/release-checklist.md +3 -3
- package/docs/zh/tools/claude-guide.md +16 -6
- package/docs/zh/tools/cursor-guide.md +11 -11
- package/docs/zh/tools/generic-guide.md +13 -13
- package/docs/zh/tools/kiro-guide.md +2 -2
- package/docs/zh/tools/vscode-guide.md +11 -11
- package/docs/zh/tools/windsurf-guide.md +11 -11
- package/docs/zh/value-observability-guide.md +3 -3
- package/lib/adoption/adoption-logger.js +1 -1
- package/lib/adoption/adoption-strategy.js +28 -28
- package/lib/adoption/backup-manager.js +3 -3
- package/lib/adoption/conflict-resolver.js +2 -2
- package/lib/adoption/detection-engine.js +8 -8
- package/lib/adoption/error-formatter.js +4 -4
- package/lib/adoption/file-classifier.js +6 -6
- package/lib/adoption/progress-reporter.js +1 -1
- package/lib/adoption/smart-orchestrator.js +10 -10
- package/lib/adoption/strategy-selector.js +6 -6
- package/lib/adoption/summary-generator.js +1 -1
- package/lib/adoption/template-sync.js +8 -8
- package/lib/auto/autonomous-engine.js +7 -7
- package/lib/auto/checkpoint-manager.js +1 -1
- package/lib/auto/close-loop-runner.js +12 -12
- package/lib/auto/error-recovery-manager.js +1 -1
- package/lib/auto/goal-decomposer.js +1 -1
- package/lib/auto/moqui-recovery-sequence.js +2 -2
- package/lib/auto/progress-tracker.js +1 -1
- package/lib/auto/state-manager.js +1 -1
- package/lib/backup/backup-system.js +10 -10
- package/lib/backup/selective-backup.js +4 -4
- package/lib/collab/agent-registry.js +2 -2
- package/lib/collab/contract-manager.js +1 -1
- package/lib/collab/coordinator.js +2 -2
- package/lib/collab/dependency-manager.js +1 -1
- package/lib/collab/integration-manager.js +1 -1
- package/lib/collab/metadata-manager.js +1 -1
- package/lib/collab/multi-agent-config.js +2 -2
- package/lib/collab/spec-lifecycle-manager.js +2 -2
- package/lib/collab/visualizer.js +1 -1
- package/lib/commands/adopt.js +6 -6
- package/lib/commands/auto.js +56 -56
- package/lib/commands/collab.js +2 -2
- package/lib/commands/docs.js +3 -3
- package/lib/commands/doctor.js +1 -1
- package/lib/commands/knowledge.js +2 -2
- package/lib/commands/lock.js +1 -1
- package/lib/commands/ops.js +1 -1
- package/lib/commands/orchestrate.js +3 -3
- package/lib/commands/rollback.js +1 -1
- package/lib/commands/scene.js +135 -93
- package/lib/commands/session.js +139 -0
- package/lib/commands/spec-bootstrap.js +1 -1
- package/lib/commands/spec-gate.js +2 -2
- package/lib/commands/spec-pipeline.js +1 -1
- package/lib/commands/status.js +4 -4
- package/lib/commands/steering.js +119 -0
- package/lib/commands/value.js +1 -1
- package/lib/commands/watch.js +9 -9
- package/lib/commands/workspace-multi.js +1 -1
- package/lib/context/context-exporter.js +5 -7
- package/lib/context/prompt-generator.js +2 -2
- package/lib/environment/backup-system.js +1 -1
- package/lib/environment/environment-manager.js +2 -2
- package/lib/gitignore/gitignore-backup.js +3 -3
- package/lib/gitignore/gitignore-detector.js +13 -13
- package/lib/gitignore/gitignore-integration.js +3 -3
- package/lib/gitignore/gitignore-transformer.js +4 -4
- package/lib/gitignore/layered-rules-template.js +16 -16
- package/lib/governance/config-manager.js +1 -1
- package/lib/governance/doc-reference-checker.js +4 -4
- package/lib/governance/execution-logger.js +1 -1
- package/lib/governance/file-scanner.js +3 -3
- package/lib/interactive-customization/moqui-interactive-adapter.js +2 -2
- package/lib/knowledge/knowledge-manager.js +1 -1
- package/lib/lock/lock-manager.js +2 -2
- package/lib/lock/steering-file-lock.js +5 -5
- package/lib/lock/task-lock-manager.js +3 -3
- package/lib/operations/audit-logger.js +1 -1
- package/lib/operations/feedback-manager.js +1 -1
- package/lib/operations/operations-manager.js +3 -3
- package/lib/operations/permission-manager.js +2 -2
- package/lib/operations/template-loader.js +1 -1
- package/lib/orchestrator/agent-spawner.js +27 -2
- package/lib/orchestrator/bootstrap-prompt-builder.js +6 -6
- package/lib/orchestrator/orchestration-engine.js +1 -1
- package/lib/orchestrator/orchestrator-config.js +2 -2
- package/lib/repo/config-manager.js +3 -3
- package/lib/repo/handlers/init-handler.js +1 -1
- package/lib/repo/repo-manager.js +2 -2
- package/lib/runtime/business-mode-resolver.js +240 -0
- package/lib/runtime/session-store.js +207 -0
- package/lib/runtime/steering-contract.js +338 -0
- package/lib/scene-runtime/audit-emitter.js +1 -1
- package/lib/scene-runtime/binding-plugin-loader.js +3 -3
- package/lib/scene-runtime/eval-bridge.js +1 -1
- package/lib/scene-runtime/index.js +1 -1
- package/lib/scene-runtime/moqui-extractor.js +1 -1
- package/lib/scene-runtime/plan-compiler.js +1 -1
- package/lib/scene-runtime/policy-gate.js +1 -1
- package/lib/scene-runtime/runtime-executor.js +1 -1
- package/lib/scene-runtime/scene-loader.js +1 -1
- package/lib/spec/bootstrap/context-collector.js +1 -1
- package/lib/spec/pipeline/stage-adapters.js +3 -3
- package/lib/spec/pipeline/state-store.js +1 -1
- package/lib/spec-gate/policy/policy-loader.js +1 -1
- package/lib/spec-gate/rules/default-rules.js +6 -6
- package/lib/steering/adoption-config.js +1 -1
- package/lib/steering/compliance-error-reporter.js +3 -3
- package/lib/steering/context-sync-manager.js +2 -2
- package/lib/steering/index.js +1 -1
- package/lib/steering/spec-steering.js +2 -2
- package/lib/steering/steering-compliance-checker.js +1 -1
- package/lib/steering/steering-loader.js +4 -5
- package/lib/steering/steering-manager.js +4 -4
- package/lib/task/task-claimer.js +5 -5
- package/lib/task/task-status-store.js +2 -2
- package/lib/templates/content-generalizer.js +1 -1
- package/lib/templates/spec-reader.js +2 -2
- package/lib/templates/template-creator.js +1 -1
- package/lib/templates/template-exporter.js +3 -3
- package/lib/templates/template-manager.js +1 -1
- package/lib/upgrade/migration-engine.js +3 -3
- package/lib/upgrade/migrations/1.0.0-to-1.1.0.js +1 -1
- package/lib/utils/file-diff.js +6 -6
- package/lib/utils/tool-detector.js +10 -10
- package/lib/utils/validation.js +5 -5
- package/lib/value/metric-contract-loader.js +1 -1
- package/lib/version/version-manager.js +1 -1
- package/lib/watch/execution-logger.js +1 -1
- package/lib/watch/presets.js +8 -8
- package/lib/watch/watch-manager.js +2 -2
- package/lib/workspace/legacy-kiro-migrator.js +275 -0
- package/lib/workspace/multi/workspace-context-resolver.js +2 -2
- package/lib/workspace/multi/workspace-registry.js +2 -2
- package/lib/workspace/multi/workspace-state-manager.js +3 -3
- package/lib/workspace/workspace-manager.js +1 -1
- package/lib/workspace/workspace-sync.js +2 -2
- package/locales/en.json +4 -4
- package/locales/zh.json +4 -4
- package/package.json +9 -9
- package/template/{.kiro → .sce}/README.md +15 -15
- package/template/{.kiro → .sce}/hooks/check-spec-on-create.kiro.hook +2 -2
- package/template/{.kiro → .sce}/steering/CORE_PRINCIPLES.md +4 -4
- package/template/{.kiro → .sce}/steering/CURRENT_CONTEXT.md +1 -1
- package/template/{.kiro → .sce}/steering/ENVIRONMENT.md +3 -3
- package/template/{.kiro → .sce}/tools/backup_manager.py +3 -3
- package/template/{.kiro → .sce}/tools/configuration_manager.py +1 -1
- package/template/README.md +12 -12
- /package/template/{.kiro → .sce}/hooks/run-tests-on-save.kiro.hook +0 -0
- /package/template/{.kiro → .sce}/hooks/sync-tasks-on-edit.kiro.hook +0 -0
- /package/template/{.kiro → .sce}/specs/SPEC_WORKFLOW_GUIDE.md +0 -0
- /package/template/{.kiro → .sce}/steering/RULES_GUIDE.md +0 -0
- /package/template/{.kiro → .sce}/templates/operations/default/change-impact.md +0 -0
- /package/template/{.kiro → .sce}/templates/operations/default/deployment.md +0 -0
- /package/template/{.kiro → .sce}/templates/operations/default/feedback-response.md +0 -0
- /package/template/{.kiro → .sce}/templates/operations/default/migration-plan.md +0 -0
- /package/template/{.kiro → .sce}/templates/operations/default/monitoring.md +0 -0
- /package/template/{.kiro → .sce}/templates/operations/default/operations.md +0 -0
- /package/template/{.kiro → .sce}/templates/operations/default/rollback.md +0 -0
- /package/template/{.kiro → .sce}/templates/operations/default/tools.yaml +0 -0
- /package/template/{.kiro → .sce}/templates/operations/default/troubleshooting.md +0 -0
- /package/template/{.kiro → .sce}/tools/document_evaluator.py +0 -0
- /package/template/{.kiro → .sce}/tools/enhancement_logger.py +0 -0
- /package/template/{.kiro → .sce}/tools/error_handler.py +0 -0
- /package/template/{.kiro → .sce}/tools/improvement_identifier.py +0 -0
- /package/template/{.kiro → .sce}/tools/modification_applicator.py +0 -0
- /package/template/{.kiro → .sce}/tools/quality_gate_enforcer.py +0 -0
- /package/template/{.kiro → .sce}/tools/quality_scorer.py +0 -0
- /package/template/{.kiro → .sce}/tools/report_generator.py +0 -0
- /package/template/{.kiro → .sce}/tools/ultrawork_enhancer.py +0 -0
- /package/template/{.kiro → .sce}/tools/ultrawork_enhancer_refactored.py +0 -0
- /package/template/{.kiro → .sce}/tools/ultrawork_enhancer_v2.py +0 -0
- /package/template/{.kiro → .sce}/tools/ultrawork_enhancer_v3.py +0 -0
- /package/template/{.kiro → .sce}/tools/workflow_quality_gate.py +0 -0
package/lib/commands/scene.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
const path = require('path');
|
|
2
2
|
const zlib = require('zlib');
|
|
3
3
|
const crypto = require('crypto');
|
|
4
4
|
const { spawnSync } = require('child_process');
|
|
@@ -36,7 +36,7 @@ const TASK_PRIORITIES = new Set(['critical', 'high', 'medium', 'low']);
|
|
|
36
36
|
const EVAL_CONFIG_TEMPLATE_PROFILES = new Set(['default', 'erp', 'ops', 'robot']);
|
|
37
37
|
const ROUTE_POLICY_TEMPLATE_PROFILES = new Set(['default', 'erp', 'hybrid', 'robot']);
|
|
38
38
|
const ROUTE_POLICY_SUGGEST_MAX_ADJUSTMENT_DEFAULT = 6;
|
|
39
|
-
const SCENE_ROUTE_POLICY_ROLLOUT_DEFAULT_DIR = '.
|
|
39
|
+
const SCENE_ROUTE_POLICY_ROLLOUT_DEFAULT_DIR = '.sce/releases/scene-route-policy';
|
|
40
40
|
const SCENE_ROUTE_POLICY_DIFF_KEYS = [
|
|
41
41
|
'weights.valid_manifest',
|
|
42
42
|
'weights.invalid_manifest',
|
|
@@ -60,7 +60,7 @@ const SCENE_PACKAGE_KINDS = new Set([
|
|
|
60
60
|
]);
|
|
61
61
|
const SCENE_PACKAGE_RISK_LEVELS = new Set(['low', 'medium', 'high', 'critical']);
|
|
62
62
|
const SCENE_PACKAGE_TEMPLATE_API_VERSION = 'sce.scene.template/v0.1';
|
|
63
|
-
const SCENE_PACKAGE_TEMPLATE_DEFAULT_DIR = '.
|
|
63
|
+
const SCENE_PACKAGE_TEMPLATE_DEFAULT_DIR = '.sce/templates/scene-packages';
|
|
64
64
|
const SCENE_MOQUI_BASELINE_DEFAULT_MATCH = '(moqui|erp|suite|playbook|runbook|decision|action|governance)';
|
|
65
65
|
const SCENE_MOQUI_BASELINE_DEFAULT_MIN_SCORE = 70;
|
|
66
66
|
const SCENE_MOQUI_BASELINE_DEFAULT_MIN_VALID_RATE = 100;
|
|
@@ -166,7 +166,7 @@ function registerSceneCommands(program) {
|
|
|
166
166
|
sceneCmd
|
|
167
167
|
.command('validate')
|
|
168
168
|
.description('Validate scene manifest from spec or file path')
|
|
169
|
-
.option('-s, --spec <spec-name>', 'Spec name under .
|
|
169
|
+
.option('-s, --spec <spec-name>', 'Spec name under .sce/specs')
|
|
170
170
|
.option('-m, --manifest <path>', 'Path to scene manifest file (yaml/json)')
|
|
171
171
|
.option('--spec-manifest <relative-path>', 'Manifest path inside spec folder', 'custom/scene.yaml')
|
|
172
172
|
.option('--json', 'Print validation summary as JSON')
|
|
@@ -177,7 +177,7 @@ function registerSceneCommands(program) {
|
|
|
177
177
|
sceneCmd
|
|
178
178
|
.command('doctor')
|
|
179
179
|
.description('Diagnose scene policy, plan, and adapter readiness before run')
|
|
180
|
-
.option('-s, --spec <spec-name>', 'Spec name under .
|
|
180
|
+
.option('-s, --spec <spec-name>', 'Spec name under .sce/specs')
|
|
181
181
|
.option('-m, --manifest <path>', 'Path to scene manifest file (yaml/json)')
|
|
182
182
|
.option('--spec-manifest <relative-path>', 'Manifest path inside spec folder', 'custom/scene.yaml')
|
|
183
183
|
.option('--mode <mode>', 'Policy evaluation mode (dry_run|commit)', 'dry_run')
|
|
@@ -192,7 +192,7 @@ function registerSceneCommands(program) {
|
|
|
192
192
|
.option('--moqui-config <path>', 'Path to moqui-adapter.json config file for runtime bindings')
|
|
193
193
|
.option('--binding-plugin-dir <path>', 'Binding plugin directory for runtime handler loading')
|
|
194
194
|
.option('--binding-plugin-manifest <path>', 'Binding plugin manifest JSON path')
|
|
195
|
-
.option('--no-binding-plugin-auto-discovery', 'Disable runtime binding plugin auto-discovery under .
|
|
195
|
+
.option('--no-binding-plugin-auto-discovery', 'Disable runtime binding plugin auto-discovery under .sce')
|
|
196
196
|
.option('--no-binding-plugin-manifest-load', 'Disable runtime binding plugin manifest loading')
|
|
197
197
|
.option('--todo-out <path>', 'Write remediation checklist markdown to file')
|
|
198
198
|
.option('--task-out <path>', 'Write suggested task draft markdown to file')
|
|
@@ -206,7 +206,7 @@ function registerSceneCommands(program) {
|
|
|
206
206
|
sceneCmd
|
|
207
207
|
.command('scaffold')
|
|
208
208
|
.description('Create starter scene manifest in target spec')
|
|
209
|
-
.option('-s, --spec <spec-name>', 'Target spec name under .
|
|
209
|
+
.option('-s, --spec <spec-name>', 'Target spec name under .sce/specs')
|
|
210
210
|
.option('-t, --type <type>', 'Starter template type (erp|hybrid)', 'erp')
|
|
211
211
|
.option('--template <path>', 'Custom template path (yaml/json), overrides --type')
|
|
212
212
|
.option('--output <relative-path>', 'Manifest path within spec directory', 'custom/scene.yaml')
|
|
@@ -222,7 +222,7 @@ function registerSceneCommands(program) {
|
|
|
222
222
|
sceneCmd
|
|
223
223
|
.command('run')
|
|
224
224
|
.description('Run scene runtime by spec or manifest path')
|
|
225
|
-
.option('-s, --spec <spec-name>', 'Spec name under .
|
|
225
|
+
.option('-s, --spec <spec-name>', 'Spec name under .sce/specs')
|
|
226
226
|
.option('-m, --manifest <path>', 'Path to scene manifest file (yaml/json)')
|
|
227
227
|
.option('--spec-manifest <relative-path>', 'Manifest path inside spec folder', 'custom/scene.yaml')
|
|
228
228
|
.option('--mode <mode>', 'Run mode (dry_run|commit)', 'dry_run')
|
|
@@ -236,7 +236,7 @@ function registerSceneCommands(program) {
|
|
|
236
236
|
.option('--moqui-config <path>', 'Path to moqui-adapter.json config file for runtime bindings')
|
|
237
237
|
.option('--binding-plugin-dir <path>', 'Binding plugin directory for runtime handler loading')
|
|
238
238
|
.option('--binding-plugin-manifest <path>', 'Binding plugin manifest JSON path')
|
|
239
|
-
.option('--no-binding-plugin-auto-discovery', 'Disable runtime binding plugin auto-discovery under .
|
|
239
|
+
.option('--no-binding-plugin-auto-discovery', 'Disable runtime binding plugin auto-discovery under .sce')
|
|
240
240
|
.option('--no-binding-plugin-manifest-load', 'Disable runtime binding plugin manifest loading')
|
|
241
241
|
.option('--plan-out <path>', 'Write compiled plan JSON to file')
|
|
242
242
|
.option('--result-out <path>', 'Write execution result JSON to file')
|
|
@@ -252,7 +252,7 @@ function registerSceneCommands(program) {
|
|
|
252
252
|
.option('-f, --feedback <path>', 'Path to doctor feedback template markdown')
|
|
253
253
|
.option('-t, --target <path>', 'Path to evaluation target JSON')
|
|
254
254
|
.option('-o, --out <path>', 'Write evaluation report JSON to file')
|
|
255
|
-
.option('-s, --spec <spec-name>', 'Target spec name under .
|
|
255
|
+
.option('-s, --spec <spec-name>', 'Target spec name under .sce/specs (for task sync)')
|
|
256
256
|
.option('--spec-manifest <relative-path>', 'Manifest path inside spec folder for profile inference', 'custom/scene.yaml')
|
|
257
257
|
.option('--sync-spec-tasks', 'Append evaluation recommendations into target spec tasks.md')
|
|
258
258
|
.option('--task-policy <path>', 'Path to eval task sync policy JSON')
|
|
@@ -270,7 +270,7 @@ function registerSceneCommands(program) {
|
|
|
270
270
|
sceneCmd
|
|
271
271
|
.command('eval-policy-template')
|
|
272
272
|
.description('Create default eval task sync policy template JSON')
|
|
273
|
-
.option('-o, --out <path>', 'Output JSON path', '.
|
|
273
|
+
.option('-o, --out <path>', 'Output JSON path', '.sce/templates/scene-eval-task-policy.json')
|
|
274
274
|
.option('--force', 'Overwrite existing policy template file')
|
|
275
275
|
.option('--json', 'Print summary as JSON')
|
|
276
276
|
.action(async (options) => {
|
|
@@ -280,7 +280,7 @@ function registerSceneCommands(program) {
|
|
|
280
280
|
sceneCmd
|
|
281
281
|
.command('eval-config-template')
|
|
282
282
|
.description('Create unified scene eval config template JSON')
|
|
283
|
-
.option('-o, --out <path>', 'Output JSON path', '.
|
|
283
|
+
.option('-o, --out <path>', 'Output JSON path', '.sce/templates/scene-eval-config.json')
|
|
284
284
|
.option('-p, --profile <profile>', 'Template profile (default|erp|ops|robot)', 'default')
|
|
285
285
|
.option('--force', 'Overwrite existing config template file')
|
|
286
286
|
.option('--json', 'Print summary as JSON')
|
|
@@ -291,7 +291,7 @@ function registerSceneCommands(program) {
|
|
|
291
291
|
sceneCmd
|
|
292
292
|
.command('eval-profile-rules-template')
|
|
293
293
|
.description('Create eval profile inference rules template JSON')
|
|
294
|
-
.option('-o, --out <path>', 'Output JSON path', '.
|
|
294
|
+
.option('-o, --out <path>', 'Output JSON path', '.sce/templates/scene-eval-profile-rules.json')
|
|
295
295
|
.option('--force', 'Overwrite existing rules template file')
|
|
296
296
|
.option('--json', 'Print summary as JSON')
|
|
297
297
|
.action(async (options) => {
|
|
@@ -334,7 +334,7 @@ function registerSceneCommands(program) {
|
|
|
334
334
|
sceneCmd
|
|
335
335
|
.command('route-policy-template')
|
|
336
336
|
.description('Create scene route policy template JSON')
|
|
337
|
-
.option('-o, --out <path>', 'Output JSON path', '.
|
|
337
|
+
.option('-o, --out <path>', 'Output JSON path', '.sce/templates/scene-route-policy.json')
|
|
338
338
|
.option('-p, --profile <profile>', 'Template profile (default|erp|hybrid|robot)', 'default')
|
|
339
339
|
.option('--force', 'Overwrite existing route policy template file')
|
|
340
340
|
.option('--json', 'Print summary as JSON')
|
|
@@ -361,7 +361,7 @@ function registerSceneCommands(program) {
|
|
|
361
361
|
.command('route-policy-rollout')
|
|
362
362
|
.description('Build auditable rollout package from route policy suggestion payload')
|
|
363
363
|
.requiredOption('-s, --suggestion <path>', 'Path to route policy suggestion payload JSON')
|
|
364
|
-
.option('--target-policy <path>', 'Target runtime route policy path', '.
|
|
364
|
+
.option('--target-policy <path>', 'Target runtime route policy path', '.sce/config/scene-route-policy.json')
|
|
365
365
|
.option('--name <rollout-name>', 'Rollout package name (defaults to generated timestamp slug)')
|
|
366
366
|
.option('--out-dir <path>', 'Rollout package root directory', SCENE_ROUTE_POLICY_ROLLOUT_DEFAULT_DIR)
|
|
367
367
|
.option('--force', 'Overwrite rollout package directory if it already exists')
|
|
@@ -373,7 +373,7 @@ function registerSceneCommands(program) {
|
|
|
373
373
|
sceneCmd
|
|
374
374
|
.command('package-template')
|
|
375
375
|
.description('Create scene package contract template JSON')
|
|
376
|
-
.option('-s, --spec <spec-name>', 'Target spec name under .
|
|
376
|
+
.option('-s, --spec <spec-name>', 'Target spec name under .sce/specs')
|
|
377
377
|
.option('-o, --out <path>', 'Output path (relative; defaults by context)')
|
|
378
378
|
.option('--kind <kind>', 'Package kind (scene-template|scene-instance|scene-capability|scene-domain-profile|scene-policy-profile)', 'scene-template')
|
|
379
379
|
.option('--group <group>', 'Package group', 'sce.scene')
|
|
@@ -388,7 +388,7 @@ function registerSceneCommands(program) {
|
|
|
388
388
|
sceneCmd
|
|
389
389
|
.command('package-validate')
|
|
390
390
|
.description('Validate scene package contract JSON')
|
|
391
|
-
.option('-s, --spec <spec-name>', 'Spec name under .
|
|
391
|
+
.option('-s, --spec <spec-name>', 'Spec name under .sce/specs')
|
|
392
392
|
.option('-p, --package <path>', 'Path to scene package contract JSON')
|
|
393
393
|
.option('--spec-package <relative-path>', 'Package path inside spec folder', 'custom/scene-package.json')
|
|
394
394
|
.option('--json', 'Print validation payload as JSON')
|
|
@@ -400,7 +400,7 @@ function registerSceneCommands(program) {
|
|
|
400
400
|
sceneCmd
|
|
401
401
|
.command('package-publish')
|
|
402
402
|
.description('Publish scene package template assets into template library')
|
|
403
|
-
.requiredOption('-s, --spec <spec-name>', 'Source spec name under .
|
|
403
|
+
.requiredOption('-s, --spec <spec-name>', 'Source spec name under .sce/specs')
|
|
404
404
|
.option('--spec-package <relative-path>', 'Package path inside source spec', 'custom/scene-package.json')
|
|
405
405
|
.option('--scene-manifest <relative-path>', 'Scene manifest path inside source spec', 'custom/scene.yaml')
|
|
406
406
|
.option('--out-dir <path>', 'Template library output root', SCENE_PACKAGE_TEMPLATE_DEFAULT_DIR)
|
|
@@ -463,7 +463,7 @@ function registerSceneCommands(program) {
|
|
|
463
463
|
.command('package-instantiate')
|
|
464
464
|
.description('Instantiate new spec from published scene package template')
|
|
465
465
|
.requiredOption('-t, --template <path>', 'Template manifest JSON path')
|
|
466
|
-
.requiredOption('-s, --target-spec <spec-name>', 'Target spec name under .
|
|
466
|
+
.requiredOption('-s, --target-spec <spec-name>', 'Target spec name under .sce/specs')
|
|
467
467
|
.option('-v, --values <path>', 'Template parameter values JSON path')
|
|
468
468
|
.option('--force', 'Overwrite existing target spec files when they already exist')
|
|
469
469
|
.option('--json', 'Print instantiate payload as JSON')
|
|
@@ -485,7 +485,7 @@ function registerSceneCommands(program) {
|
|
|
485
485
|
sceneCmd
|
|
486
486
|
.command('package-gate-template')
|
|
487
487
|
.description('Create scene package quality gate policy template JSON')
|
|
488
|
-
.option('-o, --out <path>', 'Output path for gate policy template', '.
|
|
488
|
+
.option('-o, --out <path>', 'Output path for gate policy template', '.sce/templates/scene-package-gate-policy.json')
|
|
489
489
|
.option('--profile <profile>', 'Gate policy profile (baseline|three-layer)', 'baseline')
|
|
490
490
|
.option('--force', 'Overwrite output policy file when it already exists')
|
|
491
491
|
.option('--json', 'Print gate policy payload as JSON')
|
|
@@ -497,8 +497,8 @@ function registerSceneCommands(program) {
|
|
|
497
497
|
.command('package-gate')
|
|
498
498
|
.description('Evaluate scene package registry against quality gate policy')
|
|
499
499
|
.requiredOption('-r, --registry <path>', 'Registry JSON path (output of scene package-registry)')
|
|
500
|
-
.option('-p, --policy <path>', 'Gate policy JSON path', '.
|
|
501
|
-
.option('-s, --spec <spec-name>', 'Target spec name under .
|
|
500
|
+
.option('-p, --policy <path>', 'Gate policy JSON path', '.sce/templates/scene-package-gate-policy.json')
|
|
501
|
+
.option('-s, --spec <spec-name>', 'Target spec name under .sce/specs (for task sync)')
|
|
502
502
|
.option('--task-out <path>', 'Write gate task draft markdown to file')
|
|
503
503
|
.option('--runbook-out <path>', 'Write remediation execution runbook markdown to file')
|
|
504
504
|
.option('--sync-spec-tasks', 'Append failed gate checks into target spec tasks.md')
|
|
@@ -544,8 +544,8 @@ function registerSceneCommands(program) {
|
|
|
544
544
|
.command('moqui-baseline')
|
|
545
545
|
.description('Generate Moqui template baseline scorecard from scene package library')
|
|
546
546
|
.option('--template-dir <path>', 'Template root directory', SCENE_PACKAGE_TEMPLATE_DEFAULT_DIR)
|
|
547
|
-
.option('--out <path>', 'JSON report output path', '.
|
|
548
|
-
.option('--markdown-out <path>', 'Markdown report output path', '.
|
|
547
|
+
.option('--out <path>', 'JSON report output path', '.sce/reports/moqui-template-baseline.json')
|
|
548
|
+
.option('--markdown-out <path>', 'Markdown report output path', '.sce/reports/moqui-template-baseline.md')
|
|
549
549
|
.option('--match <regex>', 'Template selector regex', SCENE_MOQUI_BASELINE_DEFAULT_MATCH)
|
|
550
550
|
.option('--include-all', 'Disable selector filter and score all templates')
|
|
551
551
|
.option('--min-score <number>', 'Baseline minimum semantic score (0-100)', String(SCENE_MOQUI_BASELINE_DEFAULT_MIN_SCORE))
|
|
@@ -566,6 +566,9 @@ function registerSceneCommands(program) {
|
|
|
566
566
|
.option('--user-id <id>', 'User identifier')
|
|
567
567
|
.option('--session-id <id>', 'Session identifier')
|
|
568
568
|
.option('--execution-mode <mode>', 'suggestion|apply', 'suggestion')
|
|
569
|
+
.option('--business-mode <mode>', 'Business operating mode (user-mode|ops-mode|dev-mode)')
|
|
570
|
+
.option('--business-mode-policy <path>', 'Business mode policy override path')
|
|
571
|
+
.option('--allow-mode-override', 'Allow option overrides that conflict with selected business mode preset')
|
|
569
572
|
.option('--policy <path>', 'Guardrail policy override path')
|
|
570
573
|
.option('--catalog <path>', 'High-risk catalog override path')
|
|
571
574
|
.option('--dialogue-policy <path>', 'Dialogue governance policy override path')
|
|
@@ -637,6 +640,9 @@ function registerSceneCommands(program) {
|
|
|
637
640
|
.option('--user-id <id>', 'User identifier')
|
|
638
641
|
.option('--session-id <id>', 'Session identifier')
|
|
639
642
|
.option('--execution-mode <mode>', 'suggestion|apply', 'suggestion')
|
|
643
|
+
.option('--business-mode <mode>', 'Business operating mode (user-mode|ops-mode|dev-mode)')
|
|
644
|
+
.option('--business-mode-policy <path>', 'Business mode policy override path')
|
|
645
|
+
.option('--allow-mode-override', 'Allow option overrides that conflict with selected business mode preset')
|
|
640
646
|
.option('--policy <path>', 'Guardrail policy override path')
|
|
641
647
|
.option('--catalog <path>', 'High-risk catalog override path')
|
|
642
648
|
.option('--dialogue-policy <path>', 'Dialogue governance policy override path')
|
|
@@ -719,7 +725,7 @@ function registerSceneCommands(program) {
|
|
|
719
725
|
.command('publish')
|
|
720
726
|
.description('Publish scene package tarball to local registry')
|
|
721
727
|
.requiredOption('-p, --package <path>', 'Path to scene package directory')
|
|
722
|
-
.option('-r, --registry <path>', 'Registry root directory', '.
|
|
728
|
+
.option('-r, --registry <path>', 'Registry root directory', '.sce/registry')
|
|
723
729
|
.option('--dry-run', 'Preview publish without writing files')
|
|
724
730
|
.option('--force', 'Overwrite existing version in registry')
|
|
725
731
|
.option('--json', 'Print publish payload as JSON')
|
|
@@ -732,7 +738,7 @@ function registerSceneCommands(program) {
|
|
|
732
738
|
.description('Remove a published scene package version from local registry')
|
|
733
739
|
.requiredOption('-n, --name <name>', 'Package name to unpublish')
|
|
734
740
|
.requiredOption('-v, --version <version>', 'Package version to unpublish')
|
|
735
|
-
.option('-r, --registry <path>', 'Registry root directory', '.
|
|
741
|
+
.option('-r, --registry <path>', 'Registry root directory', '.sce/registry')
|
|
736
742
|
.option('--json', 'Print unpublish payload as JSON')
|
|
737
743
|
.action(async (options) => {
|
|
738
744
|
await runSceneUnpublishCommand(options);
|
|
@@ -744,7 +750,7 @@ function registerSceneCommands(program) {
|
|
|
744
750
|
.requiredOption('-n, --name <name>', 'Package name to install')
|
|
745
751
|
.option('-v, --version <version>', 'Package version (default: latest)')
|
|
746
752
|
.option('-o, --out <dir>', 'Target output directory')
|
|
747
|
-
.option('-r, --registry <path>', 'Registry root directory', '.
|
|
753
|
+
.option('-r, --registry <path>', 'Registry root directory', '.sce/registry')
|
|
748
754
|
.option('--force', 'Overwrite existing installation')
|
|
749
755
|
.option('--dry-run', 'Preview install without writing files')
|
|
750
756
|
.option('--json', 'Print install payload as JSON')
|
|
@@ -755,7 +761,7 @@ function registerSceneCommands(program) {
|
|
|
755
761
|
sceneCmd
|
|
756
762
|
.command('list')
|
|
757
763
|
.description('List all packages in the local scene registry')
|
|
758
|
-
.option('-r, --registry <path>', 'Registry root directory', '.
|
|
764
|
+
.option('-r, --registry <path>', 'Registry root directory', '.sce/registry')
|
|
759
765
|
.option('--json', 'Print result as JSON')
|
|
760
766
|
.action(async (options) => {
|
|
761
767
|
await runSceneListCommand(options);
|
|
@@ -765,7 +771,7 @@ function registerSceneCommands(program) {
|
|
|
765
771
|
.command('search')
|
|
766
772
|
.description('Search packages in the local scene registry')
|
|
767
773
|
.requiredOption('-q, --query <term>', 'Search term (substring match on name, description, group)')
|
|
768
|
-
.option('-r, --registry <path>', 'Registry root directory', '.
|
|
774
|
+
.option('-r, --registry <path>', 'Registry root directory', '.sce/registry')
|
|
769
775
|
.option('--json', 'Print result as JSON')
|
|
770
776
|
.action(async (options) => {
|
|
771
777
|
await runSceneSearchCommand(options);
|
|
@@ -788,7 +794,7 @@ function registerSceneCommands(program) {
|
|
|
788
794
|
.requiredOption('-n, --name <name>', 'Package name')
|
|
789
795
|
.requiredOption('-f, --from <version>', 'Source version')
|
|
790
796
|
.requiredOption('-t, --to <version>', 'Target version')
|
|
791
|
-
.option('-r, --registry <path>', 'Registry root directory', '.
|
|
797
|
+
.option('-r, --registry <path>', 'Registry root directory', '.sce/registry')
|
|
792
798
|
.option('--json', 'Print result as JSON')
|
|
793
799
|
.option('--stat', 'Show only file change summary')
|
|
794
800
|
.action(async (options) => {
|
|
@@ -799,7 +805,7 @@ function registerSceneCommands(program) {
|
|
|
799
805
|
.command('info')
|
|
800
806
|
.description('Display detailed information about a scene package in the local registry')
|
|
801
807
|
.requiredOption('-n, --name <name>', 'Package name')
|
|
802
|
-
.option('-r, --registry <path>', 'Registry root directory', '.
|
|
808
|
+
.option('-r, --registry <path>', 'Registry root directory', '.sce/registry')
|
|
803
809
|
.option('--json', 'Print result as JSON')
|
|
804
810
|
.option('--versions-only', 'Show only version list')
|
|
805
811
|
.action(async (options) => {
|
|
@@ -812,7 +818,7 @@ function registerSceneCommands(program) {
|
|
|
812
818
|
.requiredOption('-n, --name <name>', 'Package name')
|
|
813
819
|
.option('-v, --version <version>', 'Specific version to deprecate')
|
|
814
820
|
.option('-m, --message <msg>', 'Deprecation message')
|
|
815
|
-
.option('-r, --registry <path>', 'Registry root directory', '.
|
|
821
|
+
.option('-r, --registry <path>', 'Registry root directory', '.sce/registry')
|
|
816
822
|
.option('--json', 'Print result as JSON')
|
|
817
823
|
.option('--undo', 'Remove deprecation marker')
|
|
818
824
|
.action(async (options) => {
|
|
@@ -822,7 +828,7 @@ function registerSceneCommands(program) {
|
|
|
822
828
|
sceneCmd
|
|
823
829
|
.command('audit')
|
|
824
830
|
.description('Audit local scene package registry health')
|
|
825
|
-
.option('-r, --registry <path>', 'Registry root directory', '.
|
|
831
|
+
.option('-r, --registry <path>', 'Registry root directory', '.sce/registry')
|
|
826
832
|
.option('--json', 'Print result as JSON')
|
|
827
833
|
.option('--fix', 'Auto-fix orphaned tarballs and missing entries')
|
|
828
834
|
.action(async (options) => {
|
|
@@ -839,7 +845,7 @@ function registerSceneCommands(program) {
|
|
|
839
845
|
.requiredOption('-n, --name <name>', 'Package name')
|
|
840
846
|
.option('-o, --owner <owner>', 'Owner name to set')
|
|
841
847
|
.option('--remove', 'Remove owner from package')
|
|
842
|
-
.option('-r, --registry <path>', 'Registry root directory', '.
|
|
848
|
+
.option('-r, --registry <path>', 'Registry root directory', '.sce/registry')
|
|
843
849
|
.option('--json', 'Print result as JSON')
|
|
844
850
|
.action(async (options) => {
|
|
845
851
|
await runSceneOwnerCommand({ ...options, action: 'set' });
|
|
@@ -849,7 +855,7 @@ function registerSceneCommands(program) {
|
|
|
849
855
|
.command('show')
|
|
850
856
|
.description('Show the current owner of a package')
|
|
851
857
|
.requiredOption('-n, --name <name>', 'Package name')
|
|
852
|
-
.option('-r, --registry <path>', 'Registry root directory', '.
|
|
858
|
+
.option('-r, --registry <path>', 'Registry root directory', '.sce/registry')
|
|
853
859
|
.option('--json', 'Print result as JSON')
|
|
854
860
|
.action(async (options) => {
|
|
855
861
|
await runSceneOwnerCommand({ ...options, action: 'show' });
|
|
@@ -859,7 +865,7 @@ function registerSceneCommands(program) {
|
|
|
859
865
|
.command('list')
|
|
860
866
|
.description('List all packages owned by a specific owner')
|
|
861
867
|
.requiredOption('-o, --owner <owner>', 'Owner name to filter by')
|
|
862
|
-
.option('-r, --registry <path>', 'Registry root directory', '.
|
|
868
|
+
.option('-r, --registry <path>', 'Registry root directory', '.sce/registry')
|
|
863
869
|
.option('--json', 'Print result as JSON')
|
|
864
870
|
.action(async (options) => {
|
|
865
871
|
await runSceneOwnerCommand({ ...options, action: 'list' });
|
|
@@ -871,7 +877,7 @@ function registerSceneCommands(program) {
|
|
|
871
877
|
.requiredOption('-n, --name <name>', 'Package name')
|
|
872
878
|
.requiredOption('--from <owner>', 'Current owner')
|
|
873
879
|
.requiredOption('--to <owner>', 'New owner')
|
|
874
|
-
.option('-r, --registry <path>', 'Registry root directory', '.
|
|
880
|
+
.option('-r, --registry <path>', 'Registry root directory', '.sce/registry')
|
|
875
881
|
.option('--json', 'Print result as JSON')
|
|
876
882
|
.action(async (options) => {
|
|
877
883
|
await runSceneOwnerCommand({ ...options, action: 'transfer' });
|
|
@@ -888,7 +894,7 @@ function registerSceneCommands(program) {
|
|
|
888
894
|
.requiredOption('-n, --name <name>', 'Package name')
|
|
889
895
|
.requiredOption('-t, --tag <tag>', 'Tag name')
|
|
890
896
|
.requiredOption('-v, --version <version>', 'Version to tag')
|
|
891
|
-
.option('-r, --registry <path>', 'Registry root directory', '.
|
|
897
|
+
.option('-r, --registry <path>', 'Registry root directory', '.sce/registry')
|
|
892
898
|
.option('--json', 'Print result as JSON')
|
|
893
899
|
.action(async (options) => {
|
|
894
900
|
await runSceneTagCommand({ ...options, action: 'add' });
|
|
@@ -899,7 +905,7 @@ function registerSceneCommands(program) {
|
|
|
899
905
|
.description('Remove a distribution tag from a package')
|
|
900
906
|
.requiredOption('-n, --name <name>', 'Package name')
|
|
901
907
|
.requiredOption('-t, --tag <tag>', 'Tag name to remove')
|
|
902
|
-
.option('-r, --registry <path>', 'Registry root directory', '.
|
|
908
|
+
.option('-r, --registry <path>', 'Registry root directory', '.sce/registry')
|
|
903
909
|
.option('--json', 'Print result as JSON')
|
|
904
910
|
.action(async (options) => {
|
|
905
911
|
await runSceneTagCommand({ ...options, action: 'rm' });
|
|
@@ -909,7 +915,7 @@ function registerSceneCommands(program) {
|
|
|
909
915
|
.command('ls')
|
|
910
916
|
.description('List all distribution tags for a package')
|
|
911
917
|
.requiredOption('-n, --name <name>', 'Package name')
|
|
912
|
-
.option('-r, --registry <path>', 'Registry root directory', '.
|
|
918
|
+
.option('-r, --registry <path>', 'Registry root directory', '.sce/registry')
|
|
913
919
|
.option('--json', 'Print result as JSON')
|
|
914
920
|
.action(async (options) => {
|
|
915
921
|
await runSceneTagCommand({ ...options, action: 'ls' });
|
|
@@ -919,7 +925,7 @@ function registerSceneCommands(program) {
|
|
|
919
925
|
sceneCmd
|
|
920
926
|
.command('stats')
|
|
921
927
|
.description('Show aggregate statistics about the local scene package registry')
|
|
922
|
-
.option('-r, --registry <path>', 'Registry root directory', '.
|
|
928
|
+
.option('-r, --registry <path>', 'Registry root directory', '.sce/registry')
|
|
923
929
|
.option('--json', 'Print result as JSON')
|
|
924
930
|
.action(async (options) => {
|
|
925
931
|
await runSceneStatsCommand(options);
|
|
@@ -935,7 +941,7 @@ function registerSceneCommands(program) {
|
|
|
935
941
|
.description('Lock a specific version of a package')
|
|
936
942
|
.requiredOption('-n, --name <name>', 'Package name')
|
|
937
943
|
.requiredOption('-v, --version <version>', 'Version to lock')
|
|
938
|
-
.option('-r, --registry <path>', 'Registry root directory', '.
|
|
944
|
+
.option('-r, --registry <path>', 'Registry root directory', '.sce/registry')
|
|
939
945
|
.option('--json', 'Print result as JSON')
|
|
940
946
|
.action(async (options) => {
|
|
941
947
|
await runSceneLockCommand({ ...options, action: 'set' });
|
|
@@ -946,7 +952,7 @@ function registerSceneCommands(program) {
|
|
|
946
952
|
.description('Unlock a specific version of a package')
|
|
947
953
|
.requiredOption('-n, --name <name>', 'Package name')
|
|
948
954
|
.requiredOption('-v, --version <version>', 'Version to unlock')
|
|
949
|
-
.option('-r, --registry <path>', 'Registry root directory', '.
|
|
955
|
+
.option('-r, --registry <path>', 'Registry root directory', '.sce/registry')
|
|
950
956
|
.option('--json', 'Print result as JSON')
|
|
951
957
|
.action(async (options) => {
|
|
952
958
|
await runSceneLockCommand({ ...options, action: 'rm' });
|
|
@@ -956,7 +962,7 @@ function registerSceneCommands(program) {
|
|
|
956
962
|
.command('ls')
|
|
957
963
|
.description('List all locked versions for a package')
|
|
958
964
|
.requiredOption('-n, --name <name>', 'Package name')
|
|
959
|
-
.option('-r, --registry <path>', 'Registry root directory', '.
|
|
965
|
+
.option('-r, --registry <path>', 'Registry root directory', '.sce/registry')
|
|
960
966
|
.option('--json', 'Print result as JSON')
|
|
961
967
|
.action(async (options) => {
|
|
962
968
|
await runSceneLockCommand({ ...options, action: 'ls' });
|
|
@@ -967,7 +973,7 @@ function registerSceneCommands(program) {
|
|
|
967
973
|
.command('connect')
|
|
968
974
|
.description('Test connectivity and authentication to a Moqui ERP instance')
|
|
969
975
|
.option('-c, --config <path>', 'Path to moqui-adapter.json config file')
|
|
970
|
-
.option('-r, --registry <path>', 'Registry root directory', '.
|
|
976
|
+
.option('-r, --registry <path>', 'Registry root directory', '.sce/registry')
|
|
971
977
|
.option('--json', 'Print result as JSON')
|
|
972
978
|
.action(async (options) => {
|
|
973
979
|
await runSceneConnectCommand(options);
|
|
@@ -1029,7 +1035,7 @@ function registerSceneCommands(program) {
|
|
|
1029
1035
|
.command('contribute')
|
|
1030
1036
|
.description('Validate, lint, score, and publish a scene package in one step')
|
|
1031
1037
|
.option('-p, --package <path>', 'Path to scene package directory', '.')
|
|
1032
|
-
.option('-r, --registry <path>', 'Registry root directory', '.
|
|
1038
|
+
.option('-r, --registry <path>', 'Registry root directory', '.sce/registry')
|
|
1033
1039
|
.option('--dry-run', 'Preview contribution without publishing')
|
|
1034
1040
|
.option('--strict', 'Treat lint warnings as errors')
|
|
1035
1041
|
.option('--skip-lint', 'Skip lint and score stages')
|
|
@@ -1217,7 +1223,7 @@ function normalizeEvalOptions(options = {}) {
|
|
|
1217
1223
|
|
|
1218
1224
|
function normalizeEvalPolicyTemplateOptions(options = {}) {
|
|
1219
1225
|
return {
|
|
1220
|
-
out: options.out || '.
|
|
1226
|
+
out: options.out || '.sce/templates/scene-eval-task-policy.json',
|
|
1221
1227
|
force: options.force === true,
|
|
1222
1228
|
json: options.json === true
|
|
1223
1229
|
};
|
|
@@ -1225,7 +1231,7 @@ function normalizeEvalPolicyTemplateOptions(options = {}) {
|
|
|
1225
1231
|
|
|
1226
1232
|
function normalizeEvalConfigTemplateOptions(options = {}) {
|
|
1227
1233
|
return {
|
|
1228
|
-
out: options.out || '.
|
|
1234
|
+
out: options.out || '.sce/templates/scene-eval-config.json',
|
|
1229
1235
|
profile: options.profile ? String(options.profile).trim().toLowerCase() : 'default',
|
|
1230
1236
|
force: options.force === true,
|
|
1231
1237
|
json: options.json === true
|
|
@@ -1234,7 +1240,7 @@ function normalizeEvalConfigTemplateOptions(options = {}) {
|
|
|
1234
1240
|
|
|
1235
1241
|
function normalizeEvalProfileRulesTemplateOptions(options = {}) {
|
|
1236
1242
|
return {
|
|
1237
|
-
out: options.out || '.
|
|
1243
|
+
out: options.out || '.sce/templates/scene-eval-profile-rules.json',
|
|
1238
1244
|
force: options.force === true,
|
|
1239
1245
|
json: options.json === true
|
|
1240
1246
|
};
|
|
@@ -1275,7 +1281,7 @@ function normalizeRouteOptions(options = {}) {
|
|
|
1275
1281
|
|
|
1276
1282
|
function normalizeRoutePolicyTemplateOptions(options = {}) {
|
|
1277
1283
|
return {
|
|
1278
|
-
out: options.out || '.
|
|
1284
|
+
out: options.out || '.sce/templates/scene-route-policy.json',
|
|
1279
1285
|
profile: options.profile ? String(options.profile).trim().toLowerCase() : 'default',
|
|
1280
1286
|
force: options.force === true,
|
|
1281
1287
|
json: options.json === true
|
|
@@ -1318,7 +1324,7 @@ function normalizeRoutePolicySuggestOptions(options = {}) {
|
|
|
1318
1324
|
function normalizeRoutePolicyRolloutOptions(options = {}) {
|
|
1319
1325
|
return {
|
|
1320
1326
|
suggestion: options.suggestion ? String(options.suggestion).trim() : undefined,
|
|
1321
|
-
targetPolicy: options.targetPolicy ? String(options.targetPolicy).trim() : '.
|
|
1327
|
+
targetPolicy: options.targetPolicy ? String(options.targetPolicy).trim() : '.sce/config/scene-route-policy.json',
|
|
1322
1328
|
name: options.name ? String(options.name).trim() : undefined,
|
|
1323
1329
|
outDir: options.outDir ? String(options.outDir).trim() : SCENE_ROUTE_POLICY_ROLLOUT_DEFAULT_DIR,
|
|
1324
1330
|
force: options.force === true,
|
|
@@ -1331,7 +1337,7 @@ function normalizeScenePackageTemplateOptions(options = {}) {
|
|
|
1331
1337
|
|
|
1332
1338
|
return {
|
|
1333
1339
|
spec: hasSpec ? String(options.spec).trim() : undefined,
|
|
1334
|
-
out: options.out ? String(options.out).trim() : (hasSpec ? 'custom/scene-package.json' : '.
|
|
1340
|
+
out: options.out ? String(options.out).trim() : (hasSpec ? 'custom/scene-package.json' : '.sce/templates/scene-package.json'),
|
|
1335
1341
|
kind: options.kind ? String(options.kind).trim().toLowerCase() : 'scene-template',
|
|
1336
1342
|
group: options.group ? String(options.group).trim() : 'sce.scene',
|
|
1337
1343
|
name: options.name ? String(options.name).trim() : undefined,
|
|
@@ -1450,7 +1456,7 @@ function normalizeScenePackageRegistryOptions(options = {}) {
|
|
|
1450
1456
|
|
|
1451
1457
|
function normalizeScenePackageGateTemplateOptions(options = {}) {
|
|
1452
1458
|
return {
|
|
1453
|
-
out: options.out ? String(options.out).trim() : '.
|
|
1459
|
+
out: options.out ? String(options.out).trim() : '.sce/templates/scene-package-gate-policy.json',
|
|
1454
1460
|
profile: options.profile ? String(options.profile).trim().toLowerCase() : 'baseline',
|
|
1455
1461
|
force: options.force === true,
|
|
1456
1462
|
json: options.json === true
|
|
@@ -1460,7 +1466,7 @@ function normalizeScenePackageGateTemplateOptions(options = {}) {
|
|
|
1460
1466
|
function normalizeScenePackageGateOptions(options = {}) {
|
|
1461
1467
|
return {
|
|
1462
1468
|
registry: options.registry ? String(options.registry).trim() : undefined,
|
|
1463
|
-
policy: options.policy ? String(options.policy).trim() : '.
|
|
1469
|
+
policy: options.policy ? String(options.policy).trim() : '.sce/templates/scene-package-gate-policy.json',
|
|
1464
1470
|
spec: options.spec ? String(options.spec).trim() : undefined,
|
|
1465
1471
|
taskOut: options.taskOut ? String(options.taskOut).trim() : undefined,
|
|
1466
1472
|
runbookOut: options.runbookOut ? String(options.runbookOut).trim() : undefined,
|
|
@@ -2202,7 +2208,7 @@ function buildDoctorSuggestions(report, sceneManifest) {
|
|
|
2202
2208
|
suggestions.push(createDoctorSuggestion(
|
|
2203
2209
|
'binding-plugin-manifest-missing',
|
|
2204
2210
|
'Provide binding plugin manifest or disable manifest load',
|
|
2205
|
-
'Create manifest via `.
|
|
2211
|
+
'Create manifest via `.sce/config/scene-binding-plugins.json` or rerun doctor with `--no-binding-plugin-manifest-load`.',
|
|
2206
2212
|
'medium'
|
|
2207
2213
|
));
|
|
2208
2214
|
}
|
|
@@ -3722,7 +3728,7 @@ function createScenePackageTemplate(options = {}) {
|
|
|
3722
3728
|
|
|
3723
3729
|
function resolveScenePackageTemplateOutputPath(options = {}, projectRoot = process.cwd()) {
|
|
3724
3730
|
if (options.spec) {
|
|
3725
|
-
return path.join(projectRoot, '.
|
|
3731
|
+
return path.join(projectRoot, '.sce', 'specs', options.spec, options.out);
|
|
3726
3732
|
}
|
|
3727
3733
|
|
|
3728
3734
|
return resolvePath(projectRoot, options.out);
|
|
@@ -3730,7 +3736,7 @@ function resolveScenePackageTemplateOutputPath(options = {}, projectRoot = proce
|
|
|
3730
3736
|
|
|
3731
3737
|
function resolveScenePackageValidateInputPath(options = {}, projectRoot = process.cwd()) {
|
|
3732
3738
|
if (options.spec) {
|
|
3733
|
-
return path.join(projectRoot, '.
|
|
3739
|
+
return path.join(projectRoot, '.sce', 'specs', options.spec, options.specPackage);
|
|
3734
3740
|
}
|
|
3735
3741
|
|
|
3736
3742
|
return resolvePath(projectRoot, options.packagePath);
|
|
@@ -3742,7 +3748,7 @@ function deriveScenePackagePublishSourceFromManifestEntry(entry = {}) {
|
|
|
3742
3748
|
if (!normalized) {
|
|
3743
3749
|
return null;
|
|
3744
3750
|
}
|
|
3745
|
-
const marker = '.
|
|
3751
|
+
const marker = '.sce/specs/';
|
|
3746
3752
|
const markerIndex = normalized.indexOf(marker);
|
|
3747
3753
|
if (markerIndex < 0) {
|
|
3748
3754
|
return null;
|
|
@@ -4113,7 +4119,7 @@ function buildScenePackageGateRemediationPlan(evaluation = {}) {
|
|
|
4113
4119
|
priority: 'high',
|
|
4114
4120
|
title: `Increase valid template count by at least ${gap || 1}`,
|
|
4115
4121
|
recommendation: 'Promote additional template packages via package-publish until gate threshold is met.',
|
|
4116
|
-
command_hint: 'sce scene package-registry --template-dir .
|
|
4122
|
+
command_hint: 'sce scene package-registry --template-dir .sce/templates/scene-packages --json'
|
|
4117
4123
|
}, checkId);
|
|
4118
4124
|
continue;
|
|
4119
4125
|
}
|
|
@@ -4124,7 +4130,7 @@ function buildScenePackageGateRemediationPlan(evaluation = {}) {
|
|
|
4124
4130
|
priority: 'high',
|
|
4125
4131
|
title: 'Reduce invalid template count to gate threshold',
|
|
4126
4132
|
recommendation: 'Repair or deprecate invalid templates and rerun registry validation.',
|
|
4127
|
-
command_hint: 'sce scene package-registry --template-dir .
|
|
4133
|
+
command_hint: 'sce scene package-registry --template-dir .sce/templates/scene-packages --strict --json'
|
|
4128
4134
|
}, checkId);
|
|
4129
4135
|
continue;
|
|
4130
4136
|
}
|
|
@@ -4521,7 +4527,7 @@ async function loadSceneEvalProfileRules(options = {}, projectRoot, fileSystem =
|
|
|
4521
4527
|
const defaultRules = createDefaultSceneEvalProfileRulesTemplate();
|
|
4522
4528
|
|
|
4523
4529
|
const explicitRulesPath = options.profileRules ? resolvePath(projectRoot, options.profileRules) : null;
|
|
4524
|
-
const implicitRulesPath = path.join(projectRoot, '.
|
|
4530
|
+
const implicitRulesPath = path.join(projectRoot, '.sce', 'config', 'scene-eval-profile-rules.json');
|
|
4525
4531
|
const hasExplicitRulesPath = !!explicitRulesPath;
|
|
4526
4532
|
|
|
4527
4533
|
let rulesPath = null;
|
|
@@ -4534,7 +4540,7 @@ async function loadSceneEvalProfileRules(options = {}, projectRoot, fileSystem =
|
|
|
4534
4540
|
try {
|
|
4535
4541
|
if (await pathExists(implicitRulesPath)) {
|
|
4536
4542
|
rulesPath = implicitRulesPath;
|
|
4537
|
-
rulesSource = '.
|
|
4543
|
+
rulesSource = '.sce/config/scene-eval-profile-rules.json';
|
|
4538
4544
|
}
|
|
4539
4545
|
} catch (error) {
|
|
4540
4546
|
warnings.push(`profile rules path check failed: ${error.message}`);
|
|
@@ -4811,7 +4817,7 @@ function collectManifestDiscoveryCandidates(preferredPath = 'custom/scene.yaml')
|
|
|
4811
4817
|
}
|
|
4812
4818
|
|
|
4813
4819
|
async function discoverSpecSceneManifestPath(projectRoot, specName, preferredPath = 'custom/scene.yaml', fileSystem = fs) {
|
|
4814
|
-
const specRoot = path.join(projectRoot, '.
|
|
4820
|
+
const specRoot = path.join(projectRoot, '.sce', 'specs', specName);
|
|
4815
4821
|
const pathExists = typeof fileSystem.pathExists === 'function'
|
|
4816
4822
|
? fileSystem.pathExists.bind(fileSystem)
|
|
4817
4823
|
: fs.pathExists.bind(fs);
|
|
@@ -5015,7 +5021,7 @@ function matchesSceneCatalogFilters(entry, options) {
|
|
|
5015
5021
|
}
|
|
5016
5022
|
|
|
5017
5023
|
async function listSpecDirectoryNames(projectRoot, fileSystem = fs) {
|
|
5018
|
-
const specsPath = path.join(projectRoot, '.
|
|
5024
|
+
const specsPath = path.join(projectRoot, '.sce', 'specs');
|
|
5019
5025
|
const readDirectory = typeof fileSystem.readdir === 'function'
|
|
5020
5026
|
? fileSystem.readdir.bind(fileSystem)
|
|
5021
5027
|
: fs.readdir.bind(fs);
|
|
@@ -5046,7 +5052,7 @@ async function buildSceneCatalog(options = {}, dependencies = {}) {
|
|
|
5046
5052
|
: await listSpecDirectoryNames(projectRoot, fileSystem);
|
|
5047
5053
|
|
|
5048
5054
|
if (options.spec) {
|
|
5049
|
-
const specPath = path.join(projectRoot, '.
|
|
5055
|
+
const specPath = path.join(projectRoot, '.sce', 'specs', options.spec);
|
|
5050
5056
|
if (!await pathExists(specPath)) {
|
|
5051
5057
|
throw new Error(`target spec not found: ${options.spec}`);
|
|
5052
5058
|
}
|
|
@@ -5083,7 +5089,7 @@ async function buildSceneCatalog(options = {}, dependencies = {}) {
|
|
|
5083
5089
|
|
|
5084
5090
|
summary.manifests_discovered += 1;
|
|
5085
5091
|
|
|
5086
|
-
const manifestAbsolutePath = path.join(projectRoot, '.
|
|
5092
|
+
const manifestAbsolutePath = path.join(projectRoot, '.sce', 'specs', specName, manifestPath);
|
|
5087
5093
|
let sceneManifest = {};
|
|
5088
5094
|
let validationErrors = [];
|
|
5089
5095
|
|
|
@@ -5666,7 +5672,7 @@ async function appendSceneEvalRecommendationsToSpecTasks(options, report, projec
|
|
|
5666
5672
|
throw new Error('--sync-spec-tasks requires --spec source');
|
|
5667
5673
|
}
|
|
5668
5674
|
|
|
5669
|
-
const tasksPath = path.join(projectRoot, '.
|
|
5675
|
+
const tasksPath = path.join(projectRoot, '.sce', 'specs', options.spec, 'tasks.md');
|
|
5670
5676
|
const tasksExists = await fileSystem.pathExists(tasksPath);
|
|
5671
5677
|
|
|
5672
5678
|
if (!tasksExists) {
|
|
@@ -5822,7 +5828,7 @@ async function appendDoctorSuggestionsToSpecTasks(options, report, projectRoot,
|
|
|
5822
5828
|
throw new Error('--sync-spec-tasks requires --spec source');
|
|
5823
5829
|
}
|
|
5824
5830
|
|
|
5825
|
-
const tasksPath = path.join(projectRoot, '.
|
|
5831
|
+
const tasksPath = path.join(projectRoot, '.sce', 'specs', options.spec, 'tasks.md');
|
|
5826
5832
|
const tasksExists = await fileSystem.pathExists(tasksPath);
|
|
5827
5833
|
|
|
5828
5834
|
if (!tasksExists) {
|
|
@@ -6151,7 +6157,7 @@ async function appendScenePackageGateChecksToSpecTasks(options, payload, project
|
|
|
6151
6157
|
throw new Error('--sync-spec-tasks requires --spec source');
|
|
6152
6158
|
}
|
|
6153
6159
|
|
|
6154
|
-
const tasksPath = path.join(projectRoot, '.
|
|
6160
|
+
const tasksPath = path.join(projectRoot, '.sce', 'specs', options.spec, 'tasks.md');
|
|
6155
6161
|
const tasksExists = await fileSystem.pathExists(tasksPath);
|
|
6156
6162
|
|
|
6157
6163
|
if (!tasksExists) {
|
|
@@ -6792,7 +6798,7 @@ function resolveScaffoldTemplatePath(options, projectRoot) {
|
|
|
6792
6798
|
}
|
|
6793
6799
|
|
|
6794
6800
|
function resolveScaffoldOutputPath(projectRoot, options) {
|
|
6795
|
-
return path.join(projectRoot, '.
|
|
6801
|
+
return path.join(projectRoot, '.sce', 'specs', options.spec, options.output);
|
|
6796
6802
|
}
|
|
6797
6803
|
|
|
6798
6804
|
function applyScaffoldOverrides(manifest, options) {
|
|
@@ -7550,7 +7556,7 @@ async function runScenePackageTemplateCommand(rawOptions = {}, dependencies = {}
|
|
|
7550
7556
|
overwritten: outputExists,
|
|
7551
7557
|
spec: options.spec || null,
|
|
7552
7558
|
output_path: options.spec
|
|
7553
|
-
? normalizeRelativePath(path.join('.
|
|
7559
|
+
? normalizeRelativePath(path.join('.sce', 'specs', options.spec, options.out))
|
|
7554
7560
|
: normalizeRelativePath(options.out),
|
|
7555
7561
|
output_abs_path: outputPath,
|
|
7556
7562
|
package_contract: payload,
|
|
@@ -7806,7 +7812,7 @@ async function runScenePackagePublishCommand(rawOptions = {}, dependencies = {})
|
|
|
7806
7812
|
: fs.writeFile.bind(fs);
|
|
7807
7813
|
|
|
7808
7814
|
try {
|
|
7809
|
-
const specRoot = path.join(projectRoot, '.
|
|
7815
|
+
const specRoot = path.join(projectRoot, '.sce', 'specs', options.spec);
|
|
7810
7816
|
const specExists = await pathExists(specRoot);
|
|
7811
7817
|
if (!specExists) {
|
|
7812
7818
|
throw new Error(`source spec not found: ${options.spec}`);
|
|
@@ -9133,7 +9139,7 @@ async function runScenePackageOntologyBackfillBatchCommand(rawOptions = {}, depe
|
|
|
9133
9139
|
}
|
|
9134
9140
|
|
|
9135
9141
|
const specPackagePath = source.specPackage || options.specPackagePath;
|
|
9136
|
-
const packagePath = path.join(projectRoot, '.
|
|
9142
|
+
const packagePath = path.join(projectRoot, '.sce', 'specs', spec, specPackagePath);
|
|
9137
9143
|
const packagePathDisplay = normalizeRelativePath(path.relative(projectRoot, packagePath)) || normalizeRelativePath(packagePath);
|
|
9138
9144
|
|
|
9139
9145
|
try {
|
|
@@ -9315,7 +9321,7 @@ async function runScenePackageInstantiateCommand(rawOptions = {}, dependencies =
|
|
|
9315
9321
|
options.targetSpec
|
|
9316
9322
|
);
|
|
9317
9323
|
|
|
9318
|
-
const targetSpecRoot = path.join(projectRoot, '.
|
|
9324
|
+
const targetSpecRoot = path.join(projectRoot, '.sce', 'specs', options.targetSpec);
|
|
9319
9325
|
const artifacts = isPlainObject(packageContract.artifacts) ? packageContract.artifacts : {};
|
|
9320
9326
|
const targetSceneManifestRelative = normalizeRelativePath(artifacts.entry_scene || 'custom/scene.yaml') || 'custom/scene.yaml';
|
|
9321
9327
|
const targetPackageContractRelative = 'custom/scene-package.json';
|
|
@@ -9825,7 +9831,7 @@ async function runSceneScaffoldCommand(rawOptions = {}, dependencies = {}) {
|
|
|
9825
9831
|
}
|
|
9826
9832
|
|
|
9827
9833
|
try {
|
|
9828
|
-
const specPath = path.join(projectRoot, '.
|
|
9834
|
+
const specPath = path.join(projectRoot, '.sce', 'specs', options.spec);
|
|
9829
9835
|
const specExists = await fileSystem.pathExists(specPath);
|
|
9830
9836
|
if (!specExists) {
|
|
9831
9837
|
throw new Error(`target spec not found: ${options.spec}`);
|
|
@@ -11161,6 +11167,9 @@ function normalizeSceneInteractiveFlowOptions(options = {}) {
|
|
|
11161
11167
|
userId: options.userId ? String(options.userId).trim() : undefined,
|
|
11162
11168
|
sessionId: options.sessionId ? String(options.sessionId).trim() : undefined,
|
|
11163
11169
|
executionMode: options.executionMode ? String(options.executionMode).trim() : 'suggestion',
|
|
11170
|
+
businessMode: options.businessMode ? String(options.businessMode).trim().toLowerCase() : undefined,
|
|
11171
|
+
businessModePolicy: options.businessModePolicy ? String(options.businessModePolicy).trim() : undefined,
|
|
11172
|
+
allowModeOverride: options.allowModeOverride === true,
|
|
11164
11173
|
policy: options.policy ? String(options.policy).trim() : undefined,
|
|
11165
11174
|
catalog: options.catalog ? String(options.catalog).trim() : undefined,
|
|
11166
11175
|
dialoguePolicy: options.dialoguePolicy ? String(options.dialoguePolicy).trim() : undefined,
|
|
@@ -11236,6 +11245,12 @@ function validateSceneInteractiveFlowOptions(options) {
|
|
|
11236
11245
|
if (!['suggestion', 'apply'].includes(String(options.executionMode || '').trim())) {
|
|
11237
11246
|
return '--execution-mode must be suggestion or apply';
|
|
11238
11247
|
}
|
|
11248
|
+
if (
|
|
11249
|
+
options.businessMode !== undefined &&
|
|
11250
|
+
!['user-mode', 'ops-mode', 'dev-mode'].includes(String(options.businessMode).trim().toLowerCase())
|
|
11251
|
+
) {
|
|
11252
|
+
return '--business-mode must be one of: user-mode, ops-mode, dev-mode';
|
|
11253
|
+
}
|
|
11239
11254
|
const dialogueProfile = String(options.dialogueProfile || 'business-user').trim().toLowerCase();
|
|
11240
11255
|
if (!['business-user', 'system-maintainer'].includes(dialogueProfile)) {
|
|
11241
11256
|
return '--dialogue-profile must be one of: business-user, system-maintainer';
|
|
@@ -11289,6 +11304,9 @@ function normalizeSceneInteractiveLoopOptions(options = {}) {
|
|
|
11289
11304
|
userId: options.userId ? String(options.userId).trim() : undefined,
|
|
11290
11305
|
sessionId: options.sessionId ? String(options.sessionId).trim() : undefined,
|
|
11291
11306
|
executionMode: options.executionMode ? String(options.executionMode).trim() : 'suggestion',
|
|
11307
|
+
businessMode: options.businessMode ? String(options.businessMode).trim().toLowerCase() : undefined,
|
|
11308
|
+
businessModePolicy: options.businessModePolicy ? String(options.businessModePolicy).trim() : undefined,
|
|
11309
|
+
allowModeOverride: options.allowModeOverride === true,
|
|
11292
11310
|
policy: options.policy ? String(options.policy).trim() : undefined,
|
|
11293
11311
|
catalog: options.catalog ? String(options.catalog).trim() : undefined,
|
|
11294
11312
|
dialoguePolicy: options.dialoguePolicy ? String(options.dialoguePolicy).trim() : undefined,
|
|
@@ -11345,6 +11363,12 @@ function validateSceneInteractiveLoopOptions(options) {
|
|
|
11345
11363
|
if (!['suggestion', 'apply'].includes(String(options.executionMode || '').trim())) {
|
|
11346
11364
|
return '--execution-mode must be suggestion or apply';
|
|
11347
11365
|
}
|
|
11366
|
+
if (
|
|
11367
|
+
options.businessMode !== undefined &&
|
|
11368
|
+
!['user-mode', 'ops-mode', 'dev-mode'].includes(String(options.businessMode).trim().toLowerCase())
|
|
11369
|
+
) {
|
|
11370
|
+
return '--business-mode must be one of: user-mode, ops-mode, dev-mode';
|
|
11371
|
+
}
|
|
11348
11372
|
const dialogueProfile = String(options.dialogueProfile || 'business-user').trim().toLowerCase();
|
|
11349
11373
|
if (!['business-user', 'system-maintainer'].includes(dialogueProfile)) {
|
|
11350
11374
|
return '--dialogue-profile must be one of: business-user, system-maintainer';
|
|
@@ -11384,8 +11408,8 @@ function normalizeSceneMoquiBaselineOptions(options = {}) {
|
|
|
11384
11408
|
const minValidRate = Number(options.minValidRate);
|
|
11385
11409
|
return {
|
|
11386
11410
|
templateDir: options.templateDir ? String(options.templateDir).trim() : SCENE_PACKAGE_TEMPLATE_DEFAULT_DIR,
|
|
11387
|
-
out: options.out ? String(options.out).trim() : '.
|
|
11388
|
-
markdownOut: options.markdownOut ? String(options.markdownOut).trim() : '.
|
|
11411
|
+
out: options.out ? String(options.out).trim() : '.sce/reports/moqui-template-baseline.json',
|
|
11412
|
+
markdownOut: options.markdownOut ? String(options.markdownOut).trim() : '.sce/reports/moqui-template-baseline.md',
|
|
11389
11413
|
match: options.match ? String(options.match).trim() : SCENE_MOQUI_BASELINE_DEFAULT_MATCH,
|
|
11390
11414
|
includeAll: options.includeAll === true,
|
|
11391
11415
|
minScore: Number.isFinite(minScore) ? minScore : SCENE_MOQUI_BASELINE_DEFAULT_MIN_SCORE,
|
|
@@ -11635,6 +11659,15 @@ async function runSceneInteractiveFlowCommand(rawOptions = {}, dependencies = {}
|
|
|
11635
11659
|
args.push('--goal-file', options.goalFile);
|
|
11636
11660
|
}
|
|
11637
11661
|
args.push('--execution-mode', options.executionMode);
|
|
11662
|
+
if (options.businessMode) {
|
|
11663
|
+
args.push('--business-mode', options.businessMode);
|
|
11664
|
+
}
|
|
11665
|
+
if (options.businessModePolicy) {
|
|
11666
|
+
args.push('--business-mode-policy', options.businessModePolicy);
|
|
11667
|
+
}
|
|
11668
|
+
if (options.allowModeOverride) {
|
|
11669
|
+
args.push('--allow-mode-override');
|
|
11670
|
+
}
|
|
11638
11671
|
if (options.userId) {
|
|
11639
11672
|
args.push('--user-id', options.userId);
|
|
11640
11673
|
}
|
|
@@ -11881,6 +11914,15 @@ async function runSceneInteractiveLoopCommand(rawOptions = {}, dependencies = {}
|
|
|
11881
11914
|
args.push('--goal-file', options.goalFile);
|
|
11882
11915
|
}
|
|
11883
11916
|
args.push('--execution-mode', options.executionMode);
|
|
11917
|
+
if (options.businessMode) {
|
|
11918
|
+
args.push('--business-mode', options.businessMode);
|
|
11919
|
+
}
|
|
11920
|
+
if (options.businessModePolicy) {
|
|
11921
|
+
args.push('--business-mode-policy', options.businessModePolicy);
|
|
11922
|
+
}
|
|
11923
|
+
if (options.allowModeOverride) {
|
|
11924
|
+
args.push('--allow-mode-override');
|
|
11925
|
+
}
|
|
11884
11926
|
if (options.userId) {
|
|
11885
11927
|
args.push('--user-id', options.userId);
|
|
11886
11928
|
}
|
|
@@ -12843,7 +12885,7 @@ async function removeFromRegistry(name, version, registryRoot, fileSystem) {
|
|
|
12843
12885
|
function normalizeScenePackageRegistryPublishOptions(options = {}) {
|
|
12844
12886
|
return {
|
|
12845
12887
|
package: options.package ? String(options.package).trim() : undefined,
|
|
12846
|
-
registry: options.registry ? String(options.registry).trim() : '.
|
|
12888
|
+
registry: options.registry ? String(options.registry).trim() : '.sce/registry',
|
|
12847
12889
|
dryRun: options.dryRun === true,
|
|
12848
12890
|
force: options.force === true,
|
|
12849
12891
|
json: options.json === true
|
|
@@ -13027,7 +13069,7 @@ function normalizeSceneUnpublishOptions(options = {}) {
|
|
|
13027
13069
|
return {
|
|
13028
13070
|
name: options.name ? String(options.name).trim() : undefined,
|
|
13029
13071
|
version: options.version ? String(options.version).trim() : undefined,
|
|
13030
|
-
registry: options.registry ? String(options.registry).trim() : '.
|
|
13072
|
+
registry: options.registry ? String(options.registry).trim() : '.sce/registry',
|
|
13031
13073
|
json: options.json === true
|
|
13032
13074
|
};
|
|
13033
13075
|
}
|
|
@@ -13050,7 +13092,7 @@ function normalizeSceneInstallOptions(options = {}) {
|
|
|
13050
13092
|
name: options.name ? String(options.name).trim() : undefined,
|
|
13051
13093
|
version: options.version ? String(options.version).trim() : undefined,
|
|
13052
13094
|
out: options.out ? String(options.out).trim() : undefined,
|
|
13053
|
-
registry: options.registry ? String(options.registry).trim() : '.
|
|
13095
|
+
registry: options.registry ? String(options.registry).trim() : '.sce/registry',
|
|
13054
13096
|
force: options.force === true,
|
|
13055
13097
|
dryRun: options.dryRun === true,
|
|
13056
13098
|
json: options.json === true
|
|
@@ -13277,7 +13319,7 @@ function filterRegistryPackages(packageList, query) {
|
|
|
13277
13319
|
|
|
13278
13320
|
function normalizeSceneListOptions(options = {}) {
|
|
13279
13321
|
return {
|
|
13280
|
-
registry: options.registry ? String(options.registry).trim() : '.
|
|
13322
|
+
registry: options.registry ? String(options.registry).trim() : '.sce/registry',
|
|
13281
13323
|
json: options.json === true
|
|
13282
13324
|
};
|
|
13283
13325
|
}
|
|
@@ -13337,7 +13379,7 @@ function printSceneListSummary(options, payload, projectRoot = process.cwd()) {
|
|
|
13337
13379
|
function normalizeSceneSearchOptions(options = {}) {
|
|
13338
13380
|
return {
|
|
13339
13381
|
query: options.query ? String(options.query).trim() : '',
|
|
13340
|
-
registry: options.registry ? String(options.registry).trim() : '.
|
|
13382
|
+
registry: options.registry ? String(options.registry).trim() : '.sce/registry',
|
|
13341
13383
|
json: options.json === true
|
|
13342
13384
|
};
|
|
13343
13385
|
}
|
|
@@ -13652,7 +13694,7 @@ function normalizeSceneDiffOptions(options = {}) {
|
|
|
13652
13694
|
name: options.name ? String(options.name).trim() : undefined,
|
|
13653
13695
|
from: options.from ? String(options.from).trim() : undefined,
|
|
13654
13696
|
to: options.to ? String(options.to).trim() : undefined,
|
|
13655
|
-
registry: options.registry ? String(options.registry).trim() : '.
|
|
13697
|
+
registry: options.registry ? String(options.registry).trim() : '.sce/registry',
|
|
13656
13698
|
json: options.json === true,
|
|
13657
13699
|
stat: options.stat === true
|
|
13658
13700
|
};
|
|
@@ -13772,7 +13814,7 @@ async function runSceneDiffCommand(rawOptions = {}, dependencies = {}) {
|
|
|
13772
13814
|
function normalizeSceneInfoOptions(options = {}) {
|
|
13773
13815
|
return {
|
|
13774
13816
|
name: options.name ? String(options.name).trim() : undefined,
|
|
13775
|
-
registry: options.registry ? String(options.registry).trim() : '.
|
|
13817
|
+
registry: options.registry ? String(options.registry).trim() : '.sce/registry',
|
|
13776
13818
|
json: options.json === true,
|
|
13777
13819
|
versionsOnly: options.versionsOnly === true
|
|
13778
13820
|
};
|
|
@@ -13870,7 +13912,7 @@ function normalizeSceneDeprecateOptions(options = {}) {
|
|
|
13870
13912
|
name: options.name ? String(options.name).trim() : undefined,
|
|
13871
13913
|
version: options.version ? String(options.version).trim() : undefined,
|
|
13872
13914
|
message: options.message ? String(options.message).trim() : undefined,
|
|
13873
|
-
registry: options.registry ? String(options.registry).trim() : '.
|
|
13915
|
+
registry: options.registry ? String(options.registry).trim() : '.sce/registry',
|
|
13874
13916
|
json: options.json === true,
|
|
13875
13917
|
undo: options.undo === true
|
|
13876
13918
|
};
|
|
@@ -13981,7 +14023,7 @@ async function runSceneDeprecateCommand(rawOptions = {}, dependencies = {}) {
|
|
|
13981
14023
|
|
|
13982
14024
|
function normalizeSceneAuditOptions(options = {}) {
|
|
13983
14025
|
return {
|
|
13984
|
-
registry: options.registry ? String(options.registry).trim() : '.
|
|
14026
|
+
registry: options.registry ? String(options.registry).trim() : '.sce/registry',
|
|
13985
14027
|
json: options.json === true,
|
|
13986
14028
|
fix: options.fix === true
|
|
13987
14029
|
};
|
|
@@ -14251,7 +14293,7 @@ function normalizeSceneOwnerOptions(options = {}) {
|
|
|
14251
14293
|
from: options.from ? String(options.from).trim() : undefined,
|
|
14252
14294
|
to: options.to ? String(options.to).trim() : undefined,
|
|
14253
14295
|
remove: options.remove === true,
|
|
14254
|
-
registry: options.registry ? String(options.registry).trim() : '.
|
|
14296
|
+
registry: options.registry ? String(options.registry).trim() : '.sce/registry',
|
|
14255
14297
|
json: options.json === true
|
|
14256
14298
|
};
|
|
14257
14299
|
}
|
|
@@ -14420,7 +14462,7 @@ function normalizeSceneTagOptions(options = {}) {
|
|
|
14420
14462
|
name: options.name ? String(options.name).trim() : undefined,
|
|
14421
14463
|
tag: options.tag ? String(options.tag).trim() : undefined,
|
|
14422
14464
|
version: options.version ? String(options.version).trim() : undefined,
|
|
14423
|
-
registry: options.registry ? String(options.registry).trim() : '.
|
|
14465
|
+
registry: options.registry ? String(options.registry).trim() : '.sce/registry',
|
|
14424
14466
|
json: options.json === true
|
|
14425
14467
|
};
|
|
14426
14468
|
}
|
|
@@ -14560,7 +14602,7 @@ function printSceneTagSummary(options, payload) {
|
|
|
14560
14602
|
|
|
14561
14603
|
function normalizeSceneStatsOptions(options = {}) {
|
|
14562
14604
|
return {
|
|
14563
|
-
registry: options.registry ? String(options.registry).trim() : '.
|
|
14605
|
+
registry: options.registry ? String(options.registry).trim() : '.sce/registry',
|
|
14564
14606
|
json: options.json === true
|
|
14565
14607
|
};
|
|
14566
14608
|
}
|
|
@@ -14669,7 +14711,7 @@ function normalizeSceneLockOptions(options = {}) {
|
|
|
14669
14711
|
action: options.action ? String(options.action).trim() : undefined,
|
|
14670
14712
|
name: options.name ? String(options.name).trim() : undefined,
|
|
14671
14713
|
version: options.version ? String(options.version).trim() : undefined,
|
|
14672
|
-
registry: options.registry ? String(options.registry).trim() : '.
|
|
14714
|
+
registry: options.registry ? String(options.registry).trim() : '.sce/registry',
|
|
14673
14715
|
json: options.json === true
|
|
14674
14716
|
};
|
|
14675
14717
|
}
|
|
@@ -14809,7 +14851,7 @@ function printSceneLockSummary(options, payload) {
|
|
|
14809
14851
|
function normalizeSceneConnectOptions(options = {}) {
|
|
14810
14852
|
return {
|
|
14811
14853
|
config: options.config ? String(options.config).trim() : undefined,
|
|
14812
|
-
registry: options.registry ? String(options.registry).trim() : '.
|
|
14854
|
+
registry: options.registry ? String(options.registry).trim() : '.sce/registry',
|
|
14813
14855
|
json: options.json === true
|
|
14814
14856
|
};
|
|
14815
14857
|
}
|
|
@@ -15044,7 +15086,7 @@ function normalizeSceneExtractOptions(options = {}) {
|
|
|
15044
15086
|
config: options.config ? String(options.config).trim() : undefined,
|
|
15045
15087
|
type: options.type ? String(options.type).trim() : undefined,
|
|
15046
15088
|
pattern: options.pattern ? String(options.pattern).trim() : undefined,
|
|
15047
|
-
out: options.out ? String(options.out).trim() : '.
|
|
15089
|
+
out: options.out ? String(options.out).trim() : '.sce/templates/extracted',
|
|
15048
15090
|
dryRun: options.dryRun === true,
|
|
15049
15091
|
json: options.json === true
|
|
15050
15092
|
};
|
|
@@ -15322,7 +15364,7 @@ function printSceneScoreSummary(options, payload, projectRoot = process.cwd()) {
|
|
|
15322
15364
|
function normalizeSceneContributeOptions(options = {}) {
|
|
15323
15365
|
return {
|
|
15324
15366
|
package: options.package ? String(options.package).trim() : '.',
|
|
15325
|
-
registry: options.registry ? String(options.registry).trim() : '.
|
|
15367
|
+
registry: options.registry ? String(options.registry).trim() : '.sce/registry',
|
|
15326
15368
|
dryRun: options.dryRun === true,
|
|
15327
15369
|
strict: options.strict === true,
|
|
15328
15370
|
json: options.json === true,
|