@emseepea/create-resources-and-prompts-server 0.0.0 → 0.0.2

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.
@@ -14,7 +14,7 @@
14
14
  "lint": "oxlint src test eval"
15
15
  },
16
16
  "dependencies": {
17
- "@emseepea/server": "0.0.4",
17
+ "@emseepea/server": "0.1.0",
18
18
  "zod": "4.4.3"
19
19
  },
20
20
  "devDependencies": {
@@ -0,0 +1,24 @@
1
+ import { definePrompt, type CapabilityModuleFactory } from "@emseepea/server";
2
+ import { z } from "zod";
3
+
4
+ const topics = ["brew-ratio", "grind-size", "water-temperature"];
5
+
6
+ export default (() => definePrompt({
7
+ name: "brew-guide",
8
+ title: "Brew guide",
9
+ description: "Create a prompt for a sample brewing topic.",
10
+ argsSchema: z.object({ topic: z.string().min(1) }),
11
+ complete: {
12
+ topic: (value) => topics.filter((topic) => topic.startsWith(value)),
13
+ },
14
+ handler: ({ topic }) => ({
15
+ description: `Guide for ${topic}`,
16
+ messages: [{
17
+ role: "user",
18
+ content: {
19
+ type: "text",
20
+ text: `Explain ${topic} for a home brewer. Distinguish any commonly confused concepts.`,
21
+ },
22
+ }],
23
+ }),
24
+ })) satisfies CapabilityModuleFactory;
@@ -0,0 +1,18 @@
1
+ import { defineResource, type CapabilityModuleFactory } from "@emseepea/server";
2
+
3
+ const guideUri = "guide://coffee/getting-started";
4
+
5
+ export default (() => defineResource({
6
+ name: "getting-started",
7
+ uri: guideUri,
8
+ title: "Coffee getting started",
9
+ description: "A sample guide exposed as an MCP resource.",
10
+ mimeType: "text/markdown",
11
+ handler: () => ({
12
+ contents: [{
13
+ uri: guideUri,
14
+ mimeType: "text/markdown",
15
+ text: "# Brew clearly\n\nStrength is concentration; extraction is how much material left the grounds. They are related, but not interchangeable.\n",
16
+ }],
17
+ }),
18
+ })) satisfies CapabilityModuleFactory;
@@ -0,0 +1,21 @@
1
+ import { defineResourceTemplate, type CapabilityModuleFactory } from "@emseepea/server";
2
+
3
+ const methods = ["aeropress", "espresso", "pour-over"];
4
+
5
+ export default (() => defineResourceTemplate({
6
+ name: "method-guide",
7
+ uriTemplate: "guide://coffee/method/{method}",
8
+ title: "Coffee method guide",
9
+ description: "A sample guide selected by brewing method.",
10
+ mimeType: "text/markdown",
11
+ complete: {
12
+ method: (value) => methods.filter((method) => method.startsWith(value)),
13
+ },
14
+ handler: ({ uri, variables }) => ({
15
+ contents: [{
16
+ uri,
17
+ mimeType: "text/markdown",
18
+ text: `# ${String(variables.method)}\n`,
19
+ }],
20
+ }),
21
+ })) satisfies CapabilityModuleFactory;
@@ -1,74 +1,13 @@
1
1
  import {
2
2
  createEmseepea,
3
- definePrompt,
4
- defineResource,
5
- defineResourceTemplate,
3
+ discoverCapabilities,
6
4
  serveEmseepea,
7
5
  } from "@emseepea/server";
8
- import { z } from "zod";
9
-
10
- const guideUri = "guide://coffee/getting-started";
11
- const methods = ["aeropress", "espresso", "pour-over"];
12
- const topics = ["brew-ratio", "grind-size", "water-temperature"];
13
-
14
- const guide = defineResource({
15
- name: "getting-started",
16
- uri: guideUri,
17
- title: "Coffee getting started",
18
- description: "A sample guide exposed as an MCP resource.",
19
- mimeType: "text/markdown",
20
- handler: () => ({
21
- contents: [{
22
- uri: guideUri,
23
- mimeType: "text/markdown",
24
- text: "# Brew clearly\n\nStrength is concentration; extraction is how much material left the grounds. They are related, but not interchangeable.\n",
25
- }],
26
- }),
27
- });
28
-
29
- const methodGuide = defineResourceTemplate({
30
- name: "method-guide",
31
- uriTemplate: "guide://coffee/method/{method}",
32
- title: "Coffee method guide",
33
- description: "A sample guide selected by brewing method.",
34
- mimeType: "text/markdown",
35
- complete: {
36
- method: (value) => methods.filter((method) => method.startsWith(value)),
37
- },
38
- handler: ({ uri, variables }) => ({
39
- contents: [{
40
- uri,
41
- mimeType: "text/markdown",
42
- text: `# ${String(variables.method)}\n`,
43
- }],
44
- }),
45
- });
46
-
47
- const brew = definePrompt({
48
- name: "brew-guide",
49
- title: "Brew guide",
50
- description: "Create a prompt for a sample brewing topic.",
51
- argsSchema: z.object({ topic: z.string().min(1) }),
52
- complete: {
53
- topic: (value) => topics.filter((topic) => topic.startsWith(value)),
54
- },
55
- handler: ({ topic }) => ({
56
- description: `Guide for ${topic}`,
57
- messages: [{
58
- role: "user",
59
- content: {
60
- type: "text",
61
- text: `Explain ${topic} for a home brewer. Distinguish any commonly confused concepts.`,
62
- },
63
- }],
64
- }),
65
- });
66
6
 
67
7
  const running = await serveEmseepea(createEmseepea({
68
8
  name: "emseepea-resources-prompts",
69
9
  version: "0.0.0",
70
- resources: [guide, methodGuide],
71
- prompts: [brew],
10
+ ...await discoverCapabilities(new URL("./capabilities/", import.meta.url)),
72
11
  }), { port: Number.parseInt(process.env.PORT ?? "3000", 10) });
73
12
 
74
13
  console.log(`Em See Pea resources and prompts example listening at ${running.url}`);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@emseepea/create-resources-and-prompts-server",
3
- "version": "0.0.0",
3
+ "version": "0.0.2",
4
4
  "description": "Create an Em See Pea server with resources and prompts.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -10,19 +10,13 @@
10
10
  },
11
11
  "homepage": "https://emseepea.github.io/emseepea/examples/",
12
12
  "bugs": "https://github.com/emseepea/emseepea/issues",
13
- "publishConfig": {
14
- "access": "public",
15
- "provenance": false,
16
- "tag": "next"
17
- },
13
+ "publishConfig": { "access": "public", "provenance": true, "tag": "next" },
18
14
  "type": "module",
19
- "bin": {
20
- "create-resources-and-prompts-server": "./dist/create.mjs"
15
+ "bin": { "create-resources-and-prompts-server": "./dist/create.mjs" },
16
+ "files": ["dist"],
17
+ "scripts": {
18
+ "build": "node ../../scripts/build-initializer.mjs",
19
+ "prepack": "npm run build"
21
20
  },
22
- "files": [
23
- "dist"
24
- ],
25
- "engines": {
26
- "node": ">=22"
27
- }
21
+ "engines": { "node": ">=22" }
28
22
  }