@telora/daemon 0.22.226 → 0.22.227
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 +4 -3
- package/dist/completion/index.js +1 -1
- package/dist/completion/review-defect-detector.d.ts +58 -18
- package/dist/completion/review-defect-detector.d.ts.map +1 -1
- package/dist/completion/review-defect-detector.js +62 -27
- package/dist/completion/review-defect-detector.js.map +1 -1
- package/dist/completion/review-exit-attribution.d.ts +6 -3
- package/dist/completion/review-exit-attribution.d.ts.map +1 -1
- package/dist/completion/review-exit-attribution.js +9 -7
- package/dist/completion/review-exit-attribution.js.map +1 -1
- package/dist/completion/review-exit-deps.d.ts +2 -0
- package/dist/completion/review-exit-deps.d.ts.map +1 -1
- package/dist/completion/review-exit-deps.js +3 -0
- package/dist/completion/review-exit-deps.js.map +1 -1
- package/dist/completion/review-exit-evidence.d.ts +8 -0
- package/dist/completion/review-exit-evidence.d.ts.map +1 -1
- package/dist/completion/review-exit-evidence.js +39 -27
- package/dist/completion/review-exit-evidence.js.map +1 -1
- package/dist/completion/review-exit-foreign-findings.d.ts +5 -1
- package/dist/completion/review-exit-foreign-findings.d.ts.map +1 -1
- package/dist/completion/review-exit-foreign-findings.js +4 -4
- package/dist/completion/review-exit-foreign-findings.js.map +1 -1
- package/dist/completion/review-exit-phase.js +4 -4
- package/dist/completion/review-exit-phase.js.map +1 -1
- package/dist/delivery/delivery-reconciler.d.ts +3 -3
- package/dist/prompt-sections/persona-sections.d.ts +14 -0
- package/dist/prompt-sections/persona-sections.d.ts.map +1 -1
- package/dist/prompt-sections/persona-sections.js +50 -19
- package/dist/prompt-sections/persona-sections.js.map +1 -1
- package/dist/prompt-sections/testing-standard.d.ts +4 -1
- package/dist/prompt-sections/testing-standard.d.ts.map +1 -1
- package/dist/prompt-sections/testing-standard.js +14 -4
- package/dist/prompt-sections/testing-standard.js.map +1 -1
- package/dist/queries/escalations.js +1 -1
- package/dist/queries/review-finding-facts.d.ts +38 -0
- package/dist/queries/review-finding-facts.d.ts.map +1 -0
- package/dist/queries/review-finding-facts.js +43 -0
- package/dist/queries/review-finding-facts.js.map +1 -0
- package/dist/testing/fixtures/index.js +1 -1
- package/dist/types/index.js +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The review-finding FACTS of a focus: which issues its reviews filed, and --
|
|
3
|
+
* where the review recorded it -- whether each finding is `blocking` (a not_met
|
|
4
|
+
* acceptance criterion names it) or a `concern` (none does).
|
|
5
|
+
*
|
|
6
|
+
* Same product-api action as getFocusReviewFiledIssueIds (queries/focuses.ts):
|
|
7
|
+
* `focus_review_filed_issue_ids` returns `issueIds: string[]` and, from the edge
|
|
8
|
+
* that records finding classes on, `findingClasses: Record<issueId,
|
|
9
|
+
* 'blocking' | 'concern'>`. An OLDER edge omits `findingClasses`; that reads as
|
|
10
|
+
* an empty map, so every finding falls back to the priority rule
|
|
11
|
+
* (completion/review-defect-detector.ts isBlockingReviewFinding). An issue
|
|
12
|
+
* absent from the map likewise has no recorded fact.
|
|
13
|
+
*
|
|
14
|
+
* The response is validated (zod) -- a malformed class value throws, and the
|
|
15
|
+
* caller's best-effort read degrades exactly as a failed id read does.
|
|
16
|
+
*
|
|
17
|
+
* @module queries/review-finding-facts
|
|
18
|
+
*/
|
|
19
|
+
import { z } from 'zod';
|
|
20
|
+
import type { ReviewFindingClass } from '../completion/review-defect-detector.js';
|
|
21
|
+
/** Wire shape of `focus_review_filed_issue_ids`; `findingClasses` is optional (older edges omit it). */
|
|
22
|
+
export declare const FocusReviewFindingFactsResponseSchema: z.ZodObject<{
|
|
23
|
+
issueIds: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
|
|
24
|
+
findingClasses: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodEnum<{
|
|
25
|
+
blocking: "blocking";
|
|
26
|
+
concern: "concern";
|
|
27
|
+
}>>>>;
|
|
28
|
+
}, z.core.$loose>;
|
|
29
|
+
/** The facts, normalized: ids as sent, classes as a Map (empty when not recorded). */
|
|
30
|
+
export interface FocusReviewFindingFacts {
|
|
31
|
+
issueIds: string[];
|
|
32
|
+
findingClasses: Map<string, ReviewFindingClass>;
|
|
33
|
+
}
|
|
34
|
+
/** Pure: normalize a validated response (missing keys -> empty). Exported for tests. */
|
|
35
|
+
export declare function toReviewFindingFacts(response: z.infer<typeof FocusReviewFindingFactsResponseSchema>): FocusReviewFindingFacts;
|
|
36
|
+
/** Read the focus-wide review-filed issue ids AND their recorded finding classes. */
|
|
37
|
+
export declare function getFocusReviewFindingFacts(focusId: string): Promise<FocusReviewFindingFacts>;
|
|
38
|
+
//# sourceMappingURL=review-finding-facts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review-finding-facts.d.ts","sourceRoot":"","sources":["../../src/queries/review-finding-facts.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAIlF,wGAAwG;AACxG,eAAO,MAAM,qCAAqC;;;;;;iBAGlC,CAAC;AAEjB,sFAAsF;AACtF,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;CACjD;AAED,wFAAwF;AACxF,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,qCAAqC,CAAC,GAC9D,uBAAuB,CAKzB;AAED,qFAAqF;AACrF,wBAAsB,0BAA0B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAOlG"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
// PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
|
|
2
|
+
// Pinned by: packages/daemon/src/completion/review-finding-blocking-predicate.test.ts,
|
|
3
|
+
// packages/daemon/src/completion/review-finding-class-routing.test.ts
|
|
4
|
+
// PINNED-BY-END
|
|
5
|
+
/**
|
|
6
|
+
* The review-finding FACTS of a focus: which issues its reviews filed, and --
|
|
7
|
+
* where the review recorded it -- whether each finding is `blocking` (a not_met
|
|
8
|
+
* acceptance criterion names it) or a `concern` (none does).
|
|
9
|
+
*
|
|
10
|
+
* Same product-api action as getFocusReviewFiledIssueIds (queries/focuses.ts):
|
|
11
|
+
* `focus_review_filed_issue_ids` returns `issueIds: string[]` and, from the edge
|
|
12
|
+
* that records finding classes on, `findingClasses: Record<issueId,
|
|
13
|
+
* 'blocking' | 'concern'>`. An OLDER edge omits `findingClasses`; that reads as
|
|
14
|
+
* an empty map, so every finding falls back to the priority rule
|
|
15
|
+
* (completion/review-defect-detector.ts isBlockingReviewFinding). An issue
|
|
16
|
+
* absent from the map likewise has no recorded fact.
|
|
17
|
+
*
|
|
18
|
+
* The response is validated (zod) -- a malformed class value throws, and the
|
|
19
|
+
* caller's best-effort read degrades exactly as a failed id read does.
|
|
20
|
+
*
|
|
21
|
+
* @module queries/review-finding-facts
|
|
22
|
+
*/
|
|
23
|
+
import { z } from 'zod';
|
|
24
|
+
import { callApiValidated } from './shared.js';
|
|
25
|
+
const ReviewFindingClassSchema = z.enum(['blocking', 'concern']);
|
|
26
|
+
/** Wire shape of `focus_review_filed_issue_ids`; `findingClasses` is optional (older edges omit it). */
|
|
27
|
+
export const FocusReviewFindingFactsResponseSchema = z.object({
|
|
28
|
+
issueIds: z.array(z.string()).nullish(),
|
|
29
|
+
findingClasses: z.record(z.string(), ReviewFindingClassSchema).nullish(),
|
|
30
|
+
}).passthrough();
|
|
31
|
+
/** Pure: normalize a validated response (missing keys -> empty). Exported for tests. */
|
|
32
|
+
export function toReviewFindingFacts(response) {
|
|
33
|
+
return {
|
|
34
|
+
issueIds: response.issueIds ?? [],
|
|
35
|
+
findingClasses: new Map(Object.entries(response.findingClasses ?? {})),
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
/** Read the focus-wide review-filed issue ids AND their recorded finding classes. */
|
|
39
|
+
export async function getFocusReviewFindingFacts(focusId) {
|
|
40
|
+
const response = await callApiValidated('focus_review_filed_issue_ids', FocusReviewFindingFactsResponseSchema, { focusId });
|
|
41
|
+
return toReviewFindingFacts(response);
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=review-finding-facts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review-finding-facts.js","sourceRoot":"","sources":["../../src/queries/review-finding-facts.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,uFAAuF;AACvF,wEAAwE;AACxE,gBAAgB;AAEhB;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAG/C,MAAM,wBAAwB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;AAEjE,wGAAwG;AACxG,MAAM,CAAC,MAAM,qCAAqC,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5D,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;IACvC,cAAc,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,wBAAwB,CAAC,CAAC,OAAO,EAAE;CACzE,CAAC,CAAC,WAAW,EAAE,CAAC;AAQjB,wFAAwF;AACxF,MAAM,UAAU,oBAAoB,CAClC,QAA+D;IAE/D,OAAO;QACL,QAAQ,EAAE,QAAQ,CAAC,QAAQ,IAAI,EAAE;QACjC,cAAc,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC;KACvE,CAAC;AACJ,CAAC;AAED,qFAAqF;AACrF,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAAC,OAAe;IAC9D,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CACrC,8BAA8B,EAC9B,qCAAqC,EACrC,EAAE,OAAO,EAAE,CACZ,CAAC;IACF,OAAO,oBAAoB,CAAC,QAAQ,CAAC,CAAC;AACxC,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
|
|
2
|
-
// Pinned by:
|
|
2
|
+
// Pinned by: 229 tests -- run: npm run gen:pinned-by -- --list packages/daemon/src/testing/fixtures/index.ts
|
|
3
3
|
// PINNED-BY-END
|
|
4
4
|
/**
|
|
5
5
|
* Build an ActiveFocusRow (a getActiveFocuses row): an active, armed focus with
|
package/dist/types/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
|
|
2
|
-
// Pinned by:
|
|
2
|
+
// Pinned by: 231 tests -- run: npm run gen:pinned-by -- --list packages/daemon/src/types/index.ts
|
|
3
3
|
// PINNED-BY-END
|
|
4
4
|
/**
|
|
5
5
|
* Domain-specific type re-exports.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@telora/daemon",
|
|
3
|
-
"version": "0.22.
|
|
3
|
+
"version": "0.22.227",
|
|
4
4
|
"description": "Agent orchestration daemon for Telora - spawns and manages Claude Code instances",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"//testRunner": "Uses Node.js built-in test runner (node:test) via tsx for TypeScript support. The root package uses Vitest; this is a deliberate choice for the daemon package to avoid framework dependencies. Test files live beside the modules they exercise (owner-directory layout); the runner discovers them recursively.",
|
|
39
39
|
"dependencies": {
|
|
40
40
|
"@telora/daemon-core": "^0.2.99",
|
|
41
|
-
"@telora/mcp-products": "^0.22.
|
|
41
|
+
"@telora/mcp-products": "^0.22.166",
|
|
42
42
|
"commander": "^14.0.3",
|
|
43
43
|
"yaml": "^2.4.0",
|
|
44
44
|
"zod": "^4.3.6"
|