@soku-ai/cli 0.1.0-alpha.0 → 0.1.0-alpha.10

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 (92) hide show
  1. package/dist/auth/device.d.ts +9 -0
  2. package/dist/auth/device.d.ts.map +1 -1
  3. package/dist/auth/device.js +6 -1
  4. package/dist/auth/device.js.map +1 -1
  5. package/dist/commands/ads.d.ts +32 -0
  6. package/dist/commands/ads.d.ts.map +1 -0
  7. package/dist/commands/ads.js +752 -0
  8. package/dist/commands/ads.js.map +1 -0
  9. package/dist/commands/auth.d.ts +2 -0
  10. package/dist/commands/auth.d.ts.map +1 -1
  11. package/dist/commands/auth.js +28 -7
  12. package/dist/commands/auth.js.map +1 -1
  13. package/dist/commands/automation.d.ts +80 -0
  14. package/dist/commands/automation.d.ts.map +1 -0
  15. package/dist/commands/automation.js +213 -0
  16. package/dist/commands/automation.js.map +1 -0
  17. package/dist/commands/brand-skill.d.ts +72 -0
  18. package/dist/commands/brand-skill.d.ts.map +1 -0
  19. package/dist/commands/brand-skill.js +351 -0
  20. package/dist/commands/brand-skill.js.map +1 -0
  21. package/dist/commands/brand.d.ts.map +1 -1
  22. package/dist/commands/brand.js +59 -1
  23. package/dist/commands/brand.js.map +1 -1
  24. package/dist/commands/call.d.ts.map +1 -1
  25. package/dist/commands/call.js +6 -3
  26. package/dist/commands/call.js.map +1 -1
  27. package/dist/commands/context.d.ts +23 -0
  28. package/dist/commands/context.d.ts.map +1 -0
  29. package/dist/commands/context.js +291 -0
  30. package/dist/commands/context.js.map +1 -0
  31. package/dist/commands/files.d.ts +10 -0
  32. package/dist/commands/files.d.ts.map +1 -0
  33. package/dist/commands/files.js +48 -0
  34. package/dist/commands/files.js.map +1 -0
  35. package/dist/commands/generated.d.ts +24 -3
  36. package/dist/commands/generated.d.ts.map +1 -1
  37. package/dist/commands/generated.js +97 -10
  38. package/dist/commands/generated.js.map +1 -1
  39. package/dist/commands/memory.d.ts +18 -0
  40. package/dist/commands/memory.d.ts.map +1 -0
  41. package/dist/commands/memory.js +70 -0
  42. package/dist/commands/memory.js.map +1 -0
  43. package/dist/commands/review.d.ts.map +1 -1
  44. package/dist/commands/review.js +46 -2
  45. package/dist/commands/review.js.map +1 -1
  46. package/dist/commands/seo-hosting.d.ts +107 -0
  47. package/dist/commands/seo-hosting.d.ts.map +1 -0
  48. package/dist/commands/seo-hosting.js +499 -0
  49. package/dist/commands/seo-hosting.js.map +1 -0
  50. package/dist/commands/skill.d.ts +50 -6
  51. package/dist/commands/skill.d.ts.map +1 -1
  52. package/dist/commands/skill.js +120 -56
  53. package/dist/commands/skill.js.map +1 -1
  54. package/dist/commands/update.d.ts +23 -0
  55. package/dist/commands/update.d.ts.map +1 -0
  56. package/dist/commands/update.js +345 -0
  57. package/dist/commands/update.js.map +1 -0
  58. package/dist/commands/workspace.d.ts +4 -0
  59. package/dist/commands/workspace.d.ts.map +1 -0
  60. package/dist/commands/workspace.js +132 -0
  61. package/dist/commands/workspace.js.map +1 -0
  62. package/dist/config.d.ts +5 -4
  63. package/dist/config.d.ts.map +1 -1
  64. package/dist/config.js +5 -7
  65. package/dist/config.js.map +1 -1
  66. package/dist/generated/capabilities.json +291 -30
  67. package/dist/http/client.d.ts.map +1 -1
  68. package/dist/http/client.js +74 -16
  69. package/dist/http/client.js.map +1 -1
  70. package/dist/index.js +35 -3
  71. package/dist/index.js.map +1 -1
  72. package/dist/output/envelope.d.ts +5 -0
  73. package/dist/output/envelope.d.ts.map +1 -1
  74. package/dist/output/envelope.js +101 -2
  75. package/dist/output/envelope.js.map +1 -1
  76. package/dist/output/unwrap.d.ts.map +1 -1
  77. package/dist/output/unwrap.js +18 -1
  78. package/dist/output/unwrap.js.map +1 -1
  79. package/dist/skills/unzip.d.ts +1 -1
  80. package/dist/skills/unzip.js +1 -1
  81. package/dist/update-check.d.ts +0 -1
  82. package/dist/update-check.d.ts.map +1 -1
  83. package/dist/update-check.js +6 -55
  84. package/dist/update-check.js.map +1 -1
  85. package/dist/version.d.ts +1 -1
  86. package/dist/version.d.ts.map +1 -1
  87. package/dist/version.js +1 -1
  88. package/dist/version.js.map +1 -1
  89. package/package.json +7 -4
  90. package/postinstall.cjs +85 -0
  91. package/skills/soku/SKILL.md +254 -18
  92. package/README.md +0 -91
@@ -12,6 +12,15 @@ export interface TokenResult {
12
12
  token_type: string;
13
13
  expires_in: number;
14
14
  scope: string;
15
+ workspace?: TokenWorkspace;
16
+ }
17
+ export interface TokenWorkspace {
18
+ organization_id: string;
19
+ brand_id: string;
20
+ organization_name?: string | null;
21
+ organization_slug?: string | null;
22
+ brand_name?: string | null;
23
+ brand_slug?: string | null;
15
24
  }
16
25
  export declare function requestDeviceCode(opts: {
17
26
  apiBase?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../src/auth/device.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAI5C,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,gBAAgB,EAAE,MAAM,CAAA;IACxB,yBAAyB,EAAE,MAAM,CAAA;IACjC,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;CACd;AAID,wBAAsB,iBAAiB,CAAC,IAAI,EAAE;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAW/B;AAED,MAAM,MAAM,WAAW,GACnB;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,WAAW,CAAA;CAAE,GACvC;IAAE,MAAM,EAAE,QAAQ,CAAA;CAAE,GACpB;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,CAAA;AAEzB,iFAAiF;AACjF,wBAAsB,YAAY,CAAC,IAAI,EAAE;IACvC,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;CACpB,GAAG,OAAO,CAAC,WAAW,CAAC,CA6CvB"}
1
+ {"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../src/auth/device.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAI5C,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,gBAAgB,EAAE,MAAM,CAAA;IACxB,yBAAyB,EAAE,MAAM,CAAA;IACjC,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,cAAc,CAAA;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,eAAe,EAAE,MAAM,CAAA;IACvB,QAAQ,EAAE,MAAM,CAAA;IAChB,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAC3B;AAKD,wBAAsB,iBAAiB,CAAC,IAAI,EAAE;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAe/B;AAED,MAAM,MAAM,WAAW,GACnB;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,WAAW,CAAA;CAAE,GACvC;IAAE,MAAM,EAAE,QAAQ,CAAA;CAAE,GACpB;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,CAAA;AAEzB,iFAAiF;AACjF,wBAAsB,YAAY,CAAC,IAAI,EAAE;IACvC,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;CACpB,GAAG,OAAO,CAAC,WAAW,CAAC,CA6CvB"}
@@ -1,12 +1,17 @@
1
1
  /** RFC 8628 device authorization client. */
2
2
  import { resolveApiBaseUrl } from '../config.js';
3
3
  const CLIENT_ID = 'soku-cli';
4
+ const WORKSPACE_SELECTION_CAPABILITY = 'workspace_selection_v1';
4
5
  export async function requestDeviceCode(opts) {
5
6
  const base = resolveApiBaseUrl(opts.apiBase);
6
7
  const res = await fetch(`${base}/api/device/code`, {
7
8
  method: 'POST',
8
9
  headers: { 'Content-Type': 'application/json' },
9
- body: JSON.stringify({ client_id: CLIENT_ID, scope: opts.scope ?? 'data-infra' }),
10
+ body: JSON.stringify({
11
+ client_id: CLIENT_ID,
12
+ scope: opts.scope ?? 'data-infra',
13
+ client_capabilities: [WORKSPACE_SELECTION_CAPABILITY],
14
+ }),
10
15
  });
11
16
  if (!res.ok) {
12
17
  throw new Error(`Failed to start device authorization (HTTP ${res.status})`);
@@ -1 +1 @@
1
- {"version":3,"file":"device.js","sourceRoot":"","sources":["../../src/auth/device.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAE5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAkBhD,MAAM,SAAS,GAAG,UAAU,CAAA;AAE5B,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAGvC;IACC,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAC5C,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,kBAAkB,EAAE;QACjD,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,YAAY,EAAE,CAAC;KAClF,CAAC,CAAA;IACF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,8CAA8C,GAAG,CAAC,MAAM,GAAG,CAAC,CAAA;IAC9E,CAAC;IACD,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAwB,CAAA;AAClD,CAAC;AAOD,iFAAiF;AACjF,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAMlC;IACC,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAC5C,IAAI,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;IACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;IAEnD,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC7B,MAAM,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAA;QAC5B,IAAI,CAAC,MAAM,EAAE,EAAE,CAAA;QACf,IAAI,GAAa,CAAA;QACjB,IAAI,CAAC;YACH,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,mBAAmB,EAAE;gBAC5C,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACnB,UAAU,EAAE,8CAA8C;oBAC1D,WAAW,EAAE,IAAI,CAAC,UAAU;oBAC5B,SAAS,EAAE,SAAS;iBACrB,CAAC;aACH,CAAC,CAAA;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,uEAAuE;YACvE,kEAAkE;YAClE,SAAQ;QACV,CAAC;QACD,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;YACX,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAgB,EAAE,CAAA;QACtE,CAAC;QACD,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAuB,CAAA;QACvE,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;YACnB,KAAK,uBAAuB;gBAC1B,MAAK;YACP,KAAK,WAAW;gBACd,QAAQ,IAAI,CAAC,CAAA;gBACb,MAAK;YACP,KAAK,eAAe;gBAClB,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAA;YAC7B,KAAK,eAAe;gBAClB,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAA;YAC9B;gBACE,mEAAmE;gBACnE,qDAAqD;gBACrD,MAAK;QACT,CAAC;IACH,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAA;AAC9B,CAAC;AAED,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAA;AAC1D,CAAC"}
1
+ {"version":3,"file":"device.js","sourceRoot":"","sources":["../../src/auth/device.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ /** `soku ads <platform> <entity> <verb>` — Tier-2 ergonomic commands for the
2
+ * highest-traffic ads-ops write entities (campaign / adset / ad-group / ad /
3
+ * keyword).
4
+ *
5
+ * These wrap the same review-gated `/api/cli/call/ads/<action>` path the Tier-1
6
+ * generated commands use, but expose platform-specific explicit flags, do light
7
+ * validation up front, and always require `--summary`. Anything not surfaced as
8
+ * a flag can still be passed with `-p key=value`. Exotic actions stay on the raw
9
+ * `soku call ads <action>` escape hatch.
10
+ *
11
+ * Validation here is intentionally light (obvious missing-field guards only) —
12
+ * the backend (`packages/ads_ops`) owns the authoritative validation, so we
13
+ * don't duplicate its rules and risk drift.
14
+ */
15
+ import { Command } from 'commander';
16
+ /** Resolve a daily budget to micros from either human-units USD or raw micros.
17
+ * `--budget-daily-micros` wins when both are given. Micros = USD * 1_000_000. */
18
+ export declare function resolveBudgetMicros(usd: string | undefined, micros: string | undefined): number | undefined;
19
+ interface UploadImageItem {
20
+ client_ref: string;
21
+ name: string;
22
+ image_url?: string;
23
+ bytes_base64?: string;
24
+ }
25
+ export declare function buildUploadImages(files: string[], urls: string[], namePrefix?: string): Promise<UploadImageItem[]>;
26
+ /** Attach platform-first Tier-2 entity sub-groups to the shared `ads` group. */
27
+ export declare function registerAdsEntities(ads: Command): void;
28
+ /** Register the `ads` command group: Tier-1 generated data actions (read +
29
+ * write) plus Tier-2 ergonomic entity commands, on a single shared group. */
30
+ export declare function registerAdsCommands(program: Command): void;
31
+ export {};
32
+ //# sourceMappingURL=ads.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ads.d.ts","sourceRoot":"","sources":["../../src/commands/ads.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAKH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AA6EnC;iFACiF;AACjF,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,MAAM,EAAE,MAAM,GAAG,SAAS,GACzB,MAAM,GAAG,SAAS,CAUpB;AA4ED,UAAU,eAAe;IACvB,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAyBD,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,MAAM,EAAE,EACf,IAAI,EAAE,MAAM,EAAE,EACd,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,eAAe,EAAE,CAAC,CAoB5B;AAw3BD,gFAAgF;AAChF,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CActD;AAED;6EAC6E;AAC7E,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAK1D"}