engineering-memory 1.11.20 → 1.11.22
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/bin/engineering-memory.mjs +14 -24
- package/install/localization.generated.mjs +18 -0
- package/package.json +1 -1
- package/runtime/build.json +1 -1
- package/runtime/dist/src/auth/browser-auth.js +15 -4
- package/runtime/dist/src/config.js +1 -0
- package/runtime/dist/src/git/git-inspector.js +10 -0
- package/runtime/dist/src/localization/catalogue.generated.js +786 -0
- package/runtime/dist/src/mcp/delivery-tools.js +15 -48
- package/runtime/dist/src/mcp/onboarding-tools.js +289 -618
- package/runtime/dist/src/mcp/questionnaire-tools.js +23 -26
- package/runtime/dist/src/mcp/status-meaning-tools.js +12 -86
- package/runtime/dist/src/mcp/status-remap-tools.js +252 -0
- package/runtime/dist/src/mcp/tool-annotations.js +1 -0
- package/runtime/dist/src/mcp/tool-definitions.js +33 -55
- package/runtime/dist/src/mcp/workflow-tools.js +17 -108
- package/runtime/dist/src/mcp/worktree-tools.js +168 -250
- package/runtime/dist/src/runtime/bridge-service.js +123 -94
- package/runtime/dist/src/runtime/create-bridge-service.js +4 -2
- package/runtime/dist/src/runtime/language-store.js +6 -0
- package/runtime/dist/src/runtime/release-notes.js +6 -6
- package/runtime/dist/src/runtime/release-report.js +30 -30
- package/runtime/dist/src/runtime/task-start.js +75 -73
- package/runtime/dist/src/runtime/texts.js +135 -0
- package/runtime/dist/src/runtime/worktree-pool.js +30 -5
- package/runtime/dist/src/runtime/worktree-preparation.js +3 -2
- package/runtime/dist/src/utilities/local-mutex.js +5 -2
- package/runtime/dist/src/utilities/process.js +7 -0
- package/skill/references/lifecycle.md +22 -4
- package/skill/references/project-onboarding.md +5 -2
- package/skill/references/questionnaires.md +3 -1
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
import * as z from 'zod/v4';
|
|
2
2
|
import { languageTag } from '../runtime/questionnaire-store.js';
|
|
3
|
+
import { texts } from '../runtime/texts.js';
|
|
3
4
|
import { sha256, stableStringify } from '../utilities/hash.js';
|
|
4
5
|
import { answerChoice, answerData, askQuestionnaire } from './questionnaire-tools.js';
|
|
5
|
-
const option = z.
|
|
6
|
+
const option = z.strictObject({
|
|
7
|
+
label: z.string().trim().min(1).max(100),
|
|
8
|
+
description: z.string().trim().min(1).max(240),
|
|
9
|
+
});
|
|
6
10
|
const copySchema = z.strictObject({
|
|
7
11
|
message: z.string().trim().min(1).max(240),
|
|
8
12
|
context: z.string().trim().min(1).max(500),
|
|
@@ -18,47 +22,6 @@ const copySchema = z.strictObject({
|
|
|
18
22
|
baseTitle: z.string().trim().min(1).max(100),
|
|
19
23
|
baseWrite: option,
|
|
20
24
|
});
|
|
21
|
-
const copies = {
|
|
22
|
-
tr: {
|
|
23
|
-
message: 'Değişiklikleri nasıl teslim edelim?',
|
|
24
|
-
context: 'Görev doğrulandı ve kapandı. Bu seçim kodun nereye gönderileceğini belirler; hafıza değişikliklerini yayımlama onayı bunun yerine geçmez.',
|
|
25
|
-
example: 'Commit yerel dalda kalır. PR/MR seçersen değişiklikler uzak dala gönderilir ve ekip incelemesine açılır.',
|
|
26
|
-
destination: 'Dal / uzak depo',
|
|
27
|
-
commit: ['Yalnızca commit', 'Değişiklikleri bu yerel dalda kaydet.'],
|
|
28
|
-
commit_push: ['Commit ve push', 'Bu dalı belirtilen uzak depoya gönder.'],
|
|
29
|
-
commit_push_draft_pr: [
|
|
30
|
-
'Commit, push ve taslak PR/MR',
|
|
31
|
-
'Dalı gönder; henüz incelemeye hazır olmayan bir taslak aç.',
|
|
32
|
-
],
|
|
33
|
-
commit_push_pr: ['Commit, push ve PR/MR', 'Dalı gönder ve incelemeye hazır bir istek aç.'],
|
|
34
|
-
defer: ['Şimdilik beklet', 'Görev kapalı kalır; dosyalar korunur, Git teslimi yapılmaz.'],
|
|
35
|
-
baseMessage: 'PR/MR hangi dala açılsın?',
|
|
36
|
-
baseContext: 'Hedef dalı açıkça belirt. Depodaki varsayılan dalı kendiliğimizden seçmeyiz.',
|
|
37
|
-
baseTitle: 'Hedef dal',
|
|
38
|
-
baseWrite: ['Bu dala aç', 'Yazdığın dalı hedef al; birleştirme ayrı bir karardır.'],
|
|
39
|
-
},
|
|
40
|
-
en: {
|
|
41
|
-
message: 'How should we deliver these changes?',
|
|
42
|
-
context: 'The task is verified and closed. This choice determines where the code goes; approval to publish memory does not authorize Git delivery.',
|
|
43
|
-
example: 'Commit keeps work on the local branch. PR/MR pushes that branch and opens it for team review.',
|
|
44
|
-
destination: 'Branch / remote repository',
|
|
45
|
-
commit: ['Commit only', 'Save the changes on this local branch.'],
|
|
46
|
-
commit_push: ['Commit and push', 'Push this branch to the named remote repository.'],
|
|
47
|
-
commit_push_draft_pr: [
|
|
48
|
-
'Commit, push and draft PR/MR',
|
|
49
|
-
'Push the branch and open a draft that is not ready for review.',
|
|
50
|
-
],
|
|
51
|
-
commit_push_pr: [
|
|
52
|
-
'Commit, push and PR/MR',
|
|
53
|
-
'Push the branch and open a request ready for review.',
|
|
54
|
-
],
|
|
55
|
-
defer: ['Keep it for now', 'Keep the task closed and preserve its files without Git delivery.'],
|
|
56
|
-
baseMessage: 'Which branch should the PR/MR target?',
|
|
57
|
-
baseContext: 'Specify the target branch explicitly. The remote default is not selected automatically.',
|
|
58
|
-
baseTitle: 'Target branch',
|
|
59
|
-
baseWrite: ['Use this branch', 'Target the branch you enter; merging is a separate decision.'],
|
|
60
|
-
},
|
|
61
|
-
};
|
|
62
25
|
const closedSchema = z.object({
|
|
63
26
|
closed: z.literal(true),
|
|
64
27
|
taskVersion: z.number().int().positive(),
|
|
@@ -79,7 +42,7 @@ const closedSchema = z.object({
|
|
|
79
42
|
});
|
|
80
43
|
export function registerDeliveryTools(server, service) {
|
|
81
44
|
server.registerTool('task.close', {
|
|
82
|
-
description: 'Close the verified task, then open its durable mode-governed Git delivery selector in the same call. Memory publication is separate. Cancellation/feedback leave delivery pending; retry identical input to resume. PR/MR is one review-request concept, not an instruction to merge. No Git action is performed by this tool. Read-only tasks need no delivery.
|
|
45
|
+
description: 'Close the verified task, then open its durable mode-governed Git delivery selector in the same call. Memory publication is separate. Cancellation/feedback leave delivery pending; retry identical input to resume. PR/MR is one review-request concept, not an instruction to merge. No Git action is performed by this tool. Read-only tasks need no delivery. Supply complete copy when the product text catalogue lacks the conversation language. If the user already explicitly chose Git delivery in their own message, deliveryInstruction preserves that choice with its exact relevant excerpt; it is an agent-reported instruction, never a native answer or a substitute for missing user consent. Do not use it for agent decisions or memory-publication approval.',
|
|
83
46
|
inputSchema: z.object({
|
|
84
47
|
repoRoot: z.string().min(1).optional(),
|
|
85
48
|
taskId: z.string().min(1),
|
|
@@ -103,8 +66,8 @@ export function registerDeliveryTools(server, service) {
|
|
|
103
66
|
}),
|
|
104
67
|
}, async (input, context) => {
|
|
105
68
|
const language = await service.language(input.language);
|
|
106
|
-
const
|
|
107
|
-
|
|
69
|
+
const copy = input.copy ??
|
|
70
|
+
(language ? copySchema.safeParse(texts('delivery', language)).data : undefined);
|
|
108
71
|
if (!copy)
|
|
109
72
|
return output({
|
|
110
73
|
ok: false,
|
|
@@ -191,7 +154,11 @@ export function registerDeliveryTools(server, service) {
|
|
|
191
154
|
destination.branch +
|
|
192
155
|
(canPush ? ' → ' + destination.remote + ' (' + destination.pushUrl + ')' : ''),
|
|
193
156
|
example: copy.example,
|
|
194
|
-
options: ids.map((id) => ({
|
|
157
|
+
options: ids.map((id) => ({
|
|
158
|
+
id,
|
|
159
|
+
label: copy[id].label,
|
|
160
|
+
description: copy[id].description,
|
|
161
|
+
})),
|
|
195
162
|
binding,
|
|
196
163
|
}, context, [], owner);
|
|
197
164
|
const choice = instruction?.choice ?? (form ? answerChoice(form) : null);
|
|
@@ -232,8 +199,8 @@ export function registerDeliveryTools(server, service) {
|
|
|
232
199
|
context: copy.baseContext,
|
|
233
200
|
example: copy.example,
|
|
234
201
|
options: [
|
|
235
|
-
{ id: 'write', label: copy.baseWrite
|
|
236
|
-
{ id: 'defer', label: copy.defer
|
|
202
|
+
{ id: 'write', label: copy.baseWrite.label, description: copy.baseWrite.description },
|
|
203
|
+
{ id: 'defer', label: copy.defer.label, description: copy.defer.description },
|
|
237
204
|
],
|
|
238
205
|
textField: { title: copy.baseTitle, maxLength: 240, requiredForChoice: 'write' },
|
|
239
206
|
binding: { ...binding, choice },
|