@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,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[];
|