@tidegap/cli 0.18.0 → 0.19.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/README.md +13 -2
- package/dist/commands/clients.d.ts +20 -0
- package/dist/commands/clients.d.ts.map +1 -0
- package/dist/commands/clients.js +36 -0
- package/dist/commands/clients.js.map +1 -0
- package/dist/commands/env-file.d.ts +16 -15
- package/dist/commands/env-file.d.ts.map +1 -1
- package/dist/commands/env-file.js +49 -23
- package/dist/commands/env-file.js.map +1 -1
- package/dist/commands/install.d.ts +2 -3
- package/dist/commands/install.d.ts.map +1 -1
- package/dist/commands/install.js +13 -15
- package/dist/commands/install.js.map +1 -1
- package/dist/commands/tick.d.ts +1 -1
- package/dist/commands/tick.d.ts.map +1 -1
- package/dist/commands/tick.js +3 -3
- package/dist/commands/tick.js.map +1 -1
- package/dist/commands/ui.d.ts +8 -0
- package/dist/commands/ui.d.ts.map +1 -1
- package/dist/commands/ui.js +41 -5
- package/dist/commands/ui.js.map +1 -1
- package/dist/env.d.ts +12 -10
- package/dist/env.d.ts.map +1 -1
- package/dist/env.js +50 -35
- package/dist/env.js.map +1 -1
- package/dist/index.d.ts +1 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +35 -20
- package/dist/index.js.map +1 -1
- package/dist/ui/api.d.ts +7 -0
- package/dist/ui/api.d.ts.map +1 -1
- package/dist/ui/api.js +180 -26
- package/dist/ui/api.js.map +1 -1
- package/dist/ui/clients.d.ts +65 -0
- package/dist/ui/clients.d.ts.map +1 -0
- package/dist/ui/clients.js +179 -0
- package/dist/ui/clients.js.map +1 -0
- package/dist/ui/discovery.d.ts +25 -0
- package/dist/ui/discovery.d.ts.map +1 -0
- package/dist/ui/discovery.js +46 -0
- package/dist/ui/discovery.js.map +1 -0
- package/dist/ui/server.d.ts +24 -9
- package/dist/ui/server.d.ts.map +1 -1
- package/dist/ui/server.js +99 -35
- package/dist/ui/server.js.map +1 -1
- package/dist/ui/summary.d.ts +47 -0
- package/dist/ui/summary.d.ts.map +1 -0
- package/dist/ui/summary.js +120 -0
- package/dist/ui/summary.js.map +1 -0
- package/package.json +4 -5
- package/ui/api.js +3 -0
- package/ui/app.css +9 -3
- package/ui/app.js +2 -0
- package/ui/clients.js +104 -0
- package/ui/dialog.js +5 -0
- package/ui/index.html +2 -1
- package/ui/tokens.css +2 -0
package/README.md
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
<img src="https://www.tidegap.com/icon-192.png" alt="Tidegap" width="48" height="48">
|
|
2
|
+
|
|
1
3
|
# @tidegap/cli
|
|
2
4
|
|
|
3
|
-
> Renamed from `@ebb-ai/cli` in 0.18.0. The `ebb` command
|
|
5
|
+
> Renamed from `@ebb-ai/cli` in 0.18.0. The `ebb` command and the `EBB_*` variables were removed in 0.19; use `tidegap` and `TIDEGAP_*`. If npm reports `EEXIST` on install, run `npm uninstall -g @ebb-ai/cli` first. See [Renamed from Ebb AI](https://github.com/tidegap/tidegap#renamed-from-ebb-ai).
|
|
4
6
|
|
|
5
7
|
**The `tidegap` command: runs your queued Tidegap tasks when their cleanest grid hour arrives.**
|
|
6
8
|
|
|
@@ -40,11 +42,20 @@ tidegap receipts list — print carbon receipts for completed tasks
|
|
|
40
42
|
tidegap stats — local-only personal-impact stats from the queue ledger
|
|
41
43
|
tidegap verify — verify the Ed25519 signature on a carbon receipt
|
|
42
44
|
tidegap register-wake — schedule a macOS wake event 30s before a task
|
|
43
|
-
tidegap ui — local task page: agenda, journal, timeline, task detail and actions (127.0.0.1 only)
|
|
45
|
+
tidegap ui — local task page: agenda, journal, timeline, task detail and actions (127.0.0.1 only; port 47821 by default)
|
|
46
|
+
tidegap clients add — mint a token for the browser extension or the Mac app (--name, --kind extension|macos, --json)
|
|
47
|
+
tidegap clients list — list client ids, kinds and names (never tokens)
|
|
48
|
+
tidegap clients revoke — remove a client; its token stops working on the next request
|
|
44
49
|
```
|
|
45
50
|
|
|
46
51
|
Run `tidegap <command> --help` for flags.
|
|
47
52
|
|
|
53
|
+
`tidegap clients add` prints a `tgc_…` token once; store it then. The registry
|
|
54
|
+
`~/.tidegap/ui-clients.json` (mode 0600) keeps only the token's SHA-256.
|
|
55
|
+
A client token works only against `tidegap ui` on 127.0.0.1, survives restarts
|
|
56
|
+
and is never accepted on the client-management routes. The contract the
|
|
57
|
+
extension and the Mac app code against is `docs/spec/ui-client-api.md`.
|
|
58
|
+
|
|
48
59
|
The write commands and `tidegap ui` change the ledger only; `tidegap tick` (or the
|
|
49
60
|
OpenClaw loop) runs the task, and each command prints when the last tick ran.
|
|
50
61
|
`--day` and a repeating task's next occurrence can lie beyond the 72-hour
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `tidegap clients add | list | revoke` — manage the long-lived tokens that
|
|
3
|
+
* let the browser extension and the Mac app call `tidegap ui` (KTD2). The
|
|
4
|
+
* token is printed once by `add`; the registry keeps only its SHA-256.
|
|
5
|
+
*/
|
|
6
|
+
export interface ClientsOptions {
|
|
7
|
+
/** Directory of `ui-clients.json`; default: the Tidegap home. */
|
|
8
|
+
stateDir?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare function runClientsAdd(input: {
|
|
11
|
+
name: string;
|
|
12
|
+
kind: string;
|
|
13
|
+
json?: boolean;
|
|
14
|
+
}, opts?: ClientsOptions): string;
|
|
15
|
+
export declare function runClientsList(input?: {
|
|
16
|
+
json?: boolean;
|
|
17
|
+
}, opts?: ClientsOptions): string;
|
|
18
|
+
/** Throws when no client has that id. */
|
|
19
|
+
export declare function runClientsRevoke(id: string, opts?: ClientsOptions): string;
|
|
20
|
+
//# sourceMappingURL=clients.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clients.d.ts","sourceRoot":"","sources":["../../src/commands/clients.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,MAAM,WAAW,cAAc;IAC7B,iEAAiE;IACjE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAMD,wBAAgB,aAAa,CAC3B,KAAK,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,EACrD,IAAI,GAAE,cAAmB,GACxB,MAAM,CAQR;AAUD,wBAAgB,cAAc,CAAC,KAAK,GAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAO,EAAE,IAAI,GAAE,cAAmB,GAAG,MAAM,CAGhG;AAED,yCAAyC;AACzC,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,GAAE,cAAmB,GAAG,MAAM,CAG9E"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `tidegap clients add | list | revoke` — manage the long-lived tokens that
|
|
3
|
+
* let the browser extension and the Mac app call `tidegap ui` (KTD2). The
|
|
4
|
+
* token is printed once by `add`; the registry keeps only its SHA-256.
|
|
5
|
+
*/
|
|
6
|
+
import { ClientRegistry } from "../ui/clients.js";
|
|
7
|
+
function registry(opts) {
|
|
8
|
+
return new ClientRegistry(opts.stateDir);
|
|
9
|
+
}
|
|
10
|
+
export function runClientsAdd(input, opts = {}) {
|
|
11
|
+
const { client, token } = registry(opts).add({ name: input.name, kind: input.kind });
|
|
12
|
+
if (input.json)
|
|
13
|
+
return JSON.stringify({ client_id: client.id, token });
|
|
14
|
+
return (`Added client ${client.id} (${client.kind}, "${client.name}").\n` +
|
|
15
|
+
`Token: ${token}\n` +
|
|
16
|
+
`Store it now: it is shown only once. Revoke it with \`tidegap clients revoke ${client.id}\`.`);
|
|
17
|
+
}
|
|
18
|
+
function renderClients(clients) {
|
|
19
|
+
if (clients.length === 0)
|
|
20
|
+
return "No clients. Add one with `tidegap clients add --name <name> --kind extension|macos`.";
|
|
21
|
+
const rows = clients.map((c) => [c.id, c.kind, c.created_at, c.name]);
|
|
22
|
+
const header = ["ID", "KIND", "CREATED", "NAME"];
|
|
23
|
+
const widths = header.map((h, i) => Math.max(h.length, ...rows.map((r) => r[i].length)));
|
|
24
|
+
return [header, ...rows].map((r) => r.map((cell, i) => (i < 3 ? cell.padEnd(widths[i]) : cell)).join(" ")).join("\n");
|
|
25
|
+
}
|
|
26
|
+
export function runClientsList(input = {}, opts = {}) {
|
|
27
|
+
const clients = registry(opts).list();
|
|
28
|
+
return input.json ? JSON.stringify({ clients }) : renderClients(clients);
|
|
29
|
+
}
|
|
30
|
+
/** Throws when no client has that id. */
|
|
31
|
+
export function runClientsRevoke(id, opts = {}) {
|
|
32
|
+
if (!registry(opts).revoke(id))
|
|
33
|
+
throw new Error(`no client with id ${id}`);
|
|
34
|
+
return `Revoked client ${id}. Its token stops working on the next request.`;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=clients.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clients.js","sourceRoot":"","sources":["../../src/commands/clients.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAmB,MAAM,kBAAkB,CAAC;AAOnE,SAAS,QAAQ,CAAC,IAAoB;IACpC,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,KAAqD,EACrD,OAAuB,EAAE;IAEzB,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IACrF,IAAI,KAAK,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IACvE,OAAO,CACL,gBAAgB,MAAM,CAAC,EAAE,KAAK,MAAM,CAAC,IAAI,MAAM,MAAM,CAAC,IAAI,OAAO;QACjE,UAAU,KAAK,IAAI;QACnB,gFAAgF,MAAM,CAAC,EAAE,KAAK,CAC/F,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,OAAqB;IAC1C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,sFAAsF,CAAC;IACxH,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACtE,MAAM,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC1F,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1H,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,QAA4B,EAAE,EAAE,OAAuB,EAAE;IACtF,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;IACtC,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AAC3E,CAAC;AAED,yCAAyC;AACzC,MAAM,UAAU,gBAAgB,CAAC,EAAU,EAAE,OAAuB,EAAE;IACpE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC;IAC3E,OAAO,kBAAkB,EAAE,gDAAgD,CAAC;AAC9E,CAAC"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Shared secrets file: `~/.config/tidegap/env`.
|
|
3
3
|
*
|
|
4
|
-
* 0.17 kept it at `~/.config/ebb/env`.
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
4
|
+
* 0.17 kept it at `~/.config/ebb/env`. 0.18 still read that file; 0.19 does
|
|
5
|
+
* not. While the old file holds keys the new one lacks (none of them, by
|
|
6
|
+
* name, `EBB_*` counted as `TIDEGAP_*`), loading prints one stderr line
|
|
7
|
+
* naming it, and `tidegap install` lists it under its warnings.
|
|
8
8
|
*
|
|
9
9
|
* A single standardized location for provider API keys that works
|
|
10
10
|
* uniformly across launchd, systemd, and manual cron:
|
|
@@ -22,10 +22,12 @@
|
|
|
22
22
|
*/
|
|
23
23
|
/** Absolute path to the standardized secrets file. */
|
|
24
24
|
export declare function envFilePath(home?: string): string;
|
|
25
|
-
/**
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
25
|
+
/**
|
|
26
|
+
* The notice for a 0.17 secrets file that holds keys while the new file has
|
|
27
|
+
* none of them, else `undefined`. The template `tidegap install` writes has
|
|
28
|
+
* no keys, so it does not hide the notice.
|
|
29
|
+
*/
|
|
30
|
+
export declare function oldEnvFileNotice(home?: string): string | undefined;
|
|
29
31
|
/** The commented template written when the file is first created. */
|
|
30
32
|
export declare function envFileTemplate(): string;
|
|
31
33
|
/**
|
|
@@ -35,19 +37,18 @@ export declare function envFileTemplate(): string;
|
|
|
35
37
|
export declare function parseEnvFile(contents: string): Record<string, string>;
|
|
36
38
|
/**
|
|
37
39
|
* Load the env file into `process.env` for any key not already set.
|
|
38
|
-
* Returns the keys that were applied.
|
|
40
|
+
* Returns the keys that were applied. A missing file is a no-op. With the
|
|
41
|
+
* default path, a 0.17 secrets file whose keys the new file lacks gets one
|
|
42
|
+
* stderr line per process.
|
|
39
43
|
*/
|
|
40
44
|
export declare function loadEnvFileIntoProcess(path?: string): string[];
|
|
41
45
|
export interface EnsureEnvFileResult {
|
|
42
46
|
path: string;
|
|
43
47
|
created: boolean;
|
|
44
|
-
/** The 0.17 file the new one was copied from, when it was. */
|
|
45
|
-
copiedFrom?: string;
|
|
46
48
|
}
|
|
47
49
|
/**
|
|
48
|
-
* Create the secrets file (0600) if it does not
|
|
49
|
-
*
|
|
50
|
-
* Idempotent: never overwrites an existing file, never touches `legacy`.
|
|
50
|
+
* Create the secrets file (0600) with the commented template if it does not
|
|
51
|
+
* already exist. Idempotent: never overwrites an existing file.
|
|
51
52
|
*/
|
|
52
|
-
export declare function ensureEnvFile(path?: string
|
|
53
|
+
export declare function ensureEnvFile(path?: string): EnsureEnvFileResult;
|
|
53
54
|
//# sourceMappingURL=env-file.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env-file.d.ts","sourceRoot":"","sources":["../../src/commands/env-file.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAMH,sDAAsD;AACtD,wBAAgB,WAAW,CAAC,IAAI,GAAE,MAAkB,GAAG,MAAM,CAE5D;
|
|
1
|
+
{"version":3,"file":"env-file.d.ts","sourceRoot":"","sources":["../../src/commands/env-file.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAMH,sDAAsD;AACtD,wBAAgB,WAAW,CAAC,IAAI,GAAE,MAAkB,GAAG,MAAM,CAE5D;AAmBD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,GAAE,MAAkB,GAAG,MAAM,GAAG,SAAS,CAU7E;AAID,qEAAqE;AACrE,wBAAgB,eAAe,IAAI,MAAM,CAmBxC;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAoBrE;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAwB9D;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,GAAE,MAAsB,GAAG,mBAAmB,CAK/E"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Shared secrets file: `~/.config/tidegap/env`.
|
|
3
3
|
*
|
|
4
|
-
* 0.17 kept it at `~/.config/ebb/env`.
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
4
|
+
* 0.17 kept it at `~/.config/ebb/env`. 0.18 still read that file; 0.19 does
|
|
5
|
+
* not. While the old file holds keys the new one lacks (none of them, by
|
|
6
|
+
* name, `EBB_*` counted as `TIDEGAP_*`), loading prints one stderr line
|
|
7
|
+
* naming it, and `tidegap install` lists it under its warnings.
|
|
8
8
|
*
|
|
9
9
|
* A single standardized location for provider API keys that works
|
|
10
10
|
* uniformly across launchd, systemd, and manual cron:
|
|
@@ -20,23 +20,45 @@
|
|
|
20
20
|
* The parser is intentionally tiny (no dotenv dependency): `KEY=VALUE`
|
|
21
21
|
* lines, `#` comments, blank lines, optional surrounding quotes.
|
|
22
22
|
*/
|
|
23
|
-
import {
|
|
23
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
24
24
|
import { homedir } from "node:os";
|
|
25
25
|
import { dirname, join } from "node:path";
|
|
26
26
|
/** Absolute path to the standardized secrets file. */
|
|
27
27
|
export function envFilePath(home = homedir()) {
|
|
28
28
|
return join(home, ".config", "tidegap", "env");
|
|
29
29
|
}
|
|
30
|
-
/** The 0.17 secrets file, read
|
|
31
|
-
|
|
30
|
+
/** The 0.17 secrets file, never read since 0.19; only checked for the notice. */
|
|
31
|
+
function oldEnvFilePath(home) {
|
|
32
32
|
return join(home, ".config", "ebb", "env");
|
|
33
33
|
}
|
|
34
|
-
/** The secrets file
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
34
|
+
/** The keys of a secrets file, `EBB_*` named as `TIDEGAP_*`; none when missing or unreadable. */
|
|
35
|
+
function envFileKeys(path) {
|
|
36
|
+
try {
|
|
37
|
+
if (!existsSync(path))
|
|
38
|
+
return [];
|
|
39
|
+
return Object.keys(parseEnvFile(readFileSync(path, "utf8"))).map((k) => k.startsWith("EBB_") ? `TIDEGAP_${k.slice(4)}` : k);
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
return [];
|
|
43
|
+
}
|
|
39
44
|
}
|
|
45
|
+
/**
|
|
46
|
+
* The notice for a 0.17 secrets file that holds keys while the new file has
|
|
47
|
+
* none of them, else `undefined`. The template `tidegap install` writes has
|
|
48
|
+
* no keys, so it does not hide the notice.
|
|
49
|
+
*/
|
|
50
|
+
export function oldEnvFileNotice(home = homedir()) {
|
|
51
|
+
const old = oldEnvFilePath(home);
|
|
52
|
+
const oldKeys = envFileKeys(old);
|
|
53
|
+
if (oldKeys.length === 0)
|
|
54
|
+
return undefined;
|
|
55
|
+
const current = new Set(envFileKeys(envFilePath(home)));
|
|
56
|
+
if (oldKeys.some((k) => current.has(k)))
|
|
57
|
+
return undefined;
|
|
58
|
+
return (`tidegap: ${old} is no longer read (removed in 0.19); move its keys to ${envFilePath(home)} ` +
|
|
59
|
+
"and rename its EBB_* keys to TIDEGAP_*.");
|
|
60
|
+
}
|
|
61
|
+
let oldEnvFileReported = false;
|
|
40
62
|
/** The commented template written when the file is first created. */
|
|
41
63
|
export function envFileTemplate() {
|
|
42
64
|
return `# Tidegap secrets — KEY=VALUE per line. Loaded by \`tidegap tick\` at startup
|
|
@@ -86,9 +108,19 @@ export function parseEnvFile(contents) {
|
|
|
86
108
|
}
|
|
87
109
|
/**
|
|
88
110
|
* Load the env file into `process.env` for any key not already set.
|
|
89
|
-
* Returns the keys that were applied.
|
|
111
|
+
* Returns the keys that were applied. A missing file is a no-op. With the
|
|
112
|
+
* default path, a 0.17 secrets file whose keys the new file lacks gets one
|
|
113
|
+
* stderr line per process.
|
|
90
114
|
*/
|
|
91
|
-
export function loadEnvFileIntoProcess(path
|
|
115
|
+
export function loadEnvFileIntoProcess(path) {
|
|
116
|
+
if (path === undefined) {
|
|
117
|
+
path = envFilePath();
|
|
118
|
+
const notice = oldEnvFileReported ? undefined : oldEnvFileNotice();
|
|
119
|
+
if (notice) {
|
|
120
|
+
oldEnvFileReported = true;
|
|
121
|
+
process.stderr.write(`${notice}\n`);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
92
124
|
if (!existsSync(path))
|
|
93
125
|
return [];
|
|
94
126
|
let parsed;
|
|
@@ -108,19 +140,13 @@ export function loadEnvFileIntoProcess(path = resolveEnvFilePath()) {
|
|
|
108
140
|
return applied;
|
|
109
141
|
}
|
|
110
142
|
/**
|
|
111
|
-
* Create the secrets file (0600) if it does not
|
|
112
|
-
*
|
|
113
|
-
* Idempotent: never overwrites an existing file, never touches `legacy`.
|
|
143
|
+
* Create the secrets file (0600) with the commented template if it does not
|
|
144
|
+
* already exist. Idempotent: never overwrites an existing file.
|
|
114
145
|
*/
|
|
115
|
-
export function ensureEnvFile(path = envFilePath()
|
|
146
|
+
export function ensureEnvFile(path = envFilePath()) {
|
|
116
147
|
if (existsSync(path))
|
|
117
148
|
return { path, created: false };
|
|
118
149
|
mkdirSync(dirname(path), { recursive: true, mode: 0o700 });
|
|
119
|
-
if (existsSync(legacy)) {
|
|
120
|
-
copyFileSync(legacy, path);
|
|
121
|
-
chmodSync(path, 0o600);
|
|
122
|
-
return { path, created: true, copiedFrom: legacy };
|
|
123
|
-
}
|
|
124
150
|
writeFileSync(path, envFileTemplate(), { encoding: "utf8", mode: 0o600 });
|
|
125
151
|
return { path, created: true };
|
|
126
152
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env-file.js","sourceRoot":"","sources":["../../src/commands/env-file.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"env-file.js","sourceRoot":"","sources":["../../src/commands/env-file.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,8 +8,7 @@
|
|
|
8
8
|
* interpreter plus the real dist entry. This is immune to launchd's bare
|
|
9
9
|
* PATH and to `#!/usr/bin/env node` shebangs (the historical bug: a
|
|
10
10
|
* hardcoded `/usr/local/bin/ebb` (0.17 name) that does not exist on Apple Silicon /
|
|
11
|
-
* homebrew / nvm). `TIDEGAP_BINARY` remains as a documented override
|
|
12
|
-
* (0.17 name `EBB_BINARY` still read).
|
|
11
|
+
* homebrew / nvm). `TIDEGAP_BINARY` remains as a documented override.
|
|
13
12
|
*
|
|
14
13
|
* A 0.17 unit (`com.ebb-ai.tick`, `ebb-tick.timer`) is detected, never
|
|
15
14
|
* removed: the next steps print the commands that unload and remove it.
|
|
@@ -72,7 +71,7 @@ export interface InstallArtifacts {
|
|
|
72
71
|
/**
|
|
73
72
|
* Resolve the daemon invocation. Preference order:
|
|
74
73
|
* 1. explicit `override` (tests),
|
|
75
|
-
* 2. `TIDEGAP_BINARY` env
|
|
74
|
+
* 2. `TIDEGAP_BINARY` env — a single documented override binary,
|
|
76
75
|
* 3. `[process.execPath, realpathSync(process.argv[1])]` — pin the
|
|
77
76
|
* exact node + the real dist entry.
|
|
78
77
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAYH,OAAO,EAEL,KAAK,YAAY,EAClB,MAAM,sBAAsB,CAAC;AAO9B,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE9C,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,WAAW,CAAC;IAClB,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,wCAAwC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oDAAoD;IACpD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,yEAAyE;IACzE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,2CAA2C;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,YAAY,CAAC;IACvB,6DAA6D;IAC7D,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,sFAAsF;IACtF,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,qEAAqE;IACrE,WAAW,EAAE,MAAM,CAAC;IACpB,mDAAmD;IACnD,cAAc,EAAE,OAAO,CAAC;IACxB,oEAAoE;IACpE,OAAO,EAAE,MAAM,CAAC;IAChB,uDAAuD;IACvD,SAAS,EAAE,MAAM,CAAC;IAClB,mDAAmD;IACnD,YAAY,EAAE,MAAM,CAAC;IACrB,iEAAiE;IACjE,WAAW,EAAE,MAAM,CAAC;IACpB,iEAAiE;IACjE,cAAc,EAAE,MAAM,CAAC;IACvB,+DAA+D;IAC/D,SAAS,EAAE,MAAM,CAAC;IAClB,+DAA+D;IAC/D,YAAY,EAAE,MAAM,CAAC;IACrB,gFAAgF;IAChF,UAAU,EAAE,MAAM,CAAC;IACnB,wEAAwE;IACxE,aAAa,EAAE,MAAM,CAAC;IACtB,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAAE,GAAG,SAAS,EAC9B,QAAQ,EAAE,MAAM,EAAE,GACjB,MAAM,EAAE,CAiDV;AAmCD,wBAAsB,UAAU,CAC9B,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,gBAAgB,CAAC,CA4M3B"}
|
package/dist/commands/install.js
CHANGED
|
@@ -8,8 +8,7 @@
|
|
|
8
8
|
* interpreter plus the real dist entry. This is immune to launchd's bare
|
|
9
9
|
* PATH and to `#!/usr/bin/env node` shebangs (the historical bug: a
|
|
10
10
|
* hardcoded `/usr/local/bin/ebb` (0.17 name) that does not exist on Apple Silicon /
|
|
11
|
-
* homebrew / nvm). `TIDEGAP_BINARY` remains as a documented override
|
|
12
|
-
* (0.17 name `EBB_BINARY` still read).
|
|
11
|
+
* homebrew / nvm). `TIDEGAP_BINARY` remains as a documented override.
|
|
13
12
|
*
|
|
14
13
|
* A 0.17 unit (`com.ebb-ai.tick`, `ebb-tick.timer`) is detected, never
|
|
15
14
|
* removed: the next steps print the commands that unload and remove it.
|
|
@@ -27,11 +26,11 @@ import { LAUNCHD_LABEL, LEGACY_LAUNCHD_LABEL, launchdPlist } from "../platform/m
|
|
|
27
26
|
import { LEGACY_SYSTEMD_UNIT, SYSTEMD_UNIT, systemdService, systemdTimer } from "../platform/linux.js";
|
|
28
27
|
import { schtasksTemplate } from "../platform/windows.js";
|
|
29
28
|
import { defaultDbPath } from "./tick.js";
|
|
30
|
-
import { ensureEnvFile, envFilePath,
|
|
29
|
+
import { ensureEnvFile, envFilePath, oldEnvFileNotice } from "./env-file.js";
|
|
31
30
|
/**
|
|
32
31
|
* Resolve the daemon invocation. Preference order:
|
|
33
32
|
* 1. explicit `override` (tests),
|
|
34
|
-
* 2. `TIDEGAP_BINARY` env
|
|
33
|
+
* 2. `TIDEGAP_BINARY` env — a single documented override binary,
|
|
35
34
|
* 3. `[process.execPath, realpathSync(process.argv[1])]` — pin the
|
|
36
35
|
* exact node + the real dist entry.
|
|
37
36
|
*
|
|
@@ -114,25 +113,24 @@ export async function runInstall(opts) {
|
|
|
114
113
|
const home = opts.home ?? homedir();
|
|
115
114
|
const warnings = [];
|
|
116
115
|
const launcher = resolveLauncher(opts.launcher, warnings);
|
|
117
|
-
// A real install
|
|
118
|
-
//
|
|
116
|
+
// A real install names a left-over 0.17 ~/.ebb-ai on stderr; a dry run
|
|
117
|
+
// touches nothing.
|
|
119
118
|
const dataHome = opts.dryRun
|
|
120
119
|
? join(home, TIDEGAP_HOME_DIR)
|
|
121
120
|
: resolveTidegapHome(opts.home !== undefined ? { home } : {});
|
|
122
121
|
const dbPath = opts.dbPath ?? (opts.dryRun || opts.home !== undefined ? join(dataHome, "queue.db") : defaultDbPath());
|
|
123
122
|
const logPath = join(dataHome, "logs", "tick.log");
|
|
124
123
|
const tickInterval = opts.tickIntervalSec ?? 300;
|
|
125
|
-
// Create the standardized secrets file (0600) if absent
|
|
126
|
-
// 0.17 file
|
|
124
|
+
// Create the standardized secrets file (0600) if absent. Never on dry-run
|
|
125
|
+
// (tests). A 0.17 secrets file left alone is named under the warnings.
|
|
127
126
|
const envPath = envFilePath(home);
|
|
127
|
+
const oldEnvNotice = oldEnvFileNotice(home);
|
|
128
|
+
if (oldEnvNotice)
|
|
129
|
+
warnings.push(oldEnvNotice);
|
|
128
130
|
let envFileCreated = false;
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
envFileCreated = r.created;
|
|
133
|
-
envCopiedFrom = r.copiedFrom;
|
|
134
|
-
}
|
|
135
|
-
const secretsNote = `\nProvider keys: ${envCopiedFrom ? `copied from ${envCopiedFrom} to` : envFileCreated ? "created" : "expected at"} ${envPath} (0600).\n` +
|
|
131
|
+
if (!opts.dryRun)
|
|
132
|
+
envFileCreated = ensureEnvFile(envPath).created;
|
|
133
|
+
const secretsNote = `\nProvider keys: ${envFileCreated ? "created" : "expected at"} ${envPath} (0600).\n` +
|
|
136
134
|
` Add ANTHROPIC_API_KEY / OPENAI_API_KEY there; \`tidegap tick\` loads it on startup.`;
|
|
137
135
|
const warnBlock = warnings.length > 0
|
|
138
136
|
? `\n!! WARNING:\n` +
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EACL,UAAU,EACV,SAAS,EACT,YAAY,EACZ,aAAa,GACd,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EACL,eAAe,GAEhB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzF,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACvG,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAwD7E;;;;;;;;;GASG;AACH,MAAM,UAAU,eAAe,CAC7B,QAA8B,EAC9B,QAAkB;IAElB,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,QAAQ,CAAC;IAErD,MAAM,SAAS,GAAG,kBAAkB,EAAE,CAAC,MAAM,CAAC;IAC9C,IAAI,SAAS,EAAE,CAAC;QACd,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3B,QAAQ,CAAC,IAAI,CACX,4BAA4B,SAAS,0DAA0D,CAChG,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,SAAS,CAAC,CAAC;IACrB,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC;IAC9B,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC9B,IAAI,MAA0B,CAAC;IAC/B,IAAI,KAAK,EAAE,CAAC;QACV,IAAI,CAAC;YACH,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,GAAG,KAAK,CAAC;QACjB,CAAC;IACH,CAAC;IACD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,QAAQ,CAAC,IAAI,CACX,0EAA0E;YACxE,0DAA0D,CAC7D,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,QAAQ,CAAC,IAAI,CACX,6BAA6B,IAAI,mDAAmD,CACrF,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACxB,QAAQ,CAAC,IAAI,CACX,0BAA0B,MAAM,mDAAmD,CACpF,CAAC;IACJ,CAAC;IACD,IAAI,2BAA2B,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7C,qEAAqE;QACrE,iEAAiE;QACjE,QAAQ,CAAC,IAAI,CACX,wBAAwB,MAAM,sEAAsE;YAClG,kGAAkG,CACrG,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACxB,CAAC;AAED,0EAA0E;AAC1E,SAAS,GAAG,CAAC,CAAS;IACpB,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC;AACzC,CAAC;AAED,SAAS,YAAY,CAAC,IAA4C;IAChE,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjD,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,OAAO;;;;;;KAMJ,EAAE;WACI,OAAO;;;;;;;;;;;;;;;CAejB,CAAC;AACF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,IAAoB;IAEpB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,eAAe,EAAE,CAAC;IACpD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,OAAO,EAAE,CAAC;IACpC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC1D,uEAAuE;IACvE,mBAAmB;IACnB,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM;QAC1B,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,gBAAgB,CAAC;QAC9B,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAChE,MAAM,MAAM,GACV,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC;IACzG,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IACnD,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,IAAI,GAAG,CAAC;IAEjD,0EAA0E;IAC1E,uEAAuE;IACvE,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,YAAY,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC5C,IAAI,YAAY;QAAE,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC9C,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,IAAI,CAAC,IAAI,CAAC,MAAM;QAAE,cAAc,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;IAClE,MAAM,WAAW,GACf,oBAAoB,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,IAAI,OAAO,YAAY;QACrF,wFAAwF,CAAC;IAC3F,MAAM,SAAS,GACb,QAAQ,CAAC,MAAM,GAAG,CAAC;QACjB,CAAC,CAAC,iBAAiB;YACjB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YAC3C,IAAI;QACN,CAAC,CAAC,EAAE,CAAC;IAET,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzB,MAAM,YAAY,GAAG,YAAY,CAAC;YAChC,eAAe,EAAE,YAAY;YAC7B,QAAQ;YACR,MAAM;YACN,OAAO;SACR,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;QACxD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,aAAa,QAAQ,CAAC,CAAC;QAC5D,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,oBAAoB,QAAQ,CAAC,CAAC;QACrE,MAAM,aAAa,GACjB,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,MAAM,UAAU,GACd,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAEjE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,gEAAgE;YAChE,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACjD,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACnD,aAAa,CAAC,SAAS,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;YAC/C,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAChD,IAAI,UAAU,EAAE,CAAC;gBACf,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBACpD,aAAa,CAAC,UAAU,EAAE,aAAa,EAAE;oBACvC,QAAQ,EAAE,MAAM;oBAChB,IAAI,EAAE,KAAK;iBACZ,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,MAAM,QAAQ,GACZ,IAAI,CAAC,IAAI,KAAK,QAAQ;YACpB,CAAC,CAAC,yDAAyD;gBACzD,QAAQ,UAAU,IAAI;gBACtB,0EAA0E;gBAC1E,iFAAiF;YACnF,CAAC,CAAC,EAAE,CAAC;QACT,MAAM,OAAO,GAAG,UAAU,CAAC,WAAW,CAAC;YACrC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,uDAAuD;gBAC1F,yBAAyB,WAAW,IAAI;gBACxC,WAAW,WAAW,EAAE;YAC1B,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,SAAS,GACb,SAAS;YACT,SAAS,SAAS,KAAK;YACvB,WAAW;YACX,mBAAmB;YACnB,sBAAsB;YACtB,uBAAuB,SAAS,IAAI;YACpC,+BAA+B;YAC/B,gBAAgB,OAAO,GAAG,QAAQ,GAAG,OAAO,IAAI,CAAC;QAEnD,OAAO;YACL,QAAQ;YACR,QAAQ;YACR,QAAQ;YACR,WAAW,EAAE,OAAO;YACpB,cAAc;YACd,OAAO;YACP,SAAS;YACT,YAAY;YACZ,WAAW,EAAE,EAAE;YACf,cAAc,EAAE,EAAE;YAClB,SAAS,EAAE,EAAE;YACb,YAAY,EAAE,EAAE;YAChB,UAAU;YACV,aAAa;YACb,SAAS;SACV,CAAC;IACJ,CAAC;IAED,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzB,MAAM,cAAc,GAAG,cAAc,CAAC;YACpC,QAAQ;YACR,MAAM;YACN,OAAO;SACR,CAAC,CAAC;QACH,MAAM,YAAY,GAAG,YAAY,CAAC;YAChC,eAAe,EAAE,YAAY;SAC9B,CAAC,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QAC5D,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,YAAY,UAAU,CAAC,CAAC;QAChE,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,YAAY,QAAQ,CAAC,CAAC;QAC5D,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,mBAAmB,UAAU,CAAC,CAAC;QACzE,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,mBAAmB,QAAQ,CAAC,CAAC;QACrE,MAAM,aAAa,GACjB,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,MAAM,UAAU,GACd,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAEjE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,yEAAyE;YACzE,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACjD,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC3C,aAAa,CAAC,WAAW,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;YACnD,aAAa,CAAC,SAAS,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;YAC/C,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAChD,IAAI,UAAU,EAAE,CAAC;gBACf,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBACpD,aAAa,CAAC,UAAU,EAAE,aAAa,EAAE;oBACvC,QAAQ,EAAE,MAAM;oBAChB,IAAI,EAAE,KAAK;iBACZ,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,MAAM,QAAQ,GACZ,IAAI,CAAC,IAAI,KAAK,QAAQ;YACpB,CAAC,CAAC,yDAAyD;gBACzD,QAAQ,UAAU,IAAI;gBACtB,uEAAuE;gBACvE,wEAAwE;YAC1E,CAAC,CAAC,EAAE,CAAC;QACT,MAAM,OAAO,GAAG,UAAU,CAAC,WAAW,CAAC,IAAI,UAAU,CAAC,aAAa,CAAC;YAClE,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,uDAAuD;gBAC1F,uCAAuC,mBAAmB,UAAU;gBACpE,WAAW,aAAa,IAAI,WAAW,IAAI;gBAC3C,qCAAqC;YACvC,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,SAAS,GACb,SAAS;YACT,SAAS,WAAW,IAAI;YACxB,SAAS,SAAS,EAAE;YACpB,WAAW;YACX,mBAAmB;YACnB,2CAA2C;YAC3C,wEAAwE,YAAY,UAAU;YAC9F,+BAA+B;YAC/B,gBAAgB,OAAO,GAAG,QAAQ,GAAG,OAAO,IAAI,CAAC;QAEnD,OAAO;YACL,QAAQ;YACR,QAAQ;YACR,QAAQ;YACR,WAAW,EAAE,OAAO;YACpB,cAAc;YACd,OAAO;YACP,SAAS,EAAE,EAAE;YACb,YAAY,EAAE,EAAE;YAChB,WAAW;YACX,cAAc;YACd,SAAS;YACT,YAAY;YACZ,UAAU;YACV,aAAa;YACb,SAAS;SACV,CAAC;IACJ,CAAC;IAED,sEAAsE;IACtE,MAAM,QAAQ,GAAG,gBAAgB,CAAC;QAChC,QAAQ;QACR,MAAM;QACN,eAAe,EAAE,YAAY;KAC9B,CAAC,CAAC;IACH,OAAO;QACL,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,WAAW,EAAE,OAAO;QACpB,cAAc;QACd,OAAO;QACP,SAAS,EAAE,EAAE;QACb,YAAY,EAAE,EAAE;QAChB,WAAW,EAAE,EAAE;QACf,cAAc,EAAE,EAAE;QAClB,SAAS,EAAE,EAAE;QACb,YAAY,EAAE,EAAE;QAChB,UAAU,EAAE,EAAE;QACd,aAAa,EAAE,EAAE;QACjB,SAAS,EAAE,SAAS,GAAG,QAAQ;KAChC,CAAC;AACJ,CAAC"}
|
package/dist/commands/tick.d.ts
CHANGED
|
@@ -31,7 +31,7 @@ export interface TickCommandOptions {
|
|
|
31
31
|
}
|
|
32
32
|
/** Starts a notification process; the tick never waits on it. */
|
|
33
33
|
export type NotifySpawner = (cmd: string, args: string[], opts: SpawnOptions) => void;
|
|
34
|
-
/** `TIDEGAP_NOTIFY=0` (or false/off/no
|
|
34
|
+
/** `TIDEGAP_NOTIFY=0` (or false/off/no) in ~/.tidegap/config turns notifications off. */
|
|
35
35
|
export declare function notifyDisabledInConfig(path?: string): boolean;
|
|
36
36
|
export interface TickRunResult {
|
|
37
37
|
exitCode: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tick.d.ts","sourceRoot":"","sources":["../../src/commands/tick.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"tick.d.ts","sourceRoot":"","sources":["../../src/commands/tick.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAkBL,KAAK,YAAY,EAElB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAS,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAI9D,OAAO,EAAsB,KAAK,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAGzE,MAAM,WAAW,kBAAkB;IACjC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iFAAiF;IACjF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,2EAA2E;IAC3E,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,8EAA8E;IAC9E,WAAW,CAAC,EAAE,aAAa,CAAC;IAC5B,gFAAgF;IAChF,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;CAC5B;AAED,iEAAiE;AACjE,MAAM,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,YAAY,KAAK,IAAI,CAAC;AAqBtF,yFAAyF;AACzF,wBAAgB,sBAAsB,CAAC,IAAI,GAAE,MAAiC,GAAG,OAAO,CAQvF;AA0CD,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAKtC;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAC3B,KAAK,GAAE,mBAA0C,GAChD,YAAY,CAmBd;AAaD;;;;GAIG;AACH,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CA4BtE;AAED,wBAAsB,WAAW,CAC/B,IAAI,GAAE,kBAAuB,GAC5B,OAAO,CAAC,aAAa,CAAC,CAuFxB;AAED,wBAAsB,OAAO,CAAC,IAAI,GAAE,kBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC,CAuB5E"}
|
package/dist/commands/tick.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* matching adapters lazily. If neither key is set we still exit 0 with
|
|
7
7
|
* a warning — useful for "this cron only kicks in once a key is added".
|
|
8
8
|
*/
|
|
9
|
-
import { AnthropicAdapter, buildDefaultGridFeed, carbonBudgetConfigPath, GeminiAdapter, loadCarbonBudgetConfig, loadQuotaResetConfig, OllamaAdapter, OpenAIAdapter, osNotifyCommand, parseKeyValues, resolveTidegapHome,
|
|
9
|
+
import { AnthropicAdapter, buildDefaultGridFeed, carbonBudgetConfigPath, GeminiAdapter, loadCarbonBudgetConfig, loadQuotaResetConfig, OllamaAdapter, OpenAIAdapter, osNotifyCommand, parseKeyValues, resolveTidegapHome, prepareTick, resolveRegion, Scheduler, taskNotificationContent, TaskStore, } from "@tidegap/core";
|
|
10
10
|
import { spawn } from "node:child_process";
|
|
11
11
|
import { existsSync, readFileSync } from "node:fs";
|
|
12
12
|
import { homedir, platform as osPlatform } from "node:os";
|
|
@@ -30,12 +30,12 @@ const defaultSpawnNotify = (cmd, args, opts) => {
|
|
|
30
30
|
child.on("error", () => { });
|
|
31
31
|
child.unref();
|
|
32
32
|
};
|
|
33
|
-
/** `TIDEGAP_NOTIFY=0` (or false/off/no
|
|
33
|
+
/** `TIDEGAP_NOTIFY=0` (or false/off/no) in ~/.tidegap/config turns notifications off. */
|
|
34
34
|
export function notifyDisabledInConfig(path = carbonBudgetConfigPath()) {
|
|
35
35
|
try {
|
|
36
36
|
if (!existsSync(path))
|
|
37
37
|
return false;
|
|
38
|
-
const v =
|
|
38
|
+
const v = parseKeyValues(readFileSync(path, "utf8")).TIDEGAP_NOTIFY;
|
|
39
39
|
return v !== undefined && /^(0|false|off|no)$/i.test(v.trim());
|
|
40
40
|
}
|
|
41
41
|
catch {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tick.js","sourceRoot":"","sources":["../../src/commands/tick.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,sBAAsB,EACtB,aAAa,EACb,sBAAsB,EACtB,oBAAoB,EACpB,aAAa,EACb,aAAa,EACb,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,
|
|
1
|
+
{"version":3,"file":"tick.js","sourceRoot":"","sources":["../../src/commands/tick.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/ui.d.ts
CHANGED
|
@@ -9,7 +9,14 @@
|
|
|
9
9
|
import { type UiServer } from "../ui/server.js";
|
|
10
10
|
export interface UiCommandOptions {
|
|
11
11
|
db?: string;
|
|
12
|
+
/** Explicit port (0 = any free one). Absent: DEFAULT_UI_PORT, else a free port. */
|
|
12
13
|
port?: number;
|
|
14
|
+
/** Port tried when `port` is absent; default DEFAULT_UI_PORT (tests inject one). */
|
|
15
|
+
defaultPort?: number;
|
|
16
|
+
/** Directory of `ui.json` and `ui-clients.json`; default: the Tidegap home. */
|
|
17
|
+
stateDir?: string;
|
|
18
|
+
/** CLI version written to `ui.json`. */
|
|
19
|
+
cliVersion?: string;
|
|
13
20
|
/** `false` (`--no-open`) only prints the URL. */
|
|
14
21
|
open?: boolean;
|
|
15
22
|
region?: string;
|
|
@@ -20,6 +27,7 @@ export declare function newToken(): string;
|
|
|
20
27
|
export declare function startUi(opts?: UiCommandOptions): Promise<{
|
|
21
28
|
server: UiServer;
|
|
22
29
|
link: string;
|
|
30
|
+
warning?: string;
|
|
23
31
|
}>;
|
|
24
32
|
export declare function runUi(opts?: UiCommandOptions): Promise<number>;
|
|
25
33
|
//# sourceMappingURL=ui.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../src/commands/ui.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../src/commands/ui.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAeH,OAAO,EAAiB,KAAK,QAAQ,EAAwB,MAAM,iBAAiB,CAAC;AAMrF,MAAM,WAAW,gBAAgB;IAC/B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,mFAAmF;IACnF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oFAAoF;IACpF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iDAAiD;IACjD,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,iFAAiF;AACjF,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAM,CAAC,QAA2B,GAAG,IAAI,CAc3F;AAED,wBAAgB,QAAQ,IAAI,MAAM,CAEjC;AAyBD,wBAAsB,OAAO,CAC3B,IAAI,GAAE,gBAAqB,GAC1B,OAAO,CAAC;IAAE,MAAM,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CA6C/D;AAED,wBAAsB,KAAK,CAAC,IAAI,GAAE,gBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC,CAkBxE"}
|