@shivaedev/work-board 0.7.2 → 0.8.0

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 (198) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/README.md +93 -2
  3. package/assets/agent.js +37 -0
  4. package/assets/native.js +32 -25
  5. package/dist/board.d.ts +1 -0
  6. package/dist/board.d.ts.map +1 -1
  7. package/dist/board.js +15 -2
  8. package/dist/board.js.map +1 -1
  9. package/dist/browser/client.d.ts +19 -79
  10. package/dist/browser/client.d.ts.map +1 -1
  11. package/dist/browser/client.js +12 -1
  12. package/dist/browser/client.js.map +1 -1
  13. package/dist/browser/entry.d.ts +3 -0
  14. package/dist/browser/entry.d.ts.map +1 -0
  15. package/dist/browser/entry.js +7 -0
  16. package/dist/browser/entry.js.map +1 -0
  17. package/dist/browser/responses/draftSession.d.ts +8 -0
  18. package/dist/browser/responses/draftSession.d.ts.map +1 -0
  19. package/dist/browser/responses/draftSession.js +92 -0
  20. package/dist/browser/responses/draftSession.js.map +1 -0
  21. package/dist/browser/responses/drafts.d.ts +16 -0
  22. package/dist/browser/responses/drafts.d.ts.map +1 -0
  23. package/dist/browser/responses/drafts.js +49 -0
  24. package/dist/browser/responses/drafts.js.map +1 -0
  25. package/dist/browser/responses/preview.d.ts +3 -0
  26. package/dist/browser/responses/preview.d.ts.map +1 -0
  27. package/dist/browser/responses/preview.js +4 -0
  28. package/dist/browser/responses/preview.js.map +1 -0
  29. package/dist/browser/responses/schema.d.ts +127 -0
  30. package/dist/browser/responses/schema.d.ts.map +1 -0
  31. package/dist/browser/responses/schema.js +47 -0
  32. package/dist/browser/responses/schema.js.map +1 -0
  33. package/dist/browser/responses/setup.d.ts +2 -0
  34. package/dist/browser/responses/setup.d.ts.map +1 -0
  35. package/dist/browser/responses/setup.js +99 -0
  36. package/dist/browser/responses/setup.js.map +1 -0
  37. package/dist/browser/responses/submit.d.ts +4 -0
  38. package/dist/browser/responses/submit.d.ts.map +1 -0
  39. package/dist/browser/responses/submit.js +36 -0
  40. package/dist/browser/responses/submit.js.map +1 -0
  41. package/dist/browser/session.d.ts +1 -79
  42. package/dist/browser/session.d.ts.map +1 -1
  43. package/dist/cli.d.ts.map +1 -1
  44. package/dist/cli.js +24 -15
  45. package/dist/cli.js.map +1 -1
  46. package/dist/files/changes.d.ts +1 -0
  47. package/dist/files/changes.d.ts.map +1 -1
  48. package/dist/files/changes.js +1 -1
  49. package/dist/files/changes.js.map +1 -1
  50. package/dist/http/respond.d.ts.map +1 -1
  51. package/dist/http/respond.js +2 -0
  52. package/dist/http/respond.js.map +1 -1
  53. package/dist/metadata/backlinks.d.ts.map +1 -1
  54. package/dist/metadata/backlinks.js +2 -0
  55. package/dist/metadata/backlinks.js.map +1 -1
  56. package/dist/metadata/fields.d.ts +17 -1
  57. package/dist/metadata/fields.d.ts.map +1 -1
  58. package/dist/metadata/problems.d.ts.map +1 -1
  59. package/dist/metadata/problems.js +2 -0
  60. package/dist/metadata/problems.js.map +1 -1
  61. package/dist/metadata/schema.d.ts +17 -1
  62. package/dist/metadata/schema.d.ts.map +1 -1
  63. package/dist/metadata/schema.js +6 -2
  64. package/dist/metadata/schema.js.map +1 -1
  65. package/dist/page/attentionDetails.d.ts.map +1 -1
  66. package/dist/page/attentionDetails.js +2 -1
  67. package/dist/page/attentionDetails.js.map +1 -1
  68. package/dist/page/metadataDetails.d.ts.map +1 -1
  69. package/dist/page/metadataDetails.js +6 -0
  70. package/dist/page/metadataDetails.js.map +1 -1
  71. package/dist/page/navigationScript.js +1 -1
  72. package/dist/page/shell.d.ts +1 -1
  73. package/dist/page/shell.d.ts.map +1 -1
  74. package/dist/page/shell.js.map +1 -1
  75. package/dist/page/style.d.ts.map +1 -1
  76. package/dist/page/style.js +2 -1
  77. package/dist/page/style.js.map +1 -1
  78. package/dist/page/swap.d.ts +1 -1
  79. package/dist/page/swap.d.ts.map +1 -1
  80. package/dist/page/swap.js +3 -0
  81. package/dist/page/swap.js.map +1 -1
  82. package/dist/path/Identity.d.ts +3 -0
  83. package/dist/path/Identity.d.ts.map +1 -0
  84. package/dist/path/Identity.js +3 -0
  85. package/dist/path/Identity.js.map +1 -0
  86. package/dist/responses/agent-cli.d.ts +2 -0
  87. package/dist/responses/agent-cli.d.ts.map +1 -0
  88. package/dist/responses/agent-cli.js +31 -0
  89. package/dist/responses/agent-cli.js.map +1 -0
  90. package/dist/responses/agent.d.ts +68 -0
  91. package/dist/responses/agent.d.ts.map +1 -0
  92. package/dist/responses/agent.js +49 -0
  93. package/dist/responses/agent.js.map +1 -0
  94. package/dist/responses/await.d.ts +33 -0
  95. package/dist/responses/await.d.ts.map +1 -0
  96. package/dist/responses/await.js +21 -0
  97. package/dist/responses/await.js.map +1 -0
  98. package/dist/responses/flags.d.ts +6 -0
  99. package/dist/responses/flags.d.ts.map +1 -0
  100. package/dist/responses/flags.js +23 -0
  101. package/dist/responses/flags.js.map +1 -0
  102. package/dist/responses/locate.d.ts +13 -0
  103. package/dist/responses/locate.d.ts.map +1 -0
  104. package/dist/responses/locate.js +50 -0
  105. package/dist/responses/locate.js.map +1 -0
  106. package/dist/responses/outcome.d.ts +65 -0
  107. package/dist/responses/outcome.d.ts.map +1 -0
  108. package/dist/responses/outcome.js +14 -0
  109. package/dist/responses/outcome.js.map +1 -0
  110. package/dist/responses/page.d.ts +6 -0
  111. package/dist/responses/page.d.ts.map +1 -0
  112. package/dist/responses/page.js +25 -0
  113. package/dist/responses/page.js.map +1 -0
  114. package/dist/responses/publish.d.ts +4 -0
  115. package/dist/responses/publish.d.ts.map +1 -0
  116. package/dist/responses/publish.js +56 -0
  117. package/dist/responses/publish.js.map +1 -0
  118. package/dist/responses/publishIn.d.ts +3 -0
  119. package/dist/responses/publishIn.d.ts.map +1 -0
  120. package/dist/responses/publishIn.js +69 -0
  121. package/dist/responses/publishIn.js.map +1 -0
  122. package/dist/responses/read.d.ts +30 -0
  123. package/dist/responses/read.d.ts.map +1 -0
  124. package/dist/responses/read.js +43 -0
  125. package/dist/responses/read.js.map +1 -0
  126. package/dist/responses/records.d.ts +12 -0
  127. package/dist/responses/records.d.ts.map +1 -0
  128. package/dist/responses/records.js +47 -0
  129. package/dist/responses/records.js.map +1 -0
  130. package/dist/responses/retry.d.ts +22 -0
  131. package/dist/responses/retry.d.ts.map +1 -0
  132. package/dist/responses/retry.js +14 -0
  133. package/dist/responses/retry.js.map +1 -0
  134. package/dist/responses/service.d.ts +106 -0
  135. package/dist/responses/service.d.ts.map +1 -0
  136. package/dist/responses/service.js +90 -0
  137. package/dist/responses/service.js.map +1 -0
  138. package/dist/responses/waitFor.d.ts +31 -0
  139. package/dist/responses/waitFor.d.ts.map +1 -0
  140. package/dist/responses/waitFor.js +47 -0
  141. package/dist/responses/waitFor.js.map +1 -0
  142. package/dist/rpc/contract.d.ts +101 -2
  143. package/dist/rpc/contract.d.ts.map +1 -1
  144. package/dist/rpc/contract.js +3 -2
  145. package/dist/rpc/contract.js.map +1 -1
  146. package/dist/rpc/responseContract.d.ts +212 -0
  147. package/dist/rpc/responseContract.d.ts.map +1 -0
  148. package/dist/rpc/responseContract.js +37 -0
  149. package/dist/rpc/responseContract.js.map +1 -0
  150. package/dist/rpc/server.d.ts +3 -1
  151. package/dist/rpc/server.d.ts.map +1 -1
  152. package/dist/rpc/server.js +6 -1
  153. package/dist/rpc/server.js.map +1 -1
  154. package/dist/serve-cli.d.ts +3 -0
  155. package/dist/serve-cli.d.ts.map +1 -0
  156. package/dist/serve-cli.js +20 -0
  157. package/dist/serve-cli.js.map +1 -0
  158. package/package.json +2 -2
  159. package/src/board.ts +16 -2
  160. package/src/browser/client.ts +30 -4
  161. package/src/browser/entry.ts +9 -0
  162. package/src/browser/responses/draftSession.ts +88 -0
  163. package/src/browser/responses/drafts.ts +58 -0
  164. package/src/browser/responses/preview.ts +5 -0
  165. package/src/browser/responses/schema.ts +52 -0
  166. package/src/browser/responses/setup.ts +102 -0
  167. package/src/browser/responses/submit.ts +41 -0
  168. package/src/cli.ts +14 -22
  169. package/src/files/changes.ts +2 -1
  170. package/src/http/respond.ts +2 -0
  171. package/src/metadata/backlinks.ts +2 -0
  172. package/src/metadata/problems.ts +2 -0
  173. package/src/metadata/schema.ts +6 -2
  174. package/src/page/attentionDetails.ts +2 -1
  175. package/src/page/metadataDetails.ts +6 -0
  176. package/src/page/navigationScript.ts +1 -1
  177. package/src/page/shell.ts +1 -1
  178. package/src/page/style.ts +2 -1
  179. package/src/page/swap.ts +3 -0
  180. package/src/path/Identity.ts +3 -0
  181. package/src/responses/agent-cli.ts +35 -0
  182. package/src/responses/agent.ts +59 -0
  183. package/src/responses/await.ts +21 -0
  184. package/src/responses/flags.ts +22 -0
  185. package/src/responses/locate.ts +55 -0
  186. package/src/responses/outcome.ts +15 -0
  187. package/src/responses/page.ts +41 -0
  188. package/src/responses/publish.ts +53 -0
  189. package/src/responses/publishIn.ts +64 -0
  190. package/src/responses/read.ts +45 -0
  191. package/src/responses/records.ts +53 -0
  192. package/src/responses/retry.ts +23 -0
  193. package/src/responses/service.ts +106 -0
  194. package/src/responses/waitFor.ts +58 -0
  195. package/src/rpc/contract.ts +3 -2
  196. package/src/rpc/responseContract.ts +46 -0
  197. package/src/rpc/server.ts +8 -1
  198. package/src/serve-cli.ts +37 -0
package/dist/board.d.ts CHANGED
@@ -5,6 +5,7 @@ import { type MermaidMissing } from "#http/assets.ts";
5
5
  import type { RenderFailed } from "#render/failed.ts";
6
6
  export interface BoardOptions {
7
7
  readonly home?: string | undefined;
8
+ readonly responses?: boolean;
8
9
  readonly root: string;
9
10
  }
10
11
  type BoardError = HomeMissing | MermaidMissing | PlatformError.PlatformError | RenderFailed;
@@ -1 +1 @@
1
- {"version":3,"file":"board.d.ts","sourceRoot":"","sources":["../src/board.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,aAAa,EAAc,MAAM,QAAQ,CAAC;AAClG,OAAO,EAAE,UAAU,EAA8C,MAAM,sBAAsB,CAAC;AAE9F,OAAO,EAAE,KAAK,WAAW,EAAU,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAyB,KAAK,cAAc,EAAuD,MAAM,iBAAiB,CAAC;AAalI,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAKtD,MAAM,WAAW,YAAY;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACtB;AA2ED,KAAK,UAAU,GAAG,WAAW,GAAG,cAAc,GAAG,aAAa,CAAC,aAAa,GAAG,YAAY,CAAC;AAC5F,KAAK,aAAa,GAAG,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;AAE1I,eAAO,MAAM,UAAU,GAAI,SAAS,YAAY,KAAG,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,aAAa,CACxC,CAAC"}
1
+ {"version":3,"file":"board.d.ts","sourceRoot":"","sources":["../src/board.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,aAAa,EAAc,MAAM,QAAQ,CAAC;AAClG,OAAO,EAAE,UAAU,EAA8C,MAAM,sBAAsB,CAAC;AAE9F,OAAO,EAAE,KAAK,WAAW,EAAU,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAyB,KAAK,cAAc,EAAuD,MAAM,iBAAiB,CAAC;AAalI,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAOtD,MAAM,WAAW,YAAY;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACtB;AAsFD,KAAK,UAAU,GAAG,WAAW,GAAG,cAAc,GAAG,aAAa,CAAC,aAAa,GAAG,YAAY,CAAC;AAC5F,KAAK,aAAa,GAAG,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;AAE1I,eAAO,MAAM,UAAU,GAAI,SAAS,YAAY,KAAG,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,aAAa,CACxC,CAAC"}
package/dist/board.js CHANGED
@@ -16,6 +16,8 @@ import { search } from "#http/search.ts";
16
16
  import { start } from "#http/start.ts";
17
17
  import { work } from "#http/work.ts";
18
18
  import { Highlighter } from "#render/highlighter.ts";
19
+ import { responsePage } from "#responses/page.ts";
20
+ import { responseService } from "#responses/service.ts";
19
21
  import { server } from "#rpc/server.ts";
20
22
  import { searchSnapshot } from "#search/snapshot.ts";
21
23
  const routes = (options) => HttpRouter.use((router) => Effect.gen(function* () {
@@ -42,6 +44,14 @@ const routes = (options) => HttpRouter.use((router) => Effect.gen(function* () {
42
44
  }
43
45
  yield* serve(MERMAID_ROUTE, mermaidFile(mermaid));
44
46
  yield* serve(NATIVE_ROUTE, nativeAsset);
47
+ const responses = yield* responseService({
48
+ changes,
49
+ enabled: options.responses === true,
50
+ index: Effect.provideContext(index, context),
51
+ root: options.root,
52
+ });
53
+ const replyPage = responsePage(responses, changes, home, options.responses === true);
54
+ yield* serve("/_board/respond", replyPage);
45
55
  const pages = page({ home, root: options.root }, changes, index);
46
56
  const items = identity(index, pages, changes, home);
47
57
  yield* serve("/_board/item/*", items);
@@ -50,6 +60,9 @@ const routes = (options) => HttpRouter.use((router) => Effect.gen(function* () {
50
60
  const pathname = new URL(url, "http://127.0.0.1").pathname;
51
61
  let selected;
52
62
  switch (pathname) {
63
+ case "/_board/respond":
64
+ selected = replyPage(request);
65
+ break;
53
66
  case "/_board/start":
54
67
  selected = startPage();
55
68
  break;
@@ -67,8 +80,8 @@ const routes = (options) => HttpRouter.use((router) => Effect.gen(function* () {
67
80
  }
68
81
  return Effect.provideContext(selected, context);
69
82
  }
70
- const rpc = yield* server({ changes, home, index: Effect.provideContext(index, context), page: readPage });
71
- yield* serve("/_board/rpc", (request) => sameOrigin(request)
83
+ const rpc = yield* server({ changes, home, index: Effect.provideContext(index, context), page: readPage, responses });
84
+ yield* serve("/_board/rpc", (request) => sameOrigin(request) && (options.responses !== true || request.headers["content-type"]?.split(";")[0] === "application/ndjson")
72
85
  ? rpc.pipe(Effect.provideService(HttpServerRequest.HttpServerRequest, request))
73
86
  : Effect.succeed(respond("Local same-origin requests only", "text/plain", 403)), "POST");
74
87
  yield* serve("/", pages);
package/dist/board.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"board.js","sourceRoot":"","sources":["../src/board.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAkC,MAAM,QAAQ,CAAC;AAClG,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAA2B,MAAM,sBAAsB,CAAC;AAC9F,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAoB,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,aAAa,EAAuB,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAClI,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAErC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAUrD,MAAM,MAAM,GAAG,CAAC,OAAqB,EAAE,EAAE,CACxC,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CACzB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IACnB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;IACrC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,EAAY,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACtH,MAAM,KAAK,GAAG,CAAI,KAA2B,EAAE,OAAmB,EAAE,SAAyB,KAAK,EAAE,EAAE,CACrG,MAAM,CAAC,GAAG,CACT,MAAM,EACN,KAAK,EACL,YAAY,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC,CAC3E,CAAC;IACH,KAAK,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IACzC,KAAK,CAAC,CAAC,KAAK,CAAC,sBAAsB,EAAE,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IACjF,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACjE,KAAK,CAAC,CAAC,KAAK,CAAC,gBAAgB,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9C,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACvC,KAAK,CAAC,CAAC,KAAK,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAC5C,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACpD,MAAM,WAAW,GAAG,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC/C,KAAK,CAAC,CAAC,KAAK,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;IACvC,KAAK,CAAC,CAAC,KAAK,CAAC,kBAAkB,EAAE,YAAY,CAAC,CAAC;IAC/C,KAAK,CAAC,CAAC,KAAK,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC;IAC7C,KAAK,CAAC,CAAC,KAAK,CAAC,iBAAiB,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC;IACxD,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,MAAM,EAAE,CAAC;QACjD,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IACvE,CAAC;IACD,KAAK,CAAC,CAAC,KAAK,CAAC,aAAa,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;IAClD,KAAK,CAAC,CAAC,KAAK,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IACjE,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACpD,KAAK,CAAC,CAAC,KAAK,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;IACtC,SAAS,QAAQ,CAAC,GAAW;QAC5B,MAAM,OAAO,GAAG,iBAAiB,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,mBAAmB,GAAG,EAAE,CAAC,CAAC,CAAC;QACjF,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC,QAAQ,CAAC;QAC3D,IAAI,QAAkC,CAAC;QACvC,QAAQ,QAAQ,EAAE,CAAC;YAClB,KAAK,eAAe;gBACnB,QAAQ,GAAG,SAAS,EAAE,CAAC;gBACvB,MAAM;YACP,KAAK,cAAc;gBAClB,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;gBAC7B,MAAM;YACP,KAAK,kBAAkB;gBACtB,QAAQ,GAAG,YAAY,EAAE,CAAC;gBAC1B,MAAM;YACP,KAAK,iBAAiB;gBACrB,QAAQ,GAAG,WAAW,EAAE,CAAC;gBACzB,MAAM;YACP;gBACC,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACpF,CAAC;QACD,OAAO,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;IACD,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC3G,KAAK,CAAC,CAAC,KAAK,CACX,aAAa,EACb,CAAC,OAAO,EAAE,EAAE,CACX,UAAU,CAAC,OAAO,CAAC;QAClB,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;QAC/E,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,iCAAiC,EAAE,YAAY,EAAE,GAAG,CAAC,CAAC,EACjF,MAAM,CACN,CAAC;IACF,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACzB,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC3B,CAAC,CAAC,CACF,CAAC;AAKH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,OAAqB,EAAiD,EAAE,CAClG,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"board.js","sourceRoot":"","sources":["../src/board.ts"],"names":[],"mappings":"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"}
@@ -2,87 +2,27 @@ import { Effect } from "effect";
2
2
  import type * as AsyncResult from "effect/unstable/reactivity/AsyncResult";
3
3
  import type * as Atom from "effect/unstable/reactivity/Atom";
4
4
  import * as AtomRegistry from "effect/unstable/reactivity/AtomRegistry";
5
+ import type * as Reactivity from "effect/unstable/reactivity/Reactivity";
6
+ import type { RpcClientError } from "effect/unstable/rpc/RpcClientError";
7
+ import { type Bound } from "@shivaedev/effect-contract/bind.ts";
8
+ import type { Contract } from "@shivaedev/effect-contract/contract.ts";
9
+ import { live } from "@shivaedev/effect-contract/live.ts";
5
10
  import { type ResumeOptions } from "@shivaedev/effect-contract/resume.ts";
11
+ import { type ReadFailed, workContract } from "#rpc/contract.ts";
12
+ import { responseContract } from "#rpc/responseContract.ts";
6
13
  export interface Reader {
7
14
  readonly reader: unique symbol;
8
15
  }
9
- export declare function browserClient(url: string, options?: ResumeOptions): {
10
- api: import("@shivaedev/effect-contract/bind.ts").Bound<"work-board", readonly [import("@shivaedev/effect-contract/operation.ts").Query<"page", import("effect/Schema").Struct<{
11
- url: import("effect/Schema").String;
12
- }>, import("effect/Schema").Struct<{
13
- readonly html: import("effect/Schema").String;
14
- readonly status: import("effect/Schema").Number;
15
- }>, {
16
- readonly ReadFailed: typeof import("#rpc/contract.ts").ReadFailed;
17
- }>, import("@shivaedev/effect-contract/operation.ts").Query<"navigation", import("effect/Schema").Void, import("effect/Schema").String, {
18
- readonly ReadFailed: typeof import("#rpc/contract.ts").ReadFailed;
19
- }>, import("@shivaedev/effect-contract/operation.ts").Query<"search", import("effect/Schema").Struct<{
20
- query: import("effect/Schema").String;
21
- }>, import("effect/Schema").Struct<{
22
- readonly results: import("effect/Schema").$Array<import("effect/Schema").Struct<{
23
- readonly file: import("effect/Schema").String;
24
- readonly href: import("effect/Schema").String;
25
- readonly kind: import("effect/Schema").Literals<readonly ["document", "heading", "passage"]>;
26
- readonly line: import("effect/Schema").optional<import("effect/Schema").Number>;
27
- readonly snippet: import("effect/Schema").String;
28
- readonly text: import("effect/Schema").String;
29
- readonly title: import("effect/Schema").String;
30
- }>>;
31
- readonly total: import("effect/Schema").Number;
32
- readonly unavailable: import("effect/Schema").$Array<import("effect/Schema").String>;
33
- }>, {
34
- readonly ReadFailed: typeof import("#rpc/contract.ts").ReadFailed;
35
- }>, import("@shivaedev/effect-contract/operation.ts").Query<"history", import("effect/Schema").Struct<{
36
- readonly action: import("effect/Schema").Literals<readonly ["check", "compare", "observe"]>;
37
- readonly baseline: import("effect/Schema").NullOr<import("effect/Schema").String>;
38
- }>, import("effect/Schema").Struct<{
39
- readonly discardBaseline: import("effect/Schema").Boolean;
40
- readonly html: import("effect/Schema").String;
41
- readonly reason: import("effect/Schema").String;
42
- readonly snapshot: import("effect/Schema").NullOr<import("effect/Schema").String>;
43
- }>, {
44
- readonly ReadFailed: typeof import("#rpc/contract.ts").ReadFailed;
45
- }>, import("@shivaedev/effect-contract/operation.ts").Query<"watcher", import("effect/Schema").Void, import("effect/Schema").Struct<{
46
- readonly watching: import("effect/Schema").Boolean;
47
- }>, {
48
- readonly ReadFailed: typeof import("#rpc/contract.ts").ReadFailed;
49
- }>], readonly [], import("effect/unstable/rpc/Rpc").Rpc<"work-board.history", import("effect/Schema").Struct<{
50
- readonly action: import("effect/Schema").Literals<readonly ["check", "compare", "observe"]>;
51
- readonly baseline: import("effect/Schema").NullOr<import("effect/Schema").String>;
52
- }>, import("effect/Schema").Struct<{
53
- readonly discardBaseline: import("effect/Schema").Boolean;
54
- readonly html: import("effect/Schema").String;
55
- readonly reason: import("effect/Schema").String;
56
- readonly snapshot: import("effect/Schema").NullOr<import("effect/Schema").String>;
57
- }>, import("effect/Schema").Union<readonly typeof import("#rpc/contract.ts").ReadFailed[]>, never, never> | import("effect/unstable/rpc/Rpc").Rpc<"work-board.navigation", import("effect/Schema").Void, import("effect/Schema").String, import("effect/Schema").Union<readonly typeof import("#rpc/contract.ts").ReadFailed[]>, never, never> | import("effect/unstable/rpc/Rpc").Rpc<"work-board.page", import("effect/Schema").Struct<{
58
- url: import("effect/Schema").String;
59
- }>, import("effect/Schema").Struct<{
60
- readonly html: import("effect/Schema").String;
61
- readonly status: import("effect/Schema").Number;
62
- }>, import("effect/Schema").Union<readonly typeof import("#rpc/contract.ts").ReadFailed[]>, never, never> | import("effect/unstable/rpc/Rpc").Rpc<"work-board.search", import("effect/Schema").Struct<{
63
- query: import("effect/Schema").String;
64
- }>, import("effect/Schema").Struct<{
65
- readonly results: import("effect/Schema").$Array<import("effect/Schema").Struct<{
66
- readonly file: import("effect/Schema").String;
67
- readonly href: import("effect/Schema").String;
68
- readonly kind: import("effect/Schema").Literals<readonly ["document", "heading", "passage"]>;
69
- readonly line: import("effect/Schema").optional<import("effect/Schema").Number>;
70
- readonly snippet: import("effect/Schema").String;
71
- readonly text: import("effect/Schema").String;
72
- readonly title: import("effect/Schema").String;
73
- }>>;
74
- readonly total: import("effect/Schema").Number;
75
- readonly unavailable: import("effect/Schema").$Array<import("effect/Schema").String>;
76
- }>, import("effect/Schema").Union<readonly typeof import("#rpc/contract.ts").ReadFailed[]>, never, never> | import("effect/unstable/rpc/Rpc").Rpc<"work-board.watcher", import("effect/Schema").Void, import("effect/Schema").Struct<{
77
- readonly watching: import("effect/Schema").Boolean;
78
- }>, import("effect/Schema").Union<readonly typeof import("#rpc/contract.ts").ReadFailed[]>, never, never>, Reader>;
79
- read: <A, E>(atom: Atom.Atom<AsyncResult.AsyncResult<A, E>>, signal?: AbortSignal) => Promise<A>;
80
- registry: AtomRegistry.AtomRegistry;
81
- run: <A, E>(effect: Effect.Effect<A, E, Reader>, signal?: AbortSignal) => Promise<A>;
82
- updates: {
83
- connection: Atom.Atom<AsyncResult.AsyncResult<void, never>>;
84
- paused: Atom.Writable<boolean, boolean>;
85
- status: Atom.Writable<import("@shivaedev/effect-contract/live.ts").LiveStatus<import("#rpc/contract.ts").ReadFailed | import("effect/unstable/rpc/RpcClientError").RpcClientError>, import("@shivaedev/effect-contract/live.ts").LiveStatus<import("#rpc/contract.ts").ReadFailed | import("effect/unstable/rpc/RpcClientError").RpcClientError>>;
86
- };
87
- };
16
+ type BoundContract<TContract> = TContract extends Contract<infer TName, infer TQueries, infer TCommands, infer TRpcs> ? Bound<TName, TQueries, TCommands, TRpcs, Reader> : never;
17
+ export interface BrowserClient {
18
+ readonly api: BoundContract<typeof workContract>;
19
+ readonly mutate: <A, E>(effect: Effect.Effect<A, E, Reader | Reactivity.Reactivity>, signal?: AbortSignal) => Promise<A>;
20
+ readonly read: <A, E>(atom: Atom.Atom<AsyncResult.AsyncResult<A, E>>, signal?: AbortSignal) => Promise<A>;
21
+ readonly registry: AtomRegistry.AtomRegistry;
22
+ readonly responses: BoundContract<typeof responseContract>;
23
+ readonly run: <A, E>(effect: Effect.Effect<A, E, Reader>, signal?: AbortSignal) => Promise<A>;
24
+ readonly updates: ReturnType<typeof live<Reader, ReadFailed | RpcClientError, never>>;
25
+ }
26
+ export declare function browserClient(url: string, options?: ResumeOptions): BrowserClient;
27
+ export {};
88
28
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/browser/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAiB,MAAM,QAAQ,CAAC;AAE/C,OAAO,KAAK,KAAK,WAAW,MAAM,wCAAwC,CAAC;AAC3E,OAAO,KAAK,KAAK,IAAI,MAAM,iCAAiC,CAAC;AAC7D,OAAO,KAAK,YAAY,MAAM,yCAAyC,CAAC;AAKxE,OAAO,EAAE,KAAK,aAAa,EAAgB,MAAM,sCAAsC,CAAC;AAIxF,MAAM,WAAW,MAAM;IACtB,QAAQ,CAAC,MAAM,EAAE,OAAO,MAAM,CAAC;CAC/B;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAajD,CAAC,EAAE,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,WAAW;;UAY3E,CAAC,EAAE,CAAC,UAAU,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,WAAW,WAAW;;;;;;EAgBlF"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/browser/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAiB,MAAM,QAAQ,CAAC;AAE/C,OAAO,KAAK,KAAK,WAAW,MAAM,wCAAwC,CAAC;AAC3E,OAAO,KAAK,KAAK,IAAI,MAAM,iCAAiC,CAAC;AAC7D,OAAO,KAAK,YAAY,MAAM,yCAAyC,CAAC;AAExE,OAAO,KAAK,KAAK,UAAU,MAAM,uCAAuC,CAAC;AAEzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,KAAK,KAAK,EAAQ,MAAM,oCAAoC,CAAC;AACtE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AACvE,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC1D,OAAO,EAAE,KAAK,aAAa,EAAgB,MAAM,sCAAsC,CAAC;AACxF,OAAO,EAAE,KAAK,UAAU,EAAE,YAAY,EAAY,MAAM,kBAAkB,CAAC;AAE3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,MAAM,WAAW,MAAM;IACtB,QAAQ,CAAC,MAAM,EAAE,OAAO,MAAM,CAAC;CAC/B;AAED,KAAK,aAAa,CAAC,SAAS,IAC3B,SAAS,SAAS,QAAQ,CAAC,MAAM,KAAK,EAAE,MAAM,QAAQ,EAAE,MAAM,SAAS,EAAE,MAAM,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC;AAClJ,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAC,OAAO,YAAY,CAAC,CAAC;IACjD,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IACzH,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAC1G,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC,YAAY,CAAC;IAC7C,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,OAAO,gBAAgB,CAAC,CAAC;IAC3D,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAC9F,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC;CACtF;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,aAAa,CAmDrF"}
@@ -8,6 +8,7 @@ import { live } from "@shivaedev/effect-contract/live.ts";
8
8
  import { resumeSignal } from "@shivaedev/effect-contract/resume.ts";
9
9
  import { workContract, workRpcs } from "#rpc/contract.ts";
10
10
  import { workspace } from "#rpc/keys.ts";
11
+ import { responseContract } from "#rpc/responseContract.ts";
11
12
  export function browserClient(url, options = {}) {
12
13
  class Client extends AtomRpc.Service()("WorkBoard/Reader", {
13
14
  group: workRpcs,
@@ -48,6 +49,16 @@ export function browserClient(url, options = {}) {
48
49
  throw error;
49
50
  }
50
51
  }
51
- return { api, read, registry, run, updates };
52
+ async function mutate(effect, signal) {
53
+ const result = await Effect.runPromise(Effect.result(AtomRegistry.getResult(registry, Client.runtime.atom(effect), { suspendOnWaiting: true })), {
54
+ signal,
55
+ });
56
+ if (result._tag === "Failure") {
57
+ throw result.failure;
58
+ }
59
+ return result.success;
60
+ }
61
+ const responses = bind(responseContract, Client);
62
+ return { api, mutate, read, registry, responses, run, updates };
52
63
  }
53
64
  //# sourceMappingURL=client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/browser/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/browser/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { session as ownedSession } from "./session.ts";
2
+ export declare const session: typeof ownedSession;
3
+ //# sourceMappingURL=entry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entry.d.ts","sourceRoot":"","sources":["../../src/browser/entry.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,cAAc,CAAC;AAEvD,eAAO,MAAM,OAAO,qBAAe,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { setupResponses } from "#browser/responses/setup.ts";
2
+ if (typeof window !== "undefined" && typeof document !== "undefined") {
3
+ setupResponses();
4
+ }
5
+ import { session as ownedSession } from "./session.js";
6
+ export const session = ownedSession;
7
+ //# sourceMappingURL=entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entry.js","sourceRoot":"","sources":["../../src/browser/entry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7D,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,CAAC;IACtE,cAAc,EAAE,CAAC;AAClB,CAAC;AAED,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,cAAc,CAAC;AAEvD,MAAM,CAAC,MAAM,OAAO,GAAG,YAAY,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { type Draft } from "./drafts.ts";
2
+ export declare function draftSession(key: string, revision: string, storage: Storage | undefined, storageKey: string, report: (message: string) => void): {
3
+ clear: () => void;
4
+ current: () => Draft;
5
+ saved: (pending: Draft) => boolean;
6
+ update: (patch: Partial<Draft>) => Draft;
7
+ };
8
+ //# sourceMappingURL=draftSession.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"draftSession.d.ts","sourceRoot":"","sources":["../../../src/browser/responses/draftSession.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,KAAK,KAAK,EAA4B,MAAM,aAAa,CAAC;AAG9E,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI;;;qBA6DtH,KAAK;oBAxBN,OAAO,CAAC,KAAK,CAAC;EA8CrC"}
@@ -0,0 +1,92 @@
1
+ import { Clock, Effect } from "effect";
2
+ import { DRAFT_AGE, encodeDrafts, readDrafts } from "./drafts.js";
3
+ const states = new Map();
4
+ export function draftSession(key, revision, storage, storageKey, report) {
5
+ function local() {
6
+ if (!storage) {
7
+ throw new Error("Draft storage unavailable");
8
+ }
9
+ return storage;
10
+ }
11
+ let blocked = false;
12
+ let drafts = {};
13
+ try {
14
+ const stored = readDrafts(local().getItem(storageKey), Effect.runSync(Clock.currentTimeMillis));
15
+ drafts = stored.drafts;
16
+ if (stored.expired) {
17
+ report("Expired drafts were cleared after 30 days. Saved responses are unaffected.");
18
+ }
19
+ local().setItem(storageKey, encodeDrafts(drafts));
20
+ }
21
+ catch {
22
+ blocked = true;
23
+ report("Draft history is unavailable or malformed. Keep a copy; edits remain in this window.");
24
+ }
25
+ const memory = states.get(key);
26
+ if (memory && Effect.runSync(Clock.currentTimeMillis) - memory.updatedAt >= DRAFT_AGE) {
27
+ states.delete(key);
28
+ report("A window draft expired after 30 days. Saved responses are unaffected.");
29
+ }
30
+ let current = states.get(key)
31
+ ?? drafts[key] ?? {
32
+ author: "",
33
+ body: "",
34
+ id: `response.${crypto.randomUUID()}`,
35
+ revision,
36
+ type: "answer",
37
+ updatedAt: Effect.runSync(Clock.currentTimeMillis),
38
+ };
39
+ if (current.revision !== revision) {
40
+ report("Source changed since this draft. Your text is retained; review the new source and preview to bind it to this revision.");
41
+ }
42
+ function update(patch) {
43
+ current = { ...(states.get(key) ?? current), ...patch, updatedAt: Effect.runSync(Clock.currentTimeMillis) };
44
+ states.set(key, current);
45
+ try {
46
+ if (blocked) {
47
+ throw new Error("Unknown draft history");
48
+ }
49
+ const latest = readDrafts(local().getItem(storageKey), Effect.runSync(Clock.currentTimeMillis)).drafts;
50
+ local().setItem(storageKey, encodeDrafts({ ...latest, [key]: current }));
51
+ }
52
+ catch {
53
+ report("Draft could not be persisted (storage full or unavailable). Keep a copy; your text remains in this window.");
54
+ }
55
+ return current;
56
+ }
57
+ function clear() {
58
+ try {
59
+ local().removeItem(storageKey);
60
+ blocked = false;
61
+ states.clear();
62
+ report("Workspace drafts cleared. Saved responses are unchanged; this visible text remains until you navigate away.");
63
+ }
64
+ catch {
65
+ report("Draft storage could not be cleared.");
66
+ }
67
+ }
68
+ function saved(pending) {
69
+ if (states.get(key) !== pending) {
70
+ const live = states.get(key);
71
+ if (live?.id === pending.id) {
72
+ update({ id: `response.${crypto.randomUUID()}` });
73
+ }
74
+ return false;
75
+ }
76
+ states.delete(key);
77
+ try {
78
+ const latest = readDrafts(local().getItem(storageKey), Effect.runSync(Clock.currentTimeMillis)).drafts;
79
+ if (latest[key]?.id === pending.id) {
80
+ delete latest[key];
81
+ }
82
+ local().setItem(storageKey, encodeDrafts(latest));
83
+ }
84
+ catch {
85
+ report("Saved response confirmed, but its browser draft could not be cleared.");
86
+ }
87
+ current = { ...current, body: "", id: `response.${crypto.randomUUID()}`, updatedAt: Effect.runSync(Clock.currentTimeMillis) };
88
+ return true;
89
+ }
90
+ return { clear, current: () => current, saved, update };
91
+ }
92
+ //# sourceMappingURL=draftSession.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"draftSession.js","sourceRoot":"","sources":["../../../src/browser/responses/draftSession.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ export declare const DRAFT_BYTES: number;
2
+ export declare const DRAFT_AGE: number;
3
+ export interface Draft {
4
+ readonly author: string;
5
+ readonly body: string;
6
+ readonly id: string;
7
+ readonly revision: string;
8
+ readonly type: string;
9
+ readonly updatedAt: number;
10
+ }
11
+ export declare function readDrafts(raw: string | null, now: number): {
12
+ drafts: Record<string, Draft>;
13
+ expired: boolean;
14
+ };
15
+ export declare function encodeDrafts(drafts: Readonly<Record<string, Draft>>): string;
16
+ //# sourceMappingURL=drafts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drafts.d.ts","sourceRoot":"","sources":["../../../src/browser/responses/drafts.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,QAAkB,CAAC;AAC3C,eAAO,MAAM,SAAS,QAA2B,CAAC;AAClD,MAAM,WAAW,KAAK;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC3B;AACD,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAwC/G;AACD,wBAAgB,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,GAAG,MAAM,CAM5E"}
@@ -0,0 +1,49 @@
1
+ export const DRAFT_BYTES = 2 * 1024 * 1024;
2
+ export const DRAFT_AGE = 30 * 24 * 60 * 60 * 1000;
3
+ export function readDrafts(raw, now) {
4
+ if (raw === null) {
5
+ return { drafts: {}, expired: false };
6
+ }
7
+ if (new TextEncoder().encode(raw).length > DRAFT_BYTES) {
8
+ throw new Error("Draft storage exceeds the workspace limit.");
9
+ }
10
+ const value = JSON.parse(raw);
11
+ if (typeof value !== "object" || value === null || Array.isArray(value)) {
12
+ throw new Error("Draft storage is malformed.");
13
+ }
14
+ const drafts = {};
15
+ let expired = false;
16
+ for (const [key, entry] of Object.entries(value)) {
17
+ if (typeof entry !== "object"
18
+ || entry === null
19
+ || !("author" in entry)
20
+ || !("body" in entry)
21
+ || !("id" in entry)
22
+ || !("revision" in entry)
23
+ || !("type" in entry)
24
+ || !("updatedAt" in entry)
25
+ || typeof entry.author !== "string"
26
+ || typeof entry.body !== "string"
27
+ || typeof entry.id !== "string"
28
+ || typeof entry.revision !== "string"
29
+ || (entry.type !== "answer" && entry.type !== "clarify" && entry.type !== "not_now")
30
+ || typeof entry.updatedAt !== "number"
31
+ || !Number.isFinite(entry.updatedAt)) {
32
+ throw new Error("Draft storage is malformed.");
33
+ }
34
+ if (entry.updatedAt > now || now - entry.updatedAt >= DRAFT_AGE) {
35
+ expired = true;
36
+ continue;
37
+ }
38
+ drafts[key] = { author: entry.author, body: entry.body, id: entry.id, revision: entry.revision, type: entry.type, updatedAt: entry.updatedAt };
39
+ }
40
+ return { drafts, expired };
41
+ }
42
+ export function encodeDrafts(drafts) {
43
+ const value = JSON.stringify(drafts);
44
+ if (new TextEncoder().encode(value).length > DRAFT_BYTES) {
45
+ throw new Error("Draft storage is full. Copy this draft before clearing workspace drafts.");
46
+ }
47
+ return value;
48
+ }
49
+ //# sourceMappingURL=drafts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drafts.js","sourceRoot":"","sources":["../../../src/browser/responses/drafts.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AAC3C,MAAM,CAAC,MAAM,SAAS,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AASlD,MAAM,UAAU,UAAU,CAAC,GAAkB,EAAE,GAAW;IACzD,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QAClB,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACvC,CAAC;IACD,IAAI,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,WAAW,EAAE,CAAC;QACxD,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAC/D,CAAC;IACD,MAAM,KAAK,GAAY,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACvC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IAChD,CAAC;IACD,MAAM,MAAM,GAA0B,EAAE,CAAC;IACzC,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAClD,IACC,OAAO,KAAK,KAAK,QAAQ;eACtB,KAAK,KAAK,IAAI;eACd,CAAC,CAAC,QAAQ,IAAI,KAAK,CAAC;eACpB,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC;eAClB,CAAC,CAAC,IAAI,IAAI,KAAK,CAAC;eAChB,CAAC,CAAC,UAAU,IAAI,KAAK,CAAC;eACtB,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC;eAClB,CAAC,CAAC,WAAW,IAAI,KAAK,CAAC;eACvB,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ;eAChC,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;eAC9B,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ;eAC5B,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ;eAClC,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC;eACjF,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ;eACnC,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,EACnC,CAAC;YACF,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,KAAK,CAAC,SAAS,GAAG,GAAG,IAAI,GAAG,GAAG,KAAK,CAAC,SAAS,IAAI,SAAS,EAAE,CAAC;YACjE,OAAO,GAAG,IAAI,CAAC;YACf,SAAS;QACV,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;IAChJ,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AAC5B,CAAC;AACD,MAAM,UAAU,YAAY,CAAC,MAAuC;IACnE,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACrC,IAAI,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,WAAW,EAAE,CAAC;QAC1D,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC;IAC7F,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Draft } from "./drafts.ts";
2
+ export declare function responsePreview(draft: Draft, question: string): string;
3
+ //# sourceMappingURL=preview.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preview.d.ts","sourceRoot":"","sources":["../../../src/browser/responses/preview.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC,wBAAgB,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEtE"}
@@ -0,0 +1,4 @@
1
+ export function responsePreview(draft, question) {
2
+ return `New file: responses/${draft.id}.md\nRegistration (if needed): responses/${question}.md\nRecorded time is assigned by the server when saving.\n\n---\n${JSON.stringify({ id: draft.id, kind: "response", response: { author: draft.author, question, reviewedRevision: draft.revision, type: draft.type } }, null, 2)}\n---\n${draft.body}`;
3
+ }
4
+ //# sourceMappingURL=preview.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preview.js","sourceRoot":"","sources":["../../../src/browser/responses/preview.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,eAAe,CAAC,KAAY,EAAE,QAAgB;IAC7D,OAAO,uBAAuB,KAAK,CAAC,EAAE,4CAA4C,QAAQ,qEAAqE,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU,KAAK,CAAC,IAAI,EAAE,CAAC;AACpV,CAAC"}
@@ -0,0 +1,127 @@
1
+ import { Schema } from "effect";
2
+ export declare const Revision: Schema.String;
3
+ export declare const ResponseKind: Schema.Literals<readonly ["answer", "clarify", "not_now"]>;
4
+ export declare const QuestionRecord: Schema.Struct<{
5
+ readonly deadline: Schema.Number;
6
+ readonly item: Schema.String;
7
+ readonly reason: Schema.String;
8
+ readonly registeredAt: Schema.Number;
9
+ readonly request: Schema.String;
10
+ readonly reviewedRevision: Schema.String;
11
+ readonly source: Schema.String;
12
+ }>;
13
+ export declare const ResponseRecord: Schema.Struct<{
14
+ readonly author: Schema.String;
15
+ readonly question: Schema.String;
16
+ readonly recordedAt: Schema.Number;
17
+ readonly reviewedRevision: Schema.String;
18
+ readonly type: Schema.Literals<readonly ["answer", "clarify", "not_now"]>;
19
+ }>;
20
+ export declare const QuestionPreview: Schema.Struct<{
21
+ readonly context: Schema.String;
22
+ readonly id: Schema.String;
23
+ readonly item: Schema.String;
24
+ readonly reason: Schema.String;
25
+ readonly request: Schema.String;
26
+ readonly reviewedRevision: Schema.String;
27
+ readonly source: Schema.String;
28
+ }>;
29
+ export type QuestionPreview = typeof QuestionPreview.Type;
30
+ export declare const Question: Schema.Struct<{
31
+ readonly context: Schema.String;
32
+ readonly id: Schema.String;
33
+ readonly question: Schema.Struct<{
34
+ readonly deadline: Schema.Number;
35
+ readonly item: Schema.String;
36
+ readonly reason: Schema.String;
37
+ readonly registeredAt: Schema.Number;
38
+ readonly request: Schema.String;
39
+ readonly reviewedRevision: Schema.String;
40
+ readonly source: Schema.String;
41
+ }>;
42
+ }>;
43
+ export declare const RecordedResponse: Schema.Struct<{
44
+ readonly body: Schema.String;
45
+ readonly id: Schema.String;
46
+ readonly response: Schema.Struct<{
47
+ readonly author: Schema.String;
48
+ readonly question: Schema.String;
49
+ readonly recordedAt: Schema.Number;
50
+ readonly reviewedRevision: Schema.String;
51
+ readonly type: Schema.Literals<readonly ["answer", "clarify", "not_now"]>;
52
+ }>;
53
+ }>;
54
+ export declare const Reading: Schema.Struct<{
55
+ readonly question: Schema.Struct<{
56
+ readonly context: Schema.String;
57
+ readonly id: Schema.String;
58
+ readonly question: Schema.Struct<{
59
+ readonly deadline: Schema.Number;
60
+ readonly item: Schema.String;
61
+ readonly reason: Schema.String;
62
+ readonly registeredAt: Schema.Number;
63
+ readonly request: Schema.String;
64
+ readonly reviewedRevision: Schema.String;
65
+ readonly source: Schema.String;
66
+ }>;
67
+ }>;
68
+ readonly responses: Schema.$Array<Schema.Struct<{
69
+ readonly body: Schema.String;
70
+ readonly id: Schema.String;
71
+ readonly response: Schema.Struct<{
72
+ readonly author: Schema.String;
73
+ readonly question: Schema.String;
74
+ readonly recordedAt: Schema.Number;
75
+ readonly reviewedRevision: Schema.String;
76
+ readonly type: Schema.Literals<readonly ["answer", "clarify", "not_now"]>;
77
+ }>;
78
+ }>>;
79
+ }>;
80
+ export declare const WaitReading: Schema.Struct<{
81
+ readonly expired: Schema.Boolean;
82
+ readonly question: Schema.Struct<{
83
+ readonly context: Schema.String;
84
+ readonly id: Schema.String;
85
+ readonly question: Schema.Struct<{
86
+ readonly deadline: Schema.Number;
87
+ readonly item: Schema.String;
88
+ readonly reason: Schema.String;
89
+ readonly registeredAt: Schema.Number;
90
+ readonly request: Schema.String;
91
+ readonly reviewedRevision: Schema.String;
92
+ readonly source: Schema.String;
93
+ }>;
94
+ }>;
95
+ readonly response: Schema.optional<Schema.Struct<{
96
+ readonly body: Schema.String;
97
+ readonly id: Schema.String;
98
+ readonly response: Schema.Struct<{
99
+ readonly author: Schema.String;
100
+ readonly question: Schema.String;
101
+ readonly recordedAt: Schema.Number;
102
+ readonly reviewedRevision: Schema.String;
103
+ readonly type: Schema.Literals<readonly ["answer", "clarify", "not_now"]>;
104
+ }>;
105
+ }>>;
106
+ }>;
107
+ export type WaitReading = typeof WaitReading.Type;
108
+ declare const ResponseFailed_base: Schema.Class<ResponseFailed, Schema.TaggedStruct<"ResponseFailed", {
109
+ readonly cause: Schema.optional<Schema.Defect>;
110
+ readonly code: Schema.Literals<readonly ["Disabled", "Missing", "Stale", "Conflict", "Unavailable", "Unsupported", "Uncertain", "Unanswered"]>;
111
+ readonly message: Schema.String;
112
+ }>, import("effect/Cause").YieldableError>;
113
+ export declare class ResponseFailed extends ResponseFailed_base {
114
+ }
115
+ export declare const DraftInput: Schema.Struct<{
116
+ readonly author: Schema.String;
117
+ readonly body: Schema.String;
118
+ readonly id: Schema.String;
119
+ readonly question: Schema.String;
120
+ readonly type: Schema.Literals<readonly ["answer", "clarify", "not_now"]>;
121
+ }>;
122
+ export type Question = typeof Question.Type;
123
+ export type RecordedResponse = typeof RecordedResponse.Type;
124
+ export type Reading = typeof Reading.Type;
125
+ export type DraftInput = typeof DraftInput.Type;
126
+ export {};
127
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/browser/responses/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhC,eAAO,MAAM,QAAQ,eAA0D,CAAC;AAChF,eAAO,MAAM,YAAY,4DAAoD,CAAC;AAC9E,eAAO,MAAM,cAAc;;;;;;;;EAQzB,CAAC;AACH,eAAO,MAAM,cAAc;;;;;;EAMzB,CAAC;AACH,eAAO,MAAM,eAAe;;;;;;;;EAQ1B,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,OAAO,eAAe,CAAC,IAAI,CAAC;AAC1D,eAAO,MAAM,QAAQ;;;;;;;;;;;;EAAoF,CAAC;AAC1G,eAAO,MAAM,gBAAgB;;;;;;;;;;EAAiF,CAAC;AAC/G,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;EAAmF,CAAC;AACxG,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;EAA8G,CAAC;AACvI,MAAM,MAAM,WAAW,GAAG,OAAO,WAAW,CAAC,IAAI,CAAC;;;;;;AAClD,qBAAa,cAAe,SAAQ,mBAIlC;CAAG;AACL,eAAO,MAAM,UAAU;;;;;;EAMrB,CAAC;AACH,MAAM,MAAM,QAAQ,GAAG,OAAO,QAAQ,CAAC,IAAI,CAAC;AAC5C,MAAM,MAAM,gBAAgB,GAAG,OAAO,gBAAgB,CAAC,IAAI,CAAC;AAC5D,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAC;AAC1C,MAAM,MAAM,UAAU,GAAG,OAAO,UAAU,CAAC,IAAI,CAAC"}