@alecsibilia/luca 14.0.0-alpha.2 → 14.0.0-alpha.21
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 +76 -0
- package/README.md +7 -2
- package/board/client/board-look.ts +31 -1
- package/board/client/board-panel-parts.tsx +150 -0
- package/board/client/board-panel-stages.ts +99 -0
- package/board/client/board-panel-styles.ts +223 -0
- package/board/client/board-panel.tsx +77 -1275
- package/board/client/engine-life.ts +48 -0
- package/board/client/final-review-stack.tsx +144 -0
- package/board/client/heartbeat.tsx +61 -0
- package/board/client/helper-lines.tsx +69 -0
- package/board/client/live-feed.tsx +86 -0
- package/board/client/live-line.ts +73 -0
- package/board/client/model-line.tsx +178 -0
- package/board/client/needs-you-section.tsx +133 -0
- package/board/client/one-line.tsx +193 -0
- package/board/client/repo-wait-banner.tsx +69 -0
- package/board/client/run-footer.tsx +68 -0
- package/board/client/run-header.tsx +189 -0
- package/board/client/run-picker.tsx +98 -0
- package/board/client/status-bar.tsx +131 -0
- package/board/client/step-dots.tsx +127 -0
- package/board/client/stuck-actions.tsx +269 -0
- package/board/client/ticket-card-view.tsx +238 -0
- package/board/client/ticket-detail.tsx +87 -0
- package/board/client/ticket-stack.tsx +119 -0
- package/board/client/ticket-wait.ts +188 -0
- package/board/client/timeline-rows.tsx +41 -14
- package/board/client/usage-line.tsx +51 -0
- package/board/client/wait-line.tsx +39 -0
- package/board/index.client.tsx +1 -1
- package/board/index.server.ts +7 -1
- package/board/package.json +1 -1
- package/board/server/board-panel-state-helpers.ts +67 -0
- package/board/server/board-server-check.ts +294 -0
- package/board/server/board-server-engine.ts +129 -0
- package/board/server/board-server-events.ts +134 -0
- package/board/server/board-server-read.ts +190 -0
- package/board/server/board-server-resume.ts +164 -0
- package/board/server/board-server-start.ts +174 -0
- package/board/server/board-server-store.ts +281 -0
- package/board/server/board-server-types.ts +114 -0
- package/board/server/board-server-util.ts +4 -0
- package/board/server/board-server.ts +52 -943
- package/board/server/board-vocabulary-engine.ts +144 -0
- package/board/server/board-vocabulary-review.ts +115 -0
- package/board/server/board-vocabulary-run.ts +145 -0
- package/board/server/board-vocabulary-shapes.ts +153 -0
- package/board/server/board-vocabulary.ts +20 -375
- package/board/server/current-step-panel-helpers.ts +108 -0
- package/board/server/describe-record.ts +403 -0
- package/board/server/engine-launch.ts +20 -3
- package/board/server/engine-restart-helpers.ts +105 -0
- package/board/server/engine-watch.ts +45 -5
- package/board/server/journal-rebuild-helpers.ts +169 -0
- package/board/server/live-file.ts +130 -0
- package/board/server/luca-version.ts +1 -1
- package/board/server/make-rows.ts +14 -629
- package/board/server/record-texts.ts +350 -0
- package/board/server/reduce-board-agent-start.ts +224 -0
- package/board/server/reduce-board-agents.ts +160 -0
- package/board/server/reduce-board-counters.ts +138 -0
- package/board/server/reduce-board-create.ts +148 -0
- package/board/server/reduce-board-final-review.ts +174 -0
- package/board/server/reduce-board-needs-you.ts +283 -0
- package/board/server/reduce-board-reasons.ts +59 -0
- package/board/server/reduce-board-run.ts +255 -0
- package/board/server/reduce-board-settle.ts +88 -0
- package/board/server/reduce-board-steps.ts +226 -0
- package/board/server/reduce-board-text.ts +139 -0
- package/board/server/reduce-board-ticket-checks.ts +168 -0
- package/board/server/reduce-board-ticket-join.ts +144 -0
- package/board/server/reduce-board-ticket-start.ts +132 -0
- package/board/server/reduce-board-update.ts +117 -0
- package/board/server/reduce-board-usage.ts +247 -0
- package/board/server/reduce-board.ts +100 -1917
- package/board/server/reply-post.ts +407 -0
- package/board/server/run-registry.ts +8 -4
- package/board/server/ticket-stages-panel-helpers.ts +296 -0
- package/board/shared/board-rows.ts +9 -0
- package/board/shared/board-rpc.ts +42 -0
- package/board/shared/board-state-counts.ts +77 -0
- package/board/shared/board-state-live.ts +99 -0
- package/board/shared/board-state-review.ts +59 -0
- package/board/shared/board-state-run.ts +236 -0
- package/board/shared/board-state-ticket.ts +257 -0
- package/board/shared/board-state-usage.ts +107 -0
- package/board/shared/board-state.ts +97 -567
- package/board/shared/reply-actions.ts +207 -0
- package/engine/agents/agent-launcher.ts +27 -4
- package/engine/agents/claude-launcher-helpers.ts +233 -0
- package/engine/agents/claude-launcher.ts +28 -669
- package/engine/agents/claude-messages.ts +212 -0
- package/engine/agents/claude-options.ts +43 -8
- package/engine/agents/common-instructions.ts +138 -0
- package/engine/agents/input-channel.ts +36 -0
- package/engine/agents/launch-paths.ts +29 -0
- package/engine/agents/launch-session.ts +227 -0
- package/engine/agents/learner-instructions.ts +31 -0
- package/engine/agents/open-session.ts +210 -0
- package/engine/agents/prompt-sections.ts +95 -0
- package/engine/agents/rejoin-prompts.ts +135 -0
- package/engine/agents/reviewer-instructions.ts +99 -0
- package/engine/agents/role-instructions.ts +31 -244
- package/engine/agents/role-prompts.ts +39 -109
- package/engine/agents/role-results.ts +106 -7
- package/engine/agents/scripted-launcher.ts +21 -6
- package/engine/agents/session-pool.ts +124 -0
- package/engine/agents/turn-progress.ts +283 -0
- package/engine/agents/writer-instructions.ts +151 -0
- package/engine/cli/computer-adapters-real.ts +15 -3
- package/engine/cli/computer-adapters.ts +2 -0
- package/engine/cli/computer-checks.ts +87 -4
- package/engine/cli/config-reload-text.ts +39 -0
- package/engine/cli/decision-model-setup.ts +70 -0
- package/engine/cli/doctor-command.ts +1 -0
- package/engine/cli/doctor.ts +21 -3
- package/engine/cli/going-runs.ts +192 -36
- package/engine/cli/init-command.ts +1 -0
- package/engine/cli/init.ts +23 -1
- package/engine/cli/live-runs.ts +73 -0
- package/engine/cli/luca-run.ts +42 -7
- package/engine/cli/luca-skills.ts +183 -0
- package/engine/cli/luca.ts +8 -1
- package/engine/cli/models-command.ts +119 -0
- package/engine/cli/read-run.ts +81 -0
- package/engine/cli/run-args.ts +33 -6
- package/engine/cli/run-demo.ts +143 -0
- package/engine/cli/run-end.ts +184 -0
- package/engine/cli/run-modes-helpers.ts +81 -0
- package/engine/cli/run-modes.ts +62 -439
- package/engine/cli/setup.ts +5 -48
- package/engine/cli/unfinished-runs.ts +122 -0
- package/engine/cli/upgrade-command.ts +212 -30
- package/engine/cli/upgrade-finish.ts +149 -0
- package/engine/cli/upgrade.ts +112 -71
- package/engine/config/config-fields.ts +127 -0
- package/engine/config/config-reload.ts +250 -0
- package/engine/config/engine-config-schema.ts +235 -0
- package/engine/config/engine-config.ts +72 -142
- package/engine/config/test-commands.ts +102 -0
- package/engine/core/agent-guards-helpers.ts +84 -0
- package/engine/core/agent-turn.ts +395 -0
- package/engine/core/already-done.ts +44 -1
- package/engine/core/build-action.ts +214 -0
- package/engine/core/build-context.ts +135 -0
- package/engine/core/build-launch.ts +259 -0
- package/engine/core/commit-in.ts +282 -0
- package/engine/core/decide-build-early.ts +108 -0
- package/engine/core/decide-build-ending.ts +145 -0
- package/engine/core/decide-build-helpers.ts +87 -0
- package/engine/core/decide-build-tickets.ts +207 -0
- package/engine/core/decide-build-view.ts +103 -0
- package/engine/core/decide-build.ts +101 -1368
- package/engine/core/decide-final-fix.ts +203 -0
- package/engine/core/decide-final-review.ts +55 -310
- package/engine/core/decide-red-green.ts +398 -0
- package/engine/core/decide-rejoin.ts +259 -0
- package/engine/core/decide-repo-wait.ts +129 -0
- package/engine/core/decide-run-budget.ts +86 -12
- package/engine/core/decide-stuck-helpers.ts +127 -0
- package/engine/core/decide-stuck.ts +60 -8
- package/engine/core/decide-ticket-review.ts +95 -0
- package/engine/core/decide-ticket.ts +267 -0
- package/engine/core/decide-waits.ts +47 -0
- package/engine/core/decide.ts +74 -23
- package/engine/core/engine-chores.ts +163 -0
- package/engine/core/environment-rerun.ts +83 -0
- package/engine/core/evidence-text.ts +84 -0
- package/engine/core/execute-action.ts +303 -0
- package/engine/core/execute-already-done-check.ts +133 -0
- package/engine/core/execute-build.ts +68 -944
- package/engine/core/execute-changeset.ts +5 -7
- package/engine/core/execute-final-review.ts +125 -13
- package/engine/core/execute-gates.ts +182 -0
- package/engine/core/execute-intake.ts +130 -0
- package/engine/core/execute-join.ts +276 -0
- package/engine/core/execute-memory.ts +12 -0
- package/engine/core/execute-pull-request.ts +84 -0
- package/engine/core/execute-red-check.ts +219 -0
- package/engine/core/execute-repo-wait.ts +129 -0
- package/engine/core/execute-stuck.ts +25 -10
- package/engine/core/execute-waits.ts +158 -0
- package/engine/core/execute-with-jev.ts +118 -0
- package/engine/core/execute.ts +124 -831
- package/engine/core/final-failure-cap.ts +38 -0
- package/engine/core/final-review-action.ts +125 -0
- package/engine/core/final-review-text.ts +63 -17
- package/engine/core/final-stuck-text.ts +86 -0
- package/engine/core/fix-loop-text.ts +49 -2
- package/engine/core/left-out.ts +120 -0
- package/engine/core/live-file.ts +372 -0
- package/engine/core/loop-caps.ts +25 -2
- package/engine/core/not-in-run.ts +7 -3
- package/engine/core/pull-request-text.ts +255 -6
- package/engine/core/repo-wait-text.ts +81 -0
- package/engine/core/review-text.ts +55 -1
- package/engine/core/run-crash-recovery-helpers.ts +16 -0
- package/engine/core/run-session-close-helpers.ts +96 -0
- package/engine/core/run-start.ts +148 -0
- package/engine/core/run-stuck-text.ts +86 -0
- package/engine/core/schedule-rules.ts +193 -0
- package/engine/core/stuck-detail-text.ts +89 -0
- package/engine/core/stuck-format.ts +22 -0
- package/engine/core/stuck-text.ts +29 -332
- package/engine/core/ticket-stuck-text.ts +192 -0
- package/engine/core/worktree-changes.ts +106 -0
- package/engine/gates/already-done-check.ts +120 -0
- package/engine/gates/feature-map.ts +96 -0
- package/engine/gates/gate-runner.ts +108 -108
- package/engine/gates/gate-schemas.ts +61 -2
- package/engine/gates/leftover-scan.ts +154 -31
- package/engine/gates/new-tests.ts +45 -0
- package/engine/gates/own-files-check.ts +98 -0
- package/engine/gates/prepare-check.ts +60 -0
- package/engine/gates/prepare-slots.ts +99 -0
- package/engine/gates/red-check.ts +184 -16
- package/engine/gates/shell-check.ts +64 -0
- package/engine/gates/slot-waits.ts +55 -0
- package/engine/gates/slow-test-runner.ts +59 -0
- package/engine/gates/test-checks.ts +161 -0
- package/engine/gates/test-runner.ts +164 -5
- package/engine/gates/test-slots.ts +48 -0
- package/engine/git/git-adapter.ts +55 -396
- package/engine/git/git-commits.ts +132 -0
- package/engine/git/git-join.ts +139 -0
- package/engine/git/git-read.ts +123 -0
- package/engine/git/git-run.ts +32 -0
- package/engine/git/git-worktrees.ts +143 -0
- package/engine/git/outside-links.ts +55 -0
- package/engine/guards/after-turn-check.ts +31 -5
- package/engine/guards/guard-hook.ts +60 -12
- package/engine/guards/guard-roles.ts +68 -0
- package/engine/guards/helper-rules.ts +92 -0
- package/engine/guards/permission-rules.ts +161 -0
- package/engine/guards/role-rules-helpers.ts +48 -0
- package/engine/guards/role-rules.ts +34 -606
- package/engine/guards/shell-rules.ts +344 -0
- package/engine/guards/worktree-git.ts +208 -0
- package/engine/guards/worktree-snapshot.ts +412 -0
- package/engine/guards/worktree-state.ts +28 -825
- package/engine/guards/worktree-undo.ts +260 -0
- package/engine/guards/write-rules.ts +149 -0
- package/engine/index.ts +30 -9
- package/engine/intake/criteria-checks.ts +114 -0
- package/engine/intake/intake-checks.ts +164 -30
- package/engine/intake/intake-schemas.ts +37 -2
- package/engine/jev/clef-client.ts +259 -0
- package/engine/jev/decision-model-credentials.ts +212 -0
- package/engine/jev/jev-jobs.ts +144 -60
- package/engine/jev/jev-schemas.ts +86 -5
- package/engine/jev/jev-shadow-helpers.ts +218 -0
- package/engine/jev/jev-shadow.ts +109 -64
- package/engine/jev/model-pick.ts +275 -0
- package/engine/journal/agent-entries.ts +167 -0
- package/engine/journal/agent-message-entries.ts +72 -0
- package/engine/journal/agent-turn-replay.ts +203 -0
- package/engine/journal/already-done-entries.ts +55 -0
- package/engine/journal/commit-entries.ts +56 -0
- package/engine/journal/cross-ticket-replay.ts +222 -0
- package/engine/journal/decision-model-entries.ts +86 -0
- package/engine/journal/entry-fields.ts +10 -0
- package/engine/journal/final-review-entries.ts +128 -0
- package/engine/journal/final-review-replay.ts +324 -0
- package/engine/journal/final-review-round.ts +320 -0
- package/engine/journal/final-review-state.ts +180 -0
- package/engine/journal/gate-entries.ts +81 -0
- package/engine/journal/intake-entries.ts +87 -0
- package/engine/journal/join-entries.ts +126 -0
- package/engine/journal/journal-entry-schema.ts +218 -0
- package/engine/journal/journal-kinds.ts +97 -0
- package/engine/journal/journal-record-schema.ts +218 -0
- package/engine/journal/journal-record.ts +43 -1400
- package/engine/journal/journal.ts +6 -1
- package/engine/journal/limit-entries.ts +90 -0
- package/engine/journal/memory-entries.ts +124 -0
- package/engine/journal/memory-replay.ts +157 -0
- package/engine/journal/plan-replay.ts +139 -0
- package/engine/journal/pull-request-entries.ts +41 -0
- package/engine/journal/replay.ts +157 -2144
- package/engine/journal/reply-replay.ts +144 -0
- package/engine/journal/repo-wait-entries.ts +53 -0
- package/engine/journal/run-entries.ts +172 -0
- package/engine/journal/run-state.ts +264 -0
- package/engine/journal/shared-failure-replay.ts +133 -0
- package/engine/journal/stuck-entries.ts +193 -0
- package/engine/journal/ticket-progress.ts +392 -0
- package/engine/journal/ticket-replay.ts +411 -0
- package/engine/journal/ticket-result-replay.ts +364 -0
- package/engine/journal/ticket-retry-replay.ts +142 -0
- package/engine/journal/worktree-entries.ts +122 -0
- package/engine/models/model-score.ts +512 -0
- package/engine/shell/run-command.ts +187 -18
- package/engine/testing/agent-turn-fixtures.ts +287 -0
- package/engine/testing/already-done-fixtures.ts +97 -0
- package/engine/testing/build-fixtures.ts +68 -973
- package/engine/testing/checkouts-fixtures.ts +48 -0
- package/engine/testing/final-review-fixtures.ts +62 -1
- package/engine/testing/final-review-steps.ts +143 -0
- package/engine/testing/limit-fixtures.ts +85 -0
- package/engine/testing/live-file-fixtures.ts +57 -0
- package/engine/testing/practice-repo.ts +10 -4
- package/engine/testing/practice-run.ts +1 -1
- package/engine/testing/reply-fixtures.ts +88 -0
- package/engine/testing/run-budget-fixtures.ts +165 -0
- package/engine/testing/run-fixtures.ts +219 -0
- package/engine/testing/sdk-play.ts +177 -0
- package/engine/testing/setup-repo.ts +194 -0
- package/engine/testing/step-record-fixtures.ts +55 -0
- package/engine/testing/ticket-step-fixtures.ts +272 -0
- package/engine/testing/wait-scenarios.ts +186 -0
- package/engine/tracker/gh-retry.ts +217 -0
- package/engine/tracker/github-tracker.ts +310 -90
- package/engine/tracker/in-memory-tracker.ts +8 -4
- package/engine/tracker/tracker.ts +131 -6
- package/package.json +2 -1
- package/skills/luca-retro/SKILL.md +74 -0
- package/skills/luca-retro/scripts/retro-summary.ts +1356 -0
- package/skills/luca-unstick/SKILL.md +153 -0
- package/skills/luca-unstick/scripts/stuck-summary.ts +1063 -0
- package/engine/jev/jev-client.ts +0 -173
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { z } from 'zod'
|
|
2
|
+
|
|
3
|
+
import { ENTRY_FIELDS } from './entry-fields'
|
|
4
|
+
|
|
5
|
+
import { BadTestSchema } from '../agents/role-results'
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* The journal entries of joining tickets onto the run branch: the join, a
|
|
9
|
+
* rebase after a clash or failed gates, tests sent back, an undone join,
|
|
10
|
+
* and the push.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
/** An approved ticket's commits, replayed onto the run branch (or not). */
|
|
14
|
+
export const TicketJoinedEntrySchema = z.object({
|
|
15
|
+
...ENTRY_FIELDS,
|
|
16
|
+
kind: z.literal('ticket_joined'),
|
|
17
|
+
content: z.discriminatedUnion('ok', [
|
|
18
|
+
z.object({
|
|
19
|
+
ok: z.literal(true),
|
|
20
|
+
/** The new commits on the run branch, oldest first. */
|
|
21
|
+
shas: z.array(z.string().min(1)),
|
|
22
|
+
/**
|
|
23
|
+
* The ticket's size: lines added plus lines removed by its
|
|
24
|
+
* commits, binary files counting 0. `null` in older journals.
|
|
25
|
+
*/
|
|
26
|
+
lines_changed: z.number().int().min(0).nullable().default(null),
|
|
27
|
+
}),
|
|
28
|
+
z.object({ ok: z.literal(false), error: z.string() }),
|
|
29
|
+
]),
|
|
30
|
+
})
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* A ticket's join is about to replay its commits onto the run branch, which
|
|
34
|
+
* stands at `run_branch_sha`. A join a crash cut off (no `ticket_joined`
|
|
35
|
+
* after this) is redone from there: the run branch is reset to it first.
|
|
36
|
+
*/
|
|
37
|
+
export const JoinStartedEntrySchema = z.object({
|
|
38
|
+
...ENTRY_FIELDS,
|
|
39
|
+
kind: z.literal('join_started'),
|
|
40
|
+
content: z.object({ run_branch_sha: z.string().min(1) }),
|
|
41
|
+
})
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Why a joined ticket went back to be fixed on top of the run branch: its
|
|
45
|
+
* commits clashed with it, or the gates failed after it joined.
|
|
46
|
+
*/
|
|
47
|
+
export const RejoinCauseSchema = z.enum(['clash', 'join_gates'])
|
|
48
|
+
|
|
49
|
+
export type RejoinCause = z.infer<typeof RejoinCauseSchema>
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* The engine put a ticket's whole change back on top of the run branch, as
|
|
53
|
+
* uncommitted changes in its worktree, after a clash or failed gates after
|
|
54
|
+
* joining. `base_sha` is the run branch commit it now starts from. `tests`
|
|
55
|
+
* and `code` are the files that clashed (conflict markers left in them),
|
|
56
|
+
* split by the config's test file patterns. `undone` are the run branch
|
|
57
|
+
* commits the engine undid first (a join whose gates failed), and
|
|
58
|
+
* `reinstall` says whether the worktree needs its install again. As with
|
|
59
|
+
* `join_undone`, replay clears the join of any other ticket whose joined
|
|
60
|
+
* commits are among `undone` (#519).
|
|
61
|
+
*/
|
|
62
|
+
export const TicketRebasedEntrySchema = z.object({
|
|
63
|
+
...ENTRY_FIELDS,
|
|
64
|
+
kind: z.literal('ticket_rebased'),
|
|
65
|
+
content: z.object({
|
|
66
|
+
cause: RejoinCauseSchema,
|
|
67
|
+
base_sha: z.string().min(1),
|
|
68
|
+
tests: z.array(z.string()),
|
|
69
|
+
code: z.array(z.string()),
|
|
70
|
+
undone: z.array(z.string()),
|
|
71
|
+
/**
|
|
72
|
+
* The dependency files (manifests, lockfiles) differ between the
|
|
73
|
+
* worktree's old base and the new one, and the ticket's own change
|
|
74
|
+
* touches no manifest: the worktree gets its frozen install again.
|
|
75
|
+
* (A ticket that changes a manifest gets the install in its gates.)
|
|
76
|
+
*/
|
|
77
|
+
reinstall: z.boolean().default(false),
|
|
78
|
+
}),
|
|
79
|
+
})
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* After a rebase, the implementer sent one of the ticket's tests back as bad
|
|
83
|
+
* (#489): the tickets that joined the run branch since the ticket's old base
|
|
84
|
+
* made it wrong. The engine sends it to the ticket's test-writer to update,
|
|
85
|
+
* with the implementer's code kept in the worktree. `round` counts these per
|
|
86
|
+
* ticket, from 1. `joined` are the tickets whose commits the run branch got
|
|
87
|
+
* between `from_sha` (the ticket's base before the rebase) and `base_sha`
|
|
88
|
+
* (its base now), and `files` the files the run branch changed between them.
|
|
89
|
+
*/
|
|
90
|
+
export const TestsSentBackEntrySchema = z.object({
|
|
91
|
+
...ENTRY_FIELDS,
|
|
92
|
+
kind: z.literal('tests_sent_back'),
|
|
93
|
+
content: z.object({
|
|
94
|
+
round: z.number().int().positive(),
|
|
95
|
+
bad_test: BadTestSchema,
|
|
96
|
+
from_sha: z.string().min(1),
|
|
97
|
+
base_sha: z.string().min(1),
|
|
98
|
+
joined: z.array(
|
|
99
|
+
z.object({
|
|
100
|
+
ticket: z.number().int().positive(),
|
|
101
|
+
title: z.string(),
|
|
102
|
+
})
|
|
103
|
+
),
|
|
104
|
+
files: z.array(z.string()),
|
|
105
|
+
}),
|
|
106
|
+
})
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* A stuck ticket's join was undone on the run branch (its commits were
|
|
110
|
+
* never pushed), so no other ticket builds on them. `shas` are every commit
|
|
111
|
+
* the undo took off the run branch, oldest first: the ticket's own join and
|
|
112
|
+
* any later, unpushed joins on top of it (#519). Replay clears the join of
|
|
113
|
+
* every ticket whose joined commits are among them, not only this one's, so
|
|
114
|
+
* those tickets join again on the run branch as it is now.
|
|
115
|
+
*/
|
|
116
|
+
export const JoinUndoneEntrySchema = z.object({
|
|
117
|
+
...ENTRY_FIELDS,
|
|
118
|
+
kind: z.literal('join_undone'),
|
|
119
|
+
content: z.object({ shas: z.array(z.string()) }),
|
|
120
|
+
})
|
|
121
|
+
|
|
122
|
+
export const RunBranchPushedEntrySchema = z.object({
|
|
123
|
+
...ENTRY_FIELDS,
|
|
124
|
+
kind: z.literal('run_branch_pushed'),
|
|
125
|
+
content: z.object({ branch: z.string(), sha: z.string() }),
|
|
126
|
+
})
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What a caller hands the journal to append (`JournalEntrySchema`): every
|
|
3
|
+
* record kind's entry schema in one union. The journal adds `seq` and `time`
|
|
4
|
+
* (see `journal-record-schema.ts`). A new kind is added here, there, and in
|
|
5
|
+
* `journal-kinds.ts`.
|
|
6
|
+
*/
|
|
7
|
+
import { z } from 'zod'
|
|
8
|
+
|
|
9
|
+
import {
|
|
10
|
+
AgentFailedEntrySchema,
|
|
11
|
+
AgentFinishedEntrySchema,
|
|
12
|
+
AgentSessionClosedEntrySchema,
|
|
13
|
+
AgentSessionEntrySchema,
|
|
14
|
+
AgentStartedEntrySchema,
|
|
15
|
+
ChoresDoneEntrySchema,
|
|
16
|
+
SharedGitChangedEntrySchema,
|
|
17
|
+
} from './agent-entries'
|
|
18
|
+
import {
|
|
19
|
+
AgentMessageDeliveredEntrySchema,
|
|
20
|
+
AgentMessageEntrySchema,
|
|
21
|
+
} from './agent-message-entries'
|
|
22
|
+
import {
|
|
23
|
+
AlreadyDoneCheckedEntrySchema,
|
|
24
|
+
TicketAlreadyDoneEntrySchema,
|
|
25
|
+
TicketClosedEntrySchema,
|
|
26
|
+
} from './already-done-entries'
|
|
27
|
+
import {
|
|
28
|
+
ChangesetDroppedEntrySchema,
|
|
29
|
+
CommitMadeEntrySchema,
|
|
30
|
+
LeftoverScanEntrySchema,
|
|
31
|
+
} from './commit-entries'
|
|
32
|
+
import {
|
|
33
|
+
DecisionModelOffEntrySchema,
|
|
34
|
+
JevAnsweredEntrySchema,
|
|
35
|
+
JevAskedEntrySchema,
|
|
36
|
+
JevFailedEntrySchema,
|
|
37
|
+
} from './decision-model-entries'
|
|
38
|
+
import {
|
|
39
|
+
FinalReviewFixingEntrySchema,
|
|
40
|
+
FinalReviewPassedEntrySchema,
|
|
41
|
+
FinalReviewRetriedEntrySchema,
|
|
42
|
+
FinalReviewShippedEntrySchema,
|
|
43
|
+
FinalReviewStartedEntrySchema,
|
|
44
|
+
FinalReviewStuckEntrySchema,
|
|
45
|
+
LensFinishedEntrySchema,
|
|
46
|
+
LensStartedEntrySchema,
|
|
47
|
+
} from './final-review-entries'
|
|
48
|
+
import {
|
|
49
|
+
DependenciesInstalledEntrySchema,
|
|
50
|
+
GatesRunEntrySchema,
|
|
51
|
+
RedCheckEntrySchema,
|
|
52
|
+
} from './gate-entries'
|
|
53
|
+
import {
|
|
54
|
+
IntakeReadEntrySchema,
|
|
55
|
+
IntakeRefusedEntrySchema,
|
|
56
|
+
NothingToDoEntrySchema,
|
|
57
|
+
SpecSnapshotEntrySchema,
|
|
58
|
+
TicketSnapshotEntrySchema,
|
|
59
|
+
} from './intake-entries'
|
|
60
|
+
import {
|
|
61
|
+
JoinStartedEntrySchema,
|
|
62
|
+
JoinUndoneEntrySchema,
|
|
63
|
+
RunBranchPushedEntrySchema,
|
|
64
|
+
TestsSentBackEntrySchema,
|
|
65
|
+
TicketJoinedEntrySchema,
|
|
66
|
+
TicketRebasedEntrySchema,
|
|
67
|
+
} from './join-entries'
|
|
68
|
+
import {
|
|
69
|
+
LimitWaitEndedEntrySchema,
|
|
70
|
+
LimitWaitStartedEntrySchema,
|
|
71
|
+
UsageLineWaitEndedEntrySchema,
|
|
72
|
+
UsageLineWaitStartedEntrySchema,
|
|
73
|
+
UsageRecordedEntrySchema,
|
|
74
|
+
} from './limit-entries'
|
|
75
|
+
import {
|
|
76
|
+
LearningSkippedEntrySchema,
|
|
77
|
+
MemoriesReportedEntrySchema,
|
|
78
|
+
MemoriesSavedEntrySchema,
|
|
79
|
+
MemoryRecalledEntrySchema,
|
|
80
|
+
MemoryWriteDoneEntrySchema,
|
|
81
|
+
MemoryWriteStartedEntrySchema,
|
|
82
|
+
} from './memory-entries'
|
|
83
|
+
import {
|
|
84
|
+
ChangesetWrittenEntrySchema,
|
|
85
|
+
PullRequestOpenedEntrySchema,
|
|
86
|
+
} from './pull-request-entries'
|
|
87
|
+
import {
|
|
88
|
+
RepoWaitEndedEntrySchema,
|
|
89
|
+
RepoWaitPsFailedEntrySchema,
|
|
90
|
+
RepoWaitSkippedEntrySchema,
|
|
91
|
+
RepoWaitStartedEntrySchema,
|
|
92
|
+
} from './repo-wait-entries'
|
|
93
|
+
import {
|
|
94
|
+
ConfigReloadedEntrySchema,
|
|
95
|
+
ConfigReloadRefusedEntrySchema,
|
|
96
|
+
EngineResumedEntrySchema,
|
|
97
|
+
RunResumedEntrySchema,
|
|
98
|
+
RunStartedEntrySchema,
|
|
99
|
+
RunStoppedEntrySchema,
|
|
100
|
+
StepEndedEntrySchema,
|
|
101
|
+
StepStartedEntrySchema,
|
|
102
|
+
TicketWaitingEntrySchema,
|
|
103
|
+
} from './run-entries'
|
|
104
|
+
import {
|
|
105
|
+
CommentReadEntrySchema,
|
|
106
|
+
ReplyIgnoredEntrySchema,
|
|
107
|
+
ReplyReceivedEntrySchema,
|
|
108
|
+
RunStuckEntrySchema,
|
|
109
|
+
StuckReportedEntrySchema,
|
|
110
|
+
TicketRetriedEntrySchema,
|
|
111
|
+
TicketSkippedEntrySchema,
|
|
112
|
+
TicketStuckEntrySchema,
|
|
113
|
+
} from './stuck-entries'
|
|
114
|
+
import {
|
|
115
|
+
BaselinePreparedEntrySchema,
|
|
116
|
+
BaselineReusedEntrySchema,
|
|
117
|
+
BaselineTestsEntrySchema,
|
|
118
|
+
PrepareMadeEntrySchema,
|
|
119
|
+
RunBranchCreatedEntrySchema,
|
|
120
|
+
TicketWorktreeCreatedEntrySchema,
|
|
121
|
+
WorktreeResetEntrySchema,
|
|
122
|
+
WorktreesRemovedEntrySchema,
|
|
123
|
+
} from './worktree-entries'
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* What a caller hands the journal to append: a kind, its content, and who it
|
|
127
|
+
* is about. The journal adds `seq` and `time`.
|
|
128
|
+
*
|
|
129
|
+
* Later tickets add kinds here.
|
|
130
|
+
*/
|
|
131
|
+
export const JournalEntrySchema = z.discriminatedUnion('kind', [
|
|
132
|
+
RunStartedEntrySchema,
|
|
133
|
+
IntakeReadEntrySchema,
|
|
134
|
+
IntakeRefusedEntrySchema,
|
|
135
|
+
NothingToDoEntrySchema,
|
|
136
|
+
SpecSnapshotEntrySchema,
|
|
137
|
+
TicketSnapshotEntrySchema,
|
|
138
|
+
RunBranchCreatedEntrySchema,
|
|
139
|
+
TicketWorktreeCreatedEntrySchema,
|
|
140
|
+
BaselinePreparedEntrySchema,
|
|
141
|
+
PrepareMadeEntrySchema,
|
|
142
|
+
BaselineTestsEntrySchema,
|
|
143
|
+
BaselineReusedEntrySchema,
|
|
144
|
+
AgentStartedEntrySchema,
|
|
145
|
+
AgentFinishedEntrySchema,
|
|
146
|
+
AgentFailedEntrySchema,
|
|
147
|
+
ChoresDoneEntrySchema,
|
|
148
|
+
RedCheckEntrySchema,
|
|
149
|
+
AlreadyDoneCheckedEntrySchema,
|
|
150
|
+
LeftoverScanEntrySchema,
|
|
151
|
+
ChangesetDroppedEntrySchema,
|
|
152
|
+
CommitMadeEntrySchema,
|
|
153
|
+
WorktreeResetEntrySchema,
|
|
154
|
+
DependenciesInstalledEntrySchema,
|
|
155
|
+
GatesRunEntrySchema,
|
|
156
|
+
TicketJoinedEntrySchema,
|
|
157
|
+
TicketRebasedEntrySchema,
|
|
158
|
+
TestsSentBackEntrySchema,
|
|
159
|
+
RunBranchPushedEntrySchema,
|
|
160
|
+
TicketStuckEntrySchema,
|
|
161
|
+
RunStuckEntrySchema,
|
|
162
|
+
ChangesetWrittenEntrySchema,
|
|
163
|
+
PullRequestOpenedEntrySchema,
|
|
164
|
+
JevAskedEntrySchema,
|
|
165
|
+
JevAnsweredEntrySchema,
|
|
166
|
+
JevFailedEntrySchema,
|
|
167
|
+
DecisionModelOffEntrySchema,
|
|
168
|
+
AgentSessionEntrySchema,
|
|
169
|
+
AgentSessionClosedEntrySchema,
|
|
170
|
+
SharedGitChangedEntrySchema,
|
|
171
|
+
RunStoppedEntrySchema,
|
|
172
|
+
LimitWaitStartedEntrySchema,
|
|
173
|
+
LimitWaitEndedEntrySchema,
|
|
174
|
+
UsageLineWaitStartedEntrySchema,
|
|
175
|
+
UsageLineWaitEndedEntrySchema,
|
|
176
|
+
UsageRecordedEntrySchema,
|
|
177
|
+
WorktreesRemovedEntrySchema,
|
|
178
|
+
AgentMessageEntrySchema,
|
|
179
|
+
AgentMessageDeliveredEntrySchema,
|
|
180
|
+
FinalReviewStartedEntrySchema,
|
|
181
|
+
LensStartedEntrySchema,
|
|
182
|
+
LensFinishedEntrySchema,
|
|
183
|
+
FinalReviewFixingEntrySchema,
|
|
184
|
+
FinalReviewStuckEntrySchema,
|
|
185
|
+
FinalReviewPassedEntrySchema,
|
|
186
|
+
FinalReviewShippedEntrySchema,
|
|
187
|
+
StuckReportedEntrySchema,
|
|
188
|
+
CommentReadEntrySchema,
|
|
189
|
+
ReplyReceivedEntrySchema,
|
|
190
|
+
ReplyIgnoredEntrySchema,
|
|
191
|
+
TicketRetriedEntrySchema,
|
|
192
|
+
TicketSkippedEntrySchema,
|
|
193
|
+
TicketAlreadyDoneEntrySchema,
|
|
194
|
+
TicketClosedEntrySchema,
|
|
195
|
+
JoinUndoneEntrySchema,
|
|
196
|
+
FinalReviewRetriedEntrySchema,
|
|
197
|
+
MemoryRecalledEntrySchema,
|
|
198
|
+
MemoryWriteStartedEntrySchema,
|
|
199
|
+
MemoryWriteDoneEntrySchema,
|
|
200
|
+
MemoriesSavedEntrySchema,
|
|
201
|
+
LearningSkippedEntrySchema,
|
|
202
|
+
MemoriesReportedEntrySchema,
|
|
203
|
+
StepStartedEntrySchema,
|
|
204
|
+
StepEndedEntrySchema,
|
|
205
|
+
TicketWaitingEntrySchema,
|
|
206
|
+
RunResumedEntrySchema,
|
|
207
|
+
JoinStartedEntrySchema,
|
|
208
|
+
EngineResumedEntrySchema,
|
|
209
|
+
ConfigReloadedEntrySchema,
|
|
210
|
+
ConfigReloadRefusedEntrySchema,
|
|
211
|
+
RepoWaitStartedEntrySchema,
|
|
212
|
+
RepoWaitEndedEntrySchema,
|
|
213
|
+
RepoWaitSkippedEntrySchema,
|
|
214
|
+
RepoWaitPsFailedEntrySchema,
|
|
215
|
+
])
|
|
216
|
+
|
|
217
|
+
/** A journal entry as callers write it; schema defaults fill the rest. */
|
|
218
|
+
export type JournalEntry = z.input<typeof JournalEntrySchema>
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Every record kind the journal knows (`JournalKindSchema`, `JOURNAL_KINDS`).
|
|
3
|
+
* A new kind is added here, in `journal-entry-schema.ts`, and in
|
|
4
|
+
* `journal-record-schema.ts`.
|
|
5
|
+
*/
|
|
6
|
+
import { z } from 'zod'
|
|
7
|
+
|
|
8
|
+
/** Every record kind the journal knows so far. */
|
|
9
|
+
export const JournalKindSchema = z.enum([
|
|
10
|
+
'run_started',
|
|
11
|
+
'intake_read',
|
|
12
|
+
'intake_refused',
|
|
13
|
+
'nothing_to_do',
|
|
14
|
+
'spec_snapshot',
|
|
15
|
+
'ticket_snapshot',
|
|
16
|
+
'run_branch_created',
|
|
17
|
+
'ticket_worktree_created',
|
|
18
|
+
'baseline_prepared',
|
|
19
|
+
'prepare_made',
|
|
20
|
+
'baseline_tests',
|
|
21
|
+
'baseline_reused',
|
|
22
|
+
'agent_started',
|
|
23
|
+
'agent_finished',
|
|
24
|
+
'agent_failed',
|
|
25
|
+
'chores_done',
|
|
26
|
+
'red_check',
|
|
27
|
+
'already_done_checked',
|
|
28
|
+
'leftover_scan',
|
|
29
|
+
'changeset_dropped',
|
|
30
|
+
'commit_made',
|
|
31
|
+
'worktree_reset',
|
|
32
|
+
'dependencies_installed',
|
|
33
|
+
'gates_run',
|
|
34
|
+
'ticket_joined',
|
|
35
|
+
'ticket_rebased',
|
|
36
|
+
'tests_sent_back',
|
|
37
|
+
'run_branch_pushed',
|
|
38
|
+
'ticket_stuck',
|
|
39
|
+
'run_stuck',
|
|
40
|
+
'changeset_written',
|
|
41
|
+
'pull_request_opened',
|
|
42
|
+
'jev_asked',
|
|
43
|
+
'jev_answered',
|
|
44
|
+
'jev_failed',
|
|
45
|
+
'decision_model_off',
|
|
46
|
+
'agent_session',
|
|
47
|
+
'agent_session_closed',
|
|
48
|
+
'shared_git_changed',
|
|
49
|
+
'run_stopped',
|
|
50
|
+
'limit_wait_started',
|
|
51
|
+
'limit_wait_ended',
|
|
52
|
+
'usage_line_wait_started',
|
|
53
|
+
'usage_line_wait_ended',
|
|
54
|
+
'usage_recorded',
|
|
55
|
+
'worktrees_removed',
|
|
56
|
+
'agent_message',
|
|
57
|
+
'agent_message_delivered',
|
|
58
|
+
'final_review_started',
|
|
59
|
+
'lens_started',
|
|
60
|
+
'lens_finished',
|
|
61
|
+
'final_review_fixing',
|
|
62
|
+
'final_review_stuck',
|
|
63
|
+
'final_review_passed',
|
|
64
|
+
'final_review_shipped',
|
|
65
|
+
'stuck_reported',
|
|
66
|
+
'comment_read',
|
|
67
|
+
'reply_received',
|
|
68
|
+
'reply_ignored',
|
|
69
|
+
'ticket_retried',
|
|
70
|
+
'ticket_skipped',
|
|
71
|
+
'ticket_already_done',
|
|
72
|
+
'ticket_closed',
|
|
73
|
+
'join_undone',
|
|
74
|
+
'final_review_retried',
|
|
75
|
+
'memory_recalled',
|
|
76
|
+
'memory_write_started',
|
|
77
|
+
'memory_write_done',
|
|
78
|
+
'memories_saved',
|
|
79
|
+
'learning_skipped',
|
|
80
|
+
'memories_reported',
|
|
81
|
+
'step_started',
|
|
82
|
+
'step_ended',
|
|
83
|
+
'ticket_waiting',
|
|
84
|
+
'run_resumed',
|
|
85
|
+
'join_started',
|
|
86
|
+
'engine_resumed',
|
|
87
|
+
'config_reloaded',
|
|
88
|
+
'config_reload_refused',
|
|
89
|
+
'repo_wait_started',
|
|
90
|
+
'repo_wait_ended',
|
|
91
|
+
'repo_wait_skipped',
|
|
92
|
+
'repo_wait_ps_failed',
|
|
93
|
+
])
|
|
94
|
+
|
|
95
|
+
export type JournalKind = z.infer<typeof JournalKindSchema>
|
|
96
|
+
|
|
97
|
+
export const JOURNAL_KINDS = JournalKindSchema.options
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One line of a run's journal (`JournalRecordSchema`): every record kind's
|
|
3
|
+
* entry schema in one union, each with the `seq` and `time` the journal adds.
|
|
4
|
+
* A new kind is added here, in `journal-entry-schema.ts`, and in
|
|
5
|
+
* `journal-kinds.ts`.
|
|
6
|
+
*/
|
|
7
|
+
import { z } from 'zod'
|
|
8
|
+
|
|
9
|
+
import {
|
|
10
|
+
AgentFailedEntrySchema,
|
|
11
|
+
AgentFinishedEntrySchema,
|
|
12
|
+
AgentSessionClosedEntrySchema,
|
|
13
|
+
AgentSessionEntrySchema,
|
|
14
|
+
AgentStartedEntrySchema,
|
|
15
|
+
ChoresDoneEntrySchema,
|
|
16
|
+
SharedGitChangedEntrySchema,
|
|
17
|
+
} from './agent-entries'
|
|
18
|
+
import {
|
|
19
|
+
AgentMessageDeliveredEntrySchema,
|
|
20
|
+
AgentMessageEntrySchema,
|
|
21
|
+
} from './agent-message-entries'
|
|
22
|
+
import {
|
|
23
|
+
AlreadyDoneCheckedEntrySchema,
|
|
24
|
+
TicketAlreadyDoneEntrySchema,
|
|
25
|
+
TicketClosedEntrySchema,
|
|
26
|
+
} from './already-done-entries'
|
|
27
|
+
import {
|
|
28
|
+
ChangesetDroppedEntrySchema,
|
|
29
|
+
CommitMadeEntrySchema,
|
|
30
|
+
LeftoverScanEntrySchema,
|
|
31
|
+
} from './commit-entries'
|
|
32
|
+
import {
|
|
33
|
+
DecisionModelOffEntrySchema,
|
|
34
|
+
JevAnsweredEntrySchema,
|
|
35
|
+
JevAskedEntrySchema,
|
|
36
|
+
JevFailedEntrySchema,
|
|
37
|
+
} from './decision-model-entries'
|
|
38
|
+
import {
|
|
39
|
+
FinalReviewFixingEntrySchema,
|
|
40
|
+
FinalReviewPassedEntrySchema,
|
|
41
|
+
FinalReviewRetriedEntrySchema,
|
|
42
|
+
FinalReviewShippedEntrySchema,
|
|
43
|
+
FinalReviewStartedEntrySchema,
|
|
44
|
+
FinalReviewStuckEntrySchema,
|
|
45
|
+
LensFinishedEntrySchema,
|
|
46
|
+
LensStartedEntrySchema,
|
|
47
|
+
} from './final-review-entries'
|
|
48
|
+
import {
|
|
49
|
+
DependenciesInstalledEntrySchema,
|
|
50
|
+
GatesRunEntrySchema,
|
|
51
|
+
RedCheckEntrySchema,
|
|
52
|
+
} from './gate-entries'
|
|
53
|
+
import {
|
|
54
|
+
IntakeReadEntrySchema,
|
|
55
|
+
IntakeRefusedEntrySchema,
|
|
56
|
+
NothingToDoEntrySchema,
|
|
57
|
+
SpecSnapshotEntrySchema,
|
|
58
|
+
TicketSnapshotEntrySchema,
|
|
59
|
+
} from './intake-entries'
|
|
60
|
+
import {
|
|
61
|
+
JoinStartedEntrySchema,
|
|
62
|
+
JoinUndoneEntrySchema,
|
|
63
|
+
RunBranchPushedEntrySchema,
|
|
64
|
+
TestsSentBackEntrySchema,
|
|
65
|
+
TicketJoinedEntrySchema,
|
|
66
|
+
TicketRebasedEntrySchema,
|
|
67
|
+
} from './join-entries'
|
|
68
|
+
import {
|
|
69
|
+
LimitWaitEndedEntrySchema,
|
|
70
|
+
LimitWaitStartedEntrySchema,
|
|
71
|
+
UsageLineWaitEndedEntrySchema,
|
|
72
|
+
UsageLineWaitStartedEntrySchema,
|
|
73
|
+
UsageRecordedEntrySchema,
|
|
74
|
+
} from './limit-entries'
|
|
75
|
+
import {
|
|
76
|
+
LearningSkippedEntrySchema,
|
|
77
|
+
MemoriesReportedEntrySchema,
|
|
78
|
+
MemoriesSavedEntrySchema,
|
|
79
|
+
MemoryRecalledEntrySchema,
|
|
80
|
+
MemoryWriteDoneEntrySchema,
|
|
81
|
+
MemoryWriteStartedEntrySchema,
|
|
82
|
+
} from './memory-entries'
|
|
83
|
+
import {
|
|
84
|
+
ChangesetWrittenEntrySchema,
|
|
85
|
+
PullRequestOpenedEntrySchema,
|
|
86
|
+
} from './pull-request-entries'
|
|
87
|
+
import {
|
|
88
|
+
RepoWaitEndedEntrySchema,
|
|
89
|
+
RepoWaitPsFailedEntrySchema,
|
|
90
|
+
RepoWaitSkippedEntrySchema,
|
|
91
|
+
RepoWaitStartedEntrySchema,
|
|
92
|
+
} from './repo-wait-entries'
|
|
93
|
+
import {
|
|
94
|
+
ConfigReloadedEntrySchema,
|
|
95
|
+
ConfigReloadRefusedEntrySchema,
|
|
96
|
+
EngineResumedEntrySchema,
|
|
97
|
+
RunResumedEntrySchema,
|
|
98
|
+
RunStartedEntrySchema,
|
|
99
|
+
RunStoppedEntrySchema,
|
|
100
|
+
StepEndedEntrySchema,
|
|
101
|
+
StepStartedEntrySchema,
|
|
102
|
+
TicketWaitingEntrySchema,
|
|
103
|
+
} from './run-entries'
|
|
104
|
+
import {
|
|
105
|
+
CommentReadEntrySchema,
|
|
106
|
+
ReplyIgnoredEntrySchema,
|
|
107
|
+
ReplyReceivedEntrySchema,
|
|
108
|
+
RunStuckEntrySchema,
|
|
109
|
+
StuckReportedEntrySchema,
|
|
110
|
+
TicketRetriedEntrySchema,
|
|
111
|
+
TicketSkippedEntrySchema,
|
|
112
|
+
TicketStuckEntrySchema,
|
|
113
|
+
} from './stuck-entries'
|
|
114
|
+
import {
|
|
115
|
+
BaselinePreparedEntrySchema,
|
|
116
|
+
BaselineReusedEntrySchema,
|
|
117
|
+
BaselineTestsEntrySchema,
|
|
118
|
+
PrepareMadeEntrySchema,
|
|
119
|
+
RunBranchCreatedEntrySchema,
|
|
120
|
+
TicketWorktreeCreatedEntrySchema,
|
|
121
|
+
WorktreeResetEntrySchema,
|
|
122
|
+
WorktreesRemovedEntrySchema,
|
|
123
|
+
} from './worktree-entries'
|
|
124
|
+
|
|
125
|
+
const STAMP_FIELDS = {
|
|
126
|
+
/** 1, 2, 3, ... in the order records were appended. */
|
|
127
|
+
seq: z.number().int().min(1),
|
|
128
|
+
time: z.iso.datetime(),
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
/** One line of a run's journal. */
|
|
132
|
+
export const JournalRecordSchema = z.discriminatedUnion('kind', [
|
|
133
|
+
RunStartedEntrySchema.extend(STAMP_FIELDS),
|
|
134
|
+
IntakeReadEntrySchema.extend(STAMP_FIELDS),
|
|
135
|
+
IntakeRefusedEntrySchema.extend(STAMP_FIELDS),
|
|
136
|
+
NothingToDoEntrySchema.extend(STAMP_FIELDS),
|
|
137
|
+
SpecSnapshotEntrySchema.extend(STAMP_FIELDS),
|
|
138
|
+
TicketSnapshotEntrySchema.extend(STAMP_FIELDS),
|
|
139
|
+
RunBranchCreatedEntrySchema.extend(STAMP_FIELDS),
|
|
140
|
+
TicketWorktreeCreatedEntrySchema.extend(STAMP_FIELDS),
|
|
141
|
+
BaselinePreparedEntrySchema.extend(STAMP_FIELDS),
|
|
142
|
+
PrepareMadeEntrySchema.extend(STAMP_FIELDS),
|
|
143
|
+
BaselineTestsEntrySchema.extend(STAMP_FIELDS),
|
|
144
|
+
BaselineReusedEntrySchema.extend(STAMP_FIELDS),
|
|
145
|
+
AgentStartedEntrySchema.extend(STAMP_FIELDS),
|
|
146
|
+
AgentFinishedEntrySchema.extend(STAMP_FIELDS),
|
|
147
|
+
AgentFailedEntrySchema.extend(STAMP_FIELDS),
|
|
148
|
+
ChoresDoneEntrySchema.extend(STAMP_FIELDS),
|
|
149
|
+
RedCheckEntrySchema.extend(STAMP_FIELDS),
|
|
150
|
+
AlreadyDoneCheckedEntrySchema.extend(STAMP_FIELDS),
|
|
151
|
+
LeftoverScanEntrySchema.extend(STAMP_FIELDS),
|
|
152
|
+
ChangesetDroppedEntrySchema.extend(STAMP_FIELDS),
|
|
153
|
+
CommitMadeEntrySchema.extend(STAMP_FIELDS),
|
|
154
|
+
WorktreeResetEntrySchema.extend(STAMP_FIELDS),
|
|
155
|
+
DependenciesInstalledEntrySchema.extend(STAMP_FIELDS),
|
|
156
|
+
GatesRunEntrySchema.extend(STAMP_FIELDS),
|
|
157
|
+
TicketJoinedEntrySchema.extend(STAMP_FIELDS),
|
|
158
|
+
TicketRebasedEntrySchema.extend(STAMP_FIELDS),
|
|
159
|
+
TestsSentBackEntrySchema.extend(STAMP_FIELDS),
|
|
160
|
+
RunBranchPushedEntrySchema.extend(STAMP_FIELDS),
|
|
161
|
+
TicketStuckEntrySchema.extend(STAMP_FIELDS),
|
|
162
|
+
RunStuckEntrySchema.extend(STAMP_FIELDS),
|
|
163
|
+
ChangesetWrittenEntrySchema.extend(STAMP_FIELDS),
|
|
164
|
+
PullRequestOpenedEntrySchema.extend(STAMP_FIELDS),
|
|
165
|
+
JevAskedEntrySchema.extend(STAMP_FIELDS),
|
|
166
|
+
JevAnsweredEntrySchema.extend(STAMP_FIELDS),
|
|
167
|
+
JevFailedEntrySchema.extend(STAMP_FIELDS),
|
|
168
|
+
DecisionModelOffEntrySchema.extend(STAMP_FIELDS),
|
|
169
|
+
AgentSessionEntrySchema.extend(STAMP_FIELDS),
|
|
170
|
+
AgentSessionClosedEntrySchema.extend(STAMP_FIELDS),
|
|
171
|
+
SharedGitChangedEntrySchema.extend(STAMP_FIELDS),
|
|
172
|
+
RunStoppedEntrySchema.extend(STAMP_FIELDS),
|
|
173
|
+
LimitWaitStartedEntrySchema.extend(STAMP_FIELDS),
|
|
174
|
+
LimitWaitEndedEntrySchema.extend(STAMP_FIELDS),
|
|
175
|
+
UsageLineWaitStartedEntrySchema.extend(STAMP_FIELDS),
|
|
176
|
+
UsageLineWaitEndedEntrySchema.extend(STAMP_FIELDS),
|
|
177
|
+
UsageRecordedEntrySchema.extend(STAMP_FIELDS),
|
|
178
|
+
WorktreesRemovedEntrySchema.extend(STAMP_FIELDS),
|
|
179
|
+
AgentMessageEntrySchema.extend(STAMP_FIELDS),
|
|
180
|
+
AgentMessageDeliveredEntrySchema.extend(STAMP_FIELDS),
|
|
181
|
+
FinalReviewStartedEntrySchema.extend(STAMP_FIELDS),
|
|
182
|
+
LensStartedEntrySchema.extend(STAMP_FIELDS),
|
|
183
|
+
LensFinishedEntrySchema.extend(STAMP_FIELDS),
|
|
184
|
+
FinalReviewFixingEntrySchema.extend(STAMP_FIELDS),
|
|
185
|
+
FinalReviewStuckEntrySchema.extend(STAMP_FIELDS),
|
|
186
|
+
FinalReviewPassedEntrySchema.extend(STAMP_FIELDS),
|
|
187
|
+
FinalReviewShippedEntrySchema.extend(STAMP_FIELDS),
|
|
188
|
+
StuckReportedEntrySchema.extend(STAMP_FIELDS),
|
|
189
|
+
CommentReadEntrySchema.extend(STAMP_FIELDS),
|
|
190
|
+
ReplyReceivedEntrySchema.extend(STAMP_FIELDS),
|
|
191
|
+
ReplyIgnoredEntrySchema.extend(STAMP_FIELDS),
|
|
192
|
+
TicketRetriedEntrySchema.extend(STAMP_FIELDS),
|
|
193
|
+
TicketSkippedEntrySchema.extend(STAMP_FIELDS),
|
|
194
|
+
TicketAlreadyDoneEntrySchema.extend(STAMP_FIELDS),
|
|
195
|
+
TicketClosedEntrySchema.extend(STAMP_FIELDS),
|
|
196
|
+
JoinUndoneEntrySchema.extend(STAMP_FIELDS),
|
|
197
|
+
FinalReviewRetriedEntrySchema.extend(STAMP_FIELDS),
|
|
198
|
+
MemoryRecalledEntrySchema.extend(STAMP_FIELDS),
|
|
199
|
+
MemoryWriteStartedEntrySchema.extend(STAMP_FIELDS),
|
|
200
|
+
MemoryWriteDoneEntrySchema.extend(STAMP_FIELDS),
|
|
201
|
+
MemoriesSavedEntrySchema.extend(STAMP_FIELDS),
|
|
202
|
+
LearningSkippedEntrySchema.extend(STAMP_FIELDS),
|
|
203
|
+
MemoriesReportedEntrySchema.extend(STAMP_FIELDS),
|
|
204
|
+
StepStartedEntrySchema.extend(STAMP_FIELDS),
|
|
205
|
+
StepEndedEntrySchema.extend(STAMP_FIELDS),
|
|
206
|
+
TicketWaitingEntrySchema.extend(STAMP_FIELDS),
|
|
207
|
+
RunResumedEntrySchema.extend(STAMP_FIELDS),
|
|
208
|
+
JoinStartedEntrySchema.extend(STAMP_FIELDS),
|
|
209
|
+
EngineResumedEntrySchema.extend(STAMP_FIELDS),
|
|
210
|
+
ConfigReloadedEntrySchema.extend(STAMP_FIELDS),
|
|
211
|
+
ConfigReloadRefusedEntrySchema.extend(STAMP_FIELDS),
|
|
212
|
+
RepoWaitStartedEntrySchema.extend(STAMP_FIELDS),
|
|
213
|
+
RepoWaitEndedEntrySchema.extend(STAMP_FIELDS),
|
|
214
|
+
RepoWaitSkippedEntrySchema.extend(STAMP_FIELDS),
|
|
215
|
+
RepoWaitPsFailedEntrySchema.extend(STAMP_FIELDS),
|
|
216
|
+
])
|
|
217
|
+
|
|
218
|
+
export type JournalRecord = z.infer<typeof JournalRecordSchema>
|