openalmanac 0.2.12 → 0.2.13

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/server.js CHANGED
@@ -43,7 +43,9 @@ export function createServer() {
43
43
  "or create it via create_stub. Links to non-existent slugs are stripped to plain text on push.\n\n" +
44
44
  "Workflow: For each entity mentioned → search_articles (check if exists) → if not, create_stub " +
45
45
  "with title, entity_type, headline, and a 2-4 sentence summary → then use [[slug|Display Text]] in your article.\n\n" +
46
- "For people: call search_people to find their LinkedIn-backed slug, then create_stub. " +
46
+ "For people: call search_people to find their LinkedIn-backed slug and profile_url, then " +
47
+ "read_webpage(url=profile_url) to get their full profile with a high-resolution photo, then " +
48
+ "create_stub with the image_url from the ![Profile Photo](url) line in the scraped markdown. " +
47
49
  "For topics/orgs/events: use descriptive kebab-case slugs (e.g. 'reinforcement-learning', 'openai').\n\n" +
48
50
  "After creating an article, always share the exact URL from the push response with the user. " +
49
51
  "This URL includes a celebration page for the newly created article.\n\n" +
@@ -266,6 +266,21 @@ export function registerArticleTools(server) {
266
266
  return `Pushed successfully.\n\nArticle URL (share this exact link with the user): ${articleUrl}\n\n${JSON.stringify(data, null, 2)}`;
267
267
  },
268
268
  });
269
+ server.addTool({
270
+ name: "requested_articles",
271
+ description: "List requested articles — stubs that are referenced by the most articles but haven't been fully written yet. " +
272
+ "Use this to find high-demand topics to write about. No authentication needed.",
273
+ parameters: z.object({
274
+ limit: z.number().default(20).describe("Max results (1-200, default 20)"),
275
+ offset: z.number().default(0).describe("Pagination offset (default 0)"),
276
+ }),
277
+ async execute({ limit, offset }) {
278
+ const resp = await request("GET", "/api/articles/requested", {
279
+ params: { limit, offset },
280
+ });
281
+ return JSON.stringify(await resp.json(), null, 2);
282
+ },
283
+ });
269
284
  server.addTool({
270
285
  name: "status",
271
286
  description: "Show login status and list all article files in your local working directory (~/.openalmanac/articles/). " +
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openalmanac",
3
- "version": "0.2.12",
3
+ "version": "0.2.13",
4
4
  "description": "OpenAlmanac — pull, edit, and push articles to the open knowledge base",
5
5
  "type": "module",
6
6
  "bin": {
@@ -32,7 +32,6 @@
32
32
  "node": ">=18.0.0"
33
33
  },
34
34
  "files": [
35
- "dist",
36
- "skill"
35
+ "dist"
37
36
  ]
38
37
  }