@nshipster/sosumi 1.0.8 → 1.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.
- package/README.md +48 -0
- package/package.json +1 -1
- package/public/SKILL.md +1 -0
- package/public/index.html +52 -5
- package/public/llms.txt +17 -2
- package/public/page.css +104 -0
- package/public/privacy.html +111 -0
- package/public/robots.txt +2 -0
- package/public/sitemap.xml +9 -0
- package/public/support.html +65 -0
- package/public/terms.html +73 -0
- package/src/index.ts +205 -10
- package/src/lib/a2a.ts +676 -5
- package/src/lib/ard.ts +77 -0
- package/src/lib/auth.ts +105 -0
- package/src/lib/did.ts +40 -0
- package/src/lib/hig/render.ts +1 -1
- package/src/lib/hig/types.ts +1 -1
- package/src/lib/identity.ts +4 -0
- package/src/lib/mcp.ts +13 -2
- package/src/lib/reference/render.ts +47 -2
- package/src/lib/types.ts +11 -0
- package/src/lib/webbotauth.ts +19 -120
- package/wrangler.jsonc +14 -2
package/README.md
CHANGED
|
@@ -86,6 +86,28 @@ you can run this command to proxy over stdio:
|
|
|
86
86
|
|
|
87
87
|
See [the website](https://sosumi.ai/#clients) for client-specific instructions.
|
|
88
88
|
|
|
89
|
+
#### Plugin
|
|
90
|
+
|
|
91
|
+
The [`plugin`](plugin) folder packages the MCP server and the [agent skill](#ai-agent-skill)
|
|
92
|
+
for Claude Code, Cursor, and [Agent Plugins](https://agent-plugins.org) clients
|
|
93
|
+
such as ChatGPT and Codex.
|
|
94
|
+
|
|
95
|
+
In Claude Code, run:
|
|
96
|
+
|
|
97
|
+
```text
|
|
98
|
+
/plugin marketplace add NSHipster/sosumi.ai
|
|
99
|
+
/plugin install sosumi@sosumi-ai
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
`public/SKILL.md` is the source of the skill.
|
|
103
|
+
After you edit it, copy it into the plugin:
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
cp public/SKILL.md plugin/skills/sosumi/SKILL.md
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
A test fails when the two files differ.
|
|
110
|
+
|
|
89
111
|
#### Available Tools
|
|
90
112
|
|
|
91
113
|
- `searchAppleDocumentation` - Searches Apple Developer documentation
|
|
@@ -334,6 +356,32 @@ Publishing is handled by `.github/workflows/release.yml`.
|
|
|
334
356
|
- Release step: `gh release create "$TAG_NAME" --generate-notes`
|
|
335
357
|
- Publish auth: npm trusted publishing via OIDC (`id-token: write`)
|
|
336
358
|
- Publish command: `npm publish --provenance --access public`
|
|
359
|
+
- MCP Registry: after `npm publish`, the workflow publishes `server.json`
|
|
360
|
+
to the [MCP Registry](https://registry.modelcontextprotocol.io)
|
|
361
|
+
as `ai.sosumi/sosumi`.
|
|
362
|
+
|
|
363
|
+
Keep `version` in `server.json` equal to `version` in `package.json`;
|
|
364
|
+
a test fails when they differ.
|
|
365
|
+
|
|
366
|
+
The registry step uses
|
|
367
|
+
[HTTP authentication](https://github.com/modelcontextprotocol/registry/blob/main/docs/modelcontextprotocol-io/authentication.mdx#http-authentication)
|
|
368
|
+
for the `sosumi.ai` domain.
|
|
369
|
+
It skips with a notice until the `MCP_REGISTRY_PRIVATE_KEY` secret is set.
|
|
370
|
+
To set it up, generate an Ed25519 key pair with OpenSSL 3
|
|
371
|
+
(macOS's LibreSSL does not support Ed25519):
|
|
372
|
+
|
|
373
|
+
```bash
|
|
374
|
+
openssl genpkey -algorithm Ed25519 -out key.pem
|
|
375
|
+
# Public key: add to "vars" in wrangler.jsonc as MCP_REGISTRY_PUBLIC_KEY, then deploy
|
|
376
|
+
openssl pkey -in key.pem -pubout -outform DER | tail -c 32 | base64
|
|
377
|
+
# Private key (hex): save as the MCP_REGISTRY_PRIVATE_KEY repository secret
|
|
378
|
+
openssl pkey -in key.pem -noout -text | grep -A3 "priv:" | tail -n +2 | tr -d ' :\n'
|
|
379
|
+
```
|
|
380
|
+
|
|
381
|
+
The Worker then serves `v=MCPv1; k=ed25519; p=<public key>`
|
|
382
|
+
at `/.well-known/mcp-registry-auth`.
|
|
383
|
+
Without the variable, that path returns 404.
|
|
384
|
+
Delete `key.pem` after you save both values.
|
|
337
385
|
|
|
338
386
|
## License
|
|
339
387
|
|
package/package.json
CHANGED
package/public/SKILL.md
CHANGED
|
@@ -85,6 +85,7 @@ Use these when Sosumi is configured as an MCP server (`https://sosumi.ai/mcp`):
|
|
|
85
85
|
- Fetch targeted symbol pages for coding questions.
|
|
86
86
|
- Keep source links in answers so users can verify details quickly.
|
|
87
87
|
- Use Sosumi paths directly in responses whenever referencing Apple documentation pages.
|
|
88
|
+
- Don't rely on conformance conditions, such as "Conforms when `Element` conforms to `Hashable`." Apple's documentation data leaves some out and gets some wrong. When a condition matters, read the declaration in the module's `.swiftinterface` file in the SDK.
|
|
88
89
|
|
|
89
90
|
## Troubleshooting
|
|
90
91
|
|
package/public/index.html
CHANGED
|
@@ -11,6 +11,8 @@
|
|
|
11
11
|
<meta name="robots" content="index, follow">
|
|
12
12
|
|
|
13
13
|
<link rel="canonical" href="https://sosumi.ai/">
|
|
14
|
+
<link rel="ard" href="/.well-known/ard.json" type="application/ai-catalog+json">
|
|
15
|
+
<link rel="ai-catalog" href="/.well-known/ai-catalog.json" type="application/ai-catalog+json">
|
|
14
16
|
|
|
15
17
|
<meta property="og:title" content="sosumi.ai - Apple Docs for LLMs">
|
|
16
18
|
<meta property="og:description"
|
|
@@ -179,6 +181,29 @@
|
|
|
179
181
|
border: 1px solid var(--accent);
|
|
180
182
|
}
|
|
181
183
|
|
|
184
|
+
.install-buttons {
|
|
185
|
+
display: flex;
|
|
186
|
+
flex-wrap: wrap;
|
|
187
|
+
gap: 0.75rem;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
a.link-button {
|
|
191
|
+
display: inline-block;
|
|
192
|
+
padding: 0.375rem 0.875rem;
|
|
193
|
+
border-radius: 0.5rem;
|
|
194
|
+
border: 1px solid var(--border);
|
|
195
|
+
background: var(--surface);
|
|
196
|
+
color: var(--text);
|
|
197
|
+
font-weight: 500;
|
|
198
|
+
transition: border 0.2s;
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
a.link-button:hover {
|
|
202
|
+
color: var(--text);
|
|
203
|
+
text-decoration: none;
|
|
204
|
+
border-color: var(--accent);
|
|
205
|
+
}
|
|
206
|
+
|
|
182
207
|
figure {
|
|
183
208
|
margin: 0;
|
|
184
209
|
}
|
|
@@ -724,7 +749,18 @@
|
|
|
724
749
|
|
|
725
750
|
<div class="tab-pane" id="vscode-tab">
|
|
726
751
|
<h3>VSCode</h3>
|
|
727
|
-
<p>
|
|
752
|
+
<p>Click a button below to install the sosumi MCP server:</p>
|
|
753
|
+
|
|
754
|
+
<p class="install-buttons">
|
|
755
|
+
<a class="link-button"
|
|
756
|
+
href="https://vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522sosumi%2522%252C%2522type%2522%253A%2522http%2522%252C%2522url%2522%253A%2522https%253A%252F%252Fsosumi.ai%252Fmcp%2522%257D">Install
|
|
757
|
+
in VS Code</a>
|
|
758
|
+
<a class="link-button"
|
|
759
|
+
href="https://vscode.dev/redirect?url=vscode-insiders%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522sosumi%2522%252C%2522type%2522%253A%2522http%2522%252C%2522url%2522%253A%2522https%253A%252F%252Fsosumi.ai%252Fmcp%2522%257D">Install
|
|
760
|
+
in VS Code Insiders</a>
|
|
761
|
+
</p>
|
|
762
|
+
|
|
763
|
+
<p>Or create a <code>.vscode/mcp.json</code> file in your workspace and enter the following
|
|
728
764
|
configuration:</p>
|
|
729
765
|
|
|
730
766
|
<pre><code class="mcp-config"><span class="dimmed"><span class="punctuation">{</span></span>
|
|
@@ -759,11 +795,17 @@
|
|
|
759
795
|
|
|
760
796
|
<div class="tab-pane" id="claude-code-tab">
|
|
761
797
|
<h3>Claude Code</h3>
|
|
762
|
-
<p>
|
|
798
|
+
<p>Install the sosumi plugin, which adds the MCP server and the Sosumi skill.
|
|
799
|
+
Run these commands in Claude Code:</p>
|
|
800
|
+
<pre><code>/plugin marketplace add NSHipster/sosumi.ai
|
|
801
|
+
/plugin install sosumi@sosumi-ai</code></pre>
|
|
802
|
+
<p>To add only the MCP server, run this command in your terminal:</p>
|
|
763
803
|
<pre><code>claude mcp add --transport http sosumi https://sosumi.ai/mcp</code></pre>
|
|
764
|
-
<p>For more information, see the
|
|
804
|
+
<p>For more information, see the Claude Code documentation for
|
|
805
|
+
<a href="https://code.claude.com/docs/en/plugins/install"
|
|
806
|
+
rel="noopener noreferrer">plugins</a> and
|
|
765
807
|
<a href="https://docs.anthropic.com/en/docs/claude-code/mcp"
|
|
766
|
-
rel="noopener noreferrer">
|
|
808
|
+
rel="noopener noreferrer">MCP</a>.
|
|
767
809
|
</p>
|
|
768
810
|
</div>
|
|
769
811
|
|
|
@@ -1041,6 +1083,11 @@ curl -o ~/.agents/skills/sosumi/SKILL.md https://sosumi.ai/SKILL.md</code></pre>
|
|
|
1041
1083
|
<p>
|
|
1042
1084
|
<strong>Contact:</strong> <a href="mailto:info@sosumi.ai">info@sosumi.ai</a>
|
|
1043
1085
|
</p>
|
|
1086
|
+
<p>
|
|
1087
|
+
<a href="/privacy">Privacy</a> ·
|
|
1088
|
+
<a href="/terms">Terms</a> ·
|
|
1089
|
+
<a href="/support">Support</a>
|
|
1090
|
+
</p>
|
|
1044
1091
|
</div>
|
|
1045
1092
|
|
|
1046
1093
|
<aside>
|
|
@@ -1057,4 +1104,4 @@ curl -o ~/.agents/skills/sosumi/SKILL.md https://sosumi.ai/SKILL.md</code></pre>
|
|
|
1057
1104
|
</footer>
|
|
1058
1105
|
</body>
|
|
1059
1106
|
|
|
1060
|
-
</html>
|
|
1107
|
+
</html>
|
package/public/llms.txt
CHANGED
|
@@ -64,7 +64,12 @@ Open this deep link to automatically install the sosumi MCP server:
|
|
|
64
64
|
|
|
65
65
|
### VSCode
|
|
66
66
|
|
|
67
|
-
|
|
67
|
+
Open one of these links to install the sosumi MCP server:
|
|
68
|
+
|
|
69
|
+
- [Install in VS Code](https://vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522sosumi%2522%252C%2522type%2522%253A%2522http%2522%252C%2522url%2522%253A%2522https%253A%252F%252Fsosumi.ai%252Fmcp%2522%257D)
|
|
70
|
+
- [Install in VS Code Insiders](https://vscode.dev/redirect?url=vscode-insiders%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522sosumi%2522%252C%2522type%2522%253A%2522http%2522%252C%2522url%2522%253A%2522https%253A%252F%252Fsosumi.ai%252Fmcp%2522%257D)
|
|
71
|
+
|
|
72
|
+
Or create a `.vscode/mcp.json` file in your workspace and enter the following configuration:
|
|
68
73
|
|
|
69
74
|
```json
|
|
70
75
|
{
|
|
@@ -88,7 +93,15 @@ Create a `.vscode/mcp.json` file in your workspace and enter the following confi
|
|
|
88
93
|
|
|
89
94
|
### Claude Code
|
|
90
95
|
|
|
91
|
-
|
|
96
|
+
Install the sosumi plugin, which adds the MCP server and the Sosumi skill.
|
|
97
|
+
Run these commands in Claude Code:
|
|
98
|
+
|
|
99
|
+
```text
|
|
100
|
+
/plugin marketplace add NSHipster/sosumi.ai
|
|
101
|
+
/plugin install sosumi@sosumi-ai
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
To add only the MCP server, run this command in your terminal:
|
|
92
105
|
|
|
93
106
|
```shell
|
|
94
107
|
claude mcp add --transport http sosumi https://sosumi.ai/mcp
|
|
@@ -336,3 +349,5 @@ For external Swift-DocC hosts, sosumi honors `robots.txt` rules
|
|
|
336
349
|
and opt-out response directives such as `X-Robots-Tag: noai`.
|
|
337
350
|
|
|
338
351
|
**Contact:** <info@sosumi.ai>
|
|
352
|
+
|
|
353
|
+
[Privacy](https://sosumi.ai/privacy) · [Terms](https://sosumi.ai/terms) · [Support](https://sosumi.ai/support)
|
package/public/page.css
ADDED
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/* Shared styles for the policy pages. Colors and type match index.html. */
|
|
2
|
+
:root {
|
|
3
|
+
color-scheme: light dark;
|
|
4
|
+
|
|
5
|
+
--font-sans: -apple-system, BlinkMacSystemFont, 'SF Pro Text', sans-serif;
|
|
6
|
+
--font-mono: 'SF Mono', monospace;
|
|
7
|
+
|
|
8
|
+
--text: oklch(15% 0 0);
|
|
9
|
+
--text-secondary: oklch(35% 0 0);
|
|
10
|
+
--text-tertiary: oklch(55% 0 0);
|
|
11
|
+
|
|
12
|
+
--surface: oklch(98% 0 0);
|
|
13
|
+
--surface-inset: oklch(95% 0.02 70);
|
|
14
|
+
|
|
15
|
+
--border: oklch(20% 0.1 70);
|
|
16
|
+
|
|
17
|
+
--link: oklch(65% 0.15 70);
|
|
18
|
+
--accent: oklch(78% 0.18 70);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
@media (prefers-color-scheme: dark) {
|
|
22
|
+
:root {
|
|
23
|
+
--text: oklch(92% 0.02 70);
|
|
24
|
+
--text-secondary: oklch(75% 0.05 70);
|
|
25
|
+
--text-tertiary: oklch(55% 0.08 70);
|
|
26
|
+
|
|
27
|
+
--surface: oklch(18% 0 0);
|
|
28
|
+
--surface-inset: oklch(12% 0.02 70);
|
|
29
|
+
|
|
30
|
+
--border: oklch(25% 0.1 70);
|
|
31
|
+
--accent: oklch(85% 0.2 70);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
body {
|
|
36
|
+
font-family: var(--font-sans);
|
|
37
|
+
color: var(--text);
|
|
38
|
+
background-color: var(--surface);
|
|
39
|
+
max-width: 52rem;
|
|
40
|
+
margin: 3rem auto;
|
|
41
|
+
padding: 1.5rem;
|
|
42
|
+
line-height: 1.6;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
body > header {
|
|
46
|
+
margin-bottom: 2rem;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
body > header p {
|
|
50
|
+
margin: 0;
|
|
51
|
+
font-size: 1.5rem;
|
|
52
|
+
font-weight: bold;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
body > header a {
|
|
56
|
+
color: var(--text);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
h1 {
|
|
60
|
+
font-size: 2.5rem;
|
|
61
|
+
margin-bottom: 0.25rem;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
h2 {
|
|
65
|
+
margin-top: 2rem;
|
|
66
|
+
margin-bottom: 0.625rem;
|
|
67
|
+
color: var(--text-secondary);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.updated {
|
|
71
|
+
color: var(--text-tertiary);
|
|
72
|
+
margin-top: 0;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
code {
|
|
76
|
+
background: var(--surface-inset);
|
|
77
|
+
padding: 0.125rem;
|
|
78
|
+
font-family: var(--font-mono);
|
|
79
|
+
overflow-wrap: break-word;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
a {
|
|
83
|
+
color: var(--link);
|
|
84
|
+
text-decoration: none;
|
|
85
|
+
transition: color 0.2s ease;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
a:hover {
|
|
89
|
+
color: var(--accent);
|
|
90
|
+
text-decoration: underline;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
footer {
|
|
94
|
+
margin-top: 3.75rem;
|
|
95
|
+
padding-top: 1.25rem;
|
|
96
|
+
border-top: 1px solid var(--border);
|
|
97
|
+
color: var(--text-tertiary);
|
|
98
|
+
font-size: 0.875rem;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
::selection {
|
|
102
|
+
background-color: var(--accent);
|
|
103
|
+
color: var(--surface);
|
|
104
|
+
}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
|
|
4
|
+
<head>
|
|
5
|
+
<meta charset="UTF-8">
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
7
|
+
<title>Privacy Policy - sosumi.ai</title>
|
|
8
|
+
<meta name="description" content="What sosumi.ai collects, who receives it, and how long it is kept.">
|
|
9
|
+
<link rel="canonical" href="https://sosumi.ai/privacy">
|
|
10
|
+
<meta name="theme-color" content="#d68d6e" media="(prefers-color-scheme: light)">
|
|
11
|
+
<meta name="theme-color" content="#ec9b7f" media="(prefers-color-scheme: dark)">
|
|
12
|
+
<link rel="icon" href="/favicon.svg" type="image/svg+xml">
|
|
13
|
+
<link rel="alternate icon" href="/favicon.ico">
|
|
14
|
+
<link rel="stylesheet" href="/page.css">
|
|
15
|
+
</head>
|
|
16
|
+
|
|
17
|
+
<body>
|
|
18
|
+
<header>
|
|
19
|
+
<p><a href="/">sosumi.ai</a></p>
|
|
20
|
+
</header>
|
|
21
|
+
|
|
22
|
+
<main>
|
|
23
|
+
<h1>Privacy Policy</h1>
|
|
24
|
+
<p class="updated">Last updated November 7, 2026</p>
|
|
25
|
+
|
|
26
|
+
<p>
|
|
27
|
+
Sosumi is a free service that converts Apple Developer documentation to Markdown.
|
|
28
|
+
It has no accounts, and it doesn't ask for your name, email address, or other personal information.
|
|
29
|
+
This page applies to the website, the HTTP API, and the MCP server at <code>https://sosumi.ai/mcp</code>.
|
|
30
|
+
</p>
|
|
31
|
+
|
|
32
|
+
<h2>What Sosumi keeps</h2>
|
|
33
|
+
<p>
|
|
34
|
+
Sosumi doesn't set cookies.
|
|
35
|
+
It doesn't have a database,
|
|
36
|
+
and it doesn't save the requests it receives or the pages it returns.
|
|
37
|
+
</p>
|
|
38
|
+
<p>
|
|
39
|
+
Sosumi runs on Cloudflare Workers with
|
|
40
|
+
<a href="https://developers.cloudflare.com/workers/observability/logs/workers-logs/" rel="noopener noreferrer">Workers Logs</a>
|
|
41
|
+
turned on.
|
|
42
|
+
For each request, Cloudflare logs the request's URL and other request and response details,
|
|
43
|
+
and it logs any errors that Sosumi reports.
|
|
44
|
+
A URL can include what you asked for, such as a documentation path or a search query.
|
|
45
|
+
Cloudflare keeps these logs for up to 7 days.
|
|
46
|
+
Sosumi's maintainers can read them to find and fix problems.
|
|
47
|
+
</p>
|
|
48
|
+
|
|
49
|
+
<h2>Who receives your requests</h2>
|
|
50
|
+
<p>
|
|
51
|
+
To answer a request, Sosumi's servers fetch the page from developer.apple.com
|
|
52
|
+
or send your search query to Apple's documentation search service.
|
|
53
|
+
For an external Swift-DocC page, Sosumi fetches from the host in the URL you give.
|
|
54
|
+
Those services receive the path, query, or URL from Sosumi's servers.
|
|
55
|
+
Sosumi makes these requests with its own headers.
|
|
56
|
+
It doesn't forward your IP address, cookies, or request headers.
|
|
57
|
+
</p>
|
|
58
|
+
<p>
|
|
59
|
+
When you use Sosumi through an MCP client or plugin,
|
|
60
|
+
your client sends Sosumi the tool's input,
|
|
61
|
+
such as a search query, documentation path, or URL.
|
|
62
|
+
Sosumi handles that input in the same way as any other request.
|
|
63
|
+
</p>
|
|
64
|
+
<p>
|
|
65
|
+
Responses include <code>Cache-Control</code> headers.
|
|
66
|
+
Cloudflare, your client, and proxies between you and Sosumi can keep a copy of a response
|
|
67
|
+
for as long as those headers allow.
|
|
68
|
+
For documentation and search responses, that is at most 24 hours.
|
|
69
|
+
</p>
|
|
70
|
+
<p>
|
|
71
|
+
The home page shows Cursor's install button images, which load from cursor.com.
|
|
72
|
+
When you view the home page, your browser requests those images from Cursor.
|
|
73
|
+
</p>
|
|
74
|
+
<p>
|
|
75
|
+
The <code>sosumi</code> command-line tool runs on your computer.
|
|
76
|
+
It fetches documentation directly from Apple and doesn't send requests to sosumi.ai.
|
|
77
|
+
</p>
|
|
78
|
+
|
|
79
|
+
<h2>Monitoring</h2>
|
|
80
|
+
<p>
|
|
81
|
+
A separate monitoring service checks that sosumi.ai works every 5 minutes.
|
|
82
|
+
It saves whether the last check passed.
|
|
83
|
+
When a check fails or recovers, it saves an alert email with the check's error message
|
|
84
|
+
until the email is sent to the maintainers.
|
|
85
|
+
It doesn't save anything about visitors.
|
|
86
|
+
</p>
|
|
87
|
+
|
|
88
|
+
<h2>Changes and questions</h2>
|
|
89
|
+
<p>
|
|
90
|
+
When this policy changes, the date at the top of this page changes too.
|
|
91
|
+
The page's history is public in the
|
|
92
|
+
<a href="https://github.com/NSHipster/sosumi.ai/commits/main/public/privacy.html" rel="noopener noreferrer">sosumi.ai repository</a>.
|
|
93
|
+
For questions, see <a href="/support">Support</a>.
|
|
94
|
+
</p>
|
|
95
|
+
</main>
|
|
96
|
+
|
|
97
|
+
<footer>
|
|
98
|
+
<p>
|
|
99
|
+
<a href="/privacy">Privacy</a> ·
|
|
100
|
+
<a href="/terms">Terms</a> ·
|
|
101
|
+
<a href="/support">Support</a> ·
|
|
102
|
+
<a href="https://github.com/NSHipster/sosumi.ai" rel="noopener noreferrer">GitHub</a>
|
|
103
|
+
</p>
|
|
104
|
+
<p>
|
|
105
|
+
Sosumi is an unofficial, independent project
|
|
106
|
+
and is not affiliated with or endorsed by Apple Inc.
|
|
107
|
+
</p>
|
|
108
|
+
</footer>
|
|
109
|
+
</body>
|
|
110
|
+
|
|
111
|
+
</html>
|
package/public/robots.txt
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
User-agent: *
|
|
2
2
|
Content-Signal: search=yes, ai-input=yes, ai-train=no
|
|
3
|
+
Content-Usage: train-ai=n, search=y
|
|
3
4
|
Allow: /
|
|
4
5
|
Disallow: /documentation/
|
|
5
6
|
Disallow: /external/
|
|
@@ -7,3 +8,4 @@ Disallow: /design/human-interface-guidelines
|
|
|
7
8
|
Disallow: /videos/play/
|
|
8
9
|
|
|
9
10
|
Sitemap: https://sosumi.ai/sitemap.xml
|
|
11
|
+
Agentmap: https://sosumi.ai/.well-known/ard.json
|
package/public/sitemap.xml
CHANGED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
|
|
4
|
+
<head>
|
|
5
|
+
<meta charset="UTF-8">
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
7
|
+
<title>Support - sosumi.ai</title>
|
|
8
|
+
<meta name="description" content="How to get help with sosumi.ai and report problems.">
|
|
9
|
+
<link rel="canonical" href="https://sosumi.ai/support">
|
|
10
|
+
<meta name="theme-color" content="#d68d6e" media="(prefers-color-scheme: light)">
|
|
11
|
+
<meta name="theme-color" content="#ec9b7f" media="(prefers-color-scheme: dark)">
|
|
12
|
+
<link rel="icon" href="/favicon.svg" type="image/svg+xml">
|
|
13
|
+
<link rel="alternate icon" href="/favicon.ico">
|
|
14
|
+
<link rel="stylesheet" href="/page.css">
|
|
15
|
+
</head>
|
|
16
|
+
|
|
17
|
+
<body>
|
|
18
|
+
<header>
|
|
19
|
+
<p><a href="/">sosumi.ai</a></p>
|
|
20
|
+
</header>
|
|
21
|
+
|
|
22
|
+
<main>
|
|
23
|
+
<h1>Support</h1>
|
|
24
|
+
|
|
25
|
+
<h2>Report a problem or ask a question</h2>
|
|
26
|
+
<p>
|
|
27
|
+
Open an issue on
|
|
28
|
+
<a href="https://github.com/NSHipster/sosumi.ai/issues" rel="noopener noreferrer">GitHub</a>.
|
|
29
|
+
Include the URL or MCP tool input that you used,
|
|
30
|
+
the client that you used (for example, Claude Code, Cursor, or ChatGPT),
|
|
31
|
+
and what you expected to see.
|
|
32
|
+
</p>
|
|
33
|
+
|
|
34
|
+
<h2>Contact</h2>
|
|
35
|
+
<p>
|
|
36
|
+
For anything you don't want to post in public, including security reports,
|
|
37
|
+
email <a href="mailto:info@sosumi.ai">info@sosumi.ai</a>.
|
|
38
|
+
This is the contact in
|
|
39
|
+
<a href="/.well-known/security.txt"><code>security.txt</code></a>.
|
|
40
|
+
</p>
|
|
41
|
+
|
|
42
|
+
<h2>Set up</h2>
|
|
43
|
+
<p>
|
|
44
|
+
Instructions for each MCP client, the command-line tool, and the agent skill are on the
|
|
45
|
+
<a href="/#mcp">home page</a>.
|
|
46
|
+
If your host serves Swift-DocC documentation and you want Sosumi to stop fetching it,
|
|
47
|
+
see <a href="/#bot">how Sosumi fetches pages</a>.
|
|
48
|
+
</p>
|
|
49
|
+
</main>
|
|
50
|
+
|
|
51
|
+
<footer>
|
|
52
|
+
<p>
|
|
53
|
+
<a href="/privacy">Privacy</a> ·
|
|
54
|
+
<a href="/terms">Terms</a> ·
|
|
55
|
+
<a href="/support">Support</a> ·
|
|
56
|
+
<a href="https://github.com/NSHipster/sosumi.ai" rel="noopener noreferrer">GitHub</a>
|
|
57
|
+
</p>
|
|
58
|
+
<p>
|
|
59
|
+
Sosumi is an unofficial, independent project
|
|
60
|
+
and is not affiliated with or endorsed by Apple Inc.
|
|
61
|
+
</p>
|
|
62
|
+
</footer>
|
|
63
|
+
</body>
|
|
64
|
+
|
|
65
|
+
</html>
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
|
|
4
|
+
<head>
|
|
5
|
+
<meta charset="UTF-8">
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
7
|
+
<title>Terms of Use - sosumi.ai</title>
|
|
8
|
+
<meta name="description" content="The terms for using sosumi.ai.">
|
|
9
|
+
<link rel="canonical" href="https://sosumi.ai/terms">
|
|
10
|
+
<meta name="theme-color" content="#d68d6e" media="(prefers-color-scheme: light)">
|
|
11
|
+
<meta name="theme-color" content="#ec9b7f" media="(prefers-color-scheme: dark)">
|
|
12
|
+
<link rel="icon" href="/favicon.svg" type="image/svg+xml">
|
|
13
|
+
<link rel="alternate icon" href="/favicon.ico">
|
|
14
|
+
<link rel="stylesheet" href="/page.css">
|
|
15
|
+
</head>
|
|
16
|
+
|
|
17
|
+
<body>
|
|
18
|
+
<header>
|
|
19
|
+
<p><a href="/">sosumi.ai</a></p>
|
|
20
|
+
</header>
|
|
21
|
+
|
|
22
|
+
<main>
|
|
23
|
+
<h1>Terms of Use</h1>
|
|
24
|
+
<p class="updated">Last updated November 7, 2026</p>
|
|
25
|
+
|
|
26
|
+
<p>
|
|
27
|
+
These terms apply to the website, the HTTP API, and the MCP server at <code>https://sosumi.ai/mcp</code>.
|
|
28
|
+
</p>
|
|
29
|
+
|
|
30
|
+
<h2>The service</h2>
|
|
31
|
+
<p>
|
|
32
|
+
Sosumi is free to use.
|
|
33
|
+
It is provided "as is", without warranty of any kind.
|
|
34
|
+
It can change, slow down, or stop at any time, and its output can be incomplete or wrong.
|
|
35
|
+
Check important details against the original page, which each response links to.
|
|
36
|
+
</p>
|
|
37
|
+
|
|
38
|
+
<h2>The code</h2>
|
|
39
|
+
<p>
|
|
40
|
+
Sosumi's source code is available under the
|
|
41
|
+
<a href="https://github.com/NSHipster/sosumi.ai/blob/main/LICENSE.md" rel="noopener noreferrer">MIT license</a>.
|
|
42
|
+
</p>
|
|
43
|
+
|
|
44
|
+
<h2>The documentation</h2>
|
|
45
|
+
<p>
|
|
46
|
+
Documentation content belongs to its owners.
|
|
47
|
+
Apple Inc. owns the content of Apple Developer documentation,
|
|
48
|
+
the Human Interface Guidelines, and Apple's videos.
|
|
49
|
+
The owners of external Swift-DocC sites own their content.
|
|
50
|
+
Sosumi converts a page only when you request it, and it doesn't grant you any rights to that content.
|
|
51
|
+
</p>
|
|
52
|
+
|
|
53
|
+
<h2>Your use</h2>
|
|
54
|
+
<p>
|
|
55
|
+
Your use of Sosumi must comply with Apple's terms of use, the terms of any other site you request, and applicable law.
|
|
56
|
+
</p>
|
|
57
|
+
</main>
|
|
58
|
+
|
|
59
|
+
<footer>
|
|
60
|
+
<p>
|
|
61
|
+
<a href="/privacy">Privacy</a> ·
|
|
62
|
+
<a href="/terms">Terms</a> ·
|
|
63
|
+
<a href="/support">Support</a> ·
|
|
64
|
+
<a href="https://github.com/NSHipster/sosumi.ai" rel="noopener noreferrer">GitHub</a>
|
|
65
|
+
</p>
|
|
66
|
+
<p>
|
|
67
|
+
Sosumi is an unofficial, independent project
|
|
68
|
+
and is not affiliated with or endorsed by Apple Inc.
|
|
69
|
+
</p>
|
|
70
|
+
</footer>
|
|
71
|
+
</body>
|
|
72
|
+
|
|
73
|
+
</html>
|