engineering-memory 1.11.30 → 1.11.31
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/package.json +1 -1
- package/runtime/build.json +1 -1
- package/runtime/dist/src/config.js +11 -0
- package/runtime/dist/src/localization/catalogue.generated.js +120 -0
- package/runtime/dist/src/mcp/jira-tools.js +876 -0
- package/runtime/dist/src/mcp/tool-annotations.js +6 -0
- package/runtime/dist/src/mcp/tool-definitions.js +8 -0
- package/runtime/dist/src/providers/jira-connect.js +182 -0
- package/runtime/dist/src/runtime/api-client.js +1 -0
- package/runtime/dist/src/runtime/bridge-service.js +84 -0
- package/runtime/dist/src/runtime/create-bridge-service.js +2 -0
- package/skill/references/lifecycle.md +21 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "engineering-memory",
|
|
3
|
-
"version": "1.11.
|
|
3
|
+
"version": "1.11.31",
|
|
4
4
|
"description": "Installs the Engineering Memory skill and its local MCP bridge. Sign in after installing; your organization and project are resolved from your account.",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"type": "module",
|
package/runtime/build.json
CHANGED
|
@@ -109,5 +109,16 @@ export const endpoints = {
|
|
|
109
109
|
liveStatusNotice: (projectId) => `/projects/${projectId}/live-status/notice`,
|
|
110
110
|
liveStatusNoticePresented: (projectId) => `/projects/${projectId}/live-status/notice/presented`,
|
|
111
111
|
liveStatusSharing: (organizationId) => `/organizations/${organizationId}/live-status/sharing`,
|
|
112
|
+
jiraStatus: (organizationId) => `/organizations/${organizationId}/jira`,
|
|
113
|
+
jiraConnect: (organizationId) => `/organizations/${organizationId}/jira/connect`,
|
|
114
|
+
jiraConnectComplete: (organizationId) => `/organizations/${organizationId}/jira/connect/complete`,
|
|
115
|
+
jiraConnectSite: (organizationId) => `/organizations/${organizationId}/jira/connect/site`,
|
|
116
|
+
jiraDisconnect: (organizationId, connectionId) => `/organizations/${organizationId}/jira/connections/${connectionId}/disconnect`,
|
|
117
|
+
jiraPeople: (organizationId, connectionId) => `/organizations/${organizationId}/jira/connections/${connectionId}/people`,
|
|
118
|
+
jiraPeopleDecisions: (organizationId, connectionId) => `/organizations/${organizationId}/jira/connections/${connectionId}/people/decisions`,
|
|
119
|
+
projectJira: (projectId) => `/projects/${projectId}/jira`,
|
|
120
|
+
projectJiraProjects: (projectId, connectionId) => `/projects/${projectId}/jira/connections/${connectionId}/projects`,
|
|
121
|
+
projectJiraLink: (projectId) => `/projects/${projectId}/jira/link`,
|
|
122
|
+
projectJiraUnlink: (projectId) => `/projects/${projectId}/jira/unlink`,
|
|
112
123
|
};
|
|
113
124
|
//# sourceMappingURL=config.js.map
|
|
@@ -109,6 +109,66 @@ export const bundledTexts = {
|
|
|
109
109
|
'inspection.why.adopt': 'The project enters memory for the first time. The inspection reads the code at that source and works out how the project behaves.',
|
|
110
110
|
'inspection.why.refresh': 'The inspection compares the records already in memory with the code at that source and works out what changed.',
|
|
111
111
|
'inspection.why.rework': 'The rework plan can only be written once the project as it stands today is read.',
|
|
112
|
+
'jira.again.ambiguous': 'More than one member is called {typed}. Who is {name} in Engineering Memory?',
|
|
113
|
+
'jira.again.context': 'Choose the member from the list, or type the part of their e-mail before @ again.',
|
|
114
|
+
'jira.again.example': 'Typing ayse.demir picks the member shown as ayse.demir.',
|
|
115
|
+
'jira.again.unknown': 'No member is called {typed}. Who is {name} in Engineering Memory?',
|
|
116
|
+
'jira.disconnect.context': 'The stored Atlassian access is deleted and every project linked through {site} is paused. Work items, stages and people matches stay; connecting the same site again restores them.',
|
|
117
|
+
'jira.disconnect.disconnect.description': 'The access is deleted and the linked projects are paused.',
|
|
118
|
+
'jira.disconnect.disconnect.label': 'Disconnect',
|
|
119
|
+
'jira.disconnect.example': 'After disconnecting, projects linked to {site} keep their work but no longer follow Jira until someone connects {site} again.',
|
|
120
|
+
'jira.disconnect.keep.description': 'Nothing changes.',
|
|
121
|
+
'jira.disconnect.keep.label': 'Keep connected',
|
|
122
|
+
'jira.disconnect.message': 'Disconnect {site} from Engineering Memory?',
|
|
123
|
+
'jira.linkProject.context': 'Linking makes the statuses of the Jira project the stages of this project: new ones are added, renamed ones are renamed, and ones Jira no longer has are archived. Stages that exist only in Engineering Memory stay, and no work moves. One Jira project can be linked to only one Engineering Memory project.',
|
|
124
|
+
'jira.linkProject.example': 'If you choose {key}, the statuses of {key}, such as To Do, In Progress and Done, become stages of {project}.',
|
|
125
|
+
'jira.linkProject.keyTitle': 'Jira project key',
|
|
126
|
+
'jira.linkProject.message': 'Which Jira project should {project} follow?',
|
|
127
|
+
'jira.linkProject.none.description': 'Nothing changes; you can link a project later.',
|
|
128
|
+
'jira.linkProject.none.label': 'Do not link now',
|
|
129
|
+
'jira.linkProject.option': 'Link {project} to {key} and adopt its statuses.',
|
|
130
|
+
'jira.linkProject.other.description': 'Type its key, such as KAN.',
|
|
131
|
+
'jira.linkProject.other.label': 'Another project',
|
|
132
|
+
'jira.linkSite.context': 'More than one Jira site is connected to this organization and you may use each of them. Choose the site first; its projects are listed next.',
|
|
133
|
+
'jira.linkSite.example': 'Choosing {site} lists the Jira projects of {site} in the next question.',
|
|
134
|
+
'jira.linkSite.message': 'Which Jira site holds the Jira project for {project}?',
|
|
135
|
+
'jira.people.context': 'Each question is one person who holds open issues in the linked Jira projects. Match them with their member in Engineering Memory so that their Jira work can be followed as theirs. Members are shown by the part of their e-mail before @. Nothing is matched without your answer.',
|
|
136
|
+
'jira.people.example': 'If you match Ayşe Demir in Jira with ayse.demir, the open Jira issues assigned to her are treated as the work of ayse.demir.',
|
|
137
|
+
'jira.people.handleTitle': 'Member (the part of the e-mail before @)',
|
|
138
|
+
'jira.people.match': 'Match with {handle}.',
|
|
139
|
+
'jira.people.message': 'Who is who in {site}? {count, plural, one {# person is} other {# people are}} not matched yet; this form asks about {shown}.',
|
|
140
|
+
'jira.people.none.description': "This person does not use Engineering Memory; their Jira issues are not followed as anyone's work.",
|
|
141
|
+
'jira.people.none.label': 'No one in Engineering Memory',
|
|
142
|
+
'jira.people.other.description': 'Type the part of their e-mail before @.',
|
|
143
|
+
'jira.people.other.label': 'Someone else',
|
|
144
|
+
'jira.people.person': 'Who is {name} in Engineering Memory?',
|
|
145
|
+
'jira.people.unnamed': 'Person {number} of this form',
|
|
146
|
+
'jira.replace.context': 'Replacing the link makes the statuses of {next} the stages of this project. Stages that came from {current} and do not exist in {next} are archived; work in them stays where it is until you move it.',
|
|
147
|
+
'jira.replace.example': 'If {current} has a Code Review status that {next} lacks, the Code Review stage is archived and its work waits for you to move it.',
|
|
148
|
+
'jira.replace.keep.description': 'Nothing changes.',
|
|
149
|
+
'jira.replace.keep.label': 'Keep {current}',
|
|
150
|
+
'jira.replace.message': '{project} already follows {current}. Link it to {next} instead?',
|
|
151
|
+
'jira.replace.replace.description': '{current} is no longer followed; the statuses of {next} are adopted.',
|
|
152
|
+
'jira.replace.replace.label': 'Link to {next}',
|
|
153
|
+
'jira.site.addressTitle': 'Jira site address',
|
|
154
|
+
'jira.site.context': 'The Atlassian account you approved can open more than one Jira site. One connection serves one site; you can connect another site later the same way.',
|
|
155
|
+
'jira.site.example': 'If you choose {site}, the Jira projects of {site} can be linked to Engineering Memory projects.',
|
|
156
|
+
'jira.site.message': 'Which Jira site should Engineering Memory connect to?',
|
|
157
|
+
'jira.site.other.description': 'Type its address, such as acme.atlassian.net.',
|
|
158
|
+
'jira.site.other.label': 'Another site',
|
|
159
|
+
'jira.unlink.context': 'The link is paused, not deleted: stages and work stay as they are, and linking the same Jira project again resumes it.',
|
|
160
|
+
'jira.unlink.example': 'After unlinking, {project} keeps its stages, and changes made in {current} are no longer followed.',
|
|
161
|
+
'jira.unlink.keep.description': 'Nothing changes.',
|
|
162
|
+
'jira.unlink.keep.label': 'Keep following',
|
|
163
|
+
'jira.unlink.message': 'Stop following {current} in {project}?',
|
|
164
|
+
'jira.unlink.unlink.description': 'The link is paused; nothing is deleted.',
|
|
165
|
+
'jira.unlink.unlink.label': 'Stop following',
|
|
166
|
+
'jiraConnect.cancelled': 'The Jira connection was cancelled and nothing was connected. You can close this tab.',
|
|
167
|
+
'jiraConnect.chooseSite': 'Atlassian gave access to more than one Jira site. Return to your chat to choose which one to connect.',
|
|
168
|
+
'jiraConnect.connected': '{site} is now connected to Engineering Memory. You can close this tab and return to your chat.',
|
|
169
|
+
'jiraConnect.failed': 'The Jira connection could not be finished. Return to your chat; the answer there says why.',
|
|
170
|
+
'jiraConnect.invalid': 'This link is no longer valid. Start the Jira connection again from your chat.',
|
|
171
|
+
'jiraConnect.title': 'Jira connection',
|
|
112
172
|
'liveStatusNotice.managers': "Engineering Memory now shows live task status. While you work on a task, the owners and maintainers of its project and the owners of your organization can see which task you are on, its stage, whether it is waiting for an answer, which AI tool runs it, when it last acted and whether its chat is still open. They never see your questions, answers, code, file names, branch names or chat. Finished tasks drop off after 24 hours. Platform support can also look for troubleshooting. Looking at other people's tasks is recorded in your organization's audit log.",
|
|
113
173
|
'liveStatusNotice.off': "In this organization live task status is visible only to the person doing the task: you see your own tasks and nobody else in your organization sees them. Platform support can look for troubleshooting, and that is recorded in your organization's audit log.",
|
|
114
174
|
'move.after': 'The old repository is kept in the project history. Teammates still working in it can finish their open tasks and start new ones from the new repository. The project can be moved again later.',
|
|
@@ -584,6 +644,66 @@ export const bundledTexts = {
|
|
|
584
644
|
'inspection.why.adopt': 'Proje ilk kez hafızaya alınıyor. İnceleme, bu kaynaktaki kodu okuyup projenin nasıl çalıştığını çıkarır.',
|
|
585
645
|
'inspection.why.refresh': 'İnceleme, hafızadaki kayıtları bu kaynaktaki kodla karşılaştırır ve neyin değiştiğini çıkarır.',
|
|
586
646
|
'inspection.why.rework': 'Yeniden yazım planının yazılabilmesi için önce projenin bugünkü hâli okunmalı.',
|
|
647
|
+
'jira.again.ambiguous': "{typed} adında birden fazla üye var. Jira'daki {name}, Engineering Memory'de kim?",
|
|
648
|
+
'jira.again.context': 'Üyeyi listeden seç ya da e-posta adresinin @ işaretinden önceki kısmını yeniden yaz.',
|
|
649
|
+
'jira.again.example': 'ayse.demir yazarsan ayse.demir olarak gösterilen üye seçilir.',
|
|
650
|
+
'jira.again.unknown': "{typed} adında bir üye yok. Jira'daki {name}, Engineering Memory'de kim?",
|
|
651
|
+
'jira.disconnect.context': 'Saklanan Atlassian erişimi silinir ve {site} üzerinden bağlanan bütün projeler duraklatılır. İşler, kolonlar ve kişi eşleştirmeleri kalır; aynı siteyi yeniden bağlarsan geri gelir.',
|
|
652
|
+
'jira.disconnect.disconnect.description': 'Erişim silinir, bağlı projeler duraklatılır.',
|
|
653
|
+
'jira.disconnect.disconnect.label': 'Bağlantıyı kaldır',
|
|
654
|
+
'jira.disconnect.example': "Bağlantıyı kaldırırsan {site} ile bağlı projeler işlerini korur, ama biri {site} sitesini yeniden bağlayana kadar Jira'yı takip etmez.",
|
|
655
|
+
'jira.disconnect.keep.description': 'Hiçbir şey değişmez.',
|
|
656
|
+
'jira.disconnect.keep.label': 'Bağlı kalsın',
|
|
657
|
+
'jira.disconnect.message': "{site} bağlantısı Engineering Memory'den kaldırılsın mı?",
|
|
658
|
+
'jira.linkProject.context': "Bağladığında Jira projesinin statüleri bu projenin kolonları olur: yeniler eklenir, adı değişenlerin adı güncellenir, Jira'da artık olmayanlar arşivlenir. Yalnızca Engineering Memory'de olan kolonlar kalır ve hiçbir iş yer değiştirmez. Bir Jira projesi yalnızca bir Engineering Memory projesine bağlanabilir.",
|
|
659
|
+
'jira.linkProject.example': '{key} projesini seçersen, {key} statüleri (örneğin To Do, In Progress, Done) {project} projesinin kolonları olur.',
|
|
660
|
+
'jira.linkProject.keyTitle': 'Jira proje anahtarı',
|
|
661
|
+
'jira.linkProject.message': '{project} hangi Jira projesini takip etsin?',
|
|
662
|
+
'jira.linkProject.none.description': 'Hiçbir şey değişmez; projeyi daha sonra bağlayabilirsin.',
|
|
663
|
+
'jira.linkProject.none.label': 'Şimdi bağlama',
|
|
664
|
+
'jira.linkProject.option': '{project} projesini {key} ile bağla ve statülerini al.',
|
|
665
|
+
'jira.linkProject.other.description': 'Anahtarını yaz, örneğin KAN.',
|
|
666
|
+
'jira.linkProject.other.label': 'Başka bir proje',
|
|
667
|
+
'jira.linkSite.context': 'Bu organizasyona birden fazla Jira sitesi bağlı ve hepsini kullanabiliyorsun. Önce siteyi seç; sonra o sitenin projeleri listelenir.',
|
|
668
|
+
'jira.linkSite.example': '{site} sitesini seçersen, sonraki soruda {site} içindeki Jira projeleri listelenir.',
|
|
669
|
+
'jira.linkSite.message': '{project} için Jira projesi hangi sitede?',
|
|
670
|
+
'jira.people.context': "Her soru, bağlı Jira projelerinde açık işi olan bir kişidir. Jira'daki işleri onun işi olarak takip edilebilsin diye onu Engineering Memory'deki üyesiyle eşleştir. Üyeler e-posta adreslerinin @ işaretinden önceki kısmıyla gösterilir. Senin cevabın olmadan hiçbir eşleştirme yapılmaz.",
|
|
671
|
+
'jira.people.example': "Jira'daki Ayşe Demir'i ayse.demir ile eşleştirirsen, Jira'da ona atanan açık işler ayse.demir'in işi sayılır.",
|
|
672
|
+
'jira.people.handleTitle': 'Üye (e-postanın @ işaretinden önceki kısmı)',
|
|
673
|
+
'jira.people.match': '{handle} ile eşleştir.',
|
|
674
|
+
'jira.people.message': '{site} içinde kim kimdir? Eşleşmemiş {count} kişi var; bu form {shown} kişiyi soruyor.',
|
|
675
|
+
'jira.people.none.description': 'Bu kişi Engineering Memory kullanmıyor; Jira işleri kimsenin işi olarak takip edilmez.',
|
|
676
|
+
'jira.people.none.label': "Engineering Memory'de yok",
|
|
677
|
+
'jira.people.other.description': 'E-posta adresinin @ işaretinden önceki kısmını yaz.',
|
|
678
|
+
'jira.people.other.label': 'Başka biri',
|
|
679
|
+
'jira.people.person': "Jira'daki {name}, Engineering Memory'de kim?",
|
|
680
|
+
'jira.people.unnamed': 'Bu formdaki {number}. kişi',
|
|
681
|
+
'jira.replace.context': 'Bağlantı değişirse {next} statüleri bu projenin kolonları olur. {current} projesinden gelip {next} içinde olmayan kolonlar arşivlenir; içlerindeki işler sen taşıyana kadar oldukları yerde kalır.',
|
|
682
|
+
'jira.replace.example': '{current} içinde Code Review statüsü varsa ve {next} içinde yoksa, Code Review kolonu arşivlenir ve içindeki işler taşınmayı bekler.',
|
|
683
|
+
'jira.replace.keep.description': 'Hiçbir şey değişmez.',
|
|
684
|
+
'jira.replace.keep.label': '{current} kalsın',
|
|
685
|
+
'jira.replace.message': '{project} şu anda {current} projesini takip ediyor. Bunun yerine {next} ile bağlansın mı?',
|
|
686
|
+
'jira.replace.replace.description': '{current} artık takip edilmez; {next} statüleri alınır.',
|
|
687
|
+
'jira.replace.replace.label': '{next} ile bağla',
|
|
688
|
+
'jira.site.addressTitle': 'Jira sitesinin adresi',
|
|
689
|
+
'jira.site.context': 'Onay verdiğin Atlassian hesabı birden fazla Jira sitesini açabiliyor. Her bağlantı tek bir siteye bağlanır; başka bir siteyi daha sonra aynı yolla bağlayabilirsin.',
|
|
690
|
+
'jira.site.example': '{site} sitesini seçersen, {site} içindeki Jira projeleri Engineering Memory projelerine bağlanabilir.',
|
|
691
|
+
'jira.site.message': 'Engineering Memory hangi Jira sitesine bağlansın?',
|
|
692
|
+
'jira.site.other.description': 'Adresini yaz, örneğin acme.atlassian.net.',
|
|
693
|
+
'jira.site.other.label': 'Başka bir site',
|
|
694
|
+
'jira.unlink.context': 'Bağlantı silinmez, duraklatılır: kolonlar ve işler olduğu gibi kalır; aynı Jira projesini yeniden bağlarsan kaldığı yerden devam eder.',
|
|
695
|
+
'jira.unlink.example': 'Bağlantıyı kaldırırsan {project} kolonlarını korur; {current} içindeki değişiklikler artık takip edilmez.',
|
|
696
|
+
'jira.unlink.keep.description': 'Hiçbir şey değişmez.',
|
|
697
|
+
'jira.unlink.keep.label': 'Takip etmeye devam et',
|
|
698
|
+
'jira.unlink.message': '{project}, {current} projesini takip etmeyi bıraksın mı?',
|
|
699
|
+
'jira.unlink.unlink.description': 'Bağlantı duraklatılır; hiçbir şey silinmez.',
|
|
700
|
+
'jira.unlink.unlink.label': 'Takibi bırak',
|
|
701
|
+
'jiraConnect.cancelled': 'Jira bağlantısı iptal edildi, hiçbir şey bağlanmadı. Bu sekmeyi kapatabilirsin.',
|
|
702
|
+
'jiraConnect.chooseSite': 'Atlassian birden fazla Jira sitesine erişim verdi. Hangisinin bağlanacağını seçmek için sohbetine dön.',
|
|
703
|
+
'jiraConnect.connected': "{site} artık Engineering Memory'ye bağlı. Bu sekmeyi kapatıp sohbetine dönebilirsin.",
|
|
704
|
+
'jiraConnect.failed': 'Jira bağlantısı tamamlanamadı. Sohbetine dön; nedeni orada yazıyor.',
|
|
705
|
+
'jiraConnect.invalid': 'Bu bağlantı artık geçerli değil. Jira bağlantısını sohbetinden yeniden başlat.',
|
|
706
|
+
'jiraConnect.title': 'Jira bağlantısı',
|
|
587
707
|
'liveStatusNotice.managers': 'Engineering Memory artık canlı iş durumunu gösteriyor. Bir görev üzerinde çalışırken, o görevin projesinin sahipleri ve yöneticileri ile organizasyonunun sahipleri hangi görevde olduğunu, görevin hangi aşamada olduğunu, bir cevap bekleyip beklemediğini, görevi hangi yapay zeka aracının yürüttüğünü, en son ne zaman işlem yaptığını ve sohbetinin hâlâ açık olup olmadığını görebilir. Sorularını, cevaplarını, kodunu, dosya adlarını, dal adlarını ve sohbetini hiçbir zaman görmezler. Biten görevler 24 saat sonra listeden düşer. Platform desteği de sorun gidermek için bakabilir. Başkalarının görevlerine bakılması organizasyonunun denetim kaydına yazılır.',
|
|
588
708
|
'liveStatusNotice.off': 'Bu organizasyonda canlı iş durumunu yalnızca görevi yapan kişi görür: kendi görevlerini sen görürsün, organizasyonunda başka kimse görmez. Platform desteği sorun gidermek için bakabilir ve bu, organizasyonunun denetim kaydına yazılır.',
|
|
589
709
|
'move.after': 'Eski depo projenin geçmişinde saklanır. Hâlâ eski depoda çalışan ekip arkadaşları açık görevlerini bitirebilir, yeni görevi yeni depodan açar. Proje ileride yeniden taşınabilir.',
|