@cat-factory/integrations 0.26.4 → 0.27.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,5 +1,5 @@
1
1
  import type { AccountSettingsRepository, Clock, SecretCipher } from '@cat-factory/kernel';
2
- import type { AccountSettingsConfig, AccountSettingsView, SlackOAuthSecret, UpdateAccountSettingsInput, WebSearchSecret } from '@cat-factory/contracts';
2
+ import type { AccountSettingsConfig, AccountSettingsView, ContentStorageCapability, ContentStorageConfig, S3CredentialsSecret, SlackOAuthSecret, UpdateAccountSettingsInput, WebSearchSecret } 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
5
  /** A fully-resolved (decrypted) view of an account's settings, for runtime consumers. */
@@ -7,12 +7,21 @@ export interface ResolvedAccountSettings {
7
7
  config: AccountSettingsConfig;
8
8
  slackOAuth?: SlackOAuthSecret;
9
9
  webSearch?: WebSearchSecret;
10
+ /** Non-secret content-storage config (backend selection + connection settings). */
11
+ contentStorage?: ContentStorageConfig;
12
+ /** Decrypted S3 access keys for the content-storage `s3` backend, when stored. */
13
+ s3Credentials?: S3CredentialsSecret;
10
14
  }
11
15
  export interface AccountSettingsServiceDependencies {
12
16
  accountSettingsRepository: AccountSettingsRepository;
13
17
  /** Seals the grouped secrets blob (domain tag {@link ACCOUNT_SETTINGS_CIPHER_INFO}). */
14
18
  secretCipher: SecretCipher;
15
19
  clock: Clock;
20
+ /**
21
+ * Which content-storage backends THIS runtime can serve + its default. Surfaced in the
22
+ * admin view so the UI only offers valid options. Omitted ⇒ storage disabled (tests).
23
+ */
24
+ contentStorageCapability?: ContentStorageCapability;
16
25
  }
17
26
  /**
18
27
  * Owns per-account deployment settings: a non-secret `config` blob + ONE sealed secrets
@@ -25,13 +34,14 @@ export declare class AccountSettingsService {
25
34
  private readonly repo;
26
35
  private readonly cipher;
27
36
  private readonly clock;
37
+ private readonly contentStorageCapability;
28
38
  private readonly cache;
29
39
  constructor(deps: AccountSettingsServiceDependencies);
30
40
  /** The resolved (decrypted) settings for an account, cache-first. Defaults when no row. */
31
41
  resolve(accountId: string): Promise<ResolvedAccountSettings>;
32
42
  /** Drop an account's cached settings (after a write, so the change is seen at once). */
33
43
  invalidate(accountId: string): void;
34
- /** Admin read: config + non-secret summary; NEVER decrypts/returns the secrets. */
44
+ /** Admin read: config + non-secret summary + runtime capability; NEVER returns secrets. */
35
45
  read(accountId: string): Promise<AccountSettingsView>;
36
46
  /**
37
47
  * Admin write. `config` (when present) fully replaces the non-secret config. Each
@@ -1 +1 @@
1
- {"version":3,"file":"AccountSettingsService.d.ts","sourceRoot":"","sources":["../../../src/modules/accountSettings/AccountSettingsService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAEzF,OAAO,KAAK,EACV,qBAAqB,EAGrB,mBAAmB,EACnB,gBAAgB,EAChB,0BAA0B,EAC1B,eAAe,EAChB,MAAM,wBAAwB,CAAA;AAQ/B,8FAA8F;AAC9F,eAAO,MAAM,4BAA4B,iCAAiC,CAAA;AAK1E,yFAAyF;AACzF,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,qBAAqB,CAAA;IAC7B,UAAU,CAAC,EAAE,gBAAgB,CAAA;IAC7B,SAAS,CAAC,EAAE,eAAe,CAAA;CAC5B;AAED,MAAM,WAAW,kCAAkC;IACjD,yBAAyB,EAAE,yBAAyB,CAAA;IACpD,wFAAwF;IACxF,YAAY,EAAE,YAAY,CAAA;IAC1B,KAAK,EAAE,KAAK,CAAA;CACb;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,KAAK,CAA2E;IAEjG,YAAY,IAAI,EAAE,kCAAkC,EAInD;IAED,2FAA2F;IACrF,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAcjE;IAED,wFAAwF;IACxF,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAElC;IAED,mFAAmF;IAC7E,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAS1D;IAED;;;;OAIG;IACG,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,0BAA0B,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAkC9F;IAED,sFAAsF;YACxE,cAAc;IAW5B,mFAAmF;YACrE,WAAW;CAO1B"}
1
+ {"version":3,"file":"AccountSettingsService.d.ts","sourceRoot":"","sources":["../../../src/modules/accountSettings/AccountSettingsService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAEzF,OAAO,KAAK,EACV,qBAAqB,EAGrB,mBAAmB,EACnB,wBAAwB,EACxB,oBAAoB,EACpB,mBAAmB,EACnB,gBAAgB,EAChB,0BAA0B,EAC1B,eAAe,EAChB,MAAM,wBAAwB,CAAA;AAc/B,8FAA8F;AAC9F,eAAO,MAAM,4BAA4B,iCAAiC,CAAA;AAK1E,yFAAyF;AACzF,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,qBAAqB,CAAA;IAC7B,UAAU,CAAC,EAAE,gBAAgB,CAAA;IAC7B,SAAS,CAAC,EAAE,eAAe,CAAA;IAC3B,mFAAmF;IACnF,cAAc,CAAC,EAAE,oBAAoB,CAAA;IACrC,kFAAkF;IAClF,aAAa,CAAC,EAAE,mBAAmB,CAAA;CACpC;AAED,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;CACpD;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,CAA2E;IAEjG,YAAY,IAAI,EAAE,kCAAkC,EAMnD;IAED,2FAA2F;IACrF,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAgBjE;IAED,wFAAwF;IACxF,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAElC;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,CAkC9F;IAED,sFAAsF;YACxE,cAAc;IAW5B,mFAAmF;YACrE,WAAW;CAO1B"}
@@ -1,5 +1,10 @@
1
1
  import { ConflictError } from '@cat-factory/kernel';
2
2
  import { DEFAULT_ACCOUNT_SETTINGS_CONFIG, accountSettingsSummary, parseAccountSettingsConfig, parseAccountSettingsSecrets, } from '@cat-factory/contracts';
3
+ /** Capability used when a facade doesn't supply one (storage disabled — e.g. in tests). */
4
+ const DISABLED_CONTENT_STORAGE_CAPABILITY = {
5
+ supportedBackends: ['off'],
6
+ defaultBackend: 'off',
7
+ };
3
8
  /** HKDF domain tag separating the grouped account-settings secret blob from other ciphers. */
4
9
  export const ACCOUNT_SETTINGS_CIPHER_INFO = 'cat-factory:account-settings';
5
10
  /** How long a resolved account-settings entry is cached before reloading (ms). */
@@ -15,11 +20,14 @@ export class AccountSettingsService {
15
20
  repo;
16
21
  cipher;
17
22
  clock;
23
+ contentStorageCapability;
18
24
  cache = new Map();
19
25
  constructor(deps) {
20
26
  this.repo = deps.accountSettingsRepository;
21
27
  this.cipher = deps.secretCipher;
22
28
  this.clock = deps.clock;
29
+ this.contentStorageCapability =
30
+ deps.contentStorageCapability ?? DISABLED_CONTENT_STORAGE_CAPABILITY;
23
31
  }
24
32
  /** The resolved (decrypted) settings for an account, cache-first. Defaults when no row. */
25
33
  async resolve(accountId) {
@@ -34,6 +42,8 @@ export class AccountSettingsService {
34
42
  config,
35
43
  ...(secrets.slackOAuth ? { slackOAuth: secrets.slackOAuth } : {}),
36
44
  ...(secrets.webSearch ? { webSearch: secrets.webSearch } : {}),
45
+ ...(config.contentStorage ? { contentStorage: config.contentStorage } : {}),
46
+ ...(secrets.s3 ? { s3Credentials: secrets.s3 } : {}),
37
47
  };
38
48
  this.cache.set(accountId, { value, expiresAt: now + CACHE_TTL_MS });
39
49
  return value;
@@ -42,16 +52,21 @@ export class AccountSettingsService {
42
52
  invalidate(accountId) {
43
53
  this.cache.delete(accountId);
44
54
  }
45
- /** Admin read: config + non-secret summary; NEVER decrypts/returns the secrets. */
55
+ /** Admin read: config + non-secret summary + runtime capability; NEVER returns secrets. */
46
56
  async read(accountId) {
47
57
  const record = await this.repo.getByAccount(accountId);
48
58
  if (!record) {
49
59
  return {
50
60
  config: DEFAULT_ACCOUNT_SETTINGS_CONFIG,
51
61
  summary: accountSettingsSummary({}),
62
+ contentStorageCapability: this.contentStorageCapability,
52
63
  };
53
64
  }
54
- return { config: parseConfig(record.config), summary: parseSummary(record.summary) };
65
+ return {
66
+ config: parseConfig(record.config),
67
+ summary: parseSummary(record.summary),
68
+ contentStorageCapability: this.contentStorageCapability,
69
+ };
55
70
  }
56
71
  /**
57
72
  * Admin write. `config` (when present) fully replaces the non-secret config. Each
@@ -73,7 +88,7 @@ export class AccountSettingsService {
73
88
  const current = existing?.secretsCipher ? await this.decryptSecrets(existing.secretsCipher) : {};
74
89
  const merged = { ...current };
75
90
  if (input.secrets) {
76
- for (const key of ['slackOAuth', 'webSearch']) {
91
+ for (const key of ['slackOAuth', 'webSearch', 's3']) {
77
92
  if (!(key in input.secrets))
78
93
  continue;
79
94
  const value = input.secrets[key];
@@ -83,8 +98,8 @@ export class AccountSettingsService {
83
98
  merged[key] = value;
84
99
  }
85
100
  }
86
- const hasSecrets = Boolean(merged.slackOAuth || merged.webSearch);
87
- const summary = accountSettingsSummary(merged);
101
+ const hasSecrets = Boolean(merged.slackOAuth || merged.webSearch || merged.s3);
102
+ const summary = accountSettingsSummary(merged, config);
88
103
  await this.repo.upsert({
89
104
  accountId,
90
105
  config: JSON.stringify(config),
@@ -94,7 +109,7 @@ export class AccountSettingsService {
94
109
  updatedAt: now,
95
110
  });
96
111
  this.invalidate(accountId);
97
- return { config, summary };
112
+ return { config, summary, contentStorageCapability: this.contentStorageCapability };
98
113
  }
99
114
  /** Decrypt + parse the sealed secrets blob. Throws when it can't be opened/parsed. */
100
115
  async decryptSecrets(sealed) {
@@ -125,15 +140,26 @@ function parseConfig(raw) {
125
140
  return DEFAULT_ACCOUNT_SETTINGS_CONFIG;
126
141
  }
127
142
  }
128
- /** Parse the stored non-secret summary, tolerating a malformed/empty value. */
143
+ const CONTENT_STORAGE_BACKENDS = new Set(['off', 'fs', 's3', 'r2', 'db']);
144
+ /** Parse the stored non-secret summary, tolerating a malformed/empty/legacy value. */
129
145
  function parseSummary(raw) {
130
146
  try {
131
147
  const parsed = JSON.parse(raw);
132
148
  if (parsed && typeof parsed === 'object') {
133
149
  const o = parsed;
150
+ const cs = (o.contentStorage ?? {});
151
+ const backend = typeof cs.backend === 'string' && CONTENT_STORAGE_BACKENDS.has(cs.backend)
152
+ ? cs.backend
153
+ : null;
134
154
  return {
135
155
  slackOAuthConfigured: Boolean(o.slackOAuthConfigured),
136
156
  webSearch: o.webSearch === 'brave' || o.webSearch === 'searxng' ? o.webSearch : null,
157
+ contentStorage: {
158
+ backend,
159
+ bucket: typeof cs.bucket === 'string' ? cs.bucket : null,
160
+ basePath: typeof cs.basePath === 'string' ? cs.basePath : null,
161
+ s3CredentialsConfigured: Boolean(cs.s3CredentialsConfigured),
162
+ },
137
163
  };
138
164
  }
139
165
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AccountSettingsService.js","sourceRoot":"","sources":["../../../src/modules/accountSettings/AccountSettingsService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AccountSettingsService.js","sourceRoot":"","sources":["../../../src/modules/accountSettings/AccountSettingsService.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAanD,OAAO,EACL,+BAA+B,EAC/B,sBAAsB,EACtB,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,wBAAwB,CAAA;AAE/B,2FAA2F;AAC3F,MAAM,mCAAmC,GAA6B;IACpE,iBAAiB,EAAE,CAAC,KAAK,CAAC;IAC1B,cAAc,EAAE,KAAK;CACtB,CAAA;AAED,8FAA8F;AAC9F,MAAM,CAAC,MAAM,4BAA4B,GAAG,8BAA8B,CAAA;AAE1E,kFAAkF;AAClF,MAAM,YAAY,GAAG,MAAM,CAAA;AAyB3B;;;;;;GAMG;AACH,MAAM,OAAO,sBAAsB;IAChB,IAAI,CAA2B;IAC/B,MAAM,CAAc;IACpB,KAAK,CAAO;IACZ,wBAAwB,CAA0B;IAClD,KAAK,GAAG,IAAI,GAAG,EAAiE,CAAA;IAEjG,YAAY,IAAwC;QAClD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,yBAAyB,CAAA;QAC1C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAA;QAC/B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACvB,IAAI,CAAC,wBAAwB;YAC3B,IAAI,CAAC,wBAAwB,IAAI,mCAAmC,CAAA;IACxE,CAAC;IAED,2FAA2F;IAC3F,KAAK,CAAC,OAAO,CAAC,SAAiB;QAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAA;QAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QACxC,IAAI,MAAM,IAAI,MAAM,CAAC,SAAS,GAAG,GAAG;YAAE,OAAO,MAAM,CAAC,KAAK,CAAA;QACzD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAA;QACtD,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,+BAA+B,CAAA;QACpF,MAAM,OAAO,GAAG,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QACzF,MAAM,KAAK,GAA4B;YACrC,MAAM;YACN,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjE,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9D,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3E,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACrD,CAAA;QACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,GAAG,YAAY,EAAE,CAAC,CAAA;QACnE,OAAO,KAAK,CAAA;IACd,CAAC;IAED,wFAAwF;IACxF,UAAU,CAAC,SAAiB;QAC1B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;IAC9B,CAAC;IAED,2FAA2F;IAC3F,KAAK,CAAC,IAAI,CAAC,SAAiB;QAC1B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAA;QACtD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO;gBACL,MAAM,EAAE,+BAA+B;gBACvC,OAAO,EAAE,sBAAsB,CAAC,EAAE,CAAC;gBACnC,wBAAwB,EAAE,IAAI,CAAC,wBAAwB;aACxD,CAAA;QACH,CAAC;QACD,OAAO;YACL,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;YAClC,OAAO,EAAE,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC;YACrC,wBAAwB,EAAE,IAAI,CAAC,wBAAwB;SACxD,CAAA;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,KAAK,CAAC,SAAiB,EAAE,KAAiC;QAC9D,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAA;QAC5B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAA;QACxD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM;YACzB,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC3C,CAAC,CAAC,QAAQ;gBACR,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAC9B,CAAC,CAAC,+BAA+B,CAAA;QACrC,sFAAsF;QACtF,yFAAyF;QACzF,0FAA0F;QAC1F,uFAAuF;QACvF,MAAM,OAAO,GAAG,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QAChG,MAAM,MAAM,GAA2B,EAAE,GAAG,OAAO,EAAE,CAAA;QACrD,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAClB,KAAK,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,WAAW,EAAE,IAAI,CAAU,EAAE,CAAC;gBAC7D,IAAI,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC;oBAAE,SAAQ;gBACrC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;gBAChC,IAAI,KAAK,IAAI,IAAI;oBAAE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAA;;oBAChC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAc,CAAA;YACnC,CAAC;QACH,CAAC;QACD,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,EAAE,CAAC,CAAA;QAC9E,MAAM,OAAO,GAAG,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QACtD,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;YACrB,SAAS;YACT,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;YAC9B,aAAa,EAAE,UAAU,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;YACpF,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;YAChC,SAAS,EAAE,QAAQ,EAAE,SAAS,IAAI,GAAG;YACrC,SAAS,EAAE,GAAG;SACf,CAAC,CAAA;QACF,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;QAC1B,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,wBAAwB,EAAE,IAAI,CAAC,wBAAwB,EAAE,CAAA;IACrF,CAAC;IAED,sFAAsF;IAC9E,KAAK,CAAC,cAAc,CAAC,MAAc;QACzC,IAAI,CAAC;YACH,OAAO,2BAA2B,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;QACnF,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,aAAa,CACrB,qFAAqF;gBACnF,8EAA8E,CACjF,CAAA;QACH,CAAC;IACH,CAAC;IAED,mFAAmF;IAC3E,KAAK,CAAC,WAAW,CAAC,MAAc;QACtC,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;QAC1C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAA;QACX,CAAC;IACH,CAAC;CACF;AAED,gFAAgF;AAChF,SAAS,WAAW,CAAC,GAAW;IAC9B,IAAI,CAAC;QACH,OAAO,0BAA0B,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;IACpD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,+BAA+B,CAAA;IACxC,CAAC;AACH,CAAC;AAED,MAAM,wBAAwB,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;AAEzE,sFAAsF;AACtF,SAAS,YAAY,CAAC,GAAW;IAC/B,IAAI,CAAC;QACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACvC,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YACzC,MAAM,CAAC,GAAG,MAAiC,CAAA;YAC3C,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,cAAc,IAAI,EAAE,CAA4B,CAAA;YAC9D,MAAM,OAAO,GACX,OAAO,EAAE,CAAC,OAAO,KAAK,QAAQ,IAAI,wBAAwB,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC;gBACxE,CAAC,CAAE,EAAE,CAAC,OAA+D;gBACrE,CAAC,CAAC,IAAI,CAAA;YACV,OAAO;gBACL,oBAAoB,EAAE,OAAO,CAAC,CAAC,CAAC,oBAAoB,CAAC;gBACrD,SAAS,EAAE,CAAC,CAAC,SAAS,KAAK,OAAO,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI;gBACpF,cAAc,EAAE;oBACd,OAAO;oBACP,MAAM,EAAE,OAAO,EAAE,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI;oBACxD,QAAQ,EAAE,OAAO,EAAE,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI;oBAC9D,uBAAuB,EAAE,OAAO,CAAC,EAAE,CAAC,uBAAuB,CAAC;iBAC7D;aACF,CAAA;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,eAAe;IACjB,CAAC;IACD,OAAO,sBAAsB,CAAC,EAAE,CAAC,CAAA;AACnC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cat-factory/integrations",
3
- "version": "0.26.4",
3
+ "version": "0.27.0",
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",
@@ -25,12 +25,12 @@
25
25
  },
26
26
  "dependencies": {
27
27
  "ai": "^6.0.209",
28
- "@cat-factory/contracts": "0.43.2",
29
- "@cat-factory/kernel": "0.45.4"
28
+ "@cat-factory/contracts": "0.44.0",
29
+ "@cat-factory/kernel": "0.46.0"
30
30
  },
31
31
  "devDependencies": {
32
32
  "typescript": "7.0.1-rc",
33
- "undici": "^7.16.0",
33
+ "undici": "^8.5.0",
34
34
  "vitest": "^4.1.9"
35
35
  },
36
36
  "scripts": {