@forthix/forthic 0.10.0 → 0.12.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 (147) hide show
  1. package/dist/cjs/common/runtime_client.d.ts +30 -0
  2. package/dist/cjs/common/runtime_client.js +10 -0
  3. package/dist/cjs/common/runtime_client.js.map +1 -0
  4. package/dist/cjs/common/type_utils.d.ts +7 -1
  5. package/dist/cjs/common/type_utils.js +13 -2
  6. package/dist/cjs/common/type_utils.js.map +1 -1
  7. package/dist/cjs/forthic/interpreter.js +6 -3
  8. package/dist/cjs/forthic/interpreter.js.map +1 -1
  9. package/dist/cjs/forthic/modules/standard/array_module.d.ts +17 -7
  10. package/dist/cjs/forthic/modules/standard/array_module.js +326 -78
  11. package/dist/cjs/forthic/modules/standard/array_module.js.map +1 -1
  12. package/dist/cjs/forthic/modules/standard/boolean_module.d.ts +5 -6
  13. package/dist/cjs/forthic/modules/standard/boolean_module.js +43 -60
  14. package/dist/cjs/forthic/modules/standard/boolean_module.js.map +1 -1
  15. package/dist/cjs/forthic/modules/standard/classic/classic_module.d.ts +56 -0
  16. package/dist/cjs/forthic/modules/standard/classic/classic_module.js +616 -0
  17. package/dist/cjs/forthic/modules/standard/classic/classic_module.js.map +1 -0
  18. package/dist/cjs/forthic/modules/standard/core_module.d.ts +11 -14
  19. package/dist/cjs/forthic/modules/standard/core_module.js +91 -97
  20. package/dist/cjs/forthic/modules/standard/core_module.js.map +1 -1
  21. package/dist/cjs/forthic/modules/standard/datetime_module.d.ts +4 -2
  22. package/dist/cjs/forthic/modules/standard/datetime_module.js +39 -20
  23. package/dist/cjs/forthic/modules/standard/datetime_module.js.map +1 -1
  24. package/dist/cjs/forthic/modules/standard/json_module.d.ts +0 -1
  25. package/dist/cjs/forthic/modules/standard/json_module.js +0 -15
  26. package/dist/cjs/forthic/modules/standard/json_module.js.map +1 -1
  27. package/dist/cjs/forthic/modules/standard/math_module.d.ts +7 -12
  28. package/dist/cjs/forthic/modules/standard/math_module.js +76 -137
  29. package/dist/cjs/forthic/modules/standard/math_module.js.map +1 -1
  30. package/dist/cjs/forthic/modules/standard/record_module.d.ts +15 -4
  31. package/dist/cjs/forthic/modules/standard/record_module.js +311 -45
  32. package/dist/cjs/forthic/modules/standard/record_module.js.map +1 -1
  33. package/dist/cjs/forthic/modules/standard/string_module.d.ts +14 -6
  34. package/dist/cjs/forthic/modules/standard/string_module.js +183 -60
  35. package/dist/cjs/forthic/modules/standard/string_module.js.map +1 -1
  36. package/dist/cjs/forthic/tokenizer.js +29 -1
  37. package/dist/cjs/forthic/tokenizer.js.map +1 -1
  38. package/dist/cjs/grpc/config_loader.d.ts +3 -0
  39. package/dist/cjs/grpc/config_loader.js +5 -0
  40. package/dist/cjs/grpc/config_loader.js.map +1 -1
  41. package/dist/cjs/grpc/remote_module.d.ts +3 -3
  42. package/dist/cjs/grpc/remote_module.js +1 -1
  43. package/dist/cjs/grpc/remote_module.js.map +1 -1
  44. package/dist/cjs/grpc/remote_word.d.ts +3 -3
  45. package/dist/cjs/grpc/remote_word.js +1 -1
  46. package/dist/cjs/grpc/remote_word.js.map +1 -1
  47. package/dist/cjs/grpc/runtime_manager.d.ts +5 -4
  48. package/dist/cjs/grpc/runtime_manager.js +2 -2
  49. package/dist/cjs/grpc/runtime_manager.js.map +1 -1
  50. package/dist/cjs/grpc/serializer.d.ts +2 -2
  51. package/dist/cjs/grpc/serializer.js +11 -10
  52. package/dist/cjs/grpc/serializer.js.map +1 -1
  53. package/dist/cjs/jsonrpc/browser-stub.d.ts +8 -0
  54. package/dist/cjs/jsonrpc/browser-stub.js +18 -0
  55. package/dist/cjs/jsonrpc/browser-stub.js.map +1 -0
  56. package/dist/cjs/jsonrpc/client.d.ts +31 -0
  57. package/dist/cjs/jsonrpc/client.js +98 -0
  58. package/dist/cjs/jsonrpc/client.js.map +1 -0
  59. package/dist/cjs/jsonrpc/errors.d.ts +18 -0
  60. package/dist/cjs/jsonrpc/errors.js +23 -0
  61. package/dist/cjs/jsonrpc/errors.js.map +1 -0
  62. package/dist/cjs/jsonrpc/index.d.ts +16 -0
  63. package/dist/cjs/jsonrpc/index.js +26 -0
  64. package/dist/cjs/jsonrpc/index.js.map +1 -0
  65. package/dist/cjs/jsonrpc/serializer.d.ts +8 -0
  66. package/dist/cjs/jsonrpc/serializer.js +14 -0
  67. package/dist/cjs/jsonrpc/serializer.js.map +1 -0
  68. package/dist/cjs/jsonrpc/server.d.ts +15 -0
  69. package/dist/cjs/jsonrpc/server.js +386 -0
  70. package/dist/cjs/jsonrpc/server.js.map +1 -0
  71. package/dist/cjs/websocket/serializer.d.ts +4 -4
  72. package/dist/cjs/websocket/serializer.js +15 -14
  73. package/dist/cjs/websocket/serializer.js.map +1 -1
  74. package/dist/esm/common/runtime_client.d.ts +30 -0
  75. package/dist/esm/common/runtime_client.js +9 -0
  76. package/dist/esm/common/runtime_client.js.map +1 -0
  77. package/dist/esm/common/type_utils.d.ts +7 -1
  78. package/dist/esm/common/type_utils.js +12 -2
  79. package/dist/esm/common/type_utils.js.map +1 -1
  80. package/dist/esm/forthic/interpreter.js +6 -3
  81. package/dist/esm/forthic/interpreter.js.map +1 -1
  82. package/dist/esm/forthic/modules/standard/array_module.d.ts +17 -7
  83. package/dist/esm/forthic/modules/standard/array_module.js +293 -72
  84. package/dist/esm/forthic/modules/standard/array_module.js.map +1 -1
  85. package/dist/esm/forthic/modules/standard/boolean_module.d.ts +5 -6
  86. package/dist/esm/forthic/modules/standard/boolean_module.js +38 -54
  87. package/dist/esm/forthic/modules/standard/boolean_module.js.map +1 -1
  88. package/dist/esm/forthic/modules/standard/classic/classic_module.d.ts +56 -0
  89. package/dist/esm/forthic/modules/standard/classic/classic_module.js +500 -0
  90. package/dist/esm/forthic/modules/standard/classic/classic_module.js.map +1 -0
  91. package/dist/esm/forthic/modules/standard/core_module.d.ts +11 -14
  92. package/dist/esm/forthic/modules/standard/core_module.js +76 -82
  93. package/dist/esm/forthic/modules/standard/core_module.js.map +1 -1
  94. package/dist/esm/forthic/modules/standard/datetime_module.d.ts +4 -2
  95. package/dist/esm/forthic/modules/standard/datetime_module.js +30 -17
  96. package/dist/esm/forthic/modules/standard/datetime_module.js.map +1 -1
  97. package/dist/esm/forthic/modules/standard/json_module.d.ts +0 -1
  98. package/dist/esm/forthic/modules/standard/json_module.js +0 -12
  99. package/dist/esm/forthic/modules/standard/json_module.js.map +1 -1
  100. package/dist/esm/forthic/modules/standard/math_module.d.ts +7 -12
  101. package/dist/esm/forthic/modules/standard/math_module.js +69 -117
  102. package/dist/esm/forthic/modules/standard/math_module.js.map +1 -1
  103. package/dist/esm/forthic/modules/standard/record_module.d.ts +15 -4
  104. package/dist/esm/forthic/modules/standard/record_module.js +292 -44
  105. package/dist/esm/forthic/modules/standard/record_module.js.map +1 -1
  106. package/dist/esm/forthic/modules/standard/string_module.d.ts +14 -6
  107. package/dist/esm/forthic/modules/standard/string_module.js +151 -54
  108. package/dist/esm/forthic/modules/standard/string_module.js.map +1 -1
  109. package/dist/esm/forthic/tokenizer.js +29 -1
  110. package/dist/esm/forthic/tokenizer.js.map +1 -1
  111. package/dist/esm/grpc/config_loader.d.ts +3 -0
  112. package/dist/esm/grpc/config_loader.js +5 -0
  113. package/dist/esm/grpc/config_loader.js.map +1 -1
  114. package/dist/esm/grpc/remote_module.d.ts +3 -3
  115. package/dist/esm/grpc/remote_module.js +1 -1
  116. package/dist/esm/grpc/remote_module.js.map +1 -1
  117. package/dist/esm/grpc/remote_word.d.ts +3 -3
  118. package/dist/esm/grpc/remote_word.js +1 -1
  119. package/dist/esm/grpc/remote_word.js.map +1 -1
  120. package/dist/esm/grpc/runtime_manager.d.ts +5 -4
  121. package/dist/esm/grpc/runtime_manager.js +2 -2
  122. package/dist/esm/grpc/runtime_manager.js.map +1 -1
  123. package/dist/esm/grpc/serializer.d.ts +2 -2
  124. package/dist/esm/grpc/serializer.js +12 -11
  125. package/dist/esm/grpc/serializer.js.map +1 -1
  126. package/dist/esm/jsonrpc/browser-stub.d.ts +8 -0
  127. package/dist/esm/jsonrpc/browser-stub.js +12 -0
  128. package/dist/esm/jsonrpc/browser-stub.js.map +1 -0
  129. package/dist/esm/jsonrpc/client.d.ts +31 -0
  130. package/dist/esm/jsonrpc/client.js +94 -0
  131. package/dist/esm/jsonrpc/client.js.map +1 -0
  132. package/dist/esm/jsonrpc/errors.d.ts +18 -0
  133. package/dist/esm/jsonrpc/errors.js +18 -0
  134. package/dist/esm/jsonrpc/errors.js.map +1 -0
  135. package/dist/esm/jsonrpc/index.d.ts +16 -0
  136. package/dist/esm/jsonrpc/index.js +16 -0
  137. package/dist/esm/jsonrpc/index.js.map +1 -0
  138. package/dist/esm/jsonrpc/serializer.d.ts +8 -0
  139. package/dist/esm/jsonrpc/serializer.js +9 -0
  140. package/dist/esm/jsonrpc/serializer.js.map +1 -0
  141. package/dist/esm/jsonrpc/server.d.ts +15 -0
  142. package/dist/esm/jsonrpc/server.js +349 -0
  143. package/dist/esm/jsonrpc/server.js.map +1 -0
  144. package/dist/esm/websocket/serializer.d.ts +4 -4
  145. package/dist/esm/websocket/serializer.js +16 -15
  146. package/dist/esm/websocket/serializer.js.map +1 -1
  147. package/package.json +15 -2
@@ -4,43 +4,45 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
4
4
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
- import { DecoratedModule, ForthicWord, ForthicDirectWord, registerModuleDoc } from "../../decorators/word.js";
7
+ import { DecoratedModule, ForthicWord, registerModuleDoc } from "../../decorators/word.js";
8
8
  export class StringModule extends DecoratedModule {
9
9
  static {
10
10
  registerModuleDoc(StringModule, `
11
11
  String manipulation and processing operations with regex and URL encoding support.
12
12
 
13
13
  ## Categories
14
- - Conversion: >STR, URL-ENCODE, URL-DECODE
15
- - Transform: LOWERCASE, UPPERCASE, STRIP, ASCII
16
- - Split/Join: SPLIT, JOIN, CONCAT
17
- - Pattern: REPLACE, RE-MATCH, RE-MATCH-ALL, RE-MATCH-GROUP
18
- - Constants: /N, /R, /T
14
+ - Conversion: >STR
15
+ - Transform: LOWERCASE, UPPERCASE, STRIP, ASCII, TRIM-PREFIX, TRIM-SUFFIX
16
+ - Split/Join: SPLIT, JOIN, CONCAT, LINES, UNLINES
17
+ - Pattern: REPLACE, RE-REPLACE, RE-MATCH, RE-MATCH-ALL, RE-MATCH?
18
+ - Predicates: STARTS-WITH?, ENDS-WITH?, RE-MATCH?
19
+ - Bash-flavored: GREP, GREP-V, SED, CUT
20
+ - Constants: /N, /T
19
21
 
20
22
  ## Examples
21
- "hello" "world" CONCAT
22
- ["a" "b" "c"] CONCAT
23
+ ["hello" " " "world"] CONCAT
24
+ "hello world" STR-LENGTH
23
25
  "hello world" " " SPLIT
24
26
  ["hello" "world"] " " JOIN
25
27
  "Hello" LOWERCASE
26
- "test@example.com" "(@.+)" RE-MATCH 1 RE-MATCH-GROUP
27
28
  `);
28
29
  }
29
30
  constructor() {
30
31
  super("string");
31
32
  }
32
- async CONCAT(interp) {
33
- const str2 = interp.stack_pop();
34
- let array;
35
- if (str2 instanceof Array) {
36
- array = str2;
33
+ async CONCAT(strings) {
34
+ if (!Array.isArray(strings)) {
35
+ throw new Error("CONCAT requires an array of strings. Wrap two strings as [s1 s2] CONCAT.");
37
36
  }
38
- else {
39
- const str1 = interp.stack_pop();
40
- array = [str1, str2];
37
+ return strings.map((s) => (s === null || s === undefined ? "" : String(s))).join("");
38
+ }
39
+ async STR_LENGTH(str) {
40
+ if (str === null || str === undefined)
41
+ return 0;
42
+ if (typeof str !== "string") {
43
+ throw new Error("STR-LENGTH requires a string. For arrays/records, use LENGTH.");
41
44
  }
42
- const result = array.join("");
43
- interp.stack_push(result);
45
+ return str.length;
44
46
  }
45
47
  async to_STR(item) {
46
48
  return item.toString();
@@ -58,12 +60,38 @@ String manipulation and processing operations with regex and URL encoding suppor
58
60
  async slash_N() {
59
61
  return "\n";
60
62
  }
61
- async slash_R() {
62
- return "\r";
63
- }
64
63
  async slash_T() {
65
64
  return "\t";
66
65
  }
66
+ async STARTS_WITH(str, prefix) {
67
+ if (typeof str !== "string" || typeof prefix !== "string")
68
+ return false;
69
+ return str.startsWith(prefix);
70
+ }
71
+ async ENDS_WITH(str, suffix) {
72
+ if (typeof str !== "string" || typeof suffix !== "string")
73
+ return false;
74
+ return str.endsWith(suffix);
75
+ }
76
+ async TRIM_PREFIX(str, prefix) {
77
+ if (typeof str !== "string")
78
+ return str;
79
+ if (typeof prefix !== "string" || prefix.length === 0)
80
+ return str;
81
+ return str.startsWith(prefix) ? str.slice(prefix.length) : str;
82
+ }
83
+ async TRIM_SUFFIX(str, suffix) {
84
+ if (typeof str !== "string")
85
+ return str;
86
+ if (typeof suffix !== "string" || suffix.length === 0)
87
+ return str;
88
+ return str.endsWith(suffix) ? str.slice(0, str.length - suffix.length) : str;
89
+ }
90
+ async RE_MATCH_TEST(str, pattern) {
91
+ if (typeof str !== "string" || typeof pattern !== "string")
92
+ return false;
93
+ return new RegExp(pattern).test(str);
94
+ }
67
95
  async LOWERCASE(string) {
68
96
  let result = "";
69
97
  if (string)
@@ -94,12 +122,18 @@ String manipulation and processing operations with regex and URL encoding suppor
94
122
  return result;
95
123
  }
96
124
  async REPLACE(string, text, replace) {
97
- let result = string;
98
- if (string) {
99
- const pattern = new RegExp(text, "g");
100
- result = string.replace(pattern, replace);
101
- }
102
- return result;
125
+ if (string === null || string === undefined)
126
+ return string;
127
+ if (text === null || text === undefined || text === "")
128
+ return string;
129
+ return string.split(text).join(replace ?? "");
130
+ }
131
+ async RE_REPLACE(string, pattern, replace) {
132
+ if (string === null || string === undefined)
133
+ return string;
134
+ if (pattern === null || pattern === undefined)
135
+ return string;
136
+ return string.replace(new RegExp(pattern, "g"), replace ?? "");
103
137
  }
104
138
  async RE_MATCH(string, pattern) {
105
139
  const re_pattern = new RegExp(pattern);
@@ -116,28 +150,67 @@ String manipulation and processing operations with regex and URL encoding suppor
116
150
  const result = Array.from(matches).map((v) => v[1]);
117
151
  return result;
118
152
  }
119
- async RE_MATCH_GROUP(match, num) {
120
- let result = null;
121
- if (match)
122
- result = match[num];
123
- return result;
153
+ // ========================================
154
+ // Bash/shell-flavored additions (PR 7)
155
+ // ========================================
156
+ async LINES(str) {
157
+ if (str === null || str === undefined)
158
+ return [];
159
+ if (typeof str !== "string")
160
+ return [];
161
+ return str.split("\n");
124
162
  }
125
- async URL_ENCODE(str) {
126
- let result = "";
127
- if (str)
128
- result = encodeURIComponent(str);
129
- return result;
163
+ async UNLINES(lines) {
164
+ if (!Array.isArray(lines))
165
+ return "";
166
+ return lines.join("\n");
130
167
  }
131
- async URL_DECODE(urlencoded) {
132
- let result = "";
133
- if (urlencoded)
134
- result = decodeURIComponent(urlencoded);
135
- return result;
168
+ async GREP(strings, pattern) {
169
+ if (!Array.isArray(strings))
170
+ return [];
171
+ if (typeof pattern !== "string")
172
+ return [];
173
+ const re = new RegExp(pattern);
174
+ return strings.filter((s) => typeof s === "string" && re.test(s));
175
+ }
176
+ async GREP_V(strings, pattern) {
177
+ if (!Array.isArray(strings))
178
+ return [];
179
+ if (typeof pattern !== "string")
180
+ return strings;
181
+ const re = new RegExp(pattern);
182
+ return strings.filter((s) => typeof s !== "string" || !re.test(s));
183
+ }
184
+ async SED(strings, pattern, repl) {
185
+ if (!Array.isArray(strings))
186
+ return [];
187
+ if (typeof pattern !== "string")
188
+ return strings;
189
+ const re = new RegExp(pattern, "g");
190
+ return strings.map((s) => typeof s === "string" ? s.replace(re, repl ?? "") : s);
191
+ }
192
+ async CUT(strings, sep, field) {
193
+ if (!Array.isArray(strings))
194
+ return [];
195
+ if (typeof sep !== "string")
196
+ return [];
197
+ const idx = typeof field === "number" ? field : Number(field);
198
+ if (!Number.isInteger(idx))
199
+ return [];
200
+ return strings.map((s) => {
201
+ if (typeof s !== "string")
202
+ return null;
203
+ const parts = s.split(sep);
204
+ return idx >= 0 && idx < parts.length ? parts[idx] : null;
205
+ });
136
206
  }
137
207
  }
138
208
  __decorate([
139
- ForthicDirectWord("( str1:string str2:string -- result:string ) OR ( strings:string[] -- result:string )", "Concatenate two strings or array of strings", "CONCAT")
209
+ ForthicWord("( strings:string[] -- result:string )", "Concatenate an array of strings into one string. For two strings: write [s1 s2] CONCAT. For arrays of arrays, use FLATTEN.", "CONCAT")
140
210
  ], StringModule.prototype, "CONCAT", null);
211
+ __decorate([
212
+ ForthicWord("( str:string -- length:number )", "Length of a string in characters (0 if null/undefined).", "STR-LENGTH")
213
+ ], StringModule.prototype, "STR_LENGTH", null);
141
214
  __decorate([
142
215
  ForthicWord("( item:any -- string:string )", "Convert item to string", ">STR")
143
216
  ], StringModule.prototype, "to_STR", null);
@@ -150,12 +223,24 @@ __decorate([
150
223
  __decorate([
151
224
  ForthicWord("( -- char:string )", "Newline character", "/N")
152
225
  ], StringModule.prototype, "slash_N", null);
153
- __decorate([
154
- ForthicWord("( -- char:string )", "Carriage return character", "/R")
155
- ], StringModule.prototype, "slash_R", null);
156
226
  __decorate([
157
227
  ForthicWord("( -- char:string )", "Tab character", "/T")
158
228
  ], StringModule.prototype, "slash_T", null);
229
+ __decorate([
230
+ ForthicWord("( str:string prefix:string -- bool:boolean )", "Returns true if str begins with prefix.", "STARTS-WITH?")
231
+ ], StringModule.prototype, "STARTS_WITH", null);
232
+ __decorate([
233
+ ForthicWord("( str:string suffix:string -- bool:boolean )", "Returns true if str ends with suffix.", "ENDS-WITH?")
234
+ ], StringModule.prototype, "ENDS_WITH", null);
235
+ __decorate([
236
+ ForthicWord("( str:string prefix:string -- result:string )", "Strip prefix from start of str if present (otherwise return str unchanged).", "TRIM-PREFIX")
237
+ ], StringModule.prototype, "TRIM_PREFIX", null);
238
+ __decorate([
239
+ ForthicWord("( str:string suffix:string -- result:string )", "Strip suffix from end of str if present (otherwise return str unchanged).", "TRIM-SUFFIX")
240
+ ], StringModule.prototype, "TRIM_SUFFIX", null);
241
+ __decorate([
242
+ ForthicWord("( str:string pattern:string -- bool:boolean )", "Returns true if str matches the regex pattern. Predicate-only — does not return the match. (jq's `test`.)", "RE-MATCH?")
243
+ ], StringModule.prototype, "RE_MATCH_TEST", null);
159
244
  __decorate([
160
245
  ForthicWord("( string:string -- result:string )", "Convert string to lowercase")
161
246
  ], StringModule.prototype, "LOWERCASE", null);
@@ -169,8 +254,11 @@ __decorate([
169
254
  ForthicWord("( string:string -- result:string )", "Trim whitespace from string")
170
255
  ], StringModule.prototype, "STRIP", null);
171
256
  __decorate([
172
- ForthicWord("( string:string text:string replace:string -- result:string )", "Replace all occurrences of text with replace")
257
+ ForthicWord("( string:string text:string replace:string -- result:string )", "Replace all literal occurrences of text with replace. For regex matching use RE-REPLACE.", "REPLACE")
173
258
  ], StringModule.prototype, "REPLACE", null);
259
+ __decorate([
260
+ ForthicWord("( string:string pattern:string replace:string -- result:string )", "Replace all regex matches of pattern with replace. Same as classic REPLACE behavior.", "RE-REPLACE")
261
+ ], StringModule.prototype, "RE_REPLACE", null);
174
262
  __decorate([
175
263
  ForthicWord("( string:string pattern:string -- match:any )", "Match string against regex pattern", "RE-MATCH")
176
264
  ], StringModule.prototype, "RE_MATCH", null);
@@ -178,12 +266,21 @@ __decorate([
178
266
  ForthicWord("( string:string pattern:string -- matches:any[] )", "Find all regex matches in string", "RE-MATCH-ALL")
179
267
  ], StringModule.prototype, "RE_MATCH_ALL", null);
180
268
  __decorate([
181
- ForthicWord("( match:any num:number -- result:any )", "Get capture group from regex match", "RE-MATCH-GROUP")
182
- ], StringModule.prototype, "RE_MATCH_GROUP", null);
269
+ ForthicWord("( str:string -- lines:string[] )", "Split string on newline. Equivalent to /N SPLIT.", "LINES")
270
+ ], StringModule.prototype, "LINES", null);
271
+ __decorate([
272
+ ForthicWord("( lines:string[] -- str:string )", "Join an array of lines with newlines. Equivalent to /N JOIN.", "UNLINES")
273
+ ], StringModule.prototype, "UNLINES", null);
274
+ __decorate([
275
+ ForthicWord("( strings:string[] pattern:string -- matches:string[] )", "Keep only strings matching the regex pattern (bash grep).", "GREP")
276
+ ], StringModule.prototype, "GREP", null);
277
+ __decorate([
278
+ ForthicWord("( strings:string[] pattern:string -- non_matches:string[] )", "Keep only strings NOT matching the regex pattern (bash grep -v).", "GREP-V")
279
+ ], StringModule.prototype, "GREP_V", null);
183
280
  __decorate([
184
- ForthicWord("( str:string -- encoded:string )", "URL encode string", "URL-ENCODE")
185
- ], StringModule.prototype, "URL_ENCODE", null);
281
+ ForthicWord("( strings:string[] pattern:string repl:string -- strings:string[] )", "Apply RE-REPLACE to each string in the array (bash sed s/pattern/repl/g).", "SED")
282
+ ], StringModule.prototype, "SED", null);
186
283
  __decorate([
187
- ForthicWord("( urlencoded:string -- decoded:string )", "URL decode string", "URL-DECODE")
188
- ], StringModule.prototype, "URL_DECODE", null);
284
+ ForthicWord("( strings:string[] sep:string field:number -- field_values:any[] )", "Split each string on sep and pick the field-th column (bash cut). Out-of-range yields null.", "CUT")
285
+ ], StringModule.prototype, "CUT", null);
189
286
  //# sourceMappingURL=string_module.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"string_module.js","sourceRoot":"","sources":["../../../../../src/forthic/modules/standard/string_module.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"string_module.js","sourceRoot":"","sources":["../../../../../src/forthic/modules/standard/string_module.ts"],"names":[],"mappings":"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"}
@@ -74,7 +74,7 @@ export class Tokenizer {
74
74
  this.input_string = this.unescape_string(string);
75
75
  this.input_pos = 0;
76
76
  this.whitespace = [" ", "\t", "\n", "\r", "(", ")", ","];
77
- this.quote_chars = ['"', "'", "^"];
77
+ this.quote_chars = ['"', "'"];
78
78
  // Token info
79
79
  this.token_start_pos = 0;
80
80
  this.token_end_pos = 0;
@@ -350,9 +350,37 @@ export class Tokenizer {
350
350
  start: this.input_pos,
351
351
  end: this.input_pos,
352
352
  };
353
+ // Whitelist of escape sequences interpreted in regular (single-delimiter)
354
+ // strings. Anything else after a backslash (e.g., \d, \w, \U) stays as
355
+ // the literal pair — preserves regex patterns and Windows-style paths.
356
+ // Triple-quoted strings ('''...''', """...""") are gathered by a
357
+ // separate state and remain fully raw.
358
+ const escape_map = {
359
+ n: "\n",
360
+ t: "\t",
361
+ r: "\r",
362
+ "0": "\0",
363
+ "\\": "\\",
364
+ '"': '"',
365
+ "'": "'",
366
+ };
353
367
  while (this.input_pos < this.input_string.length) {
354
368
  const char = this.input_string[this.input_pos];
355
369
  this.advance_position(1);
370
+ if (char === "\\" && this.input_pos < this.input_string.length) {
371
+ const next_char = this.input_string[this.input_pos];
372
+ if (Object.prototype.hasOwnProperty.call(escape_map, next_char)) {
373
+ this.advance_position(1);
374
+ this.token_string += escape_map[next_char];
375
+ this.string_delta.end = this.input_pos;
376
+ continue;
377
+ }
378
+ // Unrecognized escape: leave both characters literal so regex
379
+ // patterns like '\d+' and Windows paths like 'C:\Users' keep working.
380
+ this.token_string += char;
381
+ this.string_delta.end = this.input_pos;
382
+ continue;
383
+ }
356
384
  if (char === string_delimiter) {
357
385
  const token = new Token(TokenType.STRING, this.token_string, this.get_token_location());
358
386
  this.string_delta = undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"tokenizer.js","sourceRoot":"","sources":["../../../src/forthic/tokenizer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tokenizer.js","sourceRoot":"","sources":["../../../src/forthic/tokenizer.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,13 @@
1
1
  /**
2
2
  * Configuration for a single runtime
3
3
  */
4
+ export type RuntimeTransport = 'grpc' | 'jsonrpc';
4
5
  export interface RuntimeConfig {
5
6
  host: string;
6
7
  port: number;
7
8
  modules: string[];
9
+ /** Optional transport. Defaults to 'grpc' when omitted, for backward compatibility. */
10
+ transport?: RuntimeTransport;
8
11
  }
9
12
  /**
10
13
  * Connection settings
@@ -110,6 +110,11 @@ export class ConfigLoader {
110
110
  throw new Error(`Runtime "${runtimeName}" modules must be strings`);
111
111
  }
112
112
  }
113
+ if (runtimeConfig.transport !== undefined) {
114
+ if (runtimeConfig.transport !== 'grpc' && runtimeConfig.transport !== 'jsonrpc') {
115
+ throw new Error(`Runtime "${runtimeName}" "transport" must be "grpc" or "jsonrpc"`);
116
+ }
117
+ }
113
118
  }
114
119
  /**
115
120
  * Validate connection settings
@@ -1 +1 @@
1
- {"version":3,"file":"config_loader.js","sourceRoot":"","sources":["../../../src/grpc/config_loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config_loader.js","sourceRoot":"","sources":["../../../src/grpc/config_loader.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import { Module } from '../forthic/module.js';
5
5
  import { Interpreter } from '../forthic/interpreter.js';
6
- import { GrpcClient, type GetModuleInfoResponse } from './client.js';
6
+ import type { RuntimeClient, GetModuleInfoResponse } from '../common/runtime_client.js';
7
7
  /**
8
8
  * RemoteModule - Module containing proxy words that execute in a remote runtime
9
9
  *
@@ -32,10 +32,10 @@ export declare class RemoteModule extends Module {
32
32
  private moduleInfo;
33
33
  /**
34
34
  * @param moduleName - Name of the module in the remote runtime (e.g., "pandas")
35
- * @param client - gRPC client connected to the remote runtime
35
+ * @param client - Transport client (gRPC or JSON-RPC) connected to the remote runtime
36
36
  * @param runtimeName - Name of the runtime (e.g., "python") for debugging
37
37
  */
38
- constructor(moduleName: string, client: GrpcClient, runtimeName?: string);
38
+ constructor(moduleName: string, client: RuntimeClient, runtimeName?: string);
39
39
  /**
40
40
  * Initialize the module by discovering words from the remote runtime
41
41
  *
@@ -31,7 +31,7 @@ export class RemoteModule extends Module {
31
31
  moduleInfo = null;
32
32
  /**
33
33
  * @param moduleName - Name of the module in the remote runtime (e.g., "pandas")
34
- * @param client - gRPC client connected to the remote runtime
34
+ * @param client - Transport client (gRPC or JSON-RPC) connected to the remote runtime
35
35
  * @param runtimeName - Name of the runtime (e.g., "python") for debugging
36
36
  */
37
37
  constructor(moduleName, client, runtimeName = 'remote') {
@@ -1 +1 @@
1
- {"version":3,"file":"remote_module.js","sourceRoot":"","sources":["../../../src/grpc/remote_module.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAG9C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,OAAO,YAAa,SAAQ,MAAM;IAC9B,MAAM,CAAa;IACnB,WAAW,CAAS;IACpB,WAAW,GAAY,KAAK,CAAC;IAC7B,UAAU,GAAiC,IAAI,CAAC;IAExD;;;;OAIG;IACH,YAAY,UAAkB,EAAE,MAAkB,EAAE,cAAsB,QAAQ;QAChF,KAAK,CAAC,UAAU,CAAC,CAAC;QAClB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,UAAU;QACd,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,2CAA2C;YAC3C,IAAI,CAAC,UAAU,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAE7D,6CAA6C;YAC7C,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;gBAC7C,MAAM,UAAU,GAAG,IAAI,UAAU,CAC/B,QAAQ,CAAC,IAAI,EACb,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,IAAI,EACT,QAAQ,CAAC,YAAY,EACrB,QAAQ,CAAC,WAAW,CACrB,CAAC;gBAEF,2DAA2D;gBAC3D,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;YACvC,CAAC;YAED,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAC1B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CACb,uCAAuC,IAAI,CAAC,IAAI,UAAU,IAAI,CAAC,WAAW,aAAc,KAAe,CAAC,OAAO,EAAE,CAClH,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,MAAmB;QAC5B,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CACb,iBAAiB,IAAI,CAAC,IAAI,0GAA0G,CACrI,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,aAAa;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,aAAa;QACX,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,YAAY;QACV,OAAO,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC,CAAC;IAC7C,CAAC;CACF"}
1
+ {"version":3,"file":"remote_module.js","sourceRoot":"","sources":["../../../src/grpc/remote_module.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAG9C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,OAAO,YAAa,SAAQ,MAAM;IAC9B,MAAM,CAAgB;IACtB,WAAW,CAAS;IACpB,WAAW,GAAY,KAAK,CAAC;IAC7B,UAAU,GAAiC,IAAI,CAAC;IAExD;;;;OAIG;IACH,YAAY,UAAkB,EAAE,MAAqB,EAAE,cAAsB,QAAQ;QACnF,KAAK,CAAC,UAAU,CAAC,CAAC;QAClB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,UAAU;QACd,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,2CAA2C;YAC3C,IAAI,CAAC,UAAU,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAE7D,6CAA6C;YAC7C,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;gBAC7C,MAAM,UAAU,GAAG,IAAI,UAAU,CAC/B,QAAQ,CAAC,IAAI,EACb,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,IAAI,EACT,QAAQ,CAAC,YAAY,EACrB,QAAQ,CAAC,WAAW,CACrB,CAAC;gBAEF,2DAA2D;gBAC3D,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;YACvC,CAAC;YAED,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAC1B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CACb,uCAAuC,IAAI,CAAC,IAAI,UAAU,IAAI,CAAC,WAAW,aAAc,KAAe,CAAC,OAAO,EAAE,CAClH,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,MAAmB;QAC5B,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CACb,iBAAiB,IAAI,CAAC,IAAI,0GAA0G,CACrI,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,aAAa;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,aAAa;QACX,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,YAAY;QACV,OAAO,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC,CAAC;IAC7C,CAAC;CACF"}
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import { Word, RuntimeInfo } from '../forthic/module.js';
5
5
  import { Interpreter } from '../forthic/interpreter.js';
6
- import { GrpcClient } from './client.js';
6
+ import type { RuntimeClient } from '../common/runtime_client.js';
7
7
  /**
8
8
  * RemoteWord - Proxy word that delegates execution to a remote runtime
9
9
  *
@@ -23,13 +23,13 @@ export declare class RemoteWord extends Word {
23
23
  description: string;
24
24
  /**
25
25
  * @param name - Word name (e.g., "DF_FROM_RECORDS")
26
- * @param client - gRPC client connected to remote runtime
26
+ * @param client - Transport client (gRPC or JSON-RPC) connected to remote runtime
27
27
  * @param runtimeName - Name of remote runtime (e.g., "python")
28
28
  * @param moduleName - Module name (e.g., "pandas")
29
29
  * @param stackEffect - Stack notation (e.g., "( records:array -- df:DataFrame )")
30
30
  * @param description - Human-readable description
31
31
  */
32
- constructor(name: string, client: GrpcClient, runtimeName: string, moduleName: string, stackEffect?: string, description?: string);
32
+ constructor(name: string, client: RuntimeClient, runtimeName: string, moduleName: string, stackEffect?: string, description?: string);
33
33
  /**
34
34
  * Execute word in remote runtime
35
35
  *
@@ -21,7 +21,7 @@ export class RemoteWord extends Word {
21
21
  description;
22
22
  /**
23
23
  * @param name - Word name (e.g., "DF_FROM_RECORDS")
24
- * @param client - gRPC client connected to remote runtime
24
+ * @param client - Transport client (gRPC or JSON-RPC) connected to remote runtime
25
25
  * @param runtimeName - Name of remote runtime (e.g., "python")
26
26
  * @param moduleName - Module name (e.g., "pandas")
27
27
  * @param stackEffect - Stack notation (e.g., "( records:array -- df:DataFrame )")
@@ -1 +1 @@
1
- {"version":3,"file":"remote_word.js","sourceRoot":"","sources":["../../../src/grpc/remote_word.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,IAAI,EAAe,MAAM,sBAAsB,CAAC;AAIzD;;;;;;;;;;GAUG;AACH,MAAM,OAAO,UAAW,SAAQ,IAAI;IAC1B,MAAM,CAAa;IACnB,WAAW,CAAS;IACpB,UAAU,CAAS;IACpB,WAAW,CAAS;IACpB,WAAW,CAAS;IAE3B;;;;;;;OAOG;IACH,YACE,IAAY,EACZ,MAAkB,EAClB,WAAmB,EACnB,UAAkB,EAClB,cAAsB,QAAQ,EAC9B,cAAsB,EAAE;QAExB,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,OAAO,CAAC,MAAmB;QAC/B,IAAI,CAAC;YACH,8BAA8B;YAC9B,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;YACjC,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;YAErC,iCAAiC;YACjC,yEAAyE;YACzE,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YAEzE,4CAA4C;YAC5C,OAAO,MAAM,CAAC,SAAS,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrC,MAAM,CAAC,SAAS,EAAE,CAAC;YACrB,CAAC;YAED,wBAAwB;YACxB,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;gBAC/B,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CACb,+BAA+B,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,WAAW,aAAc,KAAe,CAAC,OAAO,EAAE,CAC1H,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,aAAa;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED;;;OAGG;IACH,cAAc;QACZ,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,WAAW;YACzB,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,KAAK;YACjB,WAAW,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC;SAChC,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"remote_word.js","sourceRoot":"","sources":["../../../src/grpc/remote_word.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,IAAI,EAAe,MAAM,sBAAsB,CAAC;AAIzD;;;;;;;;;;GAUG;AACH,MAAM,OAAO,UAAW,SAAQ,IAAI;IAC1B,MAAM,CAAgB;IACtB,WAAW,CAAS;IACpB,UAAU,CAAS;IACpB,WAAW,CAAS;IACpB,WAAW,CAAS;IAE3B;;;;;;;OAOG;IACH,YACE,IAAY,EACZ,MAAqB,EACrB,WAAmB,EACnB,UAAkB,EAClB,cAAsB,QAAQ,EAC9B,cAAsB,EAAE;QAExB,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,OAAO,CAAC,MAAmB;QAC/B,IAAI,CAAC;YACH,8BAA8B;YAC9B,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;YACjC,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;YAErC,iCAAiC;YACjC,yEAAyE;YACzE,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YAEzE,4CAA4C;YAC5C,OAAO,MAAM,CAAC,SAAS,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrC,MAAM,CAAC,SAAS,EAAE,CAAC;YACrB,CAAC;YAED,wBAAwB;YACxB,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;gBAC/B,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CACb,+BAA+B,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,WAAW,aAAc,KAAe,CAAC,OAAO,EAAE,CAC1H,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,aAAa;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED;;;OAGG;IACH,cAAc;QACZ,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,WAAW;YACzB,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,KAAK;YACjB,WAAW,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC;SAChC,CAAC;IACJ,CAAC;CACF"}
@@ -5,6 +5,7 @@
5
5
  * Used by DefinitionWord for batched remote execution.
6
6
  */
7
7
  import { GrpcClient } from './client.js';
8
+ import type { RuntimeClient } from '../common/runtime_client.js';
8
9
  /**
9
10
  * RuntimeManager - Manages connections to remote Forthic runtimes
10
11
  */
@@ -31,14 +32,14 @@ export declare class RuntimeManager {
31
32
  * @param runtimeName - Name of the runtime (e.g., "python", "ruby")
32
33
  * @param client - GrpcClient instance connected to that runtime
33
34
  */
34
- registerClient(runtimeName: string, client: GrpcClient): void;
35
+ registerClient(runtimeName: string, client: RuntimeClient): void;
35
36
  /**
36
- * Get the gRPC client for a specific runtime
37
+ * Get the runtime client for a specific runtime
37
38
  *
38
39
  * @param runtimeName - Name of the runtime
39
- * @returns GrpcClient instance or undefined if not registered
40
+ * @returns RuntimeClient instance or undefined if not registered
40
41
  */
41
- getClient(runtimeName: string): GrpcClient | undefined;
42
+ getClient(runtimeName: string): RuntimeClient | undefined;
42
43
  /**
43
44
  * Check if a runtime has a registered client
44
45
  *
@@ -48,10 +48,10 @@ export class RuntimeManager {
48
48
  this.clients.set(runtimeName, client);
49
49
  }
50
50
  /**
51
- * Get the gRPC client for a specific runtime
51
+ * Get the runtime client for a specific runtime
52
52
  *
53
53
  * @param runtimeName - Name of the runtime
54
- * @returns GrpcClient instance or undefined if not registered
54
+ * @returns RuntimeClient instance or undefined if not registered
55
55
  */
56
56
  getClient(runtimeName) {
57
57
  return this.clients.get(runtimeName);