human2ai 0.1.1 → 0.1.3

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 (138) hide show
  1. package/README.en.md +3 -3
  2. package/README.md +11 -3
  3. package/dist/cli/main.js +21 -13
  4. package/dist/cli/main.js.map +1 -1
  5. package/dist/domain/composition/analysis.js +1 -0
  6. package/dist/domain/composition/analysis.js.map +1 -1
  7. package/dist/domain/composition/draft.d.ts +1 -0
  8. package/dist/domain/composition/draft.js +53 -3
  9. package/dist/domain/composition/draft.js.map +1 -1
  10. package/dist/domain/composition/geometry.d.ts +5 -1
  11. package/dist/domain/composition/geometry.js +40 -2
  12. package/dist/domain/composition/geometry.js.map +1 -1
  13. package/dist/domain/composition/index.d.ts +2 -2
  14. package/dist/domain/composition/index.js +2 -2
  15. package/dist/domain/composition/index.js.map +1 -1
  16. package/dist/domain/composition/refinement/engine.js +1 -0
  17. package/dist/domain/composition/refinement/engine.js.map +1 -1
  18. package/dist/domain/composition/render.js +6 -1
  19. package/dist/domain/composition/render.js.map +1 -1
  20. package/dist/domain/composition/states.js +2 -2
  21. package/dist/domain/composition/states.js.map +1 -1
  22. package/dist/domain/composition/types.d.ts +3 -1
  23. package/dist/domain/session/capabilities.js +1 -0
  24. package/dist/domain/session/capabilities.js.map +1 -1
  25. package/dist/domain/spatial/camera-box-sheet.d.ts +15 -0
  26. package/dist/domain/spatial/camera-box-sheet.js +24 -0
  27. package/dist/domain/spatial/camera-box-sheet.js.map +1 -0
  28. package/dist/domain/spatial/camera-box.d.ts +1 -1
  29. package/dist/domain/spatial/camera-box.js +6 -2
  30. package/dist/domain/spatial/camera-box.js.map +1 -1
  31. package/dist/domain/spatial/index.d.ts +1 -0
  32. package/dist/domain/spatial/index.js +1 -0
  33. package/dist/domain/spatial/index.js.map +1 -1
  34. package/dist/domain/spatial/render-inputs.d.ts +3 -0
  35. package/dist/domain/spatial/render-inputs.js +6 -0
  36. package/dist/domain/spatial/render-inputs.js.map +1 -0
  37. package/dist/domain/spatial/scene-cache.js +3 -2
  38. package/dist/domain/spatial/scene-cache.js.map +1 -1
  39. package/dist/domain/spatial/types.d.ts +8 -0
  40. package/dist/domain/spatial/types.js.map +1 -1
  41. package/dist/domain/style/types.d.ts +1 -1
  42. package/dist/domain/style/types.js +1 -1
  43. package/dist/domain/style/types.js.map +1 -1
  44. package/dist/domain/ui-sketch/clipboard.d.ts +12 -0
  45. package/dist/domain/ui-sketch/clipboard.js +55 -0
  46. package/dist/domain/ui-sketch/clipboard.js.map +1 -0
  47. package/dist/domain/ui-sketch/index.d.ts +1 -0
  48. package/dist/domain/ui-sketch/index.js +1 -0
  49. package/dist/domain/ui-sketch/index.js.map +1 -1
  50. package/dist/server/routes/spatial-sessions.js +11 -3
  51. package/dist/server/routes/spatial-sessions.js.map +1 -1
  52. package/dist/server/spatial-render.d.ts +2 -2
  53. package/dist/server/spatial-render.js +9 -7
  54. package/dist/server/spatial-render.js.map +1 -1
  55. package/locales/en/common.json +49 -11
  56. package/migrations/0009_spatial_styles.sql +31 -0
  57. package/package.json +1 -1
  58. package/schemas/composition-draft.schema.json +17 -1
  59. package/schemas/spatial-draft.schema.json +12 -0
  60. package/schemas/spatial-operations.schema.json +12 -0
  61. package/skills/human2ai/SKILL.md +11 -5
  62. package/skills/human2ai/references/spatial-modeling.md +99 -0
  63. package/skills/human2ai/references/spatial.md +7 -2
  64. package/web/out/404/index.html +1 -1
  65. package/web/out/404.html +1 -1
  66. package/web/out/__next.__PAGE__.txt +14 -11
  67. package/web/out/__next._full.txt +9 -6
  68. package/web/out/__next._tree.txt +4 -2
  69. package/web/out/_next/static/Wakl9xK54qWYuP4Hpi0W9/_buildManifest.js +1 -0
  70. package/web/out/_next/static/chunks/130-027b022c82d30077.js +1 -0
  71. package/web/out/_next/static/chunks/678-6f33e7277564a5df.js +1 -0
  72. package/web/out/_next/static/chunks/728-7597352c3a7eeaf9.js +1 -0
  73. package/web/out/_next/static/chunks/{381-4a803b79da320e6e.js → 773-24ba65074da7fa71.js} +29 -29
  74. package/web/out/_next/static/chunks/app/_not-found/page-58bf95050b473956.js +1 -0
  75. package/web/out/_next/static/chunks/app/composition/page-30184e9c21352991.js +1 -0
  76. package/web/out/_next/static/chunks/app/{layout-745ca27ef8830f4f.js → layout-3b5f82ced220ef42.js} +1 -1
  77. package/web/out/_next/static/chunks/app/page-d41d1cdb1d6ed018.js +1 -0
  78. package/web/out/_next/static/chunks/app/spatial/page-fc3c66e1f94ed210.js +1 -0
  79. package/web/out/_next/static/chunks/app/styles/page-194a16109270e08d.js +1 -0
  80. package/web/out/_next/static/chunks/app/ui-sketch/page-c28eeab67fea766e.js +1 -0
  81. package/web/out/_next/static/chunks/main-app-ec9e35d71481270a.js +1 -0
  82. package/web/out/_next/static/chunks/next/dist/client/components/builtin/global-error-f62e60e5a6e74304.js +1 -0
  83. package/web/out/_next/static/chunks/{webpack-97ae63c0e0b2a512.js → webpack-fdd377b620f7ea99.js} +1 -1
  84. package/web/out/_next/static/css/1f8501a43042a5a2.css +1 -0
  85. package/web/out/_next/static/css/2ed56cbf8f662d23.css +5 -0
  86. package/web/out/_next/static/css/96839f63fcc5e50d.css +1 -0
  87. package/web/out/_not-found/__next._full.txt +5 -4
  88. package/web/out/_not-found/__next._not-found.__PAGE__.txt +13 -12
  89. package/web/out/_not-found/__next._tree.txt +1 -1
  90. package/web/out/_not-found/index.html +1 -1
  91. package/web/out/_not-found/index.txt +5 -4
  92. package/web/out/brand/h2a-1024.png +0 -0
  93. package/web/out/brand/h2a-128.png +0 -0
  94. package/web/out/brand/h2a-16.png +0 -0
  95. package/web/out/brand/h2a-256.png +0 -0
  96. package/web/out/brand/h2a-32.png +0 -0
  97. package/web/out/brand/h2a-48.png +0 -0
  98. package/web/out/brand/h2a-512.png +0 -0
  99. package/web/out/brand/h2a-64.png +0 -0
  100. package/web/out/brand/h2a.svg +7 -0
  101. package/web/out/composition/__next._full.txt +8 -6
  102. package/web/out/composition/__next._tree.txt +3 -2
  103. package/web/out/composition/__next.composition.__PAGE__.txt +16 -14
  104. package/web/out/composition/index.html +1 -1
  105. package/web/out/composition/index.txt +8 -6
  106. package/web/out/favicon.ico +0 -0
  107. package/web/out/icon.svg +8 -0
  108. package/web/out/index.html +1 -1
  109. package/web/out/index.txt +9 -6
  110. package/web/out/spatial/__next._full.txt +8 -6
  111. package/web/out/spatial/__next._tree.txt +3 -2
  112. package/web/out/spatial/__next.spatial.__PAGE__.txt +16 -14
  113. package/web/out/spatial/index.html +1 -1
  114. package/web/out/spatial/index.txt +8 -6
  115. package/web/out/styles/__next._full.txt +8 -6
  116. package/web/out/styles/__next._tree.txt +3 -2
  117. package/web/out/styles/__next.styles.__PAGE__.txt +16 -14
  118. package/web/out/styles/index.html +1 -1
  119. package/web/out/styles/index.txt +8 -6
  120. package/web/out/ui-sketch/__next._full.txt +8 -6
  121. package/web/out/ui-sketch/__next._tree.txt +3 -2
  122. package/web/out/ui-sketch/__next.ui-sketch.__PAGE__.txt +16 -14
  123. package/web/out/ui-sketch/index.html +1 -1
  124. package/web/out/ui-sketch/index.txt +8 -6
  125. package/web/out/_next/static/chunks/130-30e6d2e5f7a4afd6.js +0 -1
  126. package/web/out/_next/static/chunks/678-9951dd1f111b2d1a.js +0 -1
  127. package/web/out/_next/static/chunks/728-eb8b667f79229443.js +0 -1
  128. package/web/out/_next/static/chunks/app/_not-found/page-c0cd75ac39fbf9cf.js +0 -1
  129. package/web/out/_next/static/chunks/app/composition/page-82eeb416ecef2a2a.js +0 -1
  130. package/web/out/_next/static/chunks/app/page-09014a3025b8154f.js +0 -1
  131. package/web/out/_next/static/chunks/app/spatial/page-f6222e4851f65826.js +0 -1
  132. package/web/out/_next/static/chunks/app/styles/page-bfab3acfd9919326.js +0 -1
  133. package/web/out/_next/static/chunks/app/ui-sketch/page-e1778ac707a582f3.js +0 -1
  134. package/web/out/_next/static/chunks/main-app-0cf10803ab17c700.js +0 -1
  135. package/web/out/_next/static/chunks/next/dist/client/components/builtin/global-error-728204b7cccc4ed2.js +0 -1
  136. package/web/out/_next/static/css/1692e333af8ae3a3.css +0 -5
  137. package/web/out/_next/static/pgo-N_WpUudRRTusXQnzz/_buildManifest.js +0 -1
  138. /package/web/out/_next/static/{pgo-N_WpUudRRTusXQnzz → Wakl9xK54qWYuP4Hpi0W9}/_ssgManifest.js +0 -0
@@ -0,0 +1,55 @@
1
+ import { UI_SKETCH_START_STAGE_ID, uiSketchDraftForStage, updateUiSketchStageDraft } from "./draft.js";
2
+ import { uiSketchSelectionWithGroups } from "./groups.js";
3
+ import { uiSketchLayerOrder } from "./layers.js";
4
+ export function copyUiSketchItems(draft, itemIds) {
5
+ const selected = new Set(uiSketchSelectionWithGroups(draft, itemIds));
6
+ return structuredClone({
7
+ rectangles: draft.rectangles.filter((item) => selected.has(item.id)),
8
+ texts: draft.texts.filter((item) => selected.has(item.id)),
9
+ images: draft.images.filter((item) => selected.has(item.id)),
10
+ groups: draft.groups.filter((group) => group.itemIds.every((id) => selected.has(id))),
11
+ layerOrder: uiSketchLayerOrder(draft).filter((id) => selected.has(id)),
12
+ });
13
+ }
14
+ export function pasteUiSketchItems(input, clipboard, offset, stageId = UI_SKETCH_START_STAGE_ID) {
15
+ if (clipboard.layerOrder.length === 0)
16
+ return { draft: input, ids: [] };
17
+ const draft = uiSketchDraftForStage(input, stageId);
18
+ const usedIds = new Set([
19
+ ...draft.rectangles, ...draft.texts, ...draft.images, ...draft.groups,
20
+ ...clipboard.rectangles, ...clipboard.texts, ...clipboard.images, ...clipboard.groups,
21
+ ].map((item) => item.id));
22
+ const copiedIds = new Map();
23
+ function nextId(prefix) {
24
+ let index = 1;
25
+ while (usedIds.has(`${prefix}-${index}`))
26
+ index += 1;
27
+ const id = `${prefix}-${index}`;
28
+ usedIds.add(id);
29
+ return id;
30
+ }
31
+ function copyItems(items, prefix) {
32
+ return items.map((item) => {
33
+ const id = nextId(prefix);
34
+ copiedIds.set(item.id, id);
35
+ return {
36
+ ...structuredClone(item),
37
+ id,
38
+ origin: "user",
39
+ x: item.x + offset.x,
40
+ y: item.y + offset.y,
41
+ };
42
+ });
43
+ }
44
+ draft.rectangles.push(...copyItems(clipboard.rectangles, "rectangle"));
45
+ draft.texts.push(...copyItems(clipboard.texts, "text"));
46
+ draft.images.push(...copyItems(clipboard.images, "image"));
47
+ draft.groups.push(...clipboard.groups.map((group) => ({
48
+ id: nextId("group"),
49
+ itemIds: group.itemIds.map((id) => copiedIds.get(id)),
50
+ })));
51
+ const ids = clipboard.layerOrder.map((id) => copiedIds.get(id));
52
+ draft.layerOrder = [...uiSketchLayerOrder(input), ...ids];
53
+ return { draft: updateUiSketchStageDraft(input, stageId, draft), ids };
54
+ }
55
+ //# sourceMappingURL=clipboard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clipboard.js","sourceRoot":"","sources":["../../../src/domain/ui-sketch/clipboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AACvG,OAAO,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAOjD,MAAM,UAAU,iBAAiB,CAC/B,KAAoB,EACpB,OAA0B;IAE1B,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,2BAA2B,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;IACtE,OAAO,eAAe,CAAC;QACrB,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1D,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC5D,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACrF,UAAU,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;KACvE,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,KAAoB,EACpB,SAA4B,EAC5B,MAAgC,EAChC,OAAO,GAAG,wBAAwB;IAElC,IAAI,SAAS,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;IACxE,MAAM,KAAK,GAAG,qBAAqB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACpD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC;QACtB,GAAG,KAAK,CAAC,UAAU,EAAE,GAAG,KAAK,CAAC,KAAK,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM;QACrE,GAAG,SAAS,CAAC,UAAU,EAAE,GAAG,SAAS,CAAC,KAAK,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,MAAM;KACtF,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1B,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC5C,SAAS,MAAM,CAAC,MAAc;QAC5B,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,KAAK,EAAE,CAAC;YAAE,KAAK,IAAI,CAAC,CAAC;QACrD,MAAM,EAAE,GAAG,GAAG,MAAM,IAAI,KAAK,EAAE,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,SAAS,SAAS,CAChB,KAAU,EACV,MAAc;QAEd,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACxB,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;YAC1B,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAC3B,OAAO;gBACL,GAAG,eAAe,CAAC,IAAI,CAAC;gBACxB,EAAE;gBACF,MAAM,EAAE,MAAM;gBACd,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;gBACpB,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;aACrB,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IACD,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;IACvE,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;IACxD,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC3D,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACpD,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC;QACnB,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAE,CAAC;KACvD,CAAC,CAAC,CAAC,CAAC;IACL,MAAM,GAAG,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAE,CAAC,CAAC;IACjE,KAAK,CAAC,UAAU,GAAG,CAAC,GAAG,kBAAkB,CAAC,KAAK,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC;IAC1D,OAAO,EAAE,KAAK,EAAE,wBAAwB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;AACzE,CAAC"}
@@ -5,4 +5,5 @@ export { standardizeUiSketchDraft, UI_LAYOUT_ALIGNMENT_TOLERANCE } from "./stand
5
5
  export { groupUiSketchItems, ungroupUiSketchItems, uiSketchSelectionWithGroups, retainUiSketchGroups } from "./groups.ts";
6
6
  export { uiSketchStateTabs, renameUiSketchState, deleteUiSketchState, reorderUiSketchStates } from "./states.ts";
7
7
  export { uiSketchLayerOrder, reorderUiSketchLayers } from "./layers.ts";
8
+ export { copyUiSketchItems, pasteUiSketchItems, type UiSketchClipboard } from "./clipboard.ts";
8
9
  export { renderUiSketchSvg } from "./render.ts";
@@ -4,5 +4,6 @@ export { standardizeUiSketchDraft, UI_LAYOUT_ALIGNMENT_TOLERANCE } from "./stand
4
4
  export { groupUiSketchItems, ungroupUiSketchItems, uiSketchSelectionWithGroups, retainUiSketchGroups } from "./groups.js";
5
5
  export { uiSketchStateTabs, renameUiSketchState, deleteUiSketchState, reorderUiSketchStates } from "./states.js";
6
6
  export { uiSketchLayerOrder, reorderUiSketchLayers } from "./layers.js";
7
+ export { copyUiSketchItems, pasteUiSketchItems } from "./clipboard.js";
7
8
  export { renderUiSketchSvg } from "./render.js";
8
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/domain/ui-sketch/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,wBAAwB,EACxB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,wBAAwB,EACxB,qBAAqB,EACrB,uBAAuB,EACvB,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,wBAAwB,EAAE,6BAA6B,EAAE,MAAM,kBAAkB,CAAC;AAC3F,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,2BAA2B,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAE1H,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEjH,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/domain/ui-sketch/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,wBAAwB,EACxB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,wBAAwB,EACxB,qBAAqB,EACrB,uBAAuB,EACvB,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,wBAAwB,EAAE,6BAA6B,EAAE,MAAM,kBAAkB,CAAC;AAC3F,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,2BAA2B,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAE1H,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEjH,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAA0B,MAAM,gBAAgB,CAAC;AAC/F,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC"}
@@ -2,6 +2,8 @@ import schema from "../../../schemas/spatial-draft.schema.json" with { type: "js
2
2
  import { createSpatialDraft, SpatialConstraintError } from "../../domain/spatial/index.js";
3
3
  import { renderSpatialPng, renderSpatialCameraBoxPng } from "../spatial-render.js";
4
4
  import { SPATIAL_BOX_FACES, SPATIAL_RENDER_PASSES } from "../../domain/spatial/types.js";
5
+ import { parseSpatialBoxViews } from "../../domain/spatial/camera-box-sheet.js";
6
+ import en from "../../../locales/en/common.json" with { type: "json" };
5
7
  import { registerDraftVersionRoutes, replyToDraftVersionError } from "./draft-version-routes.js";
6
8
  export function registerSpatialSessionRoutes(server, repository) {
7
9
  const { $schema: _dialect, ...fastifySchema } = schema;
@@ -56,18 +58,24 @@ export function registerSpatialSessionRoutes(server, repository) {
56
58
  throw error;
57
59
  }
58
60
  });
59
- server.get("/api/v1/sessions/:sessionId/spatial/camera-boxes/:boxId.png", { schema: { querystring: { type: "object", properties: { revision: { type: "integer", minimum: 1 }, pass: { type: "string", enum: [...SPATIAL_RENDER_PASSES] }, view: { type: "string", enum: ["sheet", ...SPATIAL_BOX_FACES] } } } } }, async (request, reply) => {
61
+ server.get("/api/v1/sessions/:sessionId/spatial/camera-boxes/:boxId.png", { schema: { querystring: { type: "object", properties: { revision: { type: "integer", minimum: 1 }, pass: { type: "string", enum: [...SPATIAL_RENDER_PASSES] }, view: { type: "string", enum: ["sheet", ...SPATIAL_BOX_FACES] }, views: { type: "string", minLength: 1, maxLength: 128 } } } } }, async (request, reply) => {
60
62
  try {
63
+ if (request.query.view !== undefined && request.query.views !== undefined)
64
+ return reply.code(400).send({ code: "SPATIAL_INVALID", message: en.spatial.cameraBoxViewConflict });
65
+ const views = request.query.views === undefined ? undefined : parseSpatialBoxViews(request.query.views);
66
+ if (views === null)
67
+ return reply.code(400).send({ code: "SPATIAL_INVALID", message: en.spatial.cameraBoxViewsError });
61
68
  const { sessionId, boxId } = request.params;
62
69
  const version = request.query.revision ? repository.getDraftVersion(sessionId, request.query.revision) : repository.listDraftVersions(sessionId).at(-1);
63
70
  const box = version?.draft.cameraBoxes?.find(box => box.id === boxId);
64
71
  if (!box || !version)
65
72
  return reply.code(404).send({ code: "SPATIAL_CAMERA_NOT_FOUND", message: "Camera box not found" });
66
- const pass = request.query.pass ?? "color", view = request.query.view ?? "sheet";
73
+ const pass = request.query.pass ?? "color", view = views ?? request.query.view ?? "sheet";
67
74
  const key = JSON.stringify([sessionId, version.revision, "camera-box", boxId, view, pass]);
68
75
  const png = cached(key, () => renderSpatialCameraBoxPng(version.draft, box, view, pass));
69
76
  return reply.header("cache-control", request.query.revision ? "private, max-age=31536000, immutable" : "no-cache")
70
- .header("x-spatial-revision", version.revision).header("x-spatial-render-pass", pass).header("x-spatial-box-view", view).type("image/png").send(await png);
77
+ .header("x-spatial-revision", version.revision).header("x-spatial-render-pass", pass).header("x-spatial-box-view", typeof view === "string" ? view : "sheet")
78
+ .header("x-spatial-box-views", views?.join(",") ?? (view === "sheet" ? SPATIAL_BOX_FACES.join(",") : view)).type("image/png").send(await png);
71
79
  }
72
80
  catch (error) {
73
81
  const handled = replyToDraftVersionError(reply, error);
@@ -1 +1 @@
1
- {"version":3,"file":"spatial-sessions.js","sourceRoot":"","sources":["../../../src/server/routes/spatial-sessions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spatial-sessions.js","sourceRoot":"","sources":["../../../src/server/routes/spatial-sessions.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { createOutputCamera } from "../domain/spatial/scene.ts";
2
2
  import type { SpatialCamera, SpatialDraft, SpatialRenderPass } from "../domain/spatial/types.ts";
3
- import { type SpatialBoxView, type SpatialCameraBox } from "../domain/spatial/types.ts";
3
+ import { type SpatialBoxFace, type SpatialBoxView, type SpatialCameraBox } from "../domain/spatial/types.ts";
4
4
  export declare function renderSpatialPng(draft: SpatialDraft, source: SpatialCamera, pass?: SpatialRenderPass, outputCamera?: ReturnType<typeof createOutputCamera>): Promise<Buffer>;
5
- export declare function renderSpatialCameraBoxPng(draft: SpatialDraft, box: SpatialCameraBox, view?: SpatialBoxView, pass?: SpatialRenderPass): Promise<Buffer>;
5
+ export declare function renderSpatialCameraBoxPng(draft: SpatialDraft, box: SpatialCameraBox, view?: SpatialBoxView | readonly SpatialBoxFace[], pass?: SpatialRenderPass): Promise<Buffer>;
@@ -5,7 +5,8 @@ import { fingerPart } from "../domain/spatial/hands.js";
5
5
  import { jointWorldTransforms } from "../domain/spatial/kinematics.js";
6
6
  import { applySpatialContactShading, getSpatialLighting, spatialShadowSampler } from "../domain/spatial/lighting.js";
7
7
  import { SPATIAL_BOX_FACES, SPATIAL_BOX_GAP, SPATIAL_BOX_LABEL_HEIGHT } from "../domain/spatial/types.js";
8
- import { cameraBoxImageSize, cameraBoxView } from "../domain/spatial/camera-box.js";
8
+ import { cameraBoxView } from "../domain/spatial/camera-box.js";
9
+ import { cameraBoxSheetLayout } from "../domain/spatial/camera-box-sheet.js";
9
10
  import en from "../../locales/en/common.json" with { type: "json" };
10
11
  // A bounded, depth-buffered rasterizer keeps camera references and Agent PNG
11
12
  // exports available in the Node service without requiring a browser or GPU.
@@ -308,16 +309,17 @@ export async function renderSpatialCameraBoxPng(draft, box, view = "sheet", pass
308
309
  const { source, camera } = cameraBoxView(box, face);
309
310
  return renderSpatialPng(draft, source, pass, camera);
310
311
  };
311
- if (view !== "sheet")
312
+ if (typeof view === "string" && view !== "sheet")
312
313
  return renderFace(view);
313
314
  const size = box.resolution, labelHeight = SPATIAL_BOX_LABEL_HEIGHT, gap = SPATIAL_BOX_GAP;
314
- const { width, height } = cameraBoxImageSize(box, view);
315
+ const { width, height, columns, rows, tiles } = cameraBoxSheetLayout(size, typeof view === "string" ? SPATIAL_BOX_FACES : view);
315
316
  // Separate cropped limbs at tile boundaries so they cannot visually join adjacent views.
316
- const dividers = Buffer.from(`<svg width="${width}" height="${height}" xmlns="http://www.w3.org/2000/svg"><g fill="#dce1e7"><rect x="${size}" width="${gap}" height="${height}"/><rect x="${size * 2 + gap}" width="${gap}" height="${height}"/><rect y="${size + labelHeight}" width="${width}" height="${gap}"/></g></svg>`);
317
+ const verticalDividers = Array.from({ length: columns - 1 }, (_, index) => `<rect x="${(index + 1) * size + index * gap}" width="${gap}" height="${height}"/>`).join("");
318
+ const horizontalDividers = Array.from({ length: rows - 1 }, (_, index) => `<rect y="${(index + 1) * (size + labelHeight) + index * gap}" width="${width}" height="${gap}"/>`).join("");
319
+ const dividers = Buffer.from(`<svg width="${width}" height="${height}" xmlns="http://www.w3.org/2000/svg"><g fill="#dce1e7">${verticalDividers}${horizontalDividers}</g></svg>`);
317
320
  const composites = [{ input: dividers, left: 0, top: 0 }];
318
- // Sequential rendering bounds peak memory; all six views read this same immutable revision.
319
- for (const [index, face] of SPATIAL_BOX_FACES.entries()) {
320
- const left = index % 3 * (size + gap), top = Math.floor(index / 3) * (size + labelHeight + gap);
321
+ // Sequential rendering bounds peak memory; all selected views read the same immutable revision.
322
+ for (const { face, left, top } of tiles) {
321
323
  const key = `cameraBox${face[0].toUpperCase()}${face.slice(1)}`;
322
324
  const label = Buffer.from(`<svg width="${size}" height="${labelHeight}" xmlns="http://www.w3.org/2000/svg"><rect width="100%" height="100%" fill="white"/><text x="${size / 2}" y="19" font-family="sans-serif" font-size="14" text-anchor="middle" fill="#283545">${en.spatial[key]}</text></svg>`);
323
325
  composites.push({ input: label, left, top }, { input: await renderFace(face), left, top: top + labelHeight });
@@ -1 +1 @@
1
- {"version":3,"file":"spatial-render.js","sourceRoot":"","sources":["../../src/server/spatial-render.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spatial-render.js","sourceRoot":"","sources":["../../src/server/spatial-render.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,16 @@
8
8
  "app": {
9
9
  "title": "human2ai"
10
10
  },
11
+ "integrations": {
12
+ "workbuddy": {
13
+ "description": "Create and edit compositions, UI sketches and 3D spaces in a shared local workspace.",
14
+ "examples": {
15
+ "composition": "Recreate this reference image's composition on a canvas I can keep editing.",
16
+ "uiSketch": "Read this UI sketch, adjust the layout using my notes, and export a preview.",
17
+ "spatial": "Create a 3D space, pose a character, and export the camera view."
18
+ }
19
+ }
20
+ },
11
21
  "home": {
12
22
  "createComposition": "Create composition",
13
23
  "createUiSketch": "Create interface",
@@ -38,7 +48,8 @@
38
48
  "label": "Category",
39
49
  "all": "All types",
40
50
  "visual": "Visual",
41
- "ui": "UI"
51
+ "ui": "UI",
52
+ "spatial": "3D"
42
53
  },
43
54
  "creator": {
44
55
  "label": "Creator",
@@ -56,7 +67,8 @@
56
67
  },
57
68
  "description": {
58
69
  "heading": "Design specification",
59
- "placeholder": "Describe the layout, proportions, visual hierarchy, and decorative treatment."
70
+ "placeholder": "Describe the layout, proportions, visual hierarchy, and decorative treatment.",
71
+ "spatialPlaceholder": "Describe forms, proportions, materials, palette, lighting, and camera treatment."
60
72
  },
61
73
  "searchPlaceholder": "Search styles",
62
74
  "deleteTitle": "Delete this style?",
@@ -163,7 +175,10 @@
163
175
  "svgCopying": "Copying source",
164
176
  "svgCopyFailed": "Could not copy source",
165
177
  "sourceLoading": "Loading image content",
166
- "sourceLoadFailed": "Could not load image content. Try again."
178
+ "sourceLoadFailed": "Could not load image content. Try again.",
179
+ "download": "Download image",
180
+ "downloading": "Downloading",
181
+ "downloadFailed": "Could not download the image. Try again."
167
182
  },
168
183
  "imageCrop": {
169
184
  "title": "Crop image",
@@ -226,6 +241,7 @@
226
241
  },
227
242
  "flow": {
228
243
  "label": "Flow",
244
+ "controlPoint": "Flow control point {{number}}",
229
245
  "promptHeading": "Flow:",
230
246
  "promptReference": "- The flow passes through a position {{x}}% from the left and {{y}}% from the top of the overall image, at an angle of approximately {{rotation}}°"
231
247
  },
@@ -332,6 +348,10 @@
332
348
  },
333
349
  "lightSource": {
334
350
  "toggle": "Use as light source"
351
+ },
352
+ "textRegion": {
353
+ "cornerLabel": "Text outline corner {{index}}",
354
+ "cornerHelp": "Select a text region and hold Ctrl to drag its corners. Focus a corner and use the arrow keys for fine adjustments."
335
355
  }
336
356
  },
337
357
  "uiSketch": {
@@ -484,14 +504,17 @@
484
504
  },
485
505
  "spatial": {
486
506
  "title": "3D space",
507
+ "spaceTab": "Space",
508
+ "workspaceViews": "3D workspace view",
509
+ "cameraPreviewPending": "Preview available after saving",
487
510
  "newSpace": "New 3D space",
488
511
  "newInProject": "New 3D space in {{project}}",
489
512
  "untitled": "Untitled 3D space",
490
513
  "objects": "Scene objects",
491
514
  "cameras": "Cameras",
492
- "addCharacter": "Add character",
515
+ "addCharacter": "Character",
493
516
  "character": "Character",
494
- "addCamera": "Add camera",
517
+ "addCamera": "Camera",
495
518
  "camera": "Camera {{number}}",
496
519
  "box": "Box",
497
520
  "sphere": "Sphere",
@@ -530,8 +553,6 @@
530
553
  "loadFailed": "Could not load the 3D space",
531
554
  "saveFailed": "Could not save. Try again.",
532
555
  "conflict": "The space has changed. Reload to continue.",
533
- "saving": "Saving space",
534
- "saved": "Space saved",
535
556
  "duplicate": "Duplicate scene object",
536
557
  "deleteConfirm": "Delete this scene object?",
537
558
  "empty": "No objects in this space",
@@ -573,6 +594,7 @@
573
594
  "resetPose": "Reset pose",
574
595
  "resetPoseHint": "Restore the default pose and clear this character’s locks. Can be undone.",
575
596
  "showRig": "Show joints and bones",
597
+ "showCameras": "Show cameras",
576
598
  "lightingEffects": "Lighting effects",
577
599
  "jointLeftWrist": "Left wrist",
578
600
  "jointLeftAnkle": "Left ankle",
@@ -641,7 +663,20 @@
641
663
  "downloadReference": "Download PNG",
642
664
  "referenceLoadFailed": "Could not load reference",
643
665
  "cameraBox": "Camera box",
644
- "addCameraBox": "Add camera box",
666
+ "cameraBoxTab": "Camera box",
667
+ "cameraBoxFrontToggle": "Front",
668
+ "cameraBoxBackToggle": "Back",
669
+ "cameraBoxLeftToggle": "Left",
670
+ "cameraBoxRightToggle": "Right",
671
+ "cameraBoxTopToggle": "Top",
672
+ "cameraBoxBottomToggle": "Bottom",
673
+ "copyObservationImage": "Copy observation image",
674
+ "downloadObservationImage": "Download observation image",
675
+ "observationCopyFailed": "Could not copy the observation image. Try again or download it.",
676
+ "observationDownloadFailed": "Could not download the observation image. Try again.",
677
+ "noCameraBoxes": "No camera boxes",
678
+ "noObservationDirections": "Select at least one direction",
679
+ "addCameraBox": "Camera box",
645
680
  "cameraBoxSize": "Edge length (m)",
646
681
  "cameraBoxResolution": "Tile resolution",
647
682
  "cameraBoxView": "Observation view",
@@ -656,14 +691,17 @@
656
691
  "fitCameraBoxHands": "Fit all hands",
657
692
  "cameraBoxHint": "Six inward orthographic views show only the box interior. Directions rotate with the box. Use the sheet to understand the pose and the main camera for composition.",
658
693
  "cameraBoxTargetError": "Specify exactly one of --camera or --box.",
659
- "cameraBoxViewTargetError": "--view requires --box.",
694
+ "cameraBoxViewTargetError": "Observation-view options require --box.",
660
695
  "cameraBoxViewError": "--view must be sheet, front, back, left, right, top, or bottom.",
661
- "cameraBoxGenerationGuidance": "The main camera sets the final composition. The six-view sheet shows the same scene at one moment; labels identify box-local directions, not anatomical left and right. Use auxiliary views to understand occlusion, digit ownership, and approximate bending intent. Produce a single image without a contact-sheet layout, duplicated subjects, direction labels, or joint/body guide lines. Correct anatomy and finger contact naturally instead of reproducing the references pixel for pixel.",
696
+ "cameraBoxViewsError": "Choose 1–6 distinct directions from front, back, left, right, top, bottom, separated by commas.",
697
+ "cameraBoxViewConflict": "Use either --view or --views, not both.",
698
+ "cameraBoxGenerationGuidance": "The main camera sets the final composition. The observation sheet shows the same scene at one moment; labels identify box-local directions, not anatomical left and right. Use auxiliary views to understand occlusion, digit ownership, and approximate bending intent. Produce a single image without a contact-sheet layout, duplicated subjects, direction labels, or joint/body guide lines. Correct anatomy and finger contact naturally instead of reproducing the references pixel for pixel.",
662
699
  "referenceSkeleton": "Skeleton",
663
700
  "renderPassError": "--pass must be one of {{passes}}.",
664
701
  "appearance": "Model style",
665
702
  "appearanceQuaternius": "Human model",
666
- "appearanceGeometric": "Geometric mannequin"
703
+ "appearanceGeometric": "Geometric mannequin",
704
+ "editObject": "Edit object"
667
705
  },
668
706
  "canvasHistory": {
669
707
  "undo": "Undo",
@@ -0,0 +1,31 @@
1
+ -- Rebuild the category constraint while keeping foreign keys enabled. Dropping
2
+ -- the old parent cascades its references and clears bindings; restore both
3
+ -- inside the migration transaction without changing session revisions.
4
+ CREATE TEMP TABLE spatial_style_references AS SELECT * FROM style_reference_images;
5
+ CREATE TEMP TABLE spatial_style_bindings AS
6
+ SELECT id, style_id FROM sessions WHERE style_id IS NOT NULL;
7
+
8
+ CREATE TABLE style_entries_with_spatial (
9
+ id TEXT PRIMARY KEY,
10
+ name TEXT NOT NULL CHECK (length(trim(name)) > 0),
11
+ category TEXT NOT NULL CHECK (category IN ('visual', 'ui', 'spatial')),
12
+ creator_type TEXT NOT NULL CHECK (creator_type IN ('user', 'agent')),
13
+ description TEXT NOT NULL CHECK (length(trim(description)) > 0),
14
+ revision INTEGER NOT NULL DEFAULT 1 CHECK (revision > 0),
15
+ created_at TEXT NOT NULL,
16
+ updated_at TEXT NOT NULL,
17
+ prompt_summary TEXT
18
+ ) STRICT;
19
+
20
+ INSERT INTO style_entries_with_spatial SELECT * FROM style_entries;
21
+ DROP TABLE style_entries;
22
+ ALTER TABLE style_entries_with_spatial RENAME TO style_entries;
23
+ CREATE INDEX style_entries_updated_idx ON style_entries (updated_at DESC, id);
24
+
25
+ INSERT INTO style_reference_images SELECT * FROM spatial_style_references;
26
+ UPDATE sessions
27
+ SET style_id = (SELECT style_id FROM spatial_style_bindings WHERE id = sessions.id)
28
+ WHERE id IN (SELECT id FROM spatial_style_bindings);
29
+
30
+ DROP TABLE spatial_style_references;
31
+ DROP TABLE spatial_style_bindings;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "human2ai",
3
- "version": "0.1.1",
3
+ "version": "0.1.3",
4
4
  "description": "Local visual collaboration workspace for people and AI agents, with a browser UI and CLI.",
5
5
  "license": "MIT",
6
6
  "author": "贾思斋",
@@ -78,6 +78,7 @@
78
78
  "aspect": { "enum": ["square", "free", "landscape", "portrait"] },
79
79
  "visualWeight": { "enum": ["auto", "high", "medium", "low", "decorative"] },
80
80
  "displayText": { "type": "string" },
81
+ "corners": { "$ref": "#/$defs/textCorners" },
81
82
  "isLightSource": { "type": "boolean" },
82
83
  "rotation": { "type": "number" },
83
84
  "width": { "type": "number", "exclusiveMinimum": 0 },
@@ -99,7 +100,11 @@
99
100
  "required": ["semanticType"]
100
101
  },
101
102
  "then": { "required": ["displayText"], "properties": { "isLightSource": { "const": false } } },
102
- "else": { "not": { "required": ["displayText"] } }
103
+ "else": { "not": { "anyOf": [{ "required": ["displayText"] }, { "required": ["corners"] }] } }
104
+ },
105
+ {
106
+ "if": { "required": ["corners"] },
107
+ "then": { "properties": { "primitive": { "const": "quadrilateral" }, "aspect": { "const": "free" } } }
103
108
  }
104
109
  ]
105
110
  }
@@ -182,12 +187,23 @@
182
187
  "rotation": { "type": "number" }
183
188
  }
184
189
  },
190
+ "textCorners": {
191
+ "type": "array", "minItems": 4, "maxItems": 4,
192
+ "items": {
193
+ "type": "object", "additionalProperties": false, "required": ["x", "y"],
194
+ "properties": {
195
+ "x": { "type": "number", "minimum": 0, "maximum": 1 },
196
+ "y": { "type": "number", "minimum": 0, "maximum": 1 }
197
+ }
198
+ }
199
+ },
185
200
  "layoutArea": {
186
201
  "type": "object", "additionalProperties": false, "required": ["id", "x", "y", "area", "aspect"],
187
202
  "properties": {
188
203
  "id": { "type": "string", "pattern": "^area-[0-9]+$" },
189
204
  "x": { "type": "number" }, "y": { "type": "number" },
190
205
  "area": { "type": "number", "exclusiveMinimum": 0 },
206
+ "corners": { "$ref": "#/$defs/textCorners" },
191
207
  "aspect": { "enum": ["square", "free", "landscape", "portrait"] },
192
208
  "rotation": { "type": "number" },
193
209
  "width": { "type": "number", "exclusiveMinimum": 0 },
@@ -291,6 +291,9 @@
291
291
  "type": "number",
292
292
  "minimum": 0.7,
293
293
  "maximum": 1.4
294
+ },
295
+ "note": {
296
+ "type": "string"
294
297
  }
295
298
  }
296
299
  }
@@ -361,6 +364,9 @@
361
364
  "color": {
362
365
  "type": "string",
363
366
  "pattern": "^#[0-9a-fA-F]{6}$"
367
+ },
368
+ "note": {
369
+ "type": "string"
364
370
  }
365
371
  }
366
372
  }
@@ -451,6 +457,9 @@
451
457
  "type": "null"
452
458
  }
453
459
  ]
460
+ },
461
+ "note": {
462
+ "type": "string"
454
463
  }
455
464
  }
456
465
  }
@@ -509,6 +518,9 @@
509
518
  "type": "integer",
510
519
  "minimum": 128,
511
520
  "maximum": 1024
521
+ },
522
+ "note": {
523
+ "type": "string"
512
524
  }
513
525
  }
514
526
  }