@positronic/cli 0.0.60 → 0.0.61

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.
@@ -6,6 +6,48 @@ function _array_like_to_array(arr, len) {
6
6
  function _array_with_holes(arr) {
7
7
  if (Array.isArray(arr)) return arr;
8
8
  }
9
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
10
+ try {
11
+ var info = gen[key](arg);
12
+ var value = info.value;
13
+ } catch (error) {
14
+ reject(error);
15
+ return;
16
+ }
17
+ if (info.done) {
18
+ resolve(value);
19
+ } else {
20
+ Promise.resolve(value).then(_next, _throw);
21
+ }
22
+ }
23
+ function _async_to_generator(fn) {
24
+ return function() {
25
+ var self = this, args = arguments;
26
+ return new Promise(function(resolve, reject) {
27
+ var gen = fn.apply(self, args);
28
+ function _next(value) {
29
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
30
+ }
31
+ function _throw(err) {
32
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
33
+ }
34
+ _next(undefined);
35
+ });
36
+ };
37
+ }
38
+ function _define_property(obj, key, value) {
39
+ if (key in obj) {
40
+ Object.defineProperty(obj, key, {
41
+ value: value,
42
+ enumerable: true,
43
+ configurable: true,
44
+ writable: true
45
+ });
46
+ } else {
47
+ obj[key] = value;
48
+ }
49
+ return obj;
50
+ }
9
51
  function _iterable_to_array_limit(arr, i) {
10
52
  var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
11
53
  if (_i == null) return;
@@ -33,6 +75,45 @@ function _iterable_to_array_limit(arr, i) {
33
75
  function _non_iterable_rest() {
34
76
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
35
77
  }
78
+ function _object_spread(target) {
79
+ for(var i = 1; i < arguments.length; i++){
80
+ var source = arguments[i] != null ? arguments[i] : {};
81
+ var ownKeys = Object.keys(source);
82
+ if (typeof Object.getOwnPropertySymbols === "function") {
83
+ ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
84
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
85
+ }));
86
+ }
87
+ ownKeys.forEach(function(key) {
88
+ _define_property(target, key, source[key]);
89
+ });
90
+ }
91
+ return target;
92
+ }
93
+ function ownKeys(object, enumerableOnly) {
94
+ var keys = Object.keys(object);
95
+ if (Object.getOwnPropertySymbols) {
96
+ var symbols = Object.getOwnPropertySymbols(object);
97
+ if (enumerableOnly) {
98
+ symbols = symbols.filter(function(sym) {
99
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
100
+ });
101
+ }
102
+ keys.push.apply(keys, symbols);
103
+ }
104
+ return keys;
105
+ }
106
+ function _object_spread_props(target, source) {
107
+ source = source != null ? source : {};
108
+ if (Object.getOwnPropertyDescriptors) {
109
+ Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
110
+ } else {
111
+ ownKeys(Object(source)).forEach(function(key) {
112
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
113
+ });
114
+ }
115
+ return target;
116
+ }
36
117
  function _sliced_to_array(arr, i) {
37
118
  return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();
38
119
  }
@@ -44,10 +125,102 @@ function _unsupported_iterable_to_array(o, minLen) {
44
125
  if (n === "Map" || n === "Set") return Array.from(n);
45
126
  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
46
127
  }
128
+ function _ts_generator(thisArg, body) {
129
+ var f, y, t, _ = {
130
+ label: 0,
131
+ sent: function() {
132
+ if (t[0] & 1) throw t[1];
133
+ return t[1];
134
+ },
135
+ trys: [],
136
+ ops: []
137
+ }, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
138
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() {
139
+ return this;
140
+ }), g;
141
+ function verb(n) {
142
+ return function(v) {
143
+ return step([
144
+ n,
145
+ v
146
+ ]);
147
+ };
148
+ }
149
+ function step(op) {
150
+ if (f) throw new TypeError("Generator is already executing.");
151
+ while(g && (g = 0, op[0] && (_ = 0)), _)try {
152
+ 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;
153
+ if (y = 0, t) op = [
154
+ op[0] & 2,
155
+ t.value
156
+ ];
157
+ switch(op[0]){
158
+ case 0:
159
+ case 1:
160
+ t = op;
161
+ break;
162
+ case 4:
163
+ _.label++;
164
+ return {
165
+ value: op[1],
166
+ done: false
167
+ };
168
+ case 5:
169
+ _.label++;
170
+ y = op[1];
171
+ op = [
172
+ 0
173
+ ];
174
+ continue;
175
+ case 7:
176
+ op = _.ops.pop();
177
+ _.trys.pop();
178
+ continue;
179
+ default:
180
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
181
+ _ = 0;
182
+ continue;
183
+ }
184
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
185
+ _.label = op[1];
186
+ break;
187
+ }
188
+ if (op[0] === 6 && _.label < t[1]) {
189
+ _.label = t[1];
190
+ t = op;
191
+ break;
192
+ }
193
+ if (t && _.label < t[2]) {
194
+ _.label = t[2];
195
+ _.ops.push(op);
196
+ break;
197
+ }
198
+ if (t[2]) _.ops.pop();
199
+ _.trys.pop();
200
+ continue;
201
+ }
202
+ op = body.call(thisArg, _);
203
+ } catch (e) {
204
+ op = [
205
+ 6,
206
+ e
207
+ ];
208
+ y = 0;
209
+ } finally{
210
+ f = t = 0;
211
+ }
212
+ if (op[0] & 5) throw op[1];
213
+ return {
214
+ value: op[0] ? op[1] : void 0,
215
+ done: true
216
+ };
217
+ }
218
+ }
47
219
  import React, { useState, useEffect, useRef } from 'react';
48
220
  import { Text, Box, useStdout, useInput, useApp } from 'ink';
49
221
  import { EventSource } from 'eventsource';
50
222
  import { getApiBaseUrl, isApiLocalDevMode, apiClient } from '../commands/helpers.js';
223
+ import { getAuthHeader } from '../lib/jwt-auth.js';
51
224
  import { STATUS } from '@positronic/core';
52
225
  import { useApiDelete } from '../hooks/useApi.js';
53
226
  import { ErrorComponent } from './error.js';
@@ -123,7 +296,33 @@ export var TopNavigator = function(param) {
123
296
  }
124
297
  var baseUrl = getApiBaseUrl();
125
298
  var url = "".concat(baseUrl, "/brains/watch");
126
- var es = new EventSource(url);
299
+ // Create authenticated fetch wrapper for production mode
300
+ // Each fetch call gets a fresh JWT token (tokens have 30-second lifetime)
301
+ var authenticatedFetch = function(fetchUrl, init) {
302
+ return _async_to_generator(function() {
303
+ var authHeader;
304
+ return _ts_generator(this, function(_state) {
305
+ switch(_state.label){
306
+ case 0:
307
+ return [
308
+ 4,
309
+ getAuthHeader()
310
+ ];
311
+ case 1:
312
+ authHeader = _state.sent();
313
+ return [
314
+ 2,
315
+ fetch(fetchUrl, _object_spread_props(_object_spread({}, init), {
316
+ headers: _object_spread({}, init === null || init === void 0 ? void 0 : init.headers, authHeader)
317
+ }))
318
+ ];
319
+ }
320
+ });
321
+ })();
322
+ };
323
+ var es = new EventSource(url, !isApiLocalDevMode() ? {
324
+ fetch: authenticatedFetch
325
+ } : undefined);
127
326
  eventSourceRef.current = es;
128
327
  setIsConnected(false);
129
328
  setError(null);
@@ -9,6 +9,35 @@ function _array_with_holes(arr) {
9
9
  function _array_without_holes(arr) {
10
10
  if (Array.isArray(arr)) return _array_like_to_array(arr);
11
11
  }
12
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
13
+ try {
14
+ var info = gen[key](arg);
15
+ var value = info.value;
16
+ } catch (error) {
17
+ reject(error);
18
+ return;
19
+ }
20
+ if (info.done) {
21
+ resolve(value);
22
+ } else {
23
+ Promise.resolve(value).then(_next, _throw);
24
+ }
25
+ }
26
+ function _async_to_generator(fn) {
27
+ return function() {
28
+ var self = this, args = arguments;
29
+ return new Promise(function(resolve, reject) {
30
+ var gen = fn.apply(self, args);
31
+ function _next(value) {
32
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
33
+ }
34
+ function _throw(err) {
35
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
36
+ }
37
+ _next(undefined);
38
+ });
39
+ };
40
+ }
12
41
  function _define_property(obj, key, value) {
13
42
  if (key in obj) {
14
43
  Object.defineProperty(obj, key, {
@@ -70,6 +99,30 @@ function _object_spread(target) {
70
99
  }
71
100
  return target;
72
101
  }
102
+ function ownKeys(object, enumerableOnly) {
103
+ var keys = Object.keys(object);
104
+ if (Object.getOwnPropertySymbols) {
105
+ var symbols = Object.getOwnPropertySymbols(object);
106
+ if (enumerableOnly) {
107
+ symbols = symbols.filter(function(sym) {
108
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
109
+ });
110
+ }
111
+ keys.push.apply(keys, symbols);
112
+ }
113
+ return keys;
114
+ }
115
+ function _object_spread_props(target, source) {
116
+ source = source != null ? source : {};
117
+ if (Object.getOwnPropertyDescriptors) {
118
+ Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
119
+ } else {
120
+ ownKeys(Object(source)).forEach(function(key) {
121
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
122
+ });
123
+ }
124
+ return target;
125
+ }
73
126
  function _sliced_to_array(arr, i) {
74
127
  return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();
75
128
  }
@@ -84,6 +137,97 @@ function _unsupported_iterable_to_array(o, minLen) {
84
137
  if (n === "Map" || n === "Set") return Array.from(n);
85
138
  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
86
139
  }
140
+ function _ts_generator(thisArg, body) {
141
+ var f, y, t, _ = {
142
+ label: 0,
143
+ sent: function() {
144
+ if (t[0] & 1) throw t[1];
145
+ return t[1];
146
+ },
147
+ trys: [],
148
+ ops: []
149
+ }, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
150
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() {
151
+ return this;
152
+ }), g;
153
+ function verb(n) {
154
+ return function(v) {
155
+ return step([
156
+ n,
157
+ v
158
+ ]);
159
+ };
160
+ }
161
+ function step(op) {
162
+ if (f) throw new TypeError("Generator is already executing.");
163
+ while(g && (g = 0, op[0] && (_ = 0)), _)try {
164
+ 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;
165
+ if (y = 0, t) op = [
166
+ op[0] & 2,
167
+ t.value
168
+ ];
169
+ switch(op[0]){
170
+ case 0:
171
+ case 1:
172
+ t = op;
173
+ break;
174
+ case 4:
175
+ _.label++;
176
+ return {
177
+ value: op[1],
178
+ done: false
179
+ };
180
+ case 5:
181
+ _.label++;
182
+ y = op[1];
183
+ op = [
184
+ 0
185
+ ];
186
+ continue;
187
+ case 7:
188
+ op = _.ops.pop();
189
+ _.trys.pop();
190
+ continue;
191
+ default:
192
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
193
+ _ = 0;
194
+ continue;
195
+ }
196
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
197
+ _.label = op[1];
198
+ break;
199
+ }
200
+ if (op[0] === 6 && _.label < t[1]) {
201
+ _.label = t[1];
202
+ t = op;
203
+ break;
204
+ }
205
+ if (t && _.label < t[2]) {
206
+ _.label = t[2];
207
+ _.ops.push(op);
208
+ break;
209
+ }
210
+ if (t[2]) _.ops.pop();
211
+ _.trys.pop();
212
+ continue;
213
+ }
214
+ op = body.call(thisArg, _);
215
+ } catch (e) {
216
+ op = [
217
+ 6,
218
+ e
219
+ ];
220
+ y = 0;
221
+ } finally{
222
+ f = t = 0;
223
+ }
224
+ if (op[0] & 5) throw op[1];
225
+ return {
226
+ value: op[0] ? op[1] : void 0,
227
+ done: true
228
+ };
229
+ }
230
+ }
87
231
  import React, { useState, useEffect, useRef } from 'react';
88
232
  import { Text, Box, useStdout, useInput, useApp } from 'ink';
89
233
  import TextInput from 'ink-text-input';
@@ -91,6 +235,7 @@ import { EventSource } from 'eventsource';
91
235
  import { BRAIN_EVENTS, STATUS, reconstructBrainTree, createBrainExecutionMachine, sendEvent } from '@positronic/core';
92
236
  import { useBrainMachine } from '../hooks/useBrainMachine.js';
93
237
  import { getApiBaseUrl, isApiLocalDevMode } from '../commands/helpers.js';
238
+ import { getAuthHeader } from '../lib/jwt-auth.js';
94
239
  import { ErrorComponent } from './error.js';
95
240
  import { EventsView } from './events-view.js';
96
241
  import { StateView } from './state-view.js';
@@ -279,7 +424,33 @@ export var Watch = function(param) {
279
424
  useEffect(function() {
280
425
  var baseUrl = getApiBaseUrl();
281
426
  var url = "".concat(baseUrl, "/brains/runs/").concat(runId, "/watch");
282
- var es = new EventSource(url);
427
+ // Create authenticated fetch wrapper for production mode
428
+ // Each fetch call gets a fresh JWT token (tokens have 30-second lifetime)
429
+ var authenticatedFetch = function(fetchUrl, init) {
430
+ return _async_to_generator(function() {
431
+ var authHeader;
432
+ return _ts_generator(this, function(_state) {
433
+ switch(_state.label){
434
+ case 0:
435
+ return [
436
+ 4,
437
+ getAuthHeader()
438
+ ];
439
+ case 1:
440
+ authHeader = _state.sent();
441
+ return [
442
+ 2,
443
+ fetch(fetchUrl, _object_spread_props(_object_spread({}, init), {
444
+ headers: _object_spread({}, init === null || init === void 0 ? void 0 : init.headers, authHeader)
445
+ }))
446
+ ];
447
+ }
448
+ });
449
+ })();
450
+ };
451
+ var es = new EventSource(url, !isApiLocalDevMode() ? {
452
+ fetch: authenticatedFetch
453
+ } : undefined);
283
454
  // Reset connection state for new connection
284
455
  // Note: rootBrain and isComplete are handled by the new machine (via useMemo)
285
456
  setIsConnected(false);
@@ -1 +1 @@
1
- {"version":3,"file":"top-navigator.d.ts","sourceRoot":"","sources":["../../../src/components/top-navigator.tsx"],"names":[],"mappings":"AAcA,UAAU,iBAAiB;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAID,eAAO,MAAM,YAAY,GAAI,iBAAiB,iBAAiB,4CAmT9D,CAAC"}
1
+ {"version":3,"file":"top-navigator.d.ts","sourceRoot":"","sources":["../../../src/components/top-navigator.tsx"],"names":[],"mappings":"AAeA,UAAU,iBAAiB;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAID,eAAO,MAAM,YAAY,GAAI,iBAAiB,iBAAiB,4CAgU9D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../../../src/components/watch.tsx"],"names":[],"mappings":"AAgMA,UAAU,UAAU;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,eAAO,MAAM,KAAK,GAAI,wDAAuE,UAAU,4CAketG,CAAC"}
1
+ {"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../../../src/components/watch.tsx"],"names":[],"mappings":"AAiMA,UAAU,UAAU;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,eAAO,MAAM,KAAK,GAAI,wDAAuE,UAAU,4CAgftG,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@positronic/cli",
3
- "version": "0.0.60",
3
+ "version": "0.0.61",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -23,9 +23,9 @@
23
23
  "clean": "rm -rf tsconfig.tsbuildinfo dist node_modules"
24
24
  },
25
25
  "dependencies": {
26
- "@positronic/core": "^0.0.60",
27
- "@positronic/spec": "^0.0.60",
28
- "@positronic/template-new-project": "^0.0.60",
26
+ "@positronic/core": "^0.0.61",
27
+ "@positronic/spec": "^0.0.61",
28
+ "@positronic/template-new-project": "^0.0.61",
29
29
  "caz": "^2.0.0",
30
30
  "chokidar": "^3.6.0",
31
31
  "dotenv": "^16.4.7",