@codeyam/codeyam-cli 0.1.9 → 0.1.11

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 (87) hide show
  1. package/analyzer-template/.build-info.json +8 -8
  2. package/analyzer-template/log.txt +3 -3
  3. package/analyzer-template/packages/database/src/lib/kysely/tables/editorScenariosTable.ts +45 -0
  4. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.d.ts +2 -0
  5. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.d.ts.map +1 -1
  6. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.js +45 -0
  7. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.js.map +1 -1
  8. package/codeyam-cli/src/commands/editor.js +236 -76
  9. package/codeyam-cli/src/commands/editor.js.map +1 -1
  10. package/codeyam-cli/src/commands/init.js +1 -0
  11. package/codeyam-cli/src/commands/init.js.map +1 -1
  12. package/codeyam-cli/src/utils/__tests__/analyzerFinalization.test.js +29 -0
  13. package/codeyam-cli/src/utils/__tests__/analyzerFinalization.test.js.map +1 -1
  14. package/codeyam-cli/src/utils/__tests__/editorApi.test.js +18 -8
  15. package/codeyam-cli/src/utils/__tests__/editorApi.test.js.map +1 -1
  16. package/codeyam-cli/src/utils/__tests__/editorAudit.test.js +133 -1
  17. package/codeyam-cli/src/utils/__tests__/editorAudit.test.js.map +1 -1
  18. package/codeyam-cli/src/utils/__tests__/editorPreview.test.js +14 -0
  19. package/codeyam-cli/src/utils/__tests__/editorPreview.test.js.map +1 -1
  20. package/codeyam-cli/src/utils/__tests__/editorScenarios.test.js +205 -1
  21. package/codeyam-cli/src/utils/__tests__/editorScenarios.test.js.map +1 -1
  22. package/codeyam-cli/src/utils/__tests__/entityChangeStatus.test.js +58 -1
  23. package/codeyam-cli/src/utils/__tests__/entityChangeStatus.test.js.map +1 -1
  24. package/codeyam-cli/src/utils/__tests__/parseRegisterArg.test.js +30 -2
  25. package/codeyam-cli/src/utils/__tests__/parseRegisterArg.test.js.map +1 -1
  26. package/codeyam-cli/src/utils/__tests__/scenariosManifest.test.js +155 -1
  27. package/codeyam-cli/src/utils/__tests__/scenariosManifest.test.js.map +1 -1
  28. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js +1 -0
  29. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js.map +1 -1
  30. package/codeyam-cli/src/utils/analyzerFinalization.js +5 -1
  31. package/codeyam-cli/src/utils/analyzerFinalization.js.map +1 -1
  32. package/codeyam-cli/src/utils/editorApi.js +11 -5
  33. package/codeyam-cli/src/utils/editorApi.js.map +1 -1
  34. package/codeyam-cli/src/utils/editorAudit.js +34 -0
  35. package/codeyam-cli/src/utils/editorAudit.js.map +1 -1
  36. package/codeyam-cli/src/utils/editorPreview.js +9 -4
  37. package/codeyam-cli/src/utils/editorPreview.js.map +1 -1
  38. package/codeyam-cli/src/utils/editorScenarios.js +64 -9
  39. package/codeyam-cli/src/utils/editorScenarios.js.map +1 -1
  40. package/codeyam-cli/src/utils/entityChangeStatus.server.js +34 -0
  41. package/codeyam-cli/src/utils/entityChangeStatus.server.js.map +1 -1
  42. package/codeyam-cli/src/utils/parseRegisterArg.js.map +1 -1
  43. package/codeyam-cli/src/utils/progress.js +2 -2
  44. package/codeyam-cli/src/utils/progress.js.map +1 -1
  45. package/codeyam-cli/src/utils/scenariosManifest.js +82 -0
  46. package/codeyam-cli/src/utils/scenariosManifest.js.map +1 -1
  47. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js +1 -0
  48. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js.map +1 -1
  49. package/codeyam-cli/src/webserver/__tests__/idleDetector.test.js +146 -0
  50. package/codeyam-cli/src/webserver/__tests__/idleDetector.test.js.map +1 -0
  51. package/codeyam-cli/src/webserver/build/client/assets/{ScenarioViewer-Bd-hxofb.js → ScenarioViewer-TSD3C211.js} +1 -1
  52. package/codeyam-cli/src/webserver/build/client/assets/api.editor-session-l0sNRNKZ.js +1 -0
  53. package/codeyam-cli/src/webserver/build/client/assets/{dev.empty-BsDh6TSF.js → dev.empty-Ii3inc0_.js} +1 -1
  54. package/codeyam-cli/src/webserver/build/client/assets/editor-16o0AIFV.js +15 -0
  55. package/codeyam-cli/src/webserver/build/client/assets/editorPreview-7Uga8I59.js +41 -0
  56. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha._-BsDXNp45.js → entity._sha._-DwCV5__E.js} +1 -1
  57. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha.scenarios._scenarioId.dev-BgAqUtTZ.js → entity._sha.scenarios._scenarioId.dev-BwKcai0j.js} +1 -1
  58. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha.scenarios._scenarioId.fullscreen-Bmshgrij.js → entity._sha.scenarios._scenarioId.fullscreen-CHMiAog3.js} +1 -1
  59. package/codeyam-cli/src/webserver/build/client/assets/globals-CQPR0pFR.css +1 -0
  60. package/codeyam-cli/src/webserver/build/client/assets/{manifest-65850841.js → manifest-76e7b62c.js} +1 -1
  61. package/codeyam-cli/src/webserver/build/client/assets/{root-BwX8YgFb.js → root-DBjt6o04.js} +4 -4
  62. package/codeyam-cli/src/webserver/build/client/assets/useCustomSizes-C-_hOl_g.js +1 -0
  63. package/codeyam-cli/src/webserver/build/client/sound-test.html +98 -0
  64. package/codeyam-cli/src/webserver/build/server/assets/{index-DEEQf4pi.js → index-DsZjKspK.js} +1 -1
  65. package/codeyam-cli/src/webserver/build/server/assets/init-DdqKD2p4.js +10 -0
  66. package/codeyam-cli/src/webserver/build/server/assets/server-build-CKKeWtVK.js +444 -0
  67. package/codeyam-cli/src/webserver/build/server/index.js +1 -1
  68. package/codeyam-cli/src/webserver/build-info.json +5 -5
  69. package/codeyam-cli/src/webserver/idleDetector.js +73 -0
  70. package/codeyam-cli/src/webserver/idleDetector.js.map +1 -0
  71. package/codeyam-cli/src/webserver/public/sound-test.html +98 -0
  72. package/codeyam-cli/src/webserver/server.js +46 -4
  73. package/codeyam-cli/src/webserver/server.js.map +1 -1
  74. package/codeyam-cli/src/webserver/terminalServer.js +65 -26
  75. package/codeyam-cli/src/webserver/terminalServer.js.map +1 -1
  76. package/codeyam-cli/templates/codeyam-editor-claude.md +1 -1
  77. package/codeyam-cli/templates/editor-step-hook.py +3 -2
  78. package/codeyam-cli/templates/skills/codeyam-editor/SKILL.md +10 -9
  79. package/package.json +1 -1
  80. package/packages/database/src/lib/kysely/tables/editorScenariosTable.js +45 -0
  81. package/packages/database/src/lib/kysely/tables/editorScenariosTable.js.map +1 -1
  82. package/codeyam-cli/src/webserver/build/client/assets/editor-PBc_6L9R.js +0 -10
  83. package/codeyam-cli/src/webserver/build/client/assets/editorPreview-4FzHlcNn.js +0 -41
  84. package/codeyam-cli/src/webserver/build/client/assets/globals-B8vTTNy2.css +0 -1
  85. package/codeyam-cli/src/webserver/build/client/assets/useCustomSizes-BE43Hjti.js +0 -1
  86. package/codeyam-cli/src/webserver/build/server/assets/init-CkWmyFY2.js +0 -10
  87. package/codeyam-cli/src/webserver/build/server/assets/server-build-BHi-9O8W.js +0 -439
@@ -1,10 +1,10 @@
1
1
  {
2
- "buildTimestamp": "2026-03-12T17:58:34.140Z",
3
- "buildTime": 1773338314140,
4
- "gitCommit": "9e6e149cd364b3c098d2b12498b0718f9479a529",
5
- "nodeVersion": "v20.20.1",
6
- "contentHash": "c6e453b5eb8471fdcb3e34085216f7d6523809504f12ddb1c6ee11665149d827",
7
- "buildNumber": 962,
8
- "semanticVersion": "0.1.962",
9
- "version": "0.1.962 (2026-03-12T17:58+c6e453b)"
2
+ "buildTimestamp": "2026-03-13T21:46:00.717Z",
3
+ "buildTime": 1773438360717,
4
+ "gitCommit": "afcd8c8e64b05a28a49e8116967477871e59cbec",
5
+ "nodeVersion": "v20.20.0",
6
+ "contentHash": "68aada52a9e636008fb2f4fffc504ee4b3e09bd06eacbf40d008b536dcb9018b",
7
+ "buildNumber": 988,
8
+ "semanticVersion": "0.1.988",
9
+ "version": "0.1.988 (2026-03-13T21:46+68aada5)"
10
10
  }
@@ -1,7 +1,7 @@
1
1
 
2
- [3/12/2026, 5:58:34 PM] > codeyam-combo@1.0.0 mergeDependencies
3
- [3/12/2026, 5:58:34 PM] > node ./scripts/mergePackageJsonFiles.cjs
2
+ [3/13/2026, 9:46:00 PM] > codeyam-combo@1.0.0 mergeDependencies
3
+ [3/13/2026, 9:46:00 PM] > node ./scripts/mergePackageJsonFiles.cjs
4
4
 
5
5
 
6
- [3/12/2026, 5:58:34 PM] Merged dependencies into root package.json
6
+ [3/13/2026, 9:46:00 PM] Merged dependencies into root package.json
7
7
 
@@ -16,6 +16,8 @@ const editorScenariosSchema = {
16
16
  viewport_width: schemaField<number | null>(),
17
17
  viewport_height: schemaField<number | null>(),
18
18
  dimension: schemaField<string | null>(),
19
+ dimensions: schemaField<string | null>(),
20
+ screenshot_paths: schemaField<string | null>(),
19
21
  created_at: schemaField<Generated<string>>(),
20
22
  updated_at: schemaField<Generated<string>>(),
21
23
  } as const;
@@ -90,4 +92,47 @@ export async function createEditorScenariosTable(
90
92
  } catch {
91
93
  // Column already exists — expected for fresh databases
92
94
  }
95
+
96
+ // Multi-dimension support: JSON array of dimension names and map of screenshot paths
97
+ for (const col of ['dimensions', 'screenshot_paths'] as const) {
98
+ try {
99
+ await db.schema
100
+ .alterTable('editor_scenarios')
101
+ .addColumn(col, 'text')
102
+ .execute();
103
+ } catch {
104
+ // Column already exists — expected for fresh databases
105
+ }
106
+ }
107
+
108
+ // Backfill: wrap existing single dimension into dimensions array,
109
+ // and existing screenshot_path into screenshot_paths object
110
+ try {
111
+ const rows = await db
112
+ .selectFrom('editor_scenarios')
113
+ .select(['id', 'dimension', 'screenshot_path'])
114
+ .execute();
115
+ for (const row of rows) {
116
+ const r = row as any;
117
+ if (r.dimension && !r.dimensions) {
118
+ await db
119
+ .updateTable('editor_scenarios')
120
+ .set({ dimensions: JSON.stringify([r.dimension]) })
121
+ .where('id', '=', r.id)
122
+ .execute();
123
+ }
124
+ if (r.screenshot_path && !r.screenshot_paths) {
125
+ const dimName = r.dimension || 'Default';
126
+ await db
127
+ .updateTable('editor_scenarios')
128
+ .set({
129
+ screenshot_paths: JSON.stringify({ [dimName]: r.screenshot_path }),
130
+ })
131
+ .where('id', '=', r.id)
132
+ .execute();
133
+ }
134
+ }
135
+ } catch {
136
+ // Backfill is best-effort — columns may not exist yet on first run
137
+ }
93
138
  }
@@ -13,6 +13,8 @@ declare const editorScenariosSchema: {
13
13
  readonly viewport_width: number;
14
14
  readonly viewport_height: number;
15
15
  readonly dimension: string;
16
+ readonly dimensions: string;
17
+ readonly screenshot_paths: string;
16
18
  readonly created_at: Generated<string>;
17
19
  readonly updated_at: Generated<string>;
18
20
  };
@@ -1 +1 @@
1
- {"version":3,"file":"editorScenariosTable.d.ts","sourceRoot":"","sources":["../../../../../../../database/src/lib/kysely/tables/editorScenariosTable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAA2B,MAAM,QAAQ,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAIxC,QAAA,MAAM,qBAAqB;;;;;;;;;;;;;;;CAejB,CAAC;AAEX,MAAM,MAAM,oBAAoB,GAAG;KAChC,CAAC,IAAI,MAAM,OAAO,qBAAqB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,CAAC,CAAC;CAC7E,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAEnC,CAAC,MAAM,oBAAoB,CAAC,EAAE,CAAC;AAEpC,wBAAsB,0BAA0B,CAC9C,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GACd,OAAO,CAAC,IAAI,CAAC,CA4Df"}
1
+ {"version":3,"file":"editorScenariosTable.d.ts","sourceRoot":"","sources":["../../../../../../../database/src/lib/kysely/tables/editorScenariosTable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAA2B,MAAM,QAAQ,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAIxC,QAAA,MAAM,qBAAqB;;;;;;;;;;;;;;;;;CAiBjB,CAAC;AAEX,MAAM,MAAM,oBAAoB,GAAG;KAChC,CAAC,IAAI,MAAM,OAAO,qBAAqB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,CAAC,CAAC;CAC7E,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAEnC,CAAC,MAAM,oBAAoB,CAAC,EAAE,CAAC;AAEpC,wBAAsB,0BAA0B,CAC9C,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GACd,OAAO,CAAC,IAAI,CAAC,CAuGf"}
@@ -12,6 +12,8 @@ const editorScenariosSchema = {
12
12
  viewport_width: schemaField(),
13
13
  viewport_height: schemaField(),
14
14
  dimension: schemaField(),
15
+ dimensions: schemaField(),
16
+ screenshot_paths: schemaField(),
15
17
  created_at: schemaField(),
16
18
  updated_at: schemaField(),
17
19
  };
@@ -72,5 +74,48 @@ export async function createEditorScenariosTable(db) {
72
74
  catch {
73
75
  // Column already exists — expected for fresh databases
74
76
  }
77
+ // Multi-dimension support: JSON array of dimension names and map of screenshot paths
78
+ for (const col of ['dimensions', 'screenshot_paths']) {
79
+ try {
80
+ await db.schema
81
+ .alterTable('editor_scenarios')
82
+ .addColumn(col, 'text')
83
+ .execute();
84
+ }
85
+ catch {
86
+ // Column already exists — expected for fresh databases
87
+ }
88
+ }
89
+ // Backfill: wrap existing single dimension into dimensions array,
90
+ // and existing screenshot_path into screenshot_paths object
91
+ try {
92
+ const rows = await db
93
+ .selectFrom('editor_scenarios')
94
+ .select(['id', 'dimension', 'screenshot_path'])
95
+ .execute();
96
+ for (const row of rows) {
97
+ const r = row;
98
+ if (r.dimension && !r.dimensions) {
99
+ await db
100
+ .updateTable('editor_scenarios')
101
+ .set({ dimensions: JSON.stringify([r.dimension]) })
102
+ .where('id', '=', r.id)
103
+ .execute();
104
+ }
105
+ if (r.screenshot_path && !r.screenshot_paths) {
106
+ const dimName = r.dimension || 'Default';
107
+ await db
108
+ .updateTable('editor_scenarios')
109
+ .set({
110
+ screenshot_paths: JSON.stringify({ [dimName]: r.screenshot_path }),
111
+ })
112
+ .where('id', '=', r.id)
113
+ .execute();
114
+ }
115
+ }
116
+ }
117
+ catch {
118
+ // Backfill is best-effort — columns may not exist yet on first run
119
+ }
75
120
  }
76
121
  //# sourceMappingURL=editorScenariosTable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"editorScenariosTable.js","sourceRoot":"","sources":["../../../../../../../database/src/lib/kysely/tables/editorScenariosTable.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"editorScenariosTable.js","sourceRoot":"","sources":["../../../../../../../database/src/lib/kysely/tables/editorScenariosTable.ts"],"names":[],"mappings":"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"}