@maidang1/hataraku 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/CLAUDE.md +21 -0
- package/.codex/skills/beautiful-mermaid/SKILL.md +171 -0
- package/.codex/skills/beautiful-mermaid/references/mermaid-syntax.md +235 -0
- package/.codex/skills/beautiful-mermaid/scripts/create-html.ts +177 -0
- package/.codex/skills/beautiful-mermaid/scripts/render.ts +221 -0
- package/.codex/skills/find-skills/SKILL.md +133 -0
- package/.github/workflows/publish-github-packages.yml +58 -0
- package/.github/workflows/publish-npm.yml +46 -0
- package/.vscode/settings.json +2 -0
- package/AGENTS.md +41 -0
- package/LICENSE +21 -0
- package/README.md +119 -0
- package/bun.lock +327 -0
- package/docs/agent/architecture.md +28 -0
- package/docs/agent/development_commands.md +6 -0
- package/docs/plan/agent-plan-2026-02-05.md +136 -0
- package/docs/plan/core-agent-sdk-structure-2026-02-07.md +156 -0
- package/docs/plan/implementation-summary.md +303 -0
- package/docs/plan/mcp-2026-02-05.md +700 -0
- package/docs/plan/op.md +478 -0
- package/docs/plan/skills-2026-02-05.md +352 -0
- package/docs/plan/skills-flow.svg +120 -0
- package/docs/plan/tui-readability-2026-02-06.md +67 -0
- package/package.json +34 -0
- package/src/cli/index.tsx +4 -0
- package/src/cli/main.tsx +98 -0
- package/src/core/README.md +19 -0
- package/src/core/api/agent.ts +1 -0
- package/src/core/api/config.ts +1 -0
- package/src/core/api/index.ts +10 -0
- package/src/core/api/integrations.ts +1 -0
- package/src/core/api/observability.ts +1 -0
- package/src/core/api/policy.ts +1 -0
- package/src/core/api/providers.ts +1 -0
- package/src/core/api/runtime.ts +1 -0
- package/src/core/api/shared.ts +1 -0
- package/src/core/api/tools.ts +1 -0
- package/src/core/api/types.ts +1 -0
- package/src/core/index.ts +1 -0
- package/src/core/internal/config/defaults.ts +8 -0
- package/src/core/internal/config/index.ts +3 -0
- package/src/core/internal/config/loader.ts +97 -0
- package/src/core/internal/config/schema.ts +47 -0
- package/src/core/internal/integrations/index.ts +2 -0
- package/src/core/internal/integrations/mcp/connection-manager.ts +231 -0
- package/src/core/internal/integrations/mcp/health-checker.ts +91 -0
- package/src/core/internal/integrations/mcp/index.ts +197 -0
- package/src/core/internal/integrations/mcp/retry-strategy.ts +111 -0
- package/src/core/internal/integrations/mcp/tool-cache.ts +103 -0
- package/src/core/internal/integrations/mcp/transport.ts +58 -0
- package/src/core/internal/integrations/mcp/types.ts +95 -0
- package/src/core/internal/integrations/mcp/utils.ts +44 -0
- package/src/core/internal/integrations/skills/cache/index.ts +38 -0
- package/src/core/internal/integrations/skills/cache/interface.ts +9 -0
- package/src/core/internal/integrations/skills/cache/memory-cache.ts +118 -0
- package/src/core/internal/integrations/skills/config/defaults.ts +35 -0
- package/src/core/internal/integrations/skills/config/index.ts +71 -0
- package/src/core/internal/integrations/skills/config/schema.ts +31 -0
- package/src/core/internal/integrations/skills/core/errors.ts +36 -0
- package/src/core/internal/integrations/skills/core/events.ts +143 -0
- package/src/core/internal/integrations/skills/core/types.ts +83 -0
- package/src/core/internal/integrations/skills/dependency/conflict-detector.ts +126 -0
- package/src/core/internal/integrations/skills/dependency/graph.ts +91 -0
- package/src/core/internal/integrations/skills/dependency/resolver.ts +128 -0
- package/src/core/internal/integrations/skills/dependency/types.ts +51 -0
- package/src/core/internal/integrations/skills/discovery/index.ts +98 -0
- package/src/core/internal/integrations/skills/discovery/resolver.ts +39 -0
- package/src/core/internal/integrations/skills/discovery/scanner.ts +116 -0
- package/src/core/internal/integrations/skills/discovery/strategies/file-system.ts +16 -0
- package/src/core/internal/integrations/skills/index.ts +3 -0
- package/src/core/internal/integrations/skills/integration/lifecycle.ts +124 -0
- package/src/core/internal/integrations/skills/integration/mcp-loader.ts +100 -0
- package/src/core/internal/integrations/skills/integration/tool-mapper.ts +56 -0
- package/src/core/internal/integrations/skills/loaders/index.ts +5 -0
- package/src/core/internal/integrations/skills/loaders/skill-loader.ts +97 -0
- package/src/core/internal/integrations/skills/manager.ts +200 -0
- package/src/core/internal/integrations/skills/parsers/base.ts +134 -0
- package/src/core/internal/integrations/skills/parsers/factory.ts +42 -0
- package/src/core/internal/integrations/skills/parsers/index.ts +71 -0
- package/src/core/internal/integrations/skills/parsers/markdown.ts +111 -0
- package/src/core/internal/integrations/skills/parsers/yaml-metadata.ts +49 -0
- package/src/core/internal/integrations/skills/types.ts +15 -0
- package/src/core/internal/integrations/skills/utils/fs.ts +59 -0
- package/src/core/internal/integrations/skills/utils/logger.ts +109 -0
- package/src/core/internal/integrations/skills/utils/path.ts +27 -0
- package/src/core/internal/integrations/skills/validation/index.ts +43 -0
- package/src/core/internal/integrations/skills/validation/schema.ts +37 -0
- package/src/core/internal/integrations/skills/validation/skill-validator.ts +56 -0
- package/src/core/internal/observability/index.ts +2 -0
- package/src/core/internal/observability/logging/env.ts +32 -0
- package/src/core/internal/observability/logging/export.ts +55 -0
- package/src/core/internal/observability/logging/index.ts +4 -0
- package/src/core/internal/observability/logging/session-logger.ts +54 -0
- package/src/core/internal/observability/logging/types.ts +53 -0
- package/src/core/internal/policy/index.ts +1 -0
- package/src/core/internal/policy/safety/index.ts +2 -0
- package/src/core/internal/policy/safety/policy.ts +96 -0
- package/src/core/internal/policy/safety/types.ts +24 -0
- package/src/core/internal/providers/anthropic/client.ts +20 -0
- package/src/core/internal/providers/anthropic/index.ts +1 -0
- package/src/core/internal/providers/index.ts +1 -0
- package/src/core/internal/sdk/agent/agent.ts +691 -0
- package/src/core/internal/sdk/agent/index.ts +3 -0
- package/src/core/internal/sdk/agent/session.ts +9 -0
- package/src/core/internal/sdk/agent/tool-loop.ts +10 -0
- package/src/core/internal/sdk/index.ts +3 -0
- package/src/core/internal/sdk/runtime/context.ts +1 -0
- package/src/core/internal/sdk/runtime/errors.ts +9 -0
- package/src/core/internal/sdk/runtime/execution.ts +12 -0
- package/src/core/internal/sdk/runtime/index.ts +3 -0
- package/src/core/internal/sdk/types/api.ts +4 -0
- package/src/core/internal/sdk/types/index.ts +1 -0
- package/src/core/internal/sdk/types/internal.ts +1 -0
- package/src/core/internal/shared/fs.ts +10 -0
- package/src/core/internal/shared/index.ts +3 -0
- package/src/core/internal/shared/message.ts +12 -0
- package/src/core/internal/shared/path.ts +10 -0
- package/src/core/internal/tools/base/errors.ts +6 -0
- package/src/core/internal/tools/base/index.ts +3 -0
- package/src/core/internal/tools/base/schema.ts +1 -0
- package/src/core/internal/tools/base/tool.ts +42 -0
- package/src/core/internal/tools/builtins/architect.ts +45 -0
- package/src/core/internal/tools/builtins/bash.ts +135 -0
- package/src/core/internal/tools/builtins/fetch.ts +62 -0
- package/src/core/internal/tools/builtins/file-edit.ts +134 -0
- package/src/core/internal/tools/builtins/file-read.ts +75 -0
- package/src/core/internal/tools/builtins/fs.ts +254 -0
- package/src/core/internal/tools/builtins/glob.ts +75 -0
- package/src/core/internal/tools/builtins/grep.ts +104 -0
- package/src/core/internal/tools/builtins/index.ts +26 -0
- package/src/core/internal/tools/builtins/list-files.ts +64 -0
- package/src/core/internal/tools/builtins/search.ts +50 -0
- package/src/core/internal/tools/builtins/skills.ts +127 -0
- package/src/core/internal/tools/builtins/todo.ts +121 -0
- package/src/core/internal/tools/guards/file-edit-cache.ts +21 -0
- package/src/core/internal/tools/guards/limits.ts +43 -0
- package/src/core/internal/tools/index.ts +39 -0
- package/src/core/internal/tools/registry/index.ts +2 -0
- package/src/core/internal/tools/registry/presets.ts +28 -0
- package/src/core/internal/tools/registry/registry.ts +21 -0
- package/src/index.ts +3 -0
- package/src/render/commands/index.ts +113 -0
- package/src/render/commands/init.ts +45 -0
- package/src/render/components/ActivityPane.tsx +67 -0
- package/src/render/components/ChatBubble.tsx +58 -0
- package/src/render/components/ConfirmCard.tsx +100 -0
- package/src/render/components/ConfirmSelectMenu.tsx +56 -0
- package/src/render/components/ConversationPane.tsx +65 -0
- package/src/render/components/EventTimeline.tsx +30 -0
- package/src/render/components/MarkdownText.tsx +139 -0
- package/src/render/components/SlashCommandMenu.tsx +68 -0
- package/src/render/components/Spinner.tsx +18 -0
- package/src/render/components/StatusBar.tsx +72 -0
- package/src/render/components/Timeline.tsx +57 -0
- package/src/render/components/TimelineEvent.tsx +313 -0
- package/src/render/components/ToolCard.tsx +126 -0
- package/src/render/components/formatters/confirm.test.ts +34 -0
- package/src/render/components/formatters/confirm.ts +32 -0
- package/src/render/index.tsx +466 -0
- package/src/render/state/events.ts +301 -0
- package/src/render/state/history.ts +5 -0
- package/src/render/state/loading.ts +18 -0
- package/src/render/state/message.tsx +35 -0
- package/src/render/state/store.ts +7 -0
- package/src/render/theme.ts +52 -0
- package/test-e2e.ts +250 -0
- package/tsconfig.json +29 -0
package/bun.lock
ADDED
|
@@ -0,0 +1,327 @@
|
|
|
1
|
+
{
|
|
2
|
+
"lockfileVersion": 1,
|
|
3
|
+
"configVersion": 0,
|
|
4
|
+
"workspaces": {
|
|
5
|
+
"": {
|
|
6
|
+
"name": "@maidang1/hataraku",
|
|
7
|
+
"dependencies": {
|
|
8
|
+
"@anthropic-ai/sdk": "^0.72.1",
|
|
9
|
+
"@modelcontextprotocol/sdk": "^1.17.5",
|
|
10
|
+
"@types/js-yaml": "^4.0.9",
|
|
11
|
+
"cac": "^6.7.14",
|
|
12
|
+
"ink": "^6.6.0",
|
|
13
|
+
"ink-text-input": "^6.0.0",
|
|
14
|
+
"jotai": "^2.17.0",
|
|
15
|
+
"js-yaml": "^4.1.1",
|
|
16
|
+
"react": "^19.2.4",
|
|
17
|
+
"zod": "^3.25.0",
|
|
18
|
+
"zustand": "^5.0.11",
|
|
19
|
+
},
|
|
20
|
+
"devDependencies": {
|
|
21
|
+
"@types/bun": "latest",
|
|
22
|
+
"@types/react": "^19.2.10",
|
|
23
|
+
"@types/react-dom": "^19.2.3",
|
|
24
|
+
},
|
|
25
|
+
"peerDependencies": {
|
|
26
|
+
"typescript": "^5",
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
"packages": {
|
|
31
|
+
"@alcalzone/ansi-tokenize": ["@alcalzone/ansi-tokenize@0.2.4", "https://registry.npmmirror.com/@alcalzone/ansi-tokenize/-/ansi-tokenize-0.2.4.tgz", { "dependencies": { "ansi-styles": "^6.2.1", "is-fullwidth-code-point": "^5.0.0" } }, "sha512-HTgrrTgZ9Jgeo6Z3oqbQ7lifOVvRR14vaDuBGPPUxk9Thm+vObaO4QfYYYWw4Zo5CWQDBEfsinFA6Gre+AqwNQ=="],
|
|
32
|
+
|
|
33
|
+
"@anthropic-ai/sdk": ["@anthropic-ai/sdk@0.72.1", "https://registry.npmmirror.com/@anthropic-ai/sdk/-/sdk-0.72.1.tgz", { "dependencies": { "json-schema-to-ts": "3.1.1" }, "optionalDependencies": { "zod": "3.25.76" }, "bin": { "anthropic-ai-sdk": "bin/cli" } }, "sha512-MiUnue7qN7DvLIoYHgkedN2z05mRf2CutBzjXXY2krzOhG2r/rIfISS2uVkNLikgToB5hYIzw+xp2jdOtRkqYQ=="],
|
|
34
|
+
|
|
35
|
+
"@babel/runtime": ["@babel/runtime@7.28.6", "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.28.6.tgz", {}, "sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA=="],
|
|
36
|
+
|
|
37
|
+
"@hono/node-server": ["@hono/node-server@1.19.9", "", { "peerDependencies": { "hono": "^4" } }, "sha512-vHL6w3ecZsky+8P5MD+eFfaGTyCeOHUIFYMGpQGbrBTSmNNoxv0if69rEZ5giu36weC5saFuznL411gRX7bJDw=="],
|
|
38
|
+
|
|
39
|
+
"@modelcontextprotocol/sdk": ["@modelcontextprotocol/sdk@1.25.3", "", { "dependencies": { "@hono/node-server": "^1.19.9", "ajv": "^8.17.1", "ajv-formats": "^3.0.1", "content-type": "^1.0.5", "cors": "^2.8.5", "cross-spawn": "^7.0.5", "eventsource": "^3.0.2", "eventsource-parser": "^3.0.0", "express": "^5.0.1", "express-rate-limit": "^7.5.0", "jose": "^6.1.1", "json-schema-typed": "^8.0.2", "pkce-challenge": "^5.0.0", "raw-body": "^3.0.0", "zod": "^3.25 || ^4.0", "zod-to-json-schema": "^3.25.0" }, "peerDependencies": { "@cfworker/json-schema": "^4.1.1" }, "optionalPeers": ["@cfworker/json-schema"] }, "sha512-vsAMBMERybvYgKbg/l4L1rhS7VXV1c0CtyJg72vwxONVX0l4ZfKVAnZEWTQixJGTzKnELjQ59e4NbdFDALRiAQ=="],
|
|
40
|
+
|
|
41
|
+
"@types/bun": ["@types/bun@1.3.8", "https://registry.npmmirror.com/@types/bun/-/bun-1.3.8.tgz", { "dependencies": { "bun-types": "1.3.8" } }, "sha512-3LvWJ2q5GerAXYxO2mffLTqOzEu5qnhEAlh48Vnu8WQfnmSwbgagjGZV6BoHKJztENYEDn6QmVd949W4uESRJA=="],
|
|
42
|
+
|
|
43
|
+
"@types/js-yaml": ["@types/js-yaml@4.0.9", "", {}, "sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg=="],
|
|
44
|
+
|
|
45
|
+
"@types/node": ["@types/node@25.1.0", "https://registry.npmmirror.com/@types/node/-/node-25.1.0.tgz", { "dependencies": { "undici-types": "7.16.0" } }, "sha512-t7frlewr6+cbx+9Ohpl0NOTKXZNV9xHRmNOvql47BFJKcEG1CxtxlPEEe+gR9uhVWM4DwhnvTF110mIL4yP9RA=="],
|
|
46
|
+
|
|
47
|
+
"@types/react": ["@types/react@19.2.10", "", { "dependencies": { "csstype": "^3.2.2" } }, "sha512-WPigyYuGhgZ/cTPRXB2EwUw+XvsRA3GqHlsP4qteqrnnjDrApbS7MxcGr/hke5iUoeB7E/gQtrs9I37zAJ0Vjw=="],
|
|
48
|
+
|
|
49
|
+
"@types/react-dom": ["@types/react-dom@19.2.3", "", { "peerDependencies": { "@types/react": "^19.2.0" } }, "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ=="],
|
|
50
|
+
|
|
51
|
+
"accepts": ["accepts@2.0.0", "", { "dependencies": { "mime-types": "^3.0.0", "negotiator": "^1.0.0" } }, "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng=="],
|
|
52
|
+
|
|
53
|
+
"ajv": ["ajv@8.17.1", "", { "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2" } }, "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g=="],
|
|
54
|
+
|
|
55
|
+
"ajv-formats": ["ajv-formats@3.0.1", "", { "dependencies": { "ajv": "^8.0.0" } }, "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ=="],
|
|
56
|
+
|
|
57
|
+
"ansi-escapes": ["ansi-escapes@7.2.0", "https://registry.npmmirror.com/ansi-escapes/-/ansi-escapes-7.2.0.tgz", { "dependencies": { "environment": "^1.0.0" } }, "sha512-g6LhBsl+GBPRWGWsBtutpzBYuIIdBkLEvad5C/va/74Db018+5TZiyA26cZJAr3Rft5lprVqOIPxf5Vid6tqAw=="],
|
|
58
|
+
|
|
59
|
+
"ansi-regex": ["ansi-regex@6.2.2", "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-6.2.2.tgz", {}, "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg=="],
|
|
60
|
+
|
|
61
|
+
"ansi-styles": ["ansi-styles@6.2.3", "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-6.2.3.tgz", {}, "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg=="],
|
|
62
|
+
|
|
63
|
+
"argparse": ["argparse@2.0.1", "", {}, "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="],
|
|
64
|
+
|
|
65
|
+
"auto-bind": ["auto-bind@5.0.1", "https://registry.npmmirror.com/auto-bind/-/auto-bind-5.0.1.tgz", {}, "sha512-ooviqdwwgfIfNmDwo94wlshcdzfO64XV0Cg6oDsDYBJfITDz1EngD2z7DkbvCWn+XIMsIqW27sEVF6qcpJrRcg=="],
|
|
66
|
+
|
|
67
|
+
"body-parser": ["body-parser@2.2.2", "", { "dependencies": { "bytes": "^3.1.2", "content-type": "^1.0.5", "debug": "^4.4.3", "http-errors": "^2.0.0", "iconv-lite": "^0.7.0", "on-finished": "^2.4.1", "qs": "^6.14.1", "raw-body": "^3.0.1", "type-is": "^2.0.1" } }, "sha512-oP5VkATKlNwcgvxi0vM0p/D3n2C3EReYVX+DNYs5TjZFn/oQt2j+4sVJtSMr18pdRr8wjTcBl6LoV+FUwzPmNA=="],
|
|
68
|
+
|
|
69
|
+
"bun-types": ["bun-types@1.3.8", "https://registry.npmmirror.com/bun-types/-/bun-types-1.3.8.tgz", { "dependencies": { "@types/node": "25.1.0" } }, "sha512-fL99nxdOWvV4LqjmC+8Q9kW3M4QTtTR1eePs94v5ctGqU8OeceWrSUaRw3JYb7tU3FkMIAjkueehrHPPPGKi5Q=="],
|
|
70
|
+
|
|
71
|
+
"bytes": ["bytes@3.1.2", "", {}, "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg=="],
|
|
72
|
+
|
|
73
|
+
"cac": ["cac@6.7.14", "https://registry.npmmirror.com/cac/-/cac-6.7.14.tgz", {}, "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ=="],
|
|
74
|
+
|
|
75
|
+
"call-bind-apply-helpers": ["call-bind-apply-helpers@1.0.2", "", { "dependencies": { "es-errors": "^1.3.0", "function-bind": "^1.1.2" } }, "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ=="],
|
|
76
|
+
|
|
77
|
+
"call-bound": ["call-bound@1.0.4", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.2", "get-intrinsic": "^1.3.0" } }, "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg=="],
|
|
78
|
+
|
|
79
|
+
"chalk": ["chalk@5.6.2", "https://registry.npmmirror.com/chalk/-/chalk-5.6.2.tgz", {}, "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA=="],
|
|
80
|
+
|
|
81
|
+
"cli-boxes": ["cli-boxes@3.0.0", "https://registry.npmmirror.com/cli-boxes/-/cli-boxes-3.0.0.tgz", {}, "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g=="],
|
|
82
|
+
|
|
83
|
+
"cli-cursor": ["cli-cursor@4.0.0", "https://registry.npmmirror.com/cli-cursor/-/cli-cursor-4.0.0.tgz", { "dependencies": { "restore-cursor": "^4.0.0" } }, "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg=="],
|
|
84
|
+
|
|
85
|
+
"cli-truncate": ["cli-truncate@5.1.1", "https://registry.npmmirror.com/cli-truncate/-/cli-truncate-5.1.1.tgz", { "dependencies": { "slice-ansi": "^7.1.0", "string-width": "^8.0.0" } }, "sha512-SroPvNHxUnk+vIW/dOSfNqdy1sPEFkrTk6TUtqLCnBlo3N7TNYYkzzN7uSD6+jVjrdO4+p8nH7JzH6cIvUem6A=="],
|
|
86
|
+
|
|
87
|
+
"code-excerpt": ["code-excerpt@4.0.0", "https://registry.npmmirror.com/code-excerpt/-/code-excerpt-4.0.0.tgz", { "dependencies": { "convert-to-spaces": "^2.0.1" } }, "sha512-xxodCmBen3iy2i0WtAK8FlFNrRzjUqjRsMfho58xT/wvZU1YTM3fCnRjcy1gJPMepaRlgm/0e6w8SpWHpn3/cA=="],
|
|
88
|
+
|
|
89
|
+
"content-disposition": ["content-disposition@1.0.1", "", {}, "sha512-oIXISMynqSqm241k6kcQ5UwttDILMK4BiurCfGEREw6+X9jkkpEe5T9FZaApyLGGOnFuyMWZpdolTXMtvEJ08Q=="],
|
|
90
|
+
|
|
91
|
+
"content-type": ["content-type@1.0.5", "", {}, "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA=="],
|
|
92
|
+
|
|
93
|
+
"convert-to-spaces": ["convert-to-spaces@2.0.1", "https://registry.npmmirror.com/convert-to-spaces/-/convert-to-spaces-2.0.1.tgz", {}, "sha512-rcQ1bsQO9799wq24uE5AM2tAILy4gXGIK/njFWcVQkGNZ96edlpY+A7bjwvzjYvLDyzmG1MmMLZhpcsb+klNMQ=="],
|
|
94
|
+
|
|
95
|
+
"cookie": ["cookie@0.7.2", "", {}, "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w=="],
|
|
96
|
+
|
|
97
|
+
"cookie-signature": ["cookie-signature@1.2.2", "", {}, "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg=="],
|
|
98
|
+
|
|
99
|
+
"cors": ["cors@2.8.6", "", { "dependencies": { "object-assign": "^4", "vary": "^1" } }, "sha512-tJtZBBHA6vjIAaF6EnIaq6laBBP9aq/Y3ouVJjEfoHbRBcHBAHYcMh/w8LDrk2PvIMMq8gmopa5D4V8RmbrxGw=="],
|
|
100
|
+
|
|
101
|
+
"cross-spawn": ["cross-spawn@7.0.6", "", { "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" } }, "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA=="],
|
|
102
|
+
|
|
103
|
+
"csstype": ["csstype@3.2.3", "", {}, "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ=="],
|
|
104
|
+
|
|
105
|
+
"debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="],
|
|
106
|
+
|
|
107
|
+
"depd": ["depd@2.0.0", "", {}, "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="],
|
|
108
|
+
|
|
109
|
+
"dunder-proto": ["dunder-proto@1.0.1", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.1", "es-errors": "^1.3.0", "gopd": "^1.2.0" } }, "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A=="],
|
|
110
|
+
|
|
111
|
+
"ee-first": ["ee-first@1.1.1", "", {}, "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="],
|
|
112
|
+
|
|
113
|
+
"emoji-regex": ["emoji-regex@10.6.0", "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-10.6.0.tgz", {}, "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A=="],
|
|
114
|
+
|
|
115
|
+
"encodeurl": ["encodeurl@2.0.0", "", {}, "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg=="],
|
|
116
|
+
|
|
117
|
+
"environment": ["environment@1.1.0", "https://registry.npmmirror.com/environment/-/environment-1.1.0.tgz", {}, "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q=="],
|
|
118
|
+
|
|
119
|
+
"es-define-property": ["es-define-property@1.0.1", "", {}, "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g=="],
|
|
120
|
+
|
|
121
|
+
"es-errors": ["es-errors@1.3.0", "", {}, "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw=="],
|
|
122
|
+
|
|
123
|
+
"es-object-atoms": ["es-object-atoms@1.1.1", "", { "dependencies": { "es-errors": "^1.3.0" } }, "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA=="],
|
|
124
|
+
|
|
125
|
+
"es-toolkit": ["es-toolkit@1.44.0", "https://registry.npmmirror.com/es-toolkit/-/es-toolkit-1.44.0.tgz", {}, "sha512-6penXeZalaV88MM3cGkFZZfOoLGWshWWfdy0tWw/RlVVyhvMaWSBTOvXNeiW3e5FwdS5ePW0LGEu17zT139ktg=="],
|
|
126
|
+
|
|
127
|
+
"escape-html": ["escape-html@1.0.3", "", {}, "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="],
|
|
128
|
+
|
|
129
|
+
"escape-string-regexp": ["escape-string-regexp@2.0.0", "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", {}, "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w=="],
|
|
130
|
+
|
|
131
|
+
"etag": ["etag@1.8.1", "", {}, "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg=="],
|
|
132
|
+
|
|
133
|
+
"eventsource": ["eventsource@3.0.7", "", { "dependencies": { "eventsource-parser": "^3.0.1" } }, "sha512-CRT1WTyuQoD771GW56XEZFQ/ZoSfWid1alKGDYMmkt2yl8UXrVR4pspqWNEcqKvVIzg6PAltWjxcSSPrboA4iA=="],
|
|
134
|
+
|
|
135
|
+
"eventsource-parser": ["eventsource-parser@3.0.6", "", {}, "sha512-Vo1ab+QXPzZ4tCa8SwIHJFaSzy4R6SHf7BY79rFBDf0idraZWAkYrDjDj8uWaSm3S2TK+hJ7/t1CEmZ7jXw+pg=="],
|
|
136
|
+
|
|
137
|
+
"express": ["express@5.2.1", "", { "dependencies": { "accepts": "^2.0.0", "body-parser": "^2.2.1", "content-disposition": "^1.0.0", "content-type": "^1.0.5", "cookie": "^0.7.1", "cookie-signature": "^1.2.1", "debug": "^4.4.0", "depd": "^2.0.0", "encodeurl": "^2.0.0", "escape-html": "^1.0.3", "etag": "^1.8.1", "finalhandler": "^2.1.0", "fresh": "^2.0.0", "http-errors": "^2.0.0", "merge-descriptors": "^2.0.0", "mime-types": "^3.0.0", "on-finished": "^2.4.1", "once": "^1.4.0", "parseurl": "^1.3.3", "proxy-addr": "^2.0.7", "qs": "^6.14.0", "range-parser": "^1.2.1", "router": "^2.2.0", "send": "^1.1.0", "serve-static": "^2.2.0", "statuses": "^2.0.1", "type-is": "^2.0.1", "vary": "^1.1.2" } }, "sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw=="],
|
|
138
|
+
|
|
139
|
+
"express-rate-limit": ["express-rate-limit@7.5.1", "", { "peerDependencies": { "express": ">= 4.11" } }, "sha512-7iN8iPMDzOMHPUYllBEsQdWVB6fPDMPqwjBaFrgr4Jgr/+okjvzAy+UHlYYL/Vs0OsOrMkwS6PJDkFlJwoxUnw=="],
|
|
140
|
+
|
|
141
|
+
"fast-deep-equal": ["fast-deep-equal@3.1.3", "", {}, "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="],
|
|
142
|
+
|
|
143
|
+
"fast-uri": ["fast-uri@3.1.0", "", {}, "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA=="],
|
|
144
|
+
|
|
145
|
+
"finalhandler": ["finalhandler@2.1.1", "", { "dependencies": { "debug": "^4.4.0", "encodeurl": "^2.0.0", "escape-html": "^1.0.3", "on-finished": "^2.4.1", "parseurl": "^1.3.3", "statuses": "^2.0.1" } }, "sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA=="],
|
|
146
|
+
|
|
147
|
+
"forwarded": ["forwarded@0.2.0", "", {}, "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow=="],
|
|
148
|
+
|
|
149
|
+
"fresh": ["fresh@2.0.0", "", {}, "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A=="],
|
|
150
|
+
|
|
151
|
+
"function-bind": ["function-bind@1.1.2", "", {}, "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA=="],
|
|
152
|
+
|
|
153
|
+
"get-east-asian-width": ["get-east-asian-width@1.4.0", "https://registry.npmmirror.com/get-east-asian-width/-/get-east-asian-width-1.4.0.tgz", {}, "sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q=="],
|
|
154
|
+
|
|
155
|
+
"get-intrinsic": ["get-intrinsic@1.3.0", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.2", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.1.1", "function-bind": "^1.1.2", "get-proto": "^1.0.1", "gopd": "^1.2.0", "has-symbols": "^1.1.0", "hasown": "^2.0.2", "math-intrinsics": "^1.1.0" } }, "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ=="],
|
|
156
|
+
|
|
157
|
+
"get-proto": ["get-proto@1.0.1", "", { "dependencies": { "dunder-proto": "^1.0.1", "es-object-atoms": "^1.0.0" } }, "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g=="],
|
|
158
|
+
|
|
159
|
+
"gopd": ["gopd@1.2.0", "", {}, "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg=="],
|
|
160
|
+
|
|
161
|
+
"has-symbols": ["has-symbols@1.1.0", "", {}, "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ=="],
|
|
162
|
+
|
|
163
|
+
"hasown": ["hasown@2.0.2", "", { "dependencies": { "function-bind": "^1.1.2" } }, "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ=="],
|
|
164
|
+
|
|
165
|
+
"hono": ["hono@4.11.7", "", {}, "sha512-l7qMiNee7t82bH3SeyUCt9UF15EVmaBvsppY2zQtrbIhl/yzBTny+YUxsVjSjQ6gaqaeVtZmGocom8TzBlA4Yw=="],
|
|
166
|
+
|
|
167
|
+
"http-errors": ["http-errors@2.0.1", "", { "dependencies": { "depd": "~2.0.0", "inherits": "~2.0.4", "setprototypeof": "~1.2.0", "statuses": "~2.0.2", "toidentifier": "~1.0.1" } }, "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ=="],
|
|
168
|
+
|
|
169
|
+
"iconv-lite": ["iconv-lite@0.7.2", "", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw=="],
|
|
170
|
+
|
|
171
|
+
"indent-string": ["indent-string@5.0.0", "https://registry.npmmirror.com/indent-string/-/indent-string-5.0.0.tgz", {}, "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg=="],
|
|
172
|
+
|
|
173
|
+
"inherits": ["inherits@2.0.4", "", {}, "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="],
|
|
174
|
+
|
|
175
|
+
"ink": ["ink@6.6.0", "https://registry.npmmirror.com/ink/-/ink-6.6.0.tgz", { "dependencies": { "@alcalzone/ansi-tokenize": "^0.2.1", "ansi-escapes": "^7.2.0", "ansi-styles": "^6.2.1", "auto-bind": "^5.0.1", "chalk": "^5.6.0", "cli-boxes": "^3.0.0", "cli-cursor": "^4.0.0", "cli-truncate": "^5.1.1", "code-excerpt": "^4.0.0", "es-toolkit": "^1.39.10", "indent-string": "^5.0.0", "is-in-ci": "^2.0.0", "patch-console": "^2.0.0", "react-reconciler": "^0.33.0", "signal-exit": "^3.0.7", "slice-ansi": "^7.1.0", "stack-utils": "^2.0.6", "string-width": "^8.1.0", "type-fest": "^4.27.0", "widest-line": "^5.0.0", "wrap-ansi": "^9.0.0", "ws": "^8.18.0", "yoga-layout": "~3.2.1" }, "peerDependencies": { "@types/react": ">=19.0.0", "react": ">=19.0.0", "react-devtools-core": "^6.1.2" }, "optionalPeers": ["@types/react", "react-devtools-core"] }, "sha512-QDt6FgJxgmSxAelcOvOHUvFxbIUjVpCH5bx+Slvc5m7IEcpGt3dYwbz/L+oRnqEGeRvwy1tineKK4ect3nW1vQ=="],
|
|
176
|
+
|
|
177
|
+
"ink-text-input": ["ink-text-input@6.0.0", "https://registry.npmmirror.com/ink-text-input/-/ink-text-input-6.0.0.tgz", { "dependencies": { "chalk": "^5.3.0", "type-fest": "^4.18.2" }, "peerDependencies": { "ink": ">=5", "react": ">=18" } }, "sha512-Fw64n7Yha5deb1rHY137zHTAbSTNelUKuB5Kkk2HACXEtwIHBCf9OH2tP/LQ9fRYTl1F0dZgbW0zPnZk6FA9Lw=="],
|
|
178
|
+
|
|
179
|
+
"ipaddr.js": ["ipaddr.js@1.9.1", "", {}, "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="],
|
|
180
|
+
|
|
181
|
+
"is-fullwidth-code-point": ["is-fullwidth-code-point@5.1.0", "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-5.1.0.tgz", { "dependencies": { "get-east-asian-width": "^1.3.1" } }, "sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ=="],
|
|
182
|
+
|
|
183
|
+
"is-in-ci": ["is-in-ci@2.0.0", "https://registry.npmmirror.com/is-in-ci/-/is-in-ci-2.0.0.tgz", { "bin": { "is-in-ci": "cli.js" } }, "sha512-cFeerHriAnhrQSbpAxL37W1wcJKUUX07HyLWZCW1URJT/ra3GyUTzBgUnh24TMVfNTV2Hij2HLxkPHFZfOZy5w=="],
|
|
184
|
+
|
|
185
|
+
"is-promise": ["is-promise@4.0.0", "", {}, "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ=="],
|
|
186
|
+
|
|
187
|
+
"isexe": ["isexe@2.0.0", "", {}, "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="],
|
|
188
|
+
|
|
189
|
+
"jose": ["jose@6.1.3", "", {}, "sha512-0TpaTfihd4QMNwrz/ob2Bp7X04yuxJkjRGi4aKmOqwhov54i6u79oCv7T+C7lo70MKH6BesI3vscD1yb/yzKXQ=="],
|
|
190
|
+
|
|
191
|
+
"jotai": ["jotai@2.17.0", "https://registry.npmmirror.com/jotai/-/jotai-2.17.0.tgz", { "peerDependencies": { "@babel/core": ">=7.0.0", "@babel/template": ">=7.0.0", "@types/react": ">=17.0.0", "react": ">=17.0.0" }, "optionalPeers": ["@babel/core", "@babel/template", "@types/react", "react"] }, "sha512-DBPT7Vx7E7R/ZJL7Uq7yUA9+LLR0IRiRM+Bw5ugVwv8L8++RjlXVXZ2//ccucypc5lcyuHOW09rYcW77RurduQ=="],
|
|
192
|
+
|
|
193
|
+
"js-yaml": ["js-yaml@4.1.1", "", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA=="],
|
|
194
|
+
|
|
195
|
+
"json-schema-to-ts": ["json-schema-to-ts@3.1.1", "https://registry.npmmirror.com/json-schema-to-ts/-/json-schema-to-ts-3.1.1.tgz", { "dependencies": { "@babel/runtime": "7.28.6", "ts-algebra": "2.0.0" } }, "sha512-+DWg8jCJG2TEnpy7kOm/7/AxaYoaRbjVB4LFZLySZlWn8exGs3A4OLJR966cVvU26N7X9TWxl+Jsw7dzAqKT6g=="],
|
|
196
|
+
|
|
197
|
+
"json-schema-traverse": ["json-schema-traverse@1.0.0", "", {}, "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="],
|
|
198
|
+
|
|
199
|
+
"json-schema-typed": ["json-schema-typed@8.0.2", "", {}, "sha512-fQhoXdcvc3V28x7C7BMs4P5+kNlgUURe2jmUT1T//oBRMDrqy1QPelJimwZGo7Hg9VPV3EQV5Bnq4hbFy2vetA=="],
|
|
200
|
+
|
|
201
|
+
"math-intrinsics": ["math-intrinsics@1.1.0", "", {}, "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g=="],
|
|
202
|
+
|
|
203
|
+
"media-typer": ["media-typer@1.1.0", "", {}, "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw=="],
|
|
204
|
+
|
|
205
|
+
"merge-descriptors": ["merge-descriptors@2.0.0", "", {}, "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g=="],
|
|
206
|
+
|
|
207
|
+
"mime-db": ["mime-db@1.54.0", "", {}, "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ=="],
|
|
208
|
+
|
|
209
|
+
"mime-types": ["mime-types@3.0.2", "", { "dependencies": { "mime-db": "^1.54.0" } }, "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A=="],
|
|
210
|
+
|
|
211
|
+
"mimic-fn": ["mimic-fn@2.1.0", "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-2.1.0.tgz", {}, "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg=="],
|
|
212
|
+
|
|
213
|
+
"ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="],
|
|
214
|
+
|
|
215
|
+
"negotiator": ["negotiator@1.0.0", "", {}, "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg=="],
|
|
216
|
+
|
|
217
|
+
"object-assign": ["object-assign@4.1.1", "", {}, "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="],
|
|
218
|
+
|
|
219
|
+
"object-inspect": ["object-inspect@1.13.4", "", {}, "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew=="],
|
|
220
|
+
|
|
221
|
+
"on-finished": ["on-finished@2.4.1", "", { "dependencies": { "ee-first": "1.1.1" } }, "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg=="],
|
|
222
|
+
|
|
223
|
+
"once": ["once@1.4.0", "", { "dependencies": { "wrappy": "1" } }, "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w=="],
|
|
224
|
+
|
|
225
|
+
"onetime": ["onetime@5.1.2", "https://registry.npmmirror.com/onetime/-/onetime-5.1.2.tgz", { "dependencies": { "mimic-fn": "^2.1.0" } }, "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg=="],
|
|
226
|
+
|
|
227
|
+
"parseurl": ["parseurl@1.3.3", "", {}, "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="],
|
|
228
|
+
|
|
229
|
+
"patch-console": ["patch-console@2.0.0", "https://registry.npmmirror.com/patch-console/-/patch-console-2.0.0.tgz", {}, "sha512-0YNdUceMdaQwoKce1gatDScmMo5pu/tfABfnzEqeG0gtTmd7mh/WcwgUjtAeOU7N8nFFlbQBnFK2gXW5fGvmMA=="],
|
|
230
|
+
|
|
231
|
+
"path-key": ["path-key@3.1.1", "", {}, "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="],
|
|
232
|
+
|
|
233
|
+
"path-to-regexp": ["path-to-regexp@8.3.0", "", {}, "sha512-7jdwVIRtsP8MYpdXSwOS0YdD0Du+qOoF/AEPIt88PcCFrZCzx41oxku1jD88hZBwbNUIEfpqvuhjFaMAqMTWnA=="],
|
|
234
|
+
|
|
235
|
+
"pkce-challenge": ["pkce-challenge@5.0.1", "", {}, "sha512-wQ0b/W4Fr01qtpHlqSqspcj3EhBvimsdh0KlHhH8HRZnMsEa0ea2fTULOXOS9ccQr3om+GcGRk4e+isrZWV8qQ=="],
|
|
236
|
+
|
|
237
|
+
"proxy-addr": ["proxy-addr@2.0.7", "", { "dependencies": { "forwarded": "0.2.0", "ipaddr.js": "1.9.1" } }, "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg=="],
|
|
238
|
+
|
|
239
|
+
"qs": ["qs@6.14.1", "", { "dependencies": { "side-channel": "^1.1.0" } }, "sha512-4EK3+xJl8Ts67nLYNwqw/dsFVnCf+qR7RgXSK9jEEm9unao3njwMDdmsdvoKBKHzxd7tCYz5e5M+SnMjdtXGQQ=="],
|
|
240
|
+
|
|
241
|
+
"range-parser": ["range-parser@1.2.1", "", {}, "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="],
|
|
242
|
+
|
|
243
|
+
"raw-body": ["raw-body@3.0.2", "", { "dependencies": { "bytes": "~3.1.2", "http-errors": "~2.0.1", "iconv-lite": "~0.7.0", "unpipe": "~1.0.0" } }, "sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA=="],
|
|
244
|
+
|
|
245
|
+
"react": ["react@19.2.4", "https://registry.npmmirror.com/react/-/react-19.2.4.tgz", {}, "sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ=="],
|
|
246
|
+
|
|
247
|
+
"react-reconciler": ["react-reconciler@0.33.0", "https://registry.npmmirror.com/react-reconciler/-/react-reconciler-0.33.0.tgz", { "dependencies": { "scheduler": "^0.27.0" }, "peerDependencies": { "react": "^19.2.0" } }, "sha512-KetWRytFv1epdpJc3J4G75I4WrplZE5jOL7Yq0p34+OVOKF4Se7WrdIdVC45XsSSmUTlht2FM/fM1FZb1mfQeA=="],
|
|
248
|
+
|
|
249
|
+
"require-from-string": ["require-from-string@2.0.2", "", {}, "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw=="],
|
|
250
|
+
|
|
251
|
+
"restore-cursor": ["restore-cursor@4.0.0", "https://registry.npmmirror.com/restore-cursor/-/restore-cursor-4.0.0.tgz", { "dependencies": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" } }, "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg=="],
|
|
252
|
+
|
|
253
|
+
"router": ["router@2.2.0", "", { "dependencies": { "debug": "^4.4.0", "depd": "^2.0.0", "is-promise": "^4.0.0", "parseurl": "^1.3.3", "path-to-regexp": "^8.0.0" } }, "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ=="],
|
|
254
|
+
|
|
255
|
+
"safer-buffer": ["safer-buffer@2.1.2", "", {}, "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="],
|
|
256
|
+
|
|
257
|
+
"scheduler": ["scheduler@0.27.0", "https://registry.npmmirror.com/scheduler/-/scheduler-0.27.0.tgz", {}, "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q=="],
|
|
258
|
+
|
|
259
|
+
"send": ["send@1.2.1", "", { "dependencies": { "debug": "^4.4.3", "encodeurl": "^2.0.0", "escape-html": "^1.0.3", "etag": "^1.8.1", "fresh": "^2.0.0", "http-errors": "^2.0.1", "mime-types": "^3.0.2", "ms": "^2.1.3", "on-finished": "^2.4.1", "range-parser": "^1.2.1", "statuses": "^2.0.2" } }, "sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ=="],
|
|
260
|
+
|
|
261
|
+
"serve-static": ["serve-static@2.2.1", "", { "dependencies": { "encodeurl": "^2.0.0", "escape-html": "^1.0.3", "parseurl": "^1.3.3", "send": "^1.2.0" } }, "sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw=="],
|
|
262
|
+
|
|
263
|
+
"setprototypeof": ["setprototypeof@1.2.0", "", {}, "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="],
|
|
264
|
+
|
|
265
|
+
"shebang-command": ["shebang-command@2.0.0", "", { "dependencies": { "shebang-regex": "^3.0.0" } }, "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA=="],
|
|
266
|
+
|
|
267
|
+
"shebang-regex": ["shebang-regex@3.0.0", "", {}, "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="],
|
|
268
|
+
|
|
269
|
+
"side-channel": ["side-channel@1.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.3", "side-channel-list": "^1.0.0", "side-channel-map": "^1.0.1", "side-channel-weakmap": "^1.0.2" } }, "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw=="],
|
|
270
|
+
|
|
271
|
+
"side-channel-list": ["side-channel-list@1.0.0", "", { "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.3" } }, "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA=="],
|
|
272
|
+
|
|
273
|
+
"side-channel-map": ["side-channel-map@1.0.1", "", { "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.5", "object-inspect": "^1.13.3" } }, "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA=="],
|
|
274
|
+
|
|
275
|
+
"side-channel-weakmap": ["side-channel-weakmap@1.0.2", "", { "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.5", "object-inspect": "^1.13.3", "side-channel-map": "^1.0.1" } }, "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A=="],
|
|
276
|
+
|
|
277
|
+
"signal-exit": ["signal-exit@3.0.7", "https://registry.npmmirror.com/signal-exit/-/signal-exit-3.0.7.tgz", {}, "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="],
|
|
278
|
+
|
|
279
|
+
"slice-ansi": ["slice-ansi@7.1.2", "https://registry.npmmirror.com/slice-ansi/-/slice-ansi-7.1.2.tgz", { "dependencies": { "ansi-styles": "^6.2.1", "is-fullwidth-code-point": "^5.0.0" } }, "sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w=="],
|
|
280
|
+
|
|
281
|
+
"stack-utils": ["stack-utils@2.0.6", "https://registry.npmmirror.com/stack-utils/-/stack-utils-2.0.6.tgz", { "dependencies": { "escape-string-regexp": "^2.0.0" } }, "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ=="],
|
|
282
|
+
|
|
283
|
+
"statuses": ["statuses@2.0.2", "", {}, "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw=="],
|
|
284
|
+
|
|
285
|
+
"string-width": ["string-width@8.1.1", "https://registry.npmmirror.com/string-width/-/string-width-8.1.1.tgz", { "dependencies": { "get-east-asian-width": "^1.3.0", "strip-ansi": "^7.1.0" } }, "sha512-KpqHIdDL9KwYk22wEOg/VIqYbrnLeSApsKT/bSj6Ez7pn3CftUiLAv2Lccpq1ALcpLV9UX1Ppn92npZWu2w/aw=="],
|
|
286
|
+
|
|
287
|
+
"strip-ansi": ["strip-ansi@7.1.2", "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-7.1.2.tgz", { "dependencies": { "ansi-regex": "^6.0.1" } }, "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA=="],
|
|
288
|
+
|
|
289
|
+
"toidentifier": ["toidentifier@1.0.1", "", {}, "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA=="],
|
|
290
|
+
|
|
291
|
+
"ts-algebra": ["ts-algebra@2.0.0", "https://registry.npmmirror.com/ts-algebra/-/ts-algebra-2.0.0.tgz", {}, "sha512-FPAhNPFMrkwz76P7cdjdmiShwMynZYN6SgOujD1urY4oNm80Ou9oMdmbR45LotcKOXoy7wSmHkRFE6Mxbrhefw=="],
|
|
292
|
+
|
|
293
|
+
"type-fest": ["type-fest@4.41.0", "https://registry.npmmirror.com/type-fest/-/type-fest-4.41.0.tgz", {}, "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA=="],
|
|
294
|
+
|
|
295
|
+
"type-is": ["type-is@2.0.1", "", { "dependencies": { "content-type": "^1.0.5", "media-typer": "^1.1.0", "mime-types": "^3.0.0" } }, "sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw=="],
|
|
296
|
+
|
|
297
|
+
"typescript": ["typescript@5.9.3", "https://registry.npmmirror.com/typescript/-/typescript-5.9.3.tgz", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw=="],
|
|
298
|
+
|
|
299
|
+
"undici-types": ["undici-types@7.16.0", "https://registry.npmmirror.com/undici-types/-/undici-types-7.16.0.tgz", {}, "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw=="],
|
|
300
|
+
|
|
301
|
+
"unpipe": ["unpipe@1.0.0", "", {}, "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ=="],
|
|
302
|
+
|
|
303
|
+
"vary": ["vary@1.1.2", "", {}, "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg=="],
|
|
304
|
+
|
|
305
|
+
"which": ["which@2.0.2", "", { "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "./bin/node-which" } }, "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="],
|
|
306
|
+
|
|
307
|
+
"widest-line": ["widest-line@5.0.0", "https://registry.npmmirror.com/widest-line/-/widest-line-5.0.0.tgz", { "dependencies": { "string-width": "^7.0.0" } }, "sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA=="],
|
|
308
|
+
|
|
309
|
+
"wrap-ansi": ["wrap-ansi@9.0.2", "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-9.0.2.tgz", { "dependencies": { "ansi-styles": "^6.2.1", "string-width": "^7.0.0", "strip-ansi": "^7.1.0" } }, "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww=="],
|
|
310
|
+
|
|
311
|
+
"wrappy": ["wrappy@1.0.2", "", {}, "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="],
|
|
312
|
+
|
|
313
|
+
"ws": ["ws@8.19.0", "https://registry.npmmirror.com/ws/-/ws-8.19.0.tgz", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": ">=5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg=="],
|
|
314
|
+
|
|
315
|
+
"yoga-layout": ["yoga-layout@3.2.1", "https://registry.npmmirror.com/yoga-layout/-/yoga-layout-3.2.1.tgz", {}, "sha512-0LPOt3AxKqMdFBZA3HBAt/t/8vIKq7VaQYbuA8WxCgung+p9TVyKRYdpvCb80HcdTN2NkbIKbhNwKUfm3tQywQ=="],
|
|
316
|
+
|
|
317
|
+
"zod": ["zod@3.25.76", "https://registry.npmmirror.com/zod/-/zod-3.25.76.tgz", {}, "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ=="],
|
|
318
|
+
|
|
319
|
+
"zod-to-json-schema": ["zod-to-json-schema@3.25.1", "", { "peerDependencies": { "zod": "^3.25 || ^4" } }, "sha512-pM/SU9d3YAggzi6MtR4h7ruuQlqKtad8e9S0fmxcMi+ueAK5Korys/aWcV9LIIHTVbj01NdzxcnXSN+O74ZIVA=="],
|
|
320
|
+
|
|
321
|
+
"zustand": ["zustand@5.0.11", "https://registry.npmmirror.com/zustand/-/zustand-5.0.11.tgz", { "peerDependencies": { "@types/react": ">=18.0.0", "immer": ">=9.0.6", "react": ">=18.0.0", "use-sync-external-store": ">=1.2.0" }, "optionalPeers": ["@types/react", "immer", "react", "use-sync-external-store"] }, "sha512-fdZY+dk7zn/vbWNCYmzZULHRrss0jx5pPFiOuMZ/5HJN6Yv3u+1Wswy/4MpZEkEGhtNH+pwxZB8OKgUBPzYAGg=="],
|
|
322
|
+
|
|
323
|
+
"widest-line/string-width": ["string-width@7.2.0", "https://registry.npmmirror.com/string-width/-/string-width-7.2.0.tgz", { "dependencies": { "emoji-regex": "^10.3.0", "get-east-asian-width": "^1.0.0", "strip-ansi": "^7.1.0" } }, "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ=="],
|
|
324
|
+
|
|
325
|
+
"wrap-ansi/string-width": ["string-width@7.2.0", "https://registry.npmmirror.com/string-width/-/string-width-7.2.0.tgz", { "dependencies": { "emoji-regex": "^10.3.0", "get-east-asian-width": "^1.0.0", "strip-ansi": "^7.1.0" } }, "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ=="],
|
|
326
|
+
}
|
|
327
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Architecture
|
|
2
|
+
|
|
3
|
+
## Project Structure
|
|
4
|
+
|
|
5
|
+
- `src/cli/` - CLI entry layer that renders the Ink app
|
|
6
|
+
- `src/render/` - UI layer with Ink components and Jotai state
|
|
7
|
+
- `src/core/` - SDK layer (designed for standalone package publishing)
|
|
8
|
+
- `api/` - Stable public exports used by CLI/UI
|
|
9
|
+
- `internal/sdk/` - Agent runtime implementation (agent/runtime/types)
|
|
10
|
+
- `internal/providers/` - LLM provider adapters
|
|
11
|
+
- `internal/tools/` - Tool base/builtins/registry
|
|
12
|
+
- `internal/integrations/` - MCP and skills integrations
|
|
13
|
+
- `internal/config/` - Settings loading and schema
|
|
14
|
+
- `internal/observability/` - Logging and export
|
|
15
|
+
- `internal/policy/` - Safety policy
|
|
16
|
+
- `internal/shared/` - Cross-layer helpers
|
|
17
|
+
|
|
18
|
+
## Architectural Patterns
|
|
19
|
+
|
|
20
|
+
- Event-driven agent using EventEmitter to communicate with UI
|
|
21
|
+
- Streaming response handling for incremental updates
|
|
22
|
+
- Tool abstraction with MCP bridge for extensibility
|
|
23
|
+
- Jotai atoms for shared reactive state
|
|
24
|
+
|
|
25
|
+
## Configuration
|
|
26
|
+
|
|
27
|
+
- Config files: `~/.claude/settings.json`, `.claude/settings.json`, `.claude/settings.local.json`
|
|
28
|
+
- Priority: local > project > user
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
# 通用终端 Hataraku 方案
|
|
2
|
+
|
|
3
|
+
## Summary
|
|
4
|
+
设计一个面向教育/研究的交互式 TUI Hataraku,强调可解释、可复现、可扩展。核心是“对话 + 工具调用 + 文件改动 + 运行命令”的闭环,并提供审计日志、可重放运行、插件/技能机制和安全确认策略。
|
|
5
|
+
|
|
6
|
+
## Goals & Success Criteria
|
|
7
|
+
- 在终端完成完整任务闭环:理解需求 → 读写文件 → 运行命令/测试 → 结果归档。
|
|
8
|
+
- 具备可复现性:每次会话可导出“对话 + 工具调用 + 变更摘要 + 环境信息”。
|
|
9
|
+
- 插件可扩展:添加新工具、新提示/技能,不改核心代码。
|
|
10
|
+
- 安全默认:高风险操作必须确认,且有白名单/策略可配置。
|
|
11
|
+
|
|
12
|
+
## Out of Scope
|
|
13
|
+
- 多代理协作与复杂工作流编排(后续扩展)。
|
|
14
|
+
- Windows 首版支持(后续适配)。
|
|
15
|
+
|
|
16
|
+
## Architecture Overview
|
|
17
|
+
**三层结构**
|
|
18
|
+
1. `cli/`:命令行入口、参数解析、启动 TUI
|
|
19
|
+
2. `render/`:Ink/TUI 界面、输入输出、状态可视化
|
|
20
|
+
3. `core/`:Agent 循环、模型适配、工具执行、技能加载、审计/日志
|
|
21
|
+
|
|
22
|
+
**关键模块**
|
|
23
|
+
- `core/agent/`:对话循环、流式响应、工具调用调度
|
|
24
|
+
- `core/models/`:OpenAI/Anthropic 适配层
|
|
25
|
+
- `core/tools/`:内置工具 (Bash, FS, Search, Patch)
|
|
26
|
+
- `core/skills/`:技能加载/注册
|
|
27
|
+
- `core/safety/`:执行策略与确认
|
|
28
|
+
- `core/logging/`:审计日志 & 可重放记录
|
|
29
|
+
|
|
30
|
+
## Interfaces & Data Contracts
|
|
31
|
+
|
|
32
|
+
### 1) Model Adapter
|
|
33
|
+
统一抽象:
|
|
34
|
+
- `ModelClient.chat(request): AsyncIterable<ModelEvent>`
|
|
35
|
+
- `ModelEvent`: `{ type: "token" | "tool_call" | "final"; payload: ... }`
|
|
36
|
+
- `request.messages`: `{role, content, tool_calls?}`
|
|
37
|
+
|
|
38
|
+
必备字段:
|
|
39
|
+
- `request.tools`: 模型可调用工具描述
|
|
40
|
+
- `request.stream`: `true`
|
|
41
|
+
- `request.metadata`: `{ sessionId, traceId, projectRoot }`
|
|
42
|
+
|
|
43
|
+
### 2) Tool Execution
|
|
44
|
+
统一工具接口:
|
|
45
|
+
- `ToolSpec`: `{ name, description, inputSchema }`
|
|
46
|
+
- `ToolResult`: `{ ok, stdout?, stderr?, filesChanged?, preview? }`
|
|
47
|
+
|
|
48
|
+
内置工具:
|
|
49
|
+
- `bash`: 执行命令(受安全策略)
|
|
50
|
+
- `fs_read`: 读取文件
|
|
51
|
+
- `fs_write`: 写入文件(需确认)
|
|
52
|
+
- `fs_patch`: 基于 diff 的修改(需确认)
|
|
53
|
+
- `search`: rg/grep 搜索(只读)
|
|
54
|
+
|
|
55
|
+
### 3) Safety Policy
|
|
56
|
+
默认策略:
|
|
57
|
+
- 读操作自动允许
|
|
58
|
+
- 写操作/命令执行需要确认
|
|
59
|
+
- 可配置白名单(如 `rg`, `cat`, `ls`, `git status`)
|
|
60
|
+
- 可配置允许目录(默认项目根目录)
|
|
61
|
+
|
|
62
|
+
接口:
|
|
63
|
+
- `SafetyPolicy.decide(action) -> { allowed, reason, requiresConfirm }`
|
|
64
|
+
|
|
65
|
+
### 4) Skills / Plugins
|
|
66
|
+
技能结构:
|
|
67
|
+
```
|
|
68
|
+
/.skills/<skill_name>/SKILL.md
|
|
69
|
+
/skills/<skill_name>/index.ts
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
加载机制:
|
|
73
|
+
- 按目录发现
|
|
74
|
+
- `index.ts` 导出 `register(skillsContext)`
|
|
75
|
+
- skills 可以新增工具、提示模板、任务流程
|
|
76
|
+
|
|
77
|
+
### 5) Logging & Repro
|
|
78
|
+
记录:
|
|
79
|
+
- `session.jsonl`: 消息、模型响应片段、工具调用、确认记录
|
|
80
|
+
- `changes.json`: 变更文件列表、diff 摘要
|
|
81
|
+
- `env.json`: OS、shell、runtime、git 状态
|
|
82
|
+
|
|
83
|
+
导出:
|
|
84
|
+
- `agent export <id>`(兼容 `--session <id>`)→ zip / markdown 报告
|
|
85
|
+
|
|
86
|
+
## User Experience (TUI)
|
|
87
|
+
- 左侧:当前任务状态(工具执行、文件变更数量)
|
|
88
|
+
- 右侧:流式对话
|
|
89
|
+
- 底部:输入框 + 执行确认对话框
|
|
90
|
+
- 快捷键:`Ctrl+R` 重新运行上次命令、`Ctrl+D` 导出
|
|
91
|
+
|
|
92
|
+
## Data Flow
|
|
93
|
+
1. 用户输入 → 对话消息
|
|
94
|
+
2. Agent 生成模型请求 → 产出 stream
|
|
95
|
+
3. 若出现 tool_call:
|
|
96
|
+
- SafetyPolicy 判断是否需确认
|
|
97
|
+
- 用户确认后执行
|
|
98
|
+
- 工具结果回写到模型上下文
|
|
99
|
+
4. 结束时保存日志和变更摘要
|
|
100
|
+
|
|
101
|
+
## File Structure Proposal
|
|
102
|
+
```
|
|
103
|
+
src/
|
|
104
|
+
cli/
|
|
105
|
+
render/
|
|
106
|
+
core/
|
|
107
|
+
agent/
|
|
108
|
+
models/
|
|
109
|
+
tools/
|
|
110
|
+
safety/
|
|
111
|
+
skills/
|
|
112
|
+
logging/
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
## Testing Strategy
|
|
116
|
+
- 单元测试:
|
|
117
|
+
- 模型适配器:正确处理流式 token + tool_call
|
|
118
|
+
- 安全策略:不同命令/路径下的决策
|
|
119
|
+
- 集成测试:
|
|
120
|
+
- 完整对话 → 工具执行 → 文件修改
|
|
121
|
+
- 日志输出的完整性
|
|
122
|
+
- E2E:
|
|
123
|
+
- 带确认的写文件/命令执行流程
|
|
124
|
+
|
|
125
|
+
## Acceptance Criteria
|
|
126
|
+
- 可以在项目目录中完成:读文件 → 改代码 → 运行测试 → 输出总结
|
|
127
|
+
- 所有高风险操作都要求确认
|
|
128
|
+
- `agent export` 可重放关键信息
|
|
129
|
+
- 插件可添加新工具且可被模型调用
|
|
130
|
+
|
|
131
|
+
## Assumptions & Defaults
|
|
132
|
+
- Runtime: TypeScript + Bun
|
|
133
|
+
- OS: macOS + Linux
|
|
134
|
+
- Provider: OpenAI/Anthropic(后续扩展多供应商)
|
|
135
|
+
- UI: 交互式 TUI
|
|
136
|
+
- 安全:默认确认写入和命令执行
|