@flyingrobots/graft 0.7.0 → 0.7.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/CHANGELOG.md +13 -0
- package/README.md +0 -1
- package/bin/graft.js +26 -26
- package/dist/cli/init-client-config.d.ts.map +1 -1
- package/dist/cli/init-client-config.js +40 -4
- package/dist/cli/init-client-config.js.map +1 -1
- package/dist/cli/init-model.js +2 -2
- package/dist/cli/init-model.js.map +1 -1
- package/dist/cli/json-document.d.ts +1 -0
- package/dist/cli/json-document.d.ts.map +1 -1
- package/dist/cli/json-document.js +3 -0
- package/dist/cli/json-document.js.map +1 -1
- package/dist/hooks/posttooluse-read.js +1 -1
- package/dist/hooks/posttooluse-read.js.map +1 -1
- package/dist/hooks/pretooluse-read.js +1 -1
- package/dist/hooks/pretooluse-read.js.map +1 -1
- package/dist/mcp/daemon-worker-child-pool.d.ts +2 -0
- package/dist/mcp/daemon-worker-child-pool.d.ts.map +1 -1
- package/dist/mcp/daemon-worker-child-pool.js +10 -3
- package/dist/mcp/daemon-worker-child-pool.js.map +1 -1
- package/dist/mcp/daemon-worker-pool.d.ts +1 -1
- package/dist/mcp/daemon-worker-pool.d.ts.map +1 -1
- package/dist/mcp/daemon-worker-pool.js +1 -1
- package/dist/mcp/daemon-worker-pool.js.map +1 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +3 -1
- package/dist/version.js.map +1 -1
- package/docs/SETUP.md +11 -7
- package/package.json +9 -4
- package/src/adapters/canonical-json.ts +0 -56
- package/src/adapters/json-text-decoder.ts +0 -11
- package/src/adapters/node-fs.ts +0 -43
- package/src/adapters/node-git.ts +0 -47
- package/src/adapters/node-paths.ts +0 -35
- package/src/adapters/node-process-runner.ts +0 -27
- package/src/adapters/repo-paths.ts +0 -63
- package/src/adapters/rotating-ndjson-log.ts +0 -66
- package/src/api/index.ts +0 -107
- package/src/api/repo-local-graft.ts +0 -21
- package/src/api/repo-workspace.ts +0 -34
- package/src/api/tool-bridge.ts +0 -22
- package/src/cli/activity-render.ts +0 -112
- package/src/cli/cli-error.ts +0 -192
- package/src/cli/command-parser.ts +0 -484
- package/src/cli/daemon-status-model.ts +0 -238
- package/src/cli/daemon-status-render.ts +0 -102
- package/src/cli/daemon-status.ts +0 -100
- package/src/cli/entrypoint.ts +0 -18
- package/src/cli/git-graft-enhance-model.ts +0 -131
- package/src/cli/git-graft-enhance-render.ts +0 -33
- package/src/cli/git-graft-enhance.ts +0 -54
- package/src/cli/index-cmd.ts +0 -90
- package/src/cli/index-model.ts +0 -75
- package/src/cli/init-bootstrap.ts +0 -47
- package/src/cli/init-client-config.ts +0 -428
- package/src/cli/init-model.ts +0 -284
- package/src/cli/init-render.ts +0 -54
- package/src/cli/init-target-hooks.ts +0 -93
- package/src/cli/init.ts +0 -124
- package/src/cli/json-document.ts +0 -155
- package/src/cli/local-history-dag-model.ts +0 -437
- package/src/cli/local-history-dag-render.ts +0 -133
- package/src/cli/local-history-dag.ts +0 -103
- package/src/cli/main.ts +0 -197
- package/src/cli/migrate-local-history.ts +0 -119
- package/src/cli/peer-command.ts +0 -60
- package/src/contracts/capabilities.ts +0 -540
- package/src/contracts/causal-ontology.ts +0 -627
- package/src/contracts/causal-surface-next-action.ts +0 -18
- package/src/contracts/json-object.ts +0 -18
- package/src/contracts/mcp-runtime.ts +0 -16
- package/src/contracts/output-schema-cli.ts +0 -103
- package/src/contracts/output-schema-fragments.ts +0 -881
- package/src/contracts/output-schema-mcp.ts +0 -501
- package/src/contracts/output-schema-meta.ts +0 -119
- package/src/contracts/output-schemas.ts +0 -1524
- package/src/git/diff.ts +0 -161
- package/src/git/target-git-hook-bootstrap.ts +0 -56
- package/src/guards/stream-boundary.ts +0 -110
- package/src/hooks/posttooluse-read.ts +0 -54
- package/src/hooks/pretooluse-read.ts +0 -52
- package/src/hooks/read-governor.ts +0 -95
- package/src/hooks/read-messages.ts +0 -53
- package/src/hooks/shared.ts +0 -168
- package/src/index.ts +0 -1
- package/src/mcp/burden.ts +0 -132
- package/src/mcp/cache.ts +0 -7
- package/src/mcp/cached-file.ts +0 -1
- package/src/mcp/context.ts +0 -150
- package/src/mcp/control-plane/authz-storage.ts +0 -129
- package/src/mcp/control-plane/session-registry.ts +0 -115
- package/src/mcp/control-plane/status-projection.ts +0 -76
- package/src/mcp/control-plane/types.ts +0 -144
- package/src/mcp/daemon-bootstrap.ts +0 -100
- package/src/mcp/daemon-control-plane.ts +0 -310
- package/src/mcp/daemon-job-scheduler.ts +0 -279
- package/src/mcp/daemon-repos.ts +0 -99
- package/src/mcp/daemon-server.ts +0 -172
- package/src/mcp/daemon-session-host.ts +0 -234
- package/src/mcp/daemon-stdio-bridge.ts +0 -262
- package/src/mcp/daemon-worker-child-pool.ts +0 -213
- package/src/mcp/daemon-worker-inline-pool.ts +0 -46
- package/src/mcp/daemon-worker-pool.ts +0 -7
- package/src/mcp/daemon-worker-process.ts +0 -52
- package/src/mcp/daemon-worker-types.ts +0 -66
- package/src/mcp/metrics.ts +0 -176
- package/src/mcp/monitor-health.ts +0 -83
- package/src/mcp/monitor-persistence.ts +0 -54
- package/src/mcp/monitor-tick-job.ts +0 -153
- package/src/mcp/monitor-types.ts +0 -103
- package/src/mcp/persisted-local-history-graph.ts +0 -592
- package/src/mcp/persisted-local-history-policy.ts +0 -501
- package/src/mcp/persisted-local-history-views.ts +0 -250
- package/src/mcp/persisted-local-history.ts +0 -1621
- package/src/mcp/persistent-monitor-runtime.ts +0 -482
- package/src/mcp/policy.ts +0 -75
- package/src/mcp/receipt.ts +0 -201
- package/src/mcp/repo-concurrency.ts +0 -392
- package/src/mcp/repo-overview/filter.ts +0 -44
- package/src/mcp/repo-overview/types.ts +0 -63
- package/src/mcp/repo-overview/view-projection.ts +0 -90
- package/src/mcp/repo-state-git.ts +0 -247
- package/src/mcp/repo-state-observation.ts +0 -203
- package/src/mcp/repo-state-transition.ts +0 -151
- package/src/mcp/repo-state-types.ts +0 -107
- package/src/mcp/repo-state.ts +0 -146
- package/src/mcp/repo-tool-job.ts +0 -102
- package/src/mcp/repo-tool-worker-context.ts +0 -215
- package/src/mcp/repo-workspace.ts +0 -21
- package/src/mcp/run-capture-config.ts +0 -33
- package/src/mcp/runtime-causal-context.ts +0 -72
- package/src/mcp/runtime-observability.ts +0 -217
- package/src/mcp/runtime-staged-target.ts +0 -161
- package/src/mcp/runtime-workspace-overlay.ts +0 -255
- package/src/mcp/secret-scrub.ts +0 -89
- package/src/mcp/semantic-transition-guidance.ts +0 -60
- package/src/mcp/semantic-transition-summary.ts +0 -130
- package/src/mcp/server-context.ts +0 -236
- package/src/mcp/server-invocation.ts +0 -388
- package/src/mcp/server-tool-access.ts +0 -148
- package/src/mcp/server.ts +0 -270
- package/src/mcp/stdio-server.ts +0 -26
- package/src/mcp/stdio.ts +0 -3
- package/src/mcp/tool-registry.ts +0 -98
- package/src/mcp/tools/activity-view.ts +0 -325
- package/src/mcp/tools/budget.ts +0 -23
- package/src/mcp/tools/causal-attach.ts +0 -67
- package/src/mcp/tools/causal-status.ts +0 -58
- package/src/mcp/tools/changed-since.ts +0 -71
- package/src/mcp/tools/code-find.ts +0 -192
- package/src/mcp/tools/code-refs.ts +0 -470
- package/src/mcp/tools/code-show.ts +0 -289
- package/src/mcp/tools/daemon-monitors.ts +0 -14
- package/src/mcp/tools/daemon-repos.ts +0 -22
- package/src/mcp/tools/daemon-sessions.ts +0 -14
- package/src/mcp/tools/daemon-status.ts +0 -12
- package/src/mcp/tools/diagnostic-models.ts +0 -97
- package/src/mcp/tools/doctor.ts +0 -83
- package/src/mcp/tools/explain.ts +0 -84
- package/src/mcp/tools/export-surface-diff.ts +0 -26
- package/src/mcp/tools/file-outline.ts +0 -67
- package/src/mcp/tools/git-files.ts +0 -73
- package/src/mcp/tools/graft-diff.ts +0 -35
- package/src/mcp/tools/graft-edit.ts +0 -276
- package/src/mcp/tools/knowledge-map.ts +0 -34
- package/src/mcp/tools/map-collector.ts +0 -338
- package/src/mcp/tools/map.ts +0 -185
- package/src/mcp/tools/monitor-nudge.ts +0 -19
- package/src/mcp/tools/monitor-pause.ts +0 -18
- package/src/mcp/tools/monitor-resume.ts +0 -18
- package/src/mcp/tools/monitor-start.ts +0 -20
- package/src/mcp/tools/monitor-stop.ts +0 -18
- package/src/mcp/tools/precision-live.ts +0 -158
- package/src/mcp/tools/precision-match.ts +0 -54
- package/src/mcp/tools/precision-paths.ts +0 -59
- package/src/mcp/tools/precision-query.ts +0 -127
- package/src/mcp/tools/precision-show.ts +0 -86
- package/src/mcp/tools/precision-visibility.ts +0 -44
- package/src/mcp/tools/precision-warp.ts +0 -101
- package/src/mcp/tools/precision.ts +0 -21
- package/src/mcp/tools/read-range.ts +0 -28
- package/src/mcp/tools/refactor-difficulty.ts +0 -42
- package/src/mcp/tools/run-capture.ts +0 -149
- package/src/mcp/tools/safe-read.ts +0 -148
- package/src/mcp/tools/since.ts +0 -53
- package/src/mcp/tools/state.ts +0 -39
- package/src/mcp/tools/stats.ts +0 -24
- package/src/mcp/tools/structural-blame.ts +0 -55
- package/src/mcp/tools/structural-churn.ts +0 -28
- package/src/mcp/tools/structural-log.ts +0 -41
- package/src/mcp/tools/structural-review.ts +0 -63
- package/src/mcp/tools/workspace-authorizations.ts +0 -14
- package/src/mcp/tools/workspace-authorize.ts +0 -20
- package/src/mcp/tools/workspace-bind.ts +0 -25
- package/src/mcp/tools/workspace-rebind.ts +0 -25
- package/src/mcp/tools/workspace-revoke.ts +0 -18
- package/src/mcp/tools/workspace-status.ts +0 -12
- package/src/mcp/warp-pool.ts +0 -36
- package/src/mcp/workspace-read-observation-model.ts +0 -48
- package/src/mcp/workspace-read-observation.ts +0 -103
- package/src/mcp/workspace-router-capability.ts +0 -32
- package/src/mcp/workspace-router-history.ts +0 -233
- package/src/mcp/workspace-router-model.ts +0 -131
- package/src/mcp/workspace-router-resolution.ts +0 -71
- package/src/mcp/workspace-router-runtime.ts +0 -246
- package/src/mcp/workspace-router.ts +0 -688
- package/src/metrics/logger.ts +0 -40
- package/src/metrics/types.ts +0 -40
- package/src/operations/adaptive-projection.ts +0 -54
- package/src/operations/agent-handoff.ts +0 -59
- package/src/operations/cached-file.ts +0 -40
- package/src/operations/capture-range.ts +0 -64
- package/src/operations/conversation-primer.ts +0 -82
- package/src/operations/cross-session-resume.ts +0 -104
- package/src/operations/deterministic-replay.ts +0 -143
- package/src/operations/diff-identity.ts +0 -127
- package/src/operations/export-surface-diff.ts +0 -355
- package/src/operations/file-outline.ts +0 -48
- package/src/operations/footprint-parallelism.ts +0 -98
- package/src/operations/graft-diff.ts +0 -169
- package/src/operations/horizon-of-readability.ts +0 -60
- package/src/operations/import-reference-impact.ts +0 -143
- package/src/operations/knowledge-map.ts +0 -96
- package/src/operations/observation-cache.ts +0 -165
- package/src/operations/projection-safety.ts +0 -111
- package/src/operations/read-range.ts +0 -64
- package/src/operations/repo-workspace.ts +0 -339
- package/src/operations/result-dto.ts +0 -23
- package/src/operations/safe-read.ts +0 -118
- package/src/operations/semantic-drift.ts +0 -70
- package/src/operations/session-filtration.ts +0 -76
- package/src/operations/session-replay.ts +0 -73
- package/src/operations/sludge-detector.ts +0 -356
- package/src/operations/state.ts +0 -66
- package/src/operations/structural-blame.ts +0 -197
- package/src/operations/structural-review.ts +0 -317
- package/src/operations/structured-buffer-compare.ts +0 -429
- package/src/operations/structured-buffer-model.ts +0 -456
- package/src/operations/structured-buffer-query.ts +0 -794
- package/src/operations/structured-buffer.ts +0 -181
- package/src/operations/teaching-hints.ts +0 -52
- package/src/parser/diff.ts +0 -320
- package/src/parser/lang.ts +0 -71
- package/src/parser/markdown.ts +0 -197
- package/src/parser/outline.ts +0 -316
- package/src/parser/runtime.ts +0 -71
- package/src/parser/types.ts +0 -75
- package/src/policy/evaluate.ts +0 -178
- package/src/policy/graftignore.ts +0 -6
- package/src/policy/types.ts +0 -87
- package/src/ports/codec.ts +0 -13
- package/src/ports/filesystem.ts +0 -18
- package/src/ports/git.ts +0 -16
- package/src/ports/guards.ts +0 -68
- package/src/ports/paths.ts +0 -22
- package/src/ports/process-runner.ts +0 -22
- package/src/release/security-gate.ts +0 -102
- package/src/session/tracker.ts +0 -145
- package/src/session/types.ts +0 -23
- package/src/version.ts +0 -3
- package/src/warp/ast-emitter.ts +0 -133
- package/src/warp/ast-import-resolver.ts +0 -333
- package/src/warp/commit-meta.ts +0 -19
- package/src/warp/context.ts +0 -48
- package/src/warp/dead-symbols.ts +0 -174
- package/src/warp/drift-sentinel.ts +0 -101
- package/src/warp/index-head.ts +0 -348
- package/src/warp/observers.ts +0 -101
- package/src/warp/open.ts +0 -67
- package/src/warp/outline-diff-trailer.ts +0 -100
- package/src/warp/plumbing.d.ts +0 -24
- package/src/warp/refactor-difficulty.ts +0 -257
- package/src/warp/references.ts +0 -77
- package/src/warp/stale-docs.ts +0 -210
- package/src/warp/structural-drift-detection.ts +0 -97
- package/src/warp/structural-queries.ts +0 -258
- package/src/warp/symbol-timeline.ts +0 -209
- package/src/warp/traverse-hydrate.ts +0 -61
- package/src/warp/warp-reference-count.ts +0 -47
- package/src/warp/warp-structural-blame.ts +0 -65
- package/src/warp/warp-structural-churn.ts +0 -309
- package/src/warp/warp-structural-log.ts +0 -149
- package/src/warp/writer-id.ts +0 -30
|
@@ -1,153 +0,0 @@
|
|
|
1
|
-
import { DEFAULT_INDEX_MAX_FILES_PER_CALL, indexHead } from "../warp/index-head.js";
|
|
2
|
-
import { nodeGit } from "../adapters/node-git.js";
|
|
3
|
-
import { nodePathOps } from "../adapters/node-paths.js";
|
|
4
|
-
import { openWarp } from "../warp/open.js";
|
|
5
|
-
|
|
6
|
-
export interface MonitorTickWorkerJob {
|
|
7
|
-
readonly repoId: string;
|
|
8
|
-
readonly worktreeRoot: string;
|
|
9
|
-
readonly writerId: string;
|
|
10
|
-
readonly lastIndexedCommit: string | null;
|
|
11
|
-
readonly maxFilesPerBatch?: number | undefined;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
export type MonitorTickWorkerResult =
|
|
15
|
-
| {
|
|
16
|
-
readonly ok: true;
|
|
17
|
-
readonly headAtStart: string | null;
|
|
18
|
-
readonly currentHead: string | null;
|
|
19
|
-
readonly lastIndexedCommit: string | null;
|
|
20
|
-
readonly backlogCommits: number;
|
|
21
|
-
readonly commitsIndexed: number;
|
|
22
|
-
readonly patchesWritten: number;
|
|
23
|
-
}
|
|
24
|
-
| {
|
|
25
|
-
readonly ok: false;
|
|
26
|
-
readonly error: string;
|
|
27
|
-
readonly currentHead: string | null;
|
|
28
|
-
readonly backlogCommits: number;
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
async function readHeadCommit(cwd: string): Promise<string | null> {
|
|
32
|
-
const result = await nodeGit.run({ cwd, args: ["rev-parse", "--verify", "HEAD"] });
|
|
33
|
-
if (result.error !== undefined || result.status !== 0) {
|
|
34
|
-
return null;
|
|
35
|
-
}
|
|
36
|
-
const trimmed = result.stdout.trim();
|
|
37
|
-
return trimmed.length === 0 ? null : trimmed;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
function parseGitPathList(output: string): readonly string[] {
|
|
41
|
-
const seen = new Set<string>();
|
|
42
|
-
const paths: string[] = [];
|
|
43
|
-
for (const line of output.split("\n")) {
|
|
44
|
-
const filePath = line.trim();
|
|
45
|
-
if (filePath.length === 0 || seen.has(filePath)) continue;
|
|
46
|
-
seen.add(filePath);
|
|
47
|
-
paths.push(filePath);
|
|
48
|
-
}
|
|
49
|
-
return paths;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
async function listTrackedPaths(cwd: string): Promise<readonly string[]> {
|
|
53
|
-
const result = await nodeGit.run({ cwd, args: ["ls-files"] });
|
|
54
|
-
if (result.error !== undefined || result.status !== 0) {
|
|
55
|
-
throw result.error ?? new Error(result.stderr.trim() || `git ls-files exited with status ${String(result.status)}`);
|
|
56
|
-
}
|
|
57
|
-
return parseGitPathList(result.stdout);
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
async function listChangedPaths(cwd: string, base: string, head: string): Promise<readonly string[] | null> {
|
|
61
|
-
const result = await nodeGit.run({ cwd, args: ["diff", "--name-only", `${base}..${head}`] });
|
|
62
|
-
if (result.error !== undefined || result.status !== 0) {
|
|
63
|
-
return null;
|
|
64
|
-
}
|
|
65
|
-
return parseGitPathList(result.stdout);
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
async function monitorIndexPaths(input: {
|
|
69
|
-
readonly cwd: string;
|
|
70
|
-
readonly currentHead: string | null;
|
|
71
|
-
readonly lastIndexedCommit: string | null;
|
|
72
|
-
}): Promise<readonly string[]> {
|
|
73
|
-
if (input.currentHead === null) return [];
|
|
74
|
-
if (input.lastIndexedCommit !== null) {
|
|
75
|
-
const changedPaths = await listChangedPaths(input.cwd, input.lastIndexedCommit, input.currentHead);
|
|
76
|
-
if (changedPaths !== null) return changedPaths;
|
|
77
|
-
}
|
|
78
|
-
return listTrackedPaths(input.cwd);
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
function pathBatches(paths: readonly string[], size: number): readonly (readonly string[])[] {
|
|
82
|
-
const batches: (readonly string[])[] = [];
|
|
83
|
-
for (let index = 0; index < paths.length; index += size) {
|
|
84
|
-
batches.push(paths.slice(index, index + size));
|
|
85
|
-
}
|
|
86
|
-
return batches;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
export async function runMonitorTickJob(job: MonitorTickWorkerJob): Promise<MonitorTickWorkerResult> {
|
|
90
|
-
const headAtStart = await readHeadCommit(job.worktreeRoot);
|
|
91
|
-
|
|
92
|
-
// ── Tick ceiling: skip indexing when HEAD hasn't moved ───────────
|
|
93
|
-
// When HEAD equals the last indexed commit (including both null for
|
|
94
|
-
// empty repos), there is nothing to index. Short-circuit before
|
|
95
|
-
// opening WARP or calling indexCommits to keep idle ticks near-zero-cost.
|
|
96
|
-
if (headAtStart === job.lastIndexedCommit) {
|
|
97
|
-
return {
|
|
98
|
-
ok: true,
|
|
99
|
-
headAtStart,
|
|
100
|
-
currentHead: headAtStart,
|
|
101
|
-
lastIndexedCommit: job.lastIndexedCommit,
|
|
102
|
-
backlogCommits: 0,
|
|
103
|
-
commitsIndexed: 0,
|
|
104
|
-
patchesWritten: 0,
|
|
105
|
-
};
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
try {
|
|
109
|
-
const app = await openWarp({
|
|
110
|
-
cwd: job.worktreeRoot,
|
|
111
|
-
writerId: job.writerId,
|
|
112
|
-
});
|
|
113
|
-
const ctx = { app, strandId: null };
|
|
114
|
-
const paths = await monitorIndexPaths({
|
|
115
|
-
cwd: job.worktreeRoot,
|
|
116
|
-
currentHead: headAtStart,
|
|
117
|
-
lastIndexedCommit: job.lastIndexedCommit,
|
|
118
|
-
});
|
|
119
|
-
let commitsIndexed = 0;
|
|
120
|
-
let patchesWritten = 0;
|
|
121
|
-
const maxFilesPerBatch = job.maxFilesPerBatch ?? DEFAULT_INDEX_MAX_FILES_PER_CALL;
|
|
122
|
-
for (const batch of pathBatches(paths, maxFilesPerBatch)) {
|
|
123
|
-
const result = await indexHead({
|
|
124
|
-
cwd: job.worktreeRoot,
|
|
125
|
-
git: nodeGit,
|
|
126
|
-
pathOps: nodePathOps,
|
|
127
|
-
ctx,
|
|
128
|
-
paths: batch,
|
|
129
|
-
maxFilesPerCall: maxFilesPerBatch,
|
|
130
|
-
});
|
|
131
|
-
commitsIndexed += result.filesIndexed;
|
|
132
|
-
patchesWritten += result.nodesEmitted;
|
|
133
|
-
}
|
|
134
|
-
const currentHead = await readHeadCommit(job.worktreeRoot);
|
|
135
|
-
return {
|
|
136
|
-
ok: true,
|
|
137
|
-
headAtStart,
|
|
138
|
-
currentHead,
|
|
139
|
-
lastIndexedCommit: headAtStart,
|
|
140
|
-
backlogCommits: 0,
|
|
141
|
-
commitsIndexed,
|
|
142
|
-
patchesWritten,
|
|
143
|
-
};
|
|
144
|
-
} catch (error) {
|
|
145
|
-
const currentHead = await readHeadCommit(job.worktreeRoot);
|
|
146
|
-
return {
|
|
147
|
-
ok: false,
|
|
148
|
-
error: error instanceof Error ? error.message : String(error),
|
|
149
|
-
currentHead,
|
|
150
|
-
backlogCommits: 0,
|
|
151
|
-
};
|
|
152
|
-
}
|
|
153
|
-
}
|
package/src/mcp/monitor-types.ts
DELETED
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
import type { JsonCodec } from "../ports/codec.js";
|
|
3
|
-
import type { FileSystem } from "../ports/filesystem.js";
|
|
4
|
-
import type { GitClient } from "../ports/git.js";
|
|
5
|
-
import type { DaemonJobScheduler } from "./daemon-job-scheduler.js";
|
|
6
|
-
import type { DaemonWorkerPool } from "./daemon-worker-pool.js";
|
|
7
|
-
import type { DaemonControlPlane } from "./daemon-control-plane.js";
|
|
8
|
-
import type { WorkspaceBindRequest } from "./workspace-router.js";
|
|
9
|
-
|
|
10
|
-
// ── Constants ──────────────────────────────────────────────────────
|
|
11
|
-
|
|
12
|
-
export const CONTROL_PLANE_DIR = "control-plane";
|
|
13
|
-
export const MONITORS_FILE = "monitors.json";
|
|
14
|
-
export const DEFAULT_POLL_INTERVAL_MS = 5_000;
|
|
15
|
-
|
|
16
|
-
// ── Lifecycle and health unions ────────────────────────────────────
|
|
17
|
-
|
|
18
|
-
export type MonitorLifecycleState = "running" | "paused" | "stopped";
|
|
19
|
-
export type MonitorHealth = "ok" | "lagging" | "error" | "unauthorized" | "paused" | "stopped";
|
|
20
|
-
export type MonitorWorkerKind = "git_poll_indexer";
|
|
21
|
-
export type MonitorAction = "start" | "pause" | "resume" | "stop" | "nudge";
|
|
22
|
-
|
|
23
|
-
// ── Persistence schemas ────────────────────────────────────────────
|
|
24
|
-
|
|
25
|
-
export const persistedMonitorSchema = z.object({
|
|
26
|
-
repoId: z.string(),
|
|
27
|
-
gitCommonDir: z.string(),
|
|
28
|
-
anchorWorktreeRoot: z.string(),
|
|
29
|
-
workerKind: z.literal("git_poll_indexer"),
|
|
30
|
-
lifecycleState: z.enum(["running", "paused", "stopped"]),
|
|
31
|
-
health: z.enum(["ok", "lagging", "error", "unauthorized", "paused", "stopped"]),
|
|
32
|
-
pollIntervalMs: z.number().int().positive(),
|
|
33
|
-
lastStartedAt: z.string().nullable(),
|
|
34
|
-
lastTickAt: z.string().nullable(),
|
|
35
|
-
lastSuccessAt: z.string().nullable(),
|
|
36
|
-
lastError: z.string().nullable(),
|
|
37
|
-
lastIndexedCommit: z.string().nullable(),
|
|
38
|
-
lastHeadCommit: z.string().nullable(),
|
|
39
|
-
backlogCommits: z.number().int().nonnegative(),
|
|
40
|
-
lastRunCommitsIndexed: z.number().int().nonnegative(),
|
|
41
|
-
lastRunPatchesWritten: z.number().int().nonnegative(),
|
|
42
|
-
}).strict();
|
|
43
|
-
|
|
44
|
-
export const persistedMonitorStateSchema = z.object({
|
|
45
|
-
version: z.literal(1),
|
|
46
|
-
monitors: z.array(persistedMonitorSchema),
|
|
47
|
-
}).strict();
|
|
48
|
-
|
|
49
|
-
export type PersistedMonitorRecord = z.infer<typeof persistedMonitorSchema>;
|
|
50
|
-
export type PersistedMonitorState = z.infer<typeof persistedMonitorStateSchema>;
|
|
51
|
-
|
|
52
|
-
// ── Timer entry ────────────────────────────────────────────────────
|
|
53
|
-
|
|
54
|
-
export interface MonitorTimerEntry {
|
|
55
|
-
readonly timeout: ReturnType<typeof setTimeout>;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
// ── Public view and result types ───────────────────────────────────
|
|
59
|
-
|
|
60
|
-
export interface MonitorStatusView {
|
|
61
|
-
readonly repoId: string;
|
|
62
|
-
readonly gitCommonDir: string;
|
|
63
|
-
readonly anchorWorktreeRoot: string;
|
|
64
|
-
readonly authorizedWorkspaces: number;
|
|
65
|
-
readonly workerKind: MonitorWorkerKind;
|
|
66
|
-
readonly lifecycleState: MonitorLifecycleState;
|
|
67
|
-
readonly health: MonitorHealth;
|
|
68
|
-
readonly pollIntervalMs: number;
|
|
69
|
-
readonly lastStartedAt: string | null;
|
|
70
|
-
readonly lastTickAt: string | null;
|
|
71
|
-
readonly lastSuccessAt: string | null;
|
|
72
|
-
readonly lastError: string | null;
|
|
73
|
-
readonly lastIndexedCommit: string | null;
|
|
74
|
-
readonly lastHeadCommit: string | null;
|
|
75
|
-
readonly backlogCommits: number;
|
|
76
|
-
readonly lastRunCommitsIndexed: number;
|
|
77
|
-
readonly lastRunPatchesWritten: number;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
export interface MonitorActionResult {
|
|
81
|
-
readonly ok: boolean;
|
|
82
|
-
readonly action: MonitorAction;
|
|
83
|
-
readonly created: boolean;
|
|
84
|
-
readonly changed: boolean;
|
|
85
|
-
readonly status?: MonitorStatusView;
|
|
86
|
-
readonly errorCode?: string;
|
|
87
|
-
readonly error?: string;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
export interface MonitorStartRequest extends WorkspaceBindRequest {
|
|
91
|
-
readonly pollIntervalMs?: number | undefined;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
export interface PersistentMonitorRuntimeOptions {
|
|
95
|
-
readonly fs: FileSystem;
|
|
96
|
-
readonly codec: JsonCodec;
|
|
97
|
-
readonly git: GitClient;
|
|
98
|
-
readonly graftDir: string;
|
|
99
|
-
readonly controlPlane: DaemonControlPlane;
|
|
100
|
-
readonly scheduler: DaemonJobScheduler;
|
|
101
|
-
readonly workerPool: DaemonWorkerPool;
|
|
102
|
-
readonly defaultPollIntervalMs?: number | undefined;
|
|
103
|
-
}
|