crewly 1.20.392 → 1.20.394
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/config/constants.ts +16 -0
- package/config/index.ts +2 -0
- package/config/skills/agent/core/complete-task/SKILL.md +18 -0
- package/config/skills/agent/core/complete-task/execute.sh +16 -2
- package/config/skills/agent/core/complete-task/execute.test.sh +18 -0
- package/config/skills/agent/core/get-my-active-work/execute.sh +1 -1
- package/config/skills/agent/core/get-my-context/SKILL.md +5 -0
- package/config/skills/agent/core/get-my-context/execute.sh +11 -1
- package/config/skills/agent/core/get-my-tasks/SKILL.md +2 -1
- package/config/skills/agent/core/get-my-tasks/execute.sh +18 -4
- package/config/skills/team-leader/verify-output/execute.sh +6 -0
- package/config/skills/team-leader/verify-output/execute.test.sh +9 -0
- package/config/sops/common/blocker-handling.md +5 -0
- package/config/sops/common/communication-protocol.md +5 -0
- package/config/sops/common/dev-process-tiers.md +5 -0
- package/config/sops/common/mid-flight-milestone-surface.md +5 -0
- package/config/sops/common/owner-facing-communication.md +5 -0
- package/config/sops/common/writing-for-agents.md +5 -0
- package/config/sops/developer/coding-standards.md +5 -0
- package/config/sops/developer/debugging.md +5 -0
- package/config/sops/developer/git-workflow.md +5 -0
- package/config/sops/developer/testing-requirements.md +5 -0
- package/config/sops/pm/progress-tracking.md +5 -0
- package/config/sops/pm/task-decomposition.md +5 -0
- package/config/sops/qa/testing-procedures.md +5 -0
- package/dist/backend/backend/src/constants.d.ts +39 -0
- package/dist/backend/backend/src/constants.d.ts.map +1 -1
- package/dist/backend/backend/src/constants.js +43 -0
- package/dist/backend/backend/src/constants.js.map +1 -1
- package/dist/backend/backend/src/controllers/active-work/active-work.controller.d.ts +1 -1
- package/dist/backend/backend/src/controllers/active-work/active-work.controller.js +1 -1
- package/dist/backend/backend/src/controllers/memory/memory.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/memory/memory.controller.js +11 -2
- package/dist/backend/backend/src/controllers/memory/memory.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/project-tickets/project-tickets.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/project-tickets/project-tickets.controller.js +5 -0
- package/dist/backend/backend/src/controllers/project-tickets/project-tickets.controller.js.map +1 -1
- package/dist/backend/backend/src/index.d.ts.map +1 -1
- package/dist/backend/backend/src/index.js +21 -1
- package/dist/backend/backend/src/index.js.map +1 -1
- package/dist/backend/backend/src/scripts/check-rule-metadata.d.ts +91 -0
- package/dist/backend/backend/src/scripts/check-rule-metadata.d.ts.map +1 -0
- package/dist/backend/backend/src/scripts/check-rule-metadata.js +214 -0
- package/dist/backend/backend/src/scripts/check-rule-metadata.js.map +1 -0
- package/dist/backend/backend/src/services/ai/prompt-builder.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-builder.service.js +14 -9
- package/dist/backend/backend/src/services/ai/prompt-builder.service.js.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/lazy-anti-patterns.module.d.ts +4 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/lazy-anti-patterns.module.d.ts.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/lazy-anti-patterns.module.js +13 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/lazy-anti-patterns.module.js.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/recovery.module.d.ts +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/recovery.module.d.ts.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/recovery.module.js +17 -22
- package/dist/backend/backend/src/services/ai/prompt-modules/recovery.module.js.map +1 -1
- package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.js +3 -1
- package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.js.map +1 -1
- package/dist/backend/backend/src/services/messaging/sub-agent-message-queue.service.d.ts +4 -0
- package/dist/backend/backend/src/services/messaging/sub-agent-message-queue.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/messaging/sub-agent-message-queue.service.js +6 -1
- package/dist/backend/backend/src/services/messaging/sub-agent-message-queue.service.js.map +1 -1
- package/dist/backend/backend/src/services/project-tickets/ticket-autopilot.service.d.ts +6 -0
- package/dist/backend/backend/src/services/project-tickets/ticket-autopilot.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/project-tickets/ticket-autopilot.service.js +3 -1
- package/dist/backend/backend/src/services/project-tickets/ticket-autopilot.service.js.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-initializer.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-initializer.js +33 -5
- package/dist/backend/backend/src/services/slack/slack-initializer.js.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-instance-registry.service.d.ts +17 -0
- package/dist/backend/backend/src/services/slack/slack-instance-registry.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-instance-registry.service.js +12 -0
- package/dist/backend/backend/src/services/slack/slack-instance-registry.service.js.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-team-channel.service.js +25 -0
- package/dist/backend/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
- package/dist/backend/backend/src/services/slack/slack.service.d.ts +3 -1
- package/dist/backend/backend/src/services/slack/slack.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/slack.service.js +17 -0
- package/dist/backend/backend/src/services/slack/slack.service.js.map +1 -1
- package/dist/backend/backend/src/services/task-pool/completion-evidence.service.d.ts +27 -0
- package/dist/backend/backend/src/services/task-pool/completion-evidence.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/task-pool/completion-evidence.service.js +54 -0
- package/dist/backend/backend/src/services/task-pool/completion-evidence.service.js.map +1 -1
- package/dist/backend/backend/src/services/task-pool/verified-spot-check.service.d.ts +145 -0
- package/dist/backend/backend/src/services/task-pool/verified-spot-check.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/task-pool/verified-spot-check.service.js +254 -0
- package/dist/backend/backend/src/services/task-pool/verified-spot-check.service.js.map +1 -0
- package/dist/backend/backend/src/services/trace/turn-origin.d.ts +16 -4
- package/dist/backend/backend/src/services/trace/turn-origin.d.ts.map +1 -1
- package/dist/backend/backend/src/services/trace/turn-origin.js +27 -9
- package/dist/backend/backend/src/services/trace/turn-origin.js.map +1 -1
- package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.js +7 -2
- package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.js.map +1 -1
- package/dist/backend/backend/src/types/slack.types.d.ts +14 -0
- package/dist/backend/backend/src/types/slack.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/slack.types.js.map +1 -1
- package/dist/backend/backend/src/types/sop.types.d.ts +11 -0
- package/dist/backend/backend/src/types/sop.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/sop.types.js.map +1 -1
- package/dist/backend/build-info.json +2 -2
- package/dist/backend/config/constants.d.ts +20 -0
- package/dist/backend/config/constants.d.ts.map +1 -1
- package/dist/backend/config/constants.js +15 -0
- package/dist/backend/config/constants.js.map +1 -1
- package/dist/backend/config/index.d.ts +2 -2
- package/dist/backend/config/index.d.ts.map +1 -1
- package/dist/backend/config/index.js +2 -2
- package/dist/backend/config/index.js.map +1 -1
- package/dist/cli/backend/src/constants.d.ts +39 -0
- package/dist/cli/backend/src/constants.d.ts.map +1 -1
- package/dist/cli/backend/src/constants.js +43 -0
- package/dist/cli/backend/src/constants.js.map +1 -1
- package/dist/cli/backend/src/services/ai/prompt-builder.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/ai/prompt-builder.service.js +14 -9
- package/dist/cli/backend/src/services/ai/prompt-builder.service.js.map +1 -1
- package/dist/cli/backend/src/services/ai/prompt-modules/lazy-anti-patterns.module.d.ts +4 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/lazy-anti-patterns.module.d.ts.map +1 -1
- package/dist/cli/backend/src/services/ai/prompt-modules/lazy-anti-patterns.module.js +13 -1
- package/dist/cli/backend/src/services/ai/prompt-modules/lazy-anti-patterns.module.js.map +1 -1
- package/dist/cli/backend/src/services/ai/prompt-modules/recovery.module.d.ts +1 -1
- package/dist/cli/backend/src/services/ai/prompt-modules/recovery.module.d.ts.map +1 -1
- package/dist/cli/backend/src/services/ai/prompt-modules/recovery.module.js +17 -22
- package/dist/cli/backend/src/services/ai/prompt-modules/recovery.module.js.map +1 -1
- package/dist/cli/backend/src/services/messaging/sub-agent-message-queue.service.d.ts +4 -0
- package/dist/cli/backend/src/services/messaging/sub-agent-message-queue.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/messaging/sub-agent-message-queue.service.js +6 -1
- package/dist/cli/backend/src/services/messaging/sub-agent-message-queue.service.js.map +1 -1
- package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/slack/slack-team-channel.service.js +25 -0
- package/dist/cli/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
- package/dist/cli/backend/src/services/slack/slack.service.d.ts +3 -1
- package/dist/cli/backend/src/services/slack/slack.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/slack/slack.service.js +17 -0
- package/dist/cli/backend/src/services/slack/slack.service.js.map +1 -1
- package/dist/cli/backend/src/services/trace/turn-origin.d.ts +16 -4
- package/dist/cli/backend/src/services/trace/turn-origin.d.ts.map +1 -1
- package/dist/cli/backend/src/services/trace/turn-origin.js +27 -9
- package/dist/cli/backend/src/services/trace/turn-origin.js.map +1 -1
- package/dist/cli/backend/src/types/slack.types.d.ts +14 -0
- package/dist/cli/backend/src/types/slack.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/slack.types.js.map +1 -1
- package/dist/cli/backend/src/types/sop.types.d.ts +11 -0
- package/dist/cli/backend/src/types/sop.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/sop.types.js.map +1 -1
- package/dist/cli/config/constants.d.ts +20 -0
- package/dist/cli/config/constants.d.ts.map +1 -1
- package/dist/cli/config/constants.js +15 -0
- package/dist/cli/config/constants.js.map +1 -1
- package/dist/cli/config/index.d.ts +2 -2
- package/dist/cli/config/index.d.ts.map +1 -1
- package/dist/cli/config/index.js +2 -2
- package/dist/cli/config/index.js.map +1 -1
- package/package.json +2 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"completion-evidence.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/task-pool/completion-evidence.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"completion-evidence.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/task-pool/completion-evidence.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import type { ComponentLogger } from '../core/logger.service.js';
|
|
2
|
+
import type { WorkItem } from '../../types/v2/work-item.types.js';
|
|
3
|
+
import { type ArtifactDiscrepancy } from './completion-evidence.service.js';
|
|
4
|
+
/** One sampled WorkItem whose artifact is no longer where it was. */
|
|
5
|
+
export interface SpotCheckDiscrepancy extends ArtifactDiscrepancy {
|
|
6
|
+
workItemId: string;
|
|
7
|
+
title: string;
|
|
8
|
+
}
|
|
9
|
+
/** The outcome of one run. */
|
|
10
|
+
export interface SpotCheckResult {
|
|
11
|
+
/** When the run happened (ISO) */
|
|
12
|
+
at: string;
|
|
13
|
+
/** Verified items completed within the window that named an artifact */
|
|
14
|
+
candidates: number;
|
|
15
|
+
/** How many of them were re-checked */
|
|
16
|
+
sampled: number;
|
|
17
|
+
discrepancies: SpotCheckDiscrepancy[];
|
|
18
|
+
}
|
|
19
|
+
/** Hooks the service needs; tests pass fakes. */
|
|
20
|
+
export interface VerifiedSpotCheckDeps {
|
|
21
|
+
/** Every WorkItem in the pool */
|
|
22
|
+
getItems: () => Promise<WorkItem[]>;
|
|
23
|
+
/** One plain notice to the owner; resolves true when delivered */
|
|
24
|
+
notifyOwner: (notice: {
|
|
25
|
+
title: string;
|
|
26
|
+
message: string;
|
|
27
|
+
urgent: boolean;
|
|
28
|
+
}) => Promise<boolean>;
|
|
29
|
+
/** State file (under CREWLY_HOME) */
|
|
30
|
+
stateFile: string;
|
|
31
|
+
/** Re-check one WorkItem's artifacts (defaults to the evidence service's check) */
|
|
32
|
+
recheck?: (workItem: WorkItem) => Promise<ArtifactDiscrepancy[]>;
|
|
33
|
+
now?: () => Date;
|
|
34
|
+
logger?: ComponentLogger;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Whether a WorkItem is a candidate: verified, completed within the window,
|
|
38
|
+
* and naming at least one artifact in its evidence.
|
|
39
|
+
*
|
|
40
|
+
* @param wi - The WorkItem
|
|
41
|
+
* @param nowMs - Clock
|
|
42
|
+
* @param windowMs - How far back a completion may be
|
|
43
|
+
* @returns True for a candidate
|
|
44
|
+
*/
|
|
45
|
+
export declare function isSpotCheckCandidate(wi: WorkItem, nowMs: number, windowMs: number): boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Pick the items to re-check: all candidates when there are few, otherwise
|
|
48
|
+
* an even spread over the window (newest first) so one busy hour does not
|
|
49
|
+
* take every slot. Deterministic — the same pool gives the same sample.
|
|
50
|
+
*
|
|
51
|
+
* @param items - The pool
|
|
52
|
+
* @param nowMs - Clock
|
|
53
|
+
* @param options - Window and sample size
|
|
54
|
+
* @returns The candidates and the sample drawn from them
|
|
55
|
+
*/
|
|
56
|
+
export declare function sampleVerified(items: readonly WorkItem[], nowMs: number, options?: {
|
|
57
|
+
windowMs: number;
|
|
58
|
+
sampleSize: number;
|
|
59
|
+
}): {
|
|
60
|
+
candidates: WorkItem[];
|
|
61
|
+
sample: WorkItem[];
|
|
62
|
+
};
|
|
63
|
+
/**
|
|
64
|
+
* The one line the owner reads, with the discrepancies listed under it when
|
|
65
|
+
* there are any. Zero is stated.
|
|
66
|
+
*
|
|
67
|
+
* @param result - A run's result
|
|
68
|
+
* @returns Markdown lines
|
|
69
|
+
*/
|
|
70
|
+
export declare function spotCheckLine(result: SpotCheckResult): string;
|
|
71
|
+
/**
|
|
72
|
+
* Re-check a sample of verified WorkItems. Pure apart from the file checks
|
|
73
|
+
* `recheck` performs.
|
|
74
|
+
*
|
|
75
|
+
* @param items - The pool
|
|
76
|
+
* @param now - Clock
|
|
77
|
+
* @param recheck - Re-checks one WorkItem's artifacts
|
|
78
|
+
* @param options - Window and sample size
|
|
79
|
+
* @returns The run's result
|
|
80
|
+
*/
|
|
81
|
+
export declare function runSpotCheck(items: readonly WorkItem[], now: Date, recheck: (workItem: WorkItem) => Promise<ArtifactDiscrepancy[]>, options?: {
|
|
82
|
+
windowMs: number;
|
|
83
|
+
sampleSize: number;
|
|
84
|
+
}): Promise<SpotCheckResult>;
|
|
85
|
+
/**
|
|
86
|
+
* Runs the spot check once a day and keeps the latest result for the digest.
|
|
87
|
+
*/
|
|
88
|
+
export declare class VerifiedSpotCheckService {
|
|
89
|
+
private static instance;
|
|
90
|
+
private readonly deps;
|
|
91
|
+
private timer;
|
|
92
|
+
private bootTimer;
|
|
93
|
+
private state;
|
|
94
|
+
private running;
|
|
95
|
+
/**
|
|
96
|
+
* @param deps - Hooks
|
|
97
|
+
*/
|
|
98
|
+
constructor(deps: VerifiedSpotCheckDeps);
|
|
99
|
+
/** @returns The process-wide instance, if one was set */
|
|
100
|
+
static getInstance(): VerifiedSpotCheckService | null;
|
|
101
|
+
/**
|
|
102
|
+
* Set (or clear) the process-wide instance.
|
|
103
|
+
*
|
|
104
|
+
* @param service - The instance
|
|
105
|
+
*/
|
|
106
|
+
static setInstance(service: VerifiedSpotCheckService | null): void;
|
|
107
|
+
/**
|
|
108
|
+
* Start the daily loop: a first check after the boot delay, then every
|
|
109
|
+
* {@link VERIFIED_SPOT_CHECK_CONSTANTS.CHECK_INTERVAL_MS} it asks whether
|
|
110
|
+
* today's run is still owed.
|
|
111
|
+
*/
|
|
112
|
+
start(): void;
|
|
113
|
+
/** Stop the loop. */
|
|
114
|
+
stop(): void;
|
|
115
|
+
/**
|
|
116
|
+
* Run today's check unless it already ran today.
|
|
117
|
+
*
|
|
118
|
+
* @returns The result, or null when today's run was already done
|
|
119
|
+
*/
|
|
120
|
+
runIfDue(): Promise<SpotCheckResult | null>;
|
|
121
|
+
/**
|
|
122
|
+
* Run the check now, record it as today's run, and tell the owner about
|
|
123
|
+
* any discrepancy.
|
|
124
|
+
*
|
|
125
|
+
* @returns The result
|
|
126
|
+
*/
|
|
127
|
+
runOnce(): Promise<SpotCheckResult>;
|
|
128
|
+
/** @returns The latest result, or null before the first run */
|
|
129
|
+
latest(): Promise<SpotCheckResult | null>;
|
|
130
|
+
/**
|
|
131
|
+
* The digest line for a given day: today's result as one line, or null
|
|
132
|
+
* when no run happened that day (the digest then says nothing about it).
|
|
133
|
+
*
|
|
134
|
+
* @param now - Clock
|
|
135
|
+
* @returns The line, or null
|
|
136
|
+
*/
|
|
137
|
+
digestLine(now: Date): Promise<string | null>;
|
|
138
|
+
/** @returns The clock */
|
|
139
|
+
private now;
|
|
140
|
+
/** @returns The state, read once */
|
|
141
|
+
private loadState;
|
|
142
|
+
/** Persist the state; a failure is logged, never thrown. */
|
|
143
|
+
private saveState;
|
|
144
|
+
}
|
|
145
|
+
//# sourceMappingURL=verified-spot-check.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verified-spot-check.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/task-pool/verified-spot-check.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Daily spot check of verified work (crewly#1315).
|
|
3
|
+
*
|
|
4
|
+
* Once a WorkItem is `verified`, nothing looked at it again: the evidence
|
|
5
|
+
* check only confirmed an artifact existed at completion time. This service
|
|
6
|
+
* samples a few verified items from the last day and re-checks that every
|
|
7
|
+
* artifact they named still exists. It never mutates a WorkItem.
|
|
8
|
+
*
|
|
9
|
+
* - Runs once per local day (state file under CREWLY_HOME remembers the day
|
|
10
|
+
* and the result, so a restart does not re-run or re-report it).
|
|
11
|
+
* - The result is one line, "N re-checked, M discrepancies", in the evening
|
|
12
|
+
* ticket digest the owner already reads — zero is stated, not omitted.
|
|
13
|
+
* - A discrepancy also goes to the owner at once through the owner-alert
|
|
14
|
+
* notifier, with the WorkItem id and the missing artifact.
|
|
15
|
+
*
|
|
16
|
+
* Phase 1: artifacts only. Re-running `command` entries marked replayable is
|
|
17
|
+
* a later phase.
|
|
18
|
+
*
|
|
19
|
+
* @module services/task-pool/verified-spot-check.service
|
|
20
|
+
*/
|
|
21
|
+
import { VERIFIED_SPOT_CHECK_CONSTANTS } from '../../constants.js';
|
|
22
|
+
import { validateCompletionEvidence } from '../../types/v2/completion-evidence.types.js';
|
|
23
|
+
import { atomicWriteJson, safeReadJson } from '../../utils/file-io.utils.js';
|
|
24
|
+
import { localDateKey } from '../project-tickets/ticket-autopilot-decision.js';
|
|
25
|
+
import { recheckArtifacts } from './completion-evidence.service.js';
|
|
26
|
+
const C = VERIFIED_SPOT_CHECK_CONSTANTS;
|
|
27
|
+
/**
|
|
28
|
+
* Whether a WorkItem is a candidate: verified, completed within the window,
|
|
29
|
+
* and naming at least one artifact in its evidence.
|
|
30
|
+
*
|
|
31
|
+
* @param wi - The WorkItem
|
|
32
|
+
* @param nowMs - Clock
|
|
33
|
+
* @param windowMs - How far back a completion may be
|
|
34
|
+
* @returns True for a candidate
|
|
35
|
+
*/
|
|
36
|
+
export function isSpotCheckCandidate(wi, nowMs, windowMs) {
|
|
37
|
+
if (wi.status !== 'verified')
|
|
38
|
+
return false;
|
|
39
|
+
const completed = Date.parse(wi.completedAt ?? '');
|
|
40
|
+
if (Number.isNaN(completed) || nowMs - completed > windowMs || completed > nowMs)
|
|
41
|
+
return false;
|
|
42
|
+
const v = validateCompletionEvidence(wi.output?.['evidence']);
|
|
43
|
+
return v.ok && v.evidence.some((e) => e.type === 'artifact');
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Pick the items to re-check: all candidates when there are few, otherwise
|
|
47
|
+
* an even spread over the window (newest first) so one busy hour does not
|
|
48
|
+
* take every slot. Deterministic — the same pool gives the same sample.
|
|
49
|
+
*
|
|
50
|
+
* @param items - The pool
|
|
51
|
+
* @param nowMs - Clock
|
|
52
|
+
* @param options - Window and sample size
|
|
53
|
+
* @returns The candidates and the sample drawn from them
|
|
54
|
+
*/
|
|
55
|
+
export function sampleVerified(items, nowMs, options = { windowMs: C.WINDOW_MS, sampleSize: C.SAMPLE_SIZE }) {
|
|
56
|
+
const candidates = items
|
|
57
|
+
.filter((wi) => isSpotCheckCandidate(wi, nowMs, options.windowMs))
|
|
58
|
+
.sort((a, b) => Date.parse(b.completedAt ?? '') - Date.parse(a.completedAt ?? '') || a.id.localeCompare(b.id));
|
|
59
|
+
if (candidates.length <= options.sampleSize || options.sampleSize <= 0) {
|
|
60
|
+
return { candidates, sample: options.sampleSize <= 0 ? [] : candidates };
|
|
61
|
+
}
|
|
62
|
+
const step = candidates.length / options.sampleSize;
|
|
63
|
+
const sample = [];
|
|
64
|
+
for (let i = 0; i < options.sampleSize; i++) {
|
|
65
|
+
const wi = candidates[Math.floor(i * step)];
|
|
66
|
+
if (wi)
|
|
67
|
+
sample.push(wi);
|
|
68
|
+
}
|
|
69
|
+
return { candidates, sample };
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* The one line the owner reads, with the discrepancies listed under it when
|
|
73
|
+
* there are any. Zero is stated.
|
|
74
|
+
*
|
|
75
|
+
* @param result - A run's result
|
|
76
|
+
* @returns Markdown lines
|
|
77
|
+
*/
|
|
78
|
+
export function spotCheckLine(result) {
|
|
79
|
+
const n = result.discrepancies.length;
|
|
80
|
+
const head = `Spot check: ${result.sampled} verified item(s) from the last day re-checked, ${n} discrepanc${n === 1 ? 'y' : 'ies'}`;
|
|
81
|
+
if (n === 0)
|
|
82
|
+
return head;
|
|
83
|
+
const rows = result.discrepancies
|
|
84
|
+
.slice(0, C.MAX_LISTED_DISCREPANCIES)
|
|
85
|
+
.map((d) => `- ${d.workItemId} "${d.title.slice(0, C.TITLE_MAX_CHARS)}": ${d.problem}`);
|
|
86
|
+
if (n > rows.length)
|
|
87
|
+
rows.push(`- … and ${n - rows.length} more`);
|
|
88
|
+
return [head, ...rows].join('\n');
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Re-check a sample of verified WorkItems. Pure apart from the file checks
|
|
92
|
+
* `recheck` performs.
|
|
93
|
+
*
|
|
94
|
+
* @param items - The pool
|
|
95
|
+
* @param now - Clock
|
|
96
|
+
* @param recheck - Re-checks one WorkItem's artifacts
|
|
97
|
+
* @param options - Window and sample size
|
|
98
|
+
* @returns The run's result
|
|
99
|
+
*/
|
|
100
|
+
export async function runSpotCheck(items, now, recheck, options = { windowMs: C.WINDOW_MS, sampleSize: C.SAMPLE_SIZE }) {
|
|
101
|
+
const { candidates, sample } = sampleVerified(items, now.getTime(), options);
|
|
102
|
+
const discrepancies = [];
|
|
103
|
+
for (const wi of sample) {
|
|
104
|
+
const problems = await recheck(wi).catch((err) => [
|
|
105
|
+
{ artifact: '(all)', problem: `re-check failed: ${err instanceof Error ? err.message : String(err)}` },
|
|
106
|
+
]);
|
|
107
|
+
for (const p of problems)
|
|
108
|
+
discrepancies.push({ workItemId: wi.id, title: wi.title ?? '', ...p });
|
|
109
|
+
}
|
|
110
|
+
return { at: now.toISOString(), candidates: candidates.length, sampled: sample.length, discrepancies };
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Runs the spot check once a day and keeps the latest result for the digest.
|
|
114
|
+
*/
|
|
115
|
+
export class VerifiedSpotCheckService {
|
|
116
|
+
static instance = null;
|
|
117
|
+
deps;
|
|
118
|
+
timer = null;
|
|
119
|
+
bootTimer = null;
|
|
120
|
+
state = null;
|
|
121
|
+
running = null;
|
|
122
|
+
/**
|
|
123
|
+
* @param deps - Hooks
|
|
124
|
+
*/
|
|
125
|
+
constructor(deps) {
|
|
126
|
+
this.deps = deps;
|
|
127
|
+
}
|
|
128
|
+
/** @returns The process-wide instance, if one was set */
|
|
129
|
+
static getInstance() {
|
|
130
|
+
return VerifiedSpotCheckService.instance;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Set (or clear) the process-wide instance.
|
|
134
|
+
*
|
|
135
|
+
* @param service - The instance
|
|
136
|
+
*/
|
|
137
|
+
static setInstance(service) {
|
|
138
|
+
VerifiedSpotCheckService.instance = service;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Start the daily loop: a first check after the boot delay, then every
|
|
142
|
+
* {@link VERIFIED_SPOT_CHECK_CONSTANTS.CHECK_INTERVAL_MS} it asks whether
|
|
143
|
+
* today's run is still owed.
|
|
144
|
+
*/
|
|
145
|
+
start() {
|
|
146
|
+
if (this.timer)
|
|
147
|
+
return;
|
|
148
|
+
this.bootTimer = setTimeout(() => void this.runIfDue(), C.BOOT_DELAY_MS);
|
|
149
|
+
this.timer = setInterval(() => void this.runIfDue(), C.CHECK_INTERVAL_MS);
|
|
150
|
+
}
|
|
151
|
+
/** Stop the loop. */
|
|
152
|
+
stop() {
|
|
153
|
+
if (this.bootTimer)
|
|
154
|
+
clearTimeout(this.bootTimer);
|
|
155
|
+
if (this.timer)
|
|
156
|
+
clearInterval(this.timer);
|
|
157
|
+
this.bootTimer = null;
|
|
158
|
+
this.timer = null;
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Run today's check unless it already ran today.
|
|
162
|
+
*
|
|
163
|
+
* @returns The result, or null when today's run was already done
|
|
164
|
+
*/
|
|
165
|
+
async runIfDue() {
|
|
166
|
+
if (this.running)
|
|
167
|
+
return this.running;
|
|
168
|
+
this.running = (async () => {
|
|
169
|
+
try {
|
|
170
|
+
const state = await this.loadState();
|
|
171
|
+
const today = localDateKey(this.now());
|
|
172
|
+
if (state.lastRunDate === today)
|
|
173
|
+
return null;
|
|
174
|
+
return await this.runOnce();
|
|
175
|
+
}
|
|
176
|
+
catch (err) {
|
|
177
|
+
this.deps.logger?.warn('Verified spot check failed', { error: err instanceof Error ? err.message : String(err) });
|
|
178
|
+
return null;
|
|
179
|
+
}
|
|
180
|
+
finally {
|
|
181
|
+
this.running = null;
|
|
182
|
+
}
|
|
183
|
+
})();
|
|
184
|
+
return this.running;
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Run the check now, record it as today's run, and tell the owner about
|
|
188
|
+
* any discrepancy.
|
|
189
|
+
*
|
|
190
|
+
* @returns The result
|
|
191
|
+
*/
|
|
192
|
+
async runOnce() {
|
|
193
|
+
const now = this.now();
|
|
194
|
+
const items = await this.deps.getItems();
|
|
195
|
+
const result = await runSpotCheck(items, now, this.deps.recheck ?? ((wi) => recheckArtifacts(wi)));
|
|
196
|
+
const state = await this.loadState();
|
|
197
|
+
state.lastRunDate = localDateKey(now);
|
|
198
|
+
state.lastResult = result;
|
|
199
|
+
await this.saveState();
|
|
200
|
+
this.deps.logger?.info('Verified spot check ran', {
|
|
201
|
+
candidates: result.candidates,
|
|
202
|
+
sampled: result.sampled,
|
|
203
|
+
discrepancies: result.discrepancies.length,
|
|
204
|
+
});
|
|
205
|
+
if (result.discrepancies.length > 0) {
|
|
206
|
+
await this.deps.notifyOwner({ title: C.OWNER_ALERT_TITLE, message: spotCheckLine(result), urgent: false }).catch(() => false);
|
|
207
|
+
}
|
|
208
|
+
return result;
|
|
209
|
+
}
|
|
210
|
+
/** @returns The latest result, or null before the first run */
|
|
211
|
+
async latest() {
|
|
212
|
+
return (await this.loadState()).lastResult ?? null;
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* The digest line for a given day: today's result as one line, or null
|
|
216
|
+
* when no run happened that day (the digest then says nothing about it).
|
|
217
|
+
*
|
|
218
|
+
* @param now - Clock
|
|
219
|
+
* @returns The line, or null
|
|
220
|
+
*/
|
|
221
|
+
async digestLine(now) {
|
|
222
|
+
const state = await this.loadState();
|
|
223
|
+
if (!state.lastResult || state.lastRunDate !== localDateKey(now))
|
|
224
|
+
return null;
|
|
225
|
+
return spotCheckLine(state.lastResult);
|
|
226
|
+
}
|
|
227
|
+
/** @returns The clock */
|
|
228
|
+
now() {
|
|
229
|
+
return this.deps.now ? this.deps.now() : new Date();
|
|
230
|
+
}
|
|
231
|
+
/** @returns The state, read once */
|
|
232
|
+
async loadState() {
|
|
233
|
+
if (this.state)
|
|
234
|
+
return this.state;
|
|
235
|
+
const raw = await safeReadJson(this.deps.stateFile, {});
|
|
236
|
+
this.state = {
|
|
237
|
+
...(typeof raw.lastRunDate === 'string' ? { lastRunDate: raw.lastRunDate } : {}),
|
|
238
|
+
...(raw.lastResult && typeof raw.lastResult === 'object' ? { lastResult: raw.lastResult } : {}),
|
|
239
|
+
};
|
|
240
|
+
return this.state;
|
|
241
|
+
}
|
|
242
|
+
/** Persist the state; a failure is logged, never thrown. */
|
|
243
|
+
async saveState() {
|
|
244
|
+
if (!this.state)
|
|
245
|
+
return;
|
|
246
|
+
try {
|
|
247
|
+
await atomicWriteJson(this.deps.stateFile, this.state);
|
|
248
|
+
}
|
|
249
|
+
catch (err) {
|
|
250
|
+
this.deps.logger?.warn('Could not save verified spot check state', { error: err instanceof Error ? err.message : String(err) });
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
//# sourceMappingURL=verified-spot-check.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verified-spot-check.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/task-pool/verified-spot-check.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,25 +22,37 @@
|
|
|
22
22
|
* @module services/trace/turn-origin
|
|
23
23
|
*/
|
|
24
24
|
import type { TraceOutcome } from './trace.types.js';
|
|
25
|
+
/**
|
|
26
|
+
* A harness write older than this no longer vouches for a submit: a paste
|
|
27
|
+
* whose Enter was lost and never taken must not mask a later prompt typed
|
|
28
|
+
* by someone else.
|
|
29
|
+
*/
|
|
30
|
+
export declare const PENDING_WRITE_TTL_MS: number;
|
|
25
31
|
/**
|
|
26
32
|
* The harness is about to submit text into a session's input (called by the
|
|
27
33
|
* guarded writer before it presses Enter).
|
|
28
34
|
*
|
|
29
35
|
* @param session - Agent session
|
|
30
36
|
*/
|
|
31
|
-
export declare function noteHarnessWrite(session: string): void;
|
|
37
|
+
export declare function noteHarnessWrite(session: string, now?: number): void;
|
|
32
38
|
/**
|
|
33
39
|
* A prompt was submitted in the session (Claude Code UserPromptSubmit hook).
|
|
34
40
|
* When the harness typed nothing since the last submitted prompt, the turn
|
|
35
41
|
* was not started by a harness delivery: record `turn.unsolicited`.
|
|
36
42
|
*
|
|
37
|
-
*
|
|
38
|
-
*
|
|
43
|
+
* One submit consumes ONE pending write, oldest first. It used to consume
|
|
44
|
+
* every pending write: Claude Code queues each harness paste that lands
|
|
45
|
+
* mid-turn as its own prompt and submits them one by one when the turn ends,
|
|
46
|
+
* so the second and later ones were flagged unsolicited (21 times on
|
|
47
|
+
* 2026-10-22, Pia alone 12; crewly#1431). Writes expire after
|
|
48
|
+
* {@link PENDING_WRITE_TTL_MS} so a lost paste never vouches for a prompt
|
|
49
|
+
* typed much later by someone else.
|
|
39
50
|
*
|
|
40
51
|
* @param session - Agent session
|
|
52
|
+
* @param now - Clock (tests)
|
|
41
53
|
* @returns True when the turn was unsolicited (and recorded)
|
|
42
54
|
*/
|
|
43
|
-
export declare function notePromptSubmitted(session: string): boolean;
|
|
55
|
+
export declare function notePromptSubmitted(session: string, now?: number): boolean;
|
|
44
56
|
/** An agent browser action, as recorded in a trace. */
|
|
45
57
|
export interface BrowserActionTrace {
|
|
46
58
|
/** Agent session */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"turn-origin.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/trace/turn-origin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"turn-origin.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/trace/turn-origin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAIrD;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,QAAiB,CAAC;AA6EnD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,GAAE,MAAmB,GAAG,IAAI,CAIhF;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,GAAE,MAAmB,GAAG,OAAO,CAsBtF;AAED,uDAAuD;AACvD,MAAM,WAAW,kBAAkB;IAClC,oBAAoB;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,2BAA2B;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,6DAA6D;IAC7D,OAAO,EAAE,YAAY,CAAC;IACtB,iCAAiC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAkClE;AAED;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,IAAI,CAGhD"}
|
|
@@ -23,8 +23,14 @@
|
|
|
23
23
|
*/
|
|
24
24
|
import { LoggerService } from '../core/logger.service.js';
|
|
25
25
|
import { getTraceContext } from './trace-context.service.js';
|
|
26
|
-
/** Harness writes not yet consumed by a submitted prompt, per session */
|
|
26
|
+
/** Harness writes (their times) not yet consumed by a submitted prompt, per session */
|
|
27
27
|
const pendingWrites = new Map();
|
|
28
|
+
/**
|
|
29
|
+
* A harness write older than this no longer vouches for a submit: a paste
|
|
30
|
+
* whose Enter was lost and never taken must not mask a later prompt typed
|
|
31
|
+
* by someone else.
|
|
32
|
+
*/
|
|
33
|
+
export const PENDING_WRITE_TTL_MS = 20 * 60 * 1000;
|
|
28
34
|
/** Last trace each session was seen working in */
|
|
29
35
|
const lastSeenTrace = new Map();
|
|
30
36
|
/** Bound on tracked sessions (oldest dropped first) */
|
|
@@ -109,8 +115,9 @@ function traceFor(session, summary) {
|
|
|
109
115
|
*
|
|
110
116
|
* @param session - Agent session
|
|
111
117
|
*/
|
|
112
|
-
export function noteHarnessWrite(session) {
|
|
113
|
-
|
|
118
|
+
export function noteHarnessWrite(session, now = Date.now()) {
|
|
119
|
+
const fresh = (pendingWrites.get(session) ?? []).filter((at) => now - at < PENDING_WRITE_TTL_MS);
|
|
120
|
+
boundedSet(pendingWrites, session, [...fresh, now]);
|
|
114
121
|
rememberCurrent(session);
|
|
115
122
|
}
|
|
116
123
|
/**
|
|
@@ -118,18 +125,29 @@ export function noteHarnessWrite(session) {
|
|
|
118
125
|
* When the harness typed nothing since the last submitted prompt, the turn
|
|
119
126
|
* was not started by a harness delivery: record `turn.unsolicited`.
|
|
120
127
|
*
|
|
121
|
-
*
|
|
122
|
-
*
|
|
128
|
+
* One submit consumes ONE pending write, oldest first. It used to consume
|
|
129
|
+
* every pending write: Claude Code queues each harness paste that lands
|
|
130
|
+
* mid-turn as its own prompt and submits them one by one when the turn ends,
|
|
131
|
+
* so the second and later ones were flagged unsolicited (21 times on
|
|
132
|
+
* 2026-10-22, Pia alone 12; crewly#1431). Writes expire after
|
|
133
|
+
* {@link PENDING_WRITE_TTL_MS} so a lost paste never vouches for a prompt
|
|
134
|
+
* typed much later by someone else.
|
|
123
135
|
*
|
|
124
136
|
* @param session - Agent session
|
|
137
|
+
* @param now - Clock (tests)
|
|
125
138
|
* @returns True when the turn was unsolicited (and recorded)
|
|
126
139
|
*/
|
|
127
|
-
export function notePromptSubmitted(session) {
|
|
128
|
-
const
|
|
129
|
-
if (
|
|
130
|
-
|
|
140
|
+
export function notePromptSubmitted(session, now = Date.now()) {
|
|
141
|
+
const fresh = (pendingWrites.get(session) ?? []).filter((at) => now - at < PENDING_WRITE_TTL_MS);
|
|
142
|
+
if (fresh.length > 0) {
|
|
143
|
+
const left = fresh.slice(1);
|
|
144
|
+
if (left.length > 0)
|
|
145
|
+
boundedSet(pendingWrites, session, left);
|
|
146
|
+
else
|
|
147
|
+
pendingWrites.delete(session);
|
|
131
148
|
return false;
|
|
132
149
|
}
|
|
150
|
+
pendingWrites.delete(session);
|
|
133
151
|
const summary = 'Turn not started by a harness delivery (text was already in the input or typed in the terminal)';
|
|
134
152
|
log().warn('Unsolicited turn: a prompt was submitted that the harness did not type', { session });
|
|
135
153
|
const traceId = traceFor(session, summary);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"turn-origin.js","sourceRoot":"","sources":["../../../../../../backend/src/services/trace/turn-origin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,aAAa,EAAwB,MAAM,2BAA2B,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAG7D,
|
|
1
|
+
{"version":3,"file":"turn-origin.js","sourceRoot":"","sources":["../../../../../../backend/src/services/trace/turn-origin.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workitem-dispatch.subscriber.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/v3/workitem-dispatch.subscriber.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"workitem-dispatch.subscriber.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/v3/workitem-dispatch.subscriber.ts"],"names":[],"mappings":"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"}
|