openwriter 0.6.7 → 0.6.9
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/dist/client/assets/{index-BDSezXwn.css → index-CeGtzvqW.css} +1 -1
- package/dist/client/assets/{index-DxAyyL3w.js → index-iGNTYLM-.js} +54 -53
- package/dist/client/index.html +2 -2
- package/dist/server/documents.js +2 -0
- package/dist/server/index.js +5 -1
- package/dist/server/update-check.js +1 -1
- package/package.json +1 -1
- package/skill/SKILL.md +14 -1
package/dist/client/index.html
CHANGED
|
@@ -10,8 +10,8 @@
|
|
|
10
10
|
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
11
11
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
12
12
|
<link href="https://fonts.googleapis.com/css2?family=Charter:ital,wght@0,400;0,700;1,400&family=Crimson+Pro:ital,wght@0,300;0,400;0,600;0,700;1,400&family=DM+Sans:ital,wght@0,400;0,500;0,600;0,700;1,400&family=DM+Serif+Display&family=IBM+Plex+Mono:wght@400;500;600&family=IBM+Plex+Sans:wght@400;500;600&family=Inter:wght@400;500;600;700&family=Libre+Baskerville:ital,wght@0,400;0,700;1,400&family=Literata:ital,opsz,wght@0,7..72,400;0,7..72,600;0,7..72,700;1,7..72,400&family=Newsreader:ital,opsz,wght@0,6..72,400;0,6..72,600;1,6..72,400&family=Playfair+Display:wght@400;600;700;900&family=Source+Serif+4:ital,opsz,wght@0,8..60,400;0,8..60,600;0,8..60,700;1,8..60,400&family=Space+Grotesk:wght@400;500;600;700&family=Space+Mono:wght@400;700&display=swap" rel="stylesheet" />
|
|
13
|
-
<script type="module" crossorigin src="/assets/index-
|
|
14
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
13
|
+
<script type="module" crossorigin src="/assets/index-iGNTYLM-.js"></script>
|
|
14
|
+
<link rel="stylesheet" crossorigin href="/assets/index-CeGtzvqW.css">
|
|
15
15
|
</head>
|
|
16
16
|
<body>
|
|
17
17
|
<div id="root"></div>
|
package/dist/server/documents.js
CHANGED
|
@@ -102,6 +102,7 @@ export function listDocuments() {
|
|
|
102
102
|
...(data.docId ? { docId: data.docId } : {}),
|
|
103
103
|
...(data.newsletterContext?.lastSend?.sentAt ? { lastSent: data.newsletterContext.lastSend.sentAt } : data.tweetContext?.lastPost?.postedAt ? { lastSent: data.tweetContext.lastPost.postedAt } : data.blogContext?.lastPublish?.publishedAt ? { lastSent: data.blogContext.lastPublish.publishedAt } : data.articleContext?.lastPost?.postedAt ? { lastSent: data.articleContext.lastPost.postedAt } : data.manualPost?.postedAt ? { lastSent: data.manualPost.postedAt } : {}),
|
|
104
104
|
...(data.tweetContext?.lastPost?.tweetUrl ? { postedUrl: data.tweetContext.lastPost.tweetUrl } : {}),
|
|
105
|
+
...(data.newsletterContext ? { isNewsletter: true } : {}),
|
|
105
106
|
};
|
|
106
107
|
}
|
|
107
108
|
catch {
|
|
@@ -138,6 +139,7 @@ export function listDocuments() {
|
|
|
138
139
|
...(data.docId ? { docId: data.docId } : {}),
|
|
139
140
|
...(data.newsletterContext?.lastSend?.sentAt ? { lastSent: data.newsletterContext.lastSend.sentAt } : data.tweetContext?.lastPost?.postedAt ? { lastSent: data.tweetContext.lastPost.postedAt } : data.blogContext?.lastPublish?.publishedAt ? { lastSent: data.blogContext.lastPublish.publishedAt } : {}),
|
|
140
141
|
...(data.tweetContext?.lastPost?.tweetUrl ? { postedUrl: data.tweetContext.lastPost.tweetUrl } : {}),
|
|
142
|
+
...(data.newsletterContext ? { isNewsletter: true } : {}),
|
|
141
143
|
});
|
|
142
144
|
}
|
|
143
145
|
catch { /* skip unreadable external files */ }
|
package/dist/server/index.js
CHANGED
|
@@ -30,7 +30,7 @@ import { createSchedulerRouter } from './scheduler-routes.js';
|
|
|
30
30
|
import { createBlogRouter } from './blog-routes.js';
|
|
31
31
|
import { platformFetch, isAuthenticated } from './connections.js';
|
|
32
32
|
import { PluginManager } from './plugin-manager.js';
|
|
33
|
-
import { checkForUpdate } from './update-check.js';
|
|
33
|
+
import { checkForUpdate, getUpdateInfo, getCurrentVersion } from './update-check.js';
|
|
34
34
|
import { addMark, getMarks, resolveMarks } from './marks.js';
|
|
35
35
|
const __filename = fileURLToPath(import.meta.url);
|
|
36
36
|
const __dirname = dirname(__filename);
|
|
@@ -74,6 +74,10 @@ export async function startHttpServer(options = {}) {
|
|
|
74
74
|
res.status(500).json({ content: [{ type: 'text', text: `Error: ${err.message}` }] });
|
|
75
75
|
}
|
|
76
76
|
});
|
|
77
|
+
app.get('/api/update-info', (_req, res) => {
|
|
78
|
+
const latestVersion = getUpdateInfo();
|
|
79
|
+
res.json({ updateAvailable: latestVersion, currentVersion: getCurrentVersion() });
|
|
80
|
+
});
|
|
77
81
|
app.get('/api/document', (_req, res) => {
|
|
78
82
|
res.json({ document: getDocument(), title: getTitle(), metadata: getMetadata() });
|
|
79
83
|
});
|
|
@@ -28,7 +28,7 @@ export function compareVersions(a, b) {
|
|
|
28
28
|
return 0;
|
|
29
29
|
}
|
|
30
30
|
/** Read current package version from package.json on disk. */
|
|
31
|
-
function getCurrentVersion() {
|
|
31
|
+
export function getCurrentVersion() {
|
|
32
32
|
try {
|
|
33
33
|
const pkgPath = join(__dirname, '../../package.json');
|
|
34
34
|
const pkg = JSON.parse(readFileSync(pkgPath, 'utf-8'));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "openwriter",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.9",
|
|
4
4
|
"description": "The open-source writing surface for AI agents. Markdown-native editor with pending change review — your agent writes, you accept or reject.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
package/skill/SKILL.md
CHANGED
|
@@ -15,7 +15,7 @@ description: |
|
|
|
15
15
|
Requires: OpenWriter MCP server configured. Browser UI at localhost:5050.
|
|
16
16
|
metadata:
|
|
17
17
|
author: travsteward
|
|
18
|
-
version: "0.2.
|
|
18
|
+
version: "0.2.6"
|
|
19
19
|
repository: https://github.com/travsteward/openwriter
|
|
20
20
|
license: MIT
|
|
21
21
|
---
|
|
@@ -528,6 +528,19 @@ Requires authentication via `request_login_code` + `verify_login`. All publish t
|
|
|
528
528
|
→ returns: stats (delivered, opens, clicks, bounces), per-subscriber events, recipient list
|
|
529
529
|
```
|
|
530
530
|
|
|
531
|
+
## Author's Voice Plugin
|
|
532
|
+
|
|
533
|
+
When the user enables the Author's Voice plugin in Settings, install the skill — see [authors-voice.com](https://www.authors-voice.com) for install methods. The skill handles API key setup and everything else.
|
|
534
|
+
|
|
535
|
+
## Updating
|
|
536
|
+
|
|
537
|
+
```bash
|
|
538
|
+
npm install -g openwriter@latest
|
|
539
|
+
npx openwriter install-skill
|
|
540
|
+
```
|
|
541
|
+
|
|
542
|
+
Then restart your Claude Code session (`/mcp` to reconnect).
|
|
543
|
+
|
|
531
544
|
## Troubleshooting
|
|
532
545
|
|
|
533
546
|
**MCP tools not available** — The OpenWriter MCP server isn't configured yet. Follow the [setup instructions](#mcp-tools-are-not-available-skill-first-install) above. After adding the MCP config, the user must restart their Claude Code session.
|