akari-video 0.1.79 → 0.1.81

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 (101) hide show
  1. package/package.json +1 -1
  2. package/src/assets-command.mjs +34 -0
  3. package/src/cli.mjs +12 -0
  4. package/src/narration-command.mjs +378 -27
  5. package/src/store-command.mjs +12 -10
  6. package/src/vendor-sources.mjs +14 -0
  7. package/vendor/.akari-capability-sources.json +2 -0
  8. package/vendor/docs/contract-2026-08-02-preview-parity.md +2 -2
  9. package/vendor/docs/contract-2026-08-09-transform-keyframes-v0.md +2 -2
  10. package/vendor/docs/contract-2026-08-30-motion-and-keyframes-v0.md +2 -2
  11. package/vendor/docs/contract-2026-09-13-generation-v0.md +17 -1
  12. package/vendor/packages/akari-launcher/package.json +1 -1
  13. package/vendor/packages/akari-tools/src/world/invariants.mjs +117 -0
  14. package/vendor/packages/akari-tools/src/world/normalize.mjs +139 -0
  15. package/vendor/packages/asset-resolver/bin/akari-assets.mjs +23 -1
  16. package/vendor/packages/asset-resolver/src/library-check.mjs +151 -0
  17. package/vendor/packages/asset-resolver/src/library-usage.mjs +56 -0
  18. package/vendor/packages/asset-resolver/src/paid-zip.mjs +32 -12
  19. package/vendor/packages/asset-resolver/test/cli-guards.test.mjs +5 -3
  20. package/vendor/packages/asset-resolver/test/fieldreport-zip.test.mjs +24 -0
  21. package/vendor/packages/asset-resolver/test/library-check.test.mjs +83 -0
  22. package/vendor/packages/asset-resolver/test/library-usage.test.mjs +25 -0
  23. package/vendor/packages/audio-library-setup/bin/fetch-akari-sounds.mjs +15 -61
  24. package/vendor/packages/audio-library-setup/test/fetch-akari-sounds.test.mjs +15 -11
  25. package/vendor/packages/edit-lint/src/edit-lint.mjs +54 -12
  26. package/vendor/packages/edit-lint/src/engine-capabilities.json +124 -0
  27. package/vendor/packages/edit-store/lib/audio-schedule.js +30 -0
  28. package/vendor/packages/edit-store/lib/caption-display.js +62 -9
  29. package/vendor/packages/edit-store/lib/caption-store.d.ts +8 -0
  30. package/vendor/packages/edit-store/lib/caption-store.js +164 -2
  31. package/vendor/packages/edit-store/lib/caption-words-rederive.d.ts +20 -0
  32. package/vendor/packages/edit-store/lib/caption-words-rederive.js +295 -15
  33. package/vendor/packages/edit-store/lib/generation-meta.d.ts +3 -1
  34. package/vendor/packages/edit-store/lib/generation-meta.js +6 -0
  35. package/vendor/packages/edit-store/lib/webview-kernel.js +40 -4
  36. package/vendor/packages/overlay-runtime/runtimes.mjs +466 -0
  37. package/vendor/packages/overlay-runtime/src/fragment-source-write.d.ts +2 -0
  38. package/vendor/packages/overlay-runtime/src/fragment-source-write.mjs +103 -0
  39. package/vendor/packages/overlay-runtime/src/glass-runtime.js +657 -0
  40. package/vendor/packages/overlay-runtime/src/interaction.css +138 -0
  41. package/vendor/packages/overlay-runtime/src/interaction.js +3435 -0
  42. package/vendor/packages/overlay-runtime/src/keyframes.d.ts +24 -0
  43. package/vendor/packages/overlay-runtime/src/keyframes.mjs +176 -0
  44. package/vendor/packages/overlay-runtime/src/minimap.css +37 -0
  45. package/vendor/packages/overlay-runtime/src/minimap.js +110 -0
  46. package/vendor/packages/overlay-runtime/src/motion-vocab.css +47 -0
  47. package/vendor/packages/overlay-runtime/src/overlay-runtime.js +437 -0
  48. package/vendor/packages/overlay-runtime/src/parts.d.ts +40 -0
  49. package/vendor/packages/overlay-runtime/src/parts.mjs +527 -0
  50. package/vendor/packages/overlay-runtime/src/runtime-registry.js +19 -0
  51. package/vendor/packages/overlay-runtime/src/selection-scope.mjs +122 -0
  52. package/vendor/packages/overlay-runtime/src/slot-params.js +41 -0
  53. package/vendor/packages/overlay-runtime/src/text-split.js +202 -0
  54. package/vendor/packages/overlay-runtime/src/three-runtime.js +2692 -0
  55. package/vendor/packages/overlay-runtime/src/vendor/LICENSE.liquid-glass-js +21 -0
  56. package/vendor/packages/overlay-runtime/src/vendor/avatar-vrm-bundle.js +983 -0
  57. package/vendor/packages/overlay-runtime/src/vendor/budoux-LICENSE.txt +213 -0
  58. package/vendor/packages/overlay-runtime/src/vendor/budoux-ja-bundle.js +110 -0
  59. package/vendor/packages/overlay-runtime/src/vendor/matter-js-LICENSE.txt +21 -0
  60. package/vendor/packages/overlay-runtime/src/vendor/opentype.js-LICENSE.txt +20 -0
  61. package/vendor/packages/overlay-runtime/src/vendor/poly-decomp-LICENSE.txt +20 -0
  62. package/vendor/packages/overlay-runtime/src/vendor/three-LICENSE.txt +21 -0
  63. package/vendor/packages/overlay-runtime/src/vendor/three-bundle.js +4116 -0
  64. package/vendor/packages/overlay-runtime/src/vendor/three-vrm-LICENSE.txt +22 -0
  65. package/vendor/packages/overlay-runtime/src/vendor/troika-three-text-LICENSE.txt +22 -0
  66. package/vendor/packages/overlay-runtime/src/vendor/vendor-3d-text-bundle.js +248 -0
  67. package/vendor/packages/overlay-runtime/src/vendor/vgpu-LICENSE.txt +21 -0
  68. package/vendor/packages/overlay-runtime/src/vendor/vgpu-bundle.js +17 -0
  69. package/vendor/packages/overlay-runtime/src/vendor/world-camera.js +80 -0
  70. package/vendor/packages/overlay-runtime/src/vgpu-runtime.js +365 -0
  71. package/vendor/packages/overlay-runtime/src/video-fx.js +605 -0
  72. package/vendor/packages/overlay-runtime/src/viewport-units.js +148 -0
  73. package/vendor/packages/overlay-runtime/src/world-runtime.js +282 -0
  74. package/vendor/packages/overlay-runtime/test-harness/fonts/ZenKakuGothicNew-Black.ttf +0 -0
  75. package/vendor/packages/render-cut/src/caption-font.mjs +59 -0
  76. package/vendor/packages/render-cut/src/fragment-assets.mjs +212 -0
  77. package/vendor/packages/render-cut/src/html-scan.mjs +10 -0
  78. package/vendor/packages/render-cut/src/library-reference.mjs +97 -0
  79. package/vendor/packages/render-cut/src/render-inputs.mjs +508 -0
  80. package/vendor/packages/schemas/generation-meta.schema.json +1 -1
  81. package/vendor/packages/schemas/intake.schema.json +1 -1
  82. package/vendor/packages/schemas/test/generation-meta.test.mjs +9 -0
  83. package/vendor/packages/word-book/src/index.mjs +530 -0
  84. package/vendor/skills/address-review/bin/core/review-store.mjs +73 -39
  85. package/vendor/skills/address-review/test/review-loss.test.mjs +41 -0
  86. package/vendor/skills/compile-review-session/bin/core/install-root.mjs +48 -0
  87. package/vendor/skills/compile-review-session/bin/core/review-store.mjs +97 -23
  88. package/vendor/skills/compile-review-session/bin/core/time-mapping.mjs +56 -12
  89. package/vendor/skills/compile-review-session/dev-fixtures/issue-69-review-json/README.md +54 -0
  90. package/vendor/skills/compile-review-session/dev-fixtures/issue-69-review-json/reproduce.mjs +58 -0
  91. package/vendor/skills/compile-review-session/dev-fixtures/issue-79/README.md +3 -0
  92. package/vendor/skills/compile-review-session/dev-fixtures/issue-79/reproduce.mjs +9 -0
  93. package/vendor/skills/compile-review-session/test/helpers/issue-79-fixture.mjs +93 -0
  94. package/vendor/skills/compile-review-session/test/issue-79-snapshot.test.mjs +71 -0
  95. package/vendor/skills/compile-review-session/test/review-loss.test.mjs +52 -0
  96. package/vendor/skills/edit-lint/SKILL.md +2 -0
  97. package/vendor/skills/generate-narration/SKILL.md +1 -1
  98. package/vendor/skills/generate-narration/engines.md +26 -4
  99. package/vendor/skills/manage-connections/bin/doctor.mjs +3 -1
  100. package/vendor/skills/manage-connections/test/fieldreport-report-location.test.mjs +24 -0
  101. package/vendor/skills/overlay-authoring/motion.md +6 -4
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "akari-video",
3
- "version": "0.1.79",
3
+ "version": "0.1.81",
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": {
@@ -1,4 +1,6 @@
1
1
  import { spawnSync } from 'node:child_process';
2
+ import { dirname, resolve } from 'node:path';
3
+ import { pathToFileURL } from 'node:url';
2
4
 
3
5
  import { resolveLauncherAssets } from './repo-assets.mjs';
4
6
  import { assetsResolverUnavailableError } from './messages.mjs';
@@ -29,6 +31,19 @@ export async function runAssetsCommand(args, options = {}) {
29
31
  const env = options.env ?? process.env;
30
32
  const assets = options.assets ?? resolveLauncherAssets();
31
33
 
34
+ // These catalog pack IDs are reference entries; their tracks are distributed by the
35
+ // first-party Sounds fetcher, while the resolver catalog contains only individual IDs.
36
+ if (args[0] === 'fetch' && /^akari-sounds-[a-z0-9-]+$/u.test(args[1] ?? '')) {
37
+ if (!assets?.audioFetchScriptPath) {
38
+ logError('AKARI Sounds の取得スクリプトが同梱されていません');
39
+ return { exitCode: 1 };
40
+ }
41
+ const spawn = options.spawnSoundsCli ?? defaultSpawnAssetsCli;
42
+ const fetchArgs = ['--pack', args[1], ...(args.includes('--force') ? ['--force'] : [])];
43
+ const result = spawn(assets.audioFetchScriptPath, fetchArgs, env);
44
+ return { exitCode: typeof result.status === 'number' ? result.status : 1 };
45
+ }
46
+
32
47
  const cliPath = assets?.assetResolverCliPath;
33
48
  if (!cliPath) {
34
49
  logError(assetsResolverUnavailableError());
@@ -36,6 +51,25 @@ export async function runAssetsCommand(args, options = {}) {
36
51
  }
37
52
 
38
53
  const spawnAssetsCli = options.spawnAssetsCli ?? defaultSpawnAssetsCli;
54
+ if (args[0] === 'fetch' && assets?.repoRoot) {
55
+ try {
56
+ const load = options.loadCatalog ?? (await import(pathToFileURL(resolve(dirname(cliPath), '../src/catalog.mjs')).href)).loadCatalog;
57
+ const catalog = await load({ env });
58
+ if (!catalog.items.some(item => item.id === args[1])) {
59
+ const members = catalog.items.filter(item => Array.isArray(item.tags) && item.tags.includes(`pack:${args[1]}`));
60
+ if (members.length > 0) {
61
+ let exitCode = 0;
62
+ for (const item of members) {
63
+ const result = spawnAssetsCli(cliPath, ['fetch', item.id, ...args.slice(2)], env);
64
+ if (result.status !== 0) exitCode = 1;
65
+ }
66
+ return { exitCode };
67
+ }
68
+ }
69
+ } catch {
70
+ // Delegate to the resolver, which owns catalog errors and offline guidance.
71
+ }
72
+ }
39
73
  const result = spawnAssetsCli(cliPath, args, env);
40
74
  const exitCode = typeof result.status === 'number' ? result.status : (result.error ? 1 : 0);
41
75
  return { exitCode };
package/src/cli.mjs CHANGED
@@ -75,6 +75,13 @@ export async function run(args, options = {}) {
75
75
  );
76
76
 
77
77
  let projectRoot = options.projectRoot ?? process.cwd();
78
+ const bareNonInteractive = args.length === 0
79
+ && !(options.isTTY ?? Boolean(process.stdin.isTTY && process.stdout.isTTY));
80
+ if (bareNonInteractive && !detectProjectState(projectRoot).scaffolded) {
81
+ log(`このフォルダーは AKARI Video プロジェクトとしてまだセットアップされていません: ${projectRoot}`);
82
+ log('非対話シェルのため状態確認のみで終了します。');
83
+ return { exitCode: 0, scaffolded: false, claudeLaunched: false, opencodeLaunched: false };
84
+ }
78
85
 
79
86
  // 作業場(creator-root)の初回動線(契約 §5・§6-1)。`--here` はお試しモード強制
80
87
  // (現行動作)のため丸ごとスキップする(契約 §9・非 TTY と同じ現行動作互換の扱い)。
@@ -125,6 +132,11 @@ export async function run(args, options = {}) {
125
132
  log(describeVersionStatus(versionInfo, readCacheSync(resolveCachePath(env)), runtimeDiagnostics));
126
133
  }
127
134
 
135
+ if (bareNonInteractive) {
136
+ log('非対話シェルのため状態確認のみで終了します。');
137
+ return { exitCode: 0, scaffolded: state.scaffolded, claudeLaunched: false, opencodeLaunched: false };
138
+ }
139
+
128
140
  // 新版通知(契約 §4-1): キャッシュの読み比較のみ・ネットワークには一切触れない
129
141
  // (起動をブロックしない)。fetch は detached な子プロセスへ切り離し、
130
142
  // 結果は次回セッションで効く。