veryfront 0.1.1226 → 0.1.1227
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/esm/deno.d.ts +5 -0
- package/esm/deno.js +11 -6
- package/esm/src/agent/hosted/hosted-chat-finalization.d.ts.map +1 -1
- package/esm/src/agent/hosted/hosted-chat-finalization.js +2 -2
- package/esm/src/agent/hosted/stream-terminal-error.d.ts.map +1 -1
- package/esm/src/agent/hosted/stream-terminal-error.js +2 -6
- package/esm/src/agent/streaming/stream-outcome.d.ts +2 -0
- package/esm/src/agent/streaming/stream-outcome.d.ts.map +1 -1
- package/esm/src/agent/streaming/stream-outcome.js +9 -1
- package/esm/src/build/compiler/mdx-compiler/frontmatter-parser.js +1 -1
- package/esm/src/build/compiler/mdx-to-js.js +1 -1
- package/esm/src/extensions/parser/index.d.ts +4 -1
- package/esm/src/extensions/parser/index.d.ts.map +1 -1
- package/esm/src/extensions/parser/index.js +4 -1
- package/esm/src/extensions/parser/yaml-defaults.d.ts +22 -0
- package/esm/src/extensions/parser/yaml-defaults.d.ts.map +1 -0
- package/esm/src/extensions/parser/yaml-defaults.js +57 -0
- package/esm/src/extensions/parser/yaml-parser.d.ts +59 -0
- package/esm/src/extensions/parser/yaml-parser.d.ts.map +1 -0
- package/esm/src/extensions/parser/yaml-parser.js +62 -0
- package/esm/src/extensions/recommendations.d.ts.map +1 -1
- package/esm/src/extensions/recommendations.js +4 -0
- package/esm/src/html/hydration-script-builder/hydration-runtime.generated.js +1 -1
- package/esm/src/platform/compat/http/pinned-fetch.d.ts +1 -1
- package/esm/src/platform/compat/std/front-matter-yaml.js +1 -1
- package/esm/src/platform/compat/std/yaml.d.ts +17 -0
- package/esm/src/platform/compat/std/yaml.d.ts.map +1 -0
- package/esm/src/platform/compat/std/yaml.js +39 -0
- package/esm/src/utils/version-constant.d.ts +1 -1
- package/esm/src/utils/version-constant.js +1 -1
- package/package.json +8 -8
- package/esm/deps/jsr.io/@std/yaml/1.1.0/_chars.d.ts +0 -33
- package/esm/deps/jsr.io/@std/yaml/1.1.0/_chars.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/yaml/1.1.0/_chars.js +0 -48
- package/esm/deps/jsr.io/@std/yaml/1.1.0/_loader_state.d.ts +0 -64
- package/esm/deps/jsr.io/@std/yaml/1.1.0/_loader_state.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/yaml/1.1.0/_loader_state.js +0 -1371
- package/esm/deps/jsr.io/@std/yaml/1.1.0/_schema.d.ts +0 -44
- package/esm/deps/jsr.io/@std/yaml/1.1.0/_schema.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/yaml/1.1.0/_schema.js +0 -117
- package/esm/deps/jsr.io/@std/yaml/1.1.0/_type/binary.d.ts +0 -3
- package/esm/deps/jsr.io/@std/yaml/1.1.0/_type/binary.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/yaml/1.1.0/_type/binary.js +0 -103
- package/esm/deps/jsr.io/@std/yaml/1.1.0/_type/bool.d.ts +0 -3
- package/esm/deps/jsr.io/@std/yaml/1.1.0/_type/bool.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/yaml/1.1.0/_type/bool.js +0 -32
- package/esm/deps/jsr.io/@std/yaml/1.1.0/_type/float.d.ts +0 -3
- package/esm/deps/jsr.io/@std/yaml/1.1.0/_type/float.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/yaml/1.1.0/_type/float.js +0 -96
- package/esm/deps/jsr.io/@std/yaml/1.1.0/_type/int.d.ts +0 -3
- package/esm/deps/jsr.io/@std/yaml/1.1.0/_type/int.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/yaml/1.1.0/_type/int.js +0 -159
- package/esm/deps/jsr.io/@std/yaml/1.1.0/_type/map.d.ts +0 -3
- package/esm/deps/jsr.io/@std/yaml/1.1.0/_type/map.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/yaml/1.1.0/_type/map.js +0 -14
- package/esm/deps/jsr.io/@std/yaml/1.1.0/_type/merge.d.ts +0 -3
- package/esm/deps/jsr.io/@std/yaml/1.1.0/_type/merge.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/yaml/1.1.0/_type/merge.js +0 -10
- package/esm/deps/jsr.io/@std/yaml/1.1.0/_type/nil.d.ts +0 -3
- package/esm/deps/jsr.io/@std/yaml/1.1.0/_type/nil.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/yaml/1.1.0/_type/nil.js +0 -22
- package/esm/deps/jsr.io/@std/yaml/1.1.0/_type/omap.d.ts +0 -3
- package/esm/deps/jsr.io/@std/yaml/1.1.0/_type/omap.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/yaml/1.1.0/_type/omap.js +0 -29
- package/esm/deps/jsr.io/@std/yaml/1.1.0/_type/pairs.d.ts +0 -3
- package/esm/deps/jsr.io/@std/yaml/1.1.0/_type/pairs.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/yaml/1.1.0/_type/pairs.js +0 -19
- package/esm/deps/jsr.io/@std/yaml/1.1.0/_type/regexp.d.ts +0 -3
- package/esm/deps/jsr.io/@std/yaml/1.1.0/_type/regexp.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/yaml/1.1.0/_type/regexp.js +0 -30
- package/esm/deps/jsr.io/@std/yaml/1.1.0/_type/seq.d.ts +0 -3
- package/esm/deps/jsr.io/@std/yaml/1.1.0/_type/seq.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/yaml/1.1.0/_type/seq.js +0 -10
- package/esm/deps/jsr.io/@std/yaml/1.1.0/_type/set.d.ts +0 -3
- package/esm/deps/jsr.io/@std/yaml/1.1.0/_type/set.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/yaml/1.1.0/_type/set.js +0 -14
- package/esm/deps/jsr.io/@std/yaml/1.1.0/_type/str.d.ts +0 -3
- package/esm/deps/jsr.io/@std/yaml/1.1.0/_type/str.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/yaml/1.1.0/_type/str.js +0 -9
- package/esm/deps/jsr.io/@std/yaml/1.1.0/_type/timestamp.d.ts +0 -3
- package/esm/deps/jsr.io/@std/yaml/1.1.0/_type/timestamp.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/yaml/1.1.0/_type/timestamp.js +0 -81
- package/esm/deps/jsr.io/@std/yaml/1.1.0/_type/undefined.d.ts +0 -3
- package/esm/deps/jsr.io/@std/yaml/1.1.0/_type/undefined.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/yaml/1.1.0/_type/undefined.js +0 -20
- package/esm/deps/jsr.io/@std/yaml/1.1.0/_type.d.ts +0 -32
- package/esm/deps/jsr.io/@std/yaml/1.1.0/_type.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/yaml/1.1.0/_type.js +0 -6
- package/esm/deps/jsr.io/@std/yaml/1.1.0/_utils.d.ts +0 -4
- package/esm/deps/jsr.io/@std/yaml/1.1.0/_utils.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/yaml/1.1.0/_utils.js +0 -13
- package/esm/deps/jsr.io/@std/yaml/1.1.0/parse.d.ts +0 -76
- package/esm/deps/jsr.io/@std/yaml/1.1.0/parse.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/yaml/1.1.0/parse.js +0 -91
package/esm/deno.d.ts
CHANGED
|
@@ -343,6 +343,10 @@ declare namespace _default {
|
|
|
343
343
|
"#std/async.ts": string;
|
|
344
344
|
"#std/front-matter/yaml": string;
|
|
345
345
|
"#std/front-matter/yaml.ts": string;
|
|
346
|
+
"#std/yaml": string;
|
|
347
|
+
"#std/yaml.ts": string;
|
|
348
|
+
"#std/yaml/parse": string;
|
|
349
|
+
"#std/yaml/parse.ts": string;
|
|
346
350
|
"@std/path": string;
|
|
347
351
|
"@std/assert": string;
|
|
348
352
|
"@std/dotenv": string;
|
|
@@ -430,6 +434,7 @@ declare namespace _default {
|
|
|
430
434
|
"docs:check-links": string;
|
|
431
435
|
"lint:ban-zod": string;
|
|
432
436
|
"lint:core-deps": string;
|
|
437
|
+
"lint:cross-runtime-jsr": string;
|
|
433
438
|
"lint:dependency-boundaries": string;
|
|
434
439
|
"lint:module-boundaries": string;
|
|
435
440
|
"lint:extension-contracts": string;
|
package/esm/deno.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export default {
|
|
2
2
|
"name": "veryfront",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1227",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"nodeModulesDir": "auto",
|
|
6
6
|
"minimumDependencyAge": {
|
|
@@ -413,6 +413,10 @@ export default {
|
|
|
413
413
|
"#std/async.ts": "jsr:@std/async@1.2.0",
|
|
414
414
|
"#std/front-matter/yaml": "./src/platform/compat/std/front-matter-yaml.ts",
|
|
415
415
|
"#std/front-matter/yaml.ts": "./src/platform/compat/std/front-matter-yaml.ts",
|
|
416
|
+
"#std/yaml": "./src/platform/compat/std/yaml.ts",
|
|
417
|
+
"#std/yaml.ts": "./src/platform/compat/std/yaml.ts",
|
|
418
|
+
"#std/yaml/parse": "./src/platform/compat/std/yaml.ts",
|
|
419
|
+
"#std/yaml/parse.ts": "./src/platform/compat/std/yaml.ts",
|
|
416
420
|
"@std/path": "jsr:@std/path@1.1.4",
|
|
417
421
|
"@std/assert": "jsr:@std/assert@1.0.19",
|
|
418
422
|
"@std/dotenv": "jsr:@std/dotenv@0.225.6",
|
|
@@ -420,7 +424,7 @@ export default {
|
|
|
420
424
|
"@std/fmt/colors": "jsr:@std/fmt@1.0.9/colors",
|
|
421
425
|
"@std/testing": "jsr:@std/testing@1.0.17",
|
|
422
426
|
"@std/testing/bdd": "jsr:@std/testing@1.0.17/bdd",
|
|
423
|
-
"@std/yaml/parse": "
|
|
427
|
+
"@std/yaml/parse": "./src/platform/compat/std/yaml.ts",
|
|
424
428
|
"@std/expect": "jsr:@std/expect@1.0.18",
|
|
425
429
|
"@std/fs": "jsr:@std/fs@1.0.23",
|
|
426
430
|
"@std/async": "jsr:@std/async@1.2.0",
|
|
@@ -485,12 +489,12 @@ export default {
|
|
|
485
489
|
"build:storybook": "npm --prefix storybook run build-storybook",
|
|
486
490
|
"storybook:check": "deno test --no-lock --config=scripts/test.deno.json --no-check --allow-read scripts/storybook/storybook-workbench.test.ts",
|
|
487
491
|
"lint": "DENO_NO_PACKAGE_JSON=1 deno lint && deno lint --config=scripts/test.deno.json scripts/test/ scripts/build/dnt-polyfill.ts scripts/build/dnt-polyfill.test.ts scripts/build/npm-package-metadata.test.ts scripts/build/prepare-framework-sources.test.ts && deno lint --config=scripts/codemods/deno.json scripts/codemods/",
|
|
488
|
-
"lint:ci": "deno task lint && deno task lint:core-deps && deno task lint:dependency-boundaries && deno task lint:module-boundaries && deno task lint:extension-contracts && deno task lint:extension-capabilities && deno task lint:ban-test-only && deno task lint:sanitizer-baseline && deno task lint:skipped-tests && deno task lint:chat-ratchets && deno task lint:esm-sh-codemod && deno task lint:test-typecheck && deno task storybook:check && deno task docs:api-reference:check && deno test --frozen --config=scripts/test.deno.json --no-check --allow-read --allow-write scripts/ci/setup-deno-workflow.test.ts scripts/build/generated-artifact-checks.test.ts",
|
|
492
|
+
"lint:ci": "deno task lint && deno task lint:core-deps && deno task lint:cross-runtime-jsr && deno task lint:dependency-boundaries && deno task lint:module-boundaries && deno task lint:extension-contracts && deno task lint:extension-capabilities && deno task lint:ban-test-only && deno task lint:sanitizer-baseline && deno task lint:skipped-tests && deno task lint:chat-ratchets && deno task lint:esm-sh-codemod && deno task lint:test-typecheck && deno task storybook:check && deno task docs:api-reference:check && deno test --frozen --config=scripts/test.deno.json --no-check --allow-read --allow-write scripts/ci/setup-deno-workflow.test.ts scripts/build/generated-artifact-checks.test.ts",
|
|
489
493
|
"fmt": "deno fmt src/ cli/ react/ && deno fmt --config=scripts/test.deno.json scripts/test/ scripts/build/dnt-polyfill.ts scripts/build/dnt-polyfill.test.ts scripts/build/prepare-framework-sources.test.ts && deno fmt --config=scripts/codemods/deno.json scripts/codemods/",
|
|
490
494
|
"fmt:check": "deno fmt --check src/ cli/ react/ && deno fmt --check --config=scripts/test.deno.json scripts/test/ scripts/build/dnt-polyfill.ts scripts/build/dnt-polyfill.test.ts scripts/build/prepare-framework-sources.test.ts && deno fmt --check --config=scripts/codemods/deno.json scripts/codemods/",
|
|
491
495
|
"typecheck": "deno task generate:manifests:check && deno check src/index.ts cli/main.ts src/server/index.ts src/routing/api/index.ts src/rendering/index.ts src/platform/index.ts src/platform/adapters/index.ts src/build/index.ts src/build/production-build/index.ts src/transforms/index.ts src/config/index.ts src/utils/index.ts src/data/index.ts src/security/index.ts src/middleware/index.ts src/server/handlers/dev/index.ts src/server/handlers/request/api/index.ts src/rendering/cache/index.ts src/rendering/cache/stores/index.ts src/rendering/rsc/actions/index.ts src/html/index.ts src/html/hydration-script-builder/runtime/main.ts src/modules/index.ts src/proxy/main.ts src/react/components/ui/index.ts src/chat/index.ts src/markdown/index.ts src/mdx/index.ts src/fs/index.ts src/oauth/index.ts src/agent/index.ts src/agent/service/route-export.check.ts src/eval/index.ts src/tool/index.ts src/workflow/index.ts src/prompt/index.ts src/resource/index.ts src/runs/index.ts src/mcp/index.ts src/provider/index.ts",
|
|
492
|
-
"verify": "deno task generate:manifests:check && deno task fmt:check && deno task lint && deno task lint:style && deno task lint:chat-composability && deno task lint:chat-ratchets && deno task lint:esm-sh-codemod && deno task lint:cli-boundary && deno task lint:wildcard-exports && deno task lint:barrel-jsdoc && deno task lint:ban-test-only && deno task lint:sanitizer-baseline && deno task lint:skipped-tests && deno task lint:ban-zod && deno task lint:core-deps && deno task lint:dependency-boundaries && deno task lint:module-boundaries && deno task lint:extension-contracts && deno task lint:extension-capabilities && deno task docs:api-reference:check && deno task docs:validate && deno task typecheck && deno task typecheck:consumer && deno task test && deno task test:scripts && deno task test:e2e:binary",
|
|
493
|
-
"verify:quick": "deno task generate:manifests:check && deno task fmt:check && deno task lint && deno task lint:style && deno task lint:chat-composability && deno task lint:chat-ratchets && deno task lint:esm-sh-codemod && deno task lint:cli-boundary && deno task lint:wildcard-exports && deno task lint:barrel-jsdoc && deno task lint:ban-test-only && deno task lint:sanitizer-baseline && deno task lint:skipped-tests && deno task lint:ban-zod && deno task lint:core-deps && deno task lint:dependency-boundaries && deno task lint:module-boundaries && deno task lint:extension-contracts && deno task lint:extension-capabilities && deno task docs:api-reference:check && deno task docs:validate && deno task typecheck",
|
|
496
|
+
"verify": "deno task generate:manifests:check && deno task fmt:check && deno task lint && deno task lint:style && deno task lint:chat-composability && deno task lint:chat-ratchets && deno task lint:esm-sh-codemod && deno task lint:cli-boundary && deno task lint:wildcard-exports && deno task lint:barrel-jsdoc && deno task lint:ban-test-only && deno task lint:sanitizer-baseline && deno task lint:skipped-tests && deno task lint:ban-zod && deno task lint:core-deps && deno task lint:cross-runtime-jsr && deno task lint:dependency-boundaries && deno task lint:module-boundaries && deno task lint:extension-contracts && deno task lint:extension-capabilities && deno task docs:api-reference:check && deno task docs:validate && deno task typecheck && deno task typecheck:consumer && deno task test && deno task test:scripts && deno task test:e2e:binary",
|
|
497
|
+
"verify:quick": "deno task generate:manifests:check && deno task fmt:check && deno task lint && deno task lint:style && deno task lint:chat-composability && deno task lint:chat-ratchets && deno task lint:esm-sh-codemod && deno task lint:cli-boundary && deno task lint:wildcard-exports && deno task lint:barrel-jsdoc && deno task lint:ban-test-only && deno task lint:sanitizer-baseline && deno task lint:skipped-tests && deno task lint:ban-zod && deno task lint:core-deps && deno task lint:cross-runtime-jsr && deno task lint:dependency-boundaries && deno task lint:module-boundaries && deno task lint:extension-contracts && deno task lint:extension-capabilities && deno task docs:api-reference:check && deno task docs:validate && deno task typecheck",
|
|
494
498
|
"typecheck:consumer": "deno run --allow-read --allow-run --allow-env --allow-write scripts/typecheck/run-consumer-typecheck.ts",
|
|
495
499
|
"codemod:chat": "deno run --frozen --config=scripts/codemods/deno.json --allow-read --allow-write --allow-env=BABEL_TYPES_8_BREAKING scripts/codemods/migrate-chat-composition.ts",
|
|
496
500
|
"codemod:esm-sh": "deno run --frozen --config=scripts/codemods/deno.json --allow-read --allow-write --allow-env=BABEL_TYPES_8_BREAKING scripts/codemods/migrate-esm-sh-imports.ts",
|
|
@@ -506,6 +510,7 @@ export default {
|
|
|
506
510
|
"docs:check-links": "deno run -A scripts/lint/check-doc-links.ts",
|
|
507
511
|
"lint:ban-zod": "deno run --allow-read scripts/lint/ban-zod-imports.ts",
|
|
508
512
|
"lint:core-deps": "deno run --allow-read scripts/lint/audit-core-deps.ts",
|
|
513
|
+
"lint:cross-runtime-jsr": "deno run --allow-read scripts/lint/audit-cross-runtime-jsr.ts",
|
|
509
514
|
"lint:dependency-boundaries": "deno run --allow-read scripts/lint/audit-dependency-boundaries.ts",
|
|
510
515
|
"lint:module-boundaries": "DENO_NO_PACKAGE_JSON=1 deno run --frozen --allow-read scripts/lint/check-module-boundaries.ts",
|
|
511
516
|
"lint:extension-contracts": "deno run --config=scripts/test.deno.json --frozen --allow-read scripts/lint/audit-extension-contracts.ts",
|
|
@@ -527,7 +532,7 @@ export default {
|
|
|
527
532
|
"lint:ban-test-only": "deno run --allow-read scripts/lint/ban-test-only.ts",
|
|
528
533
|
"lint:sanitizer-baseline": "deno run --allow-read scripts/lint/check-sanitizer-baseline.ts",
|
|
529
534
|
"lint:skipped-tests": "deno run --allow-read scripts/lint/check-skipped-tests-baseline.ts",
|
|
530
|
-
"test:scripts": "deno test --config=scripts/test.deno.json --no-check --allow-read --allow-write --allow-run scripts/ci/publish-npm-packages.test.ts scripts/ci/setup-deno-workflow.test.ts scripts/build/compile-binary.test.ts scripts/build/dnt-polyfill.test.ts scripts/build/generate-sbom.test.ts scripts/build/generated-artifact-checks.test.ts scripts/build/npm-dependency-sources.test.ts scripts/build/npm-extension-package-metadata.test.ts scripts/build/npm-package-metadata.test.ts scripts/build/npm-react-shims.test.ts scripts/build/npm-runtime-helper-contract.test.ts scripts/build/prepare-framework-sources.test.ts scripts/docs/docs-coverage.test.ts scripts/docs/generate-api-reference.test.ts scripts/docs/guide-validation.test.ts scripts/lint/audit-core-deps.test.ts scripts/lint/audit-dependency-boundaries.test.ts scripts/lint/audit-extension-capabilities.test.ts scripts/lint/audit-extension-contracts.test.ts scripts/lint/audit-deps.test.ts scripts/lint/check-module-boundaries.test.ts scripts/lint/lint-config.test.ts scripts/lint/ban-test-only.test.ts scripts/lint/check-sanitizer-baseline.test.ts scripts/lint/check-skipped-tests-baseline.test.ts scripts/lint/check-test-typecheck-baseline.test.ts scripts/lint/check-coverage.test.ts scripts/security/audit-npm.test.ts scripts/security/submit-dependency-snapshot.test.ts && deno task test:tool-search-live",
|
|
535
|
+
"test:scripts": "deno test --config=scripts/test.deno.json --no-check --allow-read --allow-write --allow-run scripts/ci/publish-npm-packages.test.ts scripts/ci/setup-deno-workflow.test.ts scripts/build/compile-binary.test.ts scripts/build/dnt-polyfill.test.ts scripts/build/generate-sbom.test.ts scripts/build/generated-artifact-checks.test.ts scripts/build/npm-dependency-sources.test.ts scripts/build/npm-extension-package-metadata.test.ts scripts/build/npm-package-metadata.test.ts scripts/build/npm-react-shims.test.ts scripts/build/npm-runtime-helper-contract.test.ts scripts/build/prepare-framework-sources.test.ts scripts/docs/docs-coverage.test.ts scripts/docs/generate-api-reference.test.ts scripts/docs/guide-validation.test.ts scripts/lint/audit-core-deps.test.ts scripts/lint/audit-cross-runtime-jsr.test.ts scripts/lint/audit-dependency-boundaries.test.ts scripts/lint/audit-extension-capabilities.test.ts scripts/lint/audit-extension-contracts.test.ts scripts/lint/audit-deps.test.ts scripts/lint/check-module-boundaries.test.ts scripts/lint/lint-config.test.ts scripts/lint/ban-test-only.test.ts scripts/lint/check-sanitizer-baseline.test.ts scripts/lint/check-skipped-tests-baseline.test.ts scripts/lint/check-test-typecheck-baseline.test.ts scripts/lint/check-coverage.test.ts scripts/security/audit-npm.test.ts scripts/security/submit-dependency-snapshot.test.ts && deno task test:tool-search-live",
|
|
531
536
|
"test:sentry-runtime-packages": "deno test --config=scripts/test.deno.json --no-check --no-lock --allow-read --allow-write --allow-run --allow-env=DENO_DIR,HOME,XDG_CACHE_HOME,LOCALAPPDATA,USERPROFILE scripts/build/sentry-runtime-packages.test.ts",
|
|
532
537
|
"test:tool-search-live": "VF_DISABLE_LRU_INTERVAL=1 deno test --no-check -A tests/agent/verify-tool-search-live.test.ts",
|
|
533
538
|
"test:cross-runtime": "deno run --allow-all src/platform/compat/cross-runtime.test.ts",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hosted-chat-finalization.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/hosted/hosted-chat-finalization.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAuC,MAAM,qBAAqB,CAAC;AAO9F,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,2CAA2C,CAAC;
|
|
1
|
+
{"version":3,"file":"hosted-chat-finalization.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/hosted/hosted-chat-finalization.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAuC,MAAM,qBAAqB,CAAC;AAO9F,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,2CAA2C,CAAC;AAExF,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,qCAAqC,CAAC;AAe/F,KAAK,4BAA4B,GAAG;IAClC,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;CACtE,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,YAAY,EAAE;QAAE,KAAK,EAAE,WAAW,CAAC,SAAS,OAAO,EAAE,CAAC,CAAA;KAAE,CAAC;IACzD,gBAAgB,EAAE,mCAAmC,CAAC;IACtD,sBAAsB,EAAE,sBAAsB,CAAC;IAC/C,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,gCAAgC,EAAE,MAAM,CAAC;IACzC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,4BAA4B,CAAC;IACtC,WAAW,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAClC,4BAA4B,GAC5B,CACE;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,eAAe,EAAE,aAAa,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,GACxE;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IAAC,qBAAqB,EAAE,OAAO,CAAA;CAAE,CAC3E,CAAC;AA4QJ,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,0BAA0B,GAChC,OAAO,CAAC,IAAI,CAAC,CA8Ef"}
|
|
@@ -2,7 +2,7 @@ import { extractChatMessageMetadata } from "../../chat/chat-ui-message-helpers.j
|
|
|
2
2
|
import { isToolUiPart } from "../../chat/conversation.js";
|
|
3
3
|
import { getLastStreamStep } from "../../chat/final-step-fallback.js";
|
|
4
4
|
import { dispatchConversationHostedTerminalState, resolveConversationHostedTerminalState, toConversationHostedTerminalState, } from "../conversation/hosted-terminal.js";
|
|
5
|
-
import { hasCompletedStepSignal,
|
|
5
|
+
import { hasCompletedStepSignal, isStreamTimeoutError } from "../streaming/stream-outcome.js";
|
|
6
6
|
import { buildDetachedFallbackChunks, buildDetachedFallbackMessageState, buildFinalizedMessageFallbackChunks, buildFinalizedMessageState, } from "./finalized-message.js";
|
|
7
7
|
import { getEmptyHostedFinalizedMessageTerminalError, shouldFailEmptyHostedFinalizedMessage, } from "./stream-terminal-error.js";
|
|
8
8
|
const FINALIZATION_TERMINAL_STATE_FALLBACK_MODEL_ID = "";
|
|
@@ -140,7 +140,7 @@ function shouldFailStreamError(input) {
|
|
|
140
140
|
}
|
|
141
141
|
if (input.hasOutput &&
|
|
142
142
|
hasFinalStepCompletionSignal(input.finalStep) &&
|
|
143
|
-
|
|
143
|
+
!isStreamTimeoutError(input.streamError)) {
|
|
144
144
|
return false;
|
|
145
145
|
}
|
|
146
146
|
return true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream-terminal-error.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/hosted/stream-terminal-error.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"stream-terminal-error.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/hosted/stream-terminal-error.ts"],"names":[],"mappings":"AAoDA,8CAA8C;AAC9C,MAAM,MAAM,yBAAyB,GAAG;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAkDF,uCAAuC;AACvC,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,OAAO,GAAG,MAAM,CAErE;AAED,mEAAmE;AACnE,wBAAgB,2CAA2C,CAAC,KAAK,EAAE;IACjE,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CAC9B,GAAG,yBAAyB,CAQ5B;AAED,4DAA4D;AAC5D,wBAAgB,qCAAqC,CAAC,KAAK,EAAE;IAC3D,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE;QAAE,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,CAAA;KAAE,CAAC;CAC5C,GAAG,OAAO,CAEV"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { isRecord } from "../../chat/conversation.js";
|
|
2
2
|
import { extractFinalStepTerminalError } from "../../chat/final-step-fallback.js";
|
|
3
3
|
import { parseProviderError } from "../../chat/provider-errors.js";
|
|
4
|
+
import { isStreamTimeoutError } from "../streaming/stream-outcome.js";
|
|
4
5
|
const EMPTY_RESPONSE_TERMINAL_ERROR_CODE = "EMPTY_RESPONSE";
|
|
5
6
|
const EMPTY_RESPONSE_TERMINAL_ERROR_MESSAGE = "Assistant completed without producing a response";
|
|
6
7
|
const EXTERNAL_SERVICE_ERROR_CODE = "EXTERNAL_SERVICE_ERROR";
|
|
@@ -31,12 +32,7 @@ function formatTimeoutDuration(input) {
|
|
|
31
32
|
}
|
|
32
33
|
function getHostedStreamTimeoutTerminalError(error) {
|
|
33
34
|
const message = getUnknownErrorMessage(error).trim();
|
|
34
|
-
|
|
35
|
-
const isTimeout = normalized.includes("stream timed out") ||
|
|
36
|
-
normalized.includes("chat stream idle timeout") ||
|
|
37
|
-
normalized.includes("chat stream bootstrap timeout") ||
|
|
38
|
-
normalized.includes("stream timeout");
|
|
39
|
-
if (!isTimeout) {
|
|
35
|
+
if (!isStreamTimeoutError(error)) {
|
|
40
36
|
return null;
|
|
41
37
|
}
|
|
42
38
|
const duration = formatTimeoutDuration(message);
|
|
@@ -16,6 +16,8 @@ export declare function getStreamErrorMessage(error: unknown): string;
|
|
|
16
16
|
* when output and a completion signal are present.
|
|
17
17
|
*/
|
|
18
18
|
export declare function isLateProviderBodyReadError(error: unknown): boolean;
|
|
19
|
+
/** True when a thrown stream error represents a lifecycle or watchdog timeout. */
|
|
20
|
+
export declare function isStreamTimeoutError(error: unknown): boolean;
|
|
19
21
|
/** True when the provider finish reason marks a completed step. */
|
|
20
22
|
export declare function hasCompletedStepSignal(finishReason: string | null): boolean;
|
|
21
23
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream-outcome.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/streaming/stream-outcome.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,mFAAmF;AACnF,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAiB5D;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAEnE;AAED,mEAAmE;AACnE,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAW3E;AAED;;;;GAIG;AACH,wBAAgB,iCAAiC,CAAC,KAAK,EAAE,OAAO,GAAG;IACjE,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG,IAAI,CAaP;AAED,OAAO,KAAK,EACV,wBAAwB,EACxB,uBAAuB,EACvB,oBAAoB,EACpB,aAAa,EACb,mBAAmB,EACnB,cAAc,EACf,MAAM,sBAAsB,CAAC;AAE9B,wDAAwD;AACxD,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,cAAc,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,wBAAwB,CAAC;IACxC,cAAc,CAAC,EAAE,oBAAoB,CAAC;IACtC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,mBAAmB,CAAC;CACrC;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,yBAAyB,GAC/B,aAAa,CAqDf;AAED,qEAAqE;AACrE,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,QAAQ,CAAC,cAAc,CAAC,GACjC,uBAAuB,EAAE,CAa3B"}
|
|
1
|
+
{"version":3,"file":"stream-outcome.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/streaming/stream-outcome.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,mFAAmF;AACnF,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAiB5D;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAEnE;AAED,kFAAkF;AAClF,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAM5D;AAED,mEAAmE;AACnE,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAW3E;AAED;;;;GAIG;AACH,wBAAgB,iCAAiC,CAAC,KAAK,EAAE,OAAO,GAAG;IACjE,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG,IAAI,CAaP;AAED,OAAO,KAAK,EACV,wBAAwB,EACxB,uBAAuB,EACvB,oBAAoB,EACpB,aAAa,EACb,mBAAmB,EACnB,cAAc,EACf,MAAM,sBAAsB,CAAC;AAE9B,wDAAwD;AACxD,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,cAAc,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,wBAAwB,CAAC;IACxC,cAAc,CAAC,EAAE,oBAAoB,CAAC;IACtC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,mBAAmB,CAAC;CACrC;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,yBAAyB,GAC/B,aAAa,CAqDf;AAED,qEAAqE;AACrE,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,QAAQ,CAAC,cAAc,CAAC,GACjC,uBAAuB,EAAE,CAa3B"}
|
|
@@ -31,6 +31,14 @@ export function getStreamErrorMessage(error) {
|
|
|
31
31
|
export function isLateProviderBodyReadError(error) {
|
|
32
32
|
return /error reading a body from connection/i.test(getStreamErrorMessage(error));
|
|
33
33
|
}
|
|
34
|
+
/** True when a thrown stream error represents a lifecycle or watchdog timeout. */
|
|
35
|
+
export function isStreamTimeoutError(error) {
|
|
36
|
+
const normalized = getStreamErrorMessage(error).trim().toLowerCase();
|
|
37
|
+
return normalized.includes("stream timed out") ||
|
|
38
|
+
normalized.includes("chat stream idle timeout") ||
|
|
39
|
+
normalized.includes("chat stream bootstrap timeout") ||
|
|
40
|
+
normalized.includes("stream timeout");
|
|
41
|
+
}
|
|
34
42
|
/** True when the provider finish reason marks a completed step. */
|
|
35
43
|
export function hasCompletedStepSignal(finishReason) {
|
|
36
44
|
switch (finishReason) {
|
|
@@ -92,7 +100,7 @@ export function resolveStreamOutcome(input) {
|
|
|
92
100
|
if (input.thrownError !== undefined &&
|
|
93
101
|
!(input.snapshot.hasStreamOutput &&
|
|
94
102
|
hasCompletedStepSignal(input.snapshot.finishReason) &&
|
|
95
|
-
|
|
103
|
+
!isStreamTimeoutError(input.thrownError))) {
|
|
96
104
|
return failedClassifiedProviderOutcome(input, input.providerError ?? classifyThrownProviderError(input.thrownError));
|
|
97
105
|
}
|
|
98
106
|
if (input.thrownError === undefined && input.providerError) {
|
|
@@ -30,7 +30,7 @@ async function parseManually(content) {
|
|
|
30
30
|
}));
|
|
31
31
|
}
|
|
32
32
|
try {
|
|
33
|
-
const { parse } = await import("
|
|
33
|
+
const { parse } = await import("../../../platform/compat/std/yaml.js");
|
|
34
34
|
const parsed = parse(frontmatterText);
|
|
35
35
|
const frontmatter = (parsed && typeof parsed === "object" ? parsed : {});
|
|
36
36
|
return { frontmatter, content: String(mdxBody) };
|
|
@@ -23,7 +23,7 @@ async function extractFrontmatter(mdxContent) {
|
|
|
23
23
|
if (!match?.[1])
|
|
24
24
|
return { frontmatter: {}, content: mdxContent };
|
|
25
25
|
try {
|
|
26
|
-
const { parse } = await import("
|
|
26
|
+
const { parse } = await import("../../platform/compat/std/yaml.js");
|
|
27
27
|
const parsed = parse(match[1]);
|
|
28
28
|
const frontmatter = (parsed && typeof parsed === "object" ? parsed : {});
|
|
29
29
|
if (!match[2]) {
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Parser category barrel — CodeParser (AST traversal)
|
|
2
|
+
* Parser category barrel — CodeParser (AST traversal), SkillDocumentParser
|
|
3
|
+
* (Skill frontmatter decoding), and YamlParser (general YAML decoding)
|
|
4
|
+
* contracts.
|
|
3
5
|
*
|
|
4
6
|
* @module extensions/parser
|
|
5
7
|
*/
|
|
6
8
|
import "../../../_dnt.polyfills.js";
|
|
7
9
|
export type { ASTNode, CodeParser, FunctionDirectiveOptions, GenerateOptions, GenerateResult, InjectJsxNodePositionsOptions, NodePath, ParseOptions, TraverseVisitor, } from "./code-parser.js";
|
|
8
10
|
export { createSkillDocumentParserProvider, type SkillDocumentParserProvider, SkillDocumentParserProviderName, snapshotSkillDocumentParserProvider, } from "./skill-document-parser.js";
|
|
11
|
+
export { createYamlParserProvider, snapshotYamlParserProvider, type YamlParseOptions, type YamlParserProvider, YamlParserProviderName, } from "./yaml-parser.js";
|
|
9
12
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/src/extensions/parser/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/src/extensions/parser/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,4BAA4B,CAAC;AAGpC,YAAY,EACV,OAAO,EACP,UAAU,EACV,wBAAwB,EACxB,eAAe,EACf,cAAc,EACd,6BAA6B,EAC7B,QAAQ,EACR,YAAY,EACZ,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,iCAAiC,EACjC,KAAK,2BAA2B,EAChC,+BAA+B,EAC/B,mCAAmC,GACpC,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC1B,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,sBAAsB,GACvB,MAAM,kBAAkB,CAAC"}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Parser category barrel — CodeParser (AST traversal)
|
|
2
|
+
* Parser category barrel — CodeParser (AST traversal), SkillDocumentParser
|
|
3
|
+
* (Skill frontmatter decoding), and YamlParser (general YAML decoding)
|
|
4
|
+
* contracts.
|
|
3
5
|
*
|
|
4
6
|
* @module extensions/parser
|
|
5
7
|
*/
|
|
6
8
|
import "../../../_dnt.polyfills.js";
|
|
7
9
|
export { createSkillDocumentParserProvider, SkillDocumentParserProviderName, snapshotSkillDocumentParserProvider, } from "./skill-document-parser.js";
|
|
10
|
+
export { createYamlParserProvider, snapshotYamlParserProvider, YamlParserProviderName, } from "./yaml-parser.js";
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Product-distribution default for the general YAML parser contract.
|
|
3
|
+
*
|
|
4
|
+
* Mirrors `skill-defaults.ts`: the first-party `ext-yaml` extension owns the
|
|
5
|
+
* third-party parser, and core reaches it through a dynamic import so the root
|
|
6
|
+
* package never statically depends on it. An installation without the
|
|
7
|
+
* extension simply has no default, and the call site raises the registry's
|
|
8
|
+
* missing-extension error.
|
|
9
|
+
*
|
|
10
|
+
* @module extensions/parser/yaml-defaults
|
|
11
|
+
*/
|
|
12
|
+
import { type YamlParserProvider } from "./yaml-parser.js";
|
|
13
|
+
/**
|
|
14
|
+
* Load the product distribution's extension-owned default YAML parser.
|
|
15
|
+
*
|
|
16
|
+
* Returns undefined when the extension is not installed. A load failure
|
|
17
|
+
* *inside* an installed extension is rethrown: that is a broken installation,
|
|
18
|
+
* not an absent one, and hiding it would surface later as a confusing
|
|
19
|
+
* "install @veryfront/ext-yaml" message for an extension that is present.
|
|
20
|
+
*/
|
|
21
|
+
export declare function loadDefaultYamlParserProvider(): Promise<Readonly<YamlParserProvider> | undefined>;
|
|
22
|
+
//# sourceMappingURL=yaml-defaults.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"yaml-defaults.d.ts","sourceRoot":"","sources":["../../../../src/src/extensions/parser/yaml-defaults.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAMH,OAAO,EAA8B,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAqCvF;;;;;;;GAOG;AACH,wBAAsB,6BAA6B,IAAI,OAAO,CAC5D,QAAQ,CAAC,kBAAkB,CAAC,GAAG,SAAS,CACzC,CAoBA"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Product-distribution default for the general YAML parser contract.
|
|
3
|
+
*
|
|
4
|
+
* Mirrors `skill-defaults.ts`: the first-party `ext-yaml` extension owns the
|
|
5
|
+
* third-party parser, and core reaches it through a dynamic import so the root
|
|
6
|
+
* package never statically depends on it. An installation without the
|
|
7
|
+
* extension simply has no default, and the call site raises the registry's
|
|
8
|
+
* missing-extension error.
|
|
9
|
+
*
|
|
10
|
+
* @module extensions/parser/yaml-defaults
|
|
11
|
+
*/
|
|
12
|
+
import { importFirstPartyExtensionModule, isMissingFirstPartyExtensionModule, } from "../first-party-import.js";
|
|
13
|
+
import { snapshotYamlParserProvider } from "./yaml-parser.js";
|
|
14
|
+
const DEFAULT_YAML_SOURCE_DIRECTORY = "ext-yaml";
|
|
15
|
+
const DEFAULT_YAML_EXTENSION_PACKAGE = "@veryfront/ext-yaml";
|
|
16
|
+
const DEFAULT_YAML_FACTORY_EXPORT = "createYamlParser";
|
|
17
|
+
function readProviderFactory(extensionModule) {
|
|
18
|
+
if (extensionModule === null ||
|
|
19
|
+
(typeof extensionModule !== "object" && typeof extensionModule !== "function")) {
|
|
20
|
+
throw new TypeError(`Invalid ${DEFAULT_YAML_EXTENSION_PACKAGE} module: expected a module namespace`);
|
|
21
|
+
}
|
|
22
|
+
let factory;
|
|
23
|
+
try {
|
|
24
|
+
factory = extensionModule.createYamlParser;
|
|
25
|
+
}
|
|
26
|
+
catch (cause) {
|
|
27
|
+
throw new TypeError(`Invalid ${DEFAULT_YAML_EXTENSION_PACKAGE} module: could not read export "${DEFAULT_YAML_FACTORY_EXPORT}"`, { cause });
|
|
28
|
+
}
|
|
29
|
+
if (typeof factory !== "function") {
|
|
30
|
+
throw new TypeError(`Invalid ${DEFAULT_YAML_EXTENSION_PACKAGE} module: export "${DEFAULT_YAML_FACTORY_EXPORT}" must be callable`);
|
|
31
|
+
}
|
|
32
|
+
return factory;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Load the product distribution's extension-owned default YAML parser.
|
|
36
|
+
*
|
|
37
|
+
* Returns undefined when the extension is not installed. A load failure
|
|
38
|
+
* *inside* an installed extension is rethrown: that is a broken installation,
|
|
39
|
+
* not an absent one, and hiding it would surface later as a confusing
|
|
40
|
+
* "install @veryfront/ext-yaml" message for an extension that is present.
|
|
41
|
+
*/
|
|
42
|
+
export async function loadDefaultYamlParserProvider() {
|
|
43
|
+
let extensionModule;
|
|
44
|
+
try {
|
|
45
|
+
extensionModule = await importFirstPartyExtensionModule(DEFAULT_YAML_SOURCE_DIRECTORY, DEFAULT_YAML_EXTENSION_PACKAGE);
|
|
46
|
+
}
|
|
47
|
+
catch (error) {
|
|
48
|
+
if (!isMissingFirstPartyExtensionModule(error, [
|
|
49
|
+
"extensions/ext-yaml/src/index",
|
|
50
|
+
DEFAULT_YAML_EXTENSION_PACKAGE,
|
|
51
|
+
])) {
|
|
52
|
+
throw error;
|
|
53
|
+
}
|
|
54
|
+
return undefined;
|
|
55
|
+
}
|
|
56
|
+
return snapshotYamlParserProvider(readProviderFactory(extensionModule)());
|
|
57
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Extension boundary for general-purpose YAML decoding.
|
|
3
|
+
*
|
|
4
|
+
* Core owns front matter framing, mapping policy, and every call site's
|
|
5
|
+
* downstream validation. Implementations own only YAML decoding, which is the
|
|
6
|
+
* one part that needs a third-party parser and therefore may not live in core.
|
|
7
|
+
*
|
|
8
|
+
* This is a sibling of `SkillDocumentParserProvider`, not an extension of it,
|
|
9
|
+
* for two reasons. First, `snapshotSkillDocumentParserProvider` enforces that
|
|
10
|
+
* a provider has exactly one own key named `parseFrontmatter`; adding a second
|
|
11
|
+
* method would mean weakening an invariant that guards an untrusted Skill
|
|
12
|
+
* document trust boundary. Second, general YAML decoding needs the decoding
|
|
13
|
+
* options (`schema`, `allowDuplicateKeys`) that the Skill contract
|
|
14
|
+
* deliberately withholds so that core, not the extension, fixes Skill policy.
|
|
15
|
+
*
|
|
16
|
+
* @module extensions/parser/yaml-parser
|
|
17
|
+
*/
|
|
18
|
+
/** Stable runtime identifier for the general YAML parser contract. */
|
|
19
|
+
export declare const YamlParserProviderName: "YamlParserProvider";
|
|
20
|
+
/**
|
|
21
|
+
* Decoding options, named after the `@std/yaml` options the framework's call
|
|
22
|
+
* sites already pass so that repointing a call site is a specifier change.
|
|
23
|
+
*/
|
|
24
|
+
export interface YamlParseOptions {
|
|
25
|
+
/**
|
|
26
|
+
* Accept a mapping that repeats a key. Defaults to false: a repeated key is
|
|
27
|
+
* a source defect, and picking a winner silently hides it.
|
|
28
|
+
*/
|
|
29
|
+
readonly allowDuplicateKeys?: boolean;
|
|
30
|
+
/**
|
|
31
|
+
* `"json"` restricts resolution to JSON-representable types. Use it at
|
|
32
|
+
* trust boundaries where a timestamp, a binary blob, or any other
|
|
33
|
+
* implementation-specific tag must not appear in the decoded value.
|
|
34
|
+
*/
|
|
35
|
+
readonly schema?: "core" | "json";
|
|
36
|
+
}
|
|
37
|
+
/** Dependency-free contract implemented by YAML parser extensions. */
|
|
38
|
+
export interface YamlParserProvider {
|
|
39
|
+
/**
|
|
40
|
+
* Decode one YAML document.
|
|
41
|
+
*
|
|
42
|
+
* Implementations must be synchronous, must reject a source holding more
|
|
43
|
+
* than one document, and must raise `SyntaxError` for malformed input. The
|
|
44
|
+
* returned value is untrusted; core validates it at each call site.
|
|
45
|
+
*/
|
|
46
|
+
readonly parseYaml: (source: string, options?: YamlParseOptions) => unknown;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Capture one immutable provider generation.
|
|
50
|
+
*
|
|
51
|
+
* The captured facade re-checks the synchronous contract on every call: an
|
|
52
|
+
* implementation that returns a Promise would otherwise hand a pending value
|
|
53
|
+
* to synchronous call sites that cannot await it, and the resulting `[object
|
|
54
|
+
* Promise]` front matter is far harder to diagnose than a thrown TypeError.
|
|
55
|
+
*/
|
|
56
|
+
export declare function snapshotYamlParserProvider(value: unknown): Readonly<YamlParserProvider>;
|
|
57
|
+
/** Create immutable provider registration metadata from a standalone parser. */
|
|
58
|
+
export declare function createYamlParserProvider(parseYaml: YamlParserProvider["parseYaml"]): Readonly<YamlParserProvider>;
|
|
59
|
+
//# sourceMappingURL=yaml-parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"yaml-parser.d.ts","sourceRoot":"","sources":["../../../../src/src/extensions/parser/yaml-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,sEAAsE;AACtE,eAAO,MAAM,sBAAsB,EAAG,oBAA6B,CAAC;AAEpE;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IACtC;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACnC;AAED,sEAAsE;AACtE,MAAM,WAAW,kBAAkB;IACjC;;;;;;OAMG;IACH,QAAQ,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,KAAK,OAAO,CAAC;CAC7E;AAQD;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,OAAO,GACb,QAAQ,CAAC,kBAAkB,CAAC,CA4B9B;AAED,gFAAgF;AAChF,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,kBAAkB,CAAC,WAAW,CAAC,GACzC,QAAQ,CAAC,kBAAkB,CAAC,CAE9B"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Extension boundary for general-purpose YAML decoding.
|
|
3
|
+
*
|
|
4
|
+
* Core owns front matter framing, mapping policy, and every call site's
|
|
5
|
+
* downstream validation. Implementations own only YAML decoding, which is the
|
|
6
|
+
* one part that needs a third-party parser and therefore may not live in core.
|
|
7
|
+
*
|
|
8
|
+
* This is a sibling of `SkillDocumentParserProvider`, not an extension of it,
|
|
9
|
+
* for two reasons. First, `snapshotSkillDocumentParserProvider` enforces that
|
|
10
|
+
* a provider has exactly one own key named `parseFrontmatter`; adding a second
|
|
11
|
+
* method would mean weakening an invariant that guards an untrusted Skill
|
|
12
|
+
* document trust boundary. Second, general YAML decoding needs the decoding
|
|
13
|
+
* options (`schema`, `allowDuplicateKeys`) that the Skill contract
|
|
14
|
+
* deliberately withholds so that core, not the extension, fixes Skill policy.
|
|
15
|
+
*
|
|
16
|
+
* @module extensions/parser/yaml-parser
|
|
17
|
+
*/
|
|
18
|
+
import { isNativePromiseWithoutHooks } from "../../platform/compat/error-introspection.js";
|
|
19
|
+
/** Stable runtime identifier for the general YAML parser contract. */
|
|
20
|
+
export const YamlParserProviderName = "YamlParserProvider";
|
|
21
|
+
function providerInspectionError() {
|
|
22
|
+
return new TypeError("YAML parser provider must be an object with a callable parseYaml property");
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Capture one immutable provider generation.
|
|
26
|
+
*
|
|
27
|
+
* The captured facade re-checks the synchronous contract on every call: an
|
|
28
|
+
* implementation that returns a Promise would otherwise hand a pending value
|
|
29
|
+
* to synchronous call sites that cannot await it, and the resulting `[object
|
|
30
|
+
* Promise]` front matter is far harder to diagnose than a thrown TypeError.
|
|
31
|
+
*/
|
|
32
|
+
export function snapshotYamlParserProvider(value) {
|
|
33
|
+
if (typeof value !== "object" || value === null)
|
|
34
|
+
throw providerInspectionError();
|
|
35
|
+
const descriptor = Object.getOwnPropertyDescriptor(value, "parseYaml");
|
|
36
|
+
// An accessor descriptor has no own `value`, so a plain `descriptor.value`
|
|
37
|
+
// read would return whatever a poisoned `Object.prototype.value` supplies.
|
|
38
|
+
// Requiring the own property keeps an accessor-backed registration out.
|
|
39
|
+
if (descriptor === undefined ||
|
|
40
|
+
!Object.prototype.hasOwnProperty.call(descriptor, "value") ||
|
|
41
|
+
typeof descriptor.value !== "function") {
|
|
42
|
+
throw providerInspectionError();
|
|
43
|
+
}
|
|
44
|
+
const parseYaml = descriptor.value;
|
|
45
|
+
const facade = {
|
|
46
|
+
parseYaml(source, options) {
|
|
47
|
+
if (typeof source !== "string") {
|
|
48
|
+
throw new TypeError("YAML source must be a string");
|
|
49
|
+
}
|
|
50
|
+
const parsed = Reflect.apply(parseYaml, undefined, [source, options]);
|
|
51
|
+
if (isNativePromiseWithoutHooks(parsed)) {
|
|
52
|
+
throw new TypeError("YAML parser provider must be synchronous");
|
|
53
|
+
}
|
|
54
|
+
return parsed;
|
|
55
|
+
},
|
|
56
|
+
};
|
|
57
|
+
return Object.freeze(facade);
|
|
58
|
+
}
|
|
59
|
+
/** Create immutable provider registration metadata from a standalone parser. */
|
|
60
|
+
export function createYamlParserProvider(parseYaml) {
|
|
61
|
+
return snapshotYamlParserProvider({ parseYaml });
|
|
62
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recommendations.d.ts","sourceRoot":"","sources":["../../../src/src/extensions/recommendations.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"recommendations.d.ts","sourceRoot":"","sources":["../../../src/src/extensions/recommendations.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAgCH,6BAA6B;AAC7B,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE1E"}
|
|
@@ -27,6 +27,10 @@ const recommendations = new Map([
|
|
|
27
27
|
["SqliteStore", "@veryfront/ext-db-sqlite"],
|
|
28
28
|
["SandboxShellToolsProvider", "@veryfront/ext-sandbox-shell-tools"],
|
|
29
29
|
["NodeWebSocketServerProvider", "@veryfront/ext-node-websocket-ws"],
|
|
30
|
+
// Skill frontmatter decoding and general YAML decoding are both satisfied by
|
|
31
|
+
// the single parser bundled in ext-yaml.
|
|
32
|
+
["SkillDocumentParserProvider", "@veryfront/ext-yaml"],
|
|
33
|
+
["YamlParserProvider", "@veryfront/ext-yaml"],
|
|
30
34
|
]);
|
|
31
35
|
/** Return recommendation. */
|
|
32
36
|
export function getRecommendation(contractName) {
|