@jiggai/kitchen 0.5.14 → 0.5.15
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/.next/BUILD_ID +1 -1
- package/.next/build-manifest.json +2 -2
- package/.next/prerender-manifest.json +3 -3
- package/.next/server/app/_global-error.html +2 -2
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +2 -2
- package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/api/agents/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/agents/file/route.js.nft.json +1 -1
- package/.next/server/app/api/agents/files/route.js.nft.json +1 -1
- package/.next/server/app/api/agents/skills/install/route.js.nft.json +1 -1
- package/.next/server/app/api/agents/skills/route.js.nft.json +1 -1
- package/.next/server/app/api/cron/add/route.js.nft.json +1 -1
- package/.next/server/app/api/cron/bulk/route.js.nft.json +1 -1
- package/.next/server/app/api/cron/delete/route.js.nft.json +1 -1
- package/.next/server/app/api/cron/edit/route.js.nft.json +1 -1
- package/.next/server/app/api/cron/job/route.js.nft.json +1 -1
- package/.next/server/app/api/cron/jobs/route.js.nft.json +1 -1
- package/.next/server/app/api/cron/recipe-installed/route.js.nft.json +1 -1
- package/.next/server/app/api/cron/worker/route.js.nft.json +1 -1
- package/.next/server/app/api/goals/[id]/promote/route.js.nft.json +1 -1
- package/.next/server/app/api/goals/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/goals/route.js.nft.json +1 -1
- package/.next/server/app/api/recipes/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/recipes/clone/route.js.nft.json +1 -1
- package/.next/server/app/api/recipes/delete/route.js.nft.json +1 -1
- package/.next/server/app/api/teams/[teamId]/media-providers/route.js.nft.json +1 -1
- package/.next/server/app/api/teams/[teamId]/tickets/assign/route.js.nft.json +1 -1
- package/.next/server/app/api/teams/[teamId]/tickets/comment/route.js.nft.json +1 -1
- package/.next/server/app/api/teams/[teamId]/tickets/delete/route.js.nft.json +1 -1
- package/.next/server/app/api/teams/[teamId]/tickets/move/route.js.nft.json +1 -1
- package/.next/server/app/api/teams/[teamId]/tickets/move-to-goals/route.js.nft.json +1 -1
- package/.next/server/app/api/teams/file/route.js.nft.json +1 -1
- package/.next/server/app/api/teams/files/route.js.nft.json +1 -1
- package/.next/server/app/api/teams/memory/route.js.nft.json +1 -1
- package/.next/server/app/api/teams/meta/route.js.nft.json +1 -1
- package/.next/server/app/api/teams/orchestrator/route.js.nft.json +1 -1
- package/.next/server/app/api/teams/plugins/route.js.nft.json +1 -1
- package/.next/server/app/api/teams/remove-team/route.js.nft.json +1 -1
- package/.next/server/app/api/teams/skills/install/route.js.nft.json +1 -1
- package/.next/server/app/api/teams/skills/route.js.nft.json +1 -1
- package/.next/server/app/api/teams/workflow-runs/route.js.nft.json +1 -1
- package/.next/server/app/api/teams/workflow-templates/route.js.nft.json +1 -1
- package/.next/server/app/api/teams/workflows/route.js.nft.json +1 -1
- package/.next/server/app/api/tickets/assign/route.js.nft.json +1 -1
- package/.next/server/app/api/tickets/assignees/route.js.nft.json +1 -1
- package/.next/server/app/api/tickets/move/route.js.nft.json +1 -1
- package/.next/server/app/channels.html +2 -2
- package/.next/server/app/channels.rsc +2 -2
- package/.next/server/app/channels.segments/_full.segment.rsc +2 -2
- package/.next/server/app/channels.segments/_head.segment.rsc +1 -1
- package/.next/server/app/channels.segments/_index.segment.rsc +1 -1
- package/.next/server/app/channels.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/channels.segments/channels/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/channels.segments/channels.segment.rsc +1 -1
- package/.next/server/app/goals/new.html +2 -2
- package/.next/server/app/goals/new.rsc +2 -2
- package/.next/server/app/goals/new.segments/_full.segment.rsc +2 -2
- package/.next/server/app/goals/new.segments/_head.segment.rsc +1 -1
- package/.next/server/app/goals/new.segments/_index.segment.rsc +1 -1
- package/.next/server/app/goals/new.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/goals/new.segments/goals/new/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/goals/new.segments/goals/new.segment.rsc +1 -1
- package/.next/server/app/goals/new.segments/goals.segment.rsc +1 -1
- package/.next/server/app/goals.html +1 -1
- package/.next/server/app/goals.rsc +2 -2
- package/.next/server/app/goals.segments/_full.segment.rsc +2 -2
- package/.next/server/app/goals.segments/_head.segment.rsc +1 -1
- package/.next/server/app/goals.segments/_index.segment.rsc +1 -1
- package/.next/server/app/goals.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/goals.segments/goals/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/goals.segments/goals.segment.rsc +1 -1
- package/.next/server/app/page.js.nft.json +1 -1
- package/.next/server/app/recipes/[id]/page.js.nft.json +1 -1
- package/.next/server/app/settings.html +1 -1
- package/.next/server/app/settings.rsc +2 -2
- package/.next/server/app/settings.segments/_full.segment.rsc +2 -2
- package/.next/server/app/settings.segments/_head.segment.rsc +1 -1
- package/.next/server/app/settings.segments/_index.segment.rsc +1 -1
- package/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/settings.segments/settings.segment.rsc +1 -1
- package/.next/server/app/teams/[teamId]/deliverables/page.js.nft.json +1 -1
- package/.next/server/app/teams/[teamId]/runs/[workflowId]/[runId]/page.js.nft.json +1 -1
- package/.next/server/app/teams/[teamId]/tickets/[ticket]/page.js.nft.json +1 -1
- package/.next/server/app/teams/[teamId]/tickets/page.js.nft.json +1 -1
- package/.next/server/app/teams/[teamId]/workflows/[workflowId]/page.js.nft.json +1 -1
- package/.next/server/app/teams/[teamId]/workflows/page.js.nft.json +1 -1
- package/.next/server/app/tickets/[ticket]/page.js.nft.json +1 -1
- package/.next/server/app/tickets/page.js.nft.json +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__3b880807._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__3b880807._.js.map +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +2 -2
- package/.next/server/server-reference-manifest.js +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/dist/openclaw/index.mjs +367 -0
- package/openclaw/index.ts +32 -18
- package/openclaw.plugin.json +2 -2
- package/package.json +15 -8
- /package/.next/static/{hVuTmEwBY-XkWAfHbqy43 → IT2h_v3OwuOLwfsaG6ygp}/_buildManifest.js +0 -0
- /package/.next/static/{hVuTmEwBY-XkWAfHbqy43 → IT2h_v3OwuOLwfsaG6ygp}/_clientMiddlewareManifest.json +0 -0
- /package/.next/static/{hVuTmEwBY-XkWAfHbqy43 → IT2h_v3OwuOLwfsaG6ygp}/_ssgManifest.js +0 -0
package/openclaw/index.ts
CHANGED
|
@@ -90,6 +90,22 @@ function parseCookies(req: http.IncomingMessage): Record<string, string> {
|
|
|
90
90
|
let server: http.Server | null = null;
|
|
91
91
|
let startedAt: string | null = null;
|
|
92
92
|
|
|
93
|
+
function resolveKitchenRoot() {
|
|
94
|
+
const moduleDir = path.dirname(fileURLToPath(import.meta.url));
|
|
95
|
+
const candidates = [moduleDir, path.resolve(moduleDir, ".."), path.resolve(moduleDir, "../..")];
|
|
96
|
+
for (const candidate of candidates) {
|
|
97
|
+
const packageJsonPath = path.join(candidate, "package.json");
|
|
98
|
+
if (!fs.existsSync(packageJsonPath)) continue;
|
|
99
|
+
try {
|
|
100
|
+
const pkg = JSON.parse(fs.readFileSync(packageJsonPath, "utf8"));
|
|
101
|
+
if (pkg?.name === "@jiggai/kitchen") return candidate;
|
|
102
|
+
} catch {
|
|
103
|
+
// Keep looking; a malformed package.json should not hide a valid root candidate.
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return path.resolve(moduleDir, "..");
|
|
107
|
+
}
|
|
108
|
+
|
|
93
109
|
async function startKitchen(api: OpenClawPluginApi, cfg: KitchenConfig) {
|
|
94
110
|
if (server) return;
|
|
95
111
|
|
|
@@ -108,7 +124,7 @@ async function startKitchen(api: OpenClawPluginApi, cfg: KitchenConfig) {
|
|
|
108
124
|
);
|
|
109
125
|
}
|
|
110
126
|
|
|
111
|
-
const rootDir =
|
|
127
|
+
const rootDir = resolveKitchenRoot();
|
|
112
128
|
|
|
113
129
|
// Ensure better-sqlite3 native binary is compiled for this platform.
|
|
114
130
|
// openclaw installs plugins with --ignore-scripts, so node-gyp never runs.
|
|
@@ -427,23 +443,21 @@ const kitchenPlugin = {
|
|
|
427
443
|
{ commands: ["kitchen"] },
|
|
428
444
|
);
|
|
429
445
|
|
|
430
|
-
api.
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
}
|
|
446
|
-
},
|
|
446
|
+
api.on("gateway_start", async () => {
|
|
447
|
+
if (cfg.enabled === false) return;
|
|
448
|
+
try {
|
|
449
|
+
await startKitchen(api, cfg);
|
|
450
|
+
} catch (e: unknown) {
|
|
451
|
+
api.logger.error(`[kitchen] failed to start: ${e instanceof Error ? e.message : String(e)}`);
|
|
452
|
+
}
|
|
453
|
+
});
|
|
454
|
+
|
|
455
|
+
api.on("gateway_stop", async () => {
|
|
456
|
+
try {
|
|
457
|
+
await stopKitchen(api);
|
|
458
|
+
} catch (e: unknown) {
|
|
459
|
+
api.logger.error(`[kitchen] failed to stop: ${e instanceof Error ? e.message : String(e)}`);
|
|
460
|
+
}
|
|
447
461
|
});
|
|
448
462
|
},
|
|
449
463
|
};
|
package/openclaw.plugin.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"id": "kitchen",
|
|
3
3
|
"name": "ClawKitchen",
|
|
4
4
|
"description": "Local UI for managing OpenClaw recipes, teams, agents, cron jobs, and skills.",
|
|
5
|
-
"version": "0.5.
|
|
5
|
+
"version": "0.5.15",
|
|
6
6
|
"configSchema": {
|
|
7
7
|
"type": "object",
|
|
8
8
|
"additionalProperties": false,
|
|
@@ -74,5 +74,5 @@
|
|
|
74
74
|
"help": "on: require Basic auth; local: allow localhost unauthenticated; off: disable auth (not recommended)."
|
|
75
75
|
}
|
|
76
76
|
},
|
|
77
|
-
"main": "openclaw/index.
|
|
77
|
+
"main": "dist/openclaw/index.mjs"
|
|
78
78
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jiggai/kitchen",
|
|
3
|
-
"version": "0.5.
|
|
4
|
-
"main": "openclaw/index.
|
|
3
|
+
"version": "0.5.15",
|
|
4
|
+
"main": "dist/openclaw/index.mjs",
|
|
5
5
|
"description": "ClawKitchen - Web-based dashboard for OpenClaw agent teams, workflows, and automation",
|
|
6
6
|
"author": "@rjdjohnston · rjdjohnston",
|
|
7
7
|
"license": "Apache-2.0",
|
|
@@ -23,11 +23,14 @@
|
|
|
23
23
|
],
|
|
24
24
|
"compat": {
|
|
25
25
|
"pluginApi": ">=1.0.0",
|
|
26
|
-
"pluginApiRange": ">=2026.
|
|
26
|
+
"pluginApiRange": ">=2026.5"
|
|
27
27
|
},
|
|
28
28
|
"build": {
|
|
29
|
-
"openclawVersion": "2026.
|
|
30
|
-
}
|
|
29
|
+
"openclawVersion": "2026.5.7"
|
|
30
|
+
},
|
|
31
|
+
"runtimeExtensions": [
|
|
32
|
+
"./dist/openclaw/index.mjs"
|
|
33
|
+
]
|
|
31
34
|
},
|
|
32
35
|
"scripts": {
|
|
33
36
|
"dev": "next dev",
|
|
@@ -43,15 +46,18 @@
|
|
|
43
46
|
"refactor:report": "node scripts/refactor-report.mjs",
|
|
44
47
|
"smoke:goals": "node scripts/goals-smoke.mjs",
|
|
45
48
|
"prepare": "husky || true",
|
|
46
|
-
"prepack": "npm run -s sync:plugin-version && npm run -s check:plugin-version",
|
|
49
|
+
"prepack": "npm run -s build:plugin && npm run -s sync:plugin-version && npm run -s check:plugin-version",
|
|
47
50
|
"sync:plugin-version": "node scripts/sync-openclaw-plugin-version.mjs",
|
|
48
51
|
"check:plugin-version": "node scripts/check-openclaw-plugin-version.mjs",
|
|
49
|
-
"prepublishOnly": "npm run -s sync:plugin-version && npm run -s check:plugin-version"
|
|
52
|
+
"prepublishOnly": "npm run -s build:plugin && npm run -s sync:plugin-version && npm run -s check:plugin-version",
|
|
53
|
+
"build:plugin": "esbuild openclaw/index.ts --bundle --platform=node --format=esm --target=node20 --outfile=dist/openclaw/index.mjs --external:openclaw/plugin-sdk --external:next",
|
|
54
|
+
"verify:runtime-package": "node scripts/verify-runtime-package.mjs"
|
|
50
55
|
},
|
|
51
56
|
"publishConfig": {
|
|
52
57
|
"access": "public"
|
|
53
58
|
},
|
|
54
59
|
"files": [
|
|
60
|
+
"dist/openclaw/",
|
|
55
61
|
"openclaw/",
|
|
56
62
|
"openclaw.plugin.json",
|
|
57
63
|
"README.md",
|
|
@@ -102,7 +108,8 @@
|
|
|
102
108
|
"tailwindcss": "^4",
|
|
103
109
|
"typescript": "5.9.3",
|
|
104
110
|
"vite-tsconfig-paths": "^6.1.1",
|
|
105
|
-
"vitest": "^4.0.18"
|
|
111
|
+
"vitest": "^4.0.18",
|
|
112
|
+
"esbuild": "^0.27.3"
|
|
106
113
|
},
|
|
107
114
|
"lint-staged": {
|
|
108
115
|
"*.{ts,tsx}": "eslint --fix"
|
|
File without changes
|
/package/.next/static/{hVuTmEwBY-XkWAfHbqy43 → IT2h_v3OwuOLwfsaG6ygp}/_clientMiddlewareManifest.json
RENAMED
|
File without changes
|
|
File without changes
|