dsh-calorie 0.3.61 → 0.3.63

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.
@@ -0,0 +1,16 @@
1
+ import type { ConfigRecord } from 'base-link-core';
2
+ /**
3
+ * 这份技能的默认配置,逐项等于现有代码常量。
4
+ *
5
+ * 唯一一处「不是照抄老常量」的是 `dataDir`:#675 把「库目录必设、缺了就 exit 1」
6
+ * 换成了「默认 `~/.ilife/data/`,首次自动建」,所以它取配置件的 dataDir 而不是老的环境变量。
7
+ */
8
+ export declare function calorieDefaults(): ConfigRecord;
9
+ /**
10
+ * 能把配置值送进技能子进程的那两项(#675 点名的「怎么送到技能子进程」)。
11
+ *
12
+ * 技能今天只从环境变量读这两个值,所以设置页存下的配置,只有这两项能立刻生效;
13
+ * 其余项在技能里是代码常量,要等技能侧那票改读配置文件(见 #676 解决评论)。
14
+ */
15
+ export declare function spawnEnvFromConfig(values: ConfigRecord): Record<string, string>;
16
+ //# sourceMappingURL=config-defaults.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-defaults.d.ts","sourceRoot":"","sources":["../src/config-defaults.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AA0BnD;;;;;GAKG;AACH,wBAAgB,eAAe,IAAI,YAAY,CAsC9C;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAO/E"}
@@ -0,0 +1,94 @@
1
+ /** dsh-calorie 配置默认值表(宿主侧;要 node 才能在算,故不进 client 编译)。
2
+ *
3
+ * 口径来自 #675 的冻结决议与它的收窄(`docs/research/t692-six-skill-paths-survey.md`):
4
+ * **默认值必须逐项等于现有代码常量**,否则老数据会「看起来丢了」。
5
+ * 逐项出处见每条注释;`test/config-surface-676.test.mjs` 用源码文本锁死这份对齐。
6
+ *
7
+ * 这里只出「值」,不出「页面上长什么样」——后者住 settings.ts(那个文件必须零 node)。
8
+ */
9
+ import { createRequire } from 'node:module';
10
+ import { homedir } from 'node:os';
11
+ import { dirname, join } from 'node:path';
12
+ import { configPaths } from 'base-link-core';
13
+ import { CONFIG_STEM } from './settings.js';
14
+ /** 训记三份状态文件的家目录(`src/xunji/rateLimit.ts:27`、`src/xunji/fetch.ts:33`、`src/xunji/run-sync.ts:116`)。 */
15
+ const XUNJI_STATE_DIR = '.mavis';
16
+ /** 训记动作库的老机器路径(`src/xunji/catalog.ts:30`)。 */
17
+ const XUNJI_LEGACY_DIR = '.minimax';
18
+ /** 跨技能出口的固定尾段(相对那个技能包根,`src/workout/landRunner.ts:47,55`)。 */
19
+ const SKILL_CLI_REL = 'dist/cli/cmd_read.js';
20
+ /** 按包名解析某技能包根;解析不到就退回单仓相对路径(与 bridge.resolveSkillCli 同思路)。 */
21
+ function skillPackageRoot(packageName) {
22
+ try {
23
+ return dirname(createRequire(import.meta.url).resolve(packageName + '/package.json'));
24
+ }
25
+ catch {
26
+ return join(homedir(), '.ilife', 'packages', packageName);
27
+ }
28
+ }
29
+ /** 跨技能出口(作息 / 备忘)的默认入口文件。 */
30
+ function crossSkillCli(packageName) {
31
+ return join(skillPackageRoot(packageName), SKILL_CLI_REL);
32
+ }
33
+ /**
34
+ * 这份技能的默认配置,逐项等于现有代码常量。
35
+ *
36
+ * 唯一一处「不是照抄老常量」的是 `dataDir`:#675 把「库目录必设、缺了就 exit 1」
37
+ * 换成了「默认 `~/.ilife/data/`,首次自动建」,所以它取配置件的 dataDir 而不是老的环境变量。
38
+ */
39
+ export function calorieDefaults() {
40
+ const { dataDir } = configPaths(CONFIG_STEM);
41
+ return {
42
+ // #675:数据目录默认 `~/.ilife/data/`(配置目录下的 data/),首次读自动建。
43
+ dataDir,
44
+ // skill-calorie/src/paths.ts:10
45
+ dbFile: 'calorie_data.db',
46
+ // skill-calorie/src/output.ts:37(photo/helpPaths.ts:18 同值)
47
+ htmlDir: 'calorie_html',
48
+ // 照片目录老口径是 CALORIE_PHOTOS_DIR,无默认、读降级写阻断;空串即「未配」。
49
+ photosDir: '',
50
+ // skill-calorie/src/photo/gifDoc.ts:68
51
+ gifsDir: 'gifs',
52
+ stems: {
53
+ // skill-calorie/src/photo/helpFile.ts:27
54
+ help: '卡路里_HELP',
55
+ // skill-calorie/src/output.ts:42
56
+ photoHelp: '卡路里_照片HELP',
57
+ // skill-calorie/src/photo/helpPaths.ts:23
58
+ quickRef: '卡路里_速查台',
59
+ },
60
+ xunji: {
61
+ // src/xunji/rateLimit.ts:26-28
62
+ pushRateFile: join(homedir(), XUNJI_STATE_DIR, 'xunji_push_rate.json'),
63
+ // src/xunji/fetch.ts:32-34
64
+ readRateFile: join(homedir(), XUNJI_STATE_DIR, 'xunji_bridge_rate.json'),
65
+ // src/xunji/run-sync.ts:114-117
66
+ syncStateFile: join(homedir(), XUNJI_STATE_DIR, 'xunji_bridge_sync_state.json'),
67
+ // src/xunji/catalog.ts:30
68
+ catalogLegacyPath: join(homedir(), XUNJI_LEGACY_DIR, '训记官方动作.json'),
69
+ },
70
+ exports: {
71
+ // src/workout/landRunner.ts:47
72
+ scheduleCli: crossSkillCli('skill-schedule'),
73
+ // src/workout/landRunner.ts:55
74
+ memoCli: crossSkillCli('skill-memo-ilife'),
75
+ },
76
+ };
77
+ }
78
+ /**
79
+ * 能把配置值送进技能子进程的那两项(#675 点名的「怎么送到技能子进程」)。
80
+ *
81
+ * 技能今天只从环境变量读这两个值,所以设置页存下的配置,只有这两项能立刻生效;
82
+ * 其余项在技能里是代码常量,要等技能侧那票改读配置文件(见 #676 解决评论)。
83
+ */
84
+ export function spawnEnvFromConfig(values) {
85
+ const env = {};
86
+ const dataDir = values['dataDir'];
87
+ if (typeof dataDir === 'string' && dataDir.trim() !== '')
88
+ env['SKILLS_DB_PATH'] = dataDir;
89
+ const photosDir = values['photosDir'];
90
+ if (typeof photosDir === 'string' && photosDir.trim() !== '')
91
+ env['CALORIE_PHOTOS_DIR'] = photosDir;
92
+ return env;
93
+ }
94
+ //# sourceMappingURL=config-defaults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-defaults.js","sourceRoot":"","sources":["../src/config-defaults.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-calorie",
3
- "version": "0.3.61",
3
+ "version": "0.3.63",
4
4
  "description": "爱生活单品插件 P10 脚手架:卡路里(ilife:calorie order 75),硬依赖总管 dsh-life-pack",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -30,7 +30,7 @@
30
30
  "node": ">=22.13"
31
31
  },
32
32
  "dependencies": {
33
- "dsh-life-pack": "0.3.61",
33
+ "dsh-life-pack": "0.3.63",
34
34
  "skill-calorie": "0.3.54"
35
35
  },
36
36
  "dsh": {