Merge branch 'codex/add-creator-studio-pack-scaffold-prompt' into copilot/sub-pr-1
This commit is contained in:
4
.github/workflows/ci.yml
vendored
4
.github/workflows/ci.yml
vendored
@@ -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
|
||||||
|
|||||||
14
.prettierrc
14
.prettierrc
@@ -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,
|
||||||
|
};
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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>;
|
||||||
|
|||||||
@@ -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);
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{
|
{
|
||||||
"ts": "1970-01-01T00:00:00.000Z",
|
"ts": "__BUILD_TIMESTAMP__",
|
||||||
"agent": "CreatorPack-Gen-0"
|
"agent": "CreatorPack-Gen-0"
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user