@openclaw/lobster 2026.6.6 → 2026.6.8-beta.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.
package/dist/index.js CHANGED
@@ -104,6 +104,12 @@ async function installLobsterAjvCompileCache(packageEntryPath) {
104
104
  //#endregion
105
105
  //#region extensions/lobster/src/lobster-runner.ts
106
106
  const lobsterRequire = createRequire(import.meta.url);
107
+ const workflowExts = new Set([
108
+ ".lobster",
109
+ ".yaml",
110
+ ".yml",
111
+ ".json"
112
+ ]);
107
113
  function toEmbeddedToolRuntime(moduleExports, source) {
108
114
  const { runToolRequest, resumeToolRequest } = moduleExports;
109
115
  if (typeof runToolRequest === "function" && typeof resumeToolRequest === "function") return {
@@ -188,21 +194,24 @@ async function resolveWorkflowFile(candidate, cwd) {
188
194
  const resolved = path.isAbsolute(candidate) ? candidate : path.resolve(cwd, candidate);
189
195
  if (!(await stat(resolved)).isFile()) throw new Error("Workflow path is not a file");
190
196
  const ext = path.extname(resolved).toLowerCase();
191
- if (![
192
- ".lobster",
193
- ".yaml",
194
- ".yml",
195
- ".json"
196
- ].includes(ext)) throw new Error("Workflow file must end in .lobster, .yaml, .yml, or .json");
197
+ if (!workflowExts.has(ext)) throw new Error("Workflow file must end in .lobster, .yaml, .yml, or .json");
197
198
  return resolved;
198
199
  }
200
+ function isMissingPathError(error) {
201
+ return typeof error === "object" && error !== null && "code" in error && error.code === "ENOENT";
202
+ }
203
+ function hasWorkflowFileExtension(candidate) {
204
+ return workflowExts.has(path.extname(candidate).toLowerCase());
205
+ }
199
206
  async function detectWorkflowFile(candidate, cwd) {
200
207
  const trimmed = candidate.trim();
201
- if (!trimmed || trimmed.includes("|")) return null;
208
+ if (!trimmed || trimmed.includes("|") || !hasWorkflowFileExtension(trimmed)) return null;
209
+ if (!/\s/.test(trimmed)) return await resolveWorkflowFile(trimmed, cwd);
202
210
  try {
203
211
  return await resolveWorkflowFile(trimmed, cwd);
204
- } catch {
205
- return null;
212
+ } catch (error) {
213
+ if (isMissingPathError(error)) return null;
214
+ throw error;
206
215
  }
207
216
  }
208
217
  function parseWorkflowArgs(argsJson) {
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@openclaw/lobster",
3
- "version": "2026.6.6",
3
+ "version": "2026.6.8-beta.2",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@openclaw/lobster",
9
- "version": "2026.6.6",
9
+ "version": "2026.6.8-beta.2",
10
10
  "dependencies": {
11
11
  "@clawdbot/lobster": "2026.5.22",
12
12
  "typebox": "1.1.39"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openclaw/lobster",
3
- "version": "2026.6.6",
3
+ "version": "2026.6.8-beta.2",
4
4
  "description": "Lobster workflow tool plugin for typed pipelines and resumable approvals.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -21,10 +21,10 @@
21
21
  "minHostVersion": ">=2026.4.25"
22
22
  },
23
23
  "compat": {
24
- "pluginApi": ">=2026.6.6"
24
+ "pluginApi": ">=2026.6.8-beta.2"
25
25
  },
26
26
  "build": {
27
- "openclawVersion": "2026.6.6"
27
+ "openclawVersion": "2026.6.8-beta.2"
28
28
  },
29
29
  "release": {
30
30
  "publishToClawHub": true,
@@ -42,7 +42,7 @@
42
42
  "SKILL.md"
43
43
  ],
44
44
  "peerDependencies": {
45
- "openclaw": ">=2026.6.6"
45
+ "openclaw": ">=2026.6.8-beta.2"
46
46
  },
47
47
  "peerDependenciesMeta": {
48
48
  "openclaw": {