@mstar-harness/dsh 2.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.i18n.yaml +7 -0
- package/README.md +448 -0
- package/README.zh.md +221 -0
- package/bundle/README.md +312 -0
- package/bundle/cordis.patch.yml +17 -0
- package/dist/client/index.d.ts +14 -0
- package/dist/client/panel/PanelView.d.ts +67 -0
- package/dist/client/panel/TabNav.d.ts +28 -0
- package/dist/client/panel/graph/event-log.d.ts +76 -0
- package/dist/client/panel/graph/project-graph.d.ts +499 -0
- package/dist/client/panel/graph/schema.d.ts +224 -0
- package/dist/client/panel/guards.d.ts +12 -0
- package/dist/client/panel/locale.d.ts +134 -0
- package/dist/client/panel/pages/AgentCanvasPage.d.ts +363 -0
- package/dist/client/panel/pages/EventLogPage.d.ts +48 -0
- package/dist/client/panel/pages/IterationInfoSection.d.ts +80 -0
- package/dist/client/panel/pages/IterationTaskPage.d.ts +37 -0
- package/dist/client/panel/panel-meta.d.ts +18 -0
- package/dist/client/panel/plan-sort.d.ts +54 -0
- package/dist/client/panel/sidebar.d.ts +17 -0
- package/dist/client/panel/state-section.d.ts +23 -0
- package/dist/client/panel/use-mstar-engine-status.d.ts +42 -0
- package/dist/client/panel/zones/Legend.d.ts +18 -0
- package/dist/client/panel/zones/TaskBoard.d.ts +40 -0
- package/dist/client.d.ts +1 -0
- package/dist/client.js +4486 -0
- package/dist/gates/_shared.d.ts +198 -0
- package/dist/gates/adapter.d.ts +131 -0
- package/dist/gates/agent-flow.d.ts +320 -0
- package/dist/gates/catalog.d.ts +118 -0
- package/dist/gates/dispatch.d.ts +152 -0
- package/dist/gates/seams.d.ts +152 -0
- package/dist/gates/skill-lint.d.ts +87 -0
- package/dist/gates/status.d.ts +81 -0
- package/dist/gates/tools.d.ts +37 -0
- package/dist/index.d.ts +107 -0
- package/dist/index.js +5748 -0
- package/dist/invariant.d.ts +15 -0
- package/dist/invariant.js +29 -0
- package/dist/service.d.ts +96 -0
- package/dist/types.d.ts +241 -0
- package/harness-commands/codebase-audit.md +40 -0
- package/harness-commands/iteration-drive.md +129 -0
- package/harness-commands/iteration-loop.md +139 -0
- package/harness-commands/iteration-start.md +179 -0
- package/harness-skills/grill-me/SKILL.md +10 -0
- package/harness-skills/mstar-audit/SKILL.md +183 -0
- package/harness-skills/mstar-audit/references/audit-playbook.md +130 -0
- package/harness-skills/mstar-audit/references/finding-format.md +65 -0
- package/harness-skills/mstar-branch-worktree/SKILL.md +219 -0
- package/harness-skills/mstar-branch-worktree/references/parallel-writable-pre-dispatch.md +68 -0
- package/harness-skills/mstar-coding-behavior/SKILL.md +147 -0
- package/harness-skills/mstar-compound/SKILL.md +105 -0
- package/harness-skills/mstar-compound/assets/resolution-template.md +94 -0
- package/harness-skills/mstar-compound/references/category-mapping.md +37 -0
- package/harness-skills/mstar-compound/references/compound-workflow.md +155 -0
- package/harness-skills/mstar-compound/references/concepts-vocabulary.md +44 -0
- package/harness-skills/mstar-compound/references/schema.yaml +122 -0
- package/harness-skills/mstar-compound-refresh/SKILL.md +140 -0
- package/harness-skills/mstar-compound-refresh/references/project-knowledge-bootstrap.md +164 -0
- package/harness-skills/mstar-design-md/SKILL.md +142 -0
- package/harness-skills/mstar-design-md/references/completeness-checklist.md +181 -0
- package/harness-skills/mstar-design-md/references/design-md-spec.md +508 -0
- package/harness-skills/mstar-design-md/references/vercel-example.md +200 -0
- package/harness-skills/mstar-design-md/templates/DESIGN.dark.md.template +354 -0
- package/harness-skills/mstar-design-md/templates/DESIGN.md.template +474 -0
- package/harness-skills/mstar-dispatch-gates/SKILL.md +128 -0
- package/harness-skills/mstar-dispatch-gates/references/leaf-executor-checklist.md +23 -0
- package/harness-skills/mstar-harness-core/SKILL.md +180 -0
- package/harness-skills/mstar-host/SKILL.md +78 -0
- package/harness-skills/mstar-host/references/_shared/host-role-binding-core.md +51 -0
- package/harness-skills/mstar-host/references/_shared/plan-mode-bridge-core.md +91 -0
- package/harness-skills/mstar-host/references/codex.md +61 -0
- package/harness-skills/mstar-host/references/cursor-plan-mode-bridge.md +159 -0
- package/harness-skills/mstar-host/references/cursor.md +183 -0
- package/harness-skills/mstar-host/references/dsh.md +502 -0
- package/harness-skills/mstar-host/references/kimi-plan-mode-bridge.md +36 -0
- package/harness-skills/mstar-host/references/kimi.md +136 -0
- package/harness-skills/mstar-host/references/omp-plan-mode-bridge.md +32 -0
- package/harness-skills/mstar-host/references/omp.md +244 -0
- package/harness-skills/mstar-host/references/opencode.md +76 -0
- package/harness-skills/mstar-host/references/parallel-dispatch.md +68 -0
- package/harness-skills/mstar-host/references/zcode-plan-mode-bridge.md +36 -0
- package/harness-skills/mstar-host/references/zcode.md +129 -0
- package/harness-skills/mstar-iteration/SKILL.md +393 -0
- package/harness-skills/mstar-iteration/references/autonomous-direction-lock.md +90 -0
- package/harness-skills/mstar-iteration/references/iteration-artifact-boundaries.md +103 -0
- package/harness-skills/mstar-iteration/references/iteration-compass-template.md +142 -0
- package/harness-skills/mstar-iteration/references/iteration-corpus-hygiene.md +45 -0
- package/harness-skills/mstar-iteration/references/iteration-workspace-readme-template.md +27 -0
- package/harness-skills/mstar-iteration/references/phase-2-worktree-lease.md +193 -0
- package/harness-skills/mstar-iteration/references/phase-3-iteration-close.md +95 -0
- package/harness-skills/mstar-iteration/references/phase-4-5-pr-delivery.md +84 -0
- package/harness-skills/mstar-iteration/references/phase5-helper-discovery.md +24 -0
- package/harness-skills/mstar-phase-gates/SKILL.md +112 -0
- package/harness-skills/mstar-plan-artifacts/SKILL.md +46 -0
- package/harness-skills/mstar-plan-artifacts/references/done-compaction.md +88 -0
- package/harness-skills/mstar-plan-artifacts/references/knowledge-and-designs.md +100 -0
- package/harness-skills/mstar-plan-artifacts/references/plan-files-and-reports.md +99 -0
- package/harness-skills/mstar-plan-artifacts/references/plan-quality-bar.md +99 -0
- package/harness-skills/mstar-plan-artifacts/references/status-and-residuals.md +570 -0
- package/harness-skills/mstar-plan-artifacts/templates/README.md +9 -0
- package/harness-skills/mstar-plan-artifacts/templates/notes.empty.json +5 -0
- package/harness-skills/mstar-plan-artifacts/templates/plan.main.md +54 -0
- package/harness-skills/mstar-plan-artifacts/templates/plans-done.empty.json +3 -0
- package/harness-skills/mstar-plan-artifacts/templates/status.empty.json +7 -0
- package/harness-skills/mstar-plan-conventions/SKILL.md +165 -0
- package/harness-skills/mstar-plan-conventions/references/artifact-storage-paths.md +50 -0
- package/harness-skills/mstar-plan-conventions/references/effort-estimation.md +38 -0
- package/harness-skills/mstar-plan-conventions/references/harness-bootstrap-and-agents-layering.md +93 -0
- package/harness-skills/mstar-review-qc/SKILL.md +60 -0
- package/harness-skills/mstar-review-qc/references/review-responsibility-boundaries.md +54 -0
- package/harness-skills/mstar-roles/SKILL.md +86 -0
- package/harness-skills/mstar-roles/references/_shared/leaf-executor-core.md +46 -0
- package/harness-skills/mstar-roles/references/architect.md +114 -0
- package/harness-skills/mstar-roles/references/code-reviewer.md +109 -0
- package/harness-skills/mstar-roles/references/frontend-dev.md +70 -0
- package/harness-skills/mstar-roles/references/fullstack-dev-shared.md +89 -0
- package/harness-skills/mstar-roles/references/ops-engineer.md +78 -0
- package/harness-skills/mstar-roles/references/product-manager.md +107 -0
- package/harness-skills/mstar-roles/references/project-manager/dispatch-and-assignment.md +198 -0
- package/harness-skills/mstar-roles/references/project-manager/plan-management.md +61 -0
- package/harness-skills/mstar-roles/references/project-manager/qa-trigger-matrix.md +56 -0
- package/harness-skills/mstar-roles/references/project-manager/qc-and-residuals.md +98 -0
- package/harness-skills/mstar-roles/references/project-manager/routing-and-dev-allocation.md +99 -0
- package/harness-skills/mstar-roles/references/project-manager.md +310 -0
- package/harness-skills/mstar-roles/references/prompt-engineer.md +71 -0
- package/harness-skills/mstar-roles/references/qa-engineer/acceptance-gate.md +62 -0
- package/harness-skills/mstar-roles/references/qa-engineer.md +79 -0
- package/harness-skills/mstar-roles/references/qc-specialist/deep-review-lenses.md +95 -0
- package/harness-skills/mstar-roles/references/qc-specialist/report-template.md +72 -0
- package/harness-skills/mstar-roles/references/qc-specialist/reviewer-checklist.md +44 -0
- package/harness-skills/mstar-roles/references/qc-specialist/reviewer-workflow.md +57 -0
- package/harness-skills/mstar-roles/references/qc-specialist-shared.md +128 -0
- package/harness-skills/mstar-roles/references/writing-specialist.md +59 -0
- package/harness-skills/mstar-sdd/SKILL.md +133 -0
- package/harness-skills/mstar-sdd/references/file-handoffs.md +83 -0
- package/harness-skills/mstar-sdd/references/implementer-continuation-prompt.md +44 -0
- package/harness-skills/mstar-sdd/references/implementer-prompt.md +56 -0
- package/harness-skills/mstar-sdd/references/sticky-implementer-session.md +103 -0
- package/harness-skills/mstar-sdd/references/task-reviewer-prompt.md +53 -0
- package/harness-skills/mstar-skill-authoring/SKILL.md +162 -0
- package/harness-skills/mstar-skill-authoring/references/skillsbench-authoring.md +117 -0
- package/harness-skills/mstar-strategy/SKILL.md +130 -0
- package/harness-skills/pm/SKILL.md +40 -0
- package/package.json +92 -0
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Graph schema constants (spec panel-layout-graph §2.0): the workflow loop
|
|
3
|
+
* (phase ring — mstar-iteration Phase 1–5) and the per-plan status machine
|
|
4
|
+
* (mstar-plan-artifacts) are CLIENT-SIDE DESIGN KNOWLEDGE. They are written
|
|
5
|
+
* once here with their provenance and STRICTLY SEPARATED from catalog
|
|
6
|
+
* evidence (`iteration.gate.transition` / `state.plans[].status`), which
|
|
7
|
+
* `projectGraph` projects onto this skeleton.
|
|
8
|
+
*
|
|
9
|
+
* Known limitation (spec §2.3 — a documented constraint, not a defect): the
|
|
10
|
+
* engine phase gate only evaluates Phase 2→3→4, so the catalog never emits
|
|
11
|
+
* `merge-ready` as current — Step 5 stays schema-only idle. Step 1
|
|
12
|
+
* (`iteration-start`) IS compass-driven current during Phase 1 — the
|
|
13
|
+
* `compassStatus: 'active'` field (plan 20260811-panel-f4-iteration-zone)
|
|
14
|
+
* lights it, so it is NOT a "never current" node; only Step 5 has no source
|
|
15
|
+
* that can light it. The loop edge is planning semantics (one iteration
|
|
16
|
+
* closes, the next begins).
|
|
17
|
+
*/
|
|
18
|
+
/** Phase ring node ids in loop order (spec §2.3). */
|
|
19
|
+
export declare const PHASE_IDS: readonly ["iteration-start", "autonomous-execute", "iteration-close", "pr-delivery", "merge-ready"];
|
|
20
|
+
export type PhaseId = (typeof PHASE_IDS)[number];
|
|
21
|
+
/** Plan state machine bucket ids (spec §2.4): 4 known states + the merged
|
|
22
|
+
* `blocked-unknown` catch-all (plan 20260813-panel-quick-fixes Task 1 — the
|
|
23
|
+
* `Blocked` state and the former `unknown` catch-all fold into ONE column). */
|
|
24
|
+
export declare const PLAN_STATE_IDS: readonly ["Todo", "InProgress", "InReview", "Done", "blocked-unknown"];
|
|
25
|
+
export type PlanStateId = (typeof PLAN_STATE_IDS)[number];
|
|
26
|
+
export interface PhaseEdge {
|
|
27
|
+
source: PhaseId;
|
|
28
|
+
target: PhaseId;
|
|
29
|
+
kind: 'forward' | 'loop';
|
|
30
|
+
}
|
|
31
|
+
/** Phase ring edges: forward start→…→merge-ready, plus the loop merge-ready→start (spec §2.3). */
|
|
32
|
+
export declare const PHASE_EDGES: PhaseEdge[];
|
|
33
|
+
/** Plan state machine edges (spec §2.4): `Done` is terminal (no out-edges);
|
|
34
|
+
* `blocked-unknown` keeps the InProgress↔Blocked recovery back-edge (plan
|
|
35
|
+
* 20260813-panel-quick-fixes Task 1 — the merged column docks the Blocked ⇄). */
|
|
36
|
+
export declare const PLAN_STATE_EDGES: {
|
|
37
|
+
source: PlanStateId;
|
|
38
|
+
target: PlanStateId;
|
|
39
|
+
}[];
|
|
40
|
+
/** `gate.transition` → phase id (spec §2.3): the engine emits only these three. */
|
|
41
|
+
export declare const TRANSITION_TO_PHASE: Readonly<Record<string, PhaseId>>;
|
|
42
|
+
/**
|
|
43
|
+
* Expected role pipeline (spec agent-flow-catalog-graph §2.3): WHO is expected
|
|
44
|
+
* to be dispatched in each iteration phase. Like the phase ring / plan state
|
|
45
|
+
* machine above, this is CLIENT-SIDE DESIGN KNOWLEDGE — written once with its
|
|
46
|
+
* provenance and STRICTLY SEPARATED from catalog evidence: `projectGraph`'s
|
|
47
|
+
* flow projection lights this skeleton with `state.agentFlow` dispatch events
|
|
48
|
+
* (stage lit/count) and flags events whose role is NOT in this union
|
|
49
|
+
* (unexpected — e.g. `general` / `scout` or unregistered roles).
|
|
50
|
+
*
|
|
51
|
+
* Provenance (mstar role vocabulary — exact strings, dispatch order):
|
|
52
|
+
* - review-edit-chain: product-manager → architect → writing-specialist —
|
|
53
|
+
* the mstar-iteration §1.6 Review & Edit chain (Prepare-phase design
|
|
54
|
+
* review, Phase 1).
|
|
55
|
+
* - sdd-implement: fullstack-dev / fullstack-dev-2 / frontend-dev /
|
|
56
|
+
* code-reviewer — the mstar-sdd implementer roles PLUS the L2 task
|
|
57
|
+
* reviewer `code-reviewer` (v2.1.1, upstream roles.ts SSOT — the former
|
|
58
|
+
* `generalPurpose` seat; Phase 2 task execution + per-task review).
|
|
59
|
+
* - qc-tri: qc-specialist ×3 — the mstar-sdd plan QC triage (Phase 2).
|
|
60
|
+
* - qa-gate: qa-engineer — the QA gate (Phase 2 closing — the pipeline
|
|
61
|
+
* TERMINAL stage; ops-engineer is NOT in the pipeline).
|
|
62
|
+
* - Phase 3–5 (iteration-close / pr-delivery / merge-ready) dispatch no
|
|
63
|
+
* routine subagents → no stages (spec §2.3).
|
|
64
|
+
*
|
|
65
|
+
* Off-pipeline roles (plan 20260811-panel-f3-agent-general) live in the
|
|
66
|
+
* KNOWN_AGENTS roster with `zone` markers, NOT here: `ops-engineer` and
|
|
67
|
+
* `prompt-engineer` are on-demand dispatches (mstar-roles routing table,
|
|
68
|
+
* as needed) — they stay OUTSIDE this union (their event-log `unexpected`
|
|
69
|
+
* badge is unchanged; bucket membership and expectedness are ORTHOGONAL
|
|
70
|
+
* dimensions — plan 20260812-panel-f5-agent-layout Task 1, see
|
|
71
|
+
* SDD_BUCKET_ROLES). The single `general` bucket (plan
|
|
72
|
+
* 20260811-panel-f3-agent-general) collects every unmatched / anonymous
|
|
73
|
+
* dispatch (role ''), plus stray off-roster roles like `scout`; the SDD
|
|
74
|
+
* per-task reviewer is now the PIPELINE role `code-reviewer` (v2.1.1 — the
|
|
75
|
+
* former `generalPurpose` seat), so the `general` bucket no longer
|
|
76
|
+
* describes a pipeline seat.
|
|
77
|
+
*
|
|
78
|
+
* General-bucket PLACEMENT (plan 20260812-panel-f5-agent-layout Task 1 —
|
|
79
|
+
* user 2026-08-12 decision): the `general` bucket moves to its OWN rightmost
|
|
80
|
+
* UNKNOWN column — the projection still emits `zone: 'general'` entities
|
|
81
|
+
* (semantics unchanged, placement is a RENDER-layer decision), and the
|
|
82
|
+
* render (Task 2) places them in that rightmost column. The earlier F4.2
|
|
83
|
+
* placement (BOTTOM INSIDE the `sdd-implement` column bucket) is
|
|
84
|
+
* superseded by the F5 user decision; the former SDD implement ↔ review
|
|
85
|
+
* skeleton EDGE (sdd-implement → general back-edge, the `loop: true` arrow)
|
|
86
|
+
* stays REMOVED from the projection (plan 20260811-panel-f4-agent-view Task
|
|
87
|
+
* 1); the F5 supervise line is a SEPARATE sub-bucket edge (see
|
|
88
|
+
* project-graph.ts `superviseEdges`).
|
|
89
|
+
*
|
|
90
|
+
* Matching rules (spec §2.3 — implemented by `projectGraph`'s flow
|
|
91
|
+
* projection): `expected` ⟺ `event.role` ∈ the union of ALL `roles` below
|
|
92
|
+
* (EXACT string — `qc-specialist-2` never folds into `qc-specialist`); a role
|
|
93
|
+
* listed in several stages matches the FIRST stage in this constant order;
|
|
94
|
+
* `unexpected` ⟺ role ∉ union. Settle rows carry no role (T1 sets ''), so
|
|
95
|
+
* they never match a stage.
|
|
96
|
+
*/
|
|
97
|
+
export interface ExpectedRoleStage {
|
|
98
|
+
/** The iteration phase this pipeline stage belongs to (PhaseId union). */
|
|
99
|
+
phase: PhaseId;
|
|
100
|
+
/** Pipeline-stage id — the render + match key (`${phase}:${stage}`). */
|
|
101
|
+
stage: string;
|
|
102
|
+
/** Expected role ids in dispatch order (mstar-roles / mstar-sdd vocabulary). */
|
|
103
|
+
roles: readonly string[];
|
|
104
|
+
}
|
|
105
|
+
/** Expected role pipeline skeleton: 4 stages (spec agent-flow-catalog-graph
|
|
106
|
+
* §2.3; plan 20260812-panel-f5-agent-layout Task 1 — `code-reviewer` joins
|
|
107
|
+
* the sdd-implement stage: v2.1.1 makes the SDD L2 task reviewer a routine
|
|
108
|
+
* pipeline role, the former `generalPurpose` seat; ops-engineer /
|
|
109
|
+
* prompt-engineer stay OFF the pipeline — on-demand; qa-gate is the
|
|
110
|
+
* terminal stage). */
|
|
111
|
+
export declare const EXPECTED_ROLE_FLOW: readonly ExpectedRoleStage[];
|
|
112
|
+
/**
|
|
113
|
+
* SDD sub-bucket membership (plan 20260812-panel-f5-agent-layout Task 1 —
|
|
114
|
+
* CLIENT-SIDE DESIGN KNOWLEDGE): which roles live in which sub-bucket of the
|
|
115
|
+
* `sdd-implement` column — `implementor` (the implementer roles PLUS the
|
|
116
|
+
* on-demand ops-engineer / prompt-engineer: they are implementor-family
|
|
117
|
+
* dispatches, not a separate stage) and `reviewer` (code-reviewer, the SDD
|
|
118
|
+
* L2 task reviewer — v2.1.1, upstream roles.ts SSOT).
|
|
119
|
+
*
|
|
120
|
+
* ORTHOGONAL to expectedness: sub-bucket membership is a LAYOUT dimension,
|
|
121
|
+
* the `expected` badge follows the EXPECTED_ROLE_FLOW union (a separate
|
|
122
|
+
* dimension). `implementor` ⊇ the sdd-implement union roles (it also holds
|
|
123
|
+
* ops-engineer / prompt-engineer, which stay OUTSIDE the union — their
|
|
124
|
+
* event-log `unexpected` badge is unchanged); `reviewer` ⊆ the union. Do NOT
|
|
125
|
+
* add on-demand roles to EXPECTED_ROLE_FLOW.roles to "fix" their badge —
|
|
126
|
+
* that would silently flip it (compass Non-Goal: no event-log classification
|
|
127
|
+
* changes).
|
|
128
|
+
*/
|
|
129
|
+
export declare const SDD_BUCKET_ROLES: {
|
|
130
|
+
implementor: readonly string[];
|
|
131
|
+
reviewer: readonly string[];
|
|
132
|
+
};
|
|
133
|
+
/**
|
|
134
|
+
* The known-agent roster (spec §4 / §6.2 / decision point D3 + plan
|
|
135
|
+
* 20260811-panel-f3-agent-general + plan 20260812-panel-f5-agent-layout Task
|
|
136
|
+
* 1): the static FULL set of ASSIGNABLE roles the panel may ever show —
|
|
137
|
+
* every EXPECTED_ROLE_FLOW role PLUS the off-pipeline roles `prompt-engineer`
|
|
138
|
+
* (in the mstar-roles table but not in the pipeline) and `ops-engineer`
|
|
139
|
+
* (on-demand ops dispatch), PLUS `general` (the single general bucket — see
|
|
140
|
+
* below). Exactly 14 roles (upstream v2.1.1 roles.ts = 13 assignable +
|
|
141
|
+
* project-manager is the semantic SSOT — the roster adds `code-reviewer`,
|
|
142
|
+
* the SDD L2 task reviewer, to reach 14).
|
|
143
|
+
*
|
|
144
|
+
* `explore` is DELIBERATELY NOT in the roster (plan
|
|
145
|
+
* 20260811-panel-f3-agent-general — user F3 feedback): it is a scouting
|
|
146
|
+
* adjunct role with no standalone presentation value, so it is removed from
|
|
147
|
+
* the canvas (a stray `explore` dispatch still folds into the `general`
|
|
148
|
+
* bucket — it is not a KNOWN_AGENTS id).
|
|
149
|
+
*
|
|
150
|
+
* `project-manager` is deliberately NOT in the roster (plan
|
|
151
|
+
* 20260811-panel-f2-quickfix Item 2 — user F2 feedback): it is the PRIMARY
|
|
152
|
+
* orchestration agent (mstar-roles mapping `mode: primary`), the seat that
|
|
153
|
+
* DISPATCHES subagents — never an assignable subagent itself, so it must
|
|
154
|
+
* not appear as a dispatchable entity in the 代理执行 tab.
|
|
155
|
+
*
|
|
156
|
+
* The panel NEVER hides a known agent: every member without dispatch
|
|
157
|
+
* evidence projects as an `idle` entity (spec §6.2 — degraded/empty
|
|
158
|
+
* branches included). `stage` = the role's stage in EXPECTED_ROLE_FLOW
|
|
159
|
+
* (first constant-order match); null for the off-pipeline roles, which
|
|
160
|
+
* carry an explicit `zone` — `on-demand` (ops-engineer / prompt-engineer:
|
|
161
|
+
* implementor-sub-bucket dispatches with an on-demand badge — the render
|
|
162
|
+
* places them inside the `sdd-implement` column's implementor partition,
|
|
163
|
+
* Task 2) or `general` (the general bucket = ANY unmatched / anonymous
|
|
164
|
+
* dispatch (role '') in the projection — the rightmost UNKNOWN column,
|
|
165
|
+
* Task 2).
|
|
166
|
+
*
|
|
167
|
+
* General-bucket placement (plan 20260812-panel-f5-agent-layout Task 1,
|
|
168
|
+
* user 2026-08-12): the `general` bucket gets its OWN rightmost unknown
|
|
169
|
+
* column — the projection keeps emitting `zone: 'general'` entities (the
|
|
170
|
+
* zone VALUE is unchanged — placement is a render-layer decision, Task 2).
|
|
171
|
+
*/
|
|
172
|
+
/** The general-bucket id (plan 20260811-panel-f3-agent-general): the single
|
|
173
|
+
* bucket every off-roster / anonymous dispatch folds into — the former SDD
|
|
174
|
+
* per-task reviewer seat is now the PIPELINE role `code-reviewer` (v2.1.1),
|
|
175
|
+
* so `general` is purely the unmatched/anonymous catch-all (role '' +
|
|
176
|
+
* stray roles like `scout`). Single source for the value:
|
|
177
|
+
* `entityKeyOf`'s fallback key, `roleZone` / `idleZone` defaults and the
|
|
178
|
+
* KNOWN_AGENTS roster id ALL derive from it — renaming the bucket changes
|
|
179
|
+
* exactly one constant.
|
|
180
|
+
*
|
|
181
|
+
* Placement (plan 20260812-panel-f5-agent-layout Task 1, user 2026-08-12):
|
|
182
|
+
* the bucket gets its OWN rightmost UNKNOWN canvas column — the render
|
|
183
|
+
* (Task 2) places `zone: 'general'` entities there; the former F4.2
|
|
184
|
+
* placement (BOTTOM INSIDE the `sdd-implement` column) is superseded. The
|
|
185
|
+
* `'general'` literal in the `AgentZone` / `KnownAgent.zone` unions below
|
|
186
|
+
* is the type-level binding (a union member cannot reference a value) —
|
|
187
|
+
* keep them in sync with this constant. */
|
|
188
|
+
export declare const GENERAL_BUCKET: "general";
|
|
189
|
+
/**
|
|
190
|
+
* Agent-entity column zone (plan 20260811-panel-f3-agent-general + plan
|
|
191
|
+
* 20260812-panel-f5-agent-layout Task 1): `'flow'` (stage columns),
|
|
192
|
+
* `'on-demand'` (ops-engineer / prompt-engineer — implementor-sub-bucket
|
|
193
|
+
* dispatches, rendered inside the `sdd-implement` column's implementor
|
|
194
|
+
* partition with an on-demand badge; the standalone on-demand column is
|
|
195
|
+
* REMOVED — Task 2) or `'general'` (the general bucket). Placement
|
|
196
|
+
* semantics (user 2026-08-12 decision): `'general'` renders in its OWN
|
|
197
|
+
* rightmost UNKNOWN column (Task 2). The zone VALUE is projection-owned and
|
|
198
|
+
* unchanged; only the render layout (Task 2) changes.
|
|
199
|
+
*/
|
|
200
|
+
export type AgentZone = 'flow' | 'on-demand' | 'general';
|
|
201
|
+
export interface KnownAgent {
|
|
202
|
+
/** Role id — the entity key and the default card title (render may localize). */
|
|
203
|
+
id: string;
|
|
204
|
+
/** Optional display label; render falls back to `id` when absent. */
|
|
205
|
+
displayName?: string;
|
|
206
|
+
/** The role's EXPECTED_ROLE_FLOW stage; null → off-pipeline role. */
|
|
207
|
+
stage?: {
|
|
208
|
+
phase: PhaseId;
|
|
209
|
+
stage: string;
|
|
210
|
+
} | null;
|
|
211
|
+
/** Off-pipeline zone (plan 20260811-panel-f3-agent-general): 'on-demand'
|
|
212
|
+
* for the implementor-sub-bucket on-demand roles (ops-engineer /
|
|
213
|
+
* prompt-engineer — rendered inside the `sdd-implement` column's
|
|
214
|
+
* implementor partition with an on-demand badge, plan
|
|
215
|
+
* 20260812-panel-f5-agent-layout Task 1 / Task 2), 'general' (the default
|
|
216
|
+
* when omitted) for the general bucket. The `'general'` literal is the
|
|
217
|
+
* type-level binding of `GENERAL_BUCKET` (see above) — a union member
|
|
218
|
+
* cannot reference a value. */
|
|
219
|
+
zone?: 'on-demand' | 'general';
|
|
220
|
+
}
|
|
221
|
+
/** Known-agent roster — 14 roles, spec §4 order (project-manager + explore
|
|
222
|
+
* excluded; `code-reviewer` added by plan 20260812-panel-f5-agent-layout
|
|
223
|
+
* Task 1 — upstream v2.1.1 roles.ts is the semantic SSOT). */
|
|
224
|
+
export declare const KNOWN_AGENTS: readonly KnownAgent[];
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Field-level degradation guards for the runtime `mstar-engine-status` source
|
|
3
|
+
* (spec §2.4): the client does not exhaustively validate the union — it
|
|
4
|
+
* narrows by `kind`, then degrades per field. Unknown/missing values render
|
|
5
|
+
* as `unknown`, never as guessed values.
|
|
6
|
+
*/
|
|
7
|
+
/** String field: non-empty string, else null (missing → `unknown`). */
|
|
8
|
+
export declare function str(value: unknown): string | null;
|
|
9
|
+
/** Boolean field: real boolean, else null. */
|
|
10
|
+
export declare function bool(value: unknown): boolean | null;
|
|
11
|
+
/** Count field: finite number, else null. */
|
|
12
|
+
export declare function count(value: unknown): number | null;
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `mstar-panel` locale namespace (spec §4.3): en (default) + zh, registered
|
|
3
|
+
* via `ctx.locale.register(NS, { zh, en })` at plugin apply. The key union is
|
|
4
|
+
* merged into the ui-slots `LocaleNamespaceMap` so the framework synthesizes
|
|
5
|
+
* a typed `t` seat for the panel component (dictionary keys are checked
|
|
6
|
+
* against the union by `LocaleDictOf`).
|
|
7
|
+
*
|
|
8
|
+
* T2 (spec panel-zones §2, plan 20260810-panel-canvas-zones): the react-flow
|
|
9
|
+
* graph is replaced by the zone dashboard — the `graph.phase.*` /
|
|
10
|
+
* `graph.state.*` / react-flow `graph.legend.*` key families are gone with
|
|
11
|
+
* the graph library; only `graph.pass` / `graph.fail` remain (the
|
|
12
|
+
* gate-verdict labels reused by the tabs-shell IterationTaskPage head), and
|
|
13
|
+
* the new `zone.*` family covers the three zone titles/placeholders + the
|
|
14
|
+
* zone-semantic legend. The `flow.*` key family (agent-flow event dock) is
|
|
15
|
+
* unchanged. The old footer's violations copy (`graph.violations` /
|
|
16
|
+
* `graph.no-violations`) is carried by the event-log plan — it adds its own
|
|
17
|
+
* dedicated keys when that page lands, NOT reserved in this union.
|
|
18
|
+
*
|
|
19
|
+
* T3 (spec panel-zones §3): the iteration zone is filled in — `zone.phase.*`
|
|
20
|
+
* (the 5 PHASE_IDS names, the `graph.phase.*` wording moved into the zone
|
|
21
|
+
* namespace), `zone.iteration.*` (Step N/5 label, Step N badge, step-state
|
|
22
|
+
* chips) and `zone.branches.*` (the branch panel
|
|
23
|
+
* moved from the sidebar). `zone.iteration.placeholder` is gone with the
|
|
24
|
+
* placeholder.
|
|
25
|
+
*
|
|
26
|
+
* T4 (spec panel-zones §3): the task board kanban is filled in —
|
|
27
|
+
* `zone.state.*` (the 5 PLAN_STATE_IDS column names — en is the raw status
|
|
28
|
+
* word, zh the localized name; `blocked-unknown` is the merged
|
|
29
|
+
* Blocked/unknown column, plan 20260813-panel-quick-fixes Task 1),
|
|
30
|
+
* `zone.tasks.total` (zone header plan total), `zone.tasks.no-plans` (the
|
|
31
|
+
* muted empty note), `zone.tasks.more` (the per-column `+N more` expand
|
|
32
|
+
* affordance) and `zone.tasks.collapse` (the 「收起」 collapse label).
|
|
33
|
+
* `zone.tasks.placeholder` is gone with the placeholder.
|
|
34
|
+
*
|
|
35
|
+
* T2 (spec panel-zones §4, plan 20260810-panel-agent-flow-zone): the agents
|
|
36
|
+
* zone is filled in — `zone.agents.summary` (`N executing · M pending`).
|
|
37
|
+
* `zone.agents.placeholder` is gone with the placeholder; the dashed
|
|
38
|
+
* "待执行" chip (`pending-label`) and the animated next-edge label (`next`)
|
|
39
|
+
* keys were removed with the AgentFlowZone in the agent-canvas QC wave
|
|
40
|
+
* (S-001 — the free canvas renders neither, so they had zero consumers).
|
|
41
|
+
*
|
|
42
|
+
* T3 (same plan): the dock is collapsible (the frame is a native <details>,
|
|
43
|
+
* header = <summary>) and the legend gains the entity-status swatches —
|
|
44
|
+
* `zone.legend.agent-running` / `zone.legend.agent-settled` (the status-dot
|
|
45
|
+
* treatments of the entity cards; the `zone.agents.*` family itself stays
|
|
46
|
+
* minimal — title/summary, both rendered by the canvas, so no
|
|
47
|
+
* `zone.agents.status.*` family is added: a status TEXT on the cards would be
|
|
48
|
+
* dead strings, the spec §4 card shows a status point, and reusing `flow.*`
|
|
49
|
+
* would conflate event status words (dispatched/settled ok) with entity
|
|
50
|
+
* status words).
|
|
51
|
+
*
|
|
52
|
+
* T1 (spec panel-tabs §2/§6.1, plan 20260811-panel-tabs-shell): the panel is
|
|
53
|
+
* re-laid-out as Tabs + Content — `tab.*` covers the 3 fixed MenuTab labels
|
|
54
|
+
* (任务迭代 / 代理执行 / 事件记录) and `page.*.placeholder` the muted
|
|
55
|
+
* placeholder copy for the agents/events tabs (the real pages land with the
|
|
56
|
+
* agent-canvas / event-log plans; Task 3 refines the placeholders).
|
|
57
|
+
*
|
|
58
|
+
* T2 (spec panel-tabs §3, plan 20260811-panel-tabs-shell Task 2): the
|
|
59
|
+
* IterationTaskPage head copy — `page.iteration.*` (the collapsed one-line
|
|
60
|
+
* "not started" note + the expand/collapse toggle hints). The head reuses the
|
|
61
|
+
* existing `zone.iteration.*` (step badge / Step n/5 label / step-state
|
|
62
|
+
* chips), `zone.phase.*` (the 5 PHASE_IDS names) and `zone.branches.*`
|
|
63
|
+
* (branch panel) keys; the kanban reuses `zone.tasks.*` / `zone.state.*`.
|
|
64
|
+
*
|
|
65
|
+
* T3 (spec panel-tabs §4, plan 20260811-panel-agent-canvas Task 3): the
|
|
66
|
+
* legend re-mounts on the agent canvas — `zone.legend.agent-idle` (the idle
|
|
67
|
+
* card treatment) joins the swatch family and the collaboration-edge labels
|
|
68
|
+
* (flow-expected / flow-actual / general) now describe the canvas rendering
|
|
69
|
+
* (dashed/solid lines + the general bucket — plan
|
|
70
|
+
* 20260811-panel-f3-agent-general replaced the former flow-unexpected entry)
|
|
71
|
+
* instead of the retired zone-dashboard stages; `flow.settle-only` is the
|
|
72
|
+
* distinct muted copy for the settle-only canvas note (review T2-Imp-2
|
|
73
|
+
* restored the old zone's separate anchor).
|
|
74
|
+
*
|
|
75
|
+
* T2 (plan 20260811-panel-f4-agent-view): the general bucket has NO column
|
|
76
|
+
* of its own anymore — `zone.agents.general` is REPURPOSED as the small
|
|
77
|
+
* in-bucket label on the general card (which sinks to the bottom of the
|
|
78
|
+
* `sdd-implement` column — the value stays the user-fixed literal 'general'
|
|
79
|
+
* in both locales); `zone.legend.general` rewords to the sink semantics
|
|
80
|
+
* (「general 位于 sdd-implement 桶内底部」).
|
|
81
|
+
*
|
|
82
|
+
* T2 (plan 20260812-panel-f5-agent-layout Task 2 — the layout rework
|
|
83
|
+
* supersedes the F4.2 sink): the general bucket moves to its OWN rightmost
|
|
84
|
+
* UNKNOWN column — `zone.agents.unknown` (the column label, 未知 / unknown);
|
|
85
|
+
* the in-bucket general tag is gone (the general card's title + the unknown
|
|
86
|
+
* column label carry it), so `zone.agents.general` is REMOVED. The
|
|
87
|
+
* `sdd-implement` column splits into sub-buckets — `zone.agents.bucket.*`
|
|
88
|
+
* (implementor / sdd-reviewer caption labels); `zone.agents.on-demand`
|
|
89
|
+
* re-keys as the on-demand BADGE (the implementor-sub-bucket roles, the
|
|
90
|
+
* standalone on-demand column is removed). The legend entries gain
|
|
91
|
+
* `zone.legend.sub-bucket` / `zone.legend.supervise` / `zone.legend.unknown`
|
|
92
|
+
* (the former 'general' entry is replaced by 'unknown'); `zone.legend.general`
|
|
93
|
+
* is REMOVED and `zone.legend.on-demand` rewords to the badge semantics.
|
|
94
|
+
*
|
|
95
|
+
* T5 (plan 20260812-panel-f5-design-system Task 5 — the 2026-08-12 edge
|
|
96
|
+
* rework supersedes the Task-2 unknown COLUMN): the standalone rightmost
|
|
97
|
+
* unknown column is REMOVED (user feedback #3 — FOUR columns total) — the
|
|
98
|
+
* general bucket sinks into an unknown SUB-PARTITION at the bottom of the
|
|
99
|
+
* LAST column, so `zone.agents.unknown` (the old column label) is REMOVED
|
|
100
|
+
* and `zone.agents.unknown-sub` (「unknown / 未匹配角色」) is the sub-partition
|
|
101
|
+
* caption. The legend drops the expected / next entries (both edges are
|
|
102
|
+
* REMOVED, design doc §2.2) and gains `zone.legend.port` (the hover-visible
|
|
103
|
+
* card ports, design doc §2.5); `zone.legend.flow-actual` / `supervise` /
|
|
104
|
+
* `unknown` reword to the bezier / port-anchored / side-gap / sub-partition
|
|
105
|
+
* semantics.
|
|
106
|
+
*
|
|
107
|
+
* T3 (plan 20260812-panel-f5-agent-layout Task 3): the no-harness branch
|
|
108
|
+
* renders a CENTERED inactive-state card (icon + title + hint, no tabs /
|
|
109
|
+
* no sidebar) instead of the left-aligned hint — `empty.no-harness-hint`
|
|
110
|
+
* is the explanatory secondary copy under the reused `empty.no-harness`
|
|
111
|
+
* title.
|
|
112
|
+
*
|
|
113
|
+
* T1 (plan 20260813-panel-agent-canvas-legend-layout Task 1 — 图例精简): the
|
|
114
|
+
* legend narrows to the 3 role-card status entries —
|
|
115
|
+
* `zone.legend.flow-actual` / `port` / `group` / `sub-bucket` / `supervise` /
|
|
116
|
+
* `on-demand` / `unknown` are REMOVED (the collaboration-edge / layout tech
|
|
117
|
+
* entries; the canvas itself keeps the edges / ports / partitions — only the
|
|
118
|
+
* legend copy drops them). `zone.legend.agent-running` / `agent-settled` /
|
|
119
|
+
* `agent-idle` remain.
|
|
120
|
+
*/
|
|
121
|
+
import type { LocaleDictOf } from '@deepseek-ai/dsh-client-ui-slots';
|
|
122
|
+
/** Locale namespace id for the workflow-viz panel. */
|
|
123
|
+
export declare const NS = "mstar-panel";
|
|
124
|
+
/** Panel dictionary keys (union of every translatable string the panel renders). */
|
|
125
|
+
export type PanelKey = 'view.mstar-workflow' | 'tab.tasks' | 'tab.agents' | 'tab.events' | 'page.iteration.not-started' | 'page.iteration.expand' | 'page.iteration.collapse' | 'event-log.section.events' | 'event-log.section.violations' | 'event-log.empty' | 'event-log.empty.events' | 'event-log.empty.violations' | 'event-log.field.role' | 'event-log.field.agent' | 'event-log.field.stage' | 'event-log.field.plan' | 'event-log.field.task' | 'event-log.field.category' | 'event-log.field.time' | 'event-log.field.kind' | 'event-log.field.status' | 'event-log.field.expected' | 'event-log.field.settled' | 'event-log.field.duration' | 'event-log.field.severity' | 'event-log.field.code' | 'event-log.field.message' | 'event-log.kind.dispatch' | 'event-log.kind.settle' | 'event-log.yes' | 'event-log.no' | 'empty.waiting' | 'empty.no-harness' | 'empty.no-harness-hint' | 'watermark.version' | 'watermark.harness' | 'watermark.none' | 'panel.unknown' | 'graph.pass' | 'graph.fail' | 'zone.legend.title' | 'zone.legend.agent-running' | 'zone.legend.agent-settled' | 'zone.legend.agent-idle' | 'zone.iteration.step-label' | 'zone.iteration.step-badge' | 'zone.iteration.step.current' | 'zone.iteration.step.next' | 'zone.iteration.step.done' | 'zone.iteration.step.idle' | 'zone.phase.iteration-start' | 'zone.phase.autonomous-execute' | 'zone.phase.iteration-close' | 'zone.phase.pr-delivery' | 'zone.phase.merge-ready' | 'zone.branches.title' | 'zone.branches.iteration-base' | 'zone.branches.target' | 'zone.branches.spec-integration' | 'zone.tasks.title' | 'zone.tasks.total' | 'zone.tasks.no-plans' | 'zone.tasks.more' | 'zone.tasks.collapse' | 'zone.state.Todo' | 'zone.state.InProgress' | 'zone.state.InReview' | 'zone.state.Done' | 'zone.state.blocked-unknown' | 'zone.agents.title' | 'zone.agents.summary' | 'zone.agents.on-demand' | 'zone.agents.unknown-sub' | 'zone.agents.bucket.implementor' | 'zone.agents.bucket.reviewer' | 'zone.agents.group.phase-1' | 'zone.agents.group.phase-2' | 'zone.agents.group.phase-n' | 'zone.agents.group.plan' | 'zone.agents.group.no-plan' | 'zone.agents.group.plan-more' | 'flow.empty' | 'flow.settle-only' | 'flow.degraded' | 'flow.unexpected' | 'flow.in-flight' | 'flow.settled-ok' | 'flow.error' | 'flow.advisory' | 'flow.denied' | 'state.title' | 'state.plans' | 'state.residuals' | 'state.policy' | 'state.leases' | 'state.knowledge' | 'state.direction' | 'state.none' | 'state.enforcement' | 'state.enforcement.hard' | 'state.enforcement.soft' | 'state.plans.more' | 'state.residual.more' | 'state.policy.push' | 'state.policy.worktree' | 'state.policy.control-worktree' | 'state.knowledge.docs' | 'freshness.last-updated' | 'freshness.refresh-note';
|
|
126
|
+
declare module '@deepseek-ai/dsh-client-ui-slots' {
|
|
127
|
+
interface LocaleNamespaceMap {
|
|
128
|
+
'mstar-panel': PanelKey;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
/** zh dictionary (repo bilingual convention; zh is the stub fallback locale). */
|
|
132
|
+
export declare const zh: LocaleDictOf<'mstar-panel'>;
|
|
133
|
+
/** en dictionary (default locale). */
|
|
134
|
+
export declare const en: LocaleDictOf<'mstar-panel'>;
|