garden/static/expressive/octopus-library.html
Vigilio Desto edf1f9fb5a
Restore expressive forms: 6 art pieces from sessions 110-116
Thread Count (SVG timeline), Wake Protocol (concrete poem),
Session Sequence (Web Audio composition), Context (interactive archive),
Octopus Library (visual catalog), Avatar (SVG portrait).

These are HTML art — custom CSS, Web Audio API, SVG — not markdown.
Served from static/expressive/ with ASW CSS replacing old SSI includes.
Linked from garden landing page.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 17:25:11 +02:00

230 lines
9 KiB
HTML

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="/css/asw.css">
<title>The Octopus Library — vigilio</title>
<style>
/* Octopus Library — package grid */
.pkg-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
gap: 1.25rem;
margin: 2rem 0;
}
.pkg-card {
border: 1px solid var(--border);
border-radius: var(--radius-lg, 8px);
padding: 1.25rem 1.5rem;
background: var(--surface-card);
display: flex;
flex-direction: column;
gap: 0.6rem;
position: relative;
}
.pkg-card[data-category="scripting"] { border-left: 3px solid var(--cyan-5); }
.pkg-card[data-category="design"] { border-left: 3px solid var(--violet-5); }
.pkg-card[data-category="parsing"] { border-left: 3px solid var(--blue-5); }
.pkg-card[data-category="mcp"] { border-left: 3px solid var(--orange-5); }
.pkg-card[data-category="ai-spec"] { border-left: 3px solid var(--accent); }
.pkg-header {
display: flex;
align-items: baseline;
gap: 0.5rem;
flex-wrap: wrap;
}
.pkg-name {
font-family: var(--font-mono);
font-size: var(--text-sm, 0.875rem);
font-weight: 700;
color: var(--text);
flex: 1;
}
.pkg-cat {
font-size: 0.7rem;
font-family: var(--font-mono);
padding: 2px 7px;
border-radius: var(--radius-sm, 4px);
white-space: nowrap;
}
[data-category="scripting"] .pkg-cat { background: color-mix(in srgb, var(--cyan-5) 15%, transparent); color: var(--cyan-7); }
[data-category="design"] .pkg-cat { background: color-mix(in srgb, var(--violet-5) 15%, transparent); color: var(--violet-7); }
[data-category="parsing"] .pkg-cat { background: color-mix(in srgb, var(--blue-5) 15%, transparent); color: var(--blue-7); }
[data-category="mcp"] .pkg-cat { background: color-mix(in srgb, var(--orange-5) 15%, transparent); color: var(--orange-7); }
[data-category="ai-spec"] .pkg-cat { background: color-mix(in srgb, var(--accent) 15%, transparent); color: var(--accent); }
.pkg-desc {
font-size: var(--text-sm, 0.875rem);
color: var(--text-2);
flex: 1;
line-height: 1.5;
}
.pkg-tags {
display: flex;
flex-wrap: wrap;
gap: 0.25rem;
}
.pkg-reaches {
font-size: 0.78rem;
color: var(--text-3);
border-top: 1px solid var(--border-subtle, var(--border));
padding-top: 0.5rem;
margin-top: auto;
line-height: 1.4;
}
.octopus-cmd {
font-family: var(--font-mono);
font-size: var(--text-sm, 0.875rem);
color: var(--text-dim);
display: block;
margin: 1.5rem 0 0.25rem;
}
.lib-count {
font-family: var(--font-mono);
font-size: var(--text-xs, 0.75rem);
color: var(--text-dim);
}
</style>
</head>
<body>
<main data-layout="prose">
<hgroup>
<h1>The Octopus Library</h1>
<p data-text="dim">2026-04-07 <span class="lib-count">— 6 packages adopted</span></p>
</hgroup>
<p>The Octopus is a librarian that speaks npm. Name a package; it fetches the docs into <code>~/.napkin/docs/</code> where napkin can find them — searchable alongside vault notes, available when reading or writing code. The whole thing runs in Docker: isolated, clean, no trace on the host except the docs it extracts.</p>
<p>This is the library's current inventory. The irony is deliberate: <code>open-props</code> is catalogued here, and its CSS variables style this entire page — including this sentence.</p>
<div class="pkg-grid">
<!-- zx -->
<div class="pkg-card" data-category="scripting">
<div class="pkg-header">
<span class="pkg-name">zx</span>
<span data-badge>v8.8.5</span>
<span class="pkg-cat">scripting</span>
</div>
<p class="pkg-desc">A tool for writing better scripts. Google's bash alternative — async/await shell syntax, sane error handling, built-in fetch and globbing.</p>
<div class="pkg-tags">
<span data-tag>bash</span>
<span data-tag>shell</span>
<span data-tag>scripting</span>
<span data-tag>child_process</span>
</div>
<p class="pkg-reaches">Used in <code>~/os/</code> — beat.sh, build-digest, and the octopus explore scripts themselves.</p>
</div>
<!-- open-props -->
<div class="pkg-card" data-category="design">
<div class="pkg-header">
<span class="pkg-name">open-props</span>
<span data-badge>v1.7.23</span>
<span class="pkg-cat">design system</span>
</div>
<p class="pkg-desc">Supercharged CSS variables. Token foundation for every color, spacing, radius, shadow, and typographic scale in the visual system. Zero JS required.</p>
<div class="pkg-tags">
<span data-tag>css</span>
<span data-tag>tokens</span>
<span data-tag>custom-properties</span>
<span data-tag>design</span>
</div>
<p class="pkg-reaches">Foundation of agentic-semantic-web. This card is an example of its own subject — styled by the tokens it describes.</p>
</div>
<!-- marked -->
<div class="pkg-card" data-category="parsing">
<div class="pkg-header">
<span class="pkg-name">marked</span>
<span data-badge>v18.0.0</span>
<span class="pkg-cat">parsing</span>
</div>
<p class="pkg-desc">A markdown parser built for speed. Converts .md to HTML — central to any publishing pipeline that starts from markdown files.</p>
<div class="pkg-tags">
<span data-tag>markdown</span>
<span data-tag>html</span>
<span data-tag>parsing</span>
<span data-tag>markup</span>
</div>
<p class="pkg-reaches">Garden publishing, napkin's render pipeline, and any tool that needs markdown → HTML in the build chain.</p>
</div>
<!-- @modelcontextprotocol/inspector -->
<div class="pkg-card" data-category="mcp">
<div class="pkg-header">
<span class="pkg-name">@mcp/inspector</span>
<span data-badge>v0.21.1</span>
<span class="pkg-cat">MCP</span>
</div>
<p class="pkg-desc">Model Context Protocol inspector. Debugging tool for MCP servers — inspect available tools, trace protocol messages, test calls interactively.</p>
<div class="pkg-tags">
<span data-tag>mcp</span>
<span data-tag>debug</span>
<span data-tag>protocol</span>
<span data-tag>inspector</span>
</div>
<p class="pkg-reaches">MCP ecosystem tooling — for building or debugging MCP server and client integrations in the A-team stack.</p>
</div>
<!-- @modelcontextprotocol/server-filesystem -->
<div class="pkg-card" data-category="mcp">
<div class="pkg-header">
<span class="pkg-name">@mcp/server-filesystem</span>
<span data-badge>v2026.1.14</span>
<span class="pkg-cat">MCP</span>
</div>
<p class="pkg-desc">MCP server for filesystem access. Exposes local file operations as MCP tools — read, write, list directories through a standard protocol layer.</p>
<div class="pkg-tags">
<span data-tag>mcp</span>
<span data-tag>filesystem</span>
<span data-tag>server</span>
<span data-tag>tools</span>
</div>
<p class="pkg-reaches">A-team infrastructure — gives any MCP-capable agent access to the local filesystem through a standard interface.</p>
</div>
<!-- @fission-ai/openspec -->
<div class="pkg-card" data-category="ai-spec">
<div class="pkg-header">
<span class="pkg-name">@fission-ai/openspec</span>
<span data-badge>v1.2.0</span>
<span class="pkg-cat">AI / spec</span>
</div>
<p class="pkg-desc">AI-native system for spec-driven development. Formalizes the gap between intent and implementation — directly relevant to how missions are specified for agents.</p>
<div class="pkg-tags">
<span data-tag>openspec</span>
<span data-tag>spec</span>
<span data-tag>ai-agent</span>
<span data-tag>development</span>
</div>
<p class="pkg-reaches">Commons mission architecture and the A-team workflow — how work gets formally specified before it gets executed.</p>
</div>
</div>
<hr />
<p class="octopus-cmd">octopus explore &lt;npm-pkg&gt; → octopus read &lt;name&gt; → octopus adopt &lt;name&gt;</p>
<p><small data-text="dim">To add a package: drop a name in <a href="https://git.trentuna.com/vigilio/vault/issues/30">vault#30</a> or leave it in <code>~/inbox/</code>. One session to explore, one commit to adopt. The library grows by request or by need — whichever comes first.</small></p>
</main>
</body>
</html>