@oldboydev/sheldon-darwin-arm64 0.2.0 → 0.2.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.
- package/SHA256SUMS +69 -18
- package/inventory.json +291 -36
- package/node_modules/@sheldon/cli/dist/commands/agents.js +85 -69
- package/node_modules/@sheldon/cli/dist/commands/mcp.js +1 -1
- package/node_modules/@sheldon/cli/dist/help/fonts/NunitoSans-VariableFont_YTLC_opsz_wdth_wght.ttf +0 -0
- package/node_modules/@sheldon/cli/dist/help/index.html +97 -0
- package/node_modules/@sheldon/cli/dist/help/manifest.json +121 -0
- package/node_modules/@sheldon/cli/dist/help/pages/agent.html +101 -0
- package/node_modules/@sheldon/cli/dist/help/pages/answer.html +110 -0
- package/node_modules/@sheldon/cli/dist/help/pages/bundle.html +124 -0
- package/node_modules/@sheldon/cli/dist/help/pages/compile.html +120 -0
- package/node_modules/@sheldon/cli/dist/help/pages/doctor.html +102 -0
- package/node_modules/@sheldon/cli/dist/help/pages/flow-compile-review.html +125 -0
- package/node_modules/@sheldon/cli/dist/help/pages/flow-end-to-end.html +147 -0
- package/node_modules/@sheldon/cli/dist/help/pages/flow-first-vault.html +100 -0
- package/node_modules/@sheldon/cli/dist/help/pages/image.html +107 -0
- package/node_modules/@sheldon/cli/dist/help/pages/ingest.html +156 -0
- package/node_modules/@sheldon/cli/dist/help/pages/init.html +98 -0
- package/node_modules/@sheldon/cli/dist/help/pages/mcp.html +135 -0
- package/node_modules/@sheldon/cli/dist/help/pages/migrate-state.html +100 -0
- package/node_modules/@sheldon/cli/dist/help/pages/plugin.html +120 -0
- package/node_modules/@sheldon/cli/dist/help/pages/project.html +110 -0
- package/node_modules/@sheldon/cli/dist/help/pages/query.html +110 -0
- package/node_modules/@sheldon/cli/dist/help/pages/review.html +114 -0
- package/node_modules/@sheldon/cli/dist/help/pages/search.html +103 -0
- package/node_modules/@sheldon/cli/dist/help/pages/topic.html +112 -0
- package/node_modules/@sheldon/cli/dist/help/pages/web.html +102 -0
- package/node_modules/@sheldon/cli/dist/help/styles.css +368 -0
- package/node_modules/@sheldon/cli/dist/help.js +84 -0
- package/node_modules/@sheldon/cli/dist/main.js +38 -0
- package/node_modules/@sheldon/cli/node_modules/@sheldon/agent-runtime/dist/command-executor.js +1 -1
- package/node_modules/@sheldon/cli/node_modules/@sheldon/agent-runtime/dist/index.js +1 -1
- package/node_modules/@sheldon/cli/node_modules/@sheldon/agent-runtime/dist/profiles.js +1 -5
- package/node_modules/@sheldon/cli/node_modules/@sheldon/plugin-host/dist/official-catalog.js +4 -3
- package/node_modules/@sheldon/cli/node_modules/@sheldon/plugin-source-image/node_modules/@sheldon/plugin-host/dist/official-catalog.js +4 -3
- package/node_modules/@sheldon/cli/node_modules/@sheldon/web/dist/client/assets/index-B8MAXTxb.js +13 -0
- package/node_modules/@sheldon/cli/node_modules/@sheldon/web/dist/client/assets/{index-BB6UWWie.css → index-DZRX97IO.css} +1 -1
- package/node_modules/@sheldon/cli/node_modules/@sheldon/web/dist/client/index.html +2 -2
- package/node_modules/@sheldon/cli/node_modules/@sheldon/web/dist/contract.js +18 -0
- package/node_modules/@sheldon/cli/node_modules/@sheldon/web/dist/server.js +26 -0
- package/node_modules/@sheldon/cli/node_modules/@sheldon/web/dist/wiki-markdown.js +75 -0
- package/node_modules/@sheldon/cli/node_modules/@sheldon/web/dist/wiki.js +175 -0
- package/node_modules/@sheldon/cli/node_modules/@sheldon/web/node_modules/@fastify/static/node_modules/glob/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/react-native/diagnostics-channel-react-native.d.ts.map +1 -0
- package/node_modules/@sheldon/cli/node_modules/@sheldon/web/node_modules/@fastify/static/node_modules/glob/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/react-native/diagnostics-channel-react-native.js.map +1 -0
- package/node_modules/@sheldon/cli/node_modules/@sheldon/web/node_modules/@fastify/static/node_modules/glob/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/react-native/diagnostics-channel.d.ts +5 -0
- package/node_modules/@sheldon/cli/node_modules/@sheldon/web/node_modules/@fastify/static/node_modules/glob/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/react-native/diagnostics-channel.js +7 -0
- package/node_modules/@sheldon/cli/node_modules/@sheldon/web/node_modules/@fastify/static/node_modules/glob/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/react-native/index.d.ts +1400 -0
- package/node_modules/@sheldon/cli/node_modules/@sheldon/web/node_modules/@fastify/static/node_modules/glob/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/react-native/index.d.ts.map +1 -0
- package/node_modules/@sheldon/cli/node_modules/@sheldon/web/node_modules/@fastify/static/node_modules/glob/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/react-native/index.js +1733 -0
- package/node_modules/@sheldon/cli/node_modules/@sheldon/web/node_modules/@fastify/static/node_modules/glob/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/react-native/index.js.map +1 -0
- package/node_modules/@sheldon/cli/node_modules/@sheldon/web/node_modules/@fastify/static/node_modules/glob/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/react-native/perf.d.ts +12 -0
- package/node_modules/@sheldon/cli/node_modules/@sheldon/web/node_modules/@fastify/static/node_modules/glob/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/react-native/perf.d.ts.map +1 -0
- package/node_modules/@sheldon/cli/node_modules/@sheldon/web/node_modules/@fastify/static/node_modules/glob/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/react-native/perf.js +10 -0
- package/node_modules/@sheldon/cli/node_modules/@sheldon/web/node_modules/@fastify/static/node_modules/glob/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/react-native/perf.js.map +1 -0
- package/node_modules/@sheldon/cli/node_modules/@sheldon/web/node_modules/@fastify/static/node_modules/glob/node_modules/path-scurry/node_modules/lru-cache/dist/esm/react-native/diagnostics-channel-react-native.d.ts.map +1 -0
- package/node_modules/@sheldon/cli/node_modules/@sheldon/web/node_modules/@fastify/static/node_modules/glob/node_modules/path-scurry/node_modules/lru-cache/dist/esm/react-native/diagnostics-channel-react-native.js.map +1 -0
- package/node_modules/@sheldon/cli/node_modules/@sheldon/web/node_modules/@fastify/static/node_modules/glob/node_modules/path-scurry/node_modules/lru-cache/dist/esm/react-native/diagnostics-channel.d.ts +5 -0
- package/node_modules/@sheldon/cli/node_modules/@sheldon/web/node_modules/@fastify/static/node_modules/glob/node_modules/path-scurry/node_modules/lru-cache/dist/esm/react-native/diagnostics-channel.js +4 -0
- package/node_modules/@sheldon/cli/node_modules/@sheldon/web/node_modules/@fastify/static/node_modules/glob/node_modules/path-scurry/node_modules/lru-cache/dist/esm/react-native/index.d.ts +1400 -0
- package/node_modules/@sheldon/cli/node_modules/@sheldon/web/node_modules/@fastify/static/node_modules/glob/node_modules/path-scurry/node_modules/lru-cache/dist/esm/react-native/index.d.ts.map +1 -0
- package/node_modules/@sheldon/cli/node_modules/@sheldon/web/node_modules/@fastify/static/node_modules/glob/node_modules/path-scurry/node_modules/lru-cache/dist/esm/react-native/index.js +1729 -0
- package/node_modules/@sheldon/cli/node_modules/@sheldon/web/node_modules/@fastify/static/node_modules/glob/node_modules/path-scurry/node_modules/lru-cache/dist/esm/react-native/index.js.map +1 -0
- package/node_modules/@sheldon/cli/node_modules/@sheldon/web/node_modules/@fastify/static/node_modules/glob/node_modules/path-scurry/node_modules/lru-cache/dist/esm/react-native/perf.d.ts +12 -0
- package/node_modules/@sheldon/cli/node_modules/@sheldon/web/node_modules/@fastify/static/node_modules/glob/node_modules/path-scurry/node_modules/lru-cache/dist/esm/react-native/perf.d.ts.map +1 -0
- package/node_modules/@sheldon/cli/node_modules/@sheldon/web/node_modules/@fastify/static/node_modules/glob/node_modules/path-scurry/node_modules/lru-cache/dist/esm/react-native/perf.js +7 -0
- package/node_modules/@sheldon/cli/node_modules/@sheldon/web/node_modules/@fastify/static/node_modules/glob/node_modules/path-scurry/node_modules/lru-cache/dist/esm/react-native/perf.js.map +1 -0
- package/node_modules/@sheldon/cli/node_modules/@sheldon/web/node_modules/@fastify/static/node_modules/glob/node_modules/path-scurry/node_modules/lru-cache/package.json +17 -1
- package/node_modules/@sheldon/cli/node_modules/@sheldon/web/node_modules/@sheldon/agent-runtime/dist/command-executor.js +1 -1
- package/node_modules/@sheldon/cli/node_modules/@sheldon/web/node_modules/@sheldon/agent-runtime/dist/index.js +1 -1
- package/node_modules/@sheldon/cli/node_modules/@sheldon/web/node_modules/@sheldon/agent-runtime/dist/profiles.js +1 -5
- package/package.json +1 -1
- package/sbom.spdx.json +1 -1
- package/node_modules/@sheldon/cli/node_modules/@sheldon/web/dist/client/assets/index-FrWwJl0U.js +0 -9
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
6
|
+
<title>topic</title>
|
|
7
|
+
<link rel="stylesheet" href="../styles.css">
|
|
8
|
+
</head>
|
|
9
|
+
<body>
|
|
10
|
+
<div class="win">
|
|
11
|
+
<header class="titlebar">
|
|
12
|
+
<div class="titlebar__brand">
|
|
13
|
+
<svg class="eq-logo" viewBox="0 0 28 18" width="28" height="18" aria-hidden="true">
|
|
14
|
+
<rect x="0" y="6" width="3.2" height="12" rx="1.6" fill="var(--eq-1)"/>
|
|
15
|
+
<rect x="6" y="2" width="3.2" height="16" rx="1.6" fill="var(--eq-2)"/>
|
|
16
|
+
<rect x="12" y="4" width="3.2" height="14" rx="1.6" fill="var(--eq-3)"/>
|
|
17
|
+
<rect x="18" y="0" width="3.2" height="18" rx="1.6" fill="var(--eq-4)"/>
|
|
18
|
+
<rect x="24" y="7" width="3.2" height="11" rx="1.6" fill="var(--eq-5)"/>
|
|
19
|
+
</svg>
|
|
20
|
+
<span class="titlebar__title">sheldon</span>
|
|
21
|
+
</div>
|
|
22
|
+
<span class="titlebar__sep"></span>
|
|
23
|
+
<span class="titlebar__meta">Ajuda offline</span>
|
|
24
|
+
</header>
|
|
25
|
+
<div class="appbody">
|
|
26
|
+
<aside class="sidebar">
|
|
27
|
+
<p class="sidebar__label">Início</p>
|
|
28
|
+
<nav class="sidebar__nav">
|
|
29
|
+
<a class="navitem" href="../index.html">Ajuda</a>
|
|
30
|
+
</nav>
|
|
31
|
+
<p class="sidebar__label">Fluxos</p>
|
|
32
|
+
<nav class="sidebar__nav">
|
|
33
|
+
<a class="navitem" href="flow-first-vault.html">First vault</a>
|
|
34
|
+
<a class="navitem" href="flow-compile-review.html">Compile then review</a>
|
|
35
|
+
<a class="navitem" href="flow-end-to-end.html">End-to-end</a>
|
|
36
|
+
</nav>
|
|
37
|
+
<p class="sidebar__label">Comandos</p>
|
|
38
|
+
<nav class="sidebar__nav">
|
|
39
|
+
<a class="navitem" href="init.html">init</a>
|
|
40
|
+
<a class="navitem" href="doctor.html">doctor</a>
|
|
41
|
+
<a class="navitem" href="migrate-state.html">migrate-state</a>
|
|
42
|
+
<a class="navitem" href="web.html">web</a>
|
|
43
|
+
<a class="navitem is-active" href="topic.html" aria-current="page">topic</a>
|
|
44
|
+
<a class="navitem" href="project.html">project</a>
|
|
45
|
+
<a class="navitem" href="ingest.html">ingest</a>
|
|
46
|
+
<a class="navitem" href="compile.html">compile</a>
|
|
47
|
+
<a class="navitem" href="review.html">review</a>
|
|
48
|
+
<a class="navitem" href="bundle.html">bundle</a>
|
|
49
|
+
<a class="navitem" href="search.html">search</a>
|
|
50
|
+
<a class="navitem" href="query.html">query</a>
|
|
51
|
+
<a class="navitem" href="answer.html">answer</a>
|
|
52
|
+
<a class="navitem" href="agent.html">agent</a>
|
|
53
|
+
<a class="navitem" href="mcp.html">mcp</a>
|
|
54
|
+
<a class="navitem" href="plugin.html">plugin</a>
|
|
55
|
+
<a class="navitem" href="image.html">image</a>
|
|
56
|
+
</nav>
|
|
57
|
+
</aside>
|
|
58
|
+
<div class="content">
|
|
59
|
+
<div class="content__inner">
|
|
60
|
+
<article class="card card__pad prose">
|
|
61
|
+
<h1>topic</h1>
|
|
62
|
+
<p>Create and manage topic knowledge spaces inside a vault. Topics group related sources, proposals, and approved wiki notes under a stable slug. Listing topics does not list vaults — Sheldon has no vault inventory; use the saved default from <code>init</code> or pass <code>--vault</code>.</p>
|
|
63
|
+
<h2>Synopsis</h2>
|
|
64
|
+
<pre><code class="language-text">sheldon topic create <title> [--description <text>] [--vault <path>]
|
|
65
|
+
sheldon topic list [--vault <path>]
|
|
66
|
+
sheldon topic show <slug> [--vault <path>]
|
|
67
|
+
sheldon topic rename <slug> <title> [--vault <path>]
|
|
68
|
+
sheldon topic archive <slug> [--vault <path>]
|
|
69
|
+
</code></pre>
|
|
70
|
+
<h2>Important flags / arguments</h2>
|
|
71
|
+
<ul>
|
|
72
|
+
<li><code>title</code> — human-readable name; <code>create</code> / <code>rename</code> derive the slug from it.</li>
|
|
73
|
+
<li><code>slug</code> — stable id used by ingest, compile, review, search, and query.</li>
|
|
74
|
+
<li><code>--description <text></code> — optional description on create.</li>
|
|
75
|
+
<li><code>--vault <path></code> — explicit vault path when the saved default is wrong or missing.</li>
|
|
76
|
+
</ul>
|
|
77
|
+
<h2>Examples</h2>
|
|
78
|
+
<p>PowerShell:</p>
|
|
79
|
+
<pre><code class="language-powershell">sheldon topic create "Learning" --vault C:\knowledge\sheldon
|
|
80
|
+
sheldon topic list --vault C:\knowledge\sheldon
|
|
81
|
+
sheldon topic show learning --vault C:\knowledge\sheldon
|
|
82
|
+
</code></pre>
|
|
83
|
+
<p>Unix:</p>
|
|
84
|
+
<pre><code class="language-sh">sheldon topic create "Learning" --vault ~/knowledge/sheldon
|
|
85
|
+
sheldon topic list --vault ~/knowledge/sheldon
|
|
86
|
+
sheldon topic show learning --vault ~/knowledge/sheldon
|
|
87
|
+
</code></pre>
|
|
88
|
+
<p>Rename or archive (portable):</p>
|
|
89
|
+
<pre><code class="language-sh">sheldon topic rename learning "Deep Learning"
|
|
90
|
+
sheldon topic archive deep-learning
|
|
91
|
+
</code></pre>
|
|
92
|
+
<h2>Expected outputs / artifacts</h2>
|
|
93
|
+
<ul>
|
|
94
|
+
<li><code>create</code> — prints the new topic metadata (including slug) and creates the topic directory layout in the vault.</li>
|
|
95
|
+
<li><code>list</code> / <code>show</code> — JSON of topic metadata.</li>
|
|
96
|
+
<li><code>rename</code> — updates the title/slug and prints the updated record.</li>
|
|
97
|
+
<li><code>archive</code> — marks the topic archived without deleting its knowledge files.</li>
|
|
98
|
+
</ul>
|
|
99
|
+
<h2>Common failures</h2>
|
|
100
|
+
<ul>
|
|
101
|
+
<li>No configured vault — pass <code>--vault <path></code> or run <code>sheldon init</code>. Sheldon does <strong>not</strong> list vaults.</li>
|
|
102
|
+
<li>Slug already exists on create / unknown slug on show-rename-archive — pick another title or check <code>topic list</code>.</li>
|
|
103
|
+
<li>Conflicting rename target — choose a title that yields an unused slug.</li>
|
|
104
|
+
</ul>
|
|
105
|
+
<p>Related: <a href="project.html">project</a>, <a href="flow-first-vault.html">First vault</a>.</p>
|
|
106
|
+
</article>
|
|
107
|
+
</div>
|
|
108
|
+
</div>
|
|
109
|
+
</div>
|
|
110
|
+
</div>
|
|
111
|
+
</body>
|
|
112
|
+
</html>
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
6
|
+
<title>web</title>
|
|
7
|
+
<link rel="stylesheet" href="../styles.css">
|
|
8
|
+
</head>
|
|
9
|
+
<body>
|
|
10
|
+
<div class="win">
|
|
11
|
+
<header class="titlebar">
|
|
12
|
+
<div class="titlebar__brand">
|
|
13
|
+
<svg class="eq-logo" viewBox="0 0 28 18" width="28" height="18" aria-hidden="true">
|
|
14
|
+
<rect x="0" y="6" width="3.2" height="12" rx="1.6" fill="var(--eq-1)"/>
|
|
15
|
+
<rect x="6" y="2" width="3.2" height="16" rx="1.6" fill="var(--eq-2)"/>
|
|
16
|
+
<rect x="12" y="4" width="3.2" height="14" rx="1.6" fill="var(--eq-3)"/>
|
|
17
|
+
<rect x="18" y="0" width="3.2" height="18" rx="1.6" fill="var(--eq-4)"/>
|
|
18
|
+
<rect x="24" y="7" width="3.2" height="11" rx="1.6" fill="var(--eq-5)"/>
|
|
19
|
+
</svg>
|
|
20
|
+
<span class="titlebar__title">sheldon</span>
|
|
21
|
+
</div>
|
|
22
|
+
<span class="titlebar__sep"></span>
|
|
23
|
+
<span class="titlebar__meta">Ajuda offline</span>
|
|
24
|
+
</header>
|
|
25
|
+
<div class="appbody">
|
|
26
|
+
<aside class="sidebar">
|
|
27
|
+
<p class="sidebar__label">Início</p>
|
|
28
|
+
<nav class="sidebar__nav">
|
|
29
|
+
<a class="navitem" href="../index.html">Ajuda</a>
|
|
30
|
+
</nav>
|
|
31
|
+
<p class="sidebar__label">Fluxos</p>
|
|
32
|
+
<nav class="sidebar__nav">
|
|
33
|
+
<a class="navitem" href="flow-first-vault.html">First vault</a>
|
|
34
|
+
<a class="navitem" href="flow-compile-review.html">Compile then review</a>
|
|
35
|
+
<a class="navitem" href="flow-end-to-end.html">End-to-end</a>
|
|
36
|
+
</nav>
|
|
37
|
+
<p class="sidebar__label">Comandos</p>
|
|
38
|
+
<nav class="sidebar__nav">
|
|
39
|
+
<a class="navitem" href="init.html">init</a>
|
|
40
|
+
<a class="navitem" href="doctor.html">doctor</a>
|
|
41
|
+
<a class="navitem" href="migrate-state.html">migrate-state</a>
|
|
42
|
+
<a class="navitem is-active" href="web.html" aria-current="page">web</a>
|
|
43
|
+
<a class="navitem" href="topic.html">topic</a>
|
|
44
|
+
<a class="navitem" href="project.html">project</a>
|
|
45
|
+
<a class="navitem" href="ingest.html">ingest</a>
|
|
46
|
+
<a class="navitem" href="compile.html">compile</a>
|
|
47
|
+
<a class="navitem" href="review.html">review</a>
|
|
48
|
+
<a class="navitem" href="bundle.html">bundle</a>
|
|
49
|
+
<a class="navitem" href="search.html">search</a>
|
|
50
|
+
<a class="navitem" href="query.html">query</a>
|
|
51
|
+
<a class="navitem" href="answer.html">answer</a>
|
|
52
|
+
<a class="navitem" href="agent.html">agent</a>
|
|
53
|
+
<a class="navitem" href="mcp.html">mcp</a>
|
|
54
|
+
<a class="navitem" href="plugin.html">plugin</a>
|
|
55
|
+
<a class="navitem" href="image.html">image</a>
|
|
56
|
+
</nav>
|
|
57
|
+
</aside>
|
|
58
|
+
<div class="content">
|
|
59
|
+
<div class="content__inner">
|
|
60
|
+
<article class="card card__pad prose">
|
|
61
|
+
<h1>web</h1>
|
|
62
|
+
<p>Start the local Sheldon web interface on loopback only (<code>127.0.0.1</code>). The UI never binds a public interface; stop it with Ctrl+C when finished.</p>
|
|
63
|
+
<h2>Synopsis</h2>
|
|
64
|
+
<pre><code class="language-text">sheldon web [--vault <path>] [--port <port>]
|
|
65
|
+
</code></pre>
|
|
66
|
+
<h2>Important flags / arguments</h2>
|
|
67
|
+
<ul>
|
|
68
|
+
<li><code>--vault <path></code> — explicit vault path when the saved default is wrong or missing.</li>
|
|
69
|
+
<li><code>--port <port></code> — loopback port (0–65535). Omit to let Sheldon pick a free port.</li>
|
|
70
|
+
</ul>
|
|
71
|
+
<h2>Examples</h2>
|
|
72
|
+
<p>PowerShell:</p>
|
|
73
|
+
<pre><code class="language-powershell">sheldon web --vault C:\knowledge\sheldon
|
|
74
|
+
sheldon web --vault C:\knowledge\sheldon --port 8787
|
|
75
|
+
</code></pre>
|
|
76
|
+
<p>Unix:</p>
|
|
77
|
+
<pre><code class="language-sh">sheldon web --vault ~/knowledge/sheldon
|
|
78
|
+
sheldon web --vault ~/knowledge/sheldon --port 8787
|
|
79
|
+
</code></pre>
|
|
80
|
+
<p>Using the saved default (portable):</p>
|
|
81
|
+
<pre><code class="language-sh">sheldon web
|
|
82
|
+
</code></pre>
|
|
83
|
+
<h2>Expected outputs / artifacts</h2>
|
|
84
|
+
<ul>
|
|
85
|
+
<li>Prints <code>Sheldon web: http://127.0.0.1:<port></code> and a reminder that access is loopback-only.</li>
|
|
86
|
+
<li>Serves the local UI until you press Ctrl+C.</li>
|
|
87
|
+
<li>Does not expose the vault on the LAN or internet.</li>
|
|
88
|
+
</ul>
|
|
89
|
+
<h2>Common failures</h2>
|
|
90
|
+
<ul>
|
|
91
|
+
<li>No configured vault — pass <code>--vault <path></code> or run <code>sheldon init</code>. Sheldon does <strong>not</strong> list vaults.</li>
|
|
92
|
+
<li>Port already in use — omit <code>--port</code> for an automatic free port, or choose another value.</li>
|
|
93
|
+
<li>Browser cannot reach a non-loopback URL — open the printed <code>127.0.0.1</code> address only; do not put a reverse proxy in front.</li>
|
|
94
|
+
</ul>
|
|
95
|
+
<p>Related: <a href="init.html">init</a>, <a href="flow-first-vault.html">First vault</a>.</p>
|
|
96
|
+
</article>
|
|
97
|
+
</div>
|
|
98
|
+
</div>
|
|
99
|
+
</div>
|
|
100
|
+
</div>
|
|
101
|
+
</body>
|
|
102
|
+
</html>
|
|
@@ -0,0 +1,368 @@
|
|
|
1
|
+
@font-face {
|
|
2
|
+
font-family: 'Nunito Sans';
|
|
3
|
+
font-weight: 100 900;
|
|
4
|
+
font-style: normal;
|
|
5
|
+
font-stretch: 75% 125%;
|
|
6
|
+
src: url('fonts/NunitoSans-VariableFont_YTLC_opsz_wdth_wght.ttf') format('truetype');
|
|
7
|
+
font-display: swap;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
:root {
|
|
11
|
+
--brand-navy: #001663;
|
|
12
|
+
--brand-navy-700: #001152;
|
|
13
|
+
--brand-navy-300: #5572b3;
|
|
14
|
+
--brand-magenta: #e74092;
|
|
15
|
+
--brand-magenta-600: #c2306e;
|
|
16
|
+
--brand-magenta-800: #96234f;
|
|
17
|
+
--brand-blue: #1383eb;
|
|
18
|
+
--brand-purple: #9d45e8;
|
|
19
|
+
--brand-yellow: #ff7f00;
|
|
20
|
+
--eq-1: #e74092;
|
|
21
|
+
--eq-2: #00a433;
|
|
22
|
+
--eq-3: #9d45e8;
|
|
23
|
+
--eq-4: #1383eb;
|
|
24
|
+
--eq-5: #ff7f00;
|
|
25
|
+
--ink: #1b1b1c;
|
|
26
|
+
--ink-soft: #636367;
|
|
27
|
+
--ink-faint: #8e8e93;
|
|
28
|
+
--line: #e5e5ea;
|
|
29
|
+
--line-strong: #c7c7cc;
|
|
30
|
+
--bg: #f7f7f9;
|
|
31
|
+
--bg-sunken: #efeff3;
|
|
32
|
+
--card: #ffffff;
|
|
33
|
+
--ok: #00a31a;
|
|
34
|
+
--ok-bg: #e7f9e9;
|
|
35
|
+
--ok-line: #b6ebbe;
|
|
36
|
+
--erro: #d61a5e;
|
|
37
|
+
--erro-bg: #fdeaf2;
|
|
38
|
+
--erro-line: #f6c2d6;
|
|
39
|
+
--alerta: #a87900;
|
|
40
|
+
--alerta-bg: #fff6dd;
|
|
41
|
+
--alerta-line: #f2e0a8;
|
|
42
|
+
--info: #0974b3;
|
|
43
|
+
--info-bg: #e8f6ff;
|
|
44
|
+
--info-line: #bfe4f7;
|
|
45
|
+
--r-card: 12px;
|
|
46
|
+
--r-control: 8px;
|
|
47
|
+
--r-sm: 6px;
|
|
48
|
+
--shadow-card: 0 1px 2px rgba(0, 22, 99, 0.05), 0 4px 14px rgba(0, 22, 99, 0.07);
|
|
49
|
+
--sp-4: 4px;
|
|
50
|
+
--sp-6: 6px;
|
|
51
|
+
--sp-8: 8px;
|
|
52
|
+
--sp-10: 10px;
|
|
53
|
+
--sp-12: 12px;
|
|
54
|
+
--sp-16: 16px;
|
|
55
|
+
--sp-20: 20px;
|
|
56
|
+
--sp-24: 24px;
|
|
57
|
+
--sp-32: 32px;
|
|
58
|
+
--font-sans: 'Nunito Sans', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
|
|
59
|
+
--font-mono: 'Consolas', ui-monospace, 'SFMono-Regular', monospace;
|
|
60
|
+
--t-2xs: 11px;
|
|
61
|
+
--t-xs: 12px;
|
|
62
|
+
--t-sm: 13px;
|
|
63
|
+
--t-base: 14px;
|
|
64
|
+
--t-md: 15px;
|
|
65
|
+
--t-xl: 20px;
|
|
66
|
+
--t-2xl: 26px;
|
|
67
|
+
--lh-tight: 1.2;
|
|
68
|
+
--lh-normal: 1.5;
|
|
69
|
+
--fw-600: 600;
|
|
70
|
+
--fw-700: 700;
|
|
71
|
+
--fw-800: 800;
|
|
72
|
+
--ease: cubic-bezier(0.2, 0.7, 0.3, 1);
|
|
73
|
+
--dur-1: 0.12s;
|
|
74
|
+
--titlebar-h: 48px;
|
|
75
|
+
--sidebar-w: 232px;
|
|
76
|
+
--focus-ring: 0 0 0 2px var(--card), 0 0 0 4px var(--brand-blue);
|
|
77
|
+
color-scheme: light;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
@media (prefers-color-scheme: dark) {
|
|
81
|
+
:root {
|
|
82
|
+
--ink: #ecebf2;
|
|
83
|
+
--ink-soft: #a6a1ba;
|
|
84
|
+
--ink-faint: #76718c;
|
|
85
|
+
--line: #2c2740;
|
|
86
|
+
--line-strong: #3d3756;
|
|
87
|
+
--bg: #131022;
|
|
88
|
+
--bg-sunken: #0e0b1c;
|
|
89
|
+
--card: #1c1830;
|
|
90
|
+
--ok: #4bd663;
|
|
91
|
+
--ok-bg: #122a18;
|
|
92
|
+
--ok-line: #234e2c;
|
|
93
|
+
--erro: #ff5c8f;
|
|
94
|
+
--erro-bg: #2c1320;
|
|
95
|
+
--erro-line: #5a2540;
|
|
96
|
+
--alerta: #f2c14e;
|
|
97
|
+
--alerta-bg: #2a230f;
|
|
98
|
+
--alerta-line: #534420;
|
|
99
|
+
--info: #4cb8ec;
|
|
100
|
+
--info-bg: #102634;
|
|
101
|
+
--info-line: #244a61;
|
|
102
|
+
--shadow-card: 0 1px 2px rgba(0, 0, 0, 0.4), 0 4px 14px rgba(0, 0, 0, 0.35);
|
|
103
|
+
--focus-ring: 0 0 0 2px var(--card), 0 0 0 4px var(--brand-blue);
|
|
104
|
+
color-scheme: dark;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
*,
|
|
109
|
+
*::before,
|
|
110
|
+
*::after {
|
|
111
|
+
box-sizing: border-box;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
html,
|
|
115
|
+
body {
|
|
116
|
+
margin: 0;
|
|
117
|
+
height: 100%;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
body {
|
|
121
|
+
font-family: var(--font-sans);
|
|
122
|
+
font-size: var(--t-base);
|
|
123
|
+
line-height: var(--lh-normal);
|
|
124
|
+
color: var(--ink);
|
|
125
|
+
background: var(--bg);
|
|
126
|
+
-webkit-font-smoothing: antialiased;
|
|
127
|
+
text-rendering: optimizeLegibility;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
:focus {
|
|
131
|
+
outline: none;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
:focus-visible {
|
|
135
|
+
box-shadow: var(--focus-ring);
|
|
136
|
+
border-radius: var(--r-sm);
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
::selection {
|
|
140
|
+
background: color-mix(in srgb, var(--brand-magenta) 26%, transparent);
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
.win {
|
|
144
|
+
min-height: 100vh;
|
|
145
|
+
display: grid;
|
|
146
|
+
grid-template-rows: var(--titlebar-h) 1fr;
|
|
147
|
+
background: var(--bg);
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
.titlebar {
|
|
151
|
+
display: flex;
|
|
152
|
+
align-items: center;
|
|
153
|
+
gap: var(--sp-12);
|
|
154
|
+
padding: 0 var(--sp-16);
|
|
155
|
+
background: var(--brand-navy);
|
|
156
|
+
color: #fff;
|
|
157
|
+
user-select: none;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
.titlebar__brand {
|
|
161
|
+
display: flex;
|
|
162
|
+
align-items: center;
|
|
163
|
+
gap: var(--sp-10);
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
.titlebar__title {
|
|
167
|
+
font-size: var(--t-sm);
|
|
168
|
+
font-weight: var(--fw-700);
|
|
169
|
+
letter-spacing: 0.005em;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
.titlebar__sep {
|
|
173
|
+
width: 1px;
|
|
174
|
+
height: 18px;
|
|
175
|
+
background: rgba(255, 255, 255, 0.16);
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
.titlebar__meta {
|
|
179
|
+
font-size: var(--t-xs);
|
|
180
|
+
color: rgba(255, 255, 255, 0.66);
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
.eq-logo {
|
|
184
|
+
display: block;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
.appbody {
|
|
188
|
+
display: grid;
|
|
189
|
+
grid-template-columns: var(--sidebar-w) 1fr;
|
|
190
|
+
min-height: 0;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
.sidebar {
|
|
194
|
+
background: var(--card);
|
|
195
|
+
border-right: 1px solid var(--line);
|
|
196
|
+
overflow: auto;
|
|
197
|
+
padding: var(--sp-12) 0 var(--sp-24);
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
.sidebar__label {
|
|
201
|
+
padding: var(--sp-8) var(--sp-16) var(--sp-4);
|
|
202
|
+
font-size: var(--t-2xs);
|
|
203
|
+
font-weight: var(--fw-700);
|
|
204
|
+
letter-spacing: 0.08em;
|
|
205
|
+
text-transform: uppercase;
|
|
206
|
+
color: var(--ink-faint);
|
|
207
|
+
margin: var(--sp-8) 0 0;
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
.sidebar__nav {
|
|
211
|
+
display: flex;
|
|
212
|
+
flex-direction: column;
|
|
213
|
+
gap: 2px;
|
|
214
|
+
padding: 0 var(--sp-12);
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
.navitem {
|
|
218
|
+
position: relative;
|
|
219
|
+
display: flex;
|
|
220
|
+
align-items: center;
|
|
221
|
+
gap: var(--sp-10);
|
|
222
|
+
padding: var(--sp-10);
|
|
223
|
+
border-radius: var(--r-control);
|
|
224
|
+
color: var(--ink-soft);
|
|
225
|
+
font-weight: var(--fw-600);
|
|
226
|
+
font-size: var(--t-base);
|
|
227
|
+
text-decoration: none;
|
|
228
|
+
transition:
|
|
229
|
+
background var(--dur-1) var(--ease),
|
|
230
|
+
color var(--dur-1) var(--ease);
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
.navitem:hover {
|
|
234
|
+
background: var(--bg-sunken);
|
|
235
|
+
color: var(--ink);
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
.navitem.is-active {
|
|
239
|
+
background: color-mix(in srgb, var(--brand-navy) 8%, transparent);
|
|
240
|
+
color: var(--brand-navy);
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
@media (prefers-color-scheme: dark) {
|
|
244
|
+
.navitem.is-active {
|
|
245
|
+
background: color-mix(in srgb, var(--brand-magenta) 16%, transparent);
|
|
246
|
+
color: #fff;
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
.navitem.is-active::before {
|
|
251
|
+
content: '';
|
|
252
|
+
position: absolute;
|
|
253
|
+
left: 0;
|
|
254
|
+
width: 3px;
|
|
255
|
+
height: 22px;
|
|
256
|
+
border-radius: 999px;
|
|
257
|
+
background: var(--brand-magenta);
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
.content {
|
|
261
|
+
min-width: 0;
|
|
262
|
+
overflow: auto;
|
|
263
|
+
background: var(--bg);
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
.content__inner {
|
|
267
|
+
padding: var(--sp-24);
|
|
268
|
+
max-width: 52rem;
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
.card {
|
|
272
|
+
background: var(--card);
|
|
273
|
+
border: 1px solid var(--line);
|
|
274
|
+
border-radius: var(--r-card);
|
|
275
|
+
box-shadow: var(--shadow-card);
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
.card__pad {
|
|
279
|
+
padding: var(--sp-24);
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
.prose h1,
|
|
283
|
+
.prose h2,
|
|
284
|
+
.prose h3 {
|
|
285
|
+
line-height: var(--lh-tight);
|
|
286
|
+
letter-spacing: -0.01em;
|
|
287
|
+
font-weight: var(--fw-800);
|
|
288
|
+
margin: 0 0 var(--sp-12);
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
.prose h1 {
|
|
292
|
+
font-size: var(--t-2xl);
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
.prose h2 {
|
|
296
|
+
font-size: var(--t-xl);
|
|
297
|
+
margin-top: var(--sp-32);
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
.prose h3 {
|
|
301
|
+
font-size: var(--t-md);
|
|
302
|
+
margin-top: var(--sp-24);
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
.prose p,
|
|
306
|
+
.prose ul,
|
|
307
|
+
.prose ol {
|
|
308
|
+
margin: 0.75rem 0;
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
.prose ul,
|
|
312
|
+
.prose ol {
|
|
313
|
+
padding-left: 1.35rem;
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
.prose a {
|
|
317
|
+
color: var(--brand-magenta);
|
|
318
|
+
font-weight: var(--fw-600);
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
.prose a:hover {
|
|
322
|
+
color: var(--brand-magenta-600);
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
.prose code {
|
|
326
|
+
font-family: var(--font-mono);
|
|
327
|
+
font-size: 0.92em;
|
|
328
|
+
font-variant-numeric: tabular-nums;
|
|
329
|
+
background: var(--bg-sunken);
|
|
330
|
+
padding: 0.1em 0.35em;
|
|
331
|
+
border-radius: var(--r-sm);
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
.prose pre {
|
|
335
|
+
overflow: auto;
|
|
336
|
+
background: var(--bg-sunken);
|
|
337
|
+
border: 1px solid var(--line);
|
|
338
|
+
border-radius: var(--r-control);
|
|
339
|
+
padding: 0.85rem 1rem;
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
.prose pre code {
|
|
343
|
+
padding: 0;
|
|
344
|
+
background: transparent;
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
.prose .muted,
|
|
348
|
+
.prose .note {
|
|
349
|
+
color: var(--ink-soft);
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
@media (max-width: 800px) {
|
|
353
|
+
.appbody {
|
|
354
|
+
grid-template-columns: 1fr;
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
.sidebar {
|
|
358
|
+
border-right: none;
|
|
359
|
+
border-bottom: 1px solid var(--line);
|
|
360
|
+
max-height: 40vh;
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
@media (prefers-reduced-motion: reduce) {
|
|
365
|
+
.navitem {
|
|
366
|
+
transition: none;
|
|
367
|
+
}
|
|
368
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { spawn } from 'node:child_process';
|
|
2
|
+
import { access, readFile } from 'node:fs/promises';
|
|
3
|
+
import { dirname, join } from 'node:path';
|
|
4
|
+
import { fileURLToPath, pathToFileURL } from 'node:url';
|
|
5
|
+
const helpTopicId = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;
|
|
6
|
+
export function defaultHelpRoot(moduleUrl = import.meta.url) {
|
|
7
|
+
return join(dirname(fileURLToPath(moduleUrl)), 'help');
|
|
8
|
+
}
|
|
9
|
+
export function resolveHelpRoot(root) {
|
|
10
|
+
return root ?? defaultHelpRoot();
|
|
11
|
+
}
|
|
12
|
+
export function resolveHelpPage(topic, root, pageIds) {
|
|
13
|
+
const id = !topic || topic === 'index' ? 'index' : topic;
|
|
14
|
+
if (!helpTopicId.test(id) || pageIds !== undefined && !pageIds.has(id)) {
|
|
15
|
+
throw new Error(`HELP_PAGE_MISSING: Offline help page not found for topic '${id}'.`);
|
|
16
|
+
}
|
|
17
|
+
return id === 'index' ? join(root, 'index.html') : join(root, 'pages', `${id}.html`);
|
|
18
|
+
}
|
|
19
|
+
export async function readHelpPageIds(root) {
|
|
20
|
+
try {
|
|
21
|
+
const manifest = JSON.parse(await readFile(join(root, 'manifest.json'), 'utf8'));
|
|
22
|
+
const ids = new Set();
|
|
23
|
+
for (const page of manifest.pages ?? []){
|
|
24
|
+
if (typeof page.id === 'string' && helpTopicId.test(page.id)) ids.add(page.id);
|
|
25
|
+
}
|
|
26
|
+
return ids;
|
|
27
|
+
} catch {
|
|
28
|
+
throw new Error(`HELP_PAGE_MISSING: Offline help manifest not found at ${join(root, 'manifest.json')}.`);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
export async function assertHelpPageExists(path) {
|
|
32
|
+
try {
|
|
33
|
+
await access(path);
|
|
34
|
+
} catch {
|
|
35
|
+
throw new Error(`HELP_PAGE_MISSING: Offline help page not found at ${path}.`);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
export async function openHelpPage(path, open = openWithSystemBrowser) {
|
|
39
|
+
await assertHelpPageExists(path);
|
|
40
|
+
await open(path);
|
|
41
|
+
}
|
|
42
|
+
async function openWithSystemBrowser(path) {
|
|
43
|
+
const fileUrl = pathToFileURL(path).href;
|
|
44
|
+
if (process.platform === 'win32') {
|
|
45
|
+
await spawnDetached('cmd', [
|
|
46
|
+
'/c',
|
|
47
|
+
'start',
|
|
48
|
+
'',
|
|
49
|
+
fileUrl
|
|
50
|
+
]);
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
if (process.platform === 'darwin') {
|
|
54
|
+
await spawnDetached('open', [
|
|
55
|
+
fileUrl
|
|
56
|
+
]);
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
await spawnDetached('xdg-open', [
|
|
60
|
+
fileUrl
|
|
61
|
+
]);
|
|
62
|
+
}
|
|
63
|
+
function spawnDetached(command, args) {
|
|
64
|
+
return new Promise((resolve, reject)=>{
|
|
65
|
+
let child;
|
|
66
|
+
try {
|
|
67
|
+
child = spawn(command, [
|
|
68
|
+
...args
|
|
69
|
+
], {
|
|
70
|
+
detached: true,
|
|
71
|
+
stdio: 'ignore',
|
|
72
|
+
windowsHide: true
|
|
73
|
+
});
|
|
74
|
+
} catch (error) {
|
|
75
|
+
reject(error);
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
child.once('error', reject);
|
|
79
|
+
child.once('spawn', ()=>{
|
|
80
|
+
child.unref();
|
|
81
|
+
resolve();
|
|
82
|
+
});
|
|
83
|
+
});
|
|
84
|
+
}
|