@actalk/inkos-core 1.3.6 → 1.3.7
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/dist/agent/agent-session.d.ts +7 -7
- package/dist/agent/agent-session.d.ts.map +1 -1
- package/dist/agent/agent-session.js +392 -63
- package/dist/agent/agent-session.js.map +1 -1
- package/dist/agent/agent-system-prompt.d.ts.map +1 -1
- package/dist/agent/agent-system-prompt.js +20 -16
- package/dist/agent/agent-system-prompt.js.map +1 -1
- package/dist/agent/agent-tools.d.ts +4 -1
- package/dist/agent/agent-tools.d.ts.map +1 -1
- package/dist/agent/agent-tools.js +81 -64
- package/dist/agent/agent-tools.js.map +1 -1
- package/dist/agents/architect.d.ts +18 -20
- package/dist/agents/architect.d.ts.map +1 -1
- package/dist/agents/architect.js +513 -632
- package/dist/agents/architect.js.map +1 -1
- package/dist/agents/chapter-analyzer.d.ts.map +1 -1
- package/dist/agents/chapter-analyzer.js +10 -6
- package/dist/agents/chapter-analyzer.js.map +1 -1
- package/dist/agents/composer.d.ts +1 -13
- package/dist/agents/composer.d.ts.map +1 -1
- package/dist/agents/composer.js +297 -290
- package/dist/agents/composer.js.map +1 -1
- package/dist/agents/consolidator.d.ts +17 -1
- package/dist/agents/consolidator.d.ts.map +1 -1
- package/dist/agents/consolidator.js +44 -6
- package/dist/agents/consolidator.js.map +1 -1
- package/dist/agents/continuity.d.ts +4 -1
- package/dist/agents/continuity.d.ts.map +1 -1
- package/dist/agents/continuity.js +111 -21
- package/dist/agents/continuity.js.map +1 -1
- package/dist/agents/length-normalizer.d.ts.map +1 -1
- package/dist/agents/length-normalizer.js +1 -4
- package/dist/agents/length-normalizer.js.map +1 -1
- package/dist/agents/planner-context.d.ts +54 -0
- package/dist/agents/planner-context.d.ts.map +1 -0
- package/dist/agents/planner-context.js +245 -0
- package/dist/agents/planner-context.js.map +1 -0
- package/dist/agents/planner-prompts.d.ts +36 -0
- package/dist/agents/planner-prompts.d.ts.map +1 -0
- package/dist/agents/planner-prompts.js +350 -0
- package/dist/agents/planner-prompts.js.map +1 -0
- package/dist/agents/planner.d.ts +39 -11
- package/dist/agents/planner.d.ts.map +1 -1
- package/dist/agents/planner.js +212 -195
- package/dist/agents/planner.js.map +1 -1
- package/dist/agents/polisher.d.ts +33 -0
- package/dist/agents/polisher.d.ts.map +1 -0
- package/dist/agents/polisher.js +122 -0
- package/dist/agents/polisher.js.map +1 -0
- package/dist/agents/post-write-validator.d.ts +1 -0
- package/dist/agents/post-write-validator.d.ts.map +1 -1
- package/dist/agents/post-write-validator.js +13 -0
- package/dist/agents/post-write-validator.js.map +1 -1
- package/dist/agents/reviser.d.ts +6 -2
- package/dist/agents/reviser.d.ts.map +1 -1
- package/dist/agents/reviser.js +379 -98
- package/dist/agents/reviser.js.map +1 -1
- package/dist/agents/rules-reader.d.ts +15 -2
- package/dist/agents/rules-reader.d.ts.map +1 -1
- package/dist/agents/rules-reader.js +49 -6
- package/dist/agents/rules-reader.js.map +1 -1
- package/dist/agents/state-validator.d.ts +9 -1
- package/dist/agents/state-validator.d.ts.map +1 -1
- package/dist/agents/state-validator.js +37 -1
- package/dist/agents/state-validator.js.map +1 -1
- package/dist/agents/writer-prompts.d.ts +1 -0
- package/dist/agents/writer-prompts.d.ts.map +1 -1
- package/dist/agents/writer-prompts.js +272 -29
- package/dist/agents/writer-prompts.js.map +1 -1
- package/dist/agents/writer.d.ts +12 -3
- package/dist/agents/writer.d.ts.map +1 -1
- package/dist/agents/writer.js +77 -107
- package/dist/agents/writer.js.map +1 -1
- package/dist/index.d.ts +20 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +19 -5
- package/dist/index.js.map +1 -1
- package/dist/interaction/book-session-store.d.ts.map +1 -1
- package/dist/interaction/book-session-store.js +84 -69
- package/dist/interaction/book-session-store.js.map +1 -1
- package/dist/interaction/events.d.ts +2 -2
- package/dist/interaction/project-tools.d.ts +1 -0
- package/dist/interaction/project-tools.d.ts.map +1 -1
- package/dist/interaction/project-tools.js +51 -3
- package/dist/interaction/project-tools.js.map +1 -1
- package/dist/interaction/session-transcript-legacy.d.ts +4 -0
- package/dist/interaction/session-transcript-legacy.d.ts.map +1 -0
- package/dist/interaction/session-transcript-legacy.js +100 -0
- package/dist/interaction/session-transcript-legacy.js.map +1 -0
- package/dist/interaction/session-transcript-restore.d.ts +17 -0
- package/dist/interaction/session-transcript-restore.d.ts.map +1 -0
- package/dist/interaction/session-transcript-restore.js +493 -0
- package/dist/interaction/session-transcript-restore.js.map +1 -0
- package/dist/interaction/session-transcript-schema.d.ts +402 -0
- package/dist/interaction/session-transcript-schema.d.ts.map +1 -0
- package/dist/interaction/session-transcript-schema.js +59 -0
- package/dist/interaction/session-transcript-schema.js.map +1 -0
- package/dist/interaction/session-transcript.d.ts +14 -0
- package/dist/interaction/session-transcript.d.ts.map +1 -0
- package/dist/interaction/session-transcript.js +152 -0
- package/dist/interaction/session-transcript.js.map +1 -0
- package/dist/interaction/session.d.ts +10 -10
- package/dist/interaction/session.d.ts.map +1 -1
- package/dist/interaction/session.js +5 -3
- package/dist/interaction/session.js.map +1 -1
- package/dist/llm/provider.d.ts +6 -9
- package/dist/llm/provider.d.ts.map +1 -1
- package/dist/llm/provider.js +255 -63
- package/dist/llm/provider.js.map +1 -1
- package/dist/llm/providers/endpoints/ai360.d.ts +10 -0
- package/dist/llm/providers/endpoints/ai360.d.ts.map +1 -0
- package/dist/llm/providers/endpoints/ai360.js +34 -0
- package/dist/llm/providers/endpoints/ai360.js.map +1 -0
- package/dist/llm/providers/endpoints/anthropic.d.ts +12 -0
- package/dist/llm/providers/endpoints/anthropic.d.ts.map +1 -0
- package/dist/llm/providers/endpoints/anthropic.js +72 -0
- package/dist/llm/providers/endpoints/anthropic.js.map +1 -0
- package/dist/llm/providers/endpoints/astronCodingPlan.d.ts +16 -0
- package/dist/llm/providers/endpoints/astronCodingPlan.d.ts.map +1 -0
- package/dist/llm/providers/endpoints/astronCodingPlan.js +16 -0
- package/dist/llm/providers/endpoints/astronCodingPlan.js.map +1 -0
- package/dist/llm/providers/endpoints/baichuan.d.ts +10 -0
- package/dist/llm/providers/endpoints/baichuan.d.ts.map +1 -0
- package/dist/llm/providers/endpoints/baichuan.js +20 -0
- package/dist/llm/providers/endpoints/baichuan.js.map +1 -0
- package/dist/llm/providers/endpoints/bailian.d.ts +25 -0
- package/dist/llm/providers/endpoints/bailian.d.ts.map +1 -0
- package/dist/llm/providers/endpoints/bailian.js +42 -0
- package/dist/llm/providers/endpoints/bailian.js.map +1 -0
- package/dist/llm/providers/endpoints/bailianCodingPlan.d.ts +10 -0
- package/dist/llm/providers/endpoints/bailianCodingPlan.d.ts.map +1 -0
- package/dist/llm/providers/endpoints/bailianCodingPlan.js +22 -0
- package/dist/llm/providers/endpoints/bailianCodingPlan.js.map +1 -0
- package/dist/llm/providers/endpoints/custom.d.ts +16 -0
- package/dist/llm/providers/endpoints/custom.d.ts.map +1 -0
- package/dist/llm/providers/endpoints/custom.js +15 -0
- package/dist/llm/providers/endpoints/custom.js.map +1 -0
- package/dist/llm/providers/endpoints/deepseek.d.ts +17 -0
- package/dist/llm/providers/endpoints/deepseek.d.ts.map +1 -0
- package/dist/llm/providers/endpoints/deepseek.js +20 -0
- package/dist/llm/providers/endpoints/deepseek.js.map +1 -0
- package/dist/llm/providers/endpoints/giteeai.d.ts +10 -0
- package/dist/llm/providers/endpoints/giteeai.d.ts.map +1 -0
- package/dist/llm/providers/endpoints/giteeai.js +33 -0
- package/dist/llm/providers/endpoints/giteeai.js.map +1 -0
- package/dist/llm/providers/endpoints/githubCopilot.d.ts +10 -0
- package/dist/llm/providers/endpoints/githubCopilot.d.ts.map +1 -0
- package/dist/llm/providers/endpoints/githubCopilot.js +35 -0
- package/dist/llm/providers/endpoints/githubCopilot.js.map +1 -0
- package/dist/llm/providers/endpoints/glmCodingPlan.d.ts +9 -0
- package/dist/llm/providers/endpoints/glmCodingPlan.d.ts.map +1 -0
- package/dist/llm/providers/endpoints/glmCodingPlan.js +21 -0
- package/dist/llm/providers/endpoints/glmCodingPlan.js.map +1 -0
- package/dist/llm/providers/endpoints/google.d.ts +12 -0
- package/dist/llm/providers/endpoints/google.d.ts.map +1 -0
- package/dist/llm/providers/endpoints/google.js +41 -0
- package/dist/llm/providers/endpoints/google.js.map +1 -0
- package/dist/llm/providers/endpoints/hunyuan.d.ts +10 -0
- package/dist/llm/providers/endpoints/hunyuan.d.ts.map +1 -0
- package/dist/llm/providers/endpoints/hunyuan.js +34 -0
- package/dist/llm/providers/endpoints/hunyuan.js.map +1 -0
- package/dist/llm/providers/endpoints/infiniai.d.ts +10 -0
- package/dist/llm/providers/endpoints/infiniai.d.ts.map +1 -0
- package/dist/llm/providers/endpoints/infiniai.js +64 -0
- package/dist/llm/providers/endpoints/infiniai.js.map +1 -0
- package/dist/llm/providers/endpoints/internlm.d.ts +10 -0
- package/dist/llm/providers/endpoints/internlm.d.ts.map +1 -0
- package/dist/llm/providers/endpoints/internlm.js +20 -0
- package/dist/llm/providers/endpoints/internlm.js.map +1 -0
- package/dist/llm/providers/endpoints/kimiCodingPlan.d.ts +9 -0
- package/dist/llm/providers/endpoints/kimiCodingPlan.d.ts.map +1 -0
- package/dist/llm/providers/endpoints/kimiCodingPlan.js +17 -0
- package/dist/llm/providers/endpoints/kimiCodingPlan.js.map +1 -0
- package/dist/llm/providers/endpoints/longcat.d.ts +9 -0
- package/dist/llm/providers/endpoints/longcat.d.ts.map +1 -0
- package/dist/llm/providers/endpoints/longcat.js +18 -0
- package/dist/llm/providers/endpoints/longcat.js.map +1 -0
- package/dist/llm/providers/endpoints/minimax.d.ts +15 -0
- package/dist/llm/providers/endpoints/minimax.d.ts.map +1 -0
- package/dist/llm/providers/endpoints/minimax.js +26 -0
- package/dist/llm/providers/endpoints/minimax.js.map +1 -0
- package/dist/llm/providers/endpoints/minimaxCodingPlan.d.ts +9 -0
- package/dist/llm/providers/endpoints/minimaxCodingPlan.d.ts.map +1 -0
- package/dist/llm/providers/endpoints/minimaxCodingPlan.js +21 -0
- package/dist/llm/providers/endpoints/minimaxCodingPlan.js.map +1 -0
- package/dist/llm/providers/endpoints/mistral.d.ts +11 -0
- package/dist/llm/providers/endpoints/mistral.d.ts.map +1 -0
- package/dist/llm/providers/endpoints/mistral.js +31 -0
- package/dist/llm/providers/endpoints/mistral.js.map +1 -0
- package/dist/llm/providers/endpoints/modelscope.d.ts +10 -0
- package/dist/llm/providers/endpoints/modelscope.d.ts.map +1 -0
- package/dist/llm/providers/endpoints/modelscope.js +22 -0
- package/dist/llm/providers/endpoints/modelscope.js.map +1 -0
- package/dist/llm/providers/endpoints/moonshot.d.ts +12 -0
- package/dist/llm/providers/endpoints/moonshot.d.ts.map +1 -0
- package/dist/llm/providers/endpoints/moonshot.js +29 -0
- package/dist/llm/providers/endpoints/moonshot.js.map +1 -0
- package/dist/llm/providers/endpoints/newapi.d.ts +14 -0
- package/dist/llm/providers/endpoints/newapi.d.ts.map +1 -0
- package/dist/llm/providers/endpoints/newapi.js +14 -0
- package/dist/llm/providers/endpoints/newapi.js.map +1 -0
- package/dist/llm/providers/endpoints/ollama.d.ts +12 -0
- package/dist/llm/providers/endpoints/ollama.d.ts.map +1 -0
- package/dist/llm/providers/endpoints/ollama.js +63 -0
- package/dist/llm/providers/endpoints/ollama.js.map +1 -0
- package/dist/llm/providers/endpoints/openai.d.ts +12 -0
- package/dist/llm/providers/endpoints/openai.d.ts.map +1 -0
- package/dist/llm/providers/endpoints/openai.js +67 -0
- package/dist/llm/providers/endpoints/openai.js.map +1 -0
- package/dist/llm/providers/endpoints/opencodeCodingPlan.d.ts +9 -0
- package/dist/llm/providers/endpoints/opencodeCodingPlan.d.ts.map +1 -0
- package/dist/llm/providers/endpoints/opencodeCodingPlan.js +23 -0
- package/dist/llm/providers/endpoints/opencodeCodingPlan.js.map +1 -0
- package/dist/llm/providers/endpoints/openrouter.d.ts +15 -0
- package/dist/llm/providers/endpoints/openrouter.d.ts.map +1 -0
- package/dist/llm/providers/endpoints/openrouter.js +74 -0
- package/dist/llm/providers/endpoints/openrouter.js.map +1 -0
- package/dist/llm/providers/endpoints/ppio.d.ts +15 -0
- package/dist/llm/providers/endpoints/ppio.d.ts.map +1 -0
- package/dist/llm/providers/endpoints/ppio.js +73 -0
- package/dist/llm/providers/endpoints/ppio.js.map +1 -0
- package/dist/llm/providers/endpoints/qiniu.d.ts +10 -0
- package/dist/llm/providers/endpoints/qiniu.d.ts.map +1 -0
- package/dist/llm/providers/endpoints/qiniu.js +24 -0
- package/dist/llm/providers/endpoints/qiniu.js.map +1 -0
- package/dist/llm/providers/endpoints/sensenova.d.ts +10 -0
- package/dist/llm/providers/endpoints/sensenova.d.ts.map +1 -0
- package/dist/llm/providers/endpoints/sensenova.js +37 -0
- package/dist/llm/providers/endpoints/sensenova.js.map +1 -0
- package/dist/llm/providers/endpoints/siliconcloud.d.ts +14 -0
- package/dist/llm/providers/endpoints/siliconcloud.d.ts.map +1 -0
- package/dist/llm/providers/endpoints/siliconcloud.js +114 -0
- package/dist/llm/providers/endpoints/siliconcloud.js.map +1 -0
- package/dist/llm/providers/endpoints/spark.d.ts +14 -0
- package/dist/llm/providers/endpoints/spark.d.ts.map +1 -0
- package/dist/llm/providers/endpoints/spark.js +21 -0
- package/dist/llm/providers/endpoints/spark.js.map +1 -0
- package/dist/llm/providers/endpoints/stepfun.d.ts +10 -0
- package/dist/llm/providers/endpoints/stepfun.d.ts.map +1 -0
- package/dist/llm/providers/endpoints/stepfun.js +27 -0
- package/dist/llm/providers/endpoints/stepfun.js.map +1 -0
- package/dist/llm/providers/endpoints/tencentcloud.d.ts +10 -0
- package/dist/llm/providers/endpoints/tencentcloud.d.ts.map +1 -0
- package/dist/llm/providers/endpoints/tencentcloud.js +17 -0
- package/dist/llm/providers/endpoints/tencentcloud.js.map +1 -0
- package/dist/llm/providers/endpoints/volcengine.d.ts +10 -0
- package/dist/llm/providers/endpoints/volcengine.d.ts.map +1 -0
- package/dist/llm/providers/endpoints/volcengine.js +44 -0
- package/dist/llm/providers/endpoints/volcengine.js.map +1 -0
- package/dist/llm/providers/endpoints/volcengineCodingPlan.d.ts +19 -0
- package/dist/llm/providers/endpoints/volcengineCodingPlan.d.ts.map +1 -0
- package/dist/llm/providers/endpoints/volcengineCodingPlan.js +25 -0
- package/dist/llm/providers/endpoints/volcengineCodingPlan.js.map +1 -0
- package/dist/llm/providers/endpoints/wenxin.d.ts +10 -0
- package/dist/llm/providers/endpoints/wenxin.d.ts.map +1 -0
- package/dist/llm/providers/endpoints/wenxin.js +98 -0
- package/dist/llm/providers/endpoints/wenxin.js.map +1 -0
- package/dist/llm/providers/endpoints/xai.d.ts +11 -0
- package/dist/llm/providers/endpoints/xai.d.ts.map +1 -0
- package/dist/llm/providers/endpoints/xai.js +25 -0
- package/dist/llm/providers/endpoints/xai.js.map +1 -0
- package/dist/llm/providers/endpoints/xiaomimimo.d.ts +12 -0
- package/dist/llm/providers/endpoints/xiaomimimo.d.ts.map +1 -0
- package/dist/llm/providers/endpoints/xiaomimimo.js +16 -0
- package/dist/llm/providers/endpoints/xiaomimimo.js.map +1 -0
- package/dist/llm/providers/endpoints/zeroone.d.ts +10 -0
- package/dist/llm/providers/endpoints/zeroone.d.ts.map +1 -0
- package/dist/llm/providers/endpoints/zeroone.js +26 -0
- package/dist/llm/providers/endpoints/zeroone.js.map +1 -0
- package/dist/llm/providers/endpoints/zhipu.d.ts +12 -0
- package/dist/llm/providers/endpoints/zhipu.d.ts.map +1 -0
- package/dist/llm/providers/endpoints/zhipu.js +51 -0
- package/dist/llm/providers/endpoints/zhipu.js.map +1 -0
- package/dist/llm/providers/index.d.ts +5 -0
- package/dist/llm/providers/index.d.ts.map +1 -0
- package/dist/llm/providers/index.js +67 -0
- package/dist/llm/providers/index.js.map +1 -0
- package/dist/llm/providers/lookup.d.ts +16 -0
- package/dist/llm/providers/lookup.d.ts.map +1 -0
- package/dist/llm/providers/lookup.js +68 -0
- package/dist/llm/providers/lookup.js.map +1 -0
- package/dist/llm/providers/probe.d.ts +11 -0
- package/dist/llm/providers/probe.d.ts.map +1 -0
- package/dist/llm/providers/probe.js +24 -0
- package/dist/llm/providers/probe.js.map +1 -0
- package/dist/llm/providers/types.d.ts +71 -0
- package/dist/llm/providers/types.d.ts.map +1 -0
- package/dist/llm/providers/types.js +9 -0
- package/dist/llm/providers/types.js.map +1 -0
- package/dist/llm/providers/verify.d.ts +27 -0
- package/dist/llm/providers/verify.d.ts.map +1 -0
- package/dist/llm/providers/verify.js +77 -0
- package/dist/llm/providers/verify.js.map +1 -0
- package/dist/llm/secrets.d.ts.map +1 -1
- package/dist/llm/secrets.js +27 -2
- package/dist/llm/secrets.js.map +1 -1
- package/dist/llm/service-presets.d.ts +13 -3
- package/dist/llm/service-presets.d.ts.map +1 -1
- package/dist/llm/service-presets.js +78 -42
- package/dist/llm/service-presets.js.map +1 -1
- package/dist/llm/service-resolver.d.ts +1 -1
- package/dist/llm/service-resolver.d.ts.map +1 -1
- package/dist/llm/service-resolver.js +13 -0
- package/dist/llm/service-resolver.js.map +1 -1
- package/dist/models/book-rules.d.ts +23 -1
- package/dist/models/book-rules.d.ts.map +1 -1
- package/dist/models/book-rules.js +54 -2
- package/dist/models/book-rules.js.map +1 -1
- package/dist/models/input-governance.d.ts +20 -244
- package/dist/models/input-governance.d.ts.map +1 -1
- package/dist/models/input-governance.js +7 -51
- package/dist/models/input-governance.js.map +1 -1
- package/dist/models/project.d.ts +29 -28
- package/dist/models/project.d.ts.map +1 -1
- package/dist/models/project.js +11 -9
- package/dist/models/project.js.map +1 -1
- package/dist/models/runtime-state.d.ts +120 -0
- package/dist/models/runtime-state.d.ts.map +1 -1
- package/dist/models/runtime-state.js +12 -0
- package/dist/models/runtime-state.js.map +1 -1
- package/dist/pipeline/agent.d.ts.map +1 -1
- package/dist/pipeline/agent.js +59 -10
- package/dist/pipeline/agent.js.map +1 -1
- package/dist/pipeline/chapter-review-cycle.d.ts +11 -4
- package/dist/pipeline/chapter-review-cycle.d.ts.map +1 -1
- package/dist/pipeline/chapter-review-cycle.js +156 -73
- package/dist/pipeline/chapter-review-cycle.js.map +1 -1
- package/dist/pipeline/chapter-truth-validation.d.ts +2 -1
- package/dist/pipeline/chapter-truth-validation.d.ts.map +1 -1
- package/dist/pipeline/chapter-truth-validation.js +1 -1
- package/dist/pipeline/chapter-truth-validation.js.map +1 -1
- package/dist/pipeline/persisted-governed-plan.d.ts +1 -0
- package/dist/pipeline/persisted-governed-plan.d.ts.map +1 -1
- package/dist/pipeline/persisted-governed-plan.js +181 -66
- package/dist/pipeline/persisted-governed-plan.js.map +1 -1
- package/dist/pipeline/runner.d.ts +20 -17
- package/dist/pipeline/runner.d.ts.map +1 -1
- package/dist/pipeline/runner.js +359 -84
- package/dist/pipeline/runner.js.map +1 -1
- package/dist/state/manager.d.ts.map +1 -1
- package/dist/state/manager.js +44 -4
- package/dist/state/manager.js.map +1 -1
- package/dist/state/memory-db.d.ts +6 -0
- package/dist/state/memory-db.d.ts.map +1 -1
- package/dist/state/memory-db.js.map +1 -1
- package/dist/state/runtime-state-store.d.ts.map +1 -1
- package/dist/state/runtime-state-store.js +4 -1
- package/dist/state/runtime-state-store.js.map +1 -1
- package/dist/state/state-projections.d.ts +3 -1
- package/dist/state/state-projections.d.ts.map +1 -1
- package/dist/state/state-projections.js +58 -15
- package/dist/state/state-projections.js.map +1 -1
- package/dist/utils/book-id.d.ts +4 -0
- package/dist/utils/book-id.d.ts.map +1 -0
- package/dist/utils/book-id.js +27 -0
- package/dist/utils/book-id.js.map +1 -0
- package/dist/utils/chapter-cadence.js +1 -0
- package/dist/utils/chapter-cadence.js.map +1 -1
- package/dist/utils/chapter-memo-parser.d.ts +19 -0
- package/dist/utils/chapter-memo-parser.d.ts.map +1 -0
- package/dist/utils/chapter-memo-parser.js +114 -0
- package/dist/utils/chapter-memo-parser.js.map +1 -0
- package/dist/utils/config-loader.d.ts +7 -11
- package/dist/utils/config-loader.d.ts.map +1 -1
- package/dist/utils/config-loader.js +13 -253
- package/dist/utils/config-loader.js.map +1 -1
- package/dist/utils/context-assembly.d.ts +24 -0
- package/dist/utils/context-assembly.d.ts.map +1 -0
- package/dist/utils/context-assembly.js +77 -0
- package/dist/utils/context-assembly.js.map +1 -0
- package/dist/utils/effective-llm-config.d.ts +34 -0
- package/dist/utils/effective-llm-config.d.ts.map +1 -0
- package/dist/utils/effective-llm-config.js +417 -0
- package/dist/utils/effective-llm-config.js.map +1 -0
- package/dist/utils/governed-working-set.js +1 -1
- package/dist/utils/governed-working-set.js.map +1 -1
- package/dist/utils/hook-ledger-validator.d.ts +82 -0
- package/dist/utils/hook-ledger-validator.d.ts.map +1 -0
- package/dist/utils/hook-ledger-validator.js +225 -0
- package/dist/utils/hook-ledger-validator.js.map +1 -0
- package/dist/utils/hook-lifecycle.d.ts +5 -0
- package/dist/utils/hook-lifecycle.d.ts.map +1 -1
- package/dist/utils/hook-lifecycle.js +32 -0
- package/dist/utils/hook-lifecycle.js.map +1 -1
- package/dist/utils/hook-policy.d.ts +0 -17
- package/dist/utils/hook-policy.d.ts.map +1 -1
- package/dist/utils/hook-policy.js +0 -30
- package/dist/utils/hook-policy.js.map +1 -1
- package/dist/utils/hook-promotion.d.ts +83 -0
- package/dist/utils/hook-promotion.d.ts.map +1 -0
- package/dist/utils/hook-promotion.js +241 -0
- package/dist/utils/hook-promotion.js.map +1 -0
- package/dist/utils/hook-stale-detection.d.ts +51 -0
- package/dist/utils/hook-stale-detection.d.ts.map +1 -0
- package/dist/utils/hook-stale-detection.js +125 -0
- package/dist/utils/hook-stale-detection.js.map +1 -0
- package/dist/utils/llm-endpoint-auth.d.ts +5 -0
- package/dist/utils/llm-endpoint-auth.d.ts.map +1 -0
- package/dist/utils/llm-endpoint-auth.js +36 -0
- package/dist/utils/llm-endpoint-auth.js.map +1 -0
- package/dist/utils/llm-env.d.ts +14 -0
- package/dist/utils/llm-env.d.ts.map +1 -0
- package/dist/utils/llm-env.js +53 -0
- package/dist/utils/llm-env.js.map +1 -0
- package/dist/utils/memory-retrieval.d.ts +23 -1
- package/dist/utils/memory-retrieval.d.ts.map +1 -1
- package/dist/utils/memory-retrieval.js +45 -2
- package/dist/utils/memory-retrieval.js.map +1 -1
- package/dist/utils/narrative-control.d.ts +16 -0
- package/dist/utils/narrative-control.d.ts.map +1 -0
- package/dist/utils/narrative-control.js +131 -0
- package/dist/utils/narrative-control.js.map +1 -0
- package/dist/utils/path-safety.d.ts +2 -0
- package/dist/utils/path-safety.d.ts.map +1 -0
- package/dist/utils/path-safety.js +11 -0
- package/dist/utils/path-safety.js.map +1 -0
- package/dist/utils/planning-materials.d.ts +35 -0
- package/dist/utils/planning-materials.d.ts.map +1 -0
- package/dist/utils/planning-materials.js +123 -0
- package/dist/utils/planning-materials.js.map +1 -0
- package/dist/utils/proxy-fetch.d.ts +9 -0
- package/dist/utils/proxy-fetch.d.ts.map +1 -0
- package/dist/utils/proxy-fetch.js +31 -0
- package/dist/utils/proxy-fetch.js.map +1 -0
- package/dist/utils/runtime-writer.d.ts +14 -0
- package/dist/utils/runtime-writer.d.ts.map +1 -0
- package/dist/utils/runtime-writer.js +21 -0
- package/dist/utils/runtime-writer.js.map +1 -0
- package/dist/utils/spot-fix-patches.d.ts +7 -0
- package/dist/utils/spot-fix-patches.d.ts.map +1 -1
- package/dist/utils/spot-fix-patches.js +109 -36
- package/dist/utils/spot-fix-patches.js.map +1 -1
- package/dist/utils/story-markdown.d.ts.map +1 -1
- package/dist/utils/story-markdown.js +104 -6
- package/dist/utils/story-markdown.js.map +1 -1
- package/dist/utils/writing-methodology.d.ts +10 -0
- package/dist/utils/writing-methodology.d.ts.map +1 -0
- package/dist/utils/writing-methodology.js +163 -0
- package/dist/utils/writing-methodology.js.map +1 -0
- package/package.json +3 -2
- package/dist/utils/hook-agenda.d.ts +0 -21
- package/dist/utils/hook-agenda.d.ts.map +0 -1
- package/dist/utils/hook-agenda.js +0 -95
- package/dist/utils/hook-agenda.js.map +0 -1
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Phase 9-3: hard gate that a chapter draft actually acts on the hook ledger
|
|
3
|
+
* the planner declared in the memo's "## 本章 hook 账" / "## Hook ledger for
|
|
4
|
+
* this chapter" section.
|
|
5
|
+
*
|
|
6
|
+
* The planner commits, per chapter, to:
|
|
7
|
+
* - advance: <hook_id> "name" → state-change
|
|
8
|
+
* - resolve: <hook_id> "name" → action
|
|
9
|
+
*
|
|
10
|
+
* The validator parses those two lists and checks that every committed hook
|
|
11
|
+
* has observable evidence in the draft. "Evidence" means the draft mentions
|
|
12
|
+
* at least one keyword from the ledger line's descriptor (hook name, key
|
|
13
|
+
* noun, etc.). We deliberately do NOT require the draft to repeat the raw
|
|
14
|
+
* hook_id like "H007" — writers don't embed IDs in prose.
|
|
15
|
+
*/
|
|
16
|
+
const LEDGER_HEADING_PATTERNS = [
|
|
17
|
+
/^#{2,3}\s*本章\s*hook\s*账\s*$/im,
|
|
18
|
+
/^#{2,3}\s*Hook\s+ledger\s+for\s+this\s+chapter\s*$/im,
|
|
19
|
+
];
|
|
20
|
+
const SUBSECTION_KEYS = ["open", "advance", "resolve", "defer"];
|
|
21
|
+
/**
|
|
22
|
+
* Tokens that look like hook_ids but are placeholders meaning "no hooks in
|
|
23
|
+
* this slot". Writers sometimes emit "- 无" or "- none" under an empty slot
|
|
24
|
+
* instead of leaving it blank.
|
|
25
|
+
*/
|
|
26
|
+
const PLACEHOLDER_TOKENS = /^(无|空|none|nil|null|暂无|n\/a|na|n-a|tbd|todo|待定)$/i;
|
|
27
|
+
/** Subsection heading words that must not be parsed as hook_ids. */
|
|
28
|
+
const SUBSECTION_WORDS = /^(open|advance|resolve|defer|new)$/i;
|
|
29
|
+
export function parseHookLedger(memoBody) {
|
|
30
|
+
const section = extractLedgerSection(memoBody);
|
|
31
|
+
if (!section) {
|
|
32
|
+
return { open: [], advance: [], resolve: [], defer: [], newOpenCount: 0 };
|
|
33
|
+
}
|
|
34
|
+
const result = {
|
|
35
|
+
open: [],
|
|
36
|
+
advance: [],
|
|
37
|
+
resolve: [],
|
|
38
|
+
defer: [],
|
|
39
|
+
};
|
|
40
|
+
let newOpenCount = 0;
|
|
41
|
+
let current = null;
|
|
42
|
+
for (const rawLine of section.split(/\r?\n/)) {
|
|
43
|
+
const line = rawLine.trim();
|
|
44
|
+
if (line.length === 0)
|
|
45
|
+
continue;
|
|
46
|
+
const subHeadingMatch = line.match(/^(open|advance|resolve|defer)\s*[::]?\s*$/i);
|
|
47
|
+
if (subHeadingMatch) {
|
|
48
|
+
current = subHeadingMatch[1].toLowerCase();
|
|
49
|
+
continue;
|
|
50
|
+
}
|
|
51
|
+
if (!current)
|
|
52
|
+
continue;
|
|
53
|
+
if (!line.startsWith("-"))
|
|
54
|
+
continue;
|
|
55
|
+
// `[new]` placeholder lines have no hook_id but still count as a new hook
|
|
56
|
+
// opened (揭 1 埋 1 floor check). extractLedgerEntry filters them out for
|
|
57
|
+
// advance/resolve evidence matching; we tally them separately here.
|
|
58
|
+
const cleaned = line.replace(/^-+\s*/, "").trim();
|
|
59
|
+
if (current === "open" && /^\[new\]/i.test(cleaned)) {
|
|
60
|
+
newOpenCount += 1;
|
|
61
|
+
continue;
|
|
62
|
+
}
|
|
63
|
+
const entry = extractLedgerEntry(line);
|
|
64
|
+
if (entry)
|
|
65
|
+
result[current].push(entry);
|
|
66
|
+
}
|
|
67
|
+
return { ...result, newOpenCount };
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Enforce: every hook declared under advance / resolve must have observable
|
|
71
|
+
* evidence in the draft text. We do NOT validate `open` (new hooks don't have
|
|
72
|
+
* a pre-existing id/descriptor to echo) or `defer` (deferred = deliberately
|
|
73
|
+
* not touched).
|
|
74
|
+
*
|
|
75
|
+
* Additionally enforces the "揭 1 埋 1" hard floor (Xu Er Jia De Mao, 番茄文章
|
|
76
|
+
* 10): whenever a chapter resolves one or more hooks, it must open at least
|
|
77
|
+
* as many new hooks in the same memo. "Resolve without opening" leaves the
|
|
78
|
+
* reader feeling "解完即索然无味" — the story loses forward pull. The softer
|
|
79
|
+
* "揭 1 埋 2" rule is a planner-prompt recommendation, not a hard gate here,
|
|
80
|
+
* because enforcing ×2 would conflict with the "≤ 2 new hooks per chapter"
|
|
81
|
+
* cap on the planner side when resolve=2.
|
|
82
|
+
*/
|
|
83
|
+
export function validateHookLedger(memoBody, draftContent) {
|
|
84
|
+
const ledger = parseHookLedger(memoBody);
|
|
85
|
+
const violations = [];
|
|
86
|
+
// Evidence check for everything the memo committed to land in prose.
|
|
87
|
+
const committed = dedupeById([...ledger.advance, ...ledger.resolve]);
|
|
88
|
+
for (const entry of committed) {
|
|
89
|
+
if (!draftEchoesEntry(draftContent, entry)) {
|
|
90
|
+
violations.push({
|
|
91
|
+
severity: "critical",
|
|
92
|
+
category: "hook 账未兑现",
|
|
93
|
+
description: `memo 在 advance/resolve 里声明要处理 ${entry.id},但正文没有对应的落地动作`,
|
|
94
|
+
suggestion: `在正文中加入对 ${entry.id} 的具体情节推进(动作、对话、环境变化),或把它从 hook 账里移到 defer 并给出理由`,
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
// "揭 1 埋 1" hard floor: when anything was resolved, at least the same
|
|
99
|
+
// number of new hooks must have been opened. We count both `[new]`
|
|
100
|
+
// placeholder lines (newOpenCount — the normal way planners declare fresh
|
|
101
|
+
// hooks without an id) and any id-bearing lines under `open:` (rare, but
|
|
102
|
+
// legal if a planner re-opens a previously paused hook).
|
|
103
|
+
const resolvedCount = ledger.resolve.length;
|
|
104
|
+
const openedCount = ledger.open.length + ledger.newOpenCount;
|
|
105
|
+
if (resolvedCount > 0 && openedCount < resolvedCount) {
|
|
106
|
+
violations.push({
|
|
107
|
+
severity: "critical",
|
|
108
|
+
category: "hook 账揭 1 埋 1 违规",
|
|
109
|
+
description: `本章 resolve 了 ${resolvedCount} 个钩子,但 open 只有 ${openedCount} 个新钩子。只揭不埋会让读者豁然开朗后索然无味,本书的前进拉力被削弱。`,
|
|
110
|
+
suggestion: `在 memo 的 open 段下至少再埋 ${resolvedCount - openedCount} 个与本章已揭钩子相关的新钩子(番茄老师徐二家的猫:"掀开一个伏笔的同时,再埋两个伏笔")。新钩子最好与已揭钩子彼此关联,不要凭空冒出来。`,
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
return violations;
|
|
114
|
+
}
|
|
115
|
+
function extractLedgerSection(memoBody) {
|
|
116
|
+
for (const pattern of LEDGER_HEADING_PATTERNS) {
|
|
117
|
+
const match = memoBody.match(pattern);
|
|
118
|
+
if (!match || match.index === undefined)
|
|
119
|
+
continue;
|
|
120
|
+
const start = match.index + match[0].length;
|
|
121
|
+
const rest = memoBody.slice(start);
|
|
122
|
+
const nextHeading = rest.match(/\n#{2,3}\s/);
|
|
123
|
+
const end = nextHeading ? nextHeading.index ?? rest.length : rest.length;
|
|
124
|
+
return rest.slice(0, end);
|
|
125
|
+
}
|
|
126
|
+
return undefined;
|
|
127
|
+
}
|
|
128
|
+
function extractLedgerEntry(line) {
|
|
129
|
+
const cleaned = line.replace(/^-+\s*/, "").trim();
|
|
130
|
+
if (cleaned.startsWith("[new]") || cleaned.startsWith("[NEW]"))
|
|
131
|
+
return undefined;
|
|
132
|
+
// Reject whole-line placeholders first — "- 无", "- n/a", "- none" etc.
|
|
133
|
+
const firstWord = cleaned.split(/\s+/)[0] ?? "";
|
|
134
|
+
if (PLACEHOLDER_TOKENS.test(firstWord))
|
|
135
|
+
return undefined;
|
|
136
|
+
const idMatch = cleaned.match(/^([A-Za-z\u4e00-\u9fff][A-Za-z0-9_\-\u4e00-\u9fff]{0,19})/);
|
|
137
|
+
if (!idMatch)
|
|
138
|
+
return undefined;
|
|
139
|
+
const candidate = idMatch[1];
|
|
140
|
+
if (SUBSECTION_WORDS.test(candidate))
|
|
141
|
+
return undefined;
|
|
142
|
+
if (PLACEHOLDER_TOKENS.test(candidate))
|
|
143
|
+
return undefined;
|
|
144
|
+
const descriptor = cleaned.slice(candidate.length).trim();
|
|
145
|
+
return { id: candidate, descriptor, keywords: extractKeywords(descriptor) };
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Extract content-matching tokens from a ledger line's descriptor.
|
|
149
|
+
*
|
|
150
|
+
* Priority 1: quoted hook name — `H007 "胖虎借条" → ...` — this is the most
|
|
151
|
+
* informative token the planner attached, and it's what the writer should
|
|
152
|
+
* echo. We split compound CJK names into leading/trailing 2-grams so
|
|
153
|
+
* partial echoes still count.
|
|
154
|
+
*
|
|
155
|
+
* Priority 2: if no quoted name, fall back to the descriptor text UP TO the
|
|
156
|
+
* first state-transition arrow (→ or ->), same CJK/ASCII splitting. Anything
|
|
157
|
+
* AFTER the arrow describes new state, not the hook itself, and risks
|
|
158
|
+
* character-name false positives.
|
|
159
|
+
*/
|
|
160
|
+
function extractKeywords(descriptor) {
|
|
161
|
+
if (!descriptor)
|
|
162
|
+
return [];
|
|
163
|
+
// Try the quoted-name anchor first — matches "..." or "..." quotes.
|
|
164
|
+
const quotedMatch = descriptor.match(/[""]([^""\n]+)[""]/);
|
|
165
|
+
const source = quotedMatch ? quotedMatch[1] : descriptor.split(/[→]|->/, 1)[0];
|
|
166
|
+
const cjkRuns = source.match(/[\u4e00-\u9fff]{2,}/g) ?? [];
|
|
167
|
+
const cjkTokens = [];
|
|
168
|
+
for (const run of cjkRuns) {
|
|
169
|
+
cjkTokens.push(run);
|
|
170
|
+
if (run.length >= 3) {
|
|
171
|
+
for (let index = 0; index <= run.length - 2; index++) {
|
|
172
|
+
cjkTokens.push(run.slice(index, index + 2));
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
if (run.length >= 4) {
|
|
176
|
+
cjkTokens.push(run.slice(0, 3));
|
|
177
|
+
cjkTokens.push(run.slice(-3));
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
const ascii = (source.match(/[A-Za-z]{3,}/g) ?? []).map((w) => w.toLowerCase());
|
|
181
|
+
return dedupeStrings([...cjkTokens, ...ascii].filter((tok) => !ASCII_STOPWORDS.has(tok)));
|
|
182
|
+
}
|
|
183
|
+
const ASCII_STOPWORDS = new Set([
|
|
184
|
+
"and", "the", "for", "with", "from", "that", "into", "then",
|
|
185
|
+
"open", "close", "advance", "resolve", "defer", "new",
|
|
186
|
+
"planted", "pressured", "near", "payoff", "ready", "stale",
|
|
187
|
+
]);
|
|
188
|
+
function draftEchoesEntry(draft, entry) {
|
|
189
|
+
if (entry.keywords.length > 0) {
|
|
190
|
+
const draftLower = draft.toLowerCase();
|
|
191
|
+
return entry.keywords.some((kw) => {
|
|
192
|
+
// ASCII keywords are already lowercased; CJK keywords case doesn't matter.
|
|
193
|
+
return /^[a-z]/.test(kw) ? draftLower.includes(kw) : draft.includes(kw);
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
// Bare-id ledger line with no descriptor — fall back to ID match.
|
|
197
|
+
if (/^[A-Za-z0-9_-]+$/.test(entry.id)) {
|
|
198
|
+
return new RegExp(`\\b${escapeRegex(entry.id)}\\b`).test(draft);
|
|
199
|
+
}
|
|
200
|
+
return draft.includes(entry.id);
|
|
201
|
+
}
|
|
202
|
+
function dedupeById(entries) {
|
|
203
|
+
const seen = new Set();
|
|
204
|
+
const result = [];
|
|
205
|
+
for (const entry of entries) {
|
|
206
|
+
if (seen.has(entry.id))
|
|
207
|
+
continue;
|
|
208
|
+
seen.add(entry.id);
|
|
209
|
+
result.push(entry);
|
|
210
|
+
}
|
|
211
|
+
return result;
|
|
212
|
+
}
|
|
213
|
+
function dedupeStrings(values) {
|
|
214
|
+
return [...new Set(values)];
|
|
215
|
+
}
|
|
216
|
+
function escapeRegex(value) {
|
|
217
|
+
return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
218
|
+
}
|
|
219
|
+
export const INTERNAL = {
|
|
220
|
+
SUBSECTION_KEYS,
|
|
221
|
+
extractLedgerSection,
|
|
222
|
+
extractLedgerEntry,
|
|
223
|
+
extractKeywords,
|
|
224
|
+
};
|
|
225
|
+
//# sourceMappingURL=hook-ledger-validator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hook-ledger-validator.js","sourceRoot":"","sources":["../../src/utils/hook-ledger-validator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
import type { HookPayoffTiming } from "../models/runtime-state.js";
|
|
2
|
+
import type { StoredHook } from "../state/memory-db.js";
|
|
2
3
|
import { type HookPhase } from "./hook-policy.js";
|
|
4
|
+
export declare const DEFAULT_HOOK_LOOKAHEAD_CHAPTERS = 3;
|
|
5
|
+
export declare function filterActiveHooks(hooks: ReadonlyArray<StoredHook>): StoredHook[];
|
|
6
|
+
export declare function isFuturePlannedHook(hook: StoredHook, chapterNumber: number, lookahead?: number): boolean;
|
|
7
|
+
export declare function isHookWithinChapterWindow(hook: StoredHook, chapterNumber: number, recentWindow?: number, lookahead?: number): boolean;
|
|
3
8
|
export declare function normalizeHookPayoffTiming(value: string | undefined | null): HookPayoffTiming | undefined;
|
|
4
9
|
export declare function inferHookPayoffTiming(params: {
|
|
5
10
|
readonly expectedPayoff?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook-lifecycle.d.ts","sourceRoot":"","sources":["../../src/utils/hook-lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAML,KAAK,SAAS,EACf,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"hook-lifecycle.d.ts","sourceRoot":"","sources":["../../src/utils/hook-lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAML,KAAK,SAAS,EACf,MAAM,kBAAkB,CAAC;AAE1B,eAAO,MAAM,+BAA+B,IAAI,CAAC;AASjD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,aAAa,CAAC,UAAU,CAAC,GAAG,UAAU,EAAE,CAEhF;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,UAAU,EAChB,aAAa,EAAE,MAAM,EACrB,SAAS,GAAE,MAAwC,GAClD,OAAO,CAET;AAED,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,UAAU,EAChB,aAAa,EAAE,MAAM,EACrB,YAAY,GAAE,MAAU,EACxB,SAAS,GAAE,MAAwC,GAClD,OAAO,CAoBT;AAmCD,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,gBAAgB,GAAG,SAAS,CAWxG;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE;IAC5C,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB,GAAG,gBAAgB,CAcnB;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE;IAC9C,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB,GAAG,gBAAgB,CAMnB;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,gBAAgB,EACxB,QAAQ,EAAE,IAAI,GAAG,IAAI,GACpB,MAAM,CAER;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE;IAC5C,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CAClC,GAAG;IACF,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CAClC,CAgDA"}
|
|
@@ -1,4 +1,36 @@
|
|
|
1
1
|
import { HOOK_ACTIVITY_THRESHOLDS, HOOK_PHASE_THRESHOLDS, HOOK_PHASE_WEIGHT, HOOK_PRESSURE_WEIGHTS, HOOK_TIMING_PROFILES, } from "./hook-policy.js";
|
|
2
|
+
export const DEFAULT_HOOK_LOOKAHEAD_CHAPTERS = 3;
|
|
3
|
+
function normalizeStoredHookStatus(status) {
|
|
4
|
+
if (/^(resolved|closed|done|已回收|已解决)$/i.test(status.trim()))
|
|
5
|
+
return "resolved";
|
|
6
|
+
if (/^(deferred|paused|hold|延后|延期|搁置|暂缓)$/i.test(status.trim()))
|
|
7
|
+
return "deferred";
|
|
8
|
+
if (/^(progressing|advanced|重大推进|持续推进)$/i.test(status.trim()))
|
|
9
|
+
return "progressing";
|
|
10
|
+
return "open";
|
|
11
|
+
}
|
|
12
|
+
export function filterActiveHooks(hooks) {
|
|
13
|
+
return hooks.filter((hook) => normalizeStoredHookStatus(hook.status) !== "resolved");
|
|
14
|
+
}
|
|
15
|
+
export function isFuturePlannedHook(hook, chapterNumber, lookahead = DEFAULT_HOOK_LOOKAHEAD_CHAPTERS) {
|
|
16
|
+
return hook.lastAdvancedChapter <= 0 && hook.startChapter > chapterNumber + lookahead;
|
|
17
|
+
}
|
|
18
|
+
export function isHookWithinChapterWindow(hook, chapterNumber, recentWindow = 5, lookahead = DEFAULT_HOOK_LOOKAHEAD_CHAPTERS) {
|
|
19
|
+
const recentCutoff = Math.max(0, chapterNumber - recentWindow);
|
|
20
|
+
if (hook.lastAdvancedChapter > 0 && hook.lastAdvancedChapter >= recentCutoff) {
|
|
21
|
+
return true;
|
|
22
|
+
}
|
|
23
|
+
if (hook.lastAdvancedChapter > 0) {
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
if (hook.startChapter <= 0) {
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
if (hook.startChapter >= recentCutoff && hook.startChapter <= chapterNumber) {
|
|
30
|
+
return true;
|
|
31
|
+
}
|
|
32
|
+
return hook.startChapter > chapterNumber && hook.startChapter <= chapterNumber + lookahead;
|
|
33
|
+
}
|
|
2
34
|
const LABELS = {
|
|
3
35
|
en: {
|
|
4
36
|
immediate: "immediate",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook-lifecycle.js","sourceRoot":"","sources":["../../src/utils/hook-lifecycle.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"hook-lifecycle.js","sourceRoot":"","sources":["../../src/utils/hook-lifecycle.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import type { HookPayoffTiming } from "../models/runtime-state.js";
|
|
2
2
|
export type HookPhase = "opening" | "middle" | "late";
|
|
3
|
-
export type HookAgendaLoad = "light" | "medium" | "heavy";
|
|
4
3
|
export interface HookLifecycleProfile {
|
|
5
4
|
readonly earliestResolveAge: number;
|
|
6
5
|
readonly staleDormancy: number;
|
|
@@ -34,22 +33,6 @@ export declare const HOOK_ACTIVITY_THRESHOLDS: {
|
|
|
34
33
|
readonly refreshDormancy: 2;
|
|
35
34
|
readonly freshPromiseAge: 1;
|
|
36
35
|
};
|
|
37
|
-
export declare const HOOK_AGENDA_LIMITS: Record<HookAgendaLoad, {
|
|
38
|
-
readonly staleDebt: number;
|
|
39
|
-
readonly mustAdvance: number;
|
|
40
|
-
readonly eligibleResolve: number;
|
|
41
|
-
readonly avoidFamilies: number;
|
|
42
|
-
}>;
|
|
43
|
-
export declare const HOOK_AGENDA_LOAD_THRESHOLDS: {
|
|
44
|
-
readonly heavyReadyCount: 3;
|
|
45
|
-
readonly heavyStaleCount: 4;
|
|
46
|
-
readonly heavyCriticalCount: 3;
|
|
47
|
-
readonly heavyPressuredCount: 6;
|
|
48
|
-
readonly mediumReadyCount: 2;
|
|
49
|
-
readonly mediumStaleCount: 2;
|
|
50
|
-
readonly mediumCriticalCount: 1;
|
|
51
|
-
readonly mediumPressuredFamilies: 3;
|
|
52
|
-
};
|
|
53
36
|
export declare const HOOK_VISIBILITY_WINDOWS: Record<HookPayoffTiming, number>;
|
|
54
37
|
export declare const HOOK_RELEVANT_SELECTION_DEFAULTS: {
|
|
55
38
|
readonly primary: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook-policy.d.ts","sourceRoot":"","sources":["../../src/utils/hook-policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"hook-policy.d.ts","sourceRoot":"","sources":["../../src/utils/hook-policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEtD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,SAAS,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,gBAAgB,EAAE,oBAAoB,CAoC/E,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAIvD,CAAC;AAEF,eAAO,MAAM,qBAAqB;;;;;CAKxB,CAAC;AAEX,eAAO,MAAM,qBAAqB;;;;;;;;;;CAUxB,CAAC;AAEX,eAAO,MAAM,wBAAwB;;;;;;CAM3B,CAAC;AAEX,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAMpE,CAAC;AAEF,eAAO,MAAM,gCAAgC;;;;;;;;;;;;CAYnC,CAAC;AAEX,eAAO,MAAM,oBAAoB;;;;;CAKvB,CAAC;AAEX,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAE5E"}
|
|
@@ -64,36 +64,6 @@ export const HOOK_ACTIVITY_THRESHOLDS = {
|
|
|
64
64
|
refreshDormancy: 2,
|
|
65
65
|
freshPromiseAge: 1,
|
|
66
66
|
};
|
|
67
|
-
export const HOOK_AGENDA_LIMITS = {
|
|
68
|
-
light: {
|
|
69
|
-
staleDebt: 1,
|
|
70
|
-
mustAdvance: 2,
|
|
71
|
-
eligibleResolve: 1,
|
|
72
|
-
avoidFamilies: 2,
|
|
73
|
-
},
|
|
74
|
-
medium: {
|
|
75
|
-
staleDebt: 2,
|
|
76
|
-
mustAdvance: 2,
|
|
77
|
-
eligibleResolve: 1,
|
|
78
|
-
avoidFamilies: 3,
|
|
79
|
-
},
|
|
80
|
-
heavy: {
|
|
81
|
-
staleDebt: 3,
|
|
82
|
-
mustAdvance: 3,
|
|
83
|
-
eligibleResolve: 2,
|
|
84
|
-
avoidFamilies: 4,
|
|
85
|
-
},
|
|
86
|
-
};
|
|
87
|
-
export const HOOK_AGENDA_LOAD_THRESHOLDS = {
|
|
88
|
-
heavyReadyCount: 3,
|
|
89
|
-
heavyStaleCount: 4,
|
|
90
|
-
heavyCriticalCount: 3,
|
|
91
|
-
heavyPressuredCount: 6,
|
|
92
|
-
mediumReadyCount: 2,
|
|
93
|
-
mediumStaleCount: 2,
|
|
94
|
-
mediumCriticalCount: 1,
|
|
95
|
-
mediumPressuredFamilies: 3,
|
|
96
|
-
};
|
|
97
67
|
export const HOOK_VISIBILITY_WINDOWS = {
|
|
98
68
|
immediate: 5,
|
|
99
69
|
"near-term": 5,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook-policy.js","sourceRoot":"","sources":["../../src/utils/hook-policy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"hook-policy.js","sourceRoot":"","sources":["../../src/utils/hook-policy.ts"],"names":[],"mappings":"AAYA,MAAM,CAAC,MAAM,oBAAoB,GAAmD;IAClF,SAAS,EAAE;QACT,kBAAkB,EAAE,CAAC;QACrB,aAAa,EAAE,CAAC;QAChB,UAAU,EAAE,CAAC;QACb,YAAY,EAAE,SAAS;QACvB,WAAW,EAAE,CAAC;KACf;IACD,WAAW,EAAE;QACX,kBAAkB,EAAE,CAAC;QACrB,aAAa,EAAE,CAAC;QAChB,UAAU,EAAE,CAAC;QACb,YAAY,EAAE,SAAS;QACvB,WAAW,EAAE,CAAC;KACf;IACD,SAAS,EAAE;QACT,kBAAkB,EAAE,CAAC;QACrB,aAAa,EAAE,CAAC;QAChB,UAAU,EAAE,CAAC;QACb,YAAY,EAAE,SAAS;QACvB,WAAW,EAAE,CAAC;KACf;IACD,WAAW,EAAE;QACX,kBAAkB,EAAE,CAAC;QACrB,aAAa,EAAE,CAAC;QAChB,UAAU,EAAE,EAAE;QACd,YAAY,EAAE,QAAQ;QACtB,WAAW,EAAE,CAAC;KACf;IACD,OAAO,EAAE;QACP,kBAAkB,EAAE,CAAC;QACrB,aAAa,EAAE,CAAC;QAChB,UAAU,EAAE,EAAE;QACd,YAAY,EAAE,MAAM;QACpB,WAAW,EAAE,CAAC;KACf;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAA8B;IAC1D,OAAO,EAAE,CAAC;IACV,MAAM,EAAE,CAAC;IACT,IAAI,EAAE,CAAC;CACR,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,cAAc,EAAE,IAAI;IACpB,YAAY,EAAE,IAAI;IAClB,aAAa,EAAE,CAAC;IAChB,WAAW,EAAE,EAAE;CACP,CAAC;AAEX,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,iBAAiB,EAAE,CAAC;IACpB,mBAAmB,EAAE,CAAC;IACtB,qBAAqB,EAAE,EAAE;IACzB,uBAAuB,EAAE,CAAC;IAC1B,yBAAyB,EAAE,CAAC;IAC5B,uBAAuB,EAAE,EAAE;IAC3B,mBAAmB,EAAE,EAAE;IACvB,wBAAwB,EAAE,CAAC;IAC3B,uBAAuB,EAAE,EAAE;CACnB,CAAC;AAEX,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,uBAAuB,EAAE,CAAC;IAC1B,sBAAsB,EAAE,CAAC;IACzB,2BAA2B,EAAE,CAAC;IAC9B,eAAe,EAAE,CAAC;IAClB,eAAe,EAAE,CAAC;CACV,CAAC;AAEX,MAAM,CAAC,MAAM,uBAAuB,GAAqC;IACvE,SAAS,EAAE,CAAC;IACZ,WAAW,EAAE,CAAC;IACd,SAAS,EAAE,CAAC;IACZ,WAAW,EAAE,CAAC;IACd,OAAO,EAAE,EAAE;CACZ,CAAC;AAEF,MAAM,CAAC,MAAM,gCAAgC,GAAG;IAC9C,OAAO,EAAE;QACP,SAAS,EAAE,CAAC;QACZ,uBAAuB,EAAE,CAAC;QAC1B,kBAAkB,EAAE,CAAC;KACtB;IACD,KAAK,EAAE;QACL,YAAY,EAAE,CAAC;QACf,aAAa,EAAE,CAAC;QAChB,gBAAgB,EAAE,CAAC;QACnB,qBAAqB,EAAE,CAAC;KACzB;CACO,CAAC;AAEX,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,cAAc,EAAE,EAAE;IAClB,kBAAkB,EAAE,EAAE;IACtB,eAAe,EAAE,CAAC;IAClB,qBAAqB,EAAE,CAAC;CAChB,CAAC;AAEX,MAAM,UAAU,2BAA2B,CAAC,MAAwB;IAClE,OAAO,uBAAuB,CAAC,MAAM,CAAC,CAAC;AACzC,CAAC"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Phase 7 — hook promotion rules.
|
|
3
|
+
*
|
|
4
|
+
* Architect produces a pool of hook seeds (every row in the initial
|
|
5
|
+
* pending_hooks table is conceptually a seed). Not every seed belongs in
|
|
6
|
+
* the live `pending_hooks.md` ledger — pushing all of them there turns the
|
|
7
|
+
* ledger into noise within a few chapters.
|
|
8
|
+
*
|
|
9
|
+
* A seed is *promoted* into the ledger when any of these four conditions
|
|
10
|
+
* holds. The consolidator (maintains pending_hooks.md post-chapter) calls
|
|
11
|
+
* `shouldPromoteHook` for every tracked seed, and the ledger retains only
|
|
12
|
+
* the hooks that cross the threshold.
|
|
13
|
+
*
|
|
14
|
+
* 1. cross_volume — the hook spans volume boundaries. It either pays off
|
|
15
|
+
* in a later volume, or depends on hooks declared in a later volume.
|
|
16
|
+
* 2. advanced_count >= 2 — the hook has been advanced/pushed in two or
|
|
17
|
+
* more chapters since planting, proving readers already track it.
|
|
18
|
+
* 3. depends_on non-empty — the hook has upstream causal dependencies
|
|
19
|
+
* worth tracking, even if it hasn't been touched recently.
|
|
20
|
+
* 4. core_hook === true — architect marked this hook as main-line
|
|
21
|
+
* load-bearing; it always belongs in the ledger.
|
|
22
|
+
*/
|
|
23
|
+
import type { StoredHook } from "../state/memory-db.js";
|
|
24
|
+
export interface VolumeBoundary {
|
|
25
|
+
readonly name: string;
|
|
26
|
+
readonly startCh: number;
|
|
27
|
+
readonly endCh: number;
|
|
28
|
+
}
|
|
29
|
+
export interface PromotionContext {
|
|
30
|
+
/** Volume boundaries parsed from outline/volume_map.md, ordered by startCh. */
|
|
31
|
+
readonly volumeBoundaries: ReadonlyArray<VolumeBoundary>;
|
|
32
|
+
/** Current chapter number (0 at book creation). */
|
|
33
|
+
readonly currentChapter: number;
|
|
34
|
+
/** Hook id -> advanced count (how many chapters advanced this hook since planting). */
|
|
35
|
+
readonly advancedCounts: ReadonlyMap<string, number>;
|
|
36
|
+
/**
|
|
37
|
+
* Hook id -> start chapter lookup for every seed (including unpromoted ones).
|
|
38
|
+
* Used to tell whether a `depends_on` target is declared in a later volume.
|
|
39
|
+
*/
|
|
40
|
+
readonly allSeedStartChapters: ReadonlyMap<string, number>;
|
|
41
|
+
}
|
|
42
|
+
export interface PromotionDecision {
|
|
43
|
+
readonly promote: boolean;
|
|
44
|
+
readonly reasons: ReadonlyArray<PromotionReason>;
|
|
45
|
+
}
|
|
46
|
+
export type PromotionReason = "cross_volume" | "advanced_count" | "depends_on" | "core_hook";
|
|
47
|
+
export declare function shouldPromoteHook(hook: StoredHook, context: PromotionContext): PromotionDecision;
|
|
48
|
+
/**
|
|
49
|
+
* Derive the default half-life (in chapters) for a hook that did not set it
|
|
50
|
+
* explicitly. Mirrors the prompt defaults: immediate/near-term = 10,
|
|
51
|
+
* mid-arc = 30, slow-burn/endgame = 80. Unknown timing falls to mid-arc.
|
|
52
|
+
*/
|
|
53
|
+
export declare function defaultHalfLifeChapters(payoffTiming: StoredHook["payoffTiming"] | undefined): number;
|
|
54
|
+
export declare function resolveHalfLifeChapters(hook: StoredHook): number;
|
|
55
|
+
/**
|
|
56
|
+
* Escape special regex characters in a string so it can be used as a
|
|
57
|
+
* literal pattern inside `new RegExp(...)`.
|
|
58
|
+
*/
|
|
59
|
+
export declare function escapeRegex(s: string): string;
|
|
60
|
+
export interface PromotionPassResult {
|
|
61
|
+
/** Whether any hook flipped to promoted=true. */
|
|
62
|
+
readonly updated: boolean;
|
|
63
|
+
/** The (possibly updated) hooks array. */
|
|
64
|
+
readonly hooks: ReadonlyArray<StoredHook>;
|
|
65
|
+
/** Number of hooks that flipped from non-promoted to promoted. */
|
|
66
|
+
readonly flippedCount: number;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Derive hook advancement counts from chapter_summaries.md content.
|
|
70
|
+
*
|
|
71
|
+
* Counts how many chapter-summary data rows mention each hook id in the
|
|
72
|
+
* hookActivity column (index 5, 0-based — "伏笔动态" / "hookActivity").
|
|
73
|
+
*/
|
|
74
|
+
export declare function deriveAdvancedCountsFromSummaries(summariesRaw: string, hookIds: ReadonlyArray<string>): Map<string, number>;
|
|
75
|
+
/**
|
|
76
|
+
* Lightweight promotion pass: read hooks + chapter_summaries, check
|
|
77
|
+
* advancedCount >= 2, flip promoted flag. No LLM calls.
|
|
78
|
+
*
|
|
79
|
+
* Returns the result without doing any I/O — caller decides whether to
|
|
80
|
+
* persist.
|
|
81
|
+
*/
|
|
82
|
+
export declare function rerunPromotionPass(hooks: ReadonlyArray<StoredHook>, summariesRaw: string): PromotionPassResult;
|
|
83
|
+
//# sourceMappingURL=hook-promotion.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hook-promotion.d.ts","sourceRoot":"","sources":["../../src/utils/hook-promotion.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAExD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,+EAA+E;IAC/E,QAAQ,CAAC,gBAAgB,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;IACzD,mDAAmD;IACnD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,uFAAuF;IACvF,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrD;;;OAGG;IACH,QAAQ,CAAC,oBAAoB,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC5D;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;CAClD;AAED,MAAM,MAAM,eAAe,GACvB,cAAc,GACd,gBAAgB,GAChB,YAAY,GACZ,WAAW,CAAC;AAEhB,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,gBAAgB,GACxB,iBAAiB,CA0BnB;AAkFD;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,YAAY,EAAE,UAAU,CAAC,cAAc,CAAC,GAAG,SAAS,GACnD,MAAM,CAYR;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAEhE;AAMD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE7C;AAED,MAAM,WAAW,mBAAmB;IAClC,iDAAiD;IACjD,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,0CAA0C;IAC1C,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IAC1C,kEAAkE;IAClE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED;;;;;GAKG;AACH,wBAAgB,iCAAiC,CAC/C,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,GAC7B,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAuBrB;AA+BD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,aAAa,CAAC,UAAU,CAAC,EAChC,YAAY,EAAE,MAAM,GACnB,mBAAmB,CA0BrB"}
|