@cogenta/agents 0.5.1 → 0.7.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/agents/builtins.d.ts.map +1 -1
- package/dist/agents/builtins.js +34 -6
- package/dist/agents/builtins.js.map +1 -1
- package/dist/agents/store.d.ts.map +1 -1
- package/dist/agents/store.js +148 -95
- package/dist/agents/store.js.map +1 -1
- package/dist/identity/context.d.ts +31 -1
- package/dist/identity/context.d.ts.map +1 -1
- package/dist/identity/context.js +10 -0
- package/dist/identity/context.js.map +1 -1
- package/dist/index.d.ts +9 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/progress/job-store.d.ts.map +1 -1
- package/dist/progress/job-store.js +7 -2
- package/dist/progress/job-store.js.map +1 -1
- package/dist/progress/types.d.ts +20 -1
- package/dist/progress/types.d.ts.map +1 -1
- package/dist/progress/types.js.map +1 -1
- package/dist/providers/image/openai.d.ts +8 -1
- package/dist/providers/image/openai.d.ts.map +1 -1
- package/dist/providers/image/openai.js +60 -6
- package/dist/providers/image/openai.js.map +1 -1
- package/dist/providers/resolve.d.ts +17 -0
- package/dist/providers/resolve.d.ts.map +1 -1
- package/dist/providers/resolve.js +39 -0
- package/dist/providers/resolve.js.map +1 -1
- package/dist/providers/store.d.ts +25 -0
- package/dist/providers/store.d.ts.map +1 -1
- package/dist/providers/store.js +28 -1
- package/dist/providers/store.js.map +1 -1
- package/dist/rag/reference-documents/store.d.ts +21 -0
- package/dist/rag/reference-documents/store.d.ts.map +1 -1
- package/dist/rag/reference-documents/store.js +14 -1
- package/dist/rag/reference-documents/store.js.map +1 -1
- package/dist/runtime/loop.d.ts.map +1 -1
- package/dist/runtime/loop.js +3 -3
- package/dist/runtime/loop.js.map +1 -1
- package/dist/site-plan/approval.d.ts +11 -2
- package/dist/site-plan/approval.d.ts.map +1 -1
- package/dist/site-plan/approval.js +25 -1
- package/dist/site-plan/approval.js.map +1 -1
- package/dist/site-plan/content-model.d.ts +2 -0
- package/dist/site-plan/content-model.d.ts.map +1 -1
- package/dist/site-plan/content-model.js +87 -22
- package/dist/site-plan/content-model.js.map +1 -1
- package/dist/site-plan/enforce.d.ts.map +1 -1
- package/dist/site-plan/enforce.js +26 -1
- package/dist/site-plan/enforce.js.map +1 -1
- package/dist/site-plan/skin-candidates.d.ts +13 -0
- package/dist/site-plan/skin-candidates.d.ts.map +1 -1
- package/dist/site-plan/skin-candidates.js +27 -3
- package/dist/site-plan/skin-candidates.js.map +1 -1
- package/dist/site-plan/types.d.ts +14 -1
- package/dist/site-plan/types.d.ts.map +1 -1
- package/dist/skin/generate.d.ts +14 -0
- package/dist/skin/generate.d.ts.map +1 -1
- package/dist/skin/generate.js +10 -1
- package/dist/skin/generate.js.map +1 -1
- package/dist/theme-creator/attachments.d.ts +37 -0
- package/dist/theme-creator/attachments.d.ts.map +1 -0
- package/dist/theme-creator/attachments.js +57 -0
- package/dist/theme-creator/attachments.js.map +1 -0
- package/dist/theme-creator/layout-classifier.d.ts +66 -0
- package/dist/theme-creator/layout-classifier.d.ts.map +1 -0
- package/dist/theme-creator/layout-classifier.js +151 -0
- package/dist/theme-creator/layout-classifier.js.map +1 -0
- package/dist/theme-creator/propose-theme.d.ts +2 -5
- package/dist/theme-creator/propose-theme.d.ts.map +1 -1
- package/dist/theme-creator/propose-theme.js +9 -58
- package/dist/theme-creator/propose-theme.js.map +1 -1
- package/dist/tools/core/media.d.ts +68 -1
- package/dist/tools/core/media.d.ts.map +1 -1
- package/dist/tools/core/media.js +57 -1
- package/dist/tools/core/media.js.map +1 -1
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builtins.d.ts","sourceRoot":"","sources":["../../src/agents/builtins.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,qBAAqB,EAAe,MAAM,YAAY,CAAA;AAE3F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,eAAO,MAAM,eAAe,kBAAkB,CAAA;AAC9C,eAAO,MAAM,mBAAmB,qBAAqB,CAAA;AACrD,eAAO,MAAM,wBAAwB,kBAAkB,CAAA;AACvD,eAAO,MAAM,uBAAuB,iBAAiB,CAAA;AACrD,eAAO,MAAM,wBAAwB,0BAA0B,CAAA;AAK/D,wBAAgB,iBAAiB,IAAI,SAAS,qBAAqB,EAAE,CAiHpE;AAED;;;;;;;;GAQG;AACH,wBAAsB,mBAAmB,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"builtins.d.ts","sourceRoot":"","sources":["../../src/agents/builtins.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,qBAAqB,EAAe,MAAM,YAAY,CAAA;AAE3F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,eAAO,MAAM,eAAe,kBAAkB,CAAA;AAC9C,eAAO,MAAM,mBAAmB,qBAAqB,CAAA;AACrD,eAAO,MAAM,wBAAwB,kBAAkB,CAAA;AACvD,eAAO,MAAM,uBAAuB,iBAAiB,CAAA;AACrD,eAAO,MAAM,wBAAwB,0BAA0B,CAAA;AAK/D,wBAAgB,iBAAiB,IAAI,SAAS,qBAAqB,EAAE,CAiHpE;AAED;;;;;;;;GAQG;AACH,wBAAsB,mBAAmB,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CASrF"}
|
package/dist/agents/builtins.js
CHANGED
|
@@ -135,17 +135,17 @@ export function builtinAgentSeeds() {
|
|
|
135
135
|
{
|
|
136
136
|
name: THEME_CREATOR_AGENT_NAME,
|
|
137
137
|
identity: {
|
|
138
|
-
role: 'Designs and adjusts this site’s visual theme from a description and, optionally, attached files (documents, screenshots) — the Appearance screen’s theme generator workshop talks to this agent, not the other way around.',
|
|
138
|
+
role: 'Designs and adjusts this site’s visual theme from a description and, optionally, attached files (documents, screenshots) — the Appearance screen’s theme generator workshop talks to this agent, not the other way around. Has two distinct tools for two distinct jobs: theme.propose_theme (recolour/retune an installed theme package, tokens only) and theme.write_sandbox_file (write real, custom theme.config.*/theme.render.* source code into a sandbox, for a design no installed theme package already renders).',
|
|
139
139
|
objectives: [
|
|
140
|
-
'
|
|
140
|
+
'When the request only needs different colours, fonts, spacing or motion on an already-installed theme, read the brief and attachments then call theme.propose_theme — produces contract D skin tokens only, never raw HTML or CSS.',
|
|
141
|
+
'When the request needs custom layout or markup that no installed theme package renders, call theme.write_sandbox_file for real, one file at a time, writing actual theme.config.*/theme.render.* module code (contract D ThemeManifest/ThemeModule shape) — never describe the files in prose, never claim the tool is unavailable.',
|
|
141
142
|
'Pick the base theme from the packages this instance actually ships — never invent one.',
|
|
142
|
-
'
|
|
143
|
-
'Propose 1-3 candidates and stop — this tool never applies anything itself (sideEffects: false); an admin activates a candidate from the workshop.',
|
|
143
|
+
'Propose 1-3 candidates and stop when using theme.propose_theme (sideEffects: false); when using theme.write_sandbox_file, stop once the sandbox holds working files — an admin previews and deploys it separately from the workshop.',
|
|
144
144
|
],
|
|
145
145
|
style: 'Concrete design rationale, one sentence per candidate, no filler.',
|
|
146
146
|
},
|
|
147
147
|
model: DEFAULT_MODEL,
|
|
148
|
-
tools: ['theme.propose_theme'],
|
|
148
|
+
tools: ['theme.propose_theme', 'theme.write_sandbox_file'],
|
|
149
149
|
autonomy: { default: 'propose' },
|
|
150
150
|
budget: { tokensPerDay: 100_000, callsPerHour: 20 },
|
|
151
151
|
enabled: true,
|
|
@@ -166,8 +166,10 @@ export async function ensureBuiltinAgents(store) {
|
|
|
166
166
|
const existing = await store.get(seed.name);
|
|
167
167
|
if (existing === undefined)
|
|
168
168
|
await store.create(seed, true);
|
|
169
|
-
else
|
|
169
|
+
else {
|
|
170
170
|
await grantContentBrowse(store, existing);
|
|
171
|
+
await grantThemeSandboxWrite(store, existing);
|
|
172
|
+
}
|
|
171
173
|
}
|
|
172
174
|
}
|
|
173
175
|
/**
|
|
@@ -187,4 +189,30 @@ async function grantContentBrowse(store, existing) {
|
|
|
187
189
|
return;
|
|
188
190
|
await store.update(existing.name, { tools: [...existing.tools, ...missing] });
|
|
189
191
|
}
|
|
192
|
+
/**
|
|
193
|
+
* Fiche 73 task 7's own real-world bug, found by actually running an
|
|
194
|
+
* existing site against the built dist rather than trusting the unit
|
|
195
|
+
* suite: `theme.write_sandbox_file` was added to `themeCreatorAgent`'s
|
|
196
|
+
* in-code declaration, but "never touch an existing seed" (this file's own
|
|
197
|
+
* policy, above) meant a site whose `theme-creator` agent record already
|
|
198
|
+
* existed from before this tool shipped never gained it — its persisted
|
|
199
|
+
* `tools` array stayed frozen at `['theme.propose_theme']` forever, and the
|
|
200
|
+
* model, never even offered the second tool in its own function-calling
|
|
201
|
+
* schema, had no way to call it no matter how explicitly it was asked to.
|
|
202
|
+
* Same narrow-exception shape as `grantContentBrowse`: only the one named
|
|
203
|
+
* builtin, only an addition, never touching whatever an operator may have
|
|
204
|
+
* customised on top (the tool list gains one entry; the identity text this
|
|
205
|
+
* agent's own record carries is left exactly as it is, since that is the
|
|
206
|
+
* one field an operator is explicitly meant to be able to rewrite from the
|
|
207
|
+
* Prompt Settings screen).
|
|
208
|
+
*/
|
|
209
|
+
async function grantThemeSandboxWrite(store, existing) {
|
|
210
|
+
if (existing.name !== THEME_CREATOR_AGENT_NAME)
|
|
211
|
+
return;
|
|
212
|
+
if (existing.tools.includes('theme.write_sandbox_file'))
|
|
213
|
+
return;
|
|
214
|
+
await store.update(existing.name, {
|
|
215
|
+
tools: [...existing.tools, 'theme.write_sandbox_file'],
|
|
216
|
+
});
|
|
217
|
+
}
|
|
190
218
|
//# sourceMappingURL=builtins.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builtins.js","sourceRoot":"","sources":["../../src/agents/builtins.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"builtins.js","sourceRoot":"","sources":["../../src/agents/builtins.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/agents/store.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/agents/store.ts"],"names":[],"mappings":"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"}
|
package/dist/agents/store.js
CHANGED
|
@@ -1,7 +1,30 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { randomUUID } from 'node:crypto';
|
|
2
|
+
import { mkdir, readdir, readFile, rename, rm, writeFile } from 'node:fs/promises';
|
|
2
3
|
import { join } from 'node:path';
|
|
3
4
|
import { CogentaError } from '@cogenta/core';
|
|
4
5
|
import { parseIdentityMarkdown, renderIdentityMarkdown } from '../identity/markdown.js';
|
|
6
|
+
/**
|
|
7
|
+
* Writes a file so that a reader never sees half of it.
|
|
8
|
+
*
|
|
9
|
+
* `writeFile` truncates the target and then fills it, so a concurrent
|
|
10
|
+
* `readFile` can land in between and get "Unterminated string in JSON" — which
|
|
11
|
+
* is exactly what `cogenta serve` did when an admin changed an agent while the
|
|
12
|
+
* runtime was reading the same record: the PATCH answered 500 about one run in
|
|
13
|
+
* three on CI. Writing beside it and renaming over it is atomic on every
|
|
14
|
+
* filesystem this project targets, so a reader sees the old record or the new
|
|
15
|
+
* one and never a torn one.
|
|
16
|
+
*/
|
|
17
|
+
async function writeFileAtomic(path, data) {
|
|
18
|
+
const temporary = `${path}.${randomUUID()}.tmp`;
|
|
19
|
+
await writeFile(temporary, data, 'utf8');
|
|
20
|
+
try {
|
|
21
|
+
await rename(temporary, path);
|
|
22
|
+
}
|
|
23
|
+
catch (error) {
|
|
24
|
+
await rm(temporary, { force: true });
|
|
25
|
+
throw error;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
5
28
|
const COMBINING_DIACRITICS = /[\u0300-\u036f]/gu;
|
|
6
29
|
function slugify(name) {
|
|
7
30
|
const slug = name
|
|
@@ -66,13 +89,35 @@ export function createFileAgentDeclarationStore(options) {
|
|
|
66
89
|
}
|
|
67
90
|
async function writeIdentity(slug, name, identity) {
|
|
68
91
|
const path = identityFile(slug);
|
|
69
|
-
await
|
|
92
|
+
await writeFileAtomic(path, renderIdentityMarkdown(name, identity));
|
|
70
93
|
return path;
|
|
71
94
|
}
|
|
72
95
|
async function findBySlug(slug) {
|
|
73
96
|
const record = await readRecord(slug);
|
|
74
97
|
return record ?? undefined;
|
|
75
98
|
}
|
|
99
|
+
// Read-modify-write, serialised per agent.
|
|
100
|
+
//
|
|
101
|
+
// Every mutation reads the record, changes a field and writes the whole
|
|
102
|
+
// record back. Two of them on the same agent at once — an admin's PATCH and
|
|
103
|
+
// the runtime touching the same built-in — each read the old record, and the
|
|
104
|
+
// second write silently undoes the first. With a plain `writeFile` that
|
|
105
|
+
// surfaced as a torn read and a 500; once writes were atomic it became a
|
|
106
|
+
// lost update instead: the agent an admin had just switched on came back
|
|
107
|
+
// disabled and its run answered AGENT_DISABLED (409). A safer write cannot
|
|
108
|
+
// fix that — only not letting the two interleave can.
|
|
109
|
+
const pending = new Map();
|
|
110
|
+
function serialised(slug, work) {
|
|
111
|
+
const previous = pending.get(slug) ?? Promise.resolve();
|
|
112
|
+
const next = previous.catch(() => undefined).then(work);
|
|
113
|
+
const settled = next.catch(() => undefined);
|
|
114
|
+
pending.set(slug, settled);
|
|
115
|
+
void settled.then(() => {
|
|
116
|
+
if (pending.get(slug) === settled)
|
|
117
|
+
pending.delete(slug);
|
|
118
|
+
});
|
|
119
|
+
return next;
|
|
120
|
+
}
|
|
76
121
|
return {
|
|
77
122
|
async list() {
|
|
78
123
|
await ready;
|
|
@@ -85,111 +130,119 @@ export function createFileAgentDeclarationStore(options) {
|
|
|
85
130
|
async create(input, builtin = false) {
|
|
86
131
|
await ready;
|
|
87
132
|
const slug = slugOf(input.name);
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
133
|
+
return serialised(slug, async () => {
|
|
134
|
+
const existing = await findBySlug(slug);
|
|
135
|
+
if (existing !== undefined) {
|
|
136
|
+
throw new CogentaError({
|
|
137
|
+
code: 'AGENT_DUPLICATE',
|
|
138
|
+
message: `An agent named "${input.name}" already exists.`,
|
|
139
|
+
hint: 'Choose a different name, or edit the existing agent instead.',
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
const identityPath = await writeIdentity(slug, input.name, input.identity);
|
|
143
|
+
const at = now().toISOString();
|
|
144
|
+
const record = {
|
|
145
|
+
id: slug,
|
|
146
|
+
name: input.name,
|
|
147
|
+
identity: identityPath,
|
|
148
|
+
model: input.model,
|
|
149
|
+
tools: input.tools,
|
|
150
|
+
...(input.skills === undefined ? {} : { skills: input.skills }),
|
|
151
|
+
...(input.subagents === undefined ? {} : { subagents: input.subagents }),
|
|
152
|
+
...(input.autonomy === undefined ? {} : { autonomy: input.autonomy }),
|
|
153
|
+
...(input.budget === undefined ? {} : { budget: input.budget }),
|
|
154
|
+
...(input.memory === undefined ? {} : { memory: input.memory }),
|
|
155
|
+
...(input.triggers === undefined ? {} : { triggers: input.triggers }),
|
|
156
|
+
enabled: input.enabled ?? true,
|
|
157
|
+
builtin,
|
|
158
|
+
createdAt: at,
|
|
159
|
+
updatedAt: at,
|
|
160
|
+
};
|
|
161
|
+
await writeFileAtomic(recordFile(slug), JSON.stringify(record, null, 2));
|
|
162
|
+
return record;
|
|
163
|
+
});
|
|
117
164
|
},
|
|
118
165
|
async update(name, patch) {
|
|
119
166
|
await ready;
|
|
120
167
|
const slug = slugOf(name);
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
168
|
+
return serialised(slug, async () => {
|
|
169
|
+
const existing = await findBySlug(slug);
|
|
170
|
+
if (existing === undefined)
|
|
171
|
+
throw agentUnknown(name);
|
|
172
|
+
const identityPath = patch.identity === undefined
|
|
173
|
+
? existing.identity
|
|
174
|
+
: await writeIdentity(slug, existing.name, patch.identity);
|
|
175
|
+
const updated = {
|
|
176
|
+
...existing,
|
|
177
|
+
identity: identityPath,
|
|
178
|
+
model: patch.model ?? existing.model,
|
|
179
|
+
tools: patch.tools ?? existing.tools,
|
|
180
|
+
...(patch.skills !== undefined
|
|
181
|
+
? { skills: patch.skills }
|
|
182
|
+
: existing.skills === undefined
|
|
183
|
+
? {}
|
|
184
|
+
: { skills: existing.skills }),
|
|
185
|
+
...(patch.subagents !== undefined
|
|
186
|
+
? { subagents: patch.subagents }
|
|
187
|
+
: existing.subagents === undefined
|
|
188
|
+
? {}
|
|
189
|
+
: { subagents: existing.subagents }),
|
|
190
|
+
...(patch.autonomy !== undefined
|
|
191
|
+
? { autonomy: patch.autonomy }
|
|
192
|
+
: existing.autonomy === undefined
|
|
193
|
+
? {}
|
|
194
|
+
: { autonomy: existing.autonomy }),
|
|
195
|
+
...(patch.budget !== undefined
|
|
196
|
+
? { budget: patch.budget }
|
|
197
|
+
: existing.budget === undefined
|
|
198
|
+
? {}
|
|
199
|
+
: { budget: existing.budget }),
|
|
200
|
+
...(patch.memory !== undefined
|
|
201
|
+
? { memory: patch.memory }
|
|
202
|
+
: existing.memory === undefined
|
|
203
|
+
? {}
|
|
204
|
+
: { memory: existing.memory }),
|
|
205
|
+
...(patch.triggers !== undefined
|
|
206
|
+
? { triggers: patch.triggers }
|
|
207
|
+
: existing.triggers === undefined
|
|
208
|
+
? {}
|
|
209
|
+
: { triggers: existing.triggers }),
|
|
210
|
+
enabled: patch.enabled ?? existing.enabled,
|
|
211
|
+
updatedAt: now().toISOString(),
|
|
212
|
+
};
|
|
213
|
+
await writeFileAtomic(recordFile(slug), JSON.stringify(updated, null, 2));
|
|
214
|
+
return updated;
|
|
215
|
+
});
|
|
167
216
|
},
|
|
168
217
|
async setEnabled(name, enabled) {
|
|
169
218
|
await ready;
|
|
170
219
|
const slug = slugOf(name);
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
220
|
+
return serialised(slug, async () => {
|
|
221
|
+
const existing = await findBySlug(slug);
|
|
222
|
+
if (existing === undefined)
|
|
223
|
+
throw agentUnknown(name);
|
|
224
|
+
const updated = { ...existing, enabled, updatedAt: now().toISOString() };
|
|
225
|
+
await writeFileAtomic(recordFile(slug), JSON.stringify(updated, null, 2));
|
|
226
|
+
return updated;
|
|
227
|
+
});
|
|
177
228
|
},
|
|
178
229
|
async remove(name) {
|
|
179
230
|
await ready;
|
|
180
231
|
const slug = slugOf(name);
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
232
|
+
return serialised(slug, async () => {
|
|
233
|
+
const existing = await findBySlug(slug);
|
|
234
|
+
if (existing === undefined)
|
|
235
|
+
throw agentUnknown(name);
|
|
236
|
+
if (existing.builtin) {
|
|
237
|
+
throw new CogentaError({
|
|
238
|
+
code: 'AGENT_BUILTIN_UNDELETABLE',
|
|
239
|
+
message: `"${name}" is a built-in agent and cannot be removed.`,
|
|
240
|
+
hint: 'Disable it instead — a built-in stays editable but can be turned off.',
|
|
241
|
+
});
|
|
242
|
+
}
|
|
243
|
+
await rm(recordFile(slug), { force: true });
|
|
244
|
+
await rm(identityFile(slug), { force: true });
|
|
245
|
+
});
|
|
193
246
|
},
|
|
194
247
|
async readIdentity(name) {
|
|
195
248
|
await ready;
|
package/dist/agents/store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/agents/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/agents/store.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,6 +23,34 @@ export interface AgentIdentity {
|
|
|
23
23
|
export interface TaskContext {
|
|
24
24
|
readonly instruction: string;
|
|
25
25
|
}
|
|
26
|
+
/**
|
|
27
|
+
* A compile-time domain specification: the durable "here is how this kind of
|
|
28
|
+
* artefact is built" knowledge an agent needs before it can do the work at
|
|
29
|
+
* all — the structure and composition of a Cogenta theme, for the theme
|
|
30
|
+
* creator that motivated this field.
|
|
31
|
+
*
|
|
32
|
+
* It is a separate level from `agent` on purpose. `role`/`objectives` say who
|
|
33
|
+
* an agent is and how it should proceed; a specification says what the thing
|
|
34
|
+
* it produces actually is. Folding one into the other is what left the theme
|
|
35
|
+
* writer with a one-sentence role while its entire structural brief sat in a
|
|
36
|
+
* tool `description` — the place a model reads as API reference rather than
|
|
37
|
+
* as standing instruction.
|
|
38
|
+
*
|
|
39
|
+
* **Never escaped, and therefore never a channel for anything external.**
|
|
40
|
+
* Like `task.instruction` (see `assembleContext` below) this is trusted text,
|
|
41
|
+
* and for the same reason: it is a constant in this repository's own source,
|
|
42
|
+
* not a site owner's input, not a model's output, and not content that
|
|
43
|
+
* arrived from a comment, an import, or a fetch. That matters concretely
|
|
44
|
+
* here — a specification is mostly code and markup examples, and escaping
|
|
45
|
+
* would turn every `<header>` in them into `<header>`, teaching the
|
|
46
|
+
* model to emit exactly the wrong thing. Anything whose origin is not a
|
|
47
|
+
* literal in this codebase belongs in `data`, which is escaped.
|
|
48
|
+
*/
|
|
49
|
+
export interface SpecificationContext {
|
|
50
|
+
/** Names what is being specified, e.g. `"Cogenta theme"` — shown as the section's own label. */
|
|
51
|
+
readonly subject: string;
|
|
52
|
+
readonly body: string;
|
|
53
|
+
}
|
|
26
54
|
/**
|
|
27
55
|
* One piece of untrusted content — a comment, an import, a fetched page
|
|
28
56
|
* (R8: "Tout contenu externe... est balisé comme tel"). `source` is shown to
|
|
@@ -37,10 +65,12 @@ export interface AssembleContextInput {
|
|
|
37
65
|
readonly site: SiteContext;
|
|
38
66
|
readonly agent: AgentIdentity;
|
|
39
67
|
readonly task: TaskContext;
|
|
68
|
+
/** Optional and additive — an agent that needs no domain specification simply omits it, and the assembled system prompt has no such section. */
|
|
69
|
+
readonly specification?: SpecificationContext;
|
|
40
70
|
readonly data?: readonly DataItem[];
|
|
41
71
|
}
|
|
42
72
|
export interface AssembledContext {
|
|
43
|
-
/** CONSTITUTION → SITE → AGENT → TASK, in that fixed order — this is `ChatRequest.system`. */
|
|
73
|
+
/** CONSTITUTION → SITE → AGENT → SPECIFICATION (when given) → TASK, in that fixed order — this is `ChatRequest.system`. */
|
|
44
74
|
readonly system: string;
|
|
45
75
|
/** DATA, one tagged message per item, appended after `system` — never merged into it. */
|
|
46
76
|
readonly dataMessages: readonly ChatMessage[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/identity/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAGxD,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;IACnC,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CACzC;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAA;IACtC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB;;;;;;OAMG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAC/B;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAC7B;AAED;;;;;GAKG;AACH,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAA;IAC1B,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAA;IAC7B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAA;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,QAAQ,EAAE,CAAA;CACpC;AAED,MAAM,WAAW,gBAAgB;IAC/B,
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/identity/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAGxD,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;IACnC,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CACzC;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAA;IACtC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB;;;;;;OAMG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAC/B;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAC7B;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,WAAW,oBAAoB;IACnC,gGAAgG;IAChG,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB;AAED;;;;;GAKG;AACH,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAA;IAC1B,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAA;IAC7B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAA;IAC1B,gJAAgJ;IAChJ,QAAQ,CAAC,aAAa,CAAC,EAAE,oBAAoB,CAAA;IAC7C,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,QAAQ,EAAE,CAAA;CACpC;AAED,MAAM,WAAW,gBAAgB;IAC/B,2HAA2H;IAC3H,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,yFAAyF;IACzF,QAAQ,CAAC,YAAY,EAAE,SAAS,WAAW,EAAE,CAAA;CAC9C;AA6DD;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,gBAAgB,CA6B7E"}
|
package/dist/identity/context.js
CHANGED
|
@@ -66,6 +66,16 @@ export function assembleContext(input) {
|
|
|
66
66
|
tag('constitution', CONSTITUTION_TEXT),
|
|
67
67
|
tag('site', siteSection(input.site)),
|
|
68
68
|
tag('agent', agentSection(input.agent)),
|
|
69
|
+
// Sits between AGENT and TASK because that is the order the levels are
|
|
70
|
+
// read in: who you are, then what the thing you build is, then what is
|
|
71
|
+
// being asked of you this time. Not escaped — see `SpecificationContext`.
|
|
72
|
+
...(input.specification === undefined
|
|
73
|
+
? []
|
|
74
|
+
: [
|
|
75
|
+
tag('specification', input.specification.body, {
|
|
76
|
+
subject: input.specification.subject,
|
|
77
|
+
}),
|
|
78
|
+
]),
|
|
69
79
|
// Not escaped: unlike `data`, a task instruction is runtime-generated
|
|
70
80
|
// (a trigger, an operator, a schedule), not external content — R8 only
|
|
71
81
|
// requires balisage for content that entered from a comment, import, or
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/identity/context.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/identity/context.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -99,10 +99,10 @@ export type { OpenAiClientConfig, OpenAiRequestBody } from './providers/openai.j
|
|
|
99
99
|
export { buildOpenAiRequest, createOpenAiClient, parseOpenAiResponse } from './providers/openai.js';
|
|
100
100
|
export type { ProviderEntryConfig, ProviderName, ProviderRegistryConfig, } from './providers/registry.js';
|
|
101
101
|
export { createProviderRegistry } from './providers/registry.js';
|
|
102
|
-
export { resolveProviderRegistryConfig } from './providers/resolve.js';
|
|
102
|
+
export { resolveImageProviderRegistryConfig, resolveProviderRegistryConfig, } from './providers/resolve.js';
|
|
103
103
|
export type { FileProviderConfigStoreOptions, ProviderConfigInput, ProviderConfigStore, StoredProviderConfig, } from './providers/store.js';
|
|
104
104
|
export { createFileProviderConfigStore } from './providers/store.js';
|
|
105
|
-
export type { ChatMessage, ChatOptions, ChatRequest, ChatResponse, ChatRole, ProviderClient, ProviderToolCall, ProviderToolSpec, StopReason, TokenUsage, } from './providers/types.js';
|
|
105
|
+
export type { ChatContentPart, ChatImagePart, ChatMessage, ChatOptions, ChatRequest, ChatResponse, ChatRole, ChatTextPart, ProviderClient, ProviderToolCall, ProviderToolSpec, StopReason, TokenUsage, } from './providers/types.js';
|
|
106
106
|
export { chunkDocument } from './rag/chunking/chunk-document.js';
|
|
107
107
|
export type { IngestionPlan } from './rag/chunking/incremental.js';
|
|
108
108
|
export { planIncrementalIngestion } from './rag/chunking/incremental.js';
|
|
@@ -172,7 +172,11 @@ export { generateSkin } from './skin/generate.js';
|
|
|
172
172
|
export { runSubagent } from './subagents/run-subagent.js';
|
|
173
173
|
export type { AgentToolsDeclaration } from './subagents/types.js';
|
|
174
174
|
export { validateSubagentTools } from './subagents/validate.js';
|
|
175
|
-
export type {
|
|
175
|
+
export type { ProcessedAttachments, ThemeCreatorAttachment, } from './theme-creator/attachments.js';
|
|
176
|
+
export { processAttachments } from './theme-creator/attachments.js';
|
|
177
|
+
export type { ClassifyLayoutNeedInput, ClassifyLayoutNeedResult, } from './theme-creator/layout-classifier.js';
|
|
178
|
+
export { classifyThemeLayoutNeed } from './theme-creator/layout-classifier.js';
|
|
179
|
+
export type { ProposeThemeCandidatesInput, ProposeThemeCandidatesResult, ThemeCreatorCandidate, ThemeCreatorChromeInput, ThemeCreatorTargetTheme, } from './theme-creator/propose-theme.js';
|
|
176
180
|
export { proposeThemeCandidates } from './theme-creator/propose-theme.js';
|
|
177
181
|
export type { AgentDelegateInput, AgentDelegateOutput, AgentDelegateToolOptions, } from './tools/core/agent-delegate.js';
|
|
178
182
|
export { agentDelegateToolName, createAgentDelegateTool } from './tools/core/agent-delegate.js';
|
|
@@ -186,7 +190,8 @@ export type { DepsScanOutput, DepsScanToolOptions } from './tools/core/deps-scan
|
|
|
186
190
|
export { createDepsScanTool } from './tools/core/deps-scan.js';
|
|
187
191
|
export type { HttpFetchInput, HttpFetchOutput, HttpFetchToolOptions, } from './tools/core/http-fetch.js';
|
|
188
192
|
export { createHttpFetchTool } from './tools/core/http-fetch.js';
|
|
189
|
-
export {
|
|
193
|
+
export type { MediaStoreImageToolOptions, StoreImageInput, StoreImageOutput, } from './tools/core/media.js';
|
|
194
|
+
export { createMediaReadTool, createMediaStoreImageTool, createMediaWriteTool, } from './tools/core/media.js';
|
|
190
195
|
export type { NotFoundLogReader } from './tools/core/not-found-log.js';
|
|
191
196
|
export { createNotFoundLogReadTool } from './tools/core/not-found-log.js';
|
|
192
197
|
export type { RedirectWriter } from './tools/core/redirects.js';
|