manychat-ai-agent 0.0.0-stage → 0.15.2

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 (123) hide show
  1. package/CHANGELOG.md +556 -0
  2. package/LICENSE +21 -0
  3. package/README.md +623 -2
  4. package/db/migrations/0000_third_living_tribunal.sql +61 -0
  5. package/db/migrations/0001_massive_wallflower.sql +1 -0
  6. package/db/migrations/0002_bumpy_manta.sql +3 -0
  7. package/db/migrations/0003_worthless_swarm.sql +6 -0
  8. package/db/migrations/0004_lucky_sabretooth.sql +1 -0
  9. package/db/migrations/0005_lumpy_black_panther.sql +1 -0
  10. package/db/migrations/0006_next_tattoo.sql +14 -0
  11. package/db/migrations/0007_lumpy_triathlon.sql +1 -0
  12. package/db/migrations/0008_demonic_spencer_smythe.sql +1 -0
  13. package/db/migrations/meta/0000_snapshot.json +443 -0
  14. package/db/migrations/meta/0001_snapshot.json +449 -0
  15. package/db/migrations/meta/0002_snapshot.json +456 -0
  16. package/db/migrations/meta/0003_snapshot.json +495 -0
  17. package/db/migrations/meta/0004_snapshot.json +501 -0
  18. package/db/migrations/meta/0005_snapshot.json +507 -0
  19. package/db/migrations/meta/0006_snapshot.json +625 -0
  20. package/db/migrations/meta/0007_snapshot.json +631 -0
  21. package/db/migrations/meta/0008_snapshot.json +637 -0
  22. package/db/migrations/meta/_journal.json +69 -0
  23. package/dist/agent/contact.d.ts +86 -0
  24. package/dist/agent/contact.js +137 -0
  25. package/dist/agent/fence.d.ts +15 -0
  26. package/dist/agent/fence.js +18 -0
  27. package/dist/agent/flows.d.ts +47 -0
  28. package/dist/agent/flows.js +55 -0
  29. package/dist/agent/guardrails.d.ts +74 -0
  30. package/dist/agent/guardrails.js +285 -0
  31. package/dist/agent/mock-provider.d.ts +2 -0
  32. package/dist/agent/mock-provider.js +466 -0
  33. package/dist/agent/prompt.d.ts +109 -0
  34. package/dist/agent/prompt.js +420 -0
  35. package/dist/agent/registry.d.ts +52 -0
  36. package/dist/agent/registry.js +131 -0
  37. package/dist/agent/runner.d.ts +140 -0
  38. package/dist/agent/runner.js +231 -0
  39. package/dist/agent/tools.d.ts +238 -0
  40. package/dist/agent/tools.js +689 -0
  41. package/dist/agent/transcriber.d.ts +16 -0
  42. package/dist/agent/transcriber.js +45 -0
  43. package/dist/backfill.d.ts +1 -0
  44. package/dist/backfill.js +54 -0
  45. package/dist/channels/manychat/adapter.d.ts +22 -0
  46. package/dist/channels/manychat/adapter.js +83 -0
  47. package/dist/channels/manychat/client.d.ts +100 -0
  48. package/dist/channels/manychat/client.js +161 -0
  49. package/dist/channels/manychat/media.d.ts +27 -0
  50. package/dist/channels/manychat/media.js +143 -0
  51. package/dist/channels/manychat/simulator.d.ts +1 -0
  52. package/dist/channels/manychat/simulator.js +78 -0
  53. package/dist/channels/port.d.ts +46 -0
  54. package/dist/channels/port.js +1 -0
  55. package/dist/cli/run.d.ts +6 -0
  56. package/dist/cli/run.js +169 -0
  57. package/dist/cli.d.ts +2 -0
  58. package/dist/cli.js +14 -0
  59. package/dist/config/index.d.ts +4 -0
  60. package/dist/config/index.js +2 -0
  61. package/dist/config/loader.d.ts +55 -0
  62. package/dist/config/loader.js +181 -0
  63. package/dist/contracts/agent.d.ts +285 -0
  64. package/dist/contracts/agent.js +252 -0
  65. package/dist/contracts/config.d.ts +285 -0
  66. package/dist/contracts/config.js +560 -0
  67. package/dist/contracts/manychat.d.ts +228 -0
  68. package/dist/contracts/manychat.js +123 -0
  69. package/dist/conversation/actions.d.ts +28 -0
  70. package/dist/conversation/actions.js +71 -0
  71. package/dist/conversation/backfill.d.ts +28 -0
  72. package/dist/conversation/backfill.js +42 -0
  73. package/dist/conversation/budget.d.ts +42 -0
  74. package/dist/conversation/budget.js +101 -0
  75. package/dist/conversation/store.d.ts +148 -0
  76. package/dist/conversation/store.js +231 -0
  77. package/dist/conversation/tokens.d.ts +66 -0
  78. package/dist/conversation/tokens.js +125 -0
  79. package/dist/db/client.d.ts +27 -0
  80. package/dist/db/client.js +36 -0
  81. package/dist/db/migrate.d.ts +10 -0
  82. package/dist/db/migrate.js +40 -0
  83. package/dist/db/schema.d.ts +1083 -0
  84. package/dist/db/schema.js +159 -0
  85. package/dist/evals/cases.d.ts +88 -0
  86. package/dist/evals/cases.js +192 -0
  87. package/dist/evals/runner.d.ts +1 -0
  88. package/dist/evals/runner.js +106 -0
  89. package/dist/main.d.ts +1 -0
  90. package/dist/main.js +84 -0
  91. package/dist/media/ffmpeg.d.ts +24 -0
  92. package/dist/media/ffmpeg.js +182 -0
  93. package/dist/media/port.d.ts +50 -0
  94. package/dist/media/port.js +8 -0
  95. package/dist/media/resolver.d.ts +36 -0
  96. package/dist/media/resolver.js +59 -0
  97. package/dist/migrations/index.d.ts +10 -0
  98. package/dist/migrations/index.js +29 -0
  99. package/dist/nudge/performer.d.ts +19 -0
  100. package/dist/nudge/performer.js +30 -0
  101. package/dist/nudge/store.d.ts +35 -0
  102. package/dist/nudge/store.js +76 -0
  103. package/dist/nudge/worker.d.ts +44 -0
  104. package/dist/nudge/worker.js +199 -0
  105. package/dist/observability/logger.d.ts +13 -0
  106. package/dist/observability/logger.js +10 -0
  107. package/dist/observability/redact.d.ts +44 -0
  108. package/dist/observability/redact.js +71 -0
  109. package/dist/outbox/queue.d.ts +66 -0
  110. package/dist/outbox/queue.js +88 -0
  111. package/dist/outbox/worker.d.ts +47 -0
  112. package/dist/outbox/worker.js +150 -0
  113. package/dist/routes/auth.d.ts +15 -0
  114. package/dist/routes/auth.js +44 -0
  115. package/dist/routes/turn.d.ts +90 -0
  116. package/dist/routes/turn.js +694 -0
  117. package/dist/server.d.ts +48 -0
  118. package/dist/server.js +235 -0
  119. package/dist/testing/index.d.ts +2 -0
  120. package/dist/testing/index.js +2 -0
  121. package/dist/testing/model.d.ts +36 -0
  122. package/dist/testing/model.js +79 -0
  123. package/package.json +93 -4
package/CHANGELOG.md ADDED
@@ -0,0 +1,556 @@
1
+ # Changelog
2
+
3
+ ## [0.15.2](https://github.com/pedronastasi/manychat-ai-agent/compare/manychat-ai-agent-v0.15.1...manychat-ai-agent-v0.15.2) (2026-10-05)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * name the repository in package.json so npm accepts the provenance ([6c472c4](https://github.com/pedronastasi/manychat-ai-agent/commit/6c472c470d07a84741161129465401eefe5072fd))
9
+ * name the repository in package.json so npm accepts the provenance ([8c4f7bc](https://github.com/pedronastasi/manychat-ai-agent/commit/8c4f7bcbd4fe7d0e4df2c986807d53d2afeb4b48))
10
+
11
+ ## [0.15.1](https://github.com/pedronastasi/manychat-ai-agent/compare/manychat-ai-agent-v0.15.0...manychat-ai-agent-v0.15.1) (2026-10-05)
12
+
13
+
14
+ ### Dependencies
15
+
16
+ * **deps:** update pnpm to v12.9.1 ([2cd8fa8](https://github.com/pedronastasi/manychat-ai-agent/commit/2cd8fa8a3aa4510e619dc951ef0d05c833551db0))
17
+
18
+ ## [0.15.0](https://github.com/pedronastasi/manychat-ai-agent/compare/manychat-ai-agent-v0.14.0...manychat-ai-agent-v0.15.0) (2026-10-05)
19
+
20
+
21
+ ### Features
22
+
23
+ * publish the agent as a package with a CLI and declared exports (spec 033) ([5666764](https://github.com/pedronastasi/manychat-ai-agent/commit/5666764fdb4bea8b8c173cd01bb911162c4e9432))
24
+ * publish the agent as a package with a CLI and declared exports (spec 033) ([bf0f704](https://github.com/pedronastasi/manychat-ai-agent/commit/bf0f704a484a14d150a2f68e5b041789a9c12a07))
25
+ * withhold the sale until the contact is a prospect (spec 034) ([7e48e7d](https://github.com/pedronastasi/manychat-ai-agent/commit/7e48e7d6ff00dd3b0f6353daa9e500749e2e9ee1))
26
+ * withhold the sale until the contact is a prospect (spec 034) ([1bd15f0](https://github.com/pedronastasi/manychat-ai-agent/commit/1bd15f0fc8e769ee47e84ce28716916cf4737d60))
27
+
28
+
29
+ ### Bug Fixes
30
+
31
+ * load the tenant's .env in the agent CLI, and align the guide with spec 033 ([9eccff5](https://github.com/pedronastasi/manychat-ai-agent/commit/9eccff5e0ca1648251f3aa5f53bbefcc2625e1d7))
32
+ * make the installed package boot, redact and publish as spec 033 says ([90fb886](https://github.com/pedronastasi/manychat-ai-agent/commit/90fb8866110f6bf474d575ebe66b5988b5fec89e))
33
+ * stop the reply after the opening flow greeting and asking again (spec 032) ([bd0098d](https://github.com/pedronastasi/manychat-ai-agent/commit/bd0098d6c7a60ccbd8b79d8f442f329697aebde1))
34
+ * stop the reply after the opening flow greeting and asking again (spec 032) ([705ad16](https://github.com/pedronastasi/manychat-ai-agent/commit/705ad16545e03f62ce6ea0d86cafd3b9e92c307f))
35
+
36
+
37
+ ### Specs and Docs
38
+
39
+ * guide the move from a deployment fork to a tenant project ([9e72917](https://github.com/pedronastasi/manychat-ai-agent/commit/9e72917ba7d49e5e5888a04b2986da25a876b1f2))
40
+ * judge spec 033's fork move by copied content, not shared file names ([a5d110f](https://github.com/pedronastasi/manychat-ai-agent/commit/a5d110f7ace770da50d7429f0446a044d84b3260))
41
+ * let the fork keep its own housekeeping files in spec 033's move criteria ([5844aed](https://github.com/pedronastasi/manychat-ai-agent/commit/5844aedc691ec36df7f6592c2f68a93054086da2))
42
+ * point spec 034 at the prompt's rule 8 and at what the evals can see ([79fe8f4](https://github.com/pedronastasi/manychat-ai-agent/commit/79fe8f43bc4d92618e5d8313c261638d11f97a2c))
43
+ * record PR 166 in spec 033 ([2163243](https://github.com/pedronastasi/manychat-ai-agent/commit/216324311d54b4f000f43fc4e30932aced672d92))
44
+ * record PR 167 in spec 034 ([dd6e6d9](https://github.com/pedronastasi/manychat-ai-agent/commit/dd6e6d99ce000147304e58e6dde282b3c55e7a29))
45
+ * rewrap spec 034's eval item ([ce6b064](https://github.com/pedronastasi/manychat-ai-agent/commit/ce6b0646843009bcbd8267e3d48f77f1818efc92))
46
+ * scope the release-only permission check to packages: write (spec 033) ([c37dadb](https://github.com/pedronastasi/manychat-ai-agent/commit/c37dadb1080dc0fc46fa9a231deda369b19c3f6e))
47
+ * settle the opening's timing and the advert signal in spec 034 ([6b1e76e](https://github.com/pedronastasi/manychat-ai-agent/commit/6b1e76eb5eda05d63982a2438b697682a550834e))
48
+ * specify intent before the sale (spec 034) ([0f2bb69](https://github.com/pedronastasi/manychat-ai-agent/commit/0f2bb69342faf04c3a9edd742035ea361066d380))
49
+ * specify tenant projects that depend on the agent, not fork it (spec 033) ([e375f54](https://github.com/pedronastasi/manychat-ai-agent/commit/e375f5418f3785d7bed9dcb83c200408fee04ef4))
50
+ * split spec 033 into the package, the scaffolder (035) and plugins (036) ([e910e11](https://github.com/pedronastasi/manychat-ai-agent/commit/e910e113183977891628d0ecff9d69dfb8ba7dbd))
51
+ * split spec 033 into the package, the scaffolder (035) and plugins (036) ([39258be](https://github.com/pedronastasi/manychat-ai-agent/commit/39258bee4ed6bd15ef4c3830057a35fdc39996d4))
52
+
53
+ ## [0.14.0](https://github.com/pedronastasi/manychat-ai-agent/compare/manychat-ai-agent-v0.13.1...manychat-ai-agent-v0.14.0) (2026-10-04)
54
+
55
+
56
+ ### Features
57
+
58
+ * open with the server's flow and check readiness before the link (spec 032) ([f7b947e](https://github.com/pedronastasi/manychat-ai-agent/commit/f7b947eb6e270c3a79be1fbc31ce27c80a5ce593))
59
+ * open with the server's flow and check readiness before the link (spec 032) ([bec2650](https://github.com/pedronastasi/manychat-ai-agent/commit/bec26501574cc5bb0bd8704a478d0f011efe00de))
60
+
61
+
62
+ ### Bug Fixes
63
+
64
+ * count a payment link at link_sent before it waits for the opening (spec 032) ([138dc9d](https://github.com/pedronastasi/manychat-ai-agent/commit/138dc9d15855780336f944da563e064c77d75017))
65
+ * record contactAsked only when it opened the payment gate (spec 032) ([456c2a4](https://github.com/pedronastasi/manychat-ai-agent/commit/456c2a4fa984c9ed9a51f4b63debad1649443a2d))
66
+ * say flowDropped when a stage-tied flow is over the cap (spec 032) ([219eedf](https://github.com/pedronastasi/manychat-ai-agent/commit/219eedf1befcaa4e4d1b6027404d3b007283d211))
67
+ * send the opening before any flow, and record it without tools (spec 032) ([96aa775](https://github.com/pedronastasi/manychat-ai-agent/commit/96aa77573d0e34210aaae146b2c9e45a83d00140))
68
+
69
+
70
+ ### Specs and Docs
71
+
72
+ * record PR 157 in spec 032 ([43d429c](https://github.com/pedronastasi/manychat-ai-agent/commit/43d429ca0867a06ddbdea8e5921d46801b9b4bd2))
73
+ * specify relationship before the sale (spec 032) ([227049c](https://github.com/pedronastasi/manychat-ai-agent/commit/227049c50f0c36a4307d10f722081784b6911d9a))
74
+
75
+ ## [0.13.1](https://github.com/pedronastasi/manychat-ai-agent/compare/manychat-ai-agent-v0.13.0...manychat-ai-agent-v0.13.1) (2026-10-04)
76
+
77
+
78
+ ### Specs and Docs
79
+
80
+ * describe the separate docs job in CLAUDE.md and spec 011 ([dbde7a3](https://github.com/pedronastasi/manychat-ai-agent/commit/dbde7a33f2bcd1fa6983ba7a7762809fb53d9d9f))
81
+ * give spec 031's analyst its own cap and name the eval baseline ([9e8dcf7](https://github.com/pedronastasi/manychat-ai-agent/commit/9e8dcf7d02502b671bdba34abdf62aa0f44cc8ae))
82
+ * spec 031 and ADR-0020, learning from paid outcomes ([fda1994](https://github.com/pedronastasi/manychat-ai-agent/commit/fda1994e136f531352e7a1ae9f8e26af91612b37))
83
+ * spec 031 and ADR-0020, learning from paid outcomes ([5e3cd3d](https://github.com/pedronastasi/manychat-ai-agent/commit/5e3cd3d943e1a34bc194657b8534cf3c836d1c9b))
84
+
85
+ ## [0.13.0](https://github.com/pedronastasi/manychat-ai-agent/compare/manychat-ai-agent-v0.12.1...manychat-ai-agent-v0.13.0) (2026-10-03)
86
+
87
+
88
+ ### Features
89
+
90
+ * fire a conversion event when the funnel stage advances (spec 027) ([4450489](https://github.com/pedronastasi/manychat-ai-agent/commit/445048971a7ff3d5c79ebe28918f8cdaf827647a))
91
+ * fire a conversion event when the funnel stage advances (spec 027) ([ad43756](https://github.com/pedronastasi/manychat-ai-agent/commit/ad4375623cab53b3b334b72a476c5ec9eccbfe43))
92
+ * hold a reply until the flow it follows has played (spec 030) ([a9f5f39](https://github.com/pedronastasi/manychat-ai-agent/commit/a9f5f394c689ea36ece03f5be9988d2c00449e33))
93
+ * hold a reply until the flow it follows has played (spec 030) ([ae99cf0](https://github.com/pedronastasi/manychat-ai-agent/commit/ae99cf0d81f6a2c7740338f2754365891d2faf8b))
94
+ * sell several catalog courses through one funnel (spec 028) ([125824d](https://github.com/pedronastasi/manychat-ai-agent/commit/125824d962628bb054f162290ed251464e7ca085))
95
+ * sell several catalog courses through one funnel (spec 028) ([96e13e9](https://github.com/pedronastasi/manychat-ai-agent/commit/96e13e99cd527a1ceae500130bfeb455d52fb59e))
96
+ * send a flow when the model calls it, so the reply follows it (spec 029) ([e27f210](https://github.com/pedronastasi/manychat-ai-agent/commit/e27f210e1483e0eec372093f4e90b85cb0615f44))
97
+ * send a flow when the model calls it, so the reply follows it (spec 029) ([2acac50](https://github.com/pedronastasi/manychat-ai-agent/commit/2acac50e0b3982c92d0fef6ab318afcf53c49ca9))
98
+ * send a turn's closing question after the flow it sends (spec 029) ([f7956ef](https://github.com/pedronastasi/manychat-ai-agent/commit/f7956efe3bc9c9c5858056c2ba2e5767e1faf316))
99
+
100
+
101
+ ### Bug Fixes
102
+
103
+ * a payment link sent mid-turn takes the turn's stage writes with it (spec 029) ([bfa90c7](https://github.com/pedronastasi/manychat-ai-agent/commit/bfa90c74e5780c55a0d7e7556180f25c33dcba79))
104
+ * a repeat send_flow waits for the first request's outcome (spec 029) ([0840e34](https://github.com/pedronastasi/manychat-ai-agent/commit/0840e3406ae02c31cee9efc503e9ddda350081e6))
105
+ * count a payment link in flight at link_sent for same-step writes (spec 029) ([d2f608f](https://github.com/pedronastasi/manychat-ai-agent/commit/d2f608f15071fccda5935af27331577553bcdf28))
106
+ * record a flow sent before a deferred call fails (spec 029) ([e8e2a37](https://github.com/pedronastasi/manychat-ai-agent/commit/e8e2a37cd992a58e755482f18e07708bf7af03eb))
107
+ * say why send_flow has nothing to offer a placed contact (spec 028) ([90204a0](https://github.com/pedronastasi/manychat-ai-agent/commit/90204a0e64b64928a0750ae6a07fdc1142bebe9b))
108
+ * store only a bound request's course, and ignore a retired one (spec 028) ([b589c52](https://github.com/pedronastasi/manychat-ai-agent/commit/b589c521c9acb61b40902c8d635d7bf56a86a8ec))
109
+ * wait for an in-flight flow request before recording an aborted turn (spec 029) ([f808514](https://github.com/pedronastasi/manychat-ai-agent/commit/f8085145b1da5f6e270f0ab86069f8f3e38f2d41))
110
+
111
+
112
+ ### Specs and Docs
113
+
114
+ * bring README, CLAUDE.md, config guide and specs in line with spec 029 ([4a1e006](https://github.com/pedronastasi/manychat-ai-agent/commit/4a1e0060710bb1ec360ab67f20ae82942157edb4))
115
+ * note in spec 030 that a contact writing during a held reply can be answered first ([ef50875](https://github.com/pedronastasi/manychat-ai-agent/commit/ef50875f172d66c02e78b22ec425383cab1571b1))
116
+ * record PR 150 in spec 027 ([5d2fa49](https://github.com/pedronastasi/manychat-ai-agent/commit/5d2fa495c72797b7f97645f62065acb7be672707))
117
+ * record PR 151 in spec 028 ([92d3fe5](https://github.com/pedronastasi/manychat-ai-agent/commit/92d3fe5883ea75a1195b238a646ba2c9ae802aae))
118
+ * record PR 152 in spec 029 ([211b54d](https://github.com/pedronastasi/manychat-ai-agent/commit/211b54d384b8892f9cb19139375d3a11ac289edb))
119
+ * record PR 153 in spec 030 ([f2910c3](https://github.com/pedronastasi/manychat-ai-agent/commit/f2910c31c9216bbd48d088299ccc805a69f39f38))
120
+ * specify funnel conversion events and multi-course funnels (specs 027, 028) ([56a5d12](https://github.com/pedronastasi/manychat-ai-agent/commit/56a5d1226a9c63ff71b12055eac505f8ae31eadb))
121
+
122
+ ## [0.12.1](https://github.com/pedronastasi/manychat-ai-agent/compare/manychat-ai-agent-v0.12.0...manychat-ai-agent-v0.12.1) (2026-10-03)
123
+
124
+
125
+ ### Dependencies
126
+
127
+ * **deps:** lock file maintenance ([041d33b](https://github.com/pedronastasi/manychat-ai-agent/commit/041d33b908c43ce1c0113ecf1acfaec9cb7dd4ef))
128
+ * **deps:** lock file maintenance ([0c72bd4](https://github.com/pedronastasi/manychat-ai-agent/commit/0c72bd4666dc8a6f2657972b60cb931da80a7a60))
129
+
130
+ ## [0.12.0](https://github.com/pedronastasi/manychat-ai-agent/compare/manychat-ai-agent-v0.11.0...manychat-ai-agent-v0.12.0) (2026-10-03)
131
+
132
+
133
+ ### Features
134
+
135
+ * add contact read and note-writing tools (specs/024) ([b69b74d](https://github.com/pedronastasi/manychat-ai-agent/commit/b69b74dd45d2590df3d1b260bbf73bee432887a6))
136
+ * follow up once on a quiet lead inside the 24-hour window (spec 025) ([d753440](https://github.com/pedronastasi/manychat-ai-agent/commit/d753440fcf3f333a998f18d13bc832ebbcae0764))
137
+ * follow up once on a quiet lead inside the 24-hour window (spec 025) ([fbb30e9](https://github.com/pedronastasi/manychat-ai-agent/commit/fbb30e9fafa6552ca3da5af95a7d290c58791dad))
138
+ * let the agent read its contact and write bounded notes (spec 024) ([8b1980f](https://github.com/pedronastasi/manychat-ai-agent/commit/8b1980fd34af010a045cdc9edc0a01afc43c18f3))
139
+
140
+
141
+ ### Specs and Docs
142
+
143
+ * describe contact reads and notes in the README (spec 024) ([b39729e](https://github.com/pedronastasi/manychat-ai-agent/commit/b39729e19b110d6b21ed7b586f87df0c650d7baa))
144
+ * explain how follow-ups work, how to configure and audit them (spec 025) ([1a0004a](https://github.com/pedronastasi/manychat-ai-agent/commit/1a0004ad6dd7f580573fa5a89b55bebdb58948df))
145
+ * explain how the sales funnel of spec 023 works ([ca1b0a0](https://github.com/pedronastasi/manychat-ai-agent/commit/ca1b0a04dc68ecb80032244303ec14fca61fc682))
146
+ * explain how the sales funnel of spec 023 works ([0ff63b7](https://github.com/pedronastasi/manychat-ai-agent/commit/0ff63b70cf2de0cc8d8766e6da9d8fa1adbcacca))
147
+ * record PR 143 in spec 025 ([565b9d4](https://github.com/pedronastasi/manychat-ai-agent/commit/565b9d40816ab6c20a13b2a02d053c994932524d))
148
+ * record PR 144 in spec 024 ([ab824d6](https://github.com/pedronastasi/manychat-ai-agent/commit/ab824d66b9c6dcb9a4dffd7f26be78f3173e323b))
149
+
150
+ ## [0.11.0](https://github.com/pedronastasi/manychat-ai-agent/compare/manychat-ai-agent-v0.10.0...manychat-ai-agent-v0.11.0) (2026-10-02)
151
+
152
+
153
+ ### Features
154
+
155
+ * replace verbatim repetition with the tenant's closer (spec 013) ([616ebc9](https://github.com/pedronastasi/manychat-ai-agent/commit/616ebc90d6807fe85f876305d35b777402695335))
156
+ * replace verbatim repetition with the tenant's closer (spec 013) ([a547ca5](https://github.com/pedronastasi/manychat-ai-agent/commit/a547ca5f85ee963f906b1192ca7cdf0fe9ffbcbc))
157
+ * send ManyChat API calls through manychat-sdk (spec 022) ([b4b2f79](https://github.com/pedronastasi/manychat-ai-agent/commit/b4b2f797718363db0de4d85226d9a582935b7a45))
158
+ * send ManyChat API calls through manychat-sdk (spec 022) ([f70272e](https://github.com/pedronastasi/manychat-ai-agent/commit/f70272ebae236099718ad00f3bcd585c2253e12c))
159
+ * take a lead from first reply to the payment link (spec 023) ([69c8d27](https://github.com/pedronastasi/manychat-ai-agent/commit/69c8d2700656344b182effc3f22184b4b342eb51))
160
+ * take a lead from first reply to the payment link (spec 023) ([0553b79](https://github.com/pedronastasi/manychat-ai-agent/commit/0553b795057fd16436711e1a788a8d59b14aa661))
161
+
162
+
163
+ ### Bug Fixes
164
+
165
+ * handle ManyChatResponseError in token-write logging (PR [#133](https://github.com/pedronastasi/manychat-ai-agent/issues/133) review) ([899c5af](https://github.com/pedronastasi/manychat-ai-agent/commit/899c5afb110ece876cd6477130f1b6741cbdf58b))
166
+ * re-export ManyChatResponseError and handle it in describeWriteError ([37802cd](https://github.com/pedronastasi/manychat-ai-agent/commit/37802cdc90ee169759c31be5c4d72ebd97c303e6))
167
+ * read the mock's payment options from the catalog heading only ([0663c60](https://github.com/pedronastasi/manychat-ai-agent/commit/0663c608a1c9265dd9ce5aca7e6e3bceff6628f4))
168
+
169
+
170
+ ### Specs and Docs
171
+
172
+ * bring config/README.md and spec 003 up to date ([7113618](https://github.com/pedronastasi/manychat-ai-agent/commit/7113618a942fc36bdc6389aac8c6cb705d267cbb))
173
+ * bring config/README.md and spec 003 up to date ([4855030](https://github.com/pedronastasi/manychat-ai-agent/commit/4855030159e484f467e8fbf484097f81f7900a74))
174
+ * count spec 013 in spec 026's parity target ([4436abc](https://github.com/pedronastasi/manychat-ai-agent/commit/4436abc3a2a313ef693f8d7cd6d8828d3a863ebc))
175
+ * decide and specify the Python port (ADR-0018, spec 026) ([c59e3a5](https://github.com/pedronastasi/manychat-ai-agent/commit/c59e3a55638f9c308d870b8524c00781e57ea779))
176
+ * decide and specify the Python port (ADR-0018, spec 026) ([3fbeb10](https://github.com/pedronastasi/manychat-ai-agent/commit/3fbeb10ad5407386aa3cf1491d0f4d2f5f0d0ca2))
177
+ * declare nudge.humanActiveTag in spec 025 ([e192ef7](https://github.com/pedronastasi/manychat-ai-agent/commit/e192ef7e69c288676906935d627a0e066edb7120))
178
+ * fix remaining domain-specific references in specs and doc comments ([9c6a9d5](https://github.com/pedronastasi/manychat-ai-agent/commit/9c6a9d503dd629fc1cc5dc96894393910b7d40a2))
179
+ * include ManyChatResponseError endpoint in spec 022's error-text rule ([505613f](https://github.com/pedronastasi/manychat-ai-agent/commit/505613f71b04b8e99aad145d635d5238adc81b3d))
180
+ * narrow 001's price_negotiation trigger and declare onEscalation ([ee05ea7](https://github.com/pedronastasi/manychat-ai-agent/commit/ee05ea7a7ac0f98c707e999f9c07629dc68b11a0))
181
+ * record ADRs 0015-0017 for the sales funnel ([cbbec2d](https://github.com/pedronastasi/manychat-ai-agent/commit/cbbec2debaf27b11018c0bbdea426883d761cc57))
182
+ * record PR 131 in spec 013 ([8294862](https://github.com/pedronastasi/manychat-ai-agent/commit/8294862075844375e3c7e2263f7a3c84547a6a0c))
183
+ * record PR 132 in spec 023 ([b708107](https://github.com/pedronastasi/manychat-ai-agent/commit/b708107e4cbcde068feb054e5231c38c37257370))
184
+ * remove domain-specific references from specs ([31f04f8](https://github.com/pedronastasi/manychat-ai-agent/commit/31f04f85ef1bd687ea486aaa4a2c995258272bd8))
185
+ * remove domain-specific references from specs ([adf1fe3](https://github.com/pedronastasi/manychat-ai-agent/commit/adf1fe3162dc7fe90412fb6e6fe0b645b4e6ddf2))
186
+ * specify 023 — Sales Funnel ([47dd1e6](https://github.com/pedronastasi/manychat-ai-agent/commit/47dd1e6047eb6cb927551cbd5c4d48c4b2ff67c1))
187
+ * specify 024 — Contact Read and Free-Text Notes ([d5d3121](https://github.com/pedronastasi/manychat-ai-agent/commit/d5d3121403e6ca6e7ae663a69188805395a98be2))
188
+ * specify 025 — In-Window Nudge ([d2b353f](https://github.com/pedronastasi/manychat-ai-agent/commit/d2b353ff428e69e61b07de14942046d1154c522c))
189
+ * specify the sales funnel, contact reads, notes and nudges ([8ee5104](https://github.com/pedronastasi/manychat-ai-agent/commit/8ee51044d80fe1c3b242c8d8101b94d1dbd8894c))
190
+
191
+ ## [0.10.0](https://github.com/pedronastasi/manychat-ai-agent/compare/manychat-ai-agent-v0.9.0...manychat-ai-agent-v0.10.0) (2026-10-01)
192
+
193
+
194
+ ### Features
195
+
196
+ * publish config/README.md on the docs site, by name ([7d3d5ac](https://github.com/pedronastasi/manychat-ai-agent/commit/7d3d5acbb24e81956fdec1d8b57ec93bd9602389))
197
+ * publish the docs as a site on GitHub Pages (spec 014) ([e963156](https://github.com/pedronastasi/manychat-ai-agent/commit/e9631569318d6cd3cafbe801dc082fa8c98cac7e))
198
+ * publish the docs as a site on GitHub Pages (spec 014) ([78d82bc](https://github.com/pedronastasi/manychat-ai-agent/commit/78d82bc12badf1962bcf1d1a5fd17b81b844950c))
199
+
200
+
201
+ ### Bug Fixes
202
+
203
+ * list each README as a sidebar entry, not behind its group heading ([5085310](https://github.com/pedronastasi/manychat-ai-agent/commit/50853101bccc5325b5499311dd7ac39bae556fb5))
204
+ * render Mermaid diagrams on the docs site, as GitHub does ([524bd16](https://github.com/pedronastasi/manychat-ai-agent/commit/524bd165a4110464c9f5956daf434eba943451a6))
205
+
206
+
207
+ ### Specs and Docs
208
+
209
+ * date spec 014 by the day it can merge ([75fab11](https://github.com/pedronastasi/manychat-ai-agent/commit/75fab1146c8e550c50ecb047dd493aa0fa632ee9))
210
+ * diagram how agent tools work ([707e9ff](https://github.com/pedronastasi/manychat-ai-agent/commit/707e9ff7f113600d1b2929594eed3c281007f94a))
211
+ * diagram how agent tools work ([cbc6305](https://github.com/pedronastasi/manychat-ai-agent/commit/cbc6305a52e658f1b6f7fb516917af670e9e5fd4))
212
+ * link the docs site from the README with a deploy badge (spec 021) ([31643bc](https://github.com/pedronastasi/manychat-ai-agent/commit/31643bc9cc16d6625aec4e8d6bf4e26a997ffb62))
213
+ * link the docs site from the README with a deploy badge (spec 021) ([840f236](https://github.com/pedronastasi/manychat-ai-agent/commit/840f2364c8b4a81aabeebbd3009fa79b69259bb0))
214
+ * record PR 110 in spec 012 ([6f623c9](https://github.com/pedronastasi/manychat-ai-agent/commit/6f623c9869ffe0effaa3b77fa18ba68c5f5199e0))
215
+ * record the pull request that implements spec 014 ([f5a8f14](https://github.com/pedronastasi/manychat-ai-agent/commit/f5a8f142ca69c5f6fc0fbfc660b00d164780a9e0))
216
+
217
+
218
+ ### Dependencies
219
+
220
+ * **deps:** lock file maintenance ([ca30d12](https://github.com/pedronastasi/manychat-ai-agent/commit/ca30d12e7ad844ecb703a704b75b3dcf663eb20e))
221
+ * **deps:** lock file maintenance ([9bf5706](https://github.com/pedronastasi/manychat-ai-agent/commit/9bf570669dd02e9bf35e556fa6f8fc81173ae8ed))
222
+ * **deps:** update dependency typescript-eslint to v8.71.0 ([e3d1b7d](https://github.com/pedronastasi/manychat-ai-agent/commit/e3d1b7dd963f64214a03e3a3d2455412abc73097))
223
+ * **deps:** update dependency typescript-eslint to v8.71.0 - abandoned ([66054f4](https://github.com/pedronastasi/manychat-ai-agent/commit/66054f45852643bfd5de0c160a0764e88224c45a))
224
+ * **deps:** update patch dependencies ([d9d9215](https://github.com/pedronastasi/manychat-ai-agent/commit/d9d9215264a087a64a35fda8677770f2cc72f64f))
225
+ * **deps:** update patch dependencies ([9a1c31f](https://github.com/pedronastasi/manychat-ai-agent/commit/9a1c31fe0c68fc6ac90d998d1c4b79bb0a230a87))
226
+ * **deps:** update pnpm to v12.8.1 ([6bd804b](https://github.com/pedronastasi/manychat-ai-agent/commit/6bd804b462fd536cf62465f28699d6c8fbe2a7b6))
227
+ * **deps:** update pnpm to v12.8.1 ([66bc17f](https://github.com/pedronastasi/manychat-ai-agent/commit/66bc17f3249814f3e4977ed7a0313a4e163243fa))
228
+
229
+ ## [0.9.0](https://github.com/pedronastasi/manychat-ai-agent/compare/manychat-ai-agent-v0.8.1...manychat-ai-agent-v0.9.0) (2026-10-01)
230
+
231
+
232
+ ### Features
233
+
234
+ * implement agent tools (spec 012) ([8018337](https://github.com/pedronastasi/manychat-ai-agent/commit/801833742e89c8b81f2f0360cbf815f09c0c4832))
235
+
236
+
237
+ ### Specs and Docs
238
+
239
+ * explain how agent tools work (spec 012) ([8df85ce](https://github.com/pedronastasi/manychat-ai-agent/commit/8df85ce2e59bc6e48d54075c4df977581e778340))
240
+
241
+ ## [0.8.1](https://github.com/pedronastasi/manychat-ai-agent/compare/manychat-ai-agent-v0.8.0...manychat-ai-agent-v0.8.1) (2026-09-28)
242
+
243
+
244
+ ### Specs and Docs
245
+
246
+ * specify moving ManyChat calls onto manychat-sdk (spec 022) ([c5cc136](https://github.com/pedronastasi/manychat-ai-agent/commit/c5cc136368e84476738cb1da9952831b44986e1a))
247
+
248
+
249
+ ### Dependencies
250
+
251
+ * **deps:** update dependency @types/node to v24.19.0 ([cb0187b](https://github.com/pedronastasi/manychat-ai-agent/commit/cb0187b2a5e2a94416acfaaaa3696035790138de))
252
+ * **deps:** update dependency @types/node to v24.19.0 ([bc76a52](https://github.com/pedronastasi/manychat-ai-agent/commit/bc76a52507c08f6dcfe82ad45b289619fe6d7e44))
253
+ * **deps:** update patch dependencies ([ca6f447](https://github.com/pedronastasi/manychat-ai-agent/commit/ca6f447685f64553e3e64a87ce751f6dc66cdc7c))
254
+ * **deps:** update patch dependencies ([cb25a1a](https://github.com/pedronastasi/manychat-ai-agent/commit/cb25a1ac497a655241fffd59fea69154dcaabd5c))
255
+
256
+ ## [0.8.0](https://github.com/pedronastasi/manychat-ai-agent/compare/manychat-ai-agent-v0.7.0...manychat-ai-agent-v0.8.0) (2026-09-27)
257
+
258
+
259
+ ### Features
260
+
261
+ * take issues, questions and conduct reports through forms (spec 021) ([2c76e7b](https://github.com/pedronastasi/manychat-ai-agent/commit/2c76e7b65ffa32539b34e511d691c4131fabaedc))
262
+ * take issues, questions and conduct reports through forms (spec 021) ([81fac30](https://github.com/pedronastasi/manychat-ai-agent/commit/81fac302065fb2f33d9c2d67cb8429db9b2e3365))
263
+
264
+
265
+ ### Specs and Docs
266
+
267
+ * mark spec 020 implemented ([220e9ea](https://github.com/pedronastasi/manychat-ai-agent/commit/220e9eab5e9c422789962edf8f3c3b2be8f2ccff))
268
+ * mark spec 020 implemented ([f8ab943](https://github.com/pedronastasi/manychat-ai-agent/commit/f8ab943dac3fe0580b0ef6e6473d0a3770cd1443))
269
+ * record PR 105 in spec 021 ([aed5794](https://github.com/pedronastasi/manychat-ai-agent/commit/aed579492b1e7c029154d7b900ca1e481b436b39))
270
+ * specify the contributor surface ([e7809ec](https://github.com/pedronastasi/manychat-ai-agent/commit/e7809ec8be8ba127388238f017e3efb705666188))
271
+ * specify the contributor surface ([ca479b2](https://github.com/pedronastasi/manychat-ai-agent/commit/ca479b299d64048e93df1be6fcbfbaaf28c9d914))
272
+ * stop naming the deployment repository in spec 010 ([aa0f6cf](https://github.com/pedronastasi/manychat-ai-agent/commit/aa0f6cf9f6177814a66069ec8c7d8bcb986d45ad))
273
+ * stop naming the deployment repository in spec 010 ([481e328](https://github.com/pedronastasi/manychat-ai-agent/commit/481e3286267f5af1cf2822f925ac0a36893db9f6))
274
+
275
+ ## [0.7.0](https://github.com/pedronastasi/manychat-ai-agent/compare/manychat-ai-agent-v0.6.0...manychat-ai-agent-v0.7.0) (2026-09-27)
276
+
277
+
278
+ ### Features
279
+
280
+ * read inbound voice notes, images and videos (spec 020) ([700d2cc](https://github.com/pedronastasi/manychat-ai-agent/commit/700d2cc215984cc588d4279b2a8216fc55173917))
281
+ * read inbound voice notes, images and videos (spec 020) ([ea74381](https://github.com/pedronastasi/manychat-ai-agent/commit/ea7438118dc210ef27c921640eff2730ca4e5cfe))
282
+
283
+
284
+ ### Bug Fixes
285
+
286
+ * compare the media host as a parsed hostname, not a substring ([8a44692](https://github.com/pedronastasi/manychat-ai-agent/commit/8a44692162bb02b424e307f3a76bacd3ad653c87))
287
+
288
+
289
+ ### Specs and Docs
290
+
291
+ * specify inbound media (voice notes, images, video) ([b706b3b](https://github.com/pedronastasi/manychat-ai-agent/commit/b706b3bcad467f6090695a81ad9f8933ae87e361))
292
+
293
+ ## [0.6.0](https://github.com/pedronastasi/manychat-ai-agent/compare/manychat-ai-agent-v0.5.3...manychat-ai-agent-v0.6.0) (2026-09-27)
294
+
295
+
296
+ ### Features
297
+
298
+ * bind a contact's history to a token ManyChat holds (spec 019) ([8bd1597](https://github.com/pedronastasi/manychat-ai-agent/commit/8bd15970c9c246891d3e2f6e78458edb0a584b9c))
299
+ * bind a contact's history to a token ManyChat holds (spec 019) ([a7799f2](https://github.com/pedronastasi/manychat-ai-agent/commit/a7799f2010bcda594ae5389fa92d64e3180567e5))
300
+ * bound history to 30 days and reset the turn cap after 24 hours (spec 018) ([f5cdd44](https://github.com/pedronastasi/manychat-ai-agent/commit/f5cdd442338e6d8239be6fe84b2d4b140eb63883))
301
+ * bound history to 30 days and reset the turn cap after 24 hours (spec 018) ([b06f349](https://github.com/pedronastasi/manychat-ai-agent/commit/b06f3490f5c6e6d4bfcbf02fe97f84eb1500dadd))
302
+ * enforce inbound request trust (spec 017) ([5056995](https://github.com/pedronastasi/manychat-ai-agent/commit/50569952622a0ecb2b8db1cc4ca2c675aa818cfc))
303
+ * enforce inbound request trust (spec 017) ([e29f676](https://github.com/pedronastasi/manychat-ai-agent/commit/e29f676943480dbaa4fc7a7b3ea1f303ecef0c9e))
304
+
305
+
306
+ ### Bug Fixes
307
+
308
+ * encode upsert timestamps through the column ([8a33177](https://github.com/pedronastasi/manychat-ai-agent/commit/8a331774ba9c96684675c1dd3bf1172de11037e3))
309
+ * encode upsert timestamps through the column, not sql.param alone ([9bf867f](https://github.com/pedronastasi/manychat-ai-agent/commit/9bf867f447cbd2ee7d054466580af0c26fe4b7f1))
310
+ * strip reply fields the model writes into message text ([8fc5421](https://github.com/pedronastasi/manychat-ai-agent/commit/8fc5421c0f79cf86f6b451bc36003a9ec5ffe8ed))
311
+ * strip reply fields the model writes into message text ([8edd948](https://github.com/pedronastasi/manychat-ai-agent/commit/8edd94899add71231690044d03d1244cfcf5116d))
312
+ * wrap Date values in sql.param() for conversation upsert ([88f0109](https://github.com/pedronastasi/manychat-ai-agent/commit/88f0109a8aa81ac7963e78d2b9153e1cbbfb41ef))
313
+ * wrap Date values in sql.param() for conversation upsert ([4738582](https://github.com/pedronastasi/manychat-ai-agent/commit/4738582d967a8276b1cb08480d8191f2d3e971bb))
314
+
315
+
316
+ ### Specs and Docs
317
+
318
+ * explain contact tokens in the README ([edcc2cb](https://github.com/pedronastasi/manychat-ai-agent/commit/edcc2cb6943912af8eb03114d67072aa074a6bcd))
319
+ * let a case carry several review criteria, one verdict each ([7fa80e5](https://github.com/pedronastasi/manychat-ai-agent/commit/7fa80e50dbfd61f5f1c41b1b928dd82b373cb1f1))
320
+ * record PR 89 in spec 017 ([a9be334](https://github.com/pedronastasi/manychat-ai-agent/commit/a9be334edf895957e9f254890f65d70f160f2ffd))
321
+ * record PR 91 in spec 018 ([25963b3](https://github.com/pedronastasi/manychat-ai-agent/commit/25963b3019dd9f7fd41a99657dcc9e88a6bb757b))
322
+ * record PR 95 in spec 019 ([4392ee3](https://github.com/pedronastasi/manychat-ai-agent/commit/4392ee3891ba7fcf93f5bfee5c3e98011b328512))
323
+ * specify a flag-gated browser test service on the mock model ([b79ac2d](https://github.com/pedronastasi/manychat-ai-agent/commit/b79ac2d587d92a26678055b30a8f7ed681e3b007))
324
+ * specify inbound request trust (spec 017, ADRs 0012-0014) ([b9c5518](https://github.com/pedronastasi/manychat-ai-agent/commit/b9c55186ea7c69f5e89164621e1811c48eb5653a))
325
+ * specify inbound request trust (spec 017, ADRs 0012-0014) ([d2b30b8](https://github.com/pedronastasi/manychat-ai-agent/commit/d2b30b88fcc5193ae92656fc108af329725388e7))
326
+ * specify model-graded evals behind a calibration gate ([c7bd2ab](https://github.com/pedronastasi/manychat-ai-agent/commit/c7bd2ab9092728335685f32966ce389fbff513c4))
327
+ * specify model-graded evals behind a calibration gate ([38478ab](https://github.com/pedronastasi/manychat-ai-agent/commit/38478ab1cb7c68d9571d2a9897a4f90c6ea54b78))
328
+ * specify the documentation site ([ce6b613](https://github.com/pedronastasi/manychat-ai-agent/commit/ce6b613f21a721498e25d33a2378f244f6a65e10))
329
+ * translate leftover Spanish strings to English ([bef7660](https://github.com/pedronastasi/manychat-ai-agent/commit/bef7660ff482d032bb5015088299635cd1c28f01))
330
+ * translate leftover Spanish strings to English ([23d2bb9](https://github.com/pedronastasi/manychat-ai-agent/commit/23d2bb98e94e52d35bf740e6f2a76c38f8fda5f8))
331
+
332
+
333
+ ### Dependencies
334
+
335
+ * **deps:** update patch dependencies ([#87](https://github.com/pedronastasi/manychat-ai-agent/issues/87)) ([46d8a11](https://github.com/pedronastasi/manychat-ai-agent/commit/46d8a11a9253457b8eb0b67061e2605a86ce8197))
336
+
337
+ ## [0.5.3](https://github.com/pedronastasi/manychat-ai-agent/compare/manychat-ai-agent-v0.5.2...manychat-ai-agent-v0.5.3) (2026-09-24)
338
+
339
+
340
+ ### Specs and Docs
341
+
342
+ * add spec 013 — no verbatim repetition ([e864936](https://github.com/pedronastasi/manychat-ai-agent/commit/e8649365de1e850acc02dc0765e6c7717f89ad90))
343
+ * add spec 013 — no verbatim repetition ([e0f5ea2](https://github.com/pedronastasi/manychat-ai-agent/commit/e0f5ea27171b9e626e1a82f303580b68e8c270e4))
344
+ * record agent actions per turn and feed them back to the model ([4876c94](https://github.com/pedronastasi/manychat-ai-agent/commit/4876c94192b07e8a9b765c25c60e9a619d201463))
345
+ * specify agent tools for ManyChat flows, tags and fields ([9385f22](https://github.com/pedronastasi/manychat-ai-agent/commit/9385f22e01fa07eac28d42a5c972d58f8ef330dc))
346
+ * specify agent tools for ManyChat flows, tags and fields ([8e4d604](https://github.com/pedronastasi/manychat-ai-agent/commit/8e4d6049ad182936d1eb23fa41b7615f10a41720))
347
+
348
+
349
+ ### Dependencies
350
+
351
+ * **deps:** update minor dependencies ([b4efac6](https://github.com/pedronastasi/manychat-ai-agent/commit/b4efac6a5f95e95a1394c7ce19d7ea155e300a63))
352
+ * **deps:** update minor dependencies ([ac224f5](https://github.com/pedronastasi/manychat-ai-agent/commit/ac224f5a71f9fb2a36be35cff264c576ead39aa3))
353
+ * **deps:** update patch dependencies ([#77](https://github.com/pedronastasi/manychat-ai-agent/issues/77)) ([381c0a1](https://github.com/pedronastasi/manychat-ai-agent/commit/381c0a18d36303c76232dcf22070845a8081606f))
354
+ * **deps:** update pnpm to v12.6.0 ([025cb26](https://github.com/pedronastasi/manychat-ai-agent/commit/025cb2659c4427b9acaeede30174331880147b04))
355
+ * **deps:** update pnpm to v12.6.0 ([0d46f00](https://github.com/pedronastasi/manychat-ai-agent/commit/0d46f00c9de90ab86d9c4f266ecde07cd1ea920e))
356
+
357
+ ## [0.5.2](https://github.com/pedronastasi/manychat-ai-agent/compare/manychat-ai-agent-v0.5.1...manychat-ai-agent-v0.5.2) (2026-09-18)
358
+
359
+
360
+ ### Dependencies
361
+
362
+ * **deps:** update dependency @types/node to v24 ([d269787](https://github.com/pedronastasi/manychat-ai-agent/commit/d269787c0103301ba56b280f4cf55a546faf0fa5))
363
+ * **deps:** update dependency @types/node to v24 ([cd69d3d](https://github.com/pedronastasi/manychat-ai-agent/commit/cd69d3d87e1969d657a9653f5e92e4b164063100))
364
+ * **deps:** update patch dependencies ([e748b59](https://github.com/pedronastasi/manychat-ai-agent/commit/e748b59b438cfce72f76a52ec2ebfe51286fd657))
365
+ * **deps:** update patch dependencies ([50207ba](https://github.com/pedronastasi/manychat-ai-agent/commit/50207baf39ecaea1b4e0cd32c4862eebd410863c))
366
+
367
+ ## [0.5.1](https://github.com/pedronastasi/manychat-ai-agent/compare/manychat-ai-agent-v0.5.0...manychat-ai-agent-v0.5.1) (2026-09-18)
368
+
369
+
370
+ ### Bug Fixes
371
+
372
+ * never ask the closing question twice ([f9c10b7](https://github.com/pedronastasi/manychat-ai-agent/commit/f9c10b7e0f69d7c43a1496ffb15b19654c19b863))
373
+ * never ask the closing question twice ([2c6f897](https://github.com/pedronastasi/manychat-ai-agent/commit/2c6f897fc4bc4224d74d2b10c30de773c35207cf))
374
+
375
+ ## [0.5.0](https://github.com/pedronastasi/manychat-ai-agent/compare/manychat-ai-agent-v0.4.1...manychat-ai-agent-v0.5.0) (2026-09-18)
376
+
377
+
378
+ ### Features
379
+
380
+ * make the closing question a field rather than a hope ([65072d8](https://github.com/pedronastasi/manychat-ai-agent/commit/65072d8dd97632554a4f94d6e68dcdc77af7409e))
381
+ * make the closing question a field rather than a hope ([cf7ee19](https://github.com/pedronastasi/manychat-ai-agent/commit/cf7ee19f725e3416c0a1e1e13685d95362c317b9))
382
+
383
+
384
+ ### Bug Fixes
385
+
386
+ * count content lines, and give the suite its own latency budget ([31d4382](https://github.com/pedronastasi/manychat-ai-agent/commit/31d43826f285ce3a6d0b79a4ba05fb775d009b53))
387
+ * count content lines, and give the suite its own latency budget ([ae21d99](https://github.com/pedronastasi/manychat-ai-agent/commit/ae21d99bf3b7af61db546e78b43c1bc3be5b8c15))
388
+ * ground prices documented in catalog prose ([281613c](https://github.com/pedronastasi/manychat-ai-agent/commit/281613cc07edfa74b20318a85430143e21c3f12d))
389
+ * ground prices documented in catalog prose ([8a93597](https://github.com/pedronastasi/manychat-ai-agent/commit/8a935975e305a68b2db91c6dcd50e48c538829e7))
390
+ * last Spanish string in an integration test fixture ([c22e82d](https://github.com/pedronastasi/manychat-ai-agent/commit/c22e82dc2511fda88e41cd84750b1bbcdf8daa83))
391
+ * omit temperature for models that reject it ([1f934c8](https://github.com/pedronastasi/manychat-ai-agent/commit/1f934c843e661646a157a1acdc96265092e04afd))
392
+ * omit temperature for models that reject it ([279d6fb](https://github.com/pedronastasi/manychat-ai-agent/commit/279d6fb66022cd5f5d94c07335339ea4a87b0bf2))
393
+ * remove Spanish and real deployment data from test fixtures ([9fd5797](https://github.com/pedronastasi/manychat-ai-agent/commit/9fd5797398955894fb7c6a5ad7bbf6d3c19755be))
394
+ * stop discarding every message after the first on WhatsApp ([5e39c07](https://github.com/pedronastasi/manychat-ai-agent/commit/5e39c07b7afa496641fb111df4e2e1b527d50ce8))
395
+ * stop discarding every message after the first on WhatsApp ([bdc797e](https://github.com/pedronastasi/manychat-ai-agent/commit/bdc797e4630547597612a9feaede5f49adaed473))
396
+
397
+
398
+ ### Specs and Docs
399
+
400
+ * document EVAL_MAX_LATENCY_MS in .env.example ([2f7cec0](https://github.com/pedronastasi/manychat-ai-agent/commit/2f7cec0db8741a6d4ff2b81f772770ac000a3376))
401
+
402
+ ## [0.4.1](https://github.com/pedronastasi/manychat-ai-agent/compare/manychat-ai-agent-v0.4.0...manychat-ai-agent-v0.4.1) (2026-09-17)
403
+
404
+
405
+ ### Refactors
406
+
407
+ * migrate from deprecated generateObject to generateText ([3988740](https://github.com/pedronastasi/manychat-ai-agent/commit/3988740ce567edc1440b7d27bf12b9fa7c146ba6))
408
+ * migrate from deprecated generateObject to generateText ([7319a6f](https://github.com/pedronastasi/manychat-ai-agent/commit/7319a6f4a20a62f052727243446a7cc333d0e49e))
409
+
410
+ ## [0.4.0](https://github.com/pedronastasi/manychat-ai-agent/compare/manychat-ai-agent-v0.3.6...manychat-ai-agent-v0.4.0) (2026-09-17)
411
+
412
+
413
+ ### Features
414
+
415
+ * cap reasoning effort, and make a dead model call visible ([c9cb90a](https://github.com/pedronastasi/manychat-ai-agent/commit/c9cb90a21f127f45d1560569e3966db1ca6fff5a))
416
+ * cap reasoning effort, and make a dead model call visible ([257f039](https://github.com/pedronastasi/manychat-ai-agent/commit/257f039a05fc84b82739b45c3854ab1637f755d0))
417
+
418
+
419
+ ### Bug Fixes
420
+
421
+ * add serial seq column to turns for deterministic ordering ([7ecf70f](https://github.com/pedronastasi/manychat-ai-agent/commit/7ecf70f28292e9eceb104c3195c77da16ed5d332))
422
+ * deterministic turn ordering with serial seq column ([537ec70](https://github.com/pedronastasi/manychat-ai-agent/commit/537ec70a1f12ede6a8b0794ce01ef64c23ca62ce))
423
+ * prevent false escalation on short conversational replies ([85af807](https://github.com/pedronastasi/manychat-ai-agent/commit/85af8076fcf3d2b071212761db16e7f441ca8bed))
424
+ * prevent false escalation on short conversational replies ([7c4992e](https://github.com/pedronastasi/manychat-ai-agent/commit/7c4992e9157c6322d4c9235a25e7199d907eedc7))
425
+ * reload the persona and catalog on SIGHUP ([7293d59](https://github.com/pedronastasi/manychat-ai-agent/commit/7293d59751aca0afd65321cefbbecc7b1de088a1))
426
+ * reload the persona and catalog on SIGHUP ([c43222e](https://github.com/pedronastasi/manychat-ai-agent/commit/c43222e44838a68188e43978250303eab6f87107))
427
+
428
+ ## [0.3.6](https://github.com/pedronastasi/manychat-ai-agent/compare/manychat-ai-agent-v0.3.5...manychat-ai-agent-v0.3.6) (2026-09-16)
429
+
430
+
431
+ ### Bug Fixes
432
+
433
+ * **docker:** copy pnpm-workspace.yaml into build stage ([89441f6](https://github.com/pedronastasi/manychat-ai-agent/commit/89441f6a5116e58b42918d41ab44fc21371a439d))
434
+ * **docker:** copy pnpm-workspace.yaml into build stage ([11d39f5](https://github.com/pedronastasi/manychat-ai-agent/commit/11d39f5ee4209ce1f1e37a2817967ed1e956d8d7))
435
+
436
+ ## [0.3.5](https://github.com/pedronastasi/manychat-ai-agent/compare/manychat-ai-agent-v0.3.4...manychat-ai-agent-v0.3.5) (2026-09-16)
437
+
438
+
439
+ ### Bug Fixes
440
+
441
+ * **release:** map chore(deps) to a visible Dependencies changelog section ([0d259eb](https://github.com/pedronastasi/manychat-ai-agent/commit/0d259eb339cc619233877cf9676674ea0b03e99b))
442
+ * **release:** map chore(deps) to visible Dependencies section ([571935c](https://github.com/pedronastasi/manychat-ai-agent/commit/571935ccf37939bb6681a2642d12864f528e3314))
443
+ * **renovate:** remove semanticCommitType override ([9a29ce4](https://github.com/pedronastasi/manychat-ai-agent/commit/9a29ce4d4726db11c0ea6c11724e3be9537eb6ad))
444
+ * **renovate:** remove semanticCommitType override so :semanticCommits preset controls PR prefixes ([566cd84](https://github.com/pedronastasi/manychat-ai-agent/commit/566cd84e6620cc364d6773b1125ff9271d599b2d))
445
+
446
+
447
+ ### Dependencies
448
+
449
+ * **deps:** update dependency ai to v7.0.105 ([c0388d2](https://github.com/pedronastasi/manychat-ai-agent/commit/c0388d28bf8f08879265e06bed262a32f32e5982))
450
+ * **deps:** update dependency ai to v7.0.105 ([4a8843b](https://github.com/pedronastasi/manychat-ai-agent/commit/4a8843b7ef27d2512cc42d3aa6583c58278226f3))
451
+ * **deps:** update pnpm to v12.4.2 ([c9ea9b4](https://github.com/pedronastasi/manychat-ai-agent/commit/c9ea9b439f500e1fd79e95a76d2a05288f052bad))
452
+ * **deps:** update pnpm to v12.4.2 ([c508eef](https://github.com/pedronastasi/manychat-ai-agent/commit/c508eefbfee3757ff392cbf14d7177ae1766ed1e))
453
+
454
+ ## [0.3.4](https://github.com/pedronastasi/manychat-ai-agent/compare/manychat-ai-agent-v0.3.3...manychat-ai-agent-v0.3.4) (2026-09-16)
455
+
456
+
457
+ ### Bug Fixes
458
+
459
+ * restore pnpm-workspace.yaml with minimumReleaseAge disabled ([6c96d58](https://github.com/pedronastasi/manychat-ai-agent/commit/6c96d58571d3d8943356e59097a125a4873e2f98))
460
+
461
+
462
+ ### Specs and Docs
463
+
464
+ * add deps prefix to spec 010 changelog table ([d0b7b67](https://github.com/pedronastasi/manychat-ai-agent/commit/d0b7b672e67a5768431ff4ca6847b0d0a650e8d0))
465
+
466
+ ## [0.3.3](https://github.com/pedronastasi/manychat-ai-agent/compare/manychat-ai-agent-v0.3.2...manychat-ai-agent-v0.3.3) (2026-09-16)
467
+
468
+
469
+ ### Bug Fixes
470
+
471
+ * regenerate lockfile for pnpm 12 and add workspace config ([67fc8d8](https://github.com/pedronastasi/manychat-ai-agent/commit/67fc8d8fbc1e0f1c3a44b142175175cac5f52243))
472
+
473
+ ## [0.3.2](https://github.com/pedronastasi/manychat-ai-agent/compare/manychat-ai-agent-v0.3.1...manychat-ai-agent-v0.3.2) (2026-09-16)
474
+
475
+
476
+ ### Bug Fixes
477
+
478
+ * downgrade to TypeScript 6.0 — typescript-eslint does not support TS 7 ([c26a70d](https://github.com/pedronastasi/manychat-ai-agent/commit/c26a70d49eb54c1f1473ca4818e12c4528445e00))
479
+
480
+ ## [0.3.1](https://github.com/pedronastasi/manychat-ai-agent/compare/manychat-ai-agent-v0.3.0...manychat-ai-agent-v0.3.1) (2026-09-16)
481
+
482
+
483
+ ### Bug Fixes
484
+
485
+ * gate release-please to the public repo only ([fa58933](https://github.com/pedronastasi/manychat-ai-agent/commit/fa58933e11787c6c91650d5aac3789115ace160e))
486
+ * gate release-please to the public repo only ([b545948](https://github.com/pedronastasi/manychat-ai-agent/commit/b545948228aca002a2ec39683c16fe491e5da610))
487
+
488
+ ## [0.3.0](https://github.com/pedronastasi/manychat-ai-agent/compare/manychat-ai-agent-v0.2.0...manychat-ai-agent-v0.3.0) (2026-09-16)
489
+
490
+
491
+ ### Features
492
+
493
+ * batch dependency updates and auto-merge only patches ([7bfb068](https://github.com/pedronastasi/manychat-ai-agent/commit/7bfb0687c4c1fc577ac48de8d232cf3bfa2835f8))
494
+ * batch dependency updates and auto-merge only patches ([d628930](https://github.com/pedronastasi/manychat-ai-agent/commit/d6289304d83587ff0d16ed0f96ad4d1d8eba64dd))
495
+
496
+
497
+ ### Specs and Docs
498
+
499
+ * record the PR that landed specs/011 ([cc0c14a](https://github.com/pedronastasi/manychat-ai-agent/commit/cc0c14ae166b714a376f24193cd9d160ab46358c))
500
+
501
+ ## [0.2.0](https://github.com/pedronastasi/manychat-ai-agent/compare/manychat-ai-agent-v0.1.0...manychat-ai-agent-v0.2.0) (2026-09-16)
502
+
503
+
504
+ ### Features
505
+
506
+ * add Ollama as a local model provider ([1274bac](https://github.com/pedronastasi/manychat-ai-agent/commit/1274bacaa9882db22cc558c7cad7ffcfeb898738))
507
+ * add Ollama as a local model provider (specs/007) ([aa1da2f](https://github.com/pedronastasi/manychat-ai-agent/commit/aa1da2f0f5ba078a5ea45260eccea24f779040e1))
508
+ * cut releases from a reviewable Release PR ([de2a4c6](https://github.com/pedronastasi/manychat-ai-agent/commit/de2a4c645f5d5c728cd44f175ccee8b3543c4045))
509
+ * cut releases from a reviewable Release PR ([d8c4364](https://github.com/pedronastasi/manychat-ai-agent/commit/d8c4364c77d49c52f778367b67f327c227a309ac))
510
+ * implement the agent gateway MVP ([63be48a](https://github.com/pedronastasi/manychat-ai-agent/commit/63be48a28c8251d883d356b7a652ac61f3c316b0))
511
+ * implement the agent gateway MVP ([aba2203](https://github.com/pedronastasi/manychat-ai-agent/commit/aba2203c7215c1e84634e2f0360bf89452928c18))
512
+ * let a tenant carry its own eval suite ([e2b50da](https://github.com/pedronastasi/manychat-ai-agent/commit/e2b50dacc3cfd759fe31a1c5779491caa574e42e))
513
+ * let a tenant carry its own eval suite ([704e530](https://github.com/pedronastasi/manychat-ai-agent/commit/704e530c6aa22e836d17b7ffd3ff63ea160e8f93))
514
+ * make a spec state whether its behaviour exists yet ([89f653a](https://github.com/pedronastasi/manychat-ai-agent/commit/89f653a60cd90e7192efcefe475c6ffb6915e01a))
515
+ * make a spec state whether its behaviour exists yet ([423e318](https://github.com/pedronastasi/manychat-ai-agent/commit/423e318ec6469114060b91eb9959fcc4cdb9d375))
516
+ * replace sendContent with flow-based delivery (specs/002) ([0603016](https://github.com/pedronastasi/manychat-ai-agent/commit/0603016d4e4efbf455b4f4fc2aa8a69c8ede0ddf))
517
+ * scripted opening on a configured sentinel (specs/001) ([9bc8ff5](https://github.com/pedronastasi/manychat-ai-agent/commit/9bc8ff5c87e9375ec89018da2ee14753cb10258a))
518
+ * scripted opening trigger and flow-based delivery ([a4cd0c5](https://github.com/pedronastasi/manychat-ai-agent/commit/a4cd0c5d1800fe398ee8cb094371df2d76f70456))
519
+
520
+
521
+ ### Bug Fixes
522
+
523
+ * green eval:mock on main after [#17](https://github.com/pedronastasi/manychat-ai-agent/issues/17) ([00a50c2](https://github.com/pedronastasi/manychat-ai-agent/commit/00a50c2b23d3a756b4aa6035e3453c03714864df))
524
+ * keep MODEL_ABORT_MS armed on the deferred path, record the model ([2089bcc](https://github.com/pedronastasi/manychat-ai-agent/commit/2089bcc7cd1f29adc6178f0b90588506571c12f4))
525
+ * mount config into container and update Postgres 18 volume path ([7718a3b](https://github.com/pedronastasi/manychat-ai-agent/commit/7718a3b813f90d2dc5840ed02f704507c5a8b927))
526
+
527
+
528
+ ### Refactors
529
+
530
+ * English throughout, and no customer copy in source ([e3094ee](https://github.com/pedronastasi/manychat-ai-agent/commit/e3094ee83c75de1ddca78b9abb5eb0912a3a5b15))
531
+ * English throughout, and no customer copy in source ([8662c05](https://github.com/pedronastasi/manychat-ai-agent/commit/8662c0584d7041f6e74da5ca002d06de241a935c))
532
+ * implement ports as classes rather than factory functions ([1738550](https://github.com/pedronastasi/manychat-ai-agent/commit/17385504b22749a00f6aa1b7af1014ad526226e4))
533
+ * implement ports as classes rather than factory functions ([36245bd](https://github.com/pedronastasi/manychat-ai-agent/commit/36245bd7c4599a0b920f457ff8a9bea7fb92459b))
534
+
535
+
536
+ ### Specs and Docs
537
+
538
+ * add CLAUDE.md with codebase documentation ([3b94ae4](https://github.com/pedronastasi/manychat-ai-agent/commit/3b94ae4943d9fe835fe36ce68785a3f4547a27af))
539
+ * add CLAUDE.md with codebase documentation ([34d24b2](https://github.com/pedronastasi/manychat-ai-agent/commit/34d24b2aee8b4ed1f1b5db64f84c3c9e03d7383b))
540
+ * add Docker setup and API walkthrough to README ([8cc50c2](https://github.com/pedronastasi/manychat-ai-agent/commit/8cc50c2c33a05136c55459321dd0970fc3b94c39))
541
+ * add the pull request template specified in 006 ([b329490](https://github.com/pedronastasi/manychat-ai-agent/commit/b329490ca49dc49261cfd095df164bf970abb63d))
542
+ * close spec 007's unkept promise and verify its claims ([a988eb2](https://github.com/pedronastasi/manychat-ai-agent/commit/a988eb2a2da203593a96b047568b2c4f8ade22fb))
543
+ * close spec 007's unkept promise and verify its claims ([0381946](https://github.com/pedronastasi/manychat-ai-agent/commit/0381946cbc4dfdbcbe034e4ea2ed2c3ba2184875))
544
+ * link to PGlite in quick-start blurb ([ef25a41](https://github.com/pedronastasi/manychat-ai-agent/commit/ef25a41177e15d120578ba5ea7ab5ee182459e32))
545
+ * record classes as the standard for port implementations ([746c874](https://github.com/pedronastasi/manychat-ai-agent/commit/746c874422d56380bc6100c3a4100bc47cfa08d2))
546
+ * record the PR that landed specs/009 ([53bdae0](https://github.com/pedronastasi/manychat-ai-agent/commit/53bdae02d67c890e317cc14d27982774295ecf9b))
547
+ * remove tenant identity from the published repo ([e24b335](https://github.com/pedronastasi/manychat-ai-agent/commit/e24b335d4965dbef9daff91a6fbbd51d6c2c4715))
548
+ * require English in the repository, and no copy in source ([395bcda](https://github.com/pedronastasi/manychat-ai-agent/commit/395bcda2426455a478cbb9c34e54165269e10627))
549
+ * specify running a real model locally via Ollama ([2aeb100](https://github.com/pedronastasi/manychat-ai-agent/commit/2aeb100a5d284f5493c1dd008fe2d3df4a930475))
550
+ * specify running a real model locally via Ollama ([7fc04ca](https://github.com/pedronastasi/manychat-ai-agent/commit/7fc04ca43e31bf0f8026ca6abf4486f61ba5203d))
551
+ * specify tenant eval suites ([faff5af](https://github.com/pedronastasi/manychat-ai-agent/commit/faff5af592282125d3166974aa51997acf2adb0c))
552
+ * specify the agent before building it ([095e7a4](https://github.com/pedronastasi/manychat-ai-agent/commit/095e7a472b0940f8e93638a593a0190f9a5062b4))
553
+ * specify the release workflow and dependency updates ([d63cdca](https://github.com/pedronastasi/manychat-ai-agent/commit/d63cdca7d595b9684a5eb11d05c14d6ea789f62a))
554
+ * specify the release workflow and dependency updates ([3253c49](https://github.com/pedronastasi/manychat-ai-agent/commit/3253c49c85ead6ba41d3ef54660be6a7f45b30a2))
555
+ * specify the testing strategy ([8b39203](https://github.com/pedronastasi/manychat-ai-agent/commit/8b392032f858acce1c27cd07ae1c5ae11c8942ee))
556
+ * specify what a pull request must say ([beeb226](https://github.com/pedronastasi/manychat-ai-agent/commit/beeb226da1f5e9d3337265696e6c1af902d3e293))
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Pablo Nastasi
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.