dsh-archify-projects 0.0.0-stage → 0.1.1

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 (148) hide show
  1. package/README.md +231 -2
  2. package/cordis.patch.yml +99 -0
  3. package/dist/client.js +2281 -0
  4. package/dist/client.js.map +1 -0
  5. package/docs/CONTAINER.md +197 -0
  6. package/docs/DESIGN.md +905 -0
  7. package/docs/HANDOVER.md +397 -0
  8. package/docs/PUBLISH.md +107 -0
  9. package/icon.svg +12 -0
  10. package/lib/host/archify-skill.js +116 -0
  11. package/lib/host/archify-skill.js.map +1 -0
  12. package/lib/host/config.js +95 -0
  13. package/lib/host/config.js.map +1 -0
  14. package/lib/host/context.js +28 -0
  15. package/lib/host/context.js.map +1 -0
  16. package/lib/host/git.js +185 -0
  17. package/lib/host/git.js.map +1 -0
  18. package/lib/host/http.js +184 -0
  19. package/lib/host/http.js.map +1 -0
  20. package/lib/host/index.js +90 -0
  21. package/lib/host/index.js.map +1 -0
  22. package/lib/host/policy.js +124 -0
  23. package/lib/host/policy.js.map +1 -0
  24. package/lib/host/routes.js +667 -0
  25. package/lib/host/routes.js.map +1 -0
  26. package/lib/host/runner.js +913 -0
  27. package/lib/host/runner.js.map +1 -0
  28. package/lib/host/store.js +370 -0
  29. package/lib/host/store.js.map +1 -0
  30. package/lib/host/workspace.js +65 -0
  31. package/lib/host/workspace.js.map +1 -0
  32. package/lib/shared/format.js +138 -0
  33. package/lib/shared/format.js.map +1 -0
  34. package/lib/shared/prompt.js +257 -0
  35. package/lib/shared/prompt.js.map +1 -0
  36. package/lib/shared/protocol.js +31 -0
  37. package/lib/shared/protocol.js.map +1 -0
  38. package/lib/shared/types.js +173 -0
  39. package/lib/shared/types.js.map +1 -0
  40. package/locale/en.json +6 -0
  41. package/locale/zh.json +6 -0
  42. package/package.json +98 -4
  43. package/skills/archify/LICENSE +22 -0
  44. package/skills/archify/SKILL.md +109 -0
  45. package/skills/archify/THIRD_PARTY_NOTICES.md +69 -0
  46. package/skills/archify/assets/JetBrainsMono-OFL.txt +93 -0
  47. package/skills/archify/assets/template.html +13709 -0
  48. package/skills/archify/bin/archify.mjs +6936 -0
  49. package/skills/archify/bin/delivery-update.mjs +91 -0
  50. package/skills/archify/bin/finalize.mjs +895 -0
  51. package/skills/archify/bin/open-artifact.mjs +146 -0
  52. package/skills/archify/bin/preview.mjs +969 -0
  53. package/skills/archify/bin/recover-output.mjs +41 -0
  54. package/skills/archify/bin/visual-check.mjs +2667 -0
  55. package/skills/archify/brand-marks/README.md +31 -0
  56. package/skills/archify/brand-marks/catalog.json +131 -0
  57. package/skills/archify/delta/architecture-delta.mjs +1313 -0
  58. package/skills/archify/examples/agent-run.lifecycle.json +55 -0
  59. package/skills/archify/examples/agent-tool-call.workflow.json +74 -0
  60. package/skills/archify/examples/async-job-roundtrip.sequence.json +56 -0
  61. package/skills/archify/examples/brand-aware-delivery.architecture.json +34 -0
  62. package/skills/archify/examples/cache-miss-request.sequence.json +77 -0
  63. package/skills/archify/examples/checkout-platform.base.architecture.json +32 -0
  64. package/skills/archify/examples/checkout-platform.head.architecture.json +32 -0
  65. package/skills/archify/examples/dataflow-product-analytics.html +13820 -0
  66. package/skills/archify/examples/deployment-release.lifecycle.json +48 -0
  67. package/skills/archify/examples/event-stream.dataflow.json +52 -0
  68. package/skills/archify/examples/holiday-planning.workflow.json +143 -0
  69. package/skills/archify/examples/incident-response.workflow.json +59 -0
  70. package/skills/archify/examples/lifecycle-agent-run.html +13765 -0
  71. package/skills/archify/examples/locales/de.json +425 -0
  72. package/skills/archify/examples/locales/es.json +440 -0
  73. package/skills/archify/examples/locales/fr.json +425 -0
  74. package/skills/archify/examples/locales/fr.partial.json +22 -0
  75. package/skills/archify/examples/locales/it.json +425 -0
  76. package/skills/archify/examples/locales/ja.json +425 -0
  77. package/skills/archify/examples/locales/ko.json +440 -0
  78. package/skills/archify/examples/locales/pt.json +425 -0
  79. package/skills/archify/examples/locales/ru.json +425 -0
  80. package/skills/archify/examples/product-analytics.dataflow.json +71 -0
  81. package/skills/archify/examples/production-deployment.architecture.json +51 -0
  82. package/skills/archify/examples/release-delivery.workflow.json +57 -0
  83. package/skills/archify/examples/sequence-cache-miss-request.html +13835 -0
  84. package/skills/archify/examples/web-app-rendered.html +13808 -0
  85. package/skills/archify/examples/web-app.architecture.json +41 -0
  86. package/skills/archify/examples/workflow-agent-tool-call-rendered.html +13826 -0
  87. package/skills/archify/migrations/workflow-v2.mjs +280 -0
  88. package/skills/archify/package.json +17 -0
  89. package/skills/archify/recipes/scenarios.mjs +430 -0
  90. package/skills/archify/references/architecture-layout-repair.md +18 -0
  91. package/skills/archify/references/authoring-contract.md +419 -0
  92. package/skills/archify/references/authoring-defaults.md +41 -0
  93. package/skills/archify/references/brand-marks.md +82 -0
  94. package/skills/archify/references/delivery-contract.md +588 -0
  95. package/skills/archify/references/repository-authoring.md +105 -0
  96. package/skills/archify/references/update-awareness.md +12 -0
  97. package/skills/archify/references/viewer-runtime.md +35 -0
  98. package/skills/archify/renderers/architecture/grid.mjs +62 -0
  99. package/skills/archify/renderers/architecture/labels.mjs +215 -0
  100. package/skills/archify/renderers/architecture/render-architecture.mjs +1001 -0
  101. package/skills/archify/renderers/architecture/routing.mjs +1157 -0
  102. package/skills/archify/renderers/dataflow/README.md +105 -0
  103. package/skills/archify/renderers/dataflow/render-dataflow.mjs +544 -0
  104. package/skills/archify/renderers/lifecycle/README.md +171 -0
  105. package/skills/archify/renderers/lifecycle/grid-routing.mjs +429 -0
  106. package/skills/archify/renderers/lifecycle/render-lifecycle.mjs +938 -0
  107. package/skills/archify/renderers/sequence/README.md +129 -0
  108. package/skills/archify/renderers/sequence/render-sequence.mjs +526 -0
  109. package/skills/archify/renderers/shared/atomic-output.mjs +1982 -0
  110. package/skills/archify/renderers/shared/brand-marks.mjs +670 -0
  111. package/skills/archify/renderers/shared/cli.mjs +451 -0
  112. package/skills/archify/renderers/shared/desktop-readability.mjs +132 -0
  113. package/skills/archify/renderers/shared/diagnostics.mjs +173 -0
  114. package/skills/archify/renderers/shared/engineering-profiles.mjs +157 -0
  115. package/skills/archify/renderers/shared/generated-brand-marks.mjs +2003 -0
  116. package/skills/archify/renderers/shared/generated-validators.mjs +134 -0
  117. package/skills/archify/renderers/shared/geometry.mjs +1941 -0
  118. package/skills/archify/renderers/shared/i18n.mjs +603 -0
  119. package/skills/archify/renderers/shared/layout-report.mjs +42 -0
  120. package/skills/archify/renderers/shared/legend.mjs +217 -0
  121. package/skills/archify/renderers/shared/output-path.mjs +440 -0
  122. package/skills/archify/renderers/shared/path-semantics.mjs +1017 -0
  123. package/skills/archify/renderers/shared/portable-path.mjs +408 -0
  124. package/skills/archify/renderers/shared/repository-evidence.mjs +352 -0
  125. package/skills/archify/renderers/shared/repository-location.mjs +59 -0
  126. package/skills/archify/renderers/shared/route-quality.mjs +614 -0
  127. package/skills/archify/renderers/shared/sidecar-path.mjs +38 -0
  128. package/skills/archify/renderers/shared/spatial-grid.mjs +66 -0
  129. package/skills/archify/renderers/shared/text-fit.mjs +105 -0
  130. package/skills/archify/renderers/shared/utils.mjs +254 -0
  131. package/skills/archify/renderers/shared/validator.mjs +86 -0
  132. package/skills/archify/renderers/workflow/README.md +301 -0
  133. package/skills/archify/renderers/workflow/render-workflow.mjs +37 -0
  134. package/skills/archify/renderers/workflow/workflow-compiler.mjs +4913 -0
  135. package/skills/archify/renderers/workflow/workflow-migration-geometry.mjs +144 -0
  136. package/skills/archify/schemas/README.md +256 -0
  137. package/skills/archify/schemas/architecture.schema.json +152 -0
  138. package/skills/archify/schemas/common.schema.json +181 -0
  139. package/skills/archify/schemas/dataflow.schema.json +254 -0
  140. package/skills/archify/schemas/lifecycle.schema.json +280 -0
  141. package/skills/archify/schemas/sequence.schema.json +234 -0
  142. package/skills/archify/schemas/workflow.schema.json +439 -0
  143. package/skills/archify/scripts/check-render-output.mjs +1388 -0
  144. package/skills/archify/scripts/check-update.mjs +1710 -0
  145. package/skills/archify/scripts/delivery-update-child.mjs +23 -0
  146. package/skills/archify/scripts/render-examples.mjs +26 -0
  147. package/skills/archify/scripts/update-contract.mjs +182 -0
  148. package/skills/archify/skill-release.json +10 -0
@@ -0,0 +1,440 @@
1
+ {
2
+ "page.title": "{title} 다이어그램",
3
+ "diagram.description.architecture": "Archify로 생성한 아키텍처 다이어그램입니다.",
4
+ "diagram.description.workflow": "Archify로 생성한 워크플로우 다이어그램입니다.",
5
+ "diagram.description.sequence": "Archify로 생성한 시퀀스 다이어그램입니다.",
6
+ "diagram.description.dataflow": "Archify로 생성한 데이터플로우 다이어그램입니다.",
7
+ "diagram.description.lifecycle": "Archify로 생성한 라이프사이클 다이어그램입니다.",
8
+ "node.focus": "{label} 포커스",
9
+ "node.focus.detail": "{label} 포커스, {detail}",
10
+ "node.context.architecture": "아키텍처 구성요소",
11
+ "node.context.workflow": "워크플로우 노드",
12
+ "node.context.sequence": "시퀀스 참가자",
13
+ "node.context.dataflow": "데이터플로우 노드",
14
+ "node.context.lifecycle": "라이프사이클 상태",
15
+ "legend.title": "범례",
16
+ "legend.architecture.frontend": "프런트엔드",
17
+ "legend.architecture.backend": "백엔드",
18
+ "legend.architecture.database": "데이터베이스",
19
+ "legend.architecture.cloud": "클라우드",
20
+ "legend.architecture.security": "보안",
21
+ "legend.architecture.messagebus": "메시지 버스",
22
+ "legend.architecture.external": "외부",
23
+ "legend.workflow.frontend": "사용자 UI",
24
+ "legend.workflow.backend": "Agent 로직",
25
+ "legend.workflow.security": "정책",
26
+ "legend.workflow.messagebus": "도구 실행",
27
+ "legend.workflow.database": "컨텍스트 / 추적",
28
+ "legend.workflow.cloud": "클라우드 서비스",
29
+ "legend.workflow.external": "외부 시스템",
30
+ "legend.sequence.emphasis": "주요 요청",
31
+ "legend.sequence.return": "반환",
32
+ "legend.sequence.security": "보안",
33
+ "legend.sequence.dashed": "비동기 추적",
34
+ "legend.sequence.default": "메시지",
35
+ "legend.dataflow.emphasis": "주요 데이터",
36
+ "legend.dataflow.security": "정책 / PII",
37
+ "legend.dataflow.dashed": "비동기 배치",
38
+ "legend.dataflow.database": "데이터 저장소",
39
+ "legend.dataflow.default": "데이터 흐름",
40
+ "legend.lifecycle.start": "초기 상태",
41
+ "legend.lifecycle.active": "활성",
42
+ "legend.lifecycle.waiting": "대기",
43
+ "legend.lifecycle.decision": "판단",
44
+ "legend.lifecycle.success": "성공",
45
+ "legend.lifecycle.failure": "실패 / 종료",
46
+ "legend.lifecycle.neutral": "중립 상태",
47
+ "legend.lifecycle.external": "외부 상태",
48
+ "legend.lifecycle.final": "종료 상태",
49
+ "viewer.kind.frontend": "프런트엔드",
50
+ "viewer.kind.backend": "백엔드",
51
+ "viewer.kind.database": "데이터베이스",
52
+ "viewer.kind.cloud": "클라우드",
53
+ "viewer.kind.security": "보안",
54
+ "viewer.kind.messagebus": "메시지 버스",
55
+ "viewer.kind.external": "외부",
56
+ "viewer.kind.neutral": "중립",
57
+ "viewer.kind.node": "노드",
58
+ "viewer.kind.start": "시작",
59
+ "viewer.kind.active": "활성",
60
+ "viewer.kind.waiting": "대기",
61
+ "viewer.kind.decision": "판단",
62
+ "viewer.kind.success": "성공",
63
+ "viewer.kind.failure": "실패",
64
+ "viewer.toolbar.actions": "다이어그램 동작",
65
+ "viewer.theme.toggle.title": "테마 전환 (T)",
66
+ "viewer.theme.toggle": "색상 테마 전환",
67
+ "viewer.theme.dark": "다크",
68
+ "viewer.theme.light": "라이트",
69
+ "viewer.preset.choose.title": "시각 스타일 선택 (S로 순환)",
70
+ "viewer.preset.choose": "시각 스타일 선택",
71
+ "viewer.preset.style": "스타일",
72
+ "viewer.preset.menu": "시각 스타일",
73
+ "viewer.preset.identity": "시각적 정체성",
74
+ "viewer.preset.cycles": "S로 순환",
75
+ "viewer.preset.classic": "클래식",
76
+ "viewer.preset.classic.short": "클래식",
77
+ "viewer.preset.classic.hint": "안정적인 기술 기본 스타일",
78
+ "viewer.preset.flow": "시그널 플로우",
79
+ "viewer.preset.flow.short": "플로우",
80
+ "viewer.preset.flow.hint": "동적 흐름을 강조하는 프레젠테이션",
81
+ "viewer.preset.blueprint": "블루프린트",
82
+ "viewer.preset.blueprint.hint": "엔지니어링 리뷰용",
83
+ "viewer.preset.editorial": "에디토리얼",
84
+ "viewer.preset.editorial.hint": "발행 및 출시 노트에 적합",
85
+ "viewer.preset.badge.signalFlow": "시그널 플로우",
86
+ "viewer.preset.badge.blueprint": "블루프린트 / 개정 01",
87
+ "viewer.preset.badge.editorial": "에디토리얼 / 현장 노트",
88
+ "viewer.preset.badge.editorialPlate": "ARCHIFY / 도판 04",
89
+ "viewer.preset.current": "현재 시각 스타일: {style}. 시각 스타일 선택",
90
+ "viewer.motion.live": "동적",
91
+ "viewer.motion.still": "정적",
92
+ "viewer.motion.pause": "동작 일시정지",
93
+ "viewer.motion.resume": "동작 재개",
94
+ "viewer.motion.reduced": "동작 최소화 설정으로 인해 동작이 일시정지되었습니다",
95
+ "viewer.motion.hidden": "페이지가 보이지 않는 동안 동작이 일시정지되었습니다",
96
+ "viewer.motion.yielding": "동작 일시정지; 현재 {owner}에 양보 중",
97
+ "viewer.motion.yielding.title": "실시간 미리보기 활성화 · {owner}에 양보 중",
98
+ "viewer.owner.route": "경로 탐색",
99
+ "viewer.owner.lens": "시맨틱 렌즈",
100
+ "viewer.owner.relationship": "관계 미리보기",
101
+ "viewer.owner.intent": "의도 추적",
102
+ "viewer.owner.focus": "시맨틱 포커스",
103
+ "viewer.owner.legend": "범례 미리보기",
104
+ "viewer.owner.reader": "읽는 이의 상호작용",
105
+ "viewer.present.enter": "프레젠테이션 모드 진입",
106
+ "viewer.present.enter.title": "프레젠테이션 모드 (F)",
107
+ "viewer.present.exit": "프레젠테이션 모드 종료",
108
+ "viewer.present.exit.title": "프레젠테이션 모드 종료 (F 또는 Escape)",
109
+ "viewer.present.present": "프레젠테이션",
110
+ "viewer.present.exit.label": "종료",
111
+ "viewer.export.button": "내보내기",
112
+ "viewer.export.button.title": "다이어그램 내보내기 (E)",
113
+ "viewer.export.diagram": "다이어그램 내보내기",
114
+ "viewer.export.menu": "내보내기",
115
+ "viewer.export.subtitle": "가볍고 깔끔한 출력물",
116
+ "viewer.export.share": "공유",
117
+ "viewer.export.shareCard": "공유 카드",
118
+ "viewer.export.routeShareCard": "경로 공유 카드",
119
+ "viewer.export.reachShareCard": "도달범위 공유 카드",
120
+ "viewer.export.copyDiagram": "다이어그램 복사",
121
+ "viewer.export.clipboardPng": "PNG를 클립보드로",
122
+ "viewer.export.raster": "래스터 이미지",
123
+ "viewer.export.image": "이미지",
124
+ "viewer.export.lossless": "무손실 이미지",
125
+ "viewer.export.compact": "압축 이미지",
126
+ "viewer.export.modern": "최신 이미지 포맷",
127
+ "viewer.export.vectorMotion": "벡터 및 동작",
128
+ "viewer.export.vectorMotion.heading": "벡터 및 동작",
129
+ "viewer.export.editable": "편집 가능한 벡터",
130
+ "viewer.export.motion6s": "6초 동작",
131
+ "viewer.export.unsupported": "이 브라우저에서 지원하지 않습니다",
132
+ "viewer.export.clipboardUnsupported": "이 브라우저는 이미지 클립보드 쓰기를 지원하지 않습니다",
133
+ "viewer.export.clipboardUnsupported.short": "이 브라우저는 이미지 클립보드 쓰기를 지원하지 않습니다.",
134
+ "viewer.export.motionUnavailable": "이 브라우저에서는 동작을 캡처할 수 없습니다",
135
+ "viewer.export.webmUnavailable": "이 브라우저에서는 WebM을 사용할 수 없습니다",
136
+ "viewer.export.failed": "내보내기 실패: {message}",
137
+ "viewer.export.unknownVariant": "알 수 없는 공유 카드 유형: {variant}",
138
+ "viewer.export.routeRequired": "경로 공유 카드를 내보내려면 먼저 경로를 추적하세요",
139
+ "viewer.export.reachRequired": "도달범위 공유 카드를 내보내려면 먼저 편집된 도달범위를 추적하세요",
140
+ "viewer.export.unknown": "알 수 없음",
141
+ "viewer.export.routeFailed": "경로 공유 카드 내보내기 실패: {message}",
142
+ "viewer.export.reachFailed": "도달범위 공유 카드 내보내기 실패: {message}",
143
+ "viewer.export.copyFailed": "복사 실패: {message}",
144
+ "viewer.export.copiedPng": "PNG를 클립보드에 복사했습니다",
145
+ "viewer.export.downloadedRoute": "경로 공유 카드를 다운로드했습니다",
146
+ "viewer.export.downloadedReach": "도달범위 공유 카드를 다운로드했습니다",
147
+ "viewer.export.downloadedWebm": "WebM을 다운로드했습니다",
148
+ "viewer.export.recording": "6초 분량 동작을 녹화 중…",
149
+ "viewer.export.card.routeSummary.one": "경로: {source} → {target} · 방향성 홉 {count}개",
150
+ "viewer.export.card.routeSummary.other": "경로: {source} → {target} · 방향성 홉 {count}개",
151
+ "viewer.export.card.reachSummary": "{origin}에서 시작한 편집된 {direction} · {nodes} · {links} · 최대 {hops}",
152
+ "viewer.export.card.node.one": "노드 {count}개",
153
+ "viewer.export.card.node.other": "노드 {count}개",
154
+ "viewer.export.card.link.one": "연결 {count}개",
155
+ "viewer.export.card.link.other": "연결 {count}개",
156
+ "viewer.export.card.hop.one": "홉 {count}개",
157
+ "viewer.export.card.hop.other": "홉 {count}개",
158
+ "viewer.export.card.routeBadge": "ARCHIFY · 경로 · {hops}",
159
+ "viewer.export.card.reachBadge": "ARCHIFY · {direction} 도달범위",
160
+ "viewer.export.direction.upstream": "업스트림",
161
+ "viewer.export.direction.downstream": "다운스트림",
162
+ "viewer.export.error.canvasUnavailable": "{label}에 캔버스를 사용할 수 없습니다",
163
+ "viewer.export.error.contextUnavailable": "{label}에 2D 캔버스 컨텍스트를 만들 수 없습니다",
164
+ "viewer.export.error.toBlobUnavailable": "{label}에서 canvas.toBlob을 사용할 수 없습니다",
165
+ "viewer.export.error.toBlobNull": "{label}의 canvas.toBlob이 데이터를 반환하지 않았습니다",
166
+ "viewer.export.error.variantsCombined": "공유 카드 유형을 함께 조합할 수 없습니다",
167
+ "viewer.export.error.viewerState": "공유 카드 내보내기가 임시 뷰어 상태를 제거하지 못했습니다",
168
+ "viewer.export.error.routeState": "경로 카드 내보내기가 해석된 경로를 안전하게 보존하지 못했습니다",
169
+ "viewer.export.error.reachState": "도달범위 카드 내보내기가 편집된 도달범위를 안전하게 보존하지 못했습니다",
170
+ "viewer.export.error.webmRequirements": "WebM 동작 내보내기는 추적 애니메이션과 브라우저의 MediaRecorder 지원이 필요합니다",
171
+ "viewer.export.error.mediaRecorder": "MediaRecorder 실패",
172
+ "viewer.export.error.emptyWebm": "MediaRecorder가 빈 WebM을 생성했습니다",
173
+ "viewer.export.error.webmBackground": "WebM 내보내기용 SVG 배경을 불러오지 못했습니다",
174
+ "viewer.guide.eyebrow": "다이어그램 가이드",
175
+ "viewer.guide.close": "다이어그램 가이드 닫기",
176
+ "viewer.guide.inspecting": "컴파일된 시맨틱 구조 검사 중",
177
+ "viewer.guide.actions": "다이어그램 탐색 동작",
178
+ "viewer.guide.find": "아무 노드나 찾기",
179
+ "viewer.guide.find.hint": "라벨, 역할, 유형, 고정 ID로 검색합니다.",
180
+ "viewer.guide.route": "경로 추적",
181
+ "viewer.guide.route.aria": "방향성 경로 추적",
182
+ "viewer.guide.route.hint": "두 시맨틱 노드가 편집된 방향으로 어떻게 연결되는지 확인합니다.",
183
+ "viewer.guide.map": "전체 시스템 보기",
184
+ "viewer.guide.map.hint": "실시간 뷰포트와 고정 노드가 있는 시맨틱 레이더를 엽니다.",
185
+ "viewer.guide.lens": "시맨틱 유형 비교",
186
+ "viewer.guide.lens.hint": "역할 수를 세고, 트래픽을 표시하고, 직접 편집된 연결을 비교합니다.",
187
+ "viewer.guide.present": "프레젠테이션 모드 진입",
188
+ "viewer.guide.present.hint": "내보내기는 그대로 두고 실시간 다이어그램에 뷰포트 전체를 할애합니다.",
189
+ "viewer.guide.shortcuts": "추가 키보드 단축키",
190
+ "viewer.guide.shortcut.export": "내보내기",
191
+ "viewer.guide.shortcut.theme": "테마",
192
+ "viewer.guide.shortcut.style": "스타일",
193
+ "viewer.guide.shortcut.reset": "초기화",
194
+ "viewer.guide.shortcut.zoomIn": "확대",
195
+ "viewer.guide.shortcut.zoomOut": "축소",
196
+ "viewer.guide.shortcut.close": "닫기",
197
+ "viewer.guide.facts": "{nodes} · {relationships}",
198
+ "viewer.guide.fact.node.one": "시맨틱 노드 {count}개",
199
+ "viewer.guide.fact.node.other": "시맨틱 노드 {count}개",
200
+ "viewer.guide.fact.relationship.one": "관계 {count}개",
201
+ "viewer.guide.fact.relationship.other": "관계 {count}개",
202
+ "viewer.guide.open": "다이어그램 가이드 열기",
203
+ "viewer.finder.title": "노드 찾기",
204
+ "viewer.finder.close": "노드 찾기 닫기",
205
+ "viewer.finder.placeholder": "라벨 또는 ID로 검색",
206
+ "viewer.finder.search": "다이어그램 노드 검색",
207
+ "viewer.finder.results": "다이어그램 노드",
208
+ "viewer.finder.empty": "일치하는 노드가 없습니다",
209
+ "viewer.finder.result.focus": "{label} 포커스",
210
+ "viewer.finder.result.routeStart": "{label}을(를) 경로 시작점으로 선택",
211
+ "viewer.finder.result.routeTarget": "{label}을(를) 경로 도착점으로 선택, {links}",
212
+ "viewer.finder.status.empty": "일치하는 노드가 없습니다",
213
+ "viewer.finder.status.count.one": "일치하는 노드 {count}개",
214
+ "viewer.finder.status.count.other": "일치하는 노드 {count}개",
215
+ "viewer.finder.noun.nodes": "노드",
216
+ "viewer.finder.link.one": "연결 {count}개",
217
+ "viewer.finder.link.other": "연결 {count}개",
218
+ "viewer.finder.result.focus.one": "{label} 포커스, 관련 연결 {count}개",
219
+ "viewer.finder.result.focus.other": "{label} 포커스, 관련 연결 {count}개",
220
+ "viewer.finder.status.filtered": "{noun} {available}개 중 {visible}개",
221
+ "viewer.finder.status.all": "{noun} {available}개",
222
+ "viewer.passport.eyebrow": "시맨틱 패스포트",
223
+ "viewer.passport.metadata": "노드 메타데이터",
224
+ "viewer.passport.evidence": "검증된 소스 근거",
225
+ "viewer.passport.verified": "검증된 소스",
226
+ "viewer.passport.verificationScope": "고정된 리비전 기준 로컬 Git으로 검증했습니다. 원격 접근 권한은 확인하지 않았습니다.",
227
+ "viewer.passport.reach": "편집된 도달범위",
228
+ "viewer.passport.reach.trace": "편집된 도달가능성 추적",
229
+ "viewer.passport.upstream": "업스트림",
230
+ "viewer.passport.downstream": "다운스트림",
231
+ "viewer.passport.upstream.trace": "업스트림 편집 도달가능성 추적",
232
+ "viewer.passport.downstream.trace": "다운스트림 편집 도달가능성 추적",
233
+ "viewer.passport.close": "시맨틱 패스포트 닫기",
234
+ "viewer.passport.copy": "링크 복사",
235
+ "viewer.passport.copy.focus": "포커스된 노드의 링크 복사",
236
+ "viewer.passport.relations": "관계",
237
+ "viewer.passport.relations.show": "연결된 관계 표시",
238
+ "viewer.passport.relations.hide": "연결된 관계 숨기기",
239
+ "viewer.passport.relations.list": "연결된 관계",
240
+ "viewer.passport.copyRelation": "관계 복사",
241
+ "viewer.passport.copyNode": "노드 복사",
242
+ "viewer.passport.copyPinned": "고정된 관계의 링크 복사",
243
+ "viewer.passport.copySource": "소스 노드의 링크 복사",
244
+ "viewer.passport.copy.focused.success": "포커스된 노드 링크를 복사했습니다",
245
+ "viewer.passport.copy.pinned.success": "고정된 관계 링크를 복사했습니다",
246
+ "viewer.passport.copy.focused.failed": "포커스된 노드 링크를 복사할 수 없습니다",
247
+ "viewer.passport.copy.pinned.failed": "고정된 관계 링크를 복사할 수 없습니다",
248
+ "viewer.passport.relationship.none": "연결된 관계가 없습니다",
249
+ "viewer.passport.relationship.count.one": "관계 {count}개",
250
+ "viewer.passport.relationship.count.other": "관계 {count}개",
251
+ "viewer.passport.relationship.show.one": "연결된 관계 {count}개 표시",
252
+ "viewer.passport.relationship.show.other": "연결된 관계 {count}개 표시",
253
+ "viewer.passport.relationship.summary": "출향 {out}개 · 입향 {in}개{loops}",
254
+ "viewer.passport.relationship.loops": " · 자기순환 {count}개",
255
+ "viewer.passport.relationship.explorer": "직접 관계 탐색기",
256
+ "viewer.passport.relationship.help": "방향키로 관계를 탐색하세요. Enter 또는 Space로 상세정보를 고정하고, Escape로 지웁니다.",
257
+ "viewer.passport.relationship.loopsBack": "되돌아옴",
258
+ "viewer.passport.relationship.connectsTo": "연결 대상",
259
+ "viewer.passport.relationship.connectsFrom": "연결 출처",
260
+ "viewer.passport.relationship.pinned": "고정된 관계 · {from} → {to} · {label}",
261
+ "viewer.passport.relationship.inspect": "{total}개 중 {index}번 관계 검사: {from}에서 {to}로, {label}. Enter로 상세정보 확인.",
262
+ "viewer.passport.relationship.group.out": "출향",
263
+ "viewer.passport.relationship.group.in": "입향",
264
+ "viewer.passport.relationship.group.loop": "자기순환",
265
+ "viewer.passport.relationship.row": "{group}: {relationship}, {neighbor}",
266
+ "viewer.passport.relationship.direction.out": "출 →",
267
+ "viewer.passport.relationship.direction.in": "← 입",
268
+ "viewer.passport.relationship.direction.loop": "순환",
269
+ "viewer.passport.sourceCount.one": "검증된 소스 참조 {count}개",
270
+ "viewer.passport.sourceCount.other": "검증된 소스 참조 {count}개",
271
+ "viewer.passport.sourceMarker": "출처",
272
+ "viewer.passport.beacon.one": "검증된 소스 {count}개; 이 노드를 포커스하여 확인",
273
+ "viewer.passport.beacon.other": "검증된 소스 {count}개; 이 노드를 포커스하여 확인",
274
+ "viewer.passport.repository.open": "검증된 저장소 리비전 {revision} 열기",
275
+ "viewer.passport.source.open": "리비전 {revision}의 검증된 소스 {path} 열기",
276
+ "viewer.passport.source.openLink": "열기 ↗",
277
+ "viewer.passport.reach.upstream.one": "업스트림 편집 노드 {count}개 추적",
278
+ "viewer.passport.reach.upstream.other": "업스트림 편집 노드 {count}개 추적",
279
+ "viewer.passport.reach.downstream.one": "다운스트림 편집 노드 {count}개 추적",
280
+ "viewer.passport.reach.downstream.other": "다운스트림 편집 노드 {count}개 추적",
281
+ "viewer.passport.reach.noUpstream": "업스트림 편집 노드가 없습니다",
282
+ "viewer.passport.reach.noDownstream": "다운스트림 편집 노드가 없습니다",
283
+ "viewer.passport.reach.status": "{direction} · 노드 {nodes}개 · 연결 {links}개 · 최대 {hops}홉",
284
+ "viewer.route.eyebrow": "경로 탐색",
285
+ "viewer.route.start": "시작 노드 선택",
286
+ "viewer.route.start.find": "시작점 찾기",
287
+ "viewer.route.start.find.aria": "경로 시작점 찾기",
288
+ "viewer.route.copy": "링크 복사",
289
+ "viewer.route.copy.aria": "추적된 경로의 링크 복사",
290
+ "viewer.route.clear": "지우기",
291
+ "viewer.route.clear.aria": "경로 탐색 지우기",
292
+ "viewer.route.traced": "추적된 경로",
293
+ "viewer.route.pickTwo": "다이어그램에서 시맨틱 노드 두 개를 선택하세요",
294
+ "viewer.route.pickOne": "다이어그램에서 시맨틱 노드 하나를 선택하세요",
295
+ "viewer.route.controls": "경로 이동 제어",
296
+ "viewer.route.previous": "이전 경로 위치",
297
+ "viewer.route.play": "경로 이동 재생",
298
+ "viewer.route.pause": "경로 이동 일시정지",
299
+ "viewer.route.replay": "경로 이동 다시 재생",
300
+ "viewer.route.next": "다음 경로 위치",
301
+ "viewer.route.journey": "이동 경로",
302
+ "viewer.route.pause.label": "일시정지",
303
+ "viewer.route.replay.label": "다시 재생",
304
+ "viewer.route.overview": "개요",
305
+ "viewer.route.overview.aria": "전체 경로 개요 표시",
306
+ "viewer.route.instructions": "출발지를 먼저 선택한 뒤 도착지를 선택하세요. 방향이 중요합니다.",
307
+ "viewer.route.destination": "{label}에서 출발할 도착지 선택",
308
+ "viewer.route.destination.find": "도착지 찾기",
309
+ "viewer.route.destination.find.aria": "도달 가능한 경로 도착지 찾기",
310
+ "viewer.route.differentDestination": "다른 도착지 선택",
311
+ "viewer.route.distinct": "경로에는 서로 다른 시맨틱 노드 두 개가 필요합니다.",
312
+ "viewer.route.unreachable": "{label}(으)로 가는 방향성 경로가 없습니다",
313
+ "viewer.route.unreachable.detail": "{source}에서 {target}에 도달할 수 없습니다. 강조 표시된 도착지를 선택하세요.",
314
+ "viewer.route.start.instructions": "출발지를 선택하세요. 다음 단계에서는 방향성으로 도달 가능한 도착지만 표시됩니다.",
315
+ "viewer.route.copy.success": "추적된 경로 링크를 복사했습니다",
316
+ "viewer.route.copy.failed": "경로 링크를 복사할 수 없습니다",
317
+ "viewer.route.position": "경로 위치 {total}개 중 {index}번: {label}",
318
+ "viewer.route.step": "{total}단계 중 {index}단계 · {phase} · {label}",
319
+ "viewer.route.motionRequired": "자동 이동에는 동적 모드가 필요합니다",
320
+ "viewer.route.trigger.clear": "추적된 경로 지우기",
321
+ "viewer.route.overview.status": "{nodes} · {hops} · 최단 편집 경로",
322
+ "viewer.route.overview.node.one": "노드 {count}개",
323
+ "viewer.route.overview.node.other": "노드 {count}개",
324
+ "viewer.route.overview.hop.one": "방향성 홉 {count}개",
325
+ "viewer.route.overview.hop.other": "방향성 홉 {count}개",
326
+ "viewer.route.phase.playing": "재생 중",
327
+ "viewer.route.phase.complete": "완료됨",
328
+ "viewer.route.phase.inspecting": "검사 중",
329
+ "viewer.route.destination.count.one": "방향성 도착지 {count}개 사용 가능. 강조 표시된 노드를 선택하세요.",
330
+ "viewer.route.destination.count.other": "방향성 도착지 {count}개 사용 가능. 강조 표시된 노드를 선택하세요.",
331
+ "viewer.route.noOutgoing": "여기서 시작하는 출향 경로가 없습니다. 지우고 다른 출발지를 선택하세요.",
332
+ "viewer.route.result.title": "{source}에서 {target}까지",
333
+ "viewer.route.finder.source.title": "경로 시작점 선택",
334
+ "viewer.route.finder.source.placeholder": "경로 출발지 검색",
335
+ "viewer.route.finder.source.empty": "일치하는 경로 출발지가 없습니다",
336
+ "viewer.route.finder.source.results": "경로를 시작할 수 있는 노드",
337
+ "viewer.route.finder.source.noun": "경로 출발지",
338
+ "viewer.route.finder.source.badge": "시작",
339
+ "viewer.route.finder.target.title": "{label}에서 출발할 도착지",
340
+ "viewer.route.finder.target.placeholder": "도달 가능한 도착지 검색",
341
+ "viewer.route.finder.target.empty": "일치하는 도달 가능한 도착지가 없습니다",
342
+ "viewer.route.finder.target.results": "도달 가능한 경로 도착지",
343
+ "viewer.route.finder.target.noun": "도달 가능한 도착지",
344
+ "viewer.route.hop.one": "홉 {count}개",
345
+ "viewer.route.hop.other": "홉 {count}개",
346
+ "viewer.lens.eyebrow": "시맨틱 렌즈",
347
+ "viewer.lens.title": "시스템 역할 비교",
348
+ "viewer.lens.close": "시맨틱 렌즈 닫기",
349
+ "viewer.lens.instruction": "시맨틱 유형을 최대 두 개까지 선택하세요. 하나를 선택하면 실제 트래픽을 표시하고, 두 개를 선택하면 직접 편집된 관계만 비교합니다.",
350
+ "viewer.lens.kinds": "시맨틱 유형",
351
+ "viewer.lens.choose": "유형을 선택해 해당 노드와 연결된 관계를 확인하세요.",
352
+ "viewer.lens.copy": "시맨틱 렌즈 링크 복사",
353
+ "viewer.lens.clear": "시맨틱 렌즈 지우기",
354
+ "viewer.lens.open": "시맨틱 렌즈 열기",
355
+ "viewer.lens.openActive": "활성 시맨틱 렌즈 열기",
356
+ "viewer.lens.legend": "시맨틱 범례",
357
+ "viewer.lens.legend.inspect.one": "{label} 검사, 노드 {count}개",
358
+ "viewer.lens.legend.inspect.other": "{label} 검사, 노드 {count}개",
359
+ "viewer.lens.kind.count.one": "{label}, 노드 {count}개",
360
+ "viewer.lens.kind.count.other": "{label}, 노드 {count}개",
361
+ "viewer.lens.compare.one": "{first} → {second}: {forward} · {second} → {first}: {reverse} · 직접 관계 {count}개",
362
+ "viewer.lens.compare.other": "{first} → {second}: {forward} · {second} → {first}: {reverse} · 직접 관계 {count}개",
363
+ "viewer.lens.single": "{nodes} · {relationships} · 연결된 주변 노드는 계속 표시됩니다",
364
+ "viewer.lens.node.one": "{label} 노드 {count}개",
365
+ "viewer.lens.node.other": "{label} 노드 {count}개",
366
+ "viewer.lens.relationship.one": "연결된 관계 {count}개",
367
+ "viewer.lens.relationship.other": "연결된 관계 {count}개",
368
+ "viewer.radar.title": "시맨틱 레이더",
369
+ "viewer.radar.building": "개요 구성 중",
370
+ "viewer.radar.openFull": "전체 시맨틱 레이더 열기",
371
+ "viewer.radar.open": "레이더 열기",
372
+ "viewer.radar.close": "시맨틱 레이더 닫기",
373
+ "viewer.radar.surface": "다이어그램 개요입니다. 노드를 클릭해 포커스하거나 방향키로 이동하세요.",
374
+ "viewer.radar.click": "노드 클릭",
375
+ "viewer.radar.drag": "드래그로 이동",
376
+ "viewer.radar.space": "시맨틱 레이더를 표시하려면 지도 공간이 더 필요합니다.",
377
+ "viewer.radar.nodes": "시맨틱 다이어그램 레이더 노드",
378
+ "viewer.radar.focus": "시맨틱 레이더에서 {label} 포커스",
379
+ "viewer.radar.status": "노드 {count}개 · {viewport}",
380
+ "viewer.radar.fullMap": "노드 {count}개 · 전체 지도",
381
+ "viewer.radar.compacted": "시맨틱 패스포트나 지도 컨트롤을 가리지 않도록 레이더를 축소했습니다.",
382
+ "viewer.radar.cancelWaiting": "지도 공간 확보를 기다리는 시맨틱 레이더 취소",
383
+ "viewer.radar.needsSpace": "시맨틱 레이더를 표시하려면 지도 공간이 더 필요합니다",
384
+ "viewer.radar.viewport.full": "전체 지도",
385
+ "viewer.radar.viewport.width": "너비 {percent}%",
386
+ "viewer.radar.viewport.scale": "뷰포트 {percent}%",
387
+ "viewer.nav.controls": "다이어그램 보기 제어",
388
+ "viewer.nav.route": "방향성 경로 추적",
389
+ "viewer.nav.route.title": "경로 추적 (R)",
390
+ "viewer.nav.route.short": "경로",
391
+ "viewer.nav.radar": "시맨틱 레이더 열기",
392
+ "viewer.nav.radar.title": "시맨틱 레이더 (M)",
393
+ "viewer.nav.radar.short": "지도",
394
+ "viewer.nav.lens": "시맨틱 렌즈 열기",
395
+ "viewer.nav.lens.title": "시맨틱 렌즈 (L)",
396
+ "viewer.nav.lens.short": "렌즈",
397
+ "viewer.nav.find": "노드 찾기",
398
+ "viewer.nav.find.title": "노드 찾기 (/)",
399
+ "viewer.nav.guide": "다이어그램 가이드 열기",
400
+ "viewer.nav.guide.title": "다이어그램 가이드 (?)",
401
+ "viewer.nav.zoomOut": "축소",
402
+ "viewer.nav.zoomOut.title": "축소 (-)",
403
+ "viewer.nav.reset": "다이어그램 보기 초기화",
404
+ "viewer.nav.reset.title": "보기 초기화 (0)",
405
+ "viewer.nav.read": "읽기",
406
+ "viewer.nav.zoomIn": "확대",
407
+ "viewer.nav.zoomIn.title": "확대 (+)",
408
+ "viewer.nav.camera": "{hint}. 다이어그램 보기 초기화",
409
+ "viewer.nav.camera.title": "{semantic}{hint} · 보기 초기화 (0)",
410
+ "viewer.nav.camera.semantic": "시맨틱 카메라 활성 · ",
411
+ "viewer.nav.level.map": "개요",
412
+ "viewer.nav.level.read": "읽기",
413
+ "viewer.nav.level.full": "전체",
414
+ "viewer.nav.level.auto": "자동",
415
+ "viewer.nav.detail.map": "확대하면 관계 라벨과 노드 컨텍스트가 표시됩니다",
416
+ "viewer.nav.detail.read": "다시 확대하면 태그와 주석이 표시됩니다",
417
+ "viewer.nav.detail.full": "다이어그램 전체 상세정보",
418
+ "viewer.intent.summary": "{label}. 출향 {out}개, 입향 {in}개{loops}. 연결 총 {total}개. Enter로 상세정보 확인.",
419
+ "viewer.intent.loops": ", 자기순환 {count}개",
420
+ "viewer.common.copied": "복사됨",
421
+ "viewer.common.copyFailed": "복사 실패",
422
+ "viewer.common.copyLink": "링크 복사",
423
+ "viewer.common.clear": "지우기",
424
+ "viewer.common.close": "닫기",
425
+ "viewer.export.svg.auto": "SVG · 자동",
426
+ "viewer.export.svg.auto.hint": "호스트 테마에 맞춤",
427
+ "viewer.export.svg.light": "SVG · 라이트",
428
+ "viewer.export.svg.light.hint": "항상 라이트 테마",
429
+ "viewer.export.svg.dark": "SVG · 다크",
430
+ "viewer.export.svg.dark.hint": "항상 다크 테마",
431
+ "viewer.guide.title": "이 시스템 살펴보기",
432
+ "viewer.focus.selectedNodes": "선택한 노드 {count}개",
433
+ "viewer.passport.move": "의미 정보 패널 이동. 드래그하거나 화살표 키를 사용하고, Home 키로 초기화하세요.",
434
+ "viewer.outline.title": "노드 목록",
435
+ "viewer.rail.show": "설명 및 목록",
436
+ "viewer.rail.controls": "측면 패널",
437
+ "viewer.rail.collapse": "측면 패널 접기",
438
+ "viewer.rail.bottom": "패널을 다이어그램 아래로 이동",
439
+ "viewer.rail.right": "패널을 다이어그램 옆으로 이동"
440
+ }