@gobing-ai/knowledge-kit 0.0.33 → 0.0.35
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/.claude-plugin/marketplace.json +1 -1
- package/dist/index.js +25191 -24167
- package/package.json +4 -4
- package/plugins/generations/content-gen/dist/index.js +9 -9
- package/plugins/generations/core-facts-gen/dist/index.js +12 -12
- package/plugins/generations/daily-article-gen/dist/index.js +31 -23
- package/plugins/generations/daily-article-gen/src/index.ts +39 -14
- package/plugins/generations/dailynews-gen/dist/index.js +23 -21
- package/plugins/generations/dailynews-gen/src/script-builder.ts +30 -26
- package/plugins/generations/episode-plan-gen/dist/index.js +12 -12
- package/plugins/generations/gemini-tts/dist/index.js +13 -12
- package/plugins/generations/image-gen/dist/index.js +26 -11
- package/plugins/generations/image-gen/presets/formats/xhs-card.yaml +16 -14
- package/plugins/generations/image-gen/presets/styles/xhs-knowledge.yaml +2 -2
- package/plugins/generations/image-gen/src/compose/card.ts +17 -2
- package/plugins/generations/news-report-gen/dist/index.js +12 -12
- package/plugins/generations/omni-voice-gen/plugin.json +1 -1
- package/plugins/generations/voice-gen/dist/index.js +13 -12
- package/plugins/generations/voice-gen/src/index.ts +9 -3
- package/plugins/ingestions/aihot-ingest/dist/index.js +12 -12
- package/plugins/ingestions/horizon-ingest/dist/index.js +12 -12
- package/plugins/ingestions/karakeep-local/dist/index.js +13 -13
- package/plugins/ingestions/last30days-ingest/dist/index.js +12 -12
- package/plugins/ingestions/web-search/dist/index.js +10 -10
- package/plugins/kk/decisions/extract/ai-news.yaml +6 -0
- package/plugins/kk/decisions/kk-items.yaml +69 -3
- package/plugins/kk/plugin.json +1 -1
- package/plugins/kk/scripts/daily-stages.ts +834 -87
- package/plugins/kk/scripts/daily-voice-style.zh.md +15 -10
- package/plugins/kk/scripts/kk-workflow-stages.ts +46 -3
- package/plugins/kk/skills/content-safety/SKILL.md +1 -1
- package/plugins/kk/skills/content-safety/references/platforms/apple-podcasts.md +2 -2
- package/plugins/kk/skills/content-safety/references/platforms/wechatmp.md +2 -2
- package/plugins/kk/skills/content-safety/references/platforms/xiaoyuzhou.md +4 -2
- package/plugins/kk/workflows/kk-collect.yaml +7 -9
- package/plugins/kk/workflows/kk-daily-ai-voice.yaml +32 -7
- package/plugins/kk/workflows/kk-daily-ai-voice2.yaml +169 -47
- package/plugins/kk/workflows/kk-daily-safety.yaml +9 -12
- package/plugins/publishings/emdash-pub/dist/index.js +9 -9
- package/plugins/publishings/infoq-pub/dist/index.js +22 -22
- package/plugins/publishings/infoq-pub/dist/profile-check.js +30336 -0
- package/plugins/publishings/infoq-pub/plugin.json +1 -1
- package/plugins/publishings/juejin-pub/dist/index.js +22 -22
- package/plugins/publishings/juejin-pub/dist/profile-check.js +30322 -0
- package/plugins/publishings/juejin-pub/plugin.json +1 -1
- package/plugins/publishings/medium-pub/dist/index.js +9 -9
- package/plugins/publishings/podcast-pub/dist/index.js +9 -9
- package/plugins/publishings/qiita-pub/dist/index.js +9 -9
- package/plugins/publishings/substack-pub/dist/index.js +22 -22
- package/plugins/publishings/substack-pub/dist/profile-check.js +30392 -0
- package/plugins/publishings/substack-pub/plugin.json +1 -1
- package/plugins/publishings/surfdash-pub/dist/index.js +9 -9
- package/plugins/publishings/wechatmp-pub/dist/index.js +329 -154
- package/plugins/publishings/wechatmp-pub/dist/profile-check.js +30271 -0
- package/plugins/publishings/wechatmp-pub/plugin.json +1 -1
- package/plugins/publishings/wechatmp-pub/src/enrich.ts +106 -145
- package/plugins/publishings/wechatmp-pub/src/flow.ts +283 -42
- package/plugins/publishings/wechatmp-pub/src/page.ts +20 -0
- package/plugins/publishings/x-pub/dist/index.js +22 -22
- package/plugins/publishings/x-pub/dist/profile-check.js +30328 -0
- package/plugins/publishings/x-pub/plugin.json +1 -1
- package/plugins/publishings/xhs-pub/dist/index.js +76 -27
- package/plugins/publishings/xhs-pub/dist/profile-check.js +30538 -0
- package/plugins/publishings/xhs-pub/plugin.json +1 -1
- package/plugins/publishings/xhs-pub/src/flow.ts +9 -3
- package/plugins/publishings/xhs-pub/src/index.ts +111 -5
- package/plugins/publishings/zenn-pub/dist/index.js +9 -9
- package/plugins/generations/omni-voice-gen/dist/omni-voice-gen-prr8skpb. +0 -2
- package/plugins/generations/omni-voice-gen/dist/omni-voice-gen.js +0 -6
|
@@ -313,32 +313,46 @@ export function buildNewsVoiceScript(docs: Doc[], options?: ScriptBuilderOptions
|
|
|
313
313
|
const defaultEffectPreset = options?.effectPreset;
|
|
314
314
|
const broadcastDate = options?.date ?? new Date();
|
|
315
315
|
const dateStr = formatBroadcastDate(broadcastDate, language);
|
|
316
|
+
// Canonical episode identifier: date-only, matching daily-article-gen's `episodeTitle`. One
|
|
317
|
+
// title has to cover the post body, ID3, RSS and the show notes, so the voicescript default
|
|
318
|
+
// must not invent its own form (it used to be `共N条`, which disagreed with the article title
|
|
319
|
+
// on every path where the workflow passes no explicit title).
|
|
320
|
+
const episodeDate = `${broadcastDate.getFullYear()}-${String(broadcastDate.getMonth() + 1).padStart(2, '0')}-${String(broadcastDate.getDate()).padStart(2, '0')}`;
|
|
321
|
+
// Column of 咸话咸说. The show is not the speaker; the host is.
|
|
322
|
+
const showName = '咸话咸说之每日AI乱炖';
|
|
323
|
+
let hostName =
|
|
324
|
+
(options?.speakers?.host?.name as string) ||
|
|
325
|
+
voiceProfile.replace(/[-_]?(news|voice|bot|profile)$/i, '') ||
|
|
326
|
+
voiceProfile;
|
|
327
|
+
if (hostName.length > 0) {
|
|
328
|
+
hostName = hostName.charAt(0).toUpperCase() + hostName.slice(1);
|
|
329
|
+
}
|
|
316
330
|
|
|
317
331
|
if (docs.length === 0) {
|
|
318
|
-
const title = options?.title || (isZh ? 'AI
|
|
332
|
+
const title = options?.title || (isZh ? '每日AI乱炖(暂无更新)' : '每日AI乱炖 (No Updates)');
|
|
319
333
|
const segments: VoiceScriptSegment[] = isZh
|
|
320
334
|
? [
|
|
321
335
|
{
|
|
322
|
-
//
|
|
323
|
-
//
|
|
324
|
-
text: `大家好,今天是${dateStr}
|
|
336
|
+
// Honest no-content episode: names the show and the host, and never claims
|
|
337
|
+
// a news digest happened.
|
|
338
|
+
text: `大家好,今天是${dateStr}。这里是由${hostName}为你带来的${showName}。今天没有足够扎实的可聊内容。`,
|
|
325
339
|
gap_ms: 400,
|
|
326
340
|
emotion: 'calm',
|
|
327
341
|
},
|
|
328
342
|
{
|
|
329
|
-
text: `感谢您的收听,我是${
|
|
343
|
+
text: `感谢您的收听,我是${hostName},我们下期节目再见。`,
|
|
330
344
|
gap_ms: 200,
|
|
331
345
|
emotion: 'warm',
|
|
332
346
|
},
|
|
333
347
|
]
|
|
334
348
|
: [
|
|
335
349
|
{
|
|
336
|
-
text: `Hello
|
|
350
|
+
text: `Hello. Today is ${dateStr}. This is ${hostName}, bringing you ${showName}, our chat about AI tools, papers, and hands-on practice. There is nothing solid enough to share today.`,
|
|
337
351
|
gap_ms: 400,
|
|
338
352
|
emotion: 'calm',
|
|
339
353
|
},
|
|
340
354
|
{
|
|
341
|
-
text: `Thank you for listening. This is ${
|
|
355
|
+
text: `Thank you for listening. This is ${hostName}, and have a great day.`,
|
|
342
356
|
gap_ms: 200,
|
|
343
357
|
emotion: 'warm',
|
|
344
358
|
},
|
|
@@ -356,17 +370,9 @@ export function buildNewsVoiceScript(docs: Doc[], options?: ScriptBuilderOptions
|
|
|
356
370
|
});
|
|
357
371
|
}
|
|
358
372
|
|
|
359
|
-
const title = options?.title ||
|
|
373
|
+
const title = options?.title || `每日AI乱炖 · ${episodeDate}`;
|
|
360
374
|
const segments: VoiceScriptSegment[] = [];
|
|
361
375
|
|
|
362
|
-
let hostName =
|
|
363
|
-
(options?.speakers?.host?.name as string) ||
|
|
364
|
-
voiceProfile.replace(/[-_]?(news|voice|bot|profile)$/i, '') ||
|
|
365
|
-
voiceProfile;
|
|
366
|
-
if (hostName.length > 0) {
|
|
367
|
-
hostName = hostName.charAt(0).toUpperCase() + hostName.slice(1);
|
|
368
|
-
}
|
|
369
|
-
|
|
370
376
|
// F613: the plan owns the words on the zh path; en keeps templates (design: substitution is
|
|
371
377
|
// zh-only). Items are matched to docs by id and doc order wins; plan item order is ignored.
|
|
372
378
|
const scriptPlan = isZh ? options?.scriptPlan : undefined;
|
|
@@ -384,10 +390,9 @@ export function buildNewsVoiceScript(docs: Doc[], options?: ScriptBuilderOptions
|
|
|
384
390
|
? scriptPlan
|
|
385
391
|
? // F613: fixed greeting stays builder-owned; the plan only fills the slot between
|
|
386
392
|
// greeting and first story (the template tail 从「今天科技圈有几条…正题。」 is replaced).
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
: `Hello and welcome. Today is ${dateStr}. This is ${hostName} with AI 乱炖, where we talk about AI tools, papers, and hands-on practice. In today's episode, we have ${countText} stories. Let's dive straight in.`;
|
|
393
|
+
`大家好,今天是${dateStr}。这里是由${hostName}为你带来的${showName}。${scriptPlan.intro}`
|
|
394
|
+
: `大家好,今天是${dateStr}。这里是由${hostName}为你带来的${showName}。今天我从 AI 工具、论文和实践中整理了${countText}值得聊的内容${titlesSummary ? `,包括${titlesSummary}` : ''},咱们一条条来聊。`
|
|
395
|
+
: `Hello. Today is ${dateStr}. This is ${hostName}, bringing you ${showName}, where we talk about AI tools, papers, and hands-on practice. In today's episode, we have ${countText} stories. Let's dive straight in.`;
|
|
391
396
|
|
|
392
397
|
segments.push({
|
|
393
398
|
text: normalizeBroadcastText(introText, isZh),
|
|
@@ -451,14 +456,13 @@ export function buildNewsVoiceScript(docs: Doc[], options?: ScriptBuilderOptions
|
|
|
451
456
|
});
|
|
452
457
|
|
|
453
458
|
// 3. Outro segment: Warm, conversational wrap-up. F613: the plan outro replaces the template
|
|
454
|
-
// wrap-up head; the fixed sign-off stays builder-owned.
|
|
455
|
-
//
|
|
456
|
-
// so it is spoken in every episode — Apple Podcasts guideline 1.11 requires it in the content.
|
|
459
|
+
// wrap-up head; the fixed sign-off stays builder-owned. The column settings already state
|
|
460
|
+
// how the episode is produced, so the sign-off does not repeat an AI-production closer.
|
|
457
461
|
const outroText = isZh
|
|
458
462
|
? scriptPlan
|
|
459
|
-
? `${scriptPlan.outro}
|
|
460
|
-
:
|
|
461
|
-
: `That wraps up this episode of AI
|
|
463
|
+
? `${scriptPlan.outro}感谢您的收听,我是${hostName},祝您拥有充实高效的一天,我们下期节目不见不散!`
|
|
464
|
+
: `好了,本期每日AI乱炖就聊到这里。希望今天这些工具、论文和实践的经验对您有启发。感谢您的收听,我是${hostName},祝您拥有充实高效的一天,我们下期节目不见不散!`
|
|
465
|
+
: `That wraps up this episode of 每日AI乱炖. I hope today's takeaways were useful. Thank you for listening. This is ${hostName}, wishing you a productive and wonderful day. Until next time!`;
|
|
462
466
|
|
|
463
467
|
segments.push({
|
|
464
468
|
text: normalizeBroadcastText(outroText, isZh),
|
|
@@ -14642,7 +14642,7 @@ var init_zod = __esm(() => {
|
|
|
14642
14642
|
init_external();
|
|
14643
14643
|
});
|
|
14644
14644
|
|
|
14645
|
-
// ../../node_modules/.bun/@gobing-ai+ts-utils@0.5.
|
|
14645
|
+
// ../../node_modules/.bun/@gobing-ai+ts-utils@0.5.21/node_modules/@gobing-ai/ts-utils/dist/errors.js
|
|
14646
14646
|
var ErrorCode;
|
|
14647
14647
|
var init_errors3 = __esm(() => {
|
|
14648
14648
|
ErrorCode = {
|
|
@@ -14653,7 +14653,7 @@ var init_errors3 = __esm(() => {
|
|
|
14653
14653
|
};
|
|
14654
14654
|
});
|
|
14655
14655
|
|
|
14656
|
-
// ../../node_modules/.bun/@gobing-ai+ts-utils@0.5.
|
|
14656
|
+
// ../../node_modules/.bun/@gobing-ai+ts-utils@0.5.21/node_modules/@gobing-ai/ts-utils/dist/api-response.js
|
|
14657
14657
|
var API_ERROR_CODES, ERROR_CODE_TO_HTTP, CLIENT_SAFE_CODES;
|
|
14658
14658
|
var init_api_response = __esm(() => {
|
|
14659
14659
|
init_errors3();
|
|
@@ -14676,13 +14676,13 @@ var init_api_response = __esm(() => {
|
|
|
14676
14676
|
CLIENT_SAFE_CODES = new Set([ErrorCode.NotFound, ErrorCode.Validation, ErrorCode.Conflict]);
|
|
14677
14677
|
});
|
|
14678
14678
|
|
|
14679
|
-
// ../../node_modules/.bun/@gobing-ai+ts-utils@0.5.
|
|
14679
|
+
// ../../node_modules/.bun/@gobing-ai+ts-utils@0.5.21/node_modules/@gobing-ai/ts-utils/dist/cursor.js
|
|
14680
14680
|
var init_cursor = () => {};
|
|
14681
14681
|
|
|
14682
|
-
// ../../node_modules/.bun/@gobing-ai+ts-utils@0.5.
|
|
14682
|
+
// ../../node_modules/.bun/@gobing-ai+ts-utils@0.5.21/node_modules/@gobing-ai/ts-utils/dist/event-severity.js
|
|
14683
14683
|
var init_event_severity = () => {};
|
|
14684
14684
|
|
|
14685
|
-
// ../../node_modules/.bun/@gobing-ai+ts-utils@0.5.
|
|
14685
|
+
// ../../node_modules/.bun/@gobing-ai+ts-utils@0.5.21/node_modules/@gobing-ai/ts-utils/dist/output.js
|
|
14686
14686
|
function processStream(name) {
|
|
14687
14687
|
const proc = globalThis.process;
|
|
14688
14688
|
const stream = proc?.[name];
|
|
@@ -14700,7 +14700,7 @@ function echoError(message, target = defaultStderrTarget ?? processStream("stder
|
|
|
14700
14700
|
}
|
|
14701
14701
|
var defaultStderrTarget;
|
|
14702
14702
|
|
|
14703
|
-
// ../../node_modules/.bun/@gobing-ai+ts-utils@0.5.
|
|
14703
|
+
// ../../node_modules/.bun/@gobing-ai+ts-utils@0.5.21/node_modules/@gobing-ai/ts-utils/dist/index.js
|
|
14704
14704
|
var init_dist = __esm(() => {
|
|
14705
14705
|
init_api_response();
|
|
14706
14706
|
init_cursor();
|
|
@@ -21698,7 +21698,7 @@ var init_dist2 = __esm(() => {
|
|
|
21698
21698
|
$visitAsync = visit.visitAsync;
|
|
21699
21699
|
});
|
|
21700
21700
|
|
|
21701
|
-
// ../../node_modules/.bun/@gobing-ai+ts-runtime@0.5.
|
|
21701
|
+
// ../../node_modules/.bun/@gobing-ai+ts-runtime@0.5.21+44edd5c4d6372504/node_modules/@gobing-ai/ts-runtime/dist/config.js
|
|
21702
21702
|
var configSchema;
|
|
21703
21703
|
var init_config = __esm(() => {
|
|
21704
21704
|
init_dist2();
|
|
@@ -21722,7 +21722,7 @@ var init_config = __esm(() => {
|
|
|
21722
21722
|
});
|
|
21723
21723
|
});
|
|
21724
21724
|
|
|
21725
|
-
// ../../node_modules/.bun/@gobing-ai+ts-runtime@0.5.
|
|
21725
|
+
// ../../node_modules/.bun/@gobing-ai+ts-runtime@0.5.21+44edd5c4d6372504/node_modules/@gobing-ai/ts-runtime/dist/file-system-node.js
|
|
21726
21726
|
import { appendFileSync, cpSync, createReadStream, createWriteStream, existsSync, mkdirSync, readdirSync, readFileSync, realpathSync, renameSync, rmSync, statSync, writeFileSync } from "fs";
|
|
21727
21727
|
import { dirname, resolve as resolvePath } from "path";
|
|
21728
21728
|
function createNodeFileSystem(root, paths) {
|
|
@@ -21901,14 +21901,14 @@ var PluginManifestSchema = exports_external.looseObject({
|
|
|
21901
21901
|
description: exports_external.string().optional(),
|
|
21902
21902
|
operations: exports_external.record(exports_external.string(), PluginOperationSchema).optional()
|
|
21903
21903
|
});
|
|
21904
|
-
// ../../node_modules/.bun/@gobing-ai+ts-runtime@0.5.
|
|
21904
|
+
// ../../node_modules/.bun/@gobing-ai+ts-runtime@0.5.21+44edd5c4d6372504/node_modules/@gobing-ai/ts-runtime/dist/index.js
|
|
21905
21905
|
init_file_system_node();
|
|
21906
21906
|
init_config();
|
|
21907
21907
|
|
|
21908
|
-
// ../../node_modules/.bun/@gobing-ai+ts-runtime@0.5.
|
|
21908
|
+
// ../../node_modules/.bun/@gobing-ai+ts-runtime@0.5.21+44edd5c4d6372504/node_modules/@gobing-ai/ts-runtime/dist/fs.js
|
|
21909
21909
|
init_file_system_node();
|
|
21910
21910
|
|
|
21911
|
-
// ../../node_modules/.bun/@gobing-ai+ts-runtime@0.5.
|
|
21911
|
+
// ../../node_modules/.bun/@gobing-ai+ts-runtime@0.5.21+44edd5c4d6372504/node_modules/@gobing-ai/ts-runtime/dist/path.js
|
|
21912
21912
|
function normalizeSeparators(path) {
|
|
21913
21913
|
return path.replaceAll("\\", "/");
|
|
21914
21914
|
}
|
|
@@ -21942,7 +21942,7 @@ function dirnamePath(path) {
|
|
|
21942
21942
|
return normalized.slice(0, index);
|
|
21943
21943
|
}
|
|
21944
21944
|
|
|
21945
|
-
// ../../node_modules/.bun/@gobing-ai+ts-runtime@0.5.
|
|
21945
|
+
// ../../node_modules/.bun/@gobing-ai+ts-runtime@0.5.21+44edd5c4d6372504/node_modules/@gobing-ai/ts-runtime/dist/fs.js
|
|
21946
21946
|
async function ensureDirForFile(path, fs = createNodeFileSystem()) {
|
|
21947
21947
|
await fs.ensureDir(dirnamePath(path));
|
|
21948
21948
|
}
|
|
@@ -17,7 +17,7 @@ var __export = (target, all) => {
|
|
|
17
17
|
var __esm = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
|
|
18
18
|
var __require = import.meta.require;
|
|
19
19
|
|
|
20
|
-
// ../../node_modules/.bun/@gobing-ai+ts-utils@0.5.
|
|
20
|
+
// ../../node_modules/.bun/@gobing-ai+ts-utils@0.5.21/node_modules/@gobing-ai/ts-utils/dist/errors.js
|
|
21
21
|
var ErrorCode;
|
|
22
22
|
var init_errors = __esm(() => {
|
|
23
23
|
ErrorCode = {
|
|
@@ -28,7 +28,7 @@ var init_errors = __esm(() => {
|
|
|
28
28
|
};
|
|
29
29
|
});
|
|
30
30
|
|
|
31
|
-
// ../../node_modules/.bun/@gobing-ai+ts-utils@0.5.
|
|
31
|
+
// ../../node_modules/.bun/@gobing-ai+ts-utils@0.5.21/node_modules/@gobing-ai/ts-utils/dist/api-response.js
|
|
32
32
|
var API_ERROR_CODES, ERROR_CODE_TO_HTTP, CLIENT_SAFE_CODES;
|
|
33
33
|
var init_api_response = __esm(() => {
|
|
34
34
|
init_errors();
|
|
@@ -51,13 +51,13 @@ var init_api_response = __esm(() => {
|
|
|
51
51
|
CLIENT_SAFE_CODES = new Set([ErrorCode.NotFound, ErrorCode.Validation, ErrorCode.Conflict]);
|
|
52
52
|
});
|
|
53
53
|
|
|
54
|
-
// ../../node_modules/.bun/@gobing-ai+ts-utils@0.5.
|
|
54
|
+
// ../../node_modules/.bun/@gobing-ai+ts-utils@0.5.21/node_modules/@gobing-ai/ts-utils/dist/cursor.js
|
|
55
55
|
var init_cursor = () => {};
|
|
56
56
|
|
|
57
|
-
// ../../node_modules/.bun/@gobing-ai+ts-utils@0.5.
|
|
57
|
+
// ../../node_modules/.bun/@gobing-ai+ts-utils@0.5.21/node_modules/@gobing-ai/ts-utils/dist/event-severity.js
|
|
58
58
|
var init_event_severity = () => {};
|
|
59
59
|
|
|
60
|
-
// ../../node_modules/.bun/@gobing-ai+ts-utils@0.5.
|
|
60
|
+
// ../../node_modules/.bun/@gobing-ai+ts-utils@0.5.21/node_modules/@gobing-ai/ts-utils/dist/output.js
|
|
61
61
|
function processStream(name) {
|
|
62
62
|
const proc = globalThis.process;
|
|
63
63
|
const stream = proc?.[name];
|
|
@@ -75,7 +75,7 @@ function echoError(message, target = defaultStderrTarget ?? processStream("stder
|
|
|
75
75
|
}
|
|
76
76
|
var defaultStderrTarget;
|
|
77
77
|
|
|
78
|
-
// ../../node_modules/.bun/@gobing-ai+ts-utils@0.5.
|
|
78
|
+
// ../../node_modules/.bun/@gobing-ai+ts-utils@0.5.21/node_modules/@gobing-ai/ts-utils/dist/index.js
|
|
79
79
|
var init_dist = __esm(() => {
|
|
80
80
|
init_api_response();
|
|
81
81
|
init_cursor();
|
|
@@ -21698,7 +21698,7 @@ var init_dist2 = __esm(() => {
|
|
|
21698
21698
|
$visitAsync = visit.visitAsync;
|
|
21699
21699
|
});
|
|
21700
21700
|
|
|
21701
|
-
// ../../node_modules/.bun/@gobing-ai+ts-runtime@0.5.
|
|
21701
|
+
// ../../node_modules/.bun/@gobing-ai+ts-runtime@0.5.21+44edd5c4d6372504/node_modules/@gobing-ai/ts-runtime/dist/config.js
|
|
21702
21702
|
var configSchema;
|
|
21703
21703
|
var init_config = __esm(() => {
|
|
21704
21704
|
init_dist2();
|
|
@@ -21722,7 +21722,7 @@ var init_config = __esm(() => {
|
|
|
21722
21722
|
});
|
|
21723
21723
|
});
|
|
21724
21724
|
|
|
21725
|
-
// ../../node_modules/.bun/@gobing-ai+ts-runtime@0.5.
|
|
21725
|
+
// ../../node_modules/.bun/@gobing-ai+ts-runtime@0.5.21+44edd5c4d6372504/node_modules/@gobing-ai/ts-runtime/dist/file-system-node.js
|
|
21726
21726
|
import { appendFileSync, cpSync, createReadStream, createWriteStream, existsSync, mkdirSync, readdirSync, readFileSync, realpathSync, renameSync, rmSync, statSync, writeFileSync } from "fs";
|
|
21727
21727
|
import { dirname, resolve as resolvePath } from "path";
|
|
21728
21728
|
function createNodeFileSystem(root, paths) {
|
|
@@ -21904,7 +21904,7 @@ var PluginManifestSchema = exports_external.looseObject({
|
|
|
21904
21904
|
description: exports_external.string().optional(),
|
|
21905
21905
|
operations: exports_external.record(exports_external.string(), PluginOperationSchema).optional()
|
|
21906
21906
|
});
|
|
21907
|
-
// ../../node_modules/.bun/@gobing-ai+ts-runtime@0.5.
|
|
21907
|
+
// ../../node_modules/.bun/@gobing-ai+ts-runtime@0.5.21+44edd5c4d6372504/node_modules/@gobing-ai/ts-runtime/dist/index.js
|
|
21908
21908
|
init_file_system_node();
|
|
21909
21909
|
init_config();
|
|
21910
21910
|
|
|
@@ -23041,7 +23041,8 @@ async function processGeneratorIO(inputPath, outputPath, clientOverride, transco
|
|
|
23041
23041
|
let loudnessDip = false;
|
|
23042
23042
|
let lastError;
|
|
23043
23043
|
let attemptBody = generateBody;
|
|
23044
|
-
|
|
23044
|
+
const maxVerifyAttempts = Number.parseInt(process.env.VOICEBOX_MAX_VERIFY_ATTEMPTS ?? "2", 10) || 0;
|
|
23045
|
+
for (let verifyAttempt = 0;verifyAttempt <= maxVerifyAttempts && wavBytes === undefined; verifyAttempt++) {
|
|
23045
23046
|
if (verifyAttempt > 0) {
|
|
23046
23047
|
verifyRetries = verifyAttempt;
|
|
23047
23048
|
const chunkChars = Math.max(VOICEBOX_CHUNK_CHARS_MIN, Math.floor(attemptBody.max_chunk_chars / 2));
|
|
@@ -23079,7 +23080,7 @@ async function processGeneratorIO(inputPath, outputPath, clientOverride, transco
|
|
|
23079
23080
|
try {
|
|
23080
23081
|
const trans = await client.transcribe(attemptBytes, language);
|
|
23081
23082
|
const fidelity = transcriptionFidelity(segment.text, trans.text);
|
|
23082
|
-
if (fidelity < TRANSCRIPTION_FIDELITY_FLOOR && verifyAttempt <
|
|
23083
|
+
if (fidelity < TRANSCRIPTION_FIDELITY_FLOOR && verifyAttempt < maxVerifyAttempts) {
|
|
23083
23084
|
echoError(`voice-gen: transcription fidelity ${fidelity.toFixed(2)} below ${TRANSCRIPTION_FIDELITY_FLOOR} (looped/garbage audio): "${trans.text.slice(0, 80)}..."`);
|
|
23084
23085
|
continue;
|
|
23085
23086
|
}
|
|
@@ -23088,7 +23089,7 @@ async function processGeneratorIO(inputPath, outputPath, clientOverride, transco
|
|
|
23088
23089
|
}
|
|
23089
23090
|
const dip = detectLoudnessDip(attemptBytes);
|
|
23090
23091
|
loudnessDip = dip.dip;
|
|
23091
|
-
if (dip.dip && verifyAttempt <
|
|
23092
|
+
if (dip.dip && verifyAttempt < maxVerifyAttempts) {
|
|
23092
23093
|
echoError(`voice-gen: loudness dip detected at ${dip.dipAtSec ?? "?"}s \u2014 regenerating segment`);
|
|
23093
23094
|
continue;
|
|
23094
23095
|
}
|
|
@@ -14642,7 +14642,7 @@ var init_zod = __esm(() => {
|
|
|
14642
14642
|
init_external();
|
|
14643
14643
|
});
|
|
14644
14644
|
|
|
14645
|
-
// ../../node_modules/.bun/@gobing-ai+ts-utils@0.5.
|
|
14645
|
+
// ../../node_modules/.bun/@gobing-ai+ts-utils@0.5.21/node_modules/@gobing-ai/ts-utils/dist/errors.js
|
|
14646
14646
|
var ErrorCode;
|
|
14647
14647
|
var init_errors3 = __esm(() => {
|
|
14648
14648
|
ErrorCode = {
|
|
@@ -14653,7 +14653,7 @@ var init_errors3 = __esm(() => {
|
|
|
14653
14653
|
};
|
|
14654
14654
|
});
|
|
14655
14655
|
|
|
14656
|
-
// ../../node_modules/.bun/@gobing-ai+ts-utils@0.5.
|
|
14656
|
+
// ../../node_modules/.bun/@gobing-ai+ts-utils@0.5.21/node_modules/@gobing-ai/ts-utils/dist/api-response.js
|
|
14657
14657
|
var API_ERROR_CODES, ERROR_CODE_TO_HTTP, CLIENT_SAFE_CODES;
|
|
14658
14658
|
var init_api_response = __esm(() => {
|
|
14659
14659
|
init_errors3();
|
|
@@ -14676,13 +14676,13 @@ var init_api_response = __esm(() => {
|
|
|
14676
14676
|
CLIENT_SAFE_CODES = new Set([ErrorCode.NotFound, ErrorCode.Validation, ErrorCode.Conflict]);
|
|
14677
14677
|
});
|
|
14678
14678
|
|
|
14679
|
-
// ../../node_modules/.bun/@gobing-ai+ts-utils@0.5.
|
|
14679
|
+
// ../../node_modules/.bun/@gobing-ai+ts-utils@0.5.21/node_modules/@gobing-ai/ts-utils/dist/cursor.js
|
|
14680
14680
|
var init_cursor = () => {};
|
|
14681
14681
|
|
|
14682
|
-
// ../../node_modules/.bun/@gobing-ai+ts-utils@0.5.
|
|
14682
|
+
// ../../node_modules/.bun/@gobing-ai+ts-utils@0.5.21/node_modules/@gobing-ai/ts-utils/dist/event-severity.js
|
|
14683
14683
|
var init_event_severity = () => {};
|
|
14684
14684
|
|
|
14685
|
-
// ../../node_modules/.bun/@gobing-ai+ts-utils@0.5.
|
|
14685
|
+
// ../../node_modules/.bun/@gobing-ai+ts-utils@0.5.21/node_modules/@gobing-ai/ts-utils/dist/output.js
|
|
14686
14686
|
function processStream(name) {
|
|
14687
14687
|
const proc = globalThis.process;
|
|
14688
14688
|
const stream = proc?.[name];
|
|
@@ -14700,7 +14700,7 @@ function echoError(message, target = defaultStderrTarget ?? processStream("stder
|
|
|
14700
14700
|
}
|
|
14701
14701
|
var defaultStderrTarget;
|
|
14702
14702
|
|
|
14703
|
-
// ../../node_modules/.bun/@gobing-ai+ts-utils@0.5.
|
|
14703
|
+
// ../../node_modules/.bun/@gobing-ai+ts-utils@0.5.21/node_modules/@gobing-ai/ts-utils/dist/index.js
|
|
14704
14704
|
var init_dist = __esm(() => {
|
|
14705
14705
|
init_api_response();
|
|
14706
14706
|
init_cursor();
|
|
@@ -21698,7 +21698,7 @@ var init_dist2 = __esm(() => {
|
|
|
21698
21698
|
$visitAsync = visit.visitAsync;
|
|
21699
21699
|
});
|
|
21700
21700
|
|
|
21701
|
-
// ../../node_modules/.bun/@gobing-ai+ts-runtime@0.5.
|
|
21701
|
+
// ../../node_modules/.bun/@gobing-ai+ts-runtime@0.5.21+44edd5c4d6372504/node_modules/@gobing-ai/ts-runtime/dist/config.js
|
|
21702
21702
|
var configSchema;
|
|
21703
21703
|
var init_config = __esm(() => {
|
|
21704
21704
|
init_dist2();
|
|
@@ -21722,7 +21722,7 @@ var init_config = __esm(() => {
|
|
|
21722
21722
|
});
|
|
21723
21723
|
});
|
|
21724
21724
|
|
|
21725
|
-
// ../../node_modules/.bun/@gobing-ai+ts-runtime@0.5.
|
|
21725
|
+
// ../../node_modules/.bun/@gobing-ai+ts-runtime@0.5.21+44edd5c4d6372504/node_modules/@gobing-ai/ts-runtime/dist/file-system-node.js
|
|
21726
21726
|
import { appendFileSync, cpSync, createReadStream, createWriteStream, existsSync, mkdirSync, readdirSync, readFileSync, realpathSync, renameSync, rmSync, statSync, writeFileSync } from "fs";
|
|
21727
21727
|
import { dirname, resolve as resolvePath } from "path";
|
|
21728
21728
|
function createNodeFileSystem(root, paths) {
|
|
@@ -21933,6 +21933,7 @@ html, body {
|
|
|
21933
21933
|
justify-content: flex-start;
|
|
21934
21934
|
overflow: hidden;
|
|
21935
21935
|
background: ${palette.background};
|
|
21936
|
+
border-top: 8px solid ${palette.accent};
|
|
21936
21937
|
}
|
|
21937
21938
|
.headline {
|
|
21938
21939
|
font-family: 'NotoSansSC-Bold', sans-serif;
|
|
@@ -21940,6 +21941,8 @@ html, body {
|
|
|
21940
21941
|
color: ${palette.text};
|
|
21941
21942
|
line-height: 1.3;
|
|
21942
21943
|
margin-bottom: ${Math.round(safeArea / 2)}px;
|
|
21944
|
+
padding-bottom: 12px;
|
|
21945
|
+
border-bottom: 4px solid ${palette.accent};
|
|
21943
21946
|
word-break: break-all;
|
|
21944
21947
|
white-space: normal;
|
|
21945
21948
|
/* font-size is set inline with JS fit-step */
|
|
@@ -21948,15 +21951,27 @@ html, body {
|
|
|
21948
21951
|
.points-container {
|
|
21949
21952
|
display: flex;
|
|
21950
21953
|
flex-direction: column;
|
|
21951
|
-
gap: ${Math.round(bodyMinPx * 0.
|
|
21954
|
+
gap: ${Math.round(bodyMinPx * 0.55)}px;
|
|
21952
21955
|
}
|
|
21953
21956
|
.point {
|
|
21954
21957
|
font-family: 'NotoSansSC-Regular', sans-serif;
|
|
21955
21958
|
font-weight: normal;
|
|
21956
21959
|
color: ${palette.text};
|
|
21957
|
-
line-height: 1.
|
|
21960
|
+
line-height: 1.45;
|
|
21958
21961
|
word-break: break-all;
|
|
21959
21962
|
white-space: normal;
|
|
21963
|
+
padding-left: 28px;
|
|
21964
|
+
position: relative;
|
|
21965
|
+
}
|
|
21966
|
+
.point::before {
|
|
21967
|
+
content: '';
|
|
21968
|
+
position: absolute;
|
|
21969
|
+
left: 0;
|
|
21970
|
+
top: 0.45em;
|
|
21971
|
+
width: 14px;
|
|
21972
|
+
height: 14px;
|
|
21973
|
+
border-radius: 50%;
|
|
21974
|
+
background: ${palette.accent};
|
|
21960
21975
|
}
|
|
21961
21976
|
.safe-area-sentinel {
|
|
21962
21977
|
position: absolute;
|
|
@@ -22208,7 +22223,7 @@ var PluginManifestSchema = exports_external.looseObject({
|
|
|
22208
22223
|
description: exports_external.string().optional(),
|
|
22209
22224
|
operations: exports_external.record(exports_external.string(), PluginOperationSchema).optional()
|
|
22210
22225
|
});
|
|
22211
|
-
// ../../node_modules/.bun/@gobing-ai+ts-runtime@0.5.
|
|
22226
|
+
// ../../node_modules/.bun/@gobing-ai+ts-runtime@0.5.21+44edd5c4d6372504/node_modules/@gobing-ai/ts-runtime/dist/index.js
|
|
22212
22227
|
init_file_system_node();
|
|
22213
22228
|
init_config();
|
|
22214
22229
|
|
|
@@ -1,20 +1,21 @@
|
|
|
1
1
|
name: xhs-card
|
|
2
2
|
description: >-
|
|
3
|
-
Xiaohongshu (XHS) knowledge card — 3:4 portrait
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
Xiaohongshu (XHS) knowledge card — 3:4 portrait card. Chinese headline and
|
|
4
|
+
bullets are typeset from Noto Sans SC via headless Chromium; the provider
|
|
5
|
+
prompt is the illustration only and must not ask for writing. Adapted from
|
|
6
|
+
baoyu-xhs-images (MIT © Jim Liu); see
|
|
7
|
+
plugins/kk/skills/xhs-images/references/card-layouts.md.
|
|
8
8
|
job: free
|
|
9
9
|
aspectRatio: '3:4'
|
|
10
10
|
width: 1080
|
|
11
11
|
height: 1440
|
|
12
12
|
defaultStyle: xhs-knowledge
|
|
13
13
|
keywords:
|
|
14
|
-
-
|
|
15
|
-
-
|
|
14
|
+
- text-free flat illustration
|
|
15
|
+
- blank unlabeled surfaces
|
|
16
|
+
- empty screens and empty signs
|
|
16
17
|
- fresh clean design
|
|
17
|
-
- flat
|
|
18
|
+
- flat geometric accents
|
|
18
19
|
- professional color grading
|
|
19
20
|
outputFilename: 'card-{{index | 01}}.png'
|
|
20
21
|
compose:
|
|
@@ -22,7 +23,7 @@ compose:
|
|
|
22
23
|
safeArea: 72
|
|
23
24
|
headlineMinPx: 64
|
|
24
25
|
bodyMinPx: 36
|
|
25
|
-
illustrationHeight:
|
|
26
|
+
illustrationHeight: 880
|
|
26
27
|
palette:
|
|
27
28
|
background: '#FFFFFF'
|
|
28
29
|
text: '#1F2328'
|
|
@@ -53,11 +54,12 @@ variables:
|
|
|
53
54
|
description: Additional context (use --content)
|
|
54
55
|
default: ''
|
|
55
56
|
template: |-
|
|
56
|
-
|
|
57
|
+
Portrait illustration, 3:4, one scene for a card series.
|
|
57
58
|
Card role: {{role | content}}. Layout: {{layout | definition}}.
|
|
58
59
|
Visual scene: {{subject | clean flat illustration of the core concept}},
|
|
59
|
-
rendered as flat illustration
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
watermark, no
|
|
60
|
+
rendered as a flat illustration with subtle geometric decorations.
|
|
61
|
+
Illustration only. Every surface stays blank: empty screens, empty signs,
|
|
62
|
+
empty labels. No writing, no letters, no numerals, no captions, no logos,
|
|
63
|
+
no watermark, no UI chrome. Words are typeset later, outside this image.
|
|
64
|
+
Fresh clean design, comfortable margins, crisp details, professional color
|
|
63
65
|
grading. {{content}}
|
|
@@ -4,5 +4,5 @@ description: >-
|
|
|
4
4
|
background, clean information layout, soft accent colors, rounded card zones.
|
|
5
5
|
Adapted from baoyu-xhs-images "knowledge card" style guidance (MIT © Jim Liu);
|
|
6
6
|
see plugins/kk/skills/xhs-images/references/card-layouts.md.
|
|
7
|
-
modifiers: simple clean light background,
|
|
8
|
-
negative: text, letters, numbers, Chinese characters, captions, watermark, logo
|
|
7
|
+
modifiers: simple clean light background, soft pastel accent colors, generous whitespace, flat geometric decorations, subtle drop shadows, fresh and professional, unlabeled surfaces
|
|
8
|
+
negative: text, letters, words, numbers, Chinese characters, calligraphy, signage, captions, watermark, logo, screen glyphs, vertical script, stamps
|
|
@@ -220,6 +220,7 @@ html, body {
|
|
|
220
220
|
justify-content: flex-start;
|
|
221
221
|
overflow: hidden;
|
|
222
222
|
background: ${palette.background};
|
|
223
|
+
border-top: 8px solid ${palette.accent};
|
|
223
224
|
}
|
|
224
225
|
.headline {
|
|
225
226
|
font-family: 'NotoSansSC-Bold', sans-serif;
|
|
@@ -227,6 +228,8 @@ html, body {
|
|
|
227
228
|
color: ${palette.text};
|
|
228
229
|
line-height: 1.3;
|
|
229
230
|
margin-bottom: ${Math.round(safeArea / 2)}px;
|
|
231
|
+
padding-bottom: 12px;
|
|
232
|
+
border-bottom: 4px solid ${palette.accent};
|
|
230
233
|
word-break: break-all;
|
|
231
234
|
white-space: normal;
|
|
232
235
|
/* font-size is set inline with JS fit-step */
|
|
@@ -235,15 +238,27 @@ html, body {
|
|
|
235
238
|
.points-container {
|
|
236
239
|
display: flex;
|
|
237
240
|
flex-direction: column;
|
|
238
|
-
gap: ${Math.round(bodyMinPx * 0.
|
|
241
|
+
gap: ${Math.round(bodyMinPx * 0.55)}px;
|
|
239
242
|
}
|
|
240
243
|
.point {
|
|
241
244
|
font-family: 'NotoSansSC-Regular', sans-serif;
|
|
242
245
|
font-weight: normal;
|
|
243
246
|
color: ${palette.text};
|
|
244
|
-
line-height: 1.
|
|
247
|
+
line-height: 1.45;
|
|
245
248
|
word-break: break-all;
|
|
246
249
|
white-space: normal;
|
|
250
|
+
padding-left: 28px;
|
|
251
|
+
position: relative;
|
|
252
|
+
}
|
|
253
|
+
.point::before {
|
|
254
|
+
content: '';
|
|
255
|
+
position: absolute;
|
|
256
|
+
left: 0;
|
|
257
|
+
top: 0.45em;
|
|
258
|
+
width: 14px;
|
|
259
|
+
height: 14px;
|
|
260
|
+
border-radius: 50%;
|
|
261
|
+
background: ${palette.accent};
|
|
247
262
|
}
|
|
248
263
|
.safe-area-sentinel {
|
|
249
264
|
position: absolute;
|
|
@@ -14642,7 +14642,7 @@ var init_zod = __esm(() => {
|
|
|
14642
14642
|
init_external();
|
|
14643
14643
|
});
|
|
14644
14644
|
|
|
14645
|
-
// ../../node_modules/.bun/@gobing-ai+ts-utils@0.5.
|
|
14645
|
+
// ../../node_modules/.bun/@gobing-ai+ts-utils@0.5.21/node_modules/@gobing-ai/ts-utils/dist/errors.js
|
|
14646
14646
|
var ErrorCode;
|
|
14647
14647
|
var init_errors3 = __esm(() => {
|
|
14648
14648
|
ErrorCode = {
|
|
@@ -14653,7 +14653,7 @@ var init_errors3 = __esm(() => {
|
|
|
14653
14653
|
};
|
|
14654
14654
|
});
|
|
14655
14655
|
|
|
14656
|
-
// ../../node_modules/.bun/@gobing-ai+ts-utils@0.5.
|
|
14656
|
+
// ../../node_modules/.bun/@gobing-ai+ts-utils@0.5.21/node_modules/@gobing-ai/ts-utils/dist/api-response.js
|
|
14657
14657
|
var API_ERROR_CODES, ERROR_CODE_TO_HTTP, CLIENT_SAFE_CODES;
|
|
14658
14658
|
var init_api_response = __esm(() => {
|
|
14659
14659
|
init_errors3();
|
|
@@ -14676,13 +14676,13 @@ var init_api_response = __esm(() => {
|
|
|
14676
14676
|
CLIENT_SAFE_CODES = new Set([ErrorCode.NotFound, ErrorCode.Validation, ErrorCode.Conflict]);
|
|
14677
14677
|
});
|
|
14678
14678
|
|
|
14679
|
-
// ../../node_modules/.bun/@gobing-ai+ts-utils@0.5.
|
|
14679
|
+
// ../../node_modules/.bun/@gobing-ai+ts-utils@0.5.21/node_modules/@gobing-ai/ts-utils/dist/cursor.js
|
|
14680
14680
|
var init_cursor = () => {};
|
|
14681
14681
|
|
|
14682
|
-
// ../../node_modules/.bun/@gobing-ai+ts-utils@0.5.
|
|
14682
|
+
// ../../node_modules/.bun/@gobing-ai+ts-utils@0.5.21/node_modules/@gobing-ai/ts-utils/dist/event-severity.js
|
|
14683
14683
|
var init_event_severity = () => {};
|
|
14684
14684
|
|
|
14685
|
-
// ../../node_modules/.bun/@gobing-ai+ts-utils@0.5.
|
|
14685
|
+
// ../../node_modules/.bun/@gobing-ai+ts-utils@0.5.21/node_modules/@gobing-ai/ts-utils/dist/output.js
|
|
14686
14686
|
function processStream(name) {
|
|
14687
14687
|
const proc = globalThis.process;
|
|
14688
14688
|
const stream = proc?.[name];
|
|
@@ -14700,7 +14700,7 @@ function echoError(message, target = defaultStderrTarget ?? processStream("stder
|
|
|
14700
14700
|
}
|
|
14701
14701
|
var defaultStderrTarget;
|
|
14702
14702
|
|
|
14703
|
-
// ../../node_modules/.bun/@gobing-ai+ts-utils@0.5.
|
|
14703
|
+
// ../../node_modules/.bun/@gobing-ai+ts-utils@0.5.21/node_modules/@gobing-ai/ts-utils/dist/index.js
|
|
14704
14704
|
var init_dist = __esm(() => {
|
|
14705
14705
|
init_api_response();
|
|
14706
14706
|
init_cursor();
|
|
@@ -21698,7 +21698,7 @@ var init_dist2 = __esm(() => {
|
|
|
21698
21698
|
$visitAsync = visit.visitAsync;
|
|
21699
21699
|
});
|
|
21700
21700
|
|
|
21701
|
-
// ../../node_modules/.bun/@gobing-ai+ts-runtime@0.5.
|
|
21701
|
+
// ../../node_modules/.bun/@gobing-ai+ts-runtime@0.5.21+44edd5c4d6372504/node_modules/@gobing-ai/ts-runtime/dist/config.js
|
|
21702
21702
|
var configSchema;
|
|
21703
21703
|
var init_config = __esm(() => {
|
|
21704
21704
|
init_dist2();
|
|
@@ -21722,7 +21722,7 @@ var init_config = __esm(() => {
|
|
|
21722
21722
|
});
|
|
21723
21723
|
});
|
|
21724
21724
|
|
|
21725
|
-
// ../../node_modules/.bun/@gobing-ai+ts-runtime@0.5.
|
|
21725
|
+
// ../../node_modules/.bun/@gobing-ai+ts-runtime@0.5.21+44edd5c4d6372504/node_modules/@gobing-ai/ts-runtime/dist/file-system-node.js
|
|
21726
21726
|
import { appendFileSync, cpSync, createReadStream, createWriteStream, existsSync, mkdirSync, readdirSync, readFileSync, realpathSync, renameSync, rmSync, statSync, writeFileSync } from "fs";
|
|
21727
21727
|
import { dirname, resolve as resolvePath } from "path";
|
|
21728
21728
|
function createNodeFileSystem(root, paths) {
|
|
@@ -21901,14 +21901,14 @@ var PluginManifestSchema = exports_external.looseObject({
|
|
|
21901
21901
|
description: exports_external.string().optional(),
|
|
21902
21902
|
operations: exports_external.record(exports_external.string(), PluginOperationSchema).optional()
|
|
21903
21903
|
});
|
|
21904
|
-
// ../../node_modules/.bun/@gobing-ai+ts-runtime@0.5.
|
|
21904
|
+
// ../../node_modules/.bun/@gobing-ai+ts-runtime@0.5.21+44edd5c4d6372504/node_modules/@gobing-ai/ts-runtime/dist/index.js
|
|
21905
21905
|
init_file_system_node();
|
|
21906
21906
|
init_config();
|
|
21907
21907
|
|
|
21908
|
-
// ../../node_modules/.bun/@gobing-ai+ts-runtime@0.5.
|
|
21908
|
+
// ../../node_modules/.bun/@gobing-ai+ts-runtime@0.5.21+44edd5c4d6372504/node_modules/@gobing-ai/ts-runtime/dist/fs.js
|
|
21909
21909
|
init_file_system_node();
|
|
21910
21910
|
|
|
21911
|
-
// ../../node_modules/.bun/@gobing-ai+ts-runtime@0.5.
|
|
21911
|
+
// ../../node_modules/.bun/@gobing-ai+ts-runtime@0.5.21+44edd5c4d6372504/node_modules/@gobing-ai/ts-runtime/dist/path.js
|
|
21912
21912
|
function normalizeSeparators(path) {
|
|
21913
21913
|
return path.replaceAll("\\", "/");
|
|
21914
21914
|
}
|
|
@@ -21942,7 +21942,7 @@ function dirnamePath(path) {
|
|
|
21942
21942
|
return normalized.slice(0, index);
|
|
21943
21943
|
}
|
|
21944
21944
|
|
|
21945
|
-
// ../../node_modules/.bun/@gobing-ai+ts-runtime@0.5.
|
|
21945
|
+
// ../../node_modules/.bun/@gobing-ai+ts-runtime@0.5.21+44edd5c4d6372504/node_modules/@gobing-ai/ts-runtime/dist/fs.js
|
|
21946
21946
|
async function ensureDirForFile(path, fs = createNodeFileSystem()) {
|
|
21947
21947
|
await fs.ensureDir(dirnamePath(path));
|
|
21948
21948
|
}
|