@xiaoso/dsh-tool-plus 0.1.0-beta.2 → 0.1.0-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.en.md +122 -0
- package/README.md +3 -2
- package/THIRD_PARTY_NOTICES.md +4 -35
- package/lib/abort-B7izMMna.mjs +51 -0
- package/lib/amazon-bedrock-D-shAr1X.mjs +917 -0
- package/lib/anthropic-BWsZFzU8.mjs +262 -0
- package/lib/anthropic-CMT1Qj1t.mjs +3115 -0
- package/lib/api-key-login-CpzSezsi.mjs +157 -0
- package/lib/aws-credentials-8Mgn5MAy.mjs +867 -0
- package/lib/azure-openai-responses-CNkHiLUh.mjs +274 -0
- package/lib/bun-shim.mjs +172 -7
- package/lib/bundled-references-CSuBco5p.mjs +55 -0
- package/lib/callback-server-BEFNf-jf.mjs +398 -0
- package/lib/client.js +110 -40
- package/lib/cursor-BIQfBC6V.mjs +135 -0
- package/lib/cursor-DNk6eXDd.mjs +5470 -0
- package/lib/cursor-MjSm74IJ.mjs +273 -0
- package/lib/device-code-OI_tQcmc.mjs +51 -0
- package/lib/devin-CldyPD8K.mjs +95 -0
- package/lib/devin-CzRpTUOA.mjs +114 -0
- package/lib/devin-DXOeNyU7.mjs +542 -0
- package/lib/error-B3bevhrs.mjs +1449 -0
- package/lib/event-stream-BDPi64mK.mjs +151 -0
- package/lib/github-copilot-4GaMtQmg.mjs +208 -0
- package/lib/github-copilot-B2HGSIJK.mjs +104 -0
- package/lib/gitlab-duo-akICyfeD.mjs +155 -0
- package/lib/gitlab-duo-workflow-CSEgYk3N.mjs +91 -0
- package/lib/google-antigravity-Dlkdhahq.mjs +198 -0
- package/lib/google-auth-DhqpOYrX.mjs +232 -0
- package/lib/google-gemini-cli-BG_LRdIV.mjs +850 -0
- package/lib/google-gemini-cli-zJhiOcND.mjs +211 -0
- package/lib/google-oauth-shared-CwNWYdmR.mjs +147 -0
- package/lib/google-shared-DzhCb9b0.mjs +760 -0
- package/lib/google-vertex-kscbkyRb.mjs +99 -0
- package/lib/google-zyDOG9x7.mjs +30 -0
- package/lib/identity-DnB63pS7.mjs +219 -0
- package/lib/idle-iterator-C6XbWcuB.mjs +366 -0
- package/lib/index.mjs +2865 -2745
- package/lib/kimi-DMVI-zrZ.mjs +236 -0
- package/lib/markit-M0jhziqU.mjs +1417 -0
- package/lib/minimax-code-BK-3eBbz.mjs +53 -0
- package/lib/models-CfT4coYT.mjs +104660 -0
- package/lib/ollama-BQMGPxtV.mjs +589 -0
- package/lib/openai-codex-CQL_kvYL.mjs +255 -0
- package/lib/openai-codex-responses-Cz-2qpC7.mjs +3144 -0
- package/lib/openai-completions-i8doczAk.mjs +1360 -0
- package/lib/openai-reasoning-fallback-DGVVLgd1.mjs +286 -0
- package/lib/openai-responses-DTkBiiy-.mjs +867 -0
- package/lib/opencode-DaJjcUbf.mjs +38 -0
- package/lib/perplexity-9b-RQ0mV.mjs +194 -0
- package/lib/proxy-ZtUcl6r5.mjs +190 -0
- package/lib/scrapers-CL-WgdU1.mjs +9198 -0
- package/lib/scrapers-CipyKyCH.mjs +9198 -0
- package/lib/scrapers-DGfrYhtw.mjs +9198 -0
- package/lib/scrapers-DSUPYoUF.mjs +9198 -0
- package/lib/scrapers-DZ2GXmp7.mjs +9198 -0
- package/lib/src-DTid0g4K.mjs +5001 -0
- package/lib/stream-C_RAoxJC.mjs +10236 -0
- package/lib/stream-markup-healing-2toHXWXM.mjs +491 -0
- package/lib/types/client/locales.d.ts +1 -1
- package/lib/types/config/fields.d.ts +1 -1
- package/lib/types/config/settings.d.ts +16 -2
- package/lib/types/tools/omp/sdk.d.ts +6 -0
- package/lib/types/tools/omp/tools/fetch.d.ts +2 -0
- package/lib/types/tools/omp/tools/read.d.ts +2 -8
- package/lib/types/tools/omp/utils/image-loading.d.ts +10 -36
- package/lib/types/tools/read/adapter/index.d.ts +4 -1
- package/lib/types/tools/read-image/index.d.ts +4 -0
- package/lib/types/tools/shared/bun-shim.d.ts +35 -3
- package/lib/types/tools/shared/image-bridge.d.ts +98 -0
- package/lib/types/tools/shared/omp-prompt.d.ts +4 -2
- package/lib/utils-2Wq2eATG.mjs +8119 -0
- package/lib/utils-BnX8O3vi.mjs +12303 -0
- package/lib/utils-CE8N8P4Q.mjs +12315 -0
- package/lib/utils-C_MrQ_0z.mjs +12301 -0
- package/lib/utils-D0Z1fyoO.mjs +12299 -0
- package/lib/utils-DppGHXQB.mjs +51 -0
- package/lib/utils-W8WdSBpX.mjs +12315 -0
- package/lib/vision-guard-BDD4OrKo.mjs +92 -0
- package/lib/wafer-DRU0EjZX.mjs +17 -0
- package/lib/xai-oauth-DPHDXKD7.mjs +446 -0
- package/lib/xiaomi-Dd87KSg5.mjs +157 -0
- package/lib/zai-CFeOt-53.mjs +203 -0
- package/lib/zip-D6QXpvaJ.mjs +1316 -0
- package/package.json +14 -10
- package/presets/package.json +1 -1
- package/presets/tool-plus-ptc/preset.yml +1 -1
- package/presets/tool-plus-standard/preset.yml +1 -1
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ImageContent, Model } from "@oh-my-pi/pi-ai";
|
|
2
2
|
import { type ImageResizeOptions } from "./image-resize";
|
|
3
|
-
export declare const MAX_IMAGE_INPUT_BYTES: number;
|
|
4
|
-
export declare const SUPPORTED_INPUT_IMAGE_MIME_TYPES: Set<string>;
|
|
5
3
|
/**
|
|
6
4
|
* Ollama and its local-backend family decode image input through llama.cpp /
|
|
7
5
|
* `stb_image`, which is compiled without WebP support, so a WebP upload fails
|
|
@@ -15,6 +13,8 @@ export declare function modelLacksWebpSupport(model: Pick<Model, "provider" | "a
|
|
|
15
13
|
* into {@link ImageResizeOptions.excludeWebP}.
|
|
16
14
|
*/
|
|
17
15
|
export declare function webpExclusionForModel(model: Pick<Model, "provider" | "api"> | undefined): true | undefined;
|
|
16
|
+
export declare const MAX_IMAGE_INPUT_BYTES: number;
|
|
17
|
+
export declare const SUPPORTED_INPUT_IMAGE_MIME_TYPES: Set<string>;
|
|
18
18
|
export interface LoadImageInputOptions {
|
|
19
19
|
path: string;
|
|
20
20
|
cwd: string;
|
|
@@ -24,16 +24,13 @@ export interface LoadImageInputOptions {
|
|
|
24
24
|
detectedMimeType?: string;
|
|
25
25
|
/** Force non-WebP output (e.g. for Ollama). Leave unset to honor `OMP_NO_WEBP`. */
|
|
26
26
|
excludeWebP?: boolean;
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
maxBytes?: number;
|
|
35
|
-
/** Force non-WebP output (e.g. for Ollama). Leave unset to honor `OMP_NO_WEBP`. */
|
|
36
|
-
excludeWebP?: boolean;
|
|
27
|
+
/**
|
|
28
|
+
* DSH extension (拍板#22 config expansion): resize-knob passthrough onto
|
|
29
|
+
* {@link resizeImage}. Upstream never passes these — it relies on the
|
|
30
|
+
* hardcoded 1568px/500KB/200px/quality-80 defaults; the tool-plus config
|
|
31
|
+
* panel wires user-tunable values through here. Unset = upstream behavior.
|
|
32
|
+
*/
|
|
33
|
+
resize?: ImageResizeOptions;
|
|
37
34
|
}
|
|
38
35
|
export interface LoadedImageInput {
|
|
39
36
|
resolvedPath: string;
|
|
@@ -51,27 +48,4 @@ export declare class ImageInputTooLargeError extends Error {
|
|
|
51
48
|
/** Converts an image to PNG, rejecting when the runtime cannot decode or encode it. */
|
|
52
49
|
export declare function convertImageToPng(image: ImageContent): Promise<ImageContent>;
|
|
53
50
|
export declare function ensureSupportedImageInput(image: ImageContent): Promise<ImageContent | null>;
|
|
54
|
-
export interface NormalizeModelContextImagesOptions {
|
|
55
|
-
/** Model the images are bound for; used to derive encoder constraints (WebP exclusion for Ollama). */
|
|
56
|
-
model?: Model;
|
|
57
|
-
resize?: ImageResizeOptions;
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Normalize image blocks before they enter agent/model context. This keeps
|
|
61
|
-
* provider request construction from having to resize an unbounded batch of
|
|
62
|
-
* large images on the streaming hot path. Images are processed sequentially on
|
|
63
|
-
* purpose: `resizeImage` may fan out multiple encoders for one image, so the
|
|
64
|
-
* outer image batch must stay bounded.
|
|
65
|
-
*/
|
|
66
|
-
export declare function normalizeModelContextImages(images: ImageContent[] | undefined, options?: NormalizeModelContextImagesOptions): Promise<ImageContent[] | undefined>;
|
|
67
|
-
/**
|
|
68
|
-
* Rewrites historical/resumed WebP blocks in the ephemeral provider request.
|
|
69
|
-
* Persisted session messages remain untouched, while STB-backed local servers
|
|
70
|
-
* never receive a format they cannot decode.
|
|
71
|
-
*/
|
|
72
|
-
export declare function normalizeModelContextMessages(messages: Message[], model: Model | undefined): Promise<Message[]>;
|
|
73
|
-
/** Normalizes historical image blocks in an ephemeral provider request. */
|
|
74
|
-
export declare function normalizeProviderContextImagesForModel(context: Context, model: Model): Promise<Context>;
|
|
75
51
|
export declare function loadImageInput(options: LoadImageInputOptions): Promise<LoadedImageInput | null>;
|
|
76
|
-
/** Loads a chat attachment image through the same size and encoder policy as file-backed image inputs. */
|
|
77
|
-
export declare function loadImageAttachmentInput(options: LoadImageAttachmentInputOptions): Promise<LoadedImageInput | null>;
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
import type { Context } from '@deepseek-ai/cordis';
|
|
15
15
|
import type { AgentToolResult } from '@oh-my-pi/pi-agent-core';
|
|
16
16
|
import type { RuntimeConfig } from '../../../config/settings.ts';
|
|
17
|
+
import type { SavedImageRef } from '../../shared/image-bridge.ts';
|
|
17
18
|
export type { Settings } from '../../omp/config/settings.ts';
|
|
18
19
|
export type { ToolSession } from '../../omp/sdk.ts';
|
|
19
20
|
/** DSH read 工具输出形状(output.schema 镜像)。 */
|
|
@@ -24,6 +25,8 @@ export interface ReadToolOutput {
|
|
|
24
25
|
notice?: string;
|
|
25
26
|
totalLines?: number;
|
|
26
27
|
truncated?: boolean;
|
|
28
|
+
/** 拍板#22:图片读取的附件提交结果(信封文本已并入 text,此字段供 UI/审计)。 */
|
|
29
|
+
image?: SavedImageRef;
|
|
27
30
|
}
|
|
28
31
|
/**
|
|
29
32
|
* 把 OMP AgentToolResult 转成 DSH read 工具输出。
|
|
@@ -35,7 +38,7 @@ export declare function toReadToolResult(result: AgentToolResult<any>, args: any
|
|
|
35
38
|
/** render:模型可见文本 = 工具文本 + session 层提示(OMP messages.ts 语义)。 */
|
|
36
39
|
export declare function renderReadOutput(value: ReadToolOutput): string;
|
|
37
40
|
/** 完整执行链路(defineTool.execute 与单测共用)。 */
|
|
38
|
-
export declare function executeReadTool(exec: any, cfg: RuntimeConfig, args: any): Promise<ReadToolOutput>;
|
|
41
|
+
export declare function executeReadTool(exec: any, cfg: RuntimeConfig, args: any, ctx: Context): Promise<ReadToolOutput>;
|
|
39
42
|
/**
|
|
40
43
|
* Register the read tool (OMP native `path` + inline selector parameter,
|
|
41
44
|
* plan.md 拍板#2).
|
|
@@ -17,6 +17,10 @@ export interface ImageReadValue {
|
|
|
17
17
|
width: number;
|
|
18
18
|
height: number;
|
|
19
19
|
name?: string;
|
|
20
|
+
originalDimensions?: {
|
|
21
|
+
width: number;
|
|
22
|
+
height: number;
|
|
23
|
+
};
|
|
20
24
|
};
|
|
21
25
|
}
|
|
22
26
|
export declare function imageMediaTypeForPath(filePath: string): ImageMediaType | undefined;
|
|
@@ -57,8 +57,40 @@ declare class CryptoHasherShim {
|
|
|
57
57
|
update(data: string | Uint8Array): this;
|
|
58
58
|
digest(encoding: 'hex' | 'base64' | 'buffer' | string): string | Buffer;
|
|
59
59
|
}
|
|
60
|
-
|
|
61
|
-
|
|
60
|
+
interface ImageStep {
|
|
61
|
+
op: 'resize' | 'png' | 'jpeg' | 'webp' | 'rotate' | 'flip' | 'blur' | 'sharpen';
|
|
62
|
+
args: unknown[];
|
|
63
|
+
}
|
|
64
|
+
export declare class BunImageShim {
|
|
65
|
+
#private;
|
|
66
|
+
constructor(bytes: Uint8Array | ArrayBuffer, steps?: readonly ImageStep[]);
|
|
67
|
+
metadata(): Promise<{
|
|
68
|
+
width: number;
|
|
69
|
+
height: number;
|
|
70
|
+
format?: string;
|
|
71
|
+
hasAlpha?: boolean;
|
|
72
|
+
}>;
|
|
73
|
+
resize(widthOrOpts?: number | {
|
|
74
|
+
width?: number;
|
|
75
|
+
height?: number;
|
|
76
|
+
quality?: number;
|
|
77
|
+
}, height?: number): BunImageShim;
|
|
78
|
+
/** Bun's resize() accepts { width, height, fit } — expose fit through to sharp. */
|
|
79
|
+
resizeWithFit(width: number, height: number, fit: 'cover' | 'contain' | 'fill' | 'inside' | 'outside'): BunImageShim;
|
|
80
|
+
png(): BunImageShim;
|
|
81
|
+
jpeg(opts?: {
|
|
82
|
+
quality?: number;
|
|
83
|
+
}): BunImageShim;
|
|
84
|
+
webp(opts?: {
|
|
85
|
+
quality?: number;
|
|
86
|
+
}): BunImageShim;
|
|
87
|
+
rotate(): BunImageShim;
|
|
88
|
+
flip(flip: boolean): BunImageShim;
|
|
89
|
+
blur(radius: number): BunImageShim;
|
|
90
|
+
sharpen(radius?: number): BunImageShim;
|
|
91
|
+
bytes(): Promise<Uint8Array>;
|
|
92
|
+
toBase64(): Promise<string>;
|
|
93
|
+
write(destPath: string): Promise<number>;
|
|
62
94
|
}
|
|
63
95
|
type ArchiveMemberContent = string | Uint8Array | Blob;
|
|
64
96
|
declare function archiveWrite(destPath: string, record: Record<string, ArchiveMemberContent>, opts?: {
|
|
@@ -76,7 +108,7 @@ export interface BunShimSurface {
|
|
|
76
108
|
write: typeof archiveWrite;
|
|
77
109
|
};
|
|
78
110
|
FileSink: typeof FileSinkShim;
|
|
79
|
-
Image: typeof
|
|
111
|
+
Image: typeof BunImageShim;
|
|
80
112
|
CryptoHasher: typeof CryptoHasherShim;
|
|
81
113
|
color(color: string, format?: string): string;
|
|
82
114
|
JSON: {
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared image bridge (拍板#22, 2026-08-28) — the single DSH-facing seam
|
|
3
|
+
* through which the OMP engines (read's restored image path, fetch's URL
|
|
4
|
+
* image path) turn image bytes into model-visible content.
|
|
5
|
+
*
|
|
6
|
+
* DSH's content model has no inline base64 image block: an ImageBlock is
|
|
7
|
+
* exactly `{ type: 'image', attachment: ImageAttachmentRef }`
|
|
8
|
+
* (dsh-llm types). Every image entering the model therefore MUST pass
|
|
9
|
+
* through the host `attachments` service (saveImage → content-addressed
|
|
10
|
+
* normalized master → per-request variants). This module owns:
|
|
11
|
+
*
|
|
12
|
+
* - the extension → media-type table (mirrors official dsh-tool-fs),
|
|
13
|
+
* - the route vision-capability probe (omp flavor: unknown passes, explicit
|
|
14
|
+
* non-image routes soft-refuse to a model-facing metadata text instead of
|
|
15
|
+
* a thrown error — 用户拍板 2026-08-28),
|
|
16
|
+
* - saveImage + AttachmentError → recoverable-message mapping (official
|
|
17
|
+
* read_image's five-branch design, verbatim wording),
|
|
18
|
+
* - the `<path>/<type>/<content>` envelope with originalDimensions
|
|
19
|
+
* coordinate-multiplier advice (official formatImageReadOutput).
|
|
20
|
+
*
|
|
21
|
+
* The OMP layer never imports cordis/dsh packages: engines call these helpers
|
|
22
|
+
* through `ToolSession.getAttachments` and the exec context the adapter
|
|
23
|
+
* hands them, keeping the omp/ copies upstream-shaped.
|
|
24
|
+
*/
|
|
25
|
+
export type ImageMediaType = 'image/png' | 'image/jpeg' | 'image/webp' | 'image/gif';
|
|
26
|
+
/** Normalized outcome of one attachment-store commit (official ref shape). */
|
|
27
|
+
export interface SavedImageRef {
|
|
28
|
+
attachmentId: string;
|
|
29
|
+
mediaType: ImageMediaType;
|
|
30
|
+
bytes: number;
|
|
31
|
+
width: number;
|
|
32
|
+
height: number;
|
|
33
|
+
name?: string;
|
|
34
|
+
originalDimensions?: {
|
|
35
|
+
width: number;
|
|
36
|
+
height: number;
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
/** Minimal structural view of the host `attachments` service. */
|
|
40
|
+
export interface AttachmentsService {
|
|
41
|
+
imageLimits?: {
|
|
42
|
+
maxImageBytes?: number;
|
|
43
|
+
maxMessageImageBytes?: number;
|
|
44
|
+
maxImagePixels?: number;
|
|
45
|
+
maxImageDimension?: number;
|
|
46
|
+
mediaTypes?: readonly string[];
|
|
47
|
+
};
|
|
48
|
+
saveImage?: (input: {
|
|
49
|
+
data: Uint8Array;
|
|
50
|
+
mediaType: string;
|
|
51
|
+
name?: string;
|
|
52
|
+
}) => Promise<unknown>;
|
|
53
|
+
}
|
|
54
|
+
/** Minimal structural view of the host `llm` service. */
|
|
55
|
+
export interface LlmRouteService {
|
|
56
|
+
resolveModelInfo?: (provider: string, model: string, signal: AbortSignal) => Promise<{
|
|
57
|
+
inputModalities?: readonly string[];
|
|
58
|
+
}>;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Facade the DSH adapter builds over ctx.get('attachments')/ctx.get('llm')
|
|
62
|
+
* plus the calling route, handed to the engines via ToolSession.
|
|
63
|
+
*/
|
|
64
|
+
export interface ImageBridge {
|
|
65
|
+
attachments: AttachmentsService | undefined;
|
|
66
|
+
/** 'supported' = route declares image input; 'unsupported' = declares it does not; 'unknown' = not resolvable. */
|
|
67
|
+
routeImageSupport: () => Promise<'supported' | 'unsupported' | 'unknown'>;
|
|
68
|
+
}
|
|
69
|
+
export declare const IMAGE_EXTENSIONS: Readonly<Record<string, ImageMediaType>>;
|
|
70
|
+
export declare function imageMediaTypeForExtension(ext: string): ImageMediaType | undefined;
|
|
71
|
+
/** Admission byte cap: min(source cap, per-message cap) — official formula. */
|
|
72
|
+
export declare function imageByteCap(bridge: ImageBridge, fallback?: number): number;
|
|
73
|
+
/** Commit bytes to the attachment store, mapping AttachmentErrors to the
|
|
74
|
+
* official read_image recoverable messages. `displayPath` is only used for
|
|
75
|
+
* message rendering. Throws Error (not AttachmentError) for model consumption. */
|
|
76
|
+
export declare function saveImageViaBridge(bridge: ImageBridge, input: {
|
|
77
|
+
data: Uint8Array;
|
|
78
|
+
mediaType: ImageMediaType;
|
|
79
|
+
name?: string;
|
|
80
|
+
displayPath: string;
|
|
81
|
+
}): Promise<SavedImageRef>;
|
|
82
|
+
/** Accept either the official branded ref or a plain object from a mock. */
|
|
83
|
+
export declare function normalizeSavedImageRef(ref: unknown): SavedImageRef;
|
|
84
|
+
export declare function formatImageEnvelope(displayPath: string, image: SavedImageRef): string;
|
|
85
|
+
/** Content blocks for one committed image: envelope text + attachment block. */
|
|
86
|
+
export declare function imageContentBlocks(displayPath: string, image: SavedImageRef): Array<{
|
|
87
|
+
type: 'text';
|
|
88
|
+
text: string;
|
|
89
|
+
} | {
|
|
90
|
+
type: 'image';
|
|
91
|
+
attachment: SavedImageRef;
|
|
92
|
+
}>;
|
|
93
|
+
export declare function formatImageUnsupportedNote(displayPath: string, metadata: {
|
|
94
|
+
mimeType?: string;
|
|
95
|
+
width?: number;
|
|
96
|
+
height?: number;
|
|
97
|
+
bytes?: number;
|
|
98
|
+
} | undefined, reason: string): string;
|
|
@@ -12,7 +12,9 @@
|
|
|
12
12
|
export interface OmpPromptVars {
|
|
13
13
|
/** read 输出是否带 [PATH#TAG] hashline 锚点头(= edit.mode === 'hashline') */
|
|
14
14
|
IS_HL_MODE?: boolean;
|
|
15
|
-
/** DSH 无 inspect_image
|
|
15
|
+
/** DSH 无 inspect_image 工具:read.md 图片条件句恒渲染 else 分支(引擎内部
|
|
16
|
+
* #renderDescription 用),DSH 面再经 sanitizeReadPrompt 改写为附件提交语义
|
|
17
|
+
* (拍板#22:图片经 attachments 入库,非 vision 路由降级 metadata 文本)。 */
|
|
16
18
|
INSPECT_IMAGE_ENABLED?: boolean;
|
|
17
19
|
/** DSH 无 OMP Task/scout 子代理,恒 false → 相关句在 sanitize 中整体剔除,无需变量 */
|
|
18
20
|
scoutAvailable?: boolean;
|
|
@@ -25,7 +27,7 @@ export declare function cleanLines(text: string): string;
|
|
|
25
27
|
export declare function sanitizeGrepPrompt(text: string): string;
|
|
26
28
|
/** glob.md:internal URL/memory:// 提法 + scout avoid 句剔除。 */
|
|
27
29
|
export declare function sanitizeGlobPrompt(text: string): string;
|
|
28
|
-
/** read.md:browser
|
|
30
|
+
/** read.md:browser 提法剔除 + 图片句改为 DSH 实际行为(拍板#22 附件提交)+ internal URIs 段删除({{#if}} 由 renderer 处理)。 */
|
|
29
31
|
export declare function sanitizeReadPrompt(text: string): string;
|
|
30
32
|
/** ast-edit.md:xd://resolve 预演确认协议已随内部路由删除;DSH 为预览后自动落盘(拍板#14)。 */
|
|
31
33
|
export declare function sanitizeAstEditPrompt(text: string): string;
|