@litfamily/litopencode 1.0.7 → 1.0.9
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/CHANGELOG.md +18 -0
- package/README-Ko-KR.md +314 -31
- package/README.md +312 -29
- package/dist/activation-primary-prompts.d.ts +1 -0
- package/dist/activation-primary-prompts.js +16 -0
- package/dist/activation-probe.js +4 -1
- package/dist/activation-prompt-utils.d.ts +1 -1
- package/dist/activation-routing.d.ts +6 -1
- package/dist/activation-routing.js +174 -16
- package/dist/activation-workflow-prompts.d.ts +1 -1
- package/dist/activation-workflow-prompts.js +18 -17
- package/dist/activation.d.ts +3 -2
- package/dist/activation.js +6 -6
- package/dist/agents/defaults.js +14 -6
- package/dist/cli/command-aliases.js +24 -22
- package/dist/cli/doctor.js +3 -0
- package/dist/cli/install-report.d.ts +1 -0
- package/dist/cli/install-report.js +4 -0
- package/dist/cli/install.js +7 -4
- package/dist/cli/managed-skill-assets.d.ts +1 -1
- package/dist/cli/managed-skill-assets.js +15 -5
- package/dist/cli/motion-runtime.d.ts +6 -0
- package/dist/cli/motion-runtime.js +46 -0
- package/dist/cli/native-skill-install.js +32 -9
- package/dist/cli/native-skill-integrity.js +1 -0
- package/dist/cli/native-skills.d.ts +2 -0
- package/dist/cli/native-skills.js +2 -1
- package/dist/cli/office-dependencies.d.ts +14 -0
- package/dist/cli/office-dependencies.js +24 -0
- package/dist/cli.js +13 -3
- package/dist/commands.d.ts +2 -11
- package/dist/commands.js +9 -17
- package/dist/deliverable-hedge-guard.d.ts +20 -21
- package/dist/deliverable-hedge-guard.js +234 -275
- package/dist/features.d.ts +81 -2
- package/dist/features.js +80 -13
- package/dist/hooks.d.ts +3 -2
- package/dist/hooks.js +4 -4
- package/dist/ignition.d.ts +1 -1
- package/dist/ignition.js +15 -4
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/interface-handoff.d.ts +1 -0
- package/dist/interface-handoff.js +1 -0
- package/dist/motion-image-reads.d.ts +6 -0
- package/dist/motion-image-reads.js +46 -0
- package/dist/server.js +13 -11
- package/dist/skill-renames.d.ts +4 -2
- package/dist/skill-renames.js +12 -4
- package/dist/skills.d.ts +31 -3
- package/dist/skills.js +53 -9
- package/dist/tools.js +4 -4
- package/docs/ab/S11/baseline-desktop.webp +0 -0
- package/docs/ab/S11/baseline-phone.webp +0 -0
- package/docs/ab/S11/lit-desktop.webp +0 -0
- package/docs/ab/S11/lit-phone.webp +0 -0
- package/docs/ab/S3/baseline-desktop.webp +0 -0
- package/docs/ab/S3/baseline-phone.webp +0 -0
- package/docs/ab/S3/lit-desktop.webp +0 -0
- package/docs/ab/S3/lit-phone.webp +0 -0
- package/docs/ab/S4/baseline-desktop.webp +0 -0
- package/docs/ab/S4/baseline-phone.webp +0 -0
- package/docs/ab/S4/lit-desktop.webp +0 -0
- package/docs/ab/S4/lit-phone.webp +0 -0
- package/docs/ab/S5/lit-slides.webp +0 -0
- package/docs/ab/S7/lit-diagram.webp +0 -0
- package/docs/ab/S8/baseline-slides.webp +0 -0
- package/docs/ab/S8/lit-slides.webp +0 -0
- package/docs/ab/S9/lit-pages.webp +0 -0
- package/docs/assets/cover-motion-still.webp +0 -0
- package/docs/assets/cover-motion.webp +0 -0
- package/docs/assets/readme/badge-version.svg +1 -1
- package/docs/assets/skills/autoconference.webp +0 -0
- package/docs/assets/skills/automatic-guards.webp +0 -0
- package/docs/assets/skills/autoresearch.webp +0 -0
- package/docs/assets/skills/browser-drive.webp +0 -0
- package/docs/assets/skills/debugging.webp +0 -0
- package/docs/assets/skills/deep-interview.webp +0 -0
- package/docs/assets/skills/doctor-installer.webp +0 -0
- package/docs/assets/skills/durable-litgoal.webp +0 -0
- package/docs/assets/skills/frontend-ui-ux.webp +0 -0
- package/docs/assets/skills/lit-burnoff-file.webp +0 -0
- package/docs/assets/skills/lit-burnoff.webp +0 -0
- package/docs/assets/skills/lit-code.webp +0 -0
- package/docs/assets/skills/lit-commit.webp +0 -0
- package/docs/assets/skills/lit-comprehend.webp +0 -0
- package/docs/assets/skills/lit-crucible.webp +0 -0
- package/docs/assets/skills/lit-diagram-drawer.webp +0 -0
- package/docs/assets/skills/lit-docx.webp +0 -0
- package/docs/assets/skills/lit-fetch.webp +0 -0
- package/docs/assets/skills/lit-handoff.webp +0 -0
- package/docs/assets/skills/lit-humanizer.webp +0 -0
- package/docs/assets/skills/lit-init.webp +0 -0
- package/docs/assets/skills/lit-plan.webp +0 -0
- package/docs/assets/skills/lit-pptx.webp +0 -0
- package/docs/assets/skills/lit-recap.webp +0 -0
- package/docs/assets/skills/lit-scientific-visualization.webp +0 -0
- package/docs/assets/skills/lit-typographic-motion.webp +0 -0
- package/docs/assets/skills/litresearch.webp +0 -0
- package/docs/assets/skills/litwork.webp +0 -0
- package/docs/assets/skills/lsp-setup.webp +0 -0
- package/docs/assets/skills/lsp.webp +0 -0
- package/docs/assets/skills/readme-studio.webp +0 -0
- package/docs/assets/skills/refactor.webp +0 -0
- package/docs/assets/skills/review-work.webp +0 -0
- package/docs/assets/skills/rules.webp +0 -0
- package/docs/assets/skills/start-work.webp +0 -0
- package/docs/assets/skills/structural-search.webp +0 -0
- package/docs/assets/skills/visual-qa.webp +0 -0
- package/docs/assets/skills/wikify.webp +0 -0
- package/docs/reference-Ko-KR.md +5 -1
- package/docs/reference.md +6 -2
- package/package.json +1 -1
- package/rules/bundled-rules/lit-humanizer.md +12 -0
- package/skills/autoconference/SKILL.md +1 -1
- package/skills/autoconference/assets/report_template.md +1 -1
- package/skills/autoresearch/references/type-checklists.md +1 -1
- package/skills/browser-drive/SKILL.md +19 -5
- package/skills/browser-drive/scripts/capability-probe.mjs +26 -5
- package/skills/frontend-ui-ux/SKILL.md +10 -15
- package/skills/frontend-ui-ux/data/THIRD-PARTY-NOTICE.txt +10 -0
- package/skills/frontend-ui-ux/references/adaptive-layout.md +3 -11
- package/skills/frontend-ui-ux/references/brand-and-imagery.md +6 -11
- package/skills/frontend-ui-ux/references/complete-contract.md +10 -3
- package/skills/frontend-ui-ux/references/composition.md +1 -7
- package/skills/frontend-ui-ux/references/craft-floor.md +94 -0
- package/skills/frontend-ui-ux/references/creative-directions.md +1 -7
- package/skills/frontend-ui-ux/references/evidence-review.md +2 -12
- package/skills/frontend-ui-ux/references/implementation-platforms.md +1 -4
- package/skills/frontend-ui-ux/references/inclusive-interface.md +1 -3
- package/skills/frontend-ui-ux/references/interaction-motion.md +1 -7
- package/skills/frontend-ui-ux/references/motion-guide.md +125 -0
- package/skills/frontend-ui-ux/references/operating-lanes.md +2 -8
- package/skills/frontend-ui-ux/references/product-direction.md +1 -6
- package/skills/frontend-ui-ux/references/production.md +12 -5
- package/skills/frontend-ui-ux/references/redesign-playbook.md +1 -7
- package/skills/frontend-ui-ux/references/slop-register.md +103 -0
- package/skills/frontend-ui-ux/references/system-foundations.md +1 -8
- package/skills/frontend-ui-ux/references/taste-direction.md +4 -11
- package/skills/frontend-ui-ux/references/visual-language.md +1 -6
- package/skills/frontend-ui-ux/references/visual-reconstruction.md +2 -7
- package/skills/frontend-ui-ux/scripts/probe-page.mjs +326 -0
- package/skills/frontend-ui-ux/scripts/probe-server.mjs +24 -0
- package/skills/frontend-ui-ux/scripts/probe-static.mjs +42 -0
- package/skills/frontend-ui-ux/scripts/probe-thresholds.json +86 -0
- package/skills/frontend-ui-ux/scripts/probe.mjs +183 -0
- package/skills/lit-comprehend/SKILL.md +10 -11
- package/skills/lit-comprehend/references/artifact-template.md +2 -18
- package/skills/lit-comprehend/scripts/verify-explainer.ts +0 -14
- package/skills/lit-diagram-drawer/NOTICE.md +33 -0
- package/skills/lit-diagram-drawer/SKILL.md +101 -0
- package/skills/lit-diagram-drawer/assets/examples/type-architecture-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-architecture-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-architecture-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-bar-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-bar-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-bar-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-beeswarm-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-beeswarm-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-beeswarm-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-bubble-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-bubble-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-bubble-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-bump-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-bump-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-bump-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-data-flow-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-data-flow-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-data-flow-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-datalake-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-datalake-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-datalake-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-db-schema-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-db-schema-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-db-schema-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-dependency-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-dependency-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-dependency-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-deployment-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-deployment-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-deployment-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-dp-integration-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-dp-integration-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-dp-integration-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-dp-security-matrix-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-dp-security-matrix-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-dp-security-matrix-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-er-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-er-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-er-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-fishbone-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-fishbone-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-fishbone-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-flowchart-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-flowchart-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-flowchart-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-gantt-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-gantt-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-gantt-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-heatmap-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-heatmap-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-heatmap-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-high-level-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-high-level-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-high-level-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-high-level-vertical-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-high-level-vertical-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-high-level-vertical-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-import-drawio-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-import-drawio-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-import-drawio-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-import-excalidraw-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-import-excalidraw-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-import-excalidraw-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-import-mermaid-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-import-mermaid-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-import-mermaid-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-it-state-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-it-state-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-it-state-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-journey-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-journey-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-journey-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-kanban-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-kanban-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-kanban-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-layers-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-layers-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-layers-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-line-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-line-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-line-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-loop-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-loop-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-loop-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-loop-terminal-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-loop-terminal-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-loop-terminal-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-marimekko-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-marimekko-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-marimekko-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-medallion-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-medallion-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-medallion-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-nested-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-nested-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-nested-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-org-chart-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-org-chart-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-org-chart-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-paved-road-animated-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-paved-road-animated-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-paved-road-animated-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-polar-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-polar-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-polar-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-policy-trace-animated-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-policy-trace-animated-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-policy-trace-animated-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-process-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-process-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-process-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-pyramid-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-pyramid-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-pyramid-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-quadrant-consultant-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-quadrant-consultant-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-quadrant-consultant-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-quadrant-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-quadrant-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-quadrant-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-queue-animated-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-queue-animated-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-queue-animated-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-radar-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-radar-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-radar-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-ridgeline-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-ridgeline-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-ridgeline-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-sankey-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-sankey-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-sankey-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-scatter-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-scatter-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-scatter-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-sequence-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-sequence-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-sequence-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-sequence-oauth-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-sequence-oauth-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-sequence-oauth-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-slopegraph-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-slopegraph-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-slopegraph-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-state-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-state-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-state-lifecycle-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-state-lifecycle-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-state-lifecycle-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-state-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-story-map-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-story-map-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-story-map-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-streamgraph-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-streamgraph-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-streamgraph-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-swimlane-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-swimlane-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-swimlane-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-timeline-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-timeline-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-timeline-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-tree-block-decomposition-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-tree-block-decomposition-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-tree-block-decomposition-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-tree-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-tree-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-tree-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-treemap-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-treemap-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-treemap-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-uml-class-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-uml-class-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-uml-class-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-venn-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-venn-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-venn-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-wardley-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-wardley-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-wardley-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-waterfall-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-waterfall-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-waterfall-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/fonts/OFL.txt +94 -0
- package/skills/lit-diagram-drawer/assets/fonts/PretendardVariable.woff2 +0 -0
- package/skills/lit-diagram-drawer/assets/fonts/provenance.json +23 -0
- package/skills/lit-diagram-drawer/assets/icons.html +231 -0
- package/skills/lit-diagram-drawer/assets/licenses/devicon-MIT.txt +20 -0
- package/skills/lit-diagram-drawer/assets/licenses/diagram-design-MIT.txt +21 -0
- package/skills/lit-diagram-drawer/assets/licenses/log-z-MIT.txt +21 -0
- package/skills/lit-diagram-drawer/assets/licenses/simple-icons-CC0.md +30 -0
- package/skills/lit-diagram-drawer/assets/licenses/tabler-MIT.txt +21 -0
- package/skills/lit-diagram-drawer/examples/01-service-architecture/after.html +1 -0
- package/skills/lit-diagram-drawer/examples/01-service-architecture/brief.md +33 -0
- package/skills/lit-diagram-drawer/examples/02-release-decision/after.html +1 -0
- package/skills/lit-diagram-drawer/examples/02-release-decision/brief.md +18 -0
- package/skills/lit-diagram-drawer/examples/03-data-retention/after.html +1 -0
- package/skills/lit-diagram-drawer/examples/03-data-retention/brief.md +19 -0
- package/skills/lit-diagram-drawer/examples/04-oauth-sequence/after.html +1 -0
- package/skills/lit-diagram-drawer/examples/04-oauth-sequence/brief.md +17 -0
- package/skills/lit-diagram-drawer/examples/05-review-lanes/after.html +1 -0
- package/skills/lit-diagram-drawer/examples/05-review-lanes/brief.md +17 -0
- package/skills/lit-diagram-drawer/examples/06-rollout-gates/after.html +1 -0
- package/skills/lit-diagram-drawer/examples/06-rollout-gates/brief.md +17 -0
- package/skills/lit-diagram-drawer/examples/07-deployment-boundary/after.html +1 -0
- package/skills/lit-diagram-drawer/examples/07-deployment-boundary/brief.md +19 -0
- package/skills/lit-diagram-drawer/examples/08-policy-traces/after.html +1 -0
- package/skills/lit-diagram-drawer/examples/08-policy-traces/brief.md +20 -0
- package/skills/lit-diagram-drawer/references/accessibility.md +37 -0
- package/skills/lit-diagram-drawer/references/export.md +17 -0
- package/skills/lit-diagram-drawer/references/import-drawio.md +13 -0
- package/skills/lit-diagram-drawer/references/import-excalidraw.md +11 -0
- package/skills/lit-diagram-drawer/references/import-mermaid.md +12 -0
- package/skills/lit-diagram-drawer/references/import-schema.md +28 -0
- package/skills/lit-diagram-drawer/references/korean-typography.md +34 -0
- package/skills/lit-diagram-drawer/references/motion.md +29 -0
- package/skills/lit-diagram-drawer/references/office-pptx-docx.md +28 -0
- package/skills/lit-diagram-drawer/references/output-spec.md +48 -0
- package/skills/lit-diagram-drawer/references/primitive-annotation.md +12 -0
- package/skills/lit-diagram-drawer/references/primitive-icons.md +21 -0
- package/skills/lit-diagram-drawer/references/primitive-sketchy.md +11 -0
- package/skills/lit-diagram-drawer/references/primitive-terminal.md +11 -0
- package/skills/lit-diagram-drawer/references/profiles.md +24 -0
- package/skills/lit-diagram-drawer/references/semantic-patterns.md +27 -0
- package/skills/lit-diagram-drawer/references/style-guide.md +67 -0
- package/skills/lit-diagram-drawer/references/type-architecture.md +51 -0
- package/skills/lit-diagram-drawer/references/type-bar.md +51 -0
- package/skills/lit-diagram-drawer/references/type-beeswarm.md +49 -0
- package/skills/lit-diagram-drawer/references/type-bubble.md +49 -0
- package/skills/lit-diagram-drawer/references/type-bump.md +49 -0
- package/skills/lit-diagram-drawer/references/type-catalog.json +1433 -0
- package/skills/lit-diagram-drawer/references/type-data-flow.md +51 -0
- package/skills/lit-diagram-drawer/references/type-datalake.md +49 -0
- package/skills/lit-diagram-drawer/references/type-db-schema.md +49 -0
- package/skills/lit-diagram-drawer/references/type-dependency.md +49 -0
- package/skills/lit-diagram-drawer/references/type-deployment.md +49 -0
- package/skills/lit-diagram-drawer/references/type-dp-integration.md +49 -0
- package/skills/lit-diagram-drawer/references/type-dp-security-matrix.md +49 -0
- package/skills/lit-diagram-drawer/references/type-er.md +49 -0
- package/skills/lit-diagram-drawer/references/type-fishbone.md +49 -0
- package/skills/lit-diagram-drawer/references/type-flowchart.md +49 -0
- package/skills/lit-diagram-drawer/references/type-gantt.md +49 -0
- package/skills/lit-diagram-drawer/references/type-heatmap.md +53 -0
- package/skills/lit-diagram-drawer/references/type-high-level-vertical.md +53 -0
- package/skills/lit-diagram-drawer/references/type-high-level.md +53 -0
- package/skills/lit-diagram-drawer/references/type-import-drawio.md +53 -0
- package/skills/lit-diagram-drawer/references/type-import-excalidraw.md +53 -0
- package/skills/lit-diagram-drawer/references/type-import-mermaid.md +53 -0
- package/skills/lit-diagram-drawer/references/type-it-state.md +54 -0
- package/skills/lit-diagram-drawer/references/type-journey.md +54 -0
- package/skills/lit-diagram-drawer/references/type-kanban.md +54 -0
- package/skills/lit-diagram-drawer/references/type-layers.md +54 -0
- package/skills/lit-diagram-drawer/references/type-line.md +54 -0
- package/skills/lit-diagram-drawer/references/type-loop-terminal.md +53 -0
- package/skills/lit-diagram-drawer/references/type-loop.md +54 -0
- package/skills/lit-diagram-drawer/references/type-marimekko.md +54 -0
- package/skills/lit-diagram-drawer/references/type-medallion.md +54 -0
- package/skills/lit-diagram-drawer/references/type-nested.md +59 -0
- package/skills/lit-diagram-drawer/references/type-org-chart.md +58 -0
- package/skills/lit-diagram-drawer/references/type-paved-road-animated.md +72 -0
- package/skills/lit-diagram-drawer/references/type-polar.md +67 -0
- package/skills/lit-diagram-drawer/references/type-policy-trace-animated.md +69 -0
- package/skills/lit-diagram-drawer/references/type-process.md +58 -0
- package/skills/lit-diagram-drawer/references/type-pyramid.md +59 -0
- package/skills/lit-diagram-drawer/references/type-quadrant-consultant.md +60 -0
- package/skills/lit-diagram-drawer/references/type-quadrant.md +57 -0
- package/skills/lit-diagram-drawer/references/type-queue-animated.md +63 -0
- package/skills/lit-diagram-drawer/references/type-radar.md +57 -0
- package/skills/lit-diagram-drawer/references/type-ridgeline.md +63 -0
- package/skills/lit-diagram-drawer/references/type-sankey.md +68 -0
- package/skills/lit-diagram-drawer/references/type-scatter.md +60 -0
- package/skills/lit-diagram-drawer/references/type-sequence-oauth.md +66 -0
- package/skills/lit-diagram-drawer/references/type-sequence.md +63 -0
- package/skills/lit-diagram-drawer/references/type-slopegraph.md +65 -0
- package/skills/lit-diagram-drawer/references/type-state-lifecycle.md +53 -0
- package/skills/lit-diagram-drawer/references/type-state.md +59 -0
- package/skills/lit-diagram-drawer/references/type-story-map.md +52 -0
- package/skills/lit-diagram-drawer/references/type-streamgraph.md +53 -0
- package/skills/lit-diagram-drawer/references/type-swimlane.md +52 -0
- package/skills/lit-diagram-drawer/references/type-timeline.md +52 -0
- package/skills/lit-diagram-drawer/references/type-tree-block-decomposition.md +57 -0
- package/skills/lit-diagram-drawer/references/type-tree.md +54 -0
- package/skills/lit-diagram-drawer/references/type-treemap.md +54 -0
- package/skills/lit-diagram-drawer/references/type-uml-class.md +52 -0
- package/skills/lit-diagram-drawer/references/type-venn.md +51 -0
- package/skills/lit-diagram-drawer/references/type-wardley.md +52 -0
- package/skills/lit-diagram-drawer/references/type-waterfall.md +54 -0
- package/skills/lit-diagram-drawer/references/verifier-guide.md +59 -0
- package/skills/lit-diagram-drawer/scripts/block-registry.mjs +43 -0
- package/skills/lit-diagram-drawer/scripts/brief-contract.mjs +94 -0
- package/skills/lit-diagram-drawer/scripts/capability-probe.mjs +132 -0
- package/skills/lit-diagram-drawer/scripts/check-visible-text.mjs +15 -0
- package/skills/lit-diagram-drawer/scripts/craft-thresholds.json +15 -0
- package/skills/lit-diagram-drawer/scripts/diagram-metrics.mjs +216 -0
- package/skills/lit-diagram-drawer/scripts/doctor.mjs +8 -0
- package/skills/lit-diagram-drawer/scripts/drawio-extract.mjs +214 -0
- package/skills/lit-diagram-drawer/scripts/excalidraw-extract.mjs +151 -0
- package/skills/lit-diagram-drawer/scripts/export.mjs +133 -0
- package/skills/lit-diagram-drawer/scripts/import-shared.mjs +130 -0
- package/skills/lit-diagram-drawer/scripts/mermaid-extract.mjs +173 -0
- package/skills/lit-diagram-drawer/scripts/office-safety.mjs +120 -0
- package/skills/lit-diagram-drawer/scripts/renderer-safety.mjs +46 -0
- package/skills/lit-diagram-drawer/scripts/test-block-registry.mjs +20 -0
- package/skills/lit-diagram-drawer/scripts/test-brief-contract.mjs +27 -0
- package/skills/lit-diagram-drawer/scripts/test-importers.mjs +119 -0
- package/skills/lit-diagram-drawer/scripts/test-office-safety.mjs +67 -0
- package/skills/lit-diagram-drawer/scripts/test-sequence-verifier.mjs +28 -0
- package/skills/lit-diagram-drawer/scripts/test-visual-quality.mjs +68 -0
- package/skills/lit-diagram-drawer/scripts/verify-all.mjs +74 -0
- package/skills/lit-diagram-drawer/scripts/verify-brief.mjs +47 -0
- package/skills/lit-diagram-drawer/scripts/verify-coverage.mjs +56 -0
- package/skills/lit-diagram-drawer/scripts/verify-diagram.mjs +26 -0
- package/skills/lit-diagram-drawer/scripts/verify-motion.mjs +12 -0
- package/skills/lit-diagram-drawer/scripts/verify-type.mjs +48 -0
- package/skills/lit-diagram-drawer/scripts/visual-quality.mjs +363 -0
- package/skills/lit-docx/LICENSE-MIT.txt +21 -0
- package/skills/lit-docx/SKILL.md +78 -0
- package/skills/lit-docx/references/frontmatter_schema.md +42 -0
- package/skills/lit-docx/references/journal_style_spec.md +17 -0
- package/skills/lit-docx/references/markdown_quality_checklist.md +37 -0
- package/skills/lit-docx/references/slop_phrase_list.yaml +58 -0
- package/skills/lit-docx/references/slop_rules.md +35 -0
- package/skills/lit-docx/requirements.in +5 -0
- package/skills/lit-docx/requirements.lock +289 -0
- package/skills/lit-docx/run.py +64 -0
- package/skills/lit-docx/scripts/clean_markdown.py +95 -0
- package/skills/lit-docx/scripts/convert_md_to_docx.py +1047 -0
- package/skills/lit-docx/scripts/convert_md_to_pdf.py +281 -0
- package/skills/lit-docx/scripts/convert_pdf.py +130 -0
- package/skills/lit-docx/scripts/craft-thresholds.json +11 -0
- package/skills/lit-docx/scripts/craft_docx.py +83 -0
- package/skills/lit-docx/scripts/edit_docx.py +297 -0
- package/skills/lit-docx/scripts/embed_images.py +78 -0
- package/skills/lit-docx/scripts/generate_docx_templates.py +491 -0
- package/skills/lit-docx/scripts/slop_lint.py +485 -0
- package/skills/lit-docx/scripts/visual_audit.py +41 -0
- package/skills/lit-docx/templates/docx/acs.docx +0 -0
- package/skills/lit-docx/templates/docx/elsevier.docx +0 -0
- package/skills/lit-docx/templates/docx/ieee.docx +0 -0
- package/skills/lit-docx/templates/docx/korean-generic.docx +0 -0
- package/skills/lit-docx/templates/docx/nature.docx +0 -0
- package/skills/lit-docx/templates/latex/acs/README.md +5 -0
- package/skills/lit-docx/templates/latex/acs/template.tex +37 -0
- package/skills/lit-docx/templates/latex/elsevier/README.md +5 -0
- package/skills/lit-docx/templates/latex/elsevier/template.tex +38 -0
- package/skills/lit-docx/templates/latex/ieee/README.md +5 -0
- package/skills/lit-docx/templates/latex/ieee/template.tex +37 -0
- package/skills/lit-docx/templates/latex/korean-generic/README.md +5 -0
- package/skills/lit-docx/templates/latex/korean-generic/template.tex +37 -0
- package/skills/lit-docx/templates/latex/nature/README.md +5 -0
- package/skills/lit-docx/templates/latex/nature/template.tex +37 -0
- package/skills/lit-docx/templates/registry.yaml +1366 -0
- package/skills/lit-humanizer/NOTICE +160 -0
- package/skills/lit-humanizer/SKILL.md +122 -0
- package/skills/lit-humanizer/assets/always-on-rule.md +9 -0
- package/skills/lit-humanizer/assets/report-skeleton.md +25 -0
- package/skills/lit-humanizer/assets/slide-text-skeleton.md +28 -0
- package/skills/lit-humanizer/examples/accessibility-note/after.md +7 -0
- package/skills/lit-humanizer/examples/accessibility-note/before.md +7 -0
- package/skills/lit-humanizer/examples/api-reference/after.md +9 -0
- package/skills/lit-humanizer/examples/api-reference/before.md +15 -0
- package/skills/lit-humanizer/examples/changelog/after.md +5 -0
- package/skills/lit-humanizer/examples/changelog/before.md +12 -0
- package/skills/lit-humanizer/examples/code-comments/after.md +10 -0
- package/skills/lit-humanizer/examples/code-comments/before.md +19 -0
- package/skills/lit-humanizer/examples/commit/after.md +5 -0
- package/skills/lit-humanizer/examples/commit/before.md +7 -0
- package/skills/lit-humanizer/examples/data-release/after.md +7 -0
- package/skills/lit-humanizer/examples/data-release/before.md +9 -0
- package/skills/lit-humanizer/examples/english-essay/after.md +5 -0
- package/skills/lit-humanizer/examples/english-essay/before.md +5 -0
- package/skills/lit-humanizer/examples/incident-update/after.md +7 -0
- package/skills/lit-humanizer/examples/incident-update/before.md +7 -0
- package/skills/lit-humanizer/examples/ko-essay/after.md +7 -0
- package/skills/lit-humanizer/examples/ko-essay/before.md +9 -0
- package/skills/lit-humanizer/examples/ko-report/after.md +9 -0
- package/skills/lit-humanizer/examples/ko-report/before.md +13 -0
- package/skills/lit-humanizer/examples/ko-slide/after.md +19 -0
- package/skills/lit-humanizer/examples/ko-slide/before.md +21 -0
- package/skills/lit-humanizer/examples/meeting-brief/after.md +9 -0
- package/skills/lit-humanizer/examples/meeting-brief/before.md +11 -0
- package/skills/lit-humanizer/examples/policy-faq/after.md +9 -0
- package/skills/lit-humanizer/examples/policy-faq/before.md +9 -0
- package/skills/lit-humanizer/examples/pr/after.md +15 -0
- package/skills/lit-humanizer/examples/pr/before.md +17 -0
- package/skills/lit-humanizer/examples/project-update/after.md +7 -0
- package/skills/lit-humanizer/examples/project-update/before.md +9 -0
- package/skills/lit-humanizer/examples/readme/after.md +12 -0
- package/skills/lit-humanizer/examples/readme/before.md +14 -0
- package/skills/lit-humanizer/examples/report/after.md +13 -0
- package/skills/lit-humanizer/examples/report/before.md +11 -0
- package/skills/lit-humanizer/examples/research-abstract/after.md +5 -0
- package/skills/lit-humanizer/examples/research-abstract/before.md +5 -0
- package/skills/lit-humanizer/examples/slides/after.md +19 -0
- package/skills/lit-humanizer/examples/slides/before.md +19 -0
- package/skills/lit-humanizer/examples/troubleshooting/after.md +11 -0
- package/skills/lit-humanizer/examples/troubleshooting/before.md +11 -0
- package/skills/lit-humanizer/fixtures/ko-metrics-golden.json +49 -0
- package/skills/lit-humanizer/fixtures/office/minimal.docx +0 -0
- package/skills/lit-humanizer/fixtures/office/minimal.pptx +0 -0
- package/skills/lit-humanizer/fixtures/pos-real.txt +26 -0
- package/skills/lit-humanizer/fixtures/rule-cases.json +306 -0
- package/skills/lit-humanizer/references/code-patterns.md +468 -0
- package/skills/lit-humanizer/references/deliverable-channels.md +111 -0
- package/skills/lit-humanizer/references/en-patterns-checklist.md +43 -0
- package/skills/lit-humanizer/references/en-patterns-content.md +243 -0
- package/skills/lit-humanizer/references/en-patterns-structure.md +375 -0
- package/skills/lit-humanizer/references/en-patterns.md +57 -0
- package/skills/lit-humanizer/references/ko-metrics.md +33 -0
- package/skills/lit-humanizer/references/ko-patterns-a-d.md +659 -0
- package/skills/lit-humanizer/references/ko-patterns-e-j.md +387 -0
- package/skills/lit-humanizer/references/ko-patterns.md +31 -0
- package/skills/lit-humanizer/references/rewrite-playbook.md +54 -0
- package/skills/lit-humanizer/references/taxonomy.md +153 -0
- package/skills/lit-humanizer/rules.json +884 -0
- package/skills/lit-humanizer/scripts/core.mjs +208 -0
- package/skills/lit-humanizer/scripts/detect.mjs +91 -0
- package/skills/lit-humanizer/scripts/extract_office_text.py +89 -0
- package/skills/lit-humanizer/scripts/guard-scan.mjs +36 -0
- package/skills/lit-humanizer/scripts/ko-metrics.mjs +124 -0
- package/skills/lit-humanizer/scripts/test-fixtures.mjs +54 -0
- package/skills/lit-humanizer/scripts/test-ko-metrics.mjs +27 -0
- package/skills/lit-pptx/FORBIDDEN_TERMS.json +55 -0
- package/skills/lit-pptx/NOTICE.md +3 -0
- package/skills/lit-pptx/SKILL.md +76 -0
- package/skills/lit-pptx/agents/analyst.md +49 -0
- package/skills/lit-pptx/agents/antithesis.md +59 -0
- package/skills/lit-pptx/agents/architect.md +44 -0
- package/skills/lit-pptx/agents/critic.md +42 -0
- package/skills/lit-pptx/agents/synthesizer.md +47 -0
- package/skills/lit-pptx/agents/thesis.md +33 -0
- package/skills/lit-pptx/assets/azure/circle-lg.png +0 -0
- package/skills/lit-pptx/assets/azure/circle-md.png +0 -0
- package/skills/lit-pptx/assets/azure/circle-sm.png +0 -0
- package/skills/lit-pptx/fonts/a2z-font/A2Z-Black.otf +0 -0
- package/skills/lit-pptx/fonts/a2z-font/A2Z-Bold.otf +0 -0
- package/skills/lit-pptx/fonts/a2z-font/A2Z-Light.otf +0 -0
- package/skills/lit-pptx/fonts/a2z-font/A2Z-Medium.otf +0 -0
- package/skills/lit-pptx/fonts/a2z-font/A2Z-Regular.otf +0 -0
- package/skills/lit-pptx/fonts/a2z-font/OFL.txt +94 -0
- package/skills/lit-pptx/fonts/a2z-font/SOURCE.md +29 -0
- package/skills/lit-pptx/package-lock.json +747 -0
- package/skills/lit-pptx/package.json +13 -0
- package/skills/lit-pptx/pretendard-font/LICENSE.txt +94 -0
- package/skills/lit-pptx/pretendard-font/public/static/LitOpenCodeSans-Bold.otf +0 -0
- package/skills/lit-pptx/pretendard-font/public/static/LitOpenCodeSans-Regular.otf +0 -0
- package/skills/lit-pptx/requirements.in +2 -0
- package/skills/lit-pptx/requirements.lock +285 -0
- package/skills/lit-pptx/run.mjs +71 -0
- package/skills/lit-pptx/scripts/check_ooxml.py +47 -0
- package/skills/lit-pptx/scripts/compile-deck.js +447 -0
- package/skills/lit-pptx/scripts/craft-thresholds.json +26 -0
- package/skills/lit-pptx/scripts/craft_extras.py +224 -0
- package/skills/lit-pptx/scripts/embed_fonts.py +204 -0
- package/skills/lit-pptx/scripts/layout_inventory.py +70 -0
- package/skills/lit-pptx/scripts/learn_template.py +433 -0
- package/skills/lit-pptx/scripts/lib/derive-palette.js +176 -0
- package/skills/lit-pptx/scripts/lib/directive-parser.js +244 -0
- package/skills/lit-pptx/scripts/lib/font-map.js +79 -0
- package/skills/lit-pptx/scripts/lib/gen-bg.js +85 -0
- package/skills/lit-pptx/scripts/lib/gen-gradient-assets.js +36 -0
- package/skills/lit-pptx/scripts/lib/layout-resolver.js +737 -0
- package/skills/lit-pptx/scripts/lib/markdown-loader.js +136 -0
- package/skills/lit-pptx/scripts/lib/render-adapter-html.js +364 -0
- package/skills/lit-pptx/scripts/lib/render-adapter-pptx.js +1848 -0
- package/skills/lit-pptx/scripts/lib/slide-ast.js +534 -0
- package/skills/lit-pptx/scripts/lib/spec-validator.js +94 -0
- package/skills/lit-pptx/scripts/lib/template-registry.js +355 -0
- package/skills/lit-pptx/scripts/qa_deck.py +773 -0
- package/skills/lit-pptx/scripts/validate_pptx.py +206 -0
- package/skills/lit-pptx/specs/markdown-slide-spec-v1.md +251 -0
- package/skills/lit-pptx/specs/markdown-slide-spec-v2.md +223 -0
- package/skills/lit-pptx/specs/slide-ast-v1.schema.json +229 -0
- package/skills/lit-pptx/specs/slide-ast-v2.schema.json +144 -0
- package/skills/lit-pptx/specs/template-enrollment-contract.md +379 -0
- package/skills/lit-pptx/templates/bauhaus_light.css +4 -0
- package/skills/lit-pptx/templates/boilerplate_professional.css +508 -0
- package/skills/lit-pptx/templates/enrolled/AZURE-A2Z/capabilities.yaml +146 -0
- package/skills/lit-pptx/templates/enrolled/AZURE-A2Z/layout-mapping.yaml +454 -0
- package/skills/lit-pptx/templates/enrolled/AZURE-A2Z/template.yaml +37 -0
- package/skills/lit-pptx/templates/enrolled/AZURE-PRO/capabilities.yaml +154 -0
- package/skills/lit-pptx/templates/enrolled/AZURE-PRO/layout-mapping.yaml +483 -0
- package/skills/lit-pptx/templates/enrolled/AZURE-PRO/template.yaml +37 -0
- package/skills/lit-pptx/templates/enrolled/BOILERPLATE-A2Z/capabilities.yaml +179 -0
- package/skills/lit-pptx/templates/enrolled/BOILERPLATE-A2Z/layout-mapping.yaml +299 -0
- package/skills/lit-pptx/templates/enrolled/BOILERPLATE-A2Z/template.yaml +45 -0
- package/skills/lit-pptx/templates/enrolled/BOILERPLATE-PRETENDARD/capabilities.yaml +181 -0
- package/skills/lit-pptx/templates/enrolled/BOILERPLATE-PRETENDARD/layout-mapping.yaml +299 -0
- package/skills/lit-pptx/templates/enrolled/BOILERPLATE-PRETENDARD/template.yaml +44 -0
- package/skills/lit-scientific-visualization/SKILL.md +2 -0
- package/skills/lit-typographic-motion/NOTICE +23 -0
- package/skills/lit-typographic-motion/SKILL.md +77 -0
- package/skills/lit-typographic-motion/THIRD_PARTY_NOTICES +25 -0
- package/skills/lit-typographic-motion/audio-analysis.py +52 -0
- package/skills/lit-typographic-motion/engine/browser.mjs +83 -0
- package/skills/lit-typographic-motion/engine/constants.mjs +177 -0
- package/skills/lit-typographic-motion/engine/contrast.mjs +101 -0
- package/skills/lit-typographic-motion/engine/encode.mjs +46 -0
- package/skills/lit-typographic-motion/engine/flash.mjs +216 -0
- package/skills/lit-typographic-motion/engine/look.mjs +166 -0
- package/skills/lit-typographic-motion/engine/page/common.js +105 -0
- package/skills/lit-typographic-motion/engine/page/engine.js +451 -0
- package/skills/lit-typographic-motion/engine/page/gl.js +213 -0
- package/skills/lit-typographic-motion/engine/page/lines.js +88 -0
- package/skills/lit-typographic-motion/engine/page/passes.js +144 -0
- package/skills/lit-typographic-motion/engine/page/post.js +119 -0
- package/skills/lit-typographic-motion/engine/page/scenes.js +187 -0
- package/skills/lit-typographic-motion/engine/page/type.js +321 -0
- package/skills/lit-typographic-motion/engine/png.mjs +139 -0
- package/skills/lit-typographic-motion/engine/sound.mjs +291 -0
- package/skills/lit-typographic-motion/engine/stage/capture.mjs +133 -0
- package/skills/lit-typographic-motion/engine/stage/clock.js +171 -0
- package/skills/lit-typographic-motion/engine/stage/frame-worker.mjs +47 -0
- package/skills/lit-typographic-motion/engine/stage/gate.mjs +119 -0
- package/skills/lit-typographic-motion/engine/stage/qa-page.js +158 -0
- package/skills/lit-typographic-motion/engine/stage/qa.mjs +208 -0
- package/skills/lit-typographic-motion/engine/stage/render.mjs +418 -0
- package/skills/lit-typographic-motion/engine/stage/scan.mjs +162 -0
- package/skills/lit-typographic-motion/engine/stage/stage-kit.js +310 -0
- package/skills/lit-typographic-motion/engine/stills.mjs +60 -0
- package/skills/lit-typographic-motion/engine/text.mjs +126 -0
- package/skills/lit-typographic-motion/engine/timing.mjs +289 -0
- package/skills/lit-typographic-motion/engine/treatment.mjs +254 -0
- package/skills/lit-typographic-motion/fonts/Archivo-100-400.ttf +0 -0
- package/skills/lit-typographic-motion/fonts/Archivo-100-700.ttf +0 -0
- package/skills/lit-typographic-motion/fonts/Archivo-100-900.ttf +0 -0
- package/skills/lit-typographic-motion/fonts/Archivo-125-400.ttf +0 -0
- package/skills/lit-typographic-motion/fonts/Archivo-125-700.ttf +0 -0
- package/skills/lit-typographic-motion/fonts/Archivo-125-900.ttf +0 -0
- package/skills/lit-typographic-motion/fonts/Archivo-75-400.ttf +0 -0
- package/skills/lit-typographic-motion/fonts/Archivo-75-700.ttf +0 -0
- package/skills/lit-typographic-motion/fonts/Archivo-75-900.ttf +0 -0
- package/skills/lit-typographic-motion/fonts/Archivo-OFL.txt +93 -0
- package/skills/lit-typographic-motion/fonts/Silkscreen-Bold.ttf +0 -0
- package/skills/lit-typographic-motion/fonts/Silkscreen-OFL.txt +93 -0
- package/skills/lit-typographic-motion/fonts/Silkscreen-Regular.ttf +0 -0
- package/skills/lit-typographic-motion/fonts/VT323-OFL.txt +93 -0
- package/skills/lit-typographic-motion/fonts/VT323-Regular.ttf +0 -0
- package/skills/lit-typographic-motion/fonts/pins.json +44 -0
- package/skills/lit-typographic-motion/fonts/stroke/CREDITS +52 -0
- package/skills/lit-typographic-motion/fonts/stroke/EMSAllure.svg +216 -0
- package/skills/lit-typographic-motion/fonts/stroke/EMSFelix.svg +216 -0
- package/skills/lit-typographic-motion/fonts/stroke/EMSOsmotron.svg +216 -0
- package/skills/lit-typographic-motion/fonts/stroke/EMSReadability.svg +216 -0
- package/skills/lit-typographic-motion/fonts/stroke/EMSTech.svg +217 -0
- package/skills/lit-typographic-motion/fonts/stroke/OFL.txt +85 -0
- package/skills/lit-typographic-motion/gate.mjs +593 -0
- package/skills/lit-typographic-motion/package-lock.json +78 -0
- package/skills/lit-typographic-motion/package.json +11 -0
- package/skills/lit-typographic-motion/probe.mjs +74 -0
- package/skills/lit-typographic-motion/references/authoring.md +110 -0
- package/skills/lit-typographic-motion/references/craft-loop.md +110 -0
- package/skills/lit-typographic-motion/references/runtime.md +88 -0
- package/skills/lit-typographic-motion/references/stage.md +164 -0
- package/skills/lit-typographic-motion/references/style-bibles.md +88 -0
- package/skills/lit-typographic-motion/references/treatment.md +143 -0
- package/skills/lit-typographic-motion/references/type-craft.md +55 -0
- package/skills/lit-typographic-motion/render.mjs +654 -0
- package/skills/lit-typographic-motion/requirements-audio.in +1 -0
- package/skills/lit-typographic-motion/requirements-audio.txt +790 -0
- package/skills/lit-typographic-motion/runtime.mjs +259 -0
- package/skills/lit-typographic-motion/word-timing-models.json +25 -0
- package/skills/litresearch/SKILL.md +41 -12
- package/skills/managed-skill-manifest.json +2367 -63
- package/skills/skill-rename-aliases.json +6 -1
- package/tools/check-pack-payload.mjs +22 -1
- package/tools/check-payload-substance.mjs +2 -2
- package/tools/payload-reference-exemptions.json +4 -0
- package/tools/payload-substance-allowlist.json +2 -3
- package/tools/payload-substance-parity.json +7 -7
- package/tools/version-manifests.json +4 -4
- package/skills/lit-korean/SKILL.md +0 -231
package/dist/cli/install.js
CHANGED
|
@@ -9,12 +9,13 @@ import { openCodeHostCapabilities } from "./host-capabilities.js";
|
|
|
9
9
|
import { describeHostLimitMutation, ensureHostLimits } from "./host-limits.js";
|
|
10
10
|
import { assertExistingModelRoutesSafe, describeInstallRoutes, describeLitConfigMutation, ensureLitConfig, readExistingOutputStyle, readInstallModelClassification, readInstallModelSelection, writeTextAtomically } from "./install-config.js";
|
|
11
11
|
import { readJsonObjectIfPresent, readPackageMetadata } from "./json.js";
|
|
12
|
-
import { renderInstallReport } from "./install-report.js";
|
|
12
|
+
import { renderInstallReport, wrapReceiptLine } from "./install-report.js";
|
|
13
13
|
import { renderLitOpenCodeWordmark } from "./install-tui.js";
|
|
14
14
|
import { promptModelSelection, promptOutputStyle, promptPermissionMode } from "./model-routing.js";
|
|
15
15
|
import { litOpenCodeConfigFileForOpenCodeRoot } from "../state.js";
|
|
16
16
|
import { describeNativeSkillMutation, ensureNativeSkills, inspectNativeSkills } from "./native-skills.js";
|
|
17
17
|
import { applyPluginMutation, describePluginMutation, isLitOpenCodeEntry } from "./plugin-mutation.js";
|
|
18
|
+
import { prewarmMotionRuntime } from "./motion-runtime.js";
|
|
18
19
|
const execFileAsync = promisify(execFile);
|
|
19
20
|
function withProgress(progress, label, task) {
|
|
20
21
|
return progress === undefined ? task() : progress.run(label, task);
|
|
@@ -230,8 +231,8 @@ export async function install(root, dryRun, modelSelection = undefined, modelPro
|
|
|
230
231
|
}
|
|
231
232
|
await withProgress(activeProgress, "Write litopencode.json", async () => {
|
|
232
233
|
await ensureLitConfig(root, selectedModel, selectedPermissionMode, selectedPermissionExplicit, selectedOutputStyle);
|
|
233
|
-
await ensureCommandAliases(root);
|
|
234
234
|
await ensureNativeSkills(root, metadata);
|
|
235
|
+
await ensureCommandAliases(root);
|
|
235
236
|
});
|
|
236
237
|
await withProgress(activeProgress, "Register plugin", async () => {
|
|
237
238
|
if (resolved.useOpenCodeInstaller) {
|
|
@@ -255,10 +256,12 @@ export async function install(root, dryRun, modelSelection = undefined, modelPro
|
|
|
255
256
|
});
|
|
256
257
|
await withProgress(activeProgress, "Verify install", async () => verifyInstalledSurfaces(root, configFile, resolved.target, metadata, selectedModel, selectedPermissionMode, selectedPermissionExplicit, selectedOutputStyle));
|
|
257
258
|
await activeProgress?.complete();
|
|
259
|
+
// MO-A-42: the installer attempts the motion pre-warm; a failure never fails the install.
|
|
260
|
+
const motionReceipt = wrapReceiptLine(prewarmMotionRuntime(metadata.packageRoot));
|
|
258
261
|
return {
|
|
259
262
|
exitCode: 0,
|
|
260
263
|
stdout: activeProgress === undefined
|
|
261
|
-
? renderLitOpenCodeWordmark(pluginSpec(metadata), false) + "\n" + renderInstallReport(report)
|
|
262
|
-
:
|
|
264
|
+
? renderLitOpenCodeWordmark(pluginSpec(metadata), false) + "\n" + renderInstallReport(report) + "\n" + motionReceipt
|
|
265
|
+
: motionReceipt
|
|
263
266
|
};
|
|
264
267
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { LitOpenCodeRuntimeSkillId } from "../skills.ts";
|
|
2
|
-
export type ManagedSkillId = "lit-comprehend" | "lit-handoff" | "lit-scientific-visualization" | "readme-studio" | "frontend-ui-ux" | "visual-qa" | "lit-plan" | "browser-drive" | "autoresearch" | "autoconference" | "wikify";
|
|
2
|
+
export type ManagedSkillId = "lit-comprehend" | "lit-handoff" | "lit-scientific-visualization" | "lit-diagram-drawer" | "lit-pptx" | "lit-typographic-motion" | "lit-docx" | "readme-studio" | "frontend-ui-ux" | "visual-qa" | "lit-plan" | "browser-drive" | "lit-humanizer" | "autoresearch" | "autoconference" | "wikify";
|
|
3
3
|
export type CanonicalManagedAsset = {
|
|
4
4
|
readonly path: string;
|
|
5
5
|
readonly sha256: string;
|
|
@@ -9,7 +9,12 @@ export function managedSkillDefinition(id) {
|
|
|
9
9
|
if (id !== "lit-comprehend" &&
|
|
10
10
|
id !== "lit-handoff" &&
|
|
11
11
|
id !== "lit-scientific-visualization" &&
|
|
12
|
+
id !== "lit-diagram-drawer" &&
|
|
13
|
+
id !== "lit-pptx" &&
|
|
14
|
+
id !== "lit-typographic-motion" &&
|
|
15
|
+
id !== "lit-docx" &&
|
|
12
16
|
id !== "browser-drive" &&
|
|
17
|
+
id !== "lit-humanizer" &&
|
|
13
18
|
id !== "readme-studio" &&
|
|
14
19
|
id !== "frontend-ui-ux" &&
|
|
15
20
|
id !== "visual-qa" &&
|
|
@@ -27,9 +32,10 @@ export function managedVendorAssets() {
|
|
|
27
32
|
export function previousManagedSkillId(id) {
|
|
28
33
|
const previous = managedSkillManifest.renamedSkills?.[id];
|
|
29
34
|
const expected = Object.entries(renamedSkillIds).find(([canonical]) => canonical === id)?.[1];
|
|
30
|
-
|
|
35
|
+
const first = Array.isArray(previous) ? previous[0] : previous;
|
|
36
|
+
if (first !== expected)
|
|
31
37
|
throw new Error(`Managed skill rename manifest drift: ${id}`);
|
|
32
|
-
return
|
|
38
|
+
return first;
|
|
33
39
|
}
|
|
34
40
|
export function assetPathsForManagedSkill(id) {
|
|
35
41
|
const definition = managedSkillDefinition(id);
|
|
@@ -100,13 +106,17 @@ const skillDiscoveryDescriptions = Object.freeze({
|
|
|
100
106
|
"deep-interview": "Trigger when a request is too broad or underspecified to plan — \"make it better\", \"add auth\", \"build the dashboard\", a one-line feature ask with no acceptance criteria — so the forks that change scope, risk, or acceptance get settled into a decision-complete brief before lit-plan starts.",
|
|
101
107
|
"browser-drive": "Trigger only when the answer lives in a running page and the user explicitly asked to drive one \u2014 the exact `browser-drive` name, or a page task that no document can settle. LitOpenCode bundles no browser and no driver: probe by identity, quote the probe, and stop at BLOCKED_BROWSER_DRIVER_UNAVAILABLE, BLOCKED_BROWSER_DRIVER_IDENTITY_UNVERIFIED, or BLOCKED_BROWSER_DRIVER_CLEANUP_FAILED rather than substituting a fetch. A passing mention of a browser or a URL is not a request, and checking how a surface looks is visual-qa.",
|
|
102
108
|
"structural-search": "Trigger when the target of a search or a rewrite is a syntax SHAPE rather than a string — \"find every call site that passes a callback\", \"rewrite these imports\", \"locate declarations of this form\", any codemod — so the query survives line breaks, argument spread, and comments that defeat a regex. Also when a text search has already produced a match set nobody trusts. LitOpenCode bundles no engine: probe by identity, and label a textual fallback as textual.",
|
|
103
|
-
"lit-
|
|
104
|
-
"lit-comprehend": "Trigger when the user needs to UNDERSTAND completed work rather than just see its status — after a long agent session, an overnight lit-loop, or a multi-file change — so the answer is a self-contained explainer
|
|
109
|
+
"lit-humanizer": "Trigger when a reader-facing draft needs a focused prose revision — translated-sounding or templated wording, a request to 자연스럽게 / 다듬기 / revise for the reader, or review of documentation, reports, slides, comments, or README text — while preserving meaning, facts, citations, useful qualifiers, and the author's voice.",
|
|
110
|
+
"lit-comprehend": "Trigger when the user needs to UNDERSTAND completed work rather than just see its status — after a long agent session, an overnight lit-loop, or a multi-file change — so the answer is a self-contained explainer with delta-anchored themes, intuition-first diagrams, and a micro-world, not a chronological recap.",
|
|
105
111
|
"lit-recap": "Trigger when the user asks what has happened so far — \"recap\", \"리캡\", \"where are we\", \"summarize this session\", or resuming after a break — so the answer is a read-only Korean-default digest built from the durable ledger and session evidence instead of a new action.",
|
|
106
112
|
"lit-handoff": "Trigger only for explicit `/lit-handoff`, an exact bare `handoff` message, or native selection by the exact `lit-handoff` id.",
|
|
107
113
|
"lit-scientific-visualization": "Trigger only for explicit `/lit-scientific-visualization`, an exact bare `lit-scientific-visualization` message, or native selection by the exact `lit-scientific-visualization` id.",
|
|
114
|
+
"lit-diagram-drawer": "Select this skill from OpenCode's native skill picker when the user needs an architecture map, workflow, schema, decision path, schedule, or conceptual chart. Route product pages and interface layouts to frontend-ui-ux; route measured scientific data and statistical figures to lit-scientific-visualization. Do not claim a slash command or bare-chat route.",
|
|
115
|
+
"lit-pptx": "Select for a PowerPoint deck or presentation, including a bounded lit request for slides. Keep editable Markdown and PPTX together, run the QA gate, and inspect the render.",
|
|
116
|
+
"lit-typographic-motion": "Select for a new film or video. Write the treatment first, then render on the stage path (a captured page) or the type path (words alone), gate it and look at the frames; editing existing footage or embedding a video in a page is outside this route.",
|
|
117
|
+
"lit-docx": "Select for a Word report, proposal, or document, including a bounded lit report request. Keep editable Markdown and DOCX together; select publisher profiles when specified and inspect rendered pages.",
|
|
108
118
|
"readme-studio": "Select by native skill name for factual README writing and local cover composition. Inspect actual session image capability; never infer generation support or authorize publication from selection.",
|
|
109
|
-
"frontend-ui-ux": "Trigger the moment interface work is described, not after it starts — \"design a settings page\", \"redesign the dashboard\", \"build a login screen\", or any making verb aimed at a UI, screen, layout, component, or stylesheet — so compact direction and existing tokens shape the authorized build. Evolve the contract with implementation and inspect renders; review and plan intent remains read-only. Also on the exact `frontend-ui-ux` id. The SKILL.md reference router names which of the
|
|
119
|
+
"frontend-ui-ux": "Trigger the moment interface work is described, not after it starts — \"design a settings page\", \"redesign the dashboard\", \"build a login screen\", or any making verb aimed at a UI, screen, layout, component, or stylesheet — so compact direction and existing tokens shape the authorized build. Evolve the contract with implementation and inspect renders; review and plan intent remains read-only. Also on the exact `frontend-ui-ux` id. The SKILL.md reference router names which of the sixteen shipped reference documents answers which question.",
|
|
110
120
|
"visual-qa": "Trigger when a rendered surface needs to be checked rather than described — an explicit `visual-qa` request, or verifying that an interface change actually looks and behaves right. Selection does not make a browser callable: the shipped capture playbook names the exact blocked code per unavailable channel, and a blocked check reported honestly outranks an unproven pass.",
|
|
111
121
|
autoresearch: "Trigger when a measurable objective needs repeated hypothesis, experiment, evaluation, and keep/revert decisions, or when its debug, fix, learn, plan, predict, reason, scenario, security, or readiness modes fit the request.",
|
|
112
122
|
autoconference: "Trigger when several genuinely independent research lanes should explore partitions and exchange peer-reviewed packets; block rather than role-play when the current root lacks real OpenCode task capability.",
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { CliResult } from "./types.ts";
|
|
2
|
+
export declare const motionInstallCommand = "litopencode motion-runtime install";
|
|
3
|
+
export declare function runMotionRuntime(packageRoot: string, args: readonly string[]): CliResult;
|
|
4
|
+
export declare function motionPrewarmSkipped(env?: NodeJS.ProcessEnv): string | undefined;
|
|
5
|
+
export declare function prewarmMotionRuntime(packageRoot: string, env?: NodeJS.ProcessEnv): string;
|
|
6
|
+
export declare function probeMotionRuntime(packageRoot: string): unknown;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { spawnSync } from "node:child_process";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
// lit-typographic-motion's runtime lives in the managed skill (runtime.mjs, probe.mjs). The CLI verb
|
|
4
|
+
// `litopencode motion-runtime install|status` runs it under this same Node binary; the installer
|
|
5
|
+
// attempts the same pre-warm and reduces the outcome to one receipt line.
|
|
6
|
+
function motionScript(packageRoot, file) {
|
|
7
|
+
return path.join(packageRoot, "skills", "lit-typographic-motion", file);
|
|
8
|
+
}
|
|
9
|
+
export const motionInstallCommand = "litopencode motion-runtime install";
|
|
10
|
+
export function runMotionRuntime(packageRoot, args) {
|
|
11
|
+
const result = spawnSync(process.execPath, [motionScript(packageRoot, "runtime.mjs"), ...args], { stdio: "inherit" });
|
|
12
|
+
return { exitCode: typeof result.status === "number" ? result.status : 1 };
|
|
13
|
+
}
|
|
14
|
+
// A test run never reaches the network or the real cache from the installer: node --test marks its
|
|
15
|
+
// child processes with NODE_TEST_CONTEXT. LITOPENCODE_MOTION_PREWARM=force (a test proving this path
|
|
16
|
+
// against a fixture mirror) or =off overrides that.
|
|
17
|
+
export function motionPrewarmSkipped(env = process.env) {
|
|
18
|
+
if (env.LITOPENCODE_MOTION_PREWARM === "force")
|
|
19
|
+
return undefined;
|
|
20
|
+
if (env.LITOPENCODE_MOTION_PREWARM === "off")
|
|
21
|
+
return "LITOPENCODE_MOTION_PREWARM=off";
|
|
22
|
+
if (env.NODE_TEST_CONTEXT !== undefined)
|
|
23
|
+
return "test run";
|
|
24
|
+
return undefined;
|
|
25
|
+
}
|
|
26
|
+
export function prewarmMotionRuntime(packageRoot, env = process.env) {
|
|
27
|
+
const skipped = motionPrewarmSkipped(env);
|
|
28
|
+
if (skipped !== undefined)
|
|
29
|
+
return `Motion runtime: pre-warm skipped (${skipped}); run ${motionInstallCommand} before rendering.`;
|
|
30
|
+
const result = spawnSync(process.execPath, [motionScript(packageRoot, "runtime.mjs"), "install"], { encoding: "utf8", env, timeout: 600_000, maxBuffer: 8_000_000 });
|
|
31
|
+
if (result.status === 0)
|
|
32
|
+
return "Motion runtime: pre-warmed; litopencode motion-runtime status shows the five probes.";
|
|
33
|
+
const reason = `${result.stderr ?? ""}\n${result.stdout ?? ""}`.split("\n").map((line) => line.trim()).filter(Boolean)[0] ?? result.error?.message ?? `exit ${String(result.status)}`;
|
|
34
|
+
return `Motion runtime: pre-warm not completed (${reason}); run ${motionInstallCommand} outside any sandboxed session before rendering.`;
|
|
35
|
+
}
|
|
36
|
+
export function probeMotionRuntime(packageRoot) {
|
|
37
|
+
const result = spawnSync(process.execPath, [motionScript(packageRoot, "probe.mjs"), "--json"], { encoding: "utf8", timeout: 90_000, maxBuffer: 4_000_000 });
|
|
38
|
+
if (result.status !== 0 || !result.stdout)
|
|
39
|
+
return { error: (result.stderr || result.error?.message || "motion probe unavailable").trim() };
|
|
40
|
+
try {
|
|
41
|
+
return JSON.parse(result.stdout);
|
|
42
|
+
}
|
|
43
|
+
catch {
|
|
44
|
+
return { error: "motion probe returned invalid JSON" };
|
|
45
|
+
}
|
|
46
|
+
}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { randomUUID } from "node:crypto";
|
|
1
|
+
import { createHash, randomUUID } from "node:crypto";
|
|
2
2
|
import { prepareCanonicalBackup } from "./native-canonical-backup.js";
|
|
3
3
|
import fs from "node:fs/promises";
|
|
4
4
|
import path from "node:path";
|
|
5
5
|
import { litOpenCodeRuntimeSkills } from "../skills.js";
|
|
6
6
|
import { assetPathsForManagedSkill, installedCanonicalDirectory, managedSkillDefinition, previousManagedSkillId } from "./managed-skill-assets.js";
|
|
7
|
+
import { retiredManagedSkillEntrypointHashes } from "../skill-renames.js";
|
|
7
8
|
import { destinationState, assertInstalledCanonicalOwnership, invalidInstalledAssets, nativeSkillContent, nativeSkillsRoot, sourceSkillDir, validateSkillSource } from "./native-skill-integrity.js";
|
|
8
9
|
import { assertContained, lstatIfPresent } from "./native-skill-tree.js";
|
|
9
10
|
async function createStagedSkill(skillsRoot, metadata, skill) {
|
|
@@ -87,12 +88,40 @@ async function stagedCleanup(stage) {
|
|
|
87
88
|
await fs.rm(stage, { recursive: true, force: true });
|
|
88
89
|
};
|
|
89
90
|
}
|
|
91
|
+
async function retirePreviousSkill(root, skillsRoot, skill) {
|
|
92
|
+
const previousId = previousManagedSkillId(skill.id);
|
|
93
|
+
if (previousId === undefined)
|
|
94
|
+
return;
|
|
95
|
+
const previousRoot = path.join(skillsRoot, previousId);
|
|
96
|
+
assertContained(skillsRoot, previousRoot, `Previous native skill ${skill.id}`);
|
|
97
|
+
const previous = await destinationState(root, { id: previousId });
|
|
98
|
+
if (previous.kind === "absent")
|
|
99
|
+
return;
|
|
100
|
+
const expectedHash = retiredManagedSkillEntrypointHashes[previousId];
|
|
101
|
+
if (previous.kind === "managed" && expectedHash === undefined) {
|
|
102
|
+
await fs.rm(previousRoot, { recursive: true });
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
if (previous.kind === "managed" && expectedHash !== undefined) {
|
|
106
|
+
const entries = await fs.readdir(previousRoot);
|
|
107
|
+
const content = entries.length === 1 && entries[0] === "SKILL.md"
|
|
108
|
+
? await fs.readFile(previous.entrypoint, "utf8")
|
|
109
|
+
: undefined;
|
|
110
|
+
const actualHash = content === undefined ? undefined : createHash("sha256").update(content).digest("hex");
|
|
111
|
+
if (actualHash === expectedHash) {
|
|
112
|
+
await fs.rm(previousRoot, { recursive: true });
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
if (expectedHash !== undefined) {
|
|
117
|
+
process.stderr.write(`LitOpenCode: kept previous skill ${previousId}; it is modified or user-owned. Review ${previousRoot} before removal.\n`);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
90
120
|
export async function ensureNativeSkills(root, metadata) {
|
|
91
121
|
const skillsRoot = await nativeSkillsRoot(root);
|
|
92
122
|
await fs.mkdir(skillsRoot, { recursive: true });
|
|
93
123
|
for (const skill of litOpenCodeRuntimeSkills) {
|
|
94
124
|
await validateSkillSource(metadata, skill);
|
|
95
|
-
const previousId = previousManagedSkillId(skill.id);
|
|
96
125
|
const destination = await destinationState(root, skill);
|
|
97
126
|
if (destination.kind === "preserved")
|
|
98
127
|
continue;
|
|
@@ -107,13 +136,7 @@ export async function ensureNativeSkills(root, metadata) {
|
|
|
107
136
|
}
|
|
108
137
|
const caches = await assertInstalledCanonicalOwnership(root, skill);
|
|
109
138
|
await swapStagedSkill(root, skillsRoot, path.join(skillsRoot, skill.id), stage, skill, caches);
|
|
110
|
-
|
|
111
|
-
const previousRoot = path.join(skillsRoot, previousId);
|
|
112
|
-
assertContained(skillsRoot, previousRoot, `Previous native skill ${skill.id}`);
|
|
113
|
-
const previous = await destinationState(root, { id: previousId });
|
|
114
|
-
if (previous.kind === "managed")
|
|
115
|
-
await fs.rm(previousRoot, { recursive: true });
|
|
116
|
-
}
|
|
139
|
+
await retirePreviousSkill(root, skillsRoot, skill);
|
|
117
140
|
}
|
|
118
141
|
catch (error) {
|
|
119
142
|
try {
|
|
@@ -112,6 +112,7 @@ export async function nativeSkillContent(metadata, skill) {
|
|
|
112
112
|
...description.split("\n").map((line) => " " + line),
|
|
113
113
|
"metadata:",
|
|
114
114
|
` ${litOpenCodeGeneratedFrontmatterMarker.replace(": true", ': "true"')}`,
|
|
115
|
+
...(skill.id === "lit-diagram-drawer" ? [" reader_projection: shared_rule"] : []),
|
|
115
116
|
"---",
|
|
116
117
|
"",
|
|
117
118
|
body.trimEnd(),
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type NativeSkillsRootLink, type ShadowedSkill } from "./native-skill-integrity.ts";
|
|
2
2
|
import { inspectScientificVisualizationDependencies } from "./scientific-visualization-dependencies.ts";
|
|
3
|
+
import { inspectOfficeDependencies } from "./office-dependencies.ts";
|
|
3
4
|
import type { InstallReport, PackageMetadata } from "./types.ts";
|
|
4
5
|
export { validateManagedSkillSource } from "./native-skill-integrity.ts";
|
|
5
6
|
export { ensureNativeSkills } from "./native-skill-install.ts";
|
|
@@ -18,6 +19,7 @@ export type NativeSkillInspection = {
|
|
|
18
19
|
readonly canonicalCacheFiles: readonly string[];
|
|
19
20
|
readonly dependencies: {
|
|
20
21
|
readonly "lit-scientific-visualization": ReturnType<typeof inspectScientificVisualizationDependencies>;
|
|
22
|
+
readonly office: ReturnType<typeof inspectOfficeDependencies>;
|
|
21
23
|
};
|
|
22
24
|
readonly link?: NativeSkillsRootLink;
|
|
23
25
|
readonly shadowedSkills: readonly ShadowedSkill[];
|
|
@@ -2,6 +2,7 @@ import path from "node:path";
|
|
|
2
2
|
import { litOpenCodeRuntimeSkills } from "../skills.js";
|
|
3
3
|
import { destinationState, assertInstalledCanonicalOwnership, detectShadowedSkills, invalidInstalledAssets, nativeSkillsRoot, nativeSkillsRootLink, validateSkillSource } from "./native-skill-integrity.js";
|
|
4
4
|
import { inspectScientificVisualizationDependencies } from "./scientific-visualization-dependencies.js";
|
|
5
|
+
import { inspectOfficeDependencies } from "./office-dependencies.js";
|
|
5
6
|
export { validateManagedSkillSource } from "./native-skill-integrity.js";
|
|
6
7
|
export { ensureNativeSkills } from "./native-skill-install.js";
|
|
7
8
|
// nativeSkillsRoot() follows the same intentional-symlink resolution install uses; if it fails,
|
|
@@ -113,7 +114,7 @@ export async function inspectNativeSkills(root, metadata, options = {}) {
|
|
|
113
114
|
invalidAssets: [...new Set(invalidAssets)],
|
|
114
115
|
sourceInvalid,
|
|
115
116
|
canonicalCacheFiles,
|
|
116
|
-
dependencies: { "lit-scientific-visualization": inspectScientificVisualizationDependencies() },
|
|
117
|
+
dependencies: { "lit-scientific-visualization": inspectScientificVisualizationDependencies(), office: inspectOfficeDependencies() },
|
|
117
118
|
...(link === undefined ? {} : { link }),
|
|
118
119
|
shadowedSkills,
|
|
119
120
|
ok: missing.length === 0 && uniqueInvalid.length === 0
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
2
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
3
|
+
import os from "node:os";
|
|
4
|
+
import path from "node:path";
|
|
5
|
+
import { fileURLToPath } from "node:url";
|
|
6
|
+
const packageRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "../..");
|
|
7
|
+
const cacheRoot = path.join(process.env.XDG_CACHE_HOME ?? path.join(os.homedir(), ".cache"), "litopencode", "office");
|
|
8
|
+
function cached(label, lock, marker) {
|
|
9
|
+
const digest = createHash("sha256").update(readFileSync(path.join(packageRoot, lock))).digest("hex").slice(0, 16);
|
|
10
|
+
return existsSync(path.join(cacheRoot, `${label}-${digest}`, marker));
|
|
11
|
+
}
|
|
12
|
+
export function inspectOfficeDependencies() {
|
|
13
|
+
const onPath = (name) => (process.env.PATH ?? "").split(path.delimiter).some((dir) => existsSync(path.join(dir, name)));
|
|
14
|
+
return {
|
|
15
|
+
pptx: {
|
|
16
|
+
nodeReady: cached("node", "skills/lit-pptx/package-lock.json", "node_modules/pptxgenjs"),
|
|
17
|
+
pythonReady: cached("python-pptx", "skills/lit-pptx/requirements.lock", "bin/python")
|
|
18
|
+
},
|
|
19
|
+
docx: {
|
|
20
|
+
pythonReady: cached("python-docx", "skills/lit-docx/requirements.lock", "bin/python")
|
|
21
|
+
},
|
|
22
|
+
optional: { pandoc: onPath("pandoc"), xelatex: onPath("xelatex"), soffice: onPath("soffice") }
|
|
23
|
+
};
|
|
24
|
+
}
|
package/dist/cli.js
CHANGED
|
@@ -9,6 +9,7 @@ import { LitOpenCodeConfigError } from "./config.js";
|
|
|
9
9
|
import { defaultOpenAiRoutes, legacyFastAliasHelp, modelEffortHelp, openaiModelHelpLine, shippedDefaultsSummary } from "./cli/model-catalog.js";
|
|
10
10
|
import { fetchPublicSource } from "./lit-fetch.js";
|
|
11
11
|
import { readPackageMetadata } from "./cli/json.js";
|
|
12
|
+
import { runMotionRuntime } from "./cli/motion-runtime.js";
|
|
12
13
|
import path from "node:path";
|
|
13
14
|
import { pathToFileURL } from "node:url";
|
|
14
15
|
function helpText() {
|
|
@@ -33,6 +34,7 @@ function helpText() {
|
|
|
33
34
|
" litopencode install [--permission-prompt | --no-permission-prompt] [--permission-mode <safe|balanced|yolo>]",
|
|
34
35
|
" litopencode install|doctor [--no-auto-update]",
|
|
35
36
|
" litopencode doctor [--json] [--root <dir>]",
|
|
37
|
+
" litopencode motion-runtime install|status [--audio] [--word-timing]",
|
|
36
38
|
" litopencode fetch-public <url> [--json] [--timeout <ms>] [--max-bytes <n>]",
|
|
37
39
|
" litopencode fetch-public <local-url> --json --allow-private-network # trusted fixtures only",
|
|
38
40
|
" OpenCode /start-work init|resume|cancel|complete|status <schema-3 JSON>",
|
|
@@ -76,11 +78,15 @@ function helpText() {
|
|
|
76
78
|
"",
|
|
77
79
|
"Native offline skills:",
|
|
78
80
|
" frontend-ui-ux provides deterministic design-contract retrieval from a packaged MIT corpus,",
|
|
79
|
-
" plus
|
|
81
|
+
" plus sixteen shipped reference documents routed from its SKILL.md.",
|
|
80
82
|
" visual-qa validates evidence, PNGs, terminal layouts, and independent review receipts,",
|
|
81
83
|
" ships a per-channel capture playbook, and keeps blocked codes separate from fail codes.",
|
|
82
|
-
"
|
|
83
|
-
"
|
|
84
|
+
" lit-diagram-drawer creates conceptual, editorial, and technical diagrams with packaged type guides,",
|
|
85
|
+
" local verifiers, bounded importers, and exports that never install tools.",
|
|
86
|
+
" lit-typographic-motion directs films from a treatment: a captured stage page or the type engine.",
|
|
87
|
+
" Typographic-motion engine adapted from mexicat/pdoom-video (MIT, Giacomo Magnanini), commit `ca251e3`.",
|
|
88
|
+
" Each skill resolves its own helpers inside its own installed tree; these skills add no command,",
|
|
89
|
+
" MCP, agent, authentication, or write authority.",
|
|
84
90
|
"",
|
|
85
91
|
"Model routing:",
|
|
86
92
|
" Interactive terminal installs ask provider (openai | xai), LEAD model (planning/review) and HELPER model (execution/research),",
|
|
@@ -110,6 +116,10 @@ function helpText() {
|
|
|
110
116
|
].join("\n");
|
|
111
117
|
}
|
|
112
118
|
export async function runCli(argv = process.argv.slice(2), options = {}) {
|
|
119
|
+
if (argv[0] === "motion-runtime") {
|
|
120
|
+
const metadata = await readPackageMetadata();
|
|
121
|
+
return runMotionRuntime(metadata.packageRoot, argv.slice(1));
|
|
122
|
+
}
|
|
113
123
|
let parsed;
|
|
114
124
|
try {
|
|
115
125
|
parsed = parseArgs(argv);
|
package/dist/commands.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Hooks } from "@opencode-ai/plugin";
|
|
2
2
|
import type { BoundedAuthorityOptions } from "./bounded-authority.ts";
|
|
3
|
-
export type LitOpenCodeCommandId = "lit" | "lit-loop" | "litwork" | "lit-work" | "start-work" | "review-work" | "lit-plan" | "litgoal" | "lit-goal" | "litresearch" | "lit-research" | "lit-init" | "lit-crucible" | "lit-burnoff-file" | "lit-fetch" | "refactor" | "lit-burnoff" | "lit-code" | "debugging" | "lit-commit" | "lsp" | "lsp-setup" | "rules" | "deep-interview" | "structural-search" | "browser-drive" | "lit-recap" | "lit-comprehend" | "lit-handoff" | "lit-scientific-visualization" | "lit-
|
|
3
|
+
export type LitOpenCodeCommandId = "lit" | "lit-loop" | "litwork" | "lit-work" | "start-work" | "review-work" | "lit-plan" | "litgoal" | "lit-goal" | "litresearch" | "lit-research" | "lit-init" | "lit-crucible" | "lit-burnoff-file" | "lit-fetch" | "refactor" | "lit-burnoff" | "lit-code" | "debugging" | "lit-commit" | "lsp" | "lsp-setup" | "rules" | "deep-interview" | "structural-search" | "browser-drive" | "lit-recap" | "lit-comprehend" | "lit-handoff" | "lit-scientific-visualization" | "lit-humanizer" | "autoresearch" | "autoresearch-debug" | "autoresearch-fix" | "autoresearch-learn" | "autoresearch-plan" | "autoresearch-predict" | "autoresearch-reason" | "autoresearch-scenario" | "autoresearch-security" | "autoresearch-ship" | "autoconference" | "autoconference-analyze" | "autoconference-debate" | "autoconference-plan" | "autoconference-resume" | "autoconference-ship" | "autoconference-survey" | "wikify-init" | "wikify-ingest" | "wikify-query" | "wikify-save" | "wikify-lint";
|
|
4
4
|
export type LitOpenCodeCommand = {
|
|
5
5
|
readonly id: LitOpenCodeCommandId;
|
|
6
6
|
readonly slash: string;
|
|
@@ -300,16 +300,7 @@ export declare const litOpenCodeCommands: readonly ({
|
|
|
300
300
|
agent?: undefined;
|
|
301
301
|
readOnly?: undefined;
|
|
302
302
|
} | {
|
|
303
|
-
id: "lit-
|
|
304
|
-
slash: string;
|
|
305
|
-
title: string;
|
|
306
|
-
description: string;
|
|
307
|
-
banner: string;
|
|
308
|
-
activationText: string;
|
|
309
|
-
agent?: undefined;
|
|
310
|
-
readOnly?: undefined;
|
|
311
|
-
} | {
|
|
312
|
-
id: "text-neutralization";
|
|
303
|
+
id: "lit-humanizer";
|
|
313
304
|
slash: string;
|
|
314
305
|
title: string;
|
|
315
306
|
description: string;
|
package/dist/commands.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { activationBanner } from "./activation-probe.js";
|
|
2
2
|
import { renamedSkillId, skillRenameNote } from "./skill-renames.js";
|
|
3
|
-
import { comprehendPromptInjection, debuggingPromptInjection, deepInterviewPromptInjection, gitMasterPromptInjection, lspPromptInjection, lspSetupPromptInjection, rulesPromptInjection, browserDrivePromptInjection, structuralSearchPromptInjection, litGoalPromptInjection, litCruciblePromptInjection, initDeepPromptInjection, litLoopPromptInjection, litPlanPromptInjection, litRecapPromptInjection, litHandoffPromptInjection, litResearchPromptInjection, litCodePromptInjection, refactorPromptInjection, removeAiSlopsPromptInjection, reviewWorkPromptInjection, scientificVisualizationPromptInjection, startWorkPromptInjection, litBurnoffFilePromptInjection, litFetchPromptInjection,
|
|
3
|
+
import { comprehendPromptInjection, debuggingPromptInjection, deepInterviewPromptInjection, gitMasterPromptInjection, lspPromptInjection, lspSetupPromptInjection, rulesPromptInjection, browserDrivePromptInjection, structuralSearchPromptInjection, litGoalPromptInjection, litCruciblePromptInjection, initDeepPromptInjection, litLoopPromptInjection, litPlanPromptInjection, litRecapPromptInjection, litHandoffPromptInjection, litResearchPromptInjection, litCodePromptInjection, refactorPromptInjection, removeAiSlopsPromptInjection, reviewWorkPromptInjection, scientificVisualizationPromptInjection, startWorkPromptInjection, litBurnoffFilePromptInjection, litFetchPromptInjection, litHumanizerPromptInjection } from "./activation.js";
|
|
4
4
|
import { createLitGoalOperations } from "./ledger.js";
|
|
5
5
|
import { commandAliasOwnership } from "./cli/command-alias-ownership.js";
|
|
6
6
|
import { applyTrustedStartWorkDirective, parseStartWorkLifecycleDirective } from "./bounded-authority-hooks.js";
|
|
@@ -257,20 +257,12 @@ export const litOpenCodeCommands = Object.freeze([
|
|
|
257
257
|
activationText: scientificVisualizationPromptInjection
|
|
258
258
|
},
|
|
259
259
|
{
|
|
260
|
-
id: "lit-
|
|
261
|
-
slash: "/lit-
|
|
262
|
-
title: "LitOpenCode Lit
|
|
263
|
-
description: "
|
|
264
|
-
banner: activationBanner("lit-
|
|
265
|
-
activationText:
|
|
266
|
-
},
|
|
267
|
-
{
|
|
268
|
-
id: "text-neutralization",
|
|
269
|
-
slash: "/text-neutralization",
|
|
270
|
-
title: "LitOpenCode Text Neutralization",
|
|
271
|
-
description: "Review Korean prose to reduce overwrought or AI-like phrasing while preserving meaning and author voice.",
|
|
272
|
-
banner: activationBanner("text-neutralization"),
|
|
273
|
-
activationText: textNaturalizationPromptInjection
|
|
260
|
+
id: "lit-humanizer",
|
|
261
|
+
slash: "/lit-humanizer",
|
|
262
|
+
title: "LitOpenCode Lit Humanizer",
|
|
263
|
+
description: "Revise reader-facing prose across languages and formats while preserving meaning, evidence, citations, useful qualifiers, and author voice.",
|
|
264
|
+
banner: activationBanner("lit-humanizer"),
|
|
265
|
+
activationText: litHumanizerPromptInjection
|
|
274
266
|
}
|
|
275
267
|
]);
|
|
276
268
|
export function findLitOpenCodeCommand(input) {
|
|
@@ -279,7 +271,7 @@ export function findLitOpenCodeCommand(input) {
|
|
|
279
271
|
const command = litOpenCodeCommands.find((candidate) => candidate.id === (renamed ?? normalized));
|
|
280
272
|
return command === undefined || renamed === undefined
|
|
281
273
|
? command
|
|
282
|
-
: { ...command, activationText: `${skillRenameNote(renamed)}\n${command.activationText}` };
|
|
274
|
+
: { ...command, activationText: `${skillRenameNote(renamed, normalized)}\n${command.activationText}` };
|
|
283
275
|
}
|
|
284
276
|
function summarizeCommandArguments(value) {
|
|
285
277
|
if (typeof value !== "string" || value.length === 0) {
|
|
@@ -302,7 +294,7 @@ function commandMode(command) {
|
|
|
302
294
|
return "lit-handoff";
|
|
303
295
|
if (command.id === "lit-scientific-visualization")
|
|
304
296
|
return "lit-scientific-visualization";
|
|
305
|
-
if (command.id === "lit-burnoff-file" || command.id === "lit-fetch" || command.id === "lit-
|
|
297
|
+
if (command.id === "lit-burnoff-file" || command.id === "lit-fetch" || command.id === "lit-humanizer")
|
|
306
298
|
return command.id;
|
|
307
299
|
if (command.id === "lit-init")
|
|
308
300
|
return "lit-init";
|
|
@@ -1,26 +1,25 @@
|
|
|
1
1
|
import { type ToolGuardAfterOutput, type ToolGuardRequest } from "./tool-guards.ts";
|
|
2
|
-
export
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
readonly artifactGenre: ArtifactGenre;
|
|
7
|
-
readonly limitationsChannel: LimitationsChannel;
|
|
8
|
-
};
|
|
9
|
-
export type HedgeClass = "deferred" | "absent-evidence" | "scope-limit" | "negated-action" | "self-protection" | "process-meta";
|
|
10
|
-
export type DeliverableHedgeFinding = {
|
|
11
|
-
readonly className: HedgeClass;
|
|
2
|
+
export type HumanizerFinding = {
|
|
3
|
+
readonly file: string;
|
|
4
|
+
readonly rule: string;
|
|
5
|
+
readonly severity: "block" | "warn";
|
|
12
6
|
readonly line: number;
|
|
7
|
+
readonly excerpt: string;
|
|
8
|
+
};
|
|
9
|
+
export type HumanizerScanRequest = {
|
|
10
|
+
readonly file: string;
|
|
11
|
+
readonly oldText: string;
|
|
12
|
+
readonly newText: string;
|
|
13
|
+
};
|
|
14
|
+
export type HumanizerScan = (request: HumanizerScanRequest) => Promise<readonly HumanizerFinding[]>;
|
|
15
|
+
export type DeliverableHedgeGuardOptions = {
|
|
16
|
+
readonly projectRoot: string;
|
|
17
|
+
readonly timeoutMs?: number;
|
|
18
|
+
readonly scan?: HumanizerScan;
|
|
13
19
|
};
|
|
14
|
-
export
|
|
15
|
-
|
|
16
|
-
readonly
|
|
17
|
-
readonly clear: (sessionID: string) => void;
|
|
20
|
+
export type DeliverableHedgeGuardState = {
|
|
21
|
+
readonly before: (input: ToolGuardRequest) => Promise<void>;
|
|
22
|
+
readonly after: (input: ToolGuardRequest, output: ToolGuardAfterOutput) => Promise<void>;
|
|
18
23
|
readonly dispose: () => void;
|
|
19
|
-
readonly contractFor: (sessionID: string) => {
|
|
20
|
-
readonly skillId: string;
|
|
21
|
-
readonly contract: OutputChannelContract;
|
|
22
|
-
} | undefined;
|
|
23
24
|
};
|
|
24
|
-
export declare function
|
|
25
|
-
export declare function inspectDeliverableHedges(text: string, genre: ArtifactGenre): readonly DeliverableHedgeFinding[];
|
|
26
|
-
export declare function applyDeliverableHedgeAfterHook(state: DeliverableHedgeSessionState, input: ToolGuardRequest, output: ToolGuardAfterOutput): Promise<void>;
|
|
25
|
+
export declare function createDeliverableHedgeGuard(options: DeliverableHedgeGuardOptions): DeliverableHedgeGuardState;
|