crewly 1.20.274 → 1.20.276

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.
Files changed (118) hide show
  1. package/config/roles/team-leader/tl-addon.md +7 -0
  2. package/config/skills/team-leader/propose-tier-change/SKILL.md +62 -0
  3. package/config/skills/team-leader/propose-tier-change/execute.sh +64 -0
  4. package/config/skills/team-leader/propose-tier-change/execute.test.sh +75 -0
  5. package/dist/backend/backend/src/constants.d.ts +46 -0
  6. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  7. package/dist/backend/backend/src/constants.js +53 -0
  8. package/dist/backend/backend/src/constants.js.map +1 -1
  9. package/dist/backend/backend/src/controllers/request-types.d.ts +2 -0
  10. package/dist/backend/backend/src/controllers/request-types.d.ts.map +1 -1
  11. package/dist/backend/backend/src/controllers/team/team-model-tiers.controller.d.ts +41 -0
  12. package/dist/backend/backend/src/controllers/team/team-model-tiers.controller.d.ts.map +1 -0
  13. package/dist/backend/backend/src/controllers/team/team-model-tiers.controller.js +112 -0
  14. package/dist/backend/backend/src/controllers/team/team-model-tiers.controller.js.map +1 -0
  15. package/dist/backend/backend/src/controllers/team/team.controller.d.ts.map +1 -1
  16. package/dist/backend/backend/src/controllers/team/team.controller.js +12 -0
  17. package/dist/backend/backend/src/controllers/team/team.controller.js.map +1 -1
  18. package/dist/backend/backend/src/controllers/team/team.routes.d.ts.map +1 -1
  19. package/dist/backend/backend/src/controllers/team/team.routes.js +6 -0
  20. package/dist/backend/backend/src/controllers/team/team.routes.js.map +1 -1
  21. package/dist/backend/backend/src/index.d.ts.map +1 -1
  22. package/dist/backend/backend/src/index.js +5 -0
  23. package/dist/backend/backend/src/index.js.map +1 -1
  24. package/dist/backend/backend/src/services/ai/prompt-builder.service.d.ts.map +1 -1
  25. package/dist/backend/backend/src/services/ai/prompt-builder.service.js +16 -0
  26. package/dist/backend/backend/src/services/ai/prompt-builder.service.js.map +1 -1
  27. package/dist/backend/backend/src/services/ai/prompt-modules/index.d.ts +1 -0
  28. package/dist/backend/backend/src/services/ai/prompt-modules/index.d.ts.map +1 -1
  29. package/dist/backend/backend/src/services/ai/prompt-modules/index.js +1 -0
  30. package/dist/backend/backend/src/services/ai/prompt-modules/index.js.map +1 -1
  31. package/dist/backend/backend/src/services/ai/prompt-modules/model-tiers.module.d.ts +34 -0
  32. package/dist/backend/backend/src/services/ai/prompt-modules/model-tiers.module.d.ts.map +1 -0
  33. package/dist/backend/backend/src/services/ai/prompt-modules/model-tiers.module.js +54 -0
  34. package/dist/backend/backend/src/services/ai/prompt-modules/model-tiers.module.js.map +1 -0
  35. package/dist/backend/backend/src/services/ai/prompt-modules/prompt-assembly.service.d.ts.map +1 -1
  36. package/dist/backend/backend/src/services/ai/prompt-modules/prompt-assembly.service.js +2 -0
  37. package/dist/backend/backend/src/services/ai/prompt-modules/prompt-assembly.service.js.map +1 -1
  38. package/dist/backend/backend/src/services/ai/prompt-modules/prompt-module.interface.d.ts +13 -0
  39. package/dist/backend/backend/src/services/ai/prompt-modules/prompt-module.interface.d.ts.map +1 -1
  40. package/dist/backend/backend/src/services/ai/prompt-modules/prompt-module.interface.js.map +1 -1
  41. package/dist/backend/backend/src/services/decisions/decision.service.d.ts +2 -0
  42. package/dist/backend/backend/src/services/decisions/decision.service.d.ts.map +1 -1
  43. package/dist/backend/backend/src/services/decisions/decision.service.js +1 -0
  44. package/dist/backend/backend/src/services/decisions/decision.service.js.map +1 -1
  45. package/dist/backend/backend/src/services/model-tiers/model-tier.service.d.ts +251 -0
  46. package/dist/backend/backend/src/services/model-tiers/model-tier.service.d.ts.map +1 -0
  47. package/dist/backend/backend/src/services/model-tiers/model-tier.service.js +701 -0
  48. package/dist/backend/backend/src/services/model-tiers/model-tier.service.js.map +1 -0
  49. package/dist/backend/backend/src/services/model-tiers/model-tier.store.d.ts +82 -0
  50. package/dist/backend/backend/src/services/model-tiers/model-tier.store.d.ts.map +1 -0
  51. package/dist/backend/backend/src/services/model-tiers/model-tier.store.js +80 -0
  52. package/dist/backend/backend/src/services/model-tiers/model-tier.store.js.map +1 -0
  53. package/dist/backend/backend/src/services/model-tiers/model-tier.wiring.d.ts +28 -0
  54. package/dist/backend/backend/src/services/model-tiers/model-tier.wiring.d.ts.map +1 -0
  55. package/dist/backend/backend/src/services/model-tiers/model-tier.wiring.js +56 -0
  56. package/dist/backend/backend/src/services/model-tiers/model-tier.wiring.js.map +1 -0
  57. package/dist/backend/backend/src/services/model-tiers/tier-quality.d.ts +102 -0
  58. package/dist/backend/backend/src/services/model-tiers/tier-quality.d.ts.map +1 -0
  59. package/dist/backend/backend/src/services/model-tiers/tier-quality.js +116 -0
  60. package/dist/backend/backend/src/services/model-tiers/tier-quality.js.map +1 -0
  61. package/dist/backend/backend/src/services/model-tiers/tier-usage-report.d.ts +86 -0
  62. package/dist/backend/backend/src/services/model-tiers/tier-usage-report.d.ts.map +1 -0
  63. package/dist/backend/backend/src/services/model-tiers/tier-usage-report.js +148 -0
  64. package/dist/backend/backend/src/services/model-tiers/tier-usage-report.js.map +1 -0
  65. package/dist/backend/backend/src/services/skill/skill-permission.service.d.ts.map +1 -1
  66. package/dist/backend/backend/src/services/skill/skill-permission.service.js +1 -0
  67. package/dist/backend/backend/src/services/skill/skill-permission.service.js.map +1 -1
  68. package/dist/backend/backend/src/types/decision.types.d.ts +41 -1
  69. package/dist/backend/backend/src/types/decision.types.d.ts.map +1 -1
  70. package/dist/backend/backend/src/types/index.d.ts +20 -0
  71. package/dist/backend/backend/src/types/index.d.ts.map +1 -1
  72. package/dist/backend/backend/src/types/index.js.map +1 -1
  73. package/dist/backend/backend/src/utils/member-default-model.utils.d.ts +24 -8
  74. package/dist/backend/backend/src/utils/member-default-model.utils.d.ts.map +1 -1
  75. package/dist/backend/backend/src/utils/member-default-model.utils.js +33 -7
  76. package/dist/backend/backend/src/utils/member-default-model.utils.js.map +1 -1
  77. package/dist/backend/backend/src/utils/model-tier.utils.d.ts +68 -0
  78. package/dist/backend/backend/src/utils/model-tier.utils.d.ts.map +1 -0
  79. package/dist/backend/backend/src/utils/model-tier.utils.js +111 -0
  80. package/dist/backend/backend/src/utils/model-tier.utils.js.map +1 -0
  81. package/dist/backend/build-info.json +2 -2
  82. package/dist/cli/backend/src/constants.d.ts +46 -0
  83. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  84. package/dist/cli/backend/src/constants.js +53 -0
  85. package/dist/cli/backend/src/constants.js.map +1 -1
  86. package/dist/cli/backend/src/services/ai/prompt-builder.service.d.ts.map +1 -1
  87. package/dist/cli/backend/src/services/ai/prompt-builder.service.js +16 -0
  88. package/dist/cli/backend/src/services/ai/prompt-builder.service.js.map +1 -1
  89. package/dist/cli/backend/src/services/ai/prompt-modules/model-tiers.module.d.ts +34 -0
  90. package/dist/cli/backend/src/services/ai/prompt-modules/model-tiers.module.d.ts.map +1 -0
  91. package/dist/cli/backend/src/services/ai/prompt-modules/model-tiers.module.js +54 -0
  92. package/dist/cli/backend/src/services/ai/prompt-modules/model-tiers.module.js.map +1 -0
  93. package/dist/cli/backend/src/services/ai/prompt-modules/prompt-assembly.service.d.ts.map +1 -1
  94. package/dist/cli/backend/src/services/ai/prompt-modules/prompt-assembly.service.js +2 -0
  95. package/dist/cli/backend/src/services/ai/prompt-modules/prompt-assembly.service.js.map +1 -1
  96. package/dist/cli/backend/src/services/ai/prompt-modules/prompt-module.interface.d.ts +13 -0
  97. package/dist/cli/backend/src/services/ai/prompt-modules/prompt-module.interface.d.ts.map +1 -1
  98. package/dist/cli/backend/src/services/ai/prompt-modules/prompt-module.interface.js.map +1 -1
  99. package/dist/cli/backend/src/services/decisions/decision.service.d.ts +2 -0
  100. package/dist/cli/backend/src/services/decisions/decision.service.d.ts.map +1 -1
  101. package/dist/cli/backend/src/services/decisions/decision.service.js +1 -0
  102. package/dist/cli/backend/src/services/decisions/decision.service.js.map +1 -1
  103. package/dist/cli/backend/src/types/decision.types.d.ts +41 -1
  104. package/dist/cli/backend/src/types/decision.types.d.ts.map +1 -1
  105. package/dist/cli/backend/src/types/index.d.ts +20 -0
  106. package/dist/cli/backend/src/types/index.d.ts.map +1 -1
  107. package/dist/cli/backend/src/types/index.js.map +1 -1
  108. package/dist/cli/backend/src/utils/member-default-model.utils.d.ts +24 -8
  109. package/dist/cli/backend/src/utils/member-default-model.utils.d.ts.map +1 -1
  110. package/dist/cli/backend/src/utils/member-default-model.utils.js +33 -7
  111. package/dist/cli/backend/src/utils/member-default-model.utils.js.map +1 -1
  112. package/dist/cli/backend/src/utils/model-tier.utils.d.ts +68 -0
  113. package/dist/cli/backend/src/utils/model-tier.utils.d.ts.map +1 -0
  114. package/dist/cli/backend/src/utils/model-tier.utils.js +111 -0
  115. package/dist/cli/backend/src/utils/model-tier.utils.js.map +1 -0
  116. package/frontend/dist/assets/{index-7e5ebf78.js → index-368419df.js} +266 -266
  117. package/frontend/dist/index.html +1 -1
  118. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-tier.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/model-tiers/model-tier.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,82 @@
1
+ /**
2
+ * Model-tier review state per team (crewly#1173): when the lead last
3
+ * reviewed, the proposal it is drafting, the open owner card, and the tier
4
+ * changes the owner applied (watched by the quality guard).
5
+ *
6
+ * One JSON file under CREWLY_HOME, written atomically; every change goes
7
+ * through {@link ModelTierStore.update}, serialised in-process.
8
+ *
9
+ * @module services/model-tiers/model-tier.store
10
+ */
11
+ import type { TierChangeEntry } from '../../types/decision.types.js';
12
+ import type { QualityStats } from './tier-quality.js';
13
+ /** A proposal the lead is putting together (not yet sent to the owner). */
14
+ export interface TierDraft {
15
+ reviewId: string;
16
+ askerSession: string;
17
+ startedAt: string;
18
+ updatedAt: string;
19
+ changes: TierChangeEntry[];
20
+ routing: string[];
21
+ }
22
+ /** A change the owner applied, and what the quality guard found. */
23
+ export interface AppliedTierChange extends TierChangeEntry {
24
+ appliedAt: string;
25
+ decisionId: string;
26
+ /** Send-back stats over the member's last settled items before the change */
27
+ baseline: QualityStats;
28
+ /**
29
+ * `watching` — a lowered member, not judged yet; `ok` — judged, no worse;
30
+ * `revert_proposed` — worse, a revert card went to the owner; `expired` —
31
+ * too few items within the watch window; `not_watched` — raised or same rank.
32
+ */
33
+ guard: 'watching' | 'ok' | 'revert_proposed' | 'expired' | 'not_watched';
34
+ guardDecisionId?: string;
35
+ guardCheckedAt?: string;
36
+ guardAfter?: QualityStats;
37
+ }
38
+ /** Review state of one team. */
39
+ export interface TeamTierState {
40
+ lastReviewAt?: string;
41
+ lastReviewTrigger?: 'weekly' | 'on_demand';
42
+ draft?: TierDraft;
43
+ /** The owner card of the last submitted proposal, while open */
44
+ openDecisionId?: string;
45
+ applied: AppliedTierChange[];
46
+ }
47
+ /** File-backed store. */
48
+ export declare class ModelTierStore {
49
+ private readonly filePath;
50
+ private chain;
51
+ constructor(filePath: string);
52
+ /**
53
+ * Store under a Crewly home.
54
+ *
55
+ * @param crewlyHome - CREWLY_HOME
56
+ * @returns Store
57
+ */
58
+ static inHome(crewlyHome: string): ModelTierStore;
59
+ /**
60
+ * One team's state (empty state when none).
61
+ *
62
+ * @param teamId - Team id
63
+ * @returns State
64
+ */
65
+ get(teamId: string): Promise<TeamTierState>;
66
+ /**
67
+ * Every team's state.
68
+ *
69
+ * @returns Map of team id → state
70
+ */
71
+ all(): Promise<Record<string, TeamTierState>>;
72
+ /**
73
+ * Change one team's state (serialised; the file is rewritten atomically).
74
+ *
75
+ * @param teamId - Team id
76
+ * @param mutate - Returns the new state (may mutate and return the given one)
77
+ * @returns The new state
78
+ */
79
+ update(teamId: string, mutate: (s: TeamTierState) => TeamTierState): Promise<TeamTierState>;
80
+ private load;
81
+ }
82
+ //# sourceMappingURL=model-tier.store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-tier.store.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/model-tiers/model-tier.store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAErE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,2EAA2E;AAC3E,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,oEAAoE;AACpE,MAAM,WAAW,iBAAkB,SAAQ,eAAe;IACxD,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,6EAA6E;IAC7E,QAAQ,EAAE,YAAY,CAAC;IACvB;;;;OAIG;IACH,KAAK,EAAE,UAAU,GAAG,IAAI,GAAG,iBAAiB,GAAG,SAAS,GAAG,aAAa,CAAC;IACzE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,YAAY,CAAC;CAC3B;AAED,gCAAgC;AAChC,MAAM,WAAW,aAAa;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,QAAQ,GAAG,WAAW,CAAC;IAC3C,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,gEAAgE;IAChE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,iBAAiB,EAAE,CAAC;CAC9B;AAWD,yBAAyB;AACzB,qBAAa,cAAc;IAGb,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAFrC,OAAO,CAAC,KAAK,CAAuC;gBAEvB,QAAQ,EAAE,MAAM;IAE7C;;;;;OAKG;IACH,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc;IAIjD;;;;;OAKG;IACG,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAKjD;;;;OAIG;IACG,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAInD;;;;;;OAMG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,aAAa,KAAK,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;YAc7E,IAAI;CAOnB"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * Model-tier review state per team (crewly#1173): when the lead last
3
+ * reviewed, the proposal it is drafting, the open owner card, and the tier
4
+ * changes the owner applied (watched by the quality guard).
5
+ *
6
+ * One JSON file under CREWLY_HOME, written atomically; every change goes
7
+ * through {@link ModelTierStore.update}, serialised in-process.
8
+ *
9
+ * @module services/model-tiers/model-tier.store
10
+ */
11
+ import * as path from 'path';
12
+ import { promises as fs } from 'fs';
13
+ import { MODEL_TIER_CONSTANTS } from '../../constants.js';
14
+ import { atomicWriteFile, readJsonStore } from '../../utils/file-io.utils.js';
15
+ /** Applied changes kept per team (oldest dropped). */
16
+ const MAX_APPLIED = 100;
17
+ /** File-backed store. */
18
+ export class ModelTierStore {
19
+ filePath;
20
+ chain = Promise.resolve();
21
+ constructor(filePath) {
22
+ this.filePath = filePath;
23
+ }
24
+ /**
25
+ * Store under a Crewly home.
26
+ *
27
+ * @param crewlyHome - CREWLY_HOME
28
+ * @returns Store
29
+ */
30
+ static inHome(crewlyHome) {
31
+ return new ModelTierStore(path.join(crewlyHome, MODEL_TIER_CONSTANTS.STORE_FILE));
32
+ }
33
+ /**
34
+ * One team's state (empty state when none).
35
+ *
36
+ * @param teamId - Team id
37
+ * @returns State
38
+ */
39
+ async get(teamId) {
40
+ const data = await this.load();
41
+ return data.teams[teamId] ?? { applied: [] };
42
+ }
43
+ /**
44
+ * Every team's state.
45
+ *
46
+ * @returns Map of team id → state
47
+ */
48
+ async all() {
49
+ return (await this.load()).teams;
50
+ }
51
+ /**
52
+ * Change one team's state (serialised; the file is rewritten atomically).
53
+ *
54
+ * @param teamId - Team id
55
+ * @param mutate - Returns the new state (may mutate and return the given one)
56
+ * @returns The new state
57
+ */
58
+ update(teamId, mutate) {
59
+ const run = this.chain.then(async () => {
60
+ const data = await this.load();
61
+ const next = mutate(data.teams[teamId] ?? { applied: [] });
62
+ next.applied = next.applied.slice(-MAX_APPLIED);
63
+ data.teams[teamId] = next;
64
+ await fs.mkdir(path.dirname(this.filePath), { recursive: true });
65
+ await atomicWriteFile(this.filePath, JSON.stringify(data, null, 2));
66
+ return next;
67
+ });
68
+ this.chain = run.catch(() => undefined);
69
+ return run;
70
+ }
71
+ async load() {
72
+ const read = await readJsonStore(this.filePath, {
73
+ validate: (d) => (d && typeof d === 'object' && typeof d.teams === 'object' ? null : 'not a model-tier store'),
74
+ });
75
+ if (read.status === 'ok')
76
+ return { version: 1, teams: read.data.teams ?? {} };
77
+ return { version: 1, teams: {} };
78
+ }
79
+ }
80
+ //# sourceMappingURL=model-tier.store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-tier.store.js","sourceRoot":"","sources":["../../../../../../backend/src/services/model-tiers/model-tier.store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Model tiers — the real dependencies (crewly#1173). Called once decision
3
+ * cards run: builds the service, registers the `model_tier_change` card
4
+ * handler, and starts the hourly tick.
5
+ *
6
+ * @module services/model-tiers/model-tier.wiring
7
+ */
8
+ import { type DecisionKindHandler } from '../decisions/decision.service.js';
9
+ import { ModelTierService, type TierDecisions } from './model-tier.service.js';
10
+ /** What the composition root provides. */
11
+ export interface ModelTierWiringInput {
12
+ /** Package root (the composition root's findPackageRoot(__dirname)) */
13
+ packageRoot?: string;
14
+ crewlyHome: string;
15
+ decisions: TierDecisions;
16
+ /** Deliver text to an agent (wakes a stopped one) */
17
+ sendToAgent: (session: string, text: string) => Promise<boolean>;
18
+ /** Registers the kind handler (DecisionService.registerKindHandler) */
19
+ register?: (kind: 'model_tier_change', handler: DecisionKindHandler | null) => void;
20
+ }
21
+ /**
22
+ * Build, register and start the model-tier service.
23
+ *
24
+ * @param input - Composition-root hooks
25
+ * @returns The running service
26
+ */
27
+ export declare function startModelTiers(input: ModelTierWiringInput): ModelTierService;
28
+ //# sourceMappingURL=model-tier.wiring.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-tier.wiring.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/model-tiers/model-tier.wiring.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAUH,OAAO,EAAmB,KAAK,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAI7F,OAAO,EAAE,gBAAgB,EAAuB,KAAK,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAGpG,0CAA0C;AAC1C,MAAM,WAAW,oBAAoB;IACnC,uEAAuE;IACvE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,aAAa,CAAC;IACzB,qDAAqD;IACrD,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACjE,uEAAuE;IACvE,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,mBAAmB,GAAG,IAAI,KAAK,IAAI,CAAC;CACrF;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,gBAAgB,CA4B7E"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Model tiers — the real dependencies (crewly#1173). Called once decision
3
+ * cards run: builds the service, registers the `model_tier_change` card
4
+ * handler, and starts the hourly tick.
5
+ *
6
+ * @module services/model-tiers/model-tier.wiring
7
+ */
8
+ import * as path from 'path';
9
+ import { MODEL_TIER_CONSTANTS } from '../../constants.js';
10
+ import { REDIS_CONSTANTS } from '../../../../config/constants.js';
11
+ import { RedisCacheService } from '../cache/redis-cache.service.js';
12
+ import { findPackageRoot } from '../../utils/package-root.js';
13
+ import { LoggerService } from '../core/logger.service.js';
14
+ import { StorageService } from '../core/storage.service.js';
15
+ import { DecisionService } from '../decisions/decision.service.js';
16
+ import { TokenUsageService } from '../monitoring/token-usage.service.js';
17
+ import { getSlackTeamChannelService } from '../slack/slack-team-channel.service.js';
18
+ import { TaskPoolService } from '../task-pool/task-pool.service.js';
19
+ import { ModelTierService, setModelTierService } from './model-tier.service.js';
20
+ import { ModelTierStore } from './model-tier.store.js';
21
+ /**
22
+ * Build, register and start the model-tier service.
23
+ *
24
+ * @param input - Composition-root hooks
25
+ * @returns The running service
26
+ */
27
+ export function startModelTiers(input) {
28
+ const storage = StorageService.getInstance();
29
+ const usage = TokenUsageService.getInstance();
30
+ const service = new ModelTierService({
31
+ store: ModelTierStore.inHome(input.crewlyHome),
32
+ getTeams: () => storage.getTeams(),
33
+ saveTeam: async (team) => {
34
+ await storage.saveTeam(team);
35
+ // The cached team list would show the old tiers / toggle.
36
+ await RedisCacheService.getInstance().invalidate(REDIS_CONSTANTS.KEYS.TEAMS_LIST).catch(() => undefined);
37
+ },
38
+ forEachEvent: (visit, since) => usage.forEachEvent(visit, since),
39
+ workItems: () => TaskPoolService.getInstance().getAllItems(),
40
+ decisions: () => input.decisions,
41
+ deliverToAgent: input.sendToAgent,
42
+ teamChannelOf: async (teamId) => {
43
+ const mappings = (await getSlackTeamChannelService()?.listMappings().catch(() => [])) ?? [];
44
+ return mappings.find((m) => m.teamId === teamId)?.slackChannelId ?? null;
45
+ },
46
+ // `__dirname` does not exist in the ESM build (it crashed this wiring in
47
+ // 1.20.275); the composition root passes the package root it already knows.
48
+ tlSkillsPath: path.join(input.packageRoot ?? findPackageRoot(process.cwd()), 'config', 'skills', 'team-leader'),
49
+ logger: LoggerService.getInstance().createComponentLogger('ModelTiers'),
50
+ });
51
+ setModelTierService(service);
52
+ (input.register ?? ((kind, handler) => DecisionService.registerKindHandler(kind, handler)))(MODEL_TIER_CONSTANTS.DECISION_KIND, service);
53
+ service.start();
54
+ return service;
55
+ }
56
+ //# sourceMappingURL=model-tier.wiring.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-tier.wiring.js","sourceRoot":"","sources":["../../../../../../backend/src/services/model-tiers/model-tier.wiring.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,102 @@
1
+ /**
2
+ * Quality signal for the model-tier guard (crewly#1173).
3
+ *
4
+ * After the owner moves a member to a lower tier, the guard compares how
5
+ * often the member's work is sent back (rejected by its reviewer, failed, or
6
+ * retried) over its next settled work items against the same rate before the
7
+ * change. Pure functions; the service feeds them the task pool.
8
+ *
9
+ * @module services/model-tiers/tier-quality
10
+ */
11
+ import type { WorkItem } from '../../types/v2/work-item.types.js';
12
+ /** Send-back counts over a set of settled work items. */
13
+ export interface QualityStats {
14
+ /** Settled work items counted */
15
+ settled: number;
16
+ /** Of those, sent back: rejected, failed, or retried at least once */
17
+ sentBack: number;
18
+ /** sentBack / settled, or null with nothing settled */
19
+ rate: number | null;
20
+ }
21
+ /** The guard's verdict on one lowered member. */
22
+ export type GuardVerdict = 'wait' | 'ok' | 'worse';
23
+ /** The guard thresholds (defaults from MODEL_TIER_CONSTANTS). */
24
+ export interface GuardThresholds {
25
+ minItems: number;
26
+ minBad: number;
27
+ margin: number;
28
+ }
29
+ /** Default thresholds. */
30
+ export declare const DEFAULT_GUARD_THRESHOLDS: GuardThresholds;
31
+ /**
32
+ * When a work item settled.
33
+ *
34
+ * @param wi - Work item
35
+ * @returns Epoch ms
36
+ */
37
+ export declare function settledAtMs(wi: Pick<WorkItem, 'completedAt' | 'statusChangedAt' | 'createdAt'>): number;
38
+ /**
39
+ * Whether a settled item was sent back.
40
+ *
41
+ * @param wi - Work item
42
+ * @returns True for rejected / failed / retried
43
+ */
44
+ export declare function isSentBack(wi: Pick<WorkItem, 'status' | 'retryCount'>): boolean;
45
+ /**
46
+ * The settled work items of a member, oldest first.
47
+ *
48
+ * @param items - All work items
49
+ * @param sessions - The member's session names / agent ids
50
+ * @returns Settled items targeted at the member
51
+ */
52
+ export declare function settledItemsOf(items: readonly WorkItem[], sessions: readonly string[]): WorkItem[];
53
+ /**
54
+ * Send-back counts of a list of items.
55
+ *
56
+ * @param items - Settled items
57
+ * @returns Stats
58
+ */
59
+ export declare function statsOf(items: readonly WorkItem[]): QualityStats;
60
+ /**
61
+ * Baseline before a change: the last `limit` settled items before `atMs`.
62
+ *
63
+ * @param items - All work items
64
+ * @param sessions - The member's keys
65
+ * @param atMs - When the change applied
66
+ * @param limit - How many items
67
+ * @returns Stats
68
+ */
69
+ export declare function baselineBefore(items: readonly WorkItem[], sessions: readonly string[], atMs: number, limit?: number): QualityStats;
70
+ /**
71
+ * Stats after a change: every settled item after `atMs`.
72
+ *
73
+ * @param items - All work items
74
+ * @param sessions - The member's keys
75
+ * @param atMs - When the change applied
76
+ * @returns Stats
77
+ */
78
+ export declare function statsAfter(items: readonly WorkItem[], sessions: readonly string[], atMs: number): QualityStats;
79
+ /**
80
+ * Judge a lowered member: `wait` until enough items settled; `worse` when the
81
+ * send-back rate rose by more than the margin (and enough items were sent
82
+ * back); else `ok`.
83
+ *
84
+ * @param baseline - Before the change
85
+ * @param after - Since the change
86
+ * @param t - Thresholds
87
+ * @returns Verdict
88
+ *
89
+ * @example
90
+ * ```typescript
91
+ * judgeGuard({ settled: 10, sentBack: 1, rate: 0.1 }, { settled: 5, sentBack: 3, rate: 0.6 }); // 'worse'
92
+ * ```
93
+ */
94
+ export declare function judgeGuard(baseline: QualityStats, after: QualityStats, t?: GuardThresholds): GuardVerdict;
95
+ /**
96
+ * "3 of 5 sent back" / "none settled".
97
+ *
98
+ * @param s - Stats
99
+ * @returns Short text
100
+ */
101
+ export declare function describeStats(s: QualityStats): string;
102
+ //# sourceMappingURL=tier-quality.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tier-quality.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/model-tiers/tier-quality.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAKlE,yDAAyD;AACzD,MAAM,WAAW,YAAY;IAC3B,iCAAiC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,sEAAsE;IACtE,QAAQ,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB;AAED,iDAAiD;AACjD,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC;AAEnD,iEAAiE;AACjE,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,0BAA0B;AAC1B,eAAO,MAAM,wBAAwB,EAAE,eAItC,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,aAAa,GAAG,iBAAiB,GAAG,WAAW,CAAC,GAAG,MAAM,CAEvG;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,GAAG,YAAY,CAAC,GAAG,OAAO,CAE/E;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,EAAE,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,QAAQ,EAAE,CAKlG;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,GAAG,YAAY,CAGhE;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,EAAE,QAAQ,EAAE,SAAS,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,GAAE,MAAkD,GAAG,YAAY,CAG7K;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,EAAE,QAAQ,EAAE,SAAS,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,YAAY,CAE9G;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,GAAE,eAA0C,GAAG,YAAY,CAInI;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,YAAY,GAAG,MAAM,CAErD"}
@@ -0,0 +1,116 @@
1
+ /**
2
+ * Quality signal for the model-tier guard (crewly#1173).
3
+ *
4
+ * After the owner moves a member to a lower tier, the guard compares how
5
+ * often the member's work is sent back (rejected by its reviewer, failed, or
6
+ * retried) over its next settled work items against the same rate before the
7
+ * change. Pure functions; the service feeds them the task pool.
8
+ *
9
+ * @module services/model-tiers/tier-quality
10
+ */
11
+ import { MODEL_TIER_CONSTANTS } from '../../constants.js';
12
+ /** Work-item statuses that end an item's run (judged or failed). */
13
+ const SETTLED = new Set(['done', 'verified', 'rejected', 'failed']);
14
+ /** Default thresholds. */
15
+ export const DEFAULT_GUARD_THRESHOLDS = {
16
+ minItems: MODEL_TIER_CONSTANTS.GUARD_MIN_ITEMS,
17
+ minBad: MODEL_TIER_CONSTANTS.GUARD_MIN_BAD,
18
+ margin: MODEL_TIER_CONSTANTS.GUARD_WORSE_MARGIN,
19
+ };
20
+ /**
21
+ * When a work item settled.
22
+ *
23
+ * @param wi - Work item
24
+ * @returns Epoch ms
25
+ */
26
+ export function settledAtMs(wi) {
27
+ return Date.parse(wi.completedAt ?? wi.statusChangedAt ?? wi.createdAt) || 0;
28
+ }
29
+ /**
30
+ * Whether a settled item was sent back.
31
+ *
32
+ * @param wi - Work item
33
+ * @returns True for rejected / failed / retried
34
+ */
35
+ export function isSentBack(wi) {
36
+ return wi.status === 'rejected' || wi.status === 'failed' || (wi.retryCount ?? 0) > 0;
37
+ }
38
+ /**
39
+ * The settled work items of a member, oldest first.
40
+ *
41
+ * @param items - All work items
42
+ * @param sessions - The member's session names / agent ids
43
+ * @returns Settled items targeted at the member
44
+ */
45
+ export function settledItemsOf(items, sessions) {
46
+ const keys = new Set(sessions.filter(Boolean));
47
+ return items
48
+ .filter((wi) => !!wi.target && keys.has(wi.target) && SETTLED.has(wi.status))
49
+ .sort((a, b) => settledAtMs(a) - settledAtMs(b));
50
+ }
51
+ /**
52
+ * Send-back counts of a list of items.
53
+ *
54
+ * @param items - Settled items
55
+ * @returns Stats
56
+ */
57
+ export function statsOf(items) {
58
+ const sentBack = items.filter(isSentBack).length;
59
+ return { settled: items.length, sentBack, rate: items.length ? sentBack / items.length : null };
60
+ }
61
+ /**
62
+ * Baseline before a change: the last `limit` settled items before `atMs`.
63
+ *
64
+ * @param items - All work items
65
+ * @param sessions - The member's keys
66
+ * @param atMs - When the change applied
67
+ * @param limit - How many items
68
+ * @returns Stats
69
+ */
70
+ export function baselineBefore(items, sessions, atMs, limit = MODEL_TIER_CONSTANTS.GUARD_BASELINE_ITEMS) {
71
+ const before = settledItemsOf(items, sessions).filter((wi) => settledAtMs(wi) < atMs);
72
+ return statsOf(before.slice(-limit));
73
+ }
74
+ /**
75
+ * Stats after a change: every settled item after `atMs`.
76
+ *
77
+ * @param items - All work items
78
+ * @param sessions - The member's keys
79
+ * @param atMs - When the change applied
80
+ * @returns Stats
81
+ */
82
+ export function statsAfter(items, sessions, atMs) {
83
+ return statsOf(settledItemsOf(items, sessions).filter((wi) => settledAtMs(wi) >= atMs));
84
+ }
85
+ /**
86
+ * Judge a lowered member: `wait` until enough items settled; `worse` when the
87
+ * send-back rate rose by more than the margin (and enough items were sent
88
+ * back); else `ok`.
89
+ *
90
+ * @param baseline - Before the change
91
+ * @param after - Since the change
92
+ * @param t - Thresholds
93
+ * @returns Verdict
94
+ *
95
+ * @example
96
+ * ```typescript
97
+ * judgeGuard({ settled: 10, sentBack: 1, rate: 0.1 }, { settled: 5, sentBack: 3, rate: 0.6 }); // 'worse'
98
+ * ```
99
+ */
100
+ export function judgeGuard(baseline, after, t = DEFAULT_GUARD_THRESHOLDS) {
101
+ if (after.settled < t.minItems || after.rate === null)
102
+ return 'wait';
103
+ if (after.sentBack >= t.minBad && after.rate > (baseline.rate ?? 0) + t.margin)
104
+ return 'worse';
105
+ return 'ok';
106
+ }
107
+ /**
108
+ * "3 of 5 sent back" / "none settled".
109
+ *
110
+ * @param s - Stats
111
+ * @returns Short text
112
+ */
113
+ export function describeStats(s) {
114
+ return s.settled ? `${s.sentBack} of ${s.settled} sent back` : 'none settled';
115
+ }
116
+ //# sourceMappingURL=tier-quality.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tier-quality.js","sourceRoot":"","sources":["../../../../../../backend/src/services/model-tiers/tier-quality.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAG1D,oEAAoE;AACpE,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;AAsBpE,0BAA0B;AAC1B,MAAM,CAAC,MAAM,wBAAwB,GAAoB;IACvD,QAAQ,EAAE,oBAAoB,CAAC,eAAe;IAC9C,MAAM,EAAE,oBAAoB,CAAC,aAAa;IAC1C,MAAM,EAAE,oBAAoB,CAAC,kBAAkB;CAChD,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,EAAmE;IAC7F,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,WAAW,IAAI,EAAE,CAAC,eAAe,IAAI,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAC/E,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,EAA2C;IACpE,OAAO,EAAE,CAAC,MAAM,KAAK,UAAU,IAAI,EAAE,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,EAAE,CAAC,UAAU,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACxF,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,KAA0B,EAAE,QAA2B;IACpF,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/C,OAAO,KAAK;SACT,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;SAC5E,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;AACrD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,OAAO,CAAC,KAA0B;IAChD,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;IACjD,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AAClG,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAAC,KAA0B,EAAE,QAA2B,EAAE,IAAY,EAAE,QAAgB,oBAAoB,CAAC,oBAAoB;IAC7J,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;IACtF,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACvC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,UAAU,CAAC,KAA0B,EAAE,QAA2B,EAAE,IAAY;IAC9F,OAAO,OAAO,CAAC,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;AAC1F,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,UAAU,CAAC,QAAsB,EAAE,KAAmB,EAAE,IAAqB,wBAAwB;IACnH,IAAI,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC;IACrE,IAAI,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM;QAAE,OAAO,OAAO,CAAC;IAC/F,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,CAAe;IAC3C,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,OAAO,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC;AAChF,CAAC"}