@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.
Files changed (77) hide show
  1. package/dist/agents/builtins.d.ts.map +1 -1
  2. package/dist/agents/builtins.js +34 -6
  3. package/dist/agents/builtins.js.map +1 -1
  4. package/dist/agents/store.d.ts.map +1 -1
  5. package/dist/agents/store.js +148 -95
  6. package/dist/agents/store.js.map +1 -1
  7. package/dist/identity/context.d.ts +31 -1
  8. package/dist/identity/context.d.ts.map +1 -1
  9. package/dist/identity/context.js +10 -0
  10. package/dist/identity/context.js.map +1 -1
  11. package/dist/index.d.ts +9 -4
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +4 -2
  14. package/dist/index.js.map +1 -1
  15. package/dist/progress/job-store.d.ts.map +1 -1
  16. package/dist/progress/job-store.js +7 -2
  17. package/dist/progress/job-store.js.map +1 -1
  18. package/dist/progress/types.d.ts +20 -1
  19. package/dist/progress/types.d.ts.map +1 -1
  20. package/dist/progress/types.js.map +1 -1
  21. package/dist/providers/image/openai.d.ts +8 -1
  22. package/dist/providers/image/openai.d.ts.map +1 -1
  23. package/dist/providers/image/openai.js +60 -6
  24. package/dist/providers/image/openai.js.map +1 -1
  25. package/dist/providers/resolve.d.ts +17 -0
  26. package/dist/providers/resolve.d.ts.map +1 -1
  27. package/dist/providers/resolve.js +39 -0
  28. package/dist/providers/resolve.js.map +1 -1
  29. package/dist/providers/store.d.ts +25 -0
  30. package/dist/providers/store.d.ts.map +1 -1
  31. package/dist/providers/store.js +28 -1
  32. package/dist/providers/store.js.map +1 -1
  33. package/dist/rag/reference-documents/store.d.ts +21 -0
  34. package/dist/rag/reference-documents/store.d.ts.map +1 -1
  35. package/dist/rag/reference-documents/store.js +14 -1
  36. package/dist/rag/reference-documents/store.js.map +1 -1
  37. package/dist/runtime/loop.d.ts.map +1 -1
  38. package/dist/runtime/loop.js +3 -3
  39. package/dist/runtime/loop.js.map +1 -1
  40. package/dist/site-plan/approval.d.ts +11 -2
  41. package/dist/site-plan/approval.d.ts.map +1 -1
  42. package/dist/site-plan/approval.js +25 -1
  43. package/dist/site-plan/approval.js.map +1 -1
  44. package/dist/site-plan/content-model.d.ts +2 -0
  45. package/dist/site-plan/content-model.d.ts.map +1 -1
  46. package/dist/site-plan/content-model.js +87 -22
  47. package/dist/site-plan/content-model.js.map +1 -1
  48. package/dist/site-plan/enforce.d.ts.map +1 -1
  49. package/dist/site-plan/enforce.js +26 -1
  50. package/dist/site-plan/enforce.js.map +1 -1
  51. package/dist/site-plan/skin-candidates.d.ts +13 -0
  52. package/dist/site-plan/skin-candidates.d.ts.map +1 -1
  53. package/dist/site-plan/skin-candidates.js +27 -3
  54. package/dist/site-plan/skin-candidates.js.map +1 -1
  55. package/dist/site-plan/types.d.ts +14 -1
  56. package/dist/site-plan/types.d.ts.map +1 -1
  57. package/dist/skin/generate.d.ts +14 -0
  58. package/dist/skin/generate.d.ts.map +1 -1
  59. package/dist/skin/generate.js +10 -1
  60. package/dist/skin/generate.js.map +1 -1
  61. package/dist/theme-creator/attachments.d.ts +37 -0
  62. package/dist/theme-creator/attachments.d.ts.map +1 -0
  63. package/dist/theme-creator/attachments.js +57 -0
  64. package/dist/theme-creator/attachments.js.map +1 -0
  65. package/dist/theme-creator/layout-classifier.d.ts +66 -0
  66. package/dist/theme-creator/layout-classifier.d.ts.map +1 -0
  67. package/dist/theme-creator/layout-classifier.js +151 -0
  68. package/dist/theme-creator/layout-classifier.js.map +1 -0
  69. package/dist/theme-creator/propose-theme.d.ts +2 -5
  70. package/dist/theme-creator/propose-theme.d.ts.map +1 -1
  71. package/dist/theme-creator/propose-theme.js +9 -58
  72. package/dist/theme-creator/propose-theme.js.map +1 -1
  73. package/dist/tools/core/media.d.ts +68 -1
  74. package/dist/tools/core/media.d.ts.map +1 -1
  75. package/dist/tools/core/media.js +57 -1
  76. package/dist/tools/core/media.js.map +1 -1
  77. package/package.json +5 -5
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout-classifier.js","sourceRoot":"","sources":["../../src/theme-creator/layout-classifier.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { type ProgressReporter } from '../progress/types.js';
2
2
  import type { ProviderClient } from '../providers/types.js';
3
+ import { type ThemeCreatorAttachment } from './attachments.js';
3
4
  /**
4
5
  * L26 task 5 — "Theme Creator": describe a theme in free text, optionally
5
6
  * attach files, get back one to three candidates to preview and activate.
@@ -31,11 +32,7 @@ import type { ProviderClient } from '../providers/types.js';
31
32
  * (`theme-router.ts`'s `requireAdmin`), so that text is the asker's own
32
33
  * words, not third-party content.
33
34
  */
34
- export interface ThemeCreatorAttachment {
35
- readonly filename: string;
36
- readonly mimeType: string;
37
- readonly data: Uint8Array;
38
- }
35
+ export type { ThemeCreatorAttachment };
39
36
  export interface ThemeCreatorTargetTheme {
40
37
  readonly name: string;
41
38
  readonly label: string;
@@ -1 +1 @@
1
- {"version":3,"file":"propose-theme.d.ts","sourceRoot":"","sources":["../../src/theme-creator/propose-theme.ts"],"names":[],"mappings":"AAGA,OAAO,EAAiB,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAC3E,OAAO,KAAK,EAAkC,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAI3F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;CAC1B;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAA;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,6EAA6E;IAC7E,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,8FAA8F;IAC9F,QAAQ,CAAC,eAAe,EAAE,SAAS,uBAAuB,EAAE,CAAA;IAC5D,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,sBAAsB,EAAE,CAAA;IACxD,yEAAyE;IACzE,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAA;IAC5F,kEAAkE;IAClE,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;IAC/B,iJAAiJ;IACjJ,QAAQ,CAAC,UAAU,CAAC,EAAE,gBAAgB,CAAA;CACvC;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAC7B;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACxC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,uBAAuB,CAAA;CAC/C;AAED,MAAM,MAAM,4BAA4B,GACpC;IACE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAA;IACjB,QAAQ,CAAC,UAAU,EAAE,SAAS,qBAAqB,EAAE,CAAA;IACrD,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;CACrC,GACD;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAiOnD,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,2BAA2B,GACjC,OAAO,CAAC,4BAA4B,CAAC,CA+DvC"}
1
+ {"version":3,"file":"propose-theme.d.ts","sourceRoot":"","sources":["../../src/theme-creator/propose-theme.ts"],"names":[],"mappings":"AAEA,OAAO,EAAiB,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAC3E,OAAO,KAAK,EAAkC,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAG3F,OAAO,EAAsB,KAAK,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AAElF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,YAAY,EAAE,sBAAsB,EAAE,CAAA;AAEtC,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAA;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,6EAA6E;IAC7E,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,8FAA8F;IAC9F,QAAQ,CAAC,eAAe,EAAE,SAAS,uBAAuB,EAAE,CAAA;IAC5D,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,sBAAsB,EAAE,CAAA;IACxD,yEAAyE;IACzE,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAA;IAC5F,kEAAkE;IAClE,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;IAC/B,iJAAiJ;IACjJ,QAAQ,CAAC,UAAU,CAAC,EAAE,gBAAgB,CAAA;CACvC;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAC7B;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACxC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,uBAAuB,CAAA;CAC/C;AAED,MAAM,MAAM,4BAA4B,GACpC;IACE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAA;IACjB,QAAQ,CAAC,UAAU,EAAE,SAAS,qBAAqB,EAAE,CAAA;IACrD,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;CACrC,GACD;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AA8JnD,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,2BAA2B,GACjC,OAAO,CAAC,4BAA4B,CAAC,CAqEvC"}
@@ -1,70 +1,15 @@
1
1
  import { z } from 'zod';
2
- import { extractDocumentText } from '../documents/extract-text.js';
3
2
  import { assembleContext } from '../identity/context.js';
4
3
  import { NOOP_PROGRESS } from '../progress/types.js';
5
4
  import { extractJsonObject } from '../site-plan/json.js';
6
5
  import { generateSkinCandidates } from '../site-plan/skin-candidates.js';
6
+ import { processAttachments } from './attachments.js';
7
7
  const ThemeChoiceSchema = z.object({
8
8
  themeName: z.string().min(1),
9
9
  rationale: z.string().min(1),
10
10
  tagline: z.string().min(1).max(140).optional(),
11
11
  footerNote: z.string().min(1).max(240).optional(),
12
12
  });
13
- function base64Of(bytes) {
14
- return Buffer.from(bytes).toString('base64');
15
- }
16
- /**
17
- * Splits attachments into what `assembleContext`'s `data` channel can carry
18
- * (document text — R8) and what a multimodal content block carries (images).
19
- *
20
- * An attached image is always forwarded — this deliberately does not ask any
21
- * static "does this provider support vision" declaration first. Which
22
- * vendors and models accept an inline image changes on their own schedule,
23
- * outside this codebase's control; hard-coding a per-vendor allow/deny list
24
- * here would silently go stale the day a vendor adds (or drops) support.
25
- * Instead, the request is simply sent with the image attached, and if the
26
- * vendor's own API rejects it, that failure surfaces as a normal job error —
27
- * shown to the operator, logged, and the run stops there. That is real
28
- * information about what actually happened, not a guess made ahead of time.
29
- */
30
- function processAttachments(attachments) {
31
- const documentData = [];
32
- const imageParts = [];
33
- const warnings = [];
34
- const contributedFilenames = [];
35
- for (const attachment of attachments) {
36
- let text;
37
- let documentWarnings = [];
38
- try {
39
- const extracted = extractDocumentText({
40
- filename: attachment.filename,
41
- bytes: Buffer.from(attachment.data),
42
- });
43
- text = extracted.text;
44
- documentWarnings = extracted.warnings;
45
- }
46
- catch {
47
- text = undefined;
48
- }
49
- if (text !== undefined) {
50
- documentData.push({ source: attachment.filename, content: text });
51
- contributedFilenames.push(attachment.filename);
52
- for (const warning of documentWarnings)
53
- warnings.push(`${attachment.filename}: ${warning}`);
54
- continue;
55
- }
56
- if (attachment.mimeType.startsWith('image/')) {
57
- imageParts.push({
58
- type: 'image',
59
- mediaType: attachment.mimeType,
60
- data: base64Of(attachment.data),
61
- });
62
- continue;
63
- }
64
- warnings.push(`${attachment.filename}: could not be read as a document or an image`);
65
- }
66
- return { documentData, imageParts, warnings, contributedFilenames };
67
- }
68
13
  function themeListText(themes) {
69
14
  return themes.map((theme) => `- ${theme.name} (${theme.label})`).join('\n');
70
15
  }
@@ -191,8 +136,8 @@ export async function proposeThemeCandidates(input) {
191
136
  const progress = input.onProgress ?? NOOP_PROGRESS;
192
137
  const { documentData, imageParts, warnings, contributedFilenames } = processAttachments(input.attachments ?? []);
193
138
  for (const warning of warnings)
194
- progress.report(warning);
195
- progress.report('Choosing a base theme…');
139
+ progress.report(warning, { kind: 'warning' });
140
+ progress.report('Choosing a base theme…', { kind: 'stage' });
196
141
  const themeChoice = await chooseTheme(input, documentData, imageParts, input.client.maxCorrectionAttempts);
197
142
  if (!themeChoice.ok)
198
143
  return { ok: false, reason: themeChoice.reason };
@@ -209,6 +154,12 @@ export async function proposeThemeCandidates(input) {
209
154
  model: input.model,
210
155
  description: `${baseDescription}${attachmentNote}`,
211
156
  blueprintLabel: input.siteName,
157
+ // The baseline's actual token VALUES, not merely a sentence saying a
158
+ // baseline exists. Until this was passed, "adjust the current theme"
159
+ // only reworded the brief and then re-derived every value from scratch,
160
+ // so each turn of a conversation produced a different theme rather than
161
+ // the same one, adjusted.
162
+ ...(input.baseline === undefined ? {} : { baseTokens: input.baseline.tokens }),
212
163
  ...(input.maxCandidates === undefined ? {} : { count: input.maxCandidates }),
213
164
  ...(imageParts.length === 0 ? {} : { images: imageParts }),
214
165
  onProgress: progress,
@@ -1 +1 @@
1
- {"version":3,"file":"propose-theme.js","sourceRoot":"","sources":["../../src/theme-creator/propose-theme.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"propose-theme.js","sourceRoot":"","sources":["../../src/theme-creator/propose-theme.ts"],"names":[],"mappings":"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"}
@@ -15,8 +15,16 @@ import type { ToolDefinition } from '../types.js';
15
15
  * wire output is byte-for-byte what it was before this fiche — an agent
16
16
  * asking to move a file between folders needs a new, separate tool, not
17
17
  * this one grown quietly.
18
+ *
19
+ * `provenance`/`provenanceDetail` are stripped for exactly the same reason,
20
+ * and it was nearly missed: they were added to `MediaAsset` (so that a
21
+ * generated image is never mistaken for a photograph someone took), which
22
+ * would have widened this already-shipped tool's output as a side effect. An
23
+ * agent that needs to know what made a file needs a tool that says so in its
24
+ * own signature — `media.store_generated_image` below reports it for what it
25
+ * writes — not `media.read` grown quietly.
18
26
  */
19
- type MediaToolAsset = Omit<MediaAsset, 'folderId'>;
27
+ type MediaToolAsset = Omit<MediaAsset, 'folderId' | 'provenance' | 'provenanceDetail'>;
20
28
  declare const ReadInputSchema: z.ZodObject<{
21
29
  id: z.ZodString;
22
30
  }, z.core.$strip>;
@@ -50,5 +58,64 @@ type WriteInput = z.infer<typeof WriteInputSchema>;
50
58
  * use case this tool exists for (e.g. an accessibility-review agent).
51
59
  */
52
60
  export declare function createMediaWriteTool(store: MediaStore): ToolDefinition<WriteInput, MediaToolAsset>;
61
+ /**
62
+ * `media.store_generated_image` — the step that turns a generated candidate
63
+ * into a real file in the library.
64
+ *
65
+ * `assist.generate_image` deliberately stores nothing: it returns data URLs
66
+ * and says `applied: false`, because generating is cheap to undo and storing
67
+ * is not. Nothing bridged the two, so an image a model produced could be
68
+ * looked at and never kept. This is that bridge, and it is deliberately the
69
+ * *only* one: every file it writes is recorded as `generated`, with the
70
+ * agent and model that made it, because the alternative — a picture nobody
71
+ * can tell apart from a photograph the owner took — is the claim contract A
72
+ * made provenance non-optional to prevent.
73
+ *
74
+ * `sideEffects: true` with `reversible: false` puts it through
75
+ * `withAutonomy`'s forced-approval path whatever the configured level
76
+ * (`autonomy/with-autonomy.ts`): a human confirms every file that lands in
77
+ * the library. That is the design, not a limitation to route around.
78
+ *
79
+ * `alt` is required rather than optional for the same reason the media store
80
+ * refuses an empty one on a non-decorative asset: a model that just described
81
+ * an image well enough to generate it can describe it well enough to be read
82
+ * aloud.
83
+ */
84
+ export interface MediaStoreImageToolOptions {
85
+ /**
86
+ * Writes the bytes through the host's storage driver and creates the media
87
+ * row. Injected rather than taken as a `MediaStore`, because storing a file
88
+ * needs a `StorageDriver` too and this package has no business choosing
89
+ * where bytes live.
90
+ */
91
+ readonly save: (input: {
92
+ readonly dataUrl: string;
93
+ readonly filename: string;
94
+ readonly alt: string;
95
+ readonly provenanceDetail: Readonly<Record<string, unknown>>;
96
+ }) => Promise<{
97
+ readonly id: string;
98
+ readonly filename: string;
99
+ readonly byteLength: number;
100
+ }>;
101
+ /** Named in the provenance of everything this writes. */
102
+ readonly agentName: string;
103
+ readonly model?: string;
104
+ readonly now?: () => Date;
105
+ }
106
+ declare const StoreImageInputSchema: z.ZodObject<{
107
+ dataUrl: z.ZodString;
108
+ alt: z.ZodString;
109
+ filename: z.ZodOptional<z.ZodString>;
110
+ }, z.core.$strip>;
111
+ export type StoreImageInput = z.infer<typeof StoreImageInputSchema>;
112
+ declare const StoreImageOutputSchema: z.ZodObject<{
113
+ id: z.ZodString;
114
+ filename: z.ZodString;
115
+ byteLength: z.ZodNumber;
116
+ provenance: z.ZodLiteral<"generated">;
117
+ }, z.core.$strip>;
118
+ export type StoreImageOutput = z.infer<typeof StoreImageOutputSchema>;
119
+ export declare function createMediaStoreImageTool(options: MediaStoreImageToolOptions): ToolDefinition<StoreImageInput, StoreImageOutput>;
53
120
  export {};
54
121
  //# sourceMappingURL=media.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../../src/tools/core/media.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAoB,MAAM,eAAe,CAAA;AAE7E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAIjD;;;;;;;;;;;;;;GAcG;AACH,KAAK,cAAc,GAAG,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;AA0BlD,QAAA,MAAM,eAAe;;iBAA+B,CAAA;AACpD,KAAK,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAA;AAEhD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,UAAU,GAAG,cAAc,CAAC,SAAS,EAAE,cAAc,CAAC,CAuBhG;AAED,QAAA,MAAM,gBAAgB;;;;;;;;;iBAMpB,CAAA;AACF,KAAK,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAA;AAElD;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,UAAU,GAChB,cAAc,CAAC,UAAU,EAAE,cAAc,CAAC,CAuB5C"}
1
+ {"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../../src/tools/core/media.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAoB,MAAM,eAAe,CAAA;AAE7E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAIjD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,KAAK,cAAc,GAAG,IAAI,CAAC,UAAU,EAAE,UAAU,GAAG,YAAY,GAAG,kBAAkB,CAAC,CAAA;AA+BtF,QAAA,MAAM,eAAe;;iBAA+B,CAAA;AACpD,KAAK,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAA;AAEhD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,UAAU,GAAG,cAAc,CAAC,SAAS,EAAE,cAAc,CAAC,CAuBhG;AAED,QAAA,MAAM,gBAAgB;;;;;;;;;iBAMpB,CAAA;AACF,KAAK,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAA;AAElD;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,UAAU,GAChB,cAAc,CAAC,UAAU,EAAE,cAAc,CAAC,CAuB5C;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,WAAW,0BAA0B;IACzC;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE;QACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;QACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;QACzB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;QACpB,QAAQ,CAAC,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;KAC7D,KAAK,OAAO,CAAC;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC9F,yDAAyD;IACzD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,IAAI,CAAA;CAC1B;AAED,QAAA,MAAM,qBAAqB;;;;iBAOzB,CAAA;AACF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAEnE,QAAA,MAAM,sBAAsB;;;;;iBAM1B,CAAA;AACF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAErE,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,0BAA0B,GAClC,cAAc,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAwCnD"}
@@ -3,7 +3,7 @@ import { z } from 'zod';
3
3
  import { defineTool } from '../define.js';
4
4
  const FocalPointSchema = z.object({ x: z.number(), y: z.number() });
5
5
  function toToolAsset(asset) {
6
- const { folderId: _folderId, ...rest } = asset;
6
+ const { folderId: _folderId, provenance: _provenance, provenanceDetail: _provenanceDetail, ...rest } = asset;
7
7
  return rest;
8
8
  }
9
9
  const MediaAssetSchema = z.object({
@@ -96,4 +96,60 @@ export function createMediaWriteTool(store) {
96
96
  },
97
97
  });
98
98
  }
99
+ const StoreImageInputSchema = z.object({
100
+ /** Exactly the `dataUrl` `assist.generate_image` returned — never a URL to fetch. */
101
+ dataUrl: z.string().min(1),
102
+ /** What a screen reader should say. Required: an image nobody can describe is an image nobody should publish. */
103
+ alt: z.string().min(1).max(1000),
104
+ /** Without an extension — the store derives one from the bytes' real type. */
105
+ filename: z.string().min(1).max(200).optional(),
106
+ });
107
+ const StoreImageOutputSchema = z.object({
108
+ id: z.string(),
109
+ filename: z.string(),
110
+ byteLength: z.number().int().nonnegative(),
111
+ /** Always `generated` — this tool has no other honest answer, and says so in its own signature rather than leaving a caller to assume. */
112
+ provenance: z.literal('generated'),
113
+ });
114
+ export function createMediaStoreImageTool(options) {
115
+ const now = options.now ?? (() => new Date());
116
+ return defineTool({
117
+ name: 'media.store_generated_image',
118
+ version: '1.0.0',
119
+ description: `Keeps one generated image in the site's media library, so a page or a theme can point at it. Pass the dataUrl exactly as assist.generate_image returned it, plus the alt text a screen reader should read.
120
+
121
+ The file is recorded as generated, naming the agent and model that made it — a visitor's country may require that, and a reader deserves it either way. Generating costs money and storing costs a decision, which is why they are two steps: generate several, look at them, keep the one that is right.`,
122
+ input: StoreImageInputSchema,
123
+ output: StoreImageOutputSchema,
124
+ permissions: ['media.write'],
125
+ sideEffects: true,
126
+ reversible: false,
127
+ cost: 'low',
128
+ async execute(input) {
129
+ if (!input.dataUrl.startsWith('data:image/')) {
130
+ throw new CogentaError({
131
+ code: 'MEDIA_INVALID',
132
+ message: 'Only an inline image data URL can be stored by this tool.',
133
+ hint: 'Pass the `dataUrl` from assist.generate_image verbatim — this tool never fetches a remote URL.',
134
+ });
135
+ }
136
+ const saved = await options.save({
137
+ dataUrl: input.dataUrl,
138
+ filename: input.filename ?? 'generated-image',
139
+ alt: input.alt,
140
+ provenanceDetail: {
141
+ agent: options.agentName,
142
+ ...(options.model === undefined ? {} : { model: options.model }),
143
+ at: now().toISOString(),
144
+ },
145
+ });
146
+ return {
147
+ id: saved.id,
148
+ filename: saved.filename,
149
+ byteLength: saved.byteLength,
150
+ provenance: 'generated',
151
+ };
152
+ },
153
+ });
154
+ }
99
155
  //# sourceMappingURL=media.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"media.js","sourceRoot":"","sources":["../../../src/tools/core/media.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"media.js","sourceRoot":"","sources":["../../../src/tools/core/media.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cogenta/agents",
3
- "version": "0.5.1",
3
+ "version": "0.7.0",
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",
@@ -29,10 +29,10 @@
29
29
  "dependencies": {
30
30
  "@langchain/langgraph": "^1.4.12",
31
31
  "zod": "^4.4.3",
32
- "@cogenta/core": "0.7.0",
33
- "@cogenta/render": "0.2.2",
34
- "@cogenta/schema": "0.5.0",
35
- "@cogenta/blocks": "1.0.2"
32
+ "@cogenta/blocks": "1.0.4",
33
+ "@cogenta/render": "0.2.4",
34
+ "@cogenta/core": "0.9.0",
35
+ "@cogenta/schema": "0.5.2"
36
36
  },
37
37
  "devDependencies": {
38
38
  "typescript": "^7.0.2",