@miniidealab/openlogos 0.6.4 → 0.6.5

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,2 @@
1
+ export declare function indexCommand(): void;
2
+ //# sourceMappingURL=index-cmd.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-cmd.d.ts","sourceRoot":"","sources":["../../src/commands/index-cmd.ts"],"names":[],"mappings":"AAwEA,wBAAgB,YAAY,SAkF3B"}
@@ -0,0 +1,207 @@
1
+ import { readFileSync, writeFileSync, existsSync, readdirSync, statSync } from 'node:fs';
2
+ import { join, relative, extname } from 'node:path';
3
+ import { readLocale } from '../i18n.js';
4
+ // ---------------------------------------------------------------------------
5
+ // 文件扫描工具
6
+ // ---------------------------------------------------------------------------
7
+ function listFilesRecursive(dir) {
8
+ if (!existsSync(dir))
9
+ return [];
10
+ const results = [];
11
+ function scan(current) {
12
+ for (const entry of readdirSync(current)) {
13
+ const full = join(current, entry);
14
+ try {
15
+ const stat = statSync(full);
16
+ if (stat.isDirectory()) {
17
+ scan(full);
18
+ }
19
+ else if (stat.isFile() && !entry.endsWith('.gitkeep')) {
20
+ results.push(full);
21
+ }
22
+ }
23
+ catch { /* skip inaccessible */ }
24
+ }
25
+ }
26
+ scan(dir);
27
+ return results;
28
+ }
29
+ /** 从 glob 模式中提取允许的扩展名集合,例如 "**\/*.{md,json}" → ["md","json"] */
30
+ function extractExtensions(pattern) {
31
+ const braceMatch = pattern.match(/\*\.\{([^}]+)\}$/);
32
+ if (braceMatch) {
33
+ return new Set(braceMatch[1].split(',').map(e => e.trim()));
34
+ }
35
+ const singleMatch = pattern.match(/\*\.(\w+)$/);
36
+ if (singleMatch) {
37
+ return new Set([singleMatch[1]]);
38
+ }
39
+ return new Set();
40
+ }
41
+ function matchesPattern(filePath, pattern) {
42
+ const ext = extname(filePath).slice(1).toLowerCase();
43
+ const allowed = extractExtensions(pattern);
44
+ return allowed.size === 0 || allowed.has(ext);
45
+ }
46
+ // ---------------------------------------------------------------------------
47
+ // 文件内容读取(前 N 行)
48
+ // ---------------------------------------------------------------------------
49
+ function readFirstNLines(filePath, n) {
50
+ try {
51
+ const content = readFileSync(filePath, 'utf-8');
52
+ const lines = content.split('\n');
53
+ const truncated = lines.slice(0, n);
54
+ const suffix = lines.length > n ? `\n... (truncated, ${lines.length - n} more lines)` : '';
55
+ return truncated.join('\n') + suffix;
56
+ }
57
+ catch {
58
+ return '(unable to read file)';
59
+ }
60
+ }
61
+ export function indexCommand() {
62
+ const root = process.cwd();
63
+ const configPath = join(root, 'logos', 'logos.config.json');
64
+ if (!existsSync(configPath)) {
65
+ console.error('Error: logos/logos.config.json not found.');
66
+ console.error('Run `openlogos init` first to initialize the project.');
67
+ process.exit(1);
68
+ }
69
+ const yamlPath = join(root, 'logos', 'logos-project.yaml');
70
+ if (!existsSync(yamlPath)) {
71
+ console.error('Error: logos/logos-project.yaml not found.');
72
+ process.exit(1);
73
+ }
74
+ console.log('\nScanning project files for index generation...\n');
75
+ const config = JSON.parse(readFileSync(configPath, 'utf-8'));
76
+ const documents = config.documents || {};
77
+ const locale = readLocale(root);
78
+ const files = [];
79
+ // 1. 扫描 logos.config.json 中的 documents(排除 changes)
80
+ for (const [key, doc] of Object.entries(documents)) {
81
+ if (key === 'changes')
82
+ continue;
83
+ // path 是相对于 logos/ 目录的,如 "./resources/prd"
84
+ const absDir = join(root, 'logos', doc.path.replace(/^\.\//, ''));
85
+ const allFiles = listFilesRecursive(absDir);
86
+ for (const absFile of allFiles) {
87
+ if (!matchesPattern(absFile, doc.pattern))
88
+ continue;
89
+ const relPath = relative(root, absFile).replace(/\\/g, '/');
90
+ const content = readFirstNLines(absFile, 80);
91
+ files.push({ relPath, content });
92
+ }
93
+ }
94
+ // 2. 扫描 spec/ 目录(.md 和 .json)
95
+ const specDir = join(root, 'spec');
96
+ for (const absFile of listFilesRecursive(specDir)) {
97
+ const ext = extname(absFile).slice(1).toLowerCase();
98
+ if (ext !== 'md' && ext !== 'json')
99
+ continue;
100
+ const relPath = relative(root, absFile).replace(/\\/g, '/');
101
+ const content = readFirstNLines(absFile, 80);
102
+ files.push({ relPath, content });
103
+ }
104
+ // 3. 扫描 skills/*/SKILL.md
105
+ const skillsDir = join(root, 'skills');
106
+ if (existsSync(skillsDir)) {
107
+ for (const entry of readdirSync(skillsDir)) {
108
+ const skillMd = join(skillsDir, entry, 'SKILL.md');
109
+ if (existsSync(skillMd) && statSync(skillMd).isFile()) {
110
+ const relPath = `skills/${entry}/SKILL.md`;
111
+ const content = readFirstNLines(skillMd, 80);
112
+ files.push({ relPath, content });
113
+ }
114
+ }
115
+ }
116
+ if (files.length === 0) {
117
+ console.log('No files found to index. Make sure project documents exist in logos/resources/.\n');
118
+ return;
119
+ }
120
+ console.log(` Found ${files.length} files to index.`);
121
+ // 读取当前 logos-project.yaml 全文(供 AI 参考)
122
+ const currentYaml = readFileSync(yamlPath, 'utf-8');
123
+ // 生成 Prompt
124
+ const prompt = buildPrompt(files, currentYaml, locale);
125
+ const promptPath = join(root, 'logos', 'index-prompt.md');
126
+ writeFileSync(promptPath, prompt);
127
+ console.log(` ✓ Generated: logos/index-prompt.md\n`);
128
+ console.log('Next step:');
129
+ console.log(' Tell your AI assistant: "Read logos/index-prompt.md and execute the instructions"\n');
130
+ console.log(' The AI will read each file\'s content and directly update logos/logos-project.yaml\n');
131
+ }
132
+ // ---------------------------------------------------------------------------
133
+ // Prompt 生成
134
+ // ---------------------------------------------------------------------------
135
+ function buildPrompt(files, currentYaml, locale) {
136
+ const isZh = locale === 'zh';
137
+ const header = isZh
138
+ ? `# OpenLogos Index 更新任务
139
+
140
+ ## 任务说明
141
+
142
+ 请阅读下方各文件的内容摘要,然后**直接更新** \`logos/logos-project.yaml\` 的 \`resource_index\` 字段。
143
+
144
+ **规则:**
145
+ - 对于 \`resource_index\` 中**已有**的条目:评估 desc 是否足够详细,如可改善则优化
146
+ - 对于**未收录**的文件:添加新条目,desc 要详细说明文件内容和 AI 应在何时读取它
147
+ - desc 语言:**中文**,长度 30-80 字,说明「文件包含什么」以及「AI 在什么场景下必须读取」
148
+ - 格式:\`- path: <相对路径>\\n desc: <描述>\`
149
+
150
+ ## 当前 logos-project.yaml 内容
151
+
152
+ \`\`\`yaml
153
+ ${currentYaml}
154
+ \`\`\`
155
+
156
+ ## 待分析的文件(共 ${files.length} 个)
157
+
158
+ `
159
+ : `# OpenLogos Index Update Task
160
+
161
+ ## Instructions
162
+
163
+ Read the file content summaries below, then **directly update** \`logos/logos-project.yaml\`'s \`resource_index\` field.
164
+
165
+ **Rules:**
166
+ - For entries **already in** \`resource_index\`: evaluate if desc is detailed enough; improve if possible
167
+ - For **missing** files: add new entries with detailed desc explaining what the file contains and when AI should read it
168
+ - desc language: **English**, 30-80 words, covering "what the file contains" and "when AI must read it"
169
+ - Format: \`- path: <relative-path>\\n desc: <description>\`
170
+
171
+ ## Current logos-project.yaml
172
+
173
+ \`\`\`yaml
174
+ ${currentYaml}
175
+ \`\`\`
176
+
177
+ ## Files to Analyze (${files.length} total)
178
+
179
+ `;
180
+ let body = '';
181
+ for (let i = 0; i < files.length; i++) {
182
+ const f = files[i];
183
+ body += `### ${i + 1}. \`${f.relPath}\`\n\n`;
184
+ body += '```\n';
185
+ body += f.content;
186
+ body += '\n```\n\n';
187
+ }
188
+ const footer = isZh
189
+ ? `## 执行要求
190
+
191
+ 1. 逐个分析上方每个文件的内容
192
+ 2. 为每个文件生成或优化 desc(中文,30-80 字)
193
+ 3. **直接修改** \`logos/logos-project.yaml\` 的 \`resource_index\` 字段
194
+ 4. 保持 YAML 格式正确(缩进 2 空格)
195
+ 5. 完成后报告:新增 N 条,优化 M 条,跳过 K 条
196
+ `
197
+ : `## Execution Requirements
198
+
199
+ 1. Analyze each file's content above
200
+ 2. Generate or improve desc for each file (English, 30-80 words)
201
+ 3. **Directly edit** \`logos/logos-project.yaml\`'s \`resource_index\` field
202
+ 4. Maintain correct YAML format (2-space indent)
203
+ 5. After completion, report: added N, improved M, skipped K
204
+ `;
205
+ return header + body + footer;
206
+ }
207
+ //# sourceMappingURL=index-cmd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-cmd.js","sourceRoot":"","sources":["../../src/commands/index-cmd.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAaA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAcA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC"}
package/dist/index.js CHANGED
@@ -8,6 +8,7 @@ import { archive } from './commands/archive.js';
8
8
  import { verify } from './commands/verify.js';
9
9
  import { launch } from './commands/launch.js';
10
10
  import { detect } from './commands/detect.js';
11
+ import { indexCommand } from './commands/index-cmd.js';
11
12
  import { VERSION, parseFormat } from './lib/json-output.js';
12
13
  export { VERSION } from './lib/json-output.js';
13
14
  const HELP = `
@@ -28,6 +29,7 @@ Commands:
28
29
  merge <slug> Generate MERGE_PROMPT.md for AI to execute delta merging
29
30
  archive <slug> Archive a completed change proposal
30
31
  detect Show CLI version and project detection info
32
+ index Generate an AI-ready prompt to rebuild resource_index with file-content-based desc
31
33
 
32
34
  Options:
33
35
  --help, -h Show this help message
@@ -103,6 +105,9 @@ async function main() {
103
105
  case 'detect':
104
106
  detect(format);
105
107
  break;
108
+ case 'index':
109
+ indexCommand();
110
+ break;
106
111
  default:
107
112
  console.error(`Unknown command: ${command}`);
108
113
  console.log(HELP);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAE5D,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAG/C,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqCZ,CAAC;AAEF,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEnC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACxE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACxB,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAEjC,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC/B,IAAI,QAA4B,CAAC;YACjC,MAAM,QAAQ,GAAyC,EAAE,CAAC;YAC1D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACzC,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,UAAU,IAAI,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;oBAClD,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;gBAClC,CAAC;qBAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,WAAW,IAAI,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;oBAC1D,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;gBAClC,CAAC;qBAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;oBACzC,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACzB,CAAC;YACH,CAAC;YACD,MAAM,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9E,MAAM;QACR,CAAC;QACD,KAAK,MAAM;YACT,IAAI,EAAE,CAAC;YACP,MAAM;QACR,KAAK,QAAQ;YACX,MAAM,CAAC,MAAM,CAAC,CAAC;YACf,MAAM;QACR,KAAK,QAAQ;YACX,MAAM,CAAC,MAAM,CAAC,CAAC;YACf,MAAM;QACR,KAAK,QAAQ;YACX,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAChB,MAAM;QACR,KAAK,OAAO;YACV,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACf,MAAM;QACR,KAAK,QAAQ;YACX,MAAM,EAAE,CAAC;YACT,MAAM;QACR,KAAK,SAAS;YACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACjB,MAAM;QACR,KAAK,QAAQ;YACX,MAAM,CAAC,MAAM,CAAC,CAAC;YACf,MAAM;QACR;YACE,OAAO,CAAC,KAAK,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;YAC7C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAClB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ ---
2
+ description: "OpenLogos — generate AI-ready resource_index update prompt / 生成 AI 驱动的索引更新 Prompt"
3
+ ---
4
+
5
+ 在项目根执行:
6
+
7
+ !`openlogos index`
8
+
9
+ 将终端输出告知用户;若成功,提示用户:「请读取 `logos/index-prompt.md` 并执行其中的更新指令」,AI 将读取各文件内容后直接更新 `logos/logos-project.yaml` 的 `resource_index` 字段。
@@ -17,6 +17,7 @@ const COMMANDS = {
17
17
  change: { cli: ["change"], args: "requiredSlug" },
18
18
  merge: { cli: ["merge"], args: "requiredSlug" },
19
19
  archive: { cli: ["archive"], args: "requiredSlug" },
20
+ index: { cli: ["index"], args: "none" },
20
21
  };
21
22
 
22
23
  function parse(raw) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@miniidealab/openlogos",
3
- "version": "0.6.4",
3
+ "version": "0.6.5",
4
4
  "description": "CLI tool for the OpenLogos software engineering methodology",
5
5
  "type": "module",
6
6
  "bin": {