maskweaver 0.9.3 → 0.9.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.
- package/README.ko.md +279 -325
- package/README.md +109 -113
- package/assets/commands/meta/commands.json +34 -34
- package/assets/commands/weave-agents.md +12 -52
- package/assets/commands/weave-approve.md +12 -51
- package/assets/commands/weave-archive.md +21 -0
- package/assets/commands/weave-build.md +20 -89
- package/assets/commands/weave-craft.md +22 -43
- package/assets/commands/weave-help.md +37 -106
- package/assets/commands/weave-init.md +26 -108
- package/assets/commands/weave-interview.md +13 -111
- package/assets/commands/weave-map.md +13 -99
- package/assets/commands/weave-prepare.md +23 -69
- package/assets/commands/weave-refine-plan.md +26 -59
- package/assets/commands/weave-repair.md +22 -70
- package/assets/commands/weave-status.md +22 -155
- package/assets/commands/weave-troubleshoot.md +11 -47
- package/assets/commands/weave-verify.md +23 -44
- package/assets/commands/weave-worktree.md +27 -69
- package/dist/cli/doctor.js +5 -21
- package/dist/cli/install.d.ts +0 -8
- package/dist/cli/install.js +0 -39
- package/dist/context/config.d.ts +0 -22
- package/dist/context/config.js +0 -28
- package/dist/context/feature.d.ts +0 -39
- package/dist/context/feature.js +0 -77
- package/dist/context/files.d.ts +0 -13
- package/dist/context/files.js +1 -24
- package/dist/context/index.d.ts +0 -7
- package/dist/context/index.js +0 -12
- package/dist/context/project.d.ts +0 -21
- package/dist/context/project.js +0 -30
- package/dist/context/types.d.ts +0 -48
- package/dist/context/types.js +0 -12
- package/dist/context/utils.d.ts +0 -18
- package/dist/context/utils.js +0 -27
- package/dist/core/engine/promptBuilder.d.ts +0 -17
- package/dist/core/engine/promptBuilder.js +0 -28
- package/dist/core/index.d.ts +0 -6
- package/dist/core/index.js +0 -9
- package/dist/core/loader/MaskLoader.d.ts +0 -23
- package/dist/core/loader/MaskLoader.js +0 -29
- package/dist/core/schema/types.d.ts +0 -47
- package/dist/core/schema/types.js +0 -6
- package/dist/core/schema/validator.d.ts +0 -14
- package/dist/core/schema/validator.js +0 -18
- package/dist/i18n/index.d.ts +0 -18
- package/dist/i18n/index.js +4 -23
- package/dist/index.d.ts +0 -8
- package/dist/index.js +0 -8
- package/dist/lib.d.ts +0 -5
- package/dist/lib.js +0 -12
- package/dist/memory/chunking.d.ts +0 -22
- package/dist/memory/chunking.js +2 -37
- package/dist/memory/core.d.ts +0 -29
- package/dist/memory/core.js +1 -52
- package/dist/memory/index.d.ts +0 -5
- package/dist/memory/index.js +0 -10
- package/dist/memory/indexer.d.ts +0 -21
- package/dist/memory/indexer.js +0 -44
- package/dist/memory/providers/examples.d.ts +0 -5
- package/dist/memory/providers/examples.js +4 -64
- package/dist/memory/providers/factory.d.ts +0 -44
- package/dist/memory/providers/factory.js +0 -46
- package/dist/memory/providers/index.d.ts +0 -26
- package/dist/memory/providers/index.js +0 -28
- package/dist/memory/providers/ollama.d.ts +0 -6
- package/dist/memory/providers/ollama.js +1 -8
- package/dist/memory/providers/openai.d.ts +0 -6
- package/dist/memory/providers/openai.js +1 -8
- package/dist/memory/providers/openrouter.d.ts +0 -6
- package/dist/memory/providers/openrouter.js +0 -8
- package/dist/memory/providers/text-only.d.ts +0 -13
- package/dist/memory/providers/text-only.js +0 -17
- package/dist/memory/providers/types.d.ts +0 -39
- package/dist/memory/providers/types.js +0 -7
- package/dist/memory/providers/voyage.d.ts +0 -22
- package/dist/memory/providers/voyage.js +1 -24
- package/dist/memory/search/hybrid.d.ts +0 -12
- package/dist/memory/search/hybrid.js +1 -22
- package/dist/memory/store/sqlite.d.ts +0 -72
- package/dist/memory/store/sqlite.js +4 -127
- package/dist/plugin/config/index.d.ts +0 -112
- package/dist/plugin/config/index.js +0 -115
- package/dist/plugin/index.d.ts +0 -13
- package/dist/plugin/index.js +1 -124
- package/dist/plugin/tools/command-registry.d.ts +0 -6
- package/dist/plugin/tools/command-registry.js +0 -14
- package/dist/plugin/tools/context.d.ts +0 -12
- package/dist/plugin/tools/context.js +0 -58
- package/dist/plugin/tools/maskSave.d.ts +0 -3
- package/dist/plugin/tools/maskSave.js +0 -3
- package/dist/plugin/tools/memoryGet.d.ts +0 -3
- package/dist/plugin/tools/memoryGet.js +0 -3
- package/dist/plugin/tools/memoryIndexer.d.ts +0 -3
- package/dist/plugin/tools/memoryIndexer.js +0 -10
- package/dist/plugin/tools/memorySearch.d.ts +0 -31
- package/dist/plugin/tools/memorySearch.js +0 -79
- package/dist/plugin/tools/memoryWrite.d.ts +0 -8
- package/dist/plugin/tools/memoryWrite.js +0 -32
- package/dist/plugin/tools/retrospect.d.ts +0 -3
- package/dist/plugin/tools/retrospect.js +0 -3
- package/dist/plugin/tools/slashcommand.d.ts +0 -11
- package/dist/plugin/tools/slashcommand.js +0 -38
- package/dist/plugin/tools/squad.d.ts +0 -12
- package/dist/plugin/tools/squad.js +11 -83
- package/dist/plugin/tools/weave.d.ts +0 -6
- package/dist/plugin/tools/weave.js +0 -78
- package/dist/plugin/types.d.ts +0 -20
- package/dist/plugin/types.js +0 -7
- package/dist/retrospect/index.d.ts +0 -7
- package/dist/retrospect/index.js +0 -9
- package/dist/retrospect/mask-save.d.ts +0 -12
- package/dist/retrospect/mask-save.js +1 -80
- package/dist/retrospect/retrospect.d.ts +0 -18
- package/dist/retrospect/retrospect.js +0 -63
- package/dist/retrospect/strategies/base.d.ts +0 -15
- package/dist/retrospect/strategies/base.js +0 -7
- package/dist/retrospect/strategies/deep.d.ts +0 -12
- package/dist/retrospect/strategies/deep.js +0 -24
- package/dist/retrospect/strategies/index.d.ts +0 -12
- package/dist/retrospect/strategies/index.js +0 -12
- package/dist/retrospect/strategies/quick.d.ts +0 -12
- package/dist/retrospect/strategies/quick.js +0 -19
- package/dist/retrospect/strategies/standard.d.ts +0 -12
- package/dist/retrospect/strategies/standard.js +0 -15
- package/dist/retrospect/types.d.ts +0 -7
- package/dist/retrospect/types.js +0 -7
- package/dist/shared/config.d.ts +0 -105
- package/dist/shared/config.js +0 -33
- package/dist/shared/errors.d.ts +0 -18
- package/dist/shared/errors.js +0 -19
- package/dist/shared/generate-agents.d.ts +0 -69
- package/dist/shared/generate-agents.js +2 -86
- package/dist/shared/image.d.ts +0 -67
- package/dist/shared/image.js +6 -104
- package/dist/shared/index.d.ts +0 -5
- package/dist/shared/index.js +0 -7
- package/dist/shared/model-registry.d.ts +0 -72
- package/dist/shared/model-registry.js +5 -95
- package/dist/shared/types.d.ts +0 -15
- package/dist/shared/types.js +0 -3
- package/dist/shared-context/dag.d.ts +0 -105
- package/dist/shared-context/dag.js +3 -114
- package/dist/shared-context/index.d.ts +0 -5
- package/dist/shared-context/index.js +0 -15
- package/dist/shared-context/logger.d.ts +0 -37
- package/dist/shared-context/logger.js +0 -41
- package/dist/shared-context/parallel-executor.d.ts +0 -54
- package/dist/shared-context/parallel-executor.js +4 -56
- package/dist/shared-context/session.d.ts +0 -56
- package/dist/shared-context/session.js +0 -47
- package/dist/shared-context/squad.d.ts +0 -68
- package/dist/shared-context/squad.js +0 -63
- package/dist/shared-context/storage.d.ts +0 -132
- package/dist/shared-context/storage.js +0 -116
- package/dist/shared-context/task.d.ts +0 -120
- package/dist/shared-context/task.js +0 -152
- package/dist/shared-context/test/dag.test.js +9 -14
- package/dist/shared-context/test/logger.test.d.ts +0 -8
- package/dist/shared-context/test/logger.test.js +0 -52
- package/dist/shared-context/test/session.test.d.ts +0 -7
- package/dist/shared-context/test/session.test.js +0 -63
- package/dist/shared-context/test/squad.test.d.ts +0 -10
- package/dist/shared-context/test/squad.test.js +2 -68
- package/dist/shared-context/test/storage.test.d.ts +0 -8
- package/dist/shared-context/test/storage.test.js +0 -68
- package/dist/shared-context/test/task.test.d.ts +0 -7
- package/dist/shared-context/test/task.test.js +0 -54
- package/dist/shared-context/test/watchdog.test.d.ts +0 -7
- package/dist/shared-context/test/watchdog.test.js +3 -58
- package/dist/shared-context/types.d.ts +0 -215
- package/dist/shared-context/types.js +0 -125
- package/dist/shared-context/watchdog.d.ts +0 -127
- package/dist/shared-context/watchdog.js +0 -148
- package/dist/shared-context/worktree.d.ts +0 -68
- package/dist/shared-context/worktree.js +2 -34
- package/dist/verify/budget.d.ts +0 -29
- package/dist/verify/budget.js +0 -34
- package/dist/verify/critical-files.d.ts +0 -17
- package/dist/verify/critical-files.js +0 -37
- package/dist/verify/escalation.d.ts +0 -20
- package/dist/verify/escalation.js +0 -22
- package/dist/verify/index.d.ts +0 -5
- package/dist/verify/index.js +0 -11
- package/dist/verify/prompts.d.ts +0 -20
- package/dist/verify/prompts.js +0 -20
- package/dist/verify/types.d.ts +0 -26
- package/dist/verify/types.js +1 -12
- package/dist/verify/verifier.d.ts +0 -29
- package/dist/verify/verifier.js +0 -54
- package/dist/version.d.ts +1 -16
- package/dist/version.js +1 -16
- package/dist/weave/bridge.d.ts +0 -35
- package/dist/weave/bridge.js +0 -51
- package/dist/weave/environment/detector.d.ts +0 -6
- package/dist/weave/environment/detector.js +4 -45
- package/dist/weave/environment/index.d.ts +0 -19
- package/dist/weave/environment/index.js +1 -39
- package/dist/weave/environment/issues.d.ts +0 -35
- package/dist/weave/environment/issues.js +0 -59
- package/dist/weave/git.d.ts +0 -8
- package/dist/weave/git.js +0 -8
- package/dist/weave/index.d.ts +0 -13
- package/dist/weave/index.js +2 -28
- package/dist/weave/knowledge/global.d.ts +0 -39
- package/dist/weave/knowledge/global.js +2 -78
- package/dist/weave/loop.js +0 -3
- package/dist/weave/orchestrator.d.ts +0 -69
- package/dist/weave/orchestrator.js +1 -101
- package/dist/weave/phase-manager.d.ts +0 -64
- package/dist/weave/phase-manager.js +0 -89
- package/dist/weave/security/secret-scan.d.ts +0 -14
- package/dist/weave/security/secret-scan.js +0 -19
- package/dist/weave/stages/build.js +0 -15
- package/dist/weave/stages/execute.d.ts +0 -42
- package/dist/weave/stages/execute.js +4 -86
- package/dist/weave/stages/handoff.d.ts +0 -7
- package/dist/weave/stages/handoff.js +0 -43
- package/dist/weave/stages/index.d.ts +0 -3
- package/dist/weave/stages/index.js +0 -3
- package/dist/weave/stages/intake.d.ts +0 -8
- package/dist/weave/stages/intake.js +5 -65
- package/dist/weave/stages/map.d.ts +0 -1
- package/dist/weave/stages/openspec.d.ts +0 -1
- package/dist/weave/stages/plan.d.ts +0 -11
- package/dist/weave/stages/plan.js +1 -53
- package/dist/weave/stages/refine.d.ts +0 -7
- package/dist/weave/stages/refine.js +0 -7
- package/dist/weave/stages/research.d.ts +0 -6
- package/dist/weave/stages/research.js +0 -6
- package/dist/weave/stages/spec.d.ts +0 -12
- package/dist/weave/stages/spec.js +0 -17
- package/dist/weave/types.d.ts +0 -20
- package/dist/weave/types.js +0 -5
- package/dist/weave/verification/commands.d.ts +0 -12
- package/dist/weave/verification/commands.js +0 -19
- package/dist/weave/verification/index.d.ts +0 -6
- package/dist/weave/verification/index.js +1 -19
- package/dist/weave/verification/playwright.d.ts +0 -47
- package/dist/weave/verification/playwright.js +1 -90
- package/dist/weave/worktree.d.ts +0 -16
- package/dist/weave/worktree.js +0 -23
- package/dist/weave/yaml-repair.d.ts +0 -39
- package/dist/weave/yaml-repair.js +13 -116
- package/package.json +1 -1
package/dist/context/config.d.ts
CHANGED
|
@@ -1,10 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Context Configuration
|
|
3
|
-
*
|
|
4
|
-
* 컨텍스트 시스템의 설정과 경로 유틸리티
|
|
5
|
-
*
|
|
6
|
-
* "Configuration should be obvious and in one place" - Kent Beck
|
|
7
|
-
*/
|
|
8
1
|
export declare const CONTEXT_CONFIG: {
|
|
9
2
|
readonly paths: {
|
|
10
3
|
readonly contextDir: ".opencode/context";
|
|
@@ -15,23 +8,8 @@ export declare const CONTEXT_CONFIG: {
|
|
|
15
8
|
readonly status: "active";
|
|
16
9
|
};
|
|
17
10
|
};
|
|
18
|
-
/**
|
|
19
|
-
* 컨텍스트 디렉토리 경로 반환
|
|
20
|
-
*/
|
|
21
11
|
export declare function getContextDir(basePath: string): string;
|
|
22
|
-
/**
|
|
23
|
-
* 프로젝트 컨텍스트 파일 경로 반환
|
|
24
|
-
*/
|
|
25
12
|
export declare function getProjectPath(basePath: string): string;
|
|
26
|
-
/**
|
|
27
|
-
* 피처 디렉토리 경로 반환
|
|
28
|
-
*/
|
|
29
13
|
export declare function getFeaturesDir(basePath: string): string;
|
|
30
|
-
/**
|
|
31
|
-
* 특정 피처 파일 경로 반환
|
|
32
|
-
*/
|
|
33
14
|
export declare function getFeaturePath(basePath: string, id: string): string;
|
|
34
|
-
/**
|
|
35
|
-
* 설정 내보내기 (외부 모듈에서 참조용)
|
|
36
|
-
*/
|
|
37
15
|
export declare function getContextConfig(): typeof CONTEXT_CONFIG;
|
package/dist/context/config.js
CHANGED
|
@@ -1,14 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Context Configuration
|
|
3
|
-
*
|
|
4
|
-
* 컨텍스트 시스템의 설정과 경로 유틸리티
|
|
5
|
-
*
|
|
6
|
-
* "Configuration should be obvious and in one place" - Kent Beck
|
|
7
|
-
*/
|
|
8
1
|
import { join } from 'path';
|
|
9
|
-
// ============================================================================
|
|
10
|
-
// Configuration
|
|
11
|
-
// ============================================================================
|
|
12
2
|
export const CONTEXT_CONFIG = {
|
|
13
3
|
paths: {
|
|
14
4
|
contextDir: '.opencode/context',
|
|
@@ -19,36 +9,18 @@ export const CONTEXT_CONFIG = {
|
|
|
19
9
|
status: 'active',
|
|
20
10
|
},
|
|
21
11
|
};
|
|
22
|
-
// ============================================================================
|
|
23
|
-
// Path Utilities
|
|
24
|
-
// ============================================================================
|
|
25
|
-
/**
|
|
26
|
-
* 컨텍스트 디렉토리 경로 반환
|
|
27
|
-
*/
|
|
28
12
|
export function getContextDir(basePath) {
|
|
29
13
|
return join(basePath, CONTEXT_CONFIG.paths.contextDir);
|
|
30
14
|
}
|
|
31
|
-
/**
|
|
32
|
-
* 프로젝트 컨텍스트 파일 경로 반환
|
|
33
|
-
*/
|
|
34
15
|
export function getProjectPath(basePath) {
|
|
35
16
|
return join(getContextDir(basePath), CONTEXT_CONFIG.paths.projectFile);
|
|
36
17
|
}
|
|
37
|
-
/**
|
|
38
|
-
* 피처 디렉토리 경로 반환
|
|
39
|
-
*/
|
|
40
18
|
export function getFeaturesDir(basePath) {
|
|
41
19
|
return join(getContextDir(basePath), CONTEXT_CONFIG.paths.featuresDir);
|
|
42
20
|
}
|
|
43
|
-
/**
|
|
44
|
-
* 특정 피처 파일 경로 반환
|
|
45
|
-
*/
|
|
46
21
|
export function getFeaturePath(basePath, id) {
|
|
47
22
|
return join(getFeaturesDir(basePath), `${id}.json`);
|
|
48
23
|
}
|
|
49
|
-
/**
|
|
50
|
-
* 설정 내보내기 (외부 모듈에서 참조용)
|
|
51
|
-
*/
|
|
52
24
|
export function getContextConfig() {
|
|
53
25
|
return CONTEXT_CONFIG;
|
|
54
26
|
}
|
|
@@ -1,48 +1,9 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Feature Management
|
|
3
|
-
*
|
|
4
|
-
* 피처의 생성, 조회, 업데이트, 목록, 전환, 완료, 삭제
|
|
5
|
-
*
|
|
6
|
-
* "Keep functions small and focused" - Kent Beck
|
|
7
|
-
*/
|
|
8
1
|
import type { FeatureContext, FeatureUpdate, Result } from './types.js';
|
|
9
|
-
/**
|
|
10
|
-
* 새로운 피처를 생성합니다.
|
|
11
|
-
*/
|
|
12
2
|
export declare function createFeature(basePath: string, name: string, goal: string): Promise<Result<FeatureContext>>;
|
|
13
|
-
/**
|
|
14
|
-
* 특정 피처를 조회합니다.
|
|
15
|
-
*/
|
|
16
3
|
export declare function getFeature(basePath: string, id: string): Promise<Result<FeatureContext>>;
|
|
17
|
-
/**
|
|
18
|
-
* 피처를 업데이트합니다.
|
|
19
|
-
*/
|
|
20
4
|
export declare function updateFeature(basePath: string, id: string, updates: FeatureUpdate): Promise<Result<FeatureContext>>;
|
|
21
|
-
/**
|
|
22
|
-
* 모든 피처 목록을 반환합니다.
|
|
23
|
-
*/
|
|
24
5
|
export declare function listFeatures(basePath: string): Promise<Result<FeatureContext[]>>;
|
|
25
|
-
/**
|
|
26
|
-
* 활성 피처를 전환합니다.
|
|
27
|
-
*
|
|
28
|
-
* 프로젝트 컨텍스트의 activeFeatureId를 업데이트하고,
|
|
29
|
-
* 해당 피처의 상태를 'active'로 변경합니다.
|
|
30
|
-
*/
|
|
31
6
|
export declare function switchFeature(basePath: string, id: string): Promise<Result<FeatureContext>>;
|
|
32
|
-
/**
|
|
33
|
-
* 피처를 완료 처리합니다.
|
|
34
|
-
*
|
|
35
|
-
* - 상태를 'completed'로 변경
|
|
36
|
-
* - activeFeatureId에서 제거
|
|
37
|
-
*/
|
|
38
7
|
export declare function completeFeature(basePath: string, id: string): Promise<Result<FeatureContext>>;
|
|
39
|
-
/**
|
|
40
|
-
* 피처를 삭제합니다.
|
|
41
|
-
*
|
|
42
|
-
* 주의: 이 작업은 되돌릴 수 없습니다.
|
|
43
|
-
*/
|
|
44
8
|
export declare function deleteFeature(basePath: string, id: string): Promise<Result<void>>;
|
|
45
|
-
/**
|
|
46
|
-
* 현재 활성 피처를 조회합니다.
|
|
47
|
-
*/
|
|
48
9
|
export declare function getActiveFeature(basePath: string): Promise<Result<FeatureContext | null>>;
|
package/dist/context/feature.js
CHANGED
|
@@ -1,32 +1,17 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Feature Management
|
|
3
|
-
*
|
|
4
|
-
* 피처의 생성, 조회, 업데이트, 목록, 전환, 완료, 삭제
|
|
5
|
-
*
|
|
6
|
-
* "Keep functions small and focused" - Kent Beck
|
|
7
|
-
*/
|
|
8
1
|
import { randomUUID } from 'crypto';
|
|
9
2
|
import { readFile, writeFile, readdir, unlink } from 'fs/promises';
|
|
10
3
|
import { existsSync } from 'fs';
|
|
11
4
|
import { CONTEXT_CONFIG, getFeaturePath, getFeaturesDir } from './config.js';
|
|
12
5
|
import { now, errorMessage } from './utils.js';
|
|
13
6
|
import { getProjectContext, saveProjectContext, initContextDir } from './project.js';
|
|
14
|
-
// ============================================================================
|
|
15
|
-
// Create Feature
|
|
16
|
-
// ============================================================================
|
|
17
|
-
/**
|
|
18
|
-
* 새로운 피처를 생성합니다.
|
|
19
|
-
*/
|
|
20
7
|
export async function createFeature(basePath, name, goal) {
|
|
21
8
|
try {
|
|
22
|
-
// 입력 검증
|
|
23
9
|
if (!name || name.trim().length === 0) {
|
|
24
10
|
return { success: false, error: '[Context] Feature name is required' };
|
|
25
11
|
}
|
|
26
12
|
if (!goal || goal.trim().length === 0) {
|
|
27
13
|
return { success: false, error: '[Context] Feature goal is required' };
|
|
28
14
|
}
|
|
29
|
-
// 디렉토리 확인/초기화
|
|
30
15
|
if (!existsSync(getFeaturesDir(basePath))) {
|
|
31
16
|
const initResult = await initContextDir(basePath);
|
|
32
17
|
if (!initResult.success) {
|
|
@@ -55,12 +40,6 @@ export async function createFeature(basePath, name, goal) {
|
|
|
55
40
|
};
|
|
56
41
|
}
|
|
57
42
|
}
|
|
58
|
-
// ============================================================================
|
|
59
|
-
// Read Feature
|
|
60
|
-
// ============================================================================
|
|
61
|
-
/**
|
|
62
|
-
* 특정 피처를 조회합니다.
|
|
63
|
-
*/
|
|
64
43
|
export async function getFeature(basePath, id) {
|
|
65
44
|
try {
|
|
66
45
|
const featurePath = getFeaturePath(basePath, id);
|
|
@@ -81,20 +60,12 @@ export async function getFeature(basePath, id) {
|
|
|
81
60
|
};
|
|
82
61
|
}
|
|
83
62
|
}
|
|
84
|
-
// ============================================================================
|
|
85
|
-
// Update Feature
|
|
86
|
-
// ============================================================================
|
|
87
|
-
/**
|
|
88
|
-
* 피처를 업데이트합니다.
|
|
89
|
-
*/
|
|
90
63
|
export async function updateFeature(basePath, id, updates) {
|
|
91
64
|
try {
|
|
92
|
-
// 기존 피처 조회
|
|
93
65
|
const existing = await getFeature(basePath, id);
|
|
94
66
|
if (!existing.success || !existing.data) {
|
|
95
67
|
return existing;
|
|
96
68
|
}
|
|
97
|
-
// 업데이트 적용 (id와 createdAt은 불변)
|
|
98
69
|
const updated = {
|
|
99
70
|
...existing.data,
|
|
100
71
|
...updates,
|
|
@@ -113,12 +84,6 @@ export async function updateFeature(basePath, id, updates) {
|
|
|
113
84
|
};
|
|
114
85
|
}
|
|
115
86
|
}
|
|
116
|
-
// ============================================================================
|
|
117
|
-
// List Features
|
|
118
|
-
// ============================================================================
|
|
119
|
-
/**
|
|
120
|
-
* 모든 피처 목록을 반환합니다.
|
|
121
|
-
*/
|
|
122
87
|
export async function listFeatures(basePath) {
|
|
123
88
|
try {
|
|
124
89
|
const featuresDir = getFeaturesDir(basePath);
|
|
@@ -135,7 +100,6 @@ export async function listFeatures(basePath) {
|
|
|
135
100
|
features.push(result.data);
|
|
136
101
|
}
|
|
137
102
|
}
|
|
138
|
-
// 최신 업데이트 순으로 정렬
|
|
139
103
|
features.sort((a, b) => new Date(b.updatedAt).getTime() - new Date(a.updatedAt).getTime());
|
|
140
104
|
return { success: true, data: features };
|
|
141
105
|
}
|
|
@@ -146,44 +110,29 @@ export async function listFeatures(basePath) {
|
|
|
146
110
|
};
|
|
147
111
|
}
|
|
148
112
|
}
|
|
149
|
-
// ============================================================================
|
|
150
|
-
// Switch Feature
|
|
151
|
-
// ============================================================================
|
|
152
|
-
/**
|
|
153
|
-
* 활성 피처를 전환합니다.
|
|
154
|
-
*
|
|
155
|
-
* 프로젝트 컨텍스트의 activeFeatureId를 업데이트하고,
|
|
156
|
-
* 해당 피처의 상태를 'active'로 변경합니다.
|
|
157
|
-
*/
|
|
158
113
|
export async function switchFeature(basePath, id) {
|
|
159
114
|
try {
|
|
160
|
-
// 피처 존재 확인
|
|
161
115
|
const feature = await getFeature(basePath, id);
|
|
162
116
|
if (!feature.success || !feature.data) {
|
|
163
117
|
return feature;
|
|
164
118
|
}
|
|
165
|
-
// 이미 completed인 피처는 전환 불가
|
|
166
119
|
if (feature.data.status === 'completed') {
|
|
167
120
|
return {
|
|
168
121
|
success: false,
|
|
169
122
|
error: '[Context] Cannot switch to completed feature. Reopen it first.',
|
|
170
123
|
};
|
|
171
124
|
}
|
|
172
|
-
// 프로젝트 컨텍스트 업데이트
|
|
173
125
|
const projectResult = await getProjectContext(basePath);
|
|
174
126
|
const project = projectResult.success && projectResult.data
|
|
175
127
|
? projectResult.data
|
|
176
128
|
: { name: 'unnamed' };
|
|
177
|
-
// 이전 활성 피처를 paused로 변경
|
|
178
129
|
if (project.activeFeatureId && project.activeFeatureId !== id) {
|
|
179
130
|
await updateFeature(basePath, project.activeFeatureId, { status: 'paused' });
|
|
180
131
|
}
|
|
181
|
-
// 현재 피처를 active로 변경
|
|
182
132
|
const updated = await updateFeature(basePath, id, { status: 'active' });
|
|
183
133
|
if (!updated.success) {
|
|
184
134
|
return updated;
|
|
185
135
|
}
|
|
186
|
-
// 프로젝트 컨텍스트에 activeFeatureId 저장
|
|
187
136
|
project.activeFeatureId = id;
|
|
188
137
|
await saveProjectContext(basePath, project);
|
|
189
138
|
return updated;
|
|
@@ -195,23 +144,12 @@ export async function switchFeature(basePath, id) {
|
|
|
195
144
|
};
|
|
196
145
|
}
|
|
197
146
|
}
|
|
198
|
-
// ============================================================================
|
|
199
|
-
// Complete Feature
|
|
200
|
-
// ============================================================================
|
|
201
|
-
/**
|
|
202
|
-
* 피처를 완료 처리합니다.
|
|
203
|
-
*
|
|
204
|
-
* - 상태를 'completed'로 변경
|
|
205
|
-
* - activeFeatureId에서 제거
|
|
206
|
-
*/
|
|
207
147
|
export async function completeFeature(basePath, id) {
|
|
208
148
|
try {
|
|
209
|
-
// 피처 상태 변경
|
|
210
149
|
const updated = await updateFeature(basePath, id, { status: 'completed' });
|
|
211
150
|
if (!updated.success) {
|
|
212
151
|
return updated;
|
|
213
152
|
}
|
|
214
|
-
// 프로젝트 컨텍스트에서 activeFeatureId 제거 (해당 피처인 경우)
|
|
215
153
|
const projectResult = await getProjectContext(basePath);
|
|
216
154
|
if (projectResult.success && projectResult.data) {
|
|
217
155
|
if (projectResult.data.activeFeatureId === id) {
|
|
@@ -228,14 +166,6 @@ export async function completeFeature(basePath, id) {
|
|
|
228
166
|
};
|
|
229
167
|
}
|
|
230
168
|
}
|
|
231
|
-
// ============================================================================
|
|
232
|
-
// Delete Feature
|
|
233
|
-
// ============================================================================
|
|
234
|
-
/**
|
|
235
|
-
* 피처를 삭제합니다.
|
|
236
|
-
*
|
|
237
|
-
* 주의: 이 작업은 되돌릴 수 없습니다.
|
|
238
|
-
*/
|
|
239
169
|
export async function deleteFeature(basePath, id) {
|
|
240
170
|
try {
|
|
241
171
|
const featurePath = getFeaturePath(basePath, id);
|
|
@@ -245,7 +175,6 @@ export async function deleteFeature(basePath, id) {
|
|
|
245
175
|
error: `[Context] Feature not found: ${id}`,
|
|
246
176
|
};
|
|
247
177
|
}
|
|
248
|
-
// 활성 피처인 경우 프로젝트 컨텍스트에서 제거
|
|
249
178
|
const projectResult = await getProjectContext(basePath);
|
|
250
179
|
if (projectResult.success && projectResult.data) {
|
|
251
180
|
if (projectResult.data.activeFeatureId === id) {
|
|
@@ -263,12 +192,6 @@ export async function deleteFeature(basePath, id) {
|
|
|
263
192
|
};
|
|
264
193
|
}
|
|
265
194
|
}
|
|
266
|
-
// ============================================================================
|
|
267
|
-
// Get Active Feature
|
|
268
|
-
// ============================================================================
|
|
269
|
-
/**
|
|
270
|
-
* 현재 활성 피처를 조회합니다.
|
|
271
|
-
*/
|
|
272
195
|
export async function getActiveFeature(basePath) {
|
|
273
196
|
try {
|
|
274
197
|
const projectResult = await getProjectContext(basePath);
|
package/dist/context/files.d.ts
CHANGED
|
@@ -1,16 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Feature File Management
|
|
3
|
-
*
|
|
4
|
-
* 피처에 파일 추가/제거
|
|
5
|
-
*
|
|
6
|
-
* "Simple operations, clearly named" - Kent Beck
|
|
7
|
-
*/
|
|
8
1
|
import type { FeatureContext, Result } from './types.js';
|
|
9
|
-
/**
|
|
10
|
-
* 피처에 파일을 추가합니다.
|
|
11
|
-
*/
|
|
12
2
|
export declare function addFileToFeature(basePath: string, id: string, filePath: string): Promise<Result<FeatureContext>>;
|
|
13
|
-
/**
|
|
14
|
-
* 피처에서 파일을 제거합니다.
|
|
15
|
-
*/
|
|
16
3
|
export declare function removeFileFromFeature(basePath: string, id: string, filePath: string): Promise<Result<FeatureContext>>;
|
package/dist/context/files.js
CHANGED
|
@@ -1,47 +1,24 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Feature File Management
|
|
3
|
-
*
|
|
4
|
-
* 피처에 파일 추가/제거
|
|
5
|
-
*
|
|
6
|
-
* "Simple operations, clearly named" - Kent Beck
|
|
7
|
-
*/
|
|
8
1
|
import { normalizePath } from './utils.js';
|
|
9
2
|
import { getFeature, updateFeature } from './feature.js';
|
|
10
|
-
// ============================================================================
|
|
11
|
-
// Add File
|
|
12
|
-
// ============================================================================
|
|
13
|
-
/**
|
|
14
|
-
* 피처에 파일을 추가합니다.
|
|
15
|
-
*/
|
|
16
3
|
export async function addFileToFeature(basePath, id, filePath) {
|
|
17
4
|
const feature = await getFeature(basePath, id);
|
|
18
5
|
if (!feature.success || !feature.data) {
|
|
19
6
|
return feature;
|
|
20
7
|
}
|
|
21
|
-
// 정규화된 경로
|
|
22
8
|
const normalizedPath = normalizePath(filePath);
|
|
23
|
-
// 중복 체크
|
|
24
9
|
if (feature.data.files.includes(normalizedPath)) {
|
|
25
|
-
return { success: true, data: feature.data };
|
|
10
|
+
return { success: true, data: feature.data };
|
|
26
11
|
}
|
|
27
12
|
const updatedFiles = [...feature.data.files, normalizedPath];
|
|
28
13
|
return updateFeature(basePath, id, { files: updatedFiles });
|
|
29
14
|
}
|
|
30
|
-
// ============================================================================
|
|
31
|
-
// Remove File
|
|
32
|
-
// ============================================================================
|
|
33
|
-
/**
|
|
34
|
-
* 피처에서 파일을 제거합니다.
|
|
35
|
-
*/
|
|
36
15
|
export async function removeFileFromFeature(basePath, id, filePath) {
|
|
37
16
|
const feature = await getFeature(basePath, id);
|
|
38
17
|
if (!feature.success || !feature.data) {
|
|
39
18
|
return feature;
|
|
40
19
|
}
|
|
41
|
-
// 정규화된 경로
|
|
42
20
|
const normalizedPath = normalizePath(filePath);
|
|
43
21
|
const updatedFiles = feature.data.files.filter(f => f !== normalizedPath);
|
|
44
|
-
// 변경이 없으면 그냥 성공
|
|
45
22
|
if (updatedFiles.length === feature.data.files.length) {
|
|
46
23
|
return { success: true, data: feature.data };
|
|
47
24
|
}
|
package/dist/context/index.d.ts
CHANGED
|
@@ -1,10 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Context Package
|
|
3
|
-
*
|
|
4
|
-
* 피처 기반 컨텍스트 관리 시스템
|
|
5
|
-
*
|
|
6
|
-
* "Export only what's needed" - Kent Beck
|
|
7
|
-
*/
|
|
8
1
|
export type { FeatureContext, ProjectContext, FeatureUpdate, Result, } from './types.js';
|
|
9
2
|
export { CONTEXT_CONFIG, getContextDir, getProjectPath, getFeaturesDir, getFeaturePath, getContextConfig, } from './config.js';
|
|
10
3
|
export { getProjectContext, saveProjectContext, initContextDir, } from './project.js';
|
package/dist/context/index.js
CHANGED
|
@@ -1,17 +1,5 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Context Package
|
|
3
|
-
*
|
|
4
|
-
* 피처 기반 컨텍스트 관리 시스템
|
|
5
|
-
*
|
|
6
|
-
* "Export only what's needed" - Kent Beck
|
|
7
|
-
*/
|
|
8
|
-
// Configuration
|
|
9
1
|
export { CONTEXT_CONFIG, getContextDir, getProjectPath, getFeaturesDir, getFeaturePath, getContextConfig, } from './config.js';
|
|
10
|
-
// Project Context
|
|
11
2
|
export { getProjectContext, saveProjectContext, initContextDir, } from './project.js';
|
|
12
|
-
// Feature Management
|
|
13
3
|
export { createFeature, getFeature, updateFeature, listFeatures, switchFeature, completeFeature, deleteFeature, getActiveFeature, } from './feature.js';
|
|
14
|
-
// File Management
|
|
15
4
|
export { addFileToFeature, removeFileFromFeature, } from './files.js';
|
|
16
|
-
// Utilities
|
|
17
5
|
export { now, errorMessage, normalizePath, } from './utils.js';
|
|
@@ -1,25 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Project Context Management
|
|
3
|
-
*
|
|
4
|
-
* 프로젝트 전체 메타데이터 관리
|
|
5
|
-
*
|
|
6
|
-
* "Each function should do one thing and do it well" - Kent Beck
|
|
7
|
-
*/
|
|
8
1
|
import type { ProjectContext, Result } from './types.js';
|
|
9
|
-
/**
|
|
10
|
-
* 프로젝트 컨텍스트를 읽어옵니다.
|
|
11
|
-
*/
|
|
12
2
|
export declare function getProjectContext(basePath: string): Promise<Result<ProjectContext>>;
|
|
13
|
-
/**
|
|
14
|
-
* 프로젝트 컨텍스트를 저장합니다.
|
|
15
|
-
*/
|
|
16
3
|
export declare function saveProjectContext(basePath: string, context: ProjectContext): Promise<Result<void>>;
|
|
17
|
-
/**
|
|
18
|
-
* 컨텍스트 디렉토리 구조를 초기화합니다.
|
|
19
|
-
*
|
|
20
|
-
* 생성 구조:
|
|
21
|
-
* .opencode/context/
|
|
22
|
-
* ├── project.json
|
|
23
|
-
* └── features/
|
|
24
|
-
*/
|
|
25
4
|
export declare function initContextDir(basePath: string): Promise<Result<void>>;
|
package/dist/context/project.js
CHANGED
|
@@ -1,20 +1,7 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Project Context Management
|
|
3
|
-
*
|
|
4
|
-
* 프로젝트 전체 메타데이터 관리
|
|
5
|
-
*
|
|
6
|
-
* "Each function should do one thing and do it well" - Kent Beck
|
|
7
|
-
*/
|
|
8
1
|
import { mkdir, readFile, writeFile } from 'fs/promises';
|
|
9
2
|
import { existsSync } from 'fs';
|
|
10
3
|
import { getContextDir, getProjectPath } from './config.js';
|
|
11
4
|
import { errorMessage } from './utils.js';
|
|
12
|
-
// ============================================================================
|
|
13
|
-
// Project Context Operations
|
|
14
|
-
// ============================================================================
|
|
15
|
-
/**
|
|
16
|
-
* 프로젝트 컨텍스트를 읽어옵니다.
|
|
17
|
-
*/
|
|
18
5
|
export async function getProjectContext(basePath) {
|
|
19
6
|
try {
|
|
20
7
|
const projectPath = getProjectPath(basePath);
|
|
@@ -35,13 +22,9 @@ export async function getProjectContext(basePath) {
|
|
|
35
22
|
};
|
|
36
23
|
}
|
|
37
24
|
}
|
|
38
|
-
/**
|
|
39
|
-
* 프로젝트 컨텍스트를 저장합니다.
|
|
40
|
-
*/
|
|
41
25
|
export async function saveProjectContext(basePath, context) {
|
|
42
26
|
try {
|
|
43
27
|
const projectPath = getProjectPath(basePath);
|
|
44
|
-
// 디렉토리가 없으면 초기화
|
|
45
28
|
if (!existsSync(getContextDir(basePath))) {
|
|
46
29
|
const initResult = await initContextDir(basePath);
|
|
47
30
|
if (!initResult.success) {
|
|
@@ -58,25 +41,12 @@ export async function saveProjectContext(basePath, context) {
|
|
|
58
41
|
};
|
|
59
42
|
}
|
|
60
43
|
}
|
|
61
|
-
// ============================================================================
|
|
62
|
-
// Directory Initialization
|
|
63
|
-
// ============================================================================
|
|
64
|
-
/**
|
|
65
|
-
* 컨텍스트 디렉토리 구조를 초기화합니다.
|
|
66
|
-
*
|
|
67
|
-
* 생성 구조:
|
|
68
|
-
* .opencode/context/
|
|
69
|
-
* ├── project.json
|
|
70
|
-
* └── features/
|
|
71
|
-
*/
|
|
72
44
|
export async function initContextDir(basePath) {
|
|
73
45
|
try {
|
|
74
46
|
const { getFeaturesDir } = await import('./config.js');
|
|
75
47
|
const featuresDir = getFeaturesDir(basePath);
|
|
76
48
|
const projectPath = getProjectPath(basePath);
|
|
77
|
-
// 디렉토리 생성 (recursive)
|
|
78
49
|
await mkdir(featuresDir, { recursive: true });
|
|
79
|
-
// project.json이 없으면 기본값으로 생성
|
|
80
50
|
if (!existsSync(projectPath)) {
|
|
81
51
|
const defaultProject = {
|
|
82
52
|
name: basePath.split(/[/\\]/).pop() || 'unnamed-project',
|
package/dist/context/types.d.ts
CHANGED
|
@@ -1,69 +1,21 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Context Type Definitions
|
|
3
|
-
*
|
|
4
|
-
* 피처 기반 컨텍스트 관리 시스템의 타입 정의
|
|
5
|
-
*
|
|
6
|
-
* 설계 원칙:
|
|
7
|
-
* - 명확한 이름으로 의도 표현 (Intention-Revealing Names)
|
|
8
|
-
* - 타입 안전성 (Type Safety)
|
|
9
|
-
* - 불변성 강조 (Immutability)
|
|
10
|
-
*
|
|
11
|
-
* @author Kent Beck's Dummy Human
|
|
12
|
-
*/
|
|
13
|
-
/**
|
|
14
|
-
* 피처 컨텍스트
|
|
15
|
-
*
|
|
16
|
-
* 하나의 작업 단위를 나타냅니다. 로그인 기능 구현, 버그 수정 등
|
|
17
|
-
* 각 피처는 관련 파일들과 현재 진행 상태를 추적합니다.
|
|
18
|
-
*/
|
|
19
1
|
export interface FeatureContext {
|
|
20
|
-
/** 고유 식별자 (UUID) */
|
|
21
2
|
id: string;
|
|
22
|
-
/** 피처 이름 (예: "login-oauth") */
|
|
23
3
|
name: string;
|
|
24
|
-
/** 한 줄 목표 설명 */
|
|
25
4
|
goal: string;
|
|
26
|
-
/** 현재 상태 */
|
|
27
5
|
status: 'active' | 'paused' | 'completed';
|
|
28
|
-
/** 관련 파일 목록 */
|
|
29
6
|
files: string[];
|
|
30
|
-
/** 마지막 작업 상태 스냅샷 */
|
|
31
7
|
lastContext: string;
|
|
32
|
-
/** 막힌 부분 (선택) */
|
|
33
8
|
blockers?: string;
|
|
34
|
-
/** 생성 시각 (ISO 8601) */
|
|
35
9
|
createdAt: string;
|
|
36
|
-
/** 마지막 수정 시각 (ISO 8601) */
|
|
37
10
|
updatedAt: string;
|
|
38
11
|
}
|
|
39
|
-
/**
|
|
40
|
-
* 프로젝트 컨텍스트
|
|
41
|
-
*
|
|
42
|
-
* 프로젝트 전체에 대한 메타 정보를 관리합니다.
|
|
43
|
-
*/
|
|
44
12
|
export interface ProjectContext {
|
|
45
|
-
/** 프로젝트 이름 */
|
|
46
13
|
name: string;
|
|
47
|
-
/** 기술 스택 */
|
|
48
14
|
techStack?: string[];
|
|
49
|
-
/** 코딩 컨벤션 */
|
|
50
15
|
conventions?: string;
|
|
51
|
-
/** 현재 활성 피처 ID */
|
|
52
16
|
activeFeatureId?: string;
|
|
53
17
|
}
|
|
54
|
-
/**
|
|
55
|
-
* 피처 업데이트 입력
|
|
56
|
-
*
|
|
57
|
-
* Partial을 사용하되 id와 createdAt은 변경 불가
|
|
58
|
-
*/
|
|
59
18
|
export type FeatureUpdate = Partial<Omit<FeatureContext, 'id' | 'createdAt'>>;
|
|
60
|
-
/**
|
|
61
|
-
* 작업 결과 타입
|
|
62
|
-
*
|
|
63
|
-
* 모든 작업은 성공/실패를 명시적으로 반환
|
|
64
|
-
*
|
|
65
|
-
* "Make the return value obvious" - Kent Beck
|
|
66
|
-
*/
|
|
67
19
|
export interface Result<T> {
|
|
68
20
|
success: boolean;
|
|
69
21
|
data?: T;
|
package/dist/context/types.js
CHANGED
package/dist/context/utils.d.ts
CHANGED
|
@@ -1,21 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Context Utilities
|
|
3
|
-
*
|
|
4
|
-
* 작은, 재사용 가능한 유틸리티 함수들
|
|
5
|
-
*
|
|
6
|
-
* "Small functions, well named, doing one thing" - Kent Beck
|
|
7
|
-
*/
|
|
8
|
-
/**
|
|
9
|
-
* 현재 시각을 ISO 8601 형식으로 반환
|
|
10
|
-
*/
|
|
11
1
|
export declare function now(): string;
|
|
12
|
-
/**
|
|
13
|
-
* 에러에서 메시지 추출
|
|
14
|
-
*
|
|
15
|
-
* "Handle errors gracefully" - Kent Beck
|
|
16
|
-
*/
|
|
17
2
|
export declare function errorMessage(error: unknown): string;
|
|
18
|
-
/**
|
|
19
|
-
* 파일 경로 정규화 (Windows 백슬래시 → 슬래시)
|
|
20
|
-
*/
|
|
21
3
|
export declare function normalizePath(filePath: string): string;
|
package/dist/context/utils.js
CHANGED
|
@@ -1,39 +1,12 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Context Utilities
|
|
3
|
-
*
|
|
4
|
-
* 작은, 재사용 가능한 유틸리티 함수들
|
|
5
|
-
*
|
|
6
|
-
* "Small functions, well named, doing one thing" - Kent Beck
|
|
7
|
-
*/
|
|
8
|
-
// ============================================================================
|
|
9
|
-
// Time Utilities
|
|
10
|
-
// ============================================================================
|
|
11
|
-
/**
|
|
12
|
-
* 현재 시각을 ISO 8601 형식으로 반환
|
|
13
|
-
*/
|
|
14
1
|
export function now() {
|
|
15
2
|
return new Date().toISOString();
|
|
16
3
|
}
|
|
17
|
-
// ============================================================================
|
|
18
|
-
// Error Handling
|
|
19
|
-
// ============================================================================
|
|
20
|
-
/**
|
|
21
|
-
* 에러에서 메시지 추출
|
|
22
|
-
*
|
|
23
|
-
* "Handle errors gracefully" - Kent Beck
|
|
24
|
-
*/
|
|
25
4
|
export function errorMessage(error) {
|
|
26
5
|
if (error instanceof Error) {
|
|
27
6
|
return error.message;
|
|
28
7
|
}
|
|
29
8
|
return String(error);
|
|
30
9
|
}
|
|
31
|
-
// ============================================================================
|
|
32
|
-
// Path Normalization
|
|
33
|
-
// ============================================================================
|
|
34
|
-
/**
|
|
35
|
-
* 파일 경로 정규화 (Windows 백슬래시 → 슬래시)
|
|
36
|
-
*/
|
|
37
10
|
export function normalizePath(filePath) {
|
|
38
11
|
return filePath.replace(/\\/g, '/');
|
|
39
12
|
}
|
|
@@ -1,28 +1,11 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Prompt Builder
|
|
3
|
-
*
|
|
4
|
-
* Builds system prompts from mask definitions.
|
|
5
|
-
*/
|
|
6
1
|
import type { MaskSchema, LoadedMask } from '../schema/types';
|
|
7
2
|
export interface PromptBuilderOptions {
|
|
8
|
-
/** Include metadata in prompt header */
|
|
9
3
|
includeMetadata?: boolean;
|
|
10
|
-
/** Include usage examples */
|
|
11
4
|
includeExamples?: boolean;
|
|
12
|
-
/** Additional context to append */
|
|
13
5
|
additionalContext?: string;
|
|
14
6
|
}
|
|
15
|
-
/**
|
|
16
|
-
* Build a system prompt from a mask
|
|
17
|
-
*/
|
|
18
7
|
export declare function buildPrompt(mask: MaskSchema | LoadedMask, options?: PromptBuilderOptions): string;
|
|
19
|
-
/**
|
|
20
|
-
* Build a minimal prompt (just the core system prompt)
|
|
21
|
-
*/
|
|
22
8
|
export declare function buildMinimalPrompt(mask: MaskSchema | LoadedMask): string;
|
|
23
|
-
/**
|
|
24
|
-
* Build a rich prompt with all available information
|
|
25
|
-
*/
|
|
26
9
|
export declare function buildRichPrompt(mask: MaskSchema | LoadedMask): string;
|
|
27
10
|
export declare const promptBuilder: {
|
|
28
11
|
build: typeof buildPrompt;
|