great-cto 3.78.0 → 3.78.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "great-cto",
|
|
3
3
|
"description": "You already have the agent. This is everything around it. great_cto runs Claude Code as a pipeline of 73 specialist agents \u2014 an independent model checks each stage before the next builds on it, spending caps refuse rather than warn, and three decisions stay yours: what gets built, how, and whether it ships.",
|
|
4
|
-
"version": "3.78.
|
|
4
|
+
"version": "3.78.1",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Alexander Velikiy",
|
|
7
7
|
"url": "https://hashnode.com/@Greatcto"
|
|
@@ -1829,6 +1829,9 @@ h1, h2, h3, h4 { font-weight: 600; font-family: var(--sans); }
|
|
|
1829
1829
|
.cost-agent { font-family: var(--mono); font-size: var(--fs-small); min-width: 0; overflow-wrap: anywhere; }
|
|
1830
1830
|
.cost-over { color: var(--status-progress); font-weight: 600; }
|
|
1831
1831
|
.cost-line { display: none; }
|
|
1832
|
+
/* Desktop and phone mockups word some lines differently; both sit in the markup. */
|
|
1833
|
+
.cost-short { display: none; }
|
|
1834
|
+
@media (max-width: 767px) { .cost-long { display: none; } .cost-short { display: inline; } }
|
|
1832
1835
|
.cost-idle { border-top: 1px solid var(--border); padding: 10px 16px; font-size: var(--fs-body); color: var(--text2); }
|
|
1833
1836
|
.cost-idle summary { cursor: pointer; min-height: 24px; }
|
|
1834
1837
|
.cost-idle .budgets-uncapped { margin-top: 10px; }
|
|
@@ -4113,7 +4116,7 @@ h1, h2, h3, h4 { font-weight: 600; font-family: var(--sans); }
|
|
|
4113
4116
|
<div class="metrics-page cost-page">
|
|
4114
4117
|
<div class="ledger-title-row">
|
|
4115
4118
|
<div class="cost-heading">
|
|
4116
|
-
<h1 class="page-title" style="margin:0" id="cost-title">Cost · last 30 days</h1>
|
|
4119
|
+
<h1 class="page-title" style="margin:0" id="cost-title">Cost · <span class="cost-long">last </span>30 days</h1>
|
|
4117
4120
|
<div class="cost-sub" id="cost-sub"></div>
|
|
4118
4121
|
</div>
|
|
4119
4122
|
<div class="period-chips" id="period-chips" role="group" aria-label="Period">
|
|
@@ -5740,7 +5743,7 @@ function renderLedgerHead({ cost, metrics, usage, over }) {
|
|
|
5740
5743
|
const el = document.getElementById('ledger-head');
|
|
5741
5744
|
if (!el) return;
|
|
5742
5745
|
const title = document.getElementById('cost-title');
|
|
5743
|
-
if (title) title.
|
|
5746
|
+
if (title) title.innerHTML = `Cost · <span class="cost-long">last </span>${esc(periodLabel(currentPeriod))}`;
|
|
5744
5747
|
const sub = document.getElementById('cost-sub');
|
|
5745
5748
|
if (sub) sub.textContent = `${costRange(currentPeriod)} · updated just now`;
|
|
5746
5749
|
const costKnown = !!(metrics && metrics.cost);
|
|
@@ -5791,7 +5794,7 @@ function renderLedgerHead({ cost, metrics, usage, over }) {
|
|
|
5791
5794
|
const facts = metrics ? [
|
|
5792
5795
|
`${doneKnown ? done : absent('unloaded', 'the metrics payload carried no tasks section')} tasks done`,
|
|
5793
5796
|
// A dash here means "could not be computed", not "took no time".
|
|
5794
|
-
`median ${avgMin ? `${avgMin}` : absent('uncomputable', 'no completion in this window carried a timestamp to measure')} min from start to done
|
|
5797
|
+
`median ${avgMin ? `${avgMin}` : absent('uncomputable', 'no completion in this window carried a timestamp to measure')} min<span class="cost-long"> from start to done</span>`,
|
|
5795
5798
|
`${acc.cost_per_accepted != null ? `$${Number(acc.cost_per_accepted).toFixed(2)}` : absent('none', 'nothing was accepted in this window')} per accepted task`,
|
|
5796
5799
|
] : [];
|
|
5797
5800
|
|
|
@@ -5803,12 +5806,12 @@ function renderLedgerHead({ cost, metrics, usage, over }) {
|
|
|
5803
5806
|
<div class="cost-total-num">${spentCell}</div>
|
|
5804
5807
|
<p>${spentState === 'estimated'
|
|
5805
5808
|
? 'No run recorded a cost, so this is estimated from run time. Caps fire only on measured spend.'
|
|
5806
|
-
: 'What agent runs recorded as spent. This is the number the caps are checked against
|
|
5809
|
+
: 'What agent runs recorded as spent. <span class="cost-long">This is the number the caps are checked against.</span><span class="cost-short">Caps are checked against it.</span>'}</p>
|
|
5807
5810
|
</section>
|
|
5808
5811
|
<section class="cost-total">
|
|
5809
5812
|
<h2>At API list price</h2>
|
|
5810
5813
|
<div class="cost-total-num">${listCell}</div>
|
|
5811
|
-
<p>
|
|
5814
|
+
<p>Claude Code tokens<span class="cost-long"> in this project,</span> priced as if bought from the API. On a subscription this is not a charge.<span class="cost-long"> Codex has no list price.</span>${esc(listNote)}</p>
|
|
5812
5815
|
<button type="button" class="home-link" onclick="switchTab('insights/consumption')">Token detail</button>
|
|
5813
5816
|
</section>
|
|
5814
5817
|
</div>
|
|
@@ -6000,7 +6003,7 @@ async function loadBudgetsPage() {
|
|
|
6000
6003
|
].join('');
|
|
6001
6004
|
const idleBlock = idle.length ? `
|
|
6002
6005
|
<details class="cost-idle">
|
|
6003
|
-
<summary>${idle.length} installed agents have not run in 30 days</summary>
|
|
6006
|
+
<summary>${idle.length} installed agents have not run<span class="cost-long"> in 30 days</span></summary>
|
|
6004
6007
|
<div class="budgets-uncapped">${idle.slice(0, 80).map((a) => `
|
|
6005
6008
|
<button type="button" class="ab-btn" onclick="addBudgetFor('${esc(a.slug)}')"
|
|
6006
6009
|
title="${esc(firstSentence(a.description))}">${esc(a.slug)} +</button>`).join('')}
|
package/package.json
CHANGED