aibroker 0.18.0 → 0.20.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.
@@ -1 +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,CA4F9D"}
1
+ {"version":3,"file":"todoist-cli.d.ts","sourceRoot":"","sources":["../../src/daemon/todoist-cli.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAuBH,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAiG9D"}
@@ -16,6 +16,7 @@ function usage() {
16
16
  console.log(" status Show whether an authorisation is on file");
17
17
  console.log(" ingress list Projects allowed to reach a session");
18
18
  console.log(" ingress add <id> [=owner] Grant a project ingress, effective immediately");
19
+ console.log(" --subtree ...and every project nested under it");
19
20
  console.log(" ingress remove <id> Revoke a grant");
20
21
  console.log("");
21
22
  console.log(`Default scope: ${DEFAULT_SCOPE}. Add data:delete only if the bridge should remove tasks.`);
@@ -82,20 +83,25 @@ export async function runTodoist(args) {
82
83
  const grants = listGrants();
83
84
  console.log(grants.length ? "\nGranted at runtime:" : "\nNo runtime grants.");
84
85
  for (const g of grants) {
85
- console.log(` ${g.projectId}${g.projectName ? ` (${g.projectName})` : ""} → ${g.owner ?? "(default owner)"} since ${g.grantedAt.slice(0, 10)}`);
86
+ console.log(` ${g.projectId}${g.projectName ? ` (${g.projectName})` : ""} → ${g.owner ?? "(default owner)"}${g.subtree ? " + descendants" : ""} since ${g.grantedAt.slice(0, 10)}`);
86
87
  }
87
88
  break;
88
89
  }
89
90
  if (action === "add") {
90
91
  if (!arg) {
91
- console.error("Usage: aibroker todoist ingress add <projectId>[=owner] [--name <label>]");
92
+ console.error("Usage: aibroker todoist ingress add <projectId>[=owner] [--name <label>] [--subtree]");
92
93
  process.exit(1);
93
94
  }
94
95
  const [projectId, owner] = arg.split("=").map((s) => s.trim());
95
96
  const nameIdx = rest.indexOf("--name");
96
97
  const projectName = nameIdx !== -1 ? rest[nameIdx + 1] : undefined;
97
- const g = grantIngress(projectId, { owner: owner || undefined, projectName });
98
- console.log(`Granted ${g.projectName ?? g.projectId} ${g.owner ?? "(default owner)"}. Effective immediately.`);
98
+ const subtree = rest.includes("--subtree");
99
+ const g = grantIngress(projectId, { owner: owner || undefined, projectName, subtree });
100
+ console.log(`Granted ${g.projectName ?? g.projectId} → ${g.owner ?? "(default owner)"}${g.subtree ? " and every project under it" : ""}. Effective immediately.`);
101
+ if (subtree) {
102
+ console.log("Sub-projects inherit this owner. A project shared with you and later moved");
103
+ console.log("under this one would inherit it too — grant subtrees to roots you own.");
104
+ }
99
105
  break;
100
106
  }
101
107
  if (action === "remove") {
@@ -1 +1 @@
1
- {"version":3,"file":"todoist-cli.js","sourceRoot":"","sources":["../../src/daemon/todoist-cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"todoist-cli.js","sourceRoot":"","sources":["../../src/daemon/todoist-cli.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,21 @@
22
22
  import type { WebhookConfig } from "./todoist-webhook.js";
23
23
  export interface IngressGrant {
24
24
  projectId: string;
25
+ /**
26
+ * Does this grant cover the project's descendants?
27
+ *
28
+ * Opt-in per grant, deliberately. A sub-project is a folder, not a second
29
+ * owner: someone organising their work into "Jobs Matthias / Executive
30
+ * Search" has not made a decision about execution ingress, and before this
31
+ * existed those tasks were refused with "not an ingress project" — silently,
32
+ * and exactly when they tidied up.
33
+ *
34
+ * Still not implicit inheritance: granting a subtree is a decision, made
35
+ * once, and the residual risk is worth stating. A project shared with you and
36
+ * later moved under a granted root inherits execution rights nobody
37
+ * considered for it. Grant subtrees to roots you own.
38
+ */
39
+ subtree?: boolean;
25
40
  /** Human-readable, for the CLI and for reading the file a month from now. */
26
41
  projectName?: string;
27
42
  /** Session that owns work filed here. Unset falls through to the default. */
@@ -46,6 +61,7 @@ export declare function projectForOwner(owner: string): IngressGrant | undefined
46
61
  export declare function grantIngress(projectId: string, opts?: {
47
62
  owner?: string;
48
63
  projectName?: string;
64
+ subtree?: boolean;
49
65
  }): IngressGrant;
50
66
  /** Revoke a grant. Returns whether anything was there to revoke. */
51
67
  export declare function revokeIngress(projectId: string): boolean;
@@ -57,4 +73,16 @@ export declare function revokeIngress(projectId: string): boolean;
57
73
  * Returns a new object — the caller's config is never mutated.
58
74
  */
59
75
  export declare function applyGrants(cfg: WebhookConfig): WebhookConfig;
76
+ /**
77
+ * Allow a project reachable through an ancestor that granted its subtree.
78
+ *
79
+ * Returns a config with that project added, so everything downstream — the
80
+ * boundary check, the owner lookup, comment routing via a parent task — works
81
+ * unchanged. The owner is inherited from the nearest granting ancestor, because
82
+ * a folder is not a second owner.
83
+ *
84
+ * Returns the config untouched when nothing applies, so the ordinary path costs
85
+ * nothing.
86
+ */
87
+ export declare function expandThroughSubtree(cfg: WebhookConfig, projectId: string, ancestors: string[]): WebhookConfig;
60
88
  //# sourceMappingURL=todoist-ingress.d.ts.map
@@ -1 +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;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAKvE;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"}
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;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,EAAE,OAAO,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;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAKvE;AAED,gEAAgE;AAChE,wBAAgB,YAAY,CAC1B,SAAS,EAAE,MAAM,EACjB,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAO,GACrE,YAAY,CAoBd;AAED,oEAAoE;AACpE,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAYxD;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,aAAa,GAAG,aAAa,CAW7D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,aAAa,EAClB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EAAE,GAClB,aAAa,CAef"}
@@ -68,13 +68,15 @@ export function grantIngress(projectId, opts = {}) {
68
68
  grant.owner = opts.owner;
69
69
  if (opts.projectName !== undefined)
70
70
  grant.projectName = opts.projectName;
71
+ if (opts.subtree !== undefined)
72
+ grant.subtree = opts.subtree;
71
73
  if (!existing)
72
74
  s.grants.push(grant);
73
75
  saveJson(FILE, s);
74
76
  audit({
75
77
  action: "ingress", actor: "aibroker", target: `todoist:project:${projectId}`,
76
78
  outcome: existing ? "updated" : "granted",
77
- reason: `${opts.projectName ?? projectId} → ${grant.owner ?? "(default owner)"}`,
79
+ reason: `${opts.projectName ?? projectId} → ${grant.owner ?? "(default owner)"}${grant.subtree ? " (and descendants)" : ""}`,
78
80
  });
79
81
  log(`todoist-ingress: ${existing ? "updated" : "granted"} ${opts.projectName ?? projectId} → ${grant.owner ?? "default"}`);
80
82
  return grant;
@@ -114,4 +116,33 @@ export function applyGrants(cfg) {
114
116
  }
115
117
  return { ...cfg, ingressProjectIds: ids, projectOwners: owners };
116
118
  }
119
+ /**
120
+ * Allow a project reachable through an ancestor that granted its subtree.
121
+ *
122
+ * Returns a config with that project added, so everything downstream — the
123
+ * boundary check, the owner lookup, comment routing via a parent task — works
124
+ * unchanged. The owner is inherited from the nearest granting ancestor, because
125
+ * a folder is not a second owner.
126
+ *
127
+ * Returns the config untouched when nothing applies, so the ordinary path costs
128
+ * nothing.
129
+ */
130
+ export function expandThroughSubtree(cfg, projectId, ancestors) {
131
+ if (!projectId || cfg.ingressProjectIds.has(projectId))
132
+ return cfg;
133
+ const grants = listGrants();
134
+ for (const ancestorId of ancestors) {
135
+ const g = grants.find((x) => x.projectId === ancestorId && x.subtree);
136
+ if (!g)
137
+ continue;
138
+ const ids = new Set(cfg.ingressProjectIds);
139
+ ids.add(projectId);
140
+ const owners = new Map(cfg.projectOwners);
141
+ const owner = g.owner ?? cfg.projectOwners.get(ancestorId);
142
+ if (owner)
143
+ owners.set(projectId, owner);
144
+ return { ...cfg, ingressProjectIds: ids, projectOwners: owners };
145
+ }
146
+ return cfg;
147
+ }
117
148
  //# sourceMappingURL=todoist-ingress.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"todoist-ingress.js","sourceRoot":"","sources":["../../src/daemon/todoist-ingress.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"todoist-ingress.js","sourceRoot":"","sources":["../../src/daemon/todoist-ingress.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAGrC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,sBAAsB,CAAC,CAAC;AA8BlE,SAAS,IAAI;IACX,MAAM,CAAC,GAAG,QAAQ,CAAQ,IAAI,CAAC,CAAC;IAChC,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC;QAAE,OAAO,CAAC,CAAC,IAAI,CAAC;IACtE,IAAI,CAAC,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;QAC9B,yEAAyE;QACzE,sEAAsE;QACtE,yBAAyB;QACzB,GAAG,CAAC,oBAAoB,IAAI,mDAAmD,CAAC,CAAC;IACnF,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,OAAO,IAAI,EAAE,CAAC,MAAM,CAAC;AACvB,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,eAAe,CAAC,KAAa;IAC3C,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACjE,OAAO,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CACvB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,IAAI,CAC9E,CAAC;AACJ,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,YAAY,CAC1B,SAAiB,EACjB,OAAoE,EAAE;IAEtE,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC;IACjB,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;IACjE,MAAM,KAAK,GAAiB,QAAQ,IAAI;QACtC,SAAS;QACT,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,CAAC;IACF,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;QAAE,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IACvD,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS;QAAE,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;IACzE,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;QAAE,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAC7D,IAAI,CAAC,QAAQ;QAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAElB,KAAK,CAAC;QACJ,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,mBAAmB,SAAS,EAAE;QAC5E,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;QACzC,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,IAAI,SAAS,MAAM,KAAK,CAAC,KAAK,IAAI,iBAAiB,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,EAAE;KAC7H,CAAC,CAAC;IACH,GAAG,CAAC,oBAAoB,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,WAAW,IAAI,SAAS,MAAM,KAAK,CAAC,KAAK,IAAI,SAAS,EAAE,CAAC,CAAC;IAC3H,OAAO,KAAK,CAAC;AACf,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,aAAa,CAAC,SAAiB;IAC7C,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC;IACjB,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;IAC/B,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;IAC7D,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,MAAM;QAAE,OAAO,KAAK,CAAC;IAC7C,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAClB,KAAK,CAAC;QACJ,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,mBAAmB,SAAS,EAAE;QAC5E,OAAO,EAAE,SAAS;KACnB,CAAC,CAAC;IACH,GAAG,CAAC,4BAA4B,SAAS,EAAE,CAAC,CAAC;IAC7C,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,GAAkB;IAC5C,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,GAAG,CAAC;IAEpC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC1C,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACrB,IAAI,CAAC,CAAC,KAAK;YAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,EAAE,GAAG,GAAG,EAAE,iBAAiB,EAAE,GAAG,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC;AACnE,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,oBAAoB,CAClC,GAAkB,EAClB,SAAiB,EACjB,SAAmB;IAEnB,IAAI,CAAC,SAAS,IAAI,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC;QAAE,OAAO,GAAG,CAAC;IAEnE,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,KAAK,MAAM,UAAU,IAAI,SAAS,EAAE,CAAC;QACnC,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,UAAU,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;QACtE,IAAI,CAAC,CAAC;YAAE,SAAS;QACjB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAC3C,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACnB,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC3D,IAAI,KAAK;YAAE,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACxC,OAAO,EAAE,GAAG,GAAG,EAAE,iBAAiB,EAAE,GAAG,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC;IACnE,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * daemon/todoist-projects.ts — the project tree, cached.
3
+ *
4
+ * Needed because ingress can be granted to a subtree: a project that is not
5
+ * itself listed may still be reachable through an ancestor that is. Answering
6
+ * that requires knowing who a project's parent is, which is not in the webhook
7
+ * payload.
8
+ *
9
+ * Cached with a short TTL rather than fetched per event. A webhook arrives in
10
+ * bursts — a task added, a label applied, a comment posted, all within seconds —
11
+ * and one project listing per event is exactly the kind of load that produced
12
+ * the 401 bursts that cost two claims on 2026-08-01.
13
+ *
14
+ * Everything here keys on ID, never on name. Todoist's project search returns
15
+ * nothing for names containing emoji, so "Executive Search 🎯" is invisible to a
16
+ * name query — a resolver that fell back to matching names would silently find
17
+ * no project and report it as absent rather than unsearchable.
18
+ */
19
+ export interface ProjectNode {
20
+ id: string;
21
+ name: string;
22
+ parentId?: string;
23
+ }
24
+ /** Drop the cache — used after a grant, and by tests. */
25
+ export declare function invalidateProjectTree(): void;
26
+ export declare function projectTree(fetchImpl?: typeof fetch): Promise<Map<string, ProjectNode>>;
27
+ /**
28
+ * The chain from a project up to the root, nearest ancestor first.
29
+ *
30
+ * Depth-capped: a cycle in the data would otherwise hang the receiver, and a
31
+ * hung receiver is indistinguishable from a webhook that never arrived.
32
+ */
33
+ export declare function ancestorsOf(projectId: string, tree: Map<string, ProjectNode>, maxDepth?: number): string[];
34
+ //# sourceMappingURL=todoist-projects.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"todoist-projects.d.ts","sourceRoot":"","sources":["../../src/daemon/todoist-projects.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAKH,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAMD,yDAAyD;AACzD,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C;AAED,wBAAsB,WAAW,CAAC,SAAS,GAAE,OAAO,KAAa,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAiCpG;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,QAAQ,SAAK,GAAG,MAAM,EAAE,CAUtG"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * daemon/todoist-projects.ts — the project tree, cached.
3
+ *
4
+ * Needed because ingress can be granted to a subtree: a project that is not
5
+ * itself listed may still be reachable through an ancestor that is. Answering
6
+ * that requires knowing who a project's parent is, which is not in the webhook
7
+ * payload.
8
+ *
9
+ * Cached with a short TTL rather than fetched per event. A webhook arrives in
10
+ * bursts — a task added, a label applied, a comment posted, all within seconds —
11
+ * and one project listing per event is exactly the kind of load that produced
12
+ * the 401 bursts that cost two claims on 2026-08-01.
13
+ *
14
+ * Everything here keys on ID, never on name. Todoist's project search returns
15
+ * nothing for names containing emoji, so "Executive Search 🎯" is invisible to a
16
+ * name query — a resolver that fell back to matching names would silently find
17
+ * no project and report it as absent rather than unsearchable.
18
+ */
19
+ import { getAccessToken } from "./todoist-oauth.js";
20
+ import { log } from "../core/log.js";
21
+ const TTL_MS = 5 * 60 * 1000;
22
+ let cache;
23
+ /** Drop the cache — used after a grant, and by tests. */
24
+ export function invalidateProjectTree() {
25
+ cache = undefined;
26
+ }
27
+ export async function projectTree(fetchImpl = fetch) {
28
+ if (cache && Date.now() - cache.at < TTL_MS)
29
+ return cache.byId;
30
+ const token = await getAccessToken();
31
+ if (!token)
32
+ return cache?.byId ?? new Map();
33
+ try {
34
+ const res = await fetchImpl("https://api.todoist.com/api/v1/projects", {
35
+ headers: { authorization: `${token.token_type} ${token.access_token}` },
36
+ });
37
+ if (!res.ok)
38
+ throw new Error(`projects listing failed with ${res.status}`);
39
+ const body = JSON.parse(await res.text());
40
+ const list = Array.isArray(body) ? body : (body.results ?? []);
41
+ const byId = new Map();
42
+ for (const p of list) {
43
+ const o = p;
44
+ if (!o.id)
45
+ continue;
46
+ byId.set(o.id, {
47
+ id: o.id,
48
+ name: o.name ?? "",
49
+ parentId: o.parent_id ?? o.parentId ?? undefined,
50
+ });
51
+ }
52
+ cache = { at: Date.now(), byId };
53
+ return byId;
54
+ }
55
+ catch (e) {
56
+ // A stale tree beats no tree: losing it would silently narrow the ingress
57
+ // boundary, and a project dropping out of scope is the failure that looks
58
+ // like "nothing happened".
59
+ log(`todoist-projects: could not refresh the tree — ${e instanceof Error ? e.message : String(e)}`);
60
+ return cache?.byId ?? new Map();
61
+ }
62
+ }
63
+ /**
64
+ * The chain from a project up to the root, nearest ancestor first.
65
+ *
66
+ * Depth-capped: a cycle in the data would otherwise hang the receiver, and a
67
+ * hung receiver is indistinguishable from a webhook that never arrived.
68
+ */
69
+ export function ancestorsOf(projectId, tree, maxDepth = 12) {
70
+ const chain = [];
71
+ let current = tree.get(projectId)?.parentId;
72
+ const seen = new Set([projectId]);
73
+ while (current && chain.length < maxDepth && !seen.has(current)) {
74
+ chain.push(current);
75
+ seen.add(current);
76
+ current = tree.get(current)?.parentId;
77
+ }
78
+ return chain;
79
+ }
80
+ //# sourceMappingURL=todoist-projects.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"todoist-projects.js","sourceRoot":"","sources":["../../src/daemon/todoist-projects.ts"],"names":[],"mappings":"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"}
@@ -54,6 +54,22 @@ export declare const RUNNING_LABEL = "pai-running";
54
54
  * the first time someone ticks it.
55
55
  */
56
56
  export declare function isTrigger(data: Record<string, unknown>): boolean;
57
+ /**
58
+ * Did this update turn an unroutable task into a routable one?
59
+ *
60
+ * Routable means both halves of the boundary are satisfied: the task sits in an
61
+ * ingress project AND names an owner. Either alone is not enough — the project
62
+ * is the security boundary, the label or project mapping is the address.
63
+ *
64
+ * Needs `event_data_extra.old_item`, which Todoist includes for updates a user
65
+ * made directly. Without it there is no transition to observe and the update is
66
+ * ignored, which is the safe direction: acting would mean dispatching on an
67
+ * edit we cannot characterise.
68
+ */
69
+ export declare function routabilityTransition(e: TodoistEvent, cfg: WebhookConfig): {
70
+ becameRoutable: boolean;
71
+ reason: string;
72
+ };
57
73
  export interface TodoistEvent {
58
74
  event_name: string;
59
75
  user_id?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"todoist-webhook.d.ts","sourceRoot":"","sources":["../../src/daemon/todoist-webhook.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"todoist-webhook.d.ts","sourceRoot":"","sources":["../../src/daemon/todoist-webhook.ts"],"names":[],"mappings":"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"}
@@ -62,6 +62,53 @@ export function isTrigger(data) {
62
62
  const due = data.due;
63
63
  return Boolean(due?.is_recurring) && labels.some((l) => l.toLowerCase().startsWith("pai:"));
64
64
  }
65
+ /**
66
+ * Did this update turn an unroutable task into a routable one?
67
+ *
68
+ * Routable means both halves of the boundary are satisfied: the task sits in an
69
+ * ingress project AND names an owner. Either alone is not enough — the project
70
+ * is the security boundary, the label or project mapping is the address.
71
+ *
72
+ * Needs `event_data_extra.old_item`, which Todoist includes for updates a user
73
+ * made directly. Without it there is no transition to observe and the update is
74
+ * ignored, which is the safe direction: acting would mean dispatching on an
75
+ * edit we cannot characterise.
76
+ */
77
+ export function routabilityTransition(e, cfg) {
78
+ const old = e.event_data_extra?.old_item;
79
+ if (!old) {
80
+ return { becameRoutable: false, reason: "event item:updated is not actionable (no previous state to compare)" };
81
+ }
82
+ // A completion arrives as its own event; an update that merely reports one
83
+ // must not be read as a routing change.
84
+ const intent = e.event_data_extra?.update_intent;
85
+ if (intent === "item_completed" || intent === "item_uncompleted") {
86
+ return { becameRoutable: false, reason: `event item:updated is not actionable (${String(intent)})` };
87
+ }
88
+ const routable = (d) => {
89
+ if (!d)
90
+ return false;
91
+ const projectId = typeof d.project_id === "string" ? d.project_id : "";
92
+ if (!cfg.ingressProjectIds.has(projectId))
93
+ return false;
94
+ const labels = Array.isArray(d.labels) ? d.labels.map(String) : [];
95
+ const hasOwner = labels.some((l) => l.toLowerCase().startsWith("pai:")) ||
96
+ cfg.projectOwners.has(projectId) ||
97
+ Boolean(cfg.defaultOwner);
98
+ return hasOwner;
99
+ };
100
+ const before = routable(old);
101
+ const after = routable(e.event_data);
102
+ if (before || !after) {
103
+ return {
104
+ becameRoutable: false,
105
+ reason: before
106
+ ? "event item:updated is not actionable (task was already routable)"
107
+ : "event item:updated is not actionable (task is still not routable)",
108
+ };
109
+ }
110
+ return { becameRoutable: true, reason: "" };
111
+ }
65
112
  /**
66
113
  * Something that looked like an address but was not one.
67
114
  *
@@ -198,7 +245,23 @@ heldBy) {
198
245
  return { act: false, reason: "agent-authored content, ignored to avoid an echo loop" };
199
246
  }
200
247
  const ACTIONABLE = new Set(["item:added", "item:completed", "reminder:fired", "note:added"]);
201
- if (!ACTIONABLE.has(e.event_name)) {
248
+ // The create-then-classify case: a task is filed first and labelled second,
249
+ // so at item:added it is not yet routable and is correctly ignored — and the
250
+ // event that MAKES it routable is an item:updated, which is not actionable.
251
+ // The event that matters is precisely the one nothing subscribes to.
252
+ //
253
+ // Subscribing to item:updated wholesale would be worse than the gap: every
254
+ // edit would dispatch. What is safe is the STATE TRANSITION — unroutable to
255
+ // routable, and only that. Renaming a task, moving it between two allowed
256
+ // projects, or adding any other label all leave routability unchanged and
257
+ // stay ignored.
258
+ if (e.event_name === "item:updated") {
259
+ const t = routabilityTransition(e, cfg);
260
+ if (!t.becameRoutable)
261
+ return { act: false, reason: t.reason };
262
+ // Falls through to normal routing.
263
+ }
264
+ else if (!ACTIONABLE.has(e.event_name)) {
202
265
  return { act: false, reason: `event ${e.event_name} is not actionable` };
203
266
  }
204
267
  // Creating a recurring, addressed task DEFINES a trigger; it does not pull
@@ -444,8 +507,24 @@ export function createWebhookServer(cfg, deps) {
444
507
  // restart. A project created and granted while you are using the system
445
508
  // has to work immediately, or the grant is indistinguishable from a
446
509
  // project that routes nowhere.
447
- const { applyGrants } = await import("./todoist-ingress.js");
448
- const live = applyGrants(cfg);
510
+ const { applyGrants, expandThroughSubtree } = await import("./todoist-ingress.js");
511
+ let live = applyGrants(cfg);
512
+ // A sub-project is a folder, not a second owner. Before this, organising
513
+ // tasks into "Jobs Matthias / Executive Search" moved them outside the
514
+ // allowlist and every one was refused — silently, and precisely when
515
+ // someone tidied up. Only ancestors granted WITH a subtree flag apply, so
516
+ // nothing becomes an ingress that nobody granted.
517
+ const eventProject = String(event.event_data?.project_id ?? "");
518
+ if (eventProject && !live.ingressProjectIds.has(eventProject)) {
519
+ try {
520
+ const { projectTree, ancestorsOf } = await import("./todoist-projects.js");
521
+ const tree = await projectTree();
522
+ live = expandThroughSubtree(live, eventProject, ancestorsOf(eventProject, tree));
523
+ }
524
+ catch (err) {
525
+ log(`todoist-webhook: subtree lookup failed — ${err instanceof Error ? err.message : String(err)}`);
526
+ }
527
+ }
449
528
  const decision = route(event, live, await (deps.knownOwners?.() ?? []), isComment ? ownerOf(parentId) : undefined);
450
529
  const who = event.initiator?.email ?? event.initiator?.full_name ?? "todoist";
451
530
  if (decision.nearMiss) {
@@ -1 +1 @@
1
- {"version":3,"file":"todoist-webhook.js","sourceRoot":"","sources":["../../src/daemon/todoist-webhook.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"todoist-webhook.js","sourceRoot":"","sources":["../../src/daemon/todoist-webhook.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aibroker",
3
- "version": "0.18.0",
3
+ "version": "0.20.0",
4
4
  "description": "Platform-agnostic AI message broker — routes between user channels and AI backends",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",