kd-engine 1.0.0__py3-none-any.whl
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.
- kd_engine-1.0.0.dist-info/METADATA +19 -0
- kd_engine-1.0.0.dist-info/RECORD +118 -0
- kd_engine-1.0.0.dist-info/WHEEL +5 -0
- kd_engine-1.0.0.dist-info/entry_points.txt +2 -0
- kd_engine-1.0.0.dist-info/licenses/LICENSE-MIT +21 -0
- kd_engine-1.0.0.dist-info/top_level.txt +1 -0
- ytk/__init__.py +2 -0
- ytk/__main__.py +21 -0
- ytk/batch/__init__.py +39 -0
- ytk/batch/runner.py +1149 -0
- ytk/cache/__init__.py +34 -0
- ytk/cache/v2.py +562 -0
- ytk/cleaning/density.py +40 -0
- ytk/cleaning/fillers.py +18 -0
- ytk/cleaning/sentence_boundary.py +30 -0
- ytk/cleaning/service.py +62 -0
- ytk/cli.py +1281 -0
- ytk/commands/__init__.py +3 -0
- ytk/commands/merge.py +600 -0
- ytk/config.py +757 -0
- ytk/dedup/service.py +166 -0
- ytk/doctor.py +891 -0
- ytk/dotenv.py +334 -0
- ytk/errors.py +38 -0
- ytk/extraction/service.py +451 -0
- ytk/extraction/strategies/base.py +16 -0
- ytk/extraction/strategies/code_block.py +285 -0
- ytk/extraction/strategies/heuristic.py +791 -0
- ytk/extraction/strategies/local_model.py +56 -0
- ytk/extraction/text_context.py +177 -0
- ytk/extraction/visual_context.py +159 -0
- ytk/ingestion/adapters/__init__.py +1 -0
- ytk/ingestion/adapters/_common.py +865 -0
- ytk/ingestion/adapters/base.py +160 -0
- ytk/ingestion/adapters/bilibili.py +271 -0
- ytk/ingestion/adapters/douyin.py +445 -0
- ytk/ingestion/adapters/tiktok.py +102 -0
- ytk/ingestion/adapters/xiaohongshu.py +758 -0
- ytk/ingestion/adapters/youtube.py +74 -0
- ytk/ingestion/browser_acquired.py +220 -0
- ytk/ingestion/http_client.py +43 -0
- ytk/ingestion/local_import.py +202 -0
- ytk/ingestion/media.py +468 -0
- ytk/ingestion/providers/asr.py +902 -0
- ytk/ingestion/providers/base.py +13 -0
- ytk/ingestion/providers/dtk_client.py +816 -0
- ytk/ingestion/providers/minimax.py +350 -0
- ytk/ingestion/providers/transcript_api.py +336 -0
- ytk/ingestion/providers/xhs_client.py +646 -0
- ytk/ingestion/providers/ytdlp.py +400 -0
- ytk/ingestion/registry.py +189 -0
- ytk/ingestion/resolver.py +417 -0
- ytk/ingestion/search.py +56 -0
- ytk/ingestion/service.py +167 -0
- ytk/ingestion/subtitles.py +602 -0
- ytk/ingestion/transcript_cache.py +212 -0
- ytk/ingestion/url_parser.py +53 -0
- ytk/ingestion/video_frames.py +292 -0
- ytk/ingestion/ytdlp_acquire.py +754 -0
- ytk/logging.py +383 -0
- ytk/models/common.py +20 -0
- ytk/models/content.py +451 -0
- ytk/models/knowledge.py +43 -0
- ytk/models/migrations.py +262 -0
- ytk/models/skill.py +13 -0
- ytk/models/source.py +265 -0
- ytk/models/topic.py +18 -0
- ytk/models/transcript.py +30 -0
- ytk/ocr/__init__.py +65 -0
- ytk/ocr/engine.py +245 -0
- ytk/ocr/layout.py +347 -0
- ytk/ocr/pipeline.py +440 -0
- ytk/ocr/rapidocr_engine.py +144 -0
- ytk/pipeline/acquisition_checkpoint.py +240 -0
- ytk/pipeline/artifacts.py +18 -0
- ytk/pipeline/orchestrator.py +598 -0
- ytk/pipeline/processing_identity.py +18 -0
- ytk/pipeline/retry.py +728 -0
- ytk/pipeline/runners.py +578 -0
- ytk/pipeline/state.py +1107 -0
- ytk/pipeline/v2.py +1863 -0
- ytk/py.typed +1 -0
- ytk/quality/__init__.py +9 -0
- ytk/quality/completeness.py +260 -0
- ytk/renderers/base.py +9 -0
- ytk/renderers/citation_alignment.py +617 -0
- ytk/renderers/evidence_formatter.py +362 -0
- ytk/renderers/json_renderer.py +13 -0
- ytk/renderers/jsonl_renderer.py +18 -0
- ytk/renderers/knowledge_doc_renderer.py +1984 -0
- ytk/renderers/markdown_renderer.py +540 -0
- ytk/renderers/obsidian_renderer.py +138 -0
- ytk/renderers/skill_package.py +21 -0
- ytk/renderers/source_links.py +309 -0
- ytk/renderers/summary_renderer.py +163 -0
- ytk/renderers/v2.py +171 -0
- ytk/renderers/v2_jsonl.py +165 -0
- ytk/renderers/v2_markdown.py +477 -0
- ytk/renderers/v2_obsidian.py +113 -0
- ytk/renderers/v2_summary.py +220 -0
- ytk/segmentation/change_points.py +50 -0
- ytk/segmentation/embeddings.py +45 -0
- ytk/segmentation/service.py +318 -0
- ytk/skill_builder/__init__.py +1 -0
- ytk/skill_builder/builder.py +419 -0
- ytk/skill_builder/templates/SKILL.md.j2 +85 -0
- ytk/skill_builder/templates/evals/evals.json.j2 +25 -0
- ytk/skill_builder/templates/examples/example-input.md.j2 +5 -0
- ytk/skill_builder/templates/examples/example-output.md.j2 +8 -0
- ytk/skill_builder/templates/references/commands.md.j2 +34 -0
- ytk/skill_builder/templates/references/concepts.md.j2 +22 -0
- ytk/skill_builder/templates/references/configs.md.j2 +31 -0
- ytk/skill_builder/templates/references/evidence-policy.md.j2 +27 -0
- ytk/skill_builder/templates/references/source-summary.md.j2 +24 -0
- ytk/skill_builder/templates/scripts/build_skill.py.j2 +14 -0
- ytk/skill_builder/templates/scripts/validate_output.py.j2 +136 -0
- ytk/skill_builder/templates.py +29 -0
- ytk/text_normalization.py +44 -0
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: kd-engine
|
|
3
|
+
Version: 1.0.0
|
|
4
|
+
Summary: Knowledge distillation engine: multi-platform acquisition, evidence-linked extraction, cross-source synthesis.
|
|
5
|
+
License: Proprietary
|
|
6
|
+
Requires-Python: >=3.11
|
|
7
|
+
License-File: LICENSE-MIT
|
|
8
|
+
Requires-Dist: httpx>=0.27.0
|
|
9
|
+
Requires-Dist: jinja2>=3.1.4
|
|
10
|
+
Requires-Dist: pydantic>=2.7.0
|
|
11
|
+
Requires-Dist: rich>=13.7.1
|
|
12
|
+
Requires-Dist: typer>=0.12.3
|
|
13
|
+
Requires-Dist: yt-dlp>=2025.3.31
|
|
14
|
+
Requires-Dist: youtube-transcript-api<2,>=1.2
|
|
15
|
+
Provides-Extra: asr
|
|
16
|
+
Requires-Dist: faster-whisper==1.2.1; extra == "asr"
|
|
17
|
+
Requires-Dist: av==16.0.0; extra == "asr"
|
|
18
|
+
Requires-Dist: ctranslate2==4.8.4; extra == "asr"
|
|
19
|
+
Dynamic: license-file
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
kd_engine-1.0.0.dist-info/licenses/LICENSE-MIT,sha256=l9k8ehAZJ889ru1PSEwzaUccKJB_WIwh5FUdhUYiPyk,1065
|
|
2
|
+
ytk/__init__.py,sha256=oGVAMCW4YI5TTFccwG_yRcqhNh-6nMI1XrS5y60thy8,36
|
|
3
|
+
ytk/__main__.py,sha256=SfbGpqNoXm8Q7vEiL3p0sc_9Mcdcl0onxPZZc9XcLmY,859
|
|
4
|
+
ytk/cli.py,sha256=fkQ65TsdqHo32S61yiho-fIYVxG0Nc3LQhjjNahprPY,52211
|
|
5
|
+
ytk/config.py,sha256=-8ZA3gk-H3LN9c8siYBO_t3hTy3czrfDehu_-bShWQo,32010
|
|
6
|
+
ytk/doctor.py,sha256=J_MNeb8KLTOV1Y8JVKw1DZtX4u4Dg2CD-nCzaLg7b6g,39232
|
|
7
|
+
ytk/dotenv.py,sha256=H3QZDr_pTCt9ILgGF3DsfinkKEOGshPw0NCtEVRXmr4,13259
|
|
8
|
+
ytk/errors.py,sha256=WfIGH_IeuiZXWbUSlhm7DcZgcpiw3wJl7GDMNCMKkoU,1339
|
|
9
|
+
ytk/logging.py,sha256=x4foN2ApAlOLG7Mn0dOzl38LEEIRGsjGEGnM9fE5ikA,13165
|
|
10
|
+
ytk/py.typed,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
11
|
+
ytk/text_normalization.py,sha256=ta3GXA3k8aXqTBeoG5Uo3YuQeHu8fg_nOTl35Wex-1Y,1715
|
|
12
|
+
ytk/batch/__init__.py,sha256=KSaSZINfRLdyEmDvGv5bMl5b7eY1p4YkFXIp2D50BOk,955
|
|
13
|
+
ytk/batch/runner.py,sha256=dsMQbNwc8YcMU4gY9DpDMVtLTsTwv0IU7gE0ZxiGfnM,42901
|
|
14
|
+
ytk/cache/__init__.py,sha256=7ViUwfnHWYfEsELiHhZWWc7wZU3-d2gUgPXsjzUww60,900
|
|
15
|
+
ytk/cache/v2.py,sha256=zThaTx2TpWsozMWkHo5WjZ60GHiB5vK-ikx0cMaY2gw,20217
|
|
16
|
+
ytk/cleaning/density.py,sha256=5QyprdgqWiKmxDYVwLN6ETQ6___bY7v5wpWhiyX-vJc,845
|
|
17
|
+
ytk/cleaning/fillers.py,sha256=W7EVDLvKLTr54HBl0xlFyPbxDA40Kd7BD-nf4BqMl-Q,483
|
|
18
|
+
ytk/cleaning/sentence_boundary.py,sha256=1lLyYhaLk_F92MottIiW9Nna_4ZNwFHzh7yj1giQ8e4,1177
|
|
19
|
+
ytk/cleaning/service.py,sha256=vB4q-f5tW312BI6n5F44Yv7-bAdrPxQYWagp0uY5AsA,2567
|
|
20
|
+
ytk/commands/__init__.py,sha256=6uCJ9HeisNF-SBsIovAXFKK5aOZ6_aW-NtqWvIwrZdQ,176
|
|
21
|
+
ytk/commands/merge.py,sha256=rzF8XbGpEfNmaoGdNFQMDmGm1YR5G32PnOAjx7KwnGA,24033
|
|
22
|
+
ytk/dedup/service.py,sha256=J52mcziToQXIC21prrAECSXftEn2UhzZQpfqViaBtwQ,5440
|
|
23
|
+
ytk/extraction/service.py,sha256=6omzM8DAiD-BEZTEfWIb2KhtkiWtiVafQn5Ua_IFsf8,18745
|
|
24
|
+
ytk/extraction/text_context.py,sha256=ZvPszStUapY32xEswBrfaOHj8bJACenDgX_jDNQ8y7M,8948
|
|
25
|
+
ytk/extraction/visual_context.py,sha256=VJYhiZw0xbtXOuGuOrL5bRvPT-7BSjYh_Ek7m085irk,7183
|
|
26
|
+
ytk/extraction/strategies/base.py,sha256=jMrzYuHCMBQMzdCme5pTfFnkFMYytl-5rbov_9I7_D4,428
|
|
27
|
+
ytk/extraction/strategies/code_block.py,sha256=0esVvtoag5W74JUAlF_FN_qAWyfJfKu2wrY-rZsQcGo,12576
|
|
28
|
+
ytk/extraction/strategies/heuristic.py,sha256=1a4ohq4g35tFKAjeAaCAcO-N9iwGu076kKayzY50k7U,34826
|
|
29
|
+
ytk/extraction/strategies/local_model.py,sha256=stuXEWI8JF4JroTeAnQP7OLOPI5sUkqjHmQXwzXeBJw,1828
|
|
30
|
+
ytk/ingestion/browser_acquired.py,sha256=9MAxkAlk_NSuB4uoiliSkMOy3UosiCdLwuOB3DIDvNc,13020
|
|
31
|
+
ytk/ingestion/http_client.py,sha256=5CauRWbCZQMUlvZGJ00uaIfFxptyZxUmZ4SkNe9HKv8,1632
|
|
32
|
+
ytk/ingestion/local_import.py,sha256=ZjrYi-PGSk38mppBER37gS15S3JCzFQzoWyFCZfqAgc,12241
|
|
33
|
+
ytk/ingestion/media.py,sha256=xR_JoHowBsyoNJGs0yrFrIyC5twyx6qTpyIkZFGlpHw,17501
|
|
34
|
+
ytk/ingestion/registry.py,sha256=PtPAEYehiBsPfNRMxBcDGSxh93VbZmVfNB7xO-SaZ5c,7695
|
|
35
|
+
ytk/ingestion/resolver.py,sha256=kFwzBc7n5jQqQLX6_aTvLuimXywL6Pgw2fONSVFkqhk,15454
|
|
36
|
+
ytk/ingestion/search.py,sha256=7C3AZ-RCAvgVWN1iRBxd85PMSphUq6OzwWNusiy6BVM,1778
|
|
37
|
+
ytk/ingestion/service.py,sha256=FjzTb8JmG_2VYddJvSNOtdHn5LQ9YTmUzQrzh2GbTjg,7600
|
|
38
|
+
ytk/ingestion/subtitles.py,sha256=3QbVEGVAMQoqUZZFF5I_2PdcJU2jwN1pV_3tKJrUNUw,23071
|
|
39
|
+
ytk/ingestion/transcript_cache.py,sha256=xEjGc4q3PAKD32XddcRDdh8Fju3gT1PRCuf_eziissU,8839
|
|
40
|
+
ytk/ingestion/url_parser.py,sha256=K76ZiLJHTfg0QjXztv5xKZ2TtZQ3GixQlj26IVJScdM,1704
|
|
41
|
+
ytk/ingestion/video_frames.py,sha256=BADHFJbcxTmo6Jt9HR15JDjCWYq5ikhQG7SABRsCmUI,16927
|
|
42
|
+
ytk/ingestion/ytdlp_acquire.py,sha256=_QLhDKHEsS4ielorXglZwLztBi4VaXH8199eri_pFjQ,31843
|
|
43
|
+
ytk/ingestion/adapters/__init__.py,sha256=jJEVh1rbAqJdGo-FK8jyouMdxyzB7eWMNEYa0C47dQk,62
|
|
44
|
+
ytk/ingestion/adapters/_common.py,sha256=QHwloKqqBrAdjnmdoN4QQrm68KlPP25NoRwEVP-jc4Q,30432
|
|
45
|
+
ytk/ingestion/adapters/base.py,sha256=3wr9SKrDTb7-fF2VKpQ1-oaN-9AUAE3H_x9tqBHAfu4,6227
|
|
46
|
+
ytk/ingestion/adapters/bilibili.py,sha256=pv6vyj9mRb5I3lP2O7DS_Cfbs3rtOdrwPmFiu4ojGFY,11188
|
|
47
|
+
ytk/ingestion/adapters/douyin.py,sha256=FfdFdW3toiLQhCCwmSyVO-Ko9uD3qF95SPdGRQfc14Q,18318
|
|
48
|
+
ytk/ingestion/adapters/tiktok.py,sha256=T3qU8SOAMxgUrzoCH_nvHZt9I1KBoJQ946_qqByC8wc,3985
|
|
49
|
+
ytk/ingestion/adapters/xiaohongshu.py,sha256=LiX6HhAgit1kwoiLjl5RMZ4aUs4iUw1paNbUQoN9I8U,31745
|
|
50
|
+
ytk/ingestion/adapters/youtube.py,sha256=FagzFeVphETz6b7tGgrwcL0JlkHiFztxNH5VX9TRG7U,2797
|
|
51
|
+
ytk/ingestion/providers/asr.py,sha256=Pk2BY14kbvxhPvvoMuVZVBRgray4r9dVNw6dkH65uSM,37239
|
|
52
|
+
ytk/ingestion/providers/base.py,sha256=-PAlpLC6vdlWv2jjUGplPEZseNodhkJknpyW8ve4mr0,363
|
|
53
|
+
ytk/ingestion/providers/dtk_client.py,sha256=RCbQo8eni5xO6jjFzmv9-sN_myVUS308tXOyqe75bfo,34866
|
|
54
|
+
ytk/ingestion/providers/minimax.py,sha256=ZxuH-HT3DTtb-xPcwhoLMQ1Bx4SVJjKxypcpUZpb_sA,12903
|
|
55
|
+
ytk/ingestion/providers/transcript_api.py,sha256=h85Lbe6qq8yJEP3h7no5llRpmmrhEyIXLDdBYI5MlRk,12779
|
|
56
|
+
ytk/ingestion/providers/xhs_client.py,sha256=fygciy0Z1nSjfUz6EQXT6UozRo-5hAXdmWUWJeDReQ8,25414
|
|
57
|
+
ytk/ingestion/providers/ytdlp.py,sha256=yHz-b92mwFPP3e9hSsU6Z5qZslqYshxWaoaxe8yYDIk,14942
|
|
58
|
+
ytk/models/common.py,sha256=WqvoI2mS0H0QRGYag8FycEsV0TVe4xM7FNYKwFa9zzE,568
|
|
59
|
+
ytk/models/content.py,sha256=AtcFucf4OWV27_2u7MIl1dVaj0J4FyjnIrANRCToIfs,17599
|
|
60
|
+
ytk/models/knowledge.py,sha256=BzjtlPVrZLt8DVcURvhocnwM45e0r3nIf3BoFlE4f-s,1059
|
|
61
|
+
ytk/models/migrations.py,sha256=cRwojFH_0HCj9lazL1NSqW7YXlJ7NpeqeN5LPtXfrLM,9861
|
|
62
|
+
ytk/models/skill.py,sha256=yJdPxi1HxrpPfS9pZ5ItqSqYm9Ik-ulWo6wh6pacglQ,348
|
|
63
|
+
ytk/models/source.py,sha256=t1HoZJGptD1-vtBBa4_0cC_kauqy7JKWHBkTORnrWYM,10016
|
|
64
|
+
ytk/models/topic.py,sha256=peREO9XtHUO2X-nVqWCqV-SEchcT4BGxrL2mG1xWlxc,549
|
|
65
|
+
ytk/models/transcript.py,sha256=tFT7NucToMbXEvmj5-DBFwVKU4Fyo-TO44j4rHkifoo,815
|
|
66
|
+
ytk/ocr/__init__.py,sha256=Vcejhs1YmBSwTFH_6fzM-w4zR9Vjs8izB-G0hRdFwAE,1722
|
|
67
|
+
ytk/ocr/engine.py,sha256=ipY23yQlozPp05Z_mtZaP6wzxT8DmQ1lDxJUENEwoTY,8547
|
|
68
|
+
ytk/ocr/layout.py,sha256=cINkCCljyIu2b_YMSVo6oybYqb3zXi3BVn6DQP1t78M,11482
|
|
69
|
+
ytk/ocr/pipeline.py,sha256=QDnU8UeXIAkYX5AmiM8Li5h9lV_vVESMPgHbE6OqcDA,16034
|
|
70
|
+
ytk/ocr/rapidocr_engine.py,sha256=yA5i9Qt6GnjcUF48Faq8Xo0D_Uu3CWAs8eYb7wU_Kiw,5582
|
|
71
|
+
ytk/pipeline/acquisition_checkpoint.py,sha256=4Mbe_P6chn510Cb0Fen3edWPsQXIAprEkdV8tjW8MBI,11735
|
|
72
|
+
ytk/pipeline/artifacts.py,sha256=hTJO-EVbg1E8WAZlOWC4YH2Pc0bXJOlgTKWy70niSR4,403
|
|
73
|
+
ytk/pipeline/orchestrator.py,sha256=ks-yxvT6Vw9mPsFBYrtJTUUF1J5n6CAek3kFcrCVbL4,26134
|
|
74
|
+
ytk/pipeline/processing_identity.py,sha256=CsaXdk53XIz0JrMCQGI4djUidpDEIa_3dLDIaZjiD7A,739
|
|
75
|
+
ytk/pipeline/retry.py,sha256=ZkDHAQEvRZwk5agMQtxeh5BFZ3hIJ3G7Qn_J2UYYujo,23000
|
|
76
|
+
ytk/pipeline/runners.py,sha256=rF8tOJUfHzpXaoADKCUV4c0XaffMTyzNOJpsX3u6KeI,26841
|
|
77
|
+
ytk/pipeline/state.py,sha256=lRe8ld9ARVitt0jo0ghNx3xZkH3dvXEoFDSRWoc_Ifo,44225
|
|
78
|
+
ytk/pipeline/v2.py,sha256=o5reEPtKmzRzira0V7dZmJW7lYRcpfDsCsOir2dTcaA,85402
|
|
79
|
+
ytk/quality/__init__.py,sha256=b_UNk_DX5mknivpKX9XHmk1zR9VDC18Vg9gaGZKUTNs,250
|
|
80
|
+
ytk/quality/completeness.py,sha256=7ECXnChMCZ8-_h7m9SGAv90WzQztaMdj9AwCADBYeR8,11021
|
|
81
|
+
ytk/renderers/base.py,sha256=s-S3FQUZnQPzAIyWtHMRRPIpMFeUaHv_W87UAtrVaCQ,241
|
|
82
|
+
ytk/renderers/citation_alignment.py,sha256=Gi3csx1FdWDSpSb4YISZTzetJJa7SCP6Rlorm7ZG31g,24818
|
|
83
|
+
ytk/renderers/evidence_formatter.py,sha256=Kz2Qd8mtUqNvEtkosHt47U-dMMlZFaTVUP6JXzxO6vk,14624
|
|
84
|
+
ytk/renderers/json_renderer.py,sha256=W4032Btb7rw_IUgPwfbhH7-ABdnqQ_1pd8qjKzvVzr4,360
|
|
85
|
+
ytk/renderers/jsonl_renderer.py,sha256=fsjDDv6JCrEO6X7wuBEM-MXPUee9FxGKdkhYrsIigFU,648
|
|
86
|
+
ytk/renderers/knowledge_doc_renderer.py,sha256=HQ6qzDBXEjHLGlYHWt8sA9HIISg3J0Fez0M7d-NzX9o,91156
|
|
87
|
+
ytk/renderers/markdown_renderer.py,sha256=wa0rE_h4ITgrNxAKCI8UtBZvxR4qaW-2J9t7VVON7Rk,21880
|
|
88
|
+
ytk/renderers/obsidian_renderer.py,sha256=JKJzLe0v_jdyj1zhkawBk8VGAEM0NyDz7HzRNZ2wZlA,5397
|
|
89
|
+
ytk/renderers/skill_package.py,sha256=PbHkT7NtvbQ5RDUI0NOt8dSbDZ5ks5fgXe6pDjNm-Rk,681
|
|
90
|
+
ytk/renderers/source_links.py,sha256=ZEqVkNPKhDWsTCx32pya4qIhf-omBHTc1sDKP5R3Q84,11314
|
|
91
|
+
ytk/renderers/summary_renderer.py,sha256=e79wPHdiXOR0NhovwvfmXZipERKgRJLp6aDAdtowQB4,7742
|
|
92
|
+
ytk/renderers/v2.py,sha256=fchU_EncmTxHPfxzWtDe0HzDeWhEtHvcaOLZARF9kXU,6230
|
|
93
|
+
ytk/renderers/v2_jsonl.py,sha256=brdr9yypKFB6GXjcE4LnIjWu5F1AOUO9DtDIYIA4XKE,6516
|
|
94
|
+
ytk/renderers/v2_markdown.py,sha256=suUrTcQPQ_zh0YzwbtsOJ38bTUO-RpYpBGGZa7DZcw0,20589
|
|
95
|
+
ytk/renderers/v2_obsidian.py,sha256=C45wNnyFxhPxS7rSvAXsXS3oZk797E-wRFn3Blzj1Jw,4281
|
|
96
|
+
ytk/renderers/v2_summary.py,sha256=s1ZmRAYYTH7kfEfhJc4NBnfRcMTgttxLhnYTYQeZLjI,7883
|
|
97
|
+
ytk/segmentation/change_points.py,sha256=HOwFKE9SUZKXkf-hqv1XpHsepKkVUaaDplW_2tH4kLI,1488
|
|
98
|
+
ytk/segmentation/embeddings.py,sha256=Yn8nUJEQFLEdNuqnX5F5Uu2jrjaQQNSzbwQGodOIeVE,1412
|
|
99
|
+
ytk/segmentation/service.py,sha256=5yQX099PJY1lwpPbddr3hvypjIfkzkn8391adlmH-d4,11929
|
|
100
|
+
ytk/skill_builder/__init__.py,sha256=is_RQZAMdZXkYsXqRu4NQbT10UOwT4jMxiW0RVe8Ens,40
|
|
101
|
+
ytk/skill_builder/builder.py,sha256=3mhkC74_NJw9Shr6a8kfVEvv6CW5KkbH5OoR3P6brS4,15081
|
|
102
|
+
ytk/skill_builder/templates.py,sha256=fOmIf5axeoz_m0zvwegPS5nKJkpeQyw5w7xI8AAbQ20,963
|
|
103
|
+
ytk/skill_builder/templates/SKILL.md.j2,sha256=MWdyHCSRDqgUoUkdDNWNXrCc1X3mtolYxx4cO8xbdoA,3536
|
|
104
|
+
ytk/skill_builder/templates/evals/evals.json.j2,sha256=vzn4NS9kGHKx3cS43ns0REeSzj7EyOgGdkXmow4-ZoA,822
|
|
105
|
+
ytk/skill_builder/templates/examples/example-input.md.j2,sha256=TrOyAvD83n5AANWqz2Ei4QzBGg3NuqT_DD9voKPjdv0,208
|
|
106
|
+
ytk/skill_builder/templates/examples/example-output.md.j2,sha256=pNlJszgMWVJrIVIWfeji-QQiwGMJW31XeWxUil0YJSo,361
|
|
107
|
+
ytk/skill_builder/templates/references/commands.md.j2,sha256=FH3Ma7hQR5xW2YcKRfjmn7i-OhaSdW6zzYooVzEB3sw,1192
|
|
108
|
+
ytk/skill_builder/templates/references/concepts.md.j2,sha256=WC45cqYd3I2Gv_r5D7PgiuUl33D2X2-eZIV7R2iaNX0,694
|
|
109
|
+
ytk/skill_builder/templates/references/configs.md.j2,sha256=k9WI4x6Ne7yG36l8lnzKzAhGLcQgpVyDOyFOo5PhMWU,1101
|
|
110
|
+
ytk/skill_builder/templates/references/evidence-policy.md.j2,sha256=uYwwyoLtRSyx0vBqcQRCdbK4ItZNfxqw_HLQfqDjhEg,1108
|
|
111
|
+
ytk/skill_builder/templates/references/source-summary.md.j2,sha256=6GwAgYET-mlaCPhkXfio6--7ka8BPg8oEyf4X_eDoZo,828
|
|
112
|
+
ytk/skill_builder/templates/scripts/build_skill.py.j2,sha256=c5sK1IJNM1KB82SerYBGI3ef4ynUr37s-vU2Jzt9eGg,327
|
|
113
|
+
ytk/skill_builder/templates/scripts/validate_output.py.j2,sha256=Qi9RX2HhN1-w2ZJ6bOdtA1_H-JdQjj62moiv5kCS-EI,4268
|
|
114
|
+
kd_engine-1.0.0.dist-info/METADATA,sha256=uSxg8ea8EwNbINw9geO4fSbbvR6Y6SHF2qZ21gvsOZE,656
|
|
115
|
+
kd_engine-1.0.0.dist-info/WHEEL,sha256=mOdXR9C3wMVov7cSY8PY-XCzo3SmmWCHvGQr5csJoao,91
|
|
116
|
+
kd_engine-1.0.0.dist-info/entry_points.txt,sha256=neg4klyUQSZL9mCsgs1jUZKDMNk-dIiphxusKDOlZ0c,42
|
|
117
|
+
kd_engine-1.0.0.dist-info/top_level.txt,sha256=oh8et_GI_Yahoq6uj6tqUcCrpHyMJuUp4WBhlKRaL2Q,4
|
|
118
|
+
kd_engine-1.0.0.dist-info/RECORD,,
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Shockang
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
ytk
|
ytk/__init__.py
ADDED
ytk/__main__.py
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"""``python -m ytk`` entry point.
|
|
2
|
+
|
|
3
|
+
The ``YTK_NO_DOTENV=1`` guard must take effect *before* any project module
|
|
4
|
+
that could read environment files is imported, so this entry talks to the
|
|
5
|
+
stdlib-only :mod:`ytk.dotenv` loader directly instead of importing
|
|
6
|
+
``ytk.cli`` first (``ytk.cli`` pulls in config/pipeline/doctor and is much
|
|
7
|
+
heavier). ``import ytk.cli`` itself never mutates ``os.environ``.
|
|
8
|
+
|
|
9
|
+
Root-cause note (2026-08-18 cron incident): the project ``.env`` is loaded at
|
|
10
|
+
the CLI entry so a caller running from an arbitrary cwd still gets the same
|
|
11
|
+
keys the ``.env`` author intended. The same behaviour is preserved here for
|
|
12
|
+
normal users; offline checks set ``YTK_NO_DOTENV=1`` and the file is not even
|
|
13
|
+
opened.
|
|
14
|
+
"""
|
|
15
|
+
from ytk.dotenv import load_project_dotenv
|
|
16
|
+
|
|
17
|
+
load_project_dotenv()
|
|
18
|
+
|
|
19
|
+
from ytk.cli import app # noqa: E402 (must follow the dotenv guard)
|
|
20
|
+
|
|
21
|
+
app()
|
ytk/batch/__init__.py
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"""Batch execution helpers (T40.1/T40.2).
|
|
2
|
+
|
|
3
|
+
The CLI ``batch run`` command is a thin wrapper over
|
|
4
|
+
:func:`ytk.batch.runner.run_batch`; identity, stable directories, dedupe,
|
|
5
|
+
per-format resume and the per-platform/format/status report all live here so
|
|
6
|
+
``cli.py`` stays thin.
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
from __future__ import annotations
|
|
10
|
+
|
|
11
|
+
from ytk.batch.runner import (
|
|
12
|
+
BATCH_ALIASES_FILENAME,
|
|
13
|
+
BATCH_MARKER_FILENAME,
|
|
14
|
+
BATCH_REPORT_FILENAME,
|
|
15
|
+
BatchReport,
|
|
16
|
+
SourceResult,
|
|
17
|
+
default_formats_for,
|
|
18
|
+
legacy_output_dirs,
|
|
19
|
+
requested_formats_for,
|
|
20
|
+
resolve_batch_identity,
|
|
21
|
+
run_batch,
|
|
22
|
+
stable_output_dir,
|
|
23
|
+
stable_source_dirname,
|
|
24
|
+
)
|
|
25
|
+
|
|
26
|
+
__all__ = [
|
|
27
|
+
"BATCH_ALIASES_FILENAME",
|
|
28
|
+
"BATCH_MARKER_FILENAME",
|
|
29
|
+
"BATCH_REPORT_FILENAME",
|
|
30
|
+
"BatchReport",
|
|
31
|
+
"SourceResult",
|
|
32
|
+
"default_formats_for",
|
|
33
|
+
"legacy_output_dirs",
|
|
34
|
+
"requested_formats_for",
|
|
35
|
+
"resolve_batch_identity",
|
|
36
|
+
"run_batch",
|
|
37
|
+
"stable_output_dir",
|
|
38
|
+
"stable_source_dirname",
|
|
39
|
+
]
|