web-task-api 0.2.2 → 0.2.4

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/CHANGELOG.md CHANGED
@@ -1,5 +1,27 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.2.4] - 2026-03-29
4
+
5
+ ### Changed
6
+
7
+ - mutable runtime state now defaults to a platform user-data root instead of the ambient working directory, while bundled starter recipes continue to load from the installed package tree
8
+
9
+ ### Fixed
10
+
11
+ - launching the MCP or HTTP runtime from `~/` or another unrelated cwd no longer leaks `runs/`, `profiles/`, or `sessions/` folders into that directory
12
+ - when incoming temp env variables point at the operator's home or current working directory, the runtime now redirects them into an app-owned temp root before browser tooling starts creating scratch state
13
+
14
+ ## [0.2.3] - 2026-03-27
15
+
16
+ ### Changed
17
+
18
+ - MCP-facing metadata now uses the human-facing title `Web Task` while keeping the stable package and registry identifiers `web-task-api`
19
+ - MCP tool definitions now publish clearer titles, routing-oriented descriptions, field descriptions, and behavior annotations so hosts can distinguish task runs from task/session inspection more reliably
20
+
21
+ ### Fixed
22
+
23
+ - metadata checks now enforce the `Web Task` display title and README naming guidance so package-vs-display naming does not drift silently
24
+
3
25
  ## [0.2.2] - 2026-03-27
4
26
 
5
27
  ### Fixed
package/README.md CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  `web-task-api` is a generalized browser-task runtime for projects that want to treat websites like programmable APIs.
4
4
 
5
+ For MCP discovery and host UI, the human-facing title should be **Web Task**. The package and registry IDs stay `web-task-api` for compatibility because the same package ships both the HTTP API and the MCP server.[^2]
6
+
5
7
  It exposes one API for:
6
8
 
7
9
  - starting from a URL + goal
@@ -96,14 +98,16 @@ npx -y -p web-task-api web-task-api-http
96
98
 
97
99
  ### MCP tools
98
100
 
99
- - `webtask_run`
100
- - `webtask_get_task`
101
- - `webtask_list_recipes`
102
- - `webtask_create_session`
103
- - `webtask_list_sessions`
104
- - `webtask_get_session`
105
- - `webtask_update_session`
106
- - `webtask_health`
101
+ - `webtask_run` — start a new browser task from a goal and optional URL
102
+ - `webtask_get_task` — inspect one persisted task run
103
+ - `webtask_list_recipes` — list reusable starter recipes before a run
104
+ - `webtask_create_session` — create continuity for related tasks
105
+ - `webtask_list_sessions` — list saved continuity sessions
106
+ - `webtask_get_session` — inspect one saved session and its recent history
107
+ - `webtask_update_session` — update session metadata like name, notes, or defaults
108
+ - `webtask_health` — verify the runtime is alive
109
+
110
+ Tool-selection guidance follows MCP best practice: use human-readable titles/descriptions, make the “when should I use this tool?” boundary explicit, and publish accurate behavior hints instead of vague marketing copy.[^3]
107
111
 
108
112
  ### MCP config examples
109
113
 
@@ -203,7 +207,7 @@ To create a reusable login profile:
203
207
  npm run profile:login -- --id my-profile --url https://example.com/login
204
208
  ```
205
209
 
206
- This opens a real persistent browser profile. Log in manually or solve bot challenges, then press Enter in the terminal. The runtime saves a reusable Chromium user-data directory at `profiles/<id>/user-data-dir` and later tasks can use `"profile": "my-profile"`.
210
+ This opens a real persistent browser profile. Log in manually or solve bot challenges, then press Enter in the terminal. The runtime saves a reusable Chromium user-data directory at `<data-root>/profiles/<id>/user-data-dir` and later tasks can use `"profile": "my-profile"`.
207
211
 
208
212
  This matters for sites like Dexscreener or GMGN that may block fresh headless sessions behind Cloudflare or similar anti-bot checks.
209
213
 
@@ -213,6 +217,28 @@ If you want the runtime to behave as closely as possible to your normal local Ch
213
217
 
214
218
  That is the closest match to “it works in my Chrome already”.
215
219
 
220
+ ## Runtime storage roots
221
+
222
+ By default the runtime keeps mutable data out of the ambient working directory:
223
+
224
+ - Linux: `~/.local/share/web-task-api`
225
+ - macOS: `~/Library/Application Support/web-task-api`
226
+ - Windows: `%LOCALAPPDATA%\web-task-api`
227
+
228
+ Under that data root the runtime writes:
229
+
230
+ - `profiles/<id>/user-data-dir`
231
+ - `runs/<taskId>/...`
232
+ - `sessions/<sessionId>.json`
233
+
234
+ Bundled starter recipes are read from the installed package's `recipes/` directory, not from the current shell cwd.
235
+
236
+ Useful overrides:
237
+
238
+ - `WEB_TASK_API_DATA_DIR` — custom mutable data root
239
+ - `WEB_TASK_API_RECIPES_DIR` — custom recipes directory
240
+ - `WEB_TASK_API_TEMP_DIR` — custom temp root used when the incoming temp env points at your home/cwd
241
+
216
242
  ## Planner backends
217
243
 
218
244
  ### Recommended: CLIProxyAPI
@@ -282,3 +308,4 @@ Then use:
282
308
 
283
309
  [^1]: `docs/design.md` for the detailed system design, tradeoffs, and roadmap.
284
310
  [^2]: `server.json` is the MCP registry metadata source of truth; `package.json` carries the npm package and executable metadata.
311
+ [^3]: Model Context Protocol, "Tools" specification and tool-annotation guidance — titles, descriptions, JSON Schema field descriptions, and accurate hints improve host UX and tool selection.
@@ -1,7 +1,10 @@
1
- export declare const PROJECT_ROOT: string;
1
+ export declare const PACKAGE_ROOT: string;
2
+ export declare const DATA_ROOT: string;
3
+ export declare const RECIPES_DIR: string;
4
+ export declare const TMP_ROOT: string;
2
5
  export declare const RUNS_DIR: string;
3
6
  export declare const PROFILES_DIR: string;
4
- export declare const RECIPES_DIR: string;
7
+ export declare const SESSIONS_DIR: string;
5
8
  export declare const DEFAULT_PORT: number;
6
9
  export declare const DEFAULT_HOST: string;
7
10
  export declare const DEFAULT_MAX_STEPS = 12;
@@ -1,8 +1,64 @@
1
+ import { existsSync, mkdirSync } from "node:fs";
2
+ import os from "node:os";
1
3
  import path from "node:path";
2
- export const PROJECT_ROOT = process.cwd();
3
- export const RUNS_DIR = path.join(PROJECT_ROOT, "runs");
4
- export const PROFILES_DIR = path.join(PROJECT_ROOT, "profiles");
5
- export const RECIPES_DIR = path.join(PROJECT_ROOT, "recipes");
4
+ import { fileURLToPath } from "node:url";
5
+ function clean(value) {
6
+ const next = value?.trim();
7
+ return next ? next : undefined;
8
+ }
9
+ function findPackageRoot(startDir) {
10
+ let current = startDir;
11
+ for (;;) {
12
+ if (existsSync(path.join(current, "package.json")))
13
+ return current;
14
+ const parent = path.dirname(current);
15
+ if (parent === current)
16
+ return startDir;
17
+ current = parent;
18
+ }
19
+ }
20
+ function defaultDataHome() {
21
+ if (process.platform === "win32") {
22
+ const localAppData = clean(process.env.LOCALAPPDATA);
23
+ if (localAppData)
24
+ return localAppData;
25
+ }
26
+ const home = clean(process.env.HOME) || os.homedir();
27
+ if (process.platform === "darwin")
28
+ return path.join(home, "Library", "Application Support");
29
+ return clean(process.env.XDG_DATA_HOME) || path.join(home, ".local", "share");
30
+ }
31
+ function resolveDataRoot() {
32
+ return clean(process.env.WEB_TASK_API_DATA_DIR) || path.join(defaultDataHome(), "web-task-api");
33
+ }
34
+ function resolveRecipesRoot(packageRoot) {
35
+ return clean(process.env.WEB_TASK_API_RECIPES_DIR) || path.join(packageRoot, "recipes");
36
+ }
37
+ function resolveTempRoot(dataRoot) {
38
+ return clean(process.env.WEB_TASK_API_TEMP_DIR) || path.join(dataRoot, "tmp");
39
+ }
40
+ function sanitizeTempEnv(tempRoot, cwd = process.cwd()) {
41
+ const home = clean(process.env.HOME) || os.homedir();
42
+ const normalizedHome = path.resolve(home);
43
+ const normalizedCwd = path.resolve(cwd);
44
+ mkdirSync(tempRoot, { recursive: true });
45
+ for (const name of ["TMPDIR", "TMP", "TEMP", "BUN_TMPDIR"]) {
46
+ const current = clean(process.env[name]);
47
+ if (!current)
48
+ continue;
49
+ const normalizedCurrent = path.resolve(cwd, current);
50
+ if (normalizedCurrent === normalizedHome || normalizedCurrent === normalizedCwd)
51
+ process.env[name] = tempRoot;
52
+ }
53
+ }
54
+ export const PACKAGE_ROOT = findPackageRoot(path.dirname(fileURLToPath(import.meta.url)));
55
+ export const DATA_ROOT = resolveDataRoot();
56
+ export const RECIPES_DIR = resolveRecipesRoot(PACKAGE_ROOT);
57
+ export const TMP_ROOT = resolveTempRoot(DATA_ROOT);
58
+ sanitizeTempEnv(TMP_ROOT);
59
+ export const RUNS_DIR = path.join(DATA_ROOT, "runs");
60
+ export const PROFILES_DIR = path.join(DATA_ROOT, "profiles");
61
+ export const SESSIONS_DIR = path.join(DATA_ROOT, "sessions");
6
62
  export const DEFAULT_PORT = Number.parseInt(process.env.PORT ?? "4317", 10);
7
63
  export const DEFAULT_HOST = process.env.HOST ?? "127.0.0.1";
8
64
  export const DEFAULT_MAX_STEPS = 12;
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,CAAC,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;AAC1C,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;AACxD,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;AAChE,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;AAE9D,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,MAAM,EAAE,EAAE,CAAC,CAAC;AAC5E,MAAM,CAAC,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,WAAW,CAAC;AAC5D,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,CAAC;AACpC,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC;AACzC,MAAM,CAAC,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,OAAO,CAAC;AACjE,MAAM,CAAC,MAAM,sBAAsB,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;AACjE,MAAM,CAAC,MAAM,yBAAyB,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;AACvE,MAAM,CAAC,MAAM,yBAAyB,GACpC,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,0BAA0B,CAAC;AAC9D,MAAM,CAAC,MAAM,sBAAsB,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;AACjE,MAAM,CAAC,MAAM,2BAA2B,GACtC,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;AAClE,MAAM,CAAC,MAAM,uBAAuB,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,QAAQ,CAAC;AAC/E,MAAM,CAAC,MAAM,6BAA6B,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"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"}
@@ -61,22 +61,23 @@ function renderSessions(sessions) {
61
61
  export function createMcpServer(taskRunner = new TaskRunner()) {
62
62
  const server = new McpServer({
63
63
  name: "web-task-api",
64
+ title: "Web Task",
64
65
  version: packageVersion,
65
66
  });
66
- server.tool("webtask_run", "Run a browser task through the web-task runtime with optional session reuse, recipe hints, and structured output validation.", {
67
- goal: z.string().min(1).describe("Goal for the browser task"),
68
- start_url: z.string().url().optional().describe("Optional starting URL"),
69
- mode: z.enum(["read", "act"]).optional().describe("Task mode"),
70
- profile: z.string().min(1).optional().describe("Optional named browser profile"),
71
- session_id: z.string().uuid().optional().describe("Optional session to reuse"),
72
- input: JsonRecordSchema.optional().describe("Task input values"),
73
- output_schema: JsonRecordSchema.optional().describe("Optional JSON Schema-like object for validating the final result"),
74
- recipe_id: z.string().min(1).optional().describe("Optional recipe id to guide the run"),
75
- agent_kind: AgentKindSchema.optional().describe("Planner backend"),
76
- agent_model: z.string().optional().describe("Optional planner model override"),
77
- max_steps: z.number().int().min(1).max(50).optional().describe("Maximum browser steps"),
78
- timeout_ms: z.number().int().min(1000).max(600000).optional().describe("Run timeout in milliseconds"),
79
- headless: z.boolean().optional().describe("Whether to prefer headless browser mode"),
67
+ const runTool = server.tool("webtask_run", "Start a new browser task from a goal and optional URL. Use this when you want the runtime to visit, read, or act on a site now; use session tools for continuity and get_task to inspect a saved run.", {
68
+ goal: z.string().min(1).describe("What the browser task should accomplish right now."),
69
+ start_url: z.string().url().optional().describe("Optional starting URL when you already know where the task should begin."),
70
+ mode: z.enum(["read", "act"]).optional().describe("Task mode: read for extraction or research, act for interactive changes."),
71
+ profile: z.string().min(1).optional().describe("Optional named browser profile for authenticated or warmed browser state."),
72
+ session_id: z.string().uuid().optional().describe("Optional saved session to reuse when this task should continue earlier browser state or context."),
73
+ input: JsonRecordSchema.optional().describe("Structured task inputs that the recipe or planner can reference."),
74
+ output_schema: JsonRecordSchema.optional().describe("Optional JSON Schema-like object used to validate the final structured result."),
75
+ recipe_id: z.string().min(1).optional().describe("Optional starter recipe id when you want a known flow instead of a purely freeform run."),
76
+ agent_kind: AgentKindSchema.optional().describe("Planner backend to use for this run."),
77
+ agent_model: z.string().optional().describe("Optional planner model override for this run."),
78
+ max_steps: z.number().int().min(1).max(50).optional().describe("Maximum browser steps before the run stops."),
79
+ timeout_ms: z.number().int().min(1000).max(600000).optional().describe("Overall run timeout in milliseconds."),
80
+ headless: z.boolean().optional().describe("Whether to prefer headless browser mode for this run."),
80
81
  }, async ({ goal, start_url, mode, profile, session_id, input, output_schema, recipe_id, agent_kind, agent_model, max_steps, timeout_ms, headless }) => {
81
82
  const request = TaskRequestSchema.parse({
82
83
  goal,
@@ -103,7 +104,17 @@ export function createMcpServer(taskRunner = new TaskRunner()) {
103
104
  content: [{ type: "text", text: renderTask(result) }],
104
105
  };
105
106
  });
106
- server.tool("webtask_get_task", "Fetch a persisted task run with full step history and artifact paths.", { task_id: z.string().min(1).describe("Task id to fetch") }, async ({ task_id }) => {
107
+ runTool.update({
108
+ title: "Run Web Task",
109
+ annotations: {
110
+ title: "Run Web Task",
111
+ readOnlyHint: false,
112
+ destructiveHint: false,
113
+ idempotentHint: false,
114
+ openWorldHint: true,
115
+ },
116
+ });
117
+ const getTaskTool = server.tool("webtask_get_task", "Fetch one persisted task run with step history and artifact paths. Use this to inspect an earlier run instead of starting a new task.", { task_id: z.string().min(1).describe("Task id to fetch.") }, async ({ task_id }) => {
107
118
  const result = await taskRunner.get(task_id);
108
119
  if (!result) {
109
120
  throw new Error(`Task not found: ${task_id}`);
@@ -113,21 +124,41 @@ export function createMcpServer(taskRunner = new TaskRunner()) {
113
124
  content: [{ type: "text", text: renderTask(result) }],
114
125
  };
115
126
  });
116
- server.tool("webtask_list_recipes", "List promoted recipes that can guide common web-task flows.", {}, async () => {
127
+ getTaskTool.update({
128
+ title: "Get Web Task",
129
+ annotations: {
130
+ title: "Get Web Task",
131
+ readOnlyHint: true,
132
+ destructiveHint: false,
133
+ idempotentHint: true,
134
+ openWorldHint: false,
135
+ },
136
+ });
137
+ const listRecipesTool = server.tool("webtask_list_recipes", "List promoted starter recipes for common browser-task flows. Use this before a run when you want to see reusable guided paths.", {}, async () => {
117
138
  const recipes = await taskRunner.listRecipes();
118
139
  return {
119
140
  structuredContent: { recipes },
120
141
  content: [{ type: "text", text: renderRecipes(recipes) }],
121
142
  };
122
143
  });
123
- server.tool("webtask_create_session", "Create a reusable session that carries browser state, default start URL, and planner defaults across tasks.", {
124
- name: z.string().min(1).describe("Session name"),
125
- mode: z.enum(["guest", "profile"]).optional().describe("Session mode"),
126
- profile: z.string().min(1).optional().describe("Optional bound browser profile"),
127
- start_url: z.string().url().optional().describe("Optional default start URL"),
128
- agent_kind: AgentKindSchema.optional().describe("Optional default planner backend for the session"),
129
- agent_model: z.string().optional().describe("Optional default planner model for the session"),
130
- notes: z.string().optional().describe("Optional session notes"),
144
+ listRecipesTool.update({
145
+ title: "List Web Recipes",
146
+ annotations: {
147
+ title: "List Web Recipes",
148
+ readOnlyHint: true,
149
+ destructiveHint: false,
150
+ idempotentHint: true,
151
+ openWorldHint: false,
152
+ },
153
+ });
154
+ const createSessionTool = server.tool("webtask_create_session", "Create a reusable session for browser-state continuity across related tasks. Use this before multiple runs that should share login state, defaults, or recent context.", {
155
+ name: z.string().min(1).describe("Session name."),
156
+ mode: z.enum(["guest", "profile"]).optional().describe("Session mode: guest for reusable browser state, profile for a named bound profile."),
157
+ profile: z.string().min(1).optional().describe("Optional bound browser profile for profile-mode sessions."),
158
+ start_url: z.string().url().optional().describe("Optional default start URL for later tasks in this session."),
159
+ agent_kind: AgentKindSchema.optional().describe("Optional default planner backend for the session."),
160
+ agent_model: z.string().optional().describe("Optional default planner model for the session."),
161
+ notes: z.string().optional().describe("Optional operator notes for the session."),
131
162
  }, async ({ name, mode, profile, start_url, agent_kind, agent_model, notes }) => {
132
163
  const session = await taskRunner.createSession(SessionCreateSchema.parse({
133
164
  name,
@@ -144,14 +175,34 @@ export function createMcpServer(taskRunner = new TaskRunner()) {
144
175
  content: [{ type: "text", text: renderSession(session) }],
145
176
  };
146
177
  });
147
- server.tool("webtask_list_sessions", "List saved sessions with browser-state continuity metadata.", {}, async () => {
178
+ createSessionTool.update({
179
+ title: "Create Web Session",
180
+ annotations: {
181
+ title: "Create Web Session",
182
+ readOnlyHint: false,
183
+ destructiveHint: false,
184
+ idempotentHint: false,
185
+ openWorldHint: false,
186
+ },
187
+ });
188
+ const listSessionsTool = server.tool("webtask_list_sessions", "List saved sessions with browser-state continuity metadata. Use this when you need to find an existing session to reuse or inspect.", {}, async () => {
148
189
  const sessions = await taskRunner.listSessions();
149
190
  return {
150
191
  structuredContent: { sessions },
151
192
  content: [{ type: "text", text: renderSessions(sessions) }],
152
193
  };
153
194
  });
154
- server.tool("webtask_get_session", "Fetch one saved session including recent task history.", { session_id: z.string().uuid().describe("Session id to fetch") }, async ({ session_id }) => {
195
+ listSessionsTool.update({
196
+ title: "List Web Sessions",
197
+ annotations: {
198
+ title: "List Web Sessions",
199
+ readOnlyHint: true,
200
+ destructiveHint: false,
201
+ idempotentHint: true,
202
+ openWorldHint: false,
203
+ },
204
+ });
205
+ const getSessionTool = server.tool("webtask_get_session", "Fetch one saved session including recent task history. Use this to inspect continuity context before reusing a session in a new run.", { session_id: z.string().uuid().describe("Session id to fetch.") }, async ({ session_id }) => {
155
206
  const session = await taskRunner.getSession(session_id);
156
207
  if (!session) {
157
208
  throw new Error(`Session not found: ${session_id}`);
@@ -161,12 +212,22 @@ export function createMcpServer(taskRunner = new TaskRunner()) {
161
212
  content: [{ type: "text", text: renderSession(session) }],
162
213
  };
163
214
  });
164
- server.tool("webtask_update_session", "Update session metadata like name, profile, notes, or default start URL.", {
165
- session_id: z.string().uuid().describe("Session id to update"),
166
- name: z.string().min(1).optional().describe("Updated session name"),
167
- profile: z.string().min(1).optional().describe("Updated bound profile"),
168
- start_url: z.string().url().optional().describe("Updated default start URL"),
169
- notes: z.string().optional().describe("Updated session notes"),
215
+ getSessionTool.update({
216
+ title: "Get Web Session",
217
+ annotations: {
218
+ title: "Get Web Session",
219
+ readOnlyHint: true,
220
+ destructiveHint: false,
221
+ idempotentHint: true,
222
+ openWorldHint: false,
223
+ },
224
+ });
225
+ const updateSessionTool = server.tool("webtask_update_session", "Update saved session metadata like name, profile, notes, or default start URL. Use this to adjust continuity defaults without creating a new session.", {
226
+ session_id: z.string().uuid().describe("Session id to update."),
227
+ name: z.string().min(1).optional().describe("Updated session name."),
228
+ profile: z.string().min(1).optional().describe("Updated bound profile."),
229
+ start_url: z.string().url().optional().describe("Updated default start URL."),
230
+ notes: z.string().optional().describe("Updated session notes."),
170
231
  }, async ({ session_id, name, profile, start_url, notes }) => {
171
232
  const session = await taskRunner.updateSession(session_id, SessionUpdateSchema.parse({
172
233
  ...(name === undefined ? {} : { name }),
@@ -182,10 +243,30 @@ export function createMcpServer(taskRunner = new TaskRunner()) {
182
243
  content: [{ type: "text", text: renderSession(session) }],
183
244
  };
184
245
  });
185
- server.tool("webtask_health", "Quick health check for the MCP runtime.", {}, async () => ({
246
+ updateSessionTool.update({
247
+ title: "Update Web Session",
248
+ annotations: {
249
+ title: "Update Web Session",
250
+ readOnlyHint: false,
251
+ destructiveHint: false,
252
+ idempotentHint: false,
253
+ openWorldHint: false,
254
+ },
255
+ });
256
+ const healthTool = server.tool("webtask_health", "Quick health check for the MCP runtime. Use this only to verify the server is alive, not to inspect tasks or sessions.", {}, async () => ({
186
257
  structuredContent: { healthy: true },
187
258
  content: [{ type: "text", text: "healthy: true" }],
188
259
  }));
260
+ healthTool.update({
261
+ title: "Web Task Health",
262
+ annotations: {
263
+ title: "Web Task Health",
264
+ readOnlyHint: true,
265
+ destructiveHint: false,
266
+ idempotentHint: true,
267
+ openWorldHint: false,
268
+ },
269
+ });
189
270
  return server;
190
271
  }
191
272
  //# sourceMappingURL=mcp-server.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../../src/mcp-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../../src/mcp-server.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,7 @@
1
1
  import crypto from "node:crypto";
2
2
  import fs from "node:fs/promises";
3
3
  import path from "node:path";
4
- import { PROJECT_ROOT } from "../config.js";
5
- const SESSIONS_DIR = path.join(PROJECT_ROOT, "sessions");
4
+ import { SESSIONS_DIR } from "../config.js";
6
5
  export function sessionUserDataDir(sessionId) {
7
6
  return path.join(SESSIONS_DIR, sessionId, "user-data-dir");
8
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/sessions/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/sessions/store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,89 @@
1
+ import test from "node:test";
2
+ import assert from "node:assert/strict";
3
+ import { mkdtempSync, mkdirSync, rmSync } from "node:fs";
4
+ import path from "node:path";
5
+ import { tmpdir } from "node:os";
6
+ import { spawnSync } from "node:child_process";
7
+ import { fileURLToPath, pathToFileURL } from "node:url";
8
+ const projectRoot = fileURLToPath(new URL("..", import.meta.url));
9
+ const configHref = pathToFileURL(path.join(projectRoot, "src", "config.ts")).href;
10
+ const tsxBin = path.join(projectRoot, "node_modules", ".bin", "tsx");
11
+ test("config defaults use package/data roots instead of ambient cwd", () => {
12
+ const sandbox = mkdtempSync(path.join(tmpdir(), "web-task-api-config-"));
13
+ const home = path.join(sandbox, "home");
14
+ const cwd = path.join(sandbox, "ambient-cwd");
15
+ const xdgDataHome = path.join(home, ".local", "share");
16
+ mkdirSync(home, { recursive: true });
17
+ mkdirSync(cwd, { recursive: true });
18
+ try {
19
+ const result = spawnSync(tsxBin, [
20
+ "-e",
21
+ `import { DATA_ROOT, RECIPES_DIR, RUNS_DIR, PROFILES_DIR, SESSIONS_DIR, TMP_ROOT } from ${JSON.stringify(configHref)}; console.log(JSON.stringify({ DATA_ROOT, RECIPES_DIR, RUNS_DIR, PROFILES_DIR, SESSIONS_DIR, TMP_ROOT, TMPDIR: process.env.TMPDIR, TMP: process.env.TMP, TEMP: process.env.TEMP, BUN_TMPDIR: process.env.BUN_TMPDIR }));`,
22
+ ], {
23
+ cwd,
24
+ encoding: "utf8",
25
+ env: {
26
+ ...process.env,
27
+ HOME: home,
28
+ XDG_DATA_HOME: xdgDataHome,
29
+ TMPDIR: ".",
30
+ TMP: `${home}${path.sep}`,
31
+ TEMP: "./",
32
+ BUN_TMPDIR: `${cwd}${path.sep}`,
33
+ },
34
+ });
35
+ assert.equal(result.status, 0, result.stderr);
36
+ const parsed = JSON.parse(result.stdout.trim());
37
+ const expectedDataRoot = path.join(xdgDataHome, "web-task-api");
38
+ const expectedTempRoot = path.join(expectedDataRoot, "tmp");
39
+ assert.equal(parsed.DATA_ROOT, expectedDataRoot);
40
+ assert.equal(parsed.RUNS_DIR, path.join(expectedDataRoot, "runs"));
41
+ assert.equal(parsed.PROFILES_DIR, path.join(expectedDataRoot, "profiles"));
42
+ assert.equal(parsed.SESSIONS_DIR, path.join(expectedDataRoot, "sessions"));
43
+ assert.equal(parsed.RECIPES_DIR, path.join(projectRoot, "recipes"));
44
+ assert.equal(parsed.TMP_ROOT, expectedTempRoot);
45
+ assert.equal(parsed.TMPDIR, expectedTempRoot);
46
+ assert.equal(parsed.TMP, expectedTempRoot);
47
+ assert.equal(parsed.TEMP, expectedTempRoot);
48
+ assert.equal(parsed.BUN_TMPDIR, expectedTempRoot);
49
+ }
50
+ finally {
51
+ rmSync(sandbox, { recursive: true, force: true });
52
+ }
53
+ });
54
+ test("config honors explicit data, recipes, and temp overrides", () => {
55
+ const sandbox = mkdtempSync(path.join(tmpdir(), "web-task-api-config-override-"));
56
+ const cwd = path.join(sandbox, "ambient-cwd");
57
+ const dataRoot = path.join(sandbox, "custom-data");
58
+ const recipesRoot = path.join(sandbox, "custom-recipes");
59
+ const tempRoot = path.join(sandbox, "custom-temp");
60
+ mkdirSync(cwd, { recursive: true });
61
+ mkdirSync(recipesRoot, { recursive: true });
62
+ try {
63
+ const result = spawnSync(tsxBin, [
64
+ "-e",
65
+ `import { DATA_ROOT, RECIPES_DIR, RUNS_DIR, PROFILES_DIR, SESSIONS_DIR, TMP_ROOT } from ${JSON.stringify(configHref)}; console.log(JSON.stringify({ DATA_ROOT, RECIPES_DIR, RUNS_DIR, PROFILES_DIR, SESSIONS_DIR, TMP_ROOT }));`,
66
+ ], {
67
+ cwd,
68
+ encoding: "utf8",
69
+ env: {
70
+ ...process.env,
71
+ WEB_TASK_API_DATA_DIR: dataRoot,
72
+ WEB_TASK_API_RECIPES_DIR: recipesRoot,
73
+ WEB_TASK_API_TEMP_DIR: tempRoot,
74
+ },
75
+ });
76
+ assert.equal(result.status, 0, result.stderr);
77
+ const parsed = JSON.parse(result.stdout.trim());
78
+ assert.equal(parsed.DATA_ROOT, dataRoot);
79
+ assert.equal(parsed.RECIPES_DIR, recipesRoot);
80
+ assert.equal(parsed.RUNS_DIR, path.join(dataRoot, "runs"));
81
+ assert.equal(parsed.PROFILES_DIR, path.join(dataRoot, "profiles"));
82
+ assert.equal(parsed.SESSIONS_DIR, path.join(dataRoot, "sessions"));
83
+ assert.equal(parsed.TMP_ROOT, tempRoot);
84
+ }
85
+ finally {
86
+ rmSync(sandbox, { recursive: true, force: true });
87
+ }
88
+ });
89
+ //# sourceMappingURL=config-paths.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-paths.test.js","sourceRoot":"","sources":["../../tests/config-paths.test.ts"],"names":[],"mappings":"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"}
@@ -24,7 +24,10 @@ test("MCP server exposes web-task tools", async (t) => {
24
24
  await transport.close();
25
25
  });
26
26
  const result = await client.listTools();
27
+ const serverInfo = client.getServerVersion();
27
28
  const toolNames = result.tools.map((tool) => tool.name).sort();
29
+ assert.equal(serverInfo?.name, "web-task-api");
30
+ assert.equal(serverInfo?.title, "Web Task");
28
31
  assert.deepEqual(toolNames, [
29
32
  "webtask_create_session",
30
33
  "webtask_get_session",
@@ -37,10 +40,31 @@ test("MCP server exposes web-task tools", async (t) => {
37
40
  ]);
38
41
  const runTool = result.tools.find((tool) => tool.name === "webtask_run");
39
42
  assert.ok(runTool);
43
+ assert.equal(runTool.title, "Run Web Task");
44
+ assert.match(runTool.description || "", /goal and optional URL/i);
45
+ assert.equal(runTool.annotations?.title, "Run Web Task");
46
+ assert.equal(runTool.annotations?.readOnlyHint, false);
47
+ assert.equal(runTool.annotations?.openWorldHint, true);
40
48
  const runProperties = runTool.inputSchema.properties || {};
41
49
  assert.ok("session_id" in runProperties);
42
50
  assert.ok("recipe_id" in runProperties);
43
51
  assert.ok("output_schema" in runProperties);
52
+ assert.match(String(runProperties.session_id?.description || ""), /reuse|continue/i);
53
+ const getTaskTool = result.tools.find((tool) => tool.name === "webtask_get_task");
54
+ assert.ok(getTaskTool);
55
+ assert.equal(getTaskTool.title, "Get Web Task");
56
+ assert.equal(getTaskTool.annotations?.readOnlyHint, true);
57
+ assert.equal(getTaskTool.annotations?.openWorldHint, false);
58
+ const createSessionTool = result.tools.find((tool) => tool.name === "webtask_create_session");
59
+ assert.ok(createSessionTool);
60
+ assert.equal(createSessionTool.title, "Create Web Session");
61
+ assert.match(createSessionTool.description || "", /browser-state continuity/i);
62
+ assert.equal(createSessionTool.annotations?.readOnlyHint, false);
63
+ assert.equal(createSessionTool.annotations?.openWorldHint, false);
64
+ const healthTool = result.tools.find((tool) => tool.name === "webtask_health");
65
+ assert.ok(healthTool);
66
+ assert.equal(healthTool.title, "Web Task Health");
67
+ assert.equal(healthTool.annotations?.readOnlyHint, true);
44
68
  assert.equal(stderrChunks.join(""), "");
45
69
  });
46
70
  test("MCP session tools roundtrip and run a fixture task", async (t) => {
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.test.js","sourceRoot":"","sources":["../../tests/mcp.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp.test.js","sourceRoot":"","sources":["../../tests/mcp.test.ts"],"names":[],"mappings":"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"}
package/docs/design.md CHANGED
@@ -419,6 +419,8 @@ The bundled GMGN/Dexscreener recipes should therefore be treated as starter reci
419
419
 
420
420
  ## Planned directory structure
421
421
 
422
+ Package tree:
423
+
422
424
  ```text
423
425
  src/
424
426
  agents/
@@ -433,8 +435,17 @@ tests/
433
435
  scripts/
434
436
  docs/
435
437
  examples/
436
- profiles/
437
- runs/
438
+ recipes/
439
+ ```
440
+
441
+ Default runtime data root (outside the package / ambient cwd):
442
+
443
+ ```text
444
+ <data-root>/
445
+ profiles/
446
+ runs/
447
+ sessions/
448
+ tmp/
438
449
  ```
439
450
 
440
451
  ## Detailed implementation plan
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "web-task-api",
3
3
  "mcpName": "io.github.rich-jojo/web-task-api",
4
- "version": "0.2.2",
4
+ "version": "0.2.4",
5
5
  "packageManager": "npm@10.8.2",
6
6
  "type": "module",
7
- "description": "General browser-task API that lets agents read and act on websites through a single runtime.",
7
+ "description": "Browser-task runtime for MCP and HTTP automation with runs, sessions, and recipes.",
8
8
  "homepage": "https://github.com/rich-jojo/web-task-api",
9
9
  "bugs": {
10
10
  "url": "https://github.com/rich-jojo/web-task-api/issues"
package/server.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
3
3
  "name": "io.github.rich-jojo/web-task-api",
4
- "title": "web-task-api",
5
- "description": "Browser-task MCP server for runs, sessions, recipes, and persisted task inspection.",
6
- "version": "0.2.2",
4
+ "title": "Web Task",
5
+ "description": "Browser tasks, sessions, and recipes for MCP and HTTP automation.",
6
+ "version": "0.2.4",
7
7
  "repository": {
8
8
  "url": "https://github.com/rich-jojo/web-task-api",
9
9
  "source": "github"
@@ -12,11 +12,32 @@
12
12
  {
13
13
  "registryType": "npm",
14
14
  "identifier": "web-task-api",
15
- "version": "0.2.2",
15
+ "version": "0.2.4",
16
16
  "transport": {
17
17
  "type": "stdio"
18
18
  },
19
19
  "environmentVariables": [
20
+ {
21
+ "name": "WEB_TASK_API_DATA_DIR",
22
+ "description": "Optional mutable data root for web-task-api runs, sessions, profiles, and temp state. When omitted, the runtime uses a platform user-data directory instead of the ambient cwd.",
23
+ "isRequired": false,
24
+ "isSecret": false,
25
+ "format": "string"
26
+ },
27
+ {
28
+ "name": "WEB_TASK_API_RECIPES_DIR",
29
+ "description": "Optional recipes directory override. When omitted, web-task-api reads bundled recipes from the installed package.",
30
+ "isRequired": false,
31
+ "isSecret": false,
32
+ "format": "string"
33
+ },
34
+ {
35
+ "name": "WEB_TASK_API_TEMP_DIR",
36
+ "description": "Optional temp root override used when incoming temp env variables point at your home directory or working directory.",
37
+ "isRequired": false,
38
+ "isSecret": false,
39
+ "format": "string"
40
+ },
20
41
  {
21
42
  "name": "CLIPROXY_BASE_URL",
22
43
  "description": "Optional CLIProxy base URL for the cliproxy planner backend.",