@viberaven/cli 1.1.11 → 1.1.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +208 -42
- package/dist/cli.js.map +2 -2
- package/package.json +2 -2
package/dist/cli.js
CHANGED
|
@@ -12208,7 +12208,7 @@ var VERSION;
|
|
|
12208
12208
|
var init_version = __esm({
|
|
12209
12209
|
"src/version.ts"() {
|
|
12210
12210
|
"use strict";
|
|
12211
|
-
VERSION = "1.1.
|
|
12211
|
+
VERSION = "1.1.12";
|
|
12212
12212
|
}
|
|
12213
12213
|
});
|
|
12214
12214
|
|
|
@@ -16808,6 +16808,104 @@ function primaryProviders() {
|
|
|
16808
16808
|
);
|
|
16809
16809
|
}
|
|
16810
16810
|
|
|
16811
|
+
function stepSourceLabel(source) {
|
|
16812
|
+
switch (source) {
|
|
16813
|
+
case 'manual':
|
|
16814
|
+
return 'provider dashboard';
|
|
16815
|
+
case 'verify':
|
|
16816
|
+
return 'verification';
|
|
16817
|
+
case 'live':
|
|
16818
|
+
return 'live provider proof';
|
|
16819
|
+
case 'repo':
|
|
16820
|
+
default:
|
|
16821
|
+
return 'repo evidence';
|
|
16822
|
+
}
|
|
16823
|
+
}
|
|
16824
|
+
|
|
16825
|
+
function stepStateText(item) {
|
|
16826
|
+
switch (item.state) {
|
|
16827
|
+
case 'ready':
|
|
16828
|
+
return 'Repo evidence is already found for this step. Use verify when you want live proof.';
|
|
16829
|
+
case 'blocked':
|
|
16830
|
+
return 'This step blocks launch until the evidence or provider proof is complete.';
|
|
16831
|
+
case 'needs_connect':
|
|
16832
|
+
return 'Connect or confirm the live provider proof for this step.';
|
|
16833
|
+
case 'requires_user_action':
|
|
16834
|
+
return 'This step needs a manual provider dashboard action before verify can clear it.';
|
|
16835
|
+
case 'needs_fix':
|
|
16836
|
+
return 'Fix or confirm this step before moving to the next launch check.';
|
|
16837
|
+
case 'not_checked':
|
|
16838
|
+
default:
|
|
16839
|
+
return 'Review this step, complete the missing evidence if needed, then run verify.';
|
|
16840
|
+
}
|
|
16841
|
+
}
|
|
16842
|
+
|
|
16843
|
+
function selectedStepAction(provider, selectedItem) {
|
|
16844
|
+
const baseAction = provider.cockpit.action;
|
|
16845
|
+
const isPrimaryStep = selectedItem.id === provider.selectedItemId;
|
|
16846
|
+
const source = stepSourceLabel(selectedItem.source);
|
|
16847
|
+
if (isPrimaryStep) {
|
|
16848
|
+
return {
|
|
16849
|
+
...baseAction,
|
|
16850
|
+
title: baseAction.title,
|
|
16851
|
+
whyThisMatters: baseAction.whyThisMatters,
|
|
16852
|
+
lanes: {
|
|
16853
|
+
you: {
|
|
16854
|
+
title: baseAction.lanes.you.title,
|
|
16855
|
+
body: baseAction.lanes.you.body
|
|
16856
|
+
},
|
|
16857
|
+
agent: {
|
|
16858
|
+
title: baseAction.lanes.agent.title,
|
|
16859
|
+
body: baseAction.lanes.agent.body
|
|
16860
|
+
},
|
|
16861
|
+
verify: baseAction.lanes.verify
|
|
16862
|
+
}
|
|
16863
|
+
};
|
|
16864
|
+
}
|
|
16865
|
+
return {
|
|
16866
|
+
...baseAction,
|
|
16867
|
+
id: selectedItem.id + '-action',
|
|
16868
|
+
title: selectedItem.title,
|
|
16869
|
+
whyThisMatters: provider.name + ' launch path step: ' + stepStateText(selectedItem),
|
|
16870
|
+
whereToClick: selectedItem.source === 'manual' ? baseAction.whereToClick : 'Use repo evidence for the selected "' + selectedItem.title + '" step, then run verify.',
|
|
16871
|
+
lanes: {
|
|
16872
|
+
you: {
|
|
16873
|
+
title: selectedItem.source === 'manual' ? 'Complete provider dashboard step' : 'Confirm ' + source,
|
|
16874
|
+
body: selectedItem.shortReason + ' Focus only on "' + selectedItem.title + '" for ' + provider.name + '.'
|
|
16875
|
+
},
|
|
16876
|
+
agent: {
|
|
16877
|
+
title: 'Focus the agent on ' + selectedItem.title,
|
|
16878
|
+
body: 'Fix or inspect only the "' + selectedItem.title + '" step for ' + provider.name + '. Do not claim launch-ready until verification clears.'
|
|
16879
|
+
},
|
|
16880
|
+
verify: baseAction.lanes.verify
|
|
16881
|
+
}
|
|
16882
|
+
};
|
|
16883
|
+
}
|
|
16884
|
+
|
|
16885
|
+
function selectedStepPrompt(provider, selectedItem, action) {
|
|
16886
|
+
return [
|
|
16887
|
+
'You are fixing one VibeRaven production-readiness step.',
|
|
16888
|
+
'',
|
|
16889
|
+
'Project: ' + currentState.project.name,
|
|
16890
|
+
'Provider: ' + provider.name,
|
|
16891
|
+
'Launch path item: ' + selectedItem.title,
|
|
16892
|
+
'Evidence type: ' + stepSourceLabel(selectedItem.source),
|
|
16893
|
+
'Current state: ' + launchStateLabel(selectedItem.state),
|
|
16894
|
+
'Current issue: ' + action.whyThisMatters,
|
|
16895
|
+
'',
|
|
16896
|
+
'Read:',
|
|
16897
|
+
'- .viberaven/agent-tasklist.md',
|
|
16898
|
+
'- .viberaven/context-map.json',
|
|
16899
|
+
'- .viberaven/gate-result.json',
|
|
16900
|
+
'',
|
|
16901
|
+
'Fix only this selected launch-path step.',
|
|
16902
|
+
'Do not claim production-ready until VibeRaven verify is clear.',
|
|
16903
|
+
'Provider dashboard setup remains manual unless VibeRaven has live provider evidence.',
|
|
16904
|
+
'After the fix, run:',
|
|
16905
|
+
action.lanes.verify.commandPreview
|
|
16906
|
+
].join('\\n');
|
|
16907
|
+
}
|
|
16908
|
+
|
|
16811
16909
|
function missionMarkup() {
|
|
16812
16910
|
const mission = currentState.missionControl;
|
|
16813
16911
|
const counts = evidenceCounts();
|
|
@@ -16832,19 +16930,23 @@ function renderProviders() {
|
|
|
16832
16930
|
|
|
16833
16931
|
function renderCenter() {
|
|
16834
16932
|
const provider = selectedProvider();
|
|
16835
|
-
const selectedItem =
|
|
16933
|
+
const selectedItem =
|
|
16934
|
+
provider.launchPath.find((item) => item.id === provider.activeItemId) ||
|
|
16935
|
+
provider.launchPath.find((item) => item.id === provider.selectedItemId) ||
|
|
16936
|
+
provider.launchPath[0];
|
|
16836
16937
|
const cockpit = provider.cockpit;
|
|
16938
|
+
const action = selectedStepAction(provider, selectedItem);
|
|
16837
16939
|
const proof = cockpit.proof;
|
|
16838
16940
|
center.innerHTML =
|
|
16839
16941
|
missionMarkup() +
|
|
16840
|
-
'<div class="vr-panel-head"><div><p class="vr-eyebrow">' + escapeHtml(provider.area) + '</p>' +
|
|
16841
|
-
'<h1>
|
|
16842
|
-
'<p class="vr-muted">We will guide you through
|
|
16942
|
+
'<div class="vr-panel-head" data-provider="' + escapeHtml(provider.id) + '"><span class="vr-panel-provider-icon" aria-hidden="true">' + provider.iconHtml + '</span><div><p class="vr-eyebrow">' + escapeHtml(provider.area) + '</p>' +
|
|
16943
|
+
'<h1>' + escapeHtml(provider.name) + ' launch path</h1>' +
|
|
16944
|
+
'<p class="vr-muted">We will guide you through the ' + escapeHtml(provider.name) + ' steps that matter for production readiness.</p></div>' +
|
|
16843
16945
|
'<div class="vr-panel-actions"><button id="vr-preview-report" class="vr-button vr-button-preview" type="button">Preview report</button>' +
|
|
16844
|
-
'<button class="vr-button vr-button-primary" type="button" data-verify-intent="' + escapeHtml(
|
|
16946
|
+
'<button class="vr-button vr-button-primary" type="button" data-verify-intent="' + escapeHtml(action.lanes.verify.intent) + '" data-action-id="' + escapeHtml(action.lanes.verify.actionId || '') + '">Run verify</button></div></div>' +
|
|
16845
16947
|
'<div class="vr-path">' +
|
|
16846
16948
|
provider.launchPath.map((item, index) =>
|
|
16847
|
-
'<button class="vr-path-row' + (item.id === selectedItem.id ? ' is-focused' : '') + '" type="button" data-path-item="' + escapeHtml(item.id) + '" data-step="' + String(index + 1) + '">' +
|
|
16949
|
+
'<button class="vr-path-row' + (item.id === selectedItem.id ? ' is-focused' : '') + '" type="button" data-path-item="' + escapeHtml(item.id) + '" data-step="' + String(index + 1) + '" data-state="' + escapeHtml(item.state) + '">' +
|
|
16848
16950
|
'<span class="vr-step"><span>' + String(index + 1) + '</span></span>' +
|
|
16849
16951
|
'<span class="vr-path-icon" data-source="' + escapeHtml(item.source) + '" data-state="' + escapeHtml(item.state) + '" aria-hidden="true"></span>' +
|
|
16850
16952
|
'<span><strong>' + escapeHtml(item.title) + '</strong><br><span class="vr-muted">' + escapeHtml(item.shortReason) + '</span></span>' +
|
|
@@ -16852,7 +16954,7 @@ function renderCenter() {
|
|
|
16852
16954
|
'</button>'
|
|
16853
16955
|
).join('') +
|
|
16854
16956
|
'<section class="vr-next"><div class="vr-next-head"><div><span><i class="vr-next-glyph" aria-hidden="true"></i>Next action</span><p class="vr-muted">Complete the following to keep the launch path moving.</p></div></div>' +
|
|
16855
|
-
'<article class="vr-next-action"><span class="vr-next-badge">
|
|
16957
|
+
'<article class="vr-next-action"><span class="vr-next-badge">' + escapeHtml(stepSourceLabel(selectedItem.source)) + '</span><div><strong>' + escapeHtml(action.title) + '</strong><p>' + escapeHtml(action.whyThisMatters) + '</p></div>' +
|
|
16856
16958
|
'<button class="vr-button vr-button-take" type="button" data-open-guide="provider">Take action</button></article>' +
|
|
16857
16959
|
'<div class="vr-action-flow" aria-label="Action impact">' +
|
|
16858
16960
|
'<span data-step="Impact"><b>Impact</b>High - blocks next step</span>' +
|
|
@@ -16868,7 +16970,7 @@ function renderCenter() {
|
|
|
16868
16970
|
'<p><strong>' + escapeHtml(item.risk) + '</strong><br>' + escapeHtml(item.whyItMatters) + '</p>'
|
|
16869
16971
|
).join('') + '</details></section>' +
|
|
16870
16972
|
'</div>';
|
|
16871
|
-
promptEl.textContent = provider
|
|
16973
|
+
promptEl.textContent = selectedStepPrompt(provider, selectedItem, action);
|
|
16872
16974
|
}
|
|
16873
16975
|
|
|
16874
16976
|
function render() {
|
|
@@ -16917,7 +17019,7 @@ center.addEventListener('click', (event) => {
|
|
|
16917
17019
|
const pathRow = event.target.closest('[data-path-item]');
|
|
16918
17020
|
if (!pathRow) return;
|
|
16919
17021
|
const provider = selectedProvider();
|
|
16920
|
-
provider.
|
|
17022
|
+
provider.activeItemId = pathRow.getAttribute('data-path-item');
|
|
16921
17023
|
render();
|
|
16922
17024
|
});
|
|
16923
17025
|
|
|
@@ -16940,11 +17042,19 @@ center.addEventListener('click', (event) => {
|
|
|
16940
17042
|
const button = event.target.closest('[data-open-guide="provider"]');
|
|
16941
17043
|
if (!button) return;
|
|
16942
17044
|
const provider = selectedProvider();
|
|
17045
|
+
const selectedItem =
|
|
17046
|
+
provider.launchPath.find((item) => item.id === provider.activeItemId) ||
|
|
17047
|
+
provider.launchPath.find((item) => item.id === provider.selectedItemId) ||
|
|
17048
|
+
provider.launchPath[0];
|
|
17049
|
+
const action = selectedStepAction(provider, selectedItem);
|
|
16943
17050
|
openGuidePanel({
|
|
16944
17051
|
kicker: provider.name + ' action',
|
|
16945
|
-
title:
|
|
17052
|
+
title: action.title,
|
|
16946
17053
|
summary: 'Use this as the focused path for the selected provider. Keep the repo fix, provider step, and verification separate.',
|
|
16947
|
-
body: providerGuideMarkup(provider,
|
|
17054
|
+
body: providerGuideMarkup(provider, {
|
|
17055
|
+
...provider.cockpit,
|
|
17056
|
+
action
|
|
17057
|
+
})
|
|
16948
17058
|
});
|
|
16949
17059
|
});
|
|
16950
17060
|
|
|
@@ -17664,15 +17774,26 @@ button { cursor: pointer; }
|
|
|
17664
17774
|
padding: 0 0 26px 78px;
|
|
17665
17775
|
}
|
|
17666
17776
|
.vr-panel-head::before {
|
|
17667
|
-
content:
|
|
17777
|
+
content: none;
|
|
17778
|
+
}
|
|
17779
|
+
.vr-panel-provider-icon {
|
|
17668
17780
|
position: absolute;
|
|
17669
17781
|
left: 0;
|
|
17670
17782
|
top: -2px;
|
|
17671
17783
|
width: 58px;
|
|
17672
17784
|
height: 58px;
|
|
17673
|
-
|
|
17674
|
-
|
|
17675
|
-
|
|
17785
|
+
display: grid;
|
|
17786
|
+
place-items: center;
|
|
17787
|
+
border: 1px solid var(--vr-border);
|
|
17788
|
+
border-radius: 15px;
|
|
17789
|
+
background: #ffffff;
|
|
17790
|
+
box-shadow: 0 18px 34px rgba(16, 24, 40, 0.08);
|
|
17791
|
+
}
|
|
17792
|
+
.vr-panel-provider-icon svg,
|
|
17793
|
+
.vr-panel-provider-icon img {
|
|
17794
|
+
width: 34px;
|
|
17795
|
+
height: 34px;
|
|
17796
|
+
object-fit: contain;
|
|
17676
17797
|
}
|
|
17677
17798
|
.vr-panel-head .vr-eyebrow { display: none; }
|
|
17678
17799
|
.vr-panel-head h1 {
|
|
@@ -18897,7 +19018,7 @@ button { cursor: pointer; }
|
|
|
18897
19018
|
padding: 0 0 30px 78px;
|
|
18898
19019
|
}
|
|
18899
19020
|
.vr-panel-head::before {
|
|
18900
|
-
|
|
19021
|
+
content: none;
|
|
18901
19022
|
}
|
|
18902
19023
|
.vr-panel-head h1 {
|
|
18903
19024
|
font-size: 34px;
|
|
@@ -18946,7 +19067,7 @@ button { cursor: pointer; }
|
|
|
18946
19067
|
}
|
|
18947
19068
|
.vr-path::before {
|
|
18948
19069
|
left: 30px;
|
|
18949
|
-
background: linear-gradient(#
|
|
19070
|
+
background: linear-gradient(#d9dee7, #d9dee7);
|
|
18950
19071
|
}
|
|
18951
19072
|
.vr-path-row {
|
|
18952
19073
|
min-height: 78px;
|
|
@@ -18971,25 +19092,67 @@ button { cursor: pointer; }
|
|
|
18971
19092
|
height: 42px;
|
|
18972
19093
|
}
|
|
18973
19094
|
.vr-path-row.is-focused {
|
|
18974
|
-
border-color:
|
|
18975
|
-
box-shadow: 0 14px 32px rgba(
|
|
19095
|
+
border-color: #b8c2cf;
|
|
19096
|
+
box-shadow: 0 14px 32px rgba(16, 24, 40, 0.06);
|
|
18976
19097
|
}
|
|
18977
19098
|
.vr-path-row.is-focused::before {
|
|
18978
|
-
border-color: #
|
|
18979
|
-
background: #
|
|
18980
|
-
color: #
|
|
19099
|
+
border-color: #667085;
|
|
19100
|
+
background: #f8fafc;
|
|
19101
|
+
color: #344054;
|
|
18981
19102
|
}
|
|
18982
19103
|
.vr-path-icon {
|
|
18983
19104
|
width: 42px;
|
|
18984
19105
|
height: 42px;
|
|
18985
19106
|
border-radius: 10px;
|
|
18986
|
-
background: #
|
|
18987
|
-
color: #
|
|
19107
|
+
background: #f3f5f8;
|
|
19108
|
+
color: #667085;
|
|
18988
19109
|
}
|
|
18989
19110
|
.vr-path-row.is-focused .vr-path-icon {
|
|
19111
|
+
background: #eef2f6;
|
|
19112
|
+
color: #344054;
|
|
19113
|
+
}
|
|
19114
|
+
.vr-path-row[data-state="ready"].is-focused {
|
|
19115
|
+
border-color: rgba(24, 168, 101, 0.48);
|
|
19116
|
+
box-shadow: 0 14px 32px rgba(24, 168, 101, 0.075);
|
|
19117
|
+
}
|
|
19118
|
+
.vr-path-row[data-state="ready"].is-focused::before {
|
|
19119
|
+
border-color: #18a865;
|
|
19120
|
+
background: #f1fff8;
|
|
19121
|
+
color: #0f9d58;
|
|
19122
|
+
}
|
|
19123
|
+
.vr-path-row[data-state="ready"] .vr-path-icon {
|
|
18990
19124
|
background: #eafbf3;
|
|
18991
19125
|
color: #18a865;
|
|
18992
19126
|
}
|
|
19127
|
+
.vr-path-row[data-state="needs_fix"].is-focused,
|
|
19128
|
+
.vr-path-row[data-state="requires_user_action"].is-focused {
|
|
19129
|
+
border-color: rgba(255, 122, 0, 0.42);
|
|
19130
|
+
box-shadow: 0 14px 32px rgba(255, 122, 0, 0.07);
|
|
19131
|
+
}
|
|
19132
|
+
.vr-path-row[data-state="needs_fix"].is-focused::before,
|
|
19133
|
+
.vr-path-row[data-state="requires_user_action"].is-focused::before {
|
|
19134
|
+
border-color: #ff7a00;
|
|
19135
|
+
background: #fff7ed;
|
|
19136
|
+
color: #bc5700;
|
|
19137
|
+
}
|
|
19138
|
+
.vr-path-row[data-state="needs_fix"] .vr-path-icon,
|
|
19139
|
+
.vr-path-row[data-state="requires_user_action"] .vr-path-icon {
|
|
19140
|
+
background: #fff7ed;
|
|
19141
|
+
color: #bc5700;
|
|
19142
|
+
}
|
|
19143
|
+
.vr-path-row[data-state="blocked"].is-focused {
|
|
19144
|
+
border-color: rgba(217, 45, 32, 0.42);
|
|
19145
|
+
box-shadow: 0 14px 32px rgba(217, 45, 32, 0.07);
|
|
19146
|
+
}
|
|
19147
|
+
.vr-path-row[data-state="blocked"].is-focused::before {
|
|
19148
|
+
border-color: #d92d20;
|
|
19149
|
+
background: #fff1f0;
|
|
19150
|
+
color: #b42318;
|
|
19151
|
+
}
|
|
19152
|
+
.vr-path-row[data-state="blocked"] .vr-path-icon {
|
|
19153
|
+
background: #fff1f0;
|
|
19154
|
+
color: #d92d20;
|
|
19155
|
+
}
|
|
18993
19156
|
.vr-state {
|
|
18994
19157
|
justify-self: end;
|
|
18995
19158
|
background: transparent;
|
|
@@ -19021,30 +19184,32 @@ button { cursor: pointer; }
|
|
|
19021
19184
|
background: rgba(255, 255, 255, 0.94);
|
|
19022
19185
|
}
|
|
19023
19186
|
.vr-next-head {
|
|
19024
|
-
padding: 24px 28px;
|
|
19187
|
+
padding: 24px 28px 20px;
|
|
19025
19188
|
}
|
|
19026
19189
|
.vr-next-head > div {
|
|
19027
19190
|
display: flex;
|
|
19028
19191
|
align-items: center;
|
|
19029
|
-
gap:
|
|
19192
|
+
gap: 16px;
|
|
19030
19193
|
}
|
|
19031
19194
|
.vr-next-head > div > span {
|
|
19032
19195
|
margin: 0;
|
|
19033
|
-
background:
|
|
19034
|
-
color: #
|
|
19035
|
-
|
|
19196
|
+
background: transparent;
|
|
19197
|
+
color: #111417;
|
|
19198
|
+
padding: 0;
|
|
19199
|
+
font-size: 18px;
|
|
19200
|
+
line-height: 1.2;
|
|
19036
19201
|
}
|
|
19037
19202
|
.vr-next-glyph {
|
|
19038
|
-
width:
|
|
19039
|
-
height:
|
|
19040
|
-
margin-right:
|
|
19203
|
+
width: 30px;
|
|
19204
|
+
height: 30px;
|
|
19205
|
+
margin-right: 9px;
|
|
19041
19206
|
display: inline-grid;
|
|
19042
19207
|
place-items: center;
|
|
19043
|
-
vertical-align: -
|
|
19044
|
-
border-radius:
|
|
19208
|
+
vertical-align: -9px;
|
|
19209
|
+
border-radius: 10px;
|
|
19045
19210
|
position: relative;
|
|
19046
|
-
background: #
|
|
19047
|
-
box-shadow: inset 0 0 0 1px rgba(255, 122, 0, 0.
|
|
19211
|
+
background: #fff7ed;
|
|
19212
|
+
box-shadow: inset 0 0 0 1px rgba(255, 122, 0, 0.18);
|
|
19048
19213
|
}
|
|
19049
19214
|
.vr-next-glyph::before {
|
|
19050
19215
|
content: "";
|
|
@@ -19072,15 +19237,16 @@ button { cursor: pointer; }
|
|
|
19072
19237
|
}
|
|
19073
19238
|
.vr-next-action {
|
|
19074
19239
|
grid-template-columns: auto minmax(0, 1fr) auto;
|
|
19075
|
-
padding:
|
|
19240
|
+
padding: 22px 28px 24px;
|
|
19076
19241
|
}
|
|
19077
19242
|
.vr-next-badge {
|
|
19078
19243
|
width: auto;
|
|
19079
|
-
height:
|
|
19080
|
-
padding: 0
|
|
19081
|
-
background: #
|
|
19244
|
+
height: 32px;
|
|
19245
|
+
padding: 0 14px;
|
|
19246
|
+
background: #fff7ed;
|
|
19082
19247
|
color: #bc5700;
|
|
19083
|
-
box-shadow: inset 0 0 0 1px rgba(255, 122, 0, 0.
|
|
19248
|
+
box-shadow: inset 0 0 0 1px rgba(255, 122, 0, 0.16);
|
|
19249
|
+
font-size: 11px;
|
|
19084
19250
|
}
|
|
19085
19251
|
.vr-button-take {
|
|
19086
19252
|
min-width: 126px;
|