@koda-sl/baker-cli 0.25.0-dev.f89d9a60 → 0.26.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 (74) hide show
  1. package/README.md +96 -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 -1
  5. package/dist/commands/ads/index.js.map +1 -1
  6. package/dist/commands/ads/meta/account.d.ts +11 -0
  7. package/dist/commands/ads/meta/account.d.ts.map +1 -0
  8. package/dist/commands/ads/meta/account.js +32 -0
  9. package/dist/commands/ads/meta/account.js.map +1 -0
  10. package/dist/commands/ads/meta/accounts.d.ts +20 -0
  11. package/dist/commands/ads/meta/accounts.d.ts.map +1 -0
  12. package/dist/commands/ads/meta/accounts.js +55 -0
  13. package/dist/commands/ads/meta/accounts.js.map +1 -0
  14. package/dist/commands/ads/meta/activities.d.ts +24 -0
  15. package/dist/commands/ads/meta/activities.d.ts.map +1 -0
  16. package/dist/commands/ads/meta/activities.js +44 -0
  17. package/dist/commands/ads/meta/activities.js.map +1 -0
  18. package/dist/commands/ads/meta/ads.d.ts +36 -0
  19. package/dist/commands/ads/meta/ads.d.ts.map +1 -0
  20. package/dist/commands/ads/meta/ads.js +57 -0
  21. package/dist/commands/ads/meta/ads.js.map +1 -0
  22. package/dist/commands/ads/meta/adsets.d.ts +32 -0
  23. package/dist/commands/ads/meta/adsets.d.ts.map +1 -0
  24. package/dist/commands/ads/meta/adsets.js +50 -0
  25. package/dist/commands/ads/meta/adsets.js.map +1 -0
  26. package/dist/commands/ads/meta/audiences.d.ts +20 -0
  27. package/dist/commands/ads/meta/audiences.d.ts.map +1 -0
  28. package/dist/commands/ads/meta/audiences.js +41 -0
  29. package/dist/commands/ads/meta/audiences.js.map +1 -0
  30. package/dist/commands/ads/meta/businesses.d.ts +12 -0
  31. package/dist/commands/ads/meta/businesses.d.ts.map +1 -0
  32. package/dist/commands/ads/meta/businesses.js +35 -0
  33. package/dist/commands/ads/meta/businesses.js.map +1 -0
  34. package/dist/commands/ads/meta/campaigns.d.ts +28 -0
  35. package/dist/commands/ads/meta/campaigns.d.ts.map +1 -0
  36. package/dist/commands/ads/meta/campaigns.js +51 -0
  37. package/dist/commands/ads/meta/campaigns.js.map +1 -0
  38. package/dist/commands/ads/meta/creatives.d.ts +24 -0
  39. package/dist/commands/ads/meta/creatives.d.ts.map +1 -0
  40. package/dist/commands/ads/meta/creatives.js +51 -0
  41. package/dist/commands/ads/meta/creatives.js.map +1 -0
  42. package/dist/commands/ads/meta/index.d.ts +17 -0
  43. package/dist/commands/ads/meta/index.d.ts.map +1 -0
  44. package/dist/commands/ads/meta/index.js +79 -0
  45. package/dist/commands/ads/meta/index.js.map +1 -0
  46. package/dist/commands/ads/meta/insights.d.ts +92 -0
  47. package/dist/commands/ads/meta/insights.d.ts.map +1 -0
  48. package/dist/commands/ads/meta/insights.js +260 -0
  49. package/dist/commands/ads/meta/insights.js.map +1 -0
  50. package/dist/commands/ads/meta/pixels.d.ts +33 -0
  51. package/dist/commands/ads/meta/pixels.d.ts.map +1 -0
  52. package/dist/commands/ads/meta/pixels.js +76 -0
  53. package/dist/commands/ads/meta/pixels.js.map +1 -0
  54. package/dist/commands/ads/meta/presets.d.ts +30 -0
  55. package/dist/commands/ads/meta/presets.d.ts.map +1 -0
  56. package/dist/commands/ads/meta/presets.js +86 -0
  57. package/dist/commands/ads/meta/presets.js.map +1 -0
  58. package/dist/commands/ads/meta/preview.d.ts +32 -0
  59. package/dist/commands/ads/meta/preview.d.ts.map +1 -0
  60. package/dist/commands/ads/meta/preview.js +90 -0
  61. package/dist/commands/ads/meta/preview.js.map +1 -0
  62. package/dist/commands/ads/meta/shared.d.ts +18 -0
  63. package/dist/commands/ads/meta/shared.d.ts.map +1 -0
  64. package/dist/commands/ads/meta/shared.js +86 -0
  65. package/dist/commands/ads/meta/shared.js.map +1 -0
  66. package/dist/env.d.ts +1 -0
  67. package/dist/env.d.ts.map +1 -1
  68. package/dist/env.js +1 -0
  69. package/dist/env.js.map +1 -1
  70. package/dist/error-handler.d.ts +1 -1
  71. package/dist/error-handler.d.ts.map +1 -1
  72. package/dist/error-handler.js +3 -0
  73. package/dist/error-handler.js.map +1 -1
  74. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preview.js","sourceRoot":"","sources":["../../../../src/commands/ads/meta/preview.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ export declare function handleMetaError(err: unknown): never;
2
+ /** Pull the default Meta ad account ID from `--account-id` arg or `BAKER_META_AD_ACCOUNT_ID` env. */
3
+ export declare function resolveAccountIdArg(args: Record<string, unknown>): string;
4
+ export declare function getDateRange(args: Record<string, unknown>): {
5
+ datePreset?: string;
6
+ since?: string;
7
+ until?: string;
8
+ };
9
+ export declare function todayIso(): string;
10
+ export declare function daysAgoIso(days: number): string;
11
+ export declare function csvOrJson(args: Record<string, unknown>): string;
12
+ /**
13
+ * Default to ACTIVE-only on listings — that's almost always what an AI agent or
14
+ * a human glance wants. Pass `--effective-status ACTIVE,PAUSED` to override, or
15
+ * `--all-statuses` to drop the filter entirely.
16
+ */
17
+ export declare function resolveEffectiveStatus(args: Record<string, unknown>): string | undefined;
18
+ //# sourceMappingURL=shared.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../src/commands/ads/meta/shared.ts"],"names":[],"mappings":"AAQA,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,KAAK,CAoBnD;AAID,qGAAqG;AACrG,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAwBzE;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAMnH;AAED,wBAAgB,QAAQ,IAAI,MAAM,CAEjC;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAE/D;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,SAAS,CASxF"}
@@ -0,0 +1,86 @@
1
+ import { ApiError } from "../../../client.js";
2
+ import { getEnv } from "../../../env.js";
3
+ import { handleConnectionError } from "../../../error-handler.js";
4
+ import { writeAdsJson } from "../output.js";
5
+ const DAY_MS = 86_400_000;
6
+ export function handleMetaError(err) {
7
+ if (err instanceof ApiError) {
8
+ if (err.code === "UNAUTHORIZED" || err.code === "NOT_FOUND") {
9
+ handleConnectionError("meta_ads", err.message);
10
+ }
11
+ const envelope = {
12
+ ok: false,
13
+ error: {
14
+ code: err.code,
15
+ message: err.message,
16
+ fix: { action: "reject", explanation: err.message },
17
+ retryable: err.code === "RATE_LIMITED" || err.code === "INTERNAL_ERROR",
18
+ },
19
+ };
20
+ writeAdsJson(envelope);
21
+ process.exit(1);
22
+ }
23
+ const message = err instanceof Error ? err.message : "Unexpected error";
24
+ writeAdsJson({ ok: false, error: { code: "NETWORK_ERROR", message } });
25
+ process.exit(1);
26
+ }
27
+ const ACCOUNT_ID_RE = /^(act_)?[0-9]+$/;
28
+ /** Pull the default Meta ad account ID from `--account-id` arg or `BAKER_META_AD_ACCOUNT_ID` env. */
29
+ export function resolveAccountIdArg(args) {
30
+ const fromArgs = args["account-id"];
31
+ const id = fromArgs || getEnv().BAKER_META_AD_ACCOUNT_ID;
32
+ if (!id) {
33
+ writeAdsJson({
34
+ ok: false,
35
+ error: {
36
+ code: "MISSING_ACCOUNT_ID",
37
+ message: "Pass --account-id or set BAKER_META_AD_ACCOUNT_ID. Run `baker ads meta accounts` to find IDs.",
38
+ },
39
+ });
40
+ process.exit(1);
41
+ }
42
+ if (!ACCOUNT_ID_RE.test(id)) {
43
+ writeAdsJson({
44
+ ok: false,
45
+ error: {
46
+ code: "INVALID_ACCOUNT_ID",
47
+ message: `Invalid account ID "${id}". Expected numeric ID, optionally prefixed with "act_".`,
48
+ },
49
+ });
50
+ process.exit(1);
51
+ }
52
+ return id.startsWith("act_") ? id : `act_${id}`;
53
+ }
54
+ export function getDateRange(args) {
55
+ const datePreset = args["date-preset"];
56
+ const since = args.since;
57
+ const until = args.until;
58
+ if (since && until)
59
+ return { since, until };
60
+ return { datePreset: datePreset ?? "last_7d" };
61
+ }
62
+ export function todayIso() {
63
+ return new Date().toISOString().slice(0, 10);
64
+ }
65
+ export function daysAgoIso(days) {
66
+ return new Date(Date.now() - days * DAY_MS).toISOString().slice(0, 10);
67
+ }
68
+ export function csvOrJson(args) {
69
+ return args.output ?? "json";
70
+ }
71
+ /**
72
+ * Default to ACTIVE-only on listings — that's almost always what an AI agent or
73
+ * a human glance wants. Pass `--effective-status ACTIVE,PAUSED` to override, or
74
+ * `--all-statuses` to drop the filter entirely.
75
+ */
76
+ export function resolveEffectiveStatus(args) {
77
+ if (args["all-statuses"]) {
78
+ return undefined;
79
+ }
80
+ const explicit = args["effective-status"];
81
+ if (explicit) {
82
+ return explicit;
83
+ }
84
+ return "ACTIVE";
85
+ }
86
+ //# sourceMappingURL=shared.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../../src/commands/ads/meta/shared.ts"],"names":[],"mappings":"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"}
package/dist/env.d.ts CHANGED
@@ -6,6 +6,7 @@ type Env = {
6
6
  BAKER_GA4_PROPERTY_ID?: string;
7
7
  BAKER_GSC_SITE_URL?: string;
8
8
  BAKER_X_ADS_ACCOUNT_ID?: string;
9
+ BAKER_META_AD_ACCOUNT_ID?: string;
9
10
  };
10
11
  export declare function getEnv(): Env;
11
12
  export declare function requireChatId(): string;
package/dist/env.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAGA,KAAK,GAAG,GAAG;IACT,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC,CAAC;AAIF,wBAAgB,MAAM,IAAI,GAAG,CAsB5B;AAED,wBAAgB,aAAa,IAAI,MAAM,CAQtC"}
1
+ {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAGA,KAAK,GAAG,GAAG;IACT,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,wBAAwB,CAAC,EAAE,MAAM,CAAC;CACnC,CAAC;AAIF,wBAAgB,MAAM,IAAI,GAAG,CAuB5B;AAED,wBAAgB,aAAa,IAAI,MAAM,CAQtC"}
package/dist/env.js CHANGED
@@ -18,6 +18,7 @@ export function getEnv() {
18
18
  .string()
19
19
  .regex(/^[a-z0-9]+$/, "X Ads account ID must be a base36 string")
20
20
  .optional(),
21
+ BAKER_META_AD_ACCOUNT_ID: z.string().optional(),
21
22
  },
22
23
  runtimeEnv: process.env,
23
24
  });
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;AAYxB,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;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
+ {"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,4 +1,4 @@
1
- type ConnectionPlatform = "google_ads" | "ga4" | "gsc" | "x_ads";
1
+ type ConnectionPlatform = "google_ads" | "ga4" | "gsc" | "x_ads" | "meta_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,CAAC;AAEjE;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,kBAAkB,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,KAAK,CAqCnG"}
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"}
@@ -9,18 +9,21 @@ export function handleConnectionError(platform, originalMessage) {
9
9
  ga4: "Google Analytics 4",
10
10
  gsc: "Google Search Console",
11
11
  x_ads: "X Ads",
12
+ meta_ads: "Meta Ads",
12
13
  }[platform];
13
14
  const alternative = {
14
15
  google_ads: "keywords-for-site or research advertisers",
15
16
  ga4: "lighthouse for page performance",
16
17
  gsc: "keywords-for-site or research keyword-gap",
17
18
  x_ads: "research advertisers",
19
+ meta_ads: "research advertisers or research keyword-ideas",
18
20
  }[platform];
19
21
  const code = {
20
22
  google_ads: "NO_GOOGLE_ADS_CONNECTION",
21
23
  ga4: "NO_GA4_CONNECTION",
22
24
  gsc: "NO_GSC_CONNECTION",
23
25
  x_ads: "NO_X_ADS_CONNECTION",
26
+ meta_ads: "NO_META_ADS_CONNECTION",
24
27
  }[platform];
25
28
  const envelope = {
26
29
  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;KACf,CAAC,QAAQ,CAAC,CAAC;IAEZ,MAAM,WAAW,GAAG;QAClB,UAAU,EAAE,2CAA2C;QACvD,GAAG,EAAE,iCAAiC;QACtC,GAAG,EAAE,2CAA2C;QAChD,KAAK,EAAE,sBAAsB;KAC9B,CAAC,QAAQ,CAAC,CAAC;IAEZ,MAAM,IAAI,GAAG;QACX,UAAU,EAAE,0BAA0B;QACtC,GAAG,EAAE,mBAAmB;QACxB,GAAG,EAAE,mBAAmB;QACxB,KAAK,EAAE,qBAAqB;KAC7B,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;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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@koda-sl/baker-cli",
3
- "version": "0.25.0-dev.f89d9a60",
3
+ "version": "0.26.0",
4
4
  "description": "AI-agent-first CLI for interacting with Baker",
5
5
  "type": "module",
6
6
  "bin": {