@telora/daemon 0.22.187 → 0.22.208
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/build-info.json +6 -3
- package/dist/backends/index.d.ts.map +1 -1
- package/dist/backends/index.js +2 -0
- package/dist/backends/index.js.map +1 -1
- package/dist/completion/completion-fact-readers.d.ts +35 -0
- package/dist/completion/completion-fact-readers.d.ts.map +1 -0
- package/dist/completion/completion-fact-readers.js +70 -0
- package/dist/completion/completion-fact-readers.js.map +1 -0
- package/dist/completion/escalations.d.ts.map +1 -1
- package/dist/completion/escalations.js +2 -1
- package/dist/completion/escalations.js.map +1 -1
- package/dist/completion/event-dep-defaults.d.ts +27 -0
- package/dist/completion/event-dep-defaults.d.ts.map +1 -0
- package/dist/completion/event-dep-defaults.js +30 -0
- package/dist/completion/event-dep-defaults.js.map +1 -0
- package/dist/completion/event-phases.d.ts.map +1 -1
- package/dist/completion/event-phases.js +5 -13
- package/dist/completion/event-phases.js.map +1 -1
- package/dist/completion/event.d.ts +32 -0
- package/dist/completion/event.d.ts.map +1 -1
- package/dist/completion/event.js +31 -25
- package/dist/completion/event.js.map +1 -1
- package/dist/completion/review-exit-phase.d.ts.map +1 -1
- package/dist/completion/review-exit-phase.js +11 -4
- package/dist/completion/review-exit-phase.js.map +1 -1
- package/dist/completion/session-hold.d.ts +13 -1
- package/dist/completion/session-hold.d.ts.map +1 -1
- package/dist/completion/session-hold.js +18 -0
- package/dist/completion/session-hold.js.map +1 -1
- package/dist/completion/standing-approval-convergence.d.ts.map +1 -1
- package/dist/completion/standing-approval-convergence.js +2 -1
- package/dist/completion/standing-approval-convergence.js.map +1 -1
- package/dist/completion/team-phase.d.ts.map +1 -1
- package/dist/completion/team-phase.js +1 -0
- package/dist/completion/team-phase.js.map +1 -1
- package/dist/completion/unclaimed-migration-notice-phase.d.ts +97 -0
- package/dist/completion/unclaimed-migration-notice-phase.d.ts.map +1 -0
- package/dist/completion/unclaimed-migration-notice-phase.js +270 -0
- package/dist/completion/unclaimed-migration-notice-phase.js.map +1 -0
- package/dist/directive/directive-executor.d.ts.map +1 -1
- package/dist/directive/directive-executor.js +1 -20
- package/dist/directive/directive-executor.js.map +1 -1
- package/dist/focus/focus-executor.d.ts +1 -0
- package/dist/focus/focus-executor.d.ts.map +1 -1
- package/dist/focus/focus-executor.js +18 -17
- package/dist/focus/focus-executor.js.map +1 -1
- package/dist/focus/focus-loop-registry.js +2 -2
- package/dist/focus/focus-loop-registry.js.map +1 -1
- package/dist/focus/focus-team-state.js +1 -1
- package/dist/focus/listener-spawn.d.ts.map +1 -1
- package/dist/focus/listener-spawn.js +5 -20
- package/dist/focus/listener-spawn.js.map +1 -1
- package/dist/focus/listener-state.d.ts.map +1 -1
- package/dist/focus/listener-state.js +1 -0
- package/dist/focus/listener-state.js.map +1 -1
- package/dist/focus/listener.d.ts +1 -0
- package/dist/focus/listener.d.ts.map +1 -1
- package/dist/focus/listener.js +9 -0
- package/dist/focus/listener.js.map +1 -1
- package/dist/focus/migration-claim-pass.d.ts +50 -0
- package/dist/focus/migration-claim-pass.d.ts.map +1 -0
- package/dist/focus/migration-claim-pass.js +234 -0
- package/dist/focus/migration-claim-pass.js.map +1 -0
- package/dist/focus/pending-spawn-pass-deps.d.ts.map +1 -1
- package/dist/focus/pending-spawn-pass-deps.js +2 -1
- package/dist/focus/pending-spawn-pass-deps.js.map +1 -1
- package/dist/focus/team-actionable-work.d.ts +21 -0
- package/dist/focus/team-actionable-work.d.ts.map +1 -1
- package/dist/focus/team-actionable-work.js +3 -0
- package/dist/focus/team-actionable-work.js.map +1 -1
- package/dist/git/types.d.ts.map +1 -1
- package/dist/git/types.js +2 -1
- package/dist/git/types.js.map +1 -1
- package/dist/loops/llm-client.d.ts +1 -1
- package/dist/loops/llm-client.d.ts.map +1 -1
- package/dist/loops/llm-client.js +29 -106
- package/dist/loops/llm-client.js.map +1 -1
- package/dist/migrations/migration-claim-lifecycle.d.ts +166 -0
- package/dist/migrations/migration-claim-lifecycle.d.ts.map +1 -0
- package/dist/migrations/migration-claim-lifecycle.js +198 -0
- package/dist/migrations/migration-claim-lifecycle.js.map +1 -0
- package/dist/migrations/migration-held-set.d.ts +171 -0
- package/dist/migrations/migration-held-set.d.ts.map +1 -0
- package/dist/migrations/migration-held-set.js +295 -0
- package/dist/migrations/migration-held-set.js.map +1 -0
- package/dist/migrations/migration-inventory.d.ts +187 -0
- package/dist/migrations/migration-inventory.d.ts.map +1 -0
- package/dist/migrations/migration-inventory.js +253 -0
- package/dist/migrations/migration-inventory.js.map +1 -0
- package/dist/migrations/migration-manifest.d.ts +114 -0
- package/dist/migrations/migration-manifest.d.ts.map +1 -0
- package/dist/migrations/migration-manifest.js +295 -0
- package/dist/migrations/migration-manifest.js.map +1 -0
- package/dist/prompt/team-prompt-base.js +1 -1
- package/dist/prompt-sections/migration-numbering-section.d.ts +58 -0
- package/dist/prompt-sections/migration-numbering-section.d.ts.map +1 -0
- package/dist/prompt-sections/migration-numbering-section.js +70 -0
- package/dist/prompt-sections/migration-numbering-section.js.map +1 -0
- package/dist/prompt-sections/migration-numbering-state.d.ts +30 -0
- package/dist/prompt-sections/migration-numbering-state.d.ts.map +1 -0
- package/dist/prompt-sections/migration-numbering-state.js +24 -0
- package/dist/prompt-sections/migration-numbering-state.js.map +1 -0
- package/dist/prompt-sections/unclaimed-migration-section.d.ts +38 -0
- package/dist/prompt-sections/unclaimed-migration-section.d.ts.map +1 -0
- package/dist/prompt-sections/unclaimed-migration-section.js +57 -0
- package/dist/prompt-sections/unclaimed-migration-section.js.map +1 -0
- package/dist/queries/agent-resolvable-promotion.d.ts +12 -0
- package/dist/queries/agent-resolvable-promotion.d.ts.map +1 -1
- package/dist/queries/agent-resolvable-promotion.js +17 -6
- package/dist/queries/agent-resolvable-promotion.js.map +1 -1
- package/dist/queries/claim-pass-focuses.d.ts +19 -0
- package/dist/queries/claim-pass-focuses.d.ts.map +1 -0
- package/dist/queries/claim-pass-focuses.js +72 -0
- package/dist/queries/claim-pass-focuses.js.map +1 -0
- package/dist/queries/daemon-connection.d.ts.map +1 -1
- package/dist/queries/daemon-connection.js +1 -0
- package/dist/queries/daemon-connection.js.map +1 -1
- package/dist/queries/delivery-gate-state.d.ts +3 -0
- package/dist/queries/delivery-gate-state.d.ts.map +1 -1
- package/dist/queries/delivery-gate-state.js +1 -1
- package/dist/queries/delivery-gate-state.js.map +1 -1
- package/dist/queries/focus-discovery.d.ts +25 -2
- package/dist/queries/focus-discovery.d.ts.map +1 -1
- package/dist/queries/focus-discovery.js +16 -9
- package/dist/queries/focus-discovery.js.map +1 -1
- package/dist/queries/focus-unclaimed-migration.d.ts +146 -0
- package/dist/queries/focus-unclaimed-migration.d.ts.map +1 -0
- package/dist/queries/focus-unclaimed-migration.js +266 -0
- package/dist/queries/focus-unclaimed-migration.js.map +1 -0
- package/dist/queries/live-focus-branches.d.ts +32 -0
- package/dist/queries/live-focus-branches.d.ts.map +1 -0
- package/dist/queries/live-focus-branches.js +66 -0
- package/dist/queries/live-focus-branches.js.map +1 -0
- package/dist/queries/migration-claims.d.ts +25 -0
- package/dist/queries/migration-claims.d.ts.map +1 -0
- package/dist/queries/migration-claims.js +79 -0
- package/dist/queries/migration-claims.js.map +1 -0
- package/dist/queries/schemas.d.ts +2 -0
- package/dist/queries/schemas.d.ts.map +1 -1
- package/dist/queries/schemas.js +6 -0
- package/dist/queries/schemas.js.map +1 -1
- package/dist/queries/shared.js +1 -1
- package/dist/queries/verify-own-holds.d.ts +89 -0
- package/dist/queries/verify-own-holds.d.ts.map +1 -0
- package/dist/queries/verify-own-holds.js +93 -0
- package/dist/queries/verify-own-holds.js.map +1 -0
- package/dist/session/session-lineage.d.ts.map +1 -1
- package/dist/session/session-lineage.js +3 -0
- package/dist/session/session-lineage.js.map +1 -1
- package/dist/shell/heartbeat-metadata.d.ts +48 -2
- package/dist/shell/heartbeat-metadata.d.ts.map +1 -1
- package/dist/shell/heartbeat-metadata.js +80 -3
- package/dist/shell/heartbeat-metadata.js.map +1 -1
- package/dist/shell/heartbeat.d.ts +13 -0
- package/dist/shell/heartbeat.d.ts.map +1 -1
- package/dist/shell/heartbeat.js +31 -10
- package/dist/shell/heartbeat.js.map +1 -1
- package/dist/shell/mcp-resolution.js +1 -1
- package/dist/shell/mcp-resolution.js.map +1 -1
- package/dist/shell/migration-held-set-publish.d.ts +170 -0
- package/dist/shell/migration-held-set-publish.d.ts.map +1 -0
- package/dist/shell/migration-held-set-publish.js +172 -0
- package/dist/shell/migration-held-set-publish.js.map +1 -0
- package/dist/shell/worker-pidfile.d.ts.map +1 -1
- package/dist/shell/worker-pidfile.js +1 -0
- package/dist/shell/worker-pidfile.js.map +1 -1
- package/dist/spawn/helpers.d.ts.map +1 -1
- package/dist/spawn/helpers.js +1 -0
- package/dist/spawn/helpers.js.map +1 -1
- package/dist/spawn/lead-launch.d.ts.map +1 -1
- package/dist/spawn/lead-launch.js +1 -0
- package/dist/spawn/lead-launch.js.map +1 -1
- package/dist/spawn/lead-process-ownership.d.ts.map +1 -1
- package/dist/spawn/lead-process-ownership.js +1 -0
- package/dist/spawn/lead-process-ownership.js.map +1 -1
- package/dist/spawn/one-shot-model.d.ts +145 -0
- package/dist/spawn/one-shot-model.d.ts.map +1 -0
- package/dist/spawn/one-shot-model.js +329 -0
- package/dist/spawn/one-shot-model.js.map +1 -0
- package/dist/spawn/process-group-kill.d.ts.map +1 -1
- package/dist/spawn/process-group-kill.js +1 -0
- package/dist/spawn/process-group-kill.js.map +1 -1
- package/dist/spawn/process-spawn.d.ts +18 -1
- package/dist/spawn/process-spawn.d.ts.map +1 -1
- package/dist/spawn/process-spawn.js +11 -6
- package/dist/spawn/process-spawn.js.map +1 -1
- package/dist/spawn/prompt-assembly.d.ts +115 -18
- package/dist/spawn/prompt-assembly.d.ts.map +1 -1
- package/dist/spawn/prompt-assembly.js +121 -2
- package/dist/spawn/prompt-assembly.js.map +1 -1
- package/dist/spawn/review-hold-park.d.ts.map +1 -1
- package/dist/spawn/review-hold-park.js +7 -3
- package/dist/spawn/review-hold-park.js.map +1 -1
- package/dist/spawn/routing-decider-spawn.d.ts +30 -0
- package/dist/spawn/routing-decider-spawn.d.ts.map +1 -1
- package/dist/spawn/routing-decider-spawn.js +84 -2
- package/dist/spawn/routing-decider-spawn.js.map +1 -1
- package/dist/spawn/routing-decider.d.ts.map +1 -1
- package/dist/spawn/routing-decider.js +22 -0
- package/dist/spawn/routing-decider.js.map +1 -1
- package/dist/spawn/spawn-and-acknowledge.d.ts +61 -0
- package/dist/spawn/spawn-and-acknowledge.d.ts.map +1 -0
- package/dist/spawn/spawn-and-acknowledge.js +117 -0
- package/dist/spawn/spawn-and-acknowledge.js.map +1 -0
- package/dist/spawn/spawn-cooldown.d.ts +15 -1
- package/dist/spawn/spawn-cooldown.d.ts.map +1 -1
- package/dist/spawn/spawn-cooldown.js +67 -19
- package/dist/spawn/spawn-cooldown.js.map +1 -1
- package/dist/spawn/spawn-decision.d.ts +10 -10
- package/dist/spawn/spawn-decision.d.ts.map +1 -1
- package/dist/spawn/spawn-decision.js +33 -5
- package/dist/spawn/spawn-decision.js.map +1 -1
- package/dist/templates/claude-md.d.ts +1 -1
- package/dist/templates/claude-md.d.ts.map +1 -1
- package/dist/templates/claude-md.js +24 -0
- package/dist/templates/claude-md.js.map +1 -1
- package/dist/testing/fixtures/index.js +1 -1
- package/dist/testing/fixtures/migration-namespace-repo.d.ts +63 -0
- package/dist/testing/fixtures/migration-namespace-repo.d.ts.map +1 -0
- package/dist/testing/fixtures/migration-namespace-repo.js +164 -0
- package/dist/testing/fixtures/migration-namespace-repo.js.map +1 -0
- package/dist/testing/fixtures/stubborn-lead-process.d.ts.map +1 -1
- package/dist/testing/fixtures/stubborn-lead-process.js +1 -0
- package/dist/testing/fixtures/stubborn-lead-process.js.map +1 -1
- package/dist/types/index.js +1 -1
- package/dist/verify/ai-inspection-runner.d.ts.map +1 -1
- package/dist/verify/ai-inspection-runner.js +26 -7
- package/dist/verify/ai-inspection-runner.js.map +1 -1
- package/dist/verify/de-restatement.d.ts +9 -2
- package/dist/verify/de-restatement.d.ts.map +1 -1
- package/dist/verify/de-restatement.js +14 -76
- package/dist/verify/de-restatement.js.map +1 -1
- package/dist/verify/default-on-guards.d.ts +5 -2
- package/dist/verify/default-on-guards.d.ts.map +1 -1
- package/dist/verify/default-on-guards.js +5 -3
- package/dist/verify/default-on-guards.js.map +1 -1
- package/dist/verify/no-own-delta-verdict.d.ts +16 -2
- package/dist/verify/no-own-delta-verdict.d.ts.map +1 -1
- package/dist/verify/no-own-delta-verdict.js +18 -2
- package/dist/verify/no-own-delta-verdict.js.map +1 -1
- package/dist/verify/verification-deps-default.d.ts.map +1 -1
- package/dist/verify/verification-deps-default.js +6 -0
- package/dist/verify/verification-deps-default.js.map +1 -1
- package/dist/verify/verification-deps.d.ts +10 -0
- package/dist/verify/verification-deps.d.ts.map +1 -1
- package/dist/verify/verification-deterministic.d.ts +7 -0
- package/dist/verify/verification-deterministic.d.ts.map +1 -1
- package/dist/verify/verification-deterministic.js.map +1 -1
- package/dist/verify/verification-engine.d.ts +1 -20
- package/dist/verify/verification-engine.d.ts.map +1 -1
- package/dist/verify/verification-engine.js +24 -55
- package/dist/verify/verification-engine.js.map +1 -1
- package/dist/verify/verification-evidence-unavailable-feedback.d.ts +3 -1
- package/dist/verify/verification-evidence-unavailable-feedback.d.ts.map +1 -1
- package/dist/verify/verification-evidence-unavailable-feedback.js +3 -1
- package/dist/verify/verification-evidence-unavailable-feedback.js.map +1 -1
- package/dist/verify/verification-feedback.d.ts +4 -12
- package/dist/verify/verification-feedback.d.ts.map +1 -1
- package/dist/verify/verification-feedback.js +7 -12
- package/dist/verify/verification-feedback.js.map +1 -1
- package/dist/verify/verification-history-reset.d.ts.map +1 -1
- package/dist/verify/verification-history-reset.js +11 -3
- package/dist/verify/verification-history-reset.js.map +1 -1
- package/dist/verify/verification-model-unavailable-hold.d.ts +92 -0
- package/dist/verify/verification-model-unavailable-hold.d.ts.map +1 -0
- package/dist/verify/verification-model-unavailable-hold.js +207 -0
- package/dist/verify/verification-model-unavailable-hold.js.map +1 -0
- package/dist/verify/verification-strategies.d.ts +32 -0
- package/dist/verify/verification-strategies.d.ts.map +1 -0
- package/dist/verify/verification-strategies.js +47 -0
- package/dist/verify/verification-strategies.js.map +1 -0
- package/dist/verify/verify-reconciliation.d.ts.map +1 -1
- package/dist/verify/verify-reconciliation.js +2 -1
- package/dist/verify/verify-reconciliation.js.map +1 -1
- package/dist/verify/verify-restatement.d.ts.map +1 -1
- package/dist/verify/verify-restatement.js +21 -8
- package/dist/verify/verify-restatement.js.map +1 -1
- package/package.json +2 -2
|
@@ -15,6 +15,7 @@ import { getFocusDeliveries, getFocusIssues } from '../queries/focuses.js';
|
|
|
15
15
|
import type { AgentResolvableItem } from '../queries/escalation-consumption.js';
|
|
16
16
|
import type { ArmFacts } from '../focus/recorded-new-intent.js';
|
|
17
17
|
import { type FocusTeamPromptContext } from '../prompt/team-prompt-base.js';
|
|
18
|
+
import { type MigrationNumberingState } from '../prompt-sections/migration-numbering-section.js';
|
|
18
19
|
import type { IntegrationConflict } from '../git/focus-integration-sync.js';
|
|
19
20
|
import { resolveLineageSpec } from '../session/session-lineage.js';
|
|
20
21
|
import { type AssemblyManifestEntry } from '../resolvers/assembly-engine.js';
|
|
@@ -27,6 +28,17 @@ import { type CommitGateSeams } from '../verify/commit-gate-configured.js';
|
|
|
27
28
|
* out in each argument literal -- the two shapes cannot then drift, and a message
|
|
28
29
|
* shape added later inherits the field rather than silently dropping the task.
|
|
29
30
|
*/
|
|
31
|
+
/**
|
|
32
|
+
* The acknowledgement a spawn owes the unclaimed-migration record.
|
|
33
|
+
*
|
|
34
|
+
* Null when there is nothing to acknowledge. Otherwise the caller MUST run it
|
|
35
|
+
* after the session is up and the message has been delivered -- and only then:
|
|
36
|
+
* the marker is what lifts the completion hold, and lifting it on a spawn that
|
|
37
|
+
* never reached the team is the defect this separation removes.
|
|
38
|
+
*/
|
|
39
|
+
export interface UnclaimedRecordDelivery {
|
|
40
|
+
confirmUnclaimedRecordDelivered: (() => Promise<void>) | null;
|
|
41
|
+
}
|
|
30
42
|
export interface IntegrationReconcileInput {
|
|
31
43
|
/**
|
|
32
44
|
* What the coding spawn's sync with integration conflicted on, or null/absent
|
|
@@ -44,6 +56,45 @@ export interface IntegrationReconcileInput {
|
|
|
44
56
|
* framework, the directive body and the resume delta alike.
|
|
45
57
|
*/
|
|
46
58
|
export declare function integrationReconcileLead(input: IntegrationReconcileInput): string;
|
|
59
|
+
/**
|
|
60
|
+
* The product's migration numbering, threaded into EVERY message shape.
|
|
61
|
+
*
|
|
62
|
+
* Declared once and intersected into both prompt entry points for the same
|
|
63
|
+
* reason IntegrationReconcileInput is: a message shape added later inherits the
|
|
64
|
+
* field rather than silently dropping the rule, and a team writes a migration on
|
|
65
|
+
* whichever turn the work lands on -- most of which are resume deltas.
|
|
66
|
+
*/
|
|
67
|
+
export interface MigrationNumberingInput {
|
|
68
|
+
/**
|
|
69
|
+
* What the spawn knows about this product's migration numbering, or
|
|
70
|
+
* null/absent when it declares none. Absent => the message composed is
|
|
71
|
+
* byte-for-byte the one composed before this existed.
|
|
72
|
+
*/
|
|
73
|
+
migrationNumbering?: MigrationNumberingState | null;
|
|
74
|
+
/** True on a review pass: a reviewer writes no migrations, so it renders nothing. */
|
|
75
|
+
migrationNumberingIsReviewPass?: boolean;
|
|
76
|
+
/**
|
|
77
|
+
* The focus's stored unclaimed-migration record, or null/absent when its
|
|
78
|
+
* branch holds no migration without a claim behind it. Carried verbatim so
|
|
79
|
+
* the team and a human reading the Debug tab see the identical account.
|
|
80
|
+
*/
|
|
81
|
+
unclaimedMigrationRecord?: string | null;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* The numbering rule as a suffix to append (with its blank-line separator) --
|
|
85
|
+
* '' when the product declares no numbering, or on a review pass.
|
|
86
|
+
*
|
|
87
|
+
* Appended rather than prepended: reconciling a stale base is the coding
|
|
88
|
+
* stage's entry condition and must be read first, while the numbering rule is
|
|
89
|
+
* read at the moment a migration is written, which is later than everything
|
|
90
|
+
* else in the message.
|
|
91
|
+
*
|
|
92
|
+
* The FRESH-prompt shape gets it from `buildSpawnPrompt`; the resume delta and
|
|
93
|
+
* the forced-fresh scoping turn are built in `buildSpawnMessage` and append it
|
|
94
|
+
* themselves. All three, deliberately: a team that only ever sees resume deltas
|
|
95
|
+
* -- most turns of a long focus -- would otherwise never be told the rule.
|
|
96
|
+
*/
|
|
97
|
+
export declare function migrationNumberingSuffix(input: MigrationNumberingInput): string;
|
|
47
98
|
/**
|
|
48
99
|
* Phase C input: assemble the FocusTeamPromptContext threaded into both the
|
|
49
100
|
* directive and legacy prompt builders. Pure factory -- byte-identical to the
|
|
@@ -117,26 +168,16 @@ export declare function buildSpawnPrompt(args: {
|
|
|
117
168
|
* Claude --resume session id. Only emitted on review passes; ignored otherwise.
|
|
118
169
|
*/
|
|
119
170
|
agentSessionId?: string;
|
|
120
|
-
} & IntegrationReconcileInput): string;
|
|
171
|
+
} & IntegrationReconcileInput & MigrationNumberingInput): string;
|
|
121
172
|
/**
|
|
122
|
-
*
|
|
123
|
-
* a resume sends an incremental delta (git diff + prior findings to verify) since
|
|
124
|
-
* the resumed session already holds its role + accumulated context (INJ-D).
|
|
173
|
+
* The spawn message, with the numbering rule checked against the product.
|
|
125
174
|
*
|
|
126
|
-
* The
|
|
127
|
-
*
|
|
128
|
-
*
|
|
129
|
-
* PLUS `buildQueuedDeliveryScopingMessage` REGARDLESS of resumeId. The caller pairs
|
|
130
|
-
* this with `resolveScopingSpawnResume`, which forces the spawn fresh (resumeId
|
|
131
|
-
* null) so the directive lands on a new session instead of no-opping a concluded
|
|
132
|
-
* one. Because the fresh session holds no accumulated context, the role framework
|
|
133
|
-
* (identity + Scoping Mandate + status-update rules) is prepended here; only the
|
|
134
|
-
* audit/kickoff DIRECTIVE body carried in `prompt` is dropped, per AC. `readOnlyFocus`
|
|
135
|
-
* focuses are discovery-only (audit-playbook origin): their CG-only deliveries are
|
|
136
|
-
* INTENTIONALLY unscoped, so they are never driven into scoping here --
|
|
137
|
-
* delivery-lifecycle terminalizes them instead.
|
|
175
|
+
* The composition itself is `composeSpawnMessage`; this wrapper is where the
|
|
176
|
+
* invariant above is applied, so every shape it can return -- scoping, fresh,
|
|
177
|
+
* resume delta -- passes through one check.
|
|
138
178
|
*/
|
|
139
|
-
export declare function buildSpawnMessage(args:
|
|
179
|
+
export declare function buildSpawnMessage(args: Parameters<typeof composeSpawnMessage>[0]): Promise<string>;
|
|
180
|
+
declare function composeSpawnMessage(args: {
|
|
140
181
|
prompt: string;
|
|
141
182
|
resumeId: string | null;
|
|
142
183
|
readOnlyFocus: boolean;
|
|
@@ -185,7 +226,7 @@ export declare function buildSpawnMessage(args: {
|
|
|
185
226
|
* it; the production spawn path always passes session.id.
|
|
186
227
|
*/
|
|
187
228
|
agentSessionId?: string;
|
|
188
|
-
} & ResumeGateVerdictSeam & IntegrationReconcileInput): Promise<string>;
|
|
229
|
+
} & ResumeGateVerdictSeam & IntegrationReconcileInput & MigrationNumberingInput): Promise<string>;
|
|
189
230
|
/** The gate reads the resume delta's own-gate verdict fallback takes. */
|
|
190
231
|
type ResumeGateReads = Pick<CommitGateSeams, 'resolveCommitGate' | 'readCommitVerdict' | 'readDeliveryGateOutcome'>;
|
|
191
232
|
/** The resume-delta gate-verdict seam of buildSpawnMessage. */
|
|
@@ -237,5 +278,61 @@ export declare function buildQueuedDeliveryScopingMessage(args: {
|
|
|
237
278
|
focusName: string;
|
|
238
279
|
deliveries: Awaited<ReturnType<typeof getFocusDeliveries>>;
|
|
239
280
|
}): string;
|
|
281
|
+
/**
|
|
282
|
+
* The per-spawn inputs for the message SECTIONS -- the blocks composed around
|
|
283
|
+
* the prompt body rather than into it.
|
|
284
|
+
*
|
|
285
|
+
* Gathered in one place because they share a shape: each is computed once per
|
|
286
|
+
* spawn, threaded identically into every message shape, and renders nothing
|
|
287
|
+
* when it has nothing to say. Returning them as one bag means a section added
|
|
288
|
+
* later is wired at ONE site instead of at every forwarding call, which is how
|
|
289
|
+
* a section ends up carried by the fresh prompt and silently missing from the
|
|
290
|
+
* resume delta.
|
|
291
|
+
*/
|
|
292
|
+
/**
|
|
293
|
+
* THE SECTIONS A REAL SPAWN MUST CARRY.
|
|
294
|
+
*
|
|
295
|
+
* Every field the section bag supplies is OPTIONAL on the builders' own arg
|
|
296
|
+
* types, deliberately: absent means "compose byte-for-byte what was composed
|
|
297
|
+
* before this section existed", which is what lets a test that is about
|
|
298
|
+
* something else construct args without them.
|
|
299
|
+
*
|
|
300
|
+
* That leniency is exactly wrong at the ONE caller that composes a real spawn.
|
|
301
|
+
* There, the sections are not optional -- a message built without them tells
|
|
302
|
+
* the team nothing about reconciling its base or about claiming its migration
|
|
303
|
+
* number, silently, on every shape. And the omission is one deleted spread:
|
|
304
|
+
* nothing at runtime distinguishes it from a product that declares no
|
|
305
|
+
* numbering, so no assertion downstream of the executor can catch it.
|
|
306
|
+
*
|
|
307
|
+
* So the executor's argument objects are typed as this, and dropping the
|
|
308
|
+
* spread is a COMPILE error rather than a quiet loss. (The alternative --
|
|
309
|
+
* observing the composed message through a real spawn -- needs
|
|
310
|
+
* `spawnFocusTeam` driven end to end, which this package's harness cannot do:
|
|
311
|
+
* its bare `@telora/daemon-core` imports defeat the module mocker, and the
|
|
312
|
+
* path reaches a worktree rebase, a session create and a backend probe before
|
|
313
|
+
* it composes anything.)
|
|
314
|
+
*/
|
|
315
|
+
export type ComposedSpawnSections = Required<IntegrationReconcileInput> & Required<MigrationNumberingInput>;
|
|
316
|
+
export declare function buildSpawnSectionInputs(
|
|
317
|
+
/** The resolved worktree; its sync carries a conflict only when a rebase aborted. */
|
|
318
|
+
worktree: {
|
|
319
|
+
integrationSync?: {
|
|
320
|
+
conflict: IntegrationConflict | null;
|
|
321
|
+
} | null;
|
|
322
|
+
},
|
|
323
|
+
/** The branch the team is on, named in the reconcile task. */
|
|
324
|
+
focusBranchName: string,
|
|
325
|
+
/** The product-scoped config, read for its migration-numbering declaration. */
|
|
326
|
+
config: {
|
|
327
|
+
repoPath?: string | undefined;
|
|
328
|
+
},
|
|
329
|
+
/** True on a review pass: a reviewer neither rebases nor writes migrations. */
|
|
330
|
+
isReviewPass: boolean,
|
|
331
|
+
/** The focus whose unclaimed-migration record is read; '' skips the read. */
|
|
332
|
+
focusId: string,
|
|
333
|
+
/** The record reader; injected so a test needs no API. */
|
|
334
|
+
readUnclaimed?: (focusId: string) => Promise<string | null>,
|
|
335
|
+
/** Marks the record as handed to the team; injected for the same reason. */
|
|
336
|
+
markNamed?: (focusId: string, at: string) => Promise<void>): Promise<ComposedSpawnSections & UnclaimedRecordDelivery>;
|
|
240
337
|
export {};
|
|
241
338
|
//# sourceMappingURL=prompt-assembly.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt-assembly.d.ts","sourceRoot":"","sources":["../../src/spawn/prompt-assembly.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"prompt-assembly.d.ts","sourceRoot":"","sources":["../../src/spawn/prompt-assembly.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
// PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
|
|
2
2
|
// Pinned by: packages/daemon/src/integration/review-rework-resume-verdict.test.ts,
|
|
3
3
|
// packages/daemon/src/integration/verification-rework-resume-verdict.test.ts,
|
|
4
|
+
// packages/daemon/src/migrations/claim-production-wiring.test.ts,
|
|
4
5
|
// packages/daemon/src/nexus/nexus-return-path-e2e.test.ts,
|
|
5
6
|
// packages/daemon/src/prompt-sections/testing-standard.test.ts,
|
|
6
7
|
// packages/daemon/src/prompt/prompt-contradictions.test.ts,
|
|
7
8
|
// packages/daemon/src/prompt/remediation-framing-per-pass.test.ts,
|
|
8
9
|
// packages/daemon/src/spawn/integration-reconcile-spawn.test.ts,
|
|
10
|
+
// packages/daemon/src/spawn/migration-numbering-spawn.test.ts,
|
|
11
|
+
// packages/daemon/src/spawn/migration-numbering-wiring.test.ts,
|
|
9
12
|
// packages/daemon/src/spawn/prompt-assembly-resume-verdict.test.ts
|
|
10
13
|
// PINNED-BY-END
|
|
11
14
|
import { getActiveFocuses } from '../queries/focus-discovery.js';
|
|
@@ -14,6 +17,10 @@ import { buildRoleFrameworkPrompt, buildRemediationFramingSection, buildReviewOu
|
|
|
14
17
|
import { buildCodingTestingStandardSection, buildReviewSensorAuditSection, } from '../prompt-sections/testing-standard.js';
|
|
15
18
|
import { buildFocusTeamPrompt } from '../prompt/focus-prompt-builder.js';
|
|
16
19
|
import { buildIntegrationReconcileSection } from '../prompt-sections/integration-reconcile-section.js';
|
|
20
|
+
import { MIGRATION_NUMBERING_HEADING, buildMigrationNumberingSection, } from '../prompt-sections/migration-numbering-section.js';
|
|
21
|
+
import { resolveMigrationNumberingState } from '../prompt-sections/migration-numbering-state.js';
|
|
22
|
+
import { buildUnclaimedMigrationSection } from '../prompt-sections/unclaimed-migration-section.js';
|
|
23
|
+
import { markUnclaimedMigrationNamed, readUnclaimedMigrationRecord, } from '../queries/focus-unclaimed-migration.js';
|
|
17
24
|
import { resolveAssemblyRecipeWithManifest } from '../resolvers/assembly-engine.js';
|
|
18
25
|
import { createLogger } from '../shell/log.js';
|
|
19
26
|
import { judgedShaOfRun, latestJudgedDelivery } from '../verify/gate-verdict-source.js';
|
|
@@ -30,6 +37,30 @@ export function integrationReconcileLead(input) {
|
|
|
30
37
|
const lines = buildIntegrationReconcileSection(input.integrationConflict ?? null, input.focusBranchName ?? '');
|
|
31
38
|
return lines.length > 0 ? lines.join('\n') + '\n\n' : '';
|
|
32
39
|
}
|
|
40
|
+
/**
|
|
41
|
+
* The numbering rule as a suffix to append (with its blank-line separator) --
|
|
42
|
+
* '' when the product declares no numbering, or on a review pass.
|
|
43
|
+
*
|
|
44
|
+
* Appended rather than prepended: reconciling a stale base is the coding
|
|
45
|
+
* stage's entry condition and must be read first, while the numbering rule is
|
|
46
|
+
* read at the moment a migration is written, which is later than everything
|
|
47
|
+
* else in the message.
|
|
48
|
+
*
|
|
49
|
+
* The FRESH-prompt shape gets it from `buildSpawnPrompt`; the resume delta and
|
|
50
|
+
* the forced-fresh scoping turn are built in `buildSpawnMessage` and append it
|
|
51
|
+
* themselves. All three, deliberately: a team that only ever sees resume deltas
|
|
52
|
+
* -- most turns of a long focus -- would otherwise never be told the rule.
|
|
53
|
+
*/
|
|
54
|
+
export function migrationNumberingSuffix(input) {
|
|
55
|
+
const isReview = input.migrationNumberingIsReviewPass === true;
|
|
56
|
+
const blocks = [
|
|
57
|
+
// The unclaimed-file notice leads: it is about work already on the branch,
|
|
58
|
+
// which the team must resolve, while the rule below governs the next file.
|
|
59
|
+
buildUnclaimedMigrationSection(input.unclaimedMigrationRecord ?? null, isReview),
|
|
60
|
+
buildMigrationNumberingSection(input.migrationNumbering ?? null, isReview),
|
|
61
|
+
].filter((lines) => lines.length > 0);
|
|
62
|
+
return blocks.length > 0 ? '\n\n' + blocks.map((lines) => lines.join('\n')).join('\n\n') : '';
|
|
63
|
+
}
|
|
33
64
|
/**
|
|
34
65
|
* Phase C input: assemble the FocusTeamPromptContext threaded into both the
|
|
35
66
|
* directive and legacy prompt builders. Pure factory -- byte-identical to the
|
|
@@ -113,6 +144,11 @@ export function buildSpawnPrompt(args) {
|
|
|
113
144
|
if (prdMilestoneContext.trim()) {
|
|
114
145
|
prompt += '\n\n' + prdMilestoneContext;
|
|
115
146
|
}
|
|
147
|
+
// The numbering rule is APPENDED: unlike the reconcile task it is not an entry
|
|
148
|
+
// condition, it is read at the moment a migration file is named. Empty on a
|
|
149
|
+
// review pass and on a product that declares no migration numbering, so those
|
|
150
|
+
// messages compose exactly as before.
|
|
151
|
+
prompt += migrationNumberingSuffix(args);
|
|
116
152
|
// Reconciling a branch that cannot reach integration is the coding stage's
|
|
117
153
|
// ENTRY CONDITION, so it is prepended -- read before the role framework, the
|
|
118
154
|
// directive body and everything appended above. Empty (and the prompt
|
|
@@ -137,12 +173,60 @@ export function buildSpawnPrompt(args) {
|
|
|
137
173
|
* INTENTIONALLY unscoped, so they are never driven into scoping here --
|
|
138
174
|
* delivery-lifecycle terminalizes them instead.
|
|
139
175
|
*/
|
|
176
|
+
/**
|
|
177
|
+
* THE RULE SURVIVED COMPOSITION -- checked against the PRODUCT, not against the
|
|
178
|
+
* argument that was passed in.
|
|
179
|
+
*
|
|
180
|
+
* `ComposedSpawnSections` makes DROPPING the section spread a compile error. It
|
|
181
|
+
* does not make BLANKING one: `{ ...sectionInputs, migrationNumbering: null }`
|
|
182
|
+
* satisfies the type, and a null state is exactly what a product that declares
|
|
183
|
+
* no numbering looks like -- so nothing downstream could tell the two apart,
|
|
184
|
+
* and the team is spawned with no rule, numbers from its own worktree, and
|
|
185
|
+
* collides with its sibling. That is the whole failure, re-created by a one-word
|
|
186
|
+
* override that typechecks.
|
|
187
|
+
*
|
|
188
|
+
* So the fact is re-derived HERE, from `telora.migrations.json` itself, below
|
|
189
|
+
* every override: if this product declares numbering and this is a coding pass,
|
|
190
|
+
* the composed message must carry the rule.
|
|
191
|
+
*
|
|
192
|
+
* IT THROWS. The executor's catch abandons THIS spawn and the next poll tick
|
|
193
|
+
* re-attempts, so a transient cause costs one cycle. A persistent one wedges
|
|
194
|
+
* the focus loudly -- which is the right direction, because the alternative is
|
|
195
|
+
* a coding team quietly numbering by hand, which is the defect this whole
|
|
196
|
+
* focus removes and is invisible until two migrations share a number.
|
|
197
|
+
*/
|
|
198
|
+
function assertNumberingRuleSurvived(message, args) {
|
|
199
|
+
if (args.migrationNumberingIsReviewPass === true)
|
|
200
|
+
return;
|
|
201
|
+
if (resolveMigrationNumberingState(args.config.repoPath) === null)
|
|
202
|
+
return;
|
|
203
|
+
if (message.includes(MIGRATION_NUMBERING_HEADING))
|
|
204
|
+
return;
|
|
205
|
+
throw new Error('The composed spawn message does not carry the migration-numbering rule, but this '
|
|
206
|
+
+ 'product declares numbering (telora.migrations.json) and this is a coding pass. A '
|
|
207
|
+
+ 'team spawned without the rule numbers from its own worktree, which is the '
|
|
208
|
+
+ 'collision this declaration exists to prevent. Refusing the spawn rather than '
|
|
209
|
+
+ 'sending a message that invites it.');
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* The spawn message, with the numbering rule checked against the product.
|
|
213
|
+
*
|
|
214
|
+
* The composition itself is `composeSpawnMessage`; this wrapper is where the
|
|
215
|
+
* invariant above is applied, so every shape it can return -- scoping, fresh,
|
|
216
|
+
* resume delta -- passes through one check.
|
|
217
|
+
*/
|
|
140
218
|
export async function buildSpawnMessage(args) {
|
|
219
|
+
const message = await composeSpawnMessage(args);
|
|
220
|
+
assertNumberingRuleSurvived(message, args);
|
|
221
|
+
return message;
|
|
222
|
+
}
|
|
223
|
+
async function composeSpawnMessage(args) {
|
|
141
224
|
const { prompt, resumeId, readOnlyFocus, role, promptContext, spawnSpec, config, focusId, focusName, deliveries, issues, worktreePath, priorFindings, answeredEscalationsSection = '', gitDiffManifestSink, agentSessionId, resumeGate = commitGateSeams } = args;
|
|
142
225
|
const answersSuffix = answeredEscalationsSection.trim() ? `\n\n${answeredEscalationsSection}` : '';
|
|
143
226
|
// The fresh-prompt shape already carries the reconcile task (buildSpawnPrompt
|
|
144
227
|
// prepended it); the two shapes built HERE must carry it themselves.
|
|
145
228
|
const reconcileLead = integrationReconcileLead(args);
|
|
229
|
+
const numberingRule = migrationNumberingSuffix(args);
|
|
146
230
|
// Scoping directive takes priority over the fresh/resume split, but ONLY for
|
|
147
231
|
// executable (non-discovery) focuses. It is returned even when resumeId is
|
|
148
232
|
// null because the caller forces this spawn fresh for exactly this case.
|
|
@@ -163,7 +247,7 @@ export async function buildSpawnMessage(args) {
|
|
|
163
247
|
focusName,
|
|
164
248
|
deliveries: unscopedDeliveries,
|
|
165
249
|
});
|
|
166
|
-
const messageToSend = `${reconcileLead}${roleFramework}\n\n${scopingDirective}${answersSuffix}`;
|
|
250
|
+
const messageToSend = `${reconcileLead}${roleFramework}\n\n${scopingDirective}${answersSuffix}${numberingRule}`;
|
|
167
251
|
log.info(`[focus-executor] Spawning fresh scoping session for "${focusName}" ` +
|
|
168
252
|
`-- role framework + explicit scoping directive for ${unscopedDeliveries.length} queued ` +
|
|
169
253
|
`zero-issue deliver${unscopedDeliveries.length === 1 ? 'y' : 'ies'} ` +
|
|
@@ -192,7 +276,7 @@ export async function buildSpawnMessage(args) {
|
|
|
192
276
|
gateVerdict: await readResumeGateVerdict(resumeGate, { productId: config.productId, focusId, focusReadOnly: readOnlyFocus }, deliveries),
|
|
193
277
|
...(reviewCoverage ? { reviewCoverage } : {}),
|
|
194
278
|
...(agentSessionId ? { agentSessionId } : {}),
|
|
195
|
-
}) + answersSuffix;
|
|
279
|
+
}) + answersSuffix + numberingRule;
|
|
196
280
|
log.info(`[focus-executor] Resuming Claude session ${resumeId} for "${focusName}" ` +
|
|
197
281
|
`-- sending incremental delta (lineage ${spawnSpec.lineage}, ${messageToSend.length} chars, ` +
|
|
198
282
|
`${priorFindings.length} prior finding(s))`);
|
|
@@ -348,4 +432,39 @@ export function buildQueuedDeliveryScopingMessage(args) {
|
|
|
348
432
|
deliverySections,
|
|
349
433
|
].join('\n');
|
|
350
434
|
}
|
|
435
|
+
export async function buildSpawnSectionInputs(
|
|
436
|
+
/** The resolved worktree; its sync carries a conflict only when a rebase aborted. */
|
|
437
|
+
worktree,
|
|
438
|
+
/** The branch the team is on, named in the reconcile task. */
|
|
439
|
+
focusBranchName,
|
|
440
|
+
/** The product-scoped config, read for its migration-numbering declaration. */
|
|
441
|
+
config,
|
|
442
|
+
/** True on a review pass: a reviewer neither rebases nor writes migrations. */
|
|
443
|
+
isReviewPass,
|
|
444
|
+
/** The focus whose unclaimed-migration record is read; '' skips the read. */
|
|
445
|
+
focusId,
|
|
446
|
+
/** The record reader; injected so a test needs no API. */
|
|
447
|
+
readUnclaimed = readUnclaimedMigrationRecord,
|
|
448
|
+
/** Marks the record as handed to the team; injected for the same reason. */
|
|
449
|
+
markNamed = markUnclaimedMigrationNamed) {
|
|
450
|
+
// A review pass is never shown it, so the read is skipped rather than made
|
|
451
|
+
// and discarded -- one fewer API call on every review spawn.
|
|
452
|
+
const unclaimedMigrationRecord = isReviewPass || !focusId
|
|
453
|
+
? null
|
|
454
|
+
: await readUnclaimed(focusId);
|
|
455
|
+
return {
|
|
456
|
+
integrationConflict: worktree.integrationSync?.conflict ?? null,
|
|
457
|
+
focusBranchName,
|
|
458
|
+
migrationNumbering: resolveMigrationNumberingState(config.repoPath),
|
|
459
|
+
migrationNumberingIsReviewPass: isReviewPass,
|
|
460
|
+
unclaimedMigrationRecord,
|
|
461
|
+
// NOT called here. Marking the record named at composition time lifts the
|
|
462
|
+
// completion hold before the session exists -- a spawn that then fails
|
|
463
|
+
// leaves the hold lifted with nobody having read anything. The caller runs
|
|
464
|
+
// this once the session is actually up and the message has gone out.
|
|
465
|
+
confirmUnclaimedRecordDelivered: unclaimedMigrationRecord === null
|
|
466
|
+
? null
|
|
467
|
+
: () => markNamed(focusId, new Date().toISOString()),
|
|
468
|
+
};
|
|
469
|
+
}
|
|
351
470
|
//# sourceMappingURL=prompt-assembly.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt-assembly.js","sourceRoot":"","sources":["../../src/spawn/prompt-assembly.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"prompt-assembly.js","sourceRoot":"","sources":["../../src/spawn/prompt-assembly.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"review-hold-park.d.ts","sourceRoot":"","sources":["../../src/spawn/review-hold-park.ts"],"names":[],"mappings":"AAuFA,OAAO,EAIL,KAAK,gBAAgB,EACtB,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"review-hold-park.d.ts","sourceRoot":"","sources":["../../src/spawn/review-hold-park.ts"],"names":[],"mappings":"AAuFA,OAAO,EAIL,KAAK,gBAAgB,EACtB,MAAM,8BAA8B,CAAC;AAStC,+CAA+C;AAC/C,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEnE,2DAA2D;AAC3D,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,kEAAkE;AAClE,MAAM,WAAW,kBAAkB;IACjC,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,sBAAsB,EAAE,CAAC,CAAC;IACrF,+BAA+B,CAAC,EAAE,gBAAgB,CAAC,iCAAiC,CAAC,CAAC;IACtF,oBAAoB,CAAC,EAAE,gBAAgB,CAAC,sBAAsB,CAAC,CAAC;IAChE,gFAAgF;IAChF,yBAAyB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACnE;AAWD,8CAA8C;AAC9C,wBAAgB,6BAA6B,IAAI,IAAI,CAEpD;AAED;;;;;;GAMG;AACH,wBAAsB,6BAA6B,CACjD,KAAK,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,EAC/C,IAAI,GAAE,kBAAuB,GAC5B,OAAO,CAAC,qBAAqB,CAAC,CAgEhC"}
|
|
@@ -86,6 +86,7 @@ import { updateDeliveryStatus } from '../queries/deliveries.js';
|
|
|
86
86
|
import { clearOperatorHoldGateState, hasOperatorHoldMarker, resolveOperatorHold, } from '../delivery/operator-hold.js';
|
|
87
87
|
import { hasCommitVerdictHoldMarker } from '../delivery/commit-verdict-hold.js';
|
|
88
88
|
import { shortfallParkRefusingRework } from '../verify/shortfall-park.js';
|
|
89
|
+
import { hasModelUnavailableHold } from '../queries/verify-own-holds.js';
|
|
89
90
|
import { clearSpawnCooldownDurably } from './spawn-cooldown.js';
|
|
90
91
|
import { createLogger } from '../shell/log.js';
|
|
91
92
|
const log = createLogger({ module: 'spawn' });
|
|
@@ -119,7 +120,10 @@ export async function gateReviewSpawnOnOperatorHold(focus, deps = {}) {
|
|
|
119
120
|
const marked = deliveries.filter((d) => d.executionStatus === VERIFY_STATUS && hasOperatorHoldMarker(d.gateState));
|
|
120
121
|
const verdictHeldIds = new Set(deliveries.filter((d) => d.executionStatus === VERIFY_STATUS && hasCommitVerdictHoldMarker(d.gateState)).map((d) => d.id));
|
|
121
122
|
const parkedIds = new Set(deliveries.filter((d) => shortfallParkRefusingRework(d) !== null).map((d) => d.id));
|
|
122
|
-
|
|
123
|
+
// Awaiting the model (queries/verify-own-holds.ts): verify's reconciliation could
|
|
124
|
+
// not run, so no verdict exists for a review to close on. Verify releases it.
|
|
125
|
+
const awaitedIds = new Set(deliveries.filter((d) => d.executionStatus === VERIFY_STATUS && hasModelUnavailableHold(d.gateState)).map((d) => d.id));
|
|
126
|
+
if (marked.length === 0 && verdictHeldIds.size === 0 && parkedIds.size === 0 && awaitedIds.size === 0) {
|
|
123
127
|
parkLogged.delete(focus.focus_id);
|
|
124
128
|
return 'none';
|
|
125
129
|
}
|
|
@@ -145,7 +149,7 @@ export async function gateReviewSpawnOnOperatorHold(focus, deps = {}) {
|
|
|
145
149
|
}
|
|
146
150
|
// Every recorded hold still stands. Park only when the review has nothing else
|
|
147
151
|
// it could move: every non-terminal delivery is one of those held deliveries.
|
|
148
|
-
const heldIds = new Set([...marked.map((d) => d.id), ...verdictHeldIds, ...parkedIds]);
|
|
152
|
+
const heldIds = new Set([...marked.map((d) => d.id), ...verdictHeldIds, ...parkedIds, ...awaitedIds]);
|
|
149
153
|
const onlyHeldWork = deliveries.every((d) => TERMINAL_STATUSES.has(d.executionStatus ?? '') || heldIds.has(d.id));
|
|
150
154
|
if (!onlyHeldWork) {
|
|
151
155
|
parkLogged.delete(focus.focus_id);
|
|
@@ -154,7 +158,7 @@ export async function gateReviewSpawnOnOperatorHold(focus, deps = {}) {
|
|
|
154
158
|
if (!parkLogged.has(focus.focus_id)) {
|
|
155
159
|
parkLogged.add(focus.focus_id);
|
|
156
160
|
log.info(`[review-hold-park] "${focus.focus_name}": review parked -- every non-terminal delivery is held in verify ` +
|
|
157
|
-
`by an open operator escalation, an awaited gate verdict or a repeating-shortfall park; no review team spawns ` +
|
|
161
|
+
`by an open operator escalation, an awaited gate verdict, an awaited model or a repeating-shortfall park; no review team spawns ` +
|
|
158
162
|
`(and no teardown accrues) until it clears`);
|
|
159
163
|
}
|
|
160
164
|
return 'parked';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"review-hold-park.js","sourceRoot":"","sources":["../../src/spawn/review-hold-park.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,4EAA4E;AAC5E,oEAAoE;AACpE,+DAA+D;AAC/D,2FAA2F;AAC3F,mFAAmF;AACnF,2FAA2F;AAC3F,mFAAmF;AACnF,kEAAkE;AAClE,uDAAuD;AACvD,gBAAgB;AAEhB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsEG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,+BAA+B,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EACL,0BAA0B,EAC1B,qBAAqB,EACrB,mBAAmB,GAEpB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAChF,OAAO,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,GAAG,GAAG,YAAY,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;AAqB9C,6EAA6E;AAC7E,8EAA8E;AAC9E,oFAAoF;AACpF,MAAM,aAAa,GAAG,QAAQ,CAAC;AAC/B,MAAM,iBAAiB,GAAwB,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;AAE9E,oFAAoF;AACpF,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;AAErC,8CAA8C;AAC9C,MAAM,UAAU,6BAA6B;IAC3C,UAAU,CAAC,KAAK,EAAE,CAAC;AACrB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,6BAA6B,CACjD,KAA+C,EAC/C,OAA2B,EAAE;IAE7B,IAAI,UAA6C,CAAC;IAClD,IAAI,CAAC;QACH,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,kBAAkB,IAAI,kBAAkB,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACrF,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,KAAK,CAAC,kDAAkD,KAAK,CAAC,UAAU,MAAO,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5G,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,KAAK,aAAa,IAAI,qBAAqB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IACnH,MAAM,cAAc,GAAG,IAAI,GAAG,CAC5B,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,KAAK,aAAa,IAAI,0BAA0B,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAC1H,CAAC;IACF,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,2BAA2B,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9G,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,cAAc,CAAC,IAAI,KAAK,CAAC,IAAI,SAAS,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"review-hold-park.js","sourceRoot":"","sources":["../../src/spawn/review-hold-park.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,7 @@ import { type ChildProcess } from 'node:child_process';
|
|
|
15
15
|
import { type TokenUsage } from '@telora/daemon-core';
|
|
16
16
|
import type { DaemonConfig } from '../types/index.js';
|
|
17
17
|
import { type TelemetryMetricRow } from '../otlp/telemetry-writer.js';
|
|
18
|
+
import { type ModelUnavailableKind } from './one-shot-model.js';
|
|
18
19
|
/**
|
|
19
20
|
* MODEL PIN: 'opus'. A routing decision is the one place the system chooses to
|
|
20
21
|
* interrupt a human: it climbs the intent ladder (product/focus context +
|
|
@@ -61,7 +62,36 @@ export interface RoutingDeciderSpawnResult {
|
|
|
61
62
|
stderr: string;
|
|
62
63
|
sessionId: string | null;
|
|
63
64
|
errorMessage?: string;
|
|
65
|
+
/**
|
|
66
|
+
* The MODEL was unavailable: the provider rejected the session on a rate limit
|
|
67
|
+
* (the stream's typed rate_limit_event, a 429 result, or the CLI's own limit
|
|
68
|
+
* prose in the result), refused it on auth (401/403 or its prose), or the
|
|
69
|
+
* provider-wide window was open so nothing was spawned. The decider did not
|
|
70
|
+
* decide and did not ATTEMPT -- the sweep stamps nothing and re-hands the
|
|
71
|
+
* observation once the model is reachable. A timeout with NO provider refusal
|
|
72
|
+
* is not this: a decider that was working for ten minutes ran. A timeout AFTER
|
|
73
|
+
* a refusal is (the refusal explains why it never finished).
|
|
74
|
+
*/
|
|
75
|
+
modelUnavailable?: {
|
|
76
|
+
kind: ModelUnavailableKind;
|
|
77
|
+
resetAtMs: number | null;
|
|
78
|
+
};
|
|
64
79
|
}
|
|
80
|
+
/** What the spawn observed of the provider, for classifying an unavailability. Pure. */
|
|
81
|
+
export interface DeciderProviderFacts {
|
|
82
|
+
rateLimitRejected: {
|
|
83
|
+
resetAtMs: number | null;
|
|
84
|
+
} | null;
|
|
85
|
+
apiErrorStatus: number | null;
|
|
86
|
+
/** The error result's text, when the result was an error (the CLI's own words). */
|
|
87
|
+
errorResultText: string | null;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Pure: the model unavailability a finished decider's facts amount to, or null
|
|
91
|
+
* (any other outcome). Typed signals first; the result's prose is read through
|
|
92
|
+
* the one-shot wrapper's classifier so both spawners read one CLI the same way.
|
|
93
|
+
*/
|
|
94
|
+
export declare function deciderModelUnavailability(facts: DeciderProviderFacts): RoutingDeciderSpawnResult['modelUnavailable'] | undefined;
|
|
65
95
|
/** Injectable process seam (tests pass a fake child). */
|
|
66
96
|
export interface RoutingDeciderSpawnSeam {
|
|
67
97
|
spawnProcess: (command: string, args: string[], options: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routing-decider-spawn.d.ts","sourceRoot":"","sources":["../../src/spawn/routing-decider-spawn.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EAKL,KAAK,UAAU,EAChB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAItD,OAAO,EAAuC,KAAK,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"routing-decider-spawn.d.ts","sourceRoot":"","sources":["../../src/spawn/routing-decider-spawn.ts"],"names":[],"mappings":"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"}
|