@yadsh/dsh-qa-surface 0.6.1 → 0.7.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/README.md +136 -7
- package/capability-policy.json +1 -1
- package/lib/access/capability-catalog.js +144 -0
- package/lib/access/capability-catalog.js.map +1 -0
- package/lib/access/model.js +379 -0
- package/lib/access/model.js.map +1 -0
- package/lib/access/role-repository.js +195 -0
- package/lib/access/role-repository.js.map +1 -0
- package/lib/access/service.js +380 -0
- package/lib/access/service.js.map +1 -0
- package/lib/access/skill-metadata.js +234 -0
- package/lib/access/skill-metadata.js.map +1 -0
- package/lib/account-remotes.js +20 -10
- package/lib/account-remotes.js.map +1 -1
- package/lib/accounts/errors.js.map +1 -1
- package/lib/accounts/file.js.map +1 -1
- package/lib/accounts/store.js +202 -3
- package/lib/accounts/store.js.map +1 -1
- package/lib/admin/conversation-log.js +256 -0
- package/lib/admin/conversation-log.js.map +1 -0
- package/lib/admin/index.js +17 -0
- package/lib/admin/index.js.map +1 -0
- package/lib/admin/metrics.js +103 -0
- package/lib/admin/metrics.js.map +1 -0
- package/lib/admin/paging.js +23 -0
- package/lib/admin/paging.js.map +1 -0
- package/lib/admin/permissions.js +50 -0
- package/lib/admin/permissions.js.map +1 -0
- package/lib/admin/quality-store.js +485 -0
- package/lib/admin/quality-store.js.map +1 -0
- package/lib/admin/queue.js +107 -0
- package/lib/admin/queue.js.map +1 -0
- package/lib/admin/redaction.js +45 -0
- package/lib/admin/redaction.js.map +1 -0
- package/lib/admin/service.js +897 -0
- package/lib/admin/service.js.map +1 -0
- package/lib/admin/session-log.js +142 -0
- package/lib/admin/session-log.js.map +1 -0
- package/lib/cli.js +9 -6
- package/lib/cli.js.map +1 -1
- package/lib/client/QaSessionController.js +28 -2
- package/lib/client/QaSessionController.js.map +1 -1
- package/lib/client/QaSurface.js +143 -5
- package/lib/client/QaSurface.js.map +1 -1
- package/lib/client/QaTranscriptAdapter.js +1 -0
- package/lib/client/QaTranscriptAdapter.js.map +1 -1
- package/lib/client/admin/QaAdmin.js +458 -0
- package/lib/client/admin/QaAdmin.js.map +1 -0
- package/lib/client/admin/format.js +177 -0
- package/lib/client/admin/format.js.map +1 -0
- package/lib/client/admin/pages/Conversations.js +114 -0
- package/lib/client/admin/pages/Conversations.js.map +1 -0
- package/lib/client/admin/pages/Overview.js +24 -0
- package/lib/client/admin/pages/Overview.js.map +1 -0
- package/lib/client/admin/pages/Quality.js +71 -0
- package/lib/client/admin/pages/Quality.js.map +1 -0
- package/lib/client/admin/pages/Review.js +93 -0
- package/lib/client/admin/pages/Review.js.map +1 -0
- package/lib/client/admin/pages/Users.js +95 -0
- package/lib/client/admin/pages/Users.js.map +1 -0
- package/lib/client/admin/routes.js +127 -0
- package/lib/client/admin/routes.js.map +1 -0
- package/lib/client/admin/shared.js +91 -0
- package/lib/client/admin/shared.js.map +1 -0
- package/lib/client/admin/styles.js +111 -0
- package/lib/client/admin/styles.js.map +1 -0
- package/lib/client/components/QaChangelog.js +35 -0
- package/lib/client/components/QaChangelog.js.map +1 -1
- package/lib/client/components/QaHeader.js +3 -3
- package/lib/client/components/QaHeader.js.map +1 -1
- package/lib/client/components/QaMessage.js +61 -2
- package/lib/client/components/QaMessage.js.map +1 -1
- package/lib/client/create-session.js +1 -1
- package/lib/client/create-session.js.map +1 -1
- package/lib/client/index.js +33 -1
- package/lib/client/index.js.map +1 -1
- package/lib/client/role/RoleSelector.js +31 -0
- package/lib/client/role/RoleSelector.js.map +1 -0
- package/lib/client/session-sources.js +37 -1
- package/lib/client/session-sources.js.map +1 -1
- package/lib/client/settings/card.js +2 -2
- package/lib/client/settings/card.js.map +1 -1
- package/lib/client/settings/sections.js +0 -1
- package/lib/client/settings/sections.js.map +1 -1
- package/lib/client/styles.js +31 -0
- package/lib/client/styles.js.map +1 -1
- package/lib/client/types.js.map +1 -1
- package/lib/client.js +9908 -4857
- package/lib/client.js.map +1 -1
- package/lib/config-resolvers/defaults.js +0 -2
- package/lib/config-resolvers/defaults.js.map +1 -1
- package/lib/config.js +0 -249
- package/lib/config.js.map +1 -1
- package/lib/enforcement/skill-policy.js +172 -0
- package/lib/enforcement/skill-policy.js.map +1 -0
- package/lib/enforcement/tool-grants.js +151 -0
- package/lib/enforcement/tool-grants.js.map +1 -0
- package/lib/index.js +224 -42
- package/lib/index.js.map +1 -1
- package/lib/personal-skills/service.js +10 -3
- package/lib/personal-skills/service.js.map +1 -1
- package/lib/qa-tools/index.js +4 -0
- package/lib/qa-tools/index.js.map +1 -1
- package/lib/resolve-config.js +0 -2
- package/lib/resolve-config.js.map +1 -1
- package/lib/secure-session.js +71 -17
- package/lib/secure-session.js.map +1 -1
- package/lib/typert.host.js +2237 -202
- package/lib/typert.remote-client.d.ts +49 -3
- package/lib/typert.remote-client.js +1863 -183
- package/lib/types/access/capability-catalog.d.ts +37 -0
- package/lib/types/access/model.d.ts +60 -0
- package/lib/types/access/role-repository.d.ts +32 -0
- package/lib/types/access/service.d.ts +57 -0
- package/lib/types/access/skill-metadata.d.ts +53 -0
- package/lib/types/account-remotes.d.ts +6 -0
- package/lib/types/accounts/errors.d.ts +1 -1
- package/lib/types/accounts/file.d.ts +16 -5
- package/lib/types/accounts/store.d.ts +83 -3
- package/lib/types/admin/conversation-log.d.ts +39 -0
- package/lib/types/admin/index.d.ts +24 -0
- package/lib/types/admin/metrics.d.ts +29 -0
- package/lib/types/admin/paging.d.ts +33 -0
- package/lib/types/admin/permissions.d.ts +10 -0
- package/lib/types/admin/quality-store.d.ts +82 -0
- package/lib/types/admin/queue.d.ts +21 -0
- package/lib/types/admin/redaction.d.ts +29 -0
- package/lib/types/admin/service.d.ts +105 -0
- package/lib/types/admin/session-log.d.ts +53 -0
- package/lib/types/client/QaSessionController.d.ts +12 -1
- package/lib/types/client/QaSurface.d.ts +7 -1
- package/lib/types/client/admin/QaAdmin.d.ts +17 -0
- package/lib/types/client/admin/format.d.ts +43 -0
- package/lib/types/client/admin/pages/Conversations.d.ts +21 -0
- package/lib/types/client/admin/pages/Overview.d.ts +13 -0
- package/lib/types/client/admin/pages/Quality.d.ts +18 -0
- package/lib/types/client/admin/pages/Review.d.ts +15 -0
- package/lib/types/client/admin/pages/Users.d.ts +22 -0
- package/lib/types/client/admin/routes.d.ts +50 -0
- package/lib/types/client/admin/shared.d.ts +53 -0
- package/lib/types/client/admin/styles.d.ts +11 -0
- package/lib/types/client/components/QaHeader.d.ts +5 -1
- package/lib/types/client/components/QaMessage.d.ts +14 -1
- package/lib/types/client/create-session.d.ts +2 -0
- package/lib/types/client/role/RoleSelector.d.ts +14 -0
- package/lib/types/client/session-sources.d.ts +9 -0
- package/lib/types/client/settings/sections.d.ts +0 -1
- package/lib/types/client/types.d.ts +39 -2
- package/lib/types/enforcement/skill-policy.d.ts +29 -0
- package/lib/types/enforcement/tool-grants.d.ts +84 -0
- package/lib/types/index.d.ts +62 -14
- package/lib/types/qa-tools/index.d.ts +2 -0
- package/lib/types/secure-session.d.ts +10 -1
- package/lib/types/types.d.ts +568 -5
- package/package.json +1 -1
- package/lib/client/settings/sections/documents.js +0 -88
- package/lib/client/settings/sections/documents.js.map +0 -1
- package/lib/documents/artifacts/ids.js +0 -43
- package/lib/documents/artifacts/ids.js.map +0 -1
- package/lib/documents/artifacts/manifest.js +0 -66
- package/lib/documents/artifacts/manifest.js.map +0 -1
- package/lib/documents/artifacts/store.js +0 -169
- package/lib/documents/artifacts/store.js.map +0 -1
- package/lib/documents/capabilities.js +0 -93
- package/lib/documents/capabilities.js.map +0 -1
- package/lib/documents/config.js +0 -302
- package/lib/documents/config.js.map +0 -1
- package/lib/documents/defaults.js +0 -78
- package/lib/documents/defaults.js.map +0 -1
- package/lib/documents/errors.js +0 -101
- package/lib/documents/errors.js.map +0 -1
- package/lib/documents/index.js +0 -80
- package/lib/documents/index.js.map +0 -1
- package/lib/documents/inspect/facts.js +0 -161
- package/lib/documents/inspect/facts.js.map +0 -1
- package/lib/documents/inspect/zip.js +0 -108
- package/lib/documents/inspect/zip.js.map +0 -1
- package/lib/documents/markdown/directives.js +0 -135
- package/lib/documents/markdown/directives.js.map +0 -1
- package/lib/documents/markdown/frontmatter.js +0 -35
- package/lib/documents/markdown/frontmatter.js.map +0 -1
- package/lib/documents/markdown/normalize.js +0 -113
- package/lib/documents/markdown/normalize.js.map +0 -1
- package/lib/documents/orchestrator/assets.js +0 -243
- package/lib/documents/orchestrator/assets.js.map +0 -1
- package/lib/documents/orchestrator/convert-document.js +0 -186
- package/lib/documents/orchestrator/convert-document.js.map +0 -1
- package/lib/documents/orchestrator/create-document.js +0 -292
- package/lib/documents/orchestrator/create-document.js.map +0 -1
- package/lib/documents/orchestrator/extract-document.js +0 -162
- package/lib/documents/orchestrator/extract-document.js.map +0 -1
- package/lib/documents/orchestrator/inspect-document.js +0 -89
- package/lib/documents/orchestrator/inspect-document.js.map +0 -1
- package/lib/documents/orchestrator/runtime-deps.js +0 -59
- package/lib/documents/orchestrator/runtime-deps.js.map +0 -1
- package/lib/documents/orchestrator/scope.js +0 -132
- package/lib/documents/orchestrator/scope.js.map +0 -1
- package/lib/documents/providers/docling.js +0 -247
- package/lib/documents/providers/docling.js.map +0 -1
- package/lib/documents/providers/libreoffice.js +0 -130
- package/lib/documents/providers/libreoffice.js.map +0 -1
- package/lib/documents/providers/markitdown.js +0 -89
- package/lib/documents/providers/markitdown.js.map +0 -1
- package/lib/documents/providers/pandoc.js +0 -161
- package/lib/documents/providers/pandoc.js.map +0 -1
- package/lib/documents/providers/process.js +0 -164
- package/lib/documents/providers/process.js.map +0 -1
- package/lib/documents/providers/registry.js +0 -152
- package/lib/documents/providers/registry.js.map +0 -1
- package/lib/documents/providers/shared.js +0 -75
- package/lib/documents/providers/shared.js.map +0 -1
- package/lib/documents/runtime.js +0 -114
- package/lib/documents/runtime.js.map +0 -1
- package/lib/documents/security/file-types.js +0 -188
- package/lib/documents/security/file-types.js.map +0 -1
- package/lib/documents/security/limits.js +0 -78
- package/lib/documents/security/limits.js.map +0 -1
- package/lib/documents/security/mime.js +0 -43
- package/lib/documents/security/mime.js.map +0 -1
- package/lib/documents/security/paths.js +0 -133
- package/lib/documents/security/paths.js.map +0 -1
- package/lib/documents/templates/registry.js +0 -147
- package/lib/documents/templates/registry.js.map +0 -1
- package/lib/documents/templates/resolver.js +0 -59
- package/lib/documents/templates/resolver.js.map +0 -1
- package/lib/documents/tools/convert.js +0 -125
- package/lib/documents/tools/convert.js.map +0 -1
- package/lib/documents/tools/create.js +0 -187
- package/lib/documents/tools/create.js.map +0 -1
- package/lib/documents/tools/index.js +0 -41
- package/lib/documents/tools/index.js.map +0 -1
- package/lib/documents/tools/inspect.js +0 -135
- package/lib/documents/tools/inspect.js.map +0 -1
- package/lib/documents/tools/shared.js +0 -88
- package/lib/documents/tools/shared.js.map +0 -1
- package/lib/documents/tools/to-markdown.js +0 -125
- package/lib/documents/tools/to-markdown.js.map +0 -1
- package/lib/documents/types.js +0 -12
- package/lib/documents/types.js.map +0 -1
- package/lib/types/client/settings/sections/documents.d.ts +0 -13
- package/lib/types/documents/artifacts/ids.d.ts +0 -14
- package/lib/types/documents/artifacts/manifest.d.ts +0 -32
- package/lib/types/documents/artifacts/store.d.ts +0 -67
- package/lib/types/documents/capabilities.d.ts +0 -32
- package/lib/types/documents/config.d.ts +0 -27
- package/lib/types/documents/defaults.d.ts +0 -161
- package/lib/types/documents/errors.d.ts +0 -42
- package/lib/types/documents/index.d.ts +0 -63
- package/lib/types/documents/inspect/facts.d.ts +0 -43
- package/lib/types/documents/inspect/zip.d.ts +0 -28
- package/lib/types/documents/markdown/directives.d.ts +0 -39
- package/lib/types/documents/markdown/frontmatter.d.ts +0 -15
- package/lib/types/documents/markdown/normalize.d.ts +0 -30
- package/lib/types/documents/orchestrator/assets.d.ts +0 -55
- package/lib/types/documents/orchestrator/convert-document.d.ts +0 -25
- package/lib/types/documents/orchestrator/create-document.d.ts +0 -18
- package/lib/types/documents/orchestrator/extract-document.d.ts +0 -24
- package/lib/types/documents/orchestrator/inspect-document.d.ts +0 -12
- package/lib/types/documents/orchestrator/runtime-deps.d.ts +0 -43
- package/lib/types/documents/orchestrator/scope.d.ts +0 -52
- package/lib/types/documents/providers/docling.d.ts +0 -54
- package/lib/types/documents/providers/libreoffice.d.ts +0 -40
- package/lib/types/documents/providers/markitdown.d.ts +0 -28
- package/lib/types/documents/providers/pandoc.d.ts +0 -42
- package/lib/types/documents/providers/process.d.ts +0 -54
- package/lib/types/documents/providers/registry.d.ts +0 -68
- package/lib/types/documents/providers/shared.d.ts +0 -27
- package/lib/types/documents/runtime.d.ts +0 -59
- package/lib/types/documents/security/file-types.d.ts +0 -39
- package/lib/types/documents/security/limits.d.ts +0 -24
- package/lib/types/documents/security/mime.d.ts +0 -13
- package/lib/types/documents/security/paths.d.ts +0 -38
- package/lib/types/documents/templates/registry.d.ts +0 -50
- package/lib/types/documents/templates/resolver.d.ts +0 -30
- package/lib/types/documents/tools/convert.d.ts +0 -9
- package/lib/types/documents/tools/create.d.ts +0 -14
- package/lib/types/documents/tools/index.d.ts +0 -33
- package/lib/types/documents/tools/inspect.d.ts +0 -9
- package/lib/types/documents/tools/shared.d.ts +0 -77
- package/lib/types/documents/tools/to-markdown.d.ts +0 -12
- package/lib/types/documents/types.d.ts +0 -294
|
@@ -1,147 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Template registry (§12.2).
|
|
3
|
-
*
|
|
4
|
-
* A deployment describes its templates in a `manifest.yml` beside the
|
|
5
|
-
* template files:
|
|
6
|
-
*
|
|
7
|
-
* ```yaml
|
|
8
|
-
* templates:
|
|
9
|
-
* default:
|
|
10
|
-
* docx: ./docx/default.docx
|
|
11
|
-
* qa-report:
|
|
12
|
-
* docx: ./docx/qa-report.docx
|
|
13
|
-
* typst: ./typst/qa-report
|
|
14
|
-
* ```
|
|
15
|
-
*
|
|
16
|
-
* Every declared path is resolved against the template root and must stay
|
|
17
|
-
* inside it: a registry file is operator input, but it is read from the
|
|
18
|
-
* workspace, so it gets the same containment treatment as everything else
|
|
19
|
-
* (§26.2).
|
|
20
|
-
*/
|
|
21
|
-
import { readFile } from "node:fs/promises";
|
|
22
|
-
import path from "node:path";
|
|
23
|
-
import { parse as parseYaml } from "yaml";
|
|
24
|
-
import { DocumentError, asDocumentError } from "../errors.js";
|
|
25
|
-
import { canonicalizeForContainment, isInsideRoot } from "../security/paths.js";
|
|
26
|
-
export const TEMPLATE_MANIFEST_FILE = "manifest.yml";
|
|
27
|
-
/** The template name that always resolves, with or without a registry. */
|
|
28
|
-
export const BUILTIN_TEMPLATE_NAME = "default";
|
|
29
|
-
const EMPTY_REGISTRY = {
|
|
30
|
-
templates: new Map(),
|
|
31
|
-
warnings: [],
|
|
32
|
-
};
|
|
33
|
-
/** Located registry file inside a candidate root. */
|
|
34
|
-
export async function findTemplateManifest(root) {
|
|
35
|
-
const candidate = path.join(root, TEMPLATE_MANIFEST_FILE);
|
|
36
|
-
try {
|
|
37
|
-
const raw = await readFile(candidate, "utf8");
|
|
38
|
-
return raw.trim() === "" ? undefined : candidate;
|
|
39
|
-
}
|
|
40
|
-
catch {
|
|
41
|
-
return undefined;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
function readString(value) {
|
|
45
|
-
return typeof value === "string" && value.trim() !== ""
|
|
46
|
-
? value.trim()
|
|
47
|
-
: undefined;
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Load a registry from a template root. A missing root, a missing manifest or
|
|
51
|
-
* an unreadable document all leave the builtin default in place and report a
|
|
52
|
-
* warning — a broken template directory must not stop the agent from writing a
|
|
53
|
-
* plain document, but it must not be silent either.
|
|
54
|
-
*/
|
|
55
|
-
export async function loadTemplateRegistry(root) {
|
|
56
|
-
if (root === undefined)
|
|
57
|
-
return EMPTY_REGISTRY;
|
|
58
|
-
const canonicalRoot = await canonicalizeForContainment(root);
|
|
59
|
-
const manifestPath = await findTemplateManifest(canonicalRoot);
|
|
60
|
-
if (manifestPath === undefined) {
|
|
61
|
-
return {
|
|
62
|
-
root: canonicalRoot,
|
|
63
|
-
templates: new Map(),
|
|
64
|
-
warnings: [
|
|
65
|
-
{
|
|
66
|
-
code: "METADATA_PARTIALLY_EXTRACTED",
|
|
67
|
-
message: `no ${TEMPLATE_MANIFEST_FILE} found under the configured template root; only the builtin "default" template is available`,
|
|
68
|
-
details: { root: canonicalRoot },
|
|
69
|
-
},
|
|
70
|
-
],
|
|
71
|
-
};
|
|
72
|
-
}
|
|
73
|
-
let document;
|
|
74
|
-
try {
|
|
75
|
-
document = parseYaml(await readFile(manifestPath, "utf8"));
|
|
76
|
-
}
|
|
77
|
-
catch (error) {
|
|
78
|
-
return {
|
|
79
|
-
root: canonicalRoot,
|
|
80
|
-
templates: new Map(),
|
|
81
|
-
warnings: [
|
|
82
|
-
{
|
|
83
|
-
code: "METADATA_PARTIALLY_EXTRACTED",
|
|
84
|
-
message: `the template registry is not valid YAML: ${error instanceof Error ? error.message : String(error)}`,
|
|
85
|
-
details: { manifest: TEMPLATE_MANIFEST_FILE },
|
|
86
|
-
},
|
|
87
|
-
],
|
|
88
|
-
};
|
|
89
|
-
}
|
|
90
|
-
const section = document?.templates;
|
|
91
|
-
if (section === null || typeof section !== "object") {
|
|
92
|
-
throw new DocumentError("INVALID_TEMPLATE", `${TEMPLATE_MANIFEST_FILE} must declare a "templates" mapping`, { details: { manifest: TEMPLATE_MANIFEST_FILE } });
|
|
93
|
-
}
|
|
94
|
-
const templates = new Map();
|
|
95
|
-
for (const [rawName, rawEntry] of Object.entries(section)) {
|
|
96
|
-
const name = rawName.trim();
|
|
97
|
-
if (name === "")
|
|
98
|
-
continue;
|
|
99
|
-
if (rawEntry === null || typeof rawEntry !== "object") {
|
|
100
|
-
throw new DocumentError("INVALID_TEMPLATE", `template "${name}" must be a mapping with a docx and/or typst path`, { details: { template: name } });
|
|
101
|
-
}
|
|
102
|
-
const entry = rawEntry;
|
|
103
|
-
const docx = readString(entry["docx"]);
|
|
104
|
-
const typst = readString(entry["typst"]);
|
|
105
|
-
if (docx === undefined && typst === undefined) {
|
|
106
|
-
throw new DocumentError("INVALID_TEMPLATE", `template "${name}" declares neither a docx nor a typst path`, { details: { template: name } });
|
|
107
|
-
}
|
|
108
|
-
templates.set(name, {
|
|
109
|
-
name,
|
|
110
|
-
...(docx === undefined
|
|
111
|
-
? {}
|
|
112
|
-
: { docx: resolveTemplatePath(canonicalRoot, docx, name, "docx") }),
|
|
113
|
-
...(typst === undefined
|
|
114
|
-
? {}
|
|
115
|
-
: { typst: resolveTemplatePath(canonicalRoot, typst, name, "typst") }),
|
|
116
|
-
});
|
|
117
|
-
}
|
|
118
|
-
return { root: canonicalRoot, templates, warnings: [] };
|
|
119
|
-
}
|
|
120
|
-
function resolveTemplatePath(root, declared, templateName, kind) {
|
|
121
|
-
const resolved = path.resolve(root, declared);
|
|
122
|
-
if (!isInsideRoot(root, resolved)) {
|
|
123
|
-
throw new DocumentError("PATH_NOT_ALLOWED", `the ${kind} path of template "${templateName}" leaves the template root`, { details: { template: templateName } });
|
|
124
|
-
}
|
|
125
|
-
return resolved;
|
|
126
|
-
}
|
|
127
|
-
export function templateNames(registry) {
|
|
128
|
-
return [
|
|
129
|
-
...new Set([BUILTIN_TEMPLATE_NAME, ...registry.templates.keys()]),
|
|
130
|
-
].sort();
|
|
131
|
-
}
|
|
132
|
-
/** Load a registry from a candidate root, defaulting to a file-system probe. */
|
|
133
|
-
export async function loadTemplateRegistryFrom(roots, probe) {
|
|
134
|
-
for (const candidate of roots) {
|
|
135
|
-
if (candidate === undefined)
|
|
136
|
-
continue;
|
|
137
|
-
try {
|
|
138
|
-
if (await probe(candidate))
|
|
139
|
-
return await loadTemplateRegistry(candidate);
|
|
140
|
-
}
|
|
141
|
-
catch (error) {
|
|
142
|
-
throw asDocumentError(error, "INVALID_TEMPLATE");
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
return EMPTY_REGISTRY;
|
|
146
|
-
}
|
|
147
|
-
//# sourceMappingURL=registry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/documents/templates/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Template resolution (§12.3).
|
|
3
|
-
*
|
|
4
|
-
* ```text
|
|
5
|
-
* requested template
|
|
6
|
-
* ↓ (absent)
|
|
7
|
-
* project default
|
|
8
|
-
* ↓ (absent)
|
|
9
|
-
* builtin default
|
|
10
|
-
* ```
|
|
11
|
-
*
|
|
12
|
-
* A requested template that does not exist is an error, never a silent
|
|
13
|
-
* fallback: a report rendered in the wrong corporate layout is worse than a
|
|
14
|
-
* failed call the operator can read. The builtin `default` name resolves
|
|
15
|
-
* without a registry entry — it means "the document backend's own defaults".
|
|
16
|
-
*/
|
|
17
|
-
import { DocumentError } from "../errors.js";
|
|
18
|
-
import { BUILTIN_TEMPLATE_NAME, } from "./registry.js";
|
|
19
|
-
export function resolveTemplate(registry, requested, projectDefault) {
|
|
20
|
-
if (requested !== undefined && requested.trim() !== "") {
|
|
21
|
-
const name = requested.trim();
|
|
22
|
-
const template = registry.templates.get(name);
|
|
23
|
-
if (template !== undefined) {
|
|
24
|
-
return {
|
|
25
|
-
resolved: { name, template, source: "requested" },
|
|
26
|
-
warnings: [],
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
if (name === BUILTIN_TEMPLATE_NAME) {
|
|
30
|
-
return { resolved: { name, source: "builtin" }, warnings: [] };
|
|
31
|
-
}
|
|
32
|
-
throw new DocumentError("TEMPLATE_NOT_FOUND", `template "${name}" is not registered (available: ${[
|
|
33
|
-
...[registry.templates.keys()],
|
|
34
|
-
]
|
|
35
|
-
.sort()
|
|
36
|
-
.join(", ")})`, { details: { template: name } });
|
|
37
|
-
}
|
|
38
|
-
const name = projectDefault.trim() === ""
|
|
39
|
-
? BUILTIN_TEMPLATE_NAME
|
|
40
|
-
: projectDefault.trim();
|
|
41
|
-
if (name === BUILTIN_TEMPLATE_NAME) {
|
|
42
|
-
return { resolved: { name, source: "builtin" }, warnings: [] };
|
|
43
|
-
}
|
|
44
|
-
const template = registry.templates.get(name);
|
|
45
|
-
if (template === undefined) {
|
|
46
|
-
throw new DocumentError("TEMPLATE_NOT_FOUND", `the configured default template "${name}" is not registered`, { details: { template: name } });
|
|
47
|
-
}
|
|
48
|
-
return {
|
|
49
|
-
resolved: { name, template, source: "project-default" },
|
|
50
|
-
warnings: [
|
|
51
|
-
{
|
|
52
|
-
code: "TEMPLATE_DEFAULTED",
|
|
53
|
-
message: `no template was requested; the deployment default "${name}" was applied`,
|
|
54
|
-
details: { template: name },
|
|
55
|
-
},
|
|
56
|
-
],
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
//# sourceMappingURL=resolver.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../../src/documents/templates/resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EACL,qBAAqB,GAGtB,MAAM,eAAe,CAAC;AAcvB,MAAM,UAAU,eAAe,CAC7B,QAA0B,EAC1B,SAA6B,EAC7B,cAAsB;IAEtB,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACvD,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO;gBACL,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE;gBACjD,QAAQ,EAAE,EAAE;aACb,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,KAAK,qBAAqB,EAAE,CAAC;YACnC,OAAO,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;QACjE,CAAC;QACD,MAAM,IAAI,aAAa,CACrB,oBAAoB,EACpB,aAAa,IAAI,mCAAmC;YAClD,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;SAC/B;aACE,IAAI,EAAE;aACN,IAAI,CAAC,IAAI,CAAC,GAAG,EAChB,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,CAChC,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GACR,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE;QAC1B,CAAC,CAAC,qBAAqB;QACvB,CAAC,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;IAC5B,IAAI,IAAI,KAAK,qBAAqB,EAAE,CAAC;QACnC,OAAO,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IACjE,CAAC;IACD,MAAM,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,IAAI,aAAa,CACrB,oBAAoB,EACpB,oCAAoC,IAAI,qBAAqB,EAC7D,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,CAChC,CAAC;IACJ,CAAC;IACD,OAAO;QACL,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,iBAAiB,EAAE;QACvD,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,oBAAoB;gBAC1B,OAAO,EAAE,sDAAsD,IAAI,eAAe;gBAClF,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;aAC5B;SACF;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `document_convert` — one supported format to another (§10, §34).
|
|
3
|
-
*/
|
|
4
|
-
import { defineTool } from "@deepseek-ai/dsh-tools";
|
|
5
|
-
import { CONVERSION_ROUTES } from "../orchestrator/convert-document.js";
|
|
6
|
-
import { ARTIFACT_NOTE, fileParameter, renderFiles, renderWarning, requireDocumentScope, toolFiles, toolWarnings, warningsSchema, } from "./shared.js";
|
|
7
|
-
export const DOCUMENT_CONVERT_TOOL = "document_convert";
|
|
8
|
-
function describeRoutes() {
|
|
9
|
-
return CONVERSION_ROUTES.map(([from, to]) => `${from} → ${to}`).join(", ");
|
|
10
|
-
}
|
|
11
|
-
export function createDocumentConvertTool(options) {
|
|
12
|
-
return defineTool({
|
|
13
|
-
name: DOCUMENT_CONVERT_TOOL,
|
|
14
|
-
description: [
|
|
15
|
-
"Convert a supported document to another supported document format using the managed document pipeline.",
|
|
16
|
-
`Supported routes: ${describeRoutes()}.`,
|
|
17
|
-
"Markdown targets extract the text; DOCX → PDF keeps the Word layout. Anything else is refused instead of being attempted.",
|
|
18
|
-
].join(" "),
|
|
19
|
-
parameters: {
|
|
20
|
-
file: fileParameter(),
|
|
21
|
-
targetFormat: {
|
|
22
|
-
type: "string",
|
|
23
|
-
required: true,
|
|
24
|
-
enum: ["docx", "pdf", "md"],
|
|
25
|
-
description: "Format to produce.",
|
|
26
|
-
},
|
|
27
|
-
template: {
|
|
28
|
-
type: "string",
|
|
29
|
-
description: "Template name, for Markdown → DOCX/PDF conversions.",
|
|
30
|
-
},
|
|
31
|
-
filename: {
|
|
32
|
-
type: "string",
|
|
33
|
-
description: "File name of the produced document, without a directory.",
|
|
34
|
-
},
|
|
35
|
-
outputFilename: {
|
|
36
|
-
type: "string",
|
|
37
|
-
description: "Name of the extracted Markdown file when the target is md.",
|
|
38
|
-
},
|
|
39
|
-
options: {
|
|
40
|
-
type: "object",
|
|
41
|
-
additionalProperties: false,
|
|
42
|
-
properties: {
|
|
43
|
-
pdfMode: {
|
|
44
|
-
type: "string",
|
|
45
|
-
enum: ["auto", "office", "typst"],
|
|
46
|
-
description: "PDF route for Markdown → PDF.",
|
|
47
|
-
},
|
|
48
|
-
ocr: {
|
|
49
|
-
type: "string",
|
|
50
|
-
enum: ["auto", "off", "force"],
|
|
51
|
-
description: "OCR policy for conversions into Markdown.",
|
|
52
|
-
},
|
|
53
|
-
},
|
|
54
|
-
},
|
|
55
|
-
},
|
|
56
|
-
output: {
|
|
57
|
-
schema: {
|
|
58
|
-
type: "object",
|
|
59
|
-
additionalProperties: false,
|
|
60
|
-
properties: {
|
|
61
|
-
artifactId: { type: "string", required: true },
|
|
62
|
-
files: {
|
|
63
|
-
type: "array",
|
|
64
|
-
required: true,
|
|
65
|
-
items: {
|
|
66
|
-
type: "object",
|
|
67
|
-
additionalProperties: false,
|
|
68
|
-
properties: {
|
|
69
|
-
format: { type: "string", required: true },
|
|
70
|
-
path: { type: "string", required: true },
|
|
71
|
-
mediaType: { type: "string", required: true },
|
|
72
|
-
size: { type: "number", required: true },
|
|
73
|
-
sha256: { type: "string", required: true },
|
|
74
|
-
status: { type: "string", required: true },
|
|
75
|
-
error: { type: "string" },
|
|
76
|
-
},
|
|
77
|
-
},
|
|
78
|
-
},
|
|
79
|
-
source: {
|
|
80
|
-
type: "object",
|
|
81
|
-
required: true,
|
|
82
|
-
additionalProperties: false,
|
|
83
|
-
properties: {
|
|
84
|
-
path: { type: "string", required: true },
|
|
85
|
-
format: { type: "string", required: true },
|
|
86
|
-
},
|
|
87
|
-
},
|
|
88
|
-
warnings: warningsSchema,
|
|
89
|
-
manifestPath: { type: "string", required: true },
|
|
90
|
-
},
|
|
91
|
-
},
|
|
92
|
-
render: (_args, value) => {
|
|
93
|
-
const result = value;
|
|
94
|
-
return [
|
|
95
|
-
{
|
|
96
|
-
type: "text",
|
|
97
|
-
text: [
|
|
98
|
-
`artifact: ${result.artifactId}`,
|
|
99
|
-
`source: ${result.source.path} (${result.source.format})`,
|
|
100
|
-
...renderFiles(result.files),
|
|
101
|
-
...result.warnings.map(renderWarning),
|
|
102
|
-
`manifest: ${result.manifestPath}`,
|
|
103
|
-
ARTIFACT_NOTE,
|
|
104
|
-
].join("\n"),
|
|
105
|
-
},
|
|
106
|
-
];
|
|
107
|
-
},
|
|
108
|
-
},
|
|
109
|
-
timeoutMs: options.runtime.config.pandoc.timeoutMs +
|
|
110
|
-
options.runtime.config.libreoffice.timeoutMs +
|
|
111
|
-
options.runtime.config.docling.timeoutMs +
|
|
112
|
-
30_000,
|
|
113
|
-
async execute(args, exec) {
|
|
114
|
-
const result = await options.runtime.convert(args, requireDocumentScope(exec));
|
|
115
|
-
return {
|
|
116
|
-
artifactId: result.artifactId,
|
|
117
|
-
files: toolFiles(result.files),
|
|
118
|
-
source: { path: result.source.path, format: result.source.format },
|
|
119
|
-
warnings: toolWarnings(result.warnings),
|
|
120
|
-
manifestPath: result.manifestPath,
|
|
121
|
-
};
|
|
122
|
-
},
|
|
123
|
-
});
|
|
124
|
-
}
|
|
125
|
-
//# sourceMappingURL=convert.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"convert.js","sourceRoot":"","sources":["../../../src/documents/tools/convert.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,187 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `document_create` — Markdown to DOCX and/or PDF (§8, §34).
|
|
3
|
-
*
|
|
4
|
-
* This is the tool the agent reaches for instead of driving pandoc and
|
|
5
|
-
* LibreOffice itself, which is the whole point of the pipeline: the intent is
|
|
6
|
-
* "give me this report as a Word file and a PDF", and the service decides how
|
|
7
|
-
* that happens.
|
|
8
|
-
*/
|
|
9
|
-
import { defineTool } from "@deepseek-ai/dsh-tools";
|
|
10
|
-
import { ARTIFACT_NOTE, renderFiles, renderWarning, requireDocumentScope, toolFiles, toolWarnings, warningsSchema, } from "./shared.js";
|
|
11
|
-
export const DOCUMENT_CREATE_TOOL = "document_create";
|
|
12
|
-
const DESCRIPTION = [
|
|
13
|
-
"Create DOCX and/or PDF documents from Markdown content using the managed document pipeline and its templates.",
|
|
14
|
-
"Use this instead of invoking document conversion binaries directly: it writes an artifact bundle with the source, the assets and a manifest, and it returns the created file paths.",
|
|
15
|
-
"Assets referenced by the Markdown must be supplied through `assets`; remote images are never fetched.",
|
|
16
|
-
].join(" ");
|
|
17
|
-
export function createDocumentCreateTool(options) {
|
|
18
|
-
return defineTool({
|
|
19
|
-
name: DOCUMENT_CREATE_TOOL,
|
|
20
|
-
description: DESCRIPTION,
|
|
21
|
-
parameters: {
|
|
22
|
-
content: {
|
|
23
|
-
type: "string",
|
|
24
|
-
required: true,
|
|
25
|
-
description: "Markdown source of the document.",
|
|
26
|
-
},
|
|
27
|
-
formats: {
|
|
28
|
-
type: "array",
|
|
29
|
-
required: true,
|
|
30
|
-
items: { type: "string", enum: ["docx", "pdf"] },
|
|
31
|
-
description: "Formats to produce. DOCX + PDF renders one document and exports both.",
|
|
32
|
-
},
|
|
33
|
-
filename: {
|
|
34
|
-
type: "string",
|
|
35
|
-
description: "File name for the outputs, without a directory. Sanitized before use; defaults to document-<artifact id>.",
|
|
36
|
-
},
|
|
37
|
-
template: {
|
|
38
|
-
type: "string",
|
|
39
|
-
description: "Registered template name for the layout (for example qa-report). A name that is not registered fails; there is no silent fallback.",
|
|
40
|
-
},
|
|
41
|
-
title: {
|
|
42
|
-
type: "string",
|
|
43
|
-
description: "Document title; falls back to the `title` front-matter field.",
|
|
44
|
-
},
|
|
45
|
-
metadata: {
|
|
46
|
-
type: "object",
|
|
47
|
-
additionalProperties: true,
|
|
48
|
-
description: "Additional document properties, as string key/value pairs.",
|
|
49
|
-
},
|
|
50
|
-
assets: {
|
|
51
|
-
type: "array",
|
|
52
|
-
items: {
|
|
53
|
-
type: "object",
|
|
54
|
-
additionalProperties: false,
|
|
55
|
-
properties: {
|
|
56
|
-
id: {
|
|
57
|
-
type: "string",
|
|
58
|
-
required: true,
|
|
59
|
-
description: "Stable asset id.",
|
|
60
|
-
},
|
|
61
|
-
path: {
|
|
62
|
-
type: "string",
|
|
63
|
-
description: "Path of an existing file inside the session workspace.",
|
|
64
|
-
},
|
|
65
|
-
dataRef: {
|
|
66
|
-
type: "string",
|
|
67
|
-
description: "Inline asset content as a base64 data URI.",
|
|
68
|
-
},
|
|
69
|
-
filename: {
|
|
70
|
-
type: "string",
|
|
71
|
-
description: "Name to store the asset under.",
|
|
72
|
-
},
|
|
73
|
-
mimeType: {
|
|
74
|
-
type: "string",
|
|
75
|
-
description: "Media type, e.g. image/png.",
|
|
76
|
-
},
|
|
77
|
-
},
|
|
78
|
-
},
|
|
79
|
-
description: "Images and other assets the Markdown references, as a path or a data URI (exactly one of the two).",
|
|
80
|
-
},
|
|
81
|
-
options: {
|
|
82
|
-
type: "object",
|
|
83
|
-
additionalProperties: false,
|
|
84
|
-
properties: {
|
|
85
|
-
pdfMode: {
|
|
86
|
-
type: "string",
|
|
87
|
-
enum: ["auto", "office", "typst"],
|
|
88
|
-
description: "PDF route. `office` renders DOCX first (identical layout to the Word file); `typst` renders directly when the deployment enables it.",
|
|
89
|
-
},
|
|
90
|
-
pageSize: {
|
|
91
|
-
type: "string",
|
|
92
|
-
description: "Page size such as A4 or Letter.",
|
|
93
|
-
},
|
|
94
|
-
locale: {
|
|
95
|
-
type: "string",
|
|
96
|
-
description: "Document language, e.g. ru-RU.",
|
|
97
|
-
},
|
|
98
|
-
toc: { type: "boolean", description: "Insert a table of contents." },
|
|
99
|
-
preserveSource: {
|
|
100
|
-
type: "boolean",
|
|
101
|
-
description: "Keep the Markdown source inside the artifact bundle.",
|
|
102
|
-
},
|
|
103
|
-
},
|
|
104
|
-
},
|
|
105
|
-
},
|
|
106
|
-
output: {
|
|
107
|
-
schema: {
|
|
108
|
-
type: "object",
|
|
109
|
-
additionalProperties: false,
|
|
110
|
-
properties: {
|
|
111
|
-
artifactId: { type: "string", required: true },
|
|
112
|
-
source: {
|
|
113
|
-
type: "object",
|
|
114
|
-
additionalProperties: false,
|
|
115
|
-
properties: {
|
|
116
|
-
path: { type: "string", required: true },
|
|
117
|
-
mediaType: { type: "string", required: true },
|
|
118
|
-
},
|
|
119
|
-
},
|
|
120
|
-
files: {
|
|
121
|
-
type: "array",
|
|
122
|
-
required: true,
|
|
123
|
-
items: {
|
|
124
|
-
type: "object",
|
|
125
|
-
additionalProperties: false,
|
|
126
|
-
properties: {
|
|
127
|
-
format: { type: "string", required: true },
|
|
128
|
-
path: { type: "string", required: true },
|
|
129
|
-
mediaType: { type: "string", required: true },
|
|
130
|
-
size: { type: "number", required: true },
|
|
131
|
-
sha256: { type: "string", required: true },
|
|
132
|
-
status: { type: "string", required: true },
|
|
133
|
-
error: { type: "string" },
|
|
134
|
-
},
|
|
135
|
-
},
|
|
136
|
-
},
|
|
137
|
-
template: { type: "string" },
|
|
138
|
-
warnings: warningsSchema,
|
|
139
|
-
manifestPath: { type: "string", required: true },
|
|
140
|
-
},
|
|
141
|
-
},
|
|
142
|
-
render: (_args, value) => {
|
|
143
|
-
const result = value;
|
|
144
|
-
return [
|
|
145
|
-
{
|
|
146
|
-
type: "text",
|
|
147
|
-
text: [
|
|
148
|
-
`artifact: ${result.artifactId}`,
|
|
149
|
-
...renderFiles(result.files),
|
|
150
|
-
...(result.template === undefined
|
|
151
|
-
? []
|
|
152
|
-
: [`template: ${result.template}`]),
|
|
153
|
-
...(result.source === undefined
|
|
154
|
-
? []
|
|
155
|
-
: [`source: ${result.source.path}`]),
|
|
156
|
-
...result.warnings.map(renderWarning),
|
|
157
|
-
`manifest: ${result.manifestPath}`,
|
|
158
|
-
ARTIFACT_NOTE,
|
|
159
|
-
].join("\n"),
|
|
160
|
-
},
|
|
161
|
-
];
|
|
162
|
-
},
|
|
163
|
-
},
|
|
164
|
-
timeoutMs: options.runtime.config.pandoc.timeoutMs +
|
|
165
|
-
options.runtime.config.libreoffice.timeoutMs +
|
|
166
|
-
30_000,
|
|
167
|
-
async execute(args, exec) {
|
|
168
|
-
const result = await options.runtime.create(args, requireDocumentScope(exec));
|
|
169
|
-
return {
|
|
170
|
-
artifactId: result.artifactId,
|
|
171
|
-
...(result.source === undefined
|
|
172
|
-
? {}
|
|
173
|
-
: {
|
|
174
|
-
source: {
|
|
175
|
-
path: result.source.path,
|
|
176
|
-
mediaType: result.source.mediaType,
|
|
177
|
-
},
|
|
178
|
-
}),
|
|
179
|
-
files: toolFiles(result.files),
|
|
180
|
-
...(result.template === undefined ? {} : { template: result.template }),
|
|
181
|
-
warnings: toolWarnings(result.warnings),
|
|
182
|
-
manifestPath: result.manifestPath,
|
|
183
|
-
};
|
|
184
|
-
},
|
|
185
|
-
});
|
|
186
|
-
}
|
|
187
|
-
//# sourceMappingURL=create.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/documents/tools/create.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The four agent-facing document tools (§8–§11, §34) and their registration.
|
|
3
|
-
*
|
|
4
|
-
* Registration is explicit and returns its disposers: the host may register
|
|
5
|
-
* them globally (the default) or an agent scope may register the same
|
|
6
|
-
* definitions later, which is what a deployment that wants progressive
|
|
7
|
-
* disclosure needs. Nothing here decides *whether* document tools are visible;
|
|
8
|
-
* that is the deployment's allow-list.
|
|
9
|
-
*/
|
|
10
|
-
import { createDocumentConvertTool, DOCUMENT_CONVERT_TOOL } from "./convert.js";
|
|
11
|
-
import { createDocumentCreateTool, DOCUMENT_CREATE_TOOL } from "./create.js";
|
|
12
|
-
import { createDocumentInspectTool, DOCUMENT_INSPECT_TOOL } from "./inspect.js";
|
|
13
|
-
import { createDocumentToMarkdownTool, DOCUMENT_TO_MARKDOWN_TOOL, } from "./to-markdown.js";
|
|
14
|
-
/** Exact names of the tools this subsystem registers (allow-list contract). */
|
|
15
|
-
export const DOCUMENT_TOOL_NAMES = [
|
|
16
|
-
DOCUMENT_CREATE_TOOL,
|
|
17
|
-
DOCUMENT_TO_MARKDOWN_TOOL,
|
|
18
|
-
DOCUMENT_CONVERT_TOOL,
|
|
19
|
-
DOCUMENT_INSPECT_TOOL,
|
|
20
|
-
];
|
|
21
|
-
export { DOCUMENT_CONVERT_TOOL, DOCUMENT_CREATE_TOOL, DOCUMENT_INSPECT_TOOL, DOCUMENT_TO_MARKDOWN_TOOL, };
|
|
22
|
-
export function createDocumentTools(options) {
|
|
23
|
-
return [
|
|
24
|
-
createDocumentCreateTool(options),
|
|
25
|
-
createDocumentToMarkdownTool(options),
|
|
26
|
-
createDocumentConvertTool(options),
|
|
27
|
-
createDocumentInspectTool(options),
|
|
28
|
-
];
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Register every document tool and return one disposer. `enabled: false` is
|
|
32
|
-
* handled by the caller: the surface is then absent rather than inert.
|
|
33
|
-
*/
|
|
34
|
-
export function registerDocumentTools(registry, options) {
|
|
35
|
-
const disposers = createDocumentTools(options).map((definition) => registry.register(definition));
|
|
36
|
-
return () => {
|
|
37
|
-
for (const dispose of disposers.reverse())
|
|
38
|
-
dispose();
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/documents/tools/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAChF,OAAO,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAChF,OAAO,EACL,4BAA4B,EAC5B,yBAAyB,GAC1B,MAAM,kBAAkB,CAAC;AAE1B,+EAA+E;AAC/E,MAAM,CAAC,MAAM,mBAAmB,GAAsB;IACpD,oBAAoB;IACpB,yBAAyB;IACzB,qBAAqB;IACrB,qBAAqB;CACtB,CAAC;AAEF,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,yBAAyB,GAC1B,CAAC;AAEF,MAAM,UAAU,mBAAmB,CAAC,OAEnC;IACC,OAAO;QACL,wBAAwB,CAAC,OAAO,CAAC;QACjC,4BAA4B,CAAC,OAAO,CAAC;QACrC,yBAAyB,CAAC,OAAO,CAAC;QAClC,yBAAyB,CAAC,OAAO,CAAC;KACnC,CAAC;AACJ,CAAC;AAOD;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CACnC,QAA8B,EAC9B,OAA8C;IAE9C,MAAM,SAAS,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAChE,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,CAC9B,CAAC;IACF,OAAO,GAAG,EAAE;QACV,KAAK,MAAM,OAAO,IAAI,SAAS,CAAC,OAAO,EAAE;YAAE,OAAO,EAAE,CAAC;IACvD,CAAC,CAAC;AACJ,CAAC"}
|