dsh-pf-stream 0.2.0 → 0.2.1

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.
Files changed (42) hide show
  1. package/lib/entry/adapter.d.ts +2 -0
  2. package/lib/entry/adapter.js +4 -1
  3. package/lib/entry/adapter.js.map +1 -1
  4. package/lib/entry/legacyNormalizer.d.ts +6 -2
  5. package/lib/entry/legacyNormalizer.js +19 -9
  6. package/lib/entry/legacyNormalizer.js.map +1 -1
  7. package/lib/index.js +12 -1
  8. package/lib/index.js.map +1 -1
  9. package/lib/session/state.js +5 -23
  10. package/lib/session/state.js.map +1 -1
  11. package/lib/stage0/decoder.d.ts +2 -0
  12. package/lib/stage0/decoder.js +23 -3
  13. package/lib/stage0/decoder.js.map +1 -1
  14. package/lib/stage2/stateMachine.js +0 -3
  15. package/lib/stage2/stateMachine.js.map +1 -1
  16. package/lib/stage3/deterministicRouter.d.ts +4 -2
  17. package/lib/stage3/deterministicRouter.js +129 -80
  18. package/lib/stage3/deterministicRouter.js.map +1 -1
  19. package/lib/stage3/streamSampler.d.ts +2 -0
  20. package/lib/stage3/streamSampler.js +1 -7
  21. package/lib/stage3/streamSampler.js.map +1 -1
  22. package/lib/stage4/viewport.d.ts +2 -1
  23. package/lib/stage4/viewport.js +7 -3
  24. package/lib/stage4/viewport.js.map +1 -1
  25. package/lib/stage5/controller.js +1 -1
  26. package/lib/stage5/intent.d.ts +2 -0
  27. package/lib/stage5/intent.js +23 -10
  28. package/lib/stage5/intent.js.map +1 -1
  29. package/lib/stage6/precheck.d.ts +4 -2
  30. package/lib/stage6/precheck.js +5 -5
  31. package/lib/stage6/precheck.js.map +1 -1
  32. package/lib/tool/handler.d.ts +16 -0
  33. package/lib/tool/handler.js +17 -7
  34. package/lib/tool/handler.js.map +1 -1
  35. package/lib/tool/schema.d.ts +4 -1
  36. package/lib/tool/schema.js +15 -1
  37. package/lib/tool/schema.js.map +1 -1
  38. package/lib/tool/streamCall.d.ts +2 -0
  39. package/lib/tool/streamCall.js +17 -5
  40. package/lib/tool/streamCall.js.map +1 -1
  41. package/lib/types.d.ts +0 -4
  42. package/package.json +1 -1
@@ -4,7 +4,8 @@
4
4
  * 规格《六》§2:
5
5
  * - 单次请求 56 MiB 安全字节水位:Base64 膨胀按 4/3 计入(预留协议结构余量);
6
6
  * - 图像单边 ≤ 4096 px 不变量:PF-Stream 画布最大边 1344 px 天然合规;
7
- * imageCountTiersEnabled(多图降档规则)默认关闭,开启后按单边上限执行门控;
7
+ * imageCountTiersEnabled(多图降档规则)默认关闭;开启时超限画布放行,
8
+ * 由调用方的多图降档规则接管(当前产物恒 ≤1344,分支实际不可达)。
8
9
  * - 截断顺序:优先从旧到新丢弃冷区引用,其次从旧到新丢弃热区条带,
9
10
  * 最后切分当前增量包(保留时序前缀)。
10
11
  */
@@ -40,7 +41,8 @@ export interface PrecheckResult {
40
41
  }
41
42
  /** Base64 膨胀后的请求字节估算。 */
42
43
  export declare function encodedSizeOf(bytes: Buffer): number;
43
- /** 画布边长不变量(契约级防护,违规即错误而非降级)。 */
44
+ /** 画布边长不变量(契约级防护,违规即错误而非降级)。
45
+ * imageCountTiersEnabled 开启时放行超限画布(由调用方多图降档规则接管)。 */
44
46
  export declare function assertCanvasEdgeLegal(artifact: PacketArtifact, tiersEnabled: boolean): void;
45
47
  /**
46
48
  * 单图 Token 上限校验(meteringProfile.maxTokensPerImage 消费点):
@@ -4,7 +4,8 @@
4
4
  * 规格《六》§2:
5
5
  * - 单次请求 56 MiB 安全字节水位:Base64 膨胀按 4/3 计入(预留协议结构余量);
6
6
  * - 图像单边 ≤ 4096 px 不变量:PF-Stream 画布最大边 1344 px 天然合规;
7
- * imageCountTiersEnabled(多图降档规则)默认关闭,开启后按单边上限执行门控;
7
+ * imageCountTiersEnabled(多图降档规则)默认关闭;开启时超限画布放行,
8
+ * 由调用方的多图降档规则接管(当前产物恒 ≤1344,分支实际不可达)。
8
9
  * - 截断顺序:优先从旧到新丢弃冷区引用,其次从旧到新丢弃热区条带,
9
10
  * 最后切分当前增量包(保留时序前缀)。
10
11
  */
@@ -15,12 +16,13 @@ export const MAX_CANVAS_EDGE_PX = 4096;
15
16
  export function encodedSizeOf(bytes) {
16
17
  return Math.ceil((bytes.length * 4) / 3);
17
18
  }
18
- /** 画布边长不变量(契约级防护,违规即错误而非降级)。 */
19
+ /** 画布边长不变量(契约级防护,违规即错误而非降级)。
20
+ * imageCountTiersEnabled 开启时放行超限画布(由调用方多图降档规则接管)。 */
19
21
  export function assertCanvasEdgeLegal(artifact, tiersEnabled) {
20
22
  const [w, h] = artifact.packet.canvasSize;
21
23
  if (w > MAX_CANVAS_EDGE_PX || h > MAX_CANVAS_EDGE_PX) {
22
24
  if (tiersEnabled)
23
- return; // 门控开启:超限单边在此截断(当前产物恒 ≤1344,实际不可达)
25
+ return;
24
26
  throw new PfStreamError('PFSTREAM_CANVAS_EDGE_OVER_LIMIT', `画布单边 ${Math.max(w, h)}px 超过 ${MAX_CANVAS_EDGE_PX}px 上限(packet #${artifact.packet.packetId})`);
25
27
  }
26
28
  }
@@ -48,8 +50,6 @@ export function precheckBundle(items, options) {
48
50
  assertCanvasTokenLegal(it.artifact, options.maxTokensPerImage);
49
51
  }
50
52
  const tokensOf = (a) => billTokens(a.packet.canvasSize[0], a.packet.canvasSize[1]);
51
- const totalTokens = items.reduce((acc, it) => acc + tokensOf(it.artifact), 0);
52
- const totalBytes = items.reduce((acc, it) => acc + encodedSizeOf(it.artifact.imageBytes), 0);
53
53
  let kept = items.slice();
54
54
  const dropped = [];
55
55
  let truncatedCurrent = false;
@@ -1 +1 @@
1
- {"version":3,"file":"precheck.js","sourceRoot":"","sources":["../../src/stage6/precheck.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"precheck.js","sourceRoot":"","sources":["../../src/stage6/precheck.ts"],"names":[],"mappings":"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"}
@@ -19,7 +19,18 @@ export interface ToolExec {
19
19
  signal: AbortSignal;
20
20
  /** 宿主会话标识(缺省聚合到 'default')。 */
21
21
  sessionId?: string | undefined;
22
+ /**
23
+ * 宿主 ToolExec 的 agent 投影(dsh-tools 语义:exec.agent.session 为当前会话)。
24
+ * 宿主未提供顶层 sessionId 时按 agent.session.id 取会话标识。
25
+ */
26
+ agent?: {
27
+ session?: {
28
+ id?: string | undefined;
29
+ };
30
+ } | undefined;
22
31
  }
32
+ /** 会话标识解析:顶层 sessionId 优先,其次宿主 agent.session.id,缺省聚合 'default'。 */
33
+ export declare function resolveSessionId(exec: ToolExec | undefined): string | undefined;
23
34
  export type ToolResult = Record<string, unknown>;
24
35
  /** 宿主图像内容块引用的 JSON 投影(只含宿主 schema 允许的字段)。 */
25
36
  export interface AttachedImage {
@@ -48,6 +59,11 @@ export interface ToolDeps {
48
59
  stream?: StreamFn | undefined;
49
60
  /** 宿主附件回传(可选:缺省时只返回画布元数据)。 */
50
61
  attachImages?: AttachImagesFn | undefined;
62
+ /** 入口适配器钳制上限(缺省用插件默认配置值)。 */
63
+ limits?: {
64
+ maxPackets: number;
65
+ maxTokensBudget: number;
66
+ } | undefined;
51
67
  }
52
68
  export declare function resolveAction(args: ToolCallArgs): NonNullable<IntentDirective['action']>;
53
69
  export declare function handleToolCall(args: ToolCallArgs, exec: ToolExec | undefined, deps: ToolDeps): Promise<ToolResult>;
@@ -6,7 +6,12 @@
6
6
  * M1 起 timestamps / uniform 由确定性检视通道承载。
7
7
  */
8
8
  import { PfStreamError } from '../errors.js';
9
+ import { adaptCallArgs } from '../entry/adapter.js';
9
10
  export { PfStreamError } from '../errors.js';
11
+ /** 会话标识解析:顶层 sessionId 优先,其次宿主 agent.session.id,缺省聚合 'default'。 */
12
+ export function resolveSessionId(exec) {
13
+ return exec?.sessionId ?? exec?.agent?.session?.id;
14
+ }
10
15
  export function resolveAction(args) {
11
16
  if (args.intent?.action)
12
17
  return args.intent.action;
@@ -23,17 +28,24 @@ async function withPacketImages(artifacts, attachImages) {
23
28
  });
24
29
  }
25
30
  export async function handleToolCall(args, exec, deps) {
26
- const action = resolveAction(args);
31
+ // 统一入口:probe 后经入口适配器归一化(历史便捷字段 + 枚举校验 + 钳制),
32
+ // 再按 intent.action 路由(《五》§1 与《七》§1)。
33
+ const probeResult = await deps.probe(args.video_path, exec?.signal);
34
+ const { intent } = adaptCallArgs(args, {
35
+ lastPtsMs: probeResult.lastPtsMs,
36
+ displayWidth: probeResult.displayWidth,
37
+ displayHeight: probeResult.displayHeight,
38
+ maxPackets: deps.limits?.maxPackets ?? 64,
39
+ maxTokensBudget: deps.limits?.maxTokensBudget ?? 65536,
40
+ });
41
+ const action = intent.action ?? 'pf_stream';
27
42
  if (action === 'probe') {
28
- const probeResult = await deps.probe(args.video_path, exec?.signal);
29
43
  return { action: 'probe', probe: probeResult };
30
44
  }
31
45
  if (action === 'timestamps' || action === 'uniform') {
32
46
  if (!deps.inspect) {
33
47
  throw new PfStreamError('PFSTREAM_ACTION_UNAVAILABLE', `action '${action}' 通道不可用`);
34
48
  }
35
- const probeResult = await deps.probe(args.video_path, exec?.signal);
36
- const intent = (args.intent ?? {});
37
49
  const inspection = await deps.inspect(args.video_path, probeResult, intent, exec?.signal);
38
50
  const packets = await withPacketImages(inspection.packets, deps.attachImages);
39
51
  return {
@@ -47,9 +59,7 @@ export async function handleToolCall(args, exec, deps) {
47
59
  if (!deps.stream) {
48
60
  throw new PfStreamError('PFSTREAM_ACTION_UNAVAILABLE', `action '${action}' 通道不可用`);
49
61
  }
50
- const probeResult = await deps.probe(args.video_path, exec?.signal);
51
- const intent = (args.intent ?? {});
52
- const stream = await deps.stream(args.video_path, probeResult, intent, exec?.sessionId, exec?.signal);
62
+ const stream = await deps.stream(args.video_path, probeResult, intent, resolveSessionId(exec), exec?.signal);
53
63
  const packets = await withPacketImages(stream.packets, deps.attachImages);
54
64
  return {
55
65
  action: 'pf_stream',
@@ -1 +1 @@
1
- {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../src/tool/handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../src/tool/handler.ts"],"names":[],"mappings":"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"}
@@ -20,7 +20,10 @@ export interface ValueSchema {
20
20
  description?: string;
21
21
  }
22
22
  export declare const intentValueSchema: ValueSchema;
23
- /** 工具 parameters:属性名 → 值 schema 映射。顶层开放以接收历史便捷字段。 */
23
+ /** 历史便捷字段(顶层):由入口适配器归一化为标准 IntentDirective(《五》§1.1)。 */
24
+ export declare const legacyValueSchemas: Record<string, ValueSchema>;
25
+ /** 工具 parameters:属性名 → 值 schema 映射。顶层额外声明历史便捷字段
26
+ * (宿主会剥离未声明参数,故必须显式列出才能到达适配器)。 */
24
27
  export declare const toolParameters: Record<string, ValueSchema>;
25
28
  export declare const TOOL_DESCRIPTION: string;
26
29
  /** 输出 schema:随各里程碑交付逐步收紧,当前为对象根。 */
@@ -42,10 +42,24 @@ export const intentValueSchema = {
42
42
  },
43
43
  additionalProperties: false,
44
44
  };
45
- /** 工具 parameters:属性名 → 值 schema 映射。顶层开放以接收历史便捷字段。 */
45
+ /** 历史便捷字段(顶层):由入口适配器归一化为标准 IntentDirective(《五》§1.1)。 */
46
+ export const legacyValueSchemas = {
47
+ start_time: { type: 'number', description: '起始时间(秒或毫秒,≤2×时长数值判秒;归一化为 intent.pts_window)' },
48
+ end_time: { type: 'number', description: '结束时间(秒或毫秒;归一化为 intent.pts_window)' },
49
+ time_range: { type: 'array', items: { type: 'number' }, description: '时间范围 [start, end](秒或毫秒)' },
50
+ timestamps: { type: 'array', items: { type: 'number' }, description: '抽帧时间戳列表(秒或毫秒,触发 timestamps 检视)' },
51
+ fps: { type: 'number', description: '均匀抽帧帧率(触发 uniform 检视)' },
52
+ interval: { type: 'number', description: '均匀抽帧间隔(秒或毫秒,触发 uniform 检视)' },
53
+ num_frames: { type: 'number', description: '均匀抽帧目标总帧数(触发 uniform 检视)' },
54
+ crop: { type: 'object', description: '局部区域(归一化或像素坐标,归一化为 intent.roi_hint)' },
55
+ probe_only: { type: 'boolean', description: '仅探测视频元数据(等价 action="probe")' },
56
+ };
57
+ /** 工具 parameters:属性名 → 值 schema 映射。顶层额外声明历史便捷字段
58
+ * (宿主会剥离未声明参数,故必须显式列出才能到达适配器)。 */
46
59
  export const toolParameters = {
47
60
  video_path: { type: 'string', description: '待处理的本地视频文件路径' },
48
61
  intent: intentValueSchema,
62
+ ...legacyValueSchemas,
49
63
  };
50
64
  export const TOOL_DESCRIPTION = 'Look at a local video: adaptive dual-scale streaming perception (low-token P units during motion, ' +
51
65
  'high-detail F units at settle) plus deterministic inspection (probe metadata, exact-timestamp frames, ' +
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/tool/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,CAAC,MAAM,SAAS,GAAG,eAAe,CAAC;AAEzC,MAAM,CAAC,MAAM,kBAAkB,GAC7B,YAAY;IACZ,wGAAwG;IACxG,sDAAsD;IACtD,0DAA0D;IAC1D,8BAA8B;IAC9B,4BAA4B,CAAC;AAc/B,MAAM,CAAC,MAAM,iBAAiB,GAAgB;IAC5C,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,kBAAkB;IAC/B,UAAU,EAAE;QACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE;QACjF,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE;QAC/D,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,EAAE;QACjE,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,iCAAiC,EAAE;QACxG,aAAa,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,gBAAgB,EAAE;QAC1F,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE;QAC1D,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE;QACzD,QAAQ,EAAE;YACR,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACrB,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACrB,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACrB,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;aACtB;YACD,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;YAC9B,WAAW,EAAE,mBAAmB;SACjC;QACD,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,sBAAsB,EAAE;QACpE,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE;QAC5D,iBAAiB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,mBAAmB,EAAE;QACvE,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE;KACvD;IACD,oBAAoB,EAAE,KAAK;CAC5B,CAAC;AAEF,qDAAqD;AACrD,MAAM,CAAC,MAAM,cAAc,GAAgC;IACzD,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE;IAC3D,MAAM,EAAE,iBAAiB;CAC1B,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAC3B,oGAAoG;IACpG,wGAAwG;IACxG,wGAAwG;IACxG,+FAA+F;IAC/F,0DAA0D,CAAC;AAE7D,oCAAoC;AACpC,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,IAAI,EAAE,QAAQ;CACN,CAAC"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/tool/schema.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,8 @@ import { baselinesFromIntent } from '../stage5/intent.js';
10
10
  import type { IntentDirective, ProbeResult } from '../types.js';
11
11
  export interface StreamCallOptions {
12
12
  ffmpegPath: string;
13
+ /** 末帧探测与定点索引用的 ffprobe;缺省由 ffmpegPath 同目录派生。 */
14
+ ffprobePath?: string | undefined;
13
15
  renderVisualId: boolean;
14
16
  defaultStreamWindowMs: number;
15
17
  streamWorkMaxEdge: number;
@@ -8,22 +8,27 @@ import { runStreamPass } from '../stage3/streamSampler.js';
8
8
  import { timelineHintLine } from '../stage4/canvasPacker.js';
9
9
  import { coldRefHintLine, compactEpoch, HOT_WINDOW, planHistoryRefs, recordPackets, } from '../stage6/history.js';
10
10
  import { precheckBundle, } from '../stage6/precheck.js';
11
- import { baselinesFromIntent, mergeSessionIntent } from '../stage5/intent.js';
11
+ import { baselinesFromIntent, mergeSessionIntent, sessionIntentChanged } from '../stage5/intent.js';
12
12
  import { fingerprintOf, getSessionState, getVideoSlot } from '../session/state.js';
13
13
  export async function runStreamCall(videoPath, probe, intent, sessionId, options) {
14
14
  const session = getSessionState(sessionId);
15
15
  const fingerprint = fingerprintOf(videoPath);
16
16
  const slot = getVideoSlot(session, fingerprint);
17
- // 意图层:字段级合并到 session_intent(规格《五》§1.3)
18
- session.intentSeq += 1;
19
- const merged = mergeSessionIntent(session.intent, intent, {
17
+ // 意图层:字段级合并到 session_intent(规格《五》§1.3);
18
+ // 会话意图实际变化时才递增 intentSeq(probe/重复调用不产生新 intentId)。
19
+ const prevIntent = session.intent;
20
+ const merged = mergeSessionIntent(prevIntent, intent, {
20
21
  mode: 'standard',
21
22
  focus: 'balanced',
22
23
  });
24
+ if (sessionIntentChanged(prevIntent, merged) || session.intentSeq === 0) {
25
+ session.intentSeq += 1;
26
+ }
23
27
  merged.intentId = `intent_${session.intentSeq}`;
24
28
  session.intent = merged;
25
29
  const result = await runStreamPass(videoPath, probe, merged, slot.cursor, {
26
30
  ffmpegPath: options.ffmpegPath,
31
+ ffprobePath: options.ffprobePath,
27
32
  renderVisualId: options.renderVisualId,
28
33
  windowMs: intent.pts_window
29
34
  ? Math.max(1, intent.pts_window[1] - intent.pts_window[0])
@@ -55,10 +60,17 @@ export async function runStreamCall(videoPath, probe, intent, sessionId, options
55
60
  return session.packetSeq;
56
61
  }, merged.intentId);
57
62
  const { cold } = planHistoryRefs(slot, merged.intentId);
63
+ // 本次增量包被 Epoch 收编为冷区引用时,原始条带不再重复输出
64
+ // (规格《六》§3:按最终包龄输出冷区 FORM_3 与热区条带,每包只出现一次)。
65
+ const newPacketIds = new Set(result.packets.map((a) => a.packet.packetId));
66
+ const absorbedNewIds = new Set(slot.epoch.coldRefs
67
+ .map((c) => c.sourcePacketId)
68
+ .filter((id) => newPacketIds.has(id)));
69
+ const incremental = result.packets.filter((a) => !absorbedNewIds.has(a.packet.packetId));
58
70
  const items = [
59
71
  ...cold.map((artifact) => ({ kind: 'cold', artifact })),
60
72
  ...hot.map((artifact) => ({ kind: 'hot', artifact })),
61
- ...result.packets.map((artifact) => ({ kind: 'new', artifact })),
73
+ ...incremental.map((artifact) => ({ kind: 'new', artifact })),
62
74
  ];
63
75
  const precheck = precheckBundle(items, {
64
76
  maxRequestBytes: options.maxRequestBytes,
@@ -1 +1 @@
1
- {"version":3,"file":"streamCall.js","sourceRoot":"","sources":["../../src/tool/streamCall.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"streamCall.js","sourceRoot":"","sources":["../../src/tool/streamCall.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,aAAa,EAAwB,MAAM,4BAA4B,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAuB,MAAM,2BAA2B,CAAC;AAClF,OAAO,EACL,eAAe,EACf,YAAY,EACZ,UAAU,EACV,eAAe,EACf,aAAa,GACd,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,cAAc,GAIf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AACpG,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAgDnF,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,SAAiB,EACjB,KAAkB,EAClB,MAAuB,EACvB,SAAiB,EACjB,OAA0B;IAE1B,MAAM,OAAO,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;IAC3C,MAAM,WAAW,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAEhD,wCAAwC;IACxC,mDAAmD;IACnD,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAClC,MAAM,MAAM,GAAG,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE;QACpD,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,UAAU;KAClB,CAAC,CAAC;IACH,IAAI,oBAAoB,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,OAAO,CAAC,SAAS,KAAK,CAAC,EAAE,CAAC;QACxE,OAAO,CAAC,SAAS,IAAI,CAAC,CAAC;IACzB,CAAC;IACD,MAAM,CAAC,QAAQ,GAAG,UAAU,OAAO,CAAC,SAAS,EAAE,CAAC;IAChD,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;IAExB,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;QACxE,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,QAAQ,EAAE,MAAM,CAAC,UAAU;YACzB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAC1D,CAAC,CAAC,OAAO,CAAC,qBAAqB;QACjC,aAAa,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QACrC,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;QAC5C,UAAU,EAAE,MAAM,CAAC,WAAW,IAAI,OAAO,CAAC,iBAAiB;QAC3D,eAAe,EAAE,MAAM,CAAC,iBAAiB,IAAI,OAAO,CAAC,sBAAsB;QAC3E,eAAe,EAAE,MAAM,CAAC,QAAQ;QAChC,aAAa,EAAE,OAAO,CAAC,SAAS,GAAG,CAAC;QACpC,aAAa,EAAE,OAAO,CAAC,aAAa,GAAG,CAAC;QACxC,iBAAiB,EAAE,OAAO,CAAC,YAAY,GAAG,CAAC;QAC3C,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;IAEH,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC;IAChC,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;IAC9C,OAAO,CAAC,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC;IACtD,OAAO,CAAC,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC;IAEpD,0CAA0C;IAC1C,iCAAiC;IACjC,MAAM,GAAG,GAAG,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC;IACvD,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAC7C,YAAY,CACV,IAAI,EACJ,OAAO,EACP;QACE,SAAS,EAAE,UAAU;QACrB,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,WAAW,EAAE,OAAO,CAAC,qBAAqB;KAC3C,EACD,GAAG,EAAE;QACH,OAAO,CAAC,SAAS,IAAI,CAAC,CAAC;QACvB,OAAO,OAAO,CAAC,SAAS,CAAC;IAC3B,CAAC,EACD,MAAM,CAAC,QAAQ,CAChB,CAAC;IACF,MAAM,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IAExD,mCAAmC;IACnC,4CAA4C;IAC5C,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC3E,MAAM,cAAc,GAAG,IAAI,GAAG,CAC5B,IAAI,CAAC,KAAK,CAAC,QAAQ;SAChB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC;SAC5B,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CACxC,CAAC;IACF,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEzF,MAAM,KAAK,GAAiB;QAC1B,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,QAAQ,EAAE,CAAC,CAAC;QAChE,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAc,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC9D,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAc,EAAE,QAAQ,EAAE,CAAC,CAAC;KACvE,CAAC;IACF,MAAM,QAAQ,GAAG,cAAc,CAAC,KAAK,EAAE;QACrC,eAAe,EAAE,OAAO,CAAC,eAAe;QACxC,UAAU,EAAE,MAAM,CAAC,WAAW,IAAI,OAAO,CAAC,iBAAiB;QAC3D,eAAe,EAAE,MAAM,CAAC,iBAAiB,IAAI,OAAO,CAAC,sBAAsB;QAC3E,sBAAsB,EAAE,OAAO,CAAC,sBAAsB;QACtD,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;KAC7C,CAAC,CAAC;IAEH,gCAAgC;IAChC,MAAM,WAAW,GAAqB,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;IAC7E,MAAM,QAAQ,GAAG,IAAI,GAAG,CACtB,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CACzF,CAAC;IACF,MAAM,aAAa,GAAa,EAAE,CAAC;IACnC,KAAK,MAAM,EAAE,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC/B,IAAI,EAAE,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACvB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CACnC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CACrD,CAAC;YACF,IAAI,IAAI;gBAAE,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;QACtD,CAAC;aAAM,IAAI,EAAE,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YAC7B,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC;QACnF,CAAC;IACH,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACpC,qCAAqC;QACrC,MAAM,CAAC,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAAE,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChE,CAAC;IAED,OAAO;QACL,GAAG,MAAM;QACT,OAAO,EAAE,WAAW;QACpB,SAAS,EAAE,aAAa;QACxB,SAAS,EAAE,EAAE,GAAG,MAAM,CAAC,SAAS,EAAE,QAAQ,EAAE,iBAAiB,CAAC,QAAQ,CAAC,EAAE;QACzE,YAAY,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,MAAM;QACrE,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,MAAM;QACnE,eAAe,EAAE,MAAM,CAAC,QAAQ;QAChC,eAAe,EAAE,MAAM,CAAC,QAAQ;KACjC,CAAC;AACJ,CAAC;AAED,2CAA2C;AAC3C,SAAS,iBAAiB,CAAC,QAAwB;IACjD,OAAO;QACL,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC3F,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;QACjF,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB;QAC3C,YAAY,EAAE,QAAQ,CAAC,YAAY;QACnC,MAAM,EAAE,QAAQ,CAAC,MAAM;KACxB,CAAC;AACJ,CAAC;AAED,kCAAkC;AAClC,MAAM,UAAU,iBAAiB,CAAC,MAAuB;IACvD,OAAO,mBAAmB,CAAC,MAAM,CAAC,IAAI,IAAI,UAAU,EAAE,MAAM,CAAC,KAAK,IAAI,UAAU,CAAC,CAAC;AACpF,CAAC"}
package/lib/types.d.ts CHANGED
@@ -221,16 +221,12 @@ export interface StateMachineSnapshot {
221
221
  gEma: number;
222
222
  emaWarmupLeft: number;
223
223
  settleStartPtsMs: number | null;
224
- lastKCandidates: number[] | null;
225
- lastMotionVec: [number, number] | null;
226
- arena: ArenaCandidate | null;
227
224
  mergeStartPtsMs?: number | null;
228
225
  switchStaticSincePtsMs?: number | null;
229
226
  fSwitchPending?: boolean;
230
227
  clarityWarmupLeft?: number;
231
228
  rhoHistory?: number[];
232
229
  motionEnteredAtPtsMs?: number | null;
233
- maxDSinceLastF?: number;
234
230
  lastHeartbeatPtsMs?: number | null;
235
231
  /** 自闭环控制器状态(M3 起填充)。 */
236
232
  ctrl?: ControllerSnapshot;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-pf-stream",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "description": "DeepSeek Harness video perception plugin: adaptive dual-scale streaming sampling plus deterministic inspection, aligned to the DeepSeek-V4.1-Flash vision pipeline (42px superpixel grid, <=1024 tokens per image).",
5
5
  "type": "module",
6
6
  "repository": {