@actuate-media/plugin-ai 0.0.11 → 0.2.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/LICENSE +21 -21
- package/dist/__tests__/content-generator.test.d.ts +2 -0
- package/dist/__tests__/content-generator.test.d.ts.map +1 -0
- package/dist/__tests__/content-generator.test.js +200 -0
- package/dist/__tests__/content-generator.test.js.map +1 -0
- package/dist/__tests__/index.test.js.map +1 -1
- package/dist/admin/AIScorePanel.d.ts +1 -1
- package/dist/admin/AIScorePanel.d.ts.map +1 -1
- package/dist/admin/AIScorePanel.js +34 -17
- package/dist/admin/AIScorePanel.js.map +1 -1
- package/dist/admin/BrandVoiceSettings.d.ts +2 -2
- package/dist/admin/BrandVoiceSettings.d.ts.map +1 -1
- package/dist/admin/BrandVoiceSettings.js +123 -34
- package/dist/admin/BrandVoiceSettings.js.map +1 -1
- package/dist/admin/ContentScoreDashboard.d.ts +1 -1
- package/dist/admin/ContentScoreDashboard.d.ts.map +1 -1
- package/dist/admin/ContentScoreDashboard.js +50 -16
- package/dist/admin/ContentScoreDashboard.js.map +1 -1
- package/dist/admin/WritingAssistantToolbar.d.ts.map +1 -1
- package/dist/admin/WritingAssistantToolbar.js +21 -21
- package/dist/admin/WritingAssistantToolbar.js.map +1 -1
- package/dist/brand/consistency-checker.d.ts +3 -3
- package/dist/brand/consistency-checker.d.ts.map +1 -1
- package/dist/brand/consistency-checker.js +7 -7
- package/dist/brand/consistency-checker.js.map +1 -1
- package/dist/brand/profile-builder.d.ts +2 -2
- package/dist/brand/profile-builder.d.ts.map +1 -1
- package/dist/brand/profile-builder.js +20 -19
- package/dist/brand/profile-builder.js.map +1 -1
- package/dist/brand/voice-profile.d.ts +4 -4
- package/dist/brand/voice-profile.d.ts.map +1 -1
- package/dist/collections.d.ts +1 -1
- package/dist/collections.d.ts.map +1 -1
- package/dist/collections.js.map +1 -1
- package/dist/fields.d.ts +1 -1
- package/dist/fields.d.ts.map +1 -1
- package/dist/fields.js.map +1 -1
- package/dist/hooks.d.ts.map +1 -1
- package/dist/hooks.js +16 -14
- package/dist/hooks.js.map +1 -1
- package/dist/index.d.ts +33 -29
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +36 -34
- package/dist/index.js.map +1 -1
- package/dist/links/smart-links.d.ts.map +1 -1
- package/dist/links/smart-links.js +2 -2
- package/dist/links/smart-links.js.map +1 -1
- package/dist/media/alt-text-generator.d.ts +2 -2
- package/dist/media/alt-text-generator.d.ts.map +1 -1
- package/dist/media/alt-text-generator.js +14 -9
- package/dist/media/alt-text-generator.js.map +1 -1
- package/dist/media/auto-tagger.d.ts +1 -1
- package/dist/media/auto-tagger.d.ts.map +1 -1
- package/dist/media/auto-tagger.js +8 -5
- package/dist/media/auto-tagger.js.map +1 -1
- package/dist/page-builder/generate.d.ts +23 -0
- package/dist/page-builder/generate.d.ts.map +1 -0
- package/dist/page-builder/generate.js +422 -0
- package/dist/page-builder/generate.js.map +1 -0
- package/dist/page-builder/index.d.ts +3 -0
- package/dist/page-builder/index.d.ts.map +1 -0
- package/dist/page-builder/index.js +2 -0
- package/dist/page-builder/index.js.map +1 -0
- package/dist/providers/anthropic.d.ts +1 -1
- package/dist/providers/anthropic.d.ts.map +1 -1
- package/dist/providers/anthropic.js +32 -32
- package/dist/providers/anthropic.js.map +1 -1
- package/dist/providers/index.d.ts +1 -1
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +6 -6
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/openai.d.ts +1 -1
- package/dist/providers/openai.d.ts.map +1 -1
- package/dist/providers/openai.js +24 -24
- package/dist/providers/openai.js.map +1 -1
- package/dist/scoring/accessibility.d.ts +1 -1
- package/dist/scoring/accessibility.d.ts.map +1 -1
- package/dist/scoring/accessibility.js +22 -22
- package/dist/scoring/accessibility.js.map +1 -1
- package/dist/scoring/brand-alignment.d.ts +1 -1
- package/dist/scoring/brand-alignment.d.ts.map +1 -1
- package/dist/scoring/brand-alignment.js +14 -12
- package/dist/scoring/brand-alignment.js.map +1 -1
- package/dist/scoring/composite.d.ts +1 -1
- package/dist/scoring/composite.d.ts.map +1 -1
- package/dist/scoring/composite.js +5 -5
- package/dist/scoring/composite.js.map +1 -1
- package/dist/scoring/freshness.d.ts +1 -1
- package/dist/scoring/freshness.d.ts.map +1 -1
- package/dist/scoring/freshness.js +5 -7
- package/dist/scoring/freshness.js.map +1 -1
- package/dist/scoring/readability.d.ts +1 -1
- package/dist/scoring/readability.d.ts.map +1 -1
- package/dist/scoring/readability.js +8 -8
- package/dist/scoring/readability.js.map +1 -1
- package/dist/scoring/seo-score.d.ts.map +1 -1
- package/dist/scoring/seo-score.js +82 -16
- package/dist/scoring/seo-score.js.map +1 -1
- package/dist/search/clustering.d.ts +1 -1
- package/dist/search/clustering.d.ts.map +1 -1
- package/dist/search/clustering.js +7 -9
- package/dist/search/clustering.js.map +1 -1
- package/dist/search/embeddings.d.ts +1 -1
- package/dist/search/embeddings.d.ts.map +1 -1
- package/dist/search/embeddings.js +3 -3
- package/dist/search/embeddings.js.map +1 -1
- package/dist/search/semantic-search.d.ts +1 -1
- package/dist/search/semantic-search.d.ts.map +1 -1
- package/dist/search/semantic-search.js +5 -5
- package/dist/search/semantic-search.js.map +1 -1
- package/dist/translation/translator.d.ts +2 -2
- package/dist/translation/translator.d.ts.map +1 -1
- package/dist/translation/translator.js +8 -8
- package/dist/translation/translator.js.map +1 -1
- package/dist/writing/assistant.d.ts +3 -3
- package/dist/writing/assistant.d.ts.map +1 -1
- package/dist/writing/assistant.js +19 -16
- package/dist/writing/assistant.js.map +1 -1
- package/dist/writing/content-generator.d.ts +107 -0
- package/dist/writing/content-generator.d.ts.map +1 -0
- package/dist/writing/content-generator.js +273 -0
- package/dist/writing/content-generator.js.map +1 -0
- package/dist/writing/inline-suggestions.d.ts +2 -2
- package/dist/writing/inline-suggestions.d.ts.map +1 -1
- package/dist/writing/inline-suggestions.js +8 -5
- package/dist/writing/inline-suggestions.js.map +1 -1
- package/dist/writing/meta-generator.d.ts +2 -2
- package/dist/writing/meta-generator.d.ts.map +1 -1
- package/dist/writing/meta-generator.js +21 -9
- package/dist/writing/meta-generator.js.map +1 -1
- package/package.json +3 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { requireAIProvider } from
|
|
1
|
+
import { requireAIProvider } from '../providers/index.js';
|
|
2
2
|
/** Returns inline writing suggestions for the given text at the cursor position. */
|
|
3
3
|
export async function getSuggestions(text, cursorPosition, context) {
|
|
4
4
|
const ai = context?.provider ?? requireAIProvider();
|
|
@@ -15,18 +15,21 @@ Return a JSON array of objects with:
|
|
|
15
15
|
- "type": one of "completion", "improvement", or "alternative"
|
|
16
16
|
- "confidence": a number between 0 and 1`;
|
|
17
17
|
const result = await ai.generateText(prompt, {
|
|
18
|
-
systemPrompt:
|
|
18
|
+
systemPrompt: 'You are a writing assistant providing inline suggestions. Return valid JSON only, no markdown.',
|
|
19
19
|
maxTokens: 512,
|
|
20
20
|
temperature: 0.6,
|
|
21
21
|
});
|
|
22
22
|
try {
|
|
23
|
-
const cleaned = result.text
|
|
23
|
+
const cleaned = result.text
|
|
24
|
+
.replace(/```json?\n?/g, '')
|
|
25
|
+
.replace(/```/g, '')
|
|
26
|
+
.trim();
|
|
24
27
|
const parsed = JSON.parse(cleaned);
|
|
25
28
|
return parsed.map((s) => ({
|
|
26
29
|
text: s.text,
|
|
27
|
-
type: ([
|
|
30
|
+
type: (['completion', 'improvement', 'alternative'].includes(s.type)
|
|
28
31
|
? s.type
|
|
29
|
-
:
|
|
32
|
+
: 'completion'),
|
|
30
33
|
confidence: Math.max(0, Math.min(1, s.confidence ?? 0.5)),
|
|
31
34
|
range: { start: cursorPosition, end: cursorPosition },
|
|
32
35
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inline-suggestions.js","sourceRoot":"","sources":["../../src/writing/inline-suggestions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,
|
|
1
|
+
{"version":3,"file":"inline-suggestions.js","sourceRoot":"","sources":["../../src/writing/inline-suggestions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAezD,oFAAoF;AACpF,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,IAAY,EACZ,cAAsB,EACtB,OAA2B;IAE3B,MAAM,EAAE,GAAG,OAAO,EAAE,QAAQ,IAAI,iBAAiB,EAAE,CAAA;IAEnD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,cAAc,GAAG,GAAG,CAAC,EAAE,cAAc,CAAC,CAAA;IAC5E,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,cAAc,GAAG,GAAG,CAAC,CAAA;IAE9D,MAAM,MAAM,GAAG;;uBAEM,MAAM;;sBAEP,KAAK;;;;;yCAKc,CAAA;IAEvC,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE;QAC3C,YAAY,EACV,gGAAgG;QAClG,SAAS,EAAE,GAAG;QACd,WAAW,EAAE,GAAG;KACjB,CAAC,CAAA;IAEF,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI;aACxB,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC;aAC3B,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;aACnB,IAAI,EAAE,CAAA;QACT,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAI/B,CAAA;QAEF,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACxB,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,IAAI,EAAE,CAAC,CAAC,YAAY,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;gBAClE,CAAC,CAAC,CAAC,CAAC,IAAI;gBACR,CAAC,CAAC,YAAY,CAA6B;YAC7C,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,IAAI,GAAG,CAAC,CAAC;YACzD,KAAK,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,EAAE,cAAc,EAAE;SACtD,CAAC,CAAC,CAAA;IACL,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAA;IACX,CAAC;AACH,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type { AIProvider } from
|
|
1
|
+
import type { AIProvider } from '../providers/index.js';
|
|
2
2
|
export interface TitleOptions {
|
|
3
3
|
count?: number;
|
|
4
|
-
style?:
|
|
4
|
+
style?: 'informative' | 'engaging' | 'seo-optimized';
|
|
5
5
|
provider?: AIProvider;
|
|
6
6
|
}
|
|
7
7
|
/** Generates an SEO-friendly meta description from content. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"meta-generator.d.ts","sourceRoot":"","sources":["../../src/writing/meta-generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,
|
|
1
|
+
{"version":3,"file":"meta-generator.d.ts","sourceRoot":"","sources":["../../src/writing/meta-generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAGvD,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,aAAa,GAAG,UAAU,GAAG,eAAe,CAAA;IACpD,QAAQ,CAAC,EAAE,UAAU,CAAA;CACtB;AAED,+DAA+D;AAC/D,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,MAAM,EACf,SAAS,GAAE,MAAY,EACvB,QAAQ,CAAC,EAAE,UAAU,GACpB,OAAO,CAAC,MAAM,CAAC,CAiBjB;AAED,gDAAgD;AAChD,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,EACf,SAAS,GAAE,MAAY,EACvB,QAAQ,CAAC,EAAE,UAAU,GACpB,OAAO,CAAC,MAAM,CAAC,CAgBjB;AAED,+DAA+D;AAC/D,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CA4B9F"}
|
|
@@ -1,41 +1,53 @@
|
|
|
1
|
-
import { requireAIProvider } from
|
|
1
|
+
import { requireAIProvider } from '../providers/index.js';
|
|
2
2
|
/** Generates an SEO-friendly meta description from content. */
|
|
3
3
|
export async function generateMetaDescription(content, maxLength = 155, provider) {
|
|
4
4
|
const ai = provider ?? requireAIProvider();
|
|
5
5
|
const result = await ai.generateText(`Write a compelling meta description (maximum ${maxLength} characters) for the following content. The description should be informative, include relevant keywords naturally, and encourage clicks from search results.\n\nContent:\n${content.slice(0, 3000)}`, {
|
|
6
|
-
systemPrompt:
|
|
6
|
+
systemPrompt: 'You are an SEO specialist. Write only the meta description text, no quotes or labels. Keep it under the specified character limit.',
|
|
7
7
|
maxTokens: 256,
|
|
8
8
|
temperature: 0.5,
|
|
9
9
|
});
|
|
10
|
-
return result.text
|
|
10
|
+
return result.text
|
|
11
|
+
.replace(/^["']|["']$/g, '')
|
|
12
|
+
.trim()
|
|
13
|
+
.slice(0, maxLength);
|
|
11
14
|
}
|
|
12
15
|
/** Generates a concise excerpt from content. */
|
|
13
16
|
export async function generateExcerpt(content, maxLength = 300, provider) {
|
|
14
17
|
const ai = provider ?? requireAIProvider();
|
|
15
18
|
const result = await ai.generateText(`Write a concise excerpt (maximum ${maxLength} characters) that summarizes the following content. It should capture the essence of the piece and entice readers.\n\nContent:\n${content.slice(0, 3000)}`, {
|
|
16
|
-
systemPrompt:
|
|
19
|
+
systemPrompt: 'You are an editor. Write only the excerpt text, no quotes or labels.',
|
|
17
20
|
maxTokens: 256,
|
|
18
21
|
temperature: 0.4,
|
|
19
22
|
});
|
|
20
|
-
return result.text
|
|
23
|
+
return result.text
|
|
24
|
+
.replace(/^["']|["']$/g, '')
|
|
25
|
+
.trim()
|
|
26
|
+
.slice(0, maxLength);
|
|
21
27
|
}
|
|
22
28
|
/** Generates title options from content in the given style. */
|
|
23
29
|
export async function generateTitle(content, options) {
|
|
24
30
|
const ai = options?.provider ?? requireAIProvider();
|
|
25
31
|
const count = options?.count ?? 5;
|
|
26
|
-
const style = options?.style ??
|
|
32
|
+
const style = options?.style ?? 'informative';
|
|
27
33
|
const result = await ai.generateText(`Generate ${count} ${style} title options for the following content. Return them as a JSON array of strings.\n\nContent:\n${content.slice(0, 3000)}`, {
|
|
28
|
-
systemPrompt:
|
|
34
|
+
systemPrompt: 'You are a headline writer. Return valid JSON only: an array of title strings. No markdown formatting.',
|
|
29
35
|
maxTokens: 512,
|
|
30
36
|
temperature: 0.7,
|
|
31
37
|
});
|
|
32
38
|
try {
|
|
33
|
-
const cleaned = result.text
|
|
39
|
+
const cleaned = result.text
|
|
40
|
+
.replace(/```json?\n?/g, '')
|
|
41
|
+
.replace(/```/g, '')
|
|
42
|
+
.trim();
|
|
34
43
|
const titles = JSON.parse(cleaned);
|
|
35
44
|
if (Array.isArray(titles))
|
|
36
45
|
return titles.map(String);
|
|
37
46
|
}
|
|
38
47
|
catch { }
|
|
39
|
-
return result.text
|
|
48
|
+
return result.text
|
|
49
|
+
.split('\n')
|
|
50
|
+
.filter((line) => line.trim().length > 0)
|
|
51
|
+
.slice(0, count);
|
|
40
52
|
}
|
|
41
53
|
//# sourceMappingURL=meta-generator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"meta-generator.js","sourceRoot":"","sources":["../../src/writing/meta-generator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,
|
|
1
|
+
{"version":3,"file":"meta-generator.js","sourceRoot":"","sources":["../../src/writing/meta-generator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAQzD,+DAA+D;AAC/D,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,OAAe,EACf,YAAoB,GAAG,EACvB,QAAqB;IAErB,MAAM,EAAE,GAAG,QAAQ,IAAI,iBAAiB,EAAE,CAAA;IAE1C,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,YAAY,CAClC,gDAAgD,SAAS,8KAA8K,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAC/P;QACE,YAAY,EACV,oIAAoI;QACtI,SAAS,EAAE,GAAG;QACd,WAAW,EAAE,GAAG;KACjB,CACF,CAAA;IAED,OAAO,MAAM,CAAC,IAAI;SACf,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC;SAC3B,IAAI,EAAE;SACN,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA;AACxB,CAAC;AAED,gDAAgD;AAChD,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,OAAe,EACf,YAAoB,GAAG,EACvB,QAAqB;IAErB,MAAM,EAAE,GAAG,QAAQ,IAAI,iBAAiB,EAAE,CAAA;IAE1C,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,YAAY,CAClC,oCAAoC,SAAS,mIAAmI,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EACxM;QACE,YAAY,EAAE,sEAAsE;QACpF,SAAS,EAAE,GAAG;QACd,WAAW,EAAE,GAAG;KACjB,CACF,CAAA;IAED,OAAO,MAAM,CAAC,IAAI;SACf,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC;SAC3B,IAAI,EAAE;SACN,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA;AACxB,CAAC;AAED,+DAA+D;AAC/D,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAAe,EAAE,OAAsB;IACzE,MAAM,EAAE,GAAG,OAAO,EAAE,QAAQ,IAAI,iBAAiB,EAAE,CAAA;IACnD,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,CAAC,CAAA;IACjC,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,aAAa,CAAA;IAE7C,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,YAAY,CAClC,YAAY,KAAK,IAAI,KAAK,kGAAkG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EACpJ;QACE,YAAY,EACV,uGAAuG;QACzG,SAAS,EAAE,GAAG;QACd,WAAW,EAAE,GAAG;KACjB,CACF,CAAA;IAED,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI;aACxB,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC;aAC3B,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;aACnB,IAAI,EAAE,CAAA;QACT,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAClC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,OAAO,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IACtD,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IAEV,OAAO,MAAM,CAAC,IAAI;SACf,KAAK,CAAC,IAAI,CAAC;SACX,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;SACxC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;AACpB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@actuate-media/plugin-ai",
|
|
3
|
-
"version": "0.0
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "https://github.com/actuatecms/actuatecms.git",
|
|
@@ -25,7 +25,8 @@
|
|
|
25
25
|
"devDependencies": {
|
|
26
26
|
"@types/react": "^19.0.0",
|
|
27
27
|
"typescript": "^5.7.0",
|
|
28
|
-
"vitest": "^3.0.0"
|
|
28
|
+
"vitest": "^3.0.0",
|
|
29
|
+
"@actuate-media/cms-core": "0.17.0"
|
|
29
30
|
},
|
|
30
31
|
"peerDependencies": {
|
|
31
32
|
"@actuate-media/cms-core": ">=0.1.0",
|