aibroker 0.13.1 → 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 (61) hide show
  1. package/dist/adapters/iterm/core.d.ts +11 -0
  2. package/dist/adapters/iterm/core.d.ts.map +1 -1
  3. package/dist/adapters/iterm/core.js +21 -13
  4. package/dist/adapters/iterm/core.js.map +1 -1
  5. package/dist/core/env.d.ts +14 -0
  6. package/dist/core/env.d.ts.map +1 -0
  7. package/dist/core/env.js +48 -0
  8. package/dist/core/env.js.map +1 -0
  9. package/dist/core/state.d.ts +27 -1
  10. package/dist/core/state.d.ts.map +1 -1
  11. package/dist/core/state.js +20 -1
  12. package/dist/core/state.js.map +1 -1
  13. package/dist/daemon/cli.js +6 -0
  14. package/dist/daemon/cli.js.map +1 -1
  15. package/dist/daemon/commands.d.ts.map +1 -1
  16. package/dist/daemon/commands.js +31 -10
  17. package/dist/daemon/commands.js.map +1 -1
  18. package/dist/daemon/core-handlers.d.ts.map +1 -1
  19. package/dist/daemon/core-handlers.js +120 -12
  20. package/dist/daemon/core-handlers.js.map +1 -1
  21. package/dist/daemon/dispatch.d.ts +8 -0
  22. package/dist/daemon/dispatch.d.ts.map +1 -1
  23. package/dist/daemon/dispatch.js +20 -3
  24. package/dist/daemon/dispatch.js.map +1 -1
  25. package/dist/daemon/index.d.ts.map +1 -1
  26. package/dist/daemon/index.js +32 -34
  27. package/dist/daemon/index.js.map +1 -1
  28. package/dist/daemon/mailbox-watch.d.ts +26 -0
  29. package/dist/daemon/mailbox-watch.d.ts.map +1 -0
  30. package/dist/daemon/mailbox-watch.js +69 -0
  31. package/dist/daemon/mailbox-watch.js.map +1 -0
  32. package/dist/daemon/ota.d.ts.map +1 -1
  33. package/dist/daemon/ota.js +9 -3
  34. package/dist/daemon/ota.js.map +1 -1
  35. package/dist/daemon/todoist-cli.d.ts +10 -0
  36. package/dist/daemon/todoist-cli.d.ts.map +1 -0
  37. package/dist/daemon/todoist-cli.js +108 -0
  38. package/dist/daemon/todoist-cli.js.map +1 -0
  39. package/dist/daemon/todoist-ingress.d.ts +47 -0
  40. package/dist/daemon/todoist-ingress.d.ts.map +1 -0
  41. package/dist/daemon/todoist-ingress.js +101 -0
  42. package/dist/daemon/todoist-ingress.js.map +1 -0
  43. package/dist/daemon/todoist-oauth.d.ts +69 -0
  44. package/dist/daemon/todoist-oauth.d.ts.map +1 -0
  45. package/dist/daemon/todoist-oauth.js +182 -0
  46. package/dist/daemon/todoist-oauth.js.map +1 -0
  47. package/dist/daemon/todoist-owners.d.ts +23 -0
  48. package/dist/daemon/todoist-owners.d.ts.map +1 -0
  49. package/dist/daemon/todoist-owners.js +60 -0
  50. package/dist/daemon/todoist-owners.js.map +1 -0
  51. package/dist/daemon/todoist-reply.d.ts +58 -0
  52. package/dist/daemon/todoist-reply.d.ts.map +1 -0
  53. package/dist/daemon/todoist-reply.js +135 -0
  54. package/dist/daemon/todoist-reply.js.map +1 -0
  55. package/dist/daemon/todoist-webhook.d.ts +66 -3
  56. package/dist/daemon/todoist-webhook.d.ts.map +1 -1
  57. package/dist/daemon/todoist-webhook.js +244 -17
  58. package/dist/daemon/todoist-webhook.js.map +1 -1
  59. package/dist/mcp/index.js +30 -2
  60. package/dist/mcp/index.js.map +1 -1
  61. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/daemon/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/daemon/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * daemon/mailbox-watch.ts — a queued message that never gets read is not queued.
3
+ *
4
+ * `send_to_session` now says "queued" when it could not confirm the target took
5
+ * the message, which is honest at the moment of sending. It stops being honest
6
+ * with time. A message queued at 14:00 and still undrained at 18:00 is not
7
+ * pending — it is lost, and an audit trail that still calls it "queued" is a
8
+ * silent failure wearing a truthful label. That is harder to spot than an
9
+ * obvious lie, because nothing looks wrong.
10
+ *
11
+ * So every state that can persist has to know how long it has been in that
12
+ * state. The mailbox already stamps each message; this is the thing that looks.
13
+ */
14
+ import { type MailboxMessage } from "../core/state.js";
15
+ /** How long a message may sit undrained before it is a fault rather than a wait. */
16
+ export declare const STALE_AFTER_MS: number;
17
+ /**
18
+ * Report messages that have outlived "queued".
19
+ *
20
+ * Exported for tests and callable directly; `now` is injected so ageing can be
21
+ * exercised without waiting a quarter of an hour.
22
+ */
23
+ export declare function sweepStaleMailboxes(now?: number): MailboxMessage[];
24
+ export declare function startMailboxWatch(): void;
25
+ export declare function stopMailboxWatch(): void;
26
+ //# sourceMappingURL=mailbox-watch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mailbox-watch.d.ts","sourceRoot":"","sources":["../../src/daemon/mailbox-watch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAwB,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAI7E,oFAAoF;AACpF,eAAO,MAAM,cAAc,QAAiB,CAAC;AAO7C;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,GAAE,MAAmB,GAAG,cAAc,EAAE,CAkB9E;AAED,wBAAgB,iBAAiB,IAAI,IAAI,CAYxC;AAED,wBAAgB,gBAAgB,IAAI,IAAI,CAGvC"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * daemon/mailbox-watch.ts — a queued message that never gets read is not queued.
3
+ *
4
+ * `send_to_session` now says "queued" when it could not confirm the target took
5
+ * the message, which is honest at the moment of sending. It stops being honest
6
+ * with time. A message queued at 14:00 and still undrained at 18:00 is not
7
+ * pending — it is lost, and an audit trail that still calls it "queued" is a
8
+ * silent failure wearing a truthful label. That is harder to spot than an
9
+ * obvious lie, because nothing looks wrong.
10
+ *
11
+ * So every state that can persist has to know how long it has been in that
12
+ * state. The mailbox already stamps each message; this is the thing that looks.
13
+ */
14
+ import { listSessionMailboxes } from "../core/state.js";
15
+ import { audit } from "./audit.js";
16
+ import { log } from "../core/log.js";
17
+ /** How long a message may sit undrained before it is a fault rather than a wait. */
18
+ export const STALE_AFTER_MS = 15 * 60 * 1000;
19
+ /** How often to look. Cheap: an in-memory scan of a bounded map. */
20
+ const SWEEP_INTERVAL_MS = 5 * 60 * 1000;
21
+ let timer;
22
+ /**
23
+ * Report messages that have outlived "queued".
24
+ *
25
+ * Exported for tests and callable directly; `now` is injected so ageing can be
26
+ * exercised without waiting a quarter of an hour.
27
+ */
28
+ export function sweepStaleMailboxes(now = Date.now()) {
29
+ const stale = [];
30
+ for (const { sessionId, messages } of listSessionMailboxes()) {
31
+ for (const m of messages) {
32
+ if (m.staleReported)
33
+ continue;
34
+ const waited = now - m.timestamp;
35
+ if (waited < STALE_AFTER_MS)
36
+ continue;
37
+ m.staleReported = true;
38
+ stale.push(m);
39
+ audit({
40
+ action: "send", actor: `session:${m.from}`, target: sessionId,
41
+ outcome: "stale", body: m.content,
42
+ reason: `undrained for ${Math.round(waited / 60000)} min — reported queued, never read`,
43
+ });
44
+ log(`mailbox-watch: message from ${m.from} to ${sessionId} undrained for ${Math.round(waited / 60000)} min`);
45
+ }
46
+ }
47
+ return stale;
48
+ }
49
+ export function startMailboxWatch() {
50
+ if (timer)
51
+ return;
52
+ timer = setInterval(() => {
53
+ try {
54
+ sweepStaleMailboxes();
55
+ }
56
+ catch (e) {
57
+ log(`mailbox-watch: sweep failed — ${e instanceof Error ? e.message : String(e)}`);
58
+ }
59
+ }, SWEEP_INTERVAL_MS);
60
+ // Never hold the process open for a housekeeping timer.
61
+ timer.unref?.();
62
+ log(`mailbox-watch: watching for messages undrained after ${STALE_AFTER_MS / 60000} min`);
63
+ }
64
+ export function stopMailboxWatch() {
65
+ if (timer)
66
+ clearInterval(timer);
67
+ timer = undefined;
68
+ }
69
+ //# sourceMappingURL=mailbox-watch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mailbox-watch.js","sourceRoot":"","sources":["../../src/daemon/mailbox-watch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,oBAAoB,EAAuB,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAErC,oFAAoF;AACpF,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAE7C,oEAAoE;AACpE,MAAM,iBAAiB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAExC,IAAI,KAAiC,CAAC;AAEtC;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAc,IAAI,CAAC,GAAG,EAAE;IAC1D,MAAM,KAAK,GAAqB,EAAE,CAAC;IACnC,KAAK,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,oBAAoB,EAAE,EAAE,CAAC;QAC7D,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,IAAI,CAAC,CAAC,aAAa;gBAAE,SAAS;YAC9B,MAAM,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,SAAS,CAAC;YACjC,IAAI,MAAM,GAAG,cAAc;gBAAE,SAAS;YACtC,CAAC,CAAC,aAAa,GAAG,IAAI,CAAC;YACvB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACd,KAAK,CAAC;gBACJ,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,SAAS;gBAC7D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO;gBACjC,MAAM,EAAE,iBAAiB,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,oCAAoC;aACxF,CAAC,CAAC;YACH,GAAG,CAAC,+BAA+B,CAAC,CAAC,IAAI,OAAO,SAAS,kBAAkB,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;QAC/G,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,IAAI,KAAK;QAAE,OAAO;IAClB,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;QACvB,IAAI,CAAC;YACH,mBAAmB,EAAE,CAAC;QACxB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,GAAG,CAAC,iCAAiC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACrF,CAAC;IACH,CAAC,EAAE,iBAAiB,CAAC,CAAC;IACtB,wDAAwD;IACxD,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;IAChB,GAAG,CAAC,wDAAwD,cAAc,GAAG,KAAK,MAAM,CAAC,CAAC;AAC5F,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,IAAI,KAAK;QAAE,aAAa,CAAC,KAAK,CAAC,CAAC;IAChC,KAAK,GAAG,SAAS,CAAC;AACpB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ota.d.ts","sourceRoot":"","sources":["../../src/daemon/ota.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAsDH,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA+C1D"}
1
+ {"version":3,"file":"ota.d.ts","sourceRoot":"","sources":["../../src/daemon/ota.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA4DH,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA+C1D"}
@@ -29,10 +29,16 @@ function ensureDataDirs() {
29
29
  mkdirSync(join(base, "uploads-tmp"), { recursive: true });
30
30
  }
31
31
  function setupTailscaleServe() {
32
- // Idempotent — tailscale serve is safe to run multiple times
32
+ // Idempotent — tailscale serve is safe to run multiple times.
33
+ //
34
+ // Deliberately 8443, not 443. Port 443 carries the Todoist webhook, and that
35
+ // one has to be a Funnel because Todoist calls from the public internet and
36
+ // refuses a URL with a port in it. Funnel is a property of the whole port:
37
+ // anything routed on 443 is public. The OTA hub serves app binaries and an
38
+ // upload API, so it stays on a tailnet-only port of its own.
33
39
  const cmds = [
34
- "tailscale serve --bg --https=443 --set-path=/install/ http://127.0.0.1:8765/install/",
35
- "tailscale serve --bg --https=443 --set-path=/api/ http://127.0.0.1:8765/api/",
40
+ "tailscale serve --bg --https=8443 --set-path=/install/ http://127.0.0.1:8765/install/",
41
+ "tailscale serve --bg --https=8443 --set-path=/api/ http://127.0.0.1:8765/api/",
36
42
  ];
37
43
  for (const cmd of cmds) {
38
44
  console.log(`+ ${cmd}`);
@@ -1 +1 @@
1
- {"version":3,"file":"ota.js","sourceRoot":"","sources":["../../src/daemon/ota.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ota.js","sourceRoot":"","sources":["../../src/daemon/ota.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * daemon/todoist-cli.ts — `aibroker todoist` subcommands.
3
+ *
4
+ * `auth` exists because Todoist does not deliver webhooks to the account that
5
+ * created the app: only a completed OAuth round trip switches delivery on, and
6
+ * the console's install button is not that. This mints the state, prints the
7
+ * URL and hands off to the landing endpoint the daemon serves.
8
+ */
9
+ export declare function runTodoist(args: string[]): Promise<void>;
10
+ //# sourceMappingURL=todoist-cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"todoist-cli.d.ts","sourceRoot":"","sources":["../../src/daemon/todoist-cli.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAsBH,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAkF9D"}
@@ -0,0 +1,108 @@
1
+ /**
2
+ * daemon/todoist-cli.ts — `aibroker todoist` subcommands.
3
+ *
4
+ * `auth` exists because Todoist does not deliver webhooks to the account that
5
+ * created the app: only a completed OAuth round trip switches delivery on, and
6
+ * the console's install button is not that. This mints the state, prints the
7
+ * URL and hands off to the landing endpoint the daemon serves.
8
+ */
9
+ import { loadEnvFile } from "../core/env.js";
10
+ import { authorizeUrl, beginAuth, loadToken } from "./todoist-oauth.js";
11
+ const DEFAULT_SCOPE = "data:read_write";
12
+ function usage() {
13
+ console.log("Usage: aibroker todoist <auth|status|ingress>");
14
+ console.log("");
15
+ console.log(" auth [--scope <scopes>] Authorise this account so webhooks are delivered");
16
+ console.log(" status Show whether an authorisation is on file");
17
+ console.log(" ingress list Projects allowed to reach a session");
18
+ console.log(" ingress add <id> [=owner] Grant a project ingress, effective immediately");
19
+ console.log(" ingress remove <id> Revoke a grant");
20
+ console.log("");
21
+ console.log(`Default scope: ${DEFAULT_SCOPE}. Add data:delete only if the bridge should remove tasks.`);
22
+ console.log("");
23
+ console.log("Ingress is deliberately explicit: a task filed into an allowed project becomes an");
24
+ console.log("instruction a session runs with your full rights. Grants are recorded in the audit.");
25
+ }
26
+ export async function runTodoist(args) {
27
+ loadEnvFile();
28
+ const [sub, ...rest] = args;
29
+ switch (sub) {
30
+ case "auth": {
31
+ const clientId = process.env.TODOIST_CLIENT_ID;
32
+ if (!clientId) {
33
+ console.error("TODOIST_CLIENT_ID is not set in ~/.aibroker/env.");
34
+ console.error("Copy it from Todoist → Settings → Integrations → Developer → your app.");
35
+ process.exit(1);
36
+ }
37
+ const scopeIdx = rest.indexOf("--scope");
38
+ const scope = scopeIdx !== -1 ? rest[scopeIdx + 1] : DEFAULT_SCOPE;
39
+ const state = beginAuth();
40
+ const url = authorizeUrl(clientId, scope, state);
41
+ console.log("Open this URL and approve the request:\n");
42
+ console.log(` ${url}\n`);
43
+ console.log("Todoist will send you back to the redirect URL, which this daemon answers:");
44
+ console.log("it makes the token exchange itself and tells you whether it worked.");
45
+ console.log("\nThe attempt is good for 15 minutes.");
46
+ break;
47
+ }
48
+ case "status": {
49
+ const token = loadToken();
50
+ if (!token) {
51
+ console.log("No Todoist authorisation on file — webhooks will not be delivered.");
52
+ console.log("Run: aibroker todoist auth");
53
+ process.exit(1);
54
+ }
55
+ // Never print the token. What matters is that one exists, and what it can do.
56
+ console.log(`Authorised ${token.obtained_at}`);
57
+ console.log(`Scope: ${token.scope ?? "(unreported)"}`);
58
+ break;
59
+ }
60
+ case "ingress": {
61
+ const { listGrants, grantIngress, revokeIngress } = await import("./todoist-ingress.js");
62
+ const [action, arg] = rest;
63
+ if (!action || action === "list") {
64
+ const envIds = (process.env.TODOIST_INGRESS_PROJECTS ?? "")
65
+ .split(",").map((s) => s.trim()).filter(Boolean);
66
+ if (envIds.length) {
67
+ console.log("From ~/.aibroker/env (TODOIST_INGRESS_PROJECTS):");
68
+ for (const e of envIds)
69
+ console.log(` ${e}`);
70
+ }
71
+ const grants = listGrants();
72
+ console.log(grants.length ? "\nGranted at runtime:" : "\nNo runtime grants.");
73
+ for (const g of grants) {
74
+ console.log(` ${g.projectId}${g.projectName ? ` (${g.projectName})` : ""} → ${g.owner ?? "(default owner)"} since ${g.grantedAt.slice(0, 10)}`);
75
+ }
76
+ break;
77
+ }
78
+ if (action === "add") {
79
+ if (!arg) {
80
+ console.error("Usage: aibroker todoist ingress add <projectId>[=owner] [--name <label>]");
81
+ process.exit(1);
82
+ }
83
+ const [projectId, owner] = arg.split("=").map((s) => s.trim());
84
+ const nameIdx = rest.indexOf("--name");
85
+ const projectName = nameIdx !== -1 ? rest[nameIdx + 1] : undefined;
86
+ const g = grantIngress(projectId, { owner: owner || undefined, projectName });
87
+ console.log(`Granted ${g.projectName ?? g.projectId} → ${g.owner ?? "(default owner)"}. Effective immediately.`);
88
+ break;
89
+ }
90
+ if (action === "remove") {
91
+ if (!arg) {
92
+ console.error("Usage: aibroker todoist ingress remove <projectId>");
93
+ process.exit(1);
94
+ }
95
+ console.log(revokeIngress(arg) ? `Revoked ${arg}.` : `No runtime grant for ${arg} (an entry in ~/.aibroker/env must be removed there).`);
96
+ break;
97
+ }
98
+ console.error(`Unknown ingress action: ${action}`);
99
+ process.exit(1);
100
+ break;
101
+ }
102
+ default:
103
+ usage();
104
+ if (sub)
105
+ process.exit(1);
106
+ }
107
+ }
108
+ //# sourceMappingURL=todoist-cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"todoist-cli.js","sourceRoot":"","sources":["../../src/daemon/todoist-cli.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAExE,MAAM,aAAa,GAAG,iBAAiB,CAAC;AAExC,SAAS,KAAK;IACZ,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;IAC7D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,mFAAmF,CAAC,CAAC;IACjG,OAAO,CAAC,GAAG,CAAC,2EAA2E,CAAC,CAAC;IACzF,OAAO,CAAC,GAAG,CAAC,sEAAsE,CAAC,CAAC;IACpF,OAAO,CAAC,GAAG,CAAC,iFAAiF,CAAC,CAAC;IAC/F,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;IAC/D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,kBAAkB,aAAa,2DAA2D,CAAC,CAAC;IACxG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,mFAAmF,CAAC,CAAC;IACjG,OAAO,CAAC,GAAG,CAAC,qFAAqF,CAAC,CAAC;AACrG,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAc;IAC7C,WAAW,EAAE,CAAC;IACd,MAAM,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IAE5B,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;YAC/C,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,OAAO,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;gBAClE,OAAO,CAAC,KAAK,CAAC,wEAAwE,CAAC,CAAC;gBACxF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACzC,MAAM,KAAK,GAAG,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;YACnE,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC;YAC1B,MAAM,GAAG,GAAG,YAAY,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YAEjD,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;YACxD,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,4EAA4E,CAAC,CAAC;YAC1F,OAAO,CAAC,GAAG,CAAC,qEAAqE,CAAC,CAAC;YACnF,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;YACrD,MAAM;QACR,CAAC;QAED,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC;YAC1B,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,CAAC,GAAG,CAAC,oEAAoE,CAAC,CAAC;gBAClF,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;gBAC1C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,8EAA8E;YAC9E,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;YAC/C,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,CAAC,KAAK,IAAI,cAAc,EAAE,CAAC,CAAC;YACvD,MAAM;QACR,CAAC;QAED,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;YACzF,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;YAE3B,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;gBACjC,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,EAAE,CAAC;qBACxD,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACnD,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;oBAClB,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;oBAChE,KAAK,MAAM,CAAC,IAAI,MAAM;wBAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBAChD,CAAC;gBACD,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;gBAC5B,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC;gBAC9E,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;oBACvB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,KAAK,IAAI,iBAAiB,WAAW,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;gBACpJ,CAAC;gBACD,MAAM;YACR,CAAC;YAED,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;gBACrB,IAAI,CAAC,GAAG,EAAE,CAAC;oBAAC,OAAO,CAAC,KAAK,CAAC,0EAA0E,CAAC,CAAC;oBAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAAC,CAAC;gBACzH,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC/D,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACvC,MAAM,WAAW,GAAG,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBACnE,MAAM,CAAC,GAAG,YAAY,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,KAAK,IAAI,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC;gBAC9E,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,SAAS,MAAM,CAAC,CAAC,KAAK,IAAI,iBAAiB,0BAA0B,CAAC,CAAC;gBACjH,MAAM;YACR,CAAC;YAED,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACxB,IAAI,CAAC,GAAG,EAAE,CAAC;oBAAC,OAAO,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC;oBAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAAC,CAAC;gBACnG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,GAAG,CAAC,CAAC,CAAC,wBAAwB,GAAG,uDAAuD,CAAC,CAAC;gBACzI,MAAM;YACR,CAAC;YAED,OAAO,CAAC,KAAK,CAAC,2BAA2B,MAAM,EAAE,CAAC,CAAC;YACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAChB,MAAM;QACR,CAAC;QAED;YACE,KAAK,EAAE,CAAC;YACR,IAAI,GAAG;gBAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7B,CAAC;AACH,CAAC"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * daemon/todoist-ingress.ts — granting a project the right to reach a session.
3
+ *
4
+ * The allowlist began as one environment variable of opaque project ids, read
5
+ * once at daemon start. That is the wrong shape for something you change while
6
+ * using the system: creating a Todoist project and then editing a file and
7
+ * restarting a daemon is not a workflow anyone will follow, and a project that
8
+ * looks ready but routes nowhere fails exactly the way this codebase keeps
9
+ * trying to stop things failing — silently, with everything appearing fine.
10
+ *
11
+ * So grants live here too, in a store the daemon re-reads, and every change is
12
+ * an operation with an audit record rather than a file edit. The environment
13
+ * variable still works and still wins nothing: the two are merged, so an
14
+ * existing setup keeps behaving exactly as it did.
15
+ *
16
+ * What does NOT change is that the list stays explicit. A task filed into a
17
+ * project becomes an instruction a session runs with the user's full rights,
18
+ * and Todoist's payload documents that the initiator may be a collaborator on
19
+ * a shared project. Granting ingress must be a decision. It is now a decision
20
+ * that is recorded.
21
+ */
22
+ import type { WebhookConfig } from "./todoist-webhook.js";
23
+ export interface IngressGrant {
24
+ projectId: string;
25
+ /** Human-readable, for the CLI and for reading the file a month from now. */
26
+ projectName?: string;
27
+ /** Session that owns work filed here. Unset falls through to the default. */
28
+ owner?: string;
29
+ grantedAt: string;
30
+ }
31
+ export declare function listGrants(): IngressGrant[];
32
+ /** Grant a project the right to reach a session. Idempotent. */
33
+ export declare function grantIngress(projectId: string, opts?: {
34
+ owner?: string;
35
+ projectName?: string;
36
+ }): IngressGrant;
37
+ /** Revoke a grant. Returns whether anything was there to revoke. */
38
+ export declare function revokeIngress(projectId: string): boolean;
39
+ /**
40
+ * Merge stored grants into a config read from the environment.
41
+ *
42
+ * Called per request rather than at startup: the point of the store is that a
43
+ * grant takes effect when it is made, not when the daemon is next restarted.
44
+ * Returns a new object — the caller's config is never mutated.
45
+ */
46
+ export declare function applyGrants(cfg: WebhookConfig): WebhookConfig;
47
+ //# sourceMappingURL=todoist-ingress.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"todoist-ingress.d.ts","sourceRoot":"","sources":["../../src/daemon/todoist-ingress.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAOH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAI1D,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,6EAA6E;IAC7E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6EAA6E;IAC7E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAkBD,wBAAgB,UAAU,IAAI,YAAY,EAAE,CAE3C;AAED,gEAAgE;AAChE,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,YAAY,CAmBjH;AAED,oEAAoE;AACpE,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAYxD;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,aAAa,GAAG,aAAa,CAW7D"}
@@ -0,0 +1,101 @@
1
+ /**
2
+ * daemon/todoist-ingress.ts — granting a project the right to reach a session.
3
+ *
4
+ * The allowlist began as one environment variable of opaque project ids, read
5
+ * once at daemon start. That is the wrong shape for something you change while
6
+ * using the system: creating a Todoist project and then editing a file and
7
+ * restarting a daemon is not a workflow anyone will follow, and a project that
8
+ * looks ready but routes nowhere fails exactly the way this codebase keeps
9
+ * trying to stop things failing — silently, with everything appearing fine.
10
+ *
11
+ * So grants live here too, in a store the daemon re-reads, and every change is
12
+ * an operation with an audit record rather than a file edit. The environment
13
+ * variable still works and still wins nothing: the two are merged, so an
14
+ * existing setup keeps behaving exactly as it did.
15
+ *
16
+ * What does NOT change is that the list stays explicit. A task filed into a
17
+ * project becomes an instruction a session runs with the user's full rights,
18
+ * and Todoist's payload documents that the initiator may be a collaborator on
19
+ * a shared project. Granting ingress must be a decision. It is now a decision
20
+ * that is recorded.
21
+ */
22
+ import { join } from "node:path";
23
+ import { homedir } from "node:os";
24
+ import { loadJson, saveJson } from "../core/json-store.js";
25
+ import { audit } from "./audit.js";
26
+ import { log } from "../core/log.js";
27
+ const FILE = join(homedir(), ".aibroker", "todoist-ingress.json");
28
+ function read() {
29
+ const r = loadJson(FILE);
30
+ if (r.status === "ok" && Array.isArray(r.data?.grants))
31
+ return r.data;
32
+ if (r.status === "unreadable") {
33
+ // Never rewrite a file we could not parse: an ingress list is a security
34
+ // boundary, and silently replacing it with an empty one is worse than
35
+ // refusing to add to it.
36
+ log(`todoist-ingress: ${FILE} is unreadable — grants from it are not in effect`);
37
+ }
38
+ return { grants: [] };
39
+ }
40
+ export function listGrants() {
41
+ return read().grants;
42
+ }
43
+ /** Grant a project the right to reach a session. Idempotent. */
44
+ export function grantIngress(projectId, opts = {}) {
45
+ const s = read();
46
+ const existing = s.grants.find((g) => g.projectId === projectId);
47
+ const grant = existing ?? {
48
+ projectId,
49
+ grantedAt: new Date().toISOString(),
50
+ };
51
+ if (opts.owner !== undefined)
52
+ grant.owner = opts.owner;
53
+ if (opts.projectName !== undefined)
54
+ grant.projectName = opts.projectName;
55
+ if (!existing)
56
+ s.grants.push(grant);
57
+ saveJson(FILE, s);
58
+ audit({
59
+ action: "ingress", actor: "aibroker", target: `todoist:project:${projectId}`,
60
+ outcome: existing ? "updated" : "granted",
61
+ reason: `${opts.projectName ?? projectId} → ${grant.owner ?? "(default owner)"}`,
62
+ });
63
+ log(`todoist-ingress: ${existing ? "updated" : "granted"} ${opts.projectName ?? projectId} → ${grant.owner ?? "default"}`);
64
+ return grant;
65
+ }
66
+ /** Revoke a grant. Returns whether anything was there to revoke. */
67
+ export function revokeIngress(projectId) {
68
+ const s = read();
69
+ const before = s.grants.length;
70
+ s.grants = s.grants.filter((g) => g.projectId !== projectId);
71
+ if (s.grants.length === before)
72
+ return false;
73
+ saveJson(FILE, s);
74
+ audit({
75
+ action: "ingress", actor: "aibroker", target: `todoist:project:${projectId}`,
76
+ outcome: "revoked",
77
+ });
78
+ log(`todoist-ingress: revoked ${projectId}`);
79
+ return true;
80
+ }
81
+ /**
82
+ * Merge stored grants into a config read from the environment.
83
+ *
84
+ * Called per request rather than at startup: the point of the store is that a
85
+ * grant takes effect when it is made, not when the daemon is next restarted.
86
+ * Returns a new object — the caller's config is never mutated.
87
+ */
88
+ export function applyGrants(cfg) {
89
+ const grants = listGrants();
90
+ if (grants.length === 0)
91
+ return cfg;
92
+ const ids = new Set(cfg.ingressProjectIds);
93
+ const owners = new Map(cfg.projectOwners);
94
+ for (const g of grants) {
95
+ ids.add(g.projectId);
96
+ if (g.owner)
97
+ owners.set(g.projectId, g.owner);
98
+ }
99
+ return { ...cfg, ingressProjectIds: ids, projectOwners: owners };
100
+ }
101
+ //# sourceMappingURL=todoist-ingress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"todoist-ingress.js","sourceRoot":"","sources":["../../src/daemon/todoist-ingress.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * daemon/todoist-oauth.ts — the OAuth landing the redirect URL actually needs.
3
+ *
4
+ * Todoist does not deliver webhooks to the account that created the app. The
5
+ * app has to be authorised like any third party would authorise it, and the
6
+ * console's "install for myself" button does not do that — only a completed
7
+ * OAuth round trip does. Todoist's own guidance is to run the flow by hand and
8
+ * lift the `code` out of the address bar with developer tools, then exchange it
9
+ * from a separate HTTP client because the exchange has to be a POST.
10
+ *
11
+ * That instruction is a description of a missing endpoint. The redirect URL is
12
+ * ours; if it serves nothing, the browser lands on a 404 and the human has to
13
+ * play proxy for a machine-to-machine step. So we serve it: this module takes
14
+ * the `code` off the redirect, does the token exchange itself, stores the token
15
+ * and reports what happened — on the page and in the audit trail.
16
+ *
17
+ * The state parameter is not decoration. `aibroker todoist auth` mints one and
18
+ * records it; a callback that cannot present it is refused, because otherwise
19
+ * anyone who can reach the redirect can drive a code of their choosing into
20
+ * this exchange.
21
+ */
22
+ /** Anything Todoist hands back on a successful exchange, plus when we got it. */
23
+ export interface StoredToken {
24
+ access_token: string;
25
+ token_type: string;
26
+ scope?: string;
27
+ obtained_at: string;
28
+ }
29
+ /** Mint and record the state for one authorisation attempt. */
30
+ export declare function beginAuth(): string;
31
+ /**
32
+ * Check a callback's state against the recorded one and consume it.
33
+ *
34
+ * Returns a reason when it does not hold up, so the caller can say precisely
35
+ * what was wrong rather than "invalid request".
36
+ */
37
+ export declare function consumeState(got: string | null): {
38
+ ok: true;
39
+ } | {
40
+ ok: false;
41
+ reason: string;
42
+ };
43
+ export declare function loadToken(): StoredToken | null;
44
+ export declare function saveToken(t: StoredToken): void;
45
+ /** Build the URL a browser has to visit to authorise the app. */
46
+ export declare function authorizeUrl(clientId: string, scope: string, state: string): string;
47
+ /**
48
+ * Trade the authorisation code for a token.
49
+ *
50
+ * Kept separate from the request handler so the exchange can be tested and so
51
+ * the secret is used in exactly one place.
52
+ */
53
+ export declare function exchangeCode(clientId: string, clientSecret: string, code: string, fetchImpl?: typeof fetch): Promise<StoredToken>;
54
+ export interface OAuthDeps {
55
+ clientId?: string;
56
+ clientSecret: string;
57
+ fetchImpl?: typeof fetch;
58
+ }
59
+ /**
60
+ * Handle the redirect Todoist sends the browser to.
61
+ *
62
+ * Always answers with a readable page — this is the one endpoint here a human
63
+ * looks at directly, and "404" taught the last person to debug it nothing.
64
+ */
65
+ export declare function handleOAuthCallback(url: URL, deps: OAuthDeps): Promise<{
66
+ status: number;
67
+ html: string;
68
+ }>;
69
+ //# sourceMappingURL=todoist-oauth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"todoist-oauth.d.ts","sourceRoot":"","sources":["../../src/daemon/todoist-oauth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAaH,iFAAiF;AACjF,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACrB;AA4BD,+DAA+D;AAC/D,wBAAgB,SAAS,IAAI,MAAM,CAIlC;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAU7F;AAED,wBAAgB,SAAS,IAAI,WAAW,GAAG,IAAI,CAE9C;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,WAAW,GAAG,IAAI,CAE9C;AAED,iEAAiE;AACjE,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAGnF;AAED;;;;;GAKG;AACH,wBAAsB,YAAY,CAChC,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,MAAM,EACZ,SAAS,GAAE,OAAO,KAAa,GAC9B,OAAO,CAAC,WAAW,CAAC,CAwBtB;AAgBD,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,SAAS,GACd,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAoD3C"}