huddle60 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.
- package/README.md +231 -2
- package/dist/action.js +1601 -0
- package/dist/action.js.map +7 -0
- package/dist/cli.js +3180 -0
- package/dist/cli.js.map +7 -0
- package/package.json +43 -3
- package/templates/.github/ISSUE_TEMPLATE/config.yml +1 -0
- package/templates/.github/ISSUE_TEMPLATE/epic.yml +35 -0
- package/templates/.github/ISSUE_TEMPLATE/request.yml +18 -0
- package/templates/.github/ISSUE_TEMPLATE/story.yml +45 -0
- package/templates/.github/ISSUE_TEMPLATE/task.yml +43 -0
- package/templates/.github/PULL_REQUEST_TEMPLATE.md +12 -0
- package/templates/.github/huddle60/policy.yml +38 -0
- package/templates/.github/workflows/huddle60.yml +26 -0
- package/templates/AGENTS.md +12 -0
- package/ui/app.js +785 -0
- package/ui/favicon.svg +1 -0
- package/ui/index.html +145 -0
- package/ui/styles.css +873 -0
package/ui/favicon.svg
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><rect width="32" height="32" rx="6" fill="#0b0e14"/><path d="M8 10l6 6-6 6" stroke="#5eead4" stroke-width="3" fill="none" stroke-linecap="round" stroke-linejoin="round"/><rect x="16" y="20" width="9" height="3" rx="1" fill="#5eead4"/></svg>
|
package/ui/index.html
ADDED
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="vi">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
6
|
+
<title>huddle60</title>
|
|
7
|
+
<link rel="icon" href="/favicon.svg" type="image/svg+xml" />
|
|
8
|
+
<link rel="stylesheet" href="/styles.css" />
|
|
9
|
+
<script type="module" src="/app.js"></script>
|
|
10
|
+
</head>
|
|
11
|
+
<body>
|
|
12
|
+
<header class="topbar">
|
|
13
|
+
<div class="brand">
|
|
14
|
+
<span class="prompt">></span> huddle60<span class="cursor">_</span>
|
|
15
|
+
<a id="repo" class="repo" target="_blank" rel="noopener noreferrer"></a>
|
|
16
|
+
</div>
|
|
17
|
+
<nav class="tabs" role="tablist">
|
|
18
|
+
<button class="tab active" data-view="items" role="tab">Công việc</button>
|
|
19
|
+
<button class="tab" data-view="plan" role="tab">Lập kế hoạch</button>
|
|
20
|
+
</nav>
|
|
21
|
+
<div class="who">
|
|
22
|
+
<span id="planner-status" class="dot" title="planner"></span>
|
|
23
|
+
<span id="viewer"></span>
|
|
24
|
+
<span id="roles"></span>
|
|
25
|
+
</div>
|
|
26
|
+
</header>
|
|
27
|
+
|
|
28
|
+
<main>
|
|
29
|
+
<section id="view-items" class="view">
|
|
30
|
+
<div class="toolbar">
|
|
31
|
+
<div class="filters" id="filters">
|
|
32
|
+
<button class="chip active" data-filter="mine">Cần xử lý</button>
|
|
33
|
+
<button class="chip" data-filter="all">Tất cả</button>
|
|
34
|
+
<button class="chip" data-filter="awaiting-approval">Chờ PO duyệt</button>
|
|
35
|
+
<button class="chip" data-filter="awaiting-ready">Chờ DEV xác nhận</button>
|
|
36
|
+
<button class="chip" data-filter="in-progress">Đang triển khai</button>
|
|
37
|
+
</div>
|
|
38
|
+
<input
|
|
39
|
+
id="search"
|
|
40
|
+
class="search"
|
|
41
|
+
type="search"
|
|
42
|
+
placeholder="Tìm theo mã hoặc tiêu đề"
|
|
43
|
+
aria-label="Tìm công việc"
|
|
44
|
+
/>
|
|
45
|
+
<button id="refresh" class="btn ghost" title="Tải lại">↻ Tải lại</button>
|
|
46
|
+
</div>
|
|
47
|
+
<div class="table-wrap">
|
|
48
|
+
<table class="items">
|
|
49
|
+
<thead>
|
|
50
|
+
<tr>
|
|
51
|
+
<th class="num">#</th>
|
|
52
|
+
<th>Loại</th>
|
|
53
|
+
<th>Tiêu đề</th>
|
|
54
|
+
<th>Trạng thái</th>
|
|
55
|
+
<th>Xác nhận</th>
|
|
56
|
+
<th class="actions-col">Thao tác</th>
|
|
57
|
+
</tr>
|
|
58
|
+
</thead>
|
|
59
|
+
<tbody id="items-body"></tbody>
|
|
60
|
+
</table>
|
|
61
|
+
<p id="items-empty" class="empty" hidden></p>
|
|
62
|
+
</div>
|
|
63
|
+
</section>
|
|
64
|
+
|
|
65
|
+
<section id="view-plan" class="view" hidden>
|
|
66
|
+
<div class="plan-grid">
|
|
67
|
+
<form id="plan-form" class="card">
|
|
68
|
+
<h2><span class="muted">01</span> Yêu cầu</h2>
|
|
69
|
+
<label for="plan-title">Tiêu đề <span class="muted">(tùy chọn)</span></label>
|
|
70
|
+
<input
|
|
71
|
+
id="plan-title"
|
|
72
|
+
maxlength="120"
|
|
73
|
+
placeholder="Đăng nhập bằng Google cho khách hàng"
|
|
74
|
+
/>
|
|
75
|
+
<label for="plan-request">Mô tả</label>
|
|
76
|
+
<textarea
|
|
77
|
+
id="plan-request"
|
|
78
|
+
rows="12"
|
|
79
|
+
maxlength="20000"
|
|
80
|
+
placeholder="Mục tiêu, người dùng, phạm vi và ràng buộc"
|
|
81
|
+
></textarea>
|
|
82
|
+
<div class="row">
|
|
83
|
+
<button id="plan-generate" class="btn primary" type="submit">Tạo kế hoạch</button>
|
|
84
|
+
<span id="plan-hint" class="muted small"></span>
|
|
85
|
+
</div>
|
|
86
|
+
</form>
|
|
87
|
+
|
|
88
|
+
<div id="plan-result" class="card" hidden>
|
|
89
|
+
<h2><span class="muted">02</span> Kế hoạch đề xuất</h2>
|
|
90
|
+
<p id="plan-summary" class="summary"></p>
|
|
91
|
+
<div id="plan-blocking" class="callout danger" hidden>
|
|
92
|
+
<strong>Cần làm rõ</strong>
|
|
93
|
+
<ul></ul>
|
|
94
|
+
</div>
|
|
95
|
+
<div id="plan-tree" class="tree"></div>
|
|
96
|
+
<details id="plan-questions">
|
|
97
|
+
<summary>Thông tin bổ sung</summary>
|
|
98
|
+
<h3>Câu hỏi mở</h3>
|
|
99
|
+
<ul id="plan-open"></ul>
|
|
100
|
+
<h3>Giả định</h3>
|
|
101
|
+
<ul id="plan-assumptions"></ul>
|
|
102
|
+
<h3>Nội dung đã làm rõ</h3>
|
|
103
|
+
<ul id="plan-clarifications"></ul>
|
|
104
|
+
</details>
|
|
105
|
+
<form id="refine-form" class="refine">
|
|
106
|
+
<label for="refine-text">Phản hồi</label>
|
|
107
|
+
<textarea id="refine-text" rows="3" maxlength="5000"></textarea>
|
|
108
|
+
<div class="row">
|
|
109
|
+
<button id="refine-btn" class="btn" type="submit">Cập nhật kế hoạch</button>
|
|
110
|
+
<button id="create-btn" class="btn primary" type="button">Tạo Issue</button>
|
|
111
|
+
<span id="create-hint" class="muted small"></span>
|
|
112
|
+
</div>
|
|
113
|
+
</form>
|
|
114
|
+
<div id="plan-created" class="callout ok" hidden>
|
|
115
|
+
<strong>Đã tạo trên GitHub</strong>
|
|
116
|
+
<ul></ul>
|
|
117
|
+
</div>
|
|
118
|
+
</div>
|
|
119
|
+
</div>
|
|
120
|
+
</section>
|
|
121
|
+
</main>
|
|
122
|
+
|
|
123
|
+
<aside class="log">
|
|
124
|
+
<div class="log-head">
|
|
125
|
+
<span>Hoạt động</span>
|
|
126
|
+
<button id="log-clear" class="btn ghost tiny">Xóa nhật ký</button>
|
|
127
|
+
</div>
|
|
128
|
+
<ol id="log"></ol>
|
|
129
|
+
</aside>
|
|
130
|
+
|
|
131
|
+
<dialog id="dialog">
|
|
132
|
+
<form method="dialog" class="dialog-inner">
|
|
133
|
+
<h2 id="dialog-title"></h2>
|
|
134
|
+
<div id="dialog-body"></div>
|
|
135
|
+
<div class="row end">
|
|
136
|
+
<button id="dialog-copy" class="btn" value="copy" type="button" hidden>Sao chép</button>
|
|
137
|
+
<button id="dialog-ok" class="btn primary" value="ok" hidden>ok</button>
|
|
138
|
+
<button class="btn ghost" value="cancel">Đóng</button>
|
|
139
|
+
</div>
|
|
140
|
+
</form>
|
|
141
|
+
</dialog>
|
|
142
|
+
|
|
143
|
+
<div id="fatal" class="fatal" hidden></div>
|
|
144
|
+
</body>
|
|
145
|
+
</html>
|