@cogenta/agents 0.1.2 → 0.2.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/assist/chat.d.ts +69 -0
- package/dist/assist/chat.d.ts.map +1 -0
- package/dist/assist/chat.js +108 -0
- package/dist/assist/chat.js.map +1 -0
- package/dist/assist/classify.d.ts +101 -0
- package/dist/assist/classify.d.ts.map +1 -0
- package/dist/assist/classify.js +233 -0
- package/dist/assist/classify.js.map +1 -0
- package/dist/assist/faq.d.ts +61 -0
- package/dist/assist/faq.d.ts.map +1 -0
- package/dist/assist/faq.js +136 -0
- package/dist/assist/faq.js.map +1 -0
- package/dist/assist/images.d.ts +45 -0
- package/dist/assist/images.d.ts.map +1 -0
- package/dist/assist/images.js +79 -0
- package/dist/assist/images.js.map +1 -0
- package/dist/assist/runtime.d.ts +58 -0
- package/dist/assist/runtime.d.ts.map +1 -0
- package/dist/assist/runtime.js +84 -0
- package/dist/assist/runtime.js.map +1 -0
- package/dist/assist/suggestion.d.ts +20 -0
- package/dist/assist/suggestion.d.ts.map +1 -0
- package/dist/assist/suggestion.js +28 -0
- package/dist/assist/suggestion.js.map +1 -0
- package/dist/assist/toolset.d.ts +76 -0
- package/dist/assist/toolset.d.ts.map +1 -0
- package/dist/assist/toolset.js +72 -0
- package/dist/assist/toolset.js.map +1 -0
- package/dist/assist/writing.d.ts +74 -0
- package/dist/assist/writing.d.ts.map +1 -0
- package/dist/assist/writing.js +429 -0
- package/dist/assist/writing.js.map +1 -0
- package/dist/documents/docx.d.ts +6 -0
- package/dist/documents/docx.d.ts.map +1 -0
- package/dist/documents/docx.js +169 -0
- package/dist/documents/docx.js.map +1 -0
- package/dist/documents/extract-text.d.ts +35 -0
- package/dist/documents/extract-text.d.ts.map +1 -0
- package/dist/documents/extract-text.js +134 -0
- package/dist/documents/extract-text.js.map +1 -0
- package/dist/documents/extract-tool.d.ts +40 -0
- package/dist/documents/extract-tool.d.ts.map +1 -0
- package/dist/documents/extract-tool.js +65 -0
- package/dist/documents/extract-tool.js.map +1 -0
- package/dist/documents/limits.d.ts +23 -0
- package/dist/documents/limits.d.ts.map +1 -0
- package/dist/documents/limits.js +23 -0
- package/dist/documents/limits.js.map +1 -0
- package/dist/documents/pdf.d.ts +26 -0
- package/dist/documents/pdf.d.ts.map +1 -0
- package/dist/documents/pdf.js +478 -0
- package/dist/documents/pdf.js.map +1 -0
- package/dist/documents/zip.d.ts +18 -0
- package/dist/documents/zip.d.ts.map +1 -0
- package/dist/documents/zip.js +113 -0
- package/dist/documents/zip.js.map +1 -0
- package/dist/index.d.ts +50 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +25 -0
- package/dist/index.js.map +1 -1
- package/dist/providers/image/openai.d.ts +28 -0
- package/dist/providers/image/openai.d.ts.map +1 -0
- package/dist/providers/image/openai.js +80 -0
- package/dist/providers/image/openai.js.map +1 -0
- package/dist/providers/image/registry.d.ts +30 -0
- package/dist/providers/image/registry.d.ts.map +1 -0
- package/dist/providers/image/registry.js +36 -0
- package/dist/providers/image/registry.js.map +1 -0
- package/dist/providers/image/stability.d.ts +39 -0
- package/dist/providers/image/stability.d.ts.map +1 -0
- package/dist/providers/image/stability.js +88 -0
- package/dist/providers/image/stability.js.map +1 -0
- package/dist/providers/image/types.d.ts +50 -0
- package/dist/providers/image/types.d.ts.map +1 -0
- package/dist/providers/image/types.js +33 -0
- package/dist/providers/image/types.js.map +1 -0
- package/dist/rag/semantic/search.d.ts +84 -0
- package/dist/rag/semantic/search.d.ts.map +1 -0
- package/dist/rag/semantic/search.js +113 -0
- package/dist/rag/semantic/search.js.map +1 -0
- package/dist/rag/vector/file.d.ts +23 -0
- package/dist/rag/vector/file.d.ts.map +1 -0
- package/dist/rag/vector/file.js +170 -0
- package/dist/rag/vector/file.js.map +1 -0
- package/dist/rag/vector/index.d.ts +24 -0
- package/dist/rag/vector/index.d.ts.map +1 -0
- package/dist/rag/vector/index.js +27 -0
- package/dist/rag/vector/index.js.map +1 -0
- package/dist/rag/vector/memory.d.ts +16 -0
- package/dist/rag/vector/memory.d.ts.map +1 -0
- package/dist/rag/vector/memory.js +107 -0
- package/dist/rag/vector/memory.js.map +1 -0
- package/dist/rag/vector/pgvector.d.ts +34 -0
- package/dist/rag/vector/pgvector.d.ts.map +1 -0
- package/dist/rag/vector/pgvector.js +273 -0
- package/dist/rag/vector/pgvector.js.map +1 -0
- package/dist/rag/vector/types.d.ts +113 -0
- package/dist/rag/vector/types.d.ts.map +1 -0
- package/dist/rag/vector/types.js +51 -0
- package/dist/rag/vector/types.js.map +1 -0
- package/dist/site-plan/analyse-brief.d.ts +23 -0
- package/dist/site-plan/analyse-brief.d.ts.map +1 -0
- package/dist/site-plan/analyse-brief.js +207 -0
- package/dist/site-plan/analyse-brief.js.map +1 -0
- package/dist/site-plan/approval.d.ts +80 -0
- package/dist/site-plan/approval.d.ts.map +1 -0
- package/dist/site-plan/approval.js +201 -0
- package/dist/site-plan/approval.js.map +1 -0
- package/dist/site-plan/constraints.d.ts +45 -0
- package/dist/site-plan/constraints.d.ts.map +1 -0
- package/dist/site-plan/constraints.js +213 -0
- package/dist/site-plan/constraints.js.map +1 -0
- package/dist/site-plan/content-model.d.ts +22 -0
- package/dist/site-plan/content-model.d.ts.map +1 -0
- package/dist/site-plan/content-model.js +385 -0
- package/dist/site-plan/content-model.js.map +1 -0
- package/dist/site-plan/demo-content.d.ts +27 -0
- package/dist/site-plan/demo-content.d.ts.map +1 -0
- package/dist/site-plan/demo-content.js +170 -0
- package/dist/site-plan/demo-content.js.map +1 -0
- package/dist/site-plan/draft-store.d.ts +37 -0
- package/dist/site-plan/draft-store.d.ts.map +1 -0
- package/dist/site-plan/draft-store.js +117 -0
- package/dist/site-plan/draft-store.js.map +1 -0
- package/dist/site-plan/enforce.d.ts +17 -0
- package/dist/site-plan/enforce.d.ts.map +1 -0
- package/dist/site-plan/enforce.js +120 -0
- package/dist/site-plan/enforce.js.map +1 -0
- package/dist/site-plan/json.d.ts +9 -0
- package/dist/site-plan/json.d.ts.map +1 -0
- package/dist/site-plan/json.js +29 -0
- package/dist/site-plan/json.js.map +1 -0
- package/dist/site-plan/propose-plan.d.ts +43 -0
- package/dist/site-plan/propose-plan.d.ts.map +1 -0
- package/dist/site-plan/propose-plan.js +65 -0
- package/dist/site-plan/propose-plan.js.map +1 -0
- package/dist/site-plan/skin-candidates.d.ts +61 -0
- package/dist/site-plan/skin-candidates.d.ts.map +1 -0
- package/dist/site-plan/skin-candidates.js +99 -0
- package/dist/site-plan/skin-candidates.js.map +1 -0
- package/dist/site-plan/types.d.ts +93 -0
- package/dist/site-plan/types.d.ts.map +1 -0
- package/dist/site-plan/types.js +2 -0
- package/dist/site-plan/types.js.map +1 -0
- package/package.json +4 -3
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { newId } from '@cogenta/schema';
|
|
2
|
+
import { analyseBrief } from './analyse-brief.js';
|
|
3
|
+
import { proposeContentModel } from './content-model.js';
|
|
4
|
+
import { proposeDemoContent } from './demo-content.js';
|
|
5
|
+
import { generateSkinCandidates } from './skin-candidates.js';
|
|
6
|
+
export async function proposeSitePlan(options) {
|
|
7
|
+
const now = options.now ?? (() => new Date());
|
|
8
|
+
const newDraftId = options.idFactory ?? newId;
|
|
9
|
+
const analysed = await analyseBrief({
|
|
10
|
+
client: options.client,
|
|
11
|
+
model: options.model,
|
|
12
|
+
documents: options.documents,
|
|
13
|
+
...(options.siteName === undefined ? {} : { siteName: options.siteName }),
|
|
14
|
+
});
|
|
15
|
+
if (!analysed.ok)
|
|
16
|
+
return { ok: false, stage: 'brief', reason: analysed.reason };
|
|
17
|
+
const brief = analysed.brief;
|
|
18
|
+
const skinDescription = [
|
|
19
|
+
brief.activity,
|
|
20
|
+
`Audience: ${brief.audience}.`,
|
|
21
|
+
`Tone: ${brief.tone}.`,
|
|
22
|
+
].join(' ');
|
|
23
|
+
const [model, skins] = await Promise.all([
|
|
24
|
+
proposeContentModel({ client: options.client, model: options.model, brief }),
|
|
25
|
+
generateSkinCandidates({
|
|
26
|
+
client: options.client,
|
|
27
|
+
model: options.model,
|
|
28
|
+
description: skinDescription,
|
|
29
|
+
blueprintLabel: options.blueprintLabel ?? brief.activity,
|
|
30
|
+
...(options.skinCount === undefined ? {} : { count: options.skinCount }),
|
|
31
|
+
}),
|
|
32
|
+
]);
|
|
33
|
+
if (!model.ok)
|
|
34
|
+
return { ok: false, stage: 'contentModel', reason: model.reason };
|
|
35
|
+
if (!skins.ok)
|
|
36
|
+
return { ok: false, stage: 'skins', reason: skins.reason };
|
|
37
|
+
const demo = await proposeDemoContent({
|
|
38
|
+
client: options.client,
|
|
39
|
+
model: options.model,
|
|
40
|
+
brief,
|
|
41
|
+
contentModel: model.proposal,
|
|
42
|
+
});
|
|
43
|
+
const warnings = [
|
|
44
|
+
...brief.warnings,
|
|
45
|
+
...skins.failures.map((failure) => `The "${failure.label}" design was not offered: ${failure.reason}.`),
|
|
46
|
+
...(demo.ok
|
|
47
|
+
? demo.rejected.map((rejection) => `A demonstration entry for "${rejection.collection}" was dropped: ${rejection.reason}.`)
|
|
48
|
+
: [`No demonstration content was proposed: ${demo.reason}.`]),
|
|
49
|
+
];
|
|
50
|
+
return {
|
|
51
|
+
ok: true,
|
|
52
|
+
draft: {
|
|
53
|
+
id: newDraftId(),
|
|
54
|
+
createdAt: now().toISOString(),
|
|
55
|
+
brief,
|
|
56
|
+
contentModel: model.proposal,
|
|
57
|
+
pages: model.pages,
|
|
58
|
+
skins: skins.candidates,
|
|
59
|
+
demoContent: demo.ok ? demo.entries : [],
|
|
60
|
+
violations: model.violations,
|
|
61
|
+
warnings,
|
|
62
|
+
},
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=propose-plan.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"propose-plan.js","sourceRoot":"","sources":["../../src/site-plan/propose-plan.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import type { ProviderClient } from '../providers/types.js';
|
|
2
|
+
import type { SkinCandidate } from './types.js';
|
|
3
|
+
/**
|
|
4
|
+
* L19 task 3 — "l'utilisateur voit et choisit explicitement entre deux et
|
|
5
|
+
* cinq gabarits proposés, jamais un seul choix imposé."
|
|
6
|
+
*
|
|
7
|
+
* This is a widening of `generateSkin`, not a replacement of it: each
|
|
8
|
+
* candidate goes through that function's own generate-validate-correct loop
|
|
9
|
+
* against contract D, unchanged, so an invalid candidate is still rejected
|
|
10
|
+
* and regenerated exactly as before. What is new is that several are asked
|
|
11
|
+
* for at once, each steered towards a different design direction, and that a
|
|
12
|
+
* candidate list is only offered when at least two genuinely distinct skins
|
|
13
|
+
* survived validation — offering "a choice" of one, or of the same skin
|
|
14
|
+
* twice, would be a lie about what the human is choosing between.
|
|
15
|
+
*/
|
|
16
|
+
export interface SkinDirection {
|
|
17
|
+
readonly id: string;
|
|
18
|
+
readonly label: string;
|
|
19
|
+
/** Appended to the site description, as guidance for this candidate only. */
|
|
20
|
+
readonly direction: string;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Five directions, ordered. Asking one model for "three different skins"
|
|
24
|
+
* in one call reliably produces three near-identical ones; asking three
|
|
25
|
+
* times with three genuinely different briefs does not. They are written as
|
|
26
|
+
* design intent rather than as colour values, because the model fills in
|
|
27
|
+
* contract D's tokens and `validateSkin` judges the contrast — naming
|
|
28
|
+
* hex codes here would fight both.
|
|
29
|
+
*/
|
|
30
|
+
export declare const SKIN_DIRECTIONS: readonly SkinDirection[];
|
|
31
|
+
export declare const MIN_SKIN_CANDIDATES = 2;
|
|
32
|
+
export declare const MAX_SKIN_CANDIDATES = 5;
|
|
33
|
+
export interface GenerateSkinCandidatesOptions {
|
|
34
|
+
readonly client: ProviderClient;
|
|
35
|
+
readonly model: string;
|
|
36
|
+
/** Free text: sector, mood, audience, optional brand colours — the same input `generateSkin` takes. */
|
|
37
|
+
readonly description: string;
|
|
38
|
+
readonly blueprintLabel: string;
|
|
39
|
+
/** Clamped to 2..5. Defaults to 3. */
|
|
40
|
+
readonly count?: number;
|
|
41
|
+
/** Passed to each candidate's own validation loop. */
|
|
42
|
+
readonly maxAttemptsPerCandidate?: number;
|
|
43
|
+
}
|
|
44
|
+
export interface SkinCandidateFailure {
|
|
45
|
+
readonly id: string;
|
|
46
|
+
readonly label: string;
|
|
47
|
+
readonly reason: string;
|
|
48
|
+
}
|
|
49
|
+
export type GenerateSkinCandidatesResult = {
|
|
50
|
+
readonly ok: true;
|
|
51
|
+
readonly candidates: readonly SkinCandidate[];
|
|
52
|
+
readonly failures: readonly SkinCandidateFailure[];
|
|
53
|
+
} | {
|
|
54
|
+
readonly ok: false;
|
|
55
|
+
readonly reason: string;
|
|
56
|
+
/** Whatever did survive — one candidate, or none. Never offered as a choice, but reported. */
|
|
57
|
+
readonly candidates: readonly SkinCandidate[];
|
|
58
|
+
readonly failures: readonly SkinCandidateFailure[];
|
|
59
|
+
};
|
|
60
|
+
export declare function generateSkinCandidates(options: GenerateSkinCandidatesOptions): Promise<GenerateSkinCandidatesResult>;
|
|
61
|
+
//# sourceMappingURL=skin-candidates.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skin-candidates.d.ts","sourceRoot":"","sources":["../../src/site-plan/skin-candidates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAE3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE/C;;;;;;;;;;;;GAYG;AAEH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,6EAA6E;IAC7E,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC3B;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,EAAE,SAAS,aAAa,EA+BnD,CAAA;AAED,eAAO,MAAM,mBAAmB,IAAI,CAAA;AACpC,eAAO,MAAM,mBAAmB,IAAI,CAAA;AAEpC,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAA;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,uGAAuG;IACvG,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,sCAAsC;IACtC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,sDAAsD;IACtD,QAAQ,CAAC,uBAAuB,CAAC,EAAE,MAAM,CAAA;CAC1C;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,MAAM,4BAA4B,GACpC;IACE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAA;IACjB,QAAQ,CAAC,UAAU,EAAE,SAAS,aAAa,EAAE,CAAA;IAC7C,QAAQ,CAAC,QAAQ,EAAE,SAAS,oBAAoB,EAAE,CAAA;CACnD,GACD;IACE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAA;IAClB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,8FAA8F;IAC9F,QAAQ,CAAC,UAAU,EAAE,SAAS,aAAa,EAAE,CAAA;IAC7C,QAAQ,CAAC,QAAQ,EAAE,SAAS,oBAAoB,EAAE,CAAA;CACnD,CAAA;AAOL,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,6BAA6B,GACrC,OAAO,CAAC,4BAA4B,CAAC,CA6DvC"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { generateSkin } from '../skin/generate.js';
|
|
2
|
+
/**
|
|
3
|
+
* Five directions, ordered. Asking one model for "three different skins"
|
|
4
|
+
* in one call reliably produces three near-identical ones; asking three
|
|
5
|
+
* times with three genuinely different briefs does not. They are written as
|
|
6
|
+
* design intent rather than as colour values, because the model fills in
|
|
7
|
+
* contract D's tokens and `validateSkin` judges the contrast — naming
|
|
8
|
+
* hex codes here would fight both.
|
|
9
|
+
*/
|
|
10
|
+
export const SKIN_DIRECTIONS = [
|
|
11
|
+
{
|
|
12
|
+
id: 'editorial',
|
|
13
|
+
label: 'Warm editorial',
|
|
14
|
+
direction: 'Warm and editorial: a generous type scale, a paper-like background rather than pure white, a single restrained accent colour, comfortable density.',
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
id: 'clinical',
|
|
18
|
+
label: 'Clean and clinical',
|
|
19
|
+
direction: 'Clean and clinical: a near-neutral palette, a tight type scale, compact density, a cool accent used sparingly, sharp corners.',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
id: 'bold',
|
|
23
|
+
label: 'Bold and graphic',
|
|
24
|
+
direction: 'Bold and graphic: a strongly saturated accent, a large type scale with a marked jump between steps, generous radius, high contrast throughout.',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
id: 'quiet',
|
|
28
|
+
label: 'Quiet and minimal',
|
|
29
|
+
direction: 'Quiet and minimal: near-monochrome, very low chroma, wide spacing, a small type scale, almost no radius, motion kept to the minimum.',
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
id: 'classic',
|
|
33
|
+
label: 'Classic and formal',
|
|
34
|
+
direction: 'Classic and formal: deep neutral tones, a conservative type scale, a serif heading stack, moderate density, understated accent.',
|
|
35
|
+
},
|
|
36
|
+
];
|
|
37
|
+
export const MIN_SKIN_CANDIDATES = 2;
|
|
38
|
+
export const MAX_SKIN_CANDIDATES = 5;
|
|
39
|
+
function clampCount(count) {
|
|
40
|
+
if (count === undefined)
|
|
41
|
+
return 3;
|
|
42
|
+
return Math.min(MAX_SKIN_CANDIDATES, Math.max(MIN_SKIN_CANDIDATES, Math.trunc(count)));
|
|
43
|
+
}
|
|
44
|
+
export async function generateSkinCandidates(options) {
|
|
45
|
+
const directions = SKIN_DIRECTIONS.slice(0, clampCount(options.count));
|
|
46
|
+
// Run in parallel: the installer's whole promise is measured in seconds,
|
|
47
|
+
// and five sequential three-attempt loops is a minute of staring at a
|
|
48
|
+
// spinner. Each call is independent — no candidate reads another's result.
|
|
49
|
+
const settled = await Promise.all(directions.map(async (direction) => {
|
|
50
|
+
const result = await generateSkin({
|
|
51
|
+
client: options.client,
|
|
52
|
+
model: options.model,
|
|
53
|
+
description: `${options.description}\n\nDesign direction for this proposal: ${direction.direction}`,
|
|
54
|
+
blueprintLabel: options.blueprintLabel,
|
|
55
|
+
...(options.maxAttemptsPerCandidate === undefined
|
|
56
|
+
? {}
|
|
57
|
+
: { maxAttempts: options.maxAttemptsPerCandidate }),
|
|
58
|
+
});
|
|
59
|
+
return { direction, result };
|
|
60
|
+
}));
|
|
61
|
+
const candidates = [];
|
|
62
|
+
const failures = [];
|
|
63
|
+
const seen = new Set();
|
|
64
|
+
for (const { direction, result } of settled) {
|
|
65
|
+
if (!result.ok) {
|
|
66
|
+
failures.push({ id: direction.id, label: direction.label, reason: result.reason });
|
|
67
|
+
continue;
|
|
68
|
+
}
|
|
69
|
+
const fingerprint = JSON.stringify(result.tokens);
|
|
70
|
+
if (seen.has(fingerprint)) {
|
|
71
|
+
failures.push({
|
|
72
|
+
id: direction.id,
|
|
73
|
+
label: direction.label,
|
|
74
|
+
reason: 'it came back identical to another candidate, so it would not have been a choice',
|
|
75
|
+
});
|
|
76
|
+
continue;
|
|
77
|
+
}
|
|
78
|
+
seen.add(fingerprint);
|
|
79
|
+
candidates.push({
|
|
80
|
+
id: direction.id,
|
|
81
|
+
label: direction.label,
|
|
82
|
+
rationale: direction.direction,
|
|
83
|
+
tokens: result.tokens,
|
|
84
|
+
attempts: result.attempts,
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
if (candidates.length < MIN_SKIN_CANDIDATES) {
|
|
88
|
+
return {
|
|
89
|
+
ok: false,
|
|
90
|
+
reason: candidates.length === 0
|
|
91
|
+
? 'no candidate passed contract D validation'
|
|
92
|
+
: 'only one candidate passed contract D validation, which is not a choice',
|
|
93
|
+
candidates,
|
|
94
|
+
failures,
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
return { ok: true, candidates, failures };
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=skin-candidates.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skin-candidates.js","sourceRoot":"","sources":["../../src/site-plan/skin-candidates.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import type { SkinTokens } from '@cogenta/render';
|
|
2
|
+
import type { CollectionDefinition } from '@cogenta/schema';
|
|
3
|
+
import type { DocumentFormat } from '../documents/extract-text.js';
|
|
4
|
+
import type { DetectedConstraint } from './constraints.js';
|
|
5
|
+
/**
|
|
6
|
+
* The shapes L19's four agents pass between each other.
|
|
7
|
+
*
|
|
8
|
+
* Nothing here is ever applied. Every one of these is a **draft**: the plan
|
|
9
|
+
* exists so a human can read it, accept parts of it and refuse others
|
|
10
|
+
* (`./approval.js`), and only what they accepted is ever handed to a
|
|
11
|
+
* scaffolder or a schema writer. R6 is not a review step bolted on at the
|
|
12
|
+
* end — it is why these types are separate from `CollectionDefinition` in
|
|
13
|
+
* the first place.
|
|
14
|
+
*/
|
|
15
|
+
export interface BriefSource {
|
|
16
|
+
readonly filename: string;
|
|
17
|
+
readonly format: DocumentFormat;
|
|
18
|
+
readonly characters: number;
|
|
19
|
+
readonly truncated: boolean;
|
|
20
|
+
}
|
|
21
|
+
export interface BriefPage {
|
|
22
|
+
readonly title: string;
|
|
23
|
+
readonly purpose: string;
|
|
24
|
+
}
|
|
25
|
+
export interface BriefContentType {
|
|
26
|
+
readonly name: string;
|
|
27
|
+
readonly description: string;
|
|
28
|
+
}
|
|
29
|
+
/** What the analysis agent understood, plus what was read out of the document without it. */
|
|
30
|
+
export interface SiteBrief {
|
|
31
|
+
/** The kind of activity the site is for, in the document's own terms. */
|
|
32
|
+
readonly activity: string;
|
|
33
|
+
readonly audience: string;
|
|
34
|
+
readonly tone: string;
|
|
35
|
+
/** BCP-47-ish locale codes. Constrained by a `language` constraint when the document states one. */
|
|
36
|
+
readonly languages: readonly string[];
|
|
37
|
+
readonly pages: readonly BriefPage[];
|
|
38
|
+
readonly contentTypes: readonly BriefContentType[];
|
|
39
|
+
/** Deterministically scanned from the document first, then whatever the model added. */
|
|
40
|
+
readonly constraints: readonly DetectedConstraint[];
|
|
41
|
+
readonly summary: string;
|
|
42
|
+
readonly sources: readonly BriefSource[];
|
|
43
|
+
readonly warnings: readonly string[];
|
|
44
|
+
}
|
|
45
|
+
export interface ProposedCollection {
|
|
46
|
+
/** A real contract A collection, built by `defineCollection` — never a parallel format. */
|
|
47
|
+
readonly definition: CollectionDefinition;
|
|
48
|
+
/** Why the agent proposed it, in one sentence, for the human reading the plan. */
|
|
49
|
+
readonly rationale: string;
|
|
50
|
+
}
|
|
51
|
+
export interface ContentModelProposal {
|
|
52
|
+
readonly collections: readonly ProposedCollection[];
|
|
53
|
+
}
|
|
54
|
+
export interface ProposedPage {
|
|
55
|
+
readonly title: string;
|
|
56
|
+
readonly slug: string;
|
|
57
|
+
readonly purpose: string;
|
|
58
|
+
}
|
|
59
|
+
export interface SkinCandidate {
|
|
60
|
+
readonly id: string;
|
|
61
|
+
/** A short name a human can pick by: "Warm editorial", "Clinical mono". */
|
|
62
|
+
readonly label: string;
|
|
63
|
+
readonly rationale: string;
|
|
64
|
+
readonly tokens: SkinTokens;
|
|
65
|
+
/** How many generate/validate rounds this candidate needed. */
|
|
66
|
+
readonly attempts: number;
|
|
67
|
+
}
|
|
68
|
+
export interface DemoEntry {
|
|
69
|
+
readonly collection: string;
|
|
70
|
+
readonly values: Readonly<Record<string, unknown>>;
|
|
71
|
+
}
|
|
72
|
+
/** Everything the planner produced, before any human has looked at it. */
|
|
73
|
+
export interface SitePlanDraft {
|
|
74
|
+
readonly id: string;
|
|
75
|
+
readonly createdAt: string;
|
|
76
|
+
readonly brief: SiteBrief;
|
|
77
|
+
readonly contentModel: ContentModelProposal;
|
|
78
|
+
readonly pages: readonly ProposedPage[];
|
|
79
|
+
readonly skins: readonly SkinCandidate[];
|
|
80
|
+
readonly demoContent: readonly DemoEntry[];
|
|
81
|
+
/** What was removed or flagged because it contradicted an explicit constraint. */
|
|
82
|
+
readonly violations: readonly ConstraintViolation[];
|
|
83
|
+
readonly warnings: readonly string[];
|
|
84
|
+
}
|
|
85
|
+
export interface ConstraintViolation {
|
|
86
|
+
readonly constraint: DetectedConstraint;
|
|
87
|
+
/** What the model proposed that contradicted it. */
|
|
88
|
+
readonly proposed: string;
|
|
89
|
+
/** `'removed'`: dropped from the plan before the human ever saw it. `'flagged'`: kept, but marked. */
|
|
90
|
+
readonly action: 'removed' | 'flagged';
|
|
91
|
+
readonly explanation: string;
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/site-plan/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAClE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAE1D;;;;;;;;;GASG;AAEH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAA;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;CAC5B;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAC7B;AAED,6FAA6F;AAC7F,MAAM,WAAW,SAAS;IACxB,yEAAyE;IACzE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,oGAAoG;IACpG,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAA;IACrC,QAAQ,CAAC,KAAK,EAAE,SAAS,SAAS,EAAE,CAAA;IACpC,QAAQ,CAAC,YAAY,EAAE,SAAS,gBAAgB,EAAE,CAAA;IAClD,wFAAwF;IACxF,QAAQ,CAAC,WAAW,EAAE,SAAS,kBAAkB,EAAE,CAAA;IACnD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,OAAO,EAAE,SAAS,WAAW,EAAE,CAAA;IACxC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;CACrC;AAED,MAAM,WAAW,kBAAkB;IACjC,2FAA2F;IAC3F,QAAQ,CAAC,UAAU,EAAE,oBAAoB,CAAA;IACzC,kFAAkF;IAClF,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,WAAW,EAAE,SAAS,kBAAkB,EAAE,CAAA;CACpD;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,2EAA2E;IAC3E,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAA;IAC3B,+DAA+D;IAC/D,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAC1B;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;CACnD;AAED,0EAA0E;AAC1E,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAA;IACzB,QAAQ,CAAC,YAAY,EAAE,oBAAoB,CAAA;IAC3C,QAAQ,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,CAAA;IACvC,QAAQ,CAAC,KAAK,EAAE,SAAS,aAAa,EAAE,CAAA;IACxC,QAAQ,CAAC,WAAW,EAAE,SAAS,SAAS,EAAE,CAAA;IAC1C,kFAAkF;IAClF,QAAQ,CAAC,UAAU,EAAE,SAAS,mBAAmB,EAAE,CAAA;IACnD,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;CACrC;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAA;IACvC,oDAAoD;IACpD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,sGAAsG;IACtG,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,CAAA;IACtC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAC7B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/site-plan/types.ts"],"names":[],"mappings":""}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cogenta/agents",
|
|
3
|
-
"version": "0.1
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "The agentic runtime: LLM provider abstraction, tool-calling, execution loop, permissions, memory, budgets, audit.",
|
|
5
5
|
"license": "MPL-2.0",
|
|
6
6
|
"type": "module",
|
|
@@ -28,8 +28,9 @@
|
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
30
|
"zod": "^4.4.3",
|
|
31
|
-
"@cogenta/core": "0.
|
|
32
|
-
"@cogenta/
|
|
31
|
+
"@cogenta/core": "0.4.0",
|
|
32
|
+
"@cogenta/schema": "0.3.0",
|
|
33
|
+
"@cogenta/render": "0.1.4"
|
|
33
34
|
},
|
|
34
35
|
"devDependencies": {
|
|
35
36
|
"typescript": "^7.0.2",
|