@lemoncat7/dsh-partner 2.4.2 → 2.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -0
- package/docs/THIRD_PARTY_LICENSES.md +13 -0
- package/docs/attachment-storage.md +18 -0
- package/docs/director-skills.md +24 -0
- package/docs/long-task-continuation.md +51 -0
- package/docs/releases/2.5.0.md +13 -0
- package/docs/releases/2.6.0.md +11 -0
- package/docs/releases/2.7.0.md +21 -0
- package/lib/agent-runtime.d.ts +9 -1
- package/lib/agent-runtime.d.ts.map +1 -1
- package/lib/agent-runtime.js +117 -17
- package/lib/agent-runtime.js.map +1 -1
- package/lib/api/features/attachments-api.d.ts.map +1 -1
- package/lib/api/features/attachments-api.js +31 -1
- package/lib/api/features/attachments-api.js.map +1 -1
- package/lib/api.d.ts +1 -1
- package/lib/api.d.ts.map +1 -1
- package/lib/api.js +1 -1
- package/lib/api.js.map +1 -1
- package/lib/attachments/grouped-storage.d.ts +5 -0
- package/lib/attachments/grouped-storage.d.ts.map +1 -0
- package/lib/attachments/grouped-storage.js +47 -0
- package/lib/attachments/grouped-storage.js.map +1 -0
- package/lib/attachments/service.d.ts +17 -0
- package/lib/attachments/service.d.ts.map +1 -1
- package/lib/attachments/service.js +100 -8
- package/lib/attachments/service.js.map +1 -1
- package/lib/attachments/shared-storage.d.ts +7 -0
- package/lib/attachments/shared-storage.d.ts.map +1 -0
- package/lib/attachments/shared-storage.js +44 -0
- package/lib/attachments/shared-storage.js.map +1 -0
- package/lib/attachments/storage-admin.d.ts +6 -0
- package/lib/attachments/storage-admin.d.ts.map +1 -0
- package/lib/attachments/storage-admin.js +43 -0
- package/lib/attachments/storage-admin.js.map +1 -0
- package/lib/attachments/storage-types.d.ts +33 -0
- package/lib/attachments/storage-types.d.ts.map +1 -0
- package/lib/attachments/storage-types.js +2 -0
- package/lib/attachments/storage-types.js.map +1 -0
- package/lib/attachments/tool.d.ts.map +1 -1
- package/lib/attachments/tool.js +16 -5
- package/lib/attachments/tool.js.map +1 -1
- package/lib/channels/delivery-policy.d.ts.map +1 -1
- package/lib/channels/delivery-policy.js +7 -4
- package/lib/channels/delivery-policy.js.map +1 -1
- package/lib/channels/direct/message-format.js +418 -281
- package/lib/channels/direct/message-format.js.map +4 -4
- package/lib/channels/manager.d.ts +7 -3
- package/lib/channels/manager.d.ts.map +1 -1
- package/lib/channels/manager.js +73 -38
- package/lib/channels/manager.js.map +1 -1
- package/lib/channels/weixin/api.d.ts.map +1 -1
- package/lib/channels/weixin/api.js +7 -2
- package/lib/channels/weixin/api.js.map +1 -1
- package/lib/channels/weixin/errors.d.ts +14 -0
- package/lib/channels/weixin/errors.d.ts.map +1 -0
- package/lib/channels/weixin/errors.js +29 -0
- package/lib/channels/weixin/errors.js.map +1 -0
- package/lib/channels/weixin/poll.d.ts +14 -0
- package/lib/channels/weixin/poll.d.ts.map +1 -0
- package/lib/channels/weixin/poll.js +50 -0
- package/lib/channels/weixin/poll.js.map +1 -0
- package/lib/client-api.d.ts +1 -23
- package/lib/client-api.d.ts.map +1 -1
- package/lib/client-api.js.map +1 -1
- package/lib/client-controller.d.ts.map +1 -1
- package/lib/client-controller.js +3 -3
- package/lib/client-controller.js.map +1 -1
- package/lib/client.d.ts.map +1 -1
- package/lib/client.js +1078 -679
- package/lib/client.js.map +4 -4
- package/lib/collaboration/composition.d.ts.map +1 -1
- package/lib/collaboration/composition.js +32 -8
- package/lib/collaboration/composition.js.map +1 -1
- package/lib/collaboration/domain.d.ts +8 -0
- package/lib/collaboration/domain.d.ts.map +1 -1
- package/lib/collaboration/domain.js.map +1 -1
- package/lib/collaboration/service.d.ts.map +1 -1
- package/lib/collaboration/service.js +38 -5
- package/lib/collaboration/service.js.map +1 -1
- package/lib/concern-notification.d.ts.map +1 -1
- package/lib/concern-notification.js +2 -1
- package/lib/concern-notification.js.map +1 -1
- package/lib/concern-tool.js +1 -1
- package/lib/concern-tool.js.map +1 -1
- package/lib/execution/reply-progress.d.ts.map +1 -1
- package/lib/execution/reply-progress.js +4 -2
- package/lib/execution/reply-progress.js.map +1 -1
- package/lib/execution/service.d.ts +1 -1
- package/lib/execution/service.d.ts.map +1 -1
- package/lib/execution/service.js +4 -7
- package/lib/execution/service.js.map +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +7 -1
- package/lib/index.js.map +1 -1
- package/lib/memory-reflection.js +2 -2
- package/lib/memory-reflection.js.map +1 -1
- package/lib/message-source.d.ts +25 -0
- package/lib/message-source.d.ts.map +1 -0
- package/lib/message-source.js +8 -0
- package/lib/message-source.js.map +1 -0
- package/lib/observation-loop.js +4 -4
- package/lib/observation-loop.js.map +1 -1
- package/lib/pendant/reader.js +1 -1
- package/lib/pendant/reader.js.map +1 -1
- package/lib/pendant/settings-panel.js +1 -1
- package/lib/pendant/settings-panel.js.map +1 -1
- package/lib/persona/service.js +1 -1
- package/lib/persona/service.js.map +1 -1
- package/lib/requirements/attachments.d.ts +7 -0
- package/lib/requirements/attachments.d.ts.map +1 -0
- package/lib/requirements/attachments.js +26 -0
- package/lib/requirements/attachments.js.map +1 -0
- package/lib/requirements/domain.d.ts +1 -1
- package/lib/requirements/domain.d.ts.map +1 -1
- package/lib/requirements/service.d.ts.map +1 -1
- package/lib/requirements/service.js +4 -1
- package/lib/requirements/service.js.map +1 -1
- package/lib/scheduler/channel-origin.d.ts +7 -0
- package/lib/scheduler/channel-origin.d.ts.map +1 -0
- package/lib/scheduler/channel-origin.js +27 -0
- package/lib/scheduler/channel-origin.js.map +1 -0
- package/lib/scheduler/continuations.d.ts +29 -0
- package/lib/scheduler/continuations.d.ts.map +1 -0
- package/lib/scheduler/continuations.js +286 -0
- package/lib/scheduler/continuations.js.map +1 -0
- package/lib/scheduler/domain.d.ts +40 -0
- package/lib/scheduler/domain.d.ts.map +1 -1
- package/lib/scheduler/final-reply.d.ts +13 -0
- package/lib/scheduler/final-reply.d.ts.map +1 -0
- package/lib/scheduler/final-reply.js +21 -0
- package/lib/scheduler/final-reply.js.map +1 -0
- package/lib/scheduler/service.d.ts +2 -0
- package/lib/scheduler/service.d.ts.map +1 -1
- package/lib/scheduler/service.js +30 -1
- package/lib/scheduler/service.js.map +1 -1
- package/lib/scheduler/wakeup-context.d.ts +7 -0
- package/lib/scheduler/wakeup-context.d.ts.map +1 -0
- package/lib/scheduler/wakeup-context.js +14 -0
- package/lib/scheduler/wakeup-context.js.map +1 -0
- package/lib/scheduler/wakeup.d.ts +11 -0
- package/lib/scheduler/wakeup.d.ts.map +1 -0
- package/lib/scheduler/wakeup.js +52 -0
- package/lib/scheduler/wakeup.js.map +1 -0
- package/lib/skills/builtin-resources.d.ts +6 -0
- package/lib/skills/builtin-resources.d.ts.map +1 -0
- package/lib/skills/builtin-resources.js +47 -0
- package/lib/skills/builtin-resources.js.map +1 -0
- package/lib/skills/builtin.d.ts +2 -5
- package/lib/skills/builtin.d.ts.map +1 -1
- package/lib/skills/builtin.js +11 -0
- package/lib/skills/builtin.js.map +1 -1
- package/lib/skills/director-builtins.d.ts +8 -0
- package/lib/skills/director-builtins.d.ts.map +1 -0
- package/lib/skills/director-builtins.js +65 -0
- package/lib/skills/director-builtins.js.map +1 -0
- package/lib/skills/drama-builtin.d.ts +3 -0
- package/lib/skills/drama-builtin.d.ts.map +1 -0
- package/lib/skills/drama-builtin.js +49 -0
- package/lib/skills/drama-builtin.js.map +1 -0
- package/lib/skills/long-task-continuation.d.ts +4 -0
- package/lib/skills/long-task-continuation.d.ts.map +1 -0
- package/lib/skills/long-task-continuation.js +43 -0
- package/lib/skills/long-task-continuation.js.map +1 -0
- package/lib/skills/service.d.ts.map +1 -1
- package/lib/skills/service.js +8 -3
- package/lib/skills/service.js.map +1 -1
- package/lib/skills/viora-canvas-builtin.d.ts +3 -0
- package/lib/skills/viora-canvas-builtin.d.ts.map +1 -0
- package/lib/skills/viora-canvas-builtin.js +19 -0
- package/lib/skills/viora-canvas-builtin.js.map +1 -0
- package/lib/storage/migrate-layout.d.ts.map +1 -1
- package/lib/storage/migrate-layout.js +13 -4
- package/lib/storage/migrate-layout.js.map +1 -1
- package/lib/store.d.ts.map +1 -1
- package/lib/store.js +2 -0
- package/lib/store.js.map +1 -1
- package/lib/tasks/context.js +1 -0
- package/lib/tasks/context.js.map +1 -1
- package/lib/tasks/continuation-yield.d.ts +4 -0
- package/lib/tasks/continuation-yield.d.ts.map +1 -0
- package/lib/tasks/continuation-yield.js +27 -0
- package/lib/tasks/continuation-yield.js.map +1 -0
- package/lib/tasks/continuation.d.ts +13 -0
- package/lib/tasks/continuation.d.ts.map +1 -0
- package/lib/tasks/continuation.js +106 -0
- package/lib/tasks/continuation.js.map +1 -0
- package/lib/tasks/domain.d.ts +2 -0
- package/lib/tasks/domain.d.ts.map +1 -1
- package/lib/tasks/scheduling.d.ts.map +1 -1
- package/lib/tasks/scheduling.js +7 -0
- package/lib/tasks/scheduling.js.map +1 -1
- package/lib/tasks/service.d.ts +2 -1
- package/lib/tasks/service.d.ts.map +1 -1
- package/lib/tasks/service.js +19 -1
- package/lib/tasks/service.js.map +1 -1
- package/lib/ui/attachment-storage.d.ts +2 -0
- package/lib/ui/attachment-storage.d.ts.map +1 -0
- package/lib/ui/attachment-storage.js +59 -0
- package/lib/ui/attachment-storage.js.map +1 -0
- package/lib/ui/capability-editor.js +1 -1
- package/lib/ui/capability-editor.js.map +1 -1
- package/lib/ui/companion-access-panel.js +1 -1
- package/lib/ui/companion-access-panel.js.map +1 -1
- package/lib/ui/companion-create.js +1 -1
- package/lib/ui/companion-create.js.map +1 -1
- package/lib/ui/companion-picker.js +1 -1
- package/lib/ui/companion-picker.js.map +1 -1
- package/lib/ui/identity-editor.js +1 -1
- package/lib/ui/identity-editor.js.map +1 -1
- package/lib/ui/mcp-capabilities.js +1 -1
- package/lib/ui/mcp-capabilities.js.map +1 -1
- package/lib/ui/mcp-panel.js +1 -1
- package/lib/ui/mcp-panel.js.map +1 -1
- package/lib/ui/memory/concern-board.js +2 -2
- package/lib/ui/memory/concern-board.js.map +1 -1
- package/lib/ui/memory/concern-deletion.d.ts +1 -1
- package/lib/ui/memory/concern-deletion.d.ts.map +1 -1
- package/lib/ui/memory/concern-deletion.js +9 -4
- package/lib/ui/memory/concern-deletion.js.map +1 -1
- package/lib/ui/memory/concern-panel.js +1 -1
- package/lib/ui/memory/concern-panel.js.map +1 -1
- package/lib/ui/memory/memory-library.js +1 -1
- package/lib/ui/memory/memory-library.js.map +1 -1
- package/lib/ui/memory/memory-panel.js +1 -1
- package/lib/ui/memory/memory-panel.js.map +1 -1
- package/lib/ui/partner-components.js +1 -1
- package/lib/ui/partner-components.js.map +1 -1
- package/lib/ui/requirement-board.js +1 -1
- package/lib/ui/requirement-board.js.map +1 -1
- package/lib/ui/requirement-dialog.js +1 -1
- package/lib/ui/requirement-dialog.js.map +1 -1
- package/lib/ui/requirement-tasks-panel.js +1 -1
- package/lib/ui/requirement-tasks-panel.js.map +1 -1
- package/lib/ui/schedule-panel.d.ts.map +1 -1
- package/lib/ui/schedule-panel.js +20 -4
- package/lib/ui/schedule-panel.js.map +1 -1
- package/lib/ui/skills-panel.js +1 -1
- package/lib/ui/skills-panel.js.map +1 -1
- package/lib/ui/storage-settings.d.ts.map +1 -1
- package/lib/ui/storage-settings.js +2 -1
- package/lib/ui/storage-settings.js.map +1 -1
- package/lib/ui/task-board-stage.js +1 -1
- package/lib/ui/task-board-stage.js.map +1 -1
- package/lib/ui/workspace-components.js +1 -1
- package/lib/ui/workspace-components.js.map +1 -1
- package/lib/ui/workspace-navigation.d.ts +16 -16
- package/lib/ui/workspace-navigation.js +1 -1
- package/lib/ui/workspace-navigation.js.map +1 -1
- package/package.json +55 -41
- package/resources/skills/cinematic-director/manifest.json +205 -0
- package/resources/skills/cinematic-director/upstream/CHANGELOG.md +213 -0
- package/resources/skills/cinematic-director/upstream/CONTRIBUTING.md +316 -0
- package/resources/skills/cinematic-director/upstream/LICENSE +21 -0
- package/resources/skills/cinematic-director/upstream/README.md +507 -0
- package/resources/skills/cinematic-director/upstream/SKILL.md +420 -0
- package/resources/skills/cinematic-director/upstream/assets/beat-sheet-template.md +97 -0
- package/resources/skills/cinematic-director/upstream/assets/director-book-template.md +254 -0
- package/resources/skills/cinematic-director/upstream/assets/edit-timeline-template.md +147 -0
- package/resources/skills/cinematic-director/upstream/assets/keyframe-prompt-template.md +334 -0
- package/resources/skills/cinematic-director/upstream/assets/qc-checklist.md +153 -0
- package/resources/skills/cinematic-director/upstream/assets/shot-plan-template.md +95 -0
- package/resources/skills/cinematic-director/upstream/assets/sound-plan-template.md +181 -0
- package/resources/skills/cinematic-director/upstream/assets/video-prompt-template.md +305 -0
- package/resources/skills/cinematic-director/upstream/evals/run.md +69 -0
- package/resources/skills/cinematic-director/upstream/references/ai-video-tool-adapters.md +527 -0
- package/resources/skills/cinematic-director/upstream/references/blocking-and-staging.md +424 -0
- package/resources/skills/cinematic-director/upstream/references/cinematic-language.md +595 -0
- package/resources/skills/cinematic-director/upstream/references/continuity-bible.md +410 -0
- package/resources/skills/cinematic-director/upstream/references/director_styles/01_spielberg.md +192 -0
- package/resources/skills/cinematic-director/upstream/references/director_styles/02_hitchcock.md +193 -0
- package/resources/skills/cinematic-director/upstream/references/director_styles/03_kubrick.md +196 -0
- package/resources/skills/cinematic-director/upstream/references/director_styles/04_kurosawa.md +196 -0
- package/resources/skills/cinematic-director/upstream/references/director_styles/05_scorsese.md +195 -0
- package/resources/skills/cinematic-director/upstream/references/director_styles/06_fellini.md +197 -0
- package/resources/skills/cinematic-director/upstream/references/director_styles/07_bergman.md +197 -0
- package/resources/skills/cinematic-director/upstream/references/director_styles/08_tarkovsky.md +184 -0
- package/resources/skills/cinematic-director/upstream/references/director_styles/09_wong_kar_wai.md +189 -0
- package/resources/skills/cinematic-director/upstream/references/director_styles/10_nolan.md +185 -0
- package/resources/skills/cinematic-director/upstream/references/director_styles/11_villeneuve.md +188 -0
- package/resources/skills/cinematic-director/upstream/references/director_styles/12_fincher.md +185 -0
- package/resources/skills/cinematic-director/upstream/references/director_styles/13_refn.md +186 -0
- package/resources/skills/cinematic-director/upstream/references/director_styles/14_bi_gan.md +188 -0
- package/resources/skills/cinematic-director/upstream/references/director_styles/15_zhang_yimou.md +192 -0
- package/resources/skills/cinematic-director/upstream/references/director_styles/16_hou_hsiao_hsien.md +192 -0
- package/resources/skills/cinematic-director/upstream/references/director_styles/17_park_chan_wook.md +192 -0
- package/resources/skills/cinematic-director/upstream/references/director_styles/18_malick.md +191 -0
- package/resources/skills/cinematic-director/upstream/references/director_styles/19_michael_mann.md +192 -0
- package/resources/skills/cinematic-director/upstream/references/director_styles/20_coen_brothers.md +194 -0
- package/resources/skills/cinematic-director/upstream/references/director_styles/README.md +89 -0
- package/resources/skills/cinematic-director/upstream/references/director_styles/example_comparisons.md +140 -0
- package/resources/skills/cinematic-director/upstream/references/editing-and-assembly.md +263 -0
- package/resources/skills/cinematic-director/upstream/references/failure-modes.md +594 -0
- package/resources/skills/cinematic-director/upstream/references/genre-playbooks.md +407 -0
- package/resources/skills/cinematic-director/upstream/references/image-model-adapters.md +290 -0
- package/resources/skills/cinematic-director/upstream/references/lighting-and-color.md +349 -0
- package/resources/skills/cinematic-director/upstream/references/product-and-macro.md +207 -0
- package/resources/skills/cinematic-director/upstream/references/production-workflow.md +238 -0
- package/resources/skills/cinematic-director/upstream/references/prompt-lexicon.md +602 -0
- package/resources/skills/cinematic-director/upstream/references/sound-and-dialogue.md +364 -0
- package/resources/skills/director-skills/manifest.json +541 -0
- package/resources/skills/director-skills/upstream/CHANGELOG.md +32 -0
- package/resources/skills/director-skills/upstream/LICENSE +21 -0
- package/resources/skills/director-skills/upstream/MANIFEST.md +366 -0
- package/resources/skills/director-skills/upstream/README.md +251 -0
- package/resources/skills/director-skills/upstream/RESEARCH_PROVENANCE.md +37 -0
- package/resources/skills/director-skills/upstream/SKILL.md +114 -0
- package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/SKILL.md +81 -0
- package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/checklists/continuity_checklist.md +8 -0
- package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/examples/character_continuity_update.md +9 -0
- package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/examples/location_continuity_update.md +9 -0
- package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/references/continuity_system.md +21 -0
- package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/references/golden_image_workflow.md +29 -0
- package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/references/identity_anchors.md +14 -0
- package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/references/visual_bible_system.md +15 -0
- package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/templates/character_profile.md +15 -0
- package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/templates/continuity_checklist.md +11 -0
- package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/templates/costume_profile.md +12 -0
- package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/templates/location_profile.md +14 -0
- package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/templates/prop_profile.md +13 -0
- package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/templates/visual_style_bible.md +15 -0
- package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/tests/continuity_tests.md +6 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/SKILL.md +80 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/checklists/image_prompt_quality_checklist.md +10 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/examples/shot_list_to_image_prompts.md +4 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/references/image_prompt_components.md +22 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/references/lighting_and_photorealism.md +19 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/references/negative_prompt_patterns.md +18 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/references/prompt_anatomy.md +18 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/templates/character_reference_sheet_prompt.md +5 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/templates/cinematic_still_prompt.md +3 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/templates/keyframe_prompt.md +6 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/templates/location_reference_prompt.md +3 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/templates/prop_prompt.md +3 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/tests/image_prompt_completeness_tests.md +5 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/SKILL.md +84 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/checklists/video_prompt_quality_checklist.md +9 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/examples/image_prompt_to_video_prompt.md +3 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/references/ai_film_production_pipeline.md +21 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/references/audio_motion_timing.md +16 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/references/camera_lens_movement.md +26 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/references/negative_prompt_patterns.md +18 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/references/prompt_anatomy.md +18 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/references/video_prompt_components.md +25 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/templates/image_to_video_prompt.md +5 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/templates/text_to_video_prompt.md +5 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/templates/video_beat_prompt.md +9 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/tests/video_prompt_completeness_tests.md +5 -0
- package/resources/skills/director-skills/upstream/skills/model-adaptation/SKILL.md +82 -0
- package/resources/skills/director-skills/upstream/skills/model-adaptation/checklists/model_export_checklist.md +9 -0
- package/resources/skills/director-skills/upstream/skills/model-adaptation/examples/failed_model_transfer_diagnosis.md +5 -0
- package/resources/skills/director-skills/upstream/skills/model-adaptation/examples/image_prompt_translation.md +10 -0
- package/resources/skills/director-skills/upstream/skills/model-adaptation/examples/same_scene_across_models.md +9 -0
- package/resources/skills/director-skills/upstream/skills/model-adaptation/examples/universal_prompt_to_model_specific_exports.md +14 -0
- package/resources/skills/director-skills/upstream/skills/model-adaptation/examples/video_prompt_translation.md +9 -0
- package/resources/skills/director-skills/upstream/skills/model-adaptation/references/failure_modes_by_model.md +13 -0
- package/resources/skills/director-skills/upstream/skills/model-adaptation/references/image_model_profiles.md +226 -0
- package/resources/skills/director-skills/upstream/skills/model-adaptation/references/model_capability_matrix.md +24 -0
- package/resources/skills/director-skills/upstream/skills/model-adaptation/references/model_update_protocol.md +10 -0
- package/resources/skills/director-skills/upstream/skills/model-adaptation/references/parameter_compatibility.md +20 -0
- package/resources/skills/director-skills/upstream/skills/model-adaptation/references/prompt_translation_rules.md +18 -0
- package/resources/skills/director-skills/upstream/skills/model-adaptation/references/video_model_profiles.md +251 -0
- package/resources/skills/director-skills/upstream/skills/model-adaptation/templates/model_comparison_table.md +4 -0
- package/resources/skills/director-skills/upstream/skills/model-adaptation/templates/model_specific_prompt_export.md +21 -0
- package/resources/skills/director-skills/upstream/skills/model-adaptation/templates/multi_model_export_package.md +18 -0
- package/resources/skills/director-skills/upstream/skills/model-adaptation/templates/prompt_translation_report.md +13 -0
- package/resources/skills/director-skills/upstream/skills/model-adaptation/templates/universal_prompt_brief.md +25 -0
- package/resources/skills/director-skills/upstream/skills/model-adaptation/tests/model_routing_tests.md +8 -0
- package/resources/skills/director-skills/upstream/skills/model-adaptation/tests/prompt_translation_tests.md +7 -0
- package/resources/skills/director-skills/upstream/skills/model-adaptation/tests/research_provenance_tests.md +6 -0
- package/resources/skills/director-skills/upstream/skills/model-adaptation/tests/unknown_capability_tests.md +7 -0
- package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/SKILL.md +82 -0
- package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/checklists/diagnostic_checklist.md +8 -0
- package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/checklists/release_quality_checklist.md +9 -0
- package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/examples/failed_output_to_revised_prompt.md +10 -0
- package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/examples/final_prompt_package_export.md +10 -0
- package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/references/failure_modes.md +13 -0
- package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/references/iteration_diagnostics.md +17 -0
- package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/references/revision_loops.md +17 -0
- package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/references/story_voice_release_qc.md +30 -0
- package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/templates/failed_output_intake.md +13 -0
- package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/templates/final_production_package.md +11 -0
- package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/templates/prompt_revision_report.md +17 -0
- package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/tests/prompt_quality_checklist_tests.md +6 -0
- package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/SKILL.md +81 -0
- package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/checklists/scene_quality_checklist.md +8 -0
- package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/examples/scene_to_screenplay_excerpt.md +18 -0
- package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/references/dialogue_and_subtext.md +15 -0
- package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/references/fountain_workflow.md +29 -0
- package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/references/scene_construction.md +20 -0
- package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/references/screenplay_format.md +18 -0
- package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/templates/beat_sheet.md +6 -0
- package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/templates/dialogue_pass.md +9 -0
- package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/templates/fountain_scene.md +25 -0
- package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/templates/screenplay_scene.md +19 -0
- package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/tests/screenplay_scene_tests.md +6 -0
- package/resources/skills/director-skills/upstream/skills/short-film-development/SKILL.md +83 -0
- package/resources/skills/director-skills/upstream/skills/short-film-development/checklists/concept_quality_checklist.md +8 -0
- package/resources/skills/director-skills/upstream/skills/short-film-development/examples/idea_to_logline.md +13 -0
- package/resources/skills/director-skills/upstream/skills/short-film-development/examples/logline_to_outline.md +10 -0
- package/resources/skills/director-skills/upstream/skills/short-film-development/references/ai_storytelling_workflow.md +46 -0
- package/resources/skills/director-skills/upstream/skills/short-film-development/references/continuity_handoff.md +8 -0
- package/resources/skills/director-skills/upstream/skills/short-film-development/references/screenplay_structure.md +19 -0
- package/resources/skills/director-skills/upstream/skills/short-film-development/references/story_development_workflow.md +23 -0
- package/resources/skills/director-skills/upstream/skills/short-film-development/templates/beat_sheet.md +7 -0
- package/resources/skills/director-skills/upstream/skills/short-film-development/templates/idea_intake.md +16 -0
- package/resources/skills/director-skills/upstream/skills/short-film-development/templates/logline.md +10 -0
- package/resources/skills/director-skills/upstream/skills/short-film-development/templates/short_film_treatment.md +23 -0
- package/resources/skills/director-skills/upstream/skills/short-film-development/templates/short_story_plan.md +22 -0
- package/resources/skills/director-skills/upstream/skills/short-film-development/templates/story_premise.md +19 -0
- package/resources/skills/director-skills/upstream/skills/short-film-development/templates/story_revision_audit.md +22 -0
- package/resources/skills/director-skills/upstream/skills/short-film-development/tests/output_format_tests.md +3 -0
- package/resources/skills/director-skills/upstream/skills/short-film-development/tests/routing_tests.md +7 -0
- package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/SKILL.md +77 -0
- package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/checklists/shotlist_quality_checklist.md +8 -0
- package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/examples/screenplay_scene_to_shot_list.md +8 -0
- package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/references/camera_plan.md +11 -0
- package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/references/production_breakdown.md +11 -0
- package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/references/shotlist_schema.md +21 -0
- package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/templates/asset_list.md +7 -0
- package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/templates/camera_plan.md +10 -0
- package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/templates/scene_breakdown.md +16 -0
- package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/templates/shot_list.md +5 -0
- package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/tests/screenplay_to_shotlist_tests.md +5 -0
- package/resources/skills/director-skills/upstream/skills/style-cinematography-director/SKILL.md +77 -0
- package/resources/skills/director-skills/upstream/skills/style-cinematography-director/checklists/style_quality_checklist.md +8 -0
- package/resources/skills/director-skills/upstream/skills/style-cinematography-director/examples/genre_to_visual_direction.md +15 -0
- package/resources/skills/director-skills/upstream/skills/style-cinematography-director/references/camera_lens_movement.md +26 -0
- package/resources/skills/director-skills/upstream/skills/style-cinematography-director/references/cinematic_language.md +32 -0
- package/resources/skills/director-skills/upstream/skills/style-cinematography-director/references/genre_style_tone.md +17 -0
- package/resources/skills/director-skills/upstream/skills/style-cinematography-director/references/lighting_and_photorealism.md +19 -0
- package/resources/skills/director-skills/upstream/skills/style-cinematography-director/templates/visual_style_bible.md +33 -0
- package/resources/skills/director-skills/upstream/skills/style-cinematography-director/tests/style_translation_tests.md +5 -0
- package/resources/skills/director-skills/upstream/tests/master_router_tests.md +80 -0
- package/resources/skills/drama-production/manifest.json +933 -0
- package/resources/skills/drama-production/upstream/LICENSE +21 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/SKILL.md +153 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/agents/openai.yaml +4 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/assets/creator-decision.example.jsonl +4 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/assets/dashboard/app.js +1263 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/assets/dashboard/index.html +114 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/assets/dashboard/styles.css +297 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/assets/production-observation.example.jsonl +2 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/assets/project-template/short-drama.json +36 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/assets/reference-observation.example.jsonl +2 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/references/audience-reveal.md +21 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/references/contract-and-ownership.md +45 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/references/creator-documents.md +230 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/references/creator-workflow.md +98 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/references/form-cards/Q/347/211/210/350/241/250/350/276/276.md +73 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/references/form-cards//344/272/214/347/273/264/345/212/250/346/200/201/346/274/253.md +74 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/references/form-cards//345/233/275/346/274/253/344/272/214/346/254/241/345/205/203.md +79 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/references/form-cards//345/256/236/346/213/215.md +75 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/references/form-cards//346/260/264/345/242/250/347/254/224/350/247/246.md +85 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/references/form-cards//351/243/216/346/240/274/345/214/226/344/270/211/347/273/264.md +72 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/references/knowhow-index.md +85 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/references/look-development.md +51 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/references/pickup-and-alternate.md +24 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/references/production-form-profiles.md +126 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/references/reference-roles.md +53 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/references/runtime-preflight.md +24 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/scripts/creator_markdown_check.py +1413 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/scripts/dashboard_server.py +1798 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/scripts/project_tool.py +2454 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/scripts/selftest.py +287 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-assets/SKILL.md +76 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-assets/agents/openai.yaml +4 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-assets/assets/character-look.example.jsonl +3 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-assets/assets/continuity.example.jsonl +4 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-assets/assets/decisions.example.jsonl +5 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-assets/assets/location-view.example.jsonl +3 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-assets/assets/occurrences.example.jsonl +5 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-assets/assets/prop-state.example.jsonl +3 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-assets/examples/minimal/characters.jsonl +2 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-assets/examples/minimal/looks.jsonl +2 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-assets/references/asset-review-checklist.md +82 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-assets/references/character-and-look.md +190 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-assets/references/continuity-delta.md +120 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-assets/references/continuity-lock.md +122 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-assets/references/identity-vs-variant.md +140 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-assets/references/location-and-view.md +84 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-assets/references/occurrence-extraction.md +108 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-assets/references/prop-and-state.md +126 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-assets/references/stage-contract.md +43 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-assets/references/voice-direction.md +179 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-assets/scripts/asset_check.py +267 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-assets/scripts/selftest.py +89 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/SKILL.md +157 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/agents/openai.yaml +4 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/assets/adaptation-map.example.jsonl +1 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/assets/creative-brief.md +120 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/assets/episode-map.jsonl +1 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/assets/story-engine.md +181 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/adaptation-craft.md +219 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/creative-reference-intake.md +57 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/director-brief-craft.md +113 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/episode-design.md +509 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-and-hook-playbook.md +240 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-cards//344/272/262/345/255/220/351/232/220/347/247/230.md +112 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-cards//344/273/231/344/276/240/344/277/256/347/234/237.md +51 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-cards//345/212/250/344/275/234/344/273/273/345/212/241.md +51 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-cards//345/217/244/350/243/205/346/235/203/350/260/213.md +51 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-cards//345/244/215/344/273/207/346/211/223/350/204/270.md +51 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-cards//345/256/266/345/272/255/345/205/263/347/263/273.md +51 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-cards//346/202/254/347/226/221/350/247/204/345/210/231.md +51 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-cards//347/224/237/346/264/273/346/265/201.md +51 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-cards//347/240/264/351/225/234/351/207/215/345/234/206.md +109 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-cards//350/201/214/345/234/272/345/226/234/345/211/247.md +51 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-cards//350/261/252/351/227/250/345/251/232/346/201/213.md +51 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-cards//350/272/253/344/273/275/351/224/231/344/275/215.md +51 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-cards.md +92 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/mechanism-loop.md +282 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/multi-episode-intake.md +128 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/premise-devices.md +211 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/reveal-reversal-payoff.md +99 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/serial-character-and-memory.md +293 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/stage-contract.md +88 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/story-craft.md +359 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/scripts/episode_intake.py +699 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/scripts/selftest.py +47 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-edit/SKILL.md +146 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-edit/agents/openai.yaml +4 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-edit/assets/remotion/README.md +60 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-edit/assets/remotion/package.json +15 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-edit/assets/remotion/remotion.config.ts +6 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-edit/assets/remotion/src/Root.tsx +26 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-edit/assets/remotion/src/Subtitles.tsx +88 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-edit/assets/remotion/src/font.ts +46 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-edit/assets/remotion/src/index.ts +4 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-edit/assets/remotion/src/schema.ts +32 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-edit/assets/remotion/tsconfig.json +13 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-edit/assets//345/211/252/350/276/221/345/215/225.md +43 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-edit/references/cut-craft.md +38 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-edit/references/delivery-verify.md +29 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-edit/references/generated-footage.md +54 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-edit/references/sound-and-subtitles.md +60 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-edit/references/stage-contract.md +51 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-edit/scripts/edit_tool.py +1156 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-edit/scripts/selftest.py +520 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/SKILL.md +73 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/agents/openai.yaml +4 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/assets/image-prompt-spec.jsonl.md +187 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/assets/image-prompts.md +42 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/assets/lookdev-frame-spec.jsonl.md +128 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/assets/lookdev-prompts.md +34 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/examples/minimal-image-prompt-specs.jsonl +2 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/references/character-and-look.md +153 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/references/common-recipe.md +241 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/references/edit-and-revision.md +110 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/references/location-plate.md +151 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/references/look-and-state-variant.md +97 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/references/lookdev-frame.md +34 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/references/production-sheet-recipes.md +177 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/references/prop-plate.md +137 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/references/review-and-fixtures.md +92 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/references/stage-contract.md +32 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/scripts/image_prompt_check.py +443 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/scripts/selftest.py +95 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-novel-analyze/SKILL.md +245 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-novel-analyze/agents/openai.yaml +4 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-novel-analyze/assets/episode-candidate.example.jsonl +3 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-novel-analyze/references/adaptation-triage.md +116 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-novel-analyze/references/adaptation-value.md +124 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-novel-analyze/references/aggregation-and-entities.md +155 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-novel-analyze/references/chapter-extraction.md +144 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-novel-analyze/references/stage-contract.md +67 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-novel-analyze/scripts/novel_index.py +651 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-novel-analyze/scripts/selftest.py +51 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-produce/SKILL.md +183 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-produce/agents/openai.yaml +4 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-produce/references/adapter-contract.md +219 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-produce/references/providers/gpt-image-2.md +24 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-produce/references/providers/minimax-h3-video.md +86 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-produce/references/providers/minimax-music.md +25 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-produce/references/providers/minimax-speech.md +41 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-produce/references/providers/seedance.md +64 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-produce/scripts/fixture_adapter.py +77 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-produce/scripts/production_tool.py +2205 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-produce/scripts/provider_adapters.py +1747 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-produce/scripts/selftest.py +135 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-review/SKILL.md +118 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-review/agents/openai.yaml +4 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-review/assets/finding-template.jsonl +2 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-review/assets/supersession-decision.example.json +42 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-review/assets/verdict-template.json +32 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-review/examples/minimal-findings.jsonl +2 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-review/examples/minimal-verdict.json +34 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-review/references/anti-template-repair.md +109 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-review/references/production-quality-gates.md +276 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-review/references/project-calibration.md +83 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-review/references/review-method.md +81 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-review/references/rubric-assets-prompts.md +111 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-review/references/rubric-source-analysis.md +108 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-review/references/rubric-story-script.md +264 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-review/references/rubric-visual-motion.md +184 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-review/references/stage-contract.md +28 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-review/scripts/review_check.py +325 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-review/scripts/selftest.py +87 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/SKILL.md +175 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/agents/openai.yaml +4 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/assets/coverage-audition.example.jsonl +2 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/assets/coverage-template.json +49 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/assets/keyframe-prompts.md +36 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/assets/keyframe-template.jsonl +2 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/assets/revision-lineage.fragment.json +12 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/assets/scene-visual-plan.example.jsonl +2 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/assets/shot-template.jsonl +2 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/blocking-playbooks.md +216 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/comic-keyframe-lexicon.md +156 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/coverage-audition.md +34 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/keyframe-craft.md +174 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/lighting-craft.md +39 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/production-shot-grammar.md +279 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/review-and-fixtures.md +36 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/scene-visual-plan.md +30 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/screenplay-to-keyframe-example.md +155 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/shot-craft.md +266 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/shot-revision-identity.md +25 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/stage-contract.md +57 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/scripts/selftest.py +191 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/scripts/storyboard_check.py +824 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/SKILL.md +154 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/agents/openai.yaml +4 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/assets/coverage-scope.fragment.json +21 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/assets/delivery-container.jsonl.md +101 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/assets/motion-spec.jsonl.md +217 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/assets/motion-terminal.example.jsonl +2 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/assets/music-spec.jsonl.md +31 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/assets/performance.fragment.json +38 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/assets/video-prompts.md +67 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/examples/minimal-music-specs.jsonl +2 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/camera-audio-continuity.md +259 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/delivery-profile.md +273 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/generability.md +93 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/minimax-h3.md +253 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/motion-recipe.md +315 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/performance-action-timing.md +209 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/production-prompt-grammar.md +304 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/review-and-fixtures.md +139 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/seedance-2.0.md +50 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/seedance-2.5.md +122 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/stage-contract.md +60 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/target-model-profile.md +116 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/scripts/container_check.py +329 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/scripts/motion_timing_check.py +450 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/scripts/music_spec_check.py +327 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/scripts/selftest.py +82 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-write/SKILL.md +99 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-write/agents/openai.yaml +4 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-write/assets/beats.jsonl +2 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-write/assets/episode-card-standalone.json +120 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-write/assets/episode-card.json +55 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-write/assets/screenplay.md +36 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-write/assets/voice-record-sheet.jsonl.md +89 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-write/references/dialogue-craft.md +526 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-write/references/production-format-dialect.md +273 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-write/references/scene-handoff-capsule.md +25 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-write/references/scene-sound-dramaturgy.md +43 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-write/references/screenplay-format.md +266 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-write/references/script-craft.md +745 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-write/references/stage-contract.md +36 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-write/references/substitutable-realization.md +107 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-write/scripts/duration_estimate.py +309 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-write/scripts/screenplay_index.py +1091 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-write/scripts/selftest.py +229 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-write/scripts/voice_sheet_check.py +416 -0
- package/resources/skills/viora-canvas-production/manifest.json +23 -0
- package/resources/skills/viora-canvas-production/references/canvas-contract.md +50 -0
- package/resources/skills/viora-canvas-production/references/creative-production.md +50 -0
- package/resources/skills/viora-canvas-production/references/generation-delivery.md +36 -0
- package/resources/skills/viora-canvas-production/references/production-ledger.md +25 -0
package/README.md
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
# DSH Partner
|
|
2
2
|
|
|
3
|
+
> 当前正式版 **2.7.0**,适配并验证 **DSH 0.1.7-rc.2**。插件为正式版,宿主仍为 RC;不支持直接用于旧宿主。Node.js **^22.19.0 或 >=24.0.0**。旧版源码保留于 `pre-dsh-0.1.7-rc.2`;详见 [2.7.0 发布说明](docs/releases/2.7.0.md)。
|
|
4
|
+
|
|
3
5
|
面向 DeepSeek Harness 的长期 AI 伙伴与多渠道插件。
|
|
4
6
|
|
|
7
|
+
内置市场现提供可选的「影视创作工作流」和「导演与分镜设计」,包含离线参考资料、模板及许可证,按需读取,不默认给伙伴开启。详见 [影视创作技能](docs/director-skills.md)。
|
|
8
|
+
|
|
5
9
|
新增 [伙伴 MCP 服务](docs/mcp.md),在页面集中配置 HTTP / stdio 服务,再按伙伴授权;授权和工具目录刷新在原会话下一轮生效。
|
|
6
10
|
|
|
7
11
|
伙伴不是一次会话中的临时提示词。每个伙伴拥有独立身份、Agent Preset、模型路由、能力声明。同一伙伴的本地、微信、Matrix、Mattermost 共用主对话;所有已授权联系人共享对话上下文,不适合作为多人隐私隔离的公共机器人。微信使用腾讯微信 iLink Bot API,不模拟个人微信网页版协议。
|
|
@@ -10,6 +14,10 @@
|
|
|
10
14
|
|
|
11
15
|
Matrix / Mattermost 私聊支持图片、文件、音频和视频收发;单条入站消息最多 8 个附件、合计 64 MB。音视频先作为文件保存或交付,不自动转写;Matrix 加密房间仍不支持。详见 [渠道说明](docs/direct-channels.md)。
|
|
12
16
|
|
|
17
|
+
## 2.5.0:长任务续接与看板等待协调
|
|
18
|
+
|
|
19
|
+
正式版,已验证宿主 **DSH 0.1.5-rc.1**,Node.js **^22.19.0 或 >=24.0.0**。长时间外部任务支持持久化一次性预约;绑定看板后等待期间不重复派发、不提前送验收,到期只检查外部结果,由看板恢复后续步骤。修复恢复会话首次工具装配时序,内置可选续接技能。详见 [2.5.0 发布说明](docs/releases/2.5.0.md)。
|
|
20
|
+
|
|
13
21
|
## 2.4.0:伙伴 MCP、能力管理与验收恢复
|
|
14
22
|
|
|
15
23
|
正式版,已验证宿主 **DSH 0.1.5-rc.1**。新增 MCP 服务与伙伴授权,能力修改自动保存,资源管理改为自适应弹窗;修复验收分配、自动验收恢复及凭据键随机保存失败。详见 [2.4.0 发布说明](docs/releases/2.4.0.md)。
|
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# Bundled third-party licenses
|
|
2
2
|
|
|
3
|
+
## Drama Skills
|
|
4
|
+
|
|
5
|
+
- **drama-skills** — https://github.com/zenstory-ai/drama-skills, commit `b71cb3ca9343eaf6c0375725ccc9261a4e79021e`, MIT, Copyright (c) 2026 drama-skills contributors.
|
|
6
|
+
- All eleven skill directories (instructions, references, templates and scripts) are bundled under `resources/skills/drama-production/upstream/skills/`. Complete license: `resources/skills/drama-production/upstream/LICENSE`.
|
|
7
|
+
- A separate Chinese DSH entrypoint exposes one optional “漫剧制作” skill. Upstream resources use normalized LF line endings and terminal newlines; the manifest records every bundled file's SHA-256. No runtime upstream download, automatic authorization, provider setup or Dashboard startup is performed.
|
|
8
|
+
|
|
9
|
+
## Director skill documentation bundles
|
|
10
|
+
|
|
11
|
+
- **director-skills** — https://github.com/0xhughs/director-skills, commit `35ca0a2b4cd55b0668aa9ea0f40273324b774bb4`, MIT, Copyright (c) 2026 0xhughs. Complete license: `resources/skills/director-skills/upstream/LICENSE`.
|
|
12
|
+
- **DirectorSKILL** — https://github.com/wuwangzhang1216/DirectorSKILL, commit `c65ae0d14457053efb1e354c7e7f7e120d97fad1`, MIT, Copyright (c) 2026 wangzhang-wu. Complete license: `resources/skills/cinematic-director/upstream/LICENSE`.
|
|
13
|
+
|
|
14
|
+
Both licenses ship with the npm package and installed skill resources. Upstream Markdown remains intact apart from normalized line endings; DSH integration uses separate Chinese entrypoints. See `docs/director-skills.md` for scope and provenance.
|
|
15
|
+
|
|
3
16
|
The pendant renderer bundles Three.js 0.185.1 (MIT) and Rapier 0.20.0 (Apache-2.0), and adapts the React Bits GlareHover gradient as an integrated pendant effect. Their licenses are reproduced below.
|
|
4
17
|
|
|
5
18
|
## React Bits — GlareHover reference
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# 附件交付副本
|
|
2
|
+
|
|
3
|
+
交付副本为不可变快照,用于历史下载、验收证据及渠道失败重试,并非原始工作文件。
|
|
4
|
+
全部伙伴共享额度(默认 512 MiB),在「设置 → 基本设置 → 附件存储」修改。
|
|
5
|
+
额度持久化,降低额度不自动删除数据;单文件上限仍为 64 MiB。
|
|
6
|
+
|
|
7
|
+
新版存储统一位于 `storage-v1/attachment-deliveries/`:根目录放 SQLite 索引,
|
|
8
|
+
`<伙伴编号>/<交付ID>` 保存副本。启动时将原根目录平铺文件校验后移动到伙伴子目录,
|
|
9
|
+
原 ID 和链接不变;中断可续接,冲突时保留源文件并停止迁移。
|
|
10
|
+
未进行目录版本迁移的安装仍使用原公共 `attachment-deliveries/`。
|
|
11
|
+
历史 `partners/<id>/.partner/deliveries/` 在启动时逐份复制、校验、提交后移除旧副本;
|
|
12
|
+
空旧数据库保留供迁移核查。重启可续接,交付 ID、重试路由及历史链接不变。
|
|
13
|
+
部署前应停止服务并备份公共数据及伙伴私有目录;回滚旧代码需同时还原附件存储。
|
|
14
|
+
|
|
15
|
+
清理只能在设置中明确选择并确认:保护待发送/失败重试、最近五分钟创建及活动任务/需求引用。
|
|
16
|
+
清理后原始文件不变,但对应历史下载链接失效,不能撤销(除非从管理员备份恢复)。
|
|
17
|
+
删除伙伴并选择删除其文件时,也清理该伙伴的公共交付副本。
|
|
18
|
+
不要直接批量删除目录中的文件,应通过设置保持文件与索引一致。
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# 内置影视创作技能
|
|
2
|
+
|
|
3
|
+
内置市场提供两个独立入口,需手动安装并在伙伴能力中授权,不自动启用。
|
|
4
|
+
|
|
5
|
+
| ID | 名称 | 用途 | 上游固定提交 |
|
|
6
|
+
| --- | --- | --- | --- |
|
|
7
|
+
| director-skills | 影视创作工作流 | 九模块的故事、剧本、分镜、视觉一致性、图像/视频提示词、模型适配与修订 | 0xhughs/director-skills @ 35ca0a2b4cd55b0668aa9ea0f40273324b774bb4 |
|
|
8
|
+
| cinematic-director | 导演与分镜设计 | 导演调度、关键帧、声音、剪辑与质量诊断,二十种导演方法参考 | wuwangzhang1216/DirectorSKILL @ c65ae0d14457053efb1e354c7e7f7e120d97fad1 |
|
|
9
|
+
|
|
10
|
+
## 加载与权限
|
|
11
|
+
|
|
12
|
+
中文 inline 入口保持精简,匹配任务后先读各自 `upstream/SKILL.md`,再按需读取所需参考和模板。不会将全部资料注入会话,也不会把九个子模块自动注册为工具或伙伴。两者同时启用时,前者负责阶段路由,后者仅细化相关导演环节。
|
|
13
|
+
|
|
14
|
+
资料需要已授权的文件读取工具;生成图像、视频、剪辑或文件交付需要对应工具或 MCP。技能不授予工具权限,不承诺资料中的模型能力仍然有效。多伙伴制作沿用需求/任务看板,外部长任务沿用一次性续接,不绕过授权、审批或预算。
|
|
15
|
+
|
|
16
|
+
## 分发与兼容
|
|
17
|
+
|
|
18
|
+
`resources/skills/<id>/upstream` 包含上游 Markdown 资料和 MIT LICENSE;仅统一为 LF 换行及末尾换行,不改写原文。CI 配置、运行脚本和非文档评测数据不随插件分发。
|
|
19
|
+
|
|
20
|
+
每个包的 `manifest.json` 保存来源、提交和逐文件 SHA-256;安装时校验并使用现有原子包安装器。安装无需 GitHub 连接;升级只跟随已审查的插件版本,不实时追踪上游。初始化检查已安装内置包的资源,缺失或过期时重装并保留伙伴绑定,不自动安装未选中的技能。
|
|
21
|
+
|
|
22
|
+
DirectorSKILL 上游使用多行描述和嵌套 YAML 元数据;本次不扩大通用解析器职责,使用兼容的薄入口,完整原文作为参考文件读取。入口版本与上游版本分别记录。
|
|
23
|
+
|
|
24
|
+
上游许可证分别位于两个资源包的 `upstream/LICENSE`,会一同写入已安装技能目录。影片、人物或素材权利不由这些 MIT 文档许可证授予。
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# 长任务一次性续接
|
|
2
|
+
|
|
3
|
+
## 看板等待协调
|
|
4
|
+
|
|
5
|
+
看板执行内的 `defer` 支持 `boardTaskId`,服务端还会按正在执行的委派及实际会话自动匹配唯一任务。
|
|
6
|
+
预约持久化时将该委派挂起,任务保留进行中,但调度信息显示“等待外部任务结果”和下次检查时间;不占用看板执行位、不触发恢复重试、不进入验收,也不触发需求阶段完成通知。
|
|
7
|
+
|
|
8
|
+
关联看板的唤醒只检查外部状态:pending 延期原预约,completed 唤醒原委派继续 nextStep,而不是定时会话再做一次 nextStep;真实交付仍须通过原看板验收流程。取消、删除、检查失败、权限撤回将任务置为受阻,不自动重新提交外部任务;暂停预约保留等待。修改工作版本、改派、删除任务会使旧预约及迟到回执失效。
|
|
9
|
+
|
|
10
|
+
绑定信息及工作版本随原状态持久化,重启不会把等待委派当作新工作派发。续接结果通知统一归需求处理,不逐条通知定时检查。普通未关联看板的续接保持原有行为。旧的一次性预约可以在同一会话、同一外部 ID、同一 taskKey 再次 defer 时安全关联当前执行任务;无法确认归属的旧周期计划不会按标题或文本猜测并自动迁移。
|
|
11
|
+
|
|
12
|
+
职责:`tasks/continuation` 维护绑定和跨域事务约束,`tasks/continuation-yield` 释放会话执行等待,调度服务只推进预约状态,看板继续持有交付和验收的责任。状态存储在持久化前统一检查约束,避免删除或编辑入口遗漏导致失效预约继续运行。
|
|
13
|
+
|
|
14
|
+
## 能力与技能
|
|
15
|
+
|
|
16
|
+
伙伴必须启用 `schedules`(定时任务)能力。工具注册、每次执行、服务层创建和调度执行均校验;停用后不会唤醒或发送后续通知。已运行的续接请求中断,外部已提交任务不会自动撤销。
|
|
17
|
+
|
|
18
|
+
内置市场提供可选的“长任务等待与续接”inline 技能。需要时安装并绑定,不自动启用。基础参数协议直接在工具和能力提示中提供,未启用 skills 或未绑定技能不影响基础调用。
|
|
19
|
+
|
|
20
|
+
## 工具协议
|
|
21
|
+
|
|
22
|
+
复用 `partner_schedule`:
|
|
23
|
+
|
|
24
|
+
- `defer`:必须传 `taskKey / externalTaskId / title / check / nextStep`,当前正式伙伴会话由服务端确认。可传 `delayMinutes`(1–1440,默认2)、`deadlineMinutes`(不早于首次预约,最多43200,默认1440)、`maxAttempts`(1–100,默认12)。同伙伴同 taskKey 幂等,终态不重置预算。
|
|
25
|
+
- `resolve`:当前唤醒轮次传 `scheduleId / runToken / outcome / summary`;`pending` 保存原条目延期,`completed` / `blocked` 停止执行。检查完成不等于外部任务完成。
|
|
26
|
+
- `cancel / delete`:停止续接,中断正在执行的轮次;不代表已取消外部任务。
|
|
27
|
+
- `list`:查看自己的计划、检查次数、截止时间及最近结果。已有 update 支持暂停等待中的续接,不能改成周期或绕过终态重新执行。
|
|
28
|
+
|
|
29
|
+
## 架构
|
|
30
|
+
|
|
31
|
+
- `scheduler/service` 保持统一入口和已有周期调度。
|
|
32
|
+
- `scheduler/continuations` 负责持久化续接状态、幂等、预算、轮次 token、撤权取消、执行记录和终态通知重试。
|
|
33
|
+
- `PartnerAgentRuntime.wakeSchedule` 复用原会话的工具与审批;空闲时 followup,运行时 steer 到下一处理点。`scheduler/wakeup` 只等待本计划持久化回执,不等待会话 idle 或 Goal 完成。超时暂停预约但不取消共享会话;原会话删除/归档不换会话。
|
|
34
|
+
- `ChannelManager.notifyContinuation` 只投递与续接消息精确关联的最终回答及附件,复用通知目标选择与分片收据。等待、完成、受阻和原始错误均不产生状态通知;最终回复单独持久化、失败重试,不重新执行生成任务。本地无通知目标时保留会话和计划记录。
|
|
35
|
+
- 内置技能只提供策略,不获得权限,不把所有工具加入白名单。
|
|
36
|
+
|
|
37
|
+
数据复用已有 `schedules` 和 `executionRuns` 持久化/分区存储,不创建散落文件、不更改旧数据布局。新增 `schedule.kind=once` 和可选 continuation 字段;正常周期计划不转换。
|
|
38
|
+
|
|
39
|
+
## 恢复与安全边界
|
|
40
|
+
|
|
41
|
+
恢复时在 system-prompt/assemble 检查伙伴装配版本,若本次新装配则重建这次快照,让首次请求就携带身份与工具;不能只在 agent/pre-step 注册,因为当前宿主在该事件前已经采集了工具。并发装配合并等待,失败阻止模型请求,重建保留宿主的工具过滤与权限。唤醒投递前检查最终可见的 partner_schedule 与 check 明确命名的 MCP 工具,缺失时记录受阻,不发出缺工具的唤醒。旧预约未填 completion 时只核实当前外部任务成功,不把旧 check 的整条后续流程当作完成条件。
|
|
42
|
+
|
|
43
|
+
等待中的计划重启后仍按时间执行;运行中断的计划以新 token 重新进入核验,先查询已有任务/已有产出,禁止再次提交。外部副作用无法在通用适配器层保证 exactly-once,技能明确要求幂等检查;执行异常或未提交 resolve 默认受阻,而非无条件自动重跑后续步骤。
|
|
44
|
+
|
|
45
|
+
检查采用原会话和工具审批,不能绕过未授权的 SSH/MCP/文件操作。计划字段不应写凭据或签名下载地址,只保存引用。相同伙伴同时投递一个续接,收到该预约结果即释放,不被整个对话阻塞。
|
|
46
|
+
|
|
47
|
+
可选 completion 明确本预约的完成条件(默认仅核实本外部任务成功且产出可回查,不复用旧 check 中混入的后续动作);一旦核实先 resolve completed,再做 nextStep。后续新长任务单独预约,与 Goal 无依赖。原会话可携带精确 externalTaskId 提前关闭 waiting 预约,不传 token;running 状态必须使用当前 token。pending 保存延期。timeoutMinutes 默认 10(1–120),超过后暂停并保留原因。过期唤醒在执行前必须 list 核对 token;不保证撤销已提交的外部副作用。
|
|
48
|
+
|
|
49
|
+
首次实现不解析任意用户文本自动撤销外部服务任务;伙伴收到用户取消指令应调用 cancel,管理台可直接删除预约。截止/次数是持久预算,不因重复 defer 或重启重置。
|
|
50
|
+
|
|
51
|
+
验证覆盖能力开关、幂等、迟到 token、取消/撤权、期限/次数、重启恢复、可选技能与通知抑制;浏览器用隔离 API fixture,不向用户渠道发送测试消息。
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# 2.5.0 · 长任务续接与看板等待协调
|
|
2
|
+
|
|
3
|
+
正式版。已验证 DSH **0.1.5-rc.1**,Node.js **^22.19.0 或 >=24.0.0**;保留已有 DSH 0.1.2-rc.1 兼容声明,该旧宿主不作为本次部署验证基线。
|
|
4
|
+
|
|
5
|
+
- 新增 `partner_schedule defer/resolve/cancel` 一次性长任务续接:保存外部任务身份、截止时间、次数预算及轮次 token,重启后核验已有任务,不重新提交外部工作。
|
|
6
|
+
- 看板续接支持 `boardTaskId`,按实际执行会话自动匹配唯一委派。等待释放执行位、保留独占资源,不反复派发、不提前送验收、不发送中间渠道通知。
|
|
7
|
+
- 定时检查只核验外部状态,pending 延期原预约,completed 由看板恢复原任务并继续后续步骤;不会两边同时执行 nextStep。
|
|
8
|
+
- 修改需求、改派或删除任务使旧预约失效;取消、删除预约或撤权安全阻塞等待任务,不自动重提交。普通独立预约保持原有行为。
|
|
9
|
+
- 恢复会话在模型请求装配前准备身份与工具,避免首次唤醒时工具缺失;缺少核验工具时明确记录受阻。
|
|
10
|
+
- 增加可选的“长任务等待与续接”内置技能和预约状态展示,不自动开启能力或扩大工具权限。
|
|
11
|
+
- 旧的一次性预约可在原会话、相同外部 ID 与 taskKey 下重新关联当前任务;不猜测迁移或删除旧周期计划,不自动取消外部服务任务。
|
|
12
|
+
|
|
13
|
+
验证:全量 573 项自动化测试通过,最终构建和 26 项续接定向测试通过。详见 [续接协议与恢复边界](../long-task-continuation.md)。
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# 2.6.0 · 导演技能与长任务最终交付
|
|
2
|
+
|
|
3
|
+
正式版。验证宿主 DSH **0.1.5-rc.1**;Node.js **^22.19.0 或 >=24.0.0**。保留 DSH 0.1.2-rc.1 兼容声明,旧宿主未作为本次部署验证基线。
|
|
4
|
+
|
|
5
|
+
- 内置可选“影视创作工作流”和“导演与分镜设计”,固定上游提交、保留 MIT 许可,资源离线打包并校验,不自动安装或授权。
|
|
6
|
+
- 独立长任务只投递最终回复和附件,不发送预约完成、受阻等内部状态;最终回复独立持久化重试,不重新提交外部生成任务。
|
|
7
|
+
- 新预约记录原渠道和联系人,续接附件与最终回答回原渠道;目标失效不切换到最近联系人。来源不明的旧预约不猜测发送。
|
|
8
|
+
- 独立受阻预约允许原会话凭准确外部 ID 补交完成证据;过期轮次、跨会话与看板任务仍受状态检查保护。
|
|
9
|
+
- 修正持续关注已解决项删除按钮布局;“归档关注”改为“已停止关注”,空记录不显示入口,保留历史清理能力。
|
|
10
|
+
|
|
11
|
+
验证:构建及 590 项自动化测试通过;渠道来源修复已通过本地构建部署与健康检查。新版技能说明同步明确“只投递最终消息”。
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# 2.7.0 · 适配 DSH 0.1.7-rc.2
|
|
2
|
+
|
|
3
|
+
插件正式版(非 prerelease),已验证宿主:**DSH 0.1.7-rc.2**。宿主本身仍是 RC,不代表已验证所有未来版本。Node.js:**^22.19.0 或 >=24.0.0**。
|
|
4
|
+
|
|
5
|
+
## 更新
|
|
6
|
+
|
|
7
|
+
适配 Preset Registry、producer-owned 消息来源、会话导航、目标通知和下一轮能力注册;保留看板交付、微信重连及内置漫剧技能。附件副本统一存放到公共 attachment-deliveries/<伙伴编号>/,支持共享额度、筛选清理、保护活动任务引用、可续接校验迁移;紧凑设置及统一清理弹窗。
|
|
8
|
+
|
|
9
|
+
## 升级与回退
|
|
10
|
+
|
|
11
|
+
- 本版面向 DSH 0.1.7-rc.2,不应直接安装到 DSH 0.1.5 或更早宿主。
|
|
12
|
+
- 升级前源码快照:`pre-dsh-0.1.7-rc.2`(提交 ab7301e,插件源码版本 2.6.0)。历史正式标签保留,不移动或覆盖。
|
|
13
|
+
- 旧版 npm 安装参考:`npm install @lemoncat7/dsh-partner@2.5.0`;升级宿主前先备份配置、数据库及工作目录。
|
|
14
|
+
- 新版安装:`npm install @lemoncat7/dsh-partner@2.7.0`。
|
|
15
|
+
- 附件目录会迁移,ID 与历史链接保持不变。回退旧代码须恢复配套存储备份并妥善保留升级后的新数据;不能只降级插件包。
|
|
16
|
+
|
|
17
|
+
## 验证边界
|
|
18
|
+
|
|
19
|
+
本地构建和自动化测试通过;DSH 0.1.7-rc.2 隔离容器已验证插件启动、适用的设置页面和接口。正式容器已经部署对应兼容代码并完成页面/API 冒烟检查。
|
|
20
|
+
|
|
21
|
+
未穷举 Windows/macOS 桌面桥、真实远端 SSH/FTP、所有渠道端到端附件投递及付费模型提供方。没有把本次验证扩大为对所有外部服务的保证。
|
package/lib/agent-runtime.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import type { ScheduledPartnerTask } from './scheduler/domain.js';
|
|
1
2
|
import type { Context } from '@deepseek-ai/cordis';
|
|
2
3
|
import type { Agent } from '@deepseek-ai/dsh-agent';
|
|
3
4
|
import type { AgentDefaultModelConfig } from '@deepseek-ai/dsh-agent-default-model';
|
|
4
|
-
import type { AgentPresets } from '@deepseek-ai/dsh-agent-
|
|
5
|
+
import type { AgentPresetRegistry as AgentPresets } from '@deepseek-ai/dsh-agent-preset-registry';
|
|
5
6
|
import type { SessionId } from '@deepseek-ai/dsh-session';
|
|
6
7
|
import type { Session, SessionEvent } from '@deepseek-ai/dsh-session';
|
|
7
8
|
import type { WorkspaceRegistry } from '@deepseek-ai/dsh-workspace';
|
|
@@ -82,6 +83,8 @@ export declare class PartnerAgentRuntime {
|
|
|
82
83
|
private readonly restoredCompositionJobs;
|
|
83
84
|
private readonly disposeAgentListener;
|
|
84
85
|
private readonly disposeConfigurationListener;
|
|
86
|
+
private readonly disposeAssemblyListener;
|
|
87
|
+
private readonly rebuildingAssemblies;
|
|
85
88
|
private readonly configurations;
|
|
86
89
|
private readonly preparedTurns;
|
|
87
90
|
private readonly observationJobs;
|
|
@@ -98,6 +101,7 @@ export declare class PartnerAgentRuntime {
|
|
|
98
101
|
ensureLocalSessionRecord(companionId: string): Promise<ChannelSession>;
|
|
99
102
|
createLocalSession(companionId: string): Promise<ChannelSession>;
|
|
100
103
|
notifyTaskProgress(task: BoardTask, previousStatus: BoardTask['status']): Promise<void>;
|
|
104
|
+
wakeSchedule(entry: ScheduledPartnerTask, signal: AbortSignal): Promise<void>;
|
|
101
105
|
executeTask(input: {
|
|
102
106
|
sourceId: string;
|
|
103
107
|
companion: Companion;
|
|
@@ -128,6 +132,8 @@ export declare class PartnerAgentRuntime {
|
|
|
128
132
|
observeSessionEvent(session: Session, event: SessionEvent): Promise<void>;
|
|
129
133
|
private processSessionEvent;
|
|
130
134
|
recordConcernCreatedNotice(companion: Companion, scopeId: string, concerns: PartnerConcern[]): Promise<boolean>;
|
|
135
|
+
/** Append a visible receipt without starting another agent turn; its receipt survives restarts. */
|
|
136
|
+
recordRequirementResult(route: ChannelSession, receipt: string, text: string, files: import('./attachments/service.js').AttachmentDelivery[], service: import('./attachments/service.js').AttachmentDeliveryService, prefix: string): Promise<void>;
|
|
131
137
|
private driveScopedHeartbeat;
|
|
132
138
|
recordHeartbeatActivity(companion: Companion, route: ChannelSession, execution: HeartbeatExecution, outcome: HeartbeatOutcome, deliveryError?: string): Promise<void>;
|
|
133
139
|
resetCompanion(companionId: string): Promise<void>;
|
|
@@ -138,6 +144,8 @@ export declare class PartnerAgentRuntime {
|
|
|
138
144
|
reloadCompanion(companionId: string): Promise<void>;
|
|
139
145
|
/** Awaited by the host before prompt/tool assembly, never from a running tool. */
|
|
140
146
|
prepareAgentTurn(agent: Agent, turn: number, signal: AbortSignal): Promise<void>;
|
|
147
|
+
/** Also used by assembly: never return a model-facing snapshot before setup. */
|
|
148
|
+
prepareAgentAssembly(agent: Agent, signal: AbortSignal): Promise<boolean>;
|
|
141
149
|
isCompanionBusy(companionId: string): boolean;
|
|
142
150
|
private releaseCompanion;
|
|
143
151
|
resetChannel(channelId: string): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-runtime.d.ts","sourceRoot":"","sources":["../src/agent-runtime.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"agent-runtime.d.ts","sourceRoot":"","sources":["../src/agent-runtime.ts"],"names":[],"mappings":"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"}
|
package/lib/agent-runtime.js
CHANGED
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
import { createHash, randomUUID } from 'node:crypto';
|
|
2
|
+
import { isPluginSource } from './message-source.js';
|
|
3
|
+
import { deliverScheduledWake } from './scheduler/wakeup.js';
|
|
4
|
+
import { continuationPrompt } from './scheduler/continuations.js';
|
|
5
|
+
import { assertWakeTools } from './scheduler/wakeup-context.js';
|
|
6
|
+
import { assembleContextFor } from '@deepseek-ai/dsh-agent';
|
|
2
7
|
import { conversationMemoryScope } from './memory-scope.js';
|
|
3
8
|
import { mkdir, realpath, stat, writeFile } from 'node:fs/promises';
|
|
4
9
|
import { isAbsolute, join, relative, resolve, sep } from 'node:path';
|
|
@@ -14,6 +19,7 @@ import { PARTNER_MEDIA_MAX_BYTES, safeMediaName } from './channel-message.js';
|
|
|
14
19
|
import { listConcernFileSources } from './concern-sources.js';
|
|
15
20
|
import { CONCERN_CREATED_NOTICE, renderConcernCreatedNotice } from './concern-notification.js';
|
|
16
21
|
import { executeObservationLoop } from './observation-loop.js';
|
|
22
|
+
import { waitForBoardTurn } from './tasks/continuation-yield.js';
|
|
17
23
|
import { assistantTextAfter, renderPartnerPersona, renderToolProtocol, resolvePartnerAgentOptions as resolveAgentOptions } from './execution/agent-support.js';
|
|
18
24
|
import { channelReplyPartsAfter, isInternalTaskNotice } from './channels/delivery-policy.js';
|
|
19
25
|
import { prepareChannelReply } from './channels/outbound-media.js';
|
|
@@ -52,6 +58,8 @@ export class PartnerAgentRuntime {
|
|
|
52
58
|
restoredCompositionJobs = new Map();
|
|
53
59
|
disposeAgentListener;
|
|
54
60
|
disposeConfigurationListener;
|
|
61
|
+
disposeAssemblyListener;
|
|
62
|
+
rebuildingAssemblies = new WeakSet();
|
|
55
63
|
configurations;
|
|
56
64
|
preparedTurns = new WeakMap();
|
|
57
65
|
observationJobs = new Map();
|
|
@@ -68,6 +76,24 @@ export class PartnerAgentRuntime {
|
|
|
68
76
|
this.concerns = concerns;
|
|
69
77
|
this.composer = composer;
|
|
70
78
|
this.configurations = new SessionConfigurationIndex(store);
|
|
79
|
+
// Current hosts snapshot providers BEFORE agent/pre-step. Rebuild the first
|
|
80
|
+
// assembly after installing scoped contributions; returning the old snapshot
|
|
81
|
+
// would still omit tools for one request even though registration succeeded.
|
|
82
|
+
this.disposeAssemblyListener = typeof this.ctx.on === 'function'
|
|
83
|
+
? this.ctx.on('system-prompt/assemble', async (_assembly, context, next) => {
|
|
84
|
+
if (!context.agent || !context.signal || this.rebuildingAssemblies.has(context))
|
|
85
|
+
return next();
|
|
86
|
+
const changed = await this.prepareAgentAssembly(context.agent, context.signal);
|
|
87
|
+
if (!changed)
|
|
88
|
+
return next();
|
|
89
|
+
this.rebuildingAssemblies.add(context);
|
|
90
|
+
try {
|
|
91
|
+
return await this.ctx.systemPrompt.assemble(context);
|
|
92
|
+
}
|
|
93
|
+
finally {
|
|
94
|
+
this.rebuildingAssemblies.delete(context);
|
|
95
|
+
}
|
|
96
|
+
}) : () => { };
|
|
71
97
|
this.disposeConfigurationListener = typeof this.ctx.on === 'function'
|
|
72
98
|
? this.ctx.on('agent/pre-step', async ({ agent, turn, signal }, next) => {
|
|
73
99
|
await this.prepareAgentTurn(agent, turn, signal);
|
|
@@ -133,13 +159,13 @@ export class PartnerAgentRuntime {
|
|
|
133
159
|
if (recalled.length > 0 || context?.scenes?.length || context?.history?.length)
|
|
134
160
|
agent.inject(createUserMessage({
|
|
135
161
|
content: [{ type: 'text', text: renderMemory(recalled, context?.connections, context?.scenes, context?.history) }],
|
|
136
|
-
source: { kind: 'plugin', plugin: '@lemoncat7/dsh-partner', form: 'notice', summary: '伙伴为插话召回了相关长期记忆' },
|
|
162
|
+
source: { kind: 'plugin:@lemoncat7/dsh-partner', plugin: '@lemoncat7/dsh-partner', form: 'notice', summary: '伙伴为插话召回了相关长期记忆' },
|
|
137
163
|
}));
|
|
138
164
|
const deferred = await this.concerns?.deferred(companion.id, memoryScope(channelId, userId), inbound.query, 2).catch(() => []);
|
|
139
165
|
if (deferred && deferred.length > 0) {
|
|
140
166
|
agent.inject(createUserMessage({
|
|
141
167
|
content: [{ type: 'text', text: renderDeferredMentions(deferred) }],
|
|
142
|
-
source: { kind: 'plugin', plugin: '@lemoncat7/dsh-partner', form: 'notice', summary: '伙伴想起了与当前消息相关的挂念' },
|
|
168
|
+
source: { kind: 'plugin:@lemoncat7/dsh-partner', plugin: '@lemoncat7/dsh-partner', form: 'notice', summary: '伙伴想起了与当前消息相关的挂念' },
|
|
143
169
|
}));
|
|
144
170
|
await this.concerns?.markMentioned(companion.id, deferred.map(item => item.id)).catch(() => { });
|
|
145
171
|
}
|
|
@@ -253,9 +279,39 @@ export class PartnerAgentRuntime {
|
|
|
253
279
|
task.reviewSummary ? `验收:\n${task.reviewSummary.slice(0, 2000)}` : '',
|
|
254
280
|
downstream.length > 0 ? `后续任务:\n${downstream.map(item => `- ${item.title}(${item.status})`).join('\n')}` : '没有依赖此任务的后续任务。',
|
|
255
281
|
].filter(Boolean).join('\n\n') }],
|
|
256
|
-
source: { kind: 'plugin', plugin: '@lemoncat7/dsh-partner', form: 'notice', summary: taskProgressNoticeSummary(task.status) },
|
|
282
|
+
source: { kind: 'plugin:@lemoncat7/dsh-partner', plugin: '@lemoncat7/dsh-partner', form: 'notice', summary: taskProgressNoticeSummary(task.status) },
|
|
257
283
|
}));
|
|
258
284
|
}
|
|
285
|
+
async wakeSchedule(entry, signal) {
|
|
286
|
+
signal.throwIfAborted();
|
|
287
|
+
const wake = entry.continuation;
|
|
288
|
+
const state = this.store.snapshot();
|
|
289
|
+
const companion = state.companions.find(c => c.id === entry.companionId);
|
|
290
|
+
const route = state.sessions.find(s => s.companionId === entry.companionId && s.sessionId === wake.originSessionId);
|
|
291
|
+
if (!companion || !route || this.isArchived(route))
|
|
292
|
+
throw new Error('原续接会话不存在或已归档');
|
|
293
|
+
const agent = await this.ensureAgent(companion, route);
|
|
294
|
+
if (!this.store.snapshot().sessions.some(s => s.id === route.id && s.sessionId === wake.originSessionId) || this.isArchived(route))
|
|
295
|
+
throw new Error('原续接会话已变更');
|
|
296
|
+
const assembly = await agent.ctx.systemPrompt.assemble(assembleContextFor(agent, signal));
|
|
297
|
+
signal.throwIfAborted();
|
|
298
|
+
assertWakeTools(entry, assembly.tools.map(tool => tool.name));
|
|
299
|
+
const message = createUserMessage({ content: [{ type: 'text', text: continuationPrompt(entry) }],
|
|
300
|
+
source: { kind: 'plugin:@lemoncat7/dsh-partner', plugin: '@lemoncat7/dsh-partner', form: 'notice', summary: '伙伴长任务续接' } });
|
|
301
|
+
await this.store.update(state => {
|
|
302
|
+
const current = state.schedules.find(s => s.id === entry.id)?.continuation;
|
|
303
|
+
if (current && current.runToken === wake.runToken)
|
|
304
|
+
current.messageId = message.id;
|
|
305
|
+
});
|
|
306
|
+
await deliverScheduledWake({ store: this.store, id: entry.id, token: wake.runToken, signal,
|
|
307
|
+
timeoutMs: entry.timeoutMinutes * 60_000,
|
|
308
|
+
deliver: () => {
|
|
309
|
+
if (agent.status === 'idle')
|
|
310
|
+
agent.followup(message);
|
|
311
|
+
else
|
|
312
|
+
agent.steer(message);
|
|
313
|
+
}, });
|
|
314
|
+
}
|
|
259
315
|
async executeTask(input) {
|
|
260
316
|
input.signal?.throwIfAborted();
|
|
261
317
|
const route = await this.createLocalSession(input.companion.id);
|
|
@@ -269,9 +325,15 @@ export class PartnerAgentRuntime {
|
|
|
269
325
|
await agent.whenIdle();
|
|
270
326
|
input.signal?.throwIfAborted();
|
|
271
327
|
const startSeq = agent.session.seq;
|
|
328
|
+
await this.store.update(state => {
|
|
329
|
+
const delegation = state.delegations.find(d => d.id === input.sourceId && d.status === 'running');
|
|
330
|
+
if (delegation)
|
|
331
|
+
delegation.executionSessionId = route.sessionId;
|
|
332
|
+
});
|
|
333
|
+
input.signal?.throwIfAborted();
|
|
272
334
|
agent.followup(createUserMessage({
|
|
273
335
|
content: [{ type: 'text', text: input.prompt }],
|
|
274
|
-
source: { kind: 'plugin', plugin: '@lemoncat7/dsh-partner', form: 'notice', summary: input.sourceId.startsWith('requirement:') ? '伙伴汇总需求' : input.sourceId.startsWith('review:') ? '伙伴核验看板任务' : '伙伴执行看板任务' },
|
|
336
|
+
source: { kind: 'plugin:@lemoncat7/dsh-partner', plugin: '@lemoncat7/dsh-partner', form: 'notice', summary: input.sourceId.startsWith('requirement:') ? '伙伴汇总需求' : input.sourceId.startsWith('review:') ? '伙伴核验看板任务' : '伙伴执行看板任务' },
|
|
275
337
|
}));
|
|
276
338
|
let timedOut = false;
|
|
277
339
|
const timer = setTimeout(() => {
|
|
@@ -283,14 +345,17 @@ export class PartnerAgentRuntime {
|
|
|
283
345
|
input.signal?.addEventListener('abort', cancel, { once: true });
|
|
284
346
|
if (input.signal?.aborted)
|
|
285
347
|
cancel();
|
|
348
|
+
let deferred = false;
|
|
286
349
|
try {
|
|
287
|
-
await agent.whenIdle();
|
|
350
|
+
deferred = await waitForBoardTurn(this.store, input.sourceId, agent.whenIdle(), input.signal);
|
|
288
351
|
input.signal?.throwIfAborted();
|
|
289
352
|
}
|
|
290
353
|
finally {
|
|
291
354
|
clearTimeout(timer);
|
|
292
355
|
input.signal?.removeEventListener('abort', cancel);
|
|
293
356
|
}
|
|
357
|
+
if (deferred)
|
|
358
|
+
return;
|
|
294
359
|
if (timedOut)
|
|
295
360
|
throw new Error('伙伴看板任务执行超时');
|
|
296
361
|
output = assistantTextAfter(agent, startSeq).trim();
|
|
@@ -474,10 +539,28 @@ export class PartnerAgentRuntime {
|
|
|
474
539
|
await conversation.whenIdle();
|
|
475
540
|
conversation.session.append('user/message', createUserMessage({
|
|
476
541
|
content: [{ type: 'text', text: renderConcernCreatedNotice(concerns) }],
|
|
477
|
-
source: { kind: 'plugin', plugin: '@lemoncat7/dsh-partner', form: 'notice', summary: CONCERN_CREATED_NOTICE },
|
|
542
|
+
source: { kind: 'plugin:@lemoncat7/dsh-partner', plugin: '@lemoncat7/dsh-partner', form: 'notice', summary: CONCERN_CREATED_NOTICE },
|
|
478
543
|
}), { surfaceOp: 'append' });
|
|
479
544
|
return true;
|
|
480
545
|
}
|
|
546
|
+
/** Append a visible receipt without starting another agent turn; its receipt survives restarts. */
|
|
547
|
+
async recordRequirementResult(route, receipt, text, files, service, prefix) {
|
|
548
|
+
const companion = this.store.snapshot().companions.find(c => c.id === route.companionId);
|
|
549
|
+
if (!companion || this.isArchived(route))
|
|
550
|
+
throw new Error('原需求会话不存在或已归档,保留交付等待重试');
|
|
551
|
+
const agent = await this.ensureAgent(companion, route);
|
|
552
|
+
const id = `requirement-delivery-${createHash('sha256').update(receipt).digest('hex')}`;
|
|
553
|
+
if (agent.session.snapshotEvents().some(e => e.type === 'user/message' && isPluginSource(e.data.source, '@lemoncat7/dsh-partner') && 'requirementDeliveryReceipt' in e.data && e.data.requirementDeliveryReceipt === id))
|
|
554
|
+
return;
|
|
555
|
+
const content = [{ type: 'text', text }];
|
|
556
|
+
for (const file of files) {
|
|
557
|
+
const name = file.name.replace(/[\[\]\\]/g, '_');
|
|
558
|
+
content.push({ type: 'text', text: `[下载附件:${name}](${prefix.replace(/\/$/, '')}/attachments/${file.id})` });
|
|
559
|
+
if (file.kind === 'image')
|
|
560
|
+
content.push({ type: 'image', attachment: await this.ctx.attachments.saveImage({ data: await service.bytes(file), mediaType: file.mediaType, name: file.name }) });
|
|
561
|
+
}
|
|
562
|
+
agent.session.append('user/message', createUserMessage({ requirementDeliveryReceipt: id, content, source: { kind: 'plugin:@lemoncat7/dsh-partner', plugin: '@lemoncat7/dsh-partner', form: 'notice', summary: '需求成果交付' } }), { surfaceOp: 'append' });
|
|
563
|
+
}
|
|
481
564
|
async driveScopedHeartbeat(conversation, companion, concerns) {
|
|
482
565
|
const access = await resolveHeartbeatFileAccess(conversation.session.header.cwd, concerns);
|
|
483
566
|
return executeObservationLoop({ ctx: this.ctx, conversation, companion, concerns, guard: (name, args) => heartbeatToolDenial(name, args, access), parse: parseConcernObservations, checkpoint: async (item, snapshot) => { if (!this.concerns)
|
|
@@ -490,7 +573,7 @@ export class PartnerAgentRuntime {
|
|
|
490
573
|
conversation.session.append('user/message', createUserMessage({
|
|
491
574
|
content: [{ type: 'text', text: renderHeartbeatActivity(execution, outcome, deliveryError) }],
|
|
492
575
|
source: {
|
|
493
|
-
kind: 'plugin',
|
|
576
|
+
kind: 'plugin:@lemoncat7/dsh-partner',
|
|
494
577
|
plugin: '@lemoncat7/dsh-partner',
|
|
495
578
|
form: 'notice',
|
|
496
579
|
summary: '伙伴正在进行低打扰心跳检查',
|
|
@@ -534,19 +617,34 @@ export class PartnerAgentRuntime {
|
|
|
534
617
|
throw new Error('伙伴运行时已关闭');
|
|
535
618
|
if (this.preparedTurns.get(agent) === turn)
|
|
536
619
|
return;
|
|
620
|
+
await this.prepareAgentAssembly(agent, signal);
|
|
621
|
+
this.preparedTurns.set(agent, turn);
|
|
622
|
+
}
|
|
623
|
+
/** Also used by assembly: never return a model-facing snapshot before setup. */
|
|
624
|
+
async prepareAgentAssembly(agent, signal) {
|
|
625
|
+
if (this.closed)
|
|
626
|
+
throw new Error('伙伴运行时已关闭');
|
|
627
|
+
const pending = this.restoredCompositionJobs.get(agent.session.id);
|
|
628
|
+
if (pending) {
|
|
629
|
+
await pending;
|
|
630
|
+
signal.throwIfAborted();
|
|
631
|
+
return true;
|
|
632
|
+
}
|
|
537
633
|
const configuration = this.configurations.forSession(agent.session.id);
|
|
538
634
|
if (!configuration)
|
|
539
|
-
return;
|
|
635
|
+
return false;
|
|
540
636
|
if (this.store.isCompanionRemoving(configuration.companion.id))
|
|
541
637
|
throw new Error('伙伴正在删除,不能启动新轮次');
|
|
542
638
|
signal.throwIfAborted();
|
|
543
639
|
const installed = this.restoredCompositions.get(agent.session.id);
|
|
544
640
|
if (installed?.agent !== agent || installed.revision !== configuration.revision) {
|
|
545
|
-
const
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
641
|
+
const job = (async () => {
|
|
642
|
+
const profile = await this.memory?.profileSnapshot(configuration.companion.id, conversationMemoryScope(configuration.route, this.store.snapshot().sessions)).catch(() => undefined);
|
|
643
|
+
signal.throwIfAborted();
|
|
644
|
+
if (this.closed)
|
|
645
|
+
throw new Error('伙伴运行时已关闭');
|
|
646
|
+
await this.composeRestoredAgent(agent, configuration.companion, configuration.route, configuration.revision, profile, signal);
|
|
647
|
+
})();
|
|
550
648
|
this.restoredCompositionJobs.set(agent.session.id, job);
|
|
551
649
|
try {
|
|
552
650
|
await job;
|
|
@@ -555,8 +653,9 @@ export class PartnerAgentRuntime {
|
|
|
555
653
|
if (this.restoredCompositionJobs.get(agent.session.id) === job)
|
|
556
654
|
this.restoredCompositionJobs.delete(agent.session.id);
|
|
557
655
|
}
|
|
656
|
+
return true;
|
|
558
657
|
}
|
|
559
|
-
|
|
658
|
+
return false;
|
|
560
659
|
}
|
|
561
660
|
isCompanionBusy(companionId) {
|
|
562
661
|
return this.reflection?.isRunning(companionId) === true || this.observationJobs.has(companionId) || this.agentSetupJobs.has(companionId) || this.store.snapshot().sessions.some(route => route.companionId === companionId
|
|
@@ -588,6 +687,7 @@ export class PartnerAgentRuntime {
|
|
|
588
687
|
async close() {
|
|
589
688
|
this.closed = true;
|
|
590
689
|
this.disposeConfigurationListener();
|
|
690
|
+
this.disposeAssemblyListener();
|
|
591
691
|
this.disposeAgentListener();
|
|
592
692
|
this.configurations.close();
|
|
593
693
|
await Promise.allSettled(this.restoredCompositionJobs.values());
|
|
@@ -624,13 +724,13 @@ export class PartnerAgentRuntime {
|
|
|
624
724
|
if (recalled.length > 0 || context?.scenes?.length || context?.history?.length)
|
|
625
725
|
agent.inject(createUserMessage({
|
|
626
726
|
content: [{ type: 'text', text: renderMemory(recalled, context?.connections, context?.scenes, context?.history) }],
|
|
627
|
-
source: { kind: 'plugin', plugin: '@lemoncat7/dsh-partner', form: 'notice', summary: '伙伴回忆了与当前消息相关的长期记忆' },
|
|
727
|
+
source: { kind: 'plugin:@lemoncat7/dsh-partner', plugin: '@lemoncat7/dsh-partner', form: 'notice', summary: '伙伴回忆了与当前消息相关的长期记忆' },
|
|
628
728
|
}));
|
|
629
729
|
const deferred = await this.concerns?.deferred(companion.id, memoryScope(channelId, userId), inbound.query, 2).catch(() => []);
|
|
630
730
|
if (deferred && deferred.length > 0)
|
|
631
731
|
agent.inject(createUserMessage({
|
|
632
732
|
content: [{ type: 'text', text: renderDeferredMentions(deferred) }],
|
|
633
|
-
source: { kind: 'plugin', plugin: '@lemoncat7/dsh-partner', form: 'notice', summary: '伙伴想起了与当前消息相关的挂念' },
|
|
733
|
+
source: { kind: 'plugin:@lemoncat7/dsh-partner', plugin: '@lemoncat7/dsh-partner', form: 'notice', summary: '伙伴想起了与当前消息相关的挂念' },
|
|
634
734
|
}));
|
|
635
735
|
const startSeq = agent.session.seq;
|
|
636
736
|
let directProgress = false;
|
|
@@ -857,7 +957,7 @@ export class PartnerAgentRuntime {
|
|
|
857
957
|
return;
|
|
858
958
|
agent.inject(createUserMessage({
|
|
859
959
|
content: [{ type: 'text', text: renderProfile(profile, previous !== undefined) }],
|
|
860
|
-
source: { kind: 'plugin', plugin: '@lemoncat7/dsh-partner', form: 'notice', summary: previous === undefined ? '伙伴载入了联系人画像' : '伙伴的人物画像已更新' },
|
|
960
|
+
source: { kind: 'plugin:@lemoncat7/dsh-partner', plugin: '@lemoncat7/dsh-partner', form: 'notice', summary: previous === undefined ? '伙伴载入了联系人画像' : '伙伴的人物画像已更新' },
|
|
861
961
|
}));
|
|
862
962
|
}
|
|
863
963
|
async attachSession(companion, route) {
|