@jaggerxtrm/specialists 3.17.0 → 3.18.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +268 -134
- package/config/mandatory-rules/executor-delivery.md +4 -0
- package/config/mandatory-rules/json-only-final-output.md +13 -0
- package/config/mandatory-rules/service-skills-diff-scan-mandatory.md +26 -0
- package/config/mandatory-rules/service-skills-gitnexus-triage.md +5 -0
- package/config/mandatory-rules/test-runner-execution-scope.md +4 -0
- package/config/skills/setup-specialists/SKILL.md +556 -0
- package/config/skills/specialists-creator/SKILL.md +132 -4
- package/config/skills/specialists-creator/scripts/audit-spec-uniformity.mjs +1 -1
- package/config/skills/using-specialists-v3/SKILL.md +80 -20
- package/config/specialists/bare.specialist.json +3 -3
- package/config/specialists/changelog-drafter.specialist.json +5 -4
- package/config/specialists/changelog-keeper.specialist.json +7 -6
- package/config/specialists/debugger.specialist.json +2 -2
- package/config/specialists/executor.specialist.json +2 -2
- package/config/specialists/explorer.specialist.json +4 -4
- package/config/specialists/memory-processor.specialist.json +3 -3
- package/config/specialists/node-coordinator.specialist.json +3 -3
- package/config/specialists/obligations-scanner.specialist.json +67 -17
- package/config/specialists/overthinker.specialist.json +3 -3
- package/config/specialists/planner.specialist.json +4 -4
- package/config/specialists/quant-methodologist.specialist.json +145 -0
- package/config/specialists/quant-researcher.specialist.json +144 -0
- package/config/specialists/researcher.specialist.json +5 -5
- package/config/specialists/reviewer.specialist.json +1 -1
- package/config/specialists/seconder.specialist.json +2 -2
- package/config/specialists/security-auditor.specialist.json +2 -2
- package/config/specialists/service-skills-sync.specialist.json +90 -75
- package/config/specialists/specialists-creator.specialist.json +4 -4
- package/config/specialists/sync-docs.specialist.json +4 -4
- package/config/specialists/test-engineer.specialist.json +3 -3
- package/config/specialists/test-runner.specialist.json +7 -7
- package/config/specialists/transcriber.specialist.json +3 -3
- package/config/specialists/xt-merge.specialist.json +4 -4
- package/dist/asset-contract.json +22 -3
- package/dist/index.js +28711 -18517
- package/dist/lib.js +10020 -6150
- package/dist/types/cli/console/components.d.ts +83 -0
- package/dist/types/cli/console/components.d.ts.map +1 -0
- package/dist/types/cli/console/config-source.d.ts +58 -0
- package/dist/types/cli/console/config-source.d.ts.map +1 -0
- package/dist/types/cli/console/forensic.d.ts +11 -0
- package/dist/types/cli/console/forensic.d.ts.map +1 -0
- package/dist/types/cli/console/git.d.ts +28 -0
- package/dist/types/cli/console/git.d.ts.map +1 -0
- package/dist/types/cli/console/help.d.ts +2 -0
- package/dist/types/cli/console/help.d.ts.map +1 -0
- package/dist/types/cli/console/log.d.ts +13 -0
- package/dist/types/cli/console/log.d.ts.map +1 -0
- package/dist/types/cli/console/repo-config.d.ts +26 -0
- package/dist/types/cli/console/repo-config.d.ts.map +1 -0
- package/dist/types/cli/console/repo-discovery.d.ts +12 -0
- package/dist/types/cli/console/repo-discovery.d.ts.map +1 -0
- package/dist/types/cli/console/runtime.d.ts +12 -0
- package/dist/types/cli/console/runtime.d.ts.map +1 -0
- package/dist/types/cli/console/subscribe-prototype.d.ts +18 -0
- package/dist/types/cli/console/subscribe-prototype.d.ts.map +1 -0
- package/dist/types/cli/console/theme.d.ts +91 -0
- package/dist/types/cli/console/theme.d.ts.map +1 -0
- package/dist/types/cli/console/types.d.ts +231 -0
- package/dist/types/cli/console/types.d.ts.map +1 -0
- package/dist/types/cli/console/view-model.d.ts +252 -0
- package/dist/types/cli/console/view-model.d.ts.map +1 -0
- package/dist/types/cli/console.d.ts +2 -0
- package/dist/types/cli/console.d.ts.map +1 -0
- package/dist/types/cli/db.d.ts.map +1 -1
- package/dist/types/cli/doctor.d.ts.map +1 -1
- package/dist/types/cli/edit.d.ts.map +1 -1
- package/dist/types/cli/epic.d.ts.map +1 -1
- package/dist/types/cli/feed.d.ts.map +1 -1
- package/dist/types/cli/forensic.d.ts +2 -0
- package/dist/types/cli/forensic.d.ts.map +1 -0
- package/dist/types/cli/format-helpers.d.ts +4 -2
- package/dist/types/cli/format-helpers.d.ts.map +1 -1
- package/dist/types/cli/help.d.ts.map +1 -1
- package/dist/types/cli/init.d.ts +10 -0
- package/dist/types/cli/init.d.ts.map +1 -1
- package/dist/types/cli/list.d.ts.map +1 -1
- package/dist/types/cli/log.d.ts.map +1 -1
- package/dist/types/cli/merge.d.ts.map +1 -1
- package/dist/types/cli/metrics.d.ts +2 -0
- package/dist/types/cli/metrics.d.ts.map +1 -0
- package/dist/types/cli/ps.d.ts.map +1 -1
- package/dist/types/cli/result.d.ts.map +1 -1
- package/dist/types/cli/run.d.ts +20 -0
- package/dist/types/cli/run.d.ts.map +1 -1
- package/dist/types/cli/script.d.ts +3 -0
- package/dist/types/cli/script.d.ts.map +1 -1
- package/dist/types/cli/serve.d.ts.map +1 -1
- package/dist/types/cli/setup.d.ts +19 -1
- package/dist/types/cli/setup.d.ts.map +1 -1
- package/dist/types/cli/status.d.ts.map +1 -1
- package/dist/types/cli/version-check.d.ts +1 -0
- package/dist/types/cli/version-check.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/pi/session.d.ts +12 -1
- package/dist/types/pi/session.d.ts.map +1 -1
- package/dist/types/server.d.ts +15 -0
- package/dist/types/server.d.ts.map +1 -1
- package/dist/types/specialist/benchmarks.d.ts +37 -0
- package/dist/types/specialist/benchmarks.d.ts.map +1 -0
- package/dist/types/specialist/chain-identity.d.ts +7 -1
- package/dist/types/specialist/chain-identity.d.ts.map +1 -1
- package/dist/types/specialist/control.d.ts.map +1 -1
- package/dist/types/specialist/dead-job-audit.d.ts +20 -0
- package/dist/types/specialist/dead-job-audit.d.ts.map +1 -0
- package/dist/types/specialist/forensic-events.d.ts +138 -0
- package/dist/types/specialist/forensic-events.d.ts.map +1 -0
- package/dist/types/specialist/forensic-renderer.d.ts +34 -0
- package/dist/types/specialist/forensic-renderer.d.ts.map +1 -0
- package/dist/types/specialist/git-diff-evidence.d.ts +28 -0
- package/dist/types/specialist/git-diff-evidence.d.ts.map +1 -0
- package/dist/types/specialist/global-config.d.ts +389 -0
- package/dist/types/specialist/global-config.d.ts.map +1 -0
- package/dist/types/specialist/launch.d.ts +9 -0
- package/dist/types/specialist/launch.d.ts.map +1 -1
- package/dist/types/specialist/live-aggregates.d.ts +46 -0
- package/dist/types/specialist/live-aggregates.d.ts.map +1 -0
- package/dist/types/specialist/loader.d.ts +50 -1
- package/dist/types/specialist/loader.d.ts.map +1 -1
- package/dist/types/specialist/model-chain.d.ts +7 -0
- package/dist/types/specialist/model-chain.d.ts.map +1 -0
- package/dist/types/specialist/model-probes.d.ts +28 -0
- package/dist/types/specialist/model-probes.d.ts.map +1 -0
- package/dist/types/specialist/node-contract.d.ts +18 -18
- package/dist/types/specialist/node-supervisor.d.ts.map +1 -1
- package/dist/types/specialist/observability-db.d.ts +1 -1
- package/dist/types/specialist/observability-db.d.ts.map +1 -1
- package/dist/types/specialist/observability-sqlite.d.ts +101 -0
- package/dist/types/specialist/observability-sqlite.d.ts.map +1 -1
- package/dist/types/specialist/pr-drift-refresh.d.ts +17 -0
- package/dist/types/specialist/pr-drift-refresh.d.ts.map +1 -0
- package/dist/types/specialist/preset-resolver.d.ts +56 -0
- package/dist/types/specialist/preset-resolver.d.ts.map +1 -0
- package/dist/types/specialist/prometheus-projection.d.ts +25 -0
- package/dist/types/specialist/prometheus-projection.d.ts.map +1 -0
- package/dist/types/specialist/runner.d.ts +29 -1
- package/dist/types/specialist/runner.d.ts.map +1 -1
- package/dist/types/specialist/schema.d.ts +163 -54
- package/dist/types/specialist/schema.d.ts.map +1 -1
- package/dist/types/specialist/script-runner.d.ts +5 -1
- package/dist/types/specialist/script-runner.d.ts.map +1 -1
- package/dist/types/specialist/snapshot-diff.d.ts +8 -0
- package/dist/types/specialist/snapshot-diff.d.ts.map +1 -0
- package/dist/types/specialist/source-queue.d.ts +13 -0
- package/dist/types/specialist/source-queue.d.ts.map +1 -0
- package/dist/types/specialist/status-load.d.ts.map +1 -1
- package/dist/types/specialist/supervisor.d.ts +25 -1
- package/dist/types/specialist/supervisor.d.ts.map +1 -1
- package/dist/types/specialist/timeline-events.d.ts +70 -1
- package/dist/types/specialist/timeline-events.d.ts.map +1 -1
- package/dist/types/tools/specialist/resume_specialist.tool.d.ts +4 -4
- package/dist/types/tools/specialist/specialist_status.tool.d.ts +1 -1
- package/dist/types/tools/specialist/steer_specialist.tool.d.ts +4 -4
- package/dist/types/tools/specialist/use_specialist.tool.d.ts +16 -16
- package/docs/ARCHITECTURE.md +1176 -0
- package/docs/TODO.md +9 -0
- package/docs/architecture.md +11 -0
- package/docs/archive/2026-03-13-bd-decision-context-template-plan.md +96 -0
- package/docs/archive/AGENT-HANDOFF.md +351 -0
- package/docs/archive/PARITY-ANALYSIS.md +296 -0
- package/docs/archive/SPECIALISTS_REFACTOR.md.md +30 -0
- package/docs/archive/cc-programmatic.md +216 -0
- package/docs/archive/claude-agent-sdk.md +594 -0
- package/docs/archive/decision-specialist-directory.md +41 -0
- package/docs/archive/discoveries.md +148 -0
- package/docs/archive/executor-benchmark-protocol.md +198 -0
- package/docs/archive/future-features.md +66 -0
- package/docs/archive/gzrx-completion-critique.md +183 -0
- package/docs/archive/gzrx-research-notes.md +401 -0
- package/docs/archive/gzrx-tool-catalog.md +760 -0
- package/docs/archive/iron-review-hardening-qa-chain-substrate.md +322 -0
- package/docs/archive/iron-review-hardening.html +1004 -0
- package/docs/archive/issuetracking.md +312 -0
- package/docs/archive/qa-v3.0.2.md +220 -0
- package/docs/archive/restructure.md +231 -0
- package/docs/archive/script-specialists.md +1254 -0
- package/docs/archive/spec-v3.md +792 -0
- package/docs/archive/specialist-stats.md +127 -0
- package/docs/archive/specialists-friction-audit.md +1347 -0
- package/docs/archive/specialists-runtime-critique.md +170 -0
- package/docs/archive/specialists-service-evaluation.md +713 -0
- package/docs/archive/specialists-substrate-alignment.md +255 -0
- package/docs/archive/substrate-review.md +1288 -0
- package/docs/archive/test-writer-specialist.md +254 -0
- package/docs/archive/using-specialists-v3-improvements-2026-05-09.md +600 -0
- package/docs/archive/xtrm-specialists-analysis.md +314 -0
- package/docs/authoring.md +701 -0
- package/docs/background-jobs.md +203 -0
- package/docs/bare-specialists.md +83 -0
- package/docs/benchmarks/executor-benchmark-runner.md +66 -0
- package/docs/bootstrap.md +161 -0
- package/docs/cli-reference.md +1645 -0
- package/docs/deploying-alongside.md +155 -0
- package/docs/design/README.md +36 -0
- package/docs/design/darth-feedor-migration.md +290 -0
- package/docs/design/roadmap/README.md +32 -0
- package/docs/design/roadmap/chain-templates/README.md +146 -0
- package/docs/design/roadmap/chain-templates/code-quick.formula.json +27 -0
- package/docs/design/roadmap/chain-templates/code-standard.formula.json +126 -0
- package/docs/design/roadmap/chain-templates/code-with-advisors.formula.json +128 -0
- package/docs/design/roadmap/chain-templates/code-with-tests.formula.json +76 -0
- package/docs/design/roadmap/chain-templates/debug.formula.json +128 -0
- package/docs/design/roadmap/chain-templates/doc-sync.formula.json +28 -0
- package/docs/design/roadmap/chain-templates/memory-hygiene.formula.json +27 -0
- package/docs/design/roadmap/chain-templates/planning.formula.json +27 -0
- package/docs/design/roadmap/chain-templates/premortem.formula.json +26 -0
- package/docs/design/roadmap/chain-templates/release-prep.formula.json +36 -0
- package/docs/design/roadmap/chain-templates/research-only.formula.json +28 -0
- package/docs/design/roadmap/chain-templates/restitch.formula.json +125 -0
- package/docs/design/roadmap/chain-templates/security-deep.formula.json +161 -0
- package/docs/design/roadmap/chain-templates/test-only.formula.json +52 -0
- package/docs/design/roadmap/chain-templates/triage.formula.json +35 -0
- package/docs/design/roadmap/history/handoff-from-substrate-design.md +87 -0
- package/docs/design/roadmap/history/substrate-reconciliation.md +105 -0
- package/docs/design/roadmap/specialists-roadmap.md +1261 -0
- package/docs/design/sp-console-subscribe-via-materializer.md +231 -0
- package/docs/design/sp-console-tui-mock-v2.html +293 -0
- package/docs/design/sp-console-tui-mock.html +120 -0
- package/docs/design/sp-console-tui.md +340 -0
- package/docs/design/specialist-agentops-suite.md +323 -0
- package/docs/design/substrate/channels.md +14 -0
- package/docs/design/substrate/devops-platform-engineering-prd.md +446 -0
- package/docs/design/substrate/html-design-example.md +339 -0
- package/docs/design/xtrm-tiers-architecture.svg +132 -0
- package/docs/devops/dependency-verdict-materialization.md +46 -0
- package/docs/epic-readiness.md +75 -0
- package/docs/examples/mercury-atomic-summarizer.specialist.json +26 -0
- package/docs/examples/smoke-echo-text-expected-keys.specialist.json +25 -0
- package/docs/examples/smoke-echo.specialist.json +25 -0
- package/docs/features.md +1577 -0
- package/docs/hooks.md +81 -0
- package/docs/installation.md +142 -0
- package/docs/manifest.md +184 -0
- package/docs/mcp-servers.md +73 -0
- package/docs/mcp-tools.md +71 -0
- package/docs/nodes.md +231 -0
- package/docs/observability-metrics.md +152 -0
- package/docs/operator/sp-console-v2-walkthrough.md +410 -0
- package/docs/overrides-guide.md +306 -0
- package/docs/pi-rpc-boundary.md +118 -0
- package/docs/pi-session.md +195 -0
- package/docs/release.md +22 -0
- package/docs/skills.md +132 -0
- package/docs/specialists/handoff-schema.md +181 -0
- package/docs/specialists-catalog.md +99 -0
- package/docs/specialists-service-install.md +226 -0
- package/docs/specialists-service.md +363 -0
- package/docs/surface-ownership.md +138 -0
- package/docs/upgrade-notes/kan-90-global-user-config.md +114 -0
- package/docs/upgrade-notes/kan-91-expanded-overrides.md +261 -0
- package/docs/workflow.md +114 -0
- package/docs/worktree.md +71 -0
- package/docs/worktrees.md +309 -0
- package/package.json +7 -4
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { type Component } from '@earendil-works/pi-tui';
|
|
2
|
+
import type { DiffFile, DiffSummary, RuntimeClient } from './types.js';
|
|
3
|
+
interface ConsoleAppOptions {
|
|
4
|
+
runtime: RuntimeClient;
|
|
5
|
+
requestRender: () => void;
|
|
6
|
+
stop: () => void;
|
|
7
|
+
rows: () => number;
|
|
8
|
+
}
|
|
9
|
+
export declare class ConsoleApp implements Component {
|
|
10
|
+
private readonly options;
|
|
11
|
+
private state;
|
|
12
|
+
private queues;
|
|
13
|
+
private refreshInFlight;
|
|
14
|
+
private disposed;
|
|
15
|
+
private renderedDetailRows;
|
|
16
|
+
private lastWidth;
|
|
17
|
+
private lastSnapshotHash;
|
|
18
|
+
private lastSnapshotJobs;
|
|
19
|
+
private processRowCache;
|
|
20
|
+
private allSnapshots;
|
|
21
|
+
private lastAllRefreshMs;
|
|
22
|
+
private allViewCursor;
|
|
23
|
+
private allViewRowMap;
|
|
24
|
+
private coalesceTimer;
|
|
25
|
+
private resizeHandler;
|
|
26
|
+
constructor(options: ConsoleAppOptions);
|
|
27
|
+
start(): Promise<void>;
|
|
28
|
+
stop(): void;
|
|
29
|
+
invalidate(): void;
|
|
30
|
+
handleInput(data: string): void;
|
|
31
|
+
render(width: number): string[];
|
|
32
|
+
private metersInput;
|
|
33
|
+
private loadRepos;
|
|
34
|
+
private refreshAllView;
|
|
35
|
+
private refresh;
|
|
36
|
+
private logViewKey;
|
|
37
|
+
private dispatch;
|
|
38
|
+
private scheduleRender;
|
|
39
|
+
private refreshAfter;
|
|
40
|
+
private scheduleRefresh;
|
|
41
|
+
private open;
|
|
42
|
+
private openRepoConfig;
|
|
43
|
+
private loadRepoConfigSnapshot;
|
|
44
|
+
private handleRepoConfigViewInput;
|
|
45
|
+
private basenameFromPath;
|
|
46
|
+
private handleRepoConfigEditInput;
|
|
47
|
+
private submitRepoConfigEdit;
|
|
48
|
+
private removeRepoConfigEntry;
|
|
49
|
+
private rescanRepoConfig;
|
|
50
|
+
private selectedRepoConfigName;
|
|
51
|
+
private back;
|
|
52
|
+
private moveAllViewCursor;
|
|
53
|
+
private openFromAllView;
|
|
54
|
+
private stopSelectedJob;
|
|
55
|
+
private stopSelectedAllViewJob;
|
|
56
|
+
private renderAllRows;
|
|
57
|
+
private renderMain;
|
|
58
|
+
private cycleConfigSpecialist;
|
|
59
|
+
private selectedConfigField;
|
|
60
|
+
private startConfigEdit;
|
|
61
|
+
private handleConfigEditInput;
|
|
62
|
+
private submitConfigEdit;
|
|
63
|
+
private undoConfigEdit;
|
|
64
|
+
private openConfigInEditor;
|
|
65
|
+
private renderRepoConfigRows;
|
|
66
|
+
private renderConfigRows;
|
|
67
|
+
private renderDiffRows;
|
|
68
|
+
private renderBeadRows;
|
|
69
|
+
private renderProcessRows;
|
|
70
|
+
private invalidateProcessRowCache;
|
|
71
|
+
private renderFeedRows;
|
|
72
|
+
private renderJobRows;
|
|
73
|
+
private renderResultRows;
|
|
74
|
+
private feedLines;
|
|
75
|
+
private detailJobLabel;
|
|
76
|
+
private findSelectedJob;
|
|
77
|
+
private mainViewportRows;
|
|
78
|
+
}
|
|
79
|
+
export declare function diffSummaryTitle(summary?: DiffSummary): string;
|
|
80
|
+
export declare function diffFileTitle(file: DiffFile): string;
|
|
81
|
+
export declare function fitFrame(lines: string[], width: number, height: number): string[];
|
|
82
|
+
export {};
|
|
83
|
+
//# sourceMappingURL=components.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../../../src/cli/console/components.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { type GlobalConfigSource } from '../../specialist/global-config.js';
|
|
3
|
+
import type { SpecialistLoader } from '../../specialist/loader.js';
|
|
4
|
+
export type ConfigFieldHint = string;
|
|
5
|
+
export interface ConfigField {
|
|
6
|
+
path: string;
|
|
7
|
+
value: unknown;
|
|
8
|
+
defaultValue?: unknown;
|
|
9
|
+
allowedHint: ConfigFieldHint;
|
|
10
|
+
isEnum: boolean;
|
|
11
|
+
enumValues?: string[];
|
|
12
|
+
isOverride: boolean;
|
|
13
|
+
isBlocked: boolean;
|
|
14
|
+
}
|
|
15
|
+
export interface ConfigSpecialistRow {
|
|
16
|
+
name: string;
|
|
17
|
+
hasOverride: boolean;
|
|
18
|
+
fields: ConfigField[];
|
|
19
|
+
blockedWarnings: string[];
|
|
20
|
+
}
|
|
21
|
+
export interface ConfigSnapshot {
|
|
22
|
+
path: string;
|
|
23
|
+
displayPath: string;
|
|
24
|
+
source: GlobalConfigSource;
|
|
25
|
+
exists: boolean;
|
|
26
|
+
parseError?: string;
|
|
27
|
+
validationErrors: Array<{
|
|
28
|
+
path: string;
|
|
29
|
+
message: string;
|
|
30
|
+
}>;
|
|
31
|
+
specialists: ConfigSpecialistRow[];
|
|
32
|
+
}
|
|
33
|
+
export declare function readGlobalConfigSnapshot(loader?: SpecialistLoader): ConfigSnapshot;
|
|
34
|
+
export declare function describeLeaf(path: string): {
|
|
35
|
+
hint: string;
|
|
36
|
+
isEnum: boolean;
|
|
37
|
+
enumValues?: string[];
|
|
38
|
+
};
|
|
39
|
+
export declare function formatConfigValue(value: unknown): string;
|
|
40
|
+
export interface CoerceResult {
|
|
41
|
+
ok: boolean;
|
|
42
|
+
value?: unknown;
|
|
43
|
+
error?: string;
|
|
44
|
+
}
|
|
45
|
+
export declare function getLeafSchema(path: string): z.ZodTypeAny | undefined;
|
|
46
|
+
export declare function coerceFieldValue(path: string, rawInput: string): CoerceResult;
|
|
47
|
+
export declare function applyFieldEdit(raw: Record<string, unknown>, specialist: string, path: string, value: unknown): Record<string, unknown>;
|
|
48
|
+
export interface WriteOutcome {
|
|
49
|
+
ok: boolean;
|
|
50
|
+
errors?: Array<{
|
|
51
|
+
path: string;
|
|
52
|
+
message: string;
|
|
53
|
+
}>;
|
|
54
|
+
errorClass?: string;
|
|
55
|
+
}
|
|
56
|
+
export declare function writeGlobalConfigSafe(rawObj: Record<string, unknown>, expectedMtimeMs?: number): WriteOutcome;
|
|
57
|
+
export declare function statConfigFileMtimeMs(): number | undefined;
|
|
58
|
+
//# sourceMappingURL=config-source.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-source.d.ts","sourceRoot":"","sources":["../../../../src/cli/console/config-source.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAML,KAAK,kBAAkB,EAExB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAGnE,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC;AAErC,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,EAAE,eAAe,CAAC;IAC7B,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3D,WAAW,EAAE,mBAAmB,EAAE,CAAC;CACpC;AA+BD,wBAAgB,wBAAwB,CAAC,MAAM,CAAC,EAAE,gBAAgB,GAAG,cAAc,CA6DlF;AAyFD,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,CASnG;AA2ED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAMxD;AAID,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC,UAAU,GAAG,SAAS,CAgBpE;AAqBD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY,CAgD7E;AAED,wBAAgB,cAAc,CAC5B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,GACb,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAmBzB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,eAAe,CAAC,EAAE,MAAM,GACvB,YAAY,CAsBd;AAED,wBAAgB,qBAAqB,IAAI,MAAM,GAAG,SAAS,CAQ1D"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type ForensicEvent, type TimelineForensicContext } from '../../specialist/forensic-events.js';
|
|
2
|
+
import type { TimelineEvent } from '../../specialist/timeline-events.js';
|
|
3
|
+
import type { FeedEventRow } from './types.js';
|
|
4
|
+
export declare const FORENSIC_LAYOUT: {
|
|
5
|
+
readonly SEQ_W: number;
|
|
6
|
+
readonly TYPE_W: number;
|
|
7
|
+
readonly ACTOR_W: number;
|
|
8
|
+
};
|
|
9
|
+
export declare function timelineToForensicRow(event: TimelineEvent, ctx: TimelineForensicContext, displaySeq: number): FeedEventRow;
|
|
10
|
+
export declare function forensicEventToFeedRow(forensic: ForensicEvent, ctx: TimelineForensicContext, displaySeq: number): FeedEventRow;
|
|
11
|
+
//# sourceMappingURL=forensic.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"forensic.d.ts","sourceRoot":"","sources":["../../../../src/cli/console/forensic.ts"],"names":[],"mappings":"AAeA,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,uBAAuB,EAC7B,MAAM,qCAAqC,CAAC;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAEzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAU/C,eAAO,MAAM,eAAe;;;;CAIlB,CAAC;AAEX,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,aAAa,EACpB,GAAG,EAAE,uBAAuB,EAC5B,UAAU,EAAE,MAAM,GACjB,YAAY,CAMd;AAED,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,aAAa,EACvB,GAAG,EAAE,uBAAuB,EAC5B,UAAU,EAAE,MAAM,GACjB,YAAY,CAoBd"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export type DiffStatus = 'M' | 'A' | 'D' | 'R' | 'C' | 'T' | 'U' | '?';
|
|
2
|
+
export interface DiffSummaryEntry {
|
|
3
|
+
path: string;
|
|
4
|
+
status: DiffStatus;
|
|
5
|
+
added: number;
|
|
6
|
+
deleted: number;
|
|
7
|
+
binary: boolean;
|
|
8
|
+
}
|
|
9
|
+
export interface DiffHunk {
|
|
10
|
+
header: string;
|
|
11
|
+
lines: DiffLine[];
|
|
12
|
+
}
|
|
13
|
+
export interface DiffLine {
|
|
14
|
+
kind: 'context' | 'add' | 'del' | 'meta';
|
|
15
|
+
text: string;
|
|
16
|
+
}
|
|
17
|
+
export declare function isValidGitRef(ref: string): boolean;
|
|
18
|
+
export declare function parseNumstat(input: string): Array<{
|
|
19
|
+
path: string;
|
|
20
|
+
added: number;
|
|
21
|
+
deleted: number;
|
|
22
|
+
binary: boolean;
|
|
23
|
+
}>;
|
|
24
|
+
export declare function parsePorcelainStatus(input: string): Map<string, DiffStatus>;
|
|
25
|
+
export declare function buildDiffSummary(numstat: ReturnType<typeof parseNumstat>, porcelain: Map<string, DiffStatus>): DiffSummaryEntry[];
|
|
26
|
+
export declare function parseUnifiedDiff(input: string): DiffHunk[];
|
|
27
|
+
export declare const HUNK_DISPLAY_CEILING = 5000;
|
|
28
|
+
//# sourceMappingURL=git.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../../../src/cli/console/git.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,UAAU,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAEvE,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,QAAQ,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,SAAS,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;IACzC,IAAI,EAAE,MAAM,CAAC;CACd;AAID,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAIlD;AAOD,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC,CAiBpH;AAsBD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAgB3E;AAeD,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,EACxC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,GACjC,gBAAgB,EAAE,CAkBpB;AAGD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,EAAE,CA0B1D;AAED,eAAO,MAAM,oBAAoB,OAAO,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../../../src/cli/console/help.ts"],"names":[],"mappings":"AAOA,wBAAgB,eAAe,IAAI,SAAS,MAAM,EAAE,CAgEnD"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export type ConsoleErrorOp = 'bd_show' | 'git_diff' | 'git_numstat' | 'git_show' | 'git_status' | 'merge_base' | 'subscribe_feed' | 'list_processes' | 'read_global_config' | 'write_global_config' | 'editor_spawn' | 'render';
|
|
2
|
+
export type ConsoleView = 'ps' | 'feed' | 'job' | 'bead' | 'diff' | 'config' | 'result';
|
|
3
|
+
export interface LogErrorExtras {
|
|
4
|
+
exitCode?: number | null;
|
|
5
|
+
durationMs?: number;
|
|
6
|
+
errorClass?: string;
|
|
7
|
+
beadId?: string;
|
|
8
|
+
step?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare function logError(view: ConsoleView, op: ConsoleErrorOp, extras?: LogErrorExtras): void;
|
|
11
|
+
export declare function resetLogErrorMemo(): void;
|
|
12
|
+
export declare function errorClassOf(error: unknown): string;
|
|
13
|
+
//# sourceMappingURL=log.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../../../src/cli/console/log.ts"],"names":[],"mappings":"AAUA,MAAM,MAAM,cAAc,GACtB,SAAS,GACT,UAAU,GACV,aAAa,GACb,UAAU,GACV,YAAY,GACZ,YAAY,GACZ,gBAAgB,GAChB,gBAAgB,GAChB,oBAAoB,GACpB,qBAAqB,GACrB,cAAc,GACd,QAAQ,CAAC;AAEb,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAExF,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IAIpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAIhB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAKD,wBAAgB,QAAQ,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,cAAc,EAAE,MAAM,GAAE,cAAmB,GAAG,IAAI,CAsBjG;AAED,wBAAgB,iBAAiB,IAAI,IAAI,CAExC;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAMnD"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export declare const CONSOLE_CONFIG_SCHEMA_VERSION = 1;
|
|
2
|
+
export declare const CONSOLE_CONFIG_DOC = "./console-config-guide.md";
|
|
3
|
+
export type ConsoleConfigSource = 'xdg' | 'config-home' | 'legacy';
|
|
4
|
+
export interface ConsoleConfigPath {
|
|
5
|
+
path: string;
|
|
6
|
+
exists: boolean;
|
|
7
|
+
source: ConsoleConfigSource;
|
|
8
|
+
}
|
|
9
|
+
export interface ConsoleConfigRepoEntry {
|
|
10
|
+
name: string;
|
|
11
|
+
path: string;
|
|
12
|
+
}
|
|
13
|
+
export interface ConsoleConfig {
|
|
14
|
+
_doc?: string;
|
|
15
|
+
schema_version: number;
|
|
16
|
+
base_dirs: string[];
|
|
17
|
+
repos: ConsoleConfigRepoEntry[];
|
|
18
|
+
auto_discovered_at?: string;
|
|
19
|
+
}
|
|
20
|
+
export declare function getConsoleConfigPath(): ConsoleConfigPath;
|
|
21
|
+
export declare function readConsoleConfig(): ConsoleConfig | null;
|
|
22
|
+
export declare function writeConsoleConfig(config: ConsoleConfig, cookie?: string): void;
|
|
23
|
+
export declare function buildConsoleConfigTemplate(repos: ConsoleConfigRepoEntry[], baseDirs: string[], nowIso: string): ConsoleConfig;
|
|
24
|
+
export declare function isConsoleConfigStale(config: ConsoleConfig, maxAgeMs?: number): boolean;
|
|
25
|
+
export declare function pruneMissingRepos(repos: ConsoleConfigRepoEntry[]): ConsoleConfigRepoEntry[];
|
|
26
|
+
//# sourceMappingURL=repo-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repo-config.d.ts","sourceRoot":"","sources":["../../../../src/cli/console/repo-config.ts"],"names":[],"mappings":"AA8BA,eAAO,MAAM,6BAA6B,IAAI,CAAC;AAC/C,eAAO,MAAM,kBAAkB,8BAA8B,CAAC;AAE9D,MAAM,MAAM,mBAAmB,GAAG,KAAK,GAAG,aAAa,GAAG,QAAQ,CAAC;AAEnE,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,mBAAmB,CAAC;CAC7B;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,EAAE,sBAAsB,EAAE,CAAC;IAChC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAID,wBAAgB,oBAAoB,IAAI,iBAAiB,CAiBxD;AAID,wBAAgB,iBAAiB,IAAI,aAAa,GAAG,IAAI,CAcxD;AA6BD,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,aAAa,EACrB,MAAM,GAAE,MAAiE,GACxE,IAAI,CAmBN;AAID,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,sBAAsB,EAAE,EAC/B,QAAQ,EAAE,MAAM,EAAE,EAClB,MAAM,EAAE,MAAM,GACb,aAAa,CAQf;AAID,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,aAAa,EAAE,QAAQ,GAAE,MAAiC,GAAG,OAAO,CAKhH;AAID,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,EAAE,GAAG,sBAAsB,EAAE,CAQ3F"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ConsoleConfigRepoEntry } from './repo-config.js';
|
|
2
|
+
export declare const DEFAULT_BASE_DIR_CANDIDATES: readonly ["~/dev", "~/projects", "~/work", "~/repos", "~/code"];
|
|
3
|
+
export declare const MAX_SCAN_DEPTH = 2;
|
|
4
|
+
export declare function expandHomePath(p: string): string;
|
|
5
|
+
export interface DiscoveryResult {
|
|
6
|
+
/** Repos discovered. Sorted alphabetically by name. */
|
|
7
|
+
repos: ConsoleConfigRepoEntry[];
|
|
8
|
+
/** Base dirs we actually scanned (existed at scan time). */
|
|
9
|
+
scannedBaseDirs: string[];
|
|
10
|
+
}
|
|
11
|
+
export declare function discoverRepos(baseDirCandidates?: readonly string[]): DiscoveryResult;
|
|
12
|
+
//# sourceMappingURL=repo-discovery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repo-discovery.d.ts","sourceRoot":"","sources":["../../../../src/cli/console/repo-discovery.ts"],"names":[],"mappings":"AA6BA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAI/D,eAAO,MAAM,2BAA2B,iEAM9B,CAAC;AAMX,eAAO,MAAM,cAAc,IAAI,CAAC;AAIhC,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAKhD;AAED,MAAM,WAAW,eAAe;IAC9B,uDAAuD;IACvD,KAAK,EAAE,sBAAsB,EAAE,CAAC;IAChC,4DAA4D;IAC5D,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,wBAAgB,aAAa,CAC3B,iBAAiB,GAAE,SAAS,MAAM,EAAgC,GACjE,eAAe,CAcjB"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type TimelineEvent } from '../../specialist/timeline-events.js';
|
|
2
|
+
import type { BeadDoc, ConsoleJob, ProcessRow, RepoRef, RuntimeClient } from './types.js';
|
|
3
|
+
export declare function createRuntimeClient(cwd?: string): RuntimeClient;
|
|
4
|
+
export interface ListReposResult {
|
|
5
|
+
repos: RepoRef[];
|
|
6
|
+
message?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function parseBdShowJson(beadId: string, stdout: string): BeadDoc;
|
|
9
|
+
export declare function buildChronologicalRows(jobs: ConsoleJob[]): ProcessRow[];
|
|
10
|
+
export declare function dedupeHumanEvents(jobId: string, events: TimelineEvent[]): TimelineEvent[];
|
|
11
|
+
export declare function formatDateTime(ms: number | undefined): string;
|
|
12
|
+
//# sourceMappingURL=runtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../../src/cli/console/runtime.ts"],"names":[],"mappings":"AAYA,OAAO,EAA6C,KAAK,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpH,OAAO,KAAK,EACV,OAAO,EAGP,UAAU,EASV,UAAU,EAIV,OAAO,EACP,aAAa,EAEd,MAAM,YAAY,CAAC;AA0BpB,wBAAgB,mBAAmB,CAAC,GAAG,SAAgB,GAAG,aAAa,CAEtE;AAKD,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAymBD,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAuDvE;AAsZD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,UAAU,EAAE,CAIvE;AA0FD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,aAAa,EAAE,CAsBzF;AAuCD,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAU7D"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type Server } from 'node:net';
|
|
2
|
+
export interface SyncHintFrame {
|
|
3
|
+
event: 'specialists:sync_hint';
|
|
4
|
+
data: {
|
|
5
|
+
repoSlug: string;
|
|
6
|
+
};
|
|
7
|
+
}
|
|
8
|
+
export type OnHint = (repoSlug: string) => void;
|
|
9
|
+
export declare function prototypeEnabled(): boolean;
|
|
10
|
+
export declare function connectSubscriber(socketPath: string, onHint: OnHint): {
|
|
11
|
+
close: () => void;
|
|
12
|
+
};
|
|
13
|
+
export declare function spawnFakeMaterializer(repoSlugs: string[]): {
|
|
14
|
+
server: Server;
|
|
15
|
+
socketPath: string;
|
|
16
|
+
close: () => void;
|
|
17
|
+
} | null;
|
|
18
|
+
//# sourceMappingURL=subscribe-prototype.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subscribe-prototype.d.ts","sourceRoot":"","sources":["../../../../src/cli/console/subscribe-prototype.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAkC,KAAK,MAAM,EAAe,MAAM,UAAU,CAAC;AAOpF,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,uBAAuB,CAAC;IAC/B,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;CAC5B;AAED,MAAM,MAAM,MAAM,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;AAEhD,wBAAgB,gBAAgB,IAAI,OAAO,CAE1C;AAID,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,IAAI,CAAA;CAAE,CA8D3F;AAID,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,IAAI,CAAA;CAAE,GAAG,IAAI,CAwC3H"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import type { ConsoleJob, ProcessSnapshot } from './types.js';
|
|
2
|
+
export type ThemeColor = 'txt' | 'bright' | 'dim' | 'rail' | 'sel' | 'running' | 'done' | 'reviewing' | 'waiting' | 'idle' | 'blocked';
|
|
3
|
+
export declare function paint(text: string, color: ThemeColor): string;
|
|
4
|
+
export declare function paintBg(text: string, color: ThemeColor): string;
|
|
5
|
+
export declare const STATUS_GLYPH: {
|
|
6
|
+
readonly running: "●";
|
|
7
|
+
readonly waiting: "◐";
|
|
8
|
+
readonly starting: "◐";
|
|
9
|
+
readonly done: "○";
|
|
10
|
+
readonly error: "✕";
|
|
11
|
+
readonly cancelled: "○";
|
|
12
|
+
readonly dead: "✕";
|
|
13
|
+
};
|
|
14
|
+
export declare const CONTAINER_GLYPH: {
|
|
15
|
+
readonly epic: "◆";
|
|
16
|
+
readonly chain: "◇";
|
|
17
|
+
readonly node: "▦";
|
|
18
|
+
};
|
|
19
|
+
export declare function statusColor(status: string, dead?: boolean): ThemeColor;
|
|
20
|
+
export declare function statusGlyph(status: string, dead?: boolean): string;
|
|
21
|
+
export declare function ctxColor(pct?: number): ThemeColor;
|
|
22
|
+
export type JobColumnKey = 'id' | 'spec' | 'status' | 'ctxPct' | 'elapsed' | 'payloadKb' | 'payloadTok' | 'bead' | 'next' | 'title';
|
|
23
|
+
export declare const COLUMNS: Record<JobColumnKey, {
|
|
24
|
+
width: number;
|
|
25
|
+
align: 'L' | 'R';
|
|
26
|
+
}>;
|
|
27
|
+
export declare function padR(s: string, n: number): string;
|
|
28
|
+
export declare function padL(s: string, n: number): string;
|
|
29
|
+
export declare function truncEllipsis(s: string, n: number): string;
|
|
30
|
+
export declare function renderRail(depth: number): string;
|
|
31
|
+
export declare function composeElapsed(job: ConsoleJob): string;
|
|
32
|
+
export declare function jobRowFieldValues(job: ConsoleJob): Record<JobColumnKey, string>;
|
|
33
|
+
export declare function selectJobColumns(width: number, depth: number): JobColumnKey[];
|
|
34
|
+
export declare function renderJobRow(job: ConsoleJob, width: number, depth: number, selected: boolean): string;
|
|
35
|
+
export type GroupKind = 'epic' | 'chain' | 'node' | 'branch' | 'worktree' | 'label';
|
|
36
|
+
export declare function renderGroupRow(kind: GroupKind, label: string, width: number, depth: number): string;
|
|
37
|
+
export declare function renderStatsLine(snapshot: ProcessSnapshot | undefined, width: number): string;
|
|
38
|
+
export declare function renderRepoSectionHeader(name: string, path: string, activeCount: number, width: number): string;
|
|
39
|
+
export declare function renderKeyBar(view: string, follow: boolean, width: number, feedSource?: 'sp_feed' | 'forensic'): string;
|
|
40
|
+
export declare function renderTabs(repos: Array<{
|
|
41
|
+
name: string;
|
|
42
|
+
}>, currentIndex: number, width: number, currentView?: string): string;
|
|
43
|
+
export interface MetersInput {
|
|
44
|
+
active: number;
|
|
45
|
+
activeTotal: number;
|
|
46
|
+
leases: number;
|
|
47
|
+
leaseCapacity: number;
|
|
48
|
+
budgetPct: number;
|
|
49
|
+
}
|
|
50
|
+
export declare function renderMeters(input: MetersInput, width: number): string;
|
|
51
|
+
export declare function renderViewtag(views: readonly string[], currentView: string, width: number): string;
|
|
52
|
+
export declare function renderSectionTitle(text: string, width: number): string;
|
|
53
|
+
export declare function fillerLine(width: number): string;
|
|
54
|
+
export declare function renderHeader(viewLabel: string, repoName: string, repoPath: string, width: number): string;
|
|
55
|
+
export declare function renderInspectField(label: string, value: string, width: number): string;
|
|
56
|
+
export declare function renderResultTitle(title: string, width: number): string;
|
|
57
|
+
export declare function renderResultFooter(footer: string, width: number): string;
|
|
58
|
+
export declare function renderMessage(message: string, width: number): string;
|
|
59
|
+
export declare function renderFilterPrompt(text: string, width: number): string;
|
|
60
|
+
export declare function renderPlaceholder(text: string, width: number): string;
|
|
61
|
+
export declare function renderConfigField(path: string, valueText: string, hint: string, width: number, flags?: {
|
|
62
|
+
isOverride: boolean;
|
|
63
|
+
isInherit: boolean;
|
|
64
|
+
defaultValue?: string;
|
|
65
|
+
}): string;
|
|
66
|
+
export declare function renderConfigSpecialistRow(name: string, hasOverride: boolean, selected: boolean, width: number): string;
|
|
67
|
+
export interface RepoConfigRowInput {
|
|
68
|
+
name: string;
|
|
69
|
+
path: string;
|
|
70
|
+
exists: boolean;
|
|
71
|
+
dbExists: boolean;
|
|
72
|
+
dbSizeBytes: number;
|
|
73
|
+
lastActivityMs?: number;
|
|
74
|
+
runningJobs: number;
|
|
75
|
+
waitingJobs: number;
|
|
76
|
+
current: boolean;
|
|
77
|
+
}
|
|
78
|
+
export declare function renderRepoConfigRow(row: RepoConfigRowInput, width: number, selected: boolean): string;
|
|
79
|
+
export declare function renderDiffSummaryRow(entry: {
|
|
80
|
+
path: string;
|
|
81
|
+
status: string;
|
|
82
|
+
added: number;
|
|
83
|
+
deleted: number;
|
|
84
|
+
binary: boolean;
|
|
85
|
+
}, width: number, selected: boolean): string;
|
|
86
|
+
export declare function renderDiffHunkHeader(text: string, width: number): string;
|
|
87
|
+
export declare function renderDiffHunkLine(kind: 'context' | 'add' | 'del' | 'meta', text: string, width: number): string;
|
|
88
|
+
export declare function renderBeadField(key: string, value: string, width: number): string;
|
|
89
|
+
export declare function renderBeadBodyLine(line: string, width: number): string;
|
|
90
|
+
export declare function visibleLength(s: string): number;
|
|
91
|
+
//# sourceMappingURL=theme.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../../../src/cli/console/theme.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
import type { ProcessHealthReport } from '../../specialist/process-health.js';
|
|
2
|
+
import type { SupervisorStatus } from '../../specialist/supervisor.js';
|
|
3
|
+
export type ConsoleView = 'all' | 'ps' | 'feed' | 'job' | 'result' | 'bead' | 'diff' | 'config' | 'repoConfig';
|
|
4
|
+
export type HistoryMode = 'default' | 'history' | 'all';
|
|
5
|
+
export type FeedSource = 'sp_feed' | 'forensic';
|
|
6
|
+
export interface RepoRef {
|
|
7
|
+
id: string;
|
|
8
|
+
name: string;
|
|
9
|
+
path: string;
|
|
10
|
+
dbPath?: string;
|
|
11
|
+
current?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export interface ProcessFilter {
|
|
14
|
+
historyMode: HistoryMode;
|
|
15
|
+
includeCleaned: boolean;
|
|
16
|
+
textFilter: string;
|
|
17
|
+
}
|
|
18
|
+
export interface ConsoleJob extends SupervisorStatus {
|
|
19
|
+
is_dead?: boolean;
|
|
20
|
+
bead_title?: string;
|
|
21
|
+
payload_kb?: string;
|
|
22
|
+
payload_tokens?: string;
|
|
23
|
+
next_action?: string;
|
|
24
|
+
}
|
|
25
|
+
export type ProcessRow = {
|
|
26
|
+
kind: 'group';
|
|
27
|
+
id: string;
|
|
28
|
+
label: string;
|
|
29
|
+
depth: number;
|
|
30
|
+
} | {
|
|
31
|
+
kind: 'job';
|
|
32
|
+
id: string;
|
|
33
|
+
job: ConsoleJob;
|
|
34
|
+
depth: number;
|
|
35
|
+
};
|
|
36
|
+
export interface ProcessSnapshot {
|
|
37
|
+
generatedAtMs: number;
|
|
38
|
+
repo: RepoRef;
|
|
39
|
+
filter: ProcessFilter;
|
|
40
|
+
rows: ProcessRow[];
|
|
41
|
+
jobs: ConsoleJob[];
|
|
42
|
+
totalJobs: number;
|
|
43
|
+
visibleJobs: number;
|
|
44
|
+
runningJobs: number;
|
|
45
|
+
waitingJobs: number;
|
|
46
|
+
epics: number;
|
|
47
|
+
nodes: number;
|
|
48
|
+
worktrees: number;
|
|
49
|
+
maxContextPct?: number;
|
|
50
|
+
totalTokens: number;
|
|
51
|
+
health: ProcessHealthReport | null;
|
|
52
|
+
}
|
|
53
|
+
export interface FeedEventRow {
|
|
54
|
+
jobId: string;
|
|
55
|
+
specialist: string;
|
|
56
|
+
beadId?: string;
|
|
57
|
+
seq?: number;
|
|
58
|
+
t: number;
|
|
59
|
+
type: string;
|
|
60
|
+
line: string;
|
|
61
|
+
}
|
|
62
|
+
export interface JobInspect {
|
|
63
|
+
job: ConsoleJob;
|
|
64
|
+
fields: Array<{
|
|
65
|
+
label: string;
|
|
66
|
+
value: string;
|
|
67
|
+
}>;
|
|
68
|
+
actions: string[];
|
|
69
|
+
}
|
|
70
|
+
export interface JobResult {
|
|
71
|
+
job: ConsoleJob | null;
|
|
72
|
+
title: string;
|
|
73
|
+
output: string;
|
|
74
|
+
footer: string;
|
|
75
|
+
error?: string;
|
|
76
|
+
}
|
|
77
|
+
export interface BeadField {
|
|
78
|
+
key: string;
|
|
79
|
+
value: string;
|
|
80
|
+
}
|
|
81
|
+
export interface BeadSection {
|
|
82
|
+
title: string;
|
|
83
|
+
body: string;
|
|
84
|
+
}
|
|
85
|
+
export interface BeadDoc {
|
|
86
|
+
beadId: string;
|
|
87
|
+
fields: BeadField[];
|
|
88
|
+
sections: BeadSection[];
|
|
89
|
+
raw?: string;
|
|
90
|
+
error?: string;
|
|
91
|
+
}
|
|
92
|
+
export interface LiveStateRow {
|
|
93
|
+
key: string;
|
|
94
|
+
value: string;
|
|
95
|
+
}
|
|
96
|
+
export interface LiveStateRows {
|
|
97
|
+
rows: LiveStateRow[];
|
|
98
|
+
error?: string;
|
|
99
|
+
}
|
|
100
|
+
export interface WorktreeRef {
|
|
101
|
+
path: string;
|
|
102
|
+
branch?: string;
|
|
103
|
+
base: string;
|
|
104
|
+
}
|
|
105
|
+
export type DiffSource = 'worktree' | 'commit';
|
|
106
|
+
export interface DiffSummary {
|
|
107
|
+
worktree: WorktreeRef | null;
|
|
108
|
+
entries: Array<{
|
|
109
|
+
path: string;
|
|
110
|
+
status: 'M' | 'A' | 'D' | 'R' | 'C' | 'T' | 'U' | '?';
|
|
111
|
+
added: number;
|
|
112
|
+
deleted: number;
|
|
113
|
+
binary: boolean;
|
|
114
|
+
}>;
|
|
115
|
+
source?: DiffSource;
|
|
116
|
+
commitSha?: string;
|
|
117
|
+
error?: string;
|
|
118
|
+
}
|
|
119
|
+
export interface DiffHunkLine {
|
|
120
|
+
kind: 'context' | 'add' | 'del' | 'meta';
|
|
121
|
+
text: string;
|
|
122
|
+
}
|
|
123
|
+
export interface DiffHunkBlock {
|
|
124
|
+
header: string;
|
|
125
|
+
lines: DiffHunkLine[];
|
|
126
|
+
}
|
|
127
|
+
export interface DiffFile {
|
|
128
|
+
path: string;
|
|
129
|
+
binary: boolean;
|
|
130
|
+
hunks: DiffHunkBlock[];
|
|
131
|
+
truncated?: boolean;
|
|
132
|
+
totalLines?: number;
|
|
133
|
+
source?: DiffSource;
|
|
134
|
+
commitSha?: string;
|
|
135
|
+
error?: string;
|
|
136
|
+
}
|
|
137
|
+
export interface RepoConfigRow {
|
|
138
|
+
name: string;
|
|
139
|
+
path: string;
|
|
140
|
+
exists: boolean;
|
|
141
|
+
dbExists: boolean;
|
|
142
|
+
dbSizeBytes: number;
|
|
143
|
+
lastActivityMs?: number;
|
|
144
|
+
runningJobs: number;
|
|
145
|
+
waitingJobs: number;
|
|
146
|
+
current: boolean;
|
|
147
|
+
}
|
|
148
|
+
export interface RepoConfigSnapshot {
|
|
149
|
+
rows: RepoConfigRow[];
|
|
150
|
+
baseDirs: string[];
|
|
151
|
+
autoDiscoveredAt?: string;
|
|
152
|
+
configPath: string;
|
|
153
|
+
configExists: boolean;
|
|
154
|
+
}
|
|
155
|
+
export interface ListReposContext {
|
|
156
|
+
repos: RepoRef[];
|
|
157
|
+
/**
|
|
158
|
+
* Optional one-line message surfaced into the existing message slot.
|
|
159
|
+
* Used for first-run auto-discovery feedback (unitAI-29p39).
|
|
160
|
+
*/
|
|
161
|
+
message?: string;
|
|
162
|
+
}
|
|
163
|
+
export interface RuntimeClient {
|
|
164
|
+
listRepos(): Promise<RepoRef[]>;
|
|
165
|
+
/**
|
|
166
|
+
* Optional context-aware seam used by ConsoleApp.loadRepos to surface
|
|
167
|
+
* a startup message (e.g. discovery result). Defaults to a thin
|
|
168
|
+
* wrapper over listRepos() when a runtime implementation skips it
|
|
169
|
+
* (e.g. test stubs).
|
|
170
|
+
*/
|
|
171
|
+
listReposWithContext?(): Promise<ListReposContext>;
|
|
172
|
+
listProcessSnapshot(repo: RepoRef, filter: ProcessFilter): Promise<ProcessSnapshot>;
|
|
173
|
+
readFeed(args: {
|
|
174
|
+
repo: RepoRef;
|
|
175
|
+
jobId: string;
|
|
176
|
+
fromSeq?: number;
|
|
177
|
+
limit?: number;
|
|
178
|
+
source?: FeedSource;
|
|
179
|
+
}): Promise<FeedEventRow[]>;
|
|
180
|
+
inspectJob(repo: RepoRef, jobIdPrefix: string): Promise<JobInspect>;
|
|
181
|
+
readResult(repo: RepoRef, jobIdPrefix: string): Promise<JobResult>;
|
|
182
|
+
linkedDetail(repo: RepoRef, jobIdPrefix: string): Promise<BeadDoc>;
|
|
183
|
+
liveStateFor(repo: RepoRef, jobIdPrefix: string): Promise<LiveStateRows>;
|
|
184
|
+
resolveWorktree(repo: RepoRef, jobIdPrefix: string): Promise<WorktreeRef | null>;
|
|
185
|
+
diffSummary(repo: RepoRef, jobIdPrefix: string): Promise<DiffSummary>;
|
|
186
|
+
diffFile(repo: RepoRef, jobIdPrefix: string, file: string): Promise<DiffFile>;
|
|
187
|
+
/**
|
|
188
|
+
* Repo config (~/.config/specialists/console.json) management — surfaced
|
|
189
|
+
* via RepoConfigView (unitAI-hneld). Optional so test stubs that don't
|
|
190
|
+
* care about the R keybind can skip the implementation.
|
|
191
|
+
*/
|
|
192
|
+
readRepoConfigSnapshot?(cwd?: string): Promise<RepoConfigSnapshot>;
|
|
193
|
+
addRepoConfigEntry?(entry: {
|
|
194
|
+
name: string;
|
|
195
|
+
path: string;
|
|
196
|
+
}): Promise<{
|
|
197
|
+
ok: boolean;
|
|
198
|
+
error?: string;
|
|
199
|
+
snapshot?: RepoConfigSnapshot;
|
|
200
|
+
}>;
|
|
201
|
+
removeRepoConfigEntry?(name: string): Promise<{
|
|
202
|
+
ok: boolean;
|
|
203
|
+
error?: string;
|
|
204
|
+
snapshot?: RepoConfigSnapshot;
|
|
205
|
+
}>;
|
|
206
|
+
editRepoConfigEntry?(name: string, field: 'name' | 'path', value: string): Promise<{
|
|
207
|
+
ok: boolean;
|
|
208
|
+
error?: string;
|
|
209
|
+
snapshot?: RepoConfigSnapshot;
|
|
210
|
+
}>;
|
|
211
|
+
rescanRepoConfig?(): Promise<{
|
|
212
|
+
ok: boolean;
|
|
213
|
+
error?: string;
|
|
214
|
+
snapshot?: RepoConfigSnapshot;
|
|
215
|
+
discoveredCount?: number;
|
|
216
|
+
}>;
|
|
217
|
+
stopJob?(repo: RepoRef, jobId: string): Promise<void>;
|
|
218
|
+
readGlobalConfig(): Promise<import('./config-source.js').ConfigSnapshot>;
|
|
219
|
+
writeGlobalConfig(rawObj: Record<string, unknown>, expectedMtimeMs?: number): Promise<import('./config-source.js').WriteOutcome>;
|
|
220
|
+
readRawGlobalConfig(): Promise<{
|
|
221
|
+
raw: Record<string, unknown>;
|
|
222
|
+
mtimeMs?: number;
|
|
223
|
+
exists: boolean;
|
|
224
|
+
}>;
|
|
225
|
+
openConfigInEditor(): Promise<{
|
|
226
|
+
ok: boolean;
|
|
227
|
+
errorClass?: string;
|
|
228
|
+
}>;
|
|
229
|
+
}
|
|
230
|
+
export declare const BEAD_ID_RE: RegExp;
|
|
231
|
+
//# sourceMappingURL=types.d.ts.map
|