@cat-factory/contracts 0.147.0 → 0.148.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/agent-presentation.d.ts +16 -10
- package/dist/agent-presentation.d.ts.map +1 -1
- package/dist/agent-presentation.js +17 -6
- package/dist/agent-presentation.js.map +1 -1
- package/dist/public-api-keys.d.ts +6 -0
- package/dist/public-api-keys.d.ts.map +1 -1
- package/dist/public-api-keys.js +2 -0
- package/dist/public-api-keys.js.map +1 -1
- package/dist/result-views.d.ts +25 -0
- package/dist/result-views.d.ts.map +1 -1
- package/dist/result-views.js +43 -9
- package/dist/result-views.js.map +1 -1
- package/dist/routes/public-api.d.ts +2 -0
- package/dist/routes/public-api.d.ts.map +1 -1
- package/dist/routes/workspaces.d.ts +2 -2
- package/dist/snapshot.d.ts +1 -1
- package/package.json +1 -1
|
@@ -20,12 +20,15 @@ export declare const agentPresentationSchema: v.ObjectSchema<{
|
|
|
20
20
|
/** Palette section; omitted ⇒ the kind is not a standalone palette block (e.g. a companion). */
|
|
21
21
|
readonly category: v.OptionalSchema<v.PicklistSchema<["review", "design", "build", "test", "docs", "gates"], undefined>, undefined>;
|
|
22
22
|
/**
|
|
23
|
-
* Id of a dedicated result-view component to open instead of the generic prose panel
|
|
24
|
-
* (e.g. `generic-structured`
|
|
25
|
-
*
|
|
26
|
-
*
|
|
23
|
+
* Id of a dedicated result-view component to open instead of the generic prose panel.
|
|
24
|
+
* Either a canonical BUILT-IN id ({@link RESULT_VIEW_IDS}, e.g. `generic-structured`) OR
|
|
25
|
+
* a CONSUMER-namespaced id (`<ns>:<name>`, e.g. `acme:security-report`) that a deployment
|
|
26
|
+
* registers a frontend component for through the modular `resultViews` slot. A bare id that
|
|
27
|
+
* is not a built-in still fails validation (the typo guardrail); a namespaced id is trusted
|
|
28
|
+
* to the deployment and paired on the frontend (an unpaired one degrades to the generic
|
|
29
|
+
* panel — the `pairById` `missing` bucket). Omitted ⇒ the generic step-detail panel.
|
|
27
30
|
*/
|
|
28
|
-
readonly resultView: v.OptionalSchema<v.PicklistSchema<readonly ["requirements-review", "clarity-review", "brainstorm", "tester", "human-test", "visual-confirm", "gate", "consensus-session", "generic-structured", "service-spec", "follow-ups", "merger", "initiative-tracker", "initiative-planning", "doc-interview", "fork-decision", "pr-review", "ralph-loop"], undefined>, undefined>;
|
|
31
|
+
readonly resultView: v.OptionalSchema<v.UnionSchema<[v.PicklistSchema<readonly ["requirements-review", "clarity-review", "brainstorm", "tester", "human-test", "visual-confirm", "gate", "consensus-session", "generic-structured", "service-spec", "follow-ups", "merger", "initiative-tracker", "initiative-planning", "doc-interview", "fork-decision", "pr-review", "ralph-loop"], undefined>, v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "Consumer result-view id must be <namespace>:<name> (lowercase a-z0-9, dash-separated)">]>], undefined>, undefined>;
|
|
29
32
|
}, undefined>;
|
|
30
33
|
export type AgentPresentation = v.InferOutput<typeof agentPresentationSchema>;
|
|
31
34
|
/** A registered agent kind's id + presentation + whether it runs in a container — the
|
|
@@ -49,12 +52,15 @@ export declare const customAgentKindSchema: v.ObjectSchema<{
|
|
|
49
52
|
/** Palette section; omitted ⇒ the kind is not a standalone palette block (e.g. a companion). */
|
|
50
53
|
readonly category: v.OptionalSchema<v.PicklistSchema<["review", "design", "build", "test", "docs", "gates"], undefined>, undefined>;
|
|
51
54
|
/**
|
|
52
|
-
* Id of a dedicated result-view component to open instead of the generic prose panel
|
|
53
|
-
* (e.g. `generic-structured`
|
|
54
|
-
*
|
|
55
|
-
*
|
|
55
|
+
* Id of a dedicated result-view component to open instead of the generic prose panel.
|
|
56
|
+
* Either a canonical BUILT-IN id ({@link RESULT_VIEW_IDS}, e.g. `generic-structured`) OR
|
|
57
|
+
* a CONSUMER-namespaced id (`<ns>:<name>`, e.g. `acme:security-report`) that a deployment
|
|
58
|
+
* registers a frontend component for through the modular `resultViews` slot. A bare id that
|
|
59
|
+
* is not a built-in still fails validation (the typo guardrail); a namespaced id is trusted
|
|
60
|
+
* to the deployment and paired on the frontend (an unpaired one degrades to the generic
|
|
61
|
+
* panel — the `pairById` `missing` bucket). Omitted ⇒ the generic step-detail panel.
|
|
56
62
|
*/
|
|
57
|
-
readonly resultView: v.OptionalSchema<v.PicklistSchema<readonly ["requirements-review", "clarity-review", "brainstorm", "tester", "human-test", "visual-confirm", "gate", "consensus-session", "generic-structured", "service-spec", "follow-ups", "merger", "initiative-tracker", "initiative-planning", "doc-interview", "fork-decision", "pr-review", "ralph-loop"], undefined>, undefined>;
|
|
63
|
+
readonly resultView: v.OptionalSchema<v.UnionSchema<[v.PicklistSchema<readonly ["requirements-review", "clarity-review", "brainstorm", "tester", "human-test", "visual-confirm", "gate", "consensus-session", "generic-structured", "service-spec", "follow-ups", "merger", "initiative-tracker", "initiative-planning", "doc-interview", "fork-decision", "pr-review", "ralph-loop"], undefined>, v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "Consumer result-view id must be <namespace>:<name> (lowercase a-z0-9, dash-separated)">]>], undefined>, undefined>;
|
|
58
64
|
}, undefined>;
|
|
59
65
|
/** Whether the kind runs in a container (vs an inline LLM call). */
|
|
60
66
|
readonly container: v.BooleanSchema<undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-presentation.d.ts","sourceRoot":"","sources":["../src/agent-presentation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAY5B,0FAA0F;AAC1F,eAAO,MAAM,mBAAmB,qFAO9B,CAAA;AACF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,mBAAmB,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"agent-presentation.d.ts","sourceRoot":"","sources":["../src/agent-presentation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAY5B,0FAA0F;AAC1F,eAAO,MAAM,mBAAmB,qFAO9B,CAAA;AACF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAiBrE,4EAA4E;AAC5E,eAAO,MAAM,uBAAuB;IAClC,4CAA4C;;IAE5C,2CAA2C;;IAE3C,uCAAuC;;IAEvC;;;;;OAKG;;IAEH,gGAAgG;;IAEhG;;;;;;;;OAQG;;aAEH,CAAA;AACF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,uBAAuB,CAAC,CAAA;AAE7E;6DAC6D;AAC7D,eAAO,MAAM,qBAAqB;;;QA9BhC,4CAA4C;;QAE5C,2CAA2C;;QAE3C,uCAAuC;;QAEvC;;;;;WAKG;;QAEH,gGAAgG;;QAEhG;;;;;;;;WAQG;;;IAUH,oEAAoE;;aAEpE,CAAA;AACF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,qBAAqB,CAAC,CAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as v from 'valibot';
|
|
2
2
|
import { agentKindSchema } from './primitives.js';
|
|
3
|
-
import { RESULT_VIEW_IDS } from './result-views.js';
|
|
3
|
+
import { NAMESPACED_RESULT_VIEW_ID_PATTERN, RESULT_VIEW_IDS } from './result-views.js';
|
|
4
4
|
// ---------------------------------------------------------------------------
|
|
5
5
|
// Presentation metadata for an agent kind — the display fields the SPA palette,
|
|
6
6
|
// timeline and result-view host render. A registered (custom) agent supplies this so
|
|
@@ -17,6 +17,14 @@ export const agentCategorySchema = v.picklist([
|
|
|
17
17
|
'docs',
|
|
18
18
|
'gates',
|
|
19
19
|
]);
|
|
20
|
+
/**
|
|
21
|
+
* A CONSUMER-namespaced result-view id: `<ns>:<name>`, each segment a lowercase
|
|
22
|
+
* `a-z0-9`(-separated) token (e.g. `acme:security-report`). The colon distinguishes it
|
|
23
|
+
* from a bare built-in id, so a namespaced consumer view is accepted while a typo'd
|
|
24
|
+
* built-in (no colon, not in the picklist) is still rejected. The frontend pairs it to a
|
|
25
|
+
* deployment-registered component; an unpaired id degrades to the generic panel.
|
|
26
|
+
*/
|
|
27
|
+
const namespacedResultViewId = v.pipe(v.string(), v.regex(NAMESPACED_RESULT_VIEW_ID_PATTERN, 'Consumer result-view id must be <namespace>:<name> (lowercase a-z0-9, dash-separated)'));
|
|
20
28
|
/** Display metadata for one agent kind (the wire shape sent to the SPA). */
|
|
21
29
|
export const agentPresentationSchema = v.object({
|
|
22
30
|
/** Human label, e.g. `Security Auditor`. */
|
|
@@ -35,12 +43,15 @@ export const agentPresentationSchema = v.object({
|
|
|
35
43
|
/** Palette section; omitted ⇒ the kind is not a standalone palette block (e.g. a companion). */
|
|
36
44
|
category: v.optional(agentCategorySchema),
|
|
37
45
|
/**
|
|
38
|
-
* Id of a dedicated result-view component to open instead of the generic prose panel
|
|
39
|
-
* (e.g. `generic-structured`
|
|
40
|
-
*
|
|
41
|
-
*
|
|
46
|
+
* Id of a dedicated result-view component to open instead of the generic prose panel.
|
|
47
|
+
* Either a canonical BUILT-IN id ({@link RESULT_VIEW_IDS}, e.g. `generic-structured`) OR
|
|
48
|
+
* a CONSUMER-namespaced id (`<ns>:<name>`, e.g. `acme:security-report`) that a deployment
|
|
49
|
+
* registers a frontend component for through the modular `resultViews` slot. A bare id that
|
|
50
|
+
* is not a built-in still fails validation (the typo guardrail); a namespaced id is trusted
|
|
51
|
+
* to the deployment and paired on the frontend (an unpaired one degrades to the generic
|
|
52
|
+
* panel — the `pairById` `missing` bucket). Omitted ⇒ the generic step-detail panel.
|
|
42
53
|
*/
|
|
43
|
-
resultView: v.optional(v.picklist(RESULT_VIEW_IDS)),
|
|
54
|
+
resultView: v.optional(v.union([v.picklist(RESULT_VIEW_IDS), namespacedResultViewId])),
|
|
44
55
|
});
|
|
45
56
|
/** A registered agent kind's id + presentation + whether it runs in a container — the
|
|
46
57
|
* snapshot entry the SPA merges into its palette catalog. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-presentation.js","sourceRoot":"","sources":["../src/agent-presentation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"agent-presentation.js","sourceRoot":"","sources":["../src/agent-presentation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,EAAE,iCAAiC,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEtF,8EAA8E;AAC9E,gFAAgF;AAChF,qFAAqF;AACrF,uFAAuF;AACvF,sFAAsF;AACtF,mFAAmF;AACnF,8EAA8E;AAE9E,0FAA0F;AAC1F,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,QAAQ,CAAC;IAC5C,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,MAAM;IACN,MAAM;IACN,OAAO;CACR,CAAC,CAAA;AAGF;;;;;;GAMG;AACH,MAAM,sBAAsB,GAAG,CAAC,CAAC,IAAI,CACnC,CAAC,CAAC,MAAM,EAAE,EACV,CAAC,CAAC,KAAK,CACL,iCAAiC,EACjC,uFAAuF,CACxF,CACF,CAAA;AAED,4EAA4E;AAC5E,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,4CAA4C;IAC5C,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACpE,2CAA2C;IAC3C,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC1D,uCAAuC;IACvC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAC1D;;;;;OAKG;IACH,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC3E,gGAAgG;IAChG,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IACzC;;;;;;;;OAQG;IACH,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,sBAAsB,CAAC,CAAC,CAAC;CACvF,CAAC,CAAA;AAGF;6DAC6D;AAC7D,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,IAAI,EAAE,eAAe;IACrB,YAAY,EAAE,uBAAuB;IACrC,oEAAoE;IACpE,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE;CACvB,CAAC,CAAA"}
|
|
@@ -24,6 +24,8 @@ export declare const publicApiKeySchema: v.ObjectSchema<{
|
|
|
24
24
|
readonly label: v.StringSchema<undefined>;
|
|
25
25
|
/** What the key is allowed to do on `/api/v1` (read ⊂ write ⊂ admin). */
|
|
26
26
|
readonly scope: v.PicklistSchema<readonly ["read", "write", "admin"], undefined>;
|
|
27
|
+
/** The user who minted the key (`usr_*`), for audit/UI attribution; `null` when unknown. */
|
|
28
|
+
readonly createdByUserId: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
27
29
|
readonly createdAt: v.NumberSchema<undefined>;
|
|
28
30
|
readonly lastUsedAt: v.NullableSchema<v.NumberSchema<undefined>, undefined>;
|
|
29
31
|
/** Set when the key was revoked (tombstone); a revoked key never authenticates. */
|
|
@@ -39,6 +41,8 @@ export declare const publicApiKeyListResultSchema: v.ObjectSchema<{
|
|
|
39
41
|
readonly label: v.StringSchema<undefined>;
|
|
40
42
|
/** What the key is allowed to do on `/api/v1` (read ⊂ write ⊂ admin). */
|
|
41
43
|
readonly scope: v.PicklistSchema<readonly ["read", "write", "admin"], undefined>;
|
|
44
|
+
/** The user who minted the key (`usr_*`), for audit/UI attribution; `null` when unknown. */
|
|
45
|
+
readonly createdByUserId: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
42
46
|
readonly createdAt: v.NumberSchema<undefined>;
|
|
43
47
|
readonly lastUsedAt: v.NullableSchema<v.NumberSchema<undefined>, undefined>;
|
|
44
48
|
/** Set when the key was revoked (tombstone); a revoked key never authenticates. */
|
|
@@ -70,6 +74,8 @@ export declare const createdPublicApiKeySchema: v.ObjectSchema<{
|
|
|
70
74
|
readonly label: v.StringSchema<undefined>;
|
|
71
75
|
/** What the key is allowed to do on `/api/v1` (read ⊂ write ⊂ admin). */
|
|
72
76
|
readonly scope: v.PicklistSchema<readonly ["read", "write", "admin"], undefined>;
|
|
77
|
+
/** The user who minted the key (`usr_*`), for audit/UI attribution; `null` when unknown. */
|
|
78
|
+
readonly createdByUserId: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
73
79
|
readonly createdAt: v.NumberSchema<undefined>;
|
|
74
80
|
readonly lastUsedAt: v.NullableSchema<v.NumberSchema<undefined>, undefined>;
|
|
75
81
|
/** Set when the key was revoked (tombstone); a revoked key never authenticates. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public-api-keys.d.ts","sourceRoot":"","sources":["../src/public-api-keys.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAiB5B;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,iBAAiB,YAAI,MAAM,EAAE,OAAO,EAAE,OAAO,CAAU,CAAA;AACpE,eAAO,MAAM,oBAAoB,kEAAgC,CAAA;AACjE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAEvE,kFAAkF;AAClF,eAAO,MAAM,kBAAkB;IAC7B,uEAAuE;;;;;IAKvE,yEAAyE;;;;
|
|
1
|
+
{"version":3,"file":"public-api-keys.d.ts","sourceRoot":"","sources":["../src/public-api-keys.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAiB5B;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,iBAAiB,YAAI,MAAM,EAAE,OAAO,EAAE,OAAO,CAAU,CAAA;AACpE,eAAO,MAAM,oBAAoB,kEAAgC,CAAA;AACjE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAEvE,kFAAkF;AAClF,eAAO,MAAM,kBAAkB;IAC7B,uEAAuE;;;;;IAKvE,yEAAyE;;IAEzE,4FAA4F;;;;IAI5F,mFAAmF;;aAEnF,CAAA;AACF,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAEnE,eAAO,MAAM,4BAA4B;;QAhBvC,uEAAuE;;;;;QAKvE,yEAAyE;;QAEzE,4FAA4F;;;;QAI5F,mFAAmF;;;aAKM,CAAA;AAC3F,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,4BAA4B,CAAC,CAAA;AAEvF;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB;;;aAGnC,CAAA;AACF,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,wBAAwB,CAAC,CAAA;AAEpF;;;GAGG;AACH,eAAO,MAAM,yBAAyB;;QAnCpC,uEAAuE;;;;;QAKvE,yEAAyE;;QAEzE,4FAA4F;;;;QAI5F,mFAAmF;;;IA0BnF,sEAAsE;;aAEtE,CAAA;AACF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,yBAAyB,CAAC,CAAA"}
|
package/dist/public-api-keys.js
CHANGED
|
@@ -37,6 +37,8 @@ export const publicApiKeySchema = v.object({
|
|
|
37
37
|
label: v.string(),
|
|
38
38
|
/** What the key is allowed to do on `/api/v1` (read ⊂ write ⊂ admin). */
|
|
39
39
|
scope: publicApiScopeSchema,
|
|
40
|
+
/** The user who minted the key (`usr_*`), for audit/UI attribution; `null` when unknown. */
|
|
41
|
+
createdByUserId: v.nullable(v.string()),
|
|
40
42
|
createdAt: v.number(),
|
|
41
43
|
lastUsedAt: v.nullable(v.number()),
|
|
42
44
|
/** Set when the key was revoked (tombstone); a revoked key never authenticates. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public-api-keys.js","sourceRoot":"","sources":["../src/public-api-keys.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAE5B,8EAA8E;AAC9E,yCAAyC;AACzC,EAAE;AACF,+EAA+E;AAC/E,8EAA8E;AAC9E,2EAA2E;AAC3E,8EAA8E;AAC9E,wEAAwE;AACxE,gFAAgF;AAChF,gEAAgE;AAChE,EAAE;AACF,+EAA+E;AAC/E,2BAA2B;AAC3B,8EAA8E;AAE9E;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAU,CAAA;AACpE,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAA;AAGjE,kFAAkF;AAClF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,uEAAuE;IACvE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,yEAAyE;IACzE,KAAK,EAAE,oBAAoB;IAC3B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAClC,mFAAmF;IACnF,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;CAClC,CAAC,CAAA;AAGF,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAA;AAG3F;;;;;GAKG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACrE,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,oBAAoB,EAAE,OAAO,CAAC;CACjD,CAAC,CAAA;AAGF;;;GAGG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,GAAG,EAAE,kBAAkB;IACvB,sEAAsE;IACtE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;CACnB,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"public-api-keys.js","sourceRoot":"","sources":["../src/public-api-keys.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAE5B,8EAA8E;AAC9E,yCAAyC;AACzC,EAAE;AACF,+EAA+E;AAC/E,8EAA8E;AAC9E,2EAA2E;AAC3E,8EAA8E;AAC9E,wEAAwE;AACxE,gFAAgF;AAChF,gEAAgE;AAChE,EAAE;AACF,+EAA+E;AAC/E,2BAA2B;AAC3B,8EAA8E;AAE9E;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAU,CAAA;AACpE,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAA;AAGjE,kFAAkF;AAClF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,uEAAuE;IACvE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,yEAAyE;IACzE,KAAK,EAAE,oBAAoB;IAC3B,4FAA4F;IAC5F,eAAe,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IACvC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAClC,mFAAmF;IACnF,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;CAClC,CAAC,CAAA;AAGF,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAA;AAG3F;;;;;GAKG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACrE,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,oBAAoB,EAAE,OAAO,CAAC;CACjD,CAAC,CAAA;AAGF;;;GAGG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,GAAG,EAAE,kBAAkB;IACvB,sEAAsE;IACtE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;CACnB,CAAC,CAAA"}
|
package/dist/result-views.d.ts
CHANGED
|
@@ -2,4 +2,29 @@ export declare const RESULT_VIEW_IDS: readonly ['requirements-review', 'clarity-
|
|
|
2
2
|
export type ResultViewId = (typeof RESULT_VIEW_IDS)[number];
|
|
3
3
|
/** Set form, for `O(1)` membership checks (e.g. boot-time registration validation). */
|
|
4
4
|
export declare const RESULT_VIEW_ID_SET: ReadonlySet<string>;
|
|
5
|
+
/**
|
|
6
|
+
* A CONSUMER-namespaced result-view id: `<ns>:<name>`, each segment a lowercase
|
|
7
|
+
* `a-z0-9` dash-separated token (e.g. `acme:security-report`). The colon distinguishes a
|
|
8
|
+
* deployment-provided view id from a bare built-in one. The SINGLE source of truth for the
|
|
9
|
+
* rule, shared by `agentPresentationSchema` (wire validation) and the backend registration
|
|
10
|
+
* validator so they can't drift.
|
|
11
|
+
*/
|
|
12
|
+
export declare const NAMESPACED_RESULT_VIEW_ID_PATTERN: RegExp;
|
|
13
|
+
/** Whether `id` is a well-formed consumer-namespaced result-view id (`<ns>:<name>`). */
|
|
14
|
+
export declare function isNamespacedResultViewId(id: string): boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Whether `id` is an acceptable `presentation.resultView`: a canonical BUILT-IN id (drawn from
|
|
17
|
+
* `builtInIds`, defaulting to {@link RESULT_VIEW_ID_SET}) OR a consumer-namespaced one. A bare id
|
|
18
|
+
* that is not a built-in is rejected (the typo guardrail).
|
|
19
|
+
*
|
|
20
|
+
* This is the SINGLE composed rule the backend registration validator (`validateRegistrations`)
|
|
21
|
+
* checks against — it must not re-open-code `has(id) || isNamespacedResultViewId(id)`. The wire
|
|
22
|
+
* schema (`agentPresentationSchema.resultView`) expresses the SAME rule as a valibot union
|
|
23
|
+
* (`picklist ∪ namespaced`) rather than calling this, because the union keeps the built-in
|
|
24
|
+
* picklist's literal-type narrowing that a boolean predicate would erase. Both sides share the
|
|
25
|
+
* underlying atoms — {@link RESULT_VIEW_ID_SET} and {@link NAMESPACED_RESULT_VIEW_ID_PATTERN} —
|
|
26
|
+
* so they can't drift. The `builtInIds` parameter lets the validator inject its (overridable)
|
|
27
|
+
* known-id set while keeping the composition here.
|
|
28
|
+
*/
|
|
29
|
+
export declare function isValidResultViewId(id: string, builtInIds?: ReadonlySet<string>): boolean;
|
|
5
30
|
//# sourceMappingURL=result-views.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"result-views.d.ts","sourceRoot":"","sources":["../src/result-views.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"result-views.d.ts","sourceRoot":"","sources":["../src/result-views.ts"],"names":[],"mappings":"AAqBA,eAAO,MAAM,eAAe,YAC1B,qBAAqB,EACrB,gBAAgB,EAChB,YAAY,EACZ,QAAQ,EACR,YAAY,EACZ,gBAAgB,EAChB,MAAM,EACN,mBAAmB,EACnB,oBAAoB,EACpB,cAAc,EACd,YAAY,EACZ,QAAQ,EACR,oBAAoB,EACpB,qBAAqB,EACrB,eAAe,EACf,eAAe,EACf,WAAW,EACX,YAAY,CACJ,CAAA;AAEV,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAA;AAE3D,uFAAuF;AACvF,eAAO,MAAM,kBAAkB,EAAE,WAAW,CAAC,MAAM,CAA4B,CAAA;AAE/E;;;;;;GAMG;AACH,eAAO,MAAM,iCAAiC,QACS,CAAA;AAEvD,wFAAwF;AACxF,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAE5D;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mBAAmB,CACjC,EAAE,EAAE,MAAM,EACV,UAAU,GAAE,WAAW,CAAC,MAAM,CAAsB,GACnD,OAAO,CAET"}
|
package/dist/result-views.js
CHANGED
|
@@ -1,17 +1,22 @@
|
|
|
1
1
|
// ---------------------------------------------------------------------------
|
|
2
|
-
// The canonical set of dedicated result-view ids — the
|
|
3
|
-
// `StepResultViewHost.vue`
|
|
2
|
+
// The canonical set of BUILT-IN dedicated result-view ids — the windows the SPA's
|
|
3
|
+
// `StepResultViewHost.vue` mounts for an agent step (`presentation.resultView`).
|
|
4
4
|
//
|
|
5
|
-
// This is the SHARED source of truth across the wire boundary: the
|
|
6
|
-
//
|
|
7
|
-
//
|
|
8
|
-
//
|
|
9
|
-
//
|
|
5
|
+
// This is the SHARED source of truth for the built-ins across the wire boundary: the
|
|
6
|
+
// frontend's first-party `resultViews`-slot module (`app/modular/result-views.ts`)
|
|
7
|
+
// contributes exactly these ids, and `agentPresentationSchema`'s `resultView` accepts one of
|
|
8
|
+
// them OR a consumer-namespaced id (`<ns>:<name>`). A BARE id that is not a built-in still
|
|
9
|
+
// fails validation at registration / snapshot time (the typo guardrail), while a NAMESPACED
|
|
10
|
+
// consumer id is trusted to the deployment and paired on the frontend against its own
|
|
11
|
+
// `registerAppModule`-contributed component. Adding a NEW built-in bespoke view is a two-step
|
|
12
|
+
// contract:
|
|
10
13
|
// 1. add its id here, and
|
|
11
|
-
// 2.
|
|
14
|
+
// 2. contribute `{ id: '<id>', component }` to the first-party `resultViews` slot.
|
|
12
15
|
//
|
|
13
16
|
// A custom structured agent that doesn't ship its own component uses `generic-structured`
|
|
14
|
-
// (the shared read-only JSON viewer) and needs no frontend change at all.
|
|
17
|
+
// (the shared read-only JSON viewer) and needs no frontend change at all. A consumer that
|
|
18
|
+
// DOES ship its own window registers both the agent kind and the view component through the
|
|
19
|
+
// modular `agentKinds` / `resultViews` slots — no built-in id needed here.
|
|
15
20
|
// ---------------------------------------------------------------------------
|
|
16
21
|
export const RESULT_VIEW_IDS = [
|
|
17
22
|
'requirements-review',
|
|
@@ -35,4 +40,33 @@ export const RESULT_VIEW_IDS = [
|
|
|
35
40
|
];
|
|
36
41
|
/** Set form, for `O(1)` membership checks (e.g. boot-time registration validation). */
|
|
37
42
|
export const RESULT_VIEW_ID_SET = new Set(RESULT_VIEW_IDS);
|
|
43
|
+
/**
|
|
44
|
+
* A CONSUMER-namespaced result-view id: `<ns>:<name>`, each segment a lowercase
|
|
45
|
+
* `a-z0-9` dash-separated token (e.g. `acme:security-report`). The colon distinguishes a
|
|
46
|
+
* deployment-provided view id from a bare built-in one. The SINGLE source of truth for the
|
|
47
|
+
* rule, shared by `agentPresentationSchema` (wire validation) and the backend registration
|
|
48
|
+
* validator so they can't drift.
|
|
49
|
+
*/
|
|
50
|
+
export const NAMESPACED_RESULT_VIEW_ID_PATTERN = /^[a-z0-9]+(?:-[a-z0-9]+)*:[a-z0-9]+(?:-[a-z0-9]+)*$/;
|
|
51
|
+
/** Whether `id` is a well-formed consumer-namespaced result-view id (`<ns>:<name>`). */
|
|
52
|
+
export function isNamespacedResultViewId(id) {
|
|
53
|
+
return NAMESPACED_RESULT_VIEW_ID_PATTERN.test(id);
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Whether `id` is an acceptable `presentation.resultView`: a canonical BUILT-IN id (drawn from
|
|
57
|
+
* `builtInIds`, defaulting to {@link RESULT_VIEW_ID_SET}) OR a consumer-namespaced one. A bare id
|
|
58
|
+
* that is not a built-in is rejected (the typo guardrail).
|
|
59
|
+
*
|
|
60
|
+
* This is the SINGLE composed rule the backend registration validator (`validateRegistrations`)
|
|
61
|
+
* checks against — it must not re-open-code `has(id) || isNamespacedResultViewId(id)`. The wire
|
|
62
|
+
* schema (`agentPresentationSchema.resultView`) expresses the SAME rule as a valibot union
|
|
63
|
+
* (`picklist ∪ namespaced`) rather than calling this, because the union keeps the built-in
|
|
64
|
+
* picklist's literal-type narrowing that a boolean predicate would erase. Both sides share the
|
|
65
|
+
* underlying atoms — {@link RESULT_VIEW_ID_SET} and {@link NAMESPACED_RESULT_VIEW_ID_PATTERN} —
|
|
66
|
+
* so they can't drift. The `builtInIds` parameter lets the validator inject its (overridable)
|
|
67
|
+
* known-id set while keeping the composition here.
|
|
68
|
+
*/
|
|
69
|
+
export function isValidResultViewId(id, builtInIds = RESULT_VIEW_ID_SET) {
|
|
70
|
+
return builtInIds.has(id) || isNamespacedResultViewId(id);
|
|
71
|
+
}
|
|
38
72
|
//# sourceMappingURL=result-views.js.map
|
package/dist/result-views.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"result-views.js","sourceRoot":"","sources":["../src/result-views.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,
|
|
1
|
+
{"version":3,"file":"result-views.js","sourceRoot":"","sources":["../src/result-views.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,kFAAkF;AAClF,iFAAiF;AACjF,EAAE;AACF,qFAAqF;AACrF,mFAAmF;AACnF,6FAA6F;AAC7F,2FAA2F;AAC3F,4FAA4F;AAC5F,sFAAsF;AACtF,8FAA8F;AAC9F,YAAY;AACZ,4BAA4B;AAC5B,qFAAqF;AACrF,EAAE;AACF,0FAA0F;AAC1F,0FAA0F;AAC1F,4FAA4F;AAC5F,2EAA2E;AAC3E,8EAA8E;AAE9E,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,qBAAqB;IACrB,gBAAgB;IAChB,YAAY;IACZ,QAAQ;IACR,YAAY;IACZ,gBAAgB;IAChB,MAAM;IACN,mBAAmB;IACnB,oBAAoB;IACpB,cAAc;IACd,YAAY;IACZ,QAAQ;IACR,oBAAoB;IACpB,qBAAqB;IACrB,eAAe;IACf,eAAe;IACf,WAAW;IACX,YAAY;CACJ,CAAA;AAIV,uFAAuF;AACvF,MAAM,CAAC,MAAM,kBAAkB,GAAwB,IAAI,GAAG,CAAC,eAAe,CAAC,CAAA;AAE/E;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAC5C,qDAAqD,CAAA;AAEvD,wFAAwF;AACxF,MAAM,UAAU,wBAAwB,CAAC,EAAU;IACjD,OAAO,iCAAiC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AACnD,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,mBAAmB,CACjC,EAAU,EACV,UAAU,GAAwB,kBAAkB;IAEpD,OAAO,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,wBAAwB,CAAC,EAAE,CAAC,CAAA;AAC3D,CAAC"}
|
|
@@ -32,6 +32,7 @@ export declare const listPublicApiKeysContract: {
|
|
|
32
32
|
readonly workspaceId: import("valibot").StringSchema<undefined>;
|
|
33
33
|
readonly label: import("valibot").StringSchema<undefined>;
|
|
34
34
|
readonly scope: import("valibot").PicklistSchema<readonly ["read", "write", "admin"], undefined>;
|
|
35
|
+
readonly createdByUserId: import("valibot").NullableSchema<import("valibot").StringSchema<undefined>, undefined>;
|
|
35
36
|
readonly createdAt: import("valibot").NumberSchema<undefined>;
|
|
36
37
|
readonly lastUsedAt: import("valibot").NullableSchema<import("valibot").NumberSchema<undefined>, undefined>;
|
|
37
38
|
readonly revokedAt: import("valibot").NullableSchema<import("valibot").NumberSchema<undefined>, undefined>;
|
|
@@ -76,6 +77,7 @@ export declare const createPublicApiKeyContract: {
|
|
|
76
77
|
readonly workspaceId: import("valibot").StringSchema<undefined>;
|
|
77
78
|
readonly label: import("valibot").StringSchema<undefined>;
|
|
78
79
|
readonly scope: import("valibot").PicklistSchema<readonly ["read", "write", "admin"], undefined>;
|
|
80
|
+
readonly createdByUserId: import("valibot").NullableSchema<import("valibot").StringSchema<undefined>, undefined>;
|
|
79
81
|
readonly createdAt: import("valibot").NumberSchema<undefined>;
|
|
80
82
|
readonly lastUsedAt: import("valibot").NullableSchema<import("valibot").NumberSchema<undefined>, undefined>;
|
|
81
83
|
readonly revokedAt: import("valibot").NullableSchema<import("valibot").NumberSchema<undefined>, undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public-api.d.ts","sourceRoot":"","sources":["../../src/routes/public-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAqB,MAAM,yBAAyB,CAAA;AAyC3E,eAAO,MAAM,yBAAyB
|
|
1
|
+
{"version":3,"file":"public-api.d.ts","sourceRoot":"","sources":["../../src/routes/public-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAqB,MAAM,yBAAyB,CAAA;AAyC3E,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAIpC,CAAA;AAEF,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKrC,CAAA;AAEF,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKrC,CAAA;AAIF,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKtC,CAAA;AAEF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAK/B,CAAA;AAIF,4DAA4D;AAC5D,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAIrC,CAAA;AAEF,qCAAqC;AACrC,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMnC,CAAA;AAEF,0FAA0F;AAC1F,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKzC,CAAA;AAEF,2BAA2B;AAC3B,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKhC,CAAA;AAEF,0BAA0B;AAC1B,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMlC,CAAA;AAEF,yDAAyD;AACzD,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMnC,CAAA;AAEF,gGAAgG;AAChG,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMjC,CAAA;AAEF,iCAAiC;AACjC,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMlC,CAAA;AAEF,yFAAyF;AACzF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAK/B,CAAA;AAEF,yFAAyF;AACzF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKnC,CAAA;AAIF,kFAAkF;AAClF,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAItC,CAAA;AASF,2DAA2D;AAC3D,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAI1C,CAAA;AAEF,mGAAmG;AACnG,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMxC,CAAA;AAEF,mDAAmD;AACnD,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAM5C,CAAA"}
|
|
@@ -2001,7 +2001,7 @@ export declare const createWorkspaceContract: {
|
|
|
2001
2001
|
readonly color: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 40, undefined>]>;
|
|
2002
2002
|
readonly description: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
|
|
2003
2003
|
readonly category: v.OptionalSchema<v.PicklistSchema<["review", "design", "build", "test", "docs", "gates"], undefined>, undefined>;
|
|
2004
|
-
readonly resultView: v.OptionalSchema<v.PicklistSchema<readonly ["requirements-review", "clarity-review", "brainstorm", "tester", "human-test", "visual-confirm", "gate", "consensus-session", "generic-structured", "service-spec", "follow-ups", "merger", "initiative-tracker", "initiative-planning", "doc-interview", "fork-decision", "pr-review", "ralph-loop"], undefined>, undefined>;
|
|
2004
|
+
readonly resultView: v.OptionalSchema<v.UnionSchema<[v.PicklistSchema<readonly ["requirements-review", "clarity-review", "brainstorm", "tester", "human-test", "visual-confirm", "gate", "consensus-session", "generic-structured", "service-spec", "follow-ups", "merger", "initiative-tracker", "initiative-planning", "doc-interview", "fork-decision", "pr-review", "ralph-loop"], undefined>, v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "Consumer result-view id must be <namespace>:<name> (lowercase a-z0-9, dash-separated)">]>], undefined>, undefined>;
|
|
2005
2005
|
}, undefined>;
|
|
2006
2006
|
readonly container: v.BooleanSchema<undefined>;
|
|
2007
2007
|
}, undefined>, undefined>, undefined>;
|
|
@@ -4244,7 +4244,7 @@ export declare const getWorkspaceContract: {
|
|
|
4244
4244
|
readonly color: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 40, undefined>]>;
|
|
4245
4245
|
readonly description: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
|
|
4246
4246
|
readonly category: v.OptionalSchema<v.PicklistSchema<["review", "design", "build", "test", "docs", "gates"], undefined>, undefined>;
|
|
4247
|
-
readonly resultView: v.OptionalSchema<v.PicklistSchema<readonly ["requirements-review", "clarity-review", "brainstorm", "tester", "human-test", "visual-confirm", "gate", "consensus-session", "generic-structured", "service-spec", "follow-ups", "merger", "initiative-tracker", "initiative-planning", "doc-interview", "fork-decision", "pr-review", "ralph-loop"], undefined>, undefined>;
|
|
4247
|
+
readonly resultView: v.OptionalSchema<v.UnionSchema<[v.PicklistSchema<readonly ["requirements-review", "clarity-review", "brainstorm", "tester", "human-test", "visual-confirm", "gate", "consensus-session", "generic-structured", "service-spec", "follow-ups", "merger", "initiative-tracker", "initiative-planning", "doc-interview", "fork-decision", "pr-review", "ralph-loop"], undefined>, v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "Consumer result-view id must be <namespace>:<name> (lowercase a-z0-9, dash-separated)">]>], undefined>, undefined>;
|
|
4248
4248
|
}, undefined>;
|
|
4249
4249
|
readonly container: v.BooleanSchema<undefined>;
|
|
4250
4250
|
}, undefined>, undefined>, undefined>;
|
package/dist/snapshot.d.ts
CHANGED
|
@@ -2045,7 +2045,7 @@ export declare const workspaceSnapshotSchema: v.ObjectSchema<{
|
|
|
2045
2045
|
readonly color: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 40, undefined>]>;
|
|
2046
2046
|
readonly description: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
|
|
2047
2047
|
readonly category: v.OptionalSchema<v.PicklistSchema<["review", "design", "build", "test", "docs", "gates"], undefined>, undefined>;
|
|
2048
|
-
readonly resultView: v.OptionalSchema<v.PicklistSchema<readonly ["requirements-review", "clarity-review", "brainstorm", "tester", "human-test", "visual-confirm", "gate", "consensus-session", "generic-structured", "service-spec", "follow-ups", "merger", "initiative-tracker", "initiative-planning", "doc-interview", "fork-decision", "pr-review", "ralph-loop"], undefined>, undefined>;
|
|
2048
|
+
readonly resultView: v.OptionalSchema<v.UnionSchema<[v.PicklistSchema<readonly ["requirements-review", "clarity-review", "brainstorm", "tester", "human-test", "visual-confirm", "gate", "consensus-session", "generic-structured", "service-spec", "follow-ups", "merger", "initiative-tracker", "initiative-planning", "doc-interview", "fork-decision", "pr-review", "ralph-loop"], undefined>, v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "Consumer result-view id must be <namespace>:<name> (lowercase a-z0-9, dash-separated)">]>], undefined>, undefined>;
|
|
2049
2049
|
}, undefined>;
|
|
2050
2050
|
readonly container: v.BooleanSchema<undefined>;
|
|
2051
2051
|
}, undefined>, undefined>, undefined>;
|