@koda-sl/baker-cli 0.26.0 → 0.27.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (98) hide show
  1. package/README.md +145 -0
  2. package/dist/cli.js +1 -1
  3. package/dist/commands/ads/index.d.ts.map +1 -1
  4. package/dist/commands/ads/index.js +7 -3
  5. package/dist/commands/ads/index.js.map +1 -1
  6. package/dist/commands/ads/linkedin/account.d.ts +20 -0
  7. package/dist/commands/ads/linkedin/account.d.ts.map +1 -0
  8. package/dist/commands/ads/linkedin/account.js +39 -0
  9. package/dist/commands/ads/linkedin/account.js.map +1 -0
  10. package/dist/commands/ads/linkedin/accounts.d.ts +20 -0
  11. package/dist/commands/ads/linkedin/accounts.d.ts.map +1 -0
  12. package/dist/commands/ads/linkedin/accounts.js +56 -0
  13. package/dist/commands/ads/linkedin/accounts.js.map +1 -0
  14. package/dist/commands/ads/linkedin/analytics.d.ts +84 -0
  15. package/dist/commands/ads/linkedin/analytics.d.ts.map +1 -0
  16. package/dist/commands/ads/linkedin/analytics.js +249 -0
  17. package/dist/commands/ads/linkedin/analytics.js.map +1 -0
  18. package/dist/commands/ads/linkedin/audience-size.d.ts +28 -0
  19. package/dist/commands/ads/linkedin/audience-size.d.ts.map +1 -0
  20. package/dist/commands/ads/linkedin/audience-size.js +75 -0
  21. package/dist/commands/ads/linkedin/audience-size.js.map +1 -0
  22. package/dist/commands/ads/linkedin/audit.d.ts +35 -0
  23. package/dist/commands/ads/linkedin/audit.d.ts.map +1 -0
  24. package/dist/commands/ads/linkedin/audit.js +136 -0
  25. package/dist/commands/ads/linkedin/audit.js.map +1 -0
  26. package/dist/commands/ads/linkedin/bid-pricing.d.ts +38 -0
  27. package/dist/commands/ads/linkedin/bid-pricing.d.ts.map +1 -0
  28. package/dist/commands/ads/linkedin/bid-pricing.js +76 -0
  29. package/dist/commands/ads/linkedin/bid-pricing.js.map +1 -0
  30. package/dist/commands/ads/linkedin/campaign-groups.d.ts +32 -0
  31. package/dist/commands/ads/linkedin/campaign-groups.d.ts.map +1 -0
  32. package/dist/commands/ads/linkedin/campaign-groups.js +50 -0
  33. package/dist/commands/ads/linkedin/campaign-groups.js.map +1 -0
  34. package/dist/commands/ads/linkedin/campaigns.d.ts +36 -0
  35. package/dist/commands/ads/linkedin/campaigns.d.ts.map +1 -0
  36. package/dist/commands/ads/linkedin/campaigns.js +57 -0
  37. package/dist/commands/ads/linkedin/campaigns.js.map +1 -0
  38. package/dist/commands/ads/linkedin/conversation.d.ts +36 -0
  39. package/dist/commands/ads/linkedin/conversation.d.ts.map +1 -0
  40. package/dist/commands/ads/linkedin/conversation.js +77 -0
  41. package/dist/commands/ads/linkedin/conversation.js.map +1 -0
  42. package/dist/commands/ads/linkedin/conversions.d.ts +2 -0
  43. package/dist/commands/ads/linkedin/conversions.d.ts.map +1 -0
  44. package/dist/commands/ads/linkedin/conversions.js +102 -0
  45. package/dist/commands/ads/linkedin/conversions.js.map +1 -0
  46. package/dist/commands/ads/linkedin/creatives.d.ts +36 -0
  47. package/dist/commands/ads/linkedin/creatives.d.ts.map +1 -0
  48. package/dist/commands/ads/linkedin/creatives.js +57 -0
  49. package/dist/commands/ads/linkedin/creatives.js.map +1 -0
  50. package/dist/commands/ads/linkedin/demographics.d.ts +40 -0
  51. package/dist/commands/ads/linkedin/demographics.d.ts.map +1 -0
  52. package/dist/commands/ads/linkedin/demographics.js +117 -0
  53. package/dist/commands/ads/linkedin/demographics.js.map +1 -0
  54. package/dist/commands/ads/linkedin/facets.d.ts +2 -0
  55. package/dist/commands/ads/linkedin/facets.d.ts.map +1 -0
  56. package/dist/commands/ads/linkedin/facets.js +95 -0
  57. package/dist/commands/ads/linkedin/facets.js.map +1 -0
  58. package/dist/commands/ads/linkedin/forecast.d.ts +50 -0
  59. package/dist/commands/ads/linkedin/forecast.d.ts.map +1 -0
  60. package/dist/commands/ads/linkedin/forecast.js +83 -0
  61. package/dist/commands/ads/linkedin/forecast.js.map +1 -0
  62. package/dist/commands/ads/linkedin/index.d.ts +19 -0
  63. package/dist/commands/ads/linkedin/index.d.ts.map +1 -0
  64. package/dist/commands/ads/linkedin/index.js +83 -0
  65. package/dist/commands/ads/linkedin/index.js.map +1 -0
  66. package/dist/commands/ads/linkedin/leads.d.ts +40 -0
  67. package/dist/commands/ads/linkedin/leads.d.ts.map +1 -0
  68. package/dist/commands/ads/linkedin/leads.js +75 -0
  69. package/dist/commands/ads/linkedin/leads.js.map +1 -0
  70. package/dist/commands/ads/linkedin/presets.d.ts +40 -0
  71. package/dist/commands/ads/linkedin/presets.d.ts.map +1 -0
  72. package/dist/commands/ads/linkedin/presets.js +193 -0
  73. package/dist/commands/ads/linkedin/presets.js.map +1 -0
  74. package/dist/commands/ads/linkedin/presets.test.d.ts +2 -0
  75. package/dist/commands/ads/linkedin/presets.test.d.ts.map +1 -0
  76. package/dist/commands/ads/linkedin/presets.test.js +98 -0
  77. package/dist/commands/ads/linkedin/presets.test.js.map +1 -0
  78. package/dist/commands/ads/linkedin/schemas.d.ts +2 -0
  79. package/dist/commands/ads/linkedin/schemas.d.ts.map +1 -0
  80. package/dist/commands/ads/linkedin/schemas.js +300 -0
  81. package/dist/commands/ads/linkedin/schemas.js.map +1 -0
  82. package/dist/commands/ads/linkedin/shared.d.ts +17 -0
  83. package/dist/commands/ads/linkedin/shared.d.ts.map +1 -0
  84. package/dist/commands/ads/linkedin/shared.js +116 -0
  85. package/dist/commands/ads/linkedin/shared.js.map +1 -0
  86. package/dist/commands/ads/linkedin/top-companies.d.ts +44 -0
  87. package/dist/commands/ads/linkedin/top-companies.d.ts.map +1 -0
  88. package/dist/commands/ads/linkedin/top-companies.js +86 -0
  89. package/dist/commands/ads/linkedin/top-companies.js.map +1 -0
  90. package/dist/env.d.ts +1 -0
  91. package/dist/env.d.ts.map +1 -1
  92. package/dist/env.js +4 -0
  93. package/dist/env.js.map +1 -1
  94. package/dist/error-handler.d.ts +1 -1
  95. package/dist/error-handler.d.ts.map +1 -1
  96. package/dist/error-handler.js +3 -0
  97. package/dist/error-handler.js.map +1 -1
  98. package/package.json +1 -1
package/dist/env.js CHANGED
@@ -19,6 +19,10 @@ export function getEnv() {
19
19
  .regex(/^[a-z0-9]+$/, "X Ads account ID must be a base36 string")
20
20
  .optional(),
21
21
  BAKER_META_AD_ACCOUNT_ID: z.string().optional(),
22
+ BAKER_LINKEDIN_AD_ACCOUNT_ID: z
23
+ .string()
24
+ .regex(/^\d+$/, "LinkedIn ad account ID must be the numeric portion of urn:li:sponsoredAccount:N")
25
+ .optional(),
22
26
  },
23
27
  runtimeEnv: process.env,
24
28
  });
package/dist/env.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"env.js","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAaxB,IAAI,MAAuB,CAAC;AAE5B,MAAM,UAAU,MAAM;IACpB,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,GAAG,SAAS,CAAC;YACjB,MAAM,EAAE;gBACN,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,+BAA+B,CAAC;gBAC5E,aAAa,EAAE,CAAC,CAAC,GAAG,CAAC,mCAAmC,CAAC;gBACzD,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;gBACpC,4BAA4B,EAAE,CAAC;qBAC5B,MAAM,EAAE;qBACR,KAAK,CAAC,UAAU,CAAC;qBACjB,QAAQ,EAAE;gBACb,qBAAqB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;gBAC5C,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;gBACzC,sBAAsB,EAAE,CAAC;qBACtB,MAAM,EAAE;qBACR,KAAK,CAAC,aAAa,EAAE,0CAA0C,CAAC;qBAChE,QAAQ,EAAE;gBACb,wBAAwB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;aAChD;YACD,UAAU,EAAE,OAAO,CAAC,GAAG;SACxB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;IACrB,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,iHAAiH,CAClH,CAAC;IACJ,CAAC;IACD,OAAO,GAAG,CAAC,aAAa,CAAC;AAC3B,CAAC"}
1
+ {"version":3,"file":"env.js","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAcxB,IAAI,MAAuB,CAAC;AAE5B,MAAM,UAAU,MAAM;IACpB,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,GAAG,SAAS,CAAC;YACjB,MAAM,EAAE;gBACN,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,+BAA+B,CAAC;gBAC5E,aAAa,EAAE,CAAC,CAAC,GAAG,CAAC,mCAAmC,CAAC;gBACzD,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;gBACpC,4BAA4B,EAAE,CAAC;qBAC5B,MAAM,EAAE;qBACR,KAAK,CAAC,UAAU,CAAC;qBACjB,QAAQ,EAAE;gBACb,qBAAqB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;gBAC5C,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;gBACzC,sBAAsB,EAAE,CAAC;qBACtB,MAAM,EAAE;qBACR,KAAK,CAAC,aAAa,EAAE,0CAA0C,CAAC;qBAChE,QAAQ,EAAE;gBACb,wBAAwB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;gBAC/C,4BAA4B,EAAE,CAAC;qBAC5B,MAAM,EAAE;qBACR,KAAK,CAAC,OAAO,EAAE,iFAAiF,CAAC;qBACjG,QAAQ,EAAE;aACd;YACD,UAAU,EAAE,OAAO,CAAC,GAAG;SACxB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;IACrB,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,iHAAiH,CAClH,CAAC;IACJ,CAAC;IACD,OAAO,GAAG,CAAC,aAAa,CAAC;AAC3B,CAAC"}
@@ -1,4 +1,4 @@
1
- type ConnectionPlatform = "google_ads" | "ga4" | "gsc" | "x_ads" | "meta_ads";
1
+ type ConnectionPlatform = "google_ads" | "ga4" | "gsc" | "x_ads" | "meta_ads" | "linkedin_ads";
2
2
  /**
3
3
  * Shared error handler for "No Connection" scenarios.
4
4
  * Provides a structured error for AI agents with a suggested fix and alternative commands.
@@ -1 +1 @@
1
- {"version":3,"file":"error-handler.d.ts","sourceRoot":"","sources":["../src/error-handler.ts"],"names":[],"mappings":"AAEA,KAAK,kBAAkB,GAAG,YAAY,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,GAAG,UAAU,CAAC;AAE9E;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,kBAAkB,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,KAAK,CAwCnG"}
1
+ {"version":3,"file":"error-handler.d.ts","sourceRoot":"","sources":["../src/error-handler.ts"],"names":[],"mappings":"AAEA,KAAK,kBAAkB,GAAG,YAAY,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,GAAG,UAAU,GAAG,cAAc,CAAC;AAE/F;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,kBAAkB,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,KAAK,CA2CnG"}
@@ -10,6 +10,7 @@ export function handleConnectionError(platform, originalMessage) {
10
10
  gsc: "Google Search Console",
11
11
  x_ads: "X Ads",
12
12
  meta_ads: "Meta Ads",
13
+ linkedin_ads: "LinkedIn Ads",
13
14
  }[platform];
14
15
  const alternative = {
15
16
  google_ads: "keywords-for-site or research advertisers",
@@ -17,6 +18,7 @@ export function handleConnectionError(platform, originalMessage) {
17
18
  gsc: "keywords-for-site or research keyword-gap",
18
19
  x_ads: "research advertisers",
19
20
  meta_ads: "research advertisers or research keyword-ideas",
21
+ linkedin_ads: "research advertisers (LinkedIn Ad Library) or research keyword-ideas",
20
22
  }[platform];
21
23
  const code = {
22
24
  google_ads: "NO_GOOGLE_ADS_CONNECTION",
@@ -24,6 +26,7 @@ export function handleConnectionError(platform, originalMessage) {
24
26
  gsc: "NO_GSC_CONNECTION",
25
27
  x_ads: "NO_X_ADS_CONNECTION",
26
28
  meta_ads: "NO_META_ADS_CONNECTION",
29
+ linkedin_ads: "NO_LINKEDIN_ADS_CONNECTION",
27
30
  }[platform];
28
31
  const envelope = {
29
32
  ok: false,
@@ -1 +1 @@
1
- {"version":3,"file":"error-handler.js","sourceRoot":"","sources":["../src/error-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAI7D;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,QAA4B,EAAE,eAAwB;IAC1F,MAAM,YAAY,GAAG;QACnB,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,oBAAoB;QACzB,GAAG,EAAE,uBAAuB;QAC5B,KAAK,EAAE,OAAO;QACd,QAAQ,EAAE,UAAU;KACrB,CAAC,QAAQ,CAAC,CAAC;IAEZ,MAAM,WAAW,GAAG;QAClB,UAAU,EAAE,2CAA2C;QACvD,GAAG,EAAE,iCAAiC;QACtC,GAAG,EAAE,2CAA2C;QAChD,KAAK,EAAE,sBAAsB;QAC7B,QAAQ,EAAE,gDAAgD;KAC3D,CAAC,QAAQ,CAAC,CAAC;IAEZ,MAAM,IAAI,GAAG;QACX,UAAU,EAAE,0BAA0B;QACtC,GAAG,EAAE,mBAAmB;QACxB,GAAG,EAAE,mBAAmB;QACxB,KAAK,EAAE,qBAAqB;QAC5B,QAAQ,EAAE,wBAAwB;KACnC,CAAC,QAAQ,CAAC,CAAC;IAEZ,MAAM,QAAQ,GAAG;QACf,EAAE,EAAE,KAAK;QACT,KAAK,EAAE;YACL,IAAI;YACJ,OAAO,EAAE,eAAe,IAAI,MAAM,YAAY,qCAAqC;YACnF,GAAG,EAAE;gBACH,MAAM,EAAE,cAAc;gBACtB,WAAW,EAAE,uGAAuG,YAAY,4DAA4D,YAAY,8PAA8P,WAAW,qCAAqC;aACvf;YACD,SAAS,EAAE,KAAK;SACjB;KACF,CAAC;IAEF,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAC5B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"error-handler.js","sourceRoot":"","sources":["../src/error-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAI7D;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,QAA4B,EAAE,eAAwB;IAC1F,MAAM,YAAY,GAAG;QACnB,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,oBAAoB;QACzB,GAAG,EAAE,uBAAuB;QAC5B,KAAK,EAAE,OAAO;QACd,QAAQ,EAAE,UAAU;QACpB,YAAY,EAAE,cAAc;KAC7B,CAAC,QAAQ,CAAC,CAAC;IAEZ,MAAM,WAAW,GAAG;QAClB,UAAU,EAAE,2CAA2C;QACvD,GAAG,EAAE,iCAAiC;QACtC,GAAG,EAAE,2CAA2C;QAChD,KAAK,EAAE,sBAAsB;QAC7B,QAAQ,EAAE,gDAAgD;QAC1D,YAAY,EAAE,sEAAsE;KACrF,CAAC,QAAQ,CAAC,CAAC;IAEZ,MAAM,IAAI,GAAG;QACX,UAAU,EAAE,0BAA0B;QACtC,GAAG,EAAE,mBAAmB;QACxB,GAAG,EAAE,mBAAmB;QACxB,KAAK,EAAE,qBAAqB;QAC5B,QAAQ,EAAE,wBAAwB;QAClC,YAAY,EAAE,4BAA4B;KAC3C,CAAC,QAAQ,CAAC,CAAC;IAEZ,MAAM,QAAQ,GAAG;QACf,EAAE,EAAE,KAAK;QACT,KAAK,EAAE;YACL,IAAI;YACJ,OAAO,EAAE,eAAe,IAAI,MAAM,YAAY,qCAAqC;YACnF,GAAG,EAAE;gBACH,MAAM,EAAE,cAAc;gBACtB,WAAW,EAAE,uGAAuG,YAAY,4DAA4D,YAAY,8PAA8P,WAAW,qCAAqC;aACvf;YACD,SAAS,EAAE,KAAK;SACjB;KACF,CAAC;IAEF,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAC5B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@koda-sl/baker-cli",
3
- "version": "0.26.0",
3
+ "version": "0.27.0",
4
4
  "description": "AI-agent-first CLI for interacting with Baker",
5
5
  "type": "module",
6
6
  "bin": {