@basemachina/agentic-browser-cli 0.3.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.
@@ -0,0 +1,922 @@
1
+ #!/usr/bin/env node
2
+
3
+ // src/i18n/messages/en.ts
4
+ var messages = {
5
+ common: {
6
+ success: "Success",
7
+ failure: "Failed",
8
+ skipped: "Skipped",
9
+ aborted: "Aborted",
10
+ none: "(none)",
11
+ unknown: "(unknown)",
12
+ items: "items",
13
+ files: "files",
14
+ conditionSkipped: "condition skipped",
15
+ iterations: "iterations",
16
+ iteration: "iteration"
17
+ },
18
+ risk: {
19
+ low: "Low-side-effect operation",
20
+ medium: "Form submission, settings change, etc.",
21
+ high: "Irreversible operation (deletion, payment, etc.)"
22
+ },
23
+ reporter: {
24
+ instruction: "Instruction: {title}",
25
+ startUrl: "Start URL: {url}",
26
+ totalSteps: "Total steps: {count}",
27
+ statsLine: "Executed: {executed} Succeeded: {succeeded} Failed: {failed} Skipped: {skipped}",
28
+ statusAborted: "Status: Aborted",
29
+ totalDuration: "Total duration: {duration}",
30
+ memory: "Memory: {info}",
31
+ downloads: "Downloads: {count} files",
32
+ executionResult: "Execution Result",
33
+ batchResult: "Batch Execution Result",
34
+ batchTotalRows: "Total rows: {count}",
35
+ batchStats: "Succeeded: {succeeded} Failed: {failed}"
36
+ },
37
+ maintenance: {
38
+ debugResult: "Maintenance Result",
39
+ allStepsSuccess: "All steps passed ({count} steps, {duration})",
40
+ failedSteps: "--- Failed Steps ---",
41
+ yamlSuggestions: "--- Instruction (YAML) Fix Suggestions ---",
42
+ contextSuggestions: "--- Context (markdown) Fix Suggestions ---",
43
+ retryWarnings: "--- Retry Warnings ---",
44
+ retryCount: "#{ordinal} {description}: {count} retries (threshold: {threshold})"
45
+ },
46
+ confirmation: {
47
+ title: "Approval Required",
48
+ stepInfo: "Step {ordinal}: {description}",
49
+ riskLevelLabel: "Risk level: {level} ({hint})",
50
+ selectAction: "Select an action",
51
+ approve: "Approve and execute",
52
+ skip: "Skip this step",
53
+ abort: "Abort execution",
54
+ abortHint: "Stop all"
55
+ },
56
+ planner: {
57
+ extractingFromContext: "Extracting variable values from context...",
58
+ extractedFromContext: "{count} values extracted from context",
59
+ unresolvedRequired: "{count} required variables are unresolved. Please enter them.",
60
+ placeholder: "(required \u2014 could not extract from context)",
61
+ variableRequired: 'Variable "{name}" is required',
62
+ preVariables: "Pre-resolved variables:",
63
+ runtimeCaptures: "Runtime captures:",
64
+ controlFlow: "Control flow:",
65
+ conditionLabel: " Step {ordinal}: condition {condition}",
66
+ loopLabel: " Step {ordinal}: loop (max {max} iterations, {subSteps} sub-steps, condition: {condition})",
67
+ forEachLabel: " Step {ordinal}: forEach (max {max} items, {subSteps} sub-steps, source: {forEach})",
68
+ branchLabel: " Step {ordinal}: branch on {value} (cases: {cases})",
69
+ batchMode: "Batch mode: {count} rows ({path})",
70
+ stepCount: "Step count: {count}",
71
+ executionPlan: "Execution Plan",
72
+ confirmStart: "Start execution?",
73
+ fromSecrets: " (from secrets)",
74
+ fromContext: " (extracted from context)",
75
+ fromDataSource: " (from data source)"
76
+ },
77
+ errors: {
78
+ elementNotFound: "Check the selector ariaLabel / role / text and update to match the current page structure",
79
+ elementStale: "Page structure has changed. Delete the selector cache and re-run",
80
+ pageStructureChanged: "Page structure has significantly changed. Record the changes in context.md",
81
+ navigationTimeout: "Page navigation is delayed. Consider adding a wait step or increasing step-delay",
82
+ actionFailed: "Element was found but the action failed. Consider changing the action type (e.g., click \u2192 hover)",
83
+ unknownError: "Review the error details and check the corresponding instruction step"
84
+ },
85
+ slack: {
86
+ batchComplete: "Batch execution complete: {title}",
87
+ executionComplete: "Execution complete: {title}",
88
+ debugFailure: "Maintenance validation failed: {title}",
89
+ failedLabel: "Failed:",
90
+ failedRows: "Failed rows:",
91
+ suggestionsLabel: "Fix suggestions:",
92
+ retryWarningsLabel: "Retry warnings:",
93
+ abortTag: "Aborted",
94
+ batchTag: "batch",
95
+ totalRows: "Total {count} rows",
96
+ moreSteps: "- ...{count} more steps",
97
+ moreRows: "- ...{count} more rows",
98
+ moreItems: "- ...{count} more items",
99
+ approvalRequest: "Approval request: {description}",
100
+ approvalDescription: 'An approval request for an operation has arrived.\n{goalLine}Step: "{description}"\nRisk level: {riskEmoji} {riskLevel}',
101
+ taskLabel: "Task: ",
102
+ stepLabel: "Step: ",
103
+ riskLabel: "Risk level: ",
104
+ approveButton: "Approve",
105
+ skipButton: "Skip",
106
+ abortButton: "Abort",
107
+ approvalWaiting: "Waiting for approval (risk: {riskLevel})",
108
+ approvalTimeout: ":hourglass: Timed out (auto-abort)",
109
+ approved: ":white_check_mark: Approved",
110
+ slackSkipped: ":fast_forward: Skipped",
111
+ slackAborted: ":octagonal_sign: Aborted"
112
+ },
113
+ chat: {
114
+ approvalRequest: "Approval request: {description}",
115
+ approvalDescription: 'An approval request for an operation has arrived.\n{goalLine}Step: "{description}"\nRisk level: {riskEmoji} {riskLevel}',
116
+ taskLabel: "Task: ",
117
+ stepLabel: "Step: ",
118
+ riskLabel: "Risk level: ",
119
+ approveButton: "Approve",
120
+ skipButton: "Skip",
121
+ abortButton: "Abort",
122
+ approvalWaiting: "Waiting for approval (risk: {riskLevel})",
123
+ approvalTimeout: "\u231B Timed out (auto-abort)",
124
+ approved: "\u2705 Approved",
125
+ chatSkipped: "\u23E9 Skipped",
126
+ chatAborted: "\u{1F6D1} Aborted",
127
+ executionComplete: "Execution complete: {title}",
128
+ batchComplete: "Batch execution complete: {title}",
129
+ debugFailure: "Maintenance validation failed: {title}",
130
+ failedLabel: "Failed:",
131
+ failedRows: "Failed rows:",
132
+ suggestionsLabel: "Fix suggestions:",
133
+ retryWarningsLabel: "Retry warnings:",
134
+ abortTag: "Aborted",
135
+ batchTag: "batch",
136
+ totalRows: "Total {count} rows",
137
+ moreSteps: "- ...{count} more steps",
138
+ moreRows: "- ...{count} more rows",
139
+ moreItems: "- ...{count} more items"
140
+ },
141
+ review: {
142
+ keptSteps: "Kept steps:",
143
+ confirmationRequired: "Steps requiring confirmation:",
144
+ removedSteps: "Removed steps:",
145
+ capturedValues: "Captured values from page:",
146
+ notes: "Notes:",
147
+ guidancePrefix: "[Guidance {index}]",
148
+ summaryLabel: "Summary: {summary}",
149
+ reviewResult: "Review Result",
150
+ confirm: "Confirm",
151
+ confirmHint: "Proceed to YAML generation",
152
+ toggleConfirmation: "Toggle step confirmation requirements",
153
+ editCaptures: "Edit captured values from page",
154
+ editCapturesHint: "accept/reject/add",
155
+ editNotes: "Edit notes",
156
+ editNotesHint: "",
157
+ selectAction: "Select an action",
158
+ selectConfirmSteps: "Select steps requiring confirmation (Space to toggle, Enter to confirm)",
159
+ selectNotesAction: "Select note action",
160
+ addCustomNote: "Add custom note",
161
+ addSuggestedNote: "Select from AI-suggested notes",
162
+ deleteNote: "Delete notes",
163
+ noteContent: "Note content",
164
+ noteContentRequired: "Please enter note content",
165
+ notesAdded: "{count} notes added.",
166
+ notesDeleted: "{count} notes deleted.",
167
+ selectCaptureAction: "Select capture action",
168
+ acceptAllCaptures: "Accept all existing captures",
169
+ rejectCaptures: "Reject captures",
170
+ addCapture: "Add new capture",
171
+ allCapturesAccepted: "All captures accepted.",
172
+ noCapturesAvailable: "No captures available.",
173
+ selectCapturesToReject: "Select captures to reject",
174
+ capturesRejected: "{count} captures rejected.",
175
+ captureStepNumber: "Target step number (ordinal)",
176
+ captureStepRequired: "Please enter a step number",
177
+ captureStepNumeric: "Please enter a number",
178
+ captureVarName: "Capture variable name (camelCase)",
179
+ captureVarRequired: "Please enter a variable name",
180
+ captureStrategy: "Capture strategy",
181
+ strategySnapshot: "snapshot (regex match)",
182
+ strategyUrl: "url (URL regex match)",
183
+ strategyAi: "ai (AI extraction)",
184
+ strategyExpression: "expression (template)",
185
+ regexPattern: "Regex pattern",
186
+ aiExtractionPrompt: "AI extraction prompt",
187
+ templateExpression: "Template expression",
188
+ captureAdded: 'Added capture "{name}" to Step #{ordinal}.',
189
+ highRiskNote: "Always get approval before executing high-risk steps ({ordinals})",
190
+ credentialNote: "This flow contains credential input steps. Verify the execution environment's auth settings",
191
+ removedStepsNote: "{count} steps were removed. The exploration may have been redundant",
192
+ stepNotFound: "Step #{ordinal} not found."
193
+ },
194
+ fix: {
195
+ noSuggestions: "No fix suggestions found in the report.",
196
+ noSuggestionsHint: "Hint: Run with --maintenance flag to generate AI fix suggestions.",
197
+ complete: "Done",
198
+ suggestionCount: "Fix suggestions: {count}",
199
+ errorLabel: " Error: {error}",
200
+ categoryLabel: " Category: {category}",
201
+ yamlFixLabel: " YAML fix: {fix}",
202
+ contextFixLabel: " Context fix: {fix}",
203
+ recoveryHintLabel: " Recovery hint: {hint}",
204
+ noYamlFix: " No YAML fix suggestion \u2014 skipping.",
205
+ applyPrompt: "What would you like to do with this suggestion?",
206
+ applyLabel: "Apply",
207
+ applyHint: "AI will modify the YAML",
208
+ skipLabel: "Skip",
209
+ skipHint: "Ignore this suggestion",
210
+ abortLabel: "Abort",
211
+ abortHint: "Stop processing remaining suggestions",
212
+ patchGenerated: "Patch generated. Diff:",
213
+ confirmApply: "Apply this change?",
214
+ applied: "Applied fix for Step #{ordinal}.",
215
+ skippedMsg: "Skipped.",
216
+ patchFailed: "Patch generation failed: {error}",
217
+ writePrompt: "Write {count} fixes to {path}?",
218
+ writeSuccess: "Updated {path}.",
219
+ writeCancelled: "Write cancelled.",
220
+ noChanges: "No fixes were applied.",
221
+ verifyCommand: "Verify command:",
222
+ noDiff: "(no changes)"
223
+ },
224
+ generator: {
225
+ cancelled: "Exploration was cancelled.",
226
+ feedbackPrompt: "Enter feedback or improvements for the exploration (Enter to skip)",
227
+ aiReviewing: "AI reviewing...",
228
+ aiReviewFailed: "AI review failed: {error}"
229
+ },
230
+ cli: {
231
+ cancelledMessage: "Operation cancelled.",
232
+ executionCancelled: "Execution cancelled.",
233
+ instructionRequired: "--instruction is required",
234
+ urlRequired: "--url is required",
235
+ goalRequired: "--goal is required",
236
+ outputRequired: "--output is required",
237
+ invalidApprovalMode: "--approval-mode must be one of: cli, slack, teams, discord",
238
+ reportRequired: "--report is required",
239
+ stealthEnabled: "Stealth: enabled",
240
+ proxyEnabled: "Proxy: {proxy}"
241
+ },
242
+ browserTool: {
243
+ interventionGuidance: "[User guidance] {text}",
244
+ successCount: "{count} succeeded",
245
+ truncated: "[truncated]"
246
+ },
247
+ compose: {
248
+ title: "compose -- Instruction Composition",
249
+ complete: "Composition complete: {path}",
250
+ branchVarPrompt: "Branch variable name (e.g. sourceType)",
251
+ yamlPathPrompt: "Path to instruction YAML",
252
+ matchValuePrompt: "Match value for this case",
253
+ caseLoaded: 'Loaded: "{title}" ({steps} steps, {vars} variables)',
254
+ addAnotherCase: "Add another case?",
255
+ goalPrompt: "Goal description (optional)",
256
+ variableMergePreview: "Variable Merge Preview",
257
+ sharedVariables: "Shared variables:",
258
+ conflictingVariables: "Conflicts:",
259
+ caseSpecificVariables: "Case-specific variables:",
260
+ branchVariable: "Branch variable:",
261
+ conflictPrompt: 'Variable "{name}" has different definitions:',
262
+ useFromCase: 'Use definition from "{case}"',
263
+ settingsDiffPrompt: "Settings differ: {key}",
264
+ composedPreview: "Composed Instruction Preview",
265
+ selectAction: "Select an action",
266
+ confirm: "Confirm",
267
+ confirmHint: "Write composed YAML",
268
+ editBranch: "Edit branch variable name",
269
+ editMatches: "Edit match values",
270
+ editVariables: "Edit variables",
271
+ editTitle: "Edit title/goal",
272
+ selectCase: "Select a case to edit",
273
+ newMatchValue: "New match value",
274
+ newBranchVar: "New branch variable name",
275
+ newTitle: "New title/goal",
276
+ editVarAction: "Select variable action",
277
+ deleteVar: "Delete a variable",
278
+ addVar: "Add a variable",
279
+ editVarDef: "Edit variable definition",
280
+ selectVar: "Select a variable",
281
+ varDeleted: 'Variable "{name}" deleted.',
282
+ newVarName: "Variable name",
283
+ newVarSource: "Variable source",
284
+ newVarValue: "Variable value (optional)",
285
+ newVarDescription: "Variable description (optional)",
286
+ varAdded: 'Variable "{name}" added.',
287
+ varUpdated: 'Variable "{name}" updated.',
288
+ branchVarConflict: 'Variable name "{name}" conflicts with the branch variable. Choose a different name.',
289
+ noCases: "At least 2 cases are required."
290
+ }
291
+ };
292
+ var en_default = messages;
293
+
294
+ // src/i18n/messages/ja.ts
295
+ var messages2 = {
296
+ common: {
297
+ success: "\u6210\u529F",
298
+ failure: "\u5931\u6557",
299
+ skipped: "\u30B9\u30AD\u30C3\u30D7",
300
+ aborted: "\u4E2D\u6B62",
301
+ none: "(\u306A\u3057)",
302
+ unknown: "(\u4E0D\u660E)",
303
+ items: "\u4EF6",
304
+ files: "\u30D5\u30A1\u30A4\u30EB",
305
+ conditionSkipped: "\u6761\u4EF6\u30B9\u30AD\u30C3\u30D7",
306
+ iterations: "\u56DE",
307
+ iteration: "\u56DE"
308
+ },
309
+ risk: {
310
+ low: "\u526F\u4F5C\u7528\u306E\u5C11\u306A\u3044\u64CD\u4F5C",
311
+ medium: "\u30D5\u30A9\u30FC\u30E0\u9001\u4FE1\u30FB\u8A2D\u5B9A\u5909\u66F4\u306A\u3069",
312
+ high: "\u524A\u9664\u30FB\u6C7A\u6E08\u306A\u3069\u4E0D\u53EF\u9006\u64CD\u4F5C"
313
+ },
314
+ reporter: {
315
+ instruction: "\u6307\u793A\u66F8: {title}",
316
+ startUrl: "\u958B\u59CBURL: {url}",
317
+ totalSteps: "\u5168\u30B9\u30C6\u30C3\u30D7: {count}",
318
+ statsLine: "\u5B9F\u884C: {executed} \u6210\u529F: {succeeded} \u5931\u6557: {failed} \u30B9\u30AD\u30C3\u30D7: {skipped}",
319
+ statusAborted: "\u72B6\u614B: \u4E2D\u6B62",
320
+ totalDuration: "\u5408\u8A08\u5B9F\u884C\u6642\u9593: {duration}",
321
+ memory: "\u30E1\u30E2\u30EA: {info}",
322
+ downloads: "\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9: {count}\u30D5\u30A1\u30A4\u30EB",
323
+ executionResult: "\u5B9F\u884C\u7D50\u679C",
324
+ batchResult: "\u30D0\u30C3\u30C1\u5B9F\u884C\u7D50\u679C",
325
+ batchTotalRows: "\u5168\u884C\u6570: {count}",
326
+ batchStats: "\u6210\u529F: {succeeded} \u5931\u6557: {failed}"
327
+ },
328
+ maintenance: {
329
+ debugResult: "\u30C7\u30D0\u30C3\u30B0\u691C\u8A3C\u7D50\u679C",
330
+ allStepsSuccess: "\u5168\u30B9\u30C6\u30C3\u30D7\u6210\u529F ({count} steps, {duration})",
331
+ failedSteps: "--- \u5931\u6557\u30B9\u30C6\u30C3\u30D7 ---",
332
+ yamlSuggestions: "--- \u6307\u793A\u66F8\uFF08YAML\uFF09\u306E\u4FEE\u6B63\u63D0\u6848 ---",
333
+ contextSuggestions: "--- \u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\uFF08markdown\uFF09\u306E\u4FEE\u6B63\u63D0\u6848 ---",
334
+ retryWarnings: "--- \u30EA\u30C8\u30E9\u30A4\u8B66\u544A ---",
335
+ retryCount: "#{ordinal} {description}: {count}\u56DE\u30EA\u30C8\u30E9\u30A4 (\u95BE\u5024: {threshold})"
336
+ },
337
+ confirmation: {
338
+ title: "\u627F\u8A8D\u304C\u5FC5\u8981\u3067\u3059",
339
+ stepInfo: "\u30B9\u30C6\u30C3\u30D7 {ordinal}: {description}",
340
+ riskLevelLabel: "\u30EA\u30B9\u30AF\u30EC\u30D9\u30EB: {level} ({hint})",
341
+ selectAction: "\u64CD\u4F5C\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044",
342
+ approve: "\u627F\u8A8D\u3057\u3066\u5B9F\u884C",
343
+ skip: "\u3053\u306E\u30B9\u30C6\u30C3\u30D7\u3092\u30B9\u30AD\u30C3\u30D7",
344
+ abort: "\u5B9F\u884C\u3092\u4E2D\u6B62",
345
+ abortHint: "\u5168\u4F53\u3092\u505C\u6B62"
346
+ },
347
+ planner: {
348
+ extractingFromContext: "context\u304B\u3089\u5909\u6570\u5024\u3092\u62BD\u51FA\u4E2D...",
349
+ extractedFromContext: "{count}\u4EF6\u306E\u5024\u3092context\u304B\u3089\u62BD\u51FA",
350
+ unresolvedRequired: "{count}\u4EF6\u306E\u5FC5\u9808\u5909\u6570\u304C\u672A\u89E3\u6C7A\u3067\u3059\u3002\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
351
+ placeholder: "(\u5FC5\u9808 \u2014 context\u304B\u3089\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F)",
352
+ variableRequired: '\u5909\u6570 "{name}" \u306F\u5FC5\u9808\u3067\u3059',
353
+ preVariables: "\u4E8B\u524D\u5909\u6570:",
354
+ runtimeCaptures: "\u30E9\u30F3\u30BF\u30A4\u30E0\u30AD\u30E3\u30D7\u30C1\u30E3:",
355
+ controlFlow: "\u5236\u5FA1\u30D5\u30ED\u30FC:",
356
+ conditionLabel: " Step {ordinal}: \u6761\u4EF6 {condition}",
357
+ loopLabel: " Step {ordinal}: \u30EB\u30FC\u30D7 (\u6700\u5927{max}\u56DE, {subSteps}\u30B5\u30D6\u30B9\u30C6\u30C3\u30D7, \u6761\u4EF6: {condition})",
358
+ forEachLabel: " Step {ordinal}: forEach (\u6700\u5927{max}\u4EF6, {subSteps}\u30B5\u30D6\u30B9\u30C6\u30C3\u30D7, \u30BD\u30FC\u30B9: {forEach})",
359
+ branchLabel: " Step {ordinal}: \u5206\u5C90 {value} (\u30B1\u30FC\u30B9: {cases})",
360
+ batchMode: "\u30D0\u30C3\u30C1\u30E2\u30FC\u30C9: {count}\u884C ({path})",
361
+ stepCount: "\u30B9\u30C6\u30C3\u30D7\u6570: {count}",
362
+ executionPlan: "\u5B9F\u884C\u30D7\u30E9\u30F3",
363
+ confirmStart: "\u5B9F\u884C\u3092\u958B\u59CB\u3057\u307E\u3059\u304B\uFF1F",
364
+ fromSecrets: " (secrets\u304B\u3089\u8AAD\u307F\u8FBC\u307F)",
365
+ fromContext: " (context\u304B\u3089\u62BD\u51FA)",
366
+ fromDataSource: " (\u30C7\u30FC\u30BF\u30BD\u30FC\u30B9\u304B\u3089)"
367
+ },
368
+ errors: {
369
+ elementNotFound: "\u30BB\u30EC\u30AF\u30BF\u306E ariaLabel / role / text \u3092\u78BA\u8A8D\u3057\u3001\u73FE\u5728\u306E\u30DA\u30FC\u30B8\u69CB\u9020\u306B\u5408\u308F\u305B\u3066\u66F4\u65B0\u3057\u3066\u304F\u3060\u3055\u3044",
370
+ elementStale: "\u30DA\u30FC\u30B8\u69CB\u9020\u304C\u5909\u5316\u3057\u3066\u3044\u307E\u3059\u3002\u30BB\u30EC\u30AF\u30BF\u30AD\u30E3\u30C3\u30B7\u30E5\u3092\u524A\u9664\u3057\u3066\u518D\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044",
371
+ pageStructureChanged: "\u30DA\u30FC\u30B8\u69CB\u9020\u304C\u5927\u5E45\u306B\u5909\u5316\u3057\u3066\u3044\u307E\u3059\u3002context.md \u306B\u30DA\u30FC\u30B8\u69CB\u9020\u306E\u5909\u66F4\u3092\u8A18\u9332\u3057\u3066\u304F\u3060\u3055\u3044",
372
+ navigationTimeout: "\u30DA\u30FC\u30B8\u9077\u79FB\u304C\u9045\u5EF6\u3057\u3066\u3044\u307E\u3059\u3002wait \u30B9\u30C6\u30C3\u30D7\u306E\u8FFD\u52A0\u307E\u305F\u306F step-delay \u306E\u5897\u52A0\u3092\u691C\u8A0E\u3057\u3066\u304F\u3060\u3055\u3044",
373
+ actionFailed: "\u8981\u7D20\u306F\u898B\u3064\u304B\u308A\u307E\u3057\u305F\u304C\u30A2\u30AF\u30B7\u30E7\u30F3\u304C\u5931\u6557\u3057\u307E\u3057\u305F\u3002\u30A2\u30AF\u30B7\u30E7\u30F3\u7A2E\u5225\u306E\u5909\u66F4\uFF08\u4F8B: click \u2192 hover\uFF09\u3092\u691C\u8A0E\u3057\u3066\u304F\u3060\u3055\u3044",
374
+ unknownError: "\u30A8\u30E9\u30FC\u5185\u5BB9\u3092\u78BA\u8A8D\u3057\u3001\u6307\u793A\u66F8\u306E\u8A72\u5F53\u30B9\u30C6\u30C3\u30D7\u3092\u898B\u76F4\u3057\u3066\u304F\u3060\u3055\u3044"
375
+ },
376
+ slack: {
377
+ batchComplete: "\u30D0\u30C3\u30C1\u5B9F\u884C\u5B8C\u4E86: {title}",
378
+ executionComplete: "\u5B9F\u884C\u5B8C\u4E86: {title}",
379
+ debugFailure: "\u30C7\u30D0\u30C3\u30B0\u691C\u8A3C\u5931\u6557: {title}",
380
+ failedLabel: "\u5931\u6557:",
381
+ failedRows: "\u5931\u6557\u884C:",
382
+ suggestionsLabel: "\u4FEE\u6B63\u63D0\u6848:",
383
+ retryWarningsLabel: "\u30EA\u30C8\u30E9\u30A4\u8B66\u544A:",
384
+ abortTag: "\u4E2D\u6B62",
385
+ batchTag: "\u30D0\u30C3\u30C1",
386
+ totalRows: "\u5168{count}\u884C",
387
+ moreSteps: "- ...\u4ED6 {count} \u30B9\u30C6\u30C3\u30D7",
388
+ moreRows: "- ...\u4ED6 {count} \u884C",
389
+ moreItems: "- ...\u4ED6 {count} \u4EF6",
390
+ approvalRequest: "\u627F\u8A8D\u4F9D\u983C: {description}",
391
+ approvalDescription: "\u64CD\u4F5C\u306E\u627F\u8A8D\u4F9D\u983C\u304C\u5C4A\u304D\u307E\u3057\u305F\u3002\n{goalLine}\u30B9\u30C6\u30C3\u30D7\uFF1A\u300C{description}\u300D\n\u64CD\u4F5C\u306E\u30EA\u30B9\u30AF\u30EC\u30D9\u30EB\uFF1A{riskEmoji} {riskLevel}",
392
+ taskLabel: "\u696D\u52D9\u5185\u5BB9\uFF1A",
393
+ stepLabel: "\u30B9\u30C6\u30C3\u30D7\uFF1A",
394
+ riskLabel: "\u64CD\u4F5C\u306E\u30EA\u30B9\u30AF\u30EC\u30D9\u30EB\uFF1A",
395
+ approveButton: "\u627F\u8A8D",
396
+ skipButton: "\u30B9\u30AD\u30C3\u30D7",
397
+ abortButton: "\u4E2D\u6B62",
398
+ approvalWaiting: "\u627F\u8A8D\u5F85\u3061 (\u30EA\u30B9\u30AF: {riskLevel})",
399
+ approvalTimeout: ":hourglass: \u30BF\u30A4\u30E0\u30A2\u30A6\u30C8\uFF08\u81EA\u52D5\u4E2D\u6B62\uFF09",
400
+ approved: ":white_check_mark: \u627F\u8A8D\u6E08\u307F",
401
+ slackSkipped: ":fast_forward: \u30B9\u30AD\u30C3\u30D7",
402
+ slackAborted: ":octagonal_sign: \u4E2D\u6B62"
403
+ },
404
+ chat: {
405
+ approvalRequest: "\u627F\u8A8D\u4F9D\u983C: {description}",
406
+ approvalDescription: "\u64CD\u4F5C\u306E\u627F\u8A8D\u4F9D\u983C\u304C\u5C4A\u304D\u307E\u3057\u305F\u3002\n{goalLine}\u30B9\u30C6\u30C3\u30D7\uFF1A\u300C{description}\u300D\n\u64CD\u4F5C\u306E\u30EA\u30B9\u30AF\u30EC\u30D9\u30EB\uFF1A{riskEmoji} {riskLevel}",
407
+ taskLabel: "\u696D\u52D9\u5185\u5BB9\uFF1A",
408
+ stepLabel: "\u30B9\u30C6\u30C3\u30D7\uFF1A",
409
+ riskLabel: "\u64CD\u4F5C\u306E\u30EA\u30B9\u30AF\u30EC\u30D9\u30EB\uFF1A",
410
+ approveButton: "\u627F\u8A8D",
411
+ skipButton: "\u30B9\u30AD\u30C3\u30D7",
412
+ abortButton: "\u4E2D\u6B62",
413
+ approvalWaiting: "\u627F\u8A8D\u5F85\u3061 (\u30EA\u30B9\u30AF: {riskLevel})",
414
+ approvalTimeout: "\u231B \u30BF\u30A4\u30E0\u30A2\u30A6\u30C8\uFF08\u81EA\u52D5\u4E2D\u6B62\uFF09",
415
+ approved: "\u2705 \u627F\u8A8D\u6E08\u307F",
416
+ chatSkipped: "\u23E9 \u30B9\u30AD\u30C3\u30D7",
417
+ chatAborted: "\u{1F6D1} \u4E2D\u6B62",
418
+ executionComplete: "\u5B9F\u884C\u5B8C\u4E86: {title}",
419
+ batchComplete: "\u30D0\u30C3\u30C1\u5B9F\u884C\u5B8C\u4E86: {title}",
420
+ debugFailure: "\u30C7\u30D0\u30C3\u30B0\u691C\u8A3C\u5931\u6557: {title}",
421
+ failedLabel: "\u5931\u6557:",
422
+ failedRows: "\u5931\u6557\u884C:",
423
+ suggestionsLabel: "\u4FEE\u6B63\u63D0\u6848:",
424
+ retryWarningsLabel: "\u30EA\u30C8\u30E9\u30A4\u8B66\u544A:",
425
+ abortTag: "\u4E2D\u6B62",
426
+ batchTag: "\u30D0\u30C3\u30C1",
427
+ totalRows: "\u5168{count}\u884C",
428
+ moreSteps: "- ...\u4ED6 {count} \u30B9\u30C6\u30C3\u30D7",
429
+ moreRows: "- ...\u4ED6 {count} \u884C",
430
+ moreItems: "- ...\u4ED6 {count} \u4EF6"
431
+ },
432
+ review: {
433
+ keptSteps: "\u4FDD\u6301\u3055\u308C\u308B\u30B9\u30C6\u30C3\u30D7:",
434
+ confirmationRequired: "\u627F\u8A8D\u304C\u5FC5\u8981\u306A\u30B9\u30C6\u30C3\u30D7:",
435
+ removedSteps: "\u9664\u5916\u3055\u308C\u308B\u30B9\u30C6\u30C3\u30D7:",
436
+ capturedValues: "\u30DA\u30FC\u30B8\u304B\u3089\u53D6\u5F97\u3059\u308B\u5024:",
437
+ notes: "\u30CE\u30FC\u30C8:",
438
+ guidancePrefix: "[\u65B9\u91DD\u4FEE\u6B63 {index}]",
439
+ summaryLabel: "Summary: {summary}",
440
+ reviewResult: "\u30EC\u30D3\u30E5\u30FC\u7D50\u679C",
441
+ confirm: "\u78BA\u5B9A",
442
+ confirmHint: "YAML\u751F\u6210\u306B\u9032\u3080",
443
+ toggleConfirmation: "\u30B9\u30C6\u30C3\u30D7\u306E\u627F\u8A8D\u8981\u5426\u3092\u5909\u66F4",
444
+ editCaptures: "\u30DA\u30FC\u30B8\u304B\u3089\u53D6\u5F97\u3059\u308B\u5024\u3092\u7DE8\u96C6",
445
+ editCapturesHint: "accept/reject/add",
446
+ editNotes: "\u30CE\u30FC\u30C8\u3092\u7DE8\u96C6",
447
+ editNotesHint: "",
448
+ selectAction: "\u64CD\u4F5C\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044",
449
+ selectConfirmSteps: "\u627F\u8A8D\u304C\u5FC5\u8981\u306A\u30B9\u30C6\u30C3\u30D7\u3092\u9078\u629E\uFF08\u30B9\u30DA\u30FC\u30B9\u3067\u5207\u66FF\u3001Enter\u3067\u78BA\u5B9A\uFF09",
450
+ selectNotesAction: "\u30CE\u30FC\u30C8\u64CD\u4F5C\u3092\u9078\u629E",
451
+ addCustomNote: "\u30AB\u30B9\u30BF\u30E0\u30CE\u30FC\u30C8\u3092\u8FFD\u52A0",
452
+ addSuggestedNote: "AI\u63D0\u6848\u30CE\u30FC\u30C8\u304B\u3089\u9078\u629E",
453
+ deleteNote: "\u30CE\u30FC\u30C8\u3092\u524A\u9664",
454
+ noteContent: "\u30CE\u30FC\u30C8\u5185\u5BB9",
455
+ noteContentRequired: "\u30CE\u30FC\u30C8\u5185\u5BB9\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044",
456
+ notesAdded: "{count}\u4EF6\u306E\u30CE\u30FC\u30C8\u3092\u8FFD\u52A0\u3057\u307E\u3057\u305F\u3002",
457
+ notesDeleted: "{count}\u4EF6\u306E\u30CE\u30FC\u30C8\u3092\u524A\u9664\u3057\u307E\u3057\u305F\u3002",
458
+ selectCaptureAction: "\u30DA\u30FC\u30B8\u304B\u3089\u53D6\u5F97\u3059\u308B\u5024\u306E\u64CD\u4F5C\u3092\u9078\u629E",
459
+ acceptAllCaptures: "\u65E2\u5B58\u306E\u53D6\u5F97\u5024\u3092\u3059\u3079\u3066\u627F\u8A8D",
460
+ rejectCaptures: "\u53D6\u5F97\u5024\u3092\u9664\u5916",
461
+ addCapture: "\u65B0\u3057\u3044\u53D6\u5F97\u5024\u3092\u8FFD\u52A0",
462
+ allCapturesAccepted: "\u3059\u3079\u3066\u306E\u53D6\u5F97\u5024\u3092\u627F\u8A8D\u3057\u307E\u3057\u305F\u3002",
463
+ noCapturesAvailable: "\u53D6\u5F97\u5024\u304C\u3042\u308A\u307E\u305B\u3093\u3002",
464
+ selectCapturesToReject: "\u9664\u5916\u3059\u308B\u53D6\u5F97\u5024\u3092\u9078\u629E",
465
+ capturesRejected: "{count}\u4EF6\u306E\u53D6\u5F97\u5024\u3092\u9664\u5916\u3057\u307E\u3057\u305F\u3002",
466
+ captureStepNumber: "\u8FFD\u52A0\u5148\u306E\u30B9\u30C6\u30C3\u30D7\u756A\u53F7 (ordinal)",
467
+ captureStepRequired: "\u30B9\u30C6\u30C3\u30D7\u756A\u53F7\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044",
468
+ captureStepNumeric: "\u6570\u5024\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044",
469
+ captureVarName: "\u53D6\u5F97\u5024\u306E\u5909\u6570\u540D (camelCase)",
470
+ captureVarRequired: "\u5909\u6570\u540D\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044",
471
+ captureStrategy: "\u53D6\u5F97\u6226\u7565",
472
+ strategySnapshot: "snapshot (\u6B63\u898F\u8868\u73FE\u30DE\u30C3\u30C1)",
473
+ strategyUrl: "url (URL\u306E\u6B63\u898F\u8868\u73FE\u30DE\u30C3\u30C1)",
474
+ strategyAi: "ai (AI\u62BD\u51FA)",
475
+ strategyExpression: "expression (\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8)",
476
+ regexPattern: "\u6B63\u898F\u8868\u73FE\u30D1\u30BF\u30FC\u30F3",
477
+ aiExtractionPrompt: "AI\u62BD\u51FA\u30D7\u30ED\u30F3\u30D7\u30C8",
478
+ templateExpression: "\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u5F0F",
479
+ captureAdded: 'Step #{ordinal} \u306B\u53D6\u5F97\u5024 "{name}" \u3092\u8FFD\u52A0\u3057\u307E\u3057\u305F\u3002',
480
+ highRiskNote: "\u9AD8\u30EA\u30B9\u30AF\u30B9\u30C6\u30C3\u30D7\uFF08{ordinals}\uFF09\u306E\u5B9F\u884C\u524D\u306B\u5FC5\u305A\u627F\u8A8D\u3092\u53D6\u308B\u3053\u3068",
481
+ credentialNote: "\u8A8D\u8A3C\u60C5\u5831\u3092\u542B\u3080\u30B9\u30C6\u30C3\u30D7\u304C\u3042\u308A\u307E\u3059\u3002\u5B9F\u884C\u74B0\u5883\u306E\u8A8D\u8A3C\u8A2D\u5B9A\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044",
482
+ removedStepsNote: "{count}\u30B9\u30C6\u30C3\u30D7\u304C\u9664\u5916\u3055\u308C\u307E\u3057\u305F\u3002\u63A2\u7D22\u304C\u5197\u9577\u3060\u3063\u305F\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059",
483
+ stepNotFound: "Step #{ordinal} \u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002"
484
+ },
485
+ fix: {
486
+ noSuggestions: "\u30EC\u30DD\u30FC\u30C8\u306B\u4FEE\u6B63\u63D0\u6848\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3067\u3057\u305F\u3002",
487
+ noSuggestionsHint: "\u30D2\u30F3\u30C8: --maintenance \u30D5\u30E9\u30B0\u4ED8\u304D\u3067\u5B9F\u884C\u3059\u308B\u3068 AI \u4FEE\u6B63\u63D0\u6848\u304C\u751F\u6210\u3055\u308C\u307E\u3059\u3002",
488
+ complete: "\u5B8C\u4E86",
489
+ suggestionCount: "\u4FEE\u6B63\u63D0\u6848: {count} \u4EF6",
490
+ errorLabel: " \u30A8\u30E9\u30FC: {error}",
491
+ categoryLabel: " \u5206\u985E: {category}",
492
+ yamlFixLabel: " YAML \u4FEE\u6B63: {fix}",
493
+ contextFixLabel: " Context \u4FEE\u6B63: {fix}",
494
+ recoveryHintLabel: " \u63A8\u5968\u5BFE\u5FDC: {hint}",
495
+ noYamlFix: " YAML \u4FEE\u6B63\u63D0\u6848\u304C\u306A\u3044\u305F\u3081\u30B9\u30AD\u30C3\u30D7\u3057\u307E\u3059\u3002",
496
+ applyPrompt: "\u3053\u306E\u63D0\u6848\u3092\u3069\u3046\u3057\u307E\u3059\u304B\uFF1F",
497
+ applyLabel: "\u9069\u7528",
498
+ applyHint: "AI \u304C YAML \u3092\u4FEE\u6B63\u3057\u307E\u3059",
499
+ skipLabel: "\u30B9\u30AD\u30C3\u30D7",
500
+ skipHint: "\u3053\u306E\u63D0\u6848\u3092\u7121\u8996",
501
+ abortLabel: "\u4E2D\u6B62",
502
+ abortHint: "\u6B8B\u308A\u306E\u63D0\u6848\u3082\u542B\u3081\u3066\u4E2D\u6B62",
503
+ patchGenerated: "\u30D1\u30C3\u30C1\u751F\u6210\u6210\u529F\u3002\u5DEE\u5206:",
504
+ confirmApply: "\u3053\u306E\u5909\u66F4\u3092\u9069\u7528\u3057\u307E\u3059\u304B\uFF1F",
505
+ applied: "Step #{ordinal} \u306E\u4FEE\u6B63\u3092\u9069\u7528\u3057\u307E\u3057\u305F\u3002",
506
+ skippedMsg: "\u30B9\u30AD\u30C3\u30D7\u3057\u307E\u3057\u305F\u3002",
507
+ patchFailed: "\u30D1\u30C3\u30C1\u751F\u6210\u5931\u6557: {error}",
508
+ writePrompt: "{count} \u4EF6\u306E\u4FEE\u6B63\u3092 {path} \u306B\u66F8\u304D\u8FBC\u307F\u307E\u3059\u304B\uFF1F",
509
+ writeSuccess: "{path} \u3092\u66F4\u65B0\u3057\u307E\u3057\u305F\u3002",
510
+ writeCancelled: "\u66F8\u304D\u8FBC\u307F\u3092\u30AD\u30E3\u30F3\u30BB\u30EB\u3057\u307E\u3057\u305F\u3002",
511
+ noChanges: "\u9069\u7528\u3055\u308C\u305F\u4FEE\u6B63\u306F\u3042\u308A\u307E\u305B\u3093\u3002",
512
+ verifyCommand: "\u691C\u8A3C\u30B3\u30DE\u30F3\u30C9:",
513
+ noDiff: "(\u5909\u66F4\u306A\u3057)"
514
+ },
515
+ generator: {
516
+ cancelled: "\u63A2\u7D22\u304C\u30AD\u30E3\u30F3\u30BB\u30EB\u3055\u308C\u307E\u3057\u305F\u3002",
517
+ feedbackPrompt: "\u63A2\u7D22\u306E\u6539\u5584\u70B9\u3084\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\uFF08Enter\u3067\u30B9\u30AD\u30C3\u30D7\uFF09",
518
+ aiReviewing: "AI\u30EC\u30D3\u30E5\u30FC\u4E2D...",
519
+ aiReviewFailed: "AI\u30EC\u30D3\u30E5\u30FC\u5931\u6557: {error}"
520
+ },
521
+ cli: {
522
+ cancelledMessage: "\u64CD\u4F5C\u304C\u30AD\u30E3\u30F3\u30BB\u30EB\u3055\u308C\u307E\u3057\u305F\u3002",
523
+ executionCancelled: "\u5B9F\u884C\u304C\u30AD\u30E3\u30F3\u30BB\u30EB\u3055\u308C\u307E\u3057\u305F\u3002",
524
+ instructionRequired: "--instruction \u306F\u5FC5\u9808\u3067\u3059",
525
+ urlRequired: "--url \u306F\u5FC5\u9808\u3067\u3059",
526
+ goalRequired: "--goal \u306F\u5FC5\u9808\u3067\u3059",
527
+ outputRequired: "--output \u306F\u5FC5\u9808\u3067\u3059",
528
+ invalidApprovalMode: "--approval-mode \u306F cli, slack, teams, discord \u306E\u3044\u305A\u308C\u304B\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",
529
+ reportRequired: "--report \u306F\u5FC5\u9808\u3067\u3059",
530
+ stealthEnabled: "\u30B9\u30C6\u30EB\u30B9: \u6709\u52B9",
531
+ proxyEnabled: "\u30D7\u30ED\u30AD\u30B7: {proxy}"
532
+ },
533
+ browserTool: {
534
+ interventionGuidance: "[\u30E6\u30FC\u30B6\u30FC\u304B\u3089\u306E\u65B9\u91DD\u4FEE\u6B63] {text}",
535
+ successCount: "{count}\u4EF6\u6210\u529F",
536
+ truncated: "[\u7701\u7565]"
537
+ },
538
+ compose: {
539
+ title: "compose -- \u6307\u793A\u66F8\u5408\u6210",
540
+ complete: "\u5408\u6210\u5B8C\u4E86: {path}",
541
+ branchVarPrompt: "\u5206\u5C90\u5909\u6570\u540D\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044 (\u4F8B: sourceType)",
542
+ yamlPathPrompt: "\u6307\u793A\u66F8 YAML \u30D1\u30B9",
543
+ matchValuePrompt: "\u30DE\u30C3\u30C1\u5024",
544
+ caseLoaded: '\u8AAD\u307F\u8FBC\u307F: "{title}" ({steps} steps, {vars} variables)',
545
+ addAnotherCase: "\u30B1\u30FC\u30B9\u3092\u8FFD\u52A0\u3057\u307E\u3059\u304B\uFF1F",
546
+ goalPrompt: "\u5408\u6210\u5F8C\u306E\u30B4\u30FC\u30EB\uFF08\u7A7A\u6B04\u3067\u30B9\u30AD\u30C3\u30D7\uFF09",
547
+ variableMergePreview: "\u5909\u6570\u30DE\u30FC\u30B8\u30D7\u30EC\u30D3\u30E5\u30FC",
548
+ sharedVariables: "\u5171\u901A\u5909\u6570\uFF08\u5B9A\u7FA9\u4E00\u81F4\uFF09:",
549
+ conflictingVariables: "\u7AF6\u5408\u5909\u6570\uFF08\u5B9A\u7FA9\u4E0D\u4E00\u81F4\uFF09:",
550
+ caseSpecificVariables: "\u30B1\u30FC\u30B9\u56FA\u6709\u5909\u6570:",
551
+ branchVariable: "\u5206\u5C90\u5909\u6570:",
552
+ conflictPrompt: '\u5909\u6570 "{name}" \u306E\u5B9A\u7FA9\u304C\u7570\u306A\u308A\u307E\u3059:',
553
+ useFromCase: '"{case}" \u306E\u5B9A\u7FA9\u3092\u4F7F\u7528',
554
+ settingsDiffPrompt: "Settings \u306E\u5DEE\u5206: {key}",
555
+ composedPreview: "\u5408\u6210\u7D50\u679C\u30D7\u30EC\u30D3\u30E5\u30FC",
556
+ selectAction: "\u64CD\u4F5C\u3092\u9078\u629E",
557
+ confirm: "\u78BA\u5B9A",
558
+ confirmHint: "YAML \u3092\u51FA\u529B",
559
+ editBranch: "\u5206\u5C90\u5909\u6570\u540D\u3092\u5909\u66F4",
560
+ editMatches: "\u30DE\u30C3\u30C1\u5024\u3092\u5909\u66F4",
561
+ editVariables: "\u5909\u6570\u3092\u7DE8\u96C6",
562
+ editTitle: "\u30BF\u30A4\u30C8\u30EB/\u30B4\u30FC\u30EB\u3092\u5909\u66F4",
563
+ selectCase: "\u7DE8\u96C6\u3059\u308B\u30B1\u30FC\u30B9\u3092\u9078\u629E",
564
+ newMatchValue: "\u65B0\u3057\u3044\u30DE\u30C3\u30C1\u5024",
565
+ newBranchVar: "\u65B0\u3057\u3044\u5206\u5C90\u5909\u6570\u540D",
566
+ newTitle: "\u65B0\u3057\u3044\u30BF\u30A4\u30C8\u30EB/\u30B4\u30FC\u30EB",
567
+ editVarAction: "\u5909\u6570\u306E\u64CD\u4F5C\u3092\u9078\u629E",
568
+ deleteVar: "\u5909\u6570\u3092\u524A\u9664",
569
+ addVar: "\u5909\u6570\u3092\u8FFD\u52A0",
570
+ editVarDef: "\u5909\u6570\u306E\u5B9A\u7FA9\u3092\u5909\u66F4",
571
+ selectVar: "\u5909\u6570\u3092\u9078\u629E",
572
+ varDeleted: '\u5909\u6570 "{name}" \u3092\u524A\u9664\u3057\u307E\u3057\u305F\u3002',
573
+ newVarName: "\u5909\u6570\u540D",
574
+ newVarSource: "\u5909\u6570\u306E\u30BD\u30FC\u30B9",
575
+ newVarValue: "\u5909\u6570\u306E\u5024\uFF08\u7701\u7565\u53EF\uFF09",
576
+ newVarDescription: "\u5909\u6570\u306E\u8AAC\u660E\uFF08\u7701\u7565\u53EF\uFF09",
577
+ varAdded: '\u5909\u6570 "{name}" \u3092\u8FFD\u52A0\u3057\u307E\u3057\u305F\u3002',
578
+ varUpdated: '\u5909\u6570 "{name}" \u3092\u66F4\u65B0\u3057\u307E\u3057\u305F\u3002',
579
+ branchVarConflict: '\u5909\u6570\u540D "{name}" \u306F\u5206\u5C90\u5909\u6570\u3068\u7AF6\u5408\u3057\u3066\u3044\u307E\u3059\u3002\u5225\u306E\u540D\u524D\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044\u3002',
580
+ noCases: "2\u3064\u4EE5\u4E0A\u306E\u30B1\u30FC\u30B9\u304C\u5FC5\u8981\u3067\u3059\u3002"
581
+ }
582
+ };
583
+ var ja_default = messages2;
584
+
585
+ // src/i18n/index.ts
586
+ var currentLocale = "en";
587
+ function getLocale() {
588
+ return currentLocale;
589
+ }
590
+ function initLocale(explicit) {
591
+ if (explicit === "ja" || explicit === "en") {
592
+ currentLocale = explicit;
593
+ return;
594
+ }
595
+ const envLocale = process.env.AGENTIC_BROWSER_LOCALE;
596
+ if (envLocale === "ja" || envLocale === "en") {
597
+ currentLocale = envLocale;
598
+ return;
599
+ }
600
+ currentLocale = "en";
601
+ }
602
+ function getMessages() {
603
+ return currentLocale === "ja" ? ja_default : en_default;
604
+ }
605
+ function t(key) {
606
+ const messages3 = getMessages();
607
+ const parts = key.split(".");
608
+ let current = messages3;
609
+ for (const part of parts) {
610
+ if (current && typeof current === "object") {
611
+ current = current[part];
612
+ } else {
613
+ return key;
614
+ }
615
+ }
616
+ return typeof current === "string" ? current : key;
617
+ }
618
+ function tf(key, params) {
619
+ let message = t(key);
620
+ for (const [k, v] of Object.entries(params)) {
621
+ message = message.replaceAll(`{${k}}`, String(v));
622
+ }
623
+ return message;
624
+ }
625
+
626
+ // src/cli/prompts.ts
627
+ import * as p from "@clack/prompts";
628
+ function exitIfCancelled(value) {
629
+ if (p.isCancel(value)) {
630
+ p.cancel(t("cli.cancelledMessage"));
631
+ process.exit(0);
632
+ }
633
+ return value;
634
+ }
635
+ function formatRiskHint(level) {
636
+ const keyMap = {
637
+ low: "risk.low",
638
+ medium: "risk.medium",
639
+ high: "risk.high"
640
+ };
641
+ return t(keyMap[level]);
642
+ }
643
+ async function promptSelect(message, options) {
644
+ const result = await p.select({
645
+ message,
646
+ options
647
+ });
648
+ return exitIfCancelled(result);
649
+ }
650
+ async function promptMultiselect(message, options, opts) {
651
+ const result = await p.multiselect({
652
+ message,
653
+ options,
654
+ initialValues: opts?.initialValues,
655
+ required: opts?.required ?? false
656
+ });
657
+ return exitIfCancelled(result);
658
+ }
659
+ async function promptText(message, opts) {
660
+ const result = await p.text({
661
+ message,
662
+ initialValue: opts?.initialValue,
663
+ placeholder: opts?.placeholder,
664
+ validate: opts?.validate
665
+ });
666
+ return exitIfCancelled(result);
667
+ }
668
+ async function promptConfirm(message, initialValue) {
669
+ const result = await p.confirm({
670
+ message,
671
+ initialValue
672
+ });
673
+ return exitIfCancelled(result);
674
+ }
675
+ var intro2 = p.intro;
676
+ var outro2 = p.outro;
677
+ var note2 = p.note;
678
+ var spinner2 = p.spinner;
679
+ var cancel2 = p.cancel;
680
+ var log2 = p.log;
681
+ var isDebug = process.env.DEBUG === "1" || process.env.DEBUG === "true";
682
+
683
+ // src/schemas/instruction-schema.ts
684
+ import { z as z2 } from "zod";
685
+
686
+ // src/schemas/element-selector.ts
687
+ import { z } from "zod";
688
+ var ElementSelectorSchema = z.object({
689
+ /** id属性(最も信頼性が高い) */
690
+ id: z.string().optional(),
691
+ /** aria-label(アクセシビリティラベル) */
692
+ ariaLabel: z.string().optional(),
693
+ /** data-testid(テスト用ID) */
694
+ dataTestId: z.string().optional(),
695
+ /** その他のdata-*属性 */
696
+ dataAttributes: z.record(z.string(), z.string()).optional(),
697
+ /** CSSセレクタ */
698
+ cssSelector: z.string().optional(),
699
+ /** XPathセレクタ */
700
+ xPath: z.string().optional(),
701
+ /** label[for]のテキスト */
702
+ labelText: z.string().optional(),
703
+ /** 要素のinnerText */
704
+ innerText: z.string().max(200).optional(),
705
+ /** placeholder属性 */
706
+ placeholder: z.string().optional(),
707
+ /** name属性 */
708
+ name: z.string().optional(),
709
+ /** 位置ベースのフォールバック(最終手段) */
710
+ rect: z.object({
711
+ x: z.number(),
712
+ y: z.number(),
713
+ width: z.number(),
714
+ height: z.number()
715
+ }).optional(),
716
+ /** タグ名(必須) */
717
+ tagName: z.string(),
718
+ /** role属性 */
719
+ role: z.string().optional(),
720
+ /** input要素のtype属性 */
721
+ inputType: z.string().optional()
722
+ });
723
+
724
+ // src/schemas/instruction-schema.ts
725
+ var SelectorSchema = ElementSelectorSchema.extend({
726
+ tagName: z2.string().default("unknown"),
727
+ text: z2.string().optional()
728
+ });
729
+ var ActionTypeSchema = z2.enum([
730
+ "click",
731
+ "input",
732
+ "select",
733
+ "navigate",
734
+ "scroll",
735
+ "wait",
736
+ "hover",
737
+ "extract",
738
+ "download",
739
+ "export",
740
+ "memory"
741
+ ]);
742
+ var RiskLevelSchema = z2.enum(["low", "medium", "high"]);
743
+ var VariableSourceSchema = z2.enum([
744
+ "prompt",
745
+ "fixed",
746
+ "context",
747
+ "env",
748
+ "expression",
749
+ "data"
750
+ ]);
751
+ var CaptureStrategySchema = z2.enum([
752
+ "snapshot",
753
+ "url",
754
+ "ai",
755
+ "expression",
756
+ "evaluate"
757
+ ]);
758
+ var StepCaptureSchema = z2.object({
759
+ name: z2.string().min(1),
760
+ strategy: CaptureStrategySchema,
761
+ description: z2.string().optional(),
762
+ required: z2.boolean().default(false),
763
+ pattern: z2.string().optional(),
764
+ group: z2.number().int().nonnegative().optional(),
765
+ prompt: z2.string().optional(),
766
+ expression: z2.string().optional()
767
+ }).refine(
768
+ (c) => {
769
+ if (!c.pattern) return true;
770
+ try {
771
+ new RegExp(c.pattern);
772
+ return true;
773
+ } catch {
774
+ return false;
775
+ }
776
+ },
777
+ { message: "Invalid regex pattern in capture" }
778
+ );
779
+ var LoopDefinitionSchema = z2.object({
780
+ /** while 型ループの条件式 */
781
+ condition: z2.string().min(1).optional(),
782
+ /** forEach: 反復対象のテンプレート変数(JSON配列)または "collection:name" */
783
+ forEach: z2.string().min(1).optional(),
784
+ /** forEach 時の各アイテム変数名 */
785
+ itemVariable: z2.string().optional(),
786
+ /** forEach 時のインデックス変数名 */
787
+ indexVariable: z2.string().optional(),
788
+ maxIterations: z2.number().int().positive().optional(),
789
+ counterVariable: z2.string().optional()
790
+ }).refine(
791
+ (l) => {
792
+ const hasCondition = !!l.condition;
793
+ const hasForEach = !!l.forEach;
794
+ return (hasCondition || hasForEach) && !(hasCondition && hasForEach);
795
+ },
796
+ { message: "loop must have exactly one of 'condition' or 'forEach'" }
797
+ );
798
+ var VariableDefinitionSchema = z2.object({
799
+ source: VariableSourceSchema,
800
+ description: z2.string().optional(),
801
+ required: z2.boolean().default(true),
802
+ sensitive: z2.boolean().default(false),
803
+ value: z2.string().optional(),
804
+ expression: z2.string().optional(),
805
+ envKey: z2.string().optional()
806
+ });
807
+ var StepActionSchema = z2.object({
808
+ type: ActionTypeSchema,
809
+ selector: SelectorSchema.optional(),
810
+ value: z2.string().optional(),
811
+ optionText: z2.string().optional(),
812
+ url: z2.string().optional(),
813
+ /** extract アクション用: ページ内で実行する JavaScript */
814
+ script: z2.string().optional(),
815
+ /** download アクション用: 保存先パス */
816
+ downloadPath: z2.string().optional(),
817
+ /** export アクション用: 出力対象コレクション名 */
818
+ exportCollection: z2.string().optional(),
819
+ /** export アクション用: 出力フォーマット */
820
+ exportFormat: z2.enum(["csv", "json"]).optional(),
821
+ /** export アクション用: 出力先パス */
822
+ exportPath: z2.string().optional()
823
+ });
824
+ var DataSourceConfigSchema = z2.object({
825
+ mapping: z2.record(z2.string(), z2.string())
826
+ });
827
+ var AggregateOperationSchema = z2.enum([
828
+ "sum",
829
+ "count",
830
+ "concat",
831
+ "min",
832
+ "max",
833
+ "avg",
834
+ "unique_count"
835
+ ]);
836
+ var MemoryOperationSchema = z2.object({
837
+ /** append: 蓄積, aggregate: 集計 */
838
+ type: z2.enum(["append", "aggregate"]),
839
+ /** 対象コレクション名 */
840
+ collection: z2.string(),
841
+ /** append 時: capture 名(RuntimeStore のキー) */
842
+ source: z2.string().optional(),
843
+ /** aggregate 時: 集計対象フィールド名 */
844
+ field: z2.string().optional(),
845
+ /** aggregate 時: 集計操作 */
846
+ operation: AggregateOperationSchema.optional(),
847
+ /** aggregate 時: 結果を格納する変数名 */
848
+ outputVariable: z2.string().optional()
849
+ });
850
+ var BranchCaseSchema = z2.lazy(
851
+ () => z2.object({
852
+ match: z2.string(),
853
+ steps: z2.array(ParsedStepSchema).min(1)
854
+ })
855
+ );
856
+ var BranchDefinitionSchema = z2.lazy(
857
+ () => z2.object({
858
+ value: z2.string().min(1),
859
+ cases: z2.array(BranchCaseSchema).min(1),
860
+ default: z2.object({ steps: z2.array(ParsedStepSchema).min(1) }).optional()
861
+ })
862
+ );
863
+ var ParsedStepSchema = z2.lazy(
864
+ () => z2.object({
865
+ ordinal: z2.number().int().nonnegative(),
866
+ description: z2.string(),
867
+ action: StepActionSchema,
868
+ url: z2.string(),
869
+ riskLevel: RiskLevelSchema,
870
+ requiresConfirmation: z2.boolean(),
871
+ captures: z2.array(StepCaptureSchema).optional(),
872
+ condition: z2.string().optional(),
873
+ loop: LoopDefinitionSchema.optional(),
874
+ steps: z2.array(ParsedStepSchema).optional(),
875
+ branches: BranchDefinitionSchema.optional(),
876
+ memoryOperations: z2.array(MemoryOperationSchema).optional()
877
+ }).refine(
878
+ (s) => !(s.loop && s.branches),
879
+ { message: "step cannot have both 'loop' and 'branches'" }
880
+ )
881
+ );
882
+ var ParsedInstructionSchema = z2.object({
883
+ title: z2.string(),
884
+ naturalLanguageSummary: z2.string().optional(),
885
+ settings: z2.object({
886
+ baseUrl: z2.string(),
887
+ defaultTimeout: z2.number().default(1e4),
888
+ pauseBetweenSteps: z2.number().default(500),
889
+ stopOnError: z2.boolean().default(true)
890
+ }),
891
+ metadata: z2.object({
892
+ startUrl: z2.string().min(1),
893
+ goal: z2.string(),
894
+ goalAchieved: z2.boolean(),
895
+ totalSteps: z2.number().int().nonnegative(),
896
+ generatedAt: z2.string()
897
+ }),
898
+ steps: z2.array(ParsedStepSchema).min(1),
899
+ notes: z2.string().optional(),
900
+ variables: z2.record(z2.string(), VariableDefinitionSchema).optional(),
901
+ dataSource: DataSourceConfigSchema.optional()
902
+ });
903
+
904
+ export {
905
+ getLocale,
906
+ initLocale,
907
+ t,
908
+ tf,
909
+ formatRiskHint,
910
+ promptSelect,
911
+ promptMultiselect,
912
+ promptText,
913
+ promptConfirm,
914
+ intro2 as intro,
915
+ outro2 as outro,
916
+ note2 as note,
917
+ spinner2 as spinner,
918
+ cancel2 as cancel,
919
+ log2 as log,
920
+ ParsedInstructionSchema
921
+ };
922
+ //# sourceMappingURL=chunk-VNQYQSMI.js.map