@shivaedev/work-board 0.7.2 → 0.9.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.
- package/CHANGELOG.md +44 -0
- package/README.md +110 -2
- package/assets/agent.js +37 -0
- package/assets/native.js +54 -25
- package/dist/board.d.ts +1 -0
- package/dist/board.d.ts.map +1 -1
- package/dist/board.js +15 -2
- package/dist/board.js.map +1 -1
- package/dist/browser/client.d.ts +19 -79
- package/dist/browser/client.d.ts.map +1 -1
- package/dist/browser/client.js +12 -1
- package/dist/browser/client.js.map +1 -1
- package/dist/browser/entry.d.ts +3 -0
- package/dist/browser/entry.d.ts.map +1 -0
- package/dist/browser/entry.js +7 -0
- package/dist/browser/entry.js.map +1 -0
- package/dist/browser/responses/Prompt.d.ts +10 -0
- package/dist/browser/responses/Prompt.d.ts.map +1 -0
- package/dist/browser/responses/Prompt.js +2 -0
- package/dist/browser/responses/Prompt.js.map +1 -0
- package/dist/browser/responses/answerBody.d.ts +4 -0
- package/dist/browser/responses/answerBody.d.ts.map +1 -0
- package/dist/browser/responses/answerBody.js +9 -0
- package/dist/browser/responses/answerBody.js.map +1 -0
- package/dist/browser/responses/draftSession.d.ts +8 -0
- package/dist/browser/responses/draftSession.d.ts.map +1 -0
- package/dist/browser/responses/draftSession.js +105 -0
- package/dist/browser/responses/draftSession.js.map +1 -0
- package/dist/browser/responses/drafts.d.ts +21 -0
- package/dist/browser/responses/drafts.d.ts.map +1 -0
- package/dist/browser/responses/drafts.js +68 -0
- package/dist/browser/responses/drafts.js.map +1 -0
- package/dist/browser/responses/preview.d.ts +4 -0
- package/dist/browser/responses/preview.d.ts.map +1 -0
- package/dist/browser/responses/preview.js +5 -0
- package/dist/browser/responses/preview.js.map +1 -0
- package/dist/browser/responses/questionnaireControls.d.ts +10 -0
- package/dist/browser/responses/questionnaireControls.d.ts.map +1 -0
- package/dist/browser/responses/questionnaireControls.js +68 -0
- package/dist/browser/responses/questionnaireControls.js.map +1 -0
- package/dist/browser/responses/schema.d.ts +168 -0
- package/dist/browser/responses/schema.d.ts.map +1 -0
- package/dist/browser/responses/schema.js +57 -0
- package/dist/browser/responses/schema.js.map +1 -0
- package/dist/browser/responses/setup.d.ts +2 -0
- package/dist/browser/responses/setup.d.ts.map +1 -0
- package/dist/browser/responses/setup.js +129 -0
- package/dist/browser/responses/setup.js.map +1 -0
- package/dist/browser/responses/submissionFields.d.ts +15 -0
- package/dist/browser/responses/submissionFields.d.ts.map +1 -0
- package/dist/browser/responses/submissionFields.js +14 -0
- package/dist/browser/responses/submissionFields.js.map +1 -0
- package/dist/browser/responses/submit.d.ts +4 -0
- package/dist/browser/responses/submit.d.ts.map +1 -0
- package/dist/browser/responses/submit.js +30 -0
- package/dist/browser/responses/submit.js.map +1 -0
- package/dist/browser/session.d.ts +1 -79
- package/dist/browser/session.d.ts.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +24 -15
- package/dist/cli.js.map +1 -1
- package/dist/files/changes.d.ts +1 -0
- package/dist/files/changes.d.ts.map +1 -1
- package/dist/files/changes.js +1 -1
- package/dist/files/changes.js.map +1 -1
- package/dist/http/respond.d.ts.map +1 -1
- package/dist/http/respond.js +2 -0
- package/dist/http/respond.js.map +1 -1
- package/dist/metadata/backlinks.d.ts.map +1 -1
- package/dist/metadata/backlinks.js +5 -0
- package/dist/metadata/backlinks.js.map +1 -1
- package/dist/metadata/fields.d.ts +23 -1
- package/dist/metadata/fields.d.ts.map +1 -1
- package/dist/metadata/problems.d.ts.map +1 -1
- package/dist/metadata/problems.js +3 -0
- package/dist/metadata/problems.js.map +1 -1
- package/dist/metadata/schema.d.ts +23 -1
- package/dist/metadata/schema.d.ts.map +1 -1
- package/dist/metadata/schema.js +6 -2
- package/dist/metadata/schema.js.map +1 -1
- package/dist/page/attentionDetails.d.ts.map +1 -1
- package/dist/page/attentionDetails.js +2 -1
- package/dist/page/attentionDetails.js.map +1 -1
- package/dist/page/metadataDetails.d.ts.map +1 -1
- package/dist/page/metadataDetails.js +6 -0
- package/dist/page/metadataDetails.js.map +1 -1
- package/dist/page/navigationScript.js +1 -1
- package/dist/page/shell.d.ts +1 -1
- package/dist/page/shell.d.ts.map +1 -1
- package/dist/page/shell.js.map +1 -1
- package/dist/page/style.d.ts.map +1 -1
- package/dist/page/style.js +3 -1
- package/dist/page/style.js.map +1 -1
- package/dist/page/swap.d.ts +1 -1
- package/dist/page/swap.d.ts.map +1 -1
- package/dist/page/swap.js +3 -0
- package/dist/page/swap.js.map +1 -1
- package/dist/path/Identity.d.ts +3 -0
- package/dist/path/Identity.d.ts.map +1 -0
- package/dist/path/Identity.js +3 -0
- package/dist/path/Identity.js.map +1 -0
- package/dist/render/markdown.d.ts +1 -0
- package/dist/render/markdown.d.ts.map +1 -1
- package/dist/render/markdown.js +4 -2
- package/dist/render/markdown.js.map +1 -1
- package/dist/render/questionnaireDocuments.d.ts +3 -0
- package/dist/render/questionnaireDocuments.d.ts.map +1 -0
- package/dist/render/questionnaireDocuments.js +11 -0
- package/dist/render/questionnaireDocuments.js.map +1 -0
- package/dist/render/visualDocuments.d.ts.map +1 -1
- package/dist/render/visualDocuments.js +3 -0
- package/dist/render/visualDocuments.js.map +1 -1
- package/dist/responses/agent-cli.d.ts +2 -0
- package/dist/responses/agent-cli.d.ts.map +1 -0
- package/dist/responses/agent-cli.js +31 -0
- package/dist/responses/agent-cli.js.map +1 -0
- package/dist/responses/agent.d.ts +80 -0
- package/dist/responses/agent.d.ts.map +1 -0
- package/dist/responses/agent.js +49 -0
- package/dist/responses/agent.js.map +1 -0
- package/dist/responses/await.d.ts +39 -0
- package/dist/responses/await.d.ts.map +1 -0
- package/dist/responses/await.js +21 -0
- package/dist/responses/await.js.map +1 -0
- package/dist/responses/composerHtml.d.ts +27 -0
- package/dist/responses/composerHtml.d.ts.map +1 -0
- package/dist/responses/composerHtml.js +14 -0
- package/dist/responses/composerHtml.js.map +1 -0
- package/dist/responses/flags.d.ts +6 -0
- package/dist/responses/flags.d.ts.map +1 -0
- package/dist/responses/flags.js +23 -0
- package/dist/responses/flags.js.map +1 -0
- package/dist/responses/history.d.ts +20 -0
- package/dist/responses/history.d.ts.map +1 -0
- package/dist/responses/history.js +16 -0
- package/dist/responses/history.js.map +1 -0
- package/dist/responses/locate.d.ts +13 -0
- package/dist/responses/locate.d.ts.map +1 -0
- package/dist/responses/locate.js +55 -0
- package/dist/responses/locate.js.map +1 -0
- package/dist/responses/make.d.ts +3 -0
- package/dist/responses/make.d.ts.map +1 -0
- package/dist/responses/make.js +16 -0
- package/dist/responses/make.js.map +1 -0
- package/dist/responses/outcome.d.ts +71 -0
- package/dist/responses/outcome.d.ts.map +1 -0
- package/dist/responses/outcome.js +14 -0
- package/dist/responses/outcome.js.map +1 -0
- package/dist/responses/page.d.ts +6 -0
- package/dist/responses/page.d.ts.map +1 -0
- package/dist/responses/page.js +22 -0
- package/dist/responses/page.js.map +1 -0
- package/dist/responses/publish.d.ts +4 -0
- package/dist/responses/publish.d.ts.map +1 -0
- package/dist/responses/publish.js +56 -0
- package/dist/responses/publish.js.map +1 -0
- package/dist/responses/publishIn.d.ts +3 -0
- package/dist/responses/publishIn.d.ts.map +1 -0
- package/dist/responses/publishIn.js +69 -0
- package/dist/responses/publishIn.js.map +1 -0
- package/dist/responses/read.d.ts +36 -0
- package/dist/responses/read.d.ts.map +1 -0
- package/dist/responses/read.js +43 -0
- package/dist/responses/read.js.map +1 -0
- package/dist/responses/records.d.ts +12 -0
- package/dist/responses/records.d.ts.map +1 -0
- package/dist/responses/records.js +49 -0
- package/dist/responses/records.js.map +1 -0
- package/dist/responses/retry.d.ts +34 -0
- package/dist/responses/retry.d.ts.map +1 -0
- package/dist/responses/retry.js +14 -0
- package/dist/responses/retry.js.map +1 -0
- package/dist/responses/service.d.ts +142 -0
- package/dist/responses/service.d.ts.map +1 -0
- package/dist/responses/service.js +95 -0
- package/dist/responses/service.js.map +1 -0
- package/dist/responses/template.d.ts +7 -0
- package/dist/responses/template.d.ts.map +1 -0
- package/dist/responses/template.js +58 -0
- package/dist/responses/template.js.map +1 -0
- package/dist/responses/templateHtml.d.ts +7 -0
- package/dist/responses/templateHtml.d.ts.map +1 -0
- package/dist/responses/templateHtml.js +18 -0
- package/dist/responses/templateHtml.js.map +1 -0
- package/dist/responses/templateLinks.d.ts +3 -0
- package/dist/responses/templateLinks.d.ts.map +1 -0
- package/dist/responses/templateLinks.js +45 -0
- package/dist/responses/templateLinks.js.map +1 -0
- package/dist/responses/templateNodes.d.ts +17 -0
- package/dist/responses/templateNodes.d.ts.map +1 -0
- package/dist/responses/templateNodes.js +47 -0
- package/dist/responses/templateNodes.js.map +1 -0
- package/dist/responses/validateSupersedes.d.ts +5 -0
- package/dist/responses/validateSupersedes.d.ts.map +1 -0
- package/dist/responses/validateSupersedes.js +21 -0
- package/dist/responses/validateSupersedes.js.map +1 -0
- package/dist/responses/validatedInput.d.ts +3 -0
- package/dist/responses/validatedInput.d.ts.map +1 -0
- package/dist/responses/validatedInput.js +43 -0
- package/dist/responses/validatedInput.js.map +1 -0
- package/dist/responses/waitFor.d.ts +37 -0
- package/dist/responses/waitFor.d.ts.map +1 -0
- package/dist/responses/waitFor.js +47 -0
- package/dist/responses/waitFor.js.map +1 -0
- package/dist/rpc/contract.d.ts +125 -2
- package/dist/rpc/contract.d.ts.map +1 -1
- package/dist/rpc/contract.js +3 -2
- package/dist/rpc/contract.js.map +1 -1
- package/dist/rpc/responseContract.d.ts +260 -0
- package/dist/rpc/responseContract.d.ts.map +1 -0
- package/dist/rpc/responseContract.js +37 -0
- package/dist/rpc/responseContract.js.map +1 -0
- package/dist/rpc/server.d.ts +3 -1
- package/dist/rpc/server.d.ts.map +1 -1
- package/dist/rpc/server.js +6 -1
- package/dist/rpc/server.js.map +1 -1
- package/dist/serve-cli.d.ts +3 -0
- package/dist/serve-cli.d.ts.map +1 -0
- package/dist/serve-cli.js +20 -0
- package/dist/serve-cli.js.map +1 -0
- package/package.json +3 -3
- package/src/board.ts +16 -2
- package/src/browser/client.ts +30 -4
- package/src/browser/entry.ts +9 -0
- package/src/browser/responses/Prompt.ts +6 -0
- package/src/browser/responses/answerBody.ts +11 -0
- package/src/browser/responses/draftSession.ts +101 -0
- package/src/browser/responses/drafts.ts +82 -0
- package/src/browser/responses/preview.ts +7 -0
- package/src/browser/responses/questionnaireControls.ts +74 -0
- package/src/browser/responses/schema.ts +63 -0
- package/src/browser/responses/setup.ts +132 -0
- package/src/browser/responses/submissionFields.ts +15 -0
- package/src/browser/responses/submit.ts +33 -0
- package/src/cli.ts +14 -22
- package/src/files/changes.ts +2 -1
- package/src/http/respond.ts +2 -0
- package/src/metadata/backlinks.ts +5 -0
- package/src/metadata/problems.ts +3 -0
- package/src/metadata/schema.ts +6 -2
- package/src/page/attentionDetails.ts +2 -1
- package/src/page/metadataDetails.ts +6 -0
- package/src/page/navigationScript.ts +1 -1
- package/src/page/shell.ts +1 -1
- package/src/page/style.ts +3 -1
- package/src/page/swap.ts +3 -0
- package/src/path/Identity.ts +3 -0
- package/src/render/markdown.ts +5 -2
- package/src/render/questionnaireDocuments.ts +12 -0
- package/src/render/visualDocuments.ts +3 -0
- package/src/responses/agent-cli.ts +35 -0
- package/src/responses/agent.ts +59 -0
- package/src/responses/await.ts +21 -0
- package/src/responses/composerHtml.ts +28 -0
- package/src/responses/flags.ts +22 -0
- package/src/responses/history.ts +18 -0
- package/src/responses/locate.ts +60 -0
- package/src/responses/make.ts +17 -0
- package/src/responses/outcome.ts +15 -0
- package/src/responses/page.ts +30 -0
- package/src/responses/publish.ts +53 -0
- package/src/responses/publishIn.ts +64 -0
- package/src/responses/read.ts +45 -0
- package/src/responses/records.ts +55 -0
- package/src/responses/retry.ts +23 -0
- package/src/responses/service.ts +117 -0
- package/src/responses/template.ts +72 -0
- package/src/responses/templateHtml.ts +26 -0
- package/src/responses/templateLinks.ts +43 -0
- package/src/responses/templateNodes.ts +55 -0
- package/src/responses/validateSupersedes.ts +24 -0
- package/src/responses/validatedInput.ts +45 -0
- package/src/responses/waitFor.ts +58 -0
- package/src/rpc/contract.ts +3 -2
- package/src/rpc/responseContract.ts +46 -0
- package/src/rpc/server.ts +8 -1
- package/src/serve-cli.ts +37 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../src/render/markdown.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,eAAe,MAAM,kBAAkB,CAAC;AAC/C,OAAO,SAAS,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../src/render/markdown.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,eAAe,MAAM,kBAAkB,CAAC;AAC/C,OAAO,SAAS,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AASrE,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,EAAE,CAAC,0BAA0B,CAAC,CAAC,QAAQ,CAAC,EAAE,MAAc,EAAE,UAAyB,EAAE;IACzH,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,WAAW,CAAC;IACvC,MAAM,OAAO,GAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;IAC/F,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACpC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC7C,CAAC;IACD,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3C,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACpC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IACD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;QACrC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,YAAY,CAAC,EAAE,KAAK,EAAE,CAAC;QAC7C,GAAG,EAAE,KAAK,IAAI,EAAE,CACf,oBAAoB,CACnB,MAAM,aAAa,CAAC;YACnB,QAAQ,EAAE,MAAM;YAChB,UAAU,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE;YACvG,aAAa,EAAE,OAAO;YACtB,aAAa,EAAE,CAAC,SAAS,EAAE,eAAe,EAAE,sBAAsB,EAAE,eAAe,EAAE,QAAQ,CAAC;YAC9F,QAAQ,EAAE,OAAO,CAAC,IAAI;SACtB,CAAC,CACF;KACF,CAAC,CAAC;IACH,OAAO,IAAI,CAAC;AACb,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"questionnaireDocuments.d.ts","sourceRoot":"","sources":["../../src/render/questionnaireDocuments.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAGlC,wBAAgB,sBAAsB,KAC7B,MAAM,IAAI,UAOlB"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { visit } from "unist-util-visit";
|
|
2
|
+
export function questionnaireDocuments() {
|
|
3
|
+
return (tree) => {
|
|
4
|
+
visit(tree, "containerDirective", (node) => {
|
|
5
|
+
if (node.name === "question" || node.name === "option") {
|
|
6
|
+
node.data = { hName: "section", hProperties: { className: ["questionnaire-reading", `questionnaire-${node.name}`] } };
|
|
7
|
+
}
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=questionnaireDocuments.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"questionnaireDocuments.js","sourceRoot":"","sources":["../../src/render/questionnaireDocuments.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC,MAAM,UAAU,sBAAsB;IACrC,OAAO,CAAC,IAAU,EAAE,EAAE;QACrB,KAAK,CAAC,IAAI,EAAE,oBAAoB,EAAE,CAAC,IAAI,EAAE,EAAE;YAC1C,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACxD,IAAI,CAAC,IAAI,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,SAAS,EAAE,CAAC,uBAAuB,EAAE,iBAAiB,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;YACvH,CAAC;QACF,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"visualDocuments.d.ts","sourceRoot":"","sources":["../../src/render/visualDocuments.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAe,MAAM,OAAO,CAAC;AAsC/C,wBAAgB,eAAe,KACJ,MAAM,IAAI,EAAE,MAAM;IAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"visualDocuments.d.ts","sourceRoot":"","sources":["../../src/render/visualDocuments.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAe,MAAM,OAAO,CAAC;AAsC/C,wBAAgB,eAAe,KACJ,MAAM,IAAI,EAAE,MAAM;IAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CAAE,UA+BvE"}
|
|
@@ -36,6 +36,9 @@ export function visualDocuments() {
|
|
|
36
36
|
if (!isDirective(directive) || index === undefined || parent === undefined) {
|
|
37
37
|
return;
|
|
38
38
|
}
|
|
39
|
+
if (directive.type === "containerDirective" && ["question", "option"].includes(directive.name)) {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
39
42
|
const failure = failureOf(directive, source);
|
|
40
43
|
if (failure === undefined) {
|
|
41
44
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"visualDocuments.js","sourceRoot":"","sources":["../../src/render/visualDocuments.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"visualDocuments.js","sourceRoot":"","sources":["../../src/render/visualDocuments.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-cli.d.ts","sourceRoot":"","sources":["../../src/responses/agent-cli.ts"],"names":[],"mappings":"AAIA,wBAAsB,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,iBA8BrD"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import * as Effect from "effect/Effect";
|
|
2
|
+
import { agentRequest } from "./agent.js";
|
|
3
|
+
import { flags } from "./flags.js";
|
|
4
|
+
export async function runAgent(args) {
|
|
5
|
+
const [action, request, ...options] = args;
|
|
6
|
+
if ((action !== "wait" && action !== "response" && action !== "question") || !request) {
|
|
7
|
+
throw new Error("Usage: work-board question <item>/<request> | wait <question-id> [--after <response-id>] | response <question-id> [--port 4747]");
|
|
8
|
+
}
|
|
9
|
+
const parsed = flags(options);
|
|
10
|
+
const controller = new AbortController();
|
|
11
|
+
function cancel() {
|
|
12
|
+
controller.abort();
|
|
13
|
+
}
|
|
14
|
+
process.once("SIGINT", cancel);
|
|
15
|
+
process.once("SIGTERM", cancel);
|
|
16
|
+
try {
|
|
17
|
+
const result = await Effect.runPromise(agentRequest(action, { ...parsed, request }, (text) => process.stderr.write(`${text}\n`)).pipe(Effect.result), { signal: controller.signal });
|
|
18
|
+
if (result._tag === "Failure") {
|
|
19
|
+
if (result.failure instanceof Error && "code" in result.failure && result.failure.code === "Unanswered") {
|
|
20
|
+
process.exitCode = 2;
|
|
21
|
+
}
|
|
22
|
+
throw result.failure;
|
|
23
|
+
}
|
|
24
|
+
process.stdout.write(`${JSON.stringify(result.success)}\n`);
|
|
25
|
+
}
|
|
26
|
+
finally {
|
|
27
|
+
process.removeListener("SIGINT", cancel);
|
|
28
|
+
process.removeListener("SIGTERM", cancel);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=agent-cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-cli.js","sourceRoot":"","sources":["../../src/responses/agent-cli.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,IAAuB;IACrD,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC;IAC3C,IAAI,CAAC,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,UAAU,IAAI,MAAM,KAAK,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACvF,MAAM,IAAI,KAAK,CACd,iIAAiI,CACjI,CAAC;IACH,CAAC;IACD,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;IAC9B,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,SAAS,MAAM;QACd,UAAU,CAAC,KAAK,EAAE,CAAC;IACpB,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC/B,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAChC,IAAI,CAAC;QACJ,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CACrC,YAAY,CAAC,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAC7G,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAC7B,CAAC;QACF,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC/B,IAAI,MAAM,CAAC,OAAO,YAAY,KAAK,IAAI,MAAM,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBACzG,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACtB,CAAC;YACD,MAAM,MAAM,CAAC,OAAO,CAAC;QACtB,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,CAAC;YAAS,CAAC;QACV,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACzC,OAAO,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC3C,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import * as Effect from "effect/Effect";
|
|
2
|
+
export interface AgentOptions {
|
|
3
|
+
readonly after?: string | undefined;
|
|
4
|
+
readonly request: string;
|
|
5
|
+
readonly revision?: string | undefined;
|
|
6
|
+
readonly url: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function agentRequest(action: "question" | "response" | "wait", options: AgentOptions, diagnostic?: (text: string) => void): Effect.Effect<{
|
|
9
|
+
readonly context: string;
|
|
10
|
+
readonly id: string;
|
|
11
|
+
readonly item: string;
|
|
12
|
+
readonly reason: string;
|
|
13
|
+
readonly request: string;
|
|
14
|
+
readonly reviewedRevision: string;
|
|
15
|
+
readonly source: string;
|
|
16
|
+
} | {
|
|
17
|
+
readonly question: {
|
|
18
|
+
readonly context: string;
|
|
19
|
+
readonly id: string;
|
|
20
|
+
readonly question: {
|
|
21
|
+
readonly deadline: number;
|
|
22
|
+
readonly item: string;
|
|
23
|
+
readonly reason: string;
|
|
24
|
+
readonly registeredAt: number;
|
|
25
|
+
readonly request: string;
|
|
26
|
+
readonly reviewedRevision: string;
|
|
27
|
+
readonly source: string;
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
readonly responses: readonly {
|
|
31
|
+
readonly body: string;
|
|
32
|
+
readonly id: string;
|
|
33
|
+
readonly response: {
|
|
34
|
+
readonly answers?: readonly {
|
|
35
|
+
readonly prompt: string;
|
|
36
|
+
readonly selected: readonly string[];
|
|
37
|
+
readonly text: string;
|
|
38
|
+
}[] | undefined;
|
|
39
|
+
readonly author: string;
|
|
40
|
+
readonly question: string;
|
|
41
|
+
readonly recordedAt: number;
|
|
42
|
+
readonly reviewedRevision: string;
|
|
43
|
+
readonly supersedes?: string | undefined;
|
|
44
|
+
readonly type: "answer" | "clarify" | "not_now";
|
|
45
|
+
};
|
|
46
|
+
}[];
|
|
47
|
+
} | {
|
|
48
|
+
readonly kind: "response";
|
|
49
|
+
readonly question: {
|
|
50
|
+
readonly context: string;
|
|
51
|
+
readonly id: string;
|
|
52
|
+
readonly question: {
|
|
53
|
+
readonly deadline: number;
|
|
54
|
+
readonly item: string;
|
|
55
|
+
readonly reason: string;
|
|
56
|
+
readonly registeredAt: number;
|
|
57
|
+
readonly request: string;
|
|
58
|
+
readonly reviewedRevision: string;
|
|
59
|
+
readonly source: string;
|
|
60
|
+
};
|
|
61
|
+
};
|
|
62
|
+
readonly response: {
|
|
63
|
+
readonly body: string;
|
|
64
|
+
readonly id: string;
|
|
65
|
+
readonly response: {
|
|
66
|
+
readonly answers?: readonly {
|
|
67
|
+
readonly prompt: string;
|
|
68
|
+
readonly selected: readonly string[];
|
|
69
|
+
readonly text: string;
|
|
70
|
+
}[] | undefined;
|
|
71
|
+
readonly author: string;
|
|
72
|
+
readonly question: string;
|
|
73
|
+
readonly recordedAt: number;
|
|
74
|
+
readonly reviewedRevision: string;
|
|
75
|
+
readonly supersedes?: string | undefined;
|
|
76
|
+
readonly type: "answer" | "clarify" | "not_now";
|
|
77
|
+
};
|
|
78
|
+
};
|
|
79
|
+
}, Error | import("effect/unstable/rpc/RpcClientError").RpcClientError, never>;
|
|
80
|
+
//# sourceMappingURL=agent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/responses/agent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAOxC,MAAM,WAAW,YAAY;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACrB;AAmBD,wBAAgB,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,GAAG,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+EA0BjJ"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import * as NodeHttpClient from "@effect/platform-node/NodeHttpClient";
|
|
2
|
+
import * as Effect from "effect/Effect";
|
|
3
|
+
import * as Layer from "effect/Layer";
|
|
4
|
+
import * as RpcClient from "effect/unstable/rpc/RpcClient";
|
|
5
|
+
import * as RpcSerialization from "effect/unstable/rpc/RpcSerialization";
|
|
6
|
+
import { responseContract } from "#rpc/responseContract.ts";
|
|
7
|
+
import { waitForResponse } from "./waitFor.js";
|
|
8
|
+
function protocol(url) {
|
|
9
|
+
return RpcClient.layerProtocolHttp({ url: `${url}/_board/rpc` }).pipe(Layer.provide([NodeHttpClient.layerNodeHttp, RpcSerialization.layerNdjson]));
|
|
10
|
+
}
|
|
11
|
+
function validate(url) {
|
|
12
|
+
const parsed = new URL(url);
|
|
13
|
+
if (parsed.protocol !== "http:"
|
|
14
|
+
|| !["127.0.0.1", "localhost", "[::1]"].includes(parsed.hostname)
|
|
15
|
+
|| parsed.username
|
|
16
|
+
|| parsed.password
|
|
17
|
+
|| parsed.pathname !== "/"
|
|
18
|
+
|| parsed.search
|
|
19
|
+
|| parsed.hash) {
|
|
20
|
+
throw new Error("Use a loopback Work Board URL, such as http://127.0.0.1:4747.");
|
|
21
|
+
}
|
|
22
|
+
return parsed.origin;
|
|
23
|
+
}
|
|
24
|
+
export function agentRequest(action, options, diagnostic = () => undefined) {
|
|
25
|
+
return Effect.scoped(Effect.gen(function* () {
|
|
26
|
+
const client = yield* RpcClient.make(responseContract, { flatten: true });
|
|
27
|
+
const [item, request, extra] = options.request.split("/");
|
|
28
|
+
if (action === "question") {
|
|
29
|
+
if (!(item && request) || extra) {
|
|
30
|
+
return yield* Effect.fail(new Error("Use question <item>/<request>."));
|
|
31
|
+
}
|
|
32
|
+
return yield* client("work-board.question", { item, request });
|
|
33
|
+
}
|
|
34
|
+
let id = options.request;
|
|
35
|
+
if (request !== undefined) {
|
|
36
|
+
if (action !== "wait" || !item || !request || extra || !options.revision) {
|
|
37
|
+
return yield* Effect.fail(new Error("Use wait <item>/<request> --revision <reviewed SHA-256>, or wait <registered-question-id>."));
|
|
38
|
+
}
|
|
39
|
+
const question = yield* client("work-board.registerQuestion", { item, request, revision: options.revision });
|
|
40
|
+
id = question.id;
|
|
41
|
+
diagnostic(`Registered ${id}; reattach with work-board wait ${id}. Deadline: ${new Date(question.question.deadline).toISOString()}`);
|
|
42
|
+
}
|
|
43
|
+
if (action === "response") {
|
|
44
|
+
return yield* client("work-board.responses", { question: id });
|
|
45
|
+
}
|
|
46
|
+
return yield* waitForResponse(() => client("work-board.awaitResponse", { after: options.after, question: id }), diagnostic);
|
|
47
|
+
})).pipe(Effect.provide(protocol(validate(options.url))));
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=agent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/responses/agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Effect } from "effect";
|
|
2
|
+
import { type Reading, ResponseFailed } from "#browser/responses/schema.ts";
|
|
3
|
+
export declare function awaitResponse(read: (id: string) => Effect.Effect<Reading, ResponseFailed>): (input: {
|
|
4
|
+
readonly question: string;
|
|
5
|
+
readonly after?: string | undefined;
|
|
6
|
+
}) => Effect.Effect<{
|
|
7
|
+
expired: boolean;
|
|
8
|
+
question: {
|
|
9
|
+
readonly context: string;
|
|
10
|
+
readonly id: string;
|
|
11
|
+
readonly question: {
|
|
12
|
+
readonly deadline: number;
|
|
13
|
+
readonly item: string;
|
|
14
|
+
readonly reason: string;
|
|
15
|
+
readonly registeredAt: number;
|
|
16
|
+
readonly request: string;
|
|
17
|
+
readonly reviewedRevision: string;
|
|
18
|
+
readonly source: string;
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
response: {
|
|
22
|
+
readonly body: string;
|
|
23
|
+
readonly id: string;
|
|
24
|
+
readonly response: {
|
|
25
|
+
readonly answers?: readonly {
|
|
26
|
+
readonly prompt: string;
|
|
27
|
+
readonly selected: readonly string[];
|
|
28
|
+
readonly text: string;
|
|
29
|
+
}[] | undefined;
|
|
30
|
+
readonly author: string;
|
|
31
|
+
readonly question: string;
|
|
32
|
+
readonly recordedAt: number;
|
|
33
|
+
readonly reviewedRevision: string;
|
|
34
|
+
readonly supersedes?: string | undefined;
|
|
35
|
+
readonly type: "answer" | "clarify" | "not_now";
|
|
36
|
+
};
|
|
37
|
+
} | undefined;
|
|
38
|
+
}, ResponseFailed, never>;
|
|
39
|
+
//# sourceMappingURL=await.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"await.d.ts","sourceRoot":"","sources":["../../src/responses/await.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,MAAM,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,KAAK,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAG5E,wBAAgB,aAAa,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,cAAc,CAAC;uBACN,MAAM;qBAAmB,MAAM,GAAG,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BAe9H"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Clock, Effect } from "effect";
|
|
2
|
+
import { ResponseFailed } from "#browser/responses/schema.ts";
|
|
3
|
+
import { outcome } from "./outcome.js";
|
|
4
|
+
export function awaitResponse(read) {
|
|
5
|
+
return Effect.fn("WorkBoard.awaitResponse")(function* (input) {
|
|
6
|
+
const lease = (yield* Clock.currentTimeMillis) + 30_000;
|
|
7
|
+
while (true) {
|
|
8
|
+
const result = yield* read(input.question);
|
|
9
|
+
const now = yield* Clock.currentTimeMillis;
|
|
10
|
+
const state = outcome(result, input.after, now);
|
|
11
|
+
if (state.kind === "missing_cursor") {
|
|
12
|
+
return yield* Effect.fail(new ResponseFailed({ code: "Missing", message: "The next-response cursor is not recorded for this question." }));
|
|
13
|
+
}
|
|
14
|
+
if (state.kind !== "pending" || now >= lease) {
|
|
15
|
+
return { expired: state.kind === "unanswered", question: result.question, response: state.kind === "response" ? state.response : undefined };
|
|
16
|
+
}
|
|
17
|
+
yield* Effect.sleep("1 second");
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=await.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"await.js","sourceRoot":"","sources":["../../src/responses/await.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAgB,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,MAAM,UAAU,aAAa,CAAC,IAA4D;IACzF,OAAO,MAAM,CAAC,EAAE,CAAC,yBAAyB,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAyE;QAC/H,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,MAAM,CAAC;QACxD,OAAO,IAAI,EAAE,CAAC;YACb,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC3C,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC;YAC3C,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAChD,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;gBACrC,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,6DAA6D,EAAE,CAAC,CAAC,CAAC;YAC5I,CAAC;YACD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,GAAG,IAAI,KAAK,EAAE,CAAC;gBAC9C,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;YAC9I,CAAC;YACD,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACjC,CAAC;IACF,CAAC,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Effect } from "effect";
|
|
2
|
+
export declare const composerHtml: (q: {
|
|
3
|
+
readonly context: string;
|
|
4
|
+
readonly id: string;
|
|
5
|
+
readonly item: string;
|
|
6
|
+
readonly reason: string;
|
|
7
|
+
readonly request: string;
|
|
8
|
+
readonly reviewedRevision: string;
|
|
9
|
+
readonly source: string;
|
|
10
|
+
}, records: readonly {
|
|
11
|
+
readonly body: string;
|
|
12
|
+
readonly id: string;
|
|
13
|
+
readonly response: {
|
|
14
|
+
readonly answers?: readonly {
|
|
15
|
+
readonly prompt: string;
|
|
16
|
+
readonly selected: readonly string[];
|
|
17
|
+
readonly text: string;
|
|
18
|
+
}[] | undefined;
|
|
19
|
+
readonly author: string;
|
|
20
|
+
readonly question: string;
|
|
21
|
+
readonly recordedAt: number;
|
|
22
|
+
readonly reviewedRevision: string;
|
|
23
|
+
readonly supersedes?: string | undefined;
|
|
24
|
+
readonly type: "answer" | "clarify" | "not_now";
|
|
25
|
+
};
|
|
26
|
+
}[], enabled: boolean) => Effect.Effect<string, import("../render/failed.ts").RenderFailed, import("../render/highlighter.ts").Highlighter>;
|
|
27
|
+
//# sourceMappingURL=composerHtml.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composerHtml.d.ts","sourceRoot":"","sources":["../../src/responses/composerHtml.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAOhC,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;2IAoBvB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Effect } from "effect";
|
|
2
|
+
import { fileUrl } from "#files/url.ts";
|
|
3
|
+
import { escapeHtml } from "#page/escape.ts";
|
|
4
|
+
import { renderMarkdown } from "#render/markdown.ts";
|
|
5
|
+
import { templateHtml } from "./templateHtml.js";
|
|
6
|
+
export const composerHtml = Effect.fn("WorkBoard.composerHtml")(function* (q, records, enabled) {
|
|
7
|
+
const template = yield* templateHtml(q.context, q.request, q.source);
|
|
8
|
+
const history = yield* Effect.forEach(records, (record) => Effect.map(renderMarkdown(record.body, { file: `responses/${record.id}.md`, safe: true }), (html) => `<article id="${escapeHtml(record.id)}"><h3><a href="/responses/${record.id}.md">${escapeHtml(record.response.author)} · ${record.response.type}</a></h3><p>${record.response.question === q.id ? "This reviewed revision" : "Earlier reviewed context — does not approve the current source"} · <code>${record.response.reviewedRevision}</code></p>${record.response.supersedes ? `<p>Explicitly supersedes <a href="/responses/${escapeHtml(record.response.supersedes)}.md">${escapeHtml(record.response.supersedes)}</a>.</p>` : ""}${html}</article>`));
|
|
9
|
+
const prior = records
|
|
10
|
+
.map((record) => `<option value="${escapeHtml(record.id)}">${escapeHtml(record.id)} · ${escapeHtml(record.response.author)} · ${record.response.reviewedRevision.slice(0, 12)}</option>`)
|
|
11
|
+
.join("");
|
|
12
|
+
return `<section class="response-panel"><h1>Respond to ${escapeHtml(q.item)} / ${escapeHtml(q.request)}</h1><p>${escapeHtml(q.reason)}</p><p><a href="${fileUrl(q.source)}">Source: ${escapeHtml(q.source)}</a> · Reviewed SHA-256: <code>${q.reviewedRevision}</code></p><p>Saved replies are authored feedback. They do not close the request or establish acceptance.</p><section class="response-context">${template.background}</section><details><summary>Exact source being reviewed</summary><pre>${escapeHtml(q.context)}</pre></details><form id="response-form" data-question="${q.id}" data-writable="${enabled}" data-item="${escapeHtml(q.item)}" data-request="${escapeHtml(q.request)}" data-revision="${q.reviewedRevision}"><label>Local author label <input name="author" maxlength="200" required></label><label>Response kind <select name="type"><option value="answer">Answer (including no)</option><option value="clarify">Ask back / clarify</option><option value="not_now">Not now</option></select></label>${template.controls}<label>${template.hasPrompts ? "Overall response / next action (optional)" : "Your response"}<textarea name="body" rows="8" maxlength="32768" ${template.hasPrompts ? "" : "required"}></textarea></label><label>Supersedes an earlier response (optional)<select name="supersedes"><option value="">Adds feedback; does not supersede</option>${prior}</select></label><pre id="response-draft-recovery" hidden></pre><p>Submit the whole packet together. Drafts stay in this browser for 30 days after the last edit, with a 2 MiB workspace limit. Saved responses are Markdown files in responses/.</p><button id="response-preview" type="button" disabled>Preview Markdown</button><pre id="response-preview-content" hidden></pre><button id="response-submit" type="submit" disabled>Record response</button><button id="response-clear" type="button" disabled>Clear workspace drafts</button><p id="response-status" role="status">${enabled ? "JavaScript is required to record a response." : "Read-only mode. Restart with --responses to explicitly enable local writes."}</p></form><section id="response-history"><h2>Recorded responses</h2>${history.join("") || "<p>No response is recorded for this source revision.</p>"}</section></section>`;
|
|
13
|
+
});
|
|
14
|
+
//# sourceMappingURL=composerHtml.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composerHtml.js","sourceRoot":"","sources":["../../src/responses/composerHtml.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flags.d.ts","sourceRoot":"","sources":["../../src/responses/flags.ts"],"names":[],"mappings":"AAAA,wBAAgB,KAAK,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE;;;;EAqB5C"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export function flags(args) {
|
|
2
|
+
const values = new Map();
|
|
3
|
+
for (let index = 0; index < args.length; index += 2) {
|
|
4
|
+
const name = args[index];
|
|
5
|
+
const value = args[index + 1];
|
|
6
|
+
if (!(name && value && ["--port", "--url", "--revision", "--after"].includes(name))) {
|
|
7
|
+
throw new Error("Use --port, --url, --revision or --after, each with a value.");
|
|
8
|
+
}
|
|
9
|
+
if (values.has(name)) {
|
|
10
|
+
throw new Error(`Repeated option ${name}`);
|
|
11
|
+
}
|
|
12
|
+
values.set(name, value);
|
|
13
|
+
}
|
|
14
|
+
const port = values.get("--port") ?? "4747";
|
|
15
|
+
if (/^\d{1,5}$/u.exec(port) === null || Number(port) > 65_535 || Number(port) < 1) {
|
|
16
|
+
throw new Error("Invalid port.");
|
|
17
|
+
}
|
|
18
|
+
if (values.has("--url") && values.has("--port")) {
|
|
19
|
+
throw new Error("Choose --url or --port.");
|
|
20
|
+
}
|
|
21
|
+
return { after: values.get("--after"), revision: values.get("--revision"), url: values.get("--url") ?? `http://127.0.0.1:${port}` };
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=flags.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flags.js","sourceRoot":"","sources":["../../src/responses/flags.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,KAAK,CAAC,IAAuB;IAC5C,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACrD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC,CAAC,IAAI,IAAI,KAAK,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YACrF,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;QACjF,CAAC;QACD,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC;QAC5C,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACzB,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC;IAC5C,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACnF,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;IAClC,CAAC;IACD,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjD,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,oBAAoB,IAAI,EAAE,EAAE,CAAC;AACrI,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { QuestionPreview } from "#browser/responses/schema.ts";
|
|
2
|
+
import type { Snapshot } from "#search/snapshot.ts";
|
|
3
|
+
export declare function responseHistory(data: Snapshot, preview: QuestionPreview): {
|
|
4
|
+
readonly body: string;
|
|
5
|
+
readonly id: string;
|
|
6
|
+
readonly response: {
|
|
7
|
+
readonly answers?: readonly {
|
|
8
|
+
readonly prompt: string;
|
|
9
|
+
readonly selected: readonly string[];
|
|
10
|
+
readonly text: string;
|
|
11
|
+
}[] | undefined;
|
|
12
|
+
readonly author: string;
|
|
13
|
+
readonly question: string;
|
|
14
|
+
readonly recordedAt: number;
|
|
15
|
+
readonly reviewedRevision: string;
|
|
16
|
+
readonly supersedes?: string | undefined;
|
|
17
|
+
readonly type: "answer" | "clarify" | "not_now";
|
|
18
|
+
};
|
|
19
|
+
}[];
|
|
20
|
+
//# sourceMappingURL=history.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../src/responses/history.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAGpD,wBAAgB,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe;;;;;;;;;;;;;;;;IAavE"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { malformedResponse, questionFrom, responsesFor } from "./records.js";
|
|
2
|
+
export function responseHistory(data, preview) {
|
|
3
|
+
if (data.unavailable.length > 0 || data.documents.some(malformedResponse)) {
|
|
4
|
+
throw new Error("Response history is incomplete or malformed.");
|
|
5
|
+
}
|
|
6
|
+
const questions = data.documents.flatMap((document) => {
|
|
7
|
+
const question = questionFrom(document);
|
|
8
|
+
return question && question.question.item === preview.item && question.question.request === preview.request ? [question] : [];
|
|
9
|
+
});
|
|
10
|
+
const responses = questions.flatMap((question) => responsesFor(data.documents, question).responses);
|
|
11
|
+
if ([...questions, ...responses].some((record) => data.model.ids.get(record.id)?.length !== 1)) {
|
|
12
|
+
throw new Error("Response history includes ambiguous identities.");
|
|
13
|
+
}
|
|
14
|
+
return responses.sort((a, b) => b.response.recordedAt - a.response.recordedAt);
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=history.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"history.js","sourceRoot":"","sources":["../../src/responses/history.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE7E,MAAM,UAAU,eAAe,CAAC,IAAc,EAAE,OAAwB;IACvE,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC;QAC3E,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IACjE,CAAC;IACD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;QACrD,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;QACxC,OAAO,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/H,CAAC,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC;IACpG,IAAI,CAAC,GAAG,SAAS,EAAE,GAAG,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;QAChG,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,GAAG,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AAChF,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Effect, type FileSystem } from "effect";
|
|
2
|
+
import { ResponseFailed } from "#browser/responses/schema.ts";
|
|
3
|
+
import type { Snapshot } from "#search/snapshot.ts";
|
|
4
|
+
export declare function locate(root: string, realRoot: string, snapshot: Effect.Effect<Snapshot, ResponseFailed>, fs: FileSystem.FileSystem): (item: string, request: string) => Effect.Effect<{
|
|
5
|
+
readonly context: string;
|
|
6
|
+
readonly id: string;
|
|
7
|
+
readonly item: string;
|
|
8
|
+
readonly reason: string;
|
|
9
|
+
readonly request: string;
|
|
10
|
+
readonly reviewedRevision: string;
|
|
11
|
+
readonly source: string;
|
|
12
|
+
}, ResponseFailed, FileSystem.FileSystem | import("effect/Path").Path>;
|
|
13
|
+
//# sourceMappingURL=locate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"locate.d.ts","sourceRoot":"","sources":["../../src/responses/locate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEjD,OAAO,EAAwB,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAIpF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAOpD,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,cAAc,CAAC,EAAE,EAAE,EAAE,UAAU,CAAC,UAAU;;;;;;;;uEA8ClI"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { Effect } from "effect";
|
|
2
|
+
import { attentionRequests } from "#attention/requests.ts";
|
|
3
|
+
import { ResponseFailed } from "#browser/responses/schema.ts";
|
|
4
|
+
import { markdownPath } from "#files/markdownPath.ts";
|
|
5
|
+
import { metadataModel } from "#metadata/model.ts";
|
|
6
|
+
import { metadataParse } from "#metadata/parse.ts";
|
|
7
|
+
import { questionId, revisionOf } from "./records.js";
|
|
8
|
+
import { questionTemplate } from "./template.js";
|
|
9
|
+
function reject(code, message) {
|
|
10
|
+
return Effect.fail(new ResponseFailed({ code, message }));
|
|
11
|
+
}
|
|
12
|
+
export function locate(root, realRoot, snapshot, fs) {
|
|
13
|
+
return Effect.fn("WorkBoard.locate")(function* (item, request) {
|
|
14
|
+
const data = yield* snapshot;
|
|
15
|
+
const entry = attentionRequests(data).entries.find((candidate) => candidate.itemId === item && candidate.request.id === request);
|
|
16
|
+
if (!entry) {
|
|
17
|
+
return yield* reject("Missing", "The exact open attention request is missing, ambiguous or unavailable.");
|
|
18
|
+
}
|
|
19
|
+
const real = yield* markdownPath(root, realRoot, entry.document.file);
|
|
20
|
+
if (!real) {
|
|
21
|
+
return yield* reject("Missing", "The reviewed source moved or disappeared.");
|
|
22
|
+
}
|
|
23
|
+
const source = yield* fs.readFileString(real).pipe(Effect.catch(() => reject("Unavailable", "The source could not be read.")));
|
|
24
|
+
if (new TextEncoder().encode(source).length > 256 * 1024) {
|
|
25
|
+
return yield* reject("Unsupported", "Question context is limited to 256 KiB; use a focused source document.");
|
|
26
|
+
}
|
|
27
|
+
const parsed = metadataParse(source);
|
|
28
|
+
if (parsed.fields.id !== item
|
|
29
|
+
|| parsed.fields.attention?.filter((candidate) => candidate.id === request && candidate.state === "open").length !== 1) {
|
|
30
|
+
return yield* reject("Stale", "The source request changed. Re-read the question before proceeding.");
|
|
31
|
+
}
|
|
32
|
+
const documents = [...data.documents.filter((document) => document.file !== entry.document.file), { file: entry.document.file, parsed }];
|
|
33
|
+
const model = metadataModel(documents, data.unavailable, data.model.rootFile);
|
|
34
|
+
const fresh = attentionRequests({ ...data, documents, model }).entries.find((candidate) => candidate.itemId === item && candidate.request.id === request)?.request;
|
|
35
|
+
if (!fresh) {
|
|
36
|
+
return yield* reject("Stale", "The current request or its references are invalid. Review the source diagnostics before registering it.");
|
|
37
|
+
}
|
|
38
|
+
const revision = revisionOf(source);
|
|
39
|
+
yield* Effect.try({
|
|
40
|
+
catch: (cause) => new ResponseFailed({ code: "Unsupported", message: `Invalid response template: ${String(cause)}` }),
|
|
41
|
+
try: () => questionTemplate(source, request),
|
|
42
|
+
});
|
|
43
|
+
const question = {
|
|
44
|
+
context: source,
|
|
45
|
+
id: questionId(item, request, revision, entry.document.file),
|
|
46
|
+
item,
|
|
47
|
+
reason: fresh.reason,
|
|
48
|
+
request,
|
|
49
|
+
reviewedRevision: revision,
|
|
50
|
+
source: entry.document.file,
|
|
51
|
+
};
|
|
52
|
+
return question;
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=locate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"locate.js","sourceRoot":"","sources":["../../src/responses/locate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAmB,MAAM,QAAQ,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAwB,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACpF,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,SAAS,MAAM,CAAC,IAA4B,EAAE,OAAe;IAC5D,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AACD,MAAM,UAAU,MAAM,CAAC,IAAY,EAAE,QAAgB,EAAE,QAAiD,EAAE,EAAyB;IAClI,OAAO,MAAM,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAC,EAAE,IAAY,EAAE,OAAe;QAC5E,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC;QAC7B,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,KAAK,IAAI,IAAI,SAAS,CAAC,OAAO,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;QACjI,IAAI,CAAC,KAAK,EAAE,CAAC;YACZ,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,wEAAwE,CAAC,CAAC;QAC3G,CAAC;QACD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACtE,IAAI,CAAC,IAAI,EAAE,CAAC;YACX,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,2CAA2C,CAAC,CAAC;QAC9E,CAAC;QACD,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,EAAE,+BAA+B,CAAC,CAAC,CAAC,CAAC;QAC/H,IAAI,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,GAAG,GAAG,IAAI,EAAE,CAAC;YAC1D,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,aAAa,EAAE,wEAAwE,CAAC,CAAC;QAC/G,CAAC;QACD,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QACrC,IACC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,IAAI;eACtB,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,OAAO,IAAI,SAAS,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,EACrH,CAAC;YACF,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,qEAAqE,CAAC,CAAC;QACtG,CAAC;QACD,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QACzI,MAAM,KAAK,GAAG,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC9E,MAAM,KAAK,GAAG,iBAAiB,CAAC,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAC1E,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,KAAK,IAAI,IAAI,SAAS,CAAC,OAAO,CAAC,EAAE,KAAK,OAAO,CAC5E,EAAE,OAAO,CAAC;QACX,IAAI,CAAC,KAAK,EAAE,CAAC;YACZ,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,yGAAyG,CAAC,CAAC;QAC1I,CAAC;QACD,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QACpC,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;YACjB,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,cAAc,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,8BAA8B,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;YACrH,GAAG,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC;SAC5C,CAAC,CAAC;QACH,MAAM,QAAQ,GAAoB;YACjC,OAAO,EAAE,MAAM;YACf,EAAE,EAAE,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC5D,IAAI;YACJ,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,OAAO;YACP,gBAAgB,EAAE,QAAQ;YAC1B,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI;SAC3B,CAAC;QACF,OAAO,QAAQ,CAAC;IACjB,CAAC,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"make.d.ts","sourceRoot":"","sources":["../../src/responses/make.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAE3F,wBAAgB,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,GAAG,gBAAgB,CAcxG"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export function makeResponse(input, question, recordedAt) {
|
|
2
|
+
return {
|
|
3
|
+
body: input.body,
|
|
4
|
+
id: input.id,
|
|
5
|
+
response: {
|
|
6
|
+
...(input.answers === undefined ? {} : { answers: input.answers }),
|
|
7
|
+
...(input.supersedes === undefined ? {} : { supersedes: input.supersedes }),
|
|
8
|
+
author: input.author,
|
|
9
|
+
question: input.question,
|
|
10
|
+
recordedAt,
|
|
11
|
+
reviewedRevision: question.question.reviewedRevision,
|
|
12
|
+
type: input.type,
|
|
13
|
+
},
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=make.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"make.js","sourceRoot":"","sources":["../../src/responses/make.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,YAAY,CAAC,KAAiB,EAAE,QAAkB,EAAE,UAAkB;IACrF,OAAO;QACN,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,EAAE,EAAE,KAAK,CAAC,EAAE;QACZ,QAAQ,EAAE;YACT,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;YAClE,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;YAC3E,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,UAAU;YACV,gBAAgB,EAAE,QAAQ,CAAC,QAAQ,CAAC,gBAAgB;YACpD,IAAI,EAAE,KAAK,CAAC,IAAI;SAChB;KACD,CAAC;AACH,CAAC"}
|