@telora/daemon 0.15.2 → 0.15.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -11
- package/build-info.json +2 -2
- package/dist/assembly-engine.d.ts +1 -1
- package/dist/assembly-engine.d.ts.map +1 -1
- package/dist/assembly-resolvers.js +41 -41
- package/dist/assembly-resolvers.js.map +1 -1
- package/dist/branch-status.d.ts +4 -4
- package/dist/branch-status.d.ts.map +1 -1
- package/dist/branch-status.js +23 -23
- package/dist/branch-status.js.map +1 -1
- package/dist/cli/connect.js +1 -1
- package/dist/cli/connect.js.map +1 -1
- package/dist/completion-detector.d.ts +1 -1
- package/dist/completion-detector.js +1 -1
- package/dist/completion-handler.d.ts +1 -1
- package/dist/completion-handler.js +4 -4
- package/dist/completion-handler.js.map +1 -1
- package/dist/condition-evaluators.js +4 -4
- package/dist/condition-evaluators.js.map +1 -1
- package/dist/control-state.d.ts +6 -6
- package/dist/control-state.d.ts.map +1 -1
- package/dist/control-state.js +43 -43
- package/dist/control-state.js.map +1 -1
- package/dist/crash-recovery-scan.d.ts +1 -1
- package/dist/crash-recovery-scan.js +20 -20
- package/dist/crash-recovery-scan.js.map +1 -1
- package/dist/crash-recovery-types.d.ts +3 -3
- package/dist/crash-recovery-types.d.ts.map +1 -1
- package/dist/crash-recovery-types.js +2 -2
- package/dist/crash-recovery-types.js.map +1 -1
- package/dist/crash-recovery.d.ts +3 -3
- package/dist/crash-recovery.d.ts.map +1 -1
- package/dist/crash-recovery.js +21 -21
- package/dist/crash-recovery.js.map +1 -1
- package/dist/daemon-process.d.ts +1 -1
- package/dist/daemon-process.d.ts.map +1 -1
- package/dist/dag-validator.d.ts +6 -6
- package/dist/dag-validator.d.ts.map +1 -1
- package/dist/dag-validator.js +2 -2
- package/dist/dag-validator.js.map +1 -1
- package/dist/delivery-guards.d.ts +1 -1
- package/dist/delivery-guards.js +1 -1
- package/dist/delivery-lifecycle.d.ts +5 -5
- package/dist/delivery-lifecycle.d.ts.map +1 -1
- package/dist/delivery-lifecycle.js +12 -12
- package/dist/delivery-lifecycle.js.map +1 -1
- package/dist/delivery-merge.js +1 -1
- package/dist/delivery-merge.js.map +1 -1
- package/dist/dependency-resolver.d.ts +7 -7
- package/dist/dependency-resolver.d.ts.map +1 -1
- package/dist/dependency-resolver.js.map +1 -1
- package/dist/directive-executor.d.ts +15 -15
- package/dist/directive-executor.d.ts.map +1 -1
- package/dist/directive-executor.js +76 -76
- package/dist/directive-executor.js.map +1 -1
- package/dist/evaluation-context.d.ts +2 -2
- package/dist/evaluation-context.d.ts.map +1 -1
- package/dist/evaluation-context.js +4 -4
- package/dist/evaluation-context.js.map +1 -1
- package/dist/focus-completion-event.d.ts +97 -0
- package/dist/focus-completion-event.d.ts.map +1 -0
- package/dist/focus-completion-event.js +257 -0
- package/dist/focus-completion-event.js.map +1 -0
- package/dist/focus-completion.d.ts +85 -0
- package/dist/focus-completion.d.ts.map +1 -0
- package/dist/focus-completion.js +459 -0
- package/dist/focus-completion.js.map +1 -0
- package/dist/focus-engine.d.ts +47 -0
- package/dist/focus-engine.d.ts.map +1 -0
- package/dist/focus-engine.js +421 -0
- package/dist/focus-engine.js.map +1 -0
- package/dist/focus-executor.d.ts +55 -0
- package/dist/focus-executor.d.ts.map +1 -0
- package/dist/focus-executor.js +549 -0
- package/dist/focus-executor.js.map +1 -0
- package/dist/focus-lifecycle.d.ts +61 -0
- package/dist/focus-lifecycle.d.ts.map +1 -0
- package/dist/focus-lifecycle.js +544 -0
- package/dist/focus-lifecycle.js.map +1 -0
- package/dist/focus-merge.d.ts +77 -0
- package/dist/focus-merge.d.ts.map +1 -0
- package/dist/focus-merge.js +378 -0
- package/dist/focus-merge.js.map +1 -0
- package/dist/focus-prompt-builder.d.ts +35 -0
- package/dist/focus-prompt-builder.d.ts.map +1 -0
- package/dist/focus-prompt-builder.js +138 -0
- package/dist/focus-prompt-builder.js.map +1 -0
- package/dist/focus-provisioning.d.ts +16 -0
- package/dist/focus-provisioning.d.ts.map +1 -0
- package/dist/focus-provisioning.js +119 -0
- package/dist/focus-provisioning.js.map +1 -0
- package/dist/focus-spawn-helpers.d.ts +67 -0
- package/dist/focus-spawn-helpers.d.ts.map +1 -0
- package/dist/focus-spawn-helpers.js +160 -0
- package/dist/focus-spawn-helpers.js.map +1 -0
- package/dist/focus-team-lifecycle.d.ts +50 -0
- package/dist/focus-team-lifecycle.d.ts.map +1 -0
- package/dist/focus-team-lifecycle.js +256 -0
- package/dist/focus-team-lifecycle.js.map +1 -0
- package/dist/focus-team-state.d.ts +24 -0
- package/dist/focus-team-state.d.ts.map +1 -0
- package/dist/focus-team-state.js +43 -0
- package/dist/focus-team-state.js.map +1 -0
- package/dist/focus-worktree-state.d.ts +47 -0
- package/dist/focus-worktree-state.d.ts.map +1 -0
- package/dist/focus-worktree-state.js +104 -0
- package/dist/focus-worktree-state.js.map +1 -0
- package/dist/git-merge.d.ts +5 -5
- package/dist/git-merge.d.ts.map +1 -1
- package/dist/git-merge.js +5 -5
- package/dist/git-merge.js.map +1 -1
- package/dist/git-state-detector.d.ts +1 -1
- package/dist/git-state-detector.js +9 -9
- package/dist/git-state-detector.js.map +1 -1
- package/dist/git-utils.d.ts +1 -1
- package/dist/git-utils.js +1 -1
- package/dist/git.d.ts +2 -2
- package/dist/git.d.ts.map +1 -1
- package/dist/git.js +3 -3
- package/dist/git.js.map +1 -1
- package/dist/heartbeat.d.ts +4 -4
- package/dist/heartbeat.d.ts.map +1 -1
- package/dist/heartbeat.js +7 -7
- package/dist/heartbeat.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +10 -10
- package/dist/index.js.map +1 -1
- package/dist/listener-auto-advance.d.ts +2 -2
- package/dist/listener-auto-advance.js +21 -21
- package/dist/listener-auto-advance.js.map +1 -1
- package/dist/listener.d.ts +12 -12
- package/dist/listener.d.ts.map +1 -1
- package/dist/listener.js +80 -75
- package/dist/listener.js.map +1 -1
- package/dist/loop-engine.d.ts +20 -20
- package/dist/loop-engine.d.ts.map +1 -1
- package/dist/loop-engine.js +82 -82
- package/dist/loop-engine.js.map +1 -1
- package/dist/loop-event-bus.d.ts +5 -5
- package/dist/loop-event-bus.d.ts.map +1 -1
- package/dist/loop-event-bus.js +3 -3
- package/dist/loop-llm-client.d.ts +1 -1
- package/dist/loop-llm-client.js +1 -1
- package/dist/loop-variance.d.ts +1 -1
- package/dist/loop-variance.js +1 -1
- package/dist/merge-detector.d.ts +6 -6
- package/dist/merge-detector.d.ts.map +1 -1
- package/dist/merge-detector.js +47 -47
- package/dist/merge-detector.js.map +1 -1
- package/dist/otlp-log-parser.js +2 -2
- package/dist/otlp-log-parser.js.map +1 -1
- package/dist/otlp-metric-parser.js +1 -1
- package/dist/otlp-metric-parser.js.map +1 -1
- package/dist/otlp-receiver.d.ts +1 -1
- package/dist/otlp-receiver.js +7 -7
- package/dist/otlp-receiver.js.map +1 -1
- package/dist/otlp-types.d.ts +1 -1
- package/dist/otlp-types.d.ts.map +1 -1
- package/dist/otlp-types.js +3 -3
- package/dist/otlp-types.js.map +1 -1
- package/dist/output-monitor.d.ts +6 -6
- package/dist/output-monitor.d.ts.map +1 -1
- package/dist/output-monitor.js +11 -11
- package/dist/output-monitor.js.map +1 -1
- package/dist/planning-prompt-builder.d.ts +11 -11
- package/dist/planning-prompt-builder.d.ts.map +1 -1
- package/dist/planning-prompt-builder.js +28 -28
- package/dist/planning-prompt-builder.js.map +1 -1
- package/dist/pm/mitigation-correlator.d.ts +7 -7
- package/dist/pm/mitigation-correlator.d.ts.map +1 -1
- package/dist/pm/mitigation-correlator.js +33 -33
- package/dist/pm/mitigation-correlator.js.map +1 -1
- package/dist/pm-engine.js +1 -1
- package/dist/pm-engine.js.map +1 -1
- package/dist/prompt-builder.d.ts +1 -1
- package/dist/prompt-builder.js +9 -9
- package/dist/prompt-builder.js.map +1 -1
- package/dist/prompts/starter-prompt.d.ts +2 -2
- package/dist/prompts/starter-prompt.d.ts.map +1 -1
- package/dist/prompts/starter-prompt.js +6 -6
- package/dist/qa-crash-recovery.d.ts +10 -10
- package/dist/qa-crash-recovery.d.ts.map +1 -1
- package/dist/qa-crash-recovery.js +32 -32
- package/dist/qa-crash-recovery.js.map +1 -1
- package/dist/qa-dev-server.d.ts +3 -3
- package/dist/qa-dev-server.d.ts.map +1 -1
- package/dist/qa-dev-server.js +3 -3
- package/dist/qa-dev-server.js.map +1 -1
- package/dist/qa-orchestrator.d.ts +18 -18
- package/dist/qa-orchestrator.d.ts.map +1 -1
- package/dist/qa-orchestrator.js +47 -47
- package/dist/qa-orchestrator.js.map +1 -1
- package/dist/qa-provisioner.d.ts +3 -3
- package/dist/qa-provisioner.d.ts.map +1 -1
- package/dist/qa-provisioner.js +14 -14
- package/dist/qa-provisioner.js.map +1 -1
- package/dist/qa-state.d.ts +10 -10
- package/dist/qa-state.d.ts.map +1 -1
- package/dist/qa-state.js +11 -11
- package/dist/qa-state.js.map +1 -1
- package/dist/queries/control-state.d.ts +5 -5
- package/dist/queries/control-state.d.ts.map +1 -1
- package/dist/queries/control-state.js +4 -4
- package/dist/queries/control-state.js.map +1 -1
- package/dist/queries/deliveries.d.ts +24 -23
- package/dist/queries/deliveries.d.ts.map +1 -1
- package/dist/queries/deliveries.js +30 -29
- package/dist/queries/deliveries.js.map +1 -1
- package/dist/queries/focuses.d.ts +97 -0
- package/dist/queries/focuses.d.ts.map +1 -0
- package/dist/queries/focuses.js +136 -0
- package/dist/queries/focuses.js.map +1 -0
- package/dist/queries/index.d.ts +3 -3
- package/dist/queries/index.d.ts.map +1 -1
- package/dist/queries/index.js +2 -2
- package/dist/queries/index.js.map +1 -1
- package/dist/queries/qa.d.ts +16 -16
- package/dist/queries/qa.d.ts.map +1 -1
- package/dist/queries/qa.js +22 -22
- package/dist/queries/qa.js.map +1 -1
- package/dist/queries/schemas.d.ts +36 -30
- package/dist/queries/schemas.d.ts.map +1 -1
- package/dist/queries/schemas.js +28 -25
- package/dist/queries/schemas.js.map +1 -1
- package/dist/queries/sessions.d.ts +1 -1
- package/dist/queries/sessions.d.ts.map +1 -1
- package/dist/queries/sessions.js +2 -2
- package/dist/queries/sessions.js.map +1 -1
- package/dist/queries/shared.js +10 -10
- package/dist/queries/shared.js.map +1 -1
- package/dist/queries/workflows.d.ts +1 -1
- package/dist/queries/workflows.js +1 -1
- package/dist/queries/worktrees.d.ts +7 -7
- package/dist/queries/worktrees.d.ts.map +1 -1
- package/dist/queries/worktrees.js +7 -7
- package/dist/queries/worktrees.js.map +1 -1
- package/dist/review-defect-detector.d.ts +125 -0
- package/dist/review-defect-detector.d.ts.map +1 -0
- package/dist/review-defect-detector.js +289 -0
- package/dist/review-defect-detector.js.map +1 -0
- package/dist/session-lifecycle.d.ts +17 -17
- package/dist/session-lifecycle.d.ts.map +1 -1
- package/dist/session-lifecycle.js +82 -82
- package/dist/session-lifecycle.js.map +1 -1
- package/dist/spawn-cooldown.d.ts +8 -8
- package/dist/spawn-cooldown.d.ts.map +1 -1
- package/dist/spawn-cooldown.js +15 -15
- package/dist/spawn-cooldown.js.map +1 -1
- package/dist/spawn-environment.d.ts +2 -2
- package/dist/spawn-environment.d.ts.map +1 -1
- package/dist/spawn-environment.js +3 -3
- package/dist/spawn-environment.js.map +1 -1
- package/dist/spawner-lifecycle.d.ts +2 -2
- package/dist/spawner-lifecycle.d.ts.map +1 -1
- package/dist/spawner-lifecycle.js +3 -3
- package/dist/spawner-lifecycle.js.map +1 -1
- package/dist/spawner-resolution.d.ts +3 -3
- package/dist/spawner-resolution.d.ts.map +1 -1
- package/dist/spawner-resolution.js +4 -4
- package/dist/spawner-resolution.js.map +1 -1
- package/dist/spawner-stream-handlers.js +2 -2
- package/dist/spawner-stream-handlers.js.map +1 -1
- package/dist/spawner.d.ts +1 -1
- package/dist/spawner.d.ts.map +1 -1
- package/dist/spawner.js +6 -6
- package/dist/spawner.js.map +1 -1
- package/dist/stage-classifier.d.ts +1 -1
- package/dist/stage-classifier.js +1 -1
- package/dist/state-cascade.d.ts +25 -25
- package/dist/state-cascade.d.ts.map +1 -1
- package/dist/state-cascade.js +89 -89
- package/dist/state-cascade.js.map +1 -1
- package/dist/supabase.d.ts +4 -4
- package/dist/supabase.d.ts.map +1 -1
- package/dist/supabase.js +5 -5
- package/dist/supabase.js.map +1 -1
- package/dist/task-converter.d.ts +4 -4
- package/dist/task-converter.d.ts.map +1 -1
- package/dist/task-converter.js +1 -1
- package/dist/task-converter.js.map +1 -1
- package/dist/team-prompt-base.d.ts +49 -22
- package/dist/team-prompt-base.d.ts.map +1 -1
- package/dist/team-prompt-base.js +96 -32
- package/dist/team-prompt-base.js.map +1 -1
- package/dist/team-spawner.d.ts +9 -9
- package/dist/team-spawner.d.ts.map +1 -1
- package/dist/team-spawner.js +84 -82
- package/dist/team-spawner.js.map +1 -1
- package/dist/telemetry-writer.d.ts +2 -2
- package/dist/telemetry-writer.d.ts.map +1 -1
- package/dist/templates/claude-md.js +8 -8
- package/dist/templates/claude-settings.d.ts +1 -1
- package/dist/templates/claude-settings.js +2 -2
- package/dist/templates/claude-settings.js.map +1 -1
- package/dist/trigger-executor.d.ts +4 -4
- package/dist/trigger-executor.d.ts.map +1 -1
- package/dist/trigger-executor.js +11 -11
- package/dist/trigger-executor.js.map +1 -1
- package/dist/types/dag.d.ts +1 -1
- package/dist/types/delivery.d.ts +3 -3
- package/dist/types/delivery.d.ts.map +1 -1
- package/dist/types/focus.d.ts +214 -0
- package/dist/types/focus.d.ts.map +1 -0
- package/dist/types/focus.js +5 -0
- package/dist/types/focus.js.map +1 -0
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/merge.d.ts +1 -1
- package/dist/types/session.d.ts +2 -2
- package/dist/types/session.d.ts.map +1 -1
- package/dist/unified-engine-lifecycle.js +11 -11
- package/dist/unified-engine-lifecycle.js.map +1 -1
- package/dist/unified-init.d.ts +1 -1
- package/dist/unified-init.js +9 -9
- package/dist/unified-init.js.map +1 -1
- package/dist/unified-shell-config.d.ts +4 -4
- package/dist/unified-shell-config.d.ts.map +1 -1
- package/dist/unified-shell-config.js +5 -5
- package/dist/unified-shell-config.js.map +1 -1
- package/dist/unified-shell-status.js +3 -3
- package/dist/unified-shell-status.js.map +1 -1
- package/dist/unified-shell.d.ts +1 -1
- package/dist/unified-shell.js +4 -4
- package/dist/unified-shell.js.map +1 -1
- package/dist/workflow-engine.d.ts +1 -1
- package/dist/workflow-engine.d.ts.map +1 -1
- package/dist/worktree-focus.d.ts +69 -0
- package/dist/worktree-focus.d.ts.map +1 -0
- package/dist/worktree-focus.js +214 -0
- package/dist/worktree-focus.js.map +1 -0
- package/dist/worktree.d.ts +10 -10
- package/dist/worktree.d.ts.map +1 -1
- package/dist/worktree.js +39 -39
- package/dist/worktree.js.map +1 -1
- package/package.json +2 -2
package/dist/state-cascade.js
CHANGED
|
@@ -2,41 +2,41 @@
|
|
|
2
2
|
* Deterministic State Cascade Engine.
|
|
3
3
|
*
|
|
4
4
|
* Implements upward state cascades from child to parent entities:
|
|
5
|
-
* - Delivery ->
|
|
5
|
+
* - Delivery -> Focus: all non-cancelled deliveries verify => focus building -> verify
|
|
6
6
|
*
|
|
7
7
|
* Note: Issue -> Delivery cascade is handled by checkDeliveryAutoAdvance
|
|
8
8
|
* in listener-auto-advance.ts.
|
|
9
9
|
*
|
|
10
10
|
* And downward reactions when parents revert:
|
|
11
|
-
* -
|
|
11
|
+
* - Focus regression: if a delivery reverts from verify, focus reverts from verify -> building
|
|
12
12
|
*
|
|
13
13
|
* Called from the daemon poll loop via runCascadeChecks().
|
|
14
14
|
*/
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
15
|
+
import { getActiveFocuses, updateDeliveryStatus as _updateDeliveryStatus, fetchEffectiveWorkflow as _fetchEffectiveWorkflow, getDeliveryIssues as _getDeliveryIssues } from './supabase.js';
|
|
16
|
+
import { getFocusDeliveries as _getFocusDeliveries, updateFocusStatus as _updateFocusStatus, fetchFocusWorkflowWithTransitions as _fetchFocusWorkflowWithTransitions } from './queries/focuses.js';
|
|
17
17
|
import { configForProduct } from './config.js';
|
|
18
18
|
import { emitLoopTrigger } from './loop-event-bus.js';
|
|
19
19
|
import { isStatusCascadable, isStatusExcludedFromCascade, isStatusTerminal } from './stage-classifier.js';
|
|
20
20
|
import { filterWorkIssues, ACTIVE_WORK_STATUSES } from './constants.js';
|
|
21
|
-
import { hasActiveTeam } from './
|
|
21
|
+
import { hasActiveTeam } from './focus-team-state.js';
|
|
22
22
|
const defaultDeps = {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
getFocusDeliveries: _getFocusDeliveries,
|
|
24
|
+
updateFocusStatus: _updateFocusStatus,
|
|
25
|
+
fetchFocusWorkflowWithTransitions: _fetchFocusWorkflowWithTransitions,
|
|
26
26
|
fetchEffectiveWorkflow: _fetchEffectiveWorkflow,
|
|
27
27
|
updateDeliveryStatus: _updateDeliveryStatus,
|
|
28
28
|
getDeliveryIssues: _getDeliveryIssues,
|
|
29
29
|
};
|
|
30
30
|
/**
|
|
31
|
-
* Check if all non-cancelled deliveries within a
|
|
32
|
-
* and if so, advance the
|
|
31
|
+
* Check if all non-cancelled deliveries within a focus have reached verify,
|
|
32
|
+
* and if so, advance the focus from building -> verify.
|
|
33
33
|
*/
|
|
34
|
-
export async function
|
|
35
|
-
// Only cascade when
|
|
36
|
-
if (
|
|
34
|
+
export async function checkDeliveryToFocusCascade(config, focusId, focusStatus, deps = defaultDeps) {
|
|
35
|
+
// Only cascade when focus is in building stage
|
|
36
|
+
if (focusStatus !== 'building')
|
|
37
37
|
return;
|
|
38
38
|
try {
|
|
39
|
-
const deliveries = await deps.
|
|
39
|
+
const deliveries = await deps.getFocusDeliveries(focusId);
|
|
40
40
|
// Filter to non-cancelled deliveries (active + completed work)
|
|
41
41
|
const activeDeliveries = deliveries.filter(d => !isStatusExcludedFromCascade(d.executionStatus ?? ''));
|
|
42
42
|
// Nothing to cascade if there are no deliveries
|
|
@@ -46,86 +46,86 @@ export async function checkDeliveryToStrategyCascade(config, strategyId, strateg
|
|
|
46
46
|
const allInVerify = activeDeliveries.every(d => isStatusCascadable(d.executionStatus ?? ''));
|
|
47
47
|
if (!allInVerify)
|
|
48
48
|
return;
|
|
49
|
-
// All deliveries are in verify/in_review/done -- advance
|
|
50
|
-
const workflow = await deps.
|
|
49
|
+
// All deliveries are in verify/in_review/done -- advance focus to verify
|
|
50
|
+
const workflow = await deps.fetchFocusWorkflowWithTransitions(focusId);
|
|
51
51
|
// Find the building and verify stages
|
|
52
52
|
const buildingStage = workflow.stages.find(s => s.name === 'building');
|
|
53
53
|
const verifyStage = workflow.stages.find(s => s.name === 'verify');
|
|
54
54
|
if (!verifyStage) {
|
|
55
|
-
console.warn('[state-cascade] No verify stage found in
|
|
55
|
+
console.warn('[state-cascade] No verify stage found in focus workflow -- cannot cascade');
|
|
56
56
|
return;
|
|
57
57
|
}
|
|
58
58
|
// Verify there's a valid building->verify transition
|
|
59
59
|
if (workflow.transitions) {
|
|
60
60
|
const transition = workflow.transitions.find(t => buildingStage && t.from_stage_id === buildingStage.id && t.to_stage_id === verifyStage.id);
|
|
61
61
|
if (!transition) {
|
|
62
|
-
console.warn('[state-cascade] No building->verify transition found in
|
|
62
|
+
console.warn('[state-cascade] No building->verify transition found in focus workflow');
|
|
63
63
|
return;
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
|
-
await deps.
|
|
67
|
-
console.log(`[state-cascade]
|
|
66
|
+
await deps.updateFocusStatus(focusId, 'verify', verifyStage.id);
|
|
67
|
+
console.log(`[state-cascade] Focus ${focusId} cascaded building -> verify: ` +
|
|
68
68
|
`all ${activeDeliveries.length} active delivery(ies) in verify or beyond`);
|
|
69
69
|
emitLoopTrigger({
|
|
70
|
-
type: '
|
|
71
|
-
|
|
70
|
+
type: 'focus_status_changed',
|
|
71
|
+
focusId,
|
|
72
72
|
detail: 'building -> verify (all deliveries complete)',
|
|
73
73
|
});
|
|
74
74
|
}
|
|
75
75
|
catch (err) {
|
|
76
|
-
console.warn(`[state-cascade] Failed to check delivery->
|
|
76
|
+
console.warn(`[state-cascade] Failed to check delivery->focus cascade for ${focusId}:`, err.message);
|
|
77
77
|
}
|
|
78
78
|
}
|
|
79
79
|
/**
|
|
80
|
-
* If a
|
|
81
|
-
* non-complete status, regress the
|
|
80
|
+
* If a focus is in verify/in_review but a delivery has reverted to a
|
|
81
|
+
* non-complete status, regress the focus back to building.
|
|
82
82
|
*/
|
|
83
|
-
export async function
|
|
84
|
-
// Only regress if
|
|
85
|
-
// Terminal
|
|
86
|
-
if (!isStatusCascadable(
|
|
83
|
+
export async function handleFocusRegression(config, focusId, focusStatus, deps = defaultDeps) {
|
|
84
|
+
// Only regress if focus is in a cascadable but non-terminal stage (verify, in_review).
|
|
85
|
+
// Terminal focuses (done, cancelled) should not regress.
|
|
86
|
+
if (!isStatusCascadable(focusStatus) || isStatusTerminal(focusStatus))
|
|
87
87
|
return;
|
|
88
88
|
try {
|
|
89
|
-
const deliveries = await deps.
|
|
89
|
+
const deliveries = await deps.getFocusDeliveries(focusId);
|
|
90
90
|
// Check if any non-cancelled delivery is NOT in a complete status
|
|
91
91
|
const activeDeliveries = deliveries.filter(d => !isStatusExcludedFromCascade(d.executionStatus ?? ''));
|
|
92
92
|
const hasIncomplete = activeDeliveries.some(d => !isStatusCascadable(d.executionStatus ?? ''));
|
|
93
93
|
if (!hasIncomplete)
|
|
94
94
|
return;
|
|
95
|
-
// A delivery has reverted -- regress
|
|
96
|
-
const workflow = await deps.
|
|
95
|
+
// A delivery has reverted -- regress focus back to building
|
|
96
|
+
const workflow = await deps.fetchFocusWorkflowWithTransitions(focusId);
|
|
97
97
|
const buildingStage = workflow.stages.find(s => s.name === 'building');
|
|
98
98
|
if (!buildingStage) {
|
|
99
|
-
console.warn('[state-cascade] No building stage found in
|
|
99
|
+
console.warn('[state-cascade] No building stage found in focus workflow -- cannot regress');
|
|
100
100
|
return;
|
|
101
101
|
}
|
|
102
|
-
await deps.
|
|
103
|
-
console.log(`[state-cascade]
|
|
102
|
+
await deps.updateFocusStatus(focusId, 'building', buildingStage.id, { reviewRequestedAt: null });
|
|
103
|
+
console.log(`[state-cascade] Focus ${focusId} regressed ${focusStatus} -> building: ` +
|
|
104
104
|
`delivery reverted to non-verify status (review_requested_at cleared)`);
|
|
105
105
|
emitLoopTrigger({
|
|
106
106
|
type: 'review_completed',
|
|
107
|
-
|
|
108
|
-
detail: `${
|
|
107
|
+
focusId,
|
|
108
|
+
detail: `${focusStatus} -> building (delivery regression, review cleared)`,
|
|
109
109
|
});
|
|
110
110
|
}
|
|
111
111
|
catch (err) {
|
|
112
|
-
console.warn(`[state-cascade] Failed to check
|
|
112
|
+
console.warn(`[state-cascade] Failed to check focus regression for ${focusId}:`, err.message);
|
|
113
113
|
}
|
|
114
114
|
}
|
|
115
115
|
/**
|
|
116
|
-
* When a
|
|
116
|
+
* When a focus reaches verify and has pipeline_config.review.enabled,
|
|
117
117
|
* automatically trigger AI review by setting review_requested_at,
|
|
118
|
-
* transitioning the
|
|
118
|
+
* transitioning the focus to in_review, and cascading deliveries
|
|
119
119
|
* from verify to in_review.
|
|
120
120
|
*/
|
|
121
|
-
export async function checkAutoReview(config,
|
|
122
|
-
// Only trigger when
|
|
123
|
-
if (
|
|
121
|
+
export async function checkAutoReview(config, focusId, focusStatus, pipelineConfig, deps = defaultDeps) {
|
|
122
|
+
// Only trigger when focus just reached verify and review is enabled
|
|
123
|
+
if (focusStatus !== 'verify')
|
|
124
124
|
return;
|
|
125
125
|
if (!pipelineConfig?.review?.enabled)
|
|
126
126
|
return;
|
|
127
127
|
try {
|
|
128
|
-
const deliveries = await deps.
|
|
128
|
+
const deliveries = await deps.getFocusDeliveries(focusId);
|
|
129
129
|
const activeDeliveries = deliveries.filter(d => !isStatusExcludedFromCascade(d.executionStatus ?? ''));
|
|
130
130
|
// Only auto-review when ALL non-cancelled deliveries are in verify or done
|
|
131
131
|
const allComplete = activeDeliveries.every(d => isStatusCascadable(d.executionStatus ?? ''));
|
|
@@ -138,36 +138,36 @@ export async function checkAutoReview(config, strategyId, strategyStatus, pipeli
|
|
|
138
138
|
const allDone = activeDeliveries.every(d => d.executionStatus === 'done');
|
|
139
139
|
if (allDone)
|
|
140
140
|
return;
|
|
141
|
-
// Transition
|
|
142
|
-
const
|
|
143
|
-
const inReviewStage =
|
|
141
|
+
// Transition focus to in_review and set review_requested_at
|
|
142
|
+
const focusWorkflow = await deps.fetchFocusWorkflowWithTransitions(focusId);
|
|
143
|
+
const inReviewStage = focusWorkflow.stages.find(s => s.name === 'in_review');
|
|
144
144
|
if (!inReviewStage) {
|
|
145
|
-
console.warn('[state-cascade] Auto-review: no in_review stage in
|
|
145
|
+
console.warn('[state-cascade] Auto-review: no in_review stage in focus workflow');
|
|
146
146
|
return;
|
|
147
147
|
}
|
|
148
|
-
await deps.
|
|
148
|
+
await deps.updateFocusStatus(focusId, 'in_review', inReviewStage.id, { reviewRequestedAt: new Date().toISOString() });
|
|
149
149
|
// Delivery cascade to in_review is handled by cascadeDeliveriesToInReview
|
|
150
150
|
// in the main poll loop (covers both auto and manual review triggers).
|
|
151
|
-
console.log(`[state-cascade] Auto-review triggered for
|
|
152
|
-
`
|
|
151
|
+
console.log(`[state-cascade] Auto-review triggered for focus ${focusId}: ` +
|
|
152
|
+
`focus transitioned to in_review`);
|
|
153
153
|
emitLoopTrigger({
|
|
154
|
-
type: '
|
|
155
|
-
|
|
154
|
+
type: 'focus_status_changed',
|
|
155
|
+
focusId,
|
|
156
156
|
detail: 'verify -> in_review (auto-review triggered)',
|
|
157
157
|
});
|
|
158
158
|
}
|
|
159
159
|
catch (err) {
|
|
160
|
-
console.warn(`[state-cascade] Failed to check auto-review for ${
|
|
160
|
+
console.warn(`[state-cascade] Failed to check auto-review for ${focusId}:`, err.message);
|
|
161
161
|
}
|
|
162
162
|
}
|
|
163
163
|
/**
|
|
164
|
-
* When a
|
|
164
|
+
* When a focus is in_review, ensure its verify deliveries are moved to in_review.
|
|
165
165
|
* This handles both auto-review (where checkAutoReview does it inline) and manual
|
|
166
|
-
* review (where the UI sets the
|
|
166
|
+
* review (where the UI sets the focus to in_review but doesn't touch deliveries).
|
|
167
167
|
*/
|
|
168
|
-
async function cascadeDeliveriesToInReview(
|
|
168
|
+
async function cascadeDeliveriesToInReview(focusId, deps = defaultDeps) {
|
|
169
169
|
try {
|
|
170
|
-
const deliveries = await deps.
|
|
170
|
+
const deliveries = await deps.getFocusDeliveries(focusId);
|
|
171
171
|
for (const d of deliveries) {
|
|
172
172
|
if (d.executionStatus === 'verify') {
|
|
173
173
|
try {
|
|
@@ -183,26 +183,26 @@ async function cascadeDeliveriesToInReview(strategyId, deps = defaultDeps) {
|
|
|
183
183
|
}
|
|
184
184
|
}
|
|
185
185
|
catch (err) {
|
|
186
|
-
console.warn(`[state-cascade] Failed to cascade deliveries to in_review for ${
|
|
186
|
+
console.warn(`[state-cascade] Failed to cascade deliveries to in_review for ${focusId}: ${err.message}`);
|
|
187
187
|
}
|
|
188
188
|
}
|
|
189
189
|
/**
|
|
190
|
-
* When a
|
|
190
|
+
* When a focus is in_review but no review team is running, check whether
|
|
191
191
|
* all in_review deliveries have passed (no open work issues). If so, route
|
|
192
|
-
* them to done and move the
|
|
192
|
+
* them to done and move the focus back to verify.
|
|
193
193
|
*
|
|
194
194
|
* This handles the case where auto-review triggers but no review team spawns
|
|
195
195
|
* (e.g., no agent_directive on the in_review stage, or no active team to
|
|
196
|
-
* receive an inject directive). Without this, the
|
|
196
|
+
* receive an inject directive). Without this, the focus is stuck in
|
|
197
197
|
* in_review forever.
|
|
198
198
|
*/
|
|
199
|
-
export async function checkReviewCompletion(
|
|
199
|
+
export async function checkReviewCompletion(focusId, deps = defaultDeps) {
|
|
200
200
|
// Only act when no team is running -- if a team is active, let the
|
|
201
201
|
// review exit handler in handleTeamCompletion deal with it.
|
|
202
|
-
if (hasActiveTeam(
|
|
202
|
+
if (hasActiveTeam(focusId))
|
|
203
203
|
return;
|
|
204
204
|
try {
|
|
205
|
-
const deliveries = await deps.
|
|
205
|
+
const deliveries = await deps.getFocusDeliveries(focusId);
|
|
206
206
|
const inReviewDeliveries = deliveries.filter(d => d.executionStatus === 'in_review');
|
|
207
207
|
if (inReviewDeliveries.length === 0)
|
|
208
208
|
return;
|
|
@@ -231,52 +231,52 @@ export async function checkReviewCompletion(strategyId, deps = defaultDeps) {
|
|
|
231
231
|
console.warn(`[state-cascade] Failed to move delivery "${d.name}" to done: ${err.message}`);
|
|
232
232
|
}
|
|
233
233
|
}
|
|
234
|
-
// Move
|
|
235
|
-
const workflow = await deps.
|
|
234
|
+
// Move focus back to verify
|
|
235
|
+
const workflow = await deps.fetchFocusWorkflowWithTransitions(focusId);
|
|
236
236
|
const verifyStage = workflow.stages.find(s => s.name === 'verify');
|
|
237
237
|
if (verifyStage) {
|
|
238
|
-
await deps.
|
|
239
|
-
console.log(`[state-cascade] Review complete (no team):
|
|
238
|
+
await deps.updateFocusStatus(focusId, 'verify', verifyStage.id, { reviewRequestedAt: null });
|
|
239
|
+
console.log(`[state-cascade] Review complete (no team): focus moved to verify`);
|
|
240
240
|
emitLoopTrigger({
|
|
241
241
|
type: 'review_completed',
|
|
242
|
-
|
|
242
|
+
focusId,
|
|
243
243
|
detail: 'in_review -> verify (auto-completed by cascade, no review team)',
|
|
244
244
|
});
|
|
245
245
|
}
|
|
246
246
|
}
|
|
247
247
|
catch (err) {
|
|
248
|
-
console.warn(`[state-cascade] Failed to check review completion for ${
|
|
248
|
+
console.warn(`[state-cascade] Failed to check review completion for ${focusId}: ${err.message}`);
|
|
249
249
|
}
|
|
250
250
|
}
|
|
251
251
|
/**
|
|
252
|
-
* Run all cascade checks for active
|
|
252
|
+
* Run all cascade checks for active focuses across all configured products.
|
|
253
253
|
*
|
|
254
|
-
* Called from the daemon poll loop. For each active
|
|
255
|
-
* 1. Check delivery->
|
|
256
|
-
* 2. Check auto-review (
|
|
257
|
-
* 3. Complete stuck reviews (
|
|
258
|
-
* 4. Check for
|
|
254
|
+
* Called from the daemon poll loop. For each active focus:
|
|
255
|
+
* 1. Check delivery->focus cascade (all deliveries verify => focus verify)
|
|
256
|
+
* 2. Check auto-review (focus in verify + review.enabled)
|
|
257
|
+
* 3. Complete stuck reviews (focus in_review + no team running + all pass)
|
|
258
|
+
* 4. Check for focus regression (delivery reverted => focus back to building)
|
|
259
259
|
*/
|
|
260
260
|
export async function runCascadeChecks(config) {
|
|
261
261
|
for (const product of config.products) {
|
|
262
262
|
const pc = configForProduct(config, product);
|
|
263
263
|
try {
|
|
264
|
-
const
|
|
265
|
-
for (const
|
|
266
|
-
// Check delivery ->
|
|
267
|
-
await
|
|
268
|
-
// Check auto-review (
|
|
269
|
-
await checkAutoReview(pc,
|
|
270
|
-
// Cascade deliveries to in_review when
|
|
264
|
+
const focuses = await getActiveFocuses(pc.organizationId, product.id);
|
|
265
|
+
for (const focus of focuses) {
|
|
266
|
+
// Check delivery -> focus cascade
|
|
267
|
+
await checkDeliveryToFocusCascade(pc, focus.focus_id, focus.status);
|
|
268
|
+
// Check auto-review (focus in verify + review.enabled)
|
|
269
|
+
await checkAutoReview(pc, focus.focus_id, focus.status, focus.pipeline_config);
|
|
270
|
+
// Cascade deliveries to in_review when focus is in_review
|
|
271
271
|
// (covers both auto-review and manual review button)
|
|
272
|
-
if (
|
|
273
|
-
await cascadeDeliveriesToInReview(
|
|
272
|
+
if (focus.status === 'in_review') {
|
|
273
|
+
await cascadeDeliveriesToInReview(focus.focus_id);
|
|
274
274
|
// Complete stuck reviews: if no team is running and all
|
|
275
275
|
// in_review deliveries pass, route to done and move to verify
|
|
276
|
-
await checkReviewCompletion(
|
|
276
|
+
await checkReviewCompletion(focus.focus_id);
|
|
277
277
|
}
|
|
278
|
-
// Check for
|
|
279
|
-
await
|
|
278
|
+
// Check for focus regression
|
|
279
|
+
await handleFocusRegression(pc, focus.focus_id, focus.status);
|
|
280
280
|
}
|
|
281
281
|
}
|
|
282
282
|
catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state-cascade.js","sourceRoot":"","sources":["../src/state-cascade.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"state-cascade.js","sourceRoot":"","sources":["../src/state-cascade.ts"],"names":[],"mappings":"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"}
|
package/dist/supabase.d.ts
CHANGED
|
@@ -11,17 +11,17 @@ export { initSupabase, validateTrackerAuth } from './queries/shared.js';
|
|
|
11
11
|
export { getAgentRoles, getAgentRole } from './queries/roles.js';
|
|
12
12
|
export { getActiveSessions, getActiveSessionCountByRole, getCompletedSessionAggregates, createSession, updateSession, } from './queries/sessions.js';
|
|
13
13
|
export type { CreateSessionParams, SessionAggregates } from './queries/sessions.js';
|
|
14
|
-
export { getReadyDeliveries, getDeliveryContext, updateDeliveryStatus, updateDeliveryMergeCommitSha, getDoneDeliveries,
|
|
14
|
+
export { getReadyDeliveries, getDeliveryContext, updateDeliveryStatus, updateDeliveryMergeCommitSha, getDoneDeliveries, getReadyFocuses, getActiveFocuses, getMergeConflictDeliveries, reportGitState, recordFocusMerge, } from './queries/deliveries.js';
|
|
15
15
|
export { fetchEffectiveWorkflow, fetchEffectiveWorkflowWithTransitions } from './queries/workflows.js';
|
|
16
16
|
export { getDeliveryIssues, getDeliverySessionCount, updateIssueStatus, createEscalation, createIssue, } from './queries/issues.js';
|
|
17
17
|
export type { CreateEscalationParams } from './queries/issues.js';
|
|
18
18
|
export { fetchTransitionGuards, createTransitionEvaluation, createTransitionBlock, getActiveTransitionBlock, getResolvedTransitionBlockForDelivery, } from './queries/guards.js';
|
|
19
19
|
export { sendHeartbeat, sendDisconnect, claimProduct } from './queries/daemon-connection.js';
|
|
20
|
-
export {
|
|
21
|
-
export type { WorkflowStageWithDirective, WorkflowWithDirectives } from './queries/
|
|
20
|
+
export { getFocusDeliveries, getFocusIssues, updateFocusStatus, fetchFocusWorkflow, fetchFocusWorkflowWithTransitions, } from './queries/focuses.js';
|
|
21
|
+
export type { WorkflowStageWithDirective, WorkflowWithDirectives } from './queries/focuses.js';
|
|
22
22
|
export { upsertWorktreeRecord, removeWorktreeRecord, listWorktreeRecords, } from './queries/worktrees.js';
|
|
23
23
|
export type { WorktreeRecord } from './queries/worktrees.js';
|
|
24
|
-
export { getQaRequests, updateQaStatus,
|
|
24
|
+
export { getQaRequests, updateQaStatus, getDeactivatedQaFocuses, getQaFocuses } from './queries/qa.js';
|
|
25
25
|
export { getProductQaRequests, updateProductQaStatus, getProductQaStatus } from './queries/qa.js';
|
|
26
26
|
export { getSavePointQaRequests, updateSavePointQaStatus } from './queries/qa.js';
|
|
27
27
|
export { getSavePointRestoreRequests, updateSavePointRestoreStatus } from './queries/qa.js';
|
package/dist/supabase.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"supabase.d.ts","sourceRoot":"","sources":["../src/supabase.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAGxE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGjE,OAAO,EACL,iBAAiB,EACjB,2BAA2B,EAC3B,6BAA6B,EAC7B,aAAa,EACb,aAAa,GACd,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAGpF,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,4BAA4B,EAC5B,iBAAiB,EACjB,
|
|
1
|
+
{"version":3,"file":"supabase.d.ts","sourceRoot":"","sources":["../src/supabase.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAGxE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGjE,OAAO,EACL,iBAAiB,EACjB,2BAA2B,EAC3B,6BAA6B,EAC7B,aAAa,EACb,aAAa,GACd,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAGpF,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,4BAA4B,EAC5B,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,0BAA0B,EAC1B,cAAc,EACd,gBAAgB,GACjB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,sBAAsB,EAAE,qCAAqC,EAAE,MAAM,wBAAwB,CAAC;AAGvG,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,GACZ,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAGlE,OAAO,EACL,qBAAqB,EACrB,0BAA0B,EAC1B,qBAAqB,EACrB,wBAAwB,EACxB,qCAAqC,GACtC,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAG7F,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,iCAAiC,GAClC,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,0BAA0B,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAG/F,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAG7D,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,uBAAuB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAGvG,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAGlG,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAGlF,OAAO,EAAE,2BAA2B,EAAE,4BAA4B,EAAE,MAAM,iBAAiB,CAAC;AAG5F,OAAO,EACL,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,4BAA4B,CAAC;AACpC,YAAY,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAGrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAIrF;;GAEG;AACH,wBAAsB,sBAAsB,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAGtF;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,KAAK,CAEnC"}
|
package/dist/supabase.js
CHANGED
|
@@ -13,8 +13,8 @@ export { initSupabase, validateTrackerAuth } from './queries/shared.js';
|
|
|
13
13
|
export { getAgentRoles, getAgentRole } from './queries/roles.js';
|
|
14
14
|
// -- Agent Sessions --
|
|
15
15
|
export { getActiveSessions, getActiveSessionCountByRole, getCompletedSessionAggregates, createSession, updateSession, } from './queries/sessions.js';
|
|
16
|
-
// -- Deliveries &
|
|
17
|
-
export { getReadyDeliveries, getDeliveryContext, updateDeliveryStatus, updateDeliveryMergeCommitSha, getDoneDeliveries,
|
|
16
|
+
// -- Deliveries & Focuses --
|
|
17
|
+
export { getReadyDeliveries, getDeliveryContext, updateDeliveryStatus, updateDeliveryMergeCommitSha, getDoneDeliveries, getReadyFocuses, getActiveFocuses, getMergeConflictDeliveries, reportGitState, recordFocusMerge, } from './queries/deliveries.js';
|
|
18
18
|
// -- Workflows --
|
|
19
19
|
export { fetchEffectiveWorkflow, fetchEffectiveWorkflowWithTransitions } from './queries/workflows.js';
|
|
20
20
|
// -- Issues & Escalations --
|
|
@@ -23,12 +23,12 @@ export { getDeliveryIssues, getDeliverySessionCount, updateIssueStatus, createEs
|
|
|
23
23
|
export { fetchTransitionGuards, createTransitionEvaluation, createTransitionBlock, getActiveTransitionBlock, getResolvedTransitionBlockForDelivery, } from './queries/guards.js';
|
|
24
24
|
// -- Daemon Connection --
|
|
25
25
|
export { sendHeartbeat, sendDisconnect, claimProduct } from './queries/daemon-connection.js';
|
|
26
|
-
// --
|
|
27
|
-
export {
|
|
26
|
+
// -- Focus Queries (Team Execution) --
|
|
27
|
+
export { getFocusDeliveries, getFocusIssues, updateFocusStatus, fetchFocusWorkflow, fetchFocusWorkflowWithTransitions, } from './queries/focuses.js';
|
|
28
28
|
// -- Worktree State --
|
|
29
29
|
export { upsertWorktreeRecord, removeWorktreeRecord, listWorktreeRecords, } from './queries/worktrees.js';
|
|
30
30
|
// -- QA Environment --
|
|
31
|
-
export { getQaRequests, updateQaStatus,
|
|
31
|
+
export { getQaRequests, updateQaStatus, getDeactivatedQaFocuses, getQaFocuses } from './queries/qa.js';
|
|
32
32
|
// -- Product QA Environment --
|
|
33
33
|
export { getProductQaRequests, updateProductQaStatus, getProductQaStatus } from './queries/qa.js';
|
|
34
34
|
// -- Save Point QA Environment --
|
package/dist/supabase.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"supabase.js","sourceRoot":"","sources":["../src/supabase.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,mCAAmC;AACnC,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAExE,oBAAoB;AACpB,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEjE,uBAAuB;AACvB,OAAO,EACL,iBAAiB,EACjB,2BAA2B,EAC3B,6BAA6B,EAC7B,aAAa,EACb,aAAa,GACd,MAAM,uBAAuB,CAAC;AAG/B,
|
|
1
|
+
{"version":3,"file":"supabase.js","sourceRoot":"","sources":["../src/supabase.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,mCAAmC;AACnC,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAExE,oBAAoB;AACpB,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEjE,uBAAuB;AACvB,OAAO,EACL,iBAAiB,EACjB,2BAA2B,EAC3B,6BAA6B,EAC7B,aAAa,EACb,aAAa,GACd,MAAM,uBAAuB,CAAC;AAG/B,6BAA6B;AAC7B,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,4BAA4B,EAC5B,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,0BAA0B,EAC1B,cAAc,EACd,gBAAgB,GACjB,MAAM,yBAAyB,CAAC;AAEjC,kBAAkB;AAClB,OAAO,EAAE,sBAAsB,EAAE,qCAAqC,EAAE,MAAM,wBAAwB,CAAC;AAEvG,6BAA6B;AAC7B,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,GACZ,MAAM,qBAAqB,CAAC;AAG7B,iCAAiC;AACjC,OAAO,EACL,qBAAqB,EACrB,0BAA0B,EAC1B,qBAAqB,EACrB,wBAAwB,EACxB,qCAAqC,GACtC,MAAM,qBAAqB,CAAC;AAE7B,0BAA0B;AAC1B,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAE7F,uCAAuC;AACvC,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,iCAAiC,GAClC,MAAM,sBAAsB,CAAC;AAG9B,uBAAuB;AACvB,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,wBAAwB,CAAC;AAGhC,uBAAuB;AACvB,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,uBAAuB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEvG,+BAA+B;AAC/B,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAElG,kCAAkC;AAClC,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAElF,2BAA2B;AAC3B,OAAO,EAAE,2BAA2B,EAAE,4BAA4B,EAAE,MAAM,iBAAiB,CAAC;AAE5F,sBAAsB;AACtB,OAAO,EACL,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,4BAA4B,CAAC;AAGpC,iBAAiB;AACjB,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAG/D,8CAA8C;AAE9C;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,eAAuB;IAClE,OAAO,CAAC,IAAI,CAAC,8EAA8E,CAAC,CAAC;IAC7F,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW;IACzB,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;AAC3F,CAAC"}
|
package/dist/task-converter.d.ts
CHANGED
|
@@ -7,15 +7,15 @@
|
|
|
7
7
|
*
|
|
8
8
|
* Pure functions only (no side effects, no API calls).
|
|
9
9
|
*/
|
|
10
|
-
import type { TaskDAG, TaskNode,
|
|
10
|
+
import type { TaskDAG, TaskNode, FocusDeliveryInfo, FocusIssueInfo } from './types.js';
|
|
11
11
|
/**
|
|
12
12
|
* Build a task dependency graph from deliveries and issues.
|
|
13
13
|
*
|
|
14
|
-
* @param deliveries - All deliveries for the
|
|
14
|
+
* @param deliveries - All deliveries for the focus, ordered by priorityRank
|
|
15
15
|
* @param issues - All issues across all deliveries
|
|
16
16
|
* @returns A TaskDAG with nodes and dependency edges
|
|
17
17
|
*/
|
|
18
|
-
export declare function buildTaskDAG(deliveries:
|
|
18
|
+
export declare function buildTaskDAG(deliveries: FocusDeliveryInfo[], issues: FocusIssueInfo[]): TaskDAG;
|
|
19
19
|
/**
|
|
20
20
|
* Get all task nodes that are ready to execute (no pending blockers).
|
|
21
21
|
*/
|
|
@@ -53,7 +53,7 @@ export declare function isDAGComplete(dag: TaskDAG): boolean;
|
|
|
53
53
|
* The new issues are integrated with proper cross-delivery, CG-level,
|
|
54
54
|
* and file-overlap dependencies.
|
|
55
55
|
*/
|
|
56
|
-
export declare function addIssuesToDAG(dag: TaskDAG, newDelivery:
|
|
56
|
+
export declare function addIssuesToDAG(dag: TaskDAG, newDelivery: FocusDeliveryInfo, newIssues: FocusIssueInfo[], existingDeliveries: FocusDeliveryInfo[]): TaskNode[];
|
|
57
57
|
/**
|
|
58
58
|
* Get a summary of the DAG for logging.
|
|
59
59
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-converter.d.ts","sourceRoot":"","sources":["../src/task-converter.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,OAAO,EACP,QAAQ,EACR,
|
|
1
|
+
{"version":3,"file":"task-converter.d.ts","sourceRoot":"","sources":["../src/task-converter.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,OAAO,EACP,QAAQ,EACR,iBAAiB,EACjB,cAAc,EACf,MAAM,YAAY,CAAC;AAWpB;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,UAAU,EAAE,iBAAiB,EAAE,EAC/B,MAAM,EAAE,cAAc,EAAE,GACvB,OAAO,CAmFT;AAID;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,QAAQ,EAAE,CAatD;AAeD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,QAAQ,EAAE,CAsBtE;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAK5D;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,IAAI,CAMtF;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAO5E;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAYxG;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAOnD;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,OAAO,EACZ,WAAW,EAAE,iBAAiB,EAC9B,SAAS,EAAE,cAAc,EAAE,EAC3B,kBAAkB,EAAE,iBAAiB,EAAE,GACtC,QAAQ,EAAE,CA4EZ;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAalD"}
|
package/dist/task-converter.js
CHANGED
|
@@ -12,7 +12,7 @@ import { addCrossDeliveryDependencies, addCGDependencies, addFileOverlapDependen
|
|
|
12
12
|
/**
|
|
13
13
|
* Build a task dependency graph from deliveries and issues.
|
|
14
14
|
*
|
|
15
|
-
* @param deliveries - All deliveries for the
|
|
15
|
+
* @param deliveries - All deliveries for the focus, ordered by priorityRank
|
|
16
16
|
* @param issues - All issues across all deliveries
|
|
17
17
|
* @returns A TaskDAG with nodes and dependency edges
|
|
18
18
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-converter.js","sourceRoot":"","sources":["../src/task-converter.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAQH,OAAO,EACL,4BAA4B,EAC5B,iBAAiB,EACjB,0BAA0B,EAC1B,4BAA4B,EAC5B,yBAAyB,GAC1B,MAAM,0BAA0B,CAAC;AAElC,oEAAoE;AAEpE;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAC1B,
|
|
1
|
+
{"version":3,"file":"task-converter.js","sourceRoot":"","sources":["../src/task-converter.ts"],"names":[],"mappings":"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"}
|