@soku-ai/cli 0.1.0-alpha.17 → 0.1.0-alpha.19

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 (64) hide show
  1. package/README.md +33 -22
  2. package/dist/commands/auth.d.ts +1 -3
  3. package/dist/commands/auth.d.ts.map +1 -1
  4. package/dist/commands/auth.js +18 -3
  5. package/dist/commands/auth.js.map +1 -1
  6. package/dist/commands/automation.d.ts +46 -0
  7. package/dist/commands/automation.d.ts.map +1 -1
  8. package/dist/commands/automation.js +150 -0
  9. package/dist/commands/automation.js.map +1 -1
  10. package/dist/commands/brand-skill.d.ts +23 -0
  11. package/dist/commands/brand-skill.d.ts.map +1 -1
  12. package/dist/commands/brand-skill.js +82 -0
  13. package/dist/commands/brand-skill.js.map +1 -1
  14. package/dist/commands/changelog.d.ts +79 -0
  15. package/dist/commands/changelog.d.ts.map +1 -0
  16. package/dist/commands/changelog.js +123 -0
  17. package/dist/commands/changelog.js.map +1 -0
  18. package/dist/commands/context.d.ts +54 -0
  19. package/dist/commands/context.d.ts.map +1 -1
  20. package/dist/commands/context.js +362 -43
  21. package/dist/commands/context.js.map +1 -1
  22. package/dist/commands/egress.d.ts +49 -1
  23. package/dist/commands/egress.d.ts.map +1 -1
  24. package/dist/commands/egress.js +287 -33
  25. package/dist/commands/egress.js.map +1 -1
  26. package/dist/commands/generated.d.ts +8 -3
  27. package/dist/commands/generated.d.ts.map +1 -1
  28. package/dist/commands/generated.js +10 -3
  29. package/dist/commands/generated.js.map +1 -1
  30. package/dist/commands/live-surface.d.ts +15 -0
  31. package/dist/commands/live-surface.d.ts.map +1 -0
  32. package/dist/commands/live-surface.js +96 -0
  33. package/dist/commands/live-surface.js.map +1 -0
  34. package/dist/commands/workspace.d.ts +13 -0
  35. package/dist/commands/workspace.d.ts.map +1 -1
  36. package/dist/commands/workspace.js +34 -7
  37. package/dist/commands/workspace.js.map +1 -1
  38. package/dist/generated/capabilities.json +7710 -2318
  39. package/dist/generated/changelog.json +2232 -0
  40. package/dist/http/client.d.ts +17 -0
  41. package/dist/http/client.d.ts.map +1 -1
  42. package/dist/http/client.js +34 -5
  43. package/dist/http/client.js.map +1 -1
  44. package/dist/index.js +4 -0
  45. package/dist/index.js.map +1 -1
  46. package/dist/output/envelope.d.ts +2 -1
  47. package/dist/output/envelope.d.ts.map +1 -1
  48. package/dist/output/envelope.js +2 -2
  49. package/dist/output/envelope.js.map +1 -1
  50. package/dist/upload-journal.d.ts +46 -0
  51. package/dist/upload-journal.d.ts.map +1 -0
  52. package/dist/upload-journal.js +102 -0
  53. package/dist/upload-journal.js.map +1 -0
  54. package/dist/version.d.ts +1 -1
  55. package/dist/version.js +1 -1
  56. package/package.json +6 -5
  57. package/skills/soku/SKILL.md +74 -12
  58. package/skills/soku/agents/openai.yaml +4 -0
  59. package/skills/soku/references/ads-write.md +12 -6
  60. package/skills/soku/references/auth-workspace.md +27 -12
  61. package/skills/soku/references/data-capabilities.md +22 -1
  62. package/skills/soku/references/egress-security.md +63 -0
  63. package/skills/soku/references/seo-automation-files.md +67 -3
  64. package/skills/soku/references/skills-updates.md +54 -0
@@ -6,6 +6,23 @@ interface RequestOptions {
6
6
  /** Require the active org/brand headers (data endpoints). */
7
7
  workspace?: boolean;
8
8
  apiBase?: string;
9
+ /**
10
+ * Throw {@link ApiError} instead of printing and exiting.
11
+ *
12
+ * The default is to exit, which is right for a one-shot command: the error
13
+ * envelope is the output. It is wrong inside a batch, where one file's
14
+ * transient 503 would take down a run of hundreds and leave the caller no
15
+ * chance to retry it. Batch callers set this and handle the error themselves.
16
+ */
17
+ throwOnError?: boolean;
18
+ }
19
+ /** A failed request, raised only when the caller asked for `throwOnError`. */
20
+ export declare class ApiError extends Error {
21
+ readonly type: string;
22
+ readonly status: number;
23
+ readonly hint?: string | undefined;
24
+ readonly details?: Record<string, unknown> | undefined;
25
+ constructor(type: string, message: string, status: number, hint?: string | undefined, details?: Record<string, unknown> | undefined);
9
26
  }
10
27
  export declare function apiRequest<T = unknown>(path: string, opts?: RequestOptions): Promise<T>;
11
28
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/http/client.ts"],"names":[],"mappings":"AAAA;gFACgF;AAMhF,UAAU,cAAc;IACtB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,6DAA6D;IAC7D,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,wBAAsB,UAAU,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,cAAmB,GAAG,OAAO,CAAC,CAAC,CAAC,CA0FjG"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/http/client.ts"],"names":[],"mappings":"AAAA;gFACgF;AAMhF,UAAU,cAAc;IACtB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,6DAA6D;IAC7D,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB;AAED,8EAA8E;AAC9E,qBAAa,QAAS,SAAQ,KAAK;IAE/B,QAAQ,CAAC,IAAI,EAAE,MAAM;IAErB,QAAQ,CAAC,MAAM,EAAE,MAAM;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;gBAJjC,IAAI,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM,EACN,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,MAAM,YAAA,EACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YAAA;CAK7C;AAED,wBAAsB,UAAU,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,cAAmB,GAAG,OAAO,CAAC,CAAC,CAAC,CAyGjG"}
@@ -3,6 +3,21 @@
3
3
  import { clearToken, loadToken } from '../auth/store.js';
4
4
  import { loadConfig, resolveApiBaseUrl } from '../config.js';
5
5
  import { emitError, ExitCode } from '../output/envelope.js';
6
+ /** A failed request, raised only when the caller asked for `throwOnError`. */
7
+ export class ApiError extends Error {
8
+ type;
9
+ status;
10
+ hint;
11
+ details;
12
+ constructor(type, message, status, hint, details) {
13
+ super(message);
14
+ this.type = type;
15
+ this.status = status;
16
+ this.hint = hint;
17
+ this.details = details;
18
+ this.name = 'ApiError';
19
+ }
20
+ }
6
21
  export async function apiRequest(path, opts = {}) {
7
22
  const token = await loadToken();
8
23
  if (!token) {
@@ -28,6 +43,13 @@ export async function apiRequest(path, opts = {}) {
28
43
  headers['X-Soku-Brand'] = brandId;
29
44
  }
30
45
  const base = resolveApiBaseUrl(opts.apiBase);
46
+ // Status 0 marks a failure that never reached the server, so a caller
47
+ // classifying retriability sees "no answer" rather than a fabricated code.
48
+ const fail = (type, message, status, code, hint, details) => {
49
+ if (opts.throwOnError)
50
+ throw new ApiError(type, message, status, hint, details);
51
+ return emitError(type, message, code, hint, details);
52
+ };
31
53
  let res;
32
54
  try {
33
55
  res = await fetch(`${base}${path}`, {
@@ -41,7 +63,7 @@ export async function apiRequest(path, opts = {}) {
41
63
  });
42
64
  }
43
65
  catch (err) {
44
- return emitError('network_error', `Could not reach ${base}: ${err.message}`, ExitCode.RUNTIME, 'Behind a proxy? Set ALL_PROXY.');
66
+ return fail('network_error', `Could not reach ${base}: ${err.message}`, 0, ExitCode.RUNTIME, 'Behind a proxy? Set ALL_PROXY.');
45
67
  }
46
68
  const text = await res.text();
47
69
  const parsed = text ? safeJson(text) : null;
@@ -51,16 +73,16 @@ export async function apiRequest(path, opts = {}) {
51
73
  // cleanly instead of looping on a dead credential.
52
74
  const code = parsed?.error ?? 'unauthorized';
53
75
  await clearToken();
54
- return emitError('unauthorized', `Authentication failed (${code}).`, ExitCode.AUTH, 'Run `soku auth login`.');
76
+ return fail('unauthorized', `Authentication failed (${code}).`, res.status, ExitCode.AUTH, 'Run `soku auth login`.');
55
77
  }
56
78
  if (res.status === 403) {
57
- return emitError('forbidden', describeError(parsed) ?? 'Access denied.', ExitCode.AUTH);
79
+ return fail('forbidden', describeError(parsed) ?? 'Access denied.', res.status, ExitCode.AUTH);
58
80
  }
59
81
  if (res.status === 404) {
60
- return emitError('not_found', describeError(parsed) ?? 'Not found.', ExitCode.NOT_FOUND);
82
+ return fail('not_found', describeError(parsed) ?? 'Not found.', res.status, ExitCode.NOT_FOUND);
61
83
  }
62
84
  if (res.status >= 400) {
63
- return emitError(describeCode(parsed) ?? 'request_failed', describeError(parsed) ?? `HTTP ${res.status}`, exitCodeForStatus(res.status), describeHint(parsed) ?? undefined);
85
+ return fail(describeCode(parsed) ?? 'request_failed', describeError(parsed) ?? `HTTP ${res.status}`, res.status, exitCodeForStatus(res.status), describeHint(parsed) ?? undefined, describeDetails(parsed));
64
86
  }
65
87
  return parsed;
66
88
  }
@@ -107,6 +129,13 @@ function describeCode(parsed) {
107
129
  return String(err.code);
108
130
  return null;
109
131
  }
132
+ function describeDetails(parsed) {
133
+ const detail = detailObject(parsed);
134
+ const value = responseSchemaError(detail)?.details ?? detail?.details ?? dispatcherErrorObject(parsed)?.details;
135
+ return value && typeof value === 'object' && !Array.isArray(value)
136
+ ? value
137
+ : undefined;
138
+ }
110
139
  function describeHint(parsed) {
111
140
  const detail = detailObject(parsed);
112
141
  const responseErr = responseSchemaError(detail);
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/http/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/http/client.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -6,10 +6,12 @@ import { registerAuthCommands } from './commands/auth.js';
6
6
  import { registerAutomationCommands } from './commands/automation.js';
7
7
  import { registerBrandCommands } from './commands/brand.js';
8
8
  import { registerCallCommand } from './commands/call.js';
9
+ import { registerChangelogCommand } from './commands/changelog.js';
9
10
  import { registerContextCommands } from './commands/context.js';
10
11
  import { registerEgressCommands } from './commands/egress.js';
11
12
  import { registerFilesCommands } from './commands/files.js';
12
13
  import { registerGeneratedCommands } from './commands/generated.js';
14
+ import { registerLiveSurfaceCommands } from './commands/live-surface.js';
13
15
  import { registerMemoryCommands } from './commands/memory.js';
14
16
  import { registerOrgCommands } from './commands/org.js';
15
17
  import { registerReviewCommands } from './commands/review.js';
@@ -35,12 +37,14 @@ registerGeneratedCommands(program);
35
37
  registerAdsCommands(program);
36
38
  registerCallCommand(program);
37
39
  registerEgressCommands(program);
40
+ registerLiveSurfaceCommands(program);
38
41
  registerReviewCommands(program);
39
42
  registerSeoHostingCommands(program);
40
43
  registerContextCommands(program);
41
44
  registerFilesCommands(program);
42
45
  registerSkillCommand(program);
43
46
  registerUpdateCommand(program);
47
+ registerChangelogCommand(program);
44
48
  registerUpdateCheckCommand(program);
45
49
  function commandNames(command) {
46
50
  const names = new Set();
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,7 @@ export interface ErrorEnvelope {
20
20
  type: string;
21
21
  message: string;
22
22
  hint?: string;
23
+ details?: Record<string, unknown>;
23
24
  };
24
25
  }
25
26
  export declare function isTty(): boolean;
@@ -46,5 +47,5 @@ export declare function emitSuccess<T>(data: T, human?: (data: T) => string): ne
46
47
  * the JSON results) but exit non-zero so scripts can detect the failures. */
47
48
  export declare function emitSuccessExit<T>(data: T, code: ExitCodeValue, human?: (data: T) => string): never;
48
49
  /** Print a structured error to stderr and exit with the given code. */
49
- export declare function emitError(type: string, message: string, code?: ExitCodeValue, hint?: string): never;
50
+ export declare function emitError(type: string, message: string, code?: ExitCodeValue, hint?: string, details?: Record<string, unknown>): never;
50
51
  //# sourceMappingURL=envelope.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../../src/output/envelope.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,eAAO,MAAM,QAAQ;;;;;;CAMX,CAAA;AAEV,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,OAAO,QAAQ,CAAC,CAAA;AAEpE,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,KAAK,CAAA;IACT,KAAK,EAAE;QACL,IAAI,EAAE,MAAM,CAAA;QACZ,OAAO,EAAE,MAAM,CAAA;QACf,IAAI,CAAC,EAAE,MAAM,CAAA;KACd,CAAA;CACF;AAED,wBAAgB,KAAK,IAAI,OAAO,CAE/B;AAMD,eAAO,MAAM,IAAI,GAAI,GAAG,MAAM,WAAkB,CAAA;AAChD,eAAO,MAAM,GAAG,GAAI,GAAG,MAAM,WAAkB,CAAA;AAC/C,eAAO,MAAM,KAAK,GAAI,GAAG,MAAM,WAAmB,CAAA;AAClD,eAAO,MAAM,GAAG,GAAI,GAAG,MAAM,WAAmB,CAAA;AAChD,eAAO,MAAM,IAAI,GAAI,GAAG,MAAM,WAAmB,CAAA;AAEjD,MAAM,WAAW,MAAM;IACrB,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;CACf;AAeD,+DAA+D;AAC/D,wBAAgB,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,CAcrF;AAyFD,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAErD;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,GAAG,KAAK,CAE1E;AAED;;6EAE6E;AAC7E,wBAAgB,eAAe,CAAC,CAAC,EAC/B,IAAI,EAAE,CAAC,EACP,IAAI,EAAE,aAAa,EACnB,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,GAC1B,KAAK,CASP;AAED,uEAAuE;AACvE,wBAAgB,SAAS,CACvB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,aAAgC,EACtC,IAAI,CAAC,EAAE,MAAM,GACZ,KAAK,CAaP"}
1
+ {"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../../src/output/envelope.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,eAAO,MAAM,QAAQ;;;;;;CAMX,CAAA;AAEV,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,OAAO,QAAQ,CAAC,CAAA;AAEpE,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,KAAK,CAAA;IACT,KAAK,EAAE;QACL,IAAI,EAAE,MAAM,CAAA;QACZ,OAAO,EAAE,MAAM,CAAA;QACf,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAClC,CAAA;CACF;AAED,wBAAgB,KAAK,IAAI,OAAO,CAE/B;AAMD,eAAO,MAAM,IAAI,GAAI,GAAG,MAAM,WAAkB,CAAA;AAChD,eAAO,MAAM,GAAG,GAAI,GAAG,MAAM,WAAkB,CAAA;AAC/C,eAAO,MAAM,KAAK,GAAI,GAAG,MAAM,WAAmB,CAAA;AAClD,eAAO,MAAM,GAAG,GAAI,GAAG,MAAM,WAAmB,CAAA;AAChD,eAAO,MAAM,IAAI,GAAI,GAAG,MAAM,WAAmB,CAAA;AAEjD,MAAM,WAAW,MAAM;IACrB,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;CACf;AAeD,+DAA+D;AAC/D,wBAAgB,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,CAcrF;AAyFD,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAErD;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,GAAG,KAAK,CAE1E;AAED;;6EAE6E;AAC7E,wBAAgB,eAAe,CAAC,CAAC,EAC/B,IAAI,EAAE,CAAC,EACP,IAAI,EAAE,aAAa,EACnB,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,GAC1B,KAAK,CASP;AAED,uEAAuE;AACvE,wBAAgB,SAAS,CACvB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,aAAgC,EACtC,IAAI,CAAC,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,KAAK,CAaP"}
@@ -166,7 +166,7 @@ export function emitSuccessExit(data, code, human) {
166
166
  process.exit(code);
167
167
  }
168
168
  /** Print a structured error to stderr and exit with the given code. */
169
- export function emitError(type, message, code = ExitCode.RUNTIME, hint) {
169
+ export function emitError(type, message, code = ExitCode.RUNTIME, hint, details) {
170
170
  if (isTty()) {
171
171
  let out = `${red('✖')} ${message}`;
172
172
  if (hint)
@@ -176,7 +176,7 @@ export function emitError(type, message, code = ExitCode.RUNTIME, hint) {
176
176
  else {
177
177
  const envelope = {
178
178
  ok: false,
179
- error: { type, message, ...(hint ? { hint } : {}) },
179
+ error: { type, message, ...(hint ? { hint } : {}), ...(details ? { details } : {}) },
180
180
  };
181
181
  process.stderr.write(`${JSON.stringify(envelope)}\n`);
182
182
  }
@@ -1 +1 @@
1
- {"version":3,"file":"envelope.js","sourceRoot":"","sources":["../../src/output/envelope.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,EAAE,EAAE,CAAC;IACL,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,SAAS,EAAE,CAAC;IACZ,OAAO,EAAE,CAAC;CACF,CAAA;AAaV,MAAM,UAAU,KAAK;IACnB,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AACtC,CAAC;AAED,+EAA+E;AAC/E,SAAS,KAAK,CAAC,IAAY,EAAE,IAAY;IACvC,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,IAAI,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,CAAA;AACvD,CAAC;AACD,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;AAChD,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;AAC/C,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;AAClD,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;AAChD,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;AASjD,4CAA4C;AAC5C,MAAM,OAAO,GAAG,iBAAiB,CAAA;AACjC,4EAA4E;AAC5E,SAAS,UAAU,CAAC,CAAS;IAC3B,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,MAAM,CAAA;AACtC,CAAC;AACD,oEAAoE;AACpE,SAAS,UAAU,CAAC,CAAS,EAAE,KAAa;IAC1C,OAAO,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAC3D,CAAC;AAED,+DAA+D;AAC/D,MAAM,UAAU,KAAK,CAAC,IAAoC,EAAE,OAAiB;IAC3E,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,GAAG,CAAC,QAAQ,CAAC,CAAA;IAC3C,MAAM,IAAI,GAAG,CAAC,CAA0B,EAAE,CAAS,EAAU,EAAE;QAC7D,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QACd,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IACvD,CAAC,CAAA;IACD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAC/B,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAC1E,CAAA;IACD,MAAM,IAAI,GAAG,CAAC,KAAe,EAAU,EAAE,CACvC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC1D,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IACvD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACjF,OAAO,GAAG,MAAM,KAAK,IAAI,EAAE,CAAA;AAC7B,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;AAC7E,CAAC;AAED,SAAS,YAAY,CAAC,KAAgB;IACpC,OAAO,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;AAC9B,CAAC;AAED,SAAS,WAAW,CAAC,GAAW;IAC9B,OAAO,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAA;AAC/E,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,CAAA;IACpD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;IACjF,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,GAAG,CAAC,QAAQ,CAAC,CAAA;QAC5C,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YACnE,OAAO,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC3C,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;AAC9B,CAAC;AAED,SAAS,MAAM,CAAC,IAAY;IAC1B,OAAO,IAAI;SACR,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC;SAC1B,IAAI,CAAC,IAAI,CAAC,CAAA;AACf,CAAC;AAED,SAAS,aAAa,CAAC,IAAmB;IACxC,MAAM,IAAI,GAAa,EAAE,CAAA;IACzB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACnC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YACvC,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC;gBAAE,MAAK;QAC7B,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC;YAAE,MAAK;IAC7B,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAA;AAC7E,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAmB;IAC3C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,GAAG,CAAC,QAAQ,CAAC,CAAA;IAC3C,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,CAAA;IACnC,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CACrC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CACzF,CAAA;IACD,OAAO,KAAK,CAAC,aAAa,EAAE,OAAO,CAAC,CAAA;AACtC,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,GAAG,CAAC,WAAW,CAAC,CAAA;IAClE,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;IACjF,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,GAAG,CAAC,QAAQ,CAAC,CAAA;QAC5C,IAAI,YAAY,CAAC,KAAK,CAAC;YAAE,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAA;QACvD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAClE,CAAC;IACD,IAAI,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,YAAY,CAAC,KAAK,CAAC,CAAA;IAC/C,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;AACtB,CAAC;AAED,SAAS,YAAY,CAAC,MAAmB;IACvC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IACtC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,GAAG,CAAC,SAAS,CAAC,CAAA;IAE/C,OAAO,OAAO;SACX,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QACpB,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAA;QACpC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;YAChD,OAAO,GAAG,KAAK,KAAK,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAA;QACvD,CAAC;QACD,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACpB,OAAO,GAAG,KAAK,KAAK,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAA;QACnD,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YAChH,OAAO,GAAG,KAAK,KAAK,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAA;QAClD,CAAC;QACD,OAAO,GAAG,KAAK,KAAK,YAAY,CAAC,KAAK,CAAC,EAAE,CAAA;IAC3C,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAA;AACf,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAa;IAC3C,OAAO,WAAW,CAAC,IAAI,CAAC,CAAA;AAC1B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAI,IAAO,EAAE,KAA2B;IACjE,OAAO,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;AAClD,CAAC;AAED;;6EAE6E;AAC7E,MAAM,UAAU,eAAe,CAC7B,IAAO,EACP,IAAmB,EACnB,KAA2B;IAE3B,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;QACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,CAAA;IACjE,CAAC;SAAM,IAAI,KAAK,EAAE,CAAC;QACjB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC1C,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACpD,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACpB,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,SAAS,CACvB,IAAY,EACZ,OAAe,EACf,OAAsB,QAAQ,CAAC,OAAO,EACtC,IAAa;IAEb,IAAI,KAAK,EAAE,EAAE,CAAC;QACZ,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,OAAO,EAAE,CAAA;QAClC,IAAI,IAAI;YAAE,GAAG,IAAI,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,CAAA;QACnC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,CAAA;IAClC,CAAC;SAAM,CAAC;QACN,MAAM,QAAQ,GAAkB;YAC9B,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;SACpD,CAAA;QACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IACvD,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACpB,CAAC"}
1
+ {"version":3,"file":"envelope.js","sourceRoot":"","sources":["../../src/output/envelope.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ /** Durable record of one `soku context upload` run.
2
+ *
3
+ * A bulk upload of hundreds of files will lose some of them to transient
4
+ * failures no matter how many times it retries. Without a record of what the
5
+ * run intended to do, the only recovery is to re-run the whole command and
6
+ * hope, which is what forced manual batching and hand-checking of file counts.
7
+ * The journal makes a run resumable: it stores every planned file and the
8
+ * outcome of each one, so a later `--resume <run-id>` re-attempts exactly the
9
+ * files that never landed.
10
+ *
11
+ * Journals live under `~/.soku/uploads/` and are pruned by age, not by count,
12
+ * so a resume is still possible days later.
13
+ */
14
+ export type UploadEntryStatus = 'pending' | 'done' | 'failed';
15
+ export interface UploadJournalEntry {
16
+ localPath: string;
17
+ targetDir: string;
18
+ filename: string;
19
+ status: UploadEntryStatus;
20
+ error?: string;
21
+ sizeBytes?: number;
22
+ contentType?: string;
23
+ }
24
+ export interface UploadJournal {
25
+ runId: string;
26
+ createdAt: string;
27
+ updatedAt: string;
28
+ /** Workspace the run targeted; a resume into a different brand is refused. */
29
+ orgId: string | null;
30
+ brandId: string | null;
31
+ dir: string;
32
+ entries: UploadJournalEntry[];
33
+ }
34
+ /** Journals older than this are pruned on the next run. */
35
+ export declare const JOURNAL_RETENTION_DAYS = 14;
36
+ export declare function journalDir(): string;
37
+ export declare function newRunId(): string;
38
+ export declare function saveJournal(journal: UploadJournal): void;
39
+ export declare function loadJournal(runId: string): UploadJournal | null;
40
+ export declare function deleteJournal(runId: string): void;
41
+ /** Entries a resume should re-attempt: everything that is not confirmed done. */
42
+ export declare function pendingEntries(journal: UploadJournal): UploadJournalEntry[];
43
+ export declare function listJournals(): UploadJournal[];
44
+ /** Drop journals past the retention window so the directory cannot grow forever. */
45
+ export declare function pruneJournals(now?: number): number;
46
+ //# sourceMappingURL=upload-journal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upload-journal.d.ts","sourceRoot":"","sources":["../src/upload-journal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAQH,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAA;AAE7D,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,iBAAiB,CAAA;IACzB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,8EAA8E;IAC9E,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,kBAAkB,EAAE,CAAA;CAC9B;AAED,2DAA2D;AAC3D,eAAO,MAAM,sBAAsB,KAAK,CAAA;AAExC,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAMD,wBAAgB,QAAQ,IAAI,MAAM,CAEjC;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAMxD;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAM/D;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAMjD;AAED,iFAAiF;AACjF,wBAAgB,cAAc,CAAC,OAAO,EAAE,aAAa,GAAG,kBAAkB,EAAE,CAE3E;AAED,wBAAgB,YAAY,IAAI,aAAa,EAAE,CAe9C;AAED,oFAAoF;AACpF,wBAAgB,aAAa,CAAC,GAAG,SAAa,GAAG,MAAM,CAsBtD"}
@@ -0,0 +1,102 @@
1
+ /** Durable record of one `soku context upload` run.
2
+ *
3
+ * A bulk upload of hundreds of files will lose some of them to transient
4
+ * failures no matter how many times it retries. Without a record of what the
5
+ * run intended to do, the only recovery is to re-run the whole command and
6
+ * hope, which is what forced manual batching and hand-checking of file counts.
7
+ * The journal makes a run resumable: it stores every planned file and the
8
+ * outcome of each one, so a later `--resume <run-id>` re-attempts exactly the
9
+ * files that never landed.
10
+ *
11
+ * Journals live under `~/.soku/uploads/` and are pruned by age, not by count,
12
+ * so a resume is still possible days later.
13
+ */
14
+ import { mkdirSync, readFileSync, readdirSync, rmSync, statSync, writeFileSync } from 'node:fs';
15
+ import { join } from 'node:path';
16
+ import { randomUUID } from 'node:crypto';
17
+ import { configDir } from './config.js';
18
+ /** Journals older than this are pruned on the next run. */
19
+ export const JOURNAL_RETENTION_DAYS = 14;
20
+ export function journalDir() {
21
+ return join(configDir(), 'uploads');
22
+ }
23
+ function journalPath(runId) {
24
+ return join(journalDir(), `${runId}.json`);
25
+ }
26
+ export function newRunId() {
27
+ return randomUUID();
28
+ }
29
+ export function saveJournal(journal) {
30
+ const path = journalPath(journal.runId);
31
+ mkdirSync(journalDir(), { recursive: true });
32
+ writeFileSync(path, JSON.stringify({ ...journal, updatedAt: new Date().toISOString() }, null, 2), {
33
+ mode: 0o600,
34
+ });
35
+ }
36
+ export function loadJournal(runId) {
37
+ try {
38
+ return JSON.parse(readFileSync(journalPath(runId), 'utf8'));
39
+ }
40
+ catch {
41
+ return null;
42
+ }
43
+ }
44
+ export function deleteJournal(runId) {
45
+ try {
46
+ rmSync(journalPath(runId));
47
+ }
48
+ catch {
49
+ // Already gone; a finished run leaving no journal behind is the goal.
50
+ }
51
+ }
52
+ /** Entries a resume should re-attempt: everything that is not confirmed done. */
53
+ export function pendingEntries(journal) {
54
+ return journal.entries.filter((entry) => entry.status !== 'done');
55
+ }
56
+ export function listJournals() {
57
+ let names;
58
+ try {
59
+ names = readdirSync(journalDir());
60
+ }
61
+ catch {
62
+ return [];
63
+ }
64
+ const journals = [];
65
+ for (const name of names) {
66
+ if (!name.endsWith('.json'))
67
+ continue;
68
+ const journal = loadJournal(name.slice(0, -'.json'.length));
69
+ if (journal)
70
+ journals.push(journal);
71
+ }
72
+ journals.sort((a, b) => b.createdAt.localeCompare(a.createdAt));
73
+ return journals;
74
+ }
75
+ /** Drop journals past the retention window so the directory cannot grow forever. */
76
+ export function pruneJournals(now = Date.now()) {
77
+ const cutoff = now - JOURNAL_RETENTION_DAYS * 24 * 60 * 60 * 1000;
78
+ let names;
79
+ try {
80
+ names = readdirSync(journalDir());
81
+ }
82
+ catch {
83
+ return 0;
84
+ }
85
+ let removed = 0;
86
+ for (const name of names) {
87
+ if (!name.endsWith('.json'))
88
+ continue;
89
+ const path = join(journalDir(), name);
90
+ try {
91
+ if (statSync(path).mtimeMs < cutoff) {
92
+ rmSync(path);
93
+ removed += 1;
94
+ }
95
+ }
96
+ catch {
97
+ // A journal that vanished mid-prune needs no further attention.
98
+ }
99
+ }
100
+ return removed;
101
+ }
102
+ //# sourceMappingURL=upload-journal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upload-journal.js","sourceRoot":"","sources":["../src/upload-journal.ts"],"names":[],"mappings":"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"}
package/dist/version.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  export declare const CLI_PACKAGE_NAME = "@soku-ai/cli";
2
- export declare const CLI_VERSION = "0.1.0-alpha.17";
2
+ export declare const CLI_VERSION = "0.1.0-alpha.19";
3
3
  //# sourceMappingURL=version.d.ts.map
package/dist/version.js CHANGED
@@ -1,3 +1,3 @@
1
1
  export const CLI_PACKAGE_NAME = '@soku-ai/cli';
2
- export const CLI_VERSION = '0.1.0-alpha.17';
2
+ export const CLI_VERSION = '0.1.0-alpha.19';
3
3
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@soku-ai/cli",
3
- "version": "0.1.0-alpha.17",
4
- "description": "Soku CLI call Soku ads/GA4/PostHog data capabilities from any AI agent or shell.",
3
+ "version": "0.1.0-alpha.19",
4
+ "description": "Soku CLI \u2014 call Soku ads/GA4/PostHog data capabilities from any AI agent or shell.",
5
5
  "license": "MIT",
6
6
  "author": "About Intelligence",
7
7
  "homepage": "https://soku.ai/cli",
@@ -39,12 +39,13 @@
39
39
  "registry": "https://registry.npmjs.org/"
40
40
  },
41
41
  "scripts": {
42
- "build": "tsc && mkdir -p dist/generated && cp src/generated/capabilities.json dist/generated/capabilities.json",
42
+ "build": "tsc && mkdir -p dist/generated && cp src/generated/capabilities.json src/generated/changelog.json dist/generated/",
43
43
  "typecheck": "tsc --noEmit",
44
- "test": "tsc -p tsconfig.test.json && find .test-build -name '*.test.js' -print | sort | xargs node --test",
44
+ "test": "tsc -p tsconfig.test.json && mkdir -p .test-build/generated && cp src/generated/capabilities.json src/generated/changelog.json .test-build/generated/ && find .test-build -name '*.test.js' -print | sort | xargs node --test && node --test scripts/*.test.mjs",
45
45
  "clean": "rm -rf dist .test-build",
46
46
  "postinstall": "node postinstall.cjs",
47
- "prepublishOnly": "pnpm run clean && pnpm run build"
47
+ "prepublishOnly": "pnpm run clean && pnpm run build",
48
+ "bundle:openai": "bash scripts/bundle-openai-plugin.sh"
48
49
  },
49
50
  "dependencies": {
50
51
  "commander": "^12.1.0",
@@ -3,21 +3,23 @@ name: soku
3
3
  description: >-
4
4
  Use when calling Soku CLI capabilities from a shell: auth, workspace
5
5
  selection, ads/GA4/PostHog data reads, typed ads writes, SEO Hosting,
6
- automations, Context Hub files, migrating context or project files from
7
- Claude, temporary file publishing, brand skills, third-party egress,
6
+ automations, Context Hub files, temporary file publishing, brand skills and community skill purchases/publishing,
7
+ third-party egress,
8
8
  review-gated writes, skill installation, or CLI updates.
9
9
  license: MIT
10
- metadata:
11
- author: About Intelligence
12
- version: "0.4"
13
10
  ---
14
11
 
15
12
  # Soku CLI
16
13
 
17
- The `soku` CLI is the shell-native way for an AI agent to use Soku from Claude
18
- Code, Codex, Cursor, or any terminal. It talks to Soku over `/api/cli/*`; no MCP
19
- host is required. Treat this file as the router. Load the relevant reference
20
- file before acting on a detailed workflow.
14
+ Written against Soku CLI release 0.1.0-alpha.19. If `soku --version` reports a
15
+ newer release, run `soku changelog --since` that release before relying on
16
+ details here.
17
+
18
+ The `soku` CLI is the shell-native way for an AI agent to use Soku from your
19
+ coding agent or any terminal. It talks to Soku over `/api/cli/*`; the CLI path
20
+ needs no MCP host. Treat this file as the router. Load the relevant reference
21
+ file before acting on a detailed workflow. If you have no usable shell, skip to
22
+ "No Shell? Use the Soku MCP Connection".
21
23
 
22
24
  ## Reference Router
23
25
 
@@ -30,12 +32,57 @@ Read only the reference files needed for the user's task:
30
32
  | Meta/Google/ChatGPT Ads writes, uploads, bulk create, review-gated approval | `references/ads-write.md` |
31
33
  | SEO Hosting, automations, Context Hub files, temporary public file URLs | `references/seo-automation-files.md` |
32
34
  | Third-party APIs through server-side credential injection; security rules | `references/egress-security.md` |
33
- | Installing, updating, or removing Soku-managed local skills | `references/skills-updates.md` |
34
- | Migrate context, project files, or workspaces from Claude into Soku | Run `soku skill install migrate-from-claude`, then read the installed `soku-migrate-from-claude` skill. |
35
+ | Installing, updating, or removing Soku-managed local skills; finding out what an upgrade changed | `references/skills-updates.md` |
35
36
 
36
37
  For an installed business skill such as `soku-ads-report`, read that skill too.
37
38
  Business skills carry their own "Running this skill with the Soku CLI" section.
38
39
 
40
+ ## Prerequisite: The CLI Must Be Installed
41
+
42
+ This skill only describes the `soku` command; it does not contain it. Check
43
+ first:
44
+
45
+ ```bash
46
+ soku --version
47
+ ```
48
+
49
+ If the command is missing, install it (Node.js 20 or newer is required) and
50
+ check again:
51
+
52
+ ```bash
53
+ npm i -g @soku-ai/cli
54
+ soku --version
55
+ ```
56
+
57
+ If npm says `@soku-ai/cli` is not found, report that the official package is
58
+ unavailable. Do not invent an unofficial package name.
59
+
60
+ When this skill arrived as a marketplace plugin, the CLI may also have
61
+ installed its own copy under `~/.claude/skills/soku/`,
62
+ `~/.codex/skills/soku/`, or `~/.cursor/skills/soku/`. Both copies are the same
63
+ document at possibly different versions. The copy the CLI installed is refreshed
64
+ together with the binary, so when the two disagree, prefer that one, and treat
65
+ `soku --help` and `soku changelog` as the authority over either copy.
66
+
67
+ ## No Shell? Use the Soku MCP Connection
68
+
69
+ Some hosts cannot run the CLI: Claude Cowork and claude.ai have no local shell,
70
+ and a sandboxed environment may block npm or `api.soku.ai`. For those hosts the
71
+ Claude Code plugin also registers Soku's remote MCP server (name `soku`,
72
+ `https://api.soku.ai/mcp`, OAuth). Rules for that path:
73
+
74
+ - Sign in through the host's MCP authentication, never by pasting a token: in
75
+ Claude Code run `/mcp` (or `claude mcp login soku` from a shell); in Cowork
76
+ approve the Soku connector when the host asks. Both open a Soku login page.
77
+ - The MCP tools cover brand-scoped reads, research and generation. Writes on
78
+ MCP are limited to what Soku Connect publishes (today the creatives canvas
79
+ operations); they are review-gated, and Soku returns a Live Surface link
80
+ where a human approves them. Hand that link to the user; do not try to
81
+ approve on their behalf. Ads and SEO Hosting writes are CLI-only.
82
+ - Local skill installation, Context Hub uploads from local files, memory and
83
+ `soku review approve` exist only on the CLI. When a shell is available and
84
+ `soku` can be installed, prefer the CLI.
85
+
39
86
  ## Default Flow
40
87
 
41
88
  1. Check auth/workspace state:
@@ -71,18 +118,33 @@ soku <namespace> <action> --help
71
118
 
72
119
  ## Non-Negotiable Rules
73
120
 
121
+ - **Confirm the target brand immediately before any write, and read it back
122
+ after.** Run `soku workspace status` in the same turn as the write — not
123
+ earlier in the session — and check the reported brand is the one the user
124
+ named (its `source` field tells you whether saved config or a `SOKU_BRAND_ID`
125
+ environment variable decided it, which is what you would have to change). The
126
+ CLI keeps whatever brand was selected last, and it does not follow the brand
127
+ the user is looking at in the web app, so a brand confirmed three turns ago
128
+ proves nothing about this write. After the write, read the object back
129
+ (`soku automation get`, `soku context list`, `soku seo-hosting pages list`)
130
+ and confirm it landed where you intended. A write into the wrong brand
131
+ succeeds silently and looks identical to a correct one; the read-back is the
132
+ only thing that tells them apart.
74
133
  - Never print or persist the Soku access token.
75
134
  - Never ask the user to paste third-party provider keys for covered providers.
76
135
  - Do not fail just because an upstream provider key env var is unset. Use
77
136
  `soku egress -- curl ...` for covered third-party APIs.
78
137
  - A human must authorize every review-gated write — but don't force a
79
138
  copy-paste. If your harness prompts for explicit human confirmation before
80
- each shell command (e.g. Claude Code's permission prompt), you MAY run
139
+ each shell command (a per-command permission prompt), you MAY run
81
140
  `soku review approve <id>` yourself after showing the user the diff/summary;
82
141
  that confirmation prompt is the human gate. Never allowlist or auto-approve
83
142
  `soku review approve`/`deny`, and never approve a write the user has not seen.
84
143
  If your harness runs commands without per-command human confirmation, do NOT
85
144
  self-approve — surface the `review_id` for the user to run.
145
+ - An ads write that names an existing campaign / ad set / ad group / ad must
146
+ read that object back first and quote its current name and literal id in
147
+ `--summary`; the server rejects a summary that omits a literal target id.
86
148
  - Pass user values as separate argv elements. Do not build a shell command by
87
149
  string-concatenating untrusted values.
88
150
  - Do not scan local repo files, `AGENTS.md`, or `context/` folders for Soku
@@ -0,0 +1,4 @@
1
+ interface:
2
+ display_name: "Soku"
3
+ short_description: "The AI marketing agent for ads and creatives: analyze ad and analytics performance, audit spend, research competitors, publish SEO pages, and prepare campaign changes for your approval"
4
+ default_prompt: "Use $soku to set up the Soku CLI, sign in, pick my brand, and run a 30-day performance health check across my ad accounts and analytics."