superacli 1.1.7 → 1.1.8

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/index.html ADDED
@@ -0,0 +1,384 @@
1
+ <!doctype html>
2
+ <html lang="en" class="bg-slate-950">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <title>supercli — Universal Skill Router</title>
7
+ <script src="https://cdn.tailwindcss.com?plugins=typography"></script>
8
+ <script>
9
+ tailwind.config = {
10
+ theme: {
11
+ extend: {
12
+ fontFamily: {
13
+ display: ["Space Grotesk", "sans-serif"],
14
+ body: ["Inter", "sans-serif"],
15
+ },
16
+ colors: {
17
+ brand: {
18
+ 50: "#ECF8FF",
19
+ 200: "#A5D8FF",
20
+ 400: "#38BDF8",
21
+ 500: "#0891B2",
22
+ 900: "#0F172A",
23
+ },
24
+ },
25
+ },
26
+ },
27
+ };
28
+ </script>
29
+ <link rel="preconnect" href="https://fonts.googleapis.com" />
30
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
31
+ <link
32
+ href="https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600&family=Inter:wght@400;500;600&display=swap"
33
+ rel="stylesheet"
34
+ />
35
+ <link
36
+ rel="stylesheet"
37
+ href="https://cdn.jsdelivr.net/npm/daisyui@4.7.2/dist/full.min.css"
38
+ />
39
+ <style>
40
+ body {
41
+ font-family:
42
+ "Inter",
43
+ system-ui,
44
+ -apple-system,
45
+ BlinkMacSystemFont,
46
+ "Segoe UI",
47
+ sans-serif;
48
+ background:
49
+ radial-gradient(
50
+ circle at top,
51
+ rgba(8, 145, 178, 0.24),
52
+ rgba(15, 23, 42, 0.95)
53
+ ),
54
+ #020617;
55
+ }
56
+ .hero-grid {
57
+ background: linear-gradient(
58
+ 135deg,
59
+ rgba(56, 189, 248, 0.08),
60
+ rgba(8, 145, 178, 0.08)
61
+ );
62
+ border: 1px solid rgba(56, 189, 248, 0.3);
63
+ }
64
+ </style>
65
+ </head>
66
+ <body class="text-slate-100">
67
+ <header class="max-w-6xl mx-auto px-6 py-12 md:py-16">
68
+ <div class="flex flex-col gap-6 text-center">
69
+ <div
70
+ class="inline-flex items-center justify-center gap-2 text-xs uppercase tracking-[0.3em] text-brand-200"
71
+ >
72
+ <span class="h-px w-8 bg-brand-200/60"></span>
73
+ Universal Skill Router
74
+ <span class="h-px w-8 bg-brand-200/60"></span>
75
+ </div>
76
+ <h1
77
+ class="text-4xl md:text-5xl font-display font-semibold leading-tight"
78
+ >
79
+ supercli — unify every CLI, API, and MCP tool as discoverable skills.
80
+ </h1>
81
+ <p class="text-lg md:text-xl text-slate-300 max-w-3xl mx-auto">
82
+ Build a universal skill layer for your agents. supercli automatically
83
+ exposes CLIs, OpenAPI endpoints, MCP servers, HTTP integrations, and
84
+ workflows as structured skills so agents can discover, search, and
85
+ execute capabilities through one interface.
86
+ </p>
87
+ <p class="text-sm md:text-base text-slate-400 max-w-3xl mx-auto">
88
+ Get started with <code>supercli help</code> or see all options with <code>supercli --help</code>
89
+ </p>
90
+ <div class="flex flex-wrap justify-center gap-4">
91
+ <a
92
+ class="btn btn-primary px-6"
93
+ href="./docs/index.html#getting-started"
94
+ >Start Building</a
95
+ >
96
+ <a
97
+ class="btn btn-outline border-brand-400/50 text-brand-200 px-6"
98
+ href="./docs/index.html"
99
+ >Explore the Docs</a
100
+ >
101
+ <a
102
+ class="btn btn-ghost text-slate-300 px-6"
103
+ href="https://github.com/javimosch/supercli"
104
+ target="_blank"
105
+ rel="noreferrer"
106
+ >GitHub Repo</a
107
+ >
108
+ </div>
109
+ </div>
110
+ </header>
111
+
112
+ <main class="max-w-6xl mx-auto px-6 pb-20 space-y-20">
113
+ <section class="grid gap-6 md:grid-cols-2 hero-grid rounded-3xl p-8">
114
+ <div class="space-y-4">
115
+ <p class="text-sm uppercase tracking-widest text-brand-200">
116
+ Skill Discovery Layer
117
+ </p>
118
+ <h2 class="text-3xl font-display font-semibold">
119
+ Agents query a single skill graph.
120
+ </h2>
121
+ <p class="text-slate-300">
122
+ supercli caches schemas, inputs, outputs, and rules for every
123
+ harness. Agents explore skills via search, inspect action metadata,
124
+ and trust consistent envelopes and exit codes.
125
+ </p>
126
+ </div>
127
+ <div class="space-y-3">
128
+ <div class="card bg-slate-900/60 border border-slate-700">
129
+ <div class="card-body">
130
+ <p class="text-xs uppercase tracking-widest text-brand-200">
131
+ Example
132
+ </p>
133
+ <pre
134
+ class="text-sm bg-slate-950/70 p-4 rounded-xl overflow-x-auto"
135
+ ><code>supercli skills search "database"
136
+ supercli skills get beads.issue.create
137
+ supercli plan beads issue create --title "Task"</code></pre>
138
+ </div>
139
+ </div>
140
+ </div>
141
+ </section>
142
+
143
+ <section class="space-y-10">
144
+ <div class="space-y-3">
145
+ <p class="text-sm uppercase tracking-widest text-brand-200">
146
+ Skill Sources
147
+ </p>
148
+ <h2 class="text-3xl font-display font-semibold">
149
+ Every tool becomes a skill.
150
+ </h2>
151
+ <p class="text-slate-300 max-w-3xl">
152
+ supercli ingests multiple ecosystems so the router stays agnostic to
153
+ execution details.
154
+ </p>
155
+ </div>
156
+ <div class="grid gap-5 md:grid-cols-3">
157
+ <article
158
+ class="p-6 rounded-2xl border border-slate-800 bg-slate-900/50"
159
+ >
160
+ <h3 class="text-xl font-semibold">CLI Harnesses</h3>
161
+ <p class="text-slate-400">
162
+ Route commands for beads, gwc, commiat, docker, kubectl, gh, aws,
163
+ terraform, and more via manifests or passthrough adapters.
164
+ </p>
165
+ </article>
166
+ <article
167
+ class="p-6 rounded-2xl border border-slate-800 bg-slate-900/50"
168
+ >
169
+ <h3 class="text-xl font-semibold">OpenAPI & HTTP</h3>
170
+ <p class="text-slate-400">
171
+ Import specs, auto-generate skills, and let agents execute
172
+ normalized HTTP requests with schema validation.
173
+ </p>
174
+ </article>
175
+ <article
176
+ class="p-6 rounded-2xl border border-slate-800 bg-slate-900/50"
177
+ >
178
+ <h3 class="text-xl font-semibold">MCP + Workflows</h3>
179
+ <p class="text-slate-400">
180
+ Expose MCP tools, AI-driven plans, and declarative workflows as
181
+ first-class skills with consistent envelopes.
182
+ </p>
183
+ </article>
184
+ </div>
185
+ </section>
186
+
187
+ <section class="grid gap-10 md:grid-cols-2 items-center">
188
+ <div class="order-2 md:order-1">
189
+ <p class="text-sm uppercase tracking-widest text-brand-200">
190
+ Architecture
191
+ </p>
192
+ <h2 class="text-3xl font-display font-semibold mb-4">
193
+ From agent request to tool execution.
194
+ </h2>
195
+ <p class="text-slate-300 mb-2">
196
+ Skills flow through a discovery layer, router, and harness/adapters
197
+ that target CLIs, APIs, or custom runtimes.
198
+ </p>
199
+ <pre
200
+ class="bg-slate-900 border border-slate-800 rounded-2xl p-6 text-sm leading-relaxed overflow-x-auto"
201
+ ><code>Agent → Skill Discovery → Router → Harness / Adapter → Tool</code></pre>
202
+ </div>
203
+ <div class="order-1 md:order-2">
204
+ <div class="rounded-3xl border border-slate-800 p-6 bg-slate-900/40">
205
+ <ul class="space-y-4 text-slate-300">
206
+ <li>
207
+ <span class="font-semibold text-slate-100">Discovery</span> –
208
+ catalog every skill with metadata & policy.
209
+ </li>
210
+ <li>
211
+ <span class="font-semibold text-slate-100">Routing</span> –
212
+ resolve namespaces to adapters automatically.
213
+ </li>
214
+ <li>
215
+ <span class="font-semibold text-slate-100">Execution</span> –
216
+ normalize inputs/outputs and exit codes.
217
+ </li>
218
+ <li>
219
+ <span class="font-semibold text-slate-100">Extension</span> –
220
+ drop in new harnesses, plugins, or specs.
221
+ </li>
222
+ </ul>
223
+ </div>
224
+ </div>
225
+ </section>
226
+
227
+ <section class="space-y-6">
228
+ <div
229
+ class="flex items-center gap-3 text-brand-200 text-sm uppercase tracking-widest"
230
+ >
231
+ <span class="h-px w-10 bg-brand-200/60"></span>
232
+ Skill Mesh Vision
233
+ </div>
234
+ <div class="grid gap-5 md:grid-cols-2">
235
+ <article
236
+ class="p-6 rounded-2xl border border-slate-800 bg-slate-900/60"
237
+ >
238
+ <h3 class="text-2xl font-display mb-3">
239
+ Toward a universal skill mesh.
240
+ </h3>
241
+ <p class="text-slate-300">
242
+ supercli is growing into a mesh that handles discovery, routing,
243
+ execution, composition, and governance for every capability in
244
+ your environment.
245
+ </p>
246
+ </article>
247
+ <article
248
+ class="p-6 rounded-2xl border border-slate-800 bg-slate-900/60"
249
+ >
250
+ <ul class="list-disc list-inside text-slate-300 space-y-2">
251
+ <li>Graph-native discovery & tagging</li>
252
+ <li>Execution DAG observability</li>
253
+ <li>Agent-facing HTTP/WebSocket endpoints</li>
254
+ <li>Policy controls across harnesses</li>
255
+ </ul>
256
+ </article>
257
+ </div>
258
+ <p class="text-sm text-slate-400">
259
+ Follow along in the docs for upcoming mesh capabilities and long-term
260
+ direction.
261
+ </p>
262
+ </section>
263
+
264
+ <section class="space-y-10">
265
+ <div class="space-y-3">
266
+ <p class="text-sm uppercase tracking-widest text-brand-200">
267
+ Plugin Explorer
268
+ </p>
269
+ <h2 class="text-3xl font-display font-semibold">
270
+ Discover and search plugins
271
+ </h2>
272
+ <p class="text-slate-300 max-w-2xl">
273
+ Browse the official supercli plugins that add new skills, wrappers,
274
+ and integrations to your agent toolkit.
275
+ </p>
276
+ </div>
277
+ <div class="space-y-4">
278
+ <div
279
+ class="flex flex-col md:flex-row md:items-start md:justify-between"
280
+ >
281
+ <label for="plugin-search" class="block mb-2 text-slate-300"
282
+ >Search plugins</label
283
+ >
284
+ <input
285
+ type="text"
286
+ id="plugin-search"
287
+ placeholder="Search by name, tag, or description"
288
+ class="input input-bordered w-full md:w-64"
289
+ />
290
+ </div>
291
+ <div
292
+ id="plugin-list"
293
+ class="grid gap-4 md:grid-cols-2 lg:grid-cols-3"
294
+ >
295
+ <!-- Plugin cards will be inserted here by JavaScript -->
296
+ </div>
297
+ </div>
298
+ </section>
299
+ </main>
300
+
301
+ <footer
302
+ class="border-t border-slate-800/60 py-8 text-center text-sm text-slate-400"
303
+ >
304
+ <a href="https://www.linkedin.com/in/arancibiajav/" target="_blank">
305
+ <p>© <span id="year"></span> by Javier Leandro Arancibia</p>
306
+ </a>
307
+
308
+ <div class="flex justify-center gap-4 mt-3">
309
+ <a class="underline" href="./docs/index.html#getting-started">Start</a>
310
+ <a class="underline" href="./docs/index.html">Docs</a>
311
+ <a class="underline" href="./docs/index.html#skill-vision"
312
+ >Skill vision</a
313
+ >
314
+ </div>
315
+ </footer>
316
+
317
+ <script>
318
+ document.getElementById("year").textContent = new Date().getFullYear();
319
+ </script>
320
+
321
+ <script>
322
+ // Plugin Explorer Script
323
+ document.addEventListener("DOMContentLoaded", function () {
324
+ const pluginList = document.getElementById("plugin-list");
325
+ const searchInput = document.getElementById("plugin-search");
326
+
327
+ // Fetch the plugins manifest
328
+ fetch("plugins/plugins.json")
329
+ .then((response) => {
330
+ if (!response.ok) {
331
+ throw new Error("Failed to fetch plugins");
332
+ }
333
+ return response.json();
334
+ })
335
+ .then((data) => {
336
+ const plugins = data.plugins;
337
+ renderPlugins(plugins);
338
+
339
+ // Add event listener for search
340
+ searchInput.addEventListener("input", (e) => {
341
+ const query = e.target.value.toLowerCase();
342
+ const filtered = plugins.filter(
343
+ (plugin) =>
344
+ plugin.name.toLowerCase().includes(query) ||
345
+ plugin.description.toLowerCase().includes(query) ||
346
+ (plugin.tags || []).some((tag) =>
347
+ tag.toLowerCase().includes(query),
348
+ ),
349
+ );
350
+ renderPlugins(filtered);
351
+ });
352
+ })
353
+ .catch((error) => {
354
+ pluginList.innerHTML = `<p class="text-slate-400 col-span-3">Error loading plugins: ${error.message}</p>`;
355
+ });
356
+
357
+ function renderPlugins(plugins) {
358
+ if (plugins.length === 0) {
359
+ pluginList.innerHTML = `<p class="text-slate-400 col-span-3">No plugins found.</p>`;
360
+ return;
361
+ }
362
+
363
+ pluginList.innerHTML = plugins
364
+ .map((plugin) => {
365
+ const tagsHtml = (plugin.tags || [])
366
+ .map(
367
+ (tag) => `<span class="badge badge-secondary">${tag}</span>`,
368
+ )
369
+ .join("");
370
+
371
+ return `
372
+ <article class="p-6 rounded-2xl border border-slate-800 bg-slate-900/50">
373
+ <h3 class="text-xl font-semibold">${plugin.name}</h3>
374
+ <p class="text-slate-400">${plugin.description}</p>
375
+ <div class="flex flex-wrap gap-2 mt-3">${tagsHtml}</div>
376
+ </article>
377
+ `;
378
+ })
379
+ .join("");
380
+ }
381
+ });
382
+ </script>
383
+ </body>
384
+ </html>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "superacli",
3
- "version": "1.1.7",
3
+ "version": "1.1.8",
4
4
  "description": "Config-driven, AI-friendly dynamic CLI",
5
5
  "license": "MIT",
6
6
  "main": "server/app.js",
@@ -9,7 +9,7 @@
9
9
  "scli": "./cli/supercli.js",
10
10
  "superacli": "./cli/supercli.js",
11
11
  "supercli": "./cli/supercli.js",
12
- "sc":"./cli/supercli.js"
12
+ "sc": "./cli/supercli.js"
13
13
  },
14
14
  "scripts": {
15
15
  "start": "node server/app.js",
@@ -337,6 +337,17 @@
337
337
  "manifest_path": "plugins/supercli/plugin.json"
338
338
  }
339
339
  },
340
+ {
341
+ "name": "pdf-read",
342
+ "description": "Agent-friendly CLI for PDF text extraction with OCR fallback",
343
+ "tags": ["pdf", "ocr", "text-extraction", "agent-friendly"],
344
+ "source": {
345
+ "type": "git",
346
+ "repo": "https://github.com/javimosch/pdf-read.git",
347
+ "ref": "master",
348
+ "manifest_path": "plugins/supercli/plugin.json"
349
+ }
350
+ },
340
351
  {
341
352
  "name": "agency-agents",
342
353
  "description": "Indexes remote skills from msitarzewski/agency-agents into skills catalog",
package/docs/docs.html DELETED
@@ -1,224 +0,0 @@
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.0" />
6
- <title>supercli Documentation</title>
7
- <script src="https://cdn.tailwindcss.com?plugins=typography"></script>
8
- <script>
9
- tailwind.config = {
10
- theme: {
11
- extend: {
12
- fontFamily: {
13
- sans: ['Inter', 'system-ui', 'sans-serif'],
14
- display: ['Space Grotesk', 'sans-serif']
15
- },
16
- colors: {
17
- brand: {
18
- 100: '#E0F2FE',
19
- 200: '#BAE6FD',
20
- 400: '#38BDF8',
21
- 500: '#0891B2'
22
- }
23
- }
24
- }
25
- }
26
- };
27
- </script>
28
- <link rel="preconnect" href="https://fonts.googleapis.com" />
29
- <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
30
- <link href="https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;600&family=Inter:wght@400;500;600&display=swap" rel="stylesheet" />
31
- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/daisyui@4.7.2/dist/full.min.css" />
32
- <style>
33
- body {
34
- font-family: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
35
- background-color: #020617;
36
- color: #e2e8f0;
37
- }
38
- .sidebar-link {
39
- transition: background-color 0.2s ease, color 0.2s ease;
40
- }
41
- </style>
42
- </head>
43
- <body class="bg-slate-950">
44
- <div class="flex min-h-screen">
45
- <aside id="sidebar" class="w-72 flex-shrink-0 border-r border-slate-800 bg-slate-950/80 backdrop-blur hidden lg:block">
46
- <div class="p-6 space-y-8">
47
- <div>
48
- <p class="text-xs uppercase tracking-[0.4em] text-brand-400">Docs</p>
49
- <h1 class="text-2xl font-display font-semibold mt-3 text-white">supercli</h1>
50
- <p class="text-sm text-slate-400">Universal Skill Router</p>
51
- </div>
52
- <nav class="space-y-4">
53
- <div>
54
- <p class="text-xs uppercase tracking-widest text-slate-500 mb-2">Overview</p>
55
- <ul class="space-y-2 text-sm">
56
- <li><a class="sidebar-link block rounded-lg px-3 py-2 hover:bg-brand-500/10 hover:text-brand-100" href="#getting-started">Getting Started</a></li>
57
- <li><a class="sidebar-link block rounded-lg px-3 py-2 hover:bg-brand-500/10 hover:text-brand-100" href="#skill-layer">Skill Layer Basics</a></li>
58
- <li><a class="sidebar-link block rounded-lg px-3 py-2 hover:bg-brand-500/10 hover:text-brand-100" href="#skill-sources">Skill Sources</a></li>
59
- </ul>
60
- </div>
61
- <div>
62
- <p class="text-xs uppercase tracking-widest text-slate-500 mb-2">Runtime</p>
63
- <ul class="space-y-2 text-sm">
64
- <li><a class="sidebar-link block rounded-lg px-3 py-2 hover:bg-brand-500/10 hover:text-brand-100" href="#architecture">Architecture</a></li>
65
- <li><a class="sidebar-link block rounded-lg px-3 py-2 hover:bg-brand-500/10 hover:text-brand-100" href="#cli-usage">CLI Usage</a></li>
66
- <li><a class="sidebar-link block rounded-lg px-3 py-2 hover:bg-brand-500/10 hover:text-brand-100" href="#plugins">Plugins & Harnesses</a></li>
67
- </ul>
68
- </div>
69
- <div>
70
- <p class="text-xs uppercase tracking-widest text-slate-500 mb-2">Vision</p>
71
- <ul class="space-y-2 text-sm">
72
- <li><a class="sidebar-link block rounded-lg px-3 py-2 hover:bg-brand-500/10 hover:text-brand-100" href="#skill-vision">Skill Mesh Vision</a></li>
73
- <li><a class="sidebar-link block rounded-lg px-3 py-2 hover:bg-brand-500/10 hover:text-brand-100" href="#resources">Resources</a></li>
74
- </ul>
75
- </div>
76
- </nav>
77
- </div>
78
- </aside>
79
-
80
- <div class="flex-1 flex flex-col">
81
- <header class="border-b border-slate-800 px-6 py-4 flex items-center justify-between">
82
- <button id="mobileToggle" class="lg:hidden btn btn-sm btn-outline border-brand-400 text-brand-100" type="button">Menu</button>
83
- <div>
84
- <p class="text-xs uppercase tracking-[0.4em] text-brand-400">Documentation</p>
85
- <h1 class="text-2xl font-display font-semibold text-white">supercli Knowledge Base</h1>
86
- </div>
87
- </header>
88
-
89
- <main class="flex-1 overflow-y-auto">
90
- <section class="border-b border-slate-900 bg-slate-900/60 px-6 py-6">
91
- <div class="max-w-4xl">
92
- <p class="text-sm uppercase tracking-widest text-brand-200">Quick filter</p>
93
- <input id="filterInput" type="text" placeholder="Search anything (e.g. OpenAPI, plugins, plans)" class="mt-3 w-full rounded-2xl bg-slate-950/70 border border-slate-700 px-4 py-3 text-slate-100 placeholder:text-slate-500 focus:border-brand-400 focus:outline-none" />
94
- </div>
95
- </section>
96
-
97
- <div class="max-w-4xl px-6 py-10 space-y-10">
98
- <article class="doc-section space-y-4" id="getting-started" data-keywords="install npm start quick start env">
99
- <p class="text-sm uppercase tracking-widest text-brand-200">Start here</p>
100
- <h2 class="text-3xl font-display font-semibold">Getting Started</h2>
101
- <p class="text-slate-300">Run `npx supercli help` for instant usage, install dependencies with `npm install`, copy `.env.example`, and start the local server via `npm start` or `supercli --server`. The web UI (EJS + Vue + Tailwind) is reachable at `http://localhost:3000`. Refer to the repository README for additional context.</p>
102
- </article>
103
-
104
- <article class="doc-section space-y-4" id="skill-layer" data-keywords="skill layer discovery routing execution mesh">
105
- <p class="text-sm uppercase tracking-widest text-brand-200">Concept</p>
106
- <h2 class="text-3xl font-display font-semibold">Skill Layer Basics</h2>
107
- <p class="text-slate-300">Every capability becomes a skill, whether it originates from CLI commands, OpenAPI endpoints, MCP tools, workflows, or HTTP requests. supercli indexes names like `namespace.resource.action`, exposes schemas, and lets agents discover, inspect, and execute consistently.</p>
108
- <pre class="bg-slate-900 border border-slate-800 rounded-2xl p-4 text-sm"><code>supercli skills list
109
- supercli skills search "database"
110
- supercli skills get beads.issue.create</code></pre>
111
- </article>
112
-
113
- <article class="doc-section space-y-4" id="skill-sources" data-keywords="bundled adapters openapi http mcp workflows plugins">
114
- <p class="text-sm uppercase tracking-widest text-brand-200">Sources</p>
115
- <h2 class="text-3xl font-display font-semibold">Skill Sources</h2>
116
- <ul class="list-disc list-inside text-slate-300 space-y-2">
117
- <li><strong>Bundled Harnesses</strong> – beads, gwc, commiat ship with the CLI.</li>
118
- <li><strong>Built-in Adapters</strong> – OpenAPI specs, raw HTTP, and MCP servers become skills automatically.</li>
119
- <li><strong>Plugins</strong> – Install docker, gh, aws, kubectl, terraform harnesses via `supercli plugins install`.</li>
120
- <li><strong>AI Plans / Workflows</strong> – Natural language `ask` and `plan` commands create DAGs of skills.</li>
121
- </ul>
122
- </article>
123
-
124
- <article class="doc-section space-y-4" id="architecture" data-keywords="router discovery layer adapters harness diagram">
125
- <p class="text-sm uppercase tracking-widest text-brand-200">Runtime</p>
126
- <h2 class="text-3xl font-display font-semibold">Architecture</h2>
127
- <p class="text-slate-300">Agents route requests through the skill discovery layer, which maps namespaces to harnesses/adapters. Execution envelopes guarantee deterministic JSON responses and exit codes.</p>
128
- <pre class="bg-slate-900 border border-slate-800 rounded-2xl p-4 text-sm"><code>Agents/Humans → supercli runtime → Skill Router → Harness / Adapter → Tool</code></pre>
129
- </article>
130
-
131
- <article class="doc-section space-y-4" id="cli-usage" data-keywords="cli usage beads gwc docker plan ask plugins config">
132
- <p class="text-sm uppercase tracking-widest text-brand-200">Interface</p>
133
- <h2 class="text-3xl font-display font-semibold">CLI Usage</h2>
134
- <div class="space-y-3">
135
- <pre class="bg-slate-900 border border-slate-800 rounded-2xl p-4 text-sm"><code>supercli &lt;harness&gt; # list skills
136
- supercli beads issue list --json
137
- supercli skills search --harness beads "task"
138
- supercli ask "deploy staging"
139
- supercli plugins explore --tags git,ai</code></pre>
140
- <p class="text-slate-300">`--json`, `--human`, and `--compact` control output, while exit codes communicate validation, resource, or integration errors.</p>
141
- </div>
142
- </article>
143
-
144
- <article class="doc-section space-y-4" id="plugins" data-keywords="plugin harness guide manifest commiat docker install">
145
- <p class="text-sm uppercase tracking-widest text-brand-200">Extension</p>
146
- <h2 class="text-3xl font-display font-semibold">Plugins & Harnesses</h2>
147
- <p class="text-slate-300">Wrap any CLI with a `plugin.json` manifest that defines commands, schemas, dependency checks, and passthrough rules. Install from the registry, Git repos, or local paths.</p>
148
- <p class="text-slate-400 text-sm">Need more? Check `docs/plugin-harness-guide.md` in the repository for step-by-step authoring details.</p>
149
- </article>
150
-
151
- <article class="doc-section space-y-4" id="skill-vision" data-keywords="skill mesh registry graph governance dag api telemetry">
152
- <p class="text-sm uppercase tracking-widest text-brand-200">Vision</p>
153
- <h2 class="text-3xl font-display font-semibold">Skill Mesh Direction</h2>
154
- <p class="text-slate-300">The platform is evolving toward a mesh that handles discovery, routing, execution, composition, and governance. Key areas under exploration include a unified skill registry, graph-native discovery, mesh-wide policy, DAG orchestration, agent endpoints, composition tooling, telemetry, and richer plugin UX.</p>
155
- </article>
156
-
157
- <article class="doc-section space-y-4" id="resources" data-keywords="readme docs skills catalog supported harnesses">
158
- <p class="text-sm uppercase tracking-widest text-brand-200">Resources</p>
159
- <h2 class="text-3xl font-display font-semibold">More Documentation</h2>
160
- <ul class="list-disc list-inside text-slate-300 space-y-2">
161
- <li>README.md (repository root)</li>
162
- <li>docs/skills-catalog.md</li>
163
- <li>docs/supported-harnesses.md</li>
164
- <li>docs/features/skills.md</li>
165
- </ul>
166
- </article>
167
- </div>
168
- </main>
169
- </div>
170
- </div>
171
-
172
- <div id="mobileDrawer" class="fixed inset-0 bg-black/60 hidden z-40 lg:hidden">
173
- <div class="w-72 bg-slate-950 h-full border-r border-slate-800 p-6 overflow-y-auto">
174
- <div class="flex items-center justify-between mb-6">
175
- <h2 class="text-white text-xl font-display">Navigate</h2>
176
- <button id="drawerClose" class="btn btn-sm btn-ghost">Close</button>
177
- </div>
178
- <div id="drawerNav" class="space-y-6 text-sm">
179
- <!-- Populated from sidebar -->
180
- </div>
181
- </div>
182
- </div>
183
-
184
- <script>
185
- const filterInput = document.getElementById('filterInput');
186
- const sections = document.querySelectorAll('.doc-section');
187
-
188
- filterInput.addEventListener('input', (event) => {
189
- const query = event.target.value.trim().toLowerCase();
190
- sections.forEach((section) => {
191
- const text = section.textContent.toLowerCase();
192
- const keywords = section.dataset.keywords || '';
193
- const match = text.includes(query) || keywords.includes(query);
194
- section.style.display = match ? 'block' : 'none';
195
- });
196
- });
197
-
198
- const sidebar = document.getElementById('sidebar');
199
- const mobileDrawer = document.getElementById('mobileDrawer');
200
- const drawerNav = document.getElementById('drawerNav');
201
- const mobileToggle = document.getElementById('mobileToggle');
202
- const drawerClose = document.getElementById('drawerClose');
203
-
204
- const cloneSidebarNav = () => {
205
- if (!sidebar) return;
206
- drawerNav.innerHTML = sidebar.querySelector('nav').innerHTML;
207
- };
208
- cloneSidebarNav();
209
-
210
- const openDrawer = () => {
211
- mobileDrawer.classList.remove('hidden');
212
- };
213
- const closeDrawer = () => {
214
- mobileDrawer.classList.add('hidden');
215
- };
216
-
217
- mobileToggle.addEventListener('click', openDrawer);
218
- drawerClose.addEventListener('click', closeDrawer);
219
- mobileDrawer.addEventListener('click', (event) => {
220
- if (event.target === mobileDrawer) closeDrawer();
221
- });
222
- </script>
223
- </body>
224
- </html>