@lokascript/semantic 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (162) hide show
  1. package/dist/browser-ar.ar.global.js +2 -2
  2. package/dist/browser-core.core.global.js +2 -2
  3. package/dist/browser-de.de.global.js +2 -2
  4. package/dist/browser-east-asian.east-asian.global.js +2 -2
  5. package/dist/browser-en-tr.en-tr.global.js +2 -2
  6. package/dist/browser-en.en.global.js +2 -2
  7. package/dist/browser-es-en.es-en.global.js +2 -2
  8. package/dist/browser-es.es.global.js +2 -2
  9. package/dist/browser-fr.fr.global.js +2 -2
  10. package/dist/browser-id.id.global.js +2 -2
  11. package/dist/browser-ja.ja.global.js +2 -2
  12. package/dist/browser-ko.ko.global.js +2 -2
  13. package/dist/browser-lazy.lazy.global.js +2 -2
  14. package/dist/browser-priority.priority.global.js +2 -2
  15. package/dist/browser-pt.pt.global.js +2 -2
  16. package/dist/browser-qu.qu.global.js +2 -2
  17. package/dist/browser-sw.sw.global.js +2 -2
  18. package/dist/browser-tr.tr.global.js +2 -2
  19. package/dist/browser-western.western.global.js +2 -2
  20. package/dist/browser-zh.zh.global.js +2 -2
  21. package/dist/browser.global.js +2 -2
  22. package/dist/browser.global.js.map +1 -1
  23. package/dist/index.cjs +13042 -17462
  24. package/dist/index.cjs.map +1 -1
  25. package/dist/index.d.cts +49 -5
  26. package/dist/index.d.ts +49 -5
  27. package/dist/index.js +14044 -18464
  28. package/dist/index.js.map +1 -1
  29. package/dist/languages/ar.d.ts +1 -1
  30. package/dist/languages/ar.js +31 -44
  31. package/dist/languages/ar.js.map +1 -1
  32. package/dist/languages/de.d.ts +1 -1
  33. package/dist/languages/de.js +14 -2
  34. package/dist/languages/de.js.map +1 -1
  35. package/dist/languages/en.d.ts +1 -1
  36. package/dist/languages/en.js +558 -12
  37. package/dist/languages/en.js.map +1 -1
  38. package/dist/languages/es.d.ts +1 -1
  39. package/dist/languages/es.js +16 -0
  40. package/dist/languages/es.js.map +1 -1
  41. package/dist/languages/fr.d.ts +1 -1
  42. package/dist/languages/fr.js +14 -2
  43. package/dist/languages/fr.js.map +1 -1
  44. package/dist/languages/id.d.ts +1 -1
  45. package/dist/languages/id.js +14 -2
  46. package/dist/languages/id.js.map +1 -1
  47. package/dist/languages/ja.d.ts +1 -1
  48. package/dist/languages/ja.js +18 -3
  49. package/dist/languages/ja.js.map +1 -1
  50. package/dist/languages/ko.d.ts +8 -1
  51. package/dist/languages/ko.js +75 -43
  52. package/dist/languages/ko.js.map +1 -1
  53. package/dist/languages/pt.d.ts +1 -1
  54. package/dist/languages/pt.js +17 -0
  55. package/dist/languages/pt.js.map +1 -1
  56. package/dist/languages/qu.d.ts +12 -1
  57. package/dist/languages/qu.js +77 -2
  58. package/dist/languages/qu.js.map +1 -1
  59. package/dist/languages/sw.d.ts +1 -1
  60. package/dist/languages/sw.js.map +1 -1
  61. package/dist/languages/tr.d.ts +9 -1
  62. package/dist/languages/tr.js +96 -72
  63. package/dist/languages/tr.js.map +1 -1
  64. package/dist/languages/zh.d.ts +1 -1
  65. package/dist/languages/zh.js +16 -0
  66. package/dist/languages/zh.js.map +1 -1
  67. package/dist/{types-C4dcj53L.d.ts → types-BY3Id07j.d.ts} +20 -5
  68. package/package.json +20 -29
  69. package/src/generators/command-schemas.ts +21 -10
  70. package/src/generators/event-handler-generator.ts +50 -44
  71. package/src/generators/language-profiles.ts +6 -0
  72. package/src/generators/pattern-generator.ts +883 -1
  73. package/src/generators/profiles/arabic.ts +19 -3
  74. package/src/generators/profiles/bengali.ts +12 -1
  75. package/src/generators/profiles/chinese.ts +15 -0
  76. package/src/generators/profiles/french.ts +12 -1
  77. package/src/generators/profiles/german.ts +12 -1
  78. package/src/generators/profiles/hebrew.ts +148 -0
  79. package/src/generators/profiles/hindi.ts +12 -1
  80. package/src/generators/profiles/index.ts +2 -0
  81. package/src/generators/profiles/indonesian.ts +12 -1
  82. package/src/generators/profiles/italian.ts +16 -0
  83. package/src/generators/profiles/japanese.ts +11 -2
  84. package/src/generators/profiles/korean.ts +15 -1
  85. package/src/generators/profiles/polish.ts +12 -0
  86. package/src/generators/profiles/portuguese.ts +16 -0
  87. package/src/generators/profiles/russian.ts +11 -0
  88. package/src/generators/profiles/spanish.ts +15 -0
  89. package/src/generators/profiles/spanishMexico.ts +176 -0
  90. package/src/generators/profiles/thai.ts +11 -0
  91. package/src/generators/profiles/turkish.ts +49 -7
  92. package/src/generators/profiles/types.ts +21 -5
  93. package/src/generators/profiles/ukrainian.ts +11 -0
  94. package/src/generators/profiles/vietnamese.ts +11 -0
  95. package/src/language-building-schema.ts +111 -0
  96. package/src/languages/_all.ts +5 -1
  97. package/src/languages/es-MX.ts +32 -0
  98. package/src/languages/he.ts +15 -0
  99. package/src/parser/pattern-matcher.ts +10 -1
  100. package/src/parser/semantic-parser.ts +3 -0
  101. package/src/patterns/add/ar.ts +3 -59
  102. package/src/patterns/add/index.ts +5 -1
  103. package/src/patterns/add/ja.ts +3 -81
  104. package/src/patterns/add/ko.ts +3 -62
  105. package/src/patterns/add/qu.ts +69 -0
  106. package/src/patterns/add/tr.ts +3 -59
  107. package/src/patterns/builders.ts +1 -0
  108. package/src/patterns/decrement/tr.ts +3 -36
  109. package/src/patterns/event-handler/ar.ts +3 -139
  110. package/src/patterns/event-handler/he.ts +15 -0
  111. package/src/patterns/event-handler/index.ts +5 -1
  112. package/src/patterns/event-handler/ja.ts +3 -106
  113. package/src/patterns/event-handler/ko.ts +3 -121
  114. package/src/patterns/event-handler/ms.ts +45 -20
  115. package/src/patterns/event-handler/tr.ts +3 -158
  116. package/src/patterns/get/ar.ts +3 -37
  117. package/src/patterns/get/ja.ts +3 -41
  118. package/src/patterns/get/ko.ts +3 -41
  119. package/src/patterns/grammar-transformed/ja.ts +3 -1701
  120. package/src/patterns/grammar-transformed/ko.ts +3 -1299
  121. package/src/patterns/grammar-transformed/tr.ts +3 -1055
  122. package/src/patterns/hide/ar.ts +3 -55
  123. package/src/patterns/hide/ja.ts +3 -57
  124. package/src/patterns/hide/ko.ts +3 -57
  125. package/src/patterns/hide/tr.ts +3 -53
  126. package/src/patterns/increment/tr.ts +3 -40
  127. package/src/patterns/put/ar.ts +3 -62
  128. package/src/patterns/put/ja.ts +3 -63
  129. package/src/patterns/put/ko.ts +3 -55
  130. package/src/patterns/put/tr.ts +3 -55
  131. package/src/patterns/remove/ar.ts +3 -59
  132. package/src/patterns/remove/index.ts +5 -1
  133. package/src/patterns/remove/ja.ts +3 -62
  134. package/src/patterns/remove/ko.ts +3 -66
  135. package/src/patterns/remove/qu.ts +69 -0
  136. package/src/patterns/remove/tr.ts +3 -66
  137. package/src/patterns/set/ar.ts +3 -72
  138. package/src/patterns/set/ja.ts +3 -74
  139. package/src/patterns/set/ko.ts +3 -73
  140. package/src/patterns/set/tr.ts +3 -95
  141. package/src/patterns/show/ar.ts +3 -55
  142. package/src/patterns/show/ja.ts +3 -57
  143. package/src/patterns/show/ko.ts +3 -61
  144. package/src/patterns/show/tr.ts +3 -53
  145. package/src/patterns/take/ar.ts +3 -39
  146. package/src/patterns/toggle/ar.ts +3 -49
  147. package/src/patterns/toggle/index.ts +5 -1
  148. package/src/patterns/toggle/ja.ts +3 -144
  149. package/src/patterns/toggle/ko.ts +3 -101
  150. package/src/patterns/toggle/qu.ts +90 -0
  151. package/src/patterns/toggle/tr.ts +3 -76
  152. package/src/registry.ts +179 -15
  153. package/src/tokenizers/arabic.ts +13 -46
  154. package/src/tokenizers/bengali.ts +2 -16
  155. package/src/tokenizers/he.ts +542 -0
  156. package/src/tokenizers/index.ts +1 -0
  157. package/src/tokenizers/japanese.ts +3 -1
  158. package/src/tokenizers/korean.ts +104 -48
  159. package/src/tokenizers/ms.ts +3 -0
  160. package/src/tokenizers/quechua.ts +101 -2
  161. package/src/tokenizers/turkish.ts +64 -69
  162. package/src/types.ts +13 -0
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * Turkish Set Patterns
3
3
  *
4
- * Hand-crafted patterns for "set" command.
5
- * Turkish: {destination}'i {patient} olarak ayarla
4
+ * Strategy: Return empty array to rely on auto-generated patterns from profile.
5
+ * This follows the Tagalog model which achieves 100% pass rate with pure generation.
6
6
  */
7
7
 
8
8
  import type { LanguagePattern } from '../../types';
@@ -11,97 +11,5 @@ import type { LanguagePattern } from '../../types';
11
11
  * Get Turkish set patterns.
12
12
  */
13
13
  export function getSetPatternsTr(): LanguagePattern[] {
14
- return [
15
- {
16
- id: 'set-tr-yap',
17
- language: 'tr',
18
- command: 'set',
19
- priority: 105, // Higher priority - natural Turkish form "make x 10"
20
- template: {
21
- format: '{destination} yi {patient} yap',
22
- tokens: [
23
- {
24
- type: 'role',
25
- role: 'destination',
26
- expectedTypes: ['property-path', 'selector', 'reference', 'expression'],
27
- },
28
- { type: 'literal', value: 'yi', alternatives: ['yı', 'yu', 'yü', 'i', 'ı', 'u', 'ü'] },
29
- { type: 'role', role: 'patient', expectedTypes: ['literal', 'expression', 'reference'] },
30
- { type: 'literal', value: 'yap', alternatives: ['yapmak'] },
31
- ],
32
- },
33
- extraction: {
34
- destination: { position: 0 },
35
- patient: { position: 2 },
36
- },
37
- },
38
- {
39
- id: 'set-tr-full',
40
- language: 'tr',
41
- command: 'set',
42
- priority: 100,
43
- template: {
44
- format: "{destination}'i {patient} olarak ayarla",
45
- tokens: [
46
- {
47
- type: 'role',
48
- role: 'destination',
49
- expectedTypes: ['property-path', 'selector', 'reference', 'expression'],
50
- },
51
- { type: 'literal', value: "'i", alternatives: ["'ı", "'u", "'ü", '-i', '-ı'] },
52
- { type: 'role', role: 'patient', expectedTypes: ['literal', 'expression', 'reference'] },
53
- { type: 'literal', value: 'olarak' },
54
- { type: 'literal', value: 'ayarla', alternatives: ['ayarlamak', 'belirle', 'koy'] },
55
- ],
56
- },
57
- extraction: {
58
- destination: { position: 0 },
59
- patient: { position: 2 },
60
- },
61
- },
62
- {
63
- id: 'set-tr-simple',
64
- language: 'tr',
65
- command: 'set',
66
- priority: 90,
67
- template: {
68
- format: '{destination} {patient} ayarla',
69
- tokens: [
70
- {
71
- type: 'role',
72
- role: 'destination',
73
- expectedTypes: ['property-path', 'selector', 'reference', 'expression'],
74
- },
75
- { type: 'role', role: 'patient', expectedTypes: ['literal', 'expression', 'reference'] },
76
- { type: 'literal', value: 'ayarla', alternatives: ['ayarlamak'] },
77
- ],
78
- },
79
- extraction: {
80
- destination: { position: 0 },
81
- patient: { position: 1 },
82
- },
83
- },
84
- {
85
- id: 'set-tr-equals',
86
- language: 'tr',
87
- command: 'set',
88
- priority: 95,
89
- template: {
90
- format: '{destination} = {patient}',
91
- tokens: [
92
- {
93
- type: 'role',
94
- role: 'destination',
95
- expectedTypes: ['property-path', 'selector', 'reference', 'expression'],
96
- },
97
- { type: 'literal', value: '=' },
98
- { type: 'role', role: 'patient', expectedTypes: ['literal', 'expression', 'reference'] },
99
- ],
100
- },
101
- extraction: {
102
- destination: { position: 0 },
103
- patient: { position: 2 },
104
- },
105
- },
106
- ];
14
+ return [];
107
15
  }
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * Arabic Show Patterns
3
3
  *
4
- * Hand-crafted patterns for "show" command.
5
- * Arabic: أظهر {patient}
4
+ * Strategy: Return empty array to rely on auto-generated patterns from profile.
5
+ * This follows the Tagalog model which achieves 100% pass rate with pure generation.
6
6
  */
7
7
 
8
8
  import type { LanguagePattern } from '../../types';
@@ -11,57 +11,5 @@ import type { LanguagePattern } from '../../types';
11
11
  * Get Arabic show patterns.
12
12
  */
13
13
  export function getShowPatternsAr(): LanguagePattern[] {
14
- return [
15
- {
16
- id: 'show-ar-full',
17
- language: 'ar',
18
- command: 'show',
19
- priority: 100,
20
- template: {
21
- format: 'أظهر {patient}',
22
- tokens: [
23
- { type: 'literal', value: 'أظهر', alternatives: ['اظهر', 'اعرض', 'أعرض', 'عرض'] },
24
- { type: 'role', role: 'patient' },
25
- ],
26
- },
27
- extraction: {
28
- patient: { position: 1 },
29
- },
30
- },
31
- {
32
- id: 'show-ar-with-في',
33
- language: 'ar',
34
- command: 'show',
35
- priority: 95,
36
- template: {
37
- format: 'أظهر {patient} في {destination}',
38
- tokens: [
39
- { type: 'literal', value: 'أظهر', alternatives: ['اظهر', 'اعرض'] },
40
- { type: 'role', role: 'patient' },
41
- { type: 'literal', value: 'في' },
42
- { type: 'role', role: 'destination' },
43
- ],
44
- },
45
- extraction: {
46
- patient: { position: 1 },
47
- destination: { marker: 'في' },
48
- },
49
- },
50
- {
51
- id: 'show-ar-definite',
52
- language: 'ar',
53
- command: 'show',
54
- priority: 90,
55
- template: {
56
- format: 'اظهار {patient}',
57
- tokens: [
58
- { type: 'literal', value: 'اظهار', alternatives: ['إظهار', 'عرض'] },
59
- { type: 'role', role: 'patient' },
60
- ],
61
- },
62
- extraction: {
63
- patient: { position: 1 },
64
- },
65
- },
66
- ];
14
+ return [];
67
15
  }
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * Japanese Show Patterns
3
3
  *
4
- * Hand-crafted patterns for "show" command.
5
- * Japanese: {patient} 表示
4
+ * Relying on auto-generated patterns from profile.
5
+ * Empty stub follows Hindi/Tagalog model for simpler implementation.
6
6
  */
7
7
 
8
8
  import type { LanguagePattern } from '../../types';
@@ -11,59 +11,5 @@ import type { LanguagePattern } from '../../types';
11
11
  * Get Japanese show patterns.
12
12
  */
13
13
  export function getShowPatternsJa(): LanguagePattern[] {
14
- return [
15
- {
16
- id: 'show-ja-full',
17
- language: 'ja',
18
- command: 'show',
19
- priority: 100,
20
- template: {
21
- format: '{patient} を 表示',
22
- tokens: [
23
- { type: 'role', role: 'patient' },
24
- { type: 'literal', value: 'を' },
25
- { type: 'literal', value: '表示', alternatives: ['表示する', '見せる', '示す'] },
26
- ],
27
- },
28
- extraction: {
29
- patient: { position: 0 },
30
- },
31
- },
32
- {
33
- id: 'show-ja-imperative',
34
- language: 'ja',
35
- command: 'show',
36
- priority: 90,
37
- template: {
38
- format: '表示 {patient}',
39
- tokens: [
40
- { type: 'literal', value: '表示', alternatives: ['表示する'] },
41
- { type: 'role', role: 'patient' },
42
- ],
43
- },
44
- extraction: {
45
- patient: { position: 1 },
46
- },
47
- },
48
- {
49
- id: 'show-ja-possessive',
50
- language: 'ja',
51
- command: 'show',
52
- priority: 95,
53
- template: {
54
- format: '{destination} の {patient} を 表示',
55
- tokens: [
56
- { type: 'role', role: 'destination' },
57
- { type: 'literal', value: 'の' },
58
- { type: 'role', role: 'patient' },
59
- { type: 'literal', value: 'を' },
60
- { type: 'literal', value: '表示', alternatives: ['表示する'] },
61
- ],
62
- },
63
- extraction: {
64
- destination: { position: 0 },
65
- patient: { marker: 'を' },
66
- },
67
- },
68
- ];
14
+ return [];
69
15
  }
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * Korean Show Patterns
3
3
  *
4
- * Hand-crafted patterns for "show" command.
5
- * Korean: {patient} 보여주다
4
+ * Strategy: Return empty array to rely on auto-generated patterns from profile.
5
+ * This follows the Tagalog model which achieves 100% pass rate with pure generation.
6
6
  */
7
7
 
8
8
  import type { LanguagePattern } from '../../types';
@@ -11,63 +11,5 @@ import type { LanguagePattern } from '../../types';
11
11
  * Get Korean show patterns.
12
12
  */
13
13
  export function getShowPatternsKo(): LanguagePattern[] {
14
- return [
15
- {
16
- id: 'show-ko-full',
17
- language: 'ko',
18
- command: 'show',
19
- priority: 100,
20
- template: {
21
- format: '{patient} 를 보여주다',
22
- tokens: [
23
- { type: 'role', role: 'patient' },
24
- { type: 'literal', value: '를', alternatives: ['을'] },
25
- {
26
- type: 'literal',
27
- value: '보여주다',
28
- alternatives: ['보여줘', '표시', '표시하다', '보이다'],
29
- },
30
- ],
31
- },
32
- extraction: {
33
- patient: { position: 0 },
34
- },
35
- },
36
- {
37
- id: 'show-ko-simple',
38
- language: 'ko',
39
- command: 'show',
40
- priority: 90,
41
- template: {
42
- format: '표시 {patient}',
43
- tokens: [
44
- { type: 'literal', value: '표시', alternatives: ['표시하다'] },
45
- { type: 'role', role: 'patient' },
46
- ],
47
- },
48
- extraction: {
49
- patient: { position: 1 },
50
- },
51
- },
52
- {
53
- id: 'show-ko-possessive',
54
- language: 'ko',
55
- command: 'show',
56
- priority: 95,
57
- template: {
58
- format: '{destination} 의 {patient} 를 보여주다',
59
- tokens: [
60
- { type: 'role', role: 'destination' },
61
- { type: 'literal', value: '의' },
62
- { type: 'role', role: 'patient' },
63
- { type: 'literal', value: '를', alternatives: ['을'] },
64
- { type: 'literal', value: '보여주다', alternatives: ['보여줘', '표시'] },
65
- ],
66
- },
67
- extraction: {
68
- destination: { position: 0 },
69
- patient: { marker: '를', markerAlternatives: ['을'] },
70
- },
71
- },
72
- ];
14
+ return [];
73
15
  }
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * Turkish Show Patterns
3
3
  *
4
- * Hand-crafted patterns for "show" command.
5
- * Turkish: {patient} göster
4
+ * Strategy: Return empty array to rely on auto-generated patterns from profile.
5
+ * This follows the Tagalog model which achieves 100% pass rate with pure generation.
6
6
  */
7
7
 
8
8
  import type { LanguagePattern } from '../../types';
@@ -11,55 +11,5 @@ import type { LanguagePattern } from '../../types';
11
11
  * Get Turkish show patterns.
12
12
  */
13
13
  export function getShowPatternsTr(): LanguagePattern[] {
14
- return [
15
- {
16
- id: 'show-tr-full',
17
- language: 'tr',
18
- command: 'show',
19
- priority: 100,
20
- template: {
21
- format: '{patient} göster',
22
- tokens: [
23
- { type: 'role', role: 'patient' },
24
- { type: 'literal', value: 'göster', alternatives: ['göstermek', 'gösterme'] },
25
- ],
26
- },
27
- extraction: {
28
- patient: { position: 0 },
29
- },
30
- },
31
- {
32
- id: 'show-tr-accusative',
33
- language: 'tr',
34
- command: 'show',
35
- priority: 95,
36
- template: {
37
- format: "{patient}'i göster",
38
- tokens: [
39
- { type: 'role', role: 'patient' },
40
- { type: 'literal', value: "'i", alternatives: ["'ı", "'u", "'ü", '-i', '-ı'] },
41
- { type: 'literal', value: 'göster', alternatives: ['göstermek'] },
42
- ],
43
- },
44
- extraction: {
45
- patient: { position: 0 },
46
- },
47
- },
48
- {
49
- id: 'show-tr-imperative',
50
- language: 'tr',
51
- command: 'show',
52
- priority: 90,
53
- template: {
54
- format: 'göster {patient}',
55
- tokens: [
56
- { type: 'literal', value: 'göster', alternatives: ['göstermek'] },
57
- { type: 'role', role: 'patient' },
58
- ],
59
- },
60
- extraction: {
61
- patient: { position: 1 },
62
- },
63
- },
64
- ];
14
+ return [];
65
15
  }
@@ -1,7 +1,8 @@
1
1
  /**
2
2
  * Arabic Take Patterns
3
3
  *
4
- * Tree-shakeable: Only included when Arabic is imported.
4
+ * Strategy: Return empty array to rely on auto-generated patterns from profile.
5
+ * This follows the Tagalog model which achieves 100% pass rate with pure generation.
5
6
  */
6
7
 
7
8
  import type { LanguagePattern } from '../../types';
@@ -10,42 +11,5 @@ import type { LanguagePattern } from '../../types';
10
11
  * Get Arabic take patterns.
11
12
  */
12
13
  export function getTakePatternsAr(): LanguagePattern[] {
13
- return [
14
- {
15
- id: 'take-ar-full',
16
- language: 'ar',
17
- command: 'take',
18
- priority: 110,
19
- template: {
20
- format: 'خذ {patient} من {source}',
21
- tokens: [
22
- { type: 'literal', value: 'خذ', alternatives: ['احصل'] },
23
- { type: 'role', role: 'patient' },
24
- { type: 'literal', value: 'من' },
25
- { type: 'role', role: 'source' },
26
- ],
27
- },
28
- extraction: {
29
- patient: { position: 1 },
30
- source: { marker: 'من' },
31
- },
32
- },
33
- {
34
- id: 'take-ar-source-only',
35
- language: 'ar',
36
- command: 'take',
37
- priority: 100,
38
- template: {
39
- format: 'خذ من {source}',
40
- tokens: [
41
- { type: 'literal', value: 'خذ', alternatives: ['احصل'] },
42
- { type: 'literal', value: 'من' },
43
- { type: 'role', role: 'source' },
44
- ],
45
- },
46
- extraction: {
47
- source: { marker: 'من' },
48
- },
49
- },
50
- ];
14
+ return [];
51
15
  }
@@ -1,7 +1,8 @@
1
1
  /**
2
2
  * Arabic Toggle Patterns
3
3
  *
4
- * Tree-shakeable: Only included when Arabic is imported.
4
+ * Strategy: Return empty array to rely on auto-generated patterns from profile.
5
+ * This follows the Tagalog model which achieves 100% pass rate with pure generation.
5
6
  */
6
7
 
7
8
  import type { LanguagePattern } from '../../types';
@@ -10,52 +11,5 @@ import type { LanguagePattern } from '../../types';
10
11
  * Get Arabic toggle patterns.
11
12
  */
12
13
  export function getTogglePatternsAr(): LanguagePattern[] {
13
- return [
14
- {
15
- id: 'toggle-ar-full',
16
- language: 'ar',
17
- command: 'toggle',
18
- priority: 100,
19
- template: {
20
- format: 'بدّل {patient} على {target}',
21
- tokens: [
22
- { type: 'literal', value: 'بدّل', alternatives: ['بدل', 'غيّر', 'غير'] },
23
- { type: 'role', role: 'patient' },
24
- {
25
- type: 'group',
26
- optional: true,
27
- tokens: [
28
- { type: 'literal', value: 'على', alternatives: ['في', 'ب'] },
29
- { type: 'role', role: 'destination' },
30
- ],
31
- },
32
- ],
33
- },
34
- extraction: {
35
- patient: { position: 1 },
36
- destination: {
37
- marker: 'على',
38
- markerAlternatives: ['في', 'ب'],
39
- default: { type: 'reference', value: 'me' },
40
- },
41
- },
42
- },
43
- {
44
- id: 'toggle-ar-simple',
45
- language: 'ar',
46
- command: 'toggle',
47
- priority: 90,
48
- template: {
49
- format: 'بدّل {patient}',
50
- tokens: [
51
- { type: 'literal', value: 'بدّل', alternatives: ['بدل', 'غيّر', 'غير'] },
52
- { type: 'role', role: 'patient' },
53
- ],
54
- },
55
- extraction: {
56
- patient: { position: 1 },
57
- destination: { default: { type: 'reference', value: 'me' } },
58
- },
59
- },
60
- ];
14
+ return [];
61
15
  }
@@ -18,6 +18,7 @@ import { getTogglePatternsJa } from './ja';
18
18
  import { getTogglePatternsKo } from './ko';
19
19
  import { getTogglePatternsMs } from './ms';
20
20
  import { getTogglePatternsPl } from './pl';
21
+ import { getTogglePatternsQu } from './qu';
21
22
  import { getTogglePatternsRu } from './ru';
22
23
  import { getTogglePatternsTh } from './th';
23
24
  import { getTogglePatternsTl } from './tl';
@@ -51,6 +52,8 @@ export function getTogglePatternsForLanguage(language: string): LanguagePattern[
51
52
  return getTogglePatternsMs();
52
53
  case 'pl':
53
54
  return getTogglePatternsPl();
55
+ case 'qu':
56
+ return getTogglePatternsQu();
54
57
  case 'ru':
55
58
  return getTogglePatternsRu();
56
59
  case 'th':
@@ -81,6 +84,7 @@ export { getTogglePatternsJa } from './ja';
81
84
  export { getTogglePatternsKo } from './ko';
82
85
  export { getTogglePatternsMs } from './ms';
83
86
  export { getTogglePatternsPl } from './pl';
87
+ export { getTogglePatternsQu } from './qu';
84
88
  export { getTogglePatternsRu } from './ru';
85
89
  export { getTogglePatternsTh } from './th';
86
90
  export { getTogglePatternsTl } from './tl';
@@ -92,4 +96,4 @@ export { getTogglePatternsZh } from './zh';
92
96
  /**
93
97
  * Languages that have hand-crafted toggle patterns.
94
98
  */
95
- export const togglePatternLanguages = ['ar', 'bn', 'en', 'es', 'hi', 'it', 'ja', 'ko', 'ms', 'pl', 'ru', 'th', 'tl', 'tr', 'uk', 'vi', 'zh'];
99
+ export const togglePatternLanguages = ['ar', 'bn', 'en', 'es', 'hi', 'it', 'ja', 'ko', 'ms', 'pl', 'qu', 'ru', 'th', 'tl', 'tr', 'uk', 'vi', 'zh'];