@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.
- package/dist/agent.d.ts +2 -0
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +20 -1
- package/dist/agent.js.map +1 -1
- package/dist/autonomy/state.d.ts +14 -0
- package/dist/autonomy/state.d.ts.map +1 -0
- package/dist/autonomy/state.js +54 -0
- package/dist/autonomy/state.js.map +1 -0
- package/dist/cli/mail.d.ts +2 -0
- package/dist/cli/mail.d.ts.map +1 -0
- package/dist/cli/mail.js +209 -0
- package/dist/cli/mail.js.map +1 -0
- package/dist/cli/pair.d.ts +1 -5
- package/dist/cli/pair.d.ts.map +1 -1
- package/dist/cli/pair.js +58 -20
- package/dist/cli/pair.js.map +1 -1
- package/dist/cli.js +15 -14
- package/dist/cli.js.map +1 -1
- package/dist/consent/store.d.ts +2 -2
- package/dist/consent/store.d.ts.map +1 -1
- package/dist/consent/store.js +3 -2
- package/dist/consent/store.js.map +1 -1
- package/dist/edition.d.ts +24 -0
- package/dist/edition.d.ts.map +1 -0
- package/dist/edition.js +19 -0
- package/dist/edition.js.map +1 -0
- package/dist/heartbeat/runner.d.ts.map +1 -1
- package/dist/heartbeat/runner.js +8 -0
- package/dist/heartbeat/runner.js.map +1 -1
- package/dist/idle/runner.d.ts.map +1 -1
- package/dist/idle/runner.js +7 -0
- package/dist/idle/runner.js.map +1 -1
- package/dist/mail/accounts.d.ts +20 -0
- package/dist/mail/accounts.d.ts.map +1 -0
- package/dist/mail/accounts.js +113 -0
- package/dist/mail/accounts.js.map +1 -0
- package/dist/mail/alerts.d.ts +29 -0
- package/dist/mail/alerts.d.ts.map +1 -0
- package/dist/mail/alerts.js +40 -0
- package/dist/mail/alerts.js.map +1 -0
- package/dist/mail/classify.d.ts +26 -0
- package/dist/mail/classify.d.ts.map +1 -0
- package/dist/mail/classify.js +191 -0
- package/dist/mail/classify.js.map +1 -0
- package/dist/mail/connectors/gmail.d.ts +55 -0
- package/dist/mail/connectors/gmail.d.ts.map +1 -0
- package/dist/mail/connectors/gmail.js +87 -0
- package/dist/mail/connectors/gmail.js.map +1 -0
- package/dist/mail/connectors/imap.d.ts +13 -0
- package/dist/mail/connectors/imap.d.ts.map +1 -0
- package/dist/mail/connectors/imap.js +136 -0
- package/dist/mail/connectors/imap.js.map +1 -0
- package/dist/mail/digest.d.ts +21 -0
- package/dist/mail/digest.d.ts.map +1 -0
- package/dist/mail/digest.js +89 -0
- package/dist/mail/digest.js.map +1 -0
- package/dist/mail/google-oauth.d.ts +50 -0
- package/dist/mail/google-oauth.d.ts.map +1 -0
- package/dist/mail/google-oauth.js +74 -0
- package/dist/mail/google-oauth.js.map +1 -0
- package/dist/mail/hosts.d.ts +3 -0
- package/dist/mail/hosts.d.ts.map +1 -0
- package/dist/mail/hosts.js +19 -0
- package/dist/mail/hosts.js.map +1 -0
- package/dist/mail/scheduler.d.ts +9 -0
- package/dist/mail/scheduler.d.ts.map +1 -0
- package/dist/mail/scheduler.js +21 -0
- package/dist/mail/scheduler.js.map +1 -0
- package/dist/mail/service.d.ts +32 -0
- package/dist/mail/service.d.ts.map +1 -0
- package/dist/mail/service.js +129 -0
- package/dist/mail/service.js.map +1 -0
- package/dist/mail/store.d.ts +7 -0
- package/dist/mail/store.d.ts.map +1 -0
- package/dist/mail/store.js +58 -0
- package/dist/mail/store.js.map +1 -0
- package/dist/mail/types.d.ts +114 -0
- package/dist/mail/types.d.ts.map +1 -0
- package/dist/mail/types.js +26 -0
- package/dist/mail/types.js.map +1 -0
- package/dist/providers/anthropic.d.ts.map +1 -1
- package/dist/providers/anthropic.js +43 -21
- package/dist/providers/anthropic.js.map +1 -1
- package/dist/providers/gemini.d.ts.map +1 -1
- package/dist/providers/gemini.js +67 -64
- package/dist/providers/gemini.js.map +1 -1
- package/dist/providers/openai.d.ts.map +1 -1
- package/dist/providers/openai.js +77 -71
- package/dist/providers/openai.js.map +1 -1
- package/dist/providers/registry.d.ts +10 -0
- package/dist/providers/registry.d.ts.map +1 -1
- package/dist/providers/registry.js +26 -0
- package/dist/providers/registry.js.map +1 -1
- package/dist/providers/stream-retry.d.ts +37 -0
- package/dist/providers/stream-retry.d.ts.map +1 -0
- package/dist/providers/stream-retry.js +92 -0
- package/dist/providers/stream-retry.js.map +1 -0
- package/dist/providers/types.d.ts +3 -0
- package/dist/providers/types.d.ts.map +1 -1
- package/dist/subagent.d.ts +2 -0
- package/dist/subagent.d.ts.map +1 -1
- package/dist/subagent.js +1 -0
- package/dist/subagent.js.map +1 -1
- package/dist/web/cloudAuth.d.ts +57 -0
- package/dist/web/cloudAuth.d.ts.map +1 -0
- package/dist/web/cloudAuth.js +139 -0
- package/dist/web/cloudAuth.js.map +1 -0
- package/dist/web/island.d.ts.map +1 -1
- package/dist/web/island.js +1 -0
- package/dist/web/island.js.map +1 -1
- package/dist/web/lisa-client.d.ts +1 -1
- package/dist/web/lisa-client.d.ts.map +1 -1
- package/dist/web/lisa-client.js +703 -40
- package/dist/web/lisa-client.js.map +1 -1
- package/dist/web/lisa-css.d.ts +1 -1
- package/dist/web/lisa-css.d.ts.map +1 -1
- package/dist/web/lisa-css.js +568 -43
- package/dist/web/lisa-css.js.map +1 -1
- package/dist/web/lisa-html.d.ts +1 -1
- package/dist/web/lisa-html.d.ts.map +1 -1
- package/dist/web/lisa-html.js +71 -21
- package/dist/web/lisa-html.js.map +1 -1
- package/dist/web/pairing.d.ts +37 -0
- package/dist/web/pairing.d.ts.map +1 -0
- package/dist/web/pairing.js +79 -0
- package/dist/web/pairing.js.map +1 -0
- package/dist/web/push.d.ts +12 -1
- package/dist/web/push.d.ts.map +1 -1
- package/dist/web/push.js +19 -4
- package/dist/web/push.js.map +1 -1
- package/dist/web/qr-svg.d.ts +11 -0
- package/dist/web/qr-svg.d.ts.map +1 -0
- package/dist/web/qr-svg.js +41 -0
- package/dist/web/qr-svg.js.map +1 -0
- package/dist/web/server.d.ts +1 -1
- package/dist/web/server.d.ts.map +1 -1
- package/dist/web/server.js +342 -12
- package/dist/web/server.js.map +1 -1
- 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;
|
package/dist/agent.d.ts.map
CHANGED
|
@@ -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;
|
|
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
|
-
|
|
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":"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"}
|
|
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 @@
|
|
|
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"}
|
package/dist/cli/mail.js
ADDED
|
@@ -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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"}
|
package/dist/cli/pair.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
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
|
package/dist/cli/pair.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pair.d.ts","sourceRoot":"","sources":["../../src/cli/pair.ts"],"names":[],"mappings":"
|
|
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
|
|
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
|
-
/**
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
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}
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
package/dist/cli/pair.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pair.js","sourceRoot":"","sources":["../../src/cli/pair.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,2EAA2E;AAC3E,iEAAiE;AACjE,OAAO,cAAc,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"pair.js","sourceRoot":"","sources":["../../src/cli/pair.ts"],"names":[],"mappings":"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"}
|