@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.
Files changed (146) hide show
  1. package/README.i18n.yaml +7 -0
  2. package/README.md +448 -0
  3. package/README.zh.md +221 -0
  4. package/bundle/README.md +312 -0
  5. package/bundle/cordis.patch.yml +17 -0
  6. package/dist/client/index.d.ts +14 -0
  7. package/dist/client/panel/PanelView.d.ts +67 -0
  8. package/dist/client/panel/TabNav.d.ts +28 -0
  9. package/dist/client/panel/graph/event-log.d.ts +76 -0
  10. package/dist/client/panel/graph/project-graph.d.ts +499 -0
  11. package/dist/client/panel/graph/schema.d.ts +224 -0
  12. package/dist/client/panel/guards.d.ts +12 -0
  13. package/dist/client/panel/locale.d.ts +134 -0
  14. package/dist/client/panel/pages/AgentCanvasPage.d.ts +363 -0
  15. package/dist/client/panel/pages/EventLogPage.d.ts +48 -0
  16. package/dist/client/panel/pages/IterationInfoSection.d.ts +80 -0
  17. package/dist/client/panel/pages/IterationTaskPage.d.ts +37 -0
  18. package/dist/client/panel/panel-meta.d.ts +18 -0
  19. package/dist/client/panel/plan-sort.d.ts +54 -0
  20. package/dist/client/panel/sidebar.d.ts +17 -0
  21. package/dist/client/panel/state-section.d.ts +23 -0
  22. package/dist/client/panel/use-mstar-engine-status.d.ts +42 -0
  23. package/dist/client/panel/zones/Legend.d.ts +18 -0
  24. package/dist/client/panel/zones/TaskBoard.d.ts +40 -0
  25. package/dist/client.d.ts +1 -0
  26. package/dist/client.js +4486 -0
  27. package/dist/gates/_shared.d.ts +198 -0
  28. package/dist/gates/adapter.d.ts +131 -0
  29. package/dist/gates/agent-flow.d.ts +320 -0
  30. package/dist/gates/catalog.d.ts +118 -0
  31. package/dist/gates/dispatch.d.ts +152 -0
  32. package/dist/gates/seams.d.ts +152 -0
  33. package/dist/gates/skill-lint.d.ts +87 -0
  34. package/dist/gates/status.d.ts +81 -0
  35. package/dist/gates/tools.d.ts +37 -0
  36. package/dist/index.d.ts +107 -0
  37. package/dist/index.js +5748 -0
  38. package/dist/invariant.d.ts +15 -0
  39. package/dist/invariant.js +29 -0
  40. package/dist/service.d.ts +96 -0
  41. package/dist/types.d.ts +241 -0
  42. package/harness-commands/codebase-audit.md +40 -0
  43. package/harness-commands/iteration-drive.md +129 -0
  44. package/harness-commands/iteration-loop.md +139 -0
  45. package/harness-commands/iteration-start.md +179 -0
  46. package/harness-skills/grill-me/SKILL.md +10 -0
  47. package/harness-skills/mstar-audit/SKILL.md +183 -0
  48. package/harness-skills/mstar-audit/references/audit-playbook.md +130 -0
  49. package/harness-skills/mstar-audit/references/finding-format.md +65 -0
  50. package/harness-skills/mstar-branch-worktree/SKILL.md +219 -0
  51. package/harness-skills/mstar-branch-worktree/references/parallel-writable-pre-dispatch.md +68 -0
  52. package/harness-skills/mstar-coding-behavior/SKILL.md +147 -0
  53. package/harness-skills/mstar-compound/SKILL.md +105 -0
  54. package/harness-skills/mstar-compound/assets/resolution-template.md +94 -0
  55. package/harness-skills/mstar-compound/references/category-mapping.md +37 -0
  56. package/harness-skills/mstar-compound/references/compound-workflow.md +155 -0
  57. package/harness-skills/mstar-compound/references/concepts-vocabulary.md +44 -0
  58. package/harness-skills/mstar-compound/references/schema.yaml +122 -0
  59. package/harness-skills/mstar-compound-refresh/SKILL.md +140 -0
  60. package/harness-skills/mstar-compound-refresh/references/project-knowledge-bootstrap.md +164 -0
  61. package/harness-skills/mstar-design-md/SKILL.md +142 -0
  62. package/harness-skills/mstar-design-md/references/completeness-checklist.md +181 -0
  63. package/harness-skills/mstar-design-md/references/design-md-spec.md +508 -0
  64. package/harness-skills/mstar-design-md/references/vercel-example.md +200 -0
  65. package/harness-skills/mstar-design-md/templates/DESIGN.dark.md.template +354 -0
  66. package/harness-skills/mstar-design-md/templates/DESIGN.md.template +474 -0
  67. package/harness-skills/mstar-dispatch-gates/SKILL.md +128 -0
  68. package/harness-skills/mstar-dispatch-gates/references/leaf-executor-checklist.md +23 -0
  69. package/harness-skills/mstar-harness-core/SKILL.md +180 -0
  70. package/harness-skills/mstar-host/SKILL.md +78 -0
  71. package/harness-skills/mstar-host/references/_shared/host-role-binding-core.md +51 -0
  72. package/harness-skills/mstar-host/references/_shared/plan-mode-bridge-core.md +91 -0
  73. package/harness-skills/mstar-host/references/codex.md +61 -0
  74. package/harness-skills/mstar-host/references/cursor-plan-mode-bridge.md +159 -0
  75. package/harness-skills/mstar-host/references/cursor.md +183 -0
  76. package/harness-skills/mstar-host/references/dsh.md +502 -0
  77. package/harness-skills/mstar-host/references/kimi-plan-mode-bridge.md +36 -0
  78. package/harness-skills/mstar-host/references/kimi.md +136 -0
  79. package/harness-skills/mstar-host/references/omp-plan-mode-bridge.md +32 -0
  80. package/harness-skills/mstar-host/references/omp.md +244 -0
  81. package/harness-skills/mstar-host/references/opencode.md +76 -0
  82. package/harness-skills/mstar-host/references/parallel-dispatch.md +68 -0
  83. package/harness-skills/mstar-host/references/zcode-plan-mode-bridge.md +36 -0
  84. package/harness-skills/mstar-host/references/zcode.md +129 -0
  85. package/harness-skills/mstar-iteration/SKILL.md +393 -0
  86. package/harness-skills/mstar-iteration/references/autonomous-direction-lock.md +90 -0
  87. package/harness-skills/mstar-iteration/references/iteration-artifact-boundaries.md +103 -0
  88. package/harness-skills/mstar-iteration/references/iteration-compass-template.md +142 -0
  89. package/harness-skills/mstar-iteration/references/iteration-corpus-hygiene.md +45 -0
  90. package/harness-skills/mstar-iteration/references/iteration-workspace-readme-template.md +27 -0
  91. package/harness-skills/mstar-iteration/references/phase-2-worktree-lease.md +193 -0
  92. package/harness-skills/mstar-iteration/references/phase-3-iteration-close.md +95 -0
  93. package/harness-skills/mstar-iteration/references/phase-4-5-pr-delivery.md +84 -0
  94. package/harness-skills/mstar-iteration/references/phase5-helper-discovery.md +24 -0
  95. package/harness-skills/mstar-phase-gates/SKILL.md +112 -0
  96. package/harness-skills/mstar-plan-artifacts/SKILL.md +46 -0
  97. package/harness-skills/mstar-plan-artifacts/references/done-compaction.md +88 -0
  98. package/harness-skills/mstar-plan-artifacts/references/knowledge-and-designs.md +100 -0
  99. package/harness-skills/mstar-plan-artifacts/references/plan-files-and-reports.md +99 -0
  100. package/harness-skills/mstar-plan-artifacts/references/plan-quality-bar.md +99 -0
  101. package/harness-skills/mstar-plan-artifacts/references/status-and-residuals.md +570 -0
  102. package/harness-skills/mstar-plan-artifacts/templates/README.md +9 -0
  103. package/harness-skills/mstar-plan-artifacts/templates/notes.empty.json +5 -0
  104. package/harness-skills/mstar-plan-artifacts/templates/plan.main.md +54 -0
  105. package/harness-skills/mstar-plan-artifacts/templates/plans-done.empty.json +3 -0
  106. package/harness-skills/mstar-plan-artifacts/templates/status.empty.json +7 -0
  107. package/harness-skills/mstar-plan-conventions/SKILL.md +165 -0
  108. package/harness-skills/mstar-plan-conventions/references/artifact-storage-paths.md +50 -0
  109. package/harness-skills/mstar-plan-conventions/references/effort-estimation.md +38 -0
  110. package/harness-skills/mstar-plan-conventions/references/harness-bootstrap-and-agents-layering.md +93 -0
  111. package/harness-skills/mstar-review-qc/SKILL.md +60 -0
  112. package/harness-skills/mstar-review-qc/references/review-responsibility-boundaries.md +54 -0
  113. package/harness-skills/mstar-roles/SKILL.md +86 -0
  114. package/harness-skills/mstar-roles/references/_shared/leaf-executor-core.md +46 -0
  115. package/harness-skills/mstar-roles/references/architect.md +114 -0
  116. package/harness-skills/mstar-roles/references/code-reviewer.md +109 -0
  117. package/harness-skills/mstar-roles/references/frontend-dev.md +70 -0
  118. package/harness-skills/mstar-roles/references/fullstack-dev-shared.md +89 -0
  119. package/harness-skills/mstar-roles/references/ops-engineer.md +78 -0
  120. package/harness-skills/mstar-roles/references/product-manager.md +107 -0
  121. package/harness-skills/mstar-roles/references/project-manager/dispatch-and-assignment.md +198 -0
  122. package/harness-skills/mstar-roles/references/project-manager/plan-management.md +61 -0
  123. package/harness-skills/mstar-roles/references/project-manager/qa-trigger-matrix.md +56 -0
  124. package/harness-skills/mstar-roles/references/project-manager/qc-and-residuals.md +98 -0
  125. package/harness-skills/mstar-roles/references/project-manager/routing-and-dev-allocation.md +99 -0
  126. package/harness-skills/mstar-roles/references/project-manager.md +310 -0
  127. package/harness-skills/mstar-roles/references/prompt-engineer.md +71 -0
  128. package/harness-skills/mstar-roles/references/qa-engineer/acceptance-gate.md +62 -0
  129. package/harness-skills/mstar-roles/references/qa-engineer.md +79 -0
  130. package/harness-skills/mstar-roles/references/qc-specialist/deep-review-lenses.md +95 -0
  131. package/harness-skills/mstar-roles/references/qc-specialist/report-template.md +72 -0
  132. package/harness-skills/mstar-roles/references/qc-specialist/reviewer-checklist.md +44 -0
  133. package/harness-skills/mstar-roles/references/qc-specialist/reviewer-workflow.md +57 -0
  134. package/harness-skills/mstar-roles/references/qc-specialist-shared.md +128 -0
  135. package/harness-skills/mstar-roles/references/writing-specialist.md +59 -0
  136. package/harness-skills/mstar-sdd/SKILL.md +133 -0
  137. package/harness-skills/mstar-sdd/references/file-handoffs.md +83 -0
  138. package/harness-skills/mstar-sdd/references/implementer-continuation-prompt.md +44 -0
  139. package/harness-skills/mstar-sdd/references/implementer-prompt.md +56 -0
  140. package/harness-skills/mstar-sdd/references/sticky-implementer-session.md +103 -0
  141. package/harness-skills/mstar-sdd/references/task-reviewer-prompt.md +53 -0
  142. package/harness-skills/mstar-skill-authoring/SKILL.md +162 -0
  143. package/harness-skills/mstar-skill-authoring/references/skillsbench-authoring.md +117 -0
  144. package/harness-skills/mstar-strategy/SKILL.md +130 -0
  145. package/harness-skills/pm/SKILL.md +40 -0
  146. package/package.json +92 -0
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Morning Star workflow panel — dsh client plugin entry (spec §4.1):
3
+ * `inject` (cordis service waits) + `apply(ctx: ClientContext)`.
4
+ *
5
+ * On apply: registers the `mstar-panel` dictionaries, then waits for the
6
+ * ui-conversation `conversation.view` declaration and registers the panel as
7
+ * a view tab (`id: 'mstar-workflow'`, `order: 20`, locale-following label
8
+ * thunk — the trajectory precedent shape). The tab label re-reads through
9
+ * `ctx.locale.bind(NS)` so a locale switch flips it without re-registering.
10
+ */
11
+ import type { ClientContext } from '@deepseek-ai/dsh-client-runtime/client';
12
+ /** Cordis service faces the plugin waits for (spec §4.4: slots + sessions + locale). */
13
+ export declare const inject: string[];
14
+ export declare function apply(ctx: ClientContext): void;
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Morning Star workflow panel page — the `conversation.view` tab component
3
+ * (spec §4.2): pure render of the latest `mstar-engine-status` catalog row.
4
+ *
5
+ * Inputs: the session standard kit (`ConvViewProps`) and the typed `t` seat
6
+ * (`locale: 'mstar-panel'`). The catalog row + message time come from the
7
+ * `useMstarEngineStatus()` hook riding the kit's `useSession` selector (spec
8
+ * §5) — the render body is a pure function of (source, lastUpdated, t).
9
+ *
10
+ * Layout (spec panel-tabs §2, plan 20260811-panel-tabs-shell): root grid
11
+ * `"main sidebar"` fills the Tab (height 100%, overflow hidden — the page
12
+ * never scrolls); the right sidebar is RESIDENT (all tabs share it, its props
13
+ * `{ t, state, source }` unchanged); main = the fixed header nav (TabNav, 3
14
+ * MenuTabs) + the content region (switches per tab) + the freshness footer.
15
+ * The `data-mstar-graph` anchor now marks the CONTENT container (spec §6.1 —
16
+ * previously the canvas container), so tests pin the layout contract, not the
17
+ * per-tab page internals.
18
+ *
19
+ * Tab state (spec §6.2): local `useState<PanelTab>` (default 'tasks', D1, no
20
+ * routing) — `renderToStaticMarkup` renders the default tasks page, keeping
21
+ * SSR assertions stable. The tasks tab renders the IterationTaskPage (Content
22
+ * Head + Steps 横排/收拢 + full-width kanban, spec §3 — landed with Task 2,
23
+ * replacing the WorkflowCanvas zone dashboard); the agents tab renders the
24
+ * draggable AgentCanvasPage (spec §4 — landed with the agent-canvas plan,
25
+ * replacing the muted placeholder + the AgentFlowZone); the events tab
26
+ * renders the EventLogPage (spec §5 — the non-canvas log page with per-row
27
+ * `<details>` expansion, landed with the event-log plan Task 2, replacing
28
+ * the muted placeholder AND the AgentEventDock — 无双份日志).
29
+ *
30
+ * Empty branches (spec §2): waiting / no-harness render no tabs / no
31
+ * sidebar. Waiting keeps the muted hint; the no-harness branch renders a
32
+ * CENTERED inactive-state card (icon + title + hint, plan
33
+ * 20260812-panel-f5-agent-layout T3 — replaces the left-aligned hint) with
34
+ * the freshness footer; the no-harness main keeps `data-mstar-graph` on its
35
+ * content container. Degradation stays total: `projectGraph` never throws;
36
+ * no iteration → the IterationTaskPage's collapsed muted head (spec §8);
37
+ * `state` null / plans missing → muted kanban skeleton.
38
+ */
39
+ import * as React from 'react';
40
+ import type { ConvViewProps } from '@deepseek-ai/dsh-client-ui-conversation/client';
41
+ import type { TranslateNS } from '@deepseek-ai/dsh-client-ui-slots';
42
+ import type { MstarEngineStatusSource } from '../../types.ts';
43
+ import { type PanelTab } from './TabNav.tsx';
44
+ export interface MstarPanelViewProps extends ConvViewProps {
45
+ /** Namespace-bound translate seat (`locale: 'mstar-panel'`). */
46
+ t: TranslateNS<'mstar-panel'>;
47
+ }
48
+ export interface PanelContentProps {
49
+ tab: PanelTab;
50
+ source: MstarEngineStatusSource;
51
+ t: TranslateNS<'mstar-panel'>;
52
+ }
53
+ /**
54
+ * Tab → page mapping (spec §6.2): the only per-tab-switching part of the
55
+ * layout. tasks = the IterationTaskPage (spec §3 — Content Head + Steps
56
+ * 横排/收拢 + full-width kanban, landed with Task 2; it replaced the
57
+ * WorkflowCanvas zone dashboard, whose file is removed by the plan close);
58
+ * agents = the draggable AgentCanvasPage (spec §4 — full KNOWN_AGENTS roster
59
+ * + idle states + AgentEdge collaboration edges, landed with the agent-canvas
60
+ * plan; it replaced the muted placeholder and the AgentFlowZone); events =
61
+ * the real EventLogPage (spec §5 — non-canvas log page: Agent 流转事件 +
62
+ * 违规记录 partitions with per-row `<details>` expansion, landed with the
63
+ * event-log plan Task 2; it replaced the muted placeholder AND the
64
+ * AgentEventDock — 无双份日志, the dock is removed with this plan).
65
+ */
66
+ export declare function PanelContent({ tab, source, t }: PanelContentProps): React.JSX.Element;
67
+ export declare function PanelView({ t, useSession }: MstarPanelViewProps): React.JSX.Element;
@@ -0,0 +1,28 @@
1
+ /**
2
+ * TabNav (spec panel-tabs §2/§6.1, plan 20260811-panel-tabs-shell Task 1) —
3
+ * the fixed header nav: 3 MenuTabs (任务迭代 / 代理执行 / 事件记录, F1.2)
4
+ * switching the main content. Tab state is owned by PanelView
5
+ * (`useState<PanelTab>`, default 'tasks', no routing — SSR-stable under
6
+ * `renderToStaticMarkup`); TabNav is a controlled component receiving
7
+ * `active` + `onChange` (spec §6.1 interface contract).
8
+ *
9
+ * Anchors: `data-mstar-tab-nav` (the nav frame), `data-mstar-tab="{id}"` on
10
+ * every tab and `data-mstar-tab-active="true|false"` (activation state). The
11
+ * active tab gets the business-token underline; inactive tabs stay secondary.
12
+ *
13
+ * A11y (QC wave): the nav is a WAI-ARIA tablist and each tab is a
14
+ * `role="tab"` button with `aria-selected` (APG Tabs pattern, replacing the
15
+ * former `aria-pressed` toggle). Deliberately minimal: every tab stays Tab-
16
+ * reachable (no roving tabindex / arrow-key handling — that behavior would
17
+ * be scope creep without an explicit keyboard contract).
18
+ */
19
+ import * as React from 'react';
20
+ import type { TranslateNS } from '@deepseek-ai/dsh-client-ui-slots';
21
+ /** The three fixed panel tabs (spec §2 — D1 default = 'tasks'). */
22
+ export type PanelTab = 'tasks' | 'agents' | 'events';
23
+ export interface TabNavProps {
24
+ active: PanelTab;
25
+ onChange: (tab: PanelTab) => void;
26
+ t: TranslateNS<'mstar-panel'>;
27
+ }
28
+ export declare function TabNav({ active, onChange, t }: TabNavProps): React.JSX.Element;
@@ -0,0 +1,76 @@
1
+ /**
2
+ * Event-log entry assembly (spec panel-tabs §5 — plan 20260811-panel-event-log
3
+ * Task 1): `eventLogEntries(view)` turns the projected `ZoneView` slices
4
+ * (`events` / `violations`) into display-ready log entries for the 事件记录
5
+ * tab (`EventLogPage`, Task 2). A pure function over the projection output —
6
+ * the projection interfaces (`ZoneView` / `FlowEventView` / `GraphViolation`)
7
+ * are consumed unchanged, ZERO projection changes.
8
+ *
9
+ * Total function (spec §8 discipline): NEVER throws, NEVER fabricates. Every
10
+ * field degrades individually — a missing value becomes '' (string fields),
11
+ * `0` (`ts`) or `null` (`durationMs`), mirroring the `guards.ts` contract;
12
+ * the render side shows「—」for those (spec §5 — never a guessed value).
13
+ *
14
+ * Shape: one array, two entry kinds (spec §5 partitions):
15
+ * - `event` rows — `view.events` in projection order (latest-first; the ≤50
16
+ * window is `classifyFlowRows`' FLOW_EVENT_WINDOW, consumed NOT
17
+ * re-implemented). Off-pipeline (unexpected) DISPATCHES fold in via
18
+ * `expected: false`: `view.unexpected` is a RE-LIST of rows already inside
19
+ * `view.events`, so reading it here would double-append — the page decides
20
+ * how to section/badge them.
21
+ * - `violation` rows — `view.violations` (gate violations, str()-guarded)
22
+ * after the event rows; the page renders them in their own 违规记录
23
+ * partition.
24
+ */
25
+ import type { FlowEventStatus, FlowEventView, ZoneView } from './project-graph.ts';
26
+ /** One agent-flow event row: the log's 流转事件 partition (spec §5). */
27
+ export interface EventLogEventEntry {
28
+ /** Entry discriminator — this row is an agent-flow event. */
29
+ kind: 'event';
30
+ /** Stable per-projection id (reuses the projected event's window id — React key). */
31
+ id: string;
32
+ /** 'dispatch' | 'settle' — the page distinguishes settle rows (✓ glyph, no role). */
33
+ eventKind: FlowEventView['kind'];
34
+ /** `Execute as`; '' for settle rows and missing roles (never fabricated). */
35
+ role: string;
36
+ /** Session id; '' when missing (render shows「—」). */
37
+ agent: string;
38
+ /** `${phase}:${stage}` when the role matched an expected stage; '' otherwise. */
39
+ stage: string;
40
+ /** planId#taskId tag (deterministic planId / #taskId fallbacks); '' when neither present. */
41
+ task: string;
42
+ /** Event timestamp; 0 when missing (the render shows「—」— never a guessed time). */
43
+ ts: number;
44
+ /** Dispatch → dispatched|advisory|denied; settle → ok|error|denied (token-colored). */
45
+ status: FlowEventStatus;
46
+ /** Dispatch with an exact-identity-paired settle (an unpaired settle stays unpaired — honest); settle rows are never "settled". */
47
+ settled: boolean;
48
+ /** Settle duration in ms; null when missing/illegal (render shows「—」). */
49
+ durationMs: number | null;
50
+ /** role ∈ EXPECTED_ROLE_FLOW union — false = off-pipeline (unexpected) dispatch. */
51
+ expected: boolean;
52
+ }
53
+ /** One gate violation row: the log's 违规记录 partition (spec §5). */
54
+ export interface EventLogViolationEntry {
55
+ /** Entry discriminator — this row is a gate violation. */
56
+ kind: 'violation';
57
+ /** Stable per-projection id (`violation-${index}` — React key). */
58
+ id: string;
59
+ /** str()-guarded severity; '' when missing. */
60
+ severity: string;
61
+ /** str()-guarded code; '' when missing. */
62
+ code: string;
63
+ /** str()-guarded message; '' when missing. */
64
+ message: string;
65
+ }
66
+ /** One display-ready event-log row: an agent-flow event or a gate violation. */
67
+ export type EventLogEntry = EventLogEventEntry | EventLogViolationEntry;
68
+ /**
69
+ * Assemble the event-log rows (spec §5): `view.events` (latest-first, ≤50 —
70
+ * the projection's window, NOT re-windowed here) mapped to `event` entries,
71
+ * then `view.violations` mapped to `violation` entries. Empty slices produce
72
+ * no rows — the mixed empty states (0 events + violations, events + 0
73
+ * violations) fall out naturally; the page renders the muted「暂无记录」empty
74
+ * state when the whole array is empty (spec §8).
75
+ */
76
+ export declare function eventLogEntries(view: ZoneView): EventLogEntry[];