akari-video 0.1.81 → 0.1.83

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 (90) hide show
  1. package/bin/akari.mjs +2 -0
  2. package/package.json +1 -1
  3. package/src/accept-command.mjs +10 -3
  4. package/src/doctor-command.mjs +1 -0
  5. package/src/narration-command.mjs +235 -161
  6. package/src/runtime-diagnostics.mjs +16 -19
  7. package/src/status-core/integrity.mjs +20 -4
  8. package/src/tts-engines.mjs +181 -0
  9. package/src/voice-command.mjs +551 -0
  10. package/vendor/.akari-capability-sources.json +3 -0
  11. package/vendor/docs/contract-2026-07-13-asset-library.md +1 -0
  12. package/vendor/docs/contract-2026-08-02-creator-root-v1.md +3 -3
  13. package/vendor/docs/contract-2026-08-03-caption-display-encoding-qc-v1.md +22 -20
  14. package/vendor/docs/contract-2026-08-12-chat-approval-v0.md +1 -1
  15. package/vendor/docs/contract-2026-09-02-item-caption-anchor-v0.md +8 -4
  16. package/vendor/docs/contract-2026-09-13-generation-v0.md +6 -2
  17. package/vendor/docs/contract-2026-09-24-caption-runs-v0.md +40 -0
  18. package/vendor/docs/contract-2026-09-24-style-v0.md +89 -0
  19. package/vendor/packages/akari-launcher/package.json +1 -1
  20. package/vendor/packages/akari-vibe/README.md +1 -1
  21. package/vendor/packages/creator-root/src/credentials.mjs +119 -0
  22. package/vendor/packages/creator-root/src/index.mjs +19 -0
  23. package/vendor/packages/creator-root/test/credentials.test.mjs +75 -0
  24. package/vendor/packages/creator-root/test/direct-tts-providers.test.mjs +19 -0
  25. package/vendor/packages/edit-lint/src/edit-lint.mjs +75 -4
  26. package/vendor/packages/edit-lint/src/engine-capabilities.json +1 -1
  27. package/vendor/packages/edit-store/lib/audio-schedule.d.ts +1 -0
  28. package/vendor/packages/edit-store/lib/audio-schedule.js +19 -18
  29. package/vendor/packages/edit-store/lib/caption-display.d.ts +4 -0
  30. package/vendor/packages/edit-store/lib/caption-display.js +67 -7
  31. package/vendor/packages/edit-store/lib/caption-runs.d.ts +64 -0
  32. package/vendor/packages/edit-store/lib/caption-runs.js +320 -0
  33. package/vendor/packages/edit-store/lib/caption-store.d.ts +45 -1
  34. package/vendor/packages/edit-store/lib/caption-store.js +108 -8
  35. package/vendor/packages/edit-store/lib/caption-window.d.ts +4 -0
  36. package/vendor/packages/edit-store/lib/caption-window.js +6 -0
  37. package/vendor/packages/edit-store/lib/caption-words-rederive.d.ts +3 -0
  38. package/vendor/packages/edit-store/lib/caption-words-rederive.js +20 -1
  39. package/vendor/packages/edit-store/lib/edit-v2-item-write.d.ts +3 -1
  40. package/vendor/packages/edit-store/lib/edit-v2-item-write.js +19 -4
  41. package/vendor/packages/edit-store/lib/edit-v2.d.ts +17 -9
  42. package/vendor/packages/edit-store/lib/edit-v2.js +38 -2
  43. package/vendor/packages/edit-store/lib/generated/edit-v2-keys.d.ts +1 -1
  44. package/vendor/packages/edit-store/lib/generated/edit-v2-keys.js +1 -0
  45. package/vendor/packages/edit-store/lib/index.d.ts +2 -0
  46. package/vendor/packages/edit-store/lib/index.js +2 -0
  47. package/vendor/packages/edit-store/lib/internal-model.d.ts +1 -0
  48. package/vendor/packages/edit-store/lib/internal-model.js +4 -3
  49. package/vendor/packages/edit-store/lib/item-anchor.d.ts +4 -3
  50. package/vendor/packages/edit-store/lib/item-anchor.js +27 -5
  51. package/vendor/packages/edit-store/lib/legacy-audio-view.d.ts +3 -1
  52. package/vendor/packages/edit-store/lib/legacy-audio-view.js +10 -4
  53. package/vendor/packages/edit-store/lib/migrate/legacy-parse.d.ts +1 -0
  54. package/vendor/packages/edit-store/lib/migrate/legacy-parse.js +1 -0
  55. package/vendor/packages/edit-store/lib/transform-keyframe-edit.d.ts +9 -0
  56. package/vendor/packages/edit-store/lib/transform-keyframe-edit.js +222 -0
  57. package/vendor/packages/edit-store/lib/tree-ops.js +2 -0
  58. package/vendor/packages/edit-store/lib/webview-kernel.js +96 -32
  59. package/vendor/packages/overlay-runtime/src/interaction.css +11 -0
  60. package/vendor/packages/overlay-runtime/src/interaction.js +138 -17
  61. package/vendor/packages/overlay-runtime/src/selection-scope.mjs +9 -1
  62. package/vendor/packages/schemas/bin/validate-captions.mjs +4 -1
  63. package/vendor/packages/schemas/captions.schema.json +30 -1
  64. package/vendor/packages/schemas/edit.schema.json +12 -0
  65. package/vendor/packages/schemas/engine-capabilities.json +1 -1
  66. package/vendor/packages/schemas/test/engine-capabilities.test.mjs +8 -0
  67. package/vendor/packages/schemas/test/validate-captions.test.mjs +9 -0
  68. package/vendor/skills/analyze-footage/bin/person-matte/resolve-packages.mjs +97 -21
  69. package/vendor/skills/analyze-footage/bin/transcribe-cloud.mjs +27 -38
  70. package/vendor/skills/analyze-footage/test/entrypoint-symlink.test.mjs +26 -1
  71. package/vendor/skills/analyze-footage/test/resolve-packages-newest.test.mjs +129 -0
  72. package/vendor/skills/generate-narration/SKILL.md +4 -3
  73. package/vendor/skills/generate-narration/engines.md +54 -9
  74. package/vendor/skills/generate-narration/voice-profile-setup.md +39 -15
  75. package/vendor/skills/manage-connections/SKILL.md +10 -3
  76. package/vendor/skills/manage-connections/bin/doctor.mjs +25 -44
  77. package/vendor/skills/manage-connections/bin/resolve-packages.mjs +97 -21
  78. package/vendor/skills/manage-connections/bin/test/resolve-packages.test.mjs +31 -0
  79. package/vendor/skills/manage-connections/dev-fixtures/resolve-packages-newest/README.md +17 -0
  80. package/vendor/skills/manage-connections/dev-fixtures/resolve-packages-newest/reproduce.mjs +97 -0
  81. package/vendor/skills/manage-connections/test/direct-tts-doctor.test.mjs +31 -0
  82. package/vendor/skills/manage-connections/test/resolve-packages-newest.test.mjs +129 -0
  83. package/vendor/skills/setup-audio-library/drop-folder.md +3 -3
  84. package/vendor/skills/setup-chat-approval/SKILL.md +1 -1
  85. package/vendor/skills/setup-chat-approval/bin/doctor.mjs +15 -27
  86. package/vendor/skills/setup-chat-approval/bin/find-chat-id.mjs +10 -10
  87. package/vendor/skills/setup-chat-approval/bin/resolve-packages.mjs +97 -21
  88. package/vendor/skills/setup-chat-approval/bin/test/distribution.test.mjs +33 -0
  89. package/vendor/skills/setup-chat-approval/setup-token.md +1 -1
  90. package/vendor/skills/setup-chat-approval/test/resolve-packages-newest.test.mjs +129 -0
package/bin/akari.mjs CHANGED
@@ -3,6 +3,7 @@ import { run, runUpdateCommand } from '../src/cli.mjs';
3
3
  import { runInitCommand } from '../src/init-command.mjs';
4
4
  import { runNewCommand } from '../src/new-command.mjs';
5
5
  import { runNarrationCommand } from '../src/narration-command.mjs';
6
+ import { runVoiceCommand } from '../src/voice-command.mjs';
6
7
  import { runInternalCommand } from '../src/internal-command.mjs';
7
8
  import { runSoundsCommand } from '../src/sounds-setup.mjs';
8
9
  import { runStatusCommand } from '../src/status-command.mjs';
@@ -78,6 +79,7 @@ const invoke = (argv[0] === '--version' || argv[0] === '-v') ? printVersion()
78
79
  : argv[0] === 'new' ? runNewCommand(argv.slice(1))
79
80
  : argv[0] === 'skills' ? runSkillsCommand(argv.slice(1))
80
81
  : argv[0] === 'narration' ? runNarrationCommand(argv.slice(1))
82
+ : argv[0] === 'voice' ? runVoiceCommand(argv.slice(1))
81
83
  : argv[0] === 'internal' ? runInternalCommand(argv.slice(1))
82
84
  : argv[0] === 'sounds' ? runSoundsCommand(argv.slice(1))
83
85
  : argv[0] === 'status' ? runStatusCommand(argv.slice(1))
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "akari-video",
3
- "version": "0.1.81",
3
+ "version": "0.1.83",
4
4
  "description": "AKARI Video launcher CLI — start an AI-edited video project from any directory: scaffold, connection check, then hand over to Claude Code (or opencode). AKARI Video を opencode や Claude Code で、どのディレクトリからでも始めるための `akari` ランチャー CLI。接続確認(doctor)→ 未セットアップならプロジェクト雛形を作成 → AI エージェントを起動する。外部 npm 依存ゼロ(Node.js 組み込みモジュールのみ)。",
5
5
  "type": "module",
6
6
  "bin": {
@@ -42,9 +42,8 @@ export async function runAcceptCommand(argv, options = {}) {
42
42
  const candidate = before.candidate;
43
43
  const phrase = `ACCEPT ${candidate.artifact_sha256}`;
44
44
  log(`Artifact: ${candidate.artifact}\nArtifact SHA-256: ${candidate.artifact_sha256}\nReceipt: ${candidate.receipt}\nReceipt SHA-256: ${candidate.receipt_sha256}\n`);
45
- if (candidate.audio_qc?.verdict === "INCONCLUSIVE") {
46
- log(`WARNING: audio_qc is INCONCLUSIVE; this is not an audio conformance PASS.\nConfigured: ${JSON.stringify(candidate.audio_qc.configured)}\nFilter report: ${JSON.stringify(candidate.audio_qc.filter_report)}\nDecoded artifact measurement: ${JSON.stringify(candidate.audio_qc.decoded_measurement)}\n`);
47
- }
45
+ const audioQcMessage = formatAudioQcAcceptance(candidate.audio_qc);
46
+ if (audioQcMessage) log(audioQcMessage);
48
47
 
49
48
  const prompt = options.prompt ?? promptFromTTY;
50
49
  let actorId;
@@ -88,6 +87,14 @@ export async function runAcceptCommand(argv, options = {}) {
88
87
  }
89
88
  }
90
89
 
90
+ export function formatAudioQcAcceptance(audioQc) {
91
+ if (audioQc?.verdict === "PASS") return "Audio QC: PASS.\n";
92
+ if (audioQc?.verdict === "INCONCLUSIVE") {
93
+ return `WARNING: audio_qc is INCONCLUSIVE; this is not an audio conformance PASS.\nConfigured: ${JSON.stringify(audioQc.configured)}\nFilter report: ${JSON.stringify(audioQc.filter_report)}\nDecoded artifact measurement: ${JSON.stringify(audioQc.decoded_measurement)}\n`;
94
+ }
95
+ return "";
96
+ }
97
+
91
98
  export function parseAcceptArguments(argv, cwd = process.cwd()) {
92
99
  let projectRoot = cwd;
93
100
  let pathSeen = false;
@@ -41,6 +41,7 @@ export function formatDoctorReport(report) {
41
41
  : report.fal_key?.source === 'credentials.env'
42
42
  ? report.fal_key.credentials_path
43
43
  : '環境変数にも credentials.env にもありません'],
44
+ ['鍵の置き場', report.fal_key?.location ?? 'なし', '新 / 旧 / 両方'],
44
45
  ['path', report.path.on_path ? 'ok' : 'missing', report.path.cli_shim_dir],
45
46
  ];
46
47
  const widths = [