@deerdesign/deertools 1.0.3 → 1.2.0
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 +134 -7
- package/docs/prezentacja-it-deertools.html +645 -0
- package/docs/prezentacja-it-deertools.md +182 -0
- package/package.json +2 -1
- package/src/agent-detector.js +160 -0
- package/src/audit.js +65 -0
- package/src/baselinker/browser-login.js +214 -0
- package/src/baselinker/catalog-tools.js +457 -0
- package/src/baselinker/client.js +136 -0
- package/src/baselinker/crawler.js +157 -0
- package/src/baselinker/index.js +24 -0
- package/src/baselinker/mcp-server.js +153 -0
- package/src/baselinker/methods-index.json +1226 -0
- package/src/baselinker/schema-cache.json +6342 -0
- package/src/baselinker/ui.js +386 -0
- package/src/baselinker-commands.js +180 -0
- package/src/cli.js +22 -2
- package/src/commands.js +313 -32
- package/src/completion.js +189 -0
- package/src/credentials.js +39 -2
- package/src/doctor.js +286 -0
- package/src/domain-commands.js +288 -0
- package/src/formatters.js +50 -0
- package/src/mcp-stdio.js +197 -0
- package/src/profiles.js +78 -0
- package/src/registry.js +22 -1
- package/src/skill-commands.js +223 -0
- package/src/skills-hub.js +201 -0
- package/src/tui.js +139 -0
|
@@ -0,0 +1,645 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="pl">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
|
6
|
+
<title>DeerTools CLI & MCP Ecosystem — Prezentacja dla Zespołu IT</title>
|
|
7
|
+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/reveal.js@5.1.0/dist/reveal.css">
|
|
8
|
+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/reveal.js@5.1.0/dist/theme/white.css">
|
|
9
|
+
<link href="https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,500;0,600;1,400;1,600&family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet">
|
|
10
|
+
<style>
|
|
11
|
+
:root {
|
|
12
|
+
--primary: #FF6A00;
|
|
13
|
+
--primary-glow: rgba(255, 106, 0, 0.25);
|
|
14
|
+
--gold-light: #CBB090;
|
|
15
|
+
--gold-dark: #A6845A;
|
|
16
|
+
--surface: #FFFCF7;
|
|
17
|
+
--surface-card: #FFFFFF;
|
|
18
|
+
--surface-d: #1F1A14;
|
|
19
|
+
--surface-d-card:#2A231C;
|
|
20
|
+
--ink: #1A1A1A;
|
|
21
|
+
--ink-muted: #6E6458;
|
|
22
|
+
--ink-on-d: #F5EDE0;
|
|
23
|
+
--border: rgba(203, 176, 144, 0.35);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
body {
|
|
27
|
+
background: var(--surface-d);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.reveal {
|
|
31
|
+
font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
|
32
|
+
color: var(--ink);
|
|
33
|
+
font-size: 26px;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.reveal h1, .reveal h2, .reveal h3 {
|
|
37
|
+
font-family: 'Cormorant Garamond', Georgia, serif;
|
|
38
|
+
font-weight: 500;
|
|
39
|
+
letter-spacing: -0.01em;
|
|
40
|
+
color: var(--ink);
|
|
41
|
+
text-transform: none;
|
|
42
|
+
margin-bottom: 0.4em;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.reveal h1 { font-size: 2.8em; line-height: 1.08; }
|
|
46
|
+
.reveal h2 { font-size: 2.0em; line-height: 1.15; }
|
|
47
|
+
.reveal h3 { font-size: 1.35em; font-weight: 600; }
|
|
48
|
+
|
|
49
|
+
.reveal p, .reveal li {
|
|
50
|
+
font-size: 0.95em;
|
|
51
|
+
line-height: 1.55;
|
|
52
|
+
color: var(--ink);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.reveal section {
|
|
56
|
+
background: var(--surface);
|
|
57
|
+
padding: 2.5em 3.2em !important;
|
|
58
|
+
border-radius: 12px;
|
|
59
|
+
box-shadow: 0 20px 45px rgba(0,0,0,0.18);
|
|
60
|
+
box-sizing: border-box;
|
|
61
|
+
text-align: left;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
.reveal section.dark {
|
|
65
|
+
background: var(--surface-d);
|
|
66
|
+
color: var(--ink-on-d);
|
|
67
|
+
box-shadow: 0 20px 45px rgba(0,0,0,0.45);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.reveal section.dark h1,
|
|
71
|
+
.reveal section.dark h2,
|
|
72
|
+
.reveal section.dark h3,
|
|
73
|
+
.reveal section.dark p,
|
|
74
|
+
.reveal section.dark li {
|
|
75
|
+
color: var(--ink-on-d);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
.kicker {
|
|
79
|
+
font-family: 'Inter', sans-serif;
|
|
80
|
+
font-size: 0.55em;
|
|
81
|
+
text-transform: uppercase;
|
|
82
|
+
letter-spacing: 0.2em;
|
|
83
|
+
font-weight: 700;
|
|
84
|
+
color: var(--primary);
|
|
85
|
+
margin-bottom: 0.8em;
|
|
86
|
+
display: inline-block;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
.reveal section.dark .kicker {
|
|
90
|
+
color: var(--gold-light);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
.sep {
|
|
94
|
+
width: 70px;
|
|
95
|
+
height: 3px;
|
|
96
|
+
background: var(--primary);
|
|
97
|
+
border: 0;
|
|
98
|
+
margin: 0.8em 0 1.2em 0;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
.reveal section.dark .sep {
|
|
102
|
+
background: var(--gold-light);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
.grid-2 {
|
|
106
|
+
display: grid;
|
|
107
|
+
grid-template-columns: 1fr 1fr;
|
|
108
|
+
gap: 1.8em;
|
|
109
|
+
margin-top: 1em;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
.grid-3 {
|
|
113
|
+
display: grid;
|
|
114
|
+
grid-template-columns: 1fr 1fr 1fr;
|
|
115
|
+
gap: 1.4em;
|
|
116
|
+
margin-top: 1em;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
.card {
|
|
120
|
+
background: var(--surface-card);
|
|
121
|
+
border: 1px solid var(--border);
|
|
122
|
+
border-radius: 10px;
|
|
123
|
+
padding: 1.4em;
|
|
124
|
+
box-shadow: 0 4px 15px rgba(0,0,0,0.04);
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
.reveal section.dark .card {
|
|
128
|
+
background: var(--surface-d-card);
|
|
129
|
+
border-color: rgba(203, 176, 144, 0.2);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
.card-title {
|
|
133
|
+
font-family: 'Inter', sans-serif;
|
|
134
|
+
font-size: 0.85em;
|
|
135
|
+
font-weight: 700;
|
|
136
|
+
color: var(--primary);
|
|
137
|
+
margin-bottom: 0.4em;
|
|
138
|
+
display: flex;
|
|
139
|
+
align-items: center;
|
|
140
|
+
gap: 0.5em;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
.reveal section.dark .card-title {
|
|
144
|
+
color: var(--gold-light);
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
.code-badge {
|
|
148
|
+
display: inline-block;
|
|
149
|
+
background: #110E0B;
|
|
150
|
+
color: #4ADE80;
|
|
151
|
+
font-family: 'JetBrains Mono', monospace;
|
|
152
|
+
font-size: 0.75em;
|
|
153
|
+
padding: 0.2em 0.5em;
|
|
154
|
+
border-radius: 5px;
|
|
155
|
+
border: 1px solid rgba(255,255,255,0.1);
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
pre.code-block {
|
|
159
|
+
background: #15120E !important;
|
|
160
|
+
border: 1px solid rgba(203, 176, 144, 0.25);
|
|
161
|
+
border-radius: 8px;
|
|
162
|
+
padding: 0.9em 1.2em !important;
|
|
163
|
+
margin: 0.6em 0 !important;
|
|
164
|
+
box-shadow: 0 4px 12px rgba(0,0,0,0.2);
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
pre.code-block code {
|
|
168
|
+
font-family: 'JetBrains Mono', monospace !important;
|
|
169
|
+
font-size: 0.72em !important;
|
|
170
|
+
line-height: 1.45 !important;
|
|
171
|
+
color: #F5EDE0 !important;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
.code-kw { color: #FF6A00; font-weight: bold; }
|
|
175
|
+
.code-cmd { color: #38BDF8; font-weight: bold; }
|
|
176
|
+
.code-arg { color: #A7F3D0; }
|
|
177
|
+
.code-val { color: #FDE047; }
|
|
178
|
+
.code-dim { color: #8C8275; }
|
|
179
|
+
|
|
180
|
+
.stat-hero {
|
|
181
|
+
font-family: 'Cormorant Garamond', Georgia, serif;
|
|
182
|
+
font-style: italic;
|
|
183
|
+
font-size: 3.4em;
|
|
184
|
+
color: var(--primary);
|
|
185
|
+
line-height: 1;
|
|
186
|
+
font-weight: 600;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
.reveal section.dark .stat-hero {
|
|
190
|
+
color: var(--gold-light);
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
.stat-desc {
|
|
194
|
+
font-size: 0.8em;
|
|
195
|
+
color: var(--ink-muted);
|
|
196
|
+
margin-top: 0.3em;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
.reveal section.dark .stat-desc {
|
|
200
|
+
color: rgba(245, 237, 224, 0.7);
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
ul.deer-list {
|
|
204
|
+
list-style: none;
|
|
205
|
+
padding-left: 0;
|
|
206
|
+
margin: 0.5em 0;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
ul.deer-list li {
|
|
210
|
+
position: relative;
|
|
211
|
+
padding-left: 1.5em;
|
|
212
|
+
margin-bottom: 0.65em;
|
|
213
|
+
font-size: 0.88em;
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
ul.deer-list li::before {
|
|
217
|
+
content: "■";
|
|
218
|
+
position: absolute;
|
|
219
|
+
left: 0;
|
|
220
|
+
color: var(--primary);
|
|
221
|
+
font-size: 0.65em;
|
|
222
|
+
top: 0.35em;
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
.reveal section.dark ul.deer-list li::before {
|
|
226
|
+
color: var(--gold-light);
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
.pill {
|
|
230
|
+
display: inline-block;
|
|
231
|
+
padding: 0.25em 0.7em;
|
|
232
|
+
border-radius: 999px;
|
|
233
|
+
font-size: 0.65em;
|
|
234
|
+
font-weight: 600;
|
|
235
|
+
text-transform: uppercase;
|
|
236
|
+
letter-spacing: 0.05em;
|
|
237
|
+
background: rgba(255, 106, 0, 0.12);
|
|
238
|
+
color: var(--primary);
|
|
239
|
+
border: 1px solid rgba(255, 106, 0, 0.3);
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
.reveal section.dark .pill {
|
|
243
|
+
background: rgba(203, 176, 144, 0.15);
|
|
244
|
+
color: var(--gold-light);
|
|
245
|
+
border-color: rgba(203, 176, 144, 0.35);
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
.footer-sub {
|
|
249
|
+
margin-top: 1.8em;
|
|
250
|
+
padding-top: 0.8em;
|
|
251
|
+
border-top: 1px solid var(--border);
|
|
252
|
+
display: flex;
|
|
253
|
+
justify-content: space-between;
|
|
254
|
+
align-items: center;
|
|
255
|
+
font-size: 0.65em;
|
|
256
|
+
color: var(--ink-muted);
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
.reveal section.dark .footer-sub {
|
|
260
|
+
border-top-color: rgba(203, 176, 144, 0.2);
|
|
261
|
+
color: rgba(245, 237, 224, 0.55);
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
.deer-logo-box {
|
|
265
|
+
display: flex;
|
|
266
|
+
align-items: center;
|
|
267
|
+
gap: 0.8em;
|
|
268
|
+
}
|
|
269
|
+
</style>
|
|
270
|
+
</head>
|
|
271
|
+
<body>
|
|
272
|
+
<div class="reveal">
|
|
273
|
+
<div class="slides">
|
|
274
|
+
|
|
275
|
+
<!-- SLAJD 1: COVER -->
|
|
276
|
+
<section class="dark" data-transition="fade">
|
|
277
|
+
<div style="display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:1.5em;">
|
|
278
|
+
<div class="kicker">Deer Design · Architektura Systemowa & AI</div>
|
|
279
|
+
<span class="pill">Wersja 1.1.0 · Node.js 18+</span>
|
|
280
|
+
</div>
|
|
281
|
+
<h1 style="font-style:italic; font-size:2.8em; margin-bottom:0.15em;">DeerTools CLI & MCP Ecosystem</h1>
|
|
282
|
+
<p style="font-size:1.15em; color:var(--gold-light); max-width:85%;">
|
|
283
|
+
Standard narzędziowy i mostek protokołu MCP dla zespołów IT oraz Agentów AI
|
|
284
|
+
</p>
|
|
285
|
+
<hr class="sep">
|
|
286
|
+
<p style="font-size:0.85em; color:rgba(245, 237, 224, 0.8); line-height:1.6; max-width:80%;">
|
|
287
|
+
Kompleksowe omówienie architektury zero-dependency, bezpieczeństwa OAuth 2.0 PKCE, integracji 5 domen Deer oraz lokalnego silnika BaseLinker Hub & MCP Proxy.
|
|
288
|
+
</p>
|
|
289
|
+
<div class="footer-sub">
|
|
290
|
+
<span>Organizacja: <strong>github.com/DeerDesign/deertools-cli</strong></span>
|
|
291
|
+
<span>Paczka: <strong>@deerdesign/deertools</strong></span>
|
|
292
|
+
</div>
|
|
293
|
+
</section>
|
|
294
|
+
|
|
295
|
+
<!-- SLAJD 2: AGENDA -->
|
|
296
|
+
<section data-transition="slide">
|
|
297
|
+
<div class="kicker">Przegląd Zagadnień</div>
|
|
298
|
+
<h2>Agenda Prezentacji</h2>
|
|
299
|
+
<hr class="sep">
|
|
300
|
+
<div class="grid-2">
|
|
301
|
+
<div class="card">
|
|
302
|
+
<div class="card-title">Część I · Fundamenty & Bezpieczeństwo</div>
|
|
303
|
+
<ul class="deer-list">
|
|
304
|
+
<li><strong>Filozofia Zero-Dependency:</strong> czysty silnik Node.js >= 18 bez podatności supply-chain.</li>
|
|
305
|
+
<li><strong>Dystrybucja i instalacja:</strong> global npm, ad-hoc npx, repozytorium GitHub.</li>
|
|
306
|
+
<li><strong>Standard Bezpieczeństwa:</strong> OAuth 2.0 Authorization Code Flow + PKCE S256, izolacja uprawnień 0600.</li>
|
|
307
|
+
</ul>
|
|
308
|
+
</div>
|
|
309
|
+
<div class="card">
|
|
310
|
+
<div class="card-title">Część II · Narzędzia & Agenci AI</div>
|
|
311
|
+
<ul class="deer-list">
|
|
312
|
+
<li><strong>5 domen DeerTools:</strong> Kosztorys, Katalog, Dostawy, Supplier Hub, RenderMind.</li>
|
|
313
|
+
<li><strong>BaseLinker Hub & MCP (v1.1.0):</strong> 204 metody API offline, Token Bucket Rate Limiter, GUI.</li>
|
|
314
|
+
<li><strong>Ekosystem AI:</strong> automatyczna konfiguracja Cursor IDE, Antigravity i Claude Desktop.</li>
|
|
315
|
+
<li><strong>Operacje IT:</strong> komendy <code>doctor</code>, <code>audit</code>, <code>profile</code> i <code>completion</code>.</li>
|
|
316
|
+
</ul>
|
|
317
|
+
</div>
|
|
318
|
+
</div>
|
|
319
|
+
<div class="footer-sub">
|
|
320
|
+
<span>DeerTools CLI · Architektura & IT</span>
|
|
321
|
+
<span>Slajd 2 / 10</span>
|
|
322
|
+
</div>
|
|
323
|
+
</section>
|
|
324
|
+
|
|
325
|
+
<!-- SLAJD 3: FILOZOFIA ZERO-DEPENDENCY -->
|
|
326
|
+
<section data-transition="slide">
|
|
327
|
+
<div class="kicker">Architektura rdzenia</div>
|
|
328
|
+
<h2>Filozofia Zero-Dependency Engine</h2>
|
|
329
|
+
<hr class="sep">
|
|
330
|
+
<div class="grid-3">
|
|
331
|
+
<div class="card">
|
|
332
|
+
<div class="stat-hero">0</div>
|
|
333
|
+
<div class="stat-desc">zewnętrznych zależności w package.json (zero CVE supply-chain)</div>
|
|
334
|
+
</div>
|
|
335
|
+
<div class="card">
|
|
336
|
+
<div class="stat-hero">100%</div>
|
|
337
|
+
<div class="stat-desc">wykorzystanie wbudowanych modułów: node:http, node:crypto, node:fs, node:test</div>
|
|
338
|
+
</div>
|
|
339
|
+
<div class="card">
|
|
340
|
+
<div class="stat-hero">< 50ms</div>
|
|
341
|
+
<div class="stat-desc">błyskawiczny czas startu binarki i natychmiastowy handshake protokołu MCP</div>
|
|
342
|
+
</div>
|
|
343
|
+
</div>
|
|
344
|
+
<div class="card" style="margin-top:1.2em;">
|
|
345
|
+
<div class="card-title">Podwójna rola w ekosystemie IT:</div>
|
|
346
|
+
<ul class="deer-list">
|
|
347
|
+
<li><strong>Dla inżyniera / DevOpsa:</strong> Wygodne CLI do logowania, audytu, przełączania środowisk (staging/prod) i testów healthcheck.</li>
|
|
348
|
+
<li><strong>Dla Agenta AI (Cursor / Antigravity / Claude):</strong> Pełnoprawny serwer MCP (Model Context Protocol 2024-11-05) w trybie stdio lub SSE.</li>
|
|
349
|
+
</ul>
|
|
350
|
+
</div>
|
|
351
|
+
<div class="footer-sub">
|
|
352
|
+
<span>DeerTools CLI · Architektura & IT</span>
|
|
353
|
+
<span>Slajd 3 / 10</span>
|
|
354
|
+
</div>
|
|
355
|
+
</section>
|
|
356
|
+
|
|
357
|
+
<!-- SLAJD 4: INSTALACJA I URUCHOMIENIE -->
|
|
358
|
+
<section data-transition="slide">
|
|
359
|
+
<div class="kicker">Wdrożenie na maszynach deweloperów</div>
|
|
360
|
+
<h2>Instalacja & Metody Uruchomienia</h2>
|
|
361
|
+
<hr class="sep">
|
|
362
|
+
<div class="grid-2">
|
|
363
|
+
<div>
|
|
364
|
+
<h3 style="font-size:1.1em; margin-bottom:0.3em;">1. Instalacja globalna (zalecana dla devów)</h3>
|
|
365
|
+
<pre class="code-block"><code><span class="code-cmd">npm</span> install -g <span class="code-arg">@deerdesign/deertools</span>
|
|
366
|
+
|
|
367
|
+
<span class="code-dim"># Rejestruje 2 aliasy w systemie:</span>
|
|
368
|
+
<span class="code-cmd">deertools</span> --version <span class="code-dim"># 1.1.0</span>
|
|
369
|
+
<span class="code-cmd">deer</span> whoami <span class="code-dim"># skrócona nazwa</span></code></pre>
|
|
370
|
+
|
|
371
|
+
<h3 style="font-size:1.1em; margin-top:0.9em; margin-bottom:0.3em;">2. Uruchomienie ad-hoc (bez instalacji)</h3>
|
|
372
|
+
<pre class="code-block"><code><span class="code-cmd">npx</span> <span class="code-arg">@deerdesign/deertools</span> doctor</code></pre>
|
|
373
|
+
</div>
|
|
374
|
+
|
|
375
|
+
<div>
|
|
376
|
+
<h3 style="font-size:1.1em; margin-bottom:0.3em;">3. Repozytorium źródłowe (GitHub)</h3>
|
|
377
|
+
<pre class="code-block"><code><span class="code-cmd">git</span> clone <span class="code-arg">https://github.com/DeerDesign/deertools-cli.git</span>
|
|
378
|
+
<span class="code-cmd">cd</span> deertools-cli
|
|
379
|
+
<span class="code-cmd">npm</span> test <span class="code-dim"># 31/31 testów zielonych</span>
|
|
380
|
+
<span class="code-cmd">npm</span> link <span class="code-dim"># lokalny symlink deweloperski</span></code></pre>
|
|
381
|
+
|
|
382
|
+
<div class="card" style="margin-top:0.8em; padding:0.9em 1.2em;">
|
|
383
|
+
<div class="card-title">Wymagania systemowe:</div>
|
|
384
|
+
<span class="pill">Node.js >= 18.0.0</span> · macOS, Linux, Windows WSL
|
|
385
|
+
</div>
|
|
386
|
+
</div>
|
|
387
|
+
</div>
|
|
388
|
+
<div class="footer-sub">
|
|
389
|
+
<span>DeerTools CLI · Architektura & IT</span>
|
|
390
|
+
<span>Slajd 4 / 10</span>
|
|
391
|
+
</div>
|
|
392
|
+
</section>
|
|
393
|
+
|
|
394
|
+
<!-- SLAJD 5: BEZPIECZEŃSTWO I OAUTH PKCE -->
|
|
395
|
+
<section class="dark" data-transition="slide">
|
|
396
|
+
<div class="kicker">Standard Bezpieczeństwa RFC 7636</div>
|
|
397
|
+
<h2>Bezpieczeństwo & Model Poświadczeń</h2>
|
|
398
|
+
<hr class="sep">
|
|
399
|
+
<div class="grid-2">
|
|
400
|
+
<div class="card">
|
|
401
|
+
<div class="card-title">Przepływ OAuth 2.0 PKCE S256</div>
|
|
402
|
+
<ul class="deer-list">
|
|
403
|
+
<li>Wygenerowanie kryptograficznego <code>code_verifier</code> (min. 43 znaki) oraz <code>code_challenge</code> SHA-256.</li>
|
|
404
|
+
<li>Serwer loopback na <code>127.0.0.1:3000</code> odbiera jednorazowy kod autoryzacyjny.</li>
|
|
405
|
+
<li>Wymiana kodu na klucz API następuje bezpośrednio w kanale back-channel HTTPS — <strong>klucze nigdy nie pojawiają się w URL ani w historii przeglądarki</strong>.</li>
|
|
406
|
+
</ul>
|
|
407
|
+
</div>
|
|
408
|
+
|
|
409
|
+
<div class="card">
|
|
410
|
+
<div class="card-title">Ochrona kluczy na dysku & CI/CD</div>
|
|
411
|
+
<ul class="deer-list">
|
|
412
|
+
<li>Poświadczenia zapisywane w <code>~/.deertools/credentials.json</code> pod rygorystycznym trybem uprawnień <strong>0600</strong> (tylko właściciel).</li>
|
|
413
|
+
<li>W środowiskach headless i CI/CD: pełna obsługa zmiennych środowiskowych:
|
|
414
|
+
<pre class="code-block" style="margin:0.4em 0;"><code><span class="code-kw">export</span> DEERTOOLS_CATALOG_KEY=<span class="code-val">"..."</span>
|
|
415
|
+
<span class="code-kw">export</span> DEERTOOLS_ESTIMATE_KEY=<span class="code-val">"..."</span></code></pre>
|
|
416
|
+
</li>
|
|
417
|
+
</ul>
|
|
418
|
+
</div>
|
|
419
|
+
</div>
|
|
420
|
+
<div class="footer-sub">
|
|
421
|
+
<span>DeerTools CLI · Architektura & IT</span>
|
|
422
|
+
<span>Slajd 5 / 10</span>
|
|
423
|
+
</div>
|
|
424
|
+
</section>
|
|
425
|
+
|
|
426
|
+
<!-- SLAJD 6: 5 DOMEN PRODUKTOWYCH -->
|
|
427
|
+
<section data-transition="slide">
|
|
428
|
+
<div class="kicker">Zarządzanie Usługami</div>
|
|
429
|
+
<h2>Ekosystem 5 Domen DeerTools</h2>
|
|
430
|
+
<hr class="sep">
|
|
431
|
+
<div class="grid-3" style="gap:1em;">
|
|
432
|
+
<div class="card">
|
|
433
|
+
<div class="card-title">1. Kosztorys</div>
|
|
434
|
+
<p style="font-size:0.8em; color:var(--ink-muted);">ID: <code>estimate</code></p>
|
|
435
|
+
<ul class="deer-list">
|
|
436
|
+
<li>Kalkulacja kosztów wykończenia Smart / Modern / High Life.</li>
|
|
437
|
+
<li>Dynamiczne marże, stawki robocizny i materiałów.</li>
|
|
438
|
+
</ul>
|
|
439
|
+
</div>
|
|
440
|
+
|
|
441
|
+
<div class="card">
|
|
442
|
+
<div class="card-title">2. Katalog</div>
|
|
443
|
+
<p style="font-size:0.8em; color:var(--ink-muted);">ID: <code>catalog</code></p>
|
|
444
|
+
<ul class="deer-list">
|
|
445
|
+
<li>17 000 produktów wykończeniowych z atrybutami.</li>
|
|
446
|
+
<li>Synchronizacja cenników i specyfikacji technicznych.</li>
|
|
447
|
+
</ul>
|
|
448
|
+
</div>
|
|
449
|
+
|
|
450
|
+
<div class="card">
|
|
451
|
+
<div class="card-title">3. Dostawy</div>
|
|
452
|
+
<p style="font-size:0.8em; color:var(--ink-muted);">ID: <code>deliveries</code></p>
|
|
453
|
+
<ul class="deer-list">
|
|
454
|
+
<li>Zarządzanie magazynami, WZ, kurierami i paczkami.</li>
|
|
455
|
+
<li>Automatyczne generowanie protokołów przyjęcia.</li>
|
|
456
|
+
</ul>
|
|
457
|
+
</div>
|
|
458
|
+
</div>
|
|
459
|
+
|
|
460
|
+
<div class="grid-2" style="margin-top:0.9em; gap:1em;">
|
|
461
|
+
<div class="card">
|
|
462
|
+
<div class="card-title">4. Supplier Hub (<code>supplier</code>)</div>
|
|
463
|
+
<ul class="deer-list">
|
|
464
|
+
<li>Łańcuch marżowy, rabaty producenckie, promocje i narzuty regionalne.</li>
|
|
465
|
+
</ul>
|
|
466
|
+
</div>
|
|
467
|
+
|
|
468
|
+
<div class="card">
|
|
469
|
+
<div class="card-title">5. RenderMind (<code>rendermind</code>)</div>
|
|
470
|
+
<ul class="deer-list">
|
|
471
|
+
<li>Generowanie fotorealistycznych renderów AI i analiza szkiców pCon.</li>
|
|
472
|
+
</ul>
|
|
473
|
+
</div>
|
|
474
|
+
</div>
|
|
475
|
+
<div class="footer-sub">
|
|
476
|
+
<span>DeerTools CLI · Architektura & IT</span>
|
|
477
|
+
<span>Slajd 6 / 10</span>
|
|
478
|
+
</div>
|
|
479
|
+
</section>
|
|
480
|
+
|
|
481
|
+
<!-- SLAJD 7: BASELINKER HUB & MCP -->
|
|
482
|
+
<section data-transition="slide">
|
|
483
|
+
<div class="kicker">Nowość w wersji 1.1.0</div>
|
|
484
|
+
<h2>BaseLinker Hub & Proxy MCP</h2>
|
|
485
|
+
<hr class="sep">
|
|
486
|
+
<div class="grid-2">
|
|
487
|
+
<div>
|
|
488
|
+
<div class="card">
|
|
489
|
+
<div class="card-title">Silnik 204 Metod API (Offline Cache)</div>
|
|
490
|
+
<ul class="deer-list">
|
|
491
|
+
<li><strong>93 metody katalogowe:</strong> produkty, relacje, opisy, warianty, zestawy, zdjęcia.</li>
|
|
492
|
+
<li><strong>51 metod zamówień & 21 zwrotów:</strong> pełna obsługa sprzedaży.</li>
|
|
493
|
+
<li><strong>16 metod kurierskich:</strong> etykiety, paczki i protokoły.</li>
|
|
494
|
+
</ul>
|
|
495
|
+
</div>
|
|
496
|
+
<div class="card" style="margin-top:0.8em;">
|
|
497
|
+
<div class="card-title">Token Bucket Rate Limiter</div>
|
|
498
|
+
<p style="font-size:0.82em; color:var(--ink-muted);">
|
|
499
|
+
Sztywny bufor <strong>95 req / 60 sekund</strong> całkowicie zapobiega przekroczeniu limitu 100 req/min w BaseLinkerze i błędom HTTP 429.
|
|
500
|
+
</p>
|
|
501
|
+
</div>
|
|
502
|
+
</div>
|
|
503
|
+
|
|
504
|
+
<div>
|
|
505
|
+
<div class="card">
|
|
506
|
+
<div class="card-title">Lokalny Web Hub & Audyt SSE</div>
|
|
507
|
+
<pre class="code-block"><code><span class="code-cmd">deertools</span> baselinker serve <span class="code-arg">--port 3456</span></code></pre>
|
|
508
|
+
<ul class="deer-list" style="margin-top:0.5em;">
|
|
509
|
+
<li>Lokalny panel Web pod adresem <code>http://127.0.0.1:3456</code>.</li>
|
|
510
|
+
<li>Formularz wprowadzenia i weryfikacji klucza <code>X-BLToken</code>.</li>
|
|
511
|
+
<li>Licznik zapytań na żywo i strumień SSE wywołań Agenta AI.</li>
|
|
512
|
+
<li>Dedykowane narzędzia wysokiego poziomu: relacje produktów, pozycjonowanie zdjęć 0–15, aktualizacje batch do 1000 sztuk.</li>
|
|
513
|
+
</ul>
|
|
514
|
+
</div>
|
|
515
|
+
</div>
|
|
516
|
+
</div>
|
|
517
|
+
<div class="footer-sub">
|
|
518
|
+
<span>DeerTools CLI · Architektura & IT</span>
|
|
519
|
+
<span>Slajd 7 / 10</span>
|
|
520
|
+
</div>
|
|
521
|
+
</section>
|
|
522
|
+
|
|
523
|
+
<!-- SLAJD 8: AGENCI AI & MCP -->
|
|
524
|
+
<section class="dark" data-transition="slide">
|
|
525
|
+
<div class="kicker">Model Context Protocol 2024-11-05</div>
|
|
526
|
+
<h2>Integracja z Agentami AI</h2>
|
|
527
|
+
<hr class="sep">
|
|
528
|
+
<div class="grid-2">
|
|
529
|
+
<div>
|
|
530
|
+
<h3 style="font-size:1.1em; margin-bottom:0.3em;">Automatyczna konfiguracja projektu:</h3>
|
|
531
|
+
<pre class="code-block"><code><span class="code-cmd">deertools</span> mcp install <span class="code-dim"># konfiguruje serwery w IDE</span>
|
|
532
|
+
<span class="code-cmd">deertools</span> skill install all <span class="code-dim"># instaluje instrukcje AI</span></code></pre>
|
|
533
|
+
|
|
534
|
+
<div class="card" style="margin-top:0.8em;">
|
|
535
|
+
<div class="card-title">Ochrona Okna Kontekstowego LLM</div>
|
|
536
|
+
<p style="font-size:0.82em; color:var(--ink-on-d);">
|
|
537
|
+
Domyślnie serwowane jest <strong>15 kluczowych narzędzi</strong> katalogowych + uniwersalne wyszukiwanie <code>bl_search_methods</code> i egzekutor <code>bl_call_api</code>, co chroni bufor tokenów promptu.
|
|
538
|
+
</p>
|
|
539
|
+
</div>
|
|
540
|
+
</div>
|
|
541
|
+
|
|
542
|
+
<div>
|
|
543
|
+
<div class="card">
|
|
544
|
+
<div class="card-title">Wspierane środowiska robocze:</div>
|
|
545
|
+
<ul class="deer-list">
|
|
546
|
+
<li><strong>Cursor IDE:</strong> konfiguracja globalna w <code>~/.cursor/mcp.json</code> oraz projektowa w <code>.cursor/mcp.json</code>.</li>
|
|
547
|
+
<li><strong>Antigravity / Gemini:</strong> integracja z <code>.agents/mcp_config.json</code>.</li>
|
|
548
|
+
<li><strong>Claude Desktop / Ollama:</strong> mostek stdio JSON-RPC przez <code>deertools mcp serve</code>.</li>
|
|
549
|
+
</ul>
|
|
550
|
+
</div>
|
|
551
|
+
</div>
|
|
552
|
+
</div>
|
|
553
|
+
<div class="footer-sub">
|
|
554
|
+
<span>DeerTools CLI · Architektura & IT</span>
|
|
555
|
+
<span>Slajd 8 / 10</span>
|
|
556
|
+
</div>
|
|
557
|
+
</section>
|
|
558
|
+
|
|
559
|
+
<!-- SLAJD 9: DOCTOR, AUDIT, PROFILE -->
|
|
560
|
+
<section data-transition="slide">
|
|
561
|
+
<div class="kicker">Operacje IT & Utrzymanie Środowiska</div>
|
|
562
|
+
<h2>Doctor, Audit & Multi-Profiling</h2>
|
|
563
|
+
<hr class="sep">
|
|
564
|
+
<div class="grid-3">
|
|
565
|
+
<div class="card">
|
|
566
|
+
<div class="card-title">1. deertools doctor</div>
|
|
567
|
+
<p style="font-size:0.8em; color:var(--ink-muted); margin-bottom:0.5em;">Kompletna samodiagnostyka:</p>
|
|
568
|
+
<ul class="deer-list" style="font-size:0.85em;">
|
|
569
|
+
<li>Wersja Node.js i uprawnienia 0600.</li>
|
|
570
|
+
<li>Dostępność portów 3000 i 3456.</li>
|
|
571
|
+
<li>Ping sieciowy do 5 serwisów i BaseLinkera.</li>
|
|
572
|
+
<li>Handshake MCP i stan 204 schematów.</li>
|
|
573
|
+
<li>Flaga <code>--json</code> dla monitoringu CI/CD.</li>
|
|
574
|
+
</ul>
|
|
575
|
+
</div>
|
|
576
|
+
|
|
577
|
+
<div class="card">
|
|
578
|
+
<div class="card-title">2. deertools audit</div>
|
|
579
|
+
<p style="font-size:0.8em; color:var(--ink-muted); margin-bottom:0.5em;">Lokalna czarna skrzynka:</p>
|
|
580
|
+
<ul class="deer-list" style="font-size:0.85em;">
|
|
581
|
+
<li>Zapis każdego zapytania wysłanego przez agenta AI.</li>
|
|
582
|
+
<li>Metoda, parametry, czas odpowiedzi, kod statusu.</li>
|
|
583
|
+
<li><code>deertools audit --limit 50</code></li>
|
|
584
|
+
<li><code>deertools audit --clear</code></li>
|
|
585
|
+
</ul>
|
|
586
|
+
</div>
|
|
587
|
+
|
|
588
|
+
<div class="card">
|
|
589
|
+
<div class="card-title">3. deertools profile</div>
|
|
590
|
+
<p style="font-size:0.8em; color:var(--ink-muted); margin-bottom:0.5em;">Multi-środowisko:</p>
|
|
591
|
+
<ul class="deer-list" style="font-size:0.85em;">
|
|
592
|
+
<li>Izolacja poświadczeń na jedno konto.</li>
|
|
593
|
+
<li><code>deertools profile add staging</code></li>
|
|
594
|
+
<li><code>deertools profile use staging</code></li>
|
|
595
|
+
<li><code>deertools profile list</code></li>
|
|
596
|
+
</ul>
|
|
597
|
+
</div>
|
|
598
|
+
</div>
|
|
599
|
+
<div class="footer-sub">
|
|
600
|
+
<span>DeerTools CLI · Architektura & IT</span>
|
|
601
|
+
<span>Slajd 9 / 10</span>
|
|
602
|
+
</div>
|
|
603
|
+
</section>
|
|
604
|
+
|
|
605
|
+
<!-- SLAJD 10: CLOSING -->
|
|
606
|
+
<section class="dark" data-transition="fade" style="text-align:center;">
|
|
607
|
+
<div class="kicker" style="margin:0 auto 1.2em auto;">Podsumowanie & Dalsze Kroki</div>
|
|
608
|
+
<h1 style="font-style:italic; font-size:3.2em; color:var(--gold-light); margin-bottom:0.2em;">Bezpieczeństwo. Standard. AI.</h1>
|
|
609
|
+
<p style="font-size:1.15em; color:var(--ink-on-d); max-width:70%; margin:0.8em auto 1.5em auto;">
|
|
610
|
+
DeerTools CLI standaryzuje dostęp do usług Deer Design oraz BaseLinkera, eliminując dług technologiczny i gwarantując pełne bezpieczeństwo pracy z Agentami AI.
|
|
611
|
+
</p>
|
|
612
|
+
|
|
613
|
+
<div style="display:inline-flex; gap:1.5em; margin-bottom:1.5em;">
|
|
614
|
+
<span class="code-badge" style="font-size:0.9em; padding:0.4em 0.9em;">git clone https://github.com/DeerDesign/deertools-cli</span>
|
|
615
|
+
<span class="code-badge" style="font-size:0.9em; padding:0.4em 0.9em;">npm install -g @deerdesign/deertools</span>
|
|
616
|
+
</div>
|
|
617
|
+
|
|
618
|
+
<div class="footer-sub" style="justify-content:center; gap:2em;">
|
|
619
|
+
<span>Repozytorium: <strong>github.com/DeerDesign/deertools-cli</strong></span>
|
|
620
|
+
<span>Kontakt: <strong>Deer Design AI Architecture Team</strong></span>
|
|
621
|
+
</div>
|
|
622
|
+
</section>
|
|
623
|
+
|
|
624
|
+
</div>
|
|
625
|
+
</div>
|
|
626
|
+
|
|
627
|
+
<script src="https://cdn.jsdelivr.net/npm/reveal.js@5.1.0/dist/reveal.js"></script>
|
|
628
|
+
<script>
|
|
629
|
+
Reveal.initialize({
|
|
630
|
+
width: 1280,
|
|
631
|
+
height: 720,
|
|
632
|
+
margin: 0.04,
|
|
633
|
+
minScale: 0.2,
|
|
634
|
+
maxScale: 2.0,
|
|
635
|
+
controls: true,
|
|
636
|
+
progress: true,
|
|
637
|
+
center: true,
|
|
638
|
+
hash: true,
|
|
639
|
+
slideNumber: 'c/t',
|
|
640
|
+
transition: 'slide',
|
|
641
|
+
backgroundTransition: 'fade'
|
|
642
|
+
});
|
|
643
|
+
</script>
|
|
644
|
+
</body>
|
|
645
|
+
</html>
|