@cat-factory/contracts 0.22.0 → 0.24.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.
- package/dist/accountSettings.d.ts +83 -0
- package/dist/accountSettings.d.ts.map +1 -0
- package/dist/accountSettings.js +81 -0
- package/dist/accountSettings.js.map +1 -0
- package/dist/environments.d.ts +5 -0
- package/dist/environments.d.ts.map +1 -1
- package/dist/environments.js +5 -0
- package/dist/environments.js.map +1 -1
- package/dist/incident-enrichment.d.ts +69 -0
- package/dist/incident-enrichment.d.ts.map +1 -0
- package/dist/incident-enrichment.js +63 -0
- package/dist/incident-enrichment.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/provider-config.d.ts +47 -0
- package/dist/provider-config.d.ts.map +1 -1
- package/dist/provider-config.js +38 -0
- package/dist/provider-config.js.map +1 -1
- package/dist/runners.d.ts +3 -1
- package/dist/runners.d.ts.map +1 -1
- package/dist/runners.js +3 -1
- package/dist/runners.js.map +1 -1
- package/dist/snapshot.d.ts +6 -0
- package/dist/snapshot.d.ts.map +1 -1
- package/dist/user-secret.d.ts +1 -0
- package/dist/user-secret.d.ts.map +1 -1
- package/dist/workspace-settings.d.ts +41 -0
- package/dist/workspace-settings.d.ts.map +1 -1
- package/dist/workspace-settings.js +40 -0
- package/dist/workspace-settings.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import * as v from 'valibot';
|
|
2
|
+
/**
|
|
3
|
+
* Non-secret per-account config. Empty today (the integration credentials live in the
|
|
4
|
+
* sealed secrets blob; an integration is enabled by having its creds set). Retained as
|
|
5
|
+
* an object so forward-compatible non-secret tuning can be added without a migration.
|
|
6
|
+
*/
|
|
7
|
+
export declare const accountSettingsConfigSchema: v.ObjectSchema<{}, undefined>;
|
|
8
|
+
export type AccountSettingsConfig = v.InferOutput<typeof accountSettingsConfigSchema>;
|
|
9
|
+
/** Built-in config used when an account has no row yet. */
|
|
10
|
+
export declare const DEFAULT_ACCOUNT_SETTINGS_CONFIG: AccountSettingsConfig;
|
|
11
|
+
/** Parse + fully-default a (possibly partial/legacy) stored config blob. */
|
|
12
|
+
export declare function parseAccountSettingsConfig(raw: unknown): AccountSettingsConfig;
|
|
13
|
+
/** Slack app OAuth credentials (the deployment's registered Slack app). */
|
|
14
|
+
export declare const slackOAuthSecretSchema: v.ObjectSchema<{
|
|
15
|
+
readonly clientId: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>;
|
|
16
|
+
readonly clientSecret: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>;
|
|
17
|
+
readonly redirectUrl: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.UrlAction<string, undefined>]>;
|
|
18
|
+
}, undefined>;
|
|
19
|
+
export type SlackOAuthSecret = v.InferOutput<typeof slackOAuthSecretSchema>;
|
|
20
|
+
/**
|
|
21
|
+
* Web-search upstream keys. Brave wins when its key is set, else SearXNG (url +
|
|
22
|
+
* optional key). Both optional so an account can use either.
|
|
23
|
+
*/
|
|
24
|
+
export declare const webSearchSecretSchema: v.ObjectSchema<{
|
|
25
|
+
readonly braveApiKey: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
|
|
26
|
+
readonly searxngUrl: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.UrlAction<string, undefined>]>, undefined>;
|
|
27
|
+
readonly searxngApiKey: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
|
|
28
|
+
}, undefined>;
|
|
29
|
+
export type WebSearchSecret = v.InferOutput<typeof webSearchSecretSchema>;
|
|
30
|
+
/** The decrypted secrets blob (every group optional). */
|
|
31
|
+
export declare const accountSettingsSecretsSchema: v.ObjectSchema<{
|
|
32
|
+
readonly slackOAuth: v.OptionalSchema<v.ObjectSchema<{
|
|
33
|
+
readonly clientId: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>;
|
|
34
|
+
readonly clientSecret: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>;
|
|
35
|
+
readonly redirectUrl: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.UrlAction<string, undefined>]>;
|
|
36
|
+
}, undefined>, undefined>;
|
|
37
|
+
readonly webSearch: v.OptionalSchema<v.ObjectSchema<{
|
|
38
|
+
readonly braveApiKey: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
|
|
39
|
+
readonly searxngUrl: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.UrlAction<string, undefined>]>, undefined>;
|
|
40
|
+
readonly searxngApiKey: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
|
|
41
|
+
}, undefined>, undefined>;
|
|
42
|
+
}, undefined>;
|
|
43
|
+
export type AccountSettingsSecrets = v.InferOutput<typeof accountSettingsSecretsSchema>;
|
|
44
|
+
/** Validate a decrypted secrets blob at the read boundary. */
|
|
45
|
+
export declare function parseAccountSettingsSecrets(raw: unknown): AccountSettingsSecrets;
|
|
46
|
+
/**
|
|
47
|
+
* Admin write. `config` (when present) fully replaces the non-secret config.
|
|
48
|
+
* Each secrets group: absent ⇒ leave unchanged, `null` ⇒ clear, value ⇒ set.
|
|
49
|
+
*/
|
|
50
|
+
export declare const updateAccountSettingsSchema: v.ObjectSchema<{
|
|
51
|
+
readonly config: v.OptionalSchema<v.ObjectSchema<{}, undefined>, undefined>;
|
|
52
|
+
readonly secrets: v.OptionalSchema<v.ObjectSchema<{
|
|
53
|
+
readonly slackOAuth: v.OptionalSchema<v.NullableSchema<v.ObjectSchema<{
|
|
54
|
+
readonly clientId: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>;
|
|
55
|
+
readonly clientSecret: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>;
|
|
56
|
+
readonly redirectUrl: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.UrlAction<string, undefined>]>;
|
|
57
|
+
}, undefined>, undefined>, undefined>;
|
|
58
|
+
readonly webSearch: v.OptionalSchema<v.NullableSchema<v.ObjectSchema<{
|
|
59
|
+
readonly braveApiKey: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
|
|
60
|
+
readonly searxngUrl: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.UrlAction<string, undefined>]>, undefined>;
|
|
61
|
+
readonly searxngApiKey: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
|
|
62
|
+
}, undefined>, undefined>, undefined>;
|
|
63
|
+
}, undefined>, undefined>;
|
|
64
|
+
}, undefined>;
|
|
65
|
+
export type UpdateAccountSettingsInput = v.InferOutput<typeof updateAccountSettingsSchema>;
|
|
66
|
+
/** Non-secret presence/status for display — NEVER secret values. */
|
|
67
|
+
export declare const accountSettingsSummarySchema: v.ObjectSchema<{
|
|
68
|
+
readonly slackOAuthConfigured: v.BooleanSchema<undefined>;
|
|
69
|
+
readonly webSearch: v.NullableSchema<v.PicklistSchema<["brave", "searxng"], undefined>, undefined>;
|
|
70
|
+
}, undefined>;
|
|
71
|
+
export type AccountSettingsSummary = v.InferOutput<typeof accountSettingsSummarySchema>;
|
|
72
|
+
/** What `GET /accounts/:id/settings` returns — config + summary, never secrets. */
|
|
73
|
+
export declare const accountSettingsViewSchema: v.ObjectSchema<{
|
|
74
|
+
readonly config: v.ObjectSchema<{}, undefined>;
|
|
75
|
+
readonly summary: v.ObjectSchema<{
|
|
76
|
+
readonly slackOAuthConfigured: v.BooleanSchema<undefined>;
|
|
77
|
+
readonly webSearch: v.NullableSchema<v.PicklistSchema<["brave", "searxng"], undefined>, undefined>;
|
|
78
|
+
}, undefined>;
|
|
79
|
+
}, undefined>;
|
|
80
|
+
export type AccountSettingsView = v.InferOutput<typeof accountSettingsViewSchema>;
|
|
81
|
+
/** Derive the non-secret summary from the secrets blob. */
|
|
82
|
+
export declare function accountSettingsSummary(secrets: AccountSettingsSecrets): AccountSettingsSummary;
|
|
83
|
+
//# sourceMappingURL=accountSettings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accountSettings.d.ts","sourceRoot":"","sources":["../src/accountSettings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAW5B;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,+BAAe,CAAA;AACvD,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,2BAA2B,CAAC,CAAA;AAErF,2DAA2D;AAC3D,eAAO,MAAM,+BAA+B,EAAE,qBAG7C,CAAA;AAED,4EAA4E;AAC5E,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,OAAO,GAAG,qBAAqB,CAE9E;AAID,2EAA2E;AAC3E,eAAO,MAAM,sBAAsB;;;;aAIjC,CAAA;AACF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAE3E;;;GAGG;AACH,eAAO,MAAM,qBAAqB;;;;aAIhC,CAAA;AACF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAEzE,yDAAyD;AACzD,eAAO,MAAM,4BAA4B;;;;;;;;;;;aAGvC,CAAA;AACF,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,4BAA4B,CAAC,CAAA;AAEvF,8DAA8D;AAC9D,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,OAAO,GAAG,sBAAsB,CAEhF;AAID;;;GAGG;AACH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;aAQtC,CAAA;AACF,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,2BAA2B,CAAC,CAAA;AAE1F,oEAAoE;AACpE,eAAO,MAAM,4BAA4B;;;aAGvC,CAAA;AACF,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,4BAA4B,CAAC,CAAA;AAEvF,mFAAmF;AACnF,eAAO,MAAM,yBAAyB;;;;;;aAGpC,CAAA;AACF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAEjF,2DAA2D;AAC3D,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,sBAAsB,GAAG,sBAAsB,CAU9F"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import * as v from 'valibot';
|
|
2
|
+
// ---------------------------------------------------------------------------
|
|
3
|
+
// Per-account (deployment-wide) integration settings, moved out of env vars into a
|
|
4
|
+
// single DB row per account, gated behind account-admin. ONE sealed secrets blob groups
|
|
5
|
+
// every integration credential (Slack OAuth app, web-search keys, Langfuse keys). A
|
|
6
|
+
// (currently empty) non-secret `config` object is kept for forward-compatible tuning.
|
|
7
|
+
// Secrets are write-only — `GET` returns only the derived `summary`. DB is the source of
|
|
8
|
+
// truth (no env fallback). An integration is "on" for an account when its creds exist.
|
|
9
|
+
// ---------------------------------------------------------------------------
|
|
10
|
+
/**
|
|
11
|
+
* Non-secret per-account config. Empty today (the integration credentials live in the
|
|
12
|
+
* sealed secrets blob; an integration is enabled by having its creds set). Retained as
|
|
13
|
+
* an object so forward-compatible non-secret tuning can be added without a migration.
|
|
14
|
+
*/
|
|
15
|
+
export const accountSettingsConfigSchema = v.object({});
|
|
16
|
+
/** Built-in config used when an account has no row yet. */
|
|
17
|
+
export const DEFAULT_ACCOUNT_SETTINGS_CONFIG = v.parse(accountSettingsConfigSchema, {});
|
|
18
|
+
/** Parse + fully-default a (possibly partial/legacy) stored config blob. */
|
|
19
|
+
export function parseAccountSettingsConfig(raw) {
|
|
20
|
+
return v.parse(accountSettingsConfigSchema, raw);
|
|
21
|
+
}
|
|
22
|
+
// ---- Write-only secrets ----------------------------------------------------
|
|
23
|
+
/** Slack app OAuth credentials (the deployment's registered Slack app). */
|
|
24
|
+
export const slackOAuthSecretSchema = v.object({
|
|
25
|
+
clientId: v.pipe(v.string(), v.trim(), v.minLength(1)),
|
|
26
|
+
clientSecret: v.pipe(v.string(), v.trim(), v.minLength(1)),
|
|
27
|
+
redirectUrl: v.pipe(v.string(), v.trim(), v.url()),
|
|
28
|
+
});
|
|
29
|
+
/**
|
|
30
|
+
* Web-search upstream keys. Brave wins when its key is set, else SearXNG (url +
|
|
31
|
+
* optional key). Both optional so an account can use either.
|
|
32
|
+
*/
|
|
33
|
+
export const webSearchSecretSchema = v.object({
|
|
34
|
+
braveApiKey: v.optional(v.pipe(v.string(), v.trim(), v.minLength(1))),
|
|
35
|
+
searxngUrl: v.optional(v.pipe(v.string(), v.trim(), v.url())),
|
|
36
|
+
searxngApiKey: v.optional(v.pipe(v.string(), v.trim(), v.minLength(1))),
|
|
37
|
+
});
|
|
38
|
+
/** The decrypted secrets blob (every group optional). */
|
|
39
|
+
export const accountSettingsSecretsSchema = v.object({
|
|
40
|
+
slackOAuth: v.optional(slackOAuthSecretSchema),
|
|
41
|
+
webSearch: v.optional(webSearchSecretSchema),
|
|
42
|
+
});
|
|
43
|
+
/** Validate a decrypted secrets blob at the read boundary. */
|
|
44
|
+
export function parseAccountSettingsSecrets(raw) {
|
|
45
|
+
return v.parse(accountSettingsSecretsSchema, raw);
|
|
46
|
+
}
|
|
47
|
+
// ---- Update + view ---------------------------------------------------------
|
|
48
|
+
/**
|
|
49
|
+
* Admin write. `config` (when present) fully replaces the non-secret config.
|
|
50
|
+
* Each secrets group: absent ⇒ leave unchanged, `null` ⇒ clear, value ⇒ set.
|
|
51
|
+
*/
|
|
52
|
+
export const updateAccountSettingsSchema = v.object({
|
|
53
|
+
config: v.optional(accountSettingsConfigSchema),
|
|
54
|
+
secrets: v.optional(v.object({
|
|
55
|
+
slackOAuth: v.optional(v.nullable(slackOAuthSecretSchema)),
|
|
56
|
+
webSearch: v.optional(v.nullable(webSearchSecretSchema)),
|
|
57
|
+
})),
|
|
58
|
+
});
|
|
59
|
+
/** Non-secret presence/status for display — NEVER secret values. */
|
|
60
|
+
export const accountSettingsSummarySchema = v.object({
|
|
61
|
+
slackOAuthConfigured: v.boolean(),
|
|
62
|
+
webSearch: v.nullable(v.picklist(['brave', 'searxng'])),
|
|
63
|
+
});
|
|
64
|
+
/** What `GET /accounts/:id/settings` returns — config + summary, never secrets. */
|
|
65
|
+
export const accountSettingsViewSchema = v.object({
|
|
66
|
+
config: accountSettingsConfigSchema,
|
|
67
|
+
summary: accountSettingsSummarySchema,
|
|
68
|
+
});
|
|
69
|
+
/** Derive the non-secret summary from the secrets blob. */
|
|
70
|
+
export function accountSettingsSummary(secrets) {
|
|
71
|
+
const webSearch = secrets.webSearch?.braveApiKey
|
|
72
|
+
? 'brave'
|
|
73
|
+
: secrets.webSearch?.searxngUrl
|
|
74
|
+
? 'searxng'
|
|
75
|
+
: null;
|
|
76
|
+
return {
|
|
77
|
+
slackOAuthConfigured: Boolean(secrets.slackOAuth),
|
|
78
|
+
webSearch,
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=accountSettings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accountSettings.js","sourceRoot":"","sources":["../src/accountSettings.ts"],"names":[],"mappings":"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"}
|
package/dist/environments.d.ts
CHANGED
|
@@ -303,6 +303,11 @@ export type EnvironmentConnection = v.InferOutput<typeof environmentConnectionSc
|
|
|
303
303
|
* actual per-tenant secret values here (write-only); they are encrypted and
|
|
304
304
|
* stored in D1 and never returned. Every `secretRef.key` in the manifest must
|
|
305
305
|
* have a matching entry in `secrets`.
|
|
306
|
+
*
|
|
307
|
+
* A native adapter is configured through the SAME manifest path (see
|
|
308
|
+
* `backend/docs/native-environment-adapter.md`): its non-secret per-workspace
|
|
309
|
+
* settings ride the manifest's opaque `providerConfig` bag and its secrets via
|
|
310
|
+
* the manifest `auth` scheme — there is deliberately no separate config channel.
|
|
306
311
|
*/
|
|
307
312
|
export declare const registerEnvironmentProviderSchema: v.ObjectSchema<{
|
|
308
313
|
readonly manifest: v.ObjectSchema<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environments.d.ts","sourceRoot":"","sources":["../src/environments.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAqB5B;;;GAGG;AACH,eAAO,MAAM,0BAA0B;;aAErC,CAAA;AACF,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,0BAA0B,CAAC,CAAA;AAKnF;;;;GAIG;AACH,eAAO,MAAM,2BAA2B;;;;;;;;IAMpC,oEAAoE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BAqBtE,CAAA;AACF,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,2BAA2B,CAAC,CAAA;AAErF,eAAO,MAAM,2BAA2B,wEAAwD,CAAA;AAChG,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,2BAA2B,CAAC,CAAA;AAErF;;;;;;GAMG;AACH,eAAO,MAAM,gCAAgC;;;;;;;;;;;;IAM3C,uEAAuE;;aAEvE,CAAA;AACF,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,gCAAgC,CAAC,CAAA;AAE/F,oEAAoE;AACpE,eAAO,MAAM,uBAAuB,0GAOlC,CAAA;AACF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,uBAAuB,CAAC,CAAA;AAE7E,eAAO,MAAM,6BAA6B,2EAKxC,CAAA;AACF,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,6BAA6B,CAAC,CAAA;AAEzF;;;;GAIG;AACH,eAAO,MAAM,8BAA8B;;;;;;;aAOzC,CAAA;AACF,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,8BAA8B,CAAC,CAAA;AAE3F;;;;GAIG;AACH,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;aAO3C,CAAA;AACF,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,gCAAgC,CAAC,CAAA;AAE/F,iFAAiF;AACjF,eAAO,MAAM,yBAAyB;;;IAGpC,+EAA+E;;;;;;;;;;QAlG7E,oEAAoE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAwCtE,uEAAuE;;;IA8DvE,+DAA+D;;;;;;;;;;;;;QA9D/D,uEAAuE;;;IAgEvE,6EAA6E;;;;;;;;;;;;;QAhE7E,uEAAuE;;;;;;;;;;;;;;;;;;;;;IAmEvE,sEAAsE;;IAEtE;;;;;;;;;;OAUG;;aAEH,CAAA;AACF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAEjF,kFAAkF;AAClF,eAAO,MAAM,6BAA6B;;;;;;;aAOxC,CAAA;AACF,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,6BAA6B,CAAC,CAAA;AAEzF,8EAA8E;AAC9E,eAAO,MAAM,uBAAuB;;;;;;;;;IASlC,wEAAwE;;;;;;;;;;;;aAKxE,CAAA;AACF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,uBAAuB,CAAC,CAAA;AAE7E,mFAAmF;AACnF,eAAO,MAAM,2BAA2B;;;;;IAKtC,+EAA+E;;aAE/E,CAAA;AACF,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,2BAA2B,CAAC,CAAA;AAIrF
|
|
1
|
+
{"version":3,"file":"environments.d.ts","sourceRoot":"","sources":["../src/environments.ts"],"names":[],"mappings":"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"}
|
package/dist/environments.js
CHANGED
|
@@ -185,6 +185,11 @@ export const environmentConnectionSchema = v.object({
|
|
|
185
185
|
* actual per-tenant secret values here (write-only); they are encrypted and
|
|
186
186
|
* stored in D1 and never returned. Every `secretRef.key` in the manifest must
|
|
187
187
|
* have a matching entry in `secrets`.
|
|
188
|
+
*
|
|
189
|
+
* A native adapter is configured through the SAME manifest path (see
|
|
190
|
+
* `backend/docs/native-environment-adapter.md`): its non-secret per-workspace
|
|
191
|
+
* settings ride the manifest's opaque `providerConfig` bag and its secrets via
|
|
192
|
+
* the manifest `auth` scheme — there is deliberately no separate config channel.
|
|
188
193
|
*/
|
|
189
194
|
export const registerEnvironmentProviderSchema = v.object({
|
|
190
195
|
manifest: environmentManifestSchema,
|
package/dist/environments.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environments.js","sourceRoot":"","sources":["../src/environments.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"environments.js","sourceRoot":"","sources":["../src/environments.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import * as v from 'valibot';
|
|
2
|
+
/** PagerDuty enrichment credentials. */
|
|
3
|
+
export declare const pagerDutyCredentialsSchema: v.ObjectSchema<{
|
|
4
|
+
readonly apiToken: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>;
|
|
5
|
+
/** The `From` email PagerDuty requires for note/annotation writes. */
|
|
6
|
+
readonly fromEmail: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.EmailAction<string, undefined>]>;
|
|
7
|
+
}, undefined>;
|
|
8
|
+
export type PagerDutyCredentials = v.InferOutput<typeof pagerDutyCredentialsSchema>;
|
|
9
|
+
/** incident.io enrichment credentials. */
|
|
10
|
+
export declare const incidentIoCredentialsSchema: v.ObjectSchema<{
|
|
11
|
+
readonly apiKey: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>;
|
|
12
|
+
}, undefined>;
|
|
13
|
+
export type IncidentIoCredentials = v.InferOutput<typeof incidentIoCredentialsSchema>;
|
|
14
|
+
/**
|
|
15
|
+
* The decrypted incident-enrichment credentials blob. Both providers optional —
|
|
16
|
+
* a workspace may wire one, both, or (after a clear) neither.
|
|
17
|
+
*/
|
|
18
|
+
export declare const incidentEnrichmentCredentialsSchema: v.ObjectSchema<{
|
|
19
|
+
readonly pagerDuty: v.OptionalSchema<v.ObjectSchema<{
|
|
20
|
+
readonly apiToken: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>;
|
|
21
|
+
/** The `From` email PagerDuty requires for note/annotation writes. */
|
|
22
|
+
readonly fromEmail: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.EmailAction<string, undefined>]>;
|
|
23
|
+
}, undefined>, undefined>;
|
|
24
|
+
readonly incidentIo: v.OptionalSchema<v.ObjectSchema<{
|
|
25
|
+
readonly apiKey: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>;
|
|
26
|
+
}, undefined>, undefined>;
|
|
27
|
+
}, undefined>;
|
|
28
|
+
export type IncidentEnrichmentCredentials = v.InferOutput<typeof incidentEnrichmentCredentialsSchema>;
|
|
29
|
+
/**
|
|
30
|
+
* Validate a decrypted incident-enrichment blob at the read boundary, so a
|
|
31
|
+
* drifted/hand-edited row fails with a clear schema error here rather than deep
|
|
32
|
+
* inside the PagerDuty / incident.io client during a live enrichment.
|
|
33
|
+
*/
|
|
34
|
+
export declare function parseIncidentEnrichmentCredentials(raw: unknown): IncidentEnrichmentCredentials;
|
|
35
|
+
/**
|
|
36
|
+
* Set a workspace's incident-enrichment credentials (write-only). Each provider group is
|
|
37
|
+
* three-state so an operator can edit one vendor without disturbing the other AND can
|
|
38
|
+
* remove just one: OMITTED ⇒ leave the stored group unchanged, `null` ⇒ clear it, a value
|
|
39
|
+
* ⇒ set it. (A full wipe of both is `DELETE`.) Mirrors the account-settings secrets merge.
|
|
40
|
+
*/
|
|
41
|
+
export declare const upsertIncidentEnrichmentSchema: v.ObjectSchema<{
|
|
42
|
+
readonly pagerDuty: v.OptionalSchema<v.NullableSchema<v.ObjectSchema<{
|
|
43
|
+
readonly apiToken: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>;
|
|
44
|
+
/** The `From` email PagerDuty requires for note/annotation writes. */
|
|
45
|
+
readonly fromEmail: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.EmailAction<string, undefined>]>;
|
|
46
|
+
}, undefined>, undefined>, undefined>;
|
|
47
|
+
readonly incidentIo: v.OptionalSchema<v.NullableSchema<v.ObjectSchema<{
|
|
48
|
+
readonly apiKey: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>;
|
|
49
|
+
}, undefined>, undefined>, undefined>;
|
|
50
|
+
}, undefined>;
|
|
51
|
+
export type UpsertIncidentEnrichmentInput = v.InferOutput<typeof upsertIncidentEnrichmentSchema>;
|
|
52
|
+
/** Non-secret presence flags persisted alongside the sealed blob, for the UI badge. */
|
|
53
|
+
export declare const incidentEnrichmentSummarySchema: v.ObjectSchema<{
|
|
54
|
+
readonly pagerDuty: v.BooleanSchema<undefined>;
|
|
55
|
+
readonly incidentIo: v.BooleanSchema<undefined>;
|
|
56
|
+
}, undefined>;
|
|
57
|
+
export type IncidentEnrichmentSummary = v.InferOutput<typeof incidentEnrichmentSummarySchema>;
|
|
58
|
+
/** What `GET /incident-enrichment` returns — never the secret tokens. */
|
|
59
|
+
export declare const incidentEnrichmentViewSchema: v.ObjectSchema<{
|
|
60
|
+
readonly connected: v.BooleanSchema<undefined>;
|
|
61
|
+
readonly summary: v.NullableSchema<v.ObjectSchema<{
|
|
62
|
+
readonly pagerDuty: v.BooleanSchema<undefined>;
|
|
63
|
+
readonly incidentIo: v.BooleanSchema<undefined>;
|
|
64
|
+
}, undefined>, undefined>;
|
|
65
|
+
}, undefined>;
|
|
66
|
+
export type IncidentEnrichmentView = v.InferOutput<typeof incidentEnrichmentViewSchema>;
|
|
67
|
+
/** Derive the non-secret summary from the credentials blob. */
|
|
68
|
+
export declare function incidentEnrichmentSummary(credentials: IncidentEnrichmentCredentials): IncidentEnrichmentSummary;
|
|
69
|
+
//# sourceMappingURL=incident-enrichment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"incident-enrichment.d.ts","sourceRoot":"","sources":["../src/incident-enrichment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAW5B,wCAAwC;AACxC,eAAO,MAAM,0BAA0B;;IAErC,sEAAsE;;aAEtE,CAAA;AACF,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,0BAA0B,CAAC,CAAA;AAEnF,0CAA0C;AAC1C,eAAO,MAAM,2BAA2B;;aAEtC,CAAA;AACF,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,2BAA2B,CAAC,CAAA;AAErF;;;GAGG;AACH,eAAO,MAAM,mCAAmC;;;QAf9C,sEAAsE;;;;;;aAkBtE,CAAA;AACF,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,WAAW,CACvD,OAAO,mCAAmC,CAC3C,CAAA;AAED;;;;GAIG;AACH,wBAAgB,kCAAkC,CAAC,GAAG,EAAE,OAAO,GAAG,6BAA6B,CAE9F;AAED;;;;;GAKG;AACH,eAAO,MAAM,8BAA8B;;;QAtCzC,sEAAsE;;;;;;aAyCtE,CAAA;AACF,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,8BAA8B,CAAC,CAAA;AAEhG,uFAAuF;AACvF,eAAO,MAAM,+BAA+B;;;aAG1C,CAAA;AACF,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,+BAA+B,CAAC,CAAA;AAE7F,yEAAyE;AACzE,eAAO,MAAM,4BAA4B;;;;;;aAGvC,CAAA;AACF,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,4BAA4B,CAAC,CAAA;AAEvF,+DAA+D;AAC/D,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,6BAA6B,GACzC,yBAAyB,CAK3B"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import * as v from 'valibot';
|
|
2
|
+
// ---------------------------------------------------------------------------
|
|
3
|
+
// Per-workspace incident-enrichment connection. Moved out of the deployment-wide
|
|
4
|
+
// env vars (`PAGERDUTY_API_TOKEN` / `PAGERDUTY_FROM_EMAIL` / `INCIDENTIO_API_KEY`)
|
|
5
|
+
// onto a sealed per-workspace row so each workspace brings its own PagerDuty /
|
|
6
|
+
// incident.io credentials, configured in the UI. Both vendors live in ONE sealed
|
|
7
|
+
// blob (never one-table-per-secret). Secrets are write-only — never read back.
|
|
8
|
+
// Paired conceptually with the per-workspace observability connection.
|
|
9
|
+
// ---------------------------------------------------------------------------
|
|
10
|
+
/** PagerDuty enrichment credentials. */
|
|
11
|
+
export const pagerDutyCredentialsSchema = v.object({
|
|
12
|
+
apiToken: v.pipe(v.string(), v.trim(), v.minLength(1)),
|
|
13
|
+
/** The `From` email PagerDuty requires for note/annotation writes. */
|
|
14
|
+
fromEmail: v.pipe(v.string(), v.trim(), v.email()),
|
|
15
|
+
});
|
|
16
|
+
/** incident.io enrichment credentials. */
|
|
17
|
+
export const incidentIoCredentialsSchema = v.object({
|
|
18
|
+
apiKey: v.pipe(v.string(), v.trim(), v.minLength(1)),
|
|
19
|
+
});
|
|
20
|
+
/**
|
|
21
|
+
* The decrypted incident-enrichment credentials blob. Both providers optional —
|
|
22
|
+
* a workspace may wire one, both, or (after a clear) neither.
|
|
23
|
+
*/
|
|
24
|
+
export const incidentEnrichmentCredentialsSchema = v.object({
|
|
25
|
+
pagerDuty: v.optional(pagerDutyCredentialsSchema),
|
|
26
|
+
incidentIo: v.optional(incidentIoCredentialsSchema),
|
|
27
|
+
});
|
|
28
|
+
/**
|
|
29
|
+
* Validate a decrypted incident-enrichment blob at the read boundary, so a
|
|
30
|
+
* drifted/hand-edited row fails with a clear schema error here rather than deep
|
|
31
|
+
* inside the PagerDuty / incident.io client during a live enrichment.
|
|
32
|
+
*/
|
|
33
|
+
export function parseIncidentEnrichmentCredentials(raw) {
|
|
34
|
+
return v.parse(incidentEnrichmentCredentialsSchema, raw);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Set a workspace's incident-enrichment credentials (write-only). Each provider group is
|
|
38
|
+
* three-state so an operator can edit one vendor without disturbing the other AND can
|
|
39
|
+
* remove just one: OMITTED ⇒ leave the stored group unchanged, `null` ⇒ clear it, a value
|
|
40
|
+
* ⇒ set it. (A full wipe of both is `DELETE`.) Mirrors the account-settings secrets merge.
|
|
41
|
+
*/
|
|
42
|
+
export const upsertIncidentEnrichmentSchema = v.object({
|
|
43
|
+
pagerDuty: v.optional(v.nullable(pagerDutyCredentialsSchema)),
|
|
44
|
+
incidentIo: v.optional(v.nullable(incidentIoCredentialsSchema)),
|
|
45
|
+
});
|
|
46
|
+
/** Non-secret presence flags persisted alongside the sealed blob, for the UI badge. */
|
|
47
|
+
export const incidentEnrichmentSummarySchema = v.object({
|
|
48
|
+
pagerDuty: v.boolean(),
|
|
49
|
+
incidentIo: v.boolean(),
|
|
50
|
+
});
|
|
51
|
+
/** What `GET /incident-enrichment` returns — never the secret tokens. */
|
|
52
|
+
export const incidentEnrichmentViewSchema = v.object({
|
|
53
|
+
connected: v.boolean(),
|
|
54
|
+
summary: v.nullable(incidentEnrichmentSummarySchema),
|
|
55
|
+
});
|
|
56
|
+
/** Derive the non-secret summary from the credentials blob. */
|
|
57
|
+
export function incidentEnrichmentSummary(credentials) {
|
|
58
|
+
return {
|
|
59
|
+
pagerDuty: Boolean(credentials.pagerDuty),
|
|
60
|
+
incidentIo: Boolean(credentials.incidentIo),
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=incident-enrichment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"incident-enrichment.js","sourceRoot":"","sources":["../src/incident-enrichment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAE5B,8EAA8E;AAC9E,iFAAiF;AACjF,mFAAmF;AACnF,+EAA+E;AAC/E,iFAAiF;AACjF,+EAA+E;AAC/E,uEAAuE;AACvE,8EAA8E;AAE9E,wCAAwC;AACxC,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACtD,sEAAsE;IACtE,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;CACnD,CAAC,CAAA;AAGF,0CAA0C;AAC1C,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;CACrD,CAAC,CAAA;AAGF;;;GAGG;AACH,MAAM,CAAC,MAAM,mCAAmC,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1D,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,0BAA0B,CAAC;IACjD,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,2BAA2B,CAAC;CACpD,CAAC,CAAA;AAKF;;;;GAIG;AACH,MAAM,UAAU,kCAAkC,CAAC,GAAY;IAC7D,OAAO,CAAC,CAAC,KAAK,CAAC,mCAAmC,EAAE,GAAG,CAAC,CAAA;AAC1D,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC,MAAM,CAAC;IACrD,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAAC;IAC7D,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,2BAA2B,CAAC,CAAC;CAChE,CAAC,CAAA;AAGF,uFAAuF;AACvF,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAC,MAAM,CAAC;IACtD,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE;IACtB,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE;CACxB,CAAC,CAAA;AAGF,yEAAyE;AACzE,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAAC;IACnD,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE;IACtB,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,+BAA+B,CAAC;CACrD,CAAC,CAAA;AAGF,+DAA+D;AAC/D,MAAM,UAAU,yBAAyB,CACvC,WAA0C;IAE1C,OAAO;QACL,SAAS,EAAE,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC;QACzC,UAAU,EAAE,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC;KAC5C,CAAA;AACH,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -34,6 +34,8 @@ export * from './service-fragment-defaults.js';
|
|
|
34
34
|
export * from './notifications.js';
|
|
35
35
|
export * from './slack.js';
|
|
36
36
|
export * from './observability.js';
|
|
37
|
+
export * from './incident-enrichment.js';
|
|
38
|
+
export * from './accountSettings.js';
|
|
37
39
|
export * from './recurring.js';
|
|
38
40
|
export * from './tracker.js';
|
|
39
41
|
export * from './vendor-credentials.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,uBAAuB,CAAA;AACrC,cAAc,eAAe,CAAA;AAC7B,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,mBAAmB,CAAA;AACjC,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,mBAAmB,CAAA;AACjC,cAAc,yBAAyB,CAAA;AACvC,cAAc,cAAc,CAAA;AAC5B,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,oBAAoB,CAAA;AAClC,cAAc,YAAY,CAAA;AAC1B,cAAc,oBAAoB,CAAA;AAClC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,yBAAyB,CAAA;AACvC,cAAc,eAAe,CAAA;AAC7B,cAAc,6BAA6B,CAAA;AAC3C,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,yBAAyB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,uBAAuB,CAAA;AACrC,cAAc,eAAe,CAAA;AAC7B,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,mBAAmB,CAAA;AACjC,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,mBAAmB,CAAA;AACjC,cAAc,yBAAyB,CAAA;AACvC,cAAc,cAAc,CAAA;AAC5B,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,oBAAoB,CAAA;AAClC,cAAc,YAAY,CAAA;AAC1B,cAAc,oBAAoB,CAAA;AAClC,cAAc,0BAA0B,CAAA;AACxC,cAAc,sBAAsB,CAAA;AACpC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,yBAAyB,CAAA;AACvC,cAAc,eAAe,CAAA;AAC7B,cAAc,6BAA6B,CAAA;AAC3C,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,yBAAyB,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -34,6 +34,8 @@ export * from './service-fragment-defaults.js';
|
|
|
34
34
|
export * from './notifications.js';
|
|
35
35
|
export * from './slack.js';
|
|
36
36
|
export * from './observability.js';
|
|
37
|
+
export * from './incident-enrichment.js';
|
|
38
|
+
export * from './accountSettings.js';
|
|
37
39
|
export * from './recurring.js';
|
|
38
40
|
export * from './tracker.js';
|
|
39
41
|
export * from './vendor-credentials.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,uBAAuB,CAAA;AACrC,cAAc,eAAe,CAAA;AAC7B,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,mBAAmB,CAAA;AACjC,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,mBAAmB,CAAA;AACjC,cAAc,yBAAyB,CAAA;AACvC,cAAc,cAAc,CAAA;AAC5B,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,oBAAoB,CAAA;AAClC,cAAc,YAAY,CAAA;AAC1B,cAAc,oBAAoB,CAAA;AAClC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,yBAAyB,CAAA;AACvC,cAAc,eAAe,CAAA;AAC7B,cAAc,6BAA6B,CAAA;AAC3C,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,yBAAyB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,uBAAuB,CAAA;AACrC,cAAc,eAAe,CAAA;AAC7B,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,mBAAmB,CAAA;AACjC,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,mBAAmB,CAAA;AACjC,cAAc,yBAAyB,CAAA;AACvC,cAAc,cAAc,CAAA;AAC5B,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,oBAAoB,CAAA;AAClC,cAAc,YAAY,CAAA;AAC1B,cAAc,oBAAoB,CAAA;AAClC,cAAc,0BAA0B,CAAA;AACxC,cAAc,sBAAsB,CAAA;AACpC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,yBAAyB,CAAA;AACvC,cAAc,eAAe,CAAA;AAC7B,cAAc,6BAA6B,CAAA;AAC3C,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,yBAAyB,CAAA"}
|
|
@@ -23,6 +23,15 @@ export declare const providerConfigFieldSchema: v.ObjectSchema<{
|
|
|
23
23
|
readonly value: v.StringSchema<undefined>;
|
|
24
24
|
readonly label: v.StringSchema<undefined>;
|
|
25
25
|
}, undefined>, undefined>, undefined>;
|
|
26
|
+
/**
|
|
27
|
+
* The provider/manifest's default for this field. When present, the value is
|
|
28
|
+
* optional in practice: leaving the form field blank falls back to this default
|
|
29
|
+
* (so the UI shows an empty input with a "defaulted to …" hint, and clearing an
|
|
30
|
+
* override reverts to it). Never set for secrets — those have no default and must
|
|
31
|
+
* be supplied explicitly. A `required` field WITHOUT a default is what drives the
|
|
32
|
+
* unconfigured-provider banner (see {@link ProviderDescriptor.missingRequired}).
|
|
33
|
+
*/
|
|
34
|
+
readonly default: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
|
|
26
35
|
}, undefined>;
|
|
27
36
|
export type ProviderConfigField = v.InferOutput<typeof providerConfigFieldSchema>;
|
|
28
37
|
/**
|
|
@@ -56,9 +65,47 @@ export declare const providerDescriptorSchema: v.ObjectSchema<{
|
|
|
56
65
|
readonly value: v.StringSchema<undefined>;
|
|
57
66
|
readonly label: v.StringSchema<undefined>;
|
|
58
67
|
}, undefined>, undefined>, undefined>;
|
|
68
|
+
/**
|
|
69
|
+
* The provider/manifest's default for this field. When present, the value is
|
|
70
|
+
* optional in practice: leaving the form field blank falls back to this default
|
|
71
|
+
* (so the UI shows an empty input with a "defaulted to …" hint, and clearing an
|
|
72
|
+
* override reverts to it). Never set for secrets — those have no default and must
|
|
73
|
+
* be supplied explicitly. A `required` field WITHOUT a default is what drives the
|
|
74
|
+
* unconfigured-provider banner (see {@link ProviderDescriptor.missingRequired}).
|
|
75
|
+
*/
|
|
76
|
+
readonly default: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
|
|
59
77
|
}, undefined>, undefined>;
|
|
60
78
|
/** Whether the provider implements a connection test the UI can call. */
|
|
61
79
|
readonly supportsTest: v.BooleanSchema<undefined>;
|
|
80
|
+
/**
|
|
81
|
+
* Keys of `configFields` that are `required`, have no `default`, and have no
|
|
82
|
+
* stored value for this workspace yet (e.g. an unset API token). Empty ⇒ the
|
|
83
|
+
* provider is fully configured. Non-empty while a provider is registered for the
|
|
84
|
+
* instance is exactly the "loud banner" signal: the org still has to supply these
|
|
85
|
+
* before the provider can be used. Computed server-side so the form, the banner,
|
|
86
|
+
* and the register-time validation all read one source of truth.
|
|
87
|
+
*/
|
|
88
|
+
readonly missingRequired: v.ArraySchema<v.StringSchema<undefined>, undefined>;
|
|
89
|
+
/**
|
|
90
|
+
* For a NATIVE provider: the base manifest the SPA overlays the flat `configFields`
|
|
91
|
+
* values onto before POSTing (so the connect form is flat fields but storage stays a
|
|
92
|
+
* single full manifest — see `backend/docs/native-environment-adapter.md`). A `secret`
|
|
93
|
+
* field → the secret bundle, a non-secret field → `providerConfig[key]` (a `baseUrl`
|
|
94
|
+
* field → `baseUrl`). Absent ⇒ a manifest-authored provider (the SPA edits the manifest
|
|
95
|
+
* directly). Provider-specific JSON (an EnvironmentManifest or RunnerPoolManifest shape)
|
|
96
|
+
* carrying NO secret values — only the shape + secret-ref keys.
|
|
97
|
+
*/
|
|
98
|
+
readonly manifestTemplate: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.UnknownSchema, undefined>, undefined>;
|
|
99
|
+
/**
|
|
100
|
+
* The provider's CURRENT saved manifest, when a connection exists. Non-secret: the
|
|
101
|
+
* manifest only carries secret-ref key NAMES (the actual values live in the encrypted
|
|
102
|
+
* bundle and are never returned), so this is safe to expose. The native connect form
|
|
103
|
+
* overlays edited fields onto THIS (falling back to `manifestTemplate` on a first
|
|
104
|
+
* connect), so re-saving preserves previously-stored `providerConfig` — including nested
|
|
105
|
+
* values the flat form doesn't render — instead of silently dropping it. Absent ⇒ no
|
|
106
|
+
* connection yet.
|
|
107
|
+
*/
|
|
108
|
+
readonly savedManifest: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.UnknownSchema, undefined>, undefined>;
|
|
62
109
|
}, undefined>;
|
|
63
110
|
export type ProviderDescriptor = v.InferOutput<typeof providerDescriptorSchema>;
|
|
64
111
|
/** The outcome of a provider connection test (never throws to the client). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-config.d.ts","sourceRoot":"","sources":["../src/provider-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAc5B,gDAAgD;AAChD,eAAO,MAAM,6BAA6B,6DAA6C,CAAA;AACvF,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,6BAA6B,CAAC,CAAA;AAEzF,0EAA0E;AAC1E,eAAO,MAAM,yBAAyB;IACpC,iFAAiF;;IAEjF,sCAAsC;;IAEtC,kDAAkD;;IAElD,kCAAkC;;IAElC,gEAAgE;;IAEhE,oEAAoE;;IAEpE,+CAA+C;;IAE/C,oCAAoC;;;;;
|
|
1
|
+
{"version":3,"file":"provider-config.d.ts","sourceRoot":"","sources":["../src/provider-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAc5B,gDAAgD;AAChD,eAAO,MAAM,6BAA6B,6DAA6C,CAAA;AACvF,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,6BAA6B,CAAC,CAAA;AAEzF,0EAA0E;AAC1E,eAAO,MAAM,yBAAyB;IACpC,iFAAiF;;IAEjF,sCAAsC;;IAEtC,kDAAkD;;IAElD,kCAAkC;;IAElC,gEAAgE;;IAEhE,oEAAoE;;IAEpE,+CAA+C;;IAE/C,oCAAoC;;;;;IAEpC;;;;;;;OAOG;;aAEH,CAAA;AACF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAEjF;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB;;;;;QAnCnC,iFAAiF;;QAEjF,sCAAsC;;QAEtC,kDAAkD;;QAElD,kCAAkC;;QAElC,gEAAgE;;QAEhE,oEAAoE;;QAEpE,+CAA+C;;QAE/C,oCAAoC;;;;;QAEpC;;;;;;;WAOG;;;IAiBH,yEAAyE;;IAEzE;;;;;;;OAOG;;IAEH;;;;;;;;OAQG;;IAEH;;;;;;;;OAQG;;aAEH,CAAA;AACF,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,wBAAwB,CAAC,CAAA;AAE/E,8EAA8E;AAC9E,eAAO,MAAM,0BAA0B;;IAErC,oEAAoE;;aAEpE,CAAA;AACF,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,0BAA0B,CAAC,CAAA"}
|
package/dist/provider-config.js
CHANGED
|
@@ -30,6 +30,15 @@ export const providerConfigFieldSchema = v.object({
|
|
|
30
30
|
type: v.optional(providerConfigFieldTypeSchema),
|
|
31
31
|
/** Choices for a `select` field. */
|
|
32
32
|
options: v.optional(v.array(v.object({ value: v.string(), label: v.string() }))),
|
|
33
|
+
/**
|
|
34
|
+
* The provider/manifest's default for this field. When present, the value is
|
|
35
|
+
* optional in practice: leaving the form field blank falls back to this default
|
|
36
|
+
* (so the UI shows an empty input with a "defaulted to …" hint, and clearing an
|
|
37
|
+
* override reverts to it). Never set for secrets — those have no default and must
|
|
38
|
+
* be supplied explicitly. A `required` field WITHOUT a default is what drives the
|
|
39
|
+
* unconfigured-provider banner (see {@link ProviderDescriptor.missingRequired}).
|
|
40
|
+
*/
|
|
41
|
+
default: v.optional(v.string()),
|
|
33
42
|
});
|
|
34
43
|
/**
|
|
35
44
|
* What the SPA needs to render a provider's config form. `kind` distinguishes a
|
|
@@ -45,6 +54,35 @@ export const providerDescriptorSchema = v.object({
|
|
|
45
54
|
configFields: v.array(providerConfigFieldSchema),
|
|
46
55
|
/** Whether the provider implements a connection test the UI can call. */
|
|
47
56
|
supportsTest: v.boolean(),
|
|
57
|
+
/**
|
|
58
|
+
* Keys of `configFields` that are `required`, have no `default`, and have no
|
|
59
|
+
* stored value for this workspace yet (e.g. an unset API token). Empty ⇒ the
|
|
60
|
+
* provider is fully configured. Non-empty while a provider is registered for the
|
|
61
|
+
* instance is exactly the "loud banner" signal: the org still has to supply these
|
|
62
|
+
* before the provider can be used. Computed server-side so the form, the banner,
|
|
63
|
+
* and the register-time validation all read one source of truth.
|
|
64
|
+
*/
|
|
65
|
+
missingRequired: v.array(v.string()),
|
|
66
|
+
/**
|
|
67
|
+
* For a NATIVE provider: the base manifest the SPA overlays the flat `configFields`
|
|
68
|
+
* values onto before POSTing (so the connect form is flat fields but storage stays a
|
|
69
|
+
* single full manifest — see `backend/docs/native-environment-adapter.md`). A `secret`
|
|
70
|
+
* field → the secret bundle, a non-secret field → `providerConfig[key]` (a `baseUrl`
|
|
71
|
+
* field → `baseUrl`). Absent ⇒ a manifest-authored provider (the SPA edits the manifest
|
|
72
|
+
* directly). Provider-specific JSON (an EnvironmentManifest or RunnerPoolManifest shape)
|
|
73
|
+
* carrying NO secret values — only the shape + secret-ref keys.
|
|
74
|
+
*/
|
|
75
|
+
manifestTemplate: v.optional(v.record(v.string(), v.unknown())),
|
|
76
|
+
/**
|
|
77
|
+
* The provider's CURRENT saved manifest, when a connection exists. Non-secret: the
|
|
78
|
+
* manifest only carries secret-ref key NAMES (the actual values live in the encrypted
|
|
79
|
+
* bundle and are never returned), so this is safe to expose. The native connect form
|
|
80
|
+
* overlays edited fields onto THIS (falling back to `manifestTemplate` on a first
|
|
81
|
+
* connect), so re-saving preserves previously-stored `providerConfig` — including nested
|
|
82
|
+
* values the flat form doesn't render — instead of silently dropping it. Absent ⇒ no
|
|
83
|
+
* connection yet.
|
|
84
|
+
*/
|
|
85
|
+
savedManifest: v.optional(v.record(v.string(), v.unknown())),
|
|
48
86
|
});
|
|
49
87
|
/** The outcome of a provider connection test (never throws to the client). */
|
|
50
88
|
export const connectionTestResultSchema = v.object({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-config.js","sourceRoot":"","sources":["../src/provider-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAE5B,8EAA8E;AAC9E,qEAAqE;AACrE,EAAE;AACF,6EAA6E;AAC7E,gFAAgF;AAChF,kFAAkF;AAClF,gFAAgF;AAChF,8EAA8E;AAC9E,gFAAgF;AAChF,kFAAkF;AAClF,8EAA8E;AAE9E,gDAAgD;AAChD,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAA;AAGvF,0EAA0E;AAC1E,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,iFAAiF;IACjF,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,sCAAsC;IACtC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,kDAAkD;IAClD,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC5B,kCAAkC;IAClC,WAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IACnC,gEAAgE;IAChE,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IAC/B,oEAAoE;IACpE,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IACjC,+CAA+C;IAC/C,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,6BAA6B,CAAC;IAC/C,oCAAoC;IACpC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"provider-config.js","sourceRoot":"","sources":["../src/provider-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAE5B,8EAA8E;AAC9E,qEAAqE;AACrE,EAAE;AACF,6EAA6E;AAC7E,gFAAgF;AAChF,kFAAkF;AAClF,gFAAgF;AAChF,8EAA8E;AAC9E,gFAAgF;AAChF,kFAAkF;AAClF,8EAA8E;AAE9E,gDAAgD;AAChD,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAA;AAGvF,0EAA0E;AAC1E,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,iFAAiF;IACjF,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,sCAAsC;IACtC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,kDAAkD;IAClD,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC5B,kCAAkC;IAClC,WAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IACnC,gEAAgE;IAChE,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IAC/B,oEAAoE;IACpE,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IACjC,+CAA+C;IAC/C,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,6BAA6B,CAAC;IAC/C,oCAAoC;IACpC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;IAChF;;;;;;;OAOG;IACH,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;CAChC,CAAC,CAAA;AAGF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACxC,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,yBAAyB,CAAC;IAChD,yEAAyE;IACzE,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE;IACzB;;;;;;;OAOG;IACH,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IACpC;;;;;;;;OAQG;IACH,gBAAgB,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IAC/D;;;;;;;;OAQG;IACH,aAAa,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;CAC7D,CAAC,CAAA;AAGF,8EAA8E;AAC9E,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE;IACf,oEAAoE;IACpE,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;CAChC,CAAC,CAAA"}
|
package/dist/runners.d.ts
CHANGED
|
@@ -250,7 +250,9 @@ export type RunnerPoolConnection = v.InferOutput<typeof runnerPoolConnectionSche
|
|
|
250
250
|
* Register (or replace) a workspace's runner pool. The org supplies the actual
|
|
251
251
|
* per-tenant scheduler-API secret values here (write-only); they are encrypted
|
|
252
252
|
* and stored in D1 and never returned. Every `secretRef.key` in the manifest
|
|
253
|
-
* must have a matching entry in `secrets`.
|
|
253
|
+
* must have a matching entry in `secrets`. A native pool adapter is configured
|
|
254
|
+
* through the same manifest path (per-workspace settings on the manifest's
|
|
255
|
+
* `providerConfig` bag), mirroring the environment provider.
|
|
254
256
|
*/
|
|
255
257
|
export declare const registerRunnerPoolSchema: v.ObjectSchema<{
|
|
256
258
|
readonly manifest: v.ObjectSchema<{
|
package/dist/runners.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runners.d.ts","sourceRoot":"","sources":["../src/runners.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAmC5B,kFAAkF;AAClF,eAAO,MAAM,yBAAyB;;aAA6B,CAAA;AACnE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAEjF,oEAAoE;AACpE,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BAA8B,CAAA;AACrE,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,0BAA0B,CAAC,CAAA;AAEnF;;;;;;;GAOG;AACH,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;aAAmC,CAAA;AAC/E,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,+BAA+B,CAAC,CAAA;AAE7F,wEAAwE;AACxE,eAAO,MAAM,oBAAoB,4DAA4C,CAAA;AAC7E,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAEvE;;;;;GAKG;AACH,eAAO,MAAM,+BAA+B;IAC1C,8EAA8E;;IAE9E,2DAA2D;;;;;IAE3D,yEAAyE;;;;IAIzE,8CAA8C;;;;IAI9C;;;;;;;;;OASG;;IAEH,mFAAmF;;aAEnF,CAAA;AACF,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,+BAA+B,CAAC,CAAA;AAE7F,8EAA8E;AAC9E,eAAO,MAAM,wBAAwB;;;IAGnC,0EAA0E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAG1E,uEAAuE;;;;;;;;;;;;;;;IAEvE,wEAAwE;;;;;;;;;;;;;;;IAExE,sEAAsE;;;;;;;;;;;;;;;;QAvCtE,8EAA8E;;QAE9E,2DAA2D;;;;;QAE3D,yEAAyE;;;;QAIzE,8CAA8C;;;;QAI9C;;;;;;;;;WASG;;QAEH,mFAAmF;;;aAmBnF,CAAA;AACF,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,wBAAwB,CAAC,CAAA;AAE/E,+EAA+E;AAC/E,eAAO,MAAM,0BAA0B;;;;;IAKrC,+EAA+E;;aAE/E,CAAA;AACF,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,0BAA0B,CAAC,CAAA;AAInF
|
|
1
|
+
{"version":3,"file":"runners.d.ts","sourceRoot":"","sources":["../src/runners.ts"],"names":[],"mappings":"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"}
|
package/dist/runners.js
CHANGED
|
@@ -104,7 +104,9 @@ export const runnerPoolConnectionSchema = v.object({
|
|
|
104
104
|
* Register (or replace) a workspace's runner pool. The org supplies the actual
|
|
105
105
|
* per-tenant scheduler-API secret values here (write-only); they are encrypted
|
|
106
106
|
* and stored in D1 and never returned. Every `secretRef.key` in the manifest
|
|
107
|
-
* must have a matching entry in `secrets`.
|
|
107
|
+
* must have a matching entry in `secrets`. A native pool adapter is configured
|
|
108
|
+
* through the same manifest path (per-workspace settings on the manifest's
|
|
109
|
+
* `providerConfig` bag), mirroring the environment provider.
|
|
108
110
|
*/
|
|
109
111
|
export const registerRunnerPoolSchema = v.object({
|
|
110
112
|
manifest: runnerPoolManifestSchema,
|
package/dist/runners.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runners.js","sourceRoot":"","sources":["../src/runners.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"runners.js","sourceRoot":"","sources":["../src/runners.ts"],"names":[],"mappings":"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"}
|
package/dist/snapshot.d.ts
CHANGED
|
@@ -567,6 +567,12 @@ export declare const workspaceSnapshotSchema: v.ObjectSchema<{
|
|
|
567
567
|
readonly taskLimitMode: v.PicklistSchema<["off", "shared", "per_type"], undefined>;
|
|
568
568
|
readonly taskLimitShared: v.NullableSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>, v.MaxValueAction<number, 1000, undefined>]>, undefined>;
|
|
569
569
|
readonly taskLimitPerType: v.NullableSchema<v.RecordSchema<v.PicklistSchema<["feature", "bug", "document", "spike"], undefined>, v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>, v.MaxValueAction<number, 1000, undefined>]>, undefined>, undefined>;
|
|
570
|
+
readonly spendCurrency: v.NullableSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.ToUpperCaseAction, v.LengthAction<string, 3, undefined>, v.RegexAction<string, "currency must be a 3-letter ISO 4217 code">]>, undefined>;
|
|
571
|
+
readonly spendMonthlyLimit: v.NullableSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 0, undefined>]>, undefined>;
|
|
572
|
+
readonly spendModelPrices: v.NullableSchema<v.RecordSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, v.ObjectSchema<{
|
|
573
|
+
readonly inputPerMillion: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 0, undefined>]>;
|
|
574
|
+
readonly outputPerMillion: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 0, undefined>]>;
|
|
575
|
+
}, undefined>, undefined>, undefined>;
|
|
570
576
|
}, undefined>, undefined>;
|
|
571
577
|
/**
|
|
572
578
|
* Registered CUSTOM agent kinds (kind + presentation + container flag) a deployment
|
package/dist/snapshot.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../src/snapshot.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAyB5B,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAKlC;;;;;OAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAEH;;;OAGG;;;;;;;;;;IAEH;;;;;OAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAEH;;;OAGG;;;;;;;;;;;;;;;IAEH;;;;;;OAMG;;;;;;;;;;;;;IAEH;;;;;OAKG;;;;;;;;;IAEH;;;;;;;;OAQG;;;;;IAOH;;;OAGG;;;;IAEH;;;;OAIG;;;;;;;;;;;;;;;;;;;;;IAEH;;;OAGG;;;;;;;;IAEH;;;;;OAKG;;;;;;;;;;;;;;;;;;;;;;;;IAGH;;;;OAIG
|
|
1
|
+
{"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../src/snapshot.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAyB5B,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAKlC;;;;;OAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAEH;;;OAGG;;;;;;;;;;IAEH;;;;;OAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAEH;;;OAGG;;;;;;;;;;;;;;;IAEH;;;;;;OAMG;;;;;;;;;;;;;IAEH;;;;;OAKG;;;;;;;;;IAEH;;;;;;;;OAQG;;;;;IAOH;;;OAGG;;;;IAEH;;;;OAIG;;;;;;;;;;;;;;;;;;;;;IAEH;;;OAGG;;;;;;;;IAEH;;;;;OAKG;;;;;;;;;;;;;;;;;;;;;;;;IAGH;;;;OAIG;;;;;;;;;;;;;IAEH;;;;;;OAMG;;;;;;;;;;;;;aAEH,CAAA;AACF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,uBAAuB,CAAC,CAAA"}
|
package/dist/user-secret.d.ts
CHANGED
|
@@ -45,6 +45,7 @@ export declare const userSecretDescriptorSchema: v.ObjectSchema<{
|
|
|
45
45
|
readonly value: v.StringSchema<undefined>;
|
|
46
46
|
readonly label: v.StringSchema<undefined>;
|
|
47
47
|
}, undefined>, undefined>, undefined>;
|
|
48
|
+
readonly default: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
|
|
48
49
|
}, undefined>, undefined>;
|
|
49
50
|
readonly supportsTest: v.BooleanSchema<undefined>;
|
|
50
51
|
}, undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-secret.d.ts","sourceRoot":"","sources":["../src/user-secret.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAgB5B,oFAAoF;AACpF,eAAO,MAAM,iBAAiB,YAAI,YAAY,CAAU,CAAA;AACxD,eAAO,MAAM,oBAAoB,sDAAgC,CAAA;AACjE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAEvE,+EAA+E;AAC/E,eAAO,MAAM,sBAAsB;;;IAGjC,6DAA6D;;IAE7D,+DAA+D;;;aAG/D,CAAA;AACF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAM3E,iEAAiE;AACjE,eAAO,MAAM,qBAAqB;;IAEhC,6DAA6D;;IAE7D,0EAA0E;;aAE1E,CAAA;AACF,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAE9E,2EAA2E;AAC3E,eAAO,MAAM,oBAAoB;;;aAG/B,CAAA;AACF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAE5E,8DAA8D;AAC9D,eAAO,MAAM,0BAA0B
|
|
1
|
+
{"version":3,"file":"user-secret.d.ts","sourceRoot":"","sources":["../src/user-secret.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAgB5B,oFAAoF;AACpF,eAAO,MAAM,iBAAiB,YAAI,YAAY,CAAU,CAAA;AACxD,eAAO,MAAM,oBAAoB,sDAAgC,CAAA;AACjE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAEvE,+EAA+E;AAC/E,eAAO,MAAM,sBAAsB;;;IAGjC,6DAA6D;;IAE7D,+DAA+D;;;aAG/D,CAAA;AACF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAM3E,iEAAiE;AACjE,eAAO,MAAM,qBAAqB;;IAEhC,6DAA6D;;IAE7D,0EAA0E;;aAE1E,CAAA;AACF,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAE9E,2EAA2E;AAC3E,eAAO,MAAM,oBAAoB;;;aAG/B,CAAA;AACF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAE5E,8DAA8D;AAC9D,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;aAKrC,CAAA;AACF,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,0BAA0B,CAAC,CAAA"}
|
|
@@ -10,6 +10,22 @@ export type TaskLimitMode = v.InferOutput<typeof taskLimitModeSchema>;
|
|
|
10
10
|
/** Per-task-type running-task caps (used when {@link taskLimitModeSchema} is `per_type`). */
|
|
11
11
|
export declare const taskLimitPerTypeSchema: v.RecordSchema<v.PicklistSchema<["feature", "bug", "document", "spike"], undefined>, v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>, v.MaxValueAction<number, 1000, undefined>]>, undefined>;
|
|
12
12
|
export type TaskLimitPerType = v.InferOutput<typeof taskLimitPerTypeSchema>;
|
|
13
|
+
/** A single model's per-1M-token price override. */
|
|
14
|
+
export declare const spendModelPriceSchema: v.ObjectSchema<{
|
|
15
|
+
readonly inputPerMillion: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 0, undefined>]>;
|
|
16
|
+
readonly outputPerMillion: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 0, undefined>]>;
|
|
17
|
+
}, undefined>;
|
|
18
|
+
export type SpendModelPrice = v.InferOutput<typeof spendModelPriceSchema>;
|
|
19
|
+
/**
|
|
20
|
+
* Per-model price overrides, keyed by `provider:model` then bare `provider`
|
|
21
|
+
* (most-specific-first, exactly like the built-in table). Overlaid onto
|
|
22
|
+
* `DEFAULT_SPEND_PRICING.prices` when resolving a workspace's effective pricing.
|
|
23
|
+
*/
|
|
24
|
+
export declare const spendModelPricesSchema: v.RecordSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, v.ObjectSchema<{
|
|
25
|
+
readonly inputPerMillion: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 0, undefined>]>;
|
|
26
|
+
readonly outputPerMillion: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 0, undefined>]>;
|
|
27
|
+
}, undefined>, undefined>;
|
|
28
|
+
export type SpendModelPrices = v.InferOutput<typeof spendModelPricesSchema>;
|
|
13
29
|
/** A workspace's runtime settings. */
|
|
14
30
|
export declare const workspaceSettingsSchema: v.ObjectSchema<{
|
|
15
31
|
/**
|
|
@@ -23,6 +39,25 @@ export declare const workspaceSettingsSchema: v.ObjectSchema<{
|
|
|
23
39
|
readonly taskLimitShared: v.NullableSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>, v.MaxValueAction<number, 1000, undefined>]>, undefined>;
|
|
24
40
|
/** The per-type caps, when {@link taskLimitMode} is `per_type`. Null otherwise. */
|
|
25
41
|
readonly taskLimitPerType: v.NullableSchema<v.RecordSchema<v.PicklistSchema<["feature", "bug", "document", "spike"], undefined>, v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>, v.MaxValueAction<number, 1000, undefined>]>, undefined>, undefined>;
|
|
42
|
+
/** Spend budget currency (ISO 4217). Null ⇒ the built-in default (`EUR`). */
|
|
43
|
+
readonly spendCurrency: v.NullableSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.ToUpperCaseAction, v.LengthAction<string, 3, undefined>, v.RegexAction<string, "currency must be a 3-letter ISO 4217 code">]>, undefined>;
|
|
44
|
+
/**
|
|
45
|
+
* Monthly spend budget in {@link spendCurrency}. Null ⇒ the built-in default
|
|
46
|
+
* (~100 EUR). `0` is intentional and valid — it means "no PAID spend": runs on
|
|
47
|
+
* metered models (direct API keys / Cloudflare Workers AI) are refused at start and
|
|
48
|
+
* paused mid-run, while LOCAL-runner models (keyless) and connected SUBSCRIPTIONS
|
|
49
|
+
* (Claude Code / Codex, flat-rate quota) keep running, since they incur no metered
|
|
50
|
+
* cost. So `0` is the "local-/subscription-only" setting, not a footgun — it's
|
|
51
|
+
* reversible from the UI and clearer than an unbounded "unlimited" that can run up a
|
|
52
|
+
* bill. The gate is per-workspace (see the spend safeguard); web search still costs
|
|
53
|
+
* money, so a `0` budget also blocks paid web searches.
|
|
54
|
+
*/
|
|
55
|
+
readonly spendMonthlyLimit: v.NullableSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 0, undefined>]>, undefined>;
|
|
56
|
+
/** Per-model price overrides overlaid on the base table. Null ⇒ no overrides. */
|
|
57
|
+
readonly spendModelPrices: v.NullableSchema<v.RecordSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, v.ObjectSchema<{
|
|
58
|
+
readonly inputPerMillion: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 0, undefined>]>;
|
|
59
|
+
readonly outputPerMillion: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 0, undefined>]>;
|
|
60
|
+
}, undefined>, undefined>, undefined>;
|
|
26
61
|
}, undefined>;
|
|
27
62
|
export type WorkspaceSettings = v.InferOutput<typeof workspaceSettingsSchema>;
|
|
28
63
|
/** Update a workspace's runtime settings (full replace of the supplied fields). */
|
|
@@ -31,6 +66,12 @@ export declare const updateWorkspaceSettingsSchema: v.ObjectSchema<{
|
|
|
31
66
|
readonly taskLimitMode: v.OptionalSchema<v.PicklistSchema<["off", "shared", "per_type"], undefined>, undefined>;
|
|
32
67
|
readonly taskLimitShared: v.OptionalSchema<v.NullableSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>, v.MaxValueAction<number, 1000, undefined>]>, undefined>, undefined>;
|
|
33
68
|
readonly taskLimitPerType: v.OptionalSchema<v.NullableSchema<v.RecordSchema<v.PicklistSchema<["feature", "bug", "document", "spike"], undefined>, v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>, v.MaxValueAction<number, 1000, undefined>]>, undefined>, undefined>, undefined>;
|
|
69
|
+
readonly spendCurrency: v.OptionalSchema<v.NullableSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.ToUpperCaseAction, v.LengthAction<string, 3, undefined>, v.RegexAction<string, "currency must be a 3-letter ISO 4217 code">]>, undefined>, undefined>;
|
|
70
|
+
readonly spendMonthlyLimit: v.OptionalSchema<v.NullableSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 0, undefined>]>, undefined>, undefined>;
|
|
71
|
+
readonly spendModelPrices: v.OptionalSchema<v.NullableSchema<v.RecordSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, v.ObjectSchema<{
|
|
72
|
+
readonly inputPerMillion: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 0, undefined>]>;
|
|
73
|
+
readonly outputPerMillion: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 0, undefined>]>;
|
|
74
|
+
}, undefined>, undefined>, undefined>, undefined>;
|
|
34
75
|
}, undefined>;
|
|
35
76
|
export type UpdateWorkspaceSettingsInput = v.InferOutput<typeof updateWorkspaceSettingsSchema>;
|
|
36
77
|
//# sourceMappingURL=workspace-settings.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-settings.d.ts","sourceRoot":"","sources":["../src/workspace-settings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAW5B;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,4DAA4C,CAAA;AAC5E,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAIrE,6FAA6F;AAC7F,eAAO,MAAM,sBAAsB,gRAA8C,CAAA;AACjF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAE3E,sCAAsC;AACtC,eAAO,MAAM,uBAAuB;IAClC;;;OAGG;;IAEH,kEAAkE;;IAElE,8EAA8E;;IAE9E,mFAAmF;;
|
|
1
|
+
{"version":3,"file":"workspace-settings.d.ts","sourceRoot":"","sources":["../src/workspace-settings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAW5B;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,4DAA4C,CAAA;AAC5E,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAIrE,6FAA6F;AAC7F,eAAO,MAAM,sBAAsB,gRAA8C,CAAA;AACjF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAoB3E,oDAAoD;AACpD,eAAO,MAAM,qBAAqB;;;aAGhC,CAAA;AACF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAEzE;;;;GAIG;AACH,eAAO,MAAM,sBAAsB;;;yBAGlC,CAAA;AACD,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAE3E,sCAAsC;AACtC,eAAO,MAAM,uBAAuB;IAClC;;;OAGG;;IAEH,kEAAkE;;IAElE,8EAA8E;;IAE9E,mFAAmF;;IAEnF,6EAA6E;;IAE7E;;;;;;;;;;OAUG;;IAEH,iFAAiF;;;;;aAEjF,CAAA;AACF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,uBAAuB,CAAC,CAAA;AAE7E,mFAAmF;AACnF,eAAO,MAAM,6BAA6B;;;;;;;;;;;aAUxC,CAAA;AACF,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,6BAA6B,CAAC,CAAA"}
|
|
@@ -17,6 +17,27 @@ export const taskLimitModeSchema = v.picklist(['off', 'shared', 'per_type']);
|
|
|
17
17
|
const limitSchema = v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(1000));
|
|
18
18
|
/** Per-task-type running-task caps (used when {@link taskLimitModeSchema} is `per_type`). */
|
|
19
19
|
export const taskLimitPerTypeSchema = v.record(createTaskTypeSchema, limitSchema);
|
|
20
|
+
// ---------------------------------------------------------------------------
|
|
21
|
+
// Per-workspace spend budget. Moved out of the deployment-wide env vars
|
|
22
|
+
// (`SPEND_MONTHLY_LIMIT` / `SPEND_CURRENCY` / `SPEND_MODEL_PRICES`) onto the
|
|
23
|
+
// workspace settings row so an operator can tune a workspace's budget in the UI
|
|
24
|
+
// without a redeploy. All three are nullable; null ⇒ fall back to the built-in
|
|
25
|
+
// `DEFAULT_SPEND_PRICING` base table (the spend service resolves the effective
|
|
26
|
+
// pricing per workspace, overlaying the OpenRouter catalog as before).
|
|
27
|
+
// ---------------------------------------------------------------------------
|
|
28
|
+
/** ISO 4217 currency code (3 letters), e.g. `EUR`. */
|
|
29
|
+
const spendCurrencySchema = v.pipe(v.string(), v.trim(), v.toUpperCase(), v.length(3), v.regex(/^[A-Z]{3}$/, 'currency must be a 3-letter ISO 4217 code'));
|
|
30
|
+
/** A single model's per-1M-token price override. */
|
|
31
|
+
export const spendModelPriceSchema = v.object({
|
|
32
|
+
inputPerMillion: v.pipe(v.number(), v.minValue(0)),
|
|
33
|
+
outputPerMillion: v.pipe(v.number(), v.minValue(0)),
|
|
34
|
+
});
|
|
35
|
+
/**
|
|
36
|
+
* Per-model price overrides, keyed by `provider:model` then bare `provider`
|
|
37
|
+
* (most-specific-first, exactly like the built-in table). Overlaid onto
|
|
38
|
+
* `DEFAULT_SPEND_PRICING.prices` when resolving a workspace's effective pricing.
|
|
39
|
+
*/
|
|
40
|
+
export const spendModelPricesSchema = v.record(v.pipe(v.string(), v.trim(), v.minLength(1)), spendModelPriceSchema);
|
|
20
41
|
/** A workspace's runtime settings. */
|
|
21
42
|
export const workspaceSettingsSchema = v.object({
|
|
22
43
|
/**
|
|
@@ -30,6 +51,22 @@ export const workspaceSettingsSchema = v.object({
|
|
|
30
51
|
taskLimitShared: v.nullable(limitSchema),
|
|
31
52
|
/** The per-type caps, when {@link taskLimitMode} is `per_type`. Null otherwise. */
|
|
32
53
|
taskLimitPerType: v.nullable(taskLimitPerTypeSchema),
|
|
54
|
+
/** Spend budget currency (ISO 4217). Null ⇒ the built-in default (`EUR`). */
|
|
55
|
+
spendCurrency: v.nullable(spendCurrencySchema),
|
|
56
|
+
/**
|
|
57
|
+
* Monthly spend budget in {@link spendCurrency}. Null ⇒ the built-in default
|
|
58
|
+
* (~100 EUR). `0` is intentional and valid — it means "no PAID spend": runs on
|
|
59
|
+
* metered models (direct API keys / Cloudflare Workers AI) are refused at start and
|
|
60
|
+
* paused mid-run, while LOCAL-runner models (keyless) and connected SUBSCRIPTIONS
|
|
61
|
+
* (Claude Code / Codex, flat-rate quota) keep running, since they incur no metered
|
|
62
|
+
* cost. So `0` is the "local-/subscription-only" setting, not a footgun — it's
|
|
63
|
+
* reversible from the UI and clearer than an unbounded "unlimited" that can run up a
|
|
64
|
+
* bill. The gate is per-workspace (see the spend safeguard); web search still costs
|
|
65
|
+
* money, so a `0` budget also blocks paid web searches.
|
|
66
|
+
*/
|
|
67
|
+
spendMonthlyLimit: v.nullable(v.pipe(v.number(), v.minValue(0))),
|
|
68
|
+
/** Per-model price overrides overlaid on the base table. Null ⇒ no overrides. */
|
|
69
|
+
spendModelPrices: v.nullable(spendModelPricesSchema),
|
|
33
70
|
});
|
|
34
71
|
/** Update a workspace's runtime settings (full replace of the supplied fields). */
|
|
35
72
|
export const updateWorkspaceSettingsSchema = v.object({
|
|
@@ -37,5 +74,8 @@ export const updateWorkspaceSettingsSchema = v.object({
|
|
|
37
74
|
taskLimitMode: v.optional(taskLimitModeSchema),
|
|
38
75
|
taskLimitShared: v.optional(v.nullable(limitSchema)),
|
|
39
76
|
taskLimitPerType: v.optional(v.nullable(taskLimitPerTypeSchema)),
|
|
77
|
+
spendCurrency: v.optional(v.nullable(spendCurrencySchema)),
|
|
78
|
+
spendMonthlyLimit: v.optional(v.nullable(v.pipe(v.number(), v.minValue(0)))),
|
|
79
|
+
spendModelPrices: v.optional(v.nullable(spendModelPricesSchema)),
|
|
40
80
|
});
|
|
41
81
|
//# sourceMappingURL=workspace-settings.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-settings.js","sourceRoot":"","sources":["../src/workspace-settings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAC5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAEtD,8EAA8E;AAC9E,iFAAiF;AACjF,8EAA8E;AAC9E,kFAAkF;AAClF,oFAAoF;AACpF,gFAAgF;AAChF,8EAA8E;AAE9E;;;;;GAKG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAA;AAG5E,MAAM,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;AAEpF,6FAA6F;AAC7F,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC,oBAAoB,EAAE,WAAW,CAAC,CAAA;AAGjF,sCAAsC;AACtC,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C;;;OAGG;IACH,wBAAwB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC7F,kEAAkE;IAClE,aAAa,EAAE,mBAAmB;IAClC,8EAA8E;IAC9E,eAAe,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC;IACxC,mFAAmF;IACnF,gBAAgB,EAAE,CAAC,CAAC,QAAQ,CAAC,sBAAsB,CAAC;CACrD,CAAC,CAAA;AAGF,mFAAmF;AACnF,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC,MAAM,CAAC;IACpD,wBAAwB,EAAE,CAAC,CAAC,QAAQ,CAClC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CACpE;IACD,aAAa,EAAE,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IAC9C,eAAe,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACpD,gBAAgB,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;CACjE,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"workspace-settings.js","sourceRoot":"","sources":["../src/workspace-settings.ts"],"names":[],"mappings":"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"}
|