@cat-factory/server 0.322.0 → 0.324.0
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/dist/app.d.ts.map +1 -1
- package/dist/app.js +5 -0
- package/dist/app.js.map +1 -1
- package/dist/modules/publicApi/PublicApiController.d.ts.map +1 -1
- package/dist/modules/publicApi/PublicApiController.js +17 -0
- package/dist/modules/publicApi/PublicApiController.js.map +1 -1
- package/dist/modules/publicApi/PublicFragmentController.d.ts +4 -0
- package/dist/modules/publicApi/PublicFragmentController.d.ts.map +1 -0
- package/dist/modules/publicApi/PublicFragmentController.js +61 -0
- package/dist/modules/publicApi/PublicFragmentController.js.map +1 -0
- package/dist/modules/publicApi/boardProjection.d.ts.map +1 -1
- package/dist/modules/publicApi/boardProjection.js +4 -0
- package/dist/modules/publicApi/boardProjection.js.map +1 -1
- package/dist/modules/publicApi/decisions/gateRoutes.d.ts.map +1 -1
- package/dist/modules/publicApi/decisions/gateRoutes.js +26 -1
- package/dist/modules/publicApi/decisions/gateRoutes.js.map +1 -1
- package/dist/modules/publicApi/decisions/projection.d.ts +10 -1
- package/dist/modules/publicApi/decisions/projection.d.ts.map +1 -1
- package/dist/modules/publicApi/decisions/projection.js +97 -7
- package/dist/modules/publicApi/decisions/projection.js.map +1 -1
- package/dist/modules/publicApi/decisions/resumeBudget.d.ts +22 -0
- package/dist/modules/publicApi/decisions/resumeBudget.d.ts.map +1 -0
- package/dist/modules/publicApi/decisions/resumeBudget.js +41 -0
- package/dist/modules/publicApi/decisions/resumeBudget.js.map +1 -0
- package/dist/modules/publicApi/fragmentCatalog.d.ts +47 -0
- package/dist/modules/publicApi/fragmentCatalog.d.ts.map +1 -0
- package/dist/modules/publicApi/fragmentCatalog.js +106 -0
- package/dist/modules/publicApi/fragmentCatalog.js.map +1 -0
- package/dist/modules/publicApi/openapiDocument.generated.d.ts +1 -1
- package/dist/modules/publicApi/openapiDocument.generated.d.ts.map +1 -1
- package/dist/modules/publicApi/openapiDocument.generated.js +1 -1
- package/dist/modules/publicApi/openapiDocument.generated.js.map +1 -1
- package/dist/modules/publicApi/publicApiAdmission.d.ts +57 -27
- package/dist/modules/publicApi/publicApiAdmission.d.ts.map +1 -1
- package/dist/modules/publicApi/publicApiAdmission.js +108 -37
- package/dist/modules/publicApi/publicApiAdmission.js.map +1 -1
- package/dist/modules/publicApi/taskCreation.d.ts +2 -0
- package/dist/modules/publicApi/taskCreation.d.ts.map +1 -1
- package/dist/modules/publicApi/taskCreation.js +20 -12
- package/dist/modules/publicApi/taskCreation.js.map +1 -1
- package/package.json +8 -8
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { ARCHITECTURE_BRAINSTORM_AGENT_KIND, CLARITY_REVIEW_AGENT_KIND, REQUIREMENTS_BRAINSTORM_AGENT_KIND, } from '@cat-factory/agents';
|
|
2
|
-
import { dedicatedParkSurface, findParkedInterviewStep, followUpLoopBudget, } from '@cat-factory/orchestration';
|
|
3
|
-
import { blockingReviewComments } from '@cat-factory/contracts';
|
|
1
|
+
import { ARCHITECTURE_BRAINSTORM_AGENT_KIND, CLARITY_REVIEW_AGENT_KIND, CURATION_GATE_TRAIT, hasTrait, REQUIREMENTS_BRAINSTORM_AGENT_KIND, } from '@cat-factory/agents';
|
|
2
|
+
import { dedicatedParkSurface, findParkedInterviewStep, followUpLoopBudget, stepAwaitsDecision, } from '@cat-factory/orchestration';
|
|
3
|
+
import { blockingReviewComments, PUBLIC_PR_REVIEW_MAX_RESUME_ATTEMPTS, } from '@cat-factory/contracts';
|
|
4
|
+
import { PUBLICLY_ANSWERABLE_PARK_SURFACES } from '../publicApiAdmission.js';
|
|
4
5
|
// The run → `PublicDecisionList` projection: what a parked run is currently asking a human, as
|
|
5
6
|
// external resources. One `to*Decision` + one `isLive*` predicate per park kind, and the assembly
|
|
6
7
|
// that decides which reads a given run even needs.
|
|
@@ -146,7 +147,7 @@ function toAgentDecision(step, decision) {
|
|
|
146
147
|
* published ones must not move, and the `optional | null` internals collapse to always-present
|
|
147
148
|
* nullables so four generated clients have one shape to check.
|
|
148
149
|
*/
|
|
149
|
-
function toPrReviewDecision(state) {
|
|
150
|
+
function toPrReviewDecision(state, step) {
|
|
150
151
|
return {
|
|
151
152
|
kind: 'pr-review',
|
|
152
153
|
status: state.status,
|
|
@@ -155,6 +156,47 @@ function toPrReviewDecision(state) {
|
|
|
155
156
|
slices: (state.slices ?? []).map(toPrReviewSlice),
|
|
156
157
|
findings: (state.findings ?? []).map(toPrReviewFinding),
|
|
157
158
|
selectedFindingIds: state.selectedFindingIds ?? [],
|
|
159
|
+
postReport: state.postReport ? toPrReviewPostReport(state.postReport) : null,
|
|
160
|
+
postedFindingIds: state.postedFindingIds ?? [],
|
|
161
|
+
postedBody: state.postedBody === true,
|
|
162
|
+
postAttempts: state.postAttempts ?? 0,
|
|
163
|
+
resumeAttempts: state.resumeAttempts ?? 0,
|
|
164
|
+
maxResumeAttempts: PUBLIC_PR_REVIEW_MAX_RESUME_ATTEMPTS,
|
|
165
|
+
// How many slices have REPORTED, counted here rather than passing the per-slice reports
|
|
166
|
+
// through: those are the engine's recovery plumbing (a slice's verbatim in-flight prose,
|
|
167
|
+
// superseded by the aggregated findings), while the count is the one thing a caller deciding
|
|
168
|
+
// whether to resume can act on.
|
|
169
|
+
reportedSlices: (state.sliceReviews ?? []).filter((r) => r.status === 'completed').length,
|
|
170
|
+
// Off the STEP, because that is where the engine folds the harness heartbeat: the review state
|
|
171
|
+
// records what the reviewer said, not when it last said anything.
|
|
172
|
+
lastActivityAt: step.lastActivityAt ?? null,
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* What the last `post` did, externally.
|
|
177
|
+
*
|
|
178
|
+
* Projected rather than passed through for the reason the rest of this file is, plus one specific
|
|
179
|
+
* to it: the internal report leaves `folded` / `failures` optional-with-a-default and `bodyPosted`
|
|
180
|
+
* `optional | null`, and a caller reading a partial post must not have to tell an ABSENT key from
|
|
181
|
+
* a zero. Both collapse to always-present here.
|
|
182
|
+
*/
|
|
183
|
+
function toPrReviewPostReport(report) {
|
|
184
|
+
return {
|
|
185
|
+
attempted: report.attempted,
|
|
186
|
+
posted: report.posted,
|
|
187
|
+
folded: report.folded ?? 0,
|
|
188
|
+
bodyPosted: report.bodyPosted ?? null,
|
|
189
|
+
bodyError: report.bodyError ?? null,
|
|
190
|
+
failures: (report.failures ?? []).map((failure) => ({
|
|
191
|
+
findingId: failure.findingId,
|
|
192
|
+
path: failure.path,
|
|
193
|
+
line: failure.line ?? null,
|
|
194
|
+
reason: failure.reason,
|
|
195
|
+
})),
|
|
196
|
+
// NULL rather than a defaulted 1: a report recorded before the pass was numbered cannot say
|
|
197
|
+
// which pass it was, and a caller comparing it against `postAttempts` to recognise its own
|
|
198
|
+
// retry would read the guess as an answer.
|
|
199
|
+
attempt: report.attempt ?? null,
|
|
158
200
|
};
|
|
159
201
|
}
|
|
160
202
|
/** One reviewed slice, externally. */
|
|
@@ -446,7 +488,7 @@ export async function buildDecisionList(c, workspaceId, scoped) {
|
|
|
446
488
|
// …and `unanswerable` is what stops that empty list being a riddle: it NAMES the wait. Handed
|
|
447
489
|
// the decisions it sits beside, so a wait this very response answers cannot also be reported
|
|
448
490
|
// as one nobody here can.
|
|
449
|
-
unanswerable: unanswerableWaits(execution, container.gateRegistry, interview.unwiredGate, answeredStepIndexes(decisions)),
|
|
491
|
+
unanswerable: unanswerableWaits(execution, container.gateRegistry, container.agentKindRegistry, interview.unwiredGate, answeredStepIndexes(decisions)),
|
|
450
492
|
};
|
|
451
493
|
}
|
|
452
494
|
/**
|
|
@@ -464,6 +506,43 @@ export async function buildDecisionList(c, workspaceId, scoped) {
|
|
|
464
506
|
function answeredStepIndexes(decisions) {
|
|
465
507
|
return new Set(decisions.flatMap((decision) => ('stepIndex' in decision ? [decision.stepIndex] : [])));
|
|
466
508
|
}
|
|
509
|
+
/**
|
|
510
|
+
* A parked CURATION step whose curation this surface cannot perform, or null.
|
|
511
|
+
*
|
|
512
|
+
* A curating kind parks the run so a person can MARK which of the things it found are worth
|
|
513
|
+
* acting on, and it does so through machinery of its own rather than through anything shared (each
|
|
514
|
+
* writes its own state shape and parks from there), which is why this is read off the kind's
|
|
515
|
+
* registered `curation-gate` TRAIT: the same declaration public admission enumerates, so a
|
|
516
|
+
* deployment's own curating kind is named here with no edit.
|
|
517
|
+
*
|
|
518
|
+
* Whether it belongs in the wait report is the SAME question the refusal at the start surface
|
|
519
|
+
* answers, so it is asked of the same set ({@link PUBLICLY_ANSWERABLE_PARK_SURFACES}) rather than
|
|
520
|
+
* of a second list beside it: `pr-reviewer` has public verbs (resolve / dismiss / challenge /
|
|
521
|
+
* resume) and is a `decisions[]` entry, `bug-fisher` has none and is named here. A slice that
|
|
522
|
+
* lands the marking route moves the member and both the refusal and this report follow.
|
|
523
|
+
*
|
|
524
|
+
* The step also carries an ordinary pending approval, which this response DOES offer, and that is
|
|
525
|
+
* why the detail says what resolving it means. Ending an expedition is an exit, not an answer: it
|
|
526
|
+
* advances the run past the step while everything it caught goes unacted on, and a caller told
|
|
527
|
+
* only "here is an approval" would take the one for the other.
|
|
528
|
+
*/
|
|
529
|
+
function curationWait(step, stepIndex, agentKinds) {
|
|
530
|
+
if (!stepAwaitsDecision(step))
|
|
531
|
+
return null;
|
|
532
|
+
if (!hasTrait(step.agentKind, CURATION_GATE_TRAIT, agentKinds))
|
|
533
|
+
return null;
|
|
534
|
+
if (PUBLICLY_ANSWERABLE_PARK_SURFACES.has(step.agentKind))
|
|
535
|
+
return null;
|
|
536
|
+
return {
|
|
537
|
+
reason: 'curation_gate',
|
|
538
|
+
stepKind: step.agentKind,
|
|
539
|
+
stepIndex,
|
|
540
|
+
detail: `The run is parked on the '${step.agentKind}' step so a person can mark which of the ` +
|
|
541
|
+
'things it found are worth acting on. No call on this API marks one, so that choice has to ' +
|
|
542
|
+
"be made in the app. Resolving the step's approval gate from here ENDS the run instead, " +
|
|
543
|
+
'leaving everything it found unacted on.',
|
|
544
|
+
};
|
|
545
|
+
}
|
|
467
546
|
/**
|
|
468
547
|
* Every wait holding this run that the decision surface cannot answer, named.
|
|
469
548
|
*
|
|
@@ -478,6 +557,12 @@ function answeredStepIndexes(decisions) {
|
|
|
478
557
|
* deployment-registered gates go through the one rule, where this used to name the built-ins from a
|
|
479
558
|
* hand-kept constant and report every gate a deployment registered as unclassifiable.
|
|
480
559
|
*
|
|
560
|
+
* A CURATION park is the one member that is not a gate at all ({@link curationWait}): a step whose
|
|
561
|
+
* kind curates parks the run for a person to mark what it found, and the marking has no public
|
|
562
|
+
* route unless the kind's surface does. It is read off the same trait admission enumerates, so the
|
|
563
|
+
* refusal a start surface gives and the wait this reports can never disagree about which curating
|
|
564
|
+
* kinds are answerable.
|
|
565
|
+
*
|
|
481
566
|
* `unclassified_gate` survives that change with a NARROWER meaning, and it is still reachable: a
|
|
482
567
|
* step whose kind this process has no gate registration for at all. A run outlives a registration
|
|
483
568
|
* (a deployment retires a gate, or a node one build behind serves a run started by one that is
|
|
@@ -495,7 +580,9 @@ function answeredStepIndexes(decisions) {
|
|
|
495
580
|
*/
|
|
496
581
|
export function unanswerableWaits(execution,
|
|
497
582
|
/** The app-owned gate registry: the authority for what a spent poll budget means per kind. */
|
|
498
|
-
gates,
|
|
583
|
+
gates,
|
|
584
|
+
/** The app-owned agent-kind registry: the authority for which kinds CURATE. */
|
|
585
|
+
agentKinds, unwiredGate,
|
|
499
586
|
/**
|
|
500
587
|
* Required rather than defaulted, because it is half of the question: "unanswerable" is a claim
|
|
501
588
|
* ABOUT the decisions this response carries, and a caller who omitted the set would get the
|
|
@@ -506,6 +593,9 @@ answered) {
|
|
|
506
593
|
return [];
|
|
507
594
|
const waits = [];
|
|
508
595
|
execution.steps.forEach((step, stepIndex) => {
|
|
596
|
+
const curation = curationWait(step, stepIndex, agentKinds);
|
|
597
|
+
if (curation)
|
|
598
|
+
waits.push(curation);
|
|
509
599
|
if (!step.gate || step.state === 'done' || answered.has(stepIndex))
|
|
510
600
|
return;
|
|
511
601
|
const pollExhaustion = gates.pollExhaustion(step.agentKind);
|
|
@@ -672,7 +762,7 @@ function liveStepDecisions(execution, registry) {
|
|
|
672
762
|
decisions.push(toJudgeDecision(step.agentKind, step.judge));
|
|
673
763
|
}
|
|
674
764
|
if (step.prReview && isLivePrReview(step.prReview)) {
|
|
675
|
-
decisions.push(toPrReviewDecision(step.prReview));
|
|
765
|
+
decisions.push(toPrReviewDecision(step.prReview, step));
|
|
676
766
|
}
|
|
677
767
|
if (step.humanTest && isLiveHumanTest(step.humanTest)) {
|
|
678
768
|
decisions.push(toHumanTestDecision(step.humanTest));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projection.js","sourceRoot":"","sources":["../../../../src/modules/publicApi/decisions/projection.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"projection.js","sourceRoot":"","sources":["../../../../src/modules/publicApi/decisions/projection.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { ExecutionInstance } from '@cat-factory/contracts';
|
|
2
|
+
/**
|
|
3
|
+
* How many resumes this run's review has already spent.
|
|
4
|
+
*
|
|
5
|
+
* Read off the RUN rather than tracked per caller, so the budget belongs to the review: a caller
|
|
6
|
+
* that alternates keys, retries from a second process, or resumes after the app already did gets
|
|
7
|
+
* the same answer. Taken as the maximum across the steps because a chain can carry more than one
|
|
8
|
+
* `pr-reviewer` step and the count lives on each step's own review state.
|
|
9
|
+
*/
|
|
10
|
+
export declare function prReviewResumesSpent(execution: Pick<ExecutionInstance, 'steps'>): number;
|
|
11
|
+
/**
|
|
12
|
+
* The refusal when a run's review has spent its public resume budget, or `null` while it has some
|
|
13
|
+
* left.
|
|
14
|
+
*
|
|
15
|
+
* The message names the evidence a caller should read INSTEAD of resuming again (`slices` against
|
|
16
|
+
* `reportedSlices` says whether every slice is in, `lastActivityAt` whether anything is still
|
|
17
|
+
* moving) plus the two exits. It carries no `details.reason`, like the wrong-status refusal beside
|
|
18
|
+
* it: what a caller branches on is `resumeAttempts` against `maxResumeAttempts` on the decision
|
|
19
|
+
* itself, which it can read BEFORE spending a call rather than after being refused one.
|
|
20
|
+
*/
|
|
21
|
+
export declare function prReviewResumeRefusal(execution: Pick<ExecutionInstance, 'steps'>): string | null;
|
|
22
|
+
//# sourceMappingURL=resumeBudget.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resumeBudget.d.ts","sourceRoot":"","sources":["../../../../src/modules/publicApi/decisions/resumeBudget.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAa/D;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,GAAG,MAAM,CAKxF;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI,CAQhG"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { PUBLIC_PR_REVIEW_MAX_RESUME_ATTEMPTS } from '@cat-factory/contracts';
|
|
2
|
+
// The ceiling on `POST /api/v1/runs/:runId/decisions/pr-review/resume`, kept out of the route so
|
|
3
|
+
// the rule is unit-testable: the state it reasons about (several resumed reviews across a run's
|
|
4
|
+
// steps) is not reachable through the wire, since a resume needs a reviewer wedged mid-review.
|
|
5
|
+
//
|
|
6
|
+
// WHY THE PUBLIC SURFACE BOUNDS A LOOP THE APP DOES NOT. A resume STOPS the running reviewer and
|
|
7
|
+
// dispatches a fresh container, so an uncapped one is unbounded spend on a run nobody is watching:
|
|
8
|
+
// a poller resuming every ten minutes on a review that legitimately takes twenty kills it, over
|
|
9
|
+
// and over, each time it is about to finish. A person clicking Resume in the review window is
|
|
10
|
+
// looking at what they nudged, which is the judgement a headless caller cannot supply, so the
|
|
11
|
+
// ceiling belongs to the surface without the eyes rather than to the engine.
|
|
12
|
+
/**
|
|
13
|
+
* How many resumes this run's review has already spent.
|
|
14
|
+
*
|
|
15
|
+
* Read off the RUN rather than tracked per caller, so the budget belongs to the review: a caller
|
|
16
|
+
* that alternates keys, retries from a second process, or resumes after the app already did gets
|
|
17
|
+
* the same answer. Taken as the maximum across the steps because a chain can carry more than one
|
|
18
|
+
* `pr-reviewer` step and the count lives on each step's own review state.
|
|
19
|
+
*/
|
|
20
|
+
export function prReviewResumesSpent(execution) {
|
|
21
|
+
return execution.steps.reduce((most, step) => Math.max(most, step.prReview?.resumeAttempts ?? 0), 0);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* The refusal when a run's review has spent its public resume budget, or `null` while it has some
|
|
25
|
+
* left.
|
|
26
|
+
*
|
|
27
|
+
* The message names the evidence a caller should read INSTEAD of resuming again (`slices` against
|
|
28
|
+
* `reportedSlices` says whether every slice is in, `lastActivityAt` whether anything is still
|
|
29
|
+
* moving) plus the two exits. It carries no `details.reason`, like the wrong-status refusal beside
|
|
30
|
+
* it: what a caller branches on is `resumeAttempts` against `maxResumeAttempts` on the decision
|
|
31
|
+
* itself, which it can read BEFORE spending a call rather than after being refused one.
|
|
32
|
+
*/
|
|
33
|
+
export function prReviewResumeRefusal(execution) {
|
|
34
|
+
const spent = prReviewResumesSpent(execution);
|
|
35
|
+
if (spent < PUBLIC_PR_REVIEW_MAX_RESUME_ATTEMPTS)
|
|
36
|
+
return null;
|
|
37
|
+
return (`This review has already been resumed ${spent} times, which is all this API will spend on ` +
|
|
38
|
+
'one review. Read `slices`, `reportedSlices` and `lastActivityAt` to see whether it is still ' +
|
|
39
|
+
'working; resume it again from the app, or end the run with POST /api/v1/tasks/:taskId/stop.');
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=resumeBudget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resumeBudget.js","sourceRoot":"","sources":["../../../../src/modules/publicApi/decisions/resumeBudget.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oCAAoC,EAAE,MAAM,wBAAwB,CAAA;AAG7E,iGAAiG;AACjG,gGAAgG;AAChG,+FAA+F;AAC/F,EAAE;AACF,iGAAiG;AACjG,mGAAmG;AACnG,gGAAgG;AAChG,8FAA8F;AAC9F,8FAA8F;AAC9F,6EAA6E;AAE7E;;;;;;;GAOG;AACH,MAAM,UAAU,oBAAoB,CAAC,SAA2C;IAC9E,OAAO,SAAS,CAAC,KAAK,CAAC,MAAM,CAC3B,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,cAAc,IAAI,CAAC,CAAC,EAClE,CAAC,CACF,CAAA;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,qBAAqB,CAAC,SAA2C;IAC/E,MAAM,KAAK,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAA;IAC7C,IAAI,KAAK,GAAG,oCAAoC;QAAE,OAAO,IAAI,CAAA;IAC7D,OAAO,CACL,wCAAwC,KAAK,8CAA8C;QAC3F,8FAA8F;QAC9F,6FAA6F,CAC9F,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { PublicPromptFragment } from '@cat-factory/contracts';
|
|
2
|
+
import type { ResolvedCatalogEntry } from '@cat-factory/kernel';
|
|
3
|
+
import type { FragmentLibraryModule } from '@cat-factory/orchestration';
|
|
4
|
+
/** The fragment library, or the 503 naming what this deployment has not wired. */
|
|
5
|
+
export declare function requireFragmentLibrary(library: FragmentLibraryModule | undefined): FragmentLibraryModule;
|
|
6
|
+
/** Project one merged catalog entry onto the published resource (identity and metadata, no body). */
|
|
7
|
+
export declare function toPublicPromptFragment(entry: ResolvedCatalogEntry): PublicPromptFragment;
|
|
8
|
+
/** One page of the published catalog, plus whether the caller should ask for another. */
|
|
9
|
+
export interface PublicFragmentPage {
|
|
10
|
+
fragments: PublicPromptFragment[];
|
|
11
|
+
hasMore: boolean;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* One keyset page of the merged catalog, ordered by `fragmentId` (the merge's own key, so the
|
|
15
|
+
* order is deterministic and a cursor cannot drift under a concurrent library edit).
|
|
16
|
+
*
|
|
17
|
+
* Sliced in memory rather than pushed into SQL, unlike the board lists on this surface, and that
|
|
18
|
+
* is not a shortcut: the catalog is a MERGE of three tiers plus the deployment's registered pool,
|
|
19
|
+
* so there is no single table to page over, and the merged result is already cached per workspace
|
|
20
|
+
* and re-read on every agent dispatch. The bound is therefore about what crosses the WIRE, which
|
|
21
|
+
* is the half that is unbounded here (one standard per Markdown file in a linked guidelines repo).
|
|
22
|
+
*/
|
|
23
|
+
export declare function catalogPage(library: FragmentLibraryModule, workspaceId: string, page: {
|
|
24
|
+
limit: number;
|
|
25
|
+
afterId?: string;
|
|
26
|
+
}): Promise<PublicFragmentPage>;
|
|
27
|
+
/**
|
|
28
|
+
* Refuse a creation naming a standard the workspace's merged catalog does not hold.
|
|
29
|
+
*
|
|
30
|
+
* The run path DROPS an unresolvable id on purpose, because a standard deleted after a task was
|
|
31
|
+
* filed must not break its run, and that disposition is wrong at a door where the ids were named in
|
|
32
|
+
* this request: a typo would answer `201` for a review folding nothing, which reads afterwards
|
|
33
|
+
* exactly like a review nobody asked to be judged against anything.
|
|
34
|
+
*
|
|
35
|
+
* Deliberately at THIS door rather than on `BoardService` beside the preset-pin guard, which is
|
|
36
|
+
* where a repository-read refusal otherwise belongs. The app's create form seeds its picker from
|
|
37
|
+
* the enclosing service's standing set and submits it verbatim, so that list is a MIX of what a
|
|
38
|
+
* person picked and what the task inherited: one library id gone stale on a service would then
|
|
39
|
+
* refuse every task filed under it. What separates the two is not the store being read but WHO
|
|
40
|
+
* named the ids, and everything here was named by the caller, in the same request cycle it read
|
|
41
|
+
* the catalog in.
|
|
42
|
+
*
|
|
43
|
+
* Fires only for a caller that named standards, so a deployment with no library wired keeps
|
|
44
|
+
* creating tasks exactly as before and only a caller that depends on the module meets its 503.
|
|
45
|
+
*/
|
|
46
|
+
export declare function assertFragmentsResolvable(library: FragmentLibraryModule | undefined, workspaceId: string, fragmentIds: string[] | undefined): Promise<void>;
|
|
47
|
+
//# sourceMappingURL=fragmentCatalog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fragmentCatalog.d.ts","sourceRoot":"","sources":["../../../src/modules/publicApi/fragmentCatalog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAElE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC/D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAiBvE,kFAAkF;AAClF,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,qBAAqB,GAAG,SAAS,GACzC,qBAAqB,CAMvB;AAED,qGAAqG;AACrG,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,oBAAoB,GAAG,oBAAoB,CAiBxF;AAED,yFAAyF;AACzF,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,oBAAoB,EAAE,CAAA;IACjC,OAAO,EAAE,OAAO,CAAA;CACjB;AAED;;;;;;;;;GASG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,qBAAqB,EAC9B,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GACxC,OAAO,CAAC,kBAAkB,CAAC,CAW7B;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,qBAAqB,GAAG,SAAS,EAC1C,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EAAE,GAAG,SAAS,GAChC,OAAO,CAAC,IAAI,CAAC,CA2Bf"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { ValidationError } from '@cat-factory/kernel';
|
|
2
|
+
import { requireCapability } from '../../http/guards.js';
|
|
3
|
+
// The best-practice-standard CATALOG as `/api/v1` reads it: the merged tenant catalog behind
|
|
4
|
+
// `GET /api/v1/prompt-fragments`, and the check a task creation's `fragmentIds` is held to.
|
|
5
|
+
//
|
|
6
|
+
// One module for both halves because they are one question asked twice ("which standards does
|
|
7
|
+
// this workspace resolve"), and answering it in two places is how a list that offers an id and a
|
|
8
|
+
// create that refuses it come to disagree. It is also why both read the same merged catalog the
|
|
9
|
+
// RUN path folds from (`resolveBodiesForRun` shares its cache), rather than the deployment's
|
|
10
|
+
// registered pool: the pool is one of the three tiers, so judging against it alone would refuse
|
|
11
|
+
// exactly the account- and workspace-tier standards a team authored, and admit a built-in the
|
|
12
|
+
// board has tombstoned.
|
|
13
|
+
/** How many missing ids the human-readable refusal names before it counts the rest. */
|
|
14
|
+
const MESSAGE_ID_CAP = 5;
|
|
15
|
+
/** The fragment library, or the 503 naming what this deployment has not wired. */
|
|
16
|
+
export function requireFragmentLibrary(library) {
|
|
17
|
+
return requireCapability(library, 'Best-practice standards are not configured', 'prompt_fragments_unwired');
|
|
18
|
+
}
|
|
19
|
+
/** Project one merged catalog entry onto the published resource (identity and metadata, no body). */
|
|
20
|
+
export function toPublicPromptFragment(entry) {
|
|
21
|
+
return {
|
|
22
|
+
fragmentId: entry.id,
|
|
23
|
+
title: entry.title,
|
|
24
|
+
// `''` for an uncategorised entry, matching what the management wire shape does with the same
|
|
25
|
+
// null: a picker groups by this string, and "no category" is a heading it can render, where a
|
|
26
|
+
// missing key is a second absent-vs-empty case for every client to tell apart.
|
|
27
|
+
category: entry.category ?? '',
|
|
28
|
+
summary: entry.summary,
|
|
29
|
+
version: entry.version,
|
|
30
|
+
tier: entry.tier,
|
|
31
|
+
// Flattened to an ARRAY rather than passed through as optional: the library carries tags only
|
|
32
|
+
// on a managed row, and "this standard has no tags" is not a fact a caller should have to tell
|
|
33
|
+
// apart from "this tier does not do tags".
|
|
34
|
+
tags: entry.tags ?? [],
|
|
35
|
+
...(entry.appliesTo ? { appliesTo: entry.appliesTo } : {}),
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* One keyset page of the merged catalog, ordered by `fragmentId` (the merge's own key, so the
|
|
40
|
+
* order is deterministic and a cursor cannot drift under a concurrent library edit).
|
|
41
|
+
*
|
|
42
|
+
* Sliced in memory rather than pushed into SQL, unlike the board lists on this surface, and that
|
|
43
|
+
* is not a shortcut: the catalog is a MERGE of three tiers plus the deployment's registered pool,
|
|
44
|
+
* so there is no single table to page over, and the merged result is already cached per workspace
|
|
45
|
+
* and re-read on every agent dispatch. The bound is therefore about what crosses the WIRE, which
|
|
46
|
+
* is the half that is unbounded here (one standard per Markdown file in a linked guidelines repo).
|
|
47
|
+
*/
|
|
48
|
+
export async function catalogPage(library, workspaceId, page) {
|
|
49
|
+
const catalog = await library.libraryService.resolveCatalog(workspaceId);
|
|
50
|
+
const start = page.afterId ? catalog.findIndex((entry) => entry.id > page.afterId) : 0;
|
|
51
|
+
// A cursor naming an id past the end of a catalog that has since shrunk is an empty LAST page,
|
|
52
|
+
// never the first one: `findIndex` misses, and resuming at 0 would hand a paging client the top
|
|
53
|
+
// of the list again and loop it forever.
|
|
54
|
+
const window = start < 0 ? [] : catalog.slice(start, start + page.limit);
|
|
55
|
+
return {
|
|
56
|
+
fragments: window.map(toPublicPromptFragment),
|
|
57
|
+
hasMore: start >= 0 && start + page.limit < catalog.length,
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Refuse a creation naming a standard the workspace's merged catalog does not hold.
|
|
62
|
+
*
|
|
63
|
+
* The run path DROPS an unresolvable id on purpose, because a standard deleted after a task was
|
|
64
|
+
* filed must not break its run, and that disposition is wrong at a door where the ids were named in
|
|
65
|
+
* this request: a typo would answer `201` for a review folding nothing, which reads afterwards
|
|
66
|
+
* exactly like a review nobody asked to be judged against anything.
|
|
67
|
+
*
|
|
68
|
+
* Deliberately at THIS door rather than on `BoardService` beside the preset-pin guard, which is
|
|
69
|
+
* where a repository-read refusal otherwise belongs. The app's create form seeds its picker from
|
|
70
|
+
* the enclosing service's standing set and submits it verbatim, so that list is a MIX of what a
|
|
71
|
+
* person picked and what the task inherited: one library id gone stale on a service would then
|
|
72
|
+
* refuse every task filed under it. What separates the two is not the store being read but WHO
|
|
73
|
+
* named the ids, and everything here was named by the caller, in the same request cycle it read
|
|
74
|
+
* the catalog in.
|
|
75
|
+
*
|
|
76
|
+
* Fires only for a caller that named standards, so a deployment with no library wired keeps
|
|
77
|
+
* creating tasks exactly as before and only a caller that depends on the module meets its 503.
|
|
78
|
+
*/
|
|
79
|
+
export async function assertFragmentsResolvable(library, workspaceId, fragmentIds) {
|
|
80
|
+
if (!fragmentIds?.length)
|
|
81
|
+
return;
|
|
82
|
+
// The merged ENTRIES, not the wire projection: this needs a set of ids, and `resolvedCatalog`
|
|
83
|
+
// would map every body, brief, source and document ref into a throwaway object per row to build
|
|
84
|
+
// it: several hundred of them on a workspace with a synced guidelines repo, on every create
|
|
85
|
+
// that names a standard.
|
|
86
|
+
const catalog = await requireFragmentLibrary(library).libraryService.resolveCatalog(workspaceId);
|
|
87
|
+
const known = new Set(catalog.map((entry) => entry.id));
|
|
88
|
+
const missing = fragmentIds.filter((id) => !known.has(id));
|
|
89
|
+
if (missing.length === 0)
|
|
90
|
+
return;
|
|
91
|
+
// EVERY id that missed rides `details`, not the first: a caller assembling a selection from
|
|
92
|
+
// configuration wants one round trip to fix all of them. Naming them at all is safe here (and
|
|
93
|
+
// useful) where the preset guard withholds its library, because this catalog is readable at the
|
|
94
|
+
// same `write` that creates a task: a caller told which of its OWN ids missed learns nothing it
|
|
95
|
+
// could not have listed.
|
|
96
|
+
//
|
|
97
|
+
// The prose half is capped and SAYS it is capped, because the array is bounded at
|
|
98
|
+
// `MAX_TASK_FRAGMENTS` and a message naming a hundred ids is one nobody reads. The machine-
|
|
99
|
+
// readable list is what a client acts on and stays whole. Neither can repeat an id: the schema
|
|
100
|
+
// dedupes the request before this sees it, so a client rendering one remediation row per entry
|
|
101
|
+
// gets one row per problem.
|
|
102
|
+
const named = missing.slice(0, MESSAGE_ID_CAP).join(', ');
|
|
103
|
+
const rest = missing.length - MESSAGE_ID_CAP;
|
|
104
|
+
throw new ValidationError(`No best-practice standard in this workspace for: ${named}${rest > 0 ? ` (and ${rest} more)` : ''}.`, { reason: 'prompt_fragment_not_found', fragmentIds: missing });
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=fragmentCatalog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fragmentCatalog.js","sourceRoot":"","sources":["../../../src/modules/publicApi/fragmentCatalog.ts"],"names":[],"mappings":"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"}
|