scene-capability-engine 3.6.29 → 3.6.36
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 +103 -1
- package/README.md +119 -122
- package/README.zh.md +123 -121
- package/bin/scene-capability-engine.js +11 -0
- package/docs/README.md +21 -32
- package/docs/agent-runtime/magicball-contract-index.md +25 -0
- package/docs/auto-refactor-index.md +384 -0
- package/docs/command-reference.md +96 -2
- package/docs/magicball-adaptation-task-checklist-v1.md +385 -0
- package/docs/magicball-app-bundle-sqlite-and-command-draft.md +539 -0
- package/docs/magicball-capability-iteration-api.md +2 -0
- package/docs/magicball-capability-iteration-ui.md +3 -0
- package/docs/magicball-capability-library.md +2 -0
- package/docs/magicball-cli-invocation-examples.md +336 -0
- package/docs/magicball-frontend-state-and-command-mapping.md +244 -0
- package/docs/magicball-integration-doc-index.md +137 -0
- package/docs/magicball-integration-issue-tracker.md +218 -0
- package/docs/magicball-mode-home-and-ontology-empty-state-playbook.md +249 -0
- package/docs/magicball-sce-adaptation-guide.md +203 -0
- package/docs/magicball-task-feedback-timeline-guide.md +8 -0
- package/docs/magicball-three-mode-alignment-plan.md +551 -0
- package/docs/magicball-ui-surface-checklist.md +126 -0
- package/docs/magicball-write-auth-adaptation-guide.md +328 -0
- package/docs/refactor-completion-roadmap.md +116 -0
- package/docs/zh/README.md +27 -30
- package/docs/zh/refactor-completion-roadmap.md +116 -0
- package/lib/app/registry-config.js +73 -0
- package/lib/app/registry-sync-service.js +228 -0
- package/lib/auto/archive-schema-service.js +276 -0
- package/lib/auto/archive-summary.js +60 -0
- package/lib/auto/batch-goal-input-service.js +543 -0
- package/lib/auto/batch-output.js +201 -0
- package/lib/auto/batch-summary-storage-service.js +110 -0
- package/lib/auto/close-loop-batch-service.js +116 -0
- package/lib/auto/close-loop-controller-service.js +287 -0
- package/lib/auto/close-loop-program-service.js +283 -0
- package/lib/auto/close-loop-recovery-service.js +191 -0
- package/lib/auto/close-loop-session-storage-service.js +50 -0
- package/lib/auto/controller-lock-service.js +55 -0
- package/lib/auto/controller-output.js +32 -0
- package/lib/auto/controller-queue-service.js +127 -0
- package/lib/auto/controller-session-storage-service.js +105 -0
- package/lib/auto/governance-advisory-service.js +208 -0
- package/lib/auto/governance-close-loop-service.js +411 -0
- package/lib/auto/governance-maintenance-presenter.js +162 -0
- package/lib/auto/governance-maintenance-service.js +112 -0
- package/lib/auto/governance-session-presenter.js +70 -0
- package/lib/auto/governance-session-storage-service.js +198 -0
- package/lib/auto/governance-signals.js +139 -0
- package/lib/auto/governance-stats-presenter.js +337 -0
- package/lib/auto/governance-stats-service.js +115 -0
- package/lib/auto/governance-summary.js +703 -0
- package/lib/auto/handoff-capability-matrix-service.js +281 -0
- package/lib/auto/handoff-evidence-review-service.js +251 -0
- package/lib/auto/handoff-release-evidence-service.js +190 -0
- package/lib/auto/handoff-release-gate-history-loaders-service.js +502 -0
- package/lib/auto/handoff-release-gate-history-service.js +257 -0
- package/lib/auto/handoff-reporting-service.js +1407 -0
- package/lib/auto/handoff-run-service.js +486 -0
- package/lib/auto/handoff-snapshots-service.js +645 -0
- package/lib/auto/observability-service.js +132 -0
- package/lib/auto/output-writer.js +34 -0
- package/lib/auto/program-auto-remediation-service.js +130 -0
- package/lib/auto/program-diagnostics.js +138 -0
- package/lib/auto/program-governance-helpers.js +306 -0
- package/lib/auto/program-governance-loop-service.js +413 -0
- package/lib/auto/program-output.js +106 -0
- package/lib/auto/program-summary.js +183 -0
- package/lib/auto/recovery-memory-service.js +684 -0
- package/lib/auto/recovery-selection-service.js +52 -0
- package/lib/auto/retention-policy.js +98 -0
- package/lib/auto/session-metrics.js +53 -0
- package/lib/auto/session-persistence-service.js +106 -0
- package/lib/auto/session-presenter.js +105 -0
- package/lib/auto/session-prune-service.js +190 -0
- package/lib/auto/session-query-service.js +249 -0
- package/lib/auto/spec-protection.js +141 -0
- package/lib/capability/catalog-service.js +248 -0
- package/lib/capability/inventory-service.js +100 -0
- package/lib/commands/app.js +911 -0
- package/lib/commands/assurance.js +212 -0
- package/lib/commands/auto.js +1091 -11063
- package/lib/commands/capability.js +81 -466
- package/lib/commands/mode.js +321 -0
- package/lib/commands/ontology.js +415 -0
- package/lib/commands/pm.js +422 -0
- package/lib/commands/scene.js +1 -1
- package/lib/commands/studio.js +147 -582
- package/lib/commands/timeline.js +6 -82
- package/lib/magicball/capability-inventory-view-model.js +213 -0
- package/lib/magicball/status-language.js +29 -0
- package/lib/magicball/task-feedback-model.js +113 -0
- package/lib/magicball/timeline-view-model.js +95 -0
- package/lib/ontology/seed-profiles.js +160 -0
- package/lib/scene/doctor-feedback.js +3541 -0
- package/lib/state/sce-state-store.js +3369 -1200
- package/lib/studio/task-envelope.js +269 -0
- package/lib/studio/task-intent.js +149 -0
- package/package.json +1 -1
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
function normalizeText(value) {
|
|
2
|
+
if (typeof value !== 'string') {
|
|
3
|
+
return '';
|
|
4
|
+
}
|
|
5
|
+
return value.trim();
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
function normalizeBoolean(value, fallback = false) {
|
|
9
|
+
if (typeof value === 'boolean') {
|
|
10
|
+
return value;
|
|
11
|
+
}
|
|
12
|
+
const normalized = normalizeText(String(value || '')).toLowerCase();
|
|
13
|
+
if (!normalized) {
|
|
14
|
+
return fallback;
|
|
15
|
+
}
|
|
16
|
+
if (['1', 'true', 'yes', 'y', 'on'].includes(normalized)) {
|
|
17
|
+
return true;
|
|
18
|
+
}
|
|
19
|
+
if (['0', 'false', 'no', 'n', 'off'].includes(normalized)) {
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
22
|
+
return fallback;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
function toPositiveInteger(value, fallback) {
|
|
26
|
+
const parsed = Number.parseInt(String(value), 10);
|
|
27
|
+
if (!Number.isFinite(parsed) || parsed <= 0) {
|
|
28
|
+
return fallback;
|
|
29
|
+
}
|
|
30
|
+
return parsed;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
async function runCapabilityInventoryService(options = {}, dependencies = {}) {
|
|
34
|
+
const sceneIds = Array.isArray(dependencies.sceneIds) ? dependencies.sceneIds : [];
|
|
35
|
+
const limit = toPositiveInteger(options.limit, sceneIds.length || 20);
|
|
36
|
+
const scenes = [];
|
|
37
|
+
|
|
38
|
+
for (const sceneId of sceneIds.slice(0, limit)) {
|
|
39
|
+
const candidate = await dependencies.buildCandidatePayload(sceneId, {
|
|
40
|
+
specs: options.specs,
|
|
41
|
+
sample_limit: options.sample_limit
|
|
42
|
+
}, dependencies.runtime || {});
|
|
43
|
+
const score = dependencies.buildScoreFromCandidate(candidate);
|
|
44
|
+
const releaseReadiness = dependencies.buildCapabilityReleaseReadiness({
|
|
45
|
+
scene_id: sceneId,
|
|
46
|
+
ontology_scope: candidate.ontology_scope,
|
|
47
|
+
ontology_core: candidate.ontology_core
|
|
48
|
+
});
|
|
49
|
+
const sceneEntry = {
|
|
50
|
+
scene_id: sceneId,
|
|
51
|
+
summary: candidate.summary,
|
|
52
|
+
source: candidate.source,
|
|
53
|
+
ontology_scope: candidate.ontology_scope,
|
|
54
|
+
ontology_core: candidate.ontology_core,
|
|
55
|
+
ontology_core_ui: dependencies.buildOntologyCoreUiState(candidate.ontology_core),
|
|
56
|
+
release_readiness: releaseReadiness,
|
|
57
|
+
release_readiness_ui: dependencies.buildCapabilityReleaseReadinessUi(releaseReadiness),
|
|
58
|
+
score_preview: score
|
|
59
|
+
};
|
|
60
|
+
scenes.push({
|
|
61
|
+
...sceneEntry,
|
|
62
|
+
...dependencies.buildCapabilityInventorySceneAdvice(sceneEntry)
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
const filteredScenes = dependencies.sortCapabilityInventoryEntries(
|
|
67
|
+
dependencies.filterCapabilityInventoryEntries(scenes, options)
|
|
68
|
+
);
|
|
69
|
+
const summaryStats = dependencies.buildCapabilityInventorySummaryStats(filteredScenes);
|
|
70
|
+
const releaseReadyFilterRaw = normalizeText(options.releaseReady || options.release_ready).toLowerCase();
|
|
71
|
+
|
|
72
|
+
return {
|
|
73
|
+
mode: 'capability-inventory',
|
|
74
|
+
generated_at: new Date().toISOString(),
|
|
75
|
+
query: {
|
|
76
|
+
protocol_version: '1.0',
|
|
77
|
+
scene_id: normalizeText(options.scene || options.sceneId || options.scene_id) || null,
|
|
78
|
+
limit,
|
|
79
|
+
sample_limit: toPositiveInteger(options.sample_limit, 5),
|
|
80
|
+
filters: {
|
|
81
|
+
release_ready: releaseReadyFilterRaw ? ['1', 'true', 'yes', 'ready'].includes(releaseReadyFilterRaw) : null,
|
|
82
|
+
missing_triad: normalizeText(options.missingTriad || options.missing_triad) || null
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
scene_total: scenes.length,
|
|
86
|
+
scene_count: filteredScenes.length,
|
|
87
|
+
summary_stats: summaryStats,
|
|
88
|
+
summary_recommendations: dependencies.buildCapabilityInventorySummaryRecommendations(filteredScenes),
|
|
89
|
+
quick_filters: dependencies.buildCapabilityInventoryQuickFilters(summaryStats),
|
|
90
|
+
sort: {
|
|
91
|
+
strategy: 'publish_ready -> missing_triad_priority -> value_score_desc -> scene_id',
|
|
92
|
+
triad_priority: ['decision_strategy', 'business_rules', 'entity_relation']
|
|
93
|
+
},
|
|
94
|
+
scenes: filteredScenes
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
module.exports = {
|
|
99
|
+
runCapabilityInventoryService
|
|
100
|
+
};
|