2026-06-16 14:55:37 +08:00
|
|
|
lockfileVersion: '9.0'
|
|
|
|
|
|
|
|
|
|
settings:
|
|
|
|
|
autoInstallPeers: true
|
|
|
|
|
excludeLinksFromLockfile: false
|
|
|
|
|
|
|
|
|
|
importers:
|
|
|
|
|
|
|
|
|
|
.:
|
|
|
|
|
devDependencies:
|
2026-06-16 23:40:23 +08:00
|
|
|
'@agentclientprotocol/sdk':
|
|
|
|
|
specifier: 0.25.1
|
|
|
|
|
version: 0.25.1(zod@4.4.3)
|
2026-06-16 14:55:37 +08:00
|
|
|
'@stylistic/eslint-plugin':
|
|
|
|
|
specifier: ^5.10.0
|
|
|
|
|
version: 5.10.0(eslint@10.5.0(jiti@2.7.0))
|
2026-07-03 01:32:01 +08:00
|
|
|
'@types/jsdom':
|
|
|
|
|
specifier: ^28.0.3
|
|
|
|
|
version: 28.0.3
|
refactor: detect md hard-wraps via mdast AST, not regex
Per review feedback (use a real markdown parser with an AST linked to
source positions), rewrite verify-md-wrap to parse each file with
mdast-util-from-markdown (the CommonMark parser behind remark) + the GFM
extension, then flag any `paragraph` node whose source span covers more
than one line.
Why a parser over the hand-rolled line scanner:
- It is a checker, not a formatter — it reports and never rewrites, so
zero cosmetic churn (no emphasis-marker or table-delimiter
normalization, which is why Prettier was rejected for this).
- The AST owns every structural exemption (fenced code of any fence
length, tables, lists, blockquotes, HTML, headings, reference defs),
fixing both bugs the regex version had: it now catches wrapped
list-item / blockquote prose (a `paragraph` inside those nodes) and no
longer false-positives on a longer ```` fence wrapping an inner ```.
Also unwrap two pre-existing hard-wrapped blockquotes (architecture.md,
adding-a-tool.md) that the stricter AST check correctly surfaced.
2026-06-16 23:35:33 +08:00
|
|
|
'@types/mdast':
|
|
|
|
|
specifier: ^4.0.4
|
|
|
|
|
version: 4.0.4
|
2026-06-16 14:55:37 +08:00
|
|
|
'@types/node':
|
|
|
|
|
specifier: ^25.3.5
|
|
|
|
|
version: 25.9.3
|
|
|
|
|
'@vitest/coverage-v8':
|
|
|
|
|
specifier: ^4.1.8
|
|
|
|
|
version: 4.1.8(vitest@4.1.8)
|
|
|
|
|
eslint:
|
|
|
|
|
specifier: ^10.4.1
|
|
|
|
|
version: 10.5.0(jiti@2.7.0)
|
|
|
|
|
fast-check:
|
|
|
|
|
specifier: ^4.8.0
|
|
|
|
|
version: 4.8.0
|
2026-07-03 01:32:01 +08:00
|
|
|
jsdom:
|
|
|
|
|
specifier: 29.1.1
|
|
|
|
|
version: 29.1.1
|
2026-06-16 14:55:37 +08:00
|
|
|
knip:
|
|
|
|
|
specifier: ^6.16.1
|
|
|
|
|
version: 6.16.1
|
|
|
|
|
lefthook:
|
|
|
|
|
specifier: ^2.1.9
|
|
|
|
|
version: 2.1.9
|
refactor: detect md hard-wraps via mdast AST, not regex
Per review feedback (use a real markdown parser with an AST linked to
source positions), rewrite verify-md-wrap to parse each file with
mdast-util-from-markdown (the CommonMark parser behind remark) + the GFM
extension, then flag any `paragraph` node whose source span covers more
than one line.
Why a parser over the hand-rolled line scanner:
- It is a checker, not a formatter — it reports and never rewrites, so
zero cosmetic churn (no emphasis-marker or table-delimiter
normalization, which is why Prettier was rejected for this).
- The AST owns every structural exemption (fenced code of any fence
length, tables, lists, blockquotes, HTML, headings, reference defs),
fixing both bugs the regex version had: it now catches wrapped
list-item / blockquote prose (a `paragraph` inside those nodes) and no
longer false-positives on a longer ```` fence wrapping an inner ```.
Also unwrap two pre-existing hard-wrapped blockquotes (architecture.md,
adding-a-tool.md) that the stricter AST check correctly surfaced.
2026-06-16 23:35:33 +08:00
|
|
|
mdast-util-from-markdown:
|
|
|
|
|
specifier: ^2.0.3
|
|
|
|
|
version: 2.0.3
|
|
|
|
|
mdast-util-gfm:
|
|
|
|
|
specifier: ^3.1.0
|
|
|
|
|
version: 3.1.0
|
2026-07-03 01:32:01 +08:00
|
|
|
mermaid:
|
|
|
|
|
specifier: 11.16.0
|
|
|
|
|
version: 11.16.0
|
refactor: detect md hard-wraps via mdast AST, not regex
Per review feedback (use a real markdown parser with an AST linked to
source positions), rewrite verify-md-wrap to parse each file with
mdast-util-from-markdown (the CommonMark parser behind remark) + the GFM
extension, then flag any `paragraph` node whose source span covers more
than one line.
Why a parser over the hand-rolled line scanner:
- It is a checker, not a formatter — it reports and never rewrites, so
zero cosmetic churn (no emphasis-marker or table-delimiter
normalization, which is why Prettier was rejected for this).
- The AST owns every structural exemption (fenced code of any fence
length, tables, lists, blockquotes, HTML, headings, reference defs),
fixing both bugs the regex version had: it now catches wrapped
list-item / blockquote prose (a `paragraph` inside those nodes) and no
longer false-positives on a longer ```` fence wrapping an inner ```.
Also unwrap two pre-existing hard-wrapped blockquotes (architecture.md,
adding-a-tool.md) that the stricter AST check correctly surfaced.
2026-06-16 23:35:33 +08:00
|
|
|
micromark-extension-gfm:
|
|
|
|
|
specifier: ^3.0.0
|
|
|
|
|
version: 3.0.0
|
2026-06-16 14:55:37 +08:00
|
|
|
publint:
|
|
|
|
|
specifier: ^0.3.21
|
|
|
|
|
version: 0.3.21
|
|
|
|
|
tsdown:
|
|
|
|
|
specifier: ^0.22.2
|
|
|
|
|
version: 0.22.2(oxc-resolver@11.20.0)(publint@0.3.21)(tsx@4.22.4)(typescript@6.0.3)
|
|
|
|
|
tsx:
|
|
|
|
|
specifier: ^4.22.4
|
|
|
|
|
version: 4.22.4
|
|
|
|
|
typescript:
|
|
|
|
|
specifier: ^6.0.3
|
|
|
|
|
version: 6.0.3
|
|
|
|
|
typescript-eslint:
|
|
|
|
|
specifier: ^8.61.0
|
|
|
|
|
version: 8.61.0(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3)
|
|
|
|
|
vite-tsconfig-paths:
|
|
|
|
|
specifier: ^6.1.1
|
|
|
|
|
version: 6.1.1(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0))
|
|
|
|
|
vitest:
|
|
|
|
|
specifier: ^4.1.8
|
2026-07-03 01:32:01 +08:00
|
|
|
version: 4.1.8(@types/node@25.9.3)(@vitest/coverage-v8@4.1.8)(jsdom@29.1.1)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0))
|
2026-06-16 14:55:37 +08:00
|
|
|
|
Reorganize packages into a modular hierarchy
Move the 18 flat packages/<name> packages into role-grouped dirs:
core/, llm/, bash/, session-persistence/, ui/, support/. Group dirs are
pure containers; each package keeps its @deepseek-ai/dsh-* name.
Collapse the per-package tsconfig paths maps (base + typecheck) into one
@deepseek-ai/dsh-* wildcard with a candidate per group, and derive the
publint list from the hierarchy. Update all depth-coupled globs/configs
(workspace, tsdown, vitest, eslint, knip, tsconfig includes/refs,
per-package tsconfigs, generators, doc-script scopes, type-equiv manifest)
and the cross-package/script relative imports in tests.
Fix doc-typecheck's workspacePaths() to parse tsconfig JSONC via the
TypeScript API instead of a regex comment-strip, which corrupted the
new wildcard `/*/` path candidates.
WIP: doc cross-links and package/RFC docs still to update.
2026-06-20 22:55:20 +08:00
|
|
|
packages/bash/bash:
|
|
|
|
|
devDependencies:
|
feat(types): brand bash ids + stop brand erosion; extract Branded to dsh-brand
Type-only change (brands are zero-cost casts; no runtime/wire impact). Closes
the two gaps in the "brand ids that cross package boundaries" policy and fixes
the dependency direction so a capability package never pulls in an unrelated one.
- Extract the `Branded<B>` primitive into a new standalone type-only package
`@deepseek-ai/dsh-brand` (packages/util/brand) with no harness-package deps.
dsh-llm keeps its owned CallId but imports Branded from dsh-brand; dsh-session,
dsh-agent, and dsh-bash all import Branded from there. dsh-bash depends on
dsh-brand ALONE — never on dsh-llm or dsh-session (the architectural fix: a
generic execution backend must not couple to the LLM or session vocabulary).
- Mint BashTaskId + OwnerToken in dsh-bash and thread them through BashTask.id,
the get/ownerOf/list/readOutput/kill seam, the bash-local generation site, and
the dsh-tool-bash validate/access surface. OwnerToken is a DISTINCT brand from
SessionId so the seam stays decoupled; dsh-tool-bash is the single boundary
that casts SessionId -> OwnerToken.
- Brand at the SOURCE, not via mid-pipeline casts: agent-loop's Config types
agents[].id as AgentId and resumeSessionId as SessionId, so the brand enters
at the config boundary and the inner create()/resume casts disappear (only the
genuinely-new per-run session-id string is cast).
- Stop brand erosion: propagate CallId/SessionId/AgentId to the registry/store
Map keys and public params/exports (SessionStore, AgentRegistry + factory
options, the ACP session-id surface + ToolPresenter CallId map, the
persistence coordinator, invariants pendingCalls, the pi-ai tool-call maps).
- Docs: document BashTaskId/OwnerToken in bash.md (type-equiv re-pasted), point
the Branded type-equiv at dsh-brand, fix stale param types in the session/
agent/bash READMEs, regenerate the cordis catalog + module graph.
Implements docs/rfc/proposed/architecture/2026-06-20-branded-ids.md
2026-06-21 07:17:25 +08:00
|
|
|
'@deepseek-ai/dsh-brand':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../util/brand
|
Reorganize packages into a modular hierarchy
Move the 18 flat packages/<name> packages into role-grouped dirs:
core/, llm/, bash/, session-persistence/, ui/, support/. Group dirs are
pure containers; each package keeps its @deepseek-ai/dsh-* name.
Collapse the per-package tsconfig paths maps (base + typecheck) into one
@deepseek-ai/dsh-* wildcard with a candidate per group, and derive the
publint list from the hierarchy. Update all depth-coupled globs/configs
(workspace, tsdown, vitest, eslint, knip, tsconfig includes/refs,
per-package tsconfigs, generators, doc-script scopes, type-equiv manifest)
and the cross-package/script relative imports in tests.
Fix doc-typecheck's workspacePaths() to parse tsconfig JSONC via the
TypeScript API instead of a regex comment-strip, which corrupted the
new wildcard `/*/` path candidates.
WIP: doc cross-links and package/RFC docs still to update.
2026-06-20 22:55:20 +08:00
|
|
|
cordis:
|
|
|
|
|
specifier: ^4.0.0-rc.6
|
|
|
|
|
version: 4.0.0-rc.6(@cordisjs/plugin-include@1.0.4)(@cordisjs/plugin-loader@1.0.0-rc.4)
|
|
|
|
|
|
|
|
|
|
packages/bash/bash-local:
|
2026-06-16 23:40:23 +08:00
|
|
|
dependencies:
|
|
|
|
|
schemastery:
|
Reorganize packages into a modular hierarchy
Move the 18 flat packages/<name> packages into role-grouped dirs:
core/, llm/, bash/, session-persistence/, ui/, support/. Group dirs are
pure containers; each package keeps its @deepseek-ai/dsh-* name.
Collapse the per-package tsconfig paths maps (base + typecheck) into one
@deepseek-ai/dsh-* wildcard with a candidate per group, and derive the
publint list from the hierarchy. Update all depth-coupled globs/configs
(workspace, tsdown, vitest, eslint, knip, tsconfig includes/refs,
per-package tsconfigs, generators, doc-script scopes, type-equiv manifest)
and the cross-package/script relative imports in tests.
Fix doc-typecheck's workspacePaths() to parse tsconfig JSONC via the
TypeScript API instead of a regex comment-strip, which corrupted the
new wildcard `/*/` path candidates.
WIP: doc cross-links and package/RFC docs still to update.
2026-06-20 22:55:20 +08:00
|
|
|
specifier: ^3.18.0
|
2026-06-16 23:40:23 +08:00
|
|
|
version: 3.18.0
|
Reorganize packages into a modular hierarchy
Move the 18 flat packages/<name> packages into role-grouped dirs:
core/, llm/, bash/, session-persistence/, ui/, support/. Group dirs are
pure containers; each package keeps its @deepseek-ai/dsh-* name.
Collapse the per-package tsconfig paths maps (base + typecheck) into one
@deepseek-ai/dsh-* wildcard with a candidate per group, and derive the
publint list from the hierarchy. Update all depth-coupled globs/configs
(workspace, tsdown, vitest, eslint, knip, tsconfig includes/refs,
per-package tsconfigs, generators, doc-script scopes, type-equiv manifest)
and the cross-package/script relative imports in tests.
Fix doc-typecheck's workspacePaths() to parse tsconfig JSONC via the
TypeScript API instead of a regex comment-strip, which corrupted the
new wildcard `/*/` path candidates.
WIP: doc cross-links and package/RFC docs still to update.
2026-06-20 22:55:20 +08:00
|
|
|
devDependencies:
|
|
|
|
|
'@deepseek-ai/dsh-bash':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../bash
|
|
|
|
|
cordis:
|
|
|
|
|
specifier: ^4.0.0-rc.6
|
|
|
|
|
version: 4.0.0-rc.6(@cordisjs/plugin-include@1.0.4)(@cordisjs/plugin-loader@1.0.0-rc.4)
|
|
|
|
|
|
|
|
|
|
packages/bash/tool-bash:
|
2026-06-16 23:40:23 +08:00
|
|
|
devDependencies:
|
|
|
|
|
'@deepseek-ai/dsh-agent':
|
|
|
|
|
specifier: workspace:^
|
Reorganize packages into a modular hierarchy
Move the 18 flat packages/<name> packages into role-grouped dirs:
core/, llm/, bash/, session-persistence/, ui/, support/. Group dirs are
pure containers; each package keeps its @deepseek-ai/dsh-* name.
Collapse the per-package tsconfig paths maps (base + typecheck) into one
@deepseek-ai/dsh-* wildcard with a candidate per group, and derive the
publint list from the hierarchy. Update all depth-coupled globs/configs
(workspace, tsdown, vitest, eslint, knip, tsconfig includes/refs,
per-package tsconfigs, generators, doc-script scopes, type-equiv manifest)
and the cross-package/script relative imports in tests.
Fix doc-typecheck's workspacePaths() to parse tsconfig JSONC via the
TypeScript API instead of a regex comment-strip, which corrupted the
new wildcard `/*/` path candidates.
WIP: doc cross-links and package/RFC docs still to update.
2026-06-20 22:55:20 +08:00
|
|
|
version: link:../../core/agent
|
2026-06-16 23:40:23 +08:00
|
|
|
'@deepseek-ai/dsh-agent-loop':
|
|
|
|
|
specifier: workspace:^
|
Reorganize packages into a modular hierarchy
Move the 18 flat packages/<name> packages into role-grouped dirs:
core/, llm/, bash/, session-persistence/, ui/, support/. Group dirs are
pure containers; each package keeps its @deepseek-ai/dsh-* name.
Collapse the per-package tsconfig paths maps (base + typecheck) into one
@deepseek-ai/dsh-* wildcard with a candidate per group, and derive the
publint list from the hierarchy. Update all depth-coupled globs/configs
(workspace, tsdown, vitest, eslint, knip, tsconfig includes/refs,
per-package tsconfigs, generators, doc-script scopes, type-equiv manifest)
and the cross-package/script relative imports in tests.
Fix doc-typecheck's workspacePaths() to parse tsconfig JSONC via the
TypeScript API instead of a regex comment-strip, which corrupted the
new wildcard `/*/` path candidates.
WIP: doc cross-links and package/RFC docs still to update.
2026-06-20 22:55:20 +08:00
|
|
|
version: link:../../core/agent-loop
|
|
|
|
|
'@deepseek-ai/dsh-bash':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../bash
|
2026-06-18 11:23:12 +08:00
|
|
|
'@deepseek-ai/dsh-bash-local':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../bash-local
|
2026-06-16 23:40:23 +08:00
|
|
|
'@deepseek-ai/dsh-llm':
|
|
|
|
|
specifier: workspace:^
|
Reorganize packages into a modular hierarchy
Move the 18 flat packages/<name> packages into role-grouped dirs:
core/, llm/, bash/, session-persistence/, ui/, support/. Group dirs are
pure containers; each package keeps its @deepseek-ai/dsh-* name.
Collapse the per-package tsconfig paths maps (base + typecheck) into one
@deepseek-ai/dsh-* wildcard with a candidate per group, and derive the
publint list from the hierarchy. Update all depth-coupled globs/configs
(workspace, tsdown, vitest, eslint, knip, tsconfig includes/refs,
per-package tsconfigs, generators, doc-script scopes, type-equiv manifest)
and the cross-package/script relative imports in tests.
Fix doc-typecheck's workspacePaths() to parse tsconfig JSONC via the
TypeScript API instead of a regex comment-strip, which corrupted the
new wildcard `/*/` path candidates.
WIP: doc cross-links and package/RFC docs still to update.
2026-06-20 22:55:20 +08:00
|
|
|
version: link:../../llm/llm
|
2026-06-16 23:40:23 +08:00
|
|
|
'@deepseek-ai/dsh-session':
|
|
|
|
|
specifier: workspace:^
|
Reorganize packages into a modular hierarchy
Move the 18 flat packages/<name> packages into role-grouped dirs:
core/, llm/, bash/, session-persistence/, ui/, support/. Group dirs are
pure containers; each package keeps its @deepseek-ai/dsh-* name.
Collapse the per-package tsconfig paths maps (base + typecheck) into one
@deepseek-ai/dsh-* wildcard with a candidate per group, and derive the
publint list from the hierarchy. Update all depth-coupled globs/configs
(workspace, tsdown, vitest, eslint, knip, tsconfig includes/refs,
per-package tsconfigs, generators, doc-script scopes, type-equiv manifest)
and the cross-package/script relative imports in tests.
Fix doc-typecheck's workspacePaths() to parse tsconfig JSONC via the
TypeScript API instead of a regex comment-strip, which corrupted the
new wildcard `/*/` path candidates.
WIP: doc cross-links and package/RFC docs still to update.
2026-06-20 22:55:20 +08:00
|
|
|
version: link:../../core/session
|
2026-06-16 23:40:23 +08:00
|
|
|
'@deepseek-ai/dsh-system-prompt':
|
|
|
|
|
specifier: workspace:^
|
Reorganize packages into a modular hierarchy
Move the 18 flat packages/<name> packages into role-grouped dirs:
core/, llm/, bash/, session-persistence/, ui/, support/. Group dirs are
pure containers; each package keeps its @deepseek-ai/dsh-* name.
Collapse the per-package tsconfig paths maps (base + typecheck) into one
@deepseek-ai/dsh-* wildcard with a candidate per group, and derive the
publint list from the hierarchy. Update all depth-coupled globs/configs
(workspace, tsdown, vitest, eslint, knip, tsconfig includes/refs,
per-package tsconfigs, generators, doc-script scopes, type-equiv manifest)
and the cross-package/script relative imports in tests.
Fix doc-typecheck's workspacePaths() to parse tsconfig JSONC via the
TypeScript API instead of a regex comment-strip, which corrupted the
new wildcard `/*/` path candidates.
WIP: doc cross-links and package/RFC docs still to update.
2026-06-20 22:55:20 +08:00
|
|
|
version: link:../../core/system-prompt
|
2026-06-16 23:40:23 +08:00
|
|
|
'@deepseek-ai/dsh-tools':
|
|
|
|
|
specifier: workspace:^
|
Reorganize packages into a modular hierarchy
Move the 18 flat packages/<name> packages into role-grouped dirs:
core/, llm/, bash/, session-persistence/, ui/, support/. Group dirs are
pure containers; each package keeps its @deepseek-ai/dsh-* name.
Collapse the per-package tsconfig paths maps (base + typecheck) into one
@deepseek-ai/dsh-* wildcard with a candidate per group, and derive the
publint list from the hierarchy. Update all depth-coupled globs/configs
(workspace, tsdown, vitest, eslint, knip, tsconfig includes/refs,
per-package tsconfigs, generators, doc-script scopes, type-equiv manifest)
and the cross-package/script relative imports in tests.
Fix doc-typecheck's workspacePaths() to parse tsconfig JSONC via the
TypeScript API instead of a regex comment-strip, which corrupted the
new wildcard `/*/` path candidates.
WIP: doc cross-links and package/RFC docs still to update.
2026-06-20 22:55:20 +08:00
|
|
|
version: link:../../core/tools
|
2026-06-16 23:40:23 +08:00
|
|
|
cordis:
|
|
|
|
|
specifier: ^4.0.0-rc.6
|
|
|
|
|
version: 4.0.0-rc.6(@cordisjs/plugin-include@1.0.4)(@cordisjs/plugin-loader@1.0.0-rc.4)
|
|
|
|
|
|
2026-06-22 14:52:30 +08:00
|
|
|
packages/compact/compact:
|
|
|
|
|
devDependencies:
|
|
|
|
|
'@deepseek-ai/dsh-llm':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../llm/llm
|
|
|
|
|
'@deepseek-ai/dsh-session':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/session
|
|
|
|
|
cordis:
|
|
|
|
|
specifier: ^4.0.0-rc.6
|
|
|
|
|
version: 4.0.0-rc.6(@cordisjs/plugin-include@1.0.4)(@cordisjs/plugin-loader@1.0.0-rc.4)
|
|
|
|
|
|
2026-06-25 17:30:42 +08:00
|
|
|
packages/compact/compact-basic:
|
|
|
|
|
devDependencies:
|
|
|
|
|
'@deepseek-ai/dsh-agent':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/agent
|
fix(compact): decide step-alignment from surface tool-pairing, fire compaction pre-step (CBR-001)
Codex round 1 CBR-001: a head-anchored compaction checkpoint was
mis-classified by the log-position step-alignment scan, so a second
auto-compaction over a checkpoint-headed surface silently failed.
Root cause: `isStepAlignedStart/End` scanned the LOG by seq, but a
`replace` op lands a checkpoint at a high log seq whose SURFACE position
is the head — its log neighbours (the open step's assistant/message) are
not its surface neighbours, so the forward scan wrongly reported mid-step.
Fix, per the agreed direction:
- Replace the two log-position predicates with one surface-anchored
helper `isToolPairingBalanced(nodes, events, beforeSeq)` in
`dsh-session` (renamed step-boundary.ts → tool-pairing.ts). A cut is
balanced when no unanswered tool-call precedes it on the surface; a
region is collapsible iff both edges are balanced cuts. The open-tail
and free-node cases fall out of the same counter. It also throws on a
corrupt surface (a tool/result with no matching call).
- Move compaction off the in-step seam to a new "pre-step" seam fired
after turn/start and before step/start, so a compaction's log-only
compact/* records and its replacement node land cleanly OUTSIDE any
step (the honest structure crash-safety relies on). Renamed the event
agent/pre-request → agent/pre-step and switched its dispatch from
parallel → serial (listeners mutate the surface as a side effect;
serial isolates them so concurrent appends can't interleave). Extended
the catalog generator to accept @mode serial.
Regression coverage: a real-loop test driving an auto-compaction asserts
the landed checkpoint is a balanced cut on both sides; unit tests pin the
checkpoint case, the mid-step injection case, multi-call steps, and the
corrupt-surface guard. Proven red on the old log-position logic.
2026-06-26 13:51:01 +08:00
|
|
|
'@deepseek-ai/dsh-agent-loop':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/agent-loop
|
2026-06-25 17:30:42 +08:00
|
|
|
'@deepseek-ai/dsh-compact':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../compact
|
|
|
|
|
'@deepseek-ai/dsh-invariants':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../support/invariants
|
|
|
|
|
'@deepseek-ai/dsh-llm':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../llm/llm
|
|
|
|
|
'@deepseek-ai/dsh-session':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/session
|
fix(compact): decide step-alignment from surface tool-pairing, fire compaction pre-step (CBR-001)
Codex round 1 CBR-001: a head-anchored compaction checkpoint was
mis-classified by the log-position step-alignment scan, so a second
auto-compaction over a checkpoint-headed surface silently failed.
Root cause: `isStepAlignedStart/End` scanned the LOG by seq, but a
`replace` op lands a checkpoint at a high log seq whose SURFACE position
is the head — its log neighbours (the open step's assistant/message) are
not its surface neighbours, so the forward scan wrongly reported mid-step.
Fix, per the agreed direction:
- Replace the two log-position predicates with one surface-anchored
helper `isToolPairingBalanced(nodes, events, beforeSeq)` in
`dsh-session` (renamed step-boundary.ts → tool-pairing.ts). A cut is
balanced when no unanswered tool-call precedes it on the surface; a
region is collapsible iff both edges are balanced cuts. The open-tail
and free-node cases fall out of the same counter. It also throws on a
corrupt surface (a tool/result with no matching call).
- Move compaction off the in-step seam to a new "pre-step" seam fired
after turn/start and before step/start, so a compaction's log-only
compact/* records and its replacement node land cleanly OUTSIDE any
step (the honest structure crash-safety relies on). Renamed the event
agent/pre-request → agent/pre-step and switched its dispatch from
parallel → serial (listeners mutate the surface as a side effect;
serial isolates them so concurrent appends can't interleave). Extended
the catalog generator to accept @mode serial.
Regression coverage: a real-loop test driving an auto-compaction asserts
the landed checkpoint is a balanced cut on both sides; unit tests pin the
checkpoint case, the mid-step injection case, multi-call steps, and the
corrupt-surface guard. Proven red on the old log-position logic.
2026-06-26 13:51:01 +08:00
|
|
|
'@deepseek-ai/dsh-system-prompt':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/system-prompt
|
|
|
|
|
'@deepseek-ai/dsh-tools':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/tools
|
2026-06-25 17:30:42 +08:00
|
|
|
cordis:
|
|
|
|
|
specifier: ^4.0.0-rc.6
|
|
|
|
|
version: 4.0.0-rc.6(@cordisjs/plugin-include@1.0.4)(@cordisjs/plugin-loader@1.0.0-rc.4)
|
|
|
|
|
|
Reorganize packages into a modular hierarchy
Move the 18 flat packages/<name> packages into role-grouped dirs:
core/, llm/, bash/, session-persistence/, ui/, support/. Group dirs are
pure containers; each package keeps its @deepseek-ai/dsh-* name.
Collapse the per-package tsconfig paths maps (base + typecheck) into one
@deepseek-ai/dsh-* wildcard with a candidate per group, and derive the
publint list from the hierarchy. Update all depth-coupled globs/configs
(workspace, tsdown, vitest, eslint, knip, tsconfig includes/refs,
per-package tsconfigs, generators, doc-script scopes, type-equiv manifest)
and the cross-package/script relative imports in tests.
Fix doc-typecheck's workspacePaths() to parse tsconfig JSONC via the
TypeScript API instead of a regex comment-strip, which corrupted the
new wildcard `/*/` path candidates.
WIP: doc cross-links and package/RFC docs still to update.
2026-06-20 22:55:20 +08:00
|
|
|
packages/core/agent:
|
2026-06-16 14:55:37 +08:00
|
|
|
devDependencies:
|
feat(types): brand bash ids + stop brand erosion; extract Branded to dsh-brand
Type-only change (brands are zero-cost casts; no runtime/wire impact). Closes
the two gaps in the "brand ids that cross package boundaries" policy and fixes
the dependency direction so a capability package never pulls in an unrelated one.
- Extract the `Branded<B>` primitive into a new standalone type-only package
`@deepseek-ai/dsh-brand` (packages/util/brand) with no harness-package deps.
dsh-llm keeps its owned CallId but imports Branded from dsh-brand; dsh-session,
dsh-agent, and dsh-bash all import Branded from there. dsh-bash depends on
dsh-brand ALONE — never on dsh-llm or dsh-session (the architectural fix: a
generic execution backend must not couple to the LLM or session vocabulary).
- Mint BashTaskId + OwnerToken in dsh-bash and thread them through BashTask.id,
the get/ownerOf/list/readOutput/kill seam, the bash-local generation site, and
the dsh-tool-bash validate/access surface. OwnerToken is a DISTINCT brand from
SessionId so the seam stays decoupled; dsh-tool-bash is the single boundary
that casts SessionId -> OwnerToken.
- Brand at the SOURCE, not via mid-pipeline casts: agent-loop's Config types
agents[].id as AgentId and resumeSessionId as SessionId, so the brand enters
at the config boundary and the inner create()/resume casts disappear (only the
genuinely-new per-run session-id string is cast).
- Stop brand erosion: propagate CallId/SessionId/AgentId to the registry/store
Map keys and public params/exports (SessionStore, AgentRegistry + factory
options, the ACP session-id surface + ToolPresenter CallId map, the
persistence coordinator, invariants pendingCalls, the pi-ai tool-call maps).
- Docs: document BashTaskId/OwnerToken in bash.md (type-equiv re-pasted), point
the Branded type-equiv at dsh-brand, fix stale param types in the session/
agent/bash READMEs, regenerate the cordis catalog + module graph.
Implements docs/rfc/proposed/architecture/2026-06-20-branded-ids.md
2026-06-21 07:17:25 +08:00
|
|
|
'@deepseek-ai/dsh-brand':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../util/brand
|
2026-06-16 14:55:37 +08:00
|
|
|
'@deepseek-ai/dsh-llm':
|
|
|
|
|
specifier: workspace:^
|
Reorganize packages into a modular hierarchy
Move the 18 flat packages/<name> packages into role-grouped dirs:
core/, llm/, bash/, session-persistence/, ui/, support/. Group dirs are
pure containers; each package keeps its @deepseek-ai/dsh-* name.
Collapse the per-package tsconfig paths maps (base + typecheck) into one
@deepseek-ai/dsh-* wildcard with a candidate per group, and derive the
publint list from the hierarchy. Update all depth-coupled globs/configs
(workspace, tsdown, vitest, eslint, knip, tsconfig includes/refs,
per-package tsconfigs, generators, doc-script scopes, type-equiv manifest)
and the cross-package/script relative imports in tests.
Fix doc-typecheck's workspacePaths() to parse tsconfig JSONC via the
TypeScript API instead of a regex comment-strip, which corrupted the
new wildcard `/*/` path candidates.
WIP: doc cross-links and package/RFC docs still to update.
2026-06-20 22:55:20 +08:00
|
|
|
version: link:../../llm/llm
|
2026-06-16 14:55:37 +08:00
|
|
|
'@deepseek-ai/dsh-session':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../session
|
2026-07-05 01:54:46 +08:00
|
|
|
'@deepseek-ai/dsh-system-prompt':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../system-prompt
|
2026-06-16 14:55:37 +08:00
|
|
|
cordis:
|
|
|
|
|
specifier: ^4.0.0-rc.6
|
|
|
|
|
version: 4.0.0-rc.6(@cordisjs/plugin-include@1.0.4)(@cordisjs/plugin-loader@1.0.0-rc.4)
|
|
|
|
|
|
refactor(examples): extract the app spine into dsh-agent-core + app packages
Implements docs/rfc/.../2026-06-20-extract-example-app-packages.md. Each
example was thick — a hand-rolled start.ts, an infra preamble, nested
base.yml/base-core.yml/acp-tail.yml includes, and a coupled front-door
cluster enforced only by prose. This moves the composition into packages so
each example is a thin leaf cordis.yml: pick the swappable backends, load one
app package.
New packages:
- @deepseek-ai/dsh-agent-core (packages/core/agent-core): one bundle plugin
that loads the providerless/executor-less/UI-less spine (timer + llm +
sessions + system-prompt + tools + agents + invariants + tool-bash +
agent-loop) via ctx.plugin(...) inside apply(), and forwards agent-loop's
`agents` list as its own Config (export const Config = AgentLoop.Config,
default []).
- @deepseek-ai/dsh-stdio-agent (packages/ui/stdio-agent): terminal chat APP —
agent-core + console logger + readline UI + a pre-created `main` agent, with
a bin. The demo:echo/coding front door.
- @deepseek-ai/dsh-acp-agent (packages/ui/acp-agent): ACP server APP —
agent-core + JSONL persistence + the acp bridge, NO stdout logger, with a
bin. The stdout-purity footgun is structurally unreachable from the leaf.
Amendment to the RFC: hmr stays a LEAF cordis.yml entry, not baked into
dsh-stdio-agent. hmr is a Loader-only dev plugin (throws without
--expose-internals; the in-process test tier can't even import its decorator
form), so a package statically importing it could never carry the per-file
coverage gate. Unlike the console logger, a stray hmr is not a stdout-purity
footgun, so leaving it at the leaf costs no safety. With hmr out, all three new
packages carry in-process unit specs at 100%.
Boot glue (Loader tail, .env load, snapshot-mode selection, stdin-dispose
lifecycle) moves into each app's bin; start.ts and base.yml/base-core.yml/
acp-tail.yml are deleted. Each app package gets a keyless real-load-path test
that boots through its bin + the cordis Loader (guarding the unwrapExports
export-shape bug class, postmortem 0001). ACP snapshot replay stays green
against the existing committed goldens (pure boot restructuring). RFC moved
proposed->implemented with the amendment recorded; package/example/architecture
docs and the module graph updated.
2026-06-21 12:03:44 +08:00
|
|
|
packages/core/agent-core:
|
2026-07-05 23:23:46 +08:00
|
|
|
dependencies:
|
|
|
|
|
schemastery:
|
|
|
|
|
specifier: ^3.18.0
|
|
|
|
|
version: 3.18.0
|
refactor(examples): extract the app spine into dsh-agent-core + app packages
Implements docs/rfc/.../2026-06-20-extract-example-app-packages.md. Each
example was thick — a hand-rolled start.ts, an infra preamble, nested
base.yml/base-core.yml/acp-tail.yml includes, and a coupled front-door
cluster enforced only by prose. This moves the composition into packages so
each example is a thin leaf cordis.yml: pick the swappable backends, load one
app package.
New packages:
- @deepseek-ai/dsh-agent-core (packages/core/agent-core): one bundle plugin
that loads the providerless/executor-less/UI-less spine (timer + llm +
sessions + system-prompt + tools + agents + invariants + tool-bash +
agent-loop) via ctx.plugin(...) inside apply(), and forwards agent-loop's
`agents` list as its own Config (export const Config = AgentLoop.Config,
default []).
- @deepseek-ai/dsh-stdio-agent (packages/ui/stdio-agent): terminal chat APP —
agent-core + console logger + readline UI + a pre-created `main` agent, with
a bin. The demo:echo/coding front door.
- @deepseek-ai/dsh-acp-agent (packages/ui/acp-agent): ACP server APP —
agent-core + JSONL persistence + the acp bridge, NO stdout logger, with a
bin. The stdout-purity footgun is structurally unreachable from the leaf.
Amendment to the RFC: hmr stays a LEAF cordis.yml entry, not baked into
dsh-stdio-agent. hmr is a Loader-only dev plugin (throws without
--expose-internals; the in-process test tier can't even import its decorator
form), so a package statically importing it could never carry the per-file
coverage gate. Unlike the console logger, a stray hmr is not a stdout-purity
footgun, so leaving it at the leaf costs no safety. With hmr out, all three new
packages carry in-process unit specs at 100%.
Boot glue (Loader tail, .env load, snapshot-mode selection, stdin-dispose
lifecycle) moves into each app's bin; start.ts and base.yml/base-core.yml/
acp-tail.yml are deleted. Each app package gets a keyless real-load-path test
that boots through its bin + the cordis Loader (guarding the unwrapExports
export-shape bug class, postmortem 0001). ACP snapshot replay stays green
against the existing committed goldens (pure boot restructuring). RFC moved
proposed->implemented with the amendment recorded; package/example/architecture
docs and the module graph updated.
2026-06-21 12:03:44 +08:00
|
|
|
devDependencies:
|
|
|
|
|
'@cordisjs/plugin-timer':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../../vendor/timer
|
|
|
|
|
'@deepseek-ai/dsh-agent':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../agent
|
|
|
|
|
'@deepseek-ai/dsh-agent-loop':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../agent-loop
|
|
|
|
|
'@deepseek-ai/dsh-invariants':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../support/invariants
|
|
|
|
|
'@deepseek-ai/dsh-llm':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../llm/llm
|
|
|
|
|
'@deepseek-ai/dsh-session':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../session
|
|
|
|
|
'@deepseek-ai/dsh-system-prompt':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../system-prompt
|
|
|
|
|
'@deepseek-ai/dsh-tool-bash':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../bash/tool-bash
|
|
|
|
|
'@deepseek-ai/dsh-tools':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../tools
|
|
|
|
|
cordis:
|
|
|
|
|
specifier: ^4.0.0-rc.6
|
|
|
|
|
version: 4.0.0-rc.6(@cordisjs/plugin-include@1.0.4)(@cordisjs/plugin-loader@1.0.0-rc.4)
|
|
|
|
|
|
Reorganize packages into a modular hierarchy
Move the 18 flat packages/<name> packages into role-grouped dirs:
core/, llm/, bash/, session-persistence/, ui/, support/. Group dirs are
pure containers; each package keeps its @deepseek-ai/dsh-* name.
Collapse the per-package tsconfig paths maps (base + typecheck) into one
@deepseek-ai/dsh-* wildcard with a candidate per group, and derive the
publint list from the hierarchy. Update all depth-coupled globs/configs
(workspace, tsdown, vitest, eslint, knip, tsconfig includes/refs,
per-package tsconfigs, generators, doc-script scopes, type-equiv manifest)
and the cross-package/script relative imports in tests.
Fix doc-typecheck's workspacePaths() to parse tsconfig JSONC via the
TypeScript API instead of a regex comment-strip, which corrupted the
new wildcard `/*/` path candidates.
WIP: doc cross-links and package/RFC docs still to update.
2026-06-20 22:55:20 +08:00
|
|
|
packages/core/agent-loop:
|
2026-06-16 14:55:37 +08:00
|
|
|
dependencies:
|
|
|
|
|
schemastery:
|
|
|
|
|
specifier: ^3.18.0
|
|
|
|
|
version: 3.18.0
|
|
|
|
|
devDependencies:
|
|
|
|
|
'@deepseek-ai/dsh-agent':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../agent
|
|
|
|
|
'@deepseek-ai/dsh-invariants':
|
|
|
|
|
specifier: workspace:^
|
Reorganize packages into a modular hierarchy
Move the 18 flat packages/<name> packages into role-grouped dirs:
core/, llm/, bash/, session-persistence/, ui/, support/. Group dirs are
pure containers; each package keeps its @deepseek-ai/dsh-* name.
Collapse the per-package tsconfig paths maps (base + typecheck) into one
@deepseek-ai/dsh-* wildcard with a candidate per group, and derive the
publint list from the hierarchy. Update all depth-coupled globs/configs
(workspace, tsdown, vitest, eslint, knip, tsconfig includes/refs,
per-package tsconfigs, generators, doc-script scopes, type-equiv manifest)
and the cross-package/script relative imports in tests.
Fix doc-typecheck's workspacePaths() to parse tsconfig JSONC via the
TypeScript API instead of a regex comment-strip, which corrupted the
new wildcard `/*/` path candidates.
WIP: doc cross-links and package/RFC docs still to update.
2026-06-20 22:55:20 +08:00
|
|
|
version: link:../../support/invariants
|
2026-06-16 14:55:37 +08:00
|
|
|
'@deepseek-ai/dsh-llm':
|
|
|
|
|
specifier: workspace:^
|
Reorganize packages into a modular hierarchy
Move the 18 flat packages/<name> packages into role-grouped dirs:
core/, llm/, bash/, session-persistence/, ui/, support/. Group dirs are
pure containers; each package keeps its @deepseek-ai/dsh-* name.
Collapse the per-package tsconfig paths maps (base + typecheck) into one
@deepseek-ai/dsh-* wildcard with a candidate per group, and derive the
publint list from the hierarchy. Update all depth-coupled globs/configs
(workspace, tsdown, vitest, eslint, knip, tsconfig includes/refs,
per-package tsconfigs, generators, doc-script scopes, type-equiv manifest)
and the cross-package/script relative imports in tests.
Fix doc-typecheck's workspacePaths() to parse tsconfig JSONC via the
TypeScript API instead of a regex comment-strip, which corrupted the
new wildcard `/*/` path candidates.
WIP: doc cross-links and package/RFC docs still to update.
2026-06-20 22:55:20 +08:00
|
|
|
version: link:../../llm/llm
|
2026-06-16 14:55:37 +08:00
|
|
|
'@deepseek-ai/dsh-session':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../session
|
2026-06-16 17:04:54 +08:00
|
|
|
'@deepseek-ai/dsh-session-persistence':
|
|
|
|
|
specifier: workspace:^
|
Reorganize packages into a modular hierarchy
Move the 18 flat packages/<name> packages into role-grouped dirs:
core/, llm/, bash/, session-persistence/, ui/, support/. Group dirs are
pure containers; each package keeps its @deepseek-ai/dsh-* name.
Collapse the per-package tsconfig paths maps (base + typecheck) into one
@deepseek-ai/dsh-* wildcard with a candidate per group, and derive the
publint list from the hierarchy. Update all depth-coupled globs/configs
(workspace, tsdown, vitest, eslint, knip, tsconfig includes/refs,
per-package tsconfigs, generators, doc-script scopes, type-equiv manifest)
and the cross-package/script relative imports in tests.
Fix doc-typecheck's workspacePaths() to parse tsconfig JSONC via the
TypeScript API instead of a regex comment-strip, which corrupted the
new wildcard `/*/` path candidates.
WIP: doc cross-links and package/RFC docs still to update.
2026-06-20 22:55:20 +08:00
|
|
|
version: link:../../session-persistence/session-persistence
|
2026-06-16 17:01:36 +08:00
|
|
|
'@deepseek-ai/dsh-session-persistence-jsonl':
|
|
|
|
|
specifier: workspace:^
|
Reorganize packages into a modular hierarchy
Move the 18 flat packages/<name> packages into role-grouped dirs:
core/, llm/, bash/, session-persistence/, ui/, support/. Group dirs are
pure containers; each package keeps its @deepseek-ai/dsh-* name.
Collapse the per-package tsconfig paths maps (base + typecheck) into one
@deepseek-ai/dsh-* wildcard with a candidate per group, and derive the
publint list from the hierarchy. Update all depth-coupled globs/configs
(workspace, tsdown, vitest, eslint, knip, tsconfig includes/refs,
per-package tsconfigs, generators, doc-script scopes, type-equiv manifest)
and the cross-package/script relative imports in tests.
Fix doc-typecheck's workspacePaths() to parse tsconfig JSONC via the
TypeScript API instead of a regex comment-strip, which corrupted the
new wildcard `/*/` path candidates.
WIP: doc cross-links and package/RFC docs still to update.
2026-06-20 22:55:20 +08:00
|
|
|
version: link:../../session-persistence/session-persistence-jsonl
|
2026-06-16 14:55:37 +08:00
|
|
|
'@deepseek-ai/dsh-system-prompt':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../system-prompt
|
|
|
|
|
'@deepseek-ai/dsh-tools':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../tools
|
|
|
|
|
cordis:
|
|
|
|
|
specifier: ^4.0.0-rc.6
|
|
|
|
|
version: 4.0.0-rc.6(@cordisjs/plugin-include@1.0.4)(@cordisjs/plugin-loader@1.0.0-rc.4)
|
|
|
|
|
|
Reorganize packages into a modular hierarchy
Move the 18 flat packages/<name> packages into role-grouped dirs:
core/, llm/, bash/, session-persistence/, ui/, support/. Group dirs are
pure containers; each package keeps its @deepseek-ai/dsh-* name.
Collapse the per-package tsconfig paths maps (base + typecheck) into one
@deepseek-ai/dsh-* wildcard with a candidate per group, and derive the
publint list from the hierarchy. Update all depth-coupled globs/configs
(workspace, tsdown, vitest, eslint, knip, tsconfig includes/refs,
per-package tsconfigs, generators, doc-script scopes, type-equiv manifest)
and the cross-package/script relative imports in tests.
Fix doc-typecheck's workspacePaths() to parse tsconfig JSONC via the
TypeScript API instead of a regex comment-strip, which corrupted the
new wildcard `/*/` path candidates.
WIP: doc cross-links and package/RFC docs still to update.
2026-06-20 22:55:20 +08:00
|
|
|
packages/core/session:
|
2026-06-16 14:55:37 +08:00
|
|
|
devDependencies:
|
feat(types): brand bash ids + stop brand erosion; extract Branded to dsh-brand
Type-only change (brands are zero-cost casts; no runtime/wire impact). Closes
the two gaps in the "brand ids that cross package boundaries" policy and fixes
the dependency direction so a capability package never pulls in an unrelated one.
- Extract the `Branded<B>` primitive into a new standalone type-only package
`@deepseek-ai/dsh-brand` (packages/util/brand) with no harness-package deps.
dsh-llm keeps its owned CallId but imports Branded from dsh-brand; dsh-session,
dsh-agent, and dsh-bash all import Branded from there. dsh-bash depends on
dsh-brand ALONE — never on dsh-llm or dsh-session (the architectural fix: a
generic execution backend must not couple to the LLM or session vocabulary).
- Mint BashTaskId + OwnerToken in dsh-bash and thread them through BashTask.id,
the get/ownerOf/list/readOutput/kill seam, the bash-local generation site, and
the dsh-tool-bash validate/access surface. OwnerToken is a DISTINCT brand from
SessionId so the seam stays decoupled; dsh-tool-bash is the single boundary
that casts SessionId -> OwnerToken.
- Brand at the SOURCE, not via mid-pipeline casts: agent-loop's Config types
agents[].id as AgentId and resumeSessionId as SessionId, so the brand enters
at the config boundary and the inner create()/resume casts disappear (only the
genuinely-new per-run session-id string is cast).
- Stop brand erosion: propagate CallId/SessionId/AgentId to the registry/store
Map keys and public params/exports (SessionStore, AgentRegistry + factory
options, the ACP session-id surface + ToolPresenter CallId map, the
persistence coordinator, invariants pendingCalls, the pi-ai tool-call maps).
- Docs: document BashTaskId/OwnerToken in bash.md (type-equiv re-pasted), point
the Branded type-equiv at dsh-brand, fix stale param types in the session/
agent/bash READMEs, regenerate the cordis catalog + module graph.
Implements docs/rfc/proposed/architecture/2026-06-20-branded-ids.md
2026-06-21 07:17:25 +08:00
|
|
|
'@deepseek-ai/dsh-brand':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../util/brand
|
Reorganize packages into a modular hierarchy
Move the 18 flat packages/<name> packages into role-grouped dirs:
core/, llm/, bash/, session-persistence/, ui/, support/. Group dirs are
pure containers; each package keeps its @deepseek-ai/dsh-* name.
Collapse the per-package tsconfig paths maps (base + typecheck) into one
@deepseek-ai/dsh-* wildcard with a candidate per group, and derive the
publint list from the hierarchy. Update all depth-coupled globs/configs
(workspace, tsdown, vitest, eslint, knip, tsconfig includes/refs,
per-package tsconfigs, generators, doc-script scopes, type-equiv manifest)
and the cross-package/script relative imports in tests.
Fix doc-typecheck's workspacePaths() to parse tsconfig JSONC via the
TypeScript API instead of a regex comment-strip, which corrupted the
new wildcard `/*/` path candidates.
WIP: doc cross-links and package/RFC docs still to update.
2026-06-20 22:55:20 +08:00
|
|
|
'@deepseek-ai/dsh-llm':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../llm/llm
|
2026-06-16 14:55:37 +08:00
|
|
|
cordis:
|
|
|
|
|
specifier: ^4.0.0-rc.6
|
|
|
|
|
version: 4.0.0-rc.6(@cordisjs/plugin-include@1.0.4)(@cordisjs/plugin-loader@1.0.0-rc.4)
|
|
|
|
|
|
Reorganize packages into a modular hierarchy
Move the 18 flat packages/<name> packages into role-grouped dirs:
core/, llm/, bash/, session-persistence/, ui/, support/. Group dirs are
pure containers; each package keeps its @deepseek-ai/dsh-* name.
Collapse the per-package tsconfig paths maps (base + typecheck) into one
@deepseek-ai/dsh-* wildcard with a candidate per group, and derive the
publint list from the hierarchy. Update all depth-coupled globs/configs
(workspace, tsdown, vitest, eslint, knip, tsconfig includes/refs,
per-package tsconfigs, generators, doc-script scopes, type-equiv manifest)
and the cross-package/script relative imports in tests.
Fix doc-typecheck's workspacePaths() to parse tsconfig JSONC via the
TypeScript API instead of a regex comment-strip, which corrupted the
new wildcard `/*/` path candidates.
WIP: doc cross-links and package/RFC docs still to update.
2026-06-20 22:55:20 +08:00
|
|
|
packages/core/system-prompt:
|
2026-07-05 23:23:46 +08:00
|
|
|
dependencies:
|
|
|
|
|
schemastery:
|
|
|
|
|
specifier: ^3.18.0
|
|
|
|
|
version: 3.18.0
|
2026-06-16 14:55:37 +08:00
|
|
|
devDependencies:
|
Reorganize packages into a modular hierarchy
Move the 18 flat packages/<name> packages into role-grouped dirs:
core/, llm/, bash/, session-persistence/, ui/, support/. Group dirs are
pure containers; each package keeps its @deepseek-ai/dsh-* name.
Collapse the per-package tsconfig paths maps (base + typecheck) into one
@deepseek-ai/dsh-* wildcard with a candidate per group, and derive the
publint list from the hierarchy. Update all depth-coupled globs/configs
(workspace, tsdown, vitest, eslint, knip, tsconfig includes/refs,
per-package tsconfigs, generators, doc-script scopes, type-equiv manifest)
and the cross-package/script relative imports in tests.
Fix doc-typecheck's workspacePaths() to parse tsconfig JSONC via the
TypeScript API instead of a regex comment-strip, which corrupted the
new wildcard `/*/` path candidates.
WIP: doc cross-links and package/RFC docs still to update.
2026-06-20 22:55:20 +08:00
|
|
|
'@deepseek-ai/dsh-llm':
|
2026-06-16 14:55:37 +08:00
|
|
|
specifier: workspace:^
|
Reorganize packages into a modular hierarchy
Move the 18 flat packages/<name> packages into role-grouped dirs:
core/, llm/, bash/, session-persistence/, ui/, support/. Group dirs are
pure containers; each package keeps its @deepseek-ai/dsh-* name.
Collapse the per-package tsconfig paths maps (base + typecheck) into one
@deepseek-ai/dsh-* wildcard with a candidate per group, and derive the
publint list from the hierarchy. Update all depth-coupled globs/configs
(workspace, tsdown, vitest, eslint, knip, tsconfig includes/refs,
per-package tsconfigs, generators, doc-script scopes, type-equiv manifest)
and the cross-package/script relative imports in tests.
Fix doc-typecheck's workspacePaths() to parse tsconfig JSONC via the
TypeScript API instead of a regex comment-strip, which corrupted the
new wildcard `/*/` path candidates.
WIP: doc cross-links and package/RFC docs still to update.
2026-06-20 22:55:20 +08:00
|
|
|
version: link:../../llm/llm
|
2026-06-16 14:55:37 +08:00
|
|
|
cordis:
|
|
|
|
|
specifier: ^4.0.0-rc.6
|
|
|
|
|
version: 4.0.0-rc.6(@cordisjs/plugin-include@1.0.4)(@cordisjs/plugin-loader@1.0.0-rc.4)
|
|
|
|
|
|
Reorganize packages into a modular hierarchy
Move the 18 flat packages/<name> packages into role-grouped dirs:
core/, llm/, bash/, session-persistence/, ui/, support/. Group dirs are
pure containers; each package keeps its @deepseek-ai/dsh-* name.
Collapse the per-package tsconfig paths maps (base + typecheck) into one
@deepseek-ai/dsh-* wildcard with a candidate per group, and derive the
publint list from the hierarchy. Update all depth-coupled globs/configs
(workspace, tsdown, vitest, eslint, knip, tsconfig includes/refs,
per-package tsconfigs, generators, doc-script scopes, type-equiv manifest)
and the cross-package/script relative imports in tests.
Fix doc-typecheck's workspacePaths() to parse tsconfig JSONC via the
TypeScript API instead of a regex comment-strip, which corrupted the
new wildcard `/*/` path candidates.
WIP: doc cross-links and package/RFC docs still to update.
2026-06-20 22:55:20 +08:00
|
|
|
packages/core/tools:
|
2026-06-16 14:55:37 +08:00
|
|
|
devDependencies:
|
|
|
|
|
'@deepseek-ai/dsh-agent':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../agent
|
|
|
|
|
'@deepseek-ai/dsh-llm':
|
|
|
|
|
specifier: workspace:^
|
Reorganize packages into a modular hierarchy
Move the 18 flat packages/<name> packages into role-grouped dirs:
core/, llm/, bash/, session-persistence/, ui/, support/. Group dirs are
pure containers; each package keeps its @deepseek-ai/dsh-* name.
Collapse the per-package tsconfig paths maps (base + typecheck) into one
@deepseek-ai/dsh-* wildcard with a candidate per group, and derive the
publint list from the hierarchy. Update all depth-coupled globs/configs
(workspace, tsdown, vitest, eslint, knip, tsconfig includes/refs,
per-package tsconfigs, generators, doc-script scopes, type-equiv manifest)
and the cross-package/script relative imports in tests.
Fix doc-typecheck's workspacePaths() to parse tsconfig JSONC via the
TypeScript API instead of a regex comment-strip, which corrupted the
new wildcard `/*/` path candidates.
WIP: doc cross-links and package/RFC docs still to update.
2026-06-20 22:55:20 +08:00
|
|
|
version: link:../../llm/llm
|
|
|
|
|
'@deepseek-ai/dsh-system-prompt':
|
2026-06-16 14:55:37 +08:00
|
|
|
specifier: workspace:^
|
Reorganize packages into a modular hierarchy
Move the 18 flat packages/<name> packages into role-grouped dirs:
core/, llm/, bash/, session-persistence/, ui/, support/. Group dirs are
pure containers; each package keeps its @deepseek-ai/dsh-* name.
Collapse the per-package tsconfig paths maps (base + typecheck) into one
@deepseek-ai/dsh-* wildcard with a candidate per group, and derive the
publint list from the hierarchy. Update all depth-coupled globs/configs
(workspace, tsdown, vitest, eslint, knip, tsconfig includes/refs,
per-package tsconfigs, generators, doc-script scopes, type-equiv manifest)
and the cross-package/script relative imports in tests.
Fix doc-typecheck's workspacePaths() to parse tsconfig JSONC via the
TypeScript API instead of a regex comment-strip, which corrupted the
new wildcard `/*/` path candidates.
WIP: doc cross-links and package/RFC docs still to update.
2026-06-20 22:55:20 +08:00
|
|
|
version: link:../system-prompt
|
2026-06-16 14:55:37 +08:00
|
|
|
cordis:
|
|
|
|
|
specifier: ^4.0.0-rc.6
|
|
|
|
|
version: 4.0.0-rc.6(@cordisjs/plugin-include@1.0.4)(@cordisjs/plugin-loader@1.0.0-rc.4)
|
|
|
|
|
|
fix(fs): address review — rename to dsh-fs-policy, fs/*-intent events, RFC currency, ENOTDIR
Rename per review naming decisions:
- package dsh-file-context → dsh-fs-policy (dir, package name, plugin name,
tsconfig refs, importers, type-equiv manifest, generated catalog + module-graph)
- events fs/write-expectation → fs/write-intent, fs/edit-expectation → fs/edit-intent
(fs/observed unchanged); type FsWriteExpectation → FsWriteIntent, "expectation"
wording → "intent" throughout
- exported FileContextExec → FsPolicyExec
Make the implemented RFCs describe what shipped, not the superseded designs:
the 2026-06-17 capability-seam + tool-schemas RFCs no longer place policy on
ctx.fs or use full/partial-view authorization, and the fsspec RFC's ctx.fileContext
service prose is rewritten to the fs/* event-gate reality (freshness-based auth).
Sharpen docs/rfc/implemented/AGENTS.md: a rename is a fact to fix IN PLACE — the
"new RFC" escape hatch is for macro decision reversals only, not renames.
Code fixes from review:
- fsio.ts resolveLocalTarget/probe translate ENOTDIR (a parent path segment is a
file) into the structured FsError taxonomy instead of leaking a raw Node error;
resolve reports FS_NOT_FOUND, probe reports absent. Regression tests proven to
fail on the unfixed code.
- tool-fs HMR test now asserts prompt sections (not just tool schemas) are
withdrawn on disposal.
- fs/observed is a plain (unguarded) ctx.emit: correct the fs-policy comment,
filesystem.md, and tool-fs module doc that wrongly claimed the tool "contains"
a throwing listener; a throw surfaces as the tool's isError result.
- drop the false "loaded by the default product config" claim (no config wires
the fs tools yet), the duplicate ctx.bash service-map row, the stale
FileReadRequest catalog link-map entry, and the fs/fs README EOF blank line;
correct the dsh-fs package.json description.
2026-07-02 03:12:38 +08:00
|
|
|
packages/fs/fs:
|
2026-06-26 17:23:18 +08:00
|
|
|
devDependencies:
|
fix(fs): address review — rename to dsh-fs-policy, fs/*-intent events, RFC currency, ENOTDIR
Rename per review naming decisions:
- package dsh-file-context → dsh-fs-policy (dir, package name, plugin name,
tsconfig refs, importers, type-equiv manifest, generated catalog + module-graph)
- events fs/write-expectation → fs/write-intent, fs/edit-expectation → fs/edit-intent
(fs/observed unchanged); type FsWriteExpectation → FsWriteIntent, "expectation"
wording → "intent" throughout
- exported FileContextExec → FsPolicyExec
Make the implemented RFCs describe what shipped, not the superseded designs:
the 2026-06-17 capability-seam + tool-schemas RFCs no longer place policy on
ctx.fs or use full/partial-view authorization, and the fsspec RFC's ctx.fileContext
service prose is rewritten to the fs/* event-gate reality (freshness-based auth).
Sharpen docs/rfc/implemented/AGENTS.md: a rename is a fact to fix IN PLACE — the
"new RFC" escape hatch is for macro decision reversals only, not renames.
Code fixes from review:
- fsio.ts resolveLocalTarget/probe translate ENOTDIR (a parent path segment is a
file) into the structured FsError taxonomy instead of leaking a raw Node error;
resolve reports FS_NOT_FOUND, probe reports absent. Regression tests proven to
fail on the unfixed code.
- tool-fs HMR test now asserts prompt sections (not just tool schemas) are
withdrawn on disposal.
- fs/observed is a plain (unguarded) ctx.emit: correct the fs-policy comment,
filesystem.md, and tool-fs module doc that wrongly claimed the tool "contains"
a throwing listener; a throw surfaces as the tool's isError result.
- drop the false "loaded by the default product config" claim (no config wires
the fs tools yet), the duplicate ctx.bash service-map row, the stale
FileReadRequest catalog link-map entry, and the fs/fs README EOF blank line;
correct the dsh-fs package.json description.
2026-07-02 03:12:38 +08:00
|
|
|
'@deepseek-ai/dsh-brand':
|
2026-06-26 17:23:18 +08:00
|
|
|
specifier: workspace:^
|
fix(fs): address review — rename to dsh-fs-policy, fs/*-intent events, RFC currency, ENOTDIR
Rename per review naming decisions:
- package dsh-file-context → dsh-fs-policy (dir, package name, plugin name,
tsconfig refs, importers, type-equiv manifest, generated catalog + module-graph)
- events fs/write-expectation → fs/write-intent, fs/edit-expectation → fs/edit-intent
(fs/observed unchanged); type FsWriteExpectation → FsWriteIntent, "expectation"
wording → "intent" throughout
- exported FileContextExec → FsPolicyExec
Make the implemented RFCs describe what shipped, not the superseded designs:
the 2026-06-17 capability-seam + tool-schemas RFCs no longer place policy on
ctx.fs or use full/partial-view authorization, and the fsspec RFC's ctx.fileContext
service prose is rewritten to the fs/* event-gate reality (freshness-based auth).
Sharpen docs/rfc/implemented/AGENTS.md: a rename is a fact to fix IN PLACE — the
"new RFC" escape hatch is for macro decision reversals only, not renames.
Code fixes from review:
- fsio.ts resolveLocalTarget/probe translate ENOTDIR (a parent path segment is a
file) into the structured FsError taxonomy instead of leaking a raw Node error;
resolve reports FS_NOT_FOUND, probe reports absent. Regression tests proven to
fail on the unfixed code.
- tool-fs HMR test now asserts prompt sections (not just tool schemas) are
withdrawn on disposal.
- fs/observed is a plain (unguarded) ctx.emit: correct the fs-policy comment,
filesystem.md, and tool-fs module doc that wrongly claimed the tool "contains"
a throwing listener; a throw surfaces as the tool's isError result.
- drop the false "loaded by the default product config" claim (no config wires
the fs tools yet), the duplicate ctx.bash service-map row, the stale
FileReadRequest catalog link-map entry, and the fs/fs README EOF blank line;
correct the dsh-fs package.json description.
2026-07-02 03:12:38 +08:00
|
|
|
version: link:../../util/brand
|
2026-06-26 17:23:18 +08:00
|
|
|
'@deepseek-ai/dsh-llm':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../llm/llm
|
|
|
|
|
cordis:
|
|
|
|
|
specifier: ^4.0.0-rc.6
|
|
|
|
|
version: 4.0.0-rc.6(@cordisjs/plugin-include@1.0.4)(@cordisjs/plugin-loader@1.0.0-rc.4)
|
|
|
|
|
|
fix(fs): address review — rename to dsh-fs-policy, fs/*-intent events, RFC currency, ENOTDIR
Rename per review naming decisions:
- package dsh-file-context → dsh-fs-policy (dir, package name, plugin name,
tsconfig refs, importers, type-equiv manifest, generated catalog + module-graph)
- events fs/write-expectation → fs/write-intent, fs/edit-expectation → fs/edit-intent
(fs/observed unchanged); type FsWriteExpectation → FsWriteIntent, "expectation"
wording → "intent" throughout
- exported FileContextExec → FsPolicyExec
Make the implemented RFCs describe what shipped, not the superseded designs:
the 2026-06-17 capability-seam + tool-schemas RFCs no longer place policy on
ctx.fs or use full/partial-view authorization, and the fsspec RFC's ctx.fileContext
service prose is rewritten to the fs/* event-gate reality (freshness-based auth).
Sharpen docs/rfc/implemented/AGENTS.md: a rename is a fact to fix IN PLACE — the
"new RFC" escape hatch is for macro decision reversals only, not renames.
Code fixes from review:
- fsio.ts resolveLocalTarget/probe translate ENOTDIR (a parent path segment is a
file) into the structured FsError taxonomy instead of leaking a raw Node error;
resolve reports FS_NOT_FOUND, probe reports absent. Regression tests proven to
fail on the unfixed code.
- tool-fs HMR test now asserts prompt sections (not just tool schemas) are
withdrawn on disposal.
- fs/observed is a plain (unguarded) ctx.emit: correct the fs-policy comment,
filesystem.md, and tool-fs module doc that wrongly claimed the tool "contains"
a throwing listener; a throw surfaces as the tool's isError result.
- drop the false "loaded by the default product config" claim (no config wires
the fs tools yet), the duplicate ctx.bash service-map row, the stale
FileReadRequest catalog link-map entry, and the fs/fs README EOF blank line;
correct the dsh-fs package.json description.
2026-07-02 03:12:38 +08:00
|
|
|
packages/fs/fs-local:
|
|
|
|
|
dependencies:
|
|
|
|
|
schemastery:
|
|
|
|
|
specifier: ^3.18.0
|
|
|
|
|
version: 3.18.0
|
2026-06-22 10:48:41 +08:00
|
|
|
devDependencies:
|
fix(fs): address review — rename to dsh-fs-policy, fs/*-intent events, RFC currency, ENOTDIR
Rename per review naming decisions:
- package dsh-file-context → dsh-fs-policy (dir, package name, plugin name,
tsconfig refs, importers, type-equiv manifest, generated catalog + module-graph)
- events fs/write-expectation → fs/write-intent, fs/edit-expectation → fs/edit-intent
(fs/observed unchanged); type FsWriteExpectation → FsWriteIntent, "expectation"
wording → "intent" throughout
- exported FileContextExec → FsPolicyExec
Make the implemented RFCs describe what shipped, not the superseded designs:
the 2026-06-17 capability-seam + tool-schemas RFCs no longer place policy on
ctx.fs or use full/partial-view authorization, and the fsspec RFC's ctx.fileContext
service prose is rewritten to the fs/* event-gate reality (freshness-based auth).
Sharpen docs/rfc/implemented/AGENTS.md: a rename is a fact to fix IN PLACE — the
"new RFC" escape hatch is for macro decision reversals only, not renames.
Code fixes from review:
- fsio.ts resolveLocalTarget/probe translate ENOTDIR (a parent path segment is a
file) into the structured FsError taxonomy instead of leaking a raw Node error;
resolve reports FS_NOT_FOUND, probe reports absent. Regression tests proven to
fail on the unfixed code.
- tool-fs HMR test now asserts prompt sections (not just tool schemas) are
withdrawn on disposal.
- fs/observed is a plain (unguarded) ctx.emit: correct the fs-policy comment,
filesystem.md, and tool-fs module doc that wrongly claimed the tool "contains"
a throwing listener; a throw surfaces as the tool's isError result.
- drop the false "loaded by the default product config" claim (no config wires
the fs tools yet), the duplicate ctx.bash service-map row, the stale
FileReadRequest catalog link-map entry, and the fs/fs README EOF blank line;
correct the dsh-fs package.json description.
2026-07-02 03:12:38 +08:00
|
|
|
'@deepseek-ai/dsh-fs':
|
2026-06-26 17:23:18 +08:00
|
|
|
specifier: workspace:^
|
fix(fs): address review — rename to dsh-fs-policy, fs/*-intent events, RFC currency, ENOTDIR
Rename per review naming decisions:
- package dsh-file-context → dsh-fs-policy (dir, package name, plugin name,
tsconfig refs, importers, type-equiv manifest, generated catalog + module-graph)
- events fs/write-expectation → fs/write-intent, fs/edit-expectation → fs/edit-intent
(fs/observed unchanged); type FsWriteExpectation → FsWriteIntent, "expectation"
wording → "intent" throughout
- exported FileContextExec → FsPolicyExec
Make the implemented RFCs describe what shipped, not the superseded designs:
the 2026-06-17 capability-seam + tool-schemas RFCs no longer place policy on
ctx.fs or use full/partial-view authorization, and the fsspec RFC's ctx.fileContext
service prose is rewritten to the fs/* event-gate reality (freshness-based auth).
Sharpen docs/rfc/implemented/AGENTS.md: a rename is a fact to fix IN PLACE — the
"new RFC" escape hatch is for macro decision reversals only, not renames.
Code fixes from review:
- fsio.ts resolveLocalTarget/probe translate ENOTDIR (a parent path segment is a
file) into the structured FsError taxonomy instead of leaking a raw Node error;
resolve reports FS_NOT_FOUND, probe reports absent. Regression tests proven to
fail on the unfixed code.
- tool-fs HMR test now asserts prompt sections (not just tool schemas) are
withdrawn on disposal.
- fs/observed is a plain (unguarded) ctx.emit: correct the fs-policy comment,
filesystem.md, and tool-fs module doc that wrongly claimed the tool "contains"
a throwing listener; a throw surfaces as the tool's isError result.
- drop the false "loaded by the default product config" claim (no config wires
the fs tools yet), the duplicate ctx.bash service-map row, the stale
FileReadRequest catalog link-map entry, and the fs/fs README EOF blank line;
correct the dsh-fs package.json description.
2026-07-02 03:12:38 +08:00
|
|
|
version: link:../fs
|
2026-06-22 10:48:41 +08:00
|
|
|
'@deepseek-ai/dsh-llm':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../llm/llm
|
|
|
|
|
cordis:
|
|
|
|
|
specifier: ^4.0.0-rc.6
|
|
|
|
|
version: 4.0.0-rc.6(@cordisjs/plugin-include@1.0.4)(@cordisjs/plugin-loader@1.0.0-rc.4)
|
|
|
|
|
|
fix(fs): address review — rename to dsh-fs-policy, fs/*-intent events, RFC currency, ENOTDIR
Rename per review naming decisions:
- package dsh-file-context → dsh-fs-policy (dir, package name, plugin name,
tsconfig refs, importers, type-equiv manifest, generated catalog + module-graph)
- events fs/write-expectation → fs/write-intent, fs/edit-expectation → fs/edit-intent
(fs/observed unchanged); type FsWriteExpectation → FsWriteIntent, "expectation"
wording → "intent" throughout
- exported FileContextExec → FsPolicyExec
Make the implemented RFCs describe what shipped, not the superseded designs:
the 2026-06-17 capability-seam + tool-schemas RFCs no longer place policy on
ctx.fs or use full/partial-view authorization, and the fsspec RFC's ctx.fileContext
service prose is rewritten to the fs/* event-gate reality (freshness-based auth).
Sharpen docs/rfc/implemented/AGENTS.md: a rename is a fact to fix IN PLACE — the
"new RFC" escape hatch is for macro decision reversals only, not renames.
Code fixes from review:
- fsio.ts resolveLocalTarget/probe translate ENOTDIR (a parent path segment is a
file) into the structured FsError taxonomy instead of leaking a raw Node error;
resolve reports FS_NOT_FOUND, probe reports absent. Regression tests proven to
fail on the unfixed code.
- tool-fs HMR test now asserts prompt sections (not just tool schemas) are
withdrawn on disposal.
- fs/observed is a plain (unguarded) ctx.emit: correct the fs-policy comment,
filesystem.md, and tool-fs module doc that wrongly claimed the tool "contains"
a throwing listener; a throw surfaces as the tool's isError result.
- drop the false "loaded by the default product config" claim (no config wires
the fs tools yet), the duplicate ctx.bash service-map row, the stale
FileReadRequest catalog link-map entry, and the fs/fs README EOF blank line;
correct the dsh-fs package.json description.
2026-07-02 03:12:38 +08:00
|
|
|
packages/fs/fs-policy:
|
2026-06-22 10:48:41 +08:00
|
|
|
devDependencies:
|
|
|
|
|
'@deepseek-ai/dsh-fs':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../fs
|
|
|
|
|
'@deepseek-ai/dsh-llm':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../llm/llm
|
|
|
|
|
cordis:
|
|
|
|
|
specifier: ^4.0.0-rc.6
|
|
|
|
|
version: 4.0.0-rc.6(@cordisjs/plugin-include@1.0.4)(@cordisjs/plugin-loader@1.0.0-rc.4)
|
|
|
|
|
|
|
|
|
|
packages/fs/tool-fs:
|
2026-07-03 17:12:00 +08:00
|
|
|
dependencies:
|
|
|
|
|
diff:
|
|
|
|
|
specifier: ^9.0.0
|
|
|
|
|
version: 9.0.0
|
Expose audited hardcoded tunables as plugin config
The audit swept every packages/*/* plugin for the new AGENTS.md
convention (no hardcoded tunables in plugins) and exposes each finding
as a defaulted, validated Config field. Defaults are the previously
hardcoded values throughout, so no deployment or golden changes.
- tool-fs (had NO Config): readLimit, readMaxLineLength, readMaxBytes,
readStreamMinSize. The caps thread through ReadToolCaps/ReadWindow —
read-render already documented that the consumer applies the caps, so
they become explicit per-request fields.
- tool-web: searchMaxResults (WEB_SEARCH_MAX_RESULTS stays as the
schemastery default). Also fixes the stale GREP_LIMIT references in
search.ts and the web-capability-seam RFC (no such constant exists).
- bash-local: graceMs (SIGTERM->SIGKILL escalation grace). The
RunInternals.graceMs test seam is gone: graceMs is now a required
SpawnSpec field filled from config, so tests exercise the real
config path and the defaults live in exactly one place.
- subagent-acp: disposeEofGraceMs / disposeGraceMs. The AcpRunSpec
fields become required for the same one-defaulting-layer reason.
- session-persistence-sqlite: journalMode ('wal' default; the
rollback-journal modes serve filesystems where WAL's shared-memory
files do not work, e.g. network mounts).
- hooks-claude + hooks-codex: stderrSummaryMaxChars for the persisted
hook/result stderr summary. The duplicated summarize() helpers merge
into hook-protocol's summarizeStderr(stderr, maxChars), beside the
HookResultRecord field it feeds, with the bound parameterized the
same way runHook's defaultTimeoutMs already is.
- compact-basic: charsPerToken for the token estimator (default 4, the
English-text heuristic; CJK-heavy deployments need ~1-2 or compaction
fires far too late). Also corrects the BasicCompactService class doc,
which claimed defaults the required-field config never had.
- fs-local: deletes the dead STREAM_MIN_SIZE constant and the dead
FsIoInternals.streamMinSize seam — the read-routing bound lives in
the consumer (tool-fs), where it is now config. This is item 1 of
the proposed prune-write-only-fs-surface RFC, annotated accordingly.
Every new field gets range validation (following the existing
assertPositiveFinite pattern), a README row, and tests covering the
configured behavior, the schema default, and load-time rejection.
2026-07-04 17:37:23 +08:00
|
|
|
schemastery:
|
|
|
|
|
specifier: ^3.18.0
|
|
|
|
|
version: 3.18.0
|
2026-06-22 10:48:41 +08:00
|
|
|
devDependencies:
|
|
|
|
|
'@deepseek-ai/dsh-agent':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/agent
|
2026-07-02 20:38:06 +08:00
|
|
|
'@deepseek-ai/dsh-agent-loop':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/agent-loop
|
2026-06-22 10:48:41 +08:00
|
|
|
'@deepseek-ai/dsh-fs':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../fs
|
|
|
|
|
'@deepseek-ai/dsh-fs-local':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../fs-local
|
fix(fs): address review — rename to dsh-fs-policy, fs/*-intent events, RFC currency, ENOTDIR
Rename per review naming decisions:
- package dsh-file-context → dsh-fs-policy (dir, package name, plugin name,
tsconfig refs, importers, type-equiv manifest, generated catalog + module-graph)
- events fs/write-expectation → fs/write-intent, fs/edit-expectation → fs/edit-intent
(fs/observed unchanged); type FsWriteExpectation → FsWriteIntent, "expectation"
wording → "intent" throughout
- exported FileContextExec → FsPolicyExec
Make the implemented RFCs describe what shipped, not the superseded designs:
the 2026-06-17 capability-seam + tool-schemas RFCs no longer place policy on
ctx.fs or use full/partial-view authorization, and the fsspec RFC's ctx.fileContext
service prose is rewritten to the fs/* event-gate reality (freshness-based auth).
Sharpen docs/rfc/implemented/AGENTS.md: a rename is a fact to fix IN PLACE — the
"new RFC" escape hatch is for macro decision reversals only, not renames.
Code fixes from review:
- fsio.ts resolveLocalTarget/probe translate ENOTDIR (a parent path segment is a
file) into the structured FsError taxonomy instead of leaking a raw Node error;
resolve reports FS_NOT_FOUND, probe reports absent. Regression tests proven to
fail on the unfixed code.
- tool-fs HMR test now asserts prompt sections (not just tool schemas) are
withdrawn on disposal.
- fs/observed is a plain (unguarded) ctx.emit: correct the fs-policy comment,
filesystem.md, and tool-fs module doc that wrongly claimed the tool "contains"
a throwing listener; a throw surfaces as the tool's isError result.
- drop the false "loaded by the default product config" claim (no config wires
the fs tools yet), the duplicate ctx.bash service-map row, the stale
FileReadRequest catalog link-map entry, and the fs/fs README EOF blank line;
correct the dsh-fs package.json description.
2026-07-02 03:12:38 +08:00
|
|
|
'@deepseek-ai/dsh-fs-policy':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../fs-policy
|
2026-06-22 10:48:41 +08:00
|
|
|
'@deepseek-ai/dsh-llm':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../llm/llm
|
2026-07-02 20:38:06 +08:00
|
|
|
'@deepseek-ai/dsh-llm-deepseek':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../llm/llm-deepseek
|
2026-06-22 10:48:41 +08:00
|
|
|
'@deepseek-ai/dsh-session':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/session
|
|
|
|
|
'@deepseek-ai/dsh-system-prompt':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/system-prompt
|
|
|
|
|
'@deepseek-ai/dsh-tools':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/tools
|
|
|
|
|
cordis:
|
|
|
|
|
specifier: ^4.0.0-rc.6
|
|
|
|
|
version: 4.0.0-rc.6(@cordisjs/plugin-include@1.0.4)(@cordisjs/plugin-loader@1.0.0-rc.4)
|
|
|
|
|
|
feat(hooks): dsh-hook-protocol — shared Claude Code / Codex hook wire-protocol core
The two hook bridges (dsh-hooks-claude, dsh-hooks-codex) would otherwise duplicate
the bulk of the protocol — Codex deliberately reimplements a SUBSET of the Claude
Code protocol (same hooks.json shape, exit-code/stdout contract, command-hook
model). This library holds the genuinely-identical primitives; each bridge owns
only what differs (per-event stdin payload, env/substitution, decision mapping).
New packages/hooks/ group; hook-protocol is a LIBRARY (no plugin, registers/injects
nothing):
- matcher: matchesMatcher(pattern, query, mode) — the one dialect axis collapsed to
a mode param (claude = literal-or-regex with pipe alternation; codex = always
unanchored regex). Match-all on absent/''/'*'; invalid regex matches nothing.
- codec: parseHookOutput(exit, stdout, stderr) → dialect-neutral HookOutput. Exit 0
→ lenient JSON; exit 2 → blocking error (stderr = reason, surfaced as
decision:'block'); other → non-blocking. Parses the CC superset
(continue/stopReason/decision/hookSpecificOutput.{permissionDecision,
additionalContext,updatedInput}/systemMessage); permissionDecision overrides the
legacy top-level decision.
- runner: runHook(bash, hook, opts, now) — runs a command hook via ctx.bash (stdin
payload + trusted-plugin env), honors timeoutSec, never throws (executor reject →
non-blocking-error HookOutput). Injected clock for testable durations.
- merge: mergeHookOutputs — most-restrictive fold (deny>ask>allow, sticky stop,
block reasons joined, context/system-messages accumulated).
- hook/* session events (declaration-merged into SessionEventMap, log-only like
compact/*) + appendHookInvoked/appendHookResult helpers.
updatedInput is parsed but NOT honored (deferred pre-tool-input-rewrite RFC); a
bridge logs+warns. 47 unit tests at per-file 100% (matcher per-mode, codec per
exit-code/field, runner plumbing w/ stub executor, merge precedence, hook/*
helpers). RFC: implemented/feature/2026-06-30-hook-protocol-lib.md.
2026-07-01 00:38:06 +08:00
|
|
|
packages/hooks/hook-protocol:
|
|
|
|
|
devDependencies:
|
|
|
|
|
'@deepseek-ai/dsh-bash':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../bash/bash
|
|
|
|
|
'@deepseek-ai/dsh-session':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/session
|
|
|
|
|
cordis:
|
|
|
|
|
specifier: ^4.0.0-rc.6
|
|
|
|
|
version: 4.0.0-rc.6(@cordisjs/plugin-include@1.0.4)(@cordisjs/plugin-loader@1.0.0-rc.4)
|
|
|
|
|
|
feat(hooks): dsh-hooks-claude + dsh-hooks-codex bridges (hooks stack PR-F)
The two bridge plugins that run a user's existing Claude Code / Codex hook
config on the harness's typed interception seams, built on the shared
dsh-hook-protocol library. A bridge is a faithfulness adapter, not a power
tool: anything it does a native cordis plugin does more powerfully — the
bridge exists only to run UNMODIFIED external hooks.
- dsh-hooks-claude: CC dialect. Seven hook points (SessionStart,
UserPromptSubmit, PreToolUse, PostToolUse, Stop, SubagentStart,
SubagentStop), CC per-event stdin payloads, env + ${CLAUDE_PLUGIN_ROOT}/
${CLAUDE_PROJECT_DIR} substitution, literal-or-regex matcher.
- dsh-hooks-codex: Codex dialect — a deliberate subset. Five hook points,
always-regex matcher, snake_case payloads (turn_id/model, no trailing
newline), no env/substitution, block-only decisions.
Both map the neutral merged outcome onto the seam's typed Decision and stamp
an explicit {kind:'plugin'} source on injected context (so it is never
mislabeled as a user prompt). Config parse-failure is contained; only command
hooks run. updatedInput is logged+warned (input rewrite deferred); the Stop
loop-guard is deferred (TODO).
Tests: per-file 100% — config-parse unit branches + per-seam mappings
end-to-end through the REAL loop + REAL bash + REAL shell scripts (scripted
mock model only) + a real-Loader export-shape guard. A keyless ACP snapshot
scenario (hook-prompt-block) proves a UserPromptSubmit hook blocks a prompt
end-to-end (rejected turn -> ACP cancelled, hook/* events in the log); a
with-key e2e (hooks.e2e.ts) proves a PreToolUse hook blocks real bash
(verified on disk). The snapshot normalizer now scrubs hook/result.durationMs.
RFC: docs/rfc/implemented/feature/2026-06-30-hook-bridges.md
2026-07-01 04:22:00 +08:00
|
|
|
packages/hooks/hooks-claude:
|
|
|
|
|
dependencies:
|
|
|
|
|
schemastery:
|
|
|
|
|
specifier: ^3.18.0
|
|
|
|
|
version: 3.18.0
|
|
|
|
|
devDependencies:
|
|
|
|
|
'@deepseek-ai/dsh-agent':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/agent
|
|
|
|
|
'@deepseek-ai/dsh-agent-loop':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/agent-loop
|
|
|
|
|
'@deepseek-ai/dsh-bash':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../bash/bash
|
|
|
|
|
'@deepseek-ai/dsh-bash-local':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../bash/bash-local
|
|
|
|
|
'@deepseek-ai/dsh-hook-protocol':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../hook-protocol
|
|
|
|
|
'@deepseek-ai/dsh-llm':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../llm/llm
|
|
|
|
|
'@deepseek-ai/dsh-session':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/session
|
|
|
|
|
'@deepseek-ai/dsh-subagent':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../subagent/subagent
|
|
|
|
|
'@deepseek-ai/dsh-system-prompt':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/system-prompt
|
|
|
|
|
'@deepseek-ai/dsh-tools':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/tools
|
|
|
|
|
cordis:
|
|
|
|
|
specifier: ^4.0.0-rc.6
|
|
|
|
|
version: 4.0.0-rc.6(@cordisjs/plugin-include@1.0.4)(@cordisjs/plugin-loader@1.0.0-rc.4)
|
|
|
|
|
|
|
|
|
|
packages/hooks/hooks-codex:
|
|
|
|
|
dependencies:
|
|
|
|
|
schemastery:
|
|
|
|
|
specifier: ^3.18.0
|
|
|
|
|
version: 3.18.0
|
|
|
|
|
devDependencies:
|
|
|
|
|
'@deepseek-ai/dsh-agent':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/agent
|
|
|
|
|
'@deepseek-ai/dsh-agent-loop':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/agent-loop
|
|
|
|
|
'@deepseek-ai/dsh-bash':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../bash/bash
|
|
|
|
|
'@deepseek-ai/dsh-bash-local':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../bash/bash-local
|
|
|
|
|
'@deepseek-ai/dsh-hook-protocol':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../hook-protocol
|
|
|
|
|
'@deepseek-ai/dsh-llm':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../llm/llm
|
|
|
|
|
'@deepseek-ai/dsh-session':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/session
|
|
|
|
|
'@deepseek-ai/dsh-system-prompt':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/system-prompt
|
|
|
|
|
'@deepseek-ai/dsh-tools':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/tools
|
|
|
|
|
cordis:
|
|
|
|
|
specifier: ^4.0.0-rc.6
|
|
|
|
|
version: 4.0.0-rc.6(@cordisjs/plugin-include@1.0.4)(@cordisjs/plugin-loader@1.0.0-rc.4)
|
|
|
|
|
|
Reorganize packages into a modular hierarchy
Move the 18 flat packages/<name> packages into role-grouped dirs:
core/, llm/, bash/, session-persistence/, ui/, support/. Group dirs are
pure containers; each package keeps its @deepseek-ai/dsh-* name.
Collapse the per-package tsconfig paths maps (base + typecheck) into one
@deepseek-ai/dsh-* wildcard with a candidate per group, and derive the
publint list from the hierarchy. Update all depth-coupled globs/configs
(workspace, tsdown, vitest, eslint, knip, tsconfig includes/refs,
per-package tsconfigs, generators, doc-script scopes, type-equiv manifest)
and the cross-package/script relative imports in tests.
Fix doc-typecheck's workspacePaths() to parse tsconfig JSONC via the
TypeScript API instead of a regex comment-strip, which corrupted the
new wildcard `/*/` path candidates.
WIP: doc cross-links and package/RFC docs still to update.
2026-06-20 22:55:20 +08:00
|
|
|
packages/llm/llm:
|
2026-06-16 14:55:37 +08:00
|
|
|
devDependencies:
|
feat(types): brand bash ids + stop brand erosion; extract Branded to dsh-brand
Type-only change (brands are zero-cost casts; no runtime/wire impact). Closes
the two gaps in the "brand ids that cross package boundaries" policy and fixes
the dependency direction so a capability package never pulls in an unrelated one.
- Extract the `Branded<B>` primitive into a new standalone type-only package
`@deepseek-ai/dsh-brand` (packages/util/brand) with no harness-package deps.
dsh-llm keeps its owned CallId but imports Branded from dsh-brand; dsh-session,
dsh-agent, and dsh-bash all import Branded from there. dsh-bash depends on
dsh-brand ALONE — never on dsh-llm or dsh-session (the architectural fix: a
generic execution backend must not couple to the LLM or session vocabulary).
- Mint BashTaskId + OwnerToken in dsh-bash and thread them through BashTask.id,
the get/ownerOf/list/readOutput/kill seam, the bash-local generation site, and
the dsh-tool-bash validate/access surface. OwnerToken is a DISTINCT brand from
SessionId so the seam stays decoupled; dsh-tool-bash is the single boundary
that casts SessionId -> OwnerToken.
- Brand at the SOURCE, not via mid-pipeline casts: agent-loop's Config types
agents[].id as AgentId and resumeSessionId as SessionId, so the brand enters
at the config boundary and the inner create()/resume casts disappear (only the
genuinely-new per-run session-id string is cast).
- Stop brand erosion: propagate CallId/SessionId/AgentId to the registry/store
Map keys and public params/exports (SessionStore, AgentRegistry + factory
options, the ACP session-id surface + ToolPresenter CallId map, the
persistence coordinator, invariants pendingCalls, the pi-ai tool-call maps).
- Docs: document BashTaskId/OwnerToken in bash.md (type-equiv re-pasted), point
the Branded type-equiv at dsh-brand, fix stale param types in the session/
agent/bash READMEs, regenerate the cordis catalog + module graph.
Implements docs/rfc/proposed/architecture/2026-06-20-branded-ids.md
2026-06-21 07:17:25 +08:00
|
|
|
'@deepseek-ai/dsh-brand':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../util/brand
|
2026-06-16 14:55:37 +08:00
|
|
|
cordis:
|
|
|
|
|
specifier: ^4.0.0-rc.6
|
|
|
|
|
version: 4.0.0-rc.6(@cordisjs/plugin-include@1.0.4)(@cordisjs/plugin-loader@1.0.0-rc.4)
|
|
|
|
|
|
Reorganize packages into a modular hierarchy
Move the 18 flat packages/<name> packages into role-grouped dirs:
core/, llm/, bash/, session-persistence/, ui/, support/. Group dirs are
pure containers; each package keeps its @deepseek-ai/dsh-* name.
Collapse the per-package tsconfig paths maps (base + typecheck) into one
@deepseek-ai/dsh-* wildcard with a candidate per group, and derive the
publint list from the hierarchy. Update all depth-coupled globs/configs
(workspace, tsdown, vitest, eslint, knip, tsconfig includes/refs,
per-package tsconfigs, generators, doc-script scopes, type-equiv manifest)
and the cross-package/script relative imports in tests.
Fix doc-typecheck's workspacePaths() to parse tsconfig JSONC via the
TypeScript API instead of a regex comment-strip, which corrupted the
new wildcard `/*/` path candidates.
WIP: doc cross-links and package/RFC docs still to update.
2026-06-20 22:55:20 +08:00
|
|
|
packages/llm/llm-deepseek:
|
2026-06-16 14:55:37 +08:00
|
|
|
dependencies:
|
|
|
|
|
schemastery:
|
|
|
|
|
specifier: ^3.18.0
|
|
|
|
|
version: 3.18.0
|
|
|
|
|
devDependencies:
|
|
|
|
|
'@deepseek-ai/dsh-llm':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../llm
|
|
|
|
|
cordis:
|
|
|
|
|
specifier: ^4.0.0-rc.6
|
|
|
|
|
version: 4.0.0-rc.6(@cordisjs/plugin-include@1.0.4)(@cordisjs/plugin-loader@1.0.0-rc.4)
|
|
|
|
|
|
Reorganize packages into a modular hierarchy
Move the 18 flat packages/<name> packages into role-grouped dirs:
core/, llm/, bash/, session-persistence/, ui/, support/. Group dirs are
pure containers; each package keeps its @deepseek-ai/dsh-* name.
Collapse the per-package tsconfig paths maps (base + typecheck) into one
@deepseek-ai/dsh-* wildcard with a candidate per group, and derive the
publint list from the hierarchy. Update all depth-coupled globs/configs
(workspace, tsdown, vitest, eslint, knip, tsconfig includes/refs,
per-package tsconfigs, generators, doc-script scopes, type-equiv manifest)
and the cross-package/script relative imports in tests.
Fix doc-typecheck's workspacePaths() to parse tsconfig JSONC via the
TypeScript API instead of a regex comment-strip, which corrupted the
new wildcard `/*/` path candidates.
WIP: doc cross-links and package/RFC docs still to update.
2026-06-20 22:55:20 +08:00
|
|
|
packages/llm/llm-pi-ai:
|
2026-06-16 14:55:37 +08:00
|
|
|
dependencies:
|
|
|
|
|
'@earendil-works/pi-ai':
|
|
|
|
|
specifier: ^0.79.1
|
|
|
|
|
version: 0.79.3(ws@8.21.0)(zod@4.4.3)
|
|
|
|
|
schemastery:
|
|
|
|
|
specifier: ^3.18.0
|
|
|
|
|
version: 3.18.0
|
|
|
|
|
devDependencies:
|
|
|
|
|
'@deepseek-ai/dsh-llm':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../llm
|
|
|
|
|
'@deepseek-ai/dsh-llm-deepseek':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../llm-deepseek
|
|
|
|
|
cordis:
|
|
|
|
|
specifier: ^4.0.0-rc.6
|
|
|
|
|
version: 4.0.0-rc.6(@cordisjs/plugin-include@1.0.4)(@cordisjs/plugin-loader@1.0.0-rc.4)
|
|
|
|
|
|
Reorganize packages into a modular hierarchy
Move the 18 flat packages/<name> packages into role-grouped dirs:
core/, llm/, bash/, session-persistence/, ui/, support/. Group dirs are
pure containers; each package keeps its @deepseek-ai/dsh-* name.
Collapse the per-package tsconfig paths maps (base + typecheck) into one
@deepseek-ai/dsh-* wildcard with a candidate per group, and derive the
publint list from the hierarchy. Update all depth-coupled globs/configs
(workspace, tsdown, vitest, eslint, knip, tsconfig includes/refs,
per-package tsconfigs, generators, doc-script scopes, type-equiv manifest)
and the cross-package/script relative imports in tests.
Fix doc-typecheck's workspacePaths() to parse tsconfig JSONC via the
TypeScript API instead of a regex comment-strip, which corrupted the
new wildcard `/*/` path candidates.
WIP: doc cross-links and package/RFC docs still to update.
2026-06-20 22:55:20 +08:00
|
|
|
packages/session-persistence/session-persistence:
|
2026-06-16 17:01:36 +08:00
|
|
|
devDependencies:
|
|
|
|
|
'@deepseek-ai/dsh-session':
|
|
|
|
|
specifier: workspace:^
|
Reorganize packages into a modular hierarchy
Move the 18 flat packages/<name> packages into role-grouped dirs:
core/, llm/, bash/, session-persistence/, ui/, support/. Group dirs are
pure containers; each package keeps its @deepseek-ai/dsh-* name.
Collapse the per-package tsconfig paths maps (base + typecheck) into one
@deepseek-ai/dsh-* wildcard with a candidate per group, and derive the
publint list from the hierarchy. Update all depth-coupled globs/configs
(workspace, tsdown, vitest, eslint, knip, tsconfig includes/refs,
per-package tsconfigs, generators, doc-script scopes, type-equiv manifest)
and the cross-package/script relative imports in tests.
Fix doc-typecheck's workspacePaths() to parse tsconfig JSONC via the
TypeScript API instead of a regex comment-strip, which corrupted the
new wildcard `/*/` path candidates.
WIP: doc cross-links and package/RFC docs still to update.
2026-06-20 22:55:20 +08:00
|
|
|
version: link:../../core/session
|
2026-06-16 17:01:36 +08:00
|
|
|
cordis:
|
|
|
|
|
specifier: ^4.0.0-rc.6
|
|
|
|
|
version: 4.0.0-rc.6(@cordisjs/plugin-include@1.0.4)(@cordisjs/plugin-loader@1.0.0-rc.4)
|
|
|
|
|
|
Reorganize packages into a modular hierarchy
Move the 18 flat packages/<name> packages into role-grouped dirs:
core/, llm/, bash/, session-persistence/, ui/, support/. Group dirs are
pure containers; each package keeps its @deepseek-ai/dsh-* name.
Collapse the per-package tsconfig paths maps (base + typecheck) into one
@deepseek-ai/dsh-* wildcard with a candidate per group, and derive the
publint list from the hierarchy. Update all depth-coupled globs/configs
(workspace, tsdown, vitest, eslint, knip, tsconfig includes/refs,
per-package tsconfigs, generators, doc-script scopes, type-equiv manifest)
and the cross-package/script relative imports in tests.
Fix doc-typecheck's workspacePaths() to parse tsconfig JSONC via the
TypeScript API instead of a regex comment-strip, which corrupted the
new wildcard `/*/` path candidates.
WIP: doc cross-links and package/RFC docs still to update.
2026-06-20 22:55:20 +08:00
|
|
|
packages/session-persistence/session-persistence-jsonl:
|
2026-06-16 17:01:36 +08:00
|
|
|
dependencies:
|
|
|
|
|
schemastery:
|
2026-06-16 17:09:39 +08:00
|
|
|
specifier: ^3.18.0
|
|
|
|
|
version: 3.18.0
|
|
|
|
|
devDependencies:
|
|
|
|
|
'@deepseek-ai/dsh-session':
|
|
|
|
|
specifier: workspace:^
|
Reorganize packages into a modular hierarchy
Move the 18 flat packages/<name> packages into role-grouped dirs:
core/, llm/, bash/, session-persistence/, ui/, support/. Group dirs are
pure containers; each package keeps its @deepseek-ai/dsh-* name.
Collapse the per-package tsconfig paths maps (base + typecheck) into one
@deepseek-ai/dsh-* wildcard with a candidate per group, and derive the
publint list from the hierarchy. Update all depth-coupled globs/configs
(workspace, tsdown, vitest, eslint, knip, tsconfig includes/refs,
per-package tsconfigs, generators, doc-script scopes, type-equiv manifest)
and the cross-package/script relative imports in tests.
Fix doc-typecheck's workspacePaths() to parse tsconfig JSONC via the
TypeScript API instead of a regex comment-strip, which corrupted the
new wildcard `/*/` path candidates.
WIP: doc cross-links and package/RFC docs still to update.
2026-06-20 22:55:20 +08:00
|
|
|
version: link:../../core/session
|
2026-06-16 17:09:39 +08:00
|
|
|
'@deepseek-ai/dsh-session-persistence':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../session-persistence
|
|
|
|
|
cordis:
|
|
|
|
|
specifier: ^4.0.0-rc.6
|
|
|
|
|
version: 4.0.0-rc.6(@cordisjs/plugin-include@1.0.4)(@cordisjs/plugin-loader@1.0.0-rc.4)
|
|
|
|
|
|
Reorganize packages into a modular hierarchy
Move the 18 flat packages/<name> packages into role-grouped dirs:
core/, llm/, bash/, session-persistence/, ui/, support/. Group dirs are
pure containers; each package keeps its @deepseek-ai/dsh-* name.
Collapse the per-package tsconfig paths maps (base + typecheck) into one
@deepseek-ai/dsh-* wildcard with a candidate per group, and derive the
publint list from the hierarchy. Update all depth-coupled globs/configs
(workspace, tsdown, vitest, eslint, knip, tsconfig includes/refs,
per-package tsconfigs, generators, doc-script scopes, type-equiv manifest)
and the cross-package/script relative imports in tests.
Fix doc-typecheck's workspacePaths() to parse tsconfig JSONC via the
TypeScript API instead of a regex comment-strip, which corrupted the
new wildcard `/*/` path candidates.
WIP: doc cross-links and package/RFC docs still to update.
2026-06-20 22:55:20 +08:00
|
|
|
packages/session-persistence/session-persistence-sqlite:
|
2026-06-16 17:09:39 +08:00
|
|
|
dependencies:
|
|
|
|
|
schemastery:
|
2026-06-16 17:01:36 +08:00
|
|
|
specifier: ^3.18.0
|
|
|
|
|
version: 3.18.0
|
|
|
|
|
devDependencies:
|
|
|
|
|
'@deepseek-ai/dsh-session':
|
|
|
|
|
specifier: workspace:^
|
Reorganize packages into a modular hierarchy
Move the 18 flat packages/<name> packages into role-grouped dirs:
core/, llm/, bash/, session-persistence/, ui/, support/. Group dirs are
pure containers; each package keeps its @deepseek-ai/dsh-* name.
Collapse the per-package tsconfig paths maps (base + typecheck) into one
@deepseek-ai/dsh-* wildcard with a candidate per group, and derive the
publint list from the hierarchy. Update all depth-coupled globs/configs
(workspace, tsdown, vitest, eslint, knip, tsconfig includes/refs,
per-package tsconfigs, generators, doc-script scopes, type-equiv manifest)
and the cross-package/script relative imports in tests.
Fix doc-typecheck's workspacePaths() to parse tsconfig JSONC via the
TypeScript API instead of a regex comment-strip, which corrupted the
new wildcard `/*/` path candidates.
WIP: doc cross-links and package/RFC docs still to update.
2026-06-20 22:55:20 +08:00
|
|
|
version: link:../../core/session
|
2026-06-16 17:01:36 +08:00
|
|
|
'@deepseek-ai/dsh-session-persistence':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../session-persistence
|
|
|
|
|
cordis:
|
|
|
|
|
specifier: ^4.0.0-rc.6
|
|
|
|
|
version: 4.0.0-rc.6(@cordisjs/plugin-include@1.0.4)(@cordisjs/plugin-loader@1.0.0-rc.4)
|
|
|
|
|
|
Add subagent capability seam: interface, mock backend, model-facing tool
Introduce the `packages/subagent/` group and the abstract subagent seam — an
agent delegating to a child agent — as a named-provider registry (`ctx.subagents`),
unlike the single-implementation bash seam, so multiple transports (in-process,
ACP, future A2A) coexist. This first PR lands the interface, a scripted test
backend, and the model-facing tool, validated through the real cordis load path.
- dsh-subagent: SubagentService registry + SubagentProvider/SubagentRun
vocabulary + subagent/start|end events. Start-time capabilities (outputSchema,
depthLimit, toolFilter) are checked pre-start and rejected loud; runtime
capabilities (sendMessage, resume) are optional methods on SubagentRun.
- dsh-subagent-mock (support): scripted provider for keyless, deterministic
tests through the real Loader/export path.
- dsh-tool-subagent: the model-facing `subagent` tool, config-bound to one
provider; synchronous collect with try/finally dispose, signal->cancel
bridging, and non-completed-stop-reason -> isError mapping.
- Proposed RFC documenting the seam, the fork-vs-spawn-as-separate-backends
decision, own-session isolation, synchronous-collect scope, and the deferral
of background/poll/spill to a future unification with bash.
- Wire the new group into tsconfigs, build refs, package hierarchy docs, the
module graph, and the cordis catalog.
RFC: docs/rfc/proposed/feature/2026-06-21-subagent-capability-seam.md
2026-06-21 22:31:56 +08:00
|
|
|
packages/subagent/subagent:
|
|
|
|
|
devDependencies:
|
|
|
|
|
'@deepseek-ai/dsh-agent':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/agent
|
|
|
|
|
'@deepseek-ai/dsh-llm':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../llm/llm
|
|
|
|
|
'@deepseek-ai/dsh-tools':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/tools
|
|
|
|
|
cordis:
|
|
|
|
|
specifier: ^4.0.0-rc.6
|
|
|
|
|
version: 4.0.0-rc.6(@cordisjs/plugin-include@1.0.4)(@cordisjs/plugin-loader@1.0.0-rc.4)
|
|
|
|
|
|
Add the ACP subagent backend: out-of-process delegation (PR3)
The first OUT-OF-PROCESS subagent backend, proving the seam generalizes past the
in-process backends. @deepseek-ai/dsh-subagent-acp runs each child agent in a
spawned subprocess, driven over the Agent Client Protocol as the CLIENT — the
direction-inverted twin of the dsh-acp server bridge. Point the configured
command at the acp-agent example and the harness talks to its own process.
- Fresh process per run: start spawns, runs one ACP session (initialize →
newSession → prompt), dispose kills the subprocess and awaits its exit.
- Minimal client stub: advertises no fs/terminal; accumulates agent_message_chunk
text as the result output; auto-answers session/request_permission by a
configured policy (reject default / allow). No start-time capabilities (an
out-of-process child can't enforce the parent's depth/tool-filter); ignores
request.parent; injects only `subagents`.
- StopReason mapping (end_turn→completed, cancelled→aborted, …); result resolves
error/aborted on a child failure, never rejects (seam contract).
- Security: credential-shaped ambient env vars are scrubbed; the child's own key
is forwarded only via explicit config.env. A spawn-level error (ENOENT) is
captured and raced against the ACP drive so a bad command settles error rather
than crashing the parent.
Testing designed at every tier: keyless integration drives a scripted mock ACP
server subprocess (cancellation incl. the pre-newSession race and a
torn-pipe-after-cancel, permission auto-answer, non-message updates, spawn
failure, HMR, export shape) at 100% coverage; a with-key e2e drives the REAL
acp-agent example process (PONG + real file write, verified on disk) — the
harness driving itself. Snapshot coverage of an ACP child is deferred as
TODO(acp-subagent-replay) (each child is its own process with its own replay).
Stayed on @agentclientprotocol/sdk 0.25.1: the proposed 0.28.x bump only
deprecates the stable ClientSideConnection/AgentSideConnection API this layer
uses (33 sites incl. the server bridge), turning no-deprecated red across code
this PR shouldn't rewrite — that fluent-API migration is its own follow-up. The
backend needs nothing 0.28.x adds.
This completes the subagent seam stack (PR1 interface → PR2 in-process → PR2.5
snapshot infra → PR3 ACP); the seam RFC moves to implemented/, amended.
2026-06-22 10:47:02 +08:00
|
|
|
packages/subagent/subagent-acp:
|
|
|
|
|
dependencies:
|
|
|
|
|
'@agentclientprotocol/sdk':
|
|
|
|
|
specifier: 0.25.1
|
|
|
|
|
version: 0.25.1(zod@4.4.3)
|
|
|
|
|
schemastery:
|
|
|
|
|
specifier: ^3.18.0
|
|
|
|
|
version: 3.18.0
|
|
|
|
|
devDependencies:
|
|
|
|
|
'@cordisjs/plugin-loader':
|
|
|
|
|
specifier: ^1.0.0-rc.4
|
|
|
|
|
version: 1.0.0-rc.4(cordis@4.0.0-rc.6)
|
|
|
|
|
'@deepseek-ai/dsh-agent':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/agent
|
|
|
|
|
'@deepseek-ai/dsh-llm':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../llm/llm
|
|
|
|
|
'@deepseek-ai/dsh-subagent':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../subagent
|
|
|
|
|
cordis:
|
|
|
|
|
specifier: ^4.0.0-rc.6
|
|
|
|
|
version: 4.0.0-rc.6(@cordisjs/plugin-include@1.0.4)(@cordisjs/plugin-loader@1.0.0-rc.4)
|
|
|
|
|
|
Add in-process subagent backends: spawn (fresh) and fork (seeded)
The second PR of the subagent seam: the two in-process backends that run a
child agent on the same cordis context, reusing the agent factory's quiescent
AgentHandle teardown. Both register on ctx.subagents (PR1's named-provider
registry) and share one run driver.
- dsh-subagent-spawn: a FRESH child via ctx.agents.create — own session, the
parent's model by default (overridable), zero inherited conversation. Also
exports the shared in-process run driver (startInProcessRun): mint ids, stamp
cwd/parentSession-lineage/depth, drive the one-shot (send → whenIdle), read
the last assistant/message + turn/end reason, dispose to quiescence.
- dsh-subagent-fork: a child SEEDED with the parent's balanced completed-turn
prefix (the log up to and including its last turn/end), so the child inherits
context. The in-flight unbalanced turn is excluded — a raw seed would fail the
invariants replay. Proven: a regression test goes red if the boundary seeds
the open turn.
- Seam extension: CreateAgentOptions.seed, threaded through AgentLoop.createAgent
→ ctx.sessions.prepare({ seed }) (the primitive resume already used). This is
the fork-lineage path the TODO(sub-agents) markers anticipated.
- Depth: a merge-extensible AgentOptions.subagentDepth (0 top-level, parent+1 for
a child); the depthLimit capability refuses a spawn past request.maxDepth.
Tests: real-loop unit tests for both backends (mock MODEL only, real loop +
invariants), a multi-subagent test (one parent drives a fork AND a spawn child
then keeps working), and a with-key e2e (a real parent delegates via the
`subagent` tool to a real child that writes a file on disk — world-verified).
100% per-file coverage. The coding-agent demo wires the spawn backend + tool.
Snapshot coverage of nested agents is deferred to a stacked follow-up
(TODO(subagent-snapshots)): dsh-llm-replay is a single global positional cursor
that cannot route calls to a parent vs. a child on one context. Recorded in the
RFC's deferrals and a new AGENTS.md rule: designing a subsystem must design its
test infrastructure END TO END up front, verifying the snapshot/e2e harness can
express the new shape — a gap this plan hit.
2026-06-22 05:58:40 +08:00
|
|
|
packages/subagent/subagent-fork:
|
|
|
|
|
dependencies:
|
|
|
|
|
schemastery:
|
|
|
|
|
specifier: ^3.18.0
|
|
|
|
|
version: 3.18.0
|
|
|
|
|
devDependencies:
|
|
|
|
|
'@cordisjs/plugin-loader':
|
|
|
|
|
specifier: ^1.0.0-rc.4
|
|
|
|
|
version: 1.0.0-rc.4(cordis@4.0.0-rc.6)
|
|
|
|
|
'@deepseek-ai/dsh-agent':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/agent
|
|
|
|
|
'@deepseek-ai/dsh-agent-loop':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/agent-loop
|
|
|
|
|
'@deepseek-ai/dsh-invariants':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../support/invariants
|
|
|
|
|
'@deepseek-ai/dsh-llm':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../llm/llm
|
|
|
|
|
'@deepseek-ai/dsh-session':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/session
|
|
|
|
|
'@deepseek-ai/dsh-subagent':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../subagent
|
2026-06-22 14:27:38 +08:00
|
|
|
'@deepseek-ai/dsh-subagent-inprocess':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../subagent-inprocess
|
Add in-process subagent backends: spawn (fresh) and fork (seeded)
The second PR of the subagent seam: the two in-process backends that run a
child agent on the same cordis context, reusing the agent factory's quiescent
AgentHandle teardown. Both register on ctx.subagents (PR1's named-provider
registry) and share one run driver.
- dsh-subagent-spawn: a FRESH child via ctx.agents.create — own session, the
parent's model by default (overridable), zero inherited conversation. Also
exports the shared in-process run driver (startInProcessRun): mint ids, stamp
cwd/parentSession-lineage/depth, drive the one-shot (send → whenIdle), read
the last assistant/message + turn/end reason, dispose to quiescence.
- dsh-subagent-fork: a child SEEDED with the parent's balanced completed-turn
prefix (the log up to and including its last turn/end), so the child inherits
context. The in-flight unbalanced turn is excluded — a raw seed would fail the
invariants replay. Proven: a regression test goes red if the boundary seeds
the open turn.
- Seam extension: CreateAgentOptions.seed, threaded through AgentLoop.createAgent
→ ctx.sessions.prepare({ seed }) (the primitive resume already used). This is
the fork-lineage path the TODO(sub-agents) markers anticipated.
- Depth: a merge-extensible AgentOptions.subagentDepth (0 top-level, parent+1 for
a child); the depthLimit capability refuses a spawn past request.maxDepth.
Tests: real-loop unit tests for both backends (mock MODEL only, real loop +
invariants), a multi-subagent test (one parent drives a fork AND a spawn child
then keeps working), and a with-key e2e (a real parent delegates via the
`subagent` tool to a real child that writes a file on disk — world-verified).
100% per-file coverage. The coding-agent demo wires the spawn backend + tool.
Snapshot coverage of nested agents is deferred to a stacked follow-up
(TODO(subagent-snapshots)): dsh-llm-replay is a single global positional cursor
that cannot route calls to a parent vs. a child on one context. Recorded in the
RFC's deferrals and a new AGENTS.md rule: designing a subsystem must design its
test infrastructure END TO END up front, verifying the snapshot/e2e harness can
express the new shape — a gap this plan hit.
2026-06-22 05:58:40 +08:00
|
|
|
'@deepseek-ai/dsh-subagent-spawn':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../subagent-spawn
|
|
|
|
|
'@deepseek-ai/dsh-system-prompt':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/system-prompt
|
|
|
|
|
'@deepseek-ai/dsh-tools':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/tools
|
|
|
|
|
cordis:
|
|
|
|
|
specifier: ^4.0.0-rc.6
|
|
|
|
|
version: 4.0.0-rc.6(@cordisjs/plugin-include@1.0.4)(@cordisjs/plugin-loader@1.0.0-rc.4)
|
|
|
|
|
|
2026-06-22 14:27:38 +08:00
|
|
|
packages/subagent/subagent-inprocess:
|
|
|
|
|
devDependencies:
|
|
|
|
|
'@deepseek-ai/dsh-agent':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/agent
|
|
|
|
|
'@deepseek-ai/dsh-agent-loop':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/agent-loop
|
|
|
|
|
'@deepseek-ai/dsh-invariants':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../support/invariants
|
|
|
|
|
'@deepseek-ai/dsh-llm':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../llm/llm
|
|
|
|
|
'@deepseek-ai/dsh-session':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/session
|
|
|
|
|
'@deepseek-ai/dsh-subagent':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../subagent
|
|
|
|
|
'@deepseek-ai/dsh-system-prompt':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/system-prompt
|
|
|
|
|
'@deepseek-ai/dsh-tools':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/tools
|
|
|
|
|
cordis:
|
|
|
|
|
specifier: ^4.0.0-rc.6
|
|
|
|
|
version: 4.0.0-rc.6(@cordisjs/plugin-include@1.0.4)(@cordisjs/plugin-loader@1.0.0-rc.4)
|
|
|
|
|
|
Add in-process subagent backends: spawn (fresh) and fork (seeded)
The second PR of the subagent seam: the two in-process backends that run a
child agent on the same cordis context, reusing the agent factory's quiescent
AgentHandle teardown. Both register on ctx.subagents (PR1's named-provider
registry) and share one run driver.
- dsh-subagent-spawn: a FRESH child via ctx.agents.create — own session, the
parent's model by default (overridable), zero inherited conversation. Also
exports the shared in-process run driver (startInProcessRun): mint ids, stamp
cwd/parentSession-lineage/depth, drive the one-shot (send → whenIdle), read
the last assistant/message + turn/end reason, dispose to quiescence.
- dsh-subagent-fork: a child SEEDED with the parent's balanced completed-turn
prefix (the log up to and including its last turn/end), so the child inherits
context. The in-flight unbalanced turn is excluded — a raw seed would fail the
invariants replay. Proven: a regression test goes red if the boundary seeds
the open turn.
- Seam extension: CreateAgentOptions.seed, threaded through AgentLoop.createAgent
→ ctx.sessions.prepare({ seed }) (the primitive resume already used). This is
the fork-lineage path the TODO(sub-agents) markers anticipated.
- Depth: a merge-extensible AgentOptions.subagentDepth (0 top-level, parent+1 for
a child); the depthLimit capability refuses a spawn past request.maxDepth.
Tests: real-loop unit tests for both backends (mock MODEL only, real loop +
invariants), a multi-subagent test (one parent drives a fork AND a spawn child
then keeps working), and a with-key e2e (a real parent delegates via the
`subagent` tool to a real child that writes a file on disk — world-verified).
100% per-file coverage. The coding-agent demo wires the spawn backend + tool.
Snapshot coverage of nested agents is deferred to a stacked follow-up
(TODO(subagent-snapshots)): dsh-llm-replay is a single global positional cursor
that cannot route calls to a parent vs. a child on one context. Recorded in the
RFC's deferrals and a new AGENTS.md rule: designing a subsystem must design its
test infrastructure END TO END up front, verifying the snapshot/e2e harness can
express the new shape — a gap this plan hit.
2026-06-22 05:58:40 +08:00
|
|
|
packages/subagent/subagent-spawn:
|
|
|
|
|
dependencies:
|
|
|
|
|
schemastery:
|
|
|
|
|
specifier: ^3.18.0
|
|
|
|
|
version: 3.18.0
|
|
|
|
|
devDependencies:
|
|
|
|
|
'@cordisjs/plugin-loader':
|
|
|
|
|
specifier: ^1.0.0-rc.4
|
|
|
|
|
version: 1.0.0-rc.4(cordis@4.0.0-rc.6)
|
|
|
|
|
'@deepseek-ai/dsh-agent':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/agent
|
|
|
|
|
'@deepseek-ai/dsh-agent-loop':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/agent-loop
|
|
|
|
|
'@deepseek-ai/dsh-bash-local':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../bash/bash-local
|
|
|
|
|
'@deepseek-ai/dsh-invariants':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../support/invariants
|
|
|
|
|
'@deepseek-ai/dsh-llm':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../llm/llm
|
|
|
|
|
'@deepseek-ai/dsh-llm-deepseek':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../llm/llm-deepseek
|
|
|
|
|
'@deepseek-ai/dsh-session':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/session
|
|
|
|
|
'@deepseek-ai/dsh-subagent':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../subagent
|
2026-06-22 14:27:38 +08:00
|
|
|
'@deepseek-ai/dsh-subagent-inprocess':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../subagent-inprocess
|
Add in-process subagent backends: spawn (fresh) and fork (seeded)
The second PR of the subagent seam: the two in-process backends that run a
child agent on the same cordis context, reusing the agent factory's quiescent
AgentHandle teardown. Both register on ctx.subagents (PR1's named-provider
registry) and share one run driver.
- dsh-subagent-spawn: a FRESH child via ctx.agents.create — own session, the
parent's model by default (overridable), zero inherited conversation. Also
exports the shared in-process run driver (startInProcessRun): mint ids, stamp
cwd/parentSession-lineage/depth, drive the one-shot (send → whenIdle), read
the last assistant/message + turn/end reason, dispose to quiescence.
- dsh-subagent-fork: a child SEEDED with the parent's balanced completed-turn
prefix (the log up to and including its last turn/end), so the child inherits
context. The in-flight unbalanced turn is excluded — a raw seed would fail the
invariants replay. Proven: a regression test goes red if the boundary seeds
the open turn.
- Seam extension: CreateAgentOptions.seed, threaded through AgentLoop.createAgent
→ ctx.sessions.prepare({ seed }) (the primitive resume already used). This is
the fork-lineage path the TODO(sub-agents) markers anticipated.
- Depth: a merge-extensible AgentOptions.subagentDepth (0 top-level, parent+1 for
a child); the depthLimit capability refuses a spawn past request.maxDepth.
Tests: real-loop unit tests for both backends (mock MODEL only, real loop +
invariants), a multi-subagent test (one parent drives a fork AND a spawn child
then keeps working), and a with-key e2e (a real parent delegates via the
`subagent` tool to a real child that writes a file on disk — world-verified).
100% per-file coverage. The coding-agent demo wires the spawn backend + tool.
Snapshot coverage of nested agents is deferred to a stacked follow-up
(TODO(subagent-snapshots)): dsh-llm-replay is a single global positional cursor
that cannot route calls to a parent vs. a child on one context. Recorded in the
RFC's deferrals and a new AGENTS.md rule: designing a subsystem must design its
test infrastructure END TO END up front, verifying the snapshot/e2e harness can
express the new shape — a gap this plan hit.
2026-06-22 05:58:40 +08:00
|
|
|
'@deepseek-ai/dsh-system-prompt':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/system-prompt
|
|
|
|
|
'@deepseek-ai/dsh-tool-bash':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../bash/tool-bash
|
|
|
|
|
'@deepseek-ai/dsh-tool-subagent':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../tool-subagent
|
|
|
|
|
'@deepseek-ai/dsh-tools':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/tools
|
|
|
|
|
cordis:
|
|
|
|
|
specifier: ^4.0.0-rc.6
|
|
|
|
|
version: 4.0.0-rc.6(@cordisjs/plugin-include@1.0.4)(@cordisjs/plugin-loader@1.0.0-rc.4)
|
|
|
|
|
|
Add subagent capability seam: interface, mock backend, model-facing tool
Introduce the `packages/subagent/` group and the abstract subagent seam — an
agent delegating to a child agent — as a named-provider registry (`ctx.subagents`),
unlike the single-implementation bash seam, so multiple transports (in-process,
ACP, future A2A) coexist. This first PR lands the interface, a scripted test
backend, and the model-facing tool, validated through the real cordis load path.
- dsh-subagent: SubagentService registry + SubagentProvider/SubagentRun
vocabulary + subagent/start|end events. Start-time capabilities (outputSchema,
depthLimit, toolFilter) are checked pre-start and rejected loud; runtime
capabilities (sendMessage, resume) are optional methods on SubagentRun.
- dsh-subagent-mock (support): scripted provider for keyless, deterministic
tests through the real Loader/export path.
- dsh-tool-subagent: the model-facing `subagent` tool, config-bound to one
provider; synchronous collect with try/finally dispose, signal->cancel
bridging, and non-completed-stop-reason -> isError mapping.
- Proposed RFC documenting the seam, the fork-vs-spawn-as-separate-backends
decision, own-session isolation, synchronous-collect scope, and the deferral
of background/poll/spill to a future unification with bash.
- Wire the new group into tsconfigs, build refs, package hierarchy docs, the
module graph, and the cordis catalog.
RFC: docs/rfc/proposed/feature/2026-06-21-subagent-capability-seam.md
2026-06-21 22:31:56 +08:00
|
|
|
packages/subagent/tool-subagent:
|
|
|
|
|
dependencies:
|
|
|
|
|
schemastery:
|
|
|
|
|
specifier: ^3.18.0
|
|
|
|
|
version: 3.18.0
|
|
|
|
|
devDependencies:
|
|
|
|
|
'@cordisjs/plugin-loader':
|
|
|
|
|
specifier: ^1.0.0-rc.4
|
|
|
|
|
version: 1.0.0-rc.4(cordis@4.0.0-rc.6)
|
|
|
|
|
'@deepseek-ai/dsh-agent':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/agent
|
|
|
|
|
'@deepseek-ai/dsh-llm':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../llm/llm
|
|
|
|
|
'@deepseek-ai/dsh-subagent':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../subagent
|
|
|
|
|
'@deepseek-ai/dsh-subagent-mock':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../support/subagent-mock
|
|
|
|
|
'@deepseek-ai/dsh-system-prompt':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/system-prompt
|
|
|
|
|
'@deepseek-ai/dsh-tools':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/tools
|
|
|
|
|
cordis:
|
|
|
|
|
specifier: ^4.0.0-rc.6
|
|
|
|
|
version: 4.0.0-rc.6(@cordisjs/plugin-include@1.0.4)(@cordisjs/plugin-loader@1.0.0-rc.4)
|
|
|
|
|
|
Reorganize packages into a modular hierarchy
Move the 18 flat packages/<name> packages into role-grouped dirs:
core/, llm/, bash/, session-persistence/, ui/, support/. Group dirs are
pure containers; each package keeps its @deepseek-ai/dsh-* name.
Collapse the per-package tsconfig paths maps (base + typecheck) into one
@deepseek-ai/dsh-* wildcard with a candidate per group, and derive the
publint list from the hierarchy. Update all depth-coupled globs/configs
(workspace, tsdown, vitest, eslint, knip, tsconfig includes/refs,
per-package tsconfigs, generators, doc-script scopes, type-equiv manifest)
and the cross-package/script relative imports in tests.
Fix doc-typecheck's workspacePaths() to parse tsconfig JSONC via the
TypeScript API instead of a regex comment-strip, which corrupted the
new wildcard `/*/` path candidates.
WIP: doc cross-links and package/RFC docs still to update.
2026-06-20 22:55:20 +08:00
|
|
|
packages/support/invariants:
|
2026-06-16 14:55:37 +08:00
|
|
|
devDependencies:
|
Reorganize packages into a modular hierarchy
Move the 18 flat packages/<name> packages into role-grouped dirs:
core/, llm/, bash/, session-persistence/, ui/, support/. Group dirs are
pure containers; each package keeps its @deepseek-ai/dsh-* name.
Collapse the per-package tsconfig paths maps (base + typecheck) into one
@deepseek-ai/dsh-* wildcard with a candidate per group, and derive the
publint list from the hierarchy. Update all depth-coupled globs/configs
(workspace, tsdown, vitest, eslint, knip, tsconfig includes/refs,
per-package tsconfigs, generators, doc-script scopes, type-equiv manifest)
and the cross-package/script relative imports in tests.
Fix doc-typecheck's workspacePaths() to parse tsconfig JSONC via the
TypeScript API instead of a regex comment-strip, which corrupted the
new wildcard `/*/` path candidates.
WIP: doc cross-links and package/RFC docs still to update.
2026-06-20 22:55:20 +08:00
|
|
|
'@deepseek-ai/dsh-agent':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/agent
|
2026-06-16 14:55:37 +08:00
|
|
|
'@deepseek-ai/dsh-llm':
|
|
|
|
|
specifier: workspace:^
|
Reorganize packages into a modular hierarchy
Move the 18 flat packages/<name> packages into role-grouped dirs:
core/, llm/, bash/, session-persistence/, ui/, support/. Group dirs are
pure containers; each package keeps its @deepseek-ai/dsh-* name.
Collapse the per-package tsconfig paths maps (base + typecheck) into one
@deepseek-ai/dsh-* wildcard with a candidate per group, and derive the
publint list from the hierarchy. Update all depth-coupled globs/configs
(workspace, tsdown, vitest, eslint, knip, tsconfig includes/refs,
per-package tsconfigs, generators, doc-script scopes, type-equiv manifest)
and the cross-package/script relative imports in tests.
Fix doc-typecheck's workspacePaths() to parse tsconfig JSONC via the
TypeScript API instead of a regex comment-strip, which corrupted the
new wildcard `/*/` path candidates.
WIP: doc cross-links and package/RFC docs still to update.
2026-06-20 22:55:20 +08:00
|
|
|
version: link:../../llm/llm
|
|
|
|
|
'@deepseek-ai/dsh-session':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/session
|
2026-06-16 14:55:37 +08:00
|
|
|
cordis:
|
|
|
|
|
specifier: ^4.0.0-rc.6
|
|
|
|
|
version: 4.0.0-rc.6(@cordisjs/plugin-include@1.0.4)(@cordisjs/plugin-loader@1.0.0-rc.4)
|
|
|
|
|
|
Reorganize packages into a modular hierarchy
Move the 18 flat packages/<name> packages into role-grouped dirs:
core/, llm/, bash/, session-persistence/, ui/, support/. Group dirs are
pure containers; each package keeps its @deepseek-ai/dsh-* name.
Collapse the per-package tsconfig paths maps (base + typecheck) into one
@deepseek-ai/dsh-* wildcard with a candidate per group, and derive the
publint list from the hierarchy. Update all depth-coupled globs/configs
(workspace, tsdown, vitest, eslint, knip, tsconfig includes/refs,
per-package tsconfigs, generators, doc-script scopes, type-equiv manifest)
and the cross-package/script relative imports in tests.
Fix doc-typecheck's workspacePaths() to parse tsconfig JSONC via the
TypeScript API instead of a regex comment-strip, which corrupted the
new wildcard `/*/` path candidates.
WIP: doc cross-links and package/RFC docs still to update.
2026-06-20 22:55:20 +08:00
|
|
|
packages/support/llm-replay:
|
2026-06-16 14:55:37 +08:00
|
|
|
devDependencies:
|
|
|
|
|
'@deepseek-ai/dsh-llm':
|
|
|
|
|
specifier: workspace:^
|
Reorganize packages into a modular hierarchy
Move the 18 flat packages/<name> packages into role-grouped dirs:
core/, llm/, bash/, session-persistence/, ui/, support/. Group dirs are
pure containers; each package keeps its @deepseek-ai/dsh-* name.
Collapse the per-package tsconfig paths maps (base + typecheck) into one
@deepseek-ai/dsh-* wildcard with a candidate per group, and derive the
publint list from the hierarchy. Update all depth-coupled globs/configs
(workspace, tsdown, vitest, eslint, knip, tsconfig includes/refs,
per-package tsconfigs, generators, doc-script scopes, type-equiv manifest)
and the cross-package/script relative imports in tests.
Fix doc-typecheck's workspacePaths() to parse tsconfig JSONC via the
TypeScript API instead of a regex comment-strip, which corrupted the
new wildcard `/*/` path candidates.
WIP: doc cross-links and package/RFC docs still to update.
2026-06-20 22:55:20 +08:00
|
|
|
version: link:../../llm/llm
|
2026-06-16 14:55:37 +08:00
|
|
|
'@deepseek-ai/dsh-session':
|
|
|
|
|
specifier: workspace:^
|
Reorganize packages into a modular hierarchy
Move the 18 flat packages/<name> packages into role-grouped dirs:
core/, llm/, bash/, session-persistence/, ui/, support/. Group dirs are
pure containers; each package keeps its @deepseek-ai/dsh-* name.
Collapse the per-package tsconfig paths maps (base + typecheck) into one
@deepseek-ai/dsh-* wildcard with a candidate per group, and derive the
publint list from the hierarchy. Update all depth-coupled globs/configs
(workspace, tsdown, vitest, eslint, knip, tsconfig includes/refs,
per-package tsconfigs, generators, doc-script scopes, type-equiv manifest)
and the cross-package/script relative imports in tests.
Fix doc-typecheck's workspacePaths() to parse tsconfig JSONC via the
TypeScript API instead of a regex comment-strip, which corrupted the
new wildcard `/*/` path candidates.
WIP: doc cross-links and package/RFC docs still to update.
2026-06-20 22:55:20 +08:00
|
|
|
version: link:../../core/session
|
2026-06-16 14:55:37 +08:00
|
|
|
cordis:
|
|
|
|
|
specifier: ^4.0.0-rc.6
|
|
|
|
|
version: 4.0.0-rc.6(@cordisjs/plugin-include@1.0.4)(@cordisjs/plugin-loader@1.0.0-rc.4)
|
|
|
|
|
|
Add subagent capability seam: interface, mock backend, model-facing tool
Introduce the `packages/subagent/` group and the abstract subagent seam — an
agent delegating to a child agent — as a named-provider registry (`ctx.subagents`),
unlike the single-implementation bash seam, so multiple transports (in-process,
ACP, future A2A) coexist. This first PR lands the interface, a scripted test
backend, and the model-facing tool, validated through the real cordis load path.
- dsh-subagent: SubagentService registry + SubagentProvider/SubagentRun
vocabulary + subagent/start|end events. Start-time capabilities (outputSchema,
depthLimit, toolFilter) are checked pre-start and rejected loud; runtime
capabilities (sendMessage, resume) are optional methods on SubagentRun.
- dsh-subagent-mock (support): scripted provider for keyless, deterministic
tests through the real Loader/export path.
- dsh-tool-subagent: the model-facing `subagent` tool, config-bound to one
provider; synchronous collect with try/finally dispose, signal->cancel
bridging, and non-completed-stop-reason -> isError mapping.
- Proposed RFC documenting the seam, the fork-vs-spawn-as-separate-backends
decision, own-session isolation, synchronous-collect scope, and the deferral
of background/poll/spill to a future unification with bash.
- Wire the new group into tsconfigs, build refs, package hierarchy docs, the
module graph, and the cordis catalog.
RFC: docs/rfc/proposed/feature/2026-06-21-subagent-capability-seam.md
2026-06-21 22:31:56 +08:00
|
|
|
packages/support/subagent-mock:
|
|
|
|
|
dependencies:
|
|
|
|
|
schemastery:
|
|
|
|
|
specifier: ^3.18.0
|
|
|
|
|
version: 3.18.0
|
|
|
|
|
devDependencies:
|
|
|
|
|
'@cordisjs/plugin-loader':
|
|
|
|
|
specifier: ^1.0.0-rc.4
|
|
|
|
|
version: 1.0.0-rc.4(cordis@4.0.0-rc.6)
|
|
|
|
|
'@deepseek-ai/dsh-agent':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/agent
|
|
|
|
|
'@deepseek-ai/dsh-llm':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../llm/llm
|
|
|
|
|
'@deepseek-ai/dsh-subagent':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../subagent/subagent
|
|
|
|
|
cordis:
|
|
|
|
|
specifier: ^4.0.0-rc.6
|
|
|
|
|
version: 4.0.0-rc.6(@cordisjs/plugin-include@1.0.4)(@cordisjs/plugin-loader@1.0.0-rc.4)
|
|
|
|
|
|
feat(tool-todo): add the model-facing todo_write tool
Add @deepseek-ai/dsh-tool-todo (a new packages/todo/ group): a model-facing
todo_write(todos: [{content, status}]) tool with whole-list-replace semantics.
Each call appends the full list as a todo/write event to the calling agent's
session log; the current list is the most recent such event (last-write-wins).
Single-owner — a non-agent caller is rejected. Beyond the schema's
type/required/enum checks, execute rejects empty/duplicate content and more than
one in_progress task, narrowing the loosely-typed args into a real TodoItem[].
Both UIs render off the existing session/event: the stdio UI prints a glyphed
checklist; the ACP bridge maps the list to a `plan` sessionUpdate (todosToPlan
synthesizes the priority ACP requires; status maps 1:1). Wired into the
coding-agent, acp-agent, and snapshot example configs with a system-prompt nudge.
Tests: unit (schema, validation, append/replace, no-agent rejection, presentCall,
HMR-safety, Loader export-shape guard), full-loop integration through the agent
loop, the ACP todosToPlan mapping + stream-update arm, the stdio render arm, and
a session/load replay that re-emits the plan. New-group TS wiring added to
tsconfig.base/json/build. RFC + a doc-inventory sweep (architecture, packages
README, AGENTS layout, cookbook group list, example READMEs) ship with it.
The todo-plan ACP snapshot scenario is recorded separately (needs an API key).
2026-06-29 10:30:52 +08:00
|
|
|
packages/todo/tool-todo:
|
|
|
|
|
devDependencies:
|
|
|
|
|
'@deepseek-ai/dsh-agent':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/agent
|
|
|
|
|
'@deepseek-ai/dsh-agent-loop':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/agent-loop
|
|
|
|
|
'@deepseek-ai/dsh-llm':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../llm/llm
|
|
|
|
|
'@deepseek-ai/dsh-session':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/session
|
|
|
|
|
'@deepseek-ai/dsh-system-prompt':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/system-prompt
|
|
|
|
|
'@deepseek-ai/dsh-tools':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/tools
|
|
|
|
|
cordis:
|
|
|
|
|
specifier: ^4.0.0-rc.6
|
|
|
|
|
version: 4.0.0-rc.6(@cordisjs/plugin-include@1.0.4)(@cordisjs/plugin-loader@1.0.0-rc.4)
|
|
|
|
|
|
Reorganize packages into a modular hierarchy
Move the 18 flat packages/<name> packages into role-grouped dirs:
core/, llm/, bash/, session-persistence/, ui/, support/. Group dirs are
pure containers; each package keeps its @deepseek-ai/dsh-* name.
Collapse the per-package tsconfig paths maps (base + typecheck) into one
@deepseek-ai/dsh-* wildcard with a candidate per group, and derive the
publint list from the hierarchy. Update all depth-coupled globs/configs
(workspace, tsdown, vitest, eslint, knip, tsconfig includes/refs,
per-package tsconfigs, generators, doc-script scopes, type-equiv manifest)
and the cross-package/script relative imports in tests.
Fix doc-typecheck's workspacePaths() to parse tsconfig JSONC via the
TypeScript API instead of a regex comment-strip, which corrupted the
new wildcard `/*/` path candidates.
WIP: doc cross-links and package/RFC docs still to update.
2026-06-20 22:55:20 +08:00
|
|
|
packages/ui/acp:
|
refactor(examples): extract reusable logic into tested packages
Logic that lived under examples/ was outside the per-file 100% coverage
gate (examples/ are not workspaces) and, in the stdio-UI case, duplicated
across two examples. Move it into packages/ so it is gated and de-duped.
- packages/ui-stdio (new): unify the two diverged stdio-chat.ts copies into
one @deepseek-ai/dsh-ui-stdio plugin (welcome/agent Config). A test-only
I/O seam (createStdioChat(ctx, config, runtime)) keeps process streams out
of the serializable config and makes every render/EOF/disposal branch
unit-testable. Per-file 100%. echo/coding cordis.yml now load the package;
both src/stdio-chat.ts deleted.
- packages/llm-replay (new): move examples/acp-agent/src/llm-replay.ts (+ its
spec) here so its derive/parse/replay branches fall under the coverage gate.
cordis.snapshot.yml + README rewired to the package name; added apply/env
/assertNever/abort tests to reach per-file 100%.
- examples/{echo,coding}-agent: keyless Loader-path e2e smokes that boot the
real cordis.yml (no key) — the guard a hand-mounted unit test cannot be for
the unwrapExports/export-shape class (postmortem 0001). examples/AGENTS.md
codifies the keyless+with-key smoke convention (keyless-by-nature exception
for echo-agent).
- AGENTS.md: a scoped, removal-triggered pre-release stance (foundation over
blast radius). packages/README.md: new rows + a FIXME to later regroup ALL
packages into a hierarchy. Wiring: tsconfig paths/refs, publint, knip,
module-graph.
Verified: typecheck, lint, test:coverage (887 tests, 100%), build, hygiene,
doc-sync, test:snapshot (10), test:e2e (6 keyless pass, with-key self-skip).
2026-06-19 12:42:28 +08:00
|
|
|
dependencies:
|
Reorganize packages into a modular hierarchy
Move the 18 flat packages/<name> packages into role-grouped dirs:
core/, llm/, bash/, session-persistence/, ui/, support/. Group dirs are
pure containers; each package keeps its @deepseek-ai/dsh-* name.
Collapse the per-package tsconfig paths maps (base + typecheck) into one
@deepseek-ai/dsh-* wildcard with a candidate per group, and derive the
publint list from the hierarchy. Update all depth-coupled globs/configs
(workspace, tsdown, vitest, eslint, knip, tsconfig includes/refs,
per-package tsconfigs, generators, doc-script scopes, type-equiv manifest)
and the cross-package/script relative imports in tests.
Fix doc-typecheck's workspacePaths() to parse tsconfig JSONC via the
TypeScript API instead of a regex comment-strip, which corrupted the
new wildcard `/*/` path candidates.
WIP: doc cross-links and package/RFC docs still to update.
2026-06-20 22:55:20 +08:00
|
|
|
'@agentclientprotocol/sdk':
|
|
|
|
|
specifier: 0.25.1
|
|
|
|
|
version: 0.25.1(zod@4.4.3)
|
refactor(examples): extract reusable logic into tested packages
Logic that lived under examples/ was outside the per-file 100% coverage
gate (examples/ are not workspaces) and, in the stdio-UI case, duplicated
across two examples. Move it into packages/ so it is gated and de-duped.
- packages/ui-stdio (new): unify the two diverged stdio-chat.ts copies into
one @deepseek-ai/dsh-ui-stdio plugin (welcome/agent Config). A test-only
I/O seam (createStdioChat(ctx, config, runtime)) keeps process streams out
of the serializable config and makes every render/EOF/disposal branch
unit-testable. Per-file 100%. echo/coding cordis.yml now load the package;
both src/stdio-chat.ts deleted.
- packages/llm-replay (new): move examples/acp-agent/src/llm-replay.ts (+ its
spec) here so its derive/parse/replay branches fall under the coverage gate.
cordis.snapshot.yml + README rewired to the package name; added apply/env
/assertNever/abort tests to reach per-file 100%.
- examples/{echo,coding}-agent: keyless Loader-path e2e smokes that boot the
real cordis.yml (no key) — the guard a hand-mounted unit test cannot be for
the unwrapExports/export-shape class (postmortem 0001). examples/AGENTS.md
codifies the keyless+with-key smoke convention (keyless-by-nature exception
for echo-agent).
- AGENTS.md: a scoped, removal-triggered pre-release stance (foundation over
blast radius). packages/README.md: new rows + a FIXME to later regroup ALL
packages into a hierarchy. Wiring: tsconfig paths/refs, publint, knip,
module-graph.
Verified: typecheck, lint, test:coverage (887 tests, 100%), build, hygiene,
doc-sync, test:snapshot (10), test:e2e (6 keyless pass, with-key self-skip).
2026-06-19 12:42:28 +08:00
|
|
|
schemastery:
|
Reorganize packages into a modular hierarchy
Move the 18 flat packages/<name> packages into role-grouped dirs:
core/, llm/, bash/, session-persistence/, ui/, support/. Group dirs are
pure containers; each package keeps its @deepseek-ai/dsh-* name.
Collapse the per-package tsconfig paths maps (base + typecheck) into one
@deepseek-ai/dsh-* wildcard with a candidate per group, and derive the
publint list from the hierarchy. Update all depth-coupled globs/configs
(workspace, tsdown, vitest, eslint, knip, tsconfig includes/refs,
per-package tsconfigs, generators, doc-script scopes, type-equiv manifest)
and the cross-package/script relative imports in tests.
Fix doc-typecheck's workspacePaths() to parse tsconfig JSONC via the
TypeScript API instead of a regex comment-strip, which corrupted the
new wildcard `/*/` path candidates.
WIP: doc cross-links and package/RFC docs still to update.
2026-06-20 22:55:20 +08:00
|
|
|
specifier: ^3.17.0
|
refactor(examples): extract reusable logic into tested packages
Logic that lived under examples/ was outside the per-file 100% coverage
gate (examples/ are not workspaces) and, in the stdio-UI case, duplicated
across two examples. Move it into packages/ so it is gated and de-duped.
- packages/ui-stdio (new): unify the two diverged stdio-chat.ts copies into
one @deepseek-ai/dsh-ui-stdio plugin (welcome/agent Config). A test-only
I/O seam (createStdioChat(ctx, config, runtime)) keeps process streams out
of the serializable config and makes every render/EOF/disposal branch
unit-testable. Per-file 100%. echo/coding cordis.yml now load the package;
both src/stdio-chat.ts deleted.
- packages/llm-replay (new): move examples/acp-agent/src/llm-replay.ts (+ its
spec) here so its derive/parse/replay branches fall under the coverage gate.
cordis.snapshot.yml + README rewired to the package name; added apply/env
/assertNever/abort tests to reach per-file 100%.
- examples/{echo,coding}-agent: keyless Loader-path e2e smokes that boot the
real cordis.yml (no key) — the guard a hand-mounted unit test cannot be for
the unwrapExports/export-shape class (postmortem 0001). examples/AGENTS.md
codifies the keyless+with-key smoke convention (keyless-by-nature exception
for echo-agent).
- AGENTS.md: a scoped, removal-triggered pre-release stance (foundation over
blast radius). packages/README.md: new rows + a FIXME to later regroup ALL
packages into a hierarchy. Wiring: tsconfig paths/refs, publint, knip,
module-graph.
Verified: typecheck, lint, test:coverage (887 tests, 100%), build, hygiene,
doc-sync, test:snapshot (10), test:e2e (6 keyless pass, with-key self-skip).
2026-06-19 12:42:28 +08:00
|
|
|
version: 3.18.0
|
Reorganize packages into a modular hierarchy
Move the 18 flat packages/<name> packages into role-grouped dirs:
core/, llm/, bash/, session-persistence/, ui/, support/. Group dirs are
pure containers; each package keeps its @deepseek-ai/dsh-* name.
Collapse the per-package tsconfig paths maps (base + typecheck) into one
@deepseek-ai/dsh-* wildcard with a candidate per group, and derive the
publint list from the hierarchy. Update all depth-coupled globs/configs
(workspace, tsdown, vitest, eslint, knip, tsconfig includes/refs,
per-package tsconfigs, generators, doc-script scopes, type-equiv manifest)
and the cross-package/script relative imports in tests.
Fix doc-typecheck's workspacePaths() to parse tsconfig JSONC via the
TypeScript API instead of a regex comment-strip, which corrupted the
new wildcard `/*/` path candidates.
WIP: doc cross-links and package/RFC docs still to update.
2026-06-20 22:55:20 +08:00
|
|
|
zod:
|
|
|
|
|
specifier: ^4.0.0
|
|
|
|
|
version: 4.4.3
|
refactor(examples): extract reusable logic into tested packages
Logic that lived under examples/ was outside the per-file 100% coverage
gate (examples/ are not workspaces) and, in the stdio-UI case, duplicated
across two examples. Move it into packages/ so it is gated and de-duped.
- packages/ui-stdio (new): unify the two diverged stdio-chat.ts copies into
one @deepseek-ai/dsh-ui-stdio plugin (welcome/agent Config). A test-only
I/O seam (createStdioChat(ctx, config, runtime)) keeps process streams out
of the serializable config and makes every render/EOF/disposal branch
unit-testable. Per-file 100%. echo/coding cordis.yml now load the package;
both src/stdio-chat.ts deleted.
- packages/llm-replay (new): move examples/acp-agent/src/llm-replay.ts (+ its
spec) here so its derive/parse/replay branches fall under the coverage gate.
cordis.snapshot.yml + README rewired to the package name; added apply/env
/assertNever/abort tests to reach per-file 100%.
- examples/{echo,coding}-agent: keyless Loader-path e2e smokes that boot the
real cordis.yml (no key) — the guard a hand-mounted unit test cannot be for
the unwrapExports/export-shape class (postmortem 0001). examples/AGENTS.md
codifies the keyless+with-key smoke convention (keyless-by-nature exception
for echo-agent).
- AGENTS.md: a scoped, removal-triggered pre-release stance (foundation over
blast radius). packages/README.md: new rows + a FIXME to later regroup ALL
packages into a hierarchy. Wiring: tsconfig paths/refs, publint, knip,
module-graph.
Verified: typecheck, lint, test:coverage (887 tests, 100%), build, hygiene,
doc-sync, test:snapshot (10), test:e2e (6 keyless pass, with-key self-skip).
2026-06-19 12:42:28 +08:00
|
|
|
devDependencies:
|
|
|
|
|
'@deepseek-ai/dsh-agent':
|
|
|
|
|
specifier: workspace:^
|
Reorganize packages into a modular hierarchy
Move the 18 flat packages/<name> packages into role-grouped dirs:
core/, llm/, bash/, session-persistence/, ui/, support/. Group dirs are
pure containers; each package keeps its @deepseek-ai/dsh-* name.
Collapse the per-package tsconfig paths maps (base + typecheck) into one
@deepseek-ai/dsh-* wildcard with a candidate per group, and derive the
publint list from the hierarchy. Update all depth-coupled globs/configs
(workspace, tsdown, vitest, eslint, knip, tsconfig includes/refs,
per-package tsconfigs, generators, doc-script scopes, type-equiv manifest)
and the cross-package/script relative imports in tests.
Fix doc-typecheck's workspacePaths() to parse tsconfig JSONC via the
TypeScript API instead of a regex comment-strip, which corrupted the
new wildcard `/*/` path candidates.
WIP: doc cross-links and package/RFC docs still to update.
2026-06-20 22:55:20 +08:00
|
|
|
version: link:../../core/agent
|
|
|
|
|
'@deepseek-ai/dsh-agent-loop':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/agent-loop
|
|
|
|
|
'@deepseek-ai/dsh-bash-local':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../bash/bash-local
|
feat(tool-fs): editor-facing presentation for read/write/edit
The fs tools rendered as generic cards (title = tool name, raw file content) in
an ACP editor. Give them tool-owned presentation like bash/subagent have:
- read → title "Read <path>", kind read, offset/limit as rawInput
- write → title "Write <path>", kind edit
- edit → title "Edit <path>", kind edit, a clipped old→new rawInput summary
Add a provider-neutral `locations: { path, line? }[]` to ToolCallPresentation —
the files a call reads/modifies — so a capable editor can follow along / jump to
the file (read carries its offset as the line). The ACP bridge forwards it onto
the wire `tool_call` (ResolvedCallPresentation + call() + the tool_call build in
streamSessionEventUpdate). This flips the `locations` cell in the ACP feature
matrix to supported. The SDK already carries `tool_call.locations`
(ToolCallLocation `{ path, line? }`), so no ACP types leak into dsh-tools.
presentResult is intentionally omitted: it only receives `{ content, isError }`,
not the write/edit outcome, so titling by create-vs-overwrite or replacement
count would mean parsing the model-facing text — the static title stays.
Tests: pure presentCall assertions for all three tools incl. locations and the
edit rawInput clip; a bridge test drives the REAL fs tools through ToolPresenter
and asserts locations reaches the wire tool_call (proven to fail without the
forwarding line). New withFs harness option + dsh-fs devDeps on dsh-acp.
2026-07-02 19:36:17 +08:00
|
|
|
'@deepseek-ai/dsh-fs-local':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../fs/fs-local
|
|
|
|
|
'@deepseek-ai/dsh-fs-policy':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../fs/fs-policy
|
refactor(examples): extract reusable logic into tested packages
Logic that lived under examples/ was outside the per-file 100% coverage
gate (examples/ are not workspaces) and, in the stdio-UI case, duplicated
across two examples. Move it into packages/ so it is gated and de-duped.
- packages/ui-stdio (new): unify the two diverged stdio-chat.ts copies into
one @deepseek-ai/dsh-ui-stdio plugin (welcome/agent Config). A test-only
I/O seam (createStdioChat(ctx, config, runtime)) keeps process streams out
of the serializable config and makes every render/EOF/disposal branch
unit-testable. Per-file 100%. echo/coding cordis.yml now load the package;
both src/stdio-chat.ts deleted.
- packages/llm-replay (new): move examples/acp-agent/src/llm-replay.ts (+ its
spec) here so its derive/parse/replay branches fall under the coverage gate.
cordis.snapshot.yml + README rewired to the package name; added apply/env
/assertNever/abort tests to reach per-file 100%.
- examples/{echo,coding}-agent: keyless Loader-path e2e smokes that boot the
real cordis.yml (no key) — the guard a hand-mounted unit test cannot be for
the unwrapExports/export-shape class (postmortem 0001). examples/AGENTS.md
codifies the keyless+with-key smoke convention (keyless-by-nature exception
for echo-agent).
- AGENTS.md: a scoped, removal-triggered pre-release stance (foundation over
blast radius). packages/README.md: new rows + a FIXME to later regroup ALL
packages into a hierarchy. Wiring: tsconfig paths/refs, publint, knip,
module-graph.
Verified: typecheck, lint, test:coverage (887 tests, 100%), build, hygiene,
doc-sync, test:snapshot (10), test:e2e (6 keyless pass, with-key self-skip).
2026-06-19 12:42:28 +08:00
|
|
|
'@deepseek-ai/dsh-llm':
|
|
|
|
|
specifier: workspace:^
|
Reorganize packages into a modular hierarchy
Move the 18 flat packages/<name> packages into role-grouped dirs:
core/, llm/, bash/, session-persistence/, ui/, support/. Group dirs are
pure containers; each package keeps its @deepseek-ai/dsh-* name.
Collapse the per-package tsconfig paths maps (base + typecheck) into one
@deepseek-ai/dsh-* wildcard with a candidate per group, and derive the
publint list from the hierarchy. Update all depth-coupled globs/configs
(workspace, tsdown, vitest, eslint, knip, tsconfig includes/refs,
per-package tsconfigs, generators, doc-script scopes, type-equiv manifest)
and the cross-package/script relative imports in tests.
Fix doc-typecheck's workspacePaths() to parse tsconfig JSONC via the
TypeScript API instead of a regex comment-strip, which corrupted the
new wildcard `/*/` path candidates.
WIP: doc cross-links and package/RFC docs still to update.
2026-06-20 22:55:20 +08:00
|
|
|
version: link:../../llm/llm
|
refactor(examples): extract reusable logic into tested packages
Logic that lived under examples/ was outside the per-file 100% coverage
gate (examples/ are not workspaces) and, in the stdio-UI case, duplicated
across two examples. Move it into packages/ so it is gated and de-duped.
- packages/ui-stdio (new): unify the two diverged stdio-chat.ts copies into
one @deepseek-ai/dsh-ui-stdio plugin (welcome/agent Config). A test-only
I/O seam (createStdioChat(ctx, config, runtime)) keeps process streams out
of the serializable config and makes every render/EOF/disposal branch
unit-testable. Per-file 100%. echo/coding cordis.yml now load the package;
both src/stdio-chat.ts deleted.
- packages/llm-replay (new): move examples/acp-agent/src/llm-replay.ts (+ its
spec) here so its derive/parse/replay branches fall under the coverage gate.
cordis.snapshot.yml + README rewired to the package name; added apply/env
/assertNever/abort tests to reach per-file 100%.
- examples/{echo,coding}-agent: keyless Loader-path e2e smokes that boot the
real cordis.yml (no key) — the guard a hand-mounted unit test cannot be for
the unwrapExports/export-shape class (postmortem 0001). examples/AGENTS.md
codifies the keyless+with-key smoke convention (keyless-by-nature exception
for echo-agent).
- AGENTS.md: a scoped, removal-triggered pre-release stance (foundation over
blast radius). packages/README.md: new rows + a FIXME to later regroup ALL
packages into a hierarchy. Wiring: tsconfig paths/refs, publint, knip,
module-graph.
Verified: typecheck, lint, test:coverage (887 tests, 100%), build, hygiene,
doc-sync, test:snapshot (10), test:e2e (6 keyless pass, with-key self-skip).
2026-06-19 12:42:28 +08:00
|
|
|
'@deepseek-ai/dsh-session':
|
|
|
|
|
specifier: workspace:^
|
Reorganize packages into a modular hierarchy
Move the 18 flat packages/<name> packages into role-grouped dirs:
core/, llm/, bash/, session-persistence/, ui/, support/. Group dirs are
pure containers; each package keeps its @deepseek-ai/dsh-* name.
Collapse the per-package tsconfig paths maps (base + typecheck) into one
@deepseek-ai/dsh-* wildcard with a candidate per group, and derive the
publint list from the hierarchy. Update all depth-coupled globs/configs
(workspace, tsdown, vitest, eslint, knip, tsconfig includes/refs,
per-package tsconfigs, generators, doc-script scopes, type-equiv manifest)
and the cross-package/script relative imports in tests.
Fix doc-typecheck's workspacePaths() to parse tsconfig JSONC via the
TypeScript API instead of a regex comment-strip, which corrupted the
new wildcard `/*/` path candidates.
WIP: doc cross-links and package/RFC docs still to update.
2026-06-20 22:55:20 +08:00
|
|
|
version: link:../../core/session
|
|
|
|
|
'@deepseek-ai/dsh-session-persistence':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../session-persistence/session-persistence
|
|
|
|
|
'@deepseek-ai/dsh-session-persistence-jsonl':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../session-persistence/session-persistence-jsonl
|
|
|
|
|
'@deepseek-ai/dsh-system-prompt':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/system-prompt
|
|
|
|
|
'@deepseek-ai/dsh-tool-bash':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../bash/tool-bash
|
feat(tool-fs): editor-facing presentation for read/write/edit
The fs tools rendered as generic cards (title = tool name, raw file content) in
an ACP editor. Give them tool-owned presentation like bash/subagent have:
- read → title "Read <path>", kind read, offset/limit as rawInput
- write → title "Write <path>", kind edit
- edit → title "Edit <path>", kind edit, a clipped old→new rawInput summary
Add a provider-neutral `locations: { path, line? }[]` to ToolCallPresentation —
the files a call reads/modifies — so a capable editor can follow along / jump to
the file (read carries its offset as the line). The ACP bridge forwards it onto
the wire `tool_call` (ResolvedCallPresentation + call() + the tool_call build in
streamSessionEventUpdate). This flips the `locations` cell in the ACP feature
matrix to supported. The SDK already carries `tool_call.locations`
(ToolCallLocation `{ path, line? }`), so no ACP types leak into dsh-tools.
presentResult is intentionally omitted: it only receives `{ content, isError }`,
not the write/edit outcome, so titling by create-vs-overwrite or replacement
count would mean parsing the model-facing text — the static title stays.
Tests: pure presentCall assertions for all three tools incl. locations and the
edit rawInput clip; a bridge test drives the REAL fs tools through ToolPresenter
and asserts locations reaches the wire tool_call (proven to fail without the
forwarding line). New withFs harness option + dsh-fs devDeps on dsh-acp.
2026-07-02 19:36:17 +08:00
|
|
|
'@deepseek-ai/dsh-tool-fs':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../fs/tool-fs
|
feat(tool-todo): add the model-facing todo_write tool
Add @deepseek-ai/dsh-tool-todo (a new packages/todo/ group): a model-facing
todo_write(todos: [{content, status}]) tool with whole-list-replace semantics.
Each call appends the full list as a todo/write event to the calling agent's
session log; the current list is the most recent such event (last-write-wins).
Single-owner — a non-agent caller is rejected. Beyond the schema's
type/required/enum checks, execute rejects empty/duplicate content and more than
one in_progress task, narrowing the loosely-typed args into a real TodoItem[].
Both UIs render off the existing session/event: the stdio UI prints a glyphed
checklist; the ACP bridge maps the list to a `plan` sessionUpdate (todosToPlan
synthesizes the priority ACP requires; status maps 1:1). Wired into the
coding-agent, acp-agent, and snapshot example configs with a system-prompt nudge.
Tests: unit (schema, validation, append/replace, no-agent rejection, presentCall,
HMR-safety, Loader export-shape guard), full-loop integration through the agent
loop, the ACP todosToPlan mapping + stream-update arm, the stdio render arm, and
a session/load replay that re-emits the plan. New-group TS wiring added to
tsconfig.base/json/build. RFC + a doc-inventory sweep (architecture, packages
README, AGENTS layout, cookbook group list, example READMEs) ship with it.
The todo-plan ACP snapshot scenario is recorded separately (needs an API key).
2026-06-29 10:30:52 +08:00
|
|
|
'@deepseek-ai/dsh-tool-todo':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../todo/tool-todo
|
Reorganize packages into a modular hierarchy
Move the 18 flat packages/<name> packages into role-grouped dirs:
core/, llm/, bash/, session-persistence/, ui/, support/. Group dirs are
pure containers; each package keeps its @deepseek-ai/dsh-* name.
Collapse the per-package tsconfig paths maps (base + typecheck) into one
@deepseek-ai/dsh-* wildcard with a candidate per group, and derive the
publint list from the hierarchy. Update all depth-coupled globs/configs
(workspace, tsdown, vitest, eslint, knip, tsconfig includes/refs,
per-package tsconfigs, generators, doc-script scopes, type-equiv manifest)
and the cross-package/script relative imports in tests.
Fix doc-typecheck's workspacePaths() to parse tsconfig JSONC via the
TypeScript API instead of a regex comment-strip, which corrupted the
new wildcard `/*/` path candidates.
WIP: doc cross-links and package/RFC docs still to update.
2026-06-20 22:55:20 +08:00
|
|
|
'@deepseek-ai/dsh-tools':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/tools
|
refactor(examples): extract reusable logic into tested packages
Logic that lived under examples/ was outside the per-file 100% coverage
gate (examples/ are not workspaces) and, in the stdio-UI case, duplicated
across two examples. Move it into packages/ so it is gated and de-duped.
- packages/ui-stdio (new): unify the two diverged stdio-chat.ts copies into
one @deepseek-ai/dsh-ui-stdio plugin (welcome/agent Config). A test-only
I/O seam (createStdioChat(ctx, config, runtime)) keeps process streams out
of the serializable config and makes every render/EOF/disposal branch
unit-testable. Per-file 100%. echo/coding cordis.yml now load the package;
both src/stdio-chat.ts deleted.
- packages/llm-replay (new): move examples/acp-agent/src/llm-replay.ts (+ its
spec) here so its derive/parse/replay branches fall under the coverage gate.
cordis.snapshot.yml + README rewired to the package name; added apply/env
/assertNever/abort tests to reach per-file 100%.
- examples/{echo,coding}-agent: keyless Loader-path e2e smokes that boot the
real cordis.yml (no key) — the guard a hand-mounted unit test cannot be for
the unwrapExports/export-shape class (postmortem 0001). examples/AGENTS.md
codifies the keyless+with-key smoke convention (keyless-by-nature exception
for echo-agent).
- AGENTS.md: a scoped, removal-triggered pre-release stance (foundation over
blast radius). packages/README.md: new rows + a FIXME to later regroup ALL
packages into a hierarchy. Wiring: tsconfig paths/refs, publint, knip,
module-graph.
Verified: typecheck, lint, test:coverage (887 tests, 100%), build, hygiene,
doc-sync, test:snapshot (10), test:e2e (6 keyless pass, with-key self-skip).
2026-06-19 12:42:28 +08:00
|
|
|
cordis:
|
|
|
|
|
specifier: ^4.0.0-rc.6
|
|
|
|
|
version: 4.0.0-rc.6(@cordisjs/plugin-include@1.0.4)(@cordisjs/plugin-loader@1.0.0-rc.4)
|
|
|
|
|
|
refactor(examples): extract the app spine into dsh-agent-core + app packages
Implements docs/rfc/.../2026-06-20-extract-example-app-packages.md. Each
example was thick — a hand-rolled start.ts, an infra preamble, nested
base.yml/base-core.yml/acp-tail.yml includes, and a coupled front-door
cluster enforced only by prose. This moves the composition into packages so
each example is a thin leaf cordis.yml: pick the swappable backends, load one
app package.
New packages:
- @deepseek-ai/dsh-agent-core (packages/core/agent-core): one bundle plugin
that loads the providerless/executor-less/UI-less spine (timer + llm +
sessions + system-prompt + tools + agents + invariants + tool-bash +
agent-loop) via ctx.plugin(...) inside apply(), and forwards agent-loop's
`agents` list as its own Config (export const Config = AgentLoop.Config,
default []).
- @deepseek-ai/dsh-stdio-agent (packages/ui/stdio-agent): terminal chat APP —
agent-core + console logger + readline UI + a pre-created `main` agent, with
a bin. The demo:echo/coding front door.
- @deepseek-ai/dsh-acp-agent (packages/ui/acp-agent): ACP server APP —
agent-core + JSONL persistence + the acp bridge, NO stdout logger, with a
bin. The stdout-purity footgun is structurally unreachable from the leaf.
Amendment to the RFC: hmr stays a LEAF cordis.yml entry, not baked into
dsh-stdio-agent. hmr is a Loader-only dev plugin (throws without
--expose-internals; the in-process test tier can't even import its decorator
form), so a package statically importing it could never carry the per-file
coverage gate. Unlike the console logger, a stray hmr is not a stdout-purity
footgun, so leaving it at the leaf costs no safety. With hmr out, all three new
packages carry in-process unit specs at 100%.
Boot glue (Loader tail, .env load, snapshot-mode selection, stdin-dispose
lifecycle) moves into each app's bin; start.ts and base.yml/base-core.yml/
acp-tail.yml are deleted. Each app package gets a keyless real-load-path test
that boots through its bin + the cordis Loader (guarding the unwrapExports
export-shape bug class, postmortem 0001). ACP snapshot replay stays green
against the existing committed goldens (pure boot restructuring). RFC moved
proposed->implemented with the amendment recorded; package/example/architecture
docs and the module graph updated.
2026-06-21 12:03:44 +08:00
|
|
|
packages/ui/acp-agent:
|
|
|
|
|
devDependencies:
|
|
|
|
|
'@cordisjs/plugin-include':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../../vendor/include
|
|
|
|
|
'@cordisjs/plugin-loader':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../../vendor/loader
|
|
|
|
|
'@deepseek-ai/dsh-acp':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../acp
|
|
|
|
|
'@deepseek-ai/dsh-agent-core':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/agent-core
|
feat(ui): share the app bins' boot glue in @deepseek-ai/dsh-app-boot
The four near-twin helpers the two published bins carried — loadEnv,
installFailLoud, assertEntriesLoaded, boot — live once in
packages/ui/app-boot, parameterized by the bin's diagnostic prefix and
injectable at their side-effect seams (warn sink, process slice), so
every branch sits under the per-file 100% coverage gate: the unit suite
drives boot() in-process against the real Loader (relative-specifier
configs) through both the settled-tree path and the fiber-less-entry
rejection, and exercises the ENOENT/unloadable .env split, the
Error/non-Error/stackless fail-loud arms, and the disabled-entry
exclusion. resolveConfigPath (snapshot-aware) becomes the single path
resolver for both bins.
Each bin.ts is now a thin self-executing composition plus its
app-specific lifecycle (acp: replay env-skip + stdin-EOF dispose;
stdio: nothing extra), exports nothing, and stays coverage-excluded;
the built-bin smokes still prove both artifacts under plain node in the
node_modules-shaped temp dir (now symlinking ui/app-boot), including
the missing-config non-zero exit.
Implements docs/rfc/implemented/simplification/2026-07-04-share-app-bin-boot-glue.md
(moved from proposed/ and amended); the extract-example-app-packages
RFC's bin-ownership facts are amended in the same change.
2026-07-04 16:43:06 +08:00
|
|
|
'@deepseek-ai/dsh-app-boot':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../app-boot
|
refactor(examples): extract the app spine into dsh-agent-core + app packages
Implements docs/rfc/.../2026-06-20-extract-example-app-packages.md. Each
example was thick — a hand-rolled start.ts, an infra preamble, nested
base.yml/base-core.yml/acp-tail.yml includes, and a coupled front-door
cluster enforced only by prose. This moves the composition into packages so
each example is a thin leaf cordis.yml: pick the swappable backends, load one
app package.
New packages:
- @deepseek-ai/dsh-agent-core (packages/core/agent-core): one bundle plugin
that loads the providerless/executor-less/UI-less spine (timer + llm +
sessions + system-prompt + tools + agents + invariants + tool-bash +
agent-loop) via ctx.plugin(...) inside apply(), and forwards agent-loop's
`agents` list as its own Config (export const Config = AgentLoop.Config,
default []).
- @deepseek-ai/dsh-stdio-agent (packages/ui/stdio-agent): terminal chat APP —
agent-core + console logger + readline UI + a pre-created `main` agent, with
a bin. The demo:echo/coding front door.
- @deepseek-ai/dsh-acp-agent (packages/ui/acp-agent): ACP server APP —
agent-core + JSONL persistence + the acp bridge, NO stdout logger, with a
bin. The stdout-purity footgun is structurally unreachable from the leaf.
Amendment to the RFC: hmr stays a LEAF cordis.yml entry, not baked into
dsh-stdio-agent. hmr is a Loader-only dev plugin (throws without
--expose-internals; the in-process test tier can't even import its decorator
form), so a package statically importing it could never carry the per-file
coverage gate. Unlike the console logger, a stray hmr is not a stdout-purity
footgun, so leaving it at the leaf costs no safety. With hmr out, all three new
packages carry in-process unit specs at 100%.
Boot glue (Loader tail, .env load, snapshot-mode selection, stdin-dispose
lifecycle) moves into each app's bin; start.ts and base.yml/base-core.yml/
acp-tail.yml are deleted. Each app package gets a keyless real-load-path test
that boots through its bin + the cordis Loader (guarding the unwrapExports
export-shape bug class, postmortem 0001). ACP snapshot replay stays green
against the existing committed goldens (pure boot restructuring). RFC moved
proposed->implemented with the amendment recorded; package/example/architecture
docs and the module graph updated.
2026-06-21 12:03:44 +08:00
|
|
|
'@deepseek-ai/dsh-session-persistence-jsonl':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../session-persistence/session-persistence-jsonl
|
2026-07-07 20:18:01 +08:00
|
|
|
'@deepseek-ai/dsh-system-prompt':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/system-prompt
|
refactor(examples): extract the app spine into dsh-agent-core + app packages
Implements docs/rfc/.../2026-06-20-extract-example-app-packages.md. Each
example was thick — a hand-rolled start.ts, an infra preamble, nested
base.yml/base-core.yml/acp-tail.yml includes, and a coupled front-door
cluster enforced only by prose. This moves the composition into packages so
each example is a thin leaf cordis.yml: pick the swappable backends, load one
app package.
New packages:
- @deepseek-ai/dsh-agent-core (packages/core/agent-core): one bundle plugin
that loads the providerless/executor-less/UI-less spine (timer + llm +
sessions + system-prompt + tools + agents + invariants + tool-bash +
agent-loop) via ctx.plugin(...) inside apply(), and forwards agent-loop's
`agents` list as its own Config (export const Config = AgentLoop.Config,
default []).
- @deepseek-ai/dsh-stdio-agent (packages/ui/stdio-agent): terminal chat APP —
agent-core + console logger + readline UI + a pre-created `main` agent, with
a bin. The demo:echo/coding front door.
- @deepseek-ai/dsh-acp-agent (packages/ui/acp-agent): ACP server APP —
agent-core + JSONL persistence + the acp bridge, NO stdout logger, with a
bin. The stdout-purity footgun is structurally unreachable from the leaf.
Amendment to the RFC: hmr stays a LEAF cordis.yml entry, not baked into
dsh-stdio-agent. hmr is a Loader-only dev plugin (throws without
--expose-internals; the in-process test tier can't even import its decorator
form), so a package statically importing it could never carry the per-file
coverage gate. Unlike the console logger, a stray hmr is not a stdout-purity
footgun, so leaving it at the leaf costs no safety. With hmr out, all three new
packages carry in-process unit specs at 100%.
Boot glue (Loader tail, .env load, snapshot-mode selection, stdin-dispose
lifecycle) moves into each app's bin; start.ts and base.yml/base-core.yml/
acp-tail.yml are deleted. Each app package gets a keyless real-load-path test
that boots through its bin + the cordis Loader (guarding the unwrapExports
export-shape bug class, postmortem 0001). ACP snapshot replay stays green
against the existing committed goldens (pure boot restructuring). RFC moved
proposed->implemented with the amendment recorded; package/example/architecture
docs and the module graph updated.
2026-06-21 12:03:44 +08:00
|
|
|
cordis:
|
|
|
|
|
specifier: ^4.0.0-rc.6
|
|
|
|
|
version: 4.0.0-rc.6(@cordisjs/plugin-include@vendor+include)(@cordisjs/plugin-loader@vendor+loader)
|
|
|
|
|
schemastery:
|
|
|
|
|
specifier: ^3.17.0
|
|
|
|
|
version: 3.18.0
|
|
|
|
|
|
feat(ui): share the app bins' boot glue in @deepseek-ai/dsh-app-boot
The four near-twin helpers the two published bins carried — loadEnv,
installFailLoud, assertEntriesLoaded, boot — live once in
packages/ui/app-boot, parameterized by the bin's diagnostic prefix and
injectable at their side-effect seams (warn sink, process slice), so
every branch sits under the per-file 100% coverage gate: the unit suite
drives boot() in-process against the real Loader (relative-specifier
configs) through both the settled-tree path and the fiber-less-entry
rejection, and exercises the ENOENT/unloadable .env split, the
Error/non-Error/stackless fail-loud arms, and the disabled-entry
exclusion. resolveConfigPath (snapshot-aware) becomes the single path
resolver for both bins.
Each bin.ts is now a thin self-executing composition plus its
app-specific lifecycle (acp: replay env-skip + stdin-EOF dispose;
stdio: nothing extra), exports nothing, and stays coverage-excluded;
the built-bin smokes still prove both artifacts under plain node in the
node_modules-shaped temp dir (now symlinking ui/app-boot), including
the missing-config non-zero exit.
Implements docs/rfc/implemented/simplification/2026-07-04-share-app-bin-boot-glue.md
(moved from proposed/ and amended); the extract-example-app-packages
RFC's bin-ownership facts are amended in the same change.
2026-07-04 16:43:06 +08:00
|
|
|
packages/ui/app-boot:
|
|
|
|
|
devDependencies:
|
|
|
|
|
'@cordisjs/plugin-include':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../../vendor/include
|
|
|
|
|
'@cordisjs/plugin-loader':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../../vendor/loader
|
|
|
|
|
cordis:
|
|
|
|
|
specifier: ^4.0.0-rc.6
|
|
|
|
|
version: 4.0.0-rc.6(@cordisjs/plugin-include@vendor+include)(@cordisjs/plugin-loader@vendor+loader)
|
|
|
|
|
|
refactor(examples): extract the app spine into dsh-agent-core + app packages
Implements docs/rfc/.../2026-06-20-extract-example-app-packages.md. Each
example was thick — a hand-rolled start.ts, an infra preamble, nested
base.yml/base-core.yml/acp-tail.yml includes, and a coupled front-door
cluster enforced only by prose. This moves the composition into packages so
each example is a thin leaf cordis.yml: pick the swappable backends, load one
app package.
New packages:
- @deepseek-ai/dsh-agent-core (packages/core/agent-core): one bundle plugin
that loads the providerless/executor-less/UI-less spine (timer + llm +
sessions + system-prompt + tools + agents + invariants + tool-bash +
agent-loop) via ctx.plugin(...) inside apply(), and forwards agent-loop's
`agents` list as its own Config (export const Config = AgentLoop.Config,
default []).
- @deepseek-ai/dsh-stdio-agent (packages/ui/stdio-agent): terminal chat APP —
agent-core + console logger + readline UI + a pre-created `main` agent, with
a bin. The demo:echo/coding front door.
- @deepseek-ai/dsh-acp-agent (packages/ui/acp-agent): ACP server APP —
agent-core + JSONL persistence + the acp bridge, NO stdout logger, with a
bin. The stdout-purity footgun is structurally unreachable from the leaf.
Amendment to the RFC: hmr stays a LEAF cordis.yml entry, not baked into
dsh-stdio-agent. hmr is a Loader-only dev plugin (throws without
--expose-internals; the in-process test tier can't even import its decorator
form), so a package statically importing it could never carry the per-file
coverage gate. Unlike the console logger, a stray hmr is not a stdout-purity
footgun, so leaving it at the leaf costs no safety. With hmr out, all three new
packages carry in-process unit specs at 100%.
Boot glue (Loader tail, .env load, snapshot-mode selection, stdin-dispose
lifecycle) moves into each app's bin; start.ts and base.yml/base-core.yml/
acp-tail.yml are deleted. Each app package gets a keyless real-load-path test
that boots through its bin + the cordis Loader (guarding the unwrapExports
export-shape bug class, postmortem 0001). ACP snapshot replay stays green
against the existing committed goldens (pure boot restructuring). RFC moved
proposed->implemented with the amendment recorded; package/example/architecture
docs and the module graph updated.
2026-06-21 12:03:44 +08:00
|
|
|
packages/ui/stdio-agent:
|
|
|
|
|
devDependencies:
|
|
|
|
|
'@cordisjs/plugin-include':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../../vendor/include
|
|
|
|
|
'@cordisjs/plugin-loader':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../../vendor/loader
|
|
|
|
|
'@cordisjs/plugin-logger-console':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../../vendor/logger-console
|
|
|
|
|
'@deepseek-ai/dsh-agent':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/agent
|
|
|
|
|
'@deepseek-ai/dsh-agent-core':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/agent-core
|
feat(ui): share the app bins' boot glue in @deepseek-ai/dsh-app-boot
The four near-twin helpers the two published bins carried — loadEnv,
installFailLoud, assertEntriesLoaded, boot — live once in
packages/ui/app-boot, parameterized by the bin's diagnostic prefix and
injectable at their side-effect seams (warn sink, process slice), so
every branch sits under the per-file 100% coverage gate: the unit suite
drives boot() in-process against the real Loader (relative-specifier
configs) through both the settled-tree path and the fiber-less-entry
rejection, and exercises the ENOENT/unloadable .env split, the
Error/non-Error/stackless fail-loud arms, and the disabled-entry
exclusion. resolveConfigPath (snapshot-aware) becomes the single path
resolver for both bins.
Each bin.ts is now a thin self-executing composition plus its
app-specific lifecycle (acp: replay env-skip + stdin-EOF dispose;
stdio: nothing extra), exports nothing, and stays coverage-excluded;
the built-bin smokes still prove both artifacts under plain node in the
node_modules-shaped temp dir (now symlinking ui/app-boot), including
the missing-config non-zero exit.
Implements docs/rfc/implemented/simplification/2026-07-04-share-app-bin-boot-glue.md
(moved from proposed/ and amended); the extract-example-app-packages
RFC's bin-ownership facts are amended in the same change.
2026-07-04 16:43:06 +08:00
|
|
|
'@deepseek-ai/dsh-app-boot':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../app-boot
|
2026-07-04 17:12:50 +08:00
|
|
|
'@deepseek-ai/dsh-llm':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../llm/llm
|
refactor(examples): extract the app spine into dsh-agent-core + app packages
Implements docs/rfc/.../2026-06-20-extract-example-app-packages.md. Each
example was thick — a hand-rolled start.ts, an infra preamble, nested
base.yml/base-core.yml/acp-tail.yml includes, and a coupled front-door
cluster enforced only by prose. This moves the composition into packages so
each example is a thin leaf cordis.yml: pick the swappable backends, load one
app package.
New packages:
- @deepseek-ai/dsh-agent-core (packages/core/agent-core): one bundle plugin
that loads the providerless/executor-less/UI-less spine (timer + llm +
sessions + system-prompt + tools + agents + invariants + tool-bash +
agent-loop) via ctx.plugin(...) inside apply(), and forwards agent-loop's
`agents` list as its own Config (export const Config = AgentLoop.Config,
default []).
- @deepseek-ai/dsh-stdio-agent (packages/ui/stdio-agent): terminal chat APP —
agent-core + console logger + readline UI + a pre-created `main` agent, with
a bin. The demo:echo/coding front door.
- @deepseek-ai/dsh-acp-agent (packages/ui/acp-agent): ACP server APP —
agent-core + JSONL persistence + the acp bridge, NO stdout logger, with a
bin. The stdout-purity footgun is structurally unreachable from the leaf.
Amendment to the RFC: hmr stays a LEAF cordis.yml entry, not baked into
dsh-stdio-agent. hmr is a Loader-only dev plugin (throws without
--expose-internals; the in-process test tier can't even import its decorator
form), so a package statically importing it could never carry the per-file
coverage gate. Unlike the console logger, a stray hmr is not a stdout-purity
footgun, so leaving it at the leaf costs no safety. With hmr out, all three new
packages carry in-process unit specs at 100%.
Boot glue (Loader tail, .env load, snapshot-mode selection, stdin-dispose
lifecycle) moves into each app's bin; start.ts and base.yml/base-core.yml/
acp-tail.yml are deleted. Each app package gets a keyless real-load-path test
that boots through its bin + the cordis Loader (guarding the unwrapExports
export-shape bug class, postmortem 0001). ACP snapshot replay stays green
against the existing committed goldens (pure boot restructuring). RFC moved
proposed->implemented with the amendment recorded; package/example/architecture
docs and the module graph updated.
2026-06-21 12:03:44 +08:00
|
|
|
'@deepseek-ai/dsh-session':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/session
|
|
|
|
|
'@deepseek-ai/dsh-session-persistence-jsonl':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../session-persistence/session-persistence-jsonl
|
2026-07-07 20:18:01 +08:00
|
|
|
'@deepseek-ai/dsh-system-prompt':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/system-prompt
|
refactor(examples): extract the app spine into dsh-agent-core + app packages
Implements docs/rfc/.../2026-06-20-extract-example-app-packages.md. Each
example was thick — a hand-rolled start.ts, an infra preamble, nested
base.yml/base-core.yml/acp-tail.yml includes, and a coupled front-door
cluster enforced only by prose. This moves the composition into packages so
each example is a thin leaf cordis.yml: pick the swappable backends, load one
app package.
New packages:
- @deepseek-ai/dsh-agent-core (packages/core/agent-core): one bundle plugin
that loads the providerless/executor-less/UI-less spine (timer + llm +
sessions + system-prompt + tools + agents + invariants + tool-bash +
agent-loop) via ctx.plugin(...) inside apply(), and forwards agent-loop's
`agents` list as its own Config (export const Config = AgentLoop.Config,
default []).
- @deepseek-ai/dsh-stdio-agent (packages/ui/stdio-agent): terminal chat APP —
agent-core + console logger + readline UI + a pre-created `main` agent, with
a bin. The demo:echo/coding front door.
- @deepseek-ai/dsh-acp-agent (packages/ui/acp-agent): ACP server APP —
agent-core + JSONL persistence + the acp bridge, NO stdout logger, with a
bin. The stdout-purity footgun is structurally unreachable from the leaf.
Amendment to the RFC: hmr stays a LEAF cordis.yml entry, not baked into
dsh-stdio-agent. hmr is a Loader-only dev plugin (throws without
--expose-internals; the in-process test tier can't even import its decorator
form), so a package statically importing it could never carry the per-file
coverage gate. Unlike the console logger, a stray hmr is not a stdout-purity
footgun, so leaving it at the leaf costs no safety. With hmr out, all three new
packages carry in-process unit specs at 100%.
Boot glue (Loader tail, .env load, snapshot-mode selection, stdin-dispose
lifecycle) moves into each app's bin; start.ts and base.yml/base-core.yml/
acp-tail.yml are deleted. Each app package gets a keyless real-load-path test
that boots through its bin + the cordis Loader (guarding the unwrapExports
export-shape bug class, postmortem 0001). ACP snapshot replay stays green
against the existing committed goldens (pure boot restructuring). RFC moved
proposed->implemented with the amendment recorded; package/example/architecture
docs and the module graph updated.
2026-06-21 12:03:44 +08:00
|
|
|
cordis:
|
|
|
|
|
specifier: ^4.0.0-rc.6
|
|
|
|
|
version: 4.0.0-rc.6(@cordisjs/plugin-include@vendor+include)(@cordisjs/plugin-loader@vendor+loader)
|
|
|
|
|
schemastery:
|
|
|
|
|
specifier: ^3.17.0
|
|
|
|
|
version: 3.18.0
|
|
|
|
|
|
feat(types): brand bash ids + stop brand erosion; extract Branded to dsh-brand
Type-only change (brands are zero-cost casts; no runtime/wire impact). Closes
the two gaps in the "brand ids that cross package boundaries" policy and fixes
the dependency direction so a capability package never pulls in an unrelated one.
- Extract the `Branded<B>` primitive into a new standalone type-only package
`@deepseek-ai/dsh-brand` (packages/util/brand) with no harness-package deps.
dsh-llm keeps its owned CallId but imports Branded from dsh-brand; dsh-session,
dsh-agent, and dsh-bash all import Branded from there. dsh-bash depends on
dsh-brand ALONE — never on dsh-llm or dsh-session (the architectural fix: a
generic execution backend must not couple to the LLM or session vocabulary).
- Mint BashTaskId + OwnerToken in dsh-bash and thread them through BashTask.id,
the get/ownerOf/list/readOutput/kill seam, the bash-local generation site, and
the dsh-tool-bash validate/access surface. OwnerToken is a DISTINCT brand from
SessionId so the seam stays decoupled; dsh-tool-bash is the single boundary
that casts SessionId -> OwnerToken.
- Brand at the SOURCE, not via mid-pipeline casts: agent-loop's Config types
agents[].id as AgentId and resumeSessionId as SessionId, so the brand enters
at the config boundary and the inner create()/resume casts disappear (only the
genuinely-new per-run session-id string is cast).
- Stop brand erosion: propagate CallId/SessionId/AgentId to the registry/store
Map keys and public params/exports (SessionStore, AgentRegistry + factory
options, the ACP session-id surface + ToolPresenter CallId map, the
persistence coordinator, invariants pendingCalls, the pi-ai tool-call maps).
- Docs: document BashTaskId/OwnerToken in bash.md (type-equiv re-pasted), point
the Branded type-equiv at dsh-brand, fix stale param types in the session/
agent/bash READMEs, regenerate the cordis catalog + module graph.
Implements docs/rfc/proposed/architecture/2026-06-20-branded-ids.md
2026-06-21 07:17:25 +08:00
|
|
|
packages/util/brand:
|
|
|
|
|
devDependencies:
|
|
|
|
|
cordis:
|
|
|
|
|
specifier: ^4.0.0-rc.6
|
|
|
|
|
version: 4.0.0-rc.6(@cordisjs/plugin-include@1.0.4)(@cordisjs/plugin-loader@1.0.0-rc.4)
|
|
|
|
|
|
Add web capability seam: ctx.web, search/fetch providers, web tools
Introduce web access as a first-class capability seam so the model-facing
web tools stay stable while backends change. dsh-web owns ctx.web as a
provider registry with registration-order-independent selection and the
WebError taxonomy; dsh-web-search-exa, dsh-web-search-perplexity, and
dsh-web-fetch-local register capabilities into it; dsh-tool-web is the sole
owner of the model-facing web_search/web_fetch schemas, prompt sections, and
HTML-to-markdown presentation. Search and fetch are deliberately one seam.
Providers ship as namespace plugins that register into ctx.web (like an
LlmAdapter into ctx.llm), not key-owning services, since multiple search
providers cannot each own the key. Tool registration follows product
enablement, not backend availability, so load order/credentials never enter
the model contract; the seam resolves the provider at execution time and
surfaces a structured WebError otherwise.
Moves the RFC to implemented/ amended to match what shipped. Example/app
configs are intentionally not wired yet (RFC migration step 6).
2026-06-25 15:04:12 +08:00
|
|
|
packages/web/tool-web:
|
|
|
|
|
dependencies:
|
|
|
|
|
schemastery:
|
|
|
|
|
specifier: ^3.18.0
|
|
|
|
|
version: 3.18.0
|
|
|
|
|
devDependencies:
|
|
|
|
|
'@deepseek-ai/dsh-agent':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/agent
|
|
|
|
|
'@deepseek-ai/dsh-llm':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../llm/llm
|
|
|
|
|
'@deepseek-ai/dsh-session':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/session
|
|
|
|
|
'@deepseek-ai/dsh-system-prompt':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/system-prompt
|
|
|
|
|
'@deepseek-ai/dsh-tools':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/tools
|
|
|
|
|
'@deepseek-ai/dsh-web':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../web
|
|
|
|
|
'@deepseek-ai/dsh-web-fetch-local':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../web-fetch-local
|
|
|
|
|
'@deepseek-ai/dsh-web-search-exa':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../web-search-exa
|
|
|
|
|
cordis:
|
|
|
|
|
specifier: ^4.0.0-rc.6
|
|
|
|
|
version: 4.0.0-rc.6(@cordisjs/plugin-include@1.0.4)(@cordisjs/plugin-loader@1.0.0-rc.4)
|
|
|
|
|
|
|
|
|
|
packages/web/web:
|
|
|
|
|
dependencies:
|
|
|
|
|
schemastery:
|
|
|
|
|
specifier: ^3.18.0
|
|
|
|
|
version: 3.18.0
|
|
|
|
|
devDependencies:
|
|
|
|
|
'@deepseek-ai/dsh-llm':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../llm/llm
|
|
|
|
|
cordis:
|
|
|
|
|
specifier: ^4.0.0-rc.6
|
|
|
|
|
version: 4.0.0-rc.6(@cordisjs/plugin-include@1.0.4)(@cordisjs/plugin-loader@1.0.0-rc.4)
|
|
|
|
|
|
|
|
|
|
packages/web/web-fetch-local:
|
|
|
|
|
dependencies:
|
|
|
|
|
schemastery:
|
|
|
|
|
specifier: ^3.18.0
|
|
|
|
|
version: 3.18.0
|
|
|
|
|
devDependencies:
|
|
|
|
|
'@deepseek-ai/dsh-web':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../web
|
|
|
|
|
cordis:
|
|
|
|
|
specifier: ^4.0.0-rc.6
|
|
|
|
|
version: 4.0.0-rc.6(@cordisjs/plugin-include@1.0.4)(@cordisjs/plugin-loader@1.0.0-rc.4)
|
|
|
|
|
|
2026-06-29 15:21:12 +08:00
|
|
|
packages/web/web-search-deepseek:
|
|
|
|
|
dependencies:
|
|
|
|
|
schemastery:
|
|
|
|
|
specifier: ^3.18.0
|
|
|
|
|
version: 3.18.0
|
|
|
|
|
devDependencies:
|
|
|
|
|
'@deepseek-ai/dsh-web':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../web
|
|
|
|
|
cordis:
|
|
|
|
|
specifier: ^4.0.0-rc.6
|
|
|
|
|
version: 4.0.0-rc.6(@cordisjs/plugin-include@1.0.4)(@cordisjs/plugin-loader@1.0.0-rc.4)
|
|
|
|
|
|
Add web capability seam: ctx.web, search/fetch providers, web tools
Introduce web access as a first-class capability seam so the model-facing
web tools stay stable while backends change. dsh-web owns ctx.web as a
provider registry with registration-order-independent selection and the
WebError taxonomy; dsh-web-search-exa, dsh-web-search-perplexity, and
dsh-web-fetch-local register capabilities into it; dsh-tool-web is the sole
owner of the model-facing web_search/web_fetch schemas, prompt sections, and
HTML-to-markdown presentation. Search and fetch are deliberately one seam.
Providers ship as namespace plugins that register into ctx.web (like an
LlmAdapter into ctx.llm), not key-owning services, since multiple search
providers cannot each own the key. Tool registration follows product
enablement, not backend availability, so load order/credentials never enter
the model contract; the seam resolves the provider at execution time and
surfaces a structured WebError otherwise.
Moves the RFC to implemented/ amended to match what shipped. Example/app
configs are intentionally not wired yet (RFC migration step 6).
2026-06-25 15:04:12 +08:00
|
|
|
packages/web/web-search-exa:
|
|
|
|
|
dependencies:
|
|
|
|
|
schemastery:
|
|
|
|
|
specifier: ^3.18.0
|
|
|
|
|
version: 3.18.0
|
|
|
|
|
devDependencies:
|
|
|
|
|
'@deepseek-ai/dsh-web':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../web
|
|
|
|
|
cordis:
|
|
|
|
|
specifier: ^4.0.0-rc.6
|
|
|
|
|
version: 4.0.0-rc.6(@cordisjs/plugin-include@1.0.4)(@cordisjs/plugin-loader@1.0.0-rc.4)
|
|
|
|
|
|
|
|
|
|
packages/web/web-search-perplexity:
|
|
|
|
|
dependencies:
|
|
|
|
|
schemastery:
|
|
|
|
|
specifier: ^3.18.0
|
|
|
|
|
version: 3.18.0
|
|
|
|
|
devDependencies:
|
|
|
|
|
'@deepseek-ai/dsh-web':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../web
|
|
|
|
|
cordis:
|
|
|
|
|
specifier: ^4.0.0-rc.6
|
|
|
|
|
version: 4.0.0-rc.6(@cordisjs/plugin-include@1.0.4)(@cordisjs/plugin-loader@1.0.0-rc.4)
|
|
|
|
|
|
workflow: dynamic workflows — script-driven multi-agent orchestration
A new capability family at packages/workflow/ in the bash seam shape,
modeled on Claude Code's dynamic workflows: the model writes a JavaScript
orchestration script (export const meta = {...} + plain-JS body), a runtime
executes it, and the script — not the conversation — holds the loop, the
branching, and the intermediate results.
- dsh-workflow (ctx.workflows): abstract WorkflowService + run vocabulary
(WorkflowRun whose result NEVER rejects) + observe-only workflow/* events
carrying data snapshots (id + meta, never the live run), per-listener
contained like subagent/*.
- dsh-workflow-vm: in-process node:vm engine. Meta extraction via a
string/comment-aware scanner (template interpolation rejected; literal
evaluated alone in an empty timed context; statement blanked line-
preservingly so stacks keep script line numbers). Hooks: agent(prompt,
{label, phase, schema, model}) over ctx.subagents, parallel(), pipeline()
(no cross-stage barrier), phase(), log(), args. Fatal-vs-null discipline:
hook misuse (unknown/deferred options, bad arguments, unsupported
schemas, tripped caps, seam start failures, cancellation) throws fatal
WorkflowErrors the combinators RE-THROW — never dissolved into the
per-item null reserved for child failures. Realm boundary: inbound values
materialized by descriptor walks that never invoke accessors (defineProperty
copies, __proto__-safe); outbound values rebuilt in-realm via the
context's own JSON.parse. Determinism bans (Date.now/Math.random/argless
new Date) kept so future resume support cannot break scripts. Caps and
timeouts are validated Config. Every hook promise carries a no-op
rejection consumer (app-boot exits on unhandled rejections).
- dsh-tool-workflow: the model-facing workflow tool, synchronous like
dsh-tool-subagent (start → await → try/finally dispose; abort bridged;
non-completed → isError). Generic render card titled by a textual
meta.name sniff. The tool description carries the authoring contract.
Wired into examples/{coding-agent,acp-agent} with explicit-ask-only
guidance. Coverage at every tier: unit (meta scanner, materializer incl.
counting-getter and __proto__ regressions, combinator semantics,
concurrency ceiling, caps, cancellation, no-unhandled-rejection abandon),
integration over the real spawn stack, with-key e2e (real two-phase run +
the tool through the registry pipeline), and a recorded ACP snapshot
scenario (workflow-run, 1 child session). RFC:
docs/rfc/implemented/feature/2026-07-05-dynamic-workflows.md (deferred
work explicitly listed). AGENTS.md budget 1575 → 1590 for the new group's
layout line.
2026-07-05 13:29:35 +08:00
|
|
|
packages/workflow/tool-workflow:
|
|
|
|
|
dependencies:
|
|
|
|
|
schemastery:
|
|
|
|
|
specifier: ^3.18.0
|
|
|
|
|
version: 3.18.0
|
|
|
|
|
devDependencies:
|
|
|
|
|
'@deepseek-ai/dsh-agent':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/agent
|
|
|
|
|
'@deepseek-ai/dsh-llm':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../llm/llm
|
|
|
|
|
'@deepseek-ai/dsh-session':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/session
|
workflow: simplify to the trust premise; settle result on cancellation
Two review responses that belong together — the same review argued the
engine was defending the wrong threat while a benign-input bug wedged
the product.
1) Drop hostile-value containment; state the trust premise.
Scripts are model-written — the same trust level as the model's bash
access — yet successive pre-push review rounds had ratcheted in defenses
that only matter against an adversarial author: trap-free proxy
rejection, accessor-never-invoked descriptor walks, realm-side
pre-rendering of thrown values, realm-built promises/arrays/error clones
with structural fatal recognition. That same author keeps a documented,
accepted, unkillable event-loop spin, so containing its error VALUES is
cost without a threat model — and the planned hardened engine
(worker/isolated-vm) gets value isolation by serialization and deletes
all of this machinery anyway.
What stays, because benign scripts hit it constantly: result never
rejects; dropped hook promises cannot become unhandled rejections; the
value boundary rejects LOUD everything JSON cannot carry (now a plain
recursive walk — getters are read ordinarily and their result is what
crosses; a throwing read fails loud); a "__proto__" key still copies as
a data property; the fatal-vs-null combinator discipline (now host
instanceof — unforgeable from the realm and simpler than clone-shape
recognition). What changes for scripts (documented in the engine
README): hooks hand back host values and host errors — in-script
`instanceof Error` on a hook failure is false (branch on e.name/e.code)
— and args are host-cloned once so a script cannot mutate the caller's
object. realm.ts drops 289 → 173 lines; the hostile-value test tables go
with it. The premise now leads the engine module doc, the README, and
the RFC's engine section, with the removed machinery recorded under
What was rejected.
2) result settles within the dispose grace of a cancellation.
Review finding (verified through the real registry + tool + engine): a
script parked on a promise no hook owns — `await new Promise(() => {})`,
`await Promise.race([])`, a returned never-settling thenable — could not
be settled by cancel(): hooks reject and children abort, but nothing
touches a promise the engine does not own, so `result` stayed pending
FOREVER (the previous cut even pinned that as intended). The tool awaits
run.result BEFORE its disposing finally, the registry awaits the tool,
the loop awaits the registry — one such script wedged the whole agent
turn past any abort, unrecoverable in-process; the mock engine in the
tool's abort test settles result on cancel, which is exactly the
behavior the real engine lacked, so no existing test could see it.
The seam contract now says it out loud: once a run is cancelled, result
SETTLES within the implementation's bounded grace even if the script
never does. The vm engine arms an abandon channel in cancel(); drive()
races the script against it, force-settling 'cancelled' at the grace
(the abandoned settlement stays contained; a post-slice synchronous spin
remains the documented limitation). dispose()'s outer race now exists
for child quiescence only, and `workflow/end` again fires exactly once
per started run. The old 'result stays pending' pin is FLIPPED to the
new contract (the pinned behavior was the bug); new regressions cover
cancel-then-settle on a parked script, a never-settling returned
thenable, and the full composition through the REAL registry + tool +
vm engine (tool-workflow gains workflow-vm/subagent devDeps for it).
agentsStarted JSDoc clarified while touching the vocabulary (accepted
calls, including ones still queued at cancellation).
2026-07-06 00:48:49 +08:00
|
|
|
'@deepseek-ai/dsh-subagent':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../subagent/subagent
|
workflow: dynamic workflows — script-driven multi-agent orchestration
A new capability family at packages/workflow/ in the bash seam shape,
modeled on Claude Code's dynamic workflows: the model writes a JavaScript
orchestration script (export const meta = {...} + plain-JS body), a runtime
executes it, and the script — not the conversation — holds the loop, the
branching, and the intermediate results.
- dsh-workflow (ctx.workflows): abstract WorkflowService + run vocabulary
(WorkflowRun whose result NEVER rejects) + observe-only workflow/* events
carrying data snapshots (id + meta, never the live run), per-listener
contained like subagent/*.
- dsh-workflow-vm: in-process node:vm engine. Meta extraction via a
string/comment-aware scanner (template interpolation rejected; literal
evaluated alone in an empty timed context; statement blanked line-
preservingly so stacks keep script line numbers). Hooks: agent(prompt,
{label, phase, schema, model}) over ctx.subagents, parallel(), pipeline()
(no cross-stage barrier), phase(), log(), args. Fatal-vs-null discipline:
hook misuse (unknown/deferred options, bad arguments, unsupported
schemas, tripped caps, seam start failures, cancellation) throws fatal
WorkflowErrors the combinators RE-THROW — never dissolved into the
per-item null reserved for child failures. Realm boundary: inbound values
materialized by descriptor walks that never invoke accessors (defineProperty
copies, __proto__-safe); outbound values rebuilt in-realm via the
context's own JSON.parse. Determinism bans (Date.now/Math.random/argless
new Date) kept so future resume support cannot break scripts. Caps and
timeouts are validated Config. Every hook promise carries a no-op
rejection consumer (app-boot exits on unhandled rejections).
- dsh-tool-workflow: the model-facing workflow tool, synchronous like
dsh-tool-subagent (start → await → try/finally dispose; abort bridged;
non-completed → isError). Generic render card titled by a textual
meta.name sniff. The tool description carries the authoring contract.
Wired into examples/{coding-agent,acp-agent} with explicit-ask-only
guidance. Coverage at every tier: unit (meta scanner, materializer incl.
counting-getter and __proto__ regressions, combinator semantics,
concurrency ceiling, caps, cancellation, no-unhandled-rejection abandon),
integration over the real spawn stack, with-key e2e (real two-phase run +
the tool through the registry pipeline), and a recorded ACP snapshot
scenario (workflow-run, 1 child session). RFC:
docs/rfc/implemented/feature/2026-07-05-dynamic-workflows.md (deferred
work explicitly listed). AGENTS.md budget 1575 → 1590 for the new group's
layout line.
2026-07-05 13:29:35 +08:00
|
|
|
'@deepseek-ai/dsh-system-prompt':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/system-prompt
|
|
|
|
|
'@deepseek-ai/dsh-tools':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/tools
|
|
|
|
|
'@deepseek-ai/dsh-workflow':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../workflow
|
workflow: simplify to the trust premise; settle result on cancellation
Two review responses that belong together — the same review argued the
engine was defending the wrong threat while a benign-input bug wedged
the product.
1) Drop hostile-value containment; state the trust premise.
Scripts are model-written — the same trust level as the model's bash
access — yet successive pre-push review rounds had ratcheted in defenses
that only matter against an adversarial author: trap-free proxy
rejection, accessor-never-invoked descriptor walks, realm-side
pre-rendering of thrown values, realm-built promises/arrays/error clones
with structural fatal recognition. That same author keeps a documented,
accepted, unkillable event-loop spin, so containing its error VALUES is
cost without a threat model — and the planned hardened engine
(worker/isolated-vm) gets value isolation by serialization and deletes
all of this machinery anyway.
What stays, because benign scripts hit it constantly: result never
rejects; dropped hook promises cannot become unhandled rejections; the
value boundary rejects LOUD everything JSON cannot carry (now a plain
recursive walk — getters are read ordinarily and their result is what
crosses; a throwing read fails loud); a "__proto__" key still copies as
a data property; the fatal-vs-null combinator discipline (now host
instanceof — unforgeable from the realm and simpler than clone-shape
recognition). What changes for scripts (documented in the engine
README): hooks hand back host values and host errors — in-script
`instanceof Error` on a hook failure is false (branch on e.name/e.code)
— and args are host-cloned once so a script cannot mutate the caller's
object. realm.ts drops 289 → 173 lines; the hostile-value test tables go
with it. The premise now leads the engine module doc, the README, and
the RFC's engine section, with the removed machinery recorded under
What was rejected.
2) result settles within the dispose grace of a cancellation.
Review finding (verified through the real registry + tool + engine): a
script parked on a promise no hook owns — `await new Promise(() => {})`,
`await Promise.race([])`, a returned never-settling thenable — could not
be settled by cancel(): hooks reject and children abort, but nothing
touches a promise the engine does not own, so `result` stayed pending
FOREVER (the previous cut even pinned that as intended). The tool awaits
run.result BEFORE its disposing finally, the registry awaits the tool,
the loop awaits the registry — one such script wedged the whole agent
turn past any abort, unrecoverable in-process; the mock engine in the
tool's abort test settles result on cancel, which is exactly the
behavior the real engine lacked, so no existing test could see it.
The seam contract now says it out loud: once a run is cancelled, result
SETTLES within the implementation's bounded grace even if the script
never does. The vm engine arms an abandon channel in cancel(); drive()
races the script against it, force-settling 'cancelled' at the grace
(the abandoned settlement stays contained; a post-slice synchronous spin
remains the documented limitation). dispose()'s outer race now exists
for child quiescence only, and `workflow/end` again fires exactly once
per started run. The old 'result stays pending' pin is FLIPPED to the
new contract (the pinned behavior was the bug); new regressions cover
cancel-then-settle on a parked script, a never-settling returned
thenable, and the full composition through the REAL registry + tool +
vm engine (tool-workflow gains workflow-vm/subagent devDeps for it).
agentsStarted JSDoc clarified while touching the vocabulary (accepted
calls, including ones still queued at cancellation).
2026-07-06 00:48:49 +08:00
|
|
|
'@deepseek-ai/dsh-workflow-vm':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../workflow-vm
|
workflow: dynamic workflows — script-driven multi-agent orchestration
A new capability family at packages/workflow/ in the bash seam shape,
modeled on Claude Code's dynamic workflows: the model writes a JavaScript
orchestration script (export const meta = {...} + plain-JS body), a runtime
executes it, and the script — not the conversation — holds the loop, the
branching, and the intermediate results.
- dsh-workflow (ctx.workflows): abstract WorkflowService + run vocabulary
(WorkflowRun whose result NEVER rejects) + observe-only workflow/* events
carrying data snapshots (id + meta, never the live run), per-listener
contained like subagent/*.
- dsh-workflow-vm: in-process node:vm engine. Meta extraction via a
string/comment-aware scanner (template interpolation rejected; literal
evaluated alone in an empty timed context; statement blanked line-
preservingly so stacks keep script line numbers). Hooks: agent(prompt,
{label, phase, schema, model}) over ctx.subagents, parallel(), pipeline()
(no cross-stage barrier), phase(), log(), args. Fatal-vs-null discipline:
hook misuse (unknown/deferred options, bad arguments, unsupported
schemas, tripped caps, seam start failures, cancellation) throws fatal
WorkflowErrors the combinators RE-THROW — never dissolved into the
per-item null reserved for child failures. Realm boundary: inbound values
materialized by descriptor walks that never invoke accessors (defineProperty
copies, __proto__-safe); outbound values rebuilt in-realm via the
context's own JSON.parse. Determinism bans (Date.now/Math.random/argless
new Date) kept so future resume support cannot break scripts. Caps and
timeouts are validated Config. Every hook promise carries a no-op
rejection consumer (app-boot exits on unhandled rejections).
- dsh-tool-workflow: the model-facing workflow tool, synchronous like
dsh-tool-subagent (start → await → try/finally dispose; abort bridged;
non-completed → isError). Generic render card titled by a textual
meta.name sniff. The tool description carries the authoring contract.
Wired into examples/{coding-agent,acp-agent} with explicit-ask-only
guidance. Coverage at every tier: unit (meta scanner, materializer incl.
counting-getter and __proto__ regressions, combinator semantics,
concurrency ceiling, caps, cancellation, no-unhandled-rejection abandon),
integration over the real spawn stack, with-key e2e (real two-phase run +
the tool through the registry pipeline), and a recorded ACP snapshot
scenario (workflow-run, 1 child session). RFC:
docs/rfc/implemented/feature/2026-07-05-dynamic-workflows.md (deferred
work explicitly listed). AGENTS.md budget 1575 → 1590 for the new group's
layout line.
2026-07-05 13:29:35 +08:00
|
|
|
cordis:
|
|
|
|
|
specifier: ^4.0.0-rc.6
|
|
|
|
|
version: 4.0.0-rc.6(@cordisjs/plugin-include@1.0.4)(@cordisjs/plugin-loader@1.0.0-rc.4)
|
|
|
|
|
|
|
|
|
|
packages/workflow/workflow:
|
|
|
|
|
devDependencies:
|
|
|
|
|
'@deepseek-ai/dsh-agent':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/agent
|
|
|
|
|
'@deepseek-ai/dsh-brand':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../util/brand
|
|
|
|
|
'@deepseek-ai/dsh-llm':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../llm/llm
|
|
|
|
|
'@deepseek-ai/dsh-session':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/session
|
|
|
|
|
cordis:
|
|
|
|
|
specifier: ^4.0.0-rc.6
|
|
|
|
|
version: 4.0.0-rc.6(@cordisjs/plugin-include@1.0.4)(@cordisjs/plugin-loader@1.0.0-rc.4)
|
|
|
|
|
|
|
|
|
|
packages/workflow/workflow-vm:
|
|
|
|
|
dependencies:
|
|
|
|
|
schemastery:
|
|
|
|
|
specifier: ^3.18.0
|
|
|
|
|
version: 3.18.0
|
|
|
|
|
devDependencies:
|
|
|
|
|
'@deepseek-ai/dsh-agent':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/agent
|
|
|
|
|
'@deepseek-ai/dsh-agent-loop':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/agent-loop
|
|
|
|
|
'@deepseek-ai/dsh-brand':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../util/brand
|
|
|
|
|
'@deepseek-ai/dsh-invariants':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../support/invariants
|
|
|
|
|
'@deepseek-ai/dsh-llm':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../llm/llm
|
|
|
|
|
'@deepseek-ai/dsh-session':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/session
|
|
|
|
|
'@deepseek-ai/dsh-subagent':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../subagent/subagent
|
|
|
|
|
'@deepseek-ai/dsh-subagent-spawn':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../subagent/subagent-spawn
|
|
|
|
|
'@deepseek-ai/dsh-system-prompt':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/system-prompt
|
|
|
|
|
'@deepseek-ai/dsh-tools':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../../core/tools
|
|
|
|
|
'@deepseek-ai/dsh-workflow':
|
|
|
|
|
specifier: workspace:^
|
|
|
|
|
version: link:../workflow
|
|
|
|
|
cordis:
|
|
|
|
|
specifier: ^4.0.0-rc.6
|
|
|
|
|
version: 4.0.0-rc.6(@cordisjs/plugin-include@1.0.4)(@cordisjs/plugin-loader@1.0.0-rc.4)
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
vendor/cordis:
|
|
|
|
|
dependencies:
|
|
|
|
|
'@cordisjs/plugin-include':
|
|
|
|
|
specifier: ^1.0.4
|
|
|
|
|
version: 1.0.4(@cordisjs/plugin-loader@1.0.0-rc.4)(cordis@4.0.0-rc.6)
|
|
|
|
|
'@cordisjs/plugin-loader':
|
|
|
|
|
specifier: ^1.0.0-rc.4
|
|
|
|
|
version: 1.0.0-rc.4(cordis@4.0.0-rc.6)
|
|
|
|
|
'@standard-schema/spec':
|
|
|
|
|
specifier: ^1.1.0
|
|
|
|
|
version: 1.1.0
|
|
|
|
|
cosmokit:
|
|
|
|
|
specifier: ^1.8.1
|
|
|
|
|
version: 1.8.1
|
|
|
|
|
|
|
|
|
|
vendor/cosmokit: {}
|
|
|
|
|
|
|
|
|
|
vendor/group:
|
|
|
|
|
dependencies:
|
|
|
|
|
'@cordisjs/plugin-loader':
|
|
|
|
|
specifier: ^1.0.0-rc.4
|
|
|
|
|
version: 1.0.0-rc.4(cordis@4.0.0-rc.6)
|
|
|
|
|
cordis:
|
|
|
|
|
specifier: ^4.0.0-rc.6
|
|
|
|
|
version: 4.0.0-rc.6(@cordisjs/plugin-include@1.0.4)(@cordisjs/plugin-loader@1.0.0-rc.4)
|
|
|
|
|
|
|
|
|
|
vendor/hmr:
|
|
|
|
|
dependencies:
|
|
|
|
|
'@babel/code-frame':
|
|
|
|
|
specifier: ^7.29.0
|
|
|
|
|
version: 7.29.7
|
|
|
|
|
'@cordisjs/plugin-timer':
|
|
|
|
|
specifier: ^1.1.2
|
|
|
|
|
version: 1.1.2(cordis@4.0.0-rc.6)
|
|
|
|
|
chokidar:
|
|
|
|
|
specifier: ^4.0.3
|
|
|
|
|
version: 4.0.3
|
|
|
|
|
cordis:
|
|
|
|
|
specifier: ^4.0.0-rc.6
|
|
|
|
|
version: 4.0.0-rc.6(@cordisjs/plugin-include@1.0.4)(@cordisjs/plugin-loader@1.0.0-rc.4)
|
|
|
|
|
cosmokit:
|
|
|
|
|
specifier: ^1.8.1
|
|
|
|
|
version: 1.8.1
|
|
|
|
|
picomatch:
|
|
|
|
|
specifier: ^4.0.3
|
|
|
|
|
version: 4.0.4
|
|
|
|
|
schemastery:
|
|
|
|
|
specifier: ^3.18.0
|
|
|
|
|
version: 3.18.0
|
|
|
|
|
devDependencies:
|
|
|
|
|
'@types/babel__code-frame':
|
|
|
|
|
specifier: ^7.27.0
|
|
|
|
|
version: 7.27.0
|
|
|
|
|
'@types/picomatch':
|
|
|
|
|
specifier: ^3.0.2
|
|
|
|
|
version: 3.0.2
|
|
|
|
|
esbuild:
|
|
|
|
|
specifier: ^0.28.1
|
|
|
|
|
version: 0.28.1
|
|
|
|
|
|
|
|
|
|
vendor/include:
|
|
|
|
|
dependencies:
|
|
|
|
|
'@cordisjs/plugin-loader':
|
|
|
|
|
specifier: ^1.0.0-rc.4
|
|
|
|
|
version: 1.0.0-rc.4(cordis@4.0.0-rc.6)
|
|
|
|
|
cordis:
|
|
|
|
|
specifier: ^4.0.0-rc.6
|
|
|
|
|
version: 4.0.0-rc.6(@cordisjs/plugin-include@1.0.4)(@cordisjs/plugin-loader@1.0.0-rc.4)
|
|
|
|
|
cosmokit:
|
|
|
|
|
specifier: ^1.8.1
|
|
|
|
|
version: 1.8.1
|
|
|
|
|
js-yaml:
|
|
|
|
|
specifier: ^4.1.0
|
|
|
|
|
version: 4.2.0
|
|
|
|
|
|
|
|
|
|
vendor/loader:
|
|
|
|
|
dependencies:
|
|
|
|
|
cordis:
|
|
|
|
|
specifier: ^4.0.0-rc.6
|
|
|
|
|
version: 4.0.0-rc.6(@cordisjs/plugin-include@1.0.4)(@cordisjs/plugin-loader@1.0.0-rc.4)
|
|
|
|
|
cosmokit:
|
|
|
|
|
specifier: ^1.8.1
|
|
|
|
|
version: 1.8.1
|
|
|
|
|
|
|
|
|
|
vendor/logger-console:
|
|
|
|
|
dependencies:
|
|
|
|
|
cordis:
|
|
|
|
|
specifier: ^4.0.0-rc.6
|
|
|
|
|
version: 4.0.0-rc.6(@cordisjs/plugin-include@1.0.4)(@cordisjs/plugin-loader@1.0.0-rc.4)
|
|
|
|
|
cosmokit:
|
|
|
|
|
specifier: ^1.8.1
|
|
|
|
|
version: 1.8.1
|
|
|
|
|
schemastery:
|
|
|
|
|
specifier: ^3.18.0
|
|
|
|
|
version: 3.18.0
|
|
|
|
|
supports-color:
|
|
|
|
|
specifier: ^9.4.0
|
|
|
|
|
version: 9.4.0
|
|
|
|
|
|
|
|
|
|
vendor/schemastery:
|
|
|
|
|
dependencies:
|
|
|
|
|
'@standard-schema/spec':
|
|
|
|
|
specifier: ^1.1.0
|
|
|
|
|
version: 1.1.0
|
|
|
|
|
cosmokit:
|
|
|
|
|
specifier: ^1.8.1
|
|
|
|
|
version: 1.8.1
|
|
|
|
|
|
|
|
|
|
vendor/timer:
|
|
|
|
|
dependencies:
|
|
|
|
|
cordis:
|
|
|
|
|
specifier: ^4.0.0-rc.6
|
|
|
|
|
version: 4.0.0-rc.6(@cordisjs/plugin-include@1.0.4)(@cordisjs/plugin-loader@1.0.0-rc.4)
|
|
|
|
|
cosmokit:
|
|
|
|
|
specifier: ^1.8.1
|
|
|
|
|
version: 1.8.1
|
|
|
|
|
|
|
|
|
|
packages:
|
|
|
|
|
|
2026-06-16 23:40:23 +08:00
|
|
|
'@agentclientprotocol/sdk@0.25.1':
|
|
|
|
|
resolution: {integrity: sha512-jx2rF3bdpGwZ75Q/meyEDLLbYmbtxk82Uh9hDCdxDvcEedBnNSF5hZAnL/kJR5VNz56JqwOmqnAqasC84MwwkQ==}
|
|
|
|
|
peerDependencies:
|
|
|
|
|
zod: ^3.25.0 || ^4.0.0
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
'@antfu/install-pkg@1.1.0':
|
|
|
|
|
resolution: {integrity: sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
'@anthropic-ai/sdk@0.91.1':
|
|
|
|
|
resolution: {integrity: sha512-LAmu761tSN9r66ixvmciswUj/ZC+1Q4iAfpedTfSVLeswRwnY3n2Nb6Tsk+cLPP28aLOPWeMgIuTuCcMC6W/iw==}
|
|
|
|
|
hasBin: true
|
|
|
|
|
peerDependencies:
|
|
|
|
|
zod: ^3.25.0 || ^4.0.0
|
|
|
|
|
peerDependenciesMeta:
|
|
|
|
|
zod:
|
|
|
|
|
optional: true
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
'@asamuzakjp/css-color@5.1.11':
|
|
|
|
|
resolution: {integrity: sha512-KVw6qIiCTUQhByfTd78h2yD1/00waTmm9uy/R7Ck/ctUyAPj+AEDLkQIdJW0T8+qGgj3j5bpNKK7Q3G+LedJWg==}
|
|
|
|
|
engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0}
|
|
|
|
|
|
|
|
|
|
'@asamuzakjp/dom-selector@7.1.1':
|
|
|
|
|
resolution: {integrity: sha512-67RZDnYRc8H/8MLDgQCDE//zoqVFwajkepHZgmXrbwybzXOEwOWGPYGmALYl9J2DOLfFPPs6kKCqmbzV895hTQ==}
|
|
|
|
|
engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0}
|
|
|
|
|
|
|
|
|
|
'@asamuzakjp/generational-cache@1.0.1':
|
|
|
|
|
resolution: {integrity: sha512-wajfB8KqzMCN2KGNFdLkReeHncd0AslUSrvHVvvYWuU8ghncRJoA50kT3zP9MVL0+9g4/67H+cdvBskj9THPzg==}
|
|
|
|
|
engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0}
|
|
|
|
|
|
|
|
|
|
'@asamuzakjp/nwsapi@2.3.9':
|
|
|
|
|
resolution: {integrity: sha512-n8GuYSrI9bF7FFZ/SjhwevlHc8xaVlb/7HmHelnc/PZXBD2ZR49NnN9sMMuDdEGPeeRQ5d0hqlSlEpgCX3Wl0Q==}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
'@aws-crypto/crc32@5.2.0':
|
|
|
|
|
resolution: {integrity: sha512-nLbCWqQNgUiwwtFsen1AdzAtvuLRsQS8rYgMuxCrdKf9kOssamGLuPwyTY9wyYblNr9+1XM8v6zoDTPPSIeANg==}
|
|
|
|
|
engines: {node: '>=16.0.0'}
|
|
|
|
|
|
|
|
|
|
'@aws-crypto/sha256-browser@5.2.0':
|
|
|
|
|
resolution: {integrity: sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw==}
|
|
|
|
|
|
|
|
|
|
'@aws-crypto/sha256-js@5.2.0':
|
|
|
|
|
resolution: {integrity: sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA==}
|
|
|
|
|
engines: {node: '>=16.0.0'}
|
|
|
|
|
|
|
|
|
|
'@aws-crypto/supports-web-crypto@5.2.0':
|
|
|
|
|
resolution: {integrity: sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg==}
|
|
|
|
|
|
|
|
|
|
'@aws-crypto/util@5.2.0':
|
|
|
|
|
resolution: {integrity: sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==}
|
|
|
|
|
|
|
|
|
|
'@aws-sdk/client-bedrock-runtime@3.1048.0':
|
|
|
|
|
resolution: {integrity: sha512-u+NT61JZEkRFtpL0CAw1N1dwxnaLgwVXQl/zjJxTGgLyS/jTIdg2SdoEoCTHxgDyCnqa1HEi9QOoE9/pYRNpOQ==}
|
|
|
|
|
engines: {node: '>=20.0.0'}
|
|
|
|
|
|
|
|
|
|
'@aws-sdk/core@3.974.20':
|
|
|
|
|
resolution: {integrity: sha512-7sDi2B2N3mc3nf1nz6FyEx/FCrJ1N1QnBmraHHQNabFaeAh2IaOOLml48/rHOD1bICHgTRkbBgNTvUzEr5Z35g==}
|
|
|
|
|
engines: {node: '>=20.0.0'}
|
|
|
|
|
|
|
|
|
|
'@aws-sdk/credential-provider-env@3.972.46':
|
|
|
|
|
resolution: {integrity: sha512-+GPXVS2srMOlH74S+SmC1gVuP2TvUZ0siuC0onKO93q+udP+M72dmY8wJfVQ5CX9z/9X5A1HHwz5yRIGBtskvQ==}
|
|
|
|
|
engines: {node: '>=20.0.0'}
|
|
|
|
|
|
|
|
|
|
'@aws-sdk/credential-provider-http@3.972.48':
|
|
|
|
|
resolution: {integrity: sha512-fA5loSdlocacRxyUXtpoHSMuk5rsIKRDzQYVMnMxjcmFeZshaJlJ8lymy/hYKji6sne/UmNGj5pxuEs6kq/Qcg==}
|
|
|
|
|
engines: {node: '>=20.0.0'}
|
|
|
|
|
|
|
|
|
|
'@aws-sdk/credential-provider-ini@3.972.53':
|
|
|
|
|
resolution: {integrity: sha512-ZfdhIOR41q8TcWEnUac+gCOb+O2LBWdHLmjedXpXz4IEFW2ppNuFcm6p0sMTavpM+zD5TYfpH5Gp7guRyqSgsQ==}
|
|
|
|
|
engines: {node: '>=20.0.0'}
|
|
|
|
|
|
|
|
|
|
'@aws-sdk/credential-provider-login@3.972.52':
|
|
|
|
|
resolution: {integrity: sha512-9hu2oR0qH7Fst5Tzdx+UWxm+w5zCXtErTLtOOW5hwwQc170CLwOeniRxyFY6s9mHfGEfC5zFukNBdKBwJR8mhQ==}
|
|
|
|
|
engines: {node: '>=20.0.0'}
|
|
|
|
|
|
|
|
|
|
'@aws-sdk/credential-provider-node@3.972.55':
|
|
|
|
|
resolution: {integrity: sha512-zMGLa/dhESVqmCD7mmIFFKSwSFrJGScvCXcjvBZEVOOMauFS5JRQvLTMukFpMEFWiV6dTAlsen2ATDBulLPtbg==}
|
|
|
|
|
engines: {node: '>=20.0.0'}
|
|
|
|
|
|
|
|
|
|
'@aws-sdk/credential-provider-process@3.972.46':
|
|
|
|
|
resolution: {integrity: sha512-VUoNFBIjWrUN8NbFiQiuxQEgFjvziAlBRPK+ddh27aj65gk0BYu6bLZnrdrNZwpW6vAihtSUtEMQ1PUJ32QRPA==}
|
|
|
|
|
engines: {node: '>=20.0.0'}
|
|
|
|
|
|
|
|
|
|
'@aws-sdk/credential-provider-sso@3.972.52':
|
|
|
|
|
resolution: {integrity: sha512-nb2/n4o/HQf+FVpVbZe9vCTFngmuDoIsltMgLAtjixaKzvzhB4J8WSDFyWgnErgLHk55ctWH+I4PU+LIHhyffg==}
|
|
|
|
|
engines: {node: '>=20.0.0'}
|
|
|
|
|
|
|
|
|
|
'@aws-sdk/credential-provider-web-identity@3.972.52':
|
|
|
|
|
resolution: {integrity: sha512-lKj6aRSGbqLmpYmM24bY7a1Xmfcq2vkE3hv8CSPYfc1yCu0BPu/XEJ1L4Fm61MsU6ULLNSG8UGsffNoFUBjESA==}
|
|
|
|
|
engines: {node: '>=20.0.0'}
|
|
|
|
|
|
|
|
|
|
'@aws-sdk/eventstream-handler-node@3.972.21':
|
|
|
|
|
resolution: {integrity: sha512-mVC0hOmwGJmNFezZ+wM8Sqfap/LjsMavEf2Evl0YWrLAcrdZOEdjnY8nRvgakVViWJSGm2eJxLuPVHGdeV06kA==}
|
|
|
|
|
engines: {node: '>=20.0.0'}
|
|
|
|
|
|
|
|
|
|
'@aws-sdk/middleware-eventstream@3.972.17':
|
|
|
|
|
resolution: {integrity: sha512-tdbnXbw73ww62ABWP0G0Z/euvFowEEvAoi/zG4NaZo7HJFpfGho/Z65HyVzkJLT1cMsUregr4pTyxljlarT0wA==}
|
|
|
|
|
engines: {node: '>=20.0.0'}
|
|
|
|
|
|
|
|
|
|
'@aws-sdk/middleware-websocket@3.972.28':
|
|
|
|
|
resolution: {integrity: sha512-SCW06Zjugn86pq7+dxGnFcyWJuEWHT753HTU/Vj/OzVxP+NoShwdAr4ynxAcvWL883OgRVbSqW3ohnjIxwXjjw==}
|
|
|
|
|
engines: {node: '>= 14.0.0'}
|
|
|
|
|
|
|
|
|
|
'@aws-sdk/nested-clients@3.997.20':
|
|
|
|
|
resolution: {integrity: sha512-IYJuLpXp2DEILVQpQOy0PMpkftv0AHEOCn52o0atyOaumA0CdWQ3klPyXdViGYLbNpESsVFMVybvHUeZAuiGxA==}
|
|
|
|
|
engines: {node: '>=20.0.0'}
|
|
|
|
|
|
|
|
|
|
'@aws-sdk/signature-v4-multi-region@3.996.34':
|
|
|
|
|
resolution: {integrity: sha512-mx1L5qlumSOt/nKM3BFaHE2HVkWwz0i4Bw0pyYO42FfX/FeLlo8YI6csC0gSPprEk6fTIqI+CZN9RwUwKd5krQ==}
|
|
|
|
|
engines: {node: '>=20.0.0'}
|
|
|
|
|
|
|
|
|
|
'@aws-sdk/token-providers@3.1048.0':
|
|
|
|
|
resolution: {integrity: sha512-k0y/GcuesuSfWyUM0WamrGyeZmltRYaPbHO82UDA6mZ/doB+FOHKutikPAtSXMn/hDz970cF+iRuuiYO9VEbAA==}
|
|
|
|
|
engines: {node: '>=20.0.0'}
|
|
|
|
|
|
|
|
|
|
'@aws-sdk/token-providers@3.1066.0':
|
|
|
|
|
resolution: {integrity: sha512-UqEUJq7dqa44hneLDUcX7UJy95cg8YqEWyakRpvIPnrNS3Mq+UlQHgCDGu5pvwAPtlIW4qcYbvW6reG6++FyvA==}
|
|
|
|
|
engines: {node: '>=20.0.0'}
|
|
|
|
|
|
|
|
|
|
'@aws-sdk/types@3.973.12':
|
|
|
|
|
resolution: {integrity: sha512-43ajd1NF0RMgX5k0hxCNUyEdrtFUsb2aHT2QvpktSC/2Eyb2Jr/JPVqdp0XIoaHWikZJq5tNWSLO6kB5q2eMCA==}
|
|
|
|
|
engines: {node: '>=20.0.0'}
|
|
|
|
|
|
|
|
|
|
'@aws-sdk/util-locate-window@3.965.7':
|
|
|
|
|
resolution: {integrity: sha512-M0D6oIpohdNHjc7udzTHEQyot0+0iuA36jc2I9Hps+f/GtKi2HO/pyijQnCnNcwZqLB5+rtn81z3eZK/GyjAmA==}
|
|
|
|
|
engines: {node: '>=20.0.0'}
|
|
|
|
|
|
|
|
|
|
'@aws-sdk/xml-builder@3.972.29':
|
|
|
|
|
resolution: {integrity: sha512-fk0niuGFxfi8yIJuMVM4mhwObkiQSuwZFj3tAPrLVx64Pk3BkrEIpqjzHKY4hKoEBUD6Jg/S74Zj9jy+5F3DnQ==}
|
|
|
|
|
engines: {node: '>=20.0.0'}
|
|
|
|
|
|
|
|
|
|
'@aws/lambda-invoke-store@0.2.4':
|
|
|
|
|
resolution: {integrity: sha512-iY8yvjE0y651BixKNPgmv1WrQc+GZ142sb0z4gYnChDDY2YqI4P/jsSopBWrKfAt7LOJAkOXt7rC/hms+WclQQ==}
|
|
|
|
|
engines: {node: '>=18.0.0'}
|
|
|
|
|
|
|
|
|
|
'@babel/code-frame@7.29.7':
|
|
|
|
|
resolution: {integrity: sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==}
|
|
|
|
|
engines: {node: '>=6.9.0'}
|
|
|
|
|
|
|
|
|
|
'@babel/generator@8.0.0-rc.6':
|
|
|
|
|
resolution: {integrity: sha512-6mIzgVK8DgEzvIapoQwhXTMnnkuE4STQmVv9H03i/tZ2ml8oev3TRvZJgTenK2Bsq0YWNtzOrFdTyNzCMFtjJQ==}
|
|
|
|
|
engines: {node: ^22.18.0 || >=24.11.0}
|
|
|
|
|
|
|
|
|
|
'@babel/helper-string-parser@7.29.7':
|
|
|
|
|
resolution: {integrity: sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==}
|
|
|
|
|
engines: {node: '>=6.9.0'}
|
|
|
|
|
|
|
|
|
|
'@babel/helper-string-parser@8.0.0-rc.6':
|
|
|
|
|
resolution: {integrity: sha512-BCkFy+zN6kXQed3YOT7aJl93NfDSzQc3pBfsvTVPs9gU9X3V0aefEF5kwBT0E+mDWH9QgKaZstYUQN9VdQZT4g==}
|
|
|
|
|
engines: {node: ^22.18.0 || >=24.11.0}
|
|
|
|
|
|
|
|
|
|
'@babel/helper-validator-identifier@7.29.7':
|
|
|
|
|
resolution: {integrity: sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==}
|
|
|
|
|
engines: {node: '>=6.9.0'}
|
|
|
|
|
|
|
|
|
|
'@babel/helper-validator-identifier@8.0.0-rc.6':
|
|
|
|
|
resolution: {integrity: sha512-nVJ+1JcCgntv8d78rRo++o2wuODT0Irknx2BF8Np4Ft2CRgjLqIs4qzSZ8b66yGbBdMWGmZBO9WEZv1hhNiSpg==}
|
|
|
|
|
engines: {node: ^22.18.0 || >=24.11.0}
|
|
|
|
|
|
|
|
|
|
'@babel/parser@7.29.7':
|
|
|
|
|
resolution: {integrity: sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==}
|
|
|
|
|
engines: {node: '>=6.0.0'}
|
|
|
|
|
hasBin: true
|
|
|
|
|
|
|
|
|
|
'@babel/parser@8.0.0-rc.6':
|
|
|
|
|
resolution: {integrity: sha512-rOS8IpdO7mQELkTPlCsTgPejO0bFuZdEDCGQJouYbYf9e1FLTym7Fei2pEjq8q7MWbX0ravcd7QQYKs1TxOuog==}
|
|
|
|
|
engines: {node: ^22.18.0 || >=24.11.0}
|
|
|
|
|
hasBin: true
|
|
|
|
|
|
|
|
|
|
'@babel/runtime@7.29.7':
|
|
|
|
|
resolution: {integrity: sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==}
|
|
|
|
|
engines: {node: '>=6.9.0'}
|
|
|
|
|
|
|
|
|
|
'@babel/types@7.29.7':
|
|
|
|
|
resolution: {integrity: sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==}
|
|
|
|
|
engines: {node: '>=6.9.0'}
|
|
|
|
|
|
|
|
|
|
'@babel/types@8.0.0-rc.6':
|
|
|
|
|
resolution: {integrity: sha512-p7/ABylAYlexb31wtRdIfH9L9A0Z2T/9H6zAqzqndkY2PLkvNNc580wGhp/gGKN4Sp9sQvSkhc6Oga8/O+wTyw==}
|
|
|
|
|
engines: {node: ^22.18.0 || >=24.11.0}
|
|
|
|
|
|
|
|
|
|
'@bcoe/v8-coverage@1.0.2':
|
|
|
|
|
resolution: {integrity: sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==}
|
|
|
|
|
engines: {node: '>=18'}
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
'@braintree/sanitize-url@7.1.2':
|
|
|
|
|
resolution: {integrity: sha512-jigsZK+sMF/cuiB7sERuo9V7N9jx+dhmHHnQyDSVdpZwVutaBu7WvNYqMDLSgFgfB30n452TP3vjDAvFC973mA==}
|
|
|
|
|
|
|
|
|
|
'@bramus/specificity@2.4.2':
|
|
|
|
|
resolution: {integrity: sha512-ctxtJ/eA+t+6q2++vj5j7FYX3nRu311q1wfYH3xjlLOsczhlhxAg2FWNUXhpGvAw3BWo1xBcvOV6/YLc2r5FJw==}
|
|
|
|
|
hasBin: true
|
|
|
|
|
|
|
|
|
|
'@chevrotain/types@11.1.2':
|
|
|
|
|
resolution: {integrity: sha512-U+HFai5+zmJCkK86QsaJtoITlboZHBqrVketcO2ROv865xfCMSFpELQoz1GkX5GzME8pTa+3kbKrZHQtI0gdbw==}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
'@cordisjs/plugin-include@1.0.4':
|
|
|
|
|
resolution: {integrity: sha512-b1Hm1wmue0v7d/jayoXoBjCV2J14XWTL5yyDZEYeL2L9HgcyTq6JbCw99ozSbei98uAbkwq/pBhimsp/HsySeg==}
|
|
|
|
|
peerDependencies:
|
|
|
|
|
'@cordisjs/plugin-loader': ^1.0.0-rc.4
|
|
|
|
|
cordis: ^4.0.0-rc.5
|
|
|
|
|
|
|
|
|
|
'@cordisjs/plugin-loader@1.0.0-rc.4':
|
|
|
|
|
resolution: {integrity: sha512-pocUsZiZ/r2yOJby79tmn22Ifk3tCpOmHNYar4TPAotSja30soSrnMVU8YIRD/vJdjuDCMnM/46nDQWDFLM3SQ==}
|
|
|
|
|
peerDependencies:
|
|
|
|
|
cordis: ^4.0.0-rc.5
|
|
|
|
|
|
|
|
|
|
'@cordisjs/plugin-timer@1.1.2':
|
|
|
|
|
resolution: {integrity: sha512-5z5C3Eewt8JzK9XGy5JgIoYFRqXPWZnT7hHFfuJMQNzSom6iEVeLXpYiMvqVqGfJicHA7IroaOjcLRf99sidrQ==}
|
|
|
|
|
peerDependencies:
|
|
|
|
|
cordis: ^4.0.0-rc.5
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
'@csstools/color-helpers@6.1.0':
|
|
|
|
|
resolution: {integrity: sha512-064IFJdjTfUqnjpCVpMOdbr8FLQBhinbZj6yRv2An2E41O/pLEXqfFRWqGq/SxlE5PEUYTlvWsG2r8MswAVvkg==}
|
|
|
|
|
engines: {node: '>=20.19.0'}
|
|
|
|
|
|
|
|
|
|
'@csstools/css-calc@3.2.1':
|
|
|
|
|
resolution: {integrity: sha512-DtdHlgXh5ZkA43cwBcAm+huzgJiwx3ZTWVjBs94kwz2xKqSimDA3lBgCjphYgwgVUMWatSM0pDd8TILB1yrVVg==}
|
|
|
|
|
engines: {node: '>=20.19.0'}
|
|
|
|
|
peerDependencies:
|
|
|
|
|
'@csstools/css-parser-algorithms': ^4.0.0
|
|
|
|
|
'@csstools/css-tokenizer': ^4.0.0
|
|
|
|
|
|
|
|
|
|
'@csstools/css-color-parser@4.1.9':
|
|
|
|
|
resolution: {integrity: sha512-paQcIaOO53Rk5+YrBaBjm/SgrV4INImjo2BT1DtQRYr+XeTRbeAYlS+jxXp9drqvKmtFnWRJKIalDLhZZDu42A==}
|
|
|
|
|
engines: {node: '>=20.19.0'}
|
|
|
|
|
peerDependencies:
|
|
|
|
|
'@csstools/css-parser-algorithms': ^4.0.0
|
|
|
|
|
'@csstools/css-tokenizer': ^4.0.0
|
|
|
|
|
|
|
|
|
|
'@csstools/css-parser-algorithms@4.0.0':
|
|
|
|
|
resolution: {integrity: sha512-+B87qS7fIG3L5h3qwJ/IFbjoVoOe/bpOdh9hAjXbvx0o8ImEmUsGXN0inFOnk2ChCFgqkkGFQ+TpM5rbhkKe4w==}
|
|
|
|
|
engines: {node: '>=20.19.0'}
|
|
|
|
|
peerDependencies:
|
|
|
|
|
'@csstools/css-tokenizer': ^4.0.0
|
|
|
|
|
|
|
|
|
|
'@csstools/css-syntax-patches-for-csstree@1.1.6':
|
|
|
|
|
resolution: {integrity: sha512-TcJCWFbXLPpJYq6z7bfOyjWYJDiDg2/I4gyUC9pqPNqHFRIey0EB0q0L5cSnQDfWJg8Jd6VadakxdIez/3zkqQ==}
|
|
|
|
|
peerDependencies:
|
|
|
|
|
css-tree: ^3.2.1
|
|
|
|
|
peerDependenciesMeta:
|
|
|
|
|
css-tree:
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@csstools/css-tokenizer@4.0.0':
|
|
|
|
|
resolution: {integrity: sha512-QxULHAm7cNu72w97JUNCBFODFaXpbDg+dP8b/oWFAZ2MTRppA3U00Y2L1HqaS4J6yBqxwa/Y3nMBaxVKbB/NsA==}
|
|
|
|
|
engines: {node: '>=20.19.0'}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
'@earendil-works/pi-ai@0.79.3':
|
|
|
|
|
resolution: {integrity: sha512-lMSput/haP5uZAGbXhS5rAYd3GB7GYdJkoAUxg3VFummBeqGqGqllaTWrbHFN12kVGyVfWHhdySNXkiqVh65Iw==}
|
|
|
|
|
engines: {node: '>=22.19.0'}
|
|
|
|
|
hasBin: true
|
|
|
|
|
|
|
|
|
|
'@emnapi/core@1.10.0':
|
|
|
|
|
resolution: {integrity: sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==}
|
|
|
|
|
|
|
|
|
|
'@emnapi/core@1.11.0':
|
|
|
|
|
resolution: {integrity: sha512-l9Oo58x0HOP5znGzVhYW9U3e5wVuA4LAZU2AGezTmkhO1CgQRFDhDg4nneHsu/t3WniXg9QrG2nIXL/ZS8ln8Q==}
|
|
|
|
|
|
|
|
|
|
'@emnapi/runtime@1.10.0':
|
|
|
|
|
resolution: {integrity: sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==}
|
|
|
|
|
|
|
|
|
|
'@emnapi/runtime@1.11.0':
|
|
|
|
|
resolution: {integrity: sha512-55coeOFKHv1ywEcUXJtWU5f+Jr/W5tZDvZig8DLKSwUN1JpROQ4rk/SNOQiFWmaR/VKF4zuFyW1B8JduOSv6Pg==}
|
|
|
|
|
|
|
|
|
|
'@emnapi/wasi-threads@1.2.1':
|
|
|
|
|
resolution: {integrity: sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==}
|
|
|
|
|
|
|
|
|
|
'@emnapi/wasi-threads@1.2.2':
|
|
|
|
|
resolution: {integrity: sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA==}
|
|
|
|
|
|
|
|
|
|
'@esbuild/aix-ppc64@0.28.1':
|
|
|
|
|
resolution: {integrity: sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ==}
|
|
|
|
|
engines: {node: '>=18'}
|
|
|
|
|
cpu: [ppc64]
|
|
|
|
|
os: [aix]
|
|
|
|
|
|
|
|
|
|
'@esbuild/android-arm64@0.28.1':
|
|
|
|
|
resolution: {integrity: sha512-34EGEbCIAgosYz6goLcopX6Mo7NyGv9tfwEM2/7Ce2VcVRk568iSvniGWcUXIy7wEDR1wzolcxcriFVrWYcwBg==}
|
|
|
|
|
engines: {node: '>=18'}
|
|
|
|
|
cpu: [arm64]
|
|
|
|
|
os: [android]
|
|
|
|
|
|
|
|
|
|
'@esbuild/android-arm@0.28.1':
|
|
|
|
|
resolution: {integrity: sha512-0k2F129Xdio1TdJfzJ8sy1Q47vUD2NnwdhiAf7drUN1EBTfPf4hsFCtmMgu/6m8JSzsBrlmVjudMBQqOfG8usQ==}
|
|
|
|
|
engines: {node: '>=18'}
|
|
|
|
|
cpu: [arm]
|
|
|
|
|
os: [android]
|
|
|
|
|
|
|
|
|
|
'@esbuild/android-x64@0.28.1':
|
|
|
|
|
resolution: {integrity: sha512-dbwY7ltSMDWsRatcRpCnES4F+im88OCUgGZjy52shC7GqHRE/cYlxNbB4Z4UpJswpcc4Qxd2oE/ufM0p61IKng==}
|
|
|
|
|
engines: {node: '>=18'}
|
|
|
|
|
cpu: [x64]
|
|
|
|
|
os: [android]
|
|
|
|
|
|
|
|
|
|
'@esbuild/darwin-arm64@0.28.1':
|
|
|
|
|
resolution: {integrity: sha512-TZbWkQY7kvTAXbXUT7uVACR5cMHsDiSz9z7ZKAX/RTq/WJEk3QyRr0wZpNhBDX+/0CtdqUIJlOiodQcta6tY3Q==}
|
|
|
|
|
engines: {node: '>=18'}
|
|
|
|
|
cpu: [arm64]
|
|
|
|
|
os: [darwin]
|
|
|
|
|
|
|
|
|
|
'@esbuild/darwin-x64@0.28.1':
|
|
|
|
|
resolution: {integrity: sha512-zfdzgK9ACBNZLI/CyHTOx81SyNbM6YXn7rxSgX97VjyiPl9W1i4Ka4fgKECEoFCKGpvBj5qArWIGgQjOwkgskQ==}
|
|
|
|
|
engines: {node: '>=18'}
|
|
|
|
|
cpu: [x64]
|
|
|
|
|
os: [darwin]
|
|
|
|
|
|
|
|
|
|
'@esbuild/freebsd-arm64@0.28.1':
|
|
|
|
|
resolution: {integrity: sha512-wG2EA8ENdEI0qhkSZMjfqrdY+ziCYCPMmtZjjIwOmXFjmyzEHn+UUxk5of+SYsjtfs3VpnlC7QLzSI5hY/rOAw==}
|
|
|
|
|
engines: {node: '>=18'}
|
|
|
|
|
cpu: [arm64]
|
|
|
|
|
os: [freebsd]
|
|
|
|
|
|
|
|
|
|
'@esbuild/freebsd-x64@0.28.1':
|
|
|
|
|
resolution: {integrity: sha512-i7dZ9vQgnvSCzi/rYCXNgtF/U+eKZNJBzu3eTQbRgHnM7tNSizLOkRFAl3qzVc/Op/u5YkHHa4pf/3DOYHthLQ==}
|
|
|
|
|
engines: {node: '>=18'}
|
|
|
|
|
cpu: [x64]
|
|
|
|
|
os: [freebsd]
|
|
|
|
|
|
|
|
|
|
'@esbuild/linux-arm64@0.28.1':
|
|
|
|
|
resolution: {integrity: sha512-yHs+0uc8+nvEAfAfxrWQKK5peSNzBc4PegcMO0EJ2hT71uA7vB8Ihg2e77R2P7SG5uYjPbHlLLmve4LLLRCf0g==}
|
|
|
|
|
engines: {node: '>=18'}
|
|
|
|
|
cpu: [arm64]
|
|
|
|
|
os: [linux]
|
|
|
|
|
|
|
|
|
|
'@esbuild/linux-arm@0.28.1':
|
|
|
|
|
resolution: {integrity: sha512-qVXBOHQS+d5Y722GwJzJUtOLlX7km3CraOaGormF1pDtPd2C/l1SHRPgjLunLGe51Sh5YYWKMFDyV4SxgMQYTQ==}
|
|
|
|
|
engines: {node: '>=18'}
|
|
|
|
|
cpu: [arm]
|
|
|
|
|
os: [linux]
|
|
|
|
|
|
|
|
|
|
'@esbuild/linux-ia32@0.28.1':
|
|
|
|
|
resolution: {integrity: sha512-d1z4ZuP0ajrfz/FhGT4vv278rX8KnPPJx8i5+AtK7TYbx9Le9F1hyzurZpkEyjkGa9dUGhQow4C1NmeGvqxN2w==}
|
|
|
|
|
engines: {node: '>=18'}
|
|
|
|
|
cpu: [ia32]
|
|
|
|
|
os: [linux]
|
|
|
|
|
|
|
|
|
|
'@esbuild/linux-loong64@0.28.1':
|
|
|
|
|
resolution: {integrity: sha512-M5sRjUVZrkm1OAPR3dlOYzNmN+loZKGVi1VUQGrwuqLcbR6qeAz+famMhjASeH3YVKvZz+zT1jlh/keC3Rj/lg==}
|
|
|
|
|
engines: {node: '>=18'}
|
|
|
|
|
cpu: [loong64]
|
|
|
|
|
os: [linux]
|
|
|
|
|
|
|
|
|
|
'@esbuild/linux-mips64el@0.28.1':
|
|
|
|
|
resolution: {integrity: sha512-mRObBZeHh2OxcBFPWE/FjylkRgZdYuiTR3vaTozquCGOH14iP9oN4x4Ge81CoIDYQrXmIxpFumJBu5MtZpnQJQ==}
|
|
|
|
|
engines: {node: '>=18'}
|
|
|
|
|
cpu: [mips64el]
|
|
|
|
|
os: [linux]
|
|
|
|
|
|
|
|
|
|
'@esbuild/linux-ppc64@0.28.1':
|
|
|
|
|
resolution: {integrity: sha512-slScBsMAb3GFDcdrCgLwZtPYRoH2H/youv10QiZyRjmsP48fznoveWytSgCI/R0ZcUgpc0ZhIUEx6LHts8yrfQ==}
|
|
|
|
|
engines: {node: '>=18'}
|
|
|
|
|
cpu: [ppc64]
|
|
|
|
|
os: [linux]
|
|
|
|
|
|
|
|
|
|
'@esbuild/linux-riscv64@0.28.1':
|
|
|
|
|
resolution: {integrity: sha512-kw0owk1o0GFETUJyW0jc0G4Yzs0BHZn0JDZ8JRT088vjJYX777BAs1fDGxAC+q831qOs2DTC96mNsG2opdfyyQ==}
|
|
|
|
|
engines: {node: '>=18'}
|
|
|
|
|
cpu: [riscv64]
|
|
|
|
|
os: [linux]
|
|
|
|
|
|
|
|
|
|
'@esbuild/linux-s390x@0.28.1':
|
|
|
|
|
resolution: {integrity: sha512-/lAIjX8aYFRByhh6L5rYtPEDRqa9de/4V/juOXcta5frjvzXO4/sqEtyytse0g3zZFuWu5cDN0MkLz2qRDD2Ag==}
|
|
|
|
|
engines: {node: '>=18'}
|
|
|
|
|
cpu: [s390x]
|
|
|
|
|
os: [linux]
|
|
|
|
|
|
|
|
|
|
'@esbuild/linux-x64@0.28.1':
|
|
|
|
|
resolution: {integrity: sha512-u/anNYF2mmVOEDwLtnQ1wOr3EZ9sTNGLWrsYGYwHWzGA3Si84IOkHXlbWTD1NB+9/1lcnweYKO54uhxZydNzfA==}
|
|
|
|
|
engines: {node: '>=18'}
|
|
|
|
|
cpu: [x64]
|
|
|
|
|
os: [linux]
|
|
|
|
|
|
|
|
|
|
'@esbuild/netbsd-arm64@0.28.1':
|
|
|
|
|
resolution: {integrity: sha512-oks0DYbLwWMmaakTsCb+zL4E+aHRVLom9IJZOAthMQEPiQmydXHkziYEsGYRx0uNV/IjEKGAV941JzH02pflqw==}
|
|
|
|
|
engines: {node: '>=18'}
|
|
|
|
|
cpu: [arm64]
|
|
|
|
|
os: [netbsd]
|
|
|
|
|
|
|
|
|
|
'@esbuild/netbsd-x64@0.28.1':
|
|
|
|
|
resolution: {integrity: sha512-aeL6lAnN89Hz43Mlh1G8ARasbuoYvSITDEx0tHh5b7jJnHcssqgjy9Yx430GDpmCa6OyrKoS0aNRjKundRizGg==}
|
|
|
|
|
engines: {node: '>=18'}
|
|
|
|
|
cpu: [x64]
|
|
|
|
|
os: [netbsd]
|
|
|
|
|
|
|
|
|
|
'@esbuild/openbsd-arm64@0.28.1':
|
|
|
|
|
resolution: {integrity: sha512-MEFJe5C3R8pwXdZ5Y21oo6m7ePiS0d9pWucn99O/wvyJZChoIQKrQDxKrGeW8F5+T0okTHesAmDeiHDTIq0V/Q==}
|
|
|
|
|
engines: {node: '>=18'}
|
|
|
|
|
cpu: [arm64]
|
|
|
|
|
os: [openbsd]
|
|
|
|
|
|
|
|
|
|
'@esbuild/openbsd-x64@0.28.1':
|
|
|
|
|
resolution: {integrity: sha512-i/ZLIOafE0Z8cI/XANJAixoJL/uRAoS2xOA3rb0xN+KK0K177cMAsQYkzHtBrtMXAKuAc7HGgcWiZ/sRC1Nxgw==}
|
|
|
|
|
engines: {node: '>=18'}
|
|
|
|
|
cpu: [x64]
|
|
|
|
|
os: [openbsd]
|
|
|
|
|
|
|
|
|
|
'@esbuild/openharmony-arm64@0.28.1':
|
|
|
|
|
resolution: {integrity: sha512-ge+Z7EXFNt2BO1oAMsVpiQ8EwndV9i1xXerAeTIK7AtPs3bKFXQM7nlRxDSIUIMeueR1CNXxqztLzdNeReKBJg==}
|
|
|
|
|
engines: {node: '>=18'}
|
|
|
|
|
cpu: [arm64]
|
|
|
|
|
os: [openharmony]
|
|
|
|
|
|
|
|
|
|
'@esbuild/sunos-x64@0.28.1':
|
|
|
|
|
resolution: {integrity: sha512-BEjgtECkL3vY+SaSQ6nzVfiALUeFxpawyp8Jmf5PtYhf1Ug40N1h/hxlhts+f1FvSvarEigdxS3BlSMI2PJLcQ==}
|
|
|
|
|
engines: {node: '>=18'}
|
|
|
|
|
cpu: [x64]
|
|
|
|
|
os: [sunos]
|
|
|
|
|
|
|
|
|
|
'@esbuild/win32-arm64@0.28.1':
|
|
|
|
|
resolution: {integrity: sha512-lCv9eK/H6ZJWbE7bh2nw54CZ9M2nupBxJcTsdk/QQnWkdSjKGuxmmH8/GWrlT1eMmZfn4dGcCjRte397WqfQXA==}
|
|
|
|
|
engines: {node: '>=18'}
|
|
|
|
|
cpu: [arm64]
|
|
|
|
|
os: [win32]
|
|
|
|
|
|
|
|
|
|
'@esbuild/win32-ia32@0.28.1':
|
|
|
|
|
resolution: {integrity: sha512-zvb/mB2bSCoJOpoCBgYKKpX6YM6mJBlBUVUtVj41DlZJVEB6/0CKlRYxP5wWl1C1ILiCoAU5wZZ4q1P3qeS6Eg==}
|
|
|
|
|
engines: {node: '>=18'}
|
|
|
|
|
cpu: [ia32]
|
|
|
|
|
os: [win32]
|
|
|
|
|
|
|
|
|
|
'@esbuild/win32-x64@0.28.1':
|
|
|
|
|
resolution: {integrity: sha512-bm4Mowrv+GXMlpWX++EcXw/iLyd1o3+bJkC2DkWXYVvgZCqD/bSj9ctZeAMC3cIxgjRVR2Dufaiu4YPxr5gW1A==}
|
|
|
|
|
engines: {node: '>=18'}
|
|
|
|
|
cpu: [x64]
|
|
|
|
|
os: [win32]
|
|
|
|
|
|
|
|
|
|
'@eslint-community/eslint-utils@4.9.1':
|
|
|
|
|
resolution: {integrity: sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==}
|
|
|
|
|
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
|
|
|
|
peerDependencies:
|
|
|
|
|
eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
|
|
|
|
|
|
|
|
|
|
'@eslint-community/regexpp@4.12.2':
|
|
|
|
|
resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==}
|
|
|
|
|
engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
|
|
|
|
|
|
|
|
|
|
'@eslint/config-array@0.23.5':
|
|
|
|
|
resolution: {integrity: sha512-Y3kKLvC1dvTOT+oGlqNQ1XLqK6D1HU2YXPc52NmAlJZbMMWDzGYXMiPRJ8TYD39muD/OTjlZmNJ4ib7dvSrMBA==}
|
|
|
|
|
engines: {node: ^20.19.0 || ^22.13.0 || >=24}
|
|
|
|
|
|
|
|
|
|
'@eslint/config-helpers@0.6.0':
|
|
|
|
|
resolution: {integrity: sha512-ii6Bw9jJ2zi2cWA2Z+9/QZ/+3DX6kwaV5Q986D/CdP3Lap3w/pgQZ373FV7byY/i7L4IRH/G43I5dz1ClsCbpA==}
|
|
|
|
|
engines: {node: ^20.19.0 || ^22.13.0 || >=24}
|
|
|
|
|
|
|
|
|
|
'@eslint/core@1.2.1':
|
|
|
|
|
resolution: {integrity: sha512-MwcE1P+AZ4C6DWlpin/OmOA54mmIZ/+xZuJiQd4SyB29oAJjN30UW9wkKNptW2ctp4cEsvhlLY/CsQ1uoHDloQ==}
|
|
|
|
|
engines: {node: ^20.19.0 || ^22.13.0 || >=24}
|
|
|
|
|
|
|
|
|
|
'@eslint/object-schema@3.0.5':
|
|
|
|
|
resolution: {integrity: sha512-vqTaUEgxzm+YDSdElad6PiRoX4t8VGDjCtt05zn4nU810UIx/uNEV7/lZJ6KwFThKZOzOxzXy48da+No7HZaMw==}
|
|
|
|
|
engines: {node: ^20.19.0 || ^22.13.0 || >=24}
|
|
|
|
|
|
|
|
|
|
'@eslint/plugin-kit@0.7.2':
|
|
|
|
|
resolution: {integrity: sha512-+CNAzxglkrpNf/kKywqQfk74QjtceuOE7Qm+AF8miRvPF/wmmK5+OJOgVh3AVTT3RP2mH3+FOaxlE5v72owk0A==}
|
|
|
|
|
engines: {node: ^20.19.0 || ^22.13.0 || >=24}
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
'@exodus/bytes@1.15.1':
|
|
|
|
|
resolution: {integrity: sha512-S6mL0yNB/Abt9Ei4tq8gDhcczc4S3+vQ4ra7vxnAf+YHC02srtqxKKZghx2Dq6p0e66THKwR6r8N6P95wEty7Q==}
|
|
|
|
|
engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0}
|
|
|
|
|
peerDependencies:
|
|
|
|
|
'@noble/hashes': ^1.8.0 || ^2.0.0
|
|
|
|
|
peerDependenciesMeta:
|
|
|
|
|
'@noble/hashes':
|
|
|
|
|
optional: true
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
'@google/genai@1.52.0':
|
|
|
|
|
resolution: {integrity: sha512-gwSvbpiN/17O9TbsqSsE/OzZcpv5Fo4RQjdngGgogtuB9RsyJ8ZHhX5KjHj1bp5N9snN2eK8LDGXSaWW2hof8Q==}
|
|
|
|
|
engines: {node: '>=20.0.0'}
|
|
|
|
|
peerDependencies:
|
|
|
|
|
'@modelcontextprotocol/sdk': ^1.25.2
|
|
|
|
|
peerDependenciesMeta:
|
|
|
|
|
'@modelcontextprotocol/sdk':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@humanfs/core@0.19.2':
|
|
|
|
|
resolution: {integrity: sha512-UhXNm+CFMWcbChXywFwkmhqjs3PRCmcSa/hfBgLIb7oQ5HNb1wS0icWsGtSAUNgefHeI+eBrA8I1fxmbHsGdvA==}
|
|
|
|
|
engines: {node: '>=18.18.0'}
|
|
|
|
|
|
|
|
|
|
'@humanfs/node@0.16.8':
|
|
|
|
|
resolution: {integrity: sha512-gE1eQNZ3R++kTzFUpdGlpmy8kDZD/MLyHqDwqjkVQI0JMdI1D51sy1H958PNXYkM2rAac7e5/CnIKZrHtPh3BQ==}
|
|
|
|
|
engines: {node: '>=18.18.0'}
|
|
|
|
|
|
|
|
|
|
'@humanfs/types@0.15.0':
|
|
|
|
|
resolution: {integrity: sha512-ZZ1w0aoQkwuUuC7Yf+7sdeaNfqQiiLcSRbfI08oAxqLtpXQr9AIVX7Ay7HLDuiLYAaFPu8oBYNq/QIi9URHJ3Q==}
|
|
|
|
|
engines: {node: '>=18.18.0'}
|
|
|
|
|
|
|
|
|
|
'@humanwhocodes/module-importer@1.0.1':
|
|
|
|
|
resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
|
|
|
|
|
engines: {node: '>=12.22'}
|
|
|
|
|
|
|
|
|
|
'@humanwhocodes/retry@0.4.3':
|
|
|
|
|
resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==}
|
|
|
|
|
engines: {node: '>=18.18'}
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
'@iconify/types@2.0.0':
|
|
|
|
|
resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==}
|
|
|
|
|
|
|
|
|
|
'@iconify/utils@3.1.3':
|
|
|
|
|
resolution: {integrity: sha512-LPKOXPn/zV+zis1oOfGWogaXVpqUybF3ZS6SCZIsz8vg0ivVp9+fVqyYB7xq0aiST/VhUQYGO1qo6uoYSiEJqw==}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
'@jridgewell/gen-mapping@0.3.13':
|
|
|
|
|
resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==}
|
|
|
|
|
|
|
|
|
|
'@jridgewell/resolve-uri@3.1.2':
|
|
|
|
|
resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
|
|
|
|
|
engines: {node: '>=6.0.0'}
|
|
|
|
|
|
|
|
|
|
'@jridgewell/sourcemap-codec@1.5.5':
|
|
|
|
|
resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==}
|
|
|
|
|
|
|
|
|
|
'@jridgewell/trace-mapping@0.3.31':
|
|
|
|
|
resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==}
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
'@mermaid-js/parser@1.2.0':
|
|
|
|
|
resolution: {integrity: sha512-oYPyv8A4As1yH5Bx+04iQEQxXuIQDe0GKCNSRgao6z8AM9jixXIfP0vsppRLvGf+nKIOb9/LdpWA4YuJiVvESA==}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
'@mistralai/mistralai@2.2.1':
|
|
|
|
|
resolution: {integrity: sha512-uKU8CZmL2RzYKmplsU01hii4p3pe4HqJefpWNRWXm1Tcm0Sm4xXfwSLIy4k7ZCPlbETCGcp69E7hZs+WOJ5itQ==}
|
|
|
|
|
|
|
|
|
|
'@napi-rs/wasm-runtime@1.1.5':
|
|
|
|
|
resolution: {integrity: sha512-AWPoBRJ9tsnVhor4sjO7rkni+7p+2IAEFj6cx06UgP10jkQHqay/36uRV/bFkgrh18D9vb4cr8Q0Pthskgzy+Q==}
|
|
|
|
|
peerDependencies:
|
|
|
|
|
'@emnapi/core': ^1.7.1
|
|
|
|
|
'@emnapi/runtime': ^1.7.1
|
|
|
|
|
|
|
|
|
|
'@nodable/entities@2.2.0':
|
|
|
|
|
resolution: {integrity: sha512-9uGyhaQavEUMC8AIddIjau4NsnsXhou+j5sBAGojCM1oxmQpVKTWR/9JxABD6UAv12vpIms55fPZKFQEhG6uBg==}
|
|
|
|
|
|
|
|
|
|
'@oxc-parser/binding-android-arm-eabi@0.133.0':
|
|
|
|
|
resolution: {integrity: sha512-l/44caGse+VpnY9gx0yvvc5QnnG3yG1FO3KZgYvNL1GZrfK86zIwAOgGEVlxDyRymzrU/KHiblPFpevKOmJmUA==}
|
|
|
|
|
engines: {node: ^20.19.0 || >=22.12.0}
|
|
|
|
|
cpu: [arm]
|
|
|
|
|
os: [android]
|
|
|
|
|
|
|
|
|
|
'@oxc-parser/binding-android-arm64@0.133.0':
|
|
|
|
|
resolution: {integrity: sha512-KUHmPMziLBp4u+zbrLdB7iWS7KshuZe+RAp7ELnY9SI9nNXBZ+dp8fiBqWOxhXqn+FQg3a4UcQhwmsJOKV8Jjg==}
|
|
|
|
|
engines: {node: ^20.19.0 || >=22.12.0}
|
|
|
|
|
cpu: [arm64]
|
|
|
|
|
os: [android]
|
|
|
|
|
|
|
|
|
|
'@oxc-parser/binding-darwin-arm64@0.133.0':
|
|
|
|
|
resolution: {integrity: sha512-q8dWmnU/8ea2tga9w2f1PinQ5rcMPDUGkF64T189b65YMjUomET4oy5oRldOr4AwOQkneOG/Zttnz1Dvrc62wg==}
|
|
|
|
|
engines: {node: ^20.19.0 || >=22.12.0}
|
|
|
|
|
cpu: [arm64]
|
|
|
|
|
os: [darwin]
|
|
|
|
|
|
|
|
|
|
'@oxc-parser/binding-darwin-x64@0.133.0':
|
|
|
|
|
resolution: {integrity: sha512-cOKeIELIB2bJnCKwqx4Rdj+1Lss/U6uCbLxRySZrhyOOQa1flKhwZFjEHRHxk8fU1NKmhK5OnTdPQ4CpjuFuVw==}
|
|
|
|
|
engines: {node: ^20.19.0 || >=22.12.0}
|
|
|
|
|
cpu: [x64]
|
|
|
|
|
os: [darwin]
|
|
|
|
|
|
|
|
|
|
'@oxc-parser/binding-freebsd-x64@0.133.0':
|
|
|
|
|
resolution: {integrity: sha512-OpaSv4pW3KgFrMYQxTaS0aOE4T1DQF3qZE/4B6uqqv1KgPWWd4UQhJALi8PJPX1RRV5K7ThKXRfF7qGg2+3l1A==}
|
|
|
|
|
engines: {node: ^20.19.0 || >=22.12.0}
|
|
|
|
|
cpu: [x64]
|
|
|
|
|
os: [freebsd]
|
|
|
|
|
|
|
|
|
|
'@oxc-parser/binding-linux-arm-gnueabihf@0.133.0':
|
|
|
|
|
resolution: {integrity: sha512-JGK1wlGrGwxBIlVSF7KWTX1/ru6BEtf28fRROztDRkLfiW+Kxa4onnriezMIiogfn9hVw2KzYcKiLjkLR2ns8A==}
|
|
|
|
|
engines: {node: ^20.19.0 || >=22.12.0}
|
|
|
|
|
cpu: [arm]
|
|
|
|
|
os: [linux]
|
|
|
|
|
|
|
|
|
|
'@oxc-parser/binding-linux-arm-musleabihf@0.133.0':
|
|
|
|
|
resolution: {integrity: sha512-yuZO533Ftonxn/iyoqQzURzLQHMspvsIyfiCSNi1t/ER4eIQaR0SsmUOUm5b/lmSig7IWIUa5/BrbEkAPwcilQ==}
|
|
|
|
|
engines: {node: ^20.19.0 || >=22.12.0}
|
|
|
|
|
cpu: [arm]
|
|
|
|
|
os: [linux]
|
|
|
|
|
|
|
|
|
|
'@oxc-parser/binding-linux-arm64-gnu@0.133.0':
|
|
|
|
|
resolution: {integrity: sha512-hvpbqT5pN2rR+3+xtWeizwfR/aZ0vGceg6TqYMl+ToxMpk9/tmnX7kSvQnfEUkoua8mhogzvIKsAkn0wxgblBA==}
|
|
|
|
|
engines: {node: ^20.19.0 || >=22.12.0}
|
|
|
|
|
cpu: [arm64]
|
|
|
|
|
os: [linux]
|
|
|
|
|
libc: [glibc]
|
|
|
|
|
|
|
|
|
|
'@oxc-parser/binding-linux-arm64-musl@0.133.0':
|
|
|
|
|
resolution: {integrity: sha512-wJQGamIosQBoJHW9+S5XxrtKRo3eyJxsnS1XCPrqN0LHi8uw1pTqqTfn3t/NVuvbBg7Pumn4ez9Eidgcn0xbEg==}
|
|
|
|
|
engines: {node: ^20.19.0 || >=22.12.0}
|
|
|
|
|
cpu: [arm64]
|
|
|
|
|
os: [linux]
|
|
|
|
|
libc: [musl]
|
|
|
|
|
|
|
|
|
|
'@oxc-parser/binding-linux-ppc64-gnu@0.133.0':
|
|
|
|
|
resolution: {integrity: sha512-Koaz32/O5+abIfrNGdyndgRvdOZ9jEf5/z3Ep9h3h2QWpdDiUQpVwgH0OcMXCs+l9aXxPLtkupqyVig9W6FDKw==}
|
|
|
|
|
engines: {node: ^20.19.0 || >=22.12.0}
|
|
|
|
|
cpu: [ppc64]
|
|
|
|
|
os: [linux]
|
|
|
|
|
libc: [glibc]
|
|
|
|
|
|
|
|
|
|
'@oxc-parser/binding-linux-riscv64-gnu@0.133.0':
|
|
|
|
|
resolution: {integrity: sha512-R4vOjWzxhnNWHnVLeiB6jNuIifdy9vcMXZGPc7StXcxBovI+U2zg1QhZ9o8OjV80oGivs1lX5NfPLzk4IPqlRA==}
|
|
|
|
|
engines: {node: ^20.19.0 || >=22.12.0}
|
|
|
|
|
cpu: [riscv64]
|
|
|
|
|
os: [linux]
|
|
|
|
|
libc: [glibc]
|
|
|
|
|
|
|
|
|
|
'@oxc-parser/binding-linux-riscv64-musl@0.133.0':
|
|
|
|
|
resolution: {integrity: sha512-iwgBNUTHiMdxARLYuM0SBlnYeb19iw1Ea5M+4ERZupCsBMLArti6FyZ6UfFjJxIiTDr2oW2DGQFxlQVQ/dW9rA==}
|
|
|
|
|
engines: {node: ^20.19.0 || >=22.12.0}
|
|
|
|
|
cpu: [riscv64]
|
|
|
|
|
os: [linux]
|
|
|
|
|
libc: [musl]
|
|
|
|
|
|
|
|
|
|
'@oxc-parser/binding-linux-s390x-gnu@0.133.0':
|
|
|
|
|
resolution: {integrity: sha512-ZwZNo8FZmB/gVfboQl+wXilBigGl+6nQQs+nITOeAP/HcAOjiHl6XZJL9F/KXNEspODQcbjAiyjUbeCJd9a0fA==}
|
|
|
|
|
engines: {node: ^20.19.0 || >=22.12.0}
|
|
|
|
|
cpu: [s390x]
|
|
|
|
|
os: [linux]
|
|
|
|
|
libc: [glibc]
|
|
|
|
|
|
|
|
|
|
'@oxc-parser/binding-linux-x64-gnu@0.133.0':
|
|
|
|
|
resolution: {integrity: sha512-govCvWx1dBlED3uu4qXctxpRcouu9I8Kn+DBktGCl760JtlGJzc9l/OmPJKlYWSbrRqKkMZehNeZ/4Wfma7uSA==}
|
|
|
|
|
engines: {node: ^20.19.0 || >=22.12.0}
|
|
|
|
|
cpu: [x64]
|
|
|
|
|
os: [linux]
|
|
|
|
|
libc: [glibc]
|
|
|
|
|
|
|
|
|
|
'@oxc-parser/binding-linux-x64-musl@0.133.0':
|
|
|
|
|
resolution: {integrity: sha512-ssTlpXD5Mq9uCssDJPzlRWqBt4Y7Zzd9i+XZhWmK/9Y6KUIuAxVYTYiI8lxcGWi0+3/Cz4A8q9UrD4NK9Y2j7g==}
|
|
|
|
|
engines: {node: ^20.19.0 || >=22.12.0}
|
|
|
|
|
cpu: [x64]
|
|
|
|
|
os: [linux]
|
|
|
|
|
libc: [musl]
|
|
|
|
|
|
|
|
|
|
'@oxc-parser/binding-openharmony-arm64@0.133.0':
|
|
|
|
|
resolution: {integrity: sha512-51aByfXhPtLEdWG4a2Ihdw6cPWV1ei1AarALpFdDP8MLWDLE2NuUMgbo3DERR2Kt8fT/ok1GUvBiLxVGke9uUQ==}
|
|
|
|
|
engines: {node: ^20.19.0 || >=22.12.0}
|
|
|
|
|
cpu: [arm64]
|
|
|
|
|
os: [openharmony]
|
|
|
|
|
|
|
|
|
|
'@oxc-parser/binding-wasm32-wasi@0.133.0':
|
|
|
|
|
resolution: {integrity: sha512-2e16tkKp+wDO2GTAmXfxbBcCmGEaFPIJEIRBBmVKNVXSc8/fJsSIaBGyFTPHM9ST5GNWgJcYIt94rDTks+PLwA==}
|
|
|
|
|
engines: {node: ^20.19.0 || >=22.12.0}
|
|
|
|
|
cpu: [wasm32]
|
|
|
|
|
|
|
|
|
|
'@oxc-parser/binding-win32-arm64-msvc@0.133.0':
|
|
|
|
|
resolution: {integrity: sha512-KPTNDKbxH1cglrqTyVeXHb4Pk4oksz8EcE1/v8zqU7N4UXbiHfA/IwtXZ2U77fnRAWBbgVkl/lZbL7o3hRdejg==}
|
|
|
|
|
engines: {node: ^20.19.0 || >=22.12.0}
|
|
|
|
|
cpu: [arm64]
|
|
|
|
|
os: [win32]
|
|
|
|
|
|
|
|
|
|
'@oxc-parser/binding-win32-ia32-msvc@0.133.0':
|
|
|
|
|
resolution: {integrity: sha512-Una1bNYv9zCavQrfnDR9wuZVB3itLjCEH4Oz7i6CwAJN/Xq9b+zbbcxmvdkKvvJt4Ngc/MBmIYlbLo3zS4TQ0A==}
|
|
|
|
|
engines: {node: ^20.19.0 || >=22.12.0}
|
|
|
|
|
cpu: [ia32]
|
|
|
|
|
os: [win32]
|
|
|
|
|
|
|
|
|
|
'@oxc-parser/binding-win32-x64-msvc@0.133.0':
|
|
|
|
|
resolution: {integrity: sha512-kjBhCiOGSYTwDJQuuZa7a94JbP8htWu7J0X1KwH74kV2K5eYf6eyJRYmkpCDvr0XEL8tMxYI4WU1VekblFCLgg==}
|
|
|
|
|
engines: {node: ^20.19.0 || >=22.12.0}
|
|
|
|
|
cpu: [x64]
|
|
|
|
|
os: [win32]
|
|
|
|
|
|
|
|
|
|
'@oxc-project/types@0.133.0':
|
|
|
|
|
resolution: {integrity: sha512-KzkdCd6Uxqnf6l3HOw1xfatAlUURA0g14cvBYFyJ5SaNOQbOUvBr9PKArcPcrNIeRsBdgcUzOGrhKveVpvOIGA==}
|
|
|
|
|
|
|
|
|
|
'@oxc-project/types@0.135.0':
|
|
|
|
|
resolution: {integrity: sha512-wR+xRdFkUBMvcAjBJ2q2kcZM6d+DKu2NgoOyxZgYwZdLhmiv6+rnO8PZ/P68kMiZtIKm+pW7zyEJ4kSOs0vo+Q==}
|
|
|
|
|
|
|
|
|
|
'@oxc-resolver/binding-android-arm-eabi@11.20.0':
|
|
|
|
|
resolution: {integrity: sha512-IjfWOXRgJFNdORDl+Uf1aibNgZY2guOD3zmOhx1BGVb/MIiqlFTdmjpQNplSN58lhWehnX4UNqC3QwpUo8pjJg==}
|
|
|
|
|
cpu: [arm]
|
|
|
|
|
os: [android]
|
|
|
|
|
|
|
|
|
|
'@oxc-resolver/binding-android-arm64@11.20.0':
|
|
|
|
|
resolution: {integrity: sha512-QqslZAuFQG8Q9xm7JuIn8JUbvywhSBMVhuQHtYW+auirZJloS41oxUUaBXk7uUhZJgp44c5zQLeVvmFaDQB+2Q==}
|
|
|
|
|
cpu: [arm64]
|
|
|
|
|
os: [android]
|
|
|
|
|
|
|
|
|
|
'@oxc-resolver/binding-darwin-arm64@11.20.0':
|
|
|
|
|
resolution: {integrity: sha512-MUcavykj2ewlR+kc5arpg4tC2RvzJkUxWtNv74pf7lcNk00GpIpN43vXMj+j6r4eMmfZhlb8hueKoIb8e9kAGQ==}
|
|
|
|
|
cpu: [arm64]
|
|
|
|
|
os: [darwin]
|
|
|
|
|
|
|
|
|
|
'@oxc-resolver/binding-darwin-x64@11.20.0':
|
|
|
|
|
resolution: {integrity: sha512-BGB16nRUK5Etiv//ihPyzj8Lj1px0mhh4YIfe0FDf045ywknfSm0GEbiRESpr6Q4K82AvnyaRIhhluHByvS4bg==}
|
|
|
|
|
cpu: [x64]
|
|
|
|
|
os: [darwin]
|
|
|
|
|
|
|
|
|
|
'@oxc-resolver/binding-freebsd-x64@11.20.0':
|
|
|
|
|
resolution: {integrity: sha512-JZgtePaqj3qmD5XFHJaSLWzHRxQu0LaPkdoM1KJXYADvAaa83ijXHclV3ej3CueeW0wxfIAbGCZVP45J0CA7uQ==}
|
|
|
|
|
cpu: [x64]
|
|
|
|
|
os: [freebsd]
|
|
|
|
|
|
|
|
|
|
'@oxc-resolver/binding-linux-arm-gnueabihf@11.20.0':
|
|
|
|
|
resolution: {integrity: sha512-hOQ/p3ry3v3SchUBXicrrnszaI/UmYzM4wtS4RGfwgVUX7a+HbyQSzJ5aOzu+o6XZkFkS3ZXN4PZAzhOb77OSg==}
|
|
|
|
|
cpu: [arm]
|
|
|
|
|
os: [linux]
|
|
|
|
|
|
|
|
|
|
'@oxc-resolver/binding-linux-arm-musleabihf@11.20.0':
|
|
|
|
|
resolution: {integrity: sha512-2ArPksaw0AqeuGBfoS715VF+JvJQAhD2niWgjE5hVO+L+nAfikVQopvngCMX9x4BD8itWoQ3dnikrQyl5Ho5Jg==}
|
|
|
|
|
cpu: [arm]
|
|
|
|
|
os: [linux]
|
|
|
|
|
|
|
|
|
|
'@oxc-resolver/binding-linux-arm64-gnu@11.20.0':
|
|
|
|
|
resolution: {integrity: sha512-0bJnmYFp62JdZ4nVMDUZ/C58BCZOCcqgKtnUlp7L9Ojf/czIN+3j72YlLPeWLkzlr6SlYvIQA4SGV/HyO0d+qg==}
|
|
|
|
|
cpu: [arm64]
|
|
|
|
|
os: [linux]
|
|
|
|
|
libc: [glibc]
|
|
|
|
|
|
|
|
|
|
'@oxc-resolver/binding-linux-arm64-musl@11.20.0':
|
|
|
|
|
resolution: {integrity: sha512-wKHHzPKZo7Ufhv/Bt6yxT7FOgnIgW4gwXcJUipkShGp68W3wGVqvr1Sr0fY65lN0Oy6y41+g2kIDvkgZaMMUkw==}
|
|
|
|
|
cpu: [arm64]
|
|
|
|
|
os: [linux]
|
|
|
|
|
libc: [musl]
|
|
|
|
|
|
|
|
|
|
'@oxc-resolver/binding-linux-ppc64-gnu@11.20.0':
|
|
|
|
|
resolution: {integrity: sha512-RN8goF7Ie0B79L4i4G6OeBocTgSC56vJbQ65VJje+oXnldVpLnOU7j/AQ/dP94TcCS+Yh6WG8u3Qt4ETteXFNQ==}
|
|
|
|
|
cpu: [ppc64]
|
|
|
|
|
os: [linux]
|
|
|
|
|
libc: [glibc]
|
|
|
|
|
|
|
|
|
|
'@oxc-resolver/binding-linux-riscv64-gnu@11.20.0':
|
|
|
|
|
resolution: {integrity: sha512-5l1yU6/xQEqLZRzxqmMxJfWPslpwCmBsdDGaBvABPehxquCXDC7dd7oraNdKSJUMDXSM7VvVj8H2D2FTjU7oWw==}
|
|
|
|
|
cpu: [riscv64]
|
|
|
|
|
os: [linux]
|
|
|
|
|
libc: [glibc]
|
|
|
|
|
|
|
|
|
|
'@oxc-resolver/binding-linux-riscv64-musl@11.20.0':
|
|
|
|
|
resolution: {integrity: sha512-xHEvkbgz6UC+A3JOyDQy76LkUaxsNSfIr3/GV8slwZsnuooJiIB34gzJfsyvR4JdCYNUUPsRJc/w/oWkODu+hg==}
|
|
|
|
|
cpu: [riscv64]
|
|
|
|
|
os: [linux]
|
|
|
|
|
libc: [musl]
|
|
|
|
|
|
|
|
|
|
'@oxc-resolver/binding-linux-s390x-gnu@11.20.0':
|
|
|
|
|
resolution: {integrity: sha512-aWPDUUmSeyHvlW+SoEUd+JIJsQhVhu6a5tBpDRMu058naPAchTgAVGCFy35zjbnFlt0i8hLWziff6HX0D3LU4g==}
|
|
|
|
|
cpu: [s390x]
|
|
|
|
|
os: [linux]
|
|
|
|
|
libc: [glibc]
|
|
|
|
|
|
|
|
|
|
'@oxc-resolver/binding-linux-x64-gnu@11.20.0':
|
|
|
|
|
resolution: {integrity: sha512-x2YeSimvhJjKLVD8KSu8f/rqU1potcdEMkApIPJqjZWN7c2Fpt4g2X32WDg1p+XDAmyT7nuQGe0vnhvXeLbH+g==}
|
|
|
|
|
cpu: [x64]
|
|
|
|
|
os: [linux]
|
|
|
|
|
libc: [glibc]
|
|
|
|
|
|
|
|
|
|
'@oxc-resolver/binding-linux-x64-musl@11.20.0':
|
|
|
|
|
resolution: {integrity: sha512-kcRLEIxpZefeYfLChjpgFf3ilBzRDZ+yobMrpRsQlSrxuFGtm3U6PMU7AaEpMqo3NfDGVyJJseAjnRLzMFHjwQ==}
|
|
|
|
|
cpu: [x64]
|
|
|
|
|
os: [linux]
|
|
|
|
|
libc: [musl]
|
|
|
|
|
|
|
|
|
|
'@oxc-resolver/binding-openharmony-arm64@11.20.0':
|
|
|
|
|
resolution: {integrity: sha512-HHcfnApSZGtKhTiHqe8OZruOZe5XuFQH5/E0Yhj3u8fnFvzkM4/k6WjacUf4SvA0SPEAbfbgYmVPuo0VX/fIBQ==}
|
|
|
|
|
cpu: [arm64]
|
|
|
|
|
os: [openharmony]
|
|
|
|
|
|
|
|
|
|
'@oxc-resolver/binding-wasm32-wasi@11.20.0':
|
|
|
|
|
resolution: {integrity: sha512-Tn0y1XOFYHNfK1wp1Z5QK8Rcld/bsOwRISQXfqAZ5IBpv8Gz1IvV39fUWNprqNdRizgcvFhOzWwFun2zkJsyBg==}
|
|
|
|
|
engines: {node: '>=14.0.0'}
|
|
|
|
|
cpu: [wasm32]
|
|
|
|
|
|
|
|
|
|
'@oxc-resolver/binding-win32-arm64-msvc@11.20.0':
|
|
|
|
|
resolution: {integrity: sha512-qPi25YNPe4YenS8MgsQU2+bIFHxxpLx1LVna2444cEHqNPhNjvWf9zqj4aWE43H9LpAsTmkkAlA3eL5ElBU3mA==}
|
|
|
|
|
cpu: [arm64]
|
|
|
|
|
os: [win32]
|
|
|
|
|
|
|
|
|
|
'@oxc-resolver/binding-win32-x64-msvc@11.20.0':
|
|
|
|
|
resolution: {integrity: sha512-Wb14jWEW8huH6It9F6sXd9vrYmIS7pMrgkU6sxpLxkP+9z+wRgs71hUEhRpcn8FOXAFa27FVWfY2tRpbfTzfLw==}
|
|
|
|
|
cpu: [x64]
|
|
|
|
|
os: [win32]
|
|
|
|
|
|
|
|
|
|
'@protobufjs/aspromise@1.1.2':
|
|
|
|
|
resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==}
|
|
|
|
|
|
|
|
|
|
'@protobufjs/base64@1.1.2':
|
|
|
|
|
resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==}
|
|
|
|
|
|
|
|
|
|
'@protobufjs/codegen@2.0.5':
|
|
|
|
|
resolution: {integrity: sha512-zgXFLzW3Ap33e6d0Wlj4MGIm6Ce8O89n/apUaGNB/jx+hw+ruWEp7EwGUshdLKVRCxZW12fp9r40E1mQrf/34g==}
|
|
|
|
|
|
|
|
|
|
'@protobufjs/eventemitter@1.1.1':
|
|
|
|
|
resolution: {integrity: sha512-vW1GmwMZNnL+gMRaovlh9yZX74kc+TTU3FObkkurpMaRtBfLP3ldjS9KQWlwZgraRE0+dheEEoAxdzcJQ8eXZg==}
|
|
|
|
|
|
|
|
|
|
'@protobufjs/fetch@1.1.1':
|
|
|
|
|
resolution: {integrity: sha512-GpptLrs57adMSuHi3VNj0mAF8dwh36LMaYF6XyJ6JMWlVsc+t42tm1HSEDmOs3A8fC9yyeisgLhsTVQokOZ0zw==}
|
|
|
|
|
|
|
|
|
|
'@protobufjs/float@1.0.2':
|
|
|
|
|
resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==}
|
|
|
|
|
|
|
|
|
|
'@protobufjs/path@1.1.2':
|
|
|
|
|
resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==}
|
|
|
|
|
|
|
|
|
|
'@protobufjs/pool@1.1.0':
|
|
|
|
|
resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==}
|
|
|
|
|
|
|
|
|
|
'@protobufjs/utf8@1.1.1':
|
|
|
|
|
resolution: {integrity: sha512-oOAWABowe8EAbMyWKM0tYDKi8Yaox52D+HWZhAIJqQXbqe0xI/GV7FhLWqlEKreMkfDjshR5FKgi3mnle0h6Eg==}
|
|
|
|
|
|
|
|
|
|
'@publint/pack@0.1.4':
|
|
|
|
|
resolution: {integrity: sha512-HDVTWq3H0uTXiU0eeSQntcVUTPP3GamzeXI41+x7uU9J65JgWQh3qWZHblR1i0npXfFtF+mxBiU2nJH8znxWnQ==}
|
|
|
|
|
engines: {node: '>=18'}
|
|
|
|
|
|
|
|
|
|
'@quansync/fs@1.0.0':
|
|
|
|
|
resolution: {integrity: sha512-4TJ3DFtlf1L5LDMaM6CanJ/0lckGNtJcMjQ1NAV6zDmA0tEHKZtxNKin8EgPaVX1YzljbxckyT2tJrpQKAtngQ==}
|
|
|
|
|
|
|
|
|
|
'@rolldown/binding-android-arm64@1.0.3':
|
|
|
|
|
resolution: {integrity: sha512-454rs7jHngixp/NMxd5srYD57OnzSlZ/eFTETjORQHLwJG1lRtmNOJcBerZlfu4GjKqeq8aCCIQrMdHyhI51Hw==}
|
|
|
|
|
engines: {node: ^20.19.0 || >=22.12.0}
|
|
|
|
|
cpu: [arm64]
|
|
|
|
|
os: [android]
|
|
|
|
|
|
|
|
|
|
'@rolldown/binding-android-arm64@1.1.1':
|
|
|
|
|
resolution: {integrity: sha512-BLf9Wak/gfwVb7NQTQW4wBgL3oAfPy7ArEkhwV543OVw/uY6B47z5xYsqPSZ9PDOorvURPinws6ThaFuNgGLgA==}
|
|
|
|
|
engines: {node: ^20.19.0 || >=22.12.0}
|
|
|
|
|
cpu: [arm64]
|
|
|
|
|
os: [android]
|
|
|
|
|
|
|
|
|
|
'@rolldown/binding-darwin-arm64@1.0.3':
|
|
|
|
|
resolution: {integrity: sha512-PcAhP+ynjURNyy8SKGl5DQP94aGuB/7JrXJb/t7P+hanXvQVMWzUvRRhBAcg/lNRadBhoUPqSoP4xw5tR/KBEA==}
|
|
|
|
|
engines: {node: ^20.19.0 || >=22.12.0}
|
|
|
|
|
cpu: [arm64]
|
|
|
|
|
os: [darwin]
|
|
|
|
|
|
|
|
|
|
'@rolldown/binding-darwin-arm64@1.1.1':
|
|
|
|
|
resolution: {integrity: sha512-rRZRPy/Ynb+Mxu0O6tfPldHeDgAn0sRij+IOUy6sFdUlv3hArGW/DloE3GfAxtqpOJuRNgF74Nr5gM4xBeU2jQ==}
|
|
|
|
|
engines: {node: ^20.19.0 || >=22.12.0}
|
|
|
|
|
cpu: [arm64]
|
|
|
|
|
os: [darwin]
|
|
|
|
|
|
|
|
|
|
'@rolldown/binding-darwin-x64@1.0.3':
|
|
|
|
|
resolution: {integrity: sha512-9YpfeUvSE2RS7wysJ81uOZkXJz7f7Q55H2Gvp3VEw/EsahqDtrphrZ0EwDLK5vvKOzaCrBsjF8JmnMLcUt78Gg==}
|
|
|
|
|
engines: {node: ^20.19.0 || >=22.12.0}
|
|
|
|
|
cpu: [x64]
|
|
|
|
|
os: [darwin]
|
|
|
|
|
|
|
|
|
|
'@rolldown/binding-darwin-x64@1.1.1':
|
|
|
|
|
resolution: {integrity: sha512-/MtefPxhKPyWWFM8L45OWiEqRf+eSU2Qv9ZAyTaoZOoGcoPKxbbhjTJO2/U2IThv0uDZ4NWHc3/oTsR6IEOtww==}
|
|
|
|
|
engines: {node: ^20.19.0 || >=22.12.0}
|
|
|
|
|
cpu: [x64]
|
|
|
|
|
os: [darwin]
|
|
|
|
|
|
|
|
|
|
'@rolldown/binding-freebsd-x64@1.0.3':
|
|
|
|
|
resolution: {integrity: sha512-yB1IlAsSNHncV6SCTL27/MVGR5htvQsoGxIv5KMGXALp+Ll1wYsn+x98M9MW7qa+NdSbvrrY7ANI4wLJ0n1e6g==}
|
|
|
|
|
engines: {node: ^20.19.0 || >=22.12.0}
|
|
|
|
|
cpu: [x64]
|
|
|
|
|
os: [freebsd]
|
|
|
|
|
|
|
|
|
|
'@rolldown/binding-freebsd-x64@1.1.1':
|
|
|
|
|
resolution: {integrity: sha512-202K+cpIi1kx/Zn7AtxBi4LTXSY67Aszb2K9rNsuW7FeBeh0nqoNmYLOSZidV0p88VPBzMmTZcHAdPNo3kRYzQ==}
|
|
|
|
|
engines: {node: ^20.19.0 || >=22.12.0}
|
|
|
|
|
cpu: [x64]
|
|
|
|
|
os: [freebsd]
|
|
|
|
|
|
|
|
|
|
'@rolldown/binding-linux-arm-gnueabihf@1.0.3':
|
|
|
|
|
resolution: {integrity: sha512-Yi30IVAAfLUCy2MseFjbB1jAMDl1VMCAas5StnYp8da9+CKvMd2H2cbEjWcw5NPaPqzvYkVIaF1nNUG+b7u/sw==}
|
|
|
|
|
engines: {node: ^20.19.0 || >=22.12.0}
|
|
|
|
|
cpu: [arm]
|
|
|
|
|
os: [linux]
|
|
|
|
|
|
|
|
|
|
'@rolldown/binding-linux-arm-gnueabihf@1.1.1':
|
|
|
|
|
resolution: {integrity: sha512-wl9NfeXNUwrXtUc063tddmZFUI6qiNs1CNOwni0OL4vC7MqVSYugra3ZgtDmtVy8e0DluJTENmzIv2BwqLzT4Q==}
|
|
|
|
|
engines: {node: ^20.19.0 || >=22.12.0}
|
|
|
|
|
cpu: [arm]
|
|
|
|
|
os: [linux]
|
|
|
|
|
|
|
|
|
|
'@rolldown/binding-linux-arm64-gnu@1.0.3':
|
|
|
|
|
resolution: {integrity: sha512-jsO7R8To+AdlYgUmN5sHSCZbfhtMBkO0WUx8iORQnPcMMdgr7qM2DQmMwgabs3GhNztdmoKkMKQFHD6DTMCIQw==}
|
|
|
|
|
engines: {node: ^20.19.0 || >=22.12.0}
|
|
|
|
|
cpu: [arm64]
|
|
|
|
|
os: [linux]
|
|
|
|
|
libc: [glibc]
|
|
|
|
|
|
|
|
|
|
'@rolldown/binding-linux-arm64-gnu@1.1.1':
|
|
|
|
|
resolution: {integrity: sha512-at2EO4o7D/PJLC4Xik16bU4CcjQE2tSv1LfqMA0TRYQYQihRm3gZeDB8xaX28A9SFedibcAk5DeMCKt4REKG0A==}
|
|
|
|
|
engines: {node: ^20.19.0 || >=22.12.0}
|
|
|
|
|
cpu: [arm64]
|
|
|
|
|
os: [linux]
|
|
|
|
|
libc: [glibc]
|
|
|
|
|
|
|
|
|
|
'@rolldown/binding-linux-arm64-musl@1.0.3':
|
|
|
|
|
resolution: {integrity: sha512-VWkUHwWriDciit80wleYwKILoR/KMvxh/IdwS/paX+ZgpuRpCrKLUdadJbc0NpBEiyhpYawsJ73j9aCvOH+f7Q==}
|
|
|
|
|
engines: {node: ^20.19.0 || >=22.12.0}
|
|
|
|
|
cpu: [arm64]
|
|
|
|
|
os: [linux]
|
|
|
|
|
libc: [musl]
|
|
|
|
|
|
|
|
|
|
'@rolldown/binding-linux-arm64-musl@1.1.1':
|
|
|
|
|
resolution: {integrity: sha512-5PUjZx366h9tkJTPJF5eibxOlK3sGoeRiBJLLjjEB5/kLDuhr6qB3LkhqLz1smXNgsX+pBhnbcJBrPE30HznAA==}
|
|
|
|
|
engines: {node: ^20.19.0 || >=22.12.0}
|
|
|
|
|
cpu: [arm64]
|
|
|
|
|
os: [linux]
|
|
|
|
|
libc: [musl]
|
|
|
|
|
|
|
|
|
|
'@rolldown/binding-linux-ppc64-gnu@1.0.3':
|
|
|
|
|
resolution: {integrity: sha512-5f1laC0SlIR0yDbFCd8acUhvJIag6N3zC5P7oUPN6wX0aOma+uKJ0wBDH5aq7I1PVI2ttTlhJwzwRIBnLiSGEg==}
|
|
|
|
|
engines: {node: ^20.19.0 || >=22.12.0}
|
|
|
|
|
cpu: [ppc64]
|
|
|
|
|
os: [linux]
|
|
|
|
|
libc: [glibc]
|
|
|
|
|
|
|
|
|
|
'@rolldown/binding-linux-ppc64-gnu@1.1.1':
|
|
|
|
|
resolution: {integrity: sha512-1WK84XPeio3tjP1sM/TMXiC0G1i1iq1qGZ71KfNQjEFLU1kwD+Cv5T8nGySg/JUFwLbaScu6ve9DmeXlmqpkFA==}
|
|
|
|
|
engines: {node: ^20.19.0 || >=22.12.0}
|
|
|
|
|
cpu: [ppc64]
|
|
|
|
|
os: [linux]
|
|
|
|
|
libc: [glibc]
|
|
|
|
|
|
|
|
|
|
'@rolldown/binding-linux-s390x-gnu@1.0.3':
|
|
|
|
|
resolution: {integrity: sha512-Iq4ko0r4XsgbrF/LunNgHtAGLRRVE2kXonAXQ/MV0mC6jQpMOhW1SvtZja2EhC/kd05++bP78dsqBeIQyYJ6Yg==}
|
|
|
|
|
engines: {node: ^20.19.0 || >=22.12.0}
|
|
|
|
|
cpu: [s390x]
|
|
|
|
|
os: [linux]
|
|
|
|
|
libc: [glibc]
|
|
|
|
|
|
|
|
|
|
'@rolldown/binding-linux-s390x-gnu@1.1.1':
|
|
|
|
|
resolution: {integrity: sha512-1nS1X5z1uMJ369RU25hTpKCFvUwXZp12dIzlzk4S+UxCTcSVGsAE6tzkOSufv/7jnmAtK0ZlrsJxh2fGmsnVSw==}
|
|
|
|
|
engines: {node: ^20.19.0 || >=22.12.0}
|
|
|
|
|
cpu: [s390x]
|
|
|
|
|
os: [linux]
|
|
|
|
|
libc: [glibc]
|
|
|
|
|
|
|
|
|
|
'@rolldown/binding-linux-x64-gnu@1.0.3':
|
|
|
|
|
resolution: {integrity: sha512-B8m6tD5+/N5FeNQFbKlLA/2yVq9ycQP1SeedyEYYKWBNR3ZQbkvIUcNnDNM03lO1l5F2roiiFJGgvoLLyZXtSg==}
|
|
|
|
|
engines: {node: ^20.19.0 || >=22.12.0}
|
|
|
|
|
cpu: [x64]
|
|
|
|
|
os: [linux]
|
|
|
|
|
libc: [glibc]
|
|
|
|
|
|
|
|
|
|
'@rolldown/binding-linux-x64-gnu@1.1.1':
|
|
|
|
|
resolution: {integrity: sha512-NwX/wspnq4vYyMFsqbYvzums3ki/Tk8FZbMzMAovPDp3OfLeYKby/D+9osokadXuYEV3OvpeHlwnr/bG8QMixA==}
|
|
|
|
|
engines: {node: ^20.19.0 || >=22.12.0}
|
|
|
|
|
cpu: [x64]
|
|
|
|
|
os: [linux]
|
|
|
|
|
libc: [glibc]
|
|
|
|
|
|
|
|
|
|
'@rolldown/binding-linux-x64-musl@1.0.3':
|
|
|
|
|
resolution: {integrity: sha512-pSdpdUJHkuCxun9LE7jvgUB9qsRgaiyNNCX7m/AvHTcq67AiT/Yhoxvw5zPfhrM8k/BfP8ce/hMOpthKDpEUow==}
|
|
|
|
|
engines: {node: ^20.19.0 || >=22.12.0}
|
|
|
|
|
cpu: [x64]
|
|
|
|
|
os: [linux]
|
|
|
|
|
libc: [musl]
|
|
|
|
|
|
|
|
|
|
'@rolldown/binding-linux-x64-musl@1.1.1':
|
|
|
|
|
resolution: {integrity: sha512-+n46LhDrJFQM+229y4oXtVpj1G50U/+XuHMlpnisFTEXhrg9f/YIjp/HymX+PVJjBEr7XHRs3CFLelV464pqwA==}
|
|
|
|
|
engines: {node: ^20.19.0 || >=22.12.0}
|
|
|
|
|
cpu: [x64]
|
|
|
|
|
os: [linux]
|
|
|
|
|
libc: [musl]
|
|
|
|
|
|
|
|
|
|
'@rolldown/binding-openharmony-arm64@1.0.3':
|
|
|
|
|
resolution: {integrity: sha512-OXXS3RKJgX2uLwM+gYyuH5omcH8fL1LJs96pZGgtetVCahON57+d4SJHzTgZiOjxgGkSnpXpOsWuPDGAKAigEg==}
|
|
|
|
|
engines: {node: ^20.19.0 || >=22.12.0}
|
|
|
|
|
cpu: [arm64]
|
|
|
|
|
os: [openharmony]
|
|
|
|
|
|
|
|
|
|
'@rolldown/binding-openharmony-arm64@1.1.1':
|
|
|
|
|
resolution: {integrity: sha512-qGwEu47zOWYo7LdRHhCWTNhzwGtxXpdY6CERs8QEOqC0PXGGics/e3vHnyEUKt8xK6YkbZXFUCeklrpB6js8ag==}
|
|
|
|
|
engines: {node: ^20.19.0 || >=22.12.0}
|
|
|
|
|
cpu: [arm64]
|
|
|
|
|
os: [openharmony]
|
|
|
|
|
|
|
|
|
|
'@rolldown/binding-wasm32-wasi@1.0.3':
|
|
|
|
|
resolution: {integrity: sha512-JTtb8BWFynicNSoPrehsCzBtOKjZ6jhMiPFEmOiuXg1Fl8dn2KHQob+GuPSGR0dryQa1PQJbzjF3dqO/whhjLg==}
|
|
|
|
|
engines: {node: ^20.19.0 || >=22.12.0}
|
|
|
|
|
cpu: [wasm32]
|
|
|
|
|
|
|
|
|
|
'@rolldown/binding-wasm32-wasi@1.1.1':
|
|
|
|
|
resolution: {integrity: sha512-qczfgEH8u0wHGGOXtA7UMAybNKuQjjEXairyQaw4WzjiMztfbgatG1h4OKays/smhtwbWltpKCRGtVhU6h40Sg==}
|
|
|
|
|
engines: {node: ^20.19.0 || >=22.12.0}
|
|
|
|
|
cpu: [wasm32]
|
|
|
|
|
|
|
|
|
|
'@rolldown/binding-win32-arm64-msvc@1.0.3':
|
|
|
|
|
resolution: {integrity: sha512-gEdFFEN70A/jxb2svrWsN3aDL7OUtmvlOy+6fa2jxG8K0wQ1ZbdeLGnidov6Yu5/733dI5ySfzFlQ/cb0bSz1g==}
|
|
|
|
|
engines: {node: ^20.19.0 || >=22.12.0}
|
|
|
|
|
cpu: [arm64]
|
|
|
|
|
os: [win32]
|
|
|
|
|
|
|
|
|
|
'@rolldown/binding-win32-arm64-msvc@1.1.1':
|
|
|
|
|
resolution: {integrity: sha512-4psXSh63mSbwJF+mB8/9yfUUEzBiHYcUjxa32EO9ZwKy0Ypwjcg4F10D8SvVXgd+isy2UUUjF9HJJnDu1T/4Gg==}
|
|
|
|
|
engines: {node: ^20.19.0 || >=22.12.0}
|
|
|
|
|
cpu: [arm64]
|
|
|
|
|
os: [win32]
|
|
|
|
|
|
|
|
|
|
'@rolldown/binding-win32-x64-msvc@1.0.3':
|
|
|
|
|
resolution: {integrity: sha512-eXB7CHuaQdqmJcc3koCNtNPmT/bj2gc999kUFgBxG8Ac0NdgXc4rkCHhqrgrhN3zddvvvrgzj1e90SuSfmyIXA==}
|
|
|
|
|
engines: {node: ^20.19.0 || >=22.12.0}
|
|
|
|
|
cpu: [x64]
|
|
|
|
|
os: [win32]
|
|
|
|
|
|
|
|
|
|
'@rolldown/binding-win32-x64-msvc@1.1.1':
|
|
|
|
|
resolution: {integrity: sha512-MUvC/HLXVjzkQkWiExdVTEEWf0py+GfWm8WKSZsekG3ih6a21iy0BHPF07X3JIf3ifoklZXTIaHTLPBgH1C3dw==}
|
|
|
|
|
engines: {node: ^20.19.0 || >=22.12.0}
|
|
|
|
|
cpu: [x64]
|
|
|
|
|
os: [win32]
|
|
|
|
|
|
|
|
|
|
'@rolldown/pluginutils@1.0.1':
|
|
|
|
|
resolution: {integrity: sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==}
|
|
|
|
|
|
|
|
|
|
'@smithy/core@3.24.7':
|
|
|
|
|
resolution: {integrity: sha512-KoUi4M1f3BG6kzN1FnCwL7oyFptTbyBJKjR6yhSib+JHRdUmM1o+VwsFtJ66NZCkCzVfJMWRHJNo0R0jznp0Pg==}
|
|
|
|
|
engines: {node: '>=18.0.0'}
|
|
|
|
|
|
|
|
|
|
'@smithy/credential-provider-imds@4.3.9':
|
|
|
|
|
resolution: {integrity: sha512-ZlfJ/4Fa3jYb+3eaohPfG9utX9HmdhFNcFtpoGAhUhdynAOmGXtmigbi7eEiONKM+ykHw8RwKuDEb85Lx7t7fA==}
|
|
|
|
|
engines: {node: '>=18.0.0'}
|
|
|
|
|
|
|
|
|
|
'@smithy/fetch-http-handler@5.4.7':
|
|
|
|
|
resolution: {integrity: sha512-NslaM2ir0N2hisDmzXLstPaVINZheh8SokyOC++kzFPloZucL2R7Y7bS57mSzx/1Fc/fqmn7twjkeezTTrV0EA==}
|
|
|
|
|
engines: {node: '>=18.0.0'}
|
|
|
|
|
|
|
|
|
|
'@smithy/is-array-buffer@2.2.0':
|
|
|
|
|
resolution: {integrity: sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==}
|
|
|
|
|
engines: {node: '>=14.0.0'}
|
|
|
|
|
|
|
|
|
|
'@smithy/node-http-handler@4.7.3':
|
|
|
|
|
resolution: {integrity: sha512-/jPhevcTFPMVl6KNjbaI47iOg1zxC7IsnX4PQDGVZKMFceOXtB8IEYaB7a9VvkP/3oC60WzTeKocvSI7vLT0vA==}
|
|
|
|
|
engines: {node: '>=18.0.0'}
|
|
|
|
|
|
|
|
|
|
'@smithy/node-http-handler@4.7.8':
|
|
|
|
|
resolution: {integrity: sha512-f+DbsWUwSbtMu1a/j8Y93KiU1SRg9nyzfjereqn1BJ33QOTUXxdlYvVXMhAYl1vuR1Kmna5aIJe09KSIfyFNYw==}
|
|
|
|
|
engines: {node: '>=18.0.0'}
|
|
|
|
|
|
|
|
|
|
'@smithy/signature-v4@5.4.7':
|
|
|
|
|
resolution: {integrity: sha512-LwQZazFayImv+IOm0S0enoLeUJwmAlhGC5O6YCcLWezyu08dF46GOxPOq35OpBIHkgd7OvNvBStIFwVNyrvoBw==}
|
|
|
|
|
engines: {node: '>=18.0.0'}
|
|
|
|
|
|
|
|
|
|
'@smithy/types@4.14.4':
|
|
|
|
|
resolution: {integrity: sha512-B2S9+UGm1+/pHkcx3ZoLVX1a+pmSk8rqxRR+ZsNqZaJ5q9FWX9AFGQVM4qG5+OBeQUZVy99HY8HqW8gK/wgXzQ==}
|
|
|
|
|
engines: {node: '>=18.0.0'}
|
|
|
|
|
|
|
|
|
|
'@smithy/util-buffer-from@2.2.0':
|
|
|
|
|
resolution: {integrity: sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==}
|
|
|
|
|
engines: {node: '>=14.0.0'}
|
|
|
|
|
|
|
|
|
|
'@smithy/util-utf8@2.3.0':
|
|
|
|
|
resolution: {integrity: sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==}
|
|
|
|
|
engines: {node: '>=14.0.0'}
|
|
|
|
|
|
|
|
|
|
'@standard-schema/spec@1.1.0':
|
|
|
|
|
resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==}
|
|
|
|
|
|
|
|
|
|
'@stylistic/eslint-plugin@5.10.0':
|
|
|
|
|
resolution: {integrity: sha512-nPK52ZHvot8Ju/0A4ucSX1dcPV2/1clx0kLcH5wDmrE4naKso7TUC/voUyU1O9OTKTrR6MYip6LP0ogEMQ9jPQ==}
|
|
|
|
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
|
|
|
|
peerDependencies:
|
|
|
|
|
eslint: ^9.0.0 || ^10.0.0
|
|
|
|
|
|
|
|
|
|
'@tybys/wasm-util@0.10.2':
|
|
|
|
|
resolution: {integrity: sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg==}
|
|
|
|
|
|
|
|
|
|
'@types/babel__code-frame@7.27.0':
|
|
|
|
|
resolution: {integrity: sha512-Dwlo+LrxDx/0SpfmJ/BKveHf7QXWvLBLc+x03l5sbzykj3oB9nHygCpSECF1a+s+QIxbghe+KHqC90vGtxLRAA==}
|
|
|
|
|
|
|
|
|
|
'@types/chai@5.2.3':
|
|
|
|
|
resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==}
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
'@types/d3-array@3.2.2':
|
|
|
|
|
resolution: {integrity: sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==}
|
|
|
|
|
|
|
|
|
|
'@types/d3-axis@3.0.6':
|
|
|
|
|
resolution: {integrity: sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw==}
|
|
|
|
|
|
|
|
|
|
'@types/d3-brush@3.0.6':
|
|
|
|
|
resolution: {integrity: sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A==}
|
|
|
|
|
|
|
|
|
|
'@types/d3-chord@3.0.6':
|
|
|
|
|
resolution: {integrity: sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg==}
|
|
|
|
|
|
|
|
|
|
'@types/d3-color@3.1.3':
|
|
|
|
|
resolution: {integrity: sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==}
|
|
|
|
|
|
|
|
|
|
'@types/d3-contour@3.0.6':
|
|
|
|
|
resolution: {integrity: sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg==}
|
|
|
|
|
|
|
|
|
|
'@types/d3-delaunay@6.0.4':
|
|
|
|
|
resolution: {integrity: sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw==}
|
|
|
|
|
|
|
|
|
|
'@types/d3-dispatch@3.0.7':
|
|
|
|
|
resolution: {integrity: sha512-5o9OIAdKkhN1QItV2oqaE5KMIiXAvDWBDPrD85e58Qlz1c1kI/J0NcqbEG88CoTwJrYe7ntUCVfeUl2UJKbWgA==}
|
|
|
|
|
|
|
|
|
|
'@types/d3-drag@3.0.7':
|
|
|
|
|
resolution: {integrity: sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==}
|
|
|
|
|
|
|
|
|
|
'@types/d3-dsv@3.0.7':
|
|
|
|
|
resolution: {integrity: sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g==}
|
|
|
|
|
|
|
|
|
|
'@types/d3-ease@3.0.2':
|
|
|
|
|
resolution: {integrity: sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==}
|
|
|
|
|
|
|
|
|
|
'@types/d3-fetch@3.0.7':
|
|
|
|
|
resolution: {integrity: sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA==}
|
|
|
|
|
|
|
|
|
|
'@types/d3-force@3.0.10':
|
|
|
|
|
resolution: {integrity: sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw==}
|
|
|
|
|
|
|
|
|
|
'@types/d3-format@3.0.4':
|
|
|
|
|
resolution: {integrity: sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g==}
|
|
|
|
|
|
|
|
|
|
'@types/d3-geo@3.1.0':
|
|
|
|
|
resolution: {integrity: sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ==}
|
|
|
|
|
|
|
|
|
|
'@types/d3-hierarchy@3.1.7':
|
|
|
|
|
resolution: {integrity: sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg==}
|
|
|
|
|
|
|
|
|
|
'@types/d3-interpolate@3.0.4':
|
|
|
|
|
resolution: {integrity: sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==}
|
|
|
|
|
|
|
|
|
|
'@types/d3-path@3.1.1':
|
|
|
|
|
resolution: {integrity: sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==}
|
|
|
|
|
|
|
|
|
|
'@types/d3-polygon@3.0.2':
|
|
|
|
|
resolution: {integrity: sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA==}
|
|
|
|
|
|
|
|
|
|
'@types/d3-quadtree@3.0.6':
|
|
|
|
|
resolution: {integrity: sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg==}
|
|
|
|
|
|
|
|
|
|
'@types/d3-random@3.0.3':
|
|
|
|
|
resolution: {integrity: sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ==}
|
|
|
|
|
|
|
|
|
|
'@types/d3-scale-chromatic@3.1.0':
|
|
|
|
|
resolution: {integrity: sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ==}
|
|
|
|
|
|
|
|
|
|
'@types/d3-scale@4.0.9':
|
|
|
|
|
resolution: {integrity: sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==}
|
|
|
|
|
|
|
|
|
|
'@types/d3-selection@3.0.11':
|
|
|
|
|
resolution: {integrity: sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w==}
|
|
|
|
|
|
|
|
|
|
'@types/d3-shape@3.1.8':
|
|
|
|
|
resolution: {integrity: sha512-lae0iWfcDeR7qt7rA88BNiqdvPS5pFVPpo5OfjElwNaT2yyekbM0C9vK+yqBqEmHr6lDkRnYNoTBYlAgJa7a4w==}
|
|
|
|
|
|
|
|
|
|
'@types/d3-time-format@4.0.3':
|
|
|
|
|
resolution: {integrity: sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg==}
|
|
|
|
|
|
|
|
|
|
'@types/d3-time@3.0.4':
|
|
|
|
|
resolution: {integrity: sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==}
|
|
|
|
|
|
|
|
|
|
'@types/d3-timer@3.0.2':
|
|
|
|
|
resolution: {integrity: sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==}
|
|
|
|
|
|
|
|
|
|
'@types/d3-transition@3.0.9':
|
|
|
|
|
resolution: {integrity: sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg==}
|
|
|
|
|
|
|
|
|
|
'@types/d3-zoom@3.0.8':
|
|
|
|
|
resolution: {integrity: sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==}
|
|
|
|
|
|
|
|
|
|
'@types/d3@7.4.3':
|
|
|
|
|
resolution: {integrity: sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww==}
|
|
|
|
|
|
refactor: detect md hard-wraps via mdast AST, not regex
Per review feedback (use a real markdown parser with an AST linked to
source positions), rewrite verify-md-wrap to parse each file with
mdast-util-from-markdown (the CommonMark parser behind remark) + the GFM
extension, then flag any `paragraph` node whose source span covers more
than one line.
Why a parser over the hand-rolled line scanner:
- It is a checker, not a formatter — it reports and never rewrites, so
zero cosmetic churn (no emphasis-marker or table-delimiter
normalization, which is why Prettier was rejected for this).
- The AST owns every structural exemption (fenced code of any fence
length, tables, lists, blockquotes, HTML, headings, reference defs),
fixing both bugs the regex version had: it now catches wrapped
list-item / blockquote prose (a `paragraph` inside those nodes) and no
longer false-positives on a longer ```` fence wrapping an inner ```.
Also unwrap two pre-existing hard-wrapped blockquotes (architecture.md,
adding-a-tool.md) that the stricter AST check correctly surfaced.
2026-06-16 23:35:33 +08:00
|
|
|
'@types/debug@4.1.13':
|
|
|
|
|
resolution: {integrity: sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw==}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
'@types/deep-eql@4.0.2':
|
|
|
|
|
resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==}
|
|
|
|
|
|
|
|
|
|
'@types/esrecurse@4.3.1':
|
|
|
|
|
resolution: {integrity: sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw==}
|
|
|
|
|
|
|
|
|
|
'@types/estree@1.0.9':
|
|
|
|
|
resolution: {integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==}
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
'@types/geojson@7946.0.16':
|
|
|
|
|
resolution: {integrity: sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==}
|
|
|
|
|
|
|
|
|
|
'@types/jsdom@28.0.3':
|
|
|
|
|
resolution: {integrity: sha512-/HQ2uFoetFTXuye8vzIcHw2z6Fwi7Hi/qcgC+RoS9NCyewiqxhVGqlG+ViGB6lkax481R6dmhf1I7lIGlzJStQ==}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
'@types/jsesc@2.5.1':
|
|
|
|
|
resolution: {integrity: sha512-9VN+6yxLOPLOav+7PwjZbxiID2bVaeq0ED4qSQmdQTdjnXJSaCVKTR58t15oqH1H5t8Ng2ZX1SabJVoN9Q34bw==}
|
|
|
|
|
|
|
|
|
|
'@types/json-schema@7.0.15':
|
|
|
|
|
resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
|
|
|
|
|
|
refactor: detect md hard-wraps via mdast AST, not regex
Per review feedback (use a real markdown parser with an AST linked to
source positions), rewrite verify-md-wrap to parse each file with
mdast-util-from-markdown (the CommonMark parser behind remark) + the GFM
extension, then flag any `paragraph` node whose source span covers more
than one line.
Why a parser over the hand-rolled line scanner:
- It is a checker, not a formatter — it reports and never rewrites, so
zero cosmetic churn (no emphasis-marker or table-delimiter
normalization, which is why Prettier was rejected for this).
- The AST owns every structural exemption (fenced code of any fence
length, tables, lists, blockquotes, HTML, headings, reference defs),
fixing both bugs the regex version had: it now catches wrapped
list-item / blockquote prose (a `paragraph` inside those nodes) and no
longer false-positives on a longer ```` fence wrapping an inner ```.
Also unwrap two pre-existing hard-wrapped blockquotes (architecture.md,
adding-a-tool.md) that the stricter AST check correctly surfaced.
2026-06-16 23:35:33 +08:00
|
|
|
'@types/mdast@4.0.4':
|
|
|
|
|
resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==}
|
|
|
|
|
|
|
|
|
|
'@types/ms@2.1.0':
|
|
|
|
|
resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
'@types/node@25.9.3':
|
|
|
|
|
resolution: {integrity: sha512-603BddQMv3pUcr4U2dhujk83N2tTDVr/34wII2B6bJy6g+8WD6yUb11jszNs0gdi4PesVWl7ABt8nYMVpnLUcg==}
|
|
|
|
|
|
|
|
|
|
'@types/picomatch@3.0.2':
|
|
|
|
|
resolution: {integrity: sha512-n0i8TD3UDB7paoMMxA3Y65vUncFJXjcUf7lQY7YyKGl6031FNjfsLs6pdLFCy2GNFxItPJG8GvvpbZc2skH7WA==}
|
|
|
|
|
|
|
|
|
|
'@types/retry@0.12.0':
|
|
|
|
|
resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==}
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
'@types/tough-cookie@4.0.5':
|
|
|
|
|
resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==}
|
|
|
|
|
|
2026-07-07 20:18:01 +08:00
|
|
|
'@types/trusted-types@2.0.7':
|
|
|
|
|
resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==}
|
|
|
|
|
|
refactor: detect md hard-wraps via mdast AST, not regex
Per review feedback (use a real markdown parser with an AST linked to
source positions), rewrite verify-md-wrap to parse each file with
mdast-util-from-markdown (the CommonMark parser behind remark) + the GFM
extension, then flag any `paragraph` node whose source span covers more
than one line.
Why a parser over the hand-rolled line scanner:
- It is a checker, not a formatter — it reports and never rewrites, so
zero cosmetic churn (no emphasis-marker or table-delimiter
normalization, which is why Prettier was rejected for this).
- The AST owns every structural exemption (fenced code of any fence
length, tables, lists, blockquotes, HTML, headings, reference defs),
fixing both bugs the regex version had: it now catches wrapped
list-item / blockquote prose (a `paragraph` inside those nodes) and no
longer false-positives on a longer ```` fence wrapping an inner ```.
Also unwrap two pre-existing hard-wrapped blockquotes (architecture.md,
adding-a-tool.md) that the stricter AST check correctly surfaced.
2026-06-16 23:35:33 +08:00
|
|
|
'@types/unist@3.0.3':
|
|
|
|
|
resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
'@typescript-eslint/eslint-plugin@8.61.0':
|
|
|
|
|
resolution: {integrity: sha512-bFNvl9ZczlVb+wR2Akszf3gHfKVj/8WanXaGJ3UstTA7brNKg0cNdk6X1Psu5V7MZ2oQtzZKOEzIUehaoxbDGw==}
|
|
|
|
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
|
|
|
|
peerDependencies:
|
|
|
|
|
'@typescript-eslint/parser': ^8.61.0
|
|
|
|
|
eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
|
|
|
|
|
typescript: '>=4.8.4 <6.1.0'
|
|
|
|
|
|
|
|
|
|
'@typescript-eslint/parser@8.61.0':
|
|
|
|
|
resolution: {integrity: sha512-5B7PfA2e1NQGCnDHd/0lW7W3gvp3d59Ryw54FYO8Uswxo9f6ikw3AZV+Xj/TvpImmpsiYyUqAfhC6kJID1jF6w==}
|
|
|
|
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
|
|
|
|
peerDependencies:
|
|
|
|
|
eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
|
|
|
|
|
typescript: '>=4.8.4 <6.1.0'
|
|
|
|
|
|
|
|
|
|
'@typescript-eslint/project-service@8.61.0':
|
|
|
|
|
resolution: {integrity: sha512-DV42F7MLJO6Rax7SK1yg43tcnEfGUrurSpSxKuVX+a3RCTzBlH3fuxprrOJXKCJGAaw82xXocikJ0uQaqwXgGA==}
|
|
|
|
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
|
|
|
|
peerDependencies:
|
|
|
|
|
typescript: '>=4.8.4 <6.1.0'
|
|
|
|
|
|
|
|
|
|
'@typescript-eslint/scope-manager@8.61.0':
|
|
|
|
|
resolution: {integrity: sha512-IWdXFHFSb6mlC3HPc7QsLDm5zYEbUla6trDEHf32D3/dnuUyXd87plScSNXSbm0/RxMvObpI17sv/EDTGrGZkA==}
|
|
|
|
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
|
|
|
|
|
|
|
|
|
'@typescript-eslint/tsconfig-utils@8.61.0':
|
|
|
|
|
resolution: {integrity: sha512-O5Amvdv9ztMpxpf+vmFULGG78IE6Qwdr3bCGvqwG4nwc9H2qXkOYJJnRbRHyMkQTjv1d03olqwwwzHLMqpFePQ==}
|
|
|
|
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
|
|
|
|
peerDependencies:
|
|
|
|
|
typescript: '>=4.8.4 <6.1.0'
|
|
|
|
|
|
|
|
|
|
'@typescript-eslint/type-utils@8.61.0':
|
|
|
|
|
resolution: {integrity: sha512-TuBiQYIkd97yBfInHCTKVYMbX4kvEmpOEuixIuzCU9p8BGT1SfyyO0d0IfDMbPIHcjn/hWnusUX5e8v5Xg+X8A==}
|
|
|
|
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
|
|
|
|
peerDependencies:
|
|
|
|
|
eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
|
|
|
|
|
typescript: '>=4.8.4 <6.1.0'
|
|
|
|
|
|
|
|
|
|
'@typescript-eslint/types@8.61.0':
|
|
|
|
|
resolution: {integrity: sha512-9QTQpZ5Iin4CdIodfbDQFSeiSJKidgYJYug1P9CC2xWgUTvlmixViqDZNciMjwLBZyJnG4tGmPl97rVAFb1AJg==}
|
|
|
|
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
|
|
|
|
|
|
|
|
|
'@typescript-eslint/typescript-estree@8.61.0':
|
|
|
|
|
resolution: {integrity: sha512-42zatd5qSvvcV1JdDBCLxYRznvP4eIHpPoZXdkPFnAmanA4FuZ5dibSnCBggY8hQnqajPpoGjXFdZ7fIJKQnlA==}
|
|
|
|
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
|
|
|
|
peerDependencies:
|
|
|
|
|
typescript: '>=4.8.4 <6.1.0'
|
|
|
|
|
|
|
|
|
|
'@typescript-eslint/utils@8.61.0':
|
|
|
|
|
resolution: {integrity: sha512-3bzFt7ImFMW/jVYwJamDoe/dMOdFLSC6pom6rRjdh4SZJEYupyMzem8e7vKZLclLfpHjlwSAXOUxtKxGXUiLqA==}
|
|
|
|
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
|
|
|
|
peerDependencies:
|
|
|
|
|
eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
|
|
|
|
|
typescript: '>=4.8.4 <6.1.0'
|
|
|
|
|
|
|
|
|
|
'@typescript-eslint/visitor-keys@8.61.0':
|
|
|
|
|
resolution: {integrity: sha512-QVLZu3ZPQEE+HICQyAMZ2yLQhxf0meY/wx6Hx14YcTNj13JB3qHlX3lJ02L3fLGHgERRH71kvYDwiXIguT3AjQ==}
|
|
|
|
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
'@upsetjs/venn.js@2.0.0':
|
|
|
|
|
resolution: {integrity: sha512-WbBhLrooyePuQ1VZxrJjtLvTc4NVfpOyKx0sKqioq9bX1C1m7Jgykkn8gLrtwumBioXIqam8DLxp88Adbue6Hw==}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
'@vitest/coverage-v8@4.1.8':
|
|
|
|
|
resolution: {integrity: sha512-lt3kovsyHwYe00wq4D1ti0Z974fWj4NLp6siqiyEufUpyFwK9Yhi7rBhac9JL5aA0zoMrJqc4vYPZRUnI7l7nw==}
|
|
|
|
|
peerDependencies:
|
|
|
|
|
'@vitest/browser': 4.1.8
|
|
|
|
|
vitest: 4.1.8
|
|
|
|
|
peerDependenciesMeta:
|
|
|
|
|
'@vitest/browser':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@vitest/expect@4.1.8':
|
|
|
|
|
resolution: {integrity: sha512-h3nDO677RDLEGlBxyQ5CW8RlMThSKSRLUePLOx09gNIWRL40edgA1GCZSZgf1W55MFAG6/Sw14KeaAnqv0NKdQ==}
|
|
|
|
|
|
|
|
|
|
'@vitest/mocker@4.1.8':
|
|
|
|
|
resolution: {integrity: sha512-LEiN/xe4OSIbKe9HQIp5OC24agGD9J5CnmMgsLohVVoOPWL9a2sBoR6VBx43jQZb7Kr1l4RCuyCJzcAa0+dojw==}
|
|
|
|
|
peerDependencies:
|
|
|
|
|
msw: ^2.4.9
|
|
|
|
|
vite: ^6.0.0 || ^7.0.0 || ^8.0.0
|
|
|
|
|
peerDependenciesMeta:
|
|
|
|
|
msw:
|
|
|
|
|
optional: true
|
|
|
|
|
vite:
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@vitest/pretty-format@4.1.8':
|
|
|
|
|
resolution: {integrity: sha512-9GasEBxpZ1VYIpqHf/0+YGg121uSNwCKOJqIrTwWP/TB7DmFCiaBpNl3aPZzoLWfWkuqhbH8vJIVobZkvdo2cA==}
|
|
|
|
|
|
|
|
|
|
'@vitest/runner@4.1.8':
|
|
|
|
|
resolution: {integrity: sha512-EmVxeBAfMJvycdjd6Hm+RbFBbA9fKvo0Kx37hNpBYoYeavH3RNsBXWDooR1mgD52dCrxIIuP7UotpfiwOikvcg==}
|
|
|
|
|
|
|
|
|
|
'@vitest/snapshot@4.1.8':
|
|
|
|
|
resolution: {integrity: sha512-acfZboRmAIf05DEKcBQy33VXojFJjtUdLyo7oOmV9kebb2xdU01UknNiPuPZoJZQyO7DF0gZdTGTpeAzET9QPQ==}
|
|
|
|
|
|
|
|
|
|
'@vitest/spy@4.1.8':
|
|
|
|
|
resolution: {integrity: sha512-6EevtBp6OZOPF7bmz36HrGMeP3txgVSrgebWxHOafDXGkhIzfXK14f8KF6MuFfgXXUeHxmpD3BQxkV00/3s5mA==}
|
|
|
|
|
|
|
|
|
|
'@vitest/utils@4.1.8':
|
|
|
|
|
resolution: {integrity: sha512-uOJamYALNhfJ6iolExyQM40yIQwDqYnkKtQ5VCiSe17E33H0aQ/u+1GlRuz4LZBk6Mm3sg90G9hEbmEt37C1Zg==}
|
|
|
|
|
|
|
|
|
|
acorn-jsx@5.3.2:
|
|
|
|
|
resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
|
|
|
|
|
peerDependencies:
|
|
|
|
|
acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
|
|
|
|
|
|
|
|
|
|
acorn@8.17.0:
|
|
|
|
|
resolution: {integrity: sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg==}
|
|
|
|
|
engines: {node: '>=0.4.0'}
|
|
|
|
|
hasBin: true
|
|
|
|
|
|
|
|
|
|
agent-base@7.1.4:
|
|
|
|
|
resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==}
|
|
|
|
|
engines: {node: '>= 14'}
|
|
|
|
|
|
|
|
|
|
ajv@6.15.0:
|
|
|
|
|
resolution: {integrity: sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==}
|
|
|
|
|
|
|
|
|
|
ansis@4.3.1:
|
|
|
|
|
resolution: {integrity: sha512-BJ8/l4R5LRE7hW9WdSuGYrLSHi2ynxeFpDFbH0K/CgNeY/tyhk+vO6TYxXC5r5CpUhNVX310xzPsN/H9lCdfOA==}
|
|
|
|
|
engines: {node: '>=14'}
|
|
|
|
|
|
|
|
|
|
anynum@1.0.0:
|
|
|
|
|
resolution: {integrity: sha512-xjR9/zBVnUOP6ztMIIgShjsxui80nQUQH+5xJnvrYLs+90bF25/KJqaAi8mk+B4RDtX1Nspi6fmp4YTEts8SfA==}
|
|
|
|
|
|
|
|
|
|
argparse@2.0.1:
|
|
|
|
|
resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
|
|
|
|
|
|
|
|
|
|
assertion-error@2.0.1:
|
|
|
|
|
resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==}
|
|
|
|
|
engines: {node: '>=12'}
|
|
|
|
|
|
|
|
|
|
ast-kit@3.0.0-beta.1:
|
|
|
|
|
resolution: {integrity: sha512-trmleAnZ2PxN/loHWVhhx1qeOHSRXq4TDsBBxq3GqeJitfk3+jTQ+v/C1km/KYq9M7wKqCewMh+/NAvVH7m+bw==}
|
|
|
|
|
engines: {node: '>=20.19.0'}
|
|
|
|
|
|
|
|
|
|
ast-v8-to-istanbul@1.0.4:
|
|
|
|
|
resolution: {integrity: sha512-0bC0/4bTSrnwdhU3IsZDwEdojvuPrSg59OYZfKsLRtJZ0u8VBx9DebfqqG8bRdCC0I7vjgxmPi41P0lpkhJHtA==}
|
|
|
|
|
|
|
|
|
|
balanced-match@4.0.4:
|
|
|
|
|
resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==}
|
|
|
|
|
engines: {node: 18 || 20 || >=22}
|
|
|
|
|
|
|
|
|
|
base64-js@1.5.1:
|
|
|
|
|
resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
bidi-js@1.0.3:
|
|
|
|
|
resolution: {integrity: sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw==}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
bignumber.js@9.3.1:
|
|
|
|
|
resolution: {integrity: sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==}
|
|
|
|
|
|
|
|
|
|
birpc@4.0.0:
|
|
|
|
|
resolution: {integrity: sha512-LShSxJP0KTmd101b6DRyGBj57LZxSDYWKitQNW/mi8GRMvZb078Uf9+pveax1DrVL89vm7mWe+TovdI/UDOuPw==}
|
|
|
|
|
|
|
|
|
|
bowser@2.14.1:
|
|
|
|
|
resolution: {integrity: sha512-tzPjzCxygAKWFOJP011oxFHs57HzIhOEracIgAePE4pqB3LikALKnSzUyU4MGs9/iCEUuHlAJTjTc5M+u7YEGg==}
|
|
|
|
|
|
|
|
|
|
brace-expansion@5.0.6:
|
|
|
|
|
resolution: {integrity: sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==}
|
|
|
|
|
engines: {node: 18 || 20 || >=22}
|
|
|
|
|
|
|
|
|
|
buffer-equal-constant-time@1.0.1:
|
|
|
|
|
resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==}
|
|
|
|
|
|
|
|
|
|
cac@7.0.0:
|
|
|
|
|
resolution: {integrity: sha512-tixWYgm5ZoOD+3g6UTea91eow5z6AAHaho3g0V9CNSNb45gM8SmflpAc+GRd1InC4AqN/07Unrgp56Y94N9hJQ==}
|
|
|
|
|
engines: {node: '>=20.19.0'}
|
|
|
|
|
|
refactor: detect md hard-wraps via mdast AST, not regex
Per review feedback (use a real markdown parser with an AST linked to
source positions), rewrite verify-md-wrap to parse each file with
mdast-util-from-markdown (the CommonMark parser behind remark) + the GFM
extension, then flag any `paragraph` node whose source span covers more
than one line.
Why a parser over the hand-rolled line scanner:
- It is a checker, not a formatter — it reports and never rewrites, so
zero cosmetic churn (no emphasis-marker or table-delimiter
normalization, which is why Prettier was rejected for this).
- The AST owns every structural exemption (fenced code of any fence
length, tables, lists, blockquotes, HTML, headings, reference defs),
fixing both bugs the regex version had: it now catches wrapped
list-item / blockquote prose (a `paragraph` inside those nodes) and no
longer false-positives on a longer ```` fence wrapping an inner ```.
Also unwrap two pre-existing hard-wrapped blockquotes (architecture.md,
adding-a-tool.md) that the stricter AST check correctly surfaced.
2026-06-16 23:35:33 +08:00
|
|
|
ccount@2.0.1:
|
|
|
|
|
resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
chai@6.2.2:
|
|
|
|
|
resolution: {integrity: sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==}
|
|
|
|
|
engines: {node: '>=18'}
|
|
|
|
|
|
refactor: detect md hard-wraps via mdast AST, not regex
Per review feedback (use a real markdown parser with an AST linked to
source positions), rewrite verify-md-wrap to parse each file with
mdast-util-from-markdown (the CommonMark parser behind remark) + the GFM
extension, then flag any `paragraph` node whose source span covers more
than one line.
Why a parser over the hand-rolled line scanner:
- It is a checker, not a formatter — it reports and never rewrites, so
zero cosmetic churn (no emphasis-marker or table-delimiter
normalization, which is why Prettier was rejected for this).
- The AST owns every structural exemption (fenced code of any fence
length, tables, lists, blockquotes, HTML, headings, reference defs),
fixing both bugs the regex version had: it now catches wrapped
list-item / blockquote prose (a `paragraph` inside those nodes) and no
longer false-positives on a longer ```` fence wrapping an inner ```.
Also unwrap two pre-existing hard-wrapped blockquotes (architecture.md,
adding-a-tool.md) that the stricter AST check correctly surfaced.
2026-06-16 23:35:33 +08:00
|
|
|
character-entities@2.0.2:
|
|
|
|
|
resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
chokidar@4.0.3:
|
|
|
|
|
resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==}
|
|
|
|
|
engines: {node: '>= 14.16.0'}
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
commander@7.2.0:
|
|
|
|
|
resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==}
|
|
|
|
|
engines: {node: '>= 10'}
|
|
|
|
|
|
|
|
|
|
commander@8.3.0:
|
|
|
|
|
resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==}
|
|
|
|
|
engines: {node: '>= 12'}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
convert-source-map@2.0.0:
|
|
|
|
|
resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
|
|
|
|
|
|
|
|
|
|
cordis@4.0.0-rc.6:
|
|
|
|
|
resolution: {integrity: sha512-GzUv7zCKh3FlgM3/Ad2S03UpYO3v4u1GcKa7ig4K2je4lCrgJ/S64ziiZI6XNyKEa1tZwdzj4oBQrhYDLgfEiA==}
|
|
|
|
|
hasBin: true
|
|
|
|
|
peerDependencies:
|
|
|
|
|
'@cordisjs/plugin-include': ^1.0.4
|
|
|
|
|
'@cordisjs/plugin-loader': ^1.0.0-rc.4
|
|
|
|
|
peerDependenciesMeta:
|
|
|
|
|
'@cordisjs/plugin-include':
|
|
|
|
|
optional: true
|
|
|
|
|
'@cordisjs/plugin-loader':
|
|
|
|
|
optional: true
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
cose-base@1.0.3:
|
|
|
|
|
resolution: {integrity: sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg==}
|
|
|
|
|
|
|
|
|
|
cose-base@2.2.0:
|
|
|
|
|
resolution: {integrity: sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g==}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
cosmokit@1.8.1:
|
|
|
|
|
resolution: {integrity: sha512-PDBv4l90xZKrUsZ0vtoycgZpO/j4iFsqJXrAxsyBDsnQRI7ZMJXIjgDJsKNjd5L8jnVnnlrDCdhkFbTncgCVjQ==}
|
|
|
|
|
|
|
|
|
|
cross-spawn@7.0.6:
|
|
|
|
|
resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==}
|
|
|
|
|
engines: {node: '>= 8'}
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
css-tree@3.2.1:
|
|
|
|
|
resolution: {integrity: sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==}
|
|
|
|
|
engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0}
|
|
|
|
|
|
|
|
|
|
cytoscape-cose-bilkent@4.1.0:
|
|
|
|
|
resolution: {integrity: sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ==}
|
|
|
|
|
peerDependencies:
|
|
|
|
|
cytoscape: ^3.2.0
|
|
|
|
|
|
|
|
|
|
cytoscape-fcose@2.2.0:
|
|
|
|
|
resolution: {integrity: sha512-ki1/VuRIHFCzxWNrsshHYPs6L7TvLu3DL+TyIGEsRcvVERmxokbf5Gdk7mFxZnTdiGtnA4cfSmjZJMviqSuZrQ==}
|
|
|
|
|
peerDependencies:
|
|
|
|
|
cytoscape: ^3.2.0
|
|
|
|
|
|
|
|
|
|
cytoscape@3.34.0:
|
|
|
|
|
resolution: {integrity: sha512-62rNSrioXw93uliKFBwjukeQyeWwH2PqDrTac31r2P6464u3AUvTk0xS4LVvT251g7IgkFunrI48ZEZGjywSOg==}
|
|
|
|
|
engines: {node: '>=0.10'}
|
|
|
|
|
|
|
|
|
|
d3-array@2.12.1:
|
|
|
|
|
resolution: {integrity: sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==}
|
|
|
|
|
|
|
|
|
|
d3-array@3.2.4:
|
|
|
|
|
resolution: {integrity: sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==}
|
|
|
|
|
engines: {node: '>=12'}
|
|
|
|
|
|
|
|
|
|
d3-axis@3.0.0:
|
|
|
|
|
resolution: {integrity: sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==}
|
|
|
|
|
engines: {node: '>=12'}
|
|
|
|
|
|
|
|
|
|
d3-brush@3.0.0:
|
|
|
|
|
resolution: {integrity: sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==}
|
|
|
|
|
engines: {node: '>=12'}
|
|
|
|
|
|
|
|
|
|
d3-chord@3.0.1:
|
|
|
|
|
resolution: {integrity: sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==}
|
|
|
|
|
engines: {node: '>=12'}
|
|
|
|
|
|
|
|
|
|
d3-color@3.1.0:
|
|
|
|
|
resolution: {integrity: sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==}
|
|
|
|
|
engines: {node: '>=12'}
|
|
|
|
|
|
|
|
|
|
d3-contour@4.0.2:
|
|
|
|
|
resolution: {integrity: sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==}
|
|
|
|
|
engines: {node: '>=12'}
|
|
|
|
|
|
|
|
|
|
d3-delaunay@6.0.4:
|
|
|
|
|
resolution: {integrity: sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==}
|
|
|
|
|
engines: {node: '>=12'}
|
|
|
|
|
|
|
|
|
|
d3-dispatch@3.0.1:
|
|
|
|
|
resolution: {integrity: sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==}
|
|
|
|
|
engines: {node: '>=12'}
|
|
|
|
|
|
|
|
|
|
d3-drag@3.0.0:
|
|
|
|
|
resolution: {integrity: sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==}
|
|
|
|
|
engines: {node: '>=12'}
|
|
|
|
|
|
|
|
|
|
d3-dsv@3.0.1:
|
|
|
|
|
resolution: {integrity: sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==}
|
|
|
|
|
engines: {node: '>=12'}
|
|
|
|
|
hasBin: true
|
|
|
|
|
|
|
|
|
|
d3-ease@3.0.1:
|
|
|
|
|
resolution: {integrity: sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==}
|
|
|
|
|
engines: {node: '>=12'}
|
|
|
|
|
|
|
|
|
|
d3-fetch@3.0.1:
|
|
|
|
|
resolution: {integrity: sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==}
|
|
|
|
|
engines: {node: '>=12'}
|
|
|
|
|
|
|
|
|
|
d3-force@3.0.0:
|
|
|
|
|
resolution: {integrity: sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==}
|
|
|
|
|
engines: {node: '>=12'}
|
|
|
|
|
|
|
|
|
|
d3-format@3.1.2:
|
|
|
|
|
resolution: {integrity: sha512-AJDdYOdnyRDV5b6ArilzCPPwc1ejkHcoyFarqlPqT7zRYjhavcT3uSrqcMvsgh2CgoPbK3RCwyHaVyxYcP2Arg==}
|
|
|
|
|
engines: {node: '>=12'}
|
|
|
|
|
|
|
|
|
|
d3-geo@3.1.1:
|
|
|
|
|
resolution: {integrity: sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==}
|
|
|
|
|
engines: {node: '>=12'}
|
|
|
|
|
|
|
|
|
|
d3-hierarchy@3.1.2:
|
|
|
|
|
resolution: {integrity: sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==}
|
|
|
|
|
engines: {node: '>=12'}
|
|
|
|
|
|
|
|
|
|
d3-interpolate@3.0.1:
|
|
|
|
|
resolution: {integrity: sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==}
|
|
|
|
|
engines: {node: '>=12'}
|
|
|
|
|
|
|
|
|
|
d3-path@1.0.9:
|
|
|
|
|
resolution: {integrity: sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==}
|
|
|
|
|
|
|
|
|
|
d3-path@3.1.0:
|
|
|
|
|
resolution: {integrity: sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==}
|
|
|
|
|
engines: {node: '>=12'}
|
|
|
|
|
|
|
|
|
|
d3-polygon@3.0.1:
|
|
|
|
|
resolution: {integrity: sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==}
|
|
|
|
|
engines: {node: '>=12'}
|
|
|
|
|
|
|
|
|
|
d3-quadtree@3.0.1:
|
|
|
|
|
resolution: {integrity: sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==}
|
|
|
|
|
engines: {node: '>=12'}
|
|
|
|
|
|
|
|
|
|
d3-random@3.0.1:
|
|
|
|
|
resolution: {integrity: sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==}
|
|
|
|
|
engines: {node: '>=12'}
|
|
|
|
|
|
|
|
|
|
d3-sankey@0.12.3:
|
|
|
|
|
resolution: {integrity: sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ==}
|
|
|
|
|
|
|
|
|
|
d3-scale-chromatic@3.1.0:
|
|
|
|
|
resolution: {integrity: sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==}
|
|
|
|
|
engines: {node: '>=12'}
|
|
|
|
|
|
|
|
|
|
d3-scale@4.0.2:
|
|
|
|
|
resolution: {integrity: sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==}
|
|
|
|
|
engines: {node: '>=12'}
|
|
|
|
|
|
|
|
|
|
d3-selection@3.0.0:
|
|
|
|
|
resolution: {integrity: sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==}
|
|
|
|
|
engines: {node: '>=12'}
|
|
|
|
|
|
|
|
|
|
d3-shape@1.3.7:
|
|
|
|
|
resolution: {integrity: sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==}
|
|
|
|
|
|
|
|
|
|
d3-shape@3.2.0:
|
|
|
|
|
resolution: {integrity: sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==}
|
|
|
|
|
engines: {node: '>=12'}
|
|
|
|
|
|
|
|
|
|
d3-time-format@4.1.0:
|
|
|
|
|
resolution: {integrity: sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==}
|
|
|
|
|
engines: {node: '>=12'}
|
|
|
|
|
|
|
|
|
|
d3-time@3.1.0:
|
|
|
|
|
resolution: {integrity: sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==}
|
|
|
|
|
engines: {node: '>=12'}
|
|
|
|
|
|
|
|
|
|
d3-timer@3.0.1:
|
|
|
|
|
resolution: {integrity: sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==}
|
|
|
|
|
engines: {node: '>=12'}
|
|
|
|
|
|
|
|
|
|
d3-transition@3.0.1:
|
|
|
|
|
resolution: {integrity: sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==}
|
|
|
|
|
engines: {node: '>=12'}
|
|
|
|
|
peerDependencies:
|
|
|
|
|
d3-selection: 2 - 3
|
|
|
|
|
|
|
|
|
|
d3-zoom@3.0.0:
|
|
|
|
|
resolution: {integrity: sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==}
|
|
|
|
|
engines: {node: '>=12'}
|
|
|
|
|
|
|
|
|
|
d3@7.9.0:
|
|
|
|
|
resolution: {integrity: sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==}
|
|
|
|
|
engines: {node: '>=12'}
|
|
|
|
|
|
|
|
|
|
dagre-d3-es@7.0.14:
|
|
|
|
|
resolution: {integrity: sha512-P4rFMVq9ESWqmOgK+dlXvOtLwYg0i7u0HBGJER0LZDJT2VHIPAMZ/riPxqJceWMStH5+E61QxFra9kIS3AqdMg==}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
data-uri-to-buffer@4.0.1:
|
|
|
|
|
resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==}
|
|
|
|
|
engines: {node: '>= 12'}
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
data-urls@7.0.0:
|
|
|
|
|
resolution: {integrity: sha512-23XHcCF+coGYevirZceTVD7NdJOqVn+49IHyxgszm+JIiHLoB2TkmPtsYkNWT1pvRSGkc35L6NHs0yHkN2SumA==}
|
|
|
|
|
engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0}
|
|
|
|
|
|
|
|
|
|
dayjs@1.11.21:
|
|
|
|
|
resolution: {integrity: sha512-98IT+HOahAisibz/yjKbzuOBwYcjJ7BCLPzARyHiyEBmRz4fatF+KPJszEHXsGYjUG234aH/cOjW1wwTbKUZlA==}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
debug@4.4.3:
|
|
|
|
|
resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==}
|
|
|
|
|
engines: {node: '>=6.0'}
|
|
|
|
|
peerDependencies:
|
|
|
|
|
supports-color: '*'
|
|
|
|
|
peerDependenciesMeta:
|
|
|
|
|
supports-color:
|
|
|
|
|
optional: true
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
decimal.js@10.6.0:
|
|
|
|
|
resolution: {integrity: sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==}
|
|
|
|
|
|
refactor: detect md hard-wraps via mdast AST, not regex
Per review feedback (use a real markdown parser with an AST linked to
source positions), rewrite verify-md-wrap to parse each file with
mdast-util-from-markdown (the CommonMark parser behind remark) + the GFM
extension, then flag any `paragraph` node whose source span covers more
than one line.
Why a parser over the hand-rolled line scanner:
- It is a checker, not a formatter — it reports and never rewrites, so
zero cosmetic churn (no emphasis-marker or table-delimiter
normalization, which is why Prettier was rejected for this).
- The AST owns every structural exemption (fenced code of any fence
length, tables, lists, blockquotes, HTML, headings, reference defs),
fixing both bugs the regex version had: it now catches wrapped
list-item / blockquote prose (a `paragraph` inside those nodes) and no
longer false-positives on a longer ```` fence wrapping an inner ```.
Also unwrap two pre-existing hard-wrapped blockquotes (architecture.md,
adding-a-tool.md) that the stricter AST check correctly surfaced.
2026-06-16 23:35:33 +08:00
|
|
|
decode-named-character-reference@1.3.0:
|
|
|
|
|
resolution: {integrity: sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q==}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
deep-is@0.1.4:
|
|
|
|
|
resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
|
|
|
|
|
|
|
|
|
|
defu@6.1.7:
|
|
|
|
|
resolution: {integrity: sha512-7z22QmUWiQ/2d0KkdYmANbRUVABpZ9SNYyH5vx6PZ+nE5bcC0l7uFvEfHlyld/HcGBFTL536ClDt3DEcSlEJAQ==}
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
delaunator@5.1.0:
|
|
|
|
|
resolution: {integrity: sha512-AGrQ4QSgssa1NGmWmLPqN5NY2KajF5MqxetNEO+o0n3ZwZZeTmt7bBnvzHWrmkZFxGgr4HdyFgelzgi06otLuQ==}
|
|
|
|
|
|
refactor: detect md hard-wraps via mdast AST, not regex
Per review feedback (use a real markdown parser with an AST linked to
source positions), rewrite verify-md-wrap to parse each file with
mdast-util-from-markdown (the CommonMark parser behind remark) + the GFM
extension, then flag any `paragraph` node whose source span covers more
than one line.
Why a parser over the hand-rolled line scanner:
- It is a checker, not a formatter — it reports and never rewrites, so
zero cosmetic churn (no emphasis-marker or table-delimiter
normalization, which is why Prettier was rejected for this).
- The AST owns every structural exemption (fenced code of any fence
length, tables, lists, blockquotes, HTML, headings, reference defs),
fixing both bugs the regex version had: it now catches wrapped
list-item / blockquote prose (a `paragraph` inside those nodes) and no
longer false-positives on a longer ```` fence wrapping an inner ```.
Also unwrap two pre-existing hard-wrapped blockquotes (architecture.md,
adding-a-tool.md) that the stricter AST check correctly surfaced.
2026-06-16 23:35:33 +08:00
|
|
|
dequal@2.0.3:
|
|
|
|
|
resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==}
|
|
|
|
|
engines: {node: '>=6'}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
detect-libc@2.1.2:
|
|
|
|
|
resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==}
|
|
|
|
|
engines: {node: '>=8'}
|
|
|
|
|
|
refactor: detect md hard-wraps via mdast AST, not regex
Per review feedback (use a real markdown parser with an AST linked to
source positions), rewrite verify-md-wrap to parse each file with
mdast-util-from-markdown (the CommonMark parser behind remark) + the GFM
extension, then flag any `paragraph` node whose source span covers more
than one line.
Why a parser over the hand-rolled line scanner:
- It is a checker, not a formatter — it reports and never rewrites, so
zero cosmetic churn (no emphasis-marker or table-delimiter
normalization, which is why Prettier was rejected for this).
- The AST owns every structural exemption (fenced code of any fence
length, tables, lists, blockquotes, HTML, headings, reference defs),
fixing both bugs the regex version had: it now catches wrapped
list-item / blockquote prose (a `paragraph` inside those nodes) and no
longer false-positives on a longer ```` fence wrapping an inner ```.
Also unwrap two pre-existing hard-wrapped blockquotes (architecture.md,
adding-a-tool.md) that the stricter AST check correctly surfaced.
2026-06-16 23:35:33 +08:00
|
|
|
devlop@1.1.0:
|
|
|
|
|
resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==}
|
|
|
|
|
|
2026-07-03 17:12:00 +08:00
|
|
|
diff@9.0.0:
|
|
|
|
|
resolution: {integrity: sha512-svtcdpS8CgJyqAjEQIXdb3OjhFVVYjzGAPO8WGCmRbrml64SPw/jJD4GoE98aR7r25A0XcgrK3F02yw9R/vhQw==}
|
|
|
|
|
engines: {node: '>=0.3.1'}
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
dompurify@3.4.11:
|
|
|
|
|
resolution: {integrity: sha512-zhlUV12GsaRzMsf9q5M254YhA4+VuF0fG+QFqu6aYpoGlKtz+w8//jBcGVYBgQkR5GHjUomejY84AV+/uPbWdw==}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
dts-resolver@3.0.0:
|
|
|
|
|
resolution: {integrity: sha512-1T1f+z+4tl9XD+m+0HBgWoL/nm0bOIffyWaUuUSBlFg/86IWvfx+wjNaO/ybU0AJzG9/Mi5hBUgGV6zCmWEN7Q==}
|
|
|
|
|
engines: {node: ^22.18.0 || >=24.0.0}
|
|
|
|
|
peerDependencies:
|
|
|
|
|
oxc-resolver: '>=11.0.0'
|
|
|
|
|
peerDependenciesMeta:
|
|
|
|
|
oxc-resolver:
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
ecdsa-sig-formatter@1.0.11:
|
|
|
|
|
resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==}
|
|
|
|
|
|
|
|
|
|
empathic@2.0.1:
|
|
|
|
|
resolution: {integrity: sha512-YGRs8knHhKHVShLkFET/rWAU8kmHbOV5LwN938RHI0pljAJ1Gf6SzXsSmRaEzcXTtOOmVqJ5+WtQPL5uigY50Q==}
|
|
|
|
|
engines: {node: '>=14'}
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
entities@8.0.0:
|
|
|
|
|
resolution: {integrity: sha512-zwfzJecQ/Uej6tusMqwAqU/6KL2XaB2VZ2Jg54Je6ahNBGNH6Ek6g3jjNCF0fG9EWQKGZNddNjU5F1ZQn/sBnA==}
|
|
|
|
|
engines: {node: '>=20.19.0'}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
es-module-lexer@2.1.0:
|
|
|
|
|
resolution: {integrity: sha512-n27zTYMjYu1aj4MjCWzSP7G9r75utsaoc8m61weK+W8JMBGGQybd43GstCXZ3WNmSFtGT9wi59qQTW6mhTR5LQ==}
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
es-toolkit@1.49.0:
|
|
|
|
|
resolution: {integrity: sha512-G5iZ6Pc/FNRY/soKZHC+TxGDD83rHUDXxzaWhGCX44vAv/tMs56WMusnm/KMNK+luUPsgA9U28cGr4RDlSzL2g==}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
esbuild@0.28.1:
|
|
|
|
|
resolution: {integrity: sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw==}
|
|
|
|
|
engines: {node: '>=18'}
|
|
|
|
|
hasBin: true
|
|
|
|
|
|
|
|
|
|
escape-string-regexp@4.0.0:
|
|
|
|
|
resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
|
|
|
|
|
engines: {node: '>=10'}
|
|
|
|
|
|
refactor: detect md hard-wraps via mdast AST, not regex
Per review feedback (use a real markdown parser with an AST linked to
source positions), rewrite verify-md-wrap to parse each file with
mdast-util-from-markdown (the CommonMark parser behind remark) + the GFM
extension, then flag any `paragraph` node whose source span covers more
than one line.
Why a parser over the hand-rolled line scanner:
- It is a checker, not a formatter — it reports and never rewrites, so
zero cosmetic churn (no emphasis-marker or table-delimiter
normalization, which is why Prettier was rejected for this).
- The AST owns every structural exemption (fenced code of any fence
length, tables, lists, blockquotes, HTML, headings, reference defs),
fixing both bugs the regex version had: it now catches wrapped
list-item / blockquote prose (a `paragraph` inside those nodes) and no
longer false-positives on a longer ```` fence wrapping an inner ```.
Also unwrap two pre-existing hard-wrapped blockquotes (architecture.md,
adding-a-tool.md) that the stricter AST check correctly surfaced.
2026-06-16 23:35:33 +08:00
|
|
|
escape-string-regexp@5.0.0:
|
|
|
|
|
resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==}
|
|
|
|
|
engines: {node: '>=12'}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
eslint-scope@9.1.2:
|
|
|
|
|
resolution: {integrity: sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ==}
|
|
|
|
|
engines: {node: ^20.19.0 || ^22.13.0 || >=24}
|
|
|
|
|
|
|
|
|
|
eslint-visitor-keys@3.4.3:
|
|
|
|
|
resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
|
|
|
|
|
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
|
|
|
|
|
|
|
|
|
eslint-visitor-keys@4.2.1:
|
|
|
|
|
resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==}
|
|
|
|
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
|
|
|
|
|
|
|
|
|
eslint-visitor-keys@5.0.1:
|
|
|
|
|
resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==}
|
|
|
|
|
engines: {node: ^20.19.0 || ^22.13.0 || >=24}
|
|
|
|
|
|
|
|
|
|
eslint@10.5.0:
|
|
|
|
|
resolution: {integrity: sha512-1y+7C+vi12bUK1IpZeaV3gsH9fHLBmPvYmPx42pvT/E9yG0IC8g3PUZZgp0+JLJl7ZDK0flc2gc+Aw9dpCvIsQ==}
|
|
|
|
|
engines: {node: ^20.19.0 || ^22.13.0 || >=24}
|
|
|
|
|
hasBin: true
|
|
|
|
|
peerDependencies:
|
|
|
|
|
jiti: '*'
|
|
|
|
|
peerDependenciesMeta:
|
|
|
|
|
jiti:
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
espree@10.4.0:
|
|
|
|
|
resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==}
|
|
|
|
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
|
|
|
|
|
|
|
|
|
espree@11.2.0:
|
|
|
|
|
resolution: {integrity: sha512-7p3DrVEIopW1B1avAGLuCSh1jubc01H2JHc8B4qqGblmg5gI9yumBgACjWo4JlIc04ufug4xJ3SQI8HkS/Rgzw==}
|
|
|
|
|
engines: {node: ^20.19.0 || ^22.13.0 || >=24}
|
|
|
|
|
|
|
|
|
|
esquery@1.7.0:
|
|
|
|
|
resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==}
|
|
|
|
|
engines: {node: '>=0.10'}
|
|
|
|
|
|
|
|
|
|
esrecurse@4.3.0:
|
|
|
|
|
resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
|
|
|
|
|
engines: {node: '>=4.0'}
|
|
|
|
|
|
|
|
|
|
estraverse@5.3.0:
|
|
|
|
|
resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
|
|
|
|
|
engines: {node: '>=4.0'}
|
|
|
|
|
|
|
|
|
|
estree-walker@3.0.3:
|
|
|
|
|
resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==}
|
|
|
|
|
|
|
|
|
|
esutils@2.0.3:
|
|
|
|
|
resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
|
|
|
|
|
engines: {node: '>=0.10.0'}
|
|
|
|
|
|
|
|
|
|
expect-type@1.3.0:
|
|
|
|
|
resolution: {integrity: sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==}
|
|
|
|
|
engines: {node: '>=12.0.0'}
|
|
|
|
|
|
|
|
|
|
extend@3.0.2:
|
|
|
|
|
resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==}
|
|
|
|
|
|
|
|
|
|
fast-check@4.8.0:
|
|
|
|
|
resolution: {integrity: sha512-GOJ158CUMnN6cSahsv4+ExARvIDuzzinFjkp0E9WtiBa5zcVeLozVkWaE4IzFcc+Y48Wp1EDlUZsXRyAztQcSg==}
|
|
|
|
|
engines: {node: '>=12.17.0'}
|
|
|
|
|
|
|
|
|
|
fast-deep-equal@3.1.3:
|
|
|
|
|
resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
|
|
|
|
|
|
|
|
|
|
fast-json-stable-stringify@2.1.0:
|
|
|
|
|
resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
|
|
|
|
|
|
|
|
|
|
fast-levenshtein@2.0.6:
|
|
|
|
|
resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
|
|
|
|
|
|
|
|
|
|
fast-xml-builder@1.2.0:
|
|
|
|
|
resolution: {integrity: sha512-00aAWieqff+ZJhsXA4g1g7M8k+7AYoMUUHF+/zFb5U6Uv/P0Vl4QZo84/IcufzYalLuEj9928bXN9PbbFzMF0Q==}
|
|
|
|
|
|
|
|
|
|
fast-xml-parser@5.7.3:
|
|
|
|
|
resolution: {integrity: sha512-C0AaNuC+mscy6vrAQKAc/rMq+zAPHodfHGZu4sGVehvAQt/JLG1O5zEcYcXSY5zSqr4YVgxsB+pHXTq0i7eDlg==}
|
|
|
|
|
hasBin: true
|
|
|
|
|
|
|
|
|
|
fd-package-json@2.0.0:
|
|
|
|
|
resolution: {integrity: sha512-jKmm9YtsNXN789RS/0mSzOC1NUq9mkVd65vbSSVsKdjGvYXBuE4oWe2QOEoFeRmJg+lPuZxpmrfFclNhoRMneQ==}
|
|
|
|
|
|
|
|
|
|
fdir@6.5.0:
|
|
|
|
|
resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==}
|
|
|
|
|
engines: {node: '>=12.0.0'}
|
|
|
|
|
peerDependencies:
|
|
|
|
|
picomatch: ^3 || ^4
|
|
|
|
|
peerDependenciesMeta:
|
|
|
|
|
picomatch:
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
fetch-blob@3.2.0:
|
|
|
|
|
resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==}
|
|
|
|
|
engines: {node: ^12.20 || >= 14.13}
|
|
|
|
|
|
|
|
|
|
file-entry-cache@8.0.0:
|
|
|
|
|
resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==}
|
|
|
|
|
engines: {node: '>=16.0.0'}
|
|
|
|
|
|
|
|
|
|
find-up@5.0.0:
|
|
|
|
|
resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
|
|
|
|
|
engines: {node: '>=10'}
|
|
|
|
|
|
|
|
|
|
flat-cache@4.0.1:
|
|
|
|
|
resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==}
|
|
|
|
|
engines: {node: '>=16'}
|
|
|
|
|
|
|
|
|
|
flatted@3.4.2:
|
|
|
|
|
resolution: {integrity: sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==}
|
|
|
|
|
|
|
|
|
|
formatly@0.3.0:
|
|
|
|
|
resolution: {integrity: sha512-9XNj/o4wrRFyhSMJOvsuyMwy8aUfBaZ1VrqHVfohyXf0Sw0e+yfKG+xZaY3arGCOMdwFsqObtzVOc1gU9KiT9w==}
|
|
|
|
|
engines: {node: '>=18.3.0'}
|
|
|
|
|
hasBin: true
|
|
|
|
|
|
|
|
|
|
formdata-polyfill@4.0.10:
|
|
|
|
|
resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==}
|
|
|
|
|
engines: {node: '>=12.20.0'}
|
|
|
|
|
|
|
|
|
|
fsevents@2.3.3:
|
|
|
|
|
resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
|
|
|
|
|
engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
|
|
|
|
|
os: [darwin]
|
|
|
|
|
|
|
|
|
|
gaxios@7.1.5:
|
|
|
|
|
resolution: {integrity: sha512-5FZy72Rh8LhtjmvDrKkI+lVhrsQrVKVsItxMoDm5mNQE+xR0WVIIs+jzPSJgBvKVsLi24fZhXJIsNI0bihDzFg==}
|
|
|
|
|
engines: {node: '>=18'}
|
|
|
|
|
|
|
|
|
|
gcp-metadata@8.1.2:
|
|
|
|
|
resolution: {integrity: sha512-zV/5HKTfCeKWnxG0Dmrw51hEWFGfcF2xiXqcA3+J90WDuP0SvoiSO5ORvcBsifmx/FoIjgQN3oNOGaQ5PhLFkg==}
|
|
|
|
|
engines: {node: '>=18'}
|
|
|
|
|
|
|
|
|
|
get-tsconfig@4.14.0:
|
|
|
|
|
resolution: {integrity: sha512-yTb+8DXzDREzgvYmh6s9vHsSVCHeC0G3PI5bEXNBHtmshPnO+S5O7qgLEOn0I5QvMy6kpZN8K1NKGyilLb93wA==}
|
|
|
|
|
|
|
|
|
|
get-tsconfig@5.0.0-beta.5:
|
|
|
|
|
resolution: {integrity: sha512-/6gFNr0N04nob252sTQxyFLi3eKFRqIg1I87YcqAMT1i6SQrSF6KujUEQrtrjMV0H/eejTCltLdDSTEMzHbnsQ==}
|
|
|
|
|
engines: {node: '>=20.20.0'}
|
|
|
|
|
|
|
|
|
|
glob-parent@6.0.2:
|
|
|
|
|
resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
|
|
|
|
|
engines: {node: '>=10.13.0'}
|
|
|
|
|
|
|
|
|
|
globrex@0.1.2:
|
|
|
|
|
resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==}
|
|
|
|
|
|
|
|
|
|
google-auth-library@10.7.0:
|
|
|
|
|
resolution: {integrity: sha512-QpTAbNJ36TliZLx3TTtahR8HG0hN9RllL1e3FymOvQSIKK8JmgV58H924ub2wa2DsS3ANjjP1Aw1N+Ramc8hqQ==}
|
|
|
|
|
engines: {node: '>=18'}
|
|
|
|
|
|
|
|
|
|
google-logging-utils@1.1.3:
|
|
|
|
|
resolution: {integrity: sha512-eAmLkjDjAFCVXg7A1unxHsLf961m6y17QFqXqAXGj/gVkKFrEICfStRfwUlGNfeCEjNRa32JEWOUTlYXPyyKvA==}
|
|
|
|
|
engines: {node: '>=14'}
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
hachure-fill@0.5.2:
|
|
|
|
|
resolution: {integrity: sha512-3GKBOn+m2LX9iq+JC1064cSFprJY4jL1jCXTcpnfER5HYE2l/4EfWSGzkPa/ZDBmYI0ZOEj5VHV/eKnPGkHuOg==}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
has-flag@4.0.0:
|
|
|
|
|
resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
|
|
|
|
|
engines: {node: '>=8'}
|
|
|
|
|
|
|
|
|
|
hookable@6.1.1:
|
|
|
|
|
resolution: {integrity: sha512-U9LYDy1CwhMCnprUfeAZWZGByVbhd54hwepegYTK7Pi5NvqEj63ifz5z+xukznehT7i6NIZRu89Ay1AZmRsLEQ==}
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
html-encoding-sniffer@6.0.0:
|
|
|
|
|
resolution: {integrity: sha512-CV9TW3Y3f8/wT0BRFc1/KAVQ3TUHiXmaAb6VW9vtiMFf7SLoMd1PdAc4W3KFOFETBJUb90KatHqlsZMWV+R9Gg==}
|
|
|
|
|
engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
html-escaper@2.0.2:
|
|
|
|
|
resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==}
|
|
|
|
|
|
|
|
|
|
http-proxy-agent@7.0.2:
|
|
|
|
|
resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==}
|
|
|
|
|
engines: {node: '>= 14'}
|
|
|
|
|
|
|
|
|
|
https-proxy-agent@7.0.6:
|
|
|
|
|
resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==}
|
|
|
|
|
engines: {node: '>= 14'}
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
iconv-lite@0.6.3:
|
|
|
|
|
resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==}
|
|
|
|
|
engines: {node: '>=0.10.0'}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
ignore@5.3.2:
|
|
|
|
|
resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==}
|
|
|
|
|
engines: {node: '>= 4'}
|
|
|
|
|
|
|
|
|
|
ignore@7.0.5:
|
|
|
|
|
resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==}
|
|
|
|
|
engines: {node: '>= 4'}
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
import-meta-resolve@4.2.0:
|
|
|
|
|
resolution: {integrity: sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
import-without-cache@0.4.0:
|
|
|
|
|
resolution: {integrity: sha512-NkJQA7oZ4YHQhd2+H3BoRFKF3d/XNsiKpHZCQEMH9pDX27hQQLsTyOocyRgaIVtf8gHX3Nt3LPkR4e5EdtPAGQ==}
|
|
|
|
|
engines: {node: ^22.18.0 || >=24.0.0}
|
|
|
|
|
|
|
|
|
|
imurmurhash@0.1.4:
|
|
|
|
|
resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
|
|
|
|
|
engines: {node: '>=0.8.19'}
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
internmap@1.0.1:
|
|
|
|
|
resolution: {integrity: sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==}
|
|
|
|
|
|
|
|
|
|
internmap@2.0.3:
|
|
|
|
|
resolution: {integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==}
|
|
|
|
|
engines: {node: '>=12'}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
is-extglob@2.1.1:
|
|
|
|
|
resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
|
|
|
|
|
engines: {node: '>=0.10.0'}
|
|
|
|
|
|
|
|
|
|
is-glob@4.0.3:
|
|
|
|
|
resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
|
|
|
|
|
engines: {node: '>=0.10.0'}
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
is-potential-custom-element-name@1.0.1:
|
|
|
|
|
resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
isexe@2.0.0:
|
|
|
|
|
resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
|
|
|
|
|
|
|
|
|
|
istanbul-lib-coverage@3.2.2:
|
|
|
|
|
resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==}
|
|
|
|
|
engines: {node: '>=8'}
|
|
|
|
|
|
|
|
|
|
istanbul-lib-report@3.0.1:
|
|
|
|
|
resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==}
|
|
|
|
|
engines: {node: '>=10'}
|
|
|
|
|
|
|
|
|
|
istanbul-reports@3.2.0:
|
|
|
|
|
resolution: {integrity: sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==}
|
|
|
|
|
engines: {node: '>=8'}
|
|
|
|
|
|
|
|
|
|
jiti@2.7.0:
|
|
|
|
|
resolution: {integrity: sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==}
|
|
|
|
|
hasBin: true
|
|
|
|
|
|
|
|
|
|
js-tokens@10.0.0:
|
|
|
|
|
resolution: {integrity: sha512-lM/UBzQmfJRo9ABXbPWemivdCW8V2G8FHaHdypQaIy523snUjog0W71ayWXTjiR+ixeMyVHN2XcpnTd/liPg/Q==}
|
|
|
|
|
|
|
|
|
|
js-tokens@4.0.0:
|
|
|
|
|
resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
|
|
|
|
|
|
|
|
|
|
js-yaml@4.2.0:
|
|
|
|
|
resolution: {integrity: sha512-ePWsvanv0DWuDRsW8dnt+R4jQ31SCRCQ7hhNcPXZPsoBZiemuZNYGf7adZdqX2D86j6rvKp3RpCxVTSb8WQlOw==}
|
|
|
|
|
hasBin: true
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
jsdom@29.1.1:
|
|
|
|
|
resolution: {integrity: sha512-ECi4Fi2f7BdJtUKTflYRTiaMxIB0O6zfR1fX0GXpUrf6flp8QIYn1UT20YQqdSOfk2dfkCwS8LAFoJDEppNK5Q==}
|
|
|
|
|
engines: {node: ^20.19.0 || ^22.13.0 || >=24.0.0}
|
|
|
|
|
peerDependencies:
|
|
|
|
|
canvas: ^3.0.0
|
|
|
|
|
peerDependenciesMeta:
|
|
|
|
|
canvas:
|
|
|
|
|
optional: true
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
jsesc@3.1.0:
|
|
|
|
|
resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==}
|
|
|
|
|
engines: {node: '>=6'}
|
|
|
|
|
hasBin: true
|
|
|
|
|
|
|
|
|
|
json-bigint@1.0.0:
|
|
|
|
|
resolution: {integrity: sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==}
|
|
|
|
|
|
|
|
|
|
json-buffer@3.0.1:
|
|
|
|
|
resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
|
|
|
|
|
|
|
|
|
|
json-schema-to-ts@3.1.1:
|
|
|
|
|
resolution: {integrity: sha512-+DWg8jCJG2TEnpy7kOm/7/AxaYoaRbjVB4LFZLySZlWn8exGs3A4OLJR966cVvU26N7X9TWxl+Jsw7dzAqKT6g==}
|
|
|
|
|
engines: {node: '>=16'}
|
|
|
|
|
|
|
|
|
|
json-schema-traverse@0.4.1:
|
|
|
|
|
resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
|
|
|
|
|
|
|
|
|
|
json-stable-stringify-without-jsonify@1.0.1:
|
|
|
|
|
resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
|
|
|
|
|
|
|
|
|
|
jwa@2.0.1:
|
|
|
|
|
resolution: {integrity: sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==}
|
|
|
|
|
|
|
|
|
|
jws@4.0.1:
|
|
|
|
|
resolution: {integrity: sha512-EKI/M/yqPncGUUh44xz0PxSidXFr/+r0pA70+gIYhjv+et7yxM+s29Y+VGDkovRofQem0fs7Uvf4+YmAdyRduA==}
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
katex@0.16.47:
|
|
|
|
|
resolution: {integrity: sha512-Eeo8Ys1doU1z+x8AZsPpQu+p/QcZBI5PeOo7QGQdy2x2m0MU/hYagBbGOmXwr5KVbEfVuWv9LpnQWeehogurjg==}
|
|
|
|
|
hasBin: true
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
keyv@4.5.4:
|
|
|
|
|
resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
khroma@2.1.0:
|
|
|
|
|
resolution: {integrity: sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw==}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
knip@6.16.1:
|
|
|
|
|
resolution: {integrity: sha512-TKMn1rxgH6h9vXR9Y0B+Cq7AdPTr9EI02IwoT65NzqYUkvoDQAaJ/aPybiFpAhZ1px6cNYYwXf86iHkBgzCo9w==}
|
|
|
|
|
engines: {node: ^20.19.0 || >=22.12.0}
|
|
|
|
|
hasBin: true
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
layout-base@1.0.2:
|
|
|
|
|
resolution: {integrity: sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg==}
|
|
|
|
|
|
|
|
|
|
layout-base@2.0.1:
|
|
|
|
|
resolution: {integrity: sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg==}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
lefthook-darwin-arm64@2.1.9:
|
|
|
|
|
resolution: {integrity: sha512-119HryNcvr4nqn0wUIrNPgpMEPn9yMQzEcW/lezRsnb56PCJriJB92+MCySPVcWDxJnZef7o0T3jdnPNiSH7Qg==}
|
|
|
|
|
cpu: [arm64]
|
|
|
|
|
os: [darwin]
|
|
|
|
|
|
|
|
|
|
lefthook-darwin-x64@2.1.9:
|
|
|
|
|
resolution: {integrity: sha512-dwo5Tke2XcQCM56DGHgFKBfRbJIL6xs2wZ0zG1TUVZgl4t4mQUt6LiZ4V/ZQfYHTZF9qywvXoIlR5N35qOaiVQ==}
|
|
|
|
|
cpu: [x64]
|
|
|
|
|
os: [darwin]
|
|
|
|
|
|
|
|
|
|
lefthook-freebsd-arm64@2.1.9:
|
|
|
|
|
resolution: {integrity: sha512-+09PVap6nl6xsaHch5JLtq7WvIR++U1Q2MzA2ai0M4uB/VP3AqrvKqHw6+9hjyKnIH+HHL83uqi77EAY+LaxLA==}
|
|
|
|
|
cpu: [arm64]
|
|
|
|
|
os: [freebsd]
|
|
|
|
|
|
|
|
|
|
lefthook-freebsd-x64@2.1.9:
|
|
|
|
|
resolution: {integrity: sha512-8XresjKIYpkE9ARgCtBEZgJZxAU3T4MIqzj4zNy15XRT59I1Us+QdqXTNm+pkZ41Yd2X/nxs2Pkvbq3NWWlIGw==}
|
|
|
|
|
cpu: [x64]
|
|
|
|
|
os: [freebsd]
|
|
|
|
|
|
|
|
|
|
lefthook-linux-arm64@2.1.9:
|
|
|
|
|
resolution: {integrity: sha512-1oNIQfwrPe6rgU2KcDM3aF6+hpZDCKx1TmawQKpXUY5gVsbZ7MqX0Sk/1lnnWxqPm+kQQ5f6J2dpFWd+4xH8jg==}
|
|
|
|
|
cpu: [arm64]
|
|
|
|
|
os: [linux]
|
|
|
|
|
|
|
|
|
|
lefthook-linux-x64@2.1.9:
|
|
|
|
|
resolution: {integrity: sha512-fT+7Q+BJyGp+CslFQkNXmdFRgyVXsPHPi9NAsDX0a6QOyNnoORByAsvx6zeAKuF5rL3BBgNfho1/v2RuGxGy9w==}
|
|
|
|
|
cpu: [x64]
|
|
|
|
|
os: [linux]
|
|
|
|
|
|
|
|
|
|
lefthook-openbsd-arm64@2.1.9:
|
|
|
|
|
resolution: {integrity: sha512-4bVuafBk3dddVNo0+3hMbjcJs4mqYAstxpPMmX2ufkudSTYFNIhWoqwuGVQV/SS/xdcOKJAldW4qayAzed2ysw==}
|
|
|
|
|
cpu: [arm64]
|
|
|
|
|
os: [openbsd]
|
|
|
|
|
|
|
|
|
|
lefthook-openbsd-x64@2.1.9:
|
|
|
|
|
resolution: {integrity: sha512-PmPoMmLP/wQQWcQ9u2YH86bTZ3UCfBsxuEmVTEyPU2U8R1qSTp5r/Gs3G8cN5Mxo91XB9oBERtF1n+xD3W6aVA==}
|
|
|
|
|
cpu: [x64]
|
|
|
|
|
os: [openbsd]
|
|
|
|
|
|
|
|
|
|
lefthook-windows-arm64@2.1.9:
|
|
|
|
|
resolution: {integrity: sha512-KphfkBKmwBnmolyrdhIl3lrBaOyTcCgXBT2AB/9OHnEXhOLvv5uTCUkrD4YRAxXPtFKq6UvnapIeoL3GZq0bdA==}
|
|
|
|
|
cpu: [arm64]
|
|
|
|
|
os: [win32]
|
|
|
|
|
|
|
|
|
|
lefthook-windows-x64@2.1.9:
|
|
|
|
|
resolution: {integrity: sha512-2qlUtkJHZ3MyUxgV5XTEmcrIoNZA07iwaquoswAcqv/1MeBFXlD+O+koFRfrzWng2O5WYEbpJnd8tvaYnV8fTA==}
|
|
|
|
|
cpu: [x64]
|
|
|
|
|
os: [win32]
|
|
|
|
|
|
|
|
|
|
lefthook@2.1.9:
|
|
|
|
|
resolution: {integrity: sha512-bwDaIOViTktE8kJLf9jP0p+H2/RDTlFFlc43Am2YgUsX22hI6Sq4RbzsrecwzY5y+MHTipOH7WsmWSEniePHWQ==}
|
|
|
|
|
hasBin: true
|
|
|
|
|
|
|
|
|
|
levn@0.4.1:
|
|
|
|
|
resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
|
|
|
|
|
engines: {node: '>= 0.8.0'}
|
|
|
|
|
|
|
|
|
|
lightningcss-android-arm64@1.32.0:
|
|
|
|
|
resolution: {integrity: sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==}
|
|
|
|
|
engines: {node: '>= 12.0.0'}
|
|
|
|
|
cpu: [arm64]
|
|
|
|
|
os: [android]
|
|
|
|
|
|
|
|
|
|
lightningcss-darwin-arm64@1.32.0:
|
|
|
|
|
resolution: {integrity: sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==}
|
|
|
|
|
engines: {node: '>= 12.0.0'}
|
|
|
|
|
cpu: [arm64]
|
|
|
|
|
os: [darwin]
|
|
|
|
|
|
|
|
|
|
lightningcss-darwin-x64@1.32.0:
|
|
|
|
|
resolution: {integrity: sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==}
|
|
|
|
|
engines: {node: '>= 12.0.0'}
|
|
|
|
|
cpu: [x64]
|
|
|
|
|
os: [darwin]
|
|
|
|
|
|
|
|
|
|
lightningcss-freebsd-x64@1.32.0:
|
|
|
|
|
resolution: {integrity: sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==}
|
|
|
|
|
engines: {node: '>= 12.0.0'}
|
|
|
|
|
cpu: [x64]
|
|
|
|
|
os: [freebsd]
|
|
|
|
|
|
|
|
|
|
lightningcss-linux-arm-gnueabihf@1.32.0:
|
|
|
|
|
resolution: {integrity: sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==}
|
|
|
|
|
engines: {node: '>= 12.0.0'}
|
|
|
|
|
cpu: [arm]
|
|
|
|
|
os: [linux]
|
|
|
|
|
|
|
|
|
|
lightningcss-linux-arm64-gnu@1.32.0:
|
|
|
|
|
resolution: {integrity: sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==}
|
|
|
|
|
engines: {node: '>= 12.0.0'}
|
|
|
|
|
cpu: [arm64]
|
|
|
|
|
os: [linux]
|
|
|
|
|
libc: [glibc]
|
|
|
|
|
|
|
|
|
|
lightningcss-linux-arm64-musl@1.32.0:
|
|
|
|
|
resolution: {integrity: sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==}
|
|
|
|
|
engines: {node: '>= 12.0.0'}
|
|
|
|
|
cpu: [arm64]
|
|
|
|
|
os: [linux]
|
|
|
|
|
libc: [musl]
|
|
|
|
|
|
|
|
|
|
lightningcss-linux-x64-gnu@1.32.0:
|
|
|
|
|
resolution: {integrity: sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==}
|
|
|
|
|
engines: {node: '>= 12.0.0'}
|
|
|
|
|
cpu: [x64]
|
|
|
|
|
os: [linux]
|
|
|
|
|
libc: [glibc]
|
|
|
|
|
|
|
|
|
|
lightningcss-linux-x64-musl@1.32.0:
|
|
|
|
|
resolution: {integrity: sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==}
|
|
|
|
|
engines: {node: '>= 12.0.0'}
|
|
|
|
|
cpu: [x64]
|
|
|
|
|
os: [linux]
|
|
|
|
|
libc: [musl]
|
|
|
|
|
|
|
|
|
|
lightningcss-win32-arm64-msvc@1.32.0:
|
|
|
|
|
resolution: {integrity: sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==}
|
|
|
|
|
engines: {node: '>= 12.0.0'}
|
|
|
|
|
cpu: [arm64]
|
|
|
|
|
os: [win32]
|
|
|
|
|
|
|
|
|
|
lightningcss-win32-x64-msvc@1.32.0:
|
|
|
|
|
resolution: {integrity: sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==}
|
|
|
|
|
engines: {node: '>= 12.0.0'}
|
|
|
|
|
cpu: [x64]
|
|
|
|
|
os: [win32]
|
|
|
|
|
|
|
|
|
|
lightningcss@1.32.0:
|
|
|
|
|
resolution: {integrity: sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==}
|
|
|
|
|
engines: {node: '>= 12.0.0'}
|
|
|
|
|
|
|
|
|
|
locate-path@6.0.0:
|
|
|
|
|
resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
|
|
|
|
|
engines: {node: '>=10'}
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
lodash-es@4.18.1:
|
|
|
|
|
resolution: {integrity: sha512-J8xewKD/Gk22OZbhpOVSwcs60zhd95ESDwezOFuA3/099925PdHJ7OFHNTGtajL3AlZkykD32HykiMo+BIBI8A==}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
long@5.3.2:
|
|
|
|
|
resolution: {integrity: sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==}
|
|
|
|
|
|
refactor: detect md hard-wraps via mdast AST, not regex
Per review feedback (use a real markdown parser with an AST linked to
source positions), rewrite verify-md-wrap to parse each file with
mdast-util-from-markdown (the CommonMark parser behind remark) + the GFM
extension, then flag any `paragraph` node whose source span covers more
than one line.
Why a parser over the hand-rolled line scanner:
- It is a checker, not a formatter — it reports and never rewrites, so
zero cosmetic churn (no emphasis-marker or table-delimiter
normalization, which is why Prettier was rejected for this).
- The AST owns every structural exemption (fenced code of any fence
length, tables, lists, blockquotes, HTML, headings, reference defs),
fixing both bugs the regex version had: it now catches wrapped
list-item / blockquote prose (a `paragraph` inside those nodes) and no
longer false-positives on a longer ```` fence wrapping an inner ```.
Also unwrap two pre-existing hard-wrapped blockquotes (architecture.md,
adding-a-tool.md) that the stricter AST check correctly surfaced.
2026-06-16 23:35:33 +08:00
|
|
|
longest-streak@3.1.0:
|
|
|
|
|
resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==}
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
lru-cache@11.5.1:
|
|
|
|
|
resolution: {integrity: sha512-RPimw/7aMdv2oqRrxKwvZXcPfwBrn/JZ2xYcY9Hus/6LaS3VOAKVWKWgNLCFSiOm1ESXinjsDlidVU7JlnCN2A==}
|
|
|
|
|
engines: {node: 20 || >=22}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
magic-string@0.30.21:
|
|
|
|
|
resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==}
|
|
|
|
|
|
|
|
|
|
magicast@0.5.3:
|
|
|
|
|
resolution: {integrity: sha512-pVKE4UdSQ7DvHzivsCIFx2BJn1mHG6KsyrFcaxFx6tONdneEuThrDx0Cj3AMg58KyN4pzYT+LHOotxDQDjNvkw==}
|
|
|
|
|
|
|
|
|
|
make-dir@4.0.0:
|
|
|
|
|
resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==}
|
|
|
|
|
engines: {node: '>=10'}
|
|
|
|
|
|
refactor: detect md hard-wraps via mdast AST, not regex
Per review feedback (use a real markdown parser with an AST linked to
source positions), rewrite verify-md-wrap to parse each file with
mdast-util-from-markdown (the CommonMark parser behind remark) + the GFM
extension, then flag any `paragraph` node whose source span covers more
than one line.
Why a parser over the hand-rolled line scanner:
- It is a checker, not a formatter — it reports and never rewrites, so
zero cosmetic churn (no emphasis-marker or table-delimiter
normalization, which is why Prettier was rejected for this).
- The AST owns every structural exemption (fenced code of any fence
length, tables, lists, blockquotes, HTML, headings, reference defs),
fixing both bugs the regex version had: it now catches wrapped
list-item / blockquote prose (a `paragraph` inside those nodes) and no
longer false-positives on a longer ```` fence wrapping an inner ```.
Also unwrap two pre-existing hard-wrapped blockquotes (architecture.md,
adding-a-tool.md) that the stricter AST check correctly surfaced.
2026-06-16 23:35:33 +08:00
|
|
|
markdown-table@3.0.4:
|
|
|
|
|
resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==}
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
marked@16.4.2:
|
|
|
|
|
resolution: {integrity: sha512-TI3V8YYWvkVf3KJe1dRkpnjs68JUPyEa5vjKrp1XEEJUAOaQc+Qj+L1qWbPd0SJuAdQkFU0h73sXXqwDYxsiDA==}
|
|
|
|
|
engines: {node: '>= 20'}
|
|
|
|
|
hasBin: true
|
|
|
|
|
|
refactor: detect md hard-wraps via mdast AST, not regex
Per review feedback (use a real markdown parser with an AST linked to
source positions), rewrite verify-md-wrap to parse each file with
mdast-util-from-markdown (the CommonMark parser behind remark) + the GFM
extension, then flag any `paragraph` node whose source span covers more
than one line.
Why a parser over the hand-rolled line scanner:
- It is a checker, not a formatter — it reports and never rewrites, so
zero cosmetic churn (no emphasis-marker or table-delimiter
normalization, which is why Prettier was rejected for this).
- The AST owns every structural exemption (fenced code of any fence
length, tables, lists, blockquotes, HTML, headings, reference defs),
fixing both bugs the regex version had: it now catches wrapped
list-item / blockquote prose (a `paragraph` inside those nodes) and no
longer false-positives on a longer ```` fence wrapping an inner ```.
Also unwrap two pre-existing hard-wrapped blockquotes (architecture.md,
adding-a-tool.md) that the stricter AST check correctly surfaced.
2026-06-16 23:35:33 +08:00
|
|
|
mdast-util-find-and-replace@3.0.2:
|
|
|
|
|
resolution: {integrity: sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==}
|
|
|
|
|
|
|
|
|
|
mdast-util-from-markdown@2.0.3:
|
|
|
|
|
resolution: {integrity: sha512-W4mAWTvSlKvf8L6J+VN9yLSqQ9AOAAvHuoDAmPkz4dHf553m5gVj2ejadHJhoJmcmxEnOv6Pa8XJhpxE93kb8Q==}
|
|
|
|
|
|
|
|
|
|
mdast-util-gfm-autolink-literal@2.0.1:
|
|
|
|
|
resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==}
|
|
|
|
|
|
|
|
|
|
mdast-util-gfm-footnote@2.1.0:
|
|
|
|
|
resolution: {integrity: sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==}
|
|
|
|
|
|
|
|
|
|
mdast-util-gfm-strikethrough@2.0.0:
|
|
|
|
|
resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==}
|
|
|
|
|
|
|
|
|
|
mdast-util-gfm-table@2.0.0:
|
|
|
|
|
resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==}
|
|
|
|
|
|
|
|
|
|
mdast-util-gfm-task-list-item@2.0.0:
|
|
|
|
|
resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==}
|
|
|
|
|
|
|
|
|
|
mdast-util-gfm@3.1.0:
|
|
|
|
|
resolution: {integrity: sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==}
|
|
|
|
|
|
|
|
|
|
mdast-util-phrasing@4.1.0:
|
|
|
|
|
resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==}
|
|
|
|
|
|
|
|
|
|
mdast-util-to-markdown@2.1.2:
|
|
|
|
|
resolution: {integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==}
|
|
|
|
|
|
|
|
|
|
mdast-util-to-string@4.0.0:
|
|
|
|
|
resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==}
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
mdn-data@2.27.1:
|
|
|
|
|
resolution: {integrity: sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==}
|
|
|
|
|
|
|
|
|
|
mermaid@11.16.0:
|
|
|
|
|
resolution: {integrity: sha512-Zvm3kbstgdpvIJPPItlL7fppIZ3kibvc1oZIGxdvk9t6UFz6flv+Jw7FtRGKwfcI8OckmH04LqG6LlS6X4B1pA==}
|
|
|
|
|
|
refactor: detect md hard-wraps via mdast AST, not regex
Per review feedback (use a real markdown parser with an AST linked to
source positions), rewrite verify-md-wrap to parse each file with
mdast-util-from-markdown (the CommonMark parser behind remark) + the GFM
extension, then flag any `paragraph` node whose source span covers more
than one line.
Why a parser over the hand-rolled line scanner:
- It is a checker, not a formatter — it reports and never rewrites, so
zero cosmetic churn (no emphasis-marker or table-delimiter
normalization, which is why Prettier was rejected for this).
- The AST owns every structural exemption (fenced code of any fence
length, tables, lists, blockquotes, HTML, headings, reference defs),
fixing both bugs the regex version had: it now catches wrapped
list-item / blockquote prose (a `paragraph` inside those nodes) and no
longer false-positives on a longer ```` fence wrapping an inner ```.
Also unwrap two pre-existing hard-wrapped blockquotes (architecture.md,
adding-a-tool.md) that the stricter AST check correctly surfaced.
2026-06-16 23:35:33 +08:00
|
|
|
micromark-core-commonmark@2.0.3:
|
|
|
|
|
resolution: {integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==}
|
|
|
|
|
|
|
|
|
|
micromark-extension-gfm-autolink-literal@2.1.0:
|
|
|
|
|
resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==}
|
|
|
|
|
|
|
|
|
|
micromark-extension-gfm-footnote@2.1.0:
|
|
|
|
|
resolution: {integrity: sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==}
|
|
|
|
|
|
|
|
|
|
micromark-extension-gfm-strikethrough@2.1.0:
|
|
|
|
|
resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==}
|
|
|
|
|
|
|
|
|
|
micromark-extension-gfm-table@2.1.1:
|
|
|
|
|
resolution: {integrity: sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==}
|
|
|
|
|
|
|
|
|
|
micromark-extension-gfm-tagfilter@2.0.0:
|
|
|
|
|
resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==}
|
|
|
|
|
|
|
|
|
|
micromark-extension-gfm-task-list-item@2.1.0:
|
|
|
|
|
resolution: {integrity: sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==}
|
|
|
|
|
|
|
|
|
|
micromark-extension-gfm@3.0.0:
|
|
|
|
|
resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==}
|
|
|
|
|
|
|
|
|
|
micromark-factory-destination@2.0.1:
|
|
|
|
|
resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==}
|
|
|
|
|
|
|
|
|
|
micromark-factory-label@2.0.1:
|
|
|
|
|
resolution: {integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==}
|
|
|
|
|
|
|
|
|
|
micromark-factory-space@2.0.1:
|
|
|
|
|
resolution: {integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==}
|
|
|
|
|
|
|
|
|
|
micromark-factory-title@2.0.1:
|
|
|
|
|
resolution: {integrity: sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==}
|
|
|
|
|
|
|
|
|
|
micromark-factory-whitespace@2.0.1:
|
|
|
|
|
resolution: {integrity: sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==}
|
|
|
|
|
|
|
|
|
|
micromark-util-character@2.1.1:
|
|
|
|
|
resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==}
|
|
|
|
|
|
|
|
|
|
micromark-util-chunked@2.0.1:
|
|
|
|
|
resolution: {integrity: sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==}
|
|
|
|
|
|
|
|
|
|
micromark-util-classify-character@2.0.1:
|
|
|
|
|
resolution: {integrity: sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==}
|
|
|
|
|
|
|
|
|
|
micromark-util-combine-extensions@2.0.1:
|
|
|
|
|
resolution: {integrity: sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==}
|
|
|
|
|
|
|
|
|
|
micromark-util-decode-numeric-character-reference@2.0.2:
|
|
|
|
|
resolution: {integrity: sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==}
|
|
|
|
|
|
|
|
|
|
micromark-util-decode-string@2.0.1:
|
|
|
|
|
resolution: {integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==}
|
|
|
|
|
|
|
|
|
|
micromark-util-encode@2.0.1:
|
|
|
|
|
resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==}
|
|
|
|
|
|
|
|
|
|
micromark-util-html-tag-name@2.0.1:
|
|
|
|
|
resolution: {integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==}
|
|
|
|
|
|
|
|
|
|
micromark-util-normalize-identifier@2.0.1:
|
|
|
|
|
resolution: {integrity: sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==}
|
|
|
|
|
|
|
|
|
|
micromark-util-resolve-all@2.0.1:
|
|
|
|
|
resolution: {integrity: sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==}
|
|
|
|
|
|
|
|
|
|
micromark-util-sanitize-uri@2.0.1:
|
|
|
|
|
resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==}
|
|
|
|
|
|
|
|
|
|
micromark-util-subtokenize@2.1.0:
|
|
|
|
|
resolution: {integrity: sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==}
|
|
|
|
|
|
|
|
|
|
micromark-util-symbol@2.0.1:
|
|
|
|
|
resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==}
|
|
|
|
|
|
|
|
|
|
micromark-util-types@2.0.2:
|
|
|
|
|
resolution: {integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==}
|
|
|
|
|
|
|
|
|
|
micromark@4.0.2:
|
|
|
|
|
resolution: {integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
minimatch@10.2.5:
|
|
|
|
|
resolution: {integrity: sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==}
|
|
|
|
|
engines: {node: 18 || 20 || >=22}
|
|
|
|
|
|
|
|
|
|
mri@1.2.0:
|
|
|
|
|
resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==}
|
|
|
|
|
engines: {node: '>=4'}
|
|
|
|
|
|
|
|
|
|
ms@2.1.3:
|
|
|
|
|
resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
|
|
|
|
|
|
|
|
|
|
nanoid@3.3.12:
|
|
|
|
|
resolution: {integrity: sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==}
|
|
|
|
|
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
|
|
|
|
|
hasBin: true
|
|
|
|
|
|
|
|
|
|
natural-compare@1.4.0:
|
|
|
|
|
resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
|
|
|
|
|
|
|
|
|
|
node-domexception@1.0.0:
|
|
|
|
|
resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==}
|
|
|
|
|
engines: {node: '>=10.5.0'}
|
|
|
|
|
deprecated: Use your platform's native DOMException instead
|
|
|
|
|
|
|
|
|
|
node-fetch@3.3.2:
|
|
|
|
|
resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==}
|
|
|
|
|
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
|
|
|
|
|
|
|
|
|
|
obug@2.1.3:
|
|
|
|
|
resolution: {integrity: sha512-9miFgM2OFba7hB+pRgvtV84pYTBaoTHohvmIgiRt6dRIzbwEOIaNaP+dIlGs2fNFoB0SeISs0Jz5WFVRid6Xyg==}
|
|
|
|
|
engines: {node: '>=12.20.0'}
|
|
|
|
|
|
|
|
|
|
openai@6.26.0:
|
|
|
|
|
resolution: {integrity: sha512-zd23dbWTjiJ6sSAX6s0HrCZi41JwTA1bQVs0wLQPZ2/5o2gxOJA5wh7yOAUgwYybfhDXyhwlpeQf7Mlgx8EOCA==}
|
|
|
|
|
hasBin: true
|
|
|
|
|
peerDependencies:
|
|
|
|
|
ws: ^8.18.0
|
|
|
|
|
zod: ^3.25 || ^4.0
|
|
|
|
|
peerDependenciesMeta:
|
|
|
|
|
ws:
|
|
|
|
|
optional: true
|
|
|
|
|
zod:
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
optionator@0.9.4:
|
|
|
|
|
resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==}
|
|
|
|
|
engines: {node: '>= 0.8.0'}
|
|
|
|
|
|
|
|
|
|
oxc-parser@0.133.0:
|
|
|
|
|
resolution: {integrity: sha512-661RSx+ZcjBmjBYid+Fpp/2F5EbtildpeoZh5HdgnGs+jZ03nqQEQW8yGkt4BGyOC3OMPDQQRl8M5kqD2/g6jw==}
|
|
|
|
|
engines: {node: ^20.19.0 || >=22.12.0}
|
|
|
|
|
|
|
|
|
|
oxc-resolver@11.20.0:
|
|
|
|
|
resolution: {integrity: sha512-CblytBiV/a/ZXY34dsVU2NxhIOxMXst8CvDCtyBelVITgd7PLrKzbEbA6oKLdPjvDKDzCiW48qzmzZ+mYaqn+g==}
|
|
|
|
|
|
|
|
|
|
p-limit@3.1.0:
|
|
|
|
|
resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
|
|
|
|
|
engines: {node: '>=10'}
|
|
|
|
|
|
|
|
|
|
p-locate@5.0.0:
|
|
|
|
|
resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
|
|
|
|
|
engines: {node: '>=10'}
|
|
|
|
|
|
|
|
|
|
p-retry@4.6.2:
|
|
|
|
|
resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==}
|
|
|
|
|
engines: {node: '>=8'}
|
|
|
|
|
|
|
|
|
|
package-manager-detector@1.6.0:
|
|
|
|
|
resolution: {integrity: sha512-61A5ThoTiDG/C8s8UMZwSorAGwMJ0ERVGj2OjoW5pAalsNOg15+iQiPzrLJ4jhZ1HJzmC2PIHT2oEiH3R5fzNA==}
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
parse5@8.0.1:
|
|
|
|
|
resolution: {integrity: sha512-z1e/HMG90obSGeidlli3hj7cbocou0/wa5HacvI3ASx34PecNjNQeaHNo5WIZpWofN9kgkqV1q5YvXe3F0FoPw==}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
partial-json@0.1.7:
|
|
|
|
|
resolution: {integrity: sha512-Njv/59hHaokb/hRUjce3Hdv12wd60MtM9Z5Olmn+nehe0QDAsRtRbJPvJ0Z91TusF0SuZRIvnM+S4l6EIP8leA==}
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
path-data-parser@0.1.0:
|
|
|
|
|
resolution: {integrity: sha512-NOnmBpt5Y2RWbuv0LMzsayp3lVylAHLPUTut412ZA3l+C4uw4ZVkQbjShYCQ8TCpUMdPapr4YjUqLYD6v68j+w==}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
path-exists@4.0.0:
|
|
|
|
|
resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
|
|
|
|
|
engines: {node: '>=8'}
|
|
|
|
|
|
|
|
|
|
path-expression-matcher@1.5.0:
|
|
|
|
|
resolution: {integrity: sha512-cbrerZV+6rvdQrrD+iGMcZFEiiSrbv9Tfdkvnusy6y0x0GKBXREFg/Y65GhIfm0tnLntThhzCnfKwp1WRjeCyQ==}
|
|
|
|
|
engines: {node: '>=14.0.0'}
|
|
|
|
|
|
|
|
|
|
path-key@3.1.1:
|
|
|
|
|
resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
|
|
|
|
|
engines: {node: '>=8'}
|
|
|
|
|
|
|
|
|
|
pathe@2.0.3:
|
|
|
|
|
resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==}
|
|
|
|
|
|
|
|
|
|
picocolors@1.1.1:
|
|
|
|
|
resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
|
|
|
|
|
|
|
|
|
|
picomatch@4.0.4:
|
|
|
|
|
resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==}
|
|
|
|
|
engines: {node: '>=12'}
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
points-on-curve@0.2.0:
|
|
|
|
|
resolution: {integrity: sha512-0mYKnYYe9ZcqMCWhUjItv/oHjvgEsfKvnUTg8sAtnHr3GVy7rGkXCb6d5cSyqrWqL4k81b9CPg3urd+T7aop3A==}
|
|
|
|
|
|
|
|
|
|
points-on-path@0.2.1:
|
|
|
|
|
resolution: {integrity: sha512-25ClnWWuw7JbWZcgqY/gJ4FQWadKxGWk+3kR/7kD0tCaDtPPMj7oHu2ToLaVhfpnHrZzYby2w6tUA0eOIuUg8g==}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
postcss@8.5.15:
|
|
|
|
|
resolution: {integrity: sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==}
|
|
|
|
|
engines: {node: ^10 || ^12 || >=14}
|
|
|
|
|
|
|
|
|
|
prelude-ls@1.2.1:
|
|
|
|
|
resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
|
|
|
|
|
engines: {node: '>= 0.8.0'}
|
|
|
|
|
|
|
|
|
|
protobufjs@7.6.4:
|
|
|
|
|
resolution: {integrity: sha512-RJJPTTpvFfHcWLkIa2JFWK4XvtSzS0yEWDmunqHXli1h3JlkbcQZXDZdcWxv+JK3Xsl5/UFDPZ0iGm7DAengYw==}
|
|
|
|
|
engines: {node: '>=12.0.0'}
|
|
|
|
|
|
|
|
|
|
publint@0.3.21:
|
|
|
|
|
resolution: {integrity: sha512-OqejcnMV6E9zel2oCrUOJEiiFkGiAAni0A6ibfQNh1k9Gu5z4F+Yso8lllam7AzmV6Do0vp7u3UpZNRBwuXaHQ==}
|
|
|
|
|
engines: {node: '>=18'}
|
|
|
|
|
hasBin: true
|
|
|
|
|
|
|
|
|
|
punycode@2.3.1:
|
|
|
|
|
resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
|
|
|
|
|
engines: {node: '>=6'}
|
|
|
|
|
|
|
|
|
|
pure-rand@8.4.0:
|
|
|
|
|
resolution: {integrity: sha512-IoM8YF/jY0hiugFo/wOWqfmarlE6J0wc6fDK1PhftMk7MGhVZl88sZimmqBBFomLOCSmcCCpsfj7wXASCpvK9A==}
|
|
|
|
|
|
|
|
|
|
quansync@1.0.0:
|
|
|
|
|
resolution: {integrity: sha512-5xZacEEufv3HSTPQuchrvV6soaiACMFnq1H8wkVioctoH3TRha9Sz66lOxRwPK/qZj7HPiSveih9yAyh98gvqA==}
|
|
|
|
|
|
|
|
|
|
readdirp@4.1.2:
|
|
|
|
|
resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==}
|
|
|
|
|
engines: {node: '>= 14.18.0'}
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
require-from-string@2.0.2:
|
|
|
|
|
resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==}
|
|
|
|
|
engines: {node: '>=0.10.0'}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
resolve-pkg-maps@1.0.0:
|
|
|
|
|
resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
|
|
|
|
|
|
|
|
|
|
retry@0.13.1:
|
|
|
|
|
resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==}
|
|
|
|
|
engines: {node: '>= 4'}
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
robust-predicates@3.0.3:
|
|
|
|
|
resolution: {integrity: sha512-NS3levdsRIUOmiJ8FZWCP7LG3QpJyrs/TE0Zpf1yvZu8cAJJ6QMW92H1c7kWpdIHo8RvmLxN/o2JXTKHp74lUA==}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
rolldown-plugin-dts@0.25.2:
|
|
|
|
|
resolution: {integrity: sha512-nMhN/R+vmR8GM45ZW1FWMSjRTSDDn/6w4GTf8RNrEFCBdl8B1kySWrU1ixPtbwzXoRlcO+R/S88VgXuJQwfdDg==}
|
|
|
|
|
engines: {node: ^22.18.0 || >=24.0.0}
|
|
|
|
|
peerDependencies:
|
|
|
|
|
'@ts-macro/tsc': ^0.3.6
|
|
|
|
|
'@typescript/native-preview': '>=7.0.0-dev.20260325.1'
|
|
|
|
|
rolldown: ^1.0.0
|
|
|
|
|
typescript: ^5.0.0 || ^6.0.0
|
|
|
|
|
vue-tsc: ~3.2.0
|
|
|
|
|
peerDependenciesMeta:
|
|
|
|
|
'@ts-macro/tsc':
|
|
|
|
|
optional: true
|
|
|
|
|
'@typescript/native-preview':
|
|
|
|
|
optional: true
|
|
|
|
|
typescript:
|
|
|
|
|
optional: true
|
|
|
|
|
vue-tsc:
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
rolldown@1.0.3:
|
|
|
|
|
resolution: {integrity: sha512-i00lAJ2ks1BYr7rjNjKC7BcqAS7nVfiT3QX1SI5aY+AFHblCmaUf9OE9dbdzDvW6dJxbi2ZCZiy9v3CcwOiX3g==}
|
|
|
|
|
engines: {node: ^20.19.0 || >=22.12.0}
|
|
|
|
|
hasBin: true
|
|
|
|
|
|
|
|
|
|
rolldown@1.1.1:
|
|
|
|
|
resolution: {integrity: sha512-IN750c0p+s3jqJIsFLRZrQazmbAB1kkQDTtQjSt/gbS2ywLhlv4R5Shazer0FZKmuo/BsO3/w2UoYnUjuOZqHg==}
|
|
|
|
|
engines: {node: ^20.19.0 || >=22.12.0}
|
|
|
|
|
hasBin: true
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
roughjs@4.6.6:
|
|
|
|
|
resolution: {integrity: sha512-ZUz/69+SYpFN/g/lUlo2FXcIjRkSu3nDarreVdGGndHEBJ6cXPdKguS8JGxwj5HA5xIbVKSmLgr5b3AWxtRfvQ==}
|
|
|
|
|
|
|
|
|
|
rw@1.3.3:
|
|
|
|
|
resolution: {integrity: sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
sade@1.8.1:
|
|
|
|
|
resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==}
|
|
|
|
|
engines: {node: '>=6'}
|
|
|
|
|
|
|
|
|
|
safe-buffer@5.2.1:
|
|
|
|
|
resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
safer-buffer@2.1.2:
|
|
|
|
|
resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
|
|
|
|
|
|
|
|
|
|
saxes@6.0.0:
|
|
|
|
|
resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==}
|
|
|
|
|
engines: {node: '>=v12.22.7'}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
schemastery@3.18.0:
|
|
|
|
|
resolution: {integrity: sha512-Jw2uxjoyyqc/yeurmChUEc/jbi8GsrdXV/KmqRUDZXJAXAmrJiPsz8vKa17l/VckyzljHZ9oGaul443CQiXxtA==}
|
|
|
|
|
|
|
|
|
|
semver@7.8.4:
|
|
|
|
|
resolution: {integrity: sha512-rUCObTnP32Q08R2uuIrt7r9PlEonuTmtuXYcW6s5kjdlj3xbnwe+21yXptAUYcMAABLkYYTtnmzb3w3EDZfueA==}
|
|
|
|
|
engines: {node: '>=10'}
|
|
|
|
|
hasBin: true
|
|
|
|
|
|
|
|
|
|
shebang-command@2.0.0:
|
|
|
|
|
resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
|
|
|
|
|
engines: {node: '>=8'}
|
|
|
|
|
|
|
|
|
|
shebang-regex@3.0.0:
|
|
|
|
|
resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
|
|
|
|
|
engines: {node: '>=8'}
|
|
|
|
|
|
|
|
|
|
siginfo@2.0.0:
|
|
|
|
|
resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==}
|
|
|
|
|
|
|
|
|
|
smol-toml@1.6.1:
|
|
|
|
|
resolution: {integrity: sha512-dWUG8F5sIIARXih1DTaQAX4SsiTXhInKf1buxdY9DIg4ZYPZK5nGM1VRIYmEbDbsHt7USo99xSLFu5Q1IqTmsg==}
|
|
|
|
|
engines: {node: '>= 18'}
|
|
|
|
|
|
|
|
|
|
source-map-js@1.2.1:
|
|
|
|
|
resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
|
|
|
|
|
engines: {node: '>=0.10.0'}
|
|
|
|
|
|
|
|
|
|
stackback@0.0.2:
|
|
|
|
|
resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==}
|
|
|
|
|
|
|
|
|
|
std-env@4.1.0:
|
|
|
|
|
resolution: {integrity: sha512-Rq7ybcX2RuC55r9oaPVEW7/xu3tj8u4GeBYHBWCychFtzMIr86A7e3PPEBPT37sHStKX3+TiX/Fr/ACmJLVlLQ==}
|
|
|
|
|
|
|
|
|
|
strip-json-comments@5.0.3:
|
|
|
|
|
resolution: {integrity: sha512-1tB5mhVo7U+ETBKNf92xT4hrQa3pm0MZ0PQvuDnWgAAGHDsfp4lPSpiS6psrSiet87wyGPh9ft6wmhOMQ0hDiw==}
|
|
|
|
|
engines: {node: '>=14.16'}
|
|
|
|
|
|
|
|
|
|
strnum@2.4.0:
|
|
|
|
|
resolution: {integrity: sha512-sHrVyWWdq28RbhjuJdZsA1SnGRJV6NiXbk6AXBxDOsgAcA+lmpUZCYjOdLBxkXMwis6RRe7dlZt4VlIWFVzkmg==}
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
stylis@4.4.0:
|
|
|
|
|
resolution: {integrity: sha512-5Z9ZpRzfuH6l/UAvCPAPUo3665Nk2wLaZU3x+TLHKVzIz33+sbJqbtrYoC3KD4/uVOr2Zp+L0LySezP9OHV9yA==}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
supports-color@7.2.0:
|
|
|
|
|
resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
|
|
|
|
|
engines: {node: '>=8'}
|
|
|
|
|
|
|
|
|
|
supports-color@9.4.0:
|
|
|
|
|
resolution: {integrity: sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw==}
|
|
|
|
|
engines: {node: '>=12'}
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
symbol-tree@3.2.4:
|
|
|
|
|
resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
tinybench@2.9.0:
|
|
|
|
|
resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==}
|
|
|
|
|
|
|
|
|
|
tinyexec@1.2.4:
|
|
|
|
|
resolution: {integrity: sha512-SHf/r48b7vOrjve9PxJo3MN5v5yuyjHvdUcrQffT3WXMUfnGmHDVbC4k3sHJaJTgZCwpUplIaAo5ANtMyp3YHg==}
|
|
|
|
|
engines: {node: '>=18'}
|
|
|
|
|
|
|
|
|
|
tinyglobby@0.2.17:
|
|
|
|
|
resolution: {integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==}
|
|
|
|
|
engines: {node: '>=12.0.0'}
|
|
|
|
|
|
|
|
|
|
tinyrainbow@3.1.0:
|
|
|
|
|
resolution: {integrity: sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw==}
|
|
|
|
|
engines: {node: '>=14.0.0'}
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
tldts-core@7.4.5:
|
|
|
|
|
resolution: {integrity: sha512-pGrwzZDvPwKe+7NNUqAunb6rqTfynr0VOUhCMdqbu5xlvNiszsAJygRzwvpVycdzejlbpY+SWJOn+s75Og7FEA==}
|
|
|
|
|
|
|
|
|
|
tldts@7.4.5:
|
|
|
|
|
resolution: {integrity: sha512-RfEzKWcq5fHUOFq7J3rl3Oz6ylKGtcHqUznzj4EcXsxLSIjJcvpbXAQtWGeJQ0xKnimR5e0Cn+cn9TssfMzm+g==}
|
|
|
|
|
hasBin: true
|
|
|
|
|
|
|
|
|
|
tough-cookie@6.0.1:
|
|
|
|
|
resolution: {integrity: sha512-LktZQb3IeoUWB9lqR5EWTHgW/VTITCXg4D21M+lvybRVdylLrRMnqaIONLVb5mav8vM19m44HIcGq4qASeu2Qw==}
|
|
|
|
|
engines: {node: '>=16'}
|
|
|
|
|
|
|
|
|
|
tr46@6.0.0:
|
|
|
|
|
resolution: {integrity: sha512-bLVMLPtstlZ4iMQHpFHTR7GAGj2jxi8Dg0s2h2MafAE4uSWF98FC/3MomU51iQAMf8/qDUbKWf5GxuvvVcXEhw==}
|
|
|
|
|
engines: {node: '>=20'}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
tree-kill@1.2.2:
|
|
|
|
|
resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==}
|
|
|
|
|
hasBin: true
|
|
|
|
|
|
|
|
|
|
ts-algebra@2.0.0:
|
|
|
|
|
resolution: {integrity: sha512-FPAhNPFMrkwz76P7cdjdmiShwMynZYN6SgOujD1urY4oNm80Ou9oMdmbR45LotcKOXoy7wSmHkRFE6Mxbrhefw==}
|
|
|
|
|
|
|
|
|
|
ts-api-utils@2.5.0:
|
|
|
|
|
resolution: {integrity: sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==}
|
|
|
|
|
engines: {node: '>=18.12'}
|
|
|
|
|
peerDependencies:
|
|
|
|
|
typescript: '>=4.8.4'
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
ts-dedent@2.3.0:
|
|
|
|
|
resolution: {integrity: sha512-JfJeIHke7y2egdGGgRAvpCwYFUsHlM2gPcrVOxFkznt/4uzQ7HFmvE63iFHVLBJNDuyDOQgijDK/tXH/f6Msjg==}
|
|
|
|
|
engines: {node: '>=6.10'}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
tsconfck@3.1.6:
|
|
|
|
|
resolution: {integrity: sha512-ks6Vjr/jEw0P1gmOVwutM3B7fWxoWBL2KRDb1JfqGVawBmO5UsvmWOQFGHBPl5yxYz4eERr19E6L7NMv+Fej4w==}
|
|
|
|
|
engines: {node: ^18 || >=20}
|
|
|
|
|
deprecated: unmaintained
|
|
|
|
|
hasBin: true
|
|
|
|
|
peerDependencies:
|
|
|
|
|
typescript: ^5.0.0
|
|
|
|
|
peerDependenciesMeta:
|
|
|
|
|
typescript:
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
tsdown@0.22.2:
|
|
|
|
|
resolution: {integrity: sha512-VX9gsyKXsTnBZjnIM4jsHl9aRv+GfgkE/k1hQslilaBfZMlaw3JuGR+6yhiU0QxWBtOCDnTjwOSoXzgB7Rr50g==}
|
|
|
|
|
engines: {node: ^22.18.0 || >=24.0.0}
|
|
|
|
|
hasBin: true
|
|
|
|
|
peerDependencies:
|
|
|
|
|
'@arethetypeswrong/core': ^0.18.1
|
|
|
|
|
'@tsdown/css': 0.22.2
|
|
|
|
|
'@tsdown/exe': 0.22.2
|
|
|
|
|
'@vitejs/devtools': '*'
|
|
|
|
|
publint: ^0.3.8
|
|
|
|
|
tsx: '*'
|
|
|
|
|
typescript: ^5.0.0 || ^6.0.0
|
|
|
|
|
unplugin-unused: ^0.5.0
|
|
|
|
|
unrun: '*'
|
|
|
|
|
peerDependenciesMeta:
|
|
|
|
|
'@arethetypeswrong/core':
|
|
|
|
|
optional: true
|
|
|
|
|
'@tsdown/css':
|
|
|
|
|
optional: true
|
|
|
|
|
'@tsdown/exe':
|
|
|
|
|
optional: true
|
|
|
|
|
'@vitejs/devtools':
|
|
|
|
|
optional: true
|
|
|
|
|
publint:
|
|
|
|
|
optional: true
|
|
|
|
|
tsx:
|
|
|
|
|
optional: true
|
|
|
|
|
typescript:
|
|
|
|
|
optional: true
|
|
|
|
|
unplugin-unused:
|
|
|
|
|
optional: true
|
|
|
|
|
unrun:
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
tslib@2.8.1:
|
|
|
|
|
resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
|
|
|
|
|
|
|
|
|
|
tsx@4.22.4:
|
|
|
|
|
resolution: {integrity: sha512-X8EX+XV4QR5xCsrgxaED954zTDfY8KqlDtskKEL0cHhyS/P8b4IFOvGDQpsC9Q1XnLq915wEfwwY/zzskCtmhg==}
|
|
|
|
|
engines: {node: '>=18.0.0'}
|
|
|
|
|
hasBin: true
|
|
|
|
|
|
|
|
|
|
type-check@0.4.0:
|
|
|
|
|
resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
|
|
|
|
|
engines: {node: '>= 0.8.0'}
|
|
|
|
|
|
|
|
|
|
typebox@1.1.38:
|
|
|
|
|
resolution: {integrity: sha512-pZ0aQPmMmXoUvSbeuWf/Hzsc+avNw/Zd6VeE8CFgkVGWyuHPJvqeJJDeJqLve+K70LvjYIoleGcoJHPT17cWoA==}
|
|
|
|
|
|
|
|
|
|
typescript-eslint@8.61.0:
|
|
|
|
|
resolution: {integrity: sha512-8y31Rd0eGTrDKqhy6vT0HtzhN+YLjQizwX3aA3hPXP/ynSfnrBXcQY5IzsP9/DM7+klX4IUncZZjkchP0z+rUw==}
|
|
|
|
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
|
|
|
|
peerDependencies:
|
|
|
|
|
eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
|
|
|
|
|
typescript: '>=4.8.4 <6.1.0'
|
|
|
|
|
|
|
|
|
|
typescript@6.0.3:
|
|
|
|
|
resolution: {integrity: sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==}
|
|
|
|
|
engines: {node: '>=14.17'}
|
|
|
|
|
hasBin: true
|
|
|
|
|
|
|
|
|
|
unbash@3.0.0:
|
|
|
|
|
resolution: {integrity: sha512-FeFPZ/WFT0mbRCuydiZzpPFlrYN8ZUpphQKoq4EeElVIYjYyGzPMxQR/simUwCOJIyVhpFk4RbtyO7RuMpMnHA==}
|
|
|
|
|
engines: {node: '>=14'}
|
|
|
|
|
|
|
|
|
|
unconfig-core@7.5.0:
|
|
|
|
|
resolution: {integrity: sha512-Su3FauozOGP44ZmKdHy2oE6LPjk51M/TRRjHv2HNCWiDvfvCoxC2lno6jevMA91MYAdCdwP05QnWdWpSbncX/w==}
|
|
|
|
|
|
|
|
|
|
undici-types@7.24.6:
|
|
|
|
|
resolution: {integrity: sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg==}
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
undici@7.28.0:
|
|
|
|
|
resolution: {integrity: sha512-cRZYrTDwWznlnRiPjggAGxZXanty6M8RV1ff8Wm4LWXBp7/IG8v5DnOm74DtUBp9OONpK75YlPnIjQqX0dBDtA==}
|
|
|
|
|
engines: {node: '>=20.18.1'}
|
|
|
|
|
|
refactor: detect md hard-wraps via mdast AST, not regex
Per review feedback (use a real markdown parser with an AST linked to
source positions), rewrite verify-md-wrap to parse each file with
mdast-util-from-markdown (the CommonMark parser behind remark) + the GFM
extension, then flag any `paragraph` node whose source span covers more
than one line.
Why a parser over the hand-rolled line scanner:
- It is a checker, not a formatter — it reports and never rewrites, so
zero cosmetic churn (no emphasis-marker or table-delimiter
normalization, which is why Prettier was rejected for this).
- The AST owns every structural exemption (fenced code of any fence
length, tables, lists, blockquotes, HTML, headings, reference defs),
fixing both bugs the regex version had: it now catches wrapped
list-item / blockquote prose (a `paragraph` inside those nodes) and no
longer false-positives on a longer ```` fence wrapping an inner ```.
Also unwrap two pre-existing hard-wrapped blockquotes (architecture.md,
adding-a-tool.md) that the stricter AST check correctly surfaced.
2026-06-16 23:35:33 +08:00
|
|
|
unist-util-is@6.0.1:
|
|
|
|
|
resolution: {integrity: sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==}
|
|
|
|
|
|
|
|
|
|
unist-util-stringify-position@4.0.0:
|
|
|
|
|
resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==}
|
|
|
|
|
|
|
|
|
|
unist-util-visit-parents@6.0.2:
|
|
|
|
|
resolution: {integrity: sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==}
|
|
|
|
|
|
|
|
|
|
unist-util-visit@5.1.0:
|
|
|
|
|
resolution: {integrity: sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
uri-js@4.4.1:
|
|
|
|
|
resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
uuid@14.0.1:
|
|
|
|
|
resolution: {integrity: sha512-6ZxzVpzDXDa3bJWaHilVayA+BH/1zmxCJoVgvmqJnid/gPoKHxUrS/aC/T6LGQtNHT+XHG9fXPJB4d+IrU30Ew==}
|
|
|
|
|
hasBin: true
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
vite-tsconfig-paths@6.1.1:
|
|
|
|
|
resolution: {integrity: sha512-2cihq7zliibCCZ8P9cKJrQBkfgdvcFkOOc3Y02o3GWUDLgqjWsZudaoiuOwO/gzTzy17cS5F7ZPo4bsnS4DGkg==}
|
|
|
|
|
peerDependencies:
|
|
|
|
|
vite: '*'
|
|
|
|
|
|
|
|
|
|
vite@8.0.16:
|
|
|
|
|
resolution: {integrity: sha512-h9bXPmJichP5fLmVQo3PyaGSDE2n3aPuomeAlVRm0JLmt4rY6zmPKd59HYI4LNW8oTK7tlTsuC7l/m7awx9Jcw==}
|
|
|
|
|
engines: {node: ^20.19.0 || >=22.12.0}
|
|
|
|
|
hasBin: true
|
|
|
|
|
peerDependencies:
|
|
|
|
|
'@types/node': ^20.19.0 || >=22.12.0
|
|
|
|
|
'@vitejs/devtools': ^0.1.18
|
|
|
|
|
esbuild: ^0.27.0 || ^0.28.0
|
|
|
|
|
jiti: '>=1.21.0'
|
|
|
|
|
less: ^4.0.0
|
|
|
|
|
sass: ^1.70.0
|
|
|
|
|
sass-embedded: ^1.70.0
|
|
|
|
|
stylus: '>=0.54.8'
|
|
|
|
|
sugarss: ^5.0.0
|
|
|
|
|
terser: ^5.16.0
|
|
|
|
|
tsx: ^4.8.1
|
|
|
|
|
yaml: ^2.4.2
|
|
|
|
|
peerDependenciesMeta:
|
|
|
|
|
'@types/node':
|
|
|
|
|
optional: true
|
|
|
|
|
'@vitejs/devtools':
|
|
|
|
|
optional: true
|
|
|
|
|
esbuild:
|
|
|
|
|
optional: true
|
|
|
|
|
jiti:
|
|
|
|
|
optional: true
|
|
|
|
|
less:
|
|
|
|
|
optional: true
|
|
|
|
|
sass:
|
|
|
|
|
optional: true
|
|
|
|
|
sass-embedded:
|
|
|
|
|
optional: true
|
|
|
|
|
stylus:
|
|
|
|
|
optional: true
|
|
|
|
|
sugarss:
|
|
|
|
|
optional: true
|
|
|
|
|
terser:
|
|
|
|
|
optional: true
|
|
|
|
|
tsx:
|
|
|
|
|
optional: true
|
|
|
|
|
yaml:
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
vitest@4.1.8:
|
|
|
|
|
resolution: {integrity: sha512-flY6ScbCIt9HThs+C5HS7jvGOB560DJtk/Z15IQROTA6zEy49Nh8T/dofWTQL+n3vswqn87sbJNiuqw1SDp5Ig==}
|
|
|
|
|
engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0}
|
|
|
|
|
hasBin: true
|
|
|
|
|
peerDependencies:
|
|
|
|
|
'@edge-runtime/vm': '*'
|
|
|
|
|
'@opentelemetry/api': ^1.9.0
|
|
|
|
|
'@types/node': ^20.0.0 || ^22.0.0 || >=24.0.0
|
|
|
|
|
'@vitest/browser-playwright': 4.1.8
|
|
|
|
|
'@vitest/browser-preview': 4.1.8
|
|
|
|
|
'@vitest/browser-webdriverio': 4.1.8
|
|
|
|
|
'@vitest/coverage-istanbul': 4.1.8
|
|
|
|
|
'@vitest/coverage-v8': 4.1.8
|
|
|
|
|
'@vitest/ui': 4.1.8
|
|
|
|
|
happy-dom: '*'
|
|
|
|
|
jsdom: '*'
|
|
|
|
|
vite: ^6.0.0 || ^7.0.0 || ^8.0.0
|
|
|
|
|
peerDependenciesMeta:
|
|
|
|
|
'@edge-runtime/vm':
|
|
|
|
|
optional: true
|
|
|
|
|
'@opentelemetry/api':
|
|
|
|
|
optional: true
|
|
|
|
|
'@types/node':
|
|
|
|
|
optional: true
|
|
|
|
|
'@vitest/browser-playwright':
|
|
|
|
|
optional: true
|
|
|
|
|
'@vitest/browser-preview':
|
|
|
|
|
optional: true
|
|
|
|
|
'@vitest/browser-webdriverio':
|
|
|
|
|
optional: true
|
|
|
|
|
'@vitest/coverage-istanbul':
|
|
|
|
|
optional: true
|
|
|
|
|
'@vitest/coverage-v8':
|
|
|
|
|
optional: true
|
|
|
|
|
'@vitest/ui':
|
|
|
|
|
optional: true
|
|
|
|
|
happy-dom:
|
|
|
|
|
optional: true
|
|
|
|
|
jsdom:
|
|
|
|
|
optional: true
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
w3c-xmlserializer@5.0.0:
|
|
|
|
|
resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==}
|
|
|
|
|
engines: {node: '>=18'}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
walk-up-path@4.0.0:
|
|
|
|
|
resolution: {integrity: sha512-3hu+tD8YzSLGuFYtPRb48vdhKMi0KQV5sn+uWr8+7dMEq/2G/dtLrdDinkLjqq5TIbIBjYJ4Ax/n3YiaW7QM8A==}
|
|
|
|
|
engines: {node: 20 || >=22}
|
|
|
|
|
|
|
|
|
|
web-streams-polyfill@3.3.3:
|
|
|
|
|
resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==}
|
|
|
|
|
engines: {node: '>= 8'}
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
webidl-conversions@8.0.1:
|
|
|
|
|
resolution: {integrity: sha512-BMhLD/Sw+GbJC21C/UgyaZX41nPt8bUTg+jWyDeg7e7YN4xOM05YPSIXceACnXVtqyEw/LMClUQMtMZ+PGGpqQ==}
|
|
|
|
|
engines: {node: '>=20'}
|
|
|
|
|
|
|
|
|
|
whatwg-mimetype@5.0.0:
|
|
|
|
|
resolution: {integrity: sha512-sXcNcHOC51uPGF0P/D4NVtrkjSU2fNsm9iog4ZvZJsL3rjoDAzXZhkm2MWt1y+PUdggKAYVoMAIYcs78wJ51Cw==}
|
|
|
|
|
engines: {node: '>=20'}
|
|
|
|
|
|
|
|
|
|
whatwg-url@16.0.1:
|
|
|
|
|
resolution: {integrity: sha512-1to4zXBxmXHV3IiSSEInrreIlu02vUOvrhxJJH5vcxYTBDAx51cqZiKdyTxlecdKNSjj8EcxGBxNf6Vg+945gw==}
|
|
|
|
|
engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
which@2.0.2:
|
|
|
|
|
resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
|
|
|
|
|
engines: {node: '>= 8'}
|
|
|
|
|
hasBin: true
|
|
|
|
|
|
|
|
|
|
why-is-node-running@2.3.0:
|
|
|
|
|
resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==}
|
|
|
|
|
engines: {node: '>=8'}
|
|
|
|
|
hasBin: true
|
|
|
|
|
|
|
|
|
|
word-wrap@1.2.5:
|
|
|
|
|
resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==}
|
|
|
|
|
engines: {node: '>=0.10.0'}
|
|
|
|
|
|
|
|
|
|
ws@8.21.0:
|
|
|
|
|
resolution: {integrity: sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==}
|
|
|
|
|
engines: {node: '>=10.0.0'}
|
|
|
|
|
peerDependencies:
|
|
|
|
|
bufferutil: ^4.0.1
|
|
|
|
|
utf-8-validate: '>=5.0.2'
|
|
|
|
|
peerDependenciesMeta:
|
|
|
|
|
bufferutil:
|
|
|
|
|
optional: true
|
|
|
|
|
utf-8-validate:
|
|
|
|
|
optional: true
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
xml-name-validator@5.0.0:
|
|
|
|
|
resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==}
|
|
|
|
|
engines: {node: '>=18'}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
xml-naming@0.1.0:
|
|
|
|
|
resolution: {integrity: sha512-k8KO9hrMyNk6tUWqUfkTEZbezRRpONVOzUTnc97VnCvyj6Tf9lyUR9EDAIeiVLv56jsMcoXEwjW8Kv5yPY52lw==}
|
|
|
|
|
engines: {node: '>=16.0.0'}
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
xmlchars@2.2.0:
|
|
|
|
|
resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
yaml@2.9.0:
|
|
|
|
|
resolution: {integrity: sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==}
|
|
|
|
|
engines: {node: '>= 14.6'}
|
|
|
|
|
hasBin: true
|
|
|
|
|
|
|
|
|
|
yocto-queue@0.1.0:
|
|
|
|
|
resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
|
|
|
|
|
engines: {node: '>=10'}
|
|
|
|
|
|
|
|
|
|
zod-to-json-schema@3.25.2:
|
|
|
|
|
resolution: {integrity: sha512-O/PgfnpT1xKSDeQYSCfRI5Gy3hPf91mKVDuYLUHZJMiDFptvP41MSnWofm8dnCm0256ZNfZIM7DSzuSMAFnjHA==}
|
|
|
|
|
peerDependencies:
|
|
|
|
|
zod: ^3.25.28 || ^4
|
|
|
|
|
|
|
|
|
|
zod@4.4.3:
|
|
|
|
|
resolution: {integrity: sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==}
|
|
|
|
|
|
refactor: detect md hard-wraps via mdast AST, not regex
Per review feedback (use a real markdown parser with an AST linked to
source positions), rewrite verify-md-wrap to parse each file with
mdast-util-from-markdown (the CommonMark parser behind remark) + the GFM
extension, then flag any `paragraph` node whose source span covers more
than one line.
Why a parser over the hand-rolled line scanner:
- It is a checker, not a formatter — it reports and never rewrites, so
zero cosmetic churn (no emphasis-marker or table-delimiter
normalization, which is why Prettier was rejected for this).
- The AST owns every structural exemption (fenced code of any fence
length, tables, lists, blockquotes, HTML, headings, reference defs),
fixing both bugs the regex version had: it now catches wrapped
list-item / blockquote prose (a `paragraph` inside those nodes) and no
longer false-positives on a longer ```` fence wrapping an inner ```.
Also unwrap two pre-existing hard-wrapped blockquotes (architecture.md,
adding-a-tool.md) that the stricter AST check correctly surfaced.
2026-06-16 23:35:33 +08:00
|
|
|
zwitch@2.0.4:
|
|
|
|
|
resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
snapshots:
|
|
|
|
|
|
2026-06-16 23:40:23 +08:00
|
|
|
'@agentclientprotocol/sdk@0.25.1(zod@4.4.3)':
|
|
|
|
|
dependencies:
|
|
|
|
|
zod: 4.4.3
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
'@antfu/install-pkg@1.1.0':
|
|
|
|
|
dependencies:
|
|
|
|
|
package-manager-detector: 1.6.0
|
|
|
|
|
tinyexec: 1.2.4
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
'@anthropic-ai/sdk@0.91.1(zod@4.4.3)':
|
|
|
|
|
dependencies:
|
|
|
|
|
json-schema-to-ts: 3.1.1
|
|
|
|
|
optionalDependencies:
|
|
|
|
|
zod: 4.4.3
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
'@asamuzakjp/css-color@5.1.11':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@asamuzakjp/generational-cache': 1.0.1
|
|
|
|
|
'@csstools/css-calc': 3.2.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)
|
|
|
|
|
'@csstools/css-color-parser': 4.1.9(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)
|
|
|
|
|
'@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0)
|
|
|
|
|
'@csstools/css-tokenizer': 4.0.0
|
|
|
|
|
|
|
|
|
|
'@asamuzakjp/dom-selector@7.1.1':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@asamuzakjp/generational-cache': 1.0.1
|
|
|
|
|
'@asamuzakjp/nwsapi': 2.3.9
|
|
|
|
|
bidi-js: 1.0.3
|
|
|
|
|
css-tree: 3.2.1
|
|
|
|
|
is-potential-custom-element-name: 1.0.1
|
|
|
|
|
|
|
|
|
|
'@asamuzakjp/generational-cache@1.0.1': {}
|
|
|
|
|
|
|
|
|
|
'@asamuzakjp/nwsapi@2.3.9': {}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
'@aws-crypto/crc32@5.2.0':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@aws-crypto/util': 5.2.0
|
|
|
|
|
'@aws-sdk/types': 3.973.12
|
|
|
|
|
tslib: 2.8.1
|
|
|
|
|
|
|
|
|
|
'@aws-crypto/sha256-browser@5.2.0':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@aws-crypto/sha256-js': 5.2.0
|
|
|
|
|
'@aws-crypto/supports-web-crypto': 5.2.0
|
|
|
|
|
'@aws-crypto/util': 5.2.0
|
|
|
|
|
'@aws-sdk/types': 3.973.12
|
|
|
|
|
'@aws-sdk/util-locate-window': 3.965.7
|
|
|
|
|
'@smithy/util-utf8': 2.3.0
|
|
|
|
|
tslib: 2.8.1
|
|
|
|
|
|
|
|
|
|
'@aws-crypto/sha256-js@5.2.0':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@aws-crypto/util': 5.2.0
|
|
|
|
|
'@aws-sdk/types': 3.973.12
|
|
|
|
|
tslib: 2.8.1
|
|
|
|
|
|
|
|
|
|
'@aws-crypto/supports-web-crypto@5.2.0':
|
|
|
|
|
dependencies:
|
|
|
|
|
tslib: 2.8.1
|
|
|
|
|
|
|
|
|
|
'@aws-crypto/util@5.2.0':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@aws-sdk/types': 3.973.12
|
|
|
|
|
'@smithy/util-utf8': 2.3.0
|
|
|
|
|
tslib: 2.8.1
|
|
|
|
|
|
|
|
|
|
'@aws-sdk/client-bedrock-runtime@3.1048.0':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@aws-crypto/sha256-browser': 5.2.0
|
|
|
|
|
'@aws-crypto/sha256-js': 5.2.0
|
|
|
|
|
'@aws-sdk/core': 3.974.20
|
|
|
|
|
'@aws-sdk/credential-provider-node': 3.972.55
|
|
|
|
|
'@aws-sdk/eventstream-handler-node': 3.972.21
|
|
|
|
|
'@aws-sdk/middleware-eventstream': 3.972.17
|
|
|
|
|
'@aws-sdk/middleware-websocket': 3.972.28
|
|
|
|
|
'@aws-sdk/token-providers': 3.1048.0
|
|
|
|
|
'@aws-sdk/types': 3.973.12
|
|
|
|
|
'@smithy/core': 3.24.7
|
|
|
|
|
'@smithy/fetch-http-handler': 5.4.7
|
Reorganize packages into a modular hierarchy
Move the 18 flat packages/<name> packages into role-grouped dirs:
core/, llm/, bash/, session-persistence/, ui/, support/. Group dirs are
pure containers; each package keeps its @deepseek-ai/dsh-* name.
Collapse the per-package tsconfig paths maps (base + typecheck) into one
@deepseek-ai/dsh-* wildcard with a candidate per group, and derive the
publint list from the hierarchy. Update all depth-coupled globs/configs
(workspace, tsdown, vitest, eslint, knip, tsconfig includes/refs,
per-package tsconfigs, generators, doc-script scopes, type-equiv manifest)
and the cross-package/script relative imports in tests.
Fix doc-typecheck's workspacePaths() to parse tsconfig JSONC via the
TypeScript API instead of a regex comment-strip, which corrupted the
new wildcard `/*/` path candidates.
WIP: doc cross-links and package/RFC docs still to update.
2026-06-20 22:55:20 +08:00
|
|
|
'@smithy/node-http-handler': 4.7.8
|
2026-06-16 14:55:37 +08:00
|
|
|
'@smithy/types': 4.14.4
|
|
|
|
|
tslib: 2.8.1
|
|
|
|
|
|
|
|
|
|
'@aws-sdk/core@3.974.20':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@aws-sdk/types': 3.973.12
|
|
|
|
|
'@aws-sdk/xml-builder': 3.972.29
|
|
|
|
|
'@aws/lambda-invoke-store': 0.2.4
|
|
|
|
|
'@smithy/core': 3.24.7
|
|
|
|
|
'@smithy/signature-v4': 5.4.7
|
|
|
|
|
'@smithy/types': 4.14.4
|
|
|
|
|
bowser: 2.14.1
|
|
|
|
|
tslib: 2.8.1
|
|
|
|
|
|
|
|
|
|
'@aws-sdk/credential-provider-env@3.972.46':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@aws-sdk/core': 3.974.20
|
|
|
|
|
'@aws-sdk/types': 3.973.12
|
|
|
|
|
'@smithy/core': 3.24.7
|
|
|
|
|
'@smithy/types': 4.14.4
|
|
|
|
|
tslib: 2.8.1
|
|
|
|
|
|
|
|
|
|
'@aws-sdk/credential-provider-http@3.972.48':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@aws-sdk/core': 3.974.20
|
|
|
|
|
'@aws-sdk/types': 3.973.12
|
|
|
|
|
'@smithy/core': 3.24.7
|
|
|
|
|
'@smithy/fetch-http-handler': 5.4.7
|
|
|
|
|
'@smithy/node-http-handler': 4.7.8
|
|
|
|
|
'@smithy/types': 4.14.4
|
|
|
|
|
tslib: 2.8.1
|
|
|
|
|
|
|
|
|
|
'@aws-sdk/credential-provider-ini@3.972.53':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@aws-sdk/core': 3.974.20
|
|
|
|
|
'@aws-sdk/credential-provider-env': 3.972.46
|
|
|
|
|
'@aws-sdk/credential-provider-http': 3.972.48
|
|
|
|
|
'@aws-sdk/credential-provider-login': 3.972.52
|
|
|
|
|
'@aws-sdk/credential-provider-process': 3.972.46
|
|
|
|
|
'@aws-sdk/credential-provider-sso': 3.972.52
|
|
|
|
|
'@aws-sdk/credential-provider-web-identity': 3.972.52
|
|
|
|
|
'@aws-sdk/nested-clients': 3.997.20
|
|
|
|
|
'@aws-sdk/types': 3.973.12
|
|
|
|
|
'@smithy/core': 3.24.7
|
|
|
|
|
'@smithy/credential-provider-imds': 4.3.9
|
|
|
|
|
'@smithy/types': 4.14.4
|
|
|
|
|
tslib: 2.8.1
|
|
|
|
|
|
|
|
|
|
'@aws-sdk/credential-provider-login@3.972.52':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@aws-sdk/core': 3.974.20
|
|
|
|
|
'@aws-sdk/nested-clients': 3.997.20
|
|
|
|
|
'@aws-sdk/types': 3.973.12
|
|
|
|
|
'@smithy/core': 3.24.7
|
|
|
|
|
'@smithy/types': 4.14.4
|
|
|
|
|
tslib: 2.8.1
|
|
|
|
|
|
|
|
|
|
'@aws-sdk/credential-provider-node@3.972.55':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@aws-sdk/credential-provider-env': 3.972.46
|
|
|
|
|
'@aws-sdk/credential-provider-http': 3.972.48
|
|
|
|
|
'@aws-sdk/credential-provider-ini': 3.972.53
|
|
|
|
|
'@aws-sdk/credential-provider-process': 3.972.46
|
|
|
|
|
'@aws-sdk/credential-provider-sso': 3.972.52
|
|
|
|
|
'@aws-sdk/credential-provider-web-identity': 3.972.52
|
|
|
|
|
'@aws-sdk/types': 3.973.12
|
|
|
|
|
'@smithy/core': 3.24.7
|
|
|
|
|
'@smithy/credential-provider-imds': 4.3.9
|
|
|
|
|
'@smithy/types': 4.14.4
|
|
|
|
|
tslib: 2.8.1
|
|
|
|
|
|
|
|
|
|
'@aws-sdk/credential-provider-process@3.972.46':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@aws-sdk/core': 3.974.20
|
|
|
|
|
'@aws-sdk/types': 3.973.12
|
|
|
|
|
'@smithy/core': 3.24.7
|
|
|
|
|
'@smithy/types': 4.14.4
|
|
|
|
|
tslib: 2.8.1
|
|
|
|
|
|
|
|
|
|
'@aws-sdk/credential-provider-sso@3.972.52':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@aws-sdk/core': 3.974.20
|
|
|
|
|
'@aws-sdk/nested-clients': 3.997.20
|
|
|
|
|
'@aws-sdk/token-providers': 3.1066.0
|
|
|
|
|
'@aws-sdk/types': 3.973.12
|
|
|
|
|
'@smithy/core': 3.24.7
|
|
|
|
|
'@smithy/types': 4.14.4
|
|
|
|
|
tslib: 2.8.1
|
|
|
|
|
|
|
|
|
|
'@aws-sdk/credential-provider-web-identity@3.972.52':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@aws-sdk/core': 3.974.20
|
|
|
|
|
'@aws-sdk/nested-clients': 3.997.20
|
|
|
|
|
'@aws-sdk/types': 3.973.12
|
|
|
|
|
'@smithy/core': 3.24.7
|
|
|
|
|
'@smithy/types': 4.14.4
|
|
|
|
|
tslib: 2.8.1
|
|
|
|
|
|
|
|
|
|
'@aws-sdk/eventstream-handler-node@3.972.21':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@aws-sdk/types': 3.973.12
|
|
|
|
|
'@smithy/core': 3.24.7
|
|
|
|
|
'@smithy/types': 4.14.4
|
|
|
|
|
tslib: 2.8.1
|
|
|
|
|
|
|
|
|
|
'@aws-sdk/middleware-eventstream@3.972.17':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@aws-sdk/types': 3.973.12
|
|
|
|
|
'@smithy/core': 3.24.7
|
|
|
|
|
'@smithy/types': 4.14.4
|
|
|
|
|
tslib: 2.8.1
|
|
|
|
|
|
|
|
|
|
'@aws-sdk/middleware-websocket@3.972.28':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@aws-sdk/core': 3.974.20
|
|
|
|
|
'@aws-sdk/types': 3.973.12
|
|
|
|
|
'@smithy/core': 3.24.7
|
|
|
|
|
'@smithy/fetch-http-handler': 5.4.7
|
|
|
|
|
'@smithy/signature-v4': 5.4.7
|
|
|
|
|
'@smithy/types': 4.14.4
|
|
|
|
|
tslib: 2.8.1
|
|
|
|
|
|
|
|
|
|
'@aws-sdk/nested-clients@3.997.20':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@aws-crypto/sha256-browser': 5.2.0
|
|
|
|
|
'@aws-crypto/sha256-js': 5.2.0
|
|
|
|
|
'@aws-sdk/core': 3.974.20
|
|
|
|
|
'@aws-sdk/signature-v4-multi-region': 3.996.34
|
|
|
|
|
'@aws-sdk/types': 3.973.12
|
|
|
|
|
'@smithy/core': 3.24.7
|
|
|
|
|
'@smithy/fetch-http-handler': 5.4.7
|
|
|
|
|
'@smithy/node-http-handler': 4.7.8
|
|
|
|
|
'@smithy/types': 4.14.4
|
|
|
|
|
tslib: 2.8.1
|
|
|
|
|
|
|
|
|
|
'@aws-sdk/signature-v4-multi-region@3.996.34':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@aws-sdk/types': 3.973.12
|
|
|
|
|
'@smithy/signature-v4': 5.4.7
|
|
|
|
|
'@smithy/types': 4.14.4
|
|
|
|
|
tslib: 2.8.1
|
|
|
|
|
|
|
|
|
|
'@aws-sdk/token-providers@3.1048.0':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@aws-sdk/core': 3.974.20
|
|
|
|
|
'@aws-sdk/nested-clients': 3.997.20
|
|
|
|
|
'@aws-sdk/types': 3.973.12
|
|
|
|
|
'@smithy/core': 3.24.7
|
|
|
|
|
'@smithy/types': 4.14.4
|
|
|
|
|
tslib: 2.8.1
|
|
|
|
|
|
|
|
|
|
'@aws-sdk/token-providers@3.1066.0':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@aws-sdk/core': 3.974.20
|
|
|
|
|
'@aws-sdk/nested-clients': 3.997.20
|
|
|
|
|
'@aws-sdk/types': 3.973.12
|
|
|
|
|
'@smithy/core': 3.24.7
|
|
|
|
|
'@smithy/types': 4.14.4
|
|
|
|
|
tslib: 2.8.1
|
|
|
|
|
|
|
|
|
|
'@aws-sdk/types@3.973.12':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@smithy/types': 4.14.4
|
|
|
|
|
tslib: 2.8.1
|
|
|
|
|
|
|
|
|
|
'@aws-sdk/util-locate-window@3.965.7':
|
|
|
|
|
dependencies:
|
|
|
|
|
tslib: 2.8.1
|
|
|
|
|
|
|
|
|
|
'@aws-sdk/xml-builder@3.972.29':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@smithy/types': 4.14.4
|
|
|
|
|
fast-xml-parser: 5.7.3
|
|
|
|
|
tslib: 2.8.1
|
|
|
|
|
|
|
|
|
|
'@aws/lambda-invoke-store@0.2.4': {}
|
|
|
|
|
|
|
|
|
|
'@babel/code-frame@7.29.7':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@babel/helper-validator-identifier': 7.29.7
|
|
|
|
|
js-tokens: 4.0.0
|
|
|
|
|
picocolors: 1.1.1
|
|
|
|
|
|
|
|
|
|
'@babel/generator@8.0.0-rc.6':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@babel/parser': 8.0.0-rc.6
|
|
|
|
|
'@babel/types': 8.0.0-rc.6
|
|
|
|
|
'@jridgewell/gen-mapping': 0.3.13
|
|
|
|
|
'@jridgewell/trace-mapping': 0.3.31
|
|
|
|
|
'@types/jsesc': 2.5.1
|
|
|
|
|
jsesc: 3.1.0
|
|
|
|
|
|
|
|
|
|
'@babel/helper-string-parser@7.29.7': {}
|
|
|
|
|
|
|
|
|
|
'@babel/helper-string-parser@8.0.0-rc.6': {}
|
|
|
|
|
|
|
|
|
|
'@babel/helper-validator-identifier@7.29.7': {}
|
|
|
|
|
|
|
|
|
|
'@babel/helper-validator-identifier@8.0.0-rc.6': {}
|
|
|
|
|
|
|
|
|
|
'@babel/parser@7.29.7':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@babel/types': 7.29.7
|
|
|
|
|
|
|
|
|
|
'@babel/parser@8.0.0-rc.6':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@babel/types': 8.0.0-rc.6
|
|
|
|
|
|
|
|
|
|
'@babel/runtime@7.29.7': {}
|
|
|
|
|
|
|
|
|
|
'@babel/types@7.29.7':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@babel/helper-string-parser': 7.29.7
|
|
|
|
|
'@babel/helper-validator-identifier': 7.29.7
|
|
|
|
|
|
|
|
|
|
'@babel/types@8.0.0-rc.6':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@babel/helper-string-parser': 8.0.0-rc.6
|
|
|
|
|
'@babel/helper-validator-identifier': 8.0.0-rc.6
|
|
|
|
|
|
|
|
|
|
'@bcoe/v8-coverage@1.0.2': {}
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
'@braintree/sanitize-url@7.1.2': {}
|
|
|
|
|
|
|
|
|
|
'@bramus/specificity@2.4.2':
|
|
|
|
|
dependencies:
|
|
|
|
|
css-tree: 3.2.1
|
|
|
|
|
|
|
|
|
|
'@chevrotain/types@11.1.2': {}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
'@cordisjs/plugin-include@1.0.4(@cordisjs/plugin-loader@1.0.0-rc.4)(cordis@4.0.0-rc.6)':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@cordisjs/plugin-loader': 1.0.0-rc.4(cordis@4.0.0-rc.6)
|
|
|
|
|
cordis: 4.0.0-rc.6(@cordisjs/plugin-include@1.0.4)(@cordisjs/plugin-loader@1.0.0-rc.4)
|
|
|
|
|
cosmokit: 1.8.1
|
|
|
|
|
js-yaml: 4.2.0
|
|
|
|
|
|
|
|
|
|
'@cordisjs/plugin-loader@1.0.0-rc.4(cordis@4.0.0-rc.6)':
|
|
|
|
|
dependencies:
|
|
|
|
|
cordis: 4.0.0-rc.6(@cordisjs/plugin-include@1.0.4)(@cordisjs/plugin-loader@1.0.0-rc.4)
|
|
|
|
|
cosmokit: 1.8.1
|
|
|
|
|
|
|
|
|
|
'@cordisjs/plugin-timer@1.1.2(cordis@4.0.0-rc.6)':
|
|
|
|
|
dependencies:
|
|
|
|
|
cordis: 4.0.0-rc.6(@cordisjs/plugin-include@1.0.4)(@cordisjs/plugin-loader@1.0.0-rc.4)
|
|
|
|
|
cosmokit: 1.8.1
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
'@csstools/color-helpers@6.1.0': {}
|
|
|
|
|
|
|
|
|
|
'@csstools/css-calc@3.2.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0)
|
|
|
|
|
'@csstools/css-tokenizer': 4.0.0
|
|
|
|
|
|
|
|
|
|
'@csstools/css-color-parser@4.1.9(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@csstools/color-helpers': 6.1.0
|
|
|
|
|
'@csstools/css-calc': 3.2.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)
|
|
|
|
|
'@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0)
|
|
|
|
|
'@csstools/css-tokenizer': 4.0.0
|
|
|
|
|
|
|
|
|
|
'@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0)':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@csstools/css-tokenizer': 4.0.0
|
|
|
|
|
|
|
|
|
|
'@csstools/css-syntax-patches-for-csstree@1.1.6(css-tree@3.2.1)':
|
|
|
|
|
optionalDependencies:
|
|
|
|
|
css-tree: 3.2.1
|
|
|
|
|
|
|
|
|
|
'@csstools/css-tokenizer@4.0.0': {}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
'@earendil-works/pi-ai@0.79.3(ws@8.21.0)(zod@4.4.3)':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@anthropic-ai/sdk': 0.91.1(zod@4.4.3)
|
|
|
|
|
'@aws-sdk/client-bedrock-runtime': 3.1048.0
|
|
|
|
|
'@google/genai': 1.52.0
|
|
|
|
|
'@mistralai/mistralai': 2.2.1
|
|
|
|
|
'@smithy/node-http-handler': 4.7.3
|
|
|
|
|
http-proxy-agent: 7.0.2
|
|
|
|
|
https-proxy-agent: 7.0.6
|
|
|
|
|
openai: 6.26.0(ws@8.21.0)(zod@4.4.3)
|
|
|
|
|
partial-json: 0.1.7
|
|
|
|
|
typebox: 1.1.38
|
|
|
|
|
transitivePeerDependencies:
|
|
|
|
|
- '@modelcontextprotocol/sdk'
|
|
|
|
|
- bufferutil
|
|
|
|
|
- supports-color
|
|
|
|
|
- utf-8-validate
|
|
|
|
|
- ws
|
|
|
|
|
- zod
|
|
|
|
|
|
|
|
|
|
'@emnapi/core@1.10.0':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@emnapi/wasi-threads': 1.2.1
|
|
|
|
|
tslib: 2.8.1
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@emnapi/core@1.11.0':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@emnapi/wasi-threads': 1.2.2
|
|
|
|
|
tslib: 2.8.1
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@emnapi/runtime@1.10.0':
|
|
|
|
|
dependencies:
|
|
|
|
|
tslib: 2.8.1
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@emnapi/runtime@1.11.0':
|
|
|
|
|
dependencies:
|
|
|
|
|
tslib: 2.8.1
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@emnapi/wasi-threads@1.2.1':
|
|
|
|
|
dependencies:
|
|
|
|
|
tslib: 2.8.1
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@emnapi/wasi-threads@1.2.2':
|
|
|
|
|
dependencies:
|
|
|
|
|
tslib: 2.8.1
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@esbuild/aix-ppc64@0.28.1':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@esbuild/android-arm64@0.28.1':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@esbuild/android-arm@0.28.1':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@esbuild/android-x64@0.28.1':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@esbuild/darwin-arm64@0.28.1':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@esbuild/darwin-x64@0.28.1':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@esbuild/freebsd-arm64@0.28.1':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@esbuild/freebsd-x64@0.28.1':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@esbuild/linux-arm64@0.28.1':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@esbuild/linux-arm@0.28.1':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@esbuild/linux-ia32@0.28.1':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@esbuild/linux-loong64@0.28.1':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@esbuild/linux-mips64el@0.28.1':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@esbuild/linux-ppc64@0.28.1':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@esbuild/linux-riscv64@0.28.1':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@esbuild/linux-s390x@0.28.1':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@esbuild/linux-x64@0.28.1':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@esbuild/netbsd-arm64@0.28.1':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@esbuild/netbsd-x64@0.28.1':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@esbuild/openbsd-arm64@0.28.1':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@esbuild/openbsd-x64@0.28.1':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@esbuild/openharmony-arm64@0.28.1':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@esbuild/sunos-x64@0.28.1':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@esbuild/win32-arm64@0.28.1':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@esbuild/win32-ia32@0.28.1':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@esbuild/win32-x64@0.28.1':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@eslint-community/eslint-utils@4.9.1(eslint@10.5.0(jiti@2.7.0))':
|
|
|
|
|
dependencies:
|
|
|
|
|
eslint: 10.5.0(jiti@2.7.0)
|
|
|
|
|
eslint-visitor-keys: 3.4.3
|
|
|
|
|
|
|
|
|
|
'@eslint-community/regexpp@4.12.2': {}
|
|
|
|
|
|
|
|
|
|
'@eslint/config-array@0.23.5':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@eslint/object-schema': 3.0.5
|
|
|
|
|
debug: 4.4.3
|
|
|
|
|
minimatch: 10.2.5
|
|
|
|
|
transitivePeerDependencies:
|
|
|
|
|
- supports-color
|
|
|
|
|
|
|
|
|
|
'@eslint/config-helpers@0.6.0':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@eslint/core': 1.2.1
|
|
|
|
|
|
|
|
|
|
'@eslint/core@1.2.1':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@types/json-schema': 7.0.15
|
|
|
|
|
|
|
|
|
|
'@eslint/object-schema@3.0.5': {}
|
|
|
|
|
|
|
|
|
|
'@eslint/plugin-kit@0.7.2':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@eslint/core': 1.2.1
|
|
|
|
|
levn: 0.4.1
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
'@exodus/bytes@1.15.1': {}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
'@google/genai@1.52.0':
|
|
|
|
|
dependencies:
|
|
|
|
|
google-auth-library: 10.7.0
|
|
|
|
|
p-retry: 4.6.2
|
|
|
|
|
protobufjs: 7.6.4
|
|
|
|
|
ws: 8.21.0
|
|
|
|
|
transitivePeerDependencies:
|
|
|
|
|
- bufferutil
|
|
|
|
|
- supports-color
|
|
|
|
|
- utf-8-validate
|
|
|
|
|
|
|
|
|
|
'@humanfs/core@0.19.2':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@humanfs/types': 0.15.0
|
|
|
|
|
|
|
|
|
|
'@humanfs/node@0.16.8':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@humanfs/core': 0.19.2
|
|
|
|
|
'@humanfs/types': 0.15.0
|
|
|
|
|
'@humanwhocodes/retry': 0.4.3
|
|
|
|
|
|
|
|
|
|
'@humanfs/types@0.15.0': {}
|
|
|
|
|
|
|
|
|
|
'@humanwhocodes/module-importer@1.0.1': {}
|
|
|
|
|
|
|
|
|
|
'@humanwhocodes/retry@0.4.3': {}
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
'@iconify/types@2.0.0': {}
|
|
|
|
|
|
|
|
|
|
'@iconify/utils@3.1.3':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@antfu/install-pkg': 1.1.0
|
|
|
|
|
'@iconify/types': 2.0.0
|
|
|
|
|
import-meta-resolve: 4.2.0
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
'@jridgewell/gen-mapping@0.3.13':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@jridgewell/sourcemap-codec': 1.5.5
|
|
|
|
|
'@jridgewell/trace-mapping': 0.3.31
|
|
|
|
|
|
|
|
|
|
'@jridgewell/resolve-uri@3.1.2': {}
|
|
|
|
|
|
|
|
|
|
'@jridgewell/sourcemap-codec@1.5.5': {}
|
|
|
|
|
|
|
|
|
|
'@jridgewell/trace-mapping@0.3.31':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@jridgewell/resolve-uri': 3.1.2
|
|
|
|
|
'@jridgewell/sourcemap-codec': 1.5.5
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
'@mermaid-js/parser@1.2.0':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@chevrotain/types': 11.1.2
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
'@mistralai/mistralai@2.2.1':
|
|
|
|
|
dependencies:
|
|
|
|
|
ws: 8.21.0
|
|
|
|
|
zod: 4.4.3
|
|
|
|
|
zod-to-json-schema: 3.25.2(zod@4.4.3)
|
|
|
|
|
transitivePeerDependencies:
|
|
|
|
|
- bufferutil
|
|
|
|
|
- utf-8-validate
|
|
|
|
|
|
|
|
|
|
'@napi-rs/wasm-runtime@1.1.5(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@emnapi/core': 1.10.0
|
|
|
|
|
'@emnapi/runtime': 1.10.0
|
|
|
|
|
'@tybys/wasm-util': 0.10.2
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@napi-rs/wasm-runtime@1.1.5(@emnapi/core@1.11.0)(@emnapi/runtime@1.11.0)':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@emnapi/core': 1.11.0
|
|
|
|
|
'@emnapi/runtime': 1.11.0
|
|
|
|
|
'@tybys/wasm-util': 0.10.2
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@nodable/entities@2.2.0': {}
|
|
|
|
|
|
|
|
|
|
'@oxc-parser/binding-android-arm-eabi@0.133.0':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@oxc-parser/binding-android-arm64@0.133.0':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@oxc-parser/binding-darwin-arm64@0.133.0':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@oxc-parser/binding-darwin-x64@0.133.0':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@oxc-parser/binding-freebsd-x64@0.133.0':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@oxc-parser/binding-linux-arm-gnueabihf@0.133.0':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@oxc-parser/binding-linux-arm-musleabihf@0.133.0':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@oxc-parser/binding-linux-arm64-gnu@0.133.0':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@oxc-parser/binding-linux-arm64-musl@0.133.0':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@oxc-parser/binding-linux-ppc64-gnu@0.133.0':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@oxc-parser/binding-linux-riscv64-gnu@0.133.0':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@oxc-parser/binding-linux-riscv64-musl@0.133.0':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@oxc-parser/binding-linux-s390x-gnu@0.133.0':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@oxc-parser/binding-linux-x64-gnu@0.133.0':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@oxc-parser/binding-linux-x64-musl@0.133.0':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@oxc-parser/binding-openharmony-arm64@0.133.0':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@oxc-parser/binding-wasm32-wasi@0.133.0':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@emnapi/core': 1.10.0
|
|
|
|
|
'@emnapi/runtime': 1.10.0
|
|
|
|
|
'@napi-rs/wasm-runtime': 1.1.5(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@oxc-parser/binding-win32-arm64-msvc@0.133.0':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@oxc-parser/binding-win32-ia32-msvc@0.133.0':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@oxc-parser/binding-win32-x64-msvc@0.133.0':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@oxc-project/types@0.133.0': {}
|
|
|
|
|
|
|
|
|
|
'@oxc-project/types@0.135.0': {}
|
|
|
|
|
|
|
|
|
|
'@oxc-resolver/binding-android-arm-eabi@11.20.0':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@oxc-resolver/binding-android-arm64@11.20.0':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@oxc-resolver/binding-darwin-arm64@11.20.0':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@oxc-resolver/binding-darwin-x64@11.20.0':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@oxc-resolver/binding-freebsd-x64@11.20.0':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@oxc-resolver/binding-linux-arm-gnueabihf@11.20.0':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@oxc-resolver/binding-linux-arm-musleabihf@11.20.0':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@oxc-resolver/binding-linux-arm64-gnu@11.20.0':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@oxc-resolver/binding-linux-arm64-musl@11.20.0':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@oxc-resolver/binding-linux-ppc64-gnu@11.20.0':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@oxc-resolver/binding-linux-riscv64-gnu@11.20.0':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@oxc-resolver/binding-linux-riscv64-musl@11.20.0':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@oxc-resolver/binding-linux-s390x-gnu@11.20.0':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@oxc-resolver/binding-linux-x64-gnu@11.20.0':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@oxc-resolver/binding-linux-x64-musl@11.20.0':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@oxc-resolver/binding-openharmony-arm64@11.20.0':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@oxc-resolver/binding-wasm32-wasi@11.20.0':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@emnapi/core': 1.10.0
|
|
|
|
|
'@emnapi/runtime': 1.10.0
|
|
|
|
|
'@napi-rs/wasm-runtime': 1.1.5(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@oxc-resolver/binding-win32-arm64-msvc@11.20.0':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@oxc-resolver/binding-win32-x64-msvc@11.20.0':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@protobufjs/aspromise@1.1.2': {}
|
|
|
|
|
|
|
|
|
|
'@protobufjs/base64@1.1.2': {}
|
|
|
|
|
|
|
|
|
|
'@protobufjs/codegen@2.0.5': {}
|
|
|
|
|
|
|
|
|
|
'@protobufjs/eventemitter@1.1.1': {}
|
|
|
|
|
|
|
|
|
|
'@protobufjs/fetch@1.1.1':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@protobufjs/aspromise': 1.1.2
|
|
|
|
|
|
|
|
|
|
'@protobufjs/float@1.0.2': {}
|
|
|
|
|
|
|
|
|
|
'@protobufjs/path@1.1.2': {}
|
|
|
|
|
|
|
|
|
|
'@protobufjs/pool@1.1.0': {}
|
|
|
|
|
|
|
|
|
|
'@protobufjs/utf8@1.1.1': {}
|
|
|
|
|
|
|
|
|
|
'@publint/pack@0.1.4': {}
|
|
|
|
|
|
|
|
|
|
'@quansync/fs@1.0.0':
|
|
|
|
|
dependencies:
|
|
|
|
|
quansync: 1.0.0
|
|
|
|
|
|
|
|
|
|
'@rolldown/binding-android-arm64@1.0.3':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@rolldown/binding-android-arm64@1.1.1':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@rolldown/binding-darwin-arm64@1.0.3':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@rolldown/binding-darwin-arm64@1.1.1':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@rolldown/binding-darwin-x64@1.0.3':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@rolldown/binding-darwin-x64@1.1.1':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@rolldown/binding-freebsd-x64@1.0.3':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@rolldown/binding-freebsd-x64@1.1.1':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@rolldown/binding-linux-arm-gnueabihf@1.0.3':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@rolldown/binding-linux-arm-gnueabihf@1.1.1':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@rolldown/binding-linux-arm64-gnu@1.0.3':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@rolldown/binding-linux-arm64-gnu@1.1.1':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@rolldown/binding-linux-arm64-musl@1.0.3':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@rolldown/binding-linux-arm64-musl@1.1.1':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@rolldown/binding-linux-ppc64-gnu@1.0.3':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@rolldown/binding-linux-ppc64-gnu@1.1.1':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@rolldown/binding-linux-s390x-gnu@1.0.3':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@rolldown/binding-linux-s390x-gnu@1.1.1':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@rolldown/binding-linux-x64-gnu@1.0.3':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@rolldown/binding-linux-x64-gnu@1.1.1':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@rolldown/binding-linux-x64-musl@1.0.3':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@rolldown/binding-linux-x64-musl@1.1.1':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@rolldown/binding-openharmony-arm64@1.0.3':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@rolldown/binding-openharmony-arm64@1.1.1':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@rolldown/binding-wasm32-wasi@1.0.3':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@emnapi/core': 1.10.0
|
|
|
|
|
'@emnapi/runtime': 1.10.0
|
|
|
|
|
'@napi-rs/wasm-runtime': 1.1.5(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@rolldown/binding-wasm32-wasi@1.1.1':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@emnapi/core': 1.11.0
|
|
|
|
|
'@emnapi/runtime': 1.11.0
|
|
|
|
|
'@napi-rs/wasm-runtime': 1.1.5(@emnapi/core@1.11.0)(@emnapi/runtime@1.11.0)
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@rolldown/binding-win32-arm64-msvc@1.0.3':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@rolldown/binding-win32-arm64-msvc@1.1.1':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@rolldown/binding-win32-x64-msvc@1.0.3':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@rolldown/binding-win32-x64-msvc@1.1.1':
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@rolldown/pluginutils@1.0.1': {}
|
|
|
|
|
|
|
|
|
|
'@smithy/core@3.24.7':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@aws-crypto/crc32': 5.2.0
|
|
|
|
|
'@smithy/types': 4.14.4
|
|
|
|
|
tslib: 2.8.1
|
|
|
|
|
|
|
|
|
|
'@smithy/credential-provider-imds@4.3.9':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@smithy/core': 3.24.7
|
|
|
|
|
'@smithy/types': 4.14.4
|
|
|
|
|
tslib: 2.8.1
|
|
|
|
|
|
|
|
|
|
'@smithy/fetch-http-handler@5.4.7':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@smithy/core': 3.24.7
|
|
|
|
|
'@smithy/types': 4.14.4
|
|
|
|
|
tslib: 2.8.1
|
|
|
|
|
|
|
|
|
|
'@smithy/is-array-buffer@2.2.0':
|
|
|
|
|
dependencies:
|
|
|
|
|
tslib: 2.8.1
|
|
|
|
|
|
|
|
|
|
'@smithy/node-http-handler@4.7.3':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@smithy/core': 3.24.7
|
|
|
|
|
'@smithy/types': 4.14.4
|
|
|
|
|
tslib: 2.8.1
|
|
|
|
|
|
|
|
|
|
'@smithy/node-http-handler@4.7.8':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@smithy/core': 3.24.7
|
|
|
|
|
'@smithy/types': 4.14.4
|
|
|
|
|
tslib: 2.8.1
|
|
|
|
|
|
|
|
|
|
'@smithy/signature-v4@5.4.7':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@smithy/core': 3.24.7
|
|
|
|
|
'@smithy/types': 4.14.4
|
|
|
|
|
tslib: 2.8.1
|
|
|
|
|
|
|
|
|
|
'@smithy/types@4.14.4':
|
|
|
|
|
dependencies:
|
|
|
|
|
tslib: 2.8.1
|
|
|
|
|
|
|
|
|
|
'@smithy/util-buffer-from@2.2.0':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@smithy/is-array-buffer': 2.2.0
|
|
|
|
|
tslib: 2.8.1
|
|
|
|
|
|
|
|
|
|
'@smithy/util-utf8@2.3.0':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@smithy/util-buffer-from': 2.2.0
|
|
|
|
|
tslib: 2.8.1
|
|
|
|
|
|
|
|
|
|
'@standard-schema/spec@1.1.0': {}
|
|
|
|
|
|
|
|
|
|
'@stylistic/eslint-plugin@5.10.0(eslint@10.5.0(jiti@2.7.0))':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@eslint-community/eslint-utils': 4.9.1(eslint@10.5.0(jiti@2.7.0))
|
|
|
|
|
'@typescript-eslint/types': 8.61.0
|
|
|
|
|
eslint: 10.5.0(jiti@2.7.0)
|
|
|
|
|
eslint-visitor-keys: 4.2.1
|
|
|
|
|
espree: 10.4.0
|
|
|
|
|
estraverse: 5.3.0
|
|
|
|
|
picomatch: 4.0.4
|
|
|
|
|
|
|
|
|
|
'@tybys/wasm-util@0.10.2':
|
|
|
|
|
dependencies:
|
|
|
|
|
tslib: 2.8.1
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
'@types/babel__code-frame@7.27.0': {}
|
|
|
|
|
|
|
|
|
|
'@types/chai@5.2.3':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@types/deep-eql': 4.0.2
|
|
|
|
|
assertion-error: 2.0.1
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
'@types/d3-array@3.2.2': {}
|
|
|
|
|
|
|
|
|
|
'@types/d3-axis@3.0.6':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@types/d3-selection': 3.0.11
|
|
|
|
|
|
|
|
|
|
'@types/d3-brush@3.0.6':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@types/d3-selection': 3.0.11
|
|
|
|
|
|
|
|
|
|
'@types/d3-chord@3.0.6': {}
|
|
|
|
|
|
|
|
|
|
'@types/d3-color@3.1.3': {}
|
|
|
|
|
|
|
|
|
|
'@types/d3-contour@3.0.6':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@types/d3-array': 3.2.2
|
|
|
|
|
'@types/geojson': 7946.0.16
|
|
|
|
|
|
|
|
|
|
'@types/d3-delaunay@6.0.4': {}
|
|
|
|
|
|
|
|
|
|
'@types/d3-dispatch@3.0.7': {}
|
|
|
|
|
|
|
|
|
|
'@types/d3-drag@3.0.7':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@types/d3-selection': 3.0.11
|
|
|
|
|
|
|
|
|
|
'@types/d3-dsv@3.0.7': {}
|
|
|
|
|
|
|
|
|
|
'@types/d3-ease@3.0.2': {}
|
|
|
|
|
|
|
|
|
|
'@types/d3-fetch@3.0.7':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@types/d3-dsv': 3.0.7
|
|
|
|
|
|
|
|
|
|
'@types/d3-force@3.0.10': {}
|
|
|
|
|
|
|
|
|
|
'@types/d3-format@3.0.4': {}
|
|
|
|
|
|
|
|
|
|
'@types/d3-geo@3.1.0':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@types/geojson': 7946.0.16
|
|
|
|
|
|
|
|
|
|
'@types/d3-hierarchy@3.1.7': {}
|
|
|
|
|
|
|
|
|
|
'@types/d3-interpolate@3.0.4':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@types/d3-color': 3.1.3
|
|
|
|
|
|
|
|
|
|
'@types/d3-path@3.1.1': {}
|
|
|
|
|
|
|
|
|
|
'@types/d3-polygon@3.0.2': {}
|
|
|
|
|
|
|
|
|
|
'@types/d3-quadtree@3.0.6': {}
|
|
|
|
|
|
|
|
|
|
'@types/d3-random@3.0.3': {}
|
|
|
|
|
|
|
|
|
|
'@types/d3-scale-chromatic@3.1.0': {}
|
|
|
|
|
|
|
|
|
|
'@types/d3-scale@4.0.9':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@types/d3-time': 3.0.4
|
|
|
|
|
|
|
|
|
|
'@types/d3-selection@3.0.11': {}
|
|
|
|
|
|
|
|
|
|
'@types/d3-shape@3.1.8':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@types/d3-path': 3.1.1
|
|
|
|
|
|
|
|
|
|
'@types/d3-time-format@4.0.3': {}
|
|
|
|
|
|
|
|
|
|
'@types/d3-time@3.0.4': {}
|
|
|
|
|
|
|
|
|
|
'@types/d3-timer@3.0.2': {}
|
|
|
|
|
|
|
|
|
|
'@types/d3-transition@3.0.9':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@types/d3-selection': 3.0.11
|
|
|
|
|
|
|
|
|
|
'@types/d3-zoom@3.0.8':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@types/d3-interpolate': 3.0.4
|
|
|
|
|
'@types/d3-selection': 3.0.11
|
|
|
|
|
|
|
|
|
|
'@types/d3@7.4.3':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@types/d3-array': 3.2.2
|
|
|
|
|
'@types/d3-axis': 3.0.6
|
|
|
|
|
'@types/d3-brush': 3.0.6
|
|
|
|
|
'@types/d3-chord': 3.0.6
|
|
|
|
|
'@types/d3-color': 3.1.3
|
|
|
|
|
'@types/d3-contour': 3.0.6
|
|
|
|
|
'@types/d3-delaunay': 6.0.4
|
|
|
|
|
'@types/d3-dispatch': 3.0.7
|
|
|
|
|
'@types/d3-drag': 3.0.7
|
|
|
|
|
'@types/d3-dsv': 3.0.7
|
|
|
|
|
'@types/d3-ease': 3.0.2
|
|
|
|
|
'@types/d3-fetch': 3.0.7
|
|
|
|
|
'@types/d3-force': 3.0.10
|
|
|
|
|
'@types/d3-format': 3.0.4
|
|
|
|
|
'@types/d3-geo': 3.1.0
|
|
|
|
|
'@types/d3-hierarchy': 3.1.7
|
|
|
|
|
'@types/d3-interpolate': 3.0.4
|
|
|
|
|
'@types/d3-path': 3.1.1
|
|
|
|
|
'@types/d3-polygon': 3.0.2
|
|
|
|
|
'@types/d3-quadtree': 3.0.6
|
|
|
|
|
'@types/d3-random': 3.0.3
|
|
|
|
|
'@types/d3-scale': 4.0.9
|
|
|
|
|
'@types/d3-scale-chromatic': 3.1.0
|
|
|
|
|
'@types/d3-selection': 3.0.11
|
|
|
|
|
'@types/d3-shape': 3.1.8
|
|
|
|
|
'@types/d3-time': 3.0.4
|
|
|
|
|
'@types/d3-time-format': 4.0.3
|
|
|
|
|
'@types/d3-timer': 3.0.2
|
|
|
|
|
'@types/d3-transition': 3.0.9
|
|
|
|
|
'@types/d3-zoom': 3.0.8
|
|
|
|
|
|
refactor: detect md hard-wraps via mdast AST, not regex
Per review feedback (use a real markdown parser with an AST linked to
source positions), rewrite verify-md-wrap to parse each file with
mdast-util-from-markdown (the CommonMark parser behind remark) + the GFM
extension, then flag any `paragraph` node whose source span covers more
than one line.
Why a parser over the hand-rolled line scanner:
- It is a checker, not a formatter — it reports and never rewrites, so
zero cosmetic churn (no emphasis-marker or table-delimiter
normalization, which is why Prettier was rejected for this).
- The AST owns every structural exemption (fenced code of any fence
length, tables, lists, blockquotes, HTML, headings, reference defs),
fixing both bugs the regex version had: it now catches wrapped
list-item / blockquote prose (a `paragraph` inside those nodes) and no
longer false-positives on a longer ```` fence wrapping an inner ```.
Also unwrap two pre-existing hard-wrapped blockquotes (architecture.md,
adding-a-tool.md) that the stricter AST check correctly surfaced.
2026-06-16 23:35:33 +08:00
|
|
|
'@types/debug@4.1.13':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@types/ms': 2.1.0
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
'@types/deep-eql@4.0.2': {}
|
|
|
|
|
|
|
|
|
|
'@types/esrecurse@4.3.1': {}
|
|
|
|
|
|
|
|
|
|
'@types/estree@1.0.9': {}
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
'@types/geojson@7946.0.16': {}
|
|
|
|
|
|
|
|
|
|
'@types/jsdom@28.0.3':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@types/node': 25.9.3
|
|
|
|
|
'@types/tough-cookie': 4.0.5
|
|
|
|
|
parse5: 8.0.1
|
|
|
|
|
undici-types: 7.24.6
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
'@types/jsesc@2.5.1': {}
|
|
|
|
|
|
|
|
|
|
'@types/json-schema@7.0.15': {}
|
|
|
|
|
|
refactor: detect md hard-wraps via mdast AST, not regex
Per review feedback (use a real markdown parser with an AST linked to
source positions), rewrite verify-md-wrap to parse each file with
mdast-util-from-markdown (the CommonMark parser behind remark) + the GFM
extension, then flag any `paragraph` node whose source span covers more
than one line.
Why a parser over the hand-rolled line scanner:
- It is a checker, not a formatter — it reports and never rewrites, so
zero cosmetic churn (no emphasis-marker or table-delimiter
normalization, which is why Prettier was rejected for this).
- The AST owns every structural exemption (fenced code of any fence
length, tables, lists, blockquotes, HTML, headings, reference defs),
fixing both bugs the regex version had: it now catches wrapped
list-item / blockquote prose (a `paragraph` inside those nodes) and no
longer false-positives on a longer ```` fence wrapping an inner ```.
Also unwrap two pre-existing hard-wrapped blockquotes (architecture.md,
adding-a-tool.md) that the stricter AST check correctly surfaced.
2026-06-16 23:35:33 +08:00
|
|
|
'@types/mdast@4.0.4':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@types/unist': 3.0.3
|
|
|
|
|
|
|
|
|
|
'@types/ms@2.1.0': {}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
'@types/node@25.9.3':
|
|
|
|
|
dependencies:
|
|
|
|
|
undici-types: 7.24.6
|
|
|
|
|
|
|
|
|
|
'@types/picomatch@3.0.2': {}
|
|
|
|
|
|
|
|
|
|
'@types/retry@0.12.0': {}
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
'@types/tough-cookie@4.0.5': {}
|
|
|
|
|
|
2026-07-07 20:18:01 +08:00
|
|
|
'@types/trusted-types@2.0.7':
|
|
|
|
|
optional: true
|
|
|
|
|
|
refactor: detect md hard-wraps via mdast AST, not regex
Per review feedback (use a real markdown parser with an AST linked to
source positions), rewrite verify-md-wrap to parse each file with
mdast-util-from-markdown (the CommonMark parser behind remark) + the GFM
extension, then flag any `paragraph` node whose source span covers more
than one line.
Why a parser over the hand-rolled line scanner:
- It is a checker, not a formatter — it reports and never rewrites, so
zero cosmetic churn (no emphasis-marker or table-delimiter
normalization, which is why Prettier was rejected for this).
- The AST owns every structural exemption (fenced code of any fence
length, tables, lists, blockquotes, HTML, headings, reference defs),
fixing both bugs the regex version had: it now catches wrapped
list-item / blockquote prose (a `paragraph` inside those nodes) and no
longer false-positives on a longer ```` fence wrapping an inner ```.
Also unwrap two pre-existing hard-wrapped blockquotes (architecture.md,
adding-a-tool.md) that the stricter AST check correctly surfaced.
2026-06-16 23:35:33 +08:00
|
|
|
'@types/unist@3.0.3': {}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
'@typescript-eslint/eslint-plugin@8.61.0(@typescript-eslint/parser@8.61.0(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3)':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@eslint-community/regexpp': 4.12.2
|
|
|
|
|
'@typescript-eslint/parser': 8.61.0(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3)
|
|
|
|
|
'@typescript-eslint/scope-manager': 8.61.0
|
|
|
|
|
'@typescript-eslint/type-utils': 8.61.0(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3)
|
|
|
|
|
'@typescript-eslint/utils': 8.61.0(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3)
|
|
|
|
|
'@typescript-eslint/visitor-keys': 8.61.0
|
|
|
|
|
eslint: 10.5.0(jiti@2.7.0)
|
|
|
|
|
ignore: 7.0.5
|
|
|
|
|
natural-compare: 1.4.0
|
|
|
|
|
ts-api-utils: 2.5.0(typescript@6.0.3)
|
|
|
|
|
typescript: 6.0.3
|
|
|
|
|
transitivePeerDependencies:
|
|
|
|
|
- supports-color
|
|
|
|
|
|
|
|
|
|
'@typescript-eslint/parser@8.61.0(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3)':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@typescript-eslint/scope-manager': 8.61.0
|
|
|
|
|
'@typescript-eslint/types': 8.61.0
|
|
|
|
|
'@typescript-eslint/typescript-estree': 8.61.0(typescript@6.0.3)
|
|
|
|
|
'@typescript-eslint/visitor-keys': 8.61.0
|
|
|
|
|
debug: 4.4.3
|
|
|
|
|
eslint: 10.5.0(jiti@2.7.0)
|
|
|
|
|
typescript: 6.0.3
|
|
|
|
|
transitivePeerDependencies:
|
|
|
|
|
- supports-color
|
|
|
|
|
|
|
|
|
|
'@typescript-eslint/project-service@8.61.0(typescript@6.0.3)':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@typescript-eslint/tsconfig-utils': 8.61.0(typescript@6.0.3)
|
|
|
|
|
'@typescript-eslint/types': 8.61.0
|
|
|
|
|
debug: 4.4.3
|
|
|
|
|
typescript: 6.0.3
|
|
|
|
|
transitivePeerDependencies:
|
|
|
|
|
- supports-color
|
|
|
|
|
|
|
|
|
|
'@typescript-eslint/scope-manager@8.61.0':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@typescript-eslint/types': 8.61.0
|
|
|
|
|
'@typescript-eslint/visitor-keys': 8.61.0
|
|
|
|
|
|
|
|
|
|
'@typescript-eslint/tsconfig-utils@8.61.0(typescript@6.0.3)':
|
|
|
|
|
dependencies:
|
|
|
|
|
typescript: 6.0.3
|
|
|
|
|
|
|
|
|
|
'@typescript-eslint/type-utils@8.61.0(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3)':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@typescript-eslint/types': 8.61.0
|
|
|
|
|
'@typescript-eslint/typescript-estree': 8.61.0(typescript@6.0.3)
|
|
|
|
|
'@typescript-eslint/utils': 8.61.0(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3)
|
|
|
|
|
debug: 4.4.3
|
|
|
|
|
eslint: 10.5.0(jiti@2.7.0)
|
|
|
|
|
ts-api-utils: 2.5.0(typescript@6.0.3)
|
|
|
|
|
typescript: 6.0.3
|
|
|
|
|
transitivePeerDependencies:
|
|
|
|
|
- supports-color
|
|
|
|
|
|
|
|
|
|
'@typescript-eslint/types@8.61.0': {}
|
|
|
|
|
|
|
|
|
|
'@typescript-eslint/typescript-estree@8.61.0(typescript@6.0.3)':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@typescript-eslint/project-service': 8.61.0(typescript@6.0.3)
|
|
|
|
|
'@typescript-eslint/tsconfig-utils': 8.61.0(typescript@6.0.3)
|
|
|
|
|
'@typescript-eslint/types': 8.61.0
|
|
|
|
|
'@typescript-eslint/visitor-keys': 8.61.0
|
|
|
|
|
debug: 4.4.3
|
|
|
|
|
minimatch: 10.2.5
|
|
|
|
|
semver: 7.8.4
|
|
|
|
|
tinyglobby: 0.2.17
|
|
|
|
|
ts-api-utils: 2.5.0(typescript@6.0.3)
|
|
|
|
|
typescript: 6.0.3
|
|
|
|
|
transitivePeerDependencies:
|
|
|
|
|
- supports-color
|
|
|
|
|
|
|
|
|
|
'@typescript-eslint/utils@8.61.0(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3)':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@eslint-community/eslint-utils': 4.9.1(eslint@10.5.0(jiti@2.7.0))
|
|
|
|
|
'@typescript-eslint/scope-manager': 8.61.0
|
|
|
|
|
'@typescript-eslint/types': 8.61.0
|
|
|
|
|
'@typescript-eslint/typescript-estree': 8.61.0(typescript@6.0.3)
|
|
|
|
|
eslint: 10.5.0(jiti@2.7.0)
|
|
|
|
|
typescript: 6.0.3
|
|
|
|
|
transitivePeerDependencies:
|
|
|
|
|
- supports-color
|
|
|
|
|
|
|
|
|
|
'@typescript-eslint/visitor-keys@8.61.0':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@typescript-eslint/types': 8.61.0
|
|
|
|
|
eslint-visitor-keys: 5.0.1
|
|
|
|
|
|
2026-07-07 20:18:01 +08:00
|
|
|
'@upsetjs/venn.js@2.0.0':
|
|
|
|
|
optionalDependencies:
|
|
|
|
|
d3-selection: 3.0.0
|
|
|
|
|
d3-transition: 3.0.1(d3-selection@3.0.0)
|
2026-07-03 01:32:01 +08:00
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
'@vitest/coverage-v8@4.1.8(vitest@4.1.8)':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@bcoe/v8-coverage': 1.0.2
|
|
|
|
|
'@vitest/utils': 4.1.8
|
|
|
|
|
ast-v8-to-istanbul: 1.0.4
|
|
|
|
|
istanbul-lib-coverage: 3.2.2
|
|
|
|
|
istanbul-lib-report: 3.0.1
|
|
|
|
|
istanbul-reports: 3.2.0
|
|
|
|
|
magicast: 0.5.3
|
|
|
|
|
obug: 2.1.3
|
|
|
|
|
std-env: 4.1.0
|
|
|
|
|
tinyrainbow: 3.1.0
|
2026-07-03 01:32:01 +08:00
|
|
|
vitest: 4.1.8(@types/node@25.9.3)(@vitest/coverage-v8@4.1.8)(jsdom@29.1.1)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0))
|
2026-06-16 14:55:37 +08:00
|
|
|
|
|
|
|
|
'@vitest/expect@4.1.8':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@standard-schema/spec': 1.1.0
|
|
|
|
|
'@types/chai': 5.2.3
|
|
|
|
|
'@vitest/spy': 4.1.8
|
|
|
|
|
'@vitest/utils': 4.1.8
|
|
|
|
|
chai: 6.2.2
|
|
|
|
|
tinyrainbow: 3.1.0
|
|
|
|
|
|
|
|
|
|
'@vitest/mocker@4.1.8(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0))':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@vitest/spy': 4.1.8
|
|
|
|
|
estree-walker: 3.0.3
|
|
|
|
|
magic-string: 0.30.21
|
|
|
|
|
optionalDependencies:
|
|
|
|
|
vite: 8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0)
|
|
|
|
|
|
|
|
|
|
'@vitest/pretty-format@4.1.8':
|
|
|
|
|
dependencies:
|
|
|
|
|
tinyrainbow: 3.1.0
|
|
|
|
|
|
|
|
|
|
'@vitest/runner@4.1.8':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@vitest/utils': 4.1.8
|
|
|
|
|
pathe: 2.0.3
|
|
|
|
|
|
|
|
|
|
'@vitest/snapshot@4.1.8':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@vitest/pretty-format': 4.1.8
|
|
|
|
|
'@vitest/utils': 4.1.8
|
|
|
|
|
magic-string: 0.30.21
|
|
|
|
|
pathe: 2.0.3
|
|
|
|
|
|
|
|
|
|
'@vitest/spy@4.1.8': {}
|
|
|
|
|
|
|
|
|
|
'@vitest/utils@4.1.8':
|
|
|
|
|
dependencies:
|
|
|
|
|
'@vitest/pretty-format': 4.1.8
|
|
|
|
|
convert-source-map: 2.0.0
|
|
|
|
|
tinyrainbow: 3.1.0
|
|
|
|
|
|
|
|
|
|
acorn-jsx@5.3.2(acorn@8.17.0):
|
|
|
|
|
dependencies:
|
|
|
|
|
acorn: 8.17.0
|
|
|
|
|
|
|
|
|
|
acorn@8.17.0: {}
|
|
|
|
|
|
|
|
|
|
agent-base@7.1.4: {}
|
|
|
|
|
|
|
|
|
|
ajv@6.15.0:
|
|
|
|
|
dependencies:
|
|
|
|
|
fast-deep-equal: 3.1.3
|
|
|
|
|
fast-json-stable-stringify: 2.1.0
|
|
|
|
|
json-schema-traverse: 0.4.1
|
|
|
|
|
uri-js: 4.4.1
|
|
|
|
|
|
|
|
|
|
ansis@4.3.1: {}
|
|
|
|
|
|
|
|
|
|
anynum@1.0.0: {}
|
|
|
|
|
|
|
|
|
|
argparse@2.0.1: {}
|
|
|
|
|
|
|
|
|
|
assertion-error@2.0.1: {}
|
|
|
|
|
|
|
|
|
|
ast-kit@3.0.0-beta.1:
|
|
|
|
|
dependencies:
|
|
|
|
|
'@babel/parser': 8.0.0-rc.6
|
|
|
|
|
estree-walker: 3.0.3
|
|
|
|
|
pathe: 2.0.3
|
|
|
|
|
|
|
|
|
|
ast-v8-to-istanbul@1.0.4:
|
|
|
|
|
dependencies:
|
|
|
|
|
'@jridgewell/trace-mapping': 0.3.31
|
|
|
|
|
estree-walker: 3.0.3
|
|
|
|
|
js-tokens: 10.0.0
|
|
|
|
|
|
|
|
|
|
balanced-match@4.0.4: {}
|
|
|
|
|
|
|
|
|
|
base64-js@1.5.1: {}
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
bidi-js@1.0.3:
|
|
|
|
|
dependencies:
|
|
|
|
|
require-from-string: 2.0.2
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
bignumber.js@9.3.1: {}
|
|
|
|
|
|
|
|
|
|
birpc@4.0.0: {}
|
|
|
|
|
|
|
|
|
|
bowser@2.14.1: {}
|
|
|
|
|
|
|
|
|
|
brace-expansion@5.0.6:
|
|
|
|
|
dependencies:
|
|
|
|
|
balanced-match: 4.0.4
|
|
|
|
|
|
|
|
|
|
buffer-equal-constant-time@1.0.1: {}
|
|
|
|
|
|
|
|
|
|
cac@7.0.0: {}
|
|
|
|
|
|
refactor: detect md hard-wraps via mdast AST, not regex
Per review feedback (use a real markdown parser with an AST linked to
source positions), rewrite verify-md-wrap to parse each file with
mdast-util-from-markdown (the CommonMark parser behind remark) + the GFM
extension, then flag any `paragraph` node whose source span covers more
than one line.
Why a parser over the hand-rolled line scanner:
- It is a checker, not a formatter — it reports and never rewrites, so
zero cosmetic churn (no emphasis-marker or table-delimiter
normalization, which is why Prettier was rejected for this).
- The AST owns every structural exemption (fenced code of any fence
length, tables, lists, blockquotes, HTML, headings, reference defs),
fixing both bugs the regex version had: it now catches wrapped
list-item / blockquote prose (a `paragraph` inside those nodes) and no
longer false-positives on a longer ```` fence wrapping an inner ```.
Also unwrap two pre-existing hard-wrapped blockquotes (architecture.md,
adding-a-tool.md) that the stricter AST check correctly surfaced.
2026-06-16 23:35:33 +08:00
|
|
|
ccount@2.0.1: {}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
chai@6.2.2: {}
|
|
|
|
|
|
refactor: detect md hard-wraps via mdast AST, not regex
Per review feedback (use a real markdown parser with an AST linked to
source positions), rewrite verify-md-wrap to parse each file with
mdast-util-from-markdown (the CommonMark parser behind remark) + the GFM
extension, then flag any `paragraph` node whose source span covers more
than one line.
Why a parser over the hand-rolled line scanner:
- It is a checker, not a formatter — it reports and never rewrites, so
zero cosmetic churn (no emphasis-marker or table-delimiter
normalization, which is why Prettier was rejected for this).
- The AST owns every structural exemption (fenced code of any fence
length, tables, lists, blockquotes, HTML, headings, reference defs),
fixing both bugs the regex version had: it now catches wrapped
list-item / blockquote prose (a `paragraph` inside those nodes) and no
longer false-positives on a longer ```` fence wrapping an inner ```.
Also unwrap two pre-existing hard-wrapped blockquotes (architecture.md,
adding-a-tool.md) that the stricter AST check correctly surfaced.
2026-06-16 23:35:33 +08:00
|
|
|
character-entities@2.0.2: {}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
chokidar@4.0.3:
|
|
|
|
|
dependencies:
|
|
|
|
|
readdirp: 4.1.2
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
commander@7.2.0: {}
|
|
|
|
|
|
|
|
|
|
commander@8.3.0: {}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
convert-source-map@2.0.0: {}
|
|
|
|
|
|
|
|
|
|
cordis@4.0.0-rc.6(@cordisjs/plugin-include@1.0.4)(@cordisjs/plugin-loader@1.0.0-rc.4):
|
|
|
|
|
dependencies:
|
|
|
|
|
'@standard-schema/spec': 1.1.0
|
|
|
|
|
cosmokit: 1.8.1
|
|
|
|
|
optionalDependencies:
|
|
|
|
|
'@cordisjs/plugin-include': 1.0.4(@cordisjs/plugin-loader@1.0.0-rc.4)(cordis@4.0.0-rc.6)
|
|
|
|
|
'@cordisjs/plugin-loader': 1.0.0-rc.4(cordis@4.0.0-rc.6)
|
|
|
|
|
|
refactor(examples): extract the app spine into dsh-agent-core + app packages
Implements docs/rfc/.../2026-06-20-extract-example-app-packages.md. Each
example was thick — a hand-rolled start.ts, an infra preamble, nested
base.yml/base-core.yml/acp-tail.yml includes, and a coupled front-door
cluster enforced only by prose. This moves the composition into packages so
each example is a thin leaf cordis.yml: pick the swappable backends, load one
app package.
New packages:
- @deepseek-ai/dsh-agent-core (packages/core/agent-core): one bundle plugin
that loads the providerless/executor-less/UI-less spine (timer + llm +
sessions + system-prompt + tools + agents + invariants + tool-bash +
agent-loop) via ctx.plugin(...) inside apply(), and forwards agent-loop's
`agents` list as its own Config (export const Config = AgentLoop.Config,
default []).
- @deepseek-ai/dsh-stdio-agent (packages/ui/stdio-agent): terminal chat APP —
agent-core + console logger + readline UI + a pre-created `main` agent, with
a bin. The demo:echo/coding front door.
- @deepseek-ai/dsh-acp-agent (packages/ui/acp-agent): ACP server APP —
agent-core + JSONL persistence + the acp bridge, NO stdout logger, with a
bin. The stdout-purity footgun is structurally unreachable from the leaf.
Amendment to the RFC: hmr stays a LEAF cordis.yml entry, not baked into
dsh-stdio-agent. hmr is a Loader-only dev plugin (throws without
--expose-internals; the in-process test tier can't even import its decorator
form), so a package statically importing it could never carry the per-file
coverage gate. Unlike the console logger, a stray hmr is not a stdout-purity
footgun, so leaving it at the leaf costs no safety. With hmr out, all three new
packages carry in-process unit specs at 100%.
Boot glue (Loader tail, .env load, snapshot-mode selection, stdin-dispose
lifecycle) moves into each app's bin; start.ts and base.yml/base-core.yml/
acp-tail.yml are deleted. Each app package gets a keyless real-load-path test
that boots through its bin + the cordis Loader (guarding the unwrapExports
export-shape bug class, postmortem 0001). ACP snapshot replay stays green
against the existing committed goldens (pure boot restructuring). RFC moved
proposed->implemented with the amendment recorded; package/example/architecture
docs and the module graph updated.
2026-06-21 12:03:44 +08:00
|
|
|
cordis@4.0.0-rc.6(@cordisjs/plugin-include@vendor+include)(@cordisjs/plugin-loader@vendor+loader):
|
|
|
|
|
dependencies:
|
|
|
|
|
'@standard-schema/spec': 1.1.0
|
|
|
|
|
cosmokit: 1.8.1
|
|
|
|
|
optionalDependencies:
|
|
|
|
|
'@cordisjs/plugin-include': link:vendor/include
|
|
|
|
|
'@cordisjs/plugin-loader': link:vendor/loader
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
cose-base@1.0.3:
|
|
|
|
|
dependencies:
|
|
|
|
|
layout-base: 1.0.2
|
|
|
|
|
|
|
|
|
|
cose-base@2.2.0:
|
|
|
|
|
dependencies:
|
|
|
|
|
layout-base: 2.0.1
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
cosmokit@1.8.1: {}
|
|
|
|
|
|
|
|
|
|
cross-spawn@7.0.6:
|
|
|
|
|
dependencies:
|
|
|
|
|
path-key: 3.1.1
|
|
|
|
|
shebang-command: 2.0.0
|
|
|
|
|
which: 2.0.2
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
css-tree@3.2.1:
|
|
|
|
|
dependencies:
|
|
|
|
|
mdn-data: 2.27.1
|
|
|
|
|
source-map-js: 1.2.1
|
|
|
|
|
|
|
|
|
|
cytoscape-cose-bilkent@4.1.0(cytoscape@3.34.0):
|
|
|
|
|
dependencies:
|
|
|
|
|
cose-base: 1.0.3
|
|
|
|
|
cytoscape: 3.34.0
|
|
|
|
|
|
|
|
|
|
cytoscape-fcose@2.2.0(cytoscape@3.34.0):
|
|
|
|
|
dependencies:
|
|
|
|
|
cose-base: 2.2.0
|
|
|
|
|
cytoscape: 3.34.0
|
|
|
|
|
|
|
|
|
|
cytoscape@3.34.0: {}
|
|
|
|
|
|
|
|
|
|
d3-array@2.12.1:
|
|
|
|
|
dependencies:
|
|
|
|
|
internmap: 1.0.1
|
|
|
|
|
|
|
|
|
|
d3-array@3.2.4:
|
|
|
|
|
dependencies:
|
|
|
|
|
internmap: 2.0.3
|
|
|
|
|
|
|
|
|
|
d3-axis@3.0.0: {}
|
|
|
|
|
|
|
|
|
|
d3-brush@3.0.0:
|
|
|
|
|
dependencies:
|
|
|
|
|
d3-dispatch: 3.0.1
|
|
|
|
|
d3-drag: 3.0.0
|
|
|
|
|
d3-interpolate: 3.0.1
|
|
|
|
|
d3-selection: 3.0.0
|
|
|
|
|
d3-transition: 3.0.1(d3-selection@3.0.0)
|
|
|
|
|
|
|
|
|
|
d3-chord@3.0.1:
|
|
|
|
|
dependencies:
|
|
|
|
|
d3-path: 3.1.0
|
|
|
|
|
|
|
|
|
|
d3-color@3.1.0: {}
|
|
|
|
|
|
|
|
|
|
d3-contour@4.0.2:
|
|
|
|
|
dependencies:
|
|
|
|
|
d3-array: 3.2.4
|
|
|
|
|
|
|
|
|
|
d3-delaunay@6.0.4:
|
|
|
|
|
dependencies:
|
|
|
|
|
delaunator: 5.1.0
|
|
|
|
|
|
|
|
|
|
d3-dispatch@3.0.1: {}
|
|
|
|
|
|
|
|
|
|
d3-drag@3.0.0:
|
|
|
|
|
dependencies:
|
|
|
|
|
d3-dispatch: 3.0.1
|
|
|
|
|
d3-selection: 3.0.0
|
|
|
|
|
|
|
|
|
|
d3-dsv@3.0.1:
|
|
|
|
|
dependencies:
|
|
|
|
|
commander: 7.2.0
|
|
|
|
|
iconv-lite: 0.6.3
|
|
|
|
|
rw: 1.3.3
|
|
|
|
|
|
|
|
|
|
d3-ease@3.0.1: {}
|
|
|
|
|
|
|
|
|
|
d3-fetch@3.0.1:
|
|
|
|
|
dependencies:
|
|
|
|
|
d3-dsv: 3.0.1
|
|
|
|
|
|
|
|
|
|
d3-force@3.0.0:
|
|
|
|
|
dependencies:
|
|
|
|
|
d3-dispatch: 3.0.1
|
|
|
|
|
d3-quadtree: 3.0.1
|
|
|
|
|
d3-timer: 3.0.1
|
|
|
|
|
|
|
|
|
|
d3-format@3.1.2: {}
|
|
|
|
|
|
|
|
|
|
d3-geo@3.1.1:
|
|
|
|
|
dependencies:
|
|
|
|
|
d3-array: 3.2.4
|
|
|
|
|
|
|
|
|
|
d3-hierarchy@3.1.2: {}
|
|
|
|
|
|
|
|
|
|
d3-interpolate@3.0.1:
|
|
|
|
|
dependencies:
|
|
|
|
|
d3-color: 3.1.0
|
|
|
|
|
|
|
|
|
|
d3-path@1.0.9: {}
|
|
|
|
|
|
|
|
|
|
d3-path@3.1.0: {}
|
|
|
|
|
|
|
|
|
|
d3-polygon@3.0.1: {}
|
|
|
|
|
|
|
|
|
|
d3-quadtree@3.0.1: {}
|
|
|
|
|
|
|
|
|
|
d3-random@3.0.1: {}
|
|
|
|
|
|
|
|
|
|
d3-sankey@0.12.3:
|
|
|
|
|
dependencies:
|
|
|
|
|
d3-array: 2.12.1
|
|
|
|
|
d3-shape: 1.3.7
|
|
|
|
|
|
|
|
|
|
d3-scale-chromatic@3.1.0:
|
|
|
|
|
dependencies:
|
|
|
|
|
d3-color: 3.1.0
|
|
|
|
|
d3-interpolate: 3.0.1
|
|
|
|
|
|
|
|
|
|
d3-scale@4.0.2:
|
|
|
|
|
dependencies:
|
|
|
|
|
d3-array: 3.2.4
|
|
|
|
|
d3-format: 3.1.2
|
|
|
|
|
d3-interpolate: 3.0.1
|
|
|
|
|
d3-time: 3.1.0
|
|
|
|
|
d3-time-format: 4.1.0
|
|
|
|
|
|
|
|
|
|
d3-selection@3.0.0: {}
|
|
|
|
|
|
|
|
|
|
d3-shape@1.3.7:
|
|
|
|
|
dependencies:
|
|
|
|
|
d3-path: 1.0.9
|
|
|
|
|
|
|
|
|
|
d3-shape@3.2.0:
|
|
|
|
|
dependencies:
|
|
|
|
|
d3-path: 3.1.0
|
|
|
|
|
|
|
|
|
|
d3-time-format@4.1.0:
|
|
|
|
|
dependencies:
|
|
|
|
|
d3-time: 3.1.0
|
|
|
|
|
|
|
|
|
|
d3-time@3.1.0:
|
|
|
|
|
dependencies:
|
|
|
|
|
d3-array: 3.2.4
|
|
|
|
|
|
|
|
|
|
d3-timer@3.0.1: {}
|
|
|
|
|
|
|
|
|
|
d3-transition@3.0.1(d3-selection@3.0.0):
|
|
|
|
|
dependencies:
|
|
|
|
|
d3-color: 3.1.0
|
|
|
|
|
d3-dispatch: 3.0.1
|
|
|
|
|
d3-ease: 3.0.1
|
|
|
|
|
d3-interpolate: 3.0.1
|
|
|
|
|
d3-selection: 3.0.0
|
|
|
|
|
d3-timer: 3.0.1
|
|
|
|
|
|
|
|
|
|
d3-zoom@3.0.0:
|
|
|
|
|
dependencies:
|
|
|
|
|
d3-dispatch: 3.0.1
|
|
|
|
|
d3-drag: 3.0.0
|
|
|
|
|
d3-interpolate: 3.0.1
|
|
|
|
|
d3-selection: 3.0.0
|
|
|
|
|
d3-transition: 3.0.1(d3-selection@3.0.0)
|
|
|
|
|
|
|
|
|
|
d3@7.9.0:
|
|
|
|
|
dependencies:
|
|
|
|
|
d3-array: 3.2.4
|
|
|
|
|
d3-axis: 3.0.0
|
|
|
|
|
d3-brush: 3.0.0
|
|
|
|
|
d3-chord: 3.0.1
|
|
|
|
|
d3-color: 3.1.0
|
|
|
|
|
d3-contour: 4.0.2
|
|
|
|
|
d3-delaunay: 6.0.4
|
|
|
|
|
d3-dispatch: 3.0.1
|
|
|
|
|
d3-drag: 3.0.0
|
|
|
|
|
d3-dsv: 3.0.1
|
|
|
|
|
d3-ease: 3.0.1
|
|
|
|
|
d3-fetch: 3.0.1
|
|
|
|
|
d3-force: 3.0.0
|
|
|
|
|
d3-format: 3.1.2
|
|
|
|
|
d3-geo: 3.1.1
|
|
|
|
|
d3-hierarchy: 3.1.2
|
|
|
|
|
d3-interpolate: 3.0.1
|
|
|
|
|
d3-path: 3.1.0
|
|
|
|
|
d3-polygon: 3.0.1
|
|
|
|
|
d3-quadtree: 3.0.1
|
|
|
|
|
d3-random: 3.0.1
|
|
|
|
|
d3-scale: 4.0.2
|
|
|
|
|
d3-scale-chromatic: 3.1.0
|
|
|
|
|
d3-selection: 3.0.0
|
|
|
|
|
d3-shape: 3.2.0
|
|
|
|
|
d3-time: 3.1.0
|
|
|
|
|
d3-time-format: 4.1.0
|
|
|
|
|
d3-timer: 3.0.1
|
|
|
|
|
d3-transition: 3.0.1(d3-selection@3.0.0)
|
|
|
|
|
d3-zoom: 3.0.0
|
|
|
|
|
|
|
|
|
|
dagre-d3-es@7.0.14:
|
|
|
|
|
dependencies:
|
|
|
|
|
d3: 7.9.0
|
|
|
|
|
lodash-es: 4.18.1
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
data-uri-to-buffer@4.0.1: {}
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
data-urls@7.0.0:
|
|
|
|
|
dependencies:
|
|
|
|
|
whatwg-mimetype: 5.0.0
|
|
|
|
|
whatwg-url: 16.0.1
|
|
|
|
|
transitivePeerDependencies:
|
|
|
|
|
- '@noble/hashes'
|
|
|
|
|
|
|
|
|
|
dayjs@1.11.21: {}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
debug@4.4.3:
|
|
|
|
|
dependencies:
|
|
|
|
|
ms: 2.1.3
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
decimal.js@10.6.0: {}
|
|
|
|
|
|
refactor: detect md hard-wraps via mdast AST, not regex
Per review feedback (use a real markdown parser with an AST linked to
source positions), rewrite verify-md-wrap to parse each file with
mdast-util-from-markdown (the CommonMark parser behind remark) + the GFM
extension, then flag any `paragraph` node whose source span covers more
than one line.
Why a parser over the hand-rolled line scanner:
- It is a checker, not a formatter — it reports and never rewrites, so
zero cosmetic churn (no emphasis-marker or table-delimiter
normalization, which is why Prettier was rejected for this).
- The AST owns every structural exemption (fenced code of any fence
length, tables, lists, blockquotes, HTML, headings, reference defs),
fixing both bugs the regex version had: it now catches wrapped
list-item / blockquote prose (a `paragraph` inside those nodes) and no
longer false-positives on a longer ```` fence wrapping an inner ```.
Also unwrap two pre-existing hard-wrapped blockquotes (architecture.md,
adding-a-tool.md) that the stricter AST check correctly surfaced.
2026-06-16 23:35:33 +08:00
|
|
|
decode-named-character-reference@1.3.0:
|
|
|
|
|
dependencies:
|
|
|
|
|
character-entities: 2.0.2
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
deep-is@0.1.4: {}
|
|
|
|
|
|
|
|
|
|
defu@6.1.7: {}
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
delaunator@5.1.0:
|
|
|
|
|
dependencies:
|
|
|
|
|
robust-predicates: 3.0.3
|
|
|
|
|
|
refactor: detect md hard-wraps via mdast AST, not regex
Per review feedback (use a real markdown parser with an AST linked to
source positions), rewrite verify-md-wrap to parse each file with
mdast-util-from-markdown (the CommonMark parser behind remark) + the GFM
extension, then flag any `paragraph` node whose source span covers more
than one line.
Why a parser over the hand-rolled line scanner:
- It is a checker, not a formatter — it reports and never rewrites, so
zero cosmetic churn (no emphasis-marker or table-delimiter
normalization, which is why Prettier was rejected for this).
- The AST owns every structural exemption (fenced code of any fence
length, tables, lists, blockquotes, HTML, headings, reference defs),
fixing both bugs the regex version had: it now catches wrapped
list-item / blockquote prose (a `paragraph` inside those nodes) and no
longer false-positives on a longer ```` fence wrapping an inner ```.
Also unwrap two pre-existing hard-wrapped blockquotes (architecture.md,
adding-a-tool.md) that the stricter AST check correctly surfaced.
2026-06-16 23:35:33 +08:00
|
|
|
dequal@2.0.3: {}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
detect-libc@2.1.2: {}
|
|
|
|
|
|
refactor: detect md hard-wraps via mdast AST, not regex
Per review feedback (use a real markdown parser with an AST linked to
source positions), rewrite verify-md-wrap to parse each file with
mdast-util-from-markdown (the CommonMark parser behind remark) + the GFM
extension, then flag any `paragraph` node whose source span covers more
than one line.
Why a parser over the hand-rolled line scanner:
- It is a checker, not a formatter — it reports and never rewrites, so
zero cosmetic churn (no emphasis-marker or table-delimiter
normalization, which is why Prettier was rejected for this).
- The AST owns every structural exemption (fenced code of any fence
length, tables, lists, blockquotes, HTML, headings, reference defs),
fixing both bugs the regex version had: it now catches wrapped
list-item / blockquote prose (a `paragraph` inside those nodes) and no
longer false-positives on a longer ```` fence wrapping an inner ```.
Also unwrap two pre-existing hard-wrapped blockquotes (architecture.md,
adding-a-tool.md) that the stricter AST check correctly surfaced.
2026-06-16 23:35:33 +08:00
|
|
|
devlop@1.1.0:
|
|
|
|
|
dependencies:
|
|
|
|
|
dequal: 2.0.3
|
|
|
|
|
|
2026-07-03 17:12:00 +08:00
|
|
|
diff@9.0.0: {}
|
|
|
|
|
|
2026-07-07 20:18:01 +08:00
|
|
|
dompurify@3.4.11:
|
|
|
|
|
optionalDependencies:
|
|
|
|
|
'@types/trusted-types': 2.0.7
|
2026-07-03 01:32:01 +08:00
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
dts-resolver@3.0.0(oxc-resolver@11.20.0):
|
|
|
|
|
optionalDependencies:
|
|
|
|
|
oxc-resolver: 11.20.0
|
|
|
|
|
|
|
|
|
|
ecdsa-sig-formatter@1.0.11:
|
|
|
|
|
dependencies:
|
|
|
|
|
safe-buffer: 5.2.1
|
|
|
|
|
|
|
|
|
|
empathic@2.0.1: {}
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
entities@8.0.0: {}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
es-module-lexer@2.1.0: {}
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
es-toolkit@1.49.0: {}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
esbuild@0.28.1:
|
|
|
|
|
optionalDependencies:
|
|
|
|
|
'@esbuild/aix-ppc64': 0.28.1
|
|
|
|
|
'@esbuild/android-arm': 0.28.1
|
|
|
|
|
'@esbuild/android-arm64': 0.28.1
|
|
|
|
|
'@esbuild/android-x64': 0.28.1
|
|
|
|
|
'@esbuild/darwin-arm64': 0.28.1
|
|
|
|
|
'@esbuild/darwin-x64': 0.28.1
|
|
|
|
|
'@esbuild/freebsd-arm64': 0.28.1
|
|
|
|
|
'@esbuild/freebsd-x64': 0.28.1
|
|
|
|
|
'@esbuild/linux-arm': 0.28.1
|
|
|
|
|
'@esbuild/linux-arm64': 0.28.1
|
|
|
|
|
'@esbuild/linux-ia32': 0.28.1
|
|
|
|
|
'@esbuild/linux-loong64': 0.28.1
|
|
|
|
|
'@esbuild/linux-mips64el': 0.28.1
|
|
|
|
|
'@esbuild/linux-ppc64': 0.28.1
|
|
|
|
|
'@esbuild/linux-riscv64': 0.28.1
|
|
|
|
|
'@esbuild/linux-s390x': 0.28.1
|
|
|
|
|
'@esbuild/linux-x64': 0.28.1
|
|
|
|
|
'@esbuild/netbsd-arm64': 0.28.1
|
|
|
|
|
'@esbuild/netbsd-x64': 0.28.1
|
|
|
|
|
'@esbuild/openbsd-arm64': 0.28.1
|
|
|
|
|
'@esbuild/openbsd-x64': 0.28.1
|
|
|
|
|
'@esbuild/openharmony-arm64': 0.28.1
|
|
|
|
|
'@esbuild/sunos-x64': 0.28.1
|
|
|
|
|
'@esbuild/win32-arm64': 0.28.1
|
|
|
|
|
'@esbuild/win32-ia32': 0.28.1
|
|
|
|
|
'@esbuild/win32-x64': 0.28.1
|
|
|
|
|
|
|
|
|
|
escape-string-regexp@4.0.0: {}
|
|
|
|
|
|
refactor: detect md hard-wraps via mdast AST, not regex
Per review feedback (use a real markdown parser with an AST linked to
source positions), rewrite verify-md-wrap to parse each file with
mdast-util-from-markdown (the CommonMark parser behind remark) + the GFM
extension, then flag any `paragraph` node whose source span covers more
than one line.
Why a parser over the hand-rolled line scanner:
- It is a checker, not a formatter — it reports and never rewrites, so
zero cosmetic churn (no emphasis-marker or table-delimiter
normalization, which is why Prettier was rejected for this).
- The AST owns every structural exemption (fenced code of any fence
length, tables, lists, blockquotes, HTML, headings, reference defs),
fixing both bugs the regex version had: it now catches wrapped
list-item / blockquote prose (a `paragraph` inside those nodes) and no
longer false-positives on a longer ```` fence wrapping an inner ```.
Also unwrap two pre-existing hard-wrapped blockquotes (architecture.md,
adding-a-tool.md) that the stricter AST check correctly surfaced.
2026-06-16 23:35:33 +08:00
|
|
|
escape-string-regexp@5.0.0: {}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
eslint-scope@9.1.2:
|
|
|
|
|
dependencies:
|
|
|
|
|
'@types/esrecurse': 4.3.1
|
|
|
|
|
'@types/estree': 1.0.9
|
|
|
|
|
esrecurse: 4.3.0
|
|
|
|
|
estraverse: 5.3.0
|
|
|
|
|
|
|
|
|
|
eslint-visitor-keys@3.4.3: {}
|
|
|
|
|
|
|
|
|
|
eslint-visitor-keys@4.2.1: {}
|
|
|
|
|
|
|
|
|
|
eslint-visitor-keys@5.0.1: {}
|
|
|
|
|
|
|
|
|
|
eslint@10.5.0(jiti@2.7.0):
|
|
|
|
|
dependencies:
|
|
|
|
|
'@eslint-community/eslint-utils': 4.9.1(eslint@10.5.0(jiti@2.7.0))
|
|
|
|
|
'@eslint-community/regexpp': 4.12.2
|
|
|
|
|
'@eslint/config-array': 0.23.5
|
|
|
|
|
'@eslint/config-helpers': 0.6.0
|
|
|
|
|
'@eslint/core': 1.2.1
|
|
|
|
|
'@eslint/plugin-kit': 0.7.2
|
|
|
|
|
'@humanfs/node': 0.16.8
|
|
|
|
|
'@humanwhocodes/module-importer': 1.0.1
|
|
|
|
|
'@humanwhocodes/retry': 0.4.3
|
|
|
|
|
'@types/estree': 1.0.9
|
|
|
|
|
ajv: 6.15.0
|
|
|
|
|
cross-spawn: 7.0.6
|
|
|
|
|
debug: 4.4.3
|
|
|
|
|
escape-string-regexp: 4.0.0
|
|
|
|
|
eslint-scope: 9.1.2
|
|
|
|
|
eslint-visitor-keys: 5.0.1
|
|
|
|
|
espree: 11.2.0
|
|
|
|
|
esquery: 1.7.0
|
|
|
|
|
esutils: 2.0.3
|
|
|
|
|
fast-deep-equal: 3.1.3
|
|
|
|
|
file-entry-cache: 8.0.0
|
|
|
|
|
find-up: 5.0.0
|
|
|
|
|
glob-parent: 6.0.2
|
|
|
|
|
ignore: 5.3.2
|
|
|
|
|
imurmurhash: 0.1.4
|
|
|
|
|
is-glob: 4.0.3
|
|
|
|
|
json-stable-stringify-without-jsonify: 1.0.1
|
|
|
|
|
minimatch: 10.2.5
|
|
|
|
|
natural-compare: 1.4.0
|
|
|
|
|
optionator: 0.9.4
|
|
|
|
|
optionalDependencies:
|
|
|
|
|
jiti: 2.7.0
|
|
|
|
|
transitivePeerDependencies:
|
|
|
|
|
- supports-color
|
|
|
|
|
|
|
|
|
|
espree@10.4.0:
|
|
|
|
|
dependencies:
|
|
|
|
|
acorn: 8.17.0
|
|
|
|
|
acorn-jsx: 5.3.2(acorn@8.17.0)
|
|
|
|
|
eslint-visitor-keys: 4.2.1
|
|
|
|
|
|
|
|
|
|
espree@11.2.0:
|
|
|
|
|
dependencies:
|
|
|
|
|
acorn: 8.17.0
|
|
|
|
|
acorn-jsx: 5.3.2(acorn@8.17.0)
|
|
|
|
|
eslint-visitor-keys: 5.0.1
|
|
|
|
|
|
|
|
|
|
esquery@1.7.0:
|
|
|
|
|
dependencies:
|
|
|
|
|
estraverse: 5.3.0
|
|
|
|
|
|
|
|
|
|
esrecurse@4.3.0:
|
|
|
|
|
dependencies:
|
|
|
|
|
estraverse: 5.3.0
|
|
|
|
|
|
|
|
|
|
estraverse@5.3.0: {}
|
|
|
|
|
|
|
|
|
|
estree-walker@3.0.3:
|
|
|
|
|
dependencies:
|
|
|
|
|
'@types/estree': 1.0.9
|
|
|
|
|
|
|
|
|
|
esutils@2.0.3: {}
|
|
|
|
|
|
|
|
|
|
expect-type@1.3.0: {}
|
|
|
|
|
|
|
|
|
|
extend@3.0.2: {}
|
|
|
|
|
|
|
|
|
|
fast-check@4.8.0:
|
|
|
|
|
dependencies:
|
|
|
|
|
pure-rand: 8.4.0
|
|
|
|
|
|
|
|
|
|
fast-deep-equal@3.1.3: {}
|
|
|
|
|
|
|
|
|
|
fast-json-stable-stringify@2.1.0: {}
|
|
|
|
|
|
|
|
|
|
fast-levenshtein@2.0.6: {}
|
|
|
|
|
|
|
|
|
|
fast-xml-builder@1.2.0:
|
|
|
|
|
dependencies:
|
|
|
|
|
path-expression-matcher: 1.5.0
|
|
|
|
|
xml-naming: 0.1.0
|
|
|
|
|
|
|
|
|
|
fast-xml-parser@5.7.3:
|
|
|
|
|
dependencies:
|
|
|
|
|
'@nodable/entities': 2.2.0
|
|
|
|
|
fast-xml-builder: 1.2.0
|
|
|
|
|
path-expression-matcher: 1.5.0
|
|
|
|
|
strnum: 2.4.0
|
|
|
|
|
|
|
|
|
|
fd-package-json@2.0.0:
|
|
|
|
|
dependencies:
|
|
|
|
|
walk-up-path: 4.0.0
|
|
|
|
|
|
|
|
|
|
fdir@6.5.0(picomatch@4.0.4):
|
|
|
|
|
optionalDependencies:
|
|
|
|
|
picomatch: 4.0.4
|
|
|
|
|
|
|
|
|
|
fetch-blob@3.2.0:
|
|
|
|
|
dependencies:
|
|
|
|
|
node-domexception: 1.0.0
|
|
|
|
|
web-streams-polyfill: 3.3.3
|
|
|
|
|
|
|
|
|
|
file-entry-cache@8.0.0:
|
|
|
|
|
dependencies:
|
|
|
|
|
flat-cache: 4.0.1
|
|
|
|
|
|
|
|
|
|
find-up@5.0.0:
|
|
|
|
|
dependencies:
|
|
|
|
|
locate-path: 6.0.0
|
|
|
|
|
path-exists: 4.0.0
|
|
|
|
|
|
|
|
|
|
flat-cache@4.0.1:
|
|
|
|
|
dependencies:
|
|
|
|
|
flatted: 3.4.2
|
|
|
|
|
keyv: 4.5.4
|
|
|
|
|
|
|
|
|
|
flatted@3.4.2: {}
|
|
|
|
|
|
|
|
|
|
formatly@0.3.0:
|
|
|
|
|
dependencies:
|
|
|
|
|
fd-package-json: 2.0.0
|
|
|
|
|
|
|
|
|
|
formdata-polyfill@4.0.10:
|
|
|
|
|
dependencies:
|
|
|
|
|
fetch-blob: 3.2.0
|
|
|
|
|
|
|
|
|
|
fsevents@2.3.3:
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
gaxios@7.1.5:
|
|
|
|
|
dependencies:
|
|
|
|
|
extend: 3.0.2
|
|
|
|
|
https-proxy-agent: 7.0.6
|
|
|
|
|
node-fetch: 3.3.2
|
|
|
|
|
transitivePeerDependencies:
|
|
|
|
|
- supports-color
|
|
|
|
|
|
|
|
|
|
gcp-metadata@8.1.2:
|
|
|
|
|
dependencies:
|
|
|
|
|
gaxios: 7.1.5
|
|
|
|
|
google-logging-utils: 1.1.3
|
|
|
|
|
json-bigint: 1.0.0
|
|
|
|
|
transitivePeerDependencies:
|
|
|
|
|
- supports-color
|
|
|
|
|
|
|
|
|
|
get-tsconfig@4.14.0:
|
|
|
|
|
dependencies:
|
|
|
|
|
resolve-pkg-maps: 1.0.0
|
|
|
|
|
|
|
|
|
|
get-tsconfig@5.0.0-beta.5:
|
|
|
|
|
dependencies:
|
|
|
|
|
resolve-pkg-maps: 1.0.0
|
|
|
|
|
|
|
|
|
|
glob-parent@6.0.2:
|
|
|
|
|
dependencies:
|
|
|
|
|
is-glob: 4.0.3
|
|
|
|
|
|
|
|
|
|
globrex@0.1.2: {}
|
|
|
|
|
|
|
|
|
|
google-auth-library@10.7.0:
|
|
|
|
|
dependencies:
|
|
|
|
|
base64-js: 1.5.1
|
|
|
|
|
ecdsa-sig-formatter: 1.0.11
|
|
|
|
|
gaxios: 7.1.5
|
|
|
|
|
gcp-metadata: 8.1.2
|
|
|
|
|
google-logging-utils: 1.1.3
|
|
|
|
|
jws: 4.0.1
|
|
|
|
|
transitivePeerDependencies:
|
|
|
|
|
- supports-color
|
|
|
|
|
|
|
|
|
|
google-logging-utils@1.1.3: {}
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
hachure-fill@0.5.2: {}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
has-flag@4.0.0: {}
|
|
|
|
|
|
|
|
|
|
hookable@6.1.1: {}
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
html-encoding-sniffer@6.0.0:
|
|
|
|
|
dependencies:
|
|
|
|
|
'@exodus/bytes': 1.15.1
|
|
|
|
|
transitivePeerDependencies:
|
|
|
|
|
- '@noble/hashes'
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
html-escaper@2.0.2: {}
|
|
|
|
|
|
|
|
|
|
http-proxy-agent@7.0.2:
|
|
|
|
|
dependencies:
|
|
|
|
|
agent-base: 7.1.4
|
|
|
|
|
debug: 4.4.3
|
|
|
|
|
transitivePeerDependencies:
|
|
|
|
|
- supports-color
|
|
|
|
|
|
|
|
|
|
https-proxy-agent@7.0.6:
|
|
|
|
|
dependencies:
|
|
|
|
|
agent-base: 7.1.4
|
|
|
|
|
debug: 4.4.3
|
|
|
|
|
transitivePeerDependencies:
|
|
|
|
|
- supports-color
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
iconv-lite@0.6.3:
|
|
|
|
|
dependencies:
|
|
|
|
|
safer-buffer: 2.1.2
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
ignore@5.3.2: {}
|
|
|
|
|
|
|
|
|
|
ignore@7.0.5: {}
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
import-meta-resolve@4.2.0: {}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
import-without-cache@0.4.0: {}
|
|
|
|
|
|
|
|
|
|
imurmurhash@0.1.4: {}
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
internmap@1.0.1: {}
|
|
|
|
|
|
|
|
|
|
internmap@2.0.3: {}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
is-extglob@2.1.1: {}
|
|
|
|
|
|
|
|
|
|
is-glob@4.0.3:
|
|
|
|
|
dependencies:
|
|
|
|
|
is-extglob: 2.1.1
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
is-potential-custom-element-name@1.0.1: {}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
isexe@2.0.0: {}
|
|
|
|
|
|
|
|
|
|
istanbul-lib-coverage@3.2.2: {}
|
|
|
|
|
|
|
|
|
|
istanbul-lib-report@3.0.1:
|
|
|
|
|
dependencies:
|
|
|
|
|
istanbul-lib-coverage: 3.2.2
|
|
|
|
|
make-dir: 4.0.0
|
|
|
|
|
supports-color: 7.2.0
|
|
|
|
|
|
|
|
|
|
istanbul-reports@3.2.0:
|
|
|
|
|
dependencies:
|
|
|
|
|
html-escaper: 2.0.2
|
|
|
|
|
istanbul-lib-report: 3.0.1
|
|
|
|
|
|
|
|
|
|
jiti@2.7.0: {}
|
|
|
|
|
|
|
|
|
|
js-tokens@10.0.0: {}
|
|
|
|
|
|
|
|
|
|
js-tokens@4.0.0: {}
|
|
|
|
|
|
|
|
|
|
js-yaml@4.2.0:
|
|
|
|
|
dependencies:
|
|
|
|
|
argparse: 2.0.1
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
jsdom@29.1.1:
|
|
|
|
|
dependencies:
|
|
|
|
|
'@asamuzakjp/css-color': 5.1.11
|
|
|
|
|
'@asamuzakjp/dom-selector': 7.1.1
|
|
|
|
|
'@bramus/specificity': 2.4.2
|
|
|
|
|
'@csstools/css-syntax-patches-for-csstree': 1.1.6(css-tree@3.2.1)
|
|
|
|
|
'@exodus/bytes': 1.15.1
|
|
|
|
|
css-tree: 3.2.1
|
|
|
|
|
data-urls: 7.0.0
|
|
|
|
|
decimal.js: 10.6.0
|
|
|
|
|
html-encoding-sniffer: 6.0.0
|
|
|
|
|
is-potential-custom-element-name: 1.0.1
|
|
|
|
|
lru-cache: 11.5.1
|
|
|
|
|
parse5: 8.0.1
|
|
|
|
|
saxes: 6.0.0
|
|
|
|
|
symbol-tree: 3.2.4
|
|
|
|
|
tough-cookie: 6.0.1
|
|
|
|
|
undici: 7.28.0
|
|
|
|
|
w3c-xmlserializer: 5.0.0
|
|
|
|
|
webidl-conversions: 8.0.1
|
|
|
|
|
whatwg-mimetype: 5.0.0
|
|
|
|
|
whatwg-url: 16.0.1
|
|
|
|
|
xml-name-validator: 5.0.0
|
|
|
|
|
transitivePeerDependencies:
|
|
|
|
|
- '@noble/hashes'
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
jsesc@3.1.0: {}
|
|
|
|
|
|
|
|
|
|
json-bigint@1.0.0:
|
|
|
|
|
dependencies:
|
|
|
|
|
bignumber.js: 9.3.1
|
|
|
|
|
|
|
|
|
|
json-buffer@3.0.1: {}
|
|
|
|
|
|
|
|
|
|
json-schema-to-ts@3.1.1:
|
|
|
|
|
dependencies:
|
|
|
|
|
'@babel/runtime': 7.29.7
|
|
|
|
|
ts-algebra: 2.0.0
|
|
|
|
|
|
|
|
|
|
json-schema-traverse@0.4.1: {}
|
|
|
|
|
|
|
|
|
|
json-stable-stringify-without-jsonify@1.0.1: {}
|
|
|
|
|
|
|
|
|
|
jwa@2.0.1:
|
|
|
|
|
dependencies:
|
|
|
|
|
buffer-equal-constant-time: 1.0.1
|
|
|
|
|
ecdsa-sig-formatter: 1.0.11
|
|
|
|
|
safe-buffer: 5.2.1
|
|
|
|
|
|
|
|
|
|
jws@4.0.1:
|
|
|
|
|
dependencies:
|
|
|
|
|
jwa: 2.0.1
|
|
|
|
|
safe-buffer: 5.2.1
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
katex@0.16.47:
|
|
|
|
|
dependencies:
|
|
|
|
|
commander: 8.3.0
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
keyv@4.5.4:
|
|
|
|
|
dependencies:
|
|
|
|
|
json-buffer: 3.0.1
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
khroma@2.1.0: {}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
knip@6.16.1:
|
|
|
|
|
dependencies:
|
|
|
|
|
fdir: 6.5.0(picomatch@4.0.4)
|
|
|
|
|
formatly: 0.3.0
|
|
|
|
|
get-tsconfig: 4.14.0
|
|
|
|
|
jiti: 2.7.0
|
|
|
|
|
oxc-parser: 0.133.0
|
|
|
|
|
oxc-resolver: 11.20.0
|
|
|
|
|
picomatch: 4.0.4
|
|
|
|
|
smol-toml: 1.6.1
|
|
|
|
|
strip-json-comments: 5.0.3
|
|
|
|
|
tinyglobby: 0.2.17
|
|
|
|
|
unbash: 3.0.0
|
|
|
|
|
yaml: 2.9.0
|
|
|
|
|
zod: 4.4.3
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
layout-base@1.0.2: {}
|
|
|
|
|
|
|
|
|
|
layout-base@2.0.1: {}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
lefthook-darwin-arm64@2.1.9:
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
lefthook-darwin-x64@2.1.9:
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
lefthook-freebsd-arm64@2.1.9:
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
lefthook-freebsd-x64@2.1.9:
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
lefthook-linux-arm64@2.1.9:
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
lefthook-linux-x64@2.1.9:
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
lefthook-openbsd-arm64@2.1.9:
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
lefthook-openbsd-x64@2.1.9:
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
lefthook-windows-arm64@2.1.9:
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
lefthook-windows-x64@2.1.9:
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
lefthook@2.1.9:
|
|
|
|
|
optionalDependencies:
|
|
|
|
|
lefthook-darwin-arm64: 2.1.9
|
|
|
|
|
lefthook-darwin-x64: 2.1.9
|
|
|
|
|
lefthook-freebsd-arm64: 2.1.9
|
|
|
|
|
lefthook-freebsd-x64: 2.1.9
|
|
|
|
|
lefthook-linux-arm64: 2.1.9
|
|
|
|
|
lefthook-linux-x64: 2.1.9
|
|
|
|
|
lefthook-openbsd-arm64: 2.1.9
|
|
|
|
|
lefthook-openbsd-x64: 2.1.9
|
|
|
|
|
lefthook-windows-arm64: 2.1.9
|
|
|
|
|
lefthook-windows-x64: 2.1.9
|
|
|
|
|
|
|
|
|
|
levn@0.4.1:
|
|
|
|
|
dependencies:
|
|
|
|
|
prelude-ls: 1.2.1
|
|
|
|
|
type-check: 0.4.0
|
|
|
|
|
|
|
|
|
|
lightningcss-android-arm64@1.32.0:
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
lightningcss-darwin-arm64@1.32.0:
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
lightningcss-darwin-x64@1.32.0:
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
lightningcss-freebsd-x64@1.32.0:
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
lightningcss-linux-arm-gnueabihf@1.32.0:
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
lightningcss-linux-arm64-gnu@1.32.0:
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
lightningcss-linux-arm64-musl@1.32.0:
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
lightningcss-linux-x64-gnu@1.32.0:
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
lightningcss-linux-x64-musl@1.32.0:
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
lightningcss-win32-arm64-msvc@1.32.0:
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
lightningcss-win32-x64-msvc@1.32.0:
|
|
|
|
|
optional: true
|
|
|
|
|
|
|
|
|
|
lightningcss@1.32.0:
|
|
|
|
|
dependencies:
|
|
|
|
|
detect-libc: 2.1.2
|
|
|
|
|
optionalDependencies:
|
|
|
|
|
lightningcss-android-arm64: 1.32.0
|
|
|
|
|
lightningcss-darwin-arm64: 1.32.0
|
|
|
|
|
lightningcss-darwin-x64: 1.32.0
|
|
|
|
|
lightningcss-freebsd-x64: 1.32.0
|
|
|
|
|
lightningcss-linux-arm-gnueabihf: 1.32.0
|
|
|
|
|
lightningcss-linux-arm64-gnu: 1.32.0
|
|
|
|
|
lightningcss-linux-arm64-musl: 1.32.0
|
|
|
|
|
lightningcss-linux-x64-gnu: 1.32.0
|
|
|
|
|
lightningcss-linux-x64-musl: 1.32.0
|
|
|
|
|
lightningcss-win32-arm64-msvc: 1.32.0
|
|
|
|
|
lightningcss-win32-x64-msvc: 1.32.0
|
|
|
|
|
|
|
|
|
|
locate-path@6.0.0:
|
|
|
|
|
dependencies:
|
|
|
|
|
p-locate: 5.0.0
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
lodash-es@4.18.1: {}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
long@5.3.2: {}
|
|
|
|
|
|
refactor: detect md hard-wraps via mdast AST, not regex
Per review feedback (use a real markdown parser with an AST linked to
source positions), rewrite verify-md-wrap to parse each file with
mdast-util-from-markdown (the CommonMark parser behind remark) + the GFM
extension, then flag any `paragraph` node whose source span covers more
than one line.
Why a parser over the hand-rolled line scanner:
- It is a checker, not a formatter — it reports and never rewrites, so
zero cosmetic churn (no emphasis-marker or table-delimiter
normalization, which is why Prettier was rejected for this).
- The AST owns every structural exemption (fenced code of any fence
length, tables, lists, blockquotes, HTML, headings, reference defs),
fixing both bugs the regex version had: it now catches wrapped
list-item / blockquote prose (a `paragraph` inside those nodes) and no
longer false-positives on a longer ```` fence wrapping an inner ```.
Also unwrap two pre-existing hard-wrapped blockquotes (architecture.md,
adding-a-tool.md) that the stricter AST check correctly surfaced.
2026-06-16 23:35:33 +08:00
|
|
|
longest-streak@3.1.0: {}
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
lru-cache@11.5.1: {}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
magic-string@0.30.21:
|
|
|
|
|
dependencies:
|
|
|
|
|
'@jridgewell/sourcemap-codec': 1.5.5
|
|
|
|
|
|
|
|
|
|
magicast@0.5.3:
|
|
|
|
|
dependencies:
|
|
|
|
|
'@babel/parser': 7.29.7
|
|
|
|
|
'@babel/types': 7.29.7
|
|
|
|
|
source-map-js: 1.2.1
|
|
|
|
|
|
|
|
|
|
make-dir@4.0.0:
|
|
|
|
|
dependencies:
|
|
|
|
|
semver: 7.8.4
|
|
|
|
|
|
refactor: detect md hard-wraps via mdast AST, not regex
Per review feedback (use a real markdown parser with an AST linked to
source positions), rewrite verify-md-wrap to parse each file with
mdast-util-from-markdown (the CommonMark parser behind remark) + the GFM
extension, then flag any `paragraph` node whose source span covers more
than one line.
Why a parser over the hand-rolled line scanner:
- It is a checker, not a formatter — it reports and never rewrites, so
zero cosmetic churn (no emphasis-marker or table-delimiter
normalization, which is why Prettier was rejected for this).
- The AST owns every structural exemption (fenced code of any fence
length, tables, lists, blockquotes, HTML, headings, reference defs),
fixing both bugs the regex version had: it now catches wrapped
list-item / blockquote prose (a `paragraph` inside those nodes) and no
longer false-positives on a longer ```` fence wrapping an inner ```.
Also unwrap two pre-existing hard-wrapped blockquotes (architecture.md,
adding-a-tool.md) that the stricter AST check correctly surfaced.
2026-06-16 23:35:33 +08:00
|
|
|
markdown-table@3.0.4: {}
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
marked@16.4.2: {}
|
|
|
|
|
|
refactor: detect md hard-wraps via mdast AST, not regex
Per review feedback (use a real markdown parser with an AST linked to
source positions), rewrite verify-md-wrap to parse each file with
mdast-util-from-markdown (the CommonMark parser behind remark) + the GFM
extension, then flag any `paragraph` node whose source span covers more
than one line.
Why a parser over the hand-rolled line scanner:
- It is a checker, not a formatter — it reports and never rewrites, so
zero cosmetic churn (no emphasis-marker or table-delimiter
normalization, which is why Prettier was rejected for this).
- The AST owns every structural exemption (fenced code of any fence
length, tables, lists, blockquotes, HTML, headings, reference defs),
fixing both bugs the regex version had: it now catches wrapped
list-item / blockquote prose (a `paragraph` inside those nodes) and no
longer false-positives on a longer ```` fence wrapping an inner ```.
Also unwrap two pre-existing hard-wrapped blockquotes (architecture.md,
adding-a-tool.md) that the stricter AST check correctly surfaced.
2026-06-16 23:35:33 +08:00
|
|
|
mdast-util-find-and-replace@3.0.2:
|
|
|
|
|
dependencies:
|
|
|
|
|
'@types/mdast': 4.0.4
|
|
|
|
|
escape-string-regexp: 5.0.0
|
|
|
|
|
unist-util-is: 6.0.1
|
|
|
|
|
unist-util-visit-parents: 6.0.2
|
|
|
|
|
|
|
|
|
|
mdast-util-from-markdown@2.0.3:
|
|
|
|
|
dependencies:
|
|
|
|
|
'@types/mdast': 4.0.4
|
|
|
|
|
'@types/unist': 3.0.3
|
|
|
|
|
decode-named-character-reference: 1.3.0
|
|
|
|
|
devlop: 1.1.0
|
|
|
|
|
mdast-util-to-string: 4.0.0
|
|
|
|
|
micromark: 4.0.2
|
|
|
|
|
micromark-util-decode-numeric-character-reference: 2.0.2
|
|
|
|
|
micromark-util-decode-string: 2.0.1
|
|
|
|
|
micromark-util-normalize-identifier: 2.0.1
|
|
|
|
|
micromark-util-symbol: 2.0.1
|
|
|
|
|
micromark-util-types: 2.0.2
|
|
|
|
|
unist-util-stringify-position: 4.0.0
|
|
|
|
|
transitivePeerDependencies:
|
|
|
|
|
- supports-color
|
|
|
|
|
|
|
|
|
|
mdast-util-gfm-autolink-literal@2.0.1:
|
|
|
|
|
dependencies:
|
|
|
|
|
'@types/mdast': 4.0.4
|
|
|
|
|
ccount: 2.0.1
|
|
|
|
|
devlop: 1.1.0
|
|
|
|
|
mdast-util-find-and-replace: 3.0.2
|
|
|
|
|
micromark-util-character: 2.1.1
|
|
|
|
|
|
|
|
|
|
mdast-util-gfm-footnote@2.1.0:
|
|
|
|
|
dependencies:
|
|
|
|
|
'@types/mdast': 4.0.4
|
|
|
|
|
devlop: 1.1.0
|
|
|
|
|
mdast-util-from-markdown: 2.0.3
|
|
|
|
|
mdast-util-to-markdown: 2.1.2
|
|
|
|
|
micromark-util-normalize-identifier: 2.0.1
|
|
|
|
|
transitivePeerDependencies:
|
|
|
|
|
- supports-color
|
|
|
|
|
|
|
|
|
|
mdast-util-gfm-strikethrough@2.0.0:
|
|
|
|
|
dependencies:
|
|
|
|
|
'@types/mdast': 4.0.4
|
|
|
|
|
mdast-util-from-markdown: 2.0.3
|
|
|
|
|
mdast-util-to-markdown: 2.1.2
|
|
|
|
|
transitivePeerDependencies:
|
|
|
|
|
- supports-color
|
|
|
|
|
|
|
|
|
|
mdast-util-gfm-table@2.0.0:
|
|
|
|
|
dependencies:
|
|
|
|
|
'@types/mdast': 4.0.4
|
|
|
|
|
devlop: 1.1.0
|
|
|
|
|
markdown-table: 3.0.4
|
|
|
|
|
mdast-util-from-markdown: 2.0.3
|
|
|
|
|
mdast-util-to-markdown: 2.1.2
|
|
|
|
|
transitivePeerDependencies:
|
|
|
|
|
- supports-color
|
|
|
|
|
|
|
|
|
|
mdast-util-gfm-task-list-item@2.0.0:
|
|
|
|
|
dependencies:
|
|
|
|
|
'@types/mdast': 4.0.4
|
|
|
|
|
devlop: 1.1.0
|
|
|
|
|
mdast-util-from-markdown: 2.0.3
|
|
|
|
|
mdast-util-to-markdown: 2.1.2
|
|
|
|
|
transitivePeerDependencies:
|
|
|
|
|
- supports-color
|
|
|
|
|
|
|
|
|
|
mdast-util-gfm@3.1.0:
|
|
|
|
|
dependencies:
|
|
|
|
|
mdast-util-from-markdown: 2.0.3
|
|
|
|
|
mdast-util-gfm-autolink-literal: 2.0.1
|
|
|
|
|
mdast-util-gfm-footnote: 2.1.0
|
|
|
|
|
mdast-util-gfm-strikethrough: 2.0.0
|
|
|
|
|
mdast-util-gfm-table: 2.0.0
|
|
|
|
|
mdast-util-gfm-task-list-item: 2.0.0
|
|
|
|
|
mdast-util-to-markdown: 2.1.2
|
|
|
|
|
transitivePeerDependencies:
|
|
|
|
|
- supports-color
|
|
|
|
|
|
|
|
|
|
mdast-util-phrasing@4.1.0:
|
|
|
|
|
dependencies:
|
|
|
|
|
'@types/mdast': 4.0.4
|
|
|
|
|
unist-util-is: 6.0.1
|
|
|
|
|
|
|
|
|
|
mdast-util-to-markdown@2.1.2:
|
|
|
|
|
dependencies:
|
|
|
|
|
'@types/mdast': 4.0.4
|
|
|
|
|
'@types/unist': 3.0.3
|
|
|
|
|
longest-streak: 3.1.0
|
|
|
|
|
mdast-util-phrasing: 4.1.0
|
|
|
|
|
mdast-util-to-string: 4.0.0
|
|
|
|
|
micromark-util-classify-character: 2.0.1
|
|
|
|
|
micromark-util-decode-string: 2.0.1
|
|
|
|
|
unist-util-visit: 5.1.0
|
|
|
|
|
zwitch: 2.0.4
|
|
|
|
|
|
|
|
|
|
mdast-util-to-string@4.0.0:
|
|
|
|
|
dependencies:
|
|
|
|
|
'@types/mdast': 4.0.4
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
mdn-data@2.27.1: {}
|
|
|
|
|
|
|
|
|
|
mermaid@11.16.0:
|
|
|
|
|
dependencies:
|
|
|
|
|
'@braintree/sanitize-url': 7.1.2
|
|
|
|
|
'@iconify/utils': 3.1.3
|
|
|
|
|
'@mermaid-js/parser': 1.2.0
|
|
|
|
|
'@types/d3': 7.4.3
|
|
|
|
|
'@upsetjs/venn.js': 2.0.0
|
|
|
|
|
cytoscape: 3.34.0
|
|
|
|
|
cytoscape-cose-bilkent: 4.1.0(cytoscape@3.34.0)
|
|
|
|
|
cytoscape-fcose: 2.2.0(cytoscape@3.34.0)
|
|
|
|
|
d3: 7.9.0
|
|
|
|
|
d3-sankey: 0.12.3
|
|
|
|
|
dagre-d3-es: 7.0.14
|
|
|
|
|
dayjs: 1.11.21
|
|
|
|
|
dompurify: 3.4.11
|
|
|
|
|
es-toolkit: 1.49.0
|
|
|
|
|
katex: 0.16.47
|
|
|
|
|
khroma: 2.1.0
|
|
|
|
|
marked: 16.4.2
|
|
|
|
|
roughjs: 4.6.6
|
|
|
|
|
stylis: 4.4.0
|
|
|
|
|
ts-dedent: 2.3.0
|
|
|
|
|
uuid: 14.0.1
|
|
|
|
|
|
refactor: detect md hard-wraps via mdast AST, not regex
Per review feedback (use a real markdown parser with an AST linked to
source positions), rewrite verify-md-wrap to parse each file with
mdast-util-from-markdown (the CommonMark parser behind remark) + the GFM
extension, then flag any `paragraph` node whose source span covers more
than one line.
Why a parser over the hand-rolled line scanner:
- It is a checker, not a formatter — it reports and never rewrites, so
zero cosmetic churn (no emphasis-marker or table-delimiter
normalization, which is why Prettier was rejected for this).
- The AST owns every structural exemption (fenced code of any fence
length, tables, lists, blockquotes, HTML, headings, reference defs),
fixing both bugs the regex version had: it now catches wrapped
list-item / blockquote prose (a `paragraph` inside those nodes) and no
longer false-positives on a longer ```` fence wrapping an inner ```.
Also unwrap two pre-existing hard-wrapped blockquotes (architecture.md,
adding-a-tool.md) that the stricter AST check correctly surfaced.
2026-06-16 23:35:33 +08:00
|
|
|
micromark-core-commonmark@2.0.3:
|
|
|
|
|
dependencies:
|
|
|
|
|
decode-named-character-reference: 1.3.0
|
|
|
|
|
devlop: 1.1.0
|
|
|
|
|
micromark-factory-destination: 2.0.1
|
|
|
|
|
micromark-factory-label: 2.0.1
|
|
|
|
|
micromark-factory-space: 2.0.1
|
|
|
|
|
micromark-factory-title: 2.0.1
|
|
|
|
|
micromark-factory-whitespace: 2.0.1
|
|
|
|
|
micromark-util-character: 2.1.1
|
|
|
|
|
micromark-util-chunked: 2.0.1
|
|
|
|
|
micromark-util-classify-character: 2.0.1
|
|
|
|
|
micromark-util-html-tag-name: 2.0.1
|
|
|
|
|
micromark-util-normalize-identifier: 2.0.1
|
|
|
|
|
micromark-util-resolve-all: 2.0.1
|
|
|
|
|
micromark-util-subtokenize: 2.1.0
|
|
|
|
|
micromark-util-symbol: 2.0.1
|
|
|
|
|
micromark-util-types: 2.0.2
|
|
|
|
|
|
|
|
|
|
micromark-extension-gfm-autolink-literal@2.1.0:
|
|
|
|
|
dependencies:
|
|
|
|
|
micromark-util-character: 2.1.1
|
|
|
|
|
micromark-util-sanitize-uri: 2.0.1
|
|
|
|
|
micromark-util-symbol: 2.0.1
|
|
|
|
|
micromark-util-types: 2.0.2
|
|
|
|
|
|
|
|
|
|
micromark-extension-gfm-footnote@2.1.0:
|
|
|
|
|
dependencies:
|
|
|
|
|
devlop: 1.1.0
|
|
|
|
|
micromark-core-commonmark: 2.0.3
|
|
|
|
|
micromark-factory-space: 2.0.1
|
|
|
|
|
micromark-util-character: 2.1.1
|
|
|
|
|
micromark-util-normalize-identifier: 2.0.1
|
|
|
|
|
micromark-util-sanitize-uri: 2.0.1
|
|
|
|
|
micromark-util-symbol: 2.0.1
|
|
|
|
|
micromark-util-types: 2.0.2
|
|
|
|
|
|
|
|
|
|
micromark-extension-gfm-strikethrough@2.1.0:
|
|
|
|
|
dependencies:
|
|
|
|
|
devlop: 1.1.0
|
|
|
|
|
micromark-util-chunked: 2.0.1
|
|
|
|
|
micromark-util-classify-character: 2.0.1
|
|
|
|
|
micromark-util-resolve-all: 2.0.1
|
|
|
|
|
micromark-util-symbol: 2.0.1
|
|
|
|
|
micromark-util-types: 2.0.2
|
|
|
|
|
|
|
|
|
|
micromark-extension-gfm-table@2.1.1:
|
|
|
|
|
dependencies:
|
|
|
|
|
devlop: 1.1.0
|
|
|
|
|
micromark-factory-space: 2.0.1
|
|
|
|
|
micromark-util-character: 2.1.1
|
|
|
|
|
micromark-util-symbol: 2.0.1
|
|
|
|
|
micromark-util-types: 2.0.2
|
|
|
|
|
|
|
|
|
|
micromark-extension-gfm-tagfilter@2.0.0:
|
|
|
|
|
dependencies:
|
|
|
|
|
micromark-util-types: 2.0.2
|
|
|
|
|
|
|
|
|
|
micromark-extension-gfm-task-list-item@2.1.0:
|
|
|
|
|
dependencies:
|
|
|
|
|
devlop: 1.1.0
|
|
|
|
|
micromark-factory-space: 2.0.1
|
|
|
|
|
micromark-util-character: 2.1.1
|
|
|
|
|
micromark-util-symbol: 2.0.1
|
|
|
|
|
micromark-util-types: 2.0.2
|
|
|
|
|
|
|
|
|
|
micromark-extension-gfm@3.0.0:
|
|
|
|
|
dependencies:
|
|
|
|
|
micromark-extension-gfm-autolink-literal: 2.1.0
|
|
|
|
|
micromark-extension-gfm-footnote: 2.1.0
|
|
|
|
|
micromark-extension-gfm-strikethrough: 2.1.0
|
|
|
|
|
micromark-extension-gfm-table: 2.1.1
|
|
|
|
|
micromark-extension-gfm-tagfilter: 2.0.0
|
|
|
|
|
micromark-extension-gfm-task-list-item: 2.1.0
|
|
|
|
|
micromark-util-combine-extensions: 2.0.1
|
|
|
|
|
micromark-util-types: 2.0.2
|
|
|
|
|
|
|
|
|
|
micromark-factory-destination@2.0.1:
|
|
|
|
|
dependencies:
|
|
|
|
|
micromark-util-character: 2.1.1
|
|
|
|
|
micromark-util-symbol: 2.0.1
|
|
|
|
|
micromark-util-types: 2.0.2
|
|
|
|
|
|
|
|
|
|
micromark-factory-label@2.0.1:
|
|
|
|
|
dependencies:
|
|
|
|
|
devlop: 1.1.0
|
|
|
|
|
micromark-util-character: 2.1.1
|
|
|
|
|
micromark-util-symbol: 2.0.1
|
|
|
|
|
micromark-util-types: 2.0.2
|
|
|
|
|
|
|
|
|
|
micromark-factory-space@2.0.1:
|
|
|
|
|
dependencies:
|
|
|
|
|
micromark-util-character: 2.1.1
|
|
|
|
|
micromark-util-types: 2.0.2
|
|
|
|
|
|
|
|
|
|
micromark-factory-title@2.0.1:
|
|
|
|
|
dependencies:
|
|
|
|
|
micromark-factory-space: 2.0.1
|
|
|
|
|
micromark-util-character: 2.1.1
|
|
|
|
|
micromark-util-symbol: 2.0.1
|
|
|
|
|
micromark-util-types: 2.0.2
|
|
|
|
|
|
|
|
|
|
micromark-factory-whitespace@2.0.1:
|
|
|
|
|
dependencies:
|
|
|
|
|
micromark-factory-space: 2.0.1
|
|
|
|
|
micromark-util-character: 2.1.1
|
|
|
|
|
micromark-util-symbol: 2.0.1
|
|
|
|
|
micromark-util-types: 2.0.2
|
|
|
|
|
|
|
|
|
|
micromark-util-character@2.1.1:
|
|
|
|
|
dependencies:
|
|
|
|
|
micromark-util-symbol: 2.0.1
|
|
|
|
|
micromark-util-types: 2.0.2
|
|
|
|
|
|
|
|
|
|
micromark-util-chunked@2.0.1:
|
|
|
|
|
dependencies:
|
|
|
|
|
micromark-util-symbol: 2.0.1
|
|
|
|
|
|
|
|
|
|
micromark-util-classify-character@2.0.1:
|
|
|
|
|
dependencies:
|
|
|
|
|
micromark-util-character: 2.1.1
|
|
|
|
|
micromark-util-symbol: 2.0.1
|
|
|
|
|
micromark-util-types: 2.0.2
|
|
|
|
|
|
|
|
|
|
micromark-util-combine-extensions@2.0.1:
|
|
|
|
|
dependencies:
|
|
|
|
|
micromark-util-chunked: 2.0.1
|
|
|
|
|
micromark-util-types: 2.0.2
|
|
|
|
|
|
|
|
|
|
micromark-util-decode-numeric-character-reference@2.0.2:
|
|
|
|
|
dependencies:
|
|
|
|
|
micromark-util-symbol: 2.0.1
|
|
|
|
|
|
|
|
|
|
micromark-util-decode-string@2.0.1:
|
|
|
|
|
dependencies:
|
|
|
|
|
decode-named-character-reference: 1.3.0
|
|
|
|
|
micromark-util-character: 2.1.1
|
|
|
|
|
micromark-util-decode-numeric-character-reference: 2.0.2
|
|
|
|
|
micromark-util-symbol: 2.0.1
|
|
|
|
|
|
|
|
|
|
micromark-util-encode@2.0.1: {}
|
|
|
|
|
|
|
|
|
|
micromark-util-html-tag-name@2.0.1: {}
|
|
|
|
|
|
|
|
|
|
micromark-util-normalize-identifier@2.0.1:
|
|
|
|
|
dependencies:
|
|
|
|
|
micromark-util-symbol: 2.0.1
|
|
|
|
|
|
|
|
|
|
micromark-util-resolve-all@2.0.1:
|
|
|
|
|
dependencies:
|
|
|
|
|
micromark-util-types: 2.0.2
|
|
|
|
|
|
|
|
|
|
micromark-util-sanitize-uri@2.0.1:
|
|
|
|
|
dependencies:
|
|
|
|
|
micromark-util-character: 2.1.1
|
|
|
|
|
micromark-util-encode: 2.0.1
|
|
|
|
|
micromark-util-symbol: 2.0.1
|
|
|
|
|
|
|
|
|
|
micromark-util-subtokenize@2.1.0:
|
|
|
|
|
dependencies:
|
|
|
|
|
devlop: 1.1.0
|
|
|
|
|
micromark-util-chunked: 2.0.1
|
|
|
|
|
micromark-util-symbol: 2.0.1
|
|
|
|
|
micromark-util-types: 2.0.2
|
|
|
|
|
|
|
|
|
|
micromark-util-symbol@2.0.1: {}
|
|
|
|
|
|
|
|
|
|
micromark-util-types@2.0.2: {}
|
|
|
|
|
|
|
|
|
|
micromark@4.0.2:
|
|
|
|
|
dependencies:
|
|
|
|
|
'@types/debug': 4.1.13
|
|
|
|
|
debug: 4.4.3
|
|
|
|
|
decode-named-character-reference: 1.3.0
|
|
|
|
|
devlop: 1.1.0
|
|
|
|
|
micromark-core-commonmark: 2.0.3
|
|
|
|
|
micromark-factory-space: 2.0.1
|
|
|
|
|
micromark-util-character: 2.1.1
|
|
|
|
|
micromark-util-chunked: 2.0.1
|
|
|
|
|
micromark-util-combine-extensions: 2.0.1
|
|
|
|
|
micromark-util-decode-numeric-character-reference: 2.0.2
|
|
|
|
|
micromark-util-encode: 2.0.1
|
|
|
|
|
micromark-util-normalize-identifier: 2.0.1
|
|
|
|
|
micromark-util-resolve-all: 2.0.1
|
|
|
|
|
micromark-util-sanitize-uri: 2.0.1
|
|
|
|
|
micromark-util-subtokenize: 2.1.0
|
|
|
|
|
micromark-util-symbol: 2.0.1
|
|
|
|
|
micromark-util-types: 2.0.2
|
|
|
|
|
transitivePeerDependencies:
|
|
|
|
|
- supports-color
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
minimatch@10.2.5:
|
|
|
|
|
dependencies:
|
|
|
|
|
brace-expansion: 5.0.6
|
|
|
|
|
|
|
|
|
|
mri@1.2.0: {}
|
|
|
|
|
|
|
|
|
|
ms@2.1.3: {}
|
|
|
|
|
|
|
|
|
|
nanoid@3.3.12: {}
|
|
|
|
|
|
|
|
|
|
natural-compare@1.4.0: {}
|
|
|
|
|
|
|
|
|
|
node-domexception@1.0.0: {}
|
|
|
|
|
|
|
|
|
|
node-fetch@3.3.2:
|
|
|
|
|
dependencies:
|
|
|
|
|
data-uri-to-buffer: 4.0.1
|
|
|
|
|
fetch-blob: 3.2.0
|
|
|
|
|
formdata-polyfill: 4.0.10
|
|
|
|
|
|
|
|
|
|
obug@2.1.3: {}
|
|
|
|
|
|
|
|
|
|
openai@6.26.0(ws@8.21.0)(zod@4.4.3):
|
|
|
|
|
optionalDependencies:
|
|
|
|
|
ws: 8.21.0
|
|
|
|
|
zod: 4.4.3
|
|
|
|
|
|
|
|
|
|
optionator@0.9.4:
|
|
|
|
|
dependencies:
|
|
|
|
|
deep-is: 0.1.4
|
|
|
|
|
fast-levenshtein: 2.0.6
|
|
|
|
|
levn: 0.4.1
|
|
|
|
|
prelude-ls: 1.2.1
|
|
|
|
|
type-check: 0.4.0
|
|
|
|
|
word-wrap: 1.2.5
|
|
|
|
|
|
|
|
|
|
oxc-parser@0.133.0:
|
|
|
|
|
dependencies:
|
|
|
|
|
'@oxc-project/types': 0.133.0
|
|
|
|
|
optionalDependencies:
|
|
|
|
|
'@oxc-parser/binding-android-arm-eabi': 0.133.0
|
|
|
|
|
'@oxc-parser/binding-android-arm64': 0.133.0
|
|
|
|
|
'@oxc-parser/binding-darwin-arm64': 0.133.0
|
|
|
|
|
'@oxc-parser/binding-darwin-x64': 0.133.0
|
|
|
|
|
'@oxc-parser/binding-freebsd-x64': 0.133.0
|
|
|
|
|
'@oxc-parser/binding-linux-arm-gnueabihf': 0.133.0
|
|
|
|
|
'@oxc-parser/binding-linux-arm-musleabihf': 0.133.0
|
|
|
|
|
'@oxc-parser/binding-linux-arm64-gnu': 0.133.0
|
|
|
|
|
'@oxc-parser/binding-linux-arm64-musl': 0.133.0
|
|
|
|
|
'@oxc-parser/binding-linux-ppc64-gnu': 0.133.0
|
|
|
|
|
'@oxc-parser/binding-linux-riscv64-gnu': 0.133.0
|
|
|
|
|
'@oxc-parser/binding-linux-riscv64-musl': 0.133.0
|
|
|
|
|
'@oxc-parser/binding-linux-s390x-gnu': 0.133.0
|
|
|
|
|
'@oxc-parser/binding-linux-x64-gnu': 0.133.0
|
|
|
|
|
'@oxc-parser/binding-linux-x64-musl': 0.133.0
|
|
|
|
|
'@oxc-parser/binding-openharmony-arm64': 0.133.0
|
|
|
|
|
'@oxc-parser/binding-wasm32-wasi': 0.133.0
|
|
|
|
|
'@oxc-parser/binding-win32-arm64-msvc': 0.133.0
|
|
|
|
|
'@oxc-parser/binding-win32-ia32-msvc': 0.133.0
|
|
|
|
|
'@oxc-parser/binding-win32-x64-msvc': 0.133.0
|
|
|
|
|
|
|
|
|
|
oxc-resolver@11.20.0:
|
|
|
|
|
optionalDependencies:
|
|
|
|
|
'@oxc-resolver/binding-android-arm-eabi': 11.20.0
|
|
|
|
|
'@oxc-resolver/binding-android-arm64': 11.20.0
|
|
|
|
|
'@oxc-resolver/binding-darwin-arm64': 11.20.0
|
|
|
|
|
'@oxc-resolver/binding-darwin-x64': 11.20.0
|
|
|
|
|
'@oxc-resolver/binding-freebsd-x64': 11.20.0
|
|
|
|
|
'@oxc-resolver/binding-linux-arm-gnueabihf': 11.20.0
|
|
|
|
|
'@oxc-resolver/binding-linux-arm-musleabihf': 11.20.0
|
|
|
|
|
'@oxc-resolver/binding-linux-arm64-gnu': 11.20.0
|
|
|
|
|
'@oxc-resolver/binding-linux-arm64-musl': 11.20.0
|
|
|
|
|
'@oxc-resolver/binding-linux-ppc64-gnu': 11.20.0
|
|
|
|
|
'@oxc-resolver/binding-linux-riscv64-gnu': 11.20.0
|
|
|
|
|
'@oxc-resolver/binding-linux-riscv64-musl': 11.20.0
|
|
|
|
|
'@oxc-resolver/binding-linux-s390x-gnu': 11.20.0
|
|
|
|
|
'@oxc-resolver/binding-linux-x64-gnu': 11.20.0
|
|
|
|
|
'@oxc-resolver/binding-linux-x64-musl': 11.20.0
|
|
|
|
|
'@oxc-resolver/binding-openharmony-arm64': 11.20.0
|
|
|
|
|
'@oxc-resolver/binding-wasm32-wasi': 11.20.0
|
|
|
|
|
'@oxc-resolver/binding-win32-arm64-msvc': 11.20.0
|
|
|
|
|
'@oxc-resolver/binding-win32-x64-msvc': 11.20.0
|
|
|
|
|
|
|
|
|
|
p-limit@3.1.0:
|
|
|
|
|
dependencies:
|
|
|
|
|
yocto-queue: 0.1.0
|
|
|
|
|
|
|
|
|
|
p-locate@5.0.0:
|
|
|
|
|
dependencies:
|
|
|
|
|
p-limit: 3.1.0
|
|
|
|
|
|
|
|
|
|
p-retry@4.6.2:
|
|
|
|
|
dependencies:
|
|
|
|
|
'@types/retry': 0.12.0
|
|
|
|
|
retry: 0.13.1
|
|
|
|
|
|
|
|
|
|
package-manager-detector@1.6.0: {}
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
parse5@8.0.1:
|
|
|
|
|
dependencies:
|
|
|
|
|
entities: 8.0.0
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
partial-json@0.1.7: {}
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
path-data-parser@0.1.0: {}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
path-exists@4.0.0: {}
|
|
|
|
|
|
|
|
|
|
path-expression-matcher@1.5.0: {}
|
|
|
|
|
|
|
|
|
|
path-key@3.1.1: {}
|
|
|
|
|
|
|
|
|
|
pathe@2.0.3: {}
|
|
|
|
|
|
|
|
|
|
picocolors@1.1.1: {}
|
|
|
|
|
|
|
|
|
|
picomatch@4.0.4: {}
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
points-on-curve@0.2.0: {}
|
|
|
|
|
|
|
|
|
|
points-on-path@0.2.1:
|
|
|
|
|
dependencies:
|
|
|
|
|
path-data-parser: 0.1.0
|
|
|
|
|
points-on-curve: 0.2.0
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
postcss@8.5.15:
|
|
|
|
|
dependencies:
|
|
|
|
|
nanoid: 3.3.12
|
|
|
|
|
picocolors: 1.1.1
|
|
|
|
|
source-map-js: 1.2.1
|
|
|
|
|
|
|
|
|
|
prelude-ls@1.2.1: {}
|
|
|
|
|
|
|
|
|
|
protobufjs@7.6.4:
|
|
|
|
|
dependencies:
|
|
|
|
|
'@protobufjs/aspromise': 1.1.2
|
|
|
|
|
'@protobufjs/base64': 1.1.2
|
|
|
|
|
'@protobufjs/codegen': 2.0.5
|
|
|
|
|
'@protobufjs/eventemitter': 1.1.1
|
|
|
|
|
'@protobufjs/fetch': 1.1.1
|
|
|
|
|
'@protobufjs/float': 1.0.2
|
|
|
|
|
'@protobufjs/path': 1.1.2
|
|
|
|
|
'@protobufjs/pool': 1.1.0
|
|
|
|
|
'@protobufjs/utf8': 1.1.1
|
|
|
|
|
'@types/node': 25.9.3
|
|
|
|
|
long: 5.3.2
|
|
|
|
|
|
|
|
|
|
publint@0.3.21:
|
|
|
|
|
dependencies:
|
|
|
|
|
'@publint/pack': 0.1.4
|
|
|
|
|
package-manager-detector: 1.6.0
|
|
|
|
|
picocolors: 1.1.1
|
|
|
|
|
sade: 1.8.1
|
|
|
|
|
|
|
|
|
|
punycode@2.3.1: {}
|
|
|
|
|
|
|
|
|
|
pure-rand@8.4.0: {}
|
|
|
|
|
|
|
|
|
|
quansync@1.0.0: {}
|
|
|
|
|
|
|
|
|
|
readdirp@4.1.2: {}
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
require-from-string@2.0.2: {}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
resolve-pkg-maps@1.0.0: {}
|
|
|
|
|
|
|
|
|
|
retry@0.13.1: {}
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
robust-predicates@3.0.3: {}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
rolldown-plugin-dts@0.25.2(oxc-resolver@11.20.0)(rolldown@1.1.1)(typescript@6.0.3):
|
|
|
|
|
dependencies:
|
|
|
|
|
'@babel/generator': 8.0.0-rc.6
|
|
|
|
|
'@babel/helper-validator-identifier': 8.0.0-rc.6
|
|
|
|
|
'@babel/parser': 8.0.0-rc.6
|
|
|
|
|
ast-kit: 3.0.0-beta.1
|
|
|
|
|
birpc: 4.0.0
|
|
|
|
|
dts-resolver: 3.0.0(oxc-resolver@11.20.0)
|
|
|
|
|
get-tsconfig: 5.0.0-beta.5
|
|
|
|
|
obug: 2.1.3
|
|
|
|
|
rolldown: 1.1.1
|
|
|
|
|
optionalDependencies:
|
|
|
|
|
typescript: 6.0.3
|
|
|
|
|
transitivePeerDependencies:
|
|
|
|
|
- oxc-resolver
|
|
|
|
|
|
|
|
|
|
rolldown@1.0.3:
|
|
|
|
|
dependencies:
|
|
|
|
|
'@oxc-project/types': 0.133.0
|
|
|
|
|
'@rolldown/pluginutils': 1.0.1
|
|
|
|
|
optionalDependencies:
|
|
|
|
|
'@rolldown/binding-android-arm64': 1.0.3
|
|
|
|
|
'@rolldown/binding-darwin-arm64': 1.0.3
|
|
|
|
|
'@rolldown/binding-darwin-x64': 1.0.3
|
|
|
|
|
'@rolldown/binding-freebsd-x64': 1.0.3
|
|
|
|
|
'@rolldown/binding-linux-arm-gnueabihf': 1.0.3
|
|
|
|
|
'@rolldown/binding-linux-arm64-gnu': 1.0.3
|
|
|
|
|
'@rolldown/binding-linux-arm64-musl': 1.0.3
|
|
|
|
|
'@rolldown/binding-linux-ppc64-gnu': 1.0.3
|
|
|
|
|
'@rolldown/binding-linux-s390x-gnu': 1.0.3
|
|
|
|
|
'@rolldown/binding-linux-x64-gnu': 1.0.3
|
|
|
|
|
'@rolldown/binding-linux-x64-musl': 1.0.3
|
|
|
|
|
'@rolldown/binding-openharmony-arm64': 1.0.3
|
|
|
|
|
'@rolldown/binding-wasm32-wasi': 1.0.3
|
|
|
|
|
'@rolldown/binding-win32-arm64-msvc': 1.0.3
|
|
|
|
|
'@rolldown/binding-win32-x64-msvc': 1.0.3
|
|
|
|
|
|
|
|
|
|
rolldown@1.1.1:
|
|
|
|
|
dependencies:
|
|
|
|
|
'@oxc-project/types': 0.135.0
|
|
|
|
|
'@rolldown/pluginutils': 1.0.1
|
|
|
|
|
optionalDependencies:
|
|
|
|
|
'@rolldown/binding-android-arm64': 1.1.1
|
|
|
|
|
'@rolldown/binding-darwin-arm64': 1.1.1
|
|
|
|
|
'@rolldown/binding-darwin-x64': 1.1.1
|
|
|
|
|
'@rolldown/binding-freebsd-x64': 1.1.1
|
|
|
|
|
'@rolldown/binding-linux-arm-gnueabihf': 1.1.1
|
|
|
|
|
'@rolldown/binding-linux-arm64-gnu': 1.1.1
|
|
|
|
|
'@rolldown/binding-linux-arm64-musl': 1.1.1
|
|
|
|
|
'@rolldown/binding-linux-ppc64-gnu': 1.1.1
|
|
|
|
|
'@rolldown/binding-linux-s390x-gnu': 1.1.1
|
|
|
|
|
'@rolldown/binding-linux-x64-gnu': 1.1.1
|
|
|
|
|
'@rolldown/binding-linux-x64-musl': 1.1.1
|
|
|
|
|
'@rolldown/binding-openharmony-arm64': 1.1.1
|
|
|
|
|
'@rolldown/binding-wasm32-wasi': 1.1.1
|
|
|
|
|
'@rolldown/binding-win32-arm64-msvc': 1.1.1
|
|
|
|
|
'@rolldown/binding-win32-x64-msvc': 1.1.1
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
roughjs@4.6.6:
|
|
|
|
|
dependencies:
|
|
|
|
|
hachure-fill: 0.5.2
|
|
|
|
|
path-data-parser: 0.1.0
|
|
|
|
|
points-on-curve: 0.2.0
|
|
|
|
|
points-on-path: 0.2.1
|
|
|
|
|
|
|
|
|
|
rw@1.3.3: {}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
sade@1.8.1:
|
|
|
|
|
dependencies:
|
|
|
|
|
mri: 1.2.0
|
|
|
|
|
|
|
|
|
|
safe-buffer@5.2.1: {}
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
safer-buffer@2.1.2: {}
|
|
|
|
|
|
|
|
|
|
saxes@6.0.0:
|
|
|
|
|
dependencies:
|
|
|
|
|
xmlchars: 2.2.0
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
schemastery@3.18.0:
|
|
|
|
|
dependencies:
|
|
|
|
|
'@standard-schema/spec': 1.1.0
|
|
|
|
|
cosmokit: 1.8.1
|
|
|
|
|
|
|
|
|
|
semver@7.8.4: {}
|
|
|
|
|
|
|
|
|
|
shebang-command@2.0.0:
|
|
|
|
|
dependencies:
|
|
|
|
|
shebang-regex: 3.0.0
|
|
|
|
|
|
|
|
|
|
shebang-regex@3.0.0: {}
|
|
|
|
|
|
|
|
|
|
siginfo@2.0.0: {}
|
|
|
|
|
|
|
|
|
|
smol-toml@1.6.1: {}
|
|
|
|
|
|
|
|
|
|
source-map-js@1.2.1: {}
|
|
|
|
|
|
|
|
|
|
stackback@0.0.2: {}
|
|
|
|
|
|
|
|
|
|
std-env@4.1.0: {}
|
|
|
|
|
|
|
|
|
|
strip-json-comments@5.0.3: {}
|
|
|
|
|
|
|
|
|
|
strnum@2.4.0:
|
|
|
|
|
dependencies:
|
|
|
|
|
anynum: 1.0.0
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
stylis@4.4.0: {}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
supports-color@7.2.0:
|
|
|
|
|
dependencies:
|
|
|
|
|
has-flag: 4.0.0
|
|
|
|
|
|
|
|
|
|
supports-color@9.4.0: {}
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
symbol-tree@3.2.4: {}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
tinybench@2.9.0: {}
|
|
|
|
|
|
|
|
|
|
tinyexec@1.2.4: {}
|
|
|
|
|
|
|
|
|
|
tinyglobby@0.2.17:
|
|
|
|
|
dependencies:
|
|
|
|
|
fdir: 6.5.0(picomatch@4.0.4)
|
|
|
|
|
picomatch: 4.0.4
|
|
|
|
|
|
|
|
|
|
tinyrainbow@3.1.0: {}
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
tldts-core@7.4.5: {}
|
|
|
|
|
|
|
|
|
|
tldts@7.4.5:
|
|
|
|
|
dependencies:
|
|
|
|
|
tldts-core: 7.4.5
|
|
|
|
|
|
|
|
|
|
tough-cookie@6.0.1:
|
|
|
|
|
dependencies:
|
|
|
|
|
tldts: 7.4.5
|
|
|
|
|
|
|
|
|
|
tr46@6.0.0:
|
|
|
|
|
dependencies:
|
|
|
|
|
punycode: 2.3.1
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
tree-kill@1.2.2: {}
|
|
|
|
|
|
|
|
|
|
ts-algebra@2.0.0: {}
|
|
|
|
|
|
|
|
|
|
ts-api-utils@2.5.0(typescript@6.0.3):
|
|
|
|
|
dependencies:
|
|
|
|
|
typescript: 6.0.3
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
ts-dedent@2.3.0: {}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
tsconfck@3.1.6(typescript@6.0.3):
|
|
|
|
|
optionalDependencies:
|
|
|
|
|
typescript: 6.0.3
|
|
|
|
|
|
|
|
|
|
tsdown@0.22.2(oxc-resolver@11.20.0)(publint@0.3.21)(tsx@4.22.4)(typescript@6.0.3):
|
|
|
|
|
dependencies:
|
|
|
|
|
ansis: 4.3.1
|
|
|
|
|
cac: 7.0.0
|
|
|
|
|
defu: 6.1.7
|
|
|
|
|
empathic: 2.0.1
|
|
|
|
|
hookable: 6.1.1
|
|
|
|
|
import-without-cache: 0.4.0
|
|
|
|
|
obug: 2.1.3
|
|
|
|
|
picomatch: 4.0.4
|
|
|
|
|
rolldown: 1.1.1
|
|
|
|
|
rolldown-plugin-dts: 0.25.2(oxc-resolver@11.20.0)(rolldown@1.1.1)(typescript@6.0.3)
|
|
|
|
|
semver: 7.8.4
|
|
|
|
|
tinyexec: 1.2.4
|
|
|
|
|
tinyglobby: 0.2.17
|
|
|
|
|
tree-kill: 1.2.2
|
|
|
|
|
unconfig-core: 7.5.0
|
|
|
|
|
optionalDependencies:
|
|
|
|
|
publint: 0.3.21
|
|
|
|
|
tsx: 4.22.4
|
|
|
|
|
typescript: 6.0.3
|
|
|
|
|
transitivePeerDependencies:
|
|
|
|
|
- '@ts-macro/tsc'
|
|
|
|
|
- '@typescript/native-preview'
|
|
|
|
|
- oxc-resolver
|
|
|
|
|
- vue-tsc
|
|
|
|
|
|
|
|
|
|
tslib@2.8.1: {}
|
|
|
|
|
|
|
|
|
|
tsx@4.22.4:
|
|
|
|
|
dependencies:
|
|
|
|
|
esbuild: 0.28.1
|
|
|
|
|
optionalDependencies:
|
|
|
|
|
fsevents: 2.3.3
|
|
|
|
|
|
|
|
|
|
type-check@0.4.0:
|
|
|
|
|
dependencies:
|
|
|
|
|
prelude-ls: 1.2.1
|
|
|
|
|
|
|
|
|
|
typebox@1.1.38: {}
|
|
|
|
|
|
|
|
|
|
typescript-eslint@8.61.0(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3):
|
|
|
|
|
dependencies:
|
|
|
|
|
'@typescript-eslint/eslint-plugin': 8.61.0(@typescript-eslint/parser@8.61.0(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3)
|
|
|
|
|
'@typescript-eslint/parser': 8.61.0(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3)
|
|
|
|
|
'@typescript-eslint/typescript-estree': 8.61.0(typescript@6.0.3)
|
|
|
|
|
'@typescript-eslint/utils': 8.61.0(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3)
|
|
|
|
|
eslint: 10.5.0(jiti@2.7.0)
|
|
|
|
|
typescript: 6.0.3
|
|
|
|
|
transitivePeerDependencies:
|
|
|
|
|
- supports-color
|
|
|
|
|
|
|
|
|
|
typescript@6.0.3: {}
|
|
|
|
|
|
|
|
|
|
unbash@3.0.0: {}
|
|
|
|
|
|
|
|
|
|
unconfig-core@7.5.0:
|
|
|
|
|
dependencies:
|
|
|
|
|
'@quansync/fs': 1.0.0
|
|
|
|
|
quansync: 1.0.0
|
|
|
|
|
|
|
|
|
|
undici-types@7.24.6: {}
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
undici@7.28.0: {}
|
|
|
|
|
|
refactor: detect md hard-wraps via mdast AST, not regex
Per review feedback (use a real markdown parser with an AST linked to
source positions), rewrite verify-md-wrap to parse each file with
mdast-util-from-markdown (the CommonMark parser behind remark) + the GFM
extension, then flag any `paragraph` node whose source span covers more
than one line.
Why a parser over the hand-rolled line scanner:
- It is a checker, not a formatter — it reports and never rewrites, so
zero cosmetic churn (no emphasis-marker or table-delimiter
normalization, which is why Prettier was rejected for this).
- The AST owns every structural exemption (fenced code of any fence
length, tables, lists, blockquotes, HTML, headings, reference defs),
fixing both bugs the regex version had: it now catches wrapped
list-item / blockquote prose (a `paragraph` inside those nodes) and no
longer false-positives on a longer ```` fence wrapping an inner ```.
Also unwrap two pre-existing hard-wrapped blockquotes (architecture.md,
adding-a-tool.md) that the stricter AST check correctly surfaced.
2026-06-16 23:35:33 +08:00
|
|
|
unist-util-is@6.0.1:
|
|
|
|
|
dependencies:
|
|
|
|
|
'@types/unist': 3.0.3
|
|
|
|
|
|
|
|
|
|
unist-util-stringify-position@4.0.0:
|
|
|
|
|
dependencies:
|
|
|
|
|
'@types/unist': 3.0.3
|
|
|
|
|
|
|
|
|
|
unist-util-visit-parents@6.0.2:
|
|
|
|
|
dependencies:
|
|
|
|
|
'@types/unist': 3.0.3
|
|
|
|
|
unist-util-is: 6.0.1
|
|
|
|
|
|
|
|
|
|
unist-util-visit@5.1.0:
|
|
|
|
|
dependencies:
|
|
|
|
|
'@types/unist': 3.0.3
|
|
|
|
|
unist-util-is: 6.0.1
|
|
|
|
|
unist-util-visit-parents: 6.0.2
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
uri-js@4.4.1:
|
|
|
|
|
dependencies:
|
|
|
|
|
punycode: 2.3.1
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
uuid@14.0.1: {}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
vite-tsconfig-paths@6.1.1(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0)):
|
|
|
|
|
dependencies:
|
|
|
|
|
debug: 4.4.3
|
|
|
|
|
globrex: 0.1.2
|
|
|
|
|
tsconfck: 3.1.6(typescript@6.0.3)
|
|
|
|
|
vite: 8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0)
|
|
|
|
|
transitivePeerDependencies:
|
|
|
|
|
- supports-color
|
|
|
|
|
- typescript
|
|
|
|
|
|
|
|
|
|
vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0):
|
|
|
|
|
dependencies:
|
|
|
|
|
lightningcss: 1.32.0
|
|
|
|
|
picomatch: 4.0.4
|
|
|
|
|
postcss: 8.5.15
|
|
|
|
|
rolldown: 1.0.3
|
|
|
|
|
tinyglobby: 0.2.17
|
|
|
|
|
optionalDependencies:
|
|
|
|
|
'@types/node': 25.9.3
|
|
|
|
|
esbuild: 0.28.1
|
|
|
|
|
fsevents: 2.3.3
|
|
|
|
|
jiti: 2.7.0
|
|
|
|
|
tsx: 4.22.4
|
|
|
|
|
yaml: 2.9.0
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
vitest@4.1.8(@types/node@25.9.3)(@vitest/coverage-v8@4.1.8)(jsdom@29.1.1)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0)):
|
2026-06-16 14:55:37 +08:00
|
|
|
dependencies:
|
|
|
|
|
'@vitest/expect': 4.1.8
|
|
|
|
|
'@vitest/mocker': 4.1.8(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0))
|
|
|
|
|
'@vitest/pretty-format': 4.1.8
|
|
|
|
|
'@vitest/runner': 4.1.8
|
|
|
|
|
'@vitest/snapshot': 4.1.8
|
|
|
|
|
'@vitest/spy': 4.1.8
|
|
|
|
|
'@vitest/utils': 4.1.8
|
|
|
|
|
es-module-lexer: 2.1.0
|
|
|
|
|
expect-type: 1.3.0
|
|
|
|
|
magic-string: 0.30.21
|
|
|
|
|
obug: 2.1.3
|
|
|
|
|
pathe: 2.0.3
|
|
|
|
|
picomatch: 4.0.4
|
|
|
|
|
std-env: 4.1.0
|
|
|
|
|
tinybench: 2.9.0
|
|
|
|
|
tinyexec: 1.2.4
|
|
|
|
|
tinyglobby: 0.2.17
|
|
|
|
|
tinyrainbow: 3.1.0
|
|
|
|
|
vite: 8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0)
|
|
|
|
|
why-is-node-running: 2.3.0
|
|
|
|
|
optionalDependencies:
|
|
|
|
|
'@types/node': 25.9.3
|
|
|
|
|
'@vitest/coverage-v8': 4.1.8(vitest@4.1.8)
|
2026-07-03 01:32:01 +08:00
|
|
|
jsdom: 29.1.1
|
2026-06-16 14:55:37 +08:00
|
|
|
transitivePeerDependencies:
|
|
|
|
|
- msw
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
w3c-xmlserializer@5.0.0:
|
|
|
|
|
dependencies:
|
|
|
|
|
xml-name-validator: 5.0.0
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
walk-up-path@4.0.0: {}
|
|
|
|
|
|
|
|
|
|
web-streams-polyfill@3.3.3: {}
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
webidl-conversions@8.0.1: {}
|
|
|
|
|
|
|
|
|
|
whatwg-mimetype@5.0.0: {}
|
|
|
|
|
|
|
|
|
|
whatwg-url@16.0.1:
|
|
|
|
|
dependencies:
|
|
|
|
|
'@exodus/bytes': 1.15.1
|
|
|
|
|
tr46: 6.0.0
|
|
|
|
|
webidl-conversions: 8.0.1
|
|
|
|
|
transitivePeerDependencies:
|
|
|
|
|
- '@noble/hashes'
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
which@2.0.2:
|
|
|
|
|
dependencies:
|
|
|
|
|
isexe: 2.0.0
|
|
|
|
|
|
|
|
|
|
why-is-node-running@2.3.0:
|
|
|
|
|
dependencies:
|
|
|
|
|
siginfo: 2.0.0
|
|
|
|
|
stackback: 0.0.2
|
|
|
|
|
|
|
|
|
|
word-wrap@1.2.5: {}
|
|
|
|
|
|
|
|
|
|
ws@8.21.0: {}
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
xml-name-validator@5.0.0: {}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
xml-naming@0.1.0: {}
|
|
|
|
|
|
2026-07-03 01:32:01 +08:00
|
|
|
xmlchars@2.2.0: {}
|
|
|
|
|
|
2026-06-16 14:55:37 +08:00
|
|
|
yaml@2.9.0: {}
|
|
|
|
|
|
|
|
|
|
yocto-queue@0.1.0: {}
|
|
|
|
|
|
|
|
|
|
zod-to-json-schema@3.25.2(zod@4.4.3):
|
|
|
|
|
dependencies:
|
|
|
|
|
zod: 4.4.3
|
|
|
|
|
|
|
|
|
|
zod@4.4.3: {}
|
refactor: detect md hard-wraps via mdast AST, not regex
Per review feedback (use a real markdown parser with an AST linked to
source positions), rewrite verify-md-wrap to parse each file with
mdast-util-from-markdown (the CommonMark parser behind remark) + the GFM
extension, then flag any `paragraph` node whose source span covers more
than one line.
Why a parser over the hand-rolled line scanner:
- It is a checker, not a formatter — it reports and never rewrites, so
zero cosmetic churn (no emphasis-marker or table-delimiter
normalization, which is why Prettier was rejected for this).
- The AST owns every structural exemption (fenced code of any fence
length, tables, lists, blockquotes, HTML, headings, reference defs),
fixing both bugs the regex version had: it now catches wrapped
list-item / blockquote prose (a `paragraph` inside those nodes) and no
longer false-positives on a longer ```` fence wrapping an inner ```.
Also unwrap two pre-existing hard-wrapped blockquotes (architecture.md,
adding-a-tool.md) that the stricter AST check correctly surfaced.
2026-06-16 23:35:33 +08:00
|
|
|
|
|
|
|
|
zwitch@2.0.4: {}
|