sloppatrol 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/README.md +111 -160
  2. package/dist/census/index.js +4 -2
  3. package/dist/census/index.js.map +1 -1
  4. package/dist/census/lib/guardrails.js +38 -9
  5. package/dist/census/lib/guardrails.js.map +1 -1
  6. package/dist/census/lib/stack.d.ts +2 -1
  7. package/dist/census/lib/stack.js +8 -4
  8. package/dist/census/lib/stack.js.map +1 -1
  9. package/dist/cli/index.js +20 -4
  10. package/dist/cli/index.js.map +1 -1
  11. package/dist/cli/lib/browser.d.ts +2 -0
  12. package/dist/cli/lib/browser.js +13 -0
  13. package/dist/cli/lib/browser.js.map +1 -0
  14. package/dist/cli/lib/usage.d.ts +1 -1
  15. package/dist/cli/lib/usage.js +4 -3
  16. package/dist/cli/lib/usage.js.map +1 -1
  17. package/dist/config/lib/schema.d.ts +30 -0
  18. package/dist/config/lib/schema.js +16 -0
  19. package/dist/config/lib/schema.js.map +1 -1
  20. package/dist/dashboard/index.d.ts +4 -0
  21. package/dist/dashboard/index.js +6 -2
  22. package/dist/dashboard/index.js.map +1 -1
  23. package/dist/dashboard/lib/snapshot.d.ts +168 -30
  24. package/dist/dashboard/lib/snapshot.js +104 -37
  25. package/dist/dashboard/lib/snapshot.js.map +1 -1
  26. package/dist/dashboard/lib/summary.d.ts +230 -0
  27. package/dist/dashboard/lib/summary.js +398 -0
  28. package/dist/dashboard/lib/summary.js.map +1 -0
  29. package/dist/domain/index.d.ts +2 -0
  30. package/dist/domain/index.js +1 -0
  31. package/dist/domain/index.js.map +1 -1
  32. package/dist/domain/lib/cycle.d.ts +17 -0
  33. package/dist/domain/lib/cycle.js +2 -0
  34. package/dist/domain/lib/cycle.js.map +1 -0
  35. package/dist/{patrol → domain}/lib/pick.d.ts +2 -1
  36. package/dist/{patrol → domain}/lib/pick.js.map +1 -1
  37. package/dist/domain/lib/refactor.d.ts +2 -0
  38. package/dist/gate/index.d.ts +7 -0
  39. package/dist/gate/index.js +15 -0
  40. package/dist/gate/index.js.map +1 -1
  41. package/dist/patrol/lib/attempt.js +10 -2
  42. package/dist/patrol/lib/attempt.js.map +1 -1
  43. package/dist/patrol/lib/base.d.ts +10 -3
  44. package/dist/patrol/lib/base.js +14 -8
  45. package/dist/patrol/lib/base.js.map +1 -1
  46. package/dist/patrol/lib/cycle.d.ts +1 -1
  47. package/dist/patrol/lib/cycle.js +32 -1
  48. package/dist/patrol/lib/cycle.js.map +1 -1
  49. package/dist/patrol/lib/recover.d.ts +2 -1
  50. package/dist/patrol/lib/recover.js +16 -1
  51. package/dist/patrol/lib/recover.js.map +1 -1
  52. package/dist/patrol/lib/scorecard.js +12 -4
  53. package/dist/patrol/lib/scorecard.js.map +1 -1
  54. package/dist/patrol/lib/steps.d.ts +5 -2
  55. package/dist/patrol/lib/steps.js +9 -6
  56. package/dist/patrol/lib/steps.js.map +1 -1
  57. package/dist/playbook/index.js +3 -3
  58. package/dist/roles/lib/prompts.d.ts +1 -0
  59. package/dist/roles/lib/prompts.js +6 -0
  60. package/dist/roles/lib/prompts.js.map +1 -1
  61. package/dist/roles/lib/refactorer.d.ts +1 -0
  62. package/dist/roles/lib/refactorer.js +24 -6
  63. package/dist/roles/lib/refactorer.js.map +1 -1
  64. package/dist/roles/lib/scorecard-text.js +1 -1
  65. package/dist/roles/lib/scorecard-text.js.map +1 -1
  66. package/dist/store/index.d.ts +4 -1
  67. package/dist/store/index.js +7 -0
  68. package/dist/store/index.js.map +1 -1
  69. package/package.json +1 -1
  70. package/ui/app.js +1236 -324
  71. package/ui/index.html +35 -13
  72. package/ui/style.css +1063 -340
  73. /package/dist/{patrol → domain}/lib/pick.js +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"summary.js","sourceRoot":"","sources":["../../../src/dashboard/lib/summary.ts"],"names":[],"mappings":"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"}
@@ -4,8 +4,10 @@
4
4
  */
5
5
  export { AGENT_ROLES, type AgentEvent, type AgentRole, type AgentStatus } from './lib/agents.js';
6
6
  export type { CheckResult, CheckRun, GuardFinding } from './lib/checks.js';
7
+ export type { Cycle } from './lib/cycle.js';
7
8
  export { newId } from './lib/ids.js';
8
9
  export { type Guardrail, isMetricId, METRIC_IDS, type MetricId, type MetricScore, type Scorecard, type Signals, type UnitScores, } from './lib/metrics.js';
9
10
  export { fingerprintOf, gainOf, isOpportunityKind, OPPORTUNITY_KINDS, type Opportunity, type OpportunityKind, type Side, type Strength, sideOf, titleOf, } from './lib/opportunity.js';
11
+ export { pickOpportunities } from './lib/pick.js';
10
12
  export type { Improvement, Mutation, Proof } from './lib/proof.js';
11
13
  export type { GateVerdict, Refactor, Review } from './lib/refactor.js';
@@ -6,4 +6,5 @@ export { AGENT_ROLES } from './lib/agents.js';
6
6
  export { newId } from './lib/ids.js';
7
7
  export { isMetricId, METRIC_IDS, } from './lib/metrics.js';
8
8
  export { fingerprintOf, gainOf, isOpportunityKind, OPPORTUNITY_KINDS, sideOf, titleOf, } from './lib/opportunity.js';
9
+ export { pickOpportunities } from './lib/pick.js';
9
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/domain/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,WAAW,EAAqD,MAAM,iBAAiB,CAAC;AAEjG,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACrC,OAAO,EAEL,UAAU,EACV,UAAU,GAMX,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,aAAa,EACb,MAAM,EACN,iBAAiB,EACjB,iBAAiB,EAKjB,MAAM,EACN,OAAO,GACR,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/domain/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,WAAW,EAAqD,MAAM,iBAAiB,CAAC;AAGjG,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACrC,OAAO,EAEL,UAAU,EACV,UAAU,GAMX,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,aAAa,EACb,MAAM,EACN,iBAAiB,EACjB,iBAAiB,EAKjB,MAAM,EACN,OAAO,GACR,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { Refactor } from './refactor.js';
2
+ /** What one patrol cycle did, saved when it ends, so a person can see the result of each run. */
3
+ export type Cycle = {
4
+ id: string;
5
+ /** The patrolled commit. Absent when the cycle stopped before it resolved one. */
6
+ sha?: string;
7
+ startedAt: string;
8
+ finishedAt: string;
9
+ /** Why the cycle did no work: the checks fail on the patrolled commit. */
10
+ blocked?: string;
11
+ /** The cycle stopped with an error. */
12
+ error?: string;
13
+ /** Opportunities the surveyor recorded. */
14
+ surveyed: number;
15
+ refactors: Pick<Refactor, 'id' | 'status'>[];
16
+ published: number;
17
+ };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=cycle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cycle.js","sourceRoot":"","sources":["../../../src/domain/lib/cycle.ts"],"names":[],"mappings":""}
@@ -1,4 +1,5 @@
1
- import type { Opportunity, Refactor } from '../../domain/index.js';
1
+ import type { Opportunity } from './opportunity.js';
2
+ import type { Refactor } from './refactor.js';
2
3
  /**
3
4
  * The next opportunities to attempt: strongest first, then the least tried.
4
5
  * None while `maxOpen` pull requests wait for a person, and none that touch
@@ -1 +1 @@
1
- {"version":3,"file":"pick.js","sourceRoot":"","sources":["../../../src/patrol/lib/pick.ts"],"names":[],"mappings":"AAEA,MAAM,IAAI,GAA6B,EAAE,MAAM,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;AAE3F;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAC/B,aAA4B,EAC5B,SAAqB,EACrB,MAA0C;IAE1C,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC;IAC7F,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACrE,IAAI,IAAI,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IACzB,yEAAyE;IACzE,sEAAsE;IACtE,MAAM,IAAI,GAAG,IAAI,GAAG,CAClB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACrB,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,aAAa,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC;QACrE,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1E,CAAC,CACH,CAAC;IAEF,OAAO,aAAa;SACjB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;SAC7E,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SAC1G,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AACpB,CAAC"}
1
+ {"version":3,"file":"pick.js","sourceRoot":"","sources":["../../../src/domain/lib/pick.ts"],"names":[],"mappings":"AAGA,MAAM,IAAI,GAA6B,EAAE,MAAM,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;AAE3F;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAC/B,aAA4B,EAC5B,SAAqB,EACrB,MAA0C;IAE1C,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC;IAC7F,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACrE,IAAI,IAAI,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IACzB,yEAAyE;IACzE,sEAAsE;IACtE,MAAM,IAAI,GAAG,IAAI,GAAG,CAClB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACrB,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,aAAa,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC;QACrE,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1E,CAAC,CACH,CAAC;IAEF,OAAO,aAAa;SACjB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;SAC7E,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SAC1G,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AACpB,CAAC"}
@@ -29,6 +29,8 @@ export type Refactor = {
29
29
  };
30
30
  prUrl?: string;
31
31
  reason?: string;
32
+ /** The refactorer session hit its timeout; a completion session took over its worktree. */
33
+ timedOut?: boolean;
32
34
  createdAt: string;
33
35
  updatedAt: string;
34
36
  };
@@ -18,6 +18,13 @@ export type Inspection = {
18
18
  export declare function inspectChange(worktree: string, baseSha: string, rules: GuardRules): Promise<Inspection>;
19
19
  /** The repo's prepare commands, for a fresh checkout or worktree. Throws on the first failure. */
20
20
  export declare function prepare(commands: string[], dir: string, log?: (line: string) => void): Promise<void>;
21
+ /**
22
+ * The repo's tidy-up commands, in the refactorer's worktree after its session:
23
+ * a deterministic pass that clears mechanical residue (an import the edit made
24
+ * unused, formatting) before the gate sees it. A failing command is logged and
25
+ * left to the checks, so cleanup can never change a verdict by itself.
26
+ */
27
+ export declare function cleanup(commands: string[], dir: string, log?: (line: string) => void): Promise<void>;
21
28
  /** The verdict as markdown, for a pull request or an agent. */
22
29
  export declare function verdictMarkdown(verdict: GateVerdict): string;
23
30
  export declare function guardRulesFor(config: SloppatrolConfig, side: Side): GuardRules;
@@ -17,6 +17,21 @@ export async function prepare(commands, dir, log) {
17
17
  throw new Error(`prepare failed: ${run}\n${result.output}`);
18
18
  }
19
19
  }
20
+ /**
21
+ * The repo's tidy-up commands, in the refactorer's worktree after its session:
22
+ * a deterministic pass that clears mechanical residue (an import the edit made
23
+ * unused, formatting) before the gate sees it. A failing command is logged and
24
+ * left to the checks, so cleanup can never change a verdict by itself.
25
+ */
26
+ export async function cleanup(commands, dir, log) {
27
+ for (const [index, run] of commands.entries()) {
28
+ log?.(`cleanup-${index + 1}: ${run}`);
29
+ const result = await runCommand({ name: `cleanup-${index + 1}`, run, timeoutMinutes: 10 }, dir);
30
+ log?.(`cleanup-${index + 1}: ${result.ok ? 'ok' : 'failed'} in ${(result.durationMs / 1000).toFixed(1)}s`);
31
+ if (!result.ok)
32
+ log?.(result.output);
33
+ }
34
+ }
20
35
  /** The verdict as markdown, for a pull request or an agent. */
21
36
  export function verdictMarkdown(verdict) {
22
37
  const guards = verdict.guards.length
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/gate/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/gate/index.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { newId, titleOf } from '../../domain/index.js';
2
- import { prepare } from '../../gate/index.js';
2
+ import { cleanup, prepare } from '../../gate/index.js';
3
3
  import { addWorktree, git, removeWorktree, squashCommit } from '../../git/index.js';
4
4
  import { refactor } from '../../roles/index.js';
5
5
  import { judge } from './judge.js';
@@ -46,6 +46,10 @@ export async function attempt(ctx, opportunity, base) {
46
46
  const outcome = await refactor(ctx, { opportunity, worktree, baseSha, refactorId: id, branch });
47
47
  if (outcome.stop === 'error')
48
48
  return await save({ status: 'failed', reason: outcome.error });
49
+ // The deterministic tidy-up pass, before the gate looks at the change: a
50
+ // session that ran out of time must not fail a check on residue it can
51
+ // clear mechanically (an import its edit made unused).
52
+ await cleanup(config.cleanup, worktree, log);
49
53
  const summary = outcome.summary ?? '';
50
54
  const committed = await squashCommit(worktree, baseSha, [
51
55
  titleOf(opportunity),
@@ -53,7 +57,11 @@ export async function attempt(ctx, opportunity, base) {
53
57
  ]);
54
58
  if (!committed)
55
59
  return await save({ status: 'rejected', summary, reason: `No change. ${summary}`.trim() });
56
- const head = await save({ summary, headSha: await git(worktree, ['rev-parse', 'HEAD']) });
60
+ const head = await save({
61
+ summary,
62
+ headSha: await git(worktree, ['rev-parse', 'HEAD']),
63
+ ...(outcome.timedOut ? { timedOut: true } : {}),
64
+ });
57
65
  return await save(await judge(ctx, { refactor: head, opportunity, mutation: outcome.mutation, baseDir: base.dir }, save));
58
66
  }
59
67
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"attempt.js","sourceRoot":"","sources":["../../../src/patrol/lib/attempt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"attempt.js","sourceRoot":"","sources":["../../../src/patrol/lib/attempt.ts"],"names":[],"mappings":"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"}
@@ -3,15 +3,22 @@ import type { LoadedConfig } from '../../config/index.js';
3
3
  import type { CheckRun } from '../../domain/index.js';
4
4
  import type { RoleContext } from '../../roles/index.js';
5
5
  import type { PatrolDeps } from './deps.js';
6
- /** The patrolled commit, checked out, with the result of its checks. */
7
- export type Base = {
6
+ /** The patrolled commit, checked out. */
7
+ export type Checkout = {
8
8
  sha: string;
9
9
  /** A detached checkout of `sha` that no agent edits. */
10
10
  dir: string;
11
+ };
12
+ /** The patrolled commit, checked out, with the result of its checks. */
13
+ export type Base = Checkout & {
11
14
  checks: CheckRun;
12
15
  /** Why no refactor can be verified on this commit, when none can. */
13
16
  blocked?: string;
14
17
  };
18
+ /** Checks out the patrolled ref, and removes the checkouts of older commits. */
19
+ export declare function checkoutBase(loaded: LoadedConfig, deps: PatrolDeps): Promise<Checkout & {
20
+ fresh: boolean;
21
+ }>;
15
22
  /**
16
23
  * Checks out the patrolled ref and runs the checks there, once per commit.
17
24
  * The checks are the oracle: on a red commit nothing can be verified.
@@ -20,7 +27,7 @@ export declare function openBase(loaded: LoadedConfig, deps: PatrolDeps, options
20
27
  recheck?: boolean;
21
28
  }): Promise<Base>;
22
29
  /** The census and the role context for work on the base. */
23
- export declare function roleContext(loaded: LoadedConfig, deps: PatrolDeps, base: Base): Promise<{
30
+ export declare function roleContext(loaded: LoadedConfig, deps: PatrolDeps, base: Checkout): Promise<{
24
31
  ctx: RoleContext;
25
32
  census: Census;
26
33
  }>;
@@ -6,20 +6,26 @@ import { checksKey, prepare, runRecordedChecks } from '../../gate/index.js';
6
6
  import { checkout, removeWorktree, resolveRef } from '../../git/index.js';
7
7
  import { playbookFor } from '../../playbook/index.js';
8
8
  import { readRepoRules } from '../../rules/index.js';
9
- /**
10
- * Checks out the patrolled ref and runs the checks there, once per commit.
11
- * The checks are the oracle: on a red commit nothing can be verified.
12
- */
13
- export async function openBase(loaded, deps, options = {}) {
9
+ /** Checks out the patrolled ref, and removes the checkouts of older commits. */
10
+ export async function checkoutBase(loaded, deps) {
14
11
  const { config, source } = loaded;
15
- const { store, log } = deps;
16
12
  const sha = await resolveRef(source, config.patrol.pull);
17
13
  if (!sha)
18
14
  throw new Error(`Cannot resolve ${config.patrol.pull} in ${source}.`);
19
- const dir = store.path('checkouts', sha.slice(0, 12));
20
- await pruneCheckouts(source, store.path('checkouts'), dir);
15
+ const dir = deps.store.path('checkouts', sha.slice(0, 12));
16
+ await pruneCheckouts(source, deps.store.path('checkouts'), dir);
21
17
  const fresh = !existsSync(dir);
22
18
  await checkout(source, dir, sha);
19
+ return { sha, dir, fresh };
20
+ }
21
+ /**
22
+ * Checks out the patrolled ref and runs the checks there, once per commit.
23
+ * The checks are the oracle: on a red commit nothing can be verified.
24
+ */
25
+ export async function openBase(loaded, deps, options = {}) {
26
+ const { config } = loaded;
27
+ const { store, log } = deps;
28
+ const { sha, dir, fresh } = await checkoutBase(loaded, deps);
23
29
  let checks = options.recheck ? undefined : await store.baseCheckRun(sha, checksKey(config.checks));
24
30
  if (!checks) {
25
31
  log(`checking ${config.patrol.pull} at ${sha.slice(0, 10)}`);
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/patrol/lib/base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/patrol/lib/base.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { LoadedConfig } from '../../config/index.js';
2
- import type { Refactor } from '../../domain/index.js';
2
+ import { type Refactor } from '../../domain/index.js';
3
3
  import type { PatrolDeps } from './deps.js';
4
4
  export type CycleResult = {
5
5
  sha: string;
@@ -1,8 +1,8 @@
1
+ import { newId, pickOpportunities } from '../../domain/index.js';
1
2
  import { listFiles } from '../../git/index.js';
2
3
  import { survey } from '../../roles/index.js';
3
4
  import { attempt } from './attempt.js';
4
5
  import { openBase, roleContext } from './base.js';
5
- import { pickOpportunities } from './pick.js';
6
6
  import { publish, syncGithub } from './publish.js';
7
7
  import { retireInvalid } from './retire.js';
8
8
  import { scorecardFor } from './scorecard.js';
@@ -12,11 +12,40 @@ import { scorecardFor } from './scorecard.js';
12
12
  * opportunities, and verified refactors become pull requests.
13
13
  */
14
14
  export async function cycle(loaded, deps) {
15
+ const startedAt = new Date().toISOString();
16
+ const record = (result, error) => {
17
+ const saved = {
18
+ id: newId(new Date(startedAt)),
19
+ ...(result.sha ? { sha: result.sha } : {}),
20
+ startedAt,
21
+ finishedAt: new Date().toISOString(),
22
+ ...(result.blocked ? { blocked: result.blocked } : {}),
23
+ ...(error ? { error } : {}),
24
+ surveyed: result.surveyed ?? 0,
25
+ refactors: (result.refactors ?? []).map((r) => ({ id: r.id, status: r.status })),
26
+ published: result.published?.length ?? 0,
27
+ };
28
+ return deps.store.saveCycle(saved);
29
+ };
30
+ const progress = {};
31
+ try {
32
+ const result = await work(loaded, deps, progress);
33
+ await record(result);
34
+ return result;
35
+ }
36
+ catch (error) {
37
+ await record(progress, error.message.split('\n')[0].slice(0, 500));
38
+ throw error;
39
+ }
40
+ }
41
+ /** The cycle itself. `progress` holds what it did so far, for the record of a cycle that throws. */
42
+ async function work(loaded, deps, progress) {
15
43
  const { config } = loaded;
16
44
  const { store, log } = deps;
17
45
  await syncGithub(loaded, deps);
18
46
  const base = await openBase(loaded, deps);
19
47
  const result = { sha: base.sha, surveyed: 0, refactors: [], published: [] };
48
+ Object.assign(progress, { sha: base.sha });
20
49
  if (base.blocked) {
21
50
  log(base.blocked);
22
51
  return { ...result, blocked: base.blocked };
@@ -31,6 +60,7 @@ export async function cycle(loaded, deps) {
31
60
  const surveyor = config.agents.surveyor;
32
61
  if (surveyor.enabled && open.length < surveyor.minBacklog && state.surveyedSha !== base.sha) {
33
62
  result.surveyed = (await survey(ctx, { dir: base.dir, sha: base.sha, census, scorecard })).recorded.length;
63
+ progress.surveyed = result.surveyed;
34
64
  await store.savePatrolState({ ...(await store.patrolState()), surveyedSha: base.sha });
35
65
  }
36
66
  if (config.agents.refactorer.enabled) {
@@ -43,6 +73,7 @@ export async function cycle(loaded, deps) {
43
73
  const why = refactor.reason ? ` - ${refactor.reason.split('\n')[0]}` : '';
44
74
  log(`refactor ${refactor.id} (${opportunity.title}): ${refactor.status}${why}`);
45
75
  result.refactors.push(refactor);
76
+ progress.refactors = result.refactors;
46
77
  }
47
78
  }
48
79
  const published = await publish(loaded, deps);
@@ -1 +1 @@
1
- {"version":3,"file":"cycle.js","sourceRoot":"","sources":["../../../src/patrol/lib/cycle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cycle.js","sourceRoot":"","sources":["../../../src/patrol/lib/cycle.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import type { LoadedConfig } from '../../config/index.js';
2
2
  import type { PatrolDeps } from './deps.js';
3
3
  /**
4
4
  * Work a stopped Sloppatrol left behind. Only one patrol runs at a time (the
5
- * lock), so anything still `working` or `running` now was interrupted.
5
+ * lock), so anything still `working` or `running` now was interrupted. An
6
+ * agent session that never ended gets an end, so no page shows it as running.
6
7
  */
7
8
  export declare function recoverInterrupted(loaded: LoadedConfig, deps: PatrolDeps): Promise<void>;
@@ -1,7 +1,8 @@
1
1
  import { removeWorktree } from '../../git/index.js';
2
2
  /**
3
3
  * Work a stopped Sloppatrol left behind. Only one patrol runs at a time (the
4
- * lock), so anything still `working` or `running` now was interrupted.
4
+ * lock), so anything still `working` or `running` now was interrupted. An
5
+ * agent session that never ended gets an end, so no page shows it as running.
5
6
  */
6
7
  export async function recoverInterrupted(loaded, deps) {
7
8
  const now = new Date().toISOString();
@@ -20,5 +21,19 @@ export async function recoverInterrupted(loaded, deps) {
20
21
  if (run.status === 'running')
21
22
  await deps.store.saveCheckRun({ ...run, status: 'failed', current: undefined, finishedAt: now });
22
23
  }
24
+ for (const id of await deps.store.sessions()) {
25
+ const events = await deps.store.events(id);
26
+ const last = events.at(-1);
27
+ if (!last || last.kind === 'finish' || last.kind === 'error')
28
+ continue;
29
+ await deps.store.appendEvent({
30
+ at: now,
31
+ sessionId: id,
32
+ role: last.role,
33
+ subject: last.subject,
34
+ kind: 'error',
35
+ summary: 'Interrupted: Sloppatrol stopped.',
36
+ });
37
+ }
23
38
  }
24
39
  //# sourceMappingURL=recover.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"recover.js","sourceRoot":"","sources":["../../../src/patrol/lib/recover.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGpD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,MAAoB,EAAE,IAAgB;IAC7E,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,KAAK,MAAM,QAAQ,IAAI,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,EAAE,CAAC;QACxD,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS;YAAE,SAAS;QAC5C,MAAM,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QACxE,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;YAC5B,GAAG,QAAQ;YACX,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,kCAAkC;YAC1C,SAAS,EAAE,GAAG;SACf,CAAC,CAAC;IACL,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,EAAE,CAAC;QACnD,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS;YAC1B,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;IACrG,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"recover.js","sourceRoot":"","sources":["../../../src/patrol/lib/recover.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGpD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,MAAoB,EAAE,IAAgB;IAC7E,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,KAAK,MAAM,QAAQ,IAAI,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,EAAE,CAAC;QACxD,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS;YAAE,SAAS;QAC5C,MAAM,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QACxE,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;YAC5B,GAAG,QAAQ;YACX,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,kCAAkC;YAC1C,SAAS,EAAE,GAAG;SACf,CAAC,CAAC;IACL,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,EAAE,CAAC;QACnD,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS;YAC1B,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;IACrG,CAAC;IACD,KAAK,MAAM,EAAE,IAAI,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC;QAC7C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC3C,MAAM,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO;YAAE,SAAS;QACvE,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;YAC3B,EAAE,EAAE,GAAG;YACP,SAAS,EAAE,EAAE;YACb,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,kCAAkC;SAC5C,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
@@ -5,6 +5,8 @@ import { contentHash, meanScores, measure, RUBRIC_VERSION } from '../../metrics/
5
5
  import { assess } from '../../roles/index.js';
6
6
  /** About this many lines per assessor session: a large file gets a session of its own. */
7
7
  const BATCH_LINES = 2500;
8
+ /** Tool calls a session needs besides the two per file (`get_unit`, `score_unit`): `list_units`, `finish`, and room to spare. */
9
+ const SESSION_CALLS = 6;
8
10
  /** Sessions that run at once. */
9
11
  const PARALLEL = 3;
10
12
  /**
@@ -26,14 +28,18 @@ function nextToScore(unscored, census, budget) {
26
28
  // Fewer sources than room: fill with more tests.
27
29
  return [...picked, ...ordered.filter((f) => f.isTest && !picked.includes(f)).slice(0, budget - picked.length)];
28
30
  }
29
- /** Groups files into batches of about `BATCH_LINES` lines, one file at least. */
30
- function batches(units) {
31
+ /**
32
+ * Groups files into batches of about `BATCH_LINES` lines, one file at least,
33
+ * and at most `maxUnits` files: many small files would use up the step
34
+ * budget of a session before it scored them all.
35
+ */
36
+ function batches(units, maxUnits) {
31
37
  const groups = [];
32
38
  let current = [];
33
39
  let lines = 0;
34
40
  for (const unit of units) {
35
41
  const size = unit.text.split('\n').length;
36
- if (current.length && lines + size > BATCH_LINES) {
42
+ if (current.length && (lines + size > BATCH_LINES || current.length >= maxUnits)) {
37
43
  groups.push(current);
38
44
  current = [];
39
45
  lines = 0;
@@ -48,7 +54,8 @@ function batches(units) {
48
54
  /** Scores the units in batches, `PARALLEL` sessions at a time, so no session has to hold them all. */
49
55
  async function assessInBatches(ctx, units, input) {
50
56
  const all = new Map();
51
- const queue = batches(units);
57
+ const maxUnits = Math.max(1, Math.floor((ctx.loaded.config.agents.assessor.maxSteps - SESSION_CALLS) / 2));
58
+ const queue = batches(units, maxUnits);
52
59
  const worker = async () => {
53
60
  for (let batch = queue.shift(); batch; batch = queue.shift()) {
54
61
  const scored = await assess(ctx, { units: batch, subject: input.subject, workdir: input.dir, blind: false });
@@ -85,6 +92,7 @@ export async function scorecardFor(ctx, input) {
85
92
  }
86
93
  const fresh = nextToScore(unscored, input.census, budget);
87
94
  if (fresh.length) {
95
+ ctx.log(`scoring ${fresh.length} of ${files.length} files at ${input.sha.slice(0, 10)}`);
88
96
  await ctx.store.setStatus({
89
97
  role: 'assessor',
90
98
  state: 'running',
@@ -1 +1 @@
1
- {"version":3,"file":"scorecard.js","sourceRoot":"","sources":["../../../src/patrol/lib/scorecard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scorecard.js","sourceRoot":"","sources":["../../../src/patrol/lib/scorecard.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,13 @@
1
1
  import type { LoadedConfig } from '../../config/index.js';
2
- import type { Refactor, Scorecard } from '../../domain/index.js';
2
+ import { type Refactor, type Scorecard } from '../../domain/index.js';
3
3
  import { type SurveyResult } from '../../roles/index.js';
4
4
  import type { PatrolDeps } from './deps.js';
5
5
  /** Runs one survey now, whatever the backlog. */
6
6
  export declare function surveyNow(loaded: LoadedConfig, deps: PatrolDeps): Promise<SurveyResult>;
7
7
  /** One attempt now: at the opportunity `id`, or at the best open one. */
8
8
  export declare function refactorNow(loaded: LoadedConfig, deps: PatrolDeps, id?: string): Promise<Refactor>;
9
- /** The scorecard of the patrolled commit now, with up to `budget` more files scored. */
9
+ /**
10
+ * The scorecard of the patrolled commit now: every file scored, or up to
11
+ * `budget` more files. A score verifies nothing, so it needs no green checks.
12
+ */
10
13
  export declare function scoreNow(loaded: LoadedConfig, deps: PatrolDeps, budget?: number): Promise<Scorecard>;
@@ -1,12 +1,12 @@
1
+ import { pickOpportunities } from '../../domain/index.js';
1
2
  import { listFiles } from '../../git/index.js';
2
3
  import { survey } from '../../roles/index.js';
3
4
  import { attempt } from './attempt.js';
4
- import { openBase, roleContext } from './base.js';
5
+ import { checkoutBase, openBase, roleContext } from './base.js';
5
6
  import { exclusive } from './lock.js';
6
- import { pickOpportunities } from './pick.js';
7
7
  import { retireInvalid } from './retire.js';
8
8
  import { scorecardFor } from './scorecard.js';
9
- /** One step of the cycle, run by hand. Each needs green checks on the base. */
9
+ /** One step of the cycle, run by hand. The survey and a refactor need green checks on the base. */
10
10
  async function readyBase(loaded, deps) {
11
11
  const base = await openBase(loaded, deps);
12
12
  if (base.blocked)
@@ -52,10 +52,13 @@ export function refactorNow(loaded, deps, id) {
52
52
  return attempt(ctx, opportunity, base);
53
53
  });
54
54
  }
55
- /** The scorecard of the patrolled commit now, with up to `budget` more files scored. */
56
- export function scoreNow(loaded, deps, budget) {
55
+ /**
56
+ * The scorecard of the patrolled commit now: every file scored, or up to
57
+ * `budget` more files. A score verifies nothing, so it needs no green checks.
58
+ */
59
+ export function scoreNow(loaded, deps, budget = Number.POSITIVE_INFINITY) {
57
60
  return exclusive(loaded, deps, async () => {
58
- const base = await readyBase(loaded, deps);
61
+ const base = await checkoutBase(loaded, deps);
59
62
  const { ctx, census } = await roleContext(loaded, deps, base);
60
63
  return scorecardFor(ctx, { dir: base.dir, sha: base.sha, census, budget });
61
64
  });