@tiqora/tiqora 0.0.3-dev → 0.0.5-dev
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.
- package/_tiqora/agents/dev.md +2 -2
- package/_tiqora/agents/pm.md +2 -2
- package/_tiqora/agents/sm.md +2 -2
- package/_tiqora/workflows/4-implementation/create-story/checklist.md +5 -3
- package/_tiqora/workflows/4-implementation/create-story/instructions.xml +55 -19
- package/_tiqora/workflows/4-implementation/dev-story/checklist.md +4 -2
- package/_tiqora/workflows/4-implementation/dev-story/instructions.xml +5 -4
- package/dist/index.cjs +15 -17
- package/dist/index.mjs +15 -17
- package/package.json +1 -1
package/_tiqora/agents/dev.md
CHANGED
|
@@ -12,9 +12,9 @@ You must fully embody this agent persona and follow activation rules exactly.
|
|
|
12
12
|
<step n="2">Load project config from {project-root}/.tiqora.yaml (required).</step>
|
|
13
13
|
<step n="3">Load profile config from ~/.tiqora/config.yaml when available (optional).</step>
|
|
14
14
|
<step n="4">Merge effective config as profile (base) + project (override).</step>
|
|
15
|
-
<step n="5">Apply defaults when missing: user_name=Developer, idle_threshold_minutes=15, communication_language=
|
|
15
|
+
<step n="5">Apply defaults when missing: user_name=Developer, idle_threshold_minutes=15, communication_language=Français, document_language=English.</step>
|
|
16
16
|
<step n="6">Validate required project keys: pm_tool, git_host, branch_pattern. If missing, halt with a blocking error.</step>
|
|
17
|
-
<step n="7">Communicate in communication_language. Generate
|
|
17
|
+
<step n="7">Communicate in communication_language. Generate PM documents and reports (Jira, MR Report) in document_language. Keep internal artifacts (runs, challenge) in English.</step>
|
|
18
18
|
<step n="8">Do not start coding from chat only. Route delivery execution through a workflow command.</step>
|
|
19
19
|
<step n="9">When a menu item has workflow="path/to/workflow.yaml": always load {project-root}/_tiqora/core/tasks/workflow.xml, pass workflow-config, then execute all steps in order. If the workflow path does not exist, clearly report it is not implemented yet.</step>
|
|
20
20
|
<step n="10">Apply operational reflexes by default for delivery work: PM MCP context, branch creation/switching, MR preparation, and sync queue handling.</step>
|
package/_tiqora/agents/pm.md
CHANGED
|
@@ -12,9 +12,9 @@ You must fully embody this agent persona and follow activation rules exactly.
|
|
|
12
12
|
<step n="2">Load project config from {project-root}/.tiqora.yaml (required).</step>
|
|
13
13
|
<step n="3">Load profile config from ~/.tiqora/config.yaml when available (optional).</step>
|
|
14
14
|
<step n="4">Merge effective config as profile (base) + project (override).</step>
|
|
15
|
-
<step n="5">Apply defaults when missing: user_name=Developer, idle_threshold_minutes=15, communication_language=
|
|
15
|
+
<step n="5">Apply defaults when missing: user_name=Developer, idle_threshold_minutes=15, communication_language=Français, document_language=English.</step>
|
|
16
16
|
<step n="6">Validate required project keys: pm_tool, git_host, branch_pattern. If missing, halt with a blocking error.</step>
|
|
17
|
-
<step n="7">Communicate in communication_language. Generate
|
|
17
|
+
<step n="7">Communicate in communication_language. Generate PM documents in document_language. Keep internal artifacts in English.</step>
|
|
18
18
|
<step n="8">Anchor decisions in user value, measurable outcomes, and scope boundaries.</step>
|
|
19
19
|
<step n="9">When a menu item has workflow="path/to/workflow.yaml": always load {project-root}/_tiqora/core/tasks/workflow.xml, pass workflow-config, then execute all steps in order. If the workflow path does not exist, clearly report it is not implemented yet.</step>
|
|
20
20
|
<step n="10">Apply operational reflexes for product delivery: MCP ticket creation/update, branch naming alignment, MR acceptance quality, and sync fallback.</step>
|
package/_tiqora/agents/sm.md
CHANGED
|
@@ -12,9 +12,9 @@ You must fully embody this agent persona and follow activation rules exactly.
|
|
|
12
12
|
<step n="2">Load project config from {project-root}/.tiqora.yaml (required).</step>
|
|
13
13
|
<step n="3">Load profile config from ~/.tiqora/config.yaml when available (optional).</step>
|
|
14
14
|
<step n="4">Merge effective config as profile (base) + project (override).</step>
|
|
15
|
-
<step n="5">Apply defaults when missing: user_name=Developer, idle_threshold_minutes=15, communication_language=
|
|
15
|
+
<step n="5">Apply defaults when missing: user_name=Developer, idle_threshold_minutes=15, communication_language=Français, document_language=English.</step>
|
|
16
16
|
<step n="6">Validate required project keys: pm_tool, git_host, branch_pattern. If missing, halt with a blocking error.</step>
|
|
17
|
-
<step n="7">Communicate in communication_language. Keep
|
|
17
|
+
<step n="7">Communicate in communication_language. Generate PM documents in document_language. Keep internal artifacts in English.</step>
|
|
18
18
|
<step n="8">Do not implement code directly. Route development work to /tiq:workflow:dev-story.</step>
|
|
19
19
|
<step n="9">When a menu item has workflow="path/to/workflow.yaml": always load {project-root}/_tiqora/core/tasks/workflow.xml, pass workflow-config, then execute all steps in order. If the workflow path does not exist, clearly report it is not implemented yet.</step>
|
|
20
20
|
<step n="10">Apply operational reflexes for flow control: MCP ticket hygiene, branch policy enforcement, MR readiness gate, and sync queue visibility.</step>
|
|
@@ -70,10 +70,12 @@ validation-criticality: "HIGH"
|
|
|
70
70
|
- [ ] Includes all discussion details (problem, outcome, ACs, scope, etc).
|
|
71
71
|
- [ ] Includes metadata (pm_tool, git_host, document_language, created_at).
|
|
72
72
|
|
|
73
|
-
## 9) Communication
|
|
73
|
+
## 9) Communication and Languages
|
|
74
74
|
|
|
75
|
-
- [ ] Conversation in `communication_language` (
|
|
76
|
-
- [ ] Story
|
|
75
|
+
- [ ] Conversation with user in `communication_language` (from config).
|
|
76
|
+
- [ ] Story content (Jira ticket, descriptions, comments) in `document_language`.
|
|
77
|
+
- [ ] Internal JSON artifacts (.tiqora/ files) in ENGLISH (agent performance).
|
|
78
|
+
- [ ] Commits in ENGLISH (dev standard).
|
|
77
79
|
- [ ] Clear next steps offered (dev-story, view, etc).
|
|
78
80
|
|
|
79
81
|
## Final Result
|
|
@@ -2,8 +2,9 @@
|
|
|
2
2
|
<critical>The workflow execution engine is governed by: {project-root}/_tiqora/core/tasks/workflow.xml</critical>
|
|
3
3
|
<critical>You MUST have already loaded and processed: {installed_path}/workflow.yaml</critical>
|
|
4
4
|
<critical>YOU MUST ALWAYS SPEAK OUTPUT in the configured communication_language resolved from merged tiqora config.</critical>
|
|
5
|
-
<critical>
|
|
6
|
-
<critical>
|
|
5
|
+
<critical>Generate all PM-facing content (Jira ticket, descriptions, comments) in {{document_language}}.</critical>
|
|
6
|
+
<critical>Keep internal data files (.tiqora/ runs, JSON artifacts, field keys) in ENGLISH for agent performance.</critical>
|
|
7
|
+
<critical>Commits are ALWAYS in ENGLISH (dev standard). This is non-negotiable.</critical>
|
|
7
8
|
<critical>Execute ALL steps in exact order; do NOT skip steps.</critical>
|
|
8
9
|
|
|
9
10
|
<step n="1" goal="Load configuration">
|
|
@@ -88,7 +89,7 @@ Tell me about what you want to build or fix. What's the idea?</ask>
|
|
|
88
89
|
- Make it clear and searchable
|
|
89
90
|
</action>
|
|
90
91
|
|
|
91
|
-
<action>Generate story description
|
|
92
|
+
<action>Generate story description in {{document_language}} as a clean summary of our conversation:
|
|
92
93
|
"## Problem Statement
|
|
93
94
|
|
|
94
95
|
{{problem_statement}}
|
|
@@ -168,37 +169,71 @@ Choose:
|
|
|
168
169
|
</step>
|
|
169
170
|
|
|
170
171
|
<step n="7" goal="Create story in PM tool">
|
|
171
|
-
<critical>Use PM MCP to create the story in Jira
|
|
172
|
+
<critical>Use PM MCP to create the story in Jira with the info we discussed. Be explicit about MCP operations.</critical>
|
|
173
|
+
|
|
174
|
+
<check if="pm_tool is none">
|
|
175
|
+
<action>Skip MCP creation (pm_tool is "none").</action>
|
|
176
|
+
<action>Ensure directory exists: {story_artifact_dir}.</action>
|
|
177
|
+
<action>Persist story artifact locally to {created_story_file} (JSON) with all the details from our conversation.</action>
|
|
178
|
+
<output>[WORKFLOW] ⚠ Story saved locally (no PM tool configured)
|
|
179
|
+
Artifact: {created_story_file}
|
|
180
|
+
</output>
|
|
181
|
+
<action>GOTO step 8</action>
|
|
182
|
+
</check>
|
|
172
183
|
|
|
173
184
|
<action if="pm_tool is not none">
|
|
174
|
-
|
|
175
|
-
-
|
|
176
|
-
-
|
|
177
|
-
-
|
|
185
|
+
Create issue in Jira via PM MCP connector:
|
|
186
|
+
- Action: Create new issue
|
|
187
|
+
- Project Key: {jira.project_key}
|
|
188
|
+
- Issue Type: "Story"
|
|
189
|
+
- Summary: {{story_title}}
|
|
190
|
+
- Description: {{story_description}} (formatted with all sections from our discussion)
|
|
178
191
|
- Priority: {{priority}}
|
|
179
|
-
-
|
|
192
|
+
- Additional fields: assignee (unassigned for now), labels (use pm_tool if needed)
|
|
180
193
|
</action>
|
|
181
194
|
|
|
182
|
-
<check if="
|
|
183
|
-
<action>Capture returned
|
|
195
|
+
<check if="MCP Jira create issue succeeds">
|
|
196
|
+
<action>Capture returned issue key/ID as {{ticketId}} (e.g., "EX-123").</action>
|
|
184
197
|
<action>Ensure directory exists: {story_artifact_dir}.</action>
|
|
185
|
-
<action>Persist story artifact to {created_story_file} (JSON) with
|
|
198
|
+
<action>Persist story artifact to {created_story_file} (JSON) with:
|
|
199
|
+
- All conversation details
|
|
200
|
+
- {{ticketId}} (reference to created Jira issue)
|
|
201
|
+
- jira_url (link to the issue in Jira)
|
|
202
|
+
- created_at timestamp
|
|
203
|
+
- status: "created_in_jira"
|
|
204
|
+
</action>
|
|
205
|
+
<action if="pm_tool is not none">Post creation comment to Jira issue in {{document_language}}:
|
|
206
|
+
"✓ Story created via Tiqora create-story workflow
|
|
207
|
+
|
|
208
|
+
Ready for:
|
|
209
|
+
1. PM challenge gate (run /tiq:workflow:dev-story {{ticketId}})
|
|
210
|
+
2. Dev implementation (challenge + code)
|
|
211
|
+
|
|
212
|
+
Artifact: {created_story_file}"
|
|
213
|
+
</action>
|
|
186
214
|
<output>[WORKFLOW] ✓ Story created in {{pm_tool}}
|
|
187
|
-
|
|
215
|
+
Key: {{ticketId}}
|
|
188
216
|
Artifact: {created_story_file}
|
|
189
217
|
</output>
|
|
190
218
|
</check>
|
|
191
219
|
|
|
192
|
-
<check if="
|
|
220
|
+
<check if="MCP Jira create issue fails">
|
|
193
221
|
<ask>Couldn't create the story in {{pm_tool}}. Want to:
|
|
194
222
|
(retry) Try again?
|
|
195
|
-
(queue) Save locally and retry
|
|
223
|
+
(queue) Save locally and queue for retry?
|
|
196
224
|
(skip) Just keep it locally for now?</ask>
|
|
197
225
|
|
|
198
226
|
<check if="user chooses queue">
|
|
199
227
|
<action>Persist story locally with status = "pending_sync".</action>
|
|
200
|
-
<action>Queue retry in .tiqora/sync/queue.json
|
|
201
|
-
|
|
228
|
+
<action>Queue retry in .tiqora/sync/queue.json with:
|
|
229
|
+
- story data: title, description, priority
|
|
230
|
+
- action: "create_jira_issue"
|
|
231
|
+
- project_key: {jira.project_key}
|
|
232
|
+
- retry_count: 0
|
|
233
|
+
</action>
|
|
234
|
+
<action>Ensure directory exists: {story_artifact_dir}.</action>
|
|
235
|
+
<action>Persist story artifact to {created_story_file} with status = "pending_sync".</action>
|
|
236
|
+
<output>⚠ Story saved locally, will try to create in {{pm_tool}} later via sync queue.</output>
|
|
202
237
|
</check>
|
|
203
238
|
|
|
204
239
|
<check if="user chooses retry">
|
|
@@ -206,8 +241,9 @@ Choose:
|
|
|
206
241
|
</check>
|
|
207
242
|
|
|
208
243
|
<check if="user chooses skip">
|
|
209
|
-
<action>
|
|
210
|
-
<
|
|
244
|
+
<action>Ensure directory exists: {story_artifact_dir}.</action>
|
|
245
|
+
<action>Persist story locally (not created in PM tool yet) to {created_story_file} with status = "draft".</action>
|
|
246
|
+
<output>⚠ Story saved locally. Run `tiqora sync` later to create in {{pm_tool}}, or create manually.</output>
|
|
211
247
|
</check>
|
|
212
248
|
</check>
|
|
213
249
|
</step>
|
|
@@ -94,8 +94,10 @@ validation-criticality: "HIGHEST"
|
|
|
94
94
|
## 10) Communication and Languages
|
|
95
95
|
|
|
96
96
|
- [ ] User-facing communication in `communication_language` (from config).
|
|
97
|
-
- [ ] Technical artifacts (challenge, implementation) in ENGLISH for
|
|
98
|
-
- [ ]
|
|
97
|
+
- [ ] Technical agent artifacts (challenge.md, implementation notes) in ENGLISH for agent performance.
|
|
98
|
+
- [ ] PM-facing content (Jira comments, MR Report) in `document_language`.
|
|
99
|
+
- [ ] Internal data files (.tiqora/ runs, JSON) in ENGLISH (agent performance).
|
|
100
|
+
- [ ] Commits in ENGLISH (dev standard).
|
|
99
101
|
- [ ] Output concise; no unnecessary internal execution noise.
|
|
100
102
|
|
|
101
103
|
## 11) Final Artifact Structure
|
|
@@ -2,8 +2,9 @@
|
|
|
2
2
|
<critical>The workflow execution engine is governed by: {project-root}/_tiqora/core/tasks/workflow.xml</critical>
|
|
3
3
|
<critical>You MUST have already loaded and processed: {installed_path}/workflow.yaml</critical>
|
|
4
4
|
<critical>YOU MUST ALWAYS SPEAK OUTPUT in the configured communication_language resolved from merged tiqora config.</critical>
|
|
5
|
-
<critical>Generate technical artifacts (challenge, implementation, validation) in ENGLISH for
|
|
6
|
-
<critical>Generate
|
|
5
|
+
<critical>Generate technical agent artifacts (challenge.md, implementation notes, validation) in ENGLISH for agent performance.</critical>
|
|
6
|
+
<critical>Generate all PM-facing content (Jira comments, MR Report) in {{document_language}}.</critical>
|
|
7
|
+
<critical>Commits are ALWAYS in ENGLISH (dev standard). This is non-negotiable.</critical>
|
|
7
8
|
<critical>Execute ALL steps in exact order; do NOT skip steps.</critical>
|
|
8
9
|
<critical>Do not report "completed" until all implementation, validation, and PM sync activities are truly finished.</critical>
|
|
9
10
|
|
|
@@ -95,7 +96,7 @@
|
|
|
95
96
|
</check>
|
|
96
97
|
|
|
97
98
|
<check if="ticket is clear and challenge passes">
|
|
98
|
-
<action if="pm_tool is not none and ticket was retrieved">Post challenge summary comment on ticket
|
|
99
|
+
<action if="pm_tool is not none and ticket was retrieved">Post challenge summary comment on ticket in {{document_language}}:
|
|
99
100
|
"✓ Challenge Gate PASSED
|
|
100
101
|
- Scope: [1-2 sentences on what will be built]
|
|
101
102
|
- Approach: [1-2 sentences on technical direction]
|
|
@@ -263,7 +264,7 @@
|
|
|
263
264
|
|
|
264
265
|
<!-- STEP 9.4: Push Final Jira Sync -->
|
|
265
266
|
<action if="pm_tool is not none and ticket was retrieved">
|
|
266
|
-
Add final completion comment to ticket
|
|
267
|
+
Add final completion comment to ticket in {{document_language}}:
|
|
267
268
|
"✓ IMPLEMENTATION COMPLETE
|
|
268
269
|
|
|
269
270
|
Branch: {{branchName}}
|
package/dist/index.cjs
CHANGED
|
@@ -663,8 +663,8 @@ var import_node_os2 = require("os");
|
|
|
663
663
|
var import_node_path4 = require("path");
|
|
664
664
|
var DEFAULT_IDLE_THRESHOLD_MINUTES = 15;
|
|
665
665
|
var DEFAULT_USER_NAME = "Developer";
|
|
666
|
-
var DEFAULT_COMMUNICATION_LANGUAGE = "
|
|
667
|
-
var DEFAULT_DOCUMENT_LANGUAGE = "
|
|
666
|
+
var DEFAULT_COMMUNICATION_LANGUAGE = "Fran\xE7ais";
|
|
667
|
+
var DEFAULT_DOCUMENT_LANGUAGE = "English";
|
|
668
668
|
var PROJECT_INIT_CONFIG_FILE = ".tiqora.yaml";
|
|
669
669
|
var GLOBAL_USER_CONFIG_FILE = ".tiqora/config.yaml";
|
|
670
670
|
function createProjectInitConfigYaml(answers) {
|
|
@@ -672,10 +672,15 @@ function createProjectInitConfigYaml(answers) {
|
|
|
672
672
|
if (branchPattern.length === 0) {
|
|
673
673
|
throw new Error("Branch pattern cannot be empty.");
|
|
674
674
|
}
|
|
675
|
+
const documentLanguage = normalizeLanguageValue(
|
|
676
|
+
answers.documentLanguage ?? DEFAULT_DOCUMENT_LANGUAGE,
|
|
677
|
+
"document_language"
|
|
678
|
+
);
|
|
675
679
|
const lines = [
|
|
676
680
|
`pm_tool: ${answers.pmTool}`,
|
|
677
681
|
`git_host: ${answers.gitHost}`,
|
|
678
|
-
`branch_pattern: '${escapeSingleQuotes(branchPattern)}'
|
|
682
|
+
`branch_pattern: '${escapeSingleQuotes(branchPattern)}'`,
|
|
683
|
+
`document_language: '${escapeSingleQuotes(documentLanguage)}'`
|
|
679
684
|
];
|
|
680
685
|
if (answers.pmTool === "jira") {
|
|
681
686
|
const jira = answers.jira;
|
|
@@ -707,15 +712,10 @@ function createGlobalUserConfigYaml(answers) {
|
|
|
707
712
|
answers.communicationLanguage ?? DEFAULT_COMMUNICATION_LANGUAGE,
|
|
708
713
|
"communication_language"
|
|
709
714
|
);
|
|
710
|
-
const documentLanguage = normalizeLanguageValue(
|
|
711
|
-
answers.documentLanguage ?? DEFAULT_DOCUMENT_LANGUAGE,
|
|
712
|
-
"document_language"
|
|
713
|
-
);
|
|
714
715
|
return [
|
|
715
716
|
`user_name: '${escapeSingleQuotes(userName)}'`,
|
|
716
717
|
`idle_threshold_minutes: ${idleThresholdMinutes}`,
|
|
717
718
|
`communication_language: '${escapeSingleQuotes(communicationLanguage)}'`,
|
|
718
|
-
`document_language: '${escapeSingleQuotes(documentLanguage)}'`,
|
|
719
719
|
""
|
|
720
720
|
].join("\n");
|
|
721
721
|
}
|
|
@@ -1180,7 +1180,7 @@ async function defaultCollectInitAnswers(context) {
|
|
|
1180
1180
|
}
|
|
1181
1181
|
const branchPatternAnswer = await (0, import_prompts3.text)({
|
|
1182
1182
|
message: "Branch naming pattern:",
|
|
1183
|
-
|
|
1183
|
+
initialValue: context.suggestedBranchPattern,
|
|
1184
1184
|
placeholder: "feature/*",
|
|
1185
1185
|
validate(value) {
|
|
1186
1186
|
if (value.trim().length === 0) {
|
|
@@ -1215,9 +1215,8 @@ async function defaultCollectInitAnswers(context) {
|
|
|
1215
1215
|
return null;
|
|
1216
1216
|
}
|
|
1217
1217
|
const communicationLanguageAnswer = await (0, import_prompts3.text)({
|
|
1218
|
-
message: "Agent response language:",
|
|
1219
|
-
|
|
1220
|
-
placeholder: "fr",
|
|
1218
|
+
message: "Agent response language (e.g. Fran\xE7ais, English, Espa\xF1ol):",
|
|
1219
|
+
initialValue: context.existingConfig?.communicationLanguage ?? DEFAULT_COMMUNICATION_LANGUAGE,
|
|
1221
1220
|
validate(value) {
|
|
1222
1221
|
if (value.trim().length === 0) {
|
|
1223
1222
|
return "Language cannot be empty.";
|
|
@@ -1230,9 +1229,8 @@ async function defaultCollectInitAnswers(context) {
|
|
|
1230
1229
|
return null;
|
|
1231
1230
|
}
|
|
1232
1231
|
const documentLanguageAnswer = await (0, import_prompts3.text)({
|
|
1233
|
-
message: "Document output language:",
|
|
1234
|
-
|
|
1235
|
-
placeholder: "fr",
|
|
1232
|
+
message: "Document output language (e.g. Fran\xE7ais, English, Espa\xF1ol):",
|
|
1233
|
+
initialValue: context.existingConfig?.documentLanguage ?? DEFAULT_DOCUMENT_LANGUAGE,
|
|
1236
1234
|
validate(value) {
|
|
1237
1235
|
if (value.trim().length === 0) {
|
|
1238
1236
|
return "Language cannot be empty.";
|
|
@@ -1299,8 +1297,8 @@ var PROJECT_CONFIG_FILE = ".tiqora.yaml";
|
|
|
1299
1297
|
var GLOBAL_CONFIG_FILE = ".tiqora/config.yaml";
|
|
1300
1298
|
var MISSING_CONFIG_ERROR_MESSAGE = "\u2717 No .tiqora.yaml found. Run npx tiqora init first.";
|
|
1301
1299
|
var DEFAULT_USER_NAME2 = "Developer";
|
|
1302
|
-
var DEFAULT_COMMUNICATION_LANGUAGE2 = "
|
|
1303
|
-
var DEFAULT_DOCUMENT_LANGUAGE2 = "
|
|
1300
|
+
var DEFAULT_COMMUNICATION_LANGUAGE2 = "Fran\xE7ais";
|
|
1301
|
+
var DEFAULT_DOCUMENT_LANGUAGE2 = "English";
|
|
1304
1302
|
var REQUIRED_CONFIG_KEYS = [
|
|
1305
1303
|
"pm_tool",
|
|
1306
1304
|
"git_host",
|
package/dist/index.mjs
CHANGED
|
@@ -671,8 +671,8 @@ import { homedir as homedir2 } from "os";
|
|
|
671
671
|
import { resolve as resolve4 } from "path";
|
|
672
672
|
var DEFAULT_IDLE_THRESHOLD_MINUTES = 15;
|
|
673
673
|
var DEFAULT_USER_NAME = "Developer";
|
|
674
|
-
var DEFAULT_COMMUNICATION_LANGUAGE = "
|
|
675
|
-
var DEFAULT_DOCUMENT_LANGUAGE = "
|
|
674
|
+
var DEFAULT_COMMUNICATION_LANGUAGE = "Fran\xE7ais";
|
|
675
|
+
var DEFAULT_DOCUMENT_LANGUAGE = "English";
|
|
676
676
|
var PROJECT_INIT_CONFIG_FILE = ".tiqora.yaml";
|
|
677
677
|
var GLOBAL_USER_CONFIG_FILE = ".tiqora/config.yaml";
|
|
678
678
|
function createProjectInitConfigYaml(answers) {
|
|
@@ -680,10 +680,15 @@ function createProjectInitConfigYaml(answers) {
|
|
|
680
680
|
if (branchPattern.length === 0) {
|
|
681
681
|
throw new Error("Branch pattern cannot be empty.");
|
|
682
682
|
}
|
|
683
|
+
const documentLanguage = normalizeLanguageValue(
|
|
684
|
+
answers.documentLanguage ?? DEFAULT_DOCUMENT_LANGUAGE,
|
|
685
|
+
"document_language"
|
|
686
|
+
);
|
|
683
687
|
const lines = [
|
|
684
688
|
`pm_tool: ${answers.pmTool}`,
|
|
685
689
|
`git_host: ${answers.gitHost}`,
|
|
686
|
-
`branch_pattern: '${escapeSingleQuotes(branchPattern)}'
|
|
690
|
+
`branch_pattern: '${escapeSingleQuotes(branchPattern)}'`,
|
|
691
|
+
`document_language: '${escapeSingleQuotes(documentLanguage)}'`
|
|
687
692
|
];
|
|
688
693
|
if (answers.pmTool === "jira") {
|
|
689
694
|
const jira = answers.jira;
|
|
@@ -715,15 +720,10 @@ function createGlobalUserConfigYaml(answers) {
|
|
|
715
720
|
answers.communicationLanguage ?? DEFAULT_COMMUNICATION_LANGUAGE,
|
|
716
721
|
"communication_language"
|
|
717
722
|
);
|
|
718
|
-
const documentLanguage = normalizeLanguageValue(
|
|
719
|
-
answers.documentLanguage ?? DEFAULT_DOCUMENT_LANGUAGE,
|
|
720
|
-
"document_language"
|
|
721
|
-
);
|
|
722
723
|
return [
|
|
723
724
|
`user_name: '${escapeSingleQuotes(userName)}'`,
|
|
724
725
|
`idle_threshold_minutes: ${idleThresholdMinutes}`,
|
|
725
726
|
`communication_language: '${escapeSingleQuotes(communicationLanguage)}'`,
|
|
726
|
-
`document_language: '${escapeSingleQuotes(documentLanguage)}'`,
|
|
727
727
|
""
|
|
728
728
|
].join("\n");
|
|
729
729
|
}
|
|
@@ -1194,7 +1194,7 @@ async function defaultCollectInitAnswers(context) {
|
|
|
1194
1194
|
}
|
|
1195
1195
|
const branchPatternAnswer = await text2({
|
|
1196
1196
|
message: "Branch naming pattern:",
|
|
1197
|
-
|
|
1197
|
+
initialValue: context.suggestedBranchPattern,
|
|
1198
1198
|
placeholder: "feature/*",
|
|
1199
1199
|
validate(value) {
|
|
1200
1200
|
if (value.trim().length === 0) {
|
|
@@ -1229,9 +1229,8 @@ async function defaultCollectInitAnswers(context) {
|
|
|
1229
1229
|
return null;
|
|
1230
1230
|
}
|
|
1231
1231
|
const communicationLanguageAnswer = await text2({
|
|
1232
|
-
message: "Agent response language:",
|
|
1233
|
-
|
|
1234
|
-
placeholder: "fr",
|
|
1232
|
+
message: "Agent response language (e.g. Fran\xE7ais, English, Espa\xF1ol):",
|
|
1233
|
+
initialValue: context.existingConfig?.communicationLanguage ?? DEFAULT_COMMUNICATION_LANGUAGE,
|
|
1235
1234
|
validate(value) {
|
|
1236
1235
|
if (value.trim().length === 0) {
|
|
1237
1236
|
return "Language cannot be empty.";
|
|
@@ -1244,9 +1243,8 @@ async function defaultCollectInitAnswers(context) {
|
|
|
1244
1243
|
return null;
|
|
1245
1244
|
}
|
|
1246
1245
|
const documentLanguageAnswer = await text2({
|
|
1247
|
-
message: "Document output language:",
|
|
1248
|
-
|
|
1249
|
-
placeholder: "fr",
|
|
1246
|
+
message: "Document output language (e.g. Fran\xE7ais, English, Espa\xF1ol):",
|
|
1247
|
+
initialValue: context.existingConfig?.documentLanguage ?? DEFAULT_DOCUMENT_LANGUAGE,
|
|
1250
1248
|
validate(value) {
|
|
1251
1249
|
if (value.trim().length === 0) {
|
|
1252
1250
|
return "Language cannot be empty.";
|
|
@@ -1313,8 +1311,8 @@ var PROJECT_CONFIG_FILE = ".tiqora.yaml";
|
|
|
1313
1311
|
var GLOBAL_CONFIG_FILE = ".tiqora/config.yaml";
|
|
1314
1312
|
var MISSING_CONFIG_ERROR_MESSAGE = "\u2717 No .tiqora.yaml found. Run npx tiqora init first.";
|
|
1315
1313
|
var DEFAULT_USER_NAME2 = "Developer";
|
|
1316
|
-
var DEFAULT_COMMUNICATION_LANGUAGE2 = "
|
|
1317
|
-
var DEFAULT_DOCUMENT_LANGUAGE2 = "
|
|
1314
|
+
var DEFAULT_COMMUNICATION_LANGUAGE2 = "Fran\xE7ais";
|
|
1315
|
+
var DEFAULT_DOCUMENT_LANGUAGE2 = "English";
|
|
1318
1316
|
var REQUIRED_CONFIG_KEYS = [
|
|
1319
1317
|
"pm_tool",
|
|
1320
1318
|
"git_host",
|
package/package.json
CHANGED