@advertising-chat/mcp 0.11.0 → 0.17.3

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 (54) hide show
  1. package/README.md +21 -5
  2. package/bin/cli.js +1 -1
  3. package/bin/client.d.ts +1 -0
  4. package/bin/client.js +3 -0
  5. package/bin/client.js.map +1 -1
  6. package/bin/index.d.ts +1 -1
  7. package/bin/index.js +3 -1
  8. package/bin/index.js.map +1 -1
  9. package/bin/routeInventory.d.ts +8 -1
  10. package/bin/routeInventory.js +50 -4
  11. package/bin/routeInventory.js.map +1 -1
  12. package/bin/server.d.ts +1 -1
  13. package/bin/server.js +5 -5
  14. package/bin/tool.d.ts +22 -0
  15. package/bin/tool.js +24 -1
  16. package/bin/tool.js.map +1 -1
  17. package/bin/tools/account.js +1 -1
  18. package/bin/tools/account.js.map +1 -1
  19. package/bin/tools/attributes.js +49 -2
  20. package/bin/tools/attributes.js.map +1 -1
  21. package/bin/tools/campaigns.d.ts +12 -0
  22. package/bin/tools/campaigns.js +230 -0
  23. package/bin/tools/campaigns.js.map +1 -0
  24. package/bin/tools/decisions.js +52 -34
  25. package/bin/tools/decisions.js.map +1 -1
  26. package/bin/tools/docs.js +2 -2
  27. package/bin/tools/docs.js.map +1 -1
  28. package/bin/tools/index.d.ts +4 -0
  29. package/bin/tools/index.js +12 -0
  30. package/bin/tools/index.js.map +1 -1
  31. package/bin/tools/moments.js +27 -5
  32. package/bin/tools/moments.js.map +1 -1
  33. package/bin/tools/network.d.ts +5 -0
  34. package/bin/tools/network.js +99 -0
  35. package/bin/tools/network.js.map +1 -0
  36. package/bin/tools/offers.d.ts +1 -1
  37. package/bin/tools/offers.js +73 -26
  38. package/bin/tools/offers.js.map +1 -1
  39. package/bin/tools/results.d.ts +18 -0
  40. package/bin/tools/results.js +116 -0
  41. package/bin/tools/results.js.map +1 -0
  42. package/bin/tools/rules.js +137 -0
  43. package/bin/tools/rules.js.map +1 -1
  44. package/bin/tools/settings.d.ts +3 -0
  45. package/bin/tools/settings.js +54 -0
  46. package/bin/tools/settings.js.map +1 -0
  47. package/bin/tools/shared.d.ts +12 -1
  48. package/bin/tools/shared.js +67 -2
  49. package/bin/tools/shared.js.map +1 -1
  50. package/bin/tools/translation.js +4 -1
  51. package/bin/tools/translation.js.map +1 -1
  52. package/bin/version.d.ts +1 -1
  53. package/bin/version.js +1 -1
  54. package/package.json +3 -3
@@ -49,6 +49,103 @@ const CLEARABLE = [
49
49
  'dailyBudget',
50
50
  'adNetworkCode',
51
51
  ];
52
+ /** The offer card's words for a rule's fields, for approval sentences. */
53
+ const RULE_WORDS = {
54
+ name: 'the name',
55
+ creatives: 'the offers',
56
+ audience: 'who sees it',
57
+ exclusions: 'who does not',
58
+ adUnits: 'when (the moments)',
59
+ channels: 'where (the channels)',
60
+ frequency: 'how often',
61
+ schedule: 'the schedule',
62
+ priority: 'the priority',
63
+ fallback: 'whether it is a fallback',
64
+ limits: 'the limits',
65
+ dailyBudget: 'the daily pacing',
66
+ testMode: 'test mode',
67
+ creativeSelectionStrategy: 'the order of its offers',
68
+ orderType: 'its kind',
69
+ adNetworkCode: 'the ad network',
70
+ };
71
+ const CHANNEL_NAMES = {
72
+ rcs: 'RCS',
73
+ sms: 'SMS',
74
+ webchat: 'web chat',
75
+ };
76
+ function countWords(n, one) {
77
+ return n === 1 ? `one ${one}` : `${n} ${one}s`;
78
+ }
79
+ /**
80
+ * What one update field becomes, as a clause, where that is short and
81
+ * plain; undefined leaves the field to the "it also changes" list.
82
+ */
83
+ function ruleValueWords(key, value, before) {
84
+ switch (key) {
85
+ case 'name':
86
+ return `its name becomes ${(0, shared_1.quoted)(value, '')}`;
87
+ case 'adUnits':
88
+ case 'creatives': {
89
+ if (!Array.isArray(value))
90
+ return undefined;
91
+ const one = key === 'adUnits' ? 'moment' : 'offer';
92
+ const was = before?.[key];
93
+ if (Array.isArray(was) && was.length === value.length)
94
+ return value.length === 1 ? `its ${one} changes` : `its ${one}s change`;
95
+ const at = key === 'adUnits' ? 'at ' : '';
96
+ const instead = Array.isArray(was) ? ` instead of ${was.length}` : '';
97
+ return `it shows ${at}${countWords(value.length, one)}${instead}`;
98
+ }
99
+ case 'channels':
100
+ return Array.isArray(value) && value.length
101
+ ? `it shows only on ${(0, shared_1.listWords)(value.map(c => CHANNEL_NAMES[c] ?? String(c)))}`
102
+ : 'it shows on every channel';
103
+ case 'schedule': {
104
+ if (value === null)
105
+ return 'it runs at all times';
106
+ const text = (0, offer_rules_1.renderSchedule)(value).replace(/ \([^)]*\)$/, '');
107
+ return `it runs ${text.charAt(0).toLowerCase()}${text.slice(1)}`;
108
+ }
109
+ case 'frequency': {
110
+ if (value === null)
111
+ return 'it has no limit on how often it shows';
112
+ const words = (0, shared_1.frequencyWords)(value);
113
+ return words && `it shows ${words} to each customer`;
114
+ }
115
+ case 'priority': {
116
+ const label = offer_rules_1.PRIORITY_LABELS[value];
117
+ return label && `its priority becomes ${label}`;
118
+ }
119
+ case 'fallback':
120
+ return value ? 'it becomes a fallback' : 'it is no longer a fallback';
121
+ case 'testMode':
122
+ return value ? 'test mode turns on' : 'test mode turns off';
123
+ default:
124
+ return undefined;
125
+ }
126
+ }
127
+ /**
128
+ * The change an update makes, field by field: what each becomes where
129
+ * that is short and plain, then the rest by name ("who sees it").
130
+ */
131
+ function ruleChangeWords(args, before) {
132
+ const becomes = [];
133
+ const rest = [];
134
+ for (const [key, word] of Object.entries(RULE_WORDS)) {
135
+ if (args[key] === undefined)
136
+ continue;
137
+ const clause = ruleValueWords(key, args[key], before);
138
+ if (clause)
139
+ becomes.push(clause);
140
+ else if (!rest.includes(word))
141
+ rest.push(word);
142
+ }
143
+ if (!becomes.length)
144
+ return (0, shared_1.listWords)(rest);
145
+ return rest.length
146
+ ? `${(0, shared_1.listWords)(becomes)}; it also changes ${(0, shared_1.listWords)(rest)}`
147
+ : (0, shared_1.listWords)(becomes);
148
+ }
52
149
  /** A rule as the list shows it. */
53
150
  function ruleRow(r) {
54
151
  return {
@@ -64,12 +161,17 @@ function ruleRow(r) {
64
161
  summary: (0, shared_1.str)(r._description?.summary),
65
162
  };
66
163
  }
164
+ /** What the console calls a rule: an offer's audience, or the agent's network setting. */
165
+ function ruleKind(rule) {
166
+ return rule?.orderType === 'exchange' ? 'network setting' : 'audience';
167
+ }
67
168
  exports.listRules = (0, tool_1.defineTool)({
68
169
  name: 'list_rules',
69
170
  title: 'List rules',
70
171
  description: 'The org’s rules (the API calls them line items): each places offers at moments of one agent. Returns id, name, agent (application), enabled, priority, fallback, moments, offers, and the generated summary when there is one. Pass `application` to list one agent’s rules; read one rule in full with get_rule. Maps to GET /system/offer-manager/lineItem.',
71
172
  kind: 'read',
72
173
  roleFloor: 'viewer',
174
+ capability: 'offer-manager',
73
175
  input: {
74
176
  application: shared_1.application.optional(),
75
177
  enabled: zod_1.z.boolean().optional().describe('Only enabled, or only disabled.'),
@@ -86,6 +188,7 @@ exports.getRule = (0, tool_1.defineTool)({
86
188
  description: `One rule with every field: audience, exclusions, channels, schedule, frequency, limits, priority, its moments and offers, and the generated summary (\`_description\`). Field reference: ${shared_1.RULES_REFERENCE} Maps to GET /system/offer-manager/lineItem/{id}.`,
87
189
  kind: 'read',
88
190
  roleFloor: 'viewer',
191
+ capability: 'offer-manager',
89
192
  input: { id: (0, shared_1.id)('rule') },
90
193
  async run({ client }, { id: ruleId }) {
91
194
  return client.get(`${shared_1.OM}/lineItem/${(0, shared_1.enc)(ruleId)}`);
@@ -97,12 +200,27 @@ exports.createRule = (0, tool_1.defineTool)({
97
200
  description: 'Create a rule for one agent: it places offers at the agent’s moments for the customers and situations it describes. It is created disabled unless `enabled: true` is given, so nothing serves until someone turns it on; pass true only when the user asked to launch. `application` is fixed once created, and every moment must belong to it; offers are shared across the org. A house rule (the default) needs at least one offer and a priority (default 8, Normal). An exchange rule (`orderType: exchange`) has no offers, priority 12, and an optional adNetworkCode. The input is checked against the rule model before it is sent, and again by the server. Maps to POST /system/offer-manager/lineItem.',
98
201
  kind: 'write',
99
202
  roleFloor: 'editor',
203
+ capability: 'offer-manager',
100
204
  input: {
101
205
  application: shared_1.application,
102
206
  ...fields,
103
207
  enabled: fields.enabled.optional().describe('Default false.'),
104
208
  instructions,
105
209
  },
210
+ approval: args => {
211
+ const name = (0, shared_1.quoted)(args.name, '');
212
+ const offers = Array.isArray(args.creatives) ? args.creatives.length : 0;
213
+ const shows = args.orderType === 'exchange'
214
+ ? 'asks the network for an ad'
215
+ : `shows ${offers === 1 ? 'one offer' : `${offers} offers`}`;
216
+ const moments = args.adUnits.length;
217
+ const where = `at ${moments === 1 ? 'one moment' : `${moments} moments`}`;
218
+ const who = args.audience ? 'to the customers it describes' : 'to everyone';
219
+ const kind = ruleKind(args);
220
+ return args.enabled
221
+ ? `Create the ${kind} ${name} and publish it now: it ${shows} ${where} ${who}, from the next request.`
222
+ : `Create the ${kind} ${name}, turned off: it ${shows} ${where} ${who} once it is published.`;
223
+ },
106
224
  async run({ client }, args) {
107
225
  const { instructions: words, ...rest } = (0, shared_1.defined)(args);
108
226
  const body = { enabled: false, ...rest };
@@ -132,6 +250,7 @@ exports.updateRule = (0, tool_1.defineTool)({
132
250
  kind: 'write',
133
251
  roleFloor: 'editor',
134
252
  reader: 'get_rule',
253
+ capability: 'offer-manager',
135
254
  input: {
136
255
  id: (0, shared_1.id)('rule'),
137
256
  application: shared_1.applicationOfUpdate,
@@ -147,6 +266,22 @@ exports.updateRule = (0, tool_1.defineTool)({
147
266
  ...nullable,
148
267
  instructions,
149
268
  },
269
+ approval: (args, before) => {
270
+ const name = (0, shared_1.named)(ruleKind(before ?? args), before?.name ?? args.name);
271
+ const what = (0, shared_1.changedWords)(args, RULE_WORDS);
272
+ const change = ruleChangeWords(args, before);
273
+ const parts = [];
274
+ if (args.enabled === true)
275
+ parts.push(`Publish ${name}: it starts showing its offers from the next request.`);
276
+ if (args.enabled === false)
277
+ parts.push(`Pause ${name}: it stops showing its offers at once.`);
278
+ if (what.length) {
279
+ const live = args.enabled === true ||
280
+ (args.enabled === undefined && before?.enabled);
281
+ parts.push(`Change ${name}: ${change}.${live ? ' The change is live at once.' : ''}`);
282
+ }
283
+ return parts.join(' ') || `Change ${name}.`;
284
+ },
150
285
  async run({ client }, args) {
151
286
  const body = (0, shared_1.patchBody)(args, ['application', 'instructions']);
152
287
  const given = {};
@@ -166,7 +301,9 @@ exports.deleteRule = (0, tool_1.defineTool)({
166
301
  kind: 'destructive',
167
302
  roleFloor: 'editor',
168
303
  reader: 'get_rule',
304
+ capability: 'offer-manager',
169
305
  input: { id: (0, shared_1.id)('rule') },
306
+ approval: (_args, before) => `Delete ${(0, shared_1.named)(ruleKind(before), before?.name)} for good: its offers stop appearing through it at once.`,
170
307
  async run({ client }, { id: ruleId }) {
171
308
  return client.delete(`${shared_1.OM}/lineItem/${(0, shared_1.enc)(ruleId)}`);
172
309
  },
@@ -1 +1 @@
1
- {"version":3,"file":"rules.js","sourceRoot":"","sources":["../../src/tools/rules.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rules.js","sourceRoot":"","sources":["../../src/tools/rules.ts"],"names":[],"mappings":";;;AAqNA,0BAaC;AAlOD;;;;;GAKG;AACH,+DAOuC;AACvC,6BAAwB;AACxB,kCAAqC;AACrC,qCAsBkB;AAElB,MAAM,CAAC,GAAG,uBAAS,CAAC,KAAK,CAAC;AAE1B,MAAM,OAAO,GACX,sIAAsI;IACtI,mQAAmQ;IACnQ,6KAA6K;IAC7K,gHAAgH,wBAAe,EAAE,CAAC;AAEpI,wEAAwE;AACxE,MAAM,MAAM,GAAG;IACb,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,oCAAoC,CAAC;IAC3D,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CACzB,4EAA4E,CAC7E;IACD,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,QAAQ,CAC7B,wGAAwG,CACzG;IACD,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAC3B,gHAAgH,CACjH;IACD,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAC;IACvD,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAC3B,4EAA4E,OAAO,EAAE,CACtF;IACD,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ,CAC/B,gNAAgN,CACjN;IACD,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAC3B,8CAA8C,sBAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,yGAAyG,CAC3K;IACD,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAC3B,0MAA0M,CAC3M;IACD,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,QAAQ,CAC7B,sNAAsN,CACvN;IACD,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CACvB,kFAAkF,CACnF;IACD,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAC3B,kEAAkE,CACnE;IACD,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,0CAA0C,CAAC;IACzE,yBAAyB,EAAE,CAAC,CAAC,yBAAyB,CAAC,QAAQ,CAC7D,8GAA8G,CAC/G;IACD,WAAW,EAAE,CAAC,CAAC,WAAW,CAAC,QAAQ,CACjC,sEAAsE,CACvE;IACD,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,QAAQ,CAC7B,uFAAuF,CACxF;IACD,aAAa,EAAE,CAAC,CAAC,aAAa,CAAC,QAAQ,CACrC,sFAAsF,CACvF;CACF,CAAC;AAEF,MAAM,YAAY,GAAG,8BAAgB,CAAC,QAAQ,EAAE,CAAC,QAAQ,CACvD,0hBAA0hB,CAC3hB,CAAC;AAEF,2CAA2C;AAC3C,MAAM,SAAS,GAAG;IAChB,UAAU;IACV,YAAY;IACZ,UAAU;IACV,UAAU;IACV,WAAW;IACX,QAAQ;IACR,aAAa;IACb,eAAe;CACP,CAAC;AAEX,0EAA0E;AAC1E,MAAM,UAAU,GAA2B;IACzC,IAAI,EAAE,UAAU;IAChB,SAAS,EAAE,YAAY;IACvB,QAAQ,EAAE,aAAa;IACvB,UAAU,EAAE,cAAc;IAC1B,OAAO,EAAE,oBAAoB;IAC7B,QAAQ,EAAE,sBAAsB;IAChC,SAAS,EAAE,WAAW;IACtB,QAAQ,EAAE,cAAc;IACxB,QAAQ,EAAE,cAAc;IACxB,QAAQ,EAAE,0BAA0B;IACpC,MAAM,EAAE,YAAY;IACpB,WAAW,EAAE,kBAAkB;IAC/B,QAAQ,EAAE,WAAW;IACrB,yBAAyB,EAAE,yBAAyB;IACpD,SAAS,EAAE,UAAU;IACrB,aAAa,EAAE,gBAAgB;CAChC,CAAC;AAEF,MAAM,aAAa,GAA2B;IAC5C,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,OAAO,EAAE,UAAU;CACpB,CAAC;AAEF,SAAS,UAAU,CAAC,CAAS,EAAE,GAAW;IACxC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC;AACjD,CAAC;AAED;;;GAGG;AACH,SAAS,cAAc,CACrB,GAAW,EACX,KAAc,EACd,MAAuB;IAEvB,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,MAAM;YACT,OAAO,oBAAoB,IAAA,eAAM,EAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC;QACjD,KAAK,SAAS,CAAC;QACf,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;gBAAE,OAAO,SAAS,CAAC;YAC5C,MAAM,GAAG,GAAG,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;YACnD,MAAM,GAAG,GAAY,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM;gBACnD,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,OAAO,GAAG,UAAU,CAAC;YAC1E,MAAM,EAAE,GAAG,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1C,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACtE,OAAO,YAAY,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,EAAE,CAAC;QACpE,CAAC;QACD,KAAK,UAAU;YACb,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM;gBACzC,CAAC,CAAC,oBAAoB,IAAA,kBAAS,EAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;gBAChF,CAAC,CAAC,2BAA2B,CAAC;QAClC,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,IAAI,KAAK,KAAK,IAAI;gBAAE,OAAO,sBAAsB,CAAC;YAClD,MAAM,IAAI,GAAG,IAAA,4BAAc,EAAC,KAAc,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;YACvE,OAAO,WAAW,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,CAAC;QACD,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,IAAI,KAAK,KAAK,IAAI;gBAAE,OAAO,uCAAuC,CAAC;YACnE,MAAM,KAAK,GAAG,IAAA,uBAAc,EAAC,KAAK,CAAC,CAAC;YACpC,OAAO,KAAK,IAAI,YAAY,KAAK,mBAAmB,CAAC;QACvD,CAAC;QACD,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,MAAM,KAAK,GAAG,6BAAe,CAAC,KAAqC,CAAC,CAAC;YACrE,OAAO,KAAK,IAAI,wBAAwB,KAAK,EAAE,CAAC;QAClD,CAAC;QACD,KAAK,UAAU;YACb,OAAO,KAAK,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,4BAA4B,CAAC;QACxE,KAAK,UAAU;YACb,OAAO,KAAK,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,qBAAqB,CAAC;QAC9D;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,eAAe,CAAC,IAAS,EAAE,MAAuB;IACzD,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QACrD,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,SAAS;YAAE,SAAS;QACtC,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;QACtD,IAAI,MAAM;YAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aAC5B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjD,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,MAAM;QAAE,OAAO,IAAA,kBAAS,EAAC,IAAI,CAAC,CAAC;IAC5C,OAAO,IAAI,CAAC,MAAM;QAChB,CAAC,CAAC,GAAG,IAAA,kBAAS,EAAC,OAAO,CAAC,qBAAqB,IAAA,kBAAS,EAAC,IAAI,CAAC,EAAE;QAC7D,CAAC,CAAC,IAAA,kBAAS,EAAC,OAAO,CAAC,CAAC;AACzB,CAAC;AAED,mCAAmC;AACnC,SAAgB,OAAO,CAAC,CAAM;IAC5B,OAAO;QACL,EAAE,EAAE,IAAA,YAAG,EAAC,CAAC,CAAC,GAAG,CAAC,IAAI,IAAA,YAAG,EAAC,CAAC,CAAC,EAAE,CAAC;QAC3B,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,WAAW,EAAE,IAAA,cAAK,EAAC,CAAC,CAAC,WAAW,CAAC;QACjC,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,SAAS;QACjC,SAAS,EAAE,CAAC,CAAC,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;QAC9D,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,YAAG,CAAC,CAAC,CAAC,CAAC,SAAS;QAClE,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,YAAG,CAAC,CAAC,CAAC,CAAC,SAAS;QACrE,OAAO,EAAE,IAAA,YAAG,EAAC,CAAC,CAAC,YAAY,EAAE,OAAO,CAAC;KACtC,CAAC;AACJ,CAAC;AAED,0FAA0F;AAC1F,SAAS,QAAQ,CAAC,IAAqB;IACrC,OAAO,IAAI,EAAE,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,UAAU,CAAC;AACzE,CAAC;AAEY,QAAA,SAAS,GAAG,IAAA,iBAAU,EAAC;IAClC,IAAI,EAAE,YAAY;IAClB,KAAK,EAAE,YAAY;IACnB,WAAW,EACT,+VAA+V;IACjW,IAAI,EAAE,MAAM;IACZ,SAAS,EAAE,QAAQ;IACnB,UAAU,EAAE,eAAe;IAC3B,KAAK,EAAE;QACL,WAAW,EAAE,oBAAW,CAAC,QAAQ,EAAE;QACnC,OAAO,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;QAC3E,GAAG,kBAAS;KACb;IACD,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,IAAI;QACxB,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,WAAE,WAAW,EAAE,IAAA,gBAAO,EAAC,IAAI,CAAC,CAAC,CAAC;QAC/D,OAAO,IAAA,aAAI,EAAC,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;CACF,CAAC,CAAC;AAEU,QAAA,OAAO,GAAG,IAAA,iBAAU,EAAC;IAChC,IAAI,EAAE,UAAU;IAChB,KAAK,EAAE,YAAY;IACnB,WAAW,EAAE,4LAA4L,wBAAe,mDAAmD;IAC3Q,IAAI,EAAE,MAAM;IACZ,SAAS,EAAE,QAAQ;IACnB,UAAU,EAAE,eAAe;IAC3B,KAAK,EAAE,EAAE,EAAE,EAAE,IAAA,WAAE,EAAC,MAAM,CAAC,EAAE;IACzB,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE;QAClC,OAAO,MAAM,CAAC,GAAG,CAAC,GAAG,WAAE,aAAa,IAAA,YAAG,EAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACrD,CAAC;CACF,CAAC,CAAC;AAEU,QAAA,UAAU,GAAG,IAAA,iBAAU,EAAC;IACnC,IAAI,EAAE,aAAa;IACnB,KAAK,EAAE,eAAe;IACtB,WAAW,EACT,orBAAorB;IACtrB,IAAI,EAAE,OAAO;IACb,SAAS,EAAE,QAAQ;IACnB,UAAU,EAAE,eAAe;IAC3B,KAAK,EAAE;QACL,WAAW,EAAX,oBAAW;QACX,GAAG,MAAM;QACT,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAC7D,YAAY;KACb;IACD,QAAQ,EAAE,IAAI,CAAC,EAAE;QACf,MAAM,IAAI,GAAG,IAAA,eAAM,EAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACnC,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,MAAM,KAAK,GACT,IAAI,CAAC,SAAS,KAAK,UAAU;YAC3B,CAAC,CAAC,4BAA4B;YAC9B,CAAC,CAAC,SAAS,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,MAAM,SAAS,EAAE,CAAC;QACjE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QACpC,MAAM,KAAK,GAAG,MAAM,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO,UAAU,EAAE,CAAC;QAC1E,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC,aAAa,CAAC;QAC5E,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC,OAAO;YACjB,CAAC,CAAC,cAAc,IAAI,IAAI,IAAI,2BAA2B,KAAK,IAAI,KAAK,IAAI,GAAG,0BAA0B;YACtG,CAAC,CAAC,cAAc,IAAI,IAAI,IAAI,oBAAoB,KAAK,IAAI,KAAK,IAAI,GAAG,wBAAwB,CAAC;IAClG,CAAC;IACD,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,IAAI;QACxB,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,GAAG,IAAA,gBAAO,EAAC,IAAI,CAAQ,CAAC;QAC9D,MAAM,IAAI,GAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,CAAC;QAC9C,IAAI,IAAI,CAAC,SAAS,KAAK,UAAU,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;YAC9D,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QACpB,MAAM,MAAM,GAAG,uBAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM,CAAC,OAAO;YACjB,MAAM,IAAI,uBAAc,CACtB,gEAAgE,IAAA,eAAM,EAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACvF,CAAC;QACJ,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,WAAE,WAAW,EAAE;YACnC,GAAG,MAAM,CAAC,IAAI;YACd,GAAG,CAAC,KAAK,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;SACtC,CAAC,CAAC;IACL,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CACjC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACjB,CAAC;IACD,MAAM,CAAC,CAAC,CAAC;SACN,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,EAAE;SACV,QAAQ,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,sBAAsB,CAAC;CAC5D,CAAC,CAKH,CAAC;AAEW,QAAA,UAAU,GAAG,IAAA,iBAAU,EAAC;IACnC,IAAI,EAAE,aAAa;IACnB,KAAK,EAAE,eAAe;IACtB,WAAW,EAAE,qbAAqb,wBAAe,qDAAqD;IACtgB,IAAI,EAAE,OAAO;IACb,SAAS,EAAE,QAAQ;IACnB,MAAM,EAAE,UAAU;IAClB,UAAU,EAAE,eAAe;IAC3B,KAAK,EAAE;QACL,EAAE,EAAE,IAAA,WAAE,EAAC,MAAM,CAAC;QACd,WAAW,EAAE,4BAAmB;QAChC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE;QAC5B,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE;QAClC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE;QAClC,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,yBAAyB,EAAE,MAAM,CAAC,yBAAyB;QAC3D,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,GAAG,QAAQ;QACX,YAAY;KACb;IACD,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;QACzB,MAAM,IAAI,GAAG,IAAA,cAAK,EAAC,QAAQ,CAAC,MAAM,IAAI,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;QACxE,MAAM,IAAI,GAAG,IAAA,qBAAY,EAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC7C,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI;YACvB,KAAK,CAAC,IAAI,CACR,WAAW,IAAI,uDAAuD,CACvE,CAAC;QACJ,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK;YACxB,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,wCAAwC,CAAC,CAAC;QACpE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,IAAI,GACR,IAAI,CAAC,OAAO,KAAK,IAAI;gBACrB,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,MAAM,EAAE,OAAO,CAAC,CAAC;YAClD,KAAK,CAAC,IAAI,CACR,UAAU,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC,EAAE,EAAE,CAC1E,CAAC;QACJ,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,UAAU,IAAI,GAAG,CAAC;IAC9C,CAAC;IACD,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,IAAI;QACxB,MAAM,IAAI,GAAG,IAAA,kBAAS,EAAC,IAAI,EAAE,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC,CAAC;QAC9D,MAAM,KAAK,GAAQ,EAAE,CAAC;QACtB,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;YACvC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,cAAc;gBAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,wBAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM,CAAC,OAAO;YACjB,MAAM,IAAI,uBAAc,CACtB,kEAAkE,IAAA,eAAM,EAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACzF,CAAC;QACJ,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,WAAE,aAAa,IAAA,YAAG,EAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAC9D,CAAC;CACF,CAAC,CAAC;AAEU,QAAA,UAAU,GAAG,IAAA,iBAAU,EAAC;IACnC,IAAI,EAAE,aAAa;IACnB,KAAK,EAAE,eAAe;IACtB,WAAW,EACT,iMAAiM;IACnM,IAAI,EAAE,aAAa;IACnB,SAAS,EAAE,QAAQ;IACnB,MAAM,EAAE,UAAU;IAClB,UAAU,EAAE,eAAe;IAC3B,KAAK,EAAE,EAAE,EAAE,EAAE,IAAA,WAAE,EAAC,MAAM,CAAC,EAAE;IACzB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAC1B,UAAU,IAAA,cAAK,EAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,0DAA0D;IAC3G,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE;QAClC,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,WAAE,aAAa,IAAA,YAAG,EAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACxD,CAAC;CACF,CAAC,CAAC;AAEU,QAAA,SAAS,GAAG;IACvB,iBAAS;IACT,eAAO;IACP,kBAAU;IACV,kBAAU;IACV,kBAAU;CACX,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare const getOfferLimit: import("../tool").AnyTool;
2
+ export declare const setOfferLimit: import("../tool").AnyTool;
3
+ export declare const settingsTools: import("../tool").AnyTool[];
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.settingsTools = exports.setOfferLimit = exports.getOfferLimit = void 0;
4
+ /**
5
+ * The workspace's Offer Manager settings: the offer limit, how many of the
6
+ * brand's offers one customer may see from each agent in a period, across
7
+ * that agent's moments and rules (customer ids are per agent). A rule's own How often is its `frequency`.
8
+ */
9
+ const offer_rules_1 = require("@advertising-chat/offer-rules");
10
+ const tool_1 = require("../tool");
11
+ const shared_1 = require("./shared");
12
+ /** The rendered limit as a clause: `no customer sees more than …`. */
13
+ function clause(limit) {
14
+ const said = (0, offer_rules_1.renderOfferLimit)(limit);
15
+ return said.charAt(0).toLowerCase() + said.slice(1);
16
+ }
17
+ function withSentence(s) {
18
+ return { ...s, says: (0, offer_rules_1.renderOfferLimit)(s.offerLimit) };
19
+ }
20
+ exports.getOfferLimit = (0, tool_1.defineTool)({
21
+ name: 'get_offer_limit',
22
+ title: 'Get the offer limit',
23
+ description: 'The workspace’s offer limit: no customer sees more than `times` of the brand’s offers in any rolling `interval` (milliseconds), counted over every offer the customer was shown by the agent. `offerLimit` is null when there is no limit; `says` states it in a sentence. Ads from the network do not count and are not limited. A rule’s own How often is its `frequency`. Maps to GET /system/offer-manager/settings.',
24
+ kind: 'read',
25
+ roleFloor: 'viewer',
26
+ capability: 'offer-manager',
27
+ input: {},
28
+ async run({ client }) {
29
+ return withSentence(await client.get(`${shared_1.OM}/settings`));
30
+ },
31
+ });
32
+ exports.setOfferLimit = (0, tool_1.defineTool)({
33
+ name: 'set_offer_limit',
34
+ title: 'Set the offer limit',
35
+ description: 'Set or remove the workspace’s offer limit: no customer sees more than `times` of the brand’s offers in any rolling `interval`. It applies at once to every agent, counted per agent: a customer at the limit with one agent gets no further offer from that agent (ads from the network still may appear). Pass `offerLimit: null` to remove it. Use get_offer_limit first so you change what is there. Maps to PUT /system/offer-manager/settings.',
36
+ kind: 'write',
37
+ roleFloor: 'editor',
38
+ capability: 'offer-manager',
39
+ reader: 'get_offer_limit',
40
+ input: { offerLimit: shared_1.offerLimit.nullable() },
41
+ approval: ({ offerLimit: limit }, before) => {
42
+ const had = before?.offerLimit ? clause(before.offerLimit) : '';
43
+ if (!limit)
44
+ return had
45
+ ? `Remove the offer limit (now ${had}): customers can see any number of offers, paced only by each rule's How often.`
46
+ : "Remove the offer limit: customers can see any number of offers, paced only by each rule's How often.";
47
+ return `Set the offer limit: ${clause(limit)}. It counts each agent separately and applies at once; ads from the network are not limited.`;
48
+ },
49
+ async run({ client }, { offerLimit: limit }) {
50
+ return withSentence(await client.put(`${shared_1.OM}/settings`, { offerLimit: limit }));
51
+ },
52
+ });
53
+ exports.settingsTools = [exports.getOfferLimit, exports.setOfferLimit];
54
+ //# sourceMappingURL=settings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/tools/settings.ts"],"names":[],"mappings":";;;AAAA;;;;GAIG;AACH,+DAAiE;AACjE,kCAAqC;AACrC,qCAA0C;AAM1C,sEAAsE;AACtE,SAAS,MAAM,CAAC,KAA6B;IAC3C,MAAM,IAAI,GAAG,IAAA,8BAAgB,EAAC,KAAK,CAAC,CAAC;IACrC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,YAAY,CAAC,CAAW;IAC/B,OAAO,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,IAAA,8BAAgB,EAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC;AACxD,CAAC;AAEY,QAAA,aAAa,GAAG,IAAA,iBAAU,EAAC;IACtC,IAAI,EAAE,iBAAiB;IACvB,KAAK,EAAE,qBAAqB;IAC5B,WAAW,EACT,0ZAA0Z;IAC5Z,IAAI,EAAE,MAAM;IACZ,SAAS,EAAE,QAAQ;IACnB,UAAU,EAAE,eAAe;IAC3B,KAAK,EAAE,EAAE;IACT,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE;QAClB,OAAO,YAAY,CAAC,MAAM,MAAM,CAAC,GAAG,CAAW,GAAG,WAAE,WAAW,CAAC,CAAC,CAAC;IACpE,CAAC;CACF,CAAC,CAAC;AAEU,QAAA,aAAa,GAAG,IAAA,iBAAU,EAAC;IACtC,IAAI,EAAE,iBAAiB;IACvB,KAAK,EAAE,qBAAqB;IAC5B,WAAW,EACT,qbAAqb;IACvb,IAAI,EAAE,OAAO;IACb,SAAS,EAAE,QAAQ;IACnB,UAAU,EAAE,eAAe;IAC3B,MAAM,EAAE,iBAAiB;IACzB,KAAK,EAAE,EAAE,UAAU,EAAE,mBAAU,CAAC,QAAQ,EAAE,EAAE;IAC5C,QAAQ,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE;QAC1C,MAAM,GAAG,GAAG,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAChE,IAAI,CAAC,KAAK;YACR,OAAO,GAAG;gBACR,CAAC,CAAC,+BAA+B,GAAG,iFAAiF;gBACrH,CAAC,CAAC,sGAAsG,CAAC;QAC7G,OAAO,wBAAwB,MAAM,CAAC,KAAK,CAAC,8FAA8F,CAAC;IAC7I,CAAC;IACD,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE;QACzC,OAAO,YAAY,CACjB,MAAM,MAAM,CAAC,GAAG,CAAW,GAAG,WAAE,WAAW,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CACpE,CAAC;IACJ,CAAC;CACF,CAAC,CAAC;AAEU,QAAA,aAAa,GAAG,CAAC,qBAAa,EAAE,qBAAa,CAAC,CAAC"}
@@ -15,7 +15,7 @@ export declare const application: z.ZodString;
15
15
  * the agent a change is attributed to is always the resource's own.
16
16
  */
17
17
  export declare const applicationOfUpdate: z.ZodString;
18
- export declare const frequency: z.ZodObject<{
18
+ export declare const offerLimit: z.ZodObject<{
19
19
  times: z.ZodNumber;
20
20
  interval: z.ZodNumber;
21
21
  }, z.core.$strict>;
@@ -37,3 +37,14 @@ export declare function patchBody(args: Doc, keep?: string[]): Doc;
37
37
  /** Issues of a failed zod parse, one line each. */
38
38
  export declare function issues(error: z.ZodError): string;
39
39
  export declare const enc: typeof encodeURIComponent;
40
+ /** `the offer “Spring promo”`, or `this offer` without a name. */
41
+ export declare function named(kind: string, name: unknown): string;
42
+ /** `“Spring promo”`, or the fallback without a name. */
43
+ export declare function quoted(name: unknown, fallback: string): string;
44
+ /** `a`, `a and b`, `a, b, and c`. */
45
+ export declare function listWords(items: string[]): string;
46
+ export declare function plural(n: number, one: string, many?: string): string;
47
+ /** The words for the fields an update gives, in the order of `words`. */
48
+ export declare function changedWords(args: Doc, words: Record<string, string>): string[];
49
+ /** `{ times: 2, interval: 604800000 }` as `at most twice per week`. */
50
+ export declare function frequencyWords(f: unknown): string | undefined;
@@ -1,12 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.enc = exports.str = exports.listShape = exports.frequency = exports.applicationOfUpdate = exports.application = exports.id = exports.ToolInputError = exports.RULES_REFERENCE = exports.OM = void 0;
3
+ exports.enc = exports.str = exports.listShape = exports.offerLimit = exports.applicationOfUpdate = exports.application = exports.id = exports.ToolInputError = exports.RULES_REFERENCE = exports.OM = void 0;
4
4
  exports.rows = rows;
5
5
  exports.refId = refId;
6
6
  exports.ref = ref;
7
7
  exports.defined = defined;
8
8
  exports.patchBody = patchBody;
9
9
  exports.issues = issues;
10
+ exports.named = named;
11
+ exports.quoted = quoted;
12
+ exports.listWords = listWords;
13
+ exports.plural = plural;
14
+ exports.changedWords = changedWords;
15
+ exports.frequencyWords = frequencyWords;
10
16
  /**
11
17
  * Shapes and helpers shared by the tool modules.
12
18
  */
@@ -32,7 +38,7 @@ exports.application = offer_rules_1.ObjectId.describe('The agent (application) i
32
38
  * the agent a change is attributed to is always the resource's own.
33
39
  */
34
40
  exports.applicationOfUpdate = offer_rules_1.ObjectId.describe('The agent (application) the record belongs to. It cannot change: the server rejects a different agent.');
35
- exports.frequency = offer_rules_1.Frequency.describe('At most `times` showings to one customer in any rolling `interval` of milliseconds (60000 to 7776000000, 90 days). E.g. { times: 2, interval: 604800000 } is twice a week.');
41
+ exports.offerLimit = offer_rules_1.Frequency.describe('At most `times` of the brand’s offers (1 to 20) to one customer in any rolling `interval` of milliseconds (60000 to 7776000000, 90 days). E.g. { times: 3, interval: 86400000 } is three offers a day.');
36
42
  exports.listShape = {
37
43
  skip: zod_1.z
38
44
  .number()
@@ -103,4 +109,63 @@ function issues(error) {
103
109
  .join('\n');
104
110
  }
105
111
  exports.enc = encodeURIComponent;
112
+ // ---------------------------------------------------------------------------
113
+ // Approval sentences (ToolDef.approval): plain words, no ids or field names.
114
+ /** `the offer “Spring promo”`, or `this offer` without a name. */
115
+ function named(kind, name) {
116
+ return typeof name === 'string' && name.trim()
117
+ ? `the ${kind} “${name.trim()}”`
118
+ : `this ${kind}`;
119
+ }
120
+ /** `“Spring promo”`, or the fallback without a name. */
121
+ function quoted(name, fallback) {
122
+ return typeof name === 'string' && name.trim()
123
+ ? `“${name.trim()}”`
124
+ : fallback;
125
+ }
126
+ /** `a`, `a and b`, `a, b, and c`. */
127
+ function listWords(items) {
128
+ if (items.length <= 1)
129
+ return items.join('');
130
+ if (items.length === 2)
131
+ return `${items[0]} and ${items[1]}`;
132
+ return `${items.slice(0, -1).join(', ')}, and ${items[items.length - 1]}`;
133
+ }
134
+ function plural(n, one, many = `${one}s`) {
135
+ return `${n} ${n === 1 ? one : many}`;
136
+ }
137
+ /** The words for the fields an update gives, in the order of `words`. */
138
+ function changedWords(args, words) {
139
+ const out = [];
140
+ for (const [key, word] of Object.entries(words))
141
+ if (args[key] !== undefined && !out.includes(word))
142
+ out.push(word);
143
+ return out;
144
+ }
145
+ const MINUTE = 60_000;
146
+ const HOUR = 60 * MINUTE;
147
+ const DAY = 24 * HOUR;
148
+ /** `{ times: 2, interval: 604800000 }` as `at most twice per week`. */
149
+ function frequencyWords(f) {
150
+ if (!f || typeof f !== 'object')
151
+ return undefined;
152
+ const { times, interval } = f;
153
+ if (typeof times !== 'number' || typeof interval !== 'number')
154
+ return undefined;
155
+ const count = times === 1 ? 'once' : times === 2 ? 'twice' : `${times} times`;
156
+ const units = [
157
+ [30 * DAY, 'month'],
158
+ [7 * DAY, 'week'],
159
+ [DAY, 'day'],
160
+ [HOUR, 'hour'],
161
+ [MINUTE, 'minute'],
162
+ ];
163
+ for (const [ms, unit] of units) {
164
+ if (interval % ms === 0) {
165
+ const n = interval / ms;
166
+ return `at most ${count} per ${n === 1 ? unit : `${n} ${unit}s`}`;
167
+ }
168
+ }
169
+ return `at most ${count} per ${Math.round(interval / MINUTE)} minutes`;
170
+ }
106
171
  //# sourceMappingURL=shared.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/tools/shared.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/tools/shared.ts"],"names":[],"mappings":"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"}
@@ -27,9 +27,10 @@ exports.CARD_FIELDS = [
27
27
  exports.translateRuleText = (0, tool_1.defineTool)({
28
28
  name: 'translate_rule_text',
29
29
  title: 'Translate an instruction into a rule change',
30
- description: 'Turn what the user wrote in plain language into a change to one rule, checked against the agent’s catalog, moments, and the org’s offers, and read back as the offer card. Give the agent, the card field being edited (target), the instruction in the user’s words, and the rule: ruleId for a saved rule, or rule for a draft with unsaved changes. Nothing is saved. The outcome is one of: ok, with policy (fields to set), clear (fields to remove), readBack (the card after the change and which fields changed), and warnings (data the agent does not send yet, has not documented, or sends rarely): show the user the read-back and the warnings, preview_rule_impact the result, and save with update_rule (clear fields as null) or create_rule once they agree, passing instructions with the user’s words for each field the change set or cleared. clarify, with a question (message) and choices: ask the user, then translate again with the same instruction and clarifications listing every question asked so far with its answer, in order; record the instruction as the user’s words with the answers in parentheses. needs_data, when the agent does not send what the rule needs: relay the message and the note drafted for the agent’s team; add_attribute or create_moment registers what it proposes, and a rule on it matches no one until the agent sends it. unsupported, when the rule model cannot express it: say so; offer the nearest rule only if one is given, and say how it differs. If the user takes it, save it with instructions null for the fields it changed: their words describe a rule it does not quite write. Each call counts toward the org’s daily copilot usage. Maps to POST /system/copilot/translate.',
30
+ description: 'Turn what the user wrote in plain language into a change to one rule, checked against the agent’s catalog, moments, and the org’s offers, and read back as the offer card. Give the agent, the card field being edited (target), the instruction in the user’s words, and the rule: ruleId for a saved rule, or rule for a draft with unsaved changes. Nothing is saved. The outcome is one of: ok, with policy (fields to set), clear (fields to remove), readBack (the card after the change and which fields changed), and warnings (data the agent does not send yet, has not documented, or sends rarely): show the user the read-back and the warnings, preview_rule_impact the result, and save with update_rule (clear fields as null) or create_rule once they agree, passing instructions with the user’s words for each field the change set or cleared. clarify, with a question (message) and choices: ask the user, then translate again with the same instruction and clarifications listing every question asked so far with its answer, in order; record the instruction as the user’s words with the answers in parentheses. needs_data, when the agent does not send what the rule needs: relay the message and the note drafted for the agent’s team; add_attribute or create_moment registers what it proposes, and a rule on it matches no one until the agent sends it. unsupported, when the rule model cannot express it: say so; offer the nearest rule only if one is given, and say how it differs. If the user takes it, save it with instructions null for the fields it changed: their words describe a rule it does not quite write. Each call counts toward the workspace’s daily Assistant usage. Maps to POST /system/copilot/translate.',
31
31
  kind: 'read',
32
32
  roleFloor: 'viewer',
33
+ capability: 'offer-manager',
33
34
  input: {
34
35
  application: shared_1.application,
35
36
  target: zod_1.z
@@ -90,6 +91,7 @@ exports.previewRuleImpact = (0, tool_1.defineTool)({
90
91
  description: 'Estimate how much recent traffic a draft rule would match, before saving it: the percentage of a sample of up to 5,000 requests per moment from the last 7 days, the estimated number of distinct customers, why the rest did not match, and flags with notes (small or empty sample, nothing or everything matched, approximations). Read the notes back to the user; "no one matched" or "everyone matched" usually means the instruction was misread or the data is missing. A sample_building flag means some moments had no sample yet and were left out while one is taken; say so, and preview again in about a minute for the full estimate. Send the draft as it stands; only the agent and moments are required. Maps to POST /system/offer-manager/preview.',
91
92
  kind: 'read',
92
93
  roleFloor: 'viewer',
94
+ capability: 'offer-manager',
93
95
  input: {
94
96
  application: shared_1.application,
95
97
  adUnits: R.adUnits.describe('The moment ids the draft applies to.'),
@@ -123,6 +125,7 @@ exports.describeRule = (0, tool_1.defineTool)({
123
125
  description: 'A saved rule in plain language: its offer card, one sentence per field (agent, offer, who sees it, when, where, not shown to, how often, schedule, priority, status), written from the rule itself with its agent, moment, offer, and attribute names, plus a policy hash that changes when what the rule does changes. Maps to GET /system/offer-manager/describe/{id}.',
124
126
  kind: 'read',
125
127
  roleFloor: 'viewer',
128
+ capability: 'offer-manager',
126
129
  input: { id: (0, shared_1.id)('rule') },
127
130
  async run({ client }, { id: ruleId }) {
128
131
  return client.get(`${shared_1.OM}/describe/${(0, shared_1.enc)(ruleId)}`);
@@ -1 +1 @@
1
- {"version":3,"file":"translation.js","sourceRoot":"","sources":["../../src/tools/translation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"translation.js","sourceRoot":"","sources":["../../src/tools/translation.ts"],"names":[],"mappings":"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"}
package/bin/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
1
  /** The package version, reported to MCP hosts. Kept in step with package.json (tested). */
2
- export declare const VERSION = "0.11.0";
2
+ export declare const VERSION = "0.17.3";
package/bin/version.js CHANGED
@@ -2,5 +2,5 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.VERSION = void 0;
4
4
  /** The package version, reported to MCP hosts. Kept in step with package.json (tested). */
5
- exports.VERSION = '0.11.0';
5
+ exports.VERSION = '0.17.3';
6
6
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@advertising-chat/mcp",
3
- "version": "0.11.0",
3
+ "version": "0.17.3",
4
4
  "description": "MCP server for Advertising.chat: manage Offer Manager (agents, moments, rules, offers, decisions) with your own login, or serve in-chat ads with an API key",
5
5
  "license": "MIT",
6
6
  "author": "Advertising.chat",
@@ -37,8 +37,8 @@
37
37
  "node": ">=18"
38
38
  },
39
39
  "dependencies": {
40
- "@advertising-chat/offer-rules": "^2.3.0",
41
- "@advertising-chat/sdk": "^0.11.0",
40
+ "@advertising-chat/offer-rules": "^2.6.0",
41
+ "@advertising-chat/sdk": "^0.17.3",
42
42
  "@modelcontextprotocol/sdk": "^1.32.2",
43
43
  "ajv": "^8.17.1",
44
44
  "ajv-formats": "^3.0.1",