@introspection-ai/recipes 0.24.0 → 0.25.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 (100) hide show
  1. package/README.md +3 -3
  2. package/dist/channels/tools.js +1 -1
  3. package/dist/channels/tools.js.map +1 -1
  4. package/dist/mcp-chunks/{auth-command-4OEOMU2V.js → auth-command-4WFRNU2I.js} +24 -24
  5. package/dist/mcp-chunks/call-arguments-4DWPBLQP.js +15 -0
  6. package/dist/mcp-chunks/{call-command-AUEKSBMD.js → call-command-JBIKXOGC.js} +36 -36
  7. package/dist/mcp-chunks/{chunk-L4CUJJI5.js → chunk-36VIJRYY.js} +4 -4
  8. package/dist/mcp-chunks/{chunk-PPIXUCYQ.js → chunk-3JGS7LQB.js} +2 -2
  9. package/dist/mcp-chunks/{chunk-4NDR45CX.js → chunk-3R2WK3NB.js} +28 -9
  10. package/dist/mcp-chunks/{chunk-YX2NKW6O.js → chunk-3Z7MFS6K.js} +23 -6
  11. package/dist/mcp-chunks/{chunk-ACTRQW5L.js → chunk-4ZNBWL65.js} +2 -2
  12. package/dist/mcp-chunks/chunk-53NRFMB3.js +990 -0
  13. package/dist/mcp-chunks/{chunk-6QH47GNE.js → chunk-6YZW3XAE.js} +68 -6
  14. package/dist/mcp-chunks/{chunk-X3FOKZ5C.js → chunk-7WOKCV6Q.js} +1 -1
  15. package/dist/mcp-chunks/{chunk-MOML5C2E.js → chunk-AD3FQ73K.js} +1 -1
  16. package/dist/mcp-chunks/{chunk-HDUKEFBI.js → chunk-AIKLVBYU.js} +2 -2
  17. package/dist/mcp-chunks/{chunk-SQTXZR56.js → chunk-ASG4OY3M.js} +21 -604
  18. package/dist/mcp-chunks/{chunk-V4RYLZM5.js → chunk-B2LNXGAP.js} +1 -1
  19. package/dist/mcp-chunks/{chunk-XVJAASVZ.js → chunk-BWW4XRUC.js} +16 -16
  20. package/dist/mcp-chunks/{chunk-MRXSXBZT.js → chunk-C2KNLFZR.js} +2 -2
  21. package/dist/mcp-chunks/{chunk-KPXFBRTG.js → chunk-CZKDJZER.js} +1 -1
  22. package/dist/mcp-chunks/{chunk-6CYJ6RN3.js → chunk-DTZHEVKC.js} +1 -1
  23. package/dist/mcp-chunks/{chunk-PLSS6TQZ.js → chunk-ED2WN5BI.js} +3 -3
  24. package/dist/mcp-chunks/{chunk-OGFFBNIC.js → chunk-ELA77TDC.js} +4 -4
  25. package/dist/mcp-chunks/{chunk-5WGJPYOR.js → chunk-EMSNQHZZ.js} +1 -1
  26. package/dist/mcp-chunks/{chunk-AB7MHBEG.js → chunk-EPT4MYOF.js} +11 -11
  27. package/dist/mcp-chunks/{chunk-HHMWZ2FZ.js → chunk-FAJPJTOC.js} +1 -1
  28. package/dist/mcp-chunks/{chunk-TGJOZDKG.js → chunk-FS5JIKT6.js} +2 -2
  29. package/dist/mcp-chunks/{chunk-IPH6U7SE.js → chunk-FX5NYWBH.js} +3 -3
  30. package/dist/mcp-chunks/{chunk-SCGMRUKI.js → chunk-G6OMDUNG.js} +5 -5
  31. package/dist/mcp-chunks/{chunk-47N2EELW.js → chunk-GQ6NSIDS.js} +30 -30
  32. package/dist/mcp-chunks/{chunk-PPOHGQKM.js → chunk-GUXMP7QB.js} +2 -2
  33. package/dist/mcp-chunks/{chunk-NMFI6AUD.js → chunk-H3JCYHGS.js} +25 -25
  34. package/dist/mcp-chunks/{chunk-3VLPWGJL.js → chunk-HCOKLSOB.js} +4 -4
  35. package/dist/mcp-chunks/{chunk-J6VOMOKI.js → chunk-HLRCUHNO.js} +1 -1
  36. package/dist/mcp-chunks/{chunk-LWVFSQYX.js → chunk-HN7WPMCA.js} +7806 -3454
  37. package/dist/mcp-chunks/chunk-I5GI2A2D.js +92 -0
  38. package/dist/mcp-chunks/{chunk-7KEDX7SE.js → chunk-IME7DGLJ.js} +2 -2
  39. package/dist/mcp-chunks/{chunk-E4YYMOT2.js → chunk-IPNSPKQK.js} +33 -21
  40. package/dist/mcp-chunks/{chunk-ZKFG37TB.js → chunk-IRTJXFWA.js} +2 -2
  41. package/dist/mcp-chunks/{chunk-KMH3PHLA.js → chunk-ITCCROID.js} +13 -7
  42. package/dist/mcp-chunks/{chunk-ADINDBOF.js → chunk-ITR7FQM3.js} +2 -2
  43. package/dist/mcp-chunks/{chunk-JILBFEBD.js → chunk-IYWYVHHD.js} +1 -1
  44. package/dist/mcp-chunks/{chunk-RO2Y34XX.js → chunk-JG4TRUPF.js} +1 -1
  45. package/dist/mcp-chunks/{chunk-DEYKPG4K.js → chunk-KW3ANJ36.js} +4 -4
  46. package/dist/mcp-chunks/{chunk-NWLOPQT7.js → chunk-MOEZ43ZL.js} +1 -1
  47. package/dist/mcp-chunks/{chunk-AFKE4BTR.js → chunk-NTHUNCXJ.js} +21 -21
  48. package/dist/mcp-chunks/{chunk-J3J3NQ4X.js → chunk-OD3MSMXY.js} +1 -1
  49. package/dist/mcp-chunks/{chunk-PRZCYXVO.js → chunk-OP3IW2V6.js} +2 -2
  50. package/dist/mcp-chunks/{chunk-K56RW4HB.js → chunk-PZ323CXI.js} +1 -1
  51. package/dist/mcp-chunks/{chunk-US57PK4B.js → chunk-QZUC2T72.js} +59 -4
  52. package/dist/mcp-chunks/{chunk-Z7O6NF7X.js → chunk-RD7NHCRK.js} +19 -19
  53. package/dist/mcp-chunks/{chunk-756YH7S4.js → chunk-RSTKSBVF.js} +2 -2
  54. package/dist/mcp-chunks/{chunk-6DL2C6V5.js → chunk-SCOMDV54.js} +1 -1
  55. package/dist/mcp-chunks/{chunk-SAK5KCLR.js → chunk-SNKXMWDB.js} +1 -1
  56. package/dist/mcp-chunks/{chunk-LC2CCTQN.js → chunk-TF2YTYE4.js} +1 -1
  57. package/dist/mcp-chunks/chunk-TPHPAEDH.js +3769 -0
  58. package/dist/mcp-chunks/{chunk-AF74TOWM.js → chunk-V5AYEKSL.js} +5 -5
  59. package/dist/mcp-chunks/{chunk-HBDCHBJP.js → chunk-WTMJMM3B.js} +12 -1
  60. package/dist/mcp-chunks/{chunk-ZZSD2JT7.js → chunk-WYLHHXI6.js} +1 -1
  61. package/dist/mcp-chunks/{chunk-MFFE5QSH.js → chunk-Y3EDWN2P.js} +1 -1
  62. package/dist/mcp-chunks/{chunk-ZRZ7C6L3.js → chunk-YIRGLKDA.js} +8 -8
  63. package/dist/mcp-chunks/{chunk-RE4EVQNC.js → chunk-ZOAQDFAO.js} +62 -7
  64. package/dist/mcp-chunks/{cli-B7WQQUME.js → cli-XU26MUCN.js} +67 -67
  65. package/dist/mcp-chunks/client-OT34CKRH.js +21 -0
  66. package/dist/mcp-chunks/{config-command-FF3JPMOP.js → config-command-UQMMIK2U.js} +37 -30
  67. package/dist/mcp-chunks/daemon-command-YCIOZGPZ.js +35 -0
  68. package/dist/mcp-chunks/{dist-V4UB7RTR.js → dist-DM2RXZMU.js} +47 -44
  69. package/dist/mcp-chunks/{emit-ts-command-4X56IZ32.js → emit-ts-command-KAOL6DAN.js} +16 -16
  70. package/dist/mcp-chunks/{generate-cli-runner-MIPF73SJ.js → generate-cli-runner-AK6XNRTK.js} +70 -50
  71. package/dist/mcp-chunks/{inspect-cli-command-GX54ZXKR.js → inspect-cli-command-6FVJO7H2.js} +10 -10
  72. package/dist/mcp-chunks/{launch-E2LWGPZS.js → launch-EIT73HX4.js} +1 -1
  73. package/dist/mcp-chunks/{lifecycle-TONHXXXJ.js → lifecycle-QH4TUI3K.js} +1 -1
  74. package/dist/mcp-chunks/{list-command-YUGRZO4G.js → list-command-UOB2XZK7.js} +30 -30
  75. package/dist/mcp-chunks/{output-utils-AZY6N2VQ.js → output-utils-6YXH23T7.js} +3 -3
  76. package/dist/mcp-chunks/{prompt-CH6TK0bC-NSBYYJZH.js → prompt-CH6TK0bC-ZB6RFAXR.js} +1 -1
  77. package/dist/mcp-chunks/{record-command-25DLELA2.js → record-command-FO5TTERC.js} +5 -5
  78. package/dist/mcp-chunks/{replay-command-6SLDG6PC.js → replay-command-SCBPCGQ7.js} +6 -6
  79. package/dist/mcp-chunks/{resource-command-YVOB4JCU.js → resource-command-S2J7XEMV.js} +10 -10
  80. package/dist/mcp-chunks/{result-utils-ZXB5DM36.js → result-utils-OME6HGS6.js} +4 -4
  81. package/dist/mcp-chunks/runtime-QIPMLIJI.js +39 -0
  82. package/dist/mcp-chunks/runtime-wrapper-X4YFKMJI.js +16 -0
  83. package/dist/mcp-chunks/{serve-command-QYGM2AMB.js → serve-command-DDBZZSG6.js} +28 -28
  84. package/dist/mcp-chunks/{timeouts-P3TBB3AX.js → timeouts-HNGNKDQN.js} +3 -3
  85. package/dist/mcp-chunks/{vault-command-VDMPATIX.js → vault-command-TJZYS3YI.js} +8 -7
  86. package/dist/mcp-chunks/{webapi-BLTNWSB2.js → webapi-4GWO2UBA.js} +887 -703
  87. package/dist/mcp-daemon.js +31 -31
  88. package/dist/mcp-run-worker.js +31 -31
  89. package/docs/channels.md +6 -5
  90. package/docs/recipe-format.md +6 -3
  91. package/docs/slack.md +14 -11
  92. package/package.json +11 -11
  93. package/dist/mcp-chunks/call-arguments-RPXZJOXL.js +0 -15
  94. package/dist/mcp-chunks/chunk-7CS27CWE.js +0 -431
  95. package/dist/mcp-chunks/chunk-LJCZWKGJ.js +0 -372
  96. package/dist/mcp-chunks/chunk-Q7ESBNJG.js +0 -57
  97. package/dist/mcp-chunks/client-4ZHIBB67.js +0 -21
  98. package/dist/mcp-chunks/daemon-command-FKW6YELL.js +0 -35
  99. package/dist/mcp-chunks/runtime-NOWGTHZ5.js +0 -39
  100. package/dist/mcp-chunks/runtime-wrapper-ZZPAFQE4.js +0 -14
@@ -12,39 +12,39 @@ import {
12
12
  installMcpCommandIoRouting,
13
13
  mcpDaemonRequestContext,
14
14
  serializeMcpDaemonEnvelope
15
- } from "./mcp-chunks/chunk-PLSS6TQZ.js";
16
- import "./mcp-chunks/chunk-AF74TOWM.js";
17
- import "./mcp-chunks/chunk-NMFI6AUD.js";
18
- import "./mcp-chunks/chunk-MOML5C2E.js";
19
- import "./mcp-chunks/chunk-V4RYLZM5.js";
20
- import "./mcp-chunks/chunk-ACTRQW5L.js";
15
+ } from "./mcp-chunks/chunk-ED2WN5BI.js";
16
+ import "./mcp-chunks/chunk-V5AYEKSL.js";
17
+ import "./mcp-chunks/chunk-H3JCYHGS.js";
18
+ import "./mcp-chunks/chunk-AD3FQ73K.js";
19
+ import "./mcp-chunks/chunk-B2LNXGAP.js";
20
+ import "./mcp-chunks/chunk-4ZNBWL65.js";
21
21
  import {
22
22
  createRuntime
23
- } from "./mcp-chunks/chunk-47N2EELW.js";
24
- import "./mcp-chunks/chunk-RE4EVQNC.js";
25
- import "./mcp-chunks/chunk-PRZCYXVO.js";
26
- import "./mcp-chunks/chunk-ZRZ7C6L3.js";
27
- import "./mcp-chunks/chunk-SQTXZR56.js";
28
- import "./mcp-chunks/chunk-7CS27CWE.js";
29
- import "./mcp-chunks/chunk-ZKFG37TB.js";
30
- import "./mcp-chunks/chunk-5WGJPYOR.js";
31
- import "./mcp-chunks/chunk-J3J3NQ4X.js";
32
- import "./mcp-chunks/chunk-X3FOKZ5C.js";
33
- import "./mcp-chunks/chunk-US57PK4B.js";
34
- import "./mcp-chunks/chunk-K56RW4HB.js";
35
- import "./mcp-chunks/chunk-ZZSD2JT7.js";
36
- import "./mcp-chunks/chunk-AFKE4BTR.js";
37
- import "./mcp-chunks/chunk-YX2NKW6O.js";
38
- import "./mcp-chunks/chunk-XVJAASVZ.js";
39
- import "./mcp-chunks/chunk-6CYJ6RN3.js";
40
- import "./mcp-chunks/chunk-Q7ESBNJG.js";
41
- import "./mcp-chunks/chunk-Z7O6NF7X.js";
42
- import "./mcp-chunks/chunk-ADINDBOF.js";
43
- import "./mcp-chunks/chunk-IPH6U7SE.js";
44
- import "./mcp-chunks/chunk-TGJOZDKG.js";
45
- import "./mcp-chunks/chunk-HBDCHBJP.js";
46
- import "./mcp-chunks/chunk-RO2Y34XX.js";
47
- import "./mcp-chunks/chunk-LWVFSQYX.js";
23
+ } from "./mcp-chunks/chunk-GQ6NSIDS.js";
24
+ import "./mcp-chunks/chunk-ZOAQDFAO.js";
25
+ import "./mcp-chunks/chunk-OP3IW2V6.js";
26
+ import "./mcp-chunks/chunk-YIRGLKDA.js";
27
+ import "./mcp-chunks/chunk-ASG4OY3M.js";
28
+ import "./mcp-chunks/chunk-53NRFMB3.js";
29
+ import "./mcp-chunks/chunk-IRTJXFWA.js";
30
+ import "./mcp-chunks/chunk-EMSNQHZZ.js";
31
+ import "./mcp-chunks/chunk-OD3MSMXY.js";
32
+ import "./mcp-chunks/chunk-7WOKCV6Q.js";
33
+ import "./mcp-chunks/chunk-QZUC2T72.js";
34
+ import "./mcp-chunks/chunk-PZ323CXI.js";
35
+ import "./mcp-chunks/chunk-WYLHHXI6.js";
36
+ import "./mcp-chunks/chunk-NTHUNCXJ.js";
37
+ import "./mcp-chunks/chunk-3Z7MFS6K.js";
38
+ import "./mcp-chunks/chunk-BWW4XRUC.js";
39
+ import "./mcp-chunks/chunk-DTZHEVKC.js";
40
+ import "./mcp-chunks/chunk-I5GI2A2D.js";
41
+ import "./mcp-chunks/chunk-RD7NHCRK.js";
42
+ import "./mcp-chunks/chunk-ITR7FQM3.js";
43
+ import "./mcp-chunks/chunk-FX5NYWBH.js";
44
+ import "./mcp-chunks/chunk-FS5JIKT6.js";
45
+ import "./mcp-chunks/chunk-WTMJMM3B.js";
46
+ import "./mcp-chunks/chunk-JG4TRUPF.js";
47
+ import "./mcp-chunks/chunk-HN7WPMCA.js";
48
48
  import "./mcp-chunks/chunk-LRKZP7DJ.js";
49
49
 
50
50
  // src/mcp-daemon.ts
@@ -2,37 +2,37 @@ import { createRequire as __createRequire } from "node:module"; const require =
2
2
  import {
3
3
  executeMcpCommand,
4
4
  installMcpCommandIoRouting
5
- } from "./mcp-chunks/chunk-PLSS6TQZ.js";
6
- import "./mcp-chunks/chunk-AF74TOWM.js";
7
- import "./mcp-chunks/chunk-NMFI6AUD.js";
8
- import "./mcp-chunks/chunk-MOML5C2E.js";
9
- import "./mcp-chunks/chunk-V4RYLZM5.js";
10
- import "./mcp-chunks/chunk-ACTRQW5L.js";
11
- import "./mcp-chunks/chunk-47N2EELW.js";
12
- import "./mcp-chunks/chunk-RE4EVQNC.js";
13
- import "./mcp-chunks/chunk-PRZCYXVO.js";
14
- import "./mcp-chunks/chunk-ZRZ7C6L3.js";
15
- import "./mcp-chunks/chunk-SQTXZR56.js";
16
- import "./mcp-chunks/chunk-7CS27CWE.js";
17
- import "./mcp-chunks/chunk-ZKFG37TB.js";
18
- import "./mcp-chunks/chunk-5WGJPYOR.js";
19
- import "./mcp-chunks/chunk-J3J3NQ4X.js";
20
- import "./mcp-chunks/chunk-X3FOKZ5C.js";
21
- import "./mcp-chunks/chunk-US57PK4B.js";
22
- import "./mcp-chunks/chunk-K56RW4HB.js";
23
- import "./mcp-chunks/chunk-ZZSD2JT7.js";
24
- import "./mcp-chunks/chunk-AFKE4BTR.js";
25
- import "./mcp-chunks/chunk-YX2NKW6O.js";
26
- import "./mcp-chunks/chunk-XVJAASVZ.js";
27
- import "./mcp-chunks/chunk-6CYJ6RN3.js";
28
- import "./mcp-chunks/chunk-Q7ESBNJG.js";
29
- import "./mcp-chunks/chunk-Z7O6NF7X.js";
30
- import "./mcp-chunks/chunk-ADINDBOF.js";
31
- import "./mcp-chunks/chunk-IPH6U7SE.js";
32
- import "./mcp-chunks/chunk-TGJOZDKG.js";
33
- import "./mcp-chunks/chunk-HBDCHBJP.js";
34
- import "./mcp-chunks/chunk-RO2Y34XX.js";
35
- import "./mcp-chunks/chunk-LWVFSQYX.js";
5
+ } from "./mcp-chunks/chunk-ED2WN5BI.js";
6
+ import "./mcp-chunks/chunk-V5AYEKSL.js";
7
+ import "./mcp-chunks/chunk-H3JCYHGS.js";
8
+ import "./mcp-chunks/chunk-AD3FQ73K.js";
9
+ import "./mcp-chunks/chunk-B2LNXGAP.js";
10
+ import "./mcp-chunks/chunk-4ZNBWL65.js";
11
+ import "./mcp-chunks/chunk-GQ6NSIDS.js";
12
+ import "./mcp-chunks/chunk-ZOAQDFAO.js";
13
+ import "./mcp-chunks/chunk-OP3IW2V6.js";
14
+ import "./mcp-chunks/chunk-YIRGLKDA.js";
15
+ import "./mcp-chunks/chunk-ASG4OY3M.js";
16
+ import "./mcp-chunks/chunk-53NRFMB3.js";
17
+ import "./mcp-chunks/chunk-IRTJXFWA.js";
18
+ import "./mcp-chunks/chunk-EMSNQHZZ.js";
19
+ import "./mcp-chunks/chunk-OD3MSMXY.js";
20
+ import "./mcp-chunks/chunk-7WOKCV6Q.js";
21
+ import "./mcp-chunks/chunk-QZUC2T72.js";
22
+ import "./mcp-chunks/chunk-PZ323CXI.js";
23
+ import "./mcp-chunks/chunk-WYLHHXI6.js";
24
+ import "./mcp-chunks/chunk-NTHUNCXJ.js";
25
+ import "./mcp-chunks/chunk-3Z7MFS6K.js";
26
+ import "./mcp-chunks/chunk-BWW4XRUC.js";
27
+ import "./mcp-chunks/chunk-DTZHEVKC.js";
28
+ import "./mcp-chunks/chunk-I5GI2A2D.js";
29
+ import "./mcp-chunks/chunk-RD7NHCRK.js";
30
+ import "./mcp-chunks/chunk-ITR7FQM3.js";
31
+ import "./mcp-chunks/chunk-FX5NYWBH.js";
32
+ import "./mcp-chunks/chunk-FS5JIKT6.js";
33
+ import "./mcp-chunks/chunk-WTMJMM3B.js";
34
+ import "./mcp-chunks/chunk-JG4TRUPF.js";
35
+ import "./mcp-chunks/chunk-HN7WPMCA.js";
36
36
  import "./mcp-chunks/chunk-LRKZP7DJ.js";
37
37
 
38
38
  // src/mcp-run-worker.ts
package/docs/channels.md CHANGED
@@ -53,8 +53,8 @@ breaking interface change; old individual tool names are not registered.
53
53
  Before each agent run, the extension adds origin metadata to the system prompt:
54
54
  provider, channel/thread IDs, conversation scope, and optional name/permalink.
55
55
  Labels are untrusted metadata; normal assistant output is not delivered to the
56
- channel. Recipe instructions decide when to reply, stay silent, read history,
57
- or send elsewhere; tool descriptions explain how.
56
+ channel. Recipe instructions guide the reply, history reads, and explicit
57
+ sends. Recipes that intentionally stay silent must set `requireReply: false`.
58
58
 
59
59
  User messages are not rewritten. Cloud ingress retains per-message `from`,
60
60
  `message_id`, and `sent_at` attribution. Legacy custom origin entries are
@@ -187,7 +187,7 @@ send idempotency or claim exactly-once delivery.
187
187
  ```json
188
188
  {
189
189
  "dependencies": {
190
- "@introspection-ai/recipe-channel-slack": "^0.1.0"
190
+ "@introspection-ai/recipe-channel-slack": "^0.3.0"
191
191
  },
192
192
  "pi": {
193
193
  "channels": [
@@ -199,8 +199,9 @@ send idempotency or claim exactly-once delivery.
199
199
  }
200
200
  ```
201
201
 
202
- The channel declaration enables the provider package and its supported tool
203
- catalog. The agent YAML file is the only place that narrows the catalog:
202
+ The channel declaration enables the provider package, and its optional
203
+ `commands` allowlist narrows the supported operations. Each agent selects the
204
+ tool in its YAML file:
204
205
 
205
206
  ```yaml
206
207
  tools: [channels]
@@ -90,7 +90,7 @@ credential. A host binds those values when it starts a task.
90
90
  ```json
91
91
  {
92
92
  "dependencies": {
93
- "@introspection-ai/recipe-channel-slack": "^0.1.0"
93
+ "@introspection-ai/recipe-channel-slack": "^0.3.0"
94
94
  },
95
95
  "pi": {
96
96
  "channels": [
@@ -117,8 +117,11 @@ Chat providers share one connector shape. A channel connector registers the
117
117
  provider-neutral `channels` tool with commands for supported operations. An
118
118
  optional `commands` array on the connector restricts these operations for all
119
119
  agents using it, for example `{"provider":"slack","commands":["read","reply"]}`.
120
- Omitting it allows supported commands; an empty list exposes no channel tool. See
121
- [Channel tools](channels.md).
120
+ Omitting it allows supported commands; an empty list exposes no channel tool.
121
+ `requireReply` is an optional boolean that defaults to `true` when channel tools
122
+ are enabled. Incoming turns then require a successful final `reply`, so an
123
+ enabled command allowlist must include `reply`. Set `requireReply: false` for
124
+ intentional silence, such as a read-only allowlist. See [Channel tools](channels.md).
122
125
 
123
126
  ## Agents
124
127
 
package/docs/slack.md CHANGED
@@ -15,7 +15,7 @@ protocol.
15
15
  ```json
16
16
  {
17
17
  "dependencies": {
18
- "@introspection-ai/recipe-channel-slack": "^0.1.0"
18
+ "@introspection-ai/recipe-channel-slack": "^0.3.0"
19
19
  },
20
20
  "pi": {
21
21
  "channels": [
@@ -84,20 +84,23 @@ allowed path, and adds the bot token before the request leaves for Slack.
84
84
  The adapter refuses to send a task locator when the provider proxy URL is
85
85
  missing. It never falls back to sending the locator to Slack.
86
86
 
87
- After `channels reply` succeeds in cloud, the adapter posts the `connector_posted`
88
- task event to the Data Plane, which checks the agent session, current run,
89
- provider, and origin channel before recording the new thread root. A later Slack
90
- reply then resumes the same task.
87
+ After `channels reply` or `channels send` succeeds in cloud, the adapter posts
88
+ the `connector_posted` task event to the Data Plane. Cloud checks the agent
89
+ session, current run, and destination before recording follow-up routing.
90
+ An explicit send may attach a new thread to its issue worker when the destination
91
+ is configured for that project. Sending into an unrelated existing thread does
92
+ not claim ownership. A reply in a registered thread resumes its owning task.
91
93
 
92
- `channels send` deliberately does not emit this origin-bound bridge event, even
93
- when its explicit destination matches the origin. Its result includes the
94
- actual target and `bridge_recorded: false`. Cross-channel continuation is not
95
- implemented by this tools-only change.
94
+ The result includes the actual target. `bridge_recorded` is true only when Cloud
95
+ confirms registration, not merely when the event request succeeds. Cloud may
96
+ decline registration and return `bridge_recorded: false`.
96
97
 
97
98
  Slack writes are attempted once. The adapter does not retry `chat.postMessage`,
98
99
  because Slack accepts no idempotency key for it. If Slack accepts the post but
99
- event recording fails, the tool returns the message reference and a
100
- `bridge_error`. It does not post again.
100
+ event recording fails, only registration is retried, up to three attempts.
101
+ Retries honor the server's `Retry-After` header and support cancellation. If
102
+ registration still fails, the tool returns the message reference,
103
+ `bridge_recorded: false`, and a `bridge_error`. It does not post again.
101
104
 
102
105
  ## Test with introspection dev
103
106
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@introspection-ai/recipes",
3
- "version": "0.24.0",
3
+ "version": "0.25.0",
4
4
  "description": "The open format for vertical agents, built on Pi.",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -81,10 +81,10 @@
81
81
  ]
82
82
  },
83
83
  "dependencies": {
84
- "@introspection-sdk/introspection-pi": "^0.22.0",
84
+ "@introspection-sdk/introspection-pi": "^0.23.0",
85
85
  "@opentelemetry/api": "^1.9.1",
86
86
  "ajv": "^8.20.0",
87
- "mcporter": "0.13.7",
87
+ "mcporter": "0.13.8",
88
88
  "yaml": "^2.9.0"
89
89
  },
90
90
  "peerDependencies": {
@@ -95,10 +95,10 @@
95
95
  "typebox": "*"
96
96
  },
97
97
  "devDependencies": {
98
- "@earendil-works/pi-agent-core": "0.84.3",
99
- "@earendil-works/pi-ai": "0.84.3",
100
- "@earendil-works/pi-coding-agent": "0.84.3",
101
- "@earendil-works/pi-tui": "0.84.3",
98
+ "@earendil-works/pi-agent-core": "0.84.4",
99
+ "@earendil-works/pi-ai": "0.84.4",
100
+ "@earendil-works/pi-coding-agent": "0.84.4",
101
+ "@earendil-works/pi-tui": "0.84.4",
102
102
  "@types/node": "^26.1.2",
103
103
  "esbuild": "^0.28.1",
104
104
  "typebox": "^1.0.56",
@@ -106,10 +106,10 @@
106
106
  "vitest": "^4.0.18"
107
107
  },
108
108
  "optionalDependencies": {
109
- "@introspection-ai/mcp-client-linux-x64": "0.24.0",
110
- "@introspection-ai/mcp-client-linux-arm64": "0.24.0",
111
- "@introspection-ai/mcp-client-darwin-arm64": "0.24.0",
112
- "@introspection-ai/mcp-client-darwin-x64": "0.24.0"
109
+ "@introspection-ai/mcp-client-linux-x64": "0.25.0",
110
+ "@introspection-ai/mcp-client-linux-arm64": "0.25.0",
111
+ "@introspection-ai/mcp-client-darwin-arm64": "0.25.0",
112
+ "@introspection-ai/mcp-client-darwin-x64": "0.25.0"
113
113
  },
114
114
  "scripts": {
115
115
  "build": "pnpm build:ts && pnpm build:native",
@@ -1,15 +0,0 @@
1
- import { createRequire as __createRequire } from "node:module"; const require = __createRequire(import.meta.url);
2
- import {
3
- parseCallArguments
4
- } from "./chunk-AB7MHBEG.js";
5
- import "./chunk-KPXFBRTG.js";
6
- import "./chunk-HDUKEFBI.js";
7
- import "./chunk-NWLOPQT7.js";
8
- import "./chunk-SCGMRUKI.js";
9
- import "./chunk-MFFE5QSH.js";
10
- import "./chunk-Q7ESBNJG.js";
11
- import "./chunk-HBDCHBJP.js";
12
- import "./chunk-LRKZP7DJ.js";
13
- export {
14
- parseCallArguments
15
- };