@positronic/core 0.0.77 → 0.0.78

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 (130) hide show
  1. package/dist/src/dsl/brain-runner.js +37 -182
  2. package/dist/src/dsl/brain-state-machine.js +58 -112
  3. package/dist/src/dsl/brain.js +1 -0
  4. package/dist/src/dsl/builder/brain.js +250 -412
  5. package/dist/src/dsl/builder/continuation.js +67 -0
  6. package/dist/src/dsl/constants.js +16 -17
  7. package/dist/src/dsl/create-brain.js +29 -45
  8. package/dist/src/dsl/example-webhook.js +1 -1
  9. package/dist/src/dsl/execution/constants.js +0 -4
  10. package/dist/src/dsl/execution/event-channel.js +77 -0
  11. package/dist/src/dsl/execution/event-stream.js +1625 -1474
  12. package/dist/src/dsl/signal-validation.js +0 -1
  13. package/dist/src/dsl/webhook.js +4 -1
  14. package/dist/src/files/event-wrapper.js +268 -0
  15. package/dist/src/files/index.js +1 -0
  16. package/dist/src/files/mime.js +31 -0
  17. package/dist/src/files/types.js +13 -0
  18. package/dist/src/index.js +10 -3
  19. package/dist/src/jsx-runtime.js +49 -0
  20. package/dist/src/memory/{scoped-memory.js → create-memory.js} +5 -5
  21. package/dist/src/plugins/collect-webhooks.js +49 -0
  22. package/dist/src/plugins/define-plugin.js +15 -0
  23. package/dist/src/plugins/index.js +1 -0
  24. package/dist/src/plugins/types.js +4 -0
  25. package/dist/src/store/types.js +2 -3
  26. package/dist/src/template/render-html.js +282 -0
  27. package/dist/src/template/render.js +357 -0
  28. package/dist/src/tools/index.js +88 -27
  29. package/dist/src/ui/generate-page-html.js +6 -6
  30. package/dist/src/ui/{generate-ui.js → generate-page.js} +24 -12
  31. package/dist/src/ui/parse-form-data.js +1 -11
  32. package/dist/src/ui/types.js +0 -123
  33. package/dist/src/yaml/data-validator.js +0 -27
  34. package/dist/src/yaml/type-inference.js +10 -9
  35. package/dist/types/clients/types.d.ts +15 -5
  36. package/dist/types/clients/types.d.ts.map +1 -1
  37. package/dist/types/dsl/brain-runner.d.ts +9 -14
  38. package/dist/types/dsl/brain-runner.d.ts.map +1 -1
  39. package/dist/types/dsl/brain-state-machine.d.ts +18 -28
  40. package/dist/types/dsl/brain-state-machine.d.ts.map +1 -1
  41. package/dist/types/dsl/brain.d.ts +3 -2
  42. package/dist/types/dsl/brain.d.ts.map +1 -1
  43. package/dist/types/dsl/builder/brain.d.ts +85 -228
  44. package/dist/types/dsl/builder/brain.d.ts.map +1 -1
  45. package/dist/types/dsl/builder/continuation.d.ts +16 -0
  46. package/dist/types/dsl/builder/continuation.d.ts.map +1 -0
  47. package/dist/types/dsl/constants.d.ts +12 -12
  48. package/dist/types/dsl/constants.d.ts.map +1 -1
  49. package/dist/types/dsl/create-brain.d.ts +17 -57
  50. package/dist/types/dsl/create-brain.d.ts.map +1 -1
  51. package/dist/types/dsl/definitions/blocks.d.ts +67 -66
  52. package/dist/types/dsl/definitions/blocks.d.ts.map +1 -1
  53. package/dist/types/dsl/definitions/brain-types.d.ts +8 -11
  54. package/dist/types/dsl/definitions/brain-types.d.ts.map +1 -1
  55. package/dist/types/dsl/definitions/events.d.ts +61 -56
  56. package/dist/types/dsl/definitions/events.d.ts.map +1 -1
  57. package/dist/types/dsl/definitions/run-params.d.ts +20 -21
  58. package/dist/types/dsl/definitions/run-params.d.ts.map +1 -1
  59. package/dist/types/dsl/definitions/steps.d.ts +1 -1
  60. package/dist/types/dsl/definitions/steps.d.ts.map +1 -1
  61. package/dist/types/dsl/example-webhook.d.ts +3 -3
  62. package/dist/types/dsl/example-webhook.d.ts.map +1 -1
  63. package/dist/types/dsl/execution/constants.d.ts +0 -5
  64. package/dist/types/dsl/execution/constants.d.ts.map +1 -1
  65. package/dist/types/dsl/execution/event-channel.d.ts +16 -0
  66. package/dist/types/dsl/execution/event-channel.d.ts.map +1 -0
  67. package/dist/types/dsl/execution/event-stream.d.ts +46 -34
  68. package/dist/types/dsl/execution/event-stream.d.ts.map +1 -1
  69. package/dist/types/dsl/signal-validation.d.ts.map +1 -1
  70. package/dist/types/dsl/types.d.ts +21 -83
  71. package/dist/types/dsl/types.d.ts.map +1 -1
  72. package/dist/types/dsl/webhook.d.ts +12 -2
  73. package/dist/types/dsl/webhook.d.ts.map +1 -1
  74. package/dist/types/files/event-wrapper.d.ts +20 -0
  75. package/dist/types/files/event-wrapper.d.ts.map +1 -0
  76. package/dist/types/files/index.d.ts +2 -0
  77. package/dist/types/files/index.d.ts.map +1 -0
  78. package/dist/types/files/mime.d.ts +2 -0
  79. package/dist/types/files/mime.d.ts.map +1 -0
  80. package/dist/types/files/types.d.ts +88 -0
  81. package/dist/types/files/types.d.ts.map +1 -0
  82. package/dist/types/index.d.ts +22 -13
  83. package/dist/types/index.d.ts.map +1 -1
  84. package/dist/types/jsx-runtime.d.ts +35 -0
  85. package/dist/types/jsx-runtime.d.ts.map +1 -0
  86. package/dist/types/memory/{scoped-memory.d.ts → create-memory.d.ts} +7 -7
  87. package/dist/types/memory/create-memory.d.ts.map +1 -0
  88. package/dist/types/memory/types.d.ts +4 -4
  89. package/dist/types/memory/types.d.ts.map +1 -1
  90. package/dist/types/plugins/collect-webhooks.d.ts +8 -0
  91. package/dist/types/plugins/collect-webhooks.d.ts.map +1 -0
  92. package/dist/types/plugins/define-plugin.d.ts +25 -0
  93. package/dist/types/plugins/define-plugin.d.ts.map +1 -0
  94. package/dist/types/plugins/index.d.ts +3 -0
  95. package/dist/types/plugins/index.d.ts.map +1 -0
  96. package/dist/types/plugins/types.d.ts +83 -0
  97. package/dist/types/plugins/types.d.ts.map +1 -0
  98. package/dist/types/store/index.d.ts +1 -1
  99. package/dist/types/store/index.d.ts.map +1 -1
  100. package/dist/types/store/types.d.ts +0 -8
  101. package/dist/types/store/types.d.ts.map +1 -1
  102. package/dist/types/template/render-html.d.ts +9 -0
  103. package/dist/types/template/render-html.d.ts.map +1 -0
  104. package/dist/types/template/render.d.ts +15 -0
  105. package/dist/types/template/render.d.ts.map +1 -0
  106. package/dist/types/tools/index.d.ts +39 -27
  107. package/dist/types/tools/index.d.ts.map +1 -1
  108. package/dist/types/ui/generate-page-html.d.ts +4 -6
  109. package/dist/types/ui/generate-page-html.d.ts.map +1 -1
  110. package/dist/types/ui/{generate-ui.d.ts → generate-page.d.ts} +6 -6
  111. package/dist/types/ui/generate-page.d.ts.map +1 -0
  112. package/dist/types/ui/parse-form-data.d.ts +1 -5
  113. package/dist/types/ui/parse-form-data.d.ts.map +1 -1
  114. package/dist/types/ui/types.d.ts +0 -49
  115. package/dist/types/ui/types.d.ts.map +1 -1
  116. package/dist/types/yaml/data-validator.d.ts +0 -5
  117. package/dist/types/yaml/data-validator.d.ts.map +1 -1
  118. package/dist/types/yaml/type-inference.d.ts +4 -2
  119. package/dist/types/yaml/type-inference.d.ts.map +1 -1
  120. package/dist/types/yaml/types.d.ts +0 -1
  121. package/dist/types/yaml/types.d.ts.map +1 -1
  122. package/package.json +5 -1
  123. package/dist/src/dsl/agent-messages.js +0 -5
  124. package/dist/src/ui/validate-form.js +0 -428
  125. package/dist/types/dsl/agent-messages.d.ts +0 -12
  126. package/dist/types/dsl/agent-messages.d.ts.map +0 -1
  127. package/dist/types/memory/scoped-memory.d.ts.map +0 -1
  128. package/dist/types/ui/generate-ui.d.ts.map +0 -1
  129. package/dist/types/ui/validate-form.d.ts +0 -45
  130. package/dist/types/ui/validate-form.d.ts.map +0 -1
@@ -0,0 +1,282 @@
1
+ function _array_like_to_array(arr, len) {
2
+ if (len == null || len > arr.length) len = arr.length;
3
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
4
+ return arr2;
5
+ }
6
+ function _array_with_holes(arr) {
7
+ if (Array.isArray(arr)) return arr;
8
+ }
9
+ function _define_property(obj, key, value) {
10
+ if (key in obj) {
11
+ Object.defineProperty(obj, key, {
12
+ value: value,
13
+ enumerable: true,
14
+ configurable: true,
15
+ writable: true
16
+ });
17
+ } else {
18
+ obj[key] = value;
19
+ }
20
+ return obj;
21
+ }
22
+ function _iterable_to_array_limit(arr, i) {
23
+ var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
24
+ if (_i == null) return;
25
+ var _arr = [];
26
+ var _n = true;
27
+ var _d = false;
28
+ var _s, _e;
29
+ try {
30
+ for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
31
+ _arr.push(_s.value);
32
+ if (i && _arr.length === i) break;
33
+ }
34
+ } catch (err) {
35
+ _d = true;
36
+ _e = err;
37
+ } finally{
38
+ try {
39
+ if (!_n && _i["return"] != null) _i["return"]();
40
+ } finally{
41
+ if (_d) throw _e;
42
+ }
43
+ }
44
+ return _arr;
45
+ }
46
+ function _non_iterable_rest() {
47
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
48
+ }
49
+ function _object_spread(target) {
50
+ for(var i = 1; i < arguments.length; i++){
51
+ var source = arguments[i] != null ? arguments[i] : {};
52
+ var ownKeys = Object.keys(source);
53
+ if (typeof Object.getOwnPropertySymbols === "function") {
54
+ ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
55
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
56
+ }));
57
+ }
58
+ ownKeys.forEach(function(key) {
59
+ _define_property(target, key, source[key]);
60
+ });
61
+ }
62
+ return target;
63
+ }
64
+ function ownKeys(object, enumerableOnly) {
65
+ var keys = Object.keys(object);
66
+ if (Object.getOwnPropertySymbols) {
67
+ var symbols = Object.getOwnPropertySymbols(object);
68
+ if (enumerableOnly) {
69
+ symbols = symbols.filter(function(sym) {
70
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
71
+ });
72
+ }
73
+ keys.push.apply(keys, symbols);
74
+ }
75
+ return keys;
76
+ }
77
+ function _object_spread_props(target, source) {
78
+ source = source != null ? source : {};
79
+ if (Object.getOwnPropertyDescriptors) {
80
+ Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
81
+ } else {
82
+ ownKeys(Object(source)).forEach(function(key) {
83
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
84
+ });
85
+ }
86
+ return target;
87
+ }
88
+ function _object_without_properties(source, excluded) {
89
+ if (source == null) return {};
90
+ var target = _object_without_properties_loose(source, excluded);
91
+ var key, i;
92
+ if (Object.getOwnPropertySymbols) {
93
+ var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
94
+ for(i = 0; i < sourceSymbolKeys.length; i++){
95
+ key = sourceSymbolKeys[i];
96
+ if (excluded.indexOf(key) >= 0) continue;
97
+ if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
98
+ target[key] = source[key];
99
+ }
100
+ }
101
+ return target;
102
+ }
103
+ function _object_without_properties_loose(source, excluded) {
104
+ if (source == null) return {};
105
+ var target = {};
106
+ var sourceKeys = Object.keys(source);
107
+ var key, i;
108
+ for(i = 0; i < sourceKeys.length; i++){
109
+ key = sourceKeys[i];
110
+ if (excluded.indexOf(key) >= 0) continue;
111
+ target[key] = source[key];
112
+ }
113
+ return target;
114
+ }
115
+ function _sliced_to_array(arr, i) {
116
+ return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();
117
+ }
118
+ function _type_of(obj) {
119
+ "@swc/helpers - typeof";
120
+ return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
121
+ }
122
+ function _unsupported_iterable_to_array(o, minLen) {
123
+ if (!o) return;
124
+ if (typeof o === "string") return _array_like_to_array(o, minLen);
125
+ var n = Object.prototype.toString.call(o).slice(8, -1);
126
+ if (n === "Object" && o.constructor) n = o.constructor.name;
127
+ if (n === "Map" || n === "Set") return Array.from(n);
128
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
129
+ }
130
+ import { Fragment, File, Resource, Form } from '../jsx-runtime.js';
131
+ var VOID_ELEMENTS = new Set([
132
+ 'area',
133
+ 'base',
134
+ 'br',
135
+ 'col',
136
+ 'embed',
137
+ 'hr',
138
+ 'img',
139
+ 'input',
140
+ 'link',
141
+ 'meta',
142
+ 'source',
143
+ 'track',
144
+ 'wbr'
145
+ ]);
146
+ var PROP_ALIASES = {
147
+ className: 'class',
148
+ htmlFor: 'for',
149
+ httpEquiv: 'http-equiv',
150
+ acceptCharset: 'accept-charset'
151
+ };
152
+ var BOOLEAN_ATTRS = new Set([
153
+ 'checked',
154
+ 'disabled',
155
+ 'readonly',
156
+ 'required',
157
+ 'autofocus',
158
+ 'autoplay',
159
+ 'controls',
160
+ 'defer',
161
+ 'hidden',
162
+ 'loop',
163
+ 'multiple',
164
+ 'muted',
165
+ 'novalidate',
166
+ 'open',
167
+ 'selected'
168
+ ]);
169
+ function escapeHtml(str) {
170
+ return str.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;').replace(/'/g, '&#039;');
171
+ }
172
+ function escapeAttr(str) {
173
+ return str.replace(/&/g, '&amp;').replace(/"/g, '&quot;');
174
+ }
175
+ function styleToString(style) {
176
+ return Object.entries(style).map(function(param) {
177
+ var _param = _sliced_to_array(param, 2), key = _param[0], value = _param[1];
178
+ var cssKey = key.replace(/[A-Z]/g, function(m) {
179
+ return "-".concat(m.toLowerCase());
180
+ });
181
+ return "".concat(cssKey, ":").concat(value);
182
+ }).join(';');
183
+ }
184
+ function renderAttrs(props) {
185
+ var parts = [];
186
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
187
+ try {
188
+ for(var _iterator = Object.entries(props)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
189
+ var _step_value = _sliced_to_array(_step.value, 2), key = _step_value[0], value = _step_value[1];
190
+ if (key === 'children' || key === 'dangerouslySetInnerHTML') continue;
191
+ if (value == null || value === false) continue;
192
+ var attrName = PROP_ALIASES[key] || key;
193
+ if (BOOLEAN_ATTRS.has(attrName) && value === true) {
194
+ parts.push(attrName);
195
+ continue;
196
+ }
197
+ if (key === 'style' && (typeof value === "undefined" ? "undefined" : _type_of(value)) === 'object') {
198
+ parts.push('style="'.concat(escapeAttr(styleToString(value)), '"'));
199
+ continue;
200
+ }
201
+ parts.push("".concat(attrName, '="').concat(escapeAttr(String(value)), '"'));
202
+ }
203
+ } catch (err) {
204
+ _didIteratorError = true;
205
+ _iteratorError = err;
206
+ } finally{
207
+ try {
208
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
209
+ _iterator.return();
210
+ }
211
+ } finally{
212
+ if (_didIteratorError) {
213
+ throw _iteratorError;
214
+ }
215
+ }
216
+ }
217
+ return parts.length > 0 ? ' ' + parts.join(' ') : '';
218
+ }
219
+ function renderChildren(children, context) {
220
+ return children.map(function(child) {
221
+ return renderNode(child, context);
222
+ }).join('');
223
+ }
224
+ function renderNode(node, context) {
225
+ if (node == null || typeof node === 'boolean') return '';
226
+ if (typeof node === 'string') return escapeHtml(node);
227
+ if (typeof node === 'number') return String(node);
228
+ if (Array.isArray(node)) {
229
+ return node.map(function(n) {
230
+ return renderNode(n, context);
231
+ }).join('');
232
+ }
233
+ // TemplateNode
234
+ var templateNode = node;
235
+ if (templateNode.type === Fragment) {
236
+ return renderChildren(templateNode.children, context);
237
+ }
238
+ if (templateNode.type === File || templateNode.type === Resource) {
239
+ var name = templateNode.type === File ? 'File' : 'Resource';
240
+ throw new Error("<".concat(name, "> elements are not supported in HTML pages."));
241
+ }
242
+ if (templateNode.type === Form) {
243
+ var _templateNode_props = templateNode.props, _ = _templateNode_props.children, restProps = _object_without_properties(_templateNode_props, [
244
+ "children"
245
+ ]);
246
+ var formProps = _object_spread_props(_object_spread({}, restProps), {
247
+ method: 'POST'
248
+ });
249
+ if (context.formAction) {
250
+ formProps.action = context.formAction;
251
+ }
252
+ var body = renderChildren(templateNode.children, context);
253
+ return "<form".concat(renderAttrs(formProps), ">").concat(body, "</form>");
254
+ }
255
+ // HTML element (string type)
256
+ if (typeof templateNode.type === 'string') {
257
+ var tag = templateNode.type;
258
+ var attrs = renderAttrs(templateNode.props);
259
+ if (VOID_ELEMENTS.has(tag)) {
260
+ return "<".concat(tag).concat(attrs, ">");
261
+ }
262
+ var body1 = renderChildren(templateNode.children, context);
263
+ return "<".concat(tag).concat(attrs, ">").concat(body1, "</").concat(tag, ">");
264
+ }
265
+ // Function component (sync only)
266
+ var fn = templateNode.type;
267
+ var result = fn(_object_spread_props(_object_spread({}, templateNode.props), {
268
+ children: templateNode.children
269
+ }));
270
+ if (result && typeof result.then === 'function') {
271
+ throw new Error('Async function components are not supported in HTML pages. ' + 'Load data in a preceding .step() and pass it through state.');
272
+ }
273
+ return renderNode(result, context);
274
+ }
275
+ export function renderHtml(node) {
276
+ var context = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
277
+ return renderNode(node, context);
278
+ }
279
+ export function wrapHtmlDocument(body, options) {
280
+ var title = options === null || options === void 0 ? void 0 : options.title;
281
+ return '<!DOCTYPE html>\n<html lang="en">\n<head>\n<meta charset="UTF-8">\n<meta name="viewport" content="width=device-width, initial-scale=1.0">\n<meta http-equiv="Content-Security-Policy" content="script-src \'none\';">\n'.concat(title ? "<title>".concat(escapeHtml(title), "</title>") : '', "\n</head>\n<body>\n").concat(body, "\n</body>\n</html>");
282
+ }
@@ -0,0 +1,357 @@
1
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
2
+ try {
3
+ var info = gen[key](arg);
4
+ var value = info.value;
5
+ } catch (error) {
6
+ reject(error);
7
+ return;
8
+ }
9
+ if (info.done) {
10
+ resolve(value);
11
+ } else {
12
+ Promise.resolve(value).then(_next, _throw);
13
+ }
14
+ }
15
+ function _async_to_generator(fn) {
16
+ return function() {
17
+ var self = this, args = arguments;
18
+ return new Promise(function(resolve, reject) {
19
+ var gen = fn.apply(self, args);
20
+ function _next(value) {
21
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
22
+ }
23
+ function _throw(err) {
24
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
25
+ }
26
+ _next(undefined);
27
+ });
28
+ };
29
+ }
30
+ function _define_property(obj, key, value) {
31
+ if (key in obj) {
32
+ Object.defineProperty(obj, key, {
33
+ value: value,
34
+ enumerable: true,
35
+ configurable: true,
36
+ writable: true
37
+ });
38
+ } else {
39
+ obj[key] = value;
40
+ }
41
+ return obj;
42
+ }
43
+ function _object_spread(target) {
44
+ for(var i = 1; i < arguments.length; i++){
45
+ var source = arguments[i] != null ? arguments[i] : {};
46
+ var ownKeys = Object.keys(source);
47
+ if (typeof Object.getOwnPropertySymbols === "function") {
48
+ ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
49
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
50
+ }));
51
+ }
52
+ ownKeys.forEach(function(key) {
53
+ _define_property(target, key, source[key]);
54
+ });
55
+ }
56
+ return target;
57
+ }
58
+ function ownKeys(object, enumerableOnly) {
59
+ var keys = Object.keys(object);
60
+ if (Object.getOwnPropertySymbols) {
61
+ var symbols = Object.getOwnPropertySymbols(object);
62
+ if (enumerableOnly) {
63
+ symbols = symbols.filter(function(sym) {
64
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
65
+ });
66
+ }
67
+ keys.push.apply(keys, symbols);
68
+ }
69
+ return keys;
70
+ }
71
+ function _object_spread_props(target, source) {
72
+ source = source != null ? source : {};
73
+ if (Object.getOwnPropertyDescriptors) {
74
+ Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
75
+ } else {
76
+ ownKeys(Object(source)).forEach(function(key) {
77
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
78
+ });
79
+ }
80
+ return target;
81
+ }
82
+ function _type_of(obj) {
83
+ "@swc/helpers - typeof";
84
+ return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
85
+ }
86
+ function _ts_generator(thisArg, body) {
87
+ var f, y, t, _ = {
88
+ label: 0,
89
+ sent: function() {
90
+ if (t[0] & 1) throw t[1];
91
+ return t[1];
92
+ },
93
+ trys: [],
94
+ ops: []
95
+ }, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
96
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() {
97
+ return this;
98
+ }), g;
99
+ function verb(n) {
100
+ return function(v) {
101
+ return step([
102
+ n,
103
+ v
104
+ ]);
105
+ };
106
+ }
107
+ function step(op) {
108
+ if (f) throw new TypeError("Generator is already executing.");
109
+ while(g && (g = 0, op[0] && (_ = 0)), _)try {
110
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
111
+ if (y = 0, t) op = [
112
+ op[0] & 2,
113
+ t.value
114
+ ];
115
+ switch(op[0]){
116
+ case 0:
117
+ case 1:
118
+ t = op;
119
+ break;
120
+ case 4:
121
+ _.label++;
122
+ return {
123
+ value: op[1],
124
+ done: false
125
+ };
126
+ case 5:
127
+ _.label++;
128
+ y = op[1];
129
+ op = [
130
+ 0
131
+ ];
132
+ continue;
133
+ case 7:
134
+ op = _.ops.pop();
135
+ _.trys.pop();
136
+ continue;
137
+ default:
138
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
139
+ _ = 0;
140
+ continue;
141
+ }
142
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
143
+ _.label = op[1];
144
+ break;
145
+ }
146
+ if (op[0] === 6 && _.label < t[1]) {
147
+ _.label = t[1];
148
+ t = op;
149
+ break;
150
+ }
151
+ if (t && _.label < t[2]) {
152
+ _.label = t[2];
153
+ _.ops.push(op);
154
+ break;
155
+ }
156
+ if (t[2]) _.ops.pop();
157
+ _.trys.pop();
158
+ continue;
159
+ }
160
+ op = body.call(thisArg, _);
161
+ } catch (e) {
162
+ op = [
163
+ 6,
164
+ e
165
+ ];
166
+ y = 0;
167
+ } finally{
168
+ f = t = 0;
169
+ }
170
+ if (op[0] & 5) throw op[1];
171
+ return {
172
+ value: op[0] ? op[1] : void 0,
173
+ done: true
174
+ };
175
+ }
176
+ }
177
+ import { Fragment, File, Resource, Form } from '../jsx-runtime.js';
178
+ export function buildTemplateContext(files, resources) {
179
+ return {
180
+ readFile: files ? function(name) {
181
+ return files.open(name).read();
182
+ } : undefined,
183
+ readResource: resources ? function(name) {
184
+ return resources.loadText(name);
185
+ } : undefined
186
+ };
187
+ }
188
+ export function isTemplateNode(value) {
189
+ return value != null && (typeof value === "undefined" ? "undefined" : _type_of(value)) === 'object' && 'type' in value && 'props' in value && 'children' in value;
190
+ }
191
+ export function resolveTemplate(_0) {
192
+ return _async_to_generator(function(raw) {
193
+ var context, resolved;
194
+ var _arguments = arguments;
195
+ return _ts_generator(this, function(_state) {
196
+ switch(_state.label){
197
+ case 0:
198
+ context = _arguments.length > 1 && _arguments[1] !== void 0 ? _arguments[1] : {};
199
+ return [
200
+ 4,
201
+ raw
202
+ ];
203
+ case 1:
204
+ resolved = _state.sent();
205
+ if (typeof resolved === 'string') return [
206
+ 2,
207
+ resolved
208
+ ];
209
+ return [
210
+ 2,
211
+ renderTemplate(resolved, context)
212
+ ];
213
+ }
214
+ });
215
+ }).apply(this, arguments);
216
+ }
217
+ export function renderTemplate(_0) {
218
+ return _async_to_generator(function(node) {
219
+ var context, raw;
220
+ var _arguments = arguments;
221
+ return _ts_generator(this, function(_state) {
222
+ switch(_state.label){
223
+ case 0:
224
+ context = _arguments.length > 1 && _arguments[1] !== void 0 ? _arguments[1] : {};
225
+ return [
226
+ 4,
227
+ renderNode(node, context)
228
+ ];
229
+ case 1:
230
+ raw = _state.sent();
231
+ return [
232
+ 2,
233
+ dedent(raw)
234
+ ];
235
+ }
236
+ });
237
+ }).apply(this, arguments);
238
+ }
239
+ function renderNode(node, context) {
240
+ return _async_to_generator(function() {
241
+ var parts, name, name1, fn, result;
242
+ return _ts_generator(this, function(_state) {
243
+ switch(_state.label){
244
+ case 0:
245
+ if (node == null || typeof node === 'boolean') return [
246
+ 2,
247
+ ''
248
+ ];
249
+ if (typeof node === 'string') return [
250
+ 2,
251
+ node
252
+ ];
253
+ if (typeof node === 'number') return [
254
+ 2,
255
+ String(node)
256
+ ];
257
+ if (!Array.isArray(node)) return [
258
+ 3,
259
+ 2
260
+ ];
261
+ return [
262
+ 4,
263
+ Promise.all(node.map(function(n) {
264
+ return renderNode(n, context);
265
+ }))
266
+ ];
267
+ case 1:
268
+ parts = _state.sent();
269
+ return [
270
+ 2,
271
+ parts.join('')
272
+ ];
273
+ case 2:
274
+ // TemplateNode
275
+ if (typeof node.type === 'string') {
276
+ throw new Error("HTML elements (<".concat(node.type, ">) cannot be used in prompt templates. Use the html property in .page() instead."));
277
+ }
278
+ if (node.type === Form) {
279
+ throw new Error('<Form> cannot be used in prompt templates. Use the html property in .page() instead.');
280
+ }
281
+ if (node.type === Fragment) {
282
+ return [
283
+ 2,
284
+ renderNode(node.children, context)
285
+ ];
286
+ }
287
+ if (node.type === File) {
288
+ name = node.props.name;
289
+ if (!context.readFile) throw new Error('<File> requires a files service to be configured');
290
+ return [
291
+ 2,
292
+ context.readFile(name)
293
+ ];
294
+ }
295
+ if (node.type === Resource) {
296
+ name1 = node.props.name;
297
+ if (!context.readResource) throw new Error('<Resource> requires resources to be configured');
298
+ return [
299
+ 2,
300
+ context.readResource(name1)
301
+ ];
302
+ }
303
+ // Function component
304
+ fn = node.type;
305
+ return [
306
+ 4,
307
+ fn(_object_spread_props(_object_spread({}, node.props), {
308
+ children: node.children
309
+ }))
310
+ ];
311
+ case 3:
312
+ result = _state.sent();
313
+ return [
314
+ 2,
315
+ renderNode(result, context)
316
+ ];
317
+ }
318
+ });
319
+ })();
320
+ }
321
+ function dedent(text) {
322
+ // Trim leading and trailing whitespace-only lines
323
+ var trimmed = text.replace(/^\s*\n/, '').replace(/\n\s*$/, '');
324
+ if (!trimmed) return trimmed;
325
+ var lines = trimmed.split('\n');
326
+ // Find minimum indentation of non-empty lines
327
+ var minIndent = Infinity;
328
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
329
+ try {
330
+ for(var _iterator = lines[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
331
+ var line = _step.value;
332
+ if (line.trim().length === 0) continue;
333
+ var indent = line.match(/^(\s*)/);
334
+ if (indent && indent[1].length < minIndent) {
335
+ minIndent = indent[1].length;
336
+ }
337
+ }
338
+ } catch (err) {
339
+ _didIteratorError = true;
340
+ _iteratorError = err;
341
+ } finally{
342
+ try {
343
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
344
+ _iterator.return();
345
+ }
346
+ } finally{
347
+ if (_didIteratorError) {
348
+ throw _iteratorError;
349
+ }
350
+ }
351
+ }
352
+ if (minIndent === 0 || minIndent === Infinity) return trimmed;
353
+ // Strip common indentation
354
+ return lines.map(function(line) {
355
+ return line.slice(minIndent);
356
+ }).join('\n');
357
+ }