@copilotkit/channels-core 0.1.1 → 0.2.1-canary.1784916581

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 (37) hide show
  1. package/README.md +45 -2
  2. package/dist/create-channel.d.ts +20 -10
  3. package/dist/create-channel.d.ts.map +1 -1
  4. package/dist/create-channel.foundations.test.js +14 -14
  5. package/dist/create-channel.js +143 -124
  6. package/dist/create-channel.test.js +34 -34
  7. package/dist/modal-submit.test.js +4 -4
  8. package/dist/open-modal.test.js +4 -4
  9. package/dist/platform-adapter.d.ts +9 -0
  10. package/dist/platform-adapter.d.ts.map +1 -1
  11. package/dist/reactions.test.js +30 -10
  12. package/dist/telemetry/create-channel-telemetry.test.js +7 -4
  13. package/dist/telemetry/e2e-telemetry.test.js +1 -1
  14. package/dist/testing/fake-adapter.d.ts.map +1 -1
  15. package/dist/testing/fake-adapter.js +1 -1
  16. package/dist/thread-capabilities.test.js +5 -5
  17. package/dist/thread-ephemeral.test.js +1 -1
  18. package/dist/thread-reactions.test.js +2 -2
  19. package/package.json +4 -4
  20. package/dist/create-bot.d.ts +0 -171
  21. package/dist/create-bot.d.ts.map +0 -1
  22. package/dist/create-bot.foundations.test.d.ts +0 -2
  23. package/dist/create-bot.foundations.test.d.ts.map +0 -1
  24. package/dist/create-bot.foundations.test.js +0 -147
  25. package/dist/create-bot.js +0 -579
  26. package/dist/create-bot.test.d.ts +0 -2
  27. package/dist/create-bot.test.d.ts.map +0 -1
  28. package/dist/create-bot.test.js +0 -936
  29. package/dist/telemetry/bot-telemetry.d.ts +0 -31
  30. package/dist/telemetry/bot-telemetry.d.ts.map +0 -1
  31. package/dist/telemetry/bot-telemetry.js +0 -70
  32. package/dist/telemetry/bot-telemetry.test.d.ts +0 -2
  33. package/dist/telemetry/bot-telemetry.test.d.ts.map +0 -1
  34. package/dist/telemetry/bot-telemetry.test.js +0 -56
  35. package/dist/telemetry/create-bot-telemetry.test.d.ts +0 -2
  36. package/dist/telemetry/create-bot-telemetry.test.d.ts.map +0 -1
  37. package/dist/telemetry/create-bot-telemetry.test.js +0 -71
@@ -60,7 +60,7 @@ describe("createChannel", () => {
60
60
  channel.onMention(async ({ thread }) => {
61
61
  await thread.post(Section({ children: "hi" }));
62
62
  });
63
- await channel.start();
63
+ await channel.ɵruntime.start();
64
64
  fake.emitTurn({ userText: "yo", conversationKey: "c1" });
65
65
  await tick();
66
66
  expect(fake.posted.length).toBe(1);
@@ -75,7 +75,7 @@ describe("createChannel", () => {
75
75
  channel.onMention(async ({ thread }) => {
76
76
  await thread.runAgent();
77
77
  });
78
- await channel.start();
78
+ await channel.ɵruntime.start();
79
79
  fake.emitTurn({ userText: "yo", conversationKey: "c1" });
80
80
  await tick();
81
81
  const renderer = fake.lastRunRenderer;
@@ -107,7 +107,7 @@ describe("createChannel", () => {
107
107
  : message.text,
108
108
  });
109
109
  });
110
- await channel.start();
110
+ await channel.ɵruntime.start();
111
111
  fake.emitTurn({
112
112
  userText: "look",
113
113
  conversationKey: "c1",
@@ -138,7 +138,7 @@ describe("createChannel", () => {
138
138
  ],
139
139
  }));
140
140
  });
141
- await channel.start();
141
+ await channel.ɵruntime.start();
142
142
  fake.emitTurn({ userText: "yo", conversationKey: "c1" });
143
143
  await tick();
144
144
  const button = findNode(fake.posted[0], "button");
@@ -164,7 +164,7 @@ describe("createChannel", () => {
164
164
  ],
165
165
  }));
166
166
  });
167
- await channel.start();
167
+ await channel.ɵruntime.start();
168
168
  fake.emitTurn({ userText: "create a thing", conversationKey: "c1" });
169
169
  await tick();
170
170
  const button = findNode(fake.posted[0], "button");
@@ -201,7 +201,7 @@ describe("createChannel", () => {
201
201
  context: [{ description: "who", value: "user U1" }],
202
202
  });
203
203
  });
204
- await channel.start();
204
+ await channel.ɵruntime.start();
205
205
  fake.emitTurn({ userText: "go", conversationKey: "c1" });
206
206
  await tick();
207
207
  expect(seenContext).toEqual([
@@ -221,7 +221,7 @@ describe("createChannel", () => {
221
221
  filename: "x.png",
222
222
  });
223
223
  });
224
- await channel.start();
224
+ await channel.ɵruntime.start();
225
225
  fake.emitTurn({ userText: "hi", conversationKey: "c1" });
226
226
  await tick();
227
227
  expect(result).toEqual({
@@ -243,7 +243,7 @@ describe("createChannel", () => {
243
243
  history = await thread.getMessages();
244
244
  resolved = await thread.lookupUser("Ada");
245
245
  });
246
- await channel.start();
246
+ await channel.ɵruntime.start();
247
247
  fake.emitTurn({ userText: "hi", conversationKey: "c1" });
248
248
  await tick();
249
249
  expect(history).toEqual([
@@ -267,7 +267,7 @@ describe("createChannel", () => {
267
267
  ],
268
268
  }));
269
269
  });
270
- await channel.start();
270
+ await channel.ɵruntime.start();
271
271
  fake.emitTurn({ userText: "decide", conversationKey: "c1" });
272
272
  await tick();
273
273
  const button = findNode(fake.posted[0], "button");
@@ -297,7 +297,7 @@ describe("createChannel", () => {
297
297
  runs++;
298
298
  await gate;
299
299
  });
300
- await channel.start();
300
+ await channel.ɵruntime.start();
301
301
  const sink = fake.getSink();
302
302
  const turn = {
303
303
  conversationKey: "c1",
@@ -329,7 +329,7 @@ describe("createChannel", () => {
329
329
  runs++;
330
330
  await gate;
331
331
  });
332
- await channel.start();
332
+ await channel.ɵruntime.start();
333
333
  const sink = fake.getSink();
334
334
  const turn = {
335
335
  conversationKey: "c1",
@@ -358,7 +358,7 @@ describe("createChannel", () => {
358
358
  channel.onMention(async () => {
359
359
  runs++;
360
360
  });
361
- await channel.start();
361
+ await channel.ɵruntime.start();
362
362
  const sink = fake.getSink();
363
363
  const base = {
364
364
  conversationKey: "c",
@@ -406,7 +406,7 @@ describe("createChannel", () => {
406
406
  channel.onMention(async ({ message }) => {
407
407
  capturedKey = message.userKey;
408
408
  });
409
- await channel.start();
409
+ await channel.ɵruntime.start();
410
410
  const sink = fake.getSink();
411
411
  await sink.onTurn({
412
412
  conversationKey: "c1",
@@ -430,7 +430,7 @@ describe("createChannel", () => {
430
430
  transcripts: { maxPerUser: 50 },
431
431
  },
432
432
  });
433
- await channel.start();
433
+ await channel.ɵruntime.start();
434
434
  const sink = fake.getSink();
435
435
  // Drive a turn so identity is resolved and we can verify transcripts exist
436
436
  const thread = { platform: "fake", conversationKey: "c1" };
@@ -481,7 +481,7 @@ describe("createChannel", () => {
481
481
  channel.onMention(async ({ thread }) => {
482
482
  await thread.runAgent({ transcript: true });
483
483
  });
484
- await channel.start();
484
+ await channel.ɵruntime.start();
485
485
  // Seed one prior cross-platform entry (different platform label) so we can
486
486
  // assert it shows up in the injected context. Seeded post-start: transcripts
487
487
  // are only available once the backend is resolved in start().
@@ -535,7 +535,7 @@ describe("createChannel", () => {
535
535
  rejected = true;
536
536
  }
537
537
  });
538
- await channel.start();
538
+ await channel.ɵruntime.start();
539
539
  fake.emitTurn({ userText: "go", conversationKey: "c1" });
540
540
  await tick();
541
541
  expect(roundTripped).toEqual({ step: "x" });
@@ -559,7 +559,7 @@ describe("createChannel lock and dedup edge cases", () => {
559
559
  await gate;
560
560
  throw new Error("boom");
561
561
  });
562
- await bot1.start();
562
+ await bot1.ɵruntime.start();
563
563
  const sink = fake.getSink();
564
564
  const turn = {
565
565
  conversationKey: "c1",
@@ -601,7 +601,7 @@ describe("createChannel lock and dedup edge cases", () => {
601
601
  runs++;
602
602
  await gate;
603
603
  });
604
- await channel.start();
604
+ await channel.ɵruntime.start();
605
605
  const sink = fake.getSink();
606
606
  const turn = {
607
607
  conversationKey: "c1",
@@ -634,7 +634,7 @@ describe("createChannel lock and dedup edge cases", () => {
634
634
  runs++;
635
635
  await gate;
636
636
  });
637
- await channel.start();
637
+ await channel.ɵruntime.start();
638
638
  const sink = fake.getSink();
639
639
  const turn = {
640
640
  conversationKey: "c1",
@@ -665,7 +665,7 @@ describe("createChannel lock and dedup edge cases", () => {
665
665
  channel.onMention(async ({ message }) => {
666
666
  capturedUserKey = message.userKey;
667
667
  });
668
- await channel.start();
668
+ await channel.ɵruntime.start();
669
669
  const sink = fake.getSink();
670
670
  await sink.onTurn({
671
671
  conversationKey: "c1",
@@ -686,7 +686,7 @@ describe("createChannel lock and dedup edge cases", () => {
686
686
  channel.onMention(async ({ message }) => {
687
687
  capturedUserKey = message.userKey;
688
688
  });
689
- await channel.start();
689
+ await channel.ɵruntime.start();
690
690
  const sink = fake.getSink();
691
691
  await sink.onTurn({
692
692
  conversationKey: "c1",
@@ -707,7 +707,7 @@ describe("createChannel lock and dedup edge cases", () => {
707
707
  channel.onMention(async () => {
708
708
  runs++;
709
709
  });
710
- await channel.start();
710
+ await channel.ɵruntime.start();
711
711
  const sink = fake.getSink();
712
712
  const base = {
713
713
  conversationKey: "c1",
@@ -746,7 +746,7 @@ describe("createChannel lock and dedup edge cases", () => {
746
746
  channel.onMention(async () => {
747
747
  runs++;
748
748
  });
749
- await channel.start();
749
+ await channel.ɵruntime.start();
750
750
  const sink = fake.getSink();
751
751
  await sink.onTurn({
752
752
  conversationKey: "c1",
@@ -772,7 +772,7 @@ describe("createChannel lock and dedup edge cases", () => {
772
772
  runs++;
773
773
  await gate;
774
774
  });
775
- await channel.start();
775
+ await channel.ɵruntime.start();
776
776
  const sink = fake.getSink();
777
777
  const turnA = {
778
778
  conversationKey: "c1",
@@ -813,7 +813,7 @@ describe("createChannel lock and dedup edge cases", () => {
813
813
  channel.onMention(async () => {
814
814
  runs++;
815
815
  });
816
- await channel.start();
816
+ await channel.ɵruntime.start();
817
817
  const sink = fake.getSink();
818
818
  const turn = {
819
819
  conversationKey: "c2",
@@ -838,7 +838,7 @@ describe("createChannel slash commands", () => {
838
838
  channel.onCommand("triage", ({ command, text }) => {
839
839
  seen = { command, text };
840
840
  });
841
- await channel.start();
841
+ await channel.ɵruntime.start();
842
842
  await fake.emitCommand({ command: "/Triage", text: "db is down" });
843
843
  expect(seen).toEqual({ command: "triage", text: "db is down" });
844
844
  });
@@ -849,7 +849,7 @@ describe("createChannel slash commands", () => {
849
849
  channel.onCommand("triage", () => {
850
850
  fired = true;
851
851
  });
852
- await channel.start();
852
+ await channel.ɵruntime.start();
853
853
  await fake.emitCommand({ command: "unknown", text: "x" });
854
854
  expect(fired).toBe(false);
855
855
  });
@@ -868,7 +868,7 @@ describe("createChannel slash commands", () => {
868
868
  }),
869
869
  ],
870
870
  });
871
- await channel.start();
871
+ await channel.ɵruntime.start();
872
872
  await fake.emitCommand({
873
873
  command: "book",
874
874
  text: "raw",
@@ -881,7 +881,7 @@ describe("createChannel slash commands", () => {
881
881
  const channel = createChannel({ adapters: [fake] });
882
882
  channel.onCommand("triage", () => { });
883
883
  channel.onCommand("status", () => { });
884
- await channel.start();
884
+ await channel.ɵruntime.start();
885
885
  expect(fake.registeredCommands?.map((c) => c.name).sort()).toEqual([
886
886
  "status",
887
887
  "triage",
@@ -893,7 +893,7 @@ describe("createChannel slash commands", () => {
893
893
  const bad = new FakeAdapter({ platform: "telegram", failStart: true });
894
894
  const good = new FakeAdapter({ platform: "slack" });
895
895
  const channel = createChannel({ adapters: [bad, good] });
896
- await expect(channel.start()).resolves.toBeUndefined();
896
+ await expect(channel.ɵruntime.start()).resolves.toBeUndefined();
897
897
  expect(good.started).toBe(true);
898
898
  expect(errSpy.mock.calls.some((c) => String(c[0]).includes("telegram"))).toBe(true);
899
899
  }
@@ -911,7 +911,7 @@ describe("createChannel slash commands", () => {
911
911
  const good = new FakeAdapter({ platform: "slack" });
912
912
  const channel = createChannel({ adapters: [bad, good] });
913
913
  channel.onCommand("triage", () => { });
914
- await expect(channel.start()).resolves.toBeUndefined();
914
+ await expect(channel.ɵruntime.start()).resolves.toBeUndefined();
915
915
  expect(good.started).toBe(true);
916
916
  expect(good.registeredCommands?.map((c) => c.name)).toEqual(["triage"]);
917
917
  expect(errSpy.mock.calls.some((c) => String(c[0]).includes("telegram"))).toBe(true);
@@ -927,8 +927,8 @@ describe("createChannel slash commands", () => {
927
927
  const good = new FakeAdapter({ platform: "slack" });
928
928
  const stopSpy = vi.spyOn(good, "stop");
929
929
  const channel = createChannel({ adapters: [bad, good] });
930
- await channel.start();
931
- await expect(channel.stop()).resolves.toBeUndefined();
930
+ await channel.ɵruntime.start();
931
+ await expect(channel.ɵruntime.stop()).resolves.toBeUndefined();
932
932
  expect(stopSpy).toHaveBeenCalled();
933
933
  expect(errSpy.mock.calls.some((c) => String(c[0]).includes("telegram"))).toBe(true);
934
934
  }
@@ -949,7 +949,7 @@ describe("createChannel slash commands", () => {
949
949
  const channel = createChannel({});
950
950
  expect(channel.adapters).toHaveLength(0);
951
951
  const fake = new FakeAdapter();
952
- channel.addAdapter(fake);
952
+ channel.ɵruntime.addAdapter(fake);
953
953
  expect(channel.adapters).toEqual([fake]);
954
954
  });
955
955
  });
@@ -15,7 +15,7 @@ describe("channel.onModalSubmit / onModalClose", () => {
15
15
  hasThread: !!evt.thread,
16
16
  });
17
17
  });
18
- await channel.start();
18
+ await channel.ɵruntime.start();
19
19
  const res = await fake.emitModalSubmit({
20
20
  callbackId: "triage",
21
21
  values: { summary: "boom", prio: "high" },
@@ -37,7 +37,7 @@ describe("channel.onModalSubmit / onModalClose", () => {
37
37
  const fake = new FakeAdapter();
38
38
  const channel = createChannel({ adapters: [fake] });
39
39
  channel.onModalSubmit("triage", (evt) => evt.values.summary ? undefined : { errors: { summary: "Required" } });
40
- await channel.start();
40
+ await channel.ɵruntime.start();
41
41
  const res = await fake.emitModalSubmit({
42
42
  callbackId: "triage",
43
43
  values: {},
@@ -47,7 +47,7 @@ describe("channel.onModalSubmit / onModalClose", () => {
47
47
  it("ignores submissions with no registered handler", async () => {
48
48
  const fake = new FakeAdapter();
49
49
  const channel = createChannel({ adapters: [fake] });
50
- await channel.start();
50
+ await channel.ɵruntime.start();
51
51
  const res = await fake.emitModalSubmit({
52
52
  callbackId: "unknown",
53
53
  values: {},
@@ -61,7 +61,7 @@ describe("channel.onModalSubmit / onModalClose", () => {
61
61
  channel.onModalClose("triage", (evt) => {
62
62
  closed.push(evt.callbackId);
63
63
  });
64
- await channel.start();
64
+ await channel.ɵruntime.start();
65
65
  await fake.emitModalClose({ callbackId: "triage", user: { id: "U2" } });
66
66
  expect(closed).toEqual(["triage"]);
67
67
  });
@@ -18,7 +18,7 @@ describe("ctx.openModal", () => {
18
18
  channel.onInteraction("ck:open", async (ctx) => {
19
19
  res = await ctx.openModal(view);
20
20
  });
21
- await channel.start();
21
+ await channel.ɵruntime.start();
22
22
  fake.emitInteraction({ id: "ck:open", triggerId: "T123" });
23
23
  await tick();
24
24
  expect(res).toEqual({ ok: true });
@@ -33,7 +33,7 @@ describe("ctx.openModal", () => {
33
33
  channel.onCommand("triage", async (ctx) => {
34
34
  res = await ctx.openModal(view);
35
35
  });
36
- await channel.start();
36
+ await channel.ɵruntime.start();
37
37
  await fake.emitCommand({ command: "triage", triggerId: "T999" });
38
38
  expect(res).toEqual({ ok: true });
39
39
  expect(fake.openedModals[0].triggerId).toBe("T999");
@@ -45,7 +45,7 @@ describe("ctx.openModal", () => {
45
45
  channel.onInteraction("ck:noop", (ctx) => {
46
46
  hasOpen = typeof ctx.openModal === "function";
47
47
  });
48
- await channel.start();
48
+ await channel.ɵruntime.start();
49
49
  fake.emitInteraction({ id: "ck:noop" });
50
50
  await tick();
51
51
  expect(hasOpen).toBe(false);
@@ -57,7 +57,7 @@ describe("ctx.openModal", () => {
57
57
  channel.onInteraction("ck:x", (ctx) => {
58
58
  hasOpen = typeof ctx.openModal === "function";
59
59
  });
60
- await channel.start();
60
+ await channel.ɵruntime.start();
61
61
  fake.emitInteraction({ id: "ck:x", triggerId: "T1" });
62
62
  await tick();
63
63
  expect(hasOpen).toBe(false);
@@ -141,6 +141,15 @@ export interface IncomingReaction extends IngressEventBase {
141
141
  messageRef?: MessageRef;
142
142
  /** Containing thread/conversation id, when distinct from the message. */
143
143
  threadId?: string;
144
+ /**
145
+ * Source provider a managed delivery originated from (e.g. `"teams"`,
146
+ * `"slack"`). Direct adapters omit it — core then normalizes by
147
+ * {@link PlatformAdapter.platform}. The Intelligence adapter (whose own
148
+ * `platform` is `"intelligence"`, not an emoji platform) sets it to the
149
+ * delivery's source provider so central normalization runs on the managed
150
+ * path.
151
+ */
152
+ readonly platform?: string;
144
153
  /** Native payload. */
145
154
  raw: unknown;
146
155
  }
@@ -1 +1 @@
1
- {"version":3,"file":"platform-adapter.d.ts","sourceRoot":"","sources":["../src/platform-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"platform-adapter.d.ts","sourceRoot":"","sources":["../src/platform-adapter.ts"],"names":[],"mappings":"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"}
@@ -13,7 +13,7 @@ describe("channel.onReaction", () => {
13
13
  channel.onReaction([emoji.thumbs_up], (evt) => {
14
14
  seen.push({ emoji: evt.emoji, raw: evt.rawEmoji, added: evt.added });
15
15
  });
16
- await channel.start();
16
+ await channel.ɵruntime.start();
17
17
  // FakeAdapter.platform === "fake": normalizeEmoji falls through, but engine
18
18
  // normalizes by adapter.platform. Use a Slack-style token via a fake whose
19
19
  // platform normalizes — here we assert passthrough + catch-all instead.
@@ -35,7 +35,7 @@ describe("channel.onReaction", () => {
35
35
  platform: evt.thread.platform,
36
36
  });
37
37
  });
38
- await channel.start();
38
+ await channel.ɵruntime.start();
39
39
  fake.emitReaction({
40
40
  rawEmoji: "🎉",
41
41
  added: true,
@@ -64,11 +64,31 @@ describe("channel.onReaction", () => {
64
64
  channel.onReaction(["thumbs_up"], (evt) => {
65
65
  hits.push(evt.emoji);
66
66
  });
67
- await channel.start();
67
+ await channel.ɵruntime.start();
68
68
  fake.emitReaction({ rawEmoji: "thumbsup", added: true }); // Slack alias
69
69
  await tick();
70
70
  expect(hits).toEqual(["thumbs_up"]);
71
71
  });
72
+ it("normalizes by the reaction's source platform on the managed path", async () => {
73
+ // Managed (Intelligence) path: the adapter's own platform is "intelligence"
74
+ // (not an emoji platform), but the reaction carries `platform: "teams"` from
75
+ // its source provider. Core must normalize by that source platform, so a
76
+ // Teams `<codepoint>_<name>` token resolves to its canonical name.
77
+ const fake = new FakeAdapter({ platform: "intelligence" });
78
+ const channel = createChannel({ adapters: [fake] });
79
+ const hits = [];
80
+ channel.onReaction(["refresh"], (evt) => {
81
+ hits.push(evt.emoji);
82
+ });
83
+ await channel.ɵruntime.start();
84
+ fake.emitReaction({
85
+ rawEmoji: "1f504_refresh",
86
+ added: true,
87
+ platform: "teams",
88
+ });
89
+ await tick();
90
+ expect(hits).toEqual(["refresh"]);
91
+ });
72
92
  it("routes a reaction on a posted message to its <Message onReaction>", async () => {
73
93
  const fake = new FakeAdapter();
74
94
  const channel = createChannel({ adapters: [fake] });
@@ -81,7 +101,7 @@ describe("channel.onReaction", () => {
81
101
  children: "hi",
82
102
  }));
83
103
  });
84
- await channel.start();
104
+ await channel.ɵruntime.start();
85
105
  fake.emitTurn({});
86
106
  await tick();
87
107
  // The handler is a closure, never serialized into the native payload.
@@ -108,7 +128,7 @@ describe("channel.onReaction", () => {
108
128
  children: "hi",
109
129
  }));
110
130
  });
111
- await channel.start();
131
+ await channel.ɵruntime.start();
112
132
  fake.emitTurn({});
113
133
  await tick();
114
134
  // Channel delivery: the reaction arrives keyed by the provider ts (NOT the
@@ -145,7 +165,7 @@ describe("channel.onReaction", () => {
145
165
  // pre-rendered Message() node.
146
166
  await thread.post({ type: Card, props: {} });
147
167
  });
148
- await bot1.start();
168
+ await bot1.ɵruntime.start();
149
169
  fake1.emitTurn({});
150
170
  await tick();
151
171
  // "Restart": a fresh channel + registry sharing the same store, Card re-registered.
@@ -156,7 +176,7 @@ describe("channel.onReaction", () => {
156
176
  store: { adapter: backend },
157
177
  components: [Card],
158
178
  });
159
- await bot2.start();
179
+ await bot2.ɵruntime.start();
160
180
  fake2.emitReaction({ rawEmoji: "🎉", added: true, messageId: "msg-1" });
161
181
  await tick();
162
182
  expect(seen).toEqual(["🎉"]);
@@ -174,7 +194,7 @@ describe("channel.onReaction", () => {
174
194
  children: "hi",
175
195
  }));
176
196
  });
177
- await channel.start();
197
+ await channel.ɵruntime.start();
178
198
  fake.emitTurn({});
179
199
  await tick();
180
200
  const before = fake.posted.length;
@@ -197,7 +217,7 @@ describe("channel.onReaction", () => {
197
217
  children: "hi",
198
218
  }));
199
219
  });
200
- await channel.start();
220
+ await channel.ɵruntime.start();
201
221
  fake.emitTurn({});
202
222
  await tick();
203
223
  fake.emitReaction({ rawEmoji: "🎉", added: true, messageId: "other" });
@@ -217,7 +237,7 @@ describe("channel.onReaction", () => {
217
237
  channel.onReaction(["thumbsup"], (evt) => {
218
238
  hits.push(`alias:${evt.emoji}`);
219
239
  });
220
- await channel.start();
240
+ await channel.ɵruntime.start();
221
241
  fake.emitReaction({ rawEmoji: "thumbsup", added: true }); // Slack alias
222
242
  await tick();
223
243
  expect(hits).toEqual(["thumbs_up", "alias:thumbs_up"]);
@@ -28,7 +28,7 @@ describe("createChannel telemetry wiring", () => {
28
28
  },
29
29
  ],
30
30
  });
31
- await channel.start();
31
+ await channel.ɵruntime.start();
32
32
  const call = capture.mock.calls.find((c) => c[0] === "oss.channel.configured");
33
33
  expect(call).toBeDefined();
34
34
  expect(call[1].platforms).toEqual(["custom"]); // FakeAdapter.platform "fake" → normalized
@@ -38,14 +38,17 @@ describe("createChannel telemetry wiring", () => {
38
38
  it("emits oss.channel.started on start, start_failed (category only) on a throwing adapter", async () => {
39
39
  const ok = new FakeAdapter();
40
40
  const channel = createChannel({ adapters: [ok] });
41
- await channel.start();
41
+ await channel.ɵruntime.start();
42
42
  expect(capture.mock.calls.find((c) => c[0] === "oss.channel.started")?.[1]
43
43
  .startedCount).toBe(1);
44
44
  capture.mockClear();
45
45
  const bad = new FakeAdapter();
46
46
  bad.start = () => Promise.reject(Object.assign(new Error("xoxb-SECRET token bad"), { code: "EAUTH" }));
47
47
  const bot2 = createChannel({ adapters: [bad] });
48
- await bot2.start();
48
+ // All adapters failed → start() rejects (the channel is dead; the runtime
49
+ // reports status "error"). The start_failed telemetry is still captured
50
+ // before the throw.
51
+ await expect(bot2.ɵruntime.start()).rejects.toThrow(/failed to start/i);
49
52
  const f = capture.mock.calls.find((c) => c[0] === "oss.channel.start_failed");
50
53
  expect(f).toBeDefined();
51
54
  expect(f[1].errorClass).toBe("auth");
@@ -60,7 +63,7 @@ describe("createChannel telemetry wiring", () => {
60
63
  channel.onMention(async ({ thread }) => {
61
64
  await thread.runAgent();
62
65
  });
63
- await channel.start();
66
+ await channel.ɵruntime.start();
64
67
  capture.mockClear();
65
68
  fake.emitTurn({ userText: "hi", conversationKey: "c1" });
66
69
  await tick();
@@ -40,7 +40,7 @@ describe("oss.channel.* end-to-end (real ChannelTelemetry, only network boundary
40
40
  channel.onMention(async ({ thread }) => {
41
41
  await thread.runAgent();
42
42
  });
43
- await channel.start();
43
+ await channel.ɵruntime.start();
44
44
  fake.emitTurn({ userText: "hi", conversationKey: "c1" });
45
45
  await waitFor(() => sendSpy.mock.calls.some((c) => c[0].event === "oss.channel.agent_run"));
46
46
  const events = sendSpy.mock.calls.map((c) => c[0].event);
@@ -1 +1 @@
1
- {"version":3,"file":"fake-adapter.d.ts","sourceRoot":"","sources":["../../src/testing/fake-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fake-adapter.d.ts","sourceRoot":"","sources":["../../src/testing/fake-adapter.ts"],"names":[],"mappings":"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"}
@@ -142,7 +142,7 @@ export class FakeAdapter {
142
142
  /** Expose the registered sink so tests can invoke onTurn() directly for overlap/lock tests. */
143
143
  getSink() {
144
144
  if (!this.sink)
145
- throw new Error("FakeAdapter: sink not set — call channel.start() first");
145
+ throw new Error("FakeAdapter: sink not set — start the channel (channel.ɵruntime.start()) first");
146
146
  return this.sink;
147
147
  }
148
148
  async start(sink) {
@@ -9,7 +9,7 @@ describe("onThreadStarted routing", () => {
9
9
  channel.onThreadStarted(({ thread, user }) => {
10
10
  seen.push({ user: user?.id, platform: thread.platform });
11
11
  });
12
- await channel.start();
12
+ await channel.ɵruntime.start();
13
13
  await fake.emitThreadStarted({ user: { id: "U1", name: "Ada" } });
14
14
  expect(seen).toEqual([{ user: "U1", platform: "fake" }]);
15
15
  });
@@ -23,14 +23,14 @@ describe("onThreadStarted routing", () => {
23
23
  channel.onThreadStarted(() => {
24
24
  order.push(2);
25
25
  });
26
- await channel.start();
26
+ await channel.ɵruntime.start();
27
27
  await fake.emitThreadStarted();
28
28
  expect(order).toEqual([1, 2]);
29
29
  });
30
30
  it("is a no-op when no handler is registered", async () => {
31
31
  const fake = new FakeAdapter();
32
32
  const channel = createChannel({ adapters: [fake] });
33
- await channel.start();
33
+ await channel.ɵruntime.start();
34
34
  // Should not throw.
35
35
  await expect(Promise.resolve(fake.emitThreadStarted())).resolves.toBeUndefined();
36
36
  });
@@ -44,7 +44,7 @@ describe("Thread.setSuggestedPrompts / setTitle capability gating", () => {
44
44
  results.push(await thread.setSuggestedPrompts([{ title: "Triage", message: "Triage my issues" }], { title: "Try" }));
45
45
  results.push(await thread.setTitle("My conversation"));
46
46
  });
47
- await channel.start();
47
+ await channel.ɵruntime.start();
48
48
  await fake.emitThreadStarted({ replyTarget: { channel: "D1" } });
49
49
  expect(results).toEqual([{ ok: true }, { ok: true }]);
50
50
  expect(fake.suggestedPromptsCalls).toHaveLength(1);
@@ -65,7 +65,7 @@ describe("Thread.setSuggestedPrompts / setTitle capability gating", () => {
65
65
  results.push(await thread.setSuggestedPrompts([]));
66
66
  results.push(await thread.setTitle("nope"));
67
67
  });
68
- await channel.start();
68
+ await channel.ɵruntime.start();
69
69
  await fake.emitThreadStarted();
70
70
  expect(results[0].ok).toBe(false);
71
71
  expect(results[0].error).toMatch(/does not support suggested prompts/);
@@ -4,7 +4,7 @@ import { FakeAdapter } from "./testing/fake-adapter.js";
4
4
  async function runOnMessage(fake, fn) {
5
5
  const channel = createChannel({ adapters: [fake] });
6
6
  channel.onMessage(fn);
7
- await channel.start();
7
+ await channel.ɵruntime.start();
8
8
  fake.emitTurn({ userText: "hi", user: { id: "U1" } });
9
9
  await new Promise((r) => setTimeout(r, 0));
10
10
  }