@qnote/q-ai-note 1.0.13 → 1.0.14

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.
@@ -20,9 +20,22 @@
20
20
  <ul class="nav-list">
21
21
  <li><a href="#/sandboxes" data-nav="sandboxes">沙盘</a></li>
22
22
  <li><a href="#/diaries" data-nav="diaries">日记</a></li>
23
+ <li><a href="#/tasks" data-nav="tasks">任务看板</a></li>
23
24
  <li><a href="#/changes" data-nav="changes">变化</a></li>
24
25
  <li><a href="#/settings" data-nav="settings">项目设置</a></li>
25
26
  <li><a href="#/system-settings" data-nav="system-settings">系统设置</a></li>
27
+ <li class="nav-group nav-group-collapsed" id="ai-engineering-nav-group">
28
+ <div class="nav-group-header">
29
+ <a href="#/ai-engineering" data-nav="ai-engineering">AI软件工程</a>
30
+ <button class="nav-group-toggle" id="toggle-ai-engineering-nav" type="button" aria-expanded="false" aria-controls="ai-engineering-nav-sub-list">▸</button>
31
+ </div>
32
+ <ul class="nav-sub-list" id="ai-engineering-nav-sub-list">
33
+ <li><a href="#/aser-runtime" data-nav="aser-runtime">ASER 运行时</a></li>
34
+ <li><a href="#/agent-club" data-nav="agent-club">Agent Club</a></li>
35
+ <li><a href="#/teams" data-nav="teams">Teams</a></li>
36
+ <li><a href="#/opencode-team-runner" data-nav="opencode-team-runner">OpenCode Team Runner</a></li>
37
+ </ul>
38
+ </li>
26
39
  </ul>
27
40
  </nav>
28
41
  <main class="content">
@@ -156,6 +169,7 @@
156
169
  </div>
157
170
  <div class="entity-filter-tabs" id="entity-filter-tabs">
158
171
  <button class="btn btn-secondary btn-sm active" data-entity-filter="all">全部</button>
172
+ <button class="btn btn-secondary btn-sm" data-entity-filter="todo">Todo</button>
159
173
  <button class="btn btn-secondary btn-sm" data-entity-filter="issue">Issue</button>
160
174
  <button class="btn btn-secondary btn-sm" data-entity-filter="knowledge">Knowledge</button>
161
175
  <button class="btn btn-secondary btn-sm" data-entity-filter="capability">Capability</button>
@@ -164,6 +178,7 @@
164
178
 
165
179
  <div class="drawer-create-form hidden" id="drawer-create-form">
166
180
  <select id="entity-type-select">
181
+ <option value="todo">Todo</option>
167
182
  <option value="issue">Issue</option>
168
183
  <option value="knowledge">Knowledge</option>
169
184
  <option value="capability">Capability</option>
@@ -172,6 +187,21 @@
172
187
  <div class="entity-field-group" id="entity-assignee-group">
173
188
  <input type="text" id="entity-assignee-input" placeholder="负责人(Issue可选)">
174
189
  </div>
190
+ <div class="entity-field-group hidden" id="entity-due-date-group">
191
+ <input type="date" id="entity-due-date-input">
192
+ </div>
193
+ <div class="entity-field-group hidden" id="entity-todo-date-group">
194
+ <div class="todo-form-dates">
195
+ <div>
196
+ <label for="entity-todo-planned-start-input">计划启动日期</label>
197
+ <input type="date" id="entity-todo-planned-start-input">
198
+ </div>
199
+ <div>
200
+ <label for="entity-todo-due-date-input">截止日期</label>
201
+ <input type="date" id="entity-todo-due-date-input">
202
+ </div>
203
+ </div>
204
+ </div>
175
205
  <div class="entity-field-group" id="entity-status-group">
176
206
  <select id="entity-status-select"></select>
177
207
  </div>
@@ -210,6 +240,281 @@
210
240
  </aside>
211
241
  </div>
212
242
  </div>
243
+
244
+ <div id="page-aser-runtime" class="page hidden">
245
+ <h2>ASER Runtime 子系统</h2>
246
+ <p class="aser-intro">
247
+ 独立承载 agent-native 软件工程运行时模型:event / intent / task / artifact / evaluation。
248
+ </p>
249
+ <div class="summary-strip" id="aser-runtime-summary">
250
+ <div class="summary-card">
251
+ <div class="label">项目数</div>
252
+ <div class="value" id="aser-summary-total-projects">0</div>
253
+ </div>
254
+ <div class="summary-card">
255
+ <div class="label">最近更新时间</div>
256
+ <div class="value" id="aser-summary-last-updated">-</div>
257
+ </div>
258
+ </div>
259
+ <div class="aser-layout">
260
+ <section class="aser-left-panel">
261
+ <div class="section-header">
262
+ <span>Protocol 流程</span>
263
+ <div class="aser-inline-actions">
264
+ <button class="btn btn-secondary btn-sm" id="aser-open-protocol-dialog-btn" type="button">编辑 Protocol</button>
265
+ <button class="btn btn-secondary btn-sm" id="aser-open-create-project-dialog-btn" type="button">基于流程新建 Project</button>
266
+ <button class="btn btn-secondary btn-sm" id="aser-load-complex-scenario-btn" type="button">注入复杂场景</button>
267
+ </div>
268
+ </div>
269
+ <div class="aser-form-grid">
270
+ <label for="aser-protocol-preset-select">选择流程模板(Protocol)</label>
271
+ <select id="aser-protocol-preset-select"></select>
272
+ </div>
273
+ <div class="aser-left-bottom">
274
+ <div class="section-header">
275
+ <h3>Protocol 信息</h3>
276
+ <div class="aser-inline-actions">
277
+ <label class="aser-toggle-inline" for="aser-protocol-coverage-toggle">
278
+ <input id="aser-protocol-coverage-toggle" type="checkbox" checked>
279
+ <span>渲染 Project 覆盖</span>
280
+ </label>
281
+ <button class="btn btn-secondary btn-sm active" id="aser-protocol-view-graph-btn" type="button">图形</button>
282
+ <button class="btn btn-secondary btn-sm" id="aser-protocol-view-text-btn" type="button">文字</button>
283
+ <button class="btn btn-secondary btn-sm" id="aser-protocol-expand-btn" type="button">全屏详情</button>
284
+ </div>
285
+ </div>
286
+ <div class="aser-protocol-visual" id="aser-protocol-visual"></div>
287
+ <div class="aser-protocol-flow" id="aser-protocol-flow"></div>
288
+ </div>
289
+ <div class="aser-left-bottom">
290
+ <h3>Project 列表(使用已选流程)</h3>
291
+ <div class="aser-project-list" id="aser-project-list"></div>
292
+ <div class="aser-project-list-pager" id="aser-project-list-pager"></div>
293
+ </div>
294
+ <div class="aser-left-bottom aser-project-overview" id="aser-project-overview">
295
+ <h3>Project 总览</h3>
296
+ <div class="aser-project-detail-row">
297
+ <span class="label">当前 Project</span>
298
+ <span class="value" id="aser-selected-project-title">未选择项目</span>
299
+ </div>
300
+ <div class="aser-project-detail-row">
301
+ <span class="label">描述 / 更新时间</span>
302
+ <span class="value" id="aser-selected-project-description">从左侧选择或新建一个项目。</span>
303
+ <span class="value" id="aser-selected-project-updated">-</span>
304
+ </div>
305
+ <div class="aser-project-detail-row">
306
+ <span class="label">项目状态</span>
307
+ <span class="value" id="aser-selected-project-state">-</span>
308
+ </div>
309
+ <div class="aser-project-detail-row">
310
+ <span class="label">Thread 概览</span>
311
+ <span class="value" id="aser-selected-thread-state">-</span>
312
+ </div>
313
+ </div>
314
+ </section>
315
+ <section class="aser-center-panel">
316
+ <div class="section-header">
317
+ <span>任务过程区</span>
318
+ <div class="aser-inline-actions">
319
+ <button class="btn btn-secondary btn-sm active" id="aser-view-mode-chat-btn" type="button">Chat 模式</button>
320
+ <button class="btn btn-secondary btn-sm" id="aser-view-mode-graph-btn" type="button">图形模式</button>
321
+ <button class="btn btn-secondary btn-sm" id="aser-view-mode-thread-btn" type="button">Thread 模式</button>
322
+ </div>
323
+ </div>
324
+ <div class="aser-demo-panel" id="aser-demo-panel">
325
+ <div class="aser-demo-top">
326
+ <strong id="aser-replay-title">最新状态全景</strong>
327
+ <div class="aser-inline-actions" id="aser-replay-actions">
328
+ <button class="btn btn-secondary btn-sm" id="aser-demo-start-btn" type="button">开始重放</button>
329
+ <button class="btn btn-secondary btn-sm" id="aser-demo-next-btn" type="button">下一步</button>
330
+ <button class="btn btn-secondary btn-sm" id="aser-demo-auto-btn" type="button">自动播放</button>
331
+ <button class="btn btn-secondary btn-sm" id="aser-demo-stop-btn" type="button">停止</button>
332
+ <button class="btn btn-secondary btn-sm" id="aser-demo-reset-btn" type="button">重置</button>
333
+ </div>
334
+ </div>
335
+ <div class="aser-demo-progress" id="aser-demo-progress">未开始</div>
336
+ <div class="aser-demo-progress-bar"><div class="aser-demo-progress-inner" id="aser-demo-progress-inner"></div></div>
337
+ <div class="aser-demo-steps" id="aser-demo-steps"></div>
338
+ <div class="aser-demo-logs" id="aser-demo-logs"></div>
339
+ </div>
340
+ <div class="aser-form-grid">
341
+ <h3>系统输入</h3>
342
+ <textarea id="aser-system-input" rows="3" placeholder="输入系统指令,例如:请评审支付回调重试策略;请上升发布风险到 PM"></textarea>
343
+ <div class="aser-inline-actions">
344
+ <select id="aser-run-team-select" title="选择执行团队"></select>
345
+ <button class="btn btn-secondary btn-sm" id="aser-assign-team-btn" type="button">分派给项目</button>
346
+ <button class="btn btn-secondary btn-sm" id="aser-start-run-btn" type="button">启动干活</button>
347
+ <button class="btn btn-secondary btn-sm" id="aser-submit-event-btn" type="button">提交系统输入</button>
348
+ </div>
349
+ </div>
350
+ <div class="aser-divider"></div>
351
+ <div class="aser-form-grid" id="aser-chat-process-container">
352
+ <h3>Chat 模式任务过程</h3>
353
+ <div class="aser-chat-process-list" id="aser-chat-process-list"></div>
354
+ </div>
355
+ <div class="aser-divider"></div>
356
+ <div class="aser-form-grid hidden" id="aser-graph-process-container">
357
+ <h3>图形化 Task 全局过程</h3>
358
+ <div class="aser-task-graph" id="aser-task-graph"></div>
359
+ </div>
360
+ <div class="aser-divider"></div>
361
+ <div class="aser-form-grid hidden" id="aser-thread-process-container">
362
+ <div class="section-header">
363
+ <h3>Task Thread(父子/关联线程)</h3>
364
+ <div class="aser-inline-actions">
365
+ <select id="aser-thread-filter-select">
366
+ <option value="all">全部线程</option>
367
+ <option value="blocked">仅阻塞线程</option>
368
+ <option value="loop">仅回路线程</option>
369
+ <option value="rework">仅返工线程</option>
370
+ </select>
371
+ </div>
372
+ </div>
373
+ <div class="aser-task-thread" id="aser-task-thread"></div>
374
+ </div>
375
+ <div class="aser-divider"></div>
376
+ </section>
377
+ <section class="aser-right-panel aser-project-detail is-empty" id="aser-project-detail">
378
+ <div class="section-header">
379
+ <span>详情面板</span>
380
+ </div>
381
+ <div class="aser-runtime-board">
382
+ <h3>PM 过程看板</h3>
383
+ <div class="aser-pm-board" id="aser-pm-board"></div>
384
+ </div>
385
+ <div class="aser-runtime-board">
386
+ <h3>Thread 摘要</h3>
387
+ <div class="aser-thread-summary" id="aser-thread-summary"></div>
388
+ </div>
389
+ <div class="aser-runtime-board">
390
+ <h3>治理建议</h3>
391
+ <div class="aser-governance-advice" id="aser-governance-advice"></div>
392
+ </div>
393
+ <div class="aser-runtime-board">
394
+ <h3>选中对象详情</h3>
395
+ <div class="aser-focus-detail" id="aser-focus-detail">
396
+ 点击中间区域中的 chat 任务或图形 task,查看详细信息。
397
+ </div>
398
+ </div>
399
+ </section>
400
+ </div>
401
+
402
+ <dialog id="aser-create-project-dialog">
403
+ <div class="aser-dialog-shell">
404
+ <h3>新建 Project</h3>
405
+ <select id="aser-create-project-protocol-select"></select>
406
+ <input type="text" id="aser-project-name-input" placeholder="项目名称(必填)">
407
+ <textarea id="aser-project-description-input" rows="4" placeholder="项目描述(可选)"></textarea>
408
+ <div class="aser-inline-actions">
409
+ <button class="btn btn-secondary btn-sm" id="aser-cancel-create-project-dialog-btn" type="button">取消</button>
410
+ <button class="btn btn-primary btn-sm" id="aser-create-project-btn" type="button">创建</button>
411
+ </div>
412
+ </div>
413
+ </dialog>
414
+
415
+ <dialog id="aser-protocol-dialog">
416
+ <div class="aser-dialog-shell">
417
+ <h3>编辑 Protocol</h3>
418
+ <textarea id="aser-protocol-json-input" rows="16" placeholder="protocol JSON"></textarea>
419
+ <div class="aser-inline-actions">
420
+ <button class="btn btn-secondary btn-sm" id="aser-load-protocol-btn" type="button">重载</button>
421
+ <button class="btn btn-secondary btn-sm" id="aser-cancel-protocol-dialog-btn" type="button">取消</button>
422
+ <button class="btn btn-primary btn-sm" id="aser-save-protocol-btn" type="button">保存</button>
423
+ </div>
424
+ </div>
425
+ </dialog>
426
+
427
+ <dialog id="aser-protocol-flow-dialog">
428
+ <div class="aser-dialog-shell aser-protocol-detail-shell">
429
+ <h3>Protocol 全屏详情</h3>
430
+ <div id="aser-protocol-flow-fullscreen"></div>
431
+ <div class="aser-inline-actions">
432
+ <button class="btn btn-secondary btn-sm" id="aser-close-protocol-flow-dialog-btn" type="button">关闭</button>
433
+ </div>
434
+ </div>
435
+ </dialog>
436
+ </div>
437
+
438
+ <div id="page-ai-engineering" class="page hidden">
439
+ <h2>AI软件工程</h2>
440
+ <p class="aser-intro">统一管理流程运行(ASER)、Agent 能力资产(Agent Club)和团队编排(Teams)。</p>
441
+ <div class="card">
442
+ <h3>导航说明</h3>
443
+ <p>在左侧子导航进入 `ASER 运行时`、`Agent Club`、`Teams`。推荐流程:先定义 Agent -> 组建 Team -> 在 ASER 中创建 Project 并分派 Team 后启动。</p>
444
+ </div>
445
+ </div>
446
+
447
+ <div id="page-agent-club" class="page hidden">
448
+ <h2>Agent Club</h2>
449
+ <div class="card">
450
+ <div class="section-header">
451
+ <span>创建 Agent</span>
452
+ </div>
453
+ <div class="aser-form-grid">
454
+ <input type="text" id="agent-club-name" placeholder="Agent 名称(例如:Dev Alpha)">
455
+ <input type="text" id="agent-club-role" placeholder="角色(例如:developer)">
456
+ <textarea id="agent-club-knowledge" rows="2" placeholder="知识背景(每行一项,例如:支付域 / 分布式事务)"></textarea>
457
+ <textarea id="agent-club-skills" rows="3" placeholder="技能(每行一项,格式:技能:等级,例如 React:advanced)"></textarea>
458
+ <textarea id="agent-club-task-types" rows="2" placeholder="任务类型(每行一项,例如:需求拆解 / 代码实现)"></textarea>
459
+ <textarea id="agent-club-deliverables" rows="2" placeholder="产物类型(每行一项,例如:设计文档 / PR / 测试报告)"></textarea>
460
+ <input type="text" id="agent-club-raci-default" placeholder="默认RACI(例如:R=developer,A=architect,C=reviewer,I=pm)">
461
+ <textarea id="agent-club-quality-criteria" rows="2" placeholder="质量标准(每行一项,例如:测试通过 / 评审通过)"></textarea>
462
+ <textarea id="agent-club-risk-limits" rows="2" placeholder="风险边界(每行一项,例如:跨团队阻塞需升级)"></textarea>
463
+ <div class="aser-inline-actions">
464
+ <button class="btn btn-primary btn-sm" id="agent-club-create-btn" type="button">创建 Agent</button>
465
+ </div>
466
+ </div>
467
+ </div>
468
+ <div class="card">
469
+ <h3>Agent 列表</h3>
470
+ <div class="aser-task-list" id="agent-club-list"></div>
471
+ </div>
472
+ </div>
473
+
474
+ <div id="page-teams" class="page hidden">
475
+ <h2>Teams</h2>
476
+ <div class="card">
477
+ <div class="section-header">
478
+ <span>创建 Team</span>
479
+ </div>
480
+ <div class="aser-form-grid">
481
+ <input type="text" id="teams-name" placeholder="Team 名称(例如:Payment Delivery Team)">
482
+ <select id="teams-agent-select" multiple size="6" title="选择 Team 成员 Agent"></select>
483
+ <div class="aser-inline-actions">
484
+ <button class="btn btn-primary btn-sm" id="teams-create-btn" type="button">创建 Team</button>
485
+ </div>
486
+ </div>
487
+ </div>
488
+ <div class="card">
489
+ <h3>Team 列表</h3>
490
+ <div class="aser-task-list" id="teams-list"></div>
491
+ </div>
492
+ </div>
493
+
494
+ <div id="page-opencode-team-runner" class="page hidden">
495
+ <h2>OpenCode Team Runner</h2>
496
+ <p class="aser-intro">面向项目执行编排:获取任务、分派责任、启动 Agent、跟踪产出与沟通诉求(上升/澄清)。</p>
497
+ <div class="card">
498
+ <div class="aser-form-grid">
499
+ <select id="opencode-runner-project-select" title="选择 ASER Project"></select>
500
+ <select id="opencode-runner-team-select" title="选择执行 Team"></select>
501
+ <div class="aser-inline-actions">
502
+ <button class="btn btn-secondary btn-sm" id="opencode-runner-load-btn" type="button">获取任务</button>
503
+ <button class="btn btn-secondary btn-sm" id="opencode-runner-plan-btn" type="button">编排责任</button>
504
+ <button class="btn btn-primary btn-sm" id="opencode-runner-start-btn" type="button">启动执行</button>
505
+ </div>
506
+ <div id="opencode-runner-summary" class="aser-meta-item">未开始</div>
507
+ </div>
508
+ </div>
509
+ <div class="card">
510
+ <h3>任务责任与进度</h3>
511
+ <div class="aser-task-list" id="opencode-runner-task-list"></div>
512
+ </div>
513
+ <div class="card">
514
+ <h3>运行过程可视化</h3>
515
+ <div class="aser-chat-task-timeline" id="opencode-runner-timeline"></div>
516
+ </div>
517
+ </div>
213
518
 
214
519
  <div id="page-diaries" class="page hidden">
215
520
  <h2>日记</h2>
@@ -231,6 +536,31 @@
231
536
  <div class="diary-timeline" id="diary-timeline"></div>
232
537
  </div>
233
538
 
539
+ <div id="page-tasks" class="page hidden">
540
+ <h2>任务看板</h2>
541
+ <div class="action-strip">
542
+ <select id="task-board-period">
543
+ <option value="week">本周任务</option>
544
+ <option value="month">本月任务</option>
545
+ <option value="quarter">3个月以内</option>
546
+ <option value="all">所有任务</option>
547
+ </select>
548
+ <input type="text" id="task-board-owner-input" placeholder="我的名字(用于区分我/他人)">
549
+ <button class="btn btn-secondary btn-sm" id="task-board-refresh-btn" type="button">刷新</button>
550
+ </div>
551
+ <div class="summary-strip" id="task-board-summary"></div>
552
+ <div class="task-board-grid">
553
+ <section class="task-board-column">
554
+ <div class="task-board-column-title">我的任务</div>
555
+ <div id="task-board-mine-list" class="task-board-list"></div>
556
+ </section>
557
+ <section class="task-board-column">
558
+ <div class="task-board-column-title">他人任务</div>
559
+ <div id="task-board-others-list" class="task-board-list"></div>
560
+ </section>
561
+ </div>
562
+ </div>
563
+
234
564
  <dialog id="diary-edit-dialog">
235
565
  <div class="diary-edit-shell">
236
566
  <div class="diary-edit-header">