@gobing-ai/knowledge-kit 0.1.14 → 0.1.15

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 (76) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/dist/index.js +796 -176
  3. package/package.json +1 -1
  4. package/plugins/generations/content-gen/dist/index.js +2 -2
  5. package/plugins/generations/core-facts-gen/dist/index.js +2 -2
  6. package/plugins/generations/daily-article-gen/dist/index.js +2 -2
  7. package/plugins/generations/dailynews-gen/dist/index.js +72 -9
  8. package/plugins/generations/dailynews-gen/src/index.ts +23 -1
  9. package/plugins/generations/dailynews-gen/src/script-plan.ts +103 -5
  10. package/plugins/generations/episode-plan-gen/dist/index.js +2 -2
  11. package/plugins/generations/gemini-tts/dist/index.js +2 -2
  12. package/plugins/generations/image-gen/dist/index.js +2 -2
  13. package/plugins/generations/news-report-gen/dist/index.js +2 -2
  14. package/plugins/generations/voice-gen/dist/index.js +2 -2
  15. package/plugins/generations/voxcpm-tts/dist/index.js +2 -2
  16. package/plugins/ingestions/aihot-ingest/dist/index.js +2 -2
  17. package/plugins/ingestions/horizon-ingest/dist/index.js +2 -2
  18. package/plugins/ingestions/last30days-ingest/dist/index.js +2 -2
  19. package/plugins/ingestions/web-search/dist/index.js +2 -2
  20. package/plugins/kk/plugin.json +1 -1
  21. package/plugins/kk/scripts/daily-scheduled-run.ts +4 -0
  22. package/plugins/kk/scripts/daily-stages.ts +476 -12
  23. package/plugins/kk/scripts/kk-workflow-stages.ts +20 -4
  24. package/plugins/kk/skills/content-judge/SKILL.md +5 -4
  25. package/plugins/kk/skills/content-judge/references/rubrics.md +14 -0
  26. package/plugins/kk/skills/news-editorial/SKILL.md +122 -0
  27. package/plugins/kk/skills/news-editorial/references/selection.md +47 -0
  28. package/plugins/kk/skills/news-editorial/references/style-contract.zh.md +99 -0
  29. package/plugins/kk/skills/publish/SKILL.md +3 -3
  30. package/plugins/kk/skills/web-automation/SKILL.md +229 -77
  31. package/plugins/kk/skills/web-automation/references/browser-launch.md +127 -36
  32. package/plugins/kk/workflows/kk-daily-ai-voice2.yaml +4 -6
  33. package/plugins/kk/workflows/kk-daily-ai-voice3.yaml +183 -222
  34. package/plugins/kk/workflows/kk-daily-publish3.yaml +16 -8
  35. package/plugins/publishings/bilibili-pub/dist/index.js +5 -3
  36. package/plugins/publishings/bilibili-pub/dist/profile-check.js +3 -1
  37. package/plugins/publishings/cnblogs-pub/dist/index.js +5 -3
  38. package/plugins/publishings/cnblogs-pub/dist/profile-check.js +3 -1
  39. package/plugins/publishings/csdn-pub/dist/index.js +5 -3
  40. package/plugins/publishings/csdn-pub/dist/profile-check.js +5 -3
  41. package/plugins/publishings/emdash-pub/dist/index.js +2 -2
  42. package/plugins/publishings/infoq-pub/dist/index.js +5 -3
  43. package/plugins/publishings/infoq-pub/dist/profile-check.js +5 -3
  44. package/plugins/publishings/jike-pub/dist/index.js +5 -3
  45. package/plugins/publishings/jike-pub/dist/profile-check.js +5 -3
  46. package/plugins/publishings/juejin-pub/dist/index.js +5 -3
  47. package/plugins/publishings/juejin-pub/dist/profile-check.js +5 -3
  48. package/plugins/publishings/linkedin-pub/dist/index.js +5 -3
  49. package/plugins/publishings/linkedin-pub/dist/profile-check.js +5 -3
  50. package/plugins/publishings/medium-pub/dist/index.js +2 -2
  51. package/plugins/publishings/podcast-pub/dist/index.js +147 -4
  52. package/plugins/publishings/podcast-pub/src/index.ts +71 -2
  53. package/plugins/publishings/podcast-pub/src/map.ts +3 -0
  54. package/plugins/publishings/podcast-pub/src/transcript.ts +195 -0
  55. package/plugins/publishings/qiita-pub/dist/index.js +2 -2
  56. package/plugins/publishings/shipinhao-pub/dist/index.js +5 -3
  57. package/plugins/publishings/shipinhao-pub/dist/profile-check.js +3 -1
  58. package/plugins/publishings/sspai-pub/dist/index.js +5 -3
  59. package/plugins/publishings/sspai-pub/dist/profile-check.js +3 -1
  60. package/plugins/publishings/substack-pub/dist/index.js +5 -3
  61. package/plugins/publishings/substack-pub/dist/profile-check.js +5 -3
  62. package/plugins/publishings/surfdash-pub/dist/index.js +2 -2
  63. package/plugins/publishings/threads-pub/dist/index.js +2 -2
  64. package/plugins/publishings/wechatmp-pub/dist/index.js +52 -33
  65. package/plugins/publishings/wechatmp-pub/dist/profile-check.js +5 -3
  66. package/plugins/publishings/wechatmp-pub/src/flow.ts +70 -33
  67. package/plugins/publishings/weibo-pub/dist/index.js +5 -3
  68. package/plugins/publishings/weibo-pub/dist/profile-check.js +5 -3
  69. package/plugins/publishings/x-pub/dist/index.js +5 -3
  70. package/plugins/publishings/x-pub/dist/profile-check.js +5 -3
  71. package/plugins/publishings/xhs-pub/dist/index.js +5 -3
  72. package/plugins/publishings/xhs-pub/dist/profile-check.js +5 -3
  73. package/plugins/publishings/xiaoyuzhou-pub/dist/index.js +5 -3
  74. package/plugins/publishings/xiaoyuzhou-pub/dist/profile-check.js +3 -1
  75. package/plugins/publishings/zenn-pub/dist/index.js +2 -2
  76. package/plugins/kk/scripts/daily-voice-style.zh.md +0 -70
@@ -64,8 +64,8 @@ nodes:
64
64
  - id: plan
65
65
  description: >-
66
66
  Freeze this window's target rows and their payloads from the bundle and the preset
67
- (`4-publish/plan.<window>.json`). Never runs for a gated-miss overseas day: the RSS gate's
68
- non-zero exit skips its dependents, so an unpublished episode cannot be planned.
67
+ (`4-publish/plan.<window>.json`). Never runs for a gated-miss overseas day: the condition below
68
+ reads `rss-gate.json` (the gate itself always exits 0), so an unpublished episode cannot be planned.
69
69
  dependsOn: [rss-gate]
70
70
  condition:
71
71
  kind: shell
@@ -180,7 +180,9 @@ nodes:
180
180
  resolves its own checkout. A dummy or missing podcast episode yields
181
181
  explicit empty links; there is nothing to patch without a real post. The stage is its own gate:
182
182
  with no real tier-0 post evidence it records an explicit skip and exits 0 (the channel matrix
183
- lives in the preset, so the graph cannot name channels here).
183
+ lives in the preset, so the graph cannot name channels here). `onError: continue`: the sends
184
+ already happened, so a patch failure (e.g. a dirty surfdash checkout, run 74007847) stays a
185
+ failed node in the trace instead of failing a delivered window; outcome-assert owns the exit.
184
186
  dependsOn: [classify]
185
187
  condition:
186
188
  kind: shell
@@ -189,6 +191,7 @@ nodes:
189
191
 
190
192
  action:
191
193
  kind: shell
194
+ onError: continue
192
195
  options:
193
196
  command: 'kk stage run publish-matrix-patch-surfdash "${vars.work_dir}" --window "${vars.window}"'
194
197
 
@@ -201,9 +204,11 @@ nodes:
201
204
  condition:
202
205
  kind: shell
203
206
  options:
207
+ # classify writes the bare status to publish-status.<window>.txt (the outcome JSON is
208
+ # pretty-printed, so the old whole-line grep there never fired). `full` is admitted so the
209
+ # stage can delete a stale marker after a recovered retry; `dummy` writes nothing.
204
210
  command: >-
205
- grep -qx 'partial' "${vars.work_dir}/4-publish/outcome.${vars.window}.json" 2>/dev/null ||
206
- grep -qx 'none' "${vars.work_dir}/4-publish/outcome.${vars.window}.json" 2>/dev/null
211
+ grep -qxE 'full|partial|none' "${vars.work_dir}/4-publish/publish-status.${vars.window}.txt" 2>/dev/null
207
212
 
208
213
  action:
209
214
  kind: shell
@@ -268,6 +273,7 @@ nodes:
268
273
  options:
269
274
  role: scribe
270
275
  agent: ${vars.agent}
276
+ timeoutMs: 600000
271
277
  input: |
272
278
  Diagnose a missed overseas publish window. Read only these paths:
273
279
  - ${vars.work_dir}/4-publish/rss-gate.json (the miss reason)
@@ -329,10 +335,12 @@ nodes:
329
335
  "${vars.work_dir}/4-publish/outcome.${vars.window}.json" >> "$OUT" 2>/dev/null || true
330
336
 
331
337
  - id: ledger
332
- description: "Append the window's row to the workflow ledger; `onError: continue` — bookkeeping never fails a publish."
338
+ description: >-
339
+ Backfill the workflow ledger with every finished publish3 run it does not record yet. An in-run
340
+ `kk ledger append` of this run always refuses (`kk.ledger.run.running`), so this run lands on the
341
+ next window's sync. `|| true` — bookkeeping never fails a publish.
333
342
  dependsOn: [report]
334
343
  action:
335
344
  kind: shell
336
345
  options:
337
- command: >-
338
- kk ledger append --workflow kk-daily-publish3 --work-dir "${vars.work_dir}" --run "${vars.__runId}" || true
346
+ command: 'kk ledger sync --workflow kk-daily-publish3 || true'
@@ -20073,11 +20073,11 @@ var PluginManifestSchemaBase = looseObject({
20073
20073
  });
20074
20074
  var PluginManifestSchema = PluginManifestSchemaBase.superRefine((manifest, ctx) => {
20075
20075
  if (manifest.browserSession !== undefined) {
20076
- if (manifest.kind !== "publish") {
20076
+ if (manifest.kind !== "publish" && manifest.kind !== "ingestion") {
20077
20077
  ctx.addIssue({
20078
20078
  code: "custom",
20079
20079
  path: ["browserSession"],
20080
- message: `browserSession requires kind "publish", not "${manifest.kind}"`
20080
+ message: `browserSession requires kind "publish" or "ingestion", not "${manifest.kind}"`
20081
20081
  });
20082
20082
  }
20083
20083
  if (manifest.check === undefined) {
@@ -20683,10 +20683,12 @@ function sha256Hex(value) {
20683
20683
  var DEFAULT_BOT_PROFILE_ROOT = join4(homedir4(), ".config", "kk", "browser-profiles");
20684
20684
  class BotError extends Error {
20685
20685
  code;
20686
- constructor(code, message) {
20686
+ details;
20687
+ constructor(code, message, details = {}) {
20687
20688
  super(message);
20688
20689
  this.name = "BotError";
20689
20690
  this.code = code;
20691
+ this.details = details;
20690
20692
  }
20691
20693
  }
20692
20694
  // ../../packages/publish-harness/src/profile-dir.ts
@@ -20097,10 +20097,12 @@ function normalizeSessionIdentity(value) {
20097
20097
  }
20098
20098
  class BotError extends Error {
20099
20099
  code;
20100
- constructor(code, message) {
20100
+ details;
20101
+ constructor(code, message, details = {}) {
20101
20102
  super(message);
20102
20103
  this.name = "BotError";
20103
20104
  this.code = code;
20105
+ this.details = details;
20104
20106
  }
20105
20107
  }
20106
20108
  // ../../packages/publish-harness/src/index.ts
@@ -20073,11 +20073,11 @@ var PluginManifestSchemaBase = looseObject({
20073
20073
  });
20074
20074
  var PluginManifestSchema = PluginManifestSchemaBase.superRefine((manifest, ctx) => {
20075
20075
  if (manifest.browserSession !== undefined) {
20076
- if (manifest.kind !== "publish") {
20076
+ if (manifest.kind !== "publish" && manifest.kind !== "ingestion") {
20077
20077
  ctx.addIssue({
20078
20078
  code: "custom",
20079
20079
  path: ["browserSession"],
20080
- message: `browserSession requires kind "publish", not "${manifest.kind}"`
20080
+ message: `browserSession requires kind "publish" or "ingestion", not "${manifest.kind}"`
20081
20081
  });
20082
20082
  }
20083
20083
  if (manifest.check === undefined) {
@@ -20704,10 +20704,12 @@ function sha256Hex(value) {
20704
20704
  var DEFAULT_BOT_PROFILE_ROOT = join4(homedir4(), ".config", "kk", "browser-profiles");
20705
20705
  class BotError extends Error {
20706
20706
  code;
20707
- constructor(code, message) {
20707
+ details;
20708
+ constructor(code, message, details = {}) {
20708
20709
  super(message);
20709
20710
  this.name = "BotError";
20710
20711
  this.code = code;
20712
+ this.details = details;
20711
20713
  }
20712
20714
  }
20713
20715
  // ../../packages/publish-harness/src/profile-dir.ts
@@ -20097,10 +20097,12 @@ function normalizeSessionIdentity(value) {
20097
20097
  }
20098
20098
  class BotError extends Error {
20099
20099
  code;
20100
- constructor(code, message) {
20100
+ details;
20101
+ constructor(code, message, details = {}) {
20101
20102
  super(message);
20102
20103
  this.name = "BotError";
20103
20104
  this.code = code;
20105
+ this.details = details;
20104
20106
  }
20105
20107
  }
20106
20108
  // ../../packages/publish-harness/src/index.ts
@@ -20073,11 +20073,11 @@ var PluginManifestSchemaBase = looseObject({
20073
20073
  });
20074
20074
  var PluginManifestSchema = PluginManifestSchemaBase.superRefine((manifest, ctx) => {
20075
20075
  if (manifest.browserSession !== undefined) {
20076
- if (manifest.kind !== "publish") {
20076
+ if (manifest.kind !== "publish" && manifest.kind !== "ingestion") {
20077
20077
  ctx.addIssue({
20078
20078
  code: "custom",
20079
20079
  path: ["browserSession"],
20080
- message: `browserSession requires kind "publish", not "${manifest.kind}"`
20080
+ message: `browserSession requires kind "publish" or "ingestion", not "${manifest.kind}"`
20081
20081
  });
20082
20082
  }
20083
20083
  if (manifest.check === undefined) {
@@ -20701,10 +20701,12 @@ function sha256Hex(value) {
20701
20701
  var DEFAULT_BOT_PROFILE_ROOT = join4(homedir4(), ".config", "kk", "browser-profiles");
20702
20702
  class BotError extends Error {
20703
20703
  code;
20704
- constructor(code, message) {
20704
+ details;
20705
+ constructor(code, message, details = {}) {
20705
20706
  super(message);
20706
20707
  this.name = "BotError";
20707
20708
  this.code = code;
20709
+ this.details = details;
20708
20710
  }
20709
20711
  }
20710
20712
  // ../../packages/publish-harness/src/profile-dir.ts
@@ -20369,10 +20369,12 @@ function normalizeSessionIdentity(value) {
20369
20369
  }
20370
20370
  class BotError extends Error {
20371
20371
  code;
20372
- constructor(code, message) {
20372
+ details;
20373
+ constructor(code, message, details = {}) {
20373
20374
  super(message);
20374
20375
  this.name = "BotError";
20375
20376
  this.code = code;
20377
+ this.details = details;
20376
20378
  }
20377
20379
  }
20378
20380
  // ../../packages/publish-harness/src/index.ts
@@ -20945,11 +20947,11 @@ var PluginManifestSchemaBase = looseObject({
20945
20947
  });
20946
20948
  var PluginManifestSchema = PluginManifestSchemaBase.superRefine((manifest, ctx) => {
20947
20949
  if (manifest.browserSession !== undefined) {
20948
- if (manifest.kind !== "publish") {
20950
+ if (manifest.kind !== "publish" && manifest.kind !== "ingestion") {
20949
20951
  ctx.addIssue({
20950
20952
  code: "custom",
20951
20953
  path: ["browserSession"],
20952
- message: `browserSession requires kind "publish", not "${manifest.kind}"`
20954
+ message: `browserSession requires kind "publish" or "ingestion", not "${manifest.kind}"`
20953
20955
  });
20954
20956
  }
20955
20957
  if (manifest.check === undefined) {
@@ -12225,11 +12225,11 @@ var PluginManifestSchemaBase = looseObject({
12225
12225
  });
12226
12226
  var PluginManifestSchema = PluginManifestSchemaBase.superRefine((manifest, ctx) => {
12227
12227
  if (manifest.browserSession !== undefined) {
12228
- if (manifest.kind !== "publish") {
12228
+ if (manifest.kind !== "publish" && manifest.kind !== "ingestion") {
12229
12229
  ctx.addIssue({
12230
12230
  code: "custom",
12231
12231
  path: ["browserSession"],
12232
- message: `browserSession requires kind "publish", not "${manifest.kind}"`
12232
+ message: `browserSession requires kind "publish" or "ingestion", not "${manifest.kind}"`
12233
12233
  });
12234
12234
  }
12235
12235
  if (manifest.check === undefined) {
@@ -20073,11 +20073,11 @@ var PluginManifestSchemaBase = looseObject({
20073
20073
  });
20074
20074
  var PluginManifestSchema = PluginManifestSchemaBase.superRefine((manifest, ctx) => {
20075
20075
  if (manifest.browserSession !== undefined) {
20076
- if (manifest.kind !== "publish") {
20076
+ if (manifest.kind !== "publish" && manifest.kind !== "ingestion") {
20077
20077
  ctx.addIssue({
20078
20078
  code: "custom",
20079
20079
  path: ["browserSession"],
20080
- message: `browserSession requires kind "publish", not "${manifest.kind}"`
20080
+ message: `browserSession requires kind "publish" or "ingestion", not "${manifest.kind}"`
20081
20081
  });
20082
20082
  }
20083
20083
  if (manifest.check === undefined) {
@@ -20701,10 +20701,12 @@ function sha256Hex(value) {
20701
20701
  var DEFAULT_BOT_PROFILE_ROOT = join4(homedir4(), ".config", "kk", "browser-profiles");
20702
20702
  class BotError extends Error {
20703
20703
  code;
20704
- constructor(code, message) {
20704
+ details;
20705
+ constructor(code, message, details = {}) {
20705
20706
  super(message);
20706
20707
  this.name = "BotError";
20707
20708
  this.code = code;
20709
+ this.details = details;
20708
20710
  }
20709
20711
  }
20710
20712
  // ../../packages/publish-harness/src/profile-dir.ts
@@ -20369,10 +20369,12 @@ function normalizeSessionIdentity(value) {
20369
20369
  }
20370
20370
  class BotError extends Error {
20371
20371
  code;
20372
- constructor(code, message) {
20372
+ details;
20373
+ constructor(code, message, details = {}) {
20373
20374
  super(message);
20374
20375
  this.name = "BotError";
20375
20376
  this.code = code;
20377
+ this.details = details;
20376
20378
  }
20377
20379
  }
20378
20380
  // ../../packages/publish-harness/src/index.ts
@@ -20951,11 +20953,11 @@ var PluginManifestSchemaBase = looseObject({
20951
20953
  });
20952
20954
  var PluginManifestSchema = PluginManifestSchemaBase.superRefine((manifest, ctx) => {
20953
20955
  if (manifest.browserSession !== undefined) {
20954
- if (manifest.kind !== "publish") {
20956
+ if (manifest.kind !== "publish" && manifest.kind !== "ingestion") {
20955
20957
  ctx.addIssue({
20956
20958
  code: "custom",
20957
20959
  path: ["browserSession"],
20958
- message: `browserSession requires kind "publish", not "${manifest.kind}"`
20960
+ message: `browserSession requires kind "publish" or "ingestion", not "${manifest.kind}"`
20959
20961
  });
20960
20962
  }
20961
20963
  if (manifest.check === undefined) {
@@ -20073,11 +20073,11 @@ var PluginManifestSchemaBase = looseObject({
20073
20073
  });
20074
20074
  var PluginManifestSchema = PluginManifestSchemaBase.superRefine((manifest, ctx) => {
20075
20075
  if (manifest.browserSession !== undefined) {
20076
- if (manifest.kind !== "publish") {
20076
+ if (manifest.kind !== "publish" && manifest.kind !== "ingestion") {
20077
20077
  ctx.addIssue({
20078
20078
  code: "custom",
20079
20079
  path: ["browserSession"],
20080
- message: `browserSession requires kind "publish", not "${manifest.kind}"`
20080
+ message: `browserSession requires kind "publish" or "ingestion", not "${manifest.kind}"`
20081
20081
  });
20082
20082
  }
20083
20083
  if (manifest.check === undefined) {
@@ -20701,10 +20701,12 @@ function sha256Hex(value) {
20701
20701
  var DEFAULT_BOT_PROFILE_ROOT = join4(homedir4(), ".config", "kk", "browser-profiles");
20702
20702
  class BotError extends Error {
20703
20703
  code;
20704
- constructor(code, message) {
20704
+ details;
20705
+ constructor(code, message, details = {}) {
20705
20706
  super(message);
20706
20707
  this.name = "BotError";
20707
20708
  this.code = code;
20709
+ this.details = details;
20708
20710
  }
20709
20711
  }
20710
20712
  // ../../packages/publish-harness/src/profile-dir.ts
@@ -20369,10 +20369,12 @@ function normalizeSessionIdentity(value) {
20369
20369
  }
20370
20370
  class BotError extends Error {
20371
20371
  code;
20372
- constructor(code, message) {
20372
+ details;
20373
+ constructor(code, message, details = {}) {
20373
20374
  super(message);
20374
20375
  this.name = "BotError";
20375
20376
  this.code = code;
20377
+ this.details = details;
20376
20378
  }
20377
20379
  }
20378
20380
  // ../../packages/publish-harness/src/index.ts
@@ -20945,11 +20947,11 @@ var PluginManifestSchemaBase = looseObject({
20945
20947
  });
20946
20948
  var PluginManifestSchema = PluginManifestSchemaBase.superRefine((manifest, ctx) => {
20947
20949
  if (manifest.browserSession !== undefined) {
20948
- if (manifest.kind !== "publish") {
20950
+ if (manifest.kind !== "publish" && manifest.kind !== "ingestion") {
20949
20951
  ctx.addIssue({
20950
20952
  code: "custom",
20951
20953
  path: ["browserSession"],
20952
- message: `browserSession requires kind "publish", not "${manifest.kind}"`
20954
+ message: `browserSession requires kind "publish" or "ingestion", not "${manifest.kind}"`
20953
20955
  });
20954
20956
  }
20955
20957
  if (manifest.check === undefined) {
@@ -20073,11 +20073,11 @@ var PluginManifestSchemaBase = looseObject({
20073
20073
  });
20074
20074
  var PluginManifestSchema = PluginManifestSchemaBase.superRefine((manifest, ctx) => {
20075
20075
  if (manifest.browserSession !== undefined) {
20076
- if (manifest.kind !== "publish") {
20076
+ if (manifest.kind !== "publish" && manifest.kind !== "ingestion") {
20077
20077
  ctx.addIssue({
20078
20078
  code: "custom",
20079
20079
  path: ["browserSession"],
20080
- message: `browserSession requires kind "publish", not "${manifest.kind}"`
20080
+ message: `browserSession requires kind "publish" or "ingestion", not "${manifest.kind}"`
20081
20081
  });
20082
20082
  }
20083
20083
  if (manifest.check === undefined) {
@@ -20701,10 +20701,12 @@ function sha256Hex(value) {
20701
20701
  var DEFAULT_BOT_PROFILE_ROOT = join4(homedir4(), ".config", "kk", "browser-profiles");
20702
20702
  class BotError extends Error {
20703
20703
  code;
20704
- constructor(code, message) {
20704
+ details;
20705
+ constructor(code, message, details = {}) {
20705
20706
  super(message);
20706
20707
  this.name = "BotError";
20707
20708
  this.code = code;
20709
+ this.details = details;
20708
20710
  }
20709
20711
  }
20710
20712
  // ../../packages/publish-harness/src/profile-dir.ts
@@ -20369,10 +20369,12 @@ function normalizeSessionIdentity(value) {
20369
20369
  }
20370
20370
  class BotError extends Error {
20371
20371
  code;
20372
- constructor(code, message) {
20372
+ details;
20373
+ constructor(code, message, details = {}) {
20373
20374
  super(message);
20374
20375
  this.name = "BotError";
20375
20376
  this.code = code;
20377
+ this.details = details;
20376
20378
  }
20377
20379
  }
20378
20380
  // ../../packages/publish-harness/src/index.ts
@@ -20945,11 +20947,11 @@ var PluginManifestSchemaBase = looseObject({
20945
20947
  });
20946
20948
  var PluginManifestSchema = PluginManifestSchemaBase.superRefine((manifest, ctx) => {
20947
20949
  if (manifest.browserSession !== undefined) {
20948
- if (manifest.kind !== "publish") {
20950
+ if (manifest.kind !== "publish" && manifest.kind !== "ingestion") {
20949
20951
  ctx.addIssue({
20950
20952
  code: "custom",
20951
20953
  path: ["browserSession"],
20952
- message: `browserSession requires kind "publish", not "${manifest.kind}"`
20954
+ message: `browserSession requires kind "publish" or "ingestion", not "${manifest.kind}"`
20953
20955
  });
20954
20956
  }
20955
20957
  if (manifest.check === undefined) {
@@ -20073,11 +20073,11 @@ var PluginManifestSchemaBase = looseObject({
20073
20073
  });
20074
20074
  var PluginManifestSchema = PluginManifestSchemaBase.superRefine((manifest, ctx) => {
20075
20075
  if (manifest.browserSession !== undefined) {
20076
- if (manifest.kind !== "publish") {
20076
+ if (manifest.kind !== "publish" && manifest.kind !== "ingestion") {
20077
20077
  ctx.addIssue({
20078
20078
  code: "custom",
20079
20079
  path: ["browserSession"],
20080
- message: `browserSession requires kind "publish", not "${manifest.kind}"`
20080
+ message: `browserSession requires kind "publish" or "ingestion", not "${manifest.kind}"`
20081
20081
  });
20082
20082
  }
20083
20083
  if (manifest.check === undefined) {
@@ -20701,10 +20701,12 @@ function sha256Hex(value) {
20701
20701
  var DEFAULT_BOT_PROFILE_ROOT = join4(homedir4(), ".config", "kk", "browser-profiles");
20702
20702
  class BotError extends Error {
20703
20703
  code;
20704
- constructor(code, message) {
20704
+ details;
20705
+ constructor(code, message, details = {}) {
20705
20706
  super(message);
20706
20707
  this.name = "BotError";
20707
20708
  this.code = code;
20709
+ this.details = details;
20708
20710
  }
20709
20711
  }
20710
20712
  // ../../packages/publish-harness/src/profile-dir.ts
@@ -20369,10 +20369,12 @@ function normalizeSessionIdentity(value) {
20369
20369
  }
20370
20370
  class BotError extends Error {
20371
20371
  code;
20372
- constructor(code, message) {
20372
+ details;
20373
+ constructor(code, message, details = {}) {
20373
20374
  super(message);
20374
20375
  this.name = "BotError";
20375
20376
  this.code = code;
20377
+ this.details = details;
20376
20378
  }
20377
20379
  }
20378
20380
  // ../../packages/publish-harness/src/index.ts
@@ -20945,11 +20947,11 @@ var PluginManifestSchemaBase = looseObject({
20945
20947
  });
20946
20948
  var PluginManifestSchema = PluginManifestSchemaBase.superRefine((manifest, ctx) => {
20947
20949
  if (manifest.browserSession !== undefined) {
20948
- if (manifest.kind !== "publish") {
20950
+ if (manifest.kind !== "publish" && manifest.kind !== "ingestion") {
20949
20951
  ctx.addIssue({
20950
20952
  code: "custom",
20951
20953
  path: ["browserSession"],
20952
- message: `browserSession requires kind "publish", not "${manifest.kind}"`
20954
+ message: `browserSession requires kind "publish" or "ingestion", not "${manifest.kind}"`
20953
20955
  });
20954
20956
  }
20955
20957
  if (manifest.check === undefined) {
@@ -12225,11 +12225,11 @@ var PluginManifestSchemaBase = looseObject({
12225
12225
  });
12226
12226
  var PluginManifestSchema = PluginManifestSchemaBase.superRefine((manifest, ctx) => {
12227
12227
  if (manifest.browserSession !== undefined) {
12228
- if (manifest.kind !== "publish") {
12228
+ if (manifest.kind !== "publish" && manifest.kind !== "ingestion") {
12229
12229
  ctx.addIssue({
12230
12230
  code: "custom",
12231
12231
  path: ["browserSession"],
12232
- message: `browserSession requires kind "publish", not "${manifest.kind}"`
12232
+ message: `browserSession requires kind "publish" or "ingestion", not "${manifest.kind}"`
12233
12233
  });
12234
12234
  }
12235
12235
  if (manifest.check === undefined) {