codex-agent-view 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.
- package/.agents/plugins/marketplace.json +20 -0
- package/.codex-plugin/plugin.json +34 -0
- package/LICENSE +202 -0
- package/NOTICE +2 -0
- package/README.md +327 -0
- package/assets/logo-dark.svg +13 -0
- package/assets/logo.svg +13 -0
- package/bin/codex-agent-view.mjs +489 -0
- package/hooks/hooks.json +62 -0
- package/package.json +59 -0
- package/public/app.js +637 -0
- package/public/index.html +137 -0
- package/public/styles.css +821 -0
- package/scripts/capture-hook.mjs +143 -0
- package/scripts/send-hook.mjs +64 -0
- package/skills/codex-agent-view/SKILL.md +21 -0
- package/src/core/index.mjs +3 -0
- package/src/core/monitor-store.mjs +332 -0
- package/src/core/normalize-hook-payload.mjs +146 -0
- package/src/runtime/config.mjs +111 -0
- package/src/runtime/server.mjs +203 -0
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="ko">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
6
|
+
<meta name="color-scheme" content="light dark">
|
|
7
|
+
<meta
|
|
8
|
+
name="description"
|
|
9
|
+
content="공식 Codex 앱의 부모 task와 subagent 상태를 로컬에서 읽기 전용으로 확인합니다."
|
|
10
|
+
>
|
|
11
|
+
<title>Codex Agent View</title>
|
|
12
|
+
<link rel="stylesheet" href="/assets/styles.css">
|
|
13
|
+
<script src="/assets/app.js" defer></script>
|
|
14
|
+
</head>
|
|
15
|
+
<body>
|
|
16
|
+
<a class="skip-link" href="#main-content">본문으로 건너뛰기</a>
|
|
17
|
+
|
|
18
|
+
<div class="app-shell">
|
|
19
|
+
<header class="topbar">
|
|
20
|
+
<a class="brand" href="/" aria-label="Codex Agent View 홈">
|
|
21
|
+
<span class="brand-mark" aria-hidden="true">CA</span>
|
|
22
|
+
<span>
|
|
23
|
+
<strong>Codex Agent View</strong>
|
|
24
|
+
<small>Local companion monitor</small>
|
|
25
|
+
</span>
|
|
26
|
+
</a>
|
|
27
|
+
|
|
28
|
+
<div
|
|
29
|
+
class="connection-pill"
|
|
30
|
+
id="connection-status"
|
|
31
|
+
data-status="connecting"
|
|
32
|
+
role="status"
|
|
33
|
+
aria-live="polite"
|
|
34
|
+
aria-atomic="true"
|
|
35
|
+
>
|
|
36
|
+
<span class="connection-dot" aria-hidden="true"></span>
|
|
37
|
+
<span id="connection-label">로컬 상태 연결 중</span>
|
|
38
|
+
</div>
|
|
39
|
+
</header>
|
|
40
|
+
|
|
41
|
+
<main id="main-content" tabindex="-1">
|
|
42
|
+
<section class="hero" aria-labelledby="page-title">
|
|
43
|
+
<div>
|
|
44
|
+
<p class="eyebrow">LOCAL · READ ONLY</p>
|
|
45
|
+
<h1 id="page-title">작업 흐름을 한눈에</h1>
|
|
46
|
+
<p class="hero-copy">
|
|
47
|
+
공식 Codex 앱은 그대로 두고, 부모 task와 subagent의 현재 상태만
|
|
48
|
+
로컬에서 확인합니다.
|
|
49
|
+
</p>
|
|
50
|
+
</div>
|
|
51
|
+
|
|
52
|
+
<dl class="freshness" aria-label="상태 갱신 정보">
|
|
53
|
+
<div>
|
|
54
|
+
<dt>마지막 갱신</dt>
|
|
55
|
+
<dd id="last-updated">아직 없음</dd>
|
|
56
|
+
</div>
|
|
57
|
+
<div>
|
|
58
|
+
<dt>갱신 주기</dt>
|
|
59
|
+
<dd>2초</dd>
|
|
60
|
+
</div>
|
|
61
|
+
</dl>
|
|
62
|
+
</section>
|
|
63
|
+
|
|
64
|
+
<section class="metrics" aria-label="작업 상태 요약">
|
|
65
|
+
<article class="metric-card">
|
|
66
|
+
<p>부모 task</p>
|
|
67
|
+
<strong id="metric-sessions">0</strong>
|
|
68
|
+
<span>현재 관찰 중</span>
|
|
69
|
+
</article>
|
|
70
|
+
<article class="metric-card metric-running">
|
|
71
|
+
<p>실행 중 agent</p>
|
|
72
|
+
<strong id="metric-running">0</strong>
|
|
73
|
+
<span>작업 수행 중</span>
|
|
74
|
+
</article>
|
|
75
|
+
<article class="metric-card metric-waiting">
|
|
76
|
+
<p>대기 상태</p>
|
|
77
|
+
<strong id="metric-waiting">0</strong>
|
|
78
|
+
<span>사용자 또는 다음 작업 대기</span>
|
|
79
|
+
</article>
|
|
80
|
+
<article class="metric-card metric-completed">
|
|
81
|
+
<p>완료 agent</p>
|
|
82
|
+
<strong id="metric-completed">0</strong>
|
|
83
|
+
<span>현재 snapshot 기준</span>
|
|
84
|
+
</article>
|
|
85
|
+
</section>
|
|
86
|
+
|
|
87
|
+
<section class="workspace" aria-labelledby="sessions-heading">
|
|
88
|
+
<div class="section-heading">
|
|
89
|
+
<div>
|
|
90
|
+
<p class="eyebrow">LIVE SESSIONS</p>
|
|
91
|
+
<h2 id="sessions-heading">부모 task와 subagent</h2>
|
|
92
|
+
</div>
|
|
93
|
+
<p id="results-summary" class="results-summary" role="status" aria-live="polite">
|
|
94
|
+
상태를 불러오는 중입니다.
|
|
95
|
+
</p>
|
|
96
|
+
</div>
|
|
97
|
+
|
|
98
|
+
<form class="toolbar" role="search" aria-label="task와 subagent 검색 및 필터">
|
|
99
|
+
<div class="field field-search">
|
|
100
|
+
<label for="session-search">검색</label>
|
|
101
|
+
<input
|
|
102
|
+
id="session-search"
|
|
103
|
+
name="query"
|
|
104
|
+
type="search"
|
|
105
|
+
placeholder="Session ID, agent ID, 유형 또는 event"
|
|
106
|
+
autocomplete="off"
|
|
107
|
+
spellcheck="false"
|
|
108
|
+
>
|
|
109
|
+
</div>
|
|
110
|
+
<div class="field">
|
|
111
|
+
<label for="status-filter">상태</label>
|
|
112
|
+
<select id="status-filter" name="status">
|
|
113
|
+
<option value="all">모든 상태</option>
|
|
114
|
+
<option value="running">실행 중</option>
|
|
115
|
+
<option value="waiting">대기</option>
|
|
116
|
+
<option value="completed">완료</option>
|
|
117
|
+
<option value="unknown">알 수 없음</option>
|
|
118
|
+
</select>
|
|
119
|
+
</div>
|
|
120
|
+
</form>
|
|
121
|
+
|
|
122
|
+
<div id="state-message" class="state-message" role="status" aria-live="polite">
|
|
123
|
+
<strong>상태를 불러오는 중입니다.</strong>
|
|
124
|
+
<span>로컬 monitor에 연결하고 있습니다.</span>
|
|
125
|
+
</div>
|
|
126
|
+
|
|
127
|
+
<ul id="session-list" class="session-list" aria-label="Codex 부모 task 목록" hidden></ul>
|
|
128
|
+
</section>
|
|
129
|
+
</main>
|
|
130
|
+
|
|
131
|
+
<footer>
|
|
132
|
+
<p>이 화면은 prompt와 tool input을 표시하지 않습니다.</p>
|
|
133
|
+
<p>데이터는 이 기기의 로컬 monitor에서만 읽습니다.</p>
|
|
134
|
+
</footer>
|
|
135
|
+
</div>
|
|
136
|
+
</body>
|
|
137
|
+
</html>
|