Merge branch 'codex/add-creator-studio-pack-scaffold-prompt' into copilot/sub-pr-1

This commit is contained in:
Alexa Amundson
2025-11-25 17:44:19 -06:00
committed by GitHub
7 changed files with 18 additions and 12 deletions

View File

@@ -17,11 +17,11 @@ jobs:
with: with:
node-version: 20 node-version: 20
cache: pnpm cache: pnpm
- run: pnpm install --frozen-lockfile=false - run: pnpm install --frozen-lockfile=true
- run: pnpm lint - run: pnpm lint
- name: Validate JSON - name: Validate JSON
run: jq empty $(find . -name "*.json") run: jq empty $(find . -name "*.json")
- name: Validate YAML - name: Validate YAML
run: | run: |
npm install -g yamllint pnpm add -g yamllint
yamllint prompts yamllint prompts

View File

@@ -1,6 +1,8 @@
{ // Note: The 90-character line limit mentioned in prompts/video-intro.yml applies only to subtitle text.
"singleQuote": true, // The printWidth setting below is for code formatting and does not affect subtitle text.
"semi": true, module.exports = {
"trailingComma": "all", singleQuote: true,
"printWidth": 100 semi: true,
} trailingComma: 'all',
printWidth: 100,
};

View File

@@ -20,7 +20,7 @@ remote APIs.
- `/prompts` — YAML presets with front-matter metadata for creative tasks. - `/prompts` — YAML presets with front-matter metadata for creative tasks.
- `/agents` — TypeScript and Python helpers for prompt generation, media remixing, and Canva - `/agents` — TypeScript and Python helpers for prompt generation, media remixing, and Canva
rendering (stubs). rendering (stubs).
- `/workflows` — Handlebars JSON templates for Canva and FFMPEG jobs. - `/workflows` — Handlebars JSON templates for Canva and FFmpeg jobs.
- `/lib` — Shared Handlebars renderer and zod schemas. - `/lib` — Shared Handlebars renderer and zod schemas.
- `/src` — CLI entry for `br-create` commands. - `/src` — CLI entry for `br-create` commands.
- `/scripts` — Build-time helpers such as beacon injection. - `/scripts` — Build-time helpers such as beacon injection.
@@ -30,6 +30,7 @@ remote APIs.
- `pnpm br-create list` — enumerate prompts and workflows. - `pnpm br-create list` — enumerate prompts and workflows.
- `pnpm br-create run <prompt>` — send a prompt preset to the configured agent. - `pnpm br-create run <prompt>` — send a prompt preset to the configured agent.
- `pnpm br-create render <workflow>` — fill a workflow JSON template. - `pnpm br-create render <workflow>` — fill a workflow JSON template.
- `pnpm br-create render-canva <workflow>` — fill a Canva workflow JSON template.
- `pnpm lint` — run ESLint + Prettier checks. - `pnpm lint` — run ESLint + Prettier checks.
## Roadmap ## Roadmap

View File

@@ -17,7 +17,7 @@ export const workflowTemplateSchema = z.object({
id: z.string(), id: z.string(),
description: z.string(), description: z.string(),
engine: z.enum(['canva', 'ffmpeg']), engine: z.enum(['canva', 'ffmpeg']),
template: z.record(z.any()), template: z.unknown(),
}); });
export type PromptPreset = z.infer<typeof promptPresetSchema>; export type PromptPreset = z.infer<typeof promptPresetSchema>;

View File

@@ -1,6 +1,9 @@
import Handlebars from 'handlebars'; import Handlebars from 'handlebars';
export const renderTemplate = <T extends object>(source: string, context: T): string => { export const renderTemplate = <T extends object>(source: string, context: T): string => {
// WARNING: 'noEscape: true' disables HTML escaping in Handlebars templates.
// This is intentional for non-HTML contexts (e.g., JSON), but can lead to injection vulnerabilities
// if used with untrusted user input. Ensure that 'context' is trusted and sanitized before use.
const template = Handlebars.compile(source, { noEscape: true }); const template = Handlebars.compile(source, { noEscape: true });
return template(context); return template(context);
}; };

View File

@@ -19,7 +19,7 @@
"@types/node": "^22.7.4", "@types/node": "^22.7.4",
"@typescript-eslint/eslint-plugin": "^8.8.1", "@typescript-eslint/eslint-plugin": "^8.8.1",
"@typescript-eslint/parser": "^8.8.1", "@typescript-eslint/parser": "^8.8.1",
"eslint": "^8.57.1", "eslint": "^9.0.0",
"eslint-config-prettier": "^9.1.0", "eslint-config-prettier": "^9.1.0",
"prettier": "^3.3.3", "prettier": "^3.3.3",
"ts-node": "^10.9.2", "ts-node": "^10.9.2",

View File

@@ -1,4 +1,4 @@
{ {
"ts": "1970-01-01T00:00:00.000Z", "ts": "__BUILD_TIMESTAMP__",
"agent": "CreatorPack-Gen-0" "agent": "CreatorPack-Gen-0"
} }