skill-chef 0.3.0 → 0.3.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/SKILL.md +2 -2
- package/dist/add/commands.d.ts +15 -0
- package/dist/add/commands.d.ts.map +1 -0
- package/dist/add/commands.js +22 -0
- package/dist/add/commands.js.map +1 -0
- package/dist/add/index.d.ts +10 -0
- package/dist/add/index.d.ts.map +1 -0
- package/dist/add/index.js +10 -0
- package/dist/add/index.js.map +1 -0
- package/dist/add/routes.d.ts +11 -0
- package/dist/add/routes.d.ts.map +1 -0
- package/dist/add/routes.js +23 -0
- package/dist/add/routes.js.map +1 -0
- package/dist/add/run-write.d.ts +37 -0
- package/dist/add/run-write.d.ts.map +1 -0
- package/dist/add/run-write.js +187 -0
- package/dist/add/run-write.js.map +1 -0
- package/dist/cli/cmd_read.js +32 -289
- package/dist/cli/cmd_read.js.map +1 -1
- package/dist/cli/config.d.ts +6 -2
- package/dist/cli/config.d.ts.map +1 -1
- package/dist/cli/config.js +9 -3
- package/dist/cli/config.js.map +1 -1
- package/dist/cli/keys.d.ts +12 -0
- package/dist/cli/keys.d.ts.map +1 -0
- package/dist/cli/keys.js +58 -0
- package/dist/cli/keys.js.map +1 -0
- package/dist/config.d.ts +14 -6
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +73 -18
- package/dist/config.js.map +1 -1
- package/dist/cook/commands.d.ts +13 -0
- package/dist/cook/commands.d.ts.map +1 -0
- package/dist/cook/commands.js +21 -0
- package/dist/cook/commands.js.map +1 -0
- package/dist/cook/index.d.ts +9 -0
- package/dist/cook/index.d.ts.map +1 -0
- package/dist/cook/index.js +9 -0
- package/dist/cook/index.js.map +1 -0
- package/dist/cook/routes.d.ts +11 -0
- package/dist/cook/routes.d.ts.map +1 -0
- package/dist/cook/routes.js +35 -0
- package/dist/cook/routes.js.map +1 -0
- package/dist/cook/run.d.ts +24 -0
- package/dist/cook/run.d.ts.map +1 -0
- package/dist/cook/run.js +46 -0
- package/dist/cook/run.js.map +1 -0
- package/dist/data/commands.d.ts +12 -0
- package/dist/data/commands.d.ts.map +1 -0
- package/dist/data/commands.js +11 -0
- package/dist/data/commands.js.map +1 -0
- package/dist/data/index.d.ts +9 -0
- package/dist/data/index.d.ts.map +1 -0
- package/dist/data/index.js +9 -0
- package/dist/data/index.js.map +1 -0
- package/dist/data/routes.d.ts +12 -0
- package/dist/data/routes.d.ts.map +1 -0
- package/dist/data/routes.js +19 -0
- package/dist/data/routes.js.map +1 -0
- package/dist/data/run-query.d.ts +15 -0
- package/dist/data/run-query.d.ts.map +1 -0
- package/dist/data/run-query.js +73 -0
- package/dist/data/run-query.js.map +1 -0
- package/dist/fetch/db.d.ts +11 -31
- package/dist/fetch/db.d.ts.map +1 -1
- package/dist/fetch/db.js +39 -317
- package/dist/fetch/db.js.map +1 -1
- package/dist/fetch/index.d.ts +7 -1
- package/dist/fetch/index.d.ts.map +1 -1
- package/dist/fetch/index.js +9 -1
- package/dist/fetch/index.js.map +1 -1
- package/dist/fetch/paths.d.ts +37 -3
- package/dist/fetch/paths.d.ts.map +1 -1
- package/dist/fetch/paths.js +59 -8
- package/dist/fetch/paths.js.map +1 -1
- package/dist/fetch/schema.d.ts +7 -0
- package/dist/fetch/schema.d.ts.map +1 -0
- package/dist/fetch/schema.js +53 -0
- package/dist/fetch/schema.js.map +1 -0
- package/dist/health.d.ts.map +1 -1
- package/dist/health.js +7 -16
- package/dist/health.js.map +1 -1
- package/dist/help/manifest.d.ts +12 -5
- package/dist/help/manifest.d.ts.map +1 -1
- package/dist/help/manifest.js +15 -7
- package/dist/help/manifest.js.map +1 -1
- package/dist/history/commands.d.ts +32 -0
- package/dist/history/commands.d.ts.map +1 -0
- package/dist/history/commands.js +32 -0
- package/dist/history/commands.js.map +1 -0
- package/dist/history/index.d.ts +11 -0
- package/dist/history/index.d.ts.map +1 -0
- package/dist/history/index.js +9 -0
- package/dist/history/index.js.map +1 -0
- package/dist/history/routes.d.ts +19 -0
- package/dist/history/routes.d.ts.map +1 -0
- package/dist/history/routes.js +49 -0
- package/dist/history/routes.js.map +1 -0
- package/dist/history/run-query.d.ts +13 -0
- package/dist/history/run-query.d.ts.map +1 -0
- package/dist/history/run-query.js +44 -0
- package/dist/history/run-query.js.map +1 -0
- package/dist/history/run-record.d.ts +21 -0
- package/dist/history/run-record.d.ts.map +1 -0
- package/dist/history/run-record.js +71 -0
- package/dist/history/run-record.js.map +1 -0
- package/dist/relation/commands.d.ts +10 -0
- package/dist/relation/commands.d.ts.map +1 -0
- package/dist/relation/commands.js +9 -0
- package/dist/relation/commands.js.map +1 -0
- package/dist/relation/index.d.ts +8 -0
- package/dist/relation/index.d.ts.map +1 -0
- package/dist/relation/index.js +8 -0
- package/dist/relation/index.js.map +1 -0
- package/dist/relation/routes.d.ts +10 -0
- package/dist/relation/routes.d.ts.map +1 -0
- package/dist/relation/routes.js +28 -0
- package/dist/relation/routes.js.map +1 -0
- package/dist/render/index.d.ts +7 -1
- package/dist/render/index.d.ts.map +1 -1
- package/dist/render/index.js +9 -1
- package/dist/render/index.js.map +1 -1
- package/dist/render/views.d.ts +1 -39
- package/dist/render/views.d.ts.map +1 -1
- package/dist/render/views.js +6 -56
- package/dist/render/views.js.map +1 -1
- package/dist/search/commands.d.ts +14 -0
- package/dist/search/commands.d.ts.map +1 -0
- package/dist/search/commands.js +22 -0
- package/dist/search/commands.js.map +1 -0
- package/dist/search/index.d.ts +9 -0
- package/dist/search/index.d.ts.map +1 -0
- package/dist/search/index.js +9 -0
- package/dist/search/index.js.map +1 -0
- package/dist/search/routes.d.ts +11 -0
- package/dist/search/routes.d.ts.map +1 -0
- package/dist/search/routes.js +59 -0
- package/dist/search/routes.js.map +1 -0
- package/dist/search/run.d.ts +22 -0
- package/dist/search/run.d.ts.map +1 -0
- package/dist/search/run.js +105 -0
- package/dist/search/run.js.map +1 -0
- package/dist/setup/commands.d.ts +10 -0
- package/dist/setup/commands.d.ts.map +1 -0
- package/dist/setup/commands.js +9 -0
- package/dist/setup/commands.js.map +1 -0
- package/dist/setup/index.d.ts +8 -0
- package/dist/setup/index.d.ts.map +1 -0
- package/dist/setup/index.js +8 -0
- package/dist/setup/index.js.map +1 -0
- package/dist/setup/routes.d.ts +10 -0
- package/dist/setup/routes.d.ts.map +1 -0
- package/dist/setup/routes.js +16 -0
- package/dist/setup/routes.js.map +1 -0
- package/dist/shared/command-spec.d.ts +42 -0
- package/dist/shared/command-spec.d.ts.map +1 -0
- package/dist/shared/command-spec.js +15 -0
- package/dist/shared/command-spec.js.map +1 -0
- package/dist/shared/slots.d.ts +24 -0
- package/dist/shared/slots.d.ts.map +1 -0
- package/dist/shared/slots.js +63 -0
- package/dist/shared/slots.js.map +1 -0
- package/dist/shopping/commands.d.ts +13 -0
- package/dist/shopping/commands.d.ts.map +1 -0
- package/dist/shopping/commands.js +21 -0
- package/dist/shopping/commands.js.map +1 -0
- package/dist/shopping/index.d.ts +9 -0
- package/dist/shopping/index.d.ts.map +1 -0
- package/dist/shopping/index.js +9 -0
- package/dist/shopping/index.js.map +1 -0
- package/dist/shopping/routes.d.ts +11 -0
- package/dist/shopping/routes.d.ts.map +1 -0
- package/dist/shopping/routes.js +35 -0
- package/dist/shopping/routes.js.map +1 -0
- package/dist/shopping/run.d.ts +24 -0
- package/dist/shopping/run.d.ts.map +1 -0
- package/dist/shopping/run.js +74 -0
- package/dist/shopping/run.js.map +1 -0
- package/dist/triggers/chef-scenes.d.ts +47 -0
- package/dist/triggers/chef-scenes.d.ts.map +1 -0
- package/dist/triggers/chef-scenes.js +174 -0
- package/dist/triggers/chef-scenes.js.map +1 -0
- package/dist/update/commands.d.ts +12 -0
- package/dist/update/commands.d.ts.map +1 -0
- package/dist/update/commands.js +11 -0
- package/dist/update/commands.js.map +1 -0
- package/dist/update/index.d.ts +9 -0
- package/dist/update/index.d.ts.map +1 -0
- package/dist/update/index.js +9 -0
- package/dist/update/index.js.map +1 -0
- package/dist/update/routes.d.ts +12 -0
- package/dist/update/routes.d.ts.map +1 -0
- package/dist/update/routes.js +24 -0
- package/dist/update/routes.js.map +1 -0
- package/dist/update/run-write.d.ts +19 -0
- package/dist/update/run-write.d.ts.map +1 -0
- package/dist/update/run-write.js +99 -0
- package/dist/update/run-write.js.map +1 -0
- package/dist/view/commands.d.ts +14 -0
- package/dist/view/commands.d.ts.map +1 -0
- package/dist/view/commands.js +22 -0
- package/dist/view/commands.js.map +1 -0
- package/dist/view/index.d.ts +9 -0
- package/dist/view/index.d.ts.map +1 -0
- package/dist/view/index.js +9 -0
- package/dist/view/index.js.map +1 -0
- package/dist/view/routes.d.ts +11 -0
- package/dist/view/routes.d.ts.map +1 -0
- package/dist/view/routes.js +53 -0
- package/dist/view/routes.js.map +1 -0
- package/dist/view/run.d.ts +13 -0
- package/dist/view/run.d.ts.map +1 -0
- package/dist/view/run.js +34 -0
- package/dist/view/run.js.map +1 -0
- package/dist/zzshapeprobe/commands.d.ts +3 -0
- package/dist/zzshapeprobe/commands.d.ts.map +1 -0
- package/dist/zzshapeprobe/commands.js +3 -0
- package/dist/zzshapeprobe/commands.js.map +1 -0
- package/dist/zzshapeprobe/index.d.ts +3 -0
- package/dist/zzshapeprobe/index.d.ts.map +1 -0
- package/dist/zzshapeprobe/index.js +3 -0
- package/dist/zzshapeprobe/index.js.map +1 -0
- package/dist/zzshapeprobe/routes.d.ts +3 -0
- package/dist/zzshapeprobe/routes.d.ts.map +1 -0
- package/dist/zzshapeprobe/routes.js +3 -0
- package/dist/zzshapeprobe/routes.js.map +1 -0
- package/package.json +3 -3
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/** 修改能力的路由声明(唤醒词命中哪条命令,声明面唯一一处)。
|
|
2
|
+
*
|
|
3
|
+
* 两行对应 `src/policy/wakewords.ts` 里归修改的两句唤醒词:修改食谱/废弃食谱都进
|
|
4
|
+
* `chef.recipe.write`(`preset` 分别为 `op: 'update'`/`op: 'deprecate'`)。
|
|
5
|
+
* key 名是引用(事实住 `src/add/commands.ts`),本处不定义它。
|
|
6
|
+
* `order` 取唤醒词表 1-based 下标(21–22),只保证跨域可比;全表级顺序由场景表定。
|
|
7
|
+
* 命令行写法照 `packages/skill-chef/SKILL.md` 同命令示例(空库可跑的那一行)。
|
|
8
|
+
*/
|
|
9
|
+
/** 修改能力的路由声明表:恰好导出一个声明数组。 */
|
|
10
|
+
export const UPDATE_ROUTES = [
|
|
11
|
+
{
|
|
12
|
+
order: 21,
|
|
13
|
+
wakeWord: '修改食谱',
|
|
14
|
+
key: 'chef.recipe.write',
|
|
15
|
+
cli: 'chef-cmd-read chef.recipe.write --params \'{"op":"update","name":"宫保虾球"}\'',
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
order: 22,
|
|
19
|
+
wakeWord: '废弃食谱',
|
|
20
|
+
key: 'chef.recipe.write',
|
|
21
|
+
cli: 'chef-cmd-read chef.recipe.write --params \'{"op":"deprecate","name":"宫保虾球"}\'',
|
|
22
|
+
},
|
|
23
|
+
];
|
|
24
|
+
//# sourceMappingURL=routes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/update/routes.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,6BAA6B;AAC7B,MAAM,CAAC,MAAM,aAAa,GAAyB;IACjD;QACE,KAAK,EAAE,EAAE;QACT,QAAQ,EAAE,MAAM;QAChB,GAAG,EAAE,mBAAmB;QACxB,GAAG,EAAE,4EAA4E;KAClF;IACD;QACE,KAAK,EAAE,EAAE;QACT,QAAQ,EAAE,MAAM;QAChB,GAAG,EAAE,mBAAmB;QACxB,GAAG,EAAE,+EAA+E;KACrF;CACF,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/** 修改能力的写处理(`chef.recipe.write` 的 update 系三 op)。
|
|
2
|
+
*
|
|
3
|
+
* 老分派层(`src/cli/cmd_read.ts`)`chef.recipe.write` 分支中 `update/discard/deprecate`
|
|
4
|
+
* 三路逐字节下沉:只改 import 出处,判定与装配一字不动。`add` 系三路住录入域
|
|
5
|
+
* (`src/add/run-write.ts`);op 路由由入口注册表按 `parseWriteOpCompat` 同集合切分
|
|
6
|
+
* (非法 op 入口已拦,落不到这里)。
|
|
7
|
+
*/
|
|
8
|
+
import type { ChefDb, RecipeRow } from '../fetch/db.js';
|
|
9
|
+
/** 跑 `chef.recipe.write` 的 update 系:`update`(含 patch 对象与 total_time 别名)/`discard`/`deprecate`。
|
|
10
|
+
*
|
|
11
|
+
* `op` 由入口注册表经 `parseWriteOpCompat` 算好下传(非法 op 入口已拦,落不到这里),
|
|
12
|
+
* 本函数只做本域三路分支(`update/discard/deprecate`),不重算路由键。
|
|
13
|
+
*/
|
|
14
|
+
export declare function runRecipeWriteUpdate(handle: ChefDb, params: Record<string, unknown>, op: string): unknown;
|
|
15
|
+
/** 废弃菜谱(只增不删:status 置已废弃,无物理删除)。原 `src/fetch/db.ts`,本域独占。 */
|
|
16
|
+
export declare function deprecateRecipe(h: ChefDb, id: string): RecipeRow;
|
|
17
|
+
/** 更新菜谱主表(改名撞名即拦,与新增路径同一口径)。原 `src/fetch/db.ts`,本域独占。 */
|
|
18
|
+
export declare function updateRecipe(h: ChefDb, id: string, patch: Record<string, unknown>): RecipeRow;
|
|
19
|
+
//# sourceMappingURL=run-write.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-write.d.ts","sourceRoot":"","sources":["../../src/update/run-write.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAKxD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CA+BzG;AAED,6DAA6D;AAC7D,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,SAAS,CAIhE;AAED,yDAAyD;AACzD,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CA6B7F"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/** 修改能力的写处理(`chef.recipe.write` 的 update 系三 op)。
|
|
2
|
+
*
|
|
3
|
+
* 老分派层(`src/cli/cmd_read.ts`)`chef.recipe.write` 分支中 `update/discard/deprecate`
|
|
4
|
+
* 三路逐字节下沉:只改 import 出处,判定与装配一字不动。`add` 系三路住录入域
|
|
5
|
+
* (`src/add/run-write.ts`);op 路由由入口注册表按 `parseWriteOpCompat` 同集合切分
|
|
6
|
+
* (非法 op 入口已拦,落不到这里)。
|
|
7
|
+
*/
|
|
8
|
+
import { ChefFetchError, ChefPolicyError } from '../fetch/errors.js';
|
|
9
|
+
import { canonicalRecipeName, getRecipeDetail, mustRecipe, now, qGet, qRun } from '../fetch/db.js';
|
|
10
|
+
import { buildRecipeReceipt } from '../render/index.js';
|
|
11
|
+
import { fail, resolveNameOrId } from '../shared/slots.js';
|
|
12
|
+
/** 跑 `chef.recipe.write` 的 update 系:`update`(含 patch 对象与 total_time 别名)/`discard`/`deprecate`。
|
|
13
|
+
*
|
|
14
|
+
* `op` 由入口注册表经 `parseWriteOpCompat` 算好下传(非法 op 入口已拦,落不到这里),
|
|
15
|
+
* 本函数只做本域三路分支(`update/discard/deprecate`),不重算路由键。
|
|
16
|
+
*/
|
|
17
|
+
export function runRecipeWriteUpdate(handle, params, op) {
|
|
18
|
+
if (op === 'update') {
|
|
19
|
+
const hasId = typeof params.id === 'string' && params.id.trim() ? true : false;
|
|
20
|
+
const rid = hasId
|
|
21
|
+
? params.id.trim()
|
|
22
|
+
: getRecipeDetail(handle, resolveNameOrId(params)).recipe.id;
|
|
23
|
+
const patch = {};
|
|
24
|
+
// name 为标识符时不计入补丁(仅 id 定位时 name 视为改名);其余直给字段即补丁。
|
|
25
|
+
for (const k of ['description', 'difficulty', 'servings', 'total_time_minutes', 'status', 'photo_url', 'source', 'source_url']) {
|
|
26
|
+
if (params[k] !== undefined)
|
|
27
|
+
patch[k] = params[k];
|
|
28
|
+
}
|
|
29
|
+
if (hasId && typeof params.name === 'string' && params.name.trim())
|
|
30
|
+
patch.name = params.name.trim();
|
|
31
|
+
if (patch.total_time_minutes === undefined && params.total_time !== undefined)
|
|
32
|
+
patch.total_time_minutes = params.total_time;
|
|
33
|
+
if (params.patch !== undefined && typeof params.patch === 'object' && params.patch !== null && !Array.isArray(params.patch)) {
|
|
34
|
+
for (const [k, v] of Object.entries(params.patch)) {
|
|
35
|
+
if (k === 'total_time' && patch.total_time_minutes === undefined)
|
|
36
|
+
patch.total_time_minutes = v;
|
|
37
|
+
else if (['name', 'description', 'difficulty', 'servings', 'total_time_minutes', 'status', 'photo_url', 'source', 'source_url'].includes(k))
|
|
38
|
+
patch[k] = v;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
if (!Object.keys(patch).length)
|
|
42
|
+
fail(2, 'update 至少改一个字段(name/description/difficulty/servings/total_time_minutes/status/photo_url/source/source_url/patch)');
|
|
43
|
+
const r = updateRecipe(handle, rid, patch);
|
|
44
|
+
return buildRecipeReceipt('已更新菜谱:' + r.name + '(id=' + r.id + ')');
|
|
45
|
+
}
|
|
46
|
+
if (op === 'discard' || op === 'deprecate') {
|
|
47
|
+
const id = params.id;
|
|
48
|
+
const rid = typeof id === 'string' && id.trim() ? id.trim() : getRecipeDetail(handle, resolveNameOrId(params)).recipe.id;
|
|
49
|
+
const r = deprecateRecipe(handle, rid);
|
|
50
|
+
return buildRecipeReceipt('已废弃菜谱:' + r.name + '(id=' + r.id + ',只增不删)');
|
|
51
|
+
}
|
|
52
|
+
// 不可达:入口注册表已用 `parseWriteOpCompat` 同集合拦过非法 op(原分支尾的 fail 同语义,归口径错 exit 2)。
|
|
53
|
+
throw new ChefPolicyError('POLICY_BAD_INPUT', 'recipe.write 只接受 op=add/update/discard/add-ingredient/add-step');
|
|
54
|
+
}
|
|
55
|
+
/** 废弃菜谱(只增不删:status 置已废弃,无物理删除)。原 `src/fetch/db.ts`,本域独占。 */
|
|
56
|
+
export function deprecateRecipe(h, id) {
|
|
57
|
+
const r = mustRecipe(h, id);
|
|
58
|
+
qRun(h, 'UPDATE recipes SET status = ?, updated_at = ? WHERE id = ?', ['已废弃', now(), r.id]);
|
|
59
|
+
return mustRecipe(h, r.id);
|
|
60
|
+
}
|
|
61
|
+
/** 更新菜谱主表(改名撞名即拦,与新增路径同一口径)。原 `src/fetch/db.ts`,本域独占。 */
|
|
62
|
+
export function updateRecipe(h, id, patch) {
|
|
63
|
+
const r = mustRecipe(h, id);
|
|
64
|
+
// #854(承接 #819 G1):改名撞名即拦,引用同一口径;存去空格后的名字,与新增路径一致。
|
|
65
|
+
if (patch.name !== undefined) {
|
|
66
|
+
const newName = canonicalRecipeName(patch.name);
|
|
67
|
+
if (!newName)
|
|
68
|
+
throw new ChefFetchError('CHEF_BAD_QUERY', '改名须给非空菜名 name');
|
|
69
|
+
if (newName !== canonicalRecipeName(r.name)) {
|
|
70
|
+
const hit = qGet(h, 'SELECT id FROM recipes WHERE name = ?', [newName]);
|
|
71
|
+
if (hit && String(hit.id) !== r.id)
|
|
72
|
+
throw new ChefFetchError('CHEF_RECIPE_CORRUPT', '菜名已存在:“' + newName + '”');
|
|
73
|
+
}
|
|
74
|
+
patch.name = newName;
|
|
75
|
+
}
|
|
76
|
+
const allowed = ['name', 'description', 'difficulty', 'servings', 'total_time_minutes', 'status', 'photo_url', 'source', 'source_url'];
|
|
77
|
+
const sets = [];
|
|
78
|
+
const params = [];
|
|
79
|
+
for (const k of allowed) {
|
|
80
|
+
const v = patch[k];
|
|
81
|
+
if (v !== undefined) {
|
|
82
|
+
sets.push(k + ' = ?');
|
|
83
|
+
params.push(k === 'servings' || k === 'total_time_minutes' ? Number(v) : String(v));
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
if (!sets.length)
|
|
87
|
+
throw new ChefFetchError('CHEF_BAD_QUERY', 'update 至少改一个字段');
|
|
88
|
+
sets.push('updated_at = ?');
|
|
89
|
+
params.push(now());
|
|
90
|
+
params.push(r.id);
|
|
91
|
+
try {
|
|
92
|
+
qRun(h, 'UPDATE recipes SET ' + sets.join(', ') + ' WHERE id = ?', params);
|
|
93
|
+
}
|
|
94
|
+
catch (e) {
|
|
95
|
+
throw new ChefFetchError('CHEF_DB_UNREADABLE', '菜谱更新失败:' + id, { cause: e });
|
|
96
|
+
}
|
|
97
|
+
return mustRecipe(h, r.id);
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=run-write.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-write.js","sourceRoot":"","sources":["../../src/update/run-write.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/** 查看能力的命令声明(权威源:一条命令的事实只住这里)。
|
|
2
|
+
*
|
|
3
|
+
* 本能力即 HELP 一级分组「查看」。一条命令管一摊:
|
|
4
|
+
* · `chef.recipe.view`(查询命令):查看食谱/查看食材/查看步骤/查看营养/查看背景/
|
|
5
|
+
* 看菜谱/看菜七句唤醒词都进这一条。
|
|
6
|
+
* 处理函数仍在老分派层(`src/cli/cmd_read.ts`),本票只立声明不搬实现——行为不变,
|
|
7
|
+
* 实现下沉由查看域端到端票接走(本文件不动,后续只加 run)。
|
|
8
|
+
*
|
|
9
|
+
* 标题与代表唤醒词取 HELP 现成说法,示例照 `packages/skill-chef/SKILL.md` 同命令行照抄。
|
|
10
|
+
*/
|
|
11
|
+
import type { CommandSpec } from '../shared/command-spec.js';
|
|
12
|
+
/** 查看能力的声明表:恰好导出一个声明数组(生成器只认这一个)。 */
|
|
13
|
+
export declare const VIEW_COMMANDS: readonly CommandSpec[];
|
|
14
|
+
//# sourceMappingURL=commands.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/view/commands.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAE7D,qCAAqC;AACrC,eAAO,MAAM,aAAa,EAAE,SAAS,WAAW,EAS/C,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/** 查看能力的命令声明(权威源:一条命令的事实只住这里)。
|
|
2
|
+
*
|
|
3
|
+
* 本能力即 HELP 一级分组「查看」。一条命令管一摊:
|
|
4
|
+
* · `chef.recipe.view`(查询命令):查看食谱/查看食材/查看步骤/查看营养/查看背景/
|
|
5
|
+
* 看菜谱/看菜七句唤醒词都进这一条。
|
|
6
|
+
* 处理函数仍在老分派层(`src/cli/cmd_read.ts`),本票只立声明不搬实现——行为不变,
|
|
7
|
+
* 实现下沉由查看域端到端票接走(本文件不动,后续只加 run)。
|
|
8
|
+
*
|
|
9
|
+
* 标题与代表唤醒词取 HELP 现成说法,示例照 `packages/skill-chef/SKILL.md` 同命令行照抄。
|
|
10
|
+
*/
|
|
11
|
+
/** 查看能力的声明表:恰好导出一个声明数组(生成器只认这一个)。 */
|
|
12
|
+
export const VIEW_COMMANDS = [
|
|
13
|
+
{
|
|
14
|
+
kind: 'read',
|
|
15
|
+
key: 'chef.recipe.view',
|
|
16
|
+
shape: 'detail',
|
|
17
|
+
title: '查看食谱',
|
|
18
|
+
wakeWord: '查看食谱',
|
|
19
|
+
example: 'chef-cmd-read chef.recipe.view --params \'{"name":"宫保虾球"}\'',
|
|
20
|
+
},
|
|
21
|
+
];
|
|
22
|
+
//# sourceMappingURL=commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/view/commands.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,qCAAqC;AACrC,MAAM,CAAC,MAAM,aAAa,GAA2B;IACnD;QACE,IAAI,EAAE,MAAM;QACZ,GAAG,EAAE,kBAAkB;QACvB,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE,MAAM;QACb,QAAQ,EAAE,MAAM;QAChB,OAAO,EAAE,6DAA6D;KACvE;CACF,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** 查看能力门:能力对外只经这里(结构纪律铁律一、铁律五)。
|
|
2
|
+
*
|
|
3
|
+
* 对外两件:命令声明表与路由声明表。处理函数与取数实现不在这里,
|
|
4
|
+
* 本票只立声明;外边要用查看能力的东西,只经这两个名字。
|
|
5
|
+
*/
|
|
6
|
+
export { VIEW_COMMANDS } from './commands.js';
|
|
7
|
+
export { VIEW_ROUTES } from './routes.js';
|
|
8
|
+
export { recipeDetail, runRecipeView } from './run.js';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/view/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** 查看能力门:能力对外只经这里(结构纪律铁律一、铁律五)。
|
|
2
|
+
*
|
|
3
|
+
* 对外两件:命令声明表与路由声明表。处理函数与取数实现不在这里,
|
|
4
|
+
* 本票只立声明;外边要用查看能力的东西,只经这两个名字。
|
|
5
|
+
*/
|
|
6
|
+
export { VIEW_COMMANDS } from './commands.js';
|
|
7
|
+
export { VIEW_ROUTES } from './routes.js';
|
|
8
|
+
export { recipeDetail, runRecipeView } from './run.js';
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/view/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/** 查看能力的路由声明(唤醒词命中哪条命令,声明面唯一一处)。
|
|
2
|
+
*
|
|
3
|
+
* 七行对应 `src/policy/wakewords.ts` 里查看七句唤醒词:查看食谱/查看食材/查看步骤/查看营养/
|
|
4
|
+
* 查看背景/看菜谱/看菜都进 `chef.recipe.view`。`order` 取唤醒词表 1-based 下标(5–11),
|
|
5
|
+
* 只保证跨域可比;全表级顺序由场景表定,本文件不另立顺序。
|
|
6
|
+
* 命令行写法照 `packages/skill-chef/SKILL.md` 同命令示例:需菜名的带菜名(空库可跑的那一行)。
|
|
7
|
+
*/
|
|
8
|
+
import type { RouteDecl } from '../shared/command-spec.js';
|
|
9
|
+
/** 查看能力的路由声明表:恰好导出一个声明数组。 */
|
|
10
|
+
export declare const VIEW_ROUTES: readonly RouteDecl[];
|
|
11
|
+
//# sourceMappingURL=routes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/view/routes.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAE3D,6BAA6B;AAC7B,eAAO,MAAM,WAAW,EAAE,SAAS,SAAS,EA2C3C,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/** 查看能力的路由声明(唤醒词命中哪条命令,声明面唯一一处)。
|
|
2
|
+
*
|
|
3
|
+
* 七行对应 `src/policy/wakewords.ts` 里查看七句唤醒词:查看食谱/查看食材/查看步骤/查看营养/
|
|
4
|
+
* 查看背景/看菜谱/看菜都进 `chef.recipe.view`。`order` 取唤醒词表 1-based 下标(5–11),
|
|
5
|
+
* 只保证跨域可比;全表级顺序由场景表定,本文件不另立顺序。
|
|
6
|
+
* 命令行写法照 `packages/skill-chef/SKILL.md` 同命令示例:需菜名的带菜名(空库可跑的那一行)。
|
|
7
|
+
*/
|
|
8
|
+
/** 查看能力的路由声明表:恰好导出一个声明数组。 */
|
|
9
|
+
export const VIEW_ROUTES = [
|
|
10
|
+
{
|
|
11
|
+
order: 5,
|
|
12
|
+
wakeWord: '查看食谱',
|
|
13
|
+
key: 'chef.recipe.view',
|
|
14
|
+
cli: 'chef-cmd-read chef.recipe.view --params \'{"name":"宫保虾球"}\'',
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
order: 6,
|
|
18
|
+
wakeWord: '查看食材',
|
|
19
|
+
key: 'chef.recipe.view',
|
|
20
|
+
cli: 'chef-cmd-read chef.recipe.view --params \'{"name":"宫保虾球"}\'',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
order: 7,
|
|
24
|
+
wakeWord: '查看步骤',
|
|
25
|
+
key: 'chef.recipe.view',
|
|
26
|
+
cli: 'chef-cmd-read chef.recipe.view --params \'{"name":"宫保虾球"}\'',
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
order: 8,
|
|
30
|
+
wakeWord: '查看营养',
|
|
31
|
+
key: 'chef.recipe.view',
|
|
32
|
+
cli: 'chef-cmd-read chef.recipe.view --params \'{"name":"宫保虾球"}\'',
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
order: 9,
|
|
36
|
+
wakeWord: '查看背景',
|
|
37
|
+
key: 'chef.recipe.view',
|
|
38
|
+
cli: 'chef-cmd-read chef.recipe.view --params \'{"name":"宫保虾球"}\'',
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
order: 10,
|
|
42
|
+
wakeWord: '看菜谱',
|
|
43
|
+
key: 'chef.recipe.view',
|
|
44
|
+
cli: 'chef-cmd-read chef.recipe.view --params \'{"name":"宫保虾球"}\'',
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
order: 11,
|
|
48
|
+
wakeWord: '看菜',
|
|
49
|
+
key: 'chef.recipe.view',
|
|
50
|
+
cli: 'chef-cmd-read chef.recipe.view --params \'{"name":"宫保虾球"}\'',
|
|
51
|
+
},
|
|
52
|
+
];
|
|
53
|
+
//# sourceMappingURL=routes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/view/routes.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,6BAA6B;AAC7B,MAAM,CAAC,MAAM,WAAW,GAAyB;IAC/C;QACE,KAAK,EAAE,CAAC;QACR,QAAQ,EAAE,MAAM;QAChB,GAAG,EAAE,kBAAkB;QACvB,GAAG,EAAE,6DAA6D;KACnE;IACD;QACE,KAAK,EAAE,CAAC;QACR,QAAQ,EAAE,MAAM;QAChB,GAAG,EAAE,kBAAkB;QACvB,GAAG,EAAE,6DAA6D;KACnE;IACD;QACE,KAAK,EAAE,CAAC;QACR,QAAQ,EAAE,MAAM;QAChB,GAAG,EAAE,kBAAkB;QACvB,GAAG,EAAE,6DAA6D;KACnE;IACD;QACE,KAAK,EAAE,CAAC;QACR,QAAQ,EAAE,MAAM;QAChB,GAAG,EAAE,kBAAkB;QACvB,GAAG,EAAE,6DAA6D;KACnE;IACD;QACE,KAAK,EAAE,CAAC;QACR,QAAQ,EAAE,MAAM;QAChB,GAAG,EAAE,kBAAkB;QACvB,GAAG,EAAE,6DAA6D;KACnE;IACD;QACE,KAAK,EAAE,EAAE;QACT,QAAQ,EAAE,KAAK;QACf,GAAG,EAAE,kBAAkB;QACvB,GAAG,EAAE,6DAA6D;KACnE;IACD;QACE,KAAK,EAAE,EAAE;QACT,QAAQ,EAAE,IAAI;QACd,GAAG,EAAE,kBAAkB;QACvB,GAAG,EAAE,6DAA6D;KACnE;CACF,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/** 查看能力的命令处理(`chef.recipe.view`)。
|
|
2
|
+
*
|
|
3
|
+
* 老分派层(`src/cli/cmd_read.ts`)分支逐字节下沉:只改 import 出处,判定与装配一字不动。
|
|
4
|
+
* 缺定位走取数错(`resolveNameOrId` 任务口径,入口映射为 exit 4)。
|
|
5
|
+
*/
|
|
6
|
+
import type { ChefDb } from '../fetch/db.js';
|
|
7
|
+
import type { RecipeDetail } from '../render/views.js';
|
|
8
|
+
export declare function recipeDetail(detail: RecipeDetail): {
|
|
9
|
+
item: Record<string, unknown>;
|
|
10
|
+
};
|
|
11
|
+
/** 跑 `chef.recipe.view`:按名或 id 取单菜全貌(detail 形)。 */
|
|
12
|
+
export declare function runRecipeView(handle: ChefDb, params: Record<string, unknown>): unknown;
|
|
13
|
+
//# sourceMappingURL=run.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/view/run.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAMvD,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAkBpF;AAED,mDAAmD;AACnD,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAEtF"}
|
package/dist/view/run.js
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/** 查看能力的命令处理(`chef.recipe.view`)。
|
|
2
|
+
*
|
|
3
|
+
* 老分派层(`src/cli/cmd_read.ts`)分支逐字节下沉:只改 import 出处,判定与装配一字不动。
|
|
4
|
+
* 缺定位走取数错(`resolveNameOrId` 任务口径,入口映射为 exit 4)。
|
|
5
|
+
*/
|
|
6
|
+
import { getRecipeDetail } from '../fetch/db.js';
|
|
7
|
+
import { toRecipeItem } from '../render/views.js';
|
|
8
|
+
import { resolveNameOrId } from '../shared/slots.js';
|
|
9
|
+
// 单菜全貌 detail:基本 + 食材 + 步骤 + 历史统计 + 营养占位(一期只占位,不编数字)。
|
|
10
|
+
// 原 `src/render/views.ts`,本域独占(旧址由 `src/render/index.ts` 转出)。
|
|
11
|
+
export function recipeDetail(detail) {
|
|
12
|
+
const ingredients = [...detail.ingredients].sort((a, b) => a.sequence - b.sequence).map((g) => ({ ...g }));
|
|
13
|
+
const steps = [...detail.steps].sort((a, b) => a.sequence - b.sequence).map((s) => ({ ...s }));
|
|
14
|
+
return {
|
|
15
|
+
item: {
|
|
16
|
+
...toRecipeItem(detail.recipe),
|
|
17
|
+
photo_url: detail.recipe.photo_url,
|
|
18
|
+
source: detail.recipe.source,
|
|
19
|
+
source_url: detail.recipe.source_url,
|
|
20
|
+
created_at: detail.recipe.created_at,
|
|
21
|
+
updated_at: detail.recipe.updated_at,
|
|
22
|
+
ingredients,
|
|
23
|
+
steps,
|
|
24
|
+
history: detail.history ?? { count: 0, avgRating: null },
|
|
25
|
+
// 营养占位:一期不估算,显式标记未估算,不编数字冒充。
|
|
26
|
+
nutrition: { estimated: false, note: '营养估算一期占位(以实际食材称量为准)' },
|
|
27
|
+
},
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
/** 跑 `chef.recipe.view`:按名或 id 取单菜全貌(detail 形)。 */
|
|
31
|
+
export function runRecipeView(handle, params) {
|
|
32
|
+
return recipeDetail(getRecipeDetail(handle, resolveNameOrId(params)));
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=run.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/view/run.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,sDAAsD;AACtD,8DAA8D;AAC9D,MAAM,UAAU,YAAY,CAAC,MAAoB;IAC/C,MAAM,WAAW,GAAG,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3G,MAAM,KAAK,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/F,OAAO;QACL,IAAI,EAAE;YACJ,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC;YAC9B,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS;YAClC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM;YAC5B,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU;YACpC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU;YACpC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU;YACpC,WAAW;YACX,KAAK;YACL,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE;YACxD,6BAA6B;YAC7B,SAAS,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,qBAAqB,EAAE;SAC7D;KACF,CAAC;AACJ,CAAC;AAED,mDAAmD;AACnD,MAAM,UAAU,aAAa,CAAC,MAAc,EAAE,MAA+B;IAC3E,OAAO,YAAY,CAAC,eAAe,CAAC,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACxE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/zzshapeprobe/commands.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,eAAO,MAAM,qBAAqB,EAAE,SAAS,OAAO,EAAO,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/zzshapeprobe/commands.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,MAAM,CAAC,MAAM,qBAAqB,GAAuB,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/zzshapeprobe/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/zzshapeprobe/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/zzshapeprobe/routes.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,eAAO,MAAM,mBAAmB,EAAE,SAAS,OAAO,EAAO,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/zzshapeprobe/routes.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,MAAM,CAAC,MAAM,mBAAmB,GAAuB,EAAE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "skill-chef",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.2",
|
|
4
4
|
"description": "私家大厨SKILL一期:取数+口径+渲染+出口(8 联动 key+cmd_read+SKILL+HELP+parity),依 link-core",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -22,8 +22,8 @@
|
|
|
22
22
|
"chef-cmd-read": "./dist/cli/cmd_read.js"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"base-link-core": "^0.3.
|
|
26
|
-
"base-paint": "^0.3.
|
|
25
|
+
"base-link-core": "^0.3.7",
|
|
26
|
+
"base-paint": "^0.3.7"
|
|
27
27
|
},
|
|
28
28
|
"engines": {
|
|
29
29
|
"node": ">=22.13"
|