@cat-factory/worker 0.156.0 → 0.158.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.
@@ -1 +1 @@
1
- {"version":3,"file":"retention.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/config/retention.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAA;AAGjC,YAAY,EAAE,eAAe,EAAE,CAAA;AAE/B,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,GAAG,GAAG,eAAe,CA2C7D"}
1
+ {"version":3,"file":"retention.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/config/retention.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAA;AAGjC,YAAY,EAAE,eAAe,EAAE,CAAA;AAE/B,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,GAAG,GAAG,eAAe,CA8C7D"}
@@ -7,9 +7,12 @@ export function loadRetentionConfig(env) {
7
7
  rateLimitMs: retentionMs('GITHUB_RATE_LIMIT_RETENTION_DAYS', env.GITHUB_RATE_LIMIT_RETENTION_DAYS, 7),
8
8
  // Caps the commits projection and bounds the initial backfill to the same age.
9
9
  commitMs: retentionMs('GITHUB_COMMIT_RETENTION_DAYS', env.GITHUB_COMMIT_RETENTION_DAYS, 90),
10
- // Heavy (full per-call prompt/response) and only useful for recent debugging,
11
- // so pruned aggressively default 3 days.
12
- llmCallMetricsMs: retentionMs('LLM_CALL_METRICS_RETENTION_DAYS', env.LLM_CALL_METRICS_RETENTION_DAYS, 3),
10
+ // Heavy (full per-call prompt/response), so the window trades disk against how far back a
11
+ // post-mortem can reach: default 14 days, matching the Node facade. The 3 days it replaced
12
+ // expired the record before most investigations start; a post-mortem that cannot read the
13
+ // calls it is about is the same as no telemetry at all. Set it back to 3 to restore the old
14
+ // footprint on a deployment that also stores bodies.
15
+ llmCallMetricsMs: retentionMs('LLM_CALL_METRICS_RETENTION_DAYS', env.LLM_CALL_METRICS_RETENTION_DAYS, 14),
13
16
  // High-churn provisioning event log (separate D1 db); aggressive default of 14 days.
14
17
  provisioningLogMs: retentionMs('PROVISIONING_LOG_RETENTION_DAYS', env.PROVISIONING_LOG_RETENTION_DAYS, 14),
15
18
  // Resolved (acted/dismissed) notifications; generous default of 90 days so the
@@ -1 +1 @@
1
- {"version":3,"file":"retention.js","sourceRoot":"","sources":["../../../src/infrastructure/config/retention.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAIrC,MAAM,UAAU,mBAAmB,CAAC,GAAQ;IAC1C,OAAO;QACL,8EAA8E;QAC9E,YAAY,EAAE,WAAW,CAAC,4BAA4B,EAAE,GAAG,CAAC,0BAA0B,EAAE,GAAG,CAAC;QAC5F,8EAA8E;QAC9E,WAAW,EAAE,WAAW,CACtB,kCAAkC,EAClC,GAAG,CAAC,gCAAgC,EACpC,CAAC,CACF;QACD,+EAA+E;QAC/E,QAAQ,EAAE,WAAW,CAAC,8BAA8B,EAAE,GAAG,CAAC,4BAA4B,EAAE,EAAE,CAAC;QAC3F,8EAA8E;QAC9E,2CAA2C;QAC3C,gBAAgB,EAAE,WAAW,CAC3B,iCAAiC,EACjC,GAAG,CAAC,+BAA+B,EACnC,CAAC,CACF;QACD,qFAAqF;QACrF,iBAAiB,EAAE,WAAW,CAC5B,iCAAiC,EACjC,GAAG,CAAC,+BAA+B,EACnC,EAAE,CACH;QACD,+EAA+E;QAC/E,gEAAgE;QAChE,eAAe,EAAE,WAAW,CAC1B,6BAA6B,EAC7B,GAAG,CAAC,2BAA2B,EAC/B,EAAE,CACH;QACD,uFAAuF;QACvF,8EAA8E;QAC9E,cAAc,EAAE,WAAW,CAAC,6BAA6B,EAAE,GAAG,CAAC,2BAA2B,EAAE,EAAE,CAAC;QAC/F,wFAAwF;QACxF,yFAAyF;QACzF,SAAS,EAAE,WAAW,CACpB,iCAAiC,EACjC,GAAG,CAAC,+BAA+B,EACnC,GAAG,CACJ;KACF,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"retention.js","sourceRoot":"","sources":["../../../src/infrastructure/config/retention.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAIrC,MAAM,UAAU,mBAAmB,CAAC,GAAQ;IAC1C,OAAO;QACL,8EAA8E;QAC9E,YAAY,EAAE,WAAW,CAAC,4BAA4B,EAAE,GAAG,CAAC,0BAA0B,EAAE,GAAG,CAAC;QAC5F,8EAA8E;QAC9E,WAAW,EAAE,WAAW,CACtB,kCAAkC,EAClC,GAAG,CAAC,gCAAgC,EACpC,CAAC,CACF;QACD,+EAA+E;QAC/E,QAAQ,EAAE,WAAW,CAAC,8BAA8B,EAAE,GAAG,CAAC,4BAA4B,EAAE,EAAE,CAAC;QAC3F,0FAA0F;QAC1F,2FAA2F;QAC3F,0FAA0F;QAC1F,4FAA4F;QAC5F,qDAAqD;QACrD,gBAAgB,EAAE,WAAW,CAC3B,iCAAiC,EACjC,GAAG,CAAC,+BAA+B,EACnC,EAAE,CACH;QACD,qFAAqF;QACrF,iBAAiB,EAAE,WAAW,CAC5B,iCAAiC,EACjC,GAAG,CAAC,+BAA+B,EACnC,EAAE,CACH;QACD,+EAA+E;QAC/E,gEAAgE;QAChE,eAAe,EAAE,WAAW,CAC1B,6BAA6B,EAC7B,GAAG,CAAC,2BAA2B,EAC/B,EAAE,CACH;QACD,uFAAuF;QACvF,8EAA8E;QAC9E,cAAc,EAAE,WAAW,CAAC,6BAA6B,EAAE,GAAG,CAAC,2BAA2B,EAAE,EAAE,CAAC;QAC/F,wFAAwF;QACxF,yFAAyF;QACzF,SAAS,EAAE,WAAW,CACpB,iCAAiC,EACjC,GAAG,CAAC,+BAA+B,EACnC,GAAG,CACJ;KACF,CAAA;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"D1RiskPolicyRepository.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1RiskPolicyRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC/D,OAAO,KAAK,EAGV,UAAU,EAIX,MAAM,wBAAwB,CAAA;AAC/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AA4D3D;;;;;GAKG;AACH,qBAAa,sBAAuB,YAAW,oBAAoB;IACjE,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAY;IAE/B,YAAY,EAAE,EAAE,EAAE,EAAE;QAAE,EAAE,EAAE,UAAU,CAAA;KAAE,EAErC;IAEK,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAMrE;IAEK,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAQrD;IAEK,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAUhE;IAEK,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAuEnE;IAEK,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAO3D;CACF"}
1
+ {"version":3,"file":"D1RiskPolicyRepository.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1RiskPolicyRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC/D,OAAO,KAAK,EAGV,UAAU,EAKX,MAAM,wBAAwB,CAAA;AAC/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AAkE3D;;;;;GAKG;AACH,qBAAa,sBAAuB,YAAW,oBAAoB;IACjE,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAY;IAE/B,YAAY,EAAE,EAAE,EAAE,EAAE;QAAE,EAAE,EAAE,UAAU,CAAA;KAAE,EAErC;IAEK,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAMrE;IAEK,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAQrD;IAEK,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAUhE;IAEK,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAyEnE;IAEK,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAO3D;CACF"}
@@ -25,6 +25,11 @@ function rowToPreset(row) {
25
25
  ? JSON.parse(row.class_rules_by_role)
26
26
  : {},
27
27
  dryRunRoles: row.dry_run_roles ? JSON.parse(row.dry_run_roles) : [],
28
+ // Same defensive read again, and the same identity: `{}` scopes no role, so a preset that
29
+ // predates the allowlist lands exactly what it always did.
30
+ submissionClassesByRole: row.submission_classes_by_role
31
+ ? JSON.parse(row.submission_classes_by_role)
32
+ : {},
28
33
  isDefault: row.is_default === 1,
29
34
  ...(row.version != null ? { version: row.version } : {}),
30
35
  createdAt: row.created_at,
@@ -82,8 +87,8 @@ export class D1RiskPolicyRepository {
82
87
  release_watch_window_minutes, release_max_attempts, human_review_grace_minutes,
83
88
  judge_min_score, judge_max_bounces,
84
89
  auto_merge_enabled, fork_decision, class_rules, class_rules_by_role, dry_run_roles,
85
- version, is_default, created_at)
86
- VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
90
+ submission_classes_by_role, version, is_default, created_at)
91
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
87
92
  ON CONFLICT (workspace_id, id) DO UPDATE SET
88
93
  name = excluded.name,
89
94
  max_complexity = excluded.max_complexity,
@@ -103,9 +108,10 @@ export class D1RiskPolicyRepository {
103
108
  class_rules = excluded.class_rules,
104
109
  class_rules_by_role = excluded.class_rules_by_role,
105
110
  dry_run_roles = excluded.dry_run_roles,
111
+ submission_classes_by_role = excluded.submission_classes_by_role,
106
112
  version = excluded.version,
107
113
  is_default = excluded.is_default`)
108
- .bind(workspaceId, preset.id, preset.name, preset.maxComplexity, preset.maxRisk, preset.maxImpact, preset.ciMaxAttempts, preset.maxRequirementIterations, preset.maxRequirementConcernAllowed, preset.maxTesterQualityIterations, preset.releaseWatchWindowMinutes, preset.releaseMaxAttempts, preset.humanReviewGraceMinutes, preset.judgeMinScore, preset.judgeMaxBounces, preset.autoMergeEnabled ? 1 : 0, preset.forkDecision ? JSON.stringify(preset.forkDecision) : null, JSON.stringify(preset.classRules ?? {}), JSON.stringify(preset.classRulesByRole ?? {}), JSON.stringify(preset.dryRunRoles ?? []), preset.version ?? null, preset.isDefault ? 1 : 0, preset.createdAt)
114
+ .bind(workspaceId, preset.id, preset.name, preset.maxComplexity, preset.maxRisk, preset.maxImpact, preset.ciMaxAttempts, preset.maxRequirementIterations, preset.maxRequirementConcernAllowed, preset.maxTesterQualityIterations, preset.releaseWatchWindowMinutes, preset.releaseMaxAttempts, preset.humanReviewGraceMinutes, preset.judgeMinScore, preset.judgeMaxBounces, preset.autoMergeEnabled ? 1 : 0, preset.forkDecision ? JSON.stringify(preset.forkDecision) : null, JSON.stringify(preset.classRules ?? {}), JSON.stringify(preset.classRulesByRole ?? {}), JSON.stringify(preset.dryRunRoles ?? []), JSON.stringify(preset.submissionClassesByRole ?? {}), preset.version ?? null, preset.isDefault ? 1 : 0, preset.createdAt)
109
115
  .run();
110
116
  }
111
117
  async remove(workspaceId, id) {
@@ -1 +1 @@
1
- {"version":3,"file":"D1RiskPolicyRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1RiskPolicyRepository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"D1RiskPolicyRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1RiskPolicyRepository.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ -- Per-role SUBMISSION ALLOWLIST on the merge preset.
2
+ --
3
+ -- `submission_classes_by_role` is a JSON partial map from workspace role (`admin` | `member` |
4
+ -- `viewer`) to the list of change classes that role's runs may LAND at all. It sits above the
5
+ -- per-class rules rather than beside them: a class may be `always` under `class_rules_by_role`
6
+ -- and still outside the role's allowlist, and the allowlist wins, because it bars landing where
7
+ -- a class rule only decides how much review landing takes.
8
+ --
9
+ -- An ABSENT role entry means unrestricted (not empty), so the `{}` default leaves every
10
+ -- existing row on exactly its previous behaviour: nobody is scoped. An EMPTY array is a real and
11
+ -- different policy (that role lands nothing). Mirrored on Node by the `submission_classes_by_role`
12
+ -- text column on the Drizzle `merge_threshold_presets` table.
13
+ ALTER TABLE merge_threshold_presets ADD COLUMN submission_classes_by_role TEXT NOT NULL DEFAULT '{}';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cat-factory/worker",
3
- "version": "0.156.0",
3
+ "version": "0.158.0",
4
4
  "description": "Reusable Cloudflare Worker library (Hono + D1) exposing the Agent Architecture Board core: the `createApp()` Hono factory, the default fetch/scheduled/queue handler, and the Durable Object + Workflow classes. Deployments (see deploy/backend) supply the wrangler.toml + config and re-export these.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -42,22 +42,22 @@
42
42
  "pino": "^10.3.1",
43
43
  "valibot": "^1.4.2",
44
44
  "workers-ai-provider": "^4.0.0",
45
- "@cat-factory/agents": "0.112.4",
46
- "@cat-factory/caching": "0.14.24",
47
- "@cat-factory/consensus": "0.14.24",
48
- "@cat-factory/contracts": "0.243.0",
49
- "@cat-factory/eks": "0.1.234",
50
- "@cat-factory/gates": "0.9.3",
51
- "@cat-factory/gitlab": "0.15.39",
52
- "@cat-factory/integrations": "0.130.0",
53
- "@cat-factory/kernel": "0.242.0",
54
- "@cat-factory/observability-langfuse": "0.10.8",
55
- "@cat-factory/observability-otel": "0.13.0",
56
- "@cat-factory/orchestration": "0.210.0",
57
- "@cat-factory/prompt-fragments": "0.15.69",
58
- "@cat-factory/provider-cloudflare": "0.7.386",
59
- "@cat-factory/server": "0.222.0",
60
- "@cat-factory/spend": "0.15.6"
45
+ "@cat-factory/agents": "0.112.6",
46
+ "@cat-factory/contracts": "0.245.0",
47
+ "@cat-factory/caching": "0.14.26",
48
+ "@cat-factory/eks": "0.1.236",
49
+ "@cat-factory/consensus": "0.14.26",
50
+ "@cat-factory/gates": "0.9.5",
51
+ "@cat-factory/gitlab": "0.15.41",
52
+ "@cat-factory/integrations": "0.130.2",
53
+ "@cat-factory/kernel": "0.243.1",
54
+ "@cat-factory/observability-langfuse": "0.10.10",
55
+ "@cat-factory/observability-otel": "0.13.2",
56
+ "@cat-factory/orchestration": "0.212.0",
57
+ "@cat-factory/prompt-fragments": "0.15.71",
58
+ "@cat-factory/provider-cloudflare": "0.7.388",
59
+ "@cat-factory/server": "0.222.2",
60
+ "@cat-factory/spend": "0.15.8"
61
61
  },
62
62
  "devDependencies": {
63
63
  "@cloudflare/vitest-pool-workers": "^0.20.1",
@@ -65,7 +65,7 @@
65
65
  "typescript": "7.0.2",
66
66
  "vitest": "^4.1.10",
67
67
  "wrangler": "^4.118.0",
68
- "@cat-factory/conformance": "0.30.2"
68
+ "@cat-factory/conformance": "0.30.4"
69
69
  },
70
70
  "scripts": {
71
71
  "build": "tsc -b tsconfig.build.json",
@@ -8,7 +8,7 @@
8
8
  -- token-burn instrumentation needs (docs/initiatives/token-burn-instrumentation.md).
9
9
  --
10
10
  -- The old column is DROPPED rather than dual-read: backwards compatibility is a non-goal, and
11
- -- this table is pruned to LLM_CALL_METRICS_RETENTION_DAYS (3 by default), so the rows whose
11
+ -- this table is pruned to LLM_CALL_METRICS_RETENTION_DAYS, so the rows whose
12
12
  -- `prompt_tokens` still carries the old inclusive semantics churn out within the window. No
13
13
  -- backfill is attempted for the same reason — and because the split genuinely cannot be
14
14
  -- recovered from one summed number.
@@ -13,8 +13,8 @@
13
13
  -- has no job-scoped counter at all. A 0 there would read as "the first turn" and quietly sort
14
14
  -- every proxied call to the front of its phase.
15
15
  --
16
- -- No backfill and no index: this table is pruned to LLM_CALL_METRICS_RETENTION_DAYS (3 by
17
- -- default), so pre-axis rows churn out within the window, and the per-execution rollup already
16
+ -- No backfill and no index: this table is pruned to LLM_CALL_METRICS_RETENTION_DAYS, so
17
+ -- pre-axis rows churn out within the window, and the per-execution rollup already
18
18
  -- rides idx_llm_call_metrics_execution.
19
19
  ALTER TABLE llm_call_metrics ADD COLUMN phase TEXT NOT NULL DEFAULT '';
20
20
  ALTER TABLE llm_call_metrics ADD COLUMN turn_index INTEGER;