driggsby 0.5.0 → 0.5.2
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/dev/host-page.js +31 -12
- package/dist/init/template-styles.js +42 -32
- package/dist/init/templates.js +4 -3
- package/package.json +3 -3
package/dist/dev/host-page.js
CHANGED
|
@@ -23,9 +23,12 @@ export function hostPageHtml(slug, appOrigin, background) {
|
|
|
23
23
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
24
24
|
<title>${slug} — driggsby dev</title>
|
|
25
25
|
<style>
|
|
26
|
-
/* The strip above the frame is the console's title row
|
|
27
|
-
measured values: 46px tall on the black
|
|
28
|
-
|
|
26
|
+
/* The strip above the frame is the console's title row over a
|
|
27
|
+
dashboard, in its own measured values: 46px tall on the black
|
|
28
|
+
ground with no rule under it, the name centered in 14px ink, and
|
|
29
|
+
the side slot in the row's quiet 14px tertiary. Equal side tracks
|
|
30
|
+
keep the name centered; the slot ellipsizes only when the two
|
|
31
|
+
would otherwise meet. */
|
|
29
32
|
* { box-sizing: border-box; }
|
|
30
33
|
html { color-scheme: dark; }
|
|
31
34
|
body {
|
|
@@ -37,26 +40,42 @@ export function hostPageHtml(slug, appOrigin, background) {
|
|
|
37
40
|
color: #fafafa;
|
|
38
41
|
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
|
|
39
42
|
font-size: 14px;
|
|
40
|
-
line-height:
|
|
43
|
+
line-height: 1.5;
|
|
41
44
|
-webkit-font-smoothing: antialiased;
|
|
42
45
|
}
|
|
43
46
|
header {
|
|
44
|
-
display:
|
|
47
|
+
display: grid;
|
|
48
|
+
grid-template-columns: minmax(0, 1fr) fit-content(60%) minmax(0, 1fr);
|
|
49
|
+
column-gap: 16px;
|
|
45
50
|
align-items: center;
|
|
46
|
-
justify-content: space-between;
|
|
47
51
|
height: 46px;
|
|
48
|
-
padding: 0
|
|
49
|
-
border-bottom: 1px solid
|
|
52
|
+
padding: 0 20px;
|
|
53
|
+
border-bottom: 1px solid transparent;
|
|
54
|
+
}
|
|
55
|
+
header .slug,
|
|
56
|
+
header .mode {
|
|
57
|
+
grid-row: 1;
|
|
58
|
+
min-width: 0;
|
|
59
|
+
overflow: hidden;
|
|
60
|
+
text-overflow: ellipsis;
|
|
61
|
+
white-space: nowrap;
|
|
62
|
+
}
|
|
63
|
+
header .slug { grid-column: 2; }
|
|
64
|
+
header .mode {
|
|
65
|
+
grid-column: 3;
|
|
66
|
+
justify-self: end;
|
|
67
|
+
max-width: 100%;
|
|
68
|
+
color: #a1a1a1;
|
|
50
69
|
}
|
|
51
|
-
header .slug { font-weight: 500; }
|
|
52
|
-
header .mode { color: #a1a1a1; font-size: 13px; }
|
|
53
70
|
iframe {
|
|
54
71
|
flex: 1;
|
|
55
72
|
width: 100%;
|
|
56
73
|
border: none;
|
|
57
74
|
/* The app's declared background from driggsby.json, painted while
|
|
58
|
-
the app loads — the same surface the production host shows.
|
|
59
|
-
|
|
75
|
+
the app loads — the same surface the production host shows. With
|
|
76
|
+
none declared, Driggsby's own: its card surface on the black
|
|
77
|
+
page. */
|
|
78
|
+
background: ${background ?? "#0a0a0a"};
|
|
60
79
|
}
|
|
61
80
|
</style>
|
|
62
81
|
</head>
|
|
@@ -1,25 +1,35 @@
|
|
|
1
1
|
// The scaffold's styles.css. A deployed app lives inside Driggsby's dark
|
|
2
2
|
// chrome, so the page is dark by default and its values are Driggsby's
|
|
3
|
-
// own: the console's
|
|
4
|
-
//
|
|
5
|
-
//
|
|
6
|
-
//
|
|
7
|
-
//
|
|
3
|
+
// own: the console's palette, type, insets, and page column, measured off
|
|
4
|
+
// the console itself. The app is its own origin and cannot read the
|
|
5
|
+
// console's stylesheet, so each gray is written as the console paints it
|
|
6
|
+
// on its black page (the console's cards and fills are translucent over
|
|
7
|
+
// that ground) and each hue verbatim. The :root block is the same one
|
|
8
|
+
// Driggsby's own example dashboard carries. --bg-app must stay equal to
|
|
9
|
+
// driggsby.json's "background" (init-command.test.ts pins the two
|
|
10
|
+
// together): Driggsby paints that color while the app loads.
|
|
8
11
|
export const STYLES_CSS = `/* Driggsby's console palette, so this page reads as part of the app it
|
|
9
12
|
opens inside. Change these together if you re-theme; keep --bg-app equal
|
|
10
|
-
to the "background" in driggsby.json.
|
|
13
|
+
to the "background" in driggsby.json. The status tones are the
|
|
14
|
+
console's own, for gains, losses, warnings, and a live dot. */
|
|
11
15
|
:root {
|
|
12
16
|
color-scheme: dark;
|
|
13
17
|
--bg-app: #000000;
|
|
14
18
|
--bg-card: #0a0a0a;
|
|
15
19
|
--bg-mute: #262626;
|
|
16
20
|
--hairline: rgba(255, 255, 255, 0.14);
|
|
21
|
+
--hairline-strong: rgba(255, 255, 255, 0.22);
|
|
17
22
|
--text-primary: #fafafa;
|
|
18
23
|
--text-secondary: #c4c4c4;
|
|
19
24
|
--text-tertiary: #a1a1a1;
|
|
25
|
+
--status-success: oklch(0.72 0.14 160);
|
|
26
|
+
--text-success: oklch(0.82 0.11 160);
|
|
27
|
+
--text-warning: oklch(0.85 0.11 85);
|
|
28
|
+
--text-error: oklch(0.8 0.13 25);
|
|
20
29
|
--radius-card: 8px;
|
|
21
30
|
--radius-bar: 4px;
|
|
22
31
|
--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
|
|
32
|
+
--ease: cubic-bezier(0.2, 0, 0, 1);
|
|
23
33
|
}
|
|
24
34
|
|
|
25
35
|
* {
|
|
@@ -32,21 +42,25 @@ body {
|
|
|
32
42
|
color: var(--text-primary);
|
|
33
43
|
font-family: var(--font-sans);
|
|
34
44
|
font-size: 14px;
|
|
35
|
-
line-height:
|
|
45
|
+
line-height: 1.5;
|
|
36
46
|
-webkit-font-smoothing: antialiased;
|
|
37
47
|
}
|
|
38
48
|
|
|
49
|
+
/* The console's page column. */
|
|
39
50
|
main {
|
|
40
|
-
max-width:
|
|
51
|
+
max-width: 75rem;
|
|
41
52
|
margin: 0 auto;
|
|
42
|
-
padding: 24px
|
|
53
|
+
padding: 24px;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
main > header {
|
|
57
|
+
margin-bottom: 20px;
|
|
43
58
|
}
|
|
44
59
|
|
|
45
60
|
h1 {
|
|
46
61
|
margin: 0;
|
|
47
62
|
font-size: 24px;
|
|
48
63
|
font-weight: 600;
|
|
49
|
-
line-height: 36px;
|
|
50
64
|
letter-spacing: -0.02em;
|
|
51
65
|
}
|
|
52
66
|
|
|
@@ -54,24 +68,19 @@ h2 {
|
|
|
54
68
|
margin: 24px 0 12px;
|
|
55
69
|
font-size: 14px;
|
|
56
70
|
font-weight: 500;
|
|
57
|
-
line-height: 21px;
|
|
58
71
|
letter-spacing: -0.02em;
|
|
59
72
|
}
|
|
60
73
|
|
|
61
|
-
/*
|
|
62
|
-
|
|
74
|
+
/* The console's stat tiles: a card per figure, 16px apart, the row
|
|
75
|
+
capped at the console's 920px. */
|
|
63
76
|
.stat-grid {
|
|
64
77
|
display: grid;
|
|
65
78
|
grid-template-columns: repeat(4, minmax(0, 1fr));
|
|
66
|
-
gap:
|
|
67
|
-
|
|
68
|
-
border: 1px solid var(--hairline);
|
|
69
|
-
border-radius: var(--radius-card);
|
|
70
|
-
background: var(--hairline);
|
|
71
|
-
overflow: hidden;
|
|
79
|
+
gap: 16px;
|
|
80
|
+
max-width: 920px;
|
|
72
81
|
}
|
|
73
82
|
|
|
74
|
-
@media (max-width:
|
|
83
|
+
@media (max-width: 900px) {
|
|
75
84
|
.stat-grid {
|
|
76
85
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
77
86
|
}
|
|
@@ -86,22 +95,22 @@ h2 {
|
|
|
86
95
|
.stat {
|
|
87
96
|
display: flex;
|
|
88
97
|
flex-direction: column;
|
|
89
|
-
padding: 16px;
|
|
98
|
+
padding: 14px 16px;
|
|
99
|
+
border: 1px solid var(--hairline);
|
|
100
|
+
border-radius: var(--radius-card);
|
|
90
101
|
background: var(--bg-card);
|
|
91
102
|
}
|
|
92
103
|
|
|
93
104
|
.stat-label {
|
|
94
105
|
font-size: 13px;
|
|
95
|
-
line-height: 20px;
|
|
96
106
|
color: var(--text-tertiary);
|
|
97
107
|
}
|
|
98
108
|
|
|
99
109
|
.stat-value {
|
|
100
|
-
margin-top:
|
|
110
|
+
margin-top: 2px;
|
|
101
111
|
font-size: 20px;
|
|
102
112
|
font-weight: 600;
|
|
103
|
-
|
|
104
|
-
letter-spacing: -0.02em;
|
|
113
|
+
letter-spacing: -0.01em;
|
|
105
114
|
font-variant-numeric: tabular-nums;
|
|
106
115
|
/* A currency string has no natural break, and a clipped balance is a
|
|
107
116
|
wrong number. If a value ever outgrows its cell, it wraps. */
|
|
@@ -165,6 +174,7 @@ h2 {
|
|
|
165
174
|
/* Holds its line even when empty, so every row measures the same as
|
|
166
175
|
the skeleton row it replaces. */
|
|
167
176
|
min-height: 21px;
|
|
177
|
+
margin-top: 1px;
|
|
168
178
|
color: var(--text-secondary);
|
|
169
179
|
overflow: hidden;
|
|
170
180
|
text-overflow: ellipsis;
|
|
@@ -179,10 +189,10 @@ h2 {
|
|
|
179
189
|
/* The skeleton ships in the HTML so the first paint is the final layout
|
|
180
190
|
as muted bars; the first data render replaces it in a dissolve (see the
|
|
181
191
|
"Settling in" section of app.js). Each bar's margins pad it to exactly
|
|
182
|
-
the height of the text it stands in for,
|
|
183
|
-
stacked bars are flex so those
|
|
184
|
-
|
|
185
|
-
lands. */
|
|
192
|
+
the height of the text it stands in for (the line, plus any margin the
|
|
193
|
+
text carries), and the columns holding stacked bars are flex so those
|
|
194
|
+
margins never collapse — the skeleton page and the data page measure
|
|
195
|
+
identical, and nothing shifts when data lands. */
|
|
186
196
|
.skeleton {
|
|
187
197
|
border-radius: var(--radius-bar);
|
|
188
198
|
background: var(--bg-mute);
|
|
@@ -192,13 +202,13 @@ h2 {
|
|
|
192
202
|
.skeleton-label {
|
|
193
203
|
width: 64px;
|
|
194
204
|
height: 12px;
|
|
195
|
-
margin:
|
|
205
|
+
margin: 3.75px 0;
|
|
196
206
|
}
|
|
197
207
|
|
|
198
208
|
.skeleton-value {
|
|
199
209
|
width: 96px;
|
|
200
210
|
height: 20px;
|
|
201
|
-
margin:
|
|
211
|
+
margin: 7px 0 5px;
|
|
202
212
|
}
|
|
203
213
|
|
|
204
214
|
.skeleton-glyph {
|
|
@@ -217,7 +227,7 @@ h2 {
|
|
|
217
227
|
.skeleton-institution {
|
|
218
228
|
width: 110px;
|
|
219
229
|
height: 12px;
|
|
220
|
-
margin:
|
|
230
|
+
margin: 5.5px 0 4.5px;
|
|
221
231
|
}
|
|
222
232
|
|
|
223
233
|
.skeleton-balance {
|
package/dist/init/templates.js
CHANGED
|
@@ -96,9 +96,10 @@ export const APP_JS = `// Your app's code. Edit anything — driggsby dev reload
|
|
|
96
96
|
// These are the tools an app can watch — read-only, nothing else responds:
|
|
97
97
|
//
|
|
98
98
|
// get_overview money rollups + every linked account
|
|
99
|
-
// get_history balances, holdings, or
|
|
100
|
-
// (history_type is required:
|
|
101
|
-
// "
|
|
99
|
+
// get_history balances, holdings, debts, or manual items
|
|
100
|
+
// over time (history_type is required:
|
|
101
|
+
// "account_balances", "investment_holdings",
|
|
102
|
+
// "liabilities", or "custom_items")
|
|
102
103
|
// list_accounts current balances per linked account
|
|
103
104
|
// list_assets_and_liabilities the full balance sheet, incl. manual items
|
|
104
105
|
// list_findings issues Driggsby has flagged
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "driggsby",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.2",
|
|
4
4
|
"description": "Set up and build on Driggsby, the MCP server for personal finance.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"node": ">=18"
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@driggsby/deploy": "0.5.
|
|
32
|
-
"@driggsby/sdk": "0.5.
|
|
31
|
+
"@driggsby/deploy": "0.5.2",
|
|
32
|
+
"@driggsby/sdk": "0.5.2"
|
|
33
33
|
}
|
|
34
34
|
}
|