{"_id":"@arphs/agent-pptx","_rev":"3-5819dbe29d84db8b8ef027489e693992","name":"@arphs/agent-pptx","dist-tags":{"latest":"1.5.2"},"versions":{"1.0.0":{"name":"@arphs/agent-pptx","version":"1.0.0","keywords":["pptx","powerpoint","presentation","slides","agent","ai","claude","codex","skill","json-ir","pptxgenjs"],"author":{"name":"arphs"},"license":"MIT","_id":"@arphs/agent-pptx@1.0.0","maintainers":[{"name":"arphs","email":"1010677780@qq.com"}],"bin":{"agent-pptx":"dist/cli.js"},"dist":{"shasum":"585e697dd5e03af4d12fe1b3e19a114c9ca2f6e9","tarball":"https://registry.npmjs.org/@arphs/agent-pptx/-/agent-pptx-1.0.0.tgz","fileCount":35,"integrity":"sha512-PAuaJ4GpfPksDF0EkoihWFWwaON7sYC2p+rf8rQvNR4f6NZ+Di5CucTs2K/x0K3IylF5i3YsRk8+M04MYW97lQ==","signatures":[{"sig":"MEUCIQDi35djRT55jVt6yVak3Gq7m88Cc3jrlvx/y4UcrJoG8gIgVBZ/dRXglJ6yKux6g30uBim32KScATodTmGPmh2cX48=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":153867},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./schema":"./schemas/ir-1.0.schema.json"},"gitHead":"f859a5cded4b1e55dc1acb4c59f882d16b832f91","scripts":{"test":"vitest run","build":"tsc","validate":"tsx src/cli.ts validate","build:pptx":"tsx src/cli.ts build","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"arphs","email":"1010677780@qq.com"},"_npmVersion":"11.6.2","description":"Provider-neutral JSON IR and CLI for generating editable PowerPoint presentations","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ajv":"^8.20.0","jszip":"^3.10.1","pptxgenjs":"^4.0.1","ajv-formats":"^3.0.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.12","vitest":"^4.1.10","typescript":"^7.0.2","@types/node":"^26.2.0"},"_npmOperationalInternal":{"tmp":"tmp/agent-pptx_1.0.0_1786984690891_0.07607119957690611","host":"s3://npm-registry-packages-npm-production"}},"1.4.3":{"name":"@arphs/agent-pptx","version":"1.4.3","keywords":["pptx","powerpoint","presentation","slides","agent","ai","claude","codex","skill","json-ir","pptxgenjs"],"author":{"name":"arphs"},"license":"MIT","_id":"@arphs/agent-pptx@1.4.3","maintainers":[{"name":"arphs","email":"1010677780@qq.com"}],"bin":{"agent-pptx":"dist/cli.js"},"dist":{"shasum":"a38cb00825cef79efe69fa11c3141f41f87be64f","tarball":"https://registry.npmjs.org/@arphs/agent-pptx/-/agent-pptx-1.4.3.tgz","fileCount":51,"integrity":"sha512-Au0HI6aWEpA8z/Nj3aR4iCTNJo2cxHMvPpEhevAV2SKozpHoOC7hIJpIFkTqxEaBhNIIB2EpBVnu7/wOkdUFZQ==","signatures":[{"sig":"MEUCIQD4rGv9GJw8U8JjjAGu2LkXQGnC1XGALrM7QZGtjLp2mwIgZMK8W64VgPkc3G+7pFyr/C2y+Xd8SGVHhiuDEWbkhYE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":288198},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./schema":"./schemas/ir-1.0.schema.json"},"gitHead":"b5d97d07be612a3533a9c0f4c3d2b71ec64b807e","scripts":{"test":"vitest run","build":"tsc","validate":"tsx src/cli.ts validate","build:pptx":"tsx src/cli.ts build","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"arphs","email":"1010677780@qq.com"},"_npmVersion":"11.6.2","description":"Provider-neutral JSON IR and CLI for generating editable PowerPoint presentations","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ajv":"^8.20.0","jszip":"^3.10.1","pptxgenjs":"^4.0.1","ajv-formats":"^3.0.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.12","vitest":"^4.1.10","typescript":"^7.0.2","@types/node":"^26.2.0"},"_npmOperationalInternal":{"tmp":"tmp/agent-pptx_1.4.3_1787819131103_0.8574800091185382","host":"s3://npm-registry-packages-npm-production"}},"1.5.2":{"name":"@arphs/agent-pptx","version":"1.5.2","description":"Provider-neutral JSON IR and CLI for generating editable PowerPoint presentations","bin":{"agent-pptx":"dist/cli.js"},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./schema":"./schemas/ir-1.0.schema.json"},"scripts":{"build":"tsc","test":"vitest run","validate":"tsx src/cli.ts validate","build:pptx":"tsx src/cli.ts build","prepublishOnly":"npm run build && npm test"},"keywords":["pptx","powerpoint","presentation","slides","agent","ai","claude","codex","skill","json-ir","pptxgenjs"],"author":{"name":"arphs"},"license":"MIT","type":"module","engines":{"node":">=18"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"dependencies":{"ajv":"^8.20.0","ajv-formats":"^3.0.1","jszip":"^3.10.1","pptxgenjs":"^4.0.1"},"devDependencies":{"@types/node":"^26.2.0","tsx":"^4.23.12","typescript":"^7.0.2","vitest":"^4.1.10"},"gitHead":"7b0e9865c87ed51a147d2cd0c98412573bbd8b34","_id":"@arphs/agent-pptx@1.5.2","_nodeVersion":"24.13.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-jYA8zSgkqkC5nLIaXSguFZTbBNvbu9cPdbSm0UdBgM611TEL+ixHudOwsTI6qYdxeUzXtSzFJyl5CbBUDU34gA==","shasum":"2b4f1111c05e7fa162a9c397a4dd56b797fb9d22","tarball":"https://registry.npmjs.org/@arphs/agent-pptx/-/agent-pptx-1.5.2.tgz","fileCount":51,"unpackedSize":306982,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDtXY345EHQIg4yDTpxo8lXbbN0wXw1xIu31ZD1ByjcHwIgL1PQEUr4lF8u0W5Tb5DnDbI8qag1Ey0NHcdkuv3Ej9A="}]},"_npmUser":{"name":"arphs","email":"1010677780@qq.com"},"directories":{},"maintainers":[{"name":"arphs","email":"1010677780@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/agent-pptx_1.5.2_1787837228595_0.4705395075155072"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-17T16:38:10.728Z","modified":"2026-08-27T13:27:08.991Z","1.0.0":"2026-08-17T16:38:11.068Z","1.4.3":"2026-08-27T08:25:31.357Z","1.5.2":"2026-08-27T13:27:08.783Z"},"author":{"name":"arphs"},"license":"MIT","keywords":["pptx","powerpoint","presentation","slides","agent","ai","claude","codex","skill","json-ir","pptxgenjs"],"description":"Provider-neutral JSON IR and CLI for generating editable PowerPoint presentations","maintainers":[{"name":"arphs","email":"1010677780@qq.com"}],"readme":"# Agent PPTX\n\n面向 Claude、Codex 及其他具备文件读写和命令执行能力的 Agent 的、与模型供应商无关的 PowerPoint 生成工具。\n\n本项目采用版本化 JSON IR 作为稳定边界：Agent 负责内容、设计和资源准备，核心 CLI 负责校验、确定性渲染、诊断与交付 `.pptx`。\n\n## 安装\n\n```bash\nnpm install -g @arphs/agent-pptx\n\n# 安装配套的 Agent Skill 文档（与 CLI 同版本，避免契约漂移）\nagent-pptx skill install\n```\n\n`skill install` 会自动检测本机已安装的宿主（Claude Code、Codex）并分别安装，也可以显式指定：\n\n```bash\nagent-pptx skill install --to claude       # 装到 ~/.claude/skills\nagent-pptx skill install --to codex        # 装到 ~/.codex/skills\nagent-pptx skill install --to ./my-skills  # 或任意目录\n```\n\nSkill 文档随 CLI 一同发布。升级 CLI 后重跑一次 `skill install` 即可保持两者同源。\n\n## 常用命令\n\n```bash\nagent-pptx contract                                  # 全部枚举值（字段契约速查）\nagent-pptx init <project>                            # 生成开箱即过校验的项目骨架\nagent-pptx inspect <参考.pptx>                        # 提取既有 PPT 的配色、字体与版式\nagent-pptx template from <参考.pptx> --project <目录> # 把模板转成资产包（theme/图片/页面原型）\nagent-pptx asset add deck.json --id hero --file assets/hero.jpg\nagent-pptx validate deck.json                        # 结构化诊断\nagent-pptx preview deck.json --open                  # 单文件 HTML 预览（意图渲染 + 估算叠加）\nagent-pptx init mydeck --theme tech-dark             # 按主题预设生成骨架（8 套预设见 contract）\nagent-pptx sync deck.json edited.pptx --dry-run      # 手改 pptx 的文本回写 IR（--dry-run 只看差异）\nagent-pptx build deck.json --output out.pptx          # 构建全量\n```\n\n## 用户使用示例\n\n本工具的日常形态是：**你在 Claude / Codex 等 Agent 会话里说话，Agent 调 CLI 干活**。你不需要记命令，只需要把东西交给 Agent 并说明意图。按你手里有什么，分六种典型场景：\n\n### 1. 只有一个主题\n\n> \"帮我做一份云南三日游的 PPT，10 页左右。\"\n\nAgent 会先确认受众和场合，选一套主题预设（商务蓝 / 学术严谨 / 科技深色 / 温暖杂志，拿不准会转述给你选），然后**生成一份 HTML 预览画廊交给你看**：你提意见，Agent 改完重渲再给你看，循环到你满意才构建 .pptx——避免做完十页再整体返工。\n\n### 2. 手里有文档或数据\n\n> \"这是我们的 Q3 经营数据（Excel / Word / PDF / 粘贴文本 / 链接），做一份给董事会的季度回顾。\"\n\nAgent 会把材料收进项目、提炼成带出处的调研笔记再动手。交付时说清哪些数据来自材料、哪些缺口待补——**数字不编造**。\n\n### 3. 有一份参考 PPT 或公司模板\n\n> \"按我们公司这份模板的风格做。\"（附 .pptx 文件）\n\nAgent 可以用 `template from` 把模板一键转成资产包：配色和字体归并进新项目主题、**模板里的全部图片**（背景图、logo、素材照片）自动提取登记为配图候选、每页标注类型与建议版式。归并是启发式（低置信处会标出来请你复核）。诚实边界：这是\"提取视觉参数后重建\"，视觉接近但**不是严格继承原模板母版**。\n\n### 4. 对某一页的排法拿不定主意\n\n> \"这页指标不知道怎么排好。\"\n\nAgent 可以让同一份内容按多个候选版式各渲一页（页底有「候选 2/3 · three-card」标注条），你在预览画廊里看横向对比，说一句\"用第二种\"即可。\n\n### 5. 交付之后想改\n\n- **小改动**（错别字、字号、删一页、换图）：直接在 PowerPoint 里改，不必回炉。\n- **你在 PowerPoint 里手改过、又想让 Agent 继续改**：把手改的 .pptx 发回给 Agent，它会先用 `sync` 把你的文本改动回流进源文件，再继续——**不会静默覆盖你的手改**。\n- **设计层变更**（换版式、换配色、重排结构）：交回 Agent 改源文件重建，这类改动手改容易破坏一致性。\n\n交付的 .pptx 是**可编辑初稿**：第 N 页对应一个独立的源 JSON 文件，你说\"第 3 页那个数字不对\"，Agent 能直接定位改那一页。\n\n### 6. 没空看预览\n\n> \"直接全部做完。\"\n\nAgent 会跳过预览循环直接构建，但交付时附上 HTML 预览路径和校验诊断（溢出、对比度等静态检查已自动完成），邀请你有空时抽查——首轮反馈的对象不是原始输出。\n\n### 边界（如实告知）\n\n- HTML 预览中图表为自绘示意，最终以 PowerPoint 渲染为准。\n- 复杂公式建议先渲染成 SVG 再引入；SmartArt、嵌入 OLE 对象无法解析。\n- 核心库不联网：取图 / 生图由 Agent 用宿主能力完成，图片来源会如实记录。\n\n## 设计原则\n\n- 不依赖任何专有 Agent 宿主或闭源运行时，全部基于开源依赖。\n- 图片等二进制资源只从本地 `assets/` 消费，构建过程不隐式联网。\n- 文本、形状、表格、常规图表和简单流程图优先生成 PowerPoint 原生对象。\n- 复杂图形和公式允许使用 SVG，照片和截图使用位图。\n- 所有 Agent 共享同一份 JSON Schema、CLI 命令和结构化诊断协议。\n\n## 当前状态\n\n核心工作流已稳定可用：19 种版式、8 套主题预设、HTML 预览循环、模板提取（`template from`）、手改回流（`sync`）、Skill 文档分发（`skill install`）。架构决策、兼容边界和实测记录见 `docs/`。\n","readmeFilename":"README.md"}