maskweaver 0.7.0

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 (284) hide show
  1. package/assets/agents/dummy-human.md +31 -0
  2. package/assets/agents/dummy-template.md +57 -0
  3. package/assets/agents/mask-master.md +225 -0
  4. package/assets/masks/ai-ml/andrew-ng.yaml +207 -0
  5. package/assets/masks/architecture/jeff-dean.yaml +208 -0
  6. package/assets/masks/index.json +65 -0
  7. package/assets/masks/software-engineering/dan-abramov.yaml +188 -0
  8. package/assets/masks/software-engineering/kent-beck.yaml +191 -0
  9. package/assets/masks/software-engineering/linus-torvalds.yaml +152 -0
  10. package/assets/masks/software-engineering/martin-fowler.yaml +173 -0
  11. package/dist/cli/install.d.ts +11 -0
  12. package/dist/cli/install.d.ts.map +1 -0
  13. package/dist/cli/install.js +299 -0
  14. package/dist/cli/install.js.map +1 -0
  15. package/dist/context/config.d.ts +38 -0
  16. package/dist/context/config.d.ts.map +1 -0
  17. package/dist/context/config.js +55 -0
  18. package/dist/context/config.js.map +1 -0
  19. package/dist/context/feature.d.ts +49 -0
  20. package/dist/context/feature.d.ts.map +1 -0
  21. package/dist/context/feature.js +290 -0
  22. package/dist/context/feature.js.map +1 -0
  23. package/dist/context/files.d.ts +17 -0
  24. package/dist/context/files.d.ts.map +1 -0
  25. package/dist/context/files.js +50 -0
  26. package/dist/context/files.js.map +1 -0
  27. package/dist/context/index.d.ts +14 -0
  28. package/dist/context/index.d.ts.map +1 -0
  29. package/dist/context/index.js +18 -0
  30. package/dist/context/index.js.map +1 -0
  31. package/dist/context/project.d.ts +26 -0
  32. package/dist/context/project.d.ts.map +1 -0
  33. package/dist/context/project.js +95 -0
  34. package/dist/context/project.js.map +1 -0
  35. package/dist/context/types.d.ts +72 -0
  36. package/dist/context/types.d.ts.map +1 -0
  37. package/dist/context/types.js +14 -0
  38. package/dist/context/types.js.map +1 -0
  39. package/dist/context/utils.d.ts +22 -0
  40. package/dist/context/utils.d.ts.map +1 -0
  41. package/dist/context/utils.js +40 -0
  42. package/dist/context/utils.js.map +1 -0
  43. package/dist/core/engine/promptBuilder.d.ts +32 -0
  44. package/dist/core/engine/promptBuilder.d.ts.map +1 -0
  45. package/dist/core/engine/promptBuilder.js +117 -0
  46. package/dist/core/engine/promptBuilder.js.map +1 -0
  47. package/dist/core/index.d.ts +11 -0
  48. package/dist/core/index.d.ts.map +1 -0
  49. package/dist/core/index.js +13 -0
  50. package/dist/core/index.js.map +1 -0
  51. package/dist/core/loader/MaskLoader.d.ts +47 -0
  52. package/dist/core/loader/MaskLoader.d.ts.map +1 -0
  53. package/dist/core/loader/MaskLoader.js +132 -0
  54. package/dist/core/loader/MaskLoader.js.map +1 -0
  55. package/dist/core/schema/types.d.ts +128 -0
  56. package/dist/core/schema/types.d.ts.map +1 -0
  57. package/dist/core/schema/types.js +8 -0
  58. package/dist/core/schema/types.js.map +1 -0
  59. package/dist/core/schema/validator.d.ts +290 -0
  60. package/dist/core/schema/validator.d.ts.map +1 -0
  61. package/dist/core/schema/validator.js +105 -0
  62. package/dist/core/schema/validator.js.map +1 -0
  63. package/dist/i18n/index.d.ts +33 -0
  64. package/dist/i18n/index.d.ts.map +1 -0
  65. package/dist/i18n/index.js +57 -0
  66. package/dist/i18n/index.js.map +1 -0
  67. package/dist/i18n/locales/en.json +16 -0
  68. package/dist/index.d.ts +17 -0
  69. package/dist/index.d.ts.map +1 -0
  70. package/dist/index.js +29 -0
  71. package/dist/index.js.map +1 -0
  72. package/dist/memory/chunking.d.ts +35 -0
  73. package/dist/memory/chunking.d.ts.map +1 -0
  74. package/dist/memory/chunking.js +168 -0
  75. package/dist/memory/chunking.js.map +1 -0
  76. package/dist/memory/core.d.ts +73 -0
  77. package/dist/memory/core.d.ts.map +1 -0
  78. package/dist/memory/core.js +186 -0
  79. package/dist/memory/core.js.map +1 -0
  80. package/dist/memory/index.d.ts +21 -0
  81. package/dist/memory/index.d.ts.map +1 -0
  82. package/dist/memory/index.js +22 -0
  83. package/dist/memory/index.js.map +1 -0
  84. package/dist/memory/indexer.d.ts +37 -0
  85. package/dist/memory/indexer.d.ts.map +1 -0
  86. package/dist/memory/indexer.js +162 -0
  87. package/dist/memory/indexer.js.map +1 -0
  88. package/dist/memory/providers/examples.d.ts +17 -0
  89. package/dist/memory/providers/examples.d.ts.map +1 -0
  90. package/dist/memory/providers/examples.js +271 -0
  91. package/dist/memory/providers/examples.js.map +1 -0
  92. package/dist/memory/providers/factory.d.ts +49 -0
  93. package/dist/memory/providers/factory.d.ts.map +1 -0
  94. package/dist/memory/providers/factory.js +111 -0
  95. package/dist/memory/providers/factory.js.map +1 -0
  96. package/dist/memory/providers/index.d.ts +34 -0
  97. package/dist/memory/providers/index.d.ts.map +1 -0
  98. package/dist/memory/providers/index.js +35 -0
  99. package/dist/memory/providers/index.js.map +1 -0
  100. package/dist/memory/providers/ollama.d.ts +18 -0
  101. package/dist/memory/providers/ollama.d.ts.map +1 -0
  102. package/dist/memory/providers/ollama.js +68 -0
  103. package/dist/memory/providers/ollama.js.map +1 -0
  104. package/dist/memory/providers/openai.d.ts +21 -0
  105. package/dist/memory/providers/openai.d.ts.map +1 -0
  106. package/dist/memory/providers/openai.js +91 -0
  107. package/dist/memory/providers/openai.js.map +1 -0
  108. package/dist/memory/providers/openrouter.d.ts +22 -0
  109. package/dist/memory/providers/openrouter.d.ts.map +1 -0
  110. package/dist/memory/providers/openrouter.js +89 -0
  111. package/dist/memory/providers/openrouter.js.map +1 -0
  112. package/dist/memory/providers/text-only.d.ts +20 -0
  113. package/dist/memory/providers/text-only.d.ts.map +1 -0
  114. package/dist/memory/providers/text-only.js +35 -0
  115. package/dist/memory/providers/text-only.js.map +1 -0
  116. package/dist/memory/providers/types.d.ts +63 -0
  117. package/dist/memory/providers/types.d.ts.map +1 -0
  118. package/dist/memory/providers/types.js +9 -0
  119. package/dist/memory/providers/types.js.map +1 -0
  120. package/dist/memory/providers/voyage.d.ts +39 -0
  121. package/dist/memory/providers/voyage.d.ts.map +1 -0
  122. package/dist/memory/providers/voyage.js +127 -0
  123. package/dist/memory/providers/voyage.js.map +1 -0
  124. package/dist/memory/search/hybrid.d.ts +12 -0
  125. package/dist/memory/search/hybrid.d.ts.map +1 -0
  126. package/dist/memory/search/hybrid.js +59 -0
  127. package/dist/memory/search/hybrid.js.map +1 -0
  128. package/dist/memory/store/sqlite.d.ts +86 -0
  129. package/dist/memory/store/sqlite.d.ts.map +1 -0
  130. package/dist/memory/store/sqlite.js +390 -0
  131. package/dist/memory/store/sqlite.js.map +1 -0
  132. package/dist/plugin/config/index.d.ts +148 -0
  133. package/dist/plugin/config/index.d.ts.map +1 -0
  134. package/dist/plugin/config/index.js +236 -0
  135. package/dist/plugin/config/index.js.map +1 -0
  136. package/dist/plugin/index.d.ts +19 -0
  137. package/dist/plugin/index.d.ts.map +1 -0
  138. package/dist/plugin/index.js +811 -0
  139. package/dist/plugin/index.js.map +1 -0
  140. package/dist/plugin/tools/context.d.ts +36 -0
  141. package/dist/plugin/tools/context.d.ts.map +1 -0
  142. package/dist/plugin/tools/context.js +332 -0
  143. package/dist/plugin/tools/context.js.map +1 -0
  144. package/dist/plugin/tools/maskSave.d.ts +6 -0
  145. package/dist/plugin/tools/maskSave.d.ts.map +1 -0
  146. package/dist/plugin/tools/maskSave.js +42 -0
  147. package/dist/plugin/tools/maskSave.js.map +1 -0
  148. package/dist/plugin/tools/memoryGet.d.ts +21 -0
  149. package/dist/plugin/tools/memoryGet.d.ts.map +1 -0
  150. package/dist/plugin/tools/memoryGet.js +40 -0
  151. package/dist/plugin/tools/memoryGet.js.map +1 -0
  152. package/dist/plugin/tools/memoryIndexer.d.ts +6 -0
  153. package/dist/plugin/tools/memoryIndexer.d.ts.map +1 -0
  154. package/dist/plugin/tools/memoryIndexer.js +75 -0
  155. package/dist/plugin/tools/memoryIndexer.js.map +1 -0
  156. package/dist/plugin/tools/memorySearch.d.ts +74 -0
  157. package/dist/plugin/tools/memorySearch.d.ts.map +1 -0
  158. package/dist/plugin/tools/memorySearch.js +172 -0
  159. package/dist/plugin/tools/memorySearch.js.map +1 -0
  160. package/dist/plugin/tools/memoryWrite.d.ts +11 -0
  161. package/dist/plugin/tools/memoryWrite.d.ts.map +1 -0
  162. package/dist/plugin/tools/memoryWrite.js +161 -0
  163. package/dist/plugin/tools/memoryWrite.js.map +1 -0
  164. package/dist/plugin/tools/retrospect.d.ts +6 -0
  165. package/dist/plugin/tools/retrospect.d.ts.map +1 -0
  166. package/dist/plugin/tools/retrospect.js +46 -0
  167. package/dist/plugin/tools/retrospect.js.map +1 -0
  168. package/dist/plugin/types.d.ts +34 -0
  169. package/dist/plugin/types.d.ts.map +1 -0
  170. package/dist/plugin/types.js +7 -0
  171. package/dist/plugin/types.js.map +1 -0
  172. package/dist/retrospect/index.d.ts +14 -0
  173. package/dist/retrospect/index.d.ts.map +1 -0
  174. package/dist/retrospect/index.js +13 -0
  175. package/dist/retrospect/index.js.map +1 -0
  176. package/dist/retrospect/mask-save.d.ts +31 -0
  177. package/dist/retrospect/mask-save.d.ts.map +1 -0
  178. package/dist/retrospect/mask-save.js +263 -0
  179. package/dist/retrospect/mask-save.js.map +1 -0
  180. package/dist/retrospect/retrospect.d.ts +24 -0
  181. package/dist/retrospect/retrospect.d.ts.map +1 -0
  182. package/dist/retrospect/retrospect.js +165 -0
  183. package/dist/retrospect/retrospect.js.map +1 -0
  184. package/dist/retrospect/strategies/base.d.ts +20 -0
  185. package/dist/retrospect/strategies/base.d.ts.map +1 -0
  186. package/dist/retrospect/strategies/base.js +9 -0
  187. package/dist/retrospect/strategies/base.js.map +1 -0
  188. package/dist/retrospect/strategies/deep.d.ts +18 -0
  189. package/dist/retrospect/strategies/deep.d.ts.map +1 -0
  190. package/dist/retrospect/strategies/deep.js +105 -0
  191. package/dist/retrospect/strategies/deep.js.map +1 -0
  192. package/dist/retrospect/strategies/index.d.ts +20 -0
  193. package/dist/retrospect/strategies/index.d.ts.map +1 -0
  194. package/dist/retrospect/strategies/index.js +27 -0
  195. package/dist/retrospect/strategies/index.js.map +1 -0
  196. package/dist/retrospect/strategies/quick.d.ts +18 -0
  197. package/dist/retrospect/strategies/quick.d.ts.map +1 -0
  198. package/dist/retrospect/strategies/quick.js +55 -0
  199. package/dist/retrospect/strategies/quick.js.map +1 -0
  200. package/dist/retrospect/strategies/standard.d.ts +18 -0
  201. package/dist/retrospect/strategies/standard.d.ts.map +1 -0
  202. package/dist/retrospect/strategies/standard.js +66 -0
  203. package/dist/retrospect/strategies/standard.js.map +1 -0
  204. package/dist/retrospect/types.d.ts +34 -0
  205. package/dist/retrospect/types.d.ts.map +1 -0
  206. package/dist/retrospect/types.js +9 -0
  207. package/dist/retrospect/types.js.map +1 -0
  208. package/dist/shared/config.d.ts +130 -0
  209. package/dist/shared/config.d.ts.map +1 -0
  210. package/dist/shared/config.js +12 -0
  211. package/dist/shared/config.js.map +1 -0
  212. package/dist/shared/errors.d.ts +36 -0
  213. package/dist/shared/errors.d.ts.map +1 -0
  214. package/dist/shared/errors.js +57 -0
  215. package/dist/shared/errors.js.map +1 -0
  216. package/dist/shared/index.d.ts +10 -0
  217. package/dist/shared/index.d.ts.map +1 -0
  218. package/dist/shared/index.js +9 -0
  219. package/dist/shared/index.js.map +1 -0
  220. package/dist/shared/types.d.ts +34 -0
  221. package/dist/shared/types.d.ts.map +1 -0
  222. package/dist/shared/types.js +5 -0
  223. package/dist/shared/types.js.map +1 -0
  224. package/dist/shared-context/index.d.ts +11 -0
  225. package/dist/shared-context/index.d.ts.map +1 -0
  226. package/dist/shared-context/index.js +16 -0
  227. package/dist/shared-context/index.js.map +1 -0
  228. package/dist/shared-context/logger.d.ts +10 -0
  229. package/dist/shared-context/logger.d.ts.map +1 -0
  230. package/dist/shared-context/logger.js +28 -0
  231. package/dist/shared-context/logger.js.map +1 -0
  232. package/dist/shared-context/session.d.ts +23 -0
  233. package/dist/shared-context/session.d.ts.map +1 -0
  234. package/dist/shared-context/session.js +34 -0
  235. package/dist/shared-context/session.js.map +1 -0
  236. package/dist/shared-context/squad.d.ts +30 -0
  237. package/dist/shared-context/squad.d.ts.map +1 -0
  238. package/dist/shared-context/squad.js +66 -0
  239. package/dist/shared-context/squad.js.map +1 -0
  240. package/dist/shared-context/storage.d.ts +25 -0
  241. package/dist/shared-context/storage.d.ts.map +1 -0
  242. package/dist/shared-context/storage.js +66 -0
  243. package/dist/shared-context/storage.js.map +1 -0
  244. package/dist/shared-context/types.d.ts +107 -0
  245. package/dist/shared-context/types.d.ts.map +1 -0
  246. package/dist/shared-context/types.js +18 -0
  247. package/dist/shared-context/types.js.map +1 -0
  248. package/dist/verify/budget.d.ts +45 -0
  249. package/dist/verify/budget.d.ts.map +1 -0
  250. package/dist/verify/budget.js +89 -0
  251. package/dist/verify/budget.js.map +1 -0
  252. package/dist/verify/critical-files.d.ts +22 -0
  253. package/dist/verify/critical-files.d.ts.map +1 -0
  254. package/dist/verify/critical-files.js +130 -0
  255. package/dist/verify/critical-files.js.map +1 -0
  256. package/dist/verify/escalation.d.ts +27 -0
  257. package/dist/verify/escalation.d.ts.map +1 -0
  258. package/dist/verify/escalation.js +68 -0
  259. package/dist/verify/escalation.js.map +1 -0
  260. package/dist/verify/index.d.ts +13 -0
  261. package/dist/verify/index.d.ts.map +1 -0
  262. package/dist/verify/index.js +18 -0
  263. package/dist/verify/index.js.map +1 -0
  264. package/dist/verify/prompts.d.ts +27 -0
  265. package/dist/verify/prompts.d.ts.map +1 -0
  266. package/dist/verify/prompts.js +158 -0
  267. package/dist/verify/prompts.js.map +1 -0
  268. package/dist/verify/types.d.ts +80 -0
  269. package/dist/verify/types.d.ts.map +1 -0
  270. package/dist/verify/types.js +22 -0
  271. package/dist/verify/types.js.map +1 -0
  272. package/dist/verify/verifier.d.ts +47 -0
  273. package/dist/verify/verifier.d.ts.map +1 -0
  274. package/dist/verify/verifier.js +180 -0
  275. package/dist/verify/verifier.js.map +1 -0
  276. package/masks/ai-ml/andrew-ng.yaml +207 -0
  277. package/masks/architecture/jeff-dean.yaml +208 -0
  278. package/masks/index.json +65 -0
  279. package/masks/orchestration/squad-operator.yaml +205 -0
  280. package/masks/software-engineering/dan-abramov.yaml +188 -0
  281. package/masks/software-engineering/kent-beck.yaml +191 -0
  282. package/masks/software-engineering/linus-torvalds.yaml +152 -0
  283. package/masks/software-engineering/martin-fowler.yaml +173 -0
  284. package/package.json +111 -0
@@ -0,0 +1,105 @@
1
+ /**
2
+ * Deep Retrospect Strategy
3
+ *
4
+ * 심층 회고: 전체 정보 + 통계 + 교훈
5
+ *
6
+ * "Reflect deeply on what matters" - Kent Beck
7
+ */
8
+ function formatTimestamp() {
9
+ const now = new Date();
10
+ const year = now.getFullYear();
11
+ const month = String(now.getMonth() + 1).padStart(2, '0');
12
+ const day = String(now.getDate()).padStart(2, '0');
13
+ const hour = String(now.getHours()).padStart(2, '0');
14
+ const minute = String(now.getMinutes()).padStart(2, '0');
15
+ return `${year}-${month}-${day} ${hour}:${minute}`;
16
+ }
17
+ const TRIGGER_LABELS = {
18
+ manual: '수동 요청',
19
+ session_end: '세션 종료',
20
+ periodic: '주기적 회고'
21
+ };
22
+ /**
23
+ * 효과성 점수에 따른 라벨 반환
24
+ */
25
+ function getEffectivenessLabel(score) {
26
+ if (score >= 90)
27
+ return '매우 효과적';
28
+ if (score >= 70)
29
+ return '효과적';
30
+ if (score >= 50)
31
+ return '보통';
32
+ if (score >= 30)
33
+ return '개선 필요';
34
+ return '재고 필요';
35
+ }
36
+ /**
37
+ * 평균 효과성 계산
38
+ */
39
+ function calculateAverageEffectiveness(masks) {
40
+ if (masks.length === 0)
41
+ return 0;
42
+ const sum = masks.reduce((acc, mask) => acc + mask.effectiveness, 0);
43
+ return sum / masks.length;
44
+ }
45
+ /**
46
+ * Deep 회고 전략
47
+ *
48
+ * 가장 상세한 회고. 모든 정보와 통계, 교훈까지 기록합니다.
49
+ */
50
+ export class DeepRetrospectStrategy {
51
+ generateContent(input) {
52
+ const timestamp = formatTimestamp();
53
+ const triggerLabel = TRIGGER_LABELS[input.trigger];
54
+ const lines = [
55
+ `### ${timestamp} - [${triggerLabel}] (심층 회고)`,
56
+ '',
57
+ '#### 오늘의 작업 요약',
58
+ input.summary ?? '(요약 없음)',
59
+ ''
60
+ ];
61
+ // 가면 사용 정보 - 상세
62
+ if (input.masksUsed && input.masksUsed.length > 0) {
63
+ lines.push('#### 사용한 가면');
64
+ for (const mask of input.masksUsed) {
65
+ lines.push(`- **${mask.name}** (효과성: ${mask.effectiveness}/100)`);
66
+ lines.push(` - 작업: ${mask.task}`);
67
+ lines.push(` - 평가: ${getEffectivenessLabel(mask.effectiveness)}`);
68
+ }
69
+ lines.push('');
70
+ // 가면 사용 통계
71
+ const avgEffectiveness = calculateAverageEffectiveness(input.masksUsed);
72
+ lines.push(`> 가면 사용 통계: ${input.masksUsed.length}개 사용, 평균 효과성 ${avgEffectiveness.toFixed(1)}/100`);
73
+ lines.push('');
74
+ }
75
+ // 잘된 점
76
+ if (input.wellDone && input.wellDone.length > 0) {
77
+ lines.push('#### 잘된 점');
78
+ for (const item of input.wellDone) {
79
+ lines.push(`- ${item}`);
80
+ }
81
+ lines.push('');
82
+ }
83
+ // 개선할 점
84
+ if (input.improvements && input.improvements.length > 0) {
85
+ lines.push('#### 개선할 점');
86
+ for (const item of input.improvements) {
87
+ lines.push(`- ${item}`);
88
+ }
89
+ lines.push('');
90
+ }
91
+ // 배운 교훈 - 심층 회고에서만
92
+ if (input.lessons && input.lessons.length > 0) {
93
+ lines.push('#### 배운 교훈');
94
+ for (const lesson of input.lessons) {
95
+ lines.push(`- ${lesson}`);
96
+ }
97
+ lines.push('');
98
+ }
99
+ // 구분선
100
+ lines.push('---');
101
+ lines.push('');
102
+ return lines.join('\n');
103
+ }
104
+ }
105
+ //# sourceMappingURL=deep.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deep.js","sourceRoot":"","sources":["../../../src/retrospect/strategies/deep.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,SAAS,eAAe;IACtB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;IACtB,MAAM,IAAI,GAAG,GAAG,CAAC,WAAW,EAAE,CAAA;IAC9B,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACzD,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IAClD,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACpD,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IAExD,OAAO,GAAG,IAAI,IAAI,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,MAAM,EAAE,CAAA;AACpD,CAAC;AAED,MAAM,cAAc,GAAG;IACrB,MAAM,EAAE,OAAO;IACf,WAAW,EAAE,OAAO;IACpB,QAAQ,EAAE,QAAQ;CACV,CAAA;AAEV;;GAEG;AACH,SAAS,qBAAqB,CAAC,KAAa;IAC1C,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,QAAQ,CAAA;IAChC,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,KAAK,CAAA;IAC7B,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,IAAI,CAAA;IAC5B,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,OAAO,CAAA;IAC/B,OAAO,OAAO,CAAA;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,6BAA6B,CAAC,KAAwB;IAC7D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAA;IAChC,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAA;IACpE,OAAO,GAAG,GAAG,KAAK,CAAC,MAAM,CAAA;AAC3B,CAAC;AAED;;;;GAIG;AACH,MAAM,OAAO,sBAAsB;IACjC,eAAe,CAAC,KAAsB;QACpC,MAAM,SAAS,GAAG,eAAe,EAAE,CAAA;QACnC,MAAM,YAAY,GAAG,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAElD,MAAM,KAAK,GAAa;YACtB,OAAO,SAAS,OAAO,YAAY,WAAW;YAC9C,EAAE;YACF,gBAAgB;YAChB,KAAK,CAAC,OAAO,IAAI,SAAS;YAC1B,EAAE;SACH,CAAA;QAED,gBAAgB;QAChB,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClD,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;YACzB,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;gBACnC,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,YAAY,IAAI,CAAC,aAAa,OAAO,CAAC,CAAA;gBACjE,KAAK,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;gBAClC,KAAK,CAAC,IAAI,CAAC,WAAW,qBAAqB,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAA;YACpE,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YAEd,WAAW;YACX,MAAM,gBAAgB,GAAG,6BAA6B,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;YACvE,KAAK,CAAC,IAAI,CAAC,eAAe,KAAK,CAAC,SAAS,CAAC,MAAM,gBAAgB,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;YAClG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAChB,CAAC;QAED,OAAO;QACP,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChD,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;YACvB,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;gBAClC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAA;YACzB,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAChB,CAAC;QAED,QAAQ;QACR,IAAI,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxD,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;YACxB,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;gBACtC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAA;YACzB,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAChB,CAAC;QAED,mBAAmB;QACnB,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9C,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;YACxB,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBACnC,KAAK,CAAC,IAAI,CAAC,KAAK,MAAM,EAAE,CAAC,CAAA;YAC3B,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAChB,CAAC;QAED,MAAM;QACN,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACjB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAEd,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACzB,CAAC;CACF"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Retrospect Strategies
3
+ *
4
+ * 전략 선택 및 export
5
+ *
6
+ * "Polymorphism beats switch statements" - Kent Beck
7
+ */
8
+ import type { RetrospectDepth } from '../types.js';
9
+ import type { RetrospectStrategy } from './base.js';
10
+ /**
11
+ * 깊이에 따른 전략 선택
12
+ *
13
+ * "Choose the right tool for the job" - Kent Beck
14
+ */
15
+ export declare function selectStrategy(depth: RetrospectDepth): RetrospectStrategy;
16
+ export type { RetrospectStrategy } from './base.js';
17
+ export { QuickRetrospectStrategy } from './quick.js';
18
+ export { StandardRetrospectStrategy } from './standard.js';
19
+ export { DeepRetrospectStrategy } from './deep.js';
20
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/retrospect/strategies/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAClD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAKnD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,eAAe,GAAG,kBAAkB,CAQzE;AAGD,YAAY,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AACnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAA;AACpD,OAAO,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAA;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAA"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Retrospect Strategies
3
+ *
4
+ * 전략 선택 및 export
5
+ *
6
+ * "Polymorphism beats switch statements" - Kent Beck
7
+ */
8
+ import { QuickRetrospectStrategy } from './quick.js';
9
+ import { StandardRetrospectStrategy } from './standard.js';
10
+ import { DeepRetrospectStrategy } from './deep.js';
11
+ /**
12
+ * 깊이에 따른 전략 선택
13
+ *
14
+ * "Choose the right tool for the job" - Kent Beck
15
+ */
16
+ export function selectStrategy(depth) {
17
+ const strategies = {
18
+ quick: new QuickRetrospectStrategy(),
19
+ standard: new StandardRetrospectStrategy(),
20
+ deep: new DeepRetrospectStrategy()
21
+ };
22
+ return strategies[depth];
23
+ }
24
+ export { QuickRetrospectStrategy } from './quick.js';
25
+ export { StandardRetrospectStrategy } from './standard.js';
26
+ export { DeepRetrospectStrategy } from './deep.js';
27
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/retrospect/strategies/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAA;AACpD,OAAO,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAA;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAA;AAElD;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,KAAsB;IACnD,MAAM,UAAU,GAAgD;QAC9D,KAAK,EAAE,IAAI,uBAAuB,EAAE;QACpC,QAAQ,EAAE,IAAI,0BAA0B,EAAE;QAC1C,IAAI,EAAE,IAAI,sBAAsB,EAAE;KACnC,CAAA;IAED,OAAO,UAAU,CAAC,KAAK,CAAC,CAAA;AAC1B,CAAC;AAID,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAA;AACpD,OAAO,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAA;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAA"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Quick Retrospect Strategy
3
+ *
4
+ * 요약만 기록하는 빠른 회고
5
+ *
6
+ * "Do the simplest thing that could possibly work" - Kent Beck
7
+ */
8
+ import type { RetrospectInput } from '../types.js';
9
+ import type { RetrospectStrategy } from './base.js';
10
+ /**
11
+ * Quick 회고 전략
12
+ *
13
+ * 가장 간단한 회고. 요약과 가면 사용 정보만 기록합니다.
14
+ */
15
+ export declare class QuickRetrospectStrategy implements RetrospectStrategy {
16
+ generateContent(input: RetrospectInput): string;
17
+ }
18
+ //# sourceMappingURL=quick.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quick.d.ts","sourceRoot":"","sources":["../../../src/retrospect/strategies/quick.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAClD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAyBnD;;;;GAIG;AACH,qBAAa,uBAAwB,YAAW,kBAAkB;IAChE,eAAe,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM;CAuBhD"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Quick Retrospect Strategy
3
+ *
4
+ * 요약만 기록하는 빠른 회고
5
+ *
6
+ * "Do the simplest thing that could possibly work" - Kent Beck
7
+ */
8
+ /**
9
+ * 현재 시각을 포맷팅
10
+ */
11
+ function formatTimestamp() {
12
+ const now = new Date();
13
+ const year = now.getFullYear();
14
+ const month = String(now.getMonth() + 1).padStart(2, '0');
15
+ const day = String(now.getDate()).padStart(2, '0');
16
+ const hour = String(now.getHours()).padStart(2, '0');
17
+ const minute = String(now.getMinutes()).padStart(2, '0');
18
+ return `${year}-${month}-${day} ${hour}:${minute}`;
19
+ }
20
+ /**
21
+ * 트리거 라벨
22
+ */
23
+ const TRIGGER_LABELS = {
24
+ manual: '수동 요청',
25
+ session_end: '세션 종료',
26
+ periodic: '주기적 회고'
27
+ };
28
+ /**
29
+ * Quick 회고 전략
30
+ *
31
+ * 가장 간단한 회고. 요약과 가면 사용 정보만 기록합니다.
32
+ */
33
+ export class QuickRetrospectStrategy {
34
+ generateContent(input) {
35
+ const timestamp = formatTimestamp();
36
+ const triggerLabel = TRIGGER_LABELS[input.trigger];
37
+ const lines = [
38
+ `### ${timestamp} - [${triggerLabel}]`,
39
+ '',
40
+ '#### 오늘의 작업 요약',
41
+ input.summary ?? '(요약 없음)',
42
+ ''
43
+ ];
44
+ // 가면 사용 정보가 있으면 간략히 추가
45
+ if (input.masksUsed && input.masksUsed.length > 0) {
46
+ lines.push('#### 사용한 가면');
47
+ for (const mask of input.masksUsed) {
48
+ lines.push(`- ${mask.name} (효과성: ${mask.effectiveness}/100)`);
49
+ }
50
+ lines.push('');
51
+ }
52
+ return lines.join('\n');
53
+ }
54
+ }
55
+ //# sourceMappingURL=quick.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quick.js","sourceRoot":"","sources":["../../../src/retrospect/strategies/quick.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH;;GAEG;AACH,SAAS,eAAe;IACtB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;IACtB,MAAM,IAAI,GAAG,GAAG,CAAC,WAAW,EAAE,CAAA;IAC9B,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACzD,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IAClD,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACpD,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IAExD,OAAO,GAAG,IAAI,IAAI,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,MAAM,EAAE,CAAA;AACpD,CAAC;AAED;;GAEG;AACH,MAAM,cAAc,GAAG;IACrB,MAAM,EAAE,OAAO;IACf,WAAW,EAAE,OAAO;IACpB,QAAQ,EAAE,QAAQ;CACV,CAAA;AAEV;;;;GAIG;AACH,MAAM,OAAO,uBAAuB;IAClC,eAAe,CAAC,KAAsB;QACpC,MAAM,SAAS,GAAG,eAAe,EAAE,CAAA;QACnC,MAAM,YAAY,GAAG,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAElD,MAAM,KAAK,GAAa;YACtB,OAAO,SAAS,OAAO,YAAY,GAAG;YACtC,EAAE;YACF,gBAAgB;YAChB,KAAK,CAAC,OAAO,IAAI,SAAS;YAC1B,EAAE;SACH,CAAA;QAED,uBAAuB;QACvB,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClD,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;YACzB,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;gBACnC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,UAAU,IAAI,CAAC,aAAa,OAAO,CAAC,CAAA;YAC/D,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAChB,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACzB,CAAC;CACF"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Standard Retrospect Strategy
3
+ *
4
+ * 표준 회고: 요약 + 가면 + 잘된 점/개선점
5
+ *
6
+ * "Make it work, make it right, make it fast" - Kent Beck
7
+ */
8
+ import type { RetrospectInput } from '../types.js';
9
+ import type { RetrospectStrategy } from './base.js';
10
+ /**
11
+ * Standard 회고 전략
12
+ *
13
+ * 기본 회고. 작업 요약, 가면 사용, 잘된 점, 개선점을 기록합니다.
14
+ */
15
+ export declare class StandardRetrospectStrategy implements RetrospectStrategy {
16
+ generateContent(input: RetrospectInput): string;
17
+ }
18
+ //# sourceMappingURL=standard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"standard.d.ts","sourceRoot":"","sources":["../../../src/retrospect/strategies/standard.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAClD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAmBnD;;;;GAIG;AACH,qBAAa,0BAA2B,YAAW,kBAAkB;IACnE,eAAe,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM;CA0ChD"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Standard Retrospect Strategy
3
+ *
4
+ * 표준 회고: 요약 + 가면 + 잘된 점/개선점
5
+ *
6
+ * "Make it work, make it right, make it fast" - Kent Beck
7
+ */
8
+ function formatTimestamp() {
9
+ const now = new Date();
10
+ const year = now.getFullYear();
11
+ const month = String(now.getMonth() + 1).padStart(2, '0');
12
+ const day = String(now.getDate()).padStart(2, '0');
13
+ const hour = String(now.getHours()).padStart(2, '0');
14
+ const minute = String(now.getMinutes()).padStart(2, '0');
15
+ return `${year}-${month}-${day} ${hour}:${minute}`;
16
+ }
17
+ const TRIGGER_LABELS = {
18
+ manual: '수동 요청',
19
+ session_end: '세션 종료',
20
+ periodic: '주기적 회고'
21
+ };
22
+ /**
23
+ * Standard 회고 전략
24
+ *
25
+ * 기본 회고. 작업 요약, 가면 사용, 잘된 점, 개선점을 기록합니다.
26
+ */
27
+ export class StandardRetrospectStrategy {
28
+ generateContent(input) {
29
+ const timestamp = formatTimestamp();
30
+ const triggerLabel = TRIGGER_LABELS[input.trigger];
31
+ const lines = [
32
+ `### ${timestamp} - [${triggerLabel}]`,
33
+ '',
34
+ '#### 오늘의 작업 요약',
35
+ input.summary ?? '(요약 없음)',
36
+ ''
37
+ ];
38
+ // 가면 사용 정보
39
+ if (input.masksUsed && input.masksUsed.length > 0) {
40
+ lines.push('#### 사용한 가면');
41
+ for (const mask of input.masksUsed) {
42
+ lines.push(`- **${mask.name}** (효과성: ${mask.effectiveness}/100)`);
43
+ lines.push(` - 작업: ${mask.task}`);
44
+ }
45
+ lines.push('');
46
+ }
47
+ // 잘된 점
48
+ if (input.wellDone && input.wellDone.length > 0) {
49
+ lines.push('#### 잘된 점');
50
+ for (const item of input.wellDone) {
51
+ lines.push(`- ${item}`);
52
+ }
53
+ lines.push('');
54
+ }
55
+ // 개선할 점
56
+ if (input.improvements && input.improvements.length > 0) {
57
+ lines.push('#### 개선할 점');
58
+ for (const item of input.improvements) {
59
+ lines.push(`- ${item}`);
60
+ }
61
+ lines.push('');
62
+ }
63
+ return lines.join('\n');
64
+ }
65
+ }
66
+ //# sourceMappingURL=standard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"standard.js","sourceRoot":"","sources":["../../../src/retrospect/strategies/standard.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,SAAS,eAAe;IACtB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;IACtB,MAAM,IAAI,GAAG,GAAG,CAAC,WAAW,EAAE,CAAA;IAC9B,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACzD,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IAClD,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACpD,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IAExD,OAAO,GAAG,IAAI,IAAI,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,MAAM,EAAE,CAAA;AACpD,CAAC;AAED,MAAM,cAAc,GAAG;IACrB,MAAM,EAAE,OAAO;IACf,WAAW,EAAE,OAAO;IACpB,QAAQ,EAAE,QAAQ;CACV,CAAA;AAEV;;;;GAIG;AACH,MAAM,OAAO,0BAA0B;IACrC,eAAe,CAAC,KAAsB;QACpC,MAAM,SAAS,GAAG,eAAe,EAAE,CAAA;QACnC,MAAM,YAAY,GAAG,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAElD,MAAM,KAAK,GAAa;YACtB,OAAO,SAAS,OAAO,YAAY,GAAG;YACtC,EAAE;YACF,gBAAgB;YAChB,KAAK,CAAC,OAAO,IAAI,SAAS;YAC1B,EAAE;SACH,CAAA;QAED,WAAW;QACX,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClD,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;YACzB,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;gBACnC,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,YAAY,IAAI,CAAC,aAAa,OAAO,CAAC,CAAA;gBACjE,KAAK,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;YACpC,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAChB,CAAC;QAED,OAAO;QACP,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChD,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;YACvB,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;gBAClC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAA;YACzB,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAChB,CAAC;QAED,QAAQ;QACR,IAAI,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxD,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;YACxB,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;gBACtC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAA;YACzB,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAChB,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACzB,CAAC;CACF"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Retrospect Type Definitions
3
+ *
4
+ * 회고 시스템의 타입 정의
5
+ *
6
+ * "Make the types express intent" - Kent Beck
7
+ */
8
+ export type RetrospectTrigger = 'manual' | 'session_end' | 'periodic';
9
+ export type RetrospectDepth = 'quick' | 'standard' | 'deep';
10
+ export interface MaskUsageRecord {
11
+ name: string;
12
+ task: string;
13
+ effectiveness: number;
14
+ }
15
+ export interface RetrospectInput {
16
+ trigger: RetrospectTrigger;
17
+ summary: string;
18
+ masksUsed?: MaskUsageRecord[];
19
+ wellDone?: string[];
20
+ improvements?: string[];
21
+ lessons?: string[];
22
+ depth?: RetrospectDepth;
23
+ }
24
+ export interface RetrospectResult {
25
+ success: boolean;
26
+ retrospectPath: string;
27
+ summary: {
28
+ tasksCompleted: number;
29
+ masksUsed: number;
30
+ averageEffectiveness: number;
31
+ };
32
+ message?: string;
33
+ }
34
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/retrospect/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,aAAa,GAAG,UAAU,CAAA;AAErE,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM,CAAA;AAM3D,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,EAAE,MAAM,CAAA;CACtB;AAMD,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,iBAAiB,CAAA;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,eAAe,EAAE,CAAA;IAC7B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,KAAK,CAAC,EAAE,eAAe,CAAA;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAA;IAChB,cAAc,EAAE,MAAM,CAAA;IACtB,OAAO,EAAE;QACP,cAAc,EAAE,MAAM,CAAA;QACtB,SAAS,EAAE,MAAM,CAAA;QACjB,oBAAoB,EAAE,MAAM,CAAA;KAC7B,CAAA;IACD,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Retrospect Type Definitions
3
+ *
4
+ * 회고 시스템의 타입 정의
5
+ *
6
+ * "Make the types express intent" - Kent Beck
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/retrospect/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
@@ -0,0 +1,130 @@
1
+ import type { LogLevel } from "./types.js";
2
+ /**
3
+ * Memory provider types
4
+ */
5
+ export type MemoryProviderType = "ollama" | "openai" | "voyage" | "openrouter" | "text-only";
6
+ /**
7
+ * Verify mode
8
+ */
9
+ export type VerifyMode = "auto" | "manual" | "off";
10
+ /**
11
+ * Reviewer types for verification
12
+ */
13
+ export type ReviewerType = "dummy-flash" | "dummy-human" | "dummy-premium";
14
+ /**
15
+ * Retrospect depth levels
16
+ */
17
+ export type RetrospectDepth = "quick" | "standard" | "deep";
18
+ /**
19
+ * Configuration for the Context feature (always enabled)
20
+ */
21
+ export interface ContextConfig {
22
+ enabled: true;
23
+ }
24
+ /**
25
+ * Configuration for the Memory feature
26
+ */
27
+ export interface MemoryConfig {
28
+ enabled: boolean;
29
+ provider: MemoryProviderType;
30
+ }
31
+ /**
32
+ * Configuration for the Retrospect feature
33
+ */
34
+ export interface RetrospectConfig {
35
+ enabled: boolean;
36
+ }
37
+ /**
38
+ * Configuration for the Verify feature
39
+ */
40
+ export interface VerifyConfig {
41
+ enabled: boolean;
42
+ }
43
+ /**
44
+ * Feature configuration map
45
+ */
46
+ export interface FeaturesConfig {
47
+ /** Context is always enabled */
48
+ context: ContextConfig;
49
+ /** Memory is optional */
50
+ memory?: MemoryConfig;
51
+ /** Retrospect is optional */
52
+ retrospect?: RetrospectConfig;
53
+ /** Verify is optional */
54
+ verify?: VerifyConfig;
55
+ }
56
+ /**
57
+ * Memory provider-specific configurations
58
+ */
59
+ export interface MemoryProviderConfigs {
60
+ provider: MemoryProviderType;
61
+ vectorStore?: {
62
+ type: "sqlite";
63
+ path?: string;
64
+ };
65
+ ollama?: {
66
+ host?: string;
67
+ model?: string;
68
+ };
69
+ openai?: {
70
+ apiKey?: string;
71
+ model?: string;
72
+ dimensions?: number;
73
+ };
74
+ voyage?: {
75
+ apiKey?: string;
76
+ model?: string;
77
+ dimensions?: number;
78
+ };
79
+ openrouter?: {
80
+ apiKey?: string;
81
+ model?: string;
82
+ };
83
+ hybridSearch?: {
84
+ enabled: boolean;
85
+ vectorWeight: number;
86
+ keywordWeight: number;
87
+ };
88
+ }
89
+ /**
90
+ * Verification configuration
91
+ */
92
+ export interface VerifyConfigOptions {
93
+ mode: VerifyMode;
94
+ reviewer: ReviewerType;
95
+ escalation?: {
96
+ onFailure: "dummy-human" | "dummy-premium";
97
+ };
98
+ budget?: {
99
+ maxPerSessionUSD: number;
100
+ maxPerCheckUSD: number;
101
+ };
102
+ triggers?: {
103
+ onWrite?: boolean;
104
+ onTestFail?: boolean;
105
+ };
106
+ }
107
+ /**
108
+ * Logging configuration
109
+ */
110
+ export interface LoggingConfig {
111
+ level: LogLevel;
112
+ }
113
+ /**
114
+ * Main Maskweaver configuration
115
+ */
116
+ export interface MaskweaverConfig {
117
+ /** Feature toggles */
118
+ features: FeaturesConfig;
119
+ /** Memory system configuration */
120
+ memory?: MemoryProviderConfigs;
121
+ /** Verification system configuration */
122
+ verify?: VerifyConfigOptions;
123
+ /** Logging configuration */
124
+ logging?: LoggingConfig;
125
+ }
126
+ /**
127
+ * Default configuration
128
+ */
129
+ export declare const DEFAULT_CONFIG: MaskweaverConfig;
130
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/shared/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Default configuration
3
+ */
4
+ export const DEFAULT_CONFIG = {
5
+ features: {
6
+ context: { enabled: true },
7
+ },
8
+ logging: {
9
+ level: "info",
10
+ },
11
+ };
12
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/shared/config.ts"],"names":[],"mappings":"AAuJA;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAqB;IAC9C,QAAQ,EAAE;QACR,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;KAC3B;IACD,OAAO,EAAE;QACP,KAAK,EAAE,MAAM;KACd;CACF,CAAC"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Error handling for Maskweaver
3
+ */
4
+ /**
5
+ * Base error class for all Maskweaver errors
6
+ */
7
+ export declare class MaskweaverError extends Error {
8
+ readonly code?: string | undefined;
9
+ readonly context?: Record<string, unknown> | undefined;
10
+ constructor(message: string, code?: string | undefined, context?: Record<string, unknown> | undefined);
11
+ }
12
+ /**
13
+ * Configuration error
14
+ */
15
+ export declare class ConfigError extends MaskweaverError {
16
+ constructor(message: string, context?: Record<string, unknown>);
17
+ }
18
+ /**
19
+ * Provider error (for memory providers, etc.)
20
+ */
21
+ export declare class ProviderError extends MaskweaverError {
22
+ constructor(message: string, context?: Record<string, unknown>);
23
+ }
24
+ /**
25
+ * Storage error
26
+ */
27
+ export declare class StorageError extends MaskweaverError {
28
+ constructor(message: string, context?: Record<string, unknown>);
29
+ }
30
+ /**
31
+ * Validation error
32
+ */
33
+ export declare class ValidationError extends MaskweaverError {
34
+ constructor(message: string, context?: Record<string, unknown>);
35
+ }
36
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/shared/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,qBAAa,eAAgB,SAAQ,KAAK;aAGtB,IAAI,CAAC,EAAE,MAAM;aACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;gBAFjD,OAAO,EAAE,MAAM,EACC,IAAI,CAAC,EAAE,MAAM,YAAA,EACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YAAA;CAUpD;AAED;;GAEG;AACH,qBAAa,WAAY,SAAQ,eAAe;gBAClC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAI/D;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,eAAe;gBACpC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAI/D;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,eAAe;gBACnC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAI/D;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,eAAe;gBACtC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAI/D"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Error handling for Maskweaver
3
+ */
4
+ /**
5
+ * Base error class for all Maskweaver errors
6
+ */
7
+ export class MaskweaverError extends Error {
8
+ code;
9
+ context;
10
+ constructor(message, code, context) {
11
+ super(message);
12
+ this.code = code;
13
+ this.context = context;
14
+ this.name = "MaskweaverError";
15
+ // Maintains proper stack trace for where our error was thrown (only available on V8)
16
+ if (Error.captureStackTrace) {
17
+ Error.captureStackTrace(this, MaskweaverError);
18
+ }
19
+ }
20
+ }
21
+ /**
22
+ * Configuration error
23
+ */
24
+ export class ConfigError extends MaskweaverError {
25
+ constructor(message, context) {
26
+ super(message, "CONFIG_ERROR", context);
27
+ this.name = "ConfigError";
28
+ }
29
+ }
30
+ /**
31
+ * Provider error (for memory providers, etc.)
32
+ */
33
+ export class ProviderError extends MaskweaverError {
34
+ constructor(message, context) {
35
+ super(message, "PROVIDER_ERROR", context);
36
+ this.name = "ProviderError";
37
+ }
38
+ }
39
+ /**
40
+ * Storage error
41
+ */
42
+ export class StorageError extends MaskweaverError {
43
+ constructor(message, context) {
44
+ super(message, "STORAGE_ERROR", context);
45
+ this.name = "StorageError";
46
+ }
47
+ }
48
+ /**
49
+ * Validation error
50
+ */
51
+ export class ValidationError extends MaskweaverError {
52
+ constructor(message, context) {
53
+ super(message, "VALIDATION_ERROR", context);
54
+ this.name = "ValidationError";
55
+ }
56
+ }
57
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/shared/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,OAAO,eAAgB,SAAQ,KAAK;IAGtB;IACA;IAHlB,YACE,OAAe,EACC,IAAa,EACb,OAAiC;QAEjD,KAAK,CAAC,OAAO,CAAC,CAAC;QAHC,SAAI,GAAJ,IAAI,CAAS;QACb,YAAO,GAAP,OAAO,CAA0B;QAGjD,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAE9B,qFAAqF;QACrF,IAAK,KAAa,CAAC,iBAAiB,EAAE,CAAC;YACpC,KAAa,CAAC,iBAAiB,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,WAAY,SAAQ,eAAe;IAC9C,YAAY,OAAe,EAAE,OAAiC;QAC5D,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;IAC5B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,aAAc,SAAQ,eAAe;IAChD,YAAY,OAAe,EAAE,OAAiC;QAC5D,KAAK,CAAC,OAAO,EAAE,gBAAgB,EAAE,OAAO,CAAC,CAAC;QAC1C,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC9B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,YAAa,SAAQ,eAAe;IAC/C,YAAY,OAAe,EAAE,OAAiC;QAC5D,KAAK,CAAC,OAAO,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC7B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,eAAgB,SAAQ,eAAe;IAClD,YAAY,OAAe,EAAE,OAAiC;QAC5D,KAAK,CAAC,OAAO,EAAE,kBAAkB,EAAE,OAAO,CAAC,CAAC;QAC5C,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF"}