@cat-factory/contracts 0.147.1 → 0.148.1
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/observability.d.ts +14 -5
- package/dist/observability.d.ts.map +1 -1
- package/dist/observability.js +9 -4
- package/dist/observability.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/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"}
|
package/dist/observability.d.ts
CHANGED
|
@@ -286,7 +286,11 @@ export declare const agentContextFileSchema: v.ObjectSchema<{
|
|
|
286
286
|
readonly path: v.StringSchema<undefined>;
|
|
287
287
|
readonly title: v.StringSchema<undefined>;
|
|
288
288
|
readonly url: v.StringSchema<undefined>;
|
|
289
|
-
/**
|
|
289
|
+
/**
|
|
290
|
+
* The file body as written into the container, secret-scrubbed before storage. A
|
|
291
|
+
* secret-shaped file (`.env`, `*.pem`, an SSH key, …) has its whole body replaced by a
|
|
292
|
+
* placeholder rather than stored; any other body is passed through the shape scrubber.
|
|
293
|
+
*/
|
|
290
294
|
readonly content: v.StringSchema<undefined>;
|
|
291
295
|
}, undefined>;
|
|
292
296
|
export type AgentContextFile = v.InferOutput<typeof agentContextFileSchema>;
|
|
@@ -326,19 +330,24 @@ export declare const agentContextSnapshotSchema: v.ObjectSchema<{
|
|
|
326
330
|
/** The fragment body that was appended to the system prompt. */
|
|
327
331
|
readonly body: v.StringSchema<undefined>;
|
|
328
332
|
}, undefined>, undefined>;
|
|
329
|
-
/** The files injected into the container as context, with
|
|
333
|
+
/** The files injected into the container as context, with secret-scrubbed content. */
|
|
330
334
|
readonly contextFiles: v.ArraySchema<v.ObjectSchema<{
|
|
331
335
|
/** Sanitized basename the file is materialised under (`.cat-context/<path>`). */
|
|
332
336
|
readonly path: v.StringSchema<undefined>;
|
|
333
337
|
readonly title: v.StringSchema<undefined>;
|
|
334
338
|
readonly url: v.StringSchema<undefined>;
|
|
335
|
-
/**
|
|
339
|
+
/**
|
|
340
|
+
* The file body as written into the container, secret-scrubbed before storage. A
|
|
341
|
+
* secret-shaped file (`.env`, `*.pem`, an SSH key, …) has its whole body replaced by a
|
|
342
|
+
* placeholder rather than stored; any other body is passed through the shape scrubber.
|
|
343
|
+
*/
|
|
336
344
|
readonly content: v.StringSchema<undefined>;
|
|
337
345
|
}, undefined>, undefined>;
|
|
338
346
|
/**
|
|
339
347
|
* Redacted structural bits useful for debugging — repo owner/name/branches, the
|
|
340
|
-
* web-search flag, the infra spec, the run's decisions and revision feedback.
|
|
341
|
-
*
|
|
348
|
+
* web-search flag, the infra spec, the run's decisions and revision feedback. Deep
|
|
349
|
+
* secret-scrubbed before storage (the free-text values, e.g. decisions/feedback, may
|
|
350
|
+
* embed a token), so it never carries a token, secret, or credential-bearing URL.
|
|
342
351
|
*/
|
|
343
352
|
readonly extras: v.RecordSchema<v.StringSchema<undefined>, v.UnknownSchema, undefined>;
|
|
344
353
|
}, undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observability.d.ts","sourceRoot":"","sources":["../src/observability.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAS5B,gFAAgF;AAChF,eAAO,MAAM,mBAAmB;;;;;;;IAO9B,0CAA0C;;;;IAI1C,0EAA0E;;IAE1E,4EAA4E;;;IAG5E,0JAA0J;;;;IAI1J,wFAAwF;;IAExF,6DAA6D;;IAE7D,qCAAqC;;IAErC,wDAAwD;;;;;IAKxD;;;;OAIG;;IAEH;;;;OAIG;;IAEH,oFAAoF;;IAEpF,wCAAwC;;IAExC;;;;OAIG;;aAEH,CAAA;AACF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAErE;;;;;;;;;GASG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;aA0BhC,CAAA;AACF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAEzE,uFAAuF;AACvF,eAAO,MAAM,wBAAwB;;;;;;;;;QAzFnC,0CAA0C;;;;QAI1C,0EAA0E;;QAE1E,4EAA4E;;;QAG5E,0JAA0J;;;;QAI1J,wFAAwF;;QAExF,6DAA6D;;QAE7D,qCAAqC;;QAErC,wDAAwD;;;;;QAKxD;;;;WAIG;;QAEH;;;;WAIG;;QAEH,oFAAoF;;QAEpF,wCAAwC;;QAExC;;;;WAIG;;;aAgDH,CAAA;AACF,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,wBAAwB,CAAC,CAAA;AAE/E;;;GAGG;AACH,eAAO,MAAM,sBAAsB;;;;IAIjC,0JAA0J;;IAE1J,sFAAsF;;;;;IAKtF,sFAAsF;;;;;IAKtF,kFAAkF;;;;aAIlF,CAAA;AACF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAE3E;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB;IACjC,0DAA0D;;;;;;;;QAQxD,0JAA0J;;QAE1J,sFAAsF;;;;;QAKtF,sFAAsF;;;;;;;;;;QAzCxF,0JAA0J;;QAE1J,sFAAsF;;;;;QAKtF,sFAAsF;;;;;QAKtF,kFAAkF;;;;;;;;;;;;QAnHlF,0CAA0C;;;;QAI1C,0EAA0E;;QAE1E,4EAA4E;;;QAG5E,0JAA0J;;;;QAI1J,wFAAwF;;QAExF,6DAA6D;;QAE7D,qCAAqC;;QAErC,wDAAwD;;;;;QAKxD;;;;WAIG;;QAEH;;;;WAIG;;QAEH,oFAAoF;;QAEpF,wCAAwC;;QAExC;;;;WAIG;;;aA4GH,CAAA;AACF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAW3E,mFAAmF;AACnF,eAAO,MAAM,sBAAsB;IACjC,iFAAiF;;;;IAIjF
|
|
1
|
+
{"version":3,"file":"observability.d.ts","sourceRoot":"","sources":["../src/observability.ts"],"names":[],"mappings":"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"}
|
package/dist/observability.js
CHANGED
|
@@ -172,7 +172,11 @@ export const agentContextFileSchema = v.object({
|
|
|
172
172
|
path: v.string(),
|
|
173
173
|
title: v.string(),
|
|
174
174
|
url: v.string(),
|
|
175
|
-
/**
|
|
175
|
+
/**
|
|
176
|
+
* The file body as written into the container, secret-scrubbed before storage. A
|
|
177
|
+
* secret-shaped file (`.env`, `*.pem`, an SSH key, …) has its whole body replaced by a
|
|
178
|
+
* placeholder rather than stored; any other body is passed through the shape scrubber.
|
|
179
|
+
*/
|
|
176
180
|
content: v.string(),
|
|
177
181
|
});
|
|
178
182
|
/** One best-practice fragment folded into the agent's system prompt. */
|
|
@@ -206,12 +210,13 @@ export const agentContextSnapshotSchema = v.object({
|
|
|
206
210
|
userPrompt: v.string(),
|
|
207
211
|
/** The best-practice fragments folded into the system prompt (id + body). */
|
|
208
212
|
fragments: v.array(agentContextFragmentSchema),
|
|
209
|
-
/** The files injected into the container as context, with
|
|
213
|
+
/** The files injected into the container as context, with secret-scrubbed content. */
|
|
210
214
|
contextFiles: v.array(agentContextFileSchema),
|
|
211
215
|
/**
|
|
212
216
|
* Redacted structural bits useful for debugging — repo owner/name/branches, the
|
|
213
|
-
* web-search flag, the infra spec, the run's decisions and revision feedback.
|
|
214
|
-
*
|
|
217
|
+
* web-search flag, the infra spec, the run's decisions and revision feedback. Deep
|
|
218
|
+
* secret-scrubbed before storage (the free-text values, e.g. decisions/feedback, may
|
|
219
|
+
* embed a token), so it never carries a token, secret, or credential-bearing URL.
|
|
215
220
|
*/
|
|
216
221
|
extras: v.record(v.string(), v.unknown()),
|
|
217
222
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observability.js","sourceRoot":"","sources":["../src/observability.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"observability.js","sourceRoot":"","sources":["../src/observability.ts"],"names":[],"mappings":"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"}
|
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"}
|
|
@@ -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>;
|