@cogenta/agents 0.6.0 → 0.8.4
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 +1 -0
- package/dist/agents/builtins.d.ts.map +1 -1
- package/dist/agents/builtins.js +20 -0
- package/dist/agents/builtins.js.map +1 -1
- package/dist/agents/store.d.ts.map +1 -1
- package/dist/agents/store.js +157 -106
- package/dist/agents/store.js.map +1 -1
- package/dist/fs/lazy-directories.d.ts +14 -0
- package/dist/fs/lazy-directories.d.ts.map +1 -0
- package/dist/fs/lazy-directories.js +28 -0
- package/dist/fs/lazy-directories.js.map +1 -0
- 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 +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/memory/file-store.d.ts.map +1 -1
- package/dist/memory/file-store.js +8 -7
- package/dist/memory/file-store.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/prompts/store.d.ts.map +1 -1
- package/dist/prompts/store.js +8 -7
- package/dist/prompts/store.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 +38 -10
- 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/skills/file-store.d.ts.map +1 -1
- package/dist/skills/file-store.js +6 -5
- package/dist/skills/file-store.js.map +1 -1
- package/dist/skills/library.d.ts.map +1 -1
- package/dist/skills/library.js +10 -9
- package/dist/skills/library.js.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 +17 -2
- package/dist/skin/generate.js.map +1 -1
- package/dist/theme-creator/layout-classifier.d.ts +2 -0
- package/dist/theme-creator/layout-classifier.d.ts.map +1 -1
- package/dist/theme-creator/layout-classifier.js +19 -4
- package/dist/theme-creator/layout-classifier.js.map +1 -1
- package/dist/theme-creator/propose-theme.d.ts.map +1 -1
- package/dist/theme-creator/propose-theme.js +8 -2
- 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/dist/trace/file-store.d.ts.map +1 -1
- package/dist/trace/file-store.js +7 -6
- package/dist/trace/file-store.js.map +1 -1
- package/package.json +5 -5
|
@@ -37,6 +37,7 @@ export declare const SECURITY_AGENT_NAME = "Security Scanner";
|
|
|
37
37
|
export declare const CONTENT_WATCH_AGENT_NAME = "Content Watch";
|
|
38
38
|
export declare const SITE_MONITOR_AGENT_NAME = "Site Monitor";
|
|
39
39
|
export declare const THEME_CREATOR_AGENT_NAME = "Cogenta Theme Creator";
|
|
40
|
+
export declare const PLUGIN_BUILDER_AGENT_NAME = "Cogenta Plugin Builder";
|
|
40
41
|
export declare function builtinAgentSeeds(): readonly AgentDeclarationInput[];
|
|
41
42
|
/**
|
|
42
43
|
* Idempotent: called both by `create-cogenta` at install and defensively by
|
|
@@ -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;
|
|
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;AAC/D,eAAO,MAAM,yBAAyB,2BAA2B,CAAA;AAKjE,wBAAgB,iBAAiB,IAAI,SAAS,qBAAqB,EAAE,CAoIpE;AAED;;;;;;;;GAQG;AACH,wBAAsB,mBAAmB,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CASrF"}
|
package/dist/agents/builtins.js
CHANGED
|
@@ -36,6 +36,7 @@ export const SECURITY_AGENT_NAME = 'Security Scanner';
|
|
|
36
36
|
export const CONTENT_WATCH_AGENT_NAME = 'Content Watch';
|
|
37
37
|
export const SITE_MONITOR_AGENT_NAME = 'Site Monitor';
|
|
38
38
|
export const THEME_CREATOR_AGENT_NAME = 'Cogenta Theme Creator';
|
|
39
|
+
export const PLUGIN_BUILDER_AGENT_NAME = 'Cogenta Plugin Builder';
|
|
39
40
|
/** Passed to `AgentDeclarationInput.model` — every seed prefers the same provider/model names an operator is most likely to configure first; `agents/orchestrator.ts` never fails to resolve a provider just because the *name* differs from what the site has enabled, it only needs `providers/store.ts` to have configured at least one. */
|
|
40
41
|
const DEFAULT_MODEL = { preferred: 'anthropic', fallback: 'openai' };
|
|
41
42
|
export function builtinAgentSeeds() {
|
|
@@ -150,6 +151,25 @@ export function builtinAgentSeeds() {
|
|
|
150
151
|
budget: { tokensPerDay: 100_000, callsPerHour: 20 },
|
|
151
152
|
enabled: true,
|
|
152
153
|
},
|
|
154
|
+
{
|
|
155
|
+
name: PLUGIN_BUILDER_AGENT_NAME,
|
|
156
|
+
identity: {
|
|
157
|
+
role: 'Writes a plugin for a feature this site does not have — real JavaScript, into a sandbox, never into the installed plugins. A plugin reacts to content events, serves its own page under /_cogenta/plugins/<name>, or runs on a cadence, inside an isolated worker holding only the capabilities a person granted it.',
|
|
158
|
+
objectives: [
|
|
159
|
+
'Read what the sandbox already holds (plugin.read_sandbox_file with no path) before writing anything into it.',
|
|
160
|
+
'Write the manifest and the code for real, one file per call, with plugin.write_sandbox_file — never a description of the files.',
|
|
161
|
+
'Call plugin.check_sandbox and fix exactly what it names: it validates the manifest, evaluates the code in the real isolated worker with nothing granted, and checks that every declared event, route and schedule has its handler.',
|
|
162
|
+
'Ask for the fewest capabilities that do the job, naming a collection where that narrows it (content.write_draft:article), and say plainly when a request would need a capability nothing implements.',
|
|
163
|
+
'Stop once the sandbox checks out, and say that a person installs it from the Plugins screen — there is no deploy tool, and claiming otherwise would be false.',
|
|
164
|
+
],
|
|
165
|
+
style: 'Plain, specific, no filler; name what the plugin does and what it asks for.',
|
|
166
|
+
},
|
|
167
|
+
model: DEFAULT_MODEL,
|
|
168
|
+
tools: ['plugin.write_sandbox_file', 'plugin.read_sandbox_file', 'plugin.check_sandbox'],
|
|
169
|
+
autonomy: { default: 'propose' },
|
|
170
|
+
budget: { tokensPerDay: 120_000, callsPerHour: 20 },
|
|
171
|
+
enabled: true,
|
|
172
|
+
},
|
|
153
173
|
];
|
|
154
174
|
}
|
|
155
175
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builtins.js","sourceRoot":"","sources":["../../src/agents/builtins.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,eAAe,CAAA;AAC9C,MAAM,CAAC,MAAM,mBAAmB,GAAG,kBAAkB,CAAA;AACrD,MAAM,CAAC,MAAM,wBAAwB,GAAG,eAAe,CAAA;AACvD,MAAM,CAAC,MAAM,uBAAuB,GAAG,cAAc,CAAA;AACrD,MAAM,CAAC,MAAM,wBAAwB,GAAG,uBAAuB,CAAA;
|
|
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,31 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { randomUUID } from 'node:crypto';
|
|
2
|
+
import { readdir, readFile, rename, rm, writeFile } from 'node:fs/promises';
|
|
2
3
|
import { join } from 'node:path';
|
|
3
4
|
import { CogentaError } from '@cogenta/core';
|
|
5
|
+
import { lazyDirectories } from '../fs/lazy-directories.js';
|
|
4
6
|
import { parseIdentityMarkdown, renderIdentityMarkdown } from '../identity/markdown.js';
|
|
7
|
+
/**
|
|
8
|
+
* Writes a file so that a reader never sees half of it.
|
|
9
|
+
*
|
|
10
|
+
* `writeFile` truncates the target and then fills it, so a concurrent
|
|
11
|
+
* `readFile` can land in between and get "Unterminated string in JSON" — which
|
|
12
|
+
* is exactly what `cogenta serve` did when an admin changed an agent while the
|
|
13
|
+
* runtime was reading the same record: the PATCH answered 500 about one run in
|
|
14
|
+
* three on CI. Writing beside it and renaming over it is atomic on every
|
|
15
|
+
* filesystem this project targets, so a reader sees the old record or the new
|
|
16
|
+
* one and never a torn one.
|
|
17
|
+
*/
|
|
18
|
+
async function writeFileAtomic(path, data) {
|
|
19
|
+
const temporary = `${path}.${randomUUID()}.tmp`;
|
|
20
|
+
await writeFile(temporary, data, 'utf8');
|
|
21
|
+
try {
|
|
22
|
+
await rename(temporary, path);
|
|
23
|
+
}
|
|
24
|
+
catch (error) {
|
|
25
|
+
await rm(temporary, { force: true });
|
|
26
|
+
throw error;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
5
29
|
const COMBINING_DIACRITICS = /[\u0300-\u036f]/gu;
|
|
6
30
|
function slugify(name) {
|
|
7
31
|
const slug = name
|
|
@@ -23,10 +47,7 @@ function agentUnknown(name) {
|
|
|
23
47
|
export function createFileAgentDeclarationStore(options) {
|
|
24
48
|
const now = options.now ?? (() => new Date());
|
|
25
49
|
const identitiesDir = join(options.dir, 'identities');
|
|
26
|
-
const ready =
|
|
27
|
-
mkdir(options.dir, { recursive: true }),
|
|
28
|
-
mkdir(identitiesDir, { recursive: true }),
|
|
29
|
-
]);
|
|
50
|
+
const ready = lazyDirectories(options.dir, identitiesDir);
|
|
30
51
|
function recordFile(slug) {
|
|
31
52
|
return join(options.dir, `${slug}.json`);
|
|
32
53
|
}
|
|
@@ -66,133 +87,163 @@ export function createFileAgentDeclarationStore(options) {
|
|
|
66
87
|
}
|
|
67
88
|
async function writeIdentity(slug, name, identity) {
|
|
68
89
|
const path = identityFile(slug);
|
|
69
|
-
await
|
|
90
|
+
await writeFileAtomic(path, renderIdentityMarkdown(name, identity));
|
|
70
91
|
return path;
|
|
71
92
|
}
|
|
72
93
|
async function findBySlug(slug) {
|
|
73
94
|
const record = await readRecord(slug);
|
|
74
95
|
return record ?? undefined;
|
|
75
96
|
}
|
|
97
|
+
// Read-modify-write, serialised per agent.
|
|
98
|
+
//
|
|
99
|
+
// Every mutation reads the record, changes a field and writes the whole
|
|
100
|
+
// record back. Two of them on the same agent at once — an admin's PATCH and
|
|
101
|
+
// the runtime touching the same built-in — each read the old record, and the
|
|
102
|
+
// second write silently undoes the first. With a plain `writeFile` that
|
|
103
|
+
// surfaced as a torn read and a 500; once writes were atomic it became a
|
|
104
|
+
// lost update instead: the agent an admin had just switched on came back
|
|
105
|
+
// disabled and its run answered AGENT_DISABLED (409). A safer write cannot
|
|
106
|
+
// fix that — only not letting the two interleave can.
|
|
107
|
+
const pending = new Map();
|
|
108
|
+
function serialised(slug, work) {
|
|
109
|
+
const previous = pending.get(slug) ?? Promise.resolve();
|
|
110
|
+
const next = previous.catch(() => undefined).then(work);
|
|
111
|
+
const settled = next.catch(() => undefined);
|
|
112
|
+
pending.set(slug, settled);
|
|
113
|
+
void settled.then(() => {
|
|
114
|
+
if (pending.get(slug) === settled)
|
|
115
|
+
pending.delete(slug);
|
|
116
|
+
});
|
|
117
|
+
return next;
|
|
118
|
+
}
|
|
76
119
|
return {
|
|
77
120
|
async list() {
|
|
78
|
-
await ready;
|
|
121
|
+
await ready();
|
|
79
122
|
return readAll();
|
|
80
123
|
},
|
|
81
124
|
async get(name) {
|
|
82
|
-
await ready;
|
|
125
|
+
await ready();
|
|
83
126
|
return findBySlug(slugOf(name));
|
|
84
127
|
},
|
|
85
128
|
async create(input, builtin = false) {
|
|
86
|
-
await ready;
|
|
129
|
+
await ready();
|
|
87
130
|
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
|
-
|
|
131
|
+
return serialised(slug, async () => {
|
|
132
|
+
const existing = await findBySlug(slug);
|
|
133
|
+
if (existing !== undefined) {
|
|
134
|
+
throw new CogentaError({
|
|
135
|
+
code: 'AGENT_DUPLICATE',
|
|
136
|
+
message: `An agent named "${input.name}" already exists.`,
|
|
137
|
+
hint: 'Choose a different name, or edit the existing agent instead.',
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
const identityPath = await writeIdentity(slug, input.name, input.identity);
|
|
141
|
+
const at = now().toISOString();
|
|
142
|
+
const record = {
|
|
143
|
+
id: slug,
|
|
144
|
+
name: input.name,
|
|
145
|
+
identity: identityPath,
|
|
146
|
+
model: input.model,
|
|
147
|
+
tools: input.tools,
|
|
148
|
+
...(input.skills === undefined ? {} : { skills: input.skills }),
|
|
149
|
+
...(input.subagents === undefined ? {} : { subagents: input.subagents }),
|
|
150
|
+
...(input.autonomy === undefined ? {} : { autonomy: input.autonomy }),
|
|
151
|
+
...(input.budget === undefined ? {} : { budget: input.budget }),
|
|
152
|
+
...(input.memory === undefined ? {} : { memory: input.memory }),
|
|
153
|
+
...(input.triggers === undefined ? {} : { triggers: input.triggers }),
|
|
154
|
+
enabled: input.enabled ?? true,
|
|
155
|
+
builtin,
|
|
156
|
+
createdAt: at,
|
|
157
|
+
updatedAt: at,
|
|
158
|
+
};
|
|
159
|
+
await writeFileAtomic(recordFile(slug), JSON.stringify(record, null, 2));
|
|
160
|
+
return record;
|
|
161
|
+
});
|
|
117
162
|
},
|
|
118
163
|
async update(name, patch) {
|
|
119
|
-
await ready;
|
|
164
|
+
await ready();
|
|
120
165
|
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
|
-
|
|
166
|
+
return serialised(slug, async () => {
|
|
167
|
+
const existing = await findBySlug(slug);
|
|
168
|
+
if (existing === undefined)
|
|
169
|
+
throw agentUnknown(name);
|
|
170
|
+
const identityPath = patch.identity === undefined
|
|
171
|
+
? existing.identity
|
|
172
|
+
: await writeIdentity(slug, existing.name, patch.identity);
|
|
173
|
+
const updated = {
|
|
174
|
+
...existing,
|
|
175
|
+
identity: identityPath,
|
|
176
|
+
model: patch.model ?? existing.model,
|
|
177
|
+
tools: patch.tools ?? existing.tools,
|
|
178
|
+
...(patch.skills !== undefined
|
|
179
|
+
? { skills: patch.skills }
|
|
180
|
+
: existing.skills === undefined
|
|
181
|
+
? {}
|
|
182
|
+
: { skills: existing.skills }),
|
|
183
|
+
...(patch.subagents !== undefined
|
|
184
|
+
? { subagents: patch.subagents }
|
|
185
|
+
: existing.subagents === undefined
|
|
186
|
+
? {}
|
|
187
|
+
: { subagents: existing.subagents }),
|
|
188
|
+
...(patch.autonomy !== undefined
|
|
189
|
+
? { autonomy: patch.autonomy }
|
|
190
|
+
: existing.autonomy === undefined
|
|
191
|
+
? {}
|
|
192
|
+
: { autonomy: existing.autonomy }),
|
|
193
|
+
...(patch.budget !== undefined
|
|
194
|
+
? { budget: patch.budget }
|
|
195
|
+
: existing.budget === undefined
|
|
196
|
+
? {}
|
|
197
|
+
: { budget: existing.budget }),
|
|
198
|
+
...(patch.memory !== undefined
|
|
199
|
+
? { memory: patch.memory }
|
|
200
|
+
: existing.memory === undefined
|
|
201
|
+
? {}
|
|
202
|
+
: { memory: existing.memory }),
|
|
203
|
+
...(patch.triggers !== undefined
|
|
204
|
+
? { triggers: patch.triggers }
|
|
205
|
+
: existing.triggers === undefined
|
|
206
|
+
? {}
|
|
207
|
+
: { triggers: existing.triggers }),
|
|
208
|
+
enabled: patch.enabled ?? existing.enabled,
|
|
209
|
+
updatedAt: now().toISOString(),
|
|
210
|
+
};
|
|
211
|
+
await writeFileAtomic(recordFile(slug), JSON.stringify(updated, null, 2));
|
|
212
|
+
return updated;
|
|
213
|
+
});
|
|
167
214
|
},
|
|
168
215
|
async setEnabled(name, enabled) {
|
|
169
|
-
await ready;
|
|
216
|
+
await ready();
|
|
170
217
|
const slug = slugOf(name);
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
218
|
+
return serialised(slug, async () => {
|
|
219
|
+
const existing = await findBySlug(slug);
|
|
220
|
+
if (existing === undefined)
|
|
221
|
+
throw agentUnknown(name);
|
|
222
|
+
const updated = { ...existing, enabled, updatedAt: now().toISOString() };
|
|
223
|
+
await writeFileAtomic(recordFile(slug), JSON.stringify(updated, null, 2));
|
|
224
|
+
return updated;
|
|
225
|
+
});
|
|
177
226
|
},
|
|
178
227
|
async remove(name) {
|
|
179
|
-
await ready;
|
|
228
|
+
await ready();
|
|
180
229
|
const slug = slugOf(name);
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
230
|
+
return serialised(slug, async () => {
|
|
231
|
+
const existing = await findBySlug(slug);
|
|
232
|
+
if (existing === undefined)
|
|
233
|
+
throw agentUnknown(name);
|
|
234
|
+
if (existing.builtin) {
|
|
235
|
+
throw new CogentaError({
|
|
236
|
+
code: 'AGENT_BUILTIN_UNDELETABLE',
|
|
237
|
+
message: `"${name}" is a built-in agent and cannot be removed.`,
|
|
238
|
+
hint: 'Disable it instead — a built-in stays editable but can be turned off.',
|
|
239
|
+
});
|
|
240
|
+
}
|
|
241
|
+
await rm(recordFile(slug), { force: true });
|
|
242
|
+
await rm(identityFile(slug), { force: true });
|
|
243
|
+
});
|
|
193
244
|
},
|
|
194
245
|
async readIdentity(name) {
|
|
195
|
-
await ready;
|
|
246
|
+
await ready();
|
|
196
247
|
const slug = slugOf(name);
|
|
197
248
|
const existing = await findBySlug(slug);
|
|
198
249
|
if (existing === undefined)
|
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,
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/agents/store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Creates `dirs` the first time a file store actually needs them, and hands
|
|
3
|
+
* every later call the same promise.
|
|
4
|
+
*
|
|
5
|
+
* Starting the `mkdir` at construction instead leaves a promise nobody awaits
|
|
6
|
+
* until a method runs: if the directory cannot be created, that rejection is
|
|
7
|
+
* unhandled, which terminates a Node process by default — for a store that
|
|
8
|
+
* may never be used at all. Creating it on first use puts the failure where
|
|
9
|
+
* someone is waiting for it. A failed attempt is forgotten, so a directory
|
|
10
|
+
* that becomes creatable later (a volume mounted after start-up) works on the
|
|
11
|
+
* next call rather than failing forever.
|
|
12
|
+
*/
|
|
13
|
+
export declare function lazyDirectories(...dirs: readonly string[]): () => Promise<void>;
|
|
14
|
+
//# sourceMappingURL=lazy-directories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lazy-directories.d.ts","sourceRoot":"","sources":["../../src/fs/lazy-directories.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,GAAG,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAc/E"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { mkdir } from 'node:fs/promises';
|
|
2
|
+
/**
|
|
3
|
+
* Creates `dirs` the first time a file store actually needs them, and hands
|
|
4
|
+
* every later call the same promise.
|
|
5
|
+
*
|
|
6
|
+
* Starting the `mkdir` at construction instead leaves a promise nobody awaits
|
|
7
|
+
* until a method runs: if the directory cannot be created, that rejection is
|
|
8
|
+
* unhandled, which terminates a Node process by default — for a store that
|
|
9
|
+
* may never be used at all. Creating it on first use puts the failure where
|
|
10
|
+
* someone is waiting for it. A failed attempt is forgotten, so a directory
|
|
11
|
+
* that becomes creatable later (a volume mounted after start-up) works on the
|
|
12
|
+
* next call rather than failing forever.
|
|
13
|
+
*/
|
|
14
|
+
export function lazyDirectories(...dirs) {
|
|
15
|
+
let pending;
|
|
16
|
+
return () => {
|
|
17
|
+
if (pending === undefined) {
|
|
18
|
+
const attempt = Promise.all(dirs.map((dir) => mkdir(dir, { recursive: true }))).then(() => undefined);
|
|
19
|
+
pending = attempt;
|
|
20
|
+
attempt.catch(() => {
|
|
21
|
+
if (pending === attempt)
|
|
22
|
+
pending = undefined;
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
return pending;
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=lazy-directories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lazy-directories.js","sourceRoot":"","sources":["../../src/fs/lazy-directories.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAExC;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,eAAe,CAAC,GAAG,IAAuB;IACxD,IAAI,OAAkC,CAAA;IACtC,OAAO,GAAG,EAAE;QACV,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAClF,GAAG,EAAE,CAAC,SAAS,CAChB,CAAA;YACD,OAAO,GAAG,OAAO,CAAA;YACjB,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE;gBACjB,IAAI,OAAO,KAAK,OAAO;oBAAE,OAAO,GAAG,SAAS,CAAA;YAC9C,CAAC,CAAC,CAAA;QACJ,CAAC;QACD,OAAO,OAAO,CAAA;IAChB,CAAC,CAAA;AACH,CAAC"}
|
|
@@ -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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"}
|