@positronic/cli 0.0.55 → 0.0.57

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 (94) hide show
  1. package/dist/src/cli.js +142 -2
  2. package/dist/src/commands/auth.js +98 -0
  3. package/dist/src/commands/brain.js +3 -2
  4. package/dist/src/commands/helpers.js +48 -10
  5. package/dist/src/commands/project-config-manager.js +119 -0
  6. package/dist/src/commands/users.js +91 -0
  7. package/dist/src/components/agent-chat-view.js +125 -0
  8. package/dist/src/components/auth-list.js +56 -0
  9. package/dist/src/components/auth-login.js +209 -0
  10. package/dist/src/components/auth-logout.js +75 -0
  11. package/dist/src/components/auth-status.js +88 -0
  12. package/dist/src/components/brain-run.js +287 -254
  13. package/dist/src/components/brain-top-table.js +4 -0
  14. package/dist/src/components/event-detail.js +364 -0
  15. package/dist/src/components/events-view.js +379 -0
  16. package/dist/src/components/state-view.js +52 -0
  17. package/dist/src/components/top-navigator.js +80 -6
  18. package/dist/src/components/types.js +1 -0
  19. package/dist/src/components/users-create.js +293 -0
  20. package/dist/src/components/users-delete.js +294 -0
  21. package/dist/src/components/users-keys-add.js +156 -0
  22. package/dist/src/components/users-keys-list.js +119 -0
  23. package/dist/src/components/users-keys-remove.js +299 -0
  24. package/dist/src/components/users-list.js +109 -0
  25. package/dist/src/components/watch-keyboard.js +136 -0
  26. package/dist/src/components/watch-machine.js +573 -0
  27. package/dist/src/components/watch-resolver.js +3 -2
  28. package/dist/src/components/watch.js +390 -36
  29. package/dist/src/hooks/useApi.js +80 -42
  30. package/dist/src/lib/request-signer.js +208 -0
  31. package/dist/src/lib/ssh-key-utils.js +212 -0
  32. package/dist/src/utils/agent-utils.js +107 -0
  33. package/dist/types/cli.d.ts.map +1 -1
  34. package/dist/types/commands/auth.d.ts +36 -0
  35. package/dist/types/commands/auth.d.ts.map +1 -0
  36. package/dist/types/commands/brain.d.ts +2 -1
  37. package/dist/types/commands/brain.d.ts.map +1 -1
  38. package/dist/types/commands/helpers.d.ts.map +1 -1
  39. package/dist/types/commands/project-config-manager.d.ts +43 -0
  40. package/dist/types/commands/project-config-manager.d.ts.map +1 -1
  41. package/dist/types/commands/users.d.ts +33 -0
  42. package/dist/types/commands/users.d.ts.map +1 -0
  43. package/dist/types/components/agent-chat-view.d.ts +12 -0
  44. package/dist/types/components/agent-chat-view.d.ts.map +1 -0
  45. package/dist/types/components/auth-list.d.ts +7 -0
  46. package/dist/types/components/auth-list.d.ts.map +1 -0
  47. package/dist/types/components/auth-login.d.ts +9 -0
  48. package/dist/types/components/auth-login.d.ts.map +1 -0
  49. package/dist/types/components/auth-logout.d.ts +8 -0
  50. package/dist/types/components/auth-logout.d.ts.map +1 -0
  51. package/dist/types/components/auth-status.d.ts +7 -0
  52. package/dist/types/components/auth-status.d.ts.map +1 -0
  53. package/dist/types/components/brain-run.d.ts +11 -1
  54. package/dist/types/components/brain-run.d.ts.map +1 -1
  55. package/dist/types/components/brain-top-table.d.ts.map +1 -1
  56. package/dist/types/components/event-detail.d.ts +10 -0
  57. package/dist/types/components/event-detail.d.ts.map +1 -0
  58. package/dist/types/components/events-view.d.ts +13 -0
  59. package/dist/types/components/events-view.d.ts.map +1 -0
  60. package/dist/types/components/state-view.d.ts +13 -0
  61. package/dist/types/components/state-view.d.ts.map +1 -0
  62. package/dist/types/components/top-navigator.d.ts.map +1 -1
  63. package/dist/types/components/types.d.ts +11 -0
  64. package/dist/types/components/types.d.ts.map +1 -0
  65. package/dist/types/components/users-create.d.ts +6 -0
  66. package/dist/types/components/users-create.d.ts.map +1 -0
  67. package/dist/types/components/users-delete.d.ts +7 -0
  68. package/dist/types/components/users-delete.d.ts.map +1 -0
  69. package/dist/types/components/users-keys-add.d.ts +8 -0
  70. package/dist/types/components/users-keys-add.d.ts.map +1 -0
  71. package/dist/types/components/users-keys-list.d.ts +6 -0
  72. package/dist/types/components/users-keys-list.d.ts.map +1 -0
  73. package/dist/types/components/users-keys-remove.d.ts +8 -0
  74. package/dist/types/components/users-keys-remove.d.ts.map +1 -0
  75. package/dist/types/components/users-list.d.ts +2 -0
  76. package/dist/types/components/users-list.d.ts.map +1 -0
  77. package/dist/types/components/watch-keyboard.d.ts +56 -0
  78. package/dist/types/components/watch-keyboard.d.ts.map +1 -0
  79. package/dist/types/components/watch-machine.d.ts +171 -0
  80. package/dist/types/components/watch-machine.d.ts.map +1 -0
  81. package/dist/types/components/watch-resolver.d.ts +2 -1
  82. package/dist/types/components/watch-resolver.d.ts.map +1 -1
  83. package/dist/types/components/watch.d.ts +2 -1
  84. package/dist/types/components/watch.d.ts.map +1 -1
  85. package/dist/types/hooks/useApi.d.ts.map +1 -1
  86. package/dist/types/hooks/useBrainMachine.d.ts +9 -3
  87. package/dist/types/hooks/useBrainMachine.d.ts.map +1 -1
  88. package/dist/types/lib/request-signer.d.ts +51 -0
  89. package/dist/types/lib/request-signer.d.ts.map +1 -0
  90. package/dist/types/lib/ssh-key-utils.d.ts +45 -0
  91. package/dist/types/lib/ssh-key-utils.d.ts.map +1 -0
  92. package/dist/types/utils/agent-utils.d.ts +20 -0
  93. package/dist/types/utils/agent-utils.d.ts.map +1 -0
  94. package/package.json +7 -4
@@ -0,0 +1,107 @@
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 _iterable_to_array_limit(arr, i) {
10
+ var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
11
+ if (_i == null) return;
12
+ var _arr = [];
13
+ var _n = true;
14
+ var _d = false;
15
+ var _s, _e;
16
+ try {
17
+ for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
18
+ _arr.push(_s.value);
19
+ if (i && _arr.length === i) break;
20
+ }
21
+ } catch (err) {
22
+ _d = true;
23
+ _e = err;
24
+ } finally{
25
+ try {
26
+ if (!_n && _i["return"] != null) _i["return"]();
27
+ } finally{
28
+ if (_d) throw _e;
29
+ }
30
+ }
31
+ return _arr;
32
+ }
33
+ function _non_iterable_rest() {
34
+ 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
+ }
36
+ function _sliced_to_array(arr, i) {
37
+ return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();
38
+ }
39
+ function _unsupported_iterable_to_array(o, minLen) {
40
+ if (!o) return;
41
+ if (typeof o === "string") return _array_like_to_array(o, minLen);
42
+ var n = Object.prototype.toString.call(o).slice(8, -1);
43
+ if (n === "Object" && o.constructor) n = o.constructor.name;
44
+ if (n === "Map" || n === "Set") return Array.from(n);
45
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
46
+ }
47
+ import { BRAIN_EVENTS } from '@positronic/core';
48
+ /**
49
+ * Get display label for an agent.
50
+ * If stepTitle is 'main' (brain-level agent), use brainTitle instead.
51
+ */ export function getAgentLabel(stepTitle, brainTitle) {
52
+ if (stepTitle === 'main' && brainTitle) {
53
+ return brainTitle;
54
+ }
55
+ return stepTitle;
56
+ }
57
+ /**
58
+ * Extract all unique agent loops from events.
59
+ * Groups by stepId to handle multiple agents.
60
+ */ export function getAgentLoops(events, brainTitle) {
61
+ var agentMap = new Map();
62
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
63
+ try {
64
+ for(var _iterator = events[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
65
+ var event = _step.value.event;
66
+ if (event.type === BRAIN_EVENTS.AGENT_START) {
67
+ var agentStart = event;
68
+ var existing = agentMap.get(agentStart.stepId);
69
+ if (!existing) {
70
+ agentMap.set(agentStart.stepId, {
71
+ startEvent: agentStart,
72
+ rawResponseEvents: []
73
+ });
74
+ }
75
+ } else if (event.type === BRAIN_EVENTS.AGENT_RAW_RESPONSE_MESSAGE) {
76
+ var rawResponse = event;
77
+ var existing1 = agentMap.get(rawResponse.stepId);
78
+ if (existing1) {
79
+ existing1.rawResponseEvents.push(rawResponse);
80
+ }
81
+ }
82
+ }
83
+ } catch (err) {
84
+ _didIteratorError = true;
85
+ _iteratorError = err;
86
+ } finally{
87
+ try {
88
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
89
+ _iterator.return();
90
+ }
91
+ } finally{
92
+ if (_didIteratorError) {
93
+ throw _iteratorError;
94
+ }
95
+ }
96
+ }
97
+ return Array.from(agentMap.entries()).map(function(param) {
98
+ var _param = _sliced_to_array(param, 2), stepId = _param[0], _param_ = _param[1], startEvent = _param_.startEvent, rawResponseEvents = _param_.rawResponseEvents;
99
+ return {
100
+ stepId: stepId,
101
+ stepTitle: startEvent.stepTitle,
102
+ label: getAgentLabel(startEvent.stepTitle, brainTitle),
103
+ startEvent: startEvent,
104
+ rawResponseEvents: rawResponseEvents
105
+ };
106
+ });
107
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAK5D,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,YAAY,KAAK,GAAG,CAAC;CAC9C;AAoBD,wBAAgB,QAAQ,CAAC,OAAO,EAAE,UAAU,4BA0mC3C"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAU1B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAK5D,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,YAAY,KAAK,GAAG,CAAC;CAC9C;AAoBD,wBAAgB,QAAQ,CAAC,OAAO,EAAE,UAAU,4BA+3C3C"}
@@ -0,0 +1,36 @@
1
+ import type { ArgumentsCamelCase } from 'yargs';
2
+ import React from 'react';
3
+ import { ProjectConfigManager } from './project-config-manager.js';
4
+ interface LoginArgs {
5
+ path?: string;
6
+ project?: boolean;
7
+ }
8
+ interface LogoutArgs {
9
+ project?: boolean;
10
+ }
11
+ export declare class AuthCommand {
12
+ private configManager;
13
+ constructor(configManager?: ProjectConfigManager);
14
+ /**
15
+ * Handles the 'px auth' or 'px auth status' command.
16
+ * Shows current auth configuration.
17
+ */
18
+ status(): React.ReactElement;
19
+ /**
20
+ * Handles the 'px auth login' command.
21
+ * Configure SSH key for authentication.
22
+ */
23
+ login({ path, project }: ArgumentsCamelCase<LoginArgs>): React.ReactElement;
24
+ /**
25
+ * Handles the 'px auth logout' command.
26
+ * Clear SSH key configuration.
27
+ */
28
+ logout({ project }: ArgumentsCamelCase<LogoutArgs>): React.ReactElement;
29
+ /**
30
+ * Handles the 'px auth list' command.
31
+ * List available SSH keys.
32
+ */
33
+ list(): React.ReactElement;
34
+ }
35
+ export {};
36
+ //# sourceMappingURL=auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/commands/auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAChD,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE,UAAU,SAAS;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,UAAU,UAAU;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,aAAa,CAAuB;gBAEhC,aAAa,CAAC,EAAE,oBAAoB;IAIhD;;;OAGG;IACH,MAAM,IAAI,KAAK,CAAC,YAAY;IAM5B;;;OAGG;IACH,KAAK,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,kBAAkB,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,YAAY;IAQ3E;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,kBAAkB,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,YAAY;IAOvE;;;OAGG;IACH,IAAI,IAAI,KAAK,CAAC,YAAY;CAK3B"}
@@ -24,6 +24,7 @@ interface BrainRunArgs {
24
24
  }
25
25
  interface BrainWatchArgs {
26
26
  identifier: string;
27
+ events?: boolean;
27
28
  }
28
29
  interface BrainKillArgs {
29
30
  runId: string;
@@ -38,7 +39,7 @@ export declare class BrainCommand {
38
39
  show({ brain, runId, steps, }: ArgumentsCamelCase<BrainShowArgs>): React.ReactElement;
39
40
  rerun({ brain, runId, startsAt, stopsAfter, }: ArgumentsCamelCase<BrainRerunArgs>): React.ReactElement;
40
41
  run({ brain, watch, options }: ArgumentsCamelCase<BrainRunArgs>): React.ReactElement;
41
- watch({ identifier, }: ArgumentsCamelCase<BrainWatchArgs>): React.ReactElement;
42
+ watch({ identifier, events, }: ArgumentsCamelCase<BrainWatchArgs>): React.ReactElement;
42
43
  kill({ runId, force, }: ArgumentsCamelCase<BrainKillArgs>): React.ReactElement;
43
44
  top({ brain }: ArgumentsCamelCase<BrainTopArgs>): React.ReactElement;
44
45
  }
@@ -1 +1 @@
1
- {"version":3,"file":"brain.d.ts","sourceRoot":"","sources":["../../../src/commands/brain.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAChD,OAAO,KAAK,MAAM,OAAO,CAAC;AAa1B,UAAU,aAAa;CAAG;AAC1B,UAAU,gBAAgB;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AACD,UAAU,aAAa;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AACD,UAAU,cAAc;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AACD,UAAU,YAAY;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AACD,UAAU,cAAc;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB;AACD,UAAU,aAAa;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;CAChB;AACD,UAAU,YAAY;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,YAAY;IACvB,IAAI,CAAC,IAAI,EAAE,kBAAkB,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,YAAY;IAIjE,OAAO,CAAC,EACN,KAAK,EACL,KAAK,GACN,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,GAAG,KAAK,CAAC,YAAY;IAQ5D,IAAI,CAAC,EACH,KAAK,EACL,KAAK,EACL,KAAK,GACN,EAAE,kBAAkB,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,YAAY;IAqBzD,KAAK,CAAC,EACJ,KAAK,EACL,KAAK,EACL,QAAQ,EACR,UAAU,GACX,EAAE,kBAAkB,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC,YAAY;IAa1D,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,kBAAkB,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC,YAAY;IAQpF,KAAK,CAAC,EACJ,UAAU,GACX,EAAE,kBAAkB,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC,YAAY;IAI1D,IAAI,CAAC,EACH,KAAK,EACL,KAAK,GACN,EAAE,kBAAkB,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,YAAY;IAIzD,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,kBAAkB,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC,YAAY;CAGrE"}
1
+ {"version":3,"file":"brain.d.ts","sourceRoot":"","sources":["../../../src/commands/brain.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAChD,OAAO,KAAK,MAAM,OAAO,CAAC;AAa1B,UAAU,aAAa;CAAG;AAC1B,UAAU,gBAAgB;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AACD,UAAU,aAAa;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AACD,UAAU,cAAc;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AACD,UAAU,YAAY;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AACD,UAAU,cAAc;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AACD,UAAU,aAAa;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;CAChB;AACD,UAAU,YAAY;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,YAAY;IACvB,IAAI,CAAC,IAAI,EAAE,kBAAkB,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,YAAY;IAIjE,OAAO,CAAC,EACN,KAAK,EACL,KAAK,GACN,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,GAAG,KAAK,CAAC,YAAY;IAQ5D,IAAI,CAAC,EACH,KAAK,EACL,KAAK,EACL,KAAK,GACN,EAAE,kBAAkB,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,YAAY;IAqBzD,KAAK,CAAC,EACJ,KAAK,EACL,KAAK,EACL,QAAQ,EACR,UAAU,GACX,EAAE,kBAAkB,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC,YAAY;IAa1D,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,kBAAkB,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC,YAAY;IAQpF,KAAK,CAAC,EACJ,UAAU,EACV,MAAM,GACP,EAAE,kBAAkB,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC,YAAY;IAI1D,IAAI,CAAC,EACH,KAAK,EACL,KAAK,GACN,EAAE,kBAAkB,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,YAAY;IAIzD,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,kBAAkB,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC,YAAY;CAGrE"}
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/commands/helpers.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAStD,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,gBAAgB,GAAG,CAAC,QAAQ,EAAE,YAAY,KAAK,IAAI,CAAC;AAGhE,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC;AAMzC;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,GAAE,OAAc,GAAG,IAAI,CAGtF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAOtC;AAGD,eAAO,MAAM,SAAS;qBACG,MAAM,YAAY,WAAW,KAAG,OAAO,CAAC,QAAQ,CAAC;CAiBzE,CAAC;AAEF,wBAAsB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,iBAiF5E;AAED,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,aAAa,EAAE,CAsCxE;AAeD,UAAU,UAAU;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAClD;AAED,MAAM,MAAM,oBAAoB,GAAG,CAAC,QAAQ,EAAE;IAC5C,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,UAAU,GAAG,WAAW,GAAG,UAAU,CAAC;IAC9C,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;CAC5B,KAAK,IAAI,CAAC;AAEX;;GAEG;AACH,wBAAsB,aAAa,CACjC,eAAe,EAAE,MAAM,EACvB,MAAM,GAAE,SAAqB,EAC7B,UAAU,CAAC,EAAE,oBAAoB,GAChC,OAAO,CAAC,UAAU,CAAC,CA+KrB;AAqKD;;GAEG;AACH,wBAAsB,aAAa,CACjC,eAAe,EAAE,MAAM,EACvB,MAAM,GAAE,SAAqB,mBAoB9B;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAwCnE;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAO3E;AAsCD;;GAEG;AACH,wBAAsB,cAAc,CAClC,IAAI,CAAC,EAAE,MAAM,EACb,SAAS,SAAO,GACf,OAAO,CAAC,OAAO,CAAC,CAsBlB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,0BAA0B,CAC9C,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,MAAM,GAAE,SAAqB,EAC7B,UAAU,CAAC,EAAE,gBAAgB,EAC7B,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC,CA2If"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/commands/helpers.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAUtD,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,gBAAgB,GAAG,CAAC,QAAQ,EAAE,YAAY,KAAK,IAAI,CAAC;AAGhE,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC;AAMzC;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,GAAE,OAAc,GAAG,IAAI,CAGtF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAOtC;AAGD,eAAO,MAAM,SAAS;qBACG,MAAM,YAAY,WAAW,KAAG,OAAO,CAAC,QAAQ,CAAC;CAgDzE,CAAC;AAEF,wBAAsB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,iBAsF5E;AAED,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,aAAa,EAAE,CAsCxE;AAeD,UAAU,UAAU;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAClD;AAED,MAAM,MAAM,oBAAoB,GAAG,CAAC,QAAQ,EAAE;IAC5C,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,UAAU,GAAG,WAAW,GAAG,UAAU,CAAC;IAC9C,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;CAC5B,KAAK,IAAI,CAAC;AAEX;;GAEG;AACH,wBAAsB,aAAa,CACjC,eAAe,EAAE,MAAM,EACvB,MAAM,GAAE,SAAqB,EAC7B,UAAU,CAAC,EAAE,oBAAoB,GAChC,OAAO,CAAC,UAAU,CAAC,CA+KrB;AAqKD;;GAEG;AACH,wBAAsB,aAAa,CACjC,eAAe,EAAE,MAAM,EACvB,MAAM,GAAE,SAAqB,mBAoB9B;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAwCnE;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAO3E;AAsCD;;GAEG;AACH,wBAAsB,cAAc,CAClC,IAAI,CAAC,EAAE,MAAM,EACb,SAAS,SAAO,GACf,OAAO,CAAC,OAAO,CAAC,CAsBlB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,0BAA0B,CAC9C,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,MAAM,GAAE,SAAqB,EAC7B,UAAU,CAAC,EAAE,gBAAgB,EAC7B,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC,CA2If"}
@@ -2,11 +2,13 @@ export interface Project {
2
2
  name: string;
3
3
  url: string;
4
4
  addedAt: string;
5
+ privateKeyPath?: string;
5
6
  }
6
7
  export interface ProjectConfig {
7
8
  version: string;
8
9
  currentProject: string | null;
9
10
  projects: Project[];
11
+ defaultPrivateKeyPath?: string;
10
12
  }
11
13
  export declare class ProjectConfigManager {
12
14
  private configPath;
@@ -33,5 +35,46 @@ export declare class ProjectConfigManager {
33
35
  projects: Project[];
34
36
  current: string | null;
35
37
  };
38
+ /**
39
+ * Get the resolved private key path following the priority order:
40
+ * 1. POSITRONIC_PRIVATE_KEY environment variable (highest)
41
+ * 2. Project-specific privateKeyPath (if project selected and has override)
42
+ * 3. Global defaultPrivateKeyPath from config
43
+ * 4. ~/.ssh/id_rsa fallback (lowest)
44
+ */
45
+ getPrivateKeyPath(): string | null;
46
+ /**
47
+ * Set the global default private key path
48
+ */
49
+ setDefaultPrivateKeyPath(keyPath: string): {
50
+ success: boolean;
51
+ error?: string;
52
+ };
53
+ /**
54
+ * Set the private key path for a specific project
55
+ */
56
+ setProjectPrivateKeyPath(projectName: string, keyPath: string): {
57
+ success: boolean;
58
+ error?: string;
59
+ };
60
+ /**
61
+ * Clear the global default private key path
62
+ */
63
+ clearDefaultPrivateKeyPath(): void;
64
+ /**
65
+ * Clear the private key path for a specific project
66
+ */
67
+ clearProjectPrivateKeyPath(projectName: string): {
68
+ success: boolean;
69
+ error?: string;
70
+ };
71
+ /**
72
+ * Get the default private key path (global config only, no env var or project override)
73
+ */
74
+ getDefaultPrivateKeyPath(): string | undefined;
75
+ /**
76
+ * Get the private key path for a specific project
77
+ */
78
+ getProjectPrivateKeyPath(projectName: string): string | undefined;
36
79
  }
37
80
  //# sourceMappingURL=project-config-manager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"project-config-manager.d.ts","sourceRoot":"","sources":["../../../src/commands/project-config-manager.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB;AAED,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,SAAS,CAAS;gBAEd,eAAe,CAAC,EAAE,MAAM;IASpC,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,gBAAgB;IAQxB,IAAI,IAAI,aAAa;IAmBrB,KAAK,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAKlC,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;IAmC3E,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;IAajE,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;IAoBjE,iBAAiB,IAAI,OAAO,GAAG,IAAI;IASnC,YAAY,IAAI;QAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;QAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE;CAOhE"}
1
+ {"version":3,"file":"project-config-manager.d.ts","sourceRoot":"","sources":["../../../src/commands/project-config-manager.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,SAAS,CAAS;gBAEd,eAAe,CAAC,EAAE,MAAM;IASpC,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,gBAAgB;IAQxB,IAAI,IAAI,aAAa;IAmBrB,KAAK,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAKlC,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;IAmC3E,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;IAajE,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;IAoBjE,iBAAiB,IAAI,OAAO,GAAG,IAAI;IASnC,YAAY,IAAI;QAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;QAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE;IAQ/D;;;;;;OAMG;IACH,iBAAiB,IAAI,MAAM,GAAG,IAAI;IAyBlC;;OAEG;IACH,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;IAO/E;;OAEG;IACH,wBAAwB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;IAapG;;OAEG;IACH,0BAA0B,IAAI,IAAI;IAMlC;;OAEG;IACH,0BAA0B,CAAC,WAAW,EAAE,MAAM,GAAG;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;IAarF;;OAEG;IACH,wBAAwB,IAAI,MAAM,GAAG,SAAS;IAK9C;;OAEG;IACH,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;CAKlE"}
@@ -0,0 +1,33 @@
1
+ import type { ArgumentsCamelCase } from 'yargs';
2
+ import React from 'react';
3
+ interface UsersCreateArgs {
4
+ name: string;
5
+ }
6
+ interface UsersDeleteArgs {
7
+ id: string;
8
+ force: boolean;
9
+ }
10
+ interface UsersKeysListArgs {
11
+ id: string;
12
+ }
13
+ interface UsersKeysAddArgs {
14
+ id: string;
15
+ pubkeyPath: string;
16
+ label?: string;
17
+ }
18
+ interface UsersKeysRemoveArgs {
19
+ id: string;
20
+ fingerprint: string;
21
+ force: boolean;
22
+ }
23
+ export declare class UsersCommand {
24
+ constructor();
25
+ list(): React.ReactElement;
26
+ create({ name }: ArgumentsCamelCase<UsersCreateArgs>): React.ReactElement;
27
+ delete({ id, force }: ArgumentsCamelCase<UsersDeleteArgs>): React.ReactElement;
28
+ keysList({ id }: ArgumentsCamelCase<UsersKeysListArgs>): React.ReactElement;
29
+ keysAdd({ id, pubkeyPath, label, }: ArgumentsCamelCase<UsersKeysAddArgs>): React.ReactElement;
30
+ keysRemove({ id, fingerprint, force, }: ArgumentsCamelCase<UsersKeysRemoveArgs>): React.ReactElement;
31
+ }
32
+ export {};
33
+ //# sourceMappingURL=users.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"users.d.ts","sourceRoot":"","sources":["../../../src/commands/users.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAChD,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,eAAe;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,UAAU,iBAAiB;IACzB,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,UAAU,gBAAgB;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,mBAAmB;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,qBAAa,YAAY;;IAGvB,IAAI,IAAI,KAAK,CAAC,YAAY;IAI1B,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,kBAAkB,CAAC,eAAe,CAAC,GAAG,KAAK,CAAC,YAAY;IAIzE,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,kBAAkB,CAAC,eAAe,CAAC,GAAG,KAAK,CAAC,YAAY;IAI9E,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,kBAAkB,CAAC,iBAAiB,CAAC,GAAG,KAAK,CAAC,YAAY;IAI3E,OAAO,CAAC,EACN,EAAE,EACF,UAAU,EACV,KAAK,GACN,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,GAAG,KAAK,CAAC,YAAY;IAQ5D,UAAU,CAAC,EACT,EAAE,EACF,WAAW,EACX,KAAK,GACN,EAAE,kBAAkB,CAAC,mBAAmB,CAAC,GAAG,KAAK,CAAC,YAAY;CAOhE"}
@@ -0,0 +1,12 @@
1
+ import type { AgentStartEvent, AgentRawResponseMessageEvent } from '@positronic/core';
2
+ interface AgentChatViewProps {
3
+ label: string;
4
+ agentStartEvent: AgentStartEvent;
5
+ rawResponseEvents: AgentRawResponseMessageEvent[];
6
+ scrollOffset: number;
7
+ onScrollChange: (offset: number) => void;
8
+ isActive?: boolean;
9
+ }
10
+ export declare const AgentChatView: ({ label, agentStartEvent, rawResponseEvents, scrollOffset, onScrollChange, isActive, }: AgentChatViewProps) => import("react/jsx-runtime").JSX.Element;
11
+ export {};
12
+ //# sourceMappingURL=agent-chat-view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-chat-view.d.ts","sourceRoot":"","sources":["../../../src/components/agent-chat-view.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,eAAe,EACf,4BAA4B,EAC7B,MAAM,kBAAkB,CAAC;AAE1B,UAAU,kBAAkB;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,eAAe,CAAC;IACjC,iBAAiB,EAAE,4BAA4B,EAAE,CAAC;IAClD,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,aAAa,GAAI,wFAO3B,kBAAkB,4CAkGpB,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { ProjectConfigManager } from '../commands/project-config-manager.js';
2
+ interface AuthListProps {
3
+ configManager: ProjectConfigManager;
4
+ }
5
+ export declare const AuthList: ({ configManager }: AuthListProps) => import("react/jsx-runtime").JSX.Element;
6
+ export {};
7
+ //# sourceMappingURL=auth-list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-list.d.ts","sourceRoot":"","sources":["../../../src/components/auth-list.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAGlF,UAAU,aAAa;IACrB,aAAa,EAAE,oBAAoB,CAAC;CACrC;AAED,eAAO,MAAM,QAAQ,GAAI,mBAAmB,aAAa,4CAgExD,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { ProjectConfigManager } from '../commands/project-config-manager.js';
2
+ interface AuthLoginProps {
3
+ configManager: ProjectConfigManager;
4
+ keyPath?: string;
5
+ forProject: boolean;
6
+ }
7
+ export declare const AuthLogin: ({ configManager, keyPath, forProject }: AuthLoginProps) => import("react/jsx-runtime").JSX.Element | null;
8
+ export {};
9
+ //# sourceMappingURL=auth-login.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-login.d.ts","sourceRoot":"","sources":["../../../src/components/auth-login.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAMlF,UAAU,cAAc;IACtB,aAAa,EAAE,oBAAoB,CAAC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;CACrB;AAID,eAAO,MAAM,SAAS,GAAI,wCAAwC,cAAc,mDAyK/E,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { ProjectConfigManager } from '../commands/project-config-manager.js';
2
+ interface AuthLogoutProps {
3
+ configManager: ProjectConfigManager;
4
+ forProject: boolean;
5
+ }
6
+ export declare const AuthLogout: ({ configManager, forProject }: AuthLogoutProps) => import("react/jsx-runtime").JSX.Element;
7
+ export {};
8
+ //# sourceMappingURL=auth-logout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-logout.d.ts","sourceRoot":"","sources":["../../../src/components/auth-logout.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAGlF,UAAU,eAAe;IACvB,aAAa,EAAE,oBAAoB,CAAC;IACpC,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,eAAO,MAAM,UAAU,GAAI,+BAA+B,eAAe,4CA8ExE,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { ProjectConfigManager } from '../commands/project-config-manager.js';
2
+ interface AuthStatusProps {
3
+ configManager: ProjectConfigManager;
4
+ }
5
+ export declare const AuthStatus: ({ configManager }: AuthStatusProps) => import("react/jsx-runtime").JSX.Element;
6
+ export {};
7
+ //# sourceMappingURL=auth-status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-status.d.ts","sourceRoot":"","sources":["../../../src/components/auth-status.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAIlF,UAAU,eAAe;IACvB,aAAa,EAAE,oBAAoB,CAAC;CACrC;AAED,eAAO,MAAM,UAAU,GAAI,mBAAmB,eAAe,4CA0G5D,CAAC"}
@@ -3,6 +3,16 @@ interface BrainRunProps {
3
3
  watch?: boolean;
4
4
  options?: Record<string, string>;
5
5
  }
6
- export declare const BrainRun: ({ identifier, watch, options }: BrainRunProps) => import("react/jsx-runtime").JSX.Element;
6
+ /**
7
+ * BrainRun - Searches for a brain by identifier and runs it.
8
+ *
9
+ * State machine handles all async operations via invoke.
10
+ * Flow:
11
+ * 1. Search for brain by name (fuzzy search)
12
+ * 2. If single match, run it; if multiple, show disambiguation UI; if none, show error
13
+ * 3. Start the brain run
14
+ * 4. Show run ID or Watch component based on watch flag
15
+ */
16
+ export declare const BrainRun: ({ identifier, watch, options }: BrainRunProps) => import("react/jsx-runtime").JSX.Element | null;
7
17
  export {};
8
18
  //# sourceMappingURL=brain-run.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"brain-run.d.ts","sourceRoot":"","sources":["../../../src/components/brain-run.tsx"],"names":[],"mappings":"AAiBA,UAAU,aAAa;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAID,eAAO,MAAM,QAAQ,GAAI,gCAAgC,aAAa,4CAoJrE,CAAC"}
1
+ {"version":3,"file":"brain-run.d.ts","sourceRoot":"","sources":["../../../src/components/brain-run.tsx"],"names":[],"mappings":"AAqCA,UAAU,aAAa;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAmKD;;;;;;;;;GASG;AACH,eAAO,MAAM,QAAQ,GAAI,gCAAwC,aAAa,mDAkE7E,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"brain-top-table.d.ts","sourceRoot":"","sources":["../../../src/components/brain-top-table.tsx"],"names":[],"mappings":"AAIA,UAAU,YAAY;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,UAAU,kBAAkB;IAC1B,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AA2ED,eAAO,MAAM,aAAa,GAAI,qEAM3B,kBAAkB,4CAiHpB,CAAC;AAGF,YAAY,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"brain-top-table.d.ts","sourceRoot":"","sources":["../../../src/components/brain-top-table.tsx"],"names":[],"mappings":"AAIA,UAAU,YAAY;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,UAAU,kBAAkB;IAC1B,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AA+ED,eAAO,MAAM,aAAa,GAAI,qEAM3B,kBAAkB,4CAiHpB,CAAC;AAGF,YAAY,EAAE,YAAY,EAAE,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { StoredEvent } from './events-view.js';
2
+ interface EventDetailProps {
3
+ stored: StoredEvent;
4
+ scrollOffset: number;
5
+ onScrollChange: (offset: number) => void;
6
+ isActive?: boolean;
7
+ }
8
+ export declare const EventDetail: ({ stored, scrollOffset, onScrollChange, isActive }: EventDetailProps) => import("react/jsx-runtime").JSX.Element;
9
+ export {};
10
+ //# sourceMappingURL=event-detail.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-detail.d.ts","sourceRoot":"","sources":["../../../src/components/event-detail.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,UAAU,gBAAgB;IACxB,MAAM,EAAE,WAAW,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AA+ND,eAAO,MAAM,WAAW,GAAI,oDAA2D,gBAAgB,4CAqDtG,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { StoredEvent, EventsViewMode } from './types.js';
2
+ export type { StoredEvent, EventsViewMode };
3
+ interface EventsViewProps {
4
+ events: StoredEvent[];
5
+ totalTokens?: number;
6
+ isActive?: boolean;
7
+ onModeChange?: (mode: EventsViewMode) => void;
8
+ onViewState?: (eventIndex: number) => void;
9
+ selectedIndex?: number | null;
10
+ onSelectedIndexChange?: (index: number | null) => void;
11
+ }
12
+ export declare const EventsView: ({ events, totalTokens, isActive, onModeChange, onViewState, selectedIndex: controlledSelectedIndex, onSelectedIndexChange, }: EventsViewProps) => import("react/jsx-runtime").JSX.Element;
13
+ //# sourceMappingURL=events-view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events-view.d.ts","sourceRoot":"","sources":["../../../src/components/events-view.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE9D,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC;AAE5C,UAAU,eAAe;IACvB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IAC9C,WAAW,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,qBAAqB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;CACxD;AAuOD,eAAO,MAAM,UAAU,GAAI,8HAQxB,eAAe,4CA+HjB,CAAC"}
@@ -0,0 +1,13 @@
1
+ type JsonObject = {
2
+ [key: string]: unknown;
3
+ };
4
+ interface StateViewProps {
5
+ state: JsonObject;
6
+ title: string;
7
+ scrollOffset: number;
8
+ onScrollChange: (offset: number) => void;
9
+ isActive?: boolean;
10
+ }
11
+ export declare const StateView: ({ state, title, scrollOffset, onScrollChange, isActive, }: StateViewProps) => import("react/jsx-runtime").JSX.Element;
12
+ export {};
13
+ //# sourceMappingURL=state-view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state-view.d.ts","sourceRoot":"","sources":["../../../src/components/state-view.tsx"],"names":[],"mappings":"AAGA,KAAK,UAAU,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAAC;AAE7C,UAAU,cAAc;IACtB,KAAK,EAAE,UAAU,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,SAAS,GAAI,2DAMvB,cAAc,4CA2DhB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"top-navigator.d.ts","sourceRoot":"","sources":["../../../src/components/top-navigator.tsx"],"names":[],"mappings":"AAaA,UAAU,iBAAiB;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAID,eAAO,MAAM,YAAY,GAAI,iBAAiB,iBAAiB,4CAuO9D,CAAC"}
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"}
@@ -0,0 +1,11 @@
1
+ import type { BrainEvent } from '@positronic/core';
2
+ /**
3
+ * A stored event with its timestamp.
4
+ * Used for displaying events in the CLI.
5
+ */
6
+ export interface StoredEvent {
7
+ timestamp: Date;
8
+ event: BrainEvent;
9
+ }
10
+ export type EventsViewMode = 'auto' | 'navigating' | 'detail';
11
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,IAAI,CAAC;IAChB,KAAK,EAAE,UAAU,CAAC;CACnB;AAED,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,YAAY,GAAG,QAAQ,CAAC"}
@@ -0,0 +1,6 @@
1
+ interface UsersCreateProps {
2
+ name: string;
3
+ }
4
+ export declare const UsersCreate: ({ name }: UsersCreateProps) => import("react/jsx-runtime").JSX.Element | null;
5
+ export {};
6
+ //# sourceMappingURL=users-create.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"users-create.d.ts","sourceRoot":"","sources":["../../../src/components/users-create.tsx"],"names":[],"mappings":"AAKA,UAAU,gBAAgB;IACxB,IAAI,EAAE,MAAM,CAAC;CACd;AAQD,eAAO,MAAM,WAAW,GAAI,UAAU,gBAAgB,mDA2ErD,CAAC"}
@@ -0,0 +1,7 @@
1
+ interface UsersDeleteProps {
2
+ userId: string;
3
+ force: boolean;
4
+ }
5
+ export declare const UsersDelete: ({ userId, force }: UsersDeleteProps) => import("react/jsx-runtime").JSX.Element | null;
6
+ export {};
7
+ //# sourceMappingURL=users-delete.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"users-delete.d.ts","sourceRoot":"","sources":["../../../src/components/users-delete.tsx"],"names":[],"mappings":"AAKA,UAAU,gBAAgB;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;CAChB;AAQD,eAAO,MAAM,WAAW,GAAI,mBAAmB,gBAAgB,mDA4F9D,CAAC"}
@@ -0,0 +1,8 @@
1
+ interface UsersKeysAddProps {
2
+ userId: string;
3
+ pubkeyPath: string;
4
+ label?: string;
5
+ }
6
+ export declare const UsersKeysAdd: ({ userId, pubkeyPath, label }: UsersKeysAddProps) => import("react/jsx-runtime").JSX.Element | null;
7
+ export {};
8
+ //# sourceMappingURL=users-keys-add.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"users-keys-add.d.ts","sourceRoot":"","sources":["../../../src/components/users-keys-add.tsx"],"names":[],"mappings":"AASA,UAAU,iBAAiB;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAeD,eAAO,MAAM,YAAY,GAAI,+BAA+B,iBAAiB,mDA0G5E,CAAC"}
@@ -0,0 +1,6 @@
1
+ interface UsersKeysListProps {
2
+ userId: string;
3
+ }
4
+ export declare const UsersKeysList: ({ userId }: UsersKeysListProps) => import("react/jsx-runtime").JSX.Element;
5
+ export {};
6
+ //# sourceMappingURL=users-keys-list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"users-keys-list.d.ts","sourceRoot":"","sources":["../../../src/components/users-keys-list.tsx"],"names":[],"mappings":"AAKA,UAAU,kBAAkB;IAC1B,MAAM,EAAE,MAAM,CAAC;CAChB;AAkCD,eAAO,MAAM,aAAa,GAAI,YAAY,kBAAkB,4CAkF3D,CAAC"}
@@ -0,0 +1,8 @@
1
+ interface UsersKeysRemoveProps {
2
+ userId: string;
3
+ fingerprint: string;
4
+ force: boolean;
5
+ }
6
+ export declare const UsersKeysRemove: ({ userId, fingerprint, force }: UsersKeysRemoveProps) => import("react/jsx-runtime").JSX.Element | null;
7
+ export {};
8
+ //# sourceMappingURL=users-keys-remove.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"users-keys-remove.d.ts","sourceRoot":"","sources":["../../../src/components/users-keys-remove.tsx"],"names":[],"mappings":"AAKA,UAAU,oBAAoB;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,OAAO,CAAC;CAChB;AAQD,eAAO,MAAM,eAAe,GAAI,gCAAgC,oBAAoB,mDA+FnF,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const UsersList: () => import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=users-list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"users-list.d.ts","sourceRoot":"","sources":["../../../src/components/users-list.tsx"],"names":[],"mappings":"AA8BA,eAAO,MAAM,SAAS,+CAqErB,CAAC"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Keyboard handler for the Watch component.
3
+ * Maps keyboard input to watch events that the state machine can process.
4
+ *
5
+ * This is a pure function that takes the current view state and keyboard input,
6
+ * and returns an event object (or null if no event should be triggered).
7
+ */
8
+ import type { Key } from 'ink';
9
+ import type { EventsViewMode } from './events-view.js';
10
+ export type ViewMode = 'progress' | 'events' | 'state' | 'agent-picker' | 'agent-chat' | 'message-input';
11
+ export type WatchKeyboardEvent = {
12
+ type: 'GO_TO_EVENTS';
13
+ } | {
14
+ type: 'GO_TO_PROGRESS';
15
+ } | {
16
+ type: 'GO_TO_STATE';
17
+ } | {
18
+ type: 'GO_TO_AGENTS';
19
+ } | {
20
+ type: 'GO_TO_MESSAGE_INPUT';
21
+ } | {
22
+ type: 'GO_BACK';
23
+ } | {
24
+ type: 'INITIATE_KILL';
25
+ } | {
26
+ type: 'CONFIRM_KILL';
27
+ } | {
28
+ type: 'CANCEL_KILL';
29
+ } | {
30
+ type: 'PAUSE';
31
+ } | {
32
+ type: 'RESUME';
33
+ } | {
34
+ type: 'QUIT';
35
+ } | {
36
+ type: 'CANCEL_MESSAGE_INPUT';
37
+ };
38
+ export interface WatchKeyboardContext {
39
+ viewMode: ViewMode;
40
+ eventsViewMode: EventsViewMode;
41
+ confirmingKill: boolean;
42
+ isKilling: boolean;
43
+ isKilled: boolean;
44
+ isComplete: boolean;
45
+ isPaused: boolean;
46
+ isPausing: boolean;
47
+ isResuming: boolean;
48
+ hasAgents: boolean;
49
+ manageScreenBuffer: boolean;
50
+ }
51
+ /**
52
+ * Handle keyboard input and return the appropriate event.
53
+ * Returns null if no event should be triggered.
54
+ */
55
+ export declare function handleKeyboardInput(input: string, key: Key, ctx: WatchKeyboardContext): WatchKeyboardEvent | null;
56
+ //# sourceMappingURL=watch-keyboard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watch-keyboard.d.ts","sourceRoot":"","sources":["../../../src/components/watch-keyboard.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGvD,MAAM,MAAM,QAAQ,GAChB,UAAU,GACV,QAAQ,GACR,OAAO,GACP,cAAc,GACd,YAAY,GACZ,eAAe,CAAC;AAGpB,MAAM,MAAM,kBAAkB,GAE1B;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,GACxB;IAAE,IAAI,EAAE,gBAAgB,CAAA;CAAE,GAC1B;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,GACvB;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,GACxB;IAAE,IAAI,EAAE,qBAAqB,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GAEnB;IAAE,IAAI,EAAE,eAAe,CAAA;CAAE,GACzB;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,GACxB;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,GAEvB;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAElB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAEhB;IAAE,IAAI,EAAE,sBAAsB,CAAA;CAAE,CAAC;AAGrC,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,QAAQ,CAAC;IACnB,cAAc,EAAE,cAAc,CAAC;IAC/B,cAAc,EAAE,OAAO,CAAC;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,kBAAkB,EAAE,OAAO,CAAC;CAC7B;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,oBAAoB,GACxB,kBAAkB,GAAG,IAAI,CAkE3B"}