@cat-factory/integrations 0.81.12 → 0.81.14
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/modules/accountSettings/AccountSettingsService.d.ts +18 -19
- package/dist/modules/accountSettings/AccountSettingsService.d.ts.map +1 -1
- package/dist/modules/accountSettings/AccountSettingsService.js +17 -17
- package/dist/modules/accountSettings/AccountSettingsService.js.map +1 -1
- package/dist/modules/kubernetes/KubernetesRunnerTransport.d.ts.map +1 -1
- package/dist/modules/kubernetes/KubernetesRunnerTransport.js +8 -4
- package/dist/modules/kubernetes/KubernetesRunnerTransport.js.map +1 -1
- package/package.json +4 -3
|
@@ -1,18 +1,8 @@
|
|
|
1
|
-
import type { AccountSettingsRepository, Clock, SecretCipher } from '@cat-factory/kernel';
|
|
2
|
-
import type {
|
|
1
|
+
import type { AccountSettingsRepository, Clock, GroupCacheHandle, ResolvedAccountSettings, SecretCipher } from '@cat-factory/kernel';
|
|
2
|
+
import type { AccountSettingsView, ContentStorageCapability, UpdateAccountSettingsInput } from '@cat-factory/contracts';
|
|
3
3
|
/** HKDF domain tag separating the grouped account-settings secret blob from other ciphers. */
|
|
4
4
|
export declare const ACCOUNT_SETTINGS_CIPHER_INFO = "cat-factory:account-settings";
|
|
5
|
-
|
|
6
|
-
export interface ResolvedAccountSettings {
|
|
7
|
-
config: AccountSettingsConfig;
|
|
8
|
-
slackOAuth?: SlackOAuthSecret;
|
|
9
|
-
linearOAuth?: LinearOAuthSecret;
|
|
10
|
-
webSearch?: WebSearchSecret;
|
|
11
|
-
/** Non-secret content-storage config (backend selection + connection settings). */
|
|
12
|
-
contentStorage?: ContentStorageConfig;
|
|
13
|
-
/** Decrypted S3 access keys for the content-storage `s3` backend, when stored. */
|
|
14
|
-
s3Credentials?: S3CredentialsSecret;
|
|
15
|
-
}
|
|
5
|
+
export type { ResolvedAccountSettings };
|
|
16
6
|
export interface AccountSettingsServiceDependencies {
|
|
17
7
|
accountSettingsRepository: AccountSettingsRepository;
|
|
18
8
|
/** Seals the grouped secrets blob (domain tag {@link ACCOUNT_SETTINGS_CIPHER_INFO}). */
|
|
@@ -23,25 +13,34 @@ export interface AccountSettingsServiceDependencies {
|
|
|
23
13
|
* admin view so the UI only offers valid options. Omitted ⇒ storage disabled (tests).
|
|
24
14
|
*/
|
|
25
15
|
contentStorageCapability?: ContentStorageCapability;
|
|
16
|
+
/**
|
|
17
|
+
* The shared {@link AppCaches.accountSettings} slice. When wired, {@link resolve} reads
|
|
18
|
+
* the decrypted view through it and {@link write} invalidates the account's entry after
|
|
19
|
+
* the write commits — replacing the legacy homebrew TTL `Map` so a credential change is
|
|
20
|
+
* coherent across replicas. Absent ⇒ every {@link resolve} decrypts fresh (tests).
|
|
21
|
+
*/
|
|
22
|
+
settingsCache?: GroupCacheHandle<ResolvedAccountSettings>;
|
|
26
23
|
}
|
|
27
24
|
/**
|
|
28
25
|
* Owns per-account deployment settings: a non-secret `config` blob + ONE sealed secrets
|
|
29
|
-
* blob (Slack OAuth / web-search / Langfuse). {@link resolve} decrypts + caches (
|
|
30
|
-
* for runtime consumers; {@link read}/{@link
|
|
31
|
-
*
|
|
32
|
-
*
|
|
26
|
+
* blob (Slack OAuth / web-search / Langfuse). {@link resolve} decrypts + caches (through the
|
|
27
|
+
* shared {@link AppCaches.accountSettings} slice) for runtime consumers; {@link read}/{@link
|
|
28
|
+
* write} back the admin UI (secrets write-only — never returned). Writes {@link invalidate}
|
|
29
|
+
* the account's cached entry so a change takes effect immediately across replicas.
|
|
33
30
|
*/
|
|
34
31
|
export declare class AccountSettingsService {
|
|
35
32
|
private readonly repo;
|
|
36
33
|
private readonly cipher;
|
|
37
34
|
private readonly clock;
|
|
38
35
|
private readonly contentStorageCapability;
|
|
39
|
-
private readonly cache
|
|
36
|
+
private readonly cache?;
|
|
40
37
|
constructor(deps: AccountSettingsServiceDependencies);
|
|
41
38
|
/** The resolved (decrypted) settings for an account, cache-first. Defaults when no row. */
|
|
42
39
|
resolve(accountId: string): Promise<ResolvedAccountSettings>;
|
|
40
|
+
/** Load + decrypt an account's resolved settings from the repository (the cache miss path). */
|
|
41
|
+
private load;
|
|
43
42
|
/** Drop an account's cached settings (after a write, so the change is seen at once). */
|
|
44
|
-
invalidate(accountId: string): void
|
|
43
|
+
invalidate(accountId: string): Promise<void>;
|
|
45
44
|
/** Admin read: config + non-secret summary + runtime capability; NEVER returns secrets. */
|
|
46
45
|
read(accountId: string): Promise<AccountSettingsView>;
|
|
47
46
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccountSettingsService.d.ts","sourceRoot":"","sources":["../../../src/modules/accountSettings/AccountSettingsService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"AccountSettingsService.d.ts","sourceRoot":"","sources":["../../../src/modules/accountSettings/AccountSettingsService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,yBAAyB,EACzB,KAAK,EACL,gBAAgB,EAChB,uBAAuB,EACvB,YAAY,EACb,MAAM,qBAAqB,CAAA;AAE5B,OAAO,KAAK,EAIV,mBAAmB,EACnB,wBAAwB,EACxB,0BAA0B,EAC3B,MAAM,wBAAwB,CAAA;AAe/B,8FAA8F;AAC9F,eAAO,MAAM,4BAA4B,iCAAiC,CAAA;AAK1E,YAAY,EAAE,uBAAuB,EAAE,CAAA;AAEvC,MAAM,WAAW,kCAAkC;IACjD,yBAAyB,EAAE,yBAAyB,CAAA;IACpD,wFAAwF;IACxF,YAAY,EAAE,YAAY,CAAA;IAC1B,KAAK,EAAE,KAAK,CAAA;IACZ;;;OAGG;IACH,wBAAwB,CAAC,EAAE,wBAAwB,CAAA;IACnD;;;;;OAKG;IACH,aAAa,CAAC,EAAE,gBAAgB,CAAC,uBAAuB,CAAC,CAAA;CAC1D;AAED;;;;;;GAMG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA2B;IAChD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IACrC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAO;IAC7B,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAA0B;IACnE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAA2C;IAElE,YAAY,IAAI,EAAE,kCAAkC,EAOnD;IAED,2FAA2F;IACrF,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAKjE;IAED,+FAA+F;YACjF,IAAI;IAclB,wFAAwF;IAClF,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEjD;IAED,2FAA2F;IACrF,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAc1D;IAED;;;;OAIG;IACG,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,0BAA0B,GAAG,OAAO,CAAC,mBAAmB,CAAC,CA8C9F;IAED,sFAAsF;YACxE,cAAc;IAW5B,mFAAmF;YACrE,WAAW;CAO1B"}
|
|
@@ -8,38 +8,40 @@ const DISABLED_CONTENT_STORAGE_CAPABILITY = {
|
|
|
8
8
|
};
|
|
9
9
|
/** HKDF domain tag separating the grouped account-settings secret blob from other ciphers. */
|
|
10
10
|
export const ACCOUNT_SETTINGS_CIPHER_INFO = 'cat-factory:account-settings';
|
|
11
|
-
/** How long a resolved account-settings entry is cached before reloading (ms). */
|
|
12
|
-
const CACHE_TTL_MS = 30_000;
|
|
13
11
|
/**
|
|
14
12
|
* Owns per-account deployment settings: a non-secret `config` blob + ONE sealed secrets
|
|
15
|
-
* blob (Slack OAuth / web-search / Langfuse). {@link resolve} decrypts + caches (
|
|
16
|
-
* for runtime consumers; {@link read}/{@link
|
|
17
|
-
*
|
|
18
|
-
*
|
|
13
|
+
* blob (Slack OAuth / web-search / Langfuse). {@link resolve} decrypts + caches (through the
|
|
14
|
+
* shared {@link AppCaches.accountSettings} slice) for runtime consumers; {@link read}/{@link
|
|
15
|
+
* write} back the admin UI (secrets write-only — never returned). Writes {@link invalidate}
|
|
16
|
+
* the account's cached entry so a change takes effect immediately across replicas.
|
|
19
17
|
*/
|
|
20
18
|
export class AccountSettingsService {
|
|
21
19
|
repo;
|
|
22
20
|
cipher;
|
|
23
21
|
clock;
|
|
24
22
|
contentStorageCapability;
|
|
25
|
-
cache
|
|
23
|
+
cache;
|
|
26
24
|
constructor(deps) {
|
|
27
25
|
this.repo = deps.accountSettingsRepository;
|
|
28
26
|
this.cipher = deps.secretCipher;
|
|
29
27
|
this.clock = deps.clock;
|
|
30
28
|
this.contentStorageCapability =
|
|
31
29
|
deps.contentStorageCapability ?? DISABLED_CONTENT_STORAGE_CAPABILITY;
|
|
30
|
+
this.cache = deps.settingsCache;
|
|
32
31
|
}
|
|
33
32
|
/** The resolved (decrypted) settings for an account, cache-first. Defaults when no row. */
|
|
34
33
|
async resolve(accountId) {
|
|
35
|
-
const
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
34
|
+
const load = () => this.load(accountId);
|
|
35
|
+
// Group == key == account id (one entry per group). The slice keeps the decrypted value
|
|
36
|
+
// in-process only — the invalidation bus carries keys, never plaintext secrets.
|
|
37
|
+
return this.cache ? this.cache.get(accountId, accountId, load) : load();
|
|
38
|
+
}
|
|
39
|
+
/** Load + decrypt an account's resolved settings from the repository (the cache miss path). */
|
|
40
|
+
async load(accountId) {
|
|
39
41
|
const record = await this.repo.getByAccount(accountId);
|
|
40
42
|
const config = record ? parseConfig(record.config) : DEFAULT_ACCOUNT_SETTINGS_CONFIG;
|
|
41
43
|
const secrets = record?.secretsCipher ? await this.openSecrets(record.secretsCipher) : {};
|
|
42
|
-
|
|
44
|
+
return {
|
|
43
45
|
config,
|
|
44
46
|
...(secrets.slackOAuth ? { slackOAuth: secrets.slackOAuth } : {}),
|
|
45
47
|
...(secrets.linearOAuth ? { linearOAuth: secrets.linearOAuth } : {}),
|
|
@@ -47,12 +49,10 @@ export class AccountSettingsService {
|
|
|
47
49
|
...(config.contentStorage ? { contentStorage: config.contentStorage } : {}),
|
|
48
50
|
...(secrets.s3 ? { s3Credentials: secrets.s3 } : {}),
|
|
49
51
|
};
|
|
50
|
-
this.cache.set(accountId, { value, expiresAt: now + CACHE_TTL_MS });
|
|
51
|
-
return value;
|
|
52
52
|
}
|
|
53
53
|
/** Drop an account's cached settings (after a write, so the change is seen at once). */
|
|
54
|
-
invalidate(accountId) {
|
|
55
|
-
this.cache
|
|
54
|
+
async invalidate(accountId) {
|
|
55
|
+
await this.cache?.invalidate(accountId, accountId);
|
|
56
56
|
}
|
|
57
57
|
/** Admin read: config + non-secret summary + runtime capability; NEVER returns secrets. */
|
|
58
58
|
async read(accountId) {
|
|
@@ -120,7 +120,7 @@ export class AccountSettingsService {
|
|
|
120
120
|
createdAt: existing?.createdAt ?? now,
|
|
121
121
|
updatedAt: now,
|
|
122
122
|
});
|
|
123
|
-
this.invalidate(accountId);
|
|
123
|
+
await this.invalidate(accountId);
|
|
124
124
|
return { config, summary, contentStorageCapability: this.contentStorageCapability };
|
|
125
125
|
}
|
|
126
126
|
/** Decrypt + parse the sealed secrets blob. Throws when it can't be opened/parsed. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccountSettingsService.js","sourceRoot":"","sources":["../../../src/modules/accountSettings/AccountSettingsService.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AccountSettingsService.js","sourceRoot":"","sources":["../../../src/modules/accountSettings/AccountSettingsService.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KubernetesRunnerTransport.d.ts","sourceRoot":"","sources":["../../../src/modules/kubernetes/KubernetesRunnerTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,oBAAoB,EAEzB,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAEL,KAAK,uBAAuB,EAE7B,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"KubernetesRunnerTransport.d.ts","sourceRoot":"","sources":["../../../src/modules/kubernetes/KubernetesRunnerTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,oBAAoB,EAEzB,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAEL,KAAK,uBAAuB,EAE7B,MAAM,0BAA0B,CAAA;AA+CjC,qBAAa,yBAA0B,YAAW,eAAe;IAM7D,OAAO,CAAC,QAAQ,CAAC,MAAM;IALzB,sFAAsF;IACtF,QAAQ,CAAC,OAAO,iBAAgB;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAE5C,YACmB,MAAM,EAAE,sBAAsB,EAC/C,aAAa,EAAE,cAAc;IAC7B;;;;OAIG;IACH,aAAa,CAAC,EAAE,uBAAuB,EAQxC;IAEK,QAAQ,CACZ,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,IAAI,GAAE,kBAA4B,EAClC,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,IAAI,CAAC,CAcf;IAEK,IAAI,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC,CAoBpD;IAED,qEAAqE;IAC/D,OAAO,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAmB9C;IAED,mFAAmF;IAC7E,cAAc,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAwBpD;YAIa,SAAS;YAaT,eAAe;IA+C7B,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,QAAQ;CAQjB"}
|
|
@@ -14,8 +14,11 @@ import { analyzePodStatus, apiBase, apiServerConnectionFailureMessage, buildPodM
|
|
|
14
14
|
// needing RBAC `create/get/delete` on `pods` and `create/get` on `pods/proxy` in
|
|
15
15
|
// the namespace. The pod itself has no Service, so its harness is reachable only
|
|
16
16
|
// via the RBAC-gated proxy — no inbound harness shared secret is required.
|
|
17
|
-
// The eviction marker the engine classifies (job.logic `isContainerEvictionError`):
|
|
18
|
-
//
|
|
17
|
+
// The eviction marker the engine classifies (job.logic `isContainerEvictionError`): a 404 from
|
|
18
|
+
// the proxy means the pod vanished (deleted/crashed/evicted). A poll returns it alongside the
|
|
19
|
+
// structured `RunnerJobView.evicted: 'crash'` field (the primary signal); this string stays the
|
|
20
|
+
// fallback older consumers match, and it is ALSO the readiness-throw marker in `waitForPodReady`
|
|
21
|
+
// below (a dispatch-time throw carries no view, so it rides the string channel only).
|
|
19
22
|
const EVICTION_ERROR = 'Job not found (container evicted or crashed)';
|
|
20
23
|
const DISPATCH_TIMEOUT_MS = 30_000;
|
|
21
24
|
const POLL_TIMEOUT_MS = 30_000;
|
|
@@ -64,8 +67,9 @@ export class KubernetesRunnerTransport {
|
|
|
64
67
|
if (res.status === 404) {
|
|
65
68
|
// The pod-proxy 404s when the pod is gone (deleted/crashed/evicted) — the
|
|
66
69
|
// harness keeps a finished job's view, so a 404 is the pod vanishing, not a
|
|
67
|
-
// forgotten job. Report it as the eviction the engine recovers from
|
|
68
|
-
|
|
70
|
+
// forgotten job. Report it as the eviction the engine recovers from — the structured
|
|
71
|
+
// `evicted: 'crash'` field is the primary signal; the string suffix is the fallback.
|
|
72
|
+
return { state: 'failed', error: EVICTION_ERROR, evicted: 'crash' };
|
|
69
73
|
}
|
|
70
74
|
if (!res.ok) {
|
|
71
75
|
throw new Error(`Container job poll failed (HTTP ${res.status}): ${await safeText(res)}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KubernetesRunnerTransport.js","sourceRoot":"","sources":["../../../src/modules/kubernetes/KubernetesRunnerTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,oBAAoB,GAQrB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,mBAAmB,EAEnB,QAAQ,GACT,MAAM,0BAA0B,CAAA;AACjC,OAAO,EACL,gBAAgB,EAChB,OAAO,EACP,iCAAiC,EACjC,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,OAAO,EACP,MAAM,EACN,OAAO,EACP,QAAQ,GACT,MAAM,uBAAuB,CAAA;AAE9B,+EAA+E;AAC/E,iFAAiF;AACjF,mFAAmF;AACnF,+EAA+E;AAC/E,4EAA4E;AAC5E,kFAAkF;AAClF,+EAA+E;AAC/E,uCAAuC;AACvC,EAAE;AACF,kFAAkF;AAClF,iFAAiF;AACjF,iFAAiF;AACjF,2EAA2E;AAE3E,
|
|
1
|
+
{"version":3,"file":"KubernetesRunnerTransport.js","sourceRoot":"","sources":["../../../src/modules/kubernetes/KubernetesRunnerTransport.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cat-factory/integrations",
|
|
3
|
-
"version": "0.81.
|
|
3
|
+
"version": "0.81.14",
|
|
4
4
|
"description": "External-system integration domain logic for the Agent Architecture Board (GitHub, documents, tasks, environments, runners).",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -27,13 +27,14 @@
|
|
|
27
27
|
"ai": "^6.0.224",
|
|
28
28
|
"yaml": "^2.9.0",
|
|
29
29
|
"@cat-factory/contracts": "0.127.1",
|
|
30
|
-
"@cat-factory/kernel": "0.121.
|
|
30
|
+
"@cat-factory/kernel": "0.121.8"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
33
|
"typescript": "7.0.2",
|
|
34
34
|
"undici": "^8.7.0",
|
|
35
35
|
"valibot": "^1.4.2",
|
|
36
|
-
"vitest": "^4.1.10"
|
|
36
|
+
"vitest": "^4.1.10",
|
|
37
|
+
"@cat-factory/caching": "0.6.41"
|
|
37
38
|
},
|
|
38
39
|
"scripts": {
|
|
39
40
|
"build": "tsc -b tsconfig.build.json",
|