@lingjingai/scriptctl 0.28.3 → 0.29.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 (117) hide show
  1. package/changes/0.28.4.md +13 -0
  2. package/changes/0.29.0.md +17 -0
  3. package/dist/cli.js +25 -3
  4. package/dist/cli.js.map +1 -1
  5. package/dist/common.d.ts +1 -0
  6. package/dist/common.js +3 -0
  7. package/dist/common.js.map +1 -1
  8. package/dist/domain/direct/runner.d.ts +23 -0
  9. package/dist/domain/direct/runner.js +72 -0
  10. package/dist/domain/direct/runner.js.map +1 -0
  11. package/dist/domain/direct/stage.d.ts +86 -0
  12. package/dist/domain/direct/stage.js +131 -0
  13. package/dist/domain/direct/stage.js.map +1 -0
  14. package/dist/domain/direct/stages/asset-curation.d.ts +2 -0
  15. package/dist/domain/direct/stages/asset-curation.js +9 -0
  16. package/dist/domain/direct/stages/asset-curation.js.map +1 -0
  17. package/dist/domain/direct/stages/batch-extract.d.ts +2 -0
  18. package/dist/domain/direct/stages/batch-extract.js +12 -0
  19. package/dist/domain/direct/stages/batch-extract.js.map +1 -0
  20. package/dist/domain/direct/stages/batch-plan.d.ts +2 -0
  21. package/dist/domain/direct/stages/batch-plan.js +9 -0
  22. package/dist/domain/direct/stages/batch-plan.js.map +1 -0
  23. package/dist/domain/direct/stages/episode-merge.d.ts +2 -0
  24. package/dist/domain/direct/stages/episode-merge.js +11 -0
  25. package/dist/domain/direct/stages/episode-merge.js.map +1 -0
  26. package/dist/domain/direct/stages/episode-plan.d.ts +2 -0
  27. package/dist/domain/direct/stages/episode-plan.js +9 -0
  28. package/dist/domain/direct/stages/episode-plan.js.map +1 -0
  29. package/dist/domain/direct/stages/episode-synopsis.d.ts +2 -0
  30. package/dist/domain/direct/stages/episode-synopsis.js +12 -0
  31. package/dist/domain/direct/stages/episode-synopsis.js.map +1 -0
  32. package/dist/domain/direct/stages/episode-titles.d.ts +2 -0
  33. package/dist/domain/direct/stages/episode-titles.js +12 -0
  34. package/dist/domain/direct/stages/episode-titles.js.map +1 -0
  35. package/dist/domain/direct/stages/index.d.ts +17 -0
  36. package/dist/domain/direct/stages/index.js +37 -0
  37. package/dist/domain/direct/stages/index.js.map +1 -0
  38. package/dist/domain/direct/stages/metadata.d.ts +2 -0
  39. package/dist/domain/direct/stages/metadata.js +11 -0
  40. package/dist/domain/direct/stages/metadata.js.map +1 -0
  41. package/dist/domain/direct/stages/script-merge.d.ts +2 -0
  42. package/dist/domain/direct/stages/script-merge.js +15 -0
  43. package/dist/domain/direct/stages/script-merge.js.map +1 -0
  44. package/dist/domain/direct/stages/script-synopsis.d.ts +2 -0
  45. package/dist/domain/direct/stages/script-synopsis.js +12 -0
  46. package/dist/domain/direct/stages/script-synopsis.js.map +1 -0
  47. package/dist/domain/direct/stages/source-prepare.d.ts +2 -0
  48. package/dist/domain/direct/stages/source-prepare.js +9 -0
  49. package/dist/domain/direct/stages/source-prepare.js.map +1 -0
  50. package/dist/domain/direct/stages/validate.d.ts +2 -0
  51. package/dist/domain/direct/stages/validate.js +10 -0
  52. package/dist/domain/direct/stages/validate.js.map +1 -0
  53. package/dist/domain/direct-core.js +15 -1
  54. package/dist/domain/direct-core.js.map +1 -1
  55. package/dist/help-text.js +1 -1
  56. package/dist/infra/local-script-output-store.d.ts +2 -1
  57. package/dist/infra/local-script-output-store.js +11 -0
  58. package/dist/infra/local-script-output-store.js.map +1 -1
  59. package/dist/infra/providers.js +13 -4
  60. package/dist/infra/providers.js.map +1 -1
  61. package/dist/infra/script-output-api.d.ts +27 -4
  62. package/dist/infra/script-output-api.js +130 -106
  63. package/dist/infra/script-output-api.js.map +1 -1
  64. package/dist/infra/script-output-store.d.ts +24 -0
  65. package/dist/infra/script-output-store.js.map +1 -1
  66. package/dist/usecases/direct.d.ts +14 -0
  67. package/dist/usecases/direct.js +725 -360
  68. package/dist/usecases/direct.js.map +1 -1
  69. package/dist/usecases/parse.js +2 -2
  70. package/dist/usecases/parse.js.map +1 -1
  71. package/dist/usecases/script/actions.js.map +1 -1
  72. package/dist/usecases/script/actor.js.map +1 -1
  73. package/dist/usecases/script/actors.js.map +1 -1
  74. package/dist/usecases/script/add-actor.js.map +1 -1
  75. package/dist/usecases/script/add-episode.js.map +1 -1
  76. package/dist/usecases/script/add-location.js.map +1 -1
  77. package/dist/usecases/script/add-prop.js.map +1 -1
  78. package/dist/usecases/script/add-speaker.js.map +1 -1
  79. package/dist/usecases/script/alias.js.map +1 -1
  80. package/dist/usecases/script/assets.js.map +1 -1
  81. package/dist/usecases/script/context.js.map +1 -1
  82. package/dist/usecases/script/create.js.map +1 -1
  83. package/dist/usecases/script/delete.js.map +1 -1
  84. package/dist/usecases/script/describe.js.map +1 -1
  85. package/dist/usecases/script/dialogue.js.map +1 -1
  86. package/dist/usecases/script/do.js.map +1 -1
  87. package/dist/usecases/script/episodes.js.map +1 -1
  88. package/dist/usecases/script/export.js.map +1 -1
  89. package/dist/usecases/script/insert.js.map +1 -1
  90. package/dist/usecases/script/issues.js.map +1 -1
  91. package/dist/usecases/script/lib.js.map +1 -1
  92. package/dist/usecases/script/locations.js.map +1 -1
  93. package/dist/usecases/script/merge.js.map +1 -1
  94. package/dist/usecases/script/move.js.map +1 -1
  95. package/dist/usecases/script/overlap.js.map +1 -1
  96. package/dist/usecases/script/props.js.map +1 -1
  97. package/dist/usecases/script/refs.js.map +1 -1
  98. package/dist/usecases/script/rename.js.map +1 -1
  99. package/dist/usecases/script/replace.js.map +1 -1
  100. package/dist/usecases/script/role.js.map +1 -1
  101. package/dist/usecases/script/scenes.js.map +1 -1
  102. package/dist/usecases/script/script-patch.js.map +1 -1
  103. package/dist/usecases/script/script-validate.js.map +1 -1
  104. package/dist/usecases/script/session.d.ts +1 -0
  105. package/dist/usecases/script/session.js +15 -4
  106. package/dist/usecases/script/session.js.map +1 -1
  107. package/dist/usecases/script/speakers.js.map +1 -1
  108. package/dist/usecases/script/split.js.map +1 -1
  109. package/dist/usecases/script/state-add.js.map +1 -1
  110. package/dist/usecases/script/state-change.js.map +1 -1
  111. package/dist/usecases/script/state-delete.js.map +1 -1
  112. package/dist/usecases/script/state-rename.js.map +1 -1
  113. package/dist/usecases/script/summary.js.map +1 -1
  114. package/dist/usecases/script/transition.js.map +1 -1
  115. package/dist/usecases/script/type.js.map +1 -1
  116. package/dist/usecases/script/worldview.js.map +1 -1
  117. package/package.json +2 -1
@@ -24,6 +24,24 @@ export interface ReplaceScriptOptions {
24
24
  script: Record<string, unknown>;
25
25
  source?: string;
26
26
  }
27
+ /**
28
+ * Incremental edit: publish the RFC6902 diff between the loaded script and the
29
+ * locally-edited script, instead of re-uploading the whole document. `old` is
30
+ * the script as loaded (the edit baseline), `edited` is the post-mutation
31
+ * script. Implementations compute `compare(old, edited)` and send the patch.
32
+ *
33
+ * V1 backends have no incremental endpoint, so their implementation degrades to
34
+ * a whole-document `replaceScript(edited)` — callers get the same observable
35
+ * result (a new revision) regardless of which store is wired, so editing
36
+ * usecases can always call `patchScript` without branching on the backend.
37
+ */
38
+ export interface PatchScriptOptions {
39
+ requestId: string;
40
+ baseRevision: number;
41
+ old: Record<string, unknown>;
42
+ edited: Record<string, unknown>;
43
+ source?: string;
44
+ }
27
45
  export interface SaveValidationOptions {
28
46
  revision: number;
29
47
  validationStatus: string;
@@ -49,6 +67,12 @@ export interface ScriptOutputStore {
49
67
  getScript(): Promise<Record<string, unknown> | null>;
50
68
  getRevision(): Promise<Record<string, unknown> | null>;
51
69
  replaceScript(opts: ReplaceScriptOptions): Promise<Record<string, unknown>>;
70
+ /**
71
+ * Apply an incremental edit. V2 stores send an RFC6902 PATCH; V1 stores fall
72
+ * back to a whole-document replace. Both return the same revision envelope as
73
+ * `replaceScript`, so editing usecases never branch on the backend version.
74
+ */
75
+ patchScript(opts: PatchScriptOptions): Promise<Record<string, unknown>>;
52
76
  saveValidationResult(opts: SaveValidationOptions): Promise<Record<string, unknown> | null>;
53
77
  }
54
78
  export type OutputMode = "local" | "remote";
@@ -1 +1 @@
1
- {"version":3,"file":"script-output-store.js","sourceRoot":"","sources":["../../src/infra/script-output-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"script-output-store.js","sourceRoot":"","sources":["../../src/infra/script-output-store.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,23 @@
1
1
  import { type Report } from "../common.js";
2
+ import { type StageContext } from "../domain/direct/stage.js";
2
3
  type Dict = Record<string, unknown>;
3
4
  export declare function updateRunState(workspace: string, updates: Dict): Dict;
4
5
  export declare function readRunState(workspace: string): Dict;
5
6
  export declare function mergeBatchResultsForEpisode(episode: Dict, batchResults: Dict[]): Dict;
6
7
  export declare function commandInit(opts: Dict): Promise<[Report, number]>;
8
+ export declare function commandRun(opts: Dict): Promise<[Report, number]>;
9
+ export declare function stageSourcePrepare(ctx: StageContext): Promise<void>;
10
+ export declare function stageEpisodePlan(ctx: StageContext): Promise<void>;
11
+ export declare function stageEpisodeTitles(ctx: StageContext): Promise<void>;
12
+ export declare function stageBatchPlan(ctx: StageContext): Promise<void>;
13
+ export declare function stageBatchExtract(ctx: StageContext): Promise<void>;
14
+ export declare function stageEpisodeMerge(ctx: StageContext): Promise<void>;
15
+ export declare function stageEpisodeSynopsis(ctx: StageContext): Promise<void>;
16
+ export declare function stageScriptMerge(ctx: StageContext): Promise<void>;
17
+ export declare function stageAssetCuration(ctx: StageContext): Promise<void>;
18
+ export declare function stageMetadata(ctx: StageContext): Promise<void>;
19
+ export declare function stageScriptSynopsis(ctx: StageContext): Promise<void>;
20
+ export declare function stageValidate(ctx: StageContext): Promise<void>;
7
21
  export declare function commandStatus(opts: Dict): [Report, number];
8
22
  export declare function summarizeIssues(issues: Dict[]): string[];
9
23
  export declare function commandValidate(opts: Dict): [Report, number];