@oratis/lisa 0.12.0 → 0.14.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 (139) hide show
  1. package/dist/agent.d.ts +2 -0
  2. package/dist/agent.d.ts.map +1 -1
  3. package/dist/agent.js +20 -1
  4. package/dist/agent.js.map +1 -1
  5. package/dist/autonomy/state.d.ts +14 -0
  6. package/dist/autonomy/state.d.ts.map +1 -0
  7. package/dist/autonomy/state.js +54 -0
  8. package/dist/autonomy/state.js.map +1 -0
  9. package/dist/cli/mail.d.ts +2 -0
  10. package/dist/cli/mail.d.ts.map +1 -0
  11. package/dist/cli/mail.js +209 -0
  12. package/dist/cli/mail.js.map +1 -0
  13. package/dist/cli/pair.d.ts +1 -5
  14. package/dist/cli/pair.d.ts.map +1 -1
  15. package/dist/cli/pair.js +58 -20
  16. package/dist/cli/pair.js.map +1 -1
  17. package/dist/cli.js +15 -14
  18. package/dist/cli.js.map +1 -1
  19. package/dist/consent/store.d.ts +2 -2
  20. package/dist/consent/store.d.ts.map +1 -1
  21. package/dist/consent/store.js +3 -2
  22. package/dist/consent/store.js.map +1 -1
  23. package/dist/edition.d.ts +24 -0
  24. package/dist/edition.d.ts.map +1 -0
  25. package/dist/edition.js +19 -0
  26. package/dist/edition.js.map +1 -0
  27. package/dist/heartbeat/runner.d.ts.map +1 -1
  28. package/dist/heartbeat/runner.js +8 -0
  29. package/dist/heartbeat/runner.js.map +1 -1
  30. package/dist/idle/runner.d.ts.map +1 -1
  31. package/dist/idle/runner.js +7 -0
  32. package/dist/idle/runner.js.map +1 -1
  33. package/dist/mail/accounts.d.ts +20 -0
  34. package/dist/mail/accounts.d.ts.map +1 -0
  35. package/dist/mail/accounts.js +113 -0
  36. package/dist/mail/accounts.js.map +1 -0
  37. package/dist/mail/alerts.d.ts +29 -0
  38. package/dist/mail/alerts.d.ts.map +1 -0
  39. package/dist/mail/alerts.js +40 -0
  40. package/dist/mail/alerts.js.map +1 -0
  41. package/dist/mail/classify.d.ts +26 -0
  42. package/dist/mail/classify.d.ts.map +1 -0
  43. package/dist/mail/classify.js +191 -0
  44. package/dist/mail/classify.js.map +1 -0
  45. package/dist/mail/connectors/gmail.d.ts +55 -0
  46. package/dist/mail/connectors/gmail.d.ts.map +1 -0
  47. package/dist/mail/connectors/gmail.js +87 -0
  48. package/dist/mail/connectors/gmail.js.map +1 -0
  49. package/dist/mail/connectors/imap.d.ts +13 -0
  50. package/dist/mail/connectors/imap.d.ts.map +1 -0
  51. package/dist/mail/connectors/imap.js +136 -0
  52. package/dist/mail/connectors/imap.js.map +1 -0
  53. package/dist/mail/digest.d.ts +21 -0
  54. package/dist/mail/digest.d.ts.map +1 -0
  55. package/dist/mail/digest.js +89 -0
  56. package/dist/mail/digest.js.map +1 -0
  57. package/dist/mail/google-oauth.d.ts +50 -0
  58. package/dist/mail/google-oauth.d.ts.map +1 -0
  59. package/dist/mail/google-oauth.js +74 -0
  60. package/dist/mail/google-oauth.js.map +1 -0
  61. package/dist/mail/hosts.d.ts +3 -0
  62. package/dist/mail/hosts.d.ts.map +1 -0
  63. package/dist/mail/hosts.js +19 -0
  64. package/dist/mail/hosts.js.map +1 -0
  65. package/dist/mail/scheduler.d.ts +9 -0
  66. package/dist/mail/scheduler.d.ts.map +1 -0
  67. package/dist/mail/scheduler.js +21 -0
  68. package/dist/mail/scheduler.js.map +1 -0
  69. package/dist/mail/service.d.ts +32 -0
  70. package/dist/mail/service.d.ts.map +1 -0
  71. package/dist/mail/service.js +129 -0
  72. package/dist/mail/service.js.map +1 -0
  73. package/dist/mail/store.d.ts +7 -0
  74. package/dist/mail/store.d.ts.map +1 -0
  75. package/dist/mail/store.js +58 -0
  76. package/dist/mail/store.js.map +1 -0
  77. package/dist/mail/types.d.ts +114 -0
  78. package/dist/mail/types.d.ts.map +1 -0
  79. package/dist/mail/types.js +26 -0
  80. package/dist/mail/types.js.map +1 -0
  81. package/dist/providers/anthropic.d.ts.map +1 -1
  82. package/dist/providers/anthropic.js +43 -21
  83. package/dist/providers/anthropic.js.map +1 -1
  84. package/dist/providers/gemini.d.ts.map +1 -1
  85. package/dist/providers/gemini.js +67 -64
  86. package/dist/providers/gemini.js.map +1 -1
  87. package/dist/providers/openai.d.ts.map +1 -1
  88. package/dist/providers/openai.js +77 -71
  89. package/dist/providers/openai.js.map +1 -1
  90. package/dist/providers/registry.d.ts +10 -0
  91. package/dist/providers/registry.d.ts.map +1 -1
  92. package/dist/providers/registry.js +26 -0
  93. package/dist/providers/registry.js.map +1 -1
  94. package/dist/providers/stream-retry.d.ts +37 -0
  95. package/dist/providers/stream-retry.d.ts.map +1 -0
  96. package/dist/providers/stream-retry.js +92 -0
  97. package/dist/providers/stream-retry.js.map +1 -0
  98. package/dist/providers/types.d.ts +3 -0
  99. package/dist/providers/types.d.ts.map +1 -1
  100. package/dist/subagent.d.ts +2 -0
  101. package/dist/subagent.d.ts.map +1 -1
  102. package/dist/subagent.js +1 -0
  103. package/dist/subagent.js.map +1 -1
  104. package/dist/web/cloudAuth.d.ts +57 -0
  105. package/dist/web/cloudAuth.d.ts.map +1 -0
  106. package/dist/web/cloudAuth.js +139 -0
  107. package/dist/web/cloudAuth.js.map +1 -0
  108. package/dist/web/island.d.ts.map +1 -1
  109. package/dist/web/island.js +1 -0
  110. package/dist/web/island.js.map +1 -1
  111. package/dist/web/lisa-client.d.ts +1 -1
  112. package/dist/web/lisa-client.d.ts.map +1 -1
  113. package/dist/web/lisa-client.js +703 -40
  114. package/dist/web/lisa-client.js.map +1 -1
  115. package/dist/web/lisa-css.d.ts +1 -1
  116. package/dist/web/lisa-css.d.ts.map +1 -1
  117. package/dist/web/lisa-css.js +568 -43
  118. package/dist/web/lisa-css.js.map +1 -1
  119. package/dist/web/lisa-html.d.ts +1 -1
  120. package/dist/web/lisa-html.d.ts.map +1 -1
  121. package/dist/web/lisa-html.js +71 -21
  122. package/dist/web/lisa-html.js.map +1 -1
  123. package/dist/web/pairing.d.ts +37 -0
  124. package/dist/web/pairing.d.ts.map +1 -0
  125. package/dist/web/pairing.js +79 -0
  126. package/dist/web/pairing.js.map +1 -0
  127. package/dist/web/push.d.ts +12 -1
  128. package/dist/web/push.d.ts.map +1 -1
  129. package/dist/web/push.js +19 -4
  130. package/dist/web/push.js.map +1 -1
  131. package/dist/web/qr-svg.d.ts +11 -0
  132. package/dist/web/qr-svg.d.ts.map +1 -0
  133. package/dist/web/qr-svg.js +41 -0
  134. package/dist/web/qr-svg.js.map +1 -0
  135. package/dist/web/server.d.ts +1 -1
  136. package/dist/web/server.d.ts.map +1 -1
  137. package/dist/web/server.js +342 -12
  138. package/dist/web/server.js.map +1 -1
  139. package/package.json +2 -1
package/dist/agent.d.ts CHANGED
@@ -41,6 +41,8 @@ export interface RunAgentOptions {
41
41
  maxTokens?: number;
42
42
  thinking?: boolean;
43
43
  compaction?: boolean;
44
+ /** Thinking-depth lever. Unset ⇒ LISA_EFFORT env, else API default ("high"). */
45
+ effort?: "low" | "medium" | "high" | "xhigh" | "max";
44
46
  onEvent?: (event: AgentEvent) => void;
45
47
  onMessagePersist?: (message: StoredMessage) => Promise<void> | void;
46
48
  approval?: ApprovalCallback;
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,UAAU,EACV,aAAa,EACb,WAAW,EACX,cAAc,EACf,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAIrD,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,gBAAgB,GAAG,CAC7B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,OAAO,KACf,OAAO,CAAC,gBAAgB,CAAC,GAAG,gBAAgB,CAAC;AAElD;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,eAAe;IAC9B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,OAAO,EAAE,MAAM,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC/D;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,QAAQ,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,OAAO,EAAE,WAAW,CAAC;IACrB,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACrE,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IACtC,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACpE,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,WAAW,CAAC,EAAE,CACZ,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,KACX,OAAO,CAAC;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC;IAChE,YAAY,CAAC,EAAE,CACb,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,KACb,OAAO,CAAC;QAAE,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC;IAChD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wFAAwF;IACxF,SAAS,CAAC,EAAE,eAAe,CAAC;CAC7B;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAsB,QAAQ,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CAS7E;AA2WD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,aAAa,CAAC,SAAS,CAAC,GAAG,MAAM,CAMhF"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
package/dist/agent.js CHANGED
@@ -13,8 +13,18 @@ export async function runAgent(opts) {
13
13
  }
14
14
  async function runAgentLoop(opts) {
15
15
  const { provider, systemPrompt, tools, toolCtx, onEvent, onMessagePersist, model, maxTokens = 16_000, thinking = false, compaction = false, maxIterations = 32, budgetTokens, } = opts;
16
+ // Effort precedence: explicit opt (subagents pass "low") > LISA_EFFORT env >
17
+ // unset (⇒ provider omits it ⇒ API default "high"). Guard against env typos.
18
+ const EFFORTS = ["low", "medium", "high", "xhigh", "max"];
19
+ const envEffort = EFFORTS.find((e) => e === process.env.LISA_EFFORT);
20
+ const effort = opts.effort ?? envEffort;
16
21
  const toolMap = new Map(tools.map((t) => [t.name, t]));
17
22
  const messages = [...opts.history];
23
+ // Persisted to disk only once the first provider response commits the turn
24
+ // (see flush below). Persisting up-front orphaned the user message in the
25
+ // session file when the very first stream died (e.g. a transient empty
26
+ // stream), and that orphan then duplicated when the user hit retry.
27
+ let pendingUserPersist = null;
18
28
  if (opts.userMessage || (opts.userFiles && opts.userFiles.length)) {
19
29
  const content = [];
20
30
  if (opts.userMessage) {
@@ -42,7 +52,7 @@ async function runAgentLoop(opts) {
42
52
  }
43
53
  const firstUser = { role: "user", content };
44
54
  messages.push(firstUser);
45
- await onMessagePersist?.(firstUser);
55
+ pendingUserPersist = firstUser;
46
56
  }
47
57
  let cacheReadTokens = 0;
48
58
  let cacheWriteTokens = 0;
@@ -107,6 +117,7 @@ async function runAgentLoop(opts) {
107
117
  maxTokens,
108
118
  thinking,
109
119
  compaction,
120
+ effort,
110
121
  signal: toolCtx.signal,
111
122
  handlers: {
112
123
  onTextDelta: (text) => onEvent?.({ type: "text_delta", text }),
@@ -119,6 +130,14 @@ async function runAgentLoop(opts) {
119
130
  onEvent?.({ type: "error", message });
120
131
  throw err;
121
132
  }
133
+ // The turn is committed (the provider responded). Flush the deferred user
134
+ // message now, before the assistant message, so file order stays
135
+ // user→assistant and an immediate stream failure leaves nothing to
136
+ // duplicate on retry.
137
+ if (pendingUserPersist) {
138
+ await onMessagePersist?.(pendingUserPersist);
139
+ pendingUserPersist = null;
140
+ }
122
141
  cacheReadTokens += result.usage.cacheReadTokens;
123
142
  cacheWriteTokens += result.usage.cacheWriteTokens;
124
143
  inputTokens += result.usage.inputTokens;
package/dist/agent.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAqFxD,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,IAAqB;IAClD,4EAA4E;IAC5E,gEAAgE;IAChE,OAAO,CAAC,SAAS,EAAE,CAAC;IACpB,IAAI,CAAC;QACH,OAAO,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;YAAS,CAAC;QACT,OAAO,CAAC,OAAO,EAAE,CAAC;IACpB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,IAAqB;IAC/C,MAAM,EACJ,QAAQ,EACR,YAAY,EACZ,KAAK,EACL,OAAO,EACP,OAAO,EACP,gBAAgB,EAChB,KAAK,EACL,SAAS,GAAG,MAAM,EAClB,QAAQ,GAAG,KAAK,EAChB,UAAU,GAAG,KAAK,EAClB,aAAa,GAAG,EAAE,EAClB,YAAY,GACb,GAAG,IAAI,CAAC;IAET,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAoB,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;IACpD,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QAClE,MAAM,OAAO,GAAkC,EAAE,CAAC;QAClD,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QACzD,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS,IAAI,EAAE,EAAE,CAAC;YACrC,MAAM,OAAO,GAAG,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACjD,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,OAAO;oBACb,MAAM,EAAE;wBACN,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE,CAAC,CAAC,SAAoE;wBAClF,IAAI,EAAE,CAAC,CAAC,IAAI;qBACb;iBACF,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,uEAAuE;gBACvE,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,mBAAmB,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,SAAS,6BAA6B,CAAC,CAAC,IAAI,EAAE;iBACrF,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,MAAM,SAAS,GAAkB,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;QAC3D,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACzB,MAAM,gBAAgB,EAAE,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,eAAe,GAAG,CAAC,CAAC;IACxB,IAAI,gBAAgB,GAAG,CAAC,CAAC;IACzB,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,SAAS,GAAG,EAAE,CAAC;IACnB,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,UAAU,GAAG,UAAU,CAAC;IAE5B,IAAI,mBAAmB,GAAG,YAAY,CAAC;IACvC,IAAI,kBAAkB,GAAG,IAAI,CAAC,SAAS,EAAE,kBAAkB,CAAC;IAU5D,MAAM,iBAAiB,GAAuB,EAAE,CAAC;IACjD,IAAI,kBAAkB,GAAG,KAAK,CAAC;IAC/B,OAAO,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE,EAAE;QAC1B,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC,CAAC;IAEF,OAAO,UAAU,GAAG,aAAa,EAAE,CAAC;QAClC,6EAA6E;QAC7E,6EAA6E;QAC7E,4EAA4E;QAC5E,6EAA6E;QAC7E,sBAAsB;QACtB,IAAI,YAAY,IAAI,UAAU,GAAG,CAAC,IAAI,WAAW,GAAG,YAAY,IAAI,YAAY,EAAE,CAAC;YACjF,UAAU,GAAG,iBAAiB,CAAC;YAC/B,OAAO,EAAE,CAAC;gBACR,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,wBAAwB,YAAY,kBAAkB,UAAU,uDAAuD;aACjI,CAAC,CAAC;YACH,MAAM;QACR,CAAC;QACD,UAAU,EAAE,CAAC;QAEb,2EAA2E;QAC3E,4EAA4E;QAC5E,4EAA4E;QAC5E,sEAAsE;QACtE,uEAAuE;QACvE,2BAA2B;QAC3B,IAAI,IAAI,CAAC,SAAS,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YACrC,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;gBAC5C,IAAI,IAAI,CAAC,WAAW,KAAK,kBAAkB,EAAE,CAAC;oBAC5C,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC;oBAChC,kBAAkB,GAAG,IAAI,CAAC,WAAW,CAAC;oBACtC,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,uBAAuB;wBAC7B,OAAO,EAAE,0BAA0B,IAAI,CAAC,IAAI,CAAC,MAAM,SAAS;qBAC7D,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,+DAA+D;gBAC/D,OAAO,CAAC,GAAG,CACT,yBAA0B,GAAa,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAChE,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;QAElC,IAAI,MAAM,CAAC;QACX,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC;gBAC9B,KAAK;gBACL,YAAY,EAAE,mBAAmB;gBACjC,KAAK;gBACL,QAAQ;gBACR,SAAS;gBACT,QAAQ;gBACR,UAAU;gBACV,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,QAAQ,EAAE;oBACR,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;oBAC9D,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE,CACxB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC;iBAC9C;aACF,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;YACtC,MAAM,GAAG,CAAC;QACZ,CAAC;QAED,eAAe,IAAI,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC;QAChD,gBAAgB,IAAI,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC;QAClD,WAAW,IAAI,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC;QACxC,YAAY,IAAI,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC;QAC1C,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QAE/B,qEAAqE;QACrE,uEAAuE;QACvE,yEAAyE;QACzE,mEAAmE;QACnE,qCAAqC;QACrC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,SAAS,GAAkB;gBAC/B,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,MAAM,CAAC,OAAO;aACxB,CAAC;YACF,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACzB,MAAM,gBAAgB,EAAE,CAAC,SAAS,CAAC,CAAC;QACtC,CAAC;QAED,MAAM,QAAQ,GACX,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAqC;YAChF,EAAE,IAAI,IAAI,EAAE,CAAC;QACjB,IAAI,QAAQ;YAAE,SAAS,GAAG,QAAQ,CAAC;QAEnC,IAAI,MAAM,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;YACrC,uEAAuE;YACvE,qEAAqE;YACrE,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBACxD,MAAM,IAAI,GAAG,iBAAiB;qBAC3B,GAAG,CACF,CAAC,CAAC,EAAE,EAAE,CACJ,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,2BAA2B,WAAW,CAAC,CAAC,kBAAkB,GAAG,CAC7G;qBACA,IAAI,CAAC,IAAI,CAAC,CAAC;gBACd,MAAM,MAAM,GAAkB;oBAC5B,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EACF,gHAAgH;gCAChH,6MAA6M,IAAI,EAAE;yBACtN;qBACF;iBACF,CAAC;gBACF,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACtB,MAAM,gBAAgB,EAAE,CAAC,MAAM,CAAC,CAAC;gBACjC,mBAAmB;oBACjB,mBAAmB;wBACnB,+CAA+C,IAAI,mEAAmE,CAAC;gBACzH,kBAAkB,GAAG,IAAI,CAAC;gBAC1B,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,mDAAmD,iBAAiB,CAAC,MAAM,WAAW;iBAChG,CAAC,CAAC;gBACH,gCAAgC;gBAChC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC7B,uEAAuE;gBACvE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;gBAChC,SAAS;YACX,CAAC;YACD,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;YAChC,MAAM;QACR,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CACpC,CAAC,CAAC,EAA+B,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAC1D,CAAC;QACF,MAAM,WAAW,GAAqC,EAAE,CAAC;QACzD,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC5B,OAAO,EAAE,CAAC;gBACR,IAAI,EAAE,iBAAiB;gBACvB,QAAQ,EAAE,IAAI,CAAC,IAAI;gBACnB,SAAS,EAAE,IAAI,CAAC,KAAK;aACtB,CAAC,CAAC;YACH,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,MAAM,GAAG,SAAS,IAAI,CAAC,IAAI,qBAAqB,CAAC;gBACvD,WAAW,CAAC,IAAI,CAAC;oBACf,IAAI,EAAE,aAAa;oBACnB,WAAW,EAAE,IAAI,CAAC,EAAE;oBACpB,OAAO,EAAE,MAAM;oBACf,QAAQ,EAAE,IAAI;iBACf,CAAC,CAAC;gBACH,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,eAAe;oBACrB,QAAQ,EAAE,IAAI,CAAC,IAAI;oBACnB,OAAO,EAAE,IAAI;oBACb,UAAU,EAAE,cAAc;iBAC3B,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YAED,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC5D,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;oBACpB,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,aAAa,CAAC;oBAChD,WAAW,CAAC,IAAI,CAAC;wBACf,IAAI,EAAE,aAAa;wBACnB,WAAW,EAAE,IAAI,CAAC,EAAE;wBACpB,OAAO,EAAE,YAAY,MAAM,EAAE;wBAC7B,QAAQ,EAAE,IAAI;qBACf,CAAC,CAAC;oBACH,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,eAAe;wBACrB,QAAQ,EAAE,IAAI,CAAC,IAAI;wBACnB,OAAO,EAAE,IAAI;wBACb,UAAU,EAAE,MAAM;qBACnB,CAAC,CAAC;oBACH,SAAS;gBACX,CAAC;YACH,CAAC;YAED,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACrB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC3D,IAAI,IAAI,EAAE,KAAK,EAAE,CAAC;oBAChB,WAAW,CAAC,IAAI,CAAC;wBACf,IAAI,EAAE,aAAa;wBACnB,WAAW,EAAE,IAAI,CAAC,EAAE;wBACpB,OAAO,EAAE,kBAAkB,IAAI,CAAC,KAAK,EAAE;wBACvC,QAAQ,EAAE,IAAI;qBACf,CAAC,CAAC;oBACH,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,eAAe;wBACrB,QAAQ,EAAE,IAAI,CAAC,IAAI;wBACnB,OAAO,EAAE,IAAI;wBACb,UAAU,EAAE,IAAI,CAAC,KAAK;qBACvB,CAAC,CAAC;oBACH,SAAS;gBACX,CAAC;YACH,CAAC;YAED,0EAA0E;YAC1E,wEAAwE;YACxE,qDAAqD;YACrD,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YAC9D,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;gBACd,WAAW,CAAC,IAAI,CAAC;oBACf,IAAI,EAAE,aAAa;oBACnB,WAAW,EAAE,IAAI,CAAC,EAAE;oBACpB,OAAO,EAAE,mBAAmB,KAAK,CAAC,KAAK,EAAE;oBACzC,QAAQ,EAAE,IAAI;iBACf,CAAC,CAAC;gBACH,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,eAAe;oBACrB,QAAQ,EAAE,IAAI,CAAC,IAAI;oBACnB,OAAO,EAAE,IAAI;oBACb,UAAU,EAAE,KAAK,CAAC,KAAK,IAAI,eAAe;iBAC3C,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAc,EAAE,OAAO,CAAC,CAAC;gBAC7D,IAAI,IAAI,GACN,IAAI,CAAC,oBAAoB,EAAE,CAAC,GAAG,CAAC;oBAChC,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;gBACxD,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;oBACtB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;oBACzE,IAAI,IAAI,EAAE,aAAa,IAAI,IAAI;wBAAE,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC;gBAC7D,CAAC;gBACD,WAAW,CAAC,IAAI,CAAC;oBACf,IAAI,EAAE,aAAa;oBACnB,WAAW,EAAE,IAAI,CAAC,EAAE;oBACpB,OAAO,EAAE,IAAI;iBACd,CAAC,CAAC;gBACH,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,eAAe;oBACrB,QAAQ,EAAE,IAAI,CAAC,IAAI;oBACnB,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;iBAC/B,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACjE,IAAI,OAAO,GAAG,OAAO,CAAC;gBACtB,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;oBACtB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;oBAC3E,IAAI,IAAI,EAAE,aAAa,IAAI,IAAI;wBAAE,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC;gBAChE,CAAC;gBACD,WAAW,CAAC,IAAI,CAAC;oBACf,IAAI,EAAE,aAAa;oBACnB,WAAW,EAAE,IAAI,CAAC,EAAE;oBACpB,OAAO;oBACP,QAAQ,EAAE,IAAI;iBACf,CAAC,CAAC;gBACH,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,eAAe;oBACrB,QAAQ,EAAE,IAAI,CAAC,IAAI;oBACnB,OAAO,EAAE,IAAI;oBACb,UAAU,EAAE,OAAO;iBACpB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,MAAM,WAAW,GAAkB,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;QAC1E,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC3B,MAAM,gBAAgB,EAAE,CAAC,WAAW,CAAC,CAAC;QACtC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;IAClC,CAAC;IAED,0EAA0E;IAC1E,2EAA2E;IAC3E,4EAA4E;IAC5E,uDAAuD;IACvD,IAAI,UAAU,IAAI,aAAa,IAAI,UAAU,KAAK,UAAU,EAAE,CAAC;QAC7D,UAAU,GAAG,gBAAgB,CAAC;QAC9B,OAAO,EAAE,CAAC;YACR,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,yBAAyB,aAAa,uEAAuE;SACvH,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,SAAS;QACT,OAAO,EAAE,QAAQ;QACjB,UAAU;QACV,eAAe;QACf,gBAAgB;QAChB,WAAW;QACX,YAAY;QACZ,UAAU;KACX,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,OAAiC;IACtE,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAC;IAChD,OAAO,OAAO;SACX,MAAM,CAAC,CAAC,CAAC,EAA4C,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;SAC1E,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;SAClB,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ export interface AutonomyState {
2
+ /** Whether unattended self-driven runs (idle + heartbeat) are allowed. */
3
+ enabled: boolean;
4
+ }
5
+ export declare function defaultAutonomyState(): AutonomyState;
6
+ /** Coerce an arbitrary object into a valid AutonomyState (default for missing/ill-typed). Pure. */
7
+ export declare function normalizeAutonomyState(s: Partial<AutonomyState> | null | undefined): AutonomyState;
8
+ /** Read the state, merged over defaults; tolerant of a missing/corrupt file. */
9
+ export declare function loadAutonomyState(): AutonomyState;
10
+ export declare function saveAutonomyState(s: Partial<AutonomyState>): AutonomyState;
11
+ /** Convenience for the autonomy runners: is unattended self-driving allowed right now? */
12
+ export declare function getAutonomyEnabled(): boolean;
13
+ export declare function setAutonomyEnabled(enabled: boolean): AutonomyState;
14
+ //# sourceMappingURL=state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/autonomy/state.ts"],"names":[],"mappings":"AAgBA,MAAM,WAAW,aAAa;IAC5B,0EAA0E;IAC1E,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,wBAAgB,oBAAoB,IAAI,aAAa,CAEpD;AAED,mGAAmG;AACnG,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI,GAAG,SAAS,GAAG,aAAa,CAIlG;AAOD,gFAAgF;AAChF,wBAAgB,iBAAiB,IAAI,aAAa,CAOjD;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,aAAa,CAM1E;AAED,0FAA0F;AAC1F,wBAAgB,kBAAkB,IAAI,OAAO,CAE5C;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,aAAa,CAElE"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Autonomy on/off — the "Proactive mode" master switch.
3
+ *
4
+ * When disabled, LISA's unattended self-driven runs (idle reflection and the
5
+ * heartbeat) no-op: she only acts in response to direct user input. The web
6
+ * GUI and the iOS companion surface this as the "Proactive" toggle via
7
+ * GET/POST /api/autonomy/state.
8
+ *
9
+ * Persisted to ~/.lisa/autonomy/state.json (alongside the run ledger
10
+ * runs.jsonl). Default enabled = true, preserving the historical always-on
11
+ * autonomy behavior. Shape + tolerance mirror control/policy.ts.
12
+ */
13
+ import fs from "node:fs";
14
+ import path from "node:path";
15
+ import { LISA_HOME } from "../paths.js";
16
+ export function defaultAutonomyState() {
17
+ return { enabled: true };
18
+ }
19
+ /** Coerce an arbitrary object into a valid AutonomyState (default for missing/ill-typed). Pure. */
20
+ export function normalizeAutonomyState(s) {
21
+ const base = defaultAutonomyState();
22
+ if (!s || typeof s !== "object")
23
+ return base;
24
+ return { enabled: typeof s.enabled === "boolean" ? s.enabled : base.enabled };
25
+ }
26
+ /** Resolved lazily so tests can point LISA_HOME at a tmp dir. */
27
+ function statePath() {
28
+ return path.join(LISA_HOME, "autonomy", "state.json");
29
+ }
30
+ /** Read the state, merged over defaults; tolerant of a missing/corrupt file. */
31
+ export function loadAutonomyState() {
32
+ try {
33
+ const raw = fs.readFileSync(statePath(), "utf8");
34
+ return normalizeAutonomyState(JSON.parse(raw));
35
+ }
36
+ catch {
37
+ return defaultAutonomyState();
38
+ }
39
+ }
40
+ export function saveAutonomyState(s) {
41
+ const next = normalizeAutonomyState(s);
42
+ const file = statePath();
43
+ fs.mkdirSync(path.dirname(file), { recursive: true });
44
+ fs.writeFileSync(file, JSON.stringify(next, null, 2));
45
+ return next;
46
+ }
47
+ /** Convenience for the autonomy runners: is unattended self-driving allowed right now? */
48
+ export function getAutonomyEnabled() {
49
+ return loadAutonomyState().enabled;
50
+ }
51
+ export function setAutonomyEnabled(enabled) {
52
+ return saveAutonomyState({ enabled });
53
+ }
54
+ //# sourceMappingURL=state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/autonomy/state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAOxC,MAAM,UAAU,oBAAoB;IAClC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC3B,CAAC;AAED,mGAAmG;AACnG,MAAM,UAAU,sBAAsB,CAAC,CAA4C;IACjF,MAAM,IAAI,GAAG,oBAAoB,EAAE,CAAC;IACpC,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC7C,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;AAChF,CAAC;AAED,iEAAiE;AACjE,SAAS,SAAS;IAChB,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;AACxD,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,iBAAiB;IAC/B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,EAAE,MAAM,CAAC,CAAC;QACjD,OAAO,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAA2B,CAAC,CAAC;IAC3E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,oBAAoB,EAAE,CAAC;IAChC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,CAAyB;IACzD,MAAM,IAAI,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAAC;IACvC,MAAM,IAAI,GAAG,SAAS,EAAE,CAAC;IACzB,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACtD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,0FAA0F;AAC1F,MAAM,UAAU,kBAAkB;IAChC,OAAO,iBAAiB,EAAE,CAAC,OAAO,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAgB;IACjD,OAAO,iBAAiB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;AACxC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function runMailCommand(subargs: string[]): Promise<number>;
2
+ //# sourceMappingURL=mail.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mail.d.ts","sourceRoot":"","sources":["../../src/cli/mail.ts"],"names":[],"mappings":"AAyHA,wBAAsB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA2EvE"}
@@ -0,0 +1,209 @@
1
+ /**
2
+ * `lisa mail <list|connect|sweep|digest|remove|enable|disable>` — manage mail
3
+ * accounts and run/read the classified daily digest. Read-only (v1).
4
+ *
5
+ * lisa mail connect --email me@qq.com [--host imap.qq.com] [--port 993] [--pass <app-pw>] [--label "QQ"]
6
+ * lisa mail sweep # read + classify now, print the digest
7
+ * lisa mail digest # print the latest digest
8
+ * lisa mail list # accounts + consent state
9
+ */
10
+ import { createInterface } from "node:readline";
11
+ import { createServer } from "node:http";
12
+ import { spawn } from "node:child_process";
13
+ import crypto from "node:crypto";
14
+ import { grant, isGranted } from "../consent/store.js";
15
+ import { addAccount, loadAccounts, removeAccount, setAccountEnabled } from "../mail/accounts.js";
16
+ import { sweepAll } from "../mail/service.js";
17
+ import { latestDigest } from "../mail/store.js";
18
+ import { formatDigestText } from "../mail/digest.js";
19
+ import { inferHost } from "../mail/hosts.js";
20
+ import { buildAuthUrl, exchangeCode } from "../mail/google-oauth.js";
21
+ import { gmailProfileEmail } from "../mail/connectors/gmail.js";
22
+ function parseFlags(args) {
23
+ const out = {};
24
+ for (let i = 0; i < args.length; i++) {
25
+ const a = args[i];
26
+ if (!a || !a.startsWith("--"))
27
+ continue;
28
+ const key = a.slice(2);
29
+ const next = args[i + 1];
30
+ if (next && !next.startsWith("--")) {
31
+ out[key] = next;
32
+ i++;
33
+ }
34
+ else {
35
+ out[key] = "true";
36
+ }
37
+ }
38
+ return out;
39
+ }
40
+ function ask(question) {
41
+ const rl = createInterface({ input: process.stdin, output: process.stdout });
42
+ return new Promise((resolve) => rl.question(question, (a) => { rl.close(); resolve(a); }));
43
+ }
44
+ function printAccounts() {
45
+ const accounts = loadAccounts();
46
+ const gated = isGranted("mail") ? "● granted" : "○ NOT granted (sweeps are blocked — `lisa consent grant mail`)";
47
+ console.log(`Mail — consent: ${gated}\n`);
48
+ if (accounts.length === 0) {
49
+ console.log(" (no accounts) — add one with `lisa mail connect --email you@host`");
50
+ return;
51
+ }
52
+ for (const a of accounts) {
53
+ const when = a.lastSweepAt ? new Date(a.lastSweepAt).toISOString().slice(0, 16).replace("T", " ") : "never";
54
+ console.log(` ${a.enabled ? "●" : "○"} ${a.id.padEnd(16)} ${a.email} [${a.provider}${a.host ? " " + a.host : ""}] swept: ${when}`);
55
+ }
56
+ }
57
+ /** Gmail OAuth via the loopback "installed app" flow. */
58
+ async function connectGmail(flags) {
59
+ const clientId = flags["client-id"] ?? process.env.LISA_GOOGLE_CLIENT_ID ?? "";
60
+ const clientSecret = flags["client-secret"] ?? process.env.LISA_GOOGLE_CLIENT_SECRET ?? "";
61
+ if (!clientId || !clientSecret) {
62
+ console.error("Gmail OAuth needs a Google OAuth client id + secret.");
63
+ console.error("One-time setup: in a Google Cloud project, enable the Gmail API and create an");
64
+ console.error("OAuth client of type \"Desktop app\", then:");
65
+ console.error(" lisa mail connect --provider gmail --client-id <id> --client-secret <secret>");
66
+ console.error(" (or set LISA_GOOGLE_CLIENT_ID / LISA_GOOGLE_CLIENT_SECRET)");
67
+ return 1;
68
+ }
69
+ const state = crypto.randomBytes(8).toString("hex");
70
+ let redirectUri = "";
71
+ console.log("Authorizing Gmail (read-only)…");
72
+ let code;
73
+ try {
74
+ code = await new Promise((resolve, reject) => {
75
+ const server = createServer((req, res) => {
76
+ const u = new URL(req.url ?? "/", "http://127.0.0.1");
77
+ if (u.pathname !== "/oauth2callback") {
78
+ res.writeHead(404);
79
+ res.end();
80
+ return;
81
+ }
82
+ const c = u.searchParams.get("code");
83
+ const s = u.searchParams.get("state");
84
+ res.writeHead(200, { "content-type": "text/html" });
85
+ res.end("<html><body style='font-family:sans-serif;padding:2rem'>Lisa: Gmail connected. You can close this tab.</body></html>");
86
+ server.close();
87
+ if (s !== state)
88
+ reject(new Error("OAuth state mismatch"));
89
+ else if (!c)
90
+ reject(new Error("no authorization code"));
91
+ else
92
+ resolve(c);
93
+ });
94
+ server.on("error", reject);
95
+ server.listen(0, "127.0.0.1", () => {
96
+ const addr = server.address();
97
+ const port = typeof addr === "object" && addr ? addr.port : 0;
98
+ redirectUri = `http://127.0.0.1:${port}/oauth2callback`;
99
+ const url = buildAuthUrl({ clientId, redirectUri, state });
100
+ console.log("Opening your browser to approve read-only Gmail access.");
101
+ console.log("If it doesn't open, paste this URL:\n " + url + "\n");
102
+ try {
103
+ spawn("open", [url], { stdio: "ignore", detached: true }).unref();
104
+ }
105
+ catch { /* print-only */ }
106
+ });
107
+ setTimeout(() => { try {
108
+ server.close();
109
+ }
110
+ catch { /* noop */ } reject(new Error("timed out waiting for authorization")); }, 300_000);
111
+ });
112
+ }
113
+ catch (err) {
114
+ console.error("✗ " + err.message);
115
+ return 1;
116
+ }
117
+ try {
118
+ const tokens = await exchangeCode({ code, clientId, clientSecret, redirectUri });
119
+ const email = await gmailProfileEmail(tokens.accessToken);
120
+ const account = addAccount({ provider: "gmail", email: email || "gmail", label: flags.label }, { refreshToken: tokens.refreshToken, accessToken: tokens.accessToken, expiry: tokens.expiry, clientId, clientSecret });
121
+ grant("mail");
122
+ console.log(`\n✓ connected ${email} (${account.id}, gmail). Mail consent granted.`);
123
+ console.log(" Run `lisa mail sweep` to read + classify now.");
124
+ return 0;
125
+ }
126
+ catch (err) {
127
+ console.error("✗ token exchange failed: " + err.message);
128
+ return 1;
129
+ }
130
+ }
131
+ export async function runMailCommand(subargs) {
132
+ const sub = subargs[0] ?? "list";
133
+ const flags = parseFlags(subargs.slice(1));
134
+ if (sub === "list" || sub === "status") {
135
+ printAccounts();
136
+ return 0;
137
+ }
138
+ if (sub === "connect" && flags.provider === "gmail") {
139
+ return connectGmail(flags);
140
+ }
141
+ if (sub === "connect") {
142
+ const email = flags.email;
143
+ if (!email || !email.includes("@")) {
144
+ console.error("connect needs --email you@host");
145
+ return 1;
146
+ }
147
+ const host = flags.host ?? inferHost(email);
148
+ if (!host) {
149
+ console.error("couldn't infer IMAP host — pass --host imap.example.com");
150
+ return 1;
151
+ }
152
+ let pass = flags.pass ?? process.env.LISA_MAIL_PASS ?? "";
153
+ if (!pass) {
154
+ console.log(`Connecting ${email} via IMAP ${host}. Use an app-password / authorization code (not your login password).`);
155
+ pass = (await ask("App-password: ")).trim();
156
+ }
157
+ if (!pass) {
158
+ console.error("no password provided.");
159
+ return 1;
160
+ }
161
+ const account = addAccount({ provider: "imap", email, host, port: flags.port ? Number(flags.port) : 993, label: flags.label }, { password: pass });
162
+ grant("mail"); // connecting a mailbox is the consent act; revoke any time
163
+ console.log(`\n✓ connected ${email} (${account.id}). Mail consent granted.`);
164
+ console.log(" Run `lisa mail sweep` to read + classify now.");
165
+ return 0;
166
+ }
167
+ if (sub === "remove") {
168
+ const id = subargs[1];
169
+ if (!id) {
170
+ console.error("remove needs an account id (see `lisa mail list`).");
171
+ return 1;
172
+ }
173
+ console.log(removeAccount(id) ? `✓ removed ${id}.` : `no such account: ${id}`);
174
+ return 0;
175
+ }
176
+ if (sub === "enable" || sub === "disable") {
177
+ const id = subargs[1];
178
+ if (!id) {
179
+ console.error(`${sub} needs an account id.`);
180
+ return 1;
181
+ }
182
+ console.log(setAccountEnabled(id, sub === "enable") ? `✓ ${id} ${sub}d.` : `no such account: ${id}`);
183
+ return 0;
184
+ }
185
+ if (sub === "sweep") {
186
+ if (!isGranted("mail")) {
187
+ console.error("mail consent not granted — `lisa consent grant mail`.");
188
+ return 1;
189
+ }
190
+ console.log("Reading + classifying mail…");
191
+ const res = await sweepAll();
192
+ console.log("\n" + formatDigestText(res.digest));
193
+ if (res.newItems.length)
194
+ console.log(`\n(${res.newItems.length} new since last sweep)`);
195
+ return 0;
196
+ }
197
+ if (sub === "digest") {
198
+ const d = latestDigest();
199
+ if (!d) {
200
+ console.log("No digest yet — run `lisa mail sweep`.");
201
+ return 0;
202
+ }
203
+ console.log(formatDigestText(d));
204
+ return 0;
205
+ }
206
+ console.error(`unknown mail subcommand "${sub}" — use list | connect | sweep | digest | remove | enable | disable.`);
207
+ return 1;
208
+ }
209
+ //# sourceMappingURL=mail.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mail.js","sourceRoot":"","sources":["../../src/cli/mail.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import os from "node:os";
1
+ export { detectLanHost, detectTailscaleHost, buildPairUrl } from "../web/pairing.js";
2
2
  export interface PairArgs {
3
3
  /** Host the phone will reach the Mac at (LAN IP or tailnet name). */
4
4
  host?: string;
@@ -11,9 +11,5 @@ export interface PairArgs {
11
11
  export declare function parsePairArgs(argv: string[]): PairArgs | {
12
12
  error: string;
13
13
  };
14
- /** First non-internal IPv4 — a reasonable default host when --host is omitted. Pure. */
15
- export declare function detectLanHost(ifaces?: NodeJS.Dict<os.NetworkInterfaceInfo[]>): string | undefined;
16
- /** Build the `lisa-pair://` deep-link the phone scans/pastes. Pure. */
17
- export declare function buildPairUrl(host: string, port: number, token: string, name: string): string;
18
14
  export declare function runPairCommand(argv: string[]): Promise<number>;
19
15
  //# sourceMappingURL=pair.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pair.d.ts","sourceRoot":"","sources":["../../src/cli/pair.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,MAAM,SAAS,CAAC;AAIzB,MAAM,WAAW,QAAQ;IACvB,qEAAqE;IACrE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2EAA2E;IAC3E,IAAI,EAAE,MAAM,CAAC;IACb,sDAAsD;IACtD,IAAI,EAAE,MAAM,CAAC;CACd;AAID,6CAA6C;AAC7C,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,QAAQ,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CA0B1E;AAED,wFAAwF;AACxF,wBAAgB,aAAa,CAC3B,MAAM,GAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAA0B,GACtE,MAAM,GAAG,SAAS,CAOpB;AAED,uEAAuE;AACvE,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAI5F;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAmDpE"}
1
+ {"version":3,"file":"pair.d.ts","sourceRoot":"","sources":["../../src/cli/pair.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAIrF,MAAM,WAAW,QAAQ;IACvB,qEAAqE;IACrE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2EAA2E;IAC3E,IAAI,EAAE,MAAM,CAAC;IACb,sDAAsD;IACtD,IAAI,EAAE,MAAM,CAAC;CACd;AAID,6CAA6C;AAC7C,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,QAAQ,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CA0B1E;AAcD,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAsFpE"}
package/dist/cli/pair.js CHANGED
@@ -12,7 +12,11 @@
12
12
  // qrcode-terminal is CommonJS — Node's ESM loader only exposes its default
13
13
  // export, so import the module object and call .generate off it.
14
14
  import qrcodeTerminal from "qrcode-terminal";
15
- import os from "node:os";
15
+ import { Agent, setGlobalDispatcher } from "undici";
16
+ import { detectLanHost, detectTailscaleHost, buildPairUrl } from "../web/pairing.js";
17
+ // Re-exported so existing importers (and pair.test.ts) keep working after the
18
+ // LAN-detection / URL-building helpers moved to the dep-free shared module.
19
+ export { detectLanHost, detectTailscaleHost, buildPairUrl } from "../web/pairing.js";
16
20
  const DEFAULT_PORT = 5757;
17
21
  const USAGE = "usage: lisa pair [--host <ip-or-tailnet>] [--port N] [--name <label>]";
18
22
  /** Parse `lisa pair` argv. Pure (no I/O). */
@@ -49,21 +53,16 @@ export function parsePairArgs(argv) {
49
53
  return { error: "--port must be a positive integer" };
50
54
  return { host, port, name };
51
55
  }
52
- /** First non-internal IPv4 — a reasonable default host when --host is omitted. Pure. */
53
- export function detectLanHost(ifaces = os.networkInterfaces()) {
54
- for (const addrs of Object.values(ifaces)) {
55
- for (const a of addrs ?? []) {
56
- if (a.family === "IPv4" && !a.internal)
57
- return a.address;
58
- }
59
- }
60
- return undefined;
61
- }
62
- /** Build the `lisa-pair://` deep-link the phone scans/pastes. Pure. */
63
- export function buildPairUrl(host, port, token, name) {
64
- // %20 (not "+") for spaces so the device label round-trips through iOS URLComponents.
65
- const q = new URLSearchParams({ host, port: String(port), token, name }).toString().replace(/\+/g, "%20");
66
- return `lisa-pair://v1?${q}`;
56
+ /**
57
+ * A loopback-only bind address — the #1 pairing failure: the QR is minted over
58
+ * loopback, but a phone on the LAN can't reach a server listening only there.
59
+ * "0.0.0.0" / a specific LAN IP / a tailnet name are all reachable. The server
60
+ * reports its own bind host (authoritative no network probe that a firewall or
61
+ * the outbound HTTP proxy could skew).
62
+ */
63
+ function isLoopbackBind(boundHost) {
64
+ const h = boundHost.trim().toLowerCase();
65
+ return h === "127.0.0.1" || h === "localhost" || h === "::1" || h.startsWith("127.");
67
66
  }
68
67
  export async function runPairCommand(argv) {
69
68
  const parsed = parsePairArgs(argv);
@@ -71,6 +70,11 @@ export async function runPairCommand(argv) {
71
70
  console.error(parsed.error);
72
71
  return 2;
73
72
  }
73
+ // `lisa pair` only ever talks to the local server over loopback. LISA installs
74
+ // a global undici ProxyAgent (src/proxy-bootstrap.ts) with no localhost bypass,
75
+ // so under a proxy these loopback calls would be sent through it and fail. Use a
76
+ // direct dispatcher for this short-lived, loopback-only command.
77
+ setGlobalDispatcher(new Agent());
74
78
  const { port, name } = parsed;
75
79
  const host = parsed.host ?? detectLanHost();
76
80
  if (!host) {
@@ -87,7 +91,10 @@ export async function runPairCommand(argv) {
87
91
  });
88
92
  }
89
93
  catch (err) {
90
- console.error(`Could not reach LISA at ${base} is \`lisa serve --web\` running? (${err.message})`);
94
+ console.error(`Could not reach LISA at ${base}. Start the server first in a`);
95
+ console.error(`separate terminal (leave it running), so this iPhone can reach it:`);
96
+ console.error(`\n lisa serve --web --host 0.0.0.0\n`);
97
+ console.error(`then run \`lisa pair\` again. (${err.message})`);
91
98
  return 1;
92
99
  }
93
100
  if (res.status === 403) {
@@ -103,12 +110,43 @@ export async function runPairCommand(argv) {
103
110
  console.error("server returned no token");
104
111
  return 1;
105
112
  }
106
- const url = buildPairUrl(host, body.port ?? port, body.token, name);
113
+ const effPort = body.port ?? port;
114
+ const url = buildPairUrl(host, effPort, body.token, name);
107
115
  console.log(`\nScan in Lisa Pocket → Settings → Scan QR code:\n`);
108
- await new Promise((resolve) => qrcodeTerminal.generate(url, { small: true }, () => resolve()));
116
+ // qrcode-terminal's generate() passes the rendered QR to the callback INSTEAD of
117
+ // printing it when a callback is given — so the callback must print it (an empty
118
+ // callback silently swallowed the QR). generate() is synchronous; no await needed.
119
+ qrcodeTerminal.generate(url, { small: true }, (qr) => console.log(qr));
109
120
  console.log(`\nOr paste this in Settings → Pair:\n ${url}\n`);
121
+ // Broken-out fields for the "enter manually" path (when the link won't paste).
122
+ console.log(`Or type these in Settings → Pair → enter manually:`);
123
+ console.log(` Host: ${host}`);
124
+ console.log(` Port: ${effPort}`);
125
+ console.log(` Token: ${body.token}\n`);
110
126
  console.log(`Paired device "${name}" (id ${body.id ?? "?"}). Revoke it later from the app or POST /api/devices/revoke.`);
111
- console.log(`The phone must reach http://${host}:${port} run serve with --host 0.0.0.0 on the same Wi-Fi, or use a Tailscale name as --host.`);
127
+ // The QR is minted over loopback, but the phone connects over the LAN. If the
128
+ // server is bound loopback-only the phone can't reach it however good the QR is —
129
+ // call that out loudly instead of a generic note. (boundHost may be absent on an
130
+ // older server; then we can't tell, so fall back to the gentle reminder.)
131
+ if (body.boundHost && isLoopbackBind(body.boundHost)) {
132
+ console.log(`\n⚠️ LISA is only listening on localhost, so this iPhone can't reach it yet.`);
133
+ console.log(` Restart it on your network (in a separate terminal, leave it running):`);
134
+ console.log(` lisa serve --web --host 0.0.0.0`);
135
+ console.log(` …then run \`lisa pair\` again. (A Tailscale tailnet name as --host works too.)`);
136
+ }
137
+ else {
138
+ console.log(`Keep this phone on the same Wi-Fi (or tailnet) as your Mac.`);
139
+ }
140
+ // Reachable-anywhere upsell: a LAN IP only works on the same Wi-Fi. If this Mac
141
+ // is on Tailscale, offer its tailnet address (the phone must join the tailnet
142
+ // too) so Lisa keeps working on cellular / away from home.
143
+ const tailscale = detectTailscaleHost();
144
+ if (tailscale && host !== tailscale) {
145
+ console.log(`\n💡 To reach Lisa away from home (cellular / other Wi-Fi):`);
146
+ console.log(` put this iPhone on your Tailscale tailnet too, then re-pair with:`);
147
+ console.log(` lisa pair --host ${tailscale}`);
148
+ console.log(` (The address above only works on the same Wi-Fi as your Mac.)`);
149
+ }
112
150
  return 0;
113
151
  }
114
152
  //# sourceMappingURL=pair.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pair.js","sourceRoot":"","sources":["../../src/cli/pair.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pair.js","sourceRoot":"","sources":["../../src/cli/pair.ts"],"names":[],"mappings":"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"}