estela 0.1.21 → 0.1.23
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/README.md +110 -95
- package/dist/billing/sessionize.d.ts.map +1 -1
- package/dist/billing/sessionize.js +5 -2
- package/dist/billing/sessionize.js.map +1 -1
- package/dist/billing/sessionize.test.js +26 -0
- package/dist/billing/sessionize.test.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +36 -0
- package/dist/cli.js.map +1 -1
- package/dist/demo.d.ts +9 -0
- package/dist/demo.d.ts.map +1 -0
- package/dist/demo.js +248 -0
- package/dist/demo.js.map +1 -0
- package/dist/demo.test.d.ts +2 -0
- package/dist/demo.test.d.ts.map +1 -0
- package/dist/demo.test.js +148 -0
- package/dist/demo.test.js.map +1 -0
- package/dist/export/share.d.ts.map +1 -1
- package/dist/export/share.js +32 -13
- package/dist/export/share.js.map +1 -1
- package/dist/i18n/en.d.ts.map +1 -1
- package/dist/i18n/en.js +18 -1
- package/dist/i18n/en.js.map +1 -1
- package/dist/server.d.ts +2 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +9 -0
- package/dist/server.js.map +1 -1
- package/dist/server.test.js +24 -1
- package/dist/server.test.js.map +1 -1
- package/package.json +9 -4
- package/web/app.js +12 -7
package/README.md
CHANGED
|
@@ -1,168 +1,183 @@
|
|
|
1
1
|
# Estela
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
**English** · [Español](https://github.com/jdleonruiz/estela-cli/blob/main/README.es.md)
|
|
4
|
+
|
|
5
|
+
Development time tracking you **don't have to fill in**. Estela reads what your
|
|
6
|
+
AI agents and your Git already wrote to disk and rebuilds where your time went,
|
|
7
|
+
along with what the AI cost.
|
|
6
8
|
|
|
7
9
|
```sh
|
|
8
10
|
npx estela setup
|
|
9
11
|
```
|
|
10
12
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
+
Twenty seconds later you have the last few months of your history. No account,
|
|
14
|
+
no card, and nothing leaves your machine.
|
|
13
15
|
|
|
14
16
|
---
|
|
15
17
|
|
|
16
|
-
##
|
|
18
|
+
## Why it exists
|
|
17
19
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
20
|
+
A timer you have to remember to start always fails. And with an AI agent, time
|
|
21
|
+
isn't measured in keystrokes anymore: it goes into writing the prompt, reading
|
|
22
|
+
what comes back, and trying it out.
|
|
21
23
|
|
|
22
|
-
|
|
23
|
-
`~/.claude/projects/`
|
|
24
|
-
|
|
24
|
+
But that work **leaves a trail**. Claude Code saves every session in
|
|
25
|
+
`~/.claude/projects/` with its exact model and tokens. Git records when you
|
|
26
|
+
committed and what. Estela reads both and lines them up.
|
|
25
27
|
|
|
26
|
-
|
|
28
|
+
What it doesn't do:
|
|
27
29
|
|
|
28
|
-
- **
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
- **
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
30
|
+
- **It doesn't install hooks.** Your `husky` and `lefthook` stay untouched, and
|
|
31
|
+
your commit messages aren't modified. An identifier written into history
|
|
32
|
+
can't be taken back once it's pushed.
|
|
33
|
+
- **It doesn't inspect processes or your terminal.** It reads files that already
|
|
34
|
+
exist.
|
|
35
|
+
- **It doesn't store the content of your prompts.** Only when, how much, and
|
|
36
|
+
with which model.
|
|
37
|
+
- **It doesn't send anything anywhere.** The free plan is entirely local.
|
|
35
38
|
|
|
36
|
-
##
|
|
39
|
+
## Getting started
|
|
37
40
|
|
|
38
|
-
|
|
41
|
+
You need **Node 22.5 or later** (for `node:sqlite`).
|
|
39
42
|
|
|
40
43
|
```sh
|
|
41
|
-
npx estela setup #
|
|
42
|
-
npx estela web #
|
|
43
|
-
npx estela doctor #
|
|
44
|
+
npx estela setup # detects agents and repositories, rebuilds your history
|
|
45
|
+
npx estela web # opens the dashboard at http://localhost:4319
|
|
46
|
+
npx estela doctor # checks your data and flags anything wrong
|
|
44
47
|
npx estela --version
|
|
45
48
|
```
|
|
46
49
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
50
|
+
No Claude Code? It still works: without transcripts, Estela rebuilds your time
|
|
51
|
+
from your commits alone, and marks it as estimated.
|
|
52
|
+
|
|
53
|
+
`npm` doesn't update global installs on its own. If you installed with
|
|
54
|
+
`npm install -g estela`, Estela tells you when there's a newer version (it asks
|
|
55
|
+
npm at most once a day, in the background, without blocking anything); update
|
|
56
|
+
with `npm install -g estela@latest`.
|
|
51
57
|
|
|
52
|
-
`setup` no
|
|
53
|
-
|
|
58
|
+
`setup` asks no questions and doesn't overwrite anything you've set up by hand:
|
|
59
|
+
you can run it again.
|
|
54
60
|
|
|
55
|
-
|
|
61
|
+
Estela speaks English and Spanish, following your system's language. Force one
|
|
62
|
+
with `--lang en` on any command, or `ESTELA_LANG=en` for good.
|
|
56
63
|
|
|
57
|
-
|
|
58
|
-
|
|
64
|
+
## Reporting to a client
|
|
65
|
+
|
|
66
|
+
Projects are created as internal and without a rate, because making one up
|
|
67
|
+
would produce fake numbers from the first minute. When one belongs to a real
|
|
68
|
+
client:
|
|
59
69
|
|
|
60
70
|
```sh
|
|
61
71
|
estela client add --id acme --name "ACME" --currency EUR
|
|
62
|
-
estela project add --id acme-web --client acme --name "
|
|
72
|
+
estela project add --id acme-web --client acme --name "ACME website" --repo ~/dev/acme-web
|
|
63
73
|
estela rate set --project acme-web --rate 50
|
|
64
74
|
|
|
65
|
-
estela author --project acme-web #
|
|
75
|
+
estela author --project acme-web # which email you commit with there
|
|
66
76
|
estela report --project acme-web --cutoff 2026-08-31 --dry-run
|
|
67
77
|
```
|
|
68
78
|
|
|
69
|
-
**`estela author`
|
|
70
|
-
|
|
71
|
-
|
|
79
|
+
**`estela author` matters more than it looks.** In a client's repository you
|
|
80
|
+
almost never commit with your global email, and without telling Estela it
|
|
81
|
+
captures three commits out of seventeen hundred.
|
|
82
|
+
|
|
83
|
+
The report backs up your work with hours and commits. It isn't an invoice:
|
|
84
|
+
Estela doesn't issue tax documents, so attach it to your own.
|
|
72
85
|
|
|
73
|
-
##
|
|
86
|
+
## Sharing progress with your client
|
|
74
87
|
|
|
75
88
|
```sh
|
|
76
|
-
estela login --email
|
|
89
|
+
estela login --email you@example.com # once
|
|
77
90
|
estela publish --project acme-web
|
|
78
91
|
```
|
|
79
92
|
|
|
80
|
-
|
|
81
|
-
getestela.dev — no
|
|
82
|
-
**
|
|
83
|
-
|
|
84
|
-
|
|
93
|
+
This uploads a read-only dashboard with an unguessable link, hosted on
|
|
94
|
+
getestela.dev — no server of your own needed. It shows hours and commits;
|
|
95
|
+
**never your rate or your AI usage**, because as long as you're the one paying
|
|
96
|
+
for it that spend is yours, and a client who knows which part an AI generated
|
|
97
|
+
has a new argument for negotiating your rate down.
|
|
85
98
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
99
|
+
Publishing again from the same machine reuses the link automatically. From a
|
|
100
|
+
different machine, pass `--token` with the existing one, or your client ends up
|
|
101
|
+
with a dead link. The Free plan allows one published dashboard at a time; Pro
|
|
102
|
+
and Teams have no limit.
|
|
89
103
|
|
|
90
|
-
##
|
|
104
|
+
## What the AI actually costs
|
|
91
105
|
|
|
92
|
-
|
|
93
|
-
|
|
106
|
+
On a flat subscription, your real spend isn't the sum of the tokens: it's the
|
|
107
|
+
fee split across what you used.
|
|
94
108
|
|
|
95
109
|
```sh
|
|
96
110
|
estela subscription add --id max --name "Claude Max" --fee 100
|
|
97
111
|
estela ai-cost
|
|
98
112
|
```
|
|
99
113
|
|
|
100
|
-
|
|
101
|
-
|
|
114
|
+
Cache is counted separately because it's usually most of the bill — ignoring it
|
|
115
|
+
underestimated spend fivefold.
|
|
102
116
|
|
|
103
|
-
##
|
|
117
|
+
## Hours no import will infer
|
|
104
118
|
|
|
105
|
-
|
|
106
|
-
|
|
119
|
+
Meetings, travel, research, and development without an agent that didn't leave
|
|
120
|
+
commits either:
|
|
107
121
|
|
|
108
122
|
```sh
|
|
109
|
-
estela log --project acme-web --hours 1.5 --kind meeting --what "
|
|
123
|
+
estela log --project acme-web --hours 1.5 --kind meeting --what "Weekly check-in"
|
|
110
124
|
```
|
|
111
125
|
|
|
112
|
-
|
|
126
|
+
An import never touches them.
|
|
113
127
|
|
|
114
|
-
##
|
|
128
|
+
## Work without an agent
|
|
115
129
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
130
|
+
If you coded by hand, your commits are still a trail: Estela infers the time
|
|
131
|
+
from them and marks it as **estimated**, so you know which part of your hours is
|
|
132
|
+
measured and which is assumed. The estimate errs on the short side on purpose:
|
|
133
|
+
these hours end up in a report someone pays for.
|
|
120
134
|
|
|
121
|
-
##
|
|
135
|
+
## Plans
|
|
122
136
|
|
|
123
137
|
| | Free | Pro | Teams |
|
|
124
138
|
|---|---|---|---|
|
|
125
|
-
|
|
|
126
|
-
|
|
|
127
|
-
|
|
|
128
|
-
|
|
|
129
|
-
|
|
|
139
|
+
| Everything above, locally | ✓ | ✓ | ✓ |
|
|
140
|
+
| Sync across machines | — | ✓ | ✓ |
|
|
141
|
+
| Hosted dashboards at once | 1 | unlimited | unlimited |
|
|
142
|
+
| **Measured** team hours | — | — | ✓ |
|
|
143
|
+
| AI budget per project | — | — | ✓ |
|
|
130
144
|
|
|
131
|
-
Pro
|
|
132
|
-
|
|
133
|
-
|
|
145
|
+
Pro is one person on several machines; Teams is several people. AI cost is
|
|
146
|
+
reported **per project, never per person**: what each person spends out of their
|
|
147
|
+
own pocket is theirs.
|
|
134
148
|
|
|
135
|
-
|
|
149
|
+
More at [getestela.dev](https://getestela.dev/en/).
|
|
136
150
|
|
|
137
|
-
##
|
|
151
|
+
## Development
|
|
138
152
|
|
|
139
153
|
```sh
|
|
140
154
|
npm install
|
|
141
|
-
npm
|
|
142
|
-
node --test packages/daemon/dist/**/*.test.js
|
|
155
|
+
npm test
|
|
143
156
|
```
|
|
144
157
|
|
|
145
|
-
Node 22
|
|
146
|
-
|
|
147
|
-
|
|
158
|
+
Node 22 and **zero runtime dependencies**, on purpose: nobody installs a program
|
|
159
|
+
that reads their transcripts if they can't audit it, and an empty dependency
|
|
160
|
+
list can be audited in an afternoon.
|
|
148
161
|
|
|
149
|
-
##
|
|
162
|
+
## Open source, closed service
|
|
150
163
|
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
`npm install estela
|
|
164
|
+
Everything that installs on your machine is open source under the MIT license:
|
|
165
|
+
the CLI, what reads your transcripts and your git, what calculates hours and
|
|
166
|
+
cost, and the dashboard that `estela web` opens. It's exactly what
|
|
167
|
+
`npm install estela` downloads, and you can read it at
|
|
155
168
|
[github.com/jdleonruiz/estela-cli](https://github.com/jdleonruiz/estela-cli).
|
|
169
|
+
Each npm version has a matching tag there.
|
|
156
170
|
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
171
|
+
What **isn't** here is the paid service: the server that syncs your machines and
|
|
172
|
+
the one behind team projects. That part is closed, and it's what keeps the
|
|
173
|
+
project going.
|
|
160
174
|
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
175
|
+
The split isn't an accident. The free plan works entirely without an account,
|
|
176
|
+
a card, or a network connection, and that claim is worth nothing if you have to
|
|
177
|
+
take it on faith: with the code in front of you, you can check for yourself that
|
|
178
|
+
nothing leaves your machine.
|
|
164
179
|
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
180
|
+
The test fixtures are made up on purpose. The cases come from real repositories
|
|
181
|
+
— that's why they cover messes nobody would think of — but neither a client's
|
|
182
|
+
team roster nor how much each of its people commits belongs in a public
|
|
183
|
+
repository.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessionize.d.ts","sourceRoot":"","sources":["../../src/billing/sessionize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAKtE;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,0EAA0E;IAC1E,QAAQ,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,CAAC;IAC1C,gFAAgF;IAChF,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5C;AAKD,wBAAgB,UAAU,CACxB,KAAK,EAAE,SAAS,SAAS,EAAE,EAC3B,OAAO,GAAE,iBAAsB,GAC9B,SAAS,EAAE,CAkCb;AAqCD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,SAAS,SAAS,EAAE,EAC5B,MAAM,GAAE,CAAC,KAAK,EAAE,SAAS,KAAK,MAAgC,GAC7D,SAAS,EAAE,CAiEb;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"sessionize.d.ts","sourceRoot":"","sources":["../../src/billing/sessionize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAKtE;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,0EAA0E;IAC1E,QAAQ,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,CAAC;IAC1C,gFAAgF;IAChF,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5C;AAKD,wBAAgB,UAAU,CACxB,KAAK,EAAE,SAAS,SAAS,EAAE,EAC3B,OAAO,GAAE,iBAAsB,GAC9B,SAAS,EAAE,CAkCb;AAqCD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,SAAS,SAAS,EAAE,EAC5B,MAAM,GAAE,CAAC,KAAK,EAAE,SAAS,KAAK,MAAgC,GAC7D,SAAS,EAAE,CAiEb;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAYtD;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,SAAS,SAAS,EAAE,EAC5B,OAAO,EAAE,SAAS,YAAY,EAAE,EAChC,YAAY,SAAK,GAChB,SAAS,EAAE,CAcb;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,SAAS,YAAY,EAAE,EAChC,OAAO,GAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAAO,GAC5D,SAAS,EAAE,CAgDb;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,YAAY,EAAE,SAAS,SAAS,EAAE,EAClC,WAAW,EAAE,SAAS,SAAS,EAAE,GAChC,SAAS,EAAE,CAKb"}
|
|
@@ -171,11 +171,14 @@ function describeBlock(block) {
|
|
|
171
171
|
const subjects = [...new Set(block.commits.map((c) => c.subject).filter(Boolean))];
|
|
172
172
|
if (subjects.length === 1)
|
|
173
173
|
return subjects[0];
|
|
174
|
-
|
|
174
|
+
// "+1 commits más" salía en la descripción de cualquier bloque con dos asuntos.
|
|
175
|
+
if (subjects.length === 2)
|
|
176
|
+
return (0, index_js_1.tr) `${subjects[0]} (+1 commit más)`;
|
|
177
|
+
if (subjects.length > 2) {
|
|
175
178
|
return (0, index_js_1.tr) `${subjects[0]} (+${subjects.length - 1} commits más)`;
|
|
176
179
|
}
|
|
177
180
|
const branch = block.branch?.replace(/^(feature|feat|fix|chore)\//, "") ?? null;
|
|
178
|
-
return branch ? (0, index_js_1.tr) `Desarrollo en ${branch}` :
|
|
181
|
+
return branch ? (0, index_js_1.tr) `Desarrollo en ${branch}` : (0, index_js_1.tr) `Desarrollo`;
|
|
179
182
|
}
|
|
180
183
|
/**
|
|
181
184
|
* Asocia commits a bloques por solapamiento temporal.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessionize.js","sourceRoot":"","sources":["../../src/billing/sessionize.ts"],"names":[],"mappings":";;AAgDA,gCAqCC;AAyDD,kDAoEC;AAQD,
|
|
1
|
+
{"version":3,"file":"sessionize.js","sourceRoot":"","sources":["../../src/billing/sessionize.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const strict_1 = __importDefault(require("node:assert/strict"));
|
|
7
7
|
const node_test_1 = require("node:test");
|
|
8
|
+
const index_js_1 = require("../i18n/index.js");
|
|
8
9
|
const sessionize_js_1 = require("./sessionize.js");
|
|
9
10
|
// --- Trabajo sin agente ------------------------------------------------------
|
|
10
11
|
function commit(hash, iso, repo = "/r", branch = "main") {
|
|
@@ -133,4 +134,29 @@ function commit(hash, iso, repo = "/r", branch = "main") {
|
|
|
133
134
|
const [fusionado] = (0, sessionize_js_1.groupByBranchAndDay)(bloques, () => "proyecto");
|
|
134
135
|
strict_1.default.equal(fusionado.seconds, suma, "sin solape no se pierde ni un segundo");
|
|
135
136
|
});
|
|
137
|
+
// ── Descripción de un bloque ────────────────────────────────────────────────
|
|
138
|
+
function bloqueCon(asuntos, branch = "main") {
|
|
139
|
+
const at = new Date("2026-09-14T10:00:00Z");
|
|
140
|
+
return {
|
|
141
|
+
startedAt: at, endedAt: at, seconds: 3600, repoPath: "/r", branch, turnCount: 1,
|
|
142
|
+
aiCost: { microUsd: 0 }, models: [], sessionIds: [], unpricedModels: [],
|
|
143
|
+
commits: asuntos.map((subject, i) => ({ ...commit(`h${i}`, "2026-09-14T10:00:00Z"), subject })),
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
(0, node_test_1.test)("describeBlock: un commit más va en singular, en los dos idiomas", () => {
|
|
147
|
+
// Salía "(+1 commits más)" / "(+1 more commits)" en cualquier bloque con dos
|
|
148
|
+
// asuntos distintos, y esa descripción es la que acaba en el informe.
|
|
149
|
+
try {
|
|
150
|
+
(0, index_js_1.setLang)("es");
|
|
151
|
+
strict_1.default.equal((0, sessionize_js_1.describeBlock)(bloqueCon(["a", "b"])), "a (+1 commit más)");
|
|
152
|
+
strict_1.default.equal((0, sessionize_js_1.describeBlock)(bloqueCon(["a", "b", "c"])), "a (+2 commits más)");
|
|
153
|
+
(0, index_js_1.setLang)("en");
|
|
154
|
+
strict_1.default.equal((0, sessionize_js_1.describeBlock)(bloqueCon(["a", "b"])), "a (+1 more commit)");
|
|
155
|
+
strict_1.default.equal((0, sessionize_js_1.describeBlock)(bloqueCon(["a", "b", "c"])), "a (+2 more commits)");
|
|
156
|
+
strict_1.default.equal((0, sessionize_js_1.describeBlock)(bloqueCon([], null)), "Development", "sin asuntos ni rama, también traducido");
|
|
157
|
+
}
|
|
158
|
+
finally {
|
|
159
|
+
(0, index_js_1.setLang)("es");
|
|
160
|
+
}
|
|
161
|
+
});
|
|
136
162
|
//# sourceMappingURL=sessionize.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessionize.test.js","sourceRoot":"","sources":["../../src/billing/sessionize.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sessionize.test.js","sourceRoot":"","sources":["../../src/billing/sessionize.test.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAuCA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAkgDpD,OAAO,EAAE,eAAe,EAAE,CAAC"}
|
package/dist/cli.js
CHANGED
|
@@ -50,6 +50,7 @@ const invoice_js_1 = require("./billing/invoice.js");
|
|
|
50
50
|
const sessionize_js_1 = require("./billing/sessionize.js");
|
|
51
51
|
const schema_js_1 = require("./db/schema.js");
|
|
52
52
|
const store = __importStar(require("./db/store.js"));
|
|
53
|
+
const demo_js_1 = require("./demo.js");
|
|
53
54
|
const doctor_js_1 = require("./doctor.js");
|
|
54
55
|
const setup_js_1 = require("./setup.js");
|
|
55
56
|
const csv_js_1 = require("./export/csv.js");
|
|
@@ -108,6 +109,9 @@ estela — registro de horas para desarrollo asistido por IA
|
|
|
108
109
|
autores del repositorio para que elijas el tuyo.
|
|
109
110
|
|
|
110
111
|
estela web [--port 4319] Abre el panel en tu navegador.
|
|
112
|
+
estela demo [--port 4320] El panel lleno con datos inventados, para
|
|
113
|
+
ver de qué va sin esperar a tener
|
|
114
|
+
historial. No toca tu base.
|
|
111
115
|
estela doctor Revisa los datos y avisa de lo que
|
|
112
116
|
rompería una demo. Úsalo antes de publicar.
|
|
113
117
|
estela status Qué hay capturado y sin imputar.
|
|
@@ -227,6 +231,9 @@ estela — time tracking for AI-assisted development
|
|
|
227
231
|
the repository's authors so you can pick yours.
|
|
228
232
|
|
|
229
233
|
estela web [--port 4319] Opens the dashboard in your browser.
|
|
234
|
+
estela demo [--port 4320] The dashboard filled with made-up data, to
|
|
235
|
+
see what it does without waiting to build
|
|
236
|
+
up history. It never touches your data.
|
|
230
237
|
estela doctor Checks your data and flags anything that
|
|
231
238
|
would ruin a demo. Run it before publishing.
|
|
232
239
|
estela status What's been captured and not yet assigned.
|
|
@@ -374,6 +381,32 @@ async function cmdWeb(args, dbPath) {
|
|
|
374
381
|
// No devuelve: el servidor se queda escuchando.
|
|
375
382
|
await new Promise(() => { });
|
|
376
383
|
}
|
|
384
|
+
/**
|
|
385
|
+
* `estela demo` — el producto lleno, con datos inventados.
|
|
386
|
+
*
|
|
387
|
+
* Quien instala esto sin historial de agente termina el setup y ve una pantalla
|
|
388
|
+
* casi vacía: ha hecho lo que se le pidió y no ha visto el producto. Esto le
|
|
389
|
+
* enseña de qué va en diez segundos, en una base aparte que se puede borrar.
|
|
390
|
+
*/
|
|
391
|
+
async function cmdDemo(args, dbPath) {
|
|
392
|
+
const rutaDemo = (0, node_path_1.join)((0, node_path_1.dirname)(dbPath), "estela-demo.db");
|
|
393
|
+
(0, node_fs_1.rmSync)(rutaDemo, { force: true });
|
|
394
|
+
(0, node_fs_1.mkdirSync)((0, node_path_1.dirname)(rutaDemo), { recursive: true });
|
|
395
|
+
const db = (0, schema_js_1.openDatabase)(rutaDemo);
|
|
396
|
+
try {
|
|
397
|
+
(0, demo_js_1.seedDemo)(db);
|
|
398
|
+
}
|
|
399
|
+
finally {
|
|
400
|
+
db.close();
|
|
401
|
+
}
|
|
402
|
+
const port = Number(str(args, "port") ?? 4320);
|
|
403
|
+
const url = await (0, server_js_1.startServer)({ port, dbPath: rutaDemo, autoImportMinutes: 0, demo: true });
|
|
404
|
+
console.log((0, index_js_1.tr) `\n Estela — demo con datos inventados ${url}`);
|
|
405
|
+
console.log((0, index_js_1.tr) ` No es tu trabajo: no se ha tocado tu base ni se ha leído nada tuyo.`);
|
|
406
|
+
console.log((0, index_js_1.tr) ` Para el tuyo de verdad: estela setup`);
|
|
407
|
+
console.log((0, index_js_1.tr) `\n Ctrl+C para parar.\n`);
|
|
408
|
+
await new Promise(() => { });
|
|
409
|
+
}
|
|
377
410
|
// Sin subdominio propio: se sirve bajo getestela.dev por rutas concretas
|
|
378
411
|
// (/auth/, /panels), proxiadas a esta API en nginx. Evita el DNS y el
|
|
379
412
|
// certificado de un api.getestela.dev que nadie más necesita.
|
|
@@ -1529,6 +1562,9 @@ async function main() {
|
|
|
1529
1562
|
case "web":
|
|
1530
1563
|
await cmdWeb(args, dbPath);
|
|
1531
1564
|
break;
|
|
1565
|
+
case "demo":
|
|
1566
|
+
await cmdDemo(args, dbPath);
|
|
1567
|
+
break;
|
|
1532
1568
|
case "import":
|
|
1533
1569
|
await cmdImport(args, dbPath);
|
|
1534
1570
|
break;
|