vault-forge 2.0.8 → 2.0.9

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.
Files changed (51) hide show
  1. package/dist/index.js +0 -0
  2. package/package.json +2 -2
  3. package/dist/actions/dummy.d.ts +0 -2
  4. package/dist/actions/dummy.d.ts.map +0 -1
  5. package/dist/actions/dummy.js +0 -3
  6. package/dist/actions/dummy.js.map +0 -1
  7. package/dist/actions/mainAction.d.ts +0 -5
  8. package/dist/actions/mainAction.d.ts.map +0 -1
  9. package/dist/actions/mainAction.js +0 -68
  10. package/dist/actions/mainAction.js.map +0 -1
  11. package/dist/commands/ask.d.ts +0 -3
  12. package/dist/commands/ask.d.ts.map +0 -1
  13. package/dist/commands/ask.js +0 -15
  14. package/dist/commands/ask.js.map +0 -1
  15. package/dist/commands/dummy.d.ts +0 -2
  16. package/dist/commands/dummy.d.ts.map +0 -1
  17. package/dist/commands/dummy.js +0 -3
  18. package/dist/commands/dummy.js.map +0 -1
  19. package/dist/commands/find.d.ts +0 -2
  20. package/dist/commands/find.d.ts.map +0 -1
  21. package/dist/commands/find.js +0 -3
  22. package/dist/commands/find.js.map +0 -1
  23. package/dist/core/PromptLoader.d.ts +0 -30
  24. package/dist/core/PromptLoader.d.ts.map +0 -1
  25. package/dist/core/PromptLoader.js +0 -187
  26. package/dist/core/PromptLoader.js.map +0 -1
  27. package/dist/lib/completion.d.ts +0 -8
  28. package/dist/lib/completion.d.ts.map +0 -1
  29. package/dist/lib/completion.js +0 -55
  30. package/dist/lib/completion.js.map +0 -1
  31. package/dist/lib/dummy.d.ts +0 -2
  32. package/dist/lib/dummy.d.ts.map +0 -1
  33. package/dist/lib/dummy.js +0 -3
  34. package/dist/lib/dummy.js.map +0 -1
  35. package/dist/services/AIModelService.d.ts +0 -33
  36. package/dist/services/AIModelService.d.ts.map +0 -1
  37. package/dist/services/AIModelService.js +0 -116
  38. package/dist/services/AIModelService.js.map +0 -1
  39. package/dist/strategies/SearchStrategy.d.ts +0 -19
  40. package/dist/strategies/SearchStrategy.d.ts.map +0 -1
  41. package/dist/strategies/SearchStrategy.js +0 -112
  42. package/dist/strategies/SearchStrategy.js.map +0 -1
  43. package/dist/templates/completion.bash +0 -24
  44. package/dist/utils/completion.d.ts +0 -8
  45. package/dist/utils/completion.d.ts.map +0 -1
  46. package/dist/utils/completion.js +0 -58
  47. package/dist/utils/completion.js.map +0 -1
  48. package/dist/utils/dummy.d.ts +0 -2
  49. package/dist/utils/dummy.d.ts.map +0 -1
  50. package/dist/utils/dummy.js +0 -3
  51. package/dist/utils/dummy.js.map +0 -1
package/dist/index.js CHANGED
File without changes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vault-forge",
3
- "version": "2.0.8",
3
+ "version": "2.0.9",
4
4
  "description": "Forge new ideas from your Obsidian Vault with AI.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -12,7 +12,7 @@
12
12
  "README_ja.md"
13
13
  ],
14
14
  "scripts": {
15
- "build": "tsc",
15
+ "build": "rm -rf dist && tsc",
16
16
  "watch": "tsc --watch",
17
17
  "start": "ts-node src/index.ts",
18
18
  "test": "cross-env NODE_OPTIONS=--experimental-vm-modules jest",
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=dummy.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dummy.d.ts","sourceRoot":"","sources":["../../src/actions/dummy.ts"],"names":[],"mappings":""}
@@ -1,3 +0,0 @@
1
- export {};
2
- // dummy file to create directory
3
- //# sourceMappingURL=dummy.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dummy.js","sourceRoot":"","sources":["../../src/actions/dummy.ts"],"names":[],"mappings":";AAAA,iCAAiC"}
@@ -1,5 +0,0 @@
1
- /**
2
- * 内部でタグの # を復元して実行するメインアクション
3
- */
4
- export declare function mainAction(inputArg: string | undefined, options: any): Promise<void>;
5
- //# sourceMappingURL=mainAction.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mainAction.d.ts","sourceRoot":"","sources":["../../src/actions/mainAction.ts"],"names":[],"mappings":"AAcA;;GAEG;AACH,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,GAAG,iBA2D1E"}
@@ -1,68 +0,0 @@
1
- import { spawn } from 'child_process';
2
- import * as path from 'path';
3
- import * as fsSync from 'fs';
4
- import { VaultForge } from '../core/VaultForge.js';
5
- import { AppMode } from '../types/constants.js';
6
- import { AIModelService } from '../services/AIModelService.js';
7
- import { getCandidates } from '../utils/completion.js';
8
- import { fileURLToPath } from 'url';
9
- const __filename = fileURLToPath(import.meta.url);
10
- const __dirname = path.dirname(__filename);
11
- const masterModelsPath = path.join(__dirname, '../config/ai-models.json');
12
- /**
13
- * 内部でタグの # を復元して実行するメインアクション
14
- */
15
- export async function mainAction(inputArg, options) {
16
- try {
17
- if (options.detach) {
18
- const args = process.argv.slice(2).filter(arg => arg !== '-d' && arg !== '--detach');
19
- const subprocess = spawn(process.argv[0] || 'node', [process.argv[1] || '', ...args], { detached: true, stdio: 'ignore' });
20
- subprocess.unref();
21
- process.exit(0);
22
- }
23
- const vaultPath = process.env.OBSIDIAN_VAULT_PATH;
24
- const aiModelService = new AIModelService(vaultPath);
25
- const validCandidates = getCandidates();
26
- let detectedModel = null;
27
- const userModelsPath = path.join(vaultPath, '_AI_Prompts', 'ai-models.json');
28
- let allModelsData = {};
29
- if (fsSync.existsSync(userModelsPath)) {
30
- allModelsData = JSON.parse(fsSync.readFileSync(userModelsPath, 'utf-8'));
31
- }
32
- if (options.model) {
33
- const modelName = options.model;
34
- for (const [provider, models] of Object.entries(allModelsData)) {
35
- if (Array.isArray(models) && models.includes(modelName)) {
36
- detectedModel = { provider, model: modelName };
37
- break;
38
- }
39
- }
40
- if (!detectedModel) {
41
- detectedModel = { provider: '', model: modelName };
42
- }
43
- }
44
- const processedInput = (inputArg || "").split(' ').map(word => {
45
- if (validCandidates.includes(word)) {
46
- return `#${word}`;
47
- }
48
- return word;
49
- }).join(' ');
50
- const config = {
51
- vaultPath: vaultPath,
52
- inputData: processedInput,
53
- mode: options.mode || AppMode.GENERAL,
54
- instruction: options.instruction,
55
- overrideModel: detectedModel || undefined
56
- };
57
- const app = new VaultForge(config);
58
- await app.run();
59
- if (detectedModel && detectedModel.provider) {
60
- const modelInfo = detectedModel;
61
- await aiModelService.addModel(modelInfo.provider, modelInfo.model);
62
- }
63
- }
64
- catch (e) {
65
- process.exit(1);
66
- }
67
- }
68
- //# sourceMappingURL=mainAction.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mainAction.js","sourceRoot":"","sources":["../../src/actions/mainAction.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare function registerAskCommand(program: Command): void;
3
- //# sourceMappingURL=ask.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ask.d.ts","sourceRoot":"","sources":["../../src/commands/ask.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,QAWlD"}
@@ -1,15 +0,0 @@
1
- import { Command } from 'commander';
2
- import { mainAction } from '../lib/mainAction.js';
3
- export function registerAskCommand(program) {
4
- program.command('ask')
5
- .argument('[input...]')
6
- .option('-m, --mode <mode>', '', 'general')
7
- .option('--model <name>', 'Specify AI model')
8
- .option('-i, --instruction <text>')
9
- .option('-d, --detach')
10
- .allowUnknownOption()
11
- .action(async (parts, opts) => {
12
- await mainAction(parts.join(' '), opts);
13
- });
14
- }
15
- //# sourceMappingURL=ask.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ask.js","sourceRoot":"","sources":["../../src/commands/ask.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,MAAM,UAAU,kBAAkB,CAAC,OAAgB;IAC/C,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;SACjB,QAAQ,CAAC,YAAY,CAAC;SACtB,MAAM,CAAC,mBAAmB,EAAE,EAAE,EAAE,SAAS,CAAC;SAC1C,MAAM,CAAC,gBAAgB,EAAE,kBAAkB,CAAC;SAC5C,MAAM,CAAC,0BAA0B,CAAC;SAClC,MAAM,CAAC,cAAc,CAAC;SACtB,kBAAkB,EAAE;SACpB,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QAC1B,MAAM,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;AACX,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=dummy.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dummy.d.ts","sourceRoot":"","sources":["../../src/commands/dummy.ts"],"names":[],"mappings":""}
@@ -1,3 +0,0 @@
1
- export {};
2
- // dummy file to create directory
3
- //# sourceMappingURL=dummy.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dummy.js","sourceRoot":"","sources":["../../src/commands/dummy.ts"],"names":[],"mappings":";AAAA,iCAAiC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=find.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"find.d.ts","sourceRoot":"","sources":["../../src/commands/find.ts"],"names":[],"mappings":""}
@@ -1,3 +0,0 @@
1
- export {};
2
- // Deleted
3
- //# sourceMappingURL=find.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"find.js","sourceRoot":"","sources":["../../src/commands/find.ts"],"names":[],"mappings":";AAAA,UAAU"}
@@ -1,30 +0,0 @@
1
- import { ObsidianService } from '../services/ObsidianService.js';
2
- import type { PromptData } from '../types/interfaces.js';
3
- export declare const BACK_SIGNAL: unique symbol;
4
- export declare class PromptLoader {
5
- private obsidian;
6
- private lang;
7
- private aiModelService;
8
- constructor(obsidian: ObsidianService, lang: string);
9
- /**
10
- * プロンプトファイルを読み込む
11
- * Loads a prompt file.
12
- */
13
- load(promptName: string): Promise<PromptData>;
14
- /**
15
- * プロンプトファイルを新規作成(または上書き)する
16
- * Creates (or overwrites) a prompt file.
17
- */
18
- create(promptName: string, interactive: boolean): Promise<string | typeof BACK_SIGNAL>;
19
- /**
20
- * 既存のプロンプトファイルのAI設定のみを更新する
21
- * Updates only the AI settings of an existing prompt file.
22
- */
23
- updateAI(promptName: string): Promise<void | typeof BACK_SIGNAL>;
24
- /**
25
- * コンテンツに対話的にAI設定を注入するヘルパーメソッド
26
- * Helper method to interactively inject AI settings into content.
27
- */
28
- private injectAIConfig;
29
- }
30
- //# sourceMappingURL=PromptLoader.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PromptLoader.d.ts","sourceRoot":"","sources":["../../src/core/PromptLoader.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAGjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGzD,eAAO,MAAM,WAAW,eAAiB,CAAC;AAE1C,qBAAa,YAAY;IACrB,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,cAAc,CAAiB;gBAE3B,QAAQ,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM;IAMnD;;;OAGG;IACG,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IA4CnD;;;OAGG;IACG,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,OAAO,WAAW,CAAC;IAuB5F;;;OAGG;IACG,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,OAAO,WAAW,CAAC;IAuBtE;;;OAGG;YACW,cAAc;CA8F/B"}
@@ -1,187 +0,0 @@
1
- import * as path from 'path';
2
- import matter from 'gray-matter';
3
- import { z } from 'zod';
4
- import { PromptFileSchema } from '../types/schemas.js';
5
- import { DEFAULT_PROMPTS } from '../templates/defaultPrompt.js';
6
- import { TEXT } from '../config/text.js';
7
- import { ObsidianService } from '../services/ObsidianService.js';
8
- import { select, text as clackText, isCancel, cancel } from '@clack/prompts';
9
- import { AIProvider, AppMode } from '../types/constants.js';
10
- import { AIModelService } from '../services/AIModelService.js';
11
- export const BACK_SIGNAL = Symbol('BACK');
12
- export class PromptLoader {
13
- obsidian;
14
- lang;
15
- aiModelService;
16
- constructor(obsidian, lang) {
17
- this.obsidian = obsidian;
18
- this.lang = lang;
19
- this.aiModelService = new AIModelService(obsidian.getVaultPath());
20
- }
21
- /**
22
- * プロンプトファイルを読み込む
23
- * Loads a prompt file.
24
- */
25
- async load(promptName) {
26
- const relativePath = path.join('_AI_Prompts', 'prompts', this.lang, `${promptName}.md`);
27
- try {
28
- const fileContent = await this.obsidian.readNote(relativePath);
29
- const { content, data } = matter(fileContent);
30
- const validated = PromptFileSchema.parse({
31
- frontmatter: data,
32
- content: content.trim()
33
- });
34
- return {
35
- content: validated.content,
36
- aiProvider: validated.frontmatter?.aiProvider,
37
- model: validated.frontmatter?.model,
38
- outputMode: validated.frontmatter?.outputMode
39
- };
40
- }
41
- catch (error) {
42
- if (error.code === 'ENOENT') {
43
- const result = await this.create(promptName, false);
44
- if (result === BACK_SIGNAL)
45
- throw new Error(TEXT.errors.unexpectedBackSignal);
46
- const { content, data } = matter(result);
47
- return { content: content.trim(), ...data };
48
- }
49
- if (error instanceof z.ZodError) {
50
- const contentError = error.issues.find(issue => issue.path.includes('content') && issue.code === 'too_small');
51
- if (contentError) {
52
- const errorMessage = TEXT.loader.loadErrorDetail.replace('{filePath}', relativePath);
53
- throw new Error(`${errorMessage}\n${TEXT.loader.reason}: ${TEXT.validation.promptTooShort}`);
54
- }
55
- }
56
- const errorMessage = TEXT.loader.loadErrorDetail.replace('{filePath}', relativePath);
57
- throw new Error(`${errorMessage}\n${TEXT.loader.reason}: ${error.message}`);
58
- }
59
- }
60
- /**
61
- * プロンプトファイルを新規作成(または上書き)する
62
- * Creates (or overwrites) a prompt file.
63
- */
64
- async create(promptName, interactive) {
65
- const relativePath = path.join('_AI_Prompts', 'prompts', this.lang, `${promptName}.md`);
66
- let defaultContent = DEFAULT_PROMPTS[promptName];
67
- if (!defaultContent) {
68
- const errorMessage = TEXT.loader.noDefaultPrompt.replace('{promptName}', promptName);
69
- throw new Error(errorMessage);
70
- }
71
- if (interactive) {
72
- const result = await this.injectAIConfig(defaultContent, promptName);
73
- if (result === BACK_SIGNAL)
74
- return BACK_SIGNAL;
75
- defaultContent = result;
76
- }
77
- await this.obsidian.createNote(relativePath, defaultContent);
78
- const logMessage = TEXT.loader.createdDefaultFile.replace('{filePath}', relativePath);
79
- console.log(logMessage);
80
- return defaultContent;
81
- }
82
- /**
83
- * 既存のプロンプトファイルのAI設定のみを更新する
84
- * Updates only the AI settings of an existing prompt file.
85
- */
86
- async updateAI(promptName) {
87
- const relativePath = path.join('_AI_Prompts', 'prompts', this.lang, `${promptName}.md`);
88
- try {
89
- const fileContent = await this.obsidian.readNote(relativePath);
90
- const newContent = await this.injectAIConfig(fileContent, promptName);
91
- if (newContent === BACK_SIGNAL)
92
- return BACK_SIGNAL;
93
- await this.obsidian.createNote(relativePath, newContent);
94
- console.log(TEXT.ui.aiSettingsUpdatedFor.replace('{mode}', promptName));
95
- }
96
- catch (error) {
97
- if (error.code === 'ENOENT') {
98
- const result = await this.create(promptName, true);
99
- if (result === BACK_SIGNAL)
100
- return BACK_SIGNAL;
101
- return;
102
- }
103
- else {
104
- throw error;
105
- }
106
- }
107
- }
108
- /**
109
- * コンテンツに対話的にAI設定を注入するヘルパーメソッド
110
- * Helper method to interactively inject AI settings into content.
111
- */
112
- async injectAIConfig(fileContent, promptName) {
113
- const availableProviders = Object.values(AIProvider).filter(provider => {
114
- const key = `${provider.toUpperCase()}_API_KEY`;
115
- return process.env[key] || process.env[`${provider.toUpperCase()}_API_SECRET`];
116
- });
117
- if (availableProviders.length > 0) {
118
- const options = availableProviders.map(p => ({ value: p, label: p }));
119
- options.push({ value: 'BACK', label: TEXT.ui.backOption });
120
- const selectedProvider = await select({
121
- message: TEXT.ui.selectAIForMode.replace('{mode}', promptName),
122
- options: options,
123
- });
124
- if (isCancel(selectedProvider)) {
125
- cancel(TEXT.ui.operationCancelled);
126
- process.exit(0);
127
- }
128
- if (selectedProvider === 'BACK') {
129
- return BACK_SIGNAL;
130
- }
131
- const provider = selectedProvider;
132
- const models = await this.aiModelService.getModels(provider);
133
- const modelOptions = models.map(m => ({ value: m, label: m }));
134
- modelOptions.push({ value: 'CUSTOM', label: TEXT.ui.customModelOption });
135
- const selectedModel = await select({
136
- message: TEXT.ui.selectModel,
137
- options: modelOptions,
138
- });
139
- if (isCancel(selectedModel)) {
140
- cancel(TEXT.ui.operationCancelled);
141
- process.exit(0);
142
- }
143
- let model = selectedModel;
144
- if (selectedModel === 'CUSTOM') {
145
- const customModel = await clackText({
146
- message: TEXT.ui.enterCustomModel,
147
- placeholder: 'e.g. gpt-4-32k',
148
- });
149
- if (isCancel(customModel)) {
150
- cancel(TEXT.ui.operationCancelled);
151
- process.exit(0);
152
- }
153
- model = customModel;
154
- await this.aiModelService.addModel(provider, model);
155
- }
156
- const outputModeOptions = [
157
- { value: 'normal', label: TEXT.ui.outputModeNormal },
158
- { value: 'stream', label: TEXT.ui.outputModeStream },
159
- ];
160
- if (promptName !== AppMode.GENERAL) {
161
- outputModeOptions.push({ value: 'background', label: TEXT.ui.outputModeBackground });
162
- }
163
- const selectedOutputMode = await select({
164
- message: TEXT.ui.selectOutputMode.replace('{mode}', promptName),
165
- options: outputModeOptions,
166
- initialValue: 'normal',
167
- });
168
- if (isCancel(selectedOutputMode)) {
169
- cancel(TEXT.ui.operationCancelled);
170
- process.exit(0);
171
- }
172
- const { data: frontmatter, content } = matter(fileContent);
173
- const existingTags = frontmatter.tags || [];
174
- const newTags = Array.from(new Set([...existingTags, selectedProvider, model]));
175
- const newFrontmatter = {
176
- ...frontmatter,
177
- aiProvider: selectedProvider,
178
- model: model,
179
- outputMode: selectedOutputMode,
180
- tags: newTags
181
- };
182
- return matter.stringify(content, newFrontmatter);
183
- }
184
- return fileContent;
185
- }
186
- }
187
- //# sourceMappingURL=PromptLoader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PromptLoader.js","sourceRoot":"","sources":["../../src/core/PromptLoader.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- import omelette from 'omelette';
2
- export declare const completion: omelette.Instance;
3
- /**
4
- * 補完候補のリストを取得する(#を付けない)
5
- */
6
- export declare const getCandidates: () => string[];
7
- export declare const setupCompletion: () => void;
8
- //# sourceMappingURL=completion.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"completion.d.ts","sourceRoot":"","sources":["../../src/lib/completion.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAIhC,eAAO,MAAM,UAAU,mBAAiC,CAAC;AAEzD;;GAEG;AACH,eAAO,MAAM,aAAa,QAAO,MAAM,EAqBtC,CAAC;AAEF,eAAO,MAAM,eAAe,YA0B3B,CAAC"}
@@ -1,55 +0,0 @@
1
- import omelette from 'omelette';
2
- import * as fsSync from 'fs';
3
- import * as path from 'path';
4
- export const completion = omelette('vf <action> <item>');
5
- /**
6
- * 補完候補のリストを取得する(#を付けない)
7
- */
8
- export const getCandidates = () => {
9
- try {
10
- const vaultPath = process.env.OBSIDIAN_VAULT_PATH;
11
- if (!vaultPath)
12
- return [];
13
- const candidates = [];
14
- const tagsPath = path.join(vaultPath, '_AI_Prompts', 'tags.json');
15
- if (fsSync.existsSync(tagsPath)) {
16
- const tags = JSON.parse(fsSync.readFileSync(tagsPath, 'utf-8'));
17
- if (Array.isArray(tags))
18
- candidates.push(...tags);
19
- }
20
- const modelsPath = path.join(vaultPath, '_AI_Prompts', 'ai-models.json');
21
- if (fsSync.existsSync(modelsPath)) {
22
- const modelsData = JSON.parse(fsSync.readFileSync(modelsPath, 'utf-8'));
23
- Object.values(modelsData).forEach((models) => {
24
- if (Array.isArray(models))
25
- candidates.push(...models);
26
- });
27
- }
28
- return candidates;
29
- }
30
- catch (e) {
31
- return [];
32
- }
33
- };
34
- export const setupCompletion = () => {
35
- completion.on('action', ({ reply }) => {
36
- reply(['ask', 'diary', 'd', 'search', 's', 'init', 'completion']);
37
- });
38
- completion.on('item', ({ reply, line }) => {
39
- const parts = line.split(/\s+/);
40
- const action = parts[1] || '';
41
- const askOptions = ['--mode', '-m', '--instruction', '-i', '--detach', '-d', '--model']; // -f 削除
42
- const diaryOptions = ['--task', '-t'];
43
- if (['ask', 'diary', 'd', 'search', 's'].includes(action)) {
44
- reply([...getCandidates(), ...(action === 'ask' ? askOptions : (action === 'diary' || action === 'd' ? diaryOptions : []))]);
45
- }
46
- });
47
- const isCompletionRequest = process.argv.some(arg => arg.includes('--comp') || arg === '_completion' || arg === 'completion');
48
- if (isCompletionRequest) {
49
- if (process.argv.some(arg => arg.includes('--compzsh') || arg.includes('--compbash') || arg === '--completion')) {
50
- completion.init();
51
- process.exit(0);
52
- }
53
- }
54
- };
55
- //# sourceMappingURL=completion.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"completion.js","sourceRoot":"","sources":["../../src/lib/completion.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=dummy.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dummy.d.ts","sourceRoot":"","sources":["../../src/lib/dummy.ts"],"names":[],"mappings":""}
package/dist/lib/dummy.js DELETED
@@ -1,3 +0,0 @@
1
- export {};
2
- // dummy
3
- //# sourceMappingURL=dummy.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dummy.js","sourceRoot":"","sources":["../../src/lib/dummy.ts"],"names":[],"mappings":";AAAA,QAAQ"}
@@ -1,33 +0,0 @@
1
- export declare class AIModelService {
2
- private modelsPath;
3
- private templatePath;
4
- constructor(vaultPath: string);
5
- /**
6
- * ai-models.jsonを初期化する
7
- * @returns true if a new file was created
8
- */
9
- initialize(): Promise<boolean>;
10
- /**
11
- * 指定されたプロバイダーのモデルリストを取得する
12
- * Gets the list of models for the specified provider.
13
- */
14
- getModels(provider: string): Promise<string[]>;
15
- /**
16
- * 新しいモデルを追加する
17
- * Adds a new model.
18
- */
19
- addModel(provider: string, model: string): Promise<void>;
20
- /**
21
- * モデルを削除する
22
- * Removes a model.
23
- */
24
- removeModel(provider: string, model: string): Promise<void>;
25
- /**
26
- * モデル名からプロバイダーを推測する
27
- * Infers the provider from the model name.
28
- */
29
- inferProvider(modelName: string): Promise<string | null>;
30
- private loadAllModels;
31
- private saveAllModels;
32
- }
33
- //# sourceMappingURL=AIModelService.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AIModelService.d.ts","sourceRoot":"","sources":["../../src/services/AIModelService.ts"],"names":[],"mappings":"AAKA,qBAAa,cAAc;IACvB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,YAAY,CAAS;gBAEjB,SAAS,EAAE,MAAM;IAW7B;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAUpC;;;OAGG;IACG,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAMpD;;;OAGG;IACG,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAa9D;;;OAGG;IACG,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYjE;;;OAGG;IACG,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;YAoBhD,aAAa;YAiBb,aAAa;CAK9B"}
@@ -1,116 +0,0 @@
1
- import * as fs from 'fs/promises';
2
- import * as path from 'path';
3
- import { fileURLToPath } from 'url';
4
- import { AIProvider } from '../types/constants.js';
5
- export class AIModelService {
6
- modelsPath;
7
- templatePath;
8
- constructor(vaultPath) {
9
- this.modelsPath = path.join(vaultPath, '_AI_Prompts', 'ai-models.json');
10
- const __filename = fileURLToPath(import.meta.url);
11
- const __dirname = path.dirname(__filename);
12
- // src/config/ai-models.json へのパス (ビルド後の構成に依存)
13
- // 注意: index.ts での修正に合わせて、ここも .ts ファイルからのインポートに変更するのが理想だが、
14
- // 今回は既存のパス解決ロジックを踏襲しつつ、inferProvider を追加する
15
- this.templatePath = path.join(__dirname, '../config/ai-models.json');
16
- }
17
- /**
18
- * ai-models.jsonを初期化する
19
- * @returns true if a new file was created
20
- */
21
- async initialize() {
22
- try {
23
- await fs.access(this.modelsPath);
24
- return false;
25
- }
26
- catch (e) {
27
- await this.loadAllModels();
28
- return true;
29
- }
30
- }
31
- /**
32
- * 指定されたプロバイダーのモデルリストを取得する
33
- * Gets the list of models for the specified provider.
34
- */
35
- async getModels(provider) {
36
- const allModels = await this.loadAllModels();
37
- const models = allModels[provider] || [];
38
- return models.filter(model => model !== '');
39
- }
40
- /**
41
- * 新しいモデルを追加する
42
- * Adds a new model.
43
- */
44
- async addModel(provider, model) {
45
- const allModels = await this.loadAllModels();
46
- if (!allModels[provider]) {
47
- allModels[provider] = [];
48
- }
49
- if (!allModels[provider].includes(model)) {
50
- allModels[provider].push(model);
51
- await this.saveAllModels(allModels);
52
- }
53
- }
54
- /**
55
- * モデルを削除する
56
- * Removes a model.
57
- */
58
- async removeModel(provider, model) {
59
- const allModels = await this.loadAllModels();
60
- if (allModels[provider]) {
61
- const index = allModels[provider].indexOf(model);
62
- if (index > -1) {
63
- allModels[provider].splice(index, 1);
64
- await this.saveAllModels(allModels);
65
- }
66
- }
67
- }
68
- /**
69
- * モデル名からプロバイダーを推測する
70
- * Infers the provider from the model name.
71
- */
72
- async inferProvider(modelName) {
73
- const allModels = await this.loadAllModels();
74
- // 1. 完全一致チェック
75
- for (const [provider, models] of Object.entries(allModels)) {
76
- if (Array.isArray(models) && models.includes(modelName)) {
77
- return provider;
78
- }
79
- }
80
- // 2. プレフィックスによる推測
81
- const lowerName = modelName.toLowerCase();
82
- if (lowerName.startsWith('gpt'))
83
- return AIProvider.OPENAI;
84
- if (lowerName.startsWith('gemini'))
85
- return AIProvider.GEMINI;
86
- if (lowerName.startsWith('claude'))
87
- return AIProvider.CLAUDE;
88
- if (lowerName.startsWith('llama') || lowerName.startsWith('mixtral') || lowerName.startsWith('gemma'))
89
- return AIProvider.GROQ;
90
- return null;
91
- }
92
- async loadAllModels() {
93
- try {
94
- const data = await fs.readFile(this.modelsPath, 'utf-8');
95
- return JSON.parse(data);
96
- }
97
- catch (e) {
98
- try {
99
- const templateData = await fs.readFile(this.templatePath, 'utf-8');
100
- const models = JSON.parse(templateData);
101
- await this.saveAllModels(models);
102
- return models;
103
- }
104
- catch (templateError) {
105
- // console.error("Failed to load model template:", templateError);
106
- return {};
107
- }
108
- }
109
- }
110
- async saveAllModels(models) {
111
- const dirPath = path.dirname(this.modelsPath);
112
- await fs.mkdir(dirPath, { recursive: true });
113
- await fs.writeFile(this.modelsPath, JSON.stringify(models, null, 2), 'utf-8');
114
- }
115
- }
116
- //# sourceMappingURL=AIModelService.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AIModelService.js","sourceRoot":"","sources":["../../src/services/AIModelService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,MAAM,OAAO,cAAc;IACf,UAAU,CAAS;IACnB,YAAY,CAAS;IAE7B,YAAY,SAAiB;QACzB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,gBAAgB,CAAC,CAAC;QAExE,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC3C,8CAA8C;QAC9C,0DAA0D;QAC1D,2CAA2C;QAC3C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,0BAA0B,CAAC,CAAC;IACzE,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,UAAU;QACZ,IAAI,CAAC;YACD,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACjC,OAAO,KAAK,CAAC;QACjB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC;QAChB,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,SAAS,CAAC,QAAgB;QAC5B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC7C,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACzC,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC;IAChD,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,QAAQ,CAAC,QAAgB,EAAE,KAAa;QAC1C,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAE7C,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvB,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;QAC7B,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACvC,SAAS,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAChC,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QACxC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,WAAW,CAAC,QAAgB,EAAE,KAAa;QAC7C,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAE7C,IAAI,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtB,MAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACjD,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;gBACb,SAAS,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBACrC,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;YACxC,CAAC;QACL,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,aAAa,CAAC,SAAiB;QACjC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAE7C,cAAc;QACd,KAAK,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YACzD,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBACtD,OAAO,QAAQ,CAAC;YACpB,CAAC;QACL,CAAC;QAED,kBAAkB;QAClB,MAAM,SAAS,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;QAC1C,IAAI,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC;YAAE,OAAO,UAAU,CAAC,MAAM,CAAC;QAC1D,IAAI,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,OAAO,UAAU,CAAC,MAAM,CAAC;QAC7D,IAAI,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,OAAO,UAAU,CAAC,MAAM,CAAC;QAC7D,IAAI,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,OAAO,UAAU,CAAC,IAAI,CAAC;QAE9H,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,KAAK,CAAC,aAAa;QACvB,IAAI,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YACzD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,IAAI,CAAC;gBACD,MAAM,YAAY,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;gBACnE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gBACxC,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;gBACjC,OAAO,MAAM,CAAC;YAClB,CAAC;YAAC,OAAO,aAAa,EAAE,CAAC;gBACrB,kEAAkE;gBAClE,OAAO,EAAE,CAAC;YACd,CAAC;QACL,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,MAAgC;QACxD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC9C,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7C,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAClF,CAAC;CACJ"}
@@ -1,19 +0,0 @@
1
- import { ObsidianService } from '../services/ObsidianService.js';
2
- import { BaseStrategy } from './BaseStrategy.js';
3
- import { PromptSmith } from '../core/PromptSmith.js';
4
- import { AIOrchestratorService } from '../services/AIOrchestratorService.js';
5
- export declare class SearchStrategy extends BaseStrategy {
6
- protected mode: "search";
7
- protected saveInput: boolean;
8
- execute(inputData: string, obsidian: ObsidianService, promptSmith: PromptSmith, aiOrchestrator: AIOrchestratorService, fileInfo: {
9
- relativePath: string;
10
- fullPath: string;
11
- }, date: Date, instruction?: string, overrideModel?: {
12
- provider: string;
13
- model: string;
14
- }, isPiped?: boolean): Promise<any>;
15
- private searchWithRipgrep;
16
- private searchWithObsidianUri;
17
- private openFile;
18
- }
19
- //# sourceMappingURL=SearchStrategy.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SearchStrategy.d.ts","sourceRoot":"","sources":["../../src/strategies/SearchStrategy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAGjE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAMrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAI7E,qBAAa,cAAe,SAAQ,YAAY;IAC5C,SAAS,CAAC,IAAI,WAAkB;IAChC,SAAS,CAAC,SAAS,UAAS;IAEb,OAAO,CAClB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,eAAe,EACzB,WAAW,EAAE,WAAW,EACxB,cAAc,EAAE,qBAAqB,EACrC,QAAQ,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,EACpD,IAAI,EAAE,IAAI,EACV,WAAW,CAAC,EAAE,MAAM,EACpB,aAAa,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EACnD,OAAO,CAAC,EAAE,OAAO,GAClB,OAAO,CAAC,GAAG,CAAC;YAkBD,iBAAiB;YAqDjB,qBAAqB;YAYrB,QAAQ;CA0BzB"}
@@ -1,112 +0,0 @@
1
- import { ObsidianService } from '../services/ObsidianService.js';
2
- import { TEXT } from '../config/text.js';
3
- import { AppMode } from '../types/constants.js';
4
- import { BaseStrategy } from './BaseStrategy.js';
5
- import { PromptSmith } from '../core/PromptSmith.js';
6
- import { TagService } from '../services/TagService.js';
7
- import { select, isCancel, cancel } from '@clack/prompts';
8
- import { exec, spawn } from 'child_process';
9
- import { promisify } from 'util';
10
- import * as path from 'path';
11
- import { AIOrchestratorService } from '../services/AIOrchestratorService.js';
12
- const execAsync = promisify(exec);
13
- export class SearchStrategy extends BaseStrategy {
14
- mode = AppMode.SEARCH;
15
- saveInput = false;
16
- async execute(inputData, obsidian, promptSmith, aiOrchestrator, fileInfo, date, instruction, overrideModel, isPiped) {
17
- const query = inputData.trim();
18
- if (!query) {
19
- console.error(TEXT.errors.noInput);
20
- return;
21
- }
22
- const tagService = new TagService(obsidian.getVaultPath());
23
- const hasRipgrep = await tagService.checkRipgrepAvailability();
24
- if (hasRipgrep) {
25
- await this.searchWithRipgrep(query, obsidian.getVaultPath());
26
- }
27
- else {
28
- await this.searchWithObsidianUri(query, obsidian.getVaultPath());
29
- }
30
- }
31
- async searchWithRipgrep(query, vaultPath) {
32
- console.log(TEXT.logs.searchingWithRipgrep.replace('{query}', query));
33
- try {
34
- const { stdout } = await execAsync(`rg -i --vimgrep -g '*.md' "${query}" "${vaultPath}"`);
35
- const lines = stdout.split('\n').filter(line => line.trim() !== '');
36
- if (lines.length === 0) {
37
- console.log(TEXT.logs.noResultsFound);
38
- return;
39
- }
40
- const choices = lines.map(line => {
41
- const parts = line.split(':');
42
- if (parts.length < 4)
43
- return null;
44
- const filePath = parts[0];
45
- const lineNum = parts[1];
46
- const colNum = parts[2];
47
- const content = parts.slice(3).join(':').trim();
48
- if (!filePath)
49
- return null;
50
- const relativePath = filePath.replace(vaultPath + '/', '');
51
- return {
52
- name: `${relativePath}:${lineNum} ${content.substring(0, 60)}...`,
53
- value: filePath,
54
- description: content
55
- };
56
- }).filter(c => c !== null);
57
- const selectedFile = await select({
58
- message: TEXT.ui.searchResultsFound.replace('{count}', choices.length.toString()),
59
- options: choices,
60
- });
61
- if (isCancel(selectedFile)) {
62
- cancel(TEXT.ui.operationCancelled);
63
- return;
64
- }
65
- await this.openFile(selectedFile, vaultPath);
66
- }
67
- catch (e) {
68
- if (e.code === 1) {
69
- console.log(TEXT.logs.noResultsFound);
70
- }
71
- else {
72
- console.error(`${TEXT.errors.searchError} ${e.message}`);
73
- }
74
- }
75
- }
76
- async searchWithObsidianUri(query, vaultPath) {
77
- console.log(TEXT.logs.ripgrepNotFoundOpeningObsidian);
78
- const vaultName = path.basename(vaultPath);
79
- const encodedQuery = encodeURIComponent(query);
80
- const uri = `obsidian://search?vault=${vaultName}&query=${encodedQuery}`;
81
- const openCommand = process.platform === 'darwin' ? 'open'
82
- : (process.platform === 'win32' ? 'start' : 'xdg-open');
83
- await execAsync(`${openCommand} "${uri}"`);
84
- }
85
- async openFile(filePath, vaultPath) {
86
- const editor = process.env.EDITOR;
87
- if (editor) {
88
- const child = spawn(editor, [filePath], {
89
- stdio: 'inherit'
90
- });
91
- return new Promise((resolve, reject) => {
92
- child.on('exit', (code) => {
93
- if (code === 0)
94
- resolve();
95
- else
96
- reject(new Error(TEXT.errors.editorExitError.replace('{code}', (code ?? 'unknown').toString())));
97
- });
98
- child.on('error', reject);
99
- });
100
- }
101
- else {
102
- const vaultName = path.basename(vaultPath);
103
- const relativePath = filePath.replace(vaultPath + '/', '');
104
- const encodedFile = encodeURIComponent(relativePath);
105
- const uri = `obsidian://open?vault=${vaultName}&file=${encodedFile}`;
106
- const openCommand = process.platform === 'darwin' ? 'open'
107
- : (process.platform === 'win32' ? 'start' : 'xdg-open');
108
- await execAsync(`${openCommand} "${uri}"`);
109
- }
110
- }
111
- }
112
- //# sourceMappingURL=SearchStrategy.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SearchStrategy.js","sourceRoot":"","sources":["../../src/strategies/SearchStrategy.ts"],"names":[],"mappings":"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"}
@@ -1,24 +0,0 @@
1
- ### vf completion - begin ###
2
- if type compdef &>/dev/null; then
3
- # Zsh
4
- _vf_completion() {
5
- local -a reply
6
-
7
- # Zsh's word splitting can be tricky. Let omelette handle it.
8
- reply=($(vf _completion --compzsh --compgen "${CURRENT}" "${words[CURRENT-1]}" "${BUFFER}"))
9
-
10
- # Tell compadd to handle '#' as a normal character
11
- compadd -Q -S '' -a reply
12
- }
13
- compdef _vf_completion vf
14
- elif type complete &>/dev/null; then
15
- # Bash
16
- _vf_completion() {
17
- local cur prev words cword
18
- _get_comp_words_by_ref -n : cur prev words cword
19
- COMPREPLY=( $(compgen -W "$(vf _completion --compbash --compgen "$cword" "$prev" "${COMP_LINE}")" -- "$cur") )
20
- return 0
21
- }
22
- complete -F _vf_completion vf
23
- fi
24
- ### vf completion - end ###
@@ -1,8 +0,0 @@
1
- import omelette from 'omelette';
2
- export declare const completion: omelette.Instance;
3
- /**
4
- * 補完候補のリストを取得する(#を付けない)
5
- */
6
- export declare const getCandidates: () => string[];
7
- export declare const setupCompletion: () => void;
8
- //# sourceMappingURL=completion.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"completion.d.ts","sourceRoot":"","sources":["../../src/utils/completion.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAKhC,eAAO,MAAM,UAAU,mBAAiC,CAAC;AAEzD;;GAEG;AACH,eAAO,MAAM,aAAa,QAAO,MAAM,EAqBtC,CAAC;AAGF,eAAO,MAAM,eAAe,YA2B3B,CAAC"}
@@ -1,58 +0,0 @@
1
- import omelette from 'omelette';
2
- import * as fsSync from 'fs';
3
- import * as path from 'path';
4
- // Omelette インスタンスの作成
5
- export const completion = omelette('vf <action> <item>');
6
- /**
7
- * 補完候補のリストを取得する(#を付けない)
8
- */
9
- export const getCandidates = () => {
10
- try {
11
- const vaultPath = process.env.OBSIDIAN_VAULT_PATH;
12
- if (!vaultPath)
13
- return [];
14
- const candidates = [];
15
- const tagsPath = path.join(vaultPath, '_AI_Prompts', 'tags.json');
16
- if (fsSync.existsSync(tagsPath)) {
17
- const tags = JSON.parse(fsSync.readFileSync(tagsPath, 'utf-8'));
18
- if (Array.isArray(tags))
19
- candidates.push(...tags);
20
- }
21
- const modelsPath = path.join(vaultPath, '_AI_Prompts', 'ai-models.json');
22
- if (fsSync.existsSync(modelsPath)) {
23
- const modelsData = JSON.parse(fsSync.readFileSync(modelsPath, 'utf-8'));
24
- Object.values(modelsData).forEach((models) => {
25
- if (Array.isArray(models))
26
- candidates.push(...models);
27
- });
28
- }
29
- return candidates;
30
- }
31
- catch (e) {
32
- return [];
33
- }
34
- };
35
- // 補完ロジックのセットアップ
36
- export const setupCompletion = () => {
37
- completion.on('action', ({ reply }) => {
38
- reply(['ask', 'diary', 'd', 'search', 's', 'init', 'completion']);
39
- });
40
- completion.on('item', ({ reply, line }) => {
41
- const parts = line.split(/\s+/);
42
- const action = parts[1] || '';
43
- const askOptions = ['--mode', '-m', '--file', '-f', '--instruction', '-i', '--detach', '-d', '--model'];
44
- const diaryOptions = ['--task', '-t'];
45
- if (['ask', 'diary', 'd', 'search', 's'].includes(action)) {
46
- reply([...getCandidates(), ...(action === 'ask' ? askOptions : (action === 'diary' || action === 'd' ? diaryOptions : []))]);
47
- }
48
- });
49
- // 絶対ガードロジック
50
- const isCompletionRequest = process.argv.some(arg => arg.includes('--comp') || arg === '_completion' || arg === 'completion');
51
- if (isCompletionRequest) {
52
- if (process.argv.some(arg => arg.includes('--compzsh') || arg.includes('--compbash') || arg === '--completion')) {
53
- completion.init();
54
- process.exit(0);
55
- }
56
- }
57
- };
58
- //# sourceMappingURL=completion.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"completion.js","sourceRoot":"","sources":["../../src/utils/completion.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=dummy.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dummy.d.ts","sourceRoot":"","sources":["../../src/utils/dummy.ts"],"names":[],"mappings":""}
@@ -1,3 +0,0 @@
1
- export {};
2
- // dummy file to create directory
3
- //# sourceMappingURL=dummy.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dummy.js","sourceRoot":"","sources":["../../src/utils/dummy.ts"],"names":[],"mappings":";AAAA,iCAAiC"}