@lingjingai/scriptctl 0.20.0 → 0.22.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 (208) hide show
  1. package/dist/cli.js +105 -11
  2. package/dist/cli.js.map +1 -1
  3. package/dist/common.d.ts +1 -0
  4. package/dist/common.js.map +1 -1
  5. package/dist/domain/script/address.d.ts +30 -0
  6. package/dist/domain/script/address.js +141 -0
  7. package/dist/domain/script/address.js.map +1 -0
  8. package/dist/domain/script/lookups.d.ts +33 -0
  9. package/dist/domain/script/lookups.js +309 -0
  10. package/dist/domain/script/lookups.js.map +1 -0
  11. package/dist/domain/script/patch/apply.d.ts +4 -0
  12. package/dist/domain/script/patch/apply.js +38 -0
  13. package/dist/domain/script/patch/apply.js.map +1 -0
  14. package/dist/domain/script/patch/helpers.d.ts +11 -0
  15. package/dist/domain/script/patch/helpers.js +141 -0
  16. package/dist/domain/script/patch/helpers.js.map +1 -0
  17. package/dist/domain/script/patch/ops-action.d.ts +12 -0
  18. package/dist/domain/script/patch/ops-action.js +371 -0
  19. package/dist/domain/script/patch/ops-action.js.map +1 -0
  20. package/dist/domain/script/patch/ops-asset.d.ts +13 -0
  21. package/dist/domain/script/patch/ops-asset.js +363 -0
  22. package/dist/domain/script/patch/ops-asset.js.map +1 -0
  23. package/dist/domain/script/patch/ops-dialogue.d.ts +5 -0
  24. package/dist/domain/script/patch/ops-dialogue.js +233 -0
  25. package/dist/domain/script/patch/ops-dialogue.js.map +1 -0
  26. package/dist/domain/script/patch/ops-meta.d.ts +3 -0
  27. package/dist/domain/script/patch/ops-meta.js +47 -0
  28. package/dist/domain/script/patch/ops-meta.js.map +1 -0
  29. package/dist/domain/script/patch/ops-scene.d.ts +6 -0
  30. package/dist/domain/script/patch/ops-scene.js +345 -0
  31. package/dist/domain/script/patch/ops-scene.js.map +1 -0
  32. package/dist/domain/script/patch/ops-state.d.ts +8 -0
  33. package/dist/domain/script/patch/ops-state.js +146 -0
  34. package/dist/domain/script/patch/ops-state.js.map +1 -0
  35. package/dist/domain/script/patch/registry.d.ts +2 -0
  36. package/dist/domain/script/patch/registry.js +50 -0
  37. package/dist/domain/script/patch/registry.js.map +1 -0
  38. package/dist/domain/script/patch/types.d.ts +10 -0
  39. package/dist/domain/script/patch/types.js +2 -0
  40. package/dist/domain/script/patch/types.js.map +1 -0
  41. package/dist/domain/script/refs.d.ts +4 -0
  42. package/dist/domain/script/refs.js +152 -0
  43. package/dist/domain/script/refs.js.map +1 -0
  44. package/dist/domain/script/schema.d.ts +6 -0
  45. package/dist/domain/script/schema.js +53 -0
  46. package/dist/domain/script/schema.js.map +1 -0
  47. package/dist/domain/script/selector.d.ts +45 -0
  48. package/dist/domain/script/selector.js +187 -0
  49. package/dist/domain/script/selector.js.map +1 -0
  50. package/dist/domain/script/shared.d.ts +15 -0
  51. package/dist/domain/script/shared.js +37 -0
  52. package/dist/domain/script/shared.js.map +1 -0
  53. package/dist/domain/script/validate.d.ts +22 -0
  54. package/dist/domain/script/validate.js +844 -0
  55. package/dist/domain/script/validate.js.map +1 -0
  56. package/dist/help-text.js +33 -8
  57. package/dist/help-text.js.map +1 -1
  58. package/dist/infra/script-output-store.d.ts +46 -10
  59. package/dist/infra/script-output-store.js +83 -11
  60. package/dist/infra/script-output-store.js.map +1 -1
  61. package/dist/output.d.ts +1 -1
  62. package/dist/output.js +11 -1
  63. package/dist/output.js.map +1 -1
  64. package/dist/usecases/direct.js +1 -1
  65. package/dist/usecases/direct.js.map +1 -1
  66. package/dist/usecases/doctor.js +32 -22
  67. package/dist/usecases/doctor.js.map +1 -1
  68. package/dist/usecases/parse.js +10 -3
  69. package/dist/usecases/parse.js.map +1 -1
  70. package/dist/usecases/script/actions.d.ts +3 -0
  71. package/dist/usecases/script/actions.js +71 -0
  72. package/dist/usecases/script/actions.js.map +1 -0
  73. package/dist/usecases/script/actor.d.ts +3 -0
  74. package/dist/usecases/script/actor.js +27 -0
  75. package/dist/usecases/script/actor.js.map +1 -0
  76. package/dist/usecases/script/actors.d.ts +3 -0
  77. package/dist/usecases/script/actors.js +15 -0
  78. package/dist/usecases/script/actors.js.map +1 -0
  79. package/dist/usecases/script/add-actor.d.ts +3 -0
  80. package/dist/usecases/script/add-actor.js +13 -0
  81. package/dist/usecases/script/add-actor.js.map +1 -0
  82. package/dist/usecases/script/add-episode.d.ts +3 -0
  83. package/dist/usecases/script/add-episode.js +9 -0
  84. package/dist/usecases/script/add-episode.js.map +1 -0
  85. package/dist/usecases/script/add-location.d.ts +3 -0
  86. package/dist/usecases/script/add-location.js +11 -0
  87. package/dist/usecases/script/add-location.js.map +1 -0
  88. package/dist/usecases/script/add-prop.d.ts +3 -0
  89. package/dist/usecases/script/add-prop.js +11 -0
  90. package/dist/usecases/script/add-prop.js.map +1 -0
  91. package/dist/usecases/script/add-speaker.d.ts +3 -0
  92. package/dist/usecases/script/add-speaker.js +22 -0
  93. package/dist/usecases/script/add-speaker.js.map +1 -0
  94. package/dist/usecases/script/alias.d.ts +3 -0
  95. package/dist/usecases/script/alias.js +40 -0
  96. package/dist/usecases/script/alias.js.map +1 -0
  97. package/dist/usecases/script/assets.d.ts +3 -0
  98. package/dist/usecases/script/assets.js +21 -0
  99. package/dist/usecases/script/assets.js.map +1 -0
  100. package/dist/usecases/script/context.d.ts +3 -0
  101. package/dist/usecases/script/context.js +20 -0
  102. package/dist/usecases/script/context.js.map +1 -0
  103. package/dist/usecases/script/create.d.ts +3 -0
  104. package/dist/usecases/script/create.js +67 -0
  105. package/dist/usecases/script/create.js.map +1 -0
  106. package/dist/usecases/script/delete.d.ts +3 -0
  107. package/dist/usecases/script/delete.js +79 -0
  108. package/dist/usecases/script/delete.js.map +1 -0
  109. package/dist/usecases/script/describe.d.ts +3 -0
  110. package/dist/usecases/script/describe.js +31 -0
  111. package/dist/usecases/script/describe.js.map +1 -0
  112. package/dist/usecases/script/dialogue.d.ts +3 -0
  113. package/dist/usecases/script/dialogue.js +28 -0
  114. package/dist/usecases/script/dialogue.js.map +1 -0
  115. package/dist/usecases/script/do.d.ts +3 -0
  116. package/dist/usecases/script/do.js +130 -0
  117. package/dist/usecases/script/do.js.map +1 -0
  118. package/dist/usecases/script/episodes.d.ts +3 -0
  119. package/dist/usecases/script/episodes.js +36 -0
  120. package/dist/usecases/script/episodes.js.map +1 -0
  121. package/dist/usecases/script/export.d.ts +3 -0
  122. package/dist/usecases/script/export.js +117 -0
  123. package/dist/usecases/script/export.js.map +1 -0
  124. package/dist/usecases/script/insert.d.ts +3 -0
  125. package/dist/usecases/script/insert.js +87 -0
  126. package/dist/usecases/script/insert.js.map +1 -0
  127. package/dist/usecases/script/issues.d.ts +3 -0
  128. package/dist/usecases/script/issues.js +27 -0
  129. package/dist/usecases/script/issues.js.map +1 -0
  130. package/dist/usecases/script/lib.d.ts +77 -0
  131. package/dist/usecases/script/lib.js +849 -0
  132. package/dist/usecases/script/lib.js.map +1 -0
  133. package/dist/usecases/script/locations.d.ts +3 -0
  134. package/dist/usecases/script/locations.js +15 -0
  135. package/dist/usecases/script/locations.js.map +1 -0
  136. package/dist/usecases/script/merge.d.ts +3 -0
  137. package/dist/usecases/script/merge.js +43 -0
  138. package/dist/usecases/script/merge.js.map +1 -0
  139. package/dist/usecases/script/move.d.ts +3 -0
  140. package/dist/usecases/script/move.js +33 -0
  141. package/dist/usecases/script/move.js.map +1 -0
  142. package/dist/usecases/script/overlap.d.ts +3 -0
  143. package/dist/usecases/script/overlap.js +21 -0
  144. package/dist/usecases/script/overlap.js.map +1 -0
  145. package/dist/usecases/script/props.d.ts +3 -0
  146. package/dist/usecases/script/props.js +15 -0
  147. package/dist/usecases/script/props.js.map +1 -0
  148. package/dist/usecases/script/refs.d.ts +3 -0
  149. package/dist/usecases/script/refs.js +61 -0
  150. package/dist/usecases/script/refs.js.map +1 -0
  151. package/dist/usecases/script/rename.d.ts +3 -0
  152. package/dist/usecases/script/rename.js +17 -0
  153. package/dist/usecases/script/rename.js.map +1 -0
  154. package/dist/usecases/script/replace.d.ts +3 -0
  155. package/dist/usecases/script/replace.js +35 -0
  156. package/dist/usecases/script/replace.js.map +1 -0
  157. package/dist/usecases/script/role.d.ts +3 -0
  158. package/dist/usecases/script/role.js +17 -0
  159. package/dist/usecases/script/role.js.map +1 -0
  160. package/dist/usecases/script/scenes.d.ts +3 -0
  161. package/dist/usecases/script/scenes.js +45 -0
  162. package/dist/usecases/script/scenes.js.map +1 -0
  163. package/dist/usecases/script/script-patch.d.ts +3 -0
  164. package/dist/usecases/script/script-patch.js +187 -0
  165. package/dist/usecases/script/script-patch.js.map +1 -0
  166. package/dist/usecases/script/script-validate.d.ts +3 -0
  167. package/dist/usecases/script/script-validate.js +30 -0
  168. package/dist/usecases/script/script-validate.js.map +1 -0
  169. package/dist/usecases/script/session.d.ts +56 -0
  170. package/dist/usecases/script/session.js +568 -0
  171. package/dist/usecases/script/session.js.map +1 -0
  172. package/dist/usecases/script/speakers.d.ts +3 -0
  173. package/dist/usecases/script/speakers.js +28 -0
  174. package/dist/usecases/script/speakers.js.map +1 -0
  175. package/dist/usecases/script/split.d.ts +3 -0
  176. package/dist/usecases/script/split.js +37 -0
  177. package/dist/usecases/script/split.js.map +1 -0
  178. package/dist/usecases/script/state-add.d.ts +3 -0
  179. package/dist/usecases/script/state-add.js +23 -0
  180. package/dist/usecases/script/state-add.js.map +1 -0
  181. package/dist/usecases/script/state-change.d.ts +3 -0
  182. package/dist/usecases/script/state-change.js +24 -0
  183. package/dist/usecases/script/state-change.js.map +1 -0
  184. package/dist/usecases/script/state-delete.d.ts +3 -0
  185. package/dist/usecases/script/state-delete.js +23 -0
  186. package/dist/usecases/script/state-delete.js.map +1 -0
  187. package/dist/usecases/script/state-rename.d.ts +3 -0
  188. package/dist/usecases/script/state-rename.js +17 -0
  189. package/dist/usecases/script/state-rename.js.map +1 -0
  190. package/dist/usecases/script/summary.d.ts +3 -0
  191. package/dist/usecases/script/summary.js +45 -0
  192. package/dist/usecases/script/summary.js.map +1 -0
  193. package/dist/usecases/script/transition.d.ts +3 -0
  194. package/dist/usecases/script/transition.js +24 -0
  195. package/dist/usecases/script/transition.js.map +1 -0
  196. package/dist/usecases/script/type.d.ts +3 -0
  197. package/dist/usecases/script/type.js +24 -0
  198. package/dist/usecases/script/type.js.map +1 -0
  199. package/dist/usecases/script/worldview.d.ts +3 -0
  200. package/dist/usecases/script/worldview.js +18 -0
  201. package/dist/usecases/script/worldview.js.map +1 -0
  202. package/package.json +1 -1
  203. package/dist/domain/script-core.d.ts +0 -78
  204. package/dist/domain/script-core.js +0 -3026
  205. package/dist/domain/script-core.js.map +0 -1
  206. package/dist/usecases/script.d.ts +0 -67
  207. package/dist/usecases/script.js +0 -2348
  208. package/dist/usecases/script.js.map +0 -1
@@ -0,0 +1,371 @@
1
+ import { ACTION_TYPE_VALUES, EFFECTIVE_FROM_VALUES, } from "../../../common.js";
2
+ import { asList, isDict, opErr, strOf } from "../shared.js";
3
+ import { ensureRefId, findAction, findScene, } from "../lookups.js";
4
+ import { parseActionRef, parseAssetTarget, parseSceneRef, } from "../address.js";
5
+ import { isDangerousRegex, MAX_GREP_PATTERN_LEN } from "../selector.js";
6
+ import { ensureSpeakerId, inferStateBeforeAction, validateStateForTarget, } from "./helpers.js";
7
+ export function op_action_state_change(__ctx) {
8
+ const { script, op, sourceText, applied, kind } = __ctx;
9
+ const [epId, sceneId, actionIndex] = parseActionRef(op["at"]);
10
+ const [targetKind, targetId] = parseAssetTarget(op["target"]);
11
+ ensureRefId(script, targetKind, targetId);
12
+ const toState = validateStateForTarget(script, targetKind, targetId, strOf(op["to"] || op["to_state_id"]).trim());
13
+ if (!toState) {
14
+ throw opErr("SCRIPT OP BLOCKED: Target state missing", "Target state missing.", { required: ["to state_id"], received: [JSON.stringify(op)], nextSteps: ["Pass --to with an existing state_id."], op: kind, errorCode: "TO_STATE_MISSING" });
15
+ }
16
+ const fromStateExplicit = strOf(op["from"] || op["from_state_id"]).trim();
17
+ const fromState = fromStateExplicit || inferStateBeforeAction(script, epId, sceneId, actionIndex, targetKind, targetId);
18
+ if (!fromState) {
19
+ throw opErr("SCRIPT OP BLOCKED: From state ambiguous", "Unable to infer current state before this action.", { required: ["scene initial state or --from"], received: [`${op["at"]} ${op["target"]}`], nextSteps: ["Set scene context first, or pass --from explicitly.", "先设置场景初始状态,或修复前序状态变化。"], op: kind, errorCode: "FROM_STATE_AMBIGUOUS" });
20
+ }
21
+ validateStateForTarget(script, targetKind, targetId, fromState);
22
+ const effective = strOf(op["effective"] || op["effective_from"] || "after").trim();
23
+ const effectiveFrom = effective === "after" ? "after_action" : effective === "before" ? "before_action" : effective;
24
+ if (!EFFECTIVE_FROM_VALUES.has(effectiveFrom)) {
25
+ throw opErr("SCRIPT OP BLOCKED: Effective invalid", "Effective invalid.", { required: ["effective: after or before"], received: [effective], nextSteps: ["Use after or before."], op: kind, errorCode: "EFFECTIVE_INVALID" });
26
+ }
27
+ const action = findAction(script, epId, sceneId, actionIndex);
28
+ const changes = asList(action["state_changes"]).filter((c) => !(strOf(c["target_kind"]) === targetKind && strOf(c["target_id"]) === targetId));
29
+ changes.push({
30
+ target_kind: targetKind,
31
+ target_id: targetId,
32
+ from_state_id: fromState,
33
+ to_state_id: toState,
34
+ effective_from: effectiveFrom,
35
+ });
36
+ action["state_changes"] = changes;
37
+ applied.push(kind);
38
+ }
39
+ export function op_action_state_remove(__ctx) {
40
+ const { script, op, sourceText, applied, kind } = __ctx;
41
+ const [epId, sceneId, actionIndex] = parseActionRef(op["at"]);
42
+ const [targetKind, targetId] = parseAssetTarget(op["target"]);
43
+ const action = findAction(script, epId, sceneId, actionIndex);
44
+ const changes = asList(action["state_changes"]).filter((c) => !(strOf(c["target_kind"]) === targetKind && strOf(c["target_id"]) === targetId));
45
+ if (changes.length > 0)
46
+ action["state_changes"] = changes;
47
+ else
48
+ delete action["state_changes"];
49
+ applied.push(kind);
50
+ }
51
+ export function op_action_transition_set(__ctx) {
52
+ const { script, op, sourceText, applied, kind } = __ctx;
53
+ const [epId, sceneId, actionIndex] = parseActionRef(op["at"]);
54
+ const [targetKind, targetId] = parseAssetTarget(op["target"]);
55
+ ensureRefId(script, targetKind, targetId);
56
+ const process = strOf(op["process"]).trim();
57
+ const contrast = strOf(op["contrast"]).trim();
58
+ if (!process || !contrast) {
59
+ throw opErr("SCRIPT OP BLOCKED: Transition prompt incomplete", "Transition prompt incomplete.", { required: ["process and contrast"], received: [JSON.stringify(op)], nextSteps: ["Provide both process and contrast."], op: kind, errorCode: "TRANSITION_PROMPT_INCOMPLETE" });
60
+ }
61
+ const action = findAction(script, epId, sceneId, actionIndex);
62
+ action["transition_prompt"] = { target_kind: targetKind, target_id: targetId, process, contrast };
63
+ applied.push(kind);
64
+ }
65
+ export function op_action_transition_clear(__ctx) {
66
+ const { script, op, sourceText, applied, kind } = __ctx;
67
+ const [epId, sceneId, actionIndex] = parseActionRef(op["at"]);
68
+ const [targetKind, targetId] = parseAssetTarget(op["target"]);
69
+ const action = findAction(script, epId, sceneId, actionIndex);
70
+ const transition = action["transition_prompt"];
71
+ if (isDict(transition) && strOf(transition["target_kind"]) === targetKind && strOf(transition["target_id"]) === targetId) {
72
+ delete action["transition_prompt"];
73
+ }
74
+ applied.push(kind);
75
+ }
76
+ export function op_action_content_replace(__ctx) {
77
+ const { script, op, sourceText, applied, kind } = __ctx;
78
+ // Literal substring replace on action.content. Designed for "find this
79
+ // phrase and edit it" — the script-stage equivalent of
80
+ // set_action_content_from_span, but without needing source.txt (the DB-
81
+ // backed script doesn't ship source). Refuses ambiguous matches by
82
+ // default so an off-by-one edit can't silently rewrite the wrong copy.
83
+ const [epId, sceneId, actionIndex] = parseActionRef(op["at"]);
84
+ const from = strOf(op["from"]);
85
+ const to = strOf(op["to"]);
86
+ const all = Boolean(op["all"]);
87
+ if (!from) {
88
+ throw opErr("SCRIPT OP BLOCKED: From text empty", "From text empty.", {
89
+ required: ["from: non-empty string"],
90
+ received: [JSON.stringify(op)],
91
+ nextSteps: ["Pass --from with the literal substring to replace."],
92
+ op: kind,
93
+ errorCode: "FROM_TEXT_EMPTY",
94
+ });
95
+ }
96
+ const action = findAction(script, epId, sceneId, actionIndex);
97
+ if (strOf(action["type"]) === "dialogue" && strOf(action["delivery"]) === "overlap") {
98
+ throw opErr("SCRIPT OP BLOCKED: Overlap dialogue not supported", "action.content.replace cannot edit overlap dialogue lines.", {
99
+ required: ["non-overlap action"],
100
+ received: [`${op["at"]} delivery=overlap`],
101
+ nextSteps: ["Use `script dialogue overlap` to rewrite the lines."],
102
+ op: kind,
103
+ errorCode: "OVERLAP_DIALOGUE_UNSUPPORTED",
104
+ });
105
+ }
106
+ const current = strOf(action["content"]);
107
+ let count = 0;
108
+ let cursor = 0;
109
+ while (true) {
110
+ const i = current.indexOf(from, cursor);
111
+ if (i < 0)
112
+ break;
113
+ count += 1;
114
+ cursor = i + from.length;
115
+ }
116
+ if (count === 0) {
117
+ throw opErr("SCRIPT OP BLOCKED: From text not found", "From text not found in action content.", {
118
+ required: ["from substring present in action.content"],
119
+ received: [`${op["at"]} from=${JSON.stringify(from)}`],
120
+ nextSteps: ["Inspect the action with `scriptctl actions --in <addr> --grep` and adjust --from."],
121
+ op: kind,
122
+ errorCode: "FROM_TEXT_NOT_FOUND",
123
+ });
124
+ }
125
+ if (count > 1 && !all) {
126
+ throw opErr("SCRIPT OP BLOCKED: From text ambiguous", `From text matches ${count} times in this action.`, {
127
+ required: ["unique substring, or pass all=true to replace every occurrence"],
128
+ received: [`${op["at"]} matches=${count}`],
129
+ nextSteps: ["Use a longer/more specific --from, or pass --all."],
130
+ op: kind,
131
+ errorCode: "FROM_TEXT_AMBIGUOUS",
132
+ });
133
+ }
134
+ if (all) {
135
+ action["content"] = current.split(from).join(to);
136
+ }
137
+ else {
138
+ const i = current.indexOf(from);
139
+ action["content"] = current.slice(0, i) + to + current.slice(i + from.length);
140
+ }
141
+ applied.push(kind);
142
+ }
143
+ export function op_action_content_regex_replace(__ctx) {
144
+ const { script, op, sourceText, applied, kind } = __ctx;
145
+ // Regex counterpart of content.replace — needed for patterns the literal
146
+ // path can't express (e.g. clearing a leading `[tag]` whose text varies).
147
+ // pattern uses the /re/flags convention (same as --grep). ReDoS-guarded.
148
+ const [epId, sceneId, actionIndex] = parseActionRef(op["at"]);
149
+ const rawPattern = strOf(op["pattern"]);
150
+ const to = strOf(op["to"]);
151
+ const all = Boolean(op["all"]);
152
+ const m = /^\/(.+)\/([gimsuy]*)$/.exec(rawPattern);
153
+ if (!m) {
154
+ throw opErr("SCRIPT OP BLOCKED: Pattern invalid", "Pattern must use the /regex/flags form.", {
155
+ required: ["pattern: /regex/flags (e.g. /^\\s*\\[[^\\]]*\\]\\s*/)"],
156
+ received: [rawPattern || "<empty>"],
157
+ nextSteps: ["Wrap the regex in slashes, optionally with i/m/s/u/y flags."],
158
+ op: kind,
159
+ errorCode: "REGEX_PATTERN_INVALID",
160
+ });
161
+ }
162
+ const body = m[1];
163
+ if (isDangerousRegex(body)) {
164
+ throw opErr("SCRIPT OP BLOCKED: regex unsafe", "regex pattern has nested quantifiers (ReDoS risk) or exceeds the length limit.", {
165
+ required: [`pattern length <= ${MAX_GREP_PATTERN_LEN}; no quantifier-on-group-with-internal-quantifier (e.g. (a+)+)`],
166
+ received: [`length=${body.length}, sample=${body.slice(0, 80)}`],
167
+ nextSteps: ["Rewrite the regex to avoid nested quantifiers."],
168
+ op: kind,
169
+ errorCode: "REGEX_UNSAFE",
170
+ });
171
+ }
172
+ const action = findAction(script, epId, sceneId, actionIndex);
173
+ if (strOf(action["type"]) === "dialogue" && strOf(action["delivery"]) === "overlap") {
174
+ throw opErr("SCRIPT OP BLOCKED: Overlap dialogue not supported", "action.content.regex-replace cannot edit overlap dialogue lines.", {
175
+ required: ["non-overlap action"],
176
+ received: [`${op["at"]} delivery=overlap`],
177
+ nextSteps: ["Use `script dialogue overlap` to rewrite the lines."],
178
+ op: kind,
179
+ errorCode: "OVERLAP_DIALOGUE_UNSUPPORTED",
180
+ });
181
+ }
182
+ const flags = m[2];
183
+ let countRe;
184
+ let replaceRe;
185
+ try {
186
+ countRe = new RegExp(body, flags.includes("g") ? flags : flags + "g");
187
+ replaceRe = new RegExp(body, all && !flags.includes("g") ? flags + "g" : flags);
188
+ }
189
+ catch {
190
+ throw opErr("SCRIPT OP BLOCKED: Pattern invalid", "Regex failed to compile.", {
191
+ required: ["a valid JavaScript regex"],
192
+ received: [rawPattern],
193
+ nextSteps: ["Fix the regex syntax."],
194
+ op: kind,
195
+ errorCode: "REGEX_PATTERN_INVALID",
196
+ });
197
+ }
198
+ const current = strOf(action["content"]);
199
+ const matchCount = (current.match(countRe) ?? []).length;
200
+ if (matchCount === 0) {
201
+ throw opErr("SCRIPT OP BLOCKED: Pattern not found", "Pattern did not match action content.", {
202
+ required: ["pattern matches action.content at least once"],
203
+ received: [`${op["at"]} pattern=${rawPattern}`],
204
+ nextSteps: ["Inspect the action with `scriptctl actions --in <addr> --grep` and adjust the pattern."],
205
+ op: kind,
206
+ errorCode: "REGEX_NO_MATCH",
207
+ });
208
+ }
209
+ if (matchCount > 1 && !all) {
210
+ throw opErr("SCRIPT OP BLOCKED: Pattern ambiguous", `Pattern matches ${matchCount} times in this action.`, {
211
+ required: ["a unique match, or pass all=true to replace every occurrence"],
212
+ received: [`${op["at"]} matches=${matchCount}`],
213
+ nextSteps: ["Tighten the pattern, or pass --all."],
214
+ op: kind,
215
+ errorCode: "REGEX_MULTIPLE_MATCH",
216
+ });
217
+ }
218
+ action["content"] = current.replace(replaceRe, to);
219
+ applied.push(kind);
220
+ }
221
+ export function op_action_type_set(__ctx) {
222
+ const { script, op, sourceText, applied, kind } = __ctx;
223
+ const [epId, sceneId, actionIndex] = parseActionRef(op["at"]);
224
+ const actionType = strOf(op["type"] ?? op["action_type"]).trim();
225
+ if (!ACTION_TYPE_VALUES.has(actionType)) {
226
+ throw opErr("SCRIPT OP BLOCKED: Action type invalid", "Action type invalid.", {
227
+ required: ["type: dialogue, inner_thought, or action"],
228
+ received: [actionType || "<empty>"],
229
+ nextSteps: ["Use a supported action type."],
230
+ op: kind,
231
+ errorCode: "ACTION_TYPE_INVALID",
232
+ });
233
+ }
234
+ const action = findAction(script, epId, sceneId, actionIndex);
235
+ action["type"] = actionType;
236
+ applied.push(kind);
237
+ }
238
+ export function op_action_actor_set(__ctx) {
239
+ const { script, op, sourceText, applied, kind } = __ctx;
240
+ const [epId, sceneId, actionIndex] = parseActionRef(op["at"]);
241
+ const rawActor = op["actor_id"] ?? op["actor"];
242
+ const isNone = rawActor === null || strOf(rawActor).trim() === "" || strOf(rawActor).trim() === "none";
243
+ const actorId = isNone ? null : ensureRefId(script, "actor", rawActor);
244
+ const action = findAction(script, epId, sceneId, actionIndex);
245
+ if (actorId === null)
246
+ delete action["actor_id"];
247
+ else
248
+ action["actor_id"] = actorId;
249
+ applied.push(kind);
250
+ }
251
+ export function op_action_delete(__ctx) {
252
+ const { script, op, sourceText, applied, kind } = __ctx;
253
+ const [epId, sceneId, actionIndex] = parseActionRef(op["at"]);
254
+ const scene = findScene(script, epId, sceneId);
255
+ const actions = asList(scene["actions"]);
256
+ if (actionIndex < 0 || actionIndex >= actions.length) {
257
+ throw opErr("SCRIPT OP BLOCKED: Action index out of range", "Action index out of range.", {
258
+ required: [`0 <= action_index < ${actions.length}`],
259
+ received: [String(actionIndex)],
260
+ nextSteps: ["Inspect actions in the scene and use a valid index."],
261
+ op: kind,
262
+ errorCode: "ACTION_INDEX_OUT_OF_RANGE",
263
+ });
264
+ }
265
+ actions.splice(actionIndex, 1);
266
+ scene["actions"] = actions;
267
+ applied.push(kind);
268
+ }
269
+ export function op_action_insert(__ctx) {
270
+ const { script, op, sourceText, applied, kind } = __ctx;
271
+ // <at> is a scene ref (ep_xxx/scn_xxx). Position resolved from
272
+ // --at <idx> | --before <action-ref> | --after <action-ref> | default-append.
273
+ const [epId, sceneId] = parseSceneRef(op["at"]);
274
+ const scene = findScene(script, epId, sceneId);
275
+ const actions = asList(scene["actions"]);
276
+ const actionType = strOf(op["type"]).trim();
277
+ if (!ACTION_TYPE_VALUES.has(actionType)) {
278
+ throw opErr("SCRIPT OP BLOCKED: Action type invalid", "Action type invalid.", {
279
+ required: ["type: dialogue, inner_thought, or action"],
280
+ received: [actionType || "<empty>"],
281
+ nextSteps: ["Use a supported action type."],
282
+ op: kind,
283
+ errorCode: "ACTION_TYPE_INVALID",
284
+ });
285
+ }
286
+ const content = strOf(op["content"]);
287
+ let insertIndex;
288
+ if (op["before"]) {
289
+ const [bEp, bScn, bIdx] = parseActionRef(op["before"]);
290
+ if (bEp !== epId || bScn !== sceneId) {
291
+ throw opErr("SCRIPT OP BLOCKED: before address mismatch", "--before must point at the same scene.", {
292
+ required: [`${epId}/${sceneId}#<idx>`],
293
+ received: [strOf(op["before"])],
294
+ nextSteps: ["Use a sibling action address."],
295
+ op: kind,
296
+ errorCode: "INSERT_REF_MISMATCH",
297
+ });
298
+ }
299
+ insertIndex = bIdx;
300
+ }
301
+ else if (op["after"]) {
302
+ const [aEp, aScn, aIdx] = parseActionRef(op["after"]);
303
+ if (aEp !== epId || aScn !== sceneId) {
304
+ throw opErr("SCRIPT OP BLOCKED: after address mismatch", "--after must point at the same scene.", {
305
+ required: [`${epId}/${sceneId}#<idx>`],
306
+ received: [strOf(op["after"])],
307
+ nextSteps: ["Use a sibling action address."],
308
+ op: kind,
309
+ errorCode: "INSERT_REF_MISMATCH",
310
+ });
311
+ }
312
+ insertIndex = aIdx + 1;
313
+ }
314
+ else if (op["at_index"] !== undefined && op["at_index"] !== null) {
315
+ const n = Number(op["at_index"]);
316
+ if (!Number.isInteger(n) || n < 0 || n > actions.length) {
317
+ throw opErr("SCRIPT OP BLOCKED: at_index out of range", "at_index out of range.", {
318
+ required: [`0..${actions.length}`],
319
+ received: [String(op["at_index"])],
320
+ nextSteps: ["Use a valid integer index."],
321
+ op: kind,
322
+ errorCode: "AT_INDEX_OUT_OF_RANGE",
323
+ });
324
+ }
325
+ insertIndex = n;
326
+ }
327
+ else {
328
+ // Default: append at end.
329
+ insertIndex = actions.length;
330
+ }
331
+ const newAction = { type: actionType, content };
332
+ if (op["actor_id"])
333
+ newAction["actor_id"] = ensureRefId(script, "actor", op["actor_id"]);
334
+ if (op["speaker_id"])
335
+ newAction["speaker_id"] = ensureSpeakerId(script, strOf(op["speaker_id"]));
336
+ actions.splice(insertIndex, 0, newAction);
337
+ scene["actions"] = actions;
338
+ applied.push(kind);
339
+ }
340
+ export function op_action_move(__ctx) {
341
+ const { script, op, sourceText, applied, kind } = __ctx;
342
+ const [fromEp, fromScn, fromIdx] = parseActionRef(op["at"] ?? op["from"]);
343
+ const [toEp, toScn, toIdx] = parseActionRef(op["to"]);
344
+ const fromScene = findScene(script, fromEp, fromScn);
345
+ const fromActions = asList(fromScene["actions"]);
346
+ if (fromIdx < 0 || fromIdx >= fromActions.length) {
347
+ throw opErr("SCRIPT OP BLOCKED: Action index out of range", "Source action index out of range.", {
348
+ required: [`0 <= idx < ${fromActions.length}`],
349
+ received: [String(fromIdx)],
350
+ nextSteps: ["Inspect actions and use a valid index."],
351
+ op: kind,
352
+ errorCode: "ACTION_INDEX_OUT_OF_RANGE",
353
+ });
354
+ }
355
+ const [moved] = fromActions.splice(fromIdx, 1);
356
+ fromScene["actions"] = fromActions;
357
+ const toScene = (fromEp === toEp && fromScn === toScn) ? fromScene : findScene(script, toEp, toScn);
358
+ const toActions = asList(toScene["actions"]);
359
+ // After removing the source, when target is the same scene and idx is past
360
+ // the removed slot, the agent's intended index is already correct (no
361
+ // shift needed in the destination); otherwise clamp.
362
+ let dest = toIdx;
363
+ if (dest < 0)
364
+ dest = 0;
365
+ if (dest > toActions.length)
366
+ dest = toActions.length;
367
+ toActions.splice(dest, 0, moved);
368
+ toScene["actions"] = toActions;
369
+ applied.push(kind);
370
+ }
371
+ //# sourceMappingURL=ops-action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ops-action.js","sourceRoot":"","sources":["../../../../src/domain/script/patch/ops-action.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { OpCtx } from "./types.js";
2
+ export declare function op_actor_add(__ctx: OpCtx): void;
3
+ export declare function op_location_add(__ctx: OpCtx): void;
4
+ export declare function op_prop_add(__ctx: OpCtx): void;
5
+ export declare function op_asset_role_set(__ctx: OpCtx): void;
6
+ export declare function op_asset_rename(__ctx: OpCtx): void;
7
+ export declare function op_asset_describe(__ctx: OpCtx): void;
8
+ export declare function op_asset_alias_set(__ctx: OpCtx): void;
9
+ export declare function op_asset_alias_add(__ctx: OpCtx): void;
10
+ export declare function op_asset_alias_remove(__ctx: OpCtx): void;
11
+ export declare function op_asset_states_set(__ctx: OpCtx): void;
12
+ export declare function op_asset_merge(__ctx: OpCtx): void;
13
+ export declare function op_asset_delete(__ctx: OpCtx): void;