@lingjingai/scriptctl 0.1.0 → 0.2.0

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 (36) hide show
  1. package/README.md +71 -0
  2. package/dist/cli.js +305 -396
  3. package/dist/cli.js.map +1 -1
  4. package/dist/domain/asset-registry.d.ts +141 -0
  5. package/dist/domain/asset-registry.js +318 -0
  6. package/dist/domain/asset-registry.js.map +1 -0
  7. package/dist/domain/collision-detector.d.ts +83 -0
  8. package/dist/domain/collision-detector.js +248 -0
  9. package/dist/domain/collision-detector.js.map +1 -0
  10. package/dist/domain/direct-core.d.ts +13 -1
  11. package/dist/domain/direct-core.js +14 -4
  12. package/dist/domain/direct-core.js.map +1 -1
  13. package/dist/domain/script-core.d.ts +11 -0
  14. package/dist/domain/script-core.js +34 -19
  15. package/dist/domain/script-core.js.map +1 -1
  16. package/dist/help-text.js +283 -0
  17. package/dist/help-text.js.map +1 -1
  18. package/dist/infra/converters.js +21 -7
  19. package/dist/infra/converters.js.map +1 -1
  20. package/dist/infra/default-writing-prompt.d.ts +31 -0
  21. package/dist/infra/default-writing-prompt.js +50 -0
  22. package/dist/infra/default-writing-prompt.js.map +1 -0
  23. package/dist/infra/default-writing-prompt.md +115 -0
  24. package/dist/infra/gemini-writer.d.ts +107 -0
  25. package/dist/infra/gemini-writer.js +207 -0
  26. package/dist/infra/gemini-writer.js.map +1 -0
  27. package/dist/infra/providers.d.ts +36 -0
  28. package/dist/infra/providers.js +186 -2
  29. package/dist/infra/providers.js.map +1 -1
  30. package/dist/usecases/episode.d.ts +47 -0
  31. package/dist/usecases/episode.js +1188 -0
  32. package/dist/usecases/episode.js.map +1 -0
  33. package/dist/usecases/script.d.ts +6 -2
  34. package/dist/usecases/script.js +4 -4
  35. package/dist/usecases/script.js.map +1 -1
  36. package/package.json +4 -4
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,141 @@
1
+ /**
2
+ * Cross-episode asset registry for incremental drafting.
3
+ *
4
+ * The registry is the single source of truth (locally) for which actors / locations /
5
+ * props / speakers exist across already-drafted episodes. It lets the episode
6
+ * subcommand:
7
+ *
8
+ * 1. Inject an "existing assets" list into the Gemini prompt (prevention).
9
+ * 2. Detect collisions when a freshly-parsed fragment declares an asset that already
10
+ * exists (correction).
11
+ * 3. Assign stable ids (`act_001`, `loc_001`, ...) that survive across draft / publish.
12
+ * 4. Roll back an episode's introduced entries when its draft is regenerated.
13
+ *
14
+ * The registry file lives at `<workspace>/episodes/asset-registry.json` by default
15
+ * (co-located with the rest of scriptctl episode's own writes).
16
+ *
17
+ * Whether an episode has been "committed" (i.e. its draft passed all gates) is
18
+ * tracked by the `.done-NN` marker file the episode orchestrator writes —
19
+ * not by any state inside the registry. The registry stores only durable cross-
20
+ * episode facts (id, first/last seen, appearance count); orchestration state
21
+ * (commit / rollback) is the orchestrator's concern.
22
+ */
23
+ export type AssetType = "actor" | "location" | "prop" | "speaker";
24
+ export interface AssetState {
25
+ id: string;
26
+ name: string;
27
+ description?: string | null;
28
+ }
29
+ interface BaseAssetEntry {
30
+ id: string;
31
+ name: string;
32
+ description: string | null;
33
+ firstSeenEpisode: number;
34
+ firstSeenScene: string;
35
+ firstSeenAction: string;
36
+ lastSeenEpisode: number;
37
+ appearanceCount: number;
38
+ states: AssetState[];
39
+ introducedByEpisode: number;
40
+ }
41
+ export interface ActorEntry extends BaseAssetEntry {
42
+ }
43
+ export interface LocationEntry extends BaseAssetEntry {
44
+ }
45
+ export interface PropEntry extends BaseAssetEntry {
46
+ }
47
+ export interface SpeakerEntry extends BaseAssetEntry {
48
+ sourceKind: string;
49
+ }
50
+ export interface AssetRegistry {
51
+ version: 1;
52
+ actors: ActorEntry[];
53
+ locations: LocationEntry[];
54
+ props: PropEntry[];
55
+ speakers: SpeakerEntry[];
56
+ }
57
+ export interface FragmentAssetDeclaration {
58
+ name: string;
59
+ description: string | null;
60
+ }
61
+ export interface FragmentSpeakerDeclaration extends FragmentAssetDeclaration {
62
+ sourceKind: string;
63
+ }
64
+ export interface ApplyFragmentResult {
65
+ newIds: {
66
+ actor: string[];
67
+ location: string[];
68
+ prop: string[];
69
+ speaker: string[];
70
+ };
71
+ reusedIds: {
72
+ actor: string[];
73
+ location: string[];
74
+ prop: string[];
75
+ speaker: string[];
76
+ };
77
+ }
78
+ export declare function defaultRegistryPath(workspace: string): string;
79
+ export declare function emptyRegistry(): AssetRegistry;
80
+ export declare function loadRegistry(registryPath: string): AssetRegistry;
81
+ export declare function saveRegistry(registryPath: string, reg: AssetRegistry): void;
82
+ export declare function lookupActor(reg: AssetRegistry, name: string): ActorEntry | null;
83
+ export declare function lookupLocation(reg: AssetRegistry, name: string): LocationEntry | null;
84
+ export declare function lookupProp(reg: AssetRegistry, name: string): PropEntry | null;
85
+ export declare function lookupSpeaker(reg: AssetRegistry, name: string, sourceKind?: string): SpeakerEntry | null;
86
+ interface ActionLike {
87
+ type?: string;
88
+ content?: unknown;
89
+ speaker?: unknown;
90
+ speaker_kind?: unknown;
91
+ [k: string]: unknown;
92
+ }
93
+ interface SceneLike {
94
+ scene_num?: number;
95
+ location_name?: string;
96
+ actor_names?: string[];
97
+ prop_names?: string[];
98
+ actions?: ActionLike[];
99
+ [k: string]: unknown;
100
+ }
101
+ export interface FragmentLike {
102
+ episode?: number;
103
+ scenes?: SceneLike[];
104
+ actors?: FragmentAssetDeclaration[];
105
+ locations?: FragmentAssetDeclaration[];
106
+ props?: FragmentAssetDeclaration[];
107
+ speakers?: FragmentSpeakerDeclaration[];
108
+ [k: string]: unknown;
109
+ }
110
+ /**
111
+ * Mutate `reg` to incorporate the fragment's asset declarations and scene appearances.
112
+ *
113
+ * New assets are added with `introducedByEpisode: episode`. Already-registered
114
+ * assets get `lastSeenEpisode` / `appearanceCount` bumped, and a missing description
115
+ * is back-filled when the fragment provides one.
116
+ *
117
+ * If the orchestrator later decides this episode's draft is bad (lint critical /
118
+ * validation blocking), it should call `rollbackEpisode(reg, episode)` to undo
119
+ * the introductions. Episodes whose `.done-NN` marker exists must not be rolled
120
+ * back — the orchestrator gates that check itself.
121
+ */
122
+ export declare function applyFragment(reg: AssetRegistry, fragment: FragmentLike, episode: number): ApplyFragmentResult;
123
+ /**
124
+ * Remove all entries introduced by `episode`. The orchestrator calls this when an
125
+ * episode's draft is regenerated (`--regen`) or fails a gate (lint critical /
126
+ * validation blocking) before its `.done-NN` marker is written.
127
+ *
128
+ * This function is unconditional — committed-marker guarding lives in the
129
+ * orchestrator, not here, because "committed" is a filesystem fact (marker file
130
+ * presence), not part of the registry's data model.
131
+ */
132
+ export declare function rollbackEpisode(reg: AssetRegistry, episode: number): void;
133
+ /**
134
+ * Render the registry as a markdown summary suitable for injecting into Gemini's
135
+ * prompt. The agent is told "if a character matches, reuse the name; do NOT re-declare
136
+ * in `## 人物`".
137
+ *
138
+ * Returns an empty string when the registry has no entries.
139
+ */
140
+ export declare function summarizeForPrompt(reg: AssetRegistry): string;
141
+ export {};
@@ -0,0 +1,318 @@
1
+ /**
2
+ * Cross-episode asset registry for incremental drafting.
3
+ *
4
+ * The registry is the single source of truth (locally) for which actors / locations /
5
+ * props / speakers exist across already-drafted episodes. It lets the episode
6
+ * subcommand:
7
+ *
8
+ * 1. Inject an "existing assets" list into the Gemini prompt (prevention).
9
+ * 2. Detect collisions when a freshly-parsed fragment declares an asset that already
10
+ * exists (correction).
11
+ * 3. Assign stable ids (`act_001`, `loc_001`, ...) that survive across draft / publish.
12
+ * 4. Roll back an episode's introduced entries when its draft is regenerated.
13
+ *
14
+ * The registry file lives at `<workspace>/episodes/asset-registry.json` by default
15
+ * (co-located with the rest of scriptctl episode's own writes).
16
+ *
17
+ * Whether an episode has been "committed" (i.e. its draft passed all gates) is
18
+ * tracked by the `.done-NN` marker file the episode orchestrator writes —
19
+ * not by any state inside the registry. The registry stores only durable cross-
20
+ * episode facts (id, first/last seen, appearance count); orchestration state
21
+ * (commit / rollback) is the orchestrator's concern.
22
+ */
23
+ import * as fs from "node:fs";
24
+ import * as path from "node:path";
25
+ import { exists, fmtId, readJson, writeJson } from "../common.js";
26
+ const REGISTRY_VERSION = 1;
27
+ // ---------------------------------------------------------------------------
28
+ // Path helpers
29
+ // ---------------------------------------------------------------------------
30
+ export function defaultRegistryPath(workspace) {
31
+ return path.join(workspace, "episodes", "asset-registry.json");
32
+ }
33
+ // ---------------------------------------------------------------------------
34
+ // Factory / I/O
35
+ // ---------------------------------------------------------------------------
36
+ export function emptyRegistry() {
37
+ return { version: REGISTRY_VERSION, actors: [], locations: [], props: [], speakers: [] };
38
+ }
39
+ export function loadRegistry(registryPath) {
40
+ if (!exists(registryPath))
41
+ return emptyRegistry();
42
+ const raw = readJson(registryPath);
43
+ return {
44
+ version: REGISTRY_VERSION,
45
+ actors: Array.isArray(raw.actors) ? raw.actors : [],
46
+ locations: Array.isArray(raw.locations) ? raw.locations : [],
47
+ props: Array.isArray(raw.props) ? raw.props : [],
48
+ speakers: Array.isArray(raw.speakers) ? raw.speakers : [],
49
+ };
50
+ }
51
+ export function saveRegistry(registryPath, reg) {
52
+ fs.mkdirSync(path.dirname(registryPath), { recursive: true });
53
+ writeJson(registryPath, reg);
54
+ }
55
+ // ---------------------------------------------------------------------------
56
+ // Lookups
57
+ // ---------------------------------------------------------------------------
58
+ function lookupIn(list, name) {
59
+ const target = name.trim();
60
+ if (!target)
61
+ return null;
62
+ for (const entry of list) {
63
+ if (entry.name === target)
64
+ return entry;
65
+ }
66
+ return null;
67
+ }
68
+ export function lookupActor(reg, name) {
69
+ return lookupIn(reg.actors, name);
70
+ }
71
+ export function lookupLocation(reg, name) {
72
+ return lookupIn(reg.locations, name);
73
+ }
74
+ export function lookupProp(reg, name) {
75
+ return lookupIn(reg.props, name);
76
+ }
77
+ export function lookupSpeaker(reg, name, sourceKind) {
78
+ const target = name.trim();
79
+ if (!target)
80
+ return null;
81
+ for (const entry of reg.speakers) {
82
+ if (entry.name !== target)
83
+ continue;
84
+ if (sourceKind && entry.sourceKind !== sourceKind)
85
+ continue;
86
+ return entry;
87
+ }
88
+ return null;
89
+ }
90
+ // ---------------------------------------------------------------------------
91
+ // Mutations (in-place)
92
+ // ---------------------------------------------------------------------------
93
+ function nextIdForList(list, prefix) {
94
+ let max = 0;
95
+ const pattern = new RegExp(`^${prefix}_(\\d+)$`);
96
+ for (const entry of list) {
97
+ const m = pattern.exec(entry.id);
98
+ if (m) {
99
+ const n = parseInt(m[1], 10);
100
+ if (Number.isFinite(n) && n > max)
101
+ max = n;
102
+ }
103
+ }
104
+ return fmtId(prefix, max + 1);
105
+ }
106
+ function registerOrTouch(list, prefix, decl, episode, firstSeen, extra = {}) {
107
+ const name = decl.name.trim();
108
+ const existing = lookupIn(list, name);
109
+ if (existing) {
110
+ if (episode < existing.firstSeenEpisode) {
111
+ existing.firstSeenEpisode = episode;
112
+ existing.firstSeenScene = firstSeen.scene;
113
+ existing.firstSeenAction = firstSeen.action;
114
+ }
115
+ if (episode > existing.lastSeenEpisode)
116
+ existing.lastSeenEpisode = episode;
117
+ existing.appearanceCount += 1;
118
+ if (decl.description && !existing.description)
119
+ existing.description = decl.description;
120
+ return { entry: existing, isNew: false };
121
+ }
122
+ const id = nextIdForList(list, prefix);
123
+ const created = {
124
+ id,
125
+ name,
126
+ description: decl.description ?? null,
127
+ firstSeenEpisode: episode,
128
+ firstSeenScene: firstSeen.scene,
129
+ firstSeenAction: firstSeen.action,
130
+ lastSeenEpisode: episode,
131
+ appearanceCount: 1,
132
+ states: [],
133
+ introducedByEpisode: episode,
134
+ ...extra,
135
+ };
136
+ list.push(created);
137
+ return { entry: created, isNew: true };
138
+ }
139
+ // ---------------------------------------------------------------------------
140
+ // First-seen extraction from a parsed fragment
141
+ // ---------------------------------------------------------------------------
142
+ function findFirstSeen(fragment, episode, predicate) {
143
+ const scenes = fragment.scenes ?? [];
144
+ for (let i = 0; i < scenes.length; i++) {
145
+ const scene = scenes[i];
146
+ const sceneNum = typeof scene.scene_num === "number" ? scene.scene_num : i + 1;
147
+ const sceneId = `ep_${String(episode).padStart(3, "0")}/scn_${String(sceneNum).padStart(3, "0")}`;
148
+ const actions = scene.actions ?? [];
149
+ for (const action of actions) {
150
+ if (predicate(action, i)) {
151
+ return { scene: sceneId, action: String(action.content ?? "").trim() };
152
+ }
153
+ }
154
+ }
155
+ return { scene: "", action: "" };
156
+ }
157
+ function findFirstSceneOfActor(fragment, episode, actorName) {
158
+ const scenes = fragment.scenes ?? [];
159
+ for (let i = 0; i < scenes.length; i++) {
160
+ const scene = scenes[i];
161
+ const sceneNum = typeof scene.scene_num === "number" ? scene.scene_num : i + 1;
162
+ const actorNames = scene.actor_names ?? [];
163
+ if (actorNames.includes(actorName)) {
164
+ const sceneId = `ep_${String(episode).padStart(3, "0")}/scn_${String(sceneNum).padStart(3, "0")}`;
165
+ const firstAction = (scene.actions ?? []).find((a) => {
166
+ const content = String(a.content ?? "");
167
+ return content.includes(actorName);
168
+ });
169
+ return { scene: sceneId, action: String(firstAction?.content ?? "").trim() };
170
+ }
171
+ }
172
+ return { scene: "", action: "" };
173
+ }
174
+ function findFirstSceneOfLocation(fragment, episode, locationName) {
175
+ const scenes = fragment.scenes ?? [];
176
+ for (let i = 0; i < scenes.length; i++) {
177
+ const scene = scenes[i];
178
+ const sceneNum = typeof scene.scene_num === "number" ? scene.scene_num : i + 1;
179
+ if (scene.location_name === locationName) {
180
+ const sceneId = `ep_${String(episode).padStart(3, "0")}/scn_${String(sceneNum).padStart(3, "0")}`;
181
+ const firstAction = (scene.actions ?? [])[0];
182
+ return { scene: sceneId, action: String(firstAction?.content ?? "").trim() };
183
+ }
184
+ }
185
+ return { scene: "", action: "" };
186
+ }
187
+ function findFirstSceneOfProp(fragment, episode, propName) {
188
+ const scenes = fragment.scenes ?? [];
189
+ for (let i = 0; i < scenes.length; i++) {
190
+ const scene = scenes[i];
191
+ const sceneNum = typeof scene.scene_num === "number" ? scene.scene_num : i + 1;
192
+ const propNames = scene.prop_names ?? [];
193
+ if (propNames.includes(propName)) {
194
+ const sceneId = `ep_${String(episode).padStart(3, "0")}/scn_${String(sceneNum).padStart(3, "0")}`;
195
+ const firstAction = (scene.actions ?? []).find((a) => String(a.content ?? "").includes(propName));
196
+ return { scene: sceneId, action: String(firstAction?.content ?? "").trim() };
197
+ }
198
+ }
199
+ return { scene: "", action: "" };
200
+ }
201
+ // ---------------------------------------------------------------------------
202
+ // Apply a parsed fragment to the registry
203
+ // ---------------------------------------------------------------------------
204
+ /**
205
+ * Mutate `reg` to incorporate the fragment's asset declarations and scene appearances.
206
+ *
207
+ * New assets are added with `introducedByEpisode: episode`. Already-registered
208
+ * assets get `lastSeenEpisode` / `appearanceCount` bumped, and a missing description
209
+ * is back-filled when the fragment provides one.
210
+ *
211
+ * If the orchestrator later decides this episode's draft is bad (lint critical /
212
+ * validation blocking), it should call `rollbackEpisode(reg, episode)` to undo
213
+ * the introductions. Episodes whose `.done-NN` marker exists must not be rolled
214
+ * back — the orchestrator gates that check itself.
215
+ */
216
+ export function applyFragment(reg, fragment, episode) {
217
+ const result = {
218
+ newIds: { actor: [], location: [], prop: [], speaker: [] },
219
+ reusedIds: { actor: [], location: [], prop: [], speaker: [] },
220
+ };
221
+ for (const decl of fragment.actors ?? []) {
222
+ const fs = findFirstSceneOfActor(fragment, episode, decl.name);
223
+ const { entry, isNew } = registerOrTouch(reg.actors, "act", decl, episode, fs);
224
+ (isNew ? result.newIds.actor : result.reusedIds.actor).push(entry.id);
225
+ }
226
+ for (const decl of fragment.locations ?? []) {
227
+ const fs = findFirstSceneOfLocation(fragment, episode, decl.name);
228
+ const { entry, isNew } = registerOrTouch(reg.locations, "loc", decl, episode, fs);
229
+ (isNew ? result.newIds.location : result.reusedIds.location).push(entry.id);
230
+ }
231
+ for (const decl of fragment.props ?? []) {
232
+ const fs = findFirstSceneOfProp(fragment, episode, decl.name);
233
+ const { entry, isNew } = registerOrTouch(reg.props, "prop", decl, episode, fs);
234
+ (isNew ? result.newIds.prop : result.reusedIds.prop).push(entry.id);
235
+ }
236
+ for (const decl of fragment.speakers ?? []) {
237
+ // For speakers, first-seen by content scan (action speaker field)
238
+ const fs = findFirstSeen(fragment, episode, (a) => {
239
+ const sp = typeof a.speaker === "string" ? a.speaker : "";
240
+ return sp === decl.name;
241
+ });
242
+ const { entry, isNew } = registerOrTouch(reg.speakers, "spk", decl, episode, fs, { sourceKind: decl.sourceKind });
243
+ (isNew ? result.newIds.speaker : result.reusedIds.speaker).push(entry.id);
244
+ }
245
+ return result;
246
+ }
247
+ // ---------------------------------------------------------------------------
248
+ // Rollback
249
+ // ---------------------------------------------------------------------------
250
+ /**
251
+ * Remove all entries introduced by `episode`. The orchestrator calls this when an
252
+ * episode's draft is regenerated (`--regen`) or fails a gate (lint critical /
253
+ * validation blocking) before its `.done-NN` marker is written.
254
+ *
255
+ * This function is unconditional — committed-marker guarding lives in the
256
+ * orchestrator, not here, because "committed" is a filesystem fact (marker file
257
+ * presence), not part of the registry's data model.
258
+ */
259
+ export function rollbackEpisode(reg, episode) {
260
+ const filter = (list) => list.filter((e) => e.introducedByEpisode !== episode);
261
+ reg.actors = filter(reg.actors);
262
+ reg.locations = filter(reg.locations);
263
+ reg.props = filter(reg.props);
264
+ reg.speakers = filter(reg.speakers);
265
+ }
266
+ // ---------------------------------------------------------------------------
267
+ // Prompt injection summary (Strategy 1: prevention)
268
+ // ---------------------------------------------------------------------------
269
+ /**
270
+ * Render the registry as a markdown summary suitable for injecting into Gemini's
271
+ * prompt. The agent is told "if a character matches, reuse the name; do NOT re-declare
272
+ * in `## 人物`".
273
+ *
274
+ * Returns an empty string when the registry has no entries.
275
+ */
276
+ export function summarizeForPrompt(reg) {
277
+ if (reg.actors.length === 0 &&
278
+ reg.locations.length === 0 &&
279
+ reg.props.length === 0 &&
280
+ reg.speakers.length === 0) {
281
+ return "";
282
+ }
283
+ const lines = ["# 已存在资产清单(复用时直接在 ref 处用名字,不要在 `## 人物`/`## 场景`/`## 道具`/`## 发声源` 段重复登记)", ""];
284
+ if (reg.actors.length) {
285
+ lines.push("## 人物");
286
+ for (const e of reg.actors) {
287
+ const desc = e.description ? `:${e.description}` : "";
288
+ lines.push(`- ${e.name}${desc}(首次出现 ep${e.firstSeenEpisode})`);
289
+ }
290
+ lines.push("");
291
+ }
292
+ if (reg.locations.length) {
293
+ lines.push("## 场景");
294
+ for (const e of reg.locations) {
295
+ const desc = e.description ? `:${e.description}` : "";
296
+ lines.push(`- ${e.name}${desc}`);
297
+ }
298
+ lines.push("");
299
+ }
300
+ if (reg.props.length) {
301
+ lines.push("## 道具");
302
+ for (const e of reg.props) {
303
+ const desc = e.description ? `:${e.description}` : "";
304
+ lines.push(`- ${e.name}${desc}`);
305
+ }
306
+ lines.push("");
307
+ }
308
+ if (reg.speakers.length) {
309
+ lines.push("## 发声源");
310
+ for (const e of reg.speakers) {
311
+ const desc = e.description ? `:${e.description}` : "";
312
+ lines.push(`- ${e.name}(${e.sourceKind})${desc}`);
313
+ }
314
+ lines.push("");
315
+ }
316
+ return lines.join("\n").trimEnd();
317
+ }
318
+ //# sourceMappingURL=asset-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asset-registry.js","sourceRoot":"","sources":["../../src/domain/asset-registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Asset collision detector for cross-episode incremental drafting.
3
+ *
4
+ * When a freshly-parsed fragment declares a new asset (in `## 人物`/`## 场景`/`## 道具`/
5
+ * `## 发声源`) whose name already exists in the registry, the detector raises a
6
+ * structured report. The orchestrator (episode subcommand) is expected to surface this
7
+ * to the agent, which decides among three resolutions:
8
+ * - accept_identity: same entity, drop the duplicate declaration (refs use existing id)
9
+ * - distinguish_rename: different entity, rename the new one to disambiguate
10
+ * - promote_to_state: same entity, different state — add a state to existing asset
11
+ *
12
+ * Only exact-name collisions are detected. The kind reflects whether the agent
13
+ * should treat it as blocking or a warning, based on description similarity:
14
+ * - hard: exact name match (description similar enough that it's almost certainly
15
+ * the same entity). Blocks commit; expects agent resolution.
16
+ * - soft: exact name match but descriptions clearly diverge — could be intentional
17
+ * reuse of a generic label (e.g. two unrelated "路人甲"). Warn but don't block.
18
+ *
19
+ * The detector is a pure function: it reads the fragment and the registry,
20
+ * never mutates either.
21
+ */
22
+ import type { AssetRegistry, AssetType, FragmentLike } from "./asset-registry.js";
23
+ export type CollisionKind = "hard" | "soft";
24
+ export type CollisionResolution = "accept_identity" | "distinguish_rename" | "promote_to_state";
25
+ export interface CollisionReport {
26
+ kind: CollisionKind;
27
+ assetType: AssetType;
28
+ fragmentDeclaration: {
29
+ name: string;
30
+ description: string | null;
31
+ firstSeenScene?: string;
32
+ firstSeenAction?: string;
33
+ };
34
+ registryEntry: {
35
+ id: string;
36
+ name: string;
37
+ description: string | null;
38
+ firstSeenEpisode: number;
39
+ firstSeenScene: string;
40
+ firstSeenAction: string;
41
+ lastSeenEpisode: number;
42
+ appearanceCount: number;
43
+ states: Array<{
44
+ id: string;
45
+ name: string;
46
+ }>;
47
+ sourceKind?: string;
48
+ };
49
+ descriptionSimilarity: number;
50
+ resolutions: CollisionResolution[];
51
+ }
52
+ export interface DetectCollisionsOptions {
53
+ /**
54
+ * Description Jaccard similarity (0..1) below which a `soft` collision is raised
55
+ * for matching names. Default 0.4 — chosen to flag clearly divergent descriptions
56
+ * while tolerating natural variance (e.g. "穿灰色西装" vs "灰西装中年男").
57
+ */
58
+ softSimilarityThreshold?: number;
59
+ }
60
+ /**
61
+ * Detect collisions between a freshly-parsed fragment and the existing registry.
62
+ *
63
+ * Returns a (possibly empty) list of reports. Caller (episode subcommand) treats:
64
+ * - `kind: "hard"` as blocking — agent must resolve before commit
65
+ * - `kind: "soft"` as warning — agent should consider but may proceed
66
+ * - `kind: "hint"` as info — surfaced for awareness only
67
+ *
68
+ * The episode number is taken from `fragment.episode` if available, otherwise
69
+ * passed via `opts.episode` (caller responsibility).
70
+ */
71
+ export declare function detectCollisions(fragment: FragmentLike, registry: AssetRegistry, opts?: DetectCollisionsOptions & {
72
+ episode?: number;
73
+ }): CollisionReport[];
74
+ /**
75
+ * Whether any report has `kind: "hard"` — convenience for episode.ts commit gating.
76
+ */
77
+ export declare function hasHardCollision(reports: CollisionReport[]): boolean;
78
+ /**
79
+ * Render a list of CollisionReports as a human-readable markdown summary suitable
80
+ * for stderr output. The machine-readable JSON is expected to be written to
81
+ * `workspace/episodes/ep<n>.collision.json` by the orchestrator.
82
+ */
83
+ export declare function summarizeReports(reports: CollisionReport[]): string;