@mulsok/traders-client 0.1.0 → 0.2.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 (79) hide show
  1. package/CHANGELOG.md +63 -0
  2. package/README.md +42 -5
  3. package/bin/cli.js +618 -38
  4. package/dist/server/auth/admin.js +32 -0
  5. package/dist/server/auth/admin.js.map +1 -0
  6. package/dist/server/broker/kiwoom/_helpers/symbol-code.js +21 -0
  7. package/dist/server/broker/kiwoom/_helpers/symbol-code.js.map +1 -0
  8. package/dist/server/broker/kiwoom/client.js +23 -4
  9. package/dist/server/broker/kiwoom/client.js.map +1 -1
  10. package/dist/server/broker/kiwoom/endpoints/account.js +14 -6
  11. package/dist/server/broker/kiwoom/endpoints/account.js.map +1 -1
  12. package/dist/server/broker/kiwoom/endpoints/quote.js +99 -13
  13. package/dist/server/broker/kiwoom/endpoints/quote.js.map +1 -1
  14. package/dist/server/broker/kiwoom/index.js +1 -1
  15. package/dist/server/broker/kiwoom/index.js.map +1 -1
  16. package/dist/server/broker/kiwoom/order-tracker.js +13 -0
  17. package/dist/server/broker/kiwoom/order-tracker.js.map +1 -1
  18. package/dist/server/broker/kiwoom/price-feed.js +13 -0
  19. package/dist/server/broker/kiwoom/price-feed.js.map +1 -1
  20. package/dist/server/broker/kiwoom/ws/endpoints/condition.js +3 -2
  21. package/dist/server/broker/kiwoom/ws/endpoints/condition.js.map +1 -1
  22. package/dist/server/calendar/kst-marker.js +68 -0
  23. package/dist/server/calendar/kst-marker.js.map +1 -0
  24. package/dist/server/config.js +370 -72
  25. package/dist/server/config.js.map +1 -1
  26. package/dist/server/db/sqlite.js +53 -29
  27. package/dist/server/db/sqlite.js.map +1 -1
  28. package/dist/server/diary/writer.js +151 -46
  29. package/dist/server/diary/writer.js.map +1 -1
  30. package/dist/server/index.js +166 -11
  31. package/dist/server/index.js.map +1 -1
  32. package/dist/server/jobs/universe-sync.js +48 -11
  33. package/dist/server/jobs/universe-sync.js.map +1 -1
  34. package/dist/server/jobs/watchdog.js +4 -0
  35. package/dist/server/jobs/watchdog.js.map +1 -1
  36. package/dist/server/journal/telemetry.js +11 -0
  37. package/dist/server/journal/telemetry.js.map +1 -1
  38. package/dist/server/journal/trade-journal.js +42 -16
  39. package/dist/server/journal/trade-journal.js.map +1 -1
  40. package/dist/server/llm/context-builder.js +9 -5
  41. package/dist/server/llm/context-builder.js.map +1 -1
  42. package/dist/server/personas/loader.js +46 -16
  43. package/dist/server/personas/loader.js.map +1 -1
  44. package/dist/server/personas/persona-agent.js +93 -21
  45. package/dist/server/personas/persona-agent.js.map +1 -1
  46. package/dist/server/personas/persona-state.js +198 -19
  47. package/dist/server/personas/persona-state.js.map +1 -1
  48. package/dist/server/personas/runner.js +29 -0
  49. package/dist/server/personas/runner.js.map +1 -1
  50. package/dist/server/personas/wake-plan.js +4 -67
  51. package/dist/server/personas/wake-plan.js.map +1 -1
  52. package/dist/server/readiness.js +70 -0
  53. package/dist/server/readiness.js.map +1 -1
  54. package/dist/server/routes.js +276 -12
  55. package/dist/server/routes.js.map +1 -1
  56. package/dist/server/screener/engine.js +8 -1
  57. package/dist/server/screener/engine.js.map +1 -1
  58. package/dist/server/screener/indicators.js +63 -0
  59. package/dist/server/screener/indicators.js.map +1 -0
  60. package/dist/server/server-sync.js +365 -125
  61. package/dist/server/server-sync.js.map +1 -1
  62. package/dist/server/share/postgres-publish.js +139 -0
  63. package/dist/server/share/postgres-publish.js.map +1 -0
  64. package/dist/server/share/prepare-state.js +50 -0
  65. package/dist/server/share/prepare-state.js.map +1 -0
  66. package/dist/server/share/prepare.js +61 -0
  67. package/dist/server/share/prepare.js.map +1 -0
  68. package/dist/server/share/publish-cron.js +96 -0
  69. package/dist/server/share/publish-cron.js.map +1 -0
  70. package/dist/server/share/snapshot.js +81 -0
  71. package/dist/server/share/snapshot.js.map +1 -0
  72. package/dist/server/watchers/condition-watcher.js +57 -16
  73. package/dist/server/watchers/condition-watcher.js.map +1 -1
  74. package/dist/web/assets/index-B1C-UX9W.js +88 -0
  75. package/dist/web/assets/index-N7Xwheka.css +1 -0
  76. package/dist/web/index.html +2 -2
  77. package/package.json +4 -5
  78. package/dist/web/assets/index-62SMpbaf.js +0 -79
  79. package/dist/web/assets/index-BPLQR0wt.css +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"trade-journal.js","sourceRoot":"","sources":["../../../src-server/journal/trade-journal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"trade-journal.js","sourceRoot":"","sources":["../../../src-server/journal/trade-journal.ts"],"names":[],"mappings":"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"}
@@ -21,7 +21,7 @@
21
21
  */
22
22
  import fs from "node:fs";
23
23
  import path from "node:path";
24
- import os from "node:os";
24
+ import { ensureUserDir, getCurrentUserId } from "../config.js";
25
25
  import { getHoldings, getMarketIndex } from "../broker/kiwoom/index.js";
26
26
  import { getConditionWatcher } from "../watchers/condition-watcher.js";
27
27
  import { getOrderTracker } from "../broker/kiwoom/order-tracker.js";
@@ -30,15 +30,19 @@ import { readEvents } from "../journal/trade-journal.js";
30
30
  * Layer 3 patches 디렉토리 (Coach 가 출력한 patch 파일 모음)
31
31
  *
32
32
  * 구조:
33
- * ~/.mulsok-traders/layer3-patches/<personaSlug>/<yyyy-mm-dd>-<idx>.md
33
+ * ~/.mulsok-traders/u/<userId>/layer3-patches/<personaSlug>/<yyyy-mm-dd>-<idx>.md
34
34
  *
35
35
  * Coach 가 patch 를 발행 (P15+ executor) → 사용자가 승인 → 이 디렉토리에 markdown 파일로 저장.
36
36
  * buildLayer3Patches() 가 자동 reload 해서 LLM context 에 주입.
37
+ *
38
+ * user 별 격리: token 교체 시 다른 user 의 patch 가 새 user 컨텍스트에 섞이지 않도록.
37
39
  */
38
- const PATCHES_DIR = path.join(os.homedir(), ".mulsok-traders", "layer3-patches");
39
- /** 활성 patch 모음 · markdown 합쳐서 반환 */
40
+ /** 활성 patch 모음 · markdown 합쳐서 반환. user_id 미설정 시 빈 문자열. */
40
41
  export function loadActivePatches(personaSlug) {
41
- const personaDir = path.join(PATCHES_DIR, personaSlug);
42
+ const userId = getCurrentUserId();
43
+ if (!userId)
44
+ return "";
45
+ const personaDir = path.join(ensureUserDir(userId, "layer3-patches"), personaSlug);
42
46
  if (!fs.existsSync(personaDir))
43
47
  return "";
44
48
  const files = fs
@@ -1 +1 @@
1
- {"version":3,"file":"context-builder.js","sourceRoot":"","sources":["../../../src-server/llm/context-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAEzD;;;;;;;;GAQG;AACH,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,iBAAiB,EAAE,gBAAgB,CAAC,CAAC;AAEjF,oCAAoC;AACpC,MAAM,UAAU,iBAAiB,CAAC,WAAmB;IACnD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACvD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,EAAE,CAAC;IAC1C,MAAM,KAAK,GAAG,EAAE;SACb,WAAW,CAAC,UAAU,CAAC;SACvB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;SAChC,IAAI,EAAE,CAAC;IACV,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAClC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YAChE,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACxD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;QACT,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACtC,CAAC;AA0CD;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,IAAwB;IAClE,MAAM,EACJ,WAAW,EACX,UAAU,GAAG,CAAC,EACd,kBAAkB,GAAG,IAAI,EACzB,eAAe,GAAG,IAAI,EACtB,eAAe,GAAG,IAAI,EACtB,oBAAoB,GAAG,IAAI,GAC5B,GAAG,IAAI,CAAC;IAET,MAAM,QAAQ,GAAmB;QAC/B,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACpC,WAAW;KACZ,CAAC;IAEF,IAAI,kBAAkB,EAAE,CAAC;QACvB,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACxC,cAAc,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;YACzC,cAAc,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;SAC3C,CAAC,CAAC;QACH,QAAQ,CAAC,WAAW,GAAG;YACrB,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI;YACpG,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI;SACzG,CAAC;IACJ,CAAC;IAED,IAAI,eAAe,EAAE,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,MAAM,WAAW,EAAE,CAAC;YACxC,IAAI,WAAW,CAAC,EAAE,EAAE,CAAC;gBACnB,QAAQ,CAAC,QAAQ,GAAG;oBAClB,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBACxC,UAAU,EAAE,CAAC,CAAC,UAAU;wBACxB,UAAU,EAAE,CAAC,CAAC,UAAU;wBACxB,QAAQ,EAAE,CAAC,CAAC,QAAQ;wBACpB,cAAc,EAAE,CAAC,CAAC,cAAc;wBAChC,eAAe,EAAE,CAAC,CAAC,eAAe;wBAClC,MAAM,EAAE,CAAC,CAAC,MAAM;qBACjB,CAAC,CAAC;oBACH,YAAY,EAAE,WAAW,CAAC,IAAI,CAAC,YAAY;oBAC3C,WAAW,EAAE,WAAW,CAAC,IAAI,CAAC,WAAW;oBACzC,WAAW,EAAE,WAAW,CAAC,IAAI,CAAC,WAAW;iBAC1C,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC;YAC3B,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,IAAI,oBAAoB,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,WAAW,CAAC,CAAC;QACzG,QAAQ,CAAC,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC1C,UAAU,EAAE,CAAC,CAAC,UAAU;YACxB,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,WAAW,EAAE,CAAC,CAAC,WAAW;YAC1B,gBAAgB,EAAE,CAAC,CAAC,gBAAgB;YACpC,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,SAAS,EAAE,CAAC,CAAC,SAAS;SACvB,CAAC,CAAC,CAAC;IACN,CAAC;IAED,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,QAAQ,GAAG,mBAAmB,EAAE,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/E,QAAQ,CAAC,cAAc,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC7C,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI;YAC3B,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM;YACrB,SAAS,EAAE,CAAC,CAAC,SAAS;YACtB,YAAY,EAAE,CAAC,CAAC,YAAY;SAC7B,CAAC,CAAC,CAAC;IACN,CAAC;IAED,+CAA+C;IAC/C,MAAM,YAAY,GAAG,UAAU,CAAC;QAC9B,WAAW;QACX,UAAU,EAAE,CAAC,UAAU,CAAC;QACxB,KAAK,EAAE,UAAU,GAAG,CAAC;KACtB,CAAC,CAAC;IACH,QAAQ,CAAC,aAAa,GAAG,YAAY;SAClC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC;SACnC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC;SACpB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACX,IAAI,EAAE,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;QAC9B,UAAU,EAAE,CAAC,CAAC,UAAU;QACxB,MAAM,EAAE,CAAC,CAAC,UAAU,EAAE,MAAgB;KACvC,CAAC,CAAC,CAAC;IAEN,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAoB;IACvD,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,QAAQ,CAAC,IAAI,CAAC,kCAAkC,IAAI,CAAC,WAAW,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;IAEvG,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,MAAM,KAAK,GAAa,CAAC,WAAW,CAAC,CAAC;QACtC,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;YAC3B,KAAK,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,cAAc,EAAE,KAAK,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAC9H,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC9B,CAAC;QACD,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;YAC5B,KAAK,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC,cAAc,EAAE,KAAK,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACjI,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC/B,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAChC,MAAM,KAAK,GAAa,CAAC,aAAa,CAAC,CAAC;QACxC,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACpC,KAAK,CAAC,IAAI,CACR,KAAK,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,UAAU,OAAO,CAAC,CAAC,QAAQ,UAAU,CAAC,CAAC,cAAc,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC,eAAe,CAAC,cAAc,EAAE,UAAU,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CACvK,CAAC;YACJ,CAAC;YACD,KAAK,CAAC,IAAI,CACR,UAAU,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,cAAc,EAAE,UAAU,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,cAAc,EAAE,MAAM,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CACpJ,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC3B,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxD,MAAM,KAAK,GAAa,CAAC,uBAAuB,CAAC,CAAC;QAClD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACnC,KAAK,CAAC,IAAI,CACR,KAAK,CAAC,CAAC,UAAU,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,WAAW,OAAO,CAAC,CAAC,gBAAgB,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,MAAM,SAAS,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,WAAW,EAAE,CAC/I,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;QAC/D,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1D,MAAM,KAAK,GAAa,CAAC,gCAAgC,CAAC,CAAC;QAC3D,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACpC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,MAAM,SAAS,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;QAC3E,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxD,MAAM,KAAK,GAAa,CAAC,6BAA6B,CAAC,CAAC;QACxD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACnC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QACrF,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAClC,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAAwB;IAC9D,MAAM,IAAI,GAAG,MAAM,qBAAqB,CAAC,IAAI,CAAC,CAAC;IAC/C,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,MAAM,CAAC,CAAS;IACvB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAAE,OAAO,OAAO,CAAC;IACxC,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9B,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;AACnC,CAAC"}
1
+ {"version":3,"file":"context-builder.js","sourceRoot":"","sources":["../../../src-server/llm/context-builder.ts"],"names":[],"mappings":"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"}
@@ -14,15 +14,20 @@
14
14
  * 60초 (빈번한 스크리닝 호출 고려 · Supabase 부담 경감)
15
15
  */
16
16
  import fs from "node:fs";
17
- import os from "node:os";
18
17
  import path from "node:path";
19
18
  import matter from "gray-matter";
20
19
  import { fetchPersonaBundle } from "../bundle.js";
21
- import { SERVER_BASE_URL, loadConfig } from "../config.js";
20
+ import { SERVER_BASE_URL, loadConfig, ensureUserDir, getCurrentUserId } from "../config.js";
22
21
  import { PersonaFrontmatterSchema, } from "./schema.js";
23
22
  const CACHE = new Map();
24
23
  const CACHE_TTL_MS = 60_000;
25
- const OVERRIDE_DIR = path.join(os.homedir(), ".mulsok-traders", "personas");
24
+ /** user_id 있을 때만 override dir 반환. 없으면 null (override 검색 skip). */
25
+ function getOverrideDir() {
26
+ const userId = getCurrentUserId();
27
+ if (!userId)
28
+ return null;
29
+ return ensureUserDir(userId, "personas");
30
+ }
26
31
  /**
27
32
  * 페르소나 slug 로 정의 확보.
28
33
  *
@@ -70,8 +75,10 @@ async function loadPersonaFresh(slug) {
70
75
  catch {
71
76
  // Supabase 실패는 조용히 override 로 fallback
72
77
  }
73
- /* 2. 로컬 override */
74
- const overrideFm = readLocalOverride(slug);
78
+ /* 2. 로컬 override (frontmatter + body 둘 다 가능) */
79
+ const override = readLocalOverride(slug);
80
+ const overrideFm = override?.frontmatter ?? null;
81
+ const overrideBody = override?.body ?? "";
75
82
  if (!supabaseFm && !overrideFm) {
76
83
  // Supabase body 는 있지만 frontmatter 없고 override 도 없음 → 페르소나 스크리너 쓸 수 없음
77
84
  if (supabaseBody) {
@@ -99,36 +106,56 @@ async function loadPersonaFresh(slug) {
99
106
  : overrideFm
100
107
  ? "local-override"
101
108
  : "supabase";
109
+ // body 결정: supabase body 우선 → 없으면 override body (Phase 5e-D2 신규)
110
+ // 단테처럼 Supabase 미등록 페르소나도 .md override 만으로 cycle 실행 가능.
111
+ const promptBody = supabaseBody || overrideBody;
102
112
  return {
103
113
  slug,
104
114
  frontmatter: merged,
105
- promptBody: supabaseBody,
115
+ promptBody,
106
116
  source,
107
117
  rawBody,
108
118
  hashOk,
109
119
  version,
110
120
  };
111
121
  }
122
+ /**
123
+ * 로컬 override 파일 읽기 — frontmatter 와 body (있으면) 둘 다 반환.
124
+ *
125
+ * Phase 5e-D2 (2026-05-09) 확장:
126
+ * .md 파일은 frontmatter + body 둘 다 추출 → Supabase 미등록 페르소나도
127
+ * local override 만으로 cycle 실행 가능 (단테 v0.4 첫 도입 사례).
128
+ * .yaml/.yml 은 frontmatter 만 (body 컨셉 없음).
129
+ */
112
130
  function readLocalOverride(slug) {
113
- const yamlPath = path.join(OVERRIDE_DIR, `${slug}.yaml`);
114
- const ymlPath = path.join(OVERRIDE_DIR, `${slug}.yml`);
115
- const mdPath = path.join(OVERRIDE_DIR, `${slug}.md`);
131
+ const dir = getOverrideDir();
132
+ if (!dir)
133
+ return null;
134
+ const yamlPath = path.join(dir, `${slug}.yaml`);
135
+ const ymlPath = path.join(dir, `${slug}.yml`);
136
+ const mdPath = path.join(dir, `${slug}.md`);
116
137
  const candidates = [yamlPath, ymlPath, mdPath];
117
138
  for (const p of candidates) {
118
139
  if (!fs.existsSync(p))
119
140
  continue;
120
141
  try {
121
142
  const raw = fs.readFileSync(p, "utf8");
122
- const frontmatter = p.endsWith(".md")
123
- ? parseMarkdownWithFrontmatter(raw)?.frontmatter ?? null
124
- : parseYamlAsFrontmatter(raw);
125
- if (!frontmatter)
143
+ // .md: parseMarkdownWithFrontmatter 가 이미 schema 검증 완료 → 그대로 반환
144
+ if (p.endsWith(".md")) {
145
+ const parsed = parseMarkdownWithFrontmatter(raw);
146
+ if (!parsed)
147
+ continue;
148
+ return { frontmatter: parsed.frontmatter, body: parsed.body };
149
+ }
150
+ // .yaml/.yml: raw object 검증 필요
151
+ const fmRaw = parseYamlAsFrontmatter(raw);
152
+ if (!fmRaw)
126
153
  continue;
127
- const res = PersonaFrontmatterSchema.safeParse({ persona: slug, version: "override", ...frontmatter });
154
+ const res = PersonaFrontmatterSchema.safeParse({ persona: slug, version: "override", ...fmRaw });
128
155
  if (!res.success) {
129
156
  throw new Error(`Override frontmatter validation 실패 · ${slug}: ${formatZodError(res.error)}`);
130
157
  }
131
- return res.data;
158
+ return { frontmatter: res.data, body: "" };
132
159
  }
133
160
  catch (e) {
134
161
  console.warn(`[personas] override 로드 실패 (${p}): ${String(e)}`);
@@ -161,5 +188,8 @@ function formatZodError(err) {
161
188
  .map((i) => `${i.path.join(".") || "(root)"}: ${i.message}`)
162
189
  .join(" · ");
163
190
  }
164
- export { OVERRIDE_DIR as PERSONA_OVERRIDE_DIR };
191
+ /** 외부 (e.g. routes.ts) 에서 현재 user 의 override dir 경로 조회 — 없으면 null. */
192
+ export function getPersonaOverrideDir() {
193
+ return getOverrideDir();
194
+ }
165
195
  //# sourceMappingURL=loader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../../src-server/personas/loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../../src-server/personas/loader.ts"],"names":[],"mappings":"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"}
@@ -29,7 +29,7 @@ import { checkLlmCallSafety } from "../safety.js";
29
29
  import { fetchCommonBundle, fetchPersonaBundle, assembleFullPrompt } from "../bundle.js";
30
30
  import { SERVER_BASE_URL } from "../config.js";
31
31
  import { loadPersona } from "./loader.js";
32
- import { loadState, personaDir } from "./persona-state.js";
32
+ import { loadState, personaDir, extractStateUpdate, applyStateUpdate } from "./persona-state.js";
33
33
  import { logDecision } from "../journal/trade-journal.js";
34
34
  const TIMEOUT_SEC = (() => {
35
35
  const env = process.env.CLAUDE_CLI_TIMEOUT_SEC;
@@ -50,6 +50,11 @@ export async function executePersonaCycle(slug, triggeredBy = { kind: "manual" }
50
50
  }
51
51
  // 2. config + provider
52
52
  const cfg = loadConfig();
53
+ // user 미인증 가드 — user-scoped state.json / strategy.md 접근 불가
54
+ // (정상 흐름에선 인증 후 cycle 호출이라 여기까지 안 옴)
55
+ if (!cfg.auth?.userId) {
56
+ return failResult(slug, triggeredBy, startedAt, t0, "config", "user_id 미설정 — 디바이스 토큰 등록 + server 인증 후 cycle 호출 가능");
57
+ }
53
58
  if (cfg.llm.provider !== "claude-cli") {
54
59
  return failResult(slug, triggeredBy, startedAt, t0, "config", `agent cycle 은 LLM provider = "claude-cli" 만 지원 (현재 ${cfg.llm.provider}). config 변경 후 재시도.`);
55
60
  }
@@ -61,13 +66,33 @@ export async function executePersonaCycle(slug, triggeredBy = { kind: "manual" }
61
66
  return failResult(slug, triggeredBy, startedAt, t0, "persona", `persona '${slug}' 미존재`);
62
67
  }
63
68
  // 4. Layer 1+2 prompt
69
+ // Layer 1 (common) 은 Supabase 단일 진실 — 항상 fetch.
70
+ // Layer 2 (persona) 는 Supabase 우선 · 실패 시 local override body 로 fallback
71
+ // → dante 처럼 Supabase 미등록 페르소나도 .md override 만으로 cycle 가능
72
+ // (Phase 5e-D2 — ADR-009 정합 유지: 등록된 페르소나는 server SSoT 우선).
64
73
  let systemPrompt;
65
74
  try {
66
75
  const common = await fetchCommonBundle(SERVER_BASE_URL);
67
- const personaB = await fetchPersonaBundle(SERVER_BASE_URL, slug, cfg.auth?.deviceToken);
76
+ let layer2Body = "";
77
+ let layer2Source = "supabase";
78
+ try {
79
+ const personaB = await fetchPersonaBundle(SERVER_BASE_URL, slug, cfg.auth?.deviceToken);
80
+ layer2Body = personaB.bundle.body;
81
+ }
82
+ catch (supabaseErr) {
83
+ if (persona.promptBody) {
84
+ layer2Body = persona.promptBody;
85
+ layer2Source = "local-override";
86
+ console.log(`[persona-agent] ${slug} · Supabase persona bundle 미존재 → local override body 사용 (${persona.promptBody.length} chars)`);
87
+ }
88
+ else {
89
+ return failResult(slug, triggeredBy, startedAt, t0, "bundle", `Layer 2 prompt 조립 실패: Supabase fetch 실패 (${String(supabaseErr)}) + local override body 도 비어있음`);
90
+ }
91
+ }
92
+ void layer2Source; // 추후 logging 용 reserved
68
93
  systemPrompt = assembleFullPrompt({
69
94
  layer1: common.bundle.body,
70
- layer2: personaB.bundle.body,
95
+ layer2: layer2Body,
71
96
  layer3Header: agentInstructionLayer3(slug, triggeredBy),
72
97
  });
73
98
  }
@@ -78,7 +103,7 @@ export async function executePersonaCycle(slug, triggeredBy = { kind: "manual" }
78
103
  const projectRoot = process.env.MULSOK_PROJECT_ROOT ?? process.cwd();
79
104
  const personaWorkDir = personaDir(slug);
80
105
  const port = process.env.CLIENT_PORT ?? "8787";
81
- const userPrompt = buildAgentUserPrompt(slug, triggeredBy, port);
106
+ const userPrompt = buildAgentUserPrompt(slug, triggeredBy, port, personaWorkDir);
82
107
  const args = [
83
108
  "--dangerously-skip-permissions",
84
109
  "--add-dir", projectRoot,
@@ -97,6 +122,19 @@ export async function executePersonaCycle(slug, triggeredBy = { kind: "manual" }
97
122
  return failResult(slug, triggeredBy, startedAt, t0, "agent", `claude-cli 실행 실패: ${String(e)}`);
98
123
  }
99
124
  const summary = extractAssistantText(stdout);
125
+ // 5-b. <state_update> 블록 적용 — agent 가 raw Write 로 state.json 직접 갱신하던
126
+ // 흐름을 폐기 (2026-05-08 trailing-comma 사고). 응답에서 블록 추출 → zod 검증 →
127
+ // saveState 만 사용해 직렬화. 블록 없거나 검증 실패 시 state.json 변경 없음.
128
+ const extracted = extractStateUpdate(summary);
129
+ if (extracted.ok) {
130
+ const applied = applyStateUpdate(slug, extracted.payload);
131
+ if (!applied.ok) {
132
+ console.warn(`[persona-agent] ${slug} state_update 적용 실패: ${applied.reason}`);
133
+ }
134
+ }
135
+ else {
136
+ console.warn(`[persona-agent] ${slug} state_update 미적용: ${extracted.reason}`);
137
+ }
100
138
  // 6. journal cycle 기록
101
139
  try {
102
140
  logDecision({
@@ -157,23 +195,24 @@ function agentInstructionLayer3(slug, triggeredBy) {
157
195
 
158
196
  ## 당신의 메모리
159
197
 
160
- - 자기 전용 폴더: \`~/.mulsok-traders/personas/${slug}/\`
198
+ - 자기 전용 폴더: (--add-dir 로 전달된 work directory)
161
199
  - \`state.json\` — watchlist · positions · stats · nextRunAt
162
200
  - \`strategy.md\` — 자유 형식 전략 노트 (시장 판단 · 학습 등)
163
201
 
164
202
  ## 자율성 원칙
165
203
 
166
204
  - 정기 cron 은 없습니다. 다음 사이클 시각은 당신이 \`state.json.nextRunAt\` (ISO8601) 으로 직접 결정.
167
- - 또는 시세 조건 watcher 등록 (\`POST /api/watchers\`) 해서 트리거 받기.
168
- - 잡으면 시스템 watchdog「잠들음」 alert 띄웁니다.
205
+ - 시세 조건 watcher 등록 (\`POST /api/watchers\`) 「추가 트리거」 로만 사용 — \`nextRunAt\` 을 대체하지 않습니다.
206
+ - **\`nextRunAt\` 반드시 잡아야 합니다 (\`null\` 금지).** watcher 만 등록하고 nextRunAt 을 비우면, watcher 발화 시 영원히 잠들어 시장 변화 follow-up 이 끊깁니다. 장 마감 후라면 \`다음거래일T08:50:00+09:00\` 이 기본값.
207
+ - watchdog 는 \`nextRunAt\` 누락을 결함으로 간주해 「잠들음」 alert 을 띄웁니다.
169
208
  `;
170
209
  }
171
- function buildAgentUserPrompt(slug, triggeredBy, port) {
210
+ function buildAgentUserPrompt(slug, triggeredBy, port, personaWorkDir) {
172
211
  return `다음 작업을 순서대로 수행하세요. 각 단계마다 도구를 직접 사용하세요.
173
212
 
174
213
  # 1. 메모리 read
175
- - \`Read\` 도구로 \`~/.mulsok-traders/personas/${slug}/state.json\` 읽기
176
- - \`Read\` 도구로 \`~/.mulsok-traders/personas/${slug}/strategy.md\` 읽기
214
+ - \`Read\` 도구로 \`${personaWorkDir}/state.json\` 읽기
215
+ - \`Read\` 도구로 \`${personaWorkDir}/strategy.md\` 읽기
177
216
 
178
217
  # 2. 시장 컨텍스트 조회 (필요한 만큼만 — 토큰 절약)
179
218
 
@@ -275,19 +314,16 @@ state.json 의 watchlist + 현재 시장 + 보유 + 활성 watcher 를 종합:
275
314
  -d '{"personaSlug":"${slug}","watchers":[{"intent":"...","condition":{...},"wakeAction":"...","maxWaitHours":N}]}'
276
315
  \`\`\`
277
316
 
278
- # 7. 메모리 갱신 (필수)
317
+ # 7. 메모리 갱신
279
318
 
280
- - \`Write\` 도구로 \`~/.mulsok-traders/personas/${slug}/state.json\` 갱신
281
- - watchlist 추가/제거
282
- - positions 동기 (주문 후)
283
- - stats 갱신 (매도 후 손익)
284
- - **\`nextRunAt\` 설정** (ISO8601 · 한국 영업일 고려) — 또는 watcher 만 등록했으면 \`null\`
285
- - \`Edit\` 도구로 \`~/.mulsok-traders/personas/${slug}/strategy.md\` 갱신
319
+ - **\`state.json\`Write/Edit 도구로 직접 쓰지 마세요.** 시스템이 응답 끝의 \`<state_update>\` 블록 (8단계) 을 읽고 zod 검증 후 안전하게 직렬화합니다. 직접 쓰면 trailing comma 등 손상 위험.
320
+ - \`Edit\` 도구로 \`${personaWorkDir}/strategy.md\` 갱신 (자유 형식 마크다운 — 직접 편집 OK)
286
321
  - 「현재 시장 판단」 섹션 갱신
287
322
  - 학습 노트 추가 (있으면)
288
- - \`lastRunAt\` 도 같이 현재 시각으로 갱신
289
323
 
290
- ## ⚠ state.json watchlist[] 항목의 정확한 필드명 (UI 가 이 명명으로 읽음)
324
+ ## ⚠ state 항목 필드명 (UI 가 이 명명으로 읽음)
325
+
326
+ watchlist[] 항목:
291
327
 
292
328
  \`\`\`json
293
329
  {
@@ -306,11 +342,47 @@ state.json 의 watchlist + 현재 시장 + 보유 + 활성 watcher 를 종합:
306
342
  추가 메타 (score · stars · watcherIds 등) 는 자유 필드로 보존. 다만 위 9개 키는 정확히 사용.
307
343
  **symbolCode/symbolName/note/entryTriggerKrw 같은 별칭 사용 금지** (UI 표시 안 됨).
308
344
 
309
- # 8. 마지막 응답
345
+ # 8. 마지막 응답 (필수 형식)
310
346
 
311
- 수행한 작업을 단락으로 요약 (사용자에게 보일 텍스트). 예:
347
+ 응답은 부분으로 구성:
348
+
349
+ ## 8-A. 요약 단락 (사용자에게 보일 텍스트)
350
+
351
+ 수행한 작업을 한 단락으로. 예:
312
352
  - "watchlist 의 한화솔루션 트리거 도달 안 함 (현재가 51,000원 vs 트리거 48,650원). 매수 보류. 신규 발굴 결과 동아엘텍 (088130) 패턴3 후보로 watchlist 추가. 다음 사이클은 내일 09:30 KST 예약."
313
353
 
354
+ ## 8-B. \`<state_update>\` 블록 (필수)
355
+
356
+ 요약 단락 다음에 **반드시** 다음 형식의 블록을 출력. 시스템이 추출 → zod 검증 → state.json 으로 직렬화합니다.
357
+
358
+ \`\`\`
359
+ <state_update>
360
+ {
361
+ "watchlist": [ ...전체 watchlist... ],
362
+ "positions": [ ...전체 positions... ],
363
+ "stats": { "totalTrades": N, "winCount": N, "lossCount": N, "realizedPnlKrw": N },
364
+ "lastRunAt": "2026-05-08T11:30:00+09:00",
365
+ "nextRunAt": "2026-05-09T08:50:00+09:00"
366
+ }
367
+ </state_update>
368
+ \`\`\`
369
+
370
+ 규칙:
371
+ - **포함한 키만 갱신**됩니다. 변경 안 한 키는 빼세요 (기존 값 유지). 전체 redump 불필요.
372
+ - watchlist · positions 는 **전체 배열을 통째로** 보내세요 (부분 추가/삭제 X · 머지 안 함).
373
+ - watchlist 항목 / position 에 **추가 메타 (\`score\`, \`watcherIds\`, \`splitTier\`, \`stopPriceKrw\`, \`target1PriceKrw\`, \`target2PriceKrw\`, \`clientOrderId\`, \`brokerOrderNo\`, \`pattern\`, \`stars\` 등) 는 자유롭게 포함하세요.** zod 가 보존합니다. 특히 \`watcherIds\` 는 손절·익절 watcher 와의 link 라 누락하면 다음 사이클에서 추적 불가.
374
+ - **\`nextRunAt\` 은 반드시 잡으세요 (\`null\` 금지).** watcher 만 등록하고 \`nextRunAt\` 을 비워두면 watcher 가 발화 안 할 시 영원히 잠듭니다 (대표적 결함). watcher 모드여도 fallback 시각을 잡으세요.
375
+ - **\`nextRunAt\` 은 KST 마커를 사용하세요. 직접 ISO8601 작성 금지.** 직접 날짜 계산하면 토/일/공휴일 검증 실수가 잦습니다 (실제 회귀: LLM 이 \"내일\" 을 +1일 ISO 로 만들어 토요일 등록). 시스템이 KST 마커를 정규화하면서 거래일 검증 + 비거래일이면 다음 거래일로 자동 보정합니다.
376
+ - 지원 KST 마커:
377
+ - \`다음거래일T08:50:00+09:00\` — KRX 휴장일 + 주말 모두 skip 후 첫 거래일 08:50 KST. **장 마감 후 / 장외 / 주말 호출 시 가장 안전한 기본값.**
378
+ - \`오늘T15:25:00+09:00\` — 오늘 KST 15:25 (장 종료 직전 watcher 정리·다음 사이클 준비 시)
379
+ - \`오늘T15:35:00+09:00\` — 오늘 KST 15:35 (장 마감 직후 정리)
380
+ - \`내일T08:50:00+09:00\` — 단순 +1일 (휴장일 무관). 거래일 보장 X 이므로 비추.
381
+ - \`다음월요일T08:50:00+09:00\` — 다음 월요일 KST 08:50.
382
+ - 시스템이 비거래일을 감지하면 다음 거래일로 보정하되 시각 부분 (HH:MM:SS) 은 그대로. 즉 \"내일T08:50\" 이 토요일이어도 자동으로 월요일 08:50 으로 변환됩니다.
383
+ - JSON 은 표준 (trailing comma · 주석 X). 검증 실패 시 state.json 변경 안 됨.
384
+ - \`slug\` / \`version\` 은 시스템이 강제하므로 보내도 무시됩니다.
385
+
314
386
  이제 시작하세요.`;
315
387
  }
316
388
  /* ================================================================
@@ -1 +1 @@
1
- {"version":3,"file":"persona-agent.js","sourceRoot":"","sources":["../../../src-server/personas/persona-agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"persona-agent.js","sourceRoot":"","sources":["../../../src-server/personas/persona-agent.ts"],"names":[],"mappings":"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"}