human2ai 0.1.7 → 0.1.8

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 (144) hide show
  1. package/README.en.md +1 -1
  2. package/README.md +1 -1
  3. package/dist/cli/main.js +74 -3
  4. package/dist/cli/main.js.map +1 -1
  5. package/dist/database/draft-version-errors.d.ts +6 -0
  6. package/dist/database/draft-version-errors.js +11 -0
  7. package/dist/database/draft-version-errors.js.map +1 -1
  8. package/dist/database/draft-version-store.js +17 -2
  9. package/dist/database/draft-version-store.js.map +1 -1
  10. package/dist/database/image-asset-repository.d.ts +5 -0
  11. package/dist/database/image-asset-repository.js +22 -4
  12. package/dist/database/image-asset-repository.js.map +1 -1
  13. package/dist/database/migrate.js +2 -0
  14. package/dist/database/migrate.js.map +1 -1
  15. package/dist/database/project-session-repository.d.ts +12 -1
  16. package/dist/database/project-session-repository.js +48 -11
  17. package/dist/database/project-session-repository.js.map +1 -1
  18. package/dist/database/session-preview-validation.js +37 -4
  19. package/dist/database/session-preview-validation.js.map +1 -1
  20. package/dist/database/session-storage-repository.d.ts +35 -0
  21. package/dist/database/session-storage-repository.js +281 -0
  22. package/dist/database/session-storage-repository.js.map +1 -0
  23. package/dist/database/ui-sketch-png-split-repository.d.ts +13 -0
  24. package/dist/database/ui-sketch-png-split-repository.js +123 -0
  25. package/dist/database/ui-sketch-png-split-repository.js.map +1 -0
  26. package/dist/database/workspace-settings-repository.d.ts +10 -0
  27. package/dist/database/workspace-settings-repository.js +30 -0
  28. package/dist/database/workspace-settings-repository.js.map +1 -0
  29. package/dist/domain/session/canvas-edit-history.d.ts +2 -0
  30. package/dist/domain/session/canvas-edit-history.js +4 -0
  31. package/dist/domain/session/canvas-edit-history.js.map +1 -1
  32. package/dist/domain/session/capabilities.js +14 -0
  33. package/dist/domain/session/capabilities.js.map +1 -1
  34. package/dist/domain/session/storage.d.ts +22 -0
  35. package/dist/domain/session/storage.js +10 -0
  36. package/dist/domain/session/storage.js.map +1 -0
  37. package/dist/domain/session/types.d.ts +4 -0
  38. package/dist/domain/ui-sketch/draft.js +22 -0
  39. package/dist/domain/ui-sketch/draft.js.map +1 -1
  40. package/dist/domain/ui-sketch/png-canvas.d.ts +25 -0
  41. package/dist/domain/ui-sketch/png-canvas.js +78 -0
  42. package/dist/domain/ui-sketch/png-canvas.js.map +1 -0
  43. package/dist/domain/ui-sketch/png-split-regions.d.ts +7 -0
  44. package/dist/domain/ui-sketch/png-split-regions.js +40 -0
  45. package/dist/domain/ui-sketch/png-split-regions.js.map +1 -0
  46. package/dist/domain/ui-sketch/png-split.d.ts +49 -0
  47. package/dist/domain/ui-sketch/png-split.js +39 -0
  48. package/dist/domain/ui-sketch/png-split.js.map +1 -0
  49. package/dist/domain/ui-sketch/transparent-png.d.ts +50 -0
  50. package/dist/domain/ui-sketch/transparent-png.js +178 -0
  51. package/dist/domain/ui-sketch/transparent-png.js.map +1 -0
  52. package/dist/domain/ui-sketch/types.d.ts +2 -0
  53. package/dist/server/app.d.ts +7 -1
  54. package/dist/server/app.js +21 -0
  55. package/dist/server/app.js.map +1 -1
  56. package/dist/server/routes/draft-version-routes.js +12 -3
  57. package/dist/server/routes/draft-version-routes.js.map +1 -1
  58. package/dist/server/routes/project-sessions.js +14 -0
  59. package/dist/server/routes/project-sessions.js.map +1 -1
  60. package/dist/server/routes/storage-protection.d.ts +3 -0
  61. package/dist/server/routes/storage-protection.js +29 -0
  62. package/dist/server/routes/storage-protection.js.map +1 -0
  63. package/dist/server/routes/ui-sketch-png-splits.d.ts +4 -0
  64. package/dist/server/routes/ui-sketch-png-splits.js +42 -0
  65. package/dist/server/routes/ui-sketch-png-splits.js.map +1 -0
  66. package/dist/server/routes/workspace-settings.d.ts +3 -0
  67. package/dist/server/routes/workspace-settings.js +25 -0
  68. package/dist/server/routes/workspace-settings.js.map +1 -0
  69. package/dist/server/runtime.js +8 -1
  70. package/dist/server/runtime.js.map +1 -1
  71. package/dist/server/session-preview-service.js +7 -4
  72. package/dist/server/session-preview-service.js.map +1 -1
  73. package/dist/server/storage-maintenance-service.d.ts +6 -0
  74. package/dist/server/storage-maintenance-service.js +65 -0
  75. package/dist/server/storage-maintenance-service.js.map +1 -0
  76. package/locales/en/common.json +64 -2
  77. package/migrations/0012_ui_sketch_png_splits.sql +6 -0
  78. package/migrations/0013_storage_retention.sql +43 -0
  79. package/migrations/0014_workspace_settings_and_trash.sql +11 -0
  80. package/package.json +1 -1
  81. package/schemas/ui-sketch-draft.schema.json +173 -0
  82. package/skills/human2ai/SKILL.md +8 -2
  83. package/skills/human2ai/references/ui-extraction-prompt.txt +41 -0
  84. package/skills/human2ai/references/ui-extraction.md +38 -0
  85. package/skills/human2ai/references/ui-layout.md +22 -0
  86. package/web/out/404/index.html +1 -1
  87. package/web/out/404.html +1 -1
  88. package/web/out/__next.__PAGE__.txt +7 -7
  89. package/web/out/__next._full.txt +7 -7
  90. package/web/out/__next._tree.txt +3 -3
  91. package/web/out/_next/static/chunks/327-3dba8bbcb4bcb1fc.js +1 -0
  92. package/web/out/_next/static/chunks/868-6a413fc8c52cf6df.js +1 -0
  93. package/web/out/_next/static/chunks/{60-f12915d6c3a2c6a3.js → 989-6d7aa6a22a75f7de.js} +24 -24
  94. package/web/out/_next/static/chunks/app/_not-found/{page-508d7dc25aaa3aa9.js → page-fddf8e0980e10cc5.js} +1 -1
  95. package/web/out/_next/static/chunks/app/composition/page-f810843a0f114d13.js +1 -0
  96. package/web/out/_next/static/chunks/app/layout-9c5f0b5667b84400.js +1 -0
  97. package/web/out/_next/static/chunks/app/{page-96f541a0e6fa160b.js → page-29cacabbd1c90b6f.js} +1 -1
  98. package/web/out/_next/static/chunks/app/spatial/page-014875456f84d8fa.js +1 -0
  99. package/web/out/_next/static/chunks/app/styles/{page-4f0f5e04e35adaa3.js → page-1077a7decb9be158.js} +1 -1
  100. package/web/out/_next/static/chunks/app/ui-sketch/page-ea382541f80cad0d.js +1 -0
  101. package/web/out/_next/static/chunks/{main-app-3e9223f29047fc41.js → main-app-9985b291e50ea69b.js} +1 -1
  102. package/web/out/_next/static/chunks/next/dist/client/components/builtin/global-error-1193cefa6c9c6179.js +1 -0
  103. package/web/out/_next/static/chunks/{webpack-9a8652ec72df780b.js → webpack-cfe3662bbaa8d6ce.js} +1 -1
  104. package/web/out/_next/static/css/15abfc5e59099f48.css +1 -0
  105. package/web/out/_next/static/css/57ecc433cb654a57.css +1 -0
  106. package/web/out/_next/static/css/7a62016f8918890b.css +5 -0
  107. package/web/out/_not-found/__next._full.txt +6 -6
  108. package/web/out/_not-found/__next._not-found.__PAGE__.txt +6 -6
  109. package/web/out/_not-found/__next._tree.txt +3 -3
  110. package/web/out/_not-found/index.html +1 -1
  111. package/web/out/_not-found/index.txt +6 -6
  112. package/web/out/composition/__next._full.txt +7 -7
  113. package/web/out/composition/__next._tree.txt +3 -3
  114. package/web/out/composition/__next.composition.__PAGE__.txt +7 -7
  115. package/web/out/composition/index.html +1 -1
  116. package/web/out/composition/index.txt +7 -7
  117. package/web/out/index.html +1 -1
  118. package/web/out/index.txt +7 -7
  119. package/web/out/spatial/__next._full.txt +7 -7
  120. package/web/out/spatial/__next._tree.txt +3 -3
  121. package/web/out/spatial/__next.spatial.__PAGE__.txt +7 -7
  122. package/web/out/spatial/index.html +1 -1
  123. package/web/out/spatial/index.txt +7 -7
  124. package/web/out/styles/__next._full.txt +7 -7
  125. package/web/out/styles/__next._tree.txt +3 -3
  126. package/web/out/styles/__next.styles.__PAGE__.txt +7 -7
  127. package/web/out/styles/index.html +1 -1
  128. package/web/out/styles/index.txt +7 -7
  129. package/web/out/ui-sketch/__next._full.txt +8 -8
  130. package/web/out/ui-sketch/__next._tree.txt +4 -4
  131. package/web/out/ui-sketch/__next.ui-sketch.__PAGE__.txt +8 -8
  132. package/web/out/ui-sketch/index.html +1 -1
  133. package/web/out/ui-sketch/index.txt +8 -8
  134. package/web/out/_next/static/chunks/348-845058912fd7c5e5.js +0 -1
  135. package/web/out/_next/static/chunks/app/composition/page-30c8fcabe591ab65.js +0 -1
  136. package/web/out/_next/static/chunks/app/layout-68da0027d158df26.js +0 -1
  137. package/web/out/_next/static/chunks/app/spatial/page-ac4e6cda25dea88f.js +0 -1
  138. package/web/out/_next/static/chunks/app/ui-sketch/page-08ddf9773e8f15ed.js +0 -1
  139. package/web/out/_next/static/chunks/next/dist/client/components/builtin/global-error-2d183cd08094b261.js +0 -1
  140. package/web/out/_next/static/css/0777c3d5c25abf92.css +0 -1
  141. package/web/out/_next/static/css/3d47424e508934f6.css +0 -5
  142. package/web/out/_next/static/css/5d259915312c51c1.css +0 -1
  143. /package/web/out/_next/static/{MsEzgYkCNtygwkUNRRXe7 → SiEWNIZfGL4sShRQt9h5W}/_buildManifest.js +0 -0
  144. /package/web/out/_next/static/{MsEzgYkCNtygwkUNRRXe7 → SiEWNIZfGL4sShRQt9h5W}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui-sketch-png-splits.js","sourceRoot":"","sources":["../../../src/server/routes/ui-sketch-png-splits.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { FastifyInstance } from "fastify";
2
+ import type { WorkspaceSettingsRepository } from "../../database/workspace-settings-repository.ts";
3
+ export declare function registerWorkspaceSettingsRoutes(server: FastifyInstance, repository: WorkspaceSettingsRepository): void;
@@ -0,0 +1,25 @@
1
+ import { RevisionConflictError, InvalidRecordError } from "../../database/project-session-repository.js";
2
+ import { MAX_RETENTION_DAYS } from "../../domain/session/storage.js";
3
+ export function registerWorkspaceSettingsRoutes(server, repository) {
4
+ const days = { type: "integer", minimum: 1, maximum: MAX_RETENTION_DAYS };
5
+ const fields = { imageRetentionDays: days, historyRetentionDays: days, trashRetentionDays: days };
6
+ const response = { type: "object", additionalProperties: false, required: ["revision", ...Object.keys(fields)],
7
+ properties: { revision: { type: "integer", minimum: 1 }, ...fields } };
8
+ server.get("/api/v1/settings", { schema: { response: { 200: response } } }, async () => repository.get());
9
+ server.put("/api/v1/settings", {
10
+ schema: { body: { type: "object", additionalProperties: false, required: ["expectedRevision", ...Object.keys(fields)],
11
+ properties: { expectedRevision: { type: "integer", minimum: 1 }, ...fields } }, response: { 200: response } },
12
+ }, async (request, reply) => {
13
+ try {
14
+ return repository.update(request.body);
15
+ }
16
+ catch (error) {
17
+ if (error instanceof RevisionConflictError)
18
+ return reply.code(409).send({ code: error.code, message: error.message, actualRevision: error.actualRevision });
19
+ if (error instanceof InvalidRecordError)
20
+ return reply.code(400).send({ code: error.code, message: error.message });
21
+ throw error;
22
+ }
23
+ });
24
+ }
25
+ //# sourceMappingURL=workspace-settings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-settings.js","sourceRoot":"","sources":["../../../src/server/routes/workspace-settings.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AACzG,OAAO,EAAE,kBAAkB,EAA0B,MAAM,iCAAiC,CAAC;AAE7F,MAAM,UAAU,+BAA+B,CAAC,MAAuB,EAAE,UAAuC;IAC9G,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC1E,MAAM,MAAM,GAAG,EAAE,kBAAkB,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC;IAClG,MAAM,QAAQ,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,oBAAoB,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,UAAU,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5G,UAAU,EAAE,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,GAAG,MAAM,EAAE,EAAE,CAAC;IACzE,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,KAAK,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC;IAC1G,MAAM,CAAC,GAAG,CAA6D,kBAAkB,EAAE;QACzF,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,oBAAoB,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,kBAAkB,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACnH,UAAU,EAAE,EAAE,gBAAgB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,GAAG,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE;KAChH,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QAC1B,IAAI,CAAC;YAAC,OAAO,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAAC,CAAC;QAC/C,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,KAAK,YAAY,qBAAqB;gBAAE,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC;YAC5J,IAAI,KAAK,YAAY,kBAAkB;gBAAE,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACnH,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1,12 +1,15 @@
1
1
  import { mkdirSync } from "node:fs";
2
+ import { WorkspaceSettingsRepository } from "../database/workspace-settings-repository.js";
2
3
  import { dirname, join } from "node:path";
3
4
  import { fileURLToPath } from "node:url";
4
5
  import { CompositionSessionRepository } from "../database/composition-session-repository.js";
5
6
  import { ImageAssetRepository } from "../database/image-asset-repository.js";
7
+ import { SessionStorageRepository } from "../database/session-storage-repository.js";
6
8
  import { openDatabase } from "../database/migrate.js";
7
9
  import { ProjectSessionRepository } from "../database/project-session-repository.js";
8
10
  import { StyleLibraryRepository } from "../database/style-library-repository.js";
9
11
  import { UiSketchSessionRepository } from "../database/ui-sketch-session-repository.js";
12
+ import { UiSketchPngSplitRepository } from "../database/ui-sketch-png-split-repository.js";
10
13
  import { SpatialSessionRepository } from "../database/spatial-session-repository.js";
11
14
  import { HUMAN2AI_SERVICE_CAPABILITIES, buildServer } from "./app.js";
12
15
  import { resolveRuntimeDefaults } from "../runtime-defaults.js";
@@ -99,10 +102,14 @@ export function createHuman2AiServer(options = {}) {
99
102
  databaseClosed = true;
100
103
  database.close();
101
104
  };
105
+ const imageAssets = new ImageAssetRepository(database, artifactsDirectory);
102
106
  const server = buildServer({ logger: options.logger ?? false }, {
103
107
  compositionSessions: new CompositionSessionRepository(database),
104
- imageAssets: new ImageAssetRepository(database, artifactsDirectory),
108
+ imageAssets,
109
+ storage: new SessionStorageRepository(database, imageAssets, artifactsDirectory),
110
+ pngSplits: new UiSketchPngSplitRepository(database, imageAssets),
105
111
  projectSessions: new ProjectSessionRepository(database),
112
+ settings: new WorkspaceSettingsRepository(database),
106
113
  styleLibrary: new StyleLibraryRepository(database, artifactsDirectory),
107
114
  uiSketchSessions: new UiSketchSessionRepository(database),
108
115
  spatialSessions: new SpatialSessionRepository(database),
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/server/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/server/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,2BAA2B,EAAE,MAAM,8CAA8C,CAAC;AAC3F,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAIzC,OAAO,EAAE,4BAA4B,EAAE,MAAM,+CAA+C,CAAC;AAC7F,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AACrF,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AACrF,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACjF,OAAO,EAAE,yBAAyB,EAAE,MAAM,6CAA6C,CAAC;AACxF,OAAO,EAAE,0BAA0B,EAAE,MAAM,+CAA+C,CAAC;AAC3F,OAAO,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AACrF,OAAO,EAAE,6BAA6B,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,MAAM,YAAY,GAAG,WAAW,CAAC;AACjC,MAAM,qBAAqB,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACvF,MAAM,6BAA6B,GAAG,6BAA6B,CAAC;AA+BpE,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,UAA8B,EAAE;IAEhC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,YAAY,CAAC;IAC1C,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,sBAAsB,EAAE,CAAC,IAAI,CAAC,CAAC;IACrG,MAAM,MAAM,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAE7C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;QACrC,OAAO;YACL,IAAI;YACJ,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC;YACxB,MAAM;YACN,GAAG;SACJ,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC5C,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,UAA2B,EAAE;IAE7B,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,UAAU,CAAC,KAAK,EAAE,GAAG,aAAa,EAAE,GAAG,OAAO,CAAC;IACxE,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,IAAI,YAAY,CAAC;IAChD,MAAM,IAAI,GAAG,WAAW,CACtB,aAAa,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,sBAAsB,EAAE,CAAC,IAAI,CACjF,CAAC;IACF,MAAM,WAAW,GAAG,UAAU,IAAI,IAAI,IAAI,EAAE,CAAC;IAE7C,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;QACf,MAAM,aAAa,GAAG,MAAM,sBAAsB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QACzE,IAAI,aAAa,KAAK,YAAY,EAAE,CAAC;YACnC,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC;QACzD,CAAC;QACD,IAAI,aAAa,KAAK,cAAc,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CACb,2BAA2B,WAAW,oEAAoE,CAC3G,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,mBAAmB,CAAC;QACxC,GAAG,aAAa;QAChB,IAAI;QACJ,IAAI;QACJ,YAAY,EAAE,aAAa,CAAC,YAAY,IAAI,qBAAqB;KAClE,CAAC,CAAC;IACH,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,EAAE,CAAC;AAC3C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,UAAkB,EAClB,UAAwB,UAAU,CAAC,KAAK;IAExC,OAAO,CAAC,MAAM,sBAAsB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,KAAK,YAAY,CAAC;AAC9E,CAAC;AAED,KAAK,UAAU,sBAAsB,CACnC,UAAkB,EAClB,OAAqB;IAErB,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,GAAG,CAAC,gBAAgB,EAAE,UAAU,CAAC,EAAE;YACpE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC;SACnC,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,EAAE;YAAE,OAAO,aAAa,CAAC;QACvC,MAAM,OAAO,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAA4B,CAAC;QACnE,IAAI,OAAO,CAAC,OAAO,KAAK,UAAU,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YAC9D,OAAO,aAAa,CAAC;QACvB,CAAC;QACD,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QAC1C,OAAO,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC;eAC7B,6BAA6B,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CACrD,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAClC,CAAC;YACF,CAAC,CAAC,YAAY;YACd,CAAC,CAAC,cAAc,CAAC;IACrB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,aAAa,CAAC;IACvB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,UAA+B,EAAE;IAEjC,MAAM,QAAQ,GAAG,sBAAsB,EAAE,CAAC;IAC1C,MAAM,YAAY,GAChB,OAAO,CAAC,YAAY;QACpB,OAAO,CAAC,GAAG,CAAC,sBAAsB;QAClC,QAAQ,CAAC,YAAY,CAAC;IACxB,MAAM,mBAAmB,GACvB,OAAO,CAAC,mBAAmB;QAC3B,aAAa,CAAC,IAAI,GAAG,CAAC,kBAAkB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9D,MAAM,kBAAkB,GACtB,OAAO,CAAC,kBAAkB;WACvB,OAAO,CAAC,GAAG,CAAC,uBAAuB;WACnC,IAAI,CAAC,OAAO,CAAC,YAAY,KAAK,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,WAAW,CAAC,CAAC;IACpG,IAAI,YAAY,KAAK,UAAU,EAAE,CAAC;QAChC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,MAAM,QAAQ,GAAG,YAAY,CAAC,YAAY,EAAE,mBAAmB,CAAC,CAAC;IACjE,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,MAAM,aAAa,GAAG,GAAG,EAAE;QACzB,IAAI,cAAc;YAAE,OAAO;QAC3B,cAAc,GAAG,IAAI,CAAC;QACtB,QAAQ,CAAC,KAAK,EAAE,CAAC;IACnB,CAAC,CAAC;IACF,MAAM,WAAW,GAAG,IAAI,oBAAoB,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;IAC3E,MAAM,MAAM,GAAG,WAAW,CACxB,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK,EAAE,EACnC;QACE,mBAAmB,EAAE,IAAI,4BAA4B,CAAC,QAAQ,CAAC;QAC/D,WAAW;QACX,OAAO,EAAE,IAAI,wBAAwB,CAAC,QAAQ,EAAE,WAAW,EAAE,kBAAkB,CAAC;QAChF,SAAS,EAAE,IAAI,0BAA0B,CAAC,QAAQ,EAAE,WAAW,CAAC;QAChE,eAAe,EAAE,IAAI,wBAAwB,CAAC,QAAQ,CAAC;QACvD,QAAQ,EAAE,IAAI,2BAA2B,CAAC,QAAQ,CAAC;QACnD,YAAY,EAAE,IAAI,sBAAsB,CAAC,QAAQ,EAAE,kBAAkB,CAAC;QACtE,gBAAgB,EAAE,IAAI,yBAAyB,CAAC,QAAQ,CAAC;QACzD,eAAe,EAAE,IAAI,wBAAwB,CAAC,QAAQ,CAAC;QACvD,YAAY,EAAE,OAAO,CAAC,YAAY;KACnC,CACF,CAAC;IAEF,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;QACnC,aAAa,EAAE,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,WAAW,CAAC,KAAsB;IACzC,MAAM,IAAI,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/D,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,MAAM,EAAE,CAAC;QACzD,MAAM,IAAI,KAAK,CAAC,0BAA0B,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -120,10 +120,11 @@ export class SessionPreviewService {
120
120
  draft = selectCompositionState(this.deps.compositionSessions.getDraftVersion(source.sessionId, revision).draft, source.stateId);
121
121
  }
122
122
  const assets = new Map();
123
- await Promise.all([...new Set(draft.images.flatMap(image => image.assetId && image.visible !== false ? [image.assetId] : []))].map(async (id) => {
123
+ const assetIds = [...new Set(draft.images.flatMap(image => image.assetId && image.visible !== false ? [image.assetId] : []))];
124
+ await this.deps.imageAssets.withProtection(assetIds, () => Promise.all(assetIds.map(async (id) => {
124
125
  const { asset, filePath } = this.deps.imageAssets.get(source.sessionId, id);
125
126
  assets.set(id, `data:${asset.mimeType};base64,${(await readFile(filePath)).toString("base64")}`);
126
- }));
127
+ })));
127
128
  const svg = draft.kind === "ui-layout-draft" ? renderUiSketchSvg(draft, id => assets.get(id)) : renderCompositionReferenceSvg(draft, id => assets.get(id));
128
129
  key = createHash("sha256").update(svg).digest("hex");
129
130
  create = () => Promise.resolve(Buffer.from(svg));
@@ -140,7 +141,8 @@ export class SessionPreviewService {
140
141
  async materialize(ownerId, source) {
141
142
  const { data, extension, revision } = await this.render(ownerId, source);
142
143
  this.assertSource(ownerId, source);
143
- const asset = await this.deps.imageAssets.create(ownerId, { filename: `session-preview.${extension}`, data });
144
+ const asset = await this.deps.imageAssets.create(ownerId, { filename: `session-preview.${extension}`, data,
145
+ previewReference: { ...source, renderedRevision: revision } });
144
146
  return { assetId: asset.id, width: asset.width, height: asset.height, reference: { ...source, renderedRevision: revision } };
145
147
  }
146
148
  enqueue(id, revision) {
@@ -210,7 +212,8 @@ export class SessionPreviewService {
210
212
  if (matches.every(item => item.assetId && this.deps.imageAssets.get(id, item.assetId).asset.sha256 === sha))
211
213
  continue;
212
214
  this.assertSource(id, ref);
213
- const asset = await this.deps.imageAssets.create(id, { filename: `session-preview.${extension}`, data });
215
+ const asset = await this.deps.imageAssets.create(id, { filename: `session-preview.${extension}`, data,
216
+ previewReference: { ...ref, renderedRevision: revision } });
214
217
  updates.set(previewSourceKey(ref), { assetId: asset.id, width: asset.width, height: asset.height, reference: { ...ref, renderedRevision: revision } });
215
218
  }
216
219
  catch {
@@ -1 +1 @@
1
- {"version":3,"file":"session-preview-service.js","sourceRoot":"","sources":["../../src/server/session-preview-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-preview-service.js","sourceRoot":"","sources":["../../src/server/session-preview-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { SessionStorageRepository } from "../database/session-storage-repository.ts";
2
+ import type { FastifyInstance } from "fastify";
3
+ import type { CompositionSessionRepository } from "../database/composition-session-repository.ts";
4
+ import type { UiSketchSessionRepository } from "../database/ui-sketch-session-repository.ts";
5
+ import type { SpatialSessionRepository } from "../database/spatial-session-repository.ts";
6
+ export declare function registerStorageMaintenance(server: FastifyInstance, storage: SessionStorageRepository, repositories: (CompositionSessionRepository | UiSketchSessionRepository | SpatialSessionRepository)[]): void;
@@ -0,0 +1,65 @@
1
+ export function registerStorageMaintenance(server, storage, repositories) {
2
+ let timer, work, closed = false;
3
+ let all = false, lastWrite = Date.now();
4
+ const pending = new Set();
5
+ const run = async () => {
6
+ if (closed || work)
7
+ return;
8
+ const full = all, sessions = [...pending];
9
+ all = false;
10
+ pending.clear();
11
+ work = (async () => {
12
+ const collections = full ? [await storage.collect()] : [];
13
+ if (!full)
14
+ for (const id of sessions)
15
+ collections.push(await storage.collect(id));
16
+ for (const result of collections)
17
+ if (result.failedFiles.length)
18
+ server.log.warn({ files: result.failedFiles }, "Image cleanup will retry");
19
+ if (full && Date.now() - lastWrite > 10 * 60_000)
20
+ storage.compact();
21
+ })().catch(error => { server.log.error(error, "Storage maintenance will retry on the next sweep"); });
22
+ await work;
23
+ work = undefined;
24
+ if (all || pending.size)
25
+ schedule();
26
+ };
27
+ const schedule = (id) => {
28
+ if (closed)
29
+ return;
30
+ if (id)
31
+ pending.add(id);
32
+ if (!timer)
33
+ timer = setTimeout(() => { timer = undefined; void run(); }, 2000).unref();
34
+ };
35
+ const unsubscribe = repositories.map(repository => repository.onDraftSaved(({ version }) => {
36
+ lastWrite = Date.now();
37
+ schedule(version.sessionId);
38
+ }));
39
+ server.addHook("onReady", async () => { all = true; await run(); });
40
+ server.addHook("onResponse", async (request, reply) => {
41
+ if (reply.statusCode >= 300 || request.method === "GET" || request.method === "HEAD"
42
+ || request.url.includes("/storage-protection/"))
43
+ return;
44
+ lastWrite = Date.now();
45
+ if (request.method === "DELETE" || request.url === "/api/v1/settings") {
46
+ all = true;
47
+ schedule();
48
+ }
49
+ else {
50
+ const id = /^\/api\/v1\/sessions\/([^/]+)\//.exec(request.url)?.[1];
51
+ if (id)
52
+ schedule(decodeURIComponent(id));
53
+ }
54
+ });
55
+ const interval = setInterval(() => { all = true; schedule(); }, 60 * 60_000).unref();
56
+ server.addHook("preClose", async () => {
57
+ closed = true;
58
+ if (timer)
59
+ clearTimeout(timer);
60
+ clearInterval(interval);
61
+ unsubscribe.forEach(stop => stop());
62
+ await work;
63
+ });
64
+ }
65
+ //# sourceMappingURL=storage-maintenance-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-maintenance-service.js","sourceRoot":"","sources":["../../src/server/storage-maintenance-service.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,8 @@
11
11
  },
12
12
  "integrations": {
13
13
  "workbuddy": {
14
- "description": "Create and edit compositions, UI sketches and 3D spaces in a shared local workspace.",
14
+ "name": "human2ai",
15
+ "description": "An agent-operated tool for drawing and UI design. Let your agent create and edit compositions, interfaces and 3D spaces, export previews, and collaborate with you on one canvas.",
15
16
  "examples": {
16
17
  "composition": "Recreate this reference image's composition on a canvas I can keep editing.",
17
18
  "uiSketch": "Read this UI sketch, adjust the layout using my notes, and export a preview.",
@@ -115,6 +116,7 @@
115
116
  "label": "Note",
116
117
  "prompt": "- Note: {{note}}",
117
118
  "nodePlaceholder": "Describe what this node represents",
119
+ "nodeHelp": "Add requirements for this node to include in the prompt.",
118
120
  "regionPlaceholder": "Describe the layout content represented by this region",
119
121
  "textPlaceholder": "Describe what this text communicates"
120
122
  }
@@ -133,6 +135,7 @@
133
135
  "agentCommand": "Use the following CLI command to connect to the current session:\n\n{{command}}\n\nOnce connected, stop and wait for the next instruction."
134
136
  },
135
137
  "workspaceSidebar": {
138
+ "containsCurrentSession": "Contains current session",
136
139
  "functionArea": "Actions",
137
140
  "projectArea": "Projects",
138
141
  "newComposition": "New composition",
@@ -158,7 +161,7 @@
158
161
  "renameSessionTitle": "Rename session",
159
162
  "renameSessionPlaceholder": "Enter session name",
160
163
  "deleteSessionTitle": "Delete session",
161
- "deleteSessionDescription": "Deleting this session also removes its drafts and refinement records.",
164
+ "deleteSessionDescription": "This session will move to Trash and can be restored before its retention period ends.",
162
165
  "loading": "Loading projects",
163
166
  "loadFailed": "Could not load projects",
164
167
  "newSessionGroup": "New group",
@@ -194,6 +197,8 @@
194
197
  },
195
198
  "imageEditor": {
196
199
  "content": "Image content",
200
+ "sourceDimensions": "{{width}} × {{height}} px",
201
+ "sourceFileSize": "{{size}} {{unit}}",
197
202
  "upload": "Upload image",
198
203
  "replace": "Replace image",
199
204
  "uploading": "Uploading",
@@ -225,6 +230,7 @@
225
230
  },
226
231
  "node": {
227
232
  "nodeDescription": "Node description",
233
+ "nodeDescriptionHelp": "Explains this node's role; agents can read and edit it.",
228
234
  "originUser": "user",
229
235
  "originAgent": "agent",
230
236
  "originImport": "import"
@@ -549,6 +555,31 @@
549
555
  },
550
556
  "preview": {
551
557
  "outputFormatError": "UI preview output must use a .png or .svg filename."
558
+ },
559
+ "pngSplit": {
560
+ "action": "Split PNG",
561
+ "alphaThreshold": "Alpha threshold",
562
+ "minSize": "Minimum size",
563
+ "gap": "Gap",
564
+ "failed": "Splitting failed. Please retry.",
565
+ "invalid": "Select nonempty static PNG images with transparent areas.",
566
+ "complete": "Created {{count}} images; filtered {{discarded}} fragments.",
567
+ "alreadySplit": "Selected images have already been split.",
568
+ "retrySave": "Retry save",
569
+ "settings": "PNG split settings",
570
+ "applySettings": "Split",
571
+ "running": "Splitting PNG…",
572
+ "preview": "Split bounds preview",
573
+ "previewing": "Calculating split bounds…",
574
+ "previewFailed": "Could not preview split bounds. Please retry.",
575
+ "previewSummary": "Will create {{count}} images and filter {{discarded}} fragments.",
576
+ "zoomIn": "Zoom in",
577
+ "zoomOut": "Zoom out",
578
+ "help": "Preview controls",
579
+ "interactionHelp": "Scroll to zoom. Right-drag or Space-drag to pan. Choose Free anchors and click to add points. With at least three non-collinear points, click the first point or press Enter to close; Esc cancels drawing. Closed regions can be selected and deleted, but not reshaped. Each region becomes one image; earlier regions own overlapping pixels.",
580
+ "freeAnchors": "Free anchors",
581
+ "manualRegion": "Manual region {{index}}",
582
+ "closeRegion": "Close region"
552
583
  }
553
584
  },
554
585
  "clipboard": {
@@ -586,6 +617,7 @@
586
617
  "uiSketchPlaceholder": "Enter text"
587
618
  },
588
619
  "errors": {
620
+ "historyExpired": "This history has expired. Reload the current canvas.",
589
621
  "serviceSync": "Could not synchronize with Human2AI: {{message}}",
590
622
  "operationFailed": "The action failed. Try again."
591
623
  },
@@ -832,5 +864,35 @@
832
864
  "loading": "Loading preview sources",
833
865
  "descendantMatches": "{{count}} matching descendants",
834
866
  "searchResults": "{{count}} matches"
867
+ },
868
+ "units": {
869
+ "pixels": "px"
870
+ },
871
+ "settings": {
872
+ "title": "Settings",
873
+ "navigationLabel": "Settings sections",
874
+ "close": "Close settings",
875
+ "autoRelease": "Automatic cleanup",
876
+ "imageDays": "Unused images",
877
+ "imageHint": "Images in use are kept.",
878
+ "historyDays": "Canvas history",
879
+ "historyHint": "The latest version and active undo history are kept. Ordinary history is limited to 100 versions.",
880
+ "trash": "Trash",
881
+ "trashDays": "Auto-delete after",
882
+ "trashHint": "Deleted sessions and their content are permanently removed when this period ends.",
883
+ "resetDefaults": "Reset to defaults",
884
+ "restoreSession": "Restore session",
885
+ "emptyTrash": "Trash is empty",
886
+ "deletedAt": "Deleted at",
887
+ "loading": "Loading settings",
888
+ "invalidDays": "Enter a whole number of days from 1 to 3650.",
889
+ "conflict": "Settings have changed. Retry to save your changes.",
890
+ "daysUnit_one": "day",
891
+ "daysUnit_other": "days",
892
+ "deleteNow": "Delete now",
893
+ "deleteNowConfirm": "Permanently delete “{{title}}”?",
894
+ "clearTrash": "Empty trash",
895
+ "clearTrashConfirm": "Empty the trash?",
896
+ "permanentDeleteHint": "Deleted sessions and their content cannot be restored."
835
897
  }
836
898
  }
@@ -0,0 +1,6 @@
1
+ CREATE TABLE ui_sketch_png_splits (
2
+ id TEXT PRIMARY KEY,
3
+ session_id TEXT NOT NULL,
4
+ record_json TEXT NOT NULL,
5
+ FOREIGN KEY (session_id) REFERENCES sessions(id) ON DELETE CASCADE
6
+ ) STRICT;
@@ -0,0 +1,43 @@
1
+ ALTER TABLE image_assets ADD COLUMN unreferenced_since TEXT;
2
+ ALTER TABLE image_assets ADD COLUMN deleting INTEGER NOT NULL DEFAULT 0 CHECK (deleting IN (0, 1));
3
+ ALTER TABLE image_assets ADD COLUMN preview_reference_json TEXT;
4
+ CREATE INDEX image_assets_sha256 ON image_assets(sha256);
5
+
6
+ -- Existing destination-owned previews remain verifiable after source history expires.
7
+ UPDATE image_assets AS asset SET preview_reference_json = previews.reference
8
+ FROM (
9
+ SELECT versions.session_id, json_extract(image.value, '$.assetId') AS asset_id,
10
+ json_extract(image.value, '$.previewReference') AS reference,
11
+ row_number() OVER (PARTITION BY versions.session_id, json_extract(image.value, '$.assetId') ORDER BY versions.revision) AS first_reference
12
+ FROM ui_sketch_draft_versions versions, json_each(versions.draft_json, '$.images') image
13
+ WHERE json_type(image.value, '$.previewReference') = 'object'
14
+ ) previews
15
+ WHERE previews.first_reference = 1 AND previews.session_id = asset.session_id AND previews.asset_id = asset.id;
16
+
17
+ ALTER TABLE ui_sketch_png_splits ADD COLUMN updated_at TEXT NOT NULL DEFAULT '';
18
+ UPDATE ui_sketch_png_splits SET updated_at = strftime('%Y-%m-%dT%H:%M:%fZ', 'now');
19
+
20
+ CREATE TABLE session_storage_protections (
21
+ session_id TEXT NOT NULL REFERENCES sessions(id) ON DELETE CASCADE,
22
+ client_id TEXT NOT NULL,
23
+ revisions_json TEXT NOT NULL,
24
+ asset_ids_json TEXT NOT NULL,
25
+ expires_at TEXT NOT NULL,
26
+ PRIMARY KEY (session_id, client_id)
27
+ ) STRICT;
28
+
29
+ CREATE TABLE storage_orphan_files (
30
+ relative_path TEXT PRIMARY KEY,
31
+ unreferenced_since TEXT NOT NULL
32
+ ) STRICT;
33
+
34
+ -- Cascading session/project deletion must not lose the paths of source files.
35
+ CREATE TRIGGER image_asset_file_removed AFTER DELETE ON image_assets BEGIN
36
+ INSERT OR IGNORE INTO storage_orphan_files VALUES (OLD.relative_path, strftime('%Y-%m-%dT%H:%M:%fZ', 'now'));
37
+ END;
38
+ CREATE TRIGGER style_image_file_removed AFTER DELETE ON style_reference_images BEGIN
39
+ INSERT OR IGNORE INTO storage_orphan_files VALUES (OLD.relative_path, strftime('%Y-%m-%dT%H:%M:%fZ', 'now'));
40
+ END;
41
+ CREATE TRIGGER style_model_file_removed AFTER DELETE ON style_preview_models BEGIN
42
+ INSERT OR IGNORE INTO storage_orphan_files VALUES (OLD.relative_path, strftime('%Y-%m-%dT%H:%M:%fZ', 'now'));
43
+ END;
@@ -0,0 +1,11 @@
1
+ ALTER TABLE sessions ADD COLUMN deleted_at TEXT;
2
+ CREATE INDEX sessions_deleted_at ON sessions(deleted_at) WHERE deleted_at IS NOT NULL;
3
+
4
+ CREATE TABLE workspace_settings (
5
+ id INTEGER PRIMARY KEY CHECK (id = 1),
6
+ revision INTEGER NOT NULL CHECK (revision >= 1),
7
+ image_retention_days INTEGER NOT NULL CHECK (image_retention_days BETWEEN 1 AND 3650),
8
+ history_retention_days INTEGER NOT NULL CHECK (history_retention_days BETWEEN 1 AND 3650),
9
+ trash_retention_days INTEGER NOT NULL CHECK (trash_retention_days BETWEEN 1 AND 3650)
10
+ ) STRICT;
11
+ INSERT INTO workspace_settings VALUES (1, 1, 1, 7, 7);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "human2ai",
3
- "version": "0.1.7",
3
+ "version": "0.1.8",
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": "贾思斋",