@x12i/connectix-docs 0.1.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.
Files changed (45) hide show
  1. package/README.md +77 -0
  2. package/bin/connectix-docs.js +2 -0
  3. package/dist/cli.d.ts +3 -0
  4. package/dist/cli.d.ts.map +1 -0
  5. package/dist/cli.js +56 -0
  6. package/dist/cli.js.map +1 -0
  7. package/dist/generated/bundle.d.ts +7 -0
  8. package/dist/generated/bundle.d.ts.map +1 -0
  9. package/dist/generated/bundle.js +304 -0
  10. package/dist/generated/bundle.js.map +1 -0
  11. package/dist/index.d.ts +6 -0
  12. package/dist/index.d.ts.map +1 -0
  13. package/dist/index.js +13 -0
  14. package/dist/index.js.map +1 -0
  15. package/dist/web/.deploy-ready +1 -0
  16. package/dist/web/agent-manifest.json +102 -0
  17. package/dist/web/agents.html +66 -0
  18. package/dist/web/app.js +164 -0
  19. package/dist/web/assets/book.css +783 -0
  20. package/dist/web/assets/extras.css +137 -0
  21. package/dist/web/assets/site.css +792 -0
  22. package/dist/web/assets/tokens.css +19 -0
  23. package/dist/web/books/00-orient-connectix/developers.html +174 -0
  24. package/dist/web/books/00-orient-connectix.html +56 -0
  25. package/dist/web/books/01-tools-and-simulator/developers.html +197 -0
  26. package/dist/web/books/01-tools-and-simulator.html +56 -0
  27. package/dist/web/catalog.html +83 -0
  28. package/dist/web/catalog.json +59 -0
  29. package/dist/web/docs.html +73 -0
  30. package/dist/web/downloads/books/00-orient-connectix/developers.chapters.json +26 -0
  31. package/dist/web/downloads/books/00-orient-connectix/developers.md +82 -0
  32. package/dist/web/downloads/books/01-tools-and-simulator/developers.chapters.json +32 -0
  33. package/dist/web/downloads/books/01-tools-and-simulator/developers.md +118 -0
  34. package/dist/web/downloads/use-cases/call-connect-tools.md +78 -0
  35. package/dist/web/downloads/use-cases/catalog-extension-overview.md +42 -0
  36. package/dist/web/downloads/use-cases/orient-connectix.md +95 -0
  37. package/dist/web/downloads/use-cases/run-package-simulator.md +48 -0
  38. package/dist/web/getting-started.html +74 -0
  39. package/dist/web/index.html +84 -0
  40. package/dist/web/pages.json +55 -0
  41. package/dist/web/read.html +121 -0
  42. package/dist/web/site.json +28 -0
  43. package/dist/web/use-cases.html +66 -0
  44. package/dist/web/use-cases.json +103 -0
  45. package/package.json +64 -0
@@ -0,0 +1,102 @@
1
+ {
2
+ "version": 1,
3
+ "product": "Connectix",
4
+ "site": "https://docs.x12i.dev/connectix",
5
+ "knowledgePackage": "@x12i/connectix-docs",
6
+ "roles": [
7
+ "developers"
8
+ ],
9
+ "books": [
10
+ {
11
+ "id": "00-orient-connectix",
12
+ "audiences": [
13
+ "developers"
14
+ ],
15
+ "md": {
16
+ "developers": "downloads/books/00-orient-connectix/developers.md"
17
+ },
18
+ "pdf": {
19
+ "developers": null
20
+ },
21
+ "chapters": {
22
+ "developers": "downloads/books/00-orient-connectix/developers.chapters.json"
23
+ }
24
+ },
25
+ {
26
+ "id": "01-tools-and-simulator",
27
+ "audiences": [
28
+ "developers"
29
+ ],
30
+ "md": {
31
+ "developers": "downloads/books/01-tools-and-simulator/developers.md"
32
+ },
33
+ "pdf": {
34
+ "developers": null
35
+ },
36
+ "chapters": {
37
+ "developers": "downloads/books/01-tools-and-simulator/developers.chapters.json"
38
+ }
39
+ }
40
+ ],
41
+ "useCases": [
42
+ {
43
+ "id": "orient-connectix",
44
+ "title": "Orient on Connectix",
45
+ "md": "downloads/use-cases/orient-connectix.md",
46
+ "path": [
47
+ {
48
+ "bookId": "00-orient-connectix",
49
+ "audience": "developers",
50
+ "chapters": [
51
+ "1-what-connectix-is",
52
+ "2-call-styles-and-auth",
53
+ "3-ownership-boundaries"
54
+ ]
55
+ }
56
+ ]
57
+ },
58
+ {
59
+ "id": "call-connect-tools",
60
+ "title": "Expose Connectix as AI tools",
61
+ "md": "downloads/use-cases/call-connect-tools.md",
62
+ "path": [
63
+ {
64
+ "bookId": "01-tools-and-simulator",
65
+ "audience": "developers",
66
+ "chapters": [
67
+ "1-the-four-connect-tools",
68
+ "3-stub-and-live-execution"
69
+ ]
70
+ }
71
+ ]
72
+ },
73
+ {
74
+ "id": "run-package-simulator",
75
+ "title": "Develop against the package simulator",
76
+ "md": "downloads/use-cases/run-package-simulator.md",
77
+ "path": [
78
+ {
79
+ "bookId": "01-tools-and-simulator",
80
+ "audience": "developers",
81
+ "chapters": [
82
+ "2-run-the-package-simulator"
83
+ ]
84
+ }
85
+ ]
86
+ },
87
+ {
88
+ "id": "catalog-extension-overview",
89
+ "title": "Understand catalog extension provenance",
90
+ "md": "downloads/use-cases/catalog-extension-overview.md",
91
+ "path": [
92
+ {
93
+ "bookId": "01-tools-and-simulator",
94
+ "audience": "developers",
95
+ "chapters": [
96
+ "4-catalog-extension-overview"
97
+ ]
98
+ }
99
+ ]
100
+ }
101
+ ]
102
+ }
@@ -0,0 +1,66 @@
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>Agents &amp; SDK</title>
7
+ <link rel="preconnect" href="https://fonts.googleapis.com">
8
+ <link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap" rel="stylesheet">
9
+ <link rel="stylesheet" href="/assets/site.css">
10
+ <link rel="stylesheet" href="/assets/extras.css">
11
+ </head>
12
+ <body class="page-agents" style="--accent:#2f6feb;--accent-alt:#1f6e5c" data-page="agents">
13
+ <div class="page-shell">
14
+ <header class="site-header">
15
+ <a class="brand" href="/docs">
16
+ <span class="brand-mark" aria-hidden="true"></span>
17
+ <span class="brand-name">connectix</span>
18
+ <span class="brand-badge">docs</span>
19
+ </a>
20
+ <button type="button" class="nav-toggle" aria-label="Menu" data-nav-toggle>Menu</button>
21
+ <nav class="site-nav" data-site-nav>
22
+ <a href="/getting-started">Getting started</a><a href="/use-cases">Use cases</a><a href="/catalog">Catalog</a><a href="/agents">Agents/SDK</a>
23
+
24
+ </nav>
25
+ </header>
26
+ <main>
27
+ <section class="hero">
28
+ <div class="hero-kicker">Knowledge SDK</div>
29
+ <h1>Connectix for agents</h1>
30
+ <p class="hero-lead">Install @x12i/connectix-docs as a devDependency. List use cases, pull markdown packs, and keep tools/simulator work knowledge-first.</p>
31
+ <div class="cta-row"><a class="btn btn-primary" href="#install">Install</a><a class="btn btn-secondary" href="/use-cases">Use cases</a></div>
32
+ </section>
33
+ <section class="install-callout" aria-label="Install knowledge package">
34
+ <div class="install-callout-inner">
35
+ <div class="install-kicker">npm</div>
36
+ <h2 class="install-title">Install for agents &amp; tooling</h2>
37
+ <p class="install-lead">Never add this package to production service dependencies.</p>
38
+ <pre class="install-cmd install-cmd-primary"><code>npm i -D @x12i/connectix-docs</code></pre>
39
+
40
+ <p class="install-more"><a href="/agents">Agents / SDK details →</a> · <a href="/agent-manifest.json">agent-manifest.json</a></p>
41
+ </div>
42
+ </section>
43
+ <section class="section"><div class="note"><div class="note-title">CLI</div><div class="note-body">npx connectix-docs list-use-cases · npx connectix-docs use-case orient-connectix · npx connectix-docs book 00-orient-connectix developers</div></div></section>
44
+ <section class="section prose"><p>The agent manifest (<code>agent-manifest.json</code>) is part of every built bundle and the published knowledge SDK.</p>
45
+ </section>
46
+ </main>
47
+ <footer class="site-footer">
48
+ <div class="footer-id">Connectix — internal X12I provider connectivity service.</div>
49
+ <nav class="footer-nav">
50
+ <a href="/docs">Docs home</a><a href="/getting-started">Getting started</a><a href="/use-cases">Use cases</a><a href="/catalog">Catalog</a><a href="/agents">Agents/SDK</a>
51
+ </nav>
52
+ </footer>
53
+ </div>
54
+ <script src="/app.js"></script>
55
+ <script>
56
+ document.querySelectorAll("[data-nav-toggle]").forEach((btn) => {
57
+ btn.addEventListener("click", () => {
58
+ document.querySelector("[data-site-nav]")?.classList.toggle("open");
59
+ });
60
+ });
61
+ </script>
62
+ <script>
63
+ if (typeof hydratePage === "function") hydratePage(document.body.dataset.page);
64
+ </script>
65
+ </body>
66
+ </html>
@@ -0,0 +1,164 @@
1
+ /* Shared helpers for the docify web app. Bundle paths are site-root relative. */
2
+
3
+ function qs(name) {
4
+ return new URLSearchParams(window.location.search).get(name);
5
+ }
6
+
7
+ async function loadJson(path) {
8
+ const r = await fetch(path);
9
+ if (!r.ok) throw new Error(path + " failed (" + r.status + ")");
10
+ return r.json();
11
+ }
12
+
13
+ function loadCatalog() {
14
+ return loadJson("/catalog.json");
15
+ }
16
+
17
+ function loadUseCases() {
18
+ return loadJson("/use-cases.json").then((d) => d.useCases || d);
19
+ }
20
+
21
+ function loadSite() {
22
+ return loadJson("/site.json");
23
+ }
24
+
25
+ function escapeHtml(s) {
26
+ return String(s).replace(/[&<>"']/g, (c) =>
27
+ ({ "&": "&amp;", "<": "&lt;", ">": "&gt;", '"': "&quot;", "'": "&#39;" })[c],
28
+ );
29
+ }
30
+
31
+ function roleLabel(catalog, roleId) {
32
+ const role = catalog.roles.find((r) => r.id === roleId);
33
+ return role ? role.label : roleId;
34
+ }
35
+
36
+ function renderTopbar(brand, brandAccent, opts) {
37
+ opts = opts || {};
38
+ const role = opts.role;
39
+ const product = brand.split("·")[0].trim();
40
+ const badge = role
41
+ ? `<a class="brand-badge" href="/docs" title="Switch role">${escapeHtml(role)} view</a>`
42
+ : `<span class="brand-badge">${escapeHtml(brandAccent || "docs")}</span>`;
43
+ return `
44
+ <header class="site-header">
45
+ <a class="brand" href="/docs">
46
+ <span class="brand-mark" aria-hidden="true"></span>
47
+ <span class="brand-name">${escapeHtml(product.toLowerCase())}</span>
48
+ ${badge}
49
+ </a>
50
+ <button type="button" class="nav-toggle" aria-label="Menu" data-nav-toggle>Menu</button>
51
+ <nav class="site-nav" data-site-nav>
52
+ <a href="/getting-started">Getting started</a>
53
+ <a href="/use-cases">Use cases</a>
54
+ <a href="/catalog${role ? "?role=" + encodeURIComponent(role) : ""}">Catalog</a>
55
+ <a href="/agents">Agents</a>
56
+ </nav>
57
+ </header>
58
+ `;
59
+ }
60
+
61
+ function downloadHref(path) {
62
+ return "/" + String(path).replace(/^\//, "");
63
+ }
64
+
65
+ function bindNavToggle() {
66
+ document.querySelectorAll("[data-nav-toggle]").forEach((btn) => {
67
+ btn.addEventListener("click", () => {
68
+ document.querySelector("[data-site-nav]")?.classList.toggle("open");
69
+ });
70
+ });
71
+ }
72
+
73
+ function hydrateCatalog(root) {
74
+ Promise.all([loadCatalog(), loadSite()]).then(([catalog, site]) => {
75
+ const coming = (root.getAttribute("data-coming-soon") || "")
76
+ .split("|")
77
+ .filter(Boolean);
78
+ const head = `<div class="list-table-head"><span>#</span><span>Book</span><span>Devs</span><span>Builders</span></div>`;
79
+ const rows = catalog.books
80
+ .map((b) => {
81
+ const num = b.id.split("-")[0] || b.id;
82
+ const hasDev = (b.audiences || []).includes("developers");
83
+ const hasBuild = (b.audiences || []).includes("builders");
84
+ const buildMark = hasBuild
85
+ ? b.buildersPrimary
86
+ ? "✓ primary"
87
+ : "✓"
88
+ : "–";
89
+ return `<a class="list-table-row" href="/books/${encodeURIComponent(b.id)}">
90
+ <span class="list-num">${escapeHtml(num)}</span>
91
+ <span class="list-title">${escapeHtml(b.title)}</span>
92
+ <span class="${hasDev ? "mark-yes" : "mark-no"}">${hasDev ? "✓" : "–"}</span>
93
+ <span class="${hasBuild ? "mark-alt" : "mark-no"}">${escapeHtml(buildMark)}</span>
94
+ </a>`;
95
+ })
96
+ .join("");
97
+ let soon = "";
98
+ if (coming.length) {
99
+ soon = `<div style="margin-top:40px"><h3 class="section-title" style="font-size:16px;margin-bottom:16px">Suggested later (not in this library yet)</h3>
100
+ <div class="coming-soon-block">${coming
101
+ .map((c) => `<div class="coming-soon-item">${escapeHtml(c)}</div>`)
102
+ .join("")}</div></div>`;
103
+ }
104
+ root.innerHTML = `<div class="list-table-wrap">${head}${rows}</div>${soon}`;
105
+ if (site.accent || site.accentAlt) {
106
+ if (site.accent) document.body.style.setProperty("--accent", site.accent);
107
+ if (site.accentAlt)
108
+ document.body.style.setProperty("--accent-alt", site.accentAlt);
109
+ }
110
+ });
111
+ }
112
+
113
+ function useCaseOpenHref(uc, preferredAudience) {
114
+ const path = uc.path || [];
115
+ const step =
116
+ (preferredAudience &&
117
+ path.find((s) => s.audience === preferredAudience)) ||
118
+ path[0];
119
+ if (!step) return `/downloads/use-cases/${encodeURIComponent(uc.id)}.md`;
120
+ const first = (step.chapters && step.chapters[0]) || "";
121
+ return `/read?book=${encodeURIComponent(step.bookId)}&role=${encodeURIComponent(step.audience)}${first ? "#" + encodeURIComponent(first) : ""}`;
122
+ }
123
+
124
+ function hydrateUseCases(root) {
125
+ Promise.all([loadUseCases(), loadSite()]).then(([useCases, site]) => {
126
+ if (site.accent) document.body.style.setProperty("--accent", site.accent);
127
+ if (site.accentAlt)
128
+ document.body.style.setProperty("--accent-alt", site.accentAlt);
129
+ const list = Array.isArray(useCases) ? useCases : useCases.useCases || [];
130
+ const dev = list.filter((u) => (u.audiences || []).includes("developers"));
131
+ const build = list.filter((u) => (u.audiences || []).includes("builders"));
132
+ const group = (items, label, alt, audience) => `
133
+ <div class="uc-group">
134
+ <div class="tag ${alt ? "tag-alt" : ""} uc-group-label">${escapeHtml(label)} · ${items.length}</div>
135
+ <div class="uc-grid">${items
136
+ .map((u) => {
137
+ const href = useCaseOpenHref(u, audience);
138
+ return `<a class="uc-item" href="${href}">
139
+ <span class="uc-id ${alt ? "alt" : ""}">${escapeHtml(u.id)}</span>
140
+ <span class="uc-title">${escapeHtml(u.title)}</span>
141
+ <span class="uc-open">Open →</span>
142
+ </a>`;
143
+ })
144
+ .join("")}</div>
145
+ </div>`;
146
+ root.innerHTML =
147
+ group(dev, "Developers", false, "developers") +
148
+ group(build, "Builders", true, "builders");
149
+ });
150
+ }
151
+
152
+ function hydratePage(kind) {
153
+ bindNavToggle();
154
+ if (kind === "catalog") {
155
+ const root = document.getElementById("catalog-root");
156
+ if (root) hydrateCatalog(root);
157
+ }
158
+ if (kind === "use-cases") {
159
+ const root = document.getElementById("use-cases-root");
160
+ if (root) hydrateUseCases(root);
161
+ }
162
+ }
163
+
164
+ bindNavToggle();